JP2009211222A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2009211222A
JP2009211222A JP2008051467A JP2008051467A JP2009211222A JP 2009211222 A JP2009211222 A JP 2009211222A JP 2008051467 A JP2008051467 A JP 2008051467A JP 2008051467 A JP2008051467 A JP 2008051467A JP 2009211222 A JP2009211222 A JP 2009211222A
Authority
JP
Japan
Prior art keywords
data
cluster
track
logical
written
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.)
Granted
Application number
JP2008051467A
Other languages
English (en)
Other versions
JP4621749B2 (ja
Inventor
Junji Yano
純二 矢野
Hidenori Matsuzaki
秀則 松崎
Kosuke Hatsuda
幸輔 初田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008051467A priority Critical patent/JP4621749B2/ja
Priority to US12/394,875 priority patent/US8706950B2/en
Publication of JP2009211222A publication Critical patent/JP2009211222A/ja
Application granted granted Critical
Publication of JP4621749B2 publication Critical patent/JP4621749B2/ja
Priority to US14/199,808 priority patent/US9201717B2/en
Priority to US14/923,028 priority patent/US20160062675A1/en
Priority to US16/293,144 priority patent/US10901625B2/en
Priority to US17/124,954 priority patent/US11409442B2/en
Priority to US17/880,546 priority patent/US20220374151A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ホスト装置からフラッシュメモリへのデータ書き込み処理に対して一定のレイテ
ンシを保証することが可能なメモリシステムを提供する。
【解決手段】プロセッサ104は、ホスト装置1からWrite要求があった場合には、ホス
ト装置1からのデータをWC21に書き込むととともに、所定の条件を満たした場合には
WC21のデータをNANDメモリ10に追い出し、ホスト装置1から読み出し要求があ
った場合には、読み出し要求のあったデータをNANDメモリ10からRC22に読み出
した後、ホスト装置1へ転送し、Write_FUA要求をホスト装置1から受けると、Write_FUA
要求で指定されたデータをホスト装置1からRC22に書き込むとともにRC22に書き
込んだデータをNANDメモリ10へ書き込む。
【選択図】 図21

Description

本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
コンピュータシステムに用いられる外部記憶装置として、NAND型フラッシュメモリ
などの不揮発性半導体メモリを搭載したSSD(Solid State Drive)が注目されている
。フラッシュメモリは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
SSD内には、複数のフラッシュメモリチップ、ホスト装置からの要求に応じて各フラ
ッシュメモリチップのリード/ライト制御を行うコントローラ、各フラッシュメモリチッ
プとホスト装置との間でデータ転送を行うためのバッファメモリ、電源回路、ホスト装置
に対する接続インタフェースなどを備えている(例えば、特許文献1参照)。
ところで、不揮発性半導体メモリには、NAND型フラッシュメモリのように、データ
を記憶させる場合にブロック単位で一度データを消去してからその後に書き込みを行うも
の、ページ単位で書き込み/読み出しを行うものなど、消去/書き込み/読み出しの単位
が固定されているものがある。
一方、パーソナルコンピュータなどのホスト機器がハードディスクをはじめとする2次
記憶装置に対してデータの書き込み/読み出しを行う単位は、セクタと呼ばれる。セクタ
は、半導体記憶装置の消去/書き込み/読み出しの単位とは独立に定められる。
例えば、不揮発性半導体メモリのブロックの大きさ(ブロックサイズ)は、512kB
、ページの大きさ(ページサイズ)は、4kBであるのに対して、ホスト機器のセクタの
大きさ(セクタサイズ)は、512Bのように定められている。
このように、不揮発性半導体メモリの消去/書き込み/読み出しの単位は、ホスト機器
の書き込み/読み出しの単位よりも大きい場合がある。
このような半導体記憶素子を用いてハードディスクのようなパーソナルコンピュータの
二次記憶装置を構成する場合、ホスト機器としてのパーソナルコンピュータからの小さな
サイズのデータは、半導体記憶素子のブロックサイズ、ページサイズに適合させてアドレ
ス変換を行う必要がある。このため、NAND型フラッシュメモリを用いて大容量の二次
記憶装置を構成する場合においては、上記のようなアドレス変換を行うための管理テーブ
ルが必要となる。
SSDにおいては、フラッシュメモリとホスト装置との間に、キャッシュメモリを介在
させて、フラッシュメモリから高速にデータを読み出すように構成されたSSDが開示さ
れている(例えば、特許文献2参照)。
しかしながら、キャッシュメモリにホスト装置からの書き込みが発生した際に、キャッ
シュメモリが満杯の場合は、キャッシュメモリからフラッシュメモリへのデータ追い出し
を行ってから、キャッシュメモリにデータを書き込む必要がある。また、書き込み用のキ
ャシュメモリでは、読み出し用のキャッシュメモリとは異なって、フラッシュメモリへの
追い出し処理が発生するため、処理が複雑となり、管理テーブルの更新や管理テーブルか
らの検索処理に時間がかかる。このため、書き込み用のキャッシュメモリを介してフラッ
シュメモリへデータを書き込む際には、データ書き込みに長時間を要する場合があるとい
う問題があった。
また、コンピュータシステムでは、書き込み処理の終了通知は、書き込み用のキャッシ
ュメモリに書き込まれた時点でホスト装置に通知されるので、この時点で電源障害などが
起きた場合は、キャッシュメモリ内のデータは失われる。そこで、ホスト装置からのデー
タを書き込み用のキャッシュメモリからフラッシュメモリに書き込んだ時点で書き込み処
理の終了通知をホスト装置へ返す処理としてWrite_FUA(Force Unit Access)が用いら
れる場合がある。このようなWrite_FUAでは、キャッシュメモリに書き込まれたホスト装
置からのデータを迅速にフラッシュメモリへ書き込まなければ、電源障害時のデータ消失
の防止に繋がらない。
特許第3688835号公報 特表2007−528079号
本発明は、ホスト装置からフラッシュメモリへのデータ書き込み処理に対して一定のレ
イテンシを保証することが可能なメモリシステムを提供する。
本願発明の一態様によれば、データの読み出しが行われる揮発性の半導体記憶素子から
構成される第1の記憶部と、前記データの書き込みが行われる揮発性の半導体記憶素子か
ら構成される第2の記憶部と、前記データの読み出し/書き込みが行われる不揮発性の半
導体記憶素子から構成される第3の記憶部と、前記第1、第2および第3の記憶部でのデ
ータ管理を行ない、外部からデータの書き込み要求があった場合には、前記データを前記
第2の記憶部に書き込むとともに、所定の条件を満たした場合には前記第2の記憶部に書
き込んだデータを前記第3の記憶部に追い出し、外部からデータの読み出し要求があった
場合には、前記読み出し要求のあったデータを前記第3の記憶部から前記第1の記憶部に
読み出すとともに、前記第1の記憶部に読み出したデータを外部へ転送するコントローラ
と、を具備し、前記コントローラは、前記第3の記憶部を書き込み先として指定したデー
タの強制書き込み命令を外部から受けると、所定の条件を満たした場合に、前記強制書き
込み命令で指定されたデータを前記第1の記憶部に書き込み、前記第1の記憶部に書き込
んだデータを前記第3の記憶部へさらに書き込むことを特徴とするメモリシステム、が提
供される。
本発明によれば、ホスト機器からフラッシュメモリへのデータ書き込み処理に対して一
定のレイテンシを保証することが可能なメモリシステムを提供できる。
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明におい
て、同一の機能および構成を有する要素については、同一符号を付し、重複説明は必要な
場合にのみ行う。
先ず、本明細書で用いる用語について定義しておく。
・物理ページ:NANDメモリチップ内部において一括して書き込み/読み出しが可能
な単位のこと。物理ページサイズは、例えば4kB。ただし、主データ(ユーザデータな
ど)に対してSSD内で付加される誤り訂正符号などの冗長ビットは含まないものとする
。通常、4kB+冗長ビット(例えば、数10B)が同時にメモリセルに書き込まれる単
位となるが、説明の便宜上、上記のように定義する。
・論理ページ:SSD内で設定される書き込み/読み出し単位であり、1以上の物理ペ
ージに対応付けられている。論理ページサイズは、例えば8ビットノーマルモードでは、
4kB、32ビット倍速モードでは、32kB。ただし、冗長ビットは含まないものとす
る。
・物理ブロック:NANDメモリチップ内部において独立して消去可能な最小単位のこ
とであり、複数の物理ページから構成される。物理ブロックサイズは、例えば512kB
。ただし、主データに対してSSD内で付加される誤り訂正符号などの冗長ビットは含ま
ないものとする。通常、512kB+冗長ビット(例えば、数10kB)が同時に消去さ
れる単位となるが、説明の便宜上、上記のように定義する。
・論理ブロック:SSD内で設定される消去単位であり、1以上の物理ブロックに対応
付けられている。論理ブロックサイズは、例えば8ビットノーマルモードでは、512k
B、32ビット倍速モードでは、4MB。ただし、冗長ビットは含まないものとする。
・セクタ:ホストからの最小アクセス単位のこと。セクタサイズは、例えば512B。
・クラスタ:SSD内で「小さなデータ」を管理する管理単位。クラスタサイズはセク
タサイズ以上であり、クラスタサイズの2以上の自然数倍が論理ページサイズとなるよう
に定められる。
・トラック:SSD内で「大きなデータ」を管理する管理単位。クラスタサイズの2以
上の自然数倍がトラックサイズに、かつ、トラックサイズの2以上の自然数倍が論理ブロ
ックサイズとなるように定められる。
・フリーブロック(FB):用途未割り当てのNAND型フラッシュメモリ上の論理ブ
ロックのこと。用途を割り当てる際に消去してから使用する。
・バッドブロック(BB):NAND型フラッシュメモリ上の、誤りが多いなど記憶領
域として使用できない物理ブロックのこと。例えば、消去動作が正常に終了しなかった物
理ブロックがバッドブロックBBとして登録される。
・書き込み効率:所定期間内における、ホストから書き込んだデータ量に対する、論理
ブロックの消去量の統計値のこと。小さいほどNAND型フラッシュメモリの消耗度が小
さい。
・有効クラスタ:最新のデータを保持しているクラスタ。
・無効クラスタ:最新ではないデータを保持しているクラスタ。
・有効トラック:最新のデータを保持しているトラック。
・無効トラック:最新ではないデータを保持しているトラック。
・コンパクション:管理対象内の論理ブロックから、有効クラスタや有効トラックのみ
を取り出して、新しい論理ブロックに書き直すこと。
[実施の形態]
図1は、SSD(Solid State Drive)100の構成例を示すブロック図である。SS
D100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェー
スを介してパーソナルコンピュータあるいはCPUコアなどのホスト装置1と接続され、
ホスト装置1の外部メモリとして機能する。また、SSD100は、RS232Cインタ
フェース(RS232C I/F)などの通信インタフェース3を介して、デバッグ用/
製造検査用機器200との間でデータを送受信することができる。SSD100は、不揮
発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)
10と、コントローラとしてのドライブ制御回路4と、揮発性半導体メモリとしてのDR
AM20と、電源回路5と、状態表示用のLED6と、ドライブ内部の温度を検出する温
度センサ7と、フューズ8とを備えている。
電源回路5は、ホスト装置1側の電源回路から供給される外部直流電源から複数の異な
る内部直流電源電圧を生成し、これら内部直流電源電圧をSSD100内の各回路に供給
する。また、電源回路5は、外部電源の立ち上がりまたは立ち下がりを検知し、パワーオ
ンリセット信号を生成して、ドライブ制御回路4に供給する。フューズ8は、ホスト装置
1側の電源回路とSSD100内部の電源回路5との間に設けられている。外部電源回路
から過電流が供給された場合フューズ8が切断され、内部回路の誤動作を防止する。
NANDメモリ10は、この場合、4並列動作を行う4つの並列動作要素10a〜10
dを有し、1つの並列動作要素は、2つのNANDメモリパッケージを有する。各NAN
Dメモリパッケージは、積層された複数のNANDメモリチップ(例えば、1チップ=2
GB)によって構成されている。図1の場合は、各NANDメモリパッケージは、積層さ
れた4枚のNANDメモリチップによって構成されており、NANDメモリ10は64G
Bの容量を有する。各NANDメモリパッケージが、積層された8枚のNANDメモリチ
ップによって構成されている場合は、NANDメモリ10は128GBの容量を有するこ
とになる。
DRAM20は、ホスト装置1とNANDメモリ10間でのデータ転送用キャッシュお
よび作業領域用メモリとして機能する。また、DRAM20の代わりに、FeRAMを使
用しても良い。ドライブ制御回路4は、ホスト装置1とNANDメモリ10との間でDR
AM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御す
る。また、ドライブ制御回路4は、状態表示用LED6にステータス表示用信号を供給す
るとともに、電源回路5からのパワーオンリセット信号を受けて、リセット信号およびク
ロック信号を自回路内およびSSD100内の各部に供給する機能も有している。
各NANDメモリチップは、データ消去の単位である物理ブロックを複数配列して構成
されている。図2(a)は、NANDメモリチップに含まれる1個の物理ブロックの構成
例を示す回路図である。各物理ブロックは、X方向に沿って順に配列された(p+1)個
のNANDストリングを備えている(pは、0以上の整数)。(p+1)個のNANDス
トリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜B
Lpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トラン
ジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに
共通接続されている。
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えた
MOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される
。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮
遊ゲート電極)、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート
電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の
数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセ
ルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビ
ット以上のデータ)を記憶するように構成されていてもよい。
また、メモリセルトランジスタMTは、浮遊ゲート電極を有する構造に限らず、MON
OS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化膜界面に
電子をトラップさせることでしきい値調整可能な構造であってもよい。MONOS構造の
メモリセルトランジスタMTについても同様に、1ビットを記憶するように構成されてい
てもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
各NANDストリングにおいて、(q+1)個のメモリセルトランジスタMTは、選択
トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの
電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジ
スタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有す
るような形でY方向に直列接続される。
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート
電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接
続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接
続され、ワード線WLqに接続されたメモリセルトランジスタMTのソースは選択トラン
ジスタST2のドレインに接続されている。
ワード線WL0〜WLqは、物理ブロック内のNANDストリング間で、メモリセルト
ランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同
一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続
される。この同一のワード線WLに接続される(p+1)個のメモリセルトランジスタM
Tは1ページ(物理ページ)として取り扱われ、この物理ページごとにデータの書き込み
およびデータの読み出しが行われる。
また、ビット線BL0〜BLpは、ブロック間で、選択トランジスタST1のドレイン
を共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリ
ングは、同一のビット線BLに接続される。
図2(b)は、例えば、1個のメモリセルトランジスタMTに2ビットの記憶を行う4
値データ記憶方式でのしきい値分布を示す模式図である。4値データ記憶方式では、上位
ページデータ“x”と下位ページデータ“y”で定義される4値データ“xy”の何れか
1つをメモリセルトランジスタMTに保持可能である。
この、4値データ“xy”は、メモリセルトランジスタMTのしきい値電圧の順に、例
えば、データ“11”、“01”、“00”、“10”が割り当てられる。データ“11
”は、メモリセルトランジスタMTのしきい値電圧が負の消去状態である。
下位ページ書き込み動作においては、データ“11”(消去状態)のメモリセルトラン
ジスタMTに対して選択的に、下位ビットデータ“y”の書き込みによって、データ“1
0”が書き込まれる。上位ページ書き込み前のデータ“10”のしきい値分布は、上位ペ
ージ書き込み後のデータ“01”とデータ“00”のしきい値分布の中間程度に位置して
おり、上位ページ書き込み後のしきい値分布よりブロードであってもよい。上位ページ書
き込み動作においては、データ“11”のメモリセルと、データ“10”のメモリセルに
対して、それぞれ選択的に上位ビットデータ“x”の書き込みが行われて、データ“01
”およびデータ“00”が書き込まれる。
図3は、ドライブ制御回路4のハードウェア的な内部構成例を示すブロック図である。
ドライブ制御回路4は、データアクセス用バス101、第1の回路制御用バス102、お
よび第2の回路制御用バス103を備えている。第1の回路制御用バス102には、ドラ
イブ制御回路4全体を制御するプロセッサ104が接続されている。第1の回路制御用バ
ス102には、NANDメモリ10に記憶された各管理プログラム(FW:ファームウエ
ア)をブートするブート用プログラムが格納されたブートROM105がROMコントロ
ーラ106を介して接続されている。また、第1の回路制御用バス102には、図1に示
した電源回路5からのパワーオンリセット信号を受けて、リセット信号およびクロック信
号を各部に供給するクロックコントローラ107が接続されている。
第2の回路制御用バス103は、第1の回路制御用バス102に接続されている。第2
の回路制御用バス103には、図1に示した温度センサ7からのデータを受けるためのI
C回路108、状態表示用LED6にステータス表示用信号を供給するパラレルIO(
PIO)回路109、RS232C I/F3を制御するシリアルIO(SIO)回路1
10が接続されている。
ATAインタフェースコントローラ(ATAコントローラ)111、第1のECC(Er
ror Checking and Correction)回路112、NANDコントローラ113、およびDR
AMコントローラ114は、データアクセス用バス101と第1の回路制御用バス102
との両方に接続されている。ATAコントローラ111は、ATAインタフェース2を介
してホスト装置1との間でデータを送受信する。データアクセス用バス101には、デー
タ作業領域作業領域およびファームウェア展開領域として使用されるSRAM115がS
RAMコントローラ116を介して接続されている。NANDメモリ10に記憶されてい
るファームウェアは起動時、ブートROM105に記憶されたブート用プログラムによっ
てSRAM115に転送される。
NANDコントローラ113は、NANDメモリ10とのインタフェース処理を行うN
AND I/F117、第2のECC回路118、およびNANDメモリ10−DRAM
20間のアクセス制御を行うDMA転送制御用DMAコントローラ119を備えている。
第2のECC回路118は第2の訂正符号のエンコードを行い、また、第1の誤り訂正符
合のエンコードおよびデコードを行う。第1のECC回路112は、第2の誤り訂正符号
のデコードを行う。第1の誤り訂正符号、第2の誤り訂正符号は、例えば、ハミング符号
、BCH(Bose Chaudhuri Hocqenghem)符号、RS(Reed Solomon)符号、或いはLDP
C(Low Density Parity Check)符号等であり、第2の誤り訂正符号の訂正能力は、第1
の誤り訂正符号の訂正能力よりも高いとする。
図1および図3に示したように、NANDメモリ10においては、4つの並列動作要素
10a〜10dが各8ビットの4チャネル(4ch)を介して、ドライブ制御回路4内部
のNANDコントローラ112に並列接続されている。4つの並列動作要素10a〜10
dを単独動作させるか、並列動作させるか、NANDメモリチップの備える倍速モード(
Multi Page Program / Multi Page Read / Multi Block Erase)を使用するか否か、とい
う組み合わせにより、下記3種類のアクセスモードが提供される。
(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つの論理ブロックが対応付けられ、論理ブロックサイズは4
MBとなる。
4ch並列動作する32ビットノーマルモードまたは32ビット倍速モードでは、並列
動作する4または8物理ブロックが、NANDメモリ10としての消去単位となり、並列
動作する4または8物理ページが、NANDメモリ10としての書き込み単位および読み
出し単位となる。以下の動作では、基本的に32ビット倍速モードを使用し、例えば、1
論理ブロック=4MB=2トラック=2ページ=2クラスタ=2セクタとして説
明する(i、j、k、lは自然数、かつ、i<j<k<lの関係が成立する)。
32ビット倍速モードでアクセスされる論理ブロックは4MB単位であり、8個(2×
4ch)の物理ブロック(1物理ブロック=512KB)が対応付けられている。物理ブ
ロック単位で管理されるバッドブロックBBが発生すると、そのバッドブロックBBは使
用不可になるので、そのようなときには、論理ブロックに対応付けられた8個の物理ブロ
ックの組み合わせが、バッドブロックBBを含まないように変更される。
図4は、プロセッサ104により実現されるファームウェアの機能構成例を示すブロッ
ク図である。プロセッサ104により実現されるファームウェアの各機能は、大きく、デ
ータ管理部120、ATAコマンド処理部121、セキュリティ管理部122、ブートロ
ーダ123、初期化管理部124、デバッグサポート部125に分類される。
データ管理部120は、NANDコントローラ112、第1のECC回路114を介し
て、NANDメモリ10−DRAM20間のデータ転送、NANDメモリ10に関する各
種機能を制御する。ATAコマンド処理部121は、ATAコントローラ110、および
DRAMコントローラ113を介して、データ管理部120と協動してDRAM20−ホ
スト装置1間のデータ転送処理を行う。セキュリティ管理部122は、データ管理部12
0およびATAコマンド処理部121と協動して各種のセキュリティ情報を管理する。
ブートローダ123は、パワーオン時、各管理プログラム(ファームウェア)をNAN
Dメモリ10からSRAM120にロードする。初期化管理部124は、ドライブ制御回
路4内の各コントローラ/回路の初期化を行う。デバッグサポート部125は、外部から
RS232Cインタフェースを介して供給されたデバッグ用データを処理する。主に、デ
ータ管理部120、ATAコマンド処理部121、およびセキュリティ管理部122が、
SRAM114に記憶される各管理プログラムをプロセッサ104が実行することによっ
て実現される機能部である。
本実施形態では、主としてデータ管理部120が実現する機能について説明する。デー
タ管理部120は、ATAコマンド処理部121が記憶デバイスであるNANDメモリ1
0やDRAM20に対して要求する機能の提供(ホスト装置からのWrite要求、Cache Flu
sh要求、Read要求等の各種コマンドへの応答)と、アドレス領域とNANDメモリ10と
の対応関係の管理および管理情報の保護と、DRAM10およびNANDメモリ10を利
用した高速で効率の良いデータ読み出し/書き込み機能の提供、NANDメモリ10の信
頼性の確保などを行う。
図5は、NANDメモリ10およびDRAM20内に形成された機能ブロックを示すも
のである。ホスト装置1とNANDメモリ10との間には、DRAM20上に構成された
ライトキャッシュ(WC)21およびリードキャッシュ(RC)22が介在している。W
C21はホスト装置1からのWriteデータを一時保存し、RC22はNANDメモリ10
からのReadデータを一時保存する。NANDメモリ10内の論理ブロックは、書き込み時
のNANDメモリ10に対する消去の量を減らすために、データ管理部120により、前
段ストレージ領域(FS:Front Storage)12、中段ストレージ領域(IS:Intermedia
te Storage)13およびメインストレージ領域(MS:Main Storage)11という各管理
領域に割り当てられている。FS12は、WC21からのデータを「小さな単位」である
クラスタ単位に管理するものであり、小データを短期間保存する。IS13は、FS12
から溢れたデータを「小さな単位」であるクラスタ単位に管理するものであり、小データ
を長期間保存する。MS11は、WC21、FS12、IS13からのデータを「大きな
単位」であるトラック単位で長期間記憶する。例えば、記憶容量は、MS>IS、FS>
WCの関係となる。
小さな管理単位を、NANDメモリ10の記憶領域全てに適用すると、後述する管理テ
ーブルのサイズが肥大化し、DRAM20に収まらないので、小さな管理単位で管理する
のは、最近書き込まれたばかりのデータと、NANDメモリ10への書き込み効率が悪い
小さなデータのみとするようにNANDメモリ10の各ストレージを構成している。
図6は、WC21からNANDメモリ10への書き込み処理(WR処理)に係わるより
詳細な機能ブロック図を示すものである。FS12の前段には、WC21からのデータを
バッファリングするFSインプットバッファ(FSIB)12aが設けられている。また
、MS11の前段には、WC21、FS12、またはIS13からのデータをバッファリ
ングするMSインプットバッファ(MSIB)11aが設けられている。また、MS11
には、トラック前段ストレージ領域(TFS)11bが設けられている。TFS11bは
、MSIB11aとMS11の間に介在するFIFO(First in First out)構造を有す
るバッファであり、TFS11bに記録されたデータは、MSIB11aから直接MS1
1に書き込まれるデータよりも更新頻度が高いデータである。MS11、MSIB11a
、TFS11b、FS12、FSIB12a、およびIS13には、NANDメモリ10
内の各論理ブロックの何れかが割り当てられている。
つぎに、図5、図6の各構成要素の具体的な機能構成について詳述する。ホスト装置1
はSSD100対し、ReadまたはWriteする際には、ATAインタフェースを介して論理
アドレスとしてのLBA(Logical Block Addressing)を入力する。LBAは、図7に示
すように、セクタ(サイズ:512B)に対して0からの通し番号をつけた論理アドレス
である。本実施の形態においては、図5の各構成要素であるWC21、RC22、FS1
2、IS13、MS11の管理単位として、LBAの下位(l−k+1)ビット目から上
位のビット列で構成される論理クラスタアドレスと、LBAの下位(l−i+1)ビット
から上位のビット列で構成される論理トラックアドレスとを定義する。1クラスタ=2
l−k)セクタで、1トラック=2(k−i)クラスタである。
・リードキャッシュ(RC)22
RC22について説明する。RC22は、ATAコマンド処理部121からのRead要求
に対して、NANDメモリ10(FS12、IS13、MS11)からのReadデータを一
時的に保存するための領域である。RC22は、本実施形態では例えば、m-line、n-wa
y(mは2(k−i)以上の自然数、nは2以上の自然数)セットアソシアティブ方式で
管理されており、1エントリに1クラスタ分のデータを保持できる。論理クラスタアドレ
スのLSB(k−i)ビットでlineが決定される。なお、RC22は、フルアソシアティ
ブ方式で管理されていても良いし、単純なFIFO方式で管理されていてもよい。
・ライトキャッシュ(WC)21
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数が互
いに異なっていてもよい。
Write要求により書き込まれたデータは、一旦WC21上に格納される。WC21から
NANDメモリ10へ追い出すデータの決定方法は以下のルールに従う。
(i)タグによって決定されたlineの書き込み可能なwayが最後の(本実施形態では、n
個目の)空きwayだった場合、則ち最後の空きwayが使用される場合は、そのlineに登録さ
れたトラックのうち、LRUに基づいて最も古く更新されたトラックを追い出し確定する

