JP3485938B2 - 不揮発性半導体メモリ装置 - Google Patents

不揮発性半導体メモリ装置

Info

Publication number
JP3485938B2
JP3485938B2 JP07794092A JP7794092A JP3485938B2 JP 3485938 B2 JP3485938 B2 JP 3485938B2 JP 07794092 A JP07794092 A JP 07794092A JP 7794092 A JP7794092 A JP 7794092A JP 3485938 B2 JP3485938 B2 JP 3485938B2
Authority
JP
Japan
Prior art keywords
block
data
erased
unused
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP07794092A
Other languages
English (en)
Other versions
JPH05282889A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP07794092A priority Critical patent/JP3485938B2/ja
Priority to US08/038,837 priority patent/US5611067A/en
Priority to KR1019930005053A priority patent/KR960004738B1/ko
Publication of JPH05282889A publication Critical patent/JPH05282889A/ja
Priority to US08/948,089 priority patent/US5890188A/en
Application granted granted Critical
Publication of JP3485938B2 publication Critical patent/JP3485938B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電気的に書換可能な不
揮発性半導体メモリ素子(EEPROM)の中のNAN
D型EEPROMを用いた不揮発性半導体メモリ装置に
関する。
【0002】
【従来の技術】一般にコンピュータシステムにおける書
換可能な記憶装置(記憶素子)は、その容量に物理的な
限界があるため、不要になった情報の上に新しい情報を
重ね書きして使用される。書換可能な記憶装置(記憶素
子)は、その重ね書きの方法で大別すると2通りに分け
ることが出来る。その一つは、ランダムアクセスメモリ
(RAM)やハードディスク、フロッピディスク或いは
磁気テープのように、古い情報の上に新しい情報をその
まま上書き出来るものである。他の一つは、ある種の光
記憶装置やEEPROMのように重ね書きされる古い情
報を一度消去してからでないと新しい情報が書き込めな
いものである。
【0003】NAND型EEPROMの消去方法は2通
りあり、その一つは、例えばインテル社製フラッシュE
EPROMのようにチップ全体の情報を一度に消去する
方法である。他の一つは、チップの一部分の情報のみを
選択的に消去する方法である。
【0004】NAND型EEPROMでは、連続してデ
ータを読み出したり、データを書き込んだりするための
構造的に連続する複数の記憶セルをページという単位で
呼んでいる。例えば、4MビットEEPROMでは、1
ページは、4096ビットの記憶セルで構成されてい
る。また、構造的に連続する複数ページはブロックとい
う単位で呼ばれる。例えば、4MビットEEPROMで
は、8ページ(4kバイト)分の記憶セルで1ブロック
が構成されている。NAND型EEPROMで、チップ
の一部分の情報のみを選択的に消去する場合の単位は、
このブロックと一致している。
【0005】NAND型EEPROMは、上記のように
データの一部分のみを消去できるので、磁気ディスク装
置におけるように、1セクタ分のデータのみを書き換え
るといった操作が比較的容易におこなえる不揮発性記憶
素子である。そこで、機械的強度に関する信頼性、低消
費電力、読み出し時間の高速性といった半導体メモリの
特徴を生かして、従来の磁気ディスク装置を置き換える
ような用途に使われだした。
【0006】ところが、EEPROMは、データ読み出
しのためのアクセス時間が高速である割に、データ書き
込みには時間がかかる。例えば、4MビットNAND型
EEPROMの場合、1ブロックのデータ読み出しに要
する時間が約490μsocであるのに対し、1ブロッ
クを消去して書き換えるには、消去に約10msec、
データ書き込みに約4msecの時間を要する。
【0007】さらに、現状の技術ではデータの書換回数
に制限があり、104 回ないし105 回程度の書換で寿
命となる。よって、同一のブロックに対してデータの重
ね書きが集中するとチップ自体の寿命を縮めてしまうと
いう問題があった。
【0008】
【発明が解決しようとする課題】以上のようにNAND
型EEPROMを用いた従来の不揮発性半導体メモリ装
置は、データの読み出し時間に比べて書き込みに時間が
かかり、しかも、書換回数に制限があるため同一ブロッ
クに重ね書きが集中すると寿命を縮めるという問題があ
った。
【0009】本発明は、このような問題を解決し、書き
込みを高速に行うことができるとともに長寿命化を図る
ことのできる不揮発性半導体メモリ装置を提供すること
を目的とする。
【0010】
【課題を解決するための手段】本発明は上記課題を解決
するために、本発明の第1の特徴は、(イ)複数のブロ
ックに分割されたメモリセルアレイで構成されたメモリ
手段と、(ロ)複数のブロックのうち、未使用のブロッ
クを連鎖状に管理する管理手段と、(ハ)未使用のブロ
ックのうち、消去済みのブロックと未消去のブロックを
識別する手段と、(ニ)データの書き換えの際には消去
動作を実行することなく前記未使用のブロックの先頭
前記消去済みのブロックにデータの書き込みを行い、書
き込みを行うデータの内容が既に記録された旧データを
変更したものであり当該旧データが不要である場合には
当該旧データが記録されていたブロックを未使用のブロ
ックとして管理手段に通知し、所要の場合には旧データ
の中の必要とされる部分のデータを新たなデータを書き
込む消去済みのブロックにコピーし、書き込みに伴い不
要となったデータのブロックを未使用のブロックの最後
尾に付け加える制御手段と、(ホ)未消去のブロックを
順次消去する消去手段とを備えることを特徴とする不揮
発性半導体メモリ装置であることを要旨とする。また、
本発明の第2の特徴は、(イ)複数のそれぞれが最小消
去単位であり且つ複数のページを有するブロックに分割
されたメモリセルアレイを有するメモリ手段と、(ロ)
複数のブロックのうち、物理的に消去された消去済みの
ブロックと、論理的に消去され且つ物理的に消去されて
いない未消去のブロックとを含む未使用のブロックを
鎖状に管理する管理手段と、(ハ)未使用のブロックの
うち、消去済みのブロックと未消去のブロックとを識別
する手段と、(ニ)データの書き込みの際には消去動作
を実行することなく前記未使用のブロックの先頭の前記
消去済みのブロックに新たなデータの書き込み、書き込
まれる新たなデータが書き込まれる消去済みのブロック
と異なるブロックに記録されていた旧データを変更する
ものである場合には旧データを含む異なるブロックに記
録されていたデータのすべてが不要な時には異なるブロ
ックを未使用のブロックとし、異なるブロックに記録さ
れていたデータの一部が必要な場合には当該データの一
部を書き込まれる消去済みのブロックにコピーし、旧デ
ータのブロックが消去手段により消去される前に書き込
みを行い、書き込みに伴い不要となったデータのブロッ
クを未使用のブロックの最後尾に付け加える制御手段
と、(ホ)未消去のブロックに記録されたデータを消去
する消去手段とを備えることを特徴とする不揮発性半導
体メモリ装置であることを要旨とする。
【0011】上記構成において、新たなデータの書き込
みは、可能な限り予め消去された未使用のブロック領域
に対して行われる。これにより不揮発性半導体メモリ装
置において本来書き込みに先だって行う必要があり且つ
アクセス時間の増大を余儀なくさせる消去動作が省略さ
れて高速書き込みが可能になる。また、同一データを更
新/変更する場合でも、未消去のブロックは連鎖の最後
尾に付け加えられ、物理的な書き込み位置は書き込みの
都度変わるため、特定のブロックに対する書き込み回数
の増加が回避されて長寿命化を図ることができる。
【0012】
【実施例】以下、本発明の実施例を図面を参照して説明
する。
【0013】図1は、不揮発性半導体メモリ装置の全体
構成を示すブロック図である。同図において1はメモリ
手段としてのNAND型EEPROMモジュールであ
り、複数個のページからなるブロックに分割されたメモ
リセルアレイで構成されている。EEPROMモジュー
ル1はデータ線で結ばれたホストインターフェイス2を
介して図示省略のホストシステムに接続されている。デ
ータ線上には、マルチプレクサ9及びデータバッファ1
0が設けられている。また、ホストインターフェイス2
内には、データレジスタ3、アドレスレジスタ4、カウ
ントレジスタ5、コマンドレジスタ6、ステータレジス
タ7及びエラーレジスタ8が設けられている。11はコ
ントロールロジック、12はECC(誤差修正コード)
ジェネレータ/チェッカ、13はアドレスジェネレー
タ、14は消去手段及び制御手段としての機能を有する
CPU、15は作業用RAM、16は制御プログラムR
OMである。制御プログラムROM16には、データ書
き込み等のための一連の制御プログラムが格納されるよ
うになっている。
【0014】本実施例のメモリ装置は、不揮発性メモリ
領域であるEEPROMモジュール1に記録されるデー
タに関し、その位置を割付け、管理するために管理テー
ブルを使用する。このテーブルは、他のユーザデータと
ともにEEPROMモジュール1に記録されるが、この
装置が起動するときに自動的に作業用RAM15に読み
込まれる。また、このテーブルは、EEPROMモジュ
ール1への書き込みが行われる度にその内容が更新され
るが、この更新されたテーブルは、その都度、或いは装
置の使用が終了する時点でEEPROMモジュール1に
書き戻されることとする。
【0015】このテーブルの一つは、図3にその構成を
示す未使用ブロックを管理するためのテーブルである。
他の一つは、図4に示すホストシステムが指定してくる
アドレスとメモリモジュール上の物理的なアドレスとの
対照テーブルである。
【0016】まず図3の未使用ブロックを管理するため
のテーブルの一例を説明する。テーブルの1番目210
は、未使用のデータブロックを連鎖状に管理するための
もので、チェインの先頭のブロックへのポインタであ
る。テーブルの2番目211は、同じ目的のポインタで
あるがチェインの最後尾へのポインタである。テーブル
の3番目からn+2番目は、NAND型EEPROMモ
ジュール1の物理的なブロックの1番目からn番目に対
応している。これらの内容は、212に例示するよう
に、さらに、次の未使用ブロックへのポインタ213と
消去フラグ214とから構成されている。テーブルのm
番目218の中のポインタのようにその内容が”−1”
であった場合にはチェインの最後尾であることを示すも
のとする。よってこの例では、最後尾ポインタ211は
テーブルのm番目218をポイントするため内容はmに
セットされる。消去フラグ214は、対応するブロック
が消去済みであるか否かを示すもので、ここでは”0”
の場合は消去済み、”1”の場合は未消去を表すものと
する。
【0017】具体的な例を用いてデータが記録される際
の動作の概要を述べる。
【0018】いま、未使用ブロックの連鎖が図2(a)
のようであると仮定する。データを記録するには、ま
ず、先頭ポインタ101の内容を調べる。図2(a)で
は53番目のテーブルをポイントしているから、書き込
み可能なNAND型EEPROMモジュール1上の物理
的なブロックアドレスはオフセット2を減じた51とな
る。ブロック51に書き込みを行なったら、先頭ポイン
タ101の値を、102のポイント先33にセットしな
おしてブロック51に対応するテーブル102をこのチ
ェインから外す。結果を図2(b)に示す。
【0019】この書き込みに伴なって、既存のブロック
のデータが不要になった場合には、さらに、図2(c)
に示すようにテーブルが更新されるような操作を行う。
不要になったデータを記録していたのがブロック45で
あったとすると、最後尾ポインタ105がポイントして
いるテーブルの151番目104の中のポインタと最後
尾ポインタ105の値をブロック45に対応するテーブ
ル番号47にセットしなおす。テーブルの47番目10
7の中のポインタは”−1”に、消去フラグは”−1”
に設定される。
【0020】未使用のブロックのチェインの最後尾に付
け加えられた直後のブロックは消去されていないので、
読み出し/書き込みアクセスが途絶えたときにチェイン
を順次手繰りながら、消去を行い、そのブロックに対応
するテーブルの消去フラグを”0”にセットする。
【0021】次いで、図4の対照テーブルを説明する。
テーブルの長さnは、NAND型EEPROMモジュー
ル1のブロック以下とする。例えば、以後簡単のために
ここではEEPROMモジュール1が4MビットEEP
ROM1個で構成されていると仮定すると、1ブロック
の容量は4kバイトであるから、ブロックの総数は12
8個となり、対照テーブルの項目数nも128以下であ
る。
【0022】この装置では、EEPROMモジュール1
のブロックの容量に相当するデータ量を単位として、E
EPROMモジュール1上の物理的位置の割り付けを行
う。即ち、テーブルの1項目めは、ホストシステムから
指定される最初の4kバイト分のデータが実際に記録さ
れる物理的位置を示している。図4の例では、203
は、テーブルの3番目の項目であるから、ホストシステ
ムから指定してくるアドレス(以後論理アドレスと記
載)の8kバイト目からの4kバイトが、実際にはEE
PROMモジュール1の101番目のブロックに割り当
てられていることを示している。また、201,202
のように”−1”の書かれたテーブルは、その位置に対
応する論理アドレスへの書き込みがまだ行われていない
ため、物理的な領域の割り付けが行われていないことを
示す。
【0023】次に、この装置の動作を説明する。
【0024】ホストシステムは、図1のホストインター
フェイス2内のアドレスレジスタ4にアクセス開始アド
レスを、カウントレジスタ5にアクセスしたいデータの
セクタ長をセットし、最後にコマンドレジスタ6に読み
出し/書き込み等の命令をセットする。ホストインター
フェイス2のコマンドレジスタ6にアクセス命令が書き
込まれると、コントローラ内のCPU14は、コマンド
レジスタ6内の命令を読み込み、制御プログラムROM
16に納められたコマンド実行のための一連の制御プロ
グラムを実行する。以下の説明では、簡単のためホスト
システムの指定してくるセクタ長とEEPROMモジュ
ール1におけるページ長は一致しているものと仮定す
る。
【0025】図5は、EEPROMモジュール1からデ
ータを読み出す手順を示すフローチャートである。ま
ず、図1のCPU14は、ホストインターフェイス2に
セットされた開始アドレスと管理テーブル内のアドレス
変換テーブルを参照して読み出しを行うべきEEPRO
Mモジュール1上の物理的なアドレスを決定する(ステ
ップ301)。次に、EEPROMモジュール1からデ
ータバッファ10にデータを読み出す(ステップ30
2)。次いで、後に詳述するようなエラー処理及びデー
タバッファ10からホストシステムへのデータ転送等を
実行する(ステップ303〜305)。
【0026】図6は、EEPROMモジュールからデー
タバッファにデータを読み出す手順を示すフローチャー
トである。CPU14は、EEPROMモジュール1を
マルチプレクサ9を通してアクセスし読み出しモードに
設定し、データバッファ10を読み出しモードに設定す
る(ステップ401,402)。アドレスジェネレータ
13には、読み出しを行うべきEEPROMモジュール
1の物理的なアドレスを設定する(ステップ403)。
そして、データバッファ10に、読み出したデータを蓄
えるべき領域を決定してその先頭番地をデータバッファ
10への書き込みアドレスとして設定する(ステップ4
04)。その後、コントロールロジック11に対してデ
ータ読み出しのための定められたシーケンスを実行する
ように指令を送る。
【0027】コントロールロジック11は、マルチプレ
クサ9をEEPROMモジュール1からの読み出しデー
タがデータバッファ10に流れるように設定し、アドレ
スジェネレータ13の内容をインクリメントしながら、
1セクタ分のデータを読み出す(ステップ405)。ま
た、EECジェネレータ/チェッカ12をこれらのデー
タ及びこれに付随して読み出されるECCコードを使っ
て誤りを検出するように制御する。1セクタ分のデータ
が読み出されると、CPU14は、ECCジェネレータ
/チェッカ12をチェックしデータの誤りを検査する
(ステップ406)。誤りが検出されなかった場合、又
は検出されても訂正が行えた場合は、データバッファ1
0からホストシステムにデータを転送する。もし、訂正
不可能な誤りが検出された場合には、ホストシステムに
対するデータ転送は行わずに、CPU14は、ホストイ
ンターフェイス2内のステータスレジスタ7にエラーが
起きたことを示すコードを、エラーレジスタ8にエラー
の内容を示すコードを設定し、ホストシステムに命令の
実行が異常終了したことを通知して処理を終了する(ス
テップ407〜410)。
【0028】図7は、データバッファからホストシステ
ムにデータを転送する手順を示すフローチャートであ
る。CPU14は、データバッファ10に読み出したデ
ータが蓄えられた領域の先頭番地を同バッファからの読
み出しアドレスとして設定し(ステップ501,50
2)、コントロールロジック11に対して、ホストシス
テムに1セクタ分のデータの転送を行うように指令す
る。コントロールロジック11は、データバッファ10
とホストインターフェイス2を制御してホストシステム
に対して1セクタ分のデータを転送し(ステップ50
3)、これが終了するとアドレスレジスタ4を1セクタ
分進め、カウントレジスタ5から1を減じ、CPU14
に転送が終了したことを通知する。ホストシステムに転
送すべきデータが残っている限り、CPU14はこの制
御を繰り返す。読み出しデータが全て転送されたら、C
PU14は、ホストインターフェイス2内のステータス
レジスタ7にエラーの無かったことを示すコードを設定
し、ホストシステムに命令の実行が終了したことを通知
して処理を終了する。
【0029】図8及び図9は、EEPROMモジュール
1へデータを書き込む手順を示すフローチャートであ
る。CPU14はホストインターフェイス2にセットさ
れた開始アドレスと管理テーブル内のアドレス変換テー
ブルを参照して、ホストシステムが書き込みを行おうと
しているアドレスに割り振られているEEPROMモジ
ュール1上のブロックを割り出す(ステップ601)。
ホストシステムの指示するアドレスに対応するEEPR
OMモジュール1上のブロックが既に割り振られてい
て、かつ、ホストシステムからの要求がそのブロックの
データの全てを書き換えるものでない場合は、ブロック
内の書き換えられないデータをデータバッファ10に読
み込む(ステップ602〜604)。EEPROMモジ
ュール1からデータバッファ10にデータを読み出す手
順は、先に図6のフローチャートを用いて説明した。ブ
ロック内の重ね書きされない部分のデータが全てデータ
バッファ10に読み込まれるまで図6の処理が繰り返さ
れる。次いで、後に詳述するようなホストシステムから
データバッファ10への書き込みデータの転送、データ
バッファ10からEEPROMモジュール1へのデータ
の書き込み処理及びエラー処理等を実行する(ステップ
605〜611)。
【0030】図10は、ホストシステムからデータバッ
ファに書き込みデータを転送する手順を示している。C
PU14は、データバッファ10を書き込みモードに設
定し(ステップ701)、ホストシステムから転送され
てくるデータが蓄えられるデータバッファ10上のアド
レスを同バッファへの書き込みアドレスとして設定する
(ステップ702)。その後、コントロールロジック1
1に対して、ホストシステムから1セクタ分のデータの
転送を行うように指令する。コントロールロジック11
は、データバッファ10とホストインターフェイス2を
制御してホストシステムから1セクタ分のデータを受け
取り、これが終了するとCPU14に転送が終了したこ
とを通知する(ステップ703)。図10の処理は、ホ
ストシステムから転送すべきデータが残っていて、か
つ、データバッファ10にEEPROMモジュール1の
書き込みを行おうとしているブロックのためのデータが
不足している限り続けられる。ホストシステムからの転
送が終了したら、CPU14はホストインターフェイス
2にセットされた開始アドレスと未使用ブロックを管理
するテーブルを参照して、先に説明したように未使用ブ
ロックのチェインを手繰って、データバッファ10に蓄
えられた1ブロック分のデータが書き込まれるべきEE
PROMモジュール1上の未使用ブロックを決定し、E
EPROMモジュール1上に書き込みを行う。
【0031】図11は、データバッファ内のデータ1ペ
ージ分をEEPROMモジュールに書き込む手順を示し
たフローチャートである。CPU14は、EEPROM
モジュール1とデータバッファ10に必要ならば初期設
定を施した後(ステップ801,802)、書き込みを
行うページの先頭アドレスをアドレスジェネレータ13
に設定し(ステップ803)、データバッファ10に
は、書き込まれるデータの先頭アドレスを同バッファの
読み出しアドレスとして設定する(ステップ804)。
そして、コントロールロジック11に対してデータ書き
込みのための定められたシーケンスを実行するように指
令を送る。コントロールロジック11は、マルチプレク
サ9をデータバッファ10からの書き込みデータがEE
PROMモジュール1に流れるように設定し、アドレス
ジェネレータ13の内容をインクリメントしながらデー
タを書き込む(ステップ805)。また、ECCジェネ
レータ/チェッカ12をこれらのデータからECCコー
ドを生成するように制御し、データとともにこのコード
も記録する(ステップ806)。図11の処理は、書き
込みエラーが発生するか、1ブロック分のデータを書き
終えるかするまで続けられる(ステップ807)。デー
タの書き込みが正常に行えなかった場合はエラー処理を
行い、1ブロック分のデータが書き込まれるべきEEP
ROMモジュール1上のブロックを割付けなおして、再
度、書き込みを行なう。書き込みが正常に終了したら管
理テーブルの内容を更新する。
【0032】ホストシステムの要求するデータを全て記
録し終えるか、エラーからの回復が不可能で処理を中断
した場合は、CPU14は、ホストインターフェイス2
内のステータスレジスタ7に所定のコードを設定し、ホ
ストシステムに命令の実行が終了したことを通知する。
ホストインターフェイス2のコマンドレジスタ6にアク
セス命令が書き込まれない適当なタイミングに、コント
ローラ内のCPU14は、先に説明したように、未使用
ブロック管理テーブルのチェインを手繰りながら未消去
のブロックを順次消去してゆく。
【0033】なお、上記の実施例では、EEPROMモ
ジュールは、ホストインターフェイスを介して、ホスト
システムと並行して動作可能なコントローラにより制御
される形態を取っているが、ホストシステムのCPUに
より直接制御される形態を取ってもよい。その他、本発
明はその主旨を逸脱しない範囲で種々変形して用いるこ
とができる。
【0034】以上説明したように、本発明によれば、新
たなデータの書き込みは、可能な限り予め消去された未
使用のブロックに対して行うようにしたため、本来書き
込みに先だって行う必要があり且つアクセス時間の増大
を余儀なくさせる消去動作が省略されて書き込みを高速
に行うことができる。また、同一データを更新/変更す
る場合でも、未消去のブロックは連鎖の最後尾に付け加
えられ、物理的な書き込み位置は書き込みのたびごとに
変わるため、特定のブロックに対する書き込み回数の増
加が回避されて長寿命化を図ることができる。
【図面の簡単な説明】
【図1】本発明に係る不揮発性半導体メモリ装置の実施
例を示すブロック図である。
【図2】本実施例において未使用ブロックを管理するテ
ーブルの操作を説明するための図である。
【図3】本実施例における未使用ブロックを管理するテ
ーブルの操作を説明するための図である。
【図4】本実施例におけるアドレス変換用の対照テーブ
ルの構成を示す図である。
【図5】本実施例においてEEPROMモジュールから
データの読み出し処理を説明するためのフローチャート
である。
【図6】本実施例においてEEPROMモジュールから
データバッファへのデータの読み出し処理を説明するた
めのフローチャートである。
【図7】本実施例においてデータバッファからホストシ
ステムへの読み出しデータの転送処理を説明するための
フローチャートである。
【図8】本実施例においてEEPROMモジュールへの
データの書き込み処理を説明するためのフローチャート
である。
【図9】本実施例においてEEPROMモジュールへの
データの書き込み処理を説明するためのフローチャート
である。
【図10】本実施例においてホストシステムからデータ
バッファへの書き込みデータの転送処理を説明するため
のフローチャートである。
【図11】本実施例においてデータバッファ内のデータ
をEEPROMモジュールに書き込む処理を説明するた
めのフローチャートである。
【符号の説明】
1 EEPROMモジュール(メモリ手段) 14 未消去ブロックの消去処理、書き込み処理及びコ
ピー処理等を実行するCPU
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−27924(JP,A) 特開 平5−233426(JP,A) 特開 平4−137078(JP,A) 特開 昭62−283496(JP,A) (58)調査した分野(Int.Cl.7,DB名) G11C 16/02 G06F 12/00 597 G06F 12/02 510

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のブロックに分割されたメモリセル
    アレイで構成されたメモリ手段と、 前記複数のブロックのうち、未使用のブロックを連鎖状
    に管理する管理手段と、 前記未使用のブロックのうち、消去済みのブロックと未
    消去のブロックを識別する手段と、 データの書き換えの際には消去動作を実行することなく
    前記未使用のブロックの先頭の前記消去済みのブロック
    データの書き込みを行い、書き込みを行うデータの内
    容が既に記録された旧データを変更したものであり当該
    旧データが不要である場合には当該旧データが記録され
    ていたブロックを前記未使用のブロックとして前記管理
    手段に通知し、所要の場合には前記旧データの中の必要
    とされる部分のデータを新たなデータを書き込む前記消
    去済みのブロックにコピーし、書き込みに伴い不要とな
    ったデータのブロックを前記未使用のブロックの最後尾
    に付け加える制御手段と、 前記未消去のブロックを順次消去する消去手段 とを備え
    ることを特徴とする不揮発性半導体メモリ装置。
  2. 【請求項2】 複数のそれぞれが最小消去単位であり且
    つ複数のページを有するブロックに分割されたメモリセ
    ルアレイを有するメモリ手段と、 前記複数のブロックのうち、物理的に消去された消去済
    みのブロックと、論理的に消去され且つ物理的に消去さ
    れていない未消去のブロックとを含む未使用のブロック
    連鎖状に管理する管理手段と、 前記未使用のブロックのうち、前記消去済みのブロック
    と前記未消去のブロックとを識別する手段と、 データの書き込みの際には消去動作を実行することなく
    前記未使用のブロックの先頭の前記消去済みのブロック
    に新たなデータの書き込み、前記書き込まれる前記新た
    なデータが前記書き込まれる消去済みのブロックと異な
    るブロックに記録されていた旧データを変更するもので
    ある場合には前記旧データを含む前記異なるブロックに
    記録されていたデータのすべてが不要な時には前記異な
    るブロックを未使用のブロックとし、前記異なるブロッ
    クに記録されていた前記データの一部が必要な場合には
    当該データの一部を前記書き込まれる前記消去済みのブ
    ロックにコピーし、書き込みに伴い不要となったデータ
    のブロックを前記未使用のブロックの最後尾に付け加え
    制御手段と、前記未消去のブロックに記録されたデータを消去する消
    去手段 とを備えることを特徴とする不揮発性半導体メモ
    リ装置。
  3. 【請求項3】 前記消去手段は、前記未消去のブロック
    の前記旧データを消去した際、前記未消去のブロックの
    前記旧データが消去されていると前記管理手段に通知す
    ることを特徴とする請求項2に記載の不揮発性半導体メ
    モリ装置。
  4. 【請求項4】 前記旧データ又は前記新たなデータが蓄
    えられる領域を有するデータバッファと、 前記旧データ又は前記新たなデータの誤りを検出する誤
    り訂正手段とを更に備えることを特徴とする請求項2又
    は3に記載の不揮発性半導体メモリ装置。
  5. 【請求項5】 前記ブロックに対応する論理アドレスを
    物理アドレスに変換するためのアドレス変換テーブルを
    更に備えることを特徴とする請求項2〜4のいずれか1
    項に記載の不揮発性半導体メモリ装置。
  6. 【請求項6】 前記制御手段は、前記アドレス変換テー
    ブルを参照して前記論理アドレスに対応する前記ブロッ
    クが既に割り付けられているか否かを判断することを特
    徴とする請求項に記載の不揮発性半導体メモリ装置。
  7. 【請求項7】 前記制御手段は、前記ブロックの容量に
    相当するデータ量を単位として、前記メモリ手段上の物
    理的位置の割り付けを行うことを特徴とする請求項2〜
    6のいずれか1項に記載の不揮発性半導体メモリ装置。
  8. 【請求項8】 前記ブロックには、当該ブロックのサイ
    ズ分の連続した前記論理アドレスの前記データが格納さ
    れることを特徴とする請求項5〜7のいずれか1項に記
    載の不揮発性半導体メモリ装置。
