JP2856621B2 - 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 - Google Patents
一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置Info
- Publication number
- JP2856621B2 JP2856621B2 JP3522893A JP3522893A JP2856621B2 JP 2856621 B2 JP2856621 B2 JP 2856621B2 JP 3522893 A JP3522893 A JP 3522893A JP 3522893 A JP3522893 A JP 3522893A JP 2856621 B2 JP2856621 B2 JP 2856621B2
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- sector
- sequence number
- given
- clusters
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation 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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明は、フラッシュEEPRO
M(以下ではフラッシュ・メモリと呼ぶ)等の一括消去
型不揮発性メモリ及びそれを用いる半導体ディスク装置
に係り、特に、動的セクタ割当ての可能な半導体ディス
ク装置に係る。
M(以下ではフラッシュ・メモリと呼ぶ)等の一括消去
型不揮発性メモリ及びそれを用いる半導体ディスク装置
に係り、特に、動的セクタ割当ての可能な半導体ディス
ク装置に係る。
【0002】
【従来の技術】ノートブック等の携帯可能なパーソナル
・コンピュータの普及に伴って、コンピュータ・システ
ムの小型軽量化、低消費電力化に対する要求が強くなっ
てきている。半導体メモリを用いた外部記憶システム、
いわゆる半導体ディスク装置は、磁気ディスク装置のよ
うに駆動系を持たないため、消費電力が低く、高速動作
が可能である。また、小さなメモリ・モジュールで構成
されるため、磁気ディスク装置に比べて小型で軽く、形
状に自由度が大きく、カード化も容易である。
・コンピュータの普及に伴って、コンピュータ・システ
ムの小型軽量化、低消費電力化に対する要求が強くなっ
てきている。半導体メモリを用いた外部記憶システム、
いわゆる半導体ディスク装置は、磁気ディスク装置のよ
うに駆動系を持たないため、消費電力が低く、高速動作
が可能である。また、小さなメモリ・モジュールで構成
されるため、磁気ディスク装置に比べて小型で軽く、形
状に自由度が大きく、カード化も容易である。
【0003】しかし、従来の半導体メモリにはコスト、
容量、電池バックアップなどの点でまだ問題が多い。メ
モリとしてSRAMを使うと電池によるバックアップの
時間は長くなるが、コストが高く、容量も小さくなって
しまう。コスト、容量に優れたDRAMでは、スタンバ
イ時の消費電力が大きく、バックアップの時間が一週間
程度に限られてしまう。電池系の事故によるデータ消失
の危険もある。EEPROMは電池を必要としないが、
コストが高すぎる。
容量、電池バックアップなどの点でまだ問題が多い。メ
モリとしてSRAMを使うと電池によるバックアップの
時間は長くなるが、コストが高く、容量も小さくなって
しまう。コスト、容量に優れたDRAMでは、スタンバ
イ時の消費電力が大きく、バックアップの時間が一週間
程度に限られてしまう。電池系の事故によるデータ消失
の危険もある。EEPROMは電池を必要としないが、
コストが高すぎる。
【0004】これらの問題を解決するメモリとして一括
消去型のフラッシュ・メモリが開発されている。DRA
Mと同じくトランジスタ1つで記憶素子が構成され、高
密度化が可能で、将来の市場次第でDRAMと同等かそ
れ以下のビット単価(低コスト、大容量)になることが
期待されている。記憶素子は不揮発性であり、電池バッ
クアップの必要はない。消去は一般にチップ単位又はそ
れよりも小さなブロック単位で行われる。Richard D. P
ashley 外の "Flash memories: the best of two world
s" 、IEEE SPECTRUM 1989年12月、30〜33頁は、このよ
うなフラッシュ・メモリの概要を紹介している。パフォ
ーマンスの点では、チップ消去型よりブロック消去型の
方が優れている。
消去型のフラッシュ・メモリが開発されている。DRA
Mと同じくトランジスタ1つで記憶素子が構成され、高
密度化が可能で、将来の市場次第でDRAMと同等かそ
れ以下のビット単価(低コスト、大容量)になることが
期待されている。記憶素子は不揮発性であり、電池バッ
クアップの必要はない。消去は一般にチップ単位又はそ
れよりも小さなブロック単位で行われる。Richard D. P
ashley 外の "Flash memories: the best of two world
s" 、IEEE SPECTRUM 1989年12月、30〜33頁は、このよ
うなフラッシュ・メモリの概要を紹介している。パフォ
ーマンスの点では、チップ消去型よりブロック消去型の
方が優れている。
【0005】ブロック消去型のフラッシュ・メモリを半
導体ディスク装置に用いる場合は、ブロックの大きさを
ハード・ディスク装置のアクセス単位であるセクタに等
しくしておくと、メモリ管理に都合がよい。例えば、ヨ
ーロッパ公開特許出願第392895号はセクタ消去型
のフラッシュEEPROMシステムを開示している。こ
のシステムは、消去単位であるセクタ毎にラッチを設け
ておき、消去したいセクタに対応するラッチをセットす
ることによって、任意の複数のセクタを同時に消去でき
るようにしている。複数セクタ分の容量(例えば4Kバ
イト)を持ったブロックを消去単位にしたフラッシュ・
メモリも知られている。
導体ディスク装置に用いる場合は、ブロックの大きさを
ハード・ディスク装置のアクセス単位であるセクタに等
しくしておくと、メモリ管理に都合がよい。例えば、ヨ
ーロッパ公開特許出願第392895号はセクタ消去型
のフラッシュEEPROMシステムを開示している。こ
のシステムは、消去単位であるセクタ毎にラッチを設け
ておき、消去したいセクタに対応するラッチをセットす
ることによって、任意の複数のセクタを同時に消去でき
るようにしている。複数セクタ分の容量(例えば4Kバ
イト)を持ったブロックを消去単位にしたフラッシュ・
メモリも知られている。
【0006】しかし、フラッシュ・メモリにはSRAM
やDRAMにはない制限がある。まず、メモリ・ビット
のプログラミングは一方通行で、0から1又は1から0
へしか変えることができない。従って、既に書込まれて
いる記憶位置に新たなデータを書込む場合は、その記憶
位置を含むブロックを一括消去によって全0又は全1に
設定した後に書込みを行う必要がある。消去及び書込み
には、通常、数十ミリ秒から数秒の時間がかかる。ま
た、フラッシュ・メモリは消去及び書込みによって劣化
し、現在のところ、数万回から数十万回の消去及び書込
みで使用限度に達してしまう。
やDRAMにはない制限がある。まず、メモリ・ビット
のプログラミングは一方通行で、0から1又は1から0
へしか変えることができない。従って、既に書込まれて
いる記憶位置に新たなデータを書込む場合は、その記憶
位置を含むブロックを一括消去によって全0又は全1に
設定した後に書込みを行う必要がある。消去及び書込み
には、通常、数十ミリ秒から数秒の時間がかかる。ま
た、フラッシュ・メモリは消去及び書込みによって劣化
し、現在のところ、数万回から数十万回の消去及び書込
みで使用限度に達してしまう。
【0007】このようなフラッシュ・メモリを半導体デ
ィスク装置に用いた場合、同一の論理セクタを同一の物
理セクタに割り当てていたのでは、書込みがメモリの一
部に片寄ることが問題になる。例えば、DOSベースの
パ−ソナル・コンピュ−タ・システムでは、ファイル・
アロケ−ション・テーブル(FAT)の書換えがしばし
ば行われる。ところが、FATのアドレスは固定されて
いるため、フラッシュ・メモリを用いた場合には、FA
Tの書換えの度にそれを記憶しているブロックの消去及
び書込みを行う必要があり、その度に数十ミリ秒から数
秒の時間がかかってしまう。また、このように書込み及
び消去がメモリの一部のブロックに片寄ると、そのブロ
ックが他のブロックに比べて早く使用限度に達してしま
い、他のブロックがまだ使用可能であるにもかかわら
ず、メモリを交換しなければならなくなる。使用限度に
達したブロックを無効化して、代替ブロックを使用する
ようにすれば、メモリの早期交換は避けられるが、書込
みが集中するのが代替ブロックに変わっただけであり、
根本的な解決にはなっていない。
ィスク装置に用いた場合、同一の論理セクタを同一の物
理セクタに割り当てていたのでは、書込みがメモリの一
部に片寄ることが問題になる。例えば、DOSベースの
パ−ソナル・コンピュ−タ・システムでは、ファイル・
アロケ−ション・テーブル(FAT)の書換えがしばし
ば行われる。ところが、FATのアドレスは固定されて
いるため、フラッシュ・メモリを用いた場合には、FA
Tの書換えの度にそれを記憶しているブロックの消去及
び書込みを行う必要があり、その度に数十ミリ秒から数
秒の時間がかかってしまう。また、このように書込み及
び消去がメモリの一部のブロックに片寄ると、そのブロ
ックが他のブロックに比べて早く使用限度に達してしま
い、他のブロックがまだ使用可能であるにもかかわら
ず、メモリを交換しなければならなくなる。使用限度に
達したブロックを無効化して、代替ブロックを使用する
ようにすれば、メモリの早期交換は避けられるが、書込
みが集中するのが代替ブロックに変わっただけであり、
根本的な解決にはなっていない。
【0008】そこで、特願平3−197318号では、
動的セクタ割当て法を用いることにより、この問題の解
決に成功している。図1と図2を参照して、その概要を
説明する。RAMにアドレス変換表が作成され、これを
参照することにより、ホスト・プロセッサの指定するア
ドレス(論理アドレス)が半導体ディスク装置(SS
F)のセクタ(物理セクタ)を指定するアドレス(物理
アドレス)に変換される。即ち、ホスト・プロセッサ
は、ヘッド番号、シリンダ番号、セクタ番号からなる論
理アドレスでもってデータ書込み場所を指定する。アド
レス変換表の論理アドレスで特定される項目には、当該
論理アドレスに対応する物理アドレスが記憶される。物
理アドレスによって指定されることになるSSFの各セ
クタには、データを記憶するデータ領域の他に、逆参照
ポインタ(RP)を記憶する領域とそのセクタの状況を
記憶する領域が含まれる。
動的セクタ割当て法を用いることにより、この問題の解
決に成功している。図1と図2を参照して、その概要を
説明する。RAMにアドレス変換表が作成され、これを
参照することにより、ホスト・プロセッサの指定するア
ドレス(論理アドレス)が半導体ディスク装置(SS
F)のセクタ(物理セクタ)を指定するアドレス(物理
アドレス)に変換される。即ち、ホスト・プロセッサ
は、ヘッド番号、シリンダ番号、セクタ番号からなる論
理アドレスでもってデータ書込み場所を指定する。アド
レス変換表の論理アドレスで特定される項目には、当該
論理アドレスに対応する物理アドレスが記憶される。物
理アドレスによって指定されることになるSSFの各セ
クタには、データを記憶するデータ領域の他に、逆参照
ポインタ(RP)を記憶する領域とそのセクタの状況を
記憶する領域が含まれる。
【0009】今、SSFがホスト・プロセッサから論理
アドレス(H,C,S)=(1,4,5)に対する書込
みコマンドを受け取ったときに、それまで空であった物
理アドレスABCのセクタYをこの論理アドレスに割り
当てたとする。SSFのコントローラは、物理セクタY
のデータ領域にデータを書き込むとともに、RP領域
(1,4,5)を書き込み、状況領域に有効であること
を示すフラグを立てる。同時に、論理アドレス(1,
4,5)によって特定される変換表の項目Xに物理アド
レスABCを書き込む。以後、論理アドレス(1,4,
5)からのデータの読出しが要求されたときは、アドレ
ス変換表を使って、物理アドレスABCがアクセスされ
る(図1参照)。
アドレス(H,C,S)=(1,4,5)に対する書込
みコマンドを受け取ったときに、それまで空であった物
理アドレスABCのセクタYをこの論理アドレスに割り
当てたとする。SSFのコントローラは、物理セクタY
のデータ領域にデータを書き込むとともに、RP領域
(1,4,5)を書き込み、状況領域に有効であること
を示すフラグを立てる。同時に、論理アドレス(1,
4,5)によって特定される変換表の項目Xに物理アド
レスABCを書き込む。以後、論理アドレス(1,4,
5)からのデータの読出しが要求されたときは、アドレ
ス変換表を使って、物理アドレスABCがアクセスされ
る(図1参照)。
【0010】再びSSFがホスト・プロセッサから論理
アドレス(H,C,S)=(1,4,5)に対する書込
みコマンドを受け取ったとき、SSFのコントローラ
は、物理セクタYを無効にし、それまで空であった物理
セクタを論理アドレス(1,4,5)に割り当てる。例
えば、アドレス変換表の項目XをABDに書き換え、S
SFの物理アドレスABDのセクタZのデータ領域にデ
ータを書き込み、RP領域に(1,4,5)を書き込
み、状況領域に有効であることを示すフラグを立てる。
同時に、セクタYの状況領域に無効であることを示すフ
ラグを立てる。
アドレス(H,C,S)=(1,4,5)に対する書込
みコマンドを受け取ったとき、SSFのコントローラ
は、物理セクタYを無効にし、それまで空であった物理
セクタを論理アドレス(1,4,5)に割り当てる。例
えば、アドレス変換表の項目XをABDに書き換え、S
SFの物理アドレスABDのセクタZのデータ領域にデ
ータを書き込み、RP領域に(1,4,5)を書き込
み、状況領域に有効であることを示すフラグを立てる。
同時に、セクタYの状況領域に無効であることを示すフ
ラグを立てる。
【0011】さて、パワーオフするとアドレス変換表は
失われてしまうから、パワーオン時にこれを再構成する
必要がある。そのときには、SSFの各セクタを読み、
逆参照ポインタで指定されるアドレス変換表の項目に、
当該セクタの物理アドレスを登録する。図2に示すよう
に、同じRPを持つセクタが複数あるときは、有効であ
るセクタの物理アドレスを登録する。このように、SS
Fのセクタの有効・無効の情報は、動的割当ての要であ
るアドレス変換表の再構成に不可欠である。
失われてしまうから、パワーオン時にこれを再構成する
必要がある。そのときには、SSFの各セクタを読み、
逆参照ポインタで指定されるアドレス変換表の項目に、
当該セクタの物理アドレスを登録する。図2に示すよう
に、同じRPを持つセクタが複数あるときは、有効であ
るセクタの物理アドレスを登録する。このように、SS
Fのセクタの有効・無効の情報は、動的割当ての要であ
るアドレス変換表の再構成に不可欠である。
【0012】ところで、先に述べた通り、フラッシュ・
メモリに於いてはブロックの消去後でなければそこに含
まれるセクタにデータを書き込むことができないので、
一般的にはセクタの状況を更新することは困難である。
この問題に対して、特願平3−197318号では、一
部のフラッシュ・メモリが有する、ビット変化が一方向
に限定されている場合は重ね書きができるという特質に
基づき、状況フラグビットを "1111" -> "1110" -> "
1100" -> "0000" のように変化させることで、各セクタ
の「空白」、「有効」、「無効」及び「消去中」を示す
方法を開示している。しかしながら、NAND型のセル
構造を持つフラッシュ・メモリの中には、全く重ね書き
できないものがあり、状況フラグビットを用いた方法は
使えない。
メモリに於いてはブロックの消去後でなければそこに含
まれるセクタにデータを書き込むことができないので、
一般的にはセクタの状況を更新することは困難である。
この問題に対して、特願平3−197318号では、一
部のフラッシュ・メモリが有する、ビット変化が一方向
に限定されている場合は重ね書きができるという特質に
基づき、状況フラグビットを "1111" -> "1110" -> "
1100" -> "0000" のように変化させることで、各セクタ
の「空白」、「有効」、「無効」及び「消去中」を示す
方法を開示している。しかしながら、NAND型のセル
構造を持つフラッシュ・メモリの中には、全く重ね書き
できないものがあり、状況フラグビットを用いた方法は
使えない。
【0013】
【発明が解決しようとする課題】本発明の目的は、重ね
書きの手法を用いなくても無効セクタと有効セクタとを
見分けることが可能な一括消去型不揮発性メモリ及びそ
れを用いた半導体ディスク装置を提供することを目的と
する。
書きの手法を用いなくても無効セクタと有効セクタとを
見分けることが可能な一括消去型不揮発性メモリ及びそ
れを用いた半導体ディスク装置を提供することを目的と
する。
【0014】
【課題を解決するための手段】本発明に従う一括消去型
不揮発性メモリは、各々がM個のセクタからなるN個の
クラスタを有し(M、Nは各々2以上の整数)、クラス
タ単位で消去することが可能であり、上記N個のクラス
タの各々にクラスタ情報セクタが確保され、予め上記N
個のクラスタに対して重複がないように順序番号が与え
られ、各クラスタのクラスタ情報セクタに当該クラスタ
に割り当てられた順序番号が書き込まれている。本発明
に従う半導体ディスク装置は、そのような一括消去型不
揮発性メモリとそれに接続されたコントローラを含む。
動的セクタ割当てを実行するため、コントローラは、ラ
ンダム・アクセス・メモリ上にアドレス変換表の領域を
確保し、プロセッサが所与の論理アドレスを指定して書
込みを要求したときに、空白セクタを一つ選択し、アド
レス換表の当該所与の論理アドレスによって指示される
項目に当該選択されたセクタの物理アドレスを 書き込
み、且つ当該選択されたセクタに当該所与の論理アドレ
スを逆参照ポインタとして書き込む。
不揮発性メモリは、各々がM個のセクタからなるN個の
クラスタを有し(M、Nは各々2以上の整数)、クラス
タ単位で消去することが可能であり、上記N個のクラス
タの各々にクラスタ情報セクタが確保され、予め上記N
個のクラスタに対して重複がないように順序番号が与え
られ、各クラスタのクラスタ情報セクタに当該クラスタ
に割り当てられた順序番号が書き込まれている。本発明
に従う半導体ディスク装置は、そのような一括消去型不
揮発性メモリとそれに接続されたコントローラを含む。
動的セクタ割当てを実行するため、コントローラは、ラ
ンダム・アクセス・メモリ上にアドレス変換表の領域を
確保し、プロセッサが所与の論理アドレスを指定して書
込みを要求したときに、空白セクタを一つ選択し、アド
レス換表の当該所与の論理アドレスによって指示される
項目に当該選択されたセクタの物理アドレスを 書き込
み、且つ当該選択されたセクタに当該所与の論理アドレ
スを逆参照ポインタとして書き込む。
【0015】コントローラはまた、所与のクラスタを消
去するとき、先に当該クラスタの順序番号を他のクラス
タ等の不揮発性の記憶領域に保管する。そして、所与の
消去済みクラスタを初期設定するときには、現在の最大
順序番号よりも大きな値を当該クラスタの順序番号とし
てそのクラスタ情報セクタに書き込む。
去するとき、先に当該クラスタの順序番号を他のクラス
タ等の不揮発性の記憶領域に保管する。そして、所与の
消去済みクラスタを初期設定するときには、現在の最大
順序番号よりも大きな値を当該クラスタの順序番号とし
てそのクラスタ情報セクタに書き込む。
【0016】このようにして初期設定されたクラスタの
クラスタ情報セクタ以外のセクタに対して、コントロー
ラは、それらセクタの物理アドレスの順番に従ってユー
ザ・データを書き込む。
クラスタ情報セクタ以外のセクタに対して、コントロー
ラは、それらセクタの物理アドレスの順番に従ってユー
ザ・データを書き込む。
【0017】パワーオン時にアドレス変換表を再構成す
るとき、コントローラは、不揮発性メモリのM×N個の
セクタを読み出し、読み出されたセクタの逆参照ポイン
タによって指示されるアドレス変換表の項目に当該セク
タの物理アドレスを書き込む。同じ逆参照ポインタを持
つセクタが複数あるときには、それらセクタの属するク
ラスタの順序番号とクラスタ内での位置に従って、最も
新しく書き込まれたセクタの物理アドレスをアドレス変
換表に書き込む。
るとき、コントローラは、不揮発性メモリのM×N個の
セクタを読み出し、読み出されたセクタの逆参照ポイン
タによって指示されるアドレス変換表の項目に当該セク
タの物理アドレスを書き込む。同じ逆参照ポインタを持
つセクタが複数あるときには、それらセクタの属するク
ラスタの順序番号とクラスタ内での位置に従って、最も
新しく書き込まれたセクタの物理アドレスをアドレス変
換表に書き込む。
【0018】予め各クラスタ情報セクタにそれを含むク
ラスタの消去回数を書き込み、最大順序番号は全クラス
タの消去回数の総和に等しくなるように設定しておいた
場合には、クラスタ消去時に順序番号とともに消去回数
も保管する。そして、消去済みのクラスタを初期設定す
るときに、保管されていた当該クラスタの消去回数を順
序番号と同様にカウントアップしてそのクラスタ情報セ
クタに書き戻す。アドレス変換表再構成時において、全
クラスタ情報セクタが読み出されることを利用して、最
大順序番号と全クラスタの消去回数の総和が一致するか
をチェックする。これによって、データの信頼性が維持
されているか否かが判る。
ラスタの消去回数を書き込み、最大順序番号は全クラス
タの消去回数の総和に等しくなるように設定しておいた
場合には、クラスタ消去時に順序番号とともに消去回数
も保管する。そして、消去済みのクラスタを初期設定す
るときに、保管されていた当該クラスタの消去回数を順
序番号と同様にカウントアップしてそのクラスタ情報セ
クタに書き戻す。アドレス変換表再構成時において、全
クラスタ情報セクタが読み出されることを利用して、最
大順序番号と全クラスタの消去回数の総和が一致するか
をチェックする。これによって、データの信頼性が維持
されているか否かが判る。
【0019】
【実施例】本発明の半導体ディスク装置として組み込ん
だコンピュータ・システムの一例を図3に示す。CPU
10はシステム・バス13を介して、主記憶装置15、
バス制御装置16及びオプションの数値計算用コプロセ
ッサ14と通信する。CPU10及び関連する周辺装置
の間の通信はバス制御装置16を介して行われる。その
ため、バス制御装置16はファミリー・バス18によっ
て周辺装置に接続されている。周辺装置としては、本発
明に従うフラッシュ・メモリ製の半導体ディスク装置
(SSF)20が接続され、さらに、通信装置21、フ
ロッピー・ディスク・ドライブ(FDD)22、光ファ
イル装置23、表示装置24もファミリー・バス18に
接続されている。勿論、他の周辺装置も接続可能であ
る。このようなコンピュータ・システムの一例はIBM
PS/2である。
だコンピュータ・システムの一例を図3に示す。CPU
10はシステム・バス13を介して、主記憶装置15、
バス制御装置16及びオプションの数値計算用コプロセ
ッサ14と通信する。CPU10及び関連する周辺装置
の間の通信はバス制御装置16を介して行われる。その
ため、バス制御装置16はファミリー・バス18によっ
て周辺装置に接続されている。周辺装置としては、本発
明に従うフラッシュ・メモリ製の半導体ディスク装置
(SSF)20が接続され、さらに、通信装置21、フ
ロッピー・ディスク・ドライブ(FDD)22、光ファ
イル装置23、表示装置24もファミリー・バス18に
接続されている。勿論、他の周辺装置も接続可能であ
る。このようなコンピュータ・システムの一例はIBM
PS/2である。
【0020】直接メモリ・アクセス制御装置(DMA
C)12は、これらの周辺装置の全部又は選択された何
台かによるメモリ・アクセスを可能にすべく設けられ
る。そのため、ファミリー・バス18は、少なくともそ
の一部がDMAC12に分岐接続される。図には示して
いないが、DMAが可能な各周辺装置にはアービトレー
ション回路が設けられ、アービトレーション・レベル
(優先順位)を割り当てられる。DMAC12の側に
は、DMAを同時に要求している複数の周辺装置の間で
調停作業を行って、どの周辺装置がDMAを許可された
かをDMAC12に知らせる中央アービトレーション制
御回路11が設けられる。DMAC12及び中央アービ
トレーション制御回路11によるDMA制御の詳細は米
国特許第4901234号明細書に記載されている。
C)12は、これらの周辺装置の全部又は選択された何
台かによるメモリ・アクセスを可能にすべく設けられ
る。そのため、ファミリー・バス18は、少なくともそ
の一部がDMAC12に分岐接続される。図には示して
いないが、DMAが可能な各周辺装置にはアービトレー
ション回路が設けられ、アービトレーション・レベル
(優先順位)を割り当てられる。DMAC12の側に
は、DMAを同時に要求している複数の周辺装置の間で
調停作業を行って、どの周辺装置がDMAを許可された
かをDMAC12に知らせる中央アービトレーション制
御回路11が設けられる。DMAC12及び中央アービ
トレーション制御回路11によるDMA制御の詳細は米
国特許第4901234号明細書に記載されている。
【0021】CPU10はSSF20をハード・ディス
ク装置として扱う。従って、SSF20をアクセスする
ときは、ヘッド番号、シリンダ番号及びセクタ番号から
成るいわゆる相対ブロック・アドレス(RBA)がSS
F20に送られる。SSF20は動的セクタ割当てを行
う。従って、CPU10から供給されるRBAと、SS
F20の実際にアクセスされるセクタのアドレス(物理
アドレス)との間の関係は固定されておらず、書込みの
度に変化する。そこで、それらの対応関係を明らかにす
るアドレス変換表が設けられる。即ち、CPU10から
のRBAは論理アドレスである。
ク装置として扱う。従って、SSF20をアクセスする
ときは、ヘッド番号、シリンダ番号及びセクタ番号から
成るいわゆる相対ブロック・アドレス(RBA)がSS
F20に送られる。SSF20は動的セクタ割当てを行
う。従って、CPU10から供給されるRBAと、SS
F20の実際にアクセスされるセクタのアドレス(物理
アドレス)との間の関係は固定されておらず、書込みの
度に変化する。そこで、それらの対応関係を明らかにす
るアドレス変換表が設けられる。即ち、CPU10から
のRBAは論理アドレスである。
【0022】図4に、SSF20の概略的な構成を示
す。このSSF20は、ファミリー・バス18に接続さ
れたコントローラ30と、内部バス31を介してこのコ
ントローラ30に接続されたランダム・アクセス・メモ
リ(RAM)32、バス制御部33及びフラッシュ・メ
モリ34で構成される。RAM32は、アドレス変換表
を記憶する領域35及びバッファ領域36を含む。RA
M32はこの他に後述する最大順序番号(M)を記憶す
る領域も含む。バス制御部33は、内部バス31と、フ
ラッシュ・メモリ34に接続されたメモリ・バス37と
を相互接続するための周知のレシーバ/ドライバ構成を
有する。
す。このSSF20は、ファミリー・バス18に接続さ
れたコントローラ30と、内部バス31を介してこのコ
ントローラ30に接続されたランダム・アクセス・メモ
リ(RAM)32、バス制御部33及びフラッシュ・メ
モリ34で構成される。RAM32は、アドレス変換表
を記憶する領域35及びバッファ領域36を含む。RA
M32はこの他に後述する最大順序番号(M)を記憶す
る領域も含む。バス制御部33は、内部バス31と、フ
ラッシュ・メモリ34に接続されたメモリ・バス37と
を相互接続するための周知のレシーバ/ドライバ構成を
有する。
【0023】本実施例では、CPUの指定する論理セク
タのサイズは512バイトであり、CPU10のSSF
20に対する最小アクセス単位である物理セクタのサイ
ズは512バイト+αである(図5、図6参照)。16
Mビットのフラッシュ・メモリ・チップを用いる場合、
1物理セクタはワード・ライン2本を占める。つまり、
2ページで1セクタを構成する。SSF20のセクタ
(物理セクタ)は次のようにして管理される。
タのサイズは512バイトであり、CPU10のSSF
20に対する最小アクセス単位である物理セクタのサイ
ズは512バイト+αである(図5、図6参照)。16
Mビットのフラッシュ・メモリ・チップを用いる場合、
1物理セクタはワード・ライン2本を占める。つまり、
2ページで1セクタを構成する。SSF20のセクタ
(物理セクタ)は次のようにして管理される。
【0024】1)実際の消去を行う論理的な集合をつく
り、これをクラスタと呼ぶ。クラスタは物理的な消去単
位であるブロックの1つ以上からなる。実施例では8セ
クタで1ブロックを構成し、8ブロックで1クラスタを
構成する。各クラスタにクラスタ情報セクタを作成し、
クラスタ消去回数及び順序番号の領域を確保する。クラ
スタ消去回数及び順序番号はクラスタ情報セクタ中の管
理情報の一部として保管される。実施例では、各クラス
タの先頭の物理アドレスに位置するセクタをクラスタ情
報セクタに割り当てる。
り、これをクラスタと呼ぶ。クラスタは物理的な消去単
位であるブロックの1つ以上からなる。実施例では8セ
クタで1ブロックを構成し、8ブロックで1クラスタを
構成する。各クラスタにクラスタ情報セクタを作成し、
クラスタ消去回数及び順序番号の領域を確保する。クラ
スタ消去回数及び順序番号はクラスタ情報セクタ中の管
理情報の一部として保管される。実施例では、各クラス
タの先頭の物理アドレスに位置するセクタをクラスタ情
報セクタに割り当てる。
【0025】図6は、各クラスタのクラスタ情報セクタ
以外のセクタ(以下ではデータ・セクタと呼ぶ)の構成
を示す。図示のように、データ・セクタは、512バイ
トのユーザ・データを記憶するデータ領域の他に、属性
及びエラー訂正符号(ECC)を記憶する領域を含む。
以外のセクタ(以下ではデータ・セクタと呼ぶ)の構成
を示す。図示のように、データ・セクタは、512バイ
トのユーザ・データを記憶するデータ領域の他に、属性
及びエラー訂正符号(ECC)を記憶する領域を含む。
【0026】ここでは、特願平3−197318号とは
違って、セクタに有効・無効のフラグを立てる状況領域
がないことに注目されたい。なお、各セクタに共通に含
まれる属性は、そのセクタがクラスタ情報セクタである
か否かを識別するのに用いられる。
違って、セクタに有効・無効のフラグを立てる状況領域
がないことに注目されたい。なお、各セクタに共通に含
まれる属性は、そのセクタがクラスタ情報セクタである
か否かを識別するのに用いられる。
【0027】2)SSF製造後のフラッシュ・メモリ・
チップ全体の初期設定工程において、クラスタ別に初期
順序番号を重複しないように与える。このとき、全クラ
スタの消去回数の総和が最大順序番号に等しいという条
件を付すのが望ましい。
チップ全体の初期設定工程において、クラスタ別に初期
順序番号を重複しないように与える。このとき、全クラ
スタの消去回数の総和が最大順序番号に等しいという条
件を付すのが望ましい。
【0028】図7に示すように、SSD中にN個のクラ
スタが有り、各クラスタに1からNまでのクラスタ番号
を与えたとする。(実際には、クラスタ番号はアドレス
・バスの上位複数ビットで指定される。)工場のコンピ
ュータによって実行されるSSD初期設定プログラム
は、各クラスタのクラスタ消去回数を”1”に設定す
る。同時にクラスタ番号iのクラスタの順序番号とし
て”i”を書き込み、順序番号が重複しないようにす
る。
スタが有り、各クラスタに1からNまでのクラスタ番号
を与えたとする。(実際には、クラスタ番号はアドレス
・バスの上位複数ビットで指定される。)工場のコンピ
ュータによって実行されるSSD初期設定プログラム
は、各クラスタのクラスタ消去回数を”1”に設定す
る。同時にクラスタ番号iのクラスタの順序番号とし
て”i”を書き込み、順序番号が重複しないようにす
る。
【0029】この例ではクラスタ消去回数の初期値とし
て1を与えているが、本発明は実際の消去回数を書き込
んだ場合でも実施可能である。また、この例では順序番
号の初期値の順をクラスタ番号の順に一致させている
が、本発明はそのような初期順序番号の与え方に限定さ
れるものではなく、クラスタ番号に無関係に初期順序番
号を割り当ててよい。
て1を与えているが、本発明は実際の消去回数を書き込
んだ場合でも実施可能である。また、この例では順序番
号の初期値の順をクラスタ番号の順に一致させている
が、本発明はそのような初期順序番号の与え方に限定さ
れるものではなく、クラスタ番号に無関係に初期順序番
号を割り当ててよい。
【0030】セクタの有効・無効を判別するために必要
とされる条件は、順序番号の重複がないようにすること
である。実施例ではさらに順序番号の最大値(最大順序
番号)が各クラスタの消去回数の総和に等しいように設
定されている。以上の二つの条件は、クラスタ消去時を
除き、SSDが稼働しているどの時点においても満たさ
れなければならない。図7に示した例ではクラスタ消去
回数の総和はNであり、順序番号の最大値もNであるの
で、条件を満たしている。
とされる条件は、順序番号の重複がないようにすること
である。実施例ではさらに順序番号の最大値(最大順序
番号)が各クラスタの消去回数の総和に等しいように設
定されている。以上の二つの条件は、クラスタ消去時を
除き、SSDが稼働しているどの時点においても満たさ
れなければならない。図7に示した例ではクラスタ消去
回数の総和はNであり、順序番号の最大値もNであるの
で、条件を満たしている。
【0031】もし、図7の例で、クラスタNのクラスタ
消去回数が2であり、その他のクラスタのクラスタ消去
回数が1であるならば、クラスタ1からクラスタN−1
に順序番号1からN−1を割り当て、クラスタNに順序
番号N+1を割り当てれば、上記二つの条件を満たすこ
とになる。
消去回数が2であり、その他のクラスタのクラスタ消去
回数が1であるならば、クラスタ1からクラスタN−1
に順序番号1からN−1を割り当て、クラスタNに順序
番号N+1を割り当てれば、上記二つの条件を満たすこ
とになる。
【0032】3)図8を参照して、クラスタ消去時のコ
ントローラ30(図4)の動作を説明する。まず、消去
するクラスタを決定する。様々な決定方法があるが、有
効セクタの数が一定値を下回ったときに、そのクラスタ
を消去対象として決定するのが一般的である(ステップ
80)。次に、消去するクラスタをXとすると、コント
ローラは、Xの有効データを他のクラスタのデータ・セ
クタに複写する(ステップ81)。
ントローラ30(図4)の動作を説明する。まず、消去
するクラスタを決定する。様々な決定方法があるが、有
効セクタの数が一定値を下回ったときに、そのクラスタ
を消去対象として決定するのが一般的である(ステップ
80)。次に、消去するクラスタをXとすると、コント
ローラは、Xの有効データを他のクラスタのデータ・セ
クタに複写する(ステップ81)。
【0033】ステップ80、81を実行するためには、
セクタの有効・無効の判別ができなければならないが、
それは所与のセクタの逆参照ポインタが指示するアドレ
ス変換表の項目を参照し、その項目に書き込まれている
アドレスが当該セクタのアドレスと一致するかを調べれ
ばよい。一致すればそのセクタは有効であり、一致しな
ければ無効である。ステップ81ではそのようにして有
効セクタを検出する。また、一度クラスタごとに有効・
無効セクタの数を調べて結果をRAM32(図4)に設
けた表(図示せず)に記録し、以後書き込みが行われる
度にその表を更新するようにすれば、その表を定期的に
参照することによって、消去すべきクラスタを判別する
ことができる。
セクタの有効・無効の判別ができなければならないが、
それは所与のセクタの逆参照ポインタが指示するアドレ
ス変換表の項目を参照し、その項目に書き込まれている
アドレスが当該セクタのアドレスと一致するかを調べれ
ばよい。一致すればそのセクタは有効であり、一致しな
ければ無効である。ステップ81ではそのようにして有
効セクタを検出する。また、一度クラスタごとに有効・
無効セクタの数を調べて結果をRAM32(図4)に設
けた表(図示せず)に記録し、以後書き込みが行われる
度にその表を更新するようにすれば、その表を定期的に
参照することによって、消去すべきクラスタを判別する
ことができる。
【0034】次に、コントローラは、クラスタXのクラ
スタ情報セクタを他の適当なクラスタのデータ・セクタ
や電池バックアップされたRAM等の不揮発性記憶領域
に複写して、クラスタXの現在の順序番号と消去回数を
保管する(ステップ82)。その後、クラスタXを消去
する(ステップ83)。消去済みクラスタを初期設定す
る必要があるとき、即ち、データ・セクタが完全に空白
であるクラスタがないときには、直ちに初期設定処理が
行われるが(ステップ85)、そうでなければ、SSD
は通常のオペレーションを行う(ステップ86)。ここ
でいう初期設定とは、消去済みのクラスタのクラスタ情
報セクタに順序番号等を書き込み、データ・セクタに対
して書き込み可能な状態にすることである。
スタ情報セクタを他の適当なクラスタのデータ・セクタ
や電池バックアップされたRAM等の不揮発性記憶領域
に複写して、クラスタXの現在の順序番号と消去回数を
保管する(ステップ82)。その後、クラスタXを消去
する(ステップ83)。消去済みクラスタを初期設定す
る必要があるとき、即ち、データ・セクタが完全に空白
であるクラスタがないときには、直ちに初期設定処理が
行われるが(ステップ85)、そうでなければ、SSD
は通常のオペレーションを行う(ステップ86)。ここ
でいう初期設定とは、消去済みのクラスタのクラスタ情
報セクタに順序番号等を書き込み、データ・セクタに対
して書き込み可能な状態にすることである。
【0035】図9を参照して、消去済みクラスタ初期設
定時のコントローラ30(図4)の動作を説明する。ま
ず、コントローラは、消去済みではあるがまだ初期設定
されていない1以上のクラスタの中からクラスタ消去回
数が最小のものを選択する(ステップ90)。選択され
たクラスタをCとする。
定時のコントローラ30(図4)の動作を説明する。ま
ず、コントローラは、消去済みではあるがまだ初期設定
されていない1以上のクラスタの中からクラスタ消去回
数が最小のものを選択する(ステップ90)。選択され
たクラスタをCとする。
【0036】次に、現在の最大順序番号Mを求め、これ
に1を加えた値M+1をクラスタCの順序番号としてそ
のクラスタ情報セクタに書き込む(ステップ91)。こ
こで、最大順序番号MはRAM32の領域38に記憶さ
れているので、それをアクセスする。ステップ92で
は、領域38に値M+1が書き込まれる。
に1を加えた値M+1をクラスタCの順序番号としてそ
のクラスタ情報セクタに書き込む(ステップ91)。こ
こで、最大順序番号MはRAM32の領域38に記憶さ
れているので、それをアクセスする。ステップ92で
は、領域38に値M+1が書き込まれる。
【0037】しかる後、ステップ93において、クラス
タCを消去するときにステップ82で保管した消去回数
を読み出し、それに1を加えた値をクラスタCのクラス
タ情報セクタに書き込む。順序番号、クラスタ消去回
数、ECC以外のクラスタ管理情報は、クラスタCを消
去するときに保管した管理情報をそのまま書き込む。
タCを消去するときにステップ82で保管した消去回数
を読み出し、それに1を加えた値をクラスタCのクラス
タ情報セクタに書き込む。順序番号、クラスタ消去回
数、ECC以外のクラスタ管理情報は、クラスタCを消
去するときに保管した管理情報をそのまま書き込む。
【0038】図8および図9に示した制御の流れは一例
にすぎず、これを様々に変形することが可能である。例
えば、消去したクラスタを直ちに初期設定しても差し支
えなく、その場合には、図8のステップ83の次に直ち
に図9のステップ91に飛ぶことになる。その結果、消
去されたクラスタのクラスタ消去回数及び順序番号、及
びRAMに保存される最大順序番号は以下のように変化
する。
にすぎず、これを様々に変形することが可能である。例
えば、消去したクラスタを直ちに初期設定しても差し支
えなく、その場合には、図8のステップ83の次に直ち
に図9のステップ91に飛ぶことになる。その結果、消
去されたクラスタのクラスタ消去回数及び順序番号、及
びRAMに保存される最大順序番号は以下のように変化
する。
【0039】 消去前の値 初期設定後の値 クラスタ消去回数 E E+1 順序番号 S M+1 最大順序番号 M M+1
【0040】上の例では、現在の最大順序番号Mに1を
加えた値をクラスタ情報セクタに書き込んだが、要は現
在の最大順序番号Mよりも大きな値を書き込めばよいの
であって、増分を1に限る必要はない。
加えた値をクラスタ情報セクタに書き込んだが、要は現
在の最大順序番号Mよりも大きな値を書き込めばよいの
であって、増分を1に限る必要はない。
【0041】4)セクタへの書き込みは、動的セクタ割
当て法を用いる。ただし、特願平3−197318号と
は違って、有効・無効のフラグを立てる操作は行わな
い。同一のクラスタの中では、セクタはそのアドレスの
昇順または降順に書き込まれていく。実施例ではクラス
タ情報セクタをクラスタの先頭に置いたので、アドレス
の昇順にセクタへデータを書き込むが、クラスタの末尾
に置いた場合はアドレスの降順にセクタへデータを書き
込むことになる。
当て法を用いる。ただし、特願平3−197318号と
は違って、有効・無効のフラグを立てる操作は行わな
い。同一のクラスタの中では、セクタはそのアドレスの
昇順または降順に書き込まれていく。実施例ではクラス
タ情報セクタをクラスタの先頭に置いたので、アドレス
の昇順にセクタへデータを書き込むが、クラスタの末尾
に置いた場合はアドレスの降順にセクタへデータを書き
込むことになる。
【0042】一つのクラスタに対する書き込みが終わる
まで、即ちクラスタがデータで満たされるか、あるいは
途中で書き込みを打ち切り、以降のセクタに書き込みを
行わないと判断されるまで、他のクラスタにはデータを
書き込まない。クラスタの途中から後のセクタが全て不
良であるとき、データの書き込みは途中で打ち切られ
る。不良セクタの情報はSSF製造後の初期設定工程で
予めフラッシュ・メモリ34の一部に書き込まれている
ので、そのような打ち切りの判断は可能である。
まで、即ちクラスタがデータで満たされるか、あるいは
途中で書き込みを打ち切り、以降のセクタに書き込みを
行わないと判断されるまで、他のクラスタにはデータを
書き込まない。クラスタの途中から後のセクタが全て不
良であるとき、データの書き込みは途中で打ち切られ
る。不良セクタの情報はSSF製造後の初期設定工程で
予めフラッシュ・メモリ34の一部に書き込まれている
ので、そのような打ち切りの判断は可能である。
【0043】当初は2)で割り当てられた初期順序番号
にしたがってクラスタへのユーザ・データの書き込みを
行うが、一通り全クラスタにデータを書き込んだ後は、
消去と初期設定の過程を経て最大順序番号が付与された
クラスタに対して書き込みを行う。
にしたがってクラスタへのユーザ・データの書き込みを
行うが、一通り全クラスタにデータを書き込んだ後は、
消去と初期設定の過程を経て最大順序番号が付与された
クラスタに対して書き込みを行う。
【0044】一般的に全てのセクタの時間的前後関係を
得ることができれば有効セクタと無効セクタとを見分け
ることはたやすい。しかしながら、全てのセクタに対し
て時間情報を書き込むことは、時間情報領域のオーバー
ヘッドが大きすぎて事実上不可能である。本発明ではこ
の時間情報を二段階の階層構造によって保持する。第一
の階層はクラスタであり、第二の階層はクラスタに含ま
れるセクタである。3)で述べた消去方法によれば、ク
ラスタ情報セクタに書かれた順序番号によってクラスタ
間の時間的前後関係を決定することができ、4)で述べ
た書き込み方法により第二の階層であるクラスタ内セク
タの時間情報がセクタの位置として保存される。これら
を組み合わせることにより、全セクタの時間的前後関係
を一意に決定することが可能であり、かつ、時間情報を
書き込む領域のオーバーヘッドは非常に少ない。
得ることができれば有効セクタと無効セクタとを見分け
ることはたやすい。しかしながら、全てのセクタに対し
て時間情報を書き込むことは、時間情報領域のオーバー
ヘッドが大きすぎて事実上不可能である。本発明ではこ
の時間情報を二段階の階層構造によって保持する。第一
の階層はクラスタであり、第二の階層はクラスタに含ま
れるセクタである。3)で述べた消去方法によれば、ク
ラスタ情報セクタに書かれた順序番号によってクラスタ
間の時間的前後関係を決定することができ、4)で述べ
た書き込み方法により第二の階層であるクラスタ内セク
タの時間情報がセクタの位置として保存される。これら
を組み合わせることにより、全セクタの時間的前後関係
を一意に決定することが可能であり、かつ、時間情報を
書き込む領域のオーバーヘッドは非常に少ない。
【0045】5)パワーオン時には、クラスタ情報セク
タ内の順序番号とクラスタ内でのセクタの位置を手がか
りにして、セクタの有効・無効を判別しつつ、アドレス
変換表を再構成する。特定の論理セクタに対応する複数
の物理セクタが存在する場合、最大の順序番号を持つク
ラスタにあるものを有効とする。同一のクラスタに、同
一論理セクタに対応する複数の物理セクタが存在する場
合は、その位置による時系列情報により有効セクタを決
定する。
タ内の順序番号とクラスタ内でのセクタの位置を手がか
りにして、セクタの有効・無効を判別しつつ、アドレス
変換表を再構成する。特定の論理セクタに対応する複数
の物理セクタが存在する場合、最大の順序番号を持つク
ラスタにあるものを有効とする。同一のクラスタに、同
一論理セクタに対応する複数の物理セクタが存在する場
合は、その位置による時系列情報により有効セクタを決
定する。
【0046】以上を実現する方法としては二つの方法が
考えられる。第一の方法は順序番号をまずソートしてそ
の順にクラスタを走査する方法であり、第二の方法はR
AMに順序番号表を作るものである。前者はソートが完
了してしまえば以後の処理は高速であり利点も多い。し
かしながら、ソートに先立ち順序番号を全て読み込まな
ければならず、従ってクラスタの管理情報を二回読む事
になる。さらに、高速なソートを行うには一般的に大き
な作業領域を必要とするため状況によってはSSFのコ
スト上昇を招く場合がある。
考えられる。第一の方法は順序番号をまずソートしてそ
の順にクラスタを走査する方法であり、第二の方法はR
AMに順序番号表を作るものである。前者はソートが完
了してしまえば以後の処理は高速であり利点も多い。し
かしながら、ソートに先立ち順序番号を全て読み込まな
ければならず、従ってクラスタの管理情報を二回読む事
になる。さらに、高速なソートを行うには一般的に大き
な作業領域を必要とするため状況によってはSSFのコ
スト上昇を招く場合がある。
【0047】図10を参照して、第一の方法の処理の流
れを説明する。まず、アドレス変換表の領域をRAMに
確保し、各項目の値を特別な値(例えばゼロ)に初期設
定する(ステップ100)。次に、すべてのクラスタ情
報セクタを読み出し、順序番号を昇順にソートする(ス
テップ101、102)。しかる後、順序番号の小さな
ものから順にクラスタを選び、選んだクラスタのセクタ
をアドレスの順に読む出す。実施例では、クラスタ情報
セクタから始まってアドレスの昇順にセクタを順次読む
ことになる。読み出されたセクタの逆参照ポインタによ
って指示されるアドレス変換表の項目に、当該セクタの
物理アドレスを書き込む。その項目に既に他のセクタの
アドレスが書き込まれてあっても、現在読まれたセクタ
のアドレスを書き込む。(ステップ103〜108)。
れを説明する。まず、アドレス変換表の領域をRAMに
確保し、各項目の値を特別な値(例えばゼロ)に初期設
定する(ステップ100)。次に、すべてのクラスタ情
報セクタを読み出し、順序番号を昇順にソートする(ス
テップ101、102)。しかる後、順序番号の小さな
ものから順にクラスタを選び、選んだクラスタのセクタ
をアドレスの順に読む出す。実施例では、クラスタ情報
セクタから始まってアドレスの昇順にセクタを順次読む
ことになる。読み出されたセクタの逆参照ポインタによ
って指示されるアドレス変換表の項目に、当該セクタの
物理アドレスを書き込む。その項目に既に他のセクタの
アドレスが書き込まれてあっても、現在読まれたセクタ
のアドレスを書き込む。(ステップ103〜108)。
【0048】図11を参照して、第二の方法で用いる順
序番号表について説明する。この方法では、第Nクラス
タの順序番号を第N項目に格納するような順序番号表を
RAM32(図4)に作成する。1クラスタ当たり64
セクタである様な40MビットのSSFを考えると、ク
ラスタ数は冗長分を除けば1280であり、順序番号表
の1エントリーを5バイトとすれば順序番号表の領域は
約6Kバイトとなる。また、動的セクタ割当て法使用時
にはアドレス変換表がRAM上に存在するが、この表の
各項目の値のうち、下位6ビットを除いた上位18ビッ
トがクラスタ番号に相当する(以下、上位18ビットを
クラスタポインタと呼ぶ)。今、第Sセクタのクラスタ
ポインタの内容がPであったとすると、順序番号表の第
P項目を読むことにより、第Sセクタの存在するクラス
タの順序番号を得ることが出来る。図11の例だと、ア
ドレス変換表は論理セクタSの実体がクラスタPのQ番
目に存在することを示し、順序番号表はクラスタPの順
序番号が1234であることを示している。なお、図1
1において、Nsは論理セクタの総数であり、Ncはク
ラスタの総数である。
序番号表について説明する。この方法では、第Nクラス
タの順序番号を第N項目に格納するような順序番号表を
RAM32(図4)に作成する。1クラスタ当たり64
セクタである様な40MビットのSSFを考えると、ク
ラスタ数は冗長分を除けば1280であり、順序番号表
の1エントリーを5バイトとすれば順序番号表の領域は
約6Kバイトとなる。また、動的セクタ割当て法使用時
にはアドレス変換表がRAM上に存在するが、この表の
各項目の値のうち、下位6ビットを除いた上位18ビッ
トがクラスタ番号に相当する(以下、上位18ビットを
クラスタポインタと呼ぶ)。今、第Sセクタのクラスタ
ポインタの内容がPであったとすると、順序番号表の第
P項目を読むことにより、第Sセクタの存在するクラス
タの順序番号を得ることが出来る。図11の例だと、ア
ドレス変換表は論理セクタSの実体がクラスタPのQ番
目に存在することを示し、順序番号表はクラスタPの順
序番号が1234であることを示している。なお、図1
1において、Nsは論理セクタの総数であり、Ncはク
ラスタの総数である。
【0049】次に、図12を参照して、第二の方法の処
理の流れを説明する。α]まず、アドレス変換表の領域
をRAMに確保し、各項目の値を特別な値(例えばゼ
ロ)に初期設定する(ステップ120)。次に、クラス
タを選び、そのクラスタの順序番号を順序番号表に登録
する。実施例ではクラスタ番号の昇順にクラスタを選択
しているが、クラスタを選択する順番は任意とすること
ができる(ステップ121、122、123、13
4)。選ばれたクラスタをCとすると、クラスタC内で
は時系列順にセクタを走査し、各セクタのRP領域の逆
参照ポインタを読み出す(ステップ124、125、1
33)。
理の流れを説明する。α]まず、アドレス変換表の領域
をRAMに確保し、各項目の値を特別な値(例えばゼ
ロ)に初期設定する(ステップ120)。次に、クラス
タを選び、そのクラスタの順序番号を順序番号表に登録
する。実施例ではクラスタ番号の昇順にクラスタを選択
しているが、クラスタを選択する順番は任意とすること
ができる(ステップ121、122、123、13
4)。選ばれたクラスタをCとすると、クラスタC内で
は時系列順にセクタを走査し、各セクタのRP領域の逆
参照ポインタを読み出す(ステップ124、125、1
33)。
【0050】β]特願平3−197318号特許出願の
方法により、逆参照ポインタからアドレス変換表を再構
成する。この時、逆参照ポインタによって指示されるア
ドレス変換表の項目に既に他のセクタの物理アドレスが
書き込まれているか否かで動作が異なる(ステップ12
6、127)。
方法により、逆参照ポインタからアドレス変換表を再構
成する。この時、逆参照ポインタによって指示されるア
ドレス変換表の項目に既に他のセクタの物理アドレスが
書き込まれているか否かで動作が異なる(ステップ12
6、127)。
【0051】◎ 当該項目が空白である場合 当該項目に、ステップ125で読み出されたセクタSの
物理アドレスを書き込む(ステップ130)。
物理アドレスを書き込む(ステップ130)。
【0052】◎ 当該項目が空白でない場合 当該項目のクラスタポインタにより順序番号表を検索
し、当該項目に既に登録されているセクタSが属するク
ラスタの順序番号を求める(ステップ128)。これを
現在読み出し中のクラスタCの順序番号と大小比較する
(ステップ129)。前者の方が小さければ当該項目に
セクタSのアドレスを書き込む(ステップ130)。そ
うでないときは何もせず既に登録されているセクタを有
効のままにする。
し、当該項目に既に登録されているセクタSが属するク
ラスタの順序番号を求める(ステップ128)。これを
現在読み出し中のクラスタCの順序番号と大小比較する
(ステップ129)。前者の方が小さければ当該項目に
セクタSのアドレスを書き込む(ステップ130)。そ
うでないときは何もせず既に登録されているセクタを有
効のままにする。
【0053】γ]以上を全てのクラスタ及びセクタにつ
いて繰り返すことによりアドレス変換表には有効セクタ
のみが登録される(ステップ131、132)。
いて繰り返すことによりアドレス変換表には有効セクタ
のみが登録される(ステップ131、132)。
【0054】アドレス変換表を再構成した後、コントロ
ーラ30(図4)は最大順序番号をRAM32の作業域
に保存し、順序番号表の領域を解放する。既に述べたよ
うに、最大順序番号は消去済みクラスタの初期設定で必
要とされる。
ーラ30(図4)は最大順序番号をRAM32の作業域
に保存し、順序番号表の領域を解放する。既に述べたよ
うに、最大順序番号は消去済みクラスタの初期設定で必
要とされる。
【0055】コントローラ30はさらに、アドレス変換
表再構成時に全クラスタのクラスタ情報セクタを読み出
すことを利用して、全クラスタの順序番号の総和と最大
順序番号とを比較する。ここで両者の値が不一致である
場合は、データの信頼性が損なわれていることを意味す
るので、コントローラ30はCPU10(図3)に対し
て、表示装置24にエラー・メッセージを表示させるこ
とを要求する。
表再構成時に全クラスタのクラスタ情報セクタを読み出
すことを利用して、全クラスタの順序番号の総和と最大
順序番号とを比較する。ここで両者の値が不一致である
場合は、データの信頼性が損なわれていることを意味す
るので、コントローラ30はCPU10(図3)に対し
て、表示装置24にエラー・メッセージを表示させるこ
とを要求する。
【0056】
【発明の効果】本発明に従えば、一括消去型不揮発性メ
モリを用いた半導体ディスク装置において重ね書きの手
法を用いなくても無効セクタと有効セクタとを見分ける
ことが可能になる。
モリを用いた半導体ディスク装置において重ね書きの手
法を用いなくても無効セクタと有効セクタとを見分ける
ことが可能になる。
【図1】特願平3−197318号で開示された動的セ
クタ割当ての説明図。
クタ割当ての説明図。
【図2】特願平3−197318号で開示された動的セ
クタ割当ての説明図。
クタ割当ての説明図。
【図3】本発明に従う半導体ディスク装置を組み込んだ
コンピュータ・システムの一例を示すブロック図。
コンピュータ・システムの一例を示すブロック図。
【図4】半導体ディスク装置の概略構成を示す図。
【図5】クラスタ情報セクタの構成を示す図。
【図6】クラスタ情報セクタ以外のセクタ(データ・セ
クタ)の構成を示す図。
クタ)の構成を示す図。
【図7】クラスタ情報セクタの初期値の設定を示す図。
【図8】クラスタ消去時のコントローラの動作を示すフ
ローチャート。
ローチャート。
【図9】消去済みクラスタを初期設定するときのコント
ローラの動作を示すフローチャート。
ローラの動作を示すフローチャート。
【図10】アドレス変換表再構成時のコントローラの動
作の一例を示すフローチャート。
作の一例を示すフローチャート。
【図11】アドレス変換表と順序番号表の関係を示す
図。
図。
【図12】アドレス変換表再構成時のコントローラの動
作の一例を示すフローチャート。
作の一例を示すフローチャート。
フロントページの続き (72)発明者 浅野 秀夫 東京都千代田区三番町5−19 日本ア イ・ビー・エム株式会社 東京基礎研究 所内 (72)発明者 坂上 好功 東京都千代田区三番町5−19 日本ア イ・ビー・エム株式会社 東京基礎研究 所内 (72)発明者 豊岡 孝資 東京都千代田区三番町5−19 日本ア イ・ビー・エム株式会社 東京基礎研究 所内 (56)参考文献 半沢孝雄、磁気ディスク技法集=プロ グラミングハンドブック=、1978年9月 30日発行、竹内書店新社発行,P33−P 40 (58)調査した分野(Int.Cl.6,DB名) G06F 3/08
Claims (15)
- 【請求項1】各々がM個のセクタからなるN個のクラス
タを有し(M、Nは各々2以上の整数)、クラスタ単位
で消去することが可能であり、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記N個のクラスタに対して重複がないように順序番号
が与えられ、各クラスタのクラスタ情報セクタに当該ク
ラスタに割り当てられた順序番号が書き込まれているこ
とを特徴とする一括消去型不揮発性メモリ。 - 【請求項2】上記N個のクラスタ情報セクタの各々には
さらに当該クラスタの消去回数が書き込まれ、上記N個
のクラスタに与えられた順序番号の最大値はそれらクラ
スタの消去回数の総和に等しいことを特徴とする請求項
1記載の一括消去型不揮発性メモリ。 - 【請求項3】コントローラと、 各々がM個のセクタからなるN個のクラスタを有し
(M、Nは各々2以上の整数)、クラスタ単位で消去す
ることが可能な一括消去型不揮発性メモリとを備え、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記コントローラの動作に先立って、上記N個のクラス
タに対して重複がないように順序番号が与えられ、各ク
ラスタのクラスタ情報セクタに当該クラスタに割り当て
られた順序番号が書き込まれており、 上記コントローラは、 所与のクラスタを消去するときは、先に当該所与のクラ
スタの順序番号を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号よりも大きな値を当該所与のクラスタの順
序番号としてそのクラスタ情報セクタに書き込むことを
特徴とする半導体ディスク装置。 - 【請求項4】上記コントローラは、所与のクラスタに対
してユーザ・データの書込みを開始した後、当該クラス
タに対するユーザ・データの書込みが終了するまで、他
のクラスタへのユーザ・データの書込みを行わないこと
を特徴とする請求項3記載の半導体ディスク装置。 - 【請求項5】上記コントローラは、上記所与のクラスタ
のクラスタ情報セクタ以外のセクタに対してそのアドレ
スの順番に従ってユーザ・データを書き込む請求項3又
は4記載の半導体ディスク装置。 - 【請求項6】コントローラと、 各々がM個のセクタからなるN個のクラスタを有し
(M、Nは各々2以上の整数)、クラスタ単位で消去す
ることが可能な一括消去型不揮発性メモリとを備え、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記コントローラの動作に先立って、上記N個のクラス
タに対して重複がないように順序番号が与えられ、各ク
ラスタのクラスタ情報セクタに当該クラスタに割り当て
られた順序番号が書き込まれており、且つ、上記N個の
クラスタ情報セクタの各々にはさらに当該クラスタの消
去回数が書き込まれ、上記N個のクラスタに与えられた
順序番号の最大値はそれらクラスタの消去回数の総和に
等しく設定されており、 上記コントローラは、 所与のクラスタを消去するときは、先に当該所与のクラ
スタの順序番号と消去回数を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号に1を加算し、且つ消去前に保管された消
去回数に1を加算し、加算結果をそれぞれ当該所与のク
ラスタの順序番号及び消去回数としてそのクラスタ情報
セクタに書き込むことを特徴とする半導体ディスク装
置。 - 【請求項7】プロセッサからの論理アドレスによってア
クセスされる半導体ディスク装置であって、 上記プロセッサに接続されたコントローラと、 各々がM個のセクタからなるN個のクラスタを有し
(M、Nは各々2以上の整数)、クラスタ単位で消去す
ることが可能な一括消去型不揮発性メモリと、 上記コントローラに接続されたランダム・アクセス・メ
モリとを備え、 上記一括消去型不揮発性メモリは、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記コントローラの動作に先立って、上記N個のクラス
タに対して重複がないように順序番号が与えられ、各ク
ラスタのクラスタ情報セクタに当該クラスタに割り当て
られた順序番号が書き込まれており、 上記コントローラは、 上記プロセッサのコマンドに含まれる論理アドレスを特
定のセクタを指示する物理アドレスに変換するために上
記ランダム・アクセス・メモリ上にアドレス変換表の領
域を確保し、 上記プロセッサが所与の論理アドレスを指定して書込み
を要求したときに、上記一括消去型不揮発性メモリの空
白セクタを一つ選択し、上記アドレス変換表の当該所与
の論理アドレスによって指示される項目に当該選択され
たセクタの物理アドレスを書き込み、且つ当該選択され
たセクタに当該所与の論理アドレスを逆参照ポインタと
して書き込み、 所与のクラスタを消去するときは、先に当該クラスタの
順序番号を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号よりも大きな値を当該クラスタの順序番号
としてそのクラスタ情報セクタに書き込むことを特徴と
する半導体ディスク装置。 - 【請求項8】上記コントローラは、所与のクラスタに対
して書込みを開始した後、当該所与のクラスタに対する
書込みが終了するまでの期間、上記プロセッサの書き込
み要求に応答して当該所与のクラスタから物理アドレス
の順に空白セクタを選択することを特徴とする請求項7
記載の半導体ディスク装置。 - 【請求項9】上記コントローラは、上記アドレス変換表
を再構成するときに、上記不揮発性メモリのM×N個の
セクタを読み出し、読み出されたセクタの逆参照ポイン
タによって指示される上記アドレス変換表の項目に当該
セクタの物理アドレスを書き込み、 同じ逆参照ポインタを持つセクタが複数あるときには、
それらセクタの属するクラスタの順序番号とクラスタ内
での位置に従って、最も新しく書き込まれたセクタの物
理アドレスを上記アドレス変換表に書き込むことを特徴
とする請求項7又は8記載の半導体ディスク装置。 - 【請求項10】上記コントローラは、上記アドレス変換
表を再構成するときに、(a)上記M個のクラスタのク
ラスタ情報セクタを読み出し、(b)順序番号が最小の
クラスタを選択し、(c)選択されたクラスタのセクタ
を順次読み出し、読み出されたセクタの逆参照ポインタ
によって指示される上記アドレス変換表の項目に当該セ
クタの物理アドレスを書き込み、(d)順序番号の昇順
に従って次のクラスタを選択し上記(c)の動作を行う
ことを反復することを特徴とする請求項7又は8記載の
半導体ディスク装置。 - 【請求項11】上記コントローラは、上記アドレス変換
表を再構成するときに、上記M個のクラスタの各々につ
いて、 当該クラスタのクラスタ情報セクタを読み出し、 当該クラスタのアドレスとその順序番号の対応関係を上
記ランダム・アクセス・メモリに表形式で記憶し(以
下、この表を順序番号表と呼ぶ)、 当該クラスタのクラスタ情報セクタ以外のセクタ(以
下、データ・セクタと呼ぶ)を順次読み出し、 読み出されたデータ・セクタの逆参照ポインタによって
指示されるアドレス変換表の項目を読み出し、 当該項目が空白であるならば、そこに当該読み出された
データ・セクタの物理アドレスを書き込み、 当該項目が空白でないならば、そこに書き込まれた物理
アドレスに位置するセクタの属するクラスタの順序番号
を上記順序番号表を参照して求め、 上記求まった順序番号を現在読み出し中のクラスタの順
序番号と比較し、 上記求まった順序番号の方が小であるなら、上記読み出
されたデータ・セクタの物理アドレスを上記項目に書き
込むことを特徴とする請求項7又は8記載の半導体ディ
スク装置。 - 【請求項12】プロセッサと、 上記プロセッサに接続されたコントローラと、 各々がM個のセクタからなるN個のクラスタを有し
(M、Nは各々2以上の整数)、クラスタ単位で消去す
ることが可能な一括消去型不揮発性メモリと、 上記コントローラに接続されたランダム・アクセス・メ
モリとを備え、 上記一括消去型不揮発性メモリは、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記コントローラの動作に先立って、上記N個のクラス
タに対して重複がないように順序番号が与えられ、各ク
ラスタのクラスタ情報セクタに当該クラスタに割り当て
られた順序番号が書き込まれており、 上記コントローラは、 上記プロセッサのコマンドに含まれる論理アドレスを特
定のセクタを指示する物理アドレスに変換するために上
記ランダム・アクセス・メモリ上にアドレス変換表の領
域を作成し、 上記プロセッサが所与の論理アドレスを指定して書込み
を要求したときに、上記一括消去型不揮発性メモリの空
白セクタを一つ選択し、上記アドレス変換表の当該所与
の論理アドレスによって指示される項目に当該選択され
たセクタの物理アドレスを書き込み、且つ当該選択され
たセクタに当該所与の論理アドレスを逆参照ポインタと
して書き込み、 所与のクラスタを消去するときは、先に当該クラスタの
順序番号を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号よりも大きな値を当該クラスタの順序番号
としてそのクラスタ情報セクタに書き込むことを特徴と
するデータ処理システム。 - 【請求項13】プロセッサと、 上記プロセッサに接続された表示装置と、 上記プロセッサに接続されたコントローラと、 各々がM個のセクタからなるN個のクラスタを有し
(M、Nは各々2以上の整数)、クラスタ単位で消去す
ることが可能な一括消去型不揮発性メモリとを備え、 上記N個のクラスタの各々にクラスタ情報セクタが確保
され、 上記コントローラの動作に先立って、上記N個のクラス
タに対して重複がないように順序番号が与えられ、各ク
ラスタのクラスタ情報セクタに当該クラスタに割り当て
られた順序番号が書き込まれており、且つ、上記N個の
クラスタ情報セクタの各々にはさらに当該クラスタの消
去回数が書き込まれ、上記N個のクラスタに与えられた
順序番号の最大値はそれらクラスタの消去回数の総和に
等しく設定されており、 上記コントローラは、 上記プロセッサのコマンドに含まれる論理アドレスを特
定のセクタを指示する物理アドレスに変換するために上
記ランダム・アクセス・メモリ上にアドレス変換表を作
成し、 所与のクラスタを消去するときは、先に当該所与のクラ
スタの順序番号と消去回数を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号に1を加算し、且つ消去前に保管された消
去回数に1を加算し、それぞれの加算結果を当該所与の
クラスタ順序番号及び消去回数としてそのクラスタ情報
セクタに書き込み、 上記アドレス変換表作成時に最大順序番号と上記N個の
クラスタのクラスタ情報セクタに記憶された消去回数の
総和を比較し、不一致を検出したときには、上記表示装
置にエラー・メッセージを表示させるように、上記プロ
セッサに対して要求することを特徴とするデータ処理シ
ステム。 - 【請求項14】各々がM個のセクタからなるN個のクラ
スタを有し(M、Nは各々2以上の整数)、クラスタ単
位で消去することが可能な、一括消去型不揮発性メモリ
を用いた半導体ディスク装置の管理方法であって、 上記N個のクラスタに対して重複がないように順序番号
を与え、各クラスタにその割り当てられた順序番号を書
き込み、 所与のクラスタを消去するときは、当該クラスタの順序
番号を保管した後、当該クラスタを消去し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号よりも大きな値を当該クラスタの順序番号
としてそのクラスタに書き込むことを特徴とする半導体
ディスク装置の管理方法。 - 【請求項15】各々がM個のセクタからなるN個のクラ
スタを有し(M、Nは各々2以上の整数)、クラスタ単
位で消去することが可能な、一括消去型不揮発性メモリ
を用いた半導体ディスク装置の管理方法であって、 上記N個のクラスタに対して重複がないように順序番号
を与え、クラスタの夫々にその割り当てられた順序番号
と消去回数とを書き込み、上記N個のクラスタに与えら
れた順序番号の最大値はそれらクラスタの消去回数の総
和に等しく設定し、 所与のクラスタを消去するときは、先に当該クラスタの
順序番号と消去回数を保管し、 所与の消去済みクラスタを初期設定するときは、現在の
最大順序番号に1を加算し、且つ消去前に保管された消
去回数に1を加算し、加算結果をそれぞれ当該所与のク
ラスタの順序番号及び消去回数としてそのクラスタに書
き込むことを特徴とする半導体ディスク装置の管理方
法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3522893A JP2856621B2 (ja) | 1993-02-24 | 1993-02-24 | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
| US08/200,343 US5457658A (en) | 1993-02-24 | 1994-02-23 | Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same |
| US08/429,395 US5598370A (en) | 1993-02-24 | 1995-04-26 | Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3522893A JP2856621B2 (ja) | 1993-02-24 | 1993-02-24 | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06250798A JPH06250798A (ja) | 1994-09-09 |
| JP2856621B2 true JP2856621B2 (ja) | 1999-02-10 |
Family
ID=12435986
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3522893A Expired - Lifetime JP2856621B2 (ja) | 1993-02-24 | 1993-02-24 | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US5457658A (ja) |
| JP (1) | JP2856621B2 (ja) |
Families Citing this family (189)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3078946B2 (ja) * | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
| JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
| KR100457481B1 (ko) * | 1995-07-13 | 2005-06-10 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 데이타저장방법,데이타저장시스템,정보캐리어,데이타인출방법 |
| 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 |
| US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
| 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 |
| US5835935A (en) * | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
| US6170066B1 (en) * | 1995-09-29 | 2001-01-02 | Intel Corporation | Power-off recovery management for sector based flash media managers |
| US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
| US5987478A (en) * | 1995-10-31 | 1999-11-16 | Intel Corporation | Virtual small block file manager for flash memory array |
| US5978808A (en) * | 1995-12-27 | 1999-11-02 | Intel Corporation | Virtual small block file manager for flash memory array |
| JPH09185551A (ja) * | 1996-01-08 | 1997-07-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
| US5907854A (en) * | 1996-09-27 | 1999-05-25 | Alcatel Usa Sourcing, L.P. | Flash memory file system for writing data files without rewriting an entire volume |
| US5832493A (en) * | 1997-04-24 | 1998-11-03 | Trimble Navigation Limited | Flash file management system |
| US5943692A (en) * | 1997-04-30 | 1999-08-24 | International Business Machines Corporation | Mobile client computer system with flash memory management utilizing a virtual address map and variable length data |
| JP3070524B2 (ja) * | 1997-05-16 | 2000-07-31 | 日本電気株式会社 | 記憶装置 |
| JP3718578B2 (ja) * | 1997-06-25 | 2005-11-24 | ソニー株式会社 | メモリ管理方法及びメモリ管理装置 |
| JP3588231B2 (ja) | 1997-08-04 | 2004-11-10 | 東京エレクトロンデバイス株式会社 | データ処理システム及びブロック消去型記憶媒体 |
| JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
| GB9801373D0 (en) * | 1998-01-22 | 1998-03-18 | Memory Corp Plc | Memory system |
| JP2000067574A (ja) * | 1998-08-21 | 2000-03-03 | Mitsubishi Electric Corp | 半導体記憶装置 |
| JP2000122935A (ja) * | 1998-10-20 | 2000-04-28 | Sanyo Electric Co Ltd | 不揮発性メモリのアドレス変換装置 |
| KR100716576B1 (ko) * | 1999-02-22 | 2007-05-11 | 가부시키가이샤 히타치세이사쿠쇼 | 메모리 카드, 논리 어드레스의 할당방법 및 데이터 기록방법 |
| US6104638A (en) * | 1999-02-26 | 2000-08-15 | Hewlett-Packard Company | Use of erasable non-volatile memory for storage of changing information |
| US6910054B1 (en) | 1999-08-16 | 2005-06-21 | International Business Machines Corporation | Methods, systems and computer program products for storing data using a rolling window file |
| US6564307B1 (en) * | 1999-08-18 | 2003-05-13 | International Business Machines Corporation | Method, system, and program for logically erasing data |
| 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 |
| US7102671B1 (en) | 2000-02-08 | 2006-09-05 | Lexar Media, Inc. | Enhanced compact flash memory card |
| 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 |
| JP2001338497A (ja) * | 2000-05-24 | 2001-12-07 | Fujitsu Ltd | メモリ試験方法 |
| JP3942807B2 (ja) | 2000-06-06 | 2007-07-11 | 株式会社ルネサステクノロジ | ブロックアラインメント機能付き半導体記憶装置 |
| US7167944B1 (en) | 2000-07-21 | 2007-01-23 | Lexar Media, Inc. | Block management for mass storage |
| US6567307B1 (en) * | 2000-07-21 | 2003-05-20 | Lexar Media, Inc. | Block management for mass storage |
| US7113432B2 (en) * | 2000-09-14 | 2006-09-26 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
| US6717851B2 (en) * | 2000-10-31 | 2004-04-06 | Sandisk Corporation | Method of reducing disturbs in non-volatile memory |
| US6570785B1 (en) | 2000-10-31 | 2003-05-27 | Sandisk Corporation | Method of reducing disturbs in non-volatile memory |
| US7020739B2 (en) | 2000-12-06 | 2006-03-28 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
| US7617352B2 (en) | 2000-12-27 | 2009-11-10 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
| US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
| US6434044B1 (en) | 2001-02-16 | 2002-08-13 | Sandisk Corporation | Method and system for generation and distribution of supply voltages in memory systems |
| US6577535B2 (en) | 2001-02-16 | 2003-06-10 | Sandisk Corporation | Method and system for distributed power generation in multi-chip memory systems |
| JP2002351685A (ja) * | 2001-05-22 | 2002-12-06 | Sankyo Seiki Mfg Co Ltd | 不揮発性メモリのデータ更新方法及び制御装置 |
| JP3692313B2 (ja) * | 2001-06-28 | 2005-09-07 | 松下電器産業株式会社 | 不揮発性メモリの制御方法 |
| US6925585B1 (en) * | 2001-06-29 | 2005-08-02 | Cisco Technology, Inc. | Method and apparatus for checking level of SNMP MIB support by network devices |
| MXPA03011964A (es) | 2001-07-05 | 2004-03-26 | Matsushita Electric Industrial Co Ltd | Aparato, medio, metodo de grabacion y programa de computadora relacionado. |
| 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 |
| GB0123421D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Power management system |
| 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 |
| GB0123419D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Data handling system |
| US6678192B2 (en) | 2001-11-02 | 2004-01-13 | Sandisk Corporation | Error management for writable tracking storage units |
| US6807106B2 (en) | 2001-12-14 | 2004-10-19 | Sandisk Corporation | Hybrid density memory card |
| US6957295B1 (en) | 2002-01-18 | 2005-10-18 | Lexar Media, Inc. | File management of one-time-programmable nonvolatile memory devices |
| US6950918B1 (en) | 2002-01-18 | 2005-09-27 | Lexar Media, Inc. | File management of one-time-programmable nonvolatile memory devices |
| US6621739B2 (en) * | 2002-01-18 | 2003-09-16 | Sandisk Corporation | Reducing the effects of noise in non-volatile memories through multiple reads |
| US6909910B2 (en) * | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
| US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
| 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 |
| 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 |
| 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 |
| US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
| DE10227255B4 (de) * | 2002-06-19 | 2008-06-26 | Hyperstone Gmbh | Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers |
| US7181611B2 (en) * | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
| US7234036B1 (en) | 2002-10-28 | 2007-06-19 | Sandisk Corporation | Method and apparatus for resolving physical blocks associated with a common logical block |
| US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
| US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
| US8412879B2 (en) * | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
| US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
| US6831865B2 (en) * | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
| US7171536B2 (en) * | 2002-10-28 | 2007-01-30 | Sandisk Corporation | Unusable block management within a non-volatile memory system |
| US20040083334A1 (en) * | 2002-10-28 | 2004-04-29 | Sandisk Corporation | Method and apparatus for managing the integrity of data in non-volatile memory system |
| US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
| US7174440B2 (en) * | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
| US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
| US7254668B1 (en) | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
| US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
| US7526599B2 (en) * | 2002-10-28 | 2009-04-28 | Sandisk Corporation | Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system |
| US7082512B2 (en) * | 2002-11-21 | 2006-07-25 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US6925523B2 (en) * | 2003-03-03 | 2005-08-02 | Agilent Technologies, Inc. | Managing monotonically increasing counter values to minimize impact on non-volatile storage |
| US7032090B2 (en) * | 2003-04-08 | 2006-04-18 | International Business Machines Corporation | Method, system, and apparatus for releasing storage in a fast replication environment |
| GB2400927A (en) * | 2003-04-22 | 2004-10-27 | Hewlett Packard Development Co | Method of managing memory by checking that none of the sectors in a block is needed before erasing the block. |
| US7069402B2 (en) * | 2003-06-02 | 2006-06-27 | International Business Machines Corporation | Host-independent incremental backup method, apparatus, and system |
| US6973519B1 (en) | 2003-06-03 | 2005-12-06 | Lexar Media, Inc. | Card identification compatibility |
| ITMI20031126A1 (it) * | 2003-06-05 | 2004-12-06 | St Microelectronics Srl | Dispositivo di memoria di massa basato su una memoria |
| US7188228B1 (en) | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
| US7559004B1 (en) | 2003-10-01 | 2009-07-07 | Sandisk Corporation | Dynamic redundant area configuration in a non-volatile memory system |
| US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
| JP4175991B2 (ja) * | 2003-10-15 | 2008-11-05 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
| US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
| US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
| US8706990B2 (en) | 2003-10-28 | 2014-04-22 | Sandisk Technologies Inc. | Adaptive internal table backup for non-volatile memory system |
| WO2005059854A2 (en) | 2003-12-17 | 2005-06-30 | Lexar Media, Inc. | Electronic equipment point-of-sale activation to avoid theft |
| US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
| US8504798B2 (en) | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
| US7509452B2 (en) * | 2004-01-19 | 2009-03-24 | Ricoh Company, Ltd. | Image forming apparatus, erasing method, and hard disk management method |
| JP2007527579A (ja) * | 2004-02-23 | 2007-09-27 | レクサー・メディア・インコーポレーテッド | セキュリティで保護されたコンパクト・フラッシュ |
| 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 |
| US7594063B1 (en) * | 2004-08-27 | 2009-09-22 | Lexar Media, Inc. | Storage capacity status |
| US7464306B1 (en) * | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
| 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 |
| US7395404B2 (en) * | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
| 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 |
| US7348667B2 (en) * | 2005-03-22 | 2008-03-25 | International Business Machines Corporation | System and method for noise reduction in multi-layer ceramic packages |
| US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
| US7747812B2 (en) * | 2005-12-22 | 2010-06-29 | Pitney Bowes Inc. | Method for manipulating state machine storage in a small memory space |
| US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
| 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 |
| US8417774B2 (en) | 2006-12-06 | 2013-04-09 | Fusion-Io, Inc. | Apparatus, system, and method for a reconfigurable baseboard management controller |
| US9063181B2 (en) * | 2006-12-29 | 2015-06-23 | Electro Industries/Gauge Tech | Memory management for an intelligent electronic device |
| US9885739B2 (en) | 2006-12-29 | 2018-02-06 | Electro Industries/Gauge Tech | Intelligent electronic device capable of operating as a USB master device and a USB slave device |
| US9207876B2 (en) | 2007-04-19 | 2015-12-08 | Microsoft Technology Licensing, Llc | Remove-on-delete technologies for solid state drive optimization |
| US8019795B2 (en) * | 2007-12-05 | 2011-09-13 | Microsoft Corporation | Data warehouse test automation framework |
| US8195912B2 (en) * | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
| US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
| 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 |
| JP4461170B2 (ja) * | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
| JP4691122B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
| JP4439569B2 (ja) | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
| EP2476055B1 (en) * | 2009-09-08 | 2020-01-22 | SanDisk Technologies LLC | Apparatus, system, and method for caching data on a solid-state storage device |
| US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
| US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
| KR101769883B1 (ko) * | 2009-09-09 | 2017-08-21 | 샌디스크 테크놀로지스 엘엘씨 | 저장부 할당 장치, 시스템, 및 방법 |
| US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
| EP2476039B1 (en) | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
| US20130297840A1 (en) | 2009-12-01 | 2013-11-07 | Electro Industries/Gaugetech | Intelligent electronic device capable of operating as a usb master device and a usb slave device |
| JP4703764B2 (ja) * | 2009-12-25 | 2011-06-15 | 株式会社東芝 | メモリシステムの制御方法 |
| US8416624B2 (en) | 2010-05-21 | 2013-04-09 | SanDisk Technologies, Inc. | Erase and programming techniques to reduce the widening of state distributions in non-volatile memories |
| US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
| US10013354B2 (en) | 2010-07-28 | 2018-07-03 | Sandisk Technologies Llc | Apparatus, system, and method for atomic storage operations |
| US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
| US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
| US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
| US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
| US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
| US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
| WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
| WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
| JP2012133655A (ja) * | 2010-12-22 | 2012-07-12 | Sony Corp | 管理装置、管理方法、およびプログラム |
| WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
| US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
| US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
| US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
| US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
| WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
| US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
| US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
| US8862902B2 (en) * | 2011-04-29 | 2014-10-14 | Seagate Technology Llc | Cascaded data encryption dependent on attributes of physical memory |
| JP2013045481A (ja) * | 2011-08-24 | 2013-03-04 | Fujitsu Ltd | 集積回路,集積回路の試験装置および集積回路の試験方法 |
| US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
| US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
| US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
| US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
| US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
| US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
| US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
| US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
| US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
| US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
| US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
| US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
| US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
| US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
| 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 |
| US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
| US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
| US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
| US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
| US9927470B2 (en) | 2014-05-22 | 2018-03-27 | Electro Industries/Gauge Tech | Intelligent electronic device having a memory structure for preventing data loss upon power loss |
| US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
| US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
| FR3051574A1 (fr) * | 2016-05-20 | 2017-11-24 | Proton World Int Nv | Gestion du stockage dans une memoire flash |
| FR3051575A1 (fr) * | 2016-05-20 | 2017-11-24 | Proton World Int Nv | Gestion de l'effacement dans une memoire flash |
| FR3055992A1 (fr) | 2016-09-09 | 2018-03-16 | Proton World International N.V. | Gestion d'index dans une memoire flash |
| FR3072476A1 (fr) | 2017-10-13 | 2019-04-19 | Proton World International N.V. | Unite logique de memoire pour memoire flash |
| US10769064B1 (en) | 2017-12-20 | 2020-09-08 | Pliops Ltd | Method for retrieving key value pairs and groups of key value pairs |
| US11210166B1 (en) | 2017-12-22 | 2021-12-28 | Pliops Ltd. | Efficient redundancy management in key-value NAND flash storage |
| US10860249B2 (en) | 2017-12-25 | 2020-12-08 | Pliops Ltd. | Solid state disk (SSD) controller and database |
| US11070229B1 (en) | 2019-05-19 | 2021-07-20 | Pliops | Codeword generator |
| USD939988S1 (en) | 2019-09-26 | 2022-01-04 | Electro Industries/Gauge Tech | Electronic power meter |
| CN116661696B (zh) * | 2023-06-05 | 2024-03-22 | 深圳市航顺芯片技术研发有限公司 | 一种基于快闪存储器的存储方法及相关装置 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5065364A (en) * | 1989-09-15 | 1991-11-12 | Intel Corporation | Apparatus for providing block erasing in a flash EPROM |
| US5327383A (en) * | 1992-04-21 | 1994-07-05 | Intel Corporation | Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy |
-
1993
- 1993-02-24 JP JP3522893A patent/JP2856621B2/ja not_active Expired - Lifetime
-
1994
- 1994-02-23 US US08/200,343 patent/US5457658A/en not_active Expired - Fee Related
-
1995
- 1995-04-26 US US08/429,395 patent/US5598370A/en not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| 半沢孝雄、磁気ディスク技法集=プログラミングハンドブック=、1978年9月30日発行、竹内書店新社発行,P33−P40 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5598370A (en) | 1997-01-28 |
| US5457658A (en) | 1995-10-10 |
| JPH06250798A (ja) | 1994-09-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2856621B2 (ja) | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 | |
| 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 | |
| US5682497A (en) | Managing file structures for a flash memory file system in a computer | |
| US6262918B1 (en) | Space management for managing high capacity nonvolatile memory | |
| JP2582487B2 (ja) | 半導体メモリを用いた外部記憶システム及びその制御方法 | |
| US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
| KR960012360B1 (ko) | 플래시메모리를 사용한 기억장치 | |
| US6034897A (en) | Space management for managing high capacity nonvolatile memory | |
| US5953737A (en) | Method and apparatus for performing erase operations transparent to a solid state storage system | |
| US5787493A (en) | Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory | |
| JP3942807B2 (ja) | ブロックアラインメント機能付き半導体記憶装置 | |
| US20040085849A1 (en) | Flash memory, and flash memory access method and apparatus | |
| JPH05151097A (ja) | 書換回数制限型メモリのデータ管理方式 | |
| JPH06111588A (ja) | 一括消去型不揮発性メモリ | |
| CN114327240B (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 | |
| JPH06274409A (ja) | 一括消去型不揮発性メモリ | |
| JP2003085037A (ja) | メモリ管理方法 | |
| CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
| EP2264602A1 (en) | Memory device for managing the recovery of a non volatile memory | |
| CN110471626B (zh) | 应用于Java Card的Nor Flash管理层及方法 | |
| KR100932801B1 (ko) | 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체 | |
| KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 | |
| KR100745163B1 (ko) | 동적 매핑 테이블을 이용한 플래시 메모리 관리방법 | |
| CN112799601A (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
| CN120407462A (zh) | 存储控制器控制单元及映射表管理方法 |