JP4956922B2 - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP4956922B2 JP4956922B2 JP2005171141A JP2005171141A JP4956922B2 JP 4956922 B2 JP4956922 B2 JP 4956922B2 JP 2005171141 A JP2005171141 A JP 2005171141A JP 2005171141 A JP2005171141 A JP 2005171141A JP 4956922 B2 JP4956922 B2 JP 4956922B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- page
- address
- memory 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Description
その代表例として、NAND型フラッシュメモリが挙げられる。
図1のNAND型フラッシュメモリは、ビット線BL1〜BLnに接続された複数のメモリユニット1−1〜1−nがアレイ状に(縦横)に配列されている。
たとえば、選択用トランジスタ2のゲートが選択ゲート線SL1に接続され、偶数列の選択用トランジスタ3のゲートが選択ゲート線SL2に接続されている。また、各メモリセルN0〜N15のゲートがワード線WL0〜WL15に接続されている。
また、図2において、BL11,BL12はビット線を、WL11はワード線を、PL11はプレート線を、13はワード線デコーダおよびドライバ、14はプレート線デコーダおよびドライバを、15はセンスアンプをそれぞれ示している。
OUMは、たとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリであり、たとえば非特許文献3に、S.Laiらが論文を掲載している。
RRAMは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリであり、たとえば非特許文献4に、W.W.Zhuangらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
ISSCC2002予稿集のp106、セッション6.4 ISSCC2000の論文ダイジェストの128ページ、R.Scheuerleinら IEDM2001の論文ダイジェストの803ページ、S.Laiら IEDM2002の論文ダイジェストの7.5、W.W.Zhuangら
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく悪化する。
その転送速度を、シリアルATA接続の高速ストレージで目標とされる160MB/sにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば16個のメモリアレイを並列動作させる必要がある。
図3において、高速転送を実現するため、16個のアレイAR0〜AR15を同時動作させる。この場合データ書き込み時は、たとえばページP0〜P1を同時書き込みし、消去時はブロックB0〜B15を同時消去する。この時一括書き込み単位となる実ページ領域24は32kB、一括消去単位となる実消去ブロック領域21は2MBに達することになる。
その場合、たとえばページP0とP1のみを書き換える要求が発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域21全体を消去せねばならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
2.次にメモリ領域22内で、ページP0とP1に相当するデータを更新する。
3.次にフラッシュメモリ上のブロック領域21の消去を実行する。
4.最後に上記消去済の領域21に、更新後のメモリ領域22のブロックデータを全て書き戻す。
しかし、現実にはそのようなメモリは存在しないので、多種の異なるメモリを用途ごとに使い分けざるを得ない。
NAND型フラッシュモジュールは、たとえばハードディスクの接続に使用されるATAインタフェース等に仕様をあわせ、周辺記憶装置としてブロック単位でアクセスされる。その中には画像等のユーザーデータやアプリケーションの一部が格納されている。
一方、DRAM34はランダムアクセスができるが、揮発性であり、データを保持するだけで電力を消費する。したがって、不使用時でもバッテリーが消耗し、最悪の場合必要なユーザーデータが失われてしまう。
すなわち、フラッシュメモリの場合、前述したように、書き換えには必ず消去が必要であり、その際の消去ブロックは通常のアクセス単位であるページよりさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様だが、書き換えが小単位でランダムに行われた場合には極端に処理効率が悪化する。
図5は、NAND型フラッシュメモリの書き換え動作を概念的に示す図である。
図5において、P0〜P15はページを、B0〜B15はブロックを、41は実消去ブロック領域を、42はメモリ領域を、43はバッファメモリを、44は実ページ領域をそれぞれ示している。
このとき、一括書き込み単位となる実ページ領域44は32kB、一括消去単位となる実消去ブロック領域41は2MBに達することになる。
2.次にメモリ領域42内で、所望のデータを更新する。
3.次にフラッシュメモリ上のブロック領域41の消去を実行する。
4.最後に上記消去済の領域41に、更新後のメモリ領域42のブロックデータを全て書き戻す。
具体的には、1ページ分のデータの読み出しおよび書き込みにはそれぞれ200μsを要し、ブロックの消去には2msを要するので、30ms近くを必要とする。
したがって、現実の転送性能は著しく低いものになってしまう。このような事情から、フラッシュメモリを用いた現在の記憶装置は、特に書き込み時においては、一般的なDRAMをはるかに下回る転送性能しか得られていない。
この場合、更新しようとするページがキャッシュに格納されているページにヒットすれば、キャッシュ内のページのみが更新されるので、上述のような冗長な動作は直ちには発生しない。
すなわち、図5に示したように、記憶装置内にバッファメモリ43を設け、更新ページに相当する元ページP0〜P15を含む実消去ブロック領域41のデータ全てをバッファメモリ43に読み出して、実消去ブロック領域41を消去する。しかる後にキャッシュからの更新ページをバッファ上に上書きして、最後にバッファ内の全データを元のブロック領域41に書き戻す。
仮にキャッシュがミスヒットを続ければ、結局ページ更新するごとに上記動作を行わねばならなくなる。
より具体的には本発明の記憶装置は、アクセス特性が異なる二種のメモリを同階層で扱い、その特性に応じてデータを両者の間で柔軟に振り分ける。
したがって、高性能な補助メモリ側に保存されるのは、メインメモリのデータの一時記憶としてのコピーではなく、メインメモリから移されたデータの実体である。
このような記憶装置においては、もはや補助メモリに行われたデータ更新を、必ずしもメインメモリに反映させる必要は無い。補助メモリが満杯になった際には、適時メインメモリの適当な消去済領域に記憶データを移動させるだけで良い。その移動場所は、システムの効率を考慮して柔軟に選択することが可能である。
好適には、上記第2のメモリは、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いた不揮発性メモリを含む。
両メモリはともにデータの記憶装置として作用し、所望のデータまたはデータのコピーがNVRAMにある場合、外部からは通常のランダムアクセスメモリに対するのと同様にNVRAMにアクセスできる。一方、それらがNVRAMにない場合は、通知ピンによりその旨がシステムに通知され、大容量フラッシュメモリからNVRAMへ所望のデータの転送が行われる。システムはその間、メモリアクセスを停止して待機する。
通常のキャッシュシステムでは、キャッシュにはメインメモリに格納されたデータのコピーのみが格納される。したがって、キャッシュ内のデータが外部から更新された場合、必ずメインメモリの元の場所に書き戻す必要がある、前述したように、メインメモリにフラッシュメモリを用いた場合、この制約は大きなオーバーヘッドを生ずる。
これに対して、本システムにおいては、アドレス変換テーブルを更新することで、NVRAM側にデータの本体を移動させることができる。したがって、たとえばコピーをデータ本体と差し替えて元のデータは無効化することで、もはや書き戻しは不要となり、オーバーヘッドも解消できる。また、NVRAM側に十分な空きが無くなった場合は、それらをフラッシュメモリ内の好適な空き場所に自由に移動させることができる。
たとえば、低価格大容量のフラッシュメモリをメインメモリとして使用しつつ、高速な転送能力を確保でき、かつ微小領域の更新にも無駄なく対応可能な、柔軟な半導体ストレージを実現できる。
また、ハードディスクシステムにおいても、シーク回数の少ない、高速な記憶装置を実現できる。
一般に領域に依存してアクセス性能を劣化させる制約を持ったメモリをメインメモリとした記憶装置では、本発明の効果は顕著であり、従来のキャッシュシステムに比較してアクセス性能を大幅に改善することが可能である。
また、所望のデータがNVRAMにあるか否かの判定にアドレス変換テーブルを用いることで、両メモリ間で必要に応じてデータの移動を可能にし、これによってフラッシュメモリの書き換えに伴うオーバーヘッドを最小化し、高速な動作を実現することが可能である。
また、本発明によるメモリをバッテリーバックアップのモバイル機器に採用すれば、待機時のデータ保持に電力消費を必要としないので、バッテリー寿命を大幅に延ばすことができる。またシステム構成が単純になる上、殆どのメモリ部は安価なNAND型フラッシュメモリで置き換えることができるので、総合的なメモリコストも低減できる。
図6は、本発明に係る記憶装置の第1の実施形態を示す構成図である。
メインメモリ51は内部が高並列化されており、32kBのデータ群が単位ページとして同時にアクセスされ、内部バスBS50に入出力転送される。
アドレステーブル60は、図7に示すように、各論理アドレス61と物理アドレス62の照応から成っており、テーブルを格納したRAM上では、そのメモリアドレスと格納データに対応させることができる。
すなわち、所望の論理アドレスに対応するRAM上のアドレスにアクセスすることで、照応する物理アドレスが取得できる。
物理アドレス領域0000〜7FFFはメインメモリ51内のページアドレスを示す。一方、8000以上の領域は補助メモリ52を示しており、たとえば物理アドレス8001は補助メモリ52のアドレス0001に所望のページが存在することを示している。
転送制御回路54はこのテーブルを用いて所望のページの所在を判定し、メインメモリ51または補助メモリ52からそれを読み出してインターフェース回路53のページバッファーに転送する。
すなわち、転送制御回路54は更新されたページを補助メモリ52に保存し、アドレステーブル60内の対応論理アドレスに照応する物理アドレスを、補助メモリ52の保存先に書き換える。これによって、メインメモリ51内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ52に一時記憶としてコピーされたのではなく、実体が移動している。
FeRAMの書き換えはフラッシュメモリに比較してはるかに高速なので、補助メモリ52へのデータアクセスは極めて高速に実施することができる。この点において、補助メモリ32の役割は通常のキャッシュメモリと同じである。
こうして補助メモリ52内の空きが無くなってくると、転送制御回路54は、今度はこれらのページをメインメモリ51に再度移動させる必要が生ずる。
この際の移動は従来のキャッシュメモリからの書き戻しと異なり、メインメモリ上の任意の消去済み領域に行うことが可能である。たとえば、消去済の空きブロック59にまとめて移動させればよく、従来のようにそれぞれのページに対して読み出し元のブロック消去やブロック全体のデータ退避、再書き込み等を行う必要が無い。
すなわち、補助メモリ52からページ群58のみをメインメモリ51のブロック59に順次転送し、アドレステーブル60をそれに応じて書き換えるのみで良い。
アドレス変換テーブル60dには記憶装置50に入力される各論理ページアドレスに応じた物理ページアドレスが記載されており、”0x8000”以上は補助メモリ52d内のデータ領域を指している。その下位8ビットが、補助メモリ52d内に構築されたページデータの配列におけるインデックスとなる。
すなわち、図8の状態では、インデックス”0x1e”を先頭として、”0x02”までの連続した領域にページデータが格納されている。”0x03”〜”0x1d”に到る領域66dには現在データは格納されておらず、空き領域となっている。
まず先頭インデックスレジスタ67dの値が一つデクリメントされ、”0x1d”になる。そして補助メモリ52d内のインデックス”0x1d”に相当するページフィールドにページデータが、予備フィールドに対応する論理アドレスが格納される。
まず末尾インデックスレジスタ68dの値が参照され、インデックス値”0x02”が取得される。これをもとに補助メモリ52d内のインデックス”0x02”に相当するページフィールドに格納されたページデータと予備フィールドに格納された論理アドレス値”0x0005”が取得される。ページデータはメインメモリ内の適当な物理アドレス、例えば”0x00FF”に転送、格納されるとともに、変換テーブル60dがアクセスされ、論理アドレス”0x0005”に対応するフィールドが、”0x8002”から”0x00FF”に書き換えられる。さらに末尾インデックスレジスタ68dの値はデクリメントされ、”0x01”に変わる。
この論理アドレスを参照することで、補助メモリ52dからメインメモリにデータを移動する際、変換テーブル60dの対応箇所に適切かつ迅速にアクセスし、それを書き換えることが可能になる。また上記配列への新規ページデータの格納インデックスや、旧ページデータを移動させる場合の移動元インデックスは、先入れ先出しのアルゴリズムで一意的に決定されることになる。
ここで各ページデータ用フィールド64dには16kワードの連続領域がそれぞれ使用され、それら全体は、
”0_0000_0000_0000_0000_0000”
〜
”1_1011_1111_1111_1111_1111”
のメモリアドレス領域内に格納される。
このうち上位7ビットがページ選択のためのインデックスに対応し、
”0_0000_00”
〜
”1_1011_11”
の範囲の値である。その16進数値は”0x00”〜”0x6f”に相当する。下位14ビットは同一ページからワード単位でデータを取り出す際のアドレスとなる。
”1_1100_0000_0000_0000_0000”
〜
”1_1100_0000_0000_0110_1111”
のメモリアドレス領域内に格納される。
ここでは下位7ビットがそのままページインデックスに対応している。
なお、これは一例であって、具体的にメモリ上にページデータの配列を構成する手法としては、さまざまなバリエーションが存在し得る。
アドレス変換テーブル60dには記憶装置に入力される各論理ページアドレスに対応した物理ページアドレスが記載されており、”0x8000”以上は補助メモリ52d内のデータ領域を指している。その下位8ビットが、補助メモリ52d内に構築されたページデータのリンクテーブルにおけるインデックスとなる。
また、キャッシュメモリ52d内には各インデックスごとにページデータ用のフィールド64dに対応した予備フィールド65dが設けられており、そこには各ページデータの論理アドレスが格納されている。
まず先頭インデックスレジスタ67dに格納されたインデックス値”0x1e”がアクセスされ、フィールド70dの値から、前方ノードのインデックス”0x1d”が取得される。そして補助メモリ52d内のインデックス”0x1d”に相当するページフィールドにページデータが、予備フィールドに対応する論理アドレスが格納される。さらに先頭インデックスレジスタ67dの値は”0x1d”に書き換えられる。
まず末尾インデックスレジスタ68dの値が参照され、インデックス値”0x02”が取得される。これをもとに補助メモリ52d内のインデックス値”0x02”がアクセスされ、ページフィールドに格納されたページデータと予備フィールドに格納された論理アドレス値”0x0005”、及び前方リンクのインデックス値”0x01”が取得される。ページデータはメインメモリ内の適当な物理アドレス、たとえば”0x00FF”に転送、格納されるとともに、変換テーブル60dがアクセスされ、論理アドレス”0x0005”に対応するフィールドが、”0x8002”から”0x00FF”に書き換えられる。さらに末尾インデックスレジスタ68dの値は前方のリンクノードのインデックス値”0x01”に変わる。
図11は、本発明に係る記憶装置の第2の実施形態を示す構成図である。
第2の実施形態の記憶装置80は、ハードディスク(HDD)をメインメモリとする記憶装置である。
転送制御回路84からの制御信号に従って、メインメモリ81と補助メモリ82の間では、たとえば32kB単位のデータグループ(以降これをページと呼ぶ)で双方向のデータ転送が行われる。
また、インターフェース回路83と補助メモリ82との間ではファイルセクターに相当する512B単位でのデータ転送が行われる。
アドレステーブル90は各論理アドレス91と物理アドレス92の照応から成っている。図12の物理アドレス領域0000〜7FFFはメインメモリ81内のページアドレスを示す。
一方、8000以上の領域は補助メモリ82を示しており、たとえば物理アドレス8001は補助メモリ82のアドレス0001に所望のページが存在することを示している。
一方、メインメモリ81にデータがある場合は、一旦メインメモリの該当ページを補助メモリに移動する。
すなわち、転送制御回路84はメインメモリ81から補助メモリ82の空き領域に該当ページを転送し、アドレステーブル90内の対応論理アドレスに照応する物理アドレスを、補助メモリ82の保存先に書き換える。これによって、メインメモリ81内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ82に一時記憶としてコピーされたのではなく、実体が移動している。しかる後にインターフェース回路83に補助メモリ82内の対応アドレスを渡し、アクセスを許可する。
たとえば、ページ群88は同一のトラック89に移動する。したがって、その際のヘッドのシークは最小限に抑えられ、高速にデータを移動させることができる。
ところで、本発明の概念の一部を既存のキャッシュメモリシステムに適用しても、類似した効果を得ることは可能である。図6の実施形態と同様なシステムについて、補助メモリをキャッシュメモリとして管理した記憶装置の構成を第3の実施形態として説明する。
一方、補助メモリ側の内容は、図13および図14に示すように、別途キャッシュのエントリテーブル63bを設けて、それで管理する。すなわち、補助メモリ52bはキャッシュメモリとして位置付けられる。
すなわち、本例ではアドレステーブル60bは更新されず、別途テーブル63bにキャッシュへのエントリが追加される。
たとえば、テーブル60bは、論理アドレス0x0002、0x0003に相当するページデータが、メインメモリ61bの0x00F2、0x00F3のアドレス位置に格納されていることを示している。
一方、テーブル63bにはキャッシュ内にコピーされているページの論理アドレス64bと、そのキャッシュ内物理アドレス65bのセットが、エントリとして記載されている。すなわち、上述の論理アドレス0x0002、0x0003に相当するページデータのコピーが、キャッシュメモリ52bの0x00、0x01に格納されていることが解る。
転送制御回路54bはこの時点で、該当するページデータのメインメモリ内の物理位置を、たとえば消去済の空きブロック59bにまとめて移動させる。
すなわち、キャッシュメモリ52bからページ群58bをメインメモリ51bのブロック59bに順次転送し、アドレステーブル60bをそれに応じて書き換える。また対応するエントリを、テーブル63bから削除する。
しかしこの場合、キャッシュTAGテーブル63bとページテーブル60bの二重管理は冗長、かつ煩雑である。またTAGをスキャンしてのヒット判定にも余分な時間がかかる。
したがって、このようなシステムは、最終的には第1実施形態に到るまでの、過渡的な中途段階と解釈することができる。
ここまで本発明の内容を、一通り概念的に説明してきた。
さらに以下には本発明による超高速なシリコンディスクの実現性を具体的に明らかにすべく、第1の実施形態におけるメモリ構成をさらに発展させた第4の実施形態について、機能構成と動作仕様を詳細に説明する。
すなわち、各バンクBK0〜BK3は512個の消去ブロックを有している。さらに各バンクはそれぞれページ格納用のラッチを有している。各バンクの書き込み転送速度は10MB/s程度である。
各バンクBK0〜BK3にデータを書き込む際は、まずバンク毎のラッチ内に上記ページサイズに相当する2kBずつのデータが転送され、その後所望のページアドレスに一括書き込みされる。
各バンクBK0〜BK3は、各々独立にアクセスするページアドレスを指定でき、片側のバンクが書き込まれている間に反対のバンクのラッチにもデータを転送でき、さらに書き込みを開始できる。すなわち、4つのバンクは並列に動作が可能である。
たとえば、一つのファイルを16バンクに分割して並列に書き込めば、実質的には最大16倍の速度で書き込みが可能である。それらは一体化して、ページサイズ(2kBx16=)32kB、消去ブロックサイズ(128kBx16=)2MB、書き込み転送速度(10MBx16=)160MB/sのフラッシュメモリとみなすことが可能である。
データ読み出し時は内部の高並列化されたフラッシュメモリから32kB分のページデータがページバッファーに出力される。
また、書き込み時はページバッファーのデータがフラッシュメモリの各バンクに分割して書き込まれる。
さらに、転送制御回路54cを有しており、その内蔵RAMには32kBのページを管理単位としたアドレステーブル60cが構築されている。
アドレステーブル60cは、図16に示すように、各論理アドレス61cと物理アドレス62cの照応から成っており、テーブルを格納したRAM上では、そのメモリアドレスと格納データに対応させることができる。
すなわち、所望の論理アドレスに対応するRAM上のアドレスにアクセスすることで、照応する物理アドレスが取得できる。物理アドレス領域0000〜7FFFはメインメモリ51c内のページアドレスを示す。
一方、8000以上の領域は補助メモリ52cを示しており、たとえば物理アドレス8001は補助メモリ52cのアドレス0001に所望のページが存在することを示している。転送制御回路54cはこのテーブルを用いて所望のページの所在を判定する。また下位ビットはそのページ内のセクターの位置を決定する。
また、所望のページが補助メモリ52c上にある場合は、変換されたアドレスを用いて補助メモリが直接アクセスされ、IF回路53cを介して所望のファイルセクターのデータが出力される。
すなわち、ページデータはページバッファー66cを介して補助メモリ52cに転送され、さらにアドレステーブル60c内の対応論理アドレスに照応する物理アドレスが、補助メモリ52cの保存先に書き換えられる。これによって、メインメモリ51c内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ52cに一時記憶としてコピーされたのではなく、実体が移動している。
すなわち、補助メモリ52cからページデータをメインメモリ51cに順次転送し、アドレステーブル60cをそれに応じて書き換える。
1.ページ移動先となってページ書き込みが行われるに先立ち、最適な空き領域を検索する。
2.ページ移動元となって多くの無効領域が発生した際、それを新たな空き領域に回復させる。
所望のページがメモリモジュール51c上にある場合、それはメモリモジュール51cに入力されるページアドレスとなる。ここでメモリモジュール51cはその上位ビットからブロックアドレスを取得するが、そのアドレスはメモリモジュールレベルでは論理アドレスとなる。
状態は(0)→(1)→(2)の順に推移する。(0)→(1)の推移はメモリモジュールに書き込みが成された際に該当ページについて更新される。(1)→(2)の推移はページが補助メモリ52cに移動した際に発生するが、これは転送制御回路54cから通常の読み出しと区別した移動コマンドが入力されるか、指定ページの無効化コマンドが入力されることに応じて更新される。状態(2)からは状態(0)への復帰は、後述のメモリモジュール内部での回復処理によって行われる。
転送制御回路54cは補助メモリ52cからのページの移動に先立って、最適ページの検索コマンドをメモリモジュール51cに入力する。それを受けたメモリモジュールの制御回路67cはブロックアドレステーブル68cを先頭からスキャンしていき、消去済のページ数が最も多く、無効ページ数が少ないブロックを最適ブロックとして選択する。そしてその先頭の消去済ページ領域の論理アドレスが、移動先の最適アドレスとして制御回路54cに通知される。
それによって、次に述べる回復処理も効率良く実施でき、それらは再度消去済ページが集中したブロックを発生させる。
図17においては、図15のメモリアレイ群を、簡略のため一つのフラッシュメモリ101と表現している。さらにメモリモジュール内には、図15と同様に、内部にブロックアドレステーブル104が構築されたフラッシュ制御回路103およびページバッファー102が設置されている。
一方、106は全てのページが消去された予備ブロックを示している。すなわち、メモリ101内にはブロックアドレステーブル104上のどの論理アドレスに照応しておらず、外部からアクセスできない予備ブロックが常に用意されている。
一方、ブロック105は消去された後予備ブロックとなる。
(1)ページアドレステ−ブル60cを用いた、制御回路54cによる記憶装置レベルでの転送制御、
(2)ブロックアドレステーブル68cを用いた、制御回路67cによるメモリモジュール51cレベルでの各種制御、
の二者が、互いに通信し合いながら各々独立に実行されている。
このような構成は各種制御のアルゴリズムを単純化するので、本発明の効果を引き出すのに好適である。また、システムの動作自体の効率化にも寄与する。たとえばメモリモジュール51c内で無効ページの回復処理が行われている間でも、補助メモリ52c上のデータであれば、外部から自由にアクセスすることが可能である。
・フラッシュメモリ(メイン)と強誘電体メモリ(補助)で構築された本発明の記憶装置がハードディスクのキャッシュメモリとして用いられる。
・フラッシュメモリ(メイン)と強誘電体メモリ(補助)で構築された本発明の記憶装置とハードディスクとでさらに相互にページデータを移動しあう「入れ子」型の記憶装置が構成されている。
・一つの記憶装置内に強誘電体メモリ、フラッシュメモリ、ハードディスクの三者を含み、強誘電体メモリとフラッシュメモリ間ではページ単位でデータを移動しあい、フラッシュメモリとハードディスク間では消去ブロック単位でデータを移動しあう。
このようにメモリの階層化に伴って多くのバリエーションが生じ得るが、いずれの場合にも本発明は適用される。
図18は、本第5の実施形態に係る記憶装置を概念的に説明するための図である。
その際元の消去ブロックにあったデータは無効化され、それ以外の非選択データはそのまま残される。キャッシュメモリ111内に既に移動したデータが再度アクセスを要求された場合は、フラッシュメモリ112ではなく、キャッシュメモリ111がアクセスされる。
それらのページデータ群119は特定の基準に達した時点で、フラッシュメモリ112内の消去済の空きブロック120にまとめて書き戻される。
すなわち、元々異なる消去ブロックに存在していたページデータ116、117、118は、キャッシュメモリ111への移動を経て、同一の消去ブロック120内に再配置される。
フラッシュメモリ112にデータが書き込まれるのは、キャッシュメモリ111が満杯にならぬように、フラッシュメモリの消去済予備ブロックに、まとめて書き戻しを行う時のみである。全体としては1ページ分の更新に対して1ページ以下の書き戻しで済むことになる。
その後、ブロック122bを消去することで、ブロック122bが新たな消去済ブロックとなる。
これにより、データ群119bをブロック122bに移動することが可能になる。
すなわち、データ蓄積領域(データ群の蓄積領域119b)と空き領域121bとを併せて、キャッシュメモリ111bは、少なくとも2ブロック分のデータ格納が可能な容量を持つことが望ましい。
この際、従来は前述の如く、ブロック内の全データをバッファーに移動し、フラッシュメモリ内に再度書き込みを行うしかなかった。
しかし、一旦空きブロックが無くなってしまうと、1ページずつ無効領域を持ったブロックから空きブロックを生成する必要が生じる。
したがって、従来同様多くのデータを余分に読み出して、フラッシュメモリに再書き込みすることになる。
すなわち、当初異なるブロックに分散配置されていたページデータは、キャッシュメモリを介して同一ブロックに再配置されることで、効率の良い集中配置に移行する。
それによって互いに関連の深いページデータが同一ブロックに再配置されるので、それらが再度アクセスされたときには、同一ブロックから多くのページデータがキャッシュメモリに移動することになる。
その結果、そのブロックは無効領域を集中的に有した状態となり、そこから効率良く新規空きブロックを生成することができる。
したがって、アクセス効率の良いページ配置に変化する。従ってどのようなケースにおいても、従来よりはるかに効率のよいデータ書き込みが成されるようになる。
この場合、データ書き込み時は、たとえばページ群24bは実ページ領域として同時書き込みがなされる。
さらに、消去時はブロック群21bは実消去ブロックとして同時消去される。
すなわち、実消去ブロック(ブロック群)21b全体のデータが読み出される訳ではなく、またすぐにフラッシュ側に書き戻される訳でもない。
再度、ページ群24bの一部領域が更新される場合は、キャッシュ領域22bが更新される。
しかし、別の実ページ領域25bに更新指示があると、ページ群25bのみが読み出され、所望箇所が更新されて、キャッシュメモリ23bに格納される。
そしてたとえば、規定量を超えた実ページデータが格納されると、それらはまとめて、既に消去済の実消去ブロック27bに書き戻される。
すなわち、キャッシュメモリ23bを介して、実ページ領域の配置換えがなされ、異なる消去ブロックから読み出された複数のページ24b、25bのデータが同一の消去ブロック27bに再配置される。
各々のバンクBK0〜BK3のページサイズは2kBであり、消去ブロックサイズは64ページをまとめた128kBである。
すなわち、各バンクBK0〜BK3は512個の消去ブロックを有している。さらに各バンクBK0〜BK3はそれぞれページ格納用のラッチを有している。各バンクBK0〜BK3の書き込み転送速度は10MB/s程度である。
各バンクBK0〜BK3は、各々独立にアクセスするページアドレスを指定でき、片側のバンクが書き込まれている間に反対のバンクのラッチにもデータを転送でき、さらに書き込みを開始できる。すなわち、4つのバンクBK0〜BK3は並列に動作が可能である。
さらに4個のフラッシュメモリ131〜134も各々並列動作が可能であり、記憶装置全体では16バンクを並列にアクセスできる。
たとえば一つのファイルを16バンクに分割して並列に書き込めば、実質的には最大16倍の速度で書き込みが可能である。
すなわち、フラッシュメモリコントローラ135は、各バンク毎にアクセスするアドレスを変換するためのテーブルを持っており、外部から指定されたアドレス(論理アドレス)を不良ブロックを避ける形で内部アドレス(物理アドレス)に変換し、良品のブロックのみにアクセスさせる。
制御回路139はそれらの転送を管理する。
通常ファイルは512Bのセクター単位で通信されるので、本記憶装置外部からみた場合、各セクターアドレスの上位ビットは上記ページデータの論理アドレスであり、下位ビットはページ内32kB中の所望セクターの位置を示すアドレスである。
このテーブル141は、装置の論理ページアドレスに対応して、各ページデータがフラッシュメモリ140または強誘電体キャッシュメモリ136のどの場所に格納されているかを管理している。記憶容量が1GBの場合、32kBのページは約32k枚格納される。したがって、16ビットのアドレス空間で所在を管理でき、テーブル141のメモリ容量は512kbit程度である。
すなわち、内部記憶容量の八分の一を隠蔽し、ページの論理アドレスを6FFFまでとしている。この場合、記憶装置の容量は約750MBである。物理アドレスについては0000〜7FFFの空間をフラッシュメモリ140に、8000〜FFFFの空間を強誘電体キャッシュメモリ136に割り振っている(無論割り振られたアドレスの全てが使われる訳ではない)。
すなわち、ユーザーが所望のセクターアドレスを指定すれば、その上位ビットに相当する論理ページアドレスがテーブル上でアクセスされ、対応ページの所在位置が特定される。該当ページはページレジスタ137に転送され、セクターアドレスの下位ビットを元に、レジスタ中の所望のビットがアクセスされる。
1.ユーザーが4kBのクラスターを読み出すため、その先頭セクターのアドレスとコマンドを入力したとする。750MBのストレージでは、512B単位のセクターのアドレスは21ビットで指定できる。その際上位15ビットがページアドレスとなり、下位6ビットがページ中のセクターアドレスとなる。
1.ユーザーが4kBのクラスターを書き込むため、その先頭セクターのアドレスとコマンドを入力したとする。読み出し時と同様に、そのアドレス21ビット中上位15ビットがページアドレスとなり、下位6ビットがページ中のセクターアドレスとなる。
一方、フラッシュメモリ140に存在していたものであれば、強誘電体キャッシュメモリ36の空き領域に書き込まれ、テーブル141が更新される。
すなわち、更新済ページデータはフラッシュメモリ140から強誘電体キャッシュメモリ136に移動し、フラッシュメモリ140内の元のページ領域は無効となる。
したがって、記憶装置130へのアクセスと内部の書き戻しを時分割でスケジューリングし、たとえば外部から1ページ分のアクセスがなされるごとに1ページずつ書き戻しても良い。
この場合、フラッシュメモリ140への書き戻し時には更新の古いものから書き込んで行けば良い。これによって書き込み時のキャッシュへのヒット率が上昇し、フラッシュメモリへの実際の書き込み回数を減らすことができる。
強誘電体メモリ140の中にテーブルそのものを構築したり、または電源オフ時に強誘電体メモリ内にテーブルを保存する。
また、主媒体についてはフラッシュメモリが現時点で代表的であるが、それ以外にも書き換えに消去が必要で、かつ消去単位が通常のアクセス単位より大きい不揮発性メモリであれば、本発明を適用することができる。
図23は、本第6の実施形態に係る情報処理システム(コンピュータシステム)の一実施形態を示すブロック図である。
半導体記憶装置152は、状態通知ピン152aの付加された通常のランダムアクセスメモリとして実装されている。NOR型フラッシュとピン互換にし、通常のボードにそのまま装着することも可能である。
もし、所望のデータかそのコピーが無ければ、制御回路1523は通知ピン152aにビジー信号を送り、必要なデータをフラッシュメモリモジュール1522から強誘電体メモリ1521に転送する。
これによって上記メモリアクセスは中断され、ホスト装置151は通知ピン152aの状態を監視しつつ待機状態に入る。半導体記憶装置152内の転送処理が終了すると、通知ピン152aはレディー状態となり、メモリアクセスが再開される。
これらの総容量は通常数十kBであり、ここでは小容量の強誘電体メモリに格納したが、コード格納にはマスクROMやEPROMを、スタックにはSRAM等を用いてもよく、それらはホスト装置(CPU)151やインターフェース回路群154のIF回路チップの中に内蔵しても良い。
図24は、小容量の強誘電体メモリ153は半導体記憶装置152と同一パッケージ内に一体化させた構成例を示す図である。
図24において、記憶装置160は、大容量記憶部161、小容量誘電体メモリ162、スイッチ163,164、強誘電体メモリ165、制御回路166、NAND型フラッシュメモリ167、外部端子168,169、共用アドレス線170、共用バス(BUS)171を有する。
記憶装置160においては、アドレス0から上位256kb(32kB)分のアドレス領域は小容量強誘電体メモリ162にマッピングされ、それ以降は大容量記憶部161にマッピングされる。すなわち、記憶装置160が1GBの容量を持つとすれば、アドレスA14−A28の全てが0の場合は強誘電体メモリ162がアクセスされ、それ以外は記憶部161がアクセスされる。
ここで記憶部161のアドレス端子とIO端子は、外部端子168,169、および小容量強誘電体メモリ162に接続された共用アドレス線170、並びに共用BUS171から、スイッチ163および164によって適時切断されるようになっている。すなわち、記憶部161内において強誘電体メモリ165とNAND型フラッシュモジュール167との間でデータ転送が行われ、ビジー信号が送出されている間、記憶部161内のバスやアドレス線は内部転送回路166の制御のもとで内部転送に使用されているので、共用のアドレス線やバスから切断される。これによって記憶部161内で所望の転送を実行しつつ、外部からは小容量強誘電体メモリ162内の割り込みベクターに問題なくアクセスできる。
図26(A),(B)は、図25の転送制御回路におけるアドレス変換テーブルおよびキャッシュテーブルの一例を示す図である。
図25において、180は内部バス、181はメインメモリ、182は補助メモリ、183は入出力インターフェース回路、184は転送制御回路、185〜187はページ、188はページ群、189は消去済みの空きブロック、190はアドレス変換テーブル、191はキャッシュテーブルをそれぞれ示している。
まず、図26(A)において、1901は論理アドレスを、1902は物理アドレスをそれぞれ示し、図26(B)において、1911はエントリを、1912はページアドレスをそれぞれ示している。
メインメモリ181は内部が16バンクに高並列化されており、32kBのデータ群が単位ページとして同時にアクセスされ、内部バス180にシリアルに入出力転送される。
また、装置内部には左記ページを管理単位としたアドレス変換テーブル190が構築されている。これはたとえば転送制御回路184に内蔵されたSRAMの中に構築される。
さらに、転送制御回路184にはキャッシュテーブル191が構築されており、これはたとえば内蔵された連想メモリの中に格納されている。
物理アドレス空間においては、領域0x0000〜0x7FFFはメインメモリ181内のページアドレスを示す。
一方、0x8000以上の領域は補助メモリ182を示しており、たとえば物理アドレス0x8001は補助メモリ182のアドレス0x0001に所望のページが存在することを示している。
もし、データが格納されていない場合は、今度はキャッシュテーブル191を参照し、今度は補助メモリ182内に所望データのコピーが格納されているか否かを判定する。
たとえば図の例では、論理ページアドレス0x0001へのアクセス要求があった場合、アドレス変換テーブル190において対応する物理アドレスは0x00F1であり、データ本体はメインメモリ181内にあることが解る。
この場合、今度はキャッシュテーブル191において、論理アドレス0x0001に一致するTAGのエントリが検索される。ここにおいて強誘電体補助メモリ182のアドレス0x0002に所望のデータを含むページのコピーが格納されていることが判明する。
したがって、たとえばアドレス変換テーブル190にはSRAMを、キャッシュテーブル191には連想メモリを使用する。
必要があればアドレス変換テーブル190とキャッシュテーブル191の参照は同時並行して実施しても良い。これによって、補助メモリ182にデータかそのコピーがある限りは、本記憶装置は通常のランダムアクセスメモリと全く同様に扱える。
これによって、コピー元であるメインメモリ181上の0x00F1のページデータは無効化され、以降はコピーデータの側がアクセスされるようになる。すなわち、データの実体となる。すなわちメインメモリ181から補助メモリ182にデータの実体が移動したことになる。
したがって、特に書き込みアクセスの場合には、データを移動することで従来のキャッシュに必須だった書き戻しが不要になり、それに伴うオーバーヘッドを大幅に削減できる。
たとえば、消去済の空きブロック189にまとめて移動させればよく、通常のようにそれぞれのページに対して読み出し元のブロック消去やブロック全体のデータ退避、再書き込み等を行う必要が無い。すなわち、補助メモリ182からページ群188のみをメインメモリ181のブロック189に順次転送し、アドレス変換テーブル190をそれに応じて書き換えるのみで良い。
したがって、たとえばメインメモリ181内に特定の領域を設けて、電源オフ時にそこに内容を退避する必要がある。さらに電源オン時には退避したデータを復元させなければならず、起動や終了に余分な時間がかかる上、電源瞬断にも脆弱である。
したがって、補助メモリ182はフラッシュメモリよりアクセスが高性能な不揮発性メモリであることが望ましく、具体的には強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いたメモリであることが望ましい。
一方、補助メモリ182にコピーされたデータは、それが更新されていなければ破棄するのみで良い。したがって、ボトルネックとなるメインメモリ(特にフラッシュメモリ)への書き込みを最小限に抑えるためには以下のように移動とコピーを使い分けるのが望ましい。
一方、書き込みにおいてデータ転送の必要が生じた場合は、データの実体を移動する。
また、読み出し用に転送されたコピーでも、それが後に書き換えられれば書き戻しが必要になる。この場合は実体を移動させて書き戻しを不要にする。この操作は前述したように、アドレス変換テーブルの書き換えとキャッシュエントリの削除のみで実施することができる。
図27は、読み出しアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
(R2):補助メモリ182内にデータがあるか否かが判別される。
(R3):変換されたアドレスが補助メモリ182上を指していれば、この変換後アドレスと下位ビットから補助メモリ182がアクセスされる。
(R4):変換されたアドレスがメインメモリ181上を指していれば、今度はキャッシュテーブルが参照され、TAGの検索が行われる。
(R5):補助メモリ182内にコピーがあるか否かが判別される。
(R3):キャッシュがヒットし、補助メモリ182上のコピーページのアドレスが取得されれば、このアドレスと下位ビットから補助メモリ182がアクセスされる。
(R6)キャッシュがミスヒットした場合は、通知ピンがビジー状態となり、外部アクセスを禁止して、メインメモリ181から補助メモリ182へのページデータ転送が行われる。もし補助メモリ182に十分な空き領域がなければ、補助メモリ182内の既存のコピーページが破棄されるか、もしくは補助メモリ182内の既存データがメインメモリ181内に移動転送される。
(R7):データ転送が完了したか否かが判別される。
(R8):データ転送が完了すれば、キャッシュテーブル191が更新されて、新たなTAGエントリが追加される。その後補助メモリ182がアクセスされ、通知ピンがレディー状態に変わる。
図28は、書き込みアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
(W2):補助メモリ182内にデータがあるか否かが判別される。
(W3):変換されたアドレスが補助メモリ182上を指していれば、この変換後アドレスと下位ビットから補助メモリ182がアクセスされ、所望のデータが更新される。
(W4)変換されたアドレスがメインメモリ181上を指していれば、今度はキャッシュテーブル191が参照され、TAGの検索が行われる。
(W5):補助メモリ182内にコピーがあるか否かが判別される。
(W6):キャッシュがヒットし、補助メモリ182上のコピーページのアドレスが取得されれば、アドレス変換テーブル190が更新され、所定の論理ページアドレスに対する物理アドレスが上記補助メモリ上のアドレスに変更される。さらにキャッシュのエントリが削除される。これによってデータの移動が行われ、補助メモリ上のコピーページが実体になる。
(W3):さらに上記アドレスと下位ビットから補助メモリがアクセスされて、所望のデータが更新される。
(W7):キャッシュがミスヒットした場合は、通知ピンがビジー状態となり、外部アクセスを禁止して、メインメモリ181から補助メモリ182へページデータの転送が行われる。もし補助メモリ182に十分な空き領域がなければ、補助メモリ182内の既存のコピーページが破棄されるか、もしくは補助メモリ182内の既存データがメインメモリ181内に移動転送される。
(W8):データ転送が完了したか否かが判別される。
(W9)データ転送が完了すれば、アドレス変換テーブル190が更新され、所定の論理ページアドレスに対する物理アドレスが上記補助メモリ上の転送先アドレスに変更される。これによってデータの移動が行われ。その後補助メモリ182がアクセスされ所望のデータが更新される。その後通知ピンがレディー状態に変わる。
また、所望のデータがNVRAMにあるか否かの判定にアドレス変換テーブルを用いることで、両メモリ間で必要に応じてデータの移動を可能にし、これによってフラッシュメモリの書き換えに伴うオーバーヘッドを最小化し、高速な動作を実現することが可能である。
また、本発明によるメモリをバッテリーバックアップのモバイル機器に採用すれば、待機時のデータ保持に電力消費を必要としないので、バッテリー寿命を大幅に延ばすことができる。またシステム構成が単純になる上、殆どのメモリ部は安価なNAND型フラッシュメモリで置き換えることができるので、総合的なメモリコストも低減できる。
たとえば第1のメモリにはその他のNVRAMの他、さらには揮発性メモリも使用できる。また、第2のメモリにはNAND型以外の各種フラッシュメモリも使用できる。
さらには上記不揮発性メモリ以外でも、一般に領域に依存してアクセス性能を劣化させる制約を持った安価な半導体メモリをメインメモリとした記憶装置であれば、本発明を採用することにより、コストと性能の両立において大きな効果を発揮する。
Claims (5)
- 第1の不揮発性メモリ部と、
上記第1の不揮発性メモリ部よりアクセス速度が高速で記憶容量が小さい第2の不揮発性メモリ部と、
記憶装置の仮想アドレスに対応して、データが上記第1の不揮発性メモリ部および上記第2の不揮発性メモリ部のうちのいずれの不揮発性メモリに記憶されるかを管理するためのアドレス変換テーブルと、
読み出しまたは書き換えにおいて、互いにアクセス速度の異なる上記第1の不揮発性メモリ部と上記第2の不揮発性メモリ部間で、適時双方向に記憶データを移動させる機能を含み、当該記憶データの移動に応じて上記アドレス変換テーブルのデータの保存先のアドレスを書き換える制御回路と、を有し、
上記第1の不揮発性メモリ部は書き換えに事前消去を必要とする半導体メモリであって、消去単位であるブロック領域はアクセス単位であるページ領域を複数含み、
上記第2の不揮発性メモリ部は上記第1の不揮発性メモリ部より書き換え速度が速い半導体メモリであって、
上記制御回路は、
外部から読み出しのために上記第1の不揮発性メモリ部にアクセスされたデータ、または外部から書き換えのために上記第1の不揮発性メモリ部にアクセスされたデータを、アクセス速度が速い側の上記第2の不揮発性メモリ部に移動させるとともに、上記アドレス変換テーブルのデータの保存先のアドレスを書き換え、
上記第2の不揮発性メモリ部に保存されたページデータを上記第1の不揮発性メモリ部に書き戻す際、上記ページデータを、上記第1の不揮発性メモリ部上の消去済み領域に移動させるとともに、上記アドレス変換テーブルのデータの保存先のアドレスを書き換える
記憶装置。 - 上記制御回路は、
上記第2の不揮発性メモリ部に保存されたページデータを上記第1の不揮発性メモリ部に書き戻す際、上記ページデータを、上記第1の不揮発性メモリ部上の元のページ領域とは異なる消去済のページ領域に、ページ単位で独立に移動させる
請求項1記載の記憶装置。 - 上記制御回路は、
上記第1の不揮発性メモリ部から上記第2の不揮発性メモリ部へデータを移動させて、上記アドレス変換テーブルを更新し、上記第1の不揮発性メモリ部上の元の記憶領域を無効化する機能、および上記第2の不揮発性メモリ部から上記第1の不揮発性メモリ部へデータを移動させて、上記アドレス変換テーブルを更新し、上記第2の不揮発性メモリ部上の元の記憶領域を無効化する機能を有する
請求項1または2記載の記憶装置。 - 上記第2の不揮発性メモリ部は、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性メモリを含む
請求項1から3のいずれか一に記載の記憶装置。 - 上記アドレス変換テーブルは、上記第2の不揮発性メモリ部内に保管されている
請求項1から4のいずれか一に記載の記憶装置。
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005171141A JP4956922B2 (ja) | 2004-10-27 | 2005-06-10 | 記憶装置 |
| US11/251,867 US8554982B2 (en) | 2004-10-27 | 2005-10-18 | Storage device and information processing system |
| KR1020050101514A KR101189259B1 (ko) | 2004-10-27 | 2005-10-26 | 저장 장치 및 정보 처리 시스템 |
| EP05292279A EP1653340B1 (en) | 2004-10-27 | 2005-10-27 | Storage device and information processing system |
| DE602005004226T DE602005004226T2 (de) | 2004-10-27 | 2005-10-27 | Speichervorrichtung und Informationsverarbeitungssystem |
| US13/963,454 US8904096B2 (en) | 2004-10-27 | 2013-08-09 | Storage device and information processing system |
| US14/528,308 US9317424B2 (en) | 2004-10-27 | 2014-10-30 | Storage device and information processing system |
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004312500 | 2004-10-27 | ||
| JP2004312501 | 2004-10-27 | ||
| JP2004312500 | 2004-10-27 | ||
| JP2004312501 | 2004-10-27 | ||
| JP2005018370 | 2005-01-26 | ||
| JP2005018370 | 2005-01-26 | ||
| JP2005171141A JP4956922B2 (ja) | 2004-10-27 | 2005-06-10 | 記憶装置 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011141484A Division JP5338859B2 (ja) | 2004-10-27 | 2011-06-27 | 記憶装置および情報処理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006236304A JP2006236304A (ja) | 2006-09-07 |
| JP4956922B2 true JP4956922B2 (ja) | 2012-06-20 |
Family
ID=35789190
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005171141A Expired - Fee Related JP4956922B2 (ja) | 2004-10-27 | 2005-06-10 | 記憶装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (3) | US8554982B2 (ja) |
| EP (1) | EP1653340B1 (ja) |
| JP (1) | JP4956922B2 (ja) |
| KR (1) | KR101189259B1 (ja) |
| DE (1) | DE602005004226T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9189325B2 (en) | 2011-01-25 | 2015-11-17 | Sony Corporation | Memory system and operation method thereof |
| US9916103B2 (en) | 2014-05-07 | 2018-03-13 | Sony Corporation | Memory control device, memory device, and memory control method |
Families Citing this family (143)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0681906B1 (en) | 1989-10-30 | 2002-02-20 | 3D Systems, Inc. | Stereolithographic construction techniques |
| US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
| US7769944B2 (en) * | 2004-10-01 | 2010-08-03 | Supertalent Electronics, Inc. | Partial-write-collector algorithm for multi level cell (MLC) flash |
| US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
| JP2006338370A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
| JP4282636B2 (ja) | 2005-06-22 | 2009-06-24 | 株式会社東芝 | 不揮発性半導体記憶装置とそのデータ書き込み方法 |
| KR100648285B1 (ko) * | 2005-06-24 | 2006-11-23 | 삼성전자주식회사 | 멀티 레벨 셀 플래시 메모리의 액세스 방법 및 장치 |
| JP5076411B2 (ja) * | 2005-11-30 | 2012-11-21 | ソニー株式会社 | 記憶装置、コンピュータシステム |
| US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
| JP4900381B2 (ja) * | 2006-02-24 | 2012-03-21 | 富士通株式会社 | メモリ制御装置およびメモリ制御装置の制御方法 |
| JP2008084206A (ja) * | 2006-09-28 | 2008-04-10 | Fujitsu Ltd | ストレージ装置およびデータ転送方法 |
| JP2008097107A (ja) * | 2006-10-06 | 2008-04-24 | Seiko Epson Corp | データ記録装置及びその制御方法 |
| US7856588B2 (en) * | 2006-10-19 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Data allocation in memory chips |
| US8745315B2 (en) * | 2006-11-06 | 2014-06-03 | Rambus Inc. | Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory |
| JP4921142B2 (ja) * | 2006-12-12 | 2012-04-25 | キヤノン株式会社 | 通信装置 |
| US20080207007A1 (en) | 2007-02-27 | 2008-08-28 | Air Products And Chemicals, Inc. | Plasma Enhanced Cyclic Chemical Vapor Deposition of Silicon-Containing Films |
| US7657572B2 (en) * | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
| US7606111B2 (en) * | 2007-04-26 | 2009-10-20 | Super Talent Electronics, Inc. | Synchronous page-mode phase-change memory with ECC and RAM cache |
| DE602008003150D1 (de) * | 2007-05-02 | 2010-12-09 | St Microelectronics Sa | Nicht flüchtiger Speicher mit partieller Löschung |
| KR100888823B1 (ko) * | 2007-06-27 | 2009-03-17 | 삼성전자주식회사 | 비휘발성 메모리 시스템, 및 비휘발성 메모리 시스템의프로그램 방법 |
| JP2009026062A (ja) * | 2007-07-19 | 2009-02-05 | Tdk Corp | メモリコントローラ、メモリシステム及びメモリ制御方法 |
| JP5096847B2 (ja) * | 2007-09-10 | 2012-12-12 | 株式会社リコー | アクセス制御装置、アクセス制御方法、アクセス制御プログラム、記録媒体、記憶装置および画像処理装置 |
| KR20090035938A (ko) * | 2007-10-08 | 2009-04-13 | 삼성전자주식회사 | 하이브리드 디스크의 조각 모음 장치 및 방법 |
| TW200917277A (en) * | 2007-10-15 | 2009-04-16 | A Data Technology Co Ltd | Adaptive hybrid density memory storage device and control method thereof |
| US7855916B2 (en) | 2007-10-24 | 2010-12-21 | Rao G R Mohan | Nonvolatile memory systems with embedded fast read and write memories |
| US8631203B2 (en) * | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
| US8200904B2 (en) | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
| JP4995064B2 (ja) | 2007-12-21 | 2012-08-08 | キヤノン株式会社 | 画像出力装置及び画像出力方法 |
| US7978516B2 (en) | 2007-12-27 | 2011-07-12 | Pliant Technology, Inc. | Flash memory controller having reduced pinout |
| JP2009163843A (ja) * | 2008-01-09 | 2009-07-23 | Panasonic Corp | 半導体記憶装置及びその製造方法 |
| JP2009289155A (ja) * | 2008-05-30 | 2009-12-10 | Panasonic Corp | 半導体記憶装置 |
| JP5260152B2 (ja) * | 2008-06-06 | 2013-08-14 | セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー | 不揮発性メモリ制御回路 |
| KR101466585B1 (ko) | 2008-07-10 | 2014-11-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
| US9323681B2 (en) | 2008-09-18 | 2016-04-26 | Avere Systems, Inc. | File storage system, cache appliance, and method |
| US8214404B2 (en) | 2008-07-11 | 2012-07-03 | Avere Systems, Inc. | Media aware distributed data layout |
| US9342528B2 (en) * | 2010-04-01 | 2016-05-17 | Avere Systems, Inc. | Method and apparatus for tiered storage |
| KR101465099B1 (ko) | 2008-09-11 | 2014-11-25 | 시게이트 테크놀로지 엘엘씨 | 특정 조건을 갖는 파일을 신속하게 판독할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체 |
| US8351290B1 (en) * | 2008-09-12 | 2013-01-08 | Marvell International Ltd. | Erased page detection |
| US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
| US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
| US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
| KR101416879B1 (ko) | 2008-10-06 | 2014-08-07 | 삼성전자주식회사 | 비휘발성 메모리의 동작 방법 |
| US8261009B2 (en) | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
| US20100169540A1 (en) * | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
| US8397016B2 (en) * | 2008-12-31 | 2013-03-12 | Violin Memory, Inc. | Efficient use of hybrid media in cache architectures |
| US20100198947A1 (en) * | 2009-02-04 | 2010-08-05 | Raytheon Company | System and Method for Dynamically Processing Electronic Data Between Multiple Data Sources |
| TWI420528B (zh) * | 2009-03-11 | 2013-12-21 | Silicon Motion Inc | 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器 |
| US7898859B2 (en) * | 2009-06-15 | 2011-03-01 | Micron Technology, Inc. | Use of emerging non-volatile memory elements with flash memory |
| CN101968971B (zh) * | 2009-07-27 | 2014-04-30 | 慧帝科技(深圳)有限公司 | 一种闪存的存取方法、一种可携式记忆装置及其控制器 |
| US8433865B2 (en) | 2009-12-11 | 2013-04-30 | Microsoft Corporation | Consistency without ordering dependency |
| IT1399916B1 (it) * | 2010-04-30 | 2013-05-09 | Balluchi | Dispositivo di memoria ad accesso di registro indicizzato |
| US8793440B2 (en) | 2010-06-17 | 2014-07-29 | Microsoft Corporation | Error detection for files |
| US20120017052A1 (en) * | 2010-07-19 | 2012-01-19 | Sauber William F | Information Handling System Universal Memory Wear Leveling System and Method |
| JP2012063871A (ja) * | 2010-09-14 | 2012-03-29 | Univ Of Tokyo | 制御装置およびデータ記憶装置 |
| WO2012116369A2 (en) * | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
| JP2013020682A (ja) | 2011-07-14 | 2013-01-31 | Toshiba Corp | 不揮発性半導体記憶装置 |
| JP5653856B2 (ja) * | 2011-07-21 | 2015-01-14 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US8776094B2 (en) | 2011-08-11 | 2014-07-08 | Microsoft Corporation | Runtime system |
| US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
| JP5790532B2 (ja) * | 2012-02-13 | 2015-10-07 | セイコーエプソン株式会社 | 電子機器、及びメモリー制御方法 |
| JP5971547B2 (ja) | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
| JP2013222236A (ja) * | 2012-04-13 | 2013-10-28 | Hitachi Ltd | メモリの管理方法、記憶装置およびそれを搭載した計算機 |
| KR101375838B1 (ko) * | 2012-06-25 | 2014-03-17 | 인텔렉추얼디스커버리 주식회사 | 데이터 저장 시스템 및 데이터 관리 방법 |
| JP5631938B2 (ja) * | 2012-07-19 | 2014-11-26 | 株式会社東芝 | 半導体記憶装置 |
| US20140052897A1 (en) * | 2012-08-17 | 2014-02-20 | Seagate Technology Llc | Dynamic formation of garbage collection units in a memory |
| US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
| US9064603B1 (en) | 2012-11-28 | 2015-06-23 | Samsung Electronics Co., Ltd. | Semiconductor memory device and memory system including the same |
| US9501398B2 (en) * | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
| US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
| US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
| US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
| US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
| GB2502858B (en) * | 2013-03-06 | 2014-07-02 | Imagination Tech Ltd | Improved mechanism for copying data in memory |
| US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
| US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
| US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
| US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
| US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
| US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
| US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
| US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
| US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
| US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
| US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
| US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
| US9767044B2 (en) * | 2013-09-24 | 2017-09-19 | Intel Corporation | Secure memory repartitioning |
| US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
| US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
| JP5714681B2 (ja) * | 2013-10-25 | 2015-05-07 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
| US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
| US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
| US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
| US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
| US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
| US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
| US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
| US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
| US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
| CN104851457B (zh) * | 2014-02-18 | 2019-01-08 | 华邦电子股份有限公司 | 半导体存储装置 |
| US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
| US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
| US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
| US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
| US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
| US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
| US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
| US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
| US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
| US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
| US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
| US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
| US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
| US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
| US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
| US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
| US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
| US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
| US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
| US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
| US9875189B2 (en) | 2015-06-12 | 2018-01-23 | Intel Corporation | Supporting secure memory intent |
| US10108355B2 (en) * | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
| US9841918B2 (en) | 2015-12-02 | 2017-12-12 | Samsung Electronics Co., Ltd. | Flash memory device including deduplication, and related methods |
| FR3044818B1 (fr) * | 2015-12-02 | 2018-03-30 | Stmicroelectronics (Rousset) Sas | Procede de gestion d'une ligne defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant |
| US20190095136A1 (en) * | 2016-03-29 | 2019-03-28 | Sony Corporation | Memory control device, storage device, and information processing system |
| US10566040B2 (en) | 2016-07-29 | 2020-02-18 | Micron Technology, Inc. | Variable page size architecture |
| EP3532933B1 (en) | 2016-10-31 | 2022-03-02 | Rambus Inc. | Hybrid memory module |
| US10068663B1 (en) * | 2017-05-30 | 2018-09-04 | Seagate Technology Llc | Data storage device with rewriteable in-place memory |
| KR20190006314A (ko) * | 2017-07-10 | 2019-01-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
| US11176047B2 (en) * | 2017-08-07 | 2021-11-16 | International Business Machines Corporation | Data storage system with physical storage and cache memory |
| WO2019074743A1 (en) | 2017-10-12 | 2019-04-18 | Rambus Inc. | NON-VOLATILE PHYSICAL MEMORY WITH DRAM CACHE MEMORY |
| JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| US12135876B2 (en) | 2018-02-05 | 2024-11-05 | Micron Technology, Inc. | Memory systems having controllers embedded in packages of integrated circuit memory |
| US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
| US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
| US10782908B2 (en) * | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
| US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
| US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
| US10936199B2 (en) * | 2018-07-17 | 2021-03-02 | Silicon Motion, Inc. | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
| KR102559537B1 (ko) * | 2018-11-13 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 데이터 저장 장치 및 스토리지 시스템 |
| US11360704B2 (en) | 2018-12-21 | 2022-06-14 | Micron Technology, Inc. | Multiplexed signal development in a memory device |
| US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
| US11853213B2 (en) | 2021-04-28 | 2023-12-26 | Seagate Technology Llc | Intelligent management of ferroelectric memory in a data storage device |
| US11899590B2 (en) | 2021-06-18 | 2024-02-13 | Seagate Technology Llc | Intelligent cache with read destructive memory cells |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4873664A (en) * | 1987-02-12 | 1989-10-10 | Ramtron Corporation | Self restoring ferroelectric memory |
| US6112287A (en) * | 1993-03-01 | 2000-08-29 | Busless Computers Sarl | Shared memory multiprocessor system using a set of serial links as processors-memory switch |
| JPH0212440A (ja) | 1988-06-30 | 1990-01-17 | Oki Electric Ind Co Ltd | Fifo型キャッシュメモリ付メインメモリ装置 |
| JPH05216775A (ja) | 1991-10-29 | 1993-08-27 | Hitachi Ltd | 半導体記憶装置 |
| KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
| JPH06349286A (ja) | 1993-06-04 | 1994-12-22 | Matsushita Electric Ind Co Ltd | フラッシュメモリ用書き込み制御方法および制御装置 |
| JPH07114499A (ja) | 1993-10-19 | 1995-05-02 | Hitachi Ltd | フラッシュメモリ仮想メモリシステム |
| JPH08171515A (ja) | 1994-12-19 | 1996-07-02 | Nec Corp | ディスクキャッシュにおけるメモリ管理方式 |
| JP3327071B2 (ja) | 1995-10-16 | 2002-09-24 | ソニー株式会社 | 強誘電体記憶装置 |
| US5787445A (en) * | 1996-03-07 | 1998-07-28 | Norris Communications Corporation | Operating system including improved file management for use in devices utilizing flash memory as main memory |
| JP2918531B1 (ja) * | 1998-03-13 | 1999-07-12 | 三菱電機株式会社 | キャッシュメモリ制御装置 |
| JP2000122929A (ja) | 1998-10-13 | 2000-04-28 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
| JP2000276363A (ja) * | 1999-03-26 | 2000-10-06 | Nec Corp | 記憶階層システムにおけるスワッピング処理方法ならびに装置 |
| GB2379538B (en) | 2000-06-23 | 2005-01-12 | Intel Corp | Non-volatile cache |
| JP4059002B2 (ja) * | 2001-06-13 | 2008-03-12 | 株式会社日立製作所 | メモリ装置 |
| US6795907B2 (en) * | 2001-06-28 | 2004-09-21 | Hewlett-Packard Development Company, L.P. | Relocation table for use in memory management |
| WO2003042837A1 (en) * | 2001-11-16 | 2003-05-22 | Renesas Technology Corp. | Semiconductor integrated circuit |
| JP2004078902A (ja) * | 2002-06-19 | 2004-03-11 | Tokyo Electron Device Ltd | 記憶装置、メモリ管理方法及びプログラム |
| JP4067887B2 (ja) * | 2002-06-28 | 2008-03-26 | 富士通株式会社 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
| US20050138296A1 (en) * | 2003-12-18 | 2005-06-23 | Coulson Richard L. | Method and system to alter a cache policy |
| JP4477906B2 (ja) * | 2004-03-12 | 2010-06-09 | 株式会社日立製作所 | ストレージシステム |
| JP2005301591A (ja) * | 2004-04-09 | 2005-10-27 | Toshiba Corp | 不揮発性メモリを備えた装置及びメモリコントロ−ラ |
| US7383388B2 (en) * | 2004-06-17 | 2008-06-03 | International Business Machines Corporation | Method for storing data |
| JP5130646B2 (ja) * | 2005-06-06 | 2013-01-30 | ソニー株式会社 | 記憶装置 |
-
2005
- 2005-06-10 JP JP2005171141A patent/JP4956922B2/ja not_active Expired - Fee Related
- 2005-10-18 US US11/251,867 patent/US8554982B2/en active Active
- 2005-10-26 KR KR1020050101514A patent/KR101189259B1/ko not_active Expired - Lifetime
- 2005-10-27 EP EP05292279A patent/EP1653340B1/en not_active Expired - Lifetime
- 2005-10-27 DE DE602005004226T patent/DE602005004226T2/de not_active Expired - Lifetime
-
2013
- 2013-08-09 US US13/963,454 patent/US8904096B2/en not_active Expired - Lifetime
-
2014
- 2014-10-30 US US14/528,308 patent/US9317424B2/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9189325B2 (en) | 2011-01-25 | 2015-11-17 | Sony Corporation | Memory system and operation method thereof |
| US9916103B2 (en) | 2014-05-07 | 2018-03-13 | Sony Corporation | Memory control device, memory device, and memory control method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006236304A (ja) | 2006-09-07 |
| US20060087893A1 (en) | 2006-04-27 |
| EP1653340A1 (en) | 2006-05-03 |
| DE602005004226T2 (de) | 2009-01-02 |
| EP1653340B1 (en) | 2008-01-09 |
| KR20060052236A (ko) | 2006-05-19 |
| US20130326108A1 (en) | 2013-12-05 |
| US20150058514A1 (en) | 2015-02-26 |
| US9317424B2 (en) | 2016-04-19 |
| US8554982B2 (en) | 2013-10-08 |
| US8904096B2 (en) | 2014-12-02 |
| DE602005004226D1 (de) | 2008-02-21 |
| KR101189259B1 (ko) | 2012-10-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4956922B2 (ja) | 記憶装置 | |
| US9183132B2 (en) | Storage device, computer system, and storage system | |
| US8069297B2 (en) | Storage device, computer system, and storage device access method | |
| JP5130646B2 (ja) | 記憶装置 | |
| US7890695B2 (en) | Storage device, computer system, and data writing method | |
| US20150309927A1 (en) | Hybrid Non-Volatile Memory System | |
| US20100030944A1 (en) | Method and Apparatus for Storing Data in Solid State Memory | |
| JP4961693B2 (ja) | コンピュータシステム | |
| EP3757800B1 (en) | Memory system, computing system, and methods thereof | |
| JP5007485B2 (ja) | 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム | |
| JP5338859B2 (ja) | 記憶装置および情報処理システム | |
| TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
| JP2014194817A (ja) | 記憶装置 | |
| JP2008181203A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
| JP5264459B2 (ja) | 半導体記憶装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080409 |
|
| 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: 20110627 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111013 |
|
| 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: 20120221 |
|
| 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: 20120305 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 4956922 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| 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 |
|
| LAPS | Cancellation because of no payment of annual fees |