JP07794092A 1992-03-31 1992-03-31 不揮発性半導体メモリ装置 Expired - Fee Related JP3485938B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP07794092A JP3485938B2 (ja) 1992-03-31 1992-03-31 不揮発性半導体メモリ装置
US08/038,837 US5611067A (en) 1992-03-31 1993-03-29 Nonvolatile semiconductor memory device having means for selective transfer of memory block contents and for chaining together unused memory blocks
KR1019930005053A KR960004738B1 (ko) 1992-03-31 1993-03-30 불휘발성 반도체 메모리 장치
US08/948,089 US5890188A (en) 1992-03-31 1997-10-09 Nonvolatile semiconductor memory device having means for selective transfer of memory block contents and for chaining together unused memory blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07794092A JP3485938B2 (ja) 1992-03-31 1992-03-31 不揮発性半導体メモリ装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2003032999A Division JP2003242788A (ja) 2003-02-10 2003-02-10 不揮発性半導体メモリ装置及びその制御方法
JP2003033000A Division JP2003263894A (ja) 2003-02-10 2003-02-10 不揮発性半導体メモリ装置の制御方法

Publications (2)

Publication Number Publication Date
JPH05282889A JPH05282889A (ja) 1993-10-29
JP3485938B2 true JP3485938B2 (ja) 2004-01-13

