JP2007034944A - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

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
Application number
JP2005220940A
Other languages
English (en)
Other versions
JP4961693B2 (ja
Inventor
Toshiyuki Nishihara
利幸 西原
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2005220940A priority Critical patent/JP4961693B2/ja
Priority to US11/493,658 priority patent/US7571282B2/en
Publication of JP2007034944A publication Critical patent/JP2007034944A/ja
Application granted granted Critical
Publication of JP4961693B2 publication Critical patent/JP4961693B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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

本発明は、フラッシュメモリを記憶装置に用いたコンピュータシステムに関するものであり、特に記憶装置におけるデータ転送の高速化に関するものである。
近年、デジタルスチルカメラやモバイルコンピュータ機器の記憶媒体として、フラッシュメモリが注目されている。
フラッシュメモリは、トンネリングやホットエレクトロン加速を用いて、電子にゲート絶縁膜を通過させ、それらを浮遊ゲートやトラップ層に注入し、セルトランジスタの閾値を変化させることでデータを記憶させる半導体メモリである。積層ゲート構造やMNOS構造等を用いたトランジスタ1つのみでメモリセルを構成できるため、安価かつ大容量のメモリを実現できる。
その代表例として、NAND型フラッシュメモリが挙げられる。
図1は、NAND型フラッシュメモリの内部構成例を示す図である。
図1のNAND型フラッシュメモリは、ビット線BL1〜BLnに接続された複数のメモリユニット1−1〜1−nがアレイ状に(縦横)に配列されている。
たとえば、選択用トランジスタ2のゲートが選択ゲート線SL1に接続され、選択用トランジスタ3のゲートが選択ゲート線SL2に接続されている。また、各メモリセルN0〜N15のゲートがワード線WL0〜WL15に接続されている。
各メモリセルN0〜N15は積層ゲート構造を持ち、浮遊ゲートへの電荷蓄積量に従ってデータを記憶する。すなわち、浮遊ゲートに多くの電子が蓄積されていると、トランジスタの閾値が上昇するので、チャージされたビット線BL1〜BLnからのメモリユニット1(−1〜−n)への電流貫通の有無を、センスアンプ等を含むアクセス回路4で検出してデータ判定を行う。
このようなNAND型フラッシュメモリは、メモリセル毎にビット線へのコンタクト領域を設ける必要もないので、特に大容量で安価な記憶装置の媒体に適している。
ところで、一般にフラッシュメモリのプログラム速度は非常に遅く、セルあたり数百μ秒を必要とする。またデータの上書きはできないので、プログラムに先立って消去を行う必要があり、これには数m秒もの時間がかかる。このような問題に対しては、多くのメモリセルを並列処理することで対処している。
すなわち、たとえば同一ワード線WL0に接続され、ページ単位を成すメモリセル群5を、同時一括に書き込み、さらに互いにメモリユニットを共有するページ群で構成されるセルブロック6を全て一括で消去することにより、プログラムの転送速度を向上させている。
具体的には、たとえば非特許文献1には1GbのNAND型フラッシュメモリが掲載されており、ページサイズを2kバイト、消去ブロックサイズを128kBとしている。すなわち、一つのメモリアレイ内で128kバイトのメモリセル群を並列消去し、そこにメモリセルを2kバイト毎に並列でプログラムしていくことによって、10MB/sのプログラム転送速度を実現している。
ISSCC2002予稿集のp106、セッション6.4 特開平5−216775号公報 特開平6−349286号公報
近年、ハードディスクの消費電力の大きさや、シーク時間の長さ、耐衝撃性や携帯性等の問題を解消すべく、フラッシュメモリにその代替が期待されている。
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。
このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく低下する。
たとえば上記2kB単位のページ書き込み、128kB単位のブロック消去による、転送速度10MB/sフラッシュメモリを用いて、ハードディスク代替用の記憶装置を構成するとする。
その転送速度を、シリアルATA接続の高速ストレージで目標とされる160MB/sにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば16個のメモリアレイを並列動作させる必要がある。
図2は、そのような記憶装置を構成するフラッシュメモリの概念図を示す図である。
図2において、高速転送を実現するため、16個のアレイAR0〜AR15を同時に動作させる。この場合データ書き込み時は、たとえばページP0,P1を同時書き込みし、消去時はブロックB0〜B15を同時消去する。このとき括書き込み単位となる実ページ領域24は32kB、一括消去単位となる実消去ブロック領域21は2MBに達することになる。
一方、通常のファイルシステムでは、最小の書き込み単位を成すクラスタサイズは4kB程度であり、この単位でランダムなアクセスがなされる。
その場合、たとえばページP0とP1のみを書き換える要求が発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域21全体を消去しなければならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
1.まずフラッシュメモリから、別途設けられたバッファメモリ23のメモリ領域22に、実消去ブロック領域21全体のデータを読み出す。
2.次にメモリ領域22内で、ページP0とP1に相当するデータを更新する。
3.次にフラッシュメモリ上のブロック領域21の消去を実行する。
4.最後に上記消去済の領域21に、更新後のメモリ領域22のブロックデータを全て書き戻す。
すなわち、4kバイトの書き込みのために、実際には消去と、2MBのデータの読み出しおよび書き込みが必要となる。
具体的には、1ページ分のデータの読み出しおよび書き込みにはそれぞれ200μsを要し、ブロックの消去には2msを要するので、30ms近くを必要とする。
これに対し、予め予備の消去済みブロック領域27を用意しておいて、このブロック領域27にブロック領域21の元のデータとページP0とP1の更新後データを合成させて書き込みを行う手法もある。
この場合、仮想アドレス構成を用いて消去ブロック単位で論理アドレスと物理アドレスの対応を更新し、アクセス対象とされた論理アドレスに対応する物理ブロックは元の消去ブロック領域21からデータの移動先ブロック領域27に張り替えられる。
しかしこの場合も、有効データを消去ブロック領域21から移動先ブロック領域27に退避させる作業は必要である。またこの際、通常は元のブロック領域21を消去して、そちらを予備ブロックに変える。したがって、結局は従来とほぼ同様の読み出し、書き込み、消去が必要であり、大きなオーバーヘッドが生じることに変わりは無い。
実際にファイルを更新する場合、該当ファイルのみではなく、その管理領域やログの記載等、関連する複数の小領域を同時に更新するのが普通である。またファイル自体も複数の小領域に断片化して存在しているケースがある。
したがって、上述の如き制約があると、現実の転送性能は著しく低いものになってしまう。
また上述の例では4kバイトの書き換えであったが、ハードディスク等の通常のファイル記憶装置はさらに小さい512バイト単位の書き換えまでサポートしている。
しかしどのように小単位の書き換えであっても、上述の如き消去ブロック全体の書き換えが必要になる。
このような事情から、フラッシュメモリを用いた現在の記憶装置は、特に書き込み時においては、ハードディスクをはるかに下回る転送性能しか得られていない。さらに上述のような冗長性は、単に転送性能を悪化させるのみならず、フラッシュメモリの消去回数を増加させ、その寿命まで低下させてしまう。
このような問題に対して、たとえば特許文献1(特開平05−216775号公報)、特許文献2(特開平06−349286号公報)においてはキャッシュメモリの使用が記載されている。
ここで例示されているのは、フラッシュメモリの消去単位であるブロックデータ、あるいは一括書き込み単位であるページデータを、そのままエントリとしてキャッシュメモリに保存するものである。更新しようとするデータを含むブロックがキャッシュに格納されていれば、即ちキャッシュがヒットすれば、キャッシュ内のデータのみが更新されるので、上述のような冗長な動作は直ちには発生しない。
しかしこれまで述べてきたように、フラッシュメモリの高速化を高並列化で実現しようとした場合、ページサイズも巨大化の一途を辿ることになる。
たとえば前述した図2のケースでは、通常の16倍の転送速度である160MB/sを得るために16のアレイを並列動作させ、その結果実ページサイズは32kBを必要としている。消去ブロックサイズは2MBにも達する。
したがって、たとえば512kBのキャッシュメモリを使用しても、実ページ単位では16個のエントリしかできず、ブロック単位では1エントリも確保できない。性能の向上に伴ってキャッシュサイズも巨大化させていかないとエントリ数を確保できず、十分なヒット率を得られないという不利益があった。
本発明の目的は、フラッシュメモリを主媒体とする記憶装置に小容量でもヒット率が高く、アクセスのオーバーヘッドも少ないキャッシュメモリを付与することが可能になり、フラッシュメモリへの書き込みを高速化し、書き換え回数も低減させることが可能なコンピュータシステムを提供することにある。
本発明の第1の観点のコンピュータシステムは、処理装置と、キャッシュメモリと、上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、を有し、上記キャッシュメモリにエントリされるラインサイズは上記フラッシュメモリの一括書き込み単位である実ページサイズの1/Nである(ただし、Nは2以上の整数)。
好適には、実ページのデータを格納するページバッファを、さらに有し、上記キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、当該エントリに対応する実ページデータのうち、上記キャッシュメモリ上のエントリ部とフラッシュメモリ上の非エントリ部が上記ページバッファ内で合成され、合成後にフラッシュメモリに書き込まれる。
好適には、上記キャッシュメモリはセットアソシアティブ構成を有し、そのセット数はNまたはNの整数倍である。
好適には、上記キャッシュメモリ内に、同じ実ページ内の異なる領域に対応する複数のエントリが存在する場合、少なくともその二つ以上をまとめてフラッシュメモリに書き戻す機能を有する。
好適には、上記フラッシュメモリへの実ページデータの書き戻しは、更新されたページデータを消去済みの領域に追記し、元のページ領域を無効化することによって実施される。
本発明の第2の観点のコンピュータシステムは、キャッシュメモリと、上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、バッファと、を有し、上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、キャッシュメモリ上の更新セクタとフラッシュメモリ上の非更新セクタとが上記バッファ内で合成され、合成後にフラッシュメモリに書き込まれる。
好適には、実ページのデータを格納するページバッファを、さらに有し、上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、上記キャッシュメモリにエントリされたデータをフラッシュメモリへ書き込む際には、まずエントリに対応する実ページデータのうち、キャッシュメモリ上の当該エントリ内の更新セクタとフラッシュメモリ上の非更新セクタとが上記ページバッファ内で合成され、合成後にフラッシュメモリに書き戻される。
本発明の第3の観点のコンピュータシステムは、処理装置と、キャッシュメモリと、上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、ページバッファを有し、キャッシュメモリにエントリされるラインサイズの複数倍の連続データを上記ページバッファに一時保存し、それらを上記フラッシュメモリに一括して書き込む機能を有する。
本発明によれば、キャッシュメモリへのエントリを一括アクセス単位である実ページサイズより小さくした、新しいキャッシュ構成を有する。具体的にはエントリとなるラインサイズを実ページサイズの1/N(Nは整数)とし、キャッシュメモリとフラッシュメモリ間のデータのやりとりは、ページバッファを介してこれを行う。
本発明によれば、フラッシュメモリを主媒体とする記憶装置に小容量でもヒット率が高く、アクセスのオーバーヘッドも少ないキャッシュメモリを付与することが可能になり、フラッシュメモリへの書き込みを高速化し、書き換え回数も低減させることが可能になる。
このようなシステムではフラッシュメモリを高速なハードディスクのように使用することもでき、待機時の消費電力が低く、コンパクトで高速なストレージシステムを獲得できる。
以下、本発明の実施形態を図面に関連付けて説明する。
図3は、本実施形態に係るコンピュータシステムを示す構成図である。
本コンピュータシステムCOMSYSは、ファイル記憶装置30、および処理装置50を主構成要素として有している。
ファイル記憶装置30は、インターフェース回路(I/F)31、ページバッファ32、メモリバス33、制御回路34、NAND型フラッシュメモリ35,36、および制御回路37、キャッシュメモリ38、および内部バス39を含んで構成されている。また、40〜43はページ領域を示し、制御回路34は、アドレス変換テーブル44、およびキャッシュの管理テーブル45を有する。
処理装置50は、CPU51、RAM52、ROM53、システムバス54、およびブリッジ回路55を含んで構成されている。
コンピュータシステムCOMSYSは、CPU51によって制御されており、システムバス54にはRAM52およびプログラムが格納されたROM53が接続されている。
さらに本システムにおいては、ファイル記憶装置30がブリッジ回路55を介してCPU51に接続されている。
CPU51はRAM52内に構築された各種データをファイルにして、ファイル記憶装置30に適時保存する。その際はブリッジ回路55を介してCPU51からのコマンドやデータがファイル記憶装置30に伝達される。
ファイル記憶装置30の内部においては、32ビットのメモリバス33に、16ビットの入出力を持つ2チップのNAND型フラッシュメモリ35,36が並列に接続されている。2つのチップのNAND型フラッシュメモリ35,36は読み出しや書き込みにおいて、同時並列にアクセスされる。
各々のフラッシュメモリ35,36は書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。
したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32はアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ35,36とページバッファ32との間のデータの送受は、制御回路37で制御されている。
さらに制御回路37は、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35,37はページバッファ32を介してファイル記憶装置30の内部バス39との間でデータを入出力する。
さらに内部バス39には書き込み用のキャッシュメモリ38とファイル記憶装置30のインターフェース回路31、および制御回路34が接続されている。
インターフェース回路31はATAやPCIエクスプレス等の規格に従ってブリッジ回路54との間で、データやコマンドの送受を行う。
制御回路34は、ファイル記憶装置30の内部においてページバッファ32、キャッシュメモリ38およびインターフェース回路31の間のデータの送受を管理する。ここに内蔵されたRAMには、ページ単位の仮想アドレスを管理するアドレス変換テーブル44およびキャッシュメモリ38の管理テーブル45が構築されている。
本ファイル記憶装置30の内部においては、フラッシュメモリ35,36へのアクセスは次のようになされる。
ここでは簡単のため、16進数のアドレスは次のように割り振られるとする。
たとえば外部入力アドレスが”0x5500C”であった場合、上位16ビットの”0x5500”はページアドレス、下位4ビットの”0xC”はページ領域内のセクタドレスであり、1ページ中には16のセクタが含まれる。本ファイル記憶装置30は1セクタ単位でランダムアクセスが可能である。
キャッシュメモリ38へのエントリは、一般的なキャッシュメモリのように実ページをそのままキャッシュするのではなく、実ページの1/4、すなわち4セクタを単位として構成する。
したがって、各々のエントリは、対応する16ビットのページアドレスに加え、4ビットのセクタドレス中上位2ビットを持って管理されることになる。
上述の例では実ページサイズが8kBなので、1エントリのサイズは2kBである。たとえば128kBのRAMをキャッシュメモリとした場合、約64個のエントリを持つことが可能である。
なお、もし一般的なキャッシュメモリのように実ページ単位でエントリがなされると、同じRAM容量でも16個のエントリしか保有できない。または消去ブロック単位でエントリがなされると、このRAM容量では1エントリも確保できないことに注意する必要がある。
図4は、キャッシュメモリの管理テーブル45の構成例を示す図である。
ここではテーブル管理の容易さとヒット率を勘案し、ページ内セクタドレスの上位2ビットをインデックスとして、四つのセットを構成した。各セットは独立に16個ずつのエントリを保有する。すなわち4セット16ウエイのセットアソシアティブ構成が採用されている。テーブル内の各フィールドには、そこにエントリが存在する場合、各エントリに対応するページアドレスが格納されている。
たとえば、外部からアドレス”0x5500C”のセクタへのアクセスが要求された場合、まずセクタドレス”0xC”の上位2ビットがインデックスとして使用され、”11”に対応するセットが選択される。
さらに該セットに登録されている最大16個のエントリが検索され、”0x5500”のページアドレスに対応するエントリの有無が判定される。
なお、このようなセットアソシアティブ構成の変形として、セットのインデックスにページアドレスの一部を追加することも可能である。
たとえば、論理ページアドレスの最下位ビットをインデックスに加え、偶数ページと奇数ページを異なるセットとする。
さらに前例と同様に各ページを4分割することで、8セットの構成となる。このときエントリサイズは変わらないので、キャッシュ容量が同じなら各セットのエントリ数は8個となる。すなわち8セット8ウエイのセットアソシアティブとなる。
このように、エントリサイズが実ページサイズの1/N(Nは2以上の整数)に分割された場合、セット数はNまたはNの整数倍となる。
さらに2進数の一般的なアドレスビットに対応させれば、Nは2のべき乗である。またセット数はNまたは(NxM)であって、Mも2のべき乗である。
さらに、本実施形態においては、ページ単位の仮想アドレス管理が採用されている。
図5は、アドレス変換テーブル44の構成例を示す図である。
フラッシュメモリのアクセスは以下のようになされる。
読み出しの際、外部から”0x5500C”のセクタドレスが入力されると、制御回路34はまずキャッシュ管理テーブル45からヒットの有無を判定する。キャッシュにヒットしていれば、データはキャッシュメモリ38より読み出される。
一方ミスヒットの場合、制御回路34は次の手順でフラッシュメモリ35,36からページバッファ32へ該当する実ページを読み出す。
まず、ページアドレス”0x5500”を受けて内蔵RAMにアクセスし、アドレス変換テーブル44から論理ページアドレス(LA:LOGICAL ADDRESS)”0x5500”に対応する物理ページアドレス(PA:PHISICAL ADDRESS)”0x00B0”を取得する。
この物理ページアドレスPA中、上位の”0x00”はメモリチップ、すなわちフラッシュメモリ35,36内の消去ブロック46,47のアドレスである。
下位”0xB0”は各消去ブロック内のページ領域40,41のアドレスである。この物理アドレスをもとにメモリチップであるフラッシュメモリ35,36が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域40,41のデータが読み出され、ページバッファ32に格納される。
インターフェース回路31は読み出されたデータの中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
一方、外部から任意のセクタの書き込みを行う場合、図6のような手順で処理が行われる。
<1> キャッシュ内エントリの更新
制御回路(34)はまずキャッシュメモリ38の管理テーブル(以下、キャッシュテーブルという)45からヒットの有無を判定する(ST1,ST2)。キャッシュにヒットしていれば、データはそのエントリを更新する形でキャッシュメモリ38に書き込まれる(ST3)。
<2> エントリの生成
一方、ミスヒットの場合(ST2)、キャッシュへの新たなエントリ確保が可能であれば(ST4)、次の手順でエントリが生成される。
すなわち、読み出しと同様の手順でフラッシュメモリ35,36からページバッファ32へ該当する実ページを読み出し(ST5)、そこから該当するセクタを含む領域(4セクタ分)を切り出してキャッシュメモリ38に確保された新規エントリのデータ領域にそれをコピーする(ST6)。
最後にキャッシュテーブルを更新し、エントリが登録される(ST6)。その後そのエントリ内の所定の箇所を入力データに従って更新する(ST3)。
<3> エントリの開放
キャッシュメモリ38のエントリが全て埋まり、新規エントリ確保ができない場合(ST4)、適当なエントリをフラッシュメモリ内に書き戻し、開放してやる必要がある(ST7)。たとえば論理アドレス”0x5500C”〜”0x5500F”に対応するエントリ(図4−E1)を開放し、そのデータをフラッシュメモリに書き戻す場合は以下の手順に従う。
まず、読み出しと同様の手順でアドレス変換テーブル44が参照され、ページ領域40,41のデータがメモリチップ、すなわちフラッシュメモリ35,36から読み出され、ページバッファ32に格納される(ST8)。
その中から対応するエントリ部分が選択され、キャッシュメモリ上の開放すべきエントリのデータで上書き更新される(ST9)。
なお、この際キャッシュテーブル45において、上記開放エントリ(E1)を含まない他のセット、すなわち”00””01””10”のセット内に同一のページ”0x5500”からのエントリが存在すれば、それらを同時に書き戻しておくのが望ましい。さらにそれらのエントリも同時に開放しても良い。
たとえば、ホストからのアクセスが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の整数倍のセットで構成するセットアソシアティブとすることで、高いヒット率を確保しつつ効率的な管理が可能である。
また、さらにフラッシュメモリへの書き戻しに実ページ単位の追記を採用することで、本キャッシュ構成を取った場合、特に顕著となる書き戻し時の煩雑さを大幅に軽減できる。
なお、ここで言う実ページとはフラッシュメモリに一括で書き込まれる連続データの基本単位を示すが、それが複数デバイスからのページグループで構成される場合、各デバイスへのデータ転送や書き込みのタイミング設定にはさまざまな形態が存在し得る。たとえばあるデバイスにデータ転送している間に、他のデバイスの書き込みが実施されても良く、または複数デバイスの内部書き込み動作が同時に開始されても良い。すなわちこれらの複数デバイスを実質的に一つのフラッシュメモリデバイスとみなした場合、その一括書き込みの基本単位が実ページとなる。
なお、内部並列化による高速動作を狙って複数のフラッシュデバイスで実ページを構成する場合、本実施形態のように、実ページをページバッファに一時保存し、それを介してフラッシュメモリデバイスに一括書き込みを施す構成が、扱いやすく便利である。
すなわち視点を変えれば、本発明の実施形態はキャッシュメモリのエントリサイズの複数倍の連続データをページバッファに一時保存し、それをフラッシュメモリに一括書き込みさせている。
また、本実施形態のキャッシュ構成は、他にもさまざまなケースで応用できる。たとえばキャッシュメモリはフルアソシアティブの構成をとってもよい。この場合、上述の例では64個のランダムなエントリを構築できるが、ヒット判定には、それら全ての検索が必要になる。
また、フラッシュメモリへの書き戻しの際には一般的なキャッシュメモリと同様、ブロック単位の管理手法を用いても良い。
その場合、図3の例であれば、ページ領域40,41の書き換えは、それを含む消去ブロック内の全ページの移動を伴って実施される。すなわち物理アドレス”0x00”の消去ブロック内ページは上位から1ページずつ順番にページバッファ32を介して予備の消去ブロックにコピーされていく。
その過程でページ領域40,41のデータがページバッファ32内に格納された際、更新データで上書きされる。全てのページが移動し終わると、元ブロックが消去されて予備ブロックに張り替えられる。
また、本実施形態において、キャッシュメモリ38はファイル記憶装置30側で、ホスト側の処理装置50のCPUとは独立に、制御回路34を用いて管理した。
しかしたとえばシステムメモリであるRAM52の一部に同様のキャッシュ領域を設け、それをホスト側で管理することも可能である。
また、フラッシュメモリにはページ単位でエラー訂正用のパリティービットが付加されていることも多く、その他記憶装置ごとに固有の管理用予備データが追加されている場合もある。
たとえばエラー訂正用の符号化や復号化等の処理がページバッファ32と内部バス39の接続部でなされた場合、本発明の実施形態を適用してもキャッシュメモリへのエントリのラインサイズは実ページサイズの正確な1/Nにならない場合が生ずる。
しかし、本1/Nという表現は、このようなファイル記憶装置が固有に付加した管理データを除外した正味のデータ量を対象としたものであって、上述のようなバリエーションは本発明の実施形態の適用範囲内である。
ところで、上述した第1の実施形態では、図6の<2>の処理においてキャッシュエントリを生成する際、まずフラッシュメモリから対応するページの読み出しを実施している。実ページサイズが大きくなると、この転送時間もアクセス性能の劣化要因となる。
特にページを分割してエントリとした場合、ホストからのアクセスが4kBまたは8kBといった大きな単位でなされても、エントリが細切れに生成されるため、その都度読み出し工程が入る。すなわち同じページを重複して何度も読み出してしまうケースが生じる。
それに対して本発明の第2の実施形態では、キャッシュメモリへのエントリ生成の際に、フラッシュメモリからの元データ読み出しを不要とするための新規手法を提案する。
図7は、本発明の第2の実施形態に係るキャッシュテーブル(管理テーブル)の例を示す図である。また、図8は、第2の実施形態において任意のセクタの書き込みを行う場合の処理手順を示すフローチャートである。
なお、システムの構成自体は図3と同様である。
本発明の第2の実施形態に係るキャッシュテーブル(管理テーブル)は、第1の実施形態のキャッシュテーブル(図4)と同様のセットアソシアティブを採用しているが、相違は各エントリにセクタごとの書き込みの有無を示すフラグフィールドが追加されていることである。
キャッシュは以下の手順で管理される。
図7(A)の処理<1>
まず記憶装置のセクタアドレス”0x00014”に書き込みがなされるとする。この際キャッシュメモリ38内には対応するセット”01”(セクタドレス”0x4〜0x7”に対応)に4セクタ分のメモリ領域(2kB)がデータ用のエントリとして確保され、空のエントリが生成される。
この際、図7(A)に示すキャッシュテーブル上の対応エントリフィールド60には、ページアドレス”0x0001”を格納するフィールドの他、各セクタに書き込みが成されたか否かを示すフラグフィールドが生成される。
その後上記エントリの最初の1セクタ分にデータが書き込まれる。この際キャッシュテーブルのフィールド60におけるセクタ書き込みフラグの対応箇所に”1”が立てられる。
なお、同エントリ内の他のセクタ領域は、これまでのようにフラッシュメモリからの読み出しデータで埋められておらず、空白のままである。これによりキャッシュメモリ内の各エントリは不完全なまま残されるが、どのセクタが書き込まれていないのかはフラグの参照で判定することができる。
図7(B)の処理<2>
その後”0x00015”〜”0x00019”のセクタが連続して書き込まれ、さらに”0x000AA”〜”0x000AD"のセクタが書き込まれたとする。
その間フラッシュメモリからデータを読み出すことなくエントリデータのメモリが確保され、データが実際に書き込まれたセクタに対してフラグに”1”が立てられている。
図7(C)の処理<3>
上記状態からたとえば”0x000A”のページに関わるエントリ61,62をフラッシュメモリに書き戻して開放する場合、次のように行う。
まず図3にも示されたページバッファ32に、フラッシュメモリ35,36から論理アドレス”0x000A”に相当する実ページを読み出し転送する。
この際必要に応じてアドレス変換テーブル44を参照し、物理ページアドレスPAに変換してフラッシュメモリにアクセスを行っても良い。
次にエントリ61,62のフラグを参照し、フラグに”1”が立っている領域のセクタデータのみをキャッシュメモリ38からページバッファ32に転送して、上書きする。これによってフラッシュ側の元ページデータとキャッシュに蓄積された入力(更新)セクタのデータがページバッファ上で合成され、完全なページデータが構築される。
最後にページバッファ32のデータをフラッシュメモリに書き戻す。
図8に以上のセクタ書き込みの手順はステップST21〜ST30の処理フローとして示されている。
上記手順を採用することで、エントリ生成時のフラッシュメモリからの元ページの読み出しは不要となる。
第1の実施形態の図6のフロー図と比較すると、<2>のエントリ生成工程(ST5、ST6)がキャッシュメモリへの空のエントリ生成のみとなり(ST25)、その操作は瞬時に完了する。
それを実現するためのポイントは処理<3>のエントリ開放において、フラッシュメモリへの書き戻しの際に、ページバッファ32内でエントリ内の更新セクタのみを選択的に元ページのデータと合成させて完全なページデータを生成させることである。
そのためには、エントリ内の各セクタの更新の有無を判別するための情報が必要であり、上記図7の例ではキャッシュテーブル内にエントリ毎のセクタの更新をフラグで記載することでこれを行った。
一方、このような情報はテーブル内のフラグ以外にも、さまざまな形態による保存が考えられる。たとえば各セクタデータにヘッダを付加し、そこに有効、無効をマークしても良いし、または各エントリデータごとのヘッダに内部各セクタの有効、無効をまとめて記載しても良い。そのようなセクタ更新情報の保存形態に限定されることなく、本発明は適用が可能である。
また、本発明の第1の実施形態と第2の実施形態は独立に実施することも可能であり、それぞれで効果を獲得できるが、両者を組み合わせることで、最も効率の良いキャッシュメモリの構成を提供することができる。
すなわち、実ページを細切れにしてエントリを生成させる第1の実施形態においては、エントリ生成の際にフラッシュメモリから同じ実ページを重複して読み出す冗長性が発生し得るが、第2の実施形態ではフラッシュメモリからの実ページ読み出し自体を不要とし、上記懸案を根本から解消する。
なお、上記キャッシュメモリにはSRAM、DRAM等揮発性RAMを使用しても良いが、たとえばモバイルメディア内にキャッシュメモリを含む場合、急な引き抜き等の電源瞬断に耐性が必要となる。また組み込みメディアであっても、コンピュータ機器そのものの電源瞬断に備える必要がある。
したがって、キャッシュメモリには強誘電体メモリ等の不揮発性RAMを使用し、さらにはキャッシュテーブルやアドレス変換テーブルもそのような不揮発性RAM内に格納するのが望ましい。
図9は、上述のキャッシュメモリに強誘電体メモリ等の不揮発性RAMを使用した構成を採用したファイル記憶装置の構成例を示す図である。
図9のファイル記憶装置30bの内部においては、32ビットのメモリバス33bに、16ビットの入出力を持つ2チップのNAND型フラッシュメモリ35b,36bが並列に接続されている。
2つのチップは読み出しや書き込みにおいて、同時並列にアクセスされる。各々のフラッシュメモリ35b、36bは書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32bは、アクセスされたページ領域のデータを一時記憶する。
フラッシュメモリ35b,36b、とページバッファ32bとの間のデータの送受は、制御回路37bで制御されている。
さらに、制御回路37bは、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35b,36bはページバッファ32bを介してファイル記憶装置30bの内部バス39bとの間でデータを入出力する。
さらに内部バス39bにはキャッシュメモリを構成する強誘電体メモリ38bとファイル記憶装置30bのインターフェース回路(I/F)31bおよび制御回路34bが接続されている。
インターフェース回路31bはATAやPCIエクスプレス等の規格に従ってホストとの間で、データやコマンドの送受を行う。
強誘電体メモリ38b内には前述の如く実ページサイズの1/N(Nは2以上の整数)をエントリとしたキャッシュメモリ38b’、ページ単位の仮想アドレスを管理するアドレス変換テーブル44bおよびキャッシュメモリの管理テーブル45bが構築されている。
制御回路34bは、ファイル記憶装置30bの内部においてページバッファ32b、キャッシュメモリ38bおよびインターフェース回路31bの間のデータの送受を管理する。
または、図3におけるキャッシュメモリ38と制御回路34、あるいは図9におけるメモリ38bと制御回路34bは一つのICチップに統合して同時に製造しても良い。
さらに望ましくはインターフェース回路31、ページバッファ32および制御回路37も同一のICチップに統合し、ファイル記憶装置30をICチップとフラッシュメモリのSIP(System In Package)で構成すると良い。
なお、不揮発性RAMとしては、強誘電体膜を用いたFeRAM(Ferroelectric RAM)、強磁性体を用いたMRAM(Magnetic RAM)や、相変化材料を用いたOUM(Ovonic Unified Memory)、RRAM等が提案されている。
FeRAMは強誘電体キャパシタの分極方向の違いでデータを記憶する半導体メモリである。たとえばUSP4873664においてS.Sheffeieldらがその一形態を提案している。
MRAMは強磁性膜のスピン方向の違いでデータを記憶する半導体メモリである。たとえばISSCC2000の論文ダイジェストの128ページに、R.Scheuerleinらが論文を掲載している。
OUMはたとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリである。たとえばIEDM2001の論文ダイジェストの803ページに、S.Laiらが論文を掲載している。
RRAMは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリである。たとえばIEDM2002の論文ダイジェストの7.5にはW.W.Zhuangらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
NAND型フラッシュメモリの内部構成例を示す図である。 記憶装置を構成するフラッシュメモリの概念図を示す図である。 本実施形態に係るコンピュータシステムを示す構成図である。 本発明の第1の実施形態に係るキャッシュメモリの管理テーブルの構成例を示す図である。 アドレス変換テーブルの構成例を示す図である。 第1の実施形態において任意のセクタの書き込みを行う場合の処理手順を示すフローチャートである。 本発明の第2の実施形態に係るキャッシュテーブル(管理テーブル)の例を示す図である。 第2の実施形態において任意のセクタの書き込みを行う場合の処理手順を示すフローチャートである。 上述のキャッシュメモリに強誘電体メモリ等の不揮発性RAMを使用した構成を採用したファイル記憶装置の構成例を示す図である。
符号の説明
COMSYS・・・コンピュータシステム、30,30b・・・ファイル記憶装置、31,31b・・・インターフェース回路(I/F)、32,32b・・・ページバッファ、33,33b・・・メモリバス、34,34b・・・制御回路、35,36,35b,36b・・・NAND型フラッシュメモリ、37,37b・・・制御回路、38・・・キャッシュメモリ、38b・・・強誘電体メモリ(キャッシュメモリ)、39,39b・・・内部バス、44・・・アドレス変換テーブル、45・・・キャッシュの管理テーブル(キャッシュテーブル)、50・・・処理装置、51・・・CPU、52・・・RAM、53・・・ROM、54・・・システムバス、55・・・ブリッジ回路。

Claims (11)

  1. 処理装置と、
    キャッシュメモリと、
    上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、を有し、
    上記キャッシュメモリにエントリされるラインサイズは上記フラッシュメモリの一括書き込み単位である実ページサイズの1/Nである(ただし、Nは2以上の整数)
    コンピュータシステム。
  2. 実ページのデータを格納するページバッファを、さらに有し、
    上記キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、当該エントリに対応する実ページデータのうち、上記キャッシュメモリ上のエントリ部とフラッシュメモリ上の非エントリ部が上記ページバッファ内で合成され、合成後にフラッシュメモリに書き込まれる
    請求項1記載のコンピュータシステム。
  3. 上記キャッシュメモリはセットアソシアティブ構成を有し、そのセット数はNまたはNの整数倍である
    請求項2記載のコンピュータシステム。
  4. 上記キャッシュメモリ内に、同じ実ページ内の異なる領域に対応する複数のエントリが存在する場合、少なくともその二つ以上をまとめてフラッシュメモリに書き戻す機能を有する
    請求項2記載のコンピュータシステム。
  5. 上記フラッシュメモリへの実ページデータの書き戻しは、更新されたページデータを消去済みの領域に追記し、元のページ領域を無効化することによって実施される
    請求項2記載のコンピュータシステム。
  6. 処理装置と、
    キャッシュメモリと、
    上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、
    バッファと、を有し、
    上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、
    キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、キャッシュメモリ上の更新セクタとフラッシュメモリ上の非更新セクタとが上記バッファ内で合成され、合成後にフラッシュメモリに書き込まれる
    コンピュータシステム。
  7. 実ページのデータを格納するページバッファを、さらに有し、
    上記キャッシュメモリの1エントリは複数のセクタを含み、更新はセクタ単位で行われ、
    上記キャッシュメモリにエントリされたデータをフラッシュメモリへ書き込む際には、まずエントリに対応する実ページデータのうち、キャッシュメモリ上の当該エントリ内の更新セクタとフラッシュメモリ上の非更新セクタとが上記ページバッファ内で合成され、合成後にフラッシュメモリに書き戻される
    請求項6記載のコンピュータシステム。
  8. 処理装置と、
    キャッシュメモリと、
    上記処理装置からの要求に応じて、キャッシュメモリを介したデータ書き込みが行われるフラッシュメモリと、ページバッファを有し、
    キャッシュメモリにエントリされるラインサイズの複数倍の連続データを上記ページバッファに一時保存し、それらを上記フラッシュメモリに一括して書き込む機能を有する
    コンピュータシステム。
  9. 上記キャッシュメモリにエントリされたデータを上記フラッシュメモリへ書き込む際には、当該エントリに対応する実ページデータのうち、上記キャッシュメモリ上のエントリ部とフラッシュメモリ上の非エントリ部が上記ページバッファ内で合成され、合成後にフラッシュメモリに書き込まれる
    請求項8記載のコンピュータシステム。
  10. 上記キャッシュメモリはセットアソシアティブ構成を有し、そのセット数はNまたはNの整数倍である
    請求項9記載のコンピュータシステム。
  11. 上記キャッシュメモリ内に、同じ実ページ内の異なる領域に対応する複数のエントリが存在する場合、少なくともその二つ以上をまとめてフラッシュメモリに書き戻す機能を有する
    請求項10記載のコンピュータシステム。
JP2005220940A 2005-07-29 2005-07-29 コンピュータシステム Active JP4961693B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ソニー株式会社 記憶装置、コンピュータシステム、およびデータ書き込み方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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