(57)【要約】【課題】不揮発性半導体メモリへアクセスするために必要なＣＰＵの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラを提供する。【解決手段】フラッシュメモリ１０へアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリ２３と、フラッシュメモリ１０へアクセスするために必要な命令コードが格納された、命令テーブルメモリ２３内の読み出し番地が設定されるプログラムカウンタ２２と、命令テーブルメモリ２３から読み出された命令コードをデコードしてデコード信号を出力するデコーダ２４と、デコーダ２４から出力されたデコード信号に基づいて、フラッシュメモリ１０へのアクセスを実行する実行部２５とを備える。【選択図】図１
2010224806.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、
前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、
前記命令テーブルメモリから読み出された命令コードをデコードして第１デコード信号を出力する第１デコーダと、
前記第１デコーダから出力された前記第１デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する第１実行部と、
を具備することを特徴とするコントローラ。
【請求項２】
外部から入力されたコマンドをデコードして第２デコード信号を出力する第２デコーダと、
前記第２デコーダから出力された前記第２デコード信号に基づいて、前記読み出し番地を前記プログラムカウンタに設定する第２実行部と、
をさらに具備することを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記第２実行部と前記プログラムカウンタとの間には、前記プログラムカウンタに前記読み出し番地の設定を行うための専用配線が配置されていることを特徴とする請求項２に記載のコントローラ。
【請求項４】
前記命令テーブルメモリは、前記命令コードを自由な順番で連続してアクセスするための命令コードを、さらに格納することを特徴とする請求項１乃至３のいずれかに記載のコントローラ。
【請求項５】
不揮発性半導体メモリへアクセスするための情報が記憶されるレジスタと、
外部から入力されたコマンドをデコードしてデコード信号を出力するデコーダと、
前記デコーダから出力された前記デコード信号に基づいて、前記レジスタに前記不揮発性半導体メモリへアクセスするための前記情報を設定する実行部と、
前記レジスタに記憶された前記情報に従って、前記不揮発性半導体メモリにアクセスする入出力制御回路と、
を具備することを特徴とするコントローラ。
【請求項６】
電気的にデータの書き換えが可能な不揮発性半導体メモリと、
前記不揮発性半導体メモリの動作を制御するコントローラとを有し、
前記コントローラは、
前記不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、
前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、
前記命令テーブルメモリから読み出された命令コードをデコードしてデコード信号を出力するデコーダと、
前記デコーダから出力された前記デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する実行部と、
を具備することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリの動作を制御するコントローラ、及び不揮発性半導体メモリとそのコントローラを含む半導体記憶装置に関し、例えばフラッシュメモリの動作を制御するコントローラ、及びフラッシュメモリとそのコントローラを含む半導体記憶装置に関するものである。
【背景技術】
【０００２】
従来の手法による、フラッシュメモリの動作を制御するコントローラを含む半導体記憶装置における動作の一例を以下に説明する。フラッシュメモリとコントローラを含む半導体記憶装置には、ホスト機器が接続される。ホスト機器は、半導体記憶装置にコマンドやデータを送信し、半導体記憶装置との間でデータの授受を行う。ホスト機器としては、例えば、デジタルカメラ、携帯電話機、及びノート型パーソナルコンピュータなどの携帯型電子機器がある。
【０００３】
ホスト機器からコントローラにコマンドが発行されると、コントローラ内のコマンドラッチ回路にコマンドが一時的に記憶される。続いて、コントローラ内のＣＰＵ（Central Processing Unit）がそのコマンドを読み取り、フラッシュメモリへアクセスするために必要なシーケンスをコントローラ内の複数のレジスタに設定する。さらに、ＣＰＵは、複数のレジスタに対応する有効ビットレジスタを設定し、さらにコントローラ内のデータＲＡＭの利用有無を設定する。
【０００４】
全ての設定が完了すると、ダイレクトメモリアクセス(以下、ＤＭＡと記す)スタートが実施され、フラッシュメモリへのアクセスが開始される。このアクセスが終了すると、ＣＰＵにアクセス終了が通知される。続けて、フラッシュメモリへアクセスする場合、前記複数のレジスタ及び有効ビットレジスタを再設定する。全てのレジスタの設定が完了すると、ＤＭＡスタートが実施され、フラッシュメモリへ次のアクセスが開始される。ＤＭＡとは、ＣＰＵを介さずに、ホスト機器等の装置とメモリデバイスとが、直接、データの授受を行う処理をいう。
【０００５】
フラッシュメモリへの必要なシーケンスが完了すると、ＣＰＵはホスト機器側にレディ信号を返し、次のコマンドの入力を待つ待機状態になる。その後、ホスト機器から次のコマンドが発行されると、コントローラは前述と同様の動作を繰り返す。
【０００６】
前述した従来手法では、フラッシュメモリへ発行する多種多様なコマンドシーケンスに合わせて、ＣＰＵが各レジスタを設定する必要がある。ホスト機器からの１つのコマンド要求に対して、フラッシュメモリへのアクセスが複数シーケンス必要な場合もしばしばあり、その度にＣＰＵが各レジスタを設定する時間が必要となる。この結果、ＣＰＵの占有時間が支配的となり、フラッシュメモリへのアクセス性能が悪くなるという問題が生じている。詳述すると、ホスト機器がコントローラにアクセスを開始してから、すなわちコントローラにコマンドが入力されてから、実際にフラッシュメモリへのアクセスが終了するまでの時間が長くなるという問題が生じている。図７の（Ｄ）に、従来例の半導体記憶装置における各部のアクセス時間を示す。
【０００７】
なお、例えば特許文献１には、メモリセルアレイにアクセスするために必要な情報を設定する複数のレジスタと、レジスタに設定された情報に基づいてメモリセルアレイにアクセスするシーケンサを備えた不揮発性半導体記憶装置が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１４１８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、不揮発性半導体メモリへアクセスするために必要なＣＰＵの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラ及び半導体記憶装置を提供する。
【課題を解決するための手段】
【００１０】
本発明の第１実施態様のコントローラは、不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、前記命令テーブルメモリから読み出された命令コードをデコードして第１デコード信号を出力する第１デコーダと、前記第１デコーダから出力された前記第１デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する第１実行部とを具備することを特徴とする。
【００１１】
本発明の第２実施態様のコントローラは、不揮発性半導体メモリへアクセスするための情報が記憶されるレジスタと、外部から入力されたコマンドをデコードしてデコード信号を出力するデコーダと、前記デコーダから出力された前記デコード信号に基づいて、前記レジスタに前記不揮発性半導体メモリへアクセスするための前記情報を設定する実行部と、前記レジスタに記憶された前記情報に従って、前記不揮発性半導体メモリにアクセスする入出力制御回路とを具備することを特徴とする。
【００１２】
本発明の第３実施態様の半導体記憶装置は、電気的にデータの書き換えが可能な不揮発性半導体メモリと、前記不揮発性半導体メモリの動作を制御するコントローラとを有し、前記コントローラは、前記不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、前記命令テーブルメモリから読み出された命令コードをデコードしてデコード信号を出力するデコーダと、前記デコーダから出力された前記デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する実行部とを具備することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、不揮発性半導体メモリへアクセスするために必要なＣＰＵの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラ及び半導体記憶装置を提供可能である。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態の半導体記憶装置の構成を示すブロック図である。
【図２】第１実施形態の半導体記憶装置の動作を示すフローチャートである。
【図３】本発明の第２実施形態の半導体記憶装置の構成を示すブロック図である。
【図４】第２実施形態の半導体記憶装置の動作を示すフローチャートである。
【図５】本発明の第３実施形態の半導体記憶装置の構成を示すブロック図である。
【図６】第３実施形態の半導体記憶装置の動作を示すフローチャートである。
【図７】本発明の実施形態と従来例の半導体記憶装置におけるアクセス時間を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。実施形態は、全てコントローラを含む半導体記憶装置について説明する。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１６】
［第１実施形態］
まず、本発明の第１実施形態の半導体記憶装置について説明する。
【００１７】
図１は、第１実施形態の半導体記憶装置の構成を示すブロック図である。
【００１８】
図示するように、半導体記憶装置１００は、電気的にデータの書き換えが可能な不揮発性半導体メモリ、例えばフラッシュメモリ１０と、コントローラ２０を備える。ここでは、不揮発性半導体メモリとして、フラッシュメモリ１０を用いた例を示すが、その他の不揮発性半導体メモリを用いてもよい。フラッシュメモリ１０としては、例えばＮＡＮＤ型フラッシュメモリあるいはＮＯＲ型フラッシュメモリなどを用いることができる。コントローラ２０は、ホスト機器２００からコマンドやデータ等の信号を受け取り、フラッシュメモリ１０の動作を制御する。
【００１９】
コントローラ２０は、コマンドラッチ回路２１、プログラムカウンタ（ＰＣ）２２、命令テーブルメモリ２３、デコーダ２４、実行部２５、入出力制御回路２６、データＲＡＭ２７、ＣＰＵ２８、及びバス２９を含む。
【００２０】
コマンドラッチ回路２１は、ホスト機器２００から出力されたコマンドやデータ等の信号を一時的に記憶する。命令テーブルメモリ２３には、フラッシュメモリ１０へアクセスするための多種多様なシーケンスをコード化した命令コードが予め格納されている。多種多様なシーケンスのコード化とは、例えば、ホスト機器２００からの１つのライトコマンド要求に対して、フラッシュメモリ１０に、イレースコマンド→ステータスリードコマンド→ライトコマンド→ステータスリードコマンドと一連のコマンドを必要とした場合、これを１つのシーケンスとしてコード化することである。このコード化によって生成した命令コードをセットするだけで、フラッシュメモリ１０へ一連のコマンドを連続して実行できる。
【００２１】
プログラムカウンタ２２には、命令テーブルメモリ２３内における、フラッシュメモリ１０へアクセスするために必要な命令コードが入ったスタート番地が設定される。
【００２２】
デコーダ２４は、命令テーブルメモリ２３から読み出された命令コードを、実行部２５にて実行できるようにデコードしてデコード信号を出力する。実行部２５は、デコーダ２４からデコード信号を受け取り、このデコード信号に基づいてコマンドを認識し、入出力制御回路２６を制御する。
【００２３】
入出力制御回路２６は、実行部２５による制御によりスラッシュメモリ１０へのアクセス、すなわち書き込み、消去、及び読み出しを実行する。ＣＰＵ２８は、コントローラ２０内の各部の動作を制御する。バス２９は、ＣＰＵ２８とコントローラ２０内の各部との間、及びコントローラ２０内の各部間を結ぶ共通伝送路である。
【００２４】
以下に、第１実施形態の半導体記憶装置の動作を説明する。
【００２５】
図２は、第１実施形態の半導体記憶装置の動作を示すフローチャートである。
【００２６】
まず、ホスト機器２００から半導体記憶装置１００内のコントローラ２０へコマンドが発行される（ステップＳ１）と、コマンドラッチ回路２１にコマンドが一時的に記憶される（ステップＳ２）。
【００２７】
ＣＰＵ２８は、コマンドラッチ回路２１に記憶されたコマンドを読み取り、コマンドをデコードする（ステップＳ３）。続いて、ＣＰＵ２８は、コマンドのデコード結果に基づいて、命令テーブルメモリ２３内のスタート番地をプログラムカウンタ２２に設定する（ステップＳ４）。命令テーブルメモリ２３には、フラッシュメモリ１０に対して発行される全ての必要なコマンドをコード化した命令コードが格納されている。スタート番地は、フラッシュメモリ１０へアクセスするために必要な命令コードが入った記憶位置を指定するものである。
【００２８】
続いて、ＣＰＵ２８はＤＭＡスタートを実施する（ステップＳ５）。これにより、ＣＰＵ２８の処理は終了する。
【００２９】
次に、命令テーブルメモリ２３から命令コードがデコーダ２４にフェッチされ（ステップＳ６）、デコーダ２４により命令コードがデコードされてデコード信号が実行部２５へ出力される（ステップＳ７）。
【００３０】
続いて、実行部２５は、デコーダ２４からデコード信号を受け取り、このデコード信号に基づいてコマンドを認識し、入出力制御回路２６を制御する。そして、入出力制御回路２６によりフラッシュメモリ１０へのアクセスが実行される（ステップＳ８）。すなわち、所望のコマンドシーケンスがフラッシュメモリ１０へ発行される。
【００３１】
これにより、フラッシュメモリ１０では、コマンドが実行される（ステップＳ９）。コマンドの実行が終了すると、コントローラ２０におけるステップＳ１０に移行する。
【００３２】
ステップＳ１０において、フラッシュメモリ１０に続けてアクセスする必要がある場合（ステップＳ１０のＹｅｓ）、プログラムカウンタ２２に設定された番地がインクリメントされる（ステップＳ１１）。
【００３３】
続いて、ステップＳ６へ戻り、ステップＳ６以降の処理が繰り返される。すなわち、プログラムカウンタ２２に設定された番地に基づいて、命令テーブルメモリ２３から命令コードがデコーダ２４にフェッチされる。その後、前述と同様に、デコーダ２４により命令コードがデコードされ（ステップＳ７）、実行部２５、及び入出力制御回路２６によりフラッシュメモリ１０へのアクセスが実行される（ステップＳ８）。これにより、ＣＰＵ２８が処理を行うこと無く、フラッシュメモリ１０へのアクセスを繰り返し実行することができる。
【００３４】
また、データＲＡＭ２７の出力が必要な場合でも、それ専用の命令コードを命令テーブルメモリ２３に格納しておけば、ＣＰＵ２８の処理を伴うこと無く、データＲＡＭ２７の出力を実行できる。
【００３５】
また、フラッシュメモリ１０に続けてアクセスする必要がない場合（ステップＳ１０のＮｏ）、すなわちフラッシュメモリ１０への必要なシーケンスが完了すると、ホスト機器２００側にレディ信号を送信し、ホスト機器２００はレディ信号を受信する（ステップＳ１２）。そして、コントローラ２０は、次のコマンド入力を待つ待機状態になる。ホスト機器２００から次のコマンドが発行されると、コントローラ２０は前述と同様の動作を繰り返す。
【００３６】
第１実施形態では、フラッシュメモリ１０へアクセスするための多種多様なシーケンスをコード化し、コード化したシーケンスに合わせて設定した命令コードを命令テーブルメモリ２３に予め準備する。これにより、フラッシュメモリ１０へのアクセスシーケンスが変わる度に、プログラムカウンタ２２に格納するスタート番地を更新するだけで、フラッシュメモリ１０へのアクセスが柔軟に対応可能である。なお、場合によっては、命令テーブルメモリ２３の内容も変更可能である、すなわち命令テーブルメモリ２３内の命令コードを更新することができる。また、フラッシュメモリ１０へアクセスするための多種多様なシーケンスをコード化した命令コードと、その命令コードを自由な順番で連続してアクセスするための命令コードを、命令テーブルメモリ２３に予め格納してもよい。
【００３７】
以上により、コントローラ２０へのコマンド入力後、ＣＰＵ２８の占有時間を大幅に削減でき、フラッシュメモリ１０へのアクセス性能が格段に向上する。図７の（Ａ）に、第１実施形態の半導体記憶装置１００におけるアクセス時間を示す。この図からわかるように、ホスト機器２００によるコントローラ２０へのアクセス時間（ホストアクセス時間）の後のＣＰＵ２８による処理時間（ＣＰＵアクセス時間）が短縮できる。さらに、コントローラ２０によるフラッシュメモリ１０へのアクセス時間（フラッシュメモリアクセス時間）(1)の後で、フラッシュメモリアクセス時間(2)前のＣＰＵアクセス時間が削除できる。このため、フラッシュメモリへのアクセス性能を著しく向上できる。ここで、ＣＰＵアクセス時間とは、ＣＰＵ２８がコマンドをデコードし、そのデコード結果に基づいてプログラムカウンタ２２にスタート番地を設定するまでに要する時間をさす。
【００３８】
詳述すると、ホスト機器２００がコントローラ２０にアクセスを開始してから、すなわちコントローラ２０にコマンドが入力されてから、実際にフラッシュメモリ１０へのアクセスが終了するまでの時間を短縮できる。ここでは、２回目にフラッシュメモリにアクセスする前に、ＣＰＵの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第１実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
【００３９】
［第２実施形態］
次に、本発明の第２実施形態の半導体記憶装置について説明する。
【００４０】
図３は、第２実施形態の半導体記憶装置の構成を示すブロック図である。この第２実施形態は、図１に示した前記第１実施形態の構成において、コマンドラッチ回路２１に記憶されたコマンドに基づいて、プログラムカウンタ２２にスタート番地を設定するためのデコーダ３０と実行部３１をさらに備える。その他の構成は、前記第１実施形態の構成と同様である。
【００４１】
図３に示すように、コマンドラッチ回路２１とバス２９との間には、デコーダ３０と実行部３１が配置されている。実行部３１とプログラムカウンタ２２及び命令テーブルメモリ２３との間には専用配線３２が接続されている。
【００４２】
デコーダ３０は、実行部３１にて命令テーブルメモリ２３内のスタート番地をプログラムカウンタ２２に設定できるように、コマンドラッチ回路２１に記憶されたコマンドをデコードしてデコード信号を出力する。実行部３１は、デコーダ３０からデコード信号を受け取り、このデコード信号に基づいて、フラッシュメモリ１０へアクセスするために必要な命令コードが入った命令テーブルメモリ２３内のスタート番地をプログラムカウンタ２２に設定する。
【００４３】
プログラムカウンタ２２へのスタート番地の設定は、バス２９を用いて行ってもよいし、実行部３１とプログラムカウンタ２２との間を接続する専用配線３２を用いて行ってもよい。スタート番地の設定に専用配線３２を用いれば、バス２９が空き状態となるため、専用配線３２を用いたスタート番地を設定するための信号伝送と並行して、バス２９を用いた他の信号の伝送を行うことが可能である。
【００４４】
この第２実施形態における動作は以下のようになる。
【００４５】
図４は、第２実施形態の半導体記憶装置の動作を示すフローチャートである。
【００４６】
ホスト機器２００からコマンドが発行されると（ステップＳ１）、コマンドラッチ回路２１にコマンドが一時的に記憶される（ステップＳ２）。コマンドラッチ回路２１に記憶されたコマンドは、デコーダ３０によりデコードされて（ステップＳ１３）、デコード信号として実行部３１に出力される。続いて、デコード信号に基づいて、実行部３１により、フラッシュメモリ１０へアクセスするために必要な命令コードが入ったスタート番地がプログラムカウンタ２２に設定される（ステップＳ１４）。その後の動作は、前述した第１実施形態の動作と同様である。
【００４７】
第２実施形態によれば、ＣＰＵ２８を介さずに、すなわちＣＰＵ２８の処理を伴うことなく、ハードウェアシーケンサだけでフラッシュメモリ１０へのアクセスを実行できる。ここで、ハードウェアシーケンサとは、デコーダ３０、実行部３１、プログラムカウンタ２２、命令テーブルメモリ２３、デコーダ２４、実行部２５、及び入出力制御回路２６などによる制御をさす。これにより、ＣＰＵ２８の処理時間を削減でき、フラッシュメモリ１０へのアクセス性能を向上させることができる。
【００４８】
図７の（Ｂ）に、第２実施形態の半導体記憶装置１００におけるアクセス時間を示す。この図からわかるように、ホストアクセス時間後のＣＰＵアクセス時間が削除でき、ハードウェアシーケンサによる処理時間（ＨＷシーケンサ処理時間）(1)のみとなる。さらに、フラッシュメモリアクセス時間(1)後で、フラッシュメモリアクセス時間(2)前のＣＰＵアクセス時間が削除でき、ＨＷシーケンサ処理時間(2)のみとなる。これにより、フラッシュメモリへのアクセス性能を著しく向上できる。
【００４９】
詳述すると、ホスト機器２００がコントローラ２０にアクセスを開始してから、すなわちコントローラ２０にコマンドが入力されてから、実際にフラッシュメモリ１０へのアクセスが終了するまでの時間を短縮できる。ここでは、１回目にフラッシュメモリへアクセスする前、及び２回目にフラッシュメモリへアクセスする前のいずれの場合も、ＣＰＵの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第２実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
【００５０】
［第３実施形態］
次に、本発明の第３実施形態の半導体記憶装置について説明する。
【００５１】
図５は、第３実施形態の半導体記憶装置の構成を示すブロック図である。この第３実施形態は、図３に示した前記第２実施形態の構成において、命令テーブルメモリ２３、プログラムカウンタ２２、デコーダ２４、及び実行部２５に換えて、各種のレジスタを備えたものである。その他の構成は、前記第２実施形態の構成と同様である。
【００５２】
図５に示すように、バス２９と入出力制御回路２６との間には、第１レジスタ３４、第２レジスタ３５、…、第Ｎレジスタ３６、及び有効ビットレジスタ３７が配置されている。第１〜第Ｎレジスタには、フラッシュメモリ１０へアクセスするために必要な情報が記憶される。有効ビットレジスタ３７には、第１〜第Ｎレジスタの各々に対応する情報が記憶される。第１〜第Ｎレジスタは、例えばコマンドレジスタ、アドレスレジスタ、ステータスレジスタ等の各種の設定レジスタをさす。
【００５３】
第１レジスタ３４、第２レジスタ３５、…、第Ｎレジスタ３６、及び有効ビットレジスタ３７への情報の設定は、バス２９を用いて行ってもよいし、実行部３３とこれらレジスタとの間を接続する専用配線３８を用いて行ってもよい。レジスタへの情報設定に専用配線３８を用いれば、バス２９が空き状態となるため、専用配線３８を用いたレジスタへの情報設定のための信号伝送と並行して、バス２９を用いた他の信号伝送を行うことが可能である。
【００５４】
この第３実施形態における動作は以下のようになる。
【００５５】
図６は、第３実施形態の半導体記憶装置の動作を示すフローチャートである。
【００５６】
ホスト機器２００からコマンドが発行されると（ステップＳ１）、コマンドラッチ回路２１にコマンドが一時的に記憶される（ステップＳ２）。コマンドラッチ回路２１に記憶されたコマンドは、デコーダ３０によりデコードされて（ステップＳ２３）、デコード信号として実行部３３に出力される。
【００５７】
続いて、デコード信号に基づいて、実行部３３により、フラッシュメモリ１０へアクセスするために必要なシーケンスが第１レジスタ３４、第２レジスタ３５、…、第Ｎレジスタ３６にそれぞれ設定され、さらに、各レジスタに対応する有効ビットレジスタ３７が設定される（ステップＳ２４）。また、データＲＡＭ２７の利用有無が設定される。全ての設定が完了すると、ＤＭＡスタートが実施され（ステップＳ５）、前記レジスタに設定された情報に基づいて入出力制御回路２６によりフラッシュメモリ１０へのアクセスが実行される（ステップＳ２５）。すなわち、所望のコマンドシーケンスがフラッシュメモリ１０へ発行される。
【００５８】
これにより、フラッシュメモリ１０では、コマンドが実行される（ステップＳ９）。コマンドの実行が終了すると、コントローラ２０におけるステップＳ１０に移行する。
【００５９】
ステップＳ１０において、フラッシュメモリ１０に続けてアクセスする必要がある場合（ステップＳ１０のＹｅｓ）、実行部３３により、フラッシュメモリ１０へアクセスするために必要なシーケンスが第１レジスタ３４、第２レジスタ３５、…、第Ｎレジスタ３６、有効ビットレジスタ３７にそれぞれ再設定される（ステップＳ２６）。
【００６０】
続いて、ステップＳ５へ戻り、ステップＳ５以降の処理が繰り返される。すなわち、ＤＭＡスタートが実施され（ステップＳ５）、前記レジスタに設定された情報に基づいて入出力制御回路２６によりフラッシュメモリ１０へのアクセスが実行される（ステップＳ２５）。
【００６１】
また、フラッシュメモリ１０に続けてアクセスする必要がない場合（ステップＳ１０のＮｏ）、すなわちフラッシュメモリ１０への必要なシーケンスが完了すると、ＣＰＵ２８はホスト機器２００側にレディ信号を送信し、ホスト機器２００はレディ信号を受信する（ステップＳ１２）。そして、コントローラ２０は、次のコマンドの入力を待つ待機状態になる。ホスト機器２００から次のコマンドが発行されると、コントローラ２０は前述と同様の動作を繰り返す。
【００６２】
第３実施形態によれば、ＣＰＵ２８を介さずに、すなわちＣＰＵ２８の処理を伴うことなく、ハードウェアシーケンサだけでフラッシュメモリ１０へのアクセスを実行できる。ここで、ハードウェアシーケンサとは、デコーダ３０、実行部３３、第１レジスタ３４、第２レジスタ３５、…、第Ｎレジスタ３６、有効ビットレジスタ３７、及び入出力制御回路２６による制御をさす。これにより、ＣＰＵ２８の処理時間を削減でき、フラッシュメモリ１０へのアクセス性能を向上させることができる。
【００６３】
図７の（Ｃ）に、第３実施形態の半導体記憶装置１００におけるアクセス時間を示す。この図からわかるように、ホストアクセス時間後のＣＰＵアクセス時間が削減でき、ＨＷシーケンサ処理時間(1)のみとなる。さらに、フラッシュメモリアクセス時間(1)後で、フラッシュメモリアクセス時間(2)前のＣＰＵアクセス時間が削除でき、ＨＷシーケンサ処理時間(2)のみとなる。これにより、フラッシュメモリへのアクセス性能を著しく向上できる。
【００６４】
詳述すると、ホスト機器２００がコントローラ２０にアクセスを開始してから、すなわちコントローラ２０にコマンドが入力されてから、実際にフラッシュメモリ１０へのアクセスが終了するまでの時間を短縮できる。ここでは、１回目にフラッシュメモリへアクセスする前、及び２回目にフラッシュメモリへアクセスする前のいずれの場合も、ＣＰＵの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第３実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
【００６５】
なお、実施形態に記述した命令テーブルメモリ２３は、フラッシュメモリ１０へのコマンド発行に必要な命令コード以外に、以下のような命令コードを持つことで、本発明の課題を解決している。
【００６６】
（ａ）ジャンプ命令を利用する場合、数種類の別シーケンスを自由な順番でＣＰＵ介在なしに連続して実施するための命令コード。
【００６７】
例１）シーケンスＡ→シーケンスＢ→シーケンスＣ
例２）シーケンスＢ→シーケンスＡ→シーケンスＣ
（ｂ）ループ命令を利用する場合、数種類の別シーケンスを自由な回数繰り返すための命令コード。
【００６８】
例１)シーケンスＡ→シーケンスＢ→シーケンスＡ→シーケンスＢ→シーケンスＡ→…
命令テーブルメモリ２３は、（ａ）及び（ｂ）に記載した命令コードを有することにより、上記のような内容に臨機応変に変更でき、いろいろなケースに柔軟に対応することができる。
【００６９】
本発明の実施形態による効果をまとめると以下のようになる。
【００７０】
（１）  フラッシュメモリへのアクセス性能を高めることができる。詳述すると、ホスト機器がコントローラにアクセスを開始してから、すなわちコントローラにコマンドが入力されてから、実際にフラッシュメモリへのアクセスが終了するまでの時間を短縮できる。
【００７１】
（２）  命令テーブルメモリに格納された命令コードを書き換えることにより、フラッシュメモリへのアクセスに必要なシーケンスに合わせて、多種多様なシーケンスに柔軟に対応することができる。
【００７２】
（３）  ＣＰＵが行っていた処理を、ハードウェア（ハードウェアシーケンサ）によって処理することにより、ＣＰＵの処理時間を軽減または削除することができる。これにより、ＣＰＵは他の処理を行うことが可能である。
【００７３】
（４）  ＣＰＵの処理時間を軽減または削減することができるため、コントローラにおける消費電力を低減することができる。
【００７４】
また、本発明の実施形態は、例えばＳＤメモリカード、ＭＭＣ（マルチメディアカード）などのメモリカードを含む携帯型記憶装置、さらにはメモリデバイスを制御するメモリ制御システムに広く適用可能である。
【００７５】
また、前述した各実施形態はそれぞれ、単独で実施できるばかりでなく、適宜組み合わせて実施することも可能である。さらに、前述した各実施形態には種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
【符号の説明】
【００７６】
１０…フラッシュメモリ、２０…コントローラ、２１…コマンドラッチ回路、２２…プログラムカウンタ（ＰＣ）、２３…命令テーブルメモリ、２４…デコーダ、２５…実行部、２６…入出力制御回路、２７…データＲＡＭ、２８…ＣＰＵ、２９…バス、３０…デコーダ、３１…実行部、３２…専用配線、３３…実行部、３４…第１レジスタ、３５…第２レジスタ、３６…第Ｎレジスタ、３７…有効ビットレジスタ、３８…専用配線、１００…半導体記憶装置、２００…ホスト機器。
【図１】
2010224806.tif 000003
【図２】
2010224806.tif 000004
【図３】
2010224806.tif 000005
【図４】
2010224806.tif 000006
【図５】
2010224806.tif 000007
【図６】
2010224806.tif 000008
【図７】
2010224806.tif 000009