Family

ID=13648065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07794092A Expired - Fee Related JP3485938B2 (ja) 1992-03-31 1992-03-31 不揮発性半導体メモリ装置

Country Status (3)

Country Link
US (2) US5611067A (ja)
JP (1) JP3485938B2 (ja)
KR (1) KR960004738B1 (ja)

Families Citing this family (79)

* 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
JP2938732B2 (ja) 1993-11-10 1999-08-25 松下電送システム株式会社 メモリ管理装置とこれを用いたファクシミリ装置
JPH07153284A (ja) * 1993-11-29 1995-06-16 Nec Corp 不揮発性半導体記憶装置及びその制御方法
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
JP3539752B2 (ja) * 1994-03-02 2004-07-07 沖電気工業株式会社 半導体記憶装置とメモリ制御方法
JP3784844B2 (ja) * 1994-03-30 2006-06-14 沖電気工業株式会社 半導体記憶装置
JPH0896588A (ja) * 1994-09-28 1996-04-12 Nec Corp 半導体記憶装置
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
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
JP3615299B2 (ja) * 1996-03-29 2005-02-02 三洋電機株式会社 書換え可能romの記憶方法及び記憶装置
JPH09330273A (ja) * 1996-06-10 1997-12-22 Mitsubishi Electric Corp メモリカードおよびメモリカードにおける誤り訂正方法
JPH1069420A (ja) * 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US6275911B1 (en) * 1996-09-20 2001-08-14 Denso Corporation Memory writing device for an electronic device
JP3895816B2 (ja) * 1996-12-25 2007-03-22 株式会社東芝 不揮発性半導体記憶装置とその制御方法、メモリカード、及び記憶システム
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
EP0874368A3 (en) * 1997-04-25 2003-03-19 Sony Corporation Information recording apparatus and method, and information reproducing apparatus and method
JPH10302459A (ja) * 1997-04-28 1998-11-13 Mitsubishi Electric Corp 半導体記憶装置
JP3718578B2 (ja) * 1997-06-25 2005-11-24 ソニー株式会社 メモリ管理方法及びメモリ管理装置
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6477632B1 (en) 1997-12-05 2002-11-05 Tokyo Electron Device Limited Storage device and accessing method
JP3544859B2 (ja) * 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
JP3511916B2 (ja) * 1998-11-17 2004-03-29 松下電器産業株式会社 記録再生装置
JP2000173289A (ja) * 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
US6636941B1 (en) * 2000-01-18 2003-10-21 International Business Machines Corporation Enhanced stable disk storage
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
JP3573706B2 (ja) * 2000-11-15 2004-10-06 富士通株式会社 記憶装置の書き込み/消去方法
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP2003030993A (ja) 2001-07-17 2003-01-31 Toshiba Corp 半導体記憶装置
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
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
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
JP2003141888A (ja) * 2001-11-01 2003-05-16 Mitsubishi Electric Corp 不揮発性半導体記憶装置
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7418436B2 (en) * 2002-01-31 2008-08-26 Matsushita Electric Industrial Co., Ltd. Information processing apparatus, memory management apparatus, memory management method, and information processing method
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
CA2461446A1 (en) 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. Semiconductor memory apparatus and method for writing data into the flash memory device
JP4129381B2 (ja) * 2002-09-25 2008-08-06 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
KR100490603B1 (ko) * 2002-12-06 2005-05-27 (주) 라모스테크놀러지 플래시 메모리 동작 제어 방법 및 장치
US7154628B2 (en) * 2002-12-17 2006-12-26 Xerox Corporation Job secure overwrite failure notification
JP2003242788A (ja) * 2003-02-10 2003-08-29 Toshiba Corp 不揮発性半導体メモリ装置及びその制御方法
JP4188744B2 (ja) * 2003-04-08 2008-11-26 株式会社ルネサステクノロジ メモリカード
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
KR100533683B1 (ko) * 2004-02-03 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
WO2005081891A2 (en) * 2004-02-23 2005-09-09 Lexar Media, Inc. Secure compact flash
GB2412194A (en) * 2004-03-19 2005-09-21 Matsushita Electric Ind Co Ltd Reprogramming a non-volatile memory system
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
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
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
JP4862255B2 (ja) * 2004-09-30 2012-01-25 カシオ計算機株式会社 フラッシュrom制御装置、フラッシュrom制御方法及びプログラム
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
US8914557B2 (en) * 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
DE102006013763A1 (de) * 2006-03-24 2007-09-27 Robert Bosch Gmbh Verfahren zum Betreiben einer Speichereinrichtung
JP4513786B2 (ja) * 2006-06-28 2010-07-28 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
KR100859989B1 (ko) * 2006-11-21 2008-09-25 한양대학교 산학협력단 플래시 메모리의 공간정보 관리장치 및 그 방법
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP4829202B2 (ja) * 2007-11-02 2011-12-07 株式会社日立製作所 記憶装置及びメモリ制御方法
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8751770B2 (en) 2008-01-16 2014-06-10 Panasonic Corporation Semiconductor recording apparatus and semiconductor recording system
WO2009129819A1 (en) * 2008-04-21 2009-10-29 Nokia Corporation Method and device for n times writeable memory devices
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP2012178194A (ja) * 2011-02-25 2012-09-13 Renesas Electronics Corp 不揮発性半導体記憶装置
JP5779147B2 (ja) * 2012-07-06 2015-09-16 株式会社東芝 メモリシステム
US9542166B2 (en) 2012-10-30 2017-01-10 Oracle International Corporation System and method for inferring immutability of program variables
JP5664807B2 (ja) * 2014-01-21 2015-02-04 ソニー株式会社 通信装置、通信方法、及び、無線タグ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3241125A (en) * 1962-05-22 1966-03-15 Ibm Memory allocation
US4685057A (en) * 1983-06-06 1987-08-04 Data General Corporation Memory mapping system
GB8529890D0 (en) * 1985-12-04 1986-01-15 Watson P Garbage collection in computer system
JP2685173B2 (ja) * 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
US4912629A (en) * 1986-06-26 1990-03-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time garbage collection for list processing using restructured cells for increased reference counter size
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5293560A (en) * 1988-06-08 1994-03-08 Eliyahou Harari Multi-state flash EEPROM system using incremental programing and erasing methods
US5095512A (en) * 1988-10-24 1992-03-10 Netexpress Systems, Inc. Method and apparatus for manipulating image data employing an intermediate format
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
JPH038199A (ja) * 1989-06-05 1991-01-16 Fuji Electric Co Ltd 書き換え可能promのメモリ管理方式
US5023813A (en) * 1989-08-03 1991-06-11 International Business Machines Corporation Non-volatile memory usage
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
JPH03250498A (ja) * 1990-02-27 1991-11-08 Seiko Epson Corp 不揮発性メモリ装置
JP2584120B2 (ja) * 1990-09-28 1997-02-19 富士写真フイルム株式会社 メモリカードにおけるデータ記録方法およびメモリカードシステム
US5270979A (en) * 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5291584A (en) * 1991-07-23 1994-03-01 Nexcom Technology, Inc. Methods and apparatus for hard disk emulation
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5357475A (en) * 1992-10-30 1994-10-18 Intel Corporation Method for detaching sectors in a flash EEPROM memory array

Also Published As

Publication number Publication date
KR960004738B1 (ko) 1996-04-12
JPH05282889A (ja) 1993-10-29
KR930020469A (ko) 1993-10-19
US5890188A (en) 1999-03-30
US5611067A (en) 1997-03-11

Similar Documents

Publication Publication Date Title
JP3485938B2 (ja) 不揮発性半導体メモリ装置
US9026721B2 (en) Managing defective areas of memory
US6034897A (en) Space management for managing high capacity nonvolatile memory
US8122193B2 (en) Storage device and user device including the same
US6262918B1 (en) Space management for managing high capacity nonvolatile memory
US7350044B2 (en) Data move method and apparatus
US6202138B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP3412839B2 (ja) 不揮発性半導体メモリ装置
EP0935255A2 (en) Flash EEPROM system
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
JPH0675836A (ja) 補助記憶装置
JP2003263894A (ja) 不揮発性半導体メモリ装置の制御方法
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法
JP3977859B2 (ja) 不揮発性半導体メモリ装置及びその制御方法
JPH10289144A (ja) メモリの制御方法
JP2006053950A (ja) 不揮発性半導体メモリ装置及びその制御方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081024

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081024

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091024

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees