JP2003109384A - データ書込装置、データ書込制御方法及びプログラム - Google Patents

データ書込装置、データ書込制御方法及びプログラム

Info

Publication number
JP2003109384A
JP2003109384A JP2001301789A JP2001301789A JP2003109384A JP 2003109384 A JP2003109384 A JP 2003109384A JP 2001301789 A JP2001301789 A JP 2001301789A JP 2001301789 A JP2001301789 A JP 2001301789A JP 2003109384 A JP2003109384 A JP 2003109384A
Authority
JP
Japan
Prior art keywords
data
address
storage device
nand flash
flash memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001301789A
Other languages
English (en)
Other versions
JP3822081B2 (ja
Inventor
Takeo Yoshii
武男 吉井
Masahiko Shimizu
政彦 志水
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.)
Tokyo Electron Device Ltd
Original Assignee
Tokyo Electron Device Ltd
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 Tokyo Electron Device Ltd filed Critical Tokyo Electron Device Ltd
Priority to JP2001301789A priority Critical patent/JP3822081B2/ja
Priority to PCT/JP2002/010064 priority patent/WO2003030181A1/en
Priority to DE60205266T priority patent/DE60205266T8/de
Priority to US10/476,475 priority patent/US7191296B2/en
Priority to EP02800271A priority patent/EP1433183B1/en
Priority to AT02800271T priority patent/ATE300784T1/de
Publication of JP2003109384A publication Critical patent/JP2003109384A/ja
Application granted granted Critical
Publication of JP3822081B2 publication Critical patent/JP3822081B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70—Masking faults in memories by using spares or by reconfiguring
    • G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
    • 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
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70—Masking faults in memories by using spares or by reconfiguring
    • G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
    • G11C29/883—Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
    • 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70—Masking faults in memories by using spares or by reconfiguring
    • G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Numerical Control (AREA)

Abstract

