JP2007034944A - コンピュータシステム - Google Patents
コンピュータシステム Download PDFInfo
- Publication number
- JP2007034944A JP2007034944A JP2005220940A JP2005220940A JP2007034944A JP 2007034944 A JP2007034944 A JP 2007034944A JP 2005220940 A JP2005220940 A JP 2005220940A JP 2005220940 A JP2005220940 A JP 2005220940A JP 2007034944 A JP2007034944 A JP 2007034944A
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- cache memory
- memory
- page
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
【解決手段】処理装置50と、キャッシュメモリ38と、処理装置50のCPU51からの要求に応じて、キャッシュメモリ38を介したデータ書き込みが行われるフラッシュメモリ35,36と、を有し、キャッシュメモリ38にエントリされるラインサイズはフラッシュメモリの一括書き込み単位である実ページサイズの1/Nである(ただし、Nは2以上の整数)。
【選択図】図3
Description
その代表例として、NAND型フラッシュメモリが挙げられる。
図1のNAND型フラッシュメモリは、ビット線BL1〜BLnに接続された複数のメモリユニット1−1〜1−nがアレイ状に(縦横)に配列されている。
たとえば、選択用トランジスタ2のゲートが選択ゲート線SL1に接続され、選択用トランジスタ3のゲートが選択ゲート線SL2に接続されている。また、各メモリセルN0〜N15のゲートがワード線WL0〜WL15に接続されている。
ISSCC2002予稿集のp106、セッション6.4
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。
このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく低下する。
その転送速度を、シリアルATA接続の高速ストレージで目標とされる160MB/sにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば16個のメモリアレイを並列動作させる必要がある。
図2において、高速転送を実現するため、16個のアレイAR0〜AR15を同時に動作させる。この場合データ書き込み時は、たとえばページP0,P1を同時書き込みし、消去時はブロックB0〜B15を同時消去する。このとき括書き込み単位となる実ページ領域24は32kB、一括消去単位となる実消去ブロック領域21は2MBに達することになる。
その場合、たとえばページP0とP1のみを書き換える要求が発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域21全体を消去しなければならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
2.次にメモリ領域22内で、ページP0とP1に相当するデータを更新する。
3.次にフラッシュメモリ上のブロック領域21の消去を実行する。
4.最後に上記消去済の領域21に、更新後のメモリ領域22のブロックデータを全て書き戻す。
具体的には、1ページ分のデータの読み出しおよび書き込みにはそれぞれ200μsを要し、ブロックの消去には2msを要するので、30ms近くを必要とする。
この場合、仮想アドレス構成を用いて消去ブロック単位で論理アドレスと物理アドレスの対応を更新し、アクセス対象とされた論理アドレスに対応する物理ブロックは元の消去ブロック領域21からデータの移動先ブロック領域27に張り替えられる。
しかしこの場合も、有効データを消去ブロック領域21から移動先ブロック領域27に退避させる作業は必要である。またこの際、通常は元のブロック領域21を消去して、そちらを予備ブロックに変える。したがって、結局は従来とほぼ同様の読み出し、書き込み、消去が必要であり、大きなオーバーヘッドが生じることに変わりは無い。
したがって、上述の如き制約があると、現実の転送性能は著しく低いものになってしまう。
しかしどのように小単位の書き換えであっても、上述の如き消去ブロック全体の書き換えが必要になる。
ここで例示されているのは、フラッシュメモリの消去単位であるブロックデータ、あるいは一括書き込み単位であるページデータを、そのままエントリとしてキャッシュメモリに保存するものである。更新しようとするデータを含むブロックがキャッシュに格納されていれば、即ちキャッシュがヒットすれば、キャッシュ内のデータのみが更新されるので、上述のような冗長な動作は直ちには発生しない。
たとえば前述した図2のケースでは、通常の16倍の転送速度である160MB/sを得るために16のアレイを並列動作させ、その結果実ページサイズは32kBを必要としている。消去ブロックサイズは2MBにも達する。
したがって、たとえば512kBのキャッシュメモリを使用しても、実ページ単位では16個のエントリしかできず、ブロック単位では1エントリも確保できない。性能の向上に伴ってキャッシュサイズも巨大化させていかないとエントリ数を確保できず、十分なヒット率を得られないという不利益があった。
このようなシステムではフラッシュメモリを高速なハードディスクのように使用することもでき、待機時の消費電力が低く、コンパクトで高速なストレージシステムを獲得できる。
ファイル記憶装置30は、インターフェース回路(I/F)31、ページバッファ32、メモリバス33、制御回路34、NAND型フラッシュメモリ35,36、および制御回路37、キャッシュメモリ38、および内部バス39を含んで構成されている。また、40〜43はページ領域を示し、制御回路34は、アドレス変換テーブル44、およびキャッシュの管理テーブル45を有する。
処理装置50は、CPU51、RAM52、ROM53、システムバス54、およびブリッジ回路55を含んで構成されている。
さらに本システムにおいては、ファイル記憶装置30がブリッジ回路55を介してCPU51に接続されている。
CPU51はRAM52内に構築された各種データをファイルにして、ファイル記憶装置30に適時保存する。その際はブリッジ回路55を介してCPU51からのコマンドやデータがファイル記憶装置30に伝達される。
各々のフラッシュメモリ35,36は書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。
したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32はアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ35,36とページバッファ32との間のデータの送受は、制御回路37で制御されている。
さらに制御回路37は、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35,37はページバッファ32を介してファイル記憶装置30の内部バス39との間でデータを入出力する。
インターフェース回路31はATAやPCIエクスプレス等の規格に従ってブリッジ回路54との間で、データやコマンドの送受を行う。
制御回路34は、ファイル記憶装置30の内部においてページバッファ32、キャッシュメモリ38およびインターフェース回路31の間のデータの送受を管理する。ここに内蔵されたRAMには、ページ単位の仮想アドレスを管理するアドレス変換テーブル44およびキャッシュメモリ38の管理テーブル45が構築されている。
ここでは簡単のため、16進数のアドレスは次のように割り振られるとする。
キャッシュメモリ38へのエントリは、一般的なキャッシュメモリのように実ページをそのままキャッシュするのではなく、実ページの1/4、すなわち4セクタを単位として構成する。
したがって、各々のエントリは、対応する16ビットのページアドレスに加え、4ビットのセクタドレス中上位2ビットを持って管理されることになる。
上述の例では実ページサイズが8kBなので、1エントリのサイズは2kBである。たとえば128kBのRAMをキャッシュメモリとした場合、約64個のエントリを持つことが可能である。
ここではテーブル管理の容易さとヒット率を勘案し、ページ内セクタドレスの上位2ビットをインデックスとして、四つのセットを構成した。各セットは独立に16個ずつのエントリを保有する。すなわち4セット16ウエイのセットアソシアティブ構成が採用されている。テーブル内の各フィールドには、そこにエントリが存在する場合、各エントリに対応するページアドレスが格納されている。
さらに該セットに登録されている最大16個のエントリが検索され、”0x5500”のページアドレスに対応するエントリの有無が判定される。
たとえば、論理ページアドレスの最下位ビットをインデックスに加え、偶数ページと奇数ページを異なるセットとする。
さらに前例と同様に各ページを4分割することで、8セットの構成となる。このときエントリサイズは変わらないので、キャッシュ容量が同じなら各セットのエントリ数は8個となる。すなわち8セット8ウエイのセットアソシアティブとなる。
このように、エントリサイズが実ページサイズの1/N(Nは2以上の整数)に分割された場合、セット数はNまたはNの整数倍となる。
さらに2進数の一般的なアドレスビットに対応させれば、Nは2のべき乗である。またセット数はNまたは(NxM)であって、Mも2のべき乗である。
図5は、アドレス変換テーブル44の構成例を示す図である。
フラッシュメモリのアクセスは以下のようになされる。
まず、ページアドレス”0x5500”を受けて内蔵RAMにアクセスし、アドレス変換テーブル44から論理ページアドレス(LA:LOGICAL ADDRESS)”0x5500”に対応する物理ページアドレス(PA:PHISICAL ADDRESS)”0x00B0”を取得する。
下位”0xB0”は各消去ブロック内のページ領域40,41のアドレスである。この物理アドレスをもとにメモリチップであるフラッシュメモリ35,36が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域40,41のデータが読み出され、ページバッファ32に格納される。
インターフェース回路31は読み出されたデータの中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
制御回路(34)はまずキャッシュメモリ38の管理テーブル(以下、キャッシュテーブルという)45からヒットの有無を判定する(ST1,ST2)。キャッシュにヒットしていれば、データはそのエントリを更新する形でキャッシュメモリ38に書き込まれる(ST3)。
一方、ミスヒットの場合(ST2)、キャッシュへの新たなエントリ確保が可能であれば(ST4)、次の手順でエントリが生成される。
すなわち、読み出しと同様の手順でフラッシュメモリ35,36からページバッファ32へ該当する実ページを読み出し(ST5)、そこから該当するセクタを含む領域(4セクタ分)を切り出してキャッシュメモリ38に確保された新規エントリのデータ領域にそれをコピーする(ST6)。
最後にキャッシュテーブルを更新し、エントリが登録される(ST6)。その後そのエントリ内の所定の箇所を入力データに従って更新する(ST3)。
キャッシュメモリ38のエントリが全て埋まり、新規エントリ確保ができない場合(ST4)、適当なエントリをフラッシュメモリ内に書き戻し、開放してやる必要がある(ST7)。たとえば論理アドレス”0x5500C”〜”0x5500F”に対応するエントリ(図4−E1)を開放し、そのデータをフラッシュメモリに書き戻す場合は以下の手順に従う。
まず、読み出しと同様の手順でアドレス変換テーブル44が参照され、ページ領域40,41のデータがメモリチップ、すなわちフラッシュメモリ35,36から読み出され、ページバッファ32に格納される(ST8)。
その中から対応するエントリ部分が選択され、キャッシュメモリ上の開放すべきエントリのデータで上書き更新される(ST9)。
たとえば、ホストからのアクセスが4kBまたは8kBといった大きな単位でなされる場合、実ページを分割してエントリしたことで、フラッシュメモリへの書き込みも細切れとなり、そのアクセス頻度が増加してしまう問題が生ずる。
上述のように一度に複数のエントリを書き戻せば、記憶装置へのアクセス中最も時間のかかるフラッシュメモリへの書き戻し工程を効率化し、上記問題を解決できる。
このようにしてページバッファ32上のデータが更新されると、それらはフラッシュメモリ35,36内に書き戻される。最後にキャッシュテーブル45が更新される。
すなわち、更新後のページデータは、フラッシュメモリ35,36に書き戻されるが、その際各々の空き領域42,43に書き込まれる(ST10,ST11)。このページ領域の物理ページアドレスは”0x0280”であり、すなわち消去ブロック”0x02”内の”0x80”のページに相当する。
またこの処理の前まで、その領域はアドレス変換テーブル44のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル44の論理アドレス”0x5500”に対応する物理アドレスフィールドには、領域42,43の物理ページアドレス”0x0280”が登録される。
このような手法を採用すれば、書き戻しの際に元ブロックのデータ退避等を行う必要が無く、常に実ページのみを単位としてフラッシュメモリにアクセスできる。本発明の如く実ページを分割してエントリした場合、フラッシュメモリへの書き戻し単位も実ページに統一できた方が記憶システムの効率は良い。
したがって、このような実ページ単位での追記型書き換えは、本発明に好適である。
本発明の実施形態のポイントはキャッシュメモリへのエントリのラインサイズを実ページサイズの1/N(Nは2以上の整数)に分割することであるが、さらにキャッシュ構成をNまたはNの整数倍のセットで構成するセットアソシアティブとすることで、高いヒット率を確保しつつ効率的な管理が可能である。
また、さらにフラッシュメモリへの書き戻しに実ページ単位の追記を採用することで、本キャッシュ構成を取った場合、特に顕著となる書き戻し時の煩雑さを大幅に軽減できる。
なお、内部並列化による高速動作を狙って複数のフラッシュデバイスで実ページを構成する場合、本実施形態のように、実ページをページバッファに一時保存し、それを介してフラッシュメモリデバイスに一括書き込みを施す構成が、扱いやすく便利である。
すなわち視点を変えれば、本発明の実施形態はキャッシュメモリのエントリサイズの複数倍の連続データをページバッファに一時保存し、それをフラッシュメモリに一括書き込みさせている。
その場合、図3の例であれば、ページ領域40,41の書き換えは、それを含む消去ブロック内の全ページの移動を伴って実施される。すなわち物理アドレス”0x00”の消去ブロック内ページは上位から1ページずつ順番にページバッファ32を介して予備の消去ブロックにコピーされていく。
その過程でページ領域40,41のデータがページバッファ32内に格納された際、更新データで上書きされる。全てのページが移動し終わると、元ブロックが消去されて予備ブロックに張り替えられる。
しかしたとえばシステムメモリであるRAM52の一部に同様のキャッシュ領域を設け、それをホスト側で管理することも可能である。
また、フラッシュメモリにはページ単位でエラー訂正用のパリティービットが付加されていることも多く、その他記憶装置ごとに固有の管理用予備データが追加されている場合もある。
たとえばエラー訂正用の符号化や復号化等の処理がページバッファ32と内部バス39の接続部でなされた場合、本発明の実施形態を適用してもキャッシュメモリへのエントリのラインサイズは実ページサイズの正確な1/Nにならない場合が生ずる。
しかし、本1/Nという表現は、このようなファイル記憶装置が固有に付加した管理データを除外した正味のデータ量を対象としたものであって、上述のようなバリエーションは本発明の実施形態の適用範囲内である。
特にページを分割してエントリとした場合、ホストからのアクセスが4kBまたは8kBといった大きな単位でなされても、エントリが細切れに生成されるため、その都度読み出し工程が入る。すなわち同じページを重複して何度も読み出してしまうケースが生じる。
それに対して本発明の第2の実施形態では、キャッシュメモリへのエントリ生成の際に、フラッシュメモリからの元データ読み出しを不要とするための新規手法を提案する。
なお、システムの構成自体は図3と同様である。
本発明の第2の実施形態に係るキャッシュテーブル(管理テーブル)は、第1の実施形態のキャッシュテーブル(図4)と同様のセットアソシアティブを採用しているが、相違は各エントリにセクタごとの書き込みの有無を示すフラグフィールドが追加されていることである。
キャッシュは以下の手順で管理される。
まず記憶装置のセクタアドレス”0x00014”に書き込みがなされるとする。この際キャッシュメモリ38内には対応するセット”01”(セクタドレス”0x4〜0x7”に対応)に4セクタ分のメモリ領域(2kB)がデータ用のエントリとして確保され、空のエントリが生成される。
この際、図7(A)に示すキャッシュテーブル上の対応エントリフィールド60には、ページアドレス”0x0001”を格納するフィールドの他、各セクタに書き込みが成されたか否かを示すフラグフィールドが生成される。
その後上記エントリの最初の1セクタ分にデータが書き込まれる。この際キャッシュテーブルのフィールド60におけるセクタ書き込みフラグの対応箇所に”1”が立てられる。
なお、同エントリ内の他のセクタ領域は、これまでのようにフラッシュメモリからの読み出しデータで埋められておらず、空白のままである。これによりキャッシュメモリ内の各エントリは不完全なまま残されるが、どのセクタが書き込まれていないのかはフラグの参照で判定することができる。
その後”0x00015”〜”0x00019”のセクタが連続して書き込まれ、さらに”0x000AA”〜”0x000AD"のセクタが書き込まれたとする。
その間フラッシュメモリからデータを読み出すことなくエントリデータのメモリが確保され、データが実際に書き込まれたセクタに対してフラグに”1”が立てられている。
上記状態からたとえば”0x000A”のページに関わるエントリ61,62をフラッシュメモリに書き戻して開放する場合、次のように行う。
まず図3にも示されたページバッファ32に、フラッシュメモリ35,36から論理アドレス”0x000A”に相当する実ページを読み出し転送する。
この際必要に応じてアドレス変換テーブル44を参照し、物理ページアドレスPAに変換してフラッシュメモリにアクセスを行っても良い。
次にエントリ61,62のフラグを参照し、フラグに”1”が立っている領域のセクタデータのみをキャッシュメモリ38からページバッファ32に転送して、上書きする。これによってフラッシュ側の元ページデータとキャッシュに蓄積された入力(更新)セクタのデータがページバッファ上で合成され、完全なページデータが構築される。
最後にページバッファ32のデータをフラッシュメモリに書き戻す。
上記手順を採用することで、エントリ生成時のフラッシュメモリからの元ページの読み出しは不要となる。
第1の実施形態の図6のフロー図と比較すると、<2>のエントリ生成工程(ST5、ST6)がキャッシュメモリへの空のエントリ生成のみとなり(ST25)、その操作は瞬時に完了する。
そのためには、エントリ内の各セクタの更新の有無を判別するための情報が必要であり、上記図7の例ではキャッシュテーブル内にエントリ毎のセクタの更新をフラグで記載することでこれを行った。
すなわち、実ページを細切れにしてエントリを生成させる第1の実施形態においては、エントリ生成の際にフラッシュメモリから同じ実ページを重複して読み出す冗長性が発生し得るが、第2の実施形態ではフラッシュメモリからの実ページ読み出し自体を不要とし、上記懸案を根本から解消する。
2つのチップは読み出しや書き込みにおいて、同時並列にアクセスされる。各々のフラッシュメモリ35b、36bは書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32bは、アクセスされたページ領域のデータを一時記憶する。
フラッシュメモリ35b,36b、とページバッファ32bとの間のデータの送受は、制御回路37bで制御されている。
さらに、制御回路37bは、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35b,36bはページバッファ32bを介してファイル記憶装置30bの内部バス39bとの間でデータを入出力する。
インターフェース回路31bはATAやPCIエクスプレス等の規格に従ってホストとの間で、データやコマンドの送受を行う。
強誘電体メモリ38b内には前述の如く実ページサイズの1/N(Nは2以上の整数)をエントリとしたキャッシュメモリ38b’、ページ単位の仮想アドレスを管理するアドレス変換テーブル44bおよびキャッシュメモリの管理テーブル45bが構築されている。
制御回路34bは、ファイル記憶装置30bの内部においてページバッファ32b、キャッシュメモリ38bおよびインターフェース回路31bの間のデータの送受を管理する。
さらに望ましくはインターフェース回路31、ページバッファ32および制御回路37も同一のICチップに統合し、ファイル記憶装置30をICチップとフラッシュメモリのSIP(System In Package)で構成すると良い。
FeRAMは強誘電体キャパシタの分極方向の違いでデータを記憶する半導体メモリである。たとえばUSP4873664においてS.Sheffeieldらがその一形態を提案している。
OUMはたとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリである。たとえばIEDM2001の論文ダイジェストの803ページに、S.Laiらが論文を掲載している。
RRAMは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリである。たとえばIEDM2002の論文ダイジェストの7.5にはW.W.Zhuangらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
Claims (11)
- 処理装置と、
キャッシュメモリと、
上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、を有し、
上記キャッシュメモリにエントリされるラインサイズは上記フラッシュメモリの一括書き込み単位である実ページサイズの1/Nである(ただし、Nは2以上の整数)
コンピュータシステム。 - 実ページのデータを格納するページバッファを、さらに有し、
上記キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、当該エントリに対応する実ページデータのうち、上記キャッシュメモリ上のエントリ部とフラッシュメモリ上の非エントリ部が上記ページバッファ内で合成され、合成後にフラッシュメモリに書き込まれる
請求項1記載のコンピュータシステム。 - 上記キャッシュメモリはセットアソシアティブ構成を有し、そのセット数はNまたはNの整数倍である
請求項2記載のコンピュータシステム。 - 上記キャッシュメモリ内に、同じ実ページ内の異なる領域に対応する複数のエントリが存在する場合、少なくともその二つ以上をまとめてフラッシュメモリに書き戻す機能を有する
請求項2記載のコンピュータシステム。 - 上記フラッシュメモリへの実ページデータの書き戻しは、更新されたページデータを消去済みの領域に追記し、元のページ領域を無効化することによって実施される
請求項2記載のコンピュータシステム。 - 処理装置と、
キャッシュメモリと、
上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、
バッファと、を有し、
上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、
キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、キャッシュメモリ上の更新セクタとフラッシュメモリ上の非更新セクタとが上記バッファ内で合成され、合成後にフラッシュメモリに書き込まれる
コンピュータシステム。 - 実ページのデータを格納するページバッファを、さらに有し、
上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、
上記キャッシュメモリにエントリされたデータをフラッシュメモリへ書き込む際には、まずエントリに対応する実ページデータのうち、キャッシュメモリ上の当該エントリ内の更新セクタとフラッシュメモリ上の非更新セクタとが上記ページバッファ内で合成され、合成後にフラッシュメモリに書き戻される
請求項6記載のコンピュータシステム。 - 処理装置と、
キャッシュメモリと、
上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、ページバッファを有し、
キャッシュメモリにエントリされるラインサイズの複数倍の連続データを上記ページバッファに一時保存し、それらを上記フラッシュメモリに一括して書き込む機能を有する
コンピュータシステム。 - 上記キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、当該エントリに対応する実ページデータのうち、上記キャッシュメモリ上のエントリ部とフラッシュメモリ上の非エントリ部が上記ページバッファ内で合成され、合成後にフラッシュメモリに書き込まれる
請求項8記載のコンピュータシステム。 - 上記キャッシュメモリはセットアソシアティブ構成を有し、そのセット数はNまたはNの整数倍である
請求項9記載のコンピュータシステム。 - 上記キャッシュメモリ内に、同じ実ページ内の異なる領域に対応する複数のエントリが存在する場合、少なくともその二つ以上をまとめてフラッシュメモリに書き戻す機能を有する
請求項10記載のコンピュータシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005220940A JP4961693B2 (ja) | 2005-07-29 | 2005-07-29 | コンピュータシステム |
US11/493,658 US7571282B2 (en) | 2005-07-29 | 2006-07-27 | Computer system having a flash memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005220940A JP4961693B2 (ja) | 2005-07-29 | 2005-07-29 | コンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007034944A true JP2007034944A (ja) | 2007-02-08 |
JP4961693B2 JP4961693B2 (ja) | 2012-06-27 |
Family
ID=37695697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005220940A Active JP4961693B2 (ja) | 2005-07-29 | 2005-07-29 | コンピュータシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7571282B2 (ja) |
JP (1) | JP4961693B2 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211220A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP2009211229A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP2010097333A (ja) * | 2008-10-15 | 2010-04-30 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010521718A (ja) * | 2007-12-28 | 2010-06-24 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
JP2010244553A (ja) * | 2009-03-31 | 2010-10-28 | Sean Eilert | 大容量記憶装置を接続するための階層型メモリアーキテクチャ |
JP2011060217A (ja) * | 2009-09-14 | 2011-03-24 | Toshiba Corp | データ蓄積装置及びデータ書込み/読出し方法 |
US8108593B2 (en) | 2008-03-01 | 2012-01-31 | Kabushiki Kaisha Toshiba | Memory system for flushing and relocating data |
JP2012517645A (ja) * | 2009-02-11 | 2012-08-02 | インディリンクス カンパニー リミテッド | 半導体ディスクシステムのバッファキャッシュプログラミング方法およびバッファキャッシュプログラミング装置 |
JP2013152676A (ja) * | 2012-01-26 | 2013-08-08 | Hitachi Ltd | 不揮発性記憶装置 |
WO2013168479A1 (ja) * | 2012-05-07 | 2013-11-14 | 株式会社バッファローメモリ | Ssd(ソリッドステートドライブ)装置 |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108590B2 (en) * | 2000-01-06 | 2012-01-31 | Super Talent Electronics, Inc. | Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear |
KR100874702B1 (ko) * | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 |
TW200820266A (en) * | 2006-10-19 | 2008-05-01 | Benq Corp | Method for reading and writing data in a flash memory in an embedded system |
WO2008084489A1 (en) * | 2007-01-08 | 2008-07-17 | Ashok Vishwanath Sathe | System of actuation of drive coupling to engage and disengage the drive to rotary tool holders |
US7996599B2 (en) * | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US8397024B2 (en) * | 2008-10-25 | 2013-03-12 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
US8180981B2 (en) | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
FR2954572B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Procede de gestion de donnees tournantes. |
FR2954538B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Securisation de l'effacement d'une memoire de type flashprom. |
US9075733B1 (en) * | 2010-05-20 | 2015-07-07 | Seagate Technology Llc | Selective storage of address mapping metadata in a system having multiple memories |
KR101301828B1 (ko) * | 2011-09-29 | 2013-08-29 | 한양대학교 산학협력단 | 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치 |
US11061598B2 (en) * | 2019-03-25 | 2021-07-13 | Western Digital Technologies, Inc. | Optimized handling of multiple copies in storage management |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07146820A (ja) * | 1993-04-08 | 1995-06-06 | Hitachi Ltd | フラッシュメモリの制御方法及び、それを用いた情報処理装置 |
WO2004031962A2 (en) * | 2002-10-04 | 2004-04-15 | Koninklijke Philips Electronics N.V. | Data processing system having a hierarchical memory organisation and method for operating the same |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4873664A (en) | 1987-02-12 | 1989-10-10 | Ramtron Corporation | Self restoring ferroelectric memory |
JPH05216775A (ja) | 1991-10-29 | 1993-08-27 | Hitachi Ltd | 半導体記憶装置 |
JPH06349286A (ja) | 1993-06-04 | 1994-12-22 | Matsushita Electric Ind Co Ltd | フラッシュメモリ用書き込み制御方法および制御装置 |
US6263398B1 (en) * | 1998-02-10 | 2001-07-17 | Ramtron International Corporation | Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache |
KR100454119B1 (ko) * | 2001-10-24 | 2004-10-26 | 삼성전자주식회사 | 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들 |
US6907497B2 (en) * | 2001-12-20 | 2005-06-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
US7058784B2 (en) * | 2003-07-04 | 2006-06-06 | Solid State System Co., Ltd. | Method for managing access operation on nonvolatile memory and block structure thereof |
JP5162846B2 (ja) * | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
JP4910360B2 (ja) * | 2005-10-20 | 2012-04-04 | ソニー株式会社 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
-
2005
- 2005-07-29 JP JP2005220940A patent/JP4961693B2/ja active Active
-
2006
- 2006-07-27 US US11/493,658 patent/US7571282B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07146820A (ja) * | 1993-04-08 | 1995-06-06 | Hitachi Ltd | フラッシュメモリの制御方法及び、それを用いた情報処理装置 |
WO2004031962A2 (en) * | 2002-10-04 | 2004-04-15 | Koninklijke Philips Electronics N.V. | Data processing system having a hierarchical memory organisation and method for operating the same |
JP2006501563A (ja) * | 2002-10-04 | 2006-01-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システムおよび同システムを動作させる方法 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782331B2 (en) | 2007-12-28 | 2014-07-15 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US11960719B2 (en) | 2007-12-28 | 2024-04-16 | Kioxia Corporation | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US8065470B2 (en) | 2007-12-28 | 2011-11-22 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories |
JP2010521718A (ja) * | 2007-12-28 | 2010-06-24 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
US11513682B2 (en) | 2007-12-28 | 2022-11-29 | Kioxia Corporation | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
JP2010250847A (ja) * | 2007-12-28 | 2010-11-04 | Toshiba Corp | 半導体記憶装置 |
JP2010250846A (ja) * | 2007-12-28 | 2010-11-04 | Toshiba Corp | 半導体記憶装置 |
JP2010250845A (ja) * | 2007-12-28 | 2010-11-04 | Toshiba Corp | 半導体記憶装置 |
JP2010267273A (ja) * | 2007-12-28 | 2010-11-25 | Toshiba Corp | 半導体記憶装置 |
US10845992B2 (en) | 2007-12-28 | 2020-11-24 | Toshiba Memory Corporation | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US10248317B2 (en) | 2007-12-28 | 2019-04-02 | Toshiba Memory Corporation | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US9703486B2 (en) | 2007-12-28 | 2017-07-11 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US9134924B2 (en) | 2007-12-28 | 2015-09-15 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
JP2009211229A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP4592774B2 (ja) * | 2008-03-01 | 2010-12-08 | 株式会社東芝 | メモリシステム |
JP2009211220A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8108593B2 (en) | 2008-03-01 | 2012-01-31 | Kabushiki Kaisha Toshiba | Memory system for flushing and relocating data |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
JP4632180B2 (ja) * | 2008-10-15 | 2011-02-16 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010097333A (ja) * | 2008-10-15 | 2010-04-30 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2012517645A (ja) * | 2009-02-11 | 2012-08-02 | インディリンクス カンパニー リミテッド | 半導体ディスクシステムのバッファキャッシュプログラミング方法およびバッファキャッシュプログラミング装置 |
JP2010244553A (ja) * | 2009-03-31 | 2010-10-28 | Sean Eilert | 大容量記憶装置を接続するための階層型メモリアーキテクチャ |
JP2011060217A (ja) * | 2009-09-14 | 2011-03-24 | Toshiba Corp | データ蓄積装置及びデータ書込み/読出し方法 |
JP2013152676A (ja) * | 2012-01-26 | 2013-08-08 | Hitachi Ltd | 不揮発性記憶装置 |
US9378131B2 (en) | 2012-01-26 | 2016-06-28 | Hitachi, Ltd. | Non-volatile storage addressing using multiple tables |
WO2013168479A1 (ja) * | 2012-05-07 | 2013-11-14 | 株式会社バッファローメモリ | Ssd(ソリッドステートドライブ)装置 |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20070028034A1 (en) | 2007-02-01 |
JP4961693B2 (ja) | 2012-06-27 |
US7571282B2 (en) | 2009-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4961693B2 (ja) | コンピュータシステム | |
JP4910360B2 (ja) | 記憶装置、コンピュータシステム、およびデータ書き込み方法 | |
JP4956922B2 (ja) | 記憶装置 | |
US8904083B2 (en) | Method and apparatus for storing data in solid state memory | |
JP5130646B2 (ja) | 記憶装置 | |
US9183132B2 (en) | Storage device, computer system, and storage system | |
JP5076411B2 (ja) | 記憶装置、コンピュータシステム | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
US10997082B2 (en) | Memory system, computing system, and methods thereof for cache invalidation with dummy address space | |
JP5338859B2 (ja) | 記憶装置および情報処理システム | |
KR20230142795A (ko) | Zns 디바이스들에서의 상이한 기입 우선순위화 | |
WO2015059811A1 (ja) | 半導体装置 | |
WO2010024506A1 (en) | Flash based storage device using page buffer as write cache and method of using the same | |
JP2008181203A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
JP5617873B2 (ja) | 記憶装置 | |
US20210333996A1 (en) | Data Parking for SSDs with Streams | |
US12019543B2 (en) | Memory sub-system cache extension to page buffers of a memory array | |
US11899590B2 (en) | Intelligent cache with read destructive memory cells | |
US20220027234A1 (en) | Fast cache with intelligent copyback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110624 |
|
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: 20120228 |
|
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: 20120312 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150406 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |