JP3078946B2 - 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 - Google Patents

一括消去型不揮発性メモリの管理方法及び半導体ディスク装置

Info

Publication number
JP3078946B2
JP3078946B2 JP5024793A JP5024793A JP3078946B2 JP 3078946 B2 JP3078946 B2 JP 3078946B2 JP 5024793 A JP5024793 A JP 5024793A JP 5024793 A JP5024793 A JP 5024793A JP 3078946 B2 JP3078946 B2 JP 3078946B2
Authority
JP
Japan
Prior art keywords
sector
cluster
information
data
erasing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP5024793A
Other languages
English (en)
Other versions
JPH06274409A (ja
Inventor
秀人 新島
孝資 豊岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP5024793A priority Critical patent/JP3078946B2/ja
Priority to KR1019940004327A priority patent/KR0128218B1/ko
Priority to EP94301655A priority patent/EP0615184A3/en
Priority to US08/212,469 priority patent/US5734816A/en
Publication of JPH06274409A publication Critical patent/JPH06274409A/ja
Application granted granted Critical
Publication of JP3078946B2 publication Critical patent/JP3078946B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フラッシュEEPRO
M(以下ではフラッシュ・メモリと呼ぶ)等の一括消去
型不揮発性メモリ及びそれを用いる半導体ディスク装置
に係り、特に、クラスタの消去回数等の管理情報の保
存、回復及び更新に関する。
【0002】
【従来の技術】半導体ディスク装置に用いるメモリとし
て、一括消去型のフラッシュ・メモリが開発されてい
る。DRAMと同じくトランジスタ1つで記憶素子が構
成され、高密度化が可能で、将来の市場次第でDRAM
と同等かそれ以下のビット単価(低コスト、大容量)に
なることが期待されている。記憶素子は不揮発性であ
り、電池バックアップの必要はない。消去は一般にチッ
プ単位又はそれよりも小さなブロック単位で行われる。
Richard D. Pashley 外の "Flash memories: the best
of two worlds" 、IEEE SPECTRUM 1989年12月、30〜33
頁は、このようなフラッシュ・メモリの概要を紹介して
いる。パフォーマンスの点では、チップ消去型よりブロ
ック消去型の方が優れている。
【0003】ブロック消去型のフラッシュ・メモリを半
導体ディスク装置(SSF)に用いる場合は、ブロック
の大きさをハード・ディスク装置のアクセス単位である
セクタに等しくしておくと、メモリ管理に都合がよい。
例えば、ヨーロッパ公開特許出願第392895号はセ
クタ消去型のフラッシュEEPROMシステムを開示し
ている。このシステムは、消去単位であるセクタ毎にラ
ッチを設けておき、消去したいセクタに対応するラッチ
をセットすることによって、任意の複数のセクタを同時
に消去できるようにしている。複数セクタ分の容量(例
えば4Kバイト)を持ったブロックを消去単位にしたフ
ラッシュ・メモリも知られている。さらにそのような物
理的な一括消去単位であるブロックを複数含むクラスタ
を論理的な消去の単位とすることも可能である。
【0004】しかし、フラッシュ・メモリにはSRAM
やDRAMにはない制限がある。まず、メモリ・ビット
のプログラミングは一方通行で、0から1又は1から0
へしか変えることができない。従って、既に書込まれて
いる記憶位置に新たなデータを書込む場合は、その記憶
位置を含むブロックを一括消去によって全0又は全1に
設定した後に書込みを行う必要がある。消去及び書込み
には、通常、数十ミリ秒から数秒の時間がかかる。ま
た、フラッシュ・メモリは消去及び書込みによって劣化
し、現在のところ、数万回から数十万回の消去及び書込
みで使用限度に達してしまう。
【0005】
【発明が解決しようとする課題】このような問題に対処
するため、消去回数の上限を越えないよう各ブロック毎
の消去回数を保存しておく必要がある。さらに、特願平
3−197318号に開示されるように、クラスタ内の
不良セクタの位置を記憶しておき、物理セクタを論理セ
クタに動的に割り当てるときに、これら不良セクタを飛
び越すような工夫が必要とされる。このように、フラッ
シュ・メモリの状態を記述する管理情報を自身の内部に
保存しなければならない状況が発生するが、フラッシュ
・メモリの特性上、データを消去するときに同時にこれ
ら管理情報も消去されてしまう。通常これら管理情報は
消去される前にSSFのコントローラのRAM領域にコ
ピーされ、ブロック消去の終了後、フラッシュ・メモリ
に書き戻される。しかしながら、このような方法を取る
と、クラスタ消去中に電源断等のシステム障害が発生し
た場合にRAM上の管理情報が失われ、コントローラは
これを回復することができなくなる。
【0006】また、フラッシュ・メモリではその構成
上、ブロック不良が発生することが考えられが、このブ
ロック不良の発生によってシステムは管理情報を読み込
めなくなる場合がある。このような不良モードで管理情
報を失ってしまった場合、システムはそのブロック内の
データを失うのみならずSSF全体の整合性を管理する
ことが出来なくなる恐れがある。これまでのところ、ブ
ロック不良に対するデータの保護管理については有効な
方法は提案されていなかった。
【0007】管理情報は、ブロックの消去回数などの、
一度失われてしまうと二度と回復できず、かつ、システ
ム管理上非常に重要なデータを含むので、これを喪失す
ることはSSFの管理上重大な問題を引き起こす。この
ように、いついかなる時も必ず保存されなければならな
いデータの保護について複数の不良モードに対応できる
ものはなかった。
【0008】さらに、管理情報を保存する物理セクタを
一意に決めてしまった場合、そのセクタに不良が発生し
た時にはその管理情報が管理するブロックまたはクラス
タ全体が使用不可となってしまう。即ち、クリティカル
なセクタが不良となることによってその数十倍もの領域
が、物理的には問題が無いにも拘らず論理的に不良とな
ってしまう、という非効率が発生する。これを防ぐため
にはクリティカルなセクタに対し代替セクタを設けると
いう方法があるが、この場合には代替セクタがどこに存
在するかをシステムは記憶しておく必要がある。一般
に、代替セクタに関する情報はフラッシュ・メモリ上に
記憶しておく必要があり、また、フラッシュ・メモリの
特性を考慮に入れれば、この情報は代替されるべきセク
タを含むクラスタに属する適当なセクタに保存されなけ
ればならない。この条件のもとで、代替セクタの位置情
報は、その性質上、これを管理情報の一部としてフラッ
シュ・メモリ上に記憶する事が考えられるが、これでは
管理情報(自分自身)の所在を示すのに自分自身(代替
セクタの位置)を参照しなければならないという矛盾に
陥る。これまでは、このような状況に対して有効な対策
は提案されてこなかった。
【0009】また、新たな不良セクタの発生などによっ
て管理情報(不良セクタ・マップ)の更新が必要となる
が、一般的にフラッシュ・メモリに対しては上書きが出
来ないので、更新処理は当該クラスタ消去後に行われる
管理情報の再書き込みの時点まで待たなければならな
い。このような更新トランザクションを更新処理完了ま
で如何に保存しておけばよいかということも解決されて
いない問題であった。
【0010】従って、本発明の目的は、一括消去型不揮
発性メモリを用いた半導体ディスク装置(SSF)の信
頼性を保証するために必須である管理情報の保存・更新
を確実に実現することにある。
【0011】本発明の他の目的は、フラッシュ・メモリ
を用いた半導体ディスク装置において、クラスタ消去回
数等の管理情報を不意の電源断等のシステム障害によっ
て失ってしまったときに、これを回復する手段を提供す
ることにある。
【0012】本発明のさらに他の目的は、SSF稼働中
に不良セクタが発見されたとき、これを管理情報保存領
域に正確に反映させる方法を提供することにある。
【0013】本発明のさらに他の目的は、管理情報保存
領域がワードライン不良などのセクタ不良により使用不
可能となってしまったときに対処することのできる管理
情報の保存・回復手段を提供することにある。
【0014】本発明のさらに他の目的は、ブロック不良
に対処することのできる管理情報の保存・回復手段を提
供することにある。
【0015】
【課題を解決するための手段】本発明に従う一括消去型
不揮発性メモリは、複数個のセクタを含み、各セクタに
自身の属性を識別するための属性情報が書き込まれる。
【0016】より具体的には、本発明に従う一括消去型
不揮発性メモリは、複数個のセクタの集まりであるクラ
スタを単位として消去することが可能であり、各クラス
タに自身の管理情報を記憶するためのクラスタ情報セク
タが設けられ、各クラスタのクラスタ情報セクタにはク
ラスタ情報セクタであることを示す属性情報が書き込ま
れ、ユーザ・データを書き込むセクタにはデータ・セク
タであることを示す属性情報が書き込まれる。
【0017】クラスタ情報セクタは原則としてその属す
るクラスタの所定位置に置かれる。また、データ・セク
タはクラスタの該所定位置以外の領域であるデータ・エ
リアに置かれる。
【0018】所与のクラスタのデータ・エリアに他のク
ラスタの管理情報のコピーを記憶するためのセクタが含
まれることがある。このセクタには、上記他のクラスタ
の識別子とクラスタ情報コピー・セクタであることを示
す属性情報が書き込まれる。
【0019】管理情報には、クラスタ消去回数と不良セ
クタ・マップを含むことができる。
【0020】所与のクラスタのデータ・エリアに、該ク
ラスタまたは他のクラスタにあってまだ関連するクラス
タ情報セクタの不良セクタ・マップに反映されていない
不良セクタの位置を記憶するセクタが含まれることがあ
る。このセクタには不良セクタを含むクラスタの識別子
と不良情報セクタであることを示す属性情報が書き込ま
れる。
【0021】本発明に従う半導体ディスク装置は、コン
トローラと、これに接続され、かつ上記のようにセクタ
ごとに属性情報がセットされた一括消去型不揮発性メモ
リとを含む。コントローラは、クラスタ消去時にはクラ
スタ情報コピー・セクタをデータ・エリアに作成し、ク
ラスタ初期化時にはクラスタ情報コピー・セクタからク
ラスタ管理情報を再構成し、クラスタ情報セクタを作成
する。
【0022】
【実施例】本発明の半導体ディスク装置を組み込んだコ
ンピュータ・システムの一例を図1に示す。CPU10
はシステム・バス13を介して、主記憶装置15、バス
制御装置16及びオプションの数値計算用コプロセッサ
14と通信する。CPU10及び関連する周辺装置の間
の通信はバス制御装置16を介して行われる。そのた
め、バス制御装置16はファミリー・バス18によって
周辺装置に接続されている。周辺装置としては、本発明
に従うフラッシュ・メモリ製の半導体ディスク装置(S
SF)20が接続され、さらに、通信装置21、フロッ
ピー・ディスク・ドライブ(FDD)22、光ファイル
装置23、表示装置24もファミリー・バス18に接続
されている。勿論、他の周辺装置も接続可能である。こ
のようなコンピュータ・システムの一例はIBM PS
/2である。
【0023】直接メモリ・アクセス制御装置(DMA
C)12は、これらの周辺装置の全部又は選択された何
台かによるメモリ・アクセスを可能にすべく設けられ
る。そのため、ファミリー・バス18は、少なくともそ
の一部がDMAC12に分岐接続される。図には示して
いないが、DMAが可能な各周辺装置にはアービトレー
ション回路が設けられ、アービトレーション・レベル
(優先順位)を割り当てられる。DMAC12の側に
は、DMAを同時に要求している複数の周辺装置の間で
調停作業を行って、どの周辺装置がDMAを許可された
かをDMAC12に知らせる中央アービトレーション制
御回路11が設けられる。DMAC12及び中央アービ
トレーション制御回路11によるDMA制御の詳細は米
国特許第4901234号明細書に記載されている。
【0024】CPU10はSSF20をハード・ディス
ク装置として扱う。従って、SSF20をアクセスする
ときは、ヘッド番号、シリンダ番号及びセクタ番号から
成るいわゆる相対ブロック・アドレス(RBA)がSS
F20に送られる。SSF20は動的セクタ割当てを行
う。従って、CPU10から供給されるRBAと、SS
F20の実際にアクセスされるセクタのアドレス(物理
アドレス)との間の関係は固定されておらず、書込みの
度に変化する。そこで、それらの対応関係を明らかにす
るアドレス変換表が設けられる。即ち、CPU10から
のRBAは論理アドレスである。アドレス変換表は、通
常、論理アドレスによって指される項目に、対応する物
理アドレスが書き込まれる。
【0025】図2に、SSF20の概略的な構成を示
す。このSSF20は、ファミリー・バス18に接続さ
れたコントローラ30と、内部バス31を介してこのコ
ントローラ30に接続されたランダム・アクセス・メモ
リ(RAM)32、バス制御部33及びフラッシュ・メ
モリ34で構成される。図示しないが、コントローラ3
0は、マイクロ・プロセッサとこれを制御するプログラ
ムを格納したROMを含む。図7以下のフローチャート
で説明する消去等の機能は、ROMのプログラムがマイ
クロ・プロセッサで実行されることによって、実現され
る。
【0026】RAM32は、アドレス変換表を記憶する
領域35及びバッファ領域36を含む。RAM32はこ
の他に後述するクラスタ情報コピー・セクタの位置を記
憶する表38(以下、CISコピー位置表と呼ぶ)と不
良情報セクタの位置を記憶する表39(以下、不良情報
位置表と呼ぶ)を含む。バス制御部33は、内部バス3
1と、フラッシュ・メモリ34に接続されたメモリ・バ
ス37とを相互接続するための周知のレシーバ/ドライ
バ構成を有する。
【0027】以下では、セクタ及びクラスタの構成を異
にする実施例を二つ示すが、どちらもCPUの指定する
論理セクタのサイズは512バイトであり、CPU10
のSSF20に対する最小アクセス単位である物理セク
タのサイズは512+αバイトであるとする。第1実施
例では、SSF20のセクタ(物理セクタ)及びクラス
タは次のようにして管理される。
【0028】1) 実際の消去を行う論理的な集合をつ
くり、これをクラスタと呼ぶ。クラスタは物理的な消去
単位であるブロックの一つ以上からなる。実施例では8
セクタで1ブロックを構成し、8ブロックで1クラスタ
を構成する。ブロックとクラスタの対応関係は、ブロッ
クの上位アドレスをクラスタの識別子としたり、あるい
は表を作ることによって、形成される。
【0029】2) 本実施例では物理セクタは以下のよ
うな属性を持ち、それぞれ属性フラグによって識別され
る。
【0030】まず、各クラスタの先頭がクラスタ情報セ
クタ(CIS)に割り当てられ、クラスタ消去回数、ク
ラスタ内の不良セクタ・マップなど、各クラスタ固有の
管理情報を保存する(図3参照)。また、冗長領域(α
バイト)には属性フラグを書き込む領域が含まれてお
り、クラスタ情報セクタであることを示す「クラスタ情
報」フラグがセットされる。これらの情報には個々に対
してパリティー・コードなどを付加し、エラーの発生を
検知できるようにしておく。
【0031】各種管理情報に対するパリティーは、誤り
訂正が出来るようなコードであることが望ましいが、こ
こでは単純な奇偶パリティーやCRCパリティーで十分
である。これらパリティーを全て含めた管理情報全体
(属性フラグを含む)に対してECCパリティーを計算
し、これをクラスタ情報セクタの冗長領域に書き込む。
【0032】特願平5−35228号明細書は、予め各
クラスタに対して互いに重複することのないように順序
番号を与えておき、所与のクラスタが消去されて後に初
期化されるときに、現在の最大順序番号よりも大きな値
を新たな順序番号として当該所与のクラスタに書くとい
う発明を開示している。そのような順序番号を用いてセ
クタを管理する場合には、クラスタ情報セクタに管理情
報として順序番号が書き込まれる。なお、クラスタの管
理情報が512バイトの領域全部を占めるわけではな
い。
【0033】クラスタの先頭セクタはクラスタ管理情報
が置かれる重要なセクタであるが、そこも他のセクタと
同様、ワード線不良などの不良が発生する可能性があ
る。そこで、第1実施例では、先頭セクタが不良である
場合、次以降の、他のいかなる属性を持つセクタよりも
前にあるセクタをクラスタ情報セクタに割り当てるよう
にしている。
【0034】クラスタの先頭以外のセクタは、本来、ユ
ーザ・データを書くためのエリアなので、これをデータ
・エリアと呼ぶことにする。図4は、各クラスタのユー
ザ・データを保持するセクタ(以下ではデータ・セクタ
と呼ぶ)のフォーマットを示す。図示のように、データ
・セクタは、512バイトのユーザ・データを保持する
データ領域の他に、属性フラグ及びエラー訂正符号(E
CC)を保持する領域を含む。属性フラグはデータ・セ
クタであることを示す「データ」フラグがセットされ
る。なお、実施例では動的セクタ割当てを行うので、ア
ドレス変換表の項目を指す逆参照ポインタが属性フラグ
の一部として書かれる。
【0035】データ・エリアには、データ・セクタ以外
の種類のセクタが置かれることがある。図5は、クラス
タ情報セクタのコピーを保持するセクタ(以下ではクラ
スタ情報コピー・セクタまたはCISコピー・セクタと
呼ぶ)のフォーマットを示す。このセクタは、自身の属
するクラスタとは異なるクラスタの管理情報のコピーを
保管するものである。図示のように、512バイトのデ
ータ領域に、クラスタ番号とその番号を持つクラスタの
管理情報のコピーが書き込まれ、αバイトの冗長領域
に、クラスタ情報セクタであることを示す「クラスタ情
報コピー」属性フラグとECCが書き込まれる。
【0036】図6は、不良情報セクタのフォーマットを
示す。このセクタは、自身の属するクラスタあるいはそ
れとは異なる異なるクラスタで新たに検出された不良デ
ータ・セクタの番号を保管するものである。図示のよう
に、512バイトのデータ領域に、クラスタ番号、その
番号を持つクラスタの不良セクタ番号及び不良セクタ検
出時点での消去回数が書き込まれ、αバイトの冗長領域
に、不良情報セクタであることを示す「不良情報」属性
フラグとECCが書き込まれる。
【0037】図3乃至図6に示したセクタのフォーマッ
トは模式的なものであることに注意されたい。例えば、
属性フラグを512+αバイト全体のうちの最先にアク
セスされる領域(ワードラインの先頭)に位置させても
よい。
【0038】3) 次に、図7を参照して、セクタ書き
込みに伴うベリファイの結果、不良データ・セクタが発
見されたときのSSFの動作を説明する。
【0039】あるデータ・セクタへの書き込みを所定回
数行ってもベリファイ・エラーとなる場合、コントロー
ラは、そのセクタの属するクラスタのクラスタ番号及び
消去回数並びにセクタ番号をRAMに一時的に保存する
(ステップ74)。次に、それらの情報を、現在ユーザ
・データを書き込み中のクラスタの次に書くべきセクタ
に書き込み、属性フラグは「不良情報」として、不良情
報セクタを作成する。(ステップ75)。しかる後、作
成された不良情報セクタの位置(クラスタ番号とセクタ
番号)を不良情報位置表に登録する(ステップ76)。
不良情報位置表は、不良情報セクタに含まれるクラスタ
番号と該セクタの位置の対応関係を記録する。例えば、
クラスタ番号によって定まる項目に、その番号を含む不
良情報セクタの位置が登録される。
【0040】このように、不良セクタを発見すると、不
良情報セクタをフラッシュ・メモリに作成するので、関
連する不良セクタ・マップを更新するまでの間に電源断
が発生しても、不良情報は維持される。
【0041】4) 図8乃至図11を参照して、クラス
タ消去及びクラスタ初期化に関し、SSFの動作(コン
トローラが実行する消去プログラム及び初期化プログラ
ム)を説明する。
【0042】図8は、クラスタ消去動作のフローチャー
トである。あるクラスタCnがその有効セクタ数が一定
数を下回る等の条件に合致した場合、コントローラはそ
のクラスタを消去対象に定める(ステップ80)。次
に、クラスタCn中の有効データを他のクラスタに保管
するためのガベージ・コレクションを行うが(ステップ
81)、その詳細は後で説明する。
【0043】ガベージ・コレクションの後、コントロー
ラはクラスタCnのCISを読み取り、RAMに保存す
る。次に、現在ユーザ・データを書き込み中のクラスタ
の次に書き込むべき位置のセクタに、Cnのクラスタ番
号と読み取った管理情報を書き込み、さらに「クラスタ
情報コピー」フラグと計算したECCを書き込んで、ク
ラスタ情報コピー・セクタを作成する(ステップ8
3)。作成されたCISコピー・セクタの位置をCIS
コピー位置表に登録した後、コントローラはクラスタC
nを消去する(ステップ84、85)。CISコピー位
置表は、CISコピー・セクタに含まれるクラスタ番号
と該セクタの位置の対応関係を記録する。例えば、クラ
スタ番号によって定まる項目に、その番号を含むCIS
コピー・セクタの位置が登録される。
【0044】このように、クラスタを消去する前にCI
Sコピー・セクタをフラッシュ・メモリに作成するの
で、消去中に電源断が発生してもクラスタ管理情報は失
われない。
【0045】図9は、クラスタ初期化のフローチャート
である。ここで言う初期化は、消去済みのクラスタにク
ラスタ情報セクタを作成し、データ・エリアにユーザ・
データを書き込める状態にすることである。空白セクタ
のみからなるクラスタがなくなった等の条件が成就した
とき、コントローラは、消去済みの一つ以上のクラスタ
の中から、消去回数等を考慮して、初期化を行うクラス
タCmを選択する。(ステップ90)。次に、CISコ
ピー位置表で示されるクラスタCmについてのCISコ
ピー・セクタを読み取り、Cmの管理情報を再構成す
る。このとき、消去回数はカウント・アップされる(ス
テップ91)。次に、不良情報位置表で示されるクラス
タCmについての不良情報セクタを読み取り、不良情報
セクタの情報に基づいて、不良セクタ・マップを更新す
る(ステップ92)。しかる後、クラスタCmの先頭に
クラスタ情報セクタを作成する。もし、先頭セクタへの
書き込みが失敗に終わった場合、またはCISコピー・
セクタ中の管理情報(例えば、不良セクタ・マップの先
頭ビット)が先頭セクタの不良であることを示している
場合には、第2番目以降の不良でない位置に、クラスタ
情報セクタを作成する(ステップ93)。クラスタ情報
セクタに反映されたCISコピー・セクタの位置情報は
CISコピー位置表から、不良情報セクタの位置情報は
不良情報位置表から、クリアされる(ステップ94)。
【0046】次に、ガベージ・コレクションの詳細を二
つの例に則して説明する。図10は、データ・エリアを
先頭から最後まで逐一読む場合のフローチャートであ
る。読み取ったセクタの属性フラグからCISコピー・
セクタであると判明した場合、コントローラは、それが
有効な情報を保持しており、従って他のセクタにコピー
すべきものであるか否かを判断する(ステップ10
2)。具体的には、CISコピー・セクタが保持するク
ラスタCxの消去回数Exを、クラスタCxのCISに
実際に書き込まれている消去回数Eaと比較する。Ex
とEaが等しいときは、CISコピー・セクタを有効デ
ータと見なす。また、クラスタCxが消去されている状
態のときも、有効と見なす。それら以外の場合は、古く
なった無効データとして扱う。これによって、CISコ
ピー・セクタが無効データとして消されてしまうことを
防止する。なお、クラスタが消去されている状態にある
ことは、後述する図14のステップ142で判断する。
【0047】読み取ったセクタが不良情報セクタである
と判明した場合も、同様の判断をする(ステップ10
4)。具体的には、不良情報セクタが保持する消去回数
と実際のCISに書かれている消去回数を比較する。両
者が等しいときは、不良情報を有効と見なす。また、ク
ラスタCxが消去されている状態のときも、有効と見な
す。それら以外の場合は、不良情報はCISに反映済み
であるとし、無効データとして扱う。これによって、不
良セクタ・マップの更新が行われる前に、その不良情報
セクタが無効データとして消されてしまうことを防止す
る。
【0048】読み取ったセクタがデータ・セクタである
場合も、コピーすべき有効なセクタであるか否かを判断
する(ステップ105)。具体的には、逆参照ポインタ
でアドレス変換表を参照し、そこに書き込まれている物
理アドレスを求め、これを自身の物理アドレスと比較す
る。両者が一致すれば有効セクタであるので、現在ユー
ザ・データを書き込み中のクラスタの次にユーザ・デー
タを書き込むべき位置に、そのセクタをコピーする(ス
テップ106)。その後、読み取ったセクタが有効なC
ISコピー・セクタである場合にはCISコピー位置表
を更新し、有効な不良情報セクタである場合には不良情
報位置表を更新する(ステップ107)。
【0049】5) 図11は、各データ・セクタの有効
性が予め記録されている場合に、その記録及びCISコ
ピー位置表並びに不良情報位置表を活用して行うガベー
ジ・コレクションのフローチャートである。CISコピ
ー・セクタが消去対象クラスタにあるときは、図10の
ステップ102と同様の方法で、不良情報セクタがある
ときは、ステップ104と同様の方法で、それぞれ有効
性を判断する(ステップ112、117)。
【0050】図12及び図13を参照して、アドレス変
換表の再構成に関し、SSFの動作(コントローラが実
行するアドレス変換表再構成プログラム)を説明する。
アドレス変換表は動的セクタ割当てを実行する上で必須
のものであるが、RAM上に作られるものであるので、
電源をオフにすると失われる。そこで、システム立ち上
げ時に、全クラスタの全セクタを読み取って、アドレス
変換表を再構成する。
【0051】所与のクラスタの先頭に位置するCISの
読取りに成功した後、コントローラはデータ・エリアの
セクタを先頭から最後まで順次読み取る(ステップ12
1、122、132、135)。読取りに失敗したセク
タについては、その位置を一時的にRAMに保存する
(ステップ131)。読取りに成功したセクタについて
は、その属性フラグを調べる。CISコピー・セクタま
たは不良情報セクタである場合は、図10のステップ1
02、104と同様に有効性を判断する(ステップ12
5、128)。読み取ったセクタが有効なCISコピー
・セクタである場合にはCISコピー位置表を更新し、
有効な不良情報セクタである場合には不良情報位置表を
更新する(ステップ126、129)。データ・セクタ
である場合は、逆参照ポインタの指すアドレス変換表の
項目に物理アドレスを登録する(ステップ130)。
【0052】データ・エリアの読取りが終了した後、ス
テップ131で保存した読取失敗セクタの位置とCIS
の不良セクタ・マップに登録された不良セクタの位置を
比較する(ステップ133)。読取失敗セクタの位置が
未登録の場合には、エラー・メッセージを、例えば表示
装置24(図1)に表示する(ステップ134)。
【0053】6) 既述のように、クラスタを消去する
とき及びアドレス変換表を再構成するときに、SSFは
クラスタ情報セクタを読み取る。しかしながら、システ
ム障害などにより消去または初期化が失敗に終わってい
た場合には、クラスタ管理情報の内容が乱れており、E
CC訂正不能エラーが発生する。つまり、先頭セクタの
読取りは失敗に終わる。また、本実施例では、クラスタ
の先頭セクタが不良であるときのクラスタ情報セクタ
は、その次のセクタ、つまりデータ・エリアの先頭のセ
クタである。このときも、先頭セクタの読取りは失敗に
終わる。
【0054】図14は、クラスタ消去時またはアドレス
変換再構成時等における、クラスタ先頭セクタの読取り
及びその読取りが失敗したときのクラスタ管理情報の獲
得に関係する動作のフローチャートである。先頭セクタ
を読み、訂正不能エラーが検出されなかった場合、ステ
ップ146で属性フラグを調べる。「クラスタ情報」で
あることが確認されたならば、管理情報を種類ごとに切
り分けてRAMに保存する(ステップ147)。
【0055】ステップ141でエラーが検出される場合
には、当該クラスタが消去されている場合も含まれる。
そこで、ステップ142で、当該クラスタが消去済みか
否かを判断する。具体的には、先頭セクタのビット・パ
ターンを消去済みの場合に特有のビット・パターンと比
較する。両者が一致するときは消去済みであり、直ちに
処理を終了する。
【0056】本実施例では、先頭セクタが不良である場
合、データ・エリア中の、他のいかなる属性を持つセク
タよりも前に、クラスタ情報セクタが置かれる。そこ
で、コントローラは、ステップ143で訂正不能と判断
した場合も、訂正不能エラー生じないセクタが見つかる
まで、セクタの読み取りとエラー検出を繰り返す(ステ
ップ144、145、143)。
【0057】ステップ146の判断の結果、正しく読め
たセクタがクラスタ情報セクタではなかったということ
は、クラスタ情報セクタが本来あるべき位置にないこと
を意味する。このような事態は、クラスタ情報セクタを
含むブロックを消去している最中、あるいはクラスタを
初期化している最中に電源断などのシステム障害が起こ
ったか、またはクラスタ情報セクタが読取り不良となっ
たことにより発生する。そこで、ステップ148に進
み、他の全てのクラスタの全てのセクタを走査して、ク
ラスタ管理情報を保管しているクラスタ情報コピー・セ
クタを探す。見つかれば、消去をあらためて行った後、
そのクラスタ情報コピー・セクタから管理情報を取り出
し、クラスタの先頭セクタにコピーしてクラスタ情報セ
クタを作成することにより、初期化を行う。もし先頭セ
クタへの書込みが失敗に終わるなら、その次のセクタを
クラスタ情報セクタとする(ステップ150)。CIS
コピー・セクタがない場合は、致命的なエラーが発生し
たことになるので、その旨のメッセージをユーザに伝
え、ユーザの指示を待つ(ステップ151)。
【0058】次に、第2実施例でのセクタ及びクラスタ
の管理を説明する。
【0059】7)図15に示すように、物理的消去単位
であるブロックをNページに分割する。1ページのサイ
ズは256+βバイト(256=セクタサイズの半分、
βはシステムが用いる数バイトの冗長領域)である。
【0060】ページをどのように取るかは、一般には使
用するチップの物理仕様に依らない。例えば、バイト単
位で独立にアクセス出来るようなチップに対しては単純
に256+βバイトを論理的な塊として扱えばよい。ま
た、物理的なページ長(ワードライン長)が256+β
バイトであるような専用のチップを用いてもよい。図1
5と図16は、後者の専用チップを用いる場合を示した
ものである。
【0061】8) ブロックが偶数個から成る集合をつ
くり、論理的な消去単位であるクラスタを形成する。コ
ントローラはクラスタを単位として消去を行う。図16
に示すように、これらブロックを半数づつのグループに
分け、それぞれを異なるチップ上に割り当てる。
【0062】クラスタを形成するブロックのチップ上へ
の割当法は一般的には任意である。ここでは、データ転
送速度向上を目的として、2チップを同時に活性化する
ために図16に示すようなブロックの割当法をとってい
る。即ち、4ブロックを1クラスタとし、2ブロックず
つを異なるチップに割り当てている。このようにすれ
ば、コントローラとフラッシュ・メモリとの間のバス幅
を2倍にすることができる。さらに倍のバス幅が必要で
あればクラスタを形成するブロックを1/4づつのグル
ープに分け、それぞれを四つの別々のチップに割り当て
ればよい。この場合、1ページの長さは128+γバイ
トにする。
【0063】9) 一つの物理セクタを必ず複数(ここ
では2個)のブロックにまたがるように配置する。ま
た、セクタ全体に対してECCパリティーを付加してお
く。
【0064】物理セクタの長さは512+αバイトであ
り、これを収容するためには二つのページを必要とする
(以下、一つの物理セクタを収容する二つのページを
「ページペア」と呼ぶ)。本実施例では、各ページペア
を、図16のPa(x)とPb(x)のように割り付け
ることによって、各ページが異なるチップ内にあり、従
って異なるブロック内にあるようにしている。
【0065】10) 各クラスタの先頭セクタにクラス
タ情報セクタを作成し(図16中、Pa(0)とPb
(0))、第1実施例と同様に、クラスタ消去回数、ク
ラスタ内の不良セクタ・マップなど、各クラスタ固有の
管理情報をパリティー・コードを付加して格納する。図
17は、本例のクラスタ情報セクタのフォーマットを示
す。第1実施例と異なる点は、クラスタ管理情報がペー
ジペアの各ページそれぞれに重複して書かれることであ
る。
【0066】二重化されているページペア内の管理情報
全体(「クラスタ情報」属性フラグを含む)に対してE
CCパリティーを計算し、これをページペア内の冗長領
域(α=2βバイト)に書き込む。計算されたECCパ
リティーのビットの半分がPa(0)に、残り半分がP
b(o)に格納される。したがって、Pa(0)とPb
(0)のECCの部分は異なる。ECCの部分を除く
と、両ページは全く同じ内容を保持する。
【0067】このように、クラスタ管理情報を二つのペ
ージに重複して保持するようにしたので、ワード線不良
によってクラスタ管理情報が一度に失われることがな
い。また、その二つのページを異なるブロックに割り当
てたので、ブロック不良によってクラスタ管理情報が一
度に喪失することもない。図16では、クラスタ情報セ
クタ以外のセクタについてもページペアを二つのブロッ
クに割り付けた。一般的には、クラスタ情報セクタを構
成するページペアを異なるブロックに割り付け、その他
のセクタのページペアは同じブロックに割り付けるよう
にしても、ブロック障害への耐性を十分高めることがで
きる。
【0068】第1実施例では、クラスタの先頭にクラス
タ情報セクタ以外のセクタが置かれることはなかったの
に対し、本実施例では、代替CISポインタ・セクタが
置かれることがある。図18に示すように、代替CIS
ポインタ・セクタは、クラスタの先頭のセクタの一方の
ページが不良である場合に、他方のページに代替CIS
のアドレスを保持するものである。図19はそのフォー
マットを示す。1ページの先頭にクラスタ管理情報を格
納する代替セクタのアドレス(ポインタ)が書き込ま
れ、βバイトの冗長領域に、代替セクタ・ポインタであ
ることを示す属性フラグとECCが書き込まれる。
【0069】通常、代替CISとしてはクラスタの第2
番目のセクタが選ばれることになるが、そのセクタに関
して不良セクタ・マップに「不良」フラグがセットされ
ている場合には、さらに次のセクタを代替CISとする
というように順次選んでいく。代替CISとして選ばれ
たセクタは、通常のクラスタ情報セクタと同一のフォー
マットを持っている。データ・セクタ、クラスタ情報コ
ピー・セクタ、不良情報セクタのフォーマットは図4乃
至図6に示したものと同一である。
【0070】11) 本実施例における不良データ・セ
クタ発見時、消去時、初期化時、及びアドレス変換表作
成時のSSFの動作は第1実施例と同じである。ただ、
クラスタ情報が二重化されたこと、及び代替セクタ・ポ
インタが設けられたことから、クラスタ先頭セクタの読
取り及びその読取り失敗時のクラスタ管理情報の獲得に
関係する動作は第1実施例と異なる。図20と図21は
本実施例での動作のフローチャートである。
【0071】先頭セクタを読み、訂正不能エラーが検出
されなかった場合、ステップ216へ進み、直ちに管理
情報を種類別に切り分けて、RAMに保存する。
【0072】訂正不能エラーが検出された場合には、ク
ラスタ情報セクタをページ別に読み分ける。まず、ペー
ジPa(0)を読み、そのデータの整合性を各種管理情
報中に付加したPa(0)に対するパリティ・コードに
よりチェックする(ステップ204)。正しいデータで
あれば、ステップ208へ進む。ステップ208では、
Pa(0)の属性フラグを検査する。
【0073】読み取ったPa(0)のデータが正しくな
ければ、ページPb(0)を読み、そのデータの整合性
をPb(0)に対するパリティ・コードによりチェック
する(ステップ206)。正しいデータであれば、ステ
ップ209へ進み、Pb(0)の属性フラグを検査す
る。
【0074】先頭セクタのどちらのページの内容も正し
くないときは、CISコピー・セクタを探し、見つかれ
ば、ステップ212へ進み、図14のステップ149と
同様にしてCISを回復する。見つからなければ、ステ
ップ213へ進み、図14のステップ150と同様にし
てエラー表示などの処理を行う。
【0075】ステップ214で不良でないページPa
(0)またはPb(0)の属性を検査した結果、当該ペ
ージがCISを構成するページの一方である場合には、
代替CISセクタと代替CISセクタ・ポインタがまだ
作られていないことを意味する。従って、後に行われる
クラスタ初期化の際に代替CISと代替CISポインタ
・セクタを作成するために、当該クラスタの番号及び先
頭セクタのどちらのページが不良ページであるかをRA
Mに保存する(ステップ215)。その後、ステップ2
16へ進んで、当該ページに含まれていた管理情報を種
類ごとに切り分けてRAMに保存する。
【0076】Pa(0)またはPb(0)の属性が「代
替CISポインタ」であるときは、ステップ217へ進
み、ポイントされる代替CISを読み取り、管理情報を
取り込む。
【0077】なお、実際には、ステップ201と202
の間に、図14のステップ142に相当するステップが
存在するが、説明の都合上、図20ではこれを省略して
いる。
【0078】以上、特定の二つの実施例を説明したが、
本発明の適用範囲はそれらに限られるわけではない。例
えば、特願平5−35228号明細書のように、クラス
タに順序番号が書き込まれ、消去・初期化される度に順
序番号が書き換えられるSSFでは、図11のステップ
112、117や図12のステップ125、128にお
いて、消去回数に替えて順序番号を比較するようにして
もよい。
【0079】
【発明の効果】以上のように、本発明によれば、一括消
去型不揮発性メモリを用いる半導体ディスク装置の、電
源断等の障害に対する耐性が高まる。
【図面の簡単な説明】
【図1】本発明に従うフラッシュ・メモリを半導体ディ
スク装置として使用するコンピュータ・システムの一例
を示すブロック図。
【図2】半導体ディスク装置の概略構成を示すブロック
図。
【図3】第1実施例におけるフラッシュ・メモリのクラ
スタ情報セクタのフォーマットを示す図。
【図4】フラッシュ・メモリのデータ・セクタのフォー
マットを示す図。
【図5】フラッシュ・メモリのクラスタ情報コピー・セ
クタのフォーマットを示す図。
【図6】フラッシュ・メモリの不良情報セクタのフォー
マットを示す図。
【図7】不良データ・セクタを検出したときのSSFの
動作を示すフローチャート。
【図8】セクタを消去するときのSSFの動作を示すフ
ローチャート。
【図9】セクタを初期化するときのSSFの動作を示す
フローチャート。
【図10】ガベージ・コレクションの一例を示すフロー
チャート。
【図11】ガベージ・コレクションの他の例を示すフロ
ーチャート。
【図12】アドレス変換表を再構成するときのSSFの
動作を示すフローチャート。
【図13】アドレス変換表を再構成するときのSSFの
動作を示すフローチャート。
【図14】第1実施例でのSSFのクラスタ先頭セクタ
読取り及びそれに関連する動作を示すフローチャート。
【図15】第2実施例でのブロックとページの関係を示
す図。
【図16】第2実施例でのクラスタ、ブロック、セクタ
及びページの関係を示す図。
【図17】第2実施例におけるフラッシュ・メモリのク
ラスタ情報セクタのフォーマットを示す図。
【図18】代替CISポインタ・セクタと代替CISの
関係を示す図。
【図19】代替CISポインタ・セクタのフォーマット
を示す図。
【図20】第2実施例でのSSFのクラスタ先頭セクタ
読取り及びそれに関連する動作を示すフローチャート。
【図21】第2実施例でのSSFのクラスタ先頭セクタ
読取り及びそれに関連する動作を示すフローチャート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 豊岡 孝資 東京都千代田区三番町5−19 日本ア イ・ビー・エム株式会社 東京基礎研究 所内 (56)参考文献 特開 平5−27924(JP,A) 特開 平2−185766(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/06 G06F 12/16

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】複数個のセクタの集まりであるクラスタを
    単位として消去することが可能である一括消去型不揮発
    性メモリの管理方法であって、 各クラスタの所定のセクタに、自身の管理情報と、該所
    定のセクタがクラスタ情報セクタであることを示す属性
    情報とを書き込み、 各クラスタにおいて上記所定のセクタ以外の領域をデー
    タ・エリアとして、その選択されたセクタに、ユーザ・
    データと、該選択されたセクタがデータ・セクタである
    ことを示す属性情報とを書き込み、 所与のクラスタのデータ・エリアの選択されたセクタ
    に、他のクラスタの管理情報のコピーと、上記他のクラ
    スタの識別子と、該選択されたセクタがクラスタ情報コ
    ピー・セクタであることを示す属性情報とを書き込む、 ことを特徴とする一括消去型不揮発性メモリの管理方
    法。
  2. 【請求項2】上記管理情報はクラスタ消去回数を含み、 所与のクラスタを消去するときに該所与のクラスタに含
    まれるクラスタ情報コピー・セクタの有効性を、該クラ
    スタ情報コピー・セクタに保持されている消去回数と該
    セクタ中の上記識別子によって示されるクラスタのクラ
    スタ情報セクタに保持されている消去回数を比較して判
    断し、 有効である場合には、上記所与のクラスタを消去する前
    に、上記クラスタ情報コピー・セクタを他のクラスタの
    データ・エリアにコピーすることを特徴とする請求項1
    記載の方法。
  3. 【請求項3】複数個のセクタの集まりであるクラスタを
    単位として消去することが可能である一括消去型不揮発
    性メモリの管理方法であって、 各クラスタの所定のセクタに、クラスタ消去回数及び不
    良セクタ・マップを含む自身の管理情報と、該所定のセ
    クタがクラスタ情報セクタであることを示す属性情報と
    を書き込み、 各クラスタにおいて上記所定のセクタ以外の領域をデー
    タ・エリアとして、その選択されたセクタに、ユーザ・
    データと、該選択されたセクタがデータ・セクタである
    ことを示す属性情報とを書き込み、 所与のクラスタのデータ・エリアの選択されたセクタ
    に、該クラスタまたは他のクラスタにあってまだ関連す
    るクラスタ情報セクタの不良セクタ・マップに反映され
    ていない不良セクタの位置と、該不良セクタを含むクラ
    スタの識別子及び消去回数と、該選択されたセクタが不
    良情報セクタであることを示す属性情報とを書き込む、 ことを特徴とする一括消去型不揮発性メモリの管理方
    法。
  4. 【請求項4】所与のクラスタを消去するときに、該所与
    のクラスタに含まれる不良情報セクタの有効性を、該不
    良情報セクタに保持されている消去回数と該セクタ中の
    識別子によって示されるクラスタのクラスタ情報セクタ
    に保持されている消去回数を比較して判断し、 有効である場合には、上記所与のクラスタを消去する前
    に、上記不良情報セクタを他のクラスタのデータ・エリ
    アにコピーすることを特徴とする請求項3記載の方法。
  5. 【請求項5】複数個のセクタの集まりであるクラスタを
    単位として消去することが可能である一括消去型不揮発
    性メモリの管理方法であって、 それぞれが複数のページを含む偶数個のブロックで各ク
    ラスタを構成し、 所与のクラスタを構成するブロックの半数の先頭ページ
    を該クラスタのクラスタ情報セクタの第1の半分に割り
    当て、残りのブロックの先頭ページを該クラスタ情報セ
    クタの第2の半分に割り当て、 各クラスタのクラスタ情報セクタの第1の半分及び第2
    の半分に、当該クラスタの管理情報と、該セクタがクラ
    スタ情報セクタであることを示す属性情報とを重複して
    書き込み、 各クラスタにおいてクラスタ情報セクタ以外の領域をデ
    ータ・エリアとして、その選択されたセクタに、ユーザ
    ・データと、該選択されたセクタがデータ・セクタであ
    ることを示す属性情報とを書き込むことを特徴とする一
    括消去型不揮発性メモリの管理方法。
  6. 【請求項6】上記クラスタ情報セクタの第1の半分と第
    2の半分は異なるメモリ・チップに割り付けられること
    を特徴とする請求項5記載の方法。
  7. 【請求項7】上記クラスタ情報セクタの一方の半分が不
    良のとき、上記所与のクラスタのデータ・エリアに代替
    クラスタ情報セクタを設定して、該セクタにクラスタ情
    報セクタであることを示す属性情報を書き込み、 上記クラスタ情報セクタの他方の半分に上記代替クラス
    タ情報セクタを指すポインタを書き込むことを特徴とす
    る請求項5または6記載の方法。
  8. 【請求項8】複数個のセクタの集まりであるクラスタを
    単位として消去することが可能であり、各クラスタの所
    定位置に自身の管理情報を記憶するためのクラスタ情報
    セクタが設けられている一括消去型不揮発性メモリと、 上記一括消去型不揮発性メモリに接続され、各クラスタ
    のクラスタ情報セクタに、当該クラスタの管理情報と、
    該セクタがクラスタ情報セクタであることを示す属性情
    報とを書き込み、上記クラスタ情報セクタ以外の領域を
    データ・エリアとして、その選択されたセクタに、ユー
    ザ・データと、該選択されたセクタがデータ・セクタで
    あることを示す属性情報とを書き込むか、または他のク
    ラスタの消去前に該他のクラスタのクラスタ情報セクタ
    から読み取られた管理情報と、該他のクラスタの識別子
    と、該選択されたセクタがクラスタ情報コピー・セクタ
    であることを示す属性情報とを書き込むコントローラと
    を含むことを特徴とする半導体ディスク装置。
  9. 【請求項9】上記コントローラに接続されたプロセッサ
    及びランダム・アクセス・メモリをさらに含み、 上記ランダム・アクセス・メモリは、 上記プロセッサが発するコマンドに含まれる論理アドレ
    スを特定のセクタを指示する物理アドレスに変換するた
    めのアドレス変換表と、 上記クラスタ情報コピー・セクタに含まれるクラスタ識
    別子と該セクタの位置の対応関係を示す表とを含むこと
    を特徴とする請求項8記載の半導体ディスク装置。
  10. 【請求項10】複数個のセクタの集まりであるクラスタ
    を単位として消去することが可能であり、各クラスタの
    所定位置に自身の管理情報を記憶するためのクラスタ情
    報セクタが設けられている一括消去型不揮発性メモリ
    と、 上記一括消去型不揮発性メモリに接続され、各クラスタ
    のクラスタ情報セクタに、当該クラスタの不良セクタ・
    マップを含む管理情報と、該セクタがクラスタ情報セク
    タであることを示す属性情報とを書き込み、上記クラス
    タ情報セクタ以外の領域をデータ・エリアとして、その
    選択されたセクタに、ユーザ・データと、該選択された
    セクタがデータ・セクタであることを示す属性情報とを
    書き込み、所与のクラスタに不良セクタを検出したとき
    に、該クラスタの識別子及び消去回数と、該不良セクタ
    の識別子とを、現在ユーザ・データを書き込み中のクラ
    スタのセクタに書き込み、かつ該書き込まれたセクタに
    不良情報セクタであることを示す属性情報をセットする
    コントローラとを含むことを特徴とする半導体ディスク
    装置。
  11. 【請求項11】上記コントローラに接続されたプロセッ
    サ及びランダム・アクセス・メモリをさらに含み、 上記ランダム・アクセス・メモリは、 上記プロセッサが発するコマンドに含まれる論理アドレ
    スを特定のセクタを指示する物理アドレスに変換するた
    めのアドレス変換表と、 上記不良情報セクタに含まれるクラスタ識別子と該セク
    タの位置の対応関係を示す表とを含むことを特徴とする
    請求項10記載の半導体ディスク装置。
JP5024793A 1993-03-11 1993-03-11 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 Expired - Fee Related JP3078946B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5024793A JP3078946B2 (ja) 1993-03-11 1993-03-11 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
KR1019940004327A KR0128218B1 (ko) 1993-03-11 1994-03-07 일괄 소거형 비휘발성 메모리
EP94301655A EP0615184A3 (en) 1993-03-11 1994-03-09 Non-volatile memory.
US08/212,469 US5734816A (en) 1993-03-11 1994-03-10 Nonvolatile memory with flash erase capability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5024793A JP3078946B2 (ja) 1993-03-11 1993-03-11 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置

Publications (2)

Publication Number Publication Date
JPH06274409A JPH06274409A (ja) 1994-09-30
JP3078946B2 true JP3078946B2 (ja) 2000-08-21

Family

ID=12853663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5024793A Expired - Fee Related JP3078946B2 (ja) 1993-03-11 1993-03-11 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置

Country Status (4)

Country Link
US (1) US5734816A (ja)
EP (1) EP0615184A3 (ja)
JP (1) JP3078946B2 (ja)
KR (1) KR0128218B1 (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
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
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
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
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6031758A (en) 1996-02-29 2000-02-29 Hitachi, Ltd. Semiconductor memory device having faulty cells
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
JP3538202B2 (ja) * 1996-07-19 2004-06-14 東京エレクトロンデバイス株式会社 フラッシュメモリカード
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
JPH10255489A (ja) * 1997-03-13 1998-09-25 Mitsubishi Electric Corp マイクロコンピュータ
WO1998043248A1 (en) * 1997-03-21 1998-10-01 Canal+ Societe Anonyme Computer memory organization
US6009520A (en) * 1997-12-10 1999-12-28 Phoenix Technologies, Ltd Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6560702B1 (en) 1997-12-10 2003-05-06 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation
US6202090B1 (en) * 1997-12-11 2001-03-13 Cisco Technology, Inc. Apparatus and method for downloading core file in a network device
JP2990181B1 (ja) * 1998-09-28 1999-12-13 日本電気アイシーマイコンシステム株式会社 フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6332204B1 (en) 1999-03-31 2001-12-18 International Business Machines Corporation Recovering and relocating unreliable disk sectors when encountering disk drive read errors
US6247152B1 (en) * 1999-03-31 2001-06-12 International Business Machines Corporation Relocating unreliable disk sectors when encountering disk drive read errors with notification to user when data is bad
US6426928B1 (en) 1999-03-31 2002-07-30 International Business Machines Corporation Ability to distinguish true disk write errors
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US6678203B1 (en) * 1999-08-27 2004-01-13 Sony Corporation Editing apparatus, editing method, and non-volatile memory
WO2001024014A1 (en) * 1999-09-27 2001-04-05 Zf Micro Devices, Inc. Embedded computer system and method with flash memory interface
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6536038B1 (en) * 1999-11-29 2003-03-18 Intel Corporation Dynamic update of non-upgradeable memory
JP4364384B2 (ja) * 2000-02-01 2009-11-18 富士通マイクロエレクトロニクス株式会社 短時間でイレーズ動作を行う不揮発性メモリ
US20040181731A1 (en) * 2000-04-12 2004-09-16 Advantest Corporation Semiconductor test system storing pin calibration data, commands and other data in non-volatile memory
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
JP4467728B2 (ja) * 2000-07-28 2010-05-26 富士通マイクロエレクトロニクス株式会社 半導体記憶装置
US6715036B1 (en) * 2000-08-01 2004-03-30 International Business Machines Corporation Method, system, and data structures for transferring blocks of data from a storage device to a requesting application
JP2002351685A (ja) * 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd 不揮発性メモリのデータ更新方法及び制御装置
US7000063B2 (en) * 2001-10-05 2006-02-14 Matrix Semiconductor, Inc. Write-many memory device and method for limiting a number of writes to the write-many memory device
PL351779A1 (en) * 2002-01-18 2003-07-28 Advanced Digital Broadcast Ltd Apparatus for storing data and method of subdividing te data storage area
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6909910B2 (en) * 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US6621746B1 (en) * 2002-02-27 2003-09-16 Microsoft Corporation Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations
US6901499B2 (en) 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
WO2004001605A1 (en) * 2002-06-19 2003-12-31 Tokyo Electron Device Limited Memory device, memory managing method and program
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7082512B2 (en) * 2002-11-21 2006-07-25 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
EP1437888A3 (en) * 2003-01-06 2007-11-14 Samsung Electronics Co., Ltd. Video recording and reproducing apparatus
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US8706990B2 (en) 2003-10-28 2014-04-22 Sandisk Technologies Inc. Adaptive internal table backup for non-volatile memory system
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
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
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
JP4332108B2 (ja) * 2004-12-28 2009-09-16 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7925151B2 (en) * 2007-01-31 2011-04-12 Kobre Kenneth R Device for redirecting and reflecting light from camera flash and methods for using same
US7925822B2 (en) * 2008-01-31 2011-04-12 Sandisk Il Ltd Erase count recovery
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
JP5593254B2 (ja) * 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US9116862B1 (en) * 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
US8843441B1 (en) 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
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
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001883A (en) * 1974-03-07 1977-01-04 Honeywell Information Systems, Inc. High density data storage on magnetic disk
US5031168A (en) * 1986-02-05 1991-07-09 Information Storage, Inc. Apparatus and method for increasing storage capacity of recording media
JPH02185766A (ja) * 1989-01-11 1990-07-20 Canon Inc 情報記録再生装置
EP1031992B1 (en) * 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
CA2014584C (en) * 1990-04-12 1992-06-09 Paul Y. Tsoi C-, t- and s-switches that are mechanically operated by a rotary actuator
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JPH0750558B2 (ja) * 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
US5437020A (en) * 1992-10-03 1995-07-25 Intel Corporation Method and circuitry for detecting lost sectors of data in a solid state memory disk
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置

Also Published As

Publication number Publication date
EP0615184A3 (en) 1997-02-12
US5734816A (en) 1998-03-31
KR0128218B1 (ko) 1998-04-15
KR940022572A (ko) 1994-10-21
EP0615184A2 (en) 1994-09-14
JPH06274409A (ja) 1994-09-30

Similar Documents

Publication Publication Date Title
JP3078946B2 (ja) 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US10254983B2 (en) Atomic write command support in a solid state drive
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US8122193B2 (en) Storage device and user device including the same
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
KR101573370B1 (ko) 비휘발성 매체에 데이터를 저장하기 위한 방법 및 시스템
JP4058322B2 (ja) メモリカード
US5907856A (en) Moving sectors within a block of information in a flash memory mass storage architecture
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
US9286198B2 (en) Method and system for storage of data in non-volatile media
JP4898457B2 (ja) 不揮発性メモリおよび制御データ管理を伴う方法
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
JPH06111588A (ja) 一括消去型不揮発性メモリ
US20080104361A1 (en) Storage Device, Memory Managing Apparatus, Memory Managing Method, and Program
JPH05151097A (ja) 書換回数制限型メモリのデータ管理方式
KR20020009564A (ko) 메모리 시스템
JP3472008B2 (ja) フラッシュメモリ管理方法
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
JP3808842B2 (ja) 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法
JPH0877074A (ja) フラッシュメモリを用いた記憶装置システム
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム
JP2004038236A (ja) 情報処理装置およびプログラム
JPH06131885A (ja) 半導体ファイル装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees