(57)【要約】【課題】マイクロコンピュータにおいてメモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らす。【解決手段】  ＣＰＵが出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、シリアルフラッシュメモリに、チップ選択信号及びクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラ（６０）をマイクロコンピュータに搭載し、このシリアルメモリインタフェースコントローラには、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する動作モードを採用する。【選択図】図１
2012059036.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有するマイクロコンピュータであって、
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する第１モードを有する、マイクロコンピュータ。
【請求項２】
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了するのに同期して前記チップ選択信号を非活性状態にする第２モードを有する、請求項１記載のマイクロコンピュータ。
【請求項３】
前記第1モード又は第２モードの何れを選択するかが指定されるモードレジスタを有する、請求項２記載のマイクロコンピュータ。
【請求項４】
前記第１モードが選択されたとき、前記シリアルメモリインタフェースコントローラは、前記データリードを完了したときの次のアクセス要求が当該データリードの最後のメモリアドレスに続くアドレスへのリードアクセス要求であることを検出すると、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する、請求項１記載のマイクロコンピュータ。
【請求項５】
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードの最後のメモリアドレス又はその後続メモリアドレスを保持するアドレス保持回路を有し、アドレス保持回路に保持されたメモリアドレスに基づいてその次のアクセス要求が前記後続メモリアドレスへのリードアクセス要求であるか否かを判別する、請求項１記載のマイクロコンピュータ。
【請求項６】
前記シリアルメモリインタフェースコントローラは、シリアルアクセスメモリから読み出したリードデータを後続のリードアクセス要求に応答して出力するために保持するリードキャッシュを有する、請求項１記載のマイクロコンピュータ。
【請求項７】
前記シリアルメモリインタフェースコントローラは、リードアクセス要求に応答してシリアルアクセスメモリから読み出したリードデータ及び必要に応じてそれに続く後続メモリアドレスのデータをリードキャッシュに保持する、請求項６記載のマイクロコンピュータ。
【請求項８】
前記リードキャッシュに保持する前記後続メモリアドレスのデータの数を指定するコントロールレジスタを有する、請求項７記載のマイクロコンピュータ。
【請求項９】
前記中央処理装置の制御に基づいて前記シリアルアクセスメモリに前記アクセス要求を与えるダイレクトメモリアクセスコントローラを有し、
前記シリアルアクセスメモリは電気的に書き換え可能な不揮発性メモリであるシリアルフラッシュメモリである、請求項1記載のマイクロコンピュータ。
【請求項１０】
中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有するマイクロコンピュータであって、
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで又は所定時間が経過するまでのいずれか早く生ずるまで前記チップ選択信号の活性状態を維持する動作モードを有する、マイクロコンピュータ。
【請求項１１】
マイクロコンピュータと前記マイクロコンピュータに接続されたシリアルアクセスメモリとを有するデータ処理システムであって、
前記シリアルアクセスメモリは、チップ選択信号によるチップ選択状態において、クロック信号に同期してアクセスコマンドとアクセスアドレスを入力すると、入力したアクセスコマンドとアクセスアドレスで指定される内部状態を生成し、その内部状態に従い、チップ非選択状態にされるまで、クロック信号に同期してデータのリード動作又はデータのライト動作を行い、
前記マイクロコンピュータは、中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有し、
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する、データ処理システム。
【請求項１２】
前記シリアルメモリインタフェースコントローラは、前記データリードを完了したときの次のアクセス要求が当該データリードの最後のメモリアドレスに続くメモリアドレスへのリードアクセス要求であることを検出すると、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する、請求項１１記載のデータ処理システム。
【請求項１３】
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくアクセス制御によるデータリードの最後のメモリアドレス又はその後続メモリアドレスを保持するアドレス保持回路を有し、アドレス保持回路に保持されたメモリアドレスに基づいてその次のアクセス要求が前記後続メモリアドレスへのリードアクセス要求であるか否かを判別する、請求項１１記載のマイクロコンピュータ。
【請求項１４】
マイクロコンピュータと前記マイクロコンピュータに接続されたシリアルフラッシュメモリとを有するデータ処理システムであって、
前記マイクロコンピュータは、中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有し、
前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードの最後のメモリアドレス又はその次のメモリアドレスを保持するアドレス保持回路を有し、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードアクセスを完了したとき、そのリードデータの最後のメモリアドレスに続くメモリアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持し、当該最後のメモリアドレスに続くメモリアドレスへの次のリードアクセス要求を検出したときは、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中央処理装置（ＣＰＵ）からのアクセス要求に応答してシリアルアクセスメモリに対するインタフェース制御を行うシリアルメモリインタフェースコントローラを備えたマイクロコンピュータ、更にはデータ処理システムに関し、例えば、携帯電話機に適用して有効な技術に関する。
【背景技術】
【０００２】
データ及びアドレスの外部インタフェースをシリアルで行なうようにしてその外部端子数を削減したシリアルアクセスメモリとして例えばシリアルフラッシュメモリが用いられている。ＣＰＵが命令を実行してシリアルフラッシュメモリをアクセスするとき、シリアルフラッシュメモリに固有のメモリインタフェース仕様を満足してメモリ制御を行うためのメモリインタフェース回路が必要になる。
【０００３】
そのメモリインタフェース回路には特許文献１に記載されるように、シリアルフラッシュメモリから供給されるシリアルデータをパラレルデータに変換し、逆の通信方向に対してはこれとは逆にパラレルデータからシリアルデータに変換しなければならない。メモリインタフェース回路にそのような機能を実現するのに、ＣＰＵがアクセスするデータレジスタ、アドレスレジスタ及びコマンドレジスタなどのメモリマップドレジスタを用意し、ＣＰＵがそれらのレジスタをアクセスすることによってシリアルフラッシュメモリをアクセス可能とすることができる。このようシリアルインタフェース回路のような通信制御回路に代えて、特許文献２に記載のように、ＣＰＵから供給されるアドレス及びコマンドを解読することによってデータのパラレル・シリアル変換やメモリアクセスコマンドを生成してシリアルフラッシュメモリとの間のメモリインタフェース制御を行うメモリコントロールロジックを採用することも可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１４９４９１号公報
【特許文献２】特開２０１０−９２３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記シリアルインタフェース回路のような通信制御回路を用いてシリアルフラッシュメモリをアクセスする場合にはＣＰＵが多くのレジスタアクセスを行なわなければならず、アクセス高速が著しく低下する。更に、ＣＰＵの動作プログラムをシリアルフラッシュメモリに配置する場合に、ＣＰＵのリセットスタート若しくはブート時にＣＰＵは直接シリアルフラッシュメモリをアクセスすることができないため、シリアルフラッシュメモリとは別のメモリにリセットスタート若しくはブート時に通信制御回路のレジスタを初期設定するための別の制御データや制御プログラムが必要になり、回路規模が増大してしまう。これらの点については、特許文献２に記載のようなメモリコントロールロジックを採用すればある程度解消することは可能であるが、メモリとの間のシリアルインタフェースを制御する性質上、シリアルパラレル変換及びパラレル・シリアル変換によるオーバーヘッドの増加を避けることができない。そうであれば、更に別の工夫によってシリアルアクセスメモリに対する更なる高速アクセスを実現することについて本発明者は検討した。
【０００６】
本発明の目的は、メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことができるメモリコントロール機能を備えたマイクロコンピュータ、更にはデータ処理システムを提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、シリアルフラッシュメモリに、チップ選択信号及びクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラをマイクロコンピュータに搭載し、このシリアルメモリインタフェースコントローラには、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する動作モードを採用する。
【００１０】
これにより、後続のアクセス要求が直前のリードアクセスのメモリアドレスに連続するリードアクセス要求の場合には改めてメモリアドレス及びメモリコマンドを発行することなくクロックを変化させればよくなる。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１２】
すなわち、メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の一実施の形態に係るマイクロコンピュータが備えるシリアルメモリインタフェースコントローラの具体例を示すブロック図である。
【図２】図２は本発明の一実施の形態に係るマイクロコンピュータのブロック図である。
【図３】図３はシリアルフラッシュメモリの動作タイミング図である。
【図４】図４はＣＰＵからのアクセス要求に応答してシリアルメモリインタフェースコントローラがシリアルフラッシュメモリを動作せせるときのタイミングチャートである。
【図５】図５はチップ選択信号のネゲートを抑止して連続アドレスリードを行なうときの動作タイミング図である。
【図６】図６はチップ選択信号をネゲートして不連続アドレスリードを行なうときの動作タイミング図である。
【図７】図７はリードキャッシュの一例を示すブロック図である。
【図８】図８はリードキャッシュのキャッヒット時及びミスヒット時の夫々のデータリード経路を例示する説明図である。
【図９】図９は複数キャッシュライン分のデータをキャッシュフィルするときのシリアルキャッシュメモリのアクセス動作タイミング図である。
【発明を実施するための形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕＜リードアドレスの不連続検出によってＣＳネゲート＞
本発明の代表的な実施の形態に係るマイクロコンピュータ（１）は、中央処理装置（１０）と、前記中央処理装置が出力するアクセス要求に含まれるアドレス（ＡＤＲ）及びコマンド（ＣＭＤ）に基づいて、チップ選択信号（ＣＳ＃）を活性化し、シリアルアクセスメモリ（２，３）にクロック信号（ＳＣＫ）を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラ（６０）と、を有する。前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する第１モードを有する。
【００１６】
第１モードによれば、後続のアクセス要求が直前のリードアクセスのメモリアドレスに連続するリードアクセス要求の場合には、改めてメモリアドレス及びメモリコマンドを発行することなくクロックを変化させればよくなる。したがって、メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことが可能になる。
【００１７】
〔２〕＜リードアドレス終了によってＣＳネゲート＞
項１のマイクロコンピュータにおいて、前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了するのに同期して前記チップ選択信号を非活性状態にする第２モードを有する。
【００１８】
第１モードで動作させないことが明らかな場合には第１モードを用いることによって、アクセス要求に応答するデータリードを完了した後にチップ選択信号を非活性にすべきか否かの判別動作を必要とせず、低消費電力に資することができる。
【００１９】
〔３〕＜モードレジスタ＞
項２のマイクロコンピュータにおいて、前記第１モード又は第２モードの何れを選択するかが指定されるモードレジスタ（７６）を有する。
【００２０】
中央処理装置によるレジスタアクセスなどによって前記第１モード又は第２モードの選択を容易に行なうことができる。
【００２１】
〔４〕＜リードアドレスの連続検出時におけるメモリアドレス及びメモリコマンド発行の省略＞
項１乃至３のいずれかのマイクロコンピュータにおいて、前記第１モードが選択されたとき、前記シリアルメモリインタフェースコントローラは、前記データリードを完了したときの次のアクセス要求が当該データリードの最後のメモリアドレスに続くアドレスへのリードアクセス要求であることを検出すると、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する。
【００２２】
メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことができる。
【００２３】
〔５〕＜アドレス保持回路＞
項１乃至４のいずれかのマイクロコンピュータにおいて、前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードの最後のメモリアドレス又はその後続メモリアドレスを保持するアドレス保持回路（７２）を有し、アドレス保持回路に保持されたメモリアドレスに基づいてその次のアクセス要求が前記後続メモリアドレスへのリードアクセス要求であるか否かを判別する。
【００２４】
アクセス要求に応答するデータリードを完了した後にチップ選択信号を非活性にすべきか否かの判別を容易に行なうことができる。
【００２５】
〔６〕＜リードキャッシュ＞
項１乃至５のいずれかのマイクロコンピュータにおいて、前記シリアルメモリインタフェースコントローラは、シリアルアクセスメモリから読み出したリードデータを後続のリードアクセス要求に応答して出力するために保持するリードキャッシュ（６３）を有する。
【００２６】
リードキャッシュが保持するデータに対するリードアクセスが要求されたときシリアルメモリインタフェースコントローラはシリアルメモリアクセスメモリからデータをリードすることを要せず、更なるリード動作の高速化に資することができる。
【００２７】
〔７〕＜後続アドレスのデータをキャッシュフィル＞
項６のマイクロコンピュータにおいて、前記シリアルメモリインタフェースコントローラは、リードアクセス要求に応答してシリアルアクセスメモリから読み出したリードデータ及び必要に応じてそれに続く後続メモリアドレスのデータをリードキャッシュに保持する。
【００２８】
キャッシュメモリにヒット率を向上させることができる。
【００２９】
〔８〕＜キャッシュフィルのデータ数をレジスタ指定＞
項７のマイクロコンピュータにおいて、前記リードキャッシュに保持する前記後続メモリアドレスのデータの数を指定するコントロールレジスタ（７５）を有する。
【００３０】
リードキャッシュのキャッシュミス時にシリアルアクセスメモリをアクセスして事前にキャッシュフィルする動作によるウェイト時間を必要に応じて可変することが可能になる。
【００３１】
〔９〕＜ダイレクトメモリアクセスコントローラ、シリアルフラッシュメモリ＞
項１乃至８の何れかのマイクロコンピュータは、前記中央処理装置の制御に基づいて前記シリアルアクセスメモリに前記アクセス要求を与えるダイレクトメモリアクセスコントローラ（１４）を有する。前記シリアルアクセスメモリは電気的に書き換え可能な不揮発性メモリであるシリアルフラッシュメモリ（２，３）である。
【００３２】
ダイレクトメモリアクセスコントローラからのアクセス要求に対しても中央処理装置と同様にシリアルアクセスメモリのアクセス制御を行うことができる。シリアルフラッシュメモリにおけるデータライトの動作速度はもともと遅いので、リード動作の高速化に着目した上記マイクロコンピュータはシリアルフラッシュッメモリに好適である。
【００３３】
〔１０〕＜リードアドレスの不連続検出又は所定時間経過によってＣＳネゲート＞
本発明の別の実施の形態に係るマイクロコンピュータは、中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有する。前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで又は所定時間が経過するまでのいずれか早く生ずるまで前記チップ選択信号の活性状態を維持する動作モードを有する。
【００３４】
項１と同様の作用を有すると共に、長期にわたってチップ選択状態にされることを回避することができる。
【００３５】
〔１１〕＜リードアドレスの不連続検出によってＣＳネゲート＞
本発明の別の実施の形態に係るデータ処理システムは、マイクロコンピュータと前記マイクロコンピュータに接続されたシリアルアクセスメモリとを有する。前記シリアルアクセスメモリは、チップ選択信号によるチップ選択状態において、クロック信号に同期してアクセスコマンドとアクセスアドレスを入力すると、入力したアクセスコマンドとアクセスアドレスで指定される内部状態を生成し、その内部状態に従い、チップ非選択状態にされるまで、クロック信号に同期してデータのリード動作又はデータのライト動作を行う。前記マイクロコンピュータは、中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有する。前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードを完了したとき、そのリードデータの最後のメモリアドレスに続くアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持する。
【００３６】
これによれば、後続のアクセス要求が直前のリードアクセスのメモリアドレスに連続するリードアクセス要求の場合には、改めてメモリアドレス及びメモリコマンドを発行することなくクロックを変化させればよくなる。したがって、メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことが可能になる。
【００３７】
〔１２〕＜リードアドレスの連続検出時におけるメモリアドレス及びメモリコマンド発行の省略＞
項１１のデータ処理システムにおいて、前記シリアルメモリインタフェースコントローラは、前記データリードを完了したときの次のアクセス要求が当該データリードの最後のメモリアドレスに続くメモリアドレスへのリードアクセス要求であることを検出すると、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する。
【００３８】
メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことができる。
【００３９】
〔１３〕＜アドレス保持回路＞
項１１又は１２のデータ処理システムにおいて、前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくアクセス制御によるデータリードの最後のメモリアドレス又はその後続メモリアドレスを保持するアドレス保持回路を有し、アドレス保持回路に保持されたメモリアドレスに基づいてその次のアクセス要求が前記後続メモリアドレスへのリードアクセス要求であるか否かを判別する。
【００４０】
アクセス要求に応答するデータリードを完了した後にチップ選択信号を非活性にすべきか否かの判別を容易に行なうことができる。
【００４１】
〔１４〕＜リードアドレスの不連続検出によってＣＳネゲート＞
本発明の別の実施の形態に係るデータ処理システムは、マイクロコンピュータと前記マイクロコンピュータに接続されたシリアルフラッシュメモリとを有する。前記マイクロコンピュータは、中央処理装置と、前記中央処理装置が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号を活性化し、シリアルアクセスメモリにクロック信号を供給し、前記クロック信号に同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリのアクセス制御を行うシリアルメモリインタフェースコントローラと、を有する。前記シリアルメモリインタフェースコントローラは、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードの最後のメモリアドレス又はその次のメモリアドレスを保持するアドレス保持回路を有し、前記アクセス要求に応答するメモリアドレス及びメモリコマンドに基づくデータリードアクセスを完了したとき、そのリードデータの最後のメモリアドレスに続くメモリアドレスへのリードアクセス要求以外のアクセス要求を検出するまで前記チップ選択信号の活性状態を維持し、当該最後のメモリアドレスに続くメモリアドレスへの次のリードアクセス要求を検出したときは、当該次のアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略して前記シリアルアクセスメモリにクロック信号を供給する。
【００４２】
これによれば、後続のアクセス要求が直前のリードアクセスのメモリアドレスに連続するリードアクセス要求の場合には改めてメモリアドレス及びメモリコマンドを発行することなくクロックを変化させればよくなる。したがって、メモリアクセスコマンドの生成などの点でシリアルアクセスメモリに対するアクセスのオーバーヘッドを減らすことができる。
【００４３】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４４】
図２には本発明の一実施の形態に係るデータ処理システムが例示される。同図に示されるデータ処理システムにはマイクロコンピュータ１とこのマイクロコンピュータ１の外部に接続されたシリアルアクセスメモリの一例であるシリアルフラッシュメモリ２，３が代表的に示され、それら、若しくはそれらと図示を省略する別の回路モジュールとは図示を省略する回路基板に実装されてなる。
【００４５】
シリアルフラッシュメモリ２，３はそれぞれ単結晶シリコンのような１個の半導体基板に形成された半導体集積回路とされる。
【００４６】
シリアルフラッシュメモリ２，３の構成については公知であり、ここでは特に図示はしないが、例えばシリコン窒化膜などの電荷トラップ膜に捕獲された電荷量に応じて閾値電圧が相違されるメモリトランジスタを用いて電気的に書き換え可能にされた多数の不揮発性メモリセルを有し、外部インタフェースにシリアルインタフェースを採用することによって外部端指数の削減を図った書き換え可能な不揮発性メモリである。このシリアルアクセスメモリ２，３は、特に制限されないが、クロック信号ＳＣＫの入力端子、チップ選択信号ＣＳ＃の入力端子、複数のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３を有する。シリアルフラッシュメモリ２，３は、アドレス、コマンド及び書き込みデータの入力にデータ端子ＳＩ／ＩＯ０を用いると共に読み出しデータの出力端子にデータ端子ＳＯ／ＩＯ１を用いる動作形態、あるいは、アドレス、コマンドの入力にデータ端子ＳＩ／ＩＯ０を用いると共にデータの入出力に４個のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３を用いる動作形態が選択可能にされ、ここでは後者の動作形態を選択するものとする。例えば、図３に例示されるように、このシリアルアクセスメモリ２，３は、チップ選択信号ＣＳ＃によるチップ選択状態（ローレベル）において、クロック信号ＳＣＫに同期してデータ端子ＳＩ／ＩＯ０からメモリコマンドＭＣＭＤとメモリアドレスＭＡＤＲを入力すると、入力したメモリコマンドＭＣＤＭとメモリアドレスＭＡＤＲで指定される内部状態を生成し、その内部状態に従い、チップ非選択状態（ハイレベル）にされるまで、クロック信号ＳＣＫに同期して４個のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３（又は１個のデータ端子ＳＯ／ＩＯ１）からデータのリード動作又はデータのライト動作を行う。アクセスコマンドとアクセスアドレスを入力しているときデータ端子ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３は高出力インピーダンス状態（ＨｉＺ）にされる。４個のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３に対するリードデータ又はライトデータのビット配列は、特に制限されないが、図３に例示されるように、データ端子（ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３）の順に（７，６，５，４）、（３，２，１，０）のビット配列順にされる。ＭＣＭＤはリードアクセス又はライトアクセスのためのメモリコマンド、ＭＡＤＲはリードアクセス又はライトアクセスのためのメモリアドレス、ＤＡＴ０は先頭１バイトのリードデータ又はライトデータを意味し、ＤＡＴ１以降は先頭バイトに後続するバイト単位のリードデータ又はライトデータである。
【００４７】
尚、図２においてシリアルフラッシュメモリ２の４個のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３にはサフィックス＿０を付し、シリアルフラッシュメモリ３の４個のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３にはサフィックス＿１を付して、両者を区別して図示してあるが、双方のメモリ２，３は並列的に動作するから以下の明細書の説明においてシリアルフラッシュメモリ２、３のデータ端子には便宜上同じ参照符号ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３を付して説明する。
【００４８】
マイクロコンピュータ１は、特に制限されないが、公知のＣＭＯＳ集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成される。
【００４９】
マイクロコンピュータ１は、ＣＰＵ命令フェッチバス１２及びＣＰＵメモリアクセスバス１３にそれぞれ接続されたＣＰＵ１０及び浮動小数点ユニット１１を有する。ＣＰＵ命令フェッチバス１２にはキャッシュコントローラ１５、命令キャッシュメモリ１６、高速内蔵ＲＡＭ18が接続され、ＣＰＵメモリアクセスバス１３にはキャッシュコントローラ１５、オペランドキャッシュメモリ１７、高速内蔵ＲＡＭ１８が接続される。前記キャッシュコントローラ１５、命令キャッシュメモリ１６、オペランドキャッシュメモリ１７、及び高速内蔵ＲＡＭ１８は、ポート２を介して外部バス制御を行うバスステートコントローラ２３及び大容量のＲＡＭ３０〜３５がそれぞれ接続された内部バス５０にインタフェースされる。大容量のＲＡＭ３０〜３５はフレームバッファ、データバッファ、ワーク領域などに用いられる。その他に内部バス５０には、周辺バス４２を介して各種周辺モジュール４４に接続する周辺バスコントローラ４０、同じく周辺バス４３を介して各種周辺モジュール４５に接続する周辺バスコントローラ４１、フレームバッファへ画像データを描画するグラフィックプロセッサ２０、フレームバッファに描画された画像データに対する表示制御を行うビデオディスプレイコントローラ２２、画像データの符号化復号処理を行う画像コーデックユニット２１およびダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１４が接続される。そして内部バス５０には、シリアルメモリインタフェースコントローラ（シリアルメモリ用バスコントローラ）６０が接続され、ここに外部配線及び複数の端子を介して前記シリアルフラッシュメモリ２，３が結合される。
【００５０】
シリアルメモリインタフェースコントローラ（ＳＰＩＢＳＣ）６０はＣＰＵ１０又はＣＰＵ１０の制御に基づいてＤＭＡＣ１４が出力するアクセス要求に含まれるアドレス及びコマンドに基づいて、チップ選択信号ＣＳ＃（＃はＬｏｗ状態が活性状態・アクティブ状態を示す）を活性化し、シリアルアクセスメモリ２，３にクロック信号ＳＣＫを供給し、前記クロック信号ＳＣＫに同期してメモリアドレス及びメモリコマンドを出力してシリアルアクセスメモリ２，３のアクセス制御を行う。
【００５１】
図１にはシリアルメモリインタフェースコントローラ６０の具体例が示される。シリアルメモリインタフェースコントローラ６０は、セレクタ６７を介してシリアルフラッシュメモリ２，３に接続される送信データシフトレジスタ６５及び受信データシフトレジスタ６６を備え、また、前記内部バス５０に接続されるバスインタフェース６１を備える。送信データシフトレジスタ６５はモジュール内バス６４から並列データとして与えられるメモリアドレス、メモリコマンド、ライトアクセスに必要なライトデータをシリアルフラッシュメモリ２，３に適合するシリアルデータに変換して夫々のシリアルフラッシュメモリ２，３のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３に向けて出力する。受信データシフトレジスタ６６は夫々のシリアルフラッシュメモリ２，３のデータ端子ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３からシリアルに出力されるリードデータを入力し、これを並列データに変換して、モジュール内バス６４に出力する。
【００５２】
前記バスインタフェース６１には送信データバッファ６２、リードキャッシュ６３、アドレス制御回路７０、及び制御レジスタ回路７３が接続され、それらはモジュール内バス６４の対応する信号線を介して送信データシフトレジスタ６５、受信データシフトレジスタ６６、送受信制御回路７７及びボーレートジェネレータ７８に接続する。
【００５３】
バスインタフェース６１はＣＰＵ１０又はＤＭＡＣ１４などが発行するアクセス要求を入力すると、当該アクセス要求に含まれるアドレスをアドレス制御回路７０に与え、リードライトの区別やアクセス語数などを示すコマンドを制御レジスタ回路７３に与える。制御レジスタ回路７３はＣＰＵ１０によって初期設定されるモードレジスタ（ＭＤＲＥＧ）７４及びコントロールレジスタ（ＣＴＲＲＥＧ）７５並びにコマンドレジスタ（ＣＭＤＲＥＧ）７６を有し、バスインタフェース６１はアクセス要求に含まれるコマンドをコマンドレジスタ７６にストアし、アクセス要求に含まれるアドレスをアドレス制御回路７０に与える。
【００５４】
送信データバッファ６２は内部バス５０からバスインタフェース６１に与えられたライトデータを一時的に保持する。リードキャッシュ６３はシリアルフラッシュメモリ２，３から最近読み出されたデータを保持する連想記憶動作を行う。
【００５５】
アドレス制御回路７０は与えられたアドレスの一部をデコードして当該アクセス要求がシリアルインタフェースメモリ２，３に対するアクセス要求であるか否かを判別する。アドレス制御回路７０がシリアルインタフェースメモリ２，３に対するアクセス要求であることを判別すると、アドレス制御回路７０は前記アクセス要求に含まれるアドレス及びコマンドレジスタにラッチされたコマンドに基づきアドレスカウンタ７１及びアドレス保持回路７２を用いてシリアルフラッシュメモリ２，３のアクセスアドレスを生成し、アクセス要求がリードアクセスの場合にはリードキャッシュ６３に連想動作をさせる。これによってリードキャッシュ６３が連想ヒット（キャッシュヒット）の場合には、リードキャッシュ６３が保持するデータをリードデータとしてバスインタフェース６１に返してバス５０に供給する。連想ミスの場合又はそのときのアクセス要求がライトアクセスの場合には、アドレス制御回路７０は前記アクセス要求に含まれるアドレス及びコマンドレジスタにラッチされたコマンドに基づき、アドレスカウンタ７１及びアドレス保持回路７２を用いてシリアルフラッシュメモリ２，３のアクセスアドレスを生成すると共に、送受信制御回路７７にシリアルフラッシュメモリ２，３に対するアクセス動作の開始を指示する。
【００５６】
送受信制御回路７７は、シリアルフラッシュメモリ２，３に対するアクセス動作の開始が指示されると、チップ選択信号ＣＳ＃を活性化し、ボーレートジェネレータ７８にシリアルクロックＳＣＫを発生させ、アドレス制御回路７０が生成するメモリアドレス及び制御レジスタ回路７３に保持されるコマンドに応ずるメモリコマンドを送信データシフトレジスタ６５からセレクタ６７を介してシリアルフラッシュメモリ２，３に与える。メモリコマンドで指示されたアクセス動作がライト動作の場合には送受信制御回路７７は、送信データバッファ６２が保持するライトデータを送信データシフトレジスタ６５からセレクタ６７を介してシリアルフラッシュメモリ２，３に与える。メモリコマンドで指示されたアクセス動作がリード動作の場合には送受信制御回路７７は、シリアルフラッシュメモリ２，３から読み出されたデータを受信データシフトレジスタ６６でパラレルデータに変換し、変換されたパラレルデータをリードキャッシュ６３に与え、与えられたリードデータはアドレス制御回路７０の制御に基づいてリードキャッシュ６３にキャッシュフィルされると共に、ＣＰＵ１０などからのアクセス要求に応答するリードデータがリードキャッシュ６３からバスインタフェース６１に出力されてバス５０に与えられる。
【００５７】
シリアルメモリインタフェースコントローラ６０によるリードアクセスの高速化への対応について以下に説明する。
【００５８】
第１は、ＣＰＵ１０などからのアクセス要求に対してアドレス制御回路７０及び制御レジスタ回路７３により、図４のアクセスタイミングに例示されるように、ＣＰＵ１０等からのアクセス要求に含まれるアドレスＡＤＲ及びコマンドＣＭＤに直接応答してシリアルフラッシュメモリ２，３をアクセス制御するメモリアドレスＭＡＤＲやメモリコマンドＭＣＭＤを生成することである。ＣＰＵによるレジスタアクセスによってメモリアドレスやメモリコマンドをレジスタに設定し、設定したメモリアドレスやメモリコマンドをシリアルフラッシュメモリに与え、シリアルフラッシュメモリからリードされたデータをデータレジスタに格納し、ＣＰＵにこのデータレジスタのデータをリードさせる、通信制御モジュールを用いる場合に比べて高速リードアクセスが実現される。
【００５９】
第２は、連続メモリアドレスに対するリードアクセス要求が後続しないことを検出するまでチップ選択信号ＣＳ＃をアサート状態に維持する第１モードを有することである。即ち、シリアルメモリインタフェースコントローラ６０は、リードアクセス要求に対するデータリードを完了するのに同期してチップ選択信号ＣＳ＃をネゲートする第２モードのほかに、前記第１モードを有する。ＣＰＵ１０によってリード及びライト可能なモードレジスタ７４は第１モード又は第２モードの選択ビットを有する。アドレス制御回路７０はアクセス要求に含まれるアドレスとコマンドで指定されるアクセス語数に基づいてメモリアドレスＭＡＤＲを順次演算するアドレスカウンタ回路７１及び、アドレスカウンタ回路７１で演算されたメモリアドレスを保持するアドレス保持回路７２を有す。アドレス保持回路７２に保持されたメモリアドレスが送信データシフトレジスタ６５からシリアルフラッシュメモリ２，３に供給される。ＣＰＵ１０などからのアクセス要求に応答するメモリアドレスＭＡＤＲ及びメモリコマンドＭＣＭＤに基づくデータリードが終了すると、当該最後のメモリアドレスはアドレスカウンタ回路７１でインクリメントされてアドレス保持回路７２に保持される。この状態で、ＣＰＵ１０などから次のアクセス要求があると、アドレス制御回路は当該アクセス要求に含まれる新たなアドレスに対応するメモリアドレスが前記アドレス保持回路７２に保持されているメモリアドレスに一致するか否かを判別する。一致しなければ送受信制御回路７７にチップ選択信号ＣＳ＃のネゲートを指示してから、当該アクセス要求に含まれるコマンド及びアドレスに従って上述の通りのメモリアクセス制御を行う。一方、アドレス制御回路７０が、新たなアクセス要求に含まれる新たなアドレスに対応するメモリアドレスが前記アドレス保持回路７２に保持されているメモリアドレスに一致することを判別し、且つ当該新たなアクセス要求に含まれる新たなコマンドがリード動作を指示していることを制御レジスタ回路７３が判別すると、送受信制御回路７７はチップ選択信号ＣＳ＃のアサート状態をそのままにして、当該新たなアクセス要求に答えるためのメモリアドレス及びメモリコマンドの発行を省略し、前記ボーレートジェネレータ７８から前記シリアルアクセスメモリ２，３にシリアルクロック信号ＳＣＫの供給を開始する。
【００６０】
例えば図５に例示されるように、時刻ｔ０で最後のデータリードを完了して、クロック信号ＳＣＫの出力を停止し、アクセス要求に応答するデータをバス５０に出力完了しても（ｔ１）、チップ選択信号ＣＳ＃をアサート状態に維持しておき、ＣＰＵ１０などから次のアクセス要求があったとき（ｔ２）、当該アクセス要求の対象が連続アドレスに対するリード動作であることが検出されると、新たなメモリコマンド及びメモリアドレスの発行を行なわずに時刻ｔ３からクロック信号ＳＣＫの変化を開始させて（クロック信号ＳＣＫの出力を再開し）、当該次のアクセス要求に応答するメモリ動作が開始される。期間Ｔ１はリード待ち時間である。図６は連続アドレスに対するリードアクセスが継続しなかったときの動作タイミングを示す。リード待ち期間Ｔ１を経過したとき、ＣＰＵ１０などから次のアクセス要求があったとき、当該アクセス要求の対象が連続アドレスに対するリード動作でないことが検出されると、チップ選択信号ＣＳ＃がネゲートされて（ｔ２）、アドレス制御回路７０及び制御レジスタ回路７３が通常の制御動作を行って、時刻ｔ５からクロック信号ＳＣＫの変化を開始させて、当該次のアクセス要求に応答するメモリ動作が開始される。
【００６１】
この第１モードの選択によれば、後続のアクセス要求が直前のリードアクセスのメモリアドレスに連続するリードアクセス要求の場合には、改めてメモリアドレス及びメモリコマンドを発行することなくシリアルクロック信号ＳＣＫを変化させればよくなる。したがって、複数のアクセス要求に応答する連続リードアクセスがあったときメモリアクセスコマンドの生成を省略できるなどの点でシリアルアクセスメモリ２，３に対するアクセスのオーバーヘッドを減らすことができる。図５および図６においてＲＢＵＲＳＴはキャッシュライン数を意味し、ここではＲＢＵＲＳＴ＝１とされる。
【００６２】
第３は、リードキャッシュの採用である。リード動作に比べてライト動作には長い時間を要することフラッシュメモリでは周知の事実であり、更にライトキャッシュを採用する場合にはキャッシュデータのコヒーレンシを保証するために複雑な制御ロジックを要することから、ここではライトキャッシュの採用は見送った。
【００６３】
図７に例示されるようにリードキャッシュ６３のメモリアレイ８０は、バリッドビットＶ、アドレスタグＴＡＧ、及びデータＤＡＴの格納領域をそれぞれが有する複数のキャッシュラインを有す。キャッシュラインはインデックスアドレスをデコードするアドレスデコーダ８１が選択し、バリッドビットＶによって有効とされるキャッシュラインのタグアドレスＴＡＧとメモリアドレスのタグ部との比較はコンパレータ（ＣＭＰ）８２が行なう。内部バス５０のデータアクセスサイズを例えば６４ビットとすると、例えば１キャッシュラインは６４ビットのデータを保持する。リードキャッシュ６３に対する、タグアドレス、インデックスアドレスの生成やキャッシュフィルに必要なメモリアドレスの生成はアドレス制御回路７０が行ない、キャッシュミス／キャッシュヒットに応ずる制御は送受信制御回路７７が行なう。
【００６４】
リードキャッシュ６３を採用することにより、リードキャッシュ６３が保持するデータに対するリードアクセスが要求されたとき、シリアルメモリインタフェースコントローラ６０は図８に例示されるようにデータ経路Ａを介して必要なリードデータを入手すればよく、データ経路Ｂ１，Ｂ２及びＢ３で示されるようにシリアルフラッシュメモリ２，３からデータをリードすることを要しない。
【００６５】
リードキャッシュ６３においてキャッシュミスを生じたとき、キャッシュフィルを行なうアドレス制御回路７０及び送受信制御回路７７は、キャッシュミスに係るリードデータのほかに、必要に応じてそのリードデータに続く後続メモリアドレスのデータをリードキャッシュに保持する制御を行う。例えば図９に例示されるように、６４ビットのリードアクセスに対して１キャッシュライン又は複数キャッシュライン分をキャッシュフィルの対象にすることができる。図９においてＲＢＵＲＳＴが複数キャッシュライン数を意味する。前記リードキャッシュ６３に保持する前記後続メモリアドレスのデータの数は、コントロールレジスタ７５にプログラマブルに指定可能にされる。複数キャッシュラインをキャッシュフィルの対象にするとき先頭の６４ビットはバスインタフェース６１を介して内部バス５０に供給されることになる。
【００６６】
キャッシュフィルのデータ数を可変可能にすることにより、リードキャッシュ６６のキャッシュミス時にシリアルアクセスメモリ２，３をアクセスして事前にキャッシュフィルする動作によるウェイト時間を必要に応じて可変することが可能になる。
【００６７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６８】
例えば、シリアルフラッシュメモリをアクセスする回路モジュールはＣＰＵとＤＭＡＣに限定されず、バスアクセス機能を有するその他の回路モジュールであってよい。また、データリードの完了後にチップ選択状態を維持する期間は、次のアクセスが後続メモリアドレスに対するリードアクセスでないことを検出するまでということに限定されず、その期間とデータリードの完了後の一定期間とのいずれか早く発生するまでの期間とすることも可能である。また、リードキャッシュの構成はアソシアティブに限定されず、セットアソシアティブ、又はダイレクトマップなどであってよい。マイクロコンピュータの内部回路モジュールの種類や内部バスの構成は図２に限定されず適宜変更可能である。内部バスのアクセス単位は６４ビットに限定されず適宜変更可能である。シリアルインタフェースメモリはシリアルフラッシュメモリに限定されない。マイクロコンピュータに外付けされるシリアルインタフェースメモリの数は２個に限定されず適宜変更可能である。シリアルフラッシュメモリの機能ならびに外部インタフェース仕様は上記説明に限定されず適宜変更可能である。
【符号の説明】
【００６９】
１  マイクロコンピュータ
２，３  シリアルフラッシュメモリ
ＳＣＫ  クロック信号
ＣＳ＃  チップ選択信号
ＳＩ／ＩＯ０、ＳＯ／ＩＯ１，ＩＯ２，ＩＯ３  データ端子
１２  ＣＰＵ命令フェッチバス
１３  ＣＰＵメモリアクセスバス
１０  ＣＰＵ
１４  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
６０  シリアルメモリインタフェースコントローラ（ＳＰＩＢＳＣ）
６７  セレクタ
６５  送信データシフトレジスタ
６６  受信データシフトレジスタ
５０  モジュール内バス
６１  バスインタフェース
６４  モジュール内バス
６２  送信データバッファ
６３  リードキャッシュ
７０  アドレス制御回路
７３  制御レジスタ回路
７７  送受信制御回路
７８  ボーレートジェネレータ
７４  モードレジスタ（ＭＤＲＥＧ）
７５  コントロールレジスタ（ＣＴＲＲＥＧ）
７６  コマンドレジスタ（ＣＭＤＲＥＧ）
【図１】
2012059036.tif 000003
【図２】
2012059036.tif 000004
【図３】
2012059036.tif 000005
【図４】
2012059036.tif 000006
【図５】
2012059036.tif 000007
【図６】
2012059036.tif 000008
【図７】
2012059036.tif 000009
【図８】
2012059036.tif 000010
【図９】
2012059036.tif 000011