JP4643671B2 - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP4643671B2 JP4643671B2 JP2008061346A JP2008061346A JP4643671B2 JP 4643671 B2 JP4643671 B2 JP 4643671B2 JP 2008061346 A JP2008061346 A JP 2008061346A JP 2008061346 A JP2008061346 A JP 2008061346A JP 4643671 B2 JP4643671 B2 JP 4643671B2
- Authority
- JP
- Japan
- Prior art keywords
- mode
- cluster
- data
- write
- track
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
ページ単位で書き込み及び読み出しが行われ、前記ページ単位の2以上の自然数倍であるブロック単位で消去が行われる不揮発性半導体メモリと、前記揮発性キャッシュメモリ及び前記不揮発性半導体メモリ間のデータ転送を制御し、前記不揮発性半導体メモリに記憶されるデータを、前記セクタ単位より大きくかつ前記ページ単位より小さい第1の管理単位で管理するコントローラと、を具備し、前記コントローラは、前記不揮発性半導体メモリで発生した前記第1の管理単位の不良領域の数を、第1の不良領域数として管理し、前記第1の不良領域数に応じて動作モードを切り替えることを特徴とするメモリシステム、が提供される。
・物理ページ:NANDメモリチップ内部において一括して書き込み/読み出しが可能な単位のこと。物理ページサイズは、例えば4kB。ただし、主データ(ユーザデータなど)に対してSSD内で付加される誤り訂正符号などの冗長ビットは含まないものとする。通常、4kB+冗長ビット(例えば、数10B)が同時にメモリセルに書き込まれる単位となるが、説明の便宜上、上記のように定義する。
・論理ページ:SSD内で設定される書き込み/読み出し単位であり、1以上の物理ページに対応付けられている。論理ページサイズは、例えば8ビットノーマルモードでは、4kB、32ビット倍速モードでは、32kB。ただし、冗長ビットは含まないものとする。
・物理ブロック:NANDメモリチップ内部において独立して消去可能な最小単位のことであり、複数の物理ページから構成される。物理ブロックサイズは、例えば512kB。ただし、主データに対してSSD内で付加される誤り訂正符号などの冗長ビットは含まないものとする。通常、512kB+冗長ビット(例えば、数10kB)が同時に消去される単位となるが、説明の便宜上、上記のように定義する。
・論理ブロック:SSD内で設定される消去単位であり、1以上の物理ブロックに対応付けられている。論理ブロックサイズは、例えば8ビットノーマルモードでは、512kB、32ビット倍速モードでは、4MB。ただし、冗長ビットは含まないものとする。
・セクタ:ホストからの最小アクセス単位のこと。セクタサイズ(第1の単位)は、例えば512B。
・クラスタ:SSD内で「小さなデータ」を管理する管理単位。クラスタサイズ(第2の単位)はセクタサイズ以上であり、クラスタサイズの2以上の自然数倍が論理ページサイズとなるように定められる。
・トラック:SSD内で「大きなデータ」を管理する管理単位。クラスタサイズの2以上の自然数倍がトラックサイズに、かつ、トラックサイズ(第3の単位)の2以上の自然数倍が論理ブロックサイズ(第4の単位)となるように定められる。
・フリーブロック(FB):用途未割り当てのNAND型フラッシュメモリ上の論理ブロックのこと。用途を割り当てる際に消去してから使用する。
・バッドブロック(BB):NAND型フラッシュメモリ上の、誤りが多いなど記憶領域として使用できない物理ブロックのこと。例えば、消去動作が正常に終了しなかった物理ブロックがバッドブロックBBとして登録される。
・書き込み効率:所定期間内における、ホストから書き込んだデータ量に対する、論理ブロックの消去量の統計値のこと。小さいほどNAND型フラッシュメモリの消耗度が小さい。
・有効クラスタ:最新のデータを保持しているクラスタ。
・無効クラスタ:最新ではないデータを保持しているクラスタ。
・有効トラック:最新のデータを保持しているトラック。
・無効トラック:最新ではないデータを保持しているトラック。
・コンパクション:管理対象内の論理ブロックから、有効クラスタや有効トラックのみを取り出して、新しい論理ブロックに書き直すこと。
図1は、SSD(Solid State Drive)100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはCPUコアなどのホスト装置1と接続され、ホスト装置1の外部メモリとして機能する。また、SSD100は、RS232Cインタフェース(RS232C I/F)などの通信インタフェース3を介して、デバッグ用/製造検査用機器200との間でデータを送受信することができる。SSD100は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)10と、コントローラとしてのドライブ制御回路4と、揮発性半導体メモリとしてのDRAM20と、電源回路5と、状態表示用のLED6と、ドライブ内部の温度を検出する温度センサ7と、フューズ8とを備えている。
(1)8ビットノーマルモード
1chだけ動作させ、8ビット単位でデータ転送を行うモードである。物理ページサイズ(4kB)で書き込み/読み出しが行われる。また、物理ブロックサイズ(512kB)で消去が行われる。1つの物理ブロックに対して1つの論理ブロックが対応付けられ、論理ブロックサイズは512kBとなる。
(2)32ビットノーマルモード
4ch並列で動作させ、32ビット単位でデータ転送を行うモードである。物理ページサイズ×4(16kB)で書き込み/読み出しが行われる。また、物理ブロックサイズ×4(2MB)で消去が行われる。4つの物理ブロックに対して1つの論理ブロックが対応付けられ、論理ブロックサイズは2MBとなる。
(3)32ビット倍速モード
4ch並列で動作させ、更に、NANDメモリチップの倍速モードを利用して書き込み/読み出しを行うモードである。物理ページサイズ×4×2(32kB)で書き込み/読み出しが行われる。また、物理ブロックサイズ×4×2(4MB)で消去が行われる。8つの物理ブロックに対して1つの論理ブロックが対応付けられ、論理ブロックサイズは4MBとなる。
RC22について説明する。RC22は、ATAコマンド処理部121からのRead要求に対して、NANDメモリ10(FS12、IS13、MS11)からのReadデータを一時的に保存するための領域である。RC22は、本実施形態では例えば、m-line、n-way(mは2(k−i)以上の自然数、nは2以上の自然数)セットアソシアティブ方式で管理されており、1エントリに1クラスタ分のデータを保持できる。論理クラスタアドレスのLSB(k−i)ビットでlineが決定される。なお、RC22は、フルアソシアティブ方式で管理されていても良いし、単純なFIFO方式で管理されていてもよい。
WC21について説明する。WC21は、ATAコマンド処理部121からのWrite要求に対して、ホスト装置1からのWriteデータを一時的に保存するための領域である。m-line、n-way(mは2(k−i)以上の自然数、nは2以上の自然数)セットアソシアティブ方式で管理されており、1エントリに1クラスタ分のデータを保持できる。論理クラスタアドレスのLSB(k−i)ビットでlineが決定される。例えば、way1〜waynの順で書き込み可能なwayが検索される。また、WC21に登録されているトラックは最も古く更新された順が分かるように後述するWCトラック管理テーブル24のFIFO構造によってLRU(Least Recently Used)で管理される。なお、WC21は、フルアソシアティブ方式で管理されていても良い。また、WC21は、RC22とline数、way数が互いに異なっていてもよい。
(i)タグによって決定されたlineの書き込み可能なwayが最後の(本実施形態では、n個目の)空きwayだった場合、則ち最後の空きwayが使用される場合は、そのlineに登録されたトラックのうち、LRUに基づいて最も古く更新されたトラックを追い出し確定する。
(ii)WC21に登録されている異なるトラックの個数が所定数を超えた場合、LRU順で、当該トラックに属するWC中のクラスタ数が所定数未満のトラックの追い出しを確定する。
つぎに、FS12について説明する。FS12はクラスタ単位でデータを管理されるFIFOである。FS12は、ここを通過しているデータは、後段のIS13よりも更新頻度が高いとみなすためのバッファである。すなわち、FS12のFIFO構造においては、FIFO中を通過中の有効クラスタ(最新クラスタ)は、ホストからの同じアドレスに対する再書き込みがあった場合無効化されるので、FS12を通過中のクラスタは、FS12からIS13やMS11に追い出されたクラスタよりも、更新頻度が高いとみなすことができる。
つぎに、IS13について説明する。IS13は、FS13と同様にクラスタ単位でデータの管理が行われる。前述したように、IS13に格納されたデータは、更新頻度が低いデータとみなすことができる。FS12からIS13に対して論理ブロックの移動(Move)、すなわちFS12からの追い出しが発生すると、以前FS12の管理対象であった追い出し対象の論理ブロックはポインタの付け替えによりIS13の管理対象ブロックとなる。このFS12からIS13への論理ブロックの移動により、IS13のブロック数がIS13として許容される所定の上限値を超えると、すなわちIS内の書き込み可能なフリーブロックFBの数が閾値を下回ると、IS13からMS11へのデータ追い出しおよびコンパクション処理が実行され、IS13のブロック数は規定値に戻される。
・トラックをトラック内の有効クラスタ数×有効クラスタ係数(トラックがMS11内で無効トラックが存在する論理ブロックに存在するか否かによって重み付けされる数であり、存在したほうが存在しない場合より数が大きい)順にソートし、積の値が大きいトラック2i+1個(2論理ブロック分)を集めて論理ブロックサイズの自然数倍にしてMSIB11aに追い出す。
・有効クラスタ数が最も少ない2つの論理ブロックの合計有効クラスタ数が例えば、所定の設定値である2k個(1論理ブロック分)以上ある場合は、上のステップを繰り返す(IS内の2つの論理ブロックから、フリーブロックFBを作れるようになるまで行うため)。
・有効クラスタ数の少ない論理ブロックから順にクラスタを2k個集め、IS13内でコンパクションを行う。
なお、ここでは有効クラスタ数が最も少ない2つの論理ブロックを選択するとしたが、この数は2つに限定されず、2つ以上の数であればよい。また、所定の設定値は、選択する論路ブロック数よりも1つ少ない論理ブロック数に収容可能なクラスタ数以下であればよい。
つぎに、MS11について説明する。MS11はトラック単位でデータの管理を行う。MS11に格納されたデータは、更新頻度が低いとみなすことができる。WC21、FS12、IS13からMS11に対してトラックデータのCopyまたはMoveが発生すると、そのトラックはMSIS11aに割り当てられた論理ブロックに対して書き込まれる。一方で、トラック中の一部のデータ(クラスタ)のみがWC等から書き込まれるような場合には、既存のMS中のトラックデータと新しいデータをマージして新しいトラックデータを作った上でMSIB11aに書き込む、後述する受動マージが行われる。MS11内に無効トラックが蓄積し、MS11に割り当てられている論理ブロックの個数がMS11として許容されるブロック数の上限値を越えるような状況が発生すると、コンパクション処理を行って、無効なフリーブロックFBを作る。
・有効トラックが少ない論理ブロックから順番に、無効トラックを合わせることによって無効なフリーブロックFBが作れるようになるまで選択する。
・選択した論理ブロックに収容されたトラックを、WC21、FS12、IS13内のデータと統合する受動マージを行いながらコンパクションを実行する。
・2iトラック統合できた論理ブロックは、TFS11bに出力し(2iトラックMSコンパクション)、2iトラックに満たない個数のトラックは、MSIB11aに出力して(2iトラック未満コンパクション)、より多くの無効なフリーブロックFBを作る。
まず、図9を用いてRCクラスタ管理テーブル23について説明する。RC22は、前述したように、論理クラスタアドレスLSB(k−i)ビットでインデックスされるn-wayセットアソシアティブ方式で管理されている。RCクラスタ管理テーブル23は、RC(クラスタサイズ×m-line×n-way)22の各エントリのタグを管理するためのテーブルであり、各タグは、複数ビットの状態フラグ23aと、論理トラックアドレス23bによって構成されている。状態フラグ23aには、当該エントリを使用しても良いか否か(有効/無効)を示すValidビットの他に、当該エントリがNANDメモリ10からの読み出し待ちか否かを示すビット、当該エントリがATAコマンド処理部121への読み出し待ちか否かを示すビットなどが含まれる。RCクラスタ管理テーブル23は、DRAM20上のタグ記憶位置からLBAに一致する論理トラックアドレスを検索する逆引きテーブルとして機能する。
つぎに、図10を用いてWCクラスタ管理テーブル25について説明する。WC21は、前述したように、論理クラスタアドレスLSB(k−i)ビットでインデックスされるn-wayセットアソシアティブ方式で管理されている。WCクラスタ管理テーブル25は、WC(クラスタサイズ×m-line×n-way)21の各エントリのタグを管理するためのテーブルであり、各タグは、複数ビットの状態フラグ25aと、セクタ位置ビットマップ25bと、論理トラックアドレス25cによって構成されている。
つぎに、図11を用いてWCトラック管理テーブル24について説明する。WCトラック管理テーブル24は、WC21上に格納されているクラスタをトラック単位でまとめた情報を管理するものであり、FIFO的な機能を有するリンクドリスト構造によってトラック間のWC21に登録された順序(LRU)を表現している。なお、WC21で最後に更新された順序によってLRUを表現するようにしてもよい。各リストのエントリは、論理トラックアドレス24a、当該論理トラックアドレスに含まれるWC21中の有効クラスタ数24b、way-lineビットマップ24cおよび次のエントリへのポインタを示すnextポインタ24dから構成されている。WCトラック管理テーブル24は、論理トラックアドレス24aから所要情報を得るので、正引きテーブルとして機能する。
つぎに、図12を用いてトラック管理テーブル30について説明する。トラック管理テーブル30は、論理トラックアドレス単位でMS11上の論理的なデータ位置を管理するためのテーブルであり、クラスタ単位でFS12やIS13にデータが保持されている場合には、それらに関する基本情報と、詳細情報へのポインタも保持している。論理トラックアドレス30aをインデックスとした配列形式で構成される。論理トラックアドレス30aをインデックスとした各エントリは、クラスタビットマップ30b、論理ブロックID30c+論理ブロック内トラック位置30d、クラスタテーブルポインタ30e、FSクラスタ数30f、ISクラスタ数30gなどの情報で構成されている。トラック管理テーブル30は、論理トラックアドレスをインデックスとして、その論理トラックアドレスに対応する論理トラックが記憶されている論理ブロックID(記憶デバイス位置に対応)などの所要情報を得るので、正引きテーブルとして機能する。
つぎに、図13を用いてFS/IS管理テーブル40について説明する。FS/IS管理テーブル40は、論理クラスタ単位でFS12(FSIB12aも含む)もしくはIS13に保持されているデータの位置を管理するためのテーブルである。図13に示すように、論理トラックアドレス毎に独立したリンクドリスト形式で構成され、各リストの先頭エントリへのポインタは、前述したように、トラック管理テーブル30のクラスタテーブルポインタ30eのフィールドに保持されている。図13では、2つの論理トラックアドレス分のリンクドリストが示されている。各エントリは、論理クラスタアドレス40a、論理ブロックID40b、論理ブロック内クラスタ位置40c、FS/ISブロックID40d、nextポインタ40eから構成されている。FS/IS管理テーブル40は、論理クラスタアドレス40aから、その論理クラスタアドレスに対応する論理クラスタが記憶されている論理ブロックID40b、論理ブロックン内クラスタ位置40c(記憶デバイス位置に対応)などの所要情報を得るので、正引きテーブルとして機能する。
つぎに、図14を用いてMS論理ブロック管理テーブル35について説明する。MS論理ブロック管理テーブル35は、MS11に用いられている論理ブロックに関する情報(どの論理トラックが記憶されているか、追記可能か等)を一元管理するためのテーブルである。なお、MS論理ブロック管理テーブル35には、FS12(FSIB12も含む)、IS13に所属する論理ブロックに関する情報も登録されている。MS論理ブロック管理テーブル35は、論理ブロックID35aをインデックスとした配列形式で構成され、エントリ数は128GBのNANDメモリ10の場合は、32Kエントリまで持つことができる。各エントリは、2iトラック分のトラック管理ポインタ35b、有効トラック数35c、書き込み可能先頭トラック35d、Validフラグ35eから構成されている。このMS論理ブロック管理テーブル35は、記憶デバイス位置に対応する論理ブロックID35aから、この論理ブロックに記憶されている論理トラックアドレスなどの所要情報を得るので、逆引きテーブルとして機能する。
つぎに、図15を用いてFS/IS論理ブロック管理テーブル42について説明する。FS/IS論理ブロック管理テーブル42は、FS/ISブロックID42aをインデックスとした配列形式で構成され、FS12またはIS13として利用されている論理ブロックに関する情報(論理ブロックIDとの対応、FS/IS内クラスタ管理テーブル44へのインデックス、追記可能か等)を管理するためのテーブルである。FS/IS論理ブロック管理テーブル42は、主にFS/IS管理テーブル40中のFS/ISブロックID40dを用いてアクセスされる。各エントリは、論理ブロックID42b、ブロック内クラスタテーブル42c、有効クラスタ数42d、書き込み可能先頭ページ42e、Validフラグ42fから構成されている。このMS論理ブロック管理テーブル35は、記憶デバイス位置に対応するFS/ISブロックID42aから、この論理ブロックに記憶されている論理クラスタなどの所要情報を得るので、逆引きテーブルとして機能する。
つぎに、図16を用いてFS/IS内クラスタ管理テーブル44について説明する。FS/IS内クラスタ管理テーブル44は、FS12もしくはIS13として利用されている論理ブロック中の各クラスタ位置にどの論理クラスタが記録されているのかを示すテーブルである。1論理ブロックあたり、2jページ×2(k−j)クラスタ=2k個のエントリを持ち、当該論理ブロック内のクラスタ位置の0番目〜2k−1番目に対応する情報が連続領域に配置される。さらにこの2k個の情報を含むテーブルがFS12およびIS13に所属する論理ブロック数(P個)分だけ保持されており、FS/IS論理ブロック管理テーブル42のブロック内クラスタテーブル42cは、このP個のテーブルに対する位置情報(ポインタ)となっている。連続領域に配される各エントリ44aの位置は、1論理ブロック中のクラスタ位置を示し、また各エントリ44aの内容は、当該クラスタ位置にどの論理クラスタが記憶されているかが識別できるように、FS/IS管理テーブル40で管理される該当論理クラスタアドレスを含むリストへのポインタが登録されている。すなわち、エントリ44aは、リンクドリストの先頭を指し示すのではなく、リンクドリスト中の該当論理クラスタアドレスを含む1つのリストへのポインタが登録されている。
つぎに、図17を用いて論物変換テーブル50について説明する。論物変換テーブル50は、論理ブロックID50aをインデックスとした配列形式で構成され、エントリ数は、128GBのNANDメモリ10の場合は、最大32Kエントリまで持つことができる。論物変換テーブル50は、論理ブロックIDと物理ブロックIDとの変換、寿命に関する情報を管理するためのテーブルである。各エントリは、物理ブロックアドレス50b、消去回数50c、読み出し回数50dから構成される。この論物変換テーブル50は、論理ブロックIDから物理ブロックID(物理ブロックアドレス)などの所要情報を得るので、正引きテーブルとして機能する。
RC管理:RCクラスタ管理テーブル
WC管理:WCクラスタ管理テーブル、WCトラック管理テーブル
MS管理:トラック管理テーブル30、MS論理ブロック管理テーブル35
FS/IS管理:トラック管理テーブル30、FS/IS管理テーブル40、MS論理ブロック管理テーブル35、FS/IS論理ブロック管理テーブル42、FS/IS内クラスタ管理テーブル44
つぎに、図18に示すフローチャートを参照して、読み出し処理について説明する。ATAコマンド処理部121から、Readコマンドおよび読み出しアドレスとしてのLBAが入力されると、データ管理部120は、図9に示したRCクラスタ管理テーブル23と図10に示したWCクラスタ管理テーブル25を検索する(ステップS100)。具体的には、LBAのクラスタアドレスのLSB(k−i)ビット(図7参照)に対応するlineをRCクラスタ管理テーブル23とWCクラスタ管理テーブル25から選択し、選択したlineの各wayにエントリされている論理トラックアドレス23b、25cをLBAのトラックアドレスと比較し(ステップS110)、一致したwayが存在している場合は、キャッシュヒットとし、ヒットしたRCクラスタ管理テーブル23またはWCクラスタ管理テーブル25の該当line、該当wayに対応するWC21またはRC22のデータを読み出して、ATAコマンド処理部121に送る(ステップS115)。
つぎに、図19に示すフローチャートを参照して、書き込み処理について説明する。FUA(DRAMキャッシュをバイパスしてNANDへの直接書き込みを行う)でないWriteコマンドにより書き込まれたデータは必ず一旦WC21上に格納され、その後条件に応じてNANDメモリ10に対して書き込まれることになる。書き込み処理では、追い出し処理、コンパクション処理が発生する可能性がある。この実施の形態では、書き込み処理を、ライトキャッシュフラッシュ処理(以下WCF処理)と、クリーンインプットバッファ処理(以下CIB処理)との2ステージに大きく分割している。ステップS300からステップS320までは、ATAコマンド処理部121からのWrite要求からWCF処理までを示しており、ステップS330〜最終ステップまでがCIB処理を示している。
(i)タグによって決定されたlineの書き込み可能なwayが最後の(本実施形態では、n個目の)空きwayだった場合、則ち最後の空きwayが使用される場合は、そのlineに登録されたトラックのうちLRUに基づいて最も古く更新されたトラックを追い出し確定する
に基づいて追い出すトラックすなわちWC21内エントリを選択する。
(ii)WC21に登録されているトラックの数が所定数を超えた場合、
が成立した場合も、上記同様にしてNANDメモリ10への追い出し処理を実行する。
つぎに、上記有効クラスタ数(有効クラスタ数が2(k−i−1)個以上)に基づく判定によりWC21からMSIB11aへの追い出しが発生したときは、前述したように、次のような手順を実行する(ステップS310)。
1.WCクラスタ管理テーブル25を参照し、追い出しを行うクラスタに対応するタグ中のセクタ位置ビットマップ25bを参照し、セクタ位置ビットマップ25bが全て“1”でない場合は、NANDメモリ10に含まれる同一クラスタ中のセクタとマージする、後述のトラック内セクタ穴埋めを行う。また、トラック中のWC21内に存在しないクラスタについてはNANDメモリ10から読み出してマージする、受動マージ処理を実行する。
2.追い出し確定トラックが2i個未満の場合、WC21中のトラックの古いものから2i個になるまで2(k−i−1)個以上有効クラスタを持つ追い出し確定トラックを追加する。
3.Copyされるトラックが2i個以上あれば、2i個ずつを組として、MSIB11aに対して論理ブロック単位に書き込みを行う。
4.2i個組みに出来なかったトラックをMSIB11aに対してトラック単位に書き込みを行う。
5.Copy終了後に既にFS、IS、MS上に存在していたクラスタ、トラックのうちコピーされたトラックに属するものを無効化する。
つぎに、上記有効クラスタ数(有効クラスタ数が2(k−i−1)個未満)に基づく判定によりWC21からFSIB12aへの追い出しが発生したときは、前述したように、次のような手順を実行する。
1.WCクラスタ管理テーブル25における追い出しを行うクラスタに対応するタグ中のセクタ位置ビットマップ25bを参照し、セクタ位置ビットマップ25bが全て“1”でない場合は、NANDメモリ10に含まれる同一クラスタ中のセクタとマージする、クラスタ内セクタ穴埋めを行う。
2.WC内のトラックを古い順に辿って2(k−i−1)個未満の有効クラスタしか持たないトラックからクラスタを取り出して行き、有効クラスタ数が2k個になったらそれら全クラスタをFSIB12aに論理ブロック単位に書き込む。
3.2k個見つからなかった場合には、有効クラスタ数が2(k−i−1)個未満の全てのトラックを必要な論理ページ数分だけFSIB12aに書き込む。
4.Copy終了後に既にFS、IS上に存在していたクラスタのうちコピーされたのと同じものを無効化する。
上記のようなWCF処理が終了すると、つぎに、論理NAND層管理部120bは、WCF処理によって書き込まれたFSIB12aのデータをFS12にMoveする処理と、WCF処理によって書き込まれたMSIB11aのデータをMS11にMoveする処理などを含むCIB処理を実行する。CIB処理を開始すると、前述したように、連鎖的に各ブロック間のデータ移動やコンパクション処理が発生する可能性があり、処理全体に要する時間は状態によって大きく変化する。このCIB処理においては、基本的には、先ずMS11でのCIB処理が行われ(ステップS330)、つぎに、FS12でのCIB処理が行われ(ステップS340)、つぎに再びMS11でのCIB処理が行われ(ステップS350)、つぎにIS13でのCIB処理が行われ(ステップS360)、最後に再びMS11でのCIB処理が行われる(ステップS370)。なお、FS12からMSIB11aへの追い出し処理、あるいはFS12からIS13への追い出し処理、あるいはIS13からMSIB11aへの追い出し処理の際に、手順にループが発生した場合は、上記順番通りにならない場合もある。MS11、FS12およびIS13でのCIB処理を別々に説明する。
まず、MS11でのCIB処理について説明する(ステップS330)。WC21、FS12、IS13からMS11に対してトラックデータの移動が発生すると、そのトラックデータはMSIB11aに書き込まれる。MSIB11aへの書き込み完了後は、前述したように、トラック管理テーブル30を更新してトラックが配置される論理ブロックID30cとブロック内トラック位置30dなどを変更する(Move)。MSIB11aに新たなトラックデータが書き込まれた場合、もともとMS11もしくはTFS11bに存在していたトラックデータは無効化される。この無効化処理は、MS論理ブロック管理テーブル35における古いトラック情報が保存されていた論理ブロックのエントリからトラックを無効化することで実現する。具体的には、MS論理ブロック管理テーブル35の該当エントリ中のトラック管理ポインタ35bのフィールド中の該当トラックのポインタが削除され、有効トラック数が−1される。このトラック無効化によって1論理ブロック中の全てのトラックが無効になった場合は、Validフラグ35eが無効化される。このような無効化などにより、MS11のブロックは無効なトラックを含んだものが発生し、これが繰り返されるとブロックの利用効率が低下して、使用可能な論理ブロックに不足が生じることがある。
1.MS論理ブロック管理テーブル35のValidフラグ35eを参照することにより、MS11内に無効となった論理ブロックが存在する場合、そのブロックを無効なフリーブロックFBとする。
2.MSIB11aでフルに成った論理ブロックをMS11に追い出す。具体的には、前述したMS構造管理テーブル(図示せず)を更新して、該当論理ブロックをMSIB管理下からMS管理下に移し変える。
3.MS11に割り当てられている論理ブロックの個数がMS11として許容されるブロック数の上限値を越えるような状況が発生するか否かを判断し、発生している場合に、以下のMSコンパクションを実行する。
4.MS論理ブロック管理テーブル35の有効トラック数35cのフィールドなどを参照することにより、TFS11bに含まれない論理ブロックのうち無効にされたトラックを持つものを、有効トラック数でソートする。
5.有効トラック数の少ない論理ブロックから、トラックを集めてコンパクションを実施する。この際にまず、1論理ブロック分(2iトラック)ずつCopyしてコンパクションを実施する。なお、コンパクション対象のトラックがWC21、FS12、IS13に有効クラスタを持つ場合にはそれらもマージする。
6.コンパクション元の論理ブロックを無効なフリーブロックFBとする。
7.コンパクションして有効な2iトラックで構成された1論理ブロックができたら、TFS11bの先頭にMoveする。
8.論理ブロック内の有効トラックを他の論理ブロックにCopyして、無効なフリーブロックFBが作れる場合は、2iトラック未満の個数の有効トラックをMSIB11aに対し、トラック単位で追記書き込みする。
9.コンパクション元の論理ブロックを無効なフリーブロックFBとする。
10.MS11に割り当てられている論理ブロックの個数がMS11として許容されるブロック数の上限値を下回ると、MSコンパクション処理を終了する。
つぎに、FS12でのCIB処理について説明する(ステップS340)。WC21からFSIB12aへのクラスタ書き込み処理によって全ページ書き込み済みの論理ブロックがFSIB12a中に作られた場合、FSIB12a中のそれらのブロックは、FSIB12aからFS12に対してMoveされる。このMoveにともなって複数の論理ブロックで構成されるFIFO構造のFS12から古い論理ブロックが追い出される状況が発生する。
1.FS/IS論理ブロック管理テーブル42のValidフラグ35eなどを参照することにより、FS12内に無効となった論理ブロックが存在する場合、そのブロックを無効なフリーブロックFBとする。
2.FSIB12aでフルに成ったブロックをFS12に追い出す。具体的には、前述したFS/IS構造管理テーブル(図示せず)を更新して、該当ブロックをFSIB管理下からFS管理下に移し変える。
3.FS12に割り当てられている論理ブロックの個数がFS12として許容されるブロック数の上限値を越えるような状況が発生するか否かを判断し、発生している場合に、以下の追い出しを実行する。
4.まず追い出し対象の最古の論理ブロック中のクラスタデータのうちIS13に移動せずに、直接MS11に移動すべきものを決定する(実際には、MSの管理単位がトラックであるので、トラック単位での決定)。
(ア)追い出し対象の論理ブロック中の有効クラスタをページの先頭から順にスキャンする。
(イ)クラスタが属するトラックがFS中に何個の有効クラスタを保有しているか、トラック管理テーブル30のFSクラスタ数30fのフィールドを参照して検索する。
(ウ)トラック内有効クラスタ数が所定の閾値(例えば2k−i個の50%)以上だった場合、そのトラックをMSへの追い出し候補とする。
5.MS11に追い出すべきトラックをMSIB11aに対して書き込む。
6.追い出しトラックが残っている場合、さらにMSIB11への追い出しを実行する。
7.上記2〜4の処理の後も追い出し対象の論理ブロックに有効なクラスタが存在している場合、この論理ブロックをIS13にMoveする。
なお、FS12からMSIB11aへの追い出しが発生したときには、その直後、MS11での前述したCIB処理が実行される(ステップS350)。
つぎに、IS13でのCIB処理について説明する(ステップS360)。上記したFS12からIS13へのブロック移動によって論理ブロックがIS13に追加されるが、これにともなって複数個の論理ブロックで構成されるIS13に対して管理可能なブロック数の上限を超えてしまう状況が発生する。このような状況が発生した場合、IS13では、まずMS11への1〜複数個の論理ブロックの追い出しを行った後、ISコンパクションを実行する。具体的には、次のような手順を実行する。
1.IS13に含まれるトラックをトラック内の有効クラスタ数×有効クラスタ係数でソートし、積の値が大きいトラック2i+1個(2論理ブロック分)を集めてMSIB11aに追い出す。
2.有効クラスタ数が最も少ない2i+1個の論理ブロックの合計有効クラスタ数が例えば、所定の設定値である2k個(1論理ブロック分)以上ある場合は、上のステップを繰り返す。
3.上記の追い出しを行った後、有効クラスタ数の少ない論理ブロックから順にクラスタを2k個集め、IS13内でコンパクションを行う。
4.コンパクション元の論理ブロックのうち有効クラスタがなくなったものを無効なフリーブロックFBとして返還する。
なお、IS13からMSIB11aへの追い出しが発生したときには、その直後、MS11での前述したCIB処理が実行される(ステップS370)。
BB管理テーブル(第2の管理テーブル)200は、物理ブロック(512kB)単位でバッドブロック(第2の不良領域)BBを管理するためのテーブルである。BB管理テーブル200は、図22に示すように、例えば、4(チャネル)×2(プレーン/チャネル)個のチャネル内プレーン毎に、(物理ブロック数/プレーン)×(NANDメモリチップ数/1並列動作要素)個数分の物理ブロックに関する情報をもつ二次元配列形式で構成されており、各エントリには、各物理ブロックに対する物理ブロックID200aが保持されている。
図23は、バッドクラスタテーブル90の構造を示す図である。図23において、バッドクラスタテーブル(第1の管理テーブル)90は、NANDメモリ10から読み出せなくなったクラスタアドレス(第1の不良領域)を記録しておくためのテーブルであり、本テーブルには、クラスタアドレス90aおよびセクタビットマップ90bによる2つのフィールドが設けられている。また、バッドクラスタテーブル90は、1論理ブロックのクラスタ数に対応して2k個のエントリを有する。なお、このバッドクラスタテーブル90は、正引きテーブルであるFS/IS管理テーブル40から参照され、論理トラックアドレスからその論理アドレスに対応するデータが存在する記憶デバイス位置を検索することができるので、正引きテーブルとして機能する。
つぎに、バッドクラスタテーブル90に対する登録処理について図24を参照して説明する。図24は、バッドクラスタテーブル90にバッドクラスタ情報を登録する処理を示すフローチャートである。
(1)FS12/IS13/MS11からFS12へのクラスタ穴埋め処理
(2)MS11およびIS13でのコンパクション処理
(3)MS11への受動マージ処理
(4)MS11に対するトラック追い出し処理
つぎに、バッドクラスタテーブル90に登録されたバッドクラスタ情報の削除について説明する。バッドクラスタ情報の削除は、バッドクラスタとして登録されたアドレスに対し、例えばWC21からのデータの追い出しに伴い、NANDメモリ10にデータが書き込まれる場合などに行われる。このような書き込み処理が行われる場合、ダミーデータで置き換えられていた記憶領域は、無効クラスタとなるので、もはやバッドクラスタとして記憶しておく必要はなく、バッドクラスタ情報の削除が可能となる。このとき、バッドクラスタテーブルにおいて、無効クラスタとなったクラスタの該当セクタビットの値が、“1”から“0”に変更される。
ここで、上述したバッドクラスタテーブル90に対する登録処理および削除処理に関して、若干の補足説明を加える。
つぎに、Write_FUA(Force Unit Access)について説明する。WC21からNANDメモリ10への追い出しが発生しないWrite要求に対しては、書き込み処理の終了通知は、データがWC21に書き込まれた時点でホスト装置1に通知される。従って、この時点で電源障害などが起きた場合は、WC21内のデータは失われる。そこで、ホスト装置1からのデータをWC21からNANDメモリ10に書き込んだ時点で書き込み処理の終了通知をホスト装置1へ返す処理としてWrite_FUAが用いられる場合がある。このようなWrite_FUAでは、WC21に書き込まれたホスト装置1からのデータを迅速にNANDメモリ10へ書き込まなければ、電源障害時のデータ消失の防止に繋がらない。そこで、本実施の形態では、Write_FUA処理を行なう際に、ホスト装置1からのデータを、RC22を介してNANDメモリ10に書き込む。
上述したように、Writeコマンドにより書き込まれたデータは必ず一旦WC21上に格納され、その後条件に応じてNANDメモリ10に対して書き込まれることになる。書き込み処理では、追い出し処理、コンパクション処理が発生する可能性がある。この実施の形態では、書き込み処理を、ライトキャッシュフラッシュ処理(以下WCF処理)と、クリーンインプットバッファ処理(以下CIB処理)との2ステージに大きく分割している(図19参照)。WBモードは、通常の動作モードであり、AM(ATAコマンド処理部121)は、標準的な処理動作を行う。
データ管理部120は、WBモードからWTモードへの遷移が必要となると、WTモードに遷移したことをATAコマンド処理部121に通知する。データ管理部120から通知を受けたATAコマンド処理部121は、ホスト装置1からの全てのWrite要求をWRITE_FUAに置き換えて発行する。WTモードは、SSD100が寿命に近づいた時に、ホスト装置1から書き込まれたデータをできるだけ保障するために用いられる動作モードである。WTモードの場合、AMはホスト装置1から要求されたデータの書き込み時に通常のWrite要求の代わりにWrite_FUA要求によってデータの書き込みを行う。なお、一度WTモードに遷移すると、リセットもしくは電源がOFFされるまでWTモードのまま処理を続けるか、さらにRDオンリーモードへ遷移する。またリセット直後、もしくは電源ON直後は必ずデータ管理部120の内部状態を検査し、条件に達していた場合は再びWTモードで起動される。
データ管理部120がWTモードに遷移する条件は次の通りである。
・バッドクラスタテーブル90の残エントリ数が所定数(第1の閾値)以下となった(論理NAND層管理部120bによる判定)
・バッドブロック管理テーブル200の残エントリ数が所定数(第3の閾値)以下となった(物理NAND層管理部120cによる判定)
データ管理部120では、これらの条件の何れか一方を満たした場合に、WBモードからWTモードへ遷移することとなる。このように、WTモードへ遷移することによって、書き込み要求のあったデータを都度NANDメモリ10に書き込むことが可能となる。これにより、バッドクラスタ、或いはバッドブロックBBの数が増加傾向にある疲弊状態のSSD100にあっても、データの書き込みが突然不能になることはなく、所定量まではNANDメモリ10へのデータの書き込みを保障することが可能となる。
データ管理部120は、WTモードからRDオンリーモードへの遷移条件が満たされると、Write要求に対して処理を開始せずに、RDオンリーモードのため受け付け出来ないことを明記してエラーを返す。RDオンリーモードは、SSD100が寿命に近づいた時に、ホスト装置1から既に書き込まれていたデータをできるだけ保障するために用いられる動作モードである。RDオンリーモードの場合、AMはホスト装置1から要求されたデータの書き込み処理を、DMに要求することなくエラーで返す。なお一度RDオンリーモードに遷移すると、リセットもしくは電源がOFFされるまでRDオンリーモードのまま処理を続ける。またリセット直後、もしくは電源がON直後は必ずデータ管理部120の内部状態を検査し、条件に達していた場合は再びRDオンリーモードで起動される。
データ管理部120がRDオンリーモードに遷移する条件は以下の通りである。
・バッドクラスタテーブル90の残エントリ数が所定数(第2の閾値、例えば、0個)以下となった(論理NAND層管理部120bによる判定)
・BB管理テーブル200の残エントリ数が所定数(第4の閾値、例えば、0個)以下となった(物理NAND層管理部120cによる判定)
・フリーブロックFBが不足となった(論理NAND層管理部120bによる判定)
フリーブロックFBが不足となった場合とは、例えばコンパクション処理を行ったとしても、フリーブロックFBを作ることができず、且つ、MS11内の論理ブロック数が規定数を上回る場合などである。具体的には、NANDメモリ10に書き込むエリアが無くなった状態である。
データ管理部120は、タスク起動時にログなどを参照して電源OFF直前の状態を復元する。このとき、ログが保存されているブロックがL2−ECCエラーによって読み出せなかった場合には、データ管理部120は、初期化が失敗したと見做してエラーフラグを立てて初期化管理部124に初期化完了通知メッセージを返す。
Claims (18)
- セクタ単位のデータを記憶する揮発性キャッシュメモリと、
ページ単位で書き込み及び読み出しが行われ、前記ページ単位の2以上の自然数倍であるブロック単位で消去が行われる不揮発性半導体メモリと、
前記揮発性キャッシュメモリ及び前記不揮発性半導体メモリ間のデータ転送を制御し、前記不揮発性半導体メモリに記憶されるデータを、前記セクタ単位より大きくかつ前記ページ単位より小さい第1の管理単位で管理するコントローラと、を具備し、
前記コントローラは、前記不揮発性半導体メモリで発生した前記第1の管理単位の不良領域の数を、第1の不良領域数として管理し、前記第1の不良領域数に応じて動作モードを切り替えることを特徴とするメモリシステム。 - 前記コントローラは、前記不揮発性半導体メモリで発生した前記ブロック単位の不良領域の数を第2の不良領域数として管理し、前記第2の不良領域数に応じて、前記動作モードを切り替えることを特徴とする請求項1に記載のメモリシステム。
- 前記動作モードは、ライトバックモード、ライトスルーモード、リードオンリーモードの何れかであることを特徴とする請求項1に記載のメモリシステム。
- 前記コントローラは、前記第1の不良領域数が第1の閾値以上である場合に、前記ライトバックモードから前記ライトスルーモードへ動作モードを切り替えることを特徴とする請求項3に記載のメモリシステム。
- 前記コントローラは、前記第1の不良領域数が前記第1の閾値より大きい第2の閾値以上である場合に、前記ライトスルーモードから前記リードオンリーモードへ動作モードを切り替えることを特徴とする請求項4に記載のメモリシステム。
- 前記コントローラは、前記不揮発性半導体メモリ内においてブロック単位の空き領域が不足している場合に、前記ライトスルーモードから前記リードオンリーモードへ動作モードを切り替えることを特徴とする請求項3乃至請求項5の何れか1項に記載のメモリシステム。
- 前記動作モードは、ライトバックモード、ライトスルーモード、リードオンリーモードの何れかであることを特徴とする請求項2に記載のメモリシステム。
- 前記コントローラは、前記第2の不良領域数が第3の閾値以上である場合に、前記ライトバックモードから前記ライトスルーモードへ動作モードを切り替えることを特徴とする請求項7に記載のメモリシステム。
- 前記コントローラは、前記第2の不良領域数が前記第3の閾値より大きい第4の閾値以上である場合に、前記ライトスルーモードから前記リードオンリーモードへ動作モードを切り替えることを特徴とする請求項8に記載のメモリシステム。
- 前記コントローラは、前記不揮発性半導体メモリ内においてブロック単位の空き領域が不足している場合に、前記ライトスルーモードから前記リードオンリーモードへ動作モードを切り替えることを特徴とする請求項7乃至請求項9の何れか1項に記載のメモリシステム。
- 前記コントローラは、前記不揮発性半導体メモリから読みだした前記第1の管理単位のデータの誤りを訂正可能な誤り訂正回路を更に具備し、前記誤り訂正回路での訂正に失敗した場合に、前記第1の管理単位の不良領域として登録することを特徴とする請求項1に記載のメモリシステム。
- 前記コントローラは、前記ブロック単位の領域に対する消去動作が正常に終了しなかった場合に、前記ブロック単位の不良領域として登録することを特徴とする請求項2に記載のメモリシステム。
- 前記コントローラは、前記ライトバックモードにおいて、ホスト装置から入力されたデータを前記揮発性キャッシュメモリに書き込み、所定の条件が満たされた場合に、前記揮発性キャッシュメモリに記憶されたデータを前記不揮発性半導体メモリに追い出すことを特徴とする請求項3または請求項7に記載のメモリシステム。
- 前記コントローラは、前記ライトスルーモードにおいて、ホスト装置から入力されたデータを前記揮発性キャッシュメモリに書き込んだ後、前記揮発性キャッシュメモリに記憶されたデータを強制的に前記不揮発性半導体メモリに追い出すことを特徴とする請求項3または請求項7に記載のメモリシステム。
- 前記コントローラは、前記リードオンリーモードにおいて、書き込み要求を受け付けずにエラーを返すことを特徴とする請求項3または請求項7に記載のメモリシステム。
- 前記コントローラは、前記不揮発性半導体メモリの第1の記憶領域に記憶されるデータを、前記第1の管理単位で管理し、前記不揮発性半導体メモリの第2の記憶領域に記憶されるデータを、前記ページ単位より大きくかつ前記ブロック単位より小さい第2の管理単位で管理する請求項1に記載のメモリシステム。
- 前記第2の管理単位は、前記第1の管理単位の2以上の自然数倍であることを特徴とする請求項16に記載のメモリシステム。
- 前記コントローラは、前記メモリシステムの初期化に失敗した場合に、前記ライトバックモード、前記ライトスルーモード、前記リードオンリーモードの少なくとも1つから、保護モードへ動作モードを切り替えることを特徴とする請求項3または請求項7に記載のメモリシステム。
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008061346A JP4643671B2 (ja) | 2008-03-11 | 2008-03-11 | メモリシステム |
| US12/394,875 US8706950B2 (en) | 2008-03-01 | 2009-02-27 | Memory system |
| US14/199,808 US9201717B2 (en) | 2008-03-01 | 2014-03-06 | Memory system |
| US14/923,028 US20160062675A1 (en) | 2008-03-01 | 2015-10-26 | Memory system |
| US16/293,144 US10901625B2 (en) | 2008-03-01 | 2019-03-05 | Memory system |
| US17/124,954 US11409442B2 (en) | 2008-03-01 | 2020-12-17 | Memory system |
| US17/880,546 US12032831B2 (en) | 2008-03-01 | 2022-08-03 | Memory system |
| US18/765,095 US12572282B2 (en) | 2008-03-01 | 2024-07-05 | Memory system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008061346A JP4643671B2 (ja) | 2008-03-11 | 2008-03-11 | メモリシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2009217603A JP2009217603A (ja) | 2009-09-24 |
| JP4643671B2 true JP4643671B2 (ja) | 2011-03-02 |
Family
ID=41189373
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008061346A Expired - Fee Related JP4643671B2 (ja) | 2008-03-01 | 2008-03-11 | メモリシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4643671B2 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012118739A (ja) | 2010-11-30 | 2012-06-21 | Toshiba Corp | 記憶装置、及び制御方法 |
| JP5002719B1 (ja) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
| JP2013047913A (ja) * | 2011-08-29 | 2013-03-07 | Toshiba Corp | 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置 |
| JP5611909B2 (ja) * | 2011-08-19 | 2014-10-22 | 株式会社東芝 | 情報処理装置、性能評価ツール、外部記憶装置の性能評価方法 |
| CN103890724B (zh) | 2011-08-19 | 2017-04-19 | 株式会社东芝 | 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法 |
| JP6078984B2 (ja) * | 2012-05-23 | 2017-02-15 | 富士通株式会社 | 処理装置,処理方法,処理プログラム及び管理装置 |
| JP6005566B2 (ja) | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
| JP5535383B2 (ja) * | 2013-09-02 | 2014-07-02 | 株式会社東芝 | ホスト装置および制御ツール |
| JP6275427B2 (ja) | 2013-09-06 | 2018-02-07 | 株式会社東芝 | メモリ制御回路およびキャッシュメモリ |
| KR102681659B1 (ko) * | 2017-01-12 | 2024-07-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| TWI638262B (zh) * | 2017-11-17 | 2018-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置及應用於其上的操作方法 |
| JP7143487B2 (ja) * | 2020-05-18 | 2022-09-28 | キオクシア株式会社 | 情報処理装置 |
| CN114415961B (zh) * | 2022-01-21 | 2023-10-27 | 珠海奔图电子有限公司 | Nand flash存储器的坏块处理方法、电子设备及存储介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6464047A (en) * | 1987-09-04 | 1989-03-09 | Fujitsu Ltd | Disk cache control system |
| US5420998A (en) * | 1992-04-10 | 1995-05-30 | Fujitsu Limited | Dual memory disk drive |
| JPH06309232A (ja) * | 1993-04-20 | 1994-11-04 | Hitachi Ltd | ディスクキャッシュの制御方式 |
| JP2000173289A (ja) * | 1998-12-10 | 2000-06-23 | Toshiba Corp | エラー訂正可能なフラッシュメモリシステム |
| US7233880B2 (en) * | 2003-09-11 | 2007-06-19 | Intel Corporation | Adaptive cache algorithm for temperature sensitive memory |
| JP4242245B2 (ja) * | 2003-10-06 | 2009-03-25 | 株式会社ワークビット | フラッシュrom制御装置 |
| WO2009107286A1 (en) * | 2008-02-29 | 2009-09-03 | Kabushiki Kaisha Toshiba | Information processing apparatus and nonvolatile semiconductor memory drive |
-
2008
- 2008-03-11 JP JP2008061346A patent/JP4643671B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2009217603A (ja) | 2009-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4745356B2 (ja) | メモリシステム | |
| JP4643671B2 (ja) | メモリシステム | |
| JP5010505B2 (ja) | メモリシステム | |
| US10901625B2 (en) | Memory system | |
| JP4691122B2 (ja) | メモリシステム | |
| JP4675985B2 (ja) | メモリシステム | |
| JP4653817B2 (ja) | メモリシステム | |
| JP4551940B2 (ja) | メモリシステム | |
| JP4498426B2 (ja) | メモリシステム | |
| JP4691123B2 (ja) | メモリシステム | |
| JP5032371B2 (ja) | メモリシステム | |
| JP4643667B2 (ja) | メモリシステム | |
| JP4762261B2 (ja) | メモリシステム | |
| JP2009211234A (ja) | メモリシステム | |
| JP2009211233A (ja) | メモリシステム | |
| JP4592774B2 (ja) | メモリシステム | |
| JP5221593B2 (ja) | メモリシステム | |
| JP4621749B2 (ja) | メモリシステム | |
| JP4746641B2 (ja) | メモリシステム | |
| JP4510107B2 (ja) | メモリシステム | |
| JP5178857B2 (ja) | メモリシステム | |
| JP4703673B2 (ja) | メモリシステム | |
| JP2009211224A (ja) | メモリシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100219 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100809 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101018 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101109 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101202 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |