(57)【特許請求の範囲】
【請求項１】
データ読み出しのリクエストおよび読み出しアドレスを生成するアドレス生成部と、
前記アドレス生成部により生成された第１の読み出しアドレスが、前記アドレス生成部により前回生成された第２の読み出しアドレスに連続することを検出する連続アドレス検出回路と、
前記連続アドレス検出回路によりアドレスが連続することが検出された場合に、メインメモリから読み出された、前記第１の読み出しアドレスに該当するデータを、直接データ読み出しのリクエスト元に出力させ、前記連続アドレス検出回路によりアドレスが連続することが検出され、かつ前記メインメモリから読み出されたデータに関し、途中でその実行がキャンセルされた場合に、キャンセルされた時点から後のデータの、前記データ読み出しのリクエスト元への出力を中止する制御回路と、
前記データ読み出しのリクエスト元に要求されて前記メインメモリから読み出された前記データを格納するキャッシュメモリと、
前記データ読み出しのリクエスト元に要求されたデータが前記キャッシュメモリに格納されているか否かを検索するためのアドレスタグを保持し、前記制御回路によって前記検索が行われるタグメモリと、
を具備することを特徴とする演算処理装置。
【請求項２】
前記連続アドレス検出回路は、前記制御回路に、アドレスが連続することを表すフラグを、データ読み出しのリクエストおよび読み出しアドレスに付随する信号として送ることを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記制御回路は、キャンセルが発生した場合に、キャンセルされた時点から後のデータに付随する前記フラグをクリアし、キャンセルされた時点から後のデータを独立して扱うことを特徴とする請求項２に記載の演算処理装置。
【請求項４】
前記アドレス生成部は前記制御回路にキャンセルされたことを通知することを特徴とする請求項１に記載の演算処理装置。
【請求項５】
前記連続アドレス検出回路は、前記アドレス生成部により生成された前記第１の読み出しアドレスを、前記アドレス生成部により前回生成された前記第２の読み出しアドレスを１だけインクリメントした値と比較することを特徴とする請求項１〜４のいずれか一つに記載の演算処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は演算処理装置に関し、特にキャッシュメモリを備えた演算処理装置においてキャッシュミス時の性能を改善した演算処理装置に関する。
【０００２】
一般に、ＣＰＵには、その処理速度を向上させるため、外部のメインメモリよりも高速で動作するキャッシュメモリが設けられており、メインメモリからキャッシュメモリに命令やデータが適宜格納されるようになっている。キャッシュヒット時には、キャッシュメモリから命令等が読み出されるので、プログラムは中断されることなく実行される。しかし、キャッシュミス時には、命令等はメインメモリから読み出されるので、その読み出しが終了するまでの間、プログラムの実行が中断されることになる。
【０００３】
【従来の技術】
図５は、キャッシュメモリシステムについて説明するための概念図である。図５に示すように、データの読み出し時に、ＣＰＵ１１の命令実行ユニット１２はキャッシュユニット１３にデータ読み出しリクエスト１５と読み出しアドレス１６を出力する。要求されたデータがキャッシュメモリに格納されている場合、すなわちキャッシュヒット時には、該当するデータ１７がキャッシュユニット１３から命令実行ユニット１２に与えられる。
【０００４】
一方、要求されたデータがキャッシュメモリに格納されていない場合、すなわちキャッシュミス時には、キャッシュユニット１３から外部メモリ１４にデータ読み出しリクエスト１８が出力され、それに該当するデータ１９が外部メモリ１４から読み出される。外部メモリ１４から読み出されたデータ１９はキャッシュメモリに格納されるとともに、命令実行ユニット１２に送られる。
【０００５】
図６は、従来の演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。図６に示すように、プロセッサコア３は命令実行ユニット３１およびキャッシュユニット３５を有する。命令実行ユニット３１にはアドレス生成部３２および実行部３３が設けられている。キャッシュユニット３５にはキャッシュユニット制御回路３６、タグＲＡＭ３７、キャッシュＲＡＭ３８およびバイパスデータセレクタ３９が設けられている。一般に、キャッシュＲＡＭ３８の１ラインの容量（Ｌバイトとする）は、メインメモリ２とキャッシュユニット３５との間のバス幅（Ｂバイトとする）よりも大きい。
【０００６】
図７は、従来の演算処理装置のキャッシュメモリシステムにおいてキャッシュミスが発生した場合の動作タイミングを示すタイムチャートである。説明の便宜上、オペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤは、すべて同一キャッシュライン内のアドレスを有し、かつこの順にアドレスが連続するものとする。また、オペレーションＡのデータ読み出しでキャッシュミスが発生するとする。まず、Ｔ１のサイクルで、アドレス生成部３２はキャッシュユニット制御回路３６に、オペレーションＡに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図６、矢印４１）。
【０００７】
Ｔ２のサイクルで、キャッシュユニット制御回路３６は、オペレーションＡのデータがキャッシュＲＡＭ３８に存在するか否かを判定するため、タグＲＡＭ３７にアドレスタグを参照する（図６、矢印４２）。その結果、Ｔ２のサイクルで、キャッシュユニット制御回路３６は、オペレーションＡがキャッシュミスであるという判定結果を得る（図６、矢印４３）。また、Ｔ２のサイクルで、アドレス生成部３２はキャッシュユニット制御回路３６に、オペレーションＢに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図６、矢印４１）。
【０００８】
Ｔ３のサイクルで、キャッシュユニット制御回路３６はメインメモリ２に、オペレーションＡに対するデータ読み出しリクエストと読み出し対象アドレスを送る（図６、矢印４４）。また、Ｔ３のサイクルで、受け付け済のオペレーションＢはキャッシュユニット３５内でオペレーションＡの完了待ちとなる。また、Ｔ３のサイクルで、アドレス生成部３２はキャッシュユニット制御回路３６に、オペレーションＣに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図６、矢印４１）。Ｔ４のサイクルで、受け付け済のオペレーションＣはキャッシュユニット３５内でオペレーションＡの完了待ちとなる。以後、後続のオペレーションＤは受け付けられない。
【０００９】
Ｔ６、Ｔ８、Ｔ１０およびＴ１２のサイクルで、メインメモリ２に対して要求されたアドレスに対応するデータが、Ｌ／Ｂ回に分割されてメインメモリ２から読み出される（図６、矢印４５）。ここで、上述したようにＬはキャッシュＲＡＭ３８の１ラインの容量であり、Ｂはメインメモリ２とキャッシュユニット３５との間のバス幅である。このとき、キャッシュＲＡＭ３８には、キャッシュＲＡＭ３８の１ライン容量に相当するオペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤが格納される。
【００１０】
また、オペレーションＡに該当するデータが読み出されたＴ６のサイクルでは、メインメモリ２からキャッシュユニット制御回路３６にその読み出しデータが有効であることを示す有効信号が送られる（図６、矢印４６）。そして、キャッシュユニット制御回路３６はバイパスデータセレクタ３９にバイパス側を選択する制御信号を送る（図６、矢印４７）。それによって、メインメモリ２から読み出されたオペレーションＡのデータは直接実行部３３にも送られる（図６、矢印４０）。同時に、キャッシュユニット制御回路３６は実行部３３に、キャッシュ読み出しデータが有効であることを示す有効信号を送信する（図６、矢印４９）。
【００１１】
オペレーションＢに該当するデータが読み出されたＴ８のサイクル、オペレーションＣに該当するデータが読み出されたＴ１０のサイクル、およびオペレーションＤに該当するデータが読み出されたＴ１２のサイクルでは、メインメモリ２からキャッシュユニット制御回路３６にそれぞれの読み出しデータが有効であることを示す有効信号が送られる（図６、矢印４６）。
【００１２】
Ｔ１２のサイクルでキャッシュＲＡＭ３８へのデータの格納が完了するとオペレーションＡの処理が完了したことになり、キャッシュユニット３５内で待機していたオペレーションＢはつぎのＴ１３のサイクルで再実行される。Ｔ１４のサイクルで、キャッシュユニット制御回路３６は、オペレーションＢのデータがキャッシュＲＡＭ３８に存在するか否かを判定するため、タグＲＡＭ３７にアドレスタグを参照する（図６、矢印４２）。
【００１３】
オペレーションＡのデータのメインメモリ２からの読み出しに伴って、オペレーションＢのデータもキャッシュＲＡＭ３８に格納済みであるため、Ｔ１４のサイクルで、キャッシュユニット制御回路３６は、オペレーションＢがキャッシュヒットであるという判定結果を得る（図６、矢印４３）。また、Ｔ１４のサイクルでオペレーションＣが再実行される。
【００１４】
Ｔ１５のサイクルで、キャッシュユニット制御回路３６はバイパスデータセレクタ３９にキャッシュ側を選択する制御信号を送る（図６、矢印４７）。それによって、オペレーションＢのデータはキャッシュＲＡＭ３８から読み出され（図６、矢印４８）、実行部３３に送られる（図６、矢印４０）。同時に、キャッシュユニット制御回路３６は実行部３３に、キャッシュ読み出しデータが有効であることを示す有効信号を送信する（図６、矢印４９）。また、Ｔ１５のサイクルで、キャッシュユニット制御回路３６は、オペレーションＣのデータがキャッシュＲＡＭ３８に存在するか否かを判定するため、タグＲＡＭ３７にアドレスタグを参照する（図６、矢印４２）。
【００１５】
オペレーションＢのデータと同様にオペレーションＣのデータもキャッシュＲＡＭ３８にすでに格納されているため、Ｔ１５のサイクルで、キャッシュユニット制御回路３６は、オペレーションＣがキャッシュヒットであるという判定結果を得る（図６、矢印４３）。また、Ｔ１５のサイクルで、キャッシュユニット３５内の処理が完了したため、後続のオペレーションＤが受け付けられる。
【００１６】
Ｔ１６のサイクルで、キャッシュユニット制御回路３６はバイパスデータセレクタ３９にキャッシュ側を選択する制御信号を送る（図６、矢印４７）。それによって、オペレーションＣのデータがキャッシュＲＡＭ３８から読み出され（図６、矢印４８）、実行部３３に送られる（図６、矢印４０）。同時に、キャッシュ読み出しデータが有効であることを示す有効信号も実行部３３に送られる（図６、矢印４９）。また、Ｔ１６のサイクルで、オペレーションＤについてアドレスタグが参照され（図６、矢印４２）、その結果、オペレーションＤもキャッシュヒットとなる（図６、矢印４３）。
【００１７】
そして、Ｔ１７のサイクルで、キャッシュユニット制御回路３６はバイパスデータセレクタ３９にキャッシュ側を選択する制御信号を送る（図６、矢印４７）。それによって、オペレーションＤのデータがキャッシュＲＡＭ３８から読み出され（図６、矢印４８）、実行部３３に送られる（図６、矢印４０）。同時に、キャッシュ読み出しデータが有効であることを示す有効信号も実行部３３に送られる（図６、矢印４９）。
【００１８】
【発明が解決しようとする課題】
しかしながら、従来の演算処理装置のキャッシュメモリシステムでは、キャッシュミスが発生した場合のペナルティが非常に大きいという問題点がある。すなわち、たとえば上述したように、オペレーションＡがキャッシュミスとなった場合に、その後続のＢ〜ＤのオペレーションはオペレーションＡの完了待ちとなる。
【００１９】
したがって、これらＢ〜Ｄのオペレーションの読み出しデータが実行部３３に返送されるのは、オペレーションＡのデータを含む１キャッシュライン分のデータ、すなわちＡ〜Ｄのオペレーションのデータがすべてメインメモリ２から読み出され、オペレーションＡの再実行により再度キャッシュヒット／ミス判定がおこなわれた後である。図７に示す例では、オペレーションＢが再実行されるのはＴ１３のサイクルであり、ペナルティが非常に大きい。
【００２０】
本発明は、上記問題点に鑑みてなされたものであって、キャッシュミスが発生したときの後続のオペレーションに対するペナルティが小さいキャッシュメモリシステムを備えた演算処理装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる演算処理装置は、データ読み出しのリクエストおよび読み出しアドレスを生成するアドレス生成部と、前記アドレス生成部により生成された第１の読み出しアドレスが、前記アドレス生成部により前回生成された第２の読み出しアドレスに連続することを検出する連続アドレス検出回路と、前記連続アドレス検出回路によりアドレスが連続することが検出された場合に、メインメモリから読み出された、前記第１の読み出しアドレスに該当するデータを、直接データ読み出しのリクエスト元に出力させ、前記連続アドレス検出回路によりアドレスが連続することが検出され、かつ前記メインメモリから読み出されたデータに関し、途中でその実行がキャンセルされた場合に、キャンセルされた時点から後のデータの、前記データ読み出しのリクエスト元への出力を中止する制御回路と、前記データ読み出しのリクエスト元に要求されて前記メインメモリから読み出された前記データを格納するキャッシュメモリと、前記データ読み出しのリクエスト元に要求されたデータが前記キャッシュメモリに格納されているか否かを検索するためのアドレスタグを保持し、前記制御回路によって前記検索が行われるタグメモリと、を具備することを特徴とする。
【００２２】
この発明によれば、あるオペレーションのデータ読み出しにおいてキャッシュミスが発生した場合に、そのオペレーションの後続のオペレーションのデータは、アドレスが連続する場合に、メインメモリ２から読み出されると同時に、キャッシュＲＡＭ５８を介さずに直接、データ読み出しのリクエスト元に出力され、それによってその後続のオペレーションが実行されたことになる。
【００２３】
【発明の実施の形態】
以下に、本発明の実施の形態にかかる演算処理装置について図面を参照しつつ詳細に説明する。
【００２４】
（実施の形態１）
図１は、本発明の実施の形態１にかかる演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。図１に示すように、プロセッサコア５は、プロセッサコア全体の動作を制御する命令実行ユニット５１およびキャッシュユニット５５を有する。命令実行ユニット５１には連続アドレス検出回路５４、アドレス生成部５２、およびデータ読み出しのリクエスト元である実行部５３が設けられている。
【００２５】
キャッシュユニット５５には連続バイパス制御機能付きキャッシュユニット制御回路（以下、単にキャッシュユニット制御回路とする）５６、タグメモリであるタグＲＡＭ５７、キャッシュメモリであるキャッシュＲＡＭ５８およびバイパスデータセレクタ５９が設けられている。
【００２６】
アドレス生成部５２は、データ読み出しのリクエストおよび読み出しアドレスを生成し、それらをキャッシュユニット制御回路５６に送る。また、アドレス生成部５２は連続アドレス検出回路５４に読み出しアドレスを送る。実行部５３は、バイパスデータセレクタ５９を介してキャッシュユニット５５から送られてきた読み出しデータを受け取るとともに、キャッシュユニット制御回路５６からその読み出しデータの有効タイミングを示す有効信号を受け取る。
【００２７】
連続アドレス検出回路５４は、アドレス生成部５２から送られてきた読み出しアドレスを受け取る。そして、連続アドレス検出回路５４は、その受け取った読み出しアドレスが直前のオペレーションのアドレスに連続していることを検出した場合に、キャッシュユニット制御回路５６に通知される読み出しリクエストおよび読み出しアドレスに付随する信号として、連続アドレスフラグをキャッシュユニット制御回路５６に通知する。
【００２８】
特に図示しないが、たとえば連続アドレス検出回路５４は、アドレス生成部５２から送られてきた読み出しアドレスを１だけインクリメントする加算器と、そのインクリメントされたアドレスを保持するレジスタと、そのレジスタの保持アドレスと、そのつぎにアドレス生成部５２から送られてきた読み出しアドレスとを比較する比較器などにより構成される。
【００２９】
キャッシュユニット制御回路５６は、アドレス生成部５２から送られてきたデータ読み出しリクエストおよび読み出しアドレスを受け取り、受け取ったアドレスに基づいてキャッシュヒット／ミスの判定をおこなう。そして、キャッシュユニット制御回路５６は、必要なデータの所在を判定し、そのデータを実行部５３に返送することができるタイミングで準備する。また、キャッシュユニット制御回路５６は、実行部５３にデータ有効のタイミングを示す有効信号を返送する。
【００３０】
これらのキャッシュユニット制御回路機能に加えて、キャッシュユニット制御回路５６は、連続アドレス検出回路５４から送られてきた連続アドレスフラグを受け取り、そのフラグに基づいて連続してデータのバイパスが可能であることを検出してバイパスをおこなう連続バイパス制御機能を有する。すなわち、キャッシュユニット制御回路５６は、キャッシュヒット／ミスの判定結果、または連続アドレス検出回路５４から送られてきた連続アドレスフラグに基づいて、バイパスデータセレクタ５９に制御信号としてバイパス・キャッシュセレクト信号を出力する。
【００３１】
タグＲＡＭ５７は、命令実行ユニット５１から要求されたデータがキャッシュＲＡＭ５８に格納されているか否かを検索するためのアドレスタグを保持する。キャッシュＲＡＭ５８は、実行部５３により必要とされた、実際の処理に供せられるデータを格納する。バイパスデータセレクタ５９は、キャッシュユニット制御回路５６から送られてきたバイパス・キャッシュセレクト信号に基づいて、外部のメインメモリ２から読み出されたデータをキャッシュＲＡＭ５８を経由せずに直接実行部５３に送るバイパス経路、またはキャッシュＲＡＭ５８から読み出されたデータを実行部５３に送る経路のいずれかを選択する。
【００３２】
図２は、本発明の実施の形態１にかかる演算処理装置のキャッシュメモリシステムにおいてキャッシュミスが発生した場合の動作タイミングを示すタイムチャートである。説明の便宜上、オペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤは、すべて同一キャッシュライン内のアドレスを有し、かつこの順にアドレスが連続するものとする。また、オペレーションＡのデータ読み出しでキャッシュミスが発生するとする。
【００３３】
まず、Ｔ１のサイクルで、アドレス生成部５２はキャッシュユニット制御回路５６に、オペレーションＡに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図１、矢印６１）。また、アドレス生成部５２は連続アドレス検出回路５４にオペレーションＡの読み出しアドレスを送る（図１、矢印７１）。
【００３４】
Ｔ２のサイクルで、キャッシュユニット制御回路５６は、オペレーションＡのデータがキャッシュＲＡＭ５８に存在するか否かを判定するため、タグＲＡＭ５７にアドレスタグを参照する（図１、矢印６２）。その結果、Ｔ２のサイクルで、キャッシュユニット制御回路５６は、オペレーションＡがキャッシュミスであるという判定結果を得る（図１、矢印６３）。また、Ｔ２のサイクルで、アドレス生成部５２はキャッシュユニット制御回路５６に、オペレーションＢに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図１、矢印６１）。アドレス生成部５２は連続アドレス検出回路５４にオペレーションＢの読み出しアドレスを送る（図１、矢印７１）。オペレーションＢのアドレスがオペレーションＡに連続しているため、連続アドレス検出回路５４はキャッシュユニット制御回路５６に連続アドレスフラグを通知する（図１、矢印７２）。
【００３５】
Ｔ３のサイクルで、キャッシュユニット制御回路５６はメインメモリ２に、オペレーションＡに対するデータ読み出しリクエストと読み出し対象アドレスを送る（図１、矢印６４）。また、Ｔ３のサイクルで、受け付け済のオペレーションＢはキャッシュユニット５５内でオペレーションＡの完了待ちとなる。また、Ｔ３のサイクルで、アドレス生成部５２はキャッシュユニット制御回路５６に、オペレーションＣに対するデータ読み出しリクエストおよび読み出し対象のアドレスを送る（図１、矢印６１）。アドレス生成部５２は連続アドレス検出回路５４にオペレーションＣの読み出しアドレスを送る（図１、矢印７１）。
【００３６】
オペレーションＣのアドレスがオペレーションＢに連続しているため、連続アドレス検出回路５４はキャッシュユニット制御回路５６に連続アドレスフラグを通知する（図１、矢印７２）。Ｔ４のサイクルで、受け付け済のオペレーションＣはキャッシュユニット５５内でオペレーションＡの完了待ちとなる。以後、後続のオペレーションＤは受け付けられない。
【００３７】
Ｔ６、Ｔ８、Ｔ１０およびＴ１２のサイクルで、メインメモリ２に対して要求されたアドレスに対応するデータが、Ｌ／Ｂ回に分割されてメインメモリ２から読み出される（図１、矢印６５）。ここで、ＬおよびＢは、それぞれキャッシュＲＡＭ５８の１ラインの容量、およびメインメモリ２とキャッシュユニット５５との間のバス幅であり、Ｌ＞Ｂとする。このとき、キャッシュＲＡＭ５８には、キャッシュＲＡＭ５８の１ライン容量に相当するオペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤが格納される。
【００３８】
オペレーションＡに該当するデータが読み出されたＴ６のサイクルでは、メインメモリ２からキャッシュユニット制御回路５６にその読み出しデータが有効であることを示す有効信号が送られる（図１、矢印６６）。そして、キャッシュユニット制御回路５６はバイパスデータセレクタ５９にバイパス側を選択するバイパス・キャッシュセレクト信号を送る（図１、矢印６７）。それによって、メインメモリ２から読み出されたオペレーションＡのデータは直接実行部５３にも送られる（図１、矢印６０）。同時に、キャッシュユニット制御回路５６は実行部５３に、オペレーションＡのデータがキャッシュ読み出しデータとして有効であることを示す有効信号を送信する（図１、矢印６９）。
【００３９】
待機中であるオペレーションＢに該当するデータが読み出されたＴ８のサイクルでは、メインメモリ２からキャッシュユニット制御回路５６にその読み出しデータが有効であることを示す有効信号が送られる（図１、矢印６６）。また、オペレーションＢには連続アドレスフラグが付随しているため、このＴ８のサイクルにおいてメインメモリ２から読み出されたオペレーションＢのデータは直接実行部５３に送られる（図１、矢印６０）。同時に、キャッシュユニット制御回路５６は実行部５３に、オペレーションＢのデータがキャッシュ読み出しデータとして有効であることを示す有効信号を送信する（図１、矢印６９）。この時点、すなわちＴ８のサイクルで、キャッシュユニット５５の内部ではオペレーションＢは完了したとして処理される。
【００４０】
待機中であるオペレーションＣに該当するデータが読み出されたＴ１０のサイクルでは、メインメモリ２からキャッシュユニット制御回路５６にその読み出しデータが有効であることを示す有効信号が送られる（図１、矢印６６）。また、オペレーションＣには連続アドレスフラグが付随しているため、オペレーションＢのときと同様に、メインメモリ２から読み出されたオペレーションＣのデータは直接実行部５３に送られる（図１、矢印６０）。同時に、キャッシュユニット制御回路５６は実行部５３に、オペレーションＣのデータがキャッシュ読み出しデータとして有効であることを示す有効信号を送信する（図１、矢印６９）。そして、Ｔ１０のサイクルで、キャッシュユニット５５の内部ではオペレーションＣは完了したとして処理される。
【００４１】
オペレーションＤはこの時点では受け付けられていないが、メインメモリ２からオペレーションＡのデータが読み出されたことによってメインメモリ２から読み出される。オペレーションＤに該当するデータが読み出されたＴ１２のサイクルでは、メインメモリ２からキャッシュユニット制御回路５６にその読み出しデータが有効であることを示す有効信号が送られる（図１、矢印６６）。
【００４２】
Ｔ１２のサイクルでキャッシュＲＡＭ５８へのデータの格納が完了するとオペレーションＡの処理が完了したことになる。この時点でキャッシュユニット５５の内部には待機中のオペレーションが存在しないので、Ｔ１３のサイクルで後続のオペレーションＤが受け付けられる。Ｔ１４のサイクルで、オペレーションＤについてアドレスタグが参照され（図１、矢印６２）、その結果、上述したようにすでに該当するデータがキャッシュＲＡＭ５８に格納されているため、オペレーションＤはキャッシュヒットとなる（図１、矢印６３）。そのため、オペレーションＤには連続アドレスフラグが付随しているが、連続アドレスフラグは動作に影響を与えない。
【００４３】
そして、Ｔ１５のサイクルで、キャッシュユニット制御回路５６はバイパスデータセレクタ５９にキャッシュ側を選択するバイパス・キャッシュセレクト信号を送る（図１、矢印６７）。それによって、オペレーションＤのデータがキャッシュＲＡＭ５８から読み出され（図１、矢印６８）、実行部５３に送られる（図１、矢印６０）。同時に、キャッシュ読み出しデータが有効であることを示す有効信号が実行部５３に送られる（図１、矢印６９）。
【００４４】
上述した実施の形態１によれば、オペレーションＡのデータの読み出しにおいてキャッシュミスが発生した場合に、オペレーションＡのデータとともにキャッシュＲＡＭ５８の１ラインの容量分のデータがメインメモリから読み出されてキャッシュＲＡＭ５８に格納されるのを待たなくても、オペレーションＡのアドレスに連続するアドレスのオペレーションＢ、さらにそれに連続する、アドレスのオペレーションＣが実行される。したがって、後続のオペレーションＢ，Ｃに対するペナルティが小さいキャッシュメモリシステムが実現される。
【００４５】
（実施の形態２）
図３は、本発明の実施の形態２にかかる演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。図３に示すように、プロセッサコア８は、プロセッサコア全体の動作を制御する命令実行ユニット８１およびキャッシュユニット８５を有する。命令実行ユニット８１には連続アドレス検出回路８４、アドレス生成部８２および実行部８３が設けられている。キャッシュユニット８５には連続バイパス制御機能およびキャンセル制御機能付きキャッシュユニット制御回路（以下、単にキャッシュユニット制御回路とする）８６、タグＲＡＭ８７、キャッシュＲＡＭ８８およびバイパスデータセレクタ８９が設けられている。
【００４６】
アドレス生成部８２は、実施の形態１と同様に、データ読み出しのリクエストおよび読み出しアドレスの生成、およびそれらのキャッシュユニット制御回路８６への送信、ならびに読み出しアドレスの連続アドレス検出回路８４への送信をおこなう。また、アドレス生成部８２は、先行オペレーションの実行が必要なくなった場合、すなわちキャンセルされた場合に、それを検出してキャッシュユニット制御回路８６にキャンセル通知をおこなう。実行部８３および連続アドレス検出回路８４は、それぞれ実施の形態１の実行部５３および連続アドレス検出回路５４と同様であるため、説明を省略する。
【００４７】
キャッシュユニット制御回路８６は、実施の形態１と同様に、キャッシュヒット／ミスの判定、読み出しデータの準備、および有効信号の実行部８３への返送などのキャッシュユニット制御回路機能、ならびにアドレスが連続するデータのバイパスをおこなう連続バイパス制御機能を有する。また、キャッシュユニット制御回路８６は、連続バイパスをキャンセルする制御機能を有する。タグＲＡＭ８７、キャッシュＲＡＭ８８およびバイパスデータセレクタ８９は、それぞれ実施の形態１のタグＲＡＭ５７、キャッシュＲＡＭ５８およびバイパスデータセレクタ５９と同様であるため、説明を省略する。
【００４８】
図４は、本発明の実施の形態２にかかる演算処理装置のキャッシュメモリシステムにおいてキャッシュミスが発生した場合の動作タイミングを示すタイムチャートである。説明の便宜上、オペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤは、すべて同一キャッシュライン内のアドレスを有し、かつこの順にアドレスが連続するものとする。また、オペレーションＡのデータ読み出しでキャッシュミスが発生するとする。さらに、外的要因によりＴ９のサイクルにおいて、キャッシュユニット８５で受け付け済みのオペレーションの実行が必要なくなり、キャンセルが発生し、Ａ〜Ｄのオペレーションとは全く異なる別のオペレーションＥが発行されるものとする。Ｔ８のサイクルまでは実施の形態１と同じであるので、説明を省略する。
【００４９】
Ｔ６、Ｔ８、Ｔ１０およびＴ１２のサイクルで、メインメモリ２に対して要求されたアドレスに対応するデータが、Ｌ／Ｂ回に分割されてメインメモリ２から読み出される（図３、矢印９５）。ここで、ＬおよびＢは、それぞれキャッシュＲＡＭ８８の１ラインの容量、およびメインメモリ２とキャッシュユニット８５との間のバス幅であり、Ｌ＞Ｂとする。このとき、キャッシュＲＡＭ８８には、キャッシュＲＡＭ８８の１ライン容量に相当するオペレーションＡ、オペレーションＢ、オペレーションＣおよびオペレーションＤが格納される。
【００５０】
上述したように、Ｔ９のサイクルで、外的要因によりキャンセルが発生し、キャッシュユニット制御回路８６に対してリクエスト・キャンセル信号が発行される（図３、矢印１０３）。また、Ｔ９のサイクルで、オペレーションＥが発行されるが、この時点では受け付けられない。
【００５１】
待機中であるオペレーションＣに該当するデータはＴ１０のサイクルで読み出される。これと同時に、メインメモリ２からキャッシュユニット制御回路８６にその読み出しデータが有効であることを示す有効信号が送られる（図３、矢印９６）。オペレーションＣには連続アドレスフラグが付随しているが、キャッシュユニット制御回路８６がＴ９のサイクルでキャンセルを受け付けたことにより、オペレーションＣの連続アドレスフラグはキャッシュユニット制御回路８６によりクリアされる。
【００５２】
したがって、メインメモリ２から読み出されたオペレーションＣのデータは実行部８３に送られなくなり、オペレーションＣは実行されない。つまり、オペレーションＣの実行はキャンセルされる。ここで、連続アドレスフラグがクリアされると、キャッシュユニット８５内のオペレーションはそれぞれ単独オペレーションとして扱われることになる。したがって、ここでおこなわれるキャンセル処理は通常のキャンセル処理である。
【００５３】
オペレーションＤはこの時点では受け付けられていないが、メインメモリ２からオペレーションＡのデータが読み出されたことによってメインメモリ２から読み出される。オペレーションＤに該当するデータはＴ１２のサイクルで読み出され、同時にメインメモリ２からキャッシュユニット制御回路８６にその読み出しデータが有効であることを示す有効信号が送られる（図３、矢印９６）。
【００５４】
Ｔ１２のサイクルでキャッシュＲＡＭ８８へのデータの格納が完了するとオペレーションＡの処理が完了したことになる。この時点でキャッシュユニット８５の内部には待機中のオペレーションが存在しないので、Ｔ１３のサイクルでオペレーションＥが受け付けられる。Ｔ１４のサイクルで、オペレーションＥについてアドレスタグが参照され（図３、矢印９２）、その結果、たとえば該当するデータがキャッシュＲＡＭ８８に格納されているため、オペレーションＥはキャッシュヒットとなる（図３、矢印９３）。
【００５５】
そして、Ｔ１５のサイクルで、キャッシュユニット制御回路８６はバイパスデータセレクタ８９にキャッシュ側を選択するバイパス・キャッシュセレクト信号を送る（図３、矢印９７）。それによって、オペレーションＥのデータがキャッシュＲＡＭ８８から読み出され（図３、矢印９８）、実行部８３に送られる（図３、矢印９０）。同時に、キャッシュ読み出しデータが有効であることを示す有効信号が実行部８３に送られる（図３、矢印９９）。
【００５６】
なお、図３において、符号９１で示す矢印は、アドレス生成部８２からキャッシュユニット制御回路８６に送られるデータ読み出しリクエストおよび読み出しアドレスを表す。また、符号９４で示す矢印は、キャッシュユニット制御回路８６からメインメモリ２に送られるデータ読み出しリクエストおよび読み出しアドレスを表す。また、符号１０１で示す矢印は、アドレス生成部８２から連続アドレス検出回路８４に送られる読み出しアドレスを表す。また、符号１０２で示す矢印は、連続アドレス検出回路８４からキャッシュユニット制御回路８６に送られる連続アドレスフラグを表す。
【００５７】
上述した実施の形態２によれば、実施の形態１と同様に、あるオペレーションのデータの読み出しにおいてキャッシュミスが発生しても、そのオペレーションのアドレスに連続するアドレスを有する後続オペレーションに対するペナルティが小さいキャッシュメモリシステムが実現されるという効果と、途中で、連続するアドレスを有する後続オペレーションの実行が必要なくなった場合に、後続のオペレーションの実行をキャンセルすることができるという効果が得られる。
【００５８】
以上において本発明は、上述した各実施の形態に限らず、種々変更可能である。
【００５９】
【発明の効果】
本発明によれば、あるオペレーションに対するデータの読み出しにおいてキャッシュミスが発生しても、そのオペレーションの後続のオペレーションの読み出しアドレスが、キャッシュミスの発生したオペレーションのアドレスに連続する場合には、その後続オペレーションはメインメモリからのデータ読み出しと同時に実行されたことになる。したがって、後続のオペレーションに対するペナルティが小さいキャッシュメモリシステムを備えた演算処理装置が得られる。
【００６０】
また、本発明によれば、キャッシュミス後に、途中で、連続するアドレスを有する後続オペレーションの実行が必要なくなった場合に、後続のオペレーションの実行をキャンセルすることができるキャッシュメモリシステムを備えた演算処理装置が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかる演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる演算処理装置のキャッシュメモリシステムに関する動作タイミングを示すタイムチャートである。
【図３】本発明の実施の形態２にかかる演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる演算処理装置のキャッシュメモリシステムに関する動作タイミングを示すタイムチャートである。
【図５】キャッシュメモリシステムについて説明するための概念図である。
【図６】従来の演算処理装置のキャッシュメモリシステムに関する構成を示すブロック図である。
【図７】従来の演算処理装置のキャッシュメモリシステムに関する動作タイミングを示すタイムチャートである。
【符号の説明】
２  メインメモリ
５２，８２  アドレス生成部
５３，８３  データ読み出しのリクエスト元（実行部）
５４，８４  連続アドレス検出回路
５６，８６  キャッシュユニット制御回路
５７，８７  タグメモリ（タグＲＡＭ）
５８，８８  キャッシュメモリ（キャッシュＲＡＭ）
【図１】
0004092112.tif 000002
【図２】
0004092112.tif 000003
【図３】
0004092112.tif 000004
【図４】
0004092112.tif 000005
【図５】
0004092112.tif 000006
【図６】
0004092112.tif 000007
【図７】
0004092112.tif 000008