(57)【要約】 【課題】 不良メモリブロックを含み得る複数の記憶装
置に効率的に同一のデータを記憶させるためのデータ書
込装置及びデータ書込制御方法を提供することである。 【解決手段】 NANDフラッシュメモリコントローラ
CNは、NANDフラッシュメモリN−1〜N−n(n
は自然数)が記憶するエラーフラグに基づき、書き込み
対象のデータがあるメモリブロックのアドレスを各々の
NANDフラッシュメモリ毎に決定する。そして、書き
込み対象のデータの同一部分をNANDフラッシュメモ
リN−1〜N−nに記憶させるため、決定した各アドレ
スを該当するNANDフラッシュメモリにラッチさせ、
当該部分を一括してNANDフラッシュメモリN−1〜
N−nに供給する。アドレスは複数回に分けてラッチさ
せ、各アドレスを構成する複数個の部分のうち、複数の
NANDフラッシュメモリに共通している部分は、該当
する複数のNANDフラッシュメモリに一括してラッチ
させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データ書込装置
及びデータ書込制御方法に関し、特に、複数の記憶装置
に同一のデータを書き込むためのデータ書込装置及びデ
ータ書込制御方法に関する。
【0002】
【従来の技術】小型の記憶装置として、フラッシュメモ
リが用いられている。フラッシュメモリには、大別して
NOR型、NAND型、AND型がある。NOR型のフ
ラッシュメモリは、1バイト単位でのランダムアクセス
が可能である。しかし、NAND型やAND型のフラッ
シュメモリに比べると、高価であり、集積度が低い。一
方、NAND型やAND型のフラッシュメモリは、NO
R型のフラッシュメモリに比べると、安価で集積度が高
いため、広く用いられている。NAND型のフラッシュ
メモリとしては、例えば、東芝社製の「TH58512
FT」などがある。
【0003】
【発明が解決しようとする課題】しかし、NAND型や
AND型のフラッシュメモリは、記憶領域を構成するメ
モリブロックのうちに含まれる不良メモリブロック(デ
ータを正常に記憶できないメモリブロック)の割合が無
視できないほど大きい。従って、複数のNAND型(あ
るいはAND型)フラッシュメモリに同一のデータを書
き込むためにアドレシングを並列的に行っても、正常に
書き込みができない場合が多い。
【0004】このため、複数のNAND型(あるいはA
ND型)フラッシュメモリに同一のデータを書き込む場
合は、フラッシュメモリに個別にチップイネーブル信号
などの制御信号を供給するなどして、個々のフラッシュ
メモリに順次にデータの書き込みを行っていた。
【0005】しかし、この手法によった場合、データを
書き込む対象のNAND型(あるいはAND型)フラッ
シュメモリが大量であると、書き込みを完了するのに要
する時間が極めて長くなって非効率的である。このた
め、所定のデータがプリインストールされたNAND型
(あるいはAND型)フラッシュメモリを含む製品を量
産することは、従来極めて困難であった。
【0006】この発明は上記実状に鑑みてなされたもの
で、不良メモリブロックを含み得る複数の記憶装置に効
率的に同一のデータを記憶させるためのデータ書込装置
及びデータ書込制御方法を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、この発明の第1の観点にかかるデータ書込装置は、
アドレスを割り当てられた複数のメモリブロックをそれ
ぞれ含む複数の記憶装置に互いに同一のデータを記憶さ
せるためのデータ書込装置であって、各記憶装置は、シ
リアルデータの入力を指示するストアコマンド及びアド
レスを供給された後に書き込む対象のデータを供給さ
れ、最後に書き込みを指示するライトコマンドを供給さ
れたとき、当該アドレスを割り当てられたメモリブロッ
クに当該データを記憶する手段と、不良のメモリブロッ
クを特定するエラー情報を供給する手段とを備えるもの
であり、各記憶装置よりエラー情報を取得し、取得した
エラー情報に基づき、同一のデータを記憶するメモリブ
ロックのアドレスを記憶装置毎に決定するアドレス決定
手段と、各記憶装置にストアコマンドを供給し、同一の
データを記憶する各メモリブロックを示すものとして決
定された各アドレスを記憶装置別に供給した後、当該デ
ータを各記憶装置に一括して供給し、最後にライトコマ
ンドを供給することにより各該メモリブロックにデータ
を記憶させる書込手段と、を備える、ことを特徴とす
る。
【0008】このようなデータ書込装置によれば、デー
タを記憶させるメモリブロックが記憶装置毎に個別に決
定された上、記憶させるべきデータは一括して供給され
る。従って、これらの記憶装置は、不良ブロックを含ん
でいても、効率的に同一のデータを記憶する。なお、シ
リアルデータは1ビット毎に順次伝送されるデータには
限られず、いわゆるバイトシリアル構成のデータ(1バ
イト毎に順次伝送されるデータ)等、複数ビット毎に順
次伝送されるデータも含む。
【0009】各記憶装置は、アドレスの供給を複数個に
分けて受けるものであってもよい。この場合、前記書込
手段は、記憶装置別に供給する各アドレスを構成する複
数個の部分のうち、複数の記憶装置に共通している部分
を、当該複数の記憶装置に一括して供給するものであっ
てもよい。このような構成を有することにより、データ
を記憶させるメモリブロックのアドレスも、その共通部
分が一括して複数の記憶装置に供給されるので、データ
を記憶させるために要する時間は更に短縮される。
【0010】各記憶装置は、データを記憶した後、当該
データが正常に記憶された否かを判別して判別結果を前
記書込手段に通知する手段を備えるものであってもよ
い。この場合、前記書込手段は、データが正常に記憶さ
れていないことを示す判別結果を通知されたとき、当該
判別結果を通知した記憶装置のメモリブロックのうちか
ら、当該データを新たに記憶させる対象のメモリブロッ
クを決定し、正常に記憶されなかったデータを当該メモ
リブロックに記憶させる手段を備えるものとすれば、た
とえば後発的に不良のメモリブロックが生じた場合に
も、記憶に失敗したデータが代わりのメモリブロックに
確実に記憶される。
【0011】前記書込手段は、データを記憶させるべき
メモリブロックが不足する記憶装置があるか否かを判別
し、あると判別したとき、当該記憶装置のメモリブロッ
クに当該データ以降のデータを記憶させるのを停止する
手段を備えるものとすれば、データを記憶させるべきメ
モリブロックが存在しないにも係わらずデータの記憶を
試みる無駄な処理が続くことが避けられ、データを記憶
させる処理が更に効率的になる。
【0012】前記記憶装置は、具体的には、たとえばN
AND型フラッシュメモリより構成されていてもよい
し、また、AND型フラッシュメモリより構成されてい
てもよい。
【0013】また、この発明の第2の観点にかかるデー
タ書込制御方法は、アドレスを割り当てられた複数のメ
モリブロックをそれぞれ含む複数の記憶装置に互いに同
一のデータを記憶させるためのデータ書込方法であっ
て、各記憶装置は、シリアルデータの入力を指示するス
トアコマンド及びアドレスを供給された後に書き込む対
象のデータを供給され、最後に書き込みを指示するライ
トコマンドを供給されたとき、当該アドレスを割り当て
られたメモリブロックに当該データを記憶する手段と、
不良のメモリブロックを特定するエラー情報を供給する
手段とを備えるものであり、各記憶装置よりエラー情報
を取得し、取得したエラー情報に基づき、同一のデータ
を記憶するメモリブロックのアドレスを記憶装置毎に決
定し、各記憶装置にストアコマンドを供給し、同一のデ
ータを記憶する各メモリブロックを示すものとして決定
された各アドレスを記憶装置別に供給した後、当該デー
タを各記憶装置に一括して供給し、最後にライトコマン
ドを供給することにより各該メモリブロックにデータを
記憶させる、ことを特徴とする。
【0014】このようなデータ書込制御方法によれば、
データを記憶させるメモリブロックが記憶装置毎に個別
に決定された上、記憶させるべきデータは一括して供給
される。従って、これらの記憶装置は、不良ブロックを
含んでいても、効率的に同一のデータを記憶する。
【0015】また、この発明の第3の観点にかかるプロ
グラムは、コンピュータを、シリアルデータの入力を指
示するストアコマンド及びアドレスを供給された後に書
き込む対象のデータを供給され、最後に書き込みを指示
するライトコマンドを供給されたとき、当該アドレスを
割り当てられたメモリブロックに当該データを記憶する
手段と、不良のメモリブロックを特定するエラー情報を
供給する手段とを各々備える複数の記憶装置よりエラー
情報を取得し、取得したエラー情報に基づき、同一のデ
ータを記憶するメモリブロックのアドレスを記憶装置毎
に決定するアドレス決定手段と、各記憶装置にストアコ
マンドを供給し、同一のデータを記憶する各メモリブロ
ックを示すものとして決定された各アドレスを記憶装置
別に供給した後、当該データを各記憶装置に一括して供
給し、最後にライトコマンドを供給することにより各該
メモリブロックにデータを記憶させる書込手段と、して
機能させるためのものであることを特徴とする。
【0016】このようなプログラムを実行するコンピュ
ータは、データを記憶させるメモリブロックを記憶装置
毎に個別に決定した上、記憶させるべきデータを一括し
て供給する。従って、これらの記憶装置は、不良ブロッ
クを含んでいても、効率的に同一のデータを記憶する。
【0017】
【発明の実施の形態】以下、この発明の実施の形態に係
るデータ書込装置及びデータ書込制御方法を、フラッシ
ュメモリ書込装置を例として説明する。
【0018】(第1の実施の形態)図1は、この発明の
第1の実施の形態にかかるフラッシュメモリ書込装置の
構成を示す図である。図示するように、このフラッシュ
メモリ書込装置は、NANDフラッシュメモリコントロ
ーラCNと、バスB1と、アドレスラッチイネーブル信
号線B2−1〜B2−n(nは後述するNANDフラッ
シュメモリの総数)と、コマンドラッチイネーブル信号
線B3−1〜B3−nと、リードイネーブル信号線B4
−1〜B4−nと、レディー信号線B5−1〜B5−n
とより構成されている。バスB1は、データを書き込む
対象であるn個のNANDフラッシュメモリN−1〜N
−nに共通に接続されるデータ/アドレスバス及びライ
トイネーブル信号線とより構成されている。
【0019】NANDフラッシュメモリコントローラC
Nは、バスB1を介して、NANDフラッシュメモリN
−1〜N−nの後述するデータ/アドレスバス及びライ
トイネーブル端子に接続されている。また、NANDフ
ラッシュメモリコントローラCNは、アドレスラッチイ
ネーブル信号線B2−k(kは1以上n以下の任意の整
数)を介して、NANDフラッシュメモリN−kのアド
レスラッチイネーブル端子に接続されている。また、N
ANDフラッシュメモリコントローラCNは、コマンド
ラッチイネーブル信号線B3−kを介して、NANDフ
ラッシュメモリN−kのコマンドラッチイネーブル端子
に接続されている。また、NANDフラッシュメモリコ
ントローラCNは、リードイネーブル信号線B4−kを
介して、NANDフラッシュメモリN−kのリードイネ
ーブル端子に接続されている。また、NANDフラッシ
ュメモリコントローラCNは、レディー信号線B5−k
を介して、NANDフラッシュメモリN−kのレディー
端子に接続されている。
【0020】NANDフラッシュメモリコントローラC
Nは、制御部及び記憶部より構成されている。NAND
フラッシュメモリコントローラCNの制御部は、CPU
(Central Processing Unit)等より構成されており、
NANDフラッシュメモリコントローラCNの記憶部か
ら、後述するデータ書き込みの処理を制御するプログラ
ムを読み出して実行する。
【0021】NANDフラッシュメモリコントローラC
Nの記憶部は、PROM(Programmable Read Only Mem
ory)等の不揮発性記憶装置と、RAM(Random Access
Memory)等の揮発性記憶装置とより構成されている。
NANDフラッシュメモリコントローラCNの記憶部が
備える不揮発性記憶装置は、データ書き込みの処理を制
御する上述のプログラムを予め記憶しており、NAND
フラッシュメモリコントローラCNの記憶部の揮発性記
憶装置は、NANDフラッシュメモリコントローラCN
の制御部のワークエリアとして用いられる。
【0022】NANDフラッシュメモリN−k(kは1
以上n以下の任意の整数)は、NAND型のEEPRO
M(Electrically Erasable/Programmable ROM)より構
成されている。
【0023】図2は、NANDフラッシュメモリN−k
の構成を示すブロック図である。図示するように、NA
NDフラッシュメモリN−kは、データ/アドレスバス
と、入出力コントロール回路と、コマンドレジスタと、
制御回路と、ステータスレジスタと、動作ロジックコン
トロール回路と、メモリセルアレイと、データレジスタ
と、アドレスレジスタと、ローアドレスバッファと、ロ
ーアドレスデコーダと、カラムバッファと、カラムデコ
ーダとから構成される。
【0024】データ/アドレスバスは、外部の回路に接
続しており、複数ビットのビット幅を持っている。入出
力コントロール回路は、データ/アドレスバスを経由し
てコマンド、データ及びアドレスを外部の回路から受け
取り、あるいは外部の回路へと送出する。コマンドレジ
スタは、入出力コントロール回路が外部の回路から受け
取ったコマンドをビット列として保管する。制御回路
は、コマンドレジスタに保管されたコマンドにより指定
される通りに、NANDフラッシュメモリN−kの内部
の動作を制御する。ステータスレジスタは、制御回路が
行った制御の結果を外部の回路へ通知する。動作ロジッ
クコントロール回路は、外部の回路から供給される信号
に応答して入出力コントロール回路及び制御回路の動作
を制御する。なお、動作ロジックコントロール回路は、
ライトイネーブル端子、アドレスラッチイネーブル端
子、リードイネーブル端子、コマンドラッチイネーブル
端子、レディー端子を備えている。メモリセルアレイ
は、後述する複数のメモリセルより構成される。データ
レジスタは、メモリセルに読み書きされる対象のデータ
を保管する。アドレスレジスタは、メモリセルアレイに
読み書きされる対象のデータの位置(アドレス)を記憶
する。ローアドレスバッファ、ローアドレスデコーダ、
カラムバッファ及びカラムデコーダは、アドレスレジス
タが記憶する複数ビットのアドレスを、メモリセルを特
定する行及び列へと変換し、このメモリセルを選択す
る。
【0025】NANDフラッシュメモリN−kの各メモ
リセルは、1バイトの記憶容量を有する。これらのメモ
リセルは、論理的には、たとえば、図3に示すように、
縦131072行、横528列のマトリクス状に配置さ
れている。従って、NANDフラッシュメモリN−kは
全体としてはほぼ69.2メガバイトの記憶容量を有す
る。
【0026】メモリセルのマトリクスの各行は、図示す
るように、528バイトの記憶容量を有するページを構
成する。各ページに含まれるメモリセルには、連続的に
1から528までの番地が与えられている。また、各ペ
ージは、先頭から32ページ単位で1つのブロックを構
成する。各ブロックは16キロバイトの記憶容量を有
し、記憶領域全体は、4096個のブロックから構成さ
れている。各々のブロックに属するページには、連続的
に1から32までのページアドレスが与えられている。
【0027】また、各ページは、図示するように、先頭
から512バイトの領域を占めるデータ領域と、末尾1
6バイトを占める冗長部とから構成される。読み書き対
象のデータのアドレス(物理アドレス)は、例えば26
ビットのビット列より構成される。物理アドレスの下位
9ビットは、このデータが読み書きされるメモリセルが
ある列の位置(列位置)を、残りの上位17ビットは、
このメモリセルがある行の位置(行位置)を示す。列位
置の範囲は1〜512であり、行位置の範囲は1〜13
1072である。
【0028】行位置を示す17ビットのうち例えば下位
5ビットは、このメモリセルを含むブロック内でこのメ
モリセルが属するページの位置(ページ位置)を、残り
の上位12ビットは、このブロックの位置(ブロック位
置)を示す。ページ位置の範囲は1〜32であり、ブロ
ック位置の範囲は1〜4096である。
【0029】フラッシュメモリN−kは、データを読み
書きするとき、通常、列位置「0」を示すアドレスを記
憶し、ページの先頭からデータを読み書きする。こうす
る結果、フラッシュメモリN−kは、データ領域の先頭
からデータを読み書きする。データ領域には、ユーザが
利用するユーザデータや、NANDフラッシュメモリN
−kにアクセスする外部の装置が実行するデバイスドラ
イバなど、任意のデータが格納される。
【0030】一方、各々のページの冗長部には、後述す
る処理に従い、当該ページのデータ領域に格納されてい
るデータ(ユーザデータやデバイスドライバなど)の内
容が破壊されていないことを確認するためのエラーチェ
ックコードが格納され、更に、エラーフラグが格納され
る。エラーフラグは各ブロックのすべてのページに格納
される必要はなく、例えば各ブロックの先頭のページ
(つまり、1ページ目)の冗長部のみに格納されてもよ
い。
【0031】エラーフラグは、このエラーフラグが格納
されているブロックが、データを正常に格納可能なブロ
ック(良品ブロック)であるか、良品ブロックでないブ
ロックすなわち不良ブロックであって、NANDフラッ
シュメモリN−kの製造者等によって出荷前に不良と判
断されたブロック(初期不良ブロック)であるか、不良
ブロックであって、NANDフラッシュメモリN−kの
使用中にデータの正常な格納ができないと判断されたブ
ロック(後発不良ブロック)であるか、を示すデータで
ある。
【0032】ただし、エラーフラグは、例えば特願20
01−076945で開示されているように、冗長部に
格納された他のフラグと組み合わせて、データ領域にあ
るデータの属性を示すために用いてもよい。
【0033】なお、良品ブロックを示すエラーフラグの
値は、データの消去を行わず単に上書きすることにより
後発不良ブロックを表す値へと更新可能となるように選
ばれている。具体的には、例えばエラーフラグが1バイ
ト(8ビット)のビット列より構成されるものとし、こ
のビット列のうち値「1」を示すビットが7ビット以上
あるときエラーフラグは良品ブロックを示すものとし、
2ビット以上6ビット以下のときは後発不良ブロックを
示すものとし、値「0」を示すビットが7ビット以上の
ときは初期不良ブロックを示すものとすればよい。この
ように定められていれば、冗長部のメモリセルの記憶値
を消去せず「1」から「0」へ上書きすることにより、
良品ブロックを示すエラーフラグを、後発不良ブロック
を表すよう更新できる。
【0034】NANDフラッシュメモリN−kは、デー
タの読み出しを指示されたとき、読み出しを指示された
行のデータを、先頭からメモリセル1個分(すなわち、
1バイト)ずつ528回に分けて読み出し、データ/ア
ドレスバスから順次供給する機能を有する。なお、デー
タの読み出しの指示は、たとえば、データ/アドレスバ
スにリードコマンドを供給し、次にデータ/アドレスバ
スに読み出し対象の先頭のメモリセルを指定する物理ア
ドレスとなるアドレスビット列(ブロックアドレス、ペ
ージアドレス及び列アドレスを組み合わせたもの)を供
給し、NANDフラッシュメモリN−kが指定された1
ページ分(または、指定されたページのうち指定された
列アドレス以降)のデータをデータレジスタに保管して
レディー信号をアクティブレベルにしたことを確認後、
リードイネーブル端子にリードイネーブル信号を供給す
ることにより行う。
【0035】また、NANDフラッシュメモリN−k
は、記憶内容の消去をブロック単位で行う。NANDフ
ラッシュメモリN−kは、ブロックの記憶内容を消去す
るよう指示する消去コマンドに続いて、記憶内容を消去
する対象のブロックのアドレスを供給され、さらに消去
実行コマンドを供給されると、当該ブロックに含まれる
すべてのメモリセルの記憶内容をリセットする(具体的
には、各メモリセルの記憶値を「1」とする)。
【0036】一方、NANDフラッシュメモリN−k
は、データ/アドレスバスに所定のストアコマンドが供
給されると、ライトイネーブル端子に供給される後述の
WE(Write Enable)信号と、アドレスラッチイネーブ
ル端子に供給される後述のALE(Address Latch Enab
le)信号との双方がいずれもアクティブレベルに達した
時点を検知する。そして、検知した時点にデータ/アド
レスバスに供給されているアドレスデータを、データ書
き込み対象の物理アドレス(詳しくは、ブロックアドレ
ス、ページアドレス、及びページ内の先頭バイトを表す
列アドレスを組み合わせたアドレスビット列)の一部を
表すビット列としてラッチする。そして、ビット列を4
回ラッチすると、その後、ALE信号が非アクティブレ
ベルの状態でWE信号がアクティブレベルに達する毎
に、データ/アドレスバスに供給された書き込み対象の
データを、NANDフラッシュメモリN−kのデータレ
ジスタに、1バイトずつ記憶する。
【0037】1ページ分の書き込み対象のデータがデー
タレジスタに記憶された後、データ/アドレスバスに所
定のライトコマンド(又はプログラムコマンド)が供給
されると、NANDフラッシュメモリN−kは、データ
レジスタに保管されている書き込み対象のデータを、ラ
ッチした4個のビット列により表されるデータ書き込み
対処の物理アドレスが示すメモリセル以降のメモリセル
に記憶する。
【0038】(第1の実施の形態の動作)次に、このフ
ラッシュメモリ書込装置の処理を、図4を参照して説明
する。図4は、データ書き込みの処理を示すフローチャ
ートである。
【0039】このフラッシュメモリ書込装置がデータ書
き込みの処理を開始すると、まず、NANDフラッシュ
メモリコントローラCNは、NANDフラッシュメモリ
N−1〜N−nにデータ読み出しを指示し、NANDフ
ラッシュメモリN−1〜N−nの記憶領域の冗長部に格
納されているエラーフラグを読み出す。そして、NAN
DフラッシュメモリコントローラCNが読み出したエラ
ーフラグが示す値に基づき、NANDフラッシュメモリ
N−1〜N−nの記憶領域内のすべての良品ブロックの
ブロックアドレスを表すデータ(テーブル)を作成し、
記憶する(図4、ステップS1)。
【0040】次に、NANDフラッシュメモリコントロ
ーラCNは、変数DATA#の使用を宣言する(つま
り、変数DATA#の値を格納するための記憶領域を自
己の記憶部が備える揮発性記憶装置の記憶領域内に確保
する)。そして、変数DATA#に値「0」を格納する
(ステップS2)。
【0041】さらにNANDフラッシュメモリコントロ
ーラCNは、NANDフラッシュメモリN−1〜N−n
に書き込む1ブロック分のデータを格納するための記憶
領域を自己の記憶部が備える揮発性記憶装置の記憶領域
内に確保し、図示しない記憶制御用の回路を制御するこ
とによって、1ブロック分の書き込みデータを、確保し
た記憶領域(データ保管領域)に収納する(ステップS
3)。
【0042】次に、NANDフラッシュメモリコントロ
ーラCNは、変数DATA#の値を1だけインクリメン
トする(ステップS4)。次いで、NANDフラッシュ
メモリコントローラCNはテーブルを参照し、変数DA
TA#の現在の値dに基づいて、NANDフラッシュメ
モリN−1〜N−nのどのブロックにデータを書き込む
かを決定する(ステップS5)。
【0043】ステップS5の処理を更に具体的に説明す
ると、NANDフラッシュメモリコントローラCNはま
ず、テーブルを参照し、NANDフラッシュメモリN−
k(kは1以上n以下の任意の整数)について、ブロッ
クアドレスがd番目に小さい良品ブロックのブロックア
ドレスを特定する。
【0044】次に、NANDフラッシュメモリコントロ
ーラCNは、変数PAGE#の使用を宣言する(つま
り、変数PAGE#の値を格納するための記憶領域を自
己の記憶部が備える揮発性記憶装置の記憶領域内に確保
する)。そして、変数PAGE#に値「0」を格納する
(ステップS6)。
【0045】さらにNANDフラッシュメモリコントロ
ーラCNは、データ保管領域に収納されている1ブロッ
ク分のデータのうち、変数PAGE#が示すページに格
納されるべき部分の先頭が収納されているアドレスを特
定する(ステップS7)。
【0046】次に、NANDフラッシュメモリコントロ
ーラCNは、バスB1を介してNANDフラッシュメモ
リN−1〜N−nのデータ/アドレスバスにストアコマ
ンド(Coms)を送出することにより、NANDフラ
ッシュメモリN−1〜N−nに、NANDフラッシュメ
モリN−1〜N−nのデータレジスタへ書き込み対象の
データの1ページ分を格納する準備をさせる。
【0047】続いて、NANDフラッシュメモリコント
ローラCNは、変数DATA#によって特定したブロッ
クアドレス、変数PAGE#によって特定したページア
ドレス、及びページ内の先頭を表す列アドレスを組み合
わせたアドレスビット列(物理アドレス)を、4回に分
けてNANDフラッシュメモリN−kにラッチさせる。
具体的には、NANDフラッシュメモリコントローラC
Nは、NANDフラッシュメモリN−kにアドレスをラ
ッチさせるため、物理アドレスの一部を構成するビット
列をデータ/アドレスバスに送出し、この状態で更に、
アドレスラッチイネーブル信号線B2−kを介してNA
NDフラッシュメモリN−kにアクティブレベルのAL
E信号を供給し、また、バスB1を介して、NANDフ
ラッシュメモリN−1〜N−nにアクティブレベルのW
E信号を供給する。
【0048】NANDフラッシュメモリN−kは、自己
に供給されるALE信号及びWE信号の両方がアクティ
ブレベルとなった時点にデータ/アドレスバスに送出さ
れているデータを、物理アドレスの一部を表すビット列
としてラッチする。
【0049】すなわち、たとえば図5に示すように、ス
トアコマンド(図5で「Coms」として示すデータ)
が送出された後、NANDフラッシュメモリN−1にラ
ッチさせるべきビット列のひとつ(図5で「add
(1)」として示すデータ)をラッチさせる場合は、W
E信号及びアドレスラッチイネーブル信号線B2−1に
供給されるALE信号(図5で「ALE信号(B2−
1)」として示す信号)が両方アクティブレベル(図5
で破線により示す信号レベル)に達する時点において、
このビット列(「add(1)」)がバスB1に送出さ
れているようにする。
【0050】同様に、NANDフラッシュメモリN−k
にラッチさせるべきビット列のひとつ(図5で「add
(k)」として示すデータ)をラッチさせる場合は、W
E信号及びアドレスラッチイネーブル信号線B2−kに
供給されるALE信号(図5で「ALE信号(B2−
k)」として示す信号)が両方アクティブレベルに達す
る時点においてビット列「add(k)」がバスB1に
送出されているようにする。
【0051】なお、NANDフラッシュメモリコントロ
ーラCNは、複数のNANDフラッシュメモリにラッチ
させるビット列が共通する場合、なるべくこの共通する
ビット列が同一のタイミングでこれらのNANDフラッ
シュメモリにラッチされるよう、各ビット列の送出のタ
イミングを調整するものとする。
【0052】具体的には、たとえば図5に示すように、
NANDフラッシュメモリN−1及びN−nに共通にラ
ッチさせるべきビット列(図5で「add(n)」とし
て示すデータ)をラッチさせる場合は、WE信号と、A
LE信号(B2−1)と、アドレスラッチイネーブル信
号線B2−nに供給されるALE信号(図5で「ALE
信号(B2−n)」として示す信号)とがいずれもアク
ティブレベルに達する時点においてビット列「add
(n)」がバスB1に送出されているようにする。
【0053】より具体的に、例えば、書き込み対象のデ
ータの物理アドレスが26ビットのビット列からなり、
このビット列の下位9ビットがデータを書き込む対象の
先頭のメモリセルの列位置(1〜512)を示し、上位
17ビットがこのメモリセルの行位置(1〜13107
2)を示すとする。また、行位置を示す17ビットのビ
ット列の下位5ビットがこのメモリセルのページ位置
(1〜32)を示し、上位12ビットがブロック位置
(1〜4096)を示すとする。そして、データを書き
込む対象のメモリセルの列位置の下位8ビットがn個の
NANDフラッシュメモリすべてに共通しており、ま
た、ブロック位置の上位10ビットもNANDフラッシ
ュメモリすべてに共通しているとする。また、メモリセ
ルの列位置の上位1ビット、ページ位置を示す5ビット
及びブロック位置の下位2ビットについては、値が共通
であるNANDフラッシュメモリの組が3組あるとす
る。この場合、NANDフラッシュメモリコントローラ
CNは、例えば、(1) 第1回目は、データを書き込
む対象のメモリセルの列位置の下位8ビットをn個のN
ANDフラッシュメモリすべてに共通して送出し、
(2) 第2回目〜第4回目では、このメモリセルの列
位置の上位1ビットと、ページ位置5ビットと、ブロッ
ク位置の下位2ビットとを、これらの値が共通であるN
ANDフラッシュメモリの組毎に1回ずつ、合計3回に
わたって送出し、(3) 第5回目は、ブロック位置の
上位10ビットのうちの8ビットをすべてのNANDフ
ラッシュメモリに共通して送出し、(4) 第6回目
は、ブロック位置を示すビット列の残り2ビットを、す
べてのNANDフラッシュメモリに共通して送出する、
等の手法で、各ビット列の送出のタイミングを調整す
る。
【0054】このようなタイミングの調整を行うことに
より、NANDフラッシュメモリコントローラCNは、
NANDフラッシュメモリN−1〜N−nに物理アドレ
スをラッチさせるために費やす時間を短縮する。
【0055】なお、ビット列の送出タイミングを説明す
るために上述した具体的な数値は、この実施の形態の理
解を容易にするために例示したものであって、数値の組
み合わせは上述したものには限定されない。
【0056】続いて、NANDフラッシュメモリコント
ローラCNは、NANDフラッシュメモリN−1〜N−
nにデータを書き込むため、データ保管領域に収納され
ている1ブロック分のデータのうちアドレスが特定され
た先頭位置以降の1ページ分のデータを先頭から1バイ
トずつ順次データ/アドレスバスに送出し、1バイト送
出する毎に、NANDフラッシュメモリN−1〜N−n
にアクティブレベルのWE信号を供給する。この結果、
NANDフラッシュメモリN−1〜N−nは、各自のデ
ータレジスタに1ページ分のデータを保管する。
【0057】次に、NANDフラッシュメモリコントロ
ーラCNは、バスB1を介してNANDフラッシュメモ
リN−1〜N−nのデータ/アドレスバスにライトコマ
ンド(図5で「Comw」として示すデータ)を送出す
る。NANDフラッシュメモリN−1〜N−nの制御回
路は、ライトコマンドを受け取ると書き込み動作を開始
し、レディー信号を非アクティブ状態にする。この結
果、NANDフラッシュメモリN−1〜N−nは、各自
が最も新しくラッチした物理アドレスが示すページのメ
モリセルに、データレジスタに保管している書き込み対
象のデータ1ページ分を記憶する(ステップS8)。
【0058】NANDフラッシュメモリN−1〜N−n
の各制御回路は、1ページ分のデータをデータレジスタ
からメモリセルに書き込むとき、データの書き込みの成
否を検査しながら書き込みを行う。具体的には、例え
ば、メモリセルの記憶内容とデータレジスタの記憶内容
とを比較して、データが所定の時間内または所定回数以
内の書き込み動作で正しくメモリセルにデータが記憶さ
れたか否かを検査する。正しく記憶されなかった場合は
データ書き込み失敗(Fail)を示し、正しく記憶さ
れた場合はデータ書き込み成功(Pass)を示すステ
ータスビットをステータスレジスタに格納する。そし
て、1ページ分のデータの書き込みを終了すると、レデ
ィー信号をアクティブ状態にする。
【0059】NANDフラッシュメモリコントローラC
Nは、NANDフラッシュメモリN−1〜N−nすべて
のレディー信号がアクティブ状態になったことを確認
し、バスB1を介して、NANDフラッシュメモリN−
1〜N−nのデータ/アドレスバスにステータスリード
コマンドを送出する。
【0060】次に、NANDフラッシュメモリコントロ
ーラCNは、NANDフラッシュメモリN−kのリード
イネーブル信号をアクティブ状態にして、NANDフラ
ッシュメモリN−kのステータスレジスタを記憶内容を
読み取る。
【0061】NANDフラッシュメモリコントローラC
Nは、NANDフラッシュメモリN−1〜N−nのすべ
てについて上述の動作によりステータスレジスタの記憶
内容を読み取り、処理をステップS10に移す(ステッ
プS9)。
【0062】NANDフラッシュメモリコントローラC
Nは、NANDフラッシュメモリN−1〜N−nのすべ
てのステータスレジスタの記憶内容が、に書き込み成功
(具体的には、例えば、ステータスレジスタ内の「Pa
ss」を表す特定のビットが所定のアクティブ状態にな
っている場合)であれば、処理をステップS11に移
す。
【0063】一方、NANDフラッシュメモリN−1〜
N−nのいずれかのステータスレジスタの記憶内容が、
に書き込み失敗(具体的には、例えば、ステータスレジ
スタ内の「Pass」を表すビットが非アクティブ状態
になっている場合)であれば、該当するNANDフラッ
シュメモリのブロックが後発不良であるとして処理をス
テップS13に移す(ステップS10)。
【0064】ステップS11で、NANDフラッシュメ
モリコントローラCNは、変数PAGE#の値に基づ
き、NANDフラッシュメモリN−1〜N−nに最後に
データを書き込んだページが、ブロックの末尾のページ
であるか否かを判別する。
【0065】具体的には、例えばNANDフラッシュメ
モリN−1〜N−nの各々のブロックが32個のページ
からなる場合、変数PAGE#の値が「31」未満であ
れば、現在書き込み対象であるブロックにまだデータが
書き込まれていないページがあると判断し、処理をステ
ップS16に移す。一方、変数PAGE#の値が「3
1」であれば、最後にデータを書き込んだページが、現
在書き込み対象であるブロックの末尾のページであると
判断し、処理をステップS12に移す。
【0066】ステップS16で、NANDフラッシュメ
モリコントローラCNは、変数PAGE#の値を1だけ
インクリメントすることにより次のページにデータを書
き込む準備をして、処理をステップS7へ移す。
【0067】ステップS12で、NANDフラッシュメ
モリコントローラCNは、NANDフラッシュメモリN
−1〜N−nに書き込むべきデータがすべて書き込まれ
たか否かを判別し、書き込まれていないと判別すれば処
理をステップS3に戻し、書き込まれたと判別すれば、
データ書き込みの処理を終了する。
【0068】ステップS13で、NANDフラッシュメ
モリコントローラCNは、書き込み失敗となったNAN
Dフラッシュメモリ(以下では、このNANDフラッシ
ュメモリはNANDフラッシュメモリN−kであるもの
として説明する)のブロックを後発不良ブロックと特定
する。また、ステップS8で最も新しく書き込みを行っ
たページを表す変数PAGE#の値を特定する。
【0069】次に、NANDフラッシュメモリコントロ
ーラCNは、データが正常に書き込まれなかったNAN
DフラッシュメモリN−kのページを含むブロック内の
各ページの冗長部に、このブロックが後発不良ブロック
であることを示すエラーフラグを書き込む。ただし、こ
のブロックのすべてのページにエラーフラグを書き込む
代わりに、このブロックの先頭のページの冗長部のみに
エラーフラグを書き込むようにしてもよい。こうするこ
とにより、このブロックが後発不良ブロックであること
を示すようにする書き込みの時間を短縮することができ
る。
【0070】続いて、NANDフラッシュメモリコント
ローラCNは、データが正常に書き込まれなかったNA
NDフラッシュメモリN−kのブロックを表すデータを
除外する形で、テーブルを更新(あるいは再度作成)す
る(ステップS14)。
【0071】続いて、NANDフラッシュメモリコント
ローラCNは、更新(又は再度作成)されたテーブルに
基づいて、NANDフラッシュメモリN−kのd番目の
良品ブロックとなったブロックを特定し、特定したブロ
ックに、変数DATA#が示すブロックの先頭のページ
から変数PAGE#が特定するページまでに書き込まれ
たデータを、ステップS8と同様の処理を行うことによ
り順次書き込む。そして、NANDフラッシュメモリN
−1〜N−nの残りのページへの書き込みを行うため処
理をステップS11へ移す(ステップS15)。
【0072】以上説明したステップS1〜S16の処理
が行われる結果、NANDフラッシュメモリN−1〜N
−nには、互いに同一のデータが書き込まれる。なお、
ステップS15で新たに選んだ良品ブロックへの書き込
み処理のとき、ページへの書き込み後、ステップS9と
同様にして書き込みの成否を検査し、書き込み失敗と判
断したときはステップS13以降の処理を再度行うよう
にしてもよい。こうすると、後発不良ブロックが連続し
て発生した場合にも代わりのブロックを特定することが
でき、より効率的な書き込みが行える。
【0073】なお、このフラッシュメモリ書込装置の構
成は上述のものに限られない。例えば、NANDフラッ
シュメモリN−kの各ブロックの大きさは上述の大きさ
に限られない。例えば、各ブロックは32ページから構
成される必要はなく、例えば、各ページの大きさの整数
倍であればよい。また、1個の物理アドレスを構成する
ビット列をラッチする回数も上述の回数に限られない。
また、NANDフラッシュメモリN−kが備えるブロッ
クの数や、1ページあたりのメモリセルの数や冗長部の
数も任意である。
【0074】また、フラッシュメモリN−kの各ブロッ
クは、更に複数のゾーンへと更に分類されていもよく、
各ゾーンにゾーンアドレスが与えられていてもよい。こ
の場合、データ書き込みの処理においてNANDフラッ
シュメモリコントローラCNが作成(更新、再作成)す
るテーブルは、NANDフラッシュメモリN−1〜N−
nの記憶領域内の良品ブロックのブロックアドレス及び
ゾーンアドレスを表すデータより構成されているように
すればよい。
【0075】また、NANDフラッシュメモリコントロ
ーラCNは、NANDフラッシュメモリN−1〜N−n
に書き込むデータを、操作者の操作に従って取得した
り、あるいは、自己に装着された記録媒体から読み取る
ことにより取得したり、あるいは通信回線を介して外部
のシステムから受信することにより取得するようにして
もよいこの場合、NANDフラッシュメモリコントロー
ラCNは、たとえば、キーボードや、記録媒体からのデ
ータの読み出しを行う記録媒体ドライバ(例えば、フレ
キシブルディスクドライブ装置やMO(Magneto Optica
l disk)ドライブ装置)や、外部との通信を行うための
シリアルポート等からなる入力部を備えていればよい。
【0076】また、上述のステップS2で変数DATA
#に代入する初期値は、必ずしも「0」である必要はな
く、例えば、NANDフラッシュメモリN−kの末尾の
ブロックのブロックアドレスより1だけ大きい数を変数
DATA#の初期値としてもよいし、あるいは、NAN
DフラッシュメモリN−kの末尾のブロックのブロック
アドレス以下の任意のオフセット値を変数DATA#の
初期値としてもよい。
【0077】また、変数DATA#をインクリメントす
る代わりにデクリメントする(具体的には、変数DAT
A#の値を1だけ減少させる)ことも差し支えない。
【0078】また、NANDフラッシュメモリコントロ
ーラCNは、たとえば上述のステップS12においてテ
ーブルを参照する等して、NANDフラッシュメモリN
−1〜N−nのうちに、データを記憶させることが可能
なメモリブロックが残っていないものがあるか否かを判
別し、あると判別したとき、データ書き込みの処理を中
断するようにしてもよい。こうすることにより、無駄な
処理が後続することが避けられる。なお、データ書き込
みの処理を中断する対象のNANDフラッシュメモリ
は、データを記憶させることが可能なメモリブロックが
残っていないと案別されたものだけでもよいし、n個の
NANDフラッシュメモリN−1〜N−nすべてであっ
てもよい。
【0079】また、1ページ分のデータを書き込むと
き、上述した動作では、同一ページのデータ領域と冗長
部とには、ステップS8及びS15の処理各1回でデー
タを書き込んでいる。しかし、データ領域及び冗長部の
それぞれについて別個にステップS8〜S10及びS1
3〜S15の処理を行うことにより、データを書き込む
ようにしてもよい。こうすることにより、データ領域の
書き込みの成否を検査した後、検査結果(後発不良ブロ
ックであるか否か)に関係なく冗長部にデータの書き込
みができる。この手法によれば、NANDフラッシュメ
モリの冗長部に特殊なフラグなどを書き込んで使用する
ことが容易になる。
【0080】(第2の実施の形態)次に、NANDフラ
ッシュメモリへのデータの書き込みを行う、この発明の
第2の実施の形態フラッシュメモリ書込装置を説明す
る。図6は、このフラッシュメモリ書込装置の構成を示
す図である。
【0081】図6に示すように、このフラッシュメモリ
書込装置は、NANDフラッシュメモリコントローラC
Nに代えてNANDフラッシュメモリコントローラCA
を備える点と、バスB1に代えてバスB6を備える点
と、アドレスラッチイネーブル信号線B2−1〜B2−
nに代えてライトイネーブル信号線B7−1〜B7−n
を備える点と、コマンドラッチイネーブル信号線B3−
1〜B3−nを備えていない代わりに、アドレスラッチ
イネーブル信号とコマンドラッチイネーブル信号とがN
ANDフラッシュメモリN−1〜N−nに共通なバス信
号としてバスB6により伝送される点とを除き、図1に
示す構成と実質的に同一である。なお、NANDフラッ
シュメモリA−kの構成は、NANDフラッシュメモリ
N−kと実質的に同一である。
【0082】NANDフラッシュメモリコントローラC
Aは、バスB6を介して、データを書き込む対象である
n個のNANDフラッシュメモリA−1〜A−nのデー
タ/アドレスバスと、アドレスラッチイネーブル端子
と、コマンドラッチイネーブル端子とに接続されている
ものとする。また、NANDフラッシュメモリコントロ
ーラCAは、リードイネーブル信号線B4−kを介し
て、NANDフラッシュメモリA−kのリードイネーブ
ル端子に接続されており、また、レディー信号線B5−
kを介して、NANDフラッシュメモリA−kのレディ
ー端子に接続されており、また、ライトイネーブル信号
線B7−kを介して、NANDフラッシュメモリA−k
のライトイネーブル端子に接続されているものとする。
【0083】また、NANDフラッシュメモリA−k
は、データ/アドレスバスにストアコマンド(Com
s)が供給されると、ライトイネーブル端子に供給され
るWE信号がアクティブレベルに達した時点を検知し、
検知した時点にデータ/アドレスバスに供給されている
データを、データ書き込み対象のブロックのブロックア
ドレスの一部を表すビット列としてラッチする。そし
て、ビット列を4回ラッチすると、その後WE信号がア
クティブレベルに達する毎に、データ/アドレスバスに
供給された書き込み対象のデータを、ラッチした4個の
ビット列により表されるブロックアドレスが示すブロッ
クに、1バイトずつ記憶する。
【0084】NANDフラッシュメモリコントローラC
Aの物理的及び機能的構成は、実行するデータ書き込み
処理が後述の通りである点を除き、NANDフラッシュ
メモリコントローラCNの構成と実質的に同一である。
【0085】(第2の実施の形態の動作)図5のフラッ
シュメモリ書込装置のNANDフラッシュメモリコント
ローラCA及びNANDフラッシュメモリA−1〜A−
nが行うデータ書き込みの処理は、図3に示す処理、す
なわち図1の構成のNANDフラッシュメモリコントロ
ーラCN及びNANDフラッシュメモリN−1〜N−n
が行う処理と実質的に同一である。
【0086】ただし、ステップS8及びS15でNAN
DフラッシュメモリコントローラCAは、データを書き
込むページの物理アドレスとして特定した物理アドレス
をラッチさせるため、この物理アドレスの一部をなすビ
ット列をデータ/アドレスバスに送出し、この状態で更
に、バスB6にアドレスラッチイネーブル(ALE)信
号を送出すると共に、ライトイネーブル信号線B7−k
を介してNANDフラッシュメモリA−kにアクティブ
レベルのWE信号を供給するものとする。そして、NA
NDフラッシュメモリA−kは、自己に供給されるAL
E信号とWE信号とがいずれもアクティブレベルとなっ
た時点にデータ/アドレスバスに送出されているデータ
を、物理アドレスの一部を表すビット列としてラッチす
るものとする。
【0087】すなわち、たとえば図7に示すように、ス
トアコマンド「Coms」が送出された後、NANDフ
ラッシュメモリA−1にラッチさせるべきビット列のひ
とつ(図7で「add(1)」として示すデータ)をラ
ッチさせる場合は、バスB6のアドレスラッチイネーブ
ル(ALE)信号がアクティブレベル(図7で破線によ
り示す信号レベル)に保持された状態で、ライトイネー
ブル信号線B7−1に供給されるWE信号(図7で「W
E信号(B7−1)」として示す信号)がアクティブレ
ベルに達する時点において、このビット列「add
(1)」がバスB6にデータ/アドレス信号として送出
されているようにする。
【0088】また、NANDフラッシュメモリA−kに
ラッチさせるべきビット列のひとつ(図7で「add
(k)」として示すデータ)をラッチさせる場合は、バ
スB6のALE信号がアクティブレベルに保持された状
態で、ライトイネーブル信号線B7−kに供給されるW
E信号(図7で「WE信号(B7−k)」として示す信
号)がアクティブレベルに達する時点において、ビット
列「add(k)」がバスB6にデータ/アドレス信号
として送出されているようにする。
【0089】なお、NANDフラッシュメモリコントロ
ーラCAも、第1の実施の形態と同様、複数のNAND
フラッシュメモリにラッチさせるビット列が共通する場
合は、なるべくこの共通するビット列が同一のタイミン
グでこれらのNANDフラッシュメモリにラッチされる
よう、各ビット列の送出のタイミングを調整するものと
する。こうすることにより、NANDフラッシュメモリ
コントローラCAは、NANDフラッシュメモリA−1
〜A−nにブロックアドレスをラッチさせるために費や
す時間を短縮する。
【0090】すなわち、たとえば図7に示すように、N
ANDフラッシュメモリA−1及びA−nに共通にラッ
チさせるべきビット列(図7で「add(n)」として
示すデータ)をラッチさせる場合は、バスB6のALE
信号がアクティブレベルに保持された状態で、しかも、
WE信号(B7−1)と、ライトイネーブル信号線B7
−nに供給されるWE信号(図7で「WE信号(B7−
n)」として示す信号)とがいずれもアクティブレベル
に達する時点において、ビット列「add(n)」がバ
スB6にデータ/アドレス信号として送出されているよ
うにする。
【0091】なお、このフラッシュメモリ書込装置の構
成は上述のものに限られない。例えば、NANDフラッ
シュメモリA−1〜A−nは、ANDフラッシュメモリ
(例えば、日立製作所製のHN29W12811など)
より構成されていてもよい。
【0092】また、チップイネーブル(CE)信号によ
ってフラッシュメモリの入出力のイネーブル/ディスエ
ーブルを制御する構成を有したフラッシュメモリがあ
る。このようなフラッシュメモリにデータを書き込むた
め、ALE信号の代わりにCE信号を用いて物理アドレ
スのラッチを行わせるような構成を有していてもよい。
【0093】また、ALE信号の供給を受けずWE信号
のみによって物理アドレスのラッチを制御する構成を有
したフラッシュメモリがある。このようなフラッシュメ
モリにデータを書き込むため、ALE信号を用いずWE
信号を用いて物理アドレスのラッチを行わせ、シリアル
クロック信号を用いてデータの読み書きを制御する構成
を有してもよい。
【0094】その他、本発明の実施の形態に係るフラッ
シュメモリ書込装置の構成は、本発明の主旨の範囲内で
種々応用が可能である。
【0095】以上、この発明の実施の形態を説明した
が、この発明のデータ書込装置は、専用のシステムによ
らず、通常のコンピュータシステムを用いて実現可能で
ある。具体的には、たとえばNANDフラッシュメモリ
が接続されたコンピュータに上述のNANDフラッシュ
メモリコントローラCNの動作を実行するためのプログ
ラムを格納した媒体(フレキシブルディスク、CD−R
OM等)から当該プログラムをインストールしたり、A
NDフラッシュメモリが接続されたコンピュータに上述
のANDフラッシュメモリコントローラCAの動作を実
行するためのプログラムを格納した媒体から当該プログ
ラムをインストールしたりすることにより、上述の処理
を実行するフラッシュメモリ書込装置を構成することが
できる。
【0096】また、例えば、通信ネットワークの掲示板
(BBS)に当該プログラムを掲示し、これを通信回線
を介して配信してもよく、また、当該プログラムを表す
信号により搬送波を変調し、得られた変調波を伝送し、
この変調波を受信した装置が変調波を復調して当該プロ
グラムを復元するようにしてもよい。そして、当該プロ
グラムを起動し、OSの制御下に、他のアプリケーショ
ンプログラムと同様に実行することにより、上述の処理
を実行することができる。
【0097】なお、OSが処理の一部を分担する場合、
あるいは、OSが本願発明の1つの構成要素の一部を構
成するような場合には、記録媒体には、その部分を除い
たプログラムを格納してもよい。この場合も、この発明
では、その記録媒体には、コンピュータが実行する各機
能又はステップを実行するためのプログラムが格納され
ているものとする。
【0098】
【発明の効果】以上説明したように、この発明によれ
ば、不良メモリブロックを含み得る複数の記憶装置に効
率的に同一のデータを記憶させるためのデータ書込装置
及びデータ書込制御方法が実現される。
【図面の簡単な説明】
【図1】この発明の第1の実施の形態にかかるフラッシ
ュメモリ書込装置の基本構成を示す図である。
【図2】フラッシュメモリの物理的構成を示すブロック
図である。
【図3】フラッシュメモリの記憶領域の論理的構造を示
す図である。
【図4】データ書き込みの処理を示すフローチャートで
ある。
【図5】NANDフラッシュメモリコントローラがブロ
ックアドレス及びデータを供給するタイミング示す図で
ある。
【図6】この発明の第2の実施の形態にかかるフラッシ
ュメモリ書込装置の基本構成を示す図である。
【図7】ANDフラッシュメモリコントローラがブロッ
クアドレス及びデータを供給するタイミング示す図であ
る。
【符号の説明】
CN、CA NANDフラッシュメモリコントロー
ラ N−1〜N−n、A−1〜A−n ANDフラッシ
ュメモリ B1、B6 バス B2−1〜B2−n アドレスラッチイネーブル信
号線 B3−1〜B3−n コマンドラッチイネーブル信
号線 B4−1〜B4−n リードイネーブル信号線 B5−1〜B5−n レディー信号線 B7−1〜B7−n ライトイネーブル信号線

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】アドレスを割り当てられた複数のメモリブ
    ロックをそれぞれ含む複数の記憶装置に互いに同一のデ
    ータを記憶させるためのデータ書込装置であって、 各記憶装置は、シリアルデータの入力を指示するストア
    コマンド及びアドレスを供給された後に書き込む対象の
    データを供給され、最後に書き込みを指示するライトコ
    マンドを供給されたとき、当該アドレスを割り当てられ
    たメモリブロックに当該データを記憶する手段と、不良
    のメモリブロックを特定するエラー情報を供給する手段
    とを備えるものであり、 各記憶装置よりエラー情報を取得し、取得したエラー情
    報に基づき、同一のデータを記憶するメモリブロックの
    アドレスを記憶装置毎に決定するアドレス決定手段と、 各記憶装置にストアコマンドを供給し、同一のデータを
    記憶する各メモリブロックを示すものとして決定された
    各アドレスを記憶装置別に供給した後、当該データを各
    記憶装置に一括して供給し、最後にライトコマンドを供
    給することにより各該メモリブロックにデータを記憶さ
    せる書込手段と、を備える、 ことを特徴とするデータ書込装置。
  2. 【請求項2】各記憶装置は、アドレスの供給を複数個に
    分けて受けるものであり、 前記書込手段は、記憶装置別に供給する各アドレスを構
    成する複数個の部分のうち、複数の記憶装置に共通して
    いる部分を、当該複数の記憶装置に一括して供給する、 ことを特徴とする請求項1に記載のデータ書込装置。
  3. 【請求項3】各記憶装置は、データを記憶した後、当該
    データが正常に記憶された否かを判別して判別結果を前
    記書込手段に通知する手段を備えるものであり、 前記書込手段は、データが正常に記憶されていないこと
    を示す判別結果を通知されたとき、当該判別結果を通知
    した記憶装置のメモリブロックのうちから、当該データ
    を新たに記憶させる対象のメモリブロックを決定し、正
    常に記憶されなかったデータを当該メモリブロックに記
    憶させる手段を備える、 ことを特徴とする請求項1又は2に記載のデータ書込装
    置。
  4. 【請求項4】前記書込手段は、データを記憶させるべき
    メモリブロックが不足する記憶装置があるか否かを判別
    し、あると判別したとき、当該記憶装置のメモリブロッ
    クに当該データ以降のデータを記憶させるのを停止する
    手段を備える、 ことを特徴とする請求項1、2又は3に記載のデータ書
    込装置。
  5. 【請求項5】前記記憶装置は、NAND型フラッシュメ
    モリより構成されている、 ことを特徴とする請求項1乃至4のいずれか1項に記載
    のデータ書込装置。
  6. 【請求項6】前記記憶装置は、AND型フラッシュメモ
    リより構成されている、 ことを特徴とする請求項1乃至4のいずれか1項に記載
    のデータ書込装置。
  7. 【請求項7】アドレスを割り当てられた複数のメモリブ
    ロックをそれぞれ含む複数の記憶装置に互いに同一のデ
    ータを記憶させるためのデータ書込方法であって、 各記憶装置は、シリアルデータの入力を指示するストア
    コマンド及びアドレスを供給された後に書き込む対象の
    データを供給され、最後に書き込みを指示するライトコ
    マンドを供給されたとき、当該アドレスを割り当てられ
    たメモリブロックに当該データを記憶する手段と、不良
    のメモリブロックを特定するエラー情報を供給する手段
    とを備えるものであり、 各記憶装置よりエラー情報を取得し、取得したエラー情
    報に基づき、同一のデータを記憶するメモリブロックの
    アドレスを記憶装置毎に決定し、 各記憶装置にストアコマンドを供給し、同一のデータを
    記憶する各メモリブロックを示すものとして決定された
    各アドレスを記憶装置別に供給した後、当該データを各
    記憶装置に一括して供給し、最後にライトコマンドを供
    給することにより各該メモリブロックにデータを記憶さ
    せる、 ことを特徴とするデータ書込制御方法。
  8. 【請求項8】コンピュータを、 シリアルデータの入力を指示するストアコマンド及びア
    ドレスを供給された後に書き込む対象のデータを供給さ
    れ、最後に書き込みを指示するライトコマンドを供給さ
    れたとき、当該アドレスを割り当てられたメモリブロッ
    クに当該データを記憶する手段と、不良のメモリブロッ
    クを特定するエラー情報を供給する手段とを各々備える
    複数の記憶装置よりエラー情報を取得し、取得したエラ
    ー情報に基づき、同一のデータを記憶するメモリブロッ
    クのアドレスを記憶装置毎に決定するアドレス決定手段
    と、 各記憶装置にストアコマンドを供給し、同一のデータを
    記憶する各メモリブロックを示すものとして決定された
    各アドレスを記憶装置別に供給した後、当該データを各
    記憶装置に一括して供給し、最後にライトコマンドを供
    給することにより各該メモリブロックにデータを記憶さ
    せる書込手段と、 して機能させるためのプログラム。
JP2001301789A 2001-09-28 2001-09-28 データ書込装置、データ書込制御方法及びプログラム Expired - Fee Related JP3822081B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2001301789A JP3822081B2 (ja) 2001-09-28 2001-09-28 データ書込装置、データ書込制御方法及びプログラム
PCT/JP2002/010064 WO2003030181A1 (en) 2001-09-28 2002-09-27 Data writing apparatus, data writing method, and program
DE60205266T DE60205266T8 (de) 2001-09-28 2002-09-27 Datenschreibvorrichtung, datenschreibverfahren und programm
US10/476,475 US7191296B2 (en) 2001-09-28 2002-09-27 Data writing apparatus, data writing method, and program
EP02800271A EP1433183B1 (en) 2001-09-28 2002-09-27 Data writing apparatus, data writing method, and program
AT02800271T ATE300784T1 (de) 2001-09-28 2002-09-27 Datenschreibvorrichtung, datenschreibverfahren und programm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001301789A JP3822081B2 (ja) 2001-09-28 2001-09-28 データ書込装置、データ書込制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2003109384A true JP2003109384A (ja) 2003-04-11
JP3822081B2 JP3822081B2 (ja) 2006-09-13

Family

ID=19122146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001301789A Expired - Fee Related JP3822081B2 (ja) 2001-09-28 2001-09-28 データ書込装置、データ書込制御方法及びプログラム

Country Status (6)

Country Link
US (1) US7191296B2 (ja)
EP (1) EP1433183B1 (ja)
JP (1) JP3822081B2 (ja)
AT (1) ATE300784T1 (ja)
DE (1) DE60205266T8 (ja)
WO (1) WO2003030181A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215824A (ja) * 2004-01-28 2005-08-11 Sony Corp 半導体装置およびその起動処理方法
US7102927B2 (en) 2004-07-20 2006-09-05 Samsung Electronics Co., Ltd. Memory devices and programming methods that simultaneously store erase status indications for memory blocks
JP2007012221A (ja) * 2005-07-04 2007-01-18 Advantest Corp 試験装置、及び製造方法
JP2007525754A (ja) * 2004-02-03 2007-09-06 ネクステスト システムズ コーポレイション メモリデバイスのテストおよびプログラミングの方法並びにそのシステム
JP2008009932A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 半導体記憶装置およびその制御方法
US7457911B2 (en) 2005-03-25 2008-11-25 Samsung Electronics Co., Ltd. Nonvolatile memory device and method for storing status information using multiple strings
JP2010134741A (ja) * 2008-12-05 2010-06-17 Internatl Business Mach Corp <Ibm> プログラムを実行する方法およびシステム
JP2012505472A (ja) * 2008-10-13 2012-03-01 マイクロン テクノロジー, インク. ソリッドステート記憶装置におけるトランスレーションレイヤ
US9159438B2 (en) 2006-12-29 2015-10-13 Samsung Electronics, Co., Ltd. NAND flash memory having C/A pin and flash memory system including the same

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
EP1501100B1 (en) * 2003-07-22 2018-11-28 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system, and operating methods
JP4561110B2 (ja) * 2004-01-29 2010-10-13 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
TW200604810A (en) * 2004-02-20 2006-02-01 Renesas Tech Corp Nonvolatile memory and data processing system
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
FR2874440B1 (fr) * 2004-08-17 2008-04-25 Oberthur Card Syst Sa Procede et dispositif de traitement de donnees
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7609561B2 (en) * 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US8170402B2 (en) * 2006-04-07 2012-05-01 Cinegest, Inc. Portable high capacity digital data storage device
US7558131B2 (en) * 2006-05-18 2009-07-07 Micron Technology, Inc. NAND system with a data write frequency greater than a command-and-address-load frequency
US20080010510A1 (en) * 2006-06-19 2008-01-10 Tony Turner Method and system for using multiple memory regions for redundant remapping
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
KR101433861B1 (ko) * 2007-10-22 2014-08-27 삼성전자주식회사 메모리 시스템 및 그 구동방법
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
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
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
CN101615145B (zh) * 2009-07-24 2011-12-07 中兴通讯股份有限公司 一种提高存储器数据缓存可靠性的方法和装置
JP2012182788A (ja) * 2011-02-10 2012-09-20 Panasonic Corp 記録システム、記録方法およびコンピュータプログラム
US9037931B2 (en) * 2011-12-21 2015-05-19 Advanced Micro Devices, Inc. Methods and systems for logic device defect tolerant redundancy
EP2608211A1 (en) * 2011-12-22 2013-06-26 Fluiditech IP Limited Method of testing a flash memory
US20130166795A1 (en) * 2011-12-23 2013-06-27 Stec, Inc. System and method for streaming data in flash memory applications
US20150205541A1 (en) * 2014-01-20 2015-07-23 Samya Systems, Inc. High-capacity solid state disk drives

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
JP3589033B2 (ja) 1998-06-25 2004-11-17 東京エレクトロンデバイス株式会社 フラッシュメモリシステム
JP3597393B2 (ja) 1998-08-19 2004-12-08 シャープ株式会社 データ記録再生装置
JP2000276367A (ja) 1999-03-23 2000-10-06 Advantest Corp データ書込装置、データ書込方法、及び試験装置
KR100330164B1 (ko) 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
US6535780B1 (en) 1999-11-10 2003-03-18 Data I/O Corporation High speed programmer system
JP4371524B2 (ja) 2000-03-17 2009-11-25 株式会社東芝 メモリの不良エリア管理回路
US6528843B1 (en) * 2002-05-03 2003-03-04 Silicon Based Technology Corp. Self-aligned split-gate flash memory cell having a single-side tip-shaped floating-gate structure and its contactless flash memory arrays

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215824A (ja) * 2004-01-28 2005-08-11 Sony Corp 半導体装置およびその起動処理方法
US8135991B2 (en) 2004-01-28 2012-03-13 Sony Corporation Semiconductor device and processing method for starting the same
JP2007525754A (ja) * 2004-02-03 2007-09-06 ネクステスト システムズ コーポレイション メモリデバイスのテストおよびプログラミングの方法並びにそのシステム
JP4850720B2 (ja) * 2004-02-03 2012-01-11 ネクステスト システムズ コーポレイション メモリデバイスのテストおよびプログラミングの方法並びにそのシステム
KR101195679B1 (ko) * 2004-02-03 2012-10-30 넥스테스트 시스템즈 코포레이션 메모리 소자들을 테스트하고 프로그래밍하기 위한 방법 및 이를 위한 시스템
US7102927B2 (en) 2004-07-20 2006-09-05 Samsung Electronics Co., Ltd. Memory devices and programming methods that simultaneously store erase status indications for memory blocks
US7457911B2 (en) 2005-03-25 2008-11-25 Samsung Electronics Co., Ltd. Nonvolatile memory device and method for storing status information using multiple strings
JP2007012221A (ja) * 2005-07-04 2007-01-18 Advantest Corp 試験装置、及び製造方法
JP2008009932A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 半導体記憶装置およびその制御方法
US9159438B2 (en) 2006-12-29 2015-10-13 Samsung Electronics, Co., Ltd. NAND flash memory having C/A pin and flash memory system including the same
JP2012505472A (ja) * 2008-10-13 2012-03-01 マイクロン テクノロジー, インク. ソリッドステート記憶装置におけるトランスレーションレイヤ
JP2010134741A (ja) * 2008-12-05 2010-06-17 Internatl Business Mach Corp <Ibm> プログラムを実行する方法およびシステム

Also Published As

Publication number Publication date
US7191296B2 (en) 2007-03-13
EP1433183B1 (en) 2005-07-27
DE60205266T2 (de) 2006-03-30
WO2003030181A1 (en) 2003-04-10
ATE300784T1 (de) 2005-08-15
DE60205266D1 (de) 2005-09-01
DE60205266T8 (de) 2006-06-08
US20040172576A1 (en) 2004-09-02
JP3822081B2 (ja) 2006-09-13
EP1433183A1 (en) 2004-06-30

Similar Documents

Publication Publication Date Title
JP3822081B2 (ja) データ書込装置、データ書込制御方法及びプログラム
US8161230B2 (en) Nonvolatile memory system, and data read/write method for nonvolatile memory system
US7836245B2 (en) Nonvolatile memory system, and data read/write method for nonvolatile memory system
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6809964B2 (en) Nonvolatile semiconductor memory device capable of transferring data internally without using an external bus
US6906961B2 (en) Erase block data splitting
EP0675502B1 (en) Multiple sector erase flash EEPROM system
US6798696B2 (en) Method of controlling the operation of non-volatile semiconductor memory chips
US5754567A (en) Write reduction in flash memory systems through ECC usage
US7787297B2 (en) Flash memory device and flash memory system
JP4761959B2 (ja) 半導体集積回路装置
US5920884A (en) Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data
JP3574078B2 (ja) 記憶装置と記憶装置制御方法
JP3310011B2 (ja) 半導体メモリおよびこれを使用した半導体メモリボード
JP2004507007A (ja) 不揮発性メモリに対する信頼性の高いデータコピー処理を行うための新規の方法および構造
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2720013B2 (ja) 書込みチェック機能を備えた電気的に変更可能な不揮発性メモリ
US20030103392A1 (en) Method of controlling the operation of non-volatile semiconductor memory chips
JP2003187599A (ja) 不揮発性半導体記憶装置
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2004039055A (ja) 不揮発性半導体記憶装置
JP2007280140A (ja) 半導体記憶装置および信号処理システム
JPH10289221A (ja) マイクロコントローラ
JP2009003570A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060621

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees