玄箱PROはHDDを取り付けなくても、内蔵されたフラッシュメモリである程度はNASとして作動する。
しかし、その構造上メモリへの書き込み回数に制限があるのでNANDフラッシュを酷使することは推奨できない。
しかし、その構造上メモリへの書き込み回数に制限があるのでNANDフラッシュを酷使することは推奨できない。
構造
STMicroelectronics社のデータシートより。
玄箱PROからストレージとして扱う分には不要な項目もあるが、デバイスそのものの仕組みを知るには有用だと判断して掲載している。
玄箱PROからストレージとして扱う分には不要な項目もあるが、デバイスそのものの仕組みを知るには有用だと判断して掲載している。
基本データ
メーカー | STMicroelectronics |
製品名 | NAND02GW3B2C |
容量 | 2Gb(256MB) |
バス | x8 |
ページサイズ | 2048+64バイト |
ブロックサイズ | 128K+4Kバイト |
メモリ配列 | 64ページx2048ブロック |
ECC(Error Correct Code)用に各ページに64バイトのOOB(Out Of Band)が含まれている。
OOBの合計は8Mバイトになり、NAND02GW3B2Cの実質容量は264Mバイトとなる。
OOBの合計は8Mバイトになり、NAND02GW3B2Cの実質容量は264Mバイトとなる。
信号種別
信号名 | 概要 |
Inputs/Outputs(I/O0-I/O7) | 選択されたアドレスを入力するか、出力モード時にデータを出力するか、または入力モード時にコマンドかデータを入力するのに使用される。入力はWrite Enableの立ち上がりでラッチされる。デバイスの選択が解除されるか、または出力に障害があるとき、I/O0-I/O7は浮いたままの状態になる。 |
Address Latch Enable(AL) | Command Interfaceのアドレス入力のラッチを有効にする。ALがHighの場合、アドレス入力はWrite Enableの立ち上がりでラッチされる。 |
Command Latch Enable(CL) | Command Interfaceのコマンド入力のラッチを有効にする。CLがHighの場合、コマンド入力はWrite Enableの立ち上がりでラッチされる。 |
Chip Enable(E) | メモリコントロールロジック、入力バッファ、デコーダ、およびセンスアンプを活性化する。EがLowの場合に、デバイスは選択される。EがHighになっても、デバイスは選択されたままで残っていて、待ち受け状態を調べても、デバイスはbusyを示さない。 |
Read Enable(R) | 出力モード時にシーケンシャルなデータ出力を制御する。データはRの立ち下がり後に有効となる。また、Rの立ち下がりは内部の列アドレス・カウンタを1つ増加する。 |
Write Enable(W) | Command Interfaceへの入力と、アドレスおよびデータ入力のラッチを制御する。アドレスとデータの両方がWの立ち上がりでラッチされる。電源オン・オフ時、Command Interfaceがコマンドを受け入れる準備が完了するまでに10マイクロ秒の回復時間が必要となる。この間、WをHighに保つことをお勧めする。 |
Write Protect(WP) | 求められていない書き込みか消去操作に対してハードウェア保護を与える入力ピン。WPがLowの場合は、デバイスはどんな書き込みや消去操作も受け入れない。電源オン・オフ時、WPをLowに保つことをお勧めする。 |
Ready/Busy(RB) | P/E/Rコントローラーが現在アクティブであるかどうか特定するのに使用することができる開放型ドレイン。RBが、Lowである(読み込み)時は書き込みもしくは消去操作が進行している。操作が完了した時、Ready/BusyはHighになる。開放型ドレイン出力の使用にあたって、いくつかのメモリから単一のプルアップレジスタに接続することもできる。するとLowは、メモリの1つ(または以上)がbusyだと示すようになる。電源オン・オフ時、Command Interfaceがコマンドを受け入れる準備が完了するまでに10マイクロ秒の最小の回復時間が必要となる。この間、RBはLow。 |
モード操作
上記信号種別の相関関係を表にする。
EとRBはモード操作そのものに関係しないので省いた。
EとRBはモード操作そのものに関係しないので省いた。
モード操作 | E | AL | CL | R | W | WP | I/O0-7 |
コマンド入力 | Low | Low | High | High | 立ち上がり | X | コマンド |
アドレス入力 | Low | High | Low | High | 立ち上がり | X | アドレス |
データ入力 | Low | Low | Low | High | 立ち上がり | High | データ入力 |
データ出力 | Low | Low | Low | 立ち下がり | High | X | データ出力 |
アドレス入力
バスサイクル | I/O7 | I/O6 | I/O5 | I/O4 | I/O3 | I/O2 | I/O1 | I/O0 |
1st | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
2nd | Low | Low | Low | Low | A11 | A10 | A9 | A8 |
3rd | A19 | A18 | A17 | A16 | A15 | A14 | A13 | A12 |
4th | A27 | A26 | A25 | A24 | A23 | A22 | A21 | A20 |
5th | Low | Low | Low | Low | Low | Low | Low | A28 |
8ビットの幅で5回のサイクルを費やすことでアドレスを入力している。
アドレス定義
アドレス | 定義 |
A0-A11 | 列アドレス |
A12-A17 | ページアドレス |
A18-A28 | ブロックアドレス |
11ビットで2048ブロックの1ブロックを指定する「ブロックアドレス」、6ビットで64ページの1ページを指定する「ページアドレス」、12ビットで2112バイトの1バイトを指定する「列アドレス」で、256Mバイト中の1バイトを指定している。
動作
NANDフラッシュメモリの基本動作とは以下のものがある。
- 読み書きはページ単位
- 消去はブロック単位
- 読み込みはシリアル
- ECC(Error Correct Code)格納用にOOB(Out Of Band)を持つ
