JP3321587B2 - フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置 - Google Patents

フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置

Info

Publication number
JP3321587B2
JP3321587B2 JP3705496A JP3705496A JP3321587B2 JP 3321587 B2 JP3321587 B2 JP 3321587B2 JP 3705496 A JP3705496 A JP 3705496A JP 3705496 A JP3705496 A JP 3705496A JP 3321587 B2 JP3321587 B2 JP 3321587B2
Authority
JP
Japan
Prior art keywords
data
flash memory
page
write
read
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
JP3705496A
Other languages
English (en)
Other versions
JPH09213064A (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.)
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 JP3705496A priority Critical patent/JP3321587B2/ja
Priority to TW086100801A priority patent/TW327227B/zh
Priority to KR1019970002071A priority patent/KR100359414B1/ko
Priority to US08/789,544 priority patent/US6131139A/en
Publication of JPH09213064A publication Critical patent/JPH09213064A/ja
Application granted granted Critical
Publication of JP3321587B2 publication Critical patent/JP3321587B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0010】
【発明の属する技術分野】本発明は、複数個のフラッシ
ュ・メモリを同一バス上に接続したメモリシステムに関
する。
【0020】
【従来の技術】一般に、記憶容量が決まっている半導体
メモリを用いるメモリシステムにおいて、システム全体
の記憶容量を大きくするには、同一のバス上に並列に多
数の半導体メモリ(チップ)を接続する構成がとられ
る。このようなメモリシステムでは、該バスに接続され
ているコントローラ(またはコンピュータ)が或る半導
体メモリにアクセスしている間、バスはこの半導体メモ
リに占有され、他の半導体メモリはコントローラから事
実上隔離された状態に置かれる。そして、該半導体メモ
リに対するアクセスが終了した時点で、バスは開放さ
れ、他の半導体メモリに対するアクセスが可能となる。
【0030】ところで、近年、ハード・ディスクやフロ
ッピー・ディスク等の磁気メモリに置き換わる半導体メ
モリとして、フラッシュ・メモリ(フラッシュEEPR
OM)が注目されている。フラッシュ・メモリは、不揮
発性で消費電力が少なく電気的に書き換え可能な半導体
メモリであり、軽量小型で耐震性が良いため、携帯機器
等への用途が拡大している。
【0040】一般に、フラッシュ・メモリを外部記憶装
置に用いるコンピュータ・システムでは、フラッシュ・
メモリ専用のコントローラがあてがわれる。ホストコン
ピュータ(たとえばパソコン)はこのコントローラに対
してデータの書込みや読出しを指示すればよい。コント
ローラは、ホストからの指示(コマンド)を受けてフラ
ッシュ・メモリに対してデータの書込みや読出しを直接
制御し、さらにはフラッシュ・メモリに特有の一括消去
等のメモリ管理を行う。
【0050】
【発明が解決しようとする課題】上記のようなフラッシ
ュ・メモリを用いるシステムでも、システム全体で所望
の記憶容量を得るために、内部バス上に複数個のフラッ
シュ・メモリを接続する構成を採ることが多い。
【0060】従来のこの種フラッシュ・メモリ・システ
ムでは、上記のような内部バス上の制限、つまり或るメ
モリにアクセスが行われている最中は他のメモリへのア
クセスができないというハードウェア上の制限にしたが
い、コントローラは或るフラッシュ・メモリに対する書
込みのアクセスと別のフラッシュ・メモリに対する読出
しのアクセスとを非同時的または非並列的に実行するよ
うにしていた。
【0070】このため、たとえばデータの書き換えのた
めに、或るフラッシュ・メモリ内のほぼ1ブロック分の
データを別のフラッシュ・メモリの空きブロックに移す
場合には、移動元のフラッシュ・メモリから1ページま
たはセクタ分のデータを読み出す読出しサイクルと、こ
の読み出した1ページ分のデータを移動先のフラッシュ
・メモリへデータを書き込む書込みサイクルとを交互に
(時間的にシリアルに)繰り返す操作が行われていた。
したがって、移動の対象となるページの総数をN、1回
の読出しサイクルをTR 、1回の書込みサイクルをTW
とすると、トータルでほぼN(TR +TW )に相当する
時間を要していた。
【0080】しかし、このような非同時的または非並列
的な書込み/読出し方法は、複数個のROMやRAMを
同一バス上に接続してなる従来一般のメモリシステムに
おけるメモリアクセス方法をそのまま踏襲するものであ
って、フラッシュ・メモリに特有の性質を看過してい
た。
【0090】つまり、フラッシュ・メモリにおいては、
データの書込みに要する時間と読出しに要する時間との
間には格段の差がある。データの書込みは、メモリセル
(EEPROM)にホットエレクトロンを注入すること
によって行うため、300〜500μs程度の長い時間
を必要とする。これに対して、データの読出しは、メモ
リセルのゲートに所定の電圧を印加してこのメモリセル
が導通するか否かを検出して(つまり電流を検出して)
行うため、25μs程度の短い時間で済む。
【0100】そして、一般のフラッシュ・メモリにおい
ては、上記のように書込みの所要時間が長いため、メモ
リ・チップ内で書込み動作が行われている間はビジー端
子を除いてどの端子も閉じた状態になり、外部からの制
御信号やデータを受け付けないように構成されている。
【0110】本発明は、上記のような従来技術の問題点
およびフラッシュ・メモリの性質に着眼してなされたも
のであり、複数個のフラッシュ・メモリを同一バス上に
接続してなるフラッシュメモリシステムにおいて、ペー
ジ単位でのデータ書き換えのための処理時間を大幅に短
縮し、システム性能を向上させるデータ書き換え方法お
よびメモリ制御装置を提供することを目的とする。
【0120】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明のデータ書き換え方法は、記憶領域を複数
個のブロックに分割し、各々のブロックを複数個のペー
ジに分割し、各々のページを複数バイト容量のデータ格
納領域とし、ブロック単位でデータの一括消去を行い、
1回のメモリアクセスで1ページ分のデータの書き込み
および読み出しを行うように各々が構成された複数個の
フラッシュ・メモリをコマンド、アドレスおよびデータ
兼用の共通バスに接続したフラッシュメモリシステムに
おいて任意の第1のフラッシュ・メモリ内のデータを書
き換えるデータ書き換え方法であって、システムの外部
より与えられた書き込みアドレスに基づいて前記第1の
フラッシュ・メモリ内でデータ書き換えの対象となるブ
ロックおよびページを識別する第1のステップと、前記
データ書き換えのためのデータ移動先となる第2のフラ
ッシュ・メモリおよびそのメモリ内の空きブロックを決
定する第2のステップと、前記第1のフラッシュ・メモ
リの前記データ書き換え対象ブロックに含まれる前記デ
ータ書き換え対象ページ以外の各ページより1ページ分
のデータを読み出すための読み出しサイクルを実行する
第3のステップと、各々の前記読み出しサイクルの直後
に、前記読み出された1ページ分のデータを前記第1の
フラッシュ・メモリ内の読み出し元のページと対応する
前記第2のフラッシュ・メモリの前記空きブロック内の
ページに書き込むための第1の書き込みサイクルを実行
する第4のステップと、前記データ書き換えのための新
たな1ページ分のデータを前記第1のフラッシュ・メモ
リの前記データ書き換え対象ブロック内の前記データ書
き換え対象ページと対応する前記第2のフラッシュ・メ
モリの前記空きブロック内のページに書き込むための第
2の書き込みサイクルを実行する第5のステップとを有
し、前記読み出しサイクルにおいて、前記第1のフラッ
シュ・メモリに前記共通バスを介して読み出し用のコマ
ンドおよび読み出しアドレスを所定のタイミングで順次
与えて、第1の時間経過後に前記第1のフラッシュ・メ
モリより読み出された前記1ページ分のデータを前記共
通バスを介して取り込み、前記第1および第2の書き込
みサイクルにおいて、前記第2のフラッシュ・メモリに
前記共通バスを介してデータ入力のコマンド、書き込み
アドレス、書き込み対 象の1ページ分のデータおよび書
き込み用のコマンドを所定のタイミングで順次与えて、
前記第2のフラッシュ・メモリに前記第1の時間よりも
格段に長い第2の時間内に外部からの信号を受け付けな
い状態で前記書き込みアドレスの指定する記憶領域に前
記1ページ分のデータを書き込ませ、少なくとも1回の
前記第4または第5のステップにおける前記第1または
第2の書き込みサイクルの期間中に前記第3のステップ
における前記読み出しサイクルを実行させる方法とし
た。
【0130】本発明のデータ書き換え方法では、第1の
フラッシュ・メモリ内で新たなデータを書き込むべきペ
ージ(書き換え対象のページ)に現在データが書き込ま
れているときは、その新たなデータをその旧データの上
に重ね書きするのではなく、第2のフラッシュ・メモリ
内の空きブロック内のページに書き込む。それに伴っ
て、第1のフラッシュ・メモリ内の書き換え対象ページ
を含むブロック内の他のページに格納されているデータ
を第2のフラッシュ・メモリ内の該空きブロックにそっ
くり移し替える処理を行う。このデータ移し替え処理に
おいて、第2のフラッシュ・メモリに対する書き込みサ
イクルを実行している期間中に第1のフラッシュ・メモ
リに対する読み出しサイクルを同時的または並列的に実
行させることで、書き換え処理時間を大幅に短縮でき
る。もっとも、通常は、データ書き換えのための新たな
1ページ分のデータは第1のフラッシュ・メモリより読
み出されるのではなくシステムの外部から与えられるの
で、その新たな1ページ分のデータに係る書き込みサイ
クル(第2の書き込みサイクル)の直前の書き込みサイ
クル(第1の書き込みサイクル)の期間中は第1のフラ
ッシュ・メモリに対する読み出しサイクルを行う必要は
ない。また、第1のフラッシュ・メモリのデータ書き換
え対象ブロックより最後に読み出された1ページ分のデ
ータを第2のフラッシュ・メモリに書き込む間も、次に
第1のフラッシュ・メモリより読み出すべきデータはも
はや無くなっているので、読み出しサイクルを行う必要
はない。
【0140】本発明のメモリ制御装置は、記憶領域を複
数個のブロックに分割し、各々のブロックを複数個のペ
ージに分割し、各々のページを複数バイト容量のデータ
格納領域とし、ブロック単位でデータの一括消去を行
い、1回のメモリアクセスで1ページ分のデータの書き
込みおよび読み出しを行うように各々が構成された複数
個のフラッシュ・メモリにコマンド、アドレスおよびデ
ータ兼用の共通バスを介して接続されるメモリ制御装置
であって、外部より与えられるデータ書き込みまたは読
み出しのための論理アドレスを物理アドレスに変換する
ためのアドレス変換手段と、各々の前記フラッシュ・メ
モリについて現在データが書き込まれている使用中ブロ
ックと何のデータも書き込まれていない空きブロックと
を管理するブロック管理手段と、指定されたフラッシュ
・メモリ内のページより1ページ分のデータを所定の読
み出しサイクルで読み出すデータ読み出し手段と、指定
されたフラッシュ・メモリ内の空きページに1ページ分
のデータを所定の書き込みサイクルで書き込むデータ書
き込み手段と、第1のフラッシュ・メモリにおけるデー
タ書き換えのために前記ブロック管理手段からのブロッ
ク管理情報を基に1ブロック分のデータの移動先となる
第2のフラッシュ・メモリおよびそのメモリ内の空きブ
ロックを決定するデータ移動先決定手段と、前記データ
書き換えにおいて、少なくとも1回の前記第2のフラッ
シュ・メモリに対する前記データ書き込み手段の書き込
みサイクルの期間中に前記第1のフラッシュ・メモリに
対する前記データ読み出し手段の読み出しサイクルを実
行させるシーケンス制御手段とを有し、前記読み出しサ
イクルにおいて、前記データ読み出し手段が、前記第1
のフラッシュ・メモリに前記共通バスを介して読み出し
用のコマンドおよび読み出しアドレスを所定のタイミン
グで順次与えて、第1の時間経過後に前記第1のフラッ
シュ・メモリより読み出された前記1ページ分のデータ
を前記共通バスを介して取り込み、前記書き込みサイク
ルにおいて、前記データ書き込み手段が前記第2のフラ
ッシュ・メモリに前記共通バスを介してデータ入力のコ
マンド、書き込みアドレス、書き込み対象の1ページ分
のデータおよび書き込み用のコマンドを所定のタイミン
グで順次与え、前記第2のフラッシュ・メモリが前記書
き込み用のコマンドに応答して前記第1の時間よりも格
段に長い第2の時間内に外部か らの信号を受け付けない
状態で前記書き込みアドレスで指定される記憶領域内に
前記1ページ分のデータを書き込む構成とした。
【0150】本発明のメモリ制御装置は、上記の構成に
より、本発明のデータ書き換え方法を効率よく実施する
ことができる。好ましくは、前記データ書き込み制御手
段および前記データ読み出し制御手段が前記フラッシュ
・メモリの各々を個別的に動作可能状態とするための各
フラッシュ・メモリ専用のチップ・イネーブル制御線を
含む構成、前記データ読み出し制御手段が前記フラッシ
ュ・メモリの各々を個別的に出力イネーブル状態にする
ための各フラッシュ・メモリ専用の出力イネーブル制御
線を含む構成、あるいは前記データ書き込み制御手段お
よび前記データ読み出し制御手段が前記フラッシュ・メ
モリの各々がビジー状態であるか否かを個別的に認識可
能とするための各フラッシュ・メモリ専用のビジー線を
含む構成としてよい。
【0160】
【発明の実施の形態】以下、添付図を参照して本発明の
実施例を説明する。
【0170】図1は、本発明の一実施例によるフラッシ
ュ・ディスク・システムの構成を示す。このシステムに
おいて、1つのコントローラ10および複数個(n+1
個)のNAND型フラッシュ・メモリFM0 〜FMn の
各チップは一枚のカード(フラッシュ・ディスク・カー
ド)12上に搭載されている。カード12がホストコン
ピュータ14のカード・スロットに装着され、コントロ
ーラ10はホストコンピュータ14に所定規格のインタ
フェースたとえばPCMCIA−ATAまたはIDEイ
ンタフェース16で接続される。フラッシュ・メモリF
M0 〜FMn は同一構成および機能を有するメモリ・チ
ップからなる。
【0180】カード12上で、コントローラ10は、た
とえば8ビット幅の内部バスFD0〜7 と、全てのフラ
ッシュ・メモリFM0 〜FMn に共通な各1本の制御線
FCLE、FALE、XFWPおよびXFWE- と、各
々のフラッシュ・メモリFM0 〜FMn に個別的に割り
当てられた各(n+1)本の制御線XFCE0-〜XFC
En-、XFRE0-〜XFREn-およびXFBSY0-〜X
FBSYn-とを介して各フラッシュ・メモリFM0 〜F
Mn に接続されている。
【0190】内部バスFD0 〜7 は、コントローラ10
と各フラッシュ・メモリFM0 〜FMn 間のコマンド、
アドレスおよびデータの伝送に兼用される。上記共通制
御線のうち、FCLEは、バスFD0 〜7 上のコマンド
コードをフラッシュ・メモリFM0 〜FMn にコマンド
として識別させるためのコマンド・ラッチ・イネーブル
制御線である。FALEは、バスFD0 〜7 上のアドレ
スコードをフラッシュ・メモリFM0 〜FMn にアドレ
スとして識別させるためのアドレス・ラッチ・イネーブ
ル制御線である。XFWPは、フラッシュ・メモリFM
0 〜FMn に書込みを強制的に禁止させるためのライト
・プロテクト制御線である。XFWE-は、バスFD0
〜7 上のコードまたはデータを各フラッシュ・メモリF
M0 〜FMn に取り込ませるためのライト・イネーブル
制御線である。
【0200】また、上記個別的制御線のうち、XFCE
0-〜XFCEn-は、各フラッシュ・メモリFM0 〜FM
n を個別的または独立的にチップ・イネーブル状態(動
作可能状態)にするためのチップ・イネーブル制御線で
ある。XFRE0-〜XFREn-は、各フラッシュ・メモ
リFM0 〜FMn の出力ポートから読出しデータをバス
FD0 〜7 上に個別的または独立的に出力させるための
リード(出力)・イネーブル制御線である。また、XF
BSY0-〜XFBSYn-は、各フラッシュ・メモリFM
0 〜FMn が各々のビジー状態を個別的または独立的に
コントローラ10に知らせるためのビジー線である。
【0210】図2に、コントローラ10の内部の機能的
構成をブロック図で示す。コントローラ10は、本体イ
ンタフェース部20、リセット処理部22、アドレス変
換部24、コマンド処理部26、フラッシュ・テーブル
制御部28、フラッシュ・コマンド発生部30、エラー
制御部32およびフラッシュ・インタフェース部34を
有している。
【0220】本体インタフェース部20は、ホストコン
ピュータ14から直接書込み/読出し可能な種々のレジ
スタを内蔵しており、ホスト14のバスに所定規格のイ
ンタフェースたとえばPCMCIA−ATAまたはID
Eインタフェースで接続される。
【0230】このホストインタフェースにおいて、ホス
ト14から本体インタフェース部20内の各レジスタを
選択するために、アドレス信号A0 〜10と制御信号XC
E1〜2 が用いられる。アドレスマップのメモリ空間と
I/O空間の選択に、XREGが用いられる。メモリ空
間の書込み/読出しには制御信号XWE- /XOE-
用いられ、I/O空間の書込み/読出しには制御信号X
IOWR- /XIORD- が用いられる。本体インタフ
ェース部20からホスト14に対しては、割込み要求信
号XIREQ- 、入力アクノリッジ信号XINPACK
- 等が発せられる。本体インタフェース部20には、ホ
スト14からのコマンドをデコードする回路も含まれて
いる。
【0240】リセット処理部22は、外部からのリセッ
ト信号たとえばXPONRSTに応動してコントローラ
10内の各部をリセット状態にする処理のほか、リセッ
ト解除後の初期化の処理を制御する。
【0250】アドレス変換部24は、ホスト14側が指
定してくるCHS(シリンダ・ヘッド・セクタ)モード
の論理アドレスをフラッシュ・ディスク内のLBA(論
理ブロック・アドレス)モードの論理アドレスに変換す
る。
【0260】コマンド処理部26は、本体インタフェー
ス部20でデコードされたホスト14からのコマンドを
実行するため、コントローラ10内の各部を制御する。
【0270】フラッシュ・テーブル制御部28は、リセ
ット処理部22やコマンド処理部26等からの要求によ
り、アドレス変換テーブルおよび空きブロック・テーブ
ルの初期化を行うとともに、ホスト14からのコマンド
に応動してテーブルの検索ないし更新を行う。フラッシ
ュ・テーブル制御部28には、たとえばSRAMからな
る揮発性のテーブル・メモリが設けられ、このメモリ上
にアドレス変換テーブルおよび空きブロック・テーブル
が構築される。
【0280】フラッシュ・コマンド発生部30は、フラ
ッシュ・テーブル制御部28やコマンド処理部26等か
らの要求により、フラッシュ・メモリFM0 〜FMn に
対するコマンドコードおよびアドレス信号を発生する。
【0290】エラー制御部32は、書込み/読出し時の
ECC(Error Checking and Correction )処理を実行
する。
【0300】フラッシュ・インタフェース部34は、上
記の共通バスFD0 〜7 および各種制御線(FCLE、
FALE等)を介してフラッシュ・メモリFM0 〜FM
n とデータおよび信号をやりとりする入出力ポートであ
り、共通バスFD0 〜7 上でコマンド、アドレスおよび
データを異なるタイミングで多重化するタイミング制御
機能を有している。
【0310】図3に、各フラッシュ・メモリFMi (i
=0〜n)内の記憶領域の区分フォーマットを示す。各
フラッシュ・メモリFMi の全記憶領域は複数個たとえ
ば512個のブロックBL0 〜BL511 に分割され、各
ブロックBLj (j=0〜511)は複数個たとえば1
6個のページまたはセクタPG0 〜PG15に分割されて
いる。通常、プログラミング(書込み)や読出しはペー
ジ単位で行われ、消去はブロック単位で行われる。
【0320】各ページPGk (k=0〜15)は、所定
容量たとえば512バイトのデータ領域と、所定容量た
とえば16バイトの冗長部とからなる。データ領域が本
来のデータ格納領域である。冗長部は幾つかのフィール
ドに区切られ、それぞれのフィールドに所定のデータ量
(バイト数)で当該ブロックBLj に現在割り付けられ
ている論理アドレスを示す「変換テーブルアドレス」や
当該ブロックBLj の良否を示す「ブロックステータ
ス」等の冗長データが格納される。なお、当該ブロック
BLj が現在何のデータも蓄積していない空きブロック
であるときは、冗長データに「変換テーブルアドレス」
のデータは含まれていない。
【0330】図4に、各フラッシュ・メモリFMi の内
部の構成例を示す。フラッシュ・メモリ・アレイ40
は、マトリクス状に配置された多数のメモリ・セルから
構成されている。たとえば、図3のように1チップのフ
ラッシュ・メモリFMi が512個のブロックBL0 〜
BL511 を有し、各ブロックBLj は16個のページま
たはセクタPG0 〜PG15からなり、各ページPGk が
512バイトのデータ領域と16バイトの冗長部とから
なる場合、メモリ・アレイ40は8192(16×51
2)行×528(512+16)列のメモリ・セルから
構成され、32メガバイトの記憶容量を有する。
【0340】フラッシュ・メモリ・アレイ40は、ペー
ジレジスタ42およびゲート回路44を介して1ページ
分(528バイト)の蓄積容量を有するI/Oバッファ
46に電気的に接続されており、メモリ・アレイ40と
I/Oバッファ46との間でページ単位の並列的なデー
タ転送が行われるようになっている。このフラッシュ・
メモリFMi では、I/Oバッファ46が実質上の出力
ポートを構成する。
【0350】バスFD0 〜7 上のコマンド、アドレスま
たはデータは、クローバル・バッファ48を介してそれ
ぞれコマンド・レジスタ50、X,Yアドレス・バッフ
ァ52,54およびI/Oバッファ46にラッチされ
る。
【0360】コマンド・レジスタ50は、入力したコマ
ンドをデコードした上でアドレス・バッファ52,54
ないしアドレス・デコーダ56,58およびI/Oバッ
ファ46を制御する。このコマンド・レジスタ50に
は、メモリ内の状態を示すステータス情報を保持するス
テータス・レジスタが含まれている。
【0370】Xアドレス・バッファ52は行アドレスA
DX を取り込み、Xアドレス・デコーダ56はこの行ア
ドレスADX をデコードしてアレイ40内の指定(選
択)された行(ページ)をアクティブにする。Yアドレ
ス・バッファ54は、列アドレスADY を取り込み、Y
アドレス・デコーダ58はこの列アドレスADY をデコ
ードしてアレイ40内の指定(選択)された列のデータ
を転送するようゲート回路44を制御する。
【0380】制御回路60は、コントローラ10からの
制御信号FCLE、FALE、FWP、XFCEi-、X
FWE- 、XFREi-を入力し、各制御信号に応動して
メモリ内の各部を制御する。出力ドライバ62は、I/
Oバッファ46にセットされている読出しデータをバス
FD0 〜7 上に送出する際にバスラインを駆動する。
【0390】次に、図5のタイミングチャートを参照
し、本実施例のフラッシュ・ディスク・システムにおい
て或るフラッシュ・メモリ(たとえばFM1 )に1ペー
ジ分のデータを書き込む書込みサイクルを実行している
最中に、別のフラッシュ・メモリ(たとえばFM0 )よ
り1ページ分のデータを読み出す読出しサイクルを同時
的または並列的に実行する動作について説明する。
【0400】コントローラ10は、フラッシュ・メモリ
FM1 における書込みサイクルTWの全期間を通じてチ
ップ・イネーブル制御信号XFCE1-をアクティブ(L
レベル)に保持し、フラッシュ・メモリFM1 をチップ
・イネーブル(動作可能)状態に保つ。
【0410】先ず、コントローラ10は、コマンド・ラ
ッチ・イネーブル制御信号FCLEをアクティブ(Hレ
ベル)にして、バスFD0 〜7 上に所定コードのデータ
入力コマンドCMS を送出すると同時に、ライト・イネ
ーブル制御信号XFWE- をアクティブ(Lレベル)と
する。このコントローラ10からのコマンド書込み操作
に応動して、フラッシュ・メモリFM1 はバスFD0 〜
7 上の該データ入力コマンドCMS を取り込んで自己の
コマンド・レジスタ50にラッチする。
【0420】次に、コントローラ10は、アドレス・ラ
ッチ・イネーブル制御信号FALEをアクティブ(Hレ
ベル)にして、バスFD0 〜7 上に所定ビット数の書込
みアドレスADW を1回でまたは複数回(この例では3
回)に分割して送出し、その都度ライト・イネーブル制
御信号XFWE- をアクティブ状態(Lレベル)とす
る。このコントローラ10からのアドレス書込み操作に
応動して、フラッシュ・メモリFM1 はバスFD0 〜7
上の該書込みアドレスADW を取り込んで自己のアドレ
ス・バッファ52,54にラッチする。この書込みアド
レスADW は、フラッシュ・メモリFM1 内で書込み先
となるページを指定している。
【0430】次に、コントローラ10は、コマンド・ラ
ッチ・イネーブル制御信号FCLEおよびアドレス・ラ
ッチ・イネーブル制御信号FALE- をそれぞれ非アク
ティブ(Lレベル)にした状態で、バスFD0 〜7 上に
1ページ分(528バイト)の書込みデータDATAW
を1バイトずつ送出し、その都度ライト・イネーブル制
御信号XFWE- をアクティブ状態(Lレベル)とす
る。フラッシュ・メモリFM1 は、ライト・イネーブル
制御信号XFWE- に応動してバスFD0 〜7 上のデー
タDATAW を1バイトずつ取り込んでI/Oバッファ
46に格納する。
【0440】次に、コントローラ10は、再びコマンド
・ラッチ・イネーブル制御信号FCLEをアクティブ
(Hレベル)にして、バスFD0 〜7 上に所定コードの
プログラム・コマンドCMP を送出すると同時に、ライ
ト・イネーブル制御信号XFWE- をアクティブ(Lレ
ベル)とする。このコントローラ10からのコマンド書
込み操作に応動して、フラッシュ・メモリFM1 はバス
FD0 〜7 上の該プログラム・コマンドCMP を取り込
んでコマンド・レジスタ50にラッチし、プログラミン
グ動作を開始する。
【0450】すなわち、フラッシュ・メモリFM1 は、
該プログラム・コマンドCMP をデコードし、該書込み
アドレスADW で指定されるフラッシュ・メモリ・アレ
イ40内の記憶領域(ページ)に、I/Oバッファ46
に格納されている1ぺージ分(528バイト)のデータ
DATAW を書き込む。このメモリ内のデータ書込み動
作にはたとえば300μs程度の一定時間tWBを要す
る。フラッシュ・メモリFM1 は、このデータ書込み動
作を開始すると、ビジー信号XFBSY1-をアクティブ
(Lレベル)とし、以後データ書込み動作が終了するま
で(一定時間tWBが経過するまで)このビジー状態を保
持する。
【0460】フラッシュ・メモリFM1 がビジー信号X
FBSY1-をアクティブ(Lレベル)にすると、これに
応動してコントローラ10はフラッシュ・メモリFM0
における読出しサイクルTR を開始する。この読出しサ
イクルTR のため、コントローラ10は、チップ・イネ
ーブル制御信号XFCE0-をアクティブ(Lレベル)に
保持し、フラッシュ・メモリFM0 をチップ・イネーブ
ル(動作可能)状態に保つ。
【0470】先ず、コントローラ10は、コマンド・ラ
ッチ・イネーブル制御信号FCLEをアクティブ(Hレ
ベル)にして、バスFD0 〜7 上に所定コードの読出し
コマンドCMR を送出すると同時に、ライト・イネーブ
ル制御信号XFWE- をアクティブ(Lレベル)とす
る。このコントローラ10からのコマンド書込み操作に
応動して、フラッシュ・メモリFM0 はバスFD0 〜7
上から該読出しコマンドCMR を取り込んで自己のコマ
ンド・レジスタ50にラッチする。
【0480】次に、コントローラ10は、アドレス・ラ
ッチ・イネーブル制御信号FALEをアクティブ(Hレ
ベル)にして、バスFD0 〜7 上に所定ビット数の読出
しアドレスADR を1回でまたは複数回(この例では3
回)に分割して送出し、その都度ライト・イネーブル制
御信号XFWE- をアクティブ状態(Lレベル)とす
る。この読出しアドレスADR は、フラッシュ・メモリ
FM0 内で読出し元となるページを指定している。
【0490】このコントローラ10からのアドレス書込
み操作に応動して、フラッシュ・メモリFM0 はバスF
D0 〜7 上の該読出しアドレスADR を取り込んで、メ
モリ内のデータ読出し動作を開始する。
【0500】すなわち、フラッシュ・メモリFM0 は、
入力した読出しコマンドCMR および読出しアドレスA
DR をデコードし、読出しアドレスADR で指定された
フラッシュ・メモリ・アレイ40内の記憶領域(ペー
ジ)より1ページ分(528バイト)のデータDATA
R を読み出し、読み出したデータDATAR をI/Oバ
ッファ46に転送(セット)する。このメモリ内の読出
し動作にはたとえば25μs程度の一定時間tRBを要す
るため、フラッシュ・メモリFM0 はこの処理時間tRB
の間ビジー信号XFBSY0-をアクティブ(Lレベル)
に保持する。
【0510】そして、フラッシュ・メモリFM0 内の読
出し動作が終了してビジー状態が解除されると(XFB
SY0-がHレベルに戻ると)、コントローラ10はフラ
ッシュ・メモリFM0 のI/Oバッファ46にセットさ
れている読出しデータDATAR の取込みに取り掛か
る。すなわち、コントローラ10は、リード(出力)・
イネーブル制御信号XFRE0-を一定周期で繰り返し
(528回)アクティブ(Lレベル)にすることによ
り、フラッシュ・メモリFM0 のI/Oバッファ46よ
り1ページ分(528バイト)の読出しデータDATA
R を1バイトずつバスFD0 〜7 を介して取り込む。
【0520】上記のようなフラッシュ・メモリFM0 の
ための読出しサイクルTR の間、フラッシュ・メモリF
M1 はメモリ内でデータ書込み動作の最中(ビジー状
態)にあり、外部からの信号を受け付けない。このた
め、フラッシュ・メモリFM1 から独立してコントロー
ラ10とフラッシュ・メモリFM0 との間で読出しサイ
クルTR を遂行することができる。
【0530】なお、その他のフラッシュ・メモリFM2
〜FMn は、それぞれのチップ・イネーブル制御信号X
FCE2-〜XFCEn-がディスエーブル状態(Hレベ
ル)に保持されているため、実質的にバスAD0 〜7 か
ら分離されたままでいる。したがって、フラッシュ・メ
モリFM1 における書込みサイクルTW やフラッシュ・
メモリFM0 における読出しサイクルTR に何等影響す
ることがない。
【0540】フラッシュ・メモリFM0 における読出し
サイクルTR が終了し、そしてフラッシュ・メモリFM
1 においてデータ書込みのビジー時間tWBが終了する
と、ビジー信号XFBSY1-が非アクティブ状態(Hレ
ベル)に戻ったことを確認してコントローラ10は今回
のフラッシュ・メモリFM1 におけるデータ書込み(プ
ログラミング)が良好に行われたか否かの検査を行う。
【0550】このプログラミング結果の良否検査を行う
ため、コントローラ10は、コマンド・ラッチ・イネー
ブル制御信号FCLEをアクティブ(Hレベル)にし
て、バスFD0 〜7 上に所定コードのステータス・レジ
スタ読取りコマンドCMC を送出すると同時に、ライト
・イネーブル制御信号XFWE- をアクティブ(Lレベ
ル)とする。
【0560】このコントローラ10からのコマンド書込
み操作に応動して、フラッシュ・メモリFM1 はバスF
D0 〜7 上から該ステータス・レジスタ読取りコマンド
CMC を取り込んで、このコマンドCMC をデコード
し、このコマンドCMC に応答する。すなわち、フラッ
シュ・メモリFM1 内のコマンド・レジスタ50内のス
テータス・レジスタにセットされている書込みステータ
ス・ビットI/O0 をI/Oバッファ46を介してバス
FD0 〜7 上に送出する。コントローラ10は、メモリ
FM1 からの書込みステータス・ビットI/O0 を受け
取り、そのビット内容を基に今回の書込みサイクルTW
におけるデータ書込み(プログラミング)が首尾よく行
われたか否かを判定する。
【0570】上記のように、本実施例のフラッシュ・デ
ィスク・システムでは、コントローラ10が、任意の或
るフラッシュ・メモリ(たとえばFM1 )に対して1ペ
ージ分のデータDATAW を書き込む動作を実行しなが
ら、その書込みサイクルTWにおいてフラッシュ・メモ
リFM1 がメモリ内のデータ書込み動作のためにビジー
状態になっている期間tWBを利用して、この期間tWB中
に任意の別のフラッシュ・メモリ(たとえばFM0 )に
読出しのアクセスを行って、該フラッシュ・メモリFM
0 から1ページ分のデータDATAR を読み出せるよう
になっている。
【0580】なお、一度に1ページ(528バイト)よ
りも少ないデータを書き込みまたは読み出す場合でも、
各メモリFMi 内の書込みビジー時間tWBまたは読出し
ビジー時間tRBは1ページのときと殆ど同じである。違
うのは、コントローラ10と各フラッシュ・メモリFM
i との間で書込みデータまたは読出しデータをシリアル
転送する際の所要時間がデータ量に比例して短くなる点
である。このシリアル転送の周期は、たとえば27ns
/1バイト程度であるから、データ量またはシリアル転
送時間の違いは全体の書込みサイクルTW または読出し
サイクルTR にそれ程の影響を与えない。
【0590】次に、図6〜図8につき本実施例のフラッ
シュ・ディスク・システムにおけるデータ書き換え時の
処理について説明する。データ書き換え処理の中で、上
記したような任意の或るフラッシュ・メモリFMi にお
けるデータの書込みと任意の別のフラッシュ・メモリF
Me におけるデータの読出しとの並列的処理を行うこと
ができる。
【0600】本実施例のフラッシュ・ディスク・システ
ムでは、電源投入直後またはリセット解除直後に、コン
トローラ10のフラッシュ・テーブル制御部28が、各
フラッシュ・メモリFM0 〜FMn 内の全てのブロック
BL0 〜BL511 の先頭ページPG0 の冗長部に格納さ
れているデータを読み取り、その冗長データに含まれて
いる「変換テーブルアドレス」を基に各フラッシュ・メ
モリFM0 〜FMn 毎にアドレス変換テーブルおよび空
きブロックテーブルを初期化する。
【0610】ここで、アドレス変換テーブルは、各フラ
ッシュ・メモリFM0 〜FMn 毎に現在データが書き込
まれているブロックの物理アドレスとそのデータの書込
みに際してホスト14が指定してきたLBA(論理ブロ
ックアドレス)モードの論理アドレスとを対応づけるテ
ーブルである。また、空きブロックテーブルは、各フラ
ッシュ・メモリFM0 〜FMn 毎に現在データが全然書
き込まれていない1つまたは複数の空きブロックBLを
登録しておくテーブルであり、これら空きブロックの中
で最先に使用に供されるべきものを指定する物理ブロッ
クアドレスまたはポインタを常時セットしている。
【0620】さて、図6において、本フラッシュ・ディ
スク・システムにデータを書き込むとき、ホスト14は
CHS(シリンダ・ヘッド・セクタ)モードの論理アド
レス[AD]CHS をコントローラ10に与える。このホ
スト14からの論理アドレス[AD]CHS は、コントロ
ーラ10内のアドレス変換部24でLBA(論理ブロッ
ク・アドレス)モードの論理アドレス[AD]LBA に変
換される。そして、このLBAモードの論理アドレス
[AD]LBA は、コントローラ10内でフラッシュ・テ
ーブル制御部28に送られる。
【0630】フラッシュ・テーブル制御部28は、この
論理アドレス[AD]LBA を特定の1つのブロックBL
j を指定する上位アドレス部つまり論理ブロックアドレ
ス[AD]LBA,BLj と特定の1つのページPGj を指定
する下位アドレス部つまり論理ページアドレス[AD]
LBA,PGk とに分割する。そして、アドレス変換テーブル
28Aを参照または検索して、この論理ブロックアドレ
ス[AD]LBA,BLj に対応する物理ブロックアドレス<
AD>PH,BLjがテーブル28Aに登録されていれば、こ
の物理ブロックアドレス<AD>PH,BLjを発行(出力)
する。
【0640】論理ブロックアドレス[AD]LBA,BLj は
LBA(論理ブロック・アドレス)モードの論理アドレ
スであるから、この下位アドレス部つまり論理ページア
ドレス[AD]LBA,PGk はそのまま物理アドレスのペー
ジアドレスとしても使用することができる。したがっ
て、この論理ページアドレス[AD]LBA,PGk と該物理
ブロックアドレス<AD>PH,BLjとを合成することで、
今回のデータ書込みの対象となるページを指定する物理
アドレス<AD>PHが得られる。
【0650】しかしながら、この物理アドレス<AD>
PHで指定されるブロックBLj 内のページPGk には何
らかのデータが現在書き込まれており、その上に新たな
データを重ね書きすることはフラッシュ・メモリの性質
からできない。新たなデータは別の空きブロックに書き
込まなくてはならない。そして、これに伴って、当該ブ
ロックBLj 内の他のページ(PG0 〜PGk-1 ,PG
k+1 〜PG15)に格納されているデータを新たなデータ
と同じ空きブロックにそっくり移し替えなくてはならな
い。通常は、隣のフラッシュ・メモリに存在する空きブ
ロックがこのデータ書き換えの移動先(新規ブロック)
に充てられる。
【0660】そこで、フラッシュ・テーブル制御部28
は、今回のデータ書込みで指定されたフラッシュ・メモ
リFM0 内の物理ブロックアドレス<AD>PH,BLjを発
行すると同時に、隣のフラッシュ・メモリFM1 に係る
空きブロック・テーブル28Bを検索して、このフラッ
シュ・メモリFM1 内の1つの空きブロックBLh を指
定する物理ブロックアドレス<AD>PH,BLhを発行す
る。この物理ブロックアドレス<AD>PH,BLhと上記の
下位アドレス部(論理ページアドレス)[AD]LBA,PG
k とを合成することで、フラッシュ・メモリFM1 の空
きブロックBLh内で書き換えの対象となるページPGk
を指定する物理アドレス<AD>PH’が得られる。
【0670】上記のようにして、データ書込みのために
ホスト14より指定された論理アドレスを割り付けられ
ているフラッシュ・メモリFM0 内のブロックBLj が
割り出され、かつデータ書き換えのためのフラッシュ・
メモリFM0 内の空きブロックBLh が決定される。
【0680】次に、図7に示すように、コントローラ1
0は、フラッシュ・メモリFM0 内のブロックBLj の
先頭ページPG0 から順に1ページずつ(ただし、書き
換え対象のページPGk は除く)データを読み出し、読
み出したデータをフラッシュ・メモリFM1 内の空きブ
ロックBLh の各対応するページへ書き込むというデー
タ移し替え操作を実行する。そして、今回の書き換え対
象のページPGk については、フラッシュ・メモリFM
0 内のブロックBLj の該当ページPGk から旧データ
を読み出すことはしないで、ホスト14からの書込みの
データ(新データ)をフラッシュ・メモリFM1 内の空
きブロックBLh の該当ページPGk へ書き込む。
【0690】このような一連のデータ移し替えおよび新
規データ書き込み操作は、コントローラ10において、
コマンド処理部26の制御の下でフラッシュ・コマンド
発生部30およびフラッシュ・インタフェース部34に
より行われる。フラッシュ・インタフェース部34に
は、移動元(旧)ブロックBLj から読み出した1ペー
ジ分のデータを移動先(新規)ブロックBLh へ書き込
むまでいったん保持するためのバッファ34Aと、ホス
ト14から送られてきた書込みデータ(新たなデータ)
を新規ブロックBLh へ書き込むまで一時的に保持する
ためのバッファ34Bが設けられている。
【0700】図8の(A)に、本実施例のフラッシュ・
ディスク・システムにおけるデータ書き換え処理のタイ
ムチャートを示す。
【0710】先ず、フラッシュ・メモリFM0 において
ブロックBLj の先頭ページPG0から1ページ分のデ
ータを読み出す読出しサイクルTR が実行される。この
読出しサイクルTR は、図5に示したフラッシュ・メモ
リFM0 における読出しサイクルTR と同じシーケンス
で、かつほぼ同じ時間をかけて行われる。この読出しサ
イクルTR によってフラッシュ・メモリFM0 のブロッ
クBLj の先頭ページPG0 より読み出された1ページ
分のデータDATAPG0 は、フラッシュ・インタフェー
ス部34内のバッファ34Aにいったん保持される。
【0720】フラッシュ・メモリFM0 における上記の
読出しサイクルTR が終了すると、直ちに、該バッファ
34Aに保持されている(先の読出しサイクルTR でフ
ラッシュ・メモリFM0 のブロックBLj の先頭ページ
PG0 より読み出された)1ページ分のデータDATA
PG0 をフラッシュ・メモリFM1 における空きブロック
BLh の先頭ページPG0 に書き込む書込みサイクルT
W が開始される。この書込みサイクルTW は、図5に示
したフラッシュ・メモリFM1 における書込みサイクル
TW と同じシーケンスで、かつほぼ同じ時間をかけて行
われる。
【0730】本実施例では、このフラッシュ・メモリF
M1 における書込みサイクルTW と同時的または並列的
に、図5に示したタイミングとほぼ同じ仕方で、フラッ
シュ・メモリFM0 においてブロックBLj の2番目の
ページPG1 から1ページ分のデータDATAPG1 を読
み出す読出しサイクルTR が実行される。この読出しサ
イクルTR で該ブロックBLj のページPG1 から読み
出された1ページ分のデータDATAPG1 は、やはりフ
ラッシュ・インタフェース部34内のバッファ34Aに
いったん保持される。
【0740】この結果、フラッシュ・メモリFM1 内の
空きブロックBLh の先頭ページPG0 に1ページ分の
データDATAPG0 を書き込む書込みサイクルTW が終
了した時点で、バッファ34Aには該空きブロックBL
h の次の(2番目)のページPG1 に書き込むべきデー
タDATAPG1 が用意されていることになる。したがっ
て、フラッシュ・メモリFM1 においては、直ちに、バ
ッファ34Aに保持されている(先の読出しサイクルT
R でフラッシュ・メモリFM0 のブロックBLj の2番
目のページPG1 より読み出された)1ページ分のデー
タDATAPG1を空きブロックBLh の2番目のページ
PG1 に書き込む書込みサイクルTW を開始することが
できる。
【0750】そして、フラッシュ・メモリFM1 におけ
る書込みサイクルTW と同時的または並列的に、フラッ
シュ・メモリFM0 においてブロックBLj の3番目の
ページPG2 から1ページ分のデータDATAPG2 を読
み出す読出しサイクルTR が実行される。
【0760】以下、後続のページPG2 ,PG3 ,…に
ついて上記と同様の動作が繰り返される。ただし、フラ
ッシュ・メモリFM1 において空きブロックBLh のk
番目のページPGk-1 に1ページ分のデータDATAPG
k-1 を書き込む書込みサイクルTW が実行される期間
中、フラッシュ・メモリFM0 においてブロックBLj
の書き換え対象である(k+1)番目のページPGk か
らデータDATAPGk を読み出す読出しサイクルTR は
行われない。この旧データDATAPGk に置き換わるホ
スト14からの新たなデータDATAPGk'が、コントロ
ーラ10内のバッファ34Bに用意されているためであ
る。
【0770】また、フラッシュ・メモリFM1 において
空きブロックBLh の最後(16番目)のページPG15
に1ページ分のデータDATAPG15を書き込む書込みサ
イクルTW が実行されるときも、フラッシュ・メモリF
M0 では既に移動元の全てのページから全てのデータが
既に読み出されているため、読み出しサイクルTR は不
要である。
【0780】なお、上記のデータ書き換え処理の終了後
に、後処理として、今回の書き換えでデータ移動元
(旧)ブロックとされたフラッシュ・メモリFM0 のブ
ロックBLj 内のデータが全て一括消去される。このブ
ロック消去のために、コントローラ10は、所定のブロ
ック消去用コマンドと当該ブロックBLj を指定するア
ドレスとを所定のタイミングでフラッシュ・メモリFM
0 に与える。そうすると、これに応答してフラッシュ・
メモリFM0 内でブロックBLj に対するブロック消去
動作が実行される。
【0790】さらに、上記のデータ書き換えに伴う後処
理として、フラッシュ・テーブル制御部28内でアドレ
ス変換テーブル28Aおよび空きブロック・テーブル2
8Bがそれぞれ所定の操作により更新される。
【0800】アドレス変換テーブル28Aの更新では、
今回の書込みで指示された論理ブロックアドレス[A
D]LBA,BLj に対応する物理ブロックアドレスとして、
フラッシュ・メモリFM0 内のブロックBLj を指示す
る物理アドレスがテーブル28Aから抹消され、代わり
にフラッシュ・メモリFM1 内のブロックBLh を指示
する物理アドレスがテーブル28Aに登録される。
【0810】空きブロック・テーブル28Bでは、現在
データが入っていない空きブロックとして、フラッシュ
・メモリFM1 内のブロックBLh を指示する物理アド
レスがテーブル28Bから抹消され、代わりにフラッシ
ュ・メモリFM0 内のブロックBLj を指示する物理ア
ドレスがテーブル28Bに登録される。
【0820】このように、本実施例のデータ書き換えで
は、図8の(A)に示すように、フラッシュ・メモリF
M1 における書込みサイクルTW の間にフラッシュ・メ
モリFM0 における読出しサイクルTR がマスクされる
形で同時的または並列的に実行される。このため、トー
タルの書き換え処理時間は、書込みサイクルTW にその
繰り返し回数(1ブロック内のページPG0 〜PG15の
総数に相当する数:16回)を乗じた値(16TW )に
1回目の読出しサイクルTR を加えた時間(16TW +
TR )で済むことになる。
【0830】この点、従来のシステムで同様のデータ書
き換え処理を行うとすると、図8の(B)に示すよう
に、移動元のフラッシュ・メモリFM0 のブロックBL
j から1ページ分のデータを読み出す読出しサイクルT
R と、この読み出した1ページ分のデータを移動先のフ
ラッシュ・メモリFM1 の空きブロックBLh へ書き込
む書込みサイクルTW とを交互に(時間的にシリアル
に)繰り返すことになる。もっとも、書き換えの対象で
あるフラッシュ・メモリFM0 内のブロックBLjのペ
ージPGk から1ページ分の旧データを読み出す読出し
サイクルTR は不要である。したがって、トータルの処
理時間は16TW +15TR となる。
【0840】このように、本実施例によれば、データ書
き換え処理において、従来と比較してほぼ14TR に相
当する時間を短縮(節約)することができる。これによ
り、ホスト14から見たデータ書込み時間も大幅に短縮
され、フラッシュ・ディスク・システムの性能が大きく
向上する。
【0850】上記した実施例では、コントローラ10と
各フラッシュ・メモリFM0 〜FMn との間に個別的ま
たは独立的なリード(出力)・イネーブル制御線XFR
E0-〜XFREn-を設けているため、コントローラ10
は任意のフラッシュ・メモリFMi から随時(他のフラ
ッシュ・メモリの状態に左右されることなく)データを
取り込めるようになっている。
【0860】このため、上記の例では、フラッシュ・メ
モリFM0 に読出しコマンドCMRと読出しアドレスA
DR が供給された後であれば、たとえフラッシュ・メモ
リFM0 で読出しサイクルTR が終了する前にフラッシ
ュ・メモリFM1 で書込みビジー時間tWBが終了したと
しても、コントローラ10は書込み後のフラッシュ・メ
モリFM1 の状態とは無関係にフラッシュ・メモリFM
0 から読出しデータDATAR をバスFD0 〜7 を介し
て取り込むことができる。したがって、各フラッシュ・
メモリFMi における書込みビジー時間tWBが比較的短
い場合、あるいは読出しビジー時間tRBが比較的長い場
合でも、本発明の方法を実施することができる。
【0870】もっとも、図5に示すように、各フラッシ
ュ・メモリにおいて読出しビジー時間tRBに比して書込
みビジー時間tWBが格段に長く、或るフラッシュ・メモ
リFMi における書込みビジー時間twBの期間内に別の
フラッシュ・メモリFMe において読出しサイクルTR
が確実に完了できる場合には、コントローラ10と各フ
ラッシュ・メモリFM0 〜FMn との間で1本の共通リ
ード(出力)・イネーブル制御線XFRE- で済ますこ
とも可能である。
【0880】また、上記した実施例では、コントローラ
10と各フラッシュ・メモリFM0〜FMn との間に個
別的または独立的なビジー線XFBSY0-〜n-を設けて
いるため、コントローラ10は個々のフラッシュ・メモ
リFMi におけるビジー状態の開始と終了を即座に知る
ことができる。したがって、たとえば上記の例(図5)
において、コントローラ10は、フラッシュ・メモリF
M1 が書込みビジー状態になっている間(XFBSY1-
がアクティブ状態になっている間)、それとは別個にフ
ラッシュ・メモリFM0 で読出しビジー時間tRBが終了
したことをビジー信号XFBSY0-を通じて即座に知る
ことができ、直ちにフラッシュ・メモリFM0 からの読
出しデータの取り込みに取り掛かることができる。
【0890】しかし、コントローラ10は、フラッシュ
・メモリFM0 からビジー信号XFBSY0-を受け取ら
なくても、ステータス・レジスタ読取りコマンドCMC
をフラッシュ・メモリFM0 に発行して、所要のステー
タス・ビットを読み取ることで、メモリFM0 の状態を
知ることが可能である。したがって、コントローラ10
と各フラッシュ・メモリFM0 〜FMn との間で1本の
共通ビジー信号線XFBSY- で済ますことも可能であ
る。
【0900】また、上記実施例におけるフラッシュ・デ
ィスク・システムの構成、特にフラッシュ・メモリFM
i 内部の構成やコントローラ10内部の構成は一例であ
り、本発明は1つのコントローラまたはコンピュータに
共通のバスを介して複数個のフラッシュ・メモリを接続
する任意のメモリシステムに適用可能である。
【0910】
【発明の効果】以上説明したように、本発明のデータ書
き換え方法またはメモリ制御装置によれば、複数個のフ
ラッシュ・メモリを同一バス上に接続してなるフラッシ
メモリシステムにおいて、ページ単位でのデータの書き
換えに要する処理時間を大幅に短縮し、システム性能を
向上させることができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるフラッシュ・ディスク
・システムの構成を示すブロック図である。
【図2】実施例におけるコントローラの内部の機能的構
成を示すブロック図である。
【図3】フラッシュ・メモリ内の記憶領域の区分フォー
マットを示す図である。
【図4】実施例におけるフラッシュ・メモリの内部の構
成例を示す。
【図5】実施例において、或るフラッシュ・メモリに1
ページ分のデータを書き込む書込みサイクルを実行して
いる最中に、別のフラッシュ・メモリより1ページ分の
データを読み出す読出しサイクルを同時的または並列的
に実行する動作を示すタイミング図である。
【図6】実施例においてホストからのデータ書込みのた
めのアクセスに対してアドレス変換およびテーブル検索
を行う構成および機能を示すブロック図である。
【図7】実施例においてデータ書き換え時のデータ移動
および新規データ書込み操作を説明するための図であ
る。
【図8】実施例のデータ書き換え処理における書込みサ
イクルと読出しサイクルの実行手順(A)を従来のデー
タ書き換え処理における書込みサイクルと読出しサイク
ルの実行手順(B)と比較して示す図である。
【符号の説明】
10 コントローラ 12 フラッシュ・ディスク・カード 14 ホストコンピュータ 20 本体インタフェース部 22 リセット処理部 24 アドレス変換部 26 コマンド処理部 28 フラッシュ・テーブル制御部 28A アドレス変換テーブル 28B 空きブロック・テーブル 30 フラッシュ・コマンド発生部 34 フラッシュ・インタフェース部 34A,34B バッファ FM0 〜FMn フラッシュ・メモリ FD0 〜7 内部(共通)バス FCLE コマンド・ラッチ・イネーブル制御線 FALE アドレス・ラッチ・イネーブル制御線 XFWE- ライト・イネーブル制御線 XFCE0-〜XFCEn- チップ・イネーブル制御線 XFRE0-〜XFREn- リード(出力)・イネーブ
ル制御線 XFBSY0-〜XFBSYn- ビジー線
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G11C 7/00 G11C 16/02 G06F 12/00 G06F 12/06 G06F 3/08

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 記憶領域を複数個のブロックに分割し、
    各々のブロックを複数個のページに分割し、各々のペー
    ジを複数バイト容量のデータ格納領域とし、ブロック単
    位でデータの一括消去を行い、1回のメモリアクセスで
    1ページ分のデータの書き込みおよび読み出しを行うよ
    うに各々が構成された複数個のフラッシュ・メモリを
    マンド、アドレスおよびデータ兼用の共通バスに接続し
    たフラッシュメモリシステムにおいて任意の第1のフラ
    ッシュ・メモリ内のデータを書き換えるデータ書き換え
    方法であって、 システムの外部より与えられた書き込みアドレスに基づ
    いて前記第1のフラッシュ・メモリ内でデータ書き換え
    の対象となるブロックおよびページを識別する第1のス
    テップと、 前記データ書き換えのためのデータ移動先となる第2の
    フラッシュ・メモリおよびそのメモリ内の空きブロック
    を決定する第2のステップと、 前記第1のフラッシュ・メモリの前記データ書き換え対
    象ブロックに含まれる前記データ書き換え対象ページ以
    外の各ページより1ページ分のデータを読み出すための
    読み出しサイクルを実行する第3のステップと、 各々の前記読み出しサイクルの直後に、前記読み出され
    た1ページ分のデータを前記第1のフラッシュ・メモリ
    内の読み出し元のページと対応する前記第2のフラッシ
    ュ・メモリの前記空きブロック内のページに書き込むた
    めの第1の書き込みサイクルを実行する第4のステップ
    と、 前記データ書き換えのための新たな1ページ分のデータ
    を前記第1のフラッシュ・メモリの前記データ書き換え
    対象ブロック内の前記データ書き換え対象ページと対応
    する前記第2のフラッシュ・メモリの前記空きブロック
    内のページに書き込むための第2の書き込みサイクルを
    実行する第5のステップとを有し、前記読み出しサイクルにおいて、前記第1のフラッシュ
    ・メモリに前記共通バスを介して読み出し用のコマンド
    および読み出しアドレスを所定のタイミングで順次与え
    て、第1の時間経過後に前記第1のフラッシュ・メモリ
    より読み出された前記1ページ分のデータを前記共通バ
    スを介して取り込み、 前記第1および第2の書き込みサイクルにおいて、前記
    第2のフラッシュ・メモリに前記共通バスを介してデー
    タ入力のコマンド、書き込みアドレス、書き込 み対象の
    1ページ分のデータおよび書き込み用のコマンドを所定
    のタイミングで順次与えて、前記第2のフラッシュ・メ
    モリに前記第1の時間よりも格段に長い第2の時間内に
    外部からの信号を受け付けない状態で前記書き込みアド
    レスの指定する記憶領域に前記1ページ分のデータを書
    き込ませ、 少なくとも1回の前記第4または第5のステップにおけ
    る前記第1または第2の書き込みサイクルの期間中に前
    記第3のステップにおける前記読み出しサイクルを実行
    させるデータ書き換え方法。
  2. 【請求項2】 前記第1のフラッシュ・メモリの前記デ
    ータ書き換え対象ブロックより最後に読み出された1ペ
    ージ分のデータに係る前記第1の書き込みサイクルと前
    記第2の書き込みサイクルの直前に実行される前記第1
    の書き込みサイクルとを除く各々の前記第1の書き込み
    サイクルまたは前記第2の書き込みサイ クルの期間中に
    前記第3のステップにおける前記読み出しサイクルを実
    行させる請求項1に記載のデータ書き換え方法。
  3. 【請求項3】 前記第4または第5のステップにおい
    て、前記第2のフラッシュ・メモリに前記バスを介して
    書き込み用のコマンドと前記空きブロック内の該当する
    ページを指示する書き込みアドレスと該当する1ページ
    分のデータとを所定のタイミングで順次与え、前記第2
    のフラッシュ・メモリ内で前記書込み用コマンドに応答
    して第1の時間内に外部からの信号を受け付けない状態
    で前記書き込みアドレスで指定される記憶領域に前記1
    ページ分のデータを書き込み、 前記第3のステップにおいて、前記第1の時間内に、前
    記第1のフラッシュ・メモリに 前記バスを介して読み出
    し用のコマンドと前記データ書き換え対象ブロック内の
    該当するページを指示する読み出しアドレスとを所定の
    タイミングで順次与え、前記第1のフラッシュ・メモリ
    内で前記読み出し用コマンドに応答して第2の時間内に
    前記読み出しアドレスで指定される記憶領域より1ペー
    ジ分のデータを読み出し、前記第1のフラッシュ・メモ
    リより読み出された前記1ページ分のデータを前記バス
    を介して所定のバッファに取り込む請求項1または2に
    記載のデータ書き換え方法。
  4. 【請求項4】 前記バス上で前記アドレスまたは1ペー
    ジ分のデータを前記バスのビット幅に相当するビット数
    のデータを一単位として1回でまたは複数回に分けて伝
    送する請求項1〜3のいずれかに記載のデータ書き換え
    方法。
  5. 【請求項5】 前記第4または第5のステップにおいて
    前記第2のフラッシュ・メモリがデータ書き込み動作中
    であることを示すためのビジー信号を前記第1の時間に
    発生し続ける請求項3または4に記載のデータ書き換え
    方法。
  6. 【請求項6】 前記第4または第5のステップにおい
    て、前記第1または第2の書き込みサイクルの直後に、
    前記第2のフラッシュ・メモリにステータス読み取り用
    のコマンドを与え、このコマンドに応答して前記第2の
    フラッシュ・メモリより出力されるステータス情報に基
    づいて前記第2のフラッシュ・メモリ内の当該データ書
    き込みが良好に行われたか否かの検査を行う請求項1〜
    5のいずれかに記載のデータ書き込み方法。
  7. 【請求項7】 記憶領域を複数個のブロックに分割し、
    各々のブロックを複数個のページに分割し、各々のペー
    ジを複数バイト容量のデータ格納領域とし、ブロック単
    位でデータの一括消去を行い、1回のメモリアクセスで
    1ページ分のデータの書き込みおよび読み出しを行うよ
    うに各々が構成された複数個のフラッシュ・メモリに
    マンド、アドレスおよびデータ兼用の共通バスを介して
    接続されるメモリ制御装置であって、 外部より与えられるデータ書き込みまたは読み出しのた
    めの論理アドレスを物理アドレスに変換するためのアド
    レス変換手段と、 各々の前記フラッシュ・メモリについて現在データが書
    き込まれている使用中ブロックと何のデータも書き込ま
    れていない空きブロックとを管理するブロック管理手段
    と、 指定されたフラッシュ・メモリ内のページより1ページ
    分のデータを所定の読み出しサイクルで読み出すデータ
    読み出し手段と、 指定されたフラッシュ・メモリ内の空きページに1ペー
    ジ分のデータを所定の書き込みサイクルで書き込むデー
    タ書き込み手段と、 第1のフラッシュ・メモリにおけるデータ書き換えのた
    めに前記ブロック管理手段からのブロック管理情報を基
    に1ブロック分のデータの移動先となる第2のフラッシ
    ュ・メモリおよびそのメモリ内の空きブロックを決定す
    るデータ移動先決定手段と、 前記データ書き換えにおいて、少なくとも1回の前記第
    2のフラッシュ・メモリに対する前記データ書き込み手
    段の書き込みサイクルの期間中に前記第1のフラッシュ
    ・メモリに対する前記データ読み出し手段の読み出しサ
    イクルを実行させるシーケンス制御手段とを有し、前記読み出しサイクルにおいて、前記データ読み出し手
    段が、前記第1のフラッシュ・メモリに前記共通バスを
    介して読み出し用のコマンドおよび読み出しアドレスを
    所定のタイミングで順次与えて、第1の時間経過後に前
    記第1のフラッシュ・メモリより読み出された前記1ペ
    ージ分のデータを前記共通バスを介して取り込み、 前記書き込みサイクルにおいて、前記データ書き込み手
    段が前記第2のフラッ シュ・メモリに前記共通バスを介
    してデータ入力のコマンド、書き込みアドレス、書き込
    み対象の1ページ分のデータおよび書き込み用のコマン
    ドを所定のタイミングで順次与え、前記第2のフラッシ
    ュ・メモリが前記書き込み用のコマンドに応答して前記
    第1の時間よりも格段に長い第2の時間内に外部からの
    信号を受け付けない状態で前記書き込みアドレスで指定
    される記憶領域内に前記1ページ分のデータを書き込む
    メモリ制御装置。
  8. 【請求項8】 前記データ書き込み制御手段および前記
    データ読み出し制御手段が、前記フラッシュ・メモリの
    各々を個別的に動作可能状態とするための各フラッシュ
    ・メモリ専用のチップ・イネーブル制御線を含む請求項
    7に記載のメモリ制御装置。
  9. 【請求項9】 前記データ読み出し制御手段が、前記フ
    ラッシュ・メモリの各々を個別的に出力イネーブル状態
    にするための各フラッシュ・メモリ専用の出力イネーブ
    ル制御線を含む請求項7または8に記載のメモリ制御装
    置。
  10. 【請求項10】 前記データ書き込み制御手段および前
    記データ読み出し制御 手段が、前記フラッシュ・メモリ
    の各々がビジー状態であるか否かを個別的に認識可能と
    するための各フラッシュ・メモリ専用のビジー線を含む
    請求項7〜9のいずれかに記載のメモリ制御装置。
JP3705496A 1996-01-25 1996-02-01 フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置 Expired - Fee Related JP3321587B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3705496A JP3321587B2 (ja) 1996-02-01 1996-02-01 フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置
TW086100801A TW327227B (en) 1996-02-01 1997-01-24 Data reading method and memory control device
KR1019970002071A KR100359414B1 (ko) 1996-01-25 1997-01-24 데이타독출/기록방법및그를이용한메모리제어장치및시스템
US08/789,544 US6131139A (en) 1996-01-25 1997-01-27 Apparatus and method of simultaneously reading and writing data in a semiconductor device having a plurality of flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3705496A JP3321587B2 (ja) 1996-02-01 1996-02-01 フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置

Publications (2)

Publication Number Publication Date
JPH09213064A JPH09213064A (ja) 1997-08-15
JP3321587B2 true JP3321587B2 (ja) 2002-09-03

Family

ID=12486867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3705496A Expired - Fee Related JP3321587B2 (ja) 1996-01-25 1996-02-01 フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置

Country Status (2)

Country Link
JP (1) JP3321587B2 (ja)
TW (1) TW327227B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
EP0973097A4 (en) * 1997-12-05 2000-04-12 Tokyo Electron Ltd MEMORY AND METHOD FOR ACCESSING THE MEMORY
JPH11305954A (ja) * 1998-04-27 1999-11-05 Oki Electric Ind Co Ltd 半導体記憶装置及び半導体記憶装置の書き換え制御方法
JP2006215595A (ja) * 2005-02-01 2006-08-17 Hitachi Ulsi Systems Co Ltd 記憶装置
KR100706246B1 (ko) 2005-05-24 2007-04-11 삼성전자주식회사 읽기 성능을 향상시킬 수 있는 메모리 카드
JP5598391B2 (ja) * 2011-03-22 2014-10-01 富士通セミコンダクター株式会社 半導体メモリおよびシステム
CN108597470B (zh) * 2018-05-08 2021-01-01 Tcl华星光电技术有限公司 显示装置驱动系统及方法和显示装置

Also Published As

Publication number Publication date
JPH09213064A (ja) 1997-08-15
TW327227B (en) 1998-02-21

Similar Documents

Publication Publication Date Title
KR100359414B1 (ko) 데이타독출/기록방법및그를이용한메모리제어장치및시스템
US5987573A (en) Memory apparatus and memory control method
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US7114117B2 (en) Memory card and memory controller
US7787297B2 (en) Flash memory device and flash memory system
US8370603B2 (en) Architecture for address mapping of managed non-volatile memory
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US6226202B1 (en) Flash memory card including CIS information
US8681552B2 (en) System and method for accessing and storing interleaved data
US7944731B2 (en) Resistive sense memory array with partial block update capability
EP1739683B1 (en) Space management for managing high capacity nonvolatile memory
US7657702B2 (en) Partial block data programming and reading operations in a non-volatile memory
US7761653B2 (en) Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
JP3574078B2 (ja) 記憶装置と記憶装置制御方法
US5715423A (en) Memory device with an internal data transfer circuit
WO2000060605A1 (en) Space management for managing high capacity nonvolatile memory
JP2008524747A (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
US7136986B2 (en) Apparatus and method for controlling flash memories
JPWO2002052416A1 (ja) フラッシュメモリシステム
JP2000011677A (ja) フラッシュメモリシステム
JP3321587B2 (ja) フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置
JP3289101B2 (ja) フラッシュ・ディスク・システムの初期化方法及び装置
JP4561110B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080628

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090628

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090628

Year of fee payment: 7

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: 20090628

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees