(57)【要約】【課題】ロード命令のキャッシュミスによるメインメモリへのアクセスから発生するメモリレイテンシの影響を軽減する。【解決手段】本発明の情報処理装置は、Delinquent Loadがデータをロードする際には、Delinquent Load専用キャッシュメモリからデータをロードすることによって、キャッシュミスが発生せず、必ずキャッシュヒットすることになる。このようにすることによって、Delinquent Loadに対するデータロードに際してメインメモリへのアクセスを全く必要とせず、メモリレイテンシの発生を回避することが可能となる。【選択図】        図２
2008090411.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置との間にキャッシュ装置が配置される情報処理装置であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を記憶するロード命令記憶部を備えたことを特徴とする情報処理装置。
【請求項２】
前記ロード命令記憶部は、前記キャッシュ装置においてキャッシュミスが発生したロード命令毎に該キャッシュミスが発生した回数を記憶することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記主記憶装置へデータを書き込むストア命令に応じて該主記憶装置へデータを書き込む際に、該ストア命令に対応するロード命令を識別し、該ロード命令が前記ロード命令記憶部に記憶されるか否かを判定するロード命令記憶判定部と、
前記ロード命令記憶判定部により前記ロード命令記憶部に記憶されると判定されたロード命令がキャッシュミスを発生した回数が所定閾値を超えるか否かを判定するキャッシュミス回数判定部と、
前記キャッシュミス回数判定部によりキャッシュミスが発生した回数が所定閾値を超えると判定されたロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子をキャッシュするデータ記憶部と
を備えたことを特徴とする請求項２記載の情報処理装置。
【請求項４】
主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御機構であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶部を備えたことを特徴とする命令制御機構。
【請求項５】
主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御方法であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶工程を含んだことを特徴とする命令制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主記憶装置との間にキャッシュ装置が配置される情報処理装置、該情報処理装置における命令制御機構及び命令制御方法に関する。
【背景技術】
【０００２】
従来から、メインメモリから読み出したデータをプロセッサで処理する情報処理システムにおいて、プロセッサとメインメモリとの間に高速のキャッシュメモリを配し、頻繁に読み書きを行うデータをキャッシュメモリに配置することによって、データ読み書きにかかるメモリアクセスの遅延（メモリレイテンシ）を回避するキャッシュ技術が利用されてきた。
【０００３】
かかるキャッシュ技術は、読み出し対象（ロード対象）のデータがキャッシュメモリに存在する場合（キャッシュヒット）は、キャッシュメモリから必要データを読み出すことによって高速にデータ読み出しを実行することができ、メモリレイテンシを回避する。しかし、ロード対象のデータがキャッシュメモリに存在しなかった場合（キャッシュミス）には、メインメモリから必要データを取得することとなるために、メモリレイテンシを回避することができない。
【０００４】
ところで、近年の研究結果によれば、大部分のキャッシュミスは比較的少数のロード命令によって引き起こされていることが判明した。この大部分のキャッシュミスを引き起こす比較的少数のロード命令をDelinquent Loadという。例えば、非特許文献１には、このDelinquent Loadを含む命令列を別スレッドとして先行して実行することによって、ロード命令によるキャッシュミスによるメインメモリへのアクセスから発生するメモリレイテンシの影響を軽減することによって、プロセッサシステムの性能向上を図る技術が考案されている。
【０００５】
【非特許文献１】Dynamic Speculative Pre-computation  Jamison D.Collons,etc.  In 34th International Symposium on Micro-architecture,December,2001
【特許文献１】特開２００１−２９０７０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記非特許文献１に代表される従来技術では、Delinquent Loadを先行して別スレッドとして実行するために、当該スレッドを組み立てるためのハードウェア及びマルチスレッド機構が必要であり、実現に際しては回路が複雑かつ回路規模が大規模になるという問題点を有していた。
【０００７】
本発明は、上記問題点（課題）を解消するためになされたものであって、マルチスレッド機構等の特別なハードウェアを必要とせず、簡単かつ小規模な回路でロード命令のキャッシュミスによるメインメモリへのアクセスから発生するメモリレイテンシの影響を軽減し、情報処理システム全体の性能向上を図ることが可能な情報処理装置、命令制御機構及び命令制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した問題を解決し、目的を達成するため、本発明は、主記憶装置との間にキャッシュ装置が配置される情報処理装置であって、前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶部を備えたことを特徴とする。
【０００９】
また、本発明は、上記発明において、前記ロード命令記憶部は、前記キャッシュ装置においてキャッシュミスが発生したロード命令毎に該キャッシュミスが発生した回数を記憶することを特徴とする。
【００１０】
また、本発明は、上記発明において、前記主記憶装置へデータを書き込むストア命令に応じて該主記憶装置へデータを書き込む際に、該ストア命令に対応するロード命令を識別し、該ロード命令が前記ロード命令記憶部に記憶されるか否かを判定するロード命令記憶判定部と、前記ロード命令記憶判定部により前記ロード命令記憶部に記憶されると判定されたロード命令がキャッシュミスを発生した回数が所定閾値を超えるか否かを判定するキャッシュミス回数判定部と、前記キャッシュミス回数判定部によりキャッシュミスが発生した回数が所定閾値を超えると判定されたロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子をキャッシュするデータ記憶部とを備えたことを特徴とする。
【００１１】
また、本発明は、主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御機構であって、前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶部を備えたことを特徴とする。
【００１２】
また、本発明は、主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御方法であって、前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶工程を含んだことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、キャッシュミスが発生したロード命令を識別可能に専用バッファに記憶するので、キャッシュミスが発生したロード命令を特定し、キャッシュミスの発生を事前に予測することができるという効果を奏する。
【００１４】
また、本発明によれば、キャッシュミスが発生したロード命令をキャッシュミスが発生した回数とともに専用バッファに記憶するので、キャッシュミスがより発生する可能性が高いロード命令を把握し、キャッシュミスの発生を事前に予測することができるという効果を奏する。
【００１５】
また、本発明によれば、キャッシュミスが発生した回数が所定の閾値を超えると判定されたキャッシュミスが発生する可能性が高いロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子を記憶するデータ記憶部を備えたので、このデータ記憶部を参照することによってロード命令のキャッシュミスの発生によるメモリレイテンシを抑制することが可能となるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照し、本発明の情報処理装置、命令制御機構及び命令制御方法に係る実施例を詳細に説明する。なお、以下に実施例１及び２を説明するに先立って、本発明がなされるに至った前提である従来技術の問題点及び本発明の特徴点について説明する。なお、以下では、プロセッサをＣＰＵ（Central Processing Unit）とした場合を示すこととするが、これに限らず、ＭＰＵ（Micro Processing Unit）、ＭＣＵ（Micro Controller Unit）などの各種処理装置であってもよい。
【００１７】
先ず、本発明がなされるに至った前提である従来技術の問題点について説明する。時１は、従来技術の問題点を示す図である。同図に示すように、情報処理装置であるＣＰＵの処理主体であるＣＰＵコアからデータを一次蓄積可能な高禄メモリであるキャッシュメモリに対して、キャッシュミスを発生しやすいロード命令であるDelinquent Loadによりデータのロードが要求される。これに対し、当該ロード命令がDelinquent Loadであるとキャッシュメモリにおいてキャッシュミスが発生する。キャッシュミスが発生したため、キャッシュメモリは、メインメモリに対して当該データのロードを要求することとなる。なお、データのロードとは、メインメモリ又はキャッシュメモリからのデータの読み出しのことである。
【００１８】
キャッシュメモリは、メモリアクセスの速度が高速であるため、ＣＰＵコアの処理に比べてもメモリアクセスが遅延を発生することはない。しかし、メインメモリは、近時のＣＰＵコアの処理速度の向上に比べて依然としてメモリアクセスの速度が遅く、ＣＰＵコアの処理速度に追随できずメモリアクセスがデータロード完了の待ちによる遅延を発生させてしまう。このため、あるデータをＣＰＵコアへロードするためには、メインメモリからロードするよりもキャッシュメモリからロードする方が、ＣＰＵの処理効率の観点から有利である。
【００１９】
そこで、データをＣＰＵコアへロードする場合には、メインメモリから読み出したデータを一旦キャッシュメモリへ記憶しておき、再度該データをＣＰＵコアへロードする場合は、メインメモリからではなくキャッシュメモリからデータをロードすることによって、メモリアクセスの速度を向上させる技術が利用されている。
【００２０】
しかし、キャッシュメモリは記憶容量に制限があるため、ＣＰＵコアへ一度ロードした全てのデータを記憶しておくことは不可能であり、ＦＩＦＯ（First In First Out）、ＬＩＦＯ（Last In Last Out）、ＬＦＵ（Least Frequently Used method）等の所定のアルゴリズムに従って一部のデータが消去される。このために、消去されたデータは、キャッシュメモリを参照しても該キャッシュメモリからロードすることは不可能であり、メインメモリから再度ロードすることとなる。これをキャッシュミスと呼ぶ。
【００２１】
ＣＰＵにおいて、所定のアルゴリズムにより実行順序が定められた処理手順が順次実行される過程でＣＰＵコアが実行するデータのロード命令のうち、ある種のロード命令は、この所定のアルゴリズムの特性上、一度ロードしたデータが再度ロードされる際にはキャッシュメモリから消去されており、再度メインメモリからロードしなければならないロード命令がある。これをDelinquent Loadと呼ぶが、Delinquent Loadはキャッシュミスを発生しやすいロード命令である。
【００２２】
従って、Delinquent Loadがキャッシュメモリからデータロードを実行しようとすると、必ずキャッシュミスが発生することとなり、必要データをメインメモリにアクセスして取得することとなる。Delinquent Loadに対して必ずメインメモリへのアクセスが発生することとなり、メモリレイテンシが発生し、ＣＰＵの処理効率の低下を招いていた。
【００２３】
本発明は、上記した問題点（課題）を解消するためになされたものであって、Delinquent Loadによってメモリレイテンシが発生してＣＰＵの処理効率が低下することのないDelinquent Load制御機構及びDelinquent Load制御方法を提供することを目的としている。
【００２４】
次に、上記の目的を達成するためになされた本発明の特徴を説明する。図２は、本発明の特徴を示す図である。同図に示すように、Delinquent Loadによってキャッシュメモリからデータをロードしようとすると、キャッシュミスが発生する。ここで、通常のキャッシュメモリと同様に高速アクセス可能なDelinquent Load専用キャッシュメモリを設ける。この、Delinquent Load専用キャッシュメモリから当該Delinquent Loadがロード対象とするデータが消去されることはない。
【００２５】
よって、Delinquent Loadがデータをロードする際には、Delinquent Load専用キャッシュメモリからデータをロードすることによって、キャッシュミスが発生せず、必ずキャッシュヒットすることになる。このようにすることによって、Delinquent Loadに対するデータロードに際してメインメモリへのアクセスを全く必要とせず、メモリレイテンシの発生を回避することが可能となる。そして、延いては、ＣＰＵの処理効率の低下を防止することが可能となる。
【実施例１】
【００２６】
以下に図３〜７を参照して、本発明の実施例１を説明する。実施例１は、前述のDelinquent Load専用キャッシュメモリとして、ＣＳＤＢ（Corresponding Store Data Buffer）を採用した場合を示すこととする。Corresponding Storeは、ロード命令に対応するストア命令のことである。従って、ＣＳＤＢは、ロード命令に対応するストア命令のストアデータを格納するデータバッファである。なお、データのロードとは、キャッシュメモリであるキャッシュ記憶部１０２又はメインメモリである外部の主記憶部からのデータの読み出しを言う。また、データのストアとは、キャッシュ記憶部１０２又は外部の主記憶部へのデータの書き込みを言う。
【００２７】
先ず、実施例１の情報処理装置の構成について説明する。図３は、実施例１の情報処理装置の構成を示す機能ブロック図である。図４は、実施例１の情報処理装置のＤＬＴ部のDelinquent Load Tableのテーブルイメージを示す図である。図５は、実施例１の情報処理装置のＣＳＤＢ部のCorresponding Store Data Bufferのテーブルイメージを示す図である。
【００２８】
同３に示すように、情報処理装置１００は、ＣＰＵコアである主処理部１０１と、キャッシュメモリであるキャッシュ記憶部１０２と、ＣＳＤＢ部１０３と、ＤＬＴ部１０４と、ＣＳＩ部１０５とを有する。
【００２９】
主処理部１０１は、情報処理装置１００におけるキャッシュ記憶部１０２又は外部の主記憶装置からロードしたデータに基づき各種演算を実行し、演算結果をキャッシュ記憶部１０２及び外部の主記憶装置へストアする処理を実行する。
【００３０】
ＣＳＤＢ部１０３は、図５に示すように、Delinquent Loadに対応するストア命令が指定するオペランドアドレスＶij（ｉ、ｊは自然数）及び該Ｖijに対応付けられるデータＤＡＴＡijを格納するデータバッファである。主処理部１０１は、オペランドアドレスＶＡを指定してロード命令を実行する際、先ず、このＣＳＤＢ部１０３を参照して指定されたオペランドアドレスに一致するオペランドアドレスＶＡijが存在するか否かを確認する。ロード命令が指定するオペランドアドレスＶＡijに一致するオペランドアドレスがＣＳＤＢ１０３に存在する場合に、このオペランドアドレスに対応するデータＤＡＴＡijを該ＣＳＤＢ１０３からロードすることになる。
【００３１】
ＤＬＴ（Delinquent Load Table）部１０４は、Delinquent Loadを識別し、保持する機構である。具体的には、図４に示すように、Load識別子であるプログラムカウンタＰＣ1にはオペランドアドレスＶＡ11、ＶＡ12、・・・、ＶＡ1n及びキャッシュミス回数Ｎ1が対応付けられて格納されている。また、Load識別子であるプログラムカウンタＰＣi（ｉは自然数）には、オペランドアドレスＶＡi1、・・・、ＶＡim（ｍは自然数）及びキャッシュミス回数Ｎiがそれぞれ対応付けられて格納されている。
【００３２】
ＤＬＴ部１０４には、主処理部１０１からキャッシュ記憶部１０２へロード命令によりデータのロードが指示されたとき、該ロード命令がオペランドアドレスと共に主処理部１０１によって記憶される。また、主処理部１０１からキャッシュ記憶部１０２へロード命令によりデータのロードが指示された場合に、該キャッシュ記憶部１０２においてキャッシュミスが発生したとき、主処理部１０１によってキャッシュミス回数に１が加算される。
【００３３】
なお、各プログラムカウンタＰＣiに対応付けられて格納されるオペランドアドレスＶＡimの個数は、プログラムカウンタＰＣi毎に応じて異なる。また、各プログラムカウンタＰＣiに対応付けられて格納されるキャッシュミス回数Ｎiは、プログラムカウンタＰＣi単位でカウントアップされた数値を保持する変数である。即ち、キャッシュミス回数は、同一のLoad識別子に対応付けられるオペランドアドレスであれば、オペランドアドレスの別は問わずカウントされるものである。
【００３４】
ＣＳＩ（Corresponding Store Identifier）部１０５は、Delinquent Loadのロード対象のメモリデータを生成したストア命令（Corresponding Store）を識別する機構である。主処理部１０１によってオペランドアドレスを指定してストア命令が指示されたときに、ＤＬＴ部１０４を参照して該オペランドアドレスが該ＤＬＴ部１０４に記憶されるか否かを判定する。さらに、該オペランドアドレスが該ＤＬＴ部１０４に記憶されると判定された場合に、該オペランドアドレスに対応付けられているキャッシュミス回数が所与の閾値Ｍ（Ｍは自然数）を超えるか否かを判定する。所与の閾値Ｍを超えると判定されたオペランドアドレスＶＡijに対応するLoad識別子で識別されるロード命令が対象とするデータは、Delinquent Loadが対象とするデータとして、オペランドアドレスＶＡijと共にＣＳＤＢ部１０３に記憶されることとなる。
【００３５】
次に、実施例１の情報処理装置のＣＳＩ部の論理回路について説明する。図６は、実施例１の情報処理装置のＣＳＩ部の論理回路を示す回路図である。同図に示すように、ＣＳＩ部１０５は、一致判定ゲート１０５ａと、比較判定ゲート１０５ｂと、ＡＮＤゲート１０５ｃとを有する。
【００３６】
主処理部１０１からオペランドアドレスＶＡを指定したストア命令Store ＶＡがＣＳＩ部１０５に対して出力されると、先ず一致判定ゲート１０５ａがＤＬＴ部１０４を参照して、ＶＡに一致するオペランドアドレスが記憶されているか否かを判定する。そして、ＶＡに一致するオペランドアドレスＶＡijがＤＬＴ部１０４に存在する場合に、比較判定ゲート１０５ｂは、該オペランドアドレスＶＡijに対応付けられて記憶されているキャッシュミス回数Ｎiと所与の閾値Ｍとを比較し、Ｎi＞Ｍであるか否かを判定する。そして、一致判定ゲート１０５ａにより一致するオペランドアドレスが存在すると判定され、かつ比較判定ゲート１０５ｂによりＮi＞Ｍであると判定された場合に、ＡＮＤゲート１０５ｃによりオペランドアドレスＶＡij及び該オペランドアドレスＶＡijによって特定される実データであるＤＡＴＡijがＣＳＤＢ部１０３に記憶されることとなる。
【００３７】
次に、実施例１の情報処理装置における処理を説明する。図７は、実施例１の情報処理装置における処理を示すタイミングチャートである。なお、図７に示す各ステップはパイプ処理における１ステップを示す。同図に示すように、先ず、主処理部１０１から命令フェッチの実行（ステップＳ１０１）、命令デコードの実行（ステップＳ１０２）、アドレス計算の実行（ステップＳ１０３）、ＣＳＤＢアクセスの実行（ステップＳ１０４）、キャッシュアクセスの実行（ステップＳ１０５）が行われる。
【００３８】
続いて、ＤＬＴ１０４へLoad命令が追加される（ステップＳ１０６）。また、ステップＳ１０５のキャッシュアクセスにおいてキャッシュミスが発生した場合に、主記憶アクセスが実行される（ステップＳ１０７）。このステップＳ１０７の主記憶アクセスが終了すると、主処理部１０１においてレジスタライトが実行される（ステップＳ１０８）。これらステップＳ１０１〜ステップＳ１０８の処理は、図示するように第一段階のLoad命令に係る処理である。
【００３９】
ステップＳ１０８が終了すると、続いて主処理部１０１において命令フェッチの実行（ステップＳ１０９）、命令デコードの実行（ステップＳ１１０）、アドレス計算の実行（ステップＳ１１１）、ＤＬＴアクセスの実行（ステップＳ１１２）が行われる。ステップＳ１１１のアドレス計算の終了に続いて主記憶アクセスが実行され（ステップＳ１１３）、ステップＳ１１２のＤＬＴアクセス終了に続いてＣＳＤＢ更新が実行される（ステップＳ１１４）。なお、ステップＳ１１３の処理及びステップＳ１１４の処理は平行して実行されてもよいものである。これらステップＳ１０９〜ステップＳ１１４の処理は、図示するように第二段階のStore命令に係る処理である。
【００４０】
ステップＳ１１４が終了すると、続いて主処理部１０１において、第三段階のLoad命令に係る命令フェッチの実行（ステップＳ１１５）、命令デコードの実行（ステップＳ１１６）、アドレス計算の実行（ステップＳ１１７）、ＣＳＤＢアクセスの実行（ステップＳ１１８）が実行される。ステップＳ１１８の実行時には、既にＣＳＤＢに当該Load命令のロード対象であるデータがステップＳ１１４で記憶されているので、ＣＳＤＢから当該データの読み出しに成功する。続いて、ＣＳＤＢから読み出しに成功したデータを主処理部１０１のレジスタにライトする（ステップＳ１１９）。
【００４１】
上記したように、実施例１では、一度ロード命令によりキャッシュミスが発生し、Delinquent Loadとされたロード命令がロード対象とするデータをＣＳＤＢに記憶させ、次回の同一のロード命令の実行時においてＣＳＤＢに記憶される該データを読み出してロードするので、キャッスミスによるメモリアクセスのメモリレイテンシの発生を抑制することが可能となる。
【実施例２】
【００４２】
以下に図８及び９を参照して、本発明の実施例２を説明する。実施例２は、基本的には実施例１と同一であり、以下の実施例２の説明では、実施例１との差異部分について説明する。実施例２では、前述のDelinquent Load専用キャッシュメモリとして、ＣＳＡＢ（Corresponding Store Address Buffer）を採用した場合を示すこととする。Corresponding Storeは、ロード命令に対応するストア命令のことである。従って、ＣＳＡＢは、Delinquent Load命令に対応するストア命令に対応するロード命令を特定するアドレスを格納するアドレスバッファである。
【００４３】
先ず、実施例２の情報処理装置の構成について説明する。図８は、実施例２の情報処理装置の構成を示す機能ブロック図である。図９は、実施例２の情報処理装置のＣＳＡＢ部のCorresponding Store Address Bufferのテーブルイメージを示す図である。なお、実施例２の情報処理装置のＤＬＴ部のDelinquent Load Tableは、実施例１と同様である。
【００４４】
同３に示すように、情報処理装置１００は、ＣＰＵコアである主処理部１０１と、キャッシュメモリであるキャッシュ記憶部１０２と、ＣＳＡＢ部１０６と、ＤＬＴ部１０４と、ＣＳＩ部１０５とを有する。
【００４５】
ＣＳＡＢ部１０６は、図９に示すように、Delinquent Loadに対応するストア命令に対応するLoad識別子であるプログラムカウンタＰＣi（ｉは自然数）及び該ストア命令が指定するオペランドアドレスＶij（ｊは自然数）を格納するアドレスバッファである。主処理部１０１は、プログラムカウンタＰＣを指定してロード命令を実行する際、先ず、このＣＳＡＢ部１０６を参照して指定されたプログラムカウンタＰＣに一致するプログラムカウンタが記憶されているか否かを判定する。ここで一致するプログラムカウンタＰＣが検出された場合には、Delinquent Loadの再実行が近づいたと判断する。
【００４６】
次に、ＣＳＤＢ部１０６は、先に一致が検出されたプログラムカウンタＰＣに対応付けられているオペランドアドレスＶＡijで特定されるデータを主記憶部（メインメモリ）からプリフェッチするようにキャッシュ記憶部（キャッシュメモリ）１０２へ要求することとなる。
【００４７】
次に、実施例２の情報処理装置のＣＳＩ部の論理回路について説明する。図１０は、実施例２の情報処理装置のＣＳＩ部の論理回路を示す回路図である。同図に示すように、ＣＳＩ部１０５は、一致判定ゲート１０５ａと、比較判定ゲート１０５ｂと、ＡＮＤゲート１０５ｃとを有する。
【００４８】
ＣＳＩ部１０５は、Delinquent Loadのロード対象のメモリデータを生成したストア命令（Corresponding Store）を識別する機構である。主処理部１０１によってオペランドアドレスを指定してストア命令が指示されたときに、ＤＬＴ部１０４を参照して該オペランドアドレスが該ＤＬＴ部１０４に記憶されるか否かを判定する。さらに、該オペランドアドレスが該ＤＬＴ部１０４に記憶されると判定された場合に、該オペランドアドレスに対応付けられているキャッシュミス回数が所与の閾値Ｍ（Ｍは自然数）を超えるか否かを判定する。所与の閾値Ｍを超えると判定されたオペランドアドレスＶＡijに対応するLoad識別子であるプログラムカウンタＰＣiで識別されるロード命令のLoad識別子であるプログラムカウンタＰＣiはDelinquent LoadとしてオペランドアドレスＶＡijと共にＣＳＡＢ部１０６に記憶されることとなる。
【００４９】
次に、実施例２の情報処理装置における処理を説明する。図１１は、実施例２の情報処理装置における処理を示すタイミングチャートである。なお、図１１に示す各ステップはパイプ処理における１ステップを示す。同図に示すように、先ず、主処理部１０１から命令フェッチの実行（ステップＳ２０１）、命令デコードの実行（ステップＳ２０２）、アドレス計算の実行（ステップＳ２０３）、キャッシュアクセスの実行（ステップＳ２０４）が行われる。
【００５０】
続いて、ＤＬＴ１０４へLoad命令が追加される（ステップＳ２０５）。また、ステップＳ２０４のキャッシュアクセスにおいてキャッシュミスが発生した場合に、主記憶アクセスが実行される（ステップＳ２０６）。このステップＳ２０６の主記憶アクセスが終了すると、主処理部１０１においてレジスタライトが実行される（ステップＳ２０７）。これらステップＳ２０１〜ステップＳ２０７の処理は、図示するように第一段階のLoad命令に係る処理である。
【００５１】
ステップＳ２０７が終了すると、続いて主処理部１０１において命令フェッチの実行（ステップＳ２０８）、命令デコードの実行（ステップＳ２０９）、アドレス計算の実行（ステップＳ２１０）、ＤＬＴアクセスの実行（ステップＳ２１１）が行われる。ステップＳ２１０のアドレス計算の終了に続いて主記憶アクセスが実行され（ステップＳ２１２）、ステップＳ２１１のＤＬＴアクセス終了に続いてＣＳＡＢ更新が実行される（ステップＳ２１３）。なお、ステップＳ２１２の処理及びステップＳ２１３の処理は平行して実行されてもよいものである。これらステップＳ２０８〜ステップＳ２１３の処理は、図示するように第二段階のStore命令に係る処理である。
【００５２】
ステップＳ２１３が終了すると、続いて主処理部１０１において、第三段階のLoad命令に係る命令フェッチの実行（ステップＳ２１４）、命令デコードの実行（ステップＳ２１５）、アドレス計算の実行（ステップＳ２１６）、キャッシュアクセスの実行（ステップＳ２１７）が行われる。
【００５３】
一方で、ステップＳ２１４の命令フェッチと同時に、ＣＳＡＢアクセスが実行され（ステップＳ２１８）、ステップＳ２１８の終了に続いて主記憶アクセスが実行される（ステップＳ２１９）。
【００５４】
ステップＳ２１９のメモリアクセスが終了すると、先のステップＳ２１７のキャッシュアクセスに基づいて、キャッシュ記憶部１０２から当該データの読み出しに成功することとなる。続いて、キャッシュ記憶部１０２から読み出しに成功したデータを主処理部１０１のレジスタにライトする（ステップＳ２２０）。
【００５５】
上記したように、実施例２では、一度ロード命令によりキャッシュミスが発生し、Delinquent Loadとされたロード命令がロード対象のデータを特定するオペランドアドレスを該ロード命令のプログラムカウンタＰＣと共にＣＳＡＢに記憶させる。そして、次回の同一のロード命令の実行時における命令フェッチと平行してＣＳＡＢに記憶されるオペランドアドレスに基づいて必要とするデータのプリフェッチを要求するので、Delinquent Loadの実行が近づいたことを予測して、予め必要とするデータをキャッシュメモリに記憶させておくことができ、キャッスミスによるメモリアクセスのメモリレイテンシの発生を抑制することが可能となる。
【００５６】
かかる実施例２に示した方法は、ステップＳ２１５及びステップＳ２１６の処理時間が長ければ長いほど優位性を発揮する。これは、ステップＳ２１６の処理が終了するか否かに関わらず、ステップＳ２１４の命令フェッチと同時に、先行してステップＳ２１８のＣＳＡＢアクセスを実行してメモリアクセスし、必要とするデータを先行してキャッシュメモリにプリフェッチさせておくことが可能となるためである。
【００５７】
上記実施例１及び２で示したＣＰＵコアに相当する主処理部１０１、ＣＳＤＢ部１０３、ＤＬＴ部１０４、ＣＳＩ部１０５及びＣＳＡＢ部１０６が命令制御機構に相当し、命令制御機構にキャッシュ記憶部１０２を含めたものが情報処理装置に相当する。
【００５８】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【００５９】
（付記１）主記憶装置との間にキャッシュ装置が配置される情報処理装置であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶部を備えたことを特徴とする情報処理装置。
【００６０】
（付記２）前記ロード命令記憶部は、前記キャッシュ装置においてキャッシュミスが発生したロード命令毎に該キャッシュミスが発生した回数を記憶することを特徴とする付記１記載の情報処理装置。
【００６１】
（付記３）前記主記憶装置へデータを書き込むストア命令に応じて該主記憶装置へデータを書き込む際に、該ストア命令に対応するロード命令を識別し、該ロード命令が前記ロード命令記憶部に記憶されるか否かを判定するロード命令記憶判定部と、
前記ロード命令記憶判定部により前記ロード命令記憶部に記憶されると判定されたロード命令がキャッシュミスを発生した回数が所定閾値を超えるか否かを判定するキャッシュミス回数判定部と、
前記キャッシュミス回数判定部によりキャッシュミスが発生した回数が所定閾値を超えると判定されたロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子をキャッシュするデータ記憶部と
を備えたことを特徴とする付記２記載の情報処理装置。
【００６２】
（付記４）前記主記憶装置からデータを読み出すロード命令実行時に、前記データ記憶部から該ロード命令が読み出し対象とするデータを読み出すことを特徴とする付記３記載の情報処理装置。
【００６３】
（付記５）前記主記憶装置からデータを読み出すロード命令実行前に、前記データ記憶部から該ロード命令が読み出し対象とするデータを、該データを識別するデータ識別子に基づいて前記主記憶装置から前記キャッシュ装置へ予め読み出しておくことを特徴とする付記３記載の情報処理装置。
【００６４】
（付記６）主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御機構であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶部を備えたことを特徴とする命令制御機構。
【００６５】
（付記７）前記ロード命令記憶部は、前記キャッシュ装置においてキャッシュミスが発生したロード命令毎に該キャッシュミスが発生した回数を記憶することを特徴とする付記６記載の命令制御機構。
【００６６】
（付記８）前記主記憶装置へデータを書き込むストア命令に応じて該主記憶装置へデータを書き込む際に、該ストア命令に対応するロード命令を識別し、該ロード命令が前記ロード命令記憶部に記憶されるか否かを判定するロード命令記憶判定部と、
前記ロード命令記憶判定部により前記ロード命令記憶部に記憶されると判定されたロード命令がキャッシュミスを発生した回数が所定閾値を超えるか否かを判定するキャッシュミス回数判定部と、
前記キャッシュミス回数判定部によりキャッシュミスが発生した回数が所定閾値を超えると判定されたロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子をキャッシュするデータ記憶部と
を備えたことを特徴とする付記７記載の命令制御機構。
【００６７】
（付記９）主記憶装置との間にキャッシュ装置が配置される情報処理装置においてロード命令を制御する命令制御方法であって、
前記主記憶装置からデータを読み出すロード命令により前記キャッシュ装置においてキャッシュミスが発生した場合に該ロード命令を識別可能に記憶するロード命令記憶工程を含んだことを特徴とする命令制御方法。
【００６８】
（付記１０）前記ロード命令記憶工程は、前記キャッシュ装置においてキャッシュミスが発生したロード命令毎に該キャッシュミスが発生した回数を記憶することを特徴とする付記９記載の命令制御方法。
【００６９】
（付記１１）前記主記憶装置へデータを書き込むストア命令に応じて該主記憶装置へデータを書き込む際に、該ストア命令に対応するロード命令を識別し、該ロード命令が前記キャッシュミス記憶工程で記憶されたか否かを判定するロード命令記憶判定工程と、
前記ロード命令記憶判定工程により前記キャッシュミス記憶工程で記憶されたと判定されたロード命令がキャッシュミスを発生した回数が所定閾値を超えるか否かを判定するキャッシュミス回数判定工程と、
前記キャッシュミス回数判定工程によりキャッシュミスが発生した回数が所定閾値を超えると判定されたロード命令が読み出し対象とするデータ若しくは該データを識別するデータ識別子をキャッシュするデータ記憶工程と
を含んだことを特徴とする付記１０記載の命令制御方法。
【産業上の利用可能性】
【００７０】
本発明は、特別なハードウェアを必要とせず、簡単かつ小規模な回路でロード命令のキャッシュミスによるメインメモリへのアクセスから発生するメモリレイテンシの影響を軽減したい場合に有用であり、特に、Delinquent Loadのキャッシュミスによるメモリレイテンシの影響を低減したい場合に有効である。
【図面の簡単な説明】
【００７１】
【図１】従来技術の問題点を示す図である。
【図２】本発明の特徴点を示す図である。
【図３】実施例１の情報処理装置の構成を示す機能ブロック図である。
【図４】実施例１の情報処理装置のＤＬＴ部のDelinquent Load Tableのテーブルイメージを示す図である。
【図５】実施例１の情報処理装置のＣＳＤＢ部のCorresponding Store Data Bufferのテーブルイメージを示す図である。
【図６】実施例１の情報処理装置のＣＳＩ部の論理回路を示す回路図である。
【図７】実施例１の情報処理装置における処理を示すタイムチャートである。
【図８】実施例２の情報処理装置の構成を示す機能ブロック図である。
【図９】実施例２の情報処理装置のＣＳＡＢ部のCorresponding Store Address Bufferのテーブルイメージを示す図である。
【図１０】実施例２の情報処理装置のＣＳＩ部の論理回路を示す回路図である。
【図１１】実施例２の情報処理装置における処理を示すタイムチャートである。
【符号の説明】
【００７２】
１００    情報処理装置
１０１    主処理部
１０２    キャッシュ記憶部
１０３    ＣＳＤＢ部
１０４    ＤＬＴ部
１０５    ＣＳＩ部
１０５ａ    一致判定ゲート
１０５ｂ    大小判定ゲート
１０５ｃ    ＡＮＤゲート
１０６    ＣＳＡＤ部
【図１】
2008090411.tif 000003
【図２】
2008090411.tif 000004
【図３】
2008090411.tif 000005
【図４】
2008090411.tif 000006
【図５】
2008090411.tif 000007
【図６】
2008090411.tif 000008
【図７】
2008090411.tif 000009
【図８】
2008090411.tif 000010
【図９】
2008090411.tif 000011
【図１０】
2008090411.tif 000012
【図１１】
2008090411.tif 000013