(57)【要約】【課題】シリアルフラッシュメモリに対するデータアクセスを可及的に高速に行うことが可能なインターフェース回路を提供する。【解決手段】プログラムを実行するＣＰＵコアの要求に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、  前記ＣＰＵコアから出力されたリード信号及びアドレス信号に基づいて、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、  前記リードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行する、制御部と、  前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータを格納する、ワードレジスタと、  を備え、  前記制御部は、さらに、前記シリアルフラッシュメモリから読み出され前記ワードレジスタに格納されたデータを、前記ＣＰＵコアに出力するものとして構成されている。【選択図】図２
2010092342.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するＣＰＵコアの要求に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、
前記ＣＰＵコアから出力されたリード信号及びアドレス信号に基づいて、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、
前記リードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行する、制御部と、
前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータを格納する、ワードレジスタと、
を備え、
前記制御部は、さらに、前記シリアルフラッシュメモリから読み出され前記ワードレジスタに格納されたデータを、前記ＣＰＵコアに出力するものとして構成されている、
ことを特徴とするインターフェース回路。
【請求項２】
プログラムを実行するＣＰＵコアから出力されたリード信号及びアドレス信号に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、
前記ＣＰＵコアから出力された前記アドレス信号に対応するアドレスが、前回出力された前記アドレス信号に対応するアドレスと連続であるか否かの判定を行う、連続アドレス判定回路と、
前記ＣＰＵコアから出力された前記リード信号及びアドレス信号に基づいて、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、
第1乃至第Ｎのワードレジスタを有するデータバッファであって、前記データバッファは、前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータと、前記データに続いて前記シリアルフラッシュメモリから自動的に読み出される、前記アドレス信号に対応するアドレスと順次連続する複数のアドレスにおける複数のデータと、からなるデータ群によって内容が更新される、データバッファと、
前記判定の結果がアドレスは連続することを示す場合、前記自動コマンド生成回路を動作させずに、前記データバッファの前記第1のワードレジスタに格納されたデータを前記ＣＰＵコアに出力し、一方、前記判定の結果がアドレスは連続しないことを示す場合、前記自動コマンド生成回路を動作させることによって生成されたリードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行し、これにより内容の更新された前記データバッファの前記第1のワードレジスタに格納されたデータを前記ＣＰＵコアに出力する、制御部と、
を備えることを特徴とするインターフェース回路。
【請求項３】
プログラムを実行するＣＰＵコアから出力されたリード信号及びアドレス信号に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、
前記ＣＰＵコアから出力された前記リード信号及びアドレス信号に基づいて、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、
複数のアドレス設定レジスタであって、前記複数のアドレス設定レジスタのうちのいずれかに、前記ＣＰＵコアから出力された前記アドレス信号に対応するアドレスであるリード要求アドレスを格納する、複数のアドレス設定レジスタと、
それぞれが第1乃至第Ｎのワードレジスタを有する複数のデータバッファであって、前記各データバッファは複数の前記アドレス設定レジスタとそれぞれ対応付けられており、前記リード要求アドレスの格納された前記アドレス設定レジスタに対応する前記データバッファは、前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータと、前記データに続いて前記シリアルフラッシュメモリから自動的に読み出される、前記アドレス信号に対応するアドレスと順次連続する複数のアドレスにおける複数のデータと、からなるデータ群によって内容が更新される、複数のデータバッファと、
前記リード要求アドレスと連続するアドレスが複数の前記アドレス設定レジスタのうちのいずれかに格納されているか否かの判定を行う、連続アドレス判定回路と、
前記判定の結果が連続するアドレスは存在することを示す場合、前記自動コマンド生成回路を動作させずに、前記リード要求アドレスと連続するアドレスを格納しているアドレス設定レジスタに前記リード要求アドレスを格納し、そのアドレス設定レジスタと対応付けられた前記データバッファの前記第1のワードレジスタに格納されたデータを前記ＣＰＵコアに出力し、一方、前記判定の結果が連続するアドレスは存在しないことを示す場合、前記リード要求アドレスを複数の前記アドレス設定レジスタのうちのいずれかに格納し、前記自動コマンド生成回路を動作させることによって生成されたリードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行し、これにより内容の更新された、前記リード要求アドレスが格納された前記アドレス設定レジスタに対応する前記データバッファの前記第１のワードレジスタに格納されたデータを、前記ＣＰＵコアに出力する、制御部と、
を備えることを特徴とするインターフェース回路。
【請求項４】
プログラムを実行するＣＰＵコアの要求に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、
リセット信号を感知し、前記リセット信号の示す例外要因に応じて、前記例外要因が解除された際に読み出すことになる例外アドレスを出力する、リセット判定回路と、
前記リセット判定回路から出力された前記例外アドレスのデータを読み出すべく、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、
第1乃至第Ｎのワードレジスタを有するデータバッファであって、前記データバッファは、前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータと、前記データに続いて前記シリアルフラッシュメモリから自動的に読み出される、前記アドレス信号に対応するアドレスと連続するアドレスのデータと、からなるデータ群によって内容が更新される、データバッファと、
前記自動コマンド生成回路により生成されたリードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行し、これにより内容の更新された前記データバッファに格納されたデータを、前記例外要因が解除されたときに前記ＣＰＵコアに出力する、制御部と、
を備えることを特徴とするインターフェース回路。
【請求項５】
請求項２乃至４のいずれかに記載のインターフェース回路であって、
前記第１のワードレジスタに格納されたデータが前記ＣＰＵコアに出力されると、前記第２乃至第Ｎのワードレジスタに格納されたデータを前記第１乃至第Ｎ−１のワードレジスタにそれぞれ移動する、データバッファ管理回路をさらに備える、
ことを特徴とするインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェース回路、例えばシリアルフラッシュメモリにアクセスするためのインターフェース回路に関する。
【背景技術】
【０００２】
従来、マイクロコンピュータ（以下、マイコンともいう。）のプログラムを記憶するデバイスをプログラムＲＯＭという。このプログラムＲＯＭに用いられるデバイスとして、マイコンに内蔵されるマスクＲＯＭ（内蔵マスクＲＯＭ）や、マイコンとパラレル接続されるメモリ（例えば、ＮＯＲ型パラレルフラッシュメモリ）が用いられることが殆どである。
【０００３】
しかし、いずれのデバイスを用いても次のような問題がある。即ち、内蔵マスクＲＯＭを用いる場合は、大容量化するにつれてマイコンのチップサイズが増えてしまい、マイコンチップのコストが増大するという問題がある。一方、ＮＯＲ型パラレルフラッシュメモリを用いる場合は、マイコンとフラッシュメモリ間の信号線の数が多いため、基板上の他の部品が発生するノイズの影響を受けやすいという問題がある。その他、ＮＯＲ型パラレルフラッシュメモリのコストが高いという問題もある。
【０００４】
近年、比較的低コストで大容量化に対応可能なＮＯＲ型シリアルフラッシュメモリ（以下、シリアルフラッシュメモリという。）が登場している。このシリアルフラッシュメモリは、パラレルフラッシュメモリに比べて格段に少ない信号線でマイコンと接続されるため、上記のノイズの問題を回避し易い。
【０００５】
従来、シリアルフラッシュメモリを利用することで、デバイスの端子数を減らしたマイコンが開示されている（特許文献１）。
【特許文献１】特開２００４−３８５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、シリアルフラッシュメモリに対するデータアクセスを可及的に高速に行うことが可能なインターフェース回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、プログラムを実行するＣＰＵコアの要求に基づいて、前記プログラムを格納するシリアルフラッシュメモリにアクセスするインターフェース回路であって、前記ＣＰＵコアから出力されたリード信号及びアドレス信号に基づいて、前記シリアルフラッシュメモリに発行するためのリードコマンド及びアドレスセットを生成する、自動コマンド生成回路と、前記リードコマンド及びアドレスセットを前記シリアルフラッシュメモリに発行する、制御部と、前記リードコマンド及びアドレスセットに応じて前記シリアルフラッシュメモリから読み出されたデータを格納する、ワードレジスタと、を備え、前記制御部は、さらに、前記シリアルフラッシュメモリから読み出され前記ワードレジスタに格納されたデータを、前記ＣＰＵコアに出力するものとして構成されている、ことを特徴とするインターフェース回路が提供される。
【発明の効果】
【０００８】
本発明によれば、シリアルフラッシュメモリに対するデータアクセスを可及的に高速に行うことができる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施形態について説明する前に、本発明者が本発明をなすに至った経緯について説明する。
【００１０】
上記のように、シリアルフラッシュメモリは、大容量化が比較的容易でありノイズの影響が少ないプログラムＲＯＭとして利用できる可能性がある。そのためには、マイコンからシリアルフラッシュメモリに対して、ある程度高速にランダムアクセスできる必要がある。しかし、シリアルフラッシュメモリにアクセスするには、リード、ライトなどのコマンド及びアドレスセットを生成する。このコマンド及びアドレスセットはシリアルフラッシュメモリのベンダー毎に異なる。さらに、生成されたコマンド及びアドレスセットをシリアル信号に変換して、シリアルフラッシュメモリに発行する必要がある。このため、命令フェッチなどに伴うデータアクセス時間が、パラレルフラッシュメモリに比べて大幅に増大してしまうという問題があった。
【００１１】
この問題への対策の一つとして、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）又はＤＤＲ ＳＤＲＡＭ（Double Data Rate SDRAM）など高速アクセス可能なメモリをマイコンに接続し、立ち上げ時にシリアルフラッシュメモリのデータを、この高速メモリに展開しておく方法がある。この方法によれば、マイコンはデータ展開後、高速なメモリにアクセスすればよいので、アクセス時間を短縮することができる。しかし、この場合、部品数の増加により、回路規模、基板面積が増大するという問題がある。
【００１２】
また、別の対策として、マイコンにキャッシュＳＲＡＭを内蔵してアクセスを速くする方法がある。しかし、この場合、マイコンチップのコストが増大するという問題がある。
【００１３】
したがって、回路規模、基板面積、コストに対する要求が厳しい用途では、上記の方法を採ることができなかった。
【００１４】
そこで、本発明者は、シリアルフラッシュメモリへのアクセスを可及的に高速化することにより上記の問題を解決しようと考え、シリアルフラッシュメモリにアクセスするためのインターフェース回路（以下、ＳＦインターフェース回路という。）に着目した。即ち、シリアルフラッシュメモリの仕様（各種コマンド、アドレス）がベンダー毎に異なっており、仕様に適合したコマンド及びアドレスセットへの変換に時間がかかることから、この変換をＳＦインターフェース内のハードウェアで行うことを考えた。
【００１５】
さらに、本発明者は、シリアルフラッシュメモリは、あるアドレスのリードコマンドを受け付けると、それ以降のアドレスのデータを自動的に出力する仕様となっていることに着目した。そして、この仕様を利用して、これらのデータを廃棄せずにＳＦインターフェース内のレジスタに格納しておき、そのアドレスに対するリード要求を受ければ直ちに、レジスタに格納されたデータを出力する方法に思い至った。これにより、命令フェッチなどのデータアクセス時間を大幅に短縮することができる。
【００１６】
また、本発明者は、マイコンの初期化などの例外要因が発生した場合に、その例外要因が解除されたときに必要となるデータをＳＦインターフェース内のレジスタに格納しておくことにより、例外要因が解除されたときのデータアクセス時間を大幅に短縮する方法に想到した。
【００１７】
次に、本発明に係る実施形態を説明する前に、ＳＦインターフェース回路を備えるマイクロコンピュータの概略構成と、シリアルフラッシュメモリにアクセスする際の動作の概略について説明する。
【００１８】
図１を参照して、マイクロコンピュータ１００の概略構成について説明する。図１は、マイクロコンピュータ１００と、それに接続されたシリアルフラッシュメモリ２００を示している。図１からわかるように、このマイクロコンピュータ１００は、専用バスを介して外部のシリアルフラッシュメモリ２００と接続されている。なお、この専用バスは、例えば、４本のＩ／Ｏ線、１本のクロック線及び１本のチップイネーブル線からなる。
【００１９】
このマイクロコンピュータ１００は、ＳＦインターフェース回路１０と、ＣＰＵコア２０と、バスインターフェース回路３０と、内蔵メモリ４０とを備える。図１からわかるように、これらの構成要素はメモリデータバス（ＭＤバス）で互いに接続されている。
【００２０】
ＣＰＵコア２０とＳＦインターフェース回路１０は、制御信号（ＢＳＴＡＲＴ信号、ＭＲＤ信号、ＭＷＲ信号、ＭＡＣＫ信号）を伝達する制御線、及びメモリアドレス信号（ＭＡＤＲ信号）を伝達するメモリアドレスバス（ＭＡＤＲバス）で接続されている。
【００２１】
また、マイクロコンピュータ１００は、一般バスを介して他のデバイス（図示せず）と接続されている。
【００２２】
次に、マイクロコンピュータ１００の構成要素ごとにその機能を説明する。
【００２３】
ＳＦインターフェース回路１０は、ＣＰＵコア２０の要求に応じて、シリアルフラッシュメモリ２００にアクセスする。
【００２４】
ＣＰＵコア２０は、シリアルフラッシュメモリ２００に格納されたプログラムを実行する。
【００２５】
バスインターフェース回路３０は、ＣＰＵコア２０の要求に応じて、一般バスに接続されたデバイスにアクセスする。
【００２６】
内蔵メモリ４０は、ＣＰＵコア２０が使用するワークＲＡＭである。
【００２７】
なお、上記のマイクロコンピュータ１００内の各構成要素にはシステムクロックが供給されており、各構成要素はこのシステムクロックに同期して動作する。
【００２８】
次に、マイクロコンピュータ１００が外部のシリアルフラッシュメモリ２００に格納されたデータをリードする方法について説明する。
（１）ＣＰＵコア２０は、所定のプログラムに従って、シリアルフラッシュメモリ２００の仕様に適合したコマンド及びアドレスセットを生成する。
（２）次に、ＣＰＵコア２０は、ＢＳＴＡＲＴ信号（Ｂｕｓ  Ｓｔａｒｔ）及びＭＲＤ信号（Ｍｅｍｏｒｙ  Ｒｅａｄ）をアサートし、リードオペレーションを開始する。それと同時に、このＣＰＵコア２０は、生成されたコマンド及びアドレスセットを、ＳＦインターフェース回路１０に出力する。
（３）次に、ＳＦインターフェース回路１０は、受信したコマンド及びアドレスセットを、専用バス経由でシリアルフラッシュメモリ２００に発行する。シリアルフラッシュメモリ２００からリードされたデータは、ワードレジスタに格納される。そして、１ワード（例えば３２ビット）分のデータが揃うと、ＳＦインターフェース回路１０は、ＭＤバスに（ＣＰＵコア２０に）リードしたデータを出力し、ＭＡＣＫ信号（Ｍｅｍｏｒｙ  Ａｃｋｎｏｗｌｅｄｇｅ）をアサートする。ＭＡＣＫ信号をアサートすることにより、ＣＰＵコア２０にリード要求が完了したことを伝える。
（４）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０は、ＭＤバスに出力されたデータを取り込む。その後、ＣＰＵコア２０はＢＳＴＡＲＴ信号をデアサートして、リードオペレーションを終了する。
【００２９】
以下、本発明に係る４つの実施形態について図面を参照しながら説明する。  同一の機能を有する構成要素には同一の符号を付し、重複する説明は適宜省略する。
【００３０】
（第１の実施形態）
第1の実施形態について説明する。本実施形態は、自動コマンド生成回路を備え、従来ＣＰＵコアで行っていたコマンド及びアドレスセットの生成をＳＦインターフェース回路で行うことで、データアクセスを高速化するものである。
【００３１】
図２は、本実施形態に係るＳＦインターフェース回路１０Ａの構成を示している。図２からわかるように、このＳＦインターフェース回路１０Ａは、自動コマンド生成回路１と、制御部７Ａと、ワードレジスタ８とを備えている。
【００３２】
この自動コマンド生成回路１は、ＣＰＵコア２０が出力するリード信号（ＭＲＤ信号）及びメモリアドレス信号（ＭＡＤＲ信号）に基づいて、シリアルフラッシュメモリ２００の仕様に適合したリードコマンドとアドレスセットを生成する。また、ライト信号（ＭＷＲ信号）及びメモリアドレス信号（ＭＡＤＲ信号）に基づいて、シリアルフラッシュメモリ２００の仕様に適合したライトコマンドとアドレスを生成する。
【００３３】
ワードレジスタ８は、リードコマンド及びアドレスセットに応じてシリアルフラッシュメモリ２００から読み出されたデータを格納する。このワードレジスタ８のサイズは、例えば３２ビットであり、一つの３２ビット長の命令を格納する。
【００３４】
制御部７Ａは、後述のように、シリアルフラッシュメモリ２００にコマンド及びアドレスセットを発行し、また、読出されたデータをＣＰＵコア２０に出力する。
【００３５】
本実施形態における、マイクロコンピュータ１００のシリアルフラッシュメモリ２００のデータをリードする方法について説明する。
（１）ＣＰＵコア２０は、ＢＳＴＡＲＴ信号及びＭＲＤ信号をアサートし、リードオペレーションを開始する。それと同時に、このＣＰＵコア２０は、ＭＡＤＲバスにＭＡＤＲ信号を出力する。
なお、このメモリアドレス信号の示すアドレス値はシリアルフラッシュメモリ２００の仕様に適合したものではない。
（２）次に、自動コマンド生成回路１は、ＭＲＤ信号及びＭＡＤＲ信号をデコードして、シリアルフラッシュメモリ２００の仕様に適合したリードコマンド及びアドレスセットを生成する。具体的には、このアドレスセットは、パラレルのＭＡＤＲ信号を、パラレル−シリアル変換（Ｐ／Ｓ変換）によりシリアル信号に変換し、適当なオフセット値を加えることによって生成される。
（３）次に、制御部７Ａは、自動コマンド生成回路１によって生成されたリードコマンド及びアドレスセットを、専用バス経由でシリアルフラッシュメモリ２００に発行する。読み出されたデータがワードレジスタ８に格納され１ワード（例えば３２ビット）分のデータが揃うと、この制御部７Ａは、そのデータをＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。
（４）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０は、ＭＤバスに出力されたデータを取り込む。その後、ＣＰＵコア２０はＢＳＴＡＲＴ信号をデアサートして、リードオペレーションを終了する。
【００３６】
次に、シリアルフラッシュメモリ２００にデータをライトする場合について説明する。この場合のアクセス方法は以下の通りである。
（１）ＣＰＵコア２０は、ＢＳＴＡＲＴ信号及びＭＷＲ信号をアサートし、ライトオペレーションを開始する。それと同時に、このＣＰＵコア２０は、ＭＡＤＲバスにＭＡＤＲ信号を、ＭＤバスに書込みデータをそれぞれ出力する。なお、このメモリアドレス信号の示すアドレス値はシリアルフラッシュメモリ２００の仕様に適合したものではない。
（２）次に、自動コマンド生成回路１は、ＭＷＲ信号及びＭＡＤＲ信号をデコードして、シリアルフラッシュメモリ２００の仕様に適合したライトコマンド及びアドレスを生成する。
（３）次に、制御部７Ａは、自動コマンド生成回路１によって生成されたライトコマンド及びアドレスを、専用バス経由でシリアルフラッシュメモリ２００に発行する。そして、所望のアドレスにデータが書き込まれると、制御部７ＡはＭＡＣＫ信号をアサートする。
（４）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０はＢＳＴＡＲＴ信号をデアサートして、ライトオペレーションを終了する。
【００３７】
本実施形態によれば、シリアルフラッシュメモリの仕様に適合したコマンド及びアドレスセットは、ＣＰＵコアで実行されるプログラムにより生成されるのではなく、自動コマンド生成回路のハードウェアにより生成される。これにより、コマンド及びアドレスセットの生成時間が短縮され、シリアルフラッシュメモリに対するデータアクセスを可及的に高速に行うことができる。また、コマンド及びアドレスセットの生成プログラムが不要となるため、プログラムのサイズを小さくでき、シリアルフラッシュメモリのプログラムエリアを有効活用することができる。
【００３８】
（第２の実施形態）
次に、第２の実施形態について説明する。本実施形態は、複数のワードレジスタを有するデータバッファを備える。このデータバッファは、ＣＰＵコアからリード要求されたアドレスのデータ、及びリード要求されたアドレスと順次連続する複数のアドレスにおける複数のデータからなるデータ群を格納する。これにより、前回リードしたアドレスと連続するアドレスに対してＣＰＵコアからリード要求があった場合に、データバッファに格納されたデータをＣＰＵコアに出力することで、リードコマンド及びアドレスセットの生成及び発行を不要とし、データアクセスを可及的に高速化するものである。
【００３９】
図３は、本実施形態に係るＳＦインターフェース回路１０Ｂの構成を示している。この図からわかるように、ＳＦインターフェース回路１０Ｂは、自動コマンド生成回路１と、連続アドレス判定回路２Ｂと、データバッファ管理回路３と、データバッファ４と、制御部７Ｂとを備える。
【００４０】
連続アドレス判定回路２Ｂは、ＣＰＵコア２０から今回リード要求されたアドレス（ＣＰＵコア２０からＭＡＤＲバスに出力されたアドレス信号に対応するアドレス）が前回要求されたアドレスと連続であるか否かを判定する。つまり、今回リード要求されたアドレスをａｄｙ、前回リード要求されたアドレスをａｄｘとしたとき、アドレスａｄｙがアドレスａｄｘ＋１に等しいか否かを判定する。
【００４１】
データバッファ４は、第1ワードレジスタ〜第Ｎワードレジスタを有する。この第１〜第Ｎワードレジスタは、それぞれｎビットのレジスタである。なお、１つのワードレジスタには、例えば１つの命令が格納される。１つの命令が３２ビット長の場合、ｎ＝３２である。また、ワードレジスタの数は、マイコンの用途（デジカメやファクシミリなど）に応じて適当に決められる。例えば、Ｎ＝６である。
【００４２】
データバッファ管理回路３は、第１ワードレジスタに格納されたデータがＭＤバスに（ＣＰＵコア２０に）出力されると、第２〜第Ｎワードレジスタに格納されたデータを、第１〜第Ｎ−１ワードレジスタにそれぞれ移動する。即ち、データバッファ４の各ワードレジスタに格納されたデータをワードレジスタ一つ分だけ詰める。さらに、このデータバッファ管理回路３は、データバッファ４が一杯になったか否かを判定する。即ち、第Ｎワードレジスタまでデータが格納されたか否かを判定する。データバッファ４が一杯になったと判定されると、専用バスのチップイネーブルがデアサートされてリード動作は中止される。
【００４３】
以下、シリアルフラッシュメモリ２００のデータをリードする際における、ＳＦインターフェース回路１０Ｂの動作について説明する。
ＣＰＵコア２０から、アドレスａｄｙに格納されたデータＤ（ａｄｙ）のリード要求があったとする。
（１）連続アドレス判定回路２Ｂは、アドレスａｄｙが、前回リード要求のあったアドレスａｄｘと連続か否かを判定する。
（２）連続アドレス判定の結果、アドレスａｄｙがアドレスａｄｘと連続である場合、制御部７Ｂは、データバッファ４の第１ワードレジスタに格納されているデータＤ（ａｄｙ）をＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。データバッファ管理回路３は、データバッファ４の各ワードレジスタに格納されたデータを、ワードレジスタ一つ分詰める。
一方、連続アドレス判定の結果、アドレスａｄｙがアドレスａｄｘと連続でない場合、制御部７Ｂは、自動コマンド生成回路１に、リードコマンド、及びアドレスａｄｙに対応するアドレスセットを新たに生成させる。そして、この制御部７Ｂは、生成されたリードコマンド及びアドレスセットをシリアルフラッシュメモリ２００に発行する。読み出されたデータはデータバッファ４の第１ワードレジスタに格納される。そして、１ワード分のデータが揃うと、この制御部７Ｂは、データＤ（ａｄｙ）をＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。
（３）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０は、ＭＤバスに出力されたデータを取り込む。
前述のように、シリアルフラッシュメモリ２００は、データＤ（ａｄｙ）に続いて、アドレスａｄｙ＋１，ａｄｙ＋２，・・・にそれぞれ格納されたデータＤ（ａｄｙ＋１），Ｄ（ａｄｙ＋２），・・・を自動的に出力する。これらのデータは、データバッファ４の各ワードレジスタに順次格納される。このとき、ワードレジスタは、以前に読出したデータを格納していたとしても、新たに読み出されたデータにより上書きされる。
上記のように、本実施形態に係るＳＦインターフェース回路１０Ｂは、リード要求されたアドレスのデータだけでなく、シリアルフラッシュメモリ２００から自動的に読み出される、リード要求されたアドレスと順次連続する複数のアドレスにおけるデータも、データバッファ４に格納する。それにより、ＣＰＵコア２０が前回と連続するアドレスについてリード要求したとき、新たにコマンド及びアドレスセットを生成及び発行することなく、データバッファ４に格納されたデータを、要求されたアドレスのデータとして出力することができる。この結果、命令フェッチなどのデータアクセス時間が高速化される。
【００４４】
以上、本実施形態によれば、シリアルフラッシュメモリに対するデータアクセスを可及的に高速に行うことができる。
【００４５】
（第３の実施形態）
次に、第３の実施形態について説明する。本実施形態と第２の実施形態の相違点の一つは、本実施形態に係るＳＦインターフェース回路は、複数のデータバッファを備え、ＣＰＵコアによる処理がプログラムの分岐や割り込み等によってそれまでと連続しないアドレスに飛んだ場合でも、データアクセスの高速化を図るものである。
【００４６】
図４は、本実施形態に係るＳＦインターフェース回路１０Ｃの構成を示している。ＳＦインターフェース回路１０Ｃは、自動コマンド生成回路１と、連続アドレス判定回路２Ｃと、データバッファ管理回路３と、ｋ個のデータバッファ４−１，４−２，・・・，４−ｋと、ｋ個のアドレス設定レジスタ５−１，５−２，・・・，５−ｋと、制御部７Ｃとを備える。
【００４７】
データバッファ４−１，４−２，・・・，４−ｋは、後述のアドレス設定レジスタ５−１，５−２，・・・，５−ｋとそれぞれ対応付けられている。
【００４８】
アドレス設定レジスタ５−１，５−２，・・・，５−ｋは、アドレスを格納するレジスタである。リード要求されたアドレス（ＣＰＵコア２０からＭＡＤＲバスに出力されたアドレス信号に対応するアドレス）は、このアドレス設定レジスタ５−１，５−２，・・・，５−ｋのうちのいずれかに格納される。
【００４９】
連続アドレス判定回路２Ｃは、リード要求されたアドレスと連続するアドレスが、アドレス設定レジスタ５−１，５−２，・・・，５−ｋのうちのいずれかに格納されているか否かを判定する。
【００５０】
以下、シリアルフラッシュメモリ２００のデータをリードする際における、ＳＦインターフェース回路１０Ｃの動作について説明する。
ＣＰＵコア２０から、アドレスａｄｙに格納されたデータＤ（ａｄｙ）のリード要求があったとする。
（１）連続アドレス判定回路２Ｃは、アドレスａｄｙが、アドレス設定レジスタ５−１，５−２，・・・，５−ｋに格納されたアドレスのいずれかと連続するか否かを判定する。
（２）連続アドレス判定回路２Ｃによる判定の結果、アドレスａｄｙがあるアドレス設定レジスタ（ここではアドレス設定レジスタ５−ｉとする。）に格納されたアドレスと連続する場合、制御部７Ｃは、アドレス設定レジスタ５−ｉにアドレスａｄｙを格納し、データバッファ４−ｉの第１ワードレジスタに格納されているデータＤ（ａｄｙ）をＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。
データバッファ管理回路３は、データバッファ４−ｉの各ワードレジスタに格納されたデータを、ワードレジスタ一つ分詰める。これにより、データＤ（ａｄｙ＋１）が第１ワードレジスタに格納される。つまり、データバッファ４−ｉの第1ワードレジスタに格納されたデータのアドレス（ａｄｙ＋１）は、アドレス設定レジスタ５−ｉに格納されたアドレス（ａｄｙ）を１だけ増加させたものになる。
一方、連続アドレス判定回路２Ｃによる判定の結果、アドレスａｄｙがアドレス設定レジスタ５−１，５−２，・・・，５−ｋに格納されたアドレスのいずれとも連続しない場合、制御部７Ｃは、あるアドレス設定レジスタ（ここではアドレス設定レジスタ５−ｉとする。）にアドレスａｄｙを格納し、自動コマンド生成回路１に、リードコマンド、及びアドレスａｄｙに対応するアドレスセットを新たに生成させる。そして、この制御部７Ｃは、生成されたリードコマンド及びアドレスセットをシリアルフラッシュメモリ２００に発行する。読み出されたデータは、アドレス設定レジスタ５−ｉに対応するデータバッファ４−ｉの第１ワードレジスタに格納される。そして、１ワード分のデータが揃うと、この制御部７Ｃは、データＤ（ａｄｙ）をＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。その後、データバッファ管理回路３は、データバッファ４−ｉの各ワードレジスタに格納されたデータを、ワードレジスタ一つ分詰める。これにより、データＤ（ａｄｙ＋１）が第１ワードレジスタに格納される。つまり、データバッファ４−ｉの第1ワードレジスタに格納されたデータのアドレス（ａｄｙ＋１）は、アドレス設定レジスタ５−ｉに格納されたアドレス（ａｄｙ）を１だけ増加させたものになる。
なお、連続するアドレスがない場合に用いるアドレス設定レジスタとしては、例えば、アドレスが格納されていないアドレス設定レジスタのうち、最も符号の数の小さいものを使用する。即ち、アドレス設定レジスタ５−１，５−２にアドレスが格納されており、アドレス設定レジスタ５−３，５−４，５−５にアドレスが格納されていない場合、アドレス設定レジスタ５−３を使用する。また、もし空いているアドレス設定レジスタがなければ、例えば、アドレス設定レジスタ５−１を使用する。
（３）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０は、ＭＤバスに出力されたデータを取り込む。
前述のように、シリアルフラッシュメモリ２００は、データＤ（ａｄｙ）に続いて、アドレスａｄｙ＋１，ａｄｙ＋２，・・・にそれぞれ格納されたデータＤ（ａｄｙ＋１），Ｄ（ａｄｙ＋２），・・・を自動的に出力する。これらのデータは、データバッファ４−ｉの各ワードレジスタに順次格納される。このとき、ワードレジスタは、以前に読出したデータを格納していたとしても、新たに読み出されたデータにより上書きされる。
以上の説明からわかるように、本実施形態によれば、例えば割り込み動作のように、アドレスがそれまでと連続しないアドレスにジャンプし、その後元のアドレスに戻るような場合であっても、リード要求されたアドレスのデータを即座にＣＰＵコア２０に出力することができる。
【００５１】
以上、本実施形態によれば、第２の実施形態と同様の効果が得られ、さらに、不連続なアドレスへのジャンプが発生する場合でも、データアクセスの速度を可及的に高速に行うことができる。
【００５２】
（第４の実施形態）
次に、第４の実施形態について説明する。本実施形態は、リセット判定回路を備える。そして、例外要因（例えばマイクロコンピュータの初期化や省電力モードへの遷移）が発生した際に、その例外要因が解除された時に実行するプログラムを、予めデータバッファに格納しておく。これにより、例外要因が解除された時におけるデータアクセスを高速化するものである。
【００５３】
図５は、本実施形態に係るＳＦインターフェース回路１０Ｄの構成を示している。この図からわかるように、ＳＦインターフェース回路１０Ｄは、自動コマンド生成回路１と、データバッファ管理回路３と、ｋ個のデータバッファ４−１，４−２，・・・，４−ｋと、ｋ個のアドレス設定レジスタ５−１，５−２，・・・，５−ｋと、リセット判定回路６と、制御部７Ｄとを備える。
【００５４】
以下、本実施形態に係るＳＦインターフェース回路１０Ｄの動作を説明する。
（１）ＲＥＳＥＴ信号がアサートされ、リセット判定回路６がそれを感知する。このリセット判定回路６は、ＲＥＳＥＴ信号の示す要因（例外要因）に応じて、その例外要因が解除された際に読み出すことになるアドレス（以下、例外アドレスという。）を出力する。
（２）制御部７Ｄは、あるアドレス設定レジスタ（ここでは、アドレス設定レジスタ５−ｊとする。）に例外アドレスを格納する。
（３）制御部７Ｄは、自動コマンド生成回路１に、例外アドレスのデータをリードするためのリードコマンド及びアドレスセットを生成させ、生成されたリードコマンド及びアドレスセットをシリアルフラッシュメモリ２００に発行する。
（４）例外アドレスに格納されたデータ、及び例外アドレスと順次連続する複数のアドレスにおける複数のデータは、アドレス設定レジスタ５−ｊと対応付けられたデータバッファ４−ｊの第１ワードレジスタから順に格納される。
なお、データバッファ管理回路３によりデータバッファ４−ｊが一杯になったと判定されると、続きのデータはデータバッファ４−（ｊ＋１）の第１ワードレジスタから順に格納される。このようにして、例外要因が解除された時に必要なデータをデータバッファに格納する。
（５）例外要因が解除されると、制御部７Ｄは、ＣＰＵコア２０の要求を受けて、データバッファに格納しておいたデータをＭＤバスに（ＣＰＵコア２０に）出力し、ＭＡＣＫ信号をアサートする。
（６）ＭＡＣＫ信号がアサートされると、ＣＰＵコア２０は、ＭＤバスに出力されたデータを取り込む。
なお、上記のアドレス設定レジスタ５−ｊとしては、例えば、アドレスが格納されていないアドレス設定レジスタのうち、最も符号の数の小さいものを使用する。即ち、アドレス設定レジスタ５−１，５−２にアドレスが格納されており、アドレス設定レジスタ５−３，５−４，５−５にアドレスが格納されていない場合、アドレス設定レジスタ５−３を使用する。もし空いているアドレス設定レジスタがなければ、例えば、アドレス設定レジスタ５−１を使用する。
また、上記の説明では、アドレス設定レジスタ及びデータバッファは複数設けられているが、第２の実施形態のように１つでもよい。
以上、本実施形態によれば、例外要因が解除された時に必要となるデータを、例外要因を感知した際に予めデータバッファに格納しておくことにより、例外要因が解除された時のデータアクセスを可及的に高速に行うことができる。
【図面の簡単な説明】
【００５５】
【図１】マイクロコンピュータの概略構成を示す図である。
【図２】第１の実施形態に係るＳＦインターフェース回路の構成を示す図である。
【図３】第２の実施形態に係るＳＦインターフェース回路の構成を示す図である。
【図４】第３の実施形態に係るＳＦインターフェース回路の構成を示す図である。
【図５】第４の実施形態に係るＳＦインターフェース回路の構成を示す図である。
【符号の説明】
【００５６】
１・・・自動コマンド生成回路、２Ｂ，２Ｃ・・・連続アドレス判定回路、３・・・データバッファ管理回路、４・・・データバッファ、５・・・アドレス設定レジスタ、６・・・リセット判定回路、７Ａ，７Ｂ，７Ｃ，７Ｄ・・・制御部、８・・・ワードレジスタ、１０，１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ・・・ＳＦインターフェース回路、２０・・・ＣＰＵコア、３０・・・バスインターフェース回路、４０・・・内蔵メモリ、１００・・・マイクロコンピュータ、２００・・・シリアルフラッシュメモリ
【図１】
2010092342.tif 000003
【図２】
2010092342.tif 000004
【図３】
2010092342.tif 000005
【図４】
2010092342.tif 000006
【図５】
2010092342.tif 000007