(57)【要約】【課題】  フラッシュメモリへのアクセスの制御動作の実行速度を低下させることなく、レジスタの数を少なくすることができるフラッシュメモリシステムを実現する。【解決手段】  フラッシュメモリに対するアクセス制御を行うメモリコントローラにはＲＯＭ２６が設けられている。ＲＯＭ２６に、制御動作をそれぞれ示す動作命令コードを纏めたコードセットを複数組記憶させておき、ホストシステムから与えられた指示情報に基づきコードセットを選択し、選択したコードセットに含まれる動作命令コードをＢレジスタ２３ｃに順次保持させ、Ａレジスタ２３ｂに順次転送する。Ａレジスタ２３ｂに転送されて保持された動作命令コードに対応する動作が、命令処理ブロック２３ａにより、実行される。【選択図】  図３
2006209625.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段と、
前記指示情報に応答して前記記憶手段に記憶されている前記コードセットを選択する選択手段と、
前記選択手段によって選択された前記コードセットに含まれる前記動作命令コードを読出す命令コード読出し手段と、
前記命令コード読出し手段によって読出された前記動作命令コードを保持する命令コード保持手段と、
前記命令コード保持手段が保持する前記動作命令コードに基づいて動作する実行手段とを備え、
前記命令コード保持手段は、第１の命令コード保持部と第２の命令コード保持部とを有し、
前記命令コード読出し手段によって読出された前記動作命令コードは、前記第１の命令コード保持部に保持された後、前記第２の命令コード保持部に転送され、前記実行手段は前記第２の命令コード保持部に保持されている前記動作命令コードに基づいて前記動作を実行することを特徴とするメモリコントローラ。
【請求項２】
前記命令コード読出し手段が、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出すことを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記命令コード保持手段が前記実行手段からの要求に応答して、前記第１の命令コード保持部に保持されている前記動作命令コードを前記第２の命令コード保持部に転送することを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記第１の命令コード保持部に保持されている前記動作命令コードが前記第２の命令コード保持部に転送されたことに応答して、前記コードセットに含まれる前記動作命令コードが前記命令コード読出し手段によって読出され、その読出された動作命令コードが前記第１の命令コード保持部に保持されることを特徴とする請求項１乃至３のいずれか１項に記載のメモリコントローラ。
【請求項５】
請求項１乃至４のいずれか１項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項６】
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段から、前記指示情報に対応するコードセットを選択する選択処理と、
前記選択処理によって選択されたコードセットに含まれる前記動作命令コードを読出す読出し処理と、
前記読出し処理によって読出された動作命令コードを、第１の命令コード保持部に保持する取込処理と、
前記第１の命令コード保持部に保持されている前記動作命令コードを、第２の命令コード保持部に転送する転送処理と、
前記第２の命令コード保持部に保持されている前記動作命令コードに基づいた動作を実行することにより前記制御を行う実行処理と、
を含むことを特徴とするフラッシュメモリの制御方法。
【請求項７】
前記読出し処理は、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出すことを特徴とする請求項６に記載のフラッシュメモリの制御方法。
【請求項８】
前記実行処理が次の前記動作命令コードに基づいた制御に移行するのに応答して、前記転送処理が実行されることを特徴とする請求項６又は７に記載のフラッシュメモリの制御方法。
【請求項９】
前記転送処理が実行されたことに応答して、前記読出し処理と前記取込処理が実行されることを特徴とする請求項６乃至８のいずれか１項に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。
【０００４】
ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
ＮＡＮＤ型フラッシュメモリにアクセスするときには、ＮＡＮＤ型フラッシュメモリに対してコマンドやアドレス等の情報を所定の順序で与えなければならない。つまり、ＮＡＮＤ型フラッシュメモリに対するアクセスでは、一連の制御動作が連続的に実行される。この一連の制御動作は、読出し処理や書込み処理等の処理の内容に応じて動作パターンが異なっている。
【０００６】
特許文献１では、レジスタ群に一連の制御動作を実行するための動作指示情報を格納し、レジスタ群に格納された動作指示情報に基づいて一連の制御動作を実行させている。従って、レジスタ群には、一連の制御動作に含まれる各動作を指示する情報が全て格納されている。
【特許文献１】特開２００２−２７８７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１では、一連の制御動作に含まれる各動作を指示する情報を全てレジスタ群に格納しているため、多数のレジスタによってレジスタ群を構成しなければならない。一方、レジスタの数を少なくするために、一連の制御動作に含まれる各動作が実行される毎に、次の動作を指示する情報をレジスタに設定した場合には、一連の制御動作の実行速度が低下する。つまり、多数のレジスタによってレジスタ群を構成した場合には、実行速度は速いがコスト高になり、レジスタの数を少なくした場合には、コストを下げることができるが実行速度が低下する。
【０００８】
そこで、本発明は、一連の制御動作の実行速度を低下させることなく、一連の制御動作に含まれる各動作を指示する情報を格納するレジスタの数を少なくすることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段と、
前記指示情報に応答して前記記憶手段に記憶されている前記コードセットを選択する選択手段と、
前記選択手段によって選択された前記コードセットに含まれる前記動作命令コードを読出す命令コード読出し手段と、
前記命令コード読出し手段によって読出された前記動作命令コードを保持する命令コード保持手段と、
前記命令コード保持手段が保持する前記動作命令コードに基づいて動作する実行手段とを備え、
前記命令コード保持手段は、第１の命令コード保持部と第２の命令コード保持部とを有し、
前記命令コード読出し手段によって読出された前記動作命令コードは、前記第１の命令コード保持部に保持された後、前記第２の命令コード保持部に転送され、前記実行手段は前記第２の命令コード保持部に保持されている前記動作命令コードに基づいて前記動作を実行することを特徴とする。
【００１０】
このような構成を採用したことにより、動作命令コードが纏められたコードセットが記憶手段に記憶されている。ホストシステムからの指示情報に応じてコードセットが選択手段で選択され、そのコードセットに含まれる動作命令コードが、第１の命令コード保持手段に保持され、第２の命令コード保持手段に転送される。第２の命令コード保持手段に保持された動作命令コードに基づく動作が実行手段により実行される。
【００１１】
尚、前記命令コード読出し手段が、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出してもよい。
【００１２】
また、前記命令コード保持手段が前記実行手段からの要求に応答して、前記第１の命令コード保持部に保持されている前記動作命令コードを前記第２の命令コード保持部に転送してもよい。
【００１３】
また、前記第１の命令コード保持部に保持されている前記動作命令コードが前記第２の命令コード保持部に転送されたことに応答して、前記コードセットに含まれる前記動作命令コードが前記命令コード読出し手段によって読出され、その読出された動作命令コードが前記第１の命令コード保持部に保持されてもよい。
【００１４】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステムは、本発明第１の観点に係るメモリコントローラとフラッシュメモリを備えることを特徴とする。
【００１５】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、
ホストシステムから与えられる指示情報に応じて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記制御の動作をそれぞれ示す動作命令コードが纏められたコードセットを複数組記憶している記憶手段から、前記指示情報に対応するコードセットを選択する選択処理と、
前記選択処理によって選択されたコードセットに含まれる前記動作命令コードを読出す読出し処理と、
前記読出し処理によって読出された動作命令コードを、第１の命令コード保持部に保持する取込処理と、
前記第１の命令コード保持部に保持されている前記動作命令コードを、第２の命令コード保持部に転送する転送処理と、
前記第２の命令コード保持部に保持されている前記動作命令コードに基づいた動作を実行することにより前記制御を行う実行処理と、
を含むことを特徴とする。
【００１６】
尚、前記読出し処理は、前記コードセットに含まれる前記動作命令コードを、該動作命令コードの実行順序に従って読出してもよい。
【００１７】
また、前記実行処理が次の前記動作命令コードに基づいた制御に移行するのに応答して、前記転送処理が実行されてもよい。
【００１８】
また、前記転送処理が実行されたことに応答して、前記読出し処理と前記取込処理が実行されてもよい。
【発明の効果】
【００１９】
本発明によれば、フラッシュメモリシステム内で実行される一連の制御動作の実行速度を低下させることなく、一連の制御動作に含まれる各動作を指示する情報を格納するレジスタの数を少なくすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明の実施形態に係るフラッシュメモリシステムを概略的に示すブロック図である。
図１に示したように、フラッシュメモリシステム１０は、フラッシュメモリ１１と、それを制御するメモリコントローラ２０とで構成されている。このフラッシュメモリシステム１０は、通常、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理機器のホストシステム３０に内蔵される。
以下に、フラッシュメモリ１１及びメモリコントローラ２０の詳細と、フラッシュメモリシステム１０の動作とを説明する。
【００２１】
[フラッシュメモリ１１の説明]
このフラッシュメモリシステム１０において、データが記憶されるフラッシュメモリ１１は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００２２】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００２３】
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム３０側から与えられる論理アドレスと、フラッシュメモリ１１内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ１１にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ１１に対するアクセスが行なわれる。
【００２４】
図２は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ１１の仕様によって異なるが、一般的なフラッシュメモリでは、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。
【００２５】
ここで、ユーザー領域は、主に、ホストシステム３０から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００２６】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
【００２７】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００２８】
次に、フラッシュメモリ１１の回路構成について説明する。
一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００２９】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行っている。
【００３０】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込状態）が、論理値"０"のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値"１"のデータに対応する。
【００３１】
[メモリコントローラ２０の説明]
メモリコントローラ２０は、ホストインターフェースブロック２１と、マイクロプロセッサ２２と、フラッシュメモリインターフェースブロック２３と、ＥＣＣ（エラー・コレクション・コード）ブロック２４と、バッファ２５と、ＲＯＭ（Read Only Memory）２６と、ＳＲＡＭ（Static Random Access Memory）２７で構成されている。これら機能ブロックによって構成されるメモリコントローラ２０は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
【００３２】
ホストインターフェースブロック２１は、フラッシュメモリシステム１０を、ホストシステム３０に接続するためのブロックである。ホストインターフェースブロック２１には、ホストシステム３０側から供給される論理アドレス、セクタ数及び外部コマンド（ホストシステム３０からフラッシュメモリシステム１０に与えられるコマンド）等を保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタが設けられている。
【００３３】
マイクロプロセッサ２２は、メモリコントローラ２０を構成する各機能ブロック全体の、動作を制御する機能ブロックである。又、論理アドレス（フラッシュメモリシステム１０に対して与えられるアドレス）と物理アドレス（フラッシュメモリ１１内のアドレス）の対応関係を示す変換テーブルは、マイクロプロセッサ２２の制御の下、ＳＲＡＭ２７上に作成される。
【００３４】
バッファ２５は、フラッシュメモリ１１に書き込むデータ又はフラッシュメモリ１１から読出したデータを一時的に保持するブロックであり、ＦＩＦＯ（First In First Out）型のバッファで構成されている。フラッシュメモリ１１に書き込むデータは、ホストインターフェースブロック２１を介してバッファ２５に供給され、フラッシュメモリ１１から読出したデータは、ホストインターフェースブロック２１を介してホストシステム３０側に出力される。
【００３５】
フラッシュメモリインターフェースブロック２３は、バッファ２５からフラッシュメモリ１１への書込み処理やフラッシュメモリ１１からバッファ２５への読出し処理を制御するブロックである。書込み処理や読出し処理を実行するときの一連の制御動作は、ＲＯＭ２６に記憶されている一連の制御動作を指示する情報に基づいて実行される。この一連の制御動作に含まれる各制御動作を指示する情報を、以下、動作命令コードという。動作命令コードは、フラッシュメモリインターフェースブロック２３内のレジスタに読出され、レジスタに読出された動作命令コードに従って制御動作が実行される。
【００３６】
図３は、フラッシュメモリインターフェースブロック２３の構成とＳＲＡＭ２７とＲＯＭ２６を示す構成図である。
フラッシュメモリインターフェースブロック２３は、命令処理ブロック２３ａ、Ａレジスタ(Ａ−ＲＥＧ)２３ｂ、Ｂレジスタ(Ｂ−ＲＥＧ)２３ｃ、レジスタ制御ブロック２３ｄ、アドレスレジスタ２３ｅ及び付加情報レジスタ２３ｆによって構成されている。
【００３７】
命令処理ブロック２３ａは、動作命令コードに従った動作を実行するブロックである。Ａレジスタ２３ｂ及びＢレジスタ２３ｃは、命令処理ブロック２３ａに与える動作命令コードを保持するレジスタである。レジスタ制御ブロック２３ｄは、Ａレジスタ２３ｂ及びＢレジスタ２３ｃの動作を制御するブロックである。アドレスレジスタ２３ｅは、フラッシュメモリ１１に与える物理アドレス（フラッシュメモリ１１内のブロックドレス又はページアドレス）を保持するレジスタである。付加情報レジスタ２３ｆは、フラッシュメモリ１１の冗長領域に書き込まれる情報を保持するレジスタである。
【００３８】
ＥＣＣブロック２４は、フラッシュメモリ１１に書き込むデータに付加されるエラーコレクションコードを生成するブロックである。このエラーコレクションコードは、通常、フラッシュメモリの冗長領域に書込まれる。フラッシュメモリ１１からデータを読出すときは、データと共に読出されるエラーコレクションコードに基づいて、読出したデータに含まれる誤りの検出と訂正が、ＥＣＣブロック２４によって行われる。
【００３９】
ＳＲＡＭ２７は、作業領域として使用される記憶領域を備え、上記変換テーブルのようなフラッシュメモリ１１にアクセスするときに必要な情報は、ＳＲＡＭ２７上で管理される。
【００４０】
ＲＯＭ２６には、マイクロプロセッサ２２によって実行されるプログラムや各種の設定情報が記憶されている。又、上述の一連の制御動作を指示する情報は、複数の動作命令コードを含むコードセットとしてＲＯＭ２６に記憶されている。
【００４１】
［フラッシュメモリシステム１０の動作の説明］
メモリコントローラ２０は、ホストシステム３０側から与えられる論理アドレス、セクタ数及び外部コマンド（ホストシステム３０からフラッシュメモリシステム１０に与えられるコマンド）等に基づいて、フラッシュメモリ１１に対するアクセスを制御する。
【００４２】
ホストシステム３０側から与えられる論理アドレス、セクタ数及び外部コマンド等は、ホストインターフェースブロック２１内のレジスタに保持される。ホストシステム３０側から与えられる書込みデータは、ホストインターフェースブロック２１の制御により、バッファ２５に保持される。フラッシュメモリ１１から読出されてバッファ２５に保持された読出しデータは、ホストインターフェースブロック２１の制御のもと、ホストシステム３０側に転送される。
【００４３】
次に、メモリコントローラ２０によって実行されるフラッシュメモリ１１に対するアクセス制御について説明する。
フラッシュメモリ１１に対するアクセス制御は、マイクロプロセッサ２２の制御のもと、フラッシュメモリインターフェースブロック２３によって実行される。
【００４４】
フラッシュメモリインターフェースブロック２３によって実行される一連の制御動作は、ＲＯＭ２６に記憶されているコードセットに含まれる動作命令コードに従って実行される。コードセットは一連の制御動作に含まれる各制御動作に対応する動作命令コードを含んでいる。フラッシュメモリ１１に対するアクセス制御では、マイクロプロセッサ２２が、ホストインターフェースブロック２１内のレジスタに保持されている外部コマンド等に基づいて、ＲＯＭ２６に記憶されている複数のコードセットからフラッシュメモリインターフェースブロック２３に与えるコードセットを選択する。
【００４５】
図４は、コードセットに含まれる動作命令コードが読出される過程を示した模式図であり、図３及び図４を参照して、マイクロプロセッサ２２によって選択されたコードセットに含まれる動作命令コードが命令処理ブロック２３ａに与えられるまでの流れを説明する。
【００４６】
ＲＯＭ２６に記憶されている複数のコードセットからマイクロプロセッサ２２によって選択されたコードセットは、ＲＯＭ２６からＳＲＡＭ２７に読出される。
例えば、コードセット０（ＣＳ０）が選択された場合、コードセット０（ＣＳ０）に含まれる動作命令コードがＲＯＭ２６からＳＲＡＭ２７に読出される。コードセット０（ＣＳ０）が、動作命令コード０（Ｃ０）、動作命令コード１（Ｃ１）、動作命令コード２（Ｃ２）、動作命令コード３（Ｃ３）、動作命令コード４（Ｃ４）及び動作命令コード５（Ｃ５）の６つの動作命令コードで構成されていた場合、レジスタ制御ブロック２３ｄの制御のもと、これらの動作命令コードがＳＲＡＭ２７からフラッシュメモリインターフェースブロック２３のＢレジスタ２３ｃに読込まれる。Ｂレジスタ２３ｃに読込まれた動作命令コードは、Ａレジスタ２３ｂに転送され、Ａレジスタ２３ｂに保持される。命令処理ブロック２３ａは、Ａレジスタ２３ｂに保持されている動作命令コードを読込み、動作命令コードに従った動作を実行する。
【００４７】
図５は、Ｂレジスタ２３ｃからＡレジスタ２３ｂへの動作命令コードの転送と一連の制御動作を説明するための図である。図５を参照して、図４に示したコードセット０（ＣＳ０）に含まれる動作命令コードがＢレジスタ２３ｃに読込まれ、Ａレジスタ２３ｂに転送される流れを説明する。
【００４８】
Ｂレジスタ２３ｃへの動作命令コードの読込み、Ｂレジスタ２３ｃからＡレジスタ２３ｂへの動作命令コードの転送は、レジスタ制御ブロック２３ｄによって制御されている。
コードセット０（ＣＳ０）に含まれる最初の動作命令コード０（Ｃ０）は、Ｂレジスタ２３ｃに読込まれ、命令処理ブロック２３ａから出力される次の動作命令コードを要求する信号に応答してＡレジスタ２３ｂへ転送される。命令処理ブロック２３ａは、Ａレジスタ２３ｂに保持された動作命令コード０（Ｃ０）を読込み、動作命令コード０（Ｃ０）に対応した動作を実行する。レジスタ制御ブロック２３ｄは、動作命令コード０（Ｃ０）をＢレジスタ２３ｃからＡレジスタ２３ｂへ転送した後、次の動作命令コードである動作命令コード１（Ｃ１）をＢレジスタ２３ｃに読込む。
【００４９】
Ｂレジスタ２３ｃに読込まれた動作命令コード１（Ｃ１）は、命令処理ブロック２３ａから出力される次の動作命令コードを要求する信号に応答してＡレジスタ２３ｂへ転送される。命令処理ブロック２３ａは、Ａレジスタ２３ｂに保持された動作命令コード１（Ｃ１）を読込み、動作命令コード１（Ｃ１）に対応した動作を実行する。レジスタ制御ブロック２３ｄは、動作命令コード１（Ｃ１）をＢレジスタ２３ｃからＡレジスタ２３ｂへ転送した後、次の動作命令コードである動作命令コード２（Ｃ２）をＢレジスタ２３ｃに読込む。
【００５０】
以下同様に、レジスタ制御ブロック２３ｄは、命令処理ブロック２３ａから出力される次の動作命令コードを要求する信号に応答して、Ｂレジスタ２３ｃに保持されている動作命令コードをＡレジスタ２３ｂに転送する。Ｂレジスタ２３ｃに保持されている動作命令コードをＡレジスタ２３ｂに転送した後、次の動作命令コードがＢレジスタ２３ｃに読込まれる。このようにしてＡレジスタ２３ｂに保持された動作命令コードが、命令処理ブロック２３ａによって読込まれ、動作命令コード０（Ｃ０）、動作命令コード１（Ｃ１）、動作命令コード２（Ｃ２）、動作命令コード３（Ｃ３）、動作命令コード４（Ｃ４）及び動作命令コード５（Ｃ５）に対応する動作が、順次実行される。
【００５１】
上述のようにして、コードセットに含まれる動作命令コードをＢレジスタ２３ｃに順次読出し、Ｂレジスタ２３ｃに読出した動作命令コードをＡレジスタ２３ｂに転送するようにすれば、Ａレジスタ２３ｂ及びＢレジスタ２３ｃだけで命令処理ブロック２３ａに対して遅延なく動作命令コードを与えることができる。
【００５２】
尚、上記動作命令コードには、フラッシュメモリ１１に対して制御信号、コマンド、アドレス又は書込みデータ等を出力することを指示するものや、分岐条件に基づいた分岐先を指示するものや、フラッシュメモリ１１のビジー状態が解除されるのを待つことを指示するもの等がある。又、コードセットに含まれる動作命令コードは、通常は記述されている順番に読出されるが、分岐先を指示する動作命令コードが含まれている場合は、レジスタ制御ブロック２３ｄが、分岐先を指示する動作命令コードに従って次に読出す動作命令コードを決定する。従って、分岐先を指示する動作命令コードが含まれている場合は、分岐条件に基づいて分岐先の動作命令コードが読出される。
【００５３】
例えば、書込み処理に対応するコードセットが選択された場合、コードセットには、フラッシュメモリ１１の書込みプロテクトを解除することを指示する動作命令コード、フラッシュメモリ１１に対して書込みコマンドを出力することを指示する動作命令コード、フラッシュメモリ１１に対してアドレスを出力することを指示する動作命令コード、フラッシュメモリ１１に対してバッファ２５に保持されているデータを転送することを指示する動作命令コード、フラッシュメモリ１１に対して付加情報レジスタ２３ｆに保持されているデータを転送することを指示する動作命令コード、フラッシュメモリ１１内の送受信バッファに保持されているデータをセルアレイに複写する書込み実行コマンドを出力することを指示する動作命令コード等が、含まれている。
【００５４】
フラッシュメモリ１１の書込みプロテクトを解除することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、書込みプロテクトを解除する制御信号を出力する。この書込みプロテクトを解除する制御信号を出力することにより、フラッシュメモリ１１に対する書込みが可能になる。
【００５５】
フラッシュメモリ１１に対して書込みコマンドを出力することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、コマンドラッチイネーブル等の制御信号と共に書込みコマンドを出力する。出力された書込みコマンドは、フラッシュメモリ１１にコマンドとして受信される。
【００５６】
フラッシュメモリ１１に対してアドレスを出力することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、アドレスラッチイネーブル等の制御信号と共にアドレスを出力する。出力されたアドレスは、フラッシュメモリ１１に書込み先を指示するアドレスとして受信される。
【００５７】
フラッシュメモリ１１に対してバッファ２５に保持されているデータを転送することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、データライトイネーブル等の制御信号と共にバッファ２５に保持されているデータを出力する。バッファ２５から出力されたデータは、フラッシュメモリ１１内の送受信バッファに保持される。
【００５８】
フラッシュメモリ１１に対して付加情報レジスタ２３ｆに保持されているデータを転送することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、データライトイネーブル等の制御信号と共に付加情報レジスタ２３ｆに保持されているデータを出力する。付加情報レジスタ２３ｆから出力されたデータは、フラッシュメモリ１１内の送受信バッファに保持される。
【００５９】
フラッシュメモリ１１内の送受信バッファに保持されているデータをセルアレイに複写する書込み実行コマンドを出力することを指示する動作命令コードが読込まれると、命令処理ブロック２３ａは、コマンドラッチイネーブル等の制御信号と共に書込み実行コマンドを出力する。出力された書込み実行コマンドは、フラッシュメモリ１１にコマンドとして受信され、フラッシュメモリ１１は送受信バッファに保持されているデータをセルアレイに複写する。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態に係るフラッシュメモリシステムのブロック図である。
【図２】ブロックとページの関係を示す説明図である。
【図３】フラッシュメモリインターフェースブロックの構成とＳＲＡＭとＲＯＭを示すブロック図である。
【図４】コードセットに含まれる動作命令コードが読出される過程を示した模式図である。
【図５】ＢレジスタからＡレジスタへの動作命令コードの転送と一連の制御動作を説明するための図である。
【符号の説明】
【００６１】
１０      フラッシュメモリシステム
１１      フラッシュメモリ
２０      メモリコントローラ
２１      ホストインターフェースブロック
２２      マイクロプロセッサ
２３      フラッシュメモリインターフェースブロック
２３ａ    命令処理ブロック
２３ｂ    Ａレジスタ
２３ｃ    Ｂレジスタ
２３ｄ    レジスタ制御ブロック
２３ｅ    アドレスレジスタ
２３ｆ    付加情報レジスタ
２４      ＥＣＣブロック
２５      バッファ
２６      ＲＯＭ
２７      ＳＲＡＭ
３０      ホストシステム
【図１】
2006209625.tif 000003
【図２】
2006209625.tif 000004
【図３】
2006209625.tif 000005
【図４】
2006209625.tif 000006
【図５】
2006209625.tif 000007