(57)【特許請求の範囲】
【請求項１】
データを格納し周辺バスに接続される周辺回路と、
前記周辺バスにバスブリッジを介して接続され前記周辺バスのデータレートよりも高いデータレートを有する高速バスに接続され、前記周辺回路からデータを読み込むプロセッサと、
前記周辺回路からデータを読み込んで保持するデータキャッシュとを備え、該データキャッシュは、
前記周辺回路のアドレスを格納する周辺アドレスレジスタと、前記周辺回路のデータを格納する周辺データレジスタとを有し、前記周辺アドレスレジスタに格納されたアドレスのデータを、前記周辺データレジスタに対応して設けられ、前記周辺データレジスタと前記周辺回路とを接続して前記周辺回路のデータを転送する専用データ線を介して前記周辺回路から取得し、前記周辺データレジスタに格納するデータ取得手段と、
前記プロセッサから前記バスブリッジに対して行われる周辺回路へのアクセスを監視して、周辺アドレスを検出するアクセス監視手段と、
前記アクセス監視手段が検出した周辺アドレスと、前記周辺アドレスレジスタに格納されたアドレスとが一致すると、前記周辺データレジスタに格納されたデータを、前記バスブリッジを介して前記プロセッサに転送するデータ転送手段とを備えることを特徴とするコンピュータシステム。
【請求項２】
前記データキャッシュは、前記アクセス監視手段が検出した周辺アドレスを記憶するアドレス記憶部と、前記アドレス記憶部から周辺アドレスを抽出し、該抽出した周辺アドレスを前記周辺アドレスレジスタに格納するアドレス設定手段とを更に備える、請求項１に記載のコンピュータシステム。
【請求項３】
前記アドレス記憶部は、前記アクセス監視手段が検出した各周辺アドレスに対応させて、各周辺アドレスのアクセス毎にカウントアップするカウント数を更に記憶する、請求項２に記載のコンピュータシステム。
【請求項４】
前記周辺アドレスの何れかのカウント数が所定数以上になると、前記アドレス設定手段は、前記周辺アドレスを前記周辺アドレスレジスタに格納する、請求項３に記載のコンピュータシステム。
【請求項５】
ｍ個の前記データ取得手段を備え（ｍは２以上の整数）、前記アドレス設定手段は、カウント数が上位のｍ個の周辺アドレスを抽出し、該抽出したｍ個の周辺アドレスのそれぞれを、前記ｍ個のデータ取得手段の周辺アドレスレジスタに対応させて格納する、請求項３又は４に記載のコンピュータシステム。
【請求項６】
前記データ取得手段は、前記周辺回路のデータが更新されると、該更新後のデータによって前記周辺データレジスタが格納するデータを更新する、請求項１〜５の何れか一に記載のコンピュータシステム。
【請求項７】
前記専用データ線が、シリアルデータを送信するシリアル信号線である、請求項１〜６の何れか一に記載のコンピュータシステム。
【請求項８】
前記データ取得手段は、前記周辺アドレスレジスタが格納した周辺アドレスを、前記周辺回路に対して、前記周辺アドレスレジスタに対応して設けられ、前記周辺アドレスレジスタと前記周辺回路とを接続して前記周辺アドレスを転送する専用アドレス線を介して送信する、請求項７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、更に詳しくは、データ転送速度が相互に異なる高速バス及び低速周辺バスを備えた、組み込みシステム等に使用できるコンピュータシステムに関する。
【背景技術】
【０００２】
組み込みシステム等に使用されるコンピュータシステムは、一般に、プロセッサと、複数の周辺マクロとを有する。各周辺マクロは、それぞれ、外部との通信インターフェースとして構成され、或いは、外部信号に基づいて動作するタイマとして構成される。図５は、従来のコンピュータシステムの構成を示している。ＣＰＵ２０１は、高速バス２０２に接続され、周辺マクロ２０５（１）〜（４）は、それぞれ低速周辺バス２０４に接続される。通常、低速周辺バス２０４を伝送するデータのデータレートは、高速バス２０２のデータレートに比して低速である。
【０００３】
バスブリッジ２０３は、高速バス２０２に対応するデータレートのデータと低速周辺バス２０４のデータレートに対応するデータとの間でデータ変換を行う。例えば、ＣＰＵ２０１が周辺マクロ２０５からデータを読み取る際には、アクセスしたい周辺マクロ２０５が有するデータは、低速周辺バス２０５を介してバスブリッジ２０３に入力され、バスブリッジ２０３でデータ変換されて、高速バス２０２を介して、ＣＰＵ２０１に入力される。このような、バスブリッジ２０３を介したアクセスでは、バスブリッジ２０３が、周辺マクロ２０５からデータを読み取って変換している間に、ＣＰＵ２０１に実行待ち時間が生じ、ＣＰＵ２０１の処理能力が低下するという問題がある。
【０００４】
上記問題を回避する手法としては、ＤＭＡ（Direct Memory Access）を用いる手法がある。ＤＭＡは、低速周辺バス２０４を介して所望の周辺マクロ２０５にアクセスし、その周辺マクロ２０５のデータを、ＣＰＵ２０１によるアクセス要求とは無関係に、高速バス２０２に接続されたレジスタに転送する。ＣＰＵ２０１は、周辺マクロ２０５にアクセスする代わりに、そのレジスタに、高速バス２０２を介してアクセスすることで、周辺マクロ２０５のデータにアクセスでき、バスブリッジ２０３を用いる場合に比して、アクセス速度を高速化できる。
【０００５】
しかしながら、近年、コンピュータシステムでは、搭載される周辺マクロの数が増大しており、それに伴い、ＤＭＡが低速バスを占有する頻度（割合）が高くなってきている。この結果、ＣＰＵ２０１が、データを読み込みたいときに、ＤＭＡが低速周辺バス２０４を占有していると、ＣＰＵ２０１は、ＤＭＡが低速周辺バス２０４を開放するまで周辺マクロ２０５へアクセスすることができないといった事態が引き起こされる。このような事態が発生すると、ＣＰＵ２０１には実行待ち時間が発生し、結局、処理能力が低下するという問題を回避することができなくなる。
【０００６】
ここで、特許文献１には、低速周辺バスに接続されない周辺マクロを有するマイクロコンピュータが記載されている。図６は、特許文献１に記載されたマイクロコンピュータの構成を示している。このマイクロコンピュータは、低速周辺バス２０４に接続された周辺マクロ２０５（１）〜（２）と、低速周辺バス２０４に接続されずに、周辺制御ユニット２０６に接続される周辺マクロ２０５ａ（１）〜（３）とを有する。各周辺マクロ２０５ａと、周辺制御ユニット２０６との間では、シリアル通信により、データの送受信が行なわれる。
【０００７】
コンピュータシステム２００ａでは、ＣＰＵ２０１は、低速周辺バス２０４に接続された周辺マクロ２０５（１）及び２０５（２）に対しては、図５に示すコンピュータシステムと同様に、高速バス２０２、バスブリッジ２０３、及び、低速周辺バス２０４を介してアクセスする。一方、ＣＰＵ２０１は、周辺マクロ２０５ａ（１）〜（３）に対しては、高速バス２０２及び周辺制御ユニット２０６を介してアクセスする。特許文献１では、このような構成を採用することにより、周辺マクロ２０５ａがチップ上に散在しているときに、バス配線の面積低減効果が大きいとしている。
【特許文献１】特開２００３−９９４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１に記載のコンピュータシステム２００ａでは、各周辺マクロ２０５ａと周辺制御ユニット２０６との間では、シリアル伝送によりデータの送受信を行っているため、データ長が長い場合には、ＣＰＵ２０１がバスブリッジ２０３を介して低速周辺バス２０４に接続された周辺マクロ２０５にアクセスする場合に比して、アクセス速度が低下することがある。また、低速周辺バス２０４に接続される周辺マクロ２０５に対するアクセスが集中した場合には、図５に示すコンピュータシステム２００と同様に、ＣＰＵ２０１に実行待ち時間が発生して処理能力が低下する問題を解消することはできない。
【０００９】
本発明は、上記問題を解消し、周辺マクロの数が増加した場合でも、プロセッサが、所望の周辺マクロのデータに、高速にアクセスできるコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のコンピュータシステムは、データを格納し周辺バスに接続される周辺回路と、前記周辺バスにバスブリッジを介して接続され前記周辺バスのデータレートよりも高いデータレートを有する高速バスに接続され、前記周辺回路からデータを読み込むプロセッサと、前記周辺回路から専用データ線を介してデータを読み込んで保持するデータキャッシュとを備え、該データキャッシュは、前記周辺回路のアドレスを格納する周辺アドレスレジスタと、前記周辺回路のデータを格納する周辺データレジスタとを有し、前記周辺アドレスレジスタに格納されたアドレスのデータを、前記周辺回路から取得し、前記周辺データレジスタに格納するデータ取得手段と、前記プロセッサによる周辺回路へのアクセスを監視して、周辺アドレスを検出するアクセス監視手段と、前記アクセス監視手段が検出した周辺アドレスと、前記周辺アドレスレジスタに格納されたアドレスとが一致すると、前記周辺データレジスタに格納されたデータを前記プロセッサに転送するデータ転送手段とを備えることを特徴とする。
【００１１】
本発明のコンピュータシステムでは、プロセッサが周辺回路から読み込もうとするデータがデータキャッシュ内の周辺データレジスタに格納されているときには、プロセッサは、そのデータを、データキャッシュから取得することができ、高速バス、バスブリッジ、及び、周辺バスを介して周辺回路からデータを取得する場合に比して、読み込みにかかる時間を短縮できる。また、本発明では、周辺アドレスレジスタに格納する周辺アドレスを、所望の周辺回路の所望のデータを示す周辺アドレスで書き換えることにより、周辺データレジスタに格納されるデータの取得元を、簡易に変更することができる。
【００１２】
本発明のコンピュータシステムでは、前記データキャッシュは、前記アクセス監視手段が検出した周辺アドレスを記憶するアドレス記憶部と、前記アドレス記憶部から周辺アドレスを抽出し、該抽出した周辺アドレスを前記周辺アドレスレジスタに格納するアドレス設定手段とを更に備える構成を採用することができる。この場合、周辺データレジスタに、以前にプロセッサが読み込んだ周辺回路のデータを格納させることができる。
【００１３】
本発明のコンピュータシステムでは、前記アドレス記憶部は、前記アクセス監視手段が検出した各周辺アドレスに対応させて、該各周辺アドレスのアクセス毎にカウントアップするカウント数を更に記憶する構成を採用することができる。この場合、アドレス設定手段は、カウント数に基づいて、抽出する周辺アドレスを決定できる。
【００１４】
本発明のコンピュータシステムでは、前記周辺アドレスの何れかのカウント数が所定数以上になると、前記アドレス設定手段は、前記周辺アドレスを前記周辺アドレスレジスタに格納することが好ましい。アドレス設定手段が周辺アドレスを格納するタイミングとして、このようなタイミングを使用することができる。
【００１５】
本発明のコンピュータシステムでは、前記データキャッシュは、ｍ個（ｍは２以上の整数）の前記データ取得手段を備え、前記アドレス設定手段は、カウント数が上位のｍ個の周辺アドレスを抽出し、該抽出したｍ個の周辺アドレスのそれぞれを、前記ｍ個のデータ取得手段の周辺アドレスレジスタに対応させて格納する構成を採用することができる。この場合、周辺回路のデータのうちで、アクセス頻度が高いｍ個のデータを、ｍ個の周辺データレジスタに格納させることができる。
【００１６】
本発明のコンピュータシステムでは、前記データ取得手段は、前記周辺回路のデータが更新されると、該更新後のデータによって前記周辺データレジスタが格納するデータを更新することが好ましい。この場合、周辺データレジスタに格納されたデータを、最新のデータとすることができる。
【００１７】
本発明のコンピュータシステムでは、前記専用データ線を、シリアルデータを送信するシリアル信号線で構成できる。
【００１８】
本発明のコンピュータシステムでは、前記データ取得手段は、前記周辺アドレスレジスタが格納した周辺アドレスを、前記周辺回路に対して専用アドレス線を介して送信する構成を採用できる。
【発明の効果】
【００１９】
本発明のコンピュータシステムは、所望の周辺回路の所望のデータを示す周辺アドレスを周辺アドレスレジスタに格納することで、プロセッサは、周辺バスを介さずに、データキャッシュからその所望のデータを読み込みことができるため、周辺回路の数が増加した場合でも、所望の周辺回路のデータに高速にアクセスできる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図１は、本発明の一実施形態例のコンピュータシステムの構成を示している。同図に示すように、コンピュータシステム１００は、ＣＰＵ１０１、高速バス１０２、バスブリッジ１０３、低速周辺バス１０４、周辺マクロ１０５、及び、周辺リードキャッシュマクロ１０６を備える。このコンピュータシステム１００は、例えば組み込みシステム等の１チップマイコンを構成する。
【００２１】
ＣＰＵ１０１は、高速バス１０２に接続し、図示しないプログラムメモリから命令を読み取り、或いは、各種割り込みを入力して動作する。周辺マクロ１０５（１）〜（ｎ）（ｎ：２以上の整数）は、それぞれ１以上の周辺レジスタ１５１と、送信部１５２とを有する。各周辺マクロ１０５は、それぞれ通信インターフェースとして構成され、或いは、各種タイマとして構成される。
【００２２】
周辺レジスタ１５１は、外部から受信したデータ、又は、自身内で生成したデータを格納する。送信部１５２は、周辺レジスタ１５１に格納されたデータを、シリアル伝送により、周辺リードキャッシュマクロ１０６に送信する。低速周辺バス１０４のデータレートは、高速バス１０２のデータレートよりも低速である。バスブリッジ１０３は、高速バス１０２を伝送するデータと、低速周辺バス１０４を伝送するデータとの間でデータ変換を行う。
【００２３】
図２は、周辺リードキャッシュマクロ１０６の構成を示しており、図３は、その動作手順をフローチャートとして示している。図２に示すように、周辺リードキャッシュマクロ１０６は、アドレス取得手段１１１、アドレス登録手段１１２、アドレス設定手段１１３、対応テーブル１１４、データ転送手段１１５、及び、データ取得手段１１６（１）〜（ｍ）（ｍ：２以上の整数）を有する。周辺リードキャッシュマクロ１０６は、ＣＰＵ１０１がバスブリッジ１０３に対してリード要求をするたびに、図３に示すステップＳ１からＳ９までを繰り返し実行する。
【００２４】
ＣＰＵ１０１は、周辺アドレスにより、読み出すべき周辺レジスタ１５１を指定することで、所望の周辺マクロ１０５から所望のデータを読み取る。アドレス取得手段１１１は、ＣＰＵ１０１からバスブリッジ１０３に対して行われるリードアクセスを監視し、リード時に、バスブリッジ１０３がＣＰＵ１０１から受け取った周辺アドレスを取得する（図３のステップＳ１）。
【００２５】
アドレス登録手段１１２は、アドレス記憶領域１２１を備える。アドレス記憶領域１２１は、（ｍ＋α）（α：０以上の整数）個の周辺アドレスを格納する記憶領域（エントリ）を有しており、各エントリには、周辺アドレスと、その周辺アドレスに対するアクセス回数を示すカウント値とが対応付けて記憶される。初期状態では、アドレス記憶領域１２１の各エントリは、何も記憶していない状態（アドレスなし、カウント０）である。
【００２６】
アドレス登録手段１１２は、アドレス取得手段１１１が取得した周辺アドレスが、既にアドレス記憶領域１２１に格納されているか否かを調査する（ステップＳ２）。アドレス登録手段１１２は、ステップＳ１でアドレス取得手段１１１が取得した周辺アドレスと一致するアドレスが、アドレス記憶領域１２１の何れのエントリにも格納されていないときには、その周辺アドレスを、アドレス記憶領域１２１に格納し、カウント値を１とする（ステップＳ３）。ステップＳ３では、アドレス記憶領域１２１に空きエントリがあるときには、新たに格納する周辺アドレスを、その空きエントリに格納し、空きエントリがないときには、既に格納した周辺アドレスのうちで、カウント値が最も小さい値の周辺アドレスを格納しているエントリに上書きで格納する。
【００２７】
アドレス登録手段１１２は、ステップＳ２の調査の結果、アドレス取得手段１１１が取得した周辺アドレスがアドレス記憶領域１２１に格納済みであるときには、その周辺アドレスに対応するカウント値を、１つカウントアップする（ステップＳ４）。このカウント値は、あらかじめ設定された数となると、オーバーフローを起こすようになっており、アドレス登録手段１１２は、ステップＳ２でのカウントアップによって、カウント値がオーバーフローを起こしたか否かを判断する（ステップＳ５）。
【００２８】
ステップＳ５で、カウント値がオーバーフローを起こしたと判断すると、アドレス登録手段１１２は、アドレス設定手段１１３に、オーバーフローが発生した旨を通知する。また、現在のカウント値（アクセス回数）の順位を保持しつつ、次のオーバーフローの発生に備えるために、アドレス記憶領域１２１の各エントリのカウント値を右に１ビットシフトし、カウント値を１／２倍する。
【００２９】
データ取得手段１１６（１）〜（ｍ）は、それぞれアドレスレジスタ１６１と、データレジスタ１６２とを有する。アドレスレジスタ１６１は、周辺アドレスを格納し、データレジスタ１６２は、アドレスレジスタ１６１に格納された周辺アドレスが示す周辺レジスタ１５１のデータを記憶する。
【００３０】
アドレス設定手段１１３は、アドレス登録手段１１２からオーバーフローが発生した旨の通知を受け取ると、各データ取得手段１１６のアドレスレジスタ１６１に、周辺アドレスを格納する処理を実行する（ステップＳ６）。ステップＳ６では、アドレス設定手段１１３は、アドレス記憶領域１２１から、（ｍ＋α）個のうちで、カウント値が大きい順にｍ個の周辺アドレスを抽出し、そのｍ個の周辺アドレスを、それぞれデータ取得手段１１６（１）〜（ｍ）の何れかに対応させて、アドレスレジスタ１６１に格納する。
【００３１】
各データ取得手段１１６は、アドレスレジスタ１６１に周辺アドレスが格納されると、各周辺マクロ１０５に、アドレス線１１７を介して周辺アドレスを送信する。これにより、各周辺マクロ１０５は、それぞれ、計ｍ個の周辺アドレスを受信する。各周辺マクロ１０５は、受信したｍ個の周辺アドレスの中に、自身が有する周辺レジスタ１５１の周辺アドレスに一致するアドレスが含まれるか否かを判断する。
【００３２】
各周辺マクロ１０５では、受信した周辺アドレスに、自身が有する周辺レジスタ１５１を示すアドレスが含まれると判断すると、送信部１５２は、その周辺アドレスが示す周辺レジスタ１５１に格納されたデータを取得し、その取得したデータを、対応するデータ線１１８を介して、シリアル伝送により、データレジスタ１６２に転送する。また、周辺マクロ１０５内で、周辺レジスタ１５１に格納されたデータが更新されると、送信部１５２は、更新されたデータを、対応するデータ線１１８を介して、シリアル伝送により、データレジスタ１６２に転送する。
【００３３】
対応テーブル１１４は、ステップＳ６でアドレス設定手段１１３によってアドレスレジスタ１６１に格納されるｍ個の周辺アドレスと、データ取得手段１１６（１）〜（ｍ）との対応関係を記憶する。データ転送手段１１５は、対応テーブル１１４を参照して、ステップＳ１でアドレス取得手段１１１が取得した周辺アドレスと一致する周辺アドレスが、データ取得手段１１６（１）〜（ｍ）の何れかのアドレスレジスタ１６１に格納されているか否かを判断する（ステップＳ７）。
【００３４】
ステップＳ７で、アドレス取得手段１１１が取得した周辺アドレスがデータ取得手段１１６（１）〜（ｍ）の何れかのアドレスレジスタ１６１に格納されていると判断すると、データ転送手段１１５は、アドレスレジスタ１６１がその周辺アドレスを格納するデータ取得手段１１６のデータレジスタ１６２に格納されたデータと、ＣＰＵ１０１が読み込みたいデータが周辺リードキャッシュマクロ１０６にある旨の信号とを、バスブリッジ１０３へ出力する（ステップＳ８）。バスブリッジ１０３（図１）は、周辺リードキャッシュマクロ１０６から、データがある旨の信号と、周辺アドレスが示す周辺マクロ１０５の周辺レジスタ１５１のデータとを入力すると、その入力したデータを、高速バス１０２に乗せて、ＣＰＵ１０１に受け渡す。
【００３５】
アドレス取得手段１１１が取得した周辺アドレスが何れのデータ取得手段１１６（１）〜（ｍ）のアドレスレジスタ１６１にも格納されていないとき、或いは、１度もステップＳ６が実行されておらず、アドレスレジスタ１６１に、まだ周辺アドレスが格納されていないときには、ステップＳ７では、周辺アドレスがアドレスレジスタ１６１に格納されていないと判断される。この場合、データ取得手段１１６は、ＣＰＵ１０１が読み込みたいデータが周辺リードキャッシュマクロ１０６にはない旨の信号を、バスブリッジ１０３へ出力する（ステップＳ９）。バスブリッジ１０３は、周辺リードキャッシュマクロ１０６から、データが存在しない旨の信号が入力されると、低速周辺バス１０４を介して、周辺アドレスが示す周辺マクロ１０５の周辺レジスタ１５１からデータを取得する。バスブリッジ１０３は、その取得したデータを、高速バス１０２上を伝送する形式のデータに変換して高速バス１０２上に乗せ、ＣＰＵ１０１に受け渡す。
【００３６】
本実施形態例では、各データ取得手段１１６は、アドレスレジスタ１６１に格納された周辺アドレスが示す周辺レジスタ１５１のデータを、データレジスタ１６２に格納する。このとき、データレジスタ１６２に格納するデータの取得／更新は、対応するデータ線１１８を介して個別に行われるため、周辺リードキャッシュマクロ１０６によって低速周辺バス１０４が占有されることはない。ＣＰＵ１０１は、読み込みたいデータが周辺リードキャッシュマクロ１０６内に格納されているときには、その周辺リードキャッシュマクロ１０６内に格納されたデータを読み込む。また、ＣＰＵ１０１は、読み込みたいデータが周辺リードキャッシュマクロ１０６内に格納されていないときには、低速周辺バス１０４を介して、周辺レジスタ１５１からデータを読み込む。
【００３７】
ＣＰＵ１０１が低速周辺バス１０４を介して周辺レジスタ１５１からデータを読み込む場合には、バスブリッジ１０３は、低速周辺バス１０４を介して取得したデータを高速バス１０２に対応するデータに変換し、その変換したデータを、高速バス１０２を介してＣＰＵ１０１に受け渡す。この場合、ＣＰＵ１０１がアクセス要求を出してから、実際にそのデータを読み込むまでには時間がかかり、次の処理を実行するまでに実行待ち時間が生じることになる。これに対し、ＣＰＵ１０１が周辺リードキャッシュマクロ１０６からデータを読み込む場合には、バスブリッジ１０３は、高速バス１０２と低速周辺バス１０４との間でのデータ変換を行うことなく、周辺リードキャッシュマクロ１０６から取得したデータを、そのまま高速バス１０２を介してＣＰＵ１０１に受け渡すことができ、ＣＰＵ１０１の実行待ち時間を短縮して、ＣＰＵ１０１が行う処理を高速化することができる。
【００３８】
また、本実施形態例では、アドレスレジスタ１６１に格納する周辺アドレスを動的に変化させ、データレジスタ１６２に格納するデータの取得先の周辺レジスタ１５１を動的に変化させることができる。プロセッサが行う処理によっては、アクセス頻度が高い周辺レジスタ１５１が、処理の進行に従って推移することも考えられるが、その場合、アドレスレジスタ１６１に格納する周辺アドレスを、アクセス頻度が高い周辺レジスタ１５１を示す周辺アドレスで更新していくことで、そのアクセス頻度が高い周辺レジスタ１５１のデータを、周辺リードキャッシュマクロ１０６内に格納することができる。これにより、ＣＰＵ１０１は、アクセス頻度が高いデータを高速に読み込むことができ、処理を更に高速化できる。
【００３９】
上記のように、本実施形態例では、周辺リードキャッシュマクロ１０６は、バスブリッジ１０３をモニタして、リード要求があった周辺レジスタ１５１の周辺アドレスを取得し、取得した周辺アドレスを、（ｍ＋α）個の周辺アドレスと、その周辺アドレスに対するアクセス回数に対応するカウント値とを記憶するアドレス記憶領域１２１に記憶する。アドレス設定手段１１３は、アドレス記憶領域１２１に格納された周辺アドレスから、カウント値の多い順にｍ個の周辺アドレスを抽出して、アドレスレジスタ１６１に格納する周辺アドレスを決定する。このような構成を採用することで、アクセス頻度が高い周辺アドレスが示す周辺レジスタ１５１のデータを、自動的に、周辺リードキャッシュマクロ１０６内に格納することができる。
【００４０】
ここで、例えばアドレスレジスタ１６１（１）が、周辺マクロ１０５（１）内の周辺レジスタ１５１（１）を示す周辺アドレスを格納する場合について考える。この場合において、周辺レジスタ１５１（１）が格納するデータが更新され、データレジスタ１６２（１）に格納されたデータが更新されている最中に、バスブリッジ１０３が、ＣＰＵ１０１から周辺レジスタ１５１（１）を示す周辺アドレスを指定したリード要求を受けた場合には、データレジスタ１６２（１）のデータは更新中であるため、その更新が終わるまでは、バスブリッジ１０３は、周辺リードキャッシュマクロ１０６からデータを入力することができない。
【００４１】
上記の場合、送信部１５２（１）は、周辺レジスタ１５１（１）のデータをシリアル変換してデータレジスタ１６２（１）に更新後のデータを送信するため、周辺レジスタ１５１（１）のデータ長によっては、データレジスタ１６２（１）のデータ更新を待つより、バスブリッジ１０３が、低速周辺バス１０４を介して、周辺レジスタ１５１（１）からデータを取得したほうが速い場合もある。そのような場合には、データ転送手段１１５は、アドレス取得手段１１１が取得した周辺アドレスがアドレスレジスタ１６１（１）に格納されているときでも、バスブリッジ１０３に、データレジスタ１６２（１）のデータの更新を待たずに、低速周辺バス１０４を介してデータを取得するように促すように構成することもできる。
【００４２】
図４は、本発明の第２実施形態例のコンピュータシステムの構成を示している。第１実施形態例のコンピュータシステム１００（図１）では、周辺アドレスを周辺マクロ１０５に送信する際にはアドレス線１１７を使用し、データを周辺マクロ１０５から受信する際にはデータ線１１８を使用した。本実施形態例のコンピュータシステム１００ａでは、周辺マクロ１０５との間で送受信を行うアドレス・データ線１１８ａを用いて、周辺アドレスを周辺マクロ１０５に送信し、周辺マクロ１０５からデータを受信する点で、第１実施形態例と相違する。
【００４３】
周辺リードキャッシュマクロ１０６内で、アドレス設定手段１１３（図２）が、アドレスレジスタ１６１に周辺アドレスを格納すると、データ取得手段１１６は、制御線１２０を介して、各周辺マクロ１０５に、周辺アドレスを送信する旨の制御信号を送信し、アドレスレジスタ１６１に格納された周辺アドレスを、アドレス・データ線１１８ａを介して、シリアルデータ伝送により各周辺マクロ１０５に送信する。各周辺マクロ１０５では、送受信部１５３が、アドレス・データ線１１８ａを介して送信された周辺アドレスを受信する。各周辺マクロ１０５は、受信した周辺アドレスに、自身の周辺レジスタ１５１を示す周辺アドレスが含まれるときには、その周辺アドレスを記憶する。
【００４４】
データ取得手段１１６は、周辺アドレスを送信した後に、各周辺マクロ１０５に、制御線１２０を介してデータの送信を促す制御信号を送信する。送受信部１５３は、データの送信を促す制御信号を受信すると、周辺アドレスを受信した際に記憶した周辺アドレスが示す周辺レジスタ１５１のデータを、アドレス・データ線１１８ａを介して、シリアル伝送によりデータレジスタ１６２に向けて送信する。また、送受信部１５３は、送信した周辺レジスタ１５１のデータが更新されたときには、更新後のデータを、アドレス・データ線１１８ａを介して、シリアル伝送によりデータレジスタ１６２に向けて送信する。
【００４５】
本実施形態例では、周辺リードキャッシュマクロ１０６と周辺マクロ１０５との間の送受信を、双方向通信が可能なアドレス・データ線１１８ａを介して行うため、第１実施形態例に比して、配線数を削減することができる。その他の効果については、第１実施形態例と同様である。
【００４６】
なお、上記実施形態例では、カウント値があらかじめ設定された所定の値以上となったか否かを、カウント値のオーバーフローにより判断したが、これには限定されず、アドレス設定手段１１３がアドレスレジスタ１６１に周辺アドレスを格納するタイミングとしては、その他のタイミングを用いることもできる。また、カウント値がオーバーフローを起こすと、カウント値を１／２にする例について説明したが、これには限定されず、例えばカウント値を、１／４や１／８にしてもよく、或いは、０にリセットしてもよい。
【００４７】
また、初期状態では、アドレス記憶領域１２１には、何も記憶されていない（アドレスなし、カウント０）例について説明したが、これに代えて、アドレス記憶領域１２１を、全ての周辺アドレスを格納できるように構成して、その全ての周辺アドレスをあらかじめ格納しておいてもよい。この場合、全ての周辺アドレスが格納済みであるからステップＳ２及びステップＳ３（図３）を実行する必要はなく、周辺リードキャッシュマクロ１０６は、ステップＳ１からそのままステップＳ４に進んで、対応するカウント値をカウントアップするように動作すればよい。
【００４８】
上記実施形態例では、アドレス設定手段１１３が、アドレス記憶領域１２１に記憶した周辺アドレスの中から所望の周辺アドレスを抽出して、その周辺アドレスをアドレスレジスタ１６１に格納したが、これに代えて又は加えて、アドレスレジスタ１６１に格納する周辺アドレスを、例えばＣＰＵ１０１の指令に従って、書き換え可能とすることもできる。この場合、ＣＰＵ１０１は、自身が実行する処理の推移に従って、アドレスレジスタ１６１に格納する周辺アドレスを変化させ、データレジスタ１６２に格納するデータの取得先の周辺レジスタ１５１を変化させるように構成することもできる。
【００４９】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のコンピュータシステムは、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態例のコンピュータシステムの構成を示すブロック図。
【図２】周辺キャッシュリードマクロの構成を示すブロック図。
【図３】周辺リードキャッシュマクロの動作手順を示すフローチャート。
【図４】本発明の第２実施形態例のコンピュータシステムの構成を示すブロック図。
【図５】従来のコンピュータシステムの構成を示すブロック図。
【図６】特許文献１に記載されたマイクロコンピュータの構成を示すブロック図。
【符号の説明】
【００５１】
１００：コンピュータシステム
１０１：ＣＰＵ
１０２：高速バス
１０３：バスブリッジ
１０４：低速周辺バス
１０５：周辺マクロ
１０６：周辺リードキャッシュマクロ
１１１：アドレス取得手段
１１２：アドレス登録手段
１１３：アドレス設定手段
１１４：対応テーブル
１１５：データ転送手段
１１６：データ取得手段
１１７：アドレス線
１１８：データ線
１２０：制御線
１２１：アドレス記憶領域
１５１：周辺レジスタ
１５２：送信部
１５３：送受信部
１６１：アドレスレジスタ
１６２：データレジスタ
【図１】
0004615236.tif 000002
【図２】
0004615236.tif 000003
【図３】
0004615236.tif 000004
【図４】
0004615236.tif 000005
【図５】
0004615236.tif 000006
【図６】
0004615236.tif 000007