(57)【要約】【課題】複数のＡＬＵを使用する場合に、オーバーヘッドを抑制して、データを高速で処理可能とする。【解決手段】ＣＰＵ１がメインメモリ５へのアクセス回数を削減するために内部に一次キャッシュ１１を備えたキャッシュシステムにおいて、ＣＰＵ１は内部にプログラムを並列実行することでプログラム実行速度を高速化可能とするＡＬＵ９ａ，９ｂを複数有し、各ＡＬＵ９ａ，９ｂ間にはメインメモリ５へのアクセス回数低減のために用いる一次キャッシュ１１を共有する。【選択図】図１
2010204933.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがメインメモリへのアクセス回数を削減するために内部に一次キャッシュを備えたキャッシュシステムにおいて、ＣＰＵは内部にプログラムを並列実行することでプログラム実行速度を高速化可能とするＡＬＵを複数有し、各ＡＬＵ間にはメインメモリへのアクセス回数低減のために用いる一次キャッシュを共有する、ことを特徴とするキャッシュシステム。
【請求項２】
プログラムの命令をフェッチして実行するＣＰＵと、該ＣＰＵが直接読み書きするデータや、命令をフェッチし実行するプログラムを記憶するメインメモリと、がバス接続され、ＣＰＵは、内部に、演算を行なうＡＬＵと、ＡＬＵが演算を行ううえで各種データの保持や参照に用いる各種レジスタと、使用頻度が高いデータや命令を保持する一次キャッシュと、を備えた、コンピュータにおいて、請求項１に記載のキャッシュシステムを用いることを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵによるメインメモリへのアクセス回数を削減するためのキャッシュシステムおよびこのシステムを用いるコンピュータに関するものである。
【背景技術】
【０００２】
コンピュータにおいて、ＣＰＵは、実行中のプログラムにおいて次に実行する命令語のアドレスを記憶するプログラムカウンタ、読み込んだ命令を格納する命令レジスタ、演算結果を一時記憶するレジスタファイル、算術や論理演算を行う算術論理演算ユニット（以下、ＡＬＵ）、命令語の実行に伴い、ＡＬＵやレジスタファイル上をデータが移動するが、その処理を指示する信号を次々と発生させるために命令語を解読し、次々と信号を生成する制御部がある。また、メモリアクセス時のアドレスを一時記憶するメモリアドレスレジスタ、メモリのデータ転送時に用いるメモリデータレジスタ、等がある。
【０００３】
そして、このようなコンピュータにおいては、従来から、ＣＰＵとメインメモリとの間にキャッシュ（キャッシュメモリ）を設けて、ＣＰＵのメモリアクセスの高速化を図るようにしたキャッシュシステムが備えられている（特許文献１，２等）。
【０００４】
ところで、ＣＰＵ内部に複数のＡＬＵを設けることで、複数のプログラムを同時並列に実行可能として、ＣＰＵの実行速度の高速化を図ることが行われている。
【０００５】
しかしながら、この場合、各ＡＬＵごとに一次キャッシュを設けており、各ＡＬＵはそれぞれメインメモリからの命令等をそれぞれの一次キャッシュにキャッシュインし、キャッシュ動作を行うようになっていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−８５１４６号公報
【特許文献２】特開２０００−２３５５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明では、各ＡＬＵごとに設けていた一次キャッシュを共有することで、キャッシュ動作をより効率化し、よりコンピュータでの高速動作化を可能としている。
【課題を解決するための手段】
【０００８】
本発明によるキャッシュシステムは、ＣＰＵがメインメモリへのアクセス回数を削減するために内部に一次キャッシュを備えたキャッシュシステムにおいて、ＣＰＵは内部にプログラムを並列実行することでプログラム実行速度を高速化可能とするＡＬＵを複数有し、各ＡＬＵ間にはメインメモリへのアクセス回数低減のために用いる一次キャッシュを共有することを特徴とする。
【０００９】
本発明によると、各ＡＬＵは、プログラム実行において繰り返し用いる命令のロードや必要なデータを読み書きするに当たり、他のＡＬＵがメインメモリから命令やデータをデータ転送性能が高い一次キャッシュに格納（キャッシュイン）している場合、メインメモリにアクセスすることなく、一次キャッシュからその命令やデータを用いることができる、各ＡＬＵで重複していた一次キャッシュへのキャッシュ動作が減り、各ＡＬＵはデータの書き込みや命令の実行を高速で処理することができるようになる。
【００１０】
本発明のコンピュータは、プログラムの命令をフェッチして実行するＣＰＵと、該ＣＰＵが直接読み書きするデータや、命令をフェッチし実行するプログラムを記憶するメインメモリと、がバス接続され、ＣＰＵは、内部に、演算を行なうＡＬＵと、ＡＬＵが演算を行ううえで各種データの保持や参照に用いる各種レジスタと、使用頻度が高いデータや命令を保持する一次キャッシュと、を備えた、コンピュータであり、上記本発明のキャッシュシステムを用いたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のＡＬＵ間で一次キャッシュを共用するので、各ＡＬＵは他のＡＬＵがメインメモリにアクセスして一次キャッシュにコピーした命令やデータは、メインメモリにアクセスすることなく、一次キャッシュ内の命令やデータを用いることができる結果、各ＡＬＵがそれぞれ一次キャッシュを個別に備える場合よりも、全体的には、メインメモリへのアクセス回数をより削減することが出来る結果、データや命令をより高速で処理することができ、コンピュータの高速動作化に貢献することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付した図面を参照して、本発明の実施の形態に係るキャッシュシステムを備えたコンピュータを説明する。
【００１４】
図１を参照して、コンピュータは、ＣＰＵ１、二次キャッシュ３、メインメモリ５を有し、これらはデータバスやアドレスバス等のバス６で接続されている。ＣＰＵ１は、実行制御部７、２つのＡＬＵ（演算論理装置：Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）９ａ，９ｂ、および一次キャッシュ１１を有する。実行制御部７は、命令レジスタ７ａ、プログラムカウンタ７ｂ、レジスタ群７ｃ、その他７ｄから構成される。ＡＬＵの数は複数であるが、２つには限定されない。
【００１５】
二次キャッシュ３、一次キャッシュ１１は、メインメモリ５に記憶されるデータのうち、ＣＰＵが頻繁に読み書きする部分を記憶（コピー）するものであり、ＳＲＡＭで構成される。一次キャッシュ１１は、キャッシュサイズ（容量：数十〜百数十ＫＢほどの容量）が小さいが超高速であり、二次キャッシュ３は、キャッシュサイズ（容量：数百ＫＢ〜数ＭＢの容量）が一次キャッシュ１１よりも大きく、また一次キャッシュ１１に比べては低速であるが、それなりに高速である。一次、二次はキャッシュ階層を示し、ＣＰＵ１が最初に参照するキャッシュとして一次は二次よりも上位キャッシュ階層である。
【００１６】
実行制御部７は、一次キャッシュ１１から命令レジスタ７ａに読み込まれた機械語命令を解読し、この命令に指示されている作業を実行し、その１つの機械語命令の実行が終了すると、次のアドレスに格納されている命令を命令レジスタ７ａに読み込み、それを実行することを繰り返す。命令レジスタ７ａは、次に実行する機械語命令(０／１の列) を保持する働きを持つ。
【００１７】
プログラムカウンタ７ｂで指示されたアドレスのデータが、メインメモリ５から一次キャッシュ１１を介して命令レジスタ７ａに読み込まれ、機械語命令として解釈されて実行される。
【００１８】
プログラムカウンタ７ｂは、次に実行する機械語命令のアドレスを記憶する。
【００１９】
レジスタ群７ｃは、計算に使うために一次キャッシュ１１から読み込まれたデータや、複雑な計算の途中結果などを記憶する。通常、１つのＣＰＵに、数個から数百個のレジスタが用意される。一般的な用途に使用される汎用レジスタと呼ばれるレジスタもあれば、小数付きの数値の処理専用のレジスタや、アドレスの処理専用のレジスタなど、特定の用途専用のレジスタもある。
【００２０】
ＡＬＵ９ａ，９ｂは、符号付き、あるいは符号なし整数の四則演算、０／１の列のビット毎の論理演算、小数付きの数値の四則演算などを行うことができる。
【００２１】
本実施の形態にかかるコンピュータでは、ＡＬＵ９ａ，９ｂを複数有することで、同一のプログラムから複数の命令を同時にフェッチし、実行することができるようになっている。このようにＣＰＵ１内に命令を処理するＡＬＵ９ａ，９ｂを複数有し、プログラムにおける同一命令を同時に並列処理できる。
【００２２】
そして各ＡＬＵ９ａ，９ｂに対して、一次キャッシュ１１を１つとし、各ＡＬＵ９ａ，９ｂはこの一次キャッシュ１１を共用する。
【００２３】
各ＡＬＵ９ａ，９ｂは、一次キャッシュ１１へデータ要求し、一次キャッシュ１１にデータが有れば（キャッシュヒット）、そのまま一次キャッシュ１１から各ＡＬＵ９ａ，９ｂへデータを送り、無ければ（キャッシュミス）、二次キャッシュへデータ要求する。二次キャッシュはデータ有無を調べ、データがあれば一次キャッシュにデータを送る。一次キャッシュと二次キャッシュは、データが重複しないようになっている。これら一次キャッシュと二次キャッシュ内におけるデータ格納方式はダイレクトマップ方式、セットアソシアティブ方式、 フルアソシアティブ方式等各種あるが、これらに限定されない。これら一次キャッシュと二次キャッシュ内におけるデータ更新方式はライトスルー、ライトバック、等各種あるが、これらに限定されない。キャッシュは目的別に命令キャッシュ、データキャッシュ、実行トレースキャッシュ、その他に分類されるが、これら目的別に限定されない。
【００２４】
以上の構成を備えた実施の形態のコンピュータにおいては、各ＡＬＵ９ａ，９ｂが共用する一次キャッシュ１１を設けているので、各ＡＬＵ９ａ，９ｂは、プログラム実行において繰り返し用いる命令ロードや必要なデータの読み書きには、データ高速転送性能の高い一次キャッシュ１１に格納しておき、それのロードやデータの読み書きには、低速なメインメモリ５にアクセスすることなく、高速な一次キャッシュ１１にアクセスできるようになるから、各ＡＬＵ９ａ，９ｂはデータを高速で処理することができるようになり、コンピュータはより高速化するようになる。
【００２５】
そして、本実施の形態によれば、各ＡＬＵ９ａ，９ｂ間で一次キャッシュ１１を共用するので、各ＡＬＵ９ａ，９ｂのうち、例えば一方のＡＬＵ９ａがメインメモリ５にアクセスして一次キャッシュ１１に命令やデータがコピー（キャッシュイン）している場合において、他方のＡＬＵ９ｂがその命令やデータを用いる場合は、メインメモリ５にアクセスすることなく、一次キャッシュ１１内の命令やデータを用いることができるようになる。その結果、当該ＡＬＵ９ｂは、その分、メインメモリ５へのアクセスが減ることになる結果、高速で命令実行やデータ処理をすることができる。
【００２６】
このように従来では各ＡＬＵ９ａ，９ｂがそれぞれ個別に一次キャッシュを備えていた場合よりも、本実施の形態では、全体的には、メインメモリ５へのアクセス回数をより削減することが出来る結果、データや命令をより高速で処理することができ、コンピュータの高速動作化に貢献することができる。
【符号の説明】
【００２７】
１  ＣＰＵ
７  実行制御部
９ａ，９ｂ  ＡＬＵ
１１  一次キャッシュ
３  二次キャッシュ
５  メインメモリ
６  バス
【図１】
2010204933.tif 000003