JPH0750558B2 - 一括消去型不揮発性メモリ - Google Patents

一括消去型不揮発性メモリ

Info

Publication number
JPH0750558B2
JPH0750558B2 JP25238692A JP25238692A JPH0750558B2 JP H0750558 B2 JPH0750558 B2 JP H0750558B2 JP 25238692 A JP25238692 A JP 25238692A JP 25238692 A JP25238692 A JP 25238692A JP H0750558 B2 JPH0750558 B2 JP H0750558B2
Authority
JP
Japan
Prior art keywords
block
erase
memory
address
processor
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
Application number
JP25238692A
Other languages
English (en)
Other versions
JPH06111588A (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 JP25238692A priority Critical patent/JPH0750558B2/ja
Priority to EP93307137A priority patent/EP0589597A3/en
Priority to US08/125,058 priority patent/US5406529A/en
Publication of JPH06111588A publication Critical patent/JPH06111588A/ja
Publication of JPH0750558B2 publication Critical patent/JPH0750558B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フラッシュEEPRO
Mまたはフラッシュ・メモリと呼ばれる一括消去型不揮
発性メモリに係り、特に、メモリ・ブロックの動的割り
振りが可能な一括消去型不揮発性メモリ(以下、フラッ
シュ・メモリという)に係る。
【0002】
【従来の技術】ノートブック等の携帯可能なパーソナル
・コンピュータの普及に伴って、コンピュータ・システ
ムの小型軽量化、低消費電力化に対する要求が強くなっ
てきている。半導体メモリを用いた外部記憶システム、
いわゆる半導体ディスク装置は、磁気ディスク装置のよ
うに駆動系を持たないため、消費電力が低く、高速動作
が可能である。また、小さなメモリ・モジュールで構成
されるため、磁気ディスク装置に比べて小型で軽く、形
状に自由度が大きく、カード化も容易である。
【0003】しかし、従来の半導体メモリにはコスト、
容量、電池バックアップなどの点でまだ問題が多い。メ
モリとしてSRAMを使うと電池によるバックアップの
時間は長くなるが、コストが高く、容量も小さくなって
しまう。コスト、容量に優れたDRAMでは、スタンバ
イ時の消費電力が大きく、バックアップの時間が一週間
程度に限られてしまう。電池系の事故によるデータ消失
の危険もある。EEPROMは電池を必要としないが、
コストが高すぎる。
【0004】これらの問題を解決するメモリとして一括
消去型のフラッシュ・メモリが開発されている。DRA
Mと同じくトランジスタ1つで記憶素子が構成され、高
密度化が可能で、将来の市場次第でDRAMと同等かそ
れ以下のビット単価(低コスト、大容量)になることが
期待されている。記憶素子は不揮発性であり、電池バッ
クアップの必要はない。消去は一般にチップ単位又はそ
れよりも小さなブロック単位で行われる。Richard D.
Pashley 外の "Flash memories: the best oftwo world
s" 、IEEE SPECTRUM 1989年12月、30〜33頁は、このよ
うなフラッシュ・メモリの概要を紹介している。パフォ
ーマンスの点では、チップ消去型よりブロック消去型の
方が優れている。
【0005】ブロック消去型のフラッシュ・メモリを半
導体ディスク装置に用いる場合は、ブロックの大きさを
磁気ディスク装置のアクセス単位であるセクタに等しく
しておくと、メモリ管理に都合がよい。例えば、ヨーロ
ッパ公開特許出願第392895号はセクタ消去型のフ
ラッシュEEPROMシステムを開示している。このシ
ステムは、消去単位であるセクタ毎にラッチを設けてお
き、消去したいセクタに対応するラッチをセットするこ
とによって、任意の複数のセクタを同時に消去できるよ
うにしている。複数セクタ分の容量(例えば4Kバイ
ト)を持ったブロックを消去単位にしたフラッシュ・メ
モリも知られており、これはセクタ消去型と区別するた
めにクラスタ消去型と呼ばれることがある。
【0006】しかし、フラッシュ・メモリにはSRAM
やDRAMにはない制限がある。まず、メモリ・ビット
のプログラミングは一方通行で、0から1又は1から0
へしか変えることができない。従って、既に書込まれて
いる記憶位置に新たなデータを書込む場合は、その記憶
位置を含むブロックを一括消去によって全0又は全1に
設定した後に書込みを行う必要がある。消去及び書込み
には、通常、数十ミリ秒から数秒の時間がかかる。ま
た、フラッシュ・メモリは消去及び書込みによって劣化
し、現在のところ、数万回から数十万回の消去及び書込
みで使用限度に達してしまう。
【0007】
【発明が解決しようとする課題】このようなフラッシュ
・メモリを半導体ディスク装置に用いた場合、書込みが
メモリの一部に片寄ることが問題になる。例えば、DO
Sベースのパ−ソナル・コンピュ−タ・システムでは、
ファイル・アロケ−ション・テーブル(FAT)の書換
えがしばしば行われる。ところが、FATのアドレスは
固定されているため、フラッシュ・メモリを用いた場合
には、FATの書換えの度にそれを記憶しているブロッ
クの消去及び書込みを行う必要があり、その度に数十ミ
リ秒から数秒の時間がかかってしまう。また、このよう
に書込み及び消去がメモリの一部のブロックに片寄る
と、そのブロックが他のブロックに比べて早く使用限度
に達してしまい、他のブロックがまだ使用可能であるに
もかかわらず、メモリを交換しなければならなくなる。
使用限度に達したブロックを無効化して、代替ブロック
を使用するようにすれば、メモリの早期交換は避けられ
るが、書込みが集中するのが代替ブロックに変わっただ
けであり、根本的な解決にはなっていない。
【0008】更に、前述のようにフラッシュ・メモリの
消去及び書込みには数十ミリ秒から数秒の時間がかかる
ため、その最中にパワーオフがあると、要求された消去
又は書込みを完了仕切れないことがある。その場合は、
消去又は書込みが行われていたブロックの内容は予測不
能であり、従ってフラッシュ・メモリには異常パワーオ
フ対策も必要である。
【0009】従って本発明の目的は、書込みがメモリの
一部に片寄らないようなフラッシュ・メモリを提供する
ことにある。
【0010】本発明の他の目的は、消去又は書込み中に
パワーオフがあってもその後の動作に支障がないような
フラッシュ・メモリを提供することにある。
【0011】
【課題を解決するための手段】本発明に従うフラッシュ
・メモリは、プロセッサがアクセス可能な複数のブロッ
クを含む。書込みがメモリの一部に片寄らないようにす
るため、本発明では、プロセッサから書込みコマンドが
くると、プロセッサが指定したアドレスとは無関係に、
各ブロックの消去回数に基づいて書込むべきブロックを
動的に割り振る。消去回数は、各ブロックの制御情報中
の消去カウントにより示される。制御情報は、消去カウ
ントの他に、そのブロックに対して書込みを行ったとき
にプロセッサが指定したアドレスを表すブロックIDを
含み、更にこの同じブロックIDに対してプロセッサが
何回書込みを行ったかを示す書換えコードを含む。書込
みは、消去カウントが最小の書換え可能なブロックに対
して行われ、そのとき制御情報も更新される。書換えコ
ードがリセットされているブロックは書込み可能であ
る。また、書込みを行うとき、そのブロックIDと同じ
ブロックIDを含む古いブロックがあれば、その書換え
コードを更新して新たな書込みブロックの制御情報と
し、古いブロックは消去して、その消去カウントを更新
する。
【0012】後述の実施例においては、各ブロックはヘ
ッダ部及びデータ部からなり、制御情報はヘッダ部に記
憶される。ブロックを消去したときは、消去カウントを
1だけ増分してブロックのヘッダ部に書き戻す。そのと
き書換えコードは消去された状態、すなわちリセットさ
れたままであり、このブロックが書込み可能であること
を示す。各ブロックのヘッダ部の内容は、動作に先立っ
てコントローラにより読み出される。コントローラはそ
れを用いて自身のメモリ(ランダム・アクセス・メモ
リ)にメモリ管理表を作成する。この表は、フラッシュ
・メモリの各ブロックに対応するエントリを含む。各エ
ントリは、対応するブロックの物理アドレスと、ヘッダ
部から読み出した情報すなわちブロックID、書換えコ
ード及び消去カウントと、このブロックが書込み可能か
どうかを示すフラグとを含む。コントローラは、メモリ
管理表を作成したとき、ブロックIDが同じで書換えコ
ードが異なる2つのブロックがあれば(この状態は、異
常パワーオフのため古いブロックを消去できなかったと
きに生じ得る)、書換えコードが小さい方のブロック、
すなわち古い方のブロックを消去し、その消去カウント
を更新する。コントローラは、このメモリ管理表を用い
てプロセッサからのコマンドを実行し、必要に応じて関
連するエントリを更新する。
【0013】
【実施例】本発明のフラッシュ・メモリを半導体ディス
ク装置として組み込んだコンピュータ・システムの一例
を図1に示す。CPU10はシステム・バス13を介し
て、主記憶装置15、バス制御装置16及びオプション
の数値計算用コプロセッサ14と通信する。CPU10
及び関連する周辺装置の間の通信はバス制御装置16を
介して行われる。そのため、バス制御装置16はファミ
リー・バス18によって周辺装置に接続されている。周
辺装置としては、本発明に従うフラッシュ・メモリ製の
半導体ディスク装置(SSF)20が接続され、さら
に、通信装置21、フロッピー・ディスク・ドライブ
(FDD)22、光ファイル装置23、表示装置24も
ファミリー・バス18に接続されている。勿論、他の周
辺装置も接続可能である。このようなコンピュータ・シ
ステムの一例はIBM PS/2である。
【0014】直接メモリ・アクセス制御装置(DMA
C)12は、これらの周辺装置の全部又は選択された何
台かによるメモリ・アクセスを可能にすべく設けられ
る。そのため、ファミリー・バス18は、少なくともそ
の一部がDMAC12に分岐接続される。図には示して
いないが、DMAが可能な各周辺装置にはアービトレー
ション回路が設けられ、アービトレーション・レベル
(優先順位)を割り当てられる。DMAC12の側に
は、DMAを同時に要求している複数の周辺装置の間で
調停作業を行って、どの周辺装置がDMAを許可された
かをDMAC12に知らせる中央アービトレーション制
御回路11が設けられる。DMAC12及び中央アービ
トレーション制御回路11によるDMA制御の詳細は米
国特許第4901234号明細書に記載されている。
【0015】CPU10はSSF20をハード・ディス
ク装置として扱う。従って、SSF20をアクセスする
ときは、ヘッド番号、シリンダ番号及びセクタ番号から
成るいわゆる相対ブロック・アドレス(RBA)がSS
F20に送られる。ただし、後で述べるように、本発明
においては、CPU10から供給されるRBAと、SS
F20の実際にアクセスされるブロックのアドレス(物
理アドレス)との間の関係は固定されておらず、書込み
の度に変化するので、それらの対応関係を明らかにする
手段(メモリ管理表)が設けられる。CPU10からの
RBAはいわば論理アドレスである。
【0016】図2に、SSF20の概略的な構成を示
す。このSSF20は、ファミリー・バス18に接続さ
れた制御装置30と、内部バス31を介してこの制御装
置30に接続されたランダム・アクセス・メモリ(RA
M)32、バス制御部33及びフラッシュ・メモリ34
で構成される。RAM32は、後述のメモリ管理表を記
憶する領域35及びバッファ領域36を含む。バス制御
部33は、内部バス31と、フラッシュ・メモリ34に
接続されたメモリ・バス37とを相互接続するための周
知のレシーバ/ドライバ構成を有する。本実施例では、
バス制御部33はバス31及び37間で2バイトの並列
転送を行うようになっているが、勿論本発明はこのよう
な並列転送に限定されるものではない。また、本発明に
関する限り、フラッシュ・メモリ34の消去型はいずれ
でも構わないが、以下では説明の便宜上、フラッシュ・
メモリ34をセクタ消去型とする。従って、1ブロック
=1セクタである。
【0017】フラッシュ・メモリ34の各ブロック(セ
クタ)の構成を図3に示す。図示のように、各ブロック
は512バイトのセクタ・データを記憶するデータ部の
他に、ヘッダ部を含んでいる。ヘッダ部は、このブロッ
クに書込みを行ったときにCPU10が指定した相対ブ
ロック・アドレス(RBA)によって表されるブロック
ID、同じRBAのブロックが何回書換えられたかを示
す書換えコード(RC)、この物理ブロックの消去回数
を示す消去カウント(EC)及びブロック全体のエラー
を検査し訂正するためのエラー訂正符号(ECC)を含
む。工場出荷時には、ブロックID及びRCはいずれも
0に初期設定されるが、ECの初期設定値は出荷前のテ
ストで当該ブロックを消去した回数を表す数値nであ
る。RC及びECのビット数は、フラッシュ・メモリの
公称の消去/書込み上限回数よりも大きい数を表せるよ
うに選んでおいた方がよい。本実施例では、RC及びE
Cはいずれも4バイトである。ブロックID、RC及び
ECはそれぞれエラーを検出するためのパリティ・ビッ
トをバイト毎に含んでいる。これは次に述べるメモリ管
理表を作成するときに必要である。
【0018】図2に示した制御装置30はパワーオン時
に各ブロックのヘッダ情報を読み、図4に示すようなメ
モリ管理表をRAM32の領域35に作成する。メモリ
管理表の各エントリはフラッシュ・メモリ34のブロッ
クと1対1に対応している。従って、フラッシュ・メモ
リ34がn個のブロックで構成されていると、メモリ管
理表は最大n個のエントリを含む。制御装置30は、欠
陥のある無効なブロックについてはエントリを作成しな
い。各エントリは、対応するブロックの物理アドレス
と、このブロックのヘッダ部に含まれている相対ブロッ
ク・アドレス(ヘッド番号/シリンダ番号/セクタ番
号)、書換えコード(RC)及び消去カウント(EC)
と、書込み可能フラグ(OW)とを含む。書込み可能フ
ラグは、対応するブロックが空で書込みが可能である
(OW=0)か、又は有効なデータが存在するため書込
みが不可である(OW=1)ことを示す。メモリ管理表
を作成するとき、ヘッダ部に含まれる書換えコードが0
であれば、対応するエントリ中の書込み可能フラグは0
に設定され、さもなければ1に設定される。
【0019】次に、図5のフローチャートを参照しなが
ら、CPU10からコマンドを受け取ったときのSSF
20の動作について説明する。SSF20の制御装置3
0はステップ100でコマンドを受け取ると、次のステ
ップ101でそれをデコードする。読取りコマンドの場
合はステップ102に進み、書込みコマンドの場合はス
テップ104に進む。まず書込みコマンドについて説明
する。
【0020】ステップ101で書込みコマンドが検出さ
れると、制御装置30はCPU10からのデータをバッ
ファ36に書込み、ステップ104に進む。ステップ1
04では、メモリ管理表35をアクセスすることによ
り、OWが1で且つこの書込みコマンドのRBAと同じ
RBAのブロックがあるかどうかを調べる。もしあれば
ステップ105に進んで、同じRBAを含んでいたエン
トリ中の物理アドレス、RC及びECを取り出して保管
する。物理アドレスを保管するのは、後でこの物理アド
レスによって指定されるブロックを消去するためであ
る。ステップ105でブロックを消去してしまうと、異
常パワーオフがあったときにRCを回復できないことが
あるので好ましくない。この点については後で説明す
る。
【0021】ステップ105が終了するか、またはステ
ップ104で同じRBAのブロックが見つからなけれ
ば、次のステップ106に進む。ステップ106では、
メモリ管理表35をアクセスすることにより、OWが0
で且つECが最小のブロックを探す。そのようなブロッ
クすなわち書込みが可能で且つこれまでの消去回数が最
小のブロックが見つかると、ステップ107へ進んで、
そのブロックへの書込み及びメモリ管理表35の更新を
行う。
【0022】ブロック書込みは、メモリ管理表35の対
応するエントリにある物理アドレスを用いて行う。ブロ
ックに書込まれるのはCPU10からのデータ(バッフ
ァ36にある)及びECを除く前述のヘッダ情報であ
る。後で説明するように、ECは既に更新された値が書
込まれている。制御装置30は、ステップ105で保管
しておいたRCを1だけ増分して、新たなヘッダ情報と
する。ステップ105が実行されなかった場合は、CP
U10が指定したRBAの初めての書込みであるから、
RCは1にセットされる。またヘッダ情報として書込む
べきブロックIDは、ステップ101で検出した書込み
コマンドのRBAをそのまま使用する。制御装置30
は、このようにして更新されたRC及びブロックIDの
パリティ・ビットを生成し、それをRC及びブロックI
Dに付加した後、バッファ36から読み出したデータと
共に、指定されたブロックに書込む。ECCは、更新さ
れたRC及びブロックIDと、メモリ管理表の対応する
エントリ中のECと、バッファ36から読み出したデー
タとを用いて生成され、ヘッダ情報として同じブロック
に書込まれる。メモリ管理表35の対応するエントリも
これらの新しいRBA及びRCを用いて更新され、且つ
そのOWは1にセットされる。
【0023】ステップ106で複数のブロックが見つか
った場合は、そのうちの1つ(例えば物理アドレスがも
っとも小さいブロック)に書込まれる。一般に、フラッ
シュ・メモリは予備のブロックを含んでいるので、OW
が0である書込み可能なブロックが見つからないという
ことはない。
【0024】ステップ107でのブロック書込みが終了
すると、ステップ105で保管しておいた物理アドレス
によって指定されるブロックを消去し、同じくステップ
105で保管しておいたECを1だけ増分してパリティ
・ビットを付加した後この消去済みのブロックのヘッダ
部に書込み、更にメモリ管理表35の対応するエントリ
をEC=EC+1及びOW=0となるように更新する
(ステップ108)。
【0025】ステップ108が終了すると、制御装置3
0はCPU10からの次のコマンドを待つ。制御装置3
0はこのときステップ106を実行することによって、
次に書込むべきブロックを予め選択しておいてもよい。
そうすれば、CPU10から新たな書込みコマンドがき
たときに、ステップ106が不要になり、書込みサイク
ルを短縮することができる。
【0026】読取りコマンドの場合は、ステップ101
から102に進み、CPU10からのRBA(ヘッド番
号/シリンダ番号/セクタ番号)を用いて図4のメモリ
管理表35をアクセスすることにより、読み取るべきブ
ロックの物理アドレスを得る。次のステップ103で
は、この物理アドレスをフラッシュ・メモリ32へ供給
することにより、指定されたブロックを読取り、そのヘ
ッダ部のECCを用いてエラーを検査する。ステップ1
09で訂正不能エラーが見つからなければ、読み取った
ブロックに含まれる512バイトのデータを、RAM3
2のバッファ領域35を介してCPU10の方へ転送す
る。バッファ領域を介する転送は、ハード・ディスク装
置で従来行われていたものと同じである。
【0027】訂正不能エラーがあると、ステップ110
に進む。読み取ったブロックに訂正不能エラーが生じて
いるということは、そのブロックに対する以前の書込み
中にパワーオフがあって、データ内容が乱された可能性
があることを示す。ステップ110では、訂正不能エラ
ーが生じたことをCPU10にしらせ、そのブロックを
消去する。
【0028】また、訂正不能エラーが検出された場合、
後で説明する図6のシーケンスによって作成されたメモ
リ管理表の対応するエントリ中のECに、通常のパリテ
ィ検査では検出できないエラーが生じている可能性があ
るので、ステップ110で消去したブロックのこれまで
の消去回数を推定する必要がある。本実施例では、その
推定値として隣接ブロック(例えば、物理アドレスが1
つ前又は1つ後ろのブロック)のECを使用する。この
ECはメモリ管理表から得ることができる。信頼性をよ
り重視するのであれば、フラッシュ・メモリ34におけ
る実際の隣接ブロックから読み出したECを用ればよ
い。一般に、隣接するブロック間では、消去回数に殆ど
差はないので、ステップ110で消去したブロックのE
Cとして隣接ブロックのECを使用しても実用上問題は
ない。計算が必要になるが、隣接する幾つかのブロック
のECの平均値を使用することも可能である。次のステ
ップ111は、このようにして得たECを1だけ増分し
た後、消去済みのブロックに書込む。最後に、ステップ
112でメモリ管理表の対応するエントリを更新する。
すなわち、新しいECを書込み、OWを0にセットす
る。
【0029】なおステップ101では、読取り及び書込
みの他に、クリア、状況読取り等のコマンドもデコード
されるが、それらは本発明とは関係がないので、ここで
は省略する。
【0030】次に、異常パワーオフ対策を明らかにする
ため、パワーオン後のメモリ管理表の作成について図6
を参照しながらもう少し詳しく説明する。前述のよう
に、制御装置30はパワーオン時にフラッシュ・メモリ
34を構成するn個のブロックのヘッダを順次に読み出
すことにより、図4に示すようなメモリ管理表を作成す
る。そのため、ステップ200でパワーオンがあると、
次のステップ201でブロック・アドレスBAを0に初
期設定し、ステップ202でBA=0のヘッダを読み取
る。データ部の読取りは不要である。次のステップ20
3では、パリティ検査により、ヘッダにエラーが生じて
いるかどうかを調べる。エラーが生じていなければステ
ップ204に進み、生じているとステップ205に進
む。
【0031】ステップ204では、ステップ202で読
み取ったヘッダ情報を用いてメモリ管理表のエントリを
作成する。まず物理アドレスは、ヘッダ読取り時のアド
レスBAを使用する。ブロックID、RC及びECはヘ
ッダの内容をそのまま使用する。但しブロックIDに関
しては、そのヘッド番号、シリンダ番号及びセクタ番号
の各ビット数は余裕をもって設定されており、普通は上
位数ビットは0になっているので、エントリ作成に当っ
ては、これらの上位ビットを落しても差し支えない。そ
うすると各エントリのビット数を節約できる。最後の書
込み可能フラグOWは、読み取ったRCが0であれば0
にセットされ、さもなければ1にセットされる。RCが
0ということは、それを含むブロックが消去されている
こと、従って書込みが可能であることを表す。なお図4
には示していないが、エラーの検出訂正のため、各エン
トリにECCを付けておくのが望ましい。
【0032】エントリの作成が終了すると、ステップ2
06でブロック・アドレスBAを1だけ増分し、ステッ
プ207でn個全てのブロックのヘッダの読取りが終っ
たかどうかを調べる。まだ終っていなければ、ヘッダ読
取りステップ202に戻り、ステップ202〜207を
繰り返す。
【0033】ステップ202で読み取ったヘッダにエラ
ーがあると、ステップ203から205へ分岐する。ス
テップ205では、ブロック全体を読み取ってECCを
適用することにより、そのエラーが訂正可能かどうかを
調べる。訂正可能であれば、ステップ209でエラーを
訂正した後、前述のステップ204に進んで、訂正後の
ヘッダを用いてエントリを作成する。訂正不能エラーの
場合は、図5のシーケンスで訂正不能エラーが検出され
たときのステップ110及び111と同様のステップ2
10及び211を実行した後、ステップ204に進む。
このとき作成されるエントリは消去されたブロックのも
のであるから、前述ようにOWは0にセットされる。
【0034】最後の、すなわちn番目のブロックのため
の処理が終ると、ステップ202〜207のループから
ステップ208に出る。ステップ208では、作成した
ばかりのメモリ管理表をアクセスすることにより、ブロ
ックIDが同じでRCが異なっているブロックを探す。
ステップ212でそのようなブロックが見つかった場
合、それは図5のステップ108で行われるはずであっ
た古いブロックの消去がパワーオフのために完了してい
ないことを示す。従ってステップ213に進んで、RC
が小さい方のブロックを消去し、そのECを1だけ増分
して消去したブロックに書込み、メモリ管理表の対応す
るエントリにおいてECを更新すると共にOWを0にセ
ットする。
【0035】ステップ212でブロックが見つからなか
った場合、又はステップ213が終了すると、制御装置
30は図6のシーケンスから出て、CPU10からのコ
マンドを待つ。前にも述べたように、この待機中に図5
のステップ106を実行してもよい。
【0036】上述の図5及び図6のシーケンスでは説明
しなかったが、よく知られているように、ブロックの書
込み及び消去後にはいわゆるベリファイが行われ、その
結果ブロックが使用不可と判断されることがある。勿
論、そのようなブロックがあれば、メモリ管理表のエン
トリを作成する必要はない。また、既に作成済みのエン
トリに対応するブロックが使用不可と判断された場合
は、そのエントリを無効にしておけばよい。エントリの
無効化は、例えばRBAを無効な値に設定しておいた
り、有効無効を示すビットを設けてそれを無効状態にセ
ットすることにより達成できる。
【0037】フラッシュ・メモリを構成するブロック
(セクタ)の数、従ってメモリ管理表のエントリの数が
多くなって、読取り又は書込み時にメモリ管理表をサー
チするのに時間がかかる場合は、RBAの構成要素であ
るヘッド又はシリンダを単位としてメモリ管理表を分割
すれば、サーチ時間を短縮できる。その場合、ブロック
の消去/書込み回数の平均化は分割した単位で、例えば
シリンダ別に行われることになり、従ってブロックの消
去/書込み回数に片寄りが生じる可能性がある。しか
し、実際にそのような片寄りが生じた場合には、消去/
書込み回数の多くなったシリンダの使用ブロックを、消
去/書込み回数の少ないシリンダの使用ブロック又は予
備ブロックと交換するようにすれば、フラッシュ・メモ
リ全体での平均化を図ることができる。
【0038】これまでの説明はセクタ消去型のフラッシ
ュ・メモリを仮定していたが、複数のセクタを含むクラ
スタが一括消去されるクラスタ消去型のフラッシュ・メ
モリにも本発明を適用できる。その場合、制御装置30
の動作は、図5のステップ108及び110並びに図6
のステップ210及び213でブロック消去が行われな
いことを除くと、基本的に図5及び図6と同じである
が、どのクラスタをいつ消去するかを決めるステップが
必要になる。これは、例えば各クラスタにおいて消去す
べきであると決定されたブロックの数をカウントし、そ
れが所定の閾値に達したクラスタを消去するというステ
ップでもよい。但しこのステップをとるときは、クラス
タを消去する前に、その中に有効なブロックがもし残っ
ていれば、その内容を他のクラスタの書込み可能なブロ
ック位置に移す必要がある。この有効ブロックの移動は
実質的に書込みコマンドの実行と同じであるから、制御
装置30は、有効ブロックの内容をRAM32へ読み出
した後、図5のステップ106及び107と同様のステ
ップを実行することにより、有効ブロックの内容をフラ
ッシュ・メモリ34に書き戻す。有効ブロックの移動及
びクラスタの消去は、CPU10からのコマンドがない
ときに実行される。チップ消去型の場合も同様である。
【0039】
【発明の効果】以上のように、本発明に従えば、フラッ
シュ・メモリの消去及び書込みが特定のブロックに片寄
るのを防止することができ、更に消去又は書込み中に異
常パワーオフがあっても、その影響を最小限に押えるこ
とができる。
【図面の簡単な説明】
【図1】本発明に従うフラッシュ・メモリを半導体ディ
スク装置として使用するコンピュータ・システムの一例
を示すブロック図。
【図2】半導体ディスク装置の概略構成を示すブロック
図。
【図3】フラッシュ・メモリの各ブロック(セクタ)の
構成を示す図。
【図4】メモリ管理表の構成を示す図。
【図5】CPU10からコマンドを受け取ったときの制
御装置30の動作を示すフローチャート。
【図6】パワーオン時にメモリ管理表を作成するときの
制御装置30の動作を示すフローチャート。
【符号の説明】
10 CPU 20 半導体ディスク装置(SSF) 30 制御装置 32 ランダム・アクセス・メモリ(RAM) 34 フラッシュ・メモリ 35 メモリ管理表

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】プロセッサがアクセス可能な複数のブロッ
    クを含む一括消去型不揮発性メモリであって、 書込み時に前記プロセッサが指定したアドレスを表すブ
    ロックID、該ブロックIDに対して前記プロセッサが
    何回書込みを行ったかを示す書換えコード及び当該ブロ
    ックの消去回数を示す消去カウントを含む制御情報をブ
    ロック対応に記憶しておき、 前記プロセッサが所与のアドレスを指定して書込みを要
    求したときは、前記消去カウントが最小の書込み可能な
    ブロックに対して書込みを行うと共に、前記所与のアド
    レスを表すブロックIDを前記書込み可能なブロックの
    制御情報に含め且つ該ブロックIDと同じブロックID
    を持った他のブロックの書換えコードを更新して前記書
    込み可能なブロックの制御情報とし、前記他のブロック
    を消去してその消去カウントを更新するようにしたこと
    を特徴とする、一括消去型不揮発性メモリ。
  2. 【請求項2】前記書込み可能なブロックの制御情報に含
    まれる書換えコードはリセットされており、前記他のブ
    ロックがなければ、該書換えコードを最初の値に設定す
    る、請求項1に記載の一括消去型不揮発性メモリ。
  3. 【請求項3】前記書換えコード及び前記消去カウントの
    更新は、1だけ増分することによって行われる、請求項
    2に記載の一括消去型不揮発性メモリ。
  4. 【請求項4】前記複数のブロックはそれぞれヘッダ部及
    びデータ部からなり、前記制御情報を該ヘッダ部に記憶
    する、請求項1に記載の一括消去型不揮発性メモリ。
  5. 【請求項5】ブロックを消去したときは、そのヘッダ部
    に含まれる消去カウントを更新して該ブロックに書き戻
    す、請求項4に記載の一括消去型不揮発性メモリ。
  6. 【請求項6】プロセッサからの相対ブロック・アドレス
    によってアクセスされる半導体ディスク装置であって、 前記プロセッサに接続されたコントローラと、 前記コントローラに接続され、前記プロセッサがアクセ
    ス可能な複数のブロックを含む一括消去型不揮発性メモ
    リと、 前記コントローラに接続されたランダム・アクセス・メ
    モリとを備え、 前記一括消去型不揮発性メモリの各ブロックはヘッダ部
    及びデータ部からなり、該ヘッダ部は、当該ブロックへ
    の書込み時に前記プロセッサが指定した相対ブロック・
    アドレスを表すブロックID、該ブロックIDに対して
    前記プロセッサが何回書込みを行ったかを示す書換えコ
    ード及び当該ブロックの消去回数を示す消去カウントを
    含み、 前記コントローラは、前記プロセッサが所与の相対ブロ
    ック・アドレスを指定して書込みを要求したときに、前
    記消去カウントが最小の書込可能なブロックのデータ部
    に前記プロセッサからのデータを書込むと共に、そのヘ
    ッダ部に、前記所与の相対ブロック・アドレスによって
    表されるブロックIDと、該ブロックIDと同じブロッ
    クIDを持った他のブロックの書換えコードを更新した
    値とを書込み、前記他のブロックを消去してそのヘッダ
    部の消去カウントを更新することを特徴とする半導体デ
    ィスク装置。
  7. 【請求項7】前記書込み可能なブロックの書換えコード
    はリセットされており、前記他のブロックがなければ、
    該書換えコードを最初の値に設定する、請求項6に記載
    の半導体ディスク装置。
  8. 【請求項8】前記コントローラは、動作に先立って、前
    記一括消去型不揮発性メモリの各ブロックからヘッダ部
    の内容を順次に前記ランダム・アクセス・メモリに読み
    出して、各ブロックに対応するエントリを有するメモリ
    管理表を作成する、請求項7に記載の半導体ディスク装
    置。
  9. 【請求項9】前記メモリ管理表の各エントリは、対応す
    るブロックのヘッダ部の内容の他に、該対応するブロッ
    クの物理アドレスと、該対応するブロックが書込み可能
    かどうかを示すフラグとを含む、請求項8に記載の半導
    体ディスク装置。
  10. 【請求項10】前記コントローラは、前記メモリ管理表
    を作成したとき、ブロックIDが同じで且つ書換えコー
    ドが異なる2つのブロックがあれば、書換えコードが小
    さい方のブロックを消去してその消去カウントを更新す
    ると共に、前記メモリ管理表における対応するエントリ
    中のフラグを書込み可能状態にセットする、請求項9に
    記載の半導体ディスク装置。
  11. 【請求項11】前記コントローラは、前記プロセッサか
    らのコマンドに応答して前記メモリ管理表をアクセス
    し、読取りコマンドの場合は、該読取りコマンドの相対
    ブロック・アドレスを表すブロックIDを含むエントリ
    中の物理アドレスを用いて前記一括消去型不揮発性メモ
    リの読取りを行い、書込みコマンドの場合は、前記フラ
    グが書込み可能状態にセットされていて最小の消去カウ
    ントを含むエントリ中の物理アドレスを用いて前記一括
    消去型不揮発性メモリの書込みを行う、請求項10に記
    載の半導体ディスク装置。
  12. 【請求項12】前記コントローラは、前記メモリ管理表
    を作成するとき、読み取ったヘッダ部の書換えコードが
    消去によりリセットされていると、対応するエントリ中
    のフラグを書込み可能状態にセットし、さもなければ書
    込み不可状態にセットする、請求項11に記載の半導体
    ディスク装置。
JP25238692A 1992-09-22 1992-09-22 一括消去型不揮発性メモリ Expired - Lifetime JPH0750558B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP25238692A JPH0750558B2 (ja) 1992-09-22 1992-09-22 一括消去型不揮発性メモリ
EP93307137A EP0589597A3 (en) 1992-09-22 1993-09-09 Non-volatile Flash memory.
US08/125,058 US5406529A (en) 1992-09-22 1993-09-21 Flash non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25238692A JPH0750558B2 (ja) 1992-09-22 1992-09-22 一括消去型不揮発性メモリ

Publications (2)

Publication Number Publication Date
JPH06111588A JPH06111588A (ja) 1994-04-22
JPH0750558B2 true JPH0750558B2 (ja) 1995-05-31

Family

ID=17236604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25238692A Expired - Lifetime JPH0750558B2 (ja) 1992-09-22 1992-09-22 一括消去型不揮発性メモリ

Country Status (3)

Country Link
US (1) US5406529A (ja)
EP (1) EP0589597A3 (ja)
JP (1) JPH0750558B2 (ja)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
GB2283342B (en) * 1993-10-26 1998-08-12 Intel Corp Programmable code store circuitry for a nonvolatile semiconductor memory device
US5561632A (en) * 1994-01-26 1996-10-01 Sony Corporation Nonvolatile semiconductor flash memory
JPH07336483A (ja) * 1994-06-03 1995-12-22 Canon Inc ファクシミリ装置およびメモリ管理方式
JPH08115597A (ja) * 1994-10-17 1996-05-07 Mitsubishi Electric Corp 半導体ディスク装置
US5606532A (en) * 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5672524A (en) * 1995-08-01 1997-09-30 Advanced Micro Devices, Inc. Three-dimensional complementary field effect transistor process
US5945705A (en) * 1995-08-01 1999-08-31 Advanced Micro Devices, Inc. Three-dimensional non-volatile memory
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
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
EP0862762B1 (en) * 1996-08-16 2002-10-09 Tokyo Electron Device Limited Semiconductor memory device having error detection and correction
EP0834812A1 (en) 1996-09-30 1998-04-08 Cummins Engine Company, Inc. A method for accessing flash memory and an automotive electronic control system
US6292868B1 (en) * 1996-10-15 2001-09-18 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP3734620B2 (ja) * 1998-06-24 2006-01-11 沖電気工業株式会社 半導体ディスク装置
US6564307B1 (en) * 1999-08-18 2003-05-13 International Business Machines Corporation Method, system, and program for logically erasing data
JP3937214B2 (ja) * 1999-09-17 2007-06-27 株式会社ルネサステクノロジ エラー訂正回数を記録する記憶装置
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6571326B2 (en) 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7296213B2 (en) * 2002-12-11 2007-11-13 Nvidia Corporation Error correction cache for flash memory
US6944063B2 (en) 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
KR100526178B1 (ko) 2003-03-31 2005-11-03 삼성전자주식회사 플래시 메모리 액세스 장치 및 방법
US7032087B1 (en) 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
WO2005111812A1 (ja) * 2004-05-19 2005-11-24 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置のためのエラー訂正方法
DE102004033077B4 (de) * 2004-07-08 2009-10-15 Robert Bosch Gmbh Verfahren zur Speicherung digitaler Rundfunkdaten und Rundfunkempfänger
US7493454B2 (en) * 2004-10-29 2009-02-17 International Business Machines Corporation Method for achieving reliable worm storage using WMRM storage
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
US7487178B2 (en) * 2005-10-05 2009-02-03 International Business Machines Corporation System and method for providing an object to support data structures in worm storage
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP5103668B2 (ja) * 2006-11-30 2012-12-19 株式会社メガチップス 半導体メモリおよび情報処理システム
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
JP5134255B2 (ja) * 2007-01-30 2013-01-30 富士通株式会社 データ記録システム
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
DE102007023408A1 (de) * 2007-05-18 2008-11-20 Mobotix Ag Verfahren zur Speicherverwaltung
US20090046512A1 (en) * 2007-08-17 2009-02-19 Munif Farhan Halloush Reliability System for Use with Non-Volatile Memory Devices
US8181089B1 (en) * 2007-08-24 2012-05-15 Datadirect Networks, Inc. Method for auto-correction of errors in a solid-state memory system
KR20090042039A (ko) * 2007-10-25 2009-04-29 삼성전자주식회사 불휘발성 메모리 장치의 데이터 관리 방법
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
EP2215636B1 (de) 2007-11-26 2014-07-23 Hyperstone GmbH VERFAHREN ZUR GLEICHMÄßIGEN NUTZUNG MEHRERER FLASHSPEICHERCHIPS
JP4461170B2 (ja) 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
JP2008251154A (ja) * 2008-04-11 2008-10-16 Renesas Technology Corp 不揮発性半導体記憶装置
KR101464255B1 (ko) * 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
KR20120125791A (ko) * 2011-05-09 2012-11-19 삼성전자주식회사 플래시 메모리 장치 및 이를 포함하는 메모리 시스템
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9064579B2 (en) 2012-07-16 2015-06-23 Kabushiki Kaisha Toshiba Semiconductor memory apparatus, data transmission device, and recording method
US9292428B2 (en) 2012-09-05 2016-03-22 Kabushiki Kaisha Toshiba Memory system
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US11199983B2 (en) 2019-08-12 2021-12-14 Western Digital Technologies, Inc. Apparatus for obsolete mapping counting in NAND-based storage devices
CN118645144B (zh) * 2024-08-16 2024-12-20 合肥康芯威存储技术有限公司 一种闪存的测试系统及测试方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638430A (en) * 1983-07-15 1987-01-20 United Technologies Corporation EAROM and EEPROM data storage management
JPH07109717B2 (ja) * 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) * 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
EP0675502B1 (en) * 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
FR2647941B1 (fr) * 1989-06-06 1991-08-30 Gemplus Card Int Procede d'effacement de points memoire, dispositif destine a sa mise en oeuvre, et son utilisation dans un dispositif a memoire non alimente
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JP3251968B2 (ja) * 1992-01-20 2002-01-28 富士通株式会社 半導体記憶装置

