JP2002537596A - メモリシステム - Google Patents
メモリシステムInfo
- Publication number
- JP2002537596A JP2002537596A JP2000600167A JP2000600167A JP2002537596A JP 2002537596 A JP2002537596 A JP 2002537596A JP 2000600167 A JP2000600167 A JP 2000600167A JP 2000600167 A JP2000600167 A JP 2000600167A JP 2002537596 A JP2002537596 A JP 2002537596A
- Authority
- JP
- Japan
- Prior art keywords
- block
- sector
- memory
- data
- controller
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/7202—Allocation control and policies
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
Description
、半導体メモリシステムの不揮発性メモリへのアクセスを制御するメモリコント
ローラに関する。より具体的には、本発明は、フラッシュメモリシステム及びフ
ラッシュメモリ用のコントローラに関する。
は不揮発性データ記憶装置用に電子工業界で一般的に用いられている。NAND
型メモリセル、AND型メモリセルあるいはNOR型メモリセルに基づく装置を
含む様々なタイプのフラッシュメモリ装置が存在する。こうした装置は、それぞ
れインタフエースするように設計されたホストプロセッサシステムに対して異な
る型のインタフエースを有し、例えば、順次アクセス型インタフエース(多くの
NAND型及びAND型装置で一般的に使用)、または、ランダムアクセス型イ
ンタフエース(複数のNOR型装置で使用)などが使用されている。本発明は、
適切な形で、これらの異なるタイプの記憶装置の少なくともいくつかに、好まし
くは全てに利用できることを目的とする。
半導体メモリシステムを使用することは周知である。当業界では、半導体メモリ
システムの演算速度を増して、磁気ディスク記憶装置をより良くエミュレートす
ることを目指している。
能ブロック内に設けられた不揮発メモリセクタを有し、前記セクタは、各々、メ
モリ内の自身の物理的位置を定義する物理アドレスを含む半導体メモリと; データ構造のメモリへの書き込みとメモリからの読出し、及び消去用として処
理されるブロックと非消去用として処理されるブロックとにセクタのブロックを
ソートするためのコントローラと; を具備するホストプロセッサに接続するためのメモリシステムであって、 前記コントローラは、 ホストプロセッサから受け取った論理アドレスをメモリ内の前記メモリセクタ
の物理アドレスに変換する手段と; ホストプロセッサからのデータが書き込まれる物理セクタアドレスを指示する
書き込みポインタ(以下、ライトポインタ(WP)と称す)であって、消去用と
して処理される任意のブロックにおけるメモリセクタの物理アドレスを所定の順
番で移動するように、また、ブロックが満杯の場合は別の消去ブロックに移動す
るようにコントローラによって制御されるライトポインタ(WP)とを含み、 こうした構成とすることで、ホストプロセッサからセクタ書き込みコマンドを
受け取ると、前記ライトポインタ(WP)が指し示す物理アドレスを論理アドレ
スに割当てることによって、コントローラはホストプロセッサから受け取った論
理アドレスをデータが書き込みされる物理アドレスに変換し、かつ、コントロー
ラによって既に割当てられている各々の物理アドレスとともに論理アドレステー
ブルをコンパイルし(このテーブルは、以下、セクタ割当てテーブルまたはSA
Tと称す)、コントローラはホストプロセッサからのデータがメモリセクタに書
き込みされる頻度より少ない頻度でSATを更新するよう構成されたメモリシス
テムが提供される。
を更新するのでなく、それより少ない頻度でSATを更新することにより、本発
明は、例えばフラッシュメモリなどの半導体メモリの超高速処理を提供し、従っ
て、磁気ディスク記憶装置の良好なエミュレーションを可能にする。
令され、これにより、N番目のSATエントリーは、論理アドレスNを有するデ
ータが書き込みされたセクタの物理アドレスを含む。セクタ読出しコマンドをホ
ストプロセッサから受け取ると、コントローラは、ホストプロセッサから受け取
った論理セクタアドレスをSAT内で検索して、過去にコントローラが前記論理
セクタアドレスに割当てた物理セクタアドレスを得る。SATは、好ましくは、
半導体メモリのメモリセクタの1または複数の前記ブロック内に記憶される。各
ブロックは、以下SATブロックと称されるSATの任意の部分を含んでいる。
SATは、SATにおける1つまたは複数のブロックを書き換えることによって
更新される。SATセクタのブロック全体を一時に更新することで、メモリシス
テムの演算スピードが著しく向上する。
す)が提供され、これは前記SATブロックの個別セクタの修正バージョンを含
む。前記ASBブロックの各セクタは、好ましくは、それが更新するSATブロ
ックにおけるセクタの物理アドレスと、前記SATブロックセクタの修正バージ
ョンとを含む。ASBの目的は、SATの半導体メモリ修正セクタに個別に隠し
て(キャッシュして)、SATプロックの書き換え回数を減らすことにある。前
記ASBブロックの全てのセクタがSATセクタの修正バージョンで書き込みさ
れると、ASBブロック内の全ての修正バージョンを含むように個々のSATブ
ロックが書き換えられて、ASBブロックは消去される。
アドレスに割当てられる物理アドレスが論理アドレスその物に従属していないこ
とは理解されよう。コントローラは、単に、ライトポインタがそのとき指し示す
物理セクタアドレスを割当てる。
移動させる前に、消去処理される前記1つのブロックを充填する。コントローラ
は、ライトポインタ(WP)を消去処理されるブロック内をくまなく所定の順番
で移動させるように好適に構成されている。
くまなく物理アドレスを番号順に上昇しながら連続して移動させ、このとき、各
ブロックは書き込みされたデータで充填されている。ひとたび物理アドレス順に
よる最高位ブロックのセクタがデータで充填されると、WPはコントローラによ
って消去処理される全てのブロック中、番号的に最下位の物理アドレスを有する
セクタのブロックを取り囲むようにコントローラによって制御されるという意味
において、ライトポインタ(WP)の制御は循環式である。
の順番を用いる。例えば、コントローラは、ライトポインタ(WP)を制御して
、消去処理されるブロック中を物理アドレスによる番号順に連続して下るように
移動させる。もしくは、物理セクタアドレスを非連続順に移動することも可能で
ある。例えば、WPが消去処理される各ブロックにおいて物理セクタアドレス中
をアドレスの数字を下るように移動したり、例えば、前記ブロックの各々におい
て、第1セクタの物理アドレスにしたがって番号順に上るなど、何らかの所定の
順序でブロックからブロックへ移動したりすることもできる。
多くの所定の順番が実行可能なことは理解されよう。さらに、予め決定する必要
のない、または、一部のみ決定させた任意の順序でコントローラが消去ブロック
を使用することも可能である。一般的には好ましくないが、消去ブロックは、無
作為な順序で使用することもできる。
して消去可能である。セクタは、また、個別消去も可能である(例えば、半導体
記憶装置がAND型メモリの場合)。コントローラは、好ましくは、メモリセク
タのブロック全体のみを消去するように記憶装置の消去演算を制御するように構
成される。メモリセクタ内の全てのセクタが消去セクタである場合は、セクタの
ブロックは、消去ブロックとしてコントローラによって処理される。ブロックが
1つまたは2つ以上の不良(すなわち、欠陥)セクタを含んでいる場合、コント
ローラは、ブロック全体を不良と定義し、そのブロックを非消去ブロックとして
処理し、それによりこのブロックへのデータの書き込みは行われない。もしくは
、ブロックが1つまたは2つ以上の不良セクタを含んでいる場合、コントローラ
は、そのブロックを消去ブロックとして処理し、それによりそのブロック内の良
好セクタをデータ保存に使用する。しかし、後者の場合、好ましくは、メモリシ
ステムが不良セクタを識別するテーブルを備え、コントローラは、ライトポイン
タ(WP)が次に移動するセクタアドレスが不良セクタアドレスか否かをチェッ
クし、それが不良セクタのアドレスだった場合、ライトポインタを制御してこの
不良セクタをスキップさせ、セクタが書き込みされる所定の順番に従って、次の
セクタアドレスに移動するように構成される。
クタを含む任意のブロックは非消去ブロックとしてコントローラによって処理さ
れる。さらに、“消去”セクタなる用語は消去されたセクタのみでなく、書き込
みされていない状態のセクタ及び消去前のセクタも含む。従って、書き込み前の
セクタのブロックは、コントローラによって消去ブロックとして処理される。
る物理ブロックアドレスを有する。前記メモリセクタの各々の物理アドレスは、
好ましくは、それが位置するブロックの物理ブロックアドレスを含む。新規なコ
ントローラは、好適に、消去処理されるセクタブロックの少なくとも何個かの物
理ブロックアドレスのリストをコンパイルするように構成され、これを利用して
次に書き込みが行われるセクタブロックを素早く識別する。この消去ブロックの
アドレスリストは、好ましくは、コントローラによってメモリシステムに設けら
れた一時的記憶域に記憶され、一時的記憶域は、好適に、コントローラのマイク
ロプロセッサのSRAMであり、各セクタブロックの消去状況を識別するコント
ローラによって半導体メモリに既に記憶されている情報からもたらされる(この
情報は、好ましくは、半導体メモリにおいてビットマップの形式で保持され、各
ブロックは消去ブロックまたは非消去ブロックとして記録される)。
データを伝えるセクタの書き込みコマンドをホストプロセッサからコントローラ
によって受けると、コントローラは、現時点の旧データを備えるセクタのアドレ
スを一時的記憶域に保存する。この一時的記憶域は、好適に、コントローラのマ
イクロプロセッサに設けられたSRAMまたはDRAMである。通常はユーザに
よって発せられる、セクタ削除コマンドをホストプロセッサからコントローラに
よって受け取ると、コントローラは、好ましくは、削除すべきセクタを廃棄とし
てマークする(このとき、物理的にセクタを消去することはない)。コントロー
ラは、ライトポインタ(WP)によって書き込みされた旧データを含む1つまた
は2つ以上のセクタを有するブロック(以下、カレントオブソリートブロック(
COB)と称す)をいかなる場合も1個しか容認しない。COB内の全てのセク
タが旧データを含むと、COBは即座に消去される。これは、ライトポインタ(
WP)が次のブロックに移動する前に、消去処理される各ブロック内のメモリセ
クタアドレスを連続して移動する場合に特に好都合である。このような場合、削
除される一連の廃棄セクタ(例えば、書き換えられたユーザデータファイルの一
部を含む)は、多くの場合、全て同一のブロック内にある。一連のセクタが、そ
れらが過去に書き込みされた順序と違う順番で書き換えられると、2個以上のブ
ロックに廃棄セクタが生じることがある。COB以外のブロックにあるセクタが
旧データを含む場合、コントローラは、好ましくは、COB内の有効(非廃棄)
セクタにある任意のデータを、ライトポインタ(WP)がその時点で指し示す別
のブロックに再配置し、その後COBを消去する。COB以外のブロックにある
前記セクタが、その後、廃棄としてマークされ、このブロックが今度はCOBに
なる。ライトポインタの現在位置に再配置したデータを書き込みするというより
むしろ、メモリシステムは、そうしたリロケーションデータを書き込むセクタの
物理アドレスを指示するための第2のライトポインタ(以下、リロケーションポ
インタ(RP)と称す)を備え、リロケーションポインタ(RP)は、常にライ
トポインタ(WP)とは異なるセクタブロックにある。これは、ホストプロセッ
サによって書き込みするように直接命令された、すなわち、ライトポインタ(W
P)によって書き込みされるデータ構造と、リロケーションデータとが交じり合
うことを阻止するという効果をもたらす。
込みされる。すなわち、ファイルデータとシステムデータである。再配置及び消
去の回数をさらに減じるために、本発明のメモリシステムは、第3のライトポイ
ンタ(以下、システムライトポインタ(SWP)と称す)をさらに備える。これ
はホストプロセッサからのシステムデータを書き込みするセクタの物理アドレス
を指示し、SWPは、常に、ライトポインタ(WP)とは別のブロックにある(
さらに、リロケーションポインタがある場合は、これとも違うブロックにある)
。好ましくは、システムデータは、システムの初期化中に識別され、かつ、必要
に応じて演算中に更新される。
れている場合、ファイルデータは、常にライトポインタ(WP)によって指示さ
れたアドレスに書き込みされる。好ましくは、リロケーションポインタ(RP)
とシステムライトポインタ(SWP)の双方がライトポインタ(WP)に類似の
方法で消去処理される前記ブロックにおけるメモリセクタの物理アドレス中を移
動するように制御される。従って、前記ブロックの(良好)セクタの全てがリロ
ケーションデータまたはシステムデータで充填された場合、対応するリロケーシ
ョンポインタ(RP)およびシステムライトポインタ(SWP)の一方が、消去
処理されるブロックにおける全セクタの物理アドレスからコントローラによって
使用されるように定義された次のアドレスに移動する。
トローラは、1つまたは2つ以上の廃棄セクタを含む少なくとも2個のブロック
が任意のときに存在することを容認する。このとき、一方は前記COBであり、
他方は、1つまたは2つ以上の旧システムデータセクタを含むカレントオブソリ
ートシステムブロック(COSB)である。COSBの消去を容認するために任
意のシステムデータセクタを再配置することが必要になった場合、好ましくは、
再配置されたシステムデータはシステムライトポインタ(SWP)がその時点で
指示するアドレスに送られる。
B)が一時的に存在することがある。例えば、COBの消去が必要な場合(旧デ
ータがちょうど別のブロックに作り出された後)、ライトポインタ(WP)の1
つはこれを指し示す。すなわち、WPは、現在COBであるブロックにまだ書き
込みを行っている。このような場合、コントローラは、好ましくは、新しいCO
Bの作成処理を行い、一方、コントローラの定義に従って、古いCOB内にある
全ての消去セクタが充填され、かつ、ライトポインタ(WP)が次に使用する消
去ブロックに移動するまで古いCOB(以下、保留オブソリートブロック(PO
B)として扱う)の消去を保留する。このとき、POB内の任意の有効(非廃棄
)データは再配置され、POBが消去される。
ントローラは、制御情報として指定されたメモリデ−タの生成および書き込みを
行う。好ましくは、コントローラは、そうした制御情報をホストプロセッサから
受け取ったデータ構造が書き込まれたメモリのセクタブロックとは別個のブロッ
クに書き込む。こうした制御情報を記憶するためのブロックを以下、制御ブロッ
ク(CBs)と称する。これらの制御ブロックはコントローラによって周期的に
更新され、初期化中、および時にメモリシステムの演算中にアクセスされる。
(WP)によって書き込まれたデータ構造用の論理セクタアドレスのリストを一
時的記憶域(これは、メモリシステムに設けられたRAM、または、コントロー
ラのマイクロプロセッサに好適に埋め込まれたSRAMあるいはDRAM)に記
憶させる。SRAMに記憶されたこのリストは、以下、WSLの論理アドレスと
して言及される。これは、メモリ内の不揮発性セクタに書き込みされた順番に好
適に記億される。連続して書き込みされたセクタ群にとって好都合なことに、W
SLエントリーは、従って、第1セクタの論理アドレスとして、かつ、セクタ群
の長さ、すなわち、セクタが書き込みされた数だけ書き込みされる。前記セクタ
群の各々は、セクタの1つのブロックより広がらないように定義される。
き込み用にライトポインタ(WP)によって使用された順番を前記一時的記憶域
に記憶する。これは、アドレスがWSLに保存された更新されたセクタが位置す
るブロックのブロックアドレス表の形式で保存される。このブロックアドレス表
は、以下、書き込みブロックリスト(WBL)として言及する。メモリシステム
は、WSLおよびWBLによって、前記連続して書き込みされたセクタ群の第1
論理アドレスに割当てられた物理メモリ内に記憶場所の知識を有するものである
から、コントローラは、WSL及びWBLを使用して、SATの最終更新の後、
前記連続して書き込みされたセクタ群における各論理セクタアドレスの各々につ
いて、常に正しい物理セクタにアクセス可能である。好ましくは、WSLは所定
の大きさを有し、ひとたびWSLが一杯になると、1つまたは2つ以上のSAT
ブロック(及び/又はASBs)が更新され、WSLとWBLとが空になる。
ラによってデータが書き込みされたセクタを有するブロック間のリンクとが、半
導体メモリの制御ブロックに記憶される。各セクタに記憶されたユーザデータ用
の論理セクタアドレスを、セクタそれ自身、例えばセクタに設けられたヘッダー
フィールドに記憶することにより、システムに対する任意の電力の除去および回
復後、WSLおよびWBLを容易に再構成できる。これは、一杯になっていない
ブロックに到達するまで、半導体メモリをくまなく走査し、SATが最後に更新
されてから書き込まれたセクタ内の論理アドレスを読出すことによって達成され
る。これは、電力の除去あるいは損失前にライトポインタ(WP)を含むブロッ
クである。これにより、メモリシステムから予期せぬ電力除去が生じた際にも、
高度なデータセキュリティが提供される。
含まれている場合、コントローラは、移動されたデータもしくはシステムデータ
が書き込まれたメモリ内のセクタに対応する類似の論理セクタアドレスリストを
、前記一時的記憶域に記憶することが望ましい。以下、これらのリストをそれぞ
れ、再配置セクタリスト(RSL)、ライトシステムセクタリスト(WSSL)
と称する。また、コントローラは、RPおよびSWPによって使用され且つライ
トブロックリストに類似する対応するブロック順位リストを前記一時的記憶域内
に記憶しても良い。以下、これら2つのリストを、再配置ブロックリスト(RB
L)およびライトシステムブロックリスト(WSBL)と称する。また、物理セ
クタアドレスの開始と、最後のSAT更新後に移動データもしくはシステムデー
タが書き込まれたセクタを有するブロック間のリンクとが、半導体メモリの前記
制御ブロック(CBs)の少なくとも1つに記憶されても良い。これにより、メ
モリを単に走査し且つ最後のSAT更新後にRPおよびSWPのそれぞれによっ
て書き込まれたセクタ内の論理アドレスを読み込むことによって、ホストプロセ
ッサに対する電力の除去および回復後に、RSLおよびWSSLを再構成するこ
とができる。
すなわち、メモリセクタにおける前記ブロック内の1列のメモリセルから成る。
しかしながら、本発明は、そのようなセクタフォーマットのみに限定されるもの
ではなく、時として(例えば、NOR型のRAMを使用する場合)、前記各セク
タが1ページよりも少なく、あるいは、1ページより多くても良い。また、後者
の場合、前記セクタの全てが必ずしも同じサイズである必要はない。例えば、本
出願人の過去の国際特許出願PCT/GB99/00188号に開示されている
ようなデータ編成スキームをコントローラによって使用して、半導体メモリ中に
存在する個々の欠陥を避けるように適切なサイズ(サブセクタサイズ)のセクタ
を形成することができる。
れ個々にアクセス可能な複数のセクタ部を備え、コントローラが、各セクタ部に
対して個々に書き込んだり、各セクタ部から個々に読み込んだりしても良い。無
論、可能な最も小さいセクタ部のサイズが、アドレス可能な最小のメモリユニッ
トである。NOR型メモリにおいて、例えば、アドレス可能な最小のメモリユニ
ットは、一般に、1バイトである。
メモリセクタに対してデータを書き込み、また、前記メモリセクタからデータを
読み込む。全てのメモリセクタが同じサイズである場合、前記各データセグメン
トは、前記メモリセクタのサイズと同じサイズであることが望ましい。各データ
セグメントは、ホストプロセッサからのデータ構造(例えば、ファイルまたはシ
ステムデータ)や、コントローラによって形成されるデータを備えていても良い
。
タを含む不揮発性メモリ内のブロックのブロックアドレスリスト(以下、不良ブ
ロックリスト(BBL)と称する)を、1または複数の前記制御ブロックに記憶
することが望ましい。この場合、コントローラは、そのようなブロックのそれぞ
れを「非消去」ブロックとして処理する。これにより、そのようなブロックは、
一時的記憶域内に記憶される消去ブロックのリスト内に現れず、コントローラは
、データをそのブロックに書き込まない。
のアドレスリストを、1または複数の前記制御ブロック(CBs)に記憶するこ
とが望ましい。この場合、コントローラは、少なくとも1つの不良セクタを含む
任意のブロック内の良好なセクタを使用するため、また、任意の不良セクタをス
キップするために、1または複数の前記ライトポインタ(WP)を制御する。無
論、1または複数の不良セクタを含む1つのブロックが消去される後者の場合、
そのブロック内の良好(すなわち、非欠陥)なセクタは、ブロック消去操作中に
個々に消去される。
リストを、1または複数の前記制御ブロック内に記憶する。このリストは複数の
リスト部分から成ることが望ましく、以下、各リスト部分をテーブルブロックリ
スト(TBL)と称する。前記各リスト部分は、論理的に連続するSATブロッ
クおよび対応する任意のASBsから成る群のブロックアドレスを含んでいる。
(BB)と称する専用のメモリブロック内に記憶することが望ましい。また、デ
ータセキュリティのために必要な他の重要な情報は、ブートブロック内、例えば
不良ブロック(あるいは、不良セクタ)のリスト内に記憶されても良い。好まし
くは、不良セクタを全く含まないメモリセクタの第1のブロックが、ブートブロ
ック(BB)として指定される。
SATブロック、制御ブロック、ASBs、BBsとして使用する。
AMのような、メモリシステム内のRAM)内にキャッシュが設けられても良い
。この場合、コントローラは、SATから(コントローラによって)最も新しく
アクセスしたSATエントリーを含む連続するSATエントリーの群をキャッシ
ュ内に記憶する。また、これによって、アドレス変換速度が向上する。また、ア
ドレス変換速度の向上は、全てのASB及びこれらが関連付けられるSATブロ
ックの物理アドレスのリストであって、SATセクタ書き込み操作が実行される
度に更新されるリスト(以下、ASBリストすなわちASBLと称する)を前記
一時的記憶域内に形成することによって達成されても良い。同様に、非常に高速
の論理−物理セクタアドレス変換を可能にするため、制御ブロック内のTBLの
部分は、前記一時的記憶域に記憶されても良い。
ていても良く、あるいは、複数のメモリチップの形態を成す複数のメモリアレー
を備えていても良い。メモリが複数のチップから成る場合、コントローラは、好
適に、複数のメモリチップ内のメモリセクタを、多数の仮想ブロックへと形作る
。前記各仮想ブロックは、前記各メモリチップから消去可能な1つのメモリセク
タブロックを備え、好ましくは、コントローラは、前記仮想ブロックを、消去処
理されるブロックおよび消去処理されないブロックにソートする。コントローラ
は、好ましくは、消去処理される仮想ブロックのリストを備えるとともに、これ
を、コントローラのマイクロプロセッサのSRAMであっても良いメモリシステ
ム内の一時的記憶域に記憶する。コントローラは、連続セクタ書き込み操作のそ
れぞれにおいて、ライトポインタ(WP)(設けられている場合には、RPおよ
びSWP)を1つのチップから他のチップへと移動するように制御することが望
ましい。この場合、ライトポインタは、仮想ブロックの消去可能な1つのブロッ
ク内の1つのセクタから移動し始め、1つのセクタが仮想ブロックの消去可能な
各ブロック内に書き込まれるまで、仮想ブロックの消去可能な他の各ブロック内
の1つのセクタへと連続的に移動するとともに、その後、最初のセクタが書き込
まれたチップへと戻り、同様の方法で進んで、仮想ブロックの消去可能な各ブロ
ック内の他の1つのセクタを一杯にする。その後も同様に移動し、結果的に、仮
想ブロックをデータで一杯にする。その後、ライトポインタ(WP)は、消去処
理される前記仮想ブロックリスト内の次の仮想ブロックへと移動して、この次の
仮想ブロックを同様の方法によって一杯にする。コントローラは、それ自身が実
行するn回の連続セクタ書き込み操作(この場合、nは、メモリシステム内の半
導体メモリチップの数以下)の度に、n個の各チップ内の1つのセクタに対して
略同時に書き込むことができるように構成されていることが望ましい。好ましく
は、コントローラは、仮想ブロック内の消去可能な全てのブロックを同時に消去
することによって、任意の仮想ブロックの消去を実行する。
して回路内に実質的に実装されていても良いが、少なくとも部分的には、コント
ローラデバイスのメモリ内に保持されるファームウエアとして具現化されること
が望ましい。コントローラは、半導体メモリとして、同じチップ(あるいは、同
じ複数のチップのうちの1つ)上に一体形成されていても良い。
、個々にアドレス可能で且つセクタの消去可能なブロック内に配置される複数の
不揮発性メモリセクタを有し、前記各セクタは、メモリ内におけるその物理的な
位置を規定する物理アドレスを有する半導体メモリと; データ構造をメモリに書き込み、また、データ構造をメモリから読み込むため
のコントローラと; を具備するホストプロセッサに接続するためのメモリシステムであって、 前記コントローラは消去可能なブロックを仮想ブロックへと形作り、前記各仮
想ブロックは各メモリチップから消去可能なブロックを備え、コントローラは、
仮想ブロックを、消去処理されるブロックと消去処理されないブロックとにソー
トし、コントローラは、満たすべき次の仮想ブロックへと移動する前に、1つの
仮想ブロックをデータで満たし、各仮想ブロックは、仮想ブロックの消去可能な
各ブロック内の1つのメモリセクタにコントローラが次々と書き込む繰り返しシ
ーケンス(循環シーケンス)により、そのメモリセクタに書き込むことによって
満たされ、これにより、異なるチップにセクタが連続的に書き込まれるよう構成
されたメモリシステムが提供される。
き込みコマンドによって実行するn回の連続セクタ書き込み操作(この場合、n
は、メモリシステム内の半導体メモリチップの数以下)の度に、n個の各チップ
内の1つのセクタに対して略同時に書き込むことができるように構成されている
。
ブロック内に配置される不揮発性メモリセクタを有する半導体メモリに対してデ
ータ構造を書き込むとともに、前記半導体メモリからデータ構造を読み込み、メ
モリ内におけるその物理的位置を規定する物理アドレスを前記各セクタが有する
コントローラが提供される。このコントローラは、 コントローラが使用されるメモリシステムのホストプロセッサから受け取った
論理アドレスを、メモリ内の前記メモリセクタの物理アドレスに変換するととも
に、セクタのブロックを、消去処理されるブロックと消去処理されないブロック
とにソートするための手段と; 書き込まれるセクタの物理アドレスをホストプロセッサから指し示すライトポ
インタ(WP)とを有し、前記ライトポインタ(WP)は、コントローラによっ
て制御されて、消去処理される任意のブロック内のメモリセクタの物理アドレス
を介して所定の順序で移動し、ブロックが一杯になると、他の消去ブロックへと
移動し、 セクタ書き込みコマンドがホストプロセッサからコントローラによって受けら
れると、コントローラは、前記ライトポインタ(WP)が指し示す物理アドレス
を論理アドレスに割当てることによって、ホストプロセッサから受け取った論理
アドレスを、データが書き込まれる物理アドレスに変換し、また、そのためにコ
ントローラによって割当てられている各物理アドレスとともに論理アドレスのテ
ーブルをコンパイルするとともに、ホストプロセッサからのデータがメモリセク
タに書き込みされる頻度より少ない頻度でSATを更新するようにコントローラ
が構成されている。
ブロック内に配置される不揮発性メモリセクタを有する半導体メモリに対してデ
ータ構造を書き込むとともに、前記半導体メモリからデータ構造を読み込み、メ
モリ内におけるその物理的位置を規定する物理アドレスを前記各セクタが有する
方法が提供される。この方法は、 セクタのブロックを、消去処理されるブロックと消去処理されないブロックと
にソートし; 書き込まれるセクタの物理アドレスをホストプロセッサから指し示すライトポ
インタ(WP)を提供し; 少なくとも1つの前記ライトポインタ(WP)を制御して、消去処理される任
意のブロック内のメモリセクタの物理アドレスを介して所定の順序でライトポイ
ンタを移動するとともに、ブロックが一杯になると、他の消去ブロックへとライ
トポインタを移動させ; セクタ書き込みコマンドがホストプロセッサからコントローラによって受けら
れると、前記ライトポインタ(WP)が指し示す物理アドレスを論理アドレスに
割当てることによって、ホストプロセッサから受け取った論理アドレスを、デー
タが書き込まれる物理アドレスに変換し; 変換のためにコントローラによって割当てられている各物理アドレスとともに
、論理アドレスのテーブルを、不揮発性半導体メモリ内に記憶し; ホストプロセッサからのデータがメモリセクタに書き込みされる頻度より少な
い頻度でSATを更新する。
説明する。
ック4における物理的なページ構造を概略的に示している。図1は、ブロック4
内の3つのページ1,2,3を示している。物理的な観点からすれば、ページ1
は、メモリブロック内の1列のメモリセルから成る。メモリは、複数のブロック
に分割されており、各ブロックは、メモリセルの多数の列(すなわち、多数のペ
ージ)から成る。各ページ1,2,3は、後述する528バイトのフラッシュメ
モリシステムにおいて、物理的なメモリ空間の1セクタとして扱われる。メモリ
内の各ページ1は、個々にアドレス可能(読み込み/書き込み、および、オペレ
ーションの削除)であり、また、これらのページはブロック内で消去することが
できる。以下、そのようなメモリアレーを組み込むメモリシステムについて説明
する。また、AND型もしくはNOR型のフラッシュメモリに基づくメモリシステ
ムについても、別途、後述することにする。
メモリシステム10を示している。フラッシュメモリチップ5は、フラッシュメ
モリアレー6と、コントローラチップ8のコントローラバッファ9に接続された
リード/ライトバッファ7とを備えている。また、コントローラチップ8は、コ
ントローラマイクロプロセッサ11と、エラー修正コード(ECC)ジェネレータ
チェッカ12とを有している。コントローラバッファ9はホストコンピュータプ
ロセッサ(図示せず)に接続しており、ホストコンピュータプロセッサは、コン
トローラチップ8の出力部O/Pを介して、メモリシステム10に接続されてい
る。コントローラチップ8(以下、コントローラと称する)は、メモリアレー6
に対するデータ構造の読み込み及び書き込みを制御する。メモリシステム10に
接続されたホストプロセッサ2は、読み込み及び書き込みコマンドを、コントロ
ーラ8に送る。データは、512バイト部分すなわち「ホストデータセクタ」の
状態で、ホストによりアクセス可能であり、各ホストデータセクタは論理セクタ
アドレス(LA)を有している。コントローラ8は、ホストプロセッサからLAを受
けて、これを後述するように物理アドレスに変換する。この場合(NAND型メモリ
の場合)、各物理アドレス(PA)は、アレー6内のフラッシュメモリのページ1
の物理的な位置を規定する。各LAは、1つの24ビット領域の形態を成している
。LAを使用してPAを入手することは、アドレス変換と称されており、一般に、リ
ード/ライドのアクセスを行なう度に必要となる最も頻繁な演算である。コント
ローラ8は、データセグメントの状態でデータをメモリアレー6に書き込む。各
セグメントは528バイトの大きさを有している。ホスト(例えば、ユーザファ
イルまたはシステムデータ)から受け取った512バイトの各データのため、コ
ントローラは、マイクロプロセッサ11によって形成された4バイトのヘッダー
と、ECCジェネレータチェッカ12によって形成された12バイトのECCとから成
る16バイトのデータを形成する。コントローラは、フラッシュバッファ7を介
して、この16バイトのデータを、メモリアレー6の1ページに書き込まれる5
28バイトのデータセグメントへと編成する。
ホストデータセクタが書き込まれるフラッシュセクタ1内に記憶される。読み込
み操作時、フラッシュメモリアレーの関連するセクタ内に記憶されたデータは、
フラッシュリード/ライトバッファ7を介して、アレー6からコントローラバッ
ファ9へと読み込まれる(同時に、データ内のエラーをチェックするために、EC
Cジェネレータチェッカへと読み込まれる)。そして、コントローラは、記憶さ
れたLAがホストコンピュータによって要求されているLAと一致していることをチ
ェックするため、ホストコンピュータによるコントローラバッファ9からのデー
タの読み込みを許容する前に、4バイトのヘッダーを読み込む。
の物理的な場所を管理する。更に詳細に後述するように、コントローラは、消去
されたブロックのビットマップをメモリ6内に記憶するとともに、消去されたブ
ロックが書き込みのために使用されるブロックの物理アドレスの昇順で順序付け
られた少なくとも幾つかの消去されたブロックのリスト(ネクストイレーズドブ
ロック(Next Erased Block(NEB))リスト)を、マイクロプロセッサ11内のSR
AM内にコンパイルする。ホストデータセクタが書き込まれる物理的なページの場
所は、ホストから受ける論理アドレスに依存しない。各ホストデータセクタは、
サイクリックライトポインタによって規定されるアドレスに書き込まれる。異な
るタイプの書き込み操作のため、特定のライトポインタが使用される。すなわち
、ホストファイルデータの書き込みは、データライトポインタ(WP)によって指
し示されたアドレスで実行され、ホストシステムデータの書き込みは、システム
ライトポインタ(SWP)によって指し示されたアドレスで実行される。リロケー
ションポインタ(RP)は、ホストによって直接に順序付けられなかったセクタを
書き込むために使用される。これらの各ライトポインタは同じ性質を有している
。すなわち、各ポインタは、ブロックの複数のページにわたって連続的に移動し
、その後、ネクストイレーズドブロック(NEB)リスト内の次に消去されたブロ
ックの第1のページへと移動する。消去されないファイルを含むブロックは、「
非消去」ブロックとして処理され、ポインタが1つのブロックから他のブロック
へと移動する際に読み飛ばされる(そして、NEB内に含められることはない)。
には、ブロックを消去できるように、有効セクタと廃棄セクタとの組み合わせを
含むブロックからセクタを再配置しなければならない。原理的には、コントロー
ラ8により、特定のライトポインタに対応する1つのブロックだけが、旧データ
セクタを常時収容することができる。ホストによって書き込まれるセクタが第2
のブロック内で廃棄セクタを形成する場合には、有効セクタを再配置した後、必
要に応じて、既存のブロックをまず最初に消去しなければならない。
には、多数のセクタの消去および広範囲にわたるセクタの再配置は避けられない
。これは、ファイルの一部としてホストにより書き込まれたセクタの順序が、以
前にセクタが書き込まれた順序と異なる場合にだけ、生じる。これは、殆どのア
プリケーションにおいて、通常のケースではない。しかしながら、通常のファイ
ルの書き込み操作の場合であっても、関連しないデータを、ファイルの「先端(
head)」や「末端(tail)」を含むブロックからリロケーションしなければなら
ない。他のファイルデータと混合されたシステムデータの再配置によって他のブ
ロックの消去が別途に引き起こされ、これによって、このブロックからの更なる
再配置が引き起こされるといった可能性が高い。
厳密に識別され、常に、システムライトポインタ(SWP)のアドレスに書き込ま
れ或いはリロケーションされる。システムデータに関する情報は、初期化プロセ
ス中に得られ、マイクロプロセッサのSRAM13内に記憶される。無論、データフ
ァイルは、ホストコンピュータプロセッサ内のファイルシステムによって、フラ
ッシュメモリに書き込まれる。ファイルデータは、ファイルシステムによって、
複数のクラスタに分割される。この場合、各クラスタは、(一般には)512バ
イトの連続ホストデータセクタの群である。ファイルシステムは、メモリに記憶
されたファイルの属性および各ファイルを形成するクラスタの場所に関するテー
ブルおよびデータ構造を維持する。これらのテーブルおよび構造は、フラッシュ
メモリ内に(システムデータとして)記憶されるとともに、ファイルデータが書
き込まれる場合にはいつでも、ファイルシステムによって更新される。ファイル
データは、メモリに記憶される際、ファイルに関連するシステムデータ(ディレ
クトリおよびFAT(file allocation table)に関する)を伴う。一般に、メモリ
に書き込まれるシステムデータは、BIOSパラメータコンフィギュレーション情報
、各エントリーが特定のクラスタに関連するファイルアロケーションテーブル(
FAT)の1つ又は2つのコピー、ルートディレクトリ、サブディレクトリを含ん
でいる。コントローラは、ホストシステムデータセクタを書き込むための操作を
認識するように構成されており、これにより、このホストデータセクタを、ファ
イルデータのホストデータセクタと異なるように取り扱うことができる。システ
ムセクタの書き込みを認識するため、以下のように、多数の方法を単独で或いは
組み合せて使用しても良い。 1.システムデータは、単一のセクタ書き込みコマンドを用いて書き込まれる
。一方、ファイルデータは、複数のセクタ書き込みコマンドを用いて書き込まれ
ても良い。 2.ファイルシステムルートディレクトリ内で最後のセクタアドレスよりも下
位にあるLAを有する全てのセクタが、システムセクタである。このアドレスは、
ホストファイルシステムによってメモリ内に記憶されたBIOSパラメータブロ
ック内に保持された情報から決定することができる。 3.サブディレクトリ内の全てのセクタがシステムセクタである。サブディレ
クトリアドレスおよびサイズは、全てのルートディレクトリおよびサブディレク
トリのエントリーを読み込むことによって認識することができる。 4.システムセクタは、しばしば、それらが再度書き込まれる直前に、ファイ
ルシステムによって読み込まれる。
ンタ(RP)によって規定されるアドレスに書き込まれ、したがって、ホストに
よって書き込まれたセクタと混合されない。
を指し示すために、別のライトポインタを準備しても良い。この別個のポインタ
は、システムリロケーションポインタ(SRP)と称され、常に、WPおよびS
Pと異なるブロック内に配置される
スケジューリングは、全く実行されない。第2のブロック内の廃棄セクタが、保
留のホストセクタ書き込みコマンドによって生じる場合には、通常、廃棄セクタ
を含むブロックのリスト消去が即座に実行される。同様に、制御ブロックの書き
換えの結果として、ブロックが廃棄制御データを全体として含む場合には、ブロ
ックは即座に消去される(詳しく後述するが、制御ブロックは、コントローラ8
が特定の制御データを書き込む場所である)。
旧データを有する存在可能なブロックは、たった2つにすぎない。すなわち、デ
ータライトポインタ(WP)に対応し且つ廃棄ファイルデータを含むカレントオ
ブソリートブロック(Current Obsolete Block(COB))、および、システムライ
トポインタ(SWP)に対応し且つ廃棄システムデータを含むカレントオブソリ
ートシステムブロック(Current Obsolete System Block(COSB))だけである。
しかしながら、各タイプのもう1つの廃棄ブロックが一時的に存在する場合があ
る。これは、消去されるブロック(旧データが他のブロック内に形成された)が
その時点で任意のタイプのライトポインタを含んでいる場合に生じる。この場合
、そのようなブロック(保留オブソリートブロック(Pending Obsolete Block(
POB))と呼ばれる)の消去は、このブロック内の全ての消去ページが使用され
且つ関連するライトポインタが他のブロックへ移動されるまで、延期されなけれ
ばならない。この時点で、保留の廃棄ブロックが即座に消去される。
アドレス空間を測るビットマップ(MAP)内で維持され、このMAP内に、各
ブロックの消去状態が記録される。セクタもしくは制御データをブロックアドレ
スの順序で連続的に書き込むために、消去されたブロックは破壊される。バック
グランド消去は実行されない。1または複数の不良セクタを含む任意のブロック
は、不良ブロックとして処理されるとともに、コントローラによって「非消去」
ブロックとして処理される。
、フラッシュメモリ内に固有のウエアレベリングが生じる。しかしながら、ブロ
ックを消去するアルゴリズムは、旧データもしくは消去済みデータとともに存在
すると直ちに、セクタ書き込み操作のシーケンスの機能であるウエアレベリング
特性を形成する。任意の更なるウエアレベリングが必要であると思われる場合に
は、ランダムブロック内でセクタを一時的に再配置してこれらのブロックを消去
できるようにする別個の更なる技術を組み込んでも良い。
クタの物理アドレスのリストであるセクタアドレステーブル(SAT)である。
したがって、N番目のSATエントリーは、通常、論理アドレスNを有するセクタ
のための物理アドレスを含んでいる。SATは、多数の独立ブロック(SATブ
ロック)として編成されるとともに、SATブロックの個々のページを書き換え
ることによって更新される。SATブロックは、これとリンクされてSATブロ
ックの個々のページの修正ができる専用の追加SATブロック(ASB)を有し
ていても良い。セクタ書き込み性能に対する影響を最小限にするために、SAT
ページは、各セクタ書き込み後に書き換えられない。無論、頻繁には書き換えら
れない。
正確な物理アドレスを含んでいない。そのようなセクタの論理アドレスは、ライ
トセクタリスト(WSL)、再配置セクタリスト(RSL)、ライトシステムセ
クタリスト(WSSL)と呼ばれるリストの状態で、プロセッサによって、その
SRAM13内に記憶される。これらのリストは、ホストによって書き込まれた
或は消去前にブロックから再配置されたセクタの順序と正確に一致している。連
続的にセクタが書き込まれる場合、WSLおよびRSLエントリーは、第1のセ
クタ論理アドレスおよびセクタ群長さを規定する。セクタ群は、1つのブロック
から他のブロックへとジャンプすることができない。マイクロプロセッサ11は
、フラッシュメモリ内のセクタ系列の始点と、セクタ書き込みのためのブロック
が使用される順番とに関する情報(前述したリストに対して相補的で且つプロセ
ッサのSRAM内に形成される特定のリスト、すなわち、ライトブロックリスト
(WBL)、ライトシステムブロックリスト(WSBL)、再配置ブロックリス
ト(RBL)は、後述するが、この情報を記憶するために使用される)を有して
いる。
、WBL、WSBL、RBL)は、最後のSATが書き換えられた後に書き込ま
れた系列内のセクタのヘッダー内で論理アドレスを読み込むことによってメモリ
システム10に対して電力を除去および回復した後、マイクロプロセッサ11に
よって再構成され得る。系列および系列内のセクタを含むブロック間のリンクに
おける開始セクタアドレスは、マイクロプロセッサにより、フラッシュメモリ内
の制御ブロック(CB)と呼ばれる特定のデータ構造内のエントリーから得られ
る(制御ブロック(CB)については後述する)。この方法によれば、カードか
ら予期しない電力の除去が生じた際には、データの高い安全性を確保できる。
ている場合には、システムリロケーションセクタリスト(SRSL)および相補
的なシステムリロケーションブロックリスト(SRBL)が形成され、これらは
、WSL、RSL、WSSL、および、WBL、RBL、WSBLのそれぞれに
関し、前述したと同様の方法で使用される。
わち、ページ)1内の本実施例に係るデータ構成が図3に示されている。セクタ
1は、まず、例えばホストデータセクタから成る512バイトの情報部分1aを
含んでおり、それに続いて、4バイトのヘッダー部分1bおよび12バイトのE
CC1cを順に含んでいる。図4に示されるように、ヘッダー部分は、それ自身
、データ構造タイプ部分20と、ヘッダーパラメータ22(例えば、情報部分1
a内に書き込まれたホストデータセクタの論理セクタアドレス(LA)から成る
)とを備えている。データ構造タイプは、データセクタ、削除データセクタ、セ
クタアドレステーブル(SAT)ページ、追加SATブロック(ASB)ページ
、制御ブロック(CB)ページ、ブートブロック(BB)ページのいずれか1つ
を示す値を有することができる。
セクタデータすなわちCOBもしくはCOSBを含むことが許容されるブロック
にだけ一時的に存在する。それは、ヘッダー内のデータ構造タイプ領域の「オー
ルゼロ」状態、あるいは、適当な場合には他の手段、によって認識される。
リーNは、論理セクタNのための物理アドレスを含んでいる。ページ内のエント
リーは、ページ内に記憶されたデータの512バイトの情報部分1aを占めてい
る。1つの操作でSATページが書き込まれるため、全ページを保護するために
EEC領域を使用でき、SATページ内の各エントリーのための別個のECC領
域が不要となる。
SATページを有している。別個のデータ構造およびテーブルブロックリスト(
TBL)は、全てのSATブロックのブロックアドレスを規定するため、制御ブ
ロック(後述する)内に保持されている。各SATエントリーは、セクタの物理
アドレスを規定するとともに、3バイトを占めており、図5に示されるように、 チップ数 5ビット、32個のチップのアドレスが可能。 ブロック数 13ビット、1チップにつき8192個のブロックを設定できる
。 セクタ数 6ビット、1ブロックにつき最大64個のセクタを与える を備えている。 SATページデータ構造上のヘッダーパラメータ領域は、SATブロックおよ
びページ数を含んでいる。
セクタを記憶することができ、したがって、そのSATは約16Kのエントリー
を有している。SAT内の512バイトのページは170個のエントリーを有し
ており、したがって、SATは6ブロックに相当する約96ページを占める。大
きなフラッシュメモリカード(2GB、8VBブロック)は1543個のブロッ
クを占める。
Tブロックの1ページを修正する(すなわち、書き換える)ことができる専用の
ブロックである。幾つかのASBを設けることもできる。各ASBは、それがリ
ンクされるSATブロックに対する拡張子として作用する。SATブロックが修
正される場合、一般に、SATブロックは、僅かな数のページ内にだけ修正デー
タを含んでいる。ASBによって、これらの修正ページだけを書き換えることが
できる。これは、全ページの書き込み、および、SATブロックを書き換えるた
めに必要な廃棄ブロックの消去よりも極めて速い操作である。ASBページのヘ
ッダーパラメータ部分は、それがリンクされるSATブロックとSATページ数
とを、それが取って代わるブロック内に含んでいる。ASBページ内に記憶され
たデータの情報部分1aのフォーマットは、SATページのそれと同じである。
御アドレス情報を記憶する。CBsは、コントローラ8によって周期的に更新さ
れるとともに、メモリシステム10の初期化中、あるいは、操作中において時々
、アクセスされなければならない。情報は、独立に書き込むことができる所定サ
イズのエントリーの形態で、CBs内に記憶される。各CB内にはページ毎に9
個のエントリーが存在する。エントリーは、エントリーそれ自身内のCBヘッダ
ー領域によって認識されるデータタイプの以下のリストのうちの1つに関連して
いる。 ・テーブルブロックリスト(TBL) ・ファイルデータ書き込み操作に対応する、エントリー内に幾らかの領域を有
するブロックのマップ(WMAP) ・システムデータ書き込み操作に対応するブロックのマップ(SMAP) ・再配置セクタ操作に対応するブロックのマップ(RMAP) 新しいデータをCBに加えなければならない場合には、適当なタイプの別個の
エントリーが、最後の有効なエントリーに続くように即座に加えられる。大きな
カードにおいては、CBが1ブロック以上を占めていても良い。全てのCBブロ
ックのアドレスは、フラッシュメモリ6内のブートブロック(BB)に記憶され
る。
ジ(ヘッダーページと呼ばれる)は、エントリーを含んでおらず、図3のような
全ページフォーマットを有している。このページのヘッダー16のヘッダーパラ
メータ領域は、CBを認識するサインと、そのブロック数(制御ブロックのセッ
ト内でのブロックの連続番号)とから成る。
タによって占められる。CB書き換え操作に続いてシステムを初期化しなければ
ならない場合、ブロックリンク情報データは、WBL、WSBL、RBLをリス
トアするために必要な全ての情報を提供する。ブロックリンク情報データは、最
後のSATページ書き込み操作が実行された後に書き込まれた全てのMAP(W
MAPs、SMAPs、RMAPs)から収集されたリンク領域を備えており、
その書き換え操作中に、新しいCBの第1ブロックのヘッダーページに書き込ま
れなければならない。ブロックリンク情報は、4バイトのエントリーのタイミン
グ順リストであり、各エントリーは、ライトプリンタのうちの1つによってアク
セスされるブロックのブロックアドレスと、それがどのポインタであったかを認
識するフラグとを含んでいる。メモリ空間内の多数のブロックがCBのために与
えられ、これが一杯になると、アクティブエントリーは、NEB(すなわち、そ
れは、コンパクトであり、対応するヘッダーページが加えられる)から、次の利
用可能な消去ブロックへと書き換えられる。CBページの情報領域は、長さが等
しい9個のエントリーを有している。CBページのEEC領域は、使用されない
が、他の目的のために使用されても良い。
れるフォーマットを有しているとともに、エントリーのデータタイプを認識する
ヘッダー24と、情報領域26と、ECC領域28とを備えている。ECCは、
全ページのために使用される場合と同様の形態を成している。
の連続するブロックおよび任意の対応するASBからなるブロック群のアドレス
を有している。通常、複数のTBLは、必要な全てのSATブロックアドレスを
規定するために要求される。関連するTBLは、修正されたSATもしくはAS
Bのブロック位置を記録するため、SATブロック書き込み操作もしくは新たな
ASBの割り当ての後、直ちに、書き込まれる。また、TBLは、SATページ
書き込み操作が実行される際にその時点でのライトポインタの位置を記録するた
めに使用される領域を有している。したがって、TBLは、SATページ書き込
み操作が実行される場合には常に書き込まれる。TBLの1つのエントリーが図
7に示されている。このエントリーは、CBエントリーの情報領域26を占めて
いる。1バイトの第1のTBLエントリーは、TBLエントリーの連続番号No
である。各TBLエントリーは、8個のSAT−ASBブロック対の値を維持し
ている。すなわち、各TBLエントリーは、SATブロックN〜N+7のための
値を維持している。この場合、NはNo*8である。
であり、SWPはシステムライトポインタ領域である。これらの領域は、WSL
、RSL、SSLリリース操作後、ブロック内でのWP、RP、SWPの位置を
決定する。WP、RP、SWPは、WSL、RSL、SSLリリース操作が終了
した時(すなわち、最後のSAT書き込み操作)だけ有効である。この状態は、
エントリーヘッダー内のフラグビットを用いて設定される。フラグ=1は、エン
トリーがWSLまたはRSLのリリース中に書き込まれた最後の1つであり、し
たがって、WP領域が有効であることを意味している。
ントリーの列である。各エントリーは、SATブロックアドレスとASBブロッ
クアドレスから成る。 SATNはN番目のSATブロックの数であり、ASBNはSATNにリンク
されるASBの数である。SATもしくはASBが存在しない場合には、この領
域の値は0に等しい。 SATブロックが再配置される度に、あるいは、新たなASBがSATブロッ
クにリンクされる度に、新たなTBLエントリーがCBに加えられなければなら
ない。
エントリーがある。各マップエントリは、異なるタイプの書き込み操作に対応し
ている。すなわち、WMAPは、ファイルデータの書き込み或は削除操作に対応
しており、SMAPは、システムデータの書き込み操作に対応しており、RMA
Pは、セクタ再配置操作に対応している。
領域は、連続ブロック群の消去状態を規定するビットマップを含んでいる。25
6個のブロックの消去状態は、MAP内の32バイト領域内の256ビットによ
って規定される。情報領域は、それが関連するブロック群を認識するレンジ(Ra
nge)領域を有している。他の領域は、ブロック間でライトポインタが移動する
際の行き先ブロックを規定する。また、MAPは、旧データを含むフラッシュメ
モリ内のブロックの場所を認識する複数の領域を有している。すなわち、Obs
Cは、COB(またはCOSB)のために使用され、ObsPは、保留の廃棄ブ
ロックのために使用される。廃棄ブロックが存在しない場合には、対応する領域
が0に設定される。EB領域は、現在の書き込み或は削除セクタ操作によって消
去が引き起こされる1つのブロックの1つのアドレスを含んでいる。そのような
ブロックが存在しない場合には、EB領域が0に設定される。このMAPエント
リーフォーマットが図8に示されている。
る場合には、消去ブロックの使用を示すために(ビットマップ領域が更新される
)、また、ブロック間のリンクを記録するために(リンク領域が更新される)、
対応するMAPエントリーが加えられなければならない。書き込み(あるいは、
削除セクタ)操作によって新しいブロック内に廃棄(または削除)データが形成
される場合には、新しい廃棄ブロックの位置を記録するために(ObsCやOb
sPが更新される)、また、ブロックが消去されるべきであることを示すために
(EB領域が更新される)、また、新たな消去ブロックが出現することを示すた
めに(ビットマップ領域が更新される)、対応するMAPも加えられなければな
らない。したがって、通常、MAPの少なくとも2つの領域が同時に書き込まれ
、これは、単一のページ書き込み操作で達成されても良い。
いセキュリティーを提供すると同時に、初期化プロセス中における広範囲な走査
を避けることである。大きなカードにおいて、BBは1つ以上のブロックを有し
ている。BBは、カード内で、第1の非欠陥ブロックを占めている。データセキ
ュリティのため、カード内には、次の非欠陥ブロックを占めるBBのコピーが存
在する。BB及びそのコピーは、書き換え後、同じ場所に置かれなければならな
い。
含んでいる。 ・サイン ・インターリービングイネーブル ・不良ブロックリスト ・制御ブロックポインタテーブル(CBPT) 新しいデータをBBに加える必要がある場合には、最後の有効エントリーの後
に直ぐ続くように、適当なタイプの別個のエントリーが加えられる。サインとB
BLエントリーは、前述したものと全く同じフォーマットを有している(無論、
サインエントリーのサイン領域は、異なっており、固有のものである)。制御ブ
ロックポインタテーブルエントリーは、CBの全てのブロックに対するポインタ
を有しており、CBが書き換えられた直後に更新される。
書き換え操作後にシステムを初期化する必要がある場合に、WBL(後述する)
をリストアするために必要な全ての情報を提供することである。予備リンクは、
最後のSATページ書き込み操作が実行された後に書き込まれた全てのMAPか
ら収集されたリンクファイルを備えている。PLは、その書き換え操作中、新た
なCBに対してだけ書き込まれる。
セッサのSRAM13内には、様々なデータ構造が記憶されている。ライトセク
タリストは、最後のSAT書き込み後に書き込まれたセクタの論理アドレスを記
録する。その目的は、そのようなセクタのために、論理アドレスから物理アドレ
スへの正確な変換を与えることである。WSLは、4バイトの長さの128個の
エントリーのための容量を有している。この場合、各エントリーは、連続的に書
き込まれるセクタ群内の第1のセクタの論理アドレスと、セクタ群の長さとを記
憶する。セクタ群は、1つのブロックから他のブロックへとジャンプすることが
できない。WSLは、SAT書き込み直後に空になる。
一致する。したがって、フラッシュメモリ内のWSLの不揮発性コピーは、SA
Tが最後に書き込まれた時にライトポインタ(WP)によって規定される場所で
始まる連続的な場所で書き込まれる実際のセクタのヘッダーによって自動的に提
供される。したがって、WSLのコピーをフラッシュメモリ6に明確に形作る必
要はない。必要に応じて、これらのセクタは、次のMAPエントリーからのリン
ク領域の他、SATが最後に書き込まれた時のライトポインタ(WP)の位置を
含む制御ブロック領域内に規定される開始アドレスから走査することができる。
検索は、逆の順序で実行される。セクタの再配置およびブロックの消去が行なわ
れた場合があるため、先の複製エントリーは、フラッシュメモリ内に置かれた任
意の対応する廃棄セクタを有していなくても良い。好ましい場合には、WSLか
ら複製エントリーを単に除去するようにコントローラが構成される。
びシステムセクタリスト(SSL)は、最後のSAT書き込み後に書き込まれる
システムデータセクタ(RPおよびSWPのそれぞれによって指し示されたアド
レスに書き込まれる)および再配置されたセクタの論理アドレスを記録するマイ
クロプロセッサのSRAM13内でコンパイルされる。
Tブロックは、WSL、RSL、SSLエントリーによって補われる。このよう
な手続きは、WSL、RSL、SSLリリースと呼ばれる。このリリースは、必
要に応じて、ASBリリースを引き起こす。ASBリリースは、ASBが一杯に
なった時に生じる。ASBが一杯になると、各SATブロックが書き換えられ、
ASBが消去される。全てのASB内に書き込まれたページに関する情報は、A
SB走査を頻繁に行なわないで済むように、RAM内に記憶される必要がある。
そのため、ASBリスト(ASBL)は、SRAM13内に記憶される。
クのリストであり、ASBL内には各ASB毎に1つのエントリーが存在する。
図9は、ASBL内の1つのエントリーのフォーマットを示している。この場合
、LWP=このASBブロック内に最後に書き込まれたページの数であり、 NVP=ASB内の有効ページ数−1である。 ASBページ0...ASBページn=1つの列、指数はASBページ数、値は
対応するSATページ数である。N=1ブロック当たりのページ。
のSRAM13内に形成され、WSL内のセクタが配置されるブロックを規定す
る。WBLは、WSLリリース直後に空になる。
再構成される。このようにして構成されるSRAM内のリストは、電力が最後に
除去される前に存在したリストと正確に一致する。
L)と称されるWBLに類似する2つのリストは、コンパイルされて、SRAM
13内に記憶される。これらのリストは、RSLおよびSSLをそれぞれ補う。
RBLおよびSBLは、RSLおよびSSL内のセクタがそれぞれ物理的に配置
されるブロックを規定するとともに、WBLと類似するフォーマットから成る。
また、RSL、RBL,SSL、SBLは、メモリシステムの初期化中に、走査
プロセスによって再構成することができる。
を含むブロックは、たった1つだけその存在が許される。これは、カレントオブ
ソリートブロック(COB)と称される。廃棄もしくは削除セクタデータが他の
ブロック内で形成される場合、消去操作は、COBとして規定されたブロック上
で直ちに実行されなければならない。COBの現在のブロックアドレス、および
、このブロック内で廃棄となる或は削除されたセクタのリストは、以下にCOB
構造と称するデータ構造として、マイクロプロセッサのRAM13内に記憶され
る。COB構造は、初期化中において、廃棄ブロックのアドレスを含む領域を最
新のMAPエントリーからコピーするとともに、再構成されたWSLおよびWB
Lが解析された後に廃棄セクタアドレスを加え、削除されたセクタアドレスをこ
のブロックから読み込むことによって、確立される。新たな削除セクタ操作が実
行される度に、あるいは、新たな廃棄セクタが形成される度に、COB構造が更
新され、また、旧データが新たなブロック内で形成される度に、CB内の現在の
MAPエントリーにブロックアドレスがコピーされる。
ックの存在もまた許される。このブロックは、カレントオブソリートシステムブ
ロック(COSB)と称される。また、COSB構造は、COB構造と類似する
方法でSRAM13内に記憶される。COBおよびCOSBはそれぞれ、図10
に示されるフォーマット、すなわち、4バイトのブロック数領域28(これは、
COBまたはCOSBのブロックアドレスである)と、このブロックの内側の廃
棄もしくは削除セクタと対応する位置にマスクを有するビットマップである32
バイトの廃棄もしくは削除セクタマスク30とを有している。256ページから
成るブロックにおいて、このマスク30は32バイトを要する。
を早期に認識するため、次消去ブロックリストは、マイクロプロセッサのSRA
M13内に形成される。利用可能な消去ブロックは、その物理アドレスの順位を
上げる際に使用される。NEBは、M個の消去ブロックアドレス(例えば、M=
8)を有している。NEBリストは、次に利用可能な消去ブロックのリストであ
り、使用のために割当てられる最後の消去ブロックのアドレスに最も近く且つそ
れよりも高いブロックアドレスを有する消去ブロックで始まる。したがって、N
EB内のエントリーの数は制限される(例えば8個に制限される)が、NEBそ
れ自身は、次の8個の消去ブロックよりも多い情報を含んでいても良い。
メモリのアドレス空間の領域に適したMAPエントリー(CB内に記憶される)
から得られる。次消去ブロックリストは、これによって規定される全ての消去ブ
ロックが使用されるまで、アクティブNEBとしてSRAM内に残される。そし
て、全ての消去ブロックが使用された時点で、次消去ブロックリストは、適当な
MAPエントリーから再構成されなければならない。CBは、フラッシュメモリ
内の全てのブロックの消去状態を規定できる十分な量のMAPエントリーを有し
ている。NEBおよび対応するMAPエントリーは、メモリシステムの操作中に
ブロックを加減することによって更新される。セクタもしくは制御データ記憶装
置のために消去ブロックが割当てられた時に、エントリーがNEBから除去され
る。NEB内の他のブロックによって測られる領域内にあるブロックアドレスに
消去ブロックが形成されると、エントリーがNEBに加えられる(ただし、NE
Bが既に一杯である場合を除く)。
ともに、ブロック開始アドレス(連続するブロック群内の第1のブロックアドレ
ス)および群の長さ(群の連続するブロックの数)を規定する。
Lポインタは、マイクロプロセッサのSRAM内に記憶されるとともに、高速セ
クタアドレス変換を提供するために使用される。TBLPは、制御ブロックの初
期走査中に形成され、その後、新たなTBLエントリーがCB内に形成される度
に更新される。
ドレス変換をサポートする。ASBLは、全てのASBブロック及びこれらのA
SBブロックが関連付けられるSATブロックの物理アドレスを認識する。AS
BLは、初期化中に形成され、SATページ書き込み操作が実行される度に更新
されなければならない。ASBLエントリーは、以前のアクセスの順序でリスト
アップされる。すなわち、エントリーは、アクセスされる際、リストのトップに
起用される。対応するASBを現時点で有していないSATブロックがアクセス
されると、ASBが割当てられ、そのためのエントリーがASBLのトップに加
えられる。最も古くにアクセスされたASBを示すASBLの下位のエントリー
は削除される。
ントリーを組み込む32個の連続するSATエントリーのため、SRAM13内
に維持される。
および制御構造に割当てられる。 1.論理セクタ 容量は、カードの定格論理容量内で、各論理アドレスのための1つの有効デー
タセクタの記憶に割当てられる。この定格容量は、利用可能な物理容量からアイ
テム2〜8を引いたものよりも小さく、カード製造中においてフォーマッターに
より規定される。
ートブロックの他のコピーを記憶するために、第2のブロックが割当てられる。
ブロックが割当てられる。十分にコンパクトな制御ブロックは、大抵の場合、占
有面積が1ブロックよりも小さい。圧縮/書き換え操作間で書き込まれるエント
リーのための制御ブロックに別個のブロックが割当てられる。
ードの論理容量に比例している。
割当てられる。
クが割当てられ、POB(COSBおよびPOBの存在を許容する実施例におい
て)のために更に1つのブロックが割当てられる。したがって、許容される旧デ
ータセクタの最大数は、ブロック内のページ数によって設定される。
クのバッファである。データセクタ再配置のために、少なくとも1つの消去ブロ
ックが割当てられなければならず、同時に生じる可能性がある制御構造再配置の
ために1つの消去ブロックが割当てられなければならない。
されるべく割り当てられる。スペアブロックの数は、カード製造中においてフォ
ーマッターにより決定される。
し、例えば前述した項目1〜8に割当てられる容量を示す容量割り当てテーブル
が図16(これは、廃棄セクタのため、すなわち、COBのために割当てられる
1つのブロックだけを示しているが、無論、これよりも多くのブロックが廃棄セ
クタのために割当てられても良い。その場合には、メモリシステム内のCOSB
やPOBのための対策が必要となる)に示されている。
時に書き換えられる。大抵の場合、それは、1ページの粒度をもって行なわれる
。すなわち、修正されたセクタアドレスを含むSATページだけが書き換えられ
る。しかしながら、極稀に、SATブロック全体の書き換えが必要な場合がある
(「SATブロック書き込み」と呼ばれる)。SAT書き換えが必要とされる場
合には、追加SATブロック(ASB)が形成され、その中に、必要とされるペ
ージだけが書き込まれる(「SATページ書き込み」と呼ばれる)。特定のSA
Tブロックに専用の1つのASBがあっても良く、また、全体として、ASBの
制限された数Nが存在していても良い。Nの値は、書き込み特性と容量オーバー
ヘッドとの間の適当な妥協点として選択される(例えば、N=8)。
実行されるまで存在する。ASBで一杯となるSATブロック上もしくはASB
の割り当てが取り消されるSATブロック上でSAT書き込みページが必要とさ
れる時に、SATブロック書き込みが実行される。SATページ書き込みが必要
とされ、対応するSATブロックが関連するASBを有しておらず、また、N個
の全てのASBが既に割当てられている場合には、新たなASBの割り当てが成
される前に、既存のASBのうちの1つの割り当てが取り消されなければならな
い。割り当てが取り消されるASBは、最も長い時間の間書き込まれないでいた
ASBとして選択される。ASBの割り当ての取り消しは、SATブロックの書
き込みと廃棄SATブロックおよびASBの消去とを必要とするため、幾分時間
を消費する手続きである。
5上でインターリーブ(交互配置)書き込み操作を実行することができる。これ
により、性能を十分に向上させることができる。したがって、コントローラチッ
プ8は、複数のフラッシュチップ5、例えばメモリシステムに組み込まれる4個
のフラッシュチップの列を制御しても良い。4個のフラッシュチップのメモリ空
間は、コントローラにより、仮想ブロックのセットとして編成される。各仮想ブ
ロックは4つのブロックから成り、1ブロックは4つのチップ5のそれぞれから
のものである(チップは共に永久にリンクされる)。各仮想ブロック内の4つの
ブロックは、1チップ内に同じブロックアドレスを有するブロックである。この
ような編成によれば、仮想ブロックを形成するリンクされた複数のブロックを1
つの大きなブロックとして処理することができ、したがって、セクタの個々の消
去ブロックの代わりに仮想ブロックを使用して、単一のフラッシュメモリシステ
ム10において述べたと同様のアルゴリズムおよびデータ構造の全てを使用する
ことができる。ページ書き込み操作は、全てのインターリーブチップにわたって
同時に実行される。ライトポインタ(WP)およびRP、SWPはそれぞれ、連
続的にページアドレスを進め、コントローラ8内に設けられたハードウエアチッ
プイネーブルデコーダに供給されるアドレスビットの順序により、リンクされた
ブロックのページは、図11に示される順序で連続的にアクセスされる。すなわ
ち、各ポインタWP、SWP、RPは、1つのPAから他のPAに移動する際、
1つのチップから他のチップへと移動する。これは、仮想アドレスを使用するこ
とによって達成される。固有の仮想アドレス(VA)は、全てのチップ内の各物
理セクタに割当てられる(例えば、前述したNANDを基本とするメモリシステ
ムにおいて、VAは各ページのために割当てられる)。1つだけVAを増加させ
ることによってライトポインタが1つのチップから他のチップへと移動するよう
に、仮想アドレスが割当てられる。仮想アドレスは、各仮想ブロックのリンクさ
れたブロックを介して、図11に示されるようなパターンで、チップからチップ
へと増大する。
して処理する。セクタの仮想アドレスは、図12に示されるフォーマットを成し
ている。これは、チップハイ(ChipHigh)部分およびセクタの13ビットのブロ
ックアドレスを備えた仮想ブロック部と、6ビットのページアドレスおよびチッ
プロウ(ChipLow)部分を備えた仮想ページ部とから成る。チップハイ部分は、
Chighビットの5ビットチップ数であり、チップロウ部分は、Clowビッ
トの5ビットチップ数である。この場合、 Chigh=チップアレー内のチップの縦列数、 Clow=チップアレー内の横列数である。 仮想アドレス(VA)から物理アドレス(PA)を得るため、コントローラは
、図13に示されるように、チップハイ部分とブロックアドレス部分との間にチ
ップロウ部分を逆行させるようにVAを単に再編成する。したがって、任意のセ
クタのための単一のチップメモリシステムにおいて、VAはPAと等しい。
リーブ(交互配置)しても良い。仮想ブロックにおける消去操作は、インターリ
ーブされたチップのリンクされた全てのブロックの同時消去として実行される。
1つのチップ内の1つのブロックが不良ブロックである場合、コントローラは、
等しいブロックアドレスを有する他のチップの全てのブロックを不良ブロックと
して処理する。
って可能状態もしくは不能状態に設定されるブートブロックの制御バイト状態に
よって、インターリービングが可能であったり、不能であったりする。
スすなわちPAsが予め使用される場合に、仮想ブロックアドレスおよびVAs
をそれぞれ使用する。コントローラは、ホストデータセクタ書き込みコマンドを
受け取ると、関連するライトポインタが指し示しているPAを割当てることによ
って、入ってくるLAをPAに変換する。コントローラは、複数のライトポイン
タを制御して、各ライトポインタをPAを通じて移動させる。その結果、ライト
ポインタは、消去される仮想ブロック(消去された仮想ブロックはNEBで認識
される)のそのセクタの仮想アドレス(VAs)を通じて、連続的に移動する。
操作のタイミングを示している。以下、図15および図19を参照しながら図1
4について説明する。図15は、メモリシステムのコントローラチップ8を詳細
に示すブロック図である(図2のコントローラチップが図15に示される形態を
成していても良く、図2および図15の両者において同じ構成要素が同一の符号
で示されている)。図19は、コントローラチップ81と4つのフラッシュチッ
プ1’,2’,3’,4’とを備えたメモリシステム10の概略図である。各フ
ラッシュチップは、それ自身のリード/ライトバッファ71’,72’,73’
,74’を有している。
ば、PCカードATAポート、コンパクトフラッシュ(登録商標)またはIDE
ポートと、O/PおよびデュアルポートSRAMセクタバッファ9に接続された
ホストインタフェース&レジスタ80と、データパスコントローラ82と、EC
Cジェネレータ&チェッカ12と、フラッシュメモリインタフェース(FMI)
84とを有するコントローラチップ8’を示している。データパスコントローラ
82と、ECCジェネレータ&チェッカ12と、フラッシュメモリインタフェー
ス(FMI)84は全て、セクタバッファ9に接続されており、また、FMIは
フラッシュメモリポート86に接続されている。また、コントローラ8は、マイ
クロプロセッサ11(RISCプロセッサの形態を成す)と、プロセッサSRA
M13と、プロセッサマスクROM88と、外部プログラムRAMまたはROM
92のためのポートとを有している。また、RISCプロセッサ11のため、オ
プションで、デバッグポート94が設けられていても良い。データおよびコマン
ドは、マイクロプロセッサバス91を介して、コントローラ8’(セクタバッフ
ァ9を除く)の様々な構成要素間で通信される。
データセクタ1,2,3,4から成る4つのセクタ書き込み)がATAポートO
/Pで受けられると、デュアルポートセクタバッファ9のバッファ1にセクタ1
が書き込まれる。これにより、コントローラのデータ管理操作のために利用可能
なセクタバッファ9のバッファ2が残される。セクタ2が受けられると、セクタ
2はバッファ2に直接に書き込まれ、同時に、セクタ1がバッファ1からフラッ
シュメモリポート86に移動される。そして、セクタ1は、このフラッシュメモ
リポート86から、4つのフラッシュチップのうちの1つ(チップ1’)のリー
ド/ライトバッファ71’へと書き込まれる。その後、セクタ2は、バッファ2
からフラッシュポート86へと送られ、そこから、4つのフラッシュチップの他
の1つ(チップ2’)のリード/ライトバッファ72’へと書き込まれる。この
ようなことが起きている間、セクタ3がセクタバッファ9のバッファ1に直接に
受けられる。セクタ3はチップ3のバッファ73’に書き込まれ、セクタ4は、
セクタバッファ9のバッファ2に受けられた後、チップ4のバッファ74’に書
き込まれる。その後、セクタ1,2,3,4は、チップ1’,2’,3’,4’
のメモリアレー61’,62’,63’,64’内の関連する割り当てられた物
理セクタにそれぞれ書き込まれる。図14は、全ての意図および目的のため、そ
のうようなセクタ書き込み操作のそれぞれが前のセクタ書き込み操作の直後に開
始される形態を示しているが、無論、4つのセクタ1,2,3,4が略同時にフ
ラッシュチップ1’〜4’に書き込まれても良い。また、ホストデータセクタ1
〜4が書き込まれるセクタの物理アドレスは、関連するライトポインタの位置を
決定する前述したアルゴリズムによって決定されても良い(すなわち、仮想アド
レスの連続使用)。
サからコントローラに送られ、コントローラが多重セクタ書き込みを4つのセク
タの群(この例では、4つのメモリチップを使用する)に分割するようになって
いても良い。この場合、そのような各群は、図14において前述したように、イ
ンターリーブ書き込みシーケンスで、フラッシュメモリに書き込まれる。
換プロセスを詳述する。
で実行される操作である。 ・有効セクタ物理アドレス ・論理セクタが削除された(あるいは、論理セクタが決して書き込まれない)
情報 ・エラー状態が生じた情報
は、全ての読み込み操作において実行される。変換される論理セクタアドレス(
LA)がホストプロセッサからコントローラ8’によって受けられると、アルゴ
リズムが実行され(ボックス40)、変換される物理アドレスを有するセクタが
、そのSATエントリーの最後の書き込み後に、予め、書き込まれ或は削除され
た可能性があるか否かが認識される。セクタが予め書き込まれ或は削除されたと
いう結論は、100%の確実性を有していなければならない。すなわち、セクタ
が予め書き込まれ或は削除されたという結論は、高い確率で正しくなければなら
ない。これは、連続するセクタ系列の開始アドレスと終了アドレスとを示す値の
対の限られた数を維持することによって、また、変換されるアドレスがこれらの
任意の範囲内にあるか否かを認識することによって、実行される。これらの範囲
が最終的に非連続となって、セクタが予め書き込まれ或は削除されたという結論
が不確実になっても良い。LAが任意の範囲内にある場合、「繰り返しの可能性
は?」の問いに対してYESで答える(図17のボックス42)。LAが任意の
範囲内にない場合には、NOと答え、VAを見つけるために、SATまたはSA
Tキャッシュへと進む(ボックス44)。ここから、物理セクタが不良であるか
否か(46)、あるいは、削除されたか否か(50)を決定する。LAが書き込
まれないセクタに対応している場合には、ボックス50でVA=削除(48)と
なる。ボックス42でYESと答えると、ボックス52で、WSLもしくはSS
L(LAがファイルに対応しているか或はシステムデータに対応しているかどう
かに応じて)を検索する。ボックス54で、LAが見つかる(YES)と、VA
を演算し(56)、物理セクタのヘッダー1b内に記憶された論理アドレスが、
コントローラマイクロプロセッサによって読み込まれる(58)。LA=LA1
である場合(ボックス60)には、演算されたVAは正しい。LAが54で見つ
からない場合には、RSL内でLAを検索し(62)、LAがRSL内で見つか
らない場合には、SATまたはSATキャッシュへと進んで、そこからVAを得
る(44)。SATもしくはSATキャッシュ内で見つかったVAが不良もしく
は削除されている場合(46,50)には、前述したように、VAからLA1を
得て(58)、LA=LA1であるかどうかをチェックする。
のフローチャートに詳細に示されている。図20は、たった2つのライトポイン
タWP,RPを使用するメモリシステムにおいて、WSLまたはRSL内で見出
されるLAのためのVAを得るために実行されるステップを示している。無論、
このフローチャートは、メモリシステムがシステムライトポインタ(SWP)を
も組み込んでいる場合において、SSL内で見出されるLAのためのVAを与え
ることができるように拡張されていても良い。プロセスはNumFromEnd(NFE)
を設定するボックス110で開始される。NumFromEndは、WSL(またはRSL
)の終端から書き込まれる所定のセクタ(WSLまたはRSL内に見出されるセ
クタ)までのセクタ数である。LAがWSL内で見つけられた場合には、P=W
Pに設定し、LAがRSL内で見つけられた場合には、P=RPに設定する。そ
して、その後、PG=P.Pageに設定する。この場合、P.Pageは、P
の値によって表わされるライトポインタのページのことである(ボックス102
参照)。104において、PG>NFEである(すなわち、LAが最後に書き込
まれたブロック内にある)場合には、VA=P−NFE−1、すなわち、NFE
−1のセクタが関連するライトポインタの位置から離れる。PG<NFEである
場合には、106で、P==0であるか否か、すなわち、最後のWBL/RBL
エントリーに対応するブロックが十分に書き込まれたか否かが決定される。書き
込まれている場合(すなわち、P==0)には、NotLastが0に設定され、書き
込まれていない場合には、NotLastが1に設定される。その後、108において
、与えられたセクタが存在するブロックと最後のブロックとの間のブロック数Nb
lockが、以下のアルゴリズムを使用して演算される。 Nsectは、与えられたセクタと最後に書き込まれたブロックページ0との間の
セクタ数である。 Nsect=NumFromEnd−PG Nblock=Nsect/BlockSize+NotLast
合、PageNum=BlockSize− Nsect% BlockSizeである。その後、以下の手法を使
用して、LAがWSL内にある場合には、112で、WBLからブロックアドレ
ス(BLAddr)を取得し、LAがRSL内にある場合には、114で、RBLから
ブロックアドレス(BLAddr)を取得する。この場合、ブロックアドレスは、所定
のセクタを含むブロックの仮想アドレスである。 LAがWSL内にある場合には、BlAddr=RBL[LBL−NBlock]、この場合、LB
LはWBL内の最後のエントリーのインデックス; LAがRSL内にある場合には、BlAddr=RBL[LRBL+NBlock]、この場合、L
RBL はRBL内の最後のエントリーのインデックスである。
の場合、Page0は、与えられたセクタを含むブロック内のページ0の仮想アドレ
スである。
クス44)ために使用されるプロセスのフローチャートである。図21は、一般
に自明であるが、以下、特に番号が付与されているボックスについて説明する。
Entryである場合には、LAがSATキャッシュ内にある。LA<=LA<First
CacheEntry.LA+CacheSize 、この場合、FirstCacheEntry.LAは、キャッ
シュ内の最初のSATエントリーに対応するLAであり、(全体の)CacheSize
は、SATキャッシュ内のエントリーの数である。
与えられたLAにおけるSATブロック数であるSBNumと、与えられたLAにお
けるSATページ数であるSpageとを演算する。
TBLエントリーの数である。この場合、TBLNum=SBNum/8である。
れば、最後にアクセスされたエントリーで始まる32個のエントリーがキャッシ
ュされる。その後、十分なエントリーが無い場合には、ページ内の最後のエント
リーで終わり且つ最後のセクタアクセスを含む32個のエントリーから成る1つ
の群がキャッシュされる。
ステップを示すフローチャートである。ページヘッダー内に記憶されたヘッダー
パラメータ(HP)は、論理アドレス(LA)の1だけ増大された値である。こ
れは、削除されたセクタが、そのヘッダー内の全てのビットを0に設定すること
によってマークされているからである。このLA=0をヘッダー内に記憶するこ
とはできない。したがって、LA1=HP−1に設定する。
テップのシーケンスを示すフローチャートである。コントローラは、LA(ホス
トから受ける)をVAに変換することによってスタートする(ボックス130)
。これは、既に説明した図17のフローチャートに示されたプロセスを実行する
ことによって成される。LAがVAに変換されると、直ちに、アドレスVAを有
する物理セクタの内容が、コントローラのバッファ9に読み込まれる。その後、
コントローラは、セクタ(すなわち、セクタの内容)が削除されたか否か或は不
良であるか否かをチェックする(ボックス132)。セクタが削除され或は不良
である場合、コントローラは、ホストプロセッサのデータバッファの全てのバイ
トをOxFFに設定する(ボックス134)。セクタが削除されたセクタでない場合
には(ボックス136)、コントローラは、エラー状態をホストに戻す(ボック
ス138)。セクタが削除されたセクタである場合には、コントローラは、有効
状態をホストに戻す(ボックス137)。ボックス132において、セクタが削
除或は不良でないことをコントローラが決定した場合には、コントローラは、そ
のままボックス137に進む。すなわち、有効状態をホストに戻す。
ップのシーケンスを示すフローチャートである。図23は、ホストファイルデー
タの書き込み操作、すなわち、ライトポインタ(WP)による書き込みだけを扱
う。しかしながら、メモリシステムがシステムデータのための別個のライトポイ
ンタ(すなわち、SWP)を使用する場合には、図23の操作を適当に拡張して
、別個のシステムデータの書き込みを扱えるようにしても良い。コントローラは
、LA(ホストから受けられる)をVAに変換することによってスタートする(
ボックス150)。これは、既に説明した図17のフローチャートに示されるプ
ロセスを実行することによって成される。152で、セクタが不良である場合に
は、コントローラは、エラー状態をホストに戻す(154)。セクタが不良でな
い場合には、セクタが削除されるか否かをチェックする(156)し、セクタが
削除される場合には、その後、WPが有効か無効かをチェックする(158)。
全てのブロックが書き込まれてしまっている場合には、WPは無効(WP==0
)であり、WPを消去ブロックに移動させなければならない。WPが有効でない
場合、WPを新しい(有効)物理セクタアドレスに設定する(160)。WPが
有効である場合には、WSLにLAを加え(162)、任意のWSLもしくはR
SLリリースや、必要なCBおよびCBPT圧縮を実行する。その後、繰り返し
可能性評価アルゴリズム(図17のボックス40)から範囲を更新し(164)
、コントローラバッファからWPのアドレスにセクタを書き込み(166)、有
効状態の値をホストに戻す(168)。ボックス156で、セクタが削除されな
いことが分かると、COB内にVAがあるか否かをチェックする(157)(V
AがVBと一致している場合、VAはCOB内にある。この場合、VBは、SR
AM13内に記憶されたCOB構造内の仮想ブロック数領域(これは、仮想ブロ
ックアドレス…図12参照)である)。VAがCOB内にある場合には、コント
ローラのSRAM13内に記憶されたCOB構造内にVAを廃棄として記録し(
159)(これは、SRAM13内のCOB構造のビットマスク領域内で、対応
するビットを1に設定することにより成される)、その後、ボックス158に進
む(WPは有効か)。VAがCOB内にない場合には、COBを変更し(161
)、その後、ボックス159に進む(VAを廃棄としてマークする)。
フローチャートである。図24は、一般に自明であるが、以下の注記と併せて読
まなくてはならない。すなわち、 ボックス200(VA.Bl、VB):VA.BlはVAの仮想ブロック領域
であり、VBは先に説明したものと同じである。 ボックス202(COBは無効か):VB=0の場合、COBは無効である。
VBが0である場合、これは、この時点で旧データが無いことを示している。 ボックス203,204(MaxRelの演算):MaxRelは、COBから再配置され
るセクタの最大数である。MaxRel=P.Page−1である。この場合、P.Pageは、W
PまたはRPのページ領域(アドレス)である。 ボックス205,206(ダミーエントリーをWSLに加える):再配置され
るブロックがまだ一杯に書き込まれていない場合には、対応する「ダミー」のセ
クタLAsを最後のWSL(RSL)エントリーに加えなければならない。 ボックス207(セクタの再配置):図25を参照。 ボックス208(WMAPの書き込み):WMAPをCBに書き込む。この場
合、EB+VBおよびビットマップ内の対応するビットは1に設定される。必要
に応じて、CBの書き換えを実行する。 ボックス209(リストの更新):VBと等しいWRBArrayエントリーを見つけ
、それを無効としてマークするとともに、WRBArray内の同じVBに関する任意の
他のエントリーを無効としてマークする。WRBArrayは、実際には、最初にカウン
トアップするWBLエントリーと最後にカウントダウンスルRBLエントリーと
ともに、メモリの同じ領域内に実際に記憶されるWBLおよびWSLリストであ
る。2つのリストが中央で交わると、WRBArrayが一杯になる。 ボックス210(COBのセットアップ):COB構造をSRAM内で更新す
る。VB領域はVA.Blに設定される。VA.Pageに対応する廃棄および削除マ
スク(Obs and Del Mask)ビットは1に設定される。他の全てのビットは0に設
定される。
を示している。これは、以下の注記と併せて読まなくてはならない。すなわち、 ボックス220,222,230:SRAM内のCOB構造の廃棄および削除
マスク領域を通り抜けるループを実行する。 ボックス223(セクタは有効か):ODMask[i]=0である場合、セクタは
有効である。すなわち、COBの廃棄および削除マスクにおける0値は、このペ
ージが有効セクタを含んでいることを示している。 ボックス224,225:RPによって指し示されるブロックが既に一杯に書
き込まれている場合には、RP=0である。 ボックス226(ページヘッダーからのLAを記憶する):ページヘッダーか
ら得られたLAは、一時的に記憶されて、エントリーをRSLに加える際に使用
される。 ボックス225(RP=0):エントリーをRSLに加える。必要に応じて、
WSL/RSLリリースを実行する。
めに実行されるステップを示している。図25のボックス227でRPを設定す
るために、同様のプロセスが使用される。図26は、以下の注記と併せて読まな
くてはならない。すなわち、 ボックス240(WRArrayが一杯ではないか):Last<LastRE−1である場合
、WRArrayは一杯ではない。ここで、Last(全体的)は最後のWSLエントリー
のインデックスである。LastREは、最後のRSLエントリーのインデックスであ
る。 ボックス242(WRBArrayが一杯ではないか):LBL<LRBL−1である
場合、WRBArrayは一杯ではない。ここで、LBLおよびLRBLは、図20にお
いて先に定義したものと同様である。 ボックス244(リストのリリース):SATページ書き込み操作を実行する
。必要であれば、SATブロック書き込みおよびCB書き込みを実行する。 ボックス246(NEBを満たす):CB内に記憶されたMAPから次のN(
N=NEBSize)の消去ブロックを選択する。 ボックス248(WMAPの書き込み):ErBlockに設定されたリンク領域お
よび0に設定されたビットマップ領域内の対応ビットとともに、WMAPを書き
込む。必要に応じて、CB書き換えを実行する。
ートである。これは、初期のステップにおいては、書き込み操作(図23参照)
に類似している。すなわち、LAがVAに変換され(250)される。252で
、セクタが削除される場合には、エラー状態をホストに戻す(254)。セクタ
が削除されない場合には、VAがCOB内にあるか否かをチェックして(257
)、VAがCOB内に無い場合には、COBを変更する(261)(図24と同
様)。VAがCOB内にある場合には、COB内でVAを削除としてマークし(
269)、その後、デュアルポートSRAM9(コントローラ内)のバッファの
うちの1つを複数の0で一杯にする(271)。その後、バッファからのこの「
オールゼロ」ページを、削除されるセクタに書きこむ(これによって、セクタを
削除する)。その後、有効状態をホストに戻す(275)(セクタが削除された
ことを確認する)。
め、単一のライトポインタシステム(すなわち、WPだけ)に関してこれらを説
明する。しかしながら、無論、マルチプルライトポインタシステム(WP、SW
P、RP)に適するように手続きを拡張しても良い。全てのデータおよび制御構
造は、初期化中の走査が一般的に成されないように特別に構成される。殆ど全て
の制御構造(WSLおよびWBLを除く)は、通常、CB内に記憶された対応す
る情報から得られる。カードの初期化中においては、以下の操作を実行すること
が必要である。 1.ブートブロックから最後の制御ブロックポインタテーブルエントリーを読
み込み、CBブロックの場所を確認する。 2.CBを操作することによってTBLPを再構成する。 3.制御ブロック内の最後のTBLエントリー内で規定されるライトポインタ
の位置の後に連続的に続くページのヘッダー/ECC領域を走査して、最後のS
AT書き換え後に書き込まれたセクタを認識するとともに、WSLおよびWBL
を再構成する。 4.CB内の対応するMAPエントリーからNEBを構成する。 5.COBおよびASBLを構成する。 6.最後のMAPのErB領域内で参照されたブロックが実際に消去されたか否
かをチェックする。消去されていない場合には、消去操作を終了する。
の最後のTBLエントリーから読み込まれ、その場所の次のページで、ページヘ
ッダーの走査が実行されて、プロセッサのSRAM内でWSLおよびWBLが再
構成される。消去場所が見つかると、最後のSAT書き換え後に書き込まれたセ
クタ系列の末端に辿りつく。 このようなセクタ走査では、ライトポインタ(WP)が、ブロックの末端から
、隣接していないブロックの先頭へとジャンプすることができる、という事実を
考慮に入れなければならない。WPによって成される全てのブロック移動は、C
B内のMAPエントリーのリンク領域内に記録される。
成することができる。また、COB構造を構成するためには(その中の削除セク
タを認識するためには)、CB内の最後のMAPエントリーの廃棄(Obs)領域
内にアドレスが規定されているこれらのセクタを含む現在のブロックを走査する
必要がある。このブロック内の廃棄セクタを確認するためには、WSLおよびW
BLを走査することも必要である。ASBLページを記録するためには、TBL
からASBアドレスを認識し、その後、それらのヘッダー/ECC領域を走査し
なければならない。
力が除去された状況下であっても、記憶されたデータが失われないことが必要で
ある。しかしながら、電源ONの直後にメモリシステムが全ての正常状態を回復
する必要はなく、正常に動作できるだけで良い。任意の異常状態が何時検知され
ようとも、正常状態は、例外として、その後に回復され得る。
テムの正常状態が低下する。 1.ホストからのデータセクタの書き込み 2.移動されるデータセクタの書き込み 3.制御データブロック(CBまたはBB)へのエントリーの書き込み 4.制御データブロック(SATまたはCB)へのページの書き込み 5.廃棄セクタもしくは制御データを有する任意のブロックの消去
ドが終了してセクタを再び書き込むことができるといった情報は、ホストに与え
られない。不完全に書き込まれたセクタは、不完全書き込み操作の結果として、
フラッシュメモリ内に存在している場合がある。これは、CB内の最後のリンク
パラメータによって規定されるブロック内のページヘッダーを読み込むことによ
ってライトポインタの値が設定されると、初期化中に検知される。最後に検知さ
れたセクタは、そのECCをチェックするために完全に読み込まなければならな
い。また、次のページは、それが完全に消去されることをチェックするように読
み込まれなければならない。不完全に書き込まれたセクタが検知される場合には
、他の全てのセクタは、次の消去ブロックの最初に、新たなライトポインタ位置
へと再配置され、その後に、ブロックが消去されなければならない。
て検知される。セクタを再配置させてブロックを消去する場合と同じ動作が成さ
れなければならない。また、ライトポインタの直前の論理セクタアドレスと、C
B内の廃棄(Obs)パラメータによって規定されるブロック内の廃棄セクタの論
理セクタアドレスとを比較することによって、不完全な再配置操作が検知されな
ければならない。保留の任意のセクタ再配置は、初期化中に完了されなければな
らない。
がチェックされると、通常の初期化中に検知される場合がある。エントリーのE
CCがエラーを示している場合には、そのエントリーを無視すべきである。CB
またはBBエントリー書き込み操作を開始した初期の動作は正確に完了されず、
この操作が通常の動作中に繰り返される時、エントリーは、その後、正確に書き
込まれる。
れると、通常の初期化中に検知される場合がある。ページのECCがエラーを示
している場合には、そのページを無視すべきである。ASBページ書き込み操作
を開始した初期の動作は正確に完了されず、この操作が通常の動作中に繰り返さ
れる時、ページは、その後、正確に書き込まれる。
は無関係に、フラッシュメモリ内に存在するようになる。この状態が初期化中に
検知される必要はない。また、ブロックは、「損失ブロック」として存在するこ
とが許されても良い。ブロック書き込み操作を開始した初期の動作は正確に完了
されず、この操作が通常の動作中に繰り返される時、ブロックは、その後、正確
に書き込まれる。通常の動作の後段で、損失ブロックは、そのMAP状態に関す
る矛盾、あるいは、システム内の消去ブロック数における矛盾を発見することに
よって検知される(図16のキャパシティマップ参照)。その後、必要に応じて
、除外ルーチンは、フラッシュメモリ全体を走査することによって、そのブロッ
クを認識して消去する。
ようになる。この状態は、CB内の最後のMAPエントリー内のErB領域によっ
て参照されるブロック状態がチェックされると、初期化中に検知される。必要に
応じて、このブロックの再消去を実行することができる。
できる。例えば、消去操作を扱う他の方法は、2つのCOB(および、2つのC
OSB)の存在を常に許容することである。この利点は、メモリ容量を最大限に
利用できることである。前述した実施例においては、1つのCOBだけが許容さ
れたが、COBを作りたいブロック内にライトポインタがある場合には、1つの
POBの一時的な存在を許容しても良い。これは、POBを有することが必要な
場合に、POBのために割当てることができる十分な消去メモリ容量が常に存在
していなければならないことを意味する。したがって、このメモリ容量を最大限
に利用できることは有益であり、これを実現する1つの方法が、2つのCOBの
存在を常に許容すること、すなわち、POBを不要にすることである(必要な場
合、第2のCOBがPOBとして作用することができる)。そのような2COB
システムにおいて、新たなCOBを形成することが必要な場合には、2つのCO
Bのうちの古い方のCOBを消去する(古い方のCOB内にライトポインタが無
い場合には、新しい方のCOBを消去する)。
説明に関し、以下、ページ内にデータを記憶する幾つかの別の方法を提案する。
図28は、典型的な528バイトのNAND型もしくはAND型フラッシュメモ
リのページ1の物理的な群分離を示している。ページは、512バイトの「デー
タ領域」300と、16バイトの「スペア領域」302とを備えている。図3に
関して前述した実施例において、コントローラ8は、データ領域300内に51
2バイトの情報1a(例えば、1つのホストデータセクタ)を記憶し、スペア領
域302内にヘッダー1bおよびECC1c(以下、これらをまとめて、オーバ
ーヘッドデータと称する)を記憶する。しかしながら、ページ1内における他の
データ配置も可能である。例えば、図29に示されるように、データ領域300
の第1の部分303内にヘッダ1bおよびECC1cが記憶され、データ領域3
00の残りの部分とスペア領域302とから成る部分304内に情報1aが記憶
されても良い。
ヘッダー1bおよびECC1cを書き込むとともに、残っているヘッダーおよび
ECCの両側の空間内にホストデータセクタ(「ユーザデータ」と称しても良い
)を書き込むこともできる。ODのオフセット量(オフセットS)は、例えば、
(a)ページ1の物理アドレス(PA)、あるいは、(b)ページ1に書き込ま
れるユーザデータ(すなわち、ホストデータセクタ)の第1のバイト内の1また
は複数のビットに応じて決定されても良い。図31(a)は、セクタ書き込み操
作の開始前におけるコントローラバッファ320内のデータの配置を示している
。データは、ユーザデータの第1の部分332として、また、ヘッダデータの第
2の部分324として配置されている。図31(b)は、オフセットSがユーザ
データの最初のバイト内の1または複数のビットによって決定される(前述した
選択(b))書き込み操作の終了後における、フラッシュメモリページ内のデー
タの配置を示している。データは、ユーザデータから成る第1の部分326とし
て記憶され、その後、ユーザデータから成る第2の部分328として記憶され、
その後、ヘッダー1bおよびECC1cとして記憶され、その後、ユーザデータ
から成る第3の最終部分330として記憶される。部分326と部分328とを
足した長さは、部分326内のデータに依存する。部分326の長さは最小オフ
セット以下に規定され、部分328の長さは、正確なオフセットSを与えるため
に、部分326内のデータに基づいて演算される。ユーザデータから成る第1お
よび第2の部分326,328は別個に認識され、これにより、第1の部分32
6は、1つの操作でコントローラによりフラッシュメモリから読み込まれるとと
もに、次の操作でコントローラによって読み込まれる第2の部分328の長さを
決定するためにコントローラによって演算される。図32は、書き込み操作中に
コントロールバッファからフラッシュメモリにデータを送信するために使用され
るコントローラコマンドのシーケンスを詳細に示した表である。
つの利点は、全てのセクタにおいて、オーバーヘッドデータが528バイトデー
タセグメント内の同じ位置に挿入されないという点である。これにより、メモリ
アレーのカラム欠陥といったフラッシュメモリ内のシステム故障時に、多数のセ
クタにおいて、貴重なオーバーヘッドデータが同時に失われることが防止される
。
後のコントローラバッファのデータ配置結果を示している。バッファ内のデータ
が配置された後に、ユーザデータから成る第1の部分322およびヘッダーデー
タから成る第2の部分324が配置され、その後に、ECCから成る第3の最後
の部分325が配置されているのが図33から分かる。図34は、読み込み操作
中にフラッシュメモリからコントローラバッファへデータを送信するために使用
されるコントローラコマンドのシーケンスを詳細に示す表である。
ては、マルチプルフラッシュチップメモリシステムにおいて既に説明したように
、複数のチップに対して略同時に書き込む技術は、物理的なページサイズがコン
トローラによるセクタ書き込みの多様なサイズである単一のメモリチップにデー
タを書き込むために使用することもできる。例えば、コントローラが均一のサイ
ズのセグメントにデータを書き込む場合、メモリの各ページは、コントローラに
よって書き込まれる(ユーザ+オーバーヘッド)データのセグメントサイズの4
倍である。
のタイプのメモリにも適用できる。AND型フラッシュメモリの場合、ブロック
の各ページは、図28のNANDページフォーマットと同じフォーマットを有し
、前述したようにページ内でデータを任意に配置することができる。本発明のコ
ントローラは、たとえ、不良セクタを含むブロック内で、消去されるそのブロッ
ク内の個々の良好なセクタが個別に消去される場合であっても、セクタのブロッ
ク内のメモリを依然として消去する。すなわち、コントローラは、不良セクタを
含む任意のブロックを不良セクタとして処理せず、その代わり、それらを良好な
(消去可能な)ブロックとして処理し、これらのブロック内の良好なセクタを利
用する。しかしながら、AND型の実施例において、コントローラは、SATブ
ロックもしくはASBsに関し、全て良好なセクタを含むブロックのみを使用す
る。
ンターリーブチップ書き込み操作を使用するマルチプルフラッシュチップシステ
ムである場合、また、仮想ブロックのうちの1つの任意のセクタブロック(ペー
ジ)が不良セクタを含んでいる場合、コントローラによって、ライトポインタは
、このセクタをスキップして、ブロック内の次の良好なセクタへと進む。例えば
、cをチップとし、sをセクタとした場合、4つのセクタ書き込みのバーストが
c3s5、c4s5、c1s6、c2s6であって、c1s6が不良セクタであ
ると、順序は、c3s5、c4s5、c2s6、c3s6となる。これは、1つ
の仮想ブロック内の1つのブロックが1または複数の不良セクタを含んでいる場
合にコントローラがそのブロックを不良ブロックとして処理し且つ仮想ブロック
全体を不良仮想ブロックとして処理するNAND型メモリに基づく実施例と対称
的である。
システムのコントローラは、均一サイズの528バイトセクタの状態で、データ
構造をフラッシュメモリに書き込んだり、データ構造をフラッシュメモリから読
み込んだりする。図35は、そのような3つのセクタ1,2,3がNORメモリ
のブロック4’内にある状態を概略的に示している。NORブロック内の1列の
メモリがたった512バイトであるため、NOR内の各セクタは、1列を満たす
とともに、次の列を満たすように回り込むようになる。しかしながら、NORメ
モリ内のセクタを異なった方法で規定することもできる。528バイトを下回る
或は上回るサイズのセクタを使用することもでき、また、ブロックは、ワンサイ
ズ以上大きいセクタを含んでいても良い。コントローラは、NAND型およびA
ND型メモリページに関して既に述べた任意の様々な異なる方法により、ユーザ
およびオーバーヘッドデータを含む各セクタ内でデータを配置しても良い。
OR型のメモリアレーである場合、メモリシステムの物理セクタは、メモリアレ
ーそれ自身の物理アーキテクチャと特定の関係を有している必要は全くない。例
えば、セクタがアレーの列(ページ)に対応している必要はなく、また、1つの
セクタとこれに隣接するセクタとの間の境界を認識できるように物理的特徴が存
在している必要もない。常に1つのユニットとしてコントローラにより処理され
るメモリセル群として、セクタを解釈することができる。異なるセクタは同じサ
イズを有している必要はない。また、セクタの物理的構造は、セクタ内に記憶さ
れるデータに依存しない。また、メモリセルの列(ページ)内の欠陥領域が容認
され且つ物理セクタへの書き込み時にコントローラによって飛び越えられるよう
な実施例も可能である。
または複数のブロック内に記憶される一方で、コントローラにアクセス可能な別
個の不揮発性メモリをメモリシステム10に設けることもできる。この場合、コ
ントローラは、この別個のメモリ内にSATを記憶する。
可能な消去ブロックを常にその昇順で使用する代わりに、コントローラは、消去
ブロックを他の順番で使用する。この変形例において、NEBリストは、現在利
用可能な全ての消去ブロックの選択されたサブセットを含んでおり、NEBリス
ト内の最初のブロックアドレスが、使用される次の消去ブロックである。この最
初のブロックアドレスは、それがデータ記憶の用途で割当てられた時に、NEB
リストから除去される。形成される任意の新たな消去ブロック(例えば、ホスト
からの削除コマンドに続く、旧データの形成)は、NEBリストの低部に加えら
れる。これは、コントローラ(例えば、ホストからの所定数のセクタ書き込みコ
マンドであっても良い)によって決定される所定の期間だけ続く。そして、その
期間の終端で、コントローラは、NEB内のエントリーを現在利用可能な消去ブ
ロックの新たなサブセットに置き換えることにより、NEBリストを再びコンパ
イルする。全ての消去ブロックの全セットから成るサブセットは、物理ブロック
アドレスを上昇する順序で都合良く順次に使用されても良い。この変形例は、全
てのブロックの消去状態をモニタして記憶することに伴うメモリ空間の要件を低
減させる点において、幾つかの利点を有する。
ロックの概略図である。
図である。
図である。
る。
。
ロック内にセクタが書き込まれる順番を示すテーブルである。
き込む間の操作のタイミングを示す図である。
る。
シュチップメモリシステムのブロック図である。
を示す図である。
る。
す図である。
終了後のフラッシュページ内のデータを示す図である。
からフラッシュメモリにデータを送信するために使用されるコントローラコマン
ドのテーブルである。
ある。
タを送信するために使用されるコントローラコマンドのテーブルである。
ブロックの概略ブロック図である。
Claims (57)
- 【請求項1】 個別にアドレス可能で、かつ、セクタの消去可能ブロック内
に設けられた不揮発メモリセクタを有し、前記セクタは、各々、メモリ内の自身
の物理的位置を定義する物理アドレスを含む半導体メモリと; データ構造のメモリへの書き込みとメモリからの読出しを行い、かつ、消去用
として処理されるブロックと非消去用として処理されるブロックとにセクタのブ
ロックを分別するためのコントローラとを具備するホストプロセッサに接続する
ためのメモリシステムであって、 前記コントローラは、 ホストプロセッサから受け取った論理アドレスをメモリ内の前記メモリセクタ
の物理アドレスに翻訳する手段と; ホストプロセッサからのデータが書き込まれるセクタの物理アドレスを指示す
るライトポインタ(WP)とを備え、該ライトポインタ(WP)は、消去用とし
て処理される任意のブロックにおけるメモリセクタの物理アドレスをくまなく所
定の順番で移動するように、また、ブロックが満杯の場合は、別の消去ブロック
に移動するようにコントローラによって制御され、 ホストプロセッサからセクタ書き込みコマンドを受けると、前記ライトポイン
タ(WP)がその時点で指示する物理アドレスを論理アドレスに割当てることに
よって、コントローラはホストプロセッサから受け取った論理アドレスをデータ
が書き込みされる物理アドレスに翻訳し、かつ、コントローラによって既に割当
てられている各々の物理アドレスで論理アドレスのセクタ割当てテーブル(SAT
)をコンパイルして、ホストプロセッサからのデータがメモリセクタに書き込み
される頻度より少ない頻度でSATを更新するよう構成されたシステム。 - 【請求項2】 前記ライトポインタ(WP)は、消去用に処理されるブロック
中を所定の順序で移動するようコントローラによって制御されている請求項1に
記載のメモリシステム。 - 【請求項3】 SATの物理セクタアドレスは、論理セクタアドレス(LS
A)によって命令され、N番目のSATエントリーは、論理アドレスNを有する
データが書き込みされたセクタの物理アドレスを備える請求項1または2に記載
のメモリシステム。 - 【請求項4】 前記コントローラは、ホストプロセッサからセクタ読出しコ
マンドを受け取ると、以前、前記論理セクタアドレスに割当てた物理セクタアド
レスを得るために、SAT内において、ホストプロセッサから受け取った論理セ
クタアドレス(LSA)を検索するように構成された請求項3に記載のメモリシ
ステム。 - 【請求項5】 SATが、半導体メモリのメモリセクタの前記ブロックのう
ち、少なくとも1つに記憶されている前記請求項の何れかに記載のメモリシステ
ム。 - 【請求項6】 コントローラは、ブロック全体におけるSATを再書き込み
することでSATを更新するよう構成されている請求項5に記載のメモリシステ
ム。 - 【請求項7】 セクタブロックのうち、少なくとも1個のブロック(ASB
)がSATブロックの個別セクタの修正バージョンを含んでいる請求項5または
6に記載のメモリシステム。 - 【請求項8】 前記ASBブロックのセクタが各々、それが更新するSAT
ブロックのセクタの物理アドレスを含む請求項7に記載のメモリシステム。 - 【請求項9】 前記ASBブロックの全てのセクタがSATセクタの修正バ
ージョンを書き込まれるとき、SATブロックはそれぞれASBブロック内の全
ての修正バージョンを含むように再書き込みされ、かつ、ASBブロックが消去
される請求項7または8に記載のメモリシステム。 - 【請求項10】 コントローラがライトポインタ(WP)を制御して、各ブ
ロックが書き込みデータで満杯になると、物理アドレスの番号昇順で、消去ブロ
ック中を連続的に移動するように構成されている前記請求項の何れかに記載のメ
モリシステム。 - 【請求項11】 物理アドレス順で最高位のブロックセクタがひとたびデー
タで満杯になると、コントローラによる消去処理途中の全てのブロック中、番号
的に最下位の物理アドレスを有するセクタのブロックを取り囲むようにWPがコ
ントローラによって制御されるという意味から、ライトポインタ(WP)の制御
が循環式である請求項10に記載のメモリシステム。 - 【請求項12】 コントローラがライトポインタ(WP)を制御して、消去
ブロック中を物理アドレス順で非連続的に移動するように構成されている請求項
1〜9の何れかに記載のメモリシステム。 - 【請求項13】 前記メモリセクタ(1)はそれぞれ、物理的にデータエリ
ア(300)とスペアエリア(302)とに分割され、コントローラは、セクタ
のデータエリア(300)の始めからオフセットされるセクタ位置において、ヘ
ッダデータおよびエラー修正コードデータ(ECC)を含むオーバーヘッドデー
タ(OD)を書き込みし、かつ、ホストプロセッサから受け取ったユーザデータ
をオーバーヘッドデータ(OD)の何れか一方の側のセクタにおける残りスペー
スに書き込みする構成されている請求項1〜12の何れかに記載のメモリシステ
ム。 - 【請求項14】 前記オーバーヘッドデータ(OD)は、セクタに書き込み
されるユーザデータのうち少なくとも1ビットによって決定される総計によって
オフセットされる請求項13に記載のメモリシステム。 - 【請求項15】 前記セクタブロックの各々におけるメモリセクタは、ユニ
ットとしてまとめて消去できる前記請求項の何れかに記載のメモリシステム。 - 【請求項16】 前期セクタブロックの各々におけるメモリセクタは、個別
に消去することもできる請求項15に記載のメモリシステム。 - 【請求項17】 コントローラがメモリの消去操作を制御してメモリセクタ
のブロック全体のみを消去し、その中のメモリセクタが全て消去セクタである場
合は、セクタのブロックがコントローラによって消去ブロックとして処理される
前記請求項の何れかに記載のメモリシステム。 - 【請求項18】 1つのブロックが1個または2個以上の不良セクタを含ん
でいる場合、コントローラがそのブロック全体を不良と定義し、非消去ブロック
として処理し、それによりデータがそのブロックに書き込みされない請求項17
に記載のメモリシステム。 - 【請求項19】 1つのブロックが1個または2個以上の不良セクタを含ん
でいる場合、コントローラがそのブロックを消去ブロックとして処理し、それに
よりコントローラは該ブロック内の良好セクタをデータ保存用に使用し、メモリ
システムは不良セクタを識別するテーブルを含み、コントローラは、次にライト
ポインタ(WP)が移動するセクタアドレスが不良セクタかどうかをチェックし
、アドレスが不良セクタの場合は、その不良セクタをスキップして、次に書き込
みが行われるセクタのアドレスに所定の順序で移動させる請求項16に記載のメ
モリシステム。 - 【請求項20】 セクタブロックは各々、メモリ内での自身の物理的位置を
定義する物理ブロックアドレスを有し、前記メモリセクタの各々の物理アドレス
は、それが位置するブロックの物理ブロックアドレスを含み、コントローラは、
消去処理されるセクタブロックの少なくとも何個かの物理ブロックのアドレスを
ブロック内をWPが移動する順番に並べたリストをコンパイルし、該リストを利
用して、次に書き込みが行われるセクタブロックを素早く識別し、コントローラ
が前記リストを保存するための一時的記憶手段をさらに含んでなる前記請求項の
何れかに記載のメモリシステム。 - 【請求項21】 コントローラが以前に別のセクタに書き込みされた旧デー
タを伝えるセクタ書き込みコマンドをホストプロセッサから受け取ると、その時
点の旧データを有するセクタのアドレスをメモリシステムの一時的記憶域に保存
する前記請求項の何れかに記載のメモリシステム。 - 【請求項22】 コントローラがホストプロセッサからユーザによるセクタ
除去コマンドを受け取ると、除去すべきセクタを廃棄としてマークし、かつ、該
セクタのアドレスを前記一時的記憶手段に保存するよう構成されている請求項2
1に記載のメモリシステム。 - 【請求項23】 コントローラは、いかなる場合も、ライトポインタ(WP)
によって書き込みされた旧データを有する1個または2個以上のセクタを含むブ
ロック(以下、これをカレントオブソリートブロック(COB)と称す)を予め
決められた数しか容認せず、その結果、前記COB内の全てのセクタが旧データ
を含むと、前記COBは即座に消去される請求項21または22に記載のメモリ
システム。 - 【請求項24】 COB以外のブロックにあるセクタが旧データを含む場合
、コントローラは、前記COB内の有効(非廃棄)セクタにある任意のデータを
別のブロックに再配置し、その後前記COBを消去し;COB以外のブロックに
ある前記セクタを廃棄としてマークし;前記別のブロックを新しいCOBとして
指定する請求項23に記載のメモリシステム。 - 【請求項25】 前記の予め決められたCOBsの数が1個である請求項2
3または24に記載のメモリシステム。 - 【請求項26】 コントローラが前記有効データを再配置するブロックは、
ライトポインタ(WP)がその時点で位置するブロックである請求項24に記載
のメモリシステム。 - 【請求項27】 前記有効データが再配置されるセクタの物理アドレスを指
し示すために別のライトポインタ(以下、リロケーションポインタ(RP)と称
す)を備え、リロケーションポインタ(RP)は常にライトポインタ(WP)と
は異なるセクタブロックに位置する請求項24に記載のメモリシステム。 - 【請求項28】 ホストプロセッサからのシステムデータが書き込まれるセ
クタの物理アドレスを指し示すためにさらに別のライトポインタ(以下、システ
ムライトポインタ(SWP)と称す)を備え、システムライトポインタ(SWP
)は常にライトポインタ(WP)とは異なるブロックに位置する請求項27に記
載のメモリシステム。 - 【請求項29】 コントローラは1つまたは2つ以上の廃棄セクタを含む少
なくとも2個のブロックが任意のときに存在することを容認し、前記ブロックの
一方は前記COBであり、他方は1つまたは2つ以上の旧システムデータセクタ
を含むカレント・オブソリート・システム・ブロック(COSB)であり、COSB
の消去を容認するために任意のシステムデータセクタを再配置することが必要に
なった場合、再配置されたシステムデータはシステムライトポインタ(SWP)
がその時点で指示するアドレスに送られる請求項28に記載のメモリシステム。 - 【請求項30】 有効システムデータが再配置されるセクタの物理アドレス
を指し示すために、さらに別のライトポインタ(以下、システムリロケーション
ポインタ(SRP)と称す)を備え、システムリロケーションポインタポインタ
(SRP)は常にライトポインタ(WP)及びシステムライトポインタ(SWP
)とは異なるセクタブロックに位置する請求項28に記載のメモリシステム。 - 【請求項31】 コントローラによるCOBの消去が必要なときにCOBが
前記ライトポインタ(WP、RP、SWP、SRP)のうち1つを含んでいる場
合、旧データは既に別のブロックに作成されているので、コントローラは新しい
COBの作成を実行する一方、旧COBの消去を保留し(以下、保留オブソリー
トブロック(POB)と称す)、これはPOB内の全消去セクタが充填され、か
つ、コントローラの定義に従って前記ポインタが次に使用される消去ブロックに
移動するまで保留され、このときPOB内の任意の有効(非廃棄)データはコン
トローラによって再配置され、POBが消去される請求項28〜30の何れかに
記載のメモリシステム。 - 【請求項32】 SATが最後に更新されてから、RP(以下、リロケーシ
ョンセクタリストまたはRSLと称す)と、SWP(以下、ライトシステムセク
タリストまたはWSSLと称す)と、SRP(以下、システムリロケーションセ
クタリストまたはSRSLと称す)とによってリロケーションデータが書き込み
されたメモリ内のセクタに対応する論理セクタアドレスのそれぞれのリストをメ
モリシステムの一時的記憶域に保存するように、また、RPと、SWPと、SR
P(以下、リロケーションブロックリスト(RBL)と称す)と、ライトシステ
ムブロックリスト(WSBL)と、システムリロケーションブロックリスト(S
RBL)とによって使用されたブロック順序に対応するリストを前記一時的記憶
域に保存するようにコントローラが構成される請求項29に記載のメモリシステ
ム。 - 【請求項33】 ホストプロセッサからのメモリへのデータ構造の書き込み
に加えて、コントローラは、制御情報として示されるメモリデータの生成および
書き込みを行い、また、ホストプロセッサから受け取ったデータ構造が書き込ま
れるメモリセクタブロックのうち、1個または2個以上の異なるブロック(制御
ブロックまたはCBs)にそうした制御情報を書き込むように構成された前記請
求項の何れかに記載のメモリシステム。 - 【請求項34】 コントローラは、全SATブロックのブロックアドレスリ
ストを少なくとも1個の前記制御ブロックに記憶する請求項33に記載のメモリ
システム。 - 【請求項35】 コントローラは前記1個または2個以上の制御ブロックの
ブロックアドレスをメモリの専用ブロック(ブートブロックまたはBB)に記憶
し、この専用ブロックはいかなる不良セクタも含まないメモリセクタの第1ブロ
ックである請求項33または34に記載のメモリシステム。 - 【請求項36】 全SATブロックアドレスの前記リストは複数のリスト部
(テーブルブロックリストまたはTBLs)形式であり、かつ、各リスト部が論
理的に連続する一群のSATブロックのブロックアドレスを含む請求項7、8ま
たは9に従属する請求項34に記載のメモリシステム。 - 【請求項37】 コントローラは、SATが最後に更新されてからライトポ
インタ(WP)によって書き込みされたデータ構造用の論理セクタアドレスのリ
スト(ライトセクタリストまたはWSL)をメモリシステムの一時的記憶域に保
存する請求項7〜9の何れかに記載のメモリシステム。 - 【請求項38】 コントローラはSATが最後に更新されてからデータを書
き込むためにライトポインタ(WP)によって使用されたブロックの順番を前記
一時的記憶域に保存し、この順番は更新されたセクタのアドレスがWSLに保持
されるブロックのブロックアドレスリスト(ライトブロックリストまたはWBL
)の形式で記憶される請求項37に記載のメモリシステム。 - 【請求項39】 WSLは予め決められた大きさで、ひとたびWSLが一杯
になると少なくとも1個のSATブロックまたはASBブロックが更新され、W
SLおよびWBLが空になる請求項38に記載のメモリシステム。 - 【請求項40】 コントローラは、開始物理セクタアドレスと、SATブロ
ックまたはASBブロックが最後に更新されてからデータが書き込みされたセク
タを有するブロック間のリンクとを半導体メモリの前記制御ブロックに記憶する
請求項38に記載のメモリシステム。 - 【請求項41】 前記セクタは各々メモリの単一“ページ”、すなわち、メ
モリセクタの前記ブロックにあるメモリセルの一列から成る前記請求項の何れか
に記載のメモリシステム。 - 【請求項42】 コントローラは、均一にサイズ設定されたデータセグメン
ト内のメモリセクタに対してデータを書き込み、また、前記メモリセクタからデ
ータを読み込む前記請求項の何れかに記載のメモリシステム。 - 【請求項43】 全てのメモリセクタが同一サイズであり、前記データセグ
メントは各々、前記メモリセクタと均等なサイズである請求項42に記載のメモ
リシステム。 - 【請求項44】 コントローラがSATから最も新しくアクセスしたSAT
を含む一群の連続SATエントリーを記憶させる一時的キャッシュメモリをさら
に含む前記請求項の何れかに記載のメモリシステム。 - 【請求項45】 コントローラは、SATセクタの書き込み操作が実行され
るたびに更新される全てのASBブロックとこれらのASBブロックが連想させ
るSATブロックの物理アドレスのリスト(ASBL)を前記一時的キャッシュ
メモリ内に作成する請求項8に従属する請求項43に記載のメモリシステム。 - 【請求項46】 半導体メモリは単一のメモリチップとして形成された単一
のメモリアレイを備える前記請求項の何れかに記載のメモリシステム。 - 【請求項47】 半導体メモリは複数のメモリチップで形成されたメモリア
レイを備える請求項1〜45の何れかに記載のメモリシステム。 - 【請求項48】 半導体メモリは複数のメモリチップで形成された複数のメ
モリアレイを含み、コントローラは複数のメモリチップにあるメモリセクタから
多重仮想ブロックを形成し、前記仮想ブロックはそれぞれ、前記メモリチップの
各々のメモリセクタのうち1個の消去可能ブロックを含み、コントローラが前記
仮想ブロックを消去用として処理するものと、非消去用として処理するものとに
分別する請求項1〜45の何れかに記載のメモリシステム。 - 【請求項49】 コントローラは、消去処理される仮想ブロックのリストを
コンパイルし、これをメモリシステムの一時的記憶域に保存し、また、各々の連
続セクタ書き込み操作のために1つのチップから別のチップに移動するようにラ
イトポインタ(WP)を制御し、この移動は、仮想ブロックの1つの消去可能ブ
ロックにある1個のセクタから始まり、仮想ブロックの各消去可能ブロックにあ
るセクタの書き込みが完了するまで、仮想ブロック内にあるその他の各消去可能
ブロックのセクタを連続して移動し、次に最初のセクタが書き込みされたチップ
に戻って、仮想ブロックがデータで満杯になるまで同様の方法で仮想ブロック内
の各消去可能ブロックにある別のセクタへの書き込みを続け、その後、前記消去
処理される仮想ブロックリストに載っている次の仮想ブロックにライトポインタ
(WP)を移動し、この仮想ブロックを同様の手法で書き込みする請求項48に
記載のメモリシステム。 - 【請求項50】 n回の連続セクタ書き込み操作のたびにコントローラがホ
ストプロセッサから受け取った多重セクタ書き込みコマンドを実行し、nがメモ
リシステムの半導体メモリチップの数より少ないかまたは等しい場合、コントロ
ーラがチップの各nにおける1個のセクタに連続して同時に書き込みする請求項
49に記載のメモリシステム。 - 【請求項51】 コントローラは、仮想ブロックにある全ての消去可能ブロ
ックを同時に消去することで任意の前記仮想ブロックの消去を実行する請求項4
9または50に記載のメモリシステム。 - 【請求項52】 個別にアドレス可能で、かつ、セクタの消去可能ブロック
に配置された非揮発性メモリセクタを各々が有する複数の半導体メモリチップで
あって、前記セクタは各々、メモリ内における自身の物理的位置を定義する物理
アドレスを備える該半導体メモリチップと; メモリへのデータ構造の書き込みおよびデータ構造の読み出しのためのコン
トローラとを具備するホストプロセッサに接続するためのメモリシステムであっ
て、 コントローラは消去可能ブロックで仮想ブロックを形成し、前記仮想ブロッ
クは、それぞれ、各メモリチップからの消去可能ブロックを含み、コントローラ
は、仮想ブロックを消去処理されるものと非消去処理されつものとに分別し、か
つ、1個の仮想ブロックにデータを充填してから、次にデータを充填させる仮想
ブロックへと移動し、仮想ブロックの個々の消去可能ブロックにある1個のメモ
リセクタに次から次に書き込みし、それにより異なるチップのセクタに連続して
書き込みを行う反復順序でメモリセクタに書き込みすることで各仮想ブロックが
充填されるメモリシステム。 - 【請求項53】 n回の連続セクタ書き込み操作のたびにコントローラがホ
ストプロセッサから受け取った多重セクタ書き込みコマンドを実行し、nがメモ
リシステムの半導体メモリチップの数より少ないかまたは等しい場合、コントロ
ーラがチップのnそれぞれにおける1個のセクタに連続して同時に書き込みする
請求項52に記載のメモリシステム。 - 【請求項54】 個別にアドレス可能で、かつ、セクタの消去可能ブロック
に配置され、メモリ内で自身の物理的位置を定義する物理アドレスを持った複数
の非揮発性メモリセクタを備える半導体メモリに対して、データ構造の書き込み
および読み出しを行うコントローラであって、 該コントローラが使用されるメモリシステムのホストプロセッサから受け取っ
た論理アドレスをメモリ内の前記メモリセクタの物理アドレスに翻訳する手段と
; セクタのブロックを消去用と非消去用とに分別する手段と; ホストプロセッサからのデータが書き込まれるセクタの物理アドレスを指示す
るライトポインタ(WP)とを備え、 前記ライトポインタ(WP)は、消去用として処理される任意のブロックにお
けるメモリセクタの物理アドレスをくまなく所定の順番で移動するように、また
、ブロックが満杯の場合は、別の消去ブロックに移動するようにコントローラに
よって制御され、 ホストプロセッサからセクタ書き込みコマンドを受けると、前記ライトポイン
タ(WP)がその時点で指示する物理アドレスを論理アドレスに割当てることに
よって、コントローラはホストプロセッサから受け取った論理アドレスをデータ
が書き込みされる物理アドレスに翻訳し、 コントローラによって既に割当てられているそれぞれの物理アドレスで論理ア
ドレスのセクタ割当てテーブル(SAT)をコンパイルして、ホストプロセッサか
らのデータがメモリセクタに書き込みされる頻度より少ない頻度でSATを更新
するよう構成されたコントローラ。 - 【請求項55】 個別にアドレス可能で、かつ、セクタの消去可能ブロック
に配置され、しかもメモリ内で自身の物理的位置を規定する物理アドレスを持っ
た複数の非揮発性メモリセクタを有する半導体メモリに対してデータ構造の書き
込みおよび読み出しを制御する方法であって、 セクタのブロックを消去用ブロックと非消去用ブロックとに分別する工程と; ホストプロセッサからのデータが書き込まれるセクタの物理アドレスを指示す
る少なくとも1個のライトポインタ(WP)を設け、前記ライトポインタ(WP
)が、消去用として処理される任意のブロックにおけるメモリセクタの物理アド
レスをくまなく所定の順番で移動するように、また、ブロックが満杯の場合は、
別の消去ブロックに移動するように前記少なくとも1個のライトポインタ(WP
)を制御し、ホストプロセッサからセクタ書き込みコマンドを受けると、前記ラ
イトポインタ(WP)がその時点で指示する物理アドレスを論理アドレスに割当
てることによって、ホストプロセッサから受け取った論理アドレスをデータが書
き込みされる物理アドレスに翻訳する工程と; コントローラによってそれぞれの物理アドレスが既に割当てられている論理ア
ドレスのセクタ割当てテーブル(SAT)を非揮発性半導体メモリに記憶する工程
と; ホストプロセッサからのデータがメモリセクタに書き込みされる頻度より少な
い頻度でSATを更新する工程 からなる前記の制御方法。 - 【請求項56】 ホストプロセッサに接続するためのメモリシステムであっ
て、 個別にアドレス可能で、かつ、セクタの消去可能ブロックに配置された非揮発
性メモリセクタを有する複数の半導体メモリであって、前記セクタは各々、メモ
リ内における自身の物理的位置を定義する物理アドレスを備える該半導体メモリ
と; データ構造のメモリへの書き込みおよび読み出しのためのコントローラとを具
備し、 コントローラはホストプロセッサから受け取った論理アドレスをメモリ内の前
記メモリセクタの物理アドレスに翻訳する手段を含み、 前記メモリセクタ(1)は、各々、物理的にデータ領域(300)とスペア領
域(302)とに分割され、コントローラは、セクタのデータ領域(300)の
始めからオフセットされるセクタ位置において、ヘッダデータおよびエラー修正
コードデータ(ECC)を含むオーバーヘッドデータ(OD)を書き込みし、か
つ、ホストプロセッサから受け取ったユーザデータをオーバーヘッドデータ(O
D)の何れか一方の側のセクタにおける残りスペースに書き込みするよう構成さ
れているメモリシステム。 - 【請求項57】 前記オーバーヘッドデータ(OD)は、セクタに書き込み
されるユーザデータのうち少なくとも1ビットによって決定される総計によって
オフセットされる請求項56に記載のメモリシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9903490.2A GB9903490D0 (en) | 1999-02-17 | 1999-02-17 | Memory system |
GB9903490.2 | 1999-02-17 | ||
PCT/GB2000/000550 WO2000049488A1 (en) | 1999-02-17 | 2000-02-17 | Memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002537596A true JP2002537596A (ja) | 2002-11-05 |
JP5011498B2 JP5011498B2 (ja) | 2012-08-29 |
Family
ID=10847858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000600167A Expired - Lifetime JP5011498B2 (ja) | 1999-02-17 | 2000-02-17 | メモリシステム |
Country Status (8)
Country | Link |
---|---|
US (1) | US6725321B1 (ja) |
EP (1) | EP1157328B1 (ja) |
JP (1) | JP5011498B2 (ja) |
KR (1) | KR100644805B1 (ja) |
DE (1) | DE60019903T2 (ja) |
GB (1) | GB9903490D0 (ja) |
TW (1) | TWI244092B (ja) |
WO (1) | WO2000049488A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006051779A1 (ja) * | 2004-11-10 | 2006-05-18 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置 |
US7242632B2 (en) | 2002-06-20 | 2007-07-10 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
JP2007241539A (ja) * | 2006-03-07 | 2007-09-20 | Hitachi Systems & Services Ltd | 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置 |
JP2008004196A (ja) * | 2006-06-23 | 2008-01-10 | Toppan Printing Co Ltd | 半導体メモリ装置 |
JP2009217391A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | メモリシステム |
CN102859501A (zh) * | 2010-04-16 | 2013-01-02 | 美光科技公司 | 存储器装置及系统中的引导分区 |
Families Citing this family (245)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978342B1 (en) * | 1995-07-31 | 2005-12-20 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6728851B1 (en) * | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US8171203B2 (en) | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
JP3524428B2 (ja) * | 1999-04-20 | 2004-05-10 | 東京エレクトロンデバイス株式会社 | 記憶装置、記憶システム、メモリ管理方法及び記録媒体 |
KR100544175B1 (ko) * | 1999-05-08 | 2006-01-23 | 삼성전자주식회사 | 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법 |
US7934074B2 (en) * | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US7966462B2 (en) * | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
MXPA02004748A (es) * | 1999-11-10 | 2004-01-19 | Thomson Licensing Sa | Un metodo para la recuperacion de desastre para un medio de disco de re-escritrua. |
US20060161725A1 (en) * | 2005-01-20 | 2006-07-20 | Lee Charles C | Multiple function flash memory system |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
US6654847B1 (en) * | 2000-06-30 | 2003-11-25 | Micron Technology, Inc. | Top/bottom symmetrical protection scheme for flash |
US7167944B1 (en) | 2000-07-21 | 2007-01-23 | Lexar Media, Inc. | Block management for mass storage |
US6684289B1 (en) * | 2000-11-22 | 2004-01-27 | Sandisk Corporation | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US7072981B1 (en) | 2000-12-21 | 2006-07-04 | Cisco Technology, Inc. | Preallocation of client network address translation addresses for client-server networks |
US7089328B1 (en) * | 2000-12-29 | 2006-08-08 | Cisco Technology, Inc. | Method allocation scheme for maintaining server load balancers services in a high throughput environment |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
GB0123421D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Power management system |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
GB0123410D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123417D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Improved data processing |
GB0123415D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
JP3981268B2 (ja) * | 2001-12-28 | 2007-09-26 | 日本電産サンキョー株式会社 | 不揮発性メモリ及びそのデータ更新方法 |
US7231643B1 (en) | 2002-02-22 | 2007-06-12 | Lexar Media, Inc. | Image rescue system including direct communication between an application program and a device driver |
US7533214B2 (en) | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7065531B2 (en) * | 2002-03-12 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Combining computer programs |
US20060143365A1 (en) * | 2002-06-19 | 2006-06-29 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
DE10227255B4 (de) * | 2002-06-19 | 2008-06-26 | Hyperstone Gmbh | Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers |
DE10256509B4 (de) * | 2002-06-19 | 2008-06-12 | Hyperstone Gmbh | Verfahren zum Adressieren von blockweise löschbaren Speichern |
US6970969B2 (en) * | 2002-08-29 | 2005-11-29 | Micron Technology, Inc. | Multiple segment data object management |
US6968439B2 (en) * | 2002-08-29 | 2005-11-22 | Micron Technology, Inc. | Single segment data object management |
US7130979B2 (en) * | 2002-08-29 | 2006-10-31 | Micron Technology, Inc. | Dynamic volume management |
US20040049628A1 (en) * | 2002-09-10 | 2004-03-11 | Fong-Long Lin | Multi-tasking non-volatile memory subsystem |
US20040128464A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Memory reclamation |
US20040128414A1 (en) * | 2002-12-30 | 2004-07-01 | Rudelic John C. | Using system memory as a write buffer for a non-volatile memory |
FI117489B (fi) * | 2003-02-07 | 2006-10-31 | Nokia Corp | Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti |
JP2004265162A (ja) * | 2003-03-03 | 2004-09-24 | Renesas Technology Corp | 記憶装置およびアドレス管理方法 |
TWI220474B (en) * | 2003-03-12 | 2004-08-21 | Glovic Electronics Corp | Physical page allocation method of flash memory |
DE10319271A1 (de) * | 2003-04-29 | 2004-11-25 | Infineon Technologies Ag | Speicher-Schaltungsanordnung und Verfahren zur Herstellung |
US7664987B2 (en) | 2003-05-25 | 2010-02-16 | Sandisk Il Ltd. | Flash memory device with fast reading rate |
KR100546348B1 (ko) | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
US7752380B2 (en) * | 2003-07-31 | 2010-07-06 | Sandisk Il Ltd | SDRAM memory device with an embedded NAND flash controller |
JP2005085011A (ja) * | 2003-09-09 | 2005-03-31 | Renesas Technology Corp | 不揮発性メモリ制御装置 |
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US7073016B2 (en) * | 2003-10-09 | 2006-07-04 | Micron Technology, Inc. | Random access interface in a serial memory device |
DE10349595B3 (de) | 2003-10-24 | 2004-12-09 | Hyperstone Ag | Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher |
JP4567966B2 (ja) | 2003-12-22 | 2010-10-27 | 株式会社東芝 | エミュレーションシステムおよびエミュレーション方法 |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
KR20070007265A (ko) | 2003-12-30 | 2007-01-15 | 쌘디스크 코포레이션 | 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법 |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7433993B2 (en) | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7383375B2 (en) | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US7484070B1 (en) | 2004-01-09 | 2009-01-27 | Conexant Systems, Inc. | Selective memory block remapping |
US7607177B2 (en) * | 2004-02-23 | 2009-10-20 | Micron Technology, Inc. | Secure compact flash |
US20080147964A1 (en) * | 2004-02-26 | 2008-06-19 | Chow David Q | Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function |
US7725628B1 (en) | 2004-04-20 | 2010-05-25 | Lexar Media, Inc. | Direct secondary device interface by a host |
US7370166B1 (en) * | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
US7490283B2 (en) | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US7194596B2 (en) * | 2004-06-09 | 2007-03-20 | Simpletech Global Limited | Method of efficient data management with flash storage system |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7395384B2 (en) * | 2004-07-21 | 2008-07-01 | Sandisk Corproation | Method and apparatus for maintaining data on non-volatile memory systems |
US7464306B1 (en) * | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
US7594063B1 (en) * | 2004-08-27 | 2009-09-22 | Lexar Media, Inc. | Storage capacity status |
WO2006024328A1 (de) * | 2004-09-02 | 2006-03-09 | Hyperstone Ag | Verfahren zur verwaltung von speicherinformationen |
US7509526B2 (en) * | 2004-09-24 | 2009-03-24 | Seiko Epson Corporation | Method of correcting NAND memory blocks and to a printing device employing the method |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
JP2006146460A (ja) * | 2004-11-18 | 2006-06-08 | Sony Corp | 通信システム、記憶装置、並びに制御装置 |
US7120051B2 (en) | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7366826B2 (en) * | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
KR100876084B1 (ko) * | 2007-02-13 | 2008-12-26 | 삼성전자주식회사 | 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템 |
US7882299B2 (en) * | 2004-12-21 | 2011-02-01 | Sandisk Corporation | System and method for use of on-chip non-volatile memory write cache |
US7409473B2 (en) | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7849381B2 (en) | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US8667249B2 (en) | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
EP1830366B1 (en) * | 2004-12-24 | 2011-07-13 | Spansion Japan Limited | Bias application method of storage and storage |
US7212440B2 (en) | 2004-12-30 | 2007-05-01 | Sandisk Corporation | On-chip data grouping and alignment |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
EP1851771A2 (en) * | 2005-02-11 | 2007-11-07 | M-Systems Flash Disk Pioneers Ltd. | Nand flash memory system architecture |
US7627712B2 (en) * | 2005-03-22 | 2009-12-01 | Sigmatel, Inc. | Method and system for managing multi-plane memory devices |
KR100666174B1 (ko) | 2005-04-27 | 2007-01-09 | 삼성전자주식회사 | 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법 |
US7788555B2 (en) * | 2005-07-22 | 2010-08-31 | Broadcom Corporation | Using fractional sectors for mapping defects in disk drives |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
TWI295771B (en) * | 2005-08-08 | 2008-04-11 | Rdc Semiconductor Co Ltd | Faulty storage area self markup access control method and system |
KR100739722B1 (ko) * | 2005-08-20 | 2007-07-13 | 삼성전자주식회사 | 플래시 메모리 관리 방법 및 플래시 메모리 시스템 |
US7512864B2 (en) * | 2005-09-30 | 2009-03-31 | Josef Zeevi | System and method of accessing non-volatile computer memory |
US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US7509471B2 (en) | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7877540B2 (en) | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
JP2007164929A (ja) * | 2005-12-16 | 2007-06-28 | Fujitsu Ltd | 記憶媒体管理装置、記憶媒体管理プログラム、記憶媒体管理方法 |
US20070143560A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with memory allocation for a directly mapped file storage system |
US20070156998A1 (en) * | 2005-12-21 | 2007-07-05 | Gorobets Sergey A | Methods for memory allocation in non-volatile memories with a directly mapped file storage system |
WO2007073536A2 (en) * | 2005-12-21 | 2007-06-28 | Sandisk Corporation | Non-volatile memories and methods with memory allocation for a directly mapped file storage system |
US20070143566A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in a directly mapped file storage system |
EP1966700A2 (en) * | 2005-12-21 | 2008-09-10 | Nxp B.V. | Non-volatile memory with block erasable locations |
US20070143567A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for data alignment in non-volatile memories with a directly mapped file storage system |
WO2007072313A2 (en) * | 2005-12-22 | 2007-06-28 | Nxp B.V. | Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information |
US7543116B2 (en) * | 2006-01-30 | 2009-06-02 | International Business Machines Corporation | Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains |
KR100776112B1 (ko) | 2006-02-15 | 2007-11-15 | 삼성전자주식회사 | 휴대단말기의 부팅 시간 단축방법 |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
TWM304711U (en) * | 2006-04-26 | 2007-01-11 | Genesys Logic Inc | Flash memory data access reliability enhancing device |
US8060718B2 (en) * | 2006-06-20 | 2011-11-15 | International Business Machines | Updating a memory to maintain even wear |
KR100758301B1 (ko) * | 2006-08-04 | 2007-09-12 | 삼성전자주식회사 | 메모리 카드 및 그것의 데이터 저장 방법 |
KR20080017982A (ko) * | 2006-08-23 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 프로그램 방법 |
US7779056B2 (en) | 2006-09-15 | 2010-08-17 | Sandisk Corporation | Managing a pool of update memory blocks based on each block's activity and data order |
US7774392B2 (en) | 2006-09-15 | 2010-08-10 | Sandisk Corporation | Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order |
US7949846B2 (en) * | 2006-11-30 | 2011-05-24 | Teradata Us, Inc. | Map shuffle-allocation map protection without extra I/O'S using minimal extra disk space |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
WO2008070812A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for data storage using progressive raid |
US8074011B2 (en) * | 2006-12-06 | 2011-12-06 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery after reaching a read count limit |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US7515500B2 (en) * | 2006-12-20 | 2009-04-07 | Nokia Corporation | Memory device performance enhancement through pre-erase mechanism |
KR100877609B1 (ko) * | 2007-01-29 | 2009-01-09 | 삼성전자주식회사 | 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법 |
KR100869675B1 (ko) * | 2007-02-05 | 2008-11-21 | 지인정보기술 주식회사 | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 |
US7716230B2 (en) * | 2007-02-07 | 2010-05-11 | International Business Machines Corporation | Multi-dimensional serial containment process |
US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
US7689762B2 (en) * | 2007-05-03 | 2010-03-30 | Atmel Corporation | Storage device wear leveling |
US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
EP2000913A1 (en) * | 2007-06-08 | 2008-12-10 | Axalto SA | Method of managing flash memory allocation in an electronic token |
US7630246B2 (en) * | 2007-06-18 | 2009-12-08 | Micron Technology, Inc. | Programming rate identification and control in a solid state memory |
TWI578330B (zh) * | 2007-10-09 | 2017-04-11 | A-Data Technology Co Ltd | Solid state semiconductor storage device with temperature control function and control method thereof |
KR101391881B1 (ko) * | 2007-10-23 | 2014-05-07 | 삼성전자주식회사 | 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 및 읽기방법 |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8195912B2 (en) * | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
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 |
US8140739B2 (en) * | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
CN101673245B (zh) * | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
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 |
TWI380310B (en) * | 2008-09-17 | 2012-12-21 | Incomm Technologies Co Ltd | Operating method of memory card |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
WO2010043245A1 (de) * | 2008-10-13 | 2010-04-22 | Hyperstone Gmbh | Verfahren zur sicherung eines ankerblocks in flashspeichern |
TWI413984B (zh) * | 2008-10-16 | 2013-11-01 | Silicon Motion Inc | 快閃記憶體裝置以及資料更新方法 |
KR20110086725A (ko) * | 2008-11-10 | 2011-07-29 | 퓨전-아이오, 인크. | 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법 |
US9063874B2 (en) | 2008-11-10 | 2015-06-23 | SanDisk Technologies, Inc. | Apparatus, system, and method for wear management |
US9170897B2 (en) | 2012-05-29 | 2015-10-27 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing solid-state storage reliability |
US8244960B2 (en) | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
KR101760144B1 (ko) | 2009-01-05 | 2017-07-31 | 샌디스크 테크놀로지스 엘엘씨 | 비휘발성 메모리 및 기록 캐시를 분할하는 방법 |
US8094500B2 (en) | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8700840B2 (en) | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US8040744B2 (en) | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8412880B2 (en) * | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8924661B1 (en) * | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
JP5384965B2 (ja) * | 2009-02-23 | 2014-01-08 | サトーホールディングス株式会社 | プリンタ装置 |
TWI419169B (zh) * | 2009-04-10 | 2013-12-11 | Phison Electronics Corp | 用於快閃記憶體的資料存取方法及其儲存系統與控制器 |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
CN102498475A (zh) * | 2009-07-10 | 2012-06-13 | 柰米闪芯积体电路有限公司 | 高速高密度以nand为基础的双晶体管-nor闪存的新构成 |
TWI421871B (zh) * | 2009-11-27 | 2014-01-01 | Macronix Int Co Ltd | 定址一記憶積體電路之方法與裝置 |
US8176235B2 (en) * | 2009-12-04 | 2012-05-08 | International Business Machines Corporation | Non-volatile memories with enhanced write performance and endurance |
US8176234B2 (en) * | 2009-12-04 | 2012-05-08 | International Business Machines Corporation | Multi-write coding of non-volatile memories |
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 |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8468294B2 (en) | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
FR2954538B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Securisation de l'effacement d'une memoire de type flashprom. |
FR2954572B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Procede de gestion de donnees tournantes. |
US8543757B2 (en) | 2010-06-23 | 2013-09-24 | Sandisk Technologies Inc. | Techniques of maintaining logical to physical mapping information in non-volatile memory systems |
US8417876B2 (en) | 2010-06-23 | 2013-04-09 | Sandisk Technologies Inc. | Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems |
US20120008414A1 (en) * | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8832507B2 (en) * | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
US8769374B2 (en) | 2010-10-13 | 2014-07-01 | International Business Machines Corporation | Multi-write endurance and error control coding of non-volatile memories |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
JP5221699B2 (ja) * | 2011-03-23 | 2013-06-26 | 株式会社東芝 | 半導体記憶装置 |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US9177609B2 (en) | 2011-06-30 | 2015-11-03 | Sandisk Technologies Inc. | Smart bridge for memory core |
JP5677336B2 (ja) * | 2011-08-01 | 2015-02-25 | 株式会社東芝 | メモリ・デバイス |
US9009436B2 (en) | 2011-08-09 | 2015-04-14 | SanDisk Technologies, Inc. | Flushed data alignment with physical structures |
CN102298555B (zh) * | 2011-08-22 | 2016-04-27 | 宜兴市华星特种陶瓷科技有限公司 | 基于nand技术的模块化闪存管理系统 |
US8874935B2 (en) | 2011-08-30 | 2014-10-28 | Microsoft Corporation | Sector map-based rapid data encryption policy compliance |
US9208070B2 (en) | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US8972799B1 (en) | 2012-03-29 | 2015-03-03 | Amazon Technologies, Inc. | Variable drive diagnostics |
US8719320B1 (en) | 2012-03-29 | 2014-05-06 | Amazon Technologies, Inc. | Server-side, variable drive health determination |
US9792192B1 (en) | 2012-03-29 | 2017-10-17 | Amazon Technologies, Inc. | Client-side, variable drive health determination |
US9037921B1 (en) * | 2012-03-29 | 2015-05-19 | Amazon Technologies, Inc. | Variable drive health determination and data placement |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
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 |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim 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 |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
CN103197943A (zh) * | 2013-04-11 | 2013-07-10 | 航天科工深圳(集团)有限公司 | 一种单片机在线升级方法和系统 |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US20140344570A1 (en) | 2013-05-20 | 2014-11-20 | Microsoft Corporation | Data Protection For Organizations On Computing Devices |
US9235470B2 (en) | 2013-10-03 | 2016-01-12 | SanDisk Technologies, Inc. | Adaptive EPWR (enhanced post write read) scheduling |
US9436823B1 (en) * | 2013-12-17 | 2016-09-06 | Google Inc. | System and method for detecting malicious code |
US10615967B2 (en) | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
US9804922B2 (en) | 2014-07-21 | 2017-10-31 | Sandisk Technologies Llc | Partial bad block detection and re-use using EPWR for block based architectures |
US9825945B2 (en) | 2014-09-09 | 2017-11-21 | Microsoft Technology Licensing, Llc | Preserving data protection with policy |
US10114562B2 (en) | 2014-09-16 | 2018-10-30 | Sandisk Technologies Llc | Adaptive block allocation in nonvolatile memory |
US9853812B2 (en) | 2014-09-17 | 2017-12-26 | Microsoft Technology Licensing, Llc | Secure key management for roaming protected content |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9900295B2 (en) | 2014-11-05 | 2018-02-20 | Microsoft Technology Licensing, Llc | Roaming content wipe actions across devices |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US10248418B2 (en) | 2015-06-30 | 2019-04-02 | International Business Machines Corporation | Cleared memory indicator |
US10635307B2 (en) | 2015-06-30 | 2020-04-28 | International Business Machines Corporation | Memory state indicator |
US9853820B2 (en) | 2015-06-30 | 2017-12-26 | Microsoft Technology Licensing, Llc | Intelligent deletion of revoked data |
US10884945B2 (en) | 2015-06-30 | 2021-01-05 | International Business Machines Corporation | Memory state indicator check operations |
US9900325B2 (en) | 2015-10-09 | 2018-02-20 | Microsoft Technology Licensing, Llc | Passive encryption of organization data |
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 |
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 |
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 |
US20170344262A1 (en) * | 2016-05-25 | 2017-11-30 | SK Hynix Inc. | Data processing system and method for operating the same |
US10120583B2 (en) * | 2016-06-07 | 2018-11-06 | Facebook, Inc. | Performance penalty avoidance for solid state drive |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
KR102270103B1 (ko) * | 2017-07-11 | 2021-06-28 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10416899B2 (en) * | 2018-02-13 | 2019-09-17 | Tesla, Inc. | Systems and methods for low latency hardware memory management |
US11372812B2 (en) * | 2018-10-08 | 2022-06-28 | Silicon Motion, Inc. | Mobile device and method capable of earlier determining that a number of files in a directory of an external connected storage device is about to full |
CN111414248B (zh) * | 2019-01-04 | 2023-03-21 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
US11847333B2 (en) * | 2019-07-31 | 2023-12-19 | EMC IP Holding Company, LLC | System and method for sub-block deduplication with search for identical sectors inside a candidate block |
FR3101974B1 (fr) * | 2019-10-15 | 2021-09-10 | Continental Automotive | Procédé d’aide à l’identification de secteurs vierges d’une mémoire non-volatile d’un microcontrôleur |
CN111061649B (zh) * | 2019-10-28 | 2023-09-29 | 宁波三星智能电气有限公司 | 一种存储器的存储空间自适应分配方法 |
US11403020B2 (en) * | 2019-10-31 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Increasing sizes of buckets of a fingerprint index |
US11922011B2 (en) * | 2021-09-01 | 2024-03-05 | Micron Technology, Inc. | Virtual management unit scheme for two-pass programming in a memory sub-system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997012324A1 (en) * | 1995-09-27 | 1997-04-03 | Memory Corporation | Memory management |
WO1997012325A1 (en) * | 1995-09-27 | 1997-04-03 | Memory Corporation Plc | Memory systems |
WO1998024029A1 (en) * | 1996-11-25 | 1998-06-04 | Macronix International Co., Ltd. | Flash memory mass storage system |
EP0887732A1 (en) * | 1997-06-20 | 1998-12-30 | Sony Corporation | Defective management data handling method and recording medium |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392895B1 (en) * | 1989-04-13 | 1995-12-13 | Sundisk Corporation | Flash EEprom system |
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
JP3407317B2 (ja) * | 1991-11-28 | 2003-05-19 | 株式会社日立製作所 | フラッシュメモリを使用した記憶装置 |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
JP3706167B2 (ja) * | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
US6081878A (en) | 1997-03-31 | 2000-06-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US5907856A (en) | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
JPH09212411A (ja) * | 1996-02-06 | 1997-08-15 | Tokyo Electron Ltd | メモリシステム |
GB9606928D0 (en) * | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Memory devices |
US5896393A (en) * | 1996-05-23 | 1999-04-20 | Advanced Micro Devices, Inc. | Simplified file management scheme for flash memory |
JPH11212873A (ja) * | 1998-01-27 | 1999-08-06 | Seiko Epson Corp | コンピューターシステムの操作方法 |
-
1999
- 1999-02-17 GB GBGB9903490.2A patent/GB9903490D0/en not_active Ceased
-
2000
- 2000-02-17 DE DE60019903T patent/DE60019903T2/de not_active Expired - Lifetime
- 2000-02-17 EP EP00903861A patent/EP1157328B1/en not_active Expired - Lifetime
- 2000-02-17 WO PCT/GB2000/000550 patent/WO2000049488A1/en active IP Right Grant
- 2000-02-17 US US09/786,418 patent/US6725321B1/en not_active Expired - Lifetime
- 2000-02-17 KR KR1020017010492A patent/KR100644805B1/ko active IP Right Grant
- 2000-02-17 JP JP2000600167A patent/JP5011498B2/ja not_active Expired - Lifetime
- 2000-02-29 TW TW089103469A patent/TWI244092B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997012324A1 (en) * | 1995-09-27 | 1997-04-03 | Memory Corporation | Memory management |
WO1997012325A1 (en) * | 1995-09-27 | 1997-04-03 | Memory Corporation Plc | Memory systems |
WO1998024029A1 (en) * | 1996-11-25 | 1998-06-04 | Macronix International Co., Ltd. | Flash memory mass storage system |
EP0887732A1 (en) * | 1997-06-20 | 1998-12-30 | Sony Corporation | Defective management data handling method and recording medium |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7242632B2 (en) | 2002-06-20 | 2007-07-10 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
WO2006051779A1 (ja) * | 2004-11-10 | 2006-05-18 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置 |
JP2007241539A (ja) * | 2006-03-07 | 2007-09-20 | Hitachi Systems & Services Ltd | 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置 |
JP2008004196A (ja) * | 2006-06-23 | 2008-01-10 | Toppan Printing Co Ltd | 半導体メモリ装置 |
JP2009217391A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | メモリシステム |
CN102859501A (zh) * | 2010-04-16 | 2013-01-02 | 美光科技公司 | 存储器装置及系统中的引导分区 |
JP2013525886A (ja) * | 2010-04-16 | 2013-06-20 | マイクロン テクノロジー, インク. | メモリデバイスおよびシステム中のブートパーティション |
US8762703B2 (en) | 2010-04-16 | 2014-06-24 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US9342371B2 (en) | 2010-04-16 | 2016-05-17 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
Also Published As
Publication number | Publication date |
---|---|
DE60019903T2 (de) | 2006-03-30 |
GB9903490D0 (en) | 1999-04-07 |
US6725321B1 (en) | 2004-04-20 |
KR20020009564A (ko) | 2002-02-01 |
DE60019903D1 (de) | 2005-06-09 |
JP5011498B2 (ja) | 2012-08-29 |
EP1157328B1 (en) | 2005-05-04 |
WO2000049488A1 (en) | 2000-08-24 |
KR100644805B1 (ko) | 2006-11-13 |
TWI244092B (en) | 2005-11-21 |
EP1157328A1 (en) | 2001-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5011498B2 (ja) | メモリシステム | |
US7634624B2 (en) | Memory system for data storage and retrieval | |
US6813678B1 (en) | Flash memory system | |
US7624239B2 (en) | Methods for the management of erase operations in non-volatile memories | |
US7783845B2 (en) | Structures for the management of erase operations in non-volatile memories | |
JP4960705B2 (ja) | マルチブロック単位へのブロックの適応決定論的グループ化 | |
US8386695B2 (en) | Methods and apparatus for writing data to non-volatile memory | |
US8312203B2 (en) | Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
US7631162B2 (en) | Non-volatile memory with adaptive handling of data writes | |
JP5813589B2 (ja) | メモリシステムおよびその制御方法 | |
US20100169540A1 (en) | Method and apparatus for relocating selected data between flash partitions in a memory device | |
JP4666080B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
KR20120129895A (ko) | 플래시 메모리 상에 소거 성능을 개선하기 위한 소거 명령 캐시 | |
WO2011048738A1 (ja) | 半導体記憶装置および制御方法 | |
WO2007081598A2 (en) | Adaptive handling data writes in non-volatile memories | |
US10268400B2 (en) | System and method for file detection and usage during compaction | |
JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040412 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040412 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040726 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100701 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100930 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101007 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101029 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101108 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101130 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20111215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111215 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120112 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120313 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120313 |
|
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: 20120403 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120427 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5011498 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
EXPY | Cancellation because of completion of term |