(57)【要約】【課題】処理装置の処理回数の増大を減少することができ、不揮発性メモリへのアクセス動作が遅くなることを防止でき、ひいては消費電力の低減を図ることができる不揮発性メモリアクセス制御装置および不揮発性メモリ制御システムを提供する。【解決手段】不揮発性メモリ１３と、不揮発性メモリ１３へのアクセスを要求するＣＰＵ（処理装置）１１と、ＣＰＵ１１の要求に応じて不揮発性メモリ１３への複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置１４と、を有し、不揮発性メモリアクセス制御装置１４は、複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、ＣＰＵ１１から不揮発性メモリ１３へのアクセス要求を受けると、設定情報に基づいて不揮発性メモリ１３への一連のアクセス動作を制御する不揮発性メモリアクセス動作制御部１４１を有する。【選択図】図２
2007172129.tif 000002
【特許請求の範囲】
【請求項１】
処理装置による不揮発性メモリへの複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置であって、
複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、上記処理装置から上記不揮発性メモリへのアクセス要求を受けると、上記設定情報に基づいて上記不揮発性メモリへの一連のアクセス動作を制御する不揮発性メモリアクセス動作制御部を
有する不揮発性メモリアクセス制御装置。
【請求項２】
上記不揮発性メモリアクセス動作制御部は、
不揮発性メモリアクセス時の各サイクルに対応したステートを設定できるステート保持部を含む
請求項１記載の不揮発性メモリアクセス制御装置。
【請求項３】
不揮発性メモリアクセス時の複数のサイクルには、コマンドを発行するコマンドサイクルと、アドレスを発行するアドレスサイクルと、データを上記不揮発性メモリとのデータパスにデータを入出力させるデータサイクルと、上記不揮発性メモリのビジー時間であるビジーサイクルとを、少なくとも含み、
上記ステート保持部は、
上記コマンドサイクルに対応するコマンドステート保持部と、
上記アドレスサイクルに対応するアドレスステート保持部と、
上記データサイクルに対応するデータステート保持部と、
上記ビジーサイクルに対応するビジーステート保持部と、を含む
請求項２記載の不揮発性メモリアクセス制御装置。
【請求項４】
上記不揮発性メモリアクセス動作制御部は、
上記コマンドサイクル時に発行されるコマンドを保持するコマンド保持部と、
上記アドレスサイクル時に発行されるアドレスを保持するアドレス保持部と、
アクセスのステート数を決定するステート数保持部と、
アドレスおよびデータステートのカウント数保持部と、
アクセスに必要となるステートサイクル数をカウントするステートサイクル制御カウンタと、をさらに含む
請求項３記載の不揮発性メモリアクセス制御装置。
【請求項５】
上記不揮発性メモリアクセス動作制御部は、
上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行う
請求項２記載の不揮発性メモリアクセス制御装置。
【請求項６】
上記不揮発性メモリアクセス動作制御部は、
上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行う
請求項３記載の不揮発性メモリアクセス制御装置。
【請求項７】
上記不揮発性メモリアクセス動作制御部は、
上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行い、所定のサイクルの処理が終了すると、上記ステート数保持部の値と、上記ステートサイクル数制御カウンタの値との比較結果に応じて、次サイクルへの移行、またはアクセス終了の判定を行う
請求項４記載の不揮発性メモリアクセス制御装置。
【請求項８】
不揮発性メモリと、
上記不揮発性メモリへのアクセスを要求する処理装置と、
上記処理装置の要求に応じて上記不揮発性メモリへの複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置と、を有し、
上記不揮発性メモリアクセス制御装置は、
複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、上記処理装置から上記不揮発性メモリへのアクセス要求を受けると、上記設定情報に基づいて上記不揮発性メモリへの一連のアクセス動作を制御する不揮発性メモリアクセス動作制御部を有する
不揮発性メモリ制御システム。
【請求項９】
上記不揮発性メモリアクセス動作制御部は、
不揮発性メモリアクセス時の各サイクルに対応したステートを設定できるステート保持部を含む
請求項８記載の不揮発性メモリ制御システム。
【請求項１０】
上記不揮発性メモリアクセス動作制御部は、
上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行う
請求項９記載の不揮発性メモリ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリアクセス制御装置および不揮発性メモリ制御システムに関するものである。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性メモリアクセス制御システムにおいては、不揮発性メモリにアクセスする際には、図１のように不揮発性メモリのアクセス動作に従って、処理装置であるＣＰＵがその動作を制御し、処理を実行していた。
【０００３】
つまり、１回の不揮発性メモリアクセスに対して、不揮発性メモリアクセス動作制御部に動作を設定することによって、不揮発性メモリアクセスのための制御信号とチップセレクト信号を生成し、不揮発性メモリのデータパスにデータを入出力させるといった処理をすることで不揮発性メモリアクセス動作の制御をしていた。
【０００４】
たとえば、不揮発性メモリに対してコマンドを発行しようとする時、不揮発性メモリアクセス動作制御部にコマンドを発行するように設定し、その設定によりコマンド制御信号とチップセレクト信号を生成し、データパスにコマンドを出力するといった制御をしていた。
また、アドレスや入出力データを転送する場合には、１回にアクセスできる容量は決まっていたため、大きな容量のアドレスやデータを１回では転送できず、転送したいアドレスや入出力データを複数回に分けて転送する必要がある。
【０００５】
不揮発性メモリのアクセス制御に関しては、たとえば特許文献１，２に提案されている。
【特許文献１】特開２００２−１３３８７８号公報
【特許文献２】特開２００３−１４１８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的な不揮発性メモリには、コマンド（Command）サイクル、アドレス（Address）サイクル、データ（Data）サイクル、ビジー（BSY）サイクルが存在するので、以上のような制御方法を用いると、１サイクルにつき１回以上ＣＰＵが介在してしまっていた。換言すれば、ＣＰＵの処理回数が１サイクルにつき１回以上存在していた。
よって、不揮発性メモリに対して連続的に書き込みや読み出しを行う場合、ＣＰＵが複数回介在してしまうので、ＣＰＵの処理回数が増大し、不揮発性メモリへのアクセス動作が遅くなり、ＣＰＵの消費電力が増大してしまうという不利益があった。
【０００７】
本発明は、処理装置の処理回数の増大を減少することができ、不揮発性メモリへのアクセス動作が遅くなることを防止でき、ひいては消費電力の低減を図ることができる不揮発性メモリアクセス制御装置および不揮発性メモリ制御システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点は、処理装置による不揮発性メモリへの複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置であって、複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、上記処理装置から上記不揮発性メモリへのアクセス要求を受けると、上記設定情報に基づいて上記不揮発性メモリへの一連のアクセス動作を制御する不揮発性メモリアクセス動作制御部を有する。
【０００９】
好適には、上記不揮発性メモリアクセス動作制御部は、不揮発性メモリアクセス時の各サイクルに対応したステートを設定できるステート保持部を含む。
【００１０】
好適には、不揮発性メモリアクセス時の複数のサイクルには、コマンドを発行するコマンドサイクルと、アドレスを発行するアドレスサイクルと、データを上記不揮発性メモリとのデータパスにデータを入出力させるデータサイクルと、上記不揮発性メモリのビジー時間であるビジーサイクルとを、少なくとも含み、上記ステート保持部は、上記コマンドサイクルに対応するコマンドステート保持部と、上記アドレスサイクルに対応するアドレスステート保持部と、上記データサイクルに対応するデータステート保持部と、上記ビジーサイクルに対応するビジーステート保持部と、を含む。
【００１１】
好適には、上記不揮発性メモリアクセス動作制御部は、上記コマンドサイクル時に発行されるコマンドを保持するコマンド保持部と、上記アドレスサイクル時に発行されるアドレスを保持するアドレス保持部と、アクセスのステート数を決定するステート数保持部と、アドレスおよびデータステートのカウント数保持部と、アクセスに必要となるステートサイクル数をカウントするステートサイクル制御カウンタと、をさらに含む。
【００１２】
好適には、上記不揮発性メモリアクセス動作制御部は、上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行う。
【００１３】
好適には、上記不揮発性メモリアクセス動作制御部は、上記処理装置から上記不揮発性メモリに対するアクセスを開始する要求があると、上記ステート保持部をチェックしどのサイクルの順でアクセスを行うかを判定し、判定順に従ってアクセス制御を行い、所定のサイクルの処理が終了すると、上記ステート数保持部の値と、上記ステートサイクル数制御カウンタの値との比較結果に応じて、次サイクルへの移行、またはアクセス終了の判定を行う。
【００１４】
本発明の第２の観点の不揮発性メモリ制御システムは、不揮発性メモリと、上記不揮発性メモリへのアクセスを要求する処理装置と、上記処理装置の要求に応じて上記不揮発性メモリへの複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置と、を有し、上記不揮発性メモリアクセス制御装置は、複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、上記処理装置から上記不揮発性メモリへのアクセス要求を受けると、上記設定情報に基づいて上記不揮発性メモリへの一連のアクセス動作を制御する。
【発明の効果】
【００１５】
本発明によれば、処理装置の介在回数の減少による処理装置の負荷削減、データ転送レートの向上を図れ、処理装置の消費電力の抑制を実現することができる。
不揮発性メモリへの書き込み・読み出し動作など一連の不揮発性メモリアクセス動作の実行を処理装置の介在なしで実行することができる。
不揮発性メモリからの大容量のデータ転送をする場合に処理装置の処理回数を削減しながら、より高速な不揮発性メモリアクセスが可能となる。
不揮発性メモリの機能拡張によるアクセス回数が増加、かつ１回のアクセスでサイクル数が増えるような複雑な不揮発性メモリアクセス動作にも処理装置の処理回数を増加させることなく、柔軟に対応することが可能である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１７】
図２は、本発明の実施形態に係る不揮発性メモリ制御システムの構成例を示すブロック図である。
【００１８】
本不揮発性メモリ制御システム１０は、図２に示すように、処理装置としてＣＰＵ１１、データ格納用ＲＡＭ１２、不揮発性メモリ１３、および不揮発性メモリアクセス制御装置１４を有している。
【００１９】
ＣＰＵ１１は、不揮発性メモリアクセス制御装置１４を通して不揮発性メモリ１３に記憶されているデータを読み出して所定の処理を行い、また、所定の処理を行ったデータを不揮発性メモリ１３に書き込む等の処理を行う。
ＣＰＵ１１は、このような不揮発性メモリ１３へのアクセスを行う際に、不揮発性メモリアクセス制御装置１４に対して不揮発性メモリ１３へのコマンドの発行やアドレスの指定等を行う。
【００２０】
データ格納用ＲＡＭ１２は、ＳＲＡＭ等により構成され、不揮発性メモリ１３へのアクセスの際に生じるデータが不揮発性メモリアクセス制御装置１４によりランダムに書き込まれ、あるいは読み出される。
【００２１】
不揮発性メモリ１３は、たとえばＮＡＮＤ型フラッシュメモリにより構成される。
不揮発性メモリ１３に採用されるＮＡＮＤ型フラッシュメモリは、１ページ２ＫＢ、１ブロック６４ページのフラッシュメモリにより形成される。
本実施形態のフラッシュメモリ（不揮発性メモリ）１３は、パッケージ内部に物理チップ（スタックメモリＳＭ）を２個もしくは４個を有する、いわゆるスタックフラッシュ（Stack Flash）により構成される。
【００２２】
スタックフラッシュを形成する物理チップである各スタックメモリＳＭは、個々にレディ状態、またはビジー状態をとり得るが、本実施形態においては、不揮発性メモリアクセス制御装置１４によるチップイネーブル信号ＸＣＥの供給線と、不揮発性メモリアクセス制御装置１４に対して出力するレディＲＤＹおよびビジー信号ＸＢＳＹの出力線は、図３（Ａ）、（Ｂ）に示すように、パッケージで各１本ずつ配線される。
スタックフラッシュは、物理チップであるスタックメモリＳＭ０，１の２個、またはＳＭ０〜３の４個のうち、１つがビジー状態であっても、他のスタックメモリはレディ状態となり得る。この場合、ＲＤＹ／ＢＳＹ線は１本なので、ＲＤＹ／ＸＢＳＹ線はビジーＢＳＹとなってしまう。したがって、不揮発性メモリアクセス制御装置１４は、ＲＤＹ／ＸＢＳＹ線では、他のスタックメモリ（物理チップ）のビジー／レディ状態の判定を行うことができない。
よって、本実施形態における不揮発性メモリアクセス制御装置１４は、不揮発性メモリ１３としてスタックフラッシュを採用した場合、ビジー／レディ状態の判定に際しては、ポーリング（Polling）ステータスリードを実行するように構成される。
【００２３】
すなわち、本実施形態における不揮発性メモリアクセス制御装置１４は、図４に示すような通常のステータスリードに加え、図５に示すような、ステータスリードのポーリング実行を行うための機能を備えている。
ステータスリードのポーリング（Polling）実行とは、通常のステータスリードとは異なり、スタックフラッシュに対応したステータスリードの実行方法である。
ポーリングによるステータスリードは、設定されたポーリング周期（以下Polling周期）が経過するとステータスリードを発行し、その結果がビジーBSYであれば、再びPolling周期が経過するまで待ち、その後ステータスリードを再実行するというシーケンスになっている。
タイムアウトの時間が経過しても、ポーリング（Polling）によるステータスリードの結果がビジーBSYの場合には、タイムアウトし、ポーリング（Polling）によるステータスリードシーケンスを終了する。
Polling周期およびタイムアウト時間はステータスリードコントロールレジスタの待ちカウント（WAIT_CNT）および待ちサイクル（WAIT_CYC）で設定する。
ポーリング（Polling）中は、XBSY線=High（Ready）になると、ポーリング周期設定に沿った待ち（Wait）を止めて、直ちに対象シーケンスを実行する。具体的には、ステータスリードコマンドを発行し、ステータス値を読みに行く。
ポーリング（Polling）によるステータスリード実行時、シーケンス中にBSYステートが存在した場合、所定のステート（NOPステート）と解釈しシーケンスを実行する。
【００２４】
以下、本実施形態における不揮発性メモリアクセス制御装置１４の具体的な構成および機能（ステータスリードのポーリング実行を行うための機能を除く）について説明する。
【００２５】
不揮発性メモリアクセス制御装置１４は、図２に示すように、不揮発性メモリアクセス動作制御部１４１、制御信号生成部１４２、不揮発性メモリチップセレクト制御部１４３、およびデータ入出力制御部１４４を主構成要素として有している。
【００２６】
不揮発性メモリアクセス動作制御部１４１は、ＣＰＵ１１から不揮発性メモリ１３に対するアクセスのためのコマンド、アドレス、ステートサイクル数等を設定可能に構成され、設定情報に応じて、不揮発性メモリ１３へのアクセス動作を制御し、ＣＰＵ１１の処理回数を削減し、高速なフラッシュアクセス動作を行うことを可能としている。
また、不揮発性メモリアクセス動作制御部１４１は、不揮発性メモリ１３へのアクセス時の各サイクルに対応したステートを設定可能に構成され、不揮発性メモリ１３への書き込み動作や読み出し動作だけでなく、複雑な不揮発性メモリ１３へのアクセス動作でも柔軟に制御できるように構成されている。
【００２７】
制御信号生成部１４２は、不揮発性メモリアクセス動作制御部１４１の制御の下、不揮発性メモリ１３へのアクセスのための制御信号を生成する。
不揮発性メモリチップセレクト制御部１４３は、不揮発性メモリアクセス動作制御部１４１の制御の下、チップセレクト信号（チップイネーブル信号ＸＣＥを含む）を生成する。
データ入出力制御部１４４は、不揮発性メモリアクセス動作制御部１４１の制御の下、不揮発性メモリ１３のデータパスにデータを入出力させるといった処理を行う。
【００２８】
不揮発性メモリ１３へのデータの書き込み、不揮発性メモリ１３からのデータの読み出しなど一連のアクセス動作には複数のサイクルが必要となっている。
一般的な不揮発性メモリにおいてはコマンドを発行するコマンド（Command）サイクル、アドレスを発行するアドレス（Address）サイクル、書き込みもしくは読み出しデータをデータパスに入出力させるデータ（Data）サイクル、不揮発性メモリのビジー時間であるBSYサイクルというような４サイクルが存在する。
【００２９】
本実施形態の不揮発性メモリアクセス動作制御部１４１は、ＣＰＵ処理回数の削減による不揮発性メモリ１３へのアクセスの高速化を実現するために、図６に示すように、メモリアクセス制御用レジスタ群（保持部群）２００およびステートサイクル数制御カウンタ３００を含んで構成されている。
なお、以下の説明においては、ステート情報を保持するステート保持部等はレジスタにより形成されているものとするが、レジスタに限定されるものではない。
【００３０】
すなわち、本実施形態の不揮発性メモリアクセス動作制御部１４１は大きく２つのレジスタ群から構成されている。
そして、メモリアクセス制御用レジスタ群２００は、図７に示すように、４つのレジスタ群から形成されている。
第１はシーケンスレジスタ群２１０という。
・コマンド（Command）サイクル  →  コマンド（Command）ステートレジスタ２１１、
・アドレス（Address）サイクル  →  アドレス（Address）ステートレジスタ２１２、
・データ（Data）サイクル  →  データ（Data）ステートレジスタ２１３、
・ビジー（BSY）サイクル  →  ビジー（BSY）ステートレジスタ２１４、
といった不揮発性メモリ１３へのアクセスの各サイクルに対応するステートを保持しているレジスタ群である。
第２は、コマンド（Command）サイクル時に発行されコマンド（Command）を保持しているコマンド（Command）レジスタ群２２０である。
第３は、アドレス（Address）サイクル時に発行されるアドレス（Address）を保持しているアドレス（Address）レジスタ群２３０である。
第４は、その時に実行されるアクセスのステート数を決定するステート数レジスタ等を含むカウント数レジスタ群２４０である。
【００３１】
また、ステートサイクル数制御カウンタ３００は、不揮発性メモリ１３へのアクセスに必要となるステートなどをカウントする。
【００３２】
図７に示す不揮発性メモリアクセス制御用レジスタ群２００において、コマンド（Command）レジスタ群２２０は、複数（図７では４つ）のコマンド（Command）レジスタ２２１〜２２４を含んで形成されている。
同様に、アドレス（Address）レジスタ群２３０は、複数（図７では４つ）のアドレス（Address）レジスタ２３１〜２３４を含んで形成される。
また、カウント数レジスタ群２４０は、ステート数レジスタ２４１、データ（Data）ステートカウント数レジスタ２４２、およびアドレス（Address）ステートカウント数レジスタ２４３を含んで形成される。
【００３３】
以下に、実際に不揮発性メモリへの書き込み動作を例にとって設定および制御方法を説明する。
【００３４】
書き込み動作の場合、コマンド（Command）サイクル→アドレス（Address）サイクル→データ（Data）サイクル→コマンド（Command）サイクル、といったサイクルで不揮発性メモリ１３にアクセスすることによって、図２のデータ格納用ＲＡＭ１２よりデータが読み出されて、不揮発性メモリ１３へとデータが書き込まれる。
【００３５】
不揮発性メモリ１３へのアクセスの１番目のサイクルがコマンド（Command）サイクルなので、図７のシーケンスレジスタ群２１０のコマンド（Command）ステートレジスタ（0）２１１に“1”、アドレス（Address）ステートレジスタ（0）２１２、データ（Data）ステートレジスタ（0）２１３、ビジー（BSY）ステートレジスタ（0）２１４にそれぞれ“0”を設定する。
次に２番目のサイクルがアドレス（Address）サイクルなので、アドレス（Address）ステートレジスタ（1）２１２に“1”、その他のステートレジスタ（1）２１１，２１３，２１４には“0”を設定する。
同様にして３番目のデータ（Data）サイクルではデータ（Data）ステートレジスタ（2）２１３のみを“1”、４番目のコマンド（Command）サイクルではコマンド（Command）ステートレジスタ（3）２１１のみを“1”に設定しておく。
コマンド（Command）レジスタ群２２０のコマンド（Command）レジスタ（0）２２１には１番目のコマンド（Command）サイクルに対応した値（例:80h）、コマンド（Command）レジスタ（1）２２２には２番目のコマンド（Command）サイクルに対応した値を設定する。
たとえば、コマンド（Command）レジスタ（0）２２１には“80h”と設定し、コマンド（Command）レジスタ（1）２２２には“10h”と設定する。
【００３６】
Addressレジスタにはその時にアクセスする不揮発性メモリのAddress値を設定する。また、不揮発性メモリへのデータ書き込みの場合は、サイクル数が４サイクル必要となるため、アクセスサイクル数を設定するための図示しないアクセスサイクル数レジスタに“4”の値を設定する。
【００３７】
ＣＰＵ１１から不揮発性メモリ１３へのアクセスを開始する要求があると、不揮発性メモリアクセス制御装置１４は、まずは各ステートレジスタ（0）２１１〜２１４の値をチェックし、どのサイクルを行うかを判定する。
データ書き込みの場合は、コマンド（Command）ステートレジスタ（0）２１１の値が“1”になっているため、まずは不揮発性メモリ１３に対してコマンド（Command）サイクルを実行すると判断し、制御信号生成部１４２からコマンド制御信号を生成し、データ入出力制御部１４４からコマンド（Command）レジスタ（0）２２１の値（“80h”）が不揮発性メモリ１３のデータパスに出力される。本例の場合にはデータパスに“80h”が出力される。
【００３８】
コマンド（Command）サイクルが終了すると、ステートサイクルカウント値を１インクリメントし、ステート数レジスタ２４１の値をチェックし、一致していなければ、次のアクセスに移行し、各ステートレジスタ（1）２１１〜２１４の値をチェックする。
２番目のサイクルは、アドレス（Address）サイクルなので、コマンド（Command）サイクルの場合と同様に制御信号生成部１４２からアドレス制御信号を生成して、不揮発性メモリ１３に対してアドレス（Address）レジスタ値をデータパスに出力することによって、アドレス（Address）サイクルとなる。
３番目のアクセスはデータ（Data）サイクルなので、制御信号生成部１４２よりデータ出力制御信号を生成し、データ格納用ＲＡＭ１２よりデータを読み出し、不揮発性メモリ１３のデータパスにデータを出力する。
４番目はコマンド（Command）サイクルなので、１番目と同様の動作となるが、発行されるコマンド（Command）値はコマンド（Command）レジスタ（1）２２２の値（“10h”）となる。本例の場合にはデータパスに“10h”が出力される。
【００３９】
４番目のサイクルが終了すると、ステートサイクルカウント値がステート数レジスタ値と一致するため、ここで不揮発性メモリ１３へのアクセスは終了し、ＣＰＵ１１に対してアクセス終了を通知する。
また、不揮発性メモリ１３のバス幅は決まっているため、バス幅を超えた容量のアドレスやデータを１回のステートで転送することができない。これは、次の２点を実装することにより解決している。
そのときのアドレス（Address）ステートおよびデータ（Data）ステートを何回繰り返すかをカウントできるカウンタ、すなわち、図６のステートサイクル数制御カウンタ３００、図７の繰り返し回数を保持しているアドレス（Address）ステートカウント数レジスタ２４３およびデータ（Data）ステートカウント数レジスタ２４２である。
【００４０】
もしアドレス（Address）ステートだった場合には、ステートサイクル数制御カウンタ３０のアドレス（Address）ステートサイクルカウンタを動作させ、このカウンタ値がアドレス（Address）ステートカウント数レジスタ２４３の値と一致したならば、次のサイクルに移行もしくは終了するようにする。
データ（Data）ステートの場合も同様に制御することによって、バス幅を超えた容量のアドレスやデータを１度のアドレス（Address）ステートおよびデータ（Data）ステートで転送することができる。
【００４１】
以上のことから、不揮発性メモリ１３へのアクセス順を、たとえば図８に示すように設定することが可能である。
図８の場合、コマンド（Command）ステートレジスタ２１１、アドレス（Address）ステートレジスタ２１２、データ（Data）ステートレジスタ２１３、ビジー（BSY）ステートレジスタ２１４を４ビットで形成し、“１”が設定される各ステートレジスタのビットを時系列的に遷移させる。
図８の例においては、上述した動作例に対応している。
【００４２】
このように、不揮発性メモリ１３へのアクセス順を、時系列的に遷移させて、不揮発性メモリ１３へのアクセス動作を制御するシーケンスレジスタ群２１０、アクセスのステート数を制御するステートサイクル数制御カウンタ３００、アドレス（Address）ステートの連続実行回数を制御するアドレス（Address）ステートカウント数レジスタ２４３、データ（Data）ステートの連続実行回数を制御するデータ（Data）ステートカウント数レジスタ２４２、を不揮発性メモリアクセス動作制御部１４１に実装することで、一連の不揮発性メモリ１３へのアクセス動作を制御することができる。
【００４３】
また、書き込みや読み出しといった動作以外の様々な不揮発性メモリアクセス動作、コマンド入力体系が拡張され既存の物と異なる新規不揮発メモリに対しても、不揮発性メモリアクセス制御用レジスタ群２００の値を変更することによって、柔軟に対応することが可能となる。
【００４４】
たとえば、データ読み出しを例にとると、不揮発性メモリ１３からのデータ読み出しの場合にはコマンド（Command）ステート→アドレス（Address）ステート→コマンド（Command）ステート→ビジー（BSY）ステート→データ（Data）ステートとなるので、不揮発性メモリ１３からの書き込み動作から読み出し動作に切り替えるためには、各ステートレジスタ値を上記アクセス順に設定しなおして、ステートサイクル数レジスタ値を“5”に設定し、コマンド（Command）レジスタの値を不揮発性メモリ１３からの読み出し動作を行う設定値に変更することによって、柔軟かつ容易に対応することが可能である。
【００４５】
また、この回路をもとに以下の第１〜第４のような機能拡張も実現することができる。
第１は、図９に示すように、各ステートレジスタの段数（ビット数）を増やすことにより、１回の不揮発性メモリの最大アクセス回数を増やすことが可能である。
たとえば、図９のように各ステートレジスタ２１１Ａ〜２１４Ａを１６ビットに拡張すると、最大１６サイクルまでＣＰＵ１１の介在なしに実行できる。
【００４６】
第２は、図１０に示すように、ステートレジスタの種類（数）を増やすことにより、既存のサイクル以外が存在する場合にも対応可能である。
たとえば、図１０に示すように、ステートレジスタの本数を６本に増加することによって、不揮発性メモリ１３にサイクル数が４サイクル以上存在した場合にも対応することができる。
【００４７】
第３は、図１１に示すように、シーケンスレジスタの本数を増やすことにより、様々な不揮発性メモリ１３へのアクセス動作を複数設定可能である。
たとえば、図１１のシーケンスレジスタ（0）２１０−０に書き込み動作、シーケンスレジスタ（2）２１０−２に読み出し動作をあらかじめ設定して、シーケンスレジスタ（0）２１０−０の設定状態に基づいて書き込みを実行後、シーケンスレジスタ（2）２１０−２の設定状態に基づいて読み出しを実行すれば、ＣＰＵ１１の介在なしに書き込みおよび読み出し動作を連続実行できる。
【００４８】
第４は、不揮発性メモリ１３に対して一連の不揮発性メモリ１３へのアクセス動作の回数をカウントするカウンタ「シーケンスレジスタ連続実行回数カウンタ」を実装することによってシーケンスレジスタに設定された一連の動作を連続的に繰り返し実行することが可能である。
たとえば、上記第３の場合のような設定をし、その「シーケンスレジスタ連続実行回数カウンタ」を制御することによって、大容量のデータ転送をＣＰＵ１１の介在なしで実行することが可能になる。
【００４９】
上記第１〜第４の構成を組み合わせて実装すれば、柔軟な不揮発性メモリアクセスを実現できる。
さらに、保持部としてはレジスタではなくＦＩＦＯやＲＡＭにこのような動作方法で制御できるような設定を格納することで、回路規模も縮小しつつ、かつＣＰＵの介在を削減させて、高速な不揮発性メモリアクセスを行うことも可能である。
【００５０】
以上説明したように、本実施形態によれば、不揮発性メモリ１３と、不揮発性メモリ１３へのアクセスを要求するＣＰＵ（処理装置）１１と、ＣＰＵ１１の要求に応じて不揮発性メモリ１３への複数のサイクルを含むアクセス動作を制御する不揮発性メモリアクセス制御装置１４と、を有し、不揮発性メモリアクセス制御装置１４は、複数サイクルの一連の不揮発性メモリアクセス動作に関する情報を設定可能で、ＣＰＵ１１から不揮発性メモリ１３へのアクセス要求を受けると、設定情報に基づいて不揮発性メモリ１３への一連のアクセス動作を制御する不揮発性メモリアクセス動作制御部１４１を有することから、以下の効果を得ることができる。
【００５１】
すなわち、ＣＰＵの介在回数の減少によるＣＰＵ負荷削減、データ転送レートの向上を図れ、ＣＰＵの消費電力の抑制を実現することができる。
また、不揮発性メモリへの書き込み・読み出し動作など、一連の不揮発性メモリアクセス動作の実行を、ＣＰＵがレジスタの遷移値を含むデータを設定することによって、その後、設定情報に基づいてＣＰＵの介在なしで実行することができる。
また、不揮発性メモリからの大容量のデータ転送をする場合にＣＰＵの処理回数を削減しながら、より高速な不揮発性メモリアクセスが可能となる。
さらにまた、不揮発性メモリの機能拡張によるアクセス回数が増加、かつ１回のアクセスでサイクル数が増えるような複雑な不揮発性メモリアクセス動作にもＣＰＵの処理回数を増加させることなく、柔軟に対応することが可能である。
【図面の簡単な説明】
【００５２】
【図１】一般的な不揮発性メモリへのアクセス動作を説明するための図である。
【図２】本発明の実施形態に係る不揮発性メモリ制御システムの構成例を示すブロック図である。
【図３】スタックフラッシュにおけるチップイネーブル信号ＸＣＥの供給線と、レディＲＤＹおよびビジー信号ＸＢＳＹの出力線の配線例を示す図である。
【図４】通常のステータスリードを示す図である。
【図５】ステータスリードのポーリング実行を示す図である。
【図６】本実施形態の不揮発性メモリアクセス動作制御部の構成例を示す図である。
【図７】本実施形態の不揮発性メモリアクセス制御用レジスタ群の構成例を示す図である。
【図８】本実施形態のシーケンスレジスタにおける各ステートレジスタの設定例を示す図である。
【図９】ステートレジスタの段数（ビット数）の拡張例を説明するための図である。
【図１０】ステートレジスタの数の増加例を説明するための図である。
【図１１】シーケンスレジスタの数の増加例を説明するための図である。
【符号の説明】
【００５３】
１０・・・不揮発性メモリ制御システム、１１・・・ＣＰＵ（処理装置）、１２・・・データ格納用ＲＡＭ、１３・・・不揮発性メモリ、１４・・・不揮発性メモリアクセス制御装置、１４１・・・不揮発性メモリアクセス動作制御部、１４２・・・制御信号生成部、１４３・・・不揮発性メモリチップセレクト制御部、１４４・・・データ入出力制御部、２００・・・メモリアクセス制御用レジスタ群、３００・・・ステートサイクル数制御カウンタ、２１０・・・シーケンスレジスタ群、２１１・・・コマンド（Command）ステートレジスタ、２１２・・・アドレス（Address）ステートレジスタ、２１３・・・データ（Data）ステートレジスタ、２１４・・・ビジー（BSY）ステートレジスタ、２２０・・・コマンド（Command）レジスタ群、２２１〜２２４・・・コマンド（Command）レジスタ、２３０・・・アドレス（Address）レジスタ群、２３１〜２３４・・・アドレス（Address）レジスタ、２４０・・・カウント数レジスタ群２４０、２４１・・・ステート数レジスタ、２４２・・・データ（Data）ステートカウント数レジスタ、２４３・・・アドレス（Address）ステートカウント数レジスタ。
【図１】
2007172129.tif 000003
【図２】
2007172129.tif 000004
【図３】
2007172129.tif 000005
【図４】
2007172129.tif 000006
【図５】
2007172129.tif 000007
【図６】
2007172129.tif 000008
【図７】
2007172129.tif 000009
【図８】
2007172129.tif 000010
【図９】
2007172129.tif 000011
【図１０】
2007172129.tif 000012
【図１１】
2007172129.tif 000013