Also Published As

Publication number Publication date
JPH06111588A (ja) 1994-04-22
EP0589597A3 (en) 1995-08-09
US5406529A (en) 1995-04-11
EP0589597A2 (en) 1994-03-30

Similar Documents

Publication Publication Date Title
JPH0750558B2 (ja) 一括消去型不揮発性メモリ
US12443352B2 (en) Memory system storing management information and method of controlling same
US10552311B2 (en) Recovery for non-volatile memory after power loss
JP3078946B2 (ja) 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US5530673A (en) Flash memory control method and information processing system therewith
US6078520A (en) Flash memory control method and information processing system therewith
US8037232B2 (en) Data protection method for power failure and controller using the same
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
US8176236B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
JP2856621B2 (ja) 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JP2582487B2 (ja) 半導体メモリを用いた外部記憶システム及びその制御方法
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US20090113112A1 (en) Data storage device, memory system, and computing system using nonvolatile memory device
US20080168252A1 (en) Memory Controller, Nonvolatile Storage Device, Nonvolatile Storage System, and Memory Control Method
US7193923B2 (en) Semiconductor memory device and access method and memory control system for same
JP3472008B2 (ja) フラッシュメモリ管理方法
US8200892B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
TWI805445B (zh) 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器
US20080104361A1 (en) Storage Device, Memory Managing Apparatus, Memory Managing Method, and Program
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN117785071B (zh) 一种存储器及其性能优化方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP2013174976A (ja) メモリシステムおよび制御プログラムの更新方法
JP2582487C (ja)