(ii)WC21に登録されている異なるトラックの個数が所定数を超えた場合、LRU
順で、当該トラックに属するWC中のクラスタ数が所定数未満のトラックの追い出しを確
定する。
以上の方針で追い出すトラックを決定する。その際、追い出すのは同一トラックに含ま
れる全てのデータであり、追い出されるデータ量が、例えばトラックサイズの50%を超
えていればMS11へ、超えていなければFS12へ追い出す。
さらに(i)の条件でトラック追い出しが発生した場合で、MS11へ追い出す場合は
、追い出されるトラック数が2個(もともと2個以上のときは2i+1個)になるま
で、WC21内のトラックのうち上記追い出されるデータ量がトラックサイズの50%を
超えるという条件を満たすトラックを上記(i)のポリシーで選択して追い出し候補に追加
する。別言すれば、追い出されるトラックが2個未満の場合、WC中のトラックの古い
ものから2個になるまで、2(k−i−1)個以上有効クラスタをもつトラックを選択
して追い出し候補に追加する。
また、(i)の条件でトラック追い出しが発生した場合で、FS12に追い出す場合は
、追い出されるクラスタ数が2個になるまでWC21内のトラックのうちLRU順に上
記追い出されるデータ量がトラックサイズの50%未満であるという条件を満たすトラッ
クを探してそのクラスタを追い出し候補に追加する。別言すれば、WC中のトラックを古
い順に辿って2(k−i−1)個未満の有効クラスタしかもたないトラックからクラスタ
を取り出していき、有効クラスタ数が2(k−i−1)個になったら、それらクラスタを
FSIB12aに論理ブロック単位で追い出しする。ただし、2(k−i−1)個見つか
らなかった場合は、FSIB12aに論理ページ単位で追い出しする。なお、FS12へ
の追い出しを論理ブロック単位とするか、論理ページ単位とするかの有効クラスタ数の閾
値は、2(k−i−1)個という1論理ブロック分の値にかぎるわけではなく、1論理ブ
ロック分より若干少ない値であってもよい。
また、ATAコマンド処理部121からのCache Flush要求では、WC21の内容が全
て、上記と同じ条件(追い出されるデータ量がトラックサイズの50%を超えていればM
S11へ、超えていなければFS12へ)で、FS12もしくはMS11に対して追い出
される。
・前段ストレージ領域(FS)12
つぎに、FS12について説明する。FS12はクラスタ単位でデータを管理されるF
IFOである。FS12は、ここを通過しているデータは、後段のIS13よりも更新頻
度が高いとみなすためのバッファである。すなわち、FS12のFIFO構造においては
、FIFO中を通過中の有効クラスタ(最新クラスタ)は、ホストからの同じアドレスに
対する再書き込みがあった場合無効化されるので、FS12を通過中のクラスタは、FS
12からIS13やMS11に追い出されたクラスタよりも、更新頻度が高いとみなすこ
とができる。
FS12を設けることで、後段のIS13におけるコンパクション処理に更新頻度の高
いデータが紛れ込む可能性を低減している。無効化によって古いクラスタを保持していた
論理ブロック自体の持つ有効クラスタ数が0となった場合、その論理ブロックは開放され
、フリーブロックFBに割り当てられる。また、論理ブロックが無効化された場合、新た
なフリーブロックFBを取得し、FS12に割り当てる。
WC21からFS12に対してクラスタデータの移動が発生すると、そのクラスタはF
SIB12aに割り当てられた論理ブロックに対して書き込まれる。FSIB12a中に
全てのページの書き込みが完了したブロックが存在する場合、後述するCIB処理によっ
てそれらのブロックはFSIB12aからFS12にMoveされる。このFSIB12
aからFS12へのMoveの際に、FS12のブロック数がFS12として許容される
所定の上限値を超えると、最も古いブロックがFS12からIS13またはMS11に追
い出されることになる。例えば、トラック内の有効クラスタの割合が50%以上のトラッ
クは、MS11(TFS11b)への書き込みを行い、有効クラスタが残ったブロックを
、IS13へMoveする。
NANDメモリ10内の構成要素間のデータ移動には、MoveとCopyの二通りが
ある。Moveは、後述する管理テーブルのポインタの付け替えを行うだけで、実際のデ
ータの書き換えは行わない方法である。Copyは、一方の構成要素に格納されているデ
ータを、ページ単位、トラック単位、ブロック単位で他方の構成要素に実際に書き換える
方法である。
・中段ストレージ領域(IS)13
つぎに、IS13について説明する。IS13は、FS13と同様にクラスタ単位でデ
ータの管理が行われる。前述したように、IS13に格納されたデータは、更新頻度が低
いデータとみなすことができる。FS12からIS13に対して論理ブロックの移動(M
ove)、すなわちFS12からの追い出しが発生すると、以前FS12の管理対象であ
った追い出し対象の論理ブロックはポインタの付け替えによりIS13の管理対象ブロッ
クとなる。このFS12からIS13への論理ブロックの移動により、IS13のブロッ
ク数がIS13として許容される所定の上限値を超えると、すなわちIS内の書き込み可
能なフリーブロックFBの数が閾値を下回ると、IS13からMS11へのデータ追い出
しおよびコンパクション処理が実行され、IS13のブロック数は規定値に戻される。
IS13では、トラック内の有効クラスタ数を使って以下のような、追い出し処理およ
びコンパクション処理を、実行する。
・トラックをトラック内の有効クラスタ数×有効クラスタ係数(トラックがMS11内
で無効トラックが存在する論理ブロックに存在するか否かによって重み付けされる数であ
り、存在したほうが存在しない場合より数が大きい)順にソートし、積の値が大きいトラ
ック2i+1個(2論理ブロック分)を集めて論理ブロックサイズの自然数倍にしてMSI
B11aに追い出す。
・有効クラスタ数が最も少ない2つの論理ブロックの合計有効クラスタ数が例えば、所
定の設定値である2個(1論理ブロック分)以上ある場合は、上のステップを繰り返す
(IS内の2つの論理ブロックから、フリーブロックFBを作れるようになるまで行うた
め)。
・有効クラスタ数の少ない論理ブロックから順にクラスタを2個集め、IS13内で
コンパクションを行う。
なお、ここでは有効クラスタ数が最も少ない2つの論理ブロックを選択するとしたが、
この数は2つに限定されず、2つ以上の数であればよい。また、所定の設定値は、選択す
る論路ブロック数よりも1つ少ない論理ブロック数に収容可能なクラスタ数以下であれば
よい。
・メインストレージ領域(MS)11
つぎに、MS11について説明する。MS11はトラック単位でデータの管理を行う。
MS11に格納されたデータは、更新頻度が低いとみなすことができる。WC21、FS
12、IS13からMS11に対してトラックデータのCopyまたはMoveが発生す
ると、そのトラックはMSIS11aに割り当てられた論理ブロックに対して書き込まれ
る。一方で、トラック中の一部のデータ(クラスタ)のみがWC等から書き込まれるよう
な場合には、既存のMS中のトラックデータと新しいデータをマージして新しいトラック
データを作った上でMSIB11aに書き込む、後述する受動マージが行われる。MS1
1内に無効トラックが蓄積し、MS11に割り当てられている論理ブロックの個数がMS
11として許容されるブロック数の上限値を越えるような状況が発生すると、コンパクシ
ョン処理を行って、無効なフリーブロックFBを作る。
MS11のコンパクション処理は、例えば、論理ブロック内の有効トラック数のみに注
目した以下の方法を実施する。
・有効トラックが少ない論理ブロックから順番に、無効トラックを合わせることによっ
て無効なフリーブロックFBが作れるようになるまで選択する。
・選択した論理ブロックに収容されたトラックを、WC21、FS12、IS13内の
データと統合する受動マージを行いながらコンパクションを実行する。
・2トラック統合できた論理ブロックは、TFS11bに出力し(2トラックMS
コンパクション)、2トラックに満たない個数のトラックは、MSIB11aに出力し
て(2トラック未満コンパクション)、より多くの無効なフリーブロックFBを作る。
TFS11bは、トラック単位でデータを管理されるFIFOである。TFS11bは
、ここを通過しているデータは、後段のMS11よりも更新頻度が高いとみなすためのバ
ッファである。すなわち、TFS11bのFIFO構造においては、FIFO中を通過中
の有効トラック(最新トラック)は、ホストからの同じアドレスに対する再書き込みがあ
った場合無効化されるので、TFS11bを通過中のトラックは、TFS11bからMS
11に追い出されたトラックよりも、更新頻度が高いとみなすことができる。
図8は、データ管理部120が図5および図6に示した各構成要素を制御管理するため
の管理テーブルを示すものである。データ管理部120は、前述したように、ATAコマ
ンド処理部121とNANDメモリ10とをブリッジする機能を有し、DRAM20に記
憶したデータの管理を行うDRAM層管理部120aと、NANDメモリ10に記憶した
データの管理を行う論理NAND層管理部120bと、NANDメモリ10を物理記憶デ
バイスとして管理する物理NAND層管理部120cとから構成される。RCクラスタ管
理テーブル23、WCトラック管理テーブル24、WCクラスタ管理テーブル25は、D
RAM層管理部120aにより制御される。トラック管理テーブル30、FS/IS管理
テーブル40、MS論理ブロック管理テーブル35、FS/IS論理ブロック管理テーブ
ル42、FS/IS内クラスタ管理テーブル44は、論理NAND層管理部120bによ
り管理される。論物変換テーブル50は、物理NAND層管理部120cにより管理され
る。
RC22は、逆引きテーブルであるRCクラスタ管理テーブル23によって管理される
。逆引きテーブルでは、記憶デバイスの位置からその位置に記憶されている論理アドレス
を検索することができる。WC21は、逆引きテーブルであるWCクラスタ管理テーブル
25および正引きテーブルであるWCトラック管理テーブル24によって管理される。正
引きテーブルでは、論理アドレスからその論理アドレスに対応するデータが存在する記憶
デバイス位置を検索することができる。
NANDメモリ10内のFS12(FSIB12a)、IS13、MS11(TFS1
1b、MSIB11a)は、トラック管理テーブル30、FS/IS管理テーブル40、
MS論理ブロック管理テーブル35、FS/IS論理ブロック管理テーブル42、FS/
IS内クラスタ管理テーブル44によってその論理アドレスが管理される。また、NAN
Dメモリ10内のFS12(FSIB12a)、IS13、MS11(TFS11b、M
SIB11a)は、論物変換テーブル50によって論理アドレスと物理アドレスとの変換
が行われる。これらの各管理テーブルは、NANDメモリ10上の領域に記憶されており
、SSD100の初期化時にNANDメモリ10からDRAM20上に読み込まれて、使
用される。
・RCクラスタ管理テーブル23(逆引き)
まず、図9を用いてRCクラスタ管理テーブル23について説明する。RC22は、前
述したように、論理クラスタアドレスLSB(k−i)ビットでインデックスされるn-w
ayセットアソシアティブ方式で管理されている。RCクラスタ管理テーブル23は、RC
(クラスタサイズ×m-line×n-way)22の各エントリのタグを管理するためのテーブ
ルであり、各タグは、複数ビットの状態フラグ23aと、論理トラックアドレス23bに
よって構成されている。状態フラグ23aには、当該エントリを使用しても良いか否か(
有効/無効)を示すValidビットの他に、当該エントリがNANDメモリ10からの読み
出し待ちか否かを示すビット、当該エントリがATAコマンド処理部121への読み出し
待ちか否かを示すビットなどが含まれる。RCクラスタ管理テーブル23は、DRAM2
0上のタグ記憶位置からLBAに一致する論理トラックアドレスを検索する逆引きテーブ
ルとして機能する。
・WCクラスタ管理テーブル25(逆引き)
つぎに、図10を用いてWCクラスタ管理テーブル25について説明する。WC21は
、前述したように、論理クラスタアドレスLSB(k−i)ビットでインデックスされる
n-wayセットアソシアティブ方式で管理されている。WCクラスタ管理テーブル25は、
WC(クラスタサイズ×m-line×n-way)21の各エントリのタグを管理するためのテ
ーブルであり、各タグは、複数ビットの状態フラグ25aと、セクタ位置ビットマップ2
5bと、論理トラックアドレス25cによって構成されている。
状態フラグ25aには、当該エントリを使用しても良いか否か(有効/無効)を示すVa
lidビットの他に、当該エントリがNANDメモリ10への追い出し待ちか否かを示すビ
ット、当該エントリがATAコマンド処理部からの書き込み待ちか否かを示すビットなど
が含まれる。セクタ位置ビットマップ25bは、1クラスタに含まれる2(l−k)セク
タのうちのどのセクタに有効なデータを保持しているかを2(l−k)ビットに展開して
示すものである。このセクタ位置ビットマップ25bによって、WC21において、LB
Aと同じセクタ単位の管理を行うことができる。WCクラスタ管理テーブル25は、DR
AM20上のタグ記憶位置からLBAに一致する論理トラックアドレスを検索する逆引き
テーブルとして機能する。
・WCトラック管理テーブル24(正引き)
つぎに、図11を用いてWCトラック管理テーブル24について説明する。WCトラッ
ク管理テーブル24は、WC21上に格納されているクラスタをトラック単位でまとめた
情報を管理するものであり、FIFO的な機能を有するリンクドリスト構造によってトラ
ック間のWC21に登録された順序(LRU)を表現している。なお、WC21で最後に
更新された順序によってLRUを表現するようにしてもよい。各リストのエントリは、論
理トラックアドレス24a、当該論理トラックアドレスに含まれるWC21中の有効クラ
スタ数24b、way-lineビットマップ24cおよび次のエントリへのポインタを示すnext
ポインタ24dから構成されている。WCトラック管理テーブル24は、論理トラックア
ドレス24aから所要情報を得るので、正引きテーブルとして機能する。
way-lineビットマップ24cは、WC21中で当該論理トラックアドレスに含まれる有
効クラスタがWC21中のm×nのエントリ中のどのエントリに格納されているか示すマ
ップ情報であり、有効クラスタが格納されているエントリではValidビットが”1”にな
っている。このway-lineビットマップ24cは、例えば、(1ビット(Valid)+log2
ビット(n-way))×mビット(m-line)で構成されている。WCトラック管理テーブ
ル24はリンクドリスト構造を有しており、WC21中に存在する論理トラックアドレス
に関する情報のみがエントリされている。
・トラック管理テーブル30(正引き)
つぎに、図12を用いてトラック管理テーブル30について説明する。トラック管理テ
ーブル30は、論理トラックアドレス単位でMS11上の論理的なデータ位置を管理する
ためのテーブルであり、クラスタ単位でFS12やIS13にデータが保持されている場
合には、それらに関する基本情報と、詳細情報へのポインタも保持している。論理トラッ
クアドレス30aをインデックスとした配列形式で構成される。論理トラックアドレス30aをインデックスとした各エントリは、クラスタビットマップ30b、論理ブロックID30c+論理ブロック内トラック位置30d、クラスタテーブルポインタ30e、FSクラスタ数30f、ISクラスタ数30gなどの情報で構成されている。トラック管理テーブル30は、論理トラックアドレスをインデックスとして、その論理トラックアドレスに対応する論理トラックが記憶されている論理ブロックID(記憶デバイス位置に対応)などの所要情報を得るので、正引きテーブルとして機能する。
クラスタビットマップ30bは、1つの論理トラックアドレス範囲に属する2(k−i
個のクラスタをクラスタアドレス昇順に例えば8分割したビットマップであり、8個の
各ビットは、2(k−i−3)個のクラスタアドレスに対応するクラスタがMS11に存
在するか、FS12もしくはIS13に存在するかを示している。ビットが“0”の場合
は、その検索対象のクラスタは確実にMS11内に存在することを示し、ビットが“1”
の場合は、そのクラスタはFS12もしくはIS13に存在する可能性があることを示し
ている。
論理ブロックID30cは、当該論理トラックアドレスに対応する論理トラックが記憶
されている論理ブロックIDを識別するための情報である。論理ブロック内トラック位置
30dは、論理ブロックID30cで指定された論理ブロック中における当該論理トラッ
クアドレス(30a)に対応するトラックの記憶位置を示すものである。1論理ブロック
は最大2個の有効トラックで構成されるので、論理ブロック内トラック位置30dは、
iビットで2個のトラック位置を識別する。
クラスタテーブルポインタ30eは、リンクドリスト構造を有するFS/IS管理テー
ブル40の各リストの先頭エントリへのポインタである。クラスタビットマップ30bの
検索で、当該クラスタがFS12/IS13に存在する可能性があることを示していた場
合、クラスタテーブルポインタ30eを用いてFS/IS管理テーブル40の検索を実行
する。FSクラスタ数30fは、FS12内に存在する有効クラスタ数を示している。I
Sクラスタ数30gは、IS13内に存在する有効クラスタ数を示している。
・FS/IS管理テーブル40(正引き)
つぎに、図13を用いてFS/IS管理テーブル40について説明する。FS/IS管
理テーブル40は、論理クラスタ単位でFS12(FSIB12aも含む)もしくはIS
13に保持されているデータの位置を管理するためのテーブルである。図13に示すよう
に、論理トラックアドレス毎に独立したリンクドリスト形式で構成され、各リストの先頭
エントリへのポインタは、前述したように、トラック管理テーブル30のクラスタテーブ
ルポインタ30eのフィールドに保持されている。図13では、2つの論理トラックアド
レス分のリンクドリストが示されている。各エントリは、論理クラスタアドレス40a、
論理ブロックID40b、論理ブロック内クラスタ位置40c、FS/ISブロックID
40d、nextポインタ40eから構成されている。FS/IS管理テーブル40は、論理
クラスタアドレス40aから、その論理クラスタアドレスに対応する論理クラスタが記憶
されている論理ブロックID40b、論理ブロックン内クラスタ位置40c(記憶デバイ
ス位置に対応)などの所要情報を得るので、正引きテーブルとして機能する。
論理ブロックID40bは、当該論理クラスタアドレス40aに対応する論理クラスタ
が記憶されている論理ブロックIDを識別するための情報である。論理ブロック内クラス
タ位置40cは、論理ブロックID40bで指定された論理ブロック中における当該論理
クラスタアドレス40aに対応するクラスタの記憶位置を示すものである。1論理ブロッ
クは最大2個の有効クラスタで構成されるので、論理ブロック内クラスタ位置40cは
、kビットで2位置を識別する。FS/ISブロックID40dは、後述するFS/I
S論理ブロック管理テーブル42のインデックスであるFS/ISブロックIDが登録さ
れている。FS/ISブロックIDは、FS12またはIS13に所属する論理ブロック
を識別するための情報であり、このFS/IS管理テーブル40でのFS/ISブロック
ID40dは、後述するFS/IS論理ブロック管理テーブル42とのリンクのために登
録されている。nextポインタ40eは、論理トラックアドレス毎にリンクされる同じリス
ト内の次のエントリへのポインタを示している。
・MS論理ブロック管理テーブル35(逆引き)
つぎに、図14を用いてMS論理ブロック管理テーブル35について説明する。MS論
理ブロック管理テーブル35は、MS11に用いられている論理ブロックに関する情報(
どの論理トラックが記憶されているか、追記可能か等)を一元管理するためのテーブルで
ある。なお、MS論理ブロック管理テーブル35には、FS12(FSIB12も含む)
、IS13に所属する論理ブロックに関する情報も登録されている。MS論理ブロック管
理テーブル35は、論理ブロックID35aをインデックスとした配列形式で構成され、
エントリ数は128GBのNANDメモリ10の場合は、32Kエントリまで持つことが
できる。各エントリは、2トラック分のトラック管理ポインタ35b、有効トラック数35c、書き込み可能先頭トラック35d、Validフラグ35eから構成されている。このMS論理ブロック管理テーブル35は、記憶デバイス位置に対応する論理ブロックID35aから、この論理ブロックに記憶されている論理トラックアドレスなどの所要情報を得るので、逆引きテーブルとして機能する。
トラック管理ポインタ35bは、論理ブロックID35aで指定される当該論理ブロッ
ク内の2個のトラック位置毎に対応する論理トラックアドレスを保持する。この論理トラックアドレスを用いて、論理トラックアドレスをインデックスとするトラック管理テーブル30を検索することができる。有効トラック数35cは、論理ブロックID35aで指定される当該論理ブロックに記憶されているトラックのうちの有効なものの個数(最大2個)を示している。書き込み可能先頭トラック位置35dは、論理ブロックID35aで指定される当該論理ブロックが追記中のブロックであった場合における追記可能なトラック先頭位置(0〜2−1、追記終了時は2)を示している。Validフラグ35eは、当該論理ブロックエントリがMS11(MSIB11aも含む)として管理されている場合に“1”である。
・FS/IS論理ブロック管理テーブル42(逆引き)
つぎに、図15を用いてFS/IS論理ブロック管理テーブル42について説明する。
FS/IS論理ブロック管理テーブル42は、FS/ISブロックID42aをインデッ
クスとした配列形式で構成され、FS12またはIS13として利用されている論理ブロ
ックに関する情報(論理ブロックIDとの対応、FS/IS内クラスタ管理テーブル44
へのインデックス、追記可能か等)を管理するためのテーブルである。FS/IS論理ブ
ロック管理テーブル42は、主にFS/IS管理テーブル40中のFS/ISブロックI
D40dを用いてアクセスされる。各エントリは、論理ブロックID42b、ブロック内
クラスタテーブル42c、有効クラスタ数42d、書き込み可能先頭ページ42e、Vali
dフラグ42fから構成されている。このMS論理ブロック管理テーブル35は、記憶デ
バイス位置に対応するFS/ISブロックID42aから、この論理ブロックに記憶され
ている論理クラスタなどの所要情報を得るので、逆引きテーブルとして機能する。
論理ブロックID42bには、MS論理ブロック管理テーブル35に登録された論理ブ
ロックの中で、FS12(FSIB12も含む)、IS13に所属している論理ブロック
に対応する論理ブロックIDが登録される。ブロック内クラスタテーブル42cには、論
理ブロック中の各クラスタ位置にどの論理クラスタアドレスで指定される論理クラスタが
記録されているかを示す後述するFS/IS内クラスタ管理テーブル44へのインデック
スが登録される。有効クラスタ数42dは、FS/ISブロックID42aで指定される
当該論理ブロックに記憶されているクラスタのうちの有効なものの個数(最大2個)を
示している。書き込み可能先頭ページ位置42eは、FS/ISブロックID42aで指
定される当該論理ブロックが追記中のブロックであった場合における追記可能な先頭ペー
ジ位置(0〜2−1、追記終了時は2)を示している。Validフラグ42fは、この
論理ブロックエントリがFS12(FSIB12も含む)またはIS13として管理され
ている場合に“1”である。
・FS/IS内クラスタ管理テーブル44(逆引き)
つぎに、図16を用いてFS/IS内クラスタ管理テーブル44について説明する。F
S/IS内クラスタ管理テーブル44は、FS12もしくはIS13として利用されてい
る論理ブロック中の各クラスタ位置にどの論理クラスタが記録されているのかを示すテー
ブルである。1論理ブロックあたり、2ページ×2(k−j)クラスタ=2個のエン
トリを持ち、当該論理ブロック内のクラスタ位置の0番目〜2−1番目に対応する情報
が連続領域に配置される。さらにこの2個の情報を含むテーブルがFS12およびIS
13に所属する論理ブロック数(P個)分だけ保持されており、FS/IS論理ブロック
管理テーブル42のブロック内クラスタテーブル42cは、このP個のテーブルに対する
位置情報(ポインタ)となっている。連続領域に配される各エントリ44aの位置は、1
論理ブロック中のクラスタ位置を示し、また各エントリ44aの内容は、当該クラスタ位
置にどの論理クラスタが記憶されているかが識別できるように、FS/IS管理テーブル
40で管理される該当論理クラスタアドレスを含むリストへのポインタが登録されている
。すなわち、エントリ44aは、リンクドリストの先頭を指し示すのではなく、リンクド
リスト中の該当論理クラスタアドレスを含む1つのリストへのポインタが登録されている
・論物変換テーブル50(正引き)
つぎに、図17を用いて論物変換テーブル50について説明する。論物変換テーブル5
0は、論理ブロックID50aをインデックスとした配列形式で構成され、エントリ数は
、128GBのNANDメモリ10の場合は、最大32Kエントリまで持つことができる
。論物変換テーブル50は、論理ブロックIDと物理ブロックIDとの変換、寿命に関す
る情報を管理するためのテーブルである。各エントリは、物理ブロックアドレス50b、
消去回数50c、読み出し回数50dから構成される。この論物変換テーブル50は、論
理ブロックIDから物理ブロックID(物理ブロックアドレス)などの所要情報を得るの
で、正引きテーブルとして機能する。
物理ブロックアドレス50bは、1つの論理ブロックID50aに所属する8個の物理
ブロックID(物理ブロックアドレス)を示している。消去回数50cは、当該論理ブロ
ックIDの消去回数を示している。バッドブロック(BB)管理は、物理ブロック(51
2KB)単位に行われるが、消去回数の管理は、32ビット倍速モードによる1論理ブロ
ック(4MB)単位に管理される。読み出し回数50dは、当該論理ブロックIDの読み
出し回数を示している。消去回数50cは、例えば、NAND型フラッシュメモリの書き
換え回数を平準化するウェアレベリング処理で利用することが可能である。読み出し回数
50dは、リテンション特性の劣化した物理ブロックに保持されるデータの再書き込みを
行うリフレッシュ処理で利用することが可能である。
図8に示した管理テーブルを管理対象毎にまとめると次のようになる。
RC管理:RCクラスタ管理テーブル
WC管理:WCクラスタ管理テーブル、WCトラック管理テーブル
MS管理:トラック管理テーブル30、MS論理ブロック管理テーブル35
FS/IS管理:トラック管理テーブル30、FS/IS管理テーブル40、MS論理ブ
ロック管理テーブル35、FS/IS論理ブロック管理テーブル42、FS/IS内クラス
タ管理テーブル44
なお、MS構造管理テーブル(図示せず)において、MS11,MSIB11a、TF
S11bを含めたMS領域の構造を管理しており、具体的には、MS11、MSIB11
a、TFS11bに割り当てた論理ブロックなどを管理している。また、FS/IS構造
管理テーブル(図示せず)において、FS12、FSIB12a、IS13を含めたFS
/IS領域の構造を管理しており、具体的には、FS12、FSIB12a、IS13に
割り当てた論理ブロックなどを管理している。
・Read処理
つぎに、図18に示すフローチャートを参照して、読み出し処理について説明する。A
TAコマンド処理部121から、Readコマンドおよび読み出しアドレスとしてのLBAが
入力されると、データ管理部120は、図9に示したRCクラスタ管理テーブル23と図
10に示したWCクラスタ管理テーブル25を検索する(ステップS100)。具体的に
は、LBAのクラスタアドレスのLSB(k−i)ビット(図7参照)に対応するlineを
RCクラスタ管理テーブル23とWCクラスタ管理テーブル25から選択し、選択したli
neの各wayにエントリされている論理トラックアドレス23b、25cをLBAのトラッ
クアドレスと比較し(ステップS110)、一致したwayが存在している場合は、キャッ
シュヒットとし、ヒットしたRCクラスタ管理テーブル23またはWCクラスタ管理テー
ブル25の該当line、該当wayに対応するWC21またはRC22のデータを読み出して
、ATAコマンド処理部121に送る(ステップS115)。
データ管理部120は、RC22またはWC21でヒットしなかった場合は(ステップ
S110)、検索対象のクラスタがNANDメモリ10のどこに格納されているかを検索
する。データ管理部120は、まず、図12に示したトラック管理テーブル30を検索す
る(ステップS120)。トラック管理テーブル30は、論理トラックアドレス30aで
インデックスされているため、LBAで指定された論理トラックアドレスに一致する論理
トラックアドレス30aのエントリだけをチェックする。
まず、チェックしたいLBAの論理クラスタアドレスに基づいてクラスタビットマップ
30bから対応するビットを選択する。対応するビットが“0”を示していれば、そのク
ラスタは確実にMS内に最新のデータが存在していることを意味する(ステップS130
)。この場合は、このトラックが存在する論理ブロックIDおよびトラック位置を、同じ
論理トラックアドレス30aのエントリ中の論理ブロックID30cと論理ブロック内ト
ラック位置30dから得て、さらにLBAのクラスタアドレスのLSB(k−i)ビット
を利用して、トラック位置からのオフセットを算出することで、NANDメモリ10内の
当該クラスタアドレスに対応するクラスタデータが格納されている位置を算出することが
できる。具体的には、論理NAND層管理部120bでは、上記のようにしてトラック管
理テーブル30から取得した論理ブロックID30cと論理ブロック内トラック位置30
dと、LBAの論理クラスタアドレスのLSB(k−i)ビットを物理NAND層管理部
120cに与える。
物理NAND層管理部120cでは、論理ブロックID30cに対応する物理ブロック
アドレス(物理ブロックID)を、論理ブロックIDをインデックスとしている図17に
示す論物変換テーブル50から取得し(ステップS160)、さらに取得した物理ブロッ
クID中のトラック位置(トラック先頭位置)を論理ブロック内トラック位置30dから
算出し、さらにLBAのクラスタアドレスのLSB(k−i)ビットから、前記算出した
物理ブロックID中のトラック先頭位置からのオフセットを算出することで、物理ブロッ
ク中のクラスタデータを取得することができる。NANDメモリ10のMS11から取得
されたクラスタデータは、RC22を介してATAコマンド処理部121に送られる(ス
テップS180)。
一方、LBAのクラスタアドレスに基づくクラスタビットマップ30bの検索で、対応
するビットが“1”を示していた場合は、そのクラスタがFS12またはIS13に格納
されている可能性がある(ステップS130)。この場合は、トラック管理テーブル30
の該当する論理トラックアドレス30aのエントリ中のクラスタテーブルポインタ30e
のエントリを取り出し、このポインタを用いてFS/IS管理テーブル40の該当する論
理トラックアドレスに対応するリンクドリストを順次検索する(ステップS140)。具
体的には、該当する論理トラックアドレスのリンクドリスト中のLBAの論理クラスタア
ドレスに一致する論理クラスタアドレス40aのエントリを検索し、一致する論理クラス
タアドレス40aのエントリが存在した場合は(ステップS150)、一致したリスト中
の論理ブロックID40bおよび論理ブロック内クラスタ位置40cを取得し、前述と同
様にして、論物変換テーブル50を用いて物理ブロック中のクラスタデータを取得する(
ステップS160、S180)。具体的には、取得した論理ブロックIDに対応する物理
ブロックアドレス(物理ブロックID)を、論物変換テーブル50から取得し(ステップ
S160)、さらに取得した物理ブロックID中のクラスタ位置を、論理ブロック内クラ
スタ位置40cのエントリから取得した論理ブロック内クラスタ位置から算出することで
、物理ブロック中のクラスタデータを取得することができる。NANDメモリ10のFS
12またはIS13から取得されたクラスタデータは、RC22を介してATAコマンド
処理部121に送られる(ステップS180)。
このFS/IS管理テーブル40の検索によって、検索対象のクラスタが存在しなかっ
た場合は(ステップS150)、再度トラック管理テーブル30のエントリを検索してM
S11上の位置を確定する(ステップS170)。
・Write処理
つぎに、図19に示すフローチャートを参照して、書き込み処理について説明する。F
UA(DRAMキャッシュをバイパスしてNANDへの直接書き込みを行う)でないWrit
eコマンドにより書き込まれたデータは必ず一旦WC21上に格納され、その後条件に応
じてNANDメモリ10に対して書き込まれることになる。書き込み処理では、追い出し
処理、コンパクション処理が発生する可能性がある。この実施の形態では、書き込み処理
を、ライトキャッシュフラッシュ処理(以下WCF処理)と、クリーンインプットバッフ
ァ処理(以下CIB処理)との2ステージに大きく分割している。ステップS300から
ステップS320までは、ATAコマンド処理部121からのWrite要求からWCF処理
までを示しており、ステップS330〜最終ステップまでがCIB処理を示している。
WCF処理は、WC21にあるデータをNANDメモリ10(FS12のFSIB12
aまたはMS11のMSIB11a)にcopyする処理であり、ATAコマンド処理部
121からのWrite要求もしくはCache Flush要求単体は、この処理のみで完結することが
できる。これにより処理が開始されたATAコマンド処理部121のWrite要求の処理遅
延を最大でもWC21の容量分のNANDメモリ10への書き込み時間に限定することが
できるようになる。
CIB処理は、WCF処理によって書き込まれたFSIB12aのデータをFS12に
Moveする処理と、WCF処理によって書き込まれたMSIB11aのデータをMS1
1にMoveする処理とを含む。CIB処理を開始すると、連鎖的にNANDメモリ10
内の各構成要素(FS12、IS13、MS11など)間のデータ移動やコンパクション
処理が発生する可能性があり、処理全体に要する時間は状態によって大きく変化する。
まず、WCF処理の詳細について説明する。ATAコマンド処理部121から、Write
コマンドおよび書き込みアドレスとしてのLBAが入力されると、DRAM層管理部12
0は、図10に示したWCクラスタ管理テーブル25を検索する(ステップS300,S
305)。WC21の状態は、図10に示したWCクラスタ管理テーブル25の状態フラ
グ25a(例えば3ビット)によって規定されている。状態フラグ25aは、最も典型的
には、Invalid(使用可能)→ATAからの書き込み待ち→Valid(使用不可)→NAND
への追い出し待ち→Invalid(使用可能)という順に状態が遷移していく。まず、LBA
のクラスタアドレスLSB(k−i)ビットから書き込み先のlineを決定し、決定したli
neのn個のwayを検索する。決定したlineのn個のway中に、入力されたLBAと同じ論理
トラックアドレス25cが格納されている場合は(ステップS305)、このエントリに
上書きするのでこのエントリをクラスタ書き込み用に確保する(Valid(使用不可)→A
TAからの書き込み待ち)。
そして、DRAM層管理部120aは、該当エントリに対応するDRAMアドレスをA
TAコマンド処理部121に通知する。ATAコマンド処理部121による書き込みが終
了すると、WCクラスタ管理テーブル25の該当エントリの状態フラグ25aをValid(
使用不可)にし、さらにセクタ位置ビットマップ25bおよび論理トラックアドレス25
cの欄に所要のデータを登録する。また、WCトラック管理テーブル24を更新する。具
体的には、WCトラック管理テーブル24の各リスト中に既に登録済みの論理トラックア
ドレス24aと同じLBAアドレスが入力された場合は、該当するリストのWCクラスタ
数24b、way−lineビットマップ24cを更新するとともに、当該リストが最新のリス
トとなるようにnextポインタ24dを変更する。また、WCトラック管理テーブル24の
各リスト中に登録済みの論理トラックアドレス24aと異なるLBAアドレスが入力され
た場合は、新たに新しい論理トラックアドレス24a、WCクラスタ数24b、way−lin
eビットマップ24c、nextポインタ24dの各エントリを有するリストを作成し、最新
のリストとして登録する。以上のようなテーブル更新を行って、書き込み処理が完了する
(ステップS320)。
一方、決定したlineのn個のway中に、入力されたLBAと同じ論理トラックアドレス
25cが格納されていない場合は、NANDメモリへの追い出しが必要であるか否かを判
断する(ステップS305)。すなわち、まず、決定したline中の書き込み可能なwayが
最後のn個目のwayであるか否かを判断する。書き込み可能なwayとは、Invalid(使用可
能)の状態フラグ25aをもつwayかあるいはValid(使用不可)でかつNANDへの追い
出し待ちの状態フラグ25aを持つwayである。状態フラグ25aが、NANDへの追い
出し待ちであるとは、追い出しが開始されて追い出しの終了待ちであることを意味する。
そして、書き込み可能なwayが最後のn個目のwayでない場合であって、かつ書き込み可能
なwayが、Invalid(使用可能)の状態フラグ25aをもつwayである場合は、このエント
リをクラスタ書き込み用に確保する(Invalid(使用可能)→ATAからの書き込み待ち
)。そして、該当エントリに対応するDRAMアドレスをATAコマンド処理部121に
通知し、ATAコマンド処理部121によって書き込みを実行させる。そして、前記同様
、WCクラスタ管理テーブル25およびWCトラック管理テーブル24を更新する(ステ
ップS320)。
また、書き込み可能なwayが最後のn個目のwayでない場合であって、かつ書き込み可能
なwayが、Valid(使用不可)でかつNANDへの追い出し待ちの状態フラグ25aを持つ
wayである場合は、このエントリをクラスタ書き込み用に確保する(Valid(使用不可)で
かつNANDへの追い出し待ち→Valid(使用不可)でかつNANDへの追い出し待ちか
つATAからの書き込み待ち)。そして、追い出しが終了すると、状態フラグ25aをA
TAからの書き込み待ちにし、さらに、該当エントリに対応するDRAMアドレスをAT
Aコマンド処理部121に通知し、ATAコマンド処理部121によって書き込みを実行
させる。そして、前記同様、WCクラスタ管理テーブル25およびWCトラック管理テー
ブル24を更新する(ステップS320)。
以上の処理は、ATAコマンド処理部121からからの書き込み要求が入力された際に
、追い出し処理をトリガしなくてもよい場合である。一方、この後の説明は、書き込み要
求が入力された時点後に、追い出し処理をトリガする場合である。ステップS305にお
いて、決定したline中の書き込み可能なwayが最後のn個目のwayである場合は、前述した
WC21からNANDメモリ10へ追い出すデータの決定方法の(i)の箇所で説明した
条件、すなわち、
(i) タグによって決定されたlineの書き込み可能なwayが最後の(本実施形態では、n
個目の)空きwayだった場合、則ち最後の空きwayが使用される場合は、そのlineに登録さ
れたトラックのうちLRUに基づいて最も古く更新されたトラックを追い出し確定する
に基づいて追い出すトラックすなわちWC21内エントリを選択する。
DRAM層管理部120aは、以上の方針で追い出すトラックを決定すると、前述した
ように、その際追い出すのは同一トラックに含まれるWC21中の全クラスタであり、追
い出されるクラスタ量がトラックサイズの50%を超えていれば、すなわち追い出し確定
トラックのうちWC中に有効クラスタ数が2(k−i−1)個以上ある場合は、MSIB
11aへ追い出しを行い(ステップS310)、超えていなければ、すなわち追い出し確
定トラックのうちWC中に有効クラスタ数が2(k−i−1)個未満である場合は、FS
IB12aへと追い出す(ステップS315)。WC21からMSIB11aへの追い出
し、WC21からFSIB12aへの追い出しの詳細は、後述する。選択された追い出し
エントリの状態フラグ25aは、Valid(使用不可)からNANDメモリ10への追い出
し待ちに移行される。
この追い出し先の判定は、WCトラック管理テーブル24を用いて実行される。すなわ
ち、WCトラック管理テーブル24には、論理トラックアドレス毎に、有効なクラスタ数
を示すWCクラスタ数24bのエントリが登録されており、このWCクラスタ数24bの
エントリを参照することでWC21からの追い出し先を、FSIB12a、MSIB11
aの何れにするかを決定する。また、way−lineビットマップ24cに、当該論理トラッ
クアドレスに所属する全てのクラスタがビットマップ形式で登録されているので、追い出
しを行う際には、このway−lineビットマップ24cを参照することで、容易に、追い出
すべき各クラスタのWC21での記憶位置を知ることができる。
また、上記書き込み処理中または書き込み処理後、前述の下記条件、
(ii)WC21に登録されているトラックの数が所定数を超えた場合、
が成立した場合も、上記同様にしてNANDメモリ10への追い出し処理を実行する。
WC→MSIB(Copy)
つぎに、上記有効クラスタ数(有効クラスタ数が2(k−i−1)個以上)に基づく判
定によりWC21からMSIB11aへの追い出しが発生したときは、前述したように、
次のような手順を実行する(ステップS310)。
1.WCクラスタ管理テーブル25を参照し、追い出しを行うクラスタに対応するタグ
中のセクタ位置ビットマップ25bを参照し、セクタ位置ビットマップ25bが全て“1
”でない場合は、NANDメモリ10に含まれる同一クラスタ中のセクタとマージする、
後述のトラック内セクタ穴埋めを行う。また、トラック中のWC21内に存在しないクラ
スタについてはNANDメモリ10から読み出してマージする、受動マージ処理を実行す
る。
2.追い出し確定トラックが2個未満の場合、WC21中のトラックの古いものから
個になるまで2(k−i−1)個以上有効クラスタを持つ追い出し確定トラックを追
加する。
3.Copyされるトラックが2個以上あれば、2個ずつを組として、MSIB1
1aに対して論理ブロック単位に書き込みを行う。
4.2個組みに出来なかったトラックをMSIB11aに対してトラック単位に書き
込みを行う。
5.Copy終了後に既にFS、IS、MS上に存在していたクラスタ、トラックのう
ちコピーされたトラックに属するものを無効化する。
このようなWC21からMSIB11aへのCopy処理に伴う各管理テーブルの更新
処理について説明する。WCクラスタ管理テーブル25中の追い出されたトラックに所属
するWC21中の全クラスタに対応するエントリ中の状態フラグ25aはInvalidとされ
、この後これらエントリに対する書き込みが可能となる。また、WCトラック管理テーブ
ル24中の追い出されたトラックに対応するリストについては、例えば直前のリストのne
xtポインタ24dが変更または削除されて、無効化される。
一方、WC21からMSIB11aに対するトラック移動が発生すると、これに伴いト
ラック管理テーブル30およびMS論理ブロック管理テーブル35が更新される。まず、
トラック管理テーブル30のインデックスである論理トラックアドレス30aを検索する
ことで、移動されたトラックに対応する論理トラックアドレス30aが既に登録されてい
るか否かを判定する。既に登録されている場合は、該当インデックスのクラスタビットマ
ップ30b(MS11側への移動であるので、該当ビットを全て“0”にする)、論理ブ
ロックID30c+論理ブロック内トラック位置30dのフィールドを更新する。移動さ
れたトラックに対応する論理トラックアドレス30aが未登録の場合は、該当する論理ト
ラックアドレス30aのエントリに対し、クラスタビットマップ30b、論理ブロックI
D30c+論理ブロック内トラック位置30dを登録する。また、トラック管理テーブル
30の変更に応じて、MS論理ブロック管理テーブル35における、論理ブロックID3
5a、該当トラック管理ポインタ35b、有効トラック数35c、書き込み可能先頭トラ
ック35dなどのエントリを必要に応じて更新する。
なお、他の領域(FS12やIS13)等からMS11に対してトラック書き込みが発
生した場合、もしくはMS11内部のコンパクション処理によるMS内トラック書き込み
が発生した場合、書き込み対象のトラックに含まれるWC21内有効クラスタも同時にM
Sに書き込まれる。WC21からMS11への書き込みとしてこのような受動的マージも
存在する。そのような受動的マージが行われた場合は、それらのクラスタはWC21上か
ら削除(無効化)されることになる。
WC→FSIB(Copy)
つぎに、上記有効クラスタ数(有効クラスタ数が2(k−i−1)個未満)に基づく判
定によりWC21からFSIB12aへの追い出しが発生したときは、前述したように、
次のような手順を実行する。
1.WCクラスタ管理テーブル25における追い出しを行うクラスタに対応するタグ中
のセクタ位置ビットマップ25bを参照し、セクタ位置ビットマップ25bが全て“1”
でない場合は、NANDメモリ10に含まれる同一クラスタ中のセクタとマージする、ク
ラスタ内セクタ穴埋めを行う。
2.WC内のトラックを古い順に辿って2(k−i−1)個未満の有効クラスタしか持
たないトラックからクラスタを取り出して行き、有効クラスタ数が2個になったらそれ
ら全クラスタをFSIB12aに論理ブロック単位に書き込む。
3.2個見つからなかった場合には、有効クラスタ数が2(k−i−1)個未満の全
てのトラックを必要な論理ページ数分だけFSIB12aに書き込む。
4.Copy終了後に既にFS、IS上に存在していたクラスタのうちコピーされたの
と同じものを無効化する。
このようなWC21からFSIB12aへのCopy処理に伴う各管理テーブルの更新
処理について説明する。WCクラスタ管理テーブル25中の追い出されたトラックに所属
するWC21中の全クラスタに対応するエントリ中の状態フラグ25aはInvalidとされ
、この後これらエントリに対する書き込みが可能となる。また、WCトラック管理テーブ
ル24中の追い出されたトラックに対応するリストについては、例えば直前のリストのne
xtポインタ24dが変更または削除されて、無効化される。一方、WC21からFSIB
12aに対するクラスタ移動が発生すると、これに伴いトラック管理テーブル30のクラ
スタテーブルポインタ30e、FSクラスタ数30fなどを更新するとともに、FS/I
S管理テーブル40の論理ブロックID40b、論理ブロック内クラスタ位置40cなど
を更新する。なお、もともとFS12に存在していなかったクラスタについては、FS/
IS管理テーブル40のリンクドリストへのリストが追加される。この更新に伴い、MS
論理ブロック管理テーブル35、FS/IS論理ブロック管理テーブル42、およびFS
/IS内クラスタ管理テーブル44の該当個所を更新する。
CIB処理
上記のようなWCF処理が終了すると、つぎに、論理NAND層管理部120bは、W
CF処理によって書き込まれた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からMS
IB11aへの追い出し処理、あるいはFS12からIS13への追い出し処理、あるい
はIS13からMSIB11aへの追い出し処理の際に、手順にループが発生した場合は
、上記順番通りにならない場合もある。MS11、FS12およびIS13でのCIB処
理を別々に説明する。
MS11のCIB処理
まず、MS11でのCIB処理について説明する(ステップS330)。WC21、F
S12、IS13からMS11に対してトラックデータの移動が発生すると、そのトラッ
クデータはMSIB11aに書き込まれる。MSIB11aへの書き込み完了後は、前述
したように、トラック管理テーブル30を更新してトラックが配置される論理ブロックI
D30cとブロック内トラック位置30dなどを変更する(Move)。MSIB11a
に新たなトラックデータが書き込まれた場合、もともとMS11もしくはTFS11bに
存在していたトラックデータは無効化される。この無効化処理は、MS論理ブロック管理
テーブル35における古いトラック情報が保存されていた論理ブロックのエントリからト
ラックを無効化することで実現する。具体的には、MS論理ブロック管理テーブル35の
該当エントリ中のトラック管理ポインタ35bのフィールド中の該当トラックのポインタ
が削除され、有効トラック数が−1される。このトラック無効化によって1論理ブロック
中の全てのトラックが無効になった場合は、Validフラグ35eが無効化される。このよ
うな無効化などにより、MS11のブロックは無効なトラックを含んだものが発生し、こ
れが繰り返されるとブロックの利用効率が低下して、使用可能な論理ブロックに不足が生
じることがある。
データ管理部120は、このような事態が発生して、MS11に割り当てられている論
理ブロックの個数がMS11として許容されるブロック数の上限値を越えるような状況が
発生すると、コンパクション処理を行って、無効なフリーブロックFBを作る。無効なフ
リーブロックFBは、物理NAND層管理部120cに返却される。そして、論理NAN
D層管理部120bは、MS11に割り当てられている論理ブロックの個数を減らした後
、新たに書き込み可能なフリーブロックFBを物理NAND層管理部120cから取得す
る。コンパクション処理とは、コンパクション対象の論理ブロックが持つ有効クラスタを
新しい論理ブロックに集めたり、あるいはコンパクション対象の論理ブロック中の有効ト
ラックを他の論理ブロックにCopyしたりすることで、物理NAND層管理部120c
に返却する無効なフリーブロックFBを作り、論理ブロックの利用効率を向上させるため
の処理である。なお、コンパクションを行う際には、コンパクション対象となったトラッ
ク領域に対して、WC、FS、IS上の有効なクラスタが存在する場合、それらを全てマ
ージする受動マージを実行する。また、TFS11bに登録されている論理ブロックにつ
いては、コンパクション対象に含めない。
以下に、MSIB11aにフルに成ったブロックが存在する場合を発生条件とした、M
SIB11aからMS11またはTFS11bへの追い出しとコンパクション処理の一例
について具体的に説明する。
1.MS論理ブロック管理テーブル35のValidフラグ35eを参照することにより、
MS11内に無効となった論理ブロックが存在する場合、そのブロックを無効なフリーブ
ロックFBとする。
2.MSIB11aでフルに成った論理ブロックをMS11に追い出す。具体的には、
前述したMS構造管理テーブル(図示せず)を更新して、該当論理ブロックをMSIB管
理下からMS管理下に移し変える。
3.MS11に割り当てられている論理ブロックの個数がMS11として許容されるブ
ロック数の上限値を越えるような状況が発生するか否かを判断し、発生している場合に、
以下のMSコンパクションを実行する。
4.MS論理ブロック管理テーブル35の有効トラック数35cのフィールドなどを参
照することにより、TFS11bに含まれない論理ブロックのうち無効にされたトラック
を持つものを、有効トラック数でソートする。
5.有効トラック数の少ない論理ブロックから、トラックを集めてコンパクションを実
施する。この際にまず、1論理ブロック分(2トラック)ずつCopyしてコンパクシ
ョンを実施する。なお、コンパクション対象のトラックがWC21、FS12、IS13
に有効クラスタを持つ場合にはそれらもマージする。
6.コンパクション元の論理ブロックを無効なフリーブロックFBとする。
7.コンパクションして有効な2トラックで構成された1論理ブロックができたら、
TFS11bの先頭にMoveする。
8.論理ブロック内の有効トラックを他の論理ブロックにCopyして、無効なフリー
ブロックFBが作れる場合は、2トラック未満の個数の有効トラックをMSIB11a
に対し、トラック単位で追記書き込みする。
9.コンパクション元の論理ブロックを無効なフリーブロックFBとする。
10.MS11に割り当てられている論理ブロックの個数がMS11として許容される
ブロック数の上限値を下回ると、MSコンパクション処理を終了する。
FS12のCIB処理
つぎに、FS12でのCIB処理について説明する(ステップS340)。WC21か
らFSIB12aへのクラスタ書き込み処理によって全ページ書き込み済みの論理ブロッ
クがFSIB12a中に作られた場合、FSIB12a中のそれらのブロックは、FSI
B12aからFS12に対してMoveされる。このMoveにともなって複数の論理ブ
ロックで構成されるFIFO構造のFS12から古い論理ブロックが追い出される状況が
発生する。
FSIB12aからFS12に対する追い出しおよび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への追い出しが発生したときには、その直後、MS
11での前述したCIB処理が実行される(ステップS350)。
IS13のCIB処理
つぎに、IS13でのCIB処理について説明する(ステップS360)。上記したF
S12からIS13へのブロック移動によって論理ブロックがIS13に追加されるが、
これにともなって複数個の論理ブロックで構成されるIS13に対して管理可能なブロッ
ク数の上限を超えてしまう状況が発生する。このような状況が発生した場合、IS13で
は、まずMS11への1〜複数個の論理ブロックの追い出しを行った後、ISコンパクシ
ョンを実行する。具体的には、次のような手順を実行する。
1.IS13に含まれるトラックをトラック内の有効クラスタ数×有効クラスタ係数で
ソートし、積の値が大きいトラック2i+1個(2論理ブロック分)を集めてMSIB11
aに追い出す。
2.有効クラスタ数が最も少ない2i+1個の論理ブロックの合計有効クラスタ数が例
えば、所定の設定値である2個(1論理ブロック分)以上ある場合は、上のステップを
繰り返す。
3.上記の追い出しを行った後、有効クラスタ数の少ない論理ブロックから順にクラス
タを2個集め、IS13内でコンパクションを行う。
4.コンパクション元の論理ブロックのうち有効クラスタがなくなったものを無効なフ
リーブロックFBとして返還する。
なお、IS13からMSIB11aへの追い出しが発生したときには、その直後、MS
11での前述したCIB処理が実行される(ステップS370)。
図20は、各構成要素間のデータの流れにおける入力と出力の組み合わせ、およびその
データの流れが何をトリガとして発生するかを示すものである。FS12は、基本的には
、WC21からのクラスタ追い出しによってデータが書き込まれるが、WC21からFS
12への追い出しに付随してクラスタ内セクタ穴埋め(クラスタ穴埋め)が必要な場合は
、FS12、IS13、MS11からのデータがコピーされる。WC21では、WCクラ
スタ管理テーブル25のタグ中のセクタ位置ビットマップ25bによって当該クラスタア
ドレス中の2(l−k)個のセクタの有無を識別させることによってセクタ(512B)
単位の管理をすることが可能である。これに対し、NANDメモリ10での機能要素であ
るFS12、IS13の管理単位はクラスタであり、MS11の管理単位は、トラックで
ある。このように、NANDメモリ10での管理単位は、セクタより大きいため、WC2
1からNANDメモリ10に対して、データを書き込む際に、書き込まれるデータと同一
クラスタアドレスのデータがNANDメモリ10中に存在する場合、WC21からNAN
Dメモリ10に書き込まれるクラスタ中のセクタと、NANDメモリ10中に存在する同
一クラスタアドレス内のセクタとをマージしてから、NANDメモリ10に書き込む必要
がある。
この処理が、図20に示したクラスタ内セクタ穴埋め処理(クラスタ穴埋め)と、トラ
ック内セクタ穴埋め(トラック穴埋め)であり、これらの処理を行わないと、正しいデー
タが読み出せなくなる。そこで、WC21からFSIB12aまたはMSIB11aにデ
ータを追い出す際には、WCクラスタ管理テーブル25を参照し、追い出しを行うクラス
タに対応するタグ中のセクタ位置ビットマップ25bを参照し、セクタ位置ビットマップ
25bが全て“1”でない場合は、NANDメモリ10に含まれる同一クラスタまたは同
一トラック中のセクタとマージする、クラスタ内セクタ穴埋めまたはトラック内セクタ穴
埋めを行う。この処理には、DRAM20の作業領域が使用され、DRAM20の作業領
域からMSIB11aに書き込まれたり、FSIB12aに書き込まれたりする。
IS13は、基本的には、FS12からのブロック追い出しによってデータが書き込ま
れる(Move)か、IS内部のコンパクションによってデータが書き込まれる。MS1
1は、全ての箇所からデータが書き込まれ得る。その際、MS11は、トラック単位にし
かデータを書き込めないために、MS自身のデータによる穴埋めが発生しうる。また、ト
ラック単位の書き込みを行う際には、他のブロックにある断片化されたデータも受動マー
ジによって書き込まれることになる。さらにMS11は、MSコンパクションによる書き
込みもある。なお、受動マージにおいては、WC21、FS12またはIS13の3つの
構成要素のうちの1つの構成要素からMS11へのトラック追い出しまたは論理ブロック
追い出し(2トラック分の追い出し)が発生した際、1つの構成要素での追い出し対象
のトラック(または論理ブロック)に含まれる他の2つの構成要素内の有効クラスタおよ
びMS11内の有効クラスタが、DRAM20の作業領域に集められて、DRAM20の
作業領域から1トラック分のデータとしてMSIB11aに書き込まれる。
つぎに、本実施の形態の要部について説明する。本実施の形態では、Write_FUA処理を
行なう際に、ホスト装置1からのデータをRC(第1の記憶部)22を介してNANDメ
モリ10に書き込む。
図21は、本実施の形態に係るメモリシステムが行なうWrite_FUA処理を説明するため
の図である。ホスト装置1から図1のSSD100(図3及び図21のプロセッサ104
)にWrite_FUA要求(NANDメモリ10への強制書き込み命令)が送られると、プロセ
ッサ104は、このWrite_FUA要求で指定されたデータをホスト装置1からRC22へ書
き込む。さらに、RC22へ書き込まれたデータは、NANDメモリ10へ書き込まれる
従来のWrite_FUA処理や通常のWrite処理(Write_FUA以外のWrite)のように、Write_FU
A要求やWrite要求で指定されたデータをホスト装置1からWC(第2の記憶部)21を介
してNANDメモリ(第3の記憶部)10へ書き込む場合、DRAM20領域確保のため
に、WC21からNANDメモリ10へのデータの追い出し判定、追い出し処理などが発
生する。さらに、管理テーブルの複雑な更新処理などが発生する。
一方、RC22内に格納していたデータは既にホスト装置1によって読み出されたデー
タであるので、RC22内に格納していたデータは、NANDメモリ10へ追い出しや消
去を行なうことなく上書きされてもよいデータである。
本実施の形態では、Write_FUA要求で指定されたデータをホスト装置1からRC22を
介してNANDメモリ10へ書き込んでいるので、RC22内に格納していたデータの追
い出しなどが不要になるとともに、管理テーブルの複雑な更新処理などが不要となる。
図22は、本実施の形態に係るメモリシステムが行なうWrite_FUA処理の処理手順を示
すフローチャートである。なお、以下の説明では、図4で説明したデータ管理部120、
ブートローダー123、初期化管理部124、デバッグサポート部125をDM(データ
マネージャ)といい、ATAコマンド処理部121をAM(ATAマネージャ)という。
ホスト装置1からSSD100にWrite_FUA要求が送られると、プロセッサ104のA
Mは、DMへWrite_FUA要求(REQ_Write_FUA)を送る(ステップS400)。これにより
、DMは、Write_FUA要求で指定されたデータを、RC22に書き込む(ステップS41
0)。
さらに、DMはAMへ、RC22上の書き込み先エントリの通知(NOTIFY_Write_FUA)
を送る(ステップS420)。AMは、DMから書き込み先エントリの通知を受けると、
上述したエントリへの書き込み完了通知(REQ_Write_FUA_COMPLETE)をDMへ送る(ステ
ップS430)。
この後、DMは、ホスト装置1からのデータであってRC22に格納させたデータを、
NANDメモリ10へ書き込む(ステップS440)。このように、ホスト装置1からWr
ite_FUA要求があった場合には、DRAM20上のバッファ(RC22)にデータを一瞬
だけ書き込んで、すぐにそこからNANDメモリ10に書き込む処理が行なわれる。換言
すると、ホスト装置1からWrite_FUA要求があった場合には、RC22が一時的にFUA
書き込み用のバッファとして用いられる。
NANDメモリ10にデータが書き込まれると、NANDメモリ10へ書き込んだRC
22上のデータ(書き込みに利用したエントリ)を無効化する(ステップS450)。そ
して、DMはAMへ、上述したエントリからNANDメモリ10へデータ書き込みが完了
したことの通知(NOTIFY_Write_FUA_COMPLETE)を行なう(ステップS460)。
ところで、SSD100では、Write処理としてホスト装置1のデータをNANDメモ
リ10に書き込む際には、WC21上のエントリにデータを書き込む。また、SSD10
0では、ホスト装置1から要求のあったデータを読み出す際には、WC21上のエントリ
(クラスタエントリ)を検索する。そして、WC21上のエントリにヒットしなかった場
合には、NANDメモリ10からRC22に、該当するデータが読み出される。また、W
C21上のエントリにヒットした場合は、WC21上のデータはNANDメモリ10上の
データよりも新しい可能性があるので、RC22は利用せずWC21から直接データの読
み出しが行なわれる。
一方、Write_FUA処理で、DRAM20に一時的に書き込まれるデータ領域はRC22
である。ところが、前述のようにWrite_FUAコマンドによって書き込みたいアドレスのデ
ータが、それより前に実行されたWriteコマンドによってWC21上にある場合がある。
すなわち、NANDメモリ10上のデータよりも新しいデータ(最新のデータ)がWC2
1上に格納されている場合がある。
また、WC21の1エントリには1クラスタ(=連続する所定数のセクタ)のデータが
格納されている。このため、例えばWrite_FUA処理によって書き込むデータのサイズが1
セクタである場合、NANDメモリ10への書込みの最小単位である1クラスタのデータ
を作るためには、周辺の(所定数−1)セクタをどこかから持ってきて補完する必要があ
る。このような補完作業を考えると、WC21上のデータが最新データであることが保障
されていれば、WC21上のエントリにデータの書き込みを行うことが最も効率良くデー
タの書き込みを行なうことができることになる。
したがって、本実施の形態では、ホスト装置1からWrite_FUA要求があったデータ(ク
ラスタ)が既にWC21上に存在する場合(WC21に最新のデータがある場合)にはW
C21のエントリに対して書き込みを行なう。換言すると、WC21上にホスト機器から
フラッシュメモリへのデータ書き込み処理に対して一定のレイテンシを保証することが可
能なメモリシステムを提供する。処理に対応するクラスタエントリが存在する場合、DM
はWC21のエントリに対してデータの書き込み動作を実行する。この場合、DMは、Wr
ite_FUA要求で指定されたデータをWC21に書き込んだ後、WC21上の書き込み先エ
ントリの通知(NOTIFY_Write_FUA)をAMへ送る。そして、AMは、DMから書き込み先
エントリの通知を受けると、上述したエントリへの書き込み完了通知をDMへ送り、DM
は、ホスト装置1からのデータであってWC21に格納させたデータを、NANDメモリ
10へ書き込む。
なお、本実施の形態では、ホスト装置1からWrite_FUA要求があった場合に、RC22
を介してNANDメモリ10へデータの書き込みを行なったが、RC22やWC21以外
のDRAM20領域を用いてNANDメモリ10へデータの書き込みを行なってもよい。
このように、本実施の形態では、Write_FUA処理を行なう際に、RC22を介してNA
NDメモリ10へデータの書き込みを行なっているので、DRAM20内に格納していた
データの追い出しなどが不要になるとともに、管理テーブルの複雑な更新処理などが不要
となる。これにより、Write_FUA処理を行なう場合には、NANDメモリ10へのデータ
の書き込みを短時間で行なうことが可能になる。したがって、WC21の状態に関係無く
、ホスト装置1からNANDメモリ10へのデータ書き込み処理に対する一定のレイテン
シを保証することが可能となり、電源障害時であってもデータの消失を防止することが可
能となる。
また、ホスト装置1からWrite_FUA要求があった場合に、RC22を介してNANDメ
モリ10へデータの書き込みを行なうので、DRAM20にFUA専用のバッファ領域を
確保する必要がない。したがって、DRAM20を効率良く利用することが可能となる。
また、ホスト装置1からWrite_FUA要求があったデータが既にWC21上に存在する場
合には、WC21のエントリに対して書き込みを行なうので、効率良くデータの書き込み
を行なうことが可能となる。
SSDの構成例を示すブロック図。 NANDメモリチップに含まれる1個のブロックの構成例と、4値データ記憶方式でのしきい値分布を示す図。 ドライブ制御回路のハードウェア的な内部構成例を示すブロック図。 プロセッサの機能構成例を示すブロック図。 NANDメモリおよびDRAM内に形成された機能構成を示すブロック図。 WCからNANDメモリへの書き込み処理に係わるより詳細な機能ブロック図。 LBA論理アドレスを示す図。 データ管理部内の管理テーブルの構成例を示す図。 RCクラスタ管理テーブルの一例を示す図。 WCクラスタ管理テーブルの一例を示す図。 WCトラック管理テーブルの一例を示す図。 トラック管理テーブルの一例を示す図。 FS/IS管理テーブルの一例を示す図。 MS論理ブロック管理テーブルの一例を示す図。 FS/IS論理ブロック管理テーブルの一例を示す図。 FS/IS内クラスタ管理テーブルの一例を示す図。 論物変換テーブルの一例を示す図。 読み出し処理の動作例を示すフローチャート。 書き込み処理の動作例を示すフローチャート。 各構成要素間のデータの流れにおける入力と出力の組み合わおよびその発生要因を示す図。 本実施の形態に係るメモリシステムが行なうWrite_FUA処理を説明するための図。 本実施の形態に係るメモリシステムが行なうWrite_FUA処理の処理手順を示すフローチャート。
符号の説明
1 ホスト装置、10 NANDメモリ、11、メインストレージ領域(MS)、11
a MS入力バッファ(MSIB)、11b トラック前段ストレージ領域(TFS)、
12 前段ストレージ領域(FS)、12a FS入力バッファ(FSIB)、13 中
段ストレージ領域(IS)、20 DRAM、21 ライトキャッシュ(WC)、22
リードキャッシュ(RC)、104 プロセッサ。

Claims (4)

  1. データの読み出しが行われる揮発性の半導体記憶素子から構成される第1の記憶部と、
    前記データの書き込みが行われる揮発性の半導体記憶素子から構成される第2の記憶部
    と、
    前記データの読み出し/書き込みが行われる不揮発性の半導体記憶素子から構成される
    第3の記憶部と、
    前記第1、第2および第3の記憶部でのデータ管理を行ない、外部からデータの書き込
    み要求があった場合には、前記データを前記第2の記憶部に書き込むとともに、所定の条
    件を満たした場合には前記第2の記憶部に書き込んだデータを前記第3の記憶部に追い出
    し、外部からデータの読み出し要求があった場合には、前記読み出し要求のあったデータ
    を前記第3の記憶部から前記第1の記憶部に読み出すとともに、前記第1の記憶部に読み
    出したデータを外部へ転送するコントローラと、
    を具備し、
    前記コントローラは、前記第3の記憶部を書き込み先として指定したデータの強制書き
    込み命令を外部から受けると、所定の条件を満たした場合に、前記強制書き込み命令で指
    定されたデータを前記第1の記憶部に書き込み、前記第1の記憶部に書き込んだデータを
    前記第3の記憶部へさらに書き込むことを特徴とするメモリシステム。
  2. 前記コントローラは、前記強制書き込み命令で指定されたデータを前記第2の記憶部が
    格納している場合には、前記強制書き込み命令で指定されたデータを前記ホスト装置から
    前記第2の記憶部に書き込むとともに前記第2の記憶部に書き込んだデータを前記第3の
    記憶部へ書き込み、前記強制書き込み命令で指定されたデータを前記第2の記憶部が格納
    していない場合に、前記強制書き込み命令で指定されたデータを前記ホスト装置から前記
    第1の記憶部に書き込むとともに前記第1の記憶部に書き込んだデータを前記第3の記憶
    部へ書き込むことを特徴とする請求項1に記載のメモリシステム。
  3. 前記強制書込み命令があった場合、前記第1の記憶部は一時的な書込み用バッファとし
    て機能することを特徴とする請求項1に記載のメモリシステム。
  4. 前記コントローラは、前記第1の記憶部に書き込んだデータを前記第3の記憶部へさら
    に書き込まれた後、第1の記憶部上のデータを無効化することを特徴とする請求項1に記
    載のメモリシステム。
JP2008051467A 2008-03-01 2008-03-01 メモリシステム Expired - Fee Related JP4621749B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2008051467A JP4621749B2 (ja) 2008-03-01 2008-03-01 メモリシステム
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 US20220374151A1 (en) 2008-03-01 2022-08-03 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008051467A JP4621749B2 (ja) 2008-03-01 2008-03-01 メモリシステム

Publications (2)

Publication Number Publication Date
JP2009211222A true JP2009211222A (ja) 2009-09-17
JP4621749B2 JP4621749B2 (ja) 2011-01-26

Family

ID=41184326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051467A Expired - Fee Related JP4621749B2 (ja) 2008-03-01 2008-03-01 メモリシステム

Country Status (1)

Country Link
JP (1) JP4621749B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140087593A (ko) * 2012-12-31 2014-07-09 엘지디스플레이 주식회사 표시 장치용 메모리 인터페이스 장치 및 방법
KR20160031579A (ko) * 2014-09-12 2016-03-23 엘지디스플레이 주식회사 표시장치
KR20160057715A (ko) * 2014-11-14 2016-05-24 엘지디스플레이 주식회사 메모리 인터페이스 장치
KR20160093919A (ko) * 2015-01-30 2016-08-09 엘지디스플레이 주식회사 표시 모듈 및 표시 장치
US9412455B2 (en) 2013-09-11 2016-08-09 Kabushiki Kaisha Toshiba Data write control device and data storage device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202950A (ja) * 1992-08-26 1994-07-22 Cyrix Corp 母線の主調停信号を使用しないキャッシュ・コヒレンシー・システム
JPH06314172A (ja) * 1993-03-03 1994-11-08 Hitachi Ltd 情報記録再生装置
JPH07271668A (ja) * 1994-03-24 1995-10-20 Hewlett Packard Co <Hp> 入出力アドレス変換機構用の計算システム
JPH08328959A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp ディスクキャッシュ制御装置
JPH10269143A (ja) * 1997-03-25 1998-10-09 Mitsubishi Electric Corp ディスクキャッシュ装置のキャッシュパラメータ制御方法及びディスクキャッシュ装置
JP2001134487A (ja) * 1999-11-09 2001-05-18 Nec Corp ディスクアレイ装置
JP2002259119A (ja) * 2001-03-06 2002-09-13 National Institute Of Advanced Industrial & Technology 階層型命令を実行する計算機
JP2007193414A (ja) * 2006-01-17 2007-08-02 Nec Corp コンピュータシステムおよびコンピュータシステムにおけるメモリダンプ制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202950A (ja) * 1992-08-26 1994-07-22 Cyrix Corp 母線の主調停信号を使用しないキャッシュ・コヒレンシー・システム
JPH06314172A (ja) * 1993-03-03 1994-11-08 Hitachi Ltd 情報記録再生装置
JPH07271668A (ja) * 1994-03-24 1995-10-20 Hewlett Packard Co <Hp> 入出力アドレス変換機構用の計算システム
JPH08328959A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp ディスクキャッシュ制御装置
JPH10269143A (ja) * 1997-03-25 1998-10-09 Mitsubishi Electric Corp ディスクキャッシュ装置のキャッシュパラメータ制御方法及びディスクキャッシュ装置
JP2001134487A (ja) * 1999-11-09 2001-05-18 Nec Corp ディスクアレイ装置
JP2002259119A (ja) * 2001-03-06 2002-09-13 National Institute Of Advanced Industrial & Technology 階層型命令を実行する計算機
JP2007193414A (ja) * 2006-01-17 2007-08-02 Nec Corp コンピュータシステムおよびコンピュータシステムにおけるメモリダンプ制御方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140087593A (ko) * 2012-12-31 2014-07-09 엘지디스플레이 주식회사 표시 장치용 메모리 인터페이스 장치 및 방법
KR102050441B1 (ko) 2012-12-31 2020-01-08 엘지디스플레이 주식회사 표시 장치용 메모리 인터페이스 장치 및 방법
US9412455B2 (en) 2013-09-11 2016-08-09 Kabushiki Kaisha Toshiba Data write control device and data storage device
KR20160031579A (ko) * 2014-09-12 2016-03-23 엘지디스플레이 주식회사 표시장치
KR102257199B1 (ko) 2014-09-12 2021-05-31 엘지디스플레이 주식회사 표시장치
KR20160057715A (ko) * 2014-11-14 2016-05-24 엘지디스플레이 주식회사 메모리 인터페이스 장치
KR102167143B1 (ko) 2014-11-14 2020-10-16 엘지디스플레이 주식회사 메모리 인터페이스 장치
KR20160093919A (ko) * 2015-01-30 2016-08-09 엘지디스플레이 주식회사 표시 모듈 및 표시 장치
KR102316559B1 (ko) 2015-01-30 2021-10-25 엘지디스플레이 주식회사 표시 모듈 및 표시 장치

Also Published As

Publication number Publication date
JP4621749B2 (ja) 2011-01-26

Similar Documents

Publication Publication Date Title
JP4691122B2 (ja) メモリシステム
JP4745356B2 (ja) メモリシステム
JP4643667B2 (ja) メモリシステム
JP5010505B2 (ja) メモリシステム
JP4691123B2 (ja) メモリシステム
JP4498426B2 (ja) メモリシステム
JP4675985B2 (ja) メモリシステム
JP4653817B2 (ja) メモリシステム
JP4551940B2 (ja) メモリシステム
JP5032371B2 (ja) メモリシステム
JP4762261B2 (ja) メモリシステム
JP2009211234A (ja) メモリシステム
JP4643671B2 (ja) メモリシステム
KR101067457B1 (ko) 메모리 시스템
JP2009211233A (ja) メモリシステム
JP4592774B2 (ja) メモリシステム
JP4621749B2 (ja) メモリシステム
JP5221593B2 (ja) メモリシステム
JP4510107B2 (ja) メモリシステム
JP4746641B2 (ja) メモリシステム
JP4703673B2 (ja) メモリシステム
JP5178857B2 (ja) メモリシステム
JP2009211224A (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100819

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: 20101005

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: 20101101

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees