フラッシュメモリの制御方法
メモリ コントローラ、 メモリコントローラを備えるフラッシュメモリ システム及びフラッシュメモリ の制御方法 技術分野
本発明は、 メモリ コン トローラ、 フラッシュメモリシステム及びフ ラッシュメモリの制御方法に関し、 特に、 フラッシュメモリに対する 一連のデータ書き込み処理をより高速に行うことができるメモリコン トローラ、 フラッシュメモリ システム及びフラッシュメモリ の制御方 法に関する。 従来の技術
近年、 メモリカードゃシリ コンディスクなどに用いられる半導体メ モリ と して、 フラッシュメモリ 、 特に NAN D型フラッシュメモリが 用いられることが多い。 NAND型フラッシュメモリ は、 メモリセル を消去状態 (論理値 = 1 ) から書込状態 (論理値 = 0) に変化させる 場合は、 これをメモリセル単位で行うことが可能である一方、 メモリ セルを書込状態 (0) から消去状態 ( 1 ) に変化させる場合は、 これ をメモリセル単位で行うことができず、 複数のメモリセルからなる所 定の消去単位でしかこれを行うことができない。 かかる一括消去動作 は、 一般的に 「ブロック消去」 と呼ばれる。
このように、 NAND型フラッシュメモリにおいては、書込状態( 0) から消去状態 ( 1 ) への変化をメモリセル単位で行うことができない ため、 フラッシュメモリにデータを書き込む場合には、 データを書き 込むべき領域に含まれる全てのメモリセルを事前にブロック消去して おく必要がある。 ブロック消去された領域は、 データが格納されてい ない空き領域となり、 フラッシュメモリに新たなデータを書き込む場 合には、 このよ うな空き領域が検索され、 発見された空き領域に対し て当該データが書き込まれることになる。 ここで、 各ブロックは、 そ
れぞれ、 データの読み出し及び書き込みにおけるアクセス単位である 複数の 「ページ」 によって構成されている。
このようなフラッシュメモリへのデータの書き込みは、 次のように して行う。
まず、 ホス トコンピュータからデータ書き込み要求が発行され、 書 き込み先のァドレス及び書き込むべきデータが送信されると、 かかる データ力 S、コントローラ内に設けられたメモリに一時的に格納される。 次いで、 コントローラは、 一時的にメモリに格納されているデータを フラッシュメモリへ転送し、 これを書き込み先のァドレスが示すぺー ジに書き込むよう、 フラッシュメモリに対して指示する。 これに応答 して、 フラッシュメモリは、 コントローラから転送されたデータを指 定されたページに格納し、 これにより、 データ書き込み処理が完了す る。
従来より、 同一ブロック内における各ページは、 ホス トコンビユー タから見て、連続するァドレスを有するものとして取り扱われている。 一方、 ホス トコンピュータからのデータ書き込み要求は、 連続する複 数ァドレスに対してなされることが多く、 この場合、 コントローラは、 あるブロック内の連続する複数ページに、 次々とデータを書き込む必 要がある。
この場合、 コントローラはまず、 最初のページに書き込むべきデー タをフラッシュメモリに転送し、 かかるデータを当該ページに書き込 むよう、 フラッシュメモリに対して指示する。 これに応答して、 フラ ッシュメモリ力 転送されたデータを指定されたページに格納すると、 次いで、 コントローラは、 次のページに書き込むべきデータをフラッ シュメモリに転送し、 当該ページに書き込むよう、 フラッシュメモリ に対して指示する。 このような処理を、 要求された複数ア ドレスにつ いて次々と実行することにより、 連続する複数ページへの一連のデー タの書き込み処理が完了する。
ここで、 ひとつのページに対する書き込み処理に要する時間は、 主 に、 書き込むべきデータをコン トローラからフラッシュメモリ に転送
するために必要な時間 (データ転送時間)、 コントローラからフラッシ ュメモリに書き込み命令を発行する時間 (命令発行時間)、実際にフラ ッシュメモリにデータが書き込まれる時間 (フラッシュプログラム時 間) 等からなり、 このうち、 フラッシュプログラム時間は、 特に長い 時間 (例えば、 約 2 0 0 μ s e c ) を要する。
従来は、 このように比較的長い時間を要する 1回のデータ書き込み 処理を、 ページ単位で次々と行っているため、 ホス トコンピュータよ り、 連続する複数ァドレスに対してデータ書き込み要求がなされた場 合、 一連のデータの書き込み処理が完了するには、 データを書き込む べきページ数に実質的に比例した時間が必要であった。
このため、 ホス トコンピュータより連続する複数ァドレスに対して データ書き込み要求がなされた場合に、 一連のデータの書き込み処理 をより高速に行うことができるメモリコントローラ、 フラッシュメモ リシステム及びフラッシュメモリの制御方法が望まれていた。
したがって、 本発明の目的は、 フラッシュメモリに対する一連のデ ータ書き込み処理をより高速に行うことができるメモリ コントローラ 及びこのようなメモリ コントローラを備えるフラッシュメモリシステ ムを提供することである。
また、 本発明の他の目的は、 フラッシュメモリに対する一連のデー タ書き込み処理をより高速に行うことができるフラッシュメモリの制 御方法を提供することである。 発明の開示
本発明のかかる目的は、 ホス トコンピュータより供給されるホス ト ァドレスに基づいて、 複数の物理ブロックからなるメモリにアクセス するメモリコントローラであって、 前記各物理プロックを複数のグル ープに分類する手段と、 互いに異なるグループに属する複数の物理ブ 口ックを仮想的に結合することにより複数の仮想プロックを形成する 手段と、 隣り合うホス トア ドレスを前記仮想プロック内において互い に異なる物理プロックに割り当てる手段とを備えるメモリ コントロー
ラ。 によって達成される。
本発明によれば、 隣り合うホス トアドレスが、 仮想ブロック内にお いて互いに異なる物理プロックに割り当てられているため、 連続する 複数ァドレスに対するアクセスがホス トコンピュータから要求された 場合、 これらアドレスによりアクセスされる物理プロックは、 互いに 異なる物理ブロックとなる。 このため、 アクセスされた各物理ブロッ クがそれぞれ独立して動作することにより、 一連の処理を並列に行う ことができる。 これにより、 フラッシュメモリに対する一連の処理を より高速に行うことが可能となる。
本発明の好ましい実施態様においては、 前記物理グループが、 前記 複数のブロックをメモリチップ別に分類するものである。
本発明の好ましい実施態様によれば、 メモリチップ別に各物理プロ ックがグループ分けされていることから、 連続する複数のホス トアド レスに対応する物理プロックは、 それぞれ異なるメモリチップに属す ることとなる。 このため、 これらメモリチップが、 並列処理を行うこ とができない通常のメモリチップであっても、 それぞれのメモリチッ プが独立して動作することにより、並列処理を行うことが可能となる。 本発明のさらに好ましい実施態様においては、 前記グループが、 前 記複数の物理プロックをバンク別に分類するものである。
本発明のさらに好ましい実施態様によれば、 バンク別に各物理プロ ックがグループ分けされていることから、 連続する複数のホス トアド レスに対応する物理プロックは、 それぞれ異なるバンクに属すること となる。 このため、 メモリチップが一つのみであっても、 それぞれの バンクが独立して.動作することにより、 並列処理を行うことが可能と なる。 特に、 メモリチップを複数個用い、 互いに異なるバンクに属す る複数の物理プロックを、 複数のメモリチップに亘つて仮想的に結合 することにより仮想プロックを構成すれば、 より多くの処理を並列に 実行することが可能となるので、 フラッシュメモリに対する一連の処 理をより高速に行うことが可能となる。
本発明のさらに好ましい実施態様においては、 複数の連続するホス
トァドレスに基づくデータの書き込みが前記ホストコンピュータから 要求されたことに応答して、 前記連続するホストァドレスがそれぞれ 割り当てられた複数の物理プロックであって互いに前記仮想プロック を構成する複数のブロックをそれぞれ含むメモリへ連続的に前記デー タを転送する手段と、 前記転送したデータをそれぞれ対応する物理ブ 口ックに書き込むよう前記メモリに対して実質的に同時に指示する手 段とをさらに備える。
本発明のさらに好ましい実施態様によれば、 転送したデータの書き 込み実行を、 各データについて実質的に同時に指示しているので、 一 連のデータ書き込み処理を高速に行うことが可能となる。
本発明の前記目的はまた、 ホストコンピュータより供給されるホス トア ドレスを内部ァドレスに変換し、 前記内部ァドレスに基づいて複 数の物理プロックからなるメモリにアクセスするメモリコントローラ であって、 前記ホストァドレスの少なく とも最下位ビッ トを含む部分 に基づいて、 前記ホス トコンピュータよ り供給された連続するホス ト ア ドレスを、 対応する物理プロックが互いに異なる内部ァドレスに変 換することを特徴とするメモリ コン トローラによって達成される。 本発明によれば、 ホス トア ドレスの少なく とも最下位ビッ トを含む 部分に基づいて、 連続するホス トア ドレスを、 対応する物理ブロ ック が互いに異なる内部ア ドレスに変換していることから、 少なく とも隣 り合うホス トァドレスに対応する物理ブロックは、 必ず異なる物理ブ ロックとなる。 このため、 連続するホス トア ドレスによりアクセスさ れた各物理ブロックは、 一連の処理を並列に行うことができ、 これに より、 フラッシュメモリに対する一連の処理をより高速に行うことが 可能となる。
本発明の好ましい実施態様においては、 前記異なる内部ァドレスに よりアクセスされる複数の物理プロックが、 互いに異なるメモリチッ プにそれぞれ属する。
本発明の好ましい実施態様によれば、 前記異なる内部ァドレスによ りアクセスされる複数の物理ブロックが、 互いに異なるメモリチップ
にそれぞれ属していることから、 連続する複数のホス トァドレスに対 応する物理プロックは、 それぞれ異なるメモリチップに属することと なる。 このため、 これらメモリチップが、 並列処理を行うことができ ない通常のメモリチップであっても、 それぞれのメモリチップが独立 して動作することにより、 並列処理を行うことが可能となる。
本発明の別の好ましい実施態様においては、 前記異なる内部ァドレ スによりアクセスされる複数の物理ブロックが、 同一のメモリチップ 内の互いに異なるバンクにそれぞれ属する。
本発明の別の好ましい実施態様によれば、 前記異なる内部ァドレス によりアクセスされる複数の物理ブロックが、 同一のメモリチップ内 の互いに異なるバンクにそれぞれ属していることから、 連続する複数 のホス トア ドレスに対応する物理ブロックは、 同一のメモリチップ内 それぞれ異なるバンクに属することとなる。 このため、 メモリチップ が 1つの場合であっても、 それぞれのバンクが独立して動作すること により、 並列処理を行うことが可能となる。
本発明のさらに別の好ましい実施態様においては、 前記異なる内部 アドレスによりアクセスされる複数の物理プロックが、 複数のメモリ チップ内の互いに異なるバンクにそれぞれ属する。
本発明のさらに別の好ましい実施態様によれば、 前記異なる内部ァ ドレスによりアクセスされる複数の物理プロッタが、 複数のメモリチ ップ内の互いに異なるバンクにそれぞれ属していることから、 各メモ リチップのパンクが独立して動作することにより、 より多くの処理を 並列に実行することが可能となる。
本発明の前記目的はまた、 ホス トコンピュータより供給されるホス トア ドレスを内部ア ドレスに変換し、 前記内部ア ドレスに基づいて複 数の物理ブロックからなるメモリにアクセスするメモリコントローラ であって、 第 1 のホス トア ドレスを第 1の物理プロックに対応する内 部ァドレスに変換し、 前記第 1 のホス トア ドレスに続く第 2のホス ト ァドレスを第 2の物理プロックに対応する内部ァドレスに変換し、 前 記第 2のホス トア ドレスに続く第 3のホス トァドレスを前記第 2の物
理ブロックとは異なる物理プロックに対応する内部ァドレスに変換す ることを特徴とするメモリコントローラによって達成される。
本発明によれば、 第 1、 第 2及び第 3のホス トア ドレスが、 それぞ れ第 1の物理ブロック、 第 2の物理ブロック、 及び第 2の物理プロッ クとは異なる物理プロックに対応す'る内部ァドレスに変換されること から、 連続する複数のホス トア ドレスに対応する物理ブロックは、 そ れぞれ異なるメモリチップに属することとなる。 このため、 これらメ モリチップが、 並列処理を行うことができない通常のメモリチップで あっても、 それぞれのメモリチップが独立して動作することにより、 並列処理を行うことが可能となる。
本発明の好ましい実施態様においては、 前記第 2の物理プロックと は異なるプロックが第 3の物理プロックであり、 前記第 1乃至第 3の 物理プロックが、 互いに異なるメモリチップにそれぞれ属する。 本発明の好ましい実施態様によれば、 これらメモリチップが、 並列 処理を行うことができない通常のメモリチップであっても、 それぞれ のメモリチップが独立して動作することにより、 並列処理を行うこと が可能となる。
本発明の別の好ましい実施態様においては、 前記第 1乃至第 3の物 理ブロックカ 同一のメモリチップ内の互いに異なるバンクにそれぞ れ属する。
本発明の別の好ましい実施態様によれば、 メモリチップが 1つの場 合であっても、 それぞれのバンクが独立して動作することにより、 並 列処理を行うことが可能となる。
本発明のさらに別の好ましい実施態様においては、 前記第 1及び第 2の物理ブロックが、 同一のメモリチップ内の互いに異なるバンクに それぞれ属し、 前記第 3の物理プロックが、.前記メモリチップとは異 なるメモリチップに属する。
本発明のさらに別の好ましい実施態様によれば、 各メモリチップの バンクが独立して動作することにより、 より多くの処理を並列に実行 することが可能となる。
本発明の前記目的はまた、 複数の物理プロックからなるフラッシュ メモリ と、 ホス トコンピュータより供給されるホス トァドレスに基づ いて前記フラッシュメモリ にアクセスするメモリ コントローラとを備 え、 前記コントローラが、 前記物理ブロックを複数のグループに分類 する手段と、 互いに異なるグループに属する複数の物理ブロックを仮 想的に結合することにより複数の仮想プロックを形成する手段と、 隣 り合うホス トァドレスを前記仮想プロック内において互いに異なる物 理ブロックに割り当てる手段とを備えることを特徴とするフラッシュ メモリ システムによって達成される。
本発明の好ましい実施態様においては、 前記各物理ブロックがユー ザ領域と冗長領域とを備え、 前記冗長領域には、 自己が構成する仮想 ブロックを特定する情報が記録されている。
本発明のさらに好ましい実施態様においては、 前記フラッシュメモ リと前記メモリコントローラとが、 同一の筐体に収容されている。 本発明のさらに好ましい実施態様においては、 前記筐体がカード形 状である。
本発明の前記目的はまた、 それぞれ複数の物理ページによって構成 される複数の物理ブロックからなるフラッシュメモリ と、 ホストコン ピュータょり供給されるホストァドレスに基づいて前記フラッシュメ モリにアクセスするメモリコントローラとを備えるフラッシュメモリ システムであって、 第 1のホス トア ドレスを、 第 1 の物理ブロ ックに 属する物理ページであって前記ホス トァドレスによって一義的に定ま る所定の物理ページ番号が割り当てられた物理ページに対応する内部 ァ ドレスに変換し、 前記第 1のホス トアドレスに続く第 2のホス トア ドレスを、 第 2の物理ブロックに属する物理ページであって前記所定 の物理ページ番号と同じ番号が割り当てられた物理ページに対応する 内部ァドレスに変換することを特徴とするフラッシュメモリ システム によって達成される。
本発明によれば、 連続する第 1及び第 2のホス トア ドレスが、 異な る物理フ口ックに属するページに対応する内部ァドレスにそれぞれ変
換されるので、 連続するホストァドレスに基づいてホストコンピュー タからアクセスが要求された場合、 アクセスされた各物理プロックが それぞれ独立して動作することにより、 一連の処理を並列に行うこと ができる。
本発明の好ましい実施態様においては、 前記メモリ コン トローラに は、 前記第 1の物理プロックと前記第 2の物理プロックとを関連づけ る情報が格納されている。
本発明の好ましい実施態様によれば、 第 1の物理プロックと第 2の 物理プロックとを関連づける情報がメモリコントローラに格納されて いるので、 メモリ コントローラは、 これを参照することにより、 速や かにホストァドレスを内部ァドレスに変換することができる。
本発明のさらに好ましい実施態様においては、 前記第 1の物理プロ ックには前記第 2の物理ブロックとの関連を示す情報が格納されてお り、 前記第 2の物理ブロックには前記第 1の物理プロックとの関連を 示す情報が格納されている。
本発明のさらに好ましい実施態様によれば、 それぞれの物理プロッ クに格納されている情報を参照することにより、 メモリ コン トローラ は、 第 1の物理プロックと第 2の物理プロックとが関連づけられてい ることを容易に知ることができる。
本発明の前記目的はまた、 複数の連続するホス トア ドレスに基づく データの書き込みがホス トコンピュータから要求されたことに応答し て、 前記複数のホストァドレスがそれぞれ割り当てられた複数の物理 プロックを含むメモリへ連続的に前記データを転送するステップと、 前記転送したデータを対応する物理プロックに書き込むよう前記メモ リに対して実質的に同時に指示するステップとを備えることを特徴と するフラッシュメモリの制御方法によって達成される。
本発明によれば、転送したデータを各物理プロックに書き込むよう、 メモリに対して実質的に同時に指示していることから、 フラッシュメ モリに対する一連のデータ書き込み処理をより高速に行うことができ る。
本発明に前記目的はまた、 それぞれ複数のグループのいずれかに分 類される複数の物理プロックからなるフラッシュメモリの制御方法で あって、 前記複数の物理プロックにそれぞれ格納された仮想プロック 番号を読み出すステップと、 互いに異なるグループに属する複数の物 理プロックであって読み出された前記仮想プロック番号が互いに一致 する複数の物理プロックを仮想的に結合するステップと、 前記仮想的 に結合された複数の物理プロックを一つの仮想プロックとして取り扱 うステップとを備えることを特徴とするフラッシュメモリの制御方法 によって達成される。
本発明によれば、 互いに異なるグループに属する複数の物理プロッ クであって仮想ブロック番号が互いに一致する複数の物理プロックが 仮想的に結合され、 これらが一つの仮想プロックとして取り扱われる ことから、 本来、 同一の物理ブロックに対応する複数のホス トア ドレ スを、 それぞれ異なる物理ブロックに対応させることができる。 これ により、 一連の処理を並列に行うことが可能となる。
本発明の好ましい実施態様においては、 前記グループが、 前記複数 の物理プロックをメモリチップ別に分類するものである。
本発明のさらに好ましい実施態様においては、 前記グループが、 前 記複数の物理プロックをバンク別に分類するものである。 図面の簡単な説明
図 1は、 本発明の好ましい実施態様にかかるフラッシュメモリシス テム 1を概略的に示すプロック図である。
図 2は、 フラ ッシュメモリチップ 2— 0〜 2— 3を構成する各フラ ッシュメモリセル 1 6の構造を概略的に示す断面図である。
図 3は、 書込状態であるフラッシュメモリセル 1 6を概略的に示す 断面図である。
図 4は、 フラッシュメモリチップ 2— 0のァドレス空間の構造を概 略的に示す図である。
図 5は、 冗長領域 2 6のデータ構造を概略的に示す図である。
図 6は、 本発明の好ましい実施態様における仮想プロックのマッピ ングの一例を示す図である。
図 7は、 '図 6に示された仮想プロックの仮想ページ構造を示す図で ある。
図 8は、 8 0 0 0個の仮想ブロックと、 これら各仮想ブロックを構 成する 4つの物理プロックとの関係を示すァドレス変換テーブル 2 7 のデータ構造を示す概略図である。
図 9は、 S R A Mワークェリア 8に格納される消去済みブロックキ ユー 3 0のデータ構造を示す概略図である。
図 1 0は、 データ読み出し動作時における、 ア ドレス変換テーブル 2 7を用いた内部ァ ドレスへの変換方法を説明するための図である。 図 1 1は、 データ書き込み動作時における、 ア ドレス変換テーブル 2 7を用いた内部ァドレスへの変換方法を説明するための図である。 図 1 2は、 フラッシュシーケンサプロック 1 2による一連の書き込 み動作タイミング概略的に示すタイミング図である。
図 1 3は、 転送元ブロックァドレス及び転送先ブロックア ドレスの 生成方法を説明するための図である。
図 1 4は、 本発明の好ましい他の実施態様にかかるフラッシュメモ リシステム 3 1を概略的に示すプロック図である。
図 1 5は、 フラッシュメモリチップ 3 2— 0の構造を概略的に示す 図である。
図 1 6は、 フラッシュメモリチップ 3 2— 0における仮想ブロック の一例を示す図である。
図 1 7は、 図 1 6に示された仮想ブロックのページ構造を示す図で ある。
図 1 8は、 8 0 0 0個の仮想ブロックと、 これら各仮想ブロックを 構成する 4つの物理ブロックとの関係を示すァドレス変換テーブル 3 3のデータ構造を示す概略図である。
図 1 9は、 S R A Mワークエリァ 8に格納される消去済みブロック キュー 3 4のデータ構造を示す概略図である。
図 2 0は、 データ読み出し動作における、 ア ドレス変換テーブル 3 3を用いた内部ァドレスへの変換手順を説明するための図である。 図 2 1は、 データ書き込み動作における、 ア ドレス変換テーブル 3 3を用いた内部ァドレスへの変換手順を説明するための図である。 図 2 2は、 フラッシュシーケンサブロック 1 2による一連の書き込 み動作タイミング概略的に示すタイミング図である。
図 2 3は、 本発明の好ましいさらに他の実施態様における仮想プロ ックの一例を示す図である。
図 2 4は、 図 2 3に示された仮想ブロックのページ構造を示す図で ある。
図 2 5は、 4 0 0 0個の仮想ブロックと、 これら各仮想プロックを 構成する 8つの物理ブロックとの関係を示すァドレス変換テーブル 3 6のデータ構造を示す概略図である。
図 2 6は、 S R A Mワークエリ了 8に格納される消去済みプロック キュー 3 7のデータ構造を示す概略図である。
図 2 7は、 データ読み出し動作における、 ア ドレス変換テーブル 3 6を用いた内部ァドレスへの変換手順を説明するための図である。 図 2 8は、 データ書き込み動作における、 ア ドレス変換テーブル 3 6を用いた内部ァドレスへの変換手順を説明するための図である。 図 2 9は、 フラッシュシーケンサブロック 1 2による一連の書き込 み動作タイミング概略的に示すタイミング図である。 発明の実施の形態
以下、 添付図面を参照しながら、 本発明の好ましい実施態様につい て詳細に説明する。
図 1は、 本発明の好ましい実施態様にかかるフラッシュメモリ シス テム 1を概略的に示すプロック図である D
図 1に示されるように、 フラッシュメモリシステム 1はカード形状 であり、 4個のフラッシュメモリチップ 2— 0〜 2— 3と、 コント口 ーラ 3と、 コネクタ 4とが、一つのカード内に集積されて構成される。
フラッシュメモリシステム 1は、 ホス トコンピュータ 5に着脱可能に 装着されて使用され、 ホス トコンピュータ 5に対する一種の外部記憶 装置と して用いられる。 ホス トコンピュータ 5 としては、 文字、 音声、 あるいは画像情報等の種々の情報を処理するパーソナルコンピュータ やデジタルスチルカメラをはじめとする各種情報処理装置が挙げられ る。
各フラッシュメモリチップ 2— 0〜 2— 3は、 特に限定されるもの ではないが、 それぞれ 1 2 8 Mバイ ト ( 1 Gビッ ト) の記憶容量を有 する半導体チップである。 フラッシュメモリシステム 1においては、 5 1 2バイ トを 1ページと し、 これを最小アクセス単位としている。 したがって、 これら各フラッシュメモリチップ 2— 0〜 2— 3は、 そ れぞれ 2 5 6 Kページのァ ドレス空間を含み、 フラッシュメモリチッ プ 2— 0〜 2— 3の合計で、 1 Mページのァドレス空間を備えること になる。 また、 フラッシュメモリシステム 1においては、 これら 4つ のフラ ッシュメモリチップ 2— 0〜 2— 3は、 5 1 2 Mバイ ト ( 4 G ビッ ト) の記憶容量を有し、 1 Mページのア ドレス空間を備える一つ の大きなメモリ として取り扱われる。 このため、 これら 1 Mページか らなるァドレス空間から特定のページにアクセスするためには、 少な く とも 2 0 ビッ トのア ドレス情報が必要となる。 したがって、 ホス ト コンピュータ 5は、 フラッシュメモリシステム 1に対し、 少なく とも 2 0ビッ トのァドレス情報を供給することによって、 特定のページに 対するアクセスを行う。 以下、 ホス トコンピュータ 5よりフラッシュ メモリ システム 1に供給される 2 0 ビッ トのアドレス情報を 「ホス ト ァドレス」 と呼ぶ。
コントローラ 3は、 マイクロプロセッサ 6 と、 ホス トインターフエ ースプロ ック 7と、 S R A Mワークエリア 8 と、 ノ ッファ 9 と、 フラ ッシュメモリインタ一フェースブロ ック 1 0 と、 E C C (エラー ' コ レクション ■ コード) ブロ ック 1 1 と、 フラッシュシーケンサブロ ッ ク 1 2とから構成される。 これら機能プロックによって構成されるコ ン トローラ 3は、 一つの半導体チップ上に集積されている。
マイクロプロセッサ 6は、 コントローラ 3を構成する各機能プロッ ク全体の動作を制御するための機能ブロックである。
ホス トインターフェースブロック 7は、 バス 1 3を介してコネクタ 4に接続されており、 マイクロプロセッサ 6による制御のもと、 ホス トコンピュータ 5 とのデータやア ドレス情報、 ステータス情報、 外部 コマンド情報の授受を行う。 すなわち、 フラッシュメモリシステム 1 がホス トコンピュータ 5に装着されると、 フラッシュメモリシステム 1 とホス トコンピュータ 5 とは、 パス 1 3、 コネクタ 4及びバス 1 4 を介して相互に接続され、 かかる状態において、 ホス トコンピュータ 5よりフラ ッシュメモリシステム 1に供給されるデータ等は、 ホス ト インターフェースプロック 7を入口と してコントローラ 3の内部に取 り込まれ、 また、 コントローラ 3よりホス トコンピュータ 5に供給さ れるデータ等は、 ホス トインターフェースプロック 7を出口としてホ ス トコンピュータ 5に供給される。 さらに、 ホス トインターフェース プロック 7は、 ホス トコンピュータ 5より供給されるホス トア ドレス 及ぴ外部コマンドを一時的に格納するタスクファイルレジスタ (図示 せず)及びエラーが発生した場合にセッ トされるエラーレジスタ等(図 示せず) を有している。
S R A Mワークェリア 8は、 マイクロプロセッサ 6によるブラッシ ュメモリチップ 2— 0〜 2— 3の制御に必要なデータが一時的に格納 される作業領域であり、 複数の S R A Mセルによって構成される。
ノ ッファ 9は、 フラッシュメモリチップ 2— 0〜 2— 3から読み出 されたデータ及びフラッシュメモリチップ 2— 0〜 2— 3に書き込む べきデータを一時的に蓄積するバッファである。 すなわち、 フラッシ ュメモリチップ 2— 0〜2— 3から読み出されたデータは、 ホス トコ ンピュータ 5が受け取り可能な状態となるまでバッファ 9に保持され、 フラッシュメモリチップ 2— 0〜2— 3に書き込むべきデータは、 フ ラッシュメモリチップ 2— 0〜 2— 3が書き込み可能な状態となるま でバッファ 9に保持される。
フラッシュメモリインターフェースブロック 1 0は、 バス 1 5を介
して、 フラッシュメモリチップ 2— 0 〜 2— 3とのデータゃァドレス 情報、 ステータス情報、 内部コマンド情報の授受を行う とともに、 各 フラッシュメモリチップ 2— 0 〜 2— 3に対して対応するチップ選択 信号 # 0 〜 # 3を供給するための機能プロックである。 チップ選択信 号 # 0 〜 # 3は、 ホス トコンピュータ 5からデータの読み出しまたは 書き込みが要求された場合、 ホス トコンピュータ 5より供給されるホ ス トア ドレスの下位 2ビッ トに基づいて、 そのいずれかが活性化され る信号である。 具体的には、 ホス トア ドレスの下位 2ビッ トが 「0 0」 であればチップ選択信号 # 0が活性化され、 「0 1」であればチップ選 択信号 # 1が活性化され、 「 1 0」であればチップ選択信号 # 2が活性 化され、 「 1 1」 であればチップ選択信号 # 3が活性化される。 対応す るチップ選択信号が活性化されたフラッシュメモリチップ 2— 0 〜 2 - 3は選択状態となり、 データの読み出しまたは書き込みが可能とな る。 尚、 「内部コマンド」 とは、 コントローラ 3がフラッシュメモリチ ップ 2— 0 〜 2— 3を制御するためのコマンドであり、 ホス トコンビ ユータ 5がフラッシュメモリシステム 1を制御するための 「外部コマ ンド」 と区別される。
E C Cブロック 1 1は、 フラッシュメモリチップ 2 _ 0 〜 2— 3に 書き込むデータに付加すべきエラーコレクシヨンコードを生成すると ともに、 読み出しデータに付加されたエラーコレクションコードに基 づいて、 読み出しデー^に含まれる誤りを訂正するための機能プロッ クである。
フラッシュシーケンサブロック 1 2は、 フラッシュメモリチップ 2 一 0 ~ 2— 3とバッファ 9とのデータの転送を制御するための機能ブ ロックである。 フラッシュシーケンサブロック 1 2は、 複数のレジス タ (図示せず) を備え、 マイクロプロセッサ 6による制御のもと、 フ ラッシュメモリチップ 2— 0 〜 2— 3からのデータの読み出しまたは フラッシュメモリチップ 2— 0 〜 2— 3へのデータの書き込みに必要 な値がこれらレジスタに設定されると、 データの読み出しまたは書き 込みに必要な一連の動作を自動的に実行する。
次に、 各フラッシュメモリチップ 2— 0〜 2— 3を構成する各フラ ッシュメモリセルの具体的な構造について説明する。
図 2は、 フラッシュメモリチップ 2— 0〜 2— 3を構成する各フラ ッシュメモリセル 1 6の構造を概略的に示す断面図である。
図 2に示されるように、 フラッシュメモリセル 1 6は、 P型半導体 基板 1 7に形成された N型のソース拡散領域 1 8及びドレイン拡散領 域 1 9と、 ソース拡散領域 1 8と ドレイン拡散領域 1 9 との間の P型 半導体基板 1 7を覆って形成されたトンネル酸化膜 2 0と、 トンネル 酸化膜 2 0上に形成されたフローティングゲート電極 2 1と、 フロー ティングゲート電極 2 1上に形成された絶縁膜 2 2と、 絶縁膜 2 2上 に形成されたコントロールゲート電極 2 3とから構成される。 このよ うな構成を有するフラッシュメモリセル 1 6は、 フラッシュメモリチ ップ 2— 0〜 2— 3内において、 複数個直列に接続されて、 N A N D 型フラッシュメモリ を構成する。
フラッシュメモリセル 1 6は、 フローティングゲート電極 2 1に電 子が注入されているか否かによって、 「消去状態」 と 「書込状態」 のい ずれかの状態が示される。 フラッシ メモリセル 1 6が消去状態であ ることは、 当該フラッシュメモリセル 1 6にデータ 「 1」 が保持され ていることを意味し、 フラッシュメモリセル 1 6が書込状態であるこ とは、 当該フラッシュメモリセル 1 6にデータ 「0」 が保持されてい ることを意味する。 すなわち、 フラッシュメモリセル 1 6は、 1 ビッ トのデータを保持することが可能である。
図 2に示されるように、 消去状態とは、 フローティングゲート電極 2 1に電子が注入されていない状態を指す。 消去状態におけるフラッ シュメモリセル 1 6は、 デプレッション型のトランジスタとなり、 コ ントロールゲート電極 2 3に読み出し電圧が印加されているか否かに 関わらず、 ソース拡散領域 1 8と ドレイン拡散領域 1 9 との間の P型 半導体基板 1 7の表面にはチャネル 2 4が形成される。 したがって、 ソース拡散領域 1 8と ドレイン拡散領域 1 9とは、 コントロールグー ト電極 2 3に読み出し電圧が印加されているか否かに関わらず、 チヤ
ネル 2 4によって常に電気的に接続状態となる。
図 3は、 書込状態であるフラッシュメモリセル 1 6を概略的に示す 断面図である。
図 3に示されるように、 書込状態とは、 フローティ グゲート電極 2 1に電子が蓄積されている状態を指す。 フローティングゲート電極 2 1はトンネル酸化膜 2 0及び絶縁膜 2 2に挟まれているため、ー且、 フローティングゲ一ト電極 2 1に注入された電子は、 きわめて長時間 フローティングゲ一ト電極 2 1内にとどまる。 書込状態におけるフラ ッシュメモリセル 1 6は、エンハンスメン ト型の トランジスタとなり、 コント口一ルゲート電極 2 3に読み出し電圧が印加されていないとき には、 ソース拡散領域 1 8と ドレイ ン拡散領域 1 9との間の P型半導 体基板 1 7の表面にはチャネルが形成されず、 コント口一ルゲート電 極 2 3に読み出し電圧が印加されているときには、 ソース拡散領域 1 8と ドレイン拡散領域 1 9との間の P型半導体基板 1 7の表面にチヤ ネル (図示せず) が形成される。 したがって、 コン トロールゲート電 極 2 3に読み出し電圧が印加されていない状態では、 ソース拡散領域 1 8と ドレイン拡散領域 1 9とは電気的に絶縁され、 コントロールゲ 一ト電極 2 3に読み出し電圧が印加された状態では、 ソース拡散領域 1 8.と ドレイン拡散領域 1 9とが電気的に接続される。
ここで、 選択されたフラッシュメモリセル 1 6が消去状態であるか 書込状態であるかは、 次のようにして読み出すことができる。 すなわ ち、 複数個直列に接続されたフラッシュメモリセル 1 6のうち、 選択 されたフラ ッシュメモリセル 1 6以外の全てのフラッシュメモリセル 1 6のコン トロールゲート電極 2 3に読み出し電圧を印加し、 この状 態において、 これらフラッシュメモリセル 1 6の直列体に電流が流れ るか否かを検出する。 その結果、 かかる直列体に電流が流れれば、 選 択されたフラッシュメモリセル 1 6が消去状態であると判断すること ができ、 かかる直列体に電流が流れなければ、 選択されたフラッシュ メモリセル 1 6が書込状態であると判断することができる。 このよう にして、 直列体に含まれる任意のフラッシュメモリセル 1. 6に保持さ
れたデータが 「0」 であるのか 「 1」 であるのかを読み出すことがで きる。 但し、 N A N D型フラッシュメモリにおいては、 ひとつの直列 体に含まれる 2以上のフラッシュメモリセル 1 6に保持されたデータ を同時に読み出すことはできない。
また、 消去状態であるフラッシュメモリセル 1 6を書込状態に変化 させる場合、 コントロールゲート電極 2 3に正の高電圧が印加され、 これによつて、 トンネル酸化膜 2 0を介してフローティングゲ一ト電 極 2 1へ電子が注入される。 フローティングゲ一ト電極 2 1への電子 の注入は、 F N トンネル電流による注入が可能である。 一方、 書込状 態であるフラッシュメモリセル 1 6を消去状態に変化させる場合、 コ ントロールゲート電極 2 3に負の高電圧が印加され、 これによつて、 トンネル酸化膜 2 0を介してフローティングゲ一ト電極 2 1に蓄積さ れた電子が排出される。
次に、 各フラッシュメモリチップ 2— 0〜2— 3の持つァドレス空 間の具体的な構成について説明する。
図 4は、 フラッシュメモリチップ 2— 0のァドレス空間の構造を概 略的に示す図である。
図 4に示されるように、 フラッシュメモリチップ 2— 0のア ドレス 空間は、 物理プロック # 0〜# 8 1 9 1からなる 8 1 9 2個の物理ブ ロックによって構成される。 また、 図 4には示されていないが、 フラ ッシュメモリチップ 2— 1〜2— 3 も、 フラ ッシュメモリチップ 2— 0と同様に物理プロック # 0〜 # 8 1 9 1からなる 8 1 9 2個の物理 ブロックによって構成されている。 これら各ブロックは、 いずれも 1 6 Kバイ トの記憶容量を有する。
ここで、 上記各物理ブロックは、 データの消去単位である。 すなわ ち、 フラッシュメモリチップ 2— 0〜 2— 3では、 各フラッシュメモ リセル 1 6ごとに、 その状態を書込状態から消去状態に変化させるこ とはできず、 フラッシュメモリセル 1 6を書込状態から消去状態に変 化させる場合は、 当該フラッシュメモリセル 1 6が属するプロックに 含まれる全てのフラッシュメモリセル 1 6がー括して消去状態とされ
る。 逆に、 フラッシュメモリチップ 2— 0 ~ 2— 3では、 各フラッシ ュメモリセル 1 6ごとに、 その状態を消去状態から書込状態に変化さ せることは可能である。
さらに、 図 4に示されるように、 フラッシュメモリチップ 2— 0を 構成する各物理プロック # 0〜 # 8 1 9 1は、 それぞれ物理ページ # 0〜 # 3 1からなる 3 2個の物理ページによって構成されている。 ま た、 フラッシュメモリチップ 2— 1 〜 2— 3を構成する各物理プロッ ク # 0〜 # 8 1 9 1 も、 フラッシュメモリチップ 2— 0を構成する各 物理プロック # 0〜 # 8 1 9 1と同様に、 それぞれ 3 2個の物理ぺー ジによって構成されている。
これら各ページはデータの読み出し及び書き込みにおけるアクセス 単位であり、 図 4に示されるように、 ビッ ト b 0〜 b 7力 らなる 8ビ ットを 1バイ トとして、 それぞれ 5 1 2バイ トのユーザ領域 2 5と 1 6バイ トの冗長領域 2 6によって構成される。 ユーザ領域 2 5は、 ホ ス トコンピュータ 5より供給されるユーザデータが格納される領域で ある。
囪 5は、 冗長領域 2 6のデータ構造を概略的に示す図である。
図 5に示されるように、 冗長領域 2 6は、 エラーコレクショ ンコー ド格納領域 2 8、 仮想プロックアドレス格納領域 2 9及びその他の付 加情報によって構成される。
エラーコ レクショ ンコード格納領域 2 8は、 対応するユーザ領域 2 5に格納されたユーザデータの誤りを訂正するための付加情報 (エラ 一コレクショ ンコード) を格納するための領域であり、 ユーザ領域 2 5に格納されたデータに含まれるデータの誤りが所定数以下であれば、 エラーコレクショ ンコード格納領域 2 8に格納されたエラーコレクシ ヨンコードを用いてこれを訂正し、正しいデータとすることができる。 仮想プロックァドレス格納領域 2 9は、 当該物理プロックが属する 仮想ブロックのア ドレス (仮想ブロックア ドレス) を格納するための 領域である。 仮想プロック及び仮想ブロックァドレスの詳細について は後述する。
冗長領域 2 6のその他の領域には、 当該ブロックについての異常を 表示するプロックステータス等が格納されているが、 これらについて の説明は省略する。
このように、 各ページは、 5 1 2バイ トのユーザ領域 2 5 と 1 6 ノ ィ トの冗長領域 2 6からなるので、 各ページは、 8 X ( 5 1 2バイ ト + 1 6バイ ト) = 4 2 2 4個のフラッシュメモリセルによって構成さ れることになる。
このように、 各フラッシュメモリチップ 2 _ 0〜 2— 3は 8 1 9 2 個の物理ブロックによって構成されるが、 このうち、 8 0 0 0個の物 理ブロックは実際にデータを格納することができるプロック (以下、 「実使用ブロック」 という) として取り扱われ、 残りの 1 9 2個のブ ロックは 「冗長プロック」 とレて取り扱われる。 冗長ブロックは、 デ ータ書き込みに備えて待機している空きブロックである。 フラッシュ メモリチップ 2— 0 ~ 2— 3のア ドレス空間は、 実使用ブロックのみ によって構成される。 ある物 aブロックに不良が発生し、 使用不能と なった場合には、 不良が発生したプロックの数だけ冗長プロックとし て割り当てられる物理プロックの数が減らされる。
さらに、 実使用ブロックは、 各フラッシュメモリチップ 2— 0 ~ 2 一 3から一つずつ選ばれた 4つの物理プロックが仮想的に結合された 「仮想ブロック」 を構成する。 これにより、 仮想ブロック # 0〜# 7 9 9 9からなる 8 0 0 0個の仮想ブロックが構成される。
図 6は、 仮想プロックのマツビングの一例を示す図である。
図 6に示される例では、 フラッシュメモリチップ 2— 0に含まれる 物理プロック # 1 5 0、 フラッシュメモリチップ 2— 1に含まれる物 理プロック # 6 8 1 1、 フラッシュメモリチップ 2— 2に含まれる物 理ブロック # 8 1 9 1、 フラッシュメモリチップ 2— 3に含まれる物 理プロック # 3 0 4 8が仮想的に結合され、 一つの仮想プロックを構 成している。 このように、 本実施態様においては、 ひとつの仮想プロ ックを構成する 4つの物理ブロックは互いに異なるフラッシュメモリ チップに含まれていることが必要である。 このようにして、 8 0 0 0
個の仮想プロックが構成される。
図 7は、 図 6に示された仮想プロックの仮想ページ構造を示す図で ある。
図 7に示されるように、 仮想ブロックは、 仮想ページ # 0〜ページ # 1 2 7からなる 1 2 8個の仮想ページによって構成される一つのブ ロックとして取り扱われる。 ここで、図 7に示す仮想ブロックのうち、 物理ブロック # 1 5 0からなる部分に含まれる 3 2個のページは、 仮 想ページ番号と して 4 i ( iは、 物理ページ番号) が与えられ、 物理 ブロック # 6 8 1 1からなる部分に含まれる 3 2個のページは、 仮想 ページ番号として 4 i + 1が与えられ、 物理プロック # 8 1 9 1から なる部分に含まれる 3 2個のページは、 仮想ページ番号として 4 i + 2が与えられ、 物理プロック # 3 0 4 8からなる部分に含まれる 3 2 個のページは、 仮想ページ番号として 4 i + 3が与えられる。 詳細は 後述するが、 これら仮想ページ番号は、 ホス トアドレスの下位 7ビッ トと対応している。
次に、 仮想ブロックとこれを構成する 4つの物理ブロックとの関係 について説明する。
図 8は、 8 0 0 0個の仮想ブロックと、 これら各仮想ブロックを構 成する 4つの物理プロックとの関係を示すァ ドレス変換テーブル 2 7 のデータ構造を示す概略図である。
図 8に示されるように、 ア ドレス変換テーブル 2 7は、 仮想ブロッ ク表示領域 # 0〜 # 7 9 9 9からなる 8 0 0 0個の仮想プロック表示 領域がこの順に並んで構成され、 これら各仮想プロック表示領域 # 0 〜# 7 9 9 9は、 それぞれセル # j ― 0〜セル # j 一 3 ( j は、 仮想 ブロックア ドレス) からなる 4個のセル及ぴ 1個のフラグによって構 成される。 例えば、 仮想プロック表示領域 # 0はセル # 0— 0〜セル # 0— 3とフラグとによって構成され、 仮想ブロック表示領域 # 1は セル # 1 _ 0〜セル # 1一 3とフラグとによって構成される。 したが つて、 ア ドレス変換テーブル 2 7は、 3 2 0 0 0個のセルと 8 0 0 0 個のフラグによって構成されることになる。 ここで、 セル # j 一 0を
構成するスロッ ト # 0はフラッシュメモリチップ 2— 0に対応し、 セ ノレ # j 一 1を構成するスロ ッ ト # 1はフラッシュメモリチップ 2— 1 に対応し、 セル # j 一 2を構成するスロッ ト # 2はフラッシュメモリ チップ 2— 2に対応し、 セル # j 一 3を構成するスロッ ト # 3はフラ ッシュメモリチップ 2— 3に対応している。
各仮想プロック表示領域に含まれるセル # j — 0〜# j _ 3には、 それぞれ当該仮想プロックを構成する物理プロックのア ドレス (物理 ブロックア ドレス) が格納される。 ここで、 「物理ブロックア ドレス」 とは、 各物理プロックに害 IJり当てられたプロック番号を 2進数で表し たア ドレスであり、 1 3ビッ トで構成される。 例えば、 図 6及び図 7 に示された仮想ブロックが、 仮想ブロック # 0であるとすれば、 当該 仮想ブロックは、 物理プロック # 1 5 0、 物理プロック # 6 8 1 1、 物理プロック # 8 1 9 1及び物理プロック # 3 04 8より構成される ことから、これら物理プロックの物理プロックァドレスはそれぞれ「0 0 0 0 0 1 0 0 1 0 1 1 0 B」、 「 1 1 0 1 0 1 00 1 1 0 1 1 B」、 「 1 1 1 1 1 1 1 1 1 1 1 1 1 BJ、及び「0 1 0 1 1 1 1 1 0 1 0 0 O B」 となり、 セル # 0 _ 0〜 # 0— 3には、 これら物理プロックァ ドレスがそれぞれ格納されることになる。
また、 各仮想ブロック表示領域に含まれるフラグは、 対応するセル # j — 0〜# j 一 3に格納されている内容が有効であるか無効である かを示している。 具体的には、 フラグが 「 1」 を示していれば対応す るセルに格納されている内容は有効であり、 フラグが 「0」 を示して いれば対応するセルに格納されている内容は無効である。したがって、 フラグが 「0」 を示している仮想ブロック表示領域においては、 これ に含まれるセル # j 一 0〜# j — 3に格納されている内容は無視され る。
このようなデータ構造を有するァ ドレス変換テーブル 2 7は、 S R AMワークエリア 8上に展開される。
上述のように、 各ァドレス変換テーブルは、 3 20 0 0個のセルと 8 0 0 0個のフラグによって構成されており、 各セルには 1 3 ビッ ト
(2バイ ト) の情報を格納する必要があり、 各フラグには 1 ビッ トの 情報を格納する必要があるから、 ア ドレス変換テーブル 27は、 S R AMワークエリァ 8の記憶容量のうち、 約 6 4 kバイ トを占有するこ ととなる。
ア ドレス変換テーブル 2 7の生成は、 次のように行われる。
フラッシュメモリチップ 2— 0〜 2— 3を構成する各物理プロック のうち、 データが格納されている物理ブロックの各先頭ページ (物理 ページ # 0) に含まれる冗長領域 2 6には、 上述のとおり、 E C Cブ ロック 1 1によって生成されたエラーコレクシヨンコードの他、 当該 物理ブロックがどの仮想ブロックに属するかを示す仮想ブロックアド レスが含まれており、 各物理ブロックの各先頭ページに格納されてい る仮想プロックアドレスがマイクロプロセッサ 6による制御のもと、 フラッシュメモリインターフェースブロック 1 0を介して読み出され る。
ここで、 消去済みの空きブロックにおいては、 冗長領域 2 6の仮想 ブロックァドレス格納領域 2 9に格鈉されている仮想ブロックァドレ スは 「ォーノレ 1 ( 1 1 1 1 1 1 1 1 1 1 1 1 1 B)」 となっているはず である。 すなわち、 仮想ブロックは、 上述のとおり、 # 0 (0 0 00 O O O O O O O O O B) 〜# 7 9 9 9 ( 1 1 1 1 1 00 1 1 1 1 1 1 B) までしかなく、 したがって、 これがオール 1 ( 1 1 1 1 1 1 1 1 1 1 1 1 1 B) である場合には、 当該物理ブロックが消去済みの空き プロックであると判断することができる。 一方、 冗長領域 2 6の仮想 ブロックア ドレス格納領域 2 9に格納された仮想プロックァドレスが 「0 0 0 0 0 0 00 00 0 00 B」 〜 「 1 1 1 1 1 0 0 1 1 1 1 1 1 B j である場合には、 当該仮想ブロックア ドレスは有効な仮想ブ口ッ クア ドレスである。
したがって、 マイクロプロセッサ 6は、 各物理ブロックの先頭ぺー ジ (物理ページ # 0) の冗長領域 2 6に含まれる仮想ブロックァドレ スを参照し、 これがオール 1ではなく有効な仮想プロックアドレスを 示していれば、 ア ドレス変換テーブル 2 7を構成するセルのうち、 チ
,ップ番号及び読み出された仮想プロックァドレスによって特定される セルに、 当該物理ブロックの物理ブロックア ドレスを格納する。 例え ば、 フラッシュメモリチップ 2 _ 0に属する物理プロック # 1 2より 読み出された仮想プロック 7·ドレスが 「 1 2 3」 であれば、 セル # 1 2 3— 0に、 物理ブロックア ドレスとして 「 1 2」 が書き込まれ、 対 応するフラグが 「 1」 にされる。
このような処理が、 データが格納されている全ての物理プロックに ついて行われる。 これにより、 ア ドレス変換テーブル 2 7の生成が完 了する。
次に、 S RAMワークエリア 8に格納される消去済みブロックキュ 一 3 0のデータ構造について説明する。
図 9は、 S RAMワークエリァ 8に格納される消去済みプロックキ ユー 3 0のデータ構造を示す概略図である。
図 9に示されるように、 消去済みブロックキュー 3 0は、 キューセ ッ ト # 0〜# 5からなる 6つのキューセッ トによって構成され、 これ らは、 それぞれキュー # k— 0〜キュー # k一 3 (kは、 キューセッ ト番号) からなる 4個のキューによって構成される。 例えば、 キュー セッ ト # 0はキュー # 0— 0〜キュー # 0— 3によって構成され、 キ ユーセッ ト # 1はキュー # 1— 0〜キュー # 1— 3によって構成され る。 したがって、 消去済みブロックキュー 3 0は、 24個のキューに よって構成される。 ここで、 キュー # k一 0はフラッシュメモリチッ プ 2— 0に対応し、 キュー # k— 1はフラッシュメモリチップ 2— 1 に対応し、キュー # k一 2はフラッシュメモリチップ 2— 2に対応し、 キュー # k一 3はフラッシュメモリチップ 2— 3に対応している。 各キューセッ ト' # 0〜# 5を構成するキュー # k一 0〜# k一 3に は、 ユーザ領域 2 5を構成する全てのブラッシュメモリセル 1 6が消 去状態となっている物理プロックの物理プロックァ ドレスが格納され る。 したがって、 例えば、 フラッシュメモリチップ 2— 0に属する消 去済みの物理プロック # 1 5 3を消去済みプロックキュー 3 0に登録 する場合、 当該物理ブロックァ ドレスである 「0 0 000 1 00 1 1
00 1 B」 がキュー # 0— 0〜# 5— 0のいずれかに格納される。 同 様にして、 例えば、 フラッシュメモリチップ 2— 2に属する消去済み のプロック # 6 5 5 2を消去済みプロックキュー 3 0に登録する場合, 当該物理ブロックア ドレスである 「 1 1 0 0 1 1 0 0 1 1 0 0 0 B」 がキュー # 0— 2〜# 5— 2のいずれかに格納される。
このようにして、 各フラッシュメモリチップ 2— 0〜2— 3ごとに 最大 6つの消去済みプロックの物理プロックァドレスが消去済みプロ ックキュー 3 0に登録され、 これによつて最大 6つのキューセッ ト # 0〜# 5が生成される。
消去済みブロックキュー 3 0の生成は、 マイクロプロセッサ 6によ る制御のもと、 上述したァドレス変換テーブル 2 7の生成の際に行わ れ、 データ書き込みに備えて待機している冗長プロ ックの中から、 こ れらキューに登録すべき物理プロックが選ばれる。
次に、 本実施態様にかかるフラッシュメモリシステム 1の動作につ いて、データの読み出し動作、 データの書き込み動作の順に説明する。 まず、 本実施態様にかかるフラッシュメモリシステム 1によるデー タの読み出し動作について、 具体例に用いて説明する。
ここでは、 ホス トコンピュータ 5よ り、 バス 1 4、 コネクタ 4及び バス 1 3を介して、 外部コマンドの一種である外部読み出しコマンド とともにホス トア ドレス、 例えば 「000 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 00 B J がフラッシュメモリ システム 1に供給された場合を例 に説明する。
まず、 ホス トア ドレス及び外部読み出しコマンドがコントローラ 3 に供給されると、これらホス トア ドレス及び外部読み出しコマンドは、 ホス トインターフェースプロック 7が有するタスクファイルレジスタ (図示せず) に一時的に格納される。
次に、 タスクファイルレジスタに格納されたホス トァドレスが正し いア ドレスであるか否か、 すなわち、 かかるホス トア ドレスが、 本来 存在しない物理ァドレスや無効なァドレスを示していないか否かが、 ホス トインターフェースブロック 7によって判定される。
かかる判定の結果、 タスクファイルレジスタ (図示せず) に格納さ れたホストァドレスが有効なァドレスであると判断されれば、 ァドレ ス変換テーブル 2 7を用いて内部ア ドレスに変換される。 一方、 これ が異常なァドレスであると判断されれば、 ホス トインターフェースプ ロック 7が有するエラーレジスタ (図示せず) がセッ トされ、 ホスト コンピュータは、 かかるレジスタの内容を参照することにより、 エラ 一の発生を知ることができる。
次に、 ァドレス変換テーブル 2 7を用いた内部ァドレスへの変換に ついて、 図 1 0を参照しながら説明する。
図 1 0においては、便宜上、ホス トァドレスの上位 1 3ビットを「AJ とし、上位 1 4ビッ ト目〜上位 1 8ビット目からなる 5ビッ トを「 B」 とし、 下位 2ビットを 「C」 と表記している。
まず、 マイクロプロセッサ 6による制御のもと、 20ビッ トのホス トアドレスから上位 1 3ビット (A) が取り出され、 これによつてァ ドレス変換テーブル 27内の仮想ブロック表示領域が特定される。 本 例では、 ホス トア ドレスの上位 1 3 ビッ ト (A) 力 S 「0 00 0 0 1 1
1 1 1 1 1 1 B」 であるから、 選択される仮想プロック表示領域は、 仮想ブロック表示領域 # 2 5 5となる。
次に、 マイクロプロセッサ 6による制御のもと、 S RAMワークェ リア 8に格納されているァ ドレス変換テーブル 2 7から仮想ブロック 表示領域 # 2 5 5が選択され、 仮想プロック表示領域 # 2 5 5を構成 する 4個のセルのうち、 ホス トア ドレスめ下位 2ビット (C) と同じ 枝番号を有するセルの内容が読み出される。 本例では、 ホス トア ドレ スの下位 2ビット (C) 力 S 「0 0 B (0)J であるから、 その内容が読 み出されるセルは、 セル # 2 5 5— 0となる。 本例では、 かかるセル
# 2 5 5— 0の内容が 「 0 00 0 1 0 00 0 1 1 1 1 B J であるもの とする。
次に、 マイクロプロセッサ 6による制御のもと、 ホス トア ドレスの 下位 2 ビッ ト (C)、 読み出されたセルの内容、 及びホス トア ドレスの 上位 1 4ビッ ト 目〜上位 1 8ビッ ト目からなる 5ビッ ト ( B ) がこの
順に結合される。 結合されたア ドレスは、 内部ア ドレスとなる。 この 場合、 ホス トア ドレスの下位 2ビッ ト ( C ) は 「 0 0 B」 であり、 読 み出されたセルの内容は 「00 00 1 00 0 0 1 1 1 1 B」 であり、 ホス トア ドレスの上位 1 4ビッ ト目〜上位 1 8ビッ ト目からなる 5ビ ッ ト (B) は 「 1 1 0 0 0 B」 であることから、 得られる内部ァドレ スは、 「Ο 0 0 Ο Ο 0 1 Ο 0 Ο 0 1 1 1 1 1 1 Ο 00 Β」 となる。
以上より、 ホス トアドレスから内部ァドレスへの変換が完了する。 一方、 ホス トインターフェースブロック 7が有するタスクフアイノレ レジスタ (図示せず) に外部読み出しコマンドが格納されていること に応答して、 マイクロプロセッサ 6による制御のもと、 フラッシュシ ーケンサブロック 1 2が有する各種レジスタ (いずれも図示せず) に 対する設定がなされる。 かかる設定は、 次のように行われる。
まず、 マイクロプロセッサ 6による制御のもと、 内部コマンドの一 種である内部読み出しコマンドがフラッシュシーケンサブロック 1 2 內の所定のレジスタに設定される。 さらに、 マイクロプロセッサ 6に よる制御のもと、 2 0ビッ ト長の内部ァドレスがフラッシュシーケン サブロック 1 2内の所定のレジスタに設定される。
このようにしてフラッシュシーケンサプロック 1 2に含まれる各種 レジスタに対する設定が完了すると、 フラッシュシーケンサブロック 1 2による一連の読み出し動作が実行される。 フラッシュシーケンサ ブロック 1 2による一連の読み出し動作は、 次の通りである。
まず、 フラッシュシーケンサブロック 1 2は、 所定のレジスタ (図 示せず) に格納された内部ア ドレスの上位 2ビッ トに基づき、 フラッ シュメモリチップ 2— 0〜 2— 3のうち、 アクセスすべきページが属 するフラッシュメモリチップに対応するチップ選択信号を活性化する よう、 フラッシュメモリインターフェースプロック 1 0に指示する。 この場合、 内部ァ ドレスの上位 2ビッ トは 「0 0 Β (0)」 であるから、 アクセスすべきページが属するフラッシュメモリチップは、 フラッシ ュメモリチップ 2— 0であり、 チップ選択信号 # 0が活性化される。 これにより、 フラッシュメモリチップ 2— 0は、 データの読み出しが
可能な状態となる。 一方、 チップ選択信号 # 1〜# 3は、 非活性状態 が保たれる。
次に、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された内部ァ ドレスの下位 1 8ビッ ト 「0 000 1 0 00 0 1 1 1 1 1 1 000 B」 を、 所定のレジスタに格納された内部読み出しコマ ンドとともにバス 1 5に供給するよう、 フラッシュメモリインターフ エースプロック 1 0に指示する。 バス 1 5に供給された 1 8ビッ トの 内部ァドレス及び内部読み出しコマンドは、 フラッシュメモリチップ 2— 0〜 2— 3に対し共通に供給されるが、 上述のとおり、 チップ選 択信号 # 0が活性状態となっており、 チップ選択信号 # 1〜# 3は非 活性状態となっているので、 バス 1 5に供給された内部ア ドレス及.び 内部読み出しコマンドは、 フラッシュメモリチップ 2— 0に対しての み有効となる。
これにより、 フラッシュメモリチップ 2 _ 0は、 供給された 1 8ビ ッ トの内部ァ ドレス 「0 0 00 1 0 000 1 1 1 1 1 1 00 0 B」 に 格納されたデータの読み出しを実行する。 ここで、 供給された 1 8ビ ッ トの内部ア ドレス 「0 0 00 1 0 0 00 1 1 1 1 1 1 00 0 B」 の うち、 上位 1 3 ビッ トは物理プロックを特定し、 下位 5 ビッ トは当該 ブロック内の物理ページを特定するために用いられる。 この場合、 上 位 1 3ビッ トは 「0 0 0 0 1 0 00 0 1 1 1 1 BJ であり、 下位 5ビ ッ トは 「 1 1 0 0 0 B」 であるから、 特定される物理プロックは物理 ブロック # 2 7 1 となり、 特定される物理ページは物理ページ # 24 とな 。 すなわち、 フラッシュメモリチップ 2— 0は、 物理プロック # 2 7 1の物理ページ # 2 4に格納されたデータの読み出しを実行す る。 かかる読み出し動作においては、 ユーザ領域 2 5に格納されたュ 一ザデータのみならず、 冗長領域 2 6に格納された付加情報も読み出 される。
尚、 図 7において説明したように、 本実施態様においては、 4つの 物理プロックが仮想的に結合されて一つの仮想プロックが構成されて いるので、 フラッシュメモリチップ 2— 0に属するブロック # 2 7 1
の物理ページ # 2 4は、 仮想ページ # 9 6に対応する。
このようにしてフラッシュメモリチップ 2— 0から読み出されたュ 一ザデータ及び付加情報は、 バス 1 5を介してフラッシュメモリイン ターフェースブロック 1 0に供給される。 フラッシュメモリインター フェースブロック 1 0がユーザデータ及び付加情報を受け取ると、 フ ラッシュシーケンサプロック 1 2による制御のもと、 付加情報に含ま れるエラーコレクショ ンコードが抽出され、 ユーザデータ及び抽出さ れたエラーコレクションコードが E C Cブロック 1 1に供給される。 ユーザデータ及ぴェラーコレクショ ンコードが E C Cブロック 1 1に 供給されると、 E C Cブロック 1 1は、 エラーコレクションコードに 基づき、 ユーザデータに誤りがあるか否かを判断し、 誤りがないと判 断すれば、 供給されたユーザデータをそのままバッファ 9に格納し、 誤りがあると判断されれば、 これをエラーコレクションコードに基づ いてこれを訂正し、 訂正後のユーザデータをバッファ 9に格納する。 このようにしてバッファ 9に誤りのない ーザデータが格納されると、 フラッシュシーケンサプロック 1 2による一連の読み出し動作が完了 する。
そして、 バッファ 9に格納されたユーザデータは、 マイクロプロセ ッサ 6による制御のもと、 ホス トインターフェースブロック 7より、 バス 1 3、 コネクタ 4及びバス 1 4を介してホス トコンピュータ 5に 供給される。
以上により、 一連の読み出し動作が完了する。
次に、 本実施態様にかかるフラッシュメモリシステム 1によるデー タの書き込み動作について説明する。
フラッシュメモリ システム 1によるデータの書き込み動作について は、 新規データの書き込み動作、 すなわち現在データが割り当てられ ていないホス トアドレスに対して新しくデータを割り当てる動作と、 データの上書き動作、 すなわち、 既にデータが割り当てられているホ ス トア ドレスに対してこれと異なるデータを割り当てる動作とに分け て説明する。
まず、 フラッシュメモリ システム 1による新規データの書き込み動 作について、 具体例を用いて説明する。
ここでは、 ホス トコンピュータ 5より、 バス 1 4、 コネクタ 4及ぴ バス 1 3を介して、 外部コマンドの一種である外部書き込みコマンド と、 現在データが割り当てられていない連続した複数のホス トア ドレ ス、 例えば 「0 00 1 0 1 0 1 0 1 0 1 0 1 0 00 1 0 0 B」 〜 「0 00 1 0 1 0 1 0 1 0 1 0 1 0 00 1 1 1 B」 と、 当該各ァドレスに 書き込むべきデータとがフラッシュメモリシステム 1に供給された場 合を例に説明する。 ここでは、 これら連続するホス トア ドレスを、 ホ ス トア ドレス # 0〜# 3 と呼ぶ。
まず、 ホス トア ドレス # 0〜# 3及び外部書き込みコマンドがコン トローラ 3に供給されると、 これらホス トアドレス # 0〜# 3及び外 部書き込みコマンドは、 ホス トインターフェースプロック 7が有する タスクファイルレジスタ (図示せず) に一時的に格納される。 さらに、 ホス トア ドレス # 0〜# 3にそれぞれ対応する書き込みデータがコン トローラ 3に供給されると、マイクロプロセッサ 6による制御のもと、 これらデータが E C Cプロック 1 1に送出される。 これらデータの供 給を受けた E C Cブロック 1 1は、 これらデータを解析してエラーコ レクシヨンコードを生成し、 これを一時的に保持する。
次に、 タスクファイルレジスタに格納されたホス トア ドレス # 0〜 # 3が正しいア ドレスであるか否か、 すなわち、 かかるホス トア ドレ ス # 0〜# 3が、 本来存在しない物理ァドレスや無効なァドレスを示 していないか否かが、 ホス トインターフェースブロック 7によって判 定される。
かかる判定の結果、 タスクファイルレジスタに格納されたホス トア ドレス # 0〜# 3が有効なァ ドレスであると判断されれば、 ァ ドレス 変換テーブル 2 7を用いて内部ア ドレスに変換される。 一方、 これが 異常なァドレスであると判断されれば、 ホス トインターフェースブロ ック 7が有するエラーレジスタ (図示せず) がセッ トされ、 ホス トコ ンピュータは、 かかるレジスタの内容を参照することにより、 エラー
の発生を知ることができる。
当該ホス トア ドレス # 0〜# 3が有効なァドレスであると判断され ると、ァドレス変換テーブル 2 7を用いて内部ァドレスに変換される。 図 1 1は、 ァドレス変換テーブル 2 7を用いた内部ア ドレスへの変 換方法を説明するための図である。
図 1 1に示されるように、 本例では、 ホス トア ドレス # 0〜# 3の 上位 1 3ビッ ト ( A) 力 S 「 0 0 0 1 0 1 0 1 0 1 0 1 0 B」 であるか ら、 選択される仮想ブロック表示領域は、 仮想ブロック表示領域 # 6 8 2となる。
次に、 マイクロプロセッサ 6による制御のもと、 S RAMワークェ リア 8に格納されているァ ドレス変換テーブル 2 7から、 仮想プロッ ク表示領域 # 6 8 2の内容が読み出される。 ここでは、 新規データの 書き込み動作、 すなわち現在データが割り当てられていないホス トァ ドレスに対して新しくデータを割り当てる動作であるので、 当該仮想 ブロック表示領域 # 6 8 2のフラグは Γ 0」 であるはずである。
対応するフラグが 「0」 であることに応答して、 マイクロプロセッ サ 6による制御のもと、 消去済みブロックキュー 3 0を構成するキュ ーセッ ト # 0 ~ # 5のいずれか、 例えば、 キューセッ ト # 0が選択さ れ、 かかるキューセッ ト # 0を構成する各キュー # 0— 0~# 0 _ 3 に格納された内容が読み出される。 上述のとおり、 各キューに格納さ れているのは、 消去済みブロックの物理ブロックア ドレスである。 本 例では、 これらキュー # 0— 0〜# 0— 3の内容がそれぞれ 「0 00 0 0 0 0 0 0 1 1 1 1 BJ, 「 1 1 1 00 0 0 1 1 0 0 1 1 B」、 「0 1 0 1 1 1 1 1 1 0 0 0 0 B」、 「 1 0 00 1 000 00 0 00 BJ であ るものとする。
キュー # 0— 0〜# 0— 3に格納された内容が読み出されると、 こ れがァドレス変換テーブル 2 7の仮想プロック表示領域 # 6 8 2に格 納され、 フラグが 「 1」 にセッ トされるとともに、 マイクロプロセッ サ 6による制御のもと、 これを用いて内部ァドレスが生成される。 図 1 1に示されるように、 内部ア ドレスの生成方法は、 データの読
み出し動作の場合と同様であり、 マイクロプロセッサ 6による制御の もと、 ホス トア ドレス # 0〜# 3それぞれの下位 2ビッ ト (C)、 読み 出されたキューの内容、 及びホス トア ドレス # 0〜# 3の上位 1 4ビ ッ ト目〜上位 1 8ビッ ト目からなる 5 ビッ ト (B) がこの順に結合さ れる。 この場合、 ホス トア ドレス # 0〜# 3の下位 2ビッ ト (C) は それぞれ 「00 B」 〜 「 1 1 B」 であり、 読み出されたセルの内容は それぞれ 「00 00 000 00 1 1 1 1 B」、 「 1 1 1 0 00 0 1 1 0 0 1 1 B」、 「0 1 0 1 1 1 1 1 1 0 0 0 0 B」、 「 1 00 0 1 0 0 0 0 0 00 0 B」 であり、 ホス トア ドレス # 0〜 # 3の上位 1 4ビッ ト 目 〜上位 1 8 ビッ ト目からなる 5ビッ ト ( B ) はいずれも 「 1 0 0 0 1 B J であることから、得られる 4つの内部ァ ドレス # 0〜# 3の値は、 図 1 1に示される値となる。
これにより、 ホス トア ドレス # 0〜# 3から内部ア ドレス # 0〜# 3への変換が完了する。
一方、 ホス トインターフェースプロ ック 7が有するタスクフアイノレ レジスタ (図示せず) に外部書き込みコマンドが格納されていること に応答して、 マイクロプロセッサ 6による制御のもと、 フラッシュシ ーケンサブロック 1 2が有する各種レジスタ (図示せず) に対する設 定がなされる。 かかる設定は、 次のように行われる。
まず、 マイクロプロセッサ 6による制御のもと、 内部コマンドの一 種であるデータ転送コマンド及び内部書き込みコマンドがフラッシュ シーケンサブロック 1 2内の所定のレジスタに設定される。 さらに、 マイクロプロセッサ 6による制御のもと、 上記生成された 4つの内部 ア ドレス # 0〜# 3がフラッシュシーケンサブロック 1 2内の所定の レジスタに設定される。
このようにしてフラッシュシーケンサプロック 1 2に含まれる各種 レジスタに対する設定が完了すると、 フラッシュシーケンサプロック 1 2による一連の書き込み動作が実行される。
図 1 2は、 フラッシュシーケンサブロック 1 2による一連の書き込 み動作タイミング概略的に示すタイ ミング図である。
まず、 フラッシュシーケンサプロック 1 2は、 所定のレジスタ (図 示せず) に格納された内部ア ドレスのうち、 上位 2ビッ トが 「O O B (0)」 である内部ア ドレス # 0を選択し、 当該内部ア ドレス # 0の上 位 2ビッ トに基づいて、 フラッシュメモリチップ 2— 0〜2— 3のう ち、 アクセスすべき物理ページが属するフラッシュメモリチップに対 応するチップ選択信号を活性化するよう、 フラッシュメモリインター フェースブロック 1 0に指示する。 この場合、 内部ア ドレス # 0の上 位 2ビッ トは 「 00 B ( 0 )」 であるから、 アクセスすべき物理ぺージ が属するフラッシュメモリチップは、 フラッシュメモリチップ 2—◦ であり、 チップ選択信号 # 0が活性化される。 これにより、 フラッシ ュメモリチップ 2— 0は、 データの書き込みが可能な状態となる。 一 方、 チップ選択信号 # 1〜# 3は、 非活性状態が保たれる。
次に、 フラッシュシーケンサブロック 1 2は、 内部ア ドレス # 0の 下位 1 8ビッ ト 「0 000 00 00 0 1 1 1 1 1 0 00 1 B」 を、 所 定のレジスタに格納されたデータ転送コマンドとともにバス 1 5に供 給するよう、 フラッシュメモリインターフェースプロック 1 0に指示 する。 バス 1 5に供給された内部ァドレス # 0の下位 1 8ビッ ト及び データ転送コマンドは、 フラッシュメモリ チップ 2 _ 0〜2— 3に対 し共通に供給されるが、 上述のとおり、 チップ選択信号 # 0は活性状 態となつており、 チップ選択信号 # 1〜# 3は非活性状態となってい るので、 バス 1 5に供給された内部ァ ドレス # 0の下位 1 8 ビッ ト及 びデータ転送コマンドは、 フラッシュメモリチップ 2 _ 0に対しての み有効となる (転送先指定)。
これにより、 フラッシュメモリチップ 2— 0は、 供給された内部ァ ドレス # 0の下位 1 8ビッ ト 「00 0 0 0 0 00 0 1 1 1 1 1 0 00 1 B」 に対応するページに書き込まれるべきデータの受け付けが許可 された状態となる。
次に、 バッファ 9に格納されている書き込みデータのうち、 ホス ト ア ドレス # 0に対応するデータ及び対応するエラーコレクシヨ ンコー ド等の冗長領域 2 6に格納すべき付加情報が、 フラッシュシーケンサ'
ブロック 1 2によ り、 フラッシュメモリインターフェースブロック 1 0を介して、 バス 1 5に供給される。 バス 1 5に供給されたデータ及 びェラーコレクションコード等の付加情報も、 やはりフラッシュメモ リチップ 2— 0〜2— 3に対し共通に供給されるが、 上述のとおり、 チップ選択信号 # 0が活性状態となっているため、 フラッシュメモリ チップ 2 — 0に対してのみ有効となる (データ転送)。
このよ うにして、 書き込みデータの受け付けが許可された状態にあ るフラッシュメモリチップ 2— 0に対して書き込みデータ及びエラー コレクショ ンコード等の付加情報が転送されると、 かかる書き込みデ ータ及びエラーコレクショ ンコードは、 フラッシュメモリチップ 2— 0内に備えられた内部レジスタ (図示せず) に一時的に格納される。 次に、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された内部書き込みコマンドを、 フラッシュメモリチップ 2— 0に 対して発行する (書き込み命令)。
これに応答して、 フラッシュメモリチップ 2 _ 0は、 内部レジスタ に格納されているデータ及ぴエラーコレクシヨ ンコード等の付加情報 を、 転送先指定処理によって指定されたァドレスに対応する物理ぺー ジに書き込む (フラッシュプロダラミング)。 すなわち、 内部レジスタ に格納されているデータ及びエラーコレクシヨ ンコード等の付加情報 カ 、 内部ァ ドレス # 0の下位 1 8 ビッ ト 「 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 B」 により特定される物理ページ、 つまり、 フラッシュ メモリチップ 2— 0の物理ブロック # 1 5の物理ページ # 1 7に書き 込まれる。 フラッシュメモリチップ 2— 0の物理ブロック # 1 5の物 理ページ # 1 7は、 仮想ページ # 6 8に対応する。
フラッシュメモリチップ 2— 0がフラッシュプログラミングを実行 している間、 フラッシュシーケンサブロック 1 2は、 所定のレジスタ に格納された内部ァドレスのうち、 上位 2ビッ トが 「0 1 B ( 0 )」 で ある内部ァ ドレス # 1を選択し、 当該内部ァ ドレス # 1 の上位 2ビッ トに基づいて、 チップ選択信号 # 1を活性化させる。 これにより、 フ ラッシュメモリチップ 2— 1は、 データの書き込みが可能な状態とな
る。.
次に、 フラッシュシーケンサブロック 1 2は、 内部アドレス # 1の 下像 1 8ビッ ト 「 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 B」 を、 所 定のレジスタ (図示せず) に格納されたデータ転送コマンドとともに バス 1 5に供給するよう、 フラッシュメモリインターフェースブロッ ク 1 0に指示する。 この場合、 上述のとおり、 チップ選択信号 # 1が 活性状態となっているので、 パス 1 5に供給された内部ァドレス # 1 の下位 1 8ビッ ト及びデータ転送コマンドは、 フラッシュメモリチッ プ 2— 1に対してのみ有効となる (転送先指定)。
その後、 上述のとおり、 フラッシュメモリチップ 2— 1に対してデ ータ転送、 及ぴ書き込み命令の発行が行われ、 ホス トア ドレス # 1に 対応するデータ及ぴ対応するエラーコレクシヨ ンコード等の付加情報 力 s、 内部ァ ドレス # 1により特定される物理ページに書き込まれる。 この場合、 内部ァドレス # 1の下位 1 8ビッ トは 「 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 00 1 B」 であるから、 ホス トア ドレス # 1に対応す るデータ及び対応するエラーコレクシヨンコード等の付加情報は、 フ ラッシュメモリチップ 2— 1の物理ブロック # 7 2 1 9の物理ページ # 1 7に書き込まれる。 フラッシュメモリチップ 2— 1の物理プロッ ク # 7 2 1 9の物理ページ # 1 7は、 仮想ページ # 6 9に対応する。 このよ うなデータ書き込み動作が、 内部ア ドレス # 2及び # 3に対 しても実行され、 これにより、 ホス トア ドレス # 2及び # 3に対応す るデータ及び対応するエラーコレクシヨ ンコード等の付加情報も、 そ れぞれ内部ァドレス # 2及び # 3により特定される物理ページへ書き 込まれる。 この場合、 内部ァドレス # 2の下位 1 8 ビッ トは 「0 1 0 1 1 1 1 1 1 0 00 0 1 0 0 0 1 B」 であるから、 ホス トア ドレス # 2に対応するデータ及び対応するエラーコレクションコード等の付加 情報は、 フラッシュメモリチップ 2— 2の物理ブロック # 3 0 5 6の 物理ページ # 1 7に書き込まれる。 同様に、 内部ア ドレス # 3の下位 1 8ビッ トは 「 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 B」 であるか ら、 ホス トア ドレス # 3に対応するデータ及び対応するエラーコレク
シヨンコード等の付加情報は、 フラッシュメモリチップ 2— 3の物理 プロック # 4 3 5 2の物理ページ # 1 7に書き込まれる。
ここで、 フラッシュメモリチップ 2— 2の物理プロック # 3 0 5 6 の物理ページ # 1 7は、 仮想ページ # 7 0に対応し、 フラッシュメモ リチップ 2— 3の物理ブロック # 4 3 5 2の物理ページ # 1 7は、 仮 想ページ # 7 1に対応する。
このようにして、 フラッシュシーケンサプロック 1 2による一連の 書き込み動作が完了する。
かかる一連の書き込み動作においては、 連続するホス トア ドレス # 0 〜 # 3に対応するデータが、 それぞれ異なるフラッシュメモリチッ プ 2— 0 〜 2— 3に属する異なる物理プロック内に書き込まれた点が 重要である。 これら 4つの物理プロックは、 上述のとおり一つの仮想 ブロック # 6 8 2を構成し、 連続するホス トア ドレス # 0 〜 # 3に対 応するデータは、 当該仮想プロック # 6 8 2内の連続する仮想ページ # 6 8 〜 # 7 1に書き込まれたことになる。
また、 マイクロプロセッサ 6は、 上述のデータ書き込みによ て、 消去済みプロックキュー 3 0のキューセッ ト # 0に格納された物理ブ ロックァドレスが、 消去済みプロックの物理ブロックァドレスではな くなったことに応答して、 新たな消去済みプロックを冗長プロックの 中から選択し、 選択された消去済みブロックの物理ブロックア ドレス を新たにキュー # 0— 0 〜 # 0— 3に格納する。
以上により、 一連のデータ書き込み動作が完了する。
次に、 本実施態様にかかるフラッシュメモリシステム 1によるデー タの上書き動作について、 具体例を用いて説明する。
以下に詳述するが、 フラッシュメモリシステム 1によるデータの上 書き動作においては、 上書き対象の物理ページが含まれる物理ブロッ ク内のデータを、 他の物理ブロックに移動させる必要がある。 その必 要性は、 次のとおりである。
すなわち、 フラッシュメモリチップ 2— 0 〜 2— 3を構成するブラ ッシュメモリセル 1 6は、 これをメモリセル単位にて消去状態から書
込状態へ変化させることはできる一方、 これを書込状態から消去状態 へ変化させることは、 メモリセル単位で行うことができず、 物理プロ ック単位でしか行うことができない。 このため、 ある物理ページにデ ータを書き込む際には、 その物理ページのユーザ領域 2 5及び冗長領 域 2 6を構成する全てのフラッシュメモリセル 1 6が消去状態となつ ている必要があり、 既に何らかのデータが書き込まれている物理ぺー ジ、 すなわち、 その物理ページのユーザ領域 2 5を構成するフラ ッシ ュメモリセル 1 6がーつでも書込状態となっている物理ページに、 こ れと異なるデータを直接上書きすることはできない。 したがって、 既 にデータの書き込まれた物理ページに対し、 これと異なる新しいデー タを書き込むためには、 ー且、 この物理ページが属する物理ブロック を構成するフラッシュメモリセル 1 6を全て消去状態とし、 その後に 新しいデータを書き込むという処理が必要となる。
したがって、 ある物理ページに格納された古いデータに新しいデー タを上書きしょうとする場合、 この物理ページが属する物理ブロック に含まれる他の物理ページに格納されたデータが消失するのを防ぐた めには、 当該他の物理ページに格納されたデータを、 他の物理ブロッ クに移動させるという処理が必要となるのである。
本明細書においては、 このような上書き処理に伴うデータの移動を 「ブロック間転送」 と呼ぴ、 転送元の物理ブロックの物理ブロックァ ドレスを「転送元プロックァドレス」、転送先の物理プロックの物理ブ ロックア ドレスを 「転送先ブロックア ドレス」 と呼ぶ。
さて、 以下の説明においては、 ホス トコンピュータ 5より、 バス 1 4、 コネクタ 4及びバス 1 3を介して、 外部書き込みコマンドと、 既 にデータが割り当てられている連続した複数のホストア ドレス # 0~ # 3、例えば「 1 1 00 0 Ο 0 Ο 1 Ο Ο 1 0 0 1 1 1 Ο 00 Β」 〜 「 1 1 0 0 0 0 00 1 0 0 1 0 0 1 1 1 0 1 1 B」 と、 当該各ァドレスに 書き込むべきデータとがフラッシュメモリ システム 1に供給された場 合を例に説明する。
まず、 ホス トア ドレス # 0〜 # 3及び外部書き込みコマンドがコン
トローラ 3に供給されると、 これらホス トア ドレス # 0〜# 3及び外 部書き込みコマンドは、 ホス トインターフェースプロック 7が有する タスクファイルレジスタ (図示せず) に一時的に格納される。 さらに、 ホス トア ドレス # 0〜# 3にそれぞれ対応する書き込みデータがコン トローラ 3に供給されると、マイクロプロセッサ 6による制御のもと、 これらデータが EC Cブロック 1 1に送出される。 これらデータの供 給を受けた E C Cプロック 1 1は、 これらデータを解析してエラーコ レクシヨ ンコー ドを生成し、 これを一時的に保持する。
当該ホストァドレスが有効なァドレスであると判断されると、 アド レス変換テーブル 2 7を用いて転送元プロックァドレス及び転送先ブ ロ ックァ ドレスが生成される。
図 1 3は、 転送元プロックァドレス及ぴ転送先プロックア ドレスの 生成方法を説明するための図である。
図 1 3に示されるように、 本例では、 ホス トア ドレス # 0〜# 3の 上位 1 3ビッ ト (A) が f l l O O O O O O l O O l O Bj であるか ら、 了 ドレス変換テーブル 2 7内において選択される仮想プロック表 示領域は仮想ブロック表示領域 # 6 1 6 2となる。
したがって、 マイクロプロセッサ 6による制御のもと、 S RAMヮ ークエリア 8に格納されているァ ドレス変換テーブル 2 7から仮想ブ ロック # 6 1 6 2が選択され、 仮想ブロック # 6 1 6 2の内容が読み 出される。 ここでは、 旧データの上書き動作、 すなわちすでにデータ が割り当てられているホス トアドレスに対してさらにデータを割り当 てる動作であるので、 当該仮想プロック表示領域 # 6 1 6 2内のフラ グは 「 1」 を示しているはずである。 このことは、 当該仮想ブロック 表示領域 # 6 1 6 2を構成する 4個のセル # 6 1 6 2— 0〜 # 6 1 6 2 - 3の內容が有効であることを意味する。 ここでは、 セル # 6 1 6 2— 0〜# 6 1 6 2 - 3から読み出された内容が 「 1 1 0000 0 0 0 0 0 0 1 BJ、 「0 1 1 0 00 0 0 000 1 0 BJ、 「0 00 1 1 0 0 0 0 0 1 0 0 BJ、 「0 1 1 1 1 00 0 0 1 0 0 0 B」 であるものとす る。
セル # 6 1 6 2— 0〜 # 6 1 6 2— 3に格納された内容が読み出さ れると、 マイクロプロセッサ 6による制御のもと、 これらを用いて転 送元プロックァドレスが生成される。
転送元ブロックア ドレスは、 マイクロプロセッサ 6による制御のも と、 ホス トア ドレス # 0〜# 3それぞれの下位 2 ビッ ト (C) 及ぴ読 み出されたセルの内容がこの順に結合されて生成される。 この場合、 ホストア ドレス # 0〜# 3の下位 2 ビッ ト (C) はそれぞれ「0 0 B」 〜 「 1 1 B」 であり、 読み出されたセルの内容は 「 1 1 0 0 0 0 0 0 0 〇 0 0 1 Bj、 「0 1 1 0 0 0 0 0 0 0 0 1 0 BJ、 「 0 0 0 1 1 0 0 0 0 0 1 0 0 B」、 「 0 1 1 1 1 0 0 0 0 1 0 0 0 B」であること力 ら、 得られる 4つの転送元プロックア ドレス # 0〜# 3のィ直は、 図 1 3に 示される値となる。
これにより、転送元プロックア ドレス # 0〜# 3の生成が完了する。 次に、 マイクロプロセッサ 6による制御のもと、 消去済みブロック キュー 3 0を構成するキューセッ ト # 0〜# 5のいずれか、 例えば、 キューセッ ト # 1が選択され、 かかるキューセット # 1を構成する各 キュー井 1— 0〜# 1一 3に格納された内容が読み出される。 上述の とおり、 各キューに格納されているのは、 消去済みブロックの物理ブ ロックア ドレスである。 本例では、 これらキュー # 1一 0〜# 1一 3 の内容がそれぞれ 「ひ 0 1 0 0 0 0 0 1 0 0 0 0 B」、 「 1 0 0 0 0 0 0 1 0 0 0 0 0 B」、 「0 1 1 1 1 0 1 0 0 0 0 0 0 B」、 「0 0 1 0 1 1 0 0 0 0 0 0 0 B」 であるものとする。
キュー # 1一 0〜# 1一 3に格納された内容が読み出されると、 マ イク口プロセッサ 6による制御のもと、. これらがァドレス変換テープ ノレ 2 7の仮想プロック表示領域 # 6 1 6 2を構成するセル # 6 1 6 2 一 0〜# 6 1 6 2— 3に上書きされるとともに、 これらを用いて転送 先ブロックァ ドレスが生成される。
転送先プロックア ドレスは、 マイクロプロセッサ 6による制御のも と、 ホス トア ドレス # 0〜 # 3それぞれの下位 2ビッ ト (C) 及び読 み出されたキューの内容がこの順に結合されて生成される。この場合、
ホス トア ドレス # 0〜# 3の下位 2ビッ ト (C) はそれぞれ 「 0 0 B」 〜 「 1 1 B」 であり、 読み出されたセルの内容は 「0 0 1 0 0 0 0 0 1 00 0 0 BJ、 「 1 0 0 0 00 0 1 0 00 0 0 BJ、 「0 1 1 1 1 0 1 0 0 0 0 0 0 B」、 「00 1 0 1 l O O O O O O O Bjであること力 ら、 得られる 4つの転送先プロックア ドレス # 0〜# 3の値は、 図 1 3に 示される値となる。
これにより、転送先プロックア ドレス # 0 ~# 3の生成が完了する。 一方、 ホス トインターフェースブロ ック 7が有するタスクファイル レジスタ (図示せず) に外部書き込みコマンドが格納されていること に応答して、 マイクロプロセッサ 6による制御のもと、 フラッシュシ ーケンサブロック 1 2が有する各種レジスタ (図示せず) に対する設 定がなされる。 かかる設定は、 次のように行われる。
まず、 マイクロプロセッサ 6による制御のもと、 データ転送コマン ド、 内部書き込みコマンド及び内部読み出しコマンドがフラッシュシ ーケンサブロック 1 2内の所定のレジスタに設定される。 さらに、 マ イク口プロセッサ 6による制御のもと、 上記生成された転送元プロッ クア ドレス # 0〜# 3及び転送先ブロックア ドレス # 0〜 # 3がフラ ッシュシーケンサブロック 1 2内の所定のレジスタに設定される。 このようにしてフラッシュシーケンサプロック 1 2に含まれる各種 レジスタ (図示せず) に対する設定が完了すると、 フラッシュシーケ ンサブ口ック 1 2による一連の書き込み動作が実行される。 ブラッシ ュシーケンサブロック 1 2による一連の書き込み動作は、 次の通りで ある。
まず、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された転送元ブロックア ドレス # 0に 「0 0 00 0 B (0)」 を付加 して 2 0ビッ トの転送元内部ア ドレスを生成する。 この場合、 転送元 内部ア ドレスは、 「00 1 1 00 0 0 00 0 0 0 0 1 00 000 BJと なる。 次に、 フラッシュシーケンサブロック 1 2は、 生成された転送 元内部ァドレスの上位 2ビッ トに基づき、 フラッシュメモリチップ 2 一 0〜 2— 3のうち、 アクセスすべきページが属するフラッシュメモ
リチップに対応するチップ選択信号を活性化するよう、 フラッシュメ モリインターフェースプロック 1 0に指示する。 この場合、 生成され た転送元内部ァ ドレスの上位 2ビッ トは 「0 0 B (0)」 であるから、 アクセスすべきページが属するフラッシュメモリチップは、 フラッシ ュメモリチップ 2— 0であり、 チップ選択信号 # 0が活性化される。 これにより、 フラッシュメモリチップ 2— 0は、 データの読み出しが 可能な状態となる。 一方、 チップ選択信号 # 1〜# 3は、 非活性状態 が保たれる。
次に、 フラッシュシーケンサブロック 1 2は、 転送元内部アドレス の下位 1 8ビッ ト 「 1 1 00000 000 0 0 1 0 0 0 00 B」 を、 所定のレジスタに格納された内部読み出しコマンドとともにバス 1 5 に供給するよ う、 フラッシュメモリインターフェースプロック 1 0に 指示する。
これにより、 フラッシュメモリチップ 2— 0は、 供給された転送元 内部ア ドレスの下位 1 8ビッ ト 「 1 1 00 0 0 00 00 00 1 0 00 0 0 B」 に格納されたデータの読み出しを実行する。 すなわち、 フラ ッシュメモリチップ 2— 0は、 物理ブロック # 6 1 4 5の物理ページ # 0に格納されたデータの読み出しを実行する。
尚、 図 7において説明したように、 本実施態様においては、 4つの 物理プロックが仮想的に結合されて一つの仮想プロックが構成されて いるので、 フラッシュメモリチップ 2— 0に属する物理プロック # 6 1 4 5の物理ページ # 0は、 仮想プロック上においては仮想ページ # 0に対応する。
このようにしてフラッシュメモリチップ 2— 0から読み出されたデ ータは、 バス 1 5を介してフラッシュメモリインターフェースブロッ ク 1 0に供給される。 フラッシュメモリインターフェースブロック 1 0がユーザデータを受け取ると、 これがバッファ 9に一時的に格納さ れるとともに、 E C Cブロック 1 1に送出され、 新たにエラーコレク シヨ ンコードの生成が行われる。 E C Cブロック 1 1にて新たに生成 されたエラーコ レクショ ンコードは、 E C Cブロック 1 1内に一時的
に保持される。
このような読み出し動作が、 転送元プロックア ドレス # 1〜# 3に 「 0 ◦ 00 0 B ( 0 )J が付加されることによって、 フラッシュメモリ チップ 2— 1〜2— 3に対しても実行され、 その結果、 フラッシュメ モリチップ 2— 1に属する物理プロック # 3 0 74の物理ページ # 0 に格納されたデータ、 フラ ッシュメモリチップ 2— 2に属する物理ブ ロック # 7 7 2の物理ページ # 0に格納されたデータ、 及びフラッシ ュメモリチップ 2— 3に属する物理ブロック # 3 8 4 8の物理ページ # 0に格納されたデータも読み出されることになる。 尚、 仮想プロッ ク上においては、 物理ブロック # 3 0 74の物理ページ # 0は仮想ぺ 一ジ# 1に対応し、 物理プロック # 7 7 2の物理ページ # 0は仮想ぺ ージ # 2に対応し、 物理プロック # 3 8 4 8の物理ページ # 0は仮想 ページ # 3に対応する。 すなわち、 以上によって、 仮想プロック # 6 1 6 2の仮想ページ # 0〜 # 3に格納されているデータが読み出され たことになる。
次に、 バッファ 9に一時的に格納されたデータの書き込み動作が行 われる。
まず、 フラッシュシーケンサプロック 1 2は、 所定のレジスタに格 納された転送先プロックア ドレス # 0に 「0 000 0 B (0)」 を付加 して 2 0ビッ トの転送先内部ア ドレスを生成する。 この場合、 転送先 内部ア ドレスは、 「0 0 0 0 1 0 0000 1 0 0 00 0 0 000 BJと なる。
次に、 フラッシュシーケンサブロック 1 2は、 生成された転送先内 部ア ドレスの上位 2ビッ トに基づき、 フラッシュメモリチップ 2— 0 〜2— 3のうち、 アクセスすべき物理ページが属するフラッシュメモ リチップに対応するチップ選択信号を活性化するよう、 フラッシュメ モリインターフェースブロック 1 0に指示する。 この場合、 転送先内 部ァドレスの上位 2ビッ トは 「00 B (0)」 であるから、 アクセスす べき物理ページが属するフラ ッシュメモリチップは、 フラッシュメモ リチップ 2— 0であり、 チップ選択信号 # 0が活性化される。 これに
より、 フラッシュメモリチップ 2— 0は、 データの書き込みが可能な 状態となる。
次に、 フラッシュシーケンサブロック 1 2は、 転送先内部ァドレス の下位 1 8ビッ トを、 所定のレジスタに格納されたデータ転送コマン ドとともにバス 1 5に供給するよう、 フラッシュメモリインターフエ 一スブロック 1 0に指示する。 バス 1 5に供給された書き込みァ ドレ ス及びデータ転送コマンドは、 フラッシュメモリチップ 2— 0〜 2— 3に対し共通に供給されるが、 上述のとおり、 チップ選択信号 # 0が 活性状態となっており、 チップ選択信号 # 1〜# 3は非活性状態とな つているので、 バス 1 5に供給された転送先内部ア ドレス及びデータ 転送コマンドは、 フラッシュメモリチップ 2— 0に対してのみ有効と なる (転送先指定)。
次に、 バッファ 9に格納されているデータのうち、 フラッシュメモ リチップ 2— 0から読み出したデータ及び対応するエラーコレクショ ンコード等の冗長領域 2 6に格納すべき付加情報が、 フラッシュシー ケンサブロック 1 2により、 フラッシュメモリインターフェースブロ ック 1 0を介して、 バス 1 5に供給される。 バス 1 5に供給されたデ ータ及びエラーコレクシヨンコード等の付加情報も、 やはりフラッシ ュメモリチップ 2— 0〜2— 3に対し共通に供給されるが、 上述のと おり、 チップ選択信号 # 0が活性状態となっているため、 フラッシュ メモリチップ 2— 0に対してのみ有効となる (データ転送)。 フラッシ ュメモリチップ 2— 0に転送されたデータ及びエラーコレクシヨ ンコ 一ド等の付加情報は、 フラッシュメモリチップ 2— 0内に備えられた 内部レジスタ (図示せず) に一時的に格納される。
次に、 フラッシュシーケンサプロック 1 2は、 所定のレジスタに格 納された内部書き込みコマンドを、 フラッシュメモリチップ 2— 0に 対して発行する (書き込み命令)。
これに応答して、 フラッシュメモリチップ 2— 0は、 内部レジスタ に格納されているデータ及びエラーコレクシヨンコード等の付加情報 を、 転送先指定処理によって指定されたア ドレスに書き込む (フラッ
シュプログラミング)。すなわち、 レジスタに格納されているデータ及 びエラーコレクションコード等の付加情報が、 転送先内部ァ ドレスの 下位 1 8 ビッ ト 「0 0 1 0 00 0 0 1 0 0 0 00 0 00 0 B」 により 特定される物理ページ、 つまり、 フラッシュメモリチップ 2 _ 0の物 理ブロック # 1 04 0の物理ページ # 0に書き込まれる。 フラッシュ メモリチップ 2— 0の物理プロック # 1 0 4 0の物理ページ # 0は、 仮想ページ # 0に対応する。
フラッシュメモリチップ 2— 0がフラッシュプロダラミングを実行 している間、 フラッシュシーケンサプロック 1 2は、 所定のレジスタ に格納された転送先プロックア ドレス # 1に 「O O O O O B (0)」 を 付加して 2 0ビッ トの新たな転送先内部ァドレスを生成する。 この場 合、転送先内部ァドレスは、 「0 1 1 00 0 0 0 0 1 00 000 00 0 00 Β」 となる。 次いで、 フラッシュシーケンサプロック 1 2は、 新 たな転送先内部ァドレスの上位 2ビッ トに基づいて、 チップ選択信号 # 1を活性化させる。 これにより、 フラッシュメモリチップ 2— 1は、 データの書き込みが可能な状態となる。
次に、 フラッシュシーケンサブロック 1 2は、 新たな転送先内部ァ ドレスの下位 1 8ビッ ト「 1 0 0 0 00 0 1 000 00 000 0 0 Β」 を、 所定のレジスタに格納されたデータ転送コマンドとともにバス 1 5に供給するよう、 フラッシュメモリインターフェースプロック 1 0 に指示する。 この場合、 上述のとおり、 チップ選択信号 # 1が活性状 態となつているので、 バス 1 5に供給された内部ァドレス # 1の下位 1 8ビッ ト及びデータ転送コマンドは、 フラッシュメモリチップ 2— 1に対してのみ有効となる (転送先指定)。
次に、 バッファ 9に格納されているデータのうち、 フラッシュメモ リチップ 2— 1から読み出したデータ及び対応するエラーコレクショ ンコード等の冗長領域 2 6に格納すべき付加情報が、 上述と同様にし てフラッシュメモリチップ 2 _ 1に対して転送され、 その後、 書き込 み命令の発行が行われる。 これにより、 フラッシュメモリチップ 2— 1はフラッシュプログラミングを行い、 内部レジスタに格納されてい
るデータ及びエラーコレクシヨンコード等の付加情報が、 転送先内部 ア ドレスの下位 1 8ビッ ト 「 1 00 0 0 0 0 1 00 00 00 0 0 00 B」 により特定される物理ページ、 つまり、 フラッシュメモリチップ 2— 1の物理ブロック # 4 1 2 8の物理ページ # 0に書き込まれる。 フラッシュメモリチップ 2— 1の物理ブロック # 4 1 2 8の物理ぺー ジ # 0は、 仮想ページ # 1に対応する。
このよ うな、 書き込み処理が、 転送先ブロックア ドレス # 2及び # 3に 「 00 000 B (0)J が付加されることによって、 フラッシュメ モリチップ 2— 2及び 2— 3に対しても実行され、 これにより、 フラ ッシュメモリチップ 2— 2から読み出したデータ及び対応するエラー コレクショ ンコード等の冗長領域 2 6に格納すべき付加情報が、 フラ ッシュメモリチップ 2— 2の物理プロック # 3 9 04の物理ページ # 0に書き込まれ、 フラッシュメモリチップ 2— 3から読み出したデー タ及び対応するエラーコレクションコード等の冗長領域 26に格納す 一べき付加情報が、 フラッ—ジ―ュヌモリチップ 2—— 3の物理ブロック # 1 4 0 8の物理ページ # 0に書き込まれる。 フラッシュメモリチップ 2 一 2の物理プロック # 3 9 04の物理ページ # 0は、 仮想ページ # 2 に対応し、 フラッシュメモリチップ 2— 3の物理ブロック # 1 4 0 8 の物理ページ # 0は、 仮想ページ # 3に対応する。
これにより、 転送元の仮想ブロックの仮想ページ # 0〜# 3に格納 されているデータが、 転送先の仮想ブロックの仮想ページ # 0〜 # 3 に書き込まれたことになる。 すなわち、 転送元の仮想ブロックの仮想 ページ # 0〜# 3から転送先の仮想ブロックの仮想ページ # 0〜# 3 へのデータの転送が行われたことになる。
このようなデータの転送動作は、 転送元ブロックア ドレス及び転送 先ブロックァドレスに付加する 5ビッ トの値をインクリメントするこ とによって、 次々と行われる。 すなわち、 転送元ブロックア ドレス及 び転送先プロックァドレスに付加される 5ビットの値が 「0 0 0 0 1 ( 1 )」 であれば、転送元の仮想プロックの仮想ページ # 4〜# 7から 転送先の仮想ブロックの仮想ページ # 4〜# 7へのデータの転送が行
われ、 「00 0 1 0 (2)」 であれば、 転送元の仮想ブロ ックの仮想べ 一ジ# 8〜# 1 1から転送先の仮想プロックの仮想ページ # 8〜# 1 1へのデータの転送が行われることになる。
このような転送動作は、 付加される 5ビッ トの値が、 ホス トア ドレ スの上位 1 4ビッ ト 目〜上位 1 8ビッ ト目からなる 5ビッ ト ( B ) で ある 「 0 1 1 1 0 B ( 1 4)J に一致するまで連続的に行われる。 すな わち、 付加される 5ビットがインク リ メン トされた結果、 これが 「0 1 1 1 0 B ( 1 4)」 となり、 ホス トァドレスの上位 1 4ビット目〜上 位 1 8ビッ ト目からなる 5ビッ ト ( B ) に一致すると、 一旦、 上述し た転送動作が中断される。 本例では、 転送元の仮想ブロックの仮想ぺ ージ # 0〜# 5 5から転送先の仮想プロックの仮想ページ # 0〜 # 5 5へのデータの転送が完了した時点で、 付加される 5ビットの値が、 ホス トア ドレスの上位 1 4ビッ ト 目〜上位 1 8ビッ ト目からなる 5ビ ッ ト (B) に一致することになる。
付加される 5ビッ トがホストアドレスの上位 1 4ビッ ト目〜上位 1 8ビッ ト目からなる 5ビッ ト ( B ) に一致すると、 フラッシュシーケ ンサブ口ック 1 2は、 かかる 5ビッ ト 「0 1 1 1 0 B ( 1 4)」 を用レヽ たデータの読み出しを行わず、 これを転送先プロックァドレス # 0〜 # 3にそれぞれ付加して、 新たな転送先内部ア ドレスを生成する。 例 えば、 転送先プロックア ドレス # 0に 「0 1 1 1 0 B」 が付加されて 生成された転送先内部ァ ドレスは、 「0 0 0 0 1 0 0 00 0 1 0 0 0 00 1 1 1 0 BJ である。
次に、 フラッシュシーケンサブロック 1 2は、 生成された転送先内 部ァドレスの上位 2ビットに基づいてチップ選択信号 # 0を活性化し つつ、 転送先内部ア ドレスの下位 1 8ビッ トを、 データ転送コマンド と ともにバス 1 5に供給するよ う、 フラッシュメモリィンターフェ一 スブロ ック 1 0に指示する (転送先指定)。
次に、 ホス トア ドレス # 0に対応する書き込みデータ及び対応する エラーコレクショ ンコード等の付加情報が、 フラッシュシーケンサブ ロ ック 1 2によ り、 フラッシュメモリインターフェースプロ ック 1 0
を介して、 バス 1 5に供給される。 このとき、 チップ選択信号 # 0が 活性状態となっているため、 フラッシュメモリチップ 2— 0に転送さ れたデータ及びエラーコレクシヨンコードは、 フラッシュメモリチッ プ 2 _ 0内に備えられた内部レジスタに一時的に格納される (データ 転送)。
次に、 フラッシュシーケンサプロック 1 2は、 所定のレジスタに格 納された内部書き込みコマンドを、 フラッシュメモリチップ 2— 0に 対して発行する (書き込み命令)。
このようにして、 フラッシュメモリチップ 2— 0がホス トア ドレス # 0に対応する書き込みデータ及び対応するエラーコ レクションコー ド等の付加情報をフラッシュプログラミングを実行している間、 フラ ッシュシーケンサブロック 1 2は、 ホス トア ドレス # 1 に対応する書 き込みデータ及び対応するエラーコ レクシヨ ンコー ド等の付加情報を フラッシュメモリチップ 2— 1に書き込むべく、 転送先指定処理、 デ ータ転送処理等を実行する。 このよ うに、 あるフラッシュメモリチッ プがフラッシュプロダラミングを実行している途中で、 これと異なる フラッシュメモリチップに対して転送先指定処理、 データ転送処理等 を実行する点はすでに説明したとおりであり、 これによつて、 ホス ト ア ドレス # 0に対応する書き込みデータは、 フラッシュメモリチップ 2 - 0内の物理ブロック # 1 0 4 0の物理ページ # 1 4に書き込まれ、 ホス トア ドレス # 1 に対応する書き込みデータは、 フラッシュメモリ チップ 2— 1内の物理プロック # 4 1 2 8の物理ページ # 1 4に書き 込まれ、 ホス トアドレス # 2に対応する書き込みデータは、 フラッシ ュメモリチップ 2— 2内の物理プロック # 3 9 0 4の物理ページ # 1 4に書き込まれ、 ホス トア ドレス # 3に対応する書き込みデータは、 フラッシュメモリチップ 2— 3內の物理プロック # 1 4 0 8の物理べ ージ # 1 4に書き込まれる。
これにより、 ホス トア ドレス # 0〜# 3に対応する書き込みデータ 力 S、 転送先の仮想プロックの仮想ページ # 5 6〜# 5 9にそれぞれ書 き込まれたことになる。
かかるデータの書き込みが完了すると、 再び、 転送元ブロックアド レス及び転送先プロックァドレスに付加される 5ビットがィンクリメ ントされ、 新しい転送元内部ァドレス及ぴ転送先内部ァドレスを用い たデータの転送が再開される。 かかる転送動作は、 付加される 5ビッ トが 「 1 1 1 1 1 ( 3 1 )」 である場合のデータ転送が完了するまで連 続的に行われる。 すなわち、 転送元の仮想プロックの仮想ページ # 6 0〜# 1 2 7から転送先の仮想ブロックの仮想ページ # 6 0〜# 1 2 7へのデータの転送が完了するまで行われ、 これにより、 フラッシュ シーケンサプロック 1 2による一連のデータ転送動作が完了する。 また、 マイクロプロセッサ 6は、 上述のデータ書き込みによって、 消去済みプロックキュー 3 0のキューセッ ト # 1に格納された物理ブ ロックァドレスが、 消去済みプロックの物理プロックァドレスではな くなつたことに応答して、 新たな消去済みプロックを冗長プロックの 中から選択し、 選択された消去済みプロックの物理ブロックァドレス を新たにキュー # 1 _ 0〜# 1 — 3に格納する。
尚、 転送元の各物理ブロックは、 いずれもブロック消去され、 これ によって新たな消去済みプロックとなる。
以上により、 一連のデータ書き込み動作が完了する。
このように、 本実施態様によるフラッシュメモリシステム 1では、 「仮想ブロック」 という概念を用い、 互いに異なるフラッシュメモリ チップに属する複数の物理プロックを仮想的に一つのプロックとして 取り扱っているので、 ホス トコンピュータ 5から、 連続する複数ァド レスに対してデータ書き込み要求がなされた場合に、 ある書き込みデ ータについてフラッシュプログラミングが実行されている途中で、 次 の書き込みデータに対し、 転送先指定やデータ転送等の処理を実行す ることができ、 これにより一連のデータ書き込みに要する時間を大幅 に短縮させることが可能となる。 すなわち、 一連のデータ書き込み動 作のうち、 フラッシュプログラミングには比較的長い時間、 典型的に は約 2 0 0 / s e c程度が必要とされるところ、 本実施態様によるフ ラッシュメモリシステム 1によれば、 かかるフラッシュプログラミン
グと並行して他の処理を実行可能であることから、 一連のデータ書き 込みに要する時間は大幅に短縮される。
次に、 本発明の好ましい他の実施態様にかかるフラッシュメモリシ ステムについて詳細に説明する。
図 1 4は、 本発明の好ましい他の実施態様にかかるフラッシュメモ リシステム 3 1を概略的に示すプロック図である。
図 1 4に示されるように、 本実施態様にかかるフラッシュメモリシ ステム 3 1は、 上記実施態様にかかるフラッシュメモリシステム 1 と ほぼ同様の構成を備えており、 搭載されているフラッシュメモリチッ プの種類においてのみ異なる。
フラッシュメモリチップ 3 2 — 0〜 3 2 — 3のァ ドレス空間は、 上 記実施態様にかかるフラッシュメモリシステム 1に用いたフラッシュ メモリチップ 2 — 0〜 2— 3のァドレス空間と同じであり、 図 4に示 したとおりである。
ここで、 フラ ッシュメモリチップ 3 2— 0〜 3 2 — 3は、 いずれも 「バンクタイプ」 と呼ばれるチップであり、 各物理ブロックは、 それ ぞれ独立したレジスタを有するいずれかのバンクに分類される。 それ ぞれ異なるバンクに属する複数の物理ブロックについては、 互いに同 時に書き込み処理を行うことができる他、 互いに同時にブロック消去 を行うことができる。
図 1 5は、 フラッシュメモリチップ 3 2 — 0の構造を概略的に示す 図である。
図 1 5に示されるように、 フラッシュメモリチップ 3 2— 0を構成 する物理ブロック # 0〜# 8 1 9 1は、 バンク # 0〜 # 3からなる 4 つのバンクに分類されている。 詳細には、 物理ブロック # 4 m ( mは 0〜2 0 4 7の整数) はバンク # 0に属し、 物理ブロック # 4 m + l はバンク # 1に属し、 物理プロック # 4 m + 2はバンク # 2に属し、 物理プロック # 4 m + 3はバンク # 3に属している。
また、 フラッシュメモリチップ 3 2— 0は、 レジスタ # 0〜# 3力、 らなる 4つのレジスタを備えており、 これらレジスタ # 0 ~ # 3はバ
ンク # 0〜# 3にそれぞれ対応している。 これら各レジスタ # 0〜# 3は、それぞれ 1ページ分のデータを一時的に保持することができる。 すなわち、 バンク # 0に属する物理プロックからデータが読み出され る場合、 読み出されたデータは一旦レジスタ # 0に保持された後、 バ ス 1 5を介してコントローラ 3に転送され、 バンク # 0に属する物理 プロックへデータが書き込まれる場合、 パス 1 5を介してコントロー ラ 3から転送されたデータは、 一旦レジスタ # 0に保持された後、 所 定の物理プロックに書き込まれることに る。 上記動作は、 バンク # 1〜# 3に属する物理プロックに対するデータの読み出し及び書き込 みにおいても同様に、 それぞれレジスタ # 1〜# 3が用いられる。 また、 各物理プロックから対応するレジスタへのデータの転送動作 (データの読み出し) や、 各レジスタから対応する物理ブロックへの データの転送動作 (データの書き込み) は、 各バンクにおいて独立し て実行可能である。 したがって、 フラッシュメモリチップ 3 2— 0は、 上述したフラッシュメモリチップ 2 _ 0とは異なり、 4ページ分のデ ータの書き込みを並列に行うことができる。
尚、 図 1 5には示されていないが、 フラッシュメモリチップ 3 2— 1〜 3 2— 3についても、 フラッシュメモリチップ 3 2 - 0と同様、 各ブロックがバンク # 0〜# 3からなる 4つのバンクに分類されると ともに、 各バンクに対応するレジスタ # 0〜 # 3を備えている。
このように、 各フラッシュメモリチップ 3 2— 0〜 3 2— 3は、 各 ノ ンク # 0〜# 3ごとに 2 0 4 8個の物理プロックによって構成され るが、 このうち、 2 0 0 0個の物理ブロックは実使用ブロックとして 取り扱われ、 残りの 4 8個の物理ブロックは冗長ブロックとして取り 扱われる。
さらに、 実使用ブロックは、 各フラッシュメモリチップ 3 2— 0〜 3 2 - 3内において、 各バンク # 0〜# 3から一つずつ選ばれた 4つ の物理ブロックが仮想的に結合された 「仮想ブロック」 を構成する。 すなわち、 各フラッシュメモリチップ 3 2— 0〜3 2 - 3において 2 0 0 0個の仮想ブロックが構成される。
図 1 6は、 フラッシュメモリチップ 3 2— 0における仮想プロック の一例を示す図である。
図 1 6に示される例では、バンク # 0に含まれる物理プロック # 4、 バンク # 1に含まれる物理プロック # 6 8 0 1、 バンク # 2に含まれ る物理プロック # 3 2 4 2、 バンク # 3に含まれる物理プロック # 8 1 9 1が仮想的に結合され、 一つの仮想ブロックを構成している。 こ のように、 本実施態様においては、 ひとつの仮想ブロックを構成する 4つの物理ブロックはいずれも同じフラッシュメモリチップに属し、 且つ、 これら 4つの物理プロックは互いに異なるバンクに属すること が必要である。 このようにして、 各フラッシュメモリチップ 3 2— 0 〜 3 2— 3において 2 0 0 0個の仮想プロックが構成され、 フラッシ ュメモリチップ 3 2 - 0は仮想プロック # 0〜 # 1 9 9 9を構成し、 フラッシュメモリチップ 3 2 - 1は仮想プロック # 2 0 0 0〜# 3 9 9 9を構成し、 フラッシュメモリチップ 3 2— 2は仮想ブロック # 4 0 0 0〜 # 5 9 9 9を構成し、 フラ ッシュメモリチップ 3 2— 3は仮 想ブロック # 6 0 0 0 ~# 7 9 9 9を構成する。
図 1 7は、 図 1 6に示された仮想プロックのページ構造を示す図で め 。
図 1 7に示されるように、本実施態様においても、仮想プロックは、 ページ # 0〜ページ # 1 2 7からなる 1 2 8個の仮想ページによって 構成される一つのブロックとして取り扱われる。 ここで、 図 1 7に示 した仮想ブロックのうち、 プロック # 4からなる部分に含まれる 3 2 個のページは、 仮想ページ番号として 4 i ( iは、 物理ページ番号) が与えられ、 物理プロック # 6 8 0 1からなる部分に含まれる 3 2個 のページは、 仮想ページ番号として 4 i + 1が与えられ、 物理ブロッ ク # 3 2 4 2からなる部分に含まれる 3 2個のページは、 仮想ページ 番号として 4 i + 2が与えられ、 物理ブロック # 8 1 9 1からなる部 分に含まれる 3 2個のページは、 仮想ページ番号として 4 i + 3が与 'えられる。
図 1 8は、 8 0 0 0個の仮想ブロックと、 これら各仮想ブロックを
構成する 4つの物理プロックとの関係を示すァドレス変換テーブル 3 3のデータ構造を示す概略図である。
図 1 8に示されるように、 ァドレス変換テーブルの 3 3の構造は、 上記実施態様にかかるァドレス変換テーブル 2 7の構造と同様である カ 、 本実施態様にかかるフラッシュメモリシステム 3 1おいては、 ァ ドレス変換テーブル 3 3内のセル # j _ 0〜# j 一 3には、 それぞれ 当該仮想プロックを構成する物理プロックのア ドレス (物理プロック ア ドレス) の一部、 詳細には、 物理プロックア ドレスの上位 1 1ビッ トが格納される。 したがって、 例えば、 図 1 6及び図 1 7に示された 仮想ブロックが、 仮想ブロック # 0であるとすれば、 当該仮想プ口ッ クは、 物理プロック # 4、 物理プロック # 6 8 0 1、 物理プロック # 3 24 2及び物理ブロック # 8 1 9 1より構成されることから、 これ らブロックの物理プロックァドレスはそれぞれ 「0 00 00 0 0 0 0 000 1 0 0 B」、 「 1 1 0 1 0 1 0 0 1 0 0 0 1 BJ、 「0 1 1 0 0 1 0 1 0 1 0 1 0 B」、 及び「1 1 1 1 1 1 1 1 1 1 1 1 1 B」 となり、 セノレ # 0— 0〜 # 0— 3には、 Γ θ,Ο Ο Ο Ο Ο Ο Ο Ο Ο Ι Β ( 1 )」、
「 1 1 0 1 0 1 0 0 1 0 0 Β ( 1 7 00)」、 「 0 1 1 0 0 1 0 1 0 1 0 Β (8 1 0)」、 及び 「 1 1 1 1 1 1 1 1 1 1 1 Β ( 2 04 7)」 がそれ ぞれ格納されることになる。
また、 各仮想ブロック表示領域に含まれるフラグは、 対応するセル # j 一 0〜 # j 一 3に格納されている内容が有効 あるか無効である かを示している。 具体的には、 フラグが 「 1」 を示していれば対応す るセルに格納されている内容は有効であり、 フラグが 「0」 を示して いれば対応するセルに格納されている内容は無効である。したがって、 フラグが 「0」 を示している仮想ブロック表示領域においては、 これ に含まれるセル # j 一 0〜# j 一 3に格納されている内容は無視され る。
ここで、 セル # j - 0を構成するスロッ ト # 0はバンク # 0に対応 し、 セル # j 一 1を構成するスロッ ト # 1はバンク # 1に対応し、 セ ル # j 一 2を構成するスロッ ト # 2はバンク # 2に対応し、 セル # j
一 3を構成するスロッ ト # 3はバンク # 3に対応している。
このよ うなデータ構造を有するァドレス変換テーブル 3 3は、 S R AMワークエリァ 8上に展開される。
図 1 9は、 S RAMワークエリア 8に格納される消去済みプロック キュー 34のデータ構造を示す概略図である。
図 1 9に示されるように、 消去済みプロックキュー 3 4は、 キュー セット # 0〜# 3からなる 4つのキューによって構成され、これらは、 それぞれキュー # k一 0〜キュー # k一 3 (kは、 キューセッ ト番号) からなる 4個のキューによって構成される。 ここで、 キュー # k一 0 はバンク # 0に対応し、 キュー # k一 1はバンク # 1に対応し、 キュ 一 # k一 2はバンク # 2に対応し、 キュー # k _ 3はバンク # 3に対 応している。 さらに、 キューセッ ト # 0〜 # 3は、 それぞれブラッシ ュメモリチップ 3 2— 0〜3 2 - 3に対応している。
各キューセッ ト # 0〜# 3を構成するキュー # k一 0〜# k— 3に は、 ユーザ領域 2 5を構成する全てのフラッシュメモリセル 1 6が消 去状態となっている物理プロックの物理プロックァドレスの一部、 詳 細には、 物理ブロックア ドレスの上位 1 1 ビッ トが格納される。 した がって、 例えば、 フラッシュメモリチップ 3 2— 0に属する消去済み の物理プロック # 1 5 2を消去済みブロックキュー 3 0に登録する場 合、 当該プロックはバンク # 0に属していることから、 当該物理プロ ックァ ドレスの上位 1 1 ビッ トである 「0 00 00 1 0 0 1 1 0 BJ がキュー # 0— 0に格納される。
消去済みブロックキュー 3 0の生成は、 マイクロプロセッサ 6によ る制御のもと、 上述したァドレス変換テーブル 3 3の生成の際に行わ れ、 データ書き込みに備えて待機している冗長ブロックの中から選ば れる。
以上説明した構成を有するフラッシュメモリシステム 3 1の動作は、 基本的に、 上記実施態様にかかるフラッシュメモリ システム 1の動作 と同様であるが、 ァドレス変換テーブル 3 3を用いたホス トアドレス から内部ア ドレスへの変換手順が異なる。
図 2 0は、 データ読み出し動作における、 ア ドレス変換テーブル 3 3を用いた内部ァドレスへの変換手順を説明するための図である。 ここでは、 ホス トコンピュータ 5からホス トアドレス 「1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 B」 に対してデータの読み出しが要 求された場合を例に説明する。
図 2 0においては、 便宜上、 ホス トアドレスから上位 1 3ビットを 「 A」 とし、 上位 1 4ビッ ト目〜上位 1 8ビッ ト目からなる 5ビッ ト を 「B」 とし、 下位 2ビッ トを 「C」 と表記している。
データ読み出し動作においては、 まず、 マイクロプロセッサ 6によ る制御のもと、 20ビッ トのホス トア ドレスから上位 1 3ビット (A) が取り出され、 これが 「 2 00 0」 で除される。 そして、 かかる除算 によって得られた商 (0〜 3) によってフラッシュメモリチップが特 定され、 剰余 (0〜 1 9 9 9) によって仮想プロックが特定される。 本例では、 ホス トァドレスの上位 1 3ビッ ト (A) 力 S 「 10 0 00 1 1 1 1 1 1 1 1 B」 であるから、 商は 「 1 0 B (2)」 であり、 剰余は Γ0 0 1 0 1 0 1 1 1 1 1 Β ( 3 5 1)」 となる。 これにより、 選択さ れるフラッシュメモリチップはフラッシュメモリチップ 3 2— 2とな り、 選択される仮想ブロックは、 フラッシュメモリチップ 3 2— 2内 の仮想ブロック # 2 3 5 1 (3 5 1 + 2 0 0 0) となる。
したがって、 マイクロプロセッサ 6による制御のもと、 S RAMヮ ークエリア 8に格納されたァドレス変換テーブル 3 3から仮想ブロッ ク表示領域 # 2 3 5 1が選択され、 仮想ブロック表示領域 # 2 3 5 1 を構成する 4個のセルのうち、 ホス トァドレスの下位 2ビッ ト (C) と同じ枝番号を有するセルの内容が読み出される。 この場合、 ホス ト ア ドレスの下位 2ビット ( C )
「 00 B ( 0 ) J であるから、 その内 容が読み出されるセルは、 セル # 2 3 5 1 _ 0となる。 本例では、 力 かるセル # 2 3 5 1— 0の内容力 S 「0 0 1 0 0 00 1 1 1 1 B」 であ るものとする。
次に、 マイクロプロセッサ 6による制御のもと、 選択されたチップ 番号、 読み出されたセルの内容、 ホストァドレスの下位 2ビッ ト (C)、
及びホス トァ ドレスの上位 1 4ビッ ト目〜上位 1 8 ビッ ト目カ らなる 5ビッ ト (B) がこの順に結合される。 結合されたア ドレスは、 内部 ア ドレスとなる。 この場合、 選択されたチップ番号は 「1 0 B」 であ り、 読み出されたセルの内容は 「0 0 1 0 0 0 0 1 1 1 1 B」 であり、 ホス トア ドレスの下位 2ビッ ト (C) は 「 0 0 BJ であり、 ホス トア ドレスの上位 1 4ビッ ト 目〜上位 1 8ビッ ト 目からなる 5ビッ ト( B ) は 「1 1 0 0 0 B」 であることから、 得られる内部ァドレスは、 「 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 00 B」 となる。
以上より、 ホス トア ドレスから内部ァドレスへの変換が完了する。 ホス トァ ドレスが内部ァ ドレスに変換された後のデータ読み出し動 作は、 上述した上記実施態様にかかるフラッシュメモリ システム 1と 同様である。 本例では、 フラッシュメモリチップ 3 2 _ 2の物理プロ ック # 1 0 84の物理ページ # 24に格納されたデータが読み出され ることとなる。 尚、 物理ブロック # 1 0 8 4の物理ページ # 24は、 仮想ブロック # 2 3 5 1の仮想ページ # 9 6に対応する。
図 2 1は、 データ書き込み動作における、 ア ドレス変換テーブル 3 3を用いた内部ァドレスへの変換手順を説明するための図である。 ここでは、 ホス トコンピュータ 5から連続したホス トア ドレス # 0 ~# 3である、 「0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 B」 〜 「 00 0 1 0 1 0 1 0 1 0 1 0 1 0 00 1 1 1 Β」 に対してデータの 書き込みが要求された場合を例に説明する。
図 2 1に示されるように、 本例では、 ホス トア ドレス # 0〜 # 3の 上位 1 3ビッ ト ( Α) 力 S 「 00 0 1 0 1 0 1 0 1 0 1 0 Β」 であるか ら、 これを 2 0 00で除した場合の商は 「 0 0 Β ( 0 )」 であり、 剰余 は 「0 1 0 1 0 1 0 1 0 1 0 Β (6 8 2)」 となる。 これにより、 選択 されるフラッシュメモリチップはフラッシュメモリチップ 3 2— 0と なり、 選択される仮想ブロックは、 フラッシュメモリチップ 3 2— 0 内の仮想ブロック # 6 8 2となる。
次に、 マイクロプロセッサ 6による制御のもと、 消去済みブロック キュー 3 4を構成するキューセッ ト # 0〜 # 3のう ち、 フラッシュメ
モリチップ 3 2— 0に対応するキューセッ ト # 0を構成する各キュー # 0— 0〜# 0— 3に格納された内容が読み出される。上述のとおり、 各キューに格納されているのは、 消去済みプロックの物理プロックァ ドレスの上位 1 1 ビッ トである。 本例では、 これらキュー 0— 0〜# 0 - 3の内容がそれぞれ 「 1 1 1 0 0 00 1 1 1 1 B」、 「1 0 0 00 1 1 0 0 1 1 B」、 「1 0 0 1 1 1 1 0 00 0 B」、 「0 1 00 0 0 0 0 0 00 B」 であるものとする。
キュー # 0 _ 0〜# 0— 3に格納された内容が読み出されると、 こ れが S RAMワークエリア 8に格納されているァドレス変換テーブル 3 3の仮想プロック表示領域 # 6 8 2に格納され、 フラグが 「 1」 に セットされるとともに、 マイクロプロセッサ 6による制御のもと、 こ れを用いて内部アドレスが生成される。
図 2 1に示されるように、 内部ァドレスの生成方法は、 データの読 み出し動作の場合と同様であり、 マイクロプロセッサ 6による制御の もと、 選択されたチップ番号、 読み出されたキューの内容、 ホス トア ドレス # 0 ~# 3それぞれの下位 2ビッ ト (C)、及びホストァドレス # 0〜 # 3の上位 1 4ビッ ト目〜上位 1 8ビッ ト目力、らなる 5ビッ ト (B) がこの順に結合される。 この場合、選択されたチップ番号は「 0 0 B」 であり、 読み出されたセルの内容は 「 1 1 1 00 00 1 1 1 1 B」、 「 1 0 00 0 1 1 0 0 1 1 B」、 「 1 0 0 1 1 1 1 0 0 0 0 BJ、 「0 1 0 0 00 0 0 0 0 0 B」 であり、 ホス トア ドレス # 0〜 # 3の 下位 2ビッ ト ( C ) はそれぞれ 「0 0 B」 〜 「 1 1 B」 であり、 ホス トア ドレス # 0〜# 3の上位 1 4ビッ ト 目〜上位 1 8ビッ ト 目力、らな る 5ビッ ト ( B ) はいずれも 「 1 0 0 0 1 B」 であることから、 得ら れる 4つの内部アドレス # 0〜 # 3の値は、 図 2 1に示される値とな る。
これにより、 ホストア ドレス # 0〜# 3から内部ア ドレス # 0 ~# 3への変換が完了する。
図 2 2は、 フラッシュシーケンサプロック 1 2による一連の書き込 み動作タイミング概略的に示すタイミング図である.。
まず、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された内部ァ ドレスの上位 2ビッ トである 「00 B ( 0)J に基づい て、 フラッシュメモリチップ 3 2— 0に対応するチップ選択信号 # 0 を活性化する。
次に、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された内部ァ ドレスの中から内部ア ドレス # 0を選択し、 内部アド レス # 0の下位 1 8ビッ ト 「 1 1 1 00 0 0 1 1 1 1 0 0 1 0 0 0 1 B」 を、 所定のレジスタに格納されたデータ転送コマンドとともにパ ス 1 5に供給するよ う、 フラッシュメモリインターフェースプロック 1 0に指示する。 上述のとおり、 チップ選択信号 # 0が活性状態とな つているため、 バス 1 5に供給された内部ァ ドレス # 0の下位 1 8ビ ッ ト及びデータ転送コマンドは、 フラッシュメモリチップ 3 2— 0に 対してのみ有効となる。 このとき、 内部アドレスの上位 14ビッ ト及 ぴ上位 1 5 ビッ トからなる 2ビッ ト ( C ) である 「 00 B ( 0 )」 に基 づき、 フラッシュメモリチップ 3 2— 0に設けられたレジスタ # 0が 活性化される (転送先指定)。
これにより、 フラッシュメモリチップ 3 2— 0は、 供給された内部 ア ドレス # 0の下位 1 8ビッ ト 「 1 1 1 0 0 00 1 1 1 1 00 1 00 0 1 B」 に対応するページに書き込まれるべきデータのレジスタ # 0 への受け入れが許可された状態となる。
次に、 バッファ 9に格納されている書き込みデータのうち、 ホス ト ア ドレス # 0に対応するデータ及び対応するエラーコレクシヨ ンコー ド等の付加情報が、 フラッシュシーケンサブロック 1 2により、 フラ ッシュメモリインターフェースブロック 1 0を介して、 バス 1 5に供 給される。 上述のとおり、 フラッシュメモリ'チップ 3 2— 0に設けら れたレジスタ # 0が活性化されているため、 これらデータ及びエラー コレクションコードは、 フラッシュメモリチップ 3 2— 0内のレジス タ # 0に格納される (データ転送)。
このような転送先指定処理及ぴデータ転送処理が、 ホス トア ドレス # 1〜# 3に対応するデータについても行われ、 これにより、 フラッ
シュメモリチップ 3 2 _ 0内に備えられたレジスタ # 0〜# 3へのホ ス トア ドレス # 0〜# 3に対応するデータ及ぴェラーコレクショ ンコ 一ド等の付加情報の一時的な格納が完了する。
次に、 フラッシュシーケンサブロック 1 2は、 所定のレジスタ (図 示せず) に格納された内部書き込みコマンドを、 フラッシュメモリチ ップ 3 2— 0に対して発行する (書き込み命令)。
これに応答して、 フラッシュメモリチップ 3 2— 0は、 レジスタ # 0〜# 3に格納されているデータ及びエラーコレクシヨンコード等の 付加情報を、 転送先指定処理によって指定されたァドレスに一斉に書 き込む (フラッシュプログラミング)。 このようにして、 フラッシュシ 一ケンサプロック 1 2による一連の書き込み動作が完了する。
上記一連の書き込み動作により、 ホス トア ドレス # 0に対応するデ ータは、 フラッシュメモリチップ 3 2 - 0の物理プロック # 7 2 2 8 の物理ページ # 1 7に書き込まれ、 ホス トア ドレス # 1に対応するデ ータは、 フラッシュメモリチップ 3 2— 0の物理ブロック # 4 3 0 1 の物理ページ # 1 7に書き込まれ、 ホス トア ドレス # 2に対応するデ ータは、 フラッシュメモリチップ 3 2 - 0の物理プロック # 5 0 5 8 の物理ページ # 1 7に書き込まれ、 ホス トア ドレス # 3に対応するデ ータは、 フラッシュメモリチップ 3 2 - 0の物理プロック # 2 0 5 1 の物理ページ # 1 7に書き込まれることとなる。 尚、 物理プロック # 7 2 2 8、 # 4 3 0 1、 # 5 0 5 8及び # 2 0 5 1の物理ページ # 1 7は、 それぞれ仮想ブロック # 6 8 2の仮想ページ # 6 8〜 # 7 1に 対応する。
以上説明したように、 本実施態様にかかるフラッシュメモリシステ ム 3 1においては、 上記実施態様にかかるフラッシュメモリシステム 1 とは異なり、 仮想ブロックを構成する 4つの物理プロックが同じフ ラッシュメモリチップに含まれている。 しかしながら、 仮想ブロック を構成する 4つの物理プロックは、 互いに異なるバンクに属している ため、 上記実施態様にかかるフラッシュメモリシステム 1と同様、 ホ ス トコンピュータ 5から、 連続する複数ア ドレスに対してデータ書き
込み要求がなされた場合に、 各ホス トァドレスに対応するデータを、 レジスタ # 0〜 # 3へ連続的に転送し、 その後、 レジスタ # 0〜# 3 に保持されたデータを所定のページへ一斉に書き込むことができる。 すなわち、 本実施態様においては、 複数ページに亘るデータを一斉に フラッシュプログラミングすることができる。
また、本実施態様にかかるフラッシュメモリシステム 3 1おいては、 バンクタイプのフラッシュメモリチップを用いているので、 用いるフ ラッシュメモリチップの数が 1個であっても、 上記並列書き込みを行 うことが可能となる。
次に、 本発明の好ましいさらに他の実施態様にかかるフラッシュメ モリ システムについて詳細に説明する。
本実施態様にかかるフラッシュメモリシステム 3 5の物理的な構成 は、 上記実施態様にかかるフラッシュメモリシステム 3 1と同一であ り、 図 1 4に示したとおりである。 したがって、 搭載されているフラ ッシュメモリチップ 3 2— 0〜 3 2— 3は、 上述のとおり、 バンクタ イブと呼ばれる方式のチップである。
本実施態様においては、 フラッシュメモリチップ 3 2— 0を構成す るバンク # 0〜# 3から一つずつ選ばれた 4つの物理ブロックと、 フ ラッシュメモリチップ 3 2 - 1を構成するパンク # 0〜# 3から一つ ずつ選ばれた.4つの物理ブロックとが仮想的に結合された 「仮想ブロ ック」 を構成し、 同様に、 フラッシュメモリチップ 3 2— 2を構成す るバンク # 0〜# 3から一つずつ選ばれた 4つの物理ブロックと、 フ ラッシュメモリチップ 3 2 - 3を構成するバンク # 0〜# 3から一つ ずつ選ばれた 4つの物理ブロックとが仮想的に結合された 「仮想ブロ ック」 を構成する。 すなわち、 各仮想プロックは、 8個の物理ブロッ クが仮想的に結合して構成され、 仮想プロック # 0〜# 3 9 9 9から なる 4 0 0 0個の仮想ブロックが構成される。 ここでは、 便宜上、 フ ラッシュメモリチップ 3 2— 0及ぴ 3 2— 1によつて構成される仮想 ブロック群を 「ゾーン # 0」 と呼び、 フラッシュメモリチップ 3 2— 2及び 3 2— 3によつて構成される仮想ブロック群を 「ゾーン # 1 J
と呼ぶ。
図 2 3は、本実施態様における仮想プロックの一例を示す図である。 図 2 3に示される例では、 フラッシュメモリチップ 3 2 - 0のバン ク # 0に含まれる物理プロック # 3 1 2 8、 フラッシュメモリチップ 3 2— 0のバンク # 1に含まれる物理ブロック # 6 7 2 5、 フラッシ ュメモリチップ 3 2 - 0のバンク # 2に含まれる物理ブロック # 4 1 6 2、 フラッシュメモリチップ 3 2— 0のバンク # 3に含まれる物理 ブロック # 3、 フラッシュメモリチップ 3 2 - 1のバンク # 0に含ま れる物理プロック # 7 8 0 0、 フラッシュメモリチップ 3 2 - 1のバ ンク # 1に含まれる物理プロック # 7 8 0 1、 フラッシュメモリチッ プ 3 2— 1のバンク # 2に含まれる物理プロック # 2、 フラッシュメ モリチップ 3 2 - 1のバンク # 3に含まれる物理ブロック # 3 9 9 9 が仮想的に結合され、 一つの仮想ブロックを構成している。 このよう に、 本実施態様においては、 ひとつの仮想ブロックを構成する 8つの 物理ブロックのうち 4つの物理プロックは、 あるフラッシュメモリチ ップ内の互いに異なるバンクに属することが必要であり、 残りの 4つ の物理プロックは、 別のフラッシュメモリチップ内の互いに異なるパ ンクに属することが必要である。
このよ うにして、 400 0個の仮想ブロックが構成される。 このう ち、 フラッシュメモリチップ 3 2— 0及び 3 2— 1は仮想ブロック # 0〜 # 1 9 9 9を構成し、 フラッシュメモリチップ 3 2— 2及び 3 2 一 3は仮想ブロック # 20 00〜 # 3 9 9 9を構成する。
図 24は、 図 2 3に示された仮想プロックのページ構造を示す図で め 。
図 24に示されるように、本実施態様においては、仮想プロックは、 仮想ページ # 0〜ページ # 2 5 5からなる 2 5 6個のページによって 構成される一つのプロックとして取り扱われる。 ここで、 図 2 3に示 した仮想ブロックのうち、 フラッシュメモリチップ 3 2一 0の物理ブ ロック # 3 1 2 8からなる部分に含まれる 3 2個のページは、 仮想ぺ ージ番号として 8 i ( i は、 物理ページ番号) が与えられ、 フラッシ
ュメモリチップ 3 2 _ 0の物理ブロック # 6 7 2 5からなる部分に含 まれる 3 2個のページは、仮想ページ番号と して 8 i + 1が与えられ、 フラッシュメモリチップ 3 2 - 0の物理ブロック # 4 1 6 2のブロッ ク # 1 6 2からなる部分に含まれる 3 2個のページは、 仮想ページ番 号として 8 i + 2 ( i = 0〜 3 1 ) が与えられ、 フラッシュメモリチ ップ 3 2 - 0の物理プロック # 3からなる部分に含まれる 3 2個のぺ ージは、 仮想ページ番号と して 8 i + 3 ( i = 0〜 3 l ) が与えられ、 フラッシュメモリチップ 3 2 - 1の物理ブロック # 7 8 00力、らなる 部分に含まれる 3 2個のページは、仮想ページ番号と して 8 i + 4 ( i = 0〜 3 1 ) が与えられ、 フラッシュメモリチップ 3 2— 1の物理ブ ロック # 7 8 0 1からなる部分に含まれる 3 2個のページは、 仮想ぺ ージ番号と して 8 i + 5 ( i = 0〜 3 1 ) が与えられ、 フラッシュメ モリチップ 3 2 - 1の物理プロック # 2からなる部分に含まれる 3 2 個のページは、 仮想ページ番号として 8 i + 6 ( i = 0〜3 1 ) が与 えられ、 フラッシュメモリチップ 3 2— 1の物理ブロック # 3 9 9 9 からなる部分に含まれる 3 2個のページは、 仮想ページ番号として 8 i + 7 ( i = 0 ~ 3 1 ) が与えられる。
図 2 5は、 4 0 0 0個の仮想ブロックと、 これら各仮想ブロックを 構成する 8つの物理プロックとの関係を示すァドレス変換テーブル 3 6のデータ構造を示す概略図である。
図 2 5に示されるように、 ア ドレス変換テーブル 3 6は、 仮想ブロ ック表示領域 # 0〜 # 3 9 9 9力、らなる 4 0 0 0個の仮想ブロックが この順に並んで構成され、これら各仮想ブロック # 0〜# 3 9 9 9は、 それぞれセル # j 一 0〜セル # j 一 7 ( j は、 仮想ブロック番号) か らなる 8個のセル及ぴ 1個のフラグによって構成される。 ここで、 セ ル # j — 0を構成するスロッ ト # 0はフラッシュメモリチップ 3 2— 0または 3 2— 2のバンク # 0に対応し、 セル # j 一 1を構成するス ロッ ト # 1はフラッシュメモリチップ 3 2— 0または 3 2 - 2のバン ク # 1に対応し、 セル # j - 2を構成するスロッ ト # 2はフラッシュ メモリチップ 3 2— 0または 3 2— 2のバンク # 2に対応し、 セル #
j - 3を構成するスロッ ト # 3はフラッシュメモリチップ 3 2— 0ま たは 3 2 - 2のバンク # 3に対応し、 セル # j - 4を構成するスロッ ト # 4はフラッシュメモリチップ 3 2— 1または 3 2— 3のバンク # 0に対応し、 セル # j 一 5を構成するスロッ ト # 5はフラッシュメモ リチップ 3 2— 1または 3 2 - 3のバンク # 1に対応し、 セル # j - 6を構成するスロッ ト # 6はフラッシュメモリチップ 3 2— 1または 3 2 - 3のバンク # 2に対応し、 セル # j 一 7を構成するスロ ッ ト # 7はフラッシュメモリチップ 3 2— 1または 3 2— 3のバンク # 3に 対応している。
各仮想ブロックに含まれるセル # j — 0〜# j 一 7には、 それぞれ 当該仮想ブロックを構成する物理プロックのア ドレス (物理ブロック ア ドレス) の上位 1 1ビッ トが格納される。 したがって、 例えば、 図 2 3及び図 24に示された仮想プ口ックが、 仮想ブロ ック # 0である とすれば、 当該仮想ブロックは、 フラッシュメモリチップ 3 2— 0の 物理プロック # 3 1 2 8、 # 6 7 2 5、 # 4 1 6 2及びブロック # 3、 並びに、フラッシュメモリチップ 3 2 - 1の物理ブロック # 7 8 0 0、 # 7 8 0 1、 # 2及び # 3 9 9 9より構成されることから、 セル # 0 — 0〜# 0— 7には、 「0 1 1 0 0 0 0 1 1 1 0 B ( 7 8 2)」、 「 1 1 0 1 0 0 1 0 0 0 1 B ( 1 6 8 1 )」、 「 1 0 00 00 1 0 00 0 B ( 1 040)」、 Γ0000 0 0 0 0 0 0 0 Β (0)」、 「 1 1 1 1 0 0 1 1 1 1 0 Β ( 1 9 5 0)」、 「 1 1 1 1 0 0 1 1 1 1 0 Β ( 1 9 50)」、 「0 0 00 00 0 0 00 0 Β (0)」 及ぴ 「0 1 1 1 1 1 00 1 1 1 Β (9 9 9)」 がそれぞれ格納されることになる。
また、 各仮想プロック表示領域に含まれるフラグは、 対応するセル # j — 0〜# j 一 7に格納されている内容が有効であるか無効である かを示している。 具体的には、 フラグが 「 1」 を示していれば対応す るセルに格納されている內容は有効であり、 フラグが 「0」 を示して いれば対応するセルに格納されている内容は無効である。したがって、 フラグが 「0」 を示している仮想ブロック表示領域においては、 これ に含まれるセル # j 一 0~# j — 7に格納されている内容は無視され
る。
図 2 6は、 S RAMワークエリァ 8に格納される消去済みプロック キュー 3 7のデータ構造を示す概略図である。
図 2 6に示されるように、 消去済みプロックキュー 3 7は、 キュー セット # 0〜# 3からなる 4つのキューによつて構成され、これらは、 それぞれキュー # k一 0〜キュー # k一 7 ( kは、 キューセッ ト番号) からなる 8個のキューによって構成される。 ここで、 キュー # k— 0 〜# k一 3はフラッシュメモリチップ 3 2 - 0または 3 2— 2のバン ク # 0〜# 3にそれぞれ対応し、 キュー # k一 4〜# k _ 7はフラッ シュメモリチップ 3 2— 1または 3 2— 3のバンク # 0〜# 3にそれ ぞれ対応している。 さらに、 キューセッ ト # 0及ぴ # 1はいずれもゾ ーン # 0に対応し、 キューセッ ト # 2及び # 3はいずれもゾーン # 1 に対応している。
各キューセッ ト # 0〜# 3を構成するキュー # k— 0〜# k一 7に は、 ユーザ領域 2 5を構成する全てのフラッシュメモリセル 1 6が消 去状態となっている物理プロックの物理ブロックァドレスの上位 1 1 ビッ トが格納される。
消去済みプロックキュー 3 0の生成は、 マイクロプロセッサ 6によ る制御のもと、 上述したァドレス変換テーブル 3 6の生成の際に行わ れ、 データ書き込みに備えて待機している冗長ブロックの中から選ば れる。
図 2 7は、 データ読み出し動作における、 ア ドレス変換テーブル 3 6を用いた内部ァドレスへの変換手順を説明するための図である。 ここでは、 ホス トコンピュータ 5からホス トア ドレス 「0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 B」 に対してデータの読み出しが要 求された場合を例に説明する。
図 2 7においては、 便宜上、 ホストアドレスから上位 1 2ビッ トを 「 A J とし、 上位 1 3ビッ ト目〜上位 1 7ビット目からなる 5ビット を 「 B」 とし、 上位 1 8ビット目を 「 C」 と し、 下位 2ビッ トを 「D J と表記している。
データ読み出し動作においては、 まず、 マイクロプロセッサ 6によ る制御のもと、 20ビットのホストァドレスから上位 1 2ビット (A) が取り出され、 これが 「 2 0 0 0」 で除される。 そして、 かかる除算 によって得られた商 (0〜1 ) によってゾーンが特定され、 剰余 (0 〜1 9 9 9 ) によって仮想ブロックが特定される。 本例では、 ホス ト ァ ドレスの上位 1 2ビッ ト (A) 力 S 「000 0 0 1 1 1 1 1 1 1 BJ であるから、 商は Γ 0 B」 であり、 剰余は 「000 0 1 1 1 1 1 1 1 B ( 1 2 7)」 となる。 これにより、 選択されるゾーンはゾーン # 0と なり、 選択される仮想プロック表示領域は、 仮想ブロック表示領域 # 1 2 7となる。
したがって、 マイクロプロセッサ 6による制御のもと、 S RAMヮ 一タエリア 8に格納されているァドレス変換テーブル 3 6から仮想ブ ロック表示領域 # 1 2 7が選択され、 仮想ブロック表示領域 # 1 2 7 を構成する 8個のセルのうち、 ホス トア ドレスの下位 3ビッ トと同じ 枝番号を有するセルの内容が読み出される。 この場合、 ホス トア ドレ スの下位 3ビットが 「0 0 0 B ( 0 )j であるから、 その内容が読み出 されるセルは、 セノレ # 1 2 7— 0となる。 本例では、 かかるセル # 1 2 7 - 0の内容が 「00 0 0 0 0 0 1 1 1 1 BJ であるものとする。 次に、 マイクロプロセッサ 6による制御のもと、 選択されたゾーン 番号、 ホス トア ドレスの上位 1 8ビッ ト目 (C)、 読み出されたセルの 内容、 ホス トァ ドレスの下位 2ビッ ト (D)、及びホス トア ドレスの上 位 1 3ビッ ト目〜上位 1 7 ビッ ト目からなる 5ビッ ト ( B ) がこの順 に結合される。 結合されたア ドレスは、 内部ア ドレスとなる。 この場 合、 選択されたゾーン番号は 「0 B」 であり、 ホス トア ドレスの上位 1 8ビット目 (C) は 「0 Β」 であり、 読み出されたセルの内容は「0 0 0 000 0 1 1 1 1 BJであり、.ホス トァ ドレスの下位 2ビッ ト(D) は 「0 0 Β」 であり、 ホス トア ドレスの上位 1 3ビッ ト 目〜上位 1 7 ビット目からなる 5ビッ ト ( Β ) は 「 1 1 1 0 0 Β」 であることから、 得られる內部ァドレスは、 「 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 Β」 となる。
以上より、 ホス トア ドレスから内部ァドレスへの変換が完了する。 ホス トアドレスが内部ァドレスに変換された後のデータ読み出し動 作は、 上述した上記実施態様にかかるフラッシュメモリシステム 1、 3 1 と同様である。 本例では、 フラッシュメモリチップ 3 2 - 0の物 理ブロック # 6 0の物理ページ # 2 8に格納されたデータが読み出さ れることとなる。 尚、 物理ブロック # 6 0の物理ページ # 2 8は、 仮 想プロック # 1 2 7の仮想ページ # 2 24に対応する。
図 2 8は、 データ書き込み動作における、 ア ドレス変換テーブル 3 6を用いた内部ァドレスへの変換手順を説明するための図である。 ここでは、 ホス トコンピュータ 5から連続したホス トア ドレス # 0 〜# 7である、 「 1 0 0 1 0 1 0 1 0 1 0 1 0 1 00 0 1 0 0 B」 〜 「 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 B」 に対してデータの 書き込みが要求された場合を例に説明する。
図 2 8に示されるように、 本例では、 ホス トアドレス # 0〜# 7の 上位 1 2ビッ ト ( A) 力 S 「 1 0 0 1 0 1 0 1 0 1 0 1 B」 であるから、 これを 2 0 0 0で除した場合の商は 「 1 B ( 1 )」 であり、 剰余は 「 0 0 1 1 0 0 0 0 1 0 1 B (3 8 9)」 となる。 これにより、 選択される ゾーンはゾーン # 1 となり、 選択される仮想ブロックは、 仮想ブロッ ク # 2 3 8 9 ( 3 8 9 + 2 0 0 0) となる。
次に、 マイクロプロセッサ 6による制御のもと、 消去済みブロック キュー 3 7を構成するキューセッ ト # 0〜# 3のうち、 ゾーン # 1に 対応するキューセッ ト # 2または # 3を構成する各キュー # 2— 0〜 # 2— 7またはキュー # 3— 0〜 # 3— 7に格納された内容が読み出 される。 上述のとおり、 キュー # 2— 0〜 # 2— 3及びキュー 3—◦ 〜 3 _ 3に格納されているのは、 フラッシュメモリチップ 3 2— 2に 含まれる消去済みブロックの物理ブロックァ ドレスの上位 1 1 ビッ ト であり、 キュー # 2— 4〜 # 2— 7及びキュー 3— :〜 3 _ 7に格納. されているのは、 フラッシュメモリチップ 3 2 - 3に含まれる消去済 みプロックの物理ブロックア ドレスの上位 1 1 ビッ トである。 本例で は、 キューセッ ト # 2が選択されたものと し、 これらキュー # 2— 0
〜# 2— 7の内容がそれぞれ 「0 0 0 0 0 0 0 1 1 1 1 B」、 「 1 1 0 O O l l O O l l BJs 「 0 0 1 1 1 1 1 0 0 0 0 B」、 「0 1 1 0 0 0 0 0 0 0 0 B」、 「 1 1 0 1 1 1 1 1 1 1 1 BJ、 「 1 0 1 1 0 1 0 1 0 1 0 B」、 「 1 0 1 0 1 0 1 0 1 0 1 B」、 「 0 0 0 1 1 0 0 1 1 0 0 B」 であるものとする。
キュー # 2— 0〜# 2— 7に格納された内容が読み出されると、 こ れが S RAMワークエリァ 8に格納されているァドレス変換テーブル 3 6の仮想ブロック表示領域 # 2 3 8 9に格納され、 フラグが 「 1」 にセッ トされるとともに、 マイクロプロセッサ 6による制御のもと、 これを用いて内部アドレスが生成される。
図 2 8に示されるように、 内部ア ドレスの生成方法は、 データの読 み出し動作の場合と同様であり、 マイクロプロセッサ 6による制御の もと、 選択されたゾーン番号、 ホス トア ドレス # 0〜# 7それぞれの 上位 1 8 ビッ ト 目 (C)、 読み出されたキューの内容、 ホス トア ドレス # 0〜# 7それぞれの下位 2ビット (D)、及ぴホス トァドレス # 0〜 # 7の上位 1 3 ビッ ト目〜上位 1 7 ビッ ト目からなる 5 ビッ ト ( B ) がこの順に結合される。 これにより得られる 8つの内部ァドレス # 0 〜# 7の値は、 図 2 8に示される値となる。
これにより、 ホス トア ドレス # 0〜# 7から内部ァドレス # 0〜 # 7への変換が完了する。
図 2 9は、 フラッシュシーケンサプロック 1 2による一連の書き込 み動作タイミング概略的に示すタイミング図である。
まず、 フラッシュシーケンサブロック 1 2は、 所定のレジスタ (図 示せず) に格納された内部ァドレスの中から内部ア ドレス # 0を選択 し、 その上位 2ビッ ト 「 1 1 B ( 3 )J に基づいて、 フラッシュメモリ チップ 3 2— 3に対応するチップ選択信号 # 3を活性化する。
次に、 フラッシュシーケンサブロック 1 2は、 内部ア ドレス # 0の 下位 1 8ビット 「0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 B」 を、 所 定のレジスタ (図示せず) に格納されたデータ転送コマンドとともに バス 1 5に供給するよう、 フラッシュメモリインターフェースプロ、ソ
ク 1 0に指示する。 上述のとおり、 チップ選択信号 # 3が活性状態と なっているため、 バス 1 5に供給された内部ァドレス # 0の下位 1 8 ビット及びデータ転送コマンドは、 フラッシュメモリチップ 3 2— 3 に対してのみ有効となる。 このとき、 内部ア ドレスの上位 1 4ビット 目及び上位 1 5ビッ ト目からなる 2ビッ ト ( D )である 「 0 ◦ B ( 0 )」 に基づき、 フラッシュメモリチップ 3 2— 3に設けられたレジスタ # 0が活性化される (転送先指定)。
これにより、 フラッシュメモリチップ 3 2— 3は、 供給された内部 ア ドレス # 0の下位 1 8 ビッ ト 「0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 B」 に対応する物理ページに書き込まれるべきデータのレジスタ # 0への受け入れが許可された状態となる。
次に、 バッファ 9に格納されている書き込みデータのうち、 ホスト ア ドレス # 0に対応するデータ及ぴ対応するエラーコレクシヨ ンコー ド等の付加情報が、 フラッシュシーケンサブロック 1 2により、 フラ ッシュメモリインターフュースブロ ック 1 0を介して、 バス 1 5に供 給される。 上述のとおり、 フラッシュメモリチップ 3 2— 3に設けら れたレジスタ # 0が活性化されているため、 これらデータ及びエラー コレクショ ンコード等の付加情報は、 フラッシュメモリチップ 3 2— 3内のレジスタ # 0に格納される (データ転送)。
このような、 転送先指定処理及びデータ転送処理が、 ホス トアドレ ス # 1〜ヰ 3に対応するデータについても行われ、 これにより、 フラ ッシュメモリチップ 3 2 - 3内に備えられたレジスタ # 0〜 # 3への、 ホス トア ドレス # 0〜# 3 に対応するデータ及びエラーコレクシヨ ン コード等の付加情報の一時的な格納が完了する。
次に、 フラッシュシーケンサブロック 1 2は、 所定のレジスタに格 納された内部書き込みコマンドを、 フラッシュメモリチッ — 3 に対して発行する (書き込み命令)。
これに応答して、 フラッシュメモリチップ 3 2— 3は、 レジスタ # 0〜# 3に格納されているデータ及びエラーコレクシヨ ンコード等の 付加情報を、 転送先指定処理によって指定されたァドレスに一斉に書
き込む (フラッシュプログラミング)。
フラッシュメモリチップ 3 2— 3がフラッシュプログラミングを実 行している間、 フラッシュシーケンサブロック 1 2は、 所定のレジス タに格納された内部ァドレスの中から内部ァ ドレス # 4を選択し、 そ の上位 2ビッ ト 「 1 0 B ( 2 )」 に基づいて、 フラッシュメモリチップ 3 2— 2に対応するチップ選択信号 # 2を活性化する。
次に、 フラッシュシーケンサブロック 1 2は、 内部ア ドレス # 4の 下位 1 8ビッ トを、 所定のレジスタに格納されたデータ転送コマンド とともにバス 1 5に供給するよう、 フラッシュメモリインターフェ一 スプロック 1 0に指示する。 上述のとおり、 チップ選択信号 # 2が活 性状態となつているため、 バス 1 5に供給された內部ァドレス # 4の 下位 1 8 ビッ ト及ぴデータ転送コマンドは、 フラッシュメモリチップ 3 2— 2に対してのみ有効となる。 このとき、 内部ア ドレスの上位 1 3ビッ ト及び上位 1 4ビッ トからなる 2ビッ ト (D ) である 「O O B ( O ) J に基づき、 フラッシュメモリチップ 3 2 — 2に設けられたレジ スタ # 0が活性化される (転送先指定)。
これにより、 フラッシュメモリチップ 3 2 — 2は、 供給された内部 ア ドレス # 4の下位 1 8ビッ トに対応するページに書き込まれるべき データのレジスタ # 0への受け入れが許可された状態となる。
次に、 バッファ 9に格鈉されている書き込みデータのうち、 ホス ト ア ドレス # 4に対応するデータ及ぴ対応するエラーコレクシヨ ンコー ド等の付加情報が、 フラッシュシーケンサプロック 1 2により、 フラ ッシュメモリィンターフェースプロック 1 0を介して、 バス 1 5に供 給される。 上述のとおり、 フラッシュメモリチップ 3 2— 2に設けら れたレジスタ # 0が活性化されているため、 これらデータ及びエラー コレクションコードは、 フラッシュメモリチップ 3 2 _ 2内のレジス タ # 0に格納される (データ転送)。
このよ うな、 転送先指定処理及びデータ転送処理が、 ホス トア ドレ ス # 5〜# 7に対応するデータについても行われ、 これにより、 フラ ッシュメモリチップ 3 2 _ 2内に備えられたレジスタ # 0〜 # 3への、
ホス トア ドレス # 4〜 # 7に対応するデータ及ぴエラーコレクシヨン コード等の付加情報の一時的な格納が完了する。
次に、 フラッシュシーケンサプロック 1 2は、 所定のレジスタ (図 示せず) に格納された内部書き込みコマンドを、 フラッシュメモリチ ップ 3 2— 2に対して発行する (書き込み命令)。
これに応答して、 フラッシュメモリチップ 3 2— 2は、 レジスタ # 0~# 3に格納されているデータ及びエラーコレクシヨンコード等の 付加情報を、 転送先指定処理によって指定されたァドレスに一斉に書 き込む (フラッシュプログラミング)。 このようにして、 フラッシュシ ーケンサブ口ック 1 2による一連の書き込み動作が完了する。
尚、 上記一連の書き込み動作により、 ホス トア ドレス # 0に対応す るデータは、 フラッシュメモリチップ 3 2 - 3の物理プロック # 6 0 の物理ページ # 8に書き込まれ、 ホス トア ドレス # 1に対応するデー タは、 フラッシュメモリチップ 3 2 - 3の物理プロック # 6 34 9の 物理ページ # 8に書き込まれ、 ホス トア ドレス # 2に対応するデータ は、 フラッシュメモリチップ 3 2 - 3の物理ブロック # 1 9 8 6の物 理ページ # 8に書き込まれ、ホス トア ドレス # 3に対応するデータは、 フラッシュメモリチップ 3 2- 3の物理プロック # 3 0 7 5の物理ぺ ージ # 8に書き込まれ、 ホス トア ドレス # 4に対応するデータは、 フ ラッシュメモリチップ 3 2— 2の物理プロック # 7 1 6 4の物理ぺー ジ # 9に書き込まれ、 ホス トア ドレス # 5に対応するデータは、 フラ ッシュメモリチップ 3 2 - 2の物理プロック # 5 8 0 1の物理ページ # 9に書き込まれ、 ホス トア ドレス # 6に対応するデータは、 フラッ シュメモリチップ 3 2 - 2の物理プロック # 54 6 2の物理ページ # 9に書き込まれ、 ホス トア ドレス # 7に対応するデータは、 フラッシ ュメモリチップ 3 2 - 2の物理ブロック # 8 1 9の物理ページ # 9に 書き込まれることとなる。 尚、 フラッシュメモリチップ 3 2— 3の物 理ブロック # 6 0、 # 6 3 4 9、 # 1 9 8 6及び # 3 0 75の物理ぺ ——ジ# 8、 並びに、 フラッシュメモリチップ 3 2 - 2の物理ブロック # 7 1 64、 # 5 8 0 1、 # 54 6 2及ぴ # 8 1 9の物理ページ # 9
は、 それぞれ仮想ブロック # 2 3 8 9の仮想ページ # 6 8〜 # 7 5に 対応する。
以上説明したように、 本実施態様にかかるフラッシュメモリ システ ム 3 5おいては、 複数のフラッシュメモリチップを用いて仮想プロッ クを構成するという上記実施態様にかかるフラッシュメモリ システム 1の特徴と、 バンクタイプのフラッシュメモリチップ 3 2を用いるこ とにより仮想プロックを構成するという上記実施態様にかかるフラッ シュメモリ システム 3 1の特徴を兼ね備えている。 これによ り、 搭載 されるフラッシュメモリチップ 3 2の個数や各フラッシュメモリチッ プ 3 2が備えるバンク数を超える数の物理プロックからなる仮想プロ ックを構成することが可能となる。 このことは、 データ書き込み時に おいて並列処理が可能なページ数が多くなることを意味するので、 デ ータ書き込み処理をより高速に行うことが可能となる。
本発明は、 以上の実施態様に限定されることなく、 特許請求の範囲 に記載された発明の範囲内で種々の変更が可能であり、 それらも本発 明の範囲内に包含されるものであることはいうまでもない。
例えば、 上記実施態様にかかるフラッシュメモリ システム 1におい ては、 それぞれ異なるフラッシュメモリチップに属する 4個の物理ブ 口ックを仮想的に結合させることによって、 1つの仮想プロックを構 成しているが、 仮想プロ ックを構成する物理ブロックの数は 4個に限 定されず、 他の数、 例えば 2個や 8個であってもよい。 この場合、 1 つの仮想ブロックを構成する物理ブロックの数を、 搭載されたフラッ シュメモリチップの数と一致させることは必須ではなく、 仮想プロッ クを構成する物理ブロックの数を搭載されるフラッシュメモリチップ の数よりも少なく設定しても構わない。 例えば、 フラッシュメモリチ ップの数が 8個である場合に、 仮想プロックを構成する物理ブロック の数を 4個としてもよい。
また、 上記実施態様にかかるフラッシュメモリシステム 3 1におい ては、 それぞれ異なるバンクに属する 4個の物理ブロックを仮想的に ' 結合させることによって、 1つの仮想ブロックを構成しているが、 1
つの仮想プロックを構成する物理プロックの数は 4個に限定されず、 他の数、 例えば 2個や 8個であってもよい。 この場合、 仮想ブロック を構成する物理プロックの数を各フラッシュメモリチップが備えるバ ンク数と一致させることは必須ではなく、 仮想プロックを構成する物 理ブロックの数を各フラッシュメモリチップを備えるバンク数よりも 少なく設定しても構わない。 例えば、 各フラッシュメモリチップが備 えるバンクが 8である場合に、 仮想プロックを構成する物理プロック の数を 4個としてもよい。
さらに、 上記実施態様にかかるフラッシュメモリシステム 3 5にお いては、 それぞれ 4つのバンクを備える 2つのフラッシュメモリチッ プ 3 2内のブロックを仮想的に結合させることによって、 8個の物理 プロックからなる仮想プロックを構成しているが、 1つの仮想ブロッ クを構成する物理ブロックの数は 8個に限定されず、 他の数、 例えば 1 6個であってもよい。
また、 上記実施態様にかかるフラッシュメモリシステム 1において は、 データの上書き処理を行う際に、 転送元の仮想プロックを構成す る 4つのブロックからそれぞれ 1ページ分のデータを読み出してこれ ら 4ページ分のデータを一時的に保持し、 これら 4ページ分のデータ を転送先の仮想プロックを構成する 4つのブロックへそれぞれ書き込 んでいるが、 一時的に保持すべきデータは、 4ページ分のデータに限 定されず、 1ページ分のデータであってもよいし、 2ページ分のデー タであってもよい。 このよ うに一時的に保持すべきデータの数が、 仮 想プロックを構成するセルの数を下回る場合には、 バッファ 9に必要 とされる記憶容量を低減することができる一方、 転送効率が低下する ため、 一連の処理に要する時間は長くなる。
さらに、上記実施態様にかかるフラッシュメモリ システム 1、 3 1、 3 5においては、 データが格納されている全ての物理ブロックに関わ るァドレス変換情報を S R A Mワークエリァ 8上のァドレス変換テー ブル 2 7、 3 3、 3 6に展開しているが、 本発明において、 これら全 ての物理プロックに関わるァドレス変換情報をァドレス変換テーブル
に展開することは必須ではなく、これらの一部のみを展開してもよい。 この場合、 S R A Mワークエリァ 8に必要とされる記憶容量を削減す ることができる。 伹し、 このように一部の物理ブロックに関わるアド レス変換情報のみをァドレス変換テーブルに展開する場合、 ァ ドレス 変換テーブルにア ドレス変換情報が含まれていない物理プロックへの アクセスが要求される度に、 ァドレス変換テーブルを更新する必要が ある。
また、 上記実施態様においては、 フラッシュメモリシステム 1、 3 1、 3 5はカード形状であり、 4個のフラッシュメモリチップ 2— 0 〜2— 3または 3 2— 0〜 3 2— 3 とコン トローラ 3と力 一つの力 一ド内に集積されて構成されているが、 本発明にかかるフラッシュメ モリシステムがカード形状に限定されることはなく、 他の形状、 例え ばスティック状であってもよい。
さらに、 上記実施態様においては、 フラッシュメモリ システム 1、 3 1、 3 5は、 4個のフラッシュメモリチップ 2— 0〜 2— 3または 3 2— 0〜3 2— 3 とコン トローラ 3とが、 一つのカード内に集積さ れて構成されているが、 フラッシュメモリチップ 2— 0〜2— 3また は 3 2— 0〜3 2— 3 とコントローラ 3 とが、 同一筐体に集積されて いる必要はなく、それぞれ別個の筐体にパッケージングされてもよい。 この場合、 フラッシュメモリチップ 2— 0〜 2— 3または 3 2 - 0 ~ 3 2 - 3がパッケージングされた筐体及びコントローラ 3がパッケ一 ジングされた筐体には、 それぞれ他方との電気的及び機械的接続を実 現するためのコネクタが必要とされ、 かかるコネクタによって、 フラ ッシュメモリチップ 2— 0〜2— 3または 3 2— 0〜3 2— 3力 Sパッ ケージングされた筐体が、 コントローラ 3がパッケージングされた筐 体に着脱可能に装着される。 さらに、 フラッシュメモリチップ 2— 0 〜 2— 3または 3 2— 0〜3 2— 3についても、 これらが同一筐体に 集積されている必要はなく、 それぞれ別個の筐体にパッケージングさ れてもよい。
また、 上記実施態様にかかるフラッシュメモリシステム 1.、 3 1、
3 5においては、 各フラッシュメモリチップ 2— 0〜 2— 3または 3
2— 0〜3 2— 3は、 それぞれ 1 2 8 Mバイ ト ( 1 Gビッ ト) の記憶 容量を有する半導体チップであるが、 各フラッシュメモリチップ 2— 0〜 2— 3の記憶容量は 1 2 8 Mバイ ト ( 1 Gビッ ト) に限定されず、 これとは異なる容量、 例えば 3 2 Mバイ ト ( 2 5 6 Mビッ ト) であつ てもよい。
さらに、 上記実施態様にかかるフラッシュメモリシステム 1、 3 1、
3 5においては、 5 1 2バイ トを 1ページとし、 これを最小アクセス 単位と しているが、 最小アクセス単位と しては 5 1 2バイ トに限定さ れず、 これとは異なる容量であってもよい。
また、 上記実施態様にかかるフラッシュメモリシステム 1、 3 1、 3 5においては、 フラッシュメモリチップ 2— 0〜 2— 3または 3 2 — 0〜 3 2 - 3を構成する各フラッシュメモリセル 1 6力^ 1 ビッ ト のデータを保持しているが、 フローティングゲ一ト電極 2 1に注入す べき電子の量を複数段階に制御することによって、 2ビッ ト以上のデ ータを保持可能に構成してもよい。
さらに、 上記実施態様にかかるフラッシュメモリシステム 1、 3 1、 3 5においては、 各ブロックを 3 2個のページによって構成している 力 各ブロックを構成するページ数は 3 2個には限定きれず、他の数、 例えば、 1 6個や 6 4個であってもよい。
また、 上記実施態様にかかるフラッシュメモリシステム 1において は、 消去済みプロックキュー 3 0力 S 6つのキューセッ ト # 0〜 # 5に よって構成されているが、 消去済みプロックキュー 3 0を構成する 6 つのキューセッ トの数としては 6 ,組に限定されず、 他の数、 例えば、 1組や 8組であってもよい。 同様に、 上記実施態様にかかるフラッシ ュメモリシステム 3 1においては、 各フラッシュメモリチップ 3 2— 0〜 3 2 - 3に対してそれぞれ 1組のキューセッ トを割り当てること によって、 消去済みブロックキュー 3 4が構成されているが、 各フラ ッシュメモリチップ 3 2— 0〜3 2— 3に対して割り当てられるキュ ーセッ トの数と しては 1組に限定されず、 他の数、 例えば、 2組や 4
組であってもよい。 さらに同様に、 上記実施態様にかかるフラッシュ メモリシステム 3 5においては、 各ゾーン # 0及ぴ# 1に対してそれ ぞれ 2組のキューセッ トを割り当てることによって、 消去済みブロッ クキュー 3 7が構成されているが、 各ゾーン # 0及び # 1に対して割 り当てられるキューセッ トの数としては 2組に限定されず、 他の数、 例えば、 1組や 4組であってもよい。
さらに、 上記実施態様にかかるフラッシュメモリシステム 1、 3 1、 3 5においては、 フラッシュメモリチップ 2、 3 2としてNAND型 のフラッシュメモリチップを用いているが、 本発明により制御可能な フラッシュメモリが NAN D型に限定されるものではなく、他の種類、 例えば、 AND型のフラッシュメモリを制御することも可能である。
さらに、 本発明において、 手段とは、 必ずしも物理的手段を意味す るものではなく、 各手段の機能がソフ トウェアによって実現される場 合も包含する。 さらに、 一^ 3の手段の機能が二以上の物理的手段によ り実現されても、 二以上の手段の機能が一つの物理的手段により実現 されてもよい。
尚、 本発明は、 P CMC I A (P e r s o n a l C o m u t e r M e m o r y C a r d I n t e r n a t i o n a l A s s o c i a t i o n) が発表した統一規格に基づく P Cカードとして実 現することが可能である。 さらに、 近年、 半導体素子の高集積化技術 の発展に伴い、 より小型化された小型メモリカード、 例えば、 C FA (C o mp a c t F l a s h A s s o c i a t i o n) が提唱する 「C o mp a c t F 1 a s h」や、 Mu.l t i M e d i a C a r d A s s o c i a t i o nの提唱する 「MMC (Mu l t i M e d i a C a r d )」、 ソニー株式会社が提唱する 「メモリースティ ック」、 松下電 器産業株式会社等が提唱する 「S Dメモリーカード」 などに本発明を 適用することが可能である。
以上説明したように、 本発明によれば、 フラッシュメモリに対する 一連のデータ書き込み処理をより高速に行うことができるメモリコン トローラ、 フラッシュメモリシステム及びフラッシュメモリの制御方
法を提供することができる。