フラッシュメモリー知識を少しご紹介します。
フラッシュメモリーは大きくNORとNANDに分けられる。NANDは保存することができる容量の面で、NORは情報の処理速度の面で優れている。NORは主に携帯電話のメモリーで使われて、NAND型はMP3プレーヤー、インターネットフォーン、デジタルカメラ、ポータブル保存装置であるUSBカードなどのメモリーで採用されている。
NANDフラッシュメモリーと言うは、フラッシュメモリーの一形態である。フラッシュメモリーと言うのは電源がない状態でも、メモリーにデータが保存できるメモリーを言う。データの記録/削除が可狽セ。
フラッシュメモリーは内部方式に従って、NORとNANDで分けられる。NORはCellが並列で、NANDはCellが直列でつながれた国「を持っている。NANDフラッシュメモリーは主にSDカードやMemory stick で使われる。
NORフラッシュメモリーは MMCカードや Compact flash メモリーに使われている。
NANDはNORに比べて、製造単価が安く、大容量が可狽ナある。NORはNANDに比べてデータのAccess タイムが短く、データの安全性に優れている。
論理回路が行なう基本的な論理演算の一つで、すべての入力が「偽」(あるいは0)の場合だけ出力が「真」(あるいは「1」)となり、それ以外の場合は出力が偽(あるいは0)となるような演算のこと。この演算を行なう論理回路を「否定論理和演算回路」「NOR演算回路」「NORゲート」などと呼ぶ。実際の論理回路の設計ではANDやORよりもNANDやNORの方が作りやすいため、こちらの方が多用される。
論理回路が行なう基本的な論理演算の一つで、すべての入力が「真」(あるいは1)の場合だけ出力が「偽」(あるいは「0」)となり、それ以外の場合は出力が真(あるいは1)となるような演算のこと。AND(論理積)演算の結果にNOT(否定)演算を行なったもの。この演算を行なう論理回路を「否定論理積演算回路」「NAND演算回路」「NANDゲート」などと呼ぶ。実際の論理回路の設計ではANDやORよりもNANDやNORの方が作りやすいため、こちらの方が多用される。
NANDは工場出荷の製品から不良ブロックが含まれて出ることがある。しかし、最近は工程が発展した結果、不良ブロックをなかなか見つからない。普通 CFカードのようなものはすべてNANDと思っても良い。
Samsungの一部のARMはステッピングストーンという技術を採用している。
チップ水準での起動のため4KB程度を自動的にNANDで読み起動用ステピングストンに積載してくれる.
4KBのコードは残りプログラム本体をNANDから読みプログラムを実行できるようにしてくれる。
また、CE .NET には BINFS という特殊なファイルシステムを利用してプログラムを実行可狽ノさせる。
一般 PCの場合はMSC(マスstorageクラス) という技術が採用されていたり、すでにArchitecture水準ですべて支援する部分なので、利用者は悩まずにNANDからプログラムを実行することができる。
スペア領域はデータを保存する領域以外に一部の小さな領域を置いて他の用途で使う。例えばtransaction、FTL などで使う。
プログラマーの想像力によって他の用途でもいくらでも使用可狽セ。1pageが512ByteのNANDの場合16Byteのスペア領域が存在する。
NANDもしくわNOR にファイル保存の中に電源不良や頼冾オない事態によって、データ記録作業に問題がおきた時を備えた装置である。
一番良く使うスキルでは更新されるブロックを新たに使わないで、複写本を使いながら、すべてか終われば、最終的に記録する方式だ。CE .NET 4.2 では TFATというtransaction機狽ェ追加されたFATを支援しする。
ファイルシステムが破損された時、断片化がひどい時、自ら復元する機狽セ。
NOR,NANDのためのJournallingファイルシステムでは JFFS,JFFS2などが一番よく使われている。
NOR나 NANDのためのシンプルなFSとしてYAFFSなどもある。
いいえ、HDDの RPMが技術的に発展すると言っても、NANDなどを決して越すことのできない壁があるが、それがseek timeだ。HDDは国「上ヘッドがデータ位置を捜し出し、機械的に動かなければならない。
この一連の作業は、機械的な作業なので電気的な信号として、すべてのものを処理するNANDなどのスピードを越すことはできない。NANDの読み取り、書き取り速度は、まだ遅い方ではあるがseek timeだけはハードに追い越される事はないと卵zされる。
NOR / NAND二つとも一定領域に対して書き込み/削除を繰り返せば疲労破壊が起きる。したがって、これに対する信頼性が懸念される。
初期NORは一セルに対して 10万回のギャランティーを行った。
このごろのギャランティーは一セルに対して 1万回しか行わないものもある。それなら問題が大きいのでは?
しかし、FTL 技術の発展とともに最近 IT 製品のサイクルが非常に短い関係で無理なく容認される水準とも思われる。
また、耐久限度を乗り越える技術では一般的にFTL(Flash Translation Layer)と呼ばれるものがある。
リナックスメ[スには FTL、NFTL といたメ[スが公開されている。
普通なら0x00 に変わることが消すと思うはずだがここでは反対だ。
特別なスペックの場合もあるか、普通は削除作業をしてからは 0xFFになる。
NORとLANDは基本的に削してから書かなければならない。0x01が書かれたいたセルに 0xf0をすぐ書くとどうなるのか?たぶん、エラーだすか0x00になるでしょう。
これはNORとLANDの基本的な属性が 1-0 では可狽セが 0-1では不可狽セからだ。NORとLANDは削除単位を持っている.インテルのNORは主に128KB,256KB単位で消して書くことができる。
LANDはブロック単位が消すサイズだ。実はページ単位で消されたり、データシートによってさまざまな方法がある。
ブートブロックフラッシュといいその単位をもっと細分化して消すこともできる。
消す単位がこうだから 1バイトだけ直しても 128KBバイトを丸ごと消して、また書かなければならないことが生じる。相当非效率であるが、これを回避するスキルもある。
可狽ナある。基本的にフラッシュが 1-0 が可狽セからそうである。しかしあるデータシートを見るとこのような行為は耐久限度をすごく阻害するので絶対使わないでくださいと書いてあたり、何が起こるかも分からないので使わないでね。
EEPROMは100万回位までも、書き込みと削除を保障すると言う。紫外線で消すEPROMも過去にあったが最近にはあまり使わない。
Ethernet Cardに少容量のデータを保存するにはシリアル EEPROMを使う。主にインターフェースは I2Cを使う。
PCのロムバイアス等に使う EEPROMは一般的なアドレスピンを持つ EEPROMだ。
個人的な経験によれば EEPROMは ESD精電気や電気的ショックに特に弱い。
OTPと言い一度だけ書きこむことのできるロム(ReadOnlyMemory)もある。普通低価のパャRン内部に入ることが多い。
製品のためのファームウエアが完成されれば OTPに記録して出荷する方式だ。
IDEスロット等にすぐ挿入可狽ネ NORメモリー。実際にハードとして認識され、数メがバイトのマイクロ類似ハードといえる。
最近の SSDはバッファー及び自主的なアルロリズムとチップを搭載して高速、高信頼性を具現する。
昔の製品はNORを使って容量も小さかったし,SSD水準のバッファーや処理ASICがなかったので書込み作業がかなり遅い。
• Bit-Flip Error Handling
・一般的に 1ビートまたは 2ビート ECCを使って処理する。
・ MLC(Multi-Level Cell) NANDの場合4ビート以上の ECC使用
• Bad Block Handling
・badblocksはこれ以上使うことのできないブロック
・"初期badblocks " 及び " run-time badblocks " すべて処理しなければならない。
・"初期badblocks " 情報は spare 領域に記録されている
・ Write /erase 動作結果エラーリターンの時 run-time bad blockで見なし。
• Wear-Leveling
・SLC(Single Level Cell) NANDの場合各ブロック当たり叙怏ネ上の削除が可・br /> ・MLC NANDの場合各ブロック当たり一万回以上の eraseが可・br /> ・一部ブロックが集中的に wear-out される場合フラッシュメモリーの寿命が短縮される。
・各ブロックが均等に削除されるする。(wear-leveling)