JP4910360B2 - 記憶装置、コンピュータシステム、およびデータ書き込み方法 - Google Patents
記憶装置、コンピュータシステム、およびデータ書き込み方法 Download PDFInfo
- Publication number
- JP4910360B2 JP4910360B2 JP2005305540A JP2005305540A JP4910360B2 JP 4910360 B2 JP4910360 B2 JP 4910360B2 JP 2005305540 A JP2005305540 A JP 2005305540A JP 2005305540 A JP2005305540 A JP 2005305540A JP 4910360 B2 JP4910360 B2 JP 4910360B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- flash memory
- sub
- unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
-
- 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/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
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〜P15を同時書き込みし、消去時はブロック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の観点のコンピュータシステムは、アプリケーションソフトウェアを実行する処理ユニットと、複数のセクタにより形成されるページ単位で書き込みが行われるファイルストレージであるフラッシュメモリデバイスと、エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域と、を有し、上記処理ユニットは、ドライバソフトの制御のもとに、アプリケーションソフトウェアからの上記ファイルストレージへの書き込み要求を受けて、当該アドレス情報をもとに、入力データの書き込み先を上記フラッシュメモリデバイスまたは上記キャッシュメモリの何れかに、適時選択する制御回路を含み、上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、上記単位区画は、ひとつまたは複数の消去ブロックを含み、上記フラッシュメモリデバイスの一括消去単位であり、上記制御回路は、上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割し、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する機能を有し、各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する。
また、本発明の第3の観点は、複数のセクタにより形成されるページ単位で書き込みが行われるフラッシュメモリデバイスと、エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域を有する記憶装置へのデータ書き込み方法であって、上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、上記単位区画は、ひとつまたは複数の消去ブロックを含み、上記フラッシュメモリデバイスの一括消去単位であり、上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割する分割ステップと、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する選択ステップと、を有し、上記選択ステップでは、各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する。
それに対して本発明の記憶装置は、外部から入力された書き込みコマンドとアドレス情報をもとに、入力されたデータの書き込み先をキャッシュメモリかフラッシュメモリの何れかに、装置内部で適時選択する。これによって、フラッシュメモリへの書き込みに負担の大きい小領域の更新や小型のファイルについてはキャッシュメモリ側に書き込み、キャッシュメモリへの書き込みが無駄になるような連続データよりなる大型ファイルは直接フラッシュメモリに書き込むようにする。
このようなシステムではフラッシュメモリを高速なハードディスクのように使用することもでき、待機時の消費電力が低く、コンパクトで高速なストレージシステムを獲得できる。
そして、たとえば、ページバッファ32、メモリバス33、NAND型フラッシュメモリ35,36、制御回路37、および内部バス39によりフラッシュメモリデバイスFLMDが形成される。
各々のフラッシュメモリ35,36は書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。
したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32はアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ35,36とページバッファ32との間のデータの送受は、制御回路37で制御されている。
さらに制御回路37は、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35,36はページバッファ32を介してファイル記憶装置30の内部バス39との間でデータを入出力する。
すなわち、フラッシュメモリ35、36あるいはメモリバス33上に接続されたページバッファ32と転送制御回路37を併せた回路群FLMDは、実質的に一つのフラッシュメモリデバイスを構成し、記憶装置30の内部バス39に接続されているとみなすことができる。
インターフェース回路31はATAやPCIエクスプレス等の規格に従ってホストとの間で、データやコマンドの送受を行う。
制御回路34は、ファイル記憶装置30の内部においてページバッファ32、キャッシュメモリ38、およびインターフェース回路31の間のデータの送受を管理する。ここに内蔵されたRAMには、ページ単位の仮想アドレスを管理するアドレス変換テーブル44およびキャッシュメモリ38の管理テーブル45が構築されている。
たとえば外部入力アドレスが”0x5500C”であった場合、上位16ビットの”0x5500”はページアドレス、下位4ビットの”0xC”はページ領域内のセクタドレスであり、1ページ中には16のセクタが含まれる。
本記憶装置30は1セクタ単位でランダムアクセスが可能であり、それは後述するようにページバッファ32またはキャッシュメモリ38を介して実施される。
上述の例では実ページサイズが8kBなので、1エントリのサイズは2kBである。たとえば128kBのRAMをキャッシュメモリとした場合、約64個のエントリを持つことが可能である。
ここではテーブル管理の容易さとヒット率を勘案し、ページ内セクタドレスの上位2ビットをインデックスとして、四つのセットを構成した。各セットは独立に16個ずつのエントリを保有する。すなわち4セット16ウエイのセットアソシアティブ構成が採用されている。テーブル内の各フィールドには、そこにエントリが存在する場合、各エントリに対応するページアドレスが格納されている。
さらに、このセットに登録されている最大16個のエントリが検索され、”0x5500”のページアドレスに対応するエントリの有無が判定される。
図5は、アドレス変換テーブル44の構成例を示す図である。
メモリへの具体的アクセスは以下のようになされる。
まず,ページアドレス”0x5500”を受けて内蔵RAMにアクセスし、アドレス変換テーブル44から論理ページアドレス(LA:LOGICAL ADDRESS)”0x5500”に対応する物理ページアドレス(PA:PHISICAL ADDRESS)”0x00B0”を取得する。
下位”0xB0”は各消去ブロック内のページ領域40,41のアドレスである。この物理アドレスをもとにメモリチップであるフラッシュメモリ35,36が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域40,41のデータが読み出され、ページバッファ32に格納される。
インターフェース回路31はその中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
一方、フラッシュメモリ35,36に書き込む場合には、一旦対応する実ページを読み出し時と同様の手順でフラッシュメモリ35,36からページバッファ32に読み出し、ページバッファ32上で対応するセクタを書き換えて、しかる後にフラッシュメモリ上に書き戻す必要がある。
1セクタのみの書き換えでも同じ手順を要し、実ページ全体(16セクタ分)のデータの読み出しと書き戻しが必要である。
さらに前述の如く、フラッシュメモリ35,36への書き込みは時間がかかる上、構成によっては消去に伴なう制約がある。したがって,そのパフォーマンスはキャッシュメモリ38への書き込みに比較して大きく劣る。
たとえば、コマンドは「先頭アドレスxxxからxx個のセクタ群に対して書き込みを実施」という形態で送受される。上述の如く、キャッシュメモリとフラッシュメモリとでは書き込みの性能が大きく異なるので、そのようなブロックの構成に応じてアクセス手順を最適化することがパフォーマンスの向上に重要となる。
たとえば、セクタドレス”0x0000C”〜”0x00020”の範囲のブロックデータが書き込まれるとすると、それらはページアドレスをもとに以下の如く3つのサブブロックに分割される。
区画2(サブブロック2): ”0x00010”〜”0x0001F”
区画3(サブブロック3): ”0x00020”
図6に従って、以下にその判定基準の例を示す。
そこに書き込みを行うには、前述の如く、書き込みに要するだけのエントリを解放し、それをフラッシュメモリに書き戻す必要が生じる。したがって、書き込むべきデータサイズが大きいほどその際の処理量が大きくなり、キャッシュメモリ使用の不利が増す。
すなわち、フラッシュメモリ35,36からページバッファ32に実ページデータを読み出し、各エントリに対応するデータ領域を更新して再度フラッシュメモリに書き戻す作業を4回繰り返さねばならない。
一方、このサブブロックをフラッシュメモリにそのまま書き込めば、単に1ページ分の書き込みで良い。したがって、このようなケースではキャッシュメモリへの書き込みは、むしろ逆効果となるリスクが高い。
各サブブロックにおけるセクタ数や消費されるエントリ数は、アドレス情報から瞬時に取得できる。したがって、このような判定アルゴリズムを用いてデータの書き込み先を適時選択すれば、簡便に書き込み効率及び性能を向上させることができる。
まず、サブブロックに属するデータのキャッシュメモリへのヒットの有無を、書き込みの事前に検査する。これはアドレス情報をもとにキャッシュ管理テーブル45を検索することで実施できる。これにより、このサブブロックをキャッシュメモリに書き込む場合、新規エントリを何個追加する必要があるかが明らかになる。これを判定の基準とすることで、より的確な選択が可能になる。
たとえば、上記サブブロック1を、仮にフラッシュメモリにそのまま書き込もうとした場合、キャッシュテーブル45から同じ区画1に対応するエントリを検索する。すなわちサブブロック1は、論理ページアドレス”0x0000”に属するが、同じページに対応するエントリがキャッシュメモリ38内に存在すれば、そのデータは同時にフラッシュメモリ35,36に書き戻すことができる。
1.入力コマンドとアドレス情報を取得する。
2.書き込みページによる区画をもとに、ブロックデータをサブブロックに分割し、各々のブロックについて順次書き込み処理を実施する。
3.その際、サブブロック内のデータの占有状態、或いはキャッシュメモリ内のエントリの検査を行い、その結果に応じて書き込み先を選択する。
・キャッシュメモリにおけるエントリの解放も考慮した上で、実質的なフラッシュメモリへの書き込み回数を減らす。
・フラッシュメモリへのアクセスが必要な場合は、より多くのセクタが同時に書き込まれるようにする。
という視点に立ち、さらに判定に要する時間や処理の煩雑さも鑑みて、選択アルゴリズムが決定されるのが望ましい。
図7は、本実施形態に係るブロックデータの書き込み手順を示すフローチャートである。ここで、外部からセクタ単位の先頭アドレスと書き込みセクタ数が指定され、セクタまたは連続した複数セクタよりなるブロックデータが入力されたとする。セクタは一般的なファイルストレージの基本アクセス単位であり、通常512バイト(Byte)であるが、必ずしもそのサイズに限定されるものではない。
制御回路34は、まず入力されたブロックデータを、前述の如く実ページに従って区画分けを行い、各サブブロックごとに以降の処理を行う(ST1)。通常は先頭セクタを含む区画のサブブロックから順に書き込み処理を実行していく。全サブブロックの書き込みが完了すれば、処理は終了となる(ST2)。
処理対処として選択されたサブブロックの区画内のデータの占有状態が検査され、さらに必要に応じてサブブロックの区画または所属データに対応するキャッシュメモリ38のエントリが検査される(ST3)。これらの情報をもとに、このサブブロックをフラッシュメモリ35,36にそのまま書き込むか、もしくはキャッシュメモリ38に書き込むかが判定される(ST4)。
なおここでエントリの検査が実施された場合、データがヒットしたエントリ等の情報は制御回路34内のメモリまたはレジスタに保管しておく。
サブブロックの書き込み先がフラッシュメモリに選定された場合は、まず所属データに対応するキャッシュメモリのエントリが調べられ、対応するエントリがあれば、整合をとるべくその処理が行われる。既に上記<2>の処理でエントリを検査済みの場合は、改めてキャッシュテーブル45を検索する必要は無い。
しかる後に、サブブロックのフラッシュメモリへの書き込みが、たとえば以下ように行われる。
まず、サブブロックの区画に相当するページデータが、フラッシュメモリ35,36からページバッファ32に読み出され、それがサブブロックのデータで更新される。なお、サブブロックがページ全域を含む場合、この読み出し工程は省略可能である。次に、ページバッファ32の内容がフラッシュメモリ35,36に書き戻される(ST5〜ST7)。
サブブロックの書き込み先がキャッシュメモリ38に選定された場合も、まず所属データに対応するキャッシュメモリ38のエントリが調べられる。既に上記<2>の処理でエントリを検査済みの場合は、改めてキャッシュ管理テーブル45を検索する必要は無い。
ヒットしているセクタはそのまま対応エントリに書き込みを実施する。ミスヒットのセクタには新規にエントリを追加し、そこに書き込みを実施する。この際既存エントリの解放が必要であれば、まず適当なエントリを解放し、そのデータをフラッシュメモリに書き戻す(ST8〜ST10)。
本発明を採用した場合、サブブロックに属するデータの一部がキャッシュメモリ38にヒットしていても、それらをフラッシュメモリ側に書き込むという選択がなされ得る。その場合キャッシュ内のデータは最新では無くなるので、対処が必要である。
その具体的対応手段としては、該当エントリのデータをサブブロックのデータで更新しておくか、もしくはヒットしたエントリそのものを解放する。
まず、ページバッファ32上にフラッシュメモリ35,36からの対応ページを読み出す。次に、キャッシュメモリ内の同一区画に対応したエントリの有効データで、それを上書きする。さらにサブブロックのデータをそこに上書きし、最後にそれらをフラッシュメモリ35,36に書き戻す。
そこで、本実施形態においては、更新後のページデータは、適当な空き領域42,43に書き込む。このページ領域の物理ページアドレスは”0x0280”であり、すなわち消去ブロック”0x02”内の”0x80”のページに相当する。
この処理の前まで、その領域はアドレス変換テーブル44のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル44の論理アドレス”0x5500”に対応する物理アドレスフィールドには、領域42,43の物理ページアドレス”0x0280”が登録される。
このような手法を採用すれば、書き戻しの際に元ブロックのデータ退避等を行う必要が無く、フラッシュメモリ35,36には見かけ上消去ブロックの制約を受けず、実ページ単位で高速にランダムにアクセスできる。
本実施形態にように実ページを元にした区画による分割でサブブロックを構成した場合、消去ブロックレベルでの書き込み効率の検査は困難である。したがって、消去ブロックに伴なう制約を受けにくい本機構との組み併せで、記憶システムは最大の効率を得ることができる。
本実施形態においては、16ビットIOのチップ2個を32ビットバスに接続することで完全な並列動作としたが、16ビットのバスを両チップで共有すれば、転送は個々に行なわざるを得ない。その場合、ページバッファ32から片側のメモリチップにデータを転送している間に、もう片側のメモリチップ内で書き込みをスタートしても良いし、両者への転送を順次行なった後に、書き込みを同時スタートしても良い。
図3の例では、フラッシュメモリ35,36、あるいはメモリバス33上に接続されたページバッファ32と転送制御回路37を併せた回路群MFLDをひとつのフラッシュメモリデバイスとみなすことができ、その一括書き込み単位である実ページはフラッシュメモリ35,36における各々の書き込みページを併せたページグループである。
この場合、消去ブロックの部分書き換えには、前述の如き消去ブロック全体での有効データの退避が必要になるケースが頻出する。その際のオーバーヘッドは非常に大きいので、このようなケースではその発生頻度を下げるべく、消去ブロックを元に区画を設定し、それごとに書き込み先を最適化した方が効率が上がり、性能が高くなる可能性がある。
そのようなケースに本発明を応用した第2の実施形態について、以下に説明する。
本第2の実施形態に係るファイル記憶装置30bは、第1の実施例とほぼ同様の構成となっているが、ページ単位のアドレス変換は行っていない。
各々のフラッシュメモリ35,36は書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。
したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32bはアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ35b,36bとページバッファ32bとの間のデータの送受は、制御回路37bで制御されている。
さらに、制御回路37bは、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリ35b,36bはページバッファ32bを介して記憶装置の内部バス39bとの間でデータを入出力する。
すなわち、フラッシュメモリ35b、36bあるいはメモリバス33b上に接続されたページバッファ32bと転送制御回路37bを併せた回路群FLMDは実質的に一つのフラッシュメモリデバイスを構成し、記憶装置30bの内部バス39bに接続されているとみなすことができる。
インターフェース回路31bはATAやPCIエクスプレス等の規格に従ってホストとの間で、データやコマンドの送受を行う。
制御回路34bは、ファイル記憶装置30bの内部においてページバッファ32b、キャッシュメモリ38b、およびインターフェース回路31bの間のデータの送受を管理する。ここに内蔵されたRAMには消去ブロックの管理テーブル46b、およびキャッシュメモリの管理テーブル45bが構築されている。
キャッシュメモリ38bへのエントリは、実ページ、すなわち16セクタを単位として構成する。本例では、消去ブロック内のページアドレスをインデックスとしたダイレクトビットマップ方式が採用されている。すなわち、消去ブロック内の各ページアドレスに対応して、独立して一つずつのエントリを持っている。
図9のテーブルでは、インデックスたるページアドレス”0x01”のエントリには消去ブロック”0x03”からのページが格納されている。すなわちこのセクタ”0x0301A”はキャッシュにヒットしている。
前述の如く、フラッシュメモリのデータは消去ブロック内のページアドレス”0x00”から”0xFF”に向けて順方向で書き込まれる必要がある。たとえば消去ブロック”0x00”の書き込みポインタは”0xFF”であり、一杯まで書き込まれていることが判る。したがって、この中のデータを更新するには、必ず消去が必要となる。
一方、消去ブロック”0x01”の書き込みポインタは”0x80”であり、”0x81”以降のページ領域にはそのまま書き込むことが可能である。ここにページ”0xA0”が書き込まれた場合、ポインタは”0xA0”にまで一気に移動する。消去ブロック”0x7E”の書き込みポインタはどこも指していない。すなわち規定値以外の数字が入っており、この場合消去された状態から一切書き込みが行なわれていないことを示している。
したがって、制御回路34bは予備ブロック(PBA)”0x7F”に元ブロック(PBA)”0x00”のページデータを順次コピーしていく。すなわち各ページ領域のデータを先頭から順にページバッファ32bに一旦読み出し、さらに予備ブロックの同じ相対位置に書き込んでいく。この際、ページバッファ32bに更新すべきセクタを含むページ”0x11”が読み出されたら、その中のセクタ”0xa”のデータをバッファ上で更新する。さらに、末尾ページまでコピーが終わると、(LBA)”0x00”に対応する物理ブロックを(PBA)”0x7F”に張り替える。さらに元ブロック(PBA)”0x00”を消去して予備ブロックとする。
ただし、第1の実施形態と同様に、キャッシュメモリ38bへの書き込む場合でも、ミスヒットし、かつエントリ追加のための空きも無ければ、一旦既存のエントリを解放し、空きをつくらねばならない。解放したエントリのデータは結局フラッシュメモリ35b,36bに書き戻す必要があり、その作業はフラッシュメモリ38bへの書き込みと同じである。
区画2(サブブロック2): ”0x01000”〜”0x01FFF”
区画3(サブブロック3): ”0x02000”〜”0x0200C”
そこに書き込みを行うには、書き込みに要するだけのエントリを解放し、それをフラッシュメモリ35b,36bに書き戻す必要が生じる。したがって、書き込むべきデータサイズが大きいほどその際の処理量が大きくなり、キャッシュメモリ使用の不利が増す。
一方、このサブブロックをフラッシュメモリにそのまま書き込めば、単に1ページ分の書き込みで良い。従ってこのようなケースでは、キャッシュメモリ38bへの書き込みが逆効果となるリスクが極めて高い。
たとえば、有効な書き込み手法の一つは、消去ブロック単位で区画分けされた各サブブロックごとに、そのデータの区画内の占有状態を検査し、それに応じて書き込み先をフラッシュメモリかキャッシュメモリの何れかに選択することである。
すなわち、各サブブロックにおいて書き込むべきセクタ数、あるいはキャッシュメモリ38bに書き込む際に消費されるエントリ数を基準として、それらが既定数より多ければフラッシュメモリ35b,36bに、既定数以下ならキャッシュメモリ38bに書き込みを実施する。
各サブブロックにおけるセクタ数や消費されるエントリ数は、アドレス情報から瞬時に取得できる。従ってこのような判定アルゴリズムを用いてデータの書き込み先を適時選択すれば、簡便に書き込み効率及び性能を向上させることができる。
たとえば上記サブブロック3を、仮にフラッシュメモリにそのまま書き込もうとした場合、キャッシュテーブル45bから同じ区画3の消去ブロックに対応するエントリが検索できる。
すなわち、サブブロック3は、消去ブロック”0x02”に属するが、同じ消去ブロックからのエントリがキャッシュメモリ内に存在すれば、その消去ブロックへの書き込みに消去を必要とした場合には、該当ページの退避処理の際にそのデータをフラッシュメモリに書き戻すことができる。そのようなエントリはクリアとなり、必要に応じて解放することが可能である。すなわち、たとえばフラッシュメモリ35b,36bへ同時書き込みが可能な総ページ数を基準とし、それが規定値以上ならフラッシュメモリにそのまま書き込む。
したがって、消去ブロック管理テーブル46bから該当ブロックの空き状態を検査して、たとえば元の消去ブロックにそのまま書き込める場合は、書き込み先をフラッシュメモリ35b,36bに選択し、それ以外の場合には前述の選択基準のいずれかに従うことで、さらに効率の良い書き込みが可能である。
1.入力コマンドとアドレス情報を取得する。
2.消去ブロックによる区画をもとに、ブロックデータをサブブロックに分割し、各々のブロックについて順次書き込み処理を実施する。
3.その際、サブブロック内のデータの占有状態、さらにはキャッシュテーブルの検査、または書き込み先消去ブロックの空き領域の検査を行い、その結果に応じて書き込み先を選択する。
・フラッシュメモリデバイスにおけるブロック消去の発生回数を最小限に抑える
・ブロック消去が発生する場合には、該当ブロックの一連の処理の際に、なるべく多くの更新データを同じブロック内に書き込む
という視点に立ち、さらに判定に要する時間や処理の煩雑さも鑑みてその手順が設定されるのが望ましい。
また、処理装置50は、CPU(処理ユニット)51c、RAMからなるシステムメモリ、およびシステムバス53cを有する。
さらに、このシステムバス53cにはフラッシュメモリデバイス30cのブリッジ回路31cが接続されている。このブリッジ回路31cに繋がる32ビットのデータバス33cには、16ビットの入出力を持つ2チップのNAND型フラッシュメモリ35c,36cが並列接続されている。
2つのチップのNAND型フラッシュメモリ35c,36cは読み出しや書き込みにおいて、同時並列にアクセスされる。
ページバッファ32cはアクセスされたページ領域を一時記憶するページバッファであり、ブリッジ回路31cに内蔵されている。
ブリッジ回路31cはCPU51cから各種コマンドを受け取り、フラッシュメモリ35c,36cとCPU51cまたはシステムメモリ52cとの間のデータのやり取りを、ページバッファ32cを用いて媒介する。
ブリッジ回路31cが受け取るコマンドは、たとえばフラッシュメモリ35c,36cの所定のページへのアクセスの他、同フラッシュメモリの所定ブロックの消去、及び所定ページの指定アドレスへのコピー、フラッシュメモリのリセット等である。すなわちCPU51cから見れば、ブリッジ回路31c以降は一つのフラッシュメモリデバイス30cとみなすことができる。
さらにシステムメモリ52c内にはフラッシュメモリデバイスのキャッシュメモリ領域56cおよびキャッシュテーブル57cが構築されている。
すなわち、フラッシュメモリデバイス30cの書き込みページまたは消去ブロックをもとに区画を設けてデータをサブブロックに分割し、各々のサブブロックごとに既定の基準に従って書き込み先を選択する。
一括書き込み単位であるページを区画とした場合には、選択に際しては各サブブロックのデータの占有状況、さらにはキャッシュテーブル57cを検査し、その結果をもとに選択を実施すれば良い。
一括消去単位である消去ブロックを区画とした場合には、選択に際しては各サブブロックのデータの占有状況、キャッシュテーブル57c、あるいは書き込み先のフラッシュデバイス30cの消去ブロック空き状況を検査し、その結果をもとに選択を実施すれば良い。
2つのチップのNAND型フラッシュメモリ35d,36dは読み出しや書き込みにおいて、同時並列にアクセスされる。
各々のフラッシュメモリ35d、36dは書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。
したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ32dはアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ35d,36dとページバッファ32dとの間のデータの送受は、制御回路37dで制御されている。
さらに制御回路37dは、必要に応じて転送データにECC符号化によるエラー補正を施したり、フラッシュメモリ内の欠陥ブロックの管理を実施する。両フラッシュメモリはページバッファ32dを介して記憶装置の内部バス39dとの間でデータを入出力する。
すなわち、フラッシュメモリ35d、36dあるいはメモリバス33d上に接続されたページバッファ32dと転送制御回路37dを併せた回路群FLMDは実質的に一つのフラッシュメモリデバイスを構成し、記憶装置の内部バス39dに接続されているとみなすことができる。
強誘電体メモリ47d内には、実ページサイズの1/N(Nは2以上の整数)をエントリとしたキャッシュメモリ38d、ページ単位の仮想アドレスを管理するアドレス変換テーブル44d、およびキャッシュメモリの管理テーブル45dが構築されている。
制御回路34dは、記憶装置30dの内部においてページバッファ32d、キャッシュメモリ38d、およびインターフェース回路31dの間のデータの送受を管理する。
さらに望ましくはインターフェース回路31d、ページバッファ32dおよび制御回路37d)も同一のICチップに統合し、ファイル記憶装置を左記ICチップとフラッシュメモリのSIP(System In Package)で構成しても良い。
FeRAMは強誘電体キャパシタの分極方向の違いでデータを記憶する半導体メモリである。たとえばUS4873664においてS.Sheffeieldらがその一形態を提案している。
OUMはたとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリである。たとえばIEDM2001の論文ダイジェストの803ページに、S.Laiらが論文を掲載している。
RRAMは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリである。たとえばIEDM2002の論文ダイジェストの7.5にはW.W.Zhuangらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
Claims (10)
- 複数のセクタにより形成されるページ単位で書き込みが行われる主記憶媒体であるフラッシュメモリデバイスと、
エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリと、
外部から入力された書き込みコマンドとアドレス情報をもとに、入力データの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに、適時選択する制御回路と、を有し、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は、ひとつまたは複数の書き込みページを含み、上記フラッシュメモリデバイスの一括書き込み単位であり、
上記制御回路は、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割し、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する機能を有し、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
記憶装置。 - 上記制御回路は、
書き込み先が上記フラッシュメモリデバイスに選択されたサブブロックのデータのうち、上記キャッシュメモリにヒットしたデータがある場合、対応するキャッシュメモリ上のエントリを解放する
請求項1記載の記憶装置。 - 上記制御回路は、
書き込み先がフラッシュメモリデバイスに選択されたサブブロックのデータのうち、キャッシュメモリにヒットしたデータがある場合、対応するキャッシュメモリ上のエントリを書き込みデータで更新する
請求項1または2記載の記憶装置。 - 上記制御回路は、
書き込み先が上記フラッシュメモリデバイスに選択されたサブブロックと同じ区画内の領域に対応するエントリが上記キャッシュメモリに存在する場合、対応するエントリを当該サブブロックのデータと合成して同時にフラッシュメモリに書き戻す
請求項1から3のいずれか一に記載の記憶装置。 - 複数のセクタにより形成されるページ単位で書き込みが行われる主記憶媒体であるフラッシュメモリデバイスと、
エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリと、
外部から入力された書き込みコマンドとアドレス情報をもとに、入力データの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに、適時選択する制御回路と、を有し、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は、ひとつまたは複数の消去ブロックを含み、上記フラッシュメモリデバイスの一括消去単位であり、
上記制御回路は、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割し、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する機能を有し、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
記憶装置。 - 上記制御回路は、
各サブブロックに対して、対応区画におけるフラッシュメモリ上の空き状態を検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
請求項5記載の記憶装置。 - アプリケーションソフトウェアを実行する処理ユニットと、
複数のセクタにより形成されるページ単位で書き込みが行われるファイルストレージであるフラッシュメモリデバイスと、
エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域と、を有し、
上記処理ユニットは、
ドライバソフトの制御のもとに、アプリケーションソフトウェアからの上記ファイルストレージへの書き込み要求を受けて、当該アドレス情報をもとに、入力データの書き込み先を上記フラッシュメモリデバイスまたは上記キャッシュメモリの何れかに、適時選択する制御回路を含み、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は、ひとつまたは複数の書き込みページを含み、上記フラッシュメモリデバイスの一括書き込み単位であり、
上記制御回路は、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割し、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する機能を有し、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
コンピュータシステム。 - アプリケーションソフトウェアを実行する処理ユニットと、
複数のセクタにより形成されるページ単位で書き込みが行われるファイルストレージであるフラッシュメモリデバイスと、
エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域と、を有し、
上記処理ユニットは、
ドライバソフトの制御のもとに、アプリケーションソフトウェアからの上記ファイルストレージへの書き込み要求を受けて、当該アドレス情報をもとに、入力データの書き込み先を上記フラッシュメモリデバイスまたは上記キャッシュメモリの何れかに、適時選択する制御回路を含み、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は、ひとつまたは複数の消去ブロックを含み、上記フラッシュメモリデバイスの一括消去単位であり、
上記制御回路は、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割し、各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する機能を有し、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
コンピュータシステム。 - 複数のセクタにより形成されるページ単位で書き込みが行われるフラッシュメモリデバイスと、エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域を有する記憶装置へのデータ書き込み方法であって、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は一つまたは複数の書き込みページより形成されるフラッシュメモリデバイスへの一括書き込み単位であり、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、
上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割する分割ステップと、
各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する選択ステップと、を有し、
上記選択ステップでは、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
データ書き込み方法。 - 複数のセクタにより形成されるページ単位で書き込みが行われるフラッシュメモリデバイスと、エントリがセクタ単位で構成される、上記フラッシュメモリデバイスのためのキャッシュメモリ領域を有する記憶装置へのデータ書き込み方法であって、
上記フラッシュメモリデバイスの書き込み単位または消去単位をもとに、単位区画が設定されており、各単位区画は複数のセクタを含み、
上記単位区画は、ひとつまたは複数の消去ブロックを含み、上記フラッシュメモリデバイスの一括消去単位であり、
上記セクタまたは連続したセクタ群へのブロックデータの書き込み命令を受けた場合、
上記ブロックデータを上記単位区画に応じて1または複数のセクタを含むサブブロックに分割する分割ステップと、
各サブブロックごとに、書き込むべきセクタ数または、上記キャッシュメモリの消費されるまたは解放すべきエントリ数に従って、各サブブロックの書き込み先を上記フラッシュメモリデバイスまたはキャッシュメモリの何れかに選択する選択ステップと、を有し、
上記選択ステップでは、
各サブブロックに対して、区画におけるデータの占有状態、あるいは同区画または所属データに対応するキャッシュメモリのエントリを検査し、当該検査結果に応じて各サブブロックの書き込み先を選択する
データ書き込み方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005305540A JP4910360B2 (ja) | 2005-10-20 | 2005-10-20 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
US11/582,459 US7779199B2 (en) | 2005-10-20 | 2006-10-18 | Storage device, computer system, and data writing method |
US12/662,153 US7890695B2 (en) | 2005-10-20 | 2010-04-01 | Storage device, computer system, and data writing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005305540A JP4910360B2 (ja) | 2005-10-20 | 2005-10-20 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007115004A JP2007115004A (ja) | 2007-05-10 |
JP4910360B2 true JP4910360B2 (ja) | 2012-04-04 |
Family
ID=37985209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005305540A Active JP4910360B2 (ja) | 2005-10-20 | 2005-10-20 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7779199B2 (ja) |
JP (1) | JP4910360B2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4961693B2 (ja) * | 2005-07-29 | 2012-06-27 | ソニー株式会社 | コンピュータシステム |
TWI374361B (en) * | 2007-01-16 | 2012-10-11 | Asustek Comp Inc | Computer and host device thereof and built-in flash memory storage device |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
JP5032371B2 (ja) * | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
KR101056560B1 (ko) * | 2009-02-11 | 2011-08-11 | (주)인디링스 | 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치 |
JP5347657B2 (ja) * | 2009-03-31 | 2013-11-20 | 富士通株式会社 | データ記憶プログラム、方法、及び情報処理装置 |
TWI421871B (zh) * | 2009-11-27 | 2014-01-01 | Macronix Int Co Ltd | 定址一記憶積體電路之方法與裝置 |
US20110145477A1 (en) * | 2009-12-15 | 2011-06-16 | Rudelic John C | Flash translation layer using phase change memory |
CN102110462B (zh) * | 2009-12-25 | 2015-09-30 | 旺宏电子股份有限公司 | 寻址一存储集成电路的方法与装置 |
US9244841B2 (en) * | 2012-12-31 | 2016-01-26 | Advanced Micro Devices, Inc. | Merging eviction and fill buffers for cache line transactions |
JP5714681B2 (ja) | 2013-10-25 | 2015-05-07 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN104851457B (zh) * | 2014-02-18 | 2019-01-08 | 华邦电子股份有限公司 | 半导体存储装置 |
TWM487512U (zh) * | 2014-02-27 | 2014-10-01 | Phison Electronics Corp | 儲存裝置 |
CN105975406B (zh) * | 2016-04-29 | 2019-05-10 | 浪潮(北京)电子信息产业有限公司 | 一种数据存取方法及装置 |
US10521389B2 (en) * | 2016-12-23 | 2019-12-31 | Ati Technologies Ulc | Method and apparatus for accessing non-volatile memory as byte addressable memory |
US11861219B2 (en) * | 2019-12-12 | 2024-01-02 | Intel Corporation | Buffer to reduce write amplification of misaligned write operations |
CN112347002B (zh) * | 2020-11-13 | 2023-07-28 | 杭州芯炬视人工智能科技有限公司 | flash数据的保存方法、系统、计算机设备及存储介质 |
US11922055B2 (en) * | 2021-04-28 | 2024-03-05 | Seagate Technology Llc | Stack register having different ferroelectric memory element constructions |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69034227T2 (de) * | 1989-04-13 | 2007-05-03 | Sandisk Corp., Sunnyvale | EEprom-System mit Blocklöschung |
US5191556A (en) * | 1991-03-13 | 1993-03-02 | Advanced Micro Devices, Inc. | Method of page-mode programming flash eeprom cell arrays |
JPH05216775A (ja) | 1991-10-29 | 1993-08-27 | Hitachi Ltd | 半導体記憶装置 |
JPH06349286A (ja) | 1993-06-04 | 1994-12-22 | Matsushita Electric Ind Co Ltd | フラッシュメモリ用書き込み制御方法および制御装置 |
US5606532A (en) * | 1995-03-17 | 1997-02-25 | Atmel Corporation | EEPROM array with flash-like core |
JP2003058420A (ja) * | 2001-08-15 | 2003-02-28 | Sony Corp | Nand型フラッシュメモリからのデータ読み出し方法 |
US7472230B2 (en) * | 2001-09-14 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | Preemptive write back controller |
US6922754B2 (en) * | 2002-12-09 | 2005-07-26 | Infabric Technologies, Inc. | Data-aware data flow manager |
US7159076B2 (en) * | 2003-06-24 | 2007-01-02 | Research In Motion Limited | Cache operation with non-cache memory |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
-
2005
- 2005-10-20 JP JP2005305540A patent/JP4910360B2/ja active Active
-
2006
- 2006-10-18 US US11/582,459 patent/US7779199B2/en not_active Expired - Fee Related
-
2010
- 2010-04-01 US US12/662,153 patent/US7890695B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2007115004A (ja) | 2007-05-10 |
US7779199B2 (en) | 2010-08-17 |
US20070091679A1 (en) | 2007-04-26 |
US7890695B2 (en) | 2011-02-15 |
US20100199029A1 (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936252B2 (en) | Storage system capable of invalidating data stored in a storage device thereof | |
JP4956922B2 (ja) | 記憶装置 | |
US7779199B2 (en) | Storage device, computer system, and data writing method | |
US7571282B2 (en) | Computer system having a flash memory storage device | |
US8069297B2 (en) | Storage device, computer system, and storage device access method | |
JP5162846B2 (ja) | 記憶装置、コンピュータシステム、および記憶システム | |
JP5130646B2 (ja) | 記憶装置 | |
US9239781B2 (en) | Storage control system with erase block mechanism and method of operation thereof | |
JP5221332B2 (ja) | メモリシステム | |
US20100023681A1 (en) | Hybrid Non-Volatile Memory System | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
JP2008146253A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
JP2008146254A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
JP5338859B2 (ja) | 記憶装置および情報処理システム | |
JP2007334413A (ja) | 記憶装置 | |
JP2008181203A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
CN114185816A (zh) | 存储器系统及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081009 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111031 |
|
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: 20111220 |
|
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: 20120102 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4910360 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150127 Year of fee payment: 3 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |