(57)【要約】【課題】多数のフラッシュメモリに並列にアクセスできるフラッシュメモリシステムを簡単に設計する。【解決手段】ホストシステムと通信するフラッシュメモリコントローラ１２に、１個以上のフラッシュメモリモジュール１４、１４、…が、たった３本の信号線をもつシリアルインタフェース１６を介して接続される。各フラッシュメモリモジュール１４は、パラレルインタフェース３４をもつ複数個のフラッシュメモリ３２、３２、…と、シリアルインタフェース１６とパラレルインタフェース３４との間の信号形式変換を行うシリアル・パラレル変換回路３０とを備え、フラッシュメモリ３２、３２、…の個数が固定された１個のモジュール又は１個のパッケージとして構成される。必要な記憶容量に応じて、フラッシュメモリコントローラ１２に接続されるフラッシュメモリモジュール１４、１４、…の個数を選択できる。【選択図】図１
2008305316.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムに記憶領域を提供するフラッシュメモリシステムにおいて、
１個以上のフラッシュメモリモジュールと、
前記１個以上のフラッシュメモリモジュールに接続され、前記ホストシステムと前記１個以上のフラッシュメモリモジュールとの間の通信を中継し且つ制御するフラッシュメモリコントローラと
を備え、
前記フラッシュメモリモジュールの各々は、
各々所定のパラレルインタフェースをもつ複数個のフラッシュメモリと、
前記フラッシュメモリコントローラと所定のシリアルインタフェースを介して接続され、且つ前記複数個のフラッシュメモリと前記パラレルインタフェースを介して接続されたシリアル・パラレル変換回路と
を有し、
前記シリアル・パラレル変換回路は、
前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータを、前記フラッシュメモリコントローラとの間で前記シリアルインタフェースを介して転送し、
前記フラッシュメモリに対するパラレル信号形式の指示情報及びユーザデータを、前記フラッシュメモリとの間で前記パラレルインタフェースを介して転送し、且つ
前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータと、前記フラッシュメモリに対する前記パラレル信号形式の指示情報及びユーザデータとの間の信号形式変換を行う、
フラッシュメモリシステム。
【請求項２】
請求項１記載のフラッシュメモリシステムにおいて、
前記フラッシュメモリコントローラに接続される前記フラッシュメモリモジュールの個数が可変である、フラッシュメモリシステム。
【請求項３】
請求項１又は２記載のフラッシュメモリシステムにおいて、
前記各フラッシュメモリモジュールが１個のモジュール又は１個のパッケージとして構成され、前記シリアル・パラレル変換回路に接続される前記フラッシュメモリの個数が一定値である、フラッシュメモリシステム。
【請求項４】
請求項１記載のフラッシュメモリシステムにおいて、
前記シリアルインタフェースは、1本のシリアル入出力信号線を有し、
前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記シリアル入出力信号線を通じて、前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータをシーケンシャルに転送する、フラッシュメモリシステム。
【請求項５】
請求項４記載のフラッシュメモリシステムにおいて、
前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記シリアル入出力信号線を通じて、前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータだけでなく、前記シリアル・パラレル変換回路に対するシリアル信号形式の指示情報も、シーケンシャルに転送する、フラッシュメモリシステム。
【請求項６】
請求項５記載のフラッシュメモリシステムにおいて、
前記シリアルインタフェースは、さらに、1本のコマンド信号線を有し、
前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記コマンド信号線を通じて、前記シリアル入出力信号線で転送されるシリアル信号が前記シリアル・パラレル変換回路に対する指示情報であるか否かを示すコマンド信号を転送する、フラッシュメモリシステム。
【請求項７】
請求項５又は６記載のフラッシュメモリシステムにおいて、
前記パラレルインタフェースは、前記フラッシュメモリに対するパラレル信号形式の指示情報及びユーザデータをシーケンシャルに転送するための複数本のパラレル入出力信号線と、前記フラッシュメモリに対する複数種類の制御信号を転送するための複数本の制御信号線とを有し、
前記シリアル・パラレル変換回路は、フラッシュメモリコントローラから前記シリアル入出力信号線を通じて転送される前記シリアル・パラレル変換回路に対する指示情報による指示に従って、前記パラレルインタフェースを通じて転送される前記フラッシュメモリに対する指示情報、ユーザデータ及び制御信号を操作する、フラッシュメモリシステム。
【請求項８】
請求項７記載のフラッシュメモリシステムにおいて、
前記シリアル・パラレル変換回路に対する指示情報は、次の４種類の信号、
(1)  それに後続するシリアル信号を、アドレスとして、前記フラッシュメモリへ供給せよと指示するアドレス識別信号、
(2)  それに後続するシリアル信号を、コマンドとして、前記フラッシュメモリへ供給せよと指示するコマンド識別信号、
(3)   それに後続するシリアル信号を、ユーザデータとして、前記フラッシュメモリへ供給せよと指示するデータ識別信号、及び
(4)  前記フラッシュメモリに対する所定の制御信号を操作して前記フラッシュメモリからユーザデータを読み出せと指示するリード識別信号、
を含む、フラッシュメモリシステム。
【請求項９】
請求項１記載のフラッシュメモリシステムに組み込まれるための前記フラッシュメモリモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストシステムに記憶領域を提供するフラッシュメモリシステム、及び同システムに組み込まれるフラッシュメモリモジュールに関する。
【背景技術】
【０００２】
ATA（Advanced Technology Attachment）のようなパラレルインタフェースをもつ複数個のフラッシュメモリカードを備え、ホスト装置がそれら複数個のフラッシュメモリカードとデータの読み書きを行えるように、SCSI、USBまたはE-IDEなどのインタフェースを介してホスト装置と接続される記憶装置が知られている（例えば特許文献１参照）。
【特許文献１】特開２０００−２０７１３７号公報（図１〜図３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、データ転送速度を高速化するために、パラレルインタフェースよりむしろシリアルインタフェースの方が、クロストークのような支障がないなどの点で好まれる。ATAの後に登場した、より高速なシリアルインタフェースであるSATA（Serial ATA）は、その好例である。
【０００４】
フラッシュメモリを用いた記憶装置においても、このような高速インタフェースを用いてその高速性の利点を活かすことが望まれる。その場合、フラッシュメモリ自体のデータ転送速度はそれほど高くはないので、高速インタフェースの利点を活かすために、高速インタフェース側から多数のフラッシュメモリに並列にアクセスできる構造を採用することが好ましい。
【０００５】
しかし、フラッシュメモリ自体のインタフェースは通常、パラレルインタフェースであり、その信号線数はかなり多い。そのため、多数のフラッシュメモリを並列に接続したならば、合計の信号線の本数が非常に多くなり、それら多数の信号線の配置設計が困難になる。
【０００６】
従って、本発明の目的は、多数のフラッシュメモリに並列にアクセスできるフラッシュメモリシステムを簡単に設計できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に従う、ホストシステムに記憶領域を提供するフラッシュメモリシステムは、
１個以上のフラッシュメモリモジュールと、
前記１個以上のフラッシュメモリモジュールに接続され、前記ホストシステムと前記１個以上のフラッシュメモリモジュールとの間の通信を中継し且つ制御するフラッシュメモリコントローラと
を備える。前記フラッシュメモリモジュールの各々は、
各々所定のパラレルインタフェースをもつ複数個のフラッシュメモリと、
前記フラッシュメモリコントローラと所定のシリアルインタフェースを介して接続され、且つ前記複数個のフラッシュメモリと前記パラレルインタフェースを介して接続されたシリアル・パラレル変換回路と
を有する。そして、前記シリアル・パラレル変換回路は、
前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータを、前記フラッシュメモリコントローラとの間で前記シリアルインタフェースを介して転送し、
前記フラッシュメモリに対するパラレル信号形式の指示情報及びユーザデータを、前記フラッシュメモリとの間で前記パラレルインタフェースを介して転送し、且つ
前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータと、前記フラッシュメモリに対する前記パラレル信号形式の指示情報及びユーザデータとの間の信号形式変換を行う。
【０００８】
本発明のフラッシュメモリシステムの好適な実施形態では、前記フラッシュメモリコントローラに接続される前記フラッシュメモリモジュールの個数が可変である。所望されるフラッシュメモリシステムの記憶容量に応じて、フラッシュメモリモジュールの個数が選択できる。記憶容量を大きくするために、フラッシュメモリモジュールの個数を増やしたとしても、フラッシュメモリモジュールのシリアルインタフェースの信号線本数は、パラレルインタフェースに比べて少ないから、信号線の配置の設計は容易である。
【０００９】
また、好適な実施形態では、各フラッシュメモリモジュールが１個のモジュール又は１個のパッケージとして構成され、前記シリアル・パラレル変換回路に接続される前記フラッシュメモリの個数は一定値である。フラッシュメモリシステムの設計者は、記憶容量を大きくするためにフラッシュメモリモジュールの個数をいくら増やしたても、フラッシュメモリモジュール自体の設計、例えば、フラッシュメモリのパラレルインタフェースの信号線の配置の設計などに、悩まされる必要はない。
【００１０】
また、好適な実施形態では、前記シリアルインタフェースは、1本のシリアル入出力信号線を有する。そして、前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記シリアル入出力信号線を通じて、前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータをシーケンシャルに転送する。これにより、フラッシュメモリに対する指示情報（例えばコマンドやアドレスなど）及びユーザデータを転送するためのシリアルインタフェースの信号線の本数が、最小となる。
【００１１】
また、好適な実施形態では、前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記シリアル入出力信号線を通じて、前記フラッシュメモリに対するシリアル信号形式の指示情報及びユーザデータだけでなく、前記シリアル・パラレル変換回路に対するシリアル信号形式の指示情報も、シーケンシャルに転送する。これにより、フラッシュメモリとシリアル・パラレル変換回路のそれぞれに対する指示情報やユーザデータを転送するためのシリアルインタフェースの信号線の本数が、最小となる。
【００１２】
また、好適な実施形態では、前記シリアルインタフェースは、さらに、1本のコマンド信号線を有する。そして、前記シリアル・パラレル変換回路と前記フラッシュメモリコントローラは、前記コマンド信号線を通じて、前記シリアル入出力信号線で転送されるシリアル信号が前記シリアル・パラレル変換回路に対する指示情報であるか否かを示すコマンド信号を転送する。これにより、シリアル・パラレル変換回路の動作を制御するためのシリアルインタフェースの信号線の本数が、最小となる。
【００１３】
また、好適な実施形態では、前記パラレルインタフェースは、前記フラッシュメモリに対するパラレル信号形式の指示情報及びユーザデータをシーケンシャルに転送するための複数本のパラレル入出力信号線と、前記フラッシュメモリに対する複数種類の制御信号を転送するための複数本の制御信号線とを有する。そして、前記シリアル・パラレル変換回路は、フラッシュメモリコントローラから前記シリアル入出力信号線を通じて転送される前記シリアル・パラレル変換回路に対する指示情報による指示に従って、前記パラレルインタフェースを通じて転送される前記フラッシュメモリに対する指示情報、ユーザデータ及び制御信号を操作する。
【００１４】
前記シリアル・パラレル変換回路に対する指示情報には、例えば、次の４種類の信号、
(1)  それに後続するシリアル信号を、アドレスとして、前記フラッシュメモリへ供給せよと指示するアドレス識別信号、
(2)  それに後続するシリアル信号を、コマンドとして、前記フラッシュメモリへ供給せよと指示するコマンド識別信号、
(3)   それに後続するシリアル信号を、ユーザデータとして、前記フラッシュメモリへ供給せよと指示するデータ識別信号、及び
(4)  前記フラッシュメモリに対する所定の制御信号を操作して前記フラッシュメモリからユーザデータを読み出せと指示するリード識別信号、
が含まれ得る。シリアル・パラレル変換回路は、これらの指示情報に従って、前記フラッシュメモリに対する指示情報、ユーザデータ及び制御信号を操作する。
【００１５】
本発明はまた、上述したフラッシュメモリシステムに組み込まれるためのフラッシュメモリモジュールも提供する。
【発明の効果】
【００１６】
本発明によれば、多数のフラッシュメモリに並列にアクセスできるフラッシュメモリシステムを簡単に設計することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の一実施形態に係るフラッシュメモリシステムの全体構成を示す。
【００１８】
図1に示すように、一つの実施形態に係るフラッシュメモリシステム１０は、ホストシステムと、例えばSATA（Serial ATA）、USB又はATA等のような任意のホストインタフェース１８を介して接続されてよい。例えばSATAのような高速なインタフェースが、ホストインタフェース１８として選ばれてよい。
【００１９】
フラッシュメモリシステム１０は、少なくとも1個のフラッシュメモリコントローラ１２と、そのフラッシュメモリコントローラ１２に接続された１個又は複数個（典型的には、２のべき乗数、例えば４個又は８個など）のフラッシュメモリモジュール１４、１４、…とを備える。フラッシュメモリコントローラ１２は、ホストシステムとフラッシュメモリモジュール１４、１４、…との間の通信を中継し且つ制御するものである。各フラッシュメモリモジュール１４、１４、…は、フラッシュメモリコントローラ１２から見て、一つのフラッシュメモリのごとくに機能するものである。
【００２０】
各フラッシュメモリモジュール１４は、少なくとも1個のシリアル・パラレル（S/P）変換回路３０と、そのS/P変換回路３０に接続された１個以上、好ましくは複数個（典型的には、２のべき乗数、例えば４個又は８個など）のフラッシュメモリ３２、３２、…とを有する。
【００２１】
好ましくは、フラッシュメモリシステム１０は、フラッシュメモリコントローラ１２とフラッシュメモリモジュール１４、１４、…とが一枚の回路基板上に搭載又は1個のICハウジング内に収納されてなる1個のＳＳＤ（Solid State Drive / Solid State Disk）として構成されてよい。また、好ましくは、各フラッシュメモリモジュール１４は、S/P変換回路３０のICチップとフラッシュメモリ３２、３２、…のICチップとが１枚の回路基板上に搭載又は１個のICハウジング内に収納されてなる1個のモジュール又は１個のパッケージとして構成されてよい。
【００２２】
好ましくは、フラッシュメモリコントローラ１２に接続されるフラッシュメモリモジュール１４、１４、…の個数は、フラッシュメモリシステム１０の設計者にとり可変であってよい。それにより、設計者は、フラッシュメモリシステム１０の記憶容量の所望値に応じて、フラッシュメモリコントローラ１２に接続されるフラッシュメモリモジュール１４、１４、…の個数を増減することができる。
【００２３】
他方、各フラッシュメモリモジュール１４内のフラッシュメモリ３２、３２、…の個数は、既定（例えば４個）に固定されていてよく、フラッシュメモリシステム１０の設計者にとり、その個数は変更不可能であってよい。例えば、各フラッシュメモリモジュール１４は、既定設計の１個のモジュール又は１個のパッケージとして、フラッシュメモリシステム１０の設計者に提供されてよく、フラッシュメモリシステム１０の設計者にとり、各フラッシュメモリモジュール１４の設計は変更不可能であってよい。
【００２４】
フラッシュメモリコントローラ１２と各フラッシュメモリモジュール１４との間の通信インタフェースには、所定のシリアルインタフェース１６が採用される（その詳細は後述する）。他方、各フラッシュメモリモジュール１４内のS/P変換回路３０と各フラッシュメモリ３２との間の通信インタフェースには、所定のパラレルインタフェース３４が採用される（その詳細は後述する）。各フラッシュメモリモジュール１４内のS/P変換回路３０が、上記のシリアルインタフェース１６とパラレルインタフェース３４との間の変換を行う。S/P変換回路３０が行う変換は、シリアルインタフェース１６とパラレルインタフェース３４の間のシリアルとパラレルの信号形式の変換及びそれに伴う転送タイミングの調整などの信号の物理的な変換である。これに対し、アドレス変換や不良ブックの管理やウェアレベリング等の転送情報の実体内容の変換や操作は、フラッシュメモリコントローラ１２が行う。
【００２５】
フラッシュメモリ３２、３２、…に対するコマンドやアドレス等の指示情報は、S/P変換回路３０を介して、フラッシュメモリコントローラ１２からフラッシュメモリ３２、３２、…に供給される。フラッシュメモリコントローラ１２から各フラッシュメモリモジュール１４に供給される信号は、シリアルインタフェース１６を通じたシリアル信号である。そのシリアル信号はS/P変換回路３０でパラレル信号に変換され、そのパラレル信号がパラレルインタフェース３４を通じてフラッシュメモリ３２、３２、…に供給される。
【００２６】
フラッシュメモリ３２、３２、…へ書き込まれるユーザーデータ、又はフラッシュメモリ３２、３２、…から読み出されたユーザーデータは、フラッシュメモリコントローラ１２からフラッシュメモリ３２、３２、…に、又はフラッシュメモリ３２、３２、…からフラッシュメモリコントローラ１２に、シリアル信号として供給される。
【００２７】
図２は、S/P変換回路３０のシリアルインタフェース１６とパラレルインタフェース３４の信号構成を示す。
【００２８】
図２に示すように、シリアルインタフェース１６は、３本の信号線２０、２２、２４を有する。すなわち、それらは、タイミングクロック（CLK）信号線２０、コマンド宛先（CMD）信号線２２及びシリアル入出力（S_I/O）信号線２４である。
【００２９】
CLK信号線２０は、フラッシュメモリモジュール１４全体の動作タイミングを決めるためのタイミングクロック（CLK）信号を転送する。S_I/O信号線２４は、S/P変換回路３０に対する指示情報（後述）、フラッシュメモリ３２、３２、…に対するコマンドやアドレス等の指示情報、及びフラッシュメモリ３２、３２、…へ書き込まれ／から読み出されるユーザデータを、シリアル入出力（S_I/O）信号として、シリアルに且つシーケンシャルに転送する。
【００３０】
また、CMD信号線２２は、S_I/O線２４で転送されるS_I/O信号が、上述したS/P変換回路３０に対する指示情報なのか否かを識別するためのコマンド（CMD）信号を転送する。すなわち、CMD信号がアクティブ（負論理なのでローレベル）であると、S_I/O信号がS/P変換回路３０に対する指示情報であることを意味し、非アクティブ（ハイレベル）であると、S_I/O信号がS/P変換回路３０に対する指示情報ではない（換言すれば、フラッシュメモリ３２、３２、…に対するコマンド、アドレス及びユーザデータ等の情報）であることを意味する。
【００３１】
他方、パラレルインタフェース３４は、シリアルインタフェース１６より多くの信号線４０〜５０を有する。すなわち、それらは、複数本のチップイネーブル（CE）信号線４０、４０、…、コマンドラッチイネーブル（CLE）信号線４２、アドレスラッチイネーブル（ALE）信号線４４、ライトイネーブル（WE）信号線４６、リードイネーブル（RE）信号線４８及びパラレル入出力（P_I/O）信号バス５０である。
【００３２】
このうち、CE信号線４０、４０、…の各々は、S/P変換回路３０に接続された複数個のフラッシュメモリ（ICチップ）３２、３２、…の各々に１対１で接続される。各CE信号線４０は、それが接続された１個のフラッシュメモリ（ICチップ）３２にチップイネーブル（CE）信号を供給する（図２には、４個のフラッシュメモリ３２、３２、…が存在する場合が例示されている）。各CE信号がアクティブ（負論理なのでローレベル）であると、それに対応するフラッシュメモリ３２がイネーブルであり、非アクティブ（ハイレベル）であると、対応するフラッシュメモリ３２がディセーブルである。
【００３３】
上述したCE信号線４０、４０、…以外のパラレルインタフェース３４内の信号線４２〜５０は、いずれも、S/P変換回路３０に接続された複数個のフラッシュメモリ３２、３２、…の全てに接続され、そして、それら全てのフラッシュメモリ３２、３２、…に共用される。実際には、それらのフラッシュメモリ３２、３２、…のうち上述したCE信号によりイネーブルになっているフラッシュメモリだけが、上記の共用される信号線４２〜５０を使用することになる。
【００３４】
P_I/Oバス５０は、所定複数本（この実施形態では８本）の信号線から構成され、所定複数ビット（この実施形態では８ビット（１バイト））単位で並列なパラレル入出力（P_I/O）信号を転送する。P_I/Oバス５０は、フラッシュメモリ３２、３２、…に対するコマンドやアドレス等の指示情報、及びフラッシュメモリ３２、３２、…へ／から書き込まれ／読み出されるユーザデータを、P_I/O信号として、シーケンシャルに転送する。
【００３５】
CLE信号線４２は、P_I/Oバス５０で転送されるP_I/O信号がコマンドであるか否かを示すコマンドラッチイネーブル（CLE）信号を転送する。すなわち、CLE信号がアクティブ（正論理なのでハイレベル)であれば、P_I/O信号がコマンドであることを意味する。ALE信号線４４は、P_I/Oバス５０でで転送されるP_I/O信号がアドレスであるか否かを示すアドレスラッチイネーブル（ALE）信号を転送する。すなわち、ALE信号がアクティブ（正論理なのでハイレベル)であれば、P_I/O信号がアドレスであることを意味する。P_I/Oバス５０でユーザデータが転送されるときには、CLE信号とALE信号の双方が非アクティブ（ローレベル）である。
【００３６】
WE信号線４６は、フラッシュメモリ３２、３２、…にP_I/Oバス５０上のP_I/O信号を取り込ませるためのライトイネーブル（WE）信号をフラッシュメモリ３２、３２、…に提供する。フラッシュメモリ３２、３２、…は、WE信号の立上りエッジに同期してP_I/O信号をP_I/Oバス５０から取り込む。RE信号線４８は、フラッシュメモリ３２、３２、…にP_I/O信号をP_I/Oバス５０へ出力させるためのリードイネーブル（RE）信号をフラッシュメモリ３２、３２、…に提供する。フラッシュメモリ３２、３２、…は、RE信号の立上りエッジに応答してP_I/O信号をP_I/Oバス５０へ出力する。
【００３７】
S/P変換回路３０は、フラッシュメモリコントローラ１２からシリアルインタフェース１６のS_I/O線２４を通じて供給されるフラッシュメモリ３２、３２、…に対するS_I/O信号の形式のコマンド及びアドレス等の指示情報を、バイト単位でパラレルなP_I/O信号の形式に変換して、パラレルインタフェース３４のP_I/Oバス５０を通じて、フラッシュメモリ３２、３２、…に転送する。転送されたコマンドが書き込みコマンドである場合、S/P変換回路３０は、フラッシュメモリコントローラ１２からS_I/O線２４を通じてアドレスの後に供給されるS_I/O信号の形式のユーザーデータを、同様にP_I/O信号の形式に変換して、P_I/Oバス５０を通じて、フラッシュメモリ３２、３２、…に転送する。他方、転送されたコマンドが読み出しコマンドである場合、S/P変換回路３０は、アドレスの転送後にフラッシュメモリ３２、３２、…からP_I/Oバス５０上へ読み出されるP_I/O信号の形式のユーザーデータを、S_I/O信号の形式に変換して、S_I/O線２４を通じてフラッシュメモリコントローラ１２に転送する。
【００３８】
上記のようにユーザデータの書き込み／読み出しが行われる際、S/P変換回路３０は、また、上記動作に並行して、フラッシュメモリ３２、３２、…を制御するために必要な複数種類の制御信号（すなわち、CE信号、CLE信号、ALE信号、WE信号及びRE信号）を生成し、それらの制御信号をパラレルインタフェース３４の対応する信号線４０〜４８を通じて、フラッシュメモリ３２、３２、…に供給する。
【００３９】
S/P変換回路３０は、フラッシュメモリコントローラ１２からS_I/O線２４を通じて供給されるS/P変換回路３０に対する最小限の指示情報に基づいて上述した制御信号を生成する。S/P変換回路３０は、フラッシュメモリコントローラ１２からS_I/O線２４を通じて供給される信号が、フラッシュメモリに転送されるべきコマンド、アドレス及びユーザーデータ等の情報であるか、又はS/P変換回路３０に対する指示情報であるかを信号であるかを、フラッシュメモリコントローラ１２からCMD信号線２２を通じて供給されるCMD信号に基づいて識別する。
【００４０】
フラッシュメモリコントローラ１２からS_I/O線２４を通じて供給されるS/P変換回路３０に対する指示情報には、この実施形態では、次の４種類の信号がある。
【００４１】
(1)  アドレス識別（ADD_ID）信号。この信号は、この信号の直後に続く信号を、アドレスとして、指定されたフラッシュメモリ３２、３２、…へ供給せよと、S/P変換回路３０に指示する。
【００４２】
(2)  コマンド識別（CMD_ID）信号。この信号は、この信号の直後に続く信号を、コマンドとして、指定されたフラッシュメモリ３２へ供給せよ、という指示を意味する。
【００４３】
(3)  データ識別（DAT_ID）信号。この信号は、この信号の直後に続く信号を、ユーザデータとして、指定されたフラッシュメモリへ３２へ供給せよ、という指示を意味する。
【００４４】
(4)  リード識別（RED_ID）信号。この信号は、リードイネーブル（RE）信号を操作してフラッシュメモリ３２からデータを読み出せ、という指示を意味する。
【００４５】
上述した４種類の指示情報は、いずれも、指示された動作の向け先であるフラッシュメモリ３２を指定するためのメモリ指定情報を含んでいる。S/P変換回路３０は、そのメモリ指定情報に基づいて、指定されたフラッシュメモリ３２だけがイネーブルになるように、複数のフラッシュメモリ３２、３２、…に対するチップイネーブル（CE0〜CE3）信号を制御する。
【００４６】
さらに、上述した３種類の識別信号、すなわち、アドレス識別（ADD_ID）信号、コマンド識別（CMD_ID）信号及びデータ識別（DAT_ID）信号には、その信号の直後に続くフラッシュメモリ３２、３２、…に対する情報の種別（コマンド、アドレス又はユーザデータ）を特定するための信号種別情報が含まれる。
【００４７】
また、リード識別（RED_ID）信号には、トグリングの回数、つまり、１度に読み出されるユーザデータ（正味のユーザデータだけでなく、純粋なユーザデータに付属するECCデータ等の補助的データも含む）の１単位のバイト数を示すバイト数情報も含まれる。読み出されるデータの単位のバイト数は、例えば、ユーザデータが５１２バイト、ECCデータが所定バイト数というように、予め決まっているので、バイト数情報はそれらの決まったバイト数が特定できればよい。
【００４８】
以下に、上記の構成をもつフラッシュメモリシステム１０におけるS/P変換回路３０動作を説明する。
【００４９】
まず、指定されたフラッシュメモリ３２にデータを書き込む時のS/P変換回路３０の動作を説明する。図３〜図５は（それらを図番順に繋げることで）、書き込み時のS/P変換回路３０の入出力信号を示すタイミングチャートである。図３〜図５中、上部に示される３種の信号は、フラッシュメモリコントローラ１２とS/P変換回路３０との間でシリアルインタフェース１６を通じて転送される信号であり、それより下方に示される多数の信号は、S/P変換回路３０とフラッシュメモリ３２、３２、…との間でパラレルインタフェース３４を通じて転送される信号である。
【００５０】
S/P変換回路３０の以下に説明する諸動作は、フラッシュメモリコントローラ１２からのCLK信号に同期して行われる。S/P変換回路３０は、CLK信号の立上りエッジ及び立下りエッジの各々に応答して、S_I/O信号を１ビット単位の転送及びP_I/O信号の１バイト単位の転送を行う。
【００５１】
データ読み出しのプロセスでは、図３に示すように、まず区間P1で、フラッシュメモリコントローラ１２によりCMD信号がアクティブにされるとともに、S_I/O信号として、その直後に書き込みコマンドが後続することを意味するDAT_ID信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、そのDAT_ID信号をCLK信号の立上りエッジと立下りエッジの各々に同期してビット単位で入力する。S/P変換回路３０は、CMD信号に従って、入力されたDAT＿ID信号を、S/P変換回路３０に対する指示情報として扱い、それを解読する。S/P変換回路３０は、入力されたDAT_ID信号の解読結果から、書き込み先のフラッシュメモリ３２を特定する。
【００５２】
区間P1の直後に続く区間P2で、フラッシュメモリコントローラ１２によりCMD信号が非アクティブにされるとともに、S_I/O信号として、フラッシュメモリ３２に対する書き込みコマンドであるコマンドデータ（CMD_DAT）信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、区間P1で入力したDAT_ID信号の解読結果に従って、それに後続するCMD_DAT信号つまり書き込みコマンドを入力する。S/P変換回路３０は、入力されたCMD_DAT信号つまり書き込みコマンドを、CMD信号に従って、フラッシュメモリ３２に対する指示情報として扱い、それを、P_I/O信号として出力でできようにバイト単位のパラレル信号に変換する（その形式だけをパラレル信号に変換し、書き込みコマンドの実体内容は変更しない）。
【００５３】
区間P2の直後に続く区間P3で、フラッシュメモリコントローラ１２によりCMD信号が再びアクティブにされるとともに、S_I/O信号として、その直後にアドレスが後続することを意味するADD_ID信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、そのADD_ID信号を入力する。S/P変換回路３０は、入力されたADD_ID信号を、CMD信号に従って、S/P変換回路３０に対する指示情報として扱い、それを解読する。S/P変換回路３０は、入力されたADD_ID信号の解読結果から、書き込み先のフラッシュメモリ３２を特定する。
【００５４】
区間P3の直後に続く区間P5で、フラッシュメモリコントローラ１２によりCMD信号が再び非アクティブにされるとともに、S_I/O信号として、フラッシュメモリ３２に対する書き込み先アドレスであるアドレスデータ（ADD_DAT）信号（例えば所定複数バイトのデータ）が供給される。S/P変換回路３０は、区間P3で入力したADD_ID信号の解読結果に従って、それに後続するADD_DAT信号つまりアドレスを入力する。S/P変換回路３０は、CMD信号に従って、入力されたADD_DAT信号つまりアドレスを、フラッシュメモリ３２に対する指示情報として扱い、それを、P_I/O信号として出力でできようにバイト単位のパラレル信号に変換する（その形式だけをパラレル信号に変換し、アドレスの実体内容は変更しない）。
【００５５】
また、上述した区間P2でCMD_DAT信号つまり書き込みコマンドを入力すると、その後の区間P4で、S/P変換回路３０は、区間P1で入力されたCMD_ID信号から特定された書き込み先のフラッシュメモリ３２を、それに対応するCE信号（図示の例ではCE０信号）をアクティブにすることで、イネーブルにする。それとともに、S/P変換回路３０は、CMD_ID信号の解読結果に従って、区間P２で入力されてパラレル信号に変換されたCMD_DAT信号つまり書き込みコマンドを、P_I/O信号として出力する。それとともに、さらに、S/P変換回路３０は、CMD_ID信号の解読結果に従って、CLE信号をアクティブにして、出力されたP_I/O信号がコマンドであることを、書き込み先のフラッシュメモリ３２に知らせる。さらに、S/P変換回路３０は、CMD_ID信号の解読結果に従って、WE信号をローレベルに下げてからハイレベルへ立ち上げる。それにより、書き込み先のフラッシュメモリ３２は、WE信号の立上りエッジに同期して、P_I/O信号として供給されたCMD_DAT信号つまり書き込みコマンドを入力する。
【００５６】
また、区間P5でADD_DAT信号つまりアドレスの最初のバイトを入力すると、その後の区間P6で、S/P変換回路３０は、区間P3で入力されたADD_ID信号から特定された書き込み先のフラッシュメモリ３２を、それに対応するCE信号（図示の例ではCE０信号）をアクティブにすることで、イネーブルにする。それとともに、S/P変換回路３０は、ADD_ID信号の解読結果に従って、区間P5で入力されてパラレル信号に変換されたADD_DAT信号つまりアドレスを、P_I/O信号として出力する。それとともに、さらに、S/P変換回路３０は、ADD_ID信号の解読結果に従って、ALE信号をアクティブにして、出力されたP_I/O信号がアドレスであることを、書き込み先のフラッシュメモリ３２に知らせる。またさらに、S/P変換回路３０は、ADD_ID信号の解読結果に従って、アドレスの各バイトを出力する都度にWE信号をローレベルに下げてからハイレベルへ立ち上げる。それにより、書き込み先のフラッシュメモリ３２が、WE信号の立上りエッジに同期して、P_I/O信号として供給されたADD_DAT信号つまりアドレスの各バイトを入力する。S/P変換回路３０は、ADD_DAT信号の最終バイトがフラッシュメモリ３２に入力され終わるまで、この動作を続ける。
【００５７】
図４に示すように、上述した区間P5の直後に続く区間P7で、フラッシュメモリコントローラ１２によりCMD信号が再びアクティブにされるとともに、S_I/O信号として、その直後にユーザデータが後続することを意味するDAT_ID信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、そのDAT_ID信号を入力する。S/P変換回路３０は、入力したDAT_ID信号を、CMD信号に従って、S/P変換回路３０に対する指示情報として扱い、それを解釈する。S/P変換回路３０は、入力されたDAT_ID信号の解読結果から、書き込み先のフラッシュメモリ３２を特定する。
【００５８】
区間P7の直後に続く区間P8で、フラッシュメモリコントローラ１２によりCMD信号が再び非アクティブにされるとともに、S_I/O信号として、フラッシュメモリ３２に書き込まれるべきユーザデータであるデータ（DATA）信号（例えば所定複数バイトのデータ）が供給される。S/P変換回路３０は、区間P7で入力したDAT_ID信号の解読結果に従って、それに後続するDATA信号つまりユーザデータを入力する。S/P変換回路３０は、そのDAT信号を、CMD信号に従って、フラッシュメモリ３２に対するユーザデータとして扱い、これを、P_I/O信号として出力でできようにバイト単位のパラレル信号に変換する（その形式だけをパラレル信号に変換し、ユーザデータの実体内容は変更しない）。
【００５９】
また、上述した区間P8でDAT信号つまりユーザデータの最初のバイトを入力すると、その後の区間P9で、S/P変換回路３０は、区間P7で入力されたDAT_ID信号により特定された書き込み先のフラッシュメモリ３２を、それに対応するCE信号（図示の例ではCE０信号）をアクティブにすることで、イネーブルにする。それとともに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、区間P8で入力されてパラレル信号に変換されたDATA信号つまりユーザデータを、P_I/O信号として、書き込み先のフラッシュメモリ３２へ出力する。それとともに、さらに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、CLE信号とALE信号の双方を非アクティブにして、出力されたP_I/O信号がコマンドでもアドレスでもないことを、書き込み先のフラッシュメモリ３２に知らせる。またさらに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、DATA信号つまりユーザデータの各バイトを出力する都度にWE信号をローレベルに下げてからハイレベルへ立ち上げる。それにより、書き込み先のフラッシュメモリ３２が、WE信号の立上りエッジに同期して、P_I/O信号として出力されたDAT信号つまりユーザデータの各バイトを入力する（このとき、フラッシュメモリ３２内では、ユーザデータはフラッシュメモリ３２内のレジスタに書き込まれるが、メモリセルにはまだ書き込まれない）。S/P変換回路３０は、DATA信号つまりユーザデータの最終バイトがフラッシュメモリ３２に入力され終わるまで、この動作を続ける。
【００６０】
図５に示すように、上述した区間P8の直後に続く区間P10で、フラッシュメモリコントローラ１２によりCMD信号が再びアクティブにされるとともに、S_I/O信号として、その直後にプログラムコマンドが後続することを意味するDAT_ID信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、そのDAT_ID信号を入力する。S/P変換回路３０は、、そのDAT_ID信号を、CMD信号に従って、S/P変換回路３０に対する指示情報として扱い、これを解読する。S/P変換回路３０は、DAT_ID信号の解読結果から、書き込み先のフラッシュメモリ３２を特定する。
【００６１】
区間P10の直後に続く区間P11で、フラッシュメモリコントローラ１２によりCMD信号が再び非アクティブにされるとともに、S_I/O信号として、フラッシュメモリ３２に対するプログラムコマンド（レジスタからメモリセルにデータを書き込むことを指示するコマンド）であるコマンドデータ（CMD_DAT）信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、区間P10で入力したDAT_ID信号の解読結果に従って、それに後続するCMD_DAT信号つまりプログラムコマンドを入力する。S/P変換回路３０は、CMD信号に従って、CMD_DAT信号つまりプログラムコマンドを、フラッシュメモリ３２に対する指示情報として扱い、それを、P_I/O信号として出力できようにバイト単位のパラレル信号に変換する（その信号形式だけを変換し、プログラムコマンドの実体内容は変更しない）。
【００６２】
また、上述した区間P11でCMD_DAT信号つまりプログラムコマンドを入力すると、その後の区間P12で、S/P変換回路３０は、区間P10で入力されたCMD_ID信号により特定された書き込み先のフラッシュメモリ３２を、それに対応するCE信号（図示の例ではCE０信号）をアクティブにすることで、イネーブルにする。それとともに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、区間P11で入力されてパラレル信号に変換されたCMD_DAT信号つまりプログラムコマンドを、P_I/O信号として出力する。それとともに、さらに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、CLE信号をアクティブにして、出力されたP_I/O信号がコマンドであることを、書き込み先のフラッシュメモリ３２に知らせる。さらに、S/P変換回路３０は、DAT_ID信号の解読結果に従って、WE信号をローレベルに下げてからハイレベルへ立ち上げる。それにより、書き込み先のフラッシュメモリ３２が、WE信号の立上りエッジに同期して、P_I/O信号として出力されたCMD_DAT信号つまりプログラムコマンドを入力する。書き込み先のフラッシュメモリ３２は、入力したプログラムコマンドに応答して、そのレジスタに保持されているユーザデータ（区間P9でレジスタに書き込まれたもの）を、アドレス（区間P6で入力したもの）により指定されたメモリセル内の場所に書き込む。
【００６３】
以上が、指定されたフラッシュメモリ３２にデータを書き込む時のS/P変換回路３０の動作である。次に、指定されたフラッシュメモリ３２からデータを読み出す時のS/P変換回路３０の動作を説明する。図６〜図８は（それらを図番順に繋げることで）、書き込み時のS/P変換回路３０の入出力信号を示すタイミングチャートである。
【００６４】
データ読み出しのプロセスの前半部分、すなわち、図６〜図７に示す区間P1〜P6の動作は、上述したデータ書き込みプロセスの図３に示した区間P1〜P6の動作と、次の２つの相違点以外において、同様である。
【００６５】
１つ目の相違点は、最初の区間P1でS_I/O信号としてフラッシュメモリコントローラ１２からS/P変換回路３０へ供給されるDAT_ID信号（例えば１バイトデータ）が、その直後に読み出しコマンドが後続することを意味するデータである点である。このDAT_ID信号には、読み出し元のフラッシュメモリ３２を特定する情報が含まれている。
【００６６】
２つ目の相違点は、区間P2でS_I/O信号としてフラッシュメモリコントローラ１２からS/P変換回路３０へ供給されるCMD_DAT信号（例えば１バイトデータ）が、フラッシュメモリ３２に対する読み出しコマンドである点である。当然、区間P4でP_I/O信号としてS/P変換回路３０からフラッシュメモリ３２へ供給されるCMD_DAT信号も、フラッシュメモリ３２に対する読み出しコマンドである。
【００６７】
図６〜図７に示される区間P6においてADD_DAT信号つまりアドレスの全部がフラッシュメモリ３２に供給されると、その後、図８に示す区間P7で、フラッシュメモリコントローラ１２によりCMD信号が再びアクティブにされるとともに、S_I/O信号として、RE信号を操作してフラッシュメモリ３２からデータを読み出せという指示であるRED_ID信号（例えば１バイトデータ）が供給される。S/P変換回路３０は、そのRED_ID信号を入力する。S/P変換回路３０は、入力したRED_ID信号を、CMD信号に従って、S/P変換回路３０に対する指示情報として扱い、これを解読する。S/P変換回路３０は、RED_ID信号の解読結果から、データ読み出し元のフラッシュメモリ３２を特定する。
【００６８】
区間P7の後の区間P8で、S/P変換回路３０は、区間P7で入力されたRED_ID信号から特定された書き込み先のフラッシュメモリ３２を、それに対応するCE信号（図示の例ではCE０信号）をアクティブにすることで、イネーブルにする。それとともに、S/P変換回路３０は、区間P7で入力されたRED_ID信号の解読結果に従って、CLE信号とALE信号の双方を非アクティブにして、P_I/O信号としてコマンドもアドレスも出力されてないことを、読み出し元のフラッシュメモリ３２に知らせる。さらに、S/P変換回路３０は、RED_ID信号の解読結果に従って、読み出し元のフラッシュメモリ３２がユーザデータの各バイトをP_I/O信号線５０へ読み出すのに適した所定タイミングで、RE信号をローレベルに下げてからハイレベルへ立ち上げる動作を繰り返す。
【００６９】
それにより、区間P9で、読み出し元のフラッシュメモリ３２が、WE信号の立上りエッジに同期して、ADD_DAT信号つまりアドレスにより指定された記憶場所から、ユーザデータをP_I/O信号として読み出す。S/P変換回路３０は、区間P7で入力されたRED_ID信号の解読結果に従って、区間P9でP_I/O信号として読み出されたユーザデータを入力し、これを、S_I/O信号の形式に変換して、区間P10でS_I/O信号としてフラッシュメモリコントローラ１２へ供給する。この後、図示省略されているが、S/P変換回路３０が、ステータスリードコマンドを読み出し元のフラッシュメモリ３２へ供給して、ユーザデータがレジスタに正常に読み出されたことの確認が行われる。
【００７０】
以上が、データ読み出しプロセスでS/P変換回路３０の動作である。
【００７１】
以上説明した本発明の実施形態に係るフラッシュメモリシステム１０によれば、フラッシュメモリコントローラ１２に接続されるフラッシュメモリモジュール１４、１４、…の個数を増やすことで、大容量のフラッシュメモリシステム１０が構成できる。フラッシュメモリコントローラ１２とフラッシュメモリモジュール１４との間インタフェースは、シリアルインタフェース１６であって信号線本数が少ない。特に、１本のS_I/O信号線２４で、S/P変換回路３０に対する指示情報と、フラッシュメモリ３２、３２、…に対する指示情報、並びに、フラッシュメモリ３２、３２、…へ／から書き込み／読み出されるユーザデータを、シーケンシャルに転送するようにしているので、そのシリアルインタフェース１６の信号線本数は、わずか３本にすぎない。その結果、フラッシュメモリモジュール１４、１４、…の個数を増やした場合でも、フラッシュメモリコントローラ１２とフラッシュメモリモジュール１４との間の信号線の総数は、パラレルインタフェースを用いる場合に比べて大幅に少数であり、このように少数の信号線の配置設計は設計者にとり容易である。
【００７２】
また、各フラッシュメモリモジュール１４は既定設計の１モジュール又は１パッケージとして、フラッシュメモリシステム１０の設計者に提供されることができる。フラッシュメモリシステム１０を大容量にするために同システム１０内のフラッシュメモリの３２、３２、…の総数をいかに増やしても、フラッシュメモリシステム１０の設計者は、各フラッシュメモリモジュール１４それ自体の設計、例えば、S/P変換回路３０とフラッシュメモリ３２、３２、…との間のパラレルインタフェース３４の信号線の配置の設計には、悩まされなくてよい。
【００７３】
また、フラッシュメモリコントローラ１２は、多数のフラッシュメモリ３２、３２、…に並列にアクセスすることができるから、高速なデータ転送が可能である。
【００７４】
さらに、S/P変換回路３０が行う、フラッシュメモリ３２、３２、…に対する情報（コマンド、アドレス及びユーザデータなど）に対する操作は、シリアルとパラレルの信号形式の変換とそれに伴う転送タイミングの調整に過ぎず、その情報の実体内容の変更は行わないので、S/P変換回路３０の構成は、比較的に簡単なもので済む。
【００７５】
このような上述した実施形態にかかるフラッシュメモリシステムは、同システムの設計者にとり簡単に設計できるとともに、多数のフラッシュメモリ３２、３２、…への並列アクセスにより、大容量で且つ高速な転送速度という優れた性能を発揮することができる。それにより、ホストインタフェース１８に例えばSATAのような高速なインタフェースを用いた場合、そのホストインタフェース１８のもつ高速性を十分に活かした高速データ転送が可能である。
【００７６】
また、上述した実施形態にかかるフラッシュメモリシステムは、或るフラッシュメモリモジュール１４で故障やエラー多発のような問題が生じた場合に、その異常なフラッシュメモリモジュール１４を他の正常なフラッシュメモリモジュール１４で代替することがように構成することもできる。それは、例えば、異常なフラッシュメモリモジュール１４に記憶されている全てのユーザデータをフラッシュメモリコントローラ１２又はホストシステムへ読み出すとともに、その読み出されたユーザデータの全てを別の正常なフラッシュメモリモジュール１４へ書き込むというコピー動作を行うことにより実現することができる。このようなコピー動作を実行するための専用のコマンドのセットを、ホストシステムからフラッシュメモリコントローラ１２へ供給される指示情報、及び/又は、フラッシュメモリコントローラ１２からフラッシュメモリモジュール１４内のS/P変換回路３０へ供給される指示情報として、上述した書き込みや読み出しなどの通常のアクセス動作のための指示情報の他に、設けてもよい。
【００７７】
以上説明した実施形態は、本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、上記実施形態以外の種々の態様で実施することができるものである。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態に係るフラッシュメモリシステムの全体構成を示すブロック図。
【図２】S/P変換回路のシリアルインタフェースとパラレルインタフェースの信号構成を示すブロック図。
【図３】フラッシュメモリにデータを書き込む時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【図４】フラッシュメモリにデータを書き込む時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【図５】フラッシュメモリにデータを書き込む時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【図６】フラッシュメモリからデータを読み出す時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【図７】フラッシュメモリからデータを読み出す時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【図８】フラッシュメモリからデータを読み出す時のS/P変換回路３０の入出力信号を示すタイミングチャート。
【符号の説明】
【００７９】
１０  フラッシュメモリシステム
１２  フラッシュメモリコントローラ
１４  フラッシュメモリモジュール
１６  シリアルインタフェース
２０  タイミングクロック（CLK）信号線
２２  コマンド（CMD）信号線
２４  シリアル入出力（S_I/O）信号線
３０  シリアル・パラレル（S/P）変換回路
３２  フラッシュメモリ
３４  パラレルインタフェース
４０  チップイネーブル（CE）信号線
４２  コマンドラッチイネーブル（CLE）信号線
４４  アドレスラッチイネーブル（ALE）信号線
４６  ライトイネーブル（WE）信号線
４８  リードイネーブル（RE）信号線
５０  パラレル入出力（P_I/O）信号線
【図１】
2008305316.tif 000003
【図２】
2008305316.tif 000004
【図３】
2008305316.tif 000005
【図４】
2008305316.tif 000006
【図５】
2008305316.tif 000007
【図６】
2008305316.tif 000008
【図７】
2008305316.tif 000009
【図８】
2008305316.tif 000010