JP2007018499A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2007018499A JP2007018499A JP2006115779A JP2006115779A JP2007018499A JP 2007018499 A JP2007018499 A JP 2007018499A JP 2006115779 A JP2006115779 A JP 2006115779A JP 2006115779 A JP2006115779 A JP 2006115779A JP 2007018499 A JP2007018499 A JP 2007018499A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- page
- area
- conversion table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING 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
-
- 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/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0662—Virtualisation aspects
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【解決手段】並列にアクセス可能な2チップのフラッシュメモリ35,36と、フラッシュメモリ35,36から並列にデータを取得し、一時記憶するページレジスタ32と、ページレジスタ32に並列格納されるデータ単位で論理アドレスと物理アドレスとの対照を管理するアドレス変換テーブルが構築されたRAM37を内蔵した制御回路34と、を有し、アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う。
【選択図】図3
Description
その代表例として、NAND型フラッシュメモリが挙げられる。
図1のNAND型フラッシュメモリは、ビット線BL1〜BLnに接続された複数のメモリユニット1−1〜1−nがアレイ状に(縦横)に配列されている。
たとえば、選択用トランジスタ2のゲートが選択ゲート線SL1に接続され、選択用トランジスタ3のゲートが選択ゲート線SL2に接続されている。また、各メモリセルN0〜N15のゲートがワード線WL0〜WL15に接続されている。
特許文献1等にはその一つとしてローカルセルフブースと(Local Self−Boost)と呼ばれる手法を用いた書き込み手順が記載されている。
図1のNAND型フラッシュメモリにおいて、そのような書き込みの例を以下に説明する。
このような書き込み手順を用いると、0Vのワード線WL0,WL2にはさまれ、かつ非選択ビット線に繋がるノードは他のノードから切り離され、ワード線WL1からのカップリングを受けて10V程度まで電位が上昇する。
一方、選択されたメモリセルN1については、隣接したセルトランジスタN0がディプレッション状態の時に限って、ビット線BL1に印加された0VがセルトランジスタN1のチャンネルに伝達され、書き込みが実施される。
すなわち、上のような書き込み手法を用いる場合、書き込みを実施するセルのビット線側の隣接セルは常に消去され、ディプレッション状態に成っている必要がある。そのため、ブロック全体を消去した後、書き込みはメモリセルN15、N14、N13、・・・、N0と順になされることが必須の条件となる。
ISSCC2002予稿集のp106、セッション6.4
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく低下する。たとえば、小さな領域を更新しようとすると、上述のように既存データのコピー操作が必要となり、その書き込み効率は著しく低下する。
その転送速度を、シリアルATA接続の高速ストレージで目標とされる160MB/sにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば16個のメモリアレイを並列動作させる必要がある。
図2において、20は実ページ領域を、21は実消去ブロック領域を、22はメモリ領域を、23はバッファメモリを、25は消去済みブロックをそれぞれ示している。
さらに、通常のファイル記憶装置は、ATA等のインターフェース仕様に従って、たとえば512バイトのセクタ単位でランダムアクセスされる。
その場合、たとえばページP0とP1のみを書き換える要求が頻繁に発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域21全体を消去しなければならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は図2に関連付けると次のようになる。
2.次にメモリ領域22内で、ページP0とP1に相当するデータを更新する。
3.次にフラッシュメモリ上のブロック領域21の消去を実行する。
4.最後に上記消去済の領域21に、更新後のメモリ領域22のブロックデータを全て書き戻す。
具体的には、1ページ分のデータの読み出しおよび書き込みにはそれぞれ200μsを要し、ブロックの消去には2msを要するので、30ms近くを必要とする。
この場合、仮想アドレス構成を用いて消去ブロック単位で論理アドレスと物理アドレスの対応を更新し、アクセス対象とされた論理アドレスに対応する物理ブロックは元の消去ブロック領域21からデータの移動先ブロック領域25に張り替えられる。
しかしこの場合も、有効データを消去ブロック領域21から移動先ブロック領域25に退避させる作業は必要である。またこの際、通常は元のブロック領域21を消去して、そちらを予備ブロックに変える。したがって、結局は従来とほぼ同様の読み出し、書き込み、消去が必要であり、大きなオーバーヘッドが生じることに変わりは無い。
このような事情から、フラッシュメモリを用いた現在の記憶装置は、特に書き込み時においては、ハードディスクをはるかに下回る転送性能しか得られていない。
一般のファイルシステムにおいては、セクタ間の書き込み順序に保証はなされない。したがって、消去ブロック途中から書き込みがなされることがしばしばあるが、その場合、ブロック内におけるそれより下位、すなわち前方のアドレス領域が空いていても、そこにデータは書き込めなくなる。その結果、後でそれらの領域に書き込み要求が出ると、書き換えと同様の処理が必要となり、前述のデータ退避や消去、書き込みを繰り返さざるを得なくなってしまう。
より具体的には、論理アドレスを物理アドレスに対応させるアドレス変換テーブルを用い、書き換えは対照データの物理アドレスを変更し、記憶メディアの空き領域に追記することで実施する。この手法の関連技術としてたとえば特許文献2には、アドレス変換テーブルを用いた追記型記憶システムにおける管理方法の詳細が記載されている。
ただし、これは単独チップを想定したものであり、大容量化に伴ってアドレス変換テーブルが巨大化してしまう問題がある。本発明の記憶装置はそれを解決する。さらに本発明の記憶装置は、近年の大容量に進化したフラッシュメモリに適用可能となるよう、以下のように機能する。
1.前述したページ書き込みの順序制約に従いつつ、追記型記憶システムを十分な信頼性で機能する。
2.大容量の不揮発性メモリは内部に欠陥を含むことが多く、その対策が要求される。特にフラッシュメモリでは、一つの欠陥が消去ブロック全体に悪影響を与えるので、書き込み単位と欠陥管理の単位が異なる場合が多い。本記憶装置は、このような欠陥管理を上記システムと両立させている。
3.追記型のデータ更新では、旧データの記憶領域はただちに消去されず、無効化される。フラッシュメモリにおいては、そのような無効化領域を空き領域に回復させる手段が必要であり、本記憶装置は、その回復処理を上述の制約のもとで適切に行う。
本発明によれば、ブロック単位の消去や、ブロック内のデータ書き込み順序の制約に伴う転送速度の悪化や書き込み劣化の発生を、大幅に低減することが可能である。
本発明によれば、フラッシュメモリを記憶メディアとして使用しつつ、実使用上常態的に高速な書き換えを実現することができる。その消去回数も減少させることができ、書き換え疲労を低減することで、信頼性の高い書き換えが可能である。
さらにそのような性能向上を得つつ、不良ブロックの置換等も機動的に実施でき、フラッシュメモリにおいて無効化された領域の回復も適切に実施でき、また、電源瞬断等でアドレス変換テーブルが破壊された場合でも、齟齬なく再構築することが可能である。
ページバッファ32は、アクセスされたページデータを内部データバス33を介して一時記憶するものであり、外部とのインターフェース回路31に接続されている。
転送制御回路34は、2つのチップのフラッシュメモリ35,36とページバッファ32間の転送を管理する。転送制御回路34は、RAM37を内蔵しており、内蔵されたRAM37には図4に示すようなアドレス変換テーブル38が構築されている。
この物理アドレスをもとにメモリチップであるNAND型フラッシュメモリ35,36が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページデータ39,40が読み出され、ページバッファ32に格納される。
インターフェース回路31はページバッファ32のページデータの中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
更新後のページデータは、フラッシュメモリ35,36に書き戻されるが、その際各々の空き領域41,42に書き込まれる。
さらに、ページテーブルの論理アドレス”0x5500”に対応する物理アドレスは、空き領域41,42のアドレス”0x0280”に更新される。
このように更新されたデータは、フラッシュメモリ上の適当な空き領域に、追記の形で書き込まれる。ランダムなページが更新されても、論理アドレスから物理アドレスにリマッピングすることで、それらは消去済みブロック内の下位アドレスから順次連続に書き込んで行くことが可能である。
すなわち、フラッシュメモリの高並列化と、ページ単位のアドレス変換による追記型書き込みは、両者を組み合わせることで互いの弱点を補い合う。そして特にメモリセルの書き込み時間が律速する書き込み工程においては、並列度に比例して転送速度は向上する。
たとえば、二つのメモリチップは必ずしも全く同時に読み出しや書き込みを開始する必要なない。各メモリへの書き込み動作はページバッファからメモリチップへのデータ転送工程と、メモリチップ内での書き込み工程の二つの処理(作業)を含むが、たとえば16ビットのバスを両チップで共有すれば、転送は個々に行わざるを得ない。その場合、ページバッファから片側のメモリチップにデータを転送している間に、もう片側へメモリチップ内で書き込みをスタートしても良いし、両者への転送を順次行った後に、書き込みを同時スタートしても良い。
このように、各々のチップの動作タイミングをずらしながら両者を並列動作させる手法は一般的に見られるものであり、そのようなケースでも本発明は問題なく適用できる。
また、たとえば、1チップが2バンクにより構成され、異なるメモリアレイから同時に読み出されたデータ、または異なるメモリアレイに同時に書き込まれたデータが一つの実効ページを構成する場合でも、同様の効果を得ることができる。
アドレス変換テーブルが消失もしくは欠落した場合、メモリへのアクセス自体が全くできなくなり、全データが破壊されたのと同様の致命的自体に陥るので、その保護は極めて重要である。
ここで論理ページ”0x5500”が更新され、元のページデータ39bが更新されて、更新後データが空き領域41bに書き込まれたとする。この際、ページデータ39bの予備領域43bには既に論理ページアドレス”0x5500”が記載されており、空き領域41bの予備領域45bにも同じ論理アドレス”0x5500”が記載されることになる。
たとえば、更新時のタイムスタンプか、または論理アドレスに対応した累計更新回数、を記載しておく。
なお、累計更新回数に関しては、たとえば全論理アドレスにおける更新の累計、あるいは分割した論理アドレスごとの更新の累計を保持するカウンタをメモリ上に設けておき、各ページデータの書き込み時に対応するカウンタ値をインクリメントし、その結果を上記予備領域に記載すれば良い。
また、ブロック内のページ書き込み順序が規定されている場合には、同一ブロック内の各ページの新旧は一意的に決まるので、上記カウンタは書き込み先ブロックが変わった時のみインクリメントし、それを累計更新回数としても良い。
アドレス変換テーブルの再構築時には、その履歴を参照に最も新しい論理アドレスと物理アドレスの対応を、テーブルに反映させる。
フラッシュメモリ35bの物理アドレスをスキャンしてページデータを読み出し、論理アドレスを取得するごとに、論理アドレスと物理アドレスの対応をアドレス変換テーブル38bに反映する。前述の例に従えば、このとき、たとえばフラッシュメモリ35bの”0x00B0”のページを読み出すと、論理アドレス”0x5500”が取得されるので、まず”0x5500”の論理アドレスに対応する物理アドレスのフィールド47bに0x00B0”が記載される。
さらに順次スキャンを続け、”0x0280”のページを読み出すと、同じ論理アドレス”0x5500”が取得されるのが、既に”0x5500”に対応した物理アドレスフィールド47bには”0x00B0”が書き込まれている。このようにして物理アドレスの重複が検出されると、予備テーブル46b上に記憶領域48bが確保され、物理アドレスフィールド47bの値は予備テーブル46bにおける記憶領域48bのインデックスに書き換えられる。
さらに順次スキャンを続け、”0x0280”のページを読み出すと、同じ論理アドレス”0x5500”が取得され、同様に記憶領域48bへのインデックスが取得される。ここに記載されている履歴データを自らの履歴データと比較して、自らの履歴の方が新しければ、物理アドレスと履歴データを書き換える。
こうして二度目のスキャンが終了すれば、予備テーブル46bには最新の物理アドレスが格納されることになる。その後アドレス変換テーブル38bを上からスキャンして、物理アドレスのフィールドに予備テーブル46bへのインデックスがあれば、その値をインデックス先に格納された物理アドレスに入れ替える。
以上の過程を経て、完全なアドレス変換テーブルが再構築される。このようなやり方は、物理アドレスに重複が生じた論理ページアドレスに対してのみ履歴データ格納用のメモリが確保されるので、アドレス変換テーブルに関連したRAMの使用量を減らすことができる。
したがって、欠陥は通常消去ブロックの単位で管理され、欠陥セルを含む消去ブロックは予備ブロックに置換される。これらの置換はエラー訂正時に欠陥を検出し、出荷後動的になされることもある。また、同時にこのようなブロック管理は消去回数の平均化等にも使用され、書き換え回数の多いブロックと少ないブロックでデータを入れ替える等の対策がとられることもある。
読み出しの際、たとえば外部から”0x5500C”のセクタドレスが入力されると、転送制御回路34cは上位のページアドレス”0x5500”を受けて内蔵RAM37cにアクセスし、アドレス変換テーブル38cから上記論理ページアドレスLPAに対応する物理ページアドレスPPA”0x0180”を取得する。
この物理アドレスのうち、上位の”0x01”は消去ブロックに対応するアドレスであり、この値はアドレス変換テーブル51cによって再度変換され、物理ブロックアドレスPBA”0x70”が取得される。
実際のフラッシュメモリ35cからは、アドレス変換テーブル38cから得られた下位の物理ページアドレス”0x80”と、アドレス変換テーブル51cから得られた物理ブロックアドレス”0x70”が合成され、メモリ上の物理アドレス”0x7080”に相当するページ領域39cがアクセスされ、ページバッファ32cに格納される。インターフェース回路31cはその中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
たとえば、論理アドレスLBA”0x40”において、対応する物理アドレスPBA”0x71”のブロックに適当な空き領域41cがあり、そのメモリ上のページアドレスは”0x71F0”であったとする。このときページデータは空き領域41cに書き込まれ、さらにページテーブルの論理アドレスLPA”0x5500”に対応する物理アドレス(PPA)は”0x40F0”に更新される。
読み出しの際、たとえば外部から”0x5500C”のセクタドレスが入力されると、転送制御回路34dは上位のページアドレス” 0x5500”を受けて内蔵RAM37dにアクセスし、アドレス変換テーブル38dから上記論理ページアドレスLPAに対応する物理ページアドレスPPA”0x0180”を取得する。この物理アドレスのうち、上位の”0x01”は消去ブロックに対応するアドレスであり、この値はアドレス変換テーブル51dによって再度変換され、メモリチップであるフラッシュメモリ35dに対する物理ブロックアドレスPBA0”0x70”およびフラッシュメモリ36dに対する物理ブロックアドレスPBA1”0x01”が取得される。
実際のフラッシュメモリ35dに対しては、アドレス変換テーブル38dから得られた下位の物理ページアドレス”0x80”と、アドレス変換テーブル51dのPBA0フィールドから得られた物理ブロックアドレス”0x70”が合成され、メモリ上の物理アドレス”0x7080”に相当するページ領域39dがアクセスされる。フラッシュメモリ36dに対しては、アドレス変換テーブル38dから得られた下位の物理ページアドレス”0x80”と、アドレス変換テーブル51dのPBA1フィールドから得られた物理ブロックアドレス”0x01”が合成され、メモリ上の物理アドレス”0x0180”に相当するページ領域40dがアクセスされる。両者から読み出されたページデータはページバッファ32dに一括格納される。インターフェース回路31dはその中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
たとえば、論理アドレスLBA”0x40”に対応して、フラッシュメモリ35d上の物理アドレスPBA0”0x71”のブロックに空き領域41dが、フラッシュメモリ36d上の物理アドレスPBA1”0x7C”のブロックに空き領域42dがあり、そのメモリ上のページアドレスはそれぞれ”0x71F0”および”0x7CF0”であったとする。このときページデータは空き領域41d,42dに書き込まれ、さらにページテーブル38dの論理アドレスLPA”0x5500”に対応する物理アドレスPPAは”0x40F0”に更新される。
このように、本実施形態における仮想アドレスの階層化は、追記型の記憶装置において、チップごとに独立した複雑な欠陥管理も可能にする。
これに対して使用RAM容量を圧縮したアドレス変換の例を示す。ハードウエア構成は図8と同様とする。
本例では、各論理ブロックアドレスLBAに対しては、予め同じ値の物理ブロックアドレス”0x00”〜”0x6F”が暗黙に割り振られている。一方、物理ブロックアドレス”0x70〜0x7F”の領域はスペアブロックに充てられる。
ブロックテーブル”51g”においては1ビットの欠陥フラグDEFと、スペアテーブルのインデックスを格納するための5ビットのフィールドSIDが設けられているのみである。一方スペアテーブル52gには、各スペアインデックスSIDに対応して、フラッシュチップごとの欠陥フラグDEF0、DEF1とスペアオフセットSOF0、SOF1が格納されている。
この物理アドレスのうち、上位の”0x01”は消去ブロックに対応する論理アドレスである。テーブル51gにおいて、ブロックアドレスLBA”0x01”には欠陥フラグが立っており、スペアインデックスフィールドSIDには”10”が記録されている。そこでスペアテーブル52gを参照すれば、チップ35dには欠陥がなく、チップ36dではスペアオフセットSOF1”0x4”に対応するスペアブロックに置換すべきことが解る。
したがって、変換後の物理ブロックアドレスはチップ35dにおいては論理アドレスと同じ”0x01”、チップ36dに対してはスペア群から”0x74”と判定される。それらはページの下位アドレス”80”と合成されて、各々のフラッシュメモリにおける対応ページ”0x0180”および”0x7480”がアクセスされる。
テーブル51iにおいて、ブロックアドレスLBA”0x01”には欠陥フラグが立っており、スペアインデックスフィールドSIDには”0x00”が記録されている。そこでスペアテーブル52iを参照すれば、チップ”0x0”および”0x2”において、共にスペアオフセットSOF”0x0”に対応するスペアブロックに置換すべきことが解る。
また、テーブル51iにおいて、ブロックアドレスLBA”0x6E”には欠陥フラグが立っており、スペアインデックスフィールドSIDには”0x1F”が記録されている。そこでスペアテーブル52iを参照すれば、チップ”0x1”、”0x2”および”0x3”において、それぞれスペアオフセットSOF”0x6”、”0xA”および”0x4”に対応するスペアブロックに置換すべきことが解る。
本例では、スペアテーブル52iのSIDは欠陥の総数をカバーするので、範囲は0x00〜0x3Fで実施例A1と同様に増加する。しかし行方向のビット数増加は大幅に低減でき、スペアテーブルに要するRAM容量を圧縮できる。
さらに,前回書き込んだページアドレスを示す書き込みポインタがレジスタ53hに格納されている。通常書き込みは、ポインタをインクリメントする形で実施される。すなわち,同一ブロック内では、ページアドレス”0x00”から”0xFF”に向けて順番に書き込まれる。
2.次のアドレス”0x02”のブロックはDEFが”1”であり、欠陥ブロックである。したがってスキップされる。
3.次のアドレス”0x03”のブロックはUSDが”1”であり、使用済みブロックである。従ってスキップされる。
4.次のアドレス”0x04”のブロックは消去済みの良品ブロックである。したがって
レジスタ53hのポインタ値はその先頭ページアドレス”0x0400”に設定され、更新後データはそこに書き込まれる。
5.アドレステーブル38hの論理ページアドレス”0x5500”に対応する物理アドレスフィールドが、”0x0400”に更新される。
したがって、アドレス変換テーブル38hにおける物理ページのアドレスフィールドには欠陥ブロック内のページは含まれる事は無く、ブロックアドレスを変換する必要が無い。
この際無効化された領域66,67,68はコピー対象とされず、上記有効なページデータのみが予備ブロック62に上詰でコピーされている。このような選択的コピー操作は、図2に示した一般的なコピー操作とは著しく異なり、ブロック内の各ページの相対位置の変化を伴っている。
・現在テーブル(51e)を用いてアクセスされている論理ブロックアドレス”0x01”。
・コピーデータの新規格納先である領域73(図14)の物理ページアドレス”0x04”。
・予備領域70(図14)に格納された論理ページアドレス”0x5500”。
本実施形態によれば、ブロック単位の消去や、ブロック内のデータ書き込み順序の制約に伴う転送速度の悪化や書き込み劣化の発生を、大幅に低減することが可能である。
さらにそのような性能向上を得つつ、不良ブロックの置換等も機動的に実施でき、フラッシュメモリにおいて無効化された領域の回復も適切に実施できる。
第5の実施形態に係る記憶装置70の構成は、基本的に第一の実施形態と同様である。但し制御回路装置74に内蔵されたRAM77には、アドレス変換テーブル78に加えて、ページ状態の管理テーブル86が構築されている。
ページバッファ72は、アクセスされたページ領域を一時記憶するバッファであり、外部とのインターフェース回路71に接続されている。
制御回路74)は、メモリチップであるフラッシュメモリ75,76とページバッファ72およびインターフェース回路71の間のデータのやりとりを管理するコントローラであ、処理ユニットである内蔵CPU85によって制御される。同じく内蔵されたRAM77には、CPU85を制御するためのプログラム領域やワークエリアが確保されるとともに、アドレス変換テーブル78、およびページ状態の管理テーブル86が構築されている。
この物理ページアドレスPA中、上位の”0x00”はメモリチップのフラッシュメモリ75,76内の消去ブロック83,84のアドレスである。下位”0xB0”は各消去ブロック内のページ領域79,80のアドレスである。
この物理アドレスPAをもとにメモリチップのフラッシュメモリ75,76)が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域79,80のデータが読み出され、ページバッファ72に格納される。インターフェース回路71はその中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
このページ領域の物理ページアドレスは”0x0280”であり、すなわち消去ブロック”0x02”内の”0x80”のページに相当する。またこの処理の前まで、その領域はアドレス変換テーブル78のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。
更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル78の論理アドレス”0x5500”に対応する物理アドレスフィールドには、空き領域81,82の物理ページアドレス”0x0280”が登録される。
本テーブルは(BA:Block Address)で表現される各消去ブロックに格納された各々のページの状態を2ビットのフラグ列で記録している。”0”は空き領域であり、”1”は書き込みが行なわれた有効領域、”2”はデータが更新され、無効化された無効領域を示す。
フラッシュへの書き込み要求があれば、その上位ページからこのテーブルのフラグをスキャンして空きページ領域を検索する。ブロック全ての空き領域が使用されていると、ポインタをインクリメントし、次は”0x03”のブロックから空きページ領域を探す。
このようにしてポインタをブロックアドレスの先頭から末尾にかけて循環させていけば、フラッシュメモリ全域に対して均一な書き込みが実施できる。
一方、並列化の弱点である消去回数の増加や、書き換え疲労が加速はページ単位のアドレス変換を用いた追記型の書き込みで大幅に緩和される。
しかしそれらにはデータが書き込まれており、そのままでは空き領域として使用することもできない。上述のような書き換えを何度も繰り返すと、多くの無効ページ領域が発生する。それらは再度空き領域として使用できるよう、消去して回復させる必要がある。またその場合、消去ブロック83,84に残された有効データは退避させねばならない。
図18(A)〜(C)には、消去ブロック83,84内部の有効データを退避し、無効ページ領域を実質的に回復させる、具体的手順<1>、<2>、<3>を例示している。
図17の状態からさらに追記による書き換えが進行し、消去ブロック83,84には、一度データが書き込まれた後、更新によって無効化されたページ領域群94,96が、有効なページ領域群93,95,97と共存しているとする。ここで有効ページ領域のデータを残しつつ、無効化領域を空き領域に回復させる必要がある。
一方、ブロック91,92は現在追記用の空き領域として使用している消去ブロックであり、ページ領域102まで書き込みが成されている。
有効なページ領域群93,95,97を消去ブロック91,92内の空き領域98,99,100に上詰めにして順番にコピーしていく。この際たとえば図16のページバッファ72に消去ブロック83,84から順次1ページ領域ずつを読み出し、消去ブロック91,92に書き込むとともに、アドレス変換テーブル78を更新する。すなわち各々のページ領域の論理アドレスに対応する物理アドレスフィールドに、コピー先の物理ページアドレスを登録していく。この際、各々のページ領域の論理アドレスは、各ページ領域にデータが書き込まれた際にその予備領域に記載しておき、コピー時にページバッファ72に読み出した時点で取得する。
この操作は、すなわち有効ページ領域群93,95,97を追記方式で書き換える作業(処理)に等しい。あるいは、予め予備領域を先行してページバッファ72に読み出し、まず論理アドレスを取得した後に、その論理アドレスに対してページ更新処理を実施すれば、通常のページ更新処理と全く同じプログラムで、コピー作業とアドレス変換テーブル78の更新作業が自動的に実際される。
実際には書き換えずコピーするのみであるが、この作業によって消去ブロック83および84内の全てのページは無効化され、有効ページ領域のデータは消去ブロック91,92に実質的に退避せしめられる。
消去ブロック83,84を消去する。これによってその内部は全て空き領域となり、後の追記に使用することが可能になる。これをもって無効領域94,96は実効的に回復される。
この場合、制御が容易になるばかりではなく、フラッシュメモリへの書き込みの均一化等、書き込み時の信頼性向上の為の各種工夫を回復処理にも適用することができ、記憶装置の総合的な信頼性を向上させることができる。
たとえば図16におけるページバッファ72は、制御回路74内部のRAM77上に構築しても良い。そのような場合にはインターフェース回路71、フラッシュメモリ75,76および制御回路74は共通の内部データバス73で接続された構成となる。
またはページバッファ72とフラッシュメモリ75,76との間にECCによるエラー訂正回路を設けて、ページバッファからフラッシュメモリへのページデータ書き込み時には符号化を実施してパリティビットを追加し、フラッシュメモリからページバッファへのページデータ読み出し時には復号化を行なっても良い。そのような装置構成の違いに関わらず、本発明を適用することは可能である。
または先に説明した第1〜第4の実施形態で述べたように、アドレス変換テーブル78,121に従ってページ単位のアドレス変換を実施した後、フラッシュメモリ内の欠陥ブロックをスキップするために、さらにブロックレベルでのアドレス変換を挿入しても良い。このような場合でも、前述した例と同様の制御で、本発明は問題なく適用することが可能である。
図20(A),(B)は、第6の実施形態に係る制御回路のアドレス変換テーブルおよびページ状態の管理テーブルの構成例を示す図である。
ページバッファ112はアクセスされたページ領域を一時記憶するバッファであり、外部とのインターフェース回路111に第2の内部データバス118を介して接続されている。さらに第2の内部データバス118にはキャッシュメモリ117が接続されている。
制御回路123はフラッシュメモリ115,116とページバッファ112の間の転送を制御する。制御回路123にはフラッシュメモリ内の欠陥ブロックがアクセスされぬよう、その内蔵RAM124上に、ブロック単位のアドレス変換でそれらをスキップさせるためのアドレス変換テーブル126が構築されている。
さらに制御回路123にはECC回路125が搭載されており、ページバッファ112からフラッシュメモリ115,116にデータが書き込まれる際には符号化によるパリティビットの追加を行い、フラッシュメモリ115,116からページバッファ112にデータが読み出される際には復号化によるエラー訂正を実施する。
制御回路114はページバッファ112、キャッシュメモリ117およびインターフェース回路111の間のデータのやりとりを管理するコントローラであり、内蔵CPU119によって制御される。同じく内蔵されたRAM120には、CPU119を制御するためのプログラム領域やワークエリアが確保されるとともに、アドレス変換テーブル121が構築されている。
さらに制御回路114には、CPUの制御無しでキャッシュメモリ117とインターフェース回路111間のデータ転送を制御する制御回路122が搭載されている。
なお本図面においては制御線の記載は省略されている。
これにより外部から入力された論理アドレスは、それを元にフラッシュメモリ115,116へのアクセスが成される場合、アドレス変換テーブル121と126により二重の変換を受ける。さらに入出力データにもECC符号化、復号化の変換が施される。
具体的な動作を以下に述べる。
この物理ページアドレスPA中、上位の”0x00”は消去ブロックのアドレスを示すが、さらに制御回路123に入力されると、この部分は論理ブロックアドレス(LBA:LOGICAL BLOCK ADDRESS)として扱われ、アドレス変換テーブル126から物理ブロックアドレス(PBA:PHISICAL BLOCK ADDRESS)”0x01”が取得される。これがメモリチップのフラッシュメモリ115,116内の消去ブロック127,128のアドレスである。
この物理アドレスをもとにフラッシュメモリ115,116が共にアクセスされ、各々からページアドレス”0x01B0”に格納されたページ領域1271,1281のデータが読み出され、さらにECC復号化が施されて、ページバッファ112に格納される。
更新後のページデータは、フラッシュメモリ115,116に書き戻されるが、その際読み出し元のページ領域1271,1281が書き換えられるのでは無く、アドレス変換テーブル121のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページに書き込まれる。そのような空きページは制御回路114側で管理されており、たとえば図16のような管理テーブル86が使用されて、物理ページアドレス” 0x0280”が選択される。
このうち上位の”0x02”は制御回路123に入力されると、アドレス変換テーブル126から”0x03”に変換され、合成されたアドレス”0x0380”から、メモリチップのフラッシュメモリ115,116のページ領域129a,129bに、ページバッファ112の更新済みデータが書き込み転送される。この際データには、ECC符号化によるパリティビットが追加される。
その結果制御回路114は、第5の実施形態と全く同様のアルゴリズムで無効化領域の回復処理を実施することが可能となる。
しかし、このようなアドレス変換テーブルの管理と回復処理を、ホスト側の制御で実施することも可能である。そのようなコンピュータシステムを第7の実施形態として、図21に示す。
ページバッファ138はアクセスされたページ領域を一時記憶するバッファであり、ブリッジ回路134に内蔵されている。
ブリッジ回路134はCPU131から各種コマンドを受け取り、フラッシュメモリ135,136とCPU131またはシステムメモリ132との間のデータのやり取りを、ページバッファ138を用いて媒介する。
ブリッジ回路134が受け取るコマンドは、たとえばフラッシュメモリ135,136の所定のページへのアクセスの他、同フラッシュメモリの所定ブロックの消去、および所定ページの指定アドレスへのコピー、フラッシュメモリのリセット等である。
この物理ページアドレスPA中、上位の”0x00”はメモリチップのフラッシュメモリ135,136内の消去ブロック141,142のアドレスである。下位”0xB0”は各消去ブロック内のページ領域143,144のアドレスである。
この物理アドレスをもとに、ブリッジ回路134を介してメモリチップのフラッシュメモリ135,136が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域143,144のデータが読み出され、ページバッファ138に格納される。
ブリッジ回路134はその中から、下位アドレス”0xC”に相当するセクタを選択し、CPU131またはシステムメモリ132に出力する。
更新後のページデータは、フラッシュメモリ135,136に書き戻されるが、その際各々の空き領域145,146に書き込まれる。このページ領域の物理ページアドレスは”0x0280”であり、即ち消去ブロック”0x02”内の”0x80”のページに相当する。またこの処理の前まで、その領域はアドレス変換テーブル140のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。
更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル140の論理アドレス”0x5500”に対応する物理アドレスフィールドには、空き領域145,146の物理ページアドレス”0x0280”が登録される。
しかしそれらにはデータが書き込まれており、そのままでは空き領域として使用することもできない。上述のような書き換えを何度も繰り返すと、多くの無効ページ領域が発生する。それらは再度空き領域として使用できるよう、消去して回復させる必要がある。またその場合、消去ブロック141,142に残された有効データは退避させねばならない。
たとえば上記回復作業における有効ページデータのコピーは、ホストCPU131からのコピーコマンドに応じて、ブリッジ回路134が所定のページをコピー元からページバッファ138に読み出してコピー先に書き込む。または所定のブロックを消去する。この際システムバス133は使用されないので、もし必要があれば、CPU131は上記コマンドを送信した後は別の処理(作業)を並行して実施することも可能である。
Claims (14)
- 並列にアクセス可能な複数のメモリを含むフラッシュメモリ部と、
上記複数のメモリの2つ以上から並列にデータを取得し、一時記憶するページレジスタと、
上記ページレジスタに並列格納されるデータ単位で論理アドレスと物理アドレスとの対照を管理するアドレス変換テーブルと、を有し、
上記アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う
記憶装置。 - 上記ページレジスタに格納されるデータ単位は複数のセクタを含み、当該記憶装置はセクタ単位でのアクセスが可能である
請求項1記載の記憶装置。 - 論理アドレスと物理アドレスの対照を示すアドレス変換テーブルと、
上記アドレス変換テーブルに従ってデータを格納し、当該アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う機能と、を有し、
上記データは予備領域を有し、当該予備領域にはデータの論理アドレスと、記憶メディア上における同データの更新履歴を示す情報が記載されている
記憶装置。 - 上記更新履歴は、データの上記記憶メディアへの書き込み時のタイムスタンプを含む
請求項3記載の記憶装置。 - 上記更新履歴は、データの上記記憶メディア上における更新回数を含む
請求項3記載の記憶装置。 - 上記記憶メディア上をスキャンして、上記予備領域の論理アドレスと更新履歴をもとに、アドレステーブルを再構築する機能を有する
請求項3記載の記憶装置。 - 論理アドレスと物理アドレスの対照を示すアドレス変換テーブルと、
上記アドレス変換テーブルに従ってデータを格納し、当該アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う機能と、
カウンタと、を有し、
メディア全域または複数データを含む特定領域に対して上記追記が実施されるごとにカウンタ値が更新され、当該カウンタ値または当該カウンタ値と一意的に対応する値が、上記データの予備領域にデータと同時に書き込まれる
記憶装置。 - 論理アドレスと物理アドレスの対照を示すアドレス変換テーブルと、
上記アドレス変換テーブルに従ってデータを格納し、当該アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う機能と、を有し、
装置に入力された論理アドレスは、当該アドレス変換テーブルで第1の物理アドレスに変換され、さらに記憶メディア上の欠陥領域を非選択にするアドレス変換機能を有し、
上記第1の物理アドレスの少なくとも一部ビットには、上記アドレス変換機能で第2の物理アドレスに変換され、
記憶メディアは上記第2の物理アドレスと、上記第1の物理アドレスの残りのビットを用いてアクセスされる
記憶装置。 - 上記第2のアドレス変換は、領域ごとに複数の変換セットに分割されている
請求項8記載の記憶装置。 - 上記記憶メディアはフラッシュメモリであり、上記アドレス変換機能は、欠陥の存在する消去ブロックのアドレスを、正常な消去ブロックのアドレスに振り替える機能を含む
請求項8記載の記憶装置。 - 論理アドレスと物理アドレスの対照を示すアドレス変換テーブルと、
上記アドレス変換テーブルに従ってデータを格納し、当該アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う機能と、
上記記憶メディアにおける欠陥領域と未記入領域の所在を示すテーブルと、
上記追記先の領域として、欠陥領域以外の未記入領域を選択する機能と、を有する
記憶装置。 - 上記記憶メディアはフラッシュメモリであり、上記追記先の領域には欠陥の存在する消去ブロックを除いた領域が選択される
請求項11記載の記憶装置。 - 記憶メディアとしてのフラッシュメモリと、
論理アドレスと物理アドレスの対照を示すアドレス変換テーブルに従ってデータを格納し、当該アドレス変換テーブルの更新と記憶メディアへの追記によってデータ書き換えを行う機能と、を有し、
上記書き換えによって無効化された領域を含む第一の消去ブロックにおいて、残存している有効データを選択的に消去済の第二の消去ブロックに順次コピーし、しかる後に上記第一のブロックを消去することで、該無効化領域に新規書き込みができるよう回復処理を行う機能を有する
記憶装置。 - 各データは予備領域を有し、当該予備領域にはデータの論理アドレスが記載されており、上記有効データのコピー時には当該論理アドレス値に従ってアドレス変換テーブルを更新する
請求項13記載の記憶装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006115779A JP5130646B2 (ja) | 2005-06-06 | 2006-04-19 | 記憶装置 |
| KR1020060049916A KR20060127760A (ko) | 2005-06-06 | 2006-06-02 | 기억장치 |
| US11/446,367 US8285916B2 (en) | 2005-06-06 | 2006-06-05 | Storage device |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005165234 | 2005-06-06 | ||
| JP2005165234 | 2005-06-06 | ||
| JP2006115779A JP5130646B2 (ja) | 2005-06-06 | 2006-04-19 | 記憶装置 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012135809A Division JP5617873B2 (ja) | 2005-06-06 | 2012-06-15 | 記憶装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007018499A true JP2007018499A (ja) | 2007-01-25 |
| JP5130646B2 JP5130646B2 (ja) | 2013-01-30 |
Family
ID=37573203
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006115779A Expired - Fee Related JP5130646B2 (ja) | 2005-06-06 | 2006-04-19 | 記憶装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8285916B2 (ja) |
| JP (1) | JP5130646B2 (ja) |
| KR (1) | KR20060127760A (ja) |
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008181204A (ja) * | 2007-01-23 | 2008-08-07 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
| JP2009015978A (ja) * | 2007-07-05 | 2009-01-22 | Toshiba Corp | 半導体記憶装置及びメモリシステム |
| JP2010086009A (ja) * | 2008-09-29 | 2010-04-15 | Hitachi Ltd | 記憶装置およびメモリ制御方法 |
| JP2010152517A (ja) * | 2008-12-24 | 2010-07-08 | Toshiba Corp | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
| JP2010186477A (ja) * | 2009-02-10 | 2010-08-26 | Samsung Electronics Co Ltd | メモリシステム及びその磨耗度管理方法 |
| JP2011510427A (ja) * | 2008-01-17 | 2011-03-31 | モーセッド・テクノロジーズ・インコーポレイテッド | 不揮発性半導体記憶装置 |
| US8489852B2 (en) | 2009-07-06 | 2013-07-16 | Samsung Electronics Co., Ltd. | Method and system for manipulating data |
| US8626987B2 (en) | 2009-10-27 | 2014-01-07 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
| US8700881B2 (en) | 2009-04-22 | 2014-04-15 | Samsung Electronics Co., Ltd. | Controller, data storage device and data storage system having the controller, and data processing method |
| JP2014241185A (ja) * | 2007-03-07 | 2014-12-25 | コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. | フラッシュメモリ向け部分ブロック消去アーキテクチャ |
| US9710378B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
| CN109669883A (zh) * | 2017-10-13 | 2019-04-23 | 质子世界国际公司 | 用于闪存的逻辑存储单元 |
| JP2021007059A (ja) * | 2020-10-23 | 2021-01-21 | キオクシア株式会社 | メモリシステム |
| JP2021068129A (ja) * | 2019-10-21 | 2021-04-30 | Tdk株式会社 | メモリコントローラ及びフラッシュメモリシステム |
Families Citing this family (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0742225Y2 (ja) | 1986-08-28 | 1995-09-27 | 株式会社三ツ葉電機製作所 | 車両用発電機のレクチフアイア構造 |
| US7769944B2 (en) * | 2004-10-01 | 2010-08-03 | Supertalent Electronics, Inc. | Partial-write-collector algorithm for multi level cell (MLC) flash |
| JP4956922B2 (ja) * | 2004-10-27 | 2012-06-20 | ソニー株式会社 | 記憶装置 |
| KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
| KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
| JP2008300020A (ja) * | 2007-06-04 | 2008-12-11 | Toshiba Corp | 再生装置 |
| US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
| TWI404076B (zh) * | 2008-01-07 | 2013-08-01 | Powerchip Technology Corp | 記憶體裝置以及資料讀取方法 |
| US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
| US7719876B2 (en) | 2008-07-31 | 2010-05-18 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
| CN101419838B (zh) * | 2008-09-12 | 2011-01-19 | 中兴通讯股份有限公司 | 一种提高flash使用寿命的方法 |
| US8725927B2 (en) * | 2008-10-15 | 2014-05-13 | Micron Technology, Inc. | Hot memory block table in a solid state storage device |
| JP4551958B2 (ja) * | 2008-12-22 | 2010-09-29 | 株式会社東芝 | 半導体記憶装置および半導体記憶装置の制御方法 |
| KR101005120B1 (ko) * | 2009-02-04 | 2011-01-04 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 프로그램 방법 |
| CN101706788B (zh) * | 2009-11-25 | 2012-11-14 | 惠州Tcl移动通信有限公司 | 一种嵌入式文件系统的跨区访问方法 |
| US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
| US8223525B2 (en) * | 2009-12-15 | 2012-07-17 | Sandisk 3D Llc | Page register outside array and sense amplifier interface |
| US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
| JP5377526B2 (ja) | 2011-01-13 | 2013-12-25 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| US9007836B2 (en) * | 2011-01-13 | 2015-04-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
| WO2012123773A1 (en) * | 2011-03-14 | 2012-09-20 | Canon Kabushiki Kaisha | A method and device for generating media fragment requests for requesting fragments of an encoded media stream |
| KR101537973B1 (ko) * | 2011-07-27 | 2015-07-20 | 엘에스아이 코포레이션 | 보안 스토리지 하이잭킹 보호를 위한 기법들 |
| US8806111B2 (en) * | 2011-12-20 | 2014-08-12 | Fusion-Io, Inc. | Apparatus, system, and method for backing data of a non-volatile storage device using a backing store |
| US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
| JP5674634B2 (ja) * | 2011-12-28 | 2015-02-25 | 株式会社東芝 | コントローラ、記憶装置およびプログラム |
| US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
| US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
| US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
| US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
| US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
| US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
| US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
| KR101532840B1 (ko) * | 2013-10-17 | 2015-06-30 | 서울대학교산학협력단 | 거친 쓰기 및 미세 쓰기를 이용하여 데이터 프로그램을 수행하는 방법 및 장치 |
| CN103645990B (zh) * | 2013-12-24 | 2016-05-25 | 飞天诚信科技股份有限公司 | 一种基于大页面Flash的数据更新和读取方法 |
| US9582205B2 (en) * | 2014-04-17 | 2017-02-28 | Sandisk Technologies Llc | Protection scheme with dual programming of a memory system |
| US10120753B2 (en) | 2015-05-26 | 2018-11-06 | Micron Technology, Inc. | Methods and apparatuses for error correction |
| US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
| US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
| US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
| US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
| US9841918B2 (en) | 2015-12-02 | 2017-12-12 | Samsung Electronics Co., Ltd. | Flash memory device including deduplication, and related methods |
| US10031803B2 (en) | 2015-12-14 | 2018-07-24 | International Business Machines Corporation | Distributed coding for multiple dimensional parities |
| KR102233400B1 (ko) | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| US10592414B2 (en) * | 2017-07-14 | 2020-03-17 | International Business Machines Corporation | Filtering of redundantly scheduled write passes |
| JP7010740B2 (ja) | 2018-03-16 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| JP2020154603A (ja) | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステム |
| US10991433B2 (en) * | 2019-09-03 | 2021-04-27 | Silicon Storage Technology, Inc. | Method of improving read current stability in analog non-volatile memory by limiting time gap between erase and program |
| CN111897766B (zh) * | 2020-06-19 | 2023-05-30 | 西安微电子技术研究所 | 一种星载固态存储器及边记边擦的数据处理方法 |
| KR20220142192A (ko) * | 2021-04-14 | 2022-10-21 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05282889A (ja) * | 1992-03-31 | 1993-10-29 | Toshiba Corp | 不揮発性半導体メモリ装置 |
| JPH07244992A (ja) * | 1994-03-02 | 1995-09-19 | Oki Electric Ind Co Ltd | 半導体記憶装置とメモリ制御方法 |
| JPH0877066A (ja) * | 1994-08-31 | 1996-03-22 | Tdk Corp | フラッシュメモリコントローラ |
| JPH11161558A (ja) * | 1997-11-28 | 1999-06-18 | Toshiba Corp | メモリ管理装置及び情報処理装置 |
| JP2000510634A (ja) * | 1998-02-25 | 2000-08-15 | レクサー メディア,インコーポレイテッド | 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能 |
| JP2003216507A (ja) * | 2002-01-22 | 2003-07-31 | Sharp Corp | 記憶容量処理システム |
| WO2004021191A1 (ja) * | 2002-08-29 | 2004-03-11 | Matsushita Electric Industrial Co., Ltd. | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
| JP2004533029A (ja) * | 2001-01-19 | 2004-10-28 | サンディスク コーポレイション | 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作 |
| JP2005115561A (ja) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | フラッシュrom制御装置 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69316955T2 (de) * | 1992-09-18 | 1998-07-30 | Hitachi Ltd | Rechenanlage mit synchronem, dynamischem Speicher |
| JPH0869404A (ja) * | 1994-08-29 | 1996-03-12 | Fujitsu Ltd | データのバックアップ方法及びそれを利用したデータ処理装置 |
| US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
| US6691205B2 (en) * | 2001-03-05 | 2004-02-10 | M-Systems Flash Disk Pioneers Ltd. | Method for using RAM buffers with simultaneous accesses in flash based storage systems |
| JP3957985B2 (ja) | 2001-03-06 | 2007-08-15 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| US20040201647A1 (en) * | 2002-12-02 | 2004-10-14 | Mark Jackson Pulver | Stitching of integrated circuit components |
| US20050120191A1 (en) * | 2003-12-02 | 2005-06-02 | Intel Corporation (A Delaware Corporation) | Checkpoint-based register reclamation |
| JP4938328B2 (ja) * | 2006-03-28 | 2012-05-23 | 株式会社日立製作所 | 記憶システム及びその電源制御方法並びにストレージ装置 |
-
2006
- 2006-04-19 JP JP2006115779A patent/JP5130646B2/ja not_active Expired - Fee Related
- 2006-06-02 KR KR1020060049916A patent/KR20060127760A/ko not_active Withdrawn
- 2006-06-05 US US11/446,367 patent/US8285916B2/en not_active Expired - Fee Related
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05282889A (ja) * | 1992-03-31 | 1993-10-29 | Toshiba Corp | 不揮発性半導体メモリ装置 |
| JPH07244992A (ja) * | 1994-03-02 | 1995-09-19 | Oki Electric Ind Co Ltd | 半導体記憶装置とメモリ制御方法 |
| JPH0877066A (ja) * | 1994-08-31 | 1996-03-22 | Tdk Corp | フラッシュメモリコントローラ |
| JPH11161558A (ja) * | 1997-11-28 | 1999-06-18 | Toshiba Corp | メモリ管理装置及び情報処理装置 |
| JP2000510634A (ja) * | 1998-02-25 | 2000-08-15 | レクサー メディア,インコーポレイテッド | 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能 |
| JP2004533029A (ja) * | 2001-01-19 | 2004-10-28 | サンディスク コーポレイション | 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作 |
| JP2003216507A (ja) * | 2002-01-22 | 2003-07-31 | Sharp Corp | 記憶容量処理システム |
| WO2004021191A1 (ja) * | 2002-08-29 | 2004-03-11 | Matsushita Electric Industrial Co., Ltd. | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
| JP2005115561A (ja) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | フラッシュrom制御装置 |
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008181204A (ja) * | 2007-01-23 | 2008-08-07 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
| JP2014241185A (ja) * | 2007-03-07 | 2014-12-25 | コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. | フラッシュメモリ向け部分ブロック消去アーキテクチャ |
| JP2009015978A (ja) * | 2007-07-05 | 2009-01-22 | Toshiba Corp | 半導体記憶装置及びメモリシステム |
| US8098523B2 (en) | 2007-07-05 | 2012-01-17 | Kabushiki Kaisha Toshiba | Semiconductor memory device with memory cell having charge accumulation layer and control gate and memory system |
| JP2011510427A (ja) * | 2008-01-17 | 2011-03-31 | モーセッド・テクノロジーズ・インコーポレイテッド | 不揮発性半導体記憶装置 |
| US8533405B2 (en) | 2008-01-17 | 2013-09-10 | Mosaid Technologies Incorporated | Nonvolatile semiconductor memory device |
| JP2010086009A (ja) * | 2008-09-29 | 2010-04-15 | Hitachi Ltd | 記憶装置およびメモリ制御方法 |
| JP2010152517A (ja) * | 2008-12-24 | 2010-07-08 | Toshiba Corp | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
| JP2010186477A (ja) * | 2009-02-10 | 2010-08-26 | Samsung Electronics Co Ltd | メモリシステム及びその磨耗度管理方法 |
| US8700881B2 (en) | 2009-04-22 | 2014-04-15 | Samsung Electronics Co., Ltd. | Controller, data storage device and data storage system having the controller, and data processing method |
| US9135167B2 (en) | 2009-04-22 | 2015-09-15 | Samsung Electronics Co., Ltd. | Controller, data storage device and data storage system having the controller, and data processing method |
| US8489852B2 (en) | 2009-07-06 | 2013-07-16 | Samsung Electronics Co., Ltd. | Method and system for manipulating data |
| US9015445B2 (en) | 2009-07-06 | 2015-04-21 | Samsung Electronics Co., Ltd. | Method and system for manipulating data |
| US8626987B2 (en) | 2009-10-27 | 2014-01-07 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
| US9710378B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
| US9710375B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
| CN109669883A (zh) * | 2017-10-13 | 2019-04-23 | 质子世界国际公司 | 用于闪存的逻辑存储单元 |
| CN109669883B (zh) * | 2017-10-13 | 2023-11-03 | 质子世界国际公司 | 用于闪存的逻辑存储单元 |
| JP2021068129A (ja) * | 2019-10-21 | 2021-04-30 | Tdk株式会社 | メモリコントローラ及びフラッシュメモリシステム |
| JP2021007059A (ja) * | 2020-10-23 | 2021-01-21 | キオクシア株式会社 | メモリシステム |
| JP7013546B2 (ja) | 2020-10-23 | 2022-01-31 | キオクシア株式会社 | メモリシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US8285916B2 (en) | 2012-10-09 |
| KR20060127760A (ko) | 2006-12-13 |
| US20060285397A1 (en) | 2006-12-21 |
| JP5130646B2 (ja) | 2013-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5130646B2 (ja) | 記憶装置 | |
| KR100914263B1 (ko) | 스크래치 패드 블록 | |
| JP4399008B2 (ja) | 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法 | |
| JP5162846B2 (ja) | 記憶装置、コンピュータシステム、および記憶システム | |
| JP4431175B2 (ja) | 不揮発性メモリおよびマルチストリーム更新を伴う方法 | |
| KR100896698B1 (ko) | 메모리의 페이지 및/또는 블럭의 사이즈와 상이한사이즈를 구비하는 데이터 섹터를 갖는 비-휘발성 메모리시스템을 작동시키는 방법 | |
| TWI394044B (zh) | 記錄來自一主機之資料之非揮發性記憶體及方法 | |
| KR101468432B1 (ko) | 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술 | |
| KR20060120231A (ko) | 다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화 | |
| JP4961693B2 (ja) | コンピュータシステム | |
| JP2008146255A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
| JP4910360B2 (ja) | 記憶装置、コンピュータシステム、およびデータ書き込み方法 | |
| JP5617873B2 (ja) | 記憶装置 | |
| JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
| JP2008146254A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
| JP2008181203A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
| JP2007334413A (ja) | 記憶装置 | |
| US8713242B2 (en) | Control method and allocation structure for flash memory device | |
| JP4332108B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| JP5264459B2 (ja) | 半導体記憶装置 | |
| JP2008112335A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090225 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111017 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111025 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120417 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120615 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120921 |
|
| 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: 20121009 |
|
| 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: 20121022 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151116 Year of fee payment: 3 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 5130646 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: 20151116 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 |
|
| LAPS | Cancellation because of no payment of annual fees |