説明

演算処理装置及び演算処理装置の制御方法

【課題】主記憶装置へのアクセス時間を短縮する。
【解決手段】第1記憶部を有する演算処理部と、第1記憶部が保持するデータの一部を保持する第2記憶部と、第2記憶部からデータを読み出し、第1論理値を取る第1属性情報を含む第1要求と、第2記憶部からデータを読み出し、且つ第1論理値と異なる第2論理値を取る第2属性情報を含む第2要求とを、演算処理部から受け取り、且つ、第1要求の完了通知を受け取るまで第1要求を保持し又は第2要求の完了通知を受け取るまで第2要求を保持する第3の記憶部と、第1及び第2要求を第3の記憶部から受け取り、且つ第1及び第2要求に対応するアドレスのデータが第2記憶部に無い場合、第1要求の第1属性情報を、第2属性情報に置き換え、且つ第2要求に対する完了通知を第1記憶部に供給する制御部とを有する演算処理装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【0002】
近年のプロセッサの動作周波数の向上により、プロセッサからメモリへのアクセス時間は、プロセッサ動作周波数と比して相対的に長くなっている。そのため、プロセッサは、プロセッサから主記憶装置へのアクセス時間を短縮するために、キャッシュメモリと呼ぶ小容量の高速メモリを搭載している。ここで、プロセッサとしては、CPU(Centoral Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等がある。
【0003】
キャッシュメモリは、主記憶装置の上位階層に配置され、主記憶装置が記憶するデータの一部を保持する。プロセッサが、キャッシュメモリにロードされているデータにアクセスする場合(以下、「キャッシュヒット」と呼ぶ)、キャッシュメモリはプロセッサに内蔵されている等、主記憶装置よりプロセッサに近い位置にあるため、プロセッサは短時間で対象データにアクセスすることが出来る。一方、プロセッサが、キャッシュメモリにロードされていないデータにアクセスする場合(以下、「キャッシュミス」と呼ぶ)、キャッシュメモリの下位階層にあるメモリからデータを読み出す必要があるため、対象データへのアクセス時間は長くなる。そのため、キャッシュミスが生じないように、キャッシュメモリのメモリコントローラは、プロセッサからのアクセス頻度が高いデータをキャッシュメモリに保持し、アクセス頻度が低いデータを下位階層のメモリに追い出すように動作する。
【0004】
未使用時間が長いデータを優先的に、下位階層のメモリに追い出すアルゴリズムとしてLeast Recently Used(LRU)が知られている。LRUは、キャッシュメモリに空きが無くなったとき、保持されるデータのうち未使用の時間が最も長いデータを下位階層のメモリに追い出すアルゴリズムである。
【0005】
LRUは、例えば、キャッシュメモリのエントリごとに、使用時間を示すデータを保存する。エントリを使用するごとにそのデータを更新し、エントリが更新されるタイミングで、それらの時刻を全エントリに対してチェックすると、「最も使用されていないエントリ」が判明する。しかし、LRUは、使用時間を全エントリに対してチェックする処理に時間がかかる。特に、キャッシュメモリをウェイに分割し、1つのインデックスに対して複数のタグアドレスを持たせたセットアソシアティブ型キャッシュメモリでは、インデックスとウェイの乗算で対象となるキャッシュラインが決まるため、チェック処理にさらに時間がかかる。
【0006】
簡易に未使用データを判別するために、プロセッサから供給される命令の種類を判別することで、プロセッサによるアクセス頻度の高いデータを決定する方法が提案されている。プロセッサが実行する命令がメモリアクセス命令のとき、メモリアクセス命令により取得されたデータは、以後参照される可能性が高いことを示す状態情報で管理する。そして、プロセッサが実行する命令により演算結果がキャッシュラインに登録されたとき、登録データは、以後参照される可能性が少ないことを示す状態情報で管理される。
【0007】
キャッシュメモリに保持されたプロセッサによるアクセス頻度の低いデータを、下位階層のメモリに置き換える技術が知られている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−038298号広報
【特許文献2】特開2007−272681号広報
【発明の概要】
【発明が解決しようとする課題】
【0009】
プロセッサが、ロード要求又はプリフェッチ要求によって読み出されたデータを登録するラインが置換対象か否かを特定する属性情報を付加する場合がある。さらに、プロセッサが、属性情報を付加したロード要求と、ロード要求に付加した属性情報と異なる属性情報を付加し、且つロード要求と同じアドレスに対するプリフェッチ要求とを、連続して出力する場合がある。このような場合、先行するロード要求により下位階層にあるメモリからデータが読み出されるので、メモリコントローラは、後続のプリフェッチ命令は一度中断し、ロード要求によりメモリからデータを取得した後で、後続のプリフェッチ要求に付加された属性情報でキャッシュラインを更新するように動作する。
【0010】
しかし、メモリコントローラが、プリフェッチ命令を中断し、応答信号をプロセッサに供給する間、プロセッサとキャッシュメモリとの間にあるバッファ回路が占有されるため、プロセッサがデータアクセス要求をキャッシュメモリに供給することが出来ない。
【0011】
開示の演算処理装置は、主記憶装置へのアクセス時間を短縮することを目的とする。
【課題を解決するための手段】
【0012】
開示の演算処理装置は、第1の記憶部を有する演算処理部と、第1の記憶部が保持するデータの一部を保持する第2の記憶部と、第2の記憶部からデータを読み出し、第1の論理値を取る第1の属性情報を含む第1の要求と、第2の記憶部からデータを読み出し、且つ第1の論理値と異なる第2の論理値を取る第2の属性情報を含む第2の要求とを、演算処理部から受け取り、且つ、第1の要求の完了通知を受け取るまで第1の要求を保持し又は第2の要求の完了通知を受け取るまで第2の要求を保持する第3の記憶部と、第1及び第2の要求を第3の記憶部から受け取り、且つ第1及び第2の要求に対応するアドレスのデータが第2の記憶部に無い場合、第1の要求の第1の属性情報を、第2の属性情報に置き換え、且つ第2の要求に対する完了通知を第1の記憶部に供給する制御部と、を有する。
【発明の効果】
【0013】
開示の演算処理装置は、主記憶装置へのアクセス時間を短縮するという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】演算処理装置の構成の一例を示す図である。
【図2】キャッシュメモリの一例を示す図である。
【図3】置換ウェイ制御回路の構成の一例を示す図である。
【図4】LDポート及びPFポートの一例を示す図である。
【図5A】MIBの一例を示す図である。
【図5B】MIBの一例を示す図である。
【図6】パイプラインの処理の一例を示す図である。
【図7】パイプラインの処理の一例を示す図である。
【図8】パイプラインの処理の一例を示す図である。
【図9】プロセッサコアが同一アドレスに対してロード要求及びプリフェッチ要求を発行した場合の処理のシーケンスの一例を示す図である。
【図10】プロセッサコアが同一アドレスに対してロード要求及びプリフェッチ要求を発行した場合の処理のタイムチャートである。
【図11A】セクタIDの置換処理がなされるキャッシュラインの状態をウェイ毎に示す図である。
【図11B】セクタIDの置換処理がなされるキャッシュラインの状態をウェイ毎に示す図である。
【図12】同一アドレスに対して複数の要求が出された場合のスワップ可能性の一例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、プロセッサとしての演算処理装置の実施形態を説明する。
図1は、演算処理装置の構成の一例を示す図である。図1に示す演算処理装置10は、演算処理部としてのプロセッサコア(Processor Core)5、L2キャッシュコントローラ(Level−2 Cache Controller)80、L2タグRAM(Level−2 Tag Random Access Memory)201、L2データRAM(Level−2 Data Random Access Memory)202、セクタIDRAM(Sector ID RAM)203、置換ウェイ制御回路300、及びムーブインバッファ(MIB:Move−In Buffer)160を有する。演算処理装置10は、メモリコントローラ400を介して主記憶装置420に接続される。
【0016】
プロセッサコア5は、命令部(IU:Interger Unit)12、実行部(EU:Execution Unit)14、L1キャッシュコントローラ(Level−2 Cache Controler)16、L1キャッシュメモリ(Level−1 Cache Memory)18を有する。なお、演算処理装置10は、プロセッサコアを複数搭載するマルチコアプロセッサであっても良い。演算処理装置10がマルチコアプロセッサの場合、プロセッサコア5以外の他のプロセッサコアも、プロセッサコア5と同様の処理を実行する。
【0017】
命令部12は、データ要求信号をL1キャッシュコントローラ16に供給して、データを取得する。L1キャッシュメモリ18で、キャッシュヒットが生じると、L1キャッシュメモリ18から命令が命令部12へ供給される。またL1キャッシュメモリ18で、キャッシュミスが生じると、L1キャッシュコントローラ16は、LDポート(LoaD Port)64へロード要求を、又は、PFポート(PreFetch Port)66へプリフェッチ要求を発行する。なお、プリフェッチ要求とは、要求元であるプロセッサコア5があらかじめ必要と予想されるデータを主記憶装置からL2キャッシュメモリ100に登録する要求である。
【0018】
L1キャッシュメモリ18から読み出した命令を、デコードして、デコード命令及びレジスタアドレスを「演算制御信号」として、実行部14に供給する。デコードした命令は、例えば、L1キャッシュメモリ18へのロード命令、ストア命令、又はプリフェッチ命令である。なお、これらの命令は、データの置換状態を制御するために規定されるセクタIDを含む。セクタIDは、図3を用いて後述される。命令部12は、データ要求信号をL1キャッシュコントローラ16に供給することで、L1キャッシュメモリ18から命令を読み出す。
【0019】
実行部14は、実行部14の内部にあるレジスタアドレスで特定されるレジスタからデータを取り出し、デコードした命令に従って演算する。実行部14は、デコードされた命令に従って、「データ要求信号」として、ロード要求、ストア要求、又はプリフェッチ要求を、L1キャッシュコントローラ16に供給する。L1キャッシュコントローラ16は、ロード命令に従って、データを実行部14に供給する。実行部14は、命令の実行を終了すると、次の演算制御信号を受け取るために、演算完了信号を命令部12に供給する。
【0020】
L1キャッシュメモリ18は、図示しないが、Translation Lookaside Buffer(TLB)、L1タグRAM、及びL1データRAMを含む。そして、L1キャッシュコントローラ16は、仮想アドレスでキャッシュラインを特定し、TLB及びL1タグRAMのキャッシュラインからそれぞれ読み出される物理アドレスを比較することで、L1キャッシュメモリ18のキャッシュミス又はヒットを判断する。
【0021】
L2キャッシュコントローラ80は、MOポート(Move−OutPort)62、LDポート64、PFポート66、優先制御回路60、パイプライン70、データ入力バッファ32、及びデータ出力バッファ34を有する。
【0022】
MOポート62、LDポート64、PFポート66は各プロセッサコアに対応して存在する。MOポート62、LDポート64、PFポート66は、それぞれ、L2キャッシュメモリの置換要求(MO要求)、ロード要求(LD要求)、プリフェッチ要求(PF要求)を一時的に保持し、且つパイプライン70に処理の要求を行う。MOポート62、LDポート64、PFポート66は、パイプライン70によるパイプライン処理が完了すると、L1キャッシュコントローラ16に開放通知を発行する。
【0023】
MOポート62、LDポート64、PFポート66は、プロセッサコア5からの要求のオーバフローを防止するために、要求通知で現在のポインタ値に1を加算(+1)し(インクリメント)、開放通知で現在のポインタ値から1を減算する(−1)資源カウンタを持ち、資源カウンタがエントリ数を超えないように要求発行を制限する。LDポート64及びPFポート66の一例は、図4を用いて後述される。
【0024】
優先制御回路60は、MOポート62、LDポート64、PFポート66から要求を受け取り、所定の優先順位に従ってパイプライン70へ要求を投入する。
【0025】
パイプライン70は、L2キャッシュメモリ100へのデータアクセス要求、各種資源管理を行う。パイプライン70は、L2キャッシュメモリ100でキャッシュミスが生じると、LDポート64又はPFポート66から受け取ったロード要求又はプリフェッチ要求を、MIB160に投入する。パイプライン70は、パイプラインの処理が完了したことを示す完了信号、又は、処理が中断したことを示す中断信号を、MOポート62、LDポート64、PFポート66へ供給する。なお、パイプラインの処理の一例は、図5〜7を用いて後述する。
【0026】
MIB160は、パイプライン70からロード要求又はプリフェッチ要求を受け取ると、主記憶装置420からデータを取得するために、メモリコントローラ400へ対象となるデータのロード要求を発行する。以下、メモリコントローラ400へのロード要求を「Mロード要求」と呼ぶ。その後、MIB160は、メモリコントローラ400からのデータ応答を待つ。
【0027】
また、MIB160は、キャッシュミスにより、メモリコントローラ400にMロード要求を発行しているデータの属性情報(アドレス等)を一次的に保持する。MIB160の一例は、図8を用いて後述される。
【0028】
データ入力バッファ32は、L2キャッシュメモリ100でキャッシュヒットが検出された場合、L2データRAM202から読み出されたデータを受け取り、プロセッサコア5に供給する。また、データ入力バッファ32は、Mロード要求によって主記憶装置420から読み出したデータを、プロセッサコアに供給する。データ出力バッファ34は、プロセッサコア5からデータを受け取り、L2データRAM202又は主記憶装置420に書き込む。
【0029】
以上の構成により、LDポート64がロード要求を受け取った場合を説明する。LDポート64は、パイプライン70にロード要求を投入する。パイプライン70で、L2タグRAM201からタグを検索してキャッシュヒットしたら、L2データRAM202で読み出したデータを、データ出力バッファ34経由でプロセッサコア5へ転送する。タグを検索してキャッシュミスしたら、パイプライン70は、MIB160へ要求を登録し、メモリコントローラ400へロード要求を発行する。
【0030】
ロード要求を受信したメモリコントローラ400は、主記憶装置420からデータを取得し、MIB160にデータ応答を返し、データをデータ入力バッファ32へ送信する。データ応答を受信したMIB160は、プライオリティ部にL2タグRAMの更新およびL2データRAMの更新、さらにプロセッサコア5へのデータ応答を要求する。データ応答を受信したプロセッサコア5のL1キャッシュコントローラ16は、実行部14へデータを転送するとともにL1キャッシュメモリ18へのデータの登録を行う。
【0031】
図2は、キャッシュメモリの一例を示す図である。図2に示されるL2キャッシュメモリ100は、4ウェイのセットアソシアティブ方式のキャッシュメモリである。図2に示されるように、L2キャッシュメモリ100は、複数のセットで構成されており、各セットは、キャッシュウェイ101a〜101dに分けて管理される。
【0032】
図2に示されるL2キャッシュメモリ100は、L2キャッシュメモリ100が保持するデータを、キャッシュライン103−1〜103−nと呼ぶ単位で管理する。各キャッシュラインは、プロセッサコア5からのデータアクセス要求350に含まれるインデックスアドレスにより特定される。データアクセス要求350は、例えば、ロード要求、及びプリフェッチ要求がある。
【0033】
L2キャッシュメモリ100は、L2タグRAM201、L2データRAM202、セクタIDRAM221、ライトアンプ211〜213、比較回路231a〜231d、及び選択回路232、233を含む。L2タグRAM201、L2データRAM202、及びセクタIDRAM221はそれぞれ、キャッシュライン103−1〜103−nに対応した複数のエントリを有する。L2タグRAM201の各エントリには、「タグ」と呼ばれる物理アドレスの一部が保持される。L2キャッシュメモリ100は、4つのウェイを有するため、連想度は「4」である。1つのインデックスアドレスにより、4つのキャッシュライン及び4つのタグが特定される。
【0034】
L2タグRAM201の各エントリには、タグが保持される。タグは、ライトアンプ211により書き込まれる。L2データRAM202の各エントリには、タグにより特定されるデータが保持される。L2データRAM202の各エントリは、ライトアンプ212によりデータが書き込まれる。セクタIDRAM221の各エントリには、セクタIDが保持される。セクタIDRAM221の各エントリは、ライトアンプ213により「セクタID」が書き込まれる。セクタIDは、1ビット又は2ビットで構成される。1ビットの場合は、セクタIDの値は0か1の何れかの値を取り得る。2ビットの場合は、セクタIDは、0〜2の3通り又は0〜3の4通りの値を取り得る。
【0035】
比較回路231a〜231d、TLBから供給される物理アドレスの一部と、L2データRAMから読み出したタグとを比較することで、キャッシュミス又はキャッシュヒットを判定する回路である。比較回路231a〜231dは、それぞれキャッシュウェイ101a〜101dに関係付けられる。キャッシュヒットを生じた比較回路231a〜231dは、タグの一致が検出された比較回路の出力のみが1となる、4ビットのヒットウェイ信号を出力する。
【0036】
キャッシュミスの場合、主記憶装置上の物理アドレスからデータを取得する動作がなされる。キャッシュミスにおけるデータ取得動作の一例は、図4を用いて後述される。
【0037】
キャッシュヒットが発生した場合であってメモリアクセス要求が読出し要求の場合には、L2データRAM202において、インデックスにより指定されるキャッシュラインから、各キャッシュウェイに対応する4つのキャッシュラインのデータ値が選択回路232に読み出される。そして、4つの比較回路から出力されるヒットウェイ信号により、タグの一致が検出された比較回路に対応する何れかのキャッシュウェイに対応するキャッシュラインのデータ値が選択されて出力される。
【0038】
キャッシュヒットが発生した場合であってメモリアクセス要求が書込み要求の場合には、L2データRAM202において、インデックスにより指定されるキャッシュラインにおける、各キャッシュウェイに対応する4つのキャッシュラインのうち、ヒットウェイ信号により指示されるキャッシュウェイのブロックに、メモリアクセス要求によって指定されるデータが書き込まれる。
【0039】
以上の構成により、データアクセス要求350によりアクセス対象のアドレスが特定されると、インデックスにより、キャッシュライン103−1〜103−nのうちの1つが指定される。その結果、キャッシュウェイ101a〜101dから、インデックスに対応する各キャッシュラインが読み出され、インデックスで特定されるキャッシュラインのタグが、それぞれ比較回路231a〜231dに入力される。
【0040】
キャッシュライン103−1〜103−nは、読み出された各キャッシュラインのタグと、データアクセス要求350に含まれたタグとの一致又は不一致を検出する。この結果、タグの一致が検出された比較回路において読み出されているキャッシュラインが、キャッシュヒットしたということになり、選択回路232からそのキャッシュラインのデータが読み出される。
【0041】
図3は、置換ウェイ制御回路の構成の一例を示す図である。置換ウェイ制御回路300は、キャッシュミスが発生したときに、インデックスにより指定されたキャッシュラインを有する4つのキャッシュウェイ101のうち、どのウェイが置換されるべきかを決定する。
【0042】
図3において、まず、データアクセス要求350には、L2キャッシュメモリ100におけるデータの置換を制御するために規定される1ビットのセクタID302が付加される。セクタIDは、キャッシュラインの置換処理において、置換対象のデータを特定するために使用される属性情報である。例えば、プロセッサコア5は、L2キャッシュメモリのキャッシュラインの置換処理を行うとき、セクタIDが「1」であるキャッシュラインを置換し、セクタIDが「0」であるキャッシュラインは置換しない。このように、セクタIDはそのセクタIDを有するキャッシュラインを置換対象とするか否かを制御するために使用される。
【0043】
データアクセス要求350は、セクタIDを含む。データアクセス要求350内のインデックスは、L2タグRAM201、L2データRAM202、及びセクタIDRAM203のライン番号を指定する。置換ウェイ選択可能マスク生成回路303は、インデックスにより指定されたセクタIDRAM203のライン番号から、4ビットのセクタID301と、データアクセス要求350に付加されている1ビットのセクタID302とを受け取る。
【0044】
そして、置換ウェイ選択可能マスク生成回路303は、エクスクルーシブオア回路(XOR)303−1とインバータ(INV)303−2とによって構成される。置換ウェイ選択可能マスク生成回路303は、データアクセス要求350からの1ビットのセクタID302と、セクタIDRAM203からの4ビットのセクタID301の各ビットとの間で、エクスクルーシブノア演算を実行する。
【0045】
これにより、データアクセス要求350に付加されているセクタID302のビット値(図3の例では「0」)と同じセクタIDのビット値を持つビット位置のみが値1となる、置換ウェイ候補309が出力される。例えば、図2のセクタIDRAM203から4ビットのセクタID301として「0001」が読み出されている場合には、そのうちの値「0」の部分が一致により「1」、値「1」の部分が不一致により「0」となることにより、4ビットからなる置換ウェイ候補309として「1110」が出力される。
【0046】
この置換ウェイ候補309は、値1を有するビット位置に対応するキャッシュウェイ101が、データアクセス要求350によって置換されるべきウェイであることを指示している。
【0047】
そして、置換ウェイ選択回路304は、置換ウェイ候補309において値が1であるビット位置に対応するウェイのうちの何れか1つを、LRUアルゴリズム等に従って選択する。置換ウェイ選択回路304は、選択されたウェイに対応するビット位置のみが1となる4ビットからなる置換ウェイ310(図3の例では「1000」)を出力する。
【0048】
置換ウェイ310は、セレクタ305、306、及び307に入力し、各セレクタにおいて、置換ウェイ310の4ビットのデータのうち値が1となるビット位置に対応するウェイを選択させる。
【0049】
セレクタ305、306、307は、L2データRAM202、L2タグRAM201、及びセクタIDRAM203内の置換ウェイ310の4ビットのデータのうち値が1となるビット位置に対応するウェイに、データ、タグ、及びセクタIDをそれぞれ出力する。
【0050】
また、データアクセス要求350内のインデックスは、L2データRAM202、L2タグRAM201、及びセクタIDRAM203のライン番号を指定する。これにより、L2データRAM202、L2タグRAM201、及びセクタIDRAM203において、指定されたライン番号の選択されたウェイのキャッシュライン103(塗りつぶされた部分)に、データ、タグ、及びセクタIDが書き込まれる。
【0051】
上述の機能により、L2キャッシュメモリ100から追い出したくないデータについてのデータアクセス要求350については、プロセッサコア5は、そのデータアクセス要求350に例えばセクタID=1を指定してメモリアクセスを行う。追出処理において、セクタID=1のキャッシュラインは、追い出されないように使用することが出来る。その後、L2キャッシュメモリ100からすぐに追い出されてもよいデータについてのデータアクセス要求350を実行する場合には、プロセッサコア5は、そのデータアクセス要求350に例えばセクタID=0を指定してメモリアクセスを行う。
【0052】
これにより、セクタID=0を付されて実行されたデータアクセス要求350のデータについては、キャッシュミス時にL2キャッシュメモリ100上でセクタID=0が記憶されたキャッシュウェイにおいてのみ置換が発生する。この場合、セクタID=1と共にL2キャッシュメモリ100に書き込まれたデータは置換されず追い出されない。
【0053】
このようにして、どのデータを追い出すかどうかを、データアクセス要求350に付したセクタIDによって制御することができるようになる。このデータアクセス要求350は、ユーザがプログラムによる指定するアクセス命令であってもよく、又はシステムの特定のハードウェアがL2キャッシュメモリ100に対して自動的に発行する要求であってもよい。
【0054】
図4は、LDポート及びPFポートの一例を示す図である。LDポート64は、エントリ選択部64−1、空きエントリ選択部64−2、LD信号記憶回路64−3、デコーダ64−4を有する。
【0055】
LD信号記憶回路64−3は、有効ビッド(Valid)、要求アドレスの物理アドレス(PA)、コード(CODE)、セクタID、L1識別情報(L1 ID)、ホールド(hld flg)を登録するエントリ構成を有する。
【0056】
L1識別番号は、L1キャッシュコントローラ16で生成される、ロード要求を識別する識別番号である。
【0057】
コード(CODE)は、信号種類を特定する情報である。コードは、「共有型命令プリフェッチ要求」、「共有型データプリフェッチ要求」、「排他型データプリフェッチ要求」の何れかを特定する。「共有型命令プリフェッチ要求」は、プリフェッチで取得した命令を、他のプロセッサコアで取得する「共有型」の状態情報でL2キャッシュメモリ100に保持することを要求する信号種類である。「共有型データプリフェッチ要求」は、プリフェッチで取得したデータを、他のプロセッサコアで取得する「共有型」の状態情報でL2キャッシュメモリ100に保持することを要求する信号種類である。「排他型データプリフェッチ要求」は、プリフェッチで取得したデータを排他型、つまり要求元プロセッサコアがデータを変更できる状態で保持することを要求する信号種類である。
【0058】
エントリ選択部64−1が、LD信号を受け取ると、空きエントリ選択部64−2により通知されたエントリに対して、LD信号を登録する。デコーダ64−4は、パイプライン70から、ポート並びにエントリIDを特定する完了通知又は中止通知を受け取る。デコーダ64−4は、完了通知を受け取ると、完了通知により特定されるエントリの有効ビットを無効に設定する。デコーダ64−4は、中止通知を受け取ると、中止通知により特定されるエントリのホールドを有効に設定する。空きエントリ選択部は、有効ビット(Valid)が無効となっているエントリを検索して、エントリ選択部64−1に通知する。
【0059】
LDポート64は、プロセッサコア5からLD信号を、受け取り、空いているエントリに登録し、要求の受信順にパイプライン70へロード要求を投入する。パイプライン70は、最終ステージで完了通知または中止通知をLDポート64へ供給する。完了の場合はエントリを開放し、中止の場合は再度パイプライン70へロード要求を投入する。
【0060】
PFポート66は、エントリ選択部66−1、空きエントリ選択部66−2、PF信号記憶回路66−3、デコーダ66−4を有する。
【0061】
PF信号記憶回路66−3は、有効ビッド(Valid)、物理アドレス(PA)、データコード(CODE)、セクタID、ストロング情報(strong)を含むデータ構造を有するPF信号を、複数のエントリに保持する。プリフェッチ要求は、要求が処理されなくても性能面での劣化を無視すれば、プロセッサコアは正しい動作が可能である。しかしながら、本実施形態では、プリフェッチ要求がセクトIDを指定する場合、プリフェッチ要求が有効に処理されない場合、不要なL2キャッシュミスが生じる。図11A及び図11Bを用いて、プリフェッチ要求が有効に処理されない例は、後述される。
【0062】
ストロング情報は、プリフェッチ要求の実行を必ず行うか、実行せず完了するかを特定する。プリフェッチ要求が、「1」のストロング情報を含む場合、当該プリフェッチ要求は、必ず処理しなければならないストロングプリフェッチ要求であることを意味する。よって、プロセッサコア5が実行するソフトウェアは、プリフェッチ要求のストロング情報が「1」の場合、プリフェッチ要求実行によりL2キャッシュメモリ100にデータが書き込まれたことを想定してコード化されている。そのため、プリフェッチ要求のストロング情報が「1」のときに、プリフェッチ要求が適切に実行されない場合、図11A及び図11Bで示すような不要なL2キャッシュミスが生じる。
【0063】
一方、プリフェッチ要求が、「0」のストロング情報を含む場合、当該プリフェッチ要求は、必ず処理しなければならないストロングプリフェッチ要求では無いことを意味する。よって、プロセッサコア5が実行するソフトウェアは、プリフェッチ要求のストロング情報が「0」の場合、ソフトウェアは、図11A及び図11Bで示すようなL2キャッシュミスが生じないようにコード化されている。このように、ストロング情報は、ソフトウェアを作成する上で、プリフェッチ要求の使用方法に柔軟性を与える。
【0064】
PFポート66の他の構成要素の動作は、LDポート64の対応する構成要素と同じであるので、説明を省略する。
【0065】
図5A及び図5Bは、MIBの一例を示す図である。MIB160は、エントリ選択部160−1、空きエントリ選択部160−2、バッファ回路160−3、デコーダ160−4、160−11、PA比較部160−5、AND回路160−6、160−9、及びOR回路160−7、160−8を有する。MIB160はさらに、MIBエントリ監視部160−10、選択回路160−12、160−13を有する。
【0066】
バッファ回路160−3は、有効ビッド(Valid)、物理アドレス(PA)、コード(CODE)、PF番号、セクタID、L1識別情報(L1−ID)、ホールド(hld flg)、及びコアIDを登録するエントリ構成を有する。バッファ回路160−3はさらに、ウェイ識別情報(WAY ID)、メインコントローラ要求済みフラグ(Req_issued)、置換処理完了(RPL_cplt)、メモリコントローラ応答受信(MS_cplt)を登録するエントリ構成を有する。
【0067】
物理アドレス(PA)、及びコード(CODE)IDは、プロセッサコア5で生成されて、MI又はPFポートを介して、MIB160で最初のエントリ獲得により登録される。
【0068】
PF番号は、パイプライン70で生成され、MIB160で最初のエントリ獲得、又はLDスワップにより登録される。なお、MIB160に保持される先行のロード要求のセクタIDを、後続のプリフェッチ要求のセクタIDで更新する処理を「LDスワップ」と呼ぶ。また、MIB160に保持される先行のプリフェッチ要求のセクタIDを、後続のプリフェッチ要求のセクタIDで更新する処理を「PFスワップ」と呼ぶ。「LDスワップ」は、図6を用いて後述され、「PFスワップ」は、図7を用いて後述される。
【0069】
セクタIDは、プロセッサコア5で生成されて、LDポート64又はPFポート66を介して、MIB160で最初のエントリ獲得、又はLDスワップ又はPFスワップにより登録される。
【0070】
L1識別番号は、プロセッサコア5で生成され、LDポート64を介して、MIB160で最初のエントリ獲得、又はLDスワップにより登録される。
【0071】
コアIDは、パイプライン70で生成され、MIB160で最初のエントリ獲得、又はLDスワップにより登録される。
【0072】
ウェイIDは、L2タグRAM201で生成され、MIB160で最初のエントリ獲得により登録される。このように、LDスワップ時は、ロード要求に関わるL1識別情報、コアID、さらにセクタIDが更新されるが、PFスワップ時はセクタIDのみが更新される。
【0073】
エントリ選択部160−1が、LD信号又はPF信号又は更新情報を受け取ると、空きエントリ選択部160−2により通知されたエントリに対して、LD信号又はPF信号又は更新情報を登録する。デコーダ160−4は、パイプライン70から、LDポート64又はPFポート66、並びにエントリIDを特定する完了通知又は中止通知を受け取る。デコーダ160−4は、完了通知を受け取ると、完了通知により特定されるエントリの有効ビットを無効に設定する。
【0074】
デコーダ160−4は、中止通知を受け取ると、中止通知により特定されるエントリのホールドを有効に設定する。空きエントリ選択部160−2は、有効ビット(Valid)が無効となっているエントリを検索して、エントリ選択部160−1に通知する。デコーダ160−11は、メモリコントローラ400からデータを読み出したことを示すメモリ応答信号を受け取り、メモリ応答信号により特定されるエントリのメモリコントローラ応答受信(MS_cplt)を「1」にする。
【0075】
PA比較部160−5は、パイプライン70で処理中のロード要求又はプリフェッチ要求の対象データのPAと、MIB160に保持されているデータのPAとを比較することで、両データの一致を判断する。両データが一致すると、PA比較部160−5は、「1」を、AND回路160−6及びOR回路160−7に供給する。OR回路160−7は、PA比較部160−5から「1」の信号を受け取ると、パイプライン70にPA一致通知を供給する。AND回路160−6は、エントリの数だけある。OR回路160−8は、PAが一致し、且つ、メモリコントローラ400からデータ応答がある場合に、「1」をAND回路160−9に供給する。
【0076】
AND回路160−9は、アドレスが一致するエントリがあり、メモリコントローラ400からデータ応答がある場合は、スワップ可能通知をパイプライン70に供給しないように動作する。パイプライン70は、スワップ可能通知が「1」のときに、LDスワップ又はPFスワップ信号をMIB160に供給するように動作する。よって、パイプライン70は、MIB160に同じアドレスに対する先行要求があったとしても、主記憶装置420からデータを既に取得している場合は、パイプライン70がLDスワップ又はPFスワップ信号を、MIB160に供給することが出来ない。このように、LDスワップ又はPFスワップの動作を行わないのは、図9で後述するように、後続の要求がLDポート又はPFポートを無駄に有する時間も無く、且つ先行要求により読み出されたデータがプロセッサコアに送信する遅延させないためである。
【0077】
MIB160は、パイプライン70からLD信号又はPF信号又は更新通知を受け取り、空いているエントリにロード要求又はプリフェッチ要求を登録する。バッファ回路160−3から受信順に要求を取り出し、メモリコントローラ400へMロード要求を投入する。パイプライン70は、最終ステージで完了通知または中止通知をLDポート64へ供給する。完了の場合はLDポート64又はPFポート66からエントリを開放する。
【0078】
MIBエントリ監視部160−10は、有効ビッド(Valid)が「1」、及びメインコントローラ要求済みフラグ(Req_issued)が「0」のとき、メモリコントローラ400に選択信号S1を選択回路160−11に供給するように動作する。MIBエントリ監視部160−10は、有効ビッド(Valid)及び置換処理完了(Req_issued)及びメモリコントローラ応答受信(MS_cplt)が「1」であり、ホールド(hld flg)が「0」のときに選択信号S2を選択回路160−13に供給するように動作する。
【0079】
選択回路160−12は、選択信号S1を受け取ると、選択信号S1生成の条件となったエントリを置換する置換処理命令を、優先制御回路60に供給する。置換回路160−13は、選択信号S2を受け取ると、メモリコントローラ400にMロード要求を供給するように動作する。
【0080】
図6〜図8は、パイプラインの処理の一例を示す図である。パイプライン70は、優先制御回路60により決定される優先順にしたがって処理を実行する。優先順は要求の種別毎に、例えば、「データ取得後のタグRAM及びセクタIDRAM更新」>「L2キャッシュラインの置換」>「ロード要求」>「プリフェッチ要求」の順である。「データ取得後のタグRAM及びセクタIDRAM更新」及び「L2キャッシュラインの置換」は、LDポート64、PFポート66、及びMIB160のエントリが開放される処理である。エントリ開放処理を優先させることでL2キャッシュメモリのデッドロック可能性を軽減している。
【0081】
パイプライン70は、要求を、ステージと呼ばれる処理工程に分けて処理する。パイプライン70は、クロックに同期して、各ステージを同じ処理時間で処理する。パイプライン70は、各ステージの処理工程を実行するために、L2タグRAM201、優先制御回路60などのリソースと接続しており、リソースに信号を供給、又は受け取ることで処理工程を実行する。
【0082】
パイプライン70のステージは、動作要求読出ステージ(RR)、優先順位決定ステージ(PD)、PA入力ステージ(PI)、タグ読出ステージ(TR)、キャッシュヒット検出ステージ(CD)、要求処理判断ステージ(RP)である。
【0083】
図6を用いて、パイプライン70によるロード要求処理の一例を説明する。要求読出ステージでは、パイプライン70は、LDポート64又はPFポート66に保持される要求を読み取る。優先順位決定ステージでは、パイプライン70は、読み取った要求を優先制御回路60に供給して、所定の優先順位により優先制御回路60により決定された要求を受け取る。
【0084】
PA入力ステージでは、パイプライン70は、L2タグRAM201にアクセス対象データの物理アドレスを入力する。タグ読出ステージでは、パイプライン70は、L2タグRAM201からタグを読み出す。キャッシュヒット検出ステージでは、パイプライン70は、L2キャッシュメモリ100からキャッシュヒット又はキャッシュミスを検出する。
【0085】
要求処理判断ステージでは、キャッシュヒット検出ステージの検出結果に従って、処理がなされる。
【0086】
キャッシュミス検出の場合、パイプライン70は、MIB160のエントリにロード要求を投入して、LDポート64へ完了通知を供給する。
【0087】
キャッシュヒット検出の場合、パイプライン70は、L2データRAM202からデータを読み出して、LDポート64へ完了通知を供給する。
【0088】
パイプライン70は、MIB160へロード要求投入後、MIB160から「PA一致通知」を受け取ると、MIB160へ先行して投入したプリフェッチ要求と後続のロード要求との間で差異のある情報を更新する「スワップ」通知を供給する。差異のある情報とは、例えば、セクタIDである。
【0089】
MIB160に、物理アドレスが一致する2つ以上のプリフェッチ要求又はロード要求が保持されていることを「PA一致」と呼ぶ。
【0090】
パイプライン70は、MIB160へロード要求投入後、MIB160から「PA一致通知」を受け取り、MIB160で保持する要求間に差異がなければ、パイプライン70は、MIB160へ完了通知を供給し、且つ、LDポート64に中止通知を供給する。MIB160は、完了通知を受け取ると、完了通知により特定されたエントリを開放する。
【0091】
その他、ロード要求が処理されなかった場合、パイプライン70は、MIB160に中止通知を供給する。
【0092】
図7を用いて、パイプラインによるプリフェッチ要求処理の一例を説明する。プロフェッチ要求処理は、要求処理判断ステージ以外は、ロード要求処理と同じである。よって、要求処理判断ステージについてのみ説明する。
【0093】
キャッシュミス検出の場合、パイプライン70は、MIB160のエントリにプリフェッチ要求を投入して、LDポート64へ完了通知を供給する。
【0094】
キャッシュヒット検出の場合、パイプライン70は、L2データRAM202からデータを読み出して、LDポート64へ完了通知を供給する。
【0095】
パイプライン70は、MIB160へプリフェッチ要求投入後、MIB160から「PA一致通知」を受け取ると、MIB160へ先行して投入したプリフェッチ要求と後続のプリフェッチ要求との間で差異のある情報を更新する「スワップ」通知を供給する。
【0096】
パイプライン70は、MIB160へプリフェッチ要求投入後、MIB160から「PA一致通知」を受け取り、MIB160で保持する要求間に差異がなければ、パイプライン70は、MIB160へ完了通知を供給し、且つ、LDポート64に中止通知を供給する。MIB160は、完了通知を受け取ると、完了通知により特定されたエントリを開放する。
【0097】
その他、プリフェッチ要求が処理されなかった場合、パイプライン70は、MIB160に中止通知を供給する。
【0098】
図8を用いて、パイプラインによるL2置換要求処理の一例を説明する。L2置換要求処理は、要求処理判断ステージ以外は、ロード要求処理と同じである。よって、要求処理判断ステージについてのみ説明する。
【0099】
置換対象ラインがL2キャッシュメモリ100に無い場合、パイプライン70は、MOポート62へ完了通知を供給する。
【0100】
置換対象ラインがL2キャッシュメモリ100に在る場合、パイプライン70は、置換対象ラインに対して主記憶装置420から取得したデータのライトバック処理、又は対象ラインの無効化処理を行い、MOポート62へ完了通知を供給する。
【0101】
置換要求が処理されなかった場合、パイプライン70は、置換要求処理を中止し、MOポート62に中止通知を供給する。
【0102】
図9は、プロセッサコアが同一アドレスに対してロード要求及びプリフェッチ要求を発行した場合の処理のシーケンスの一例を示す図である。図10は、プロセッサコアが同一アドレスに対してロード要求及びプリフェッチ要求を発行した場合の処理のタイムチャートである。図9及び図10では、同じ符号で示される処理は、同じ動作が行われる。
【0103】
プロセッサコア5は、LDポート64に、「セクタID=0」を含むロード要求を出力する(S11)。LDポート64は、ロード要求を保持する(S12)。LDポート64に保持されるロード要求が、優先制御回路60により、パイプライン70に投入されると、パイプライン70がキャッシュミスを検出し、MIB160にロード要求を登録する(S13)。ロード要求に含まれるセクタID=0が、MIB160のエントリに登録される(S14)。MIB160は、メモリコントローラ400にMロード要求信号を供給する(S15)。メモリコントローラ400は、主記憶装置420からMロード要求により特定される物理アドレスのデータを取得する(S16)。
【0104】
さらに、プロセッサコア5は、ロード要求をLDポート64に供給した後で、ロード要求と同一のアドレスに対する「セクタID=1」を含むプリフェッチ要求を、PFポート66に供給する(S31)。PFポート66は、プリフェッチ要求を保持する(S32)。PFポート66に保持されるプリフェッチ要求が、優先制御回路60により、パイプライン70に投入される。そして、パイプライン70が、キャッシュミスを検出し、且つMIB160に先行のロード要求が同じアドレスに対する要求であることを検出する(S33)。パイプライン70は、プリフェッチ要求に含まれる「セクタID=1」で、ロード要求のセクタIDに対してLDスワップする(S34)。さらに、パイプライン70は、PFポート66に対して完了通知を供給する。なお、プリフェッチ要求のストロング情報が「0」であり、プリフェッチをしなくても良い場合は、S34では、LDスワップをすることなく、パイプライン70は、PFポートに対して完了通知を出力する。
【0105】
先行のロード要求は、同一アドレスに対するものであるため、ロード要求により、主記憶装置から対象とするデータを取得することが出来る。そのため、S41に示すように、後続のプリフェッチ要求を中止する。そして、中止したプリフェッチ要求は、先行するロード要求により、タグRAM及びデータRAMが更新された後で、リトライ処理(S42)によりタグRAMでセクタID=1を登録することが出来る(S43)。しかし、S41では、中止したプリフェッチ要求が、PFポートのエントリを占有することになる。そのため、S33に示すように、PFスワップし、後続のプリフェッチ要求を完了させることで、PFポートの不要な占有を無くすことが出来る。
【0106】
メモリコントローラ400からデータが送信される(S17)と、MIB160は、置換命令をパイプライン70に供給する(S18)。MIB160から置換要求を受け取ったパイプライン70は、主記憶装置420から取得したデータをL2データRAM202に登録し(S19)、タグとセクタIDをL2タグRAM201に登録する(S20)。データ入力バッファ32は、主記憶装置420から取得したデータを、プロセッサコア5に送信する(S21)。
【0107】
図11A及び図11Bは、図9及び図10に示したセクタIDの置換処理がなされるキャッシュラインの状態をウェイ毎に示す図である。図11A及び図11Bに示すL2キャッシュメモリのウェイ数は、「8」である。また、プロセッサコアは、セクタID=0になるウェイの数が常に「1」であるように、L2キャッシュメモリに対してプリフェッチ要求又はロード要求を発行する。
【0108】
状態701は、キャッシュミスによる置換処理前のキャッシュラインの状態を示す。状態701のときのLRU711は、「A<B<C<D<E<F<G<H(Aが最も古く、Hが最新)」の状態となる。
【0109】
状態702は、L2キャッシュが、アドレスXをセクタID=0でロードするロード要求を受け取った後、キャッシュミスが生じたため、アドレスXと同一インデックスのアドレスAを置換して、アドレスXを登録したキャッシュラインの状態を示す。状態702のときのLRU712は、「B<C<D<E<F<G<H<X」となり、WAY0に登録されたアドレスXはLRUでは最新の状態になる。
【0110】
状態703は、図9及び図10のS34に示す「LDスワップ」がなされた後のキャッシュラインの状態である。L2キャッシュが、アドレスXをセクタID=1でプリフェッチするプリフェッチ要求を受け取り、アドレスAがセクタID=0で登録されているために、セクタID=1のアドレスXに置き換えられた状態を示す。状態703のLRU713は、「B<C<D<E<F<G<H<X」となり、状態702のLRU712と同じである。
【0111】
状態704は、L2キャッシュが、アドレスYをセクタID=0でプリフェッチするプリフェッチ要求を受け取った後、キャッシュミスが生じたため、アドレスYと同一インデックスのアドレスYを置換して、アドレスYを登録したキャッシュラインの状態を示す。アドレスYをセクタID=0でプリフェッチするプリフェッチ要求を受け取った時点では、アドレスYと同一インデックスの全ウェイがセクタID=1で登録されており、セクタID=0で登録されているブロックが存在しない。そのため、LRUアルゴリズムによって最も古いブロックであるアドレスB(WAY=1)がリプレース対象として選択され、アドレスYが登録される。よって、状態704のLRU714は、「C<D<E<F<G<H<X<Y」である。
【0112】
状態705は、L2キャッシュが、アドレスXをセクタID=1でロードするロード要求を受け取り、キャッシュヒットが生じたときの状態を示す。アドレスXのデータが使用されたため、LRU715では、アドレスXが最新になる。よって、状態705のLRU715は、「C<D<E<F<G<H<Y<X」である。
【0113】
このように、「LDスワップ」によって、先行のプリフェッチ要求によるセクタID=1の更新が適切に実行されたため、プロセッサコアは、セクタID=1でロードするロード要求がキャッシュヒットする。
【0114】
一方、状態723〜725は、図9及び図10のS34に示す「LDスワップ」がなされず、後続のプリフェッチ要求が完了された場合を示す。
【0115】
状態723は、アドレスXをセクタID=1でプリフェッチするプリフェッチ要求が完了させられたため、L2キャッシュが、アドレスAがセクタID=0で登録されているために、セクタID=0のアドレスXに置き換えられた状態を示す。状態723のLRU733は、「B<C<D<E<F<G<H<X」となる。
【0116】
状態724では、プロセッサコアが、アドレスYをセクタID=0でプリフェッチするプリフェッチ要求を発行する。この時点でアドレスYと同一インデックスのうちセクタID=0で登録されているブロックはXのみであるため、アドレスX(WAY=0)が置換対象として選択され、WAY=0にアドレスYが登録される。Xの置換処理の際に、L2キャッシュコントローラは、プロセッサコアのL1キャッシュの同一アドレスに対して無効化処理を要求する。状態724のLRU734は、「B<C<D<E<F<G<H<Y」となる。
【0117】
状態725では、プロセッサコアが、アドレスXをセクタID=1でロードするロード要求を発行する。プロセッサコアが実行するソフトウェアの想定に反し、アドレスXはL1キャッシュでキャッシュミスとなる。状態725のLRU735は、LRU734と変わらない。
【0118】
このように、セクタIDが、ソフトウェアの想定に反して、L2キャッシュコントローラで適切に処理されないと、演算処理装置10の性能低下を招くことになる。一方、上記の状態703のように、「LDスワップ」させることによって、不要なキャッシュミスを防止し、演算処理装置10の性能低下を招かない。
【0119】
図9及び図10に示す例では、先行要求がロード要求であり、後続要求がプリフェッチ要求のケースを示したが、先行要求と後続要求との他のケースについても、PFスワップ又はLDスワップを行うことが出来る。
【0120】
図12は、同一アドレスに対して複数の要求が出された場合のスワップ可能性の一例を示す図である。表600の第1行には、先行要求がプリフェッチ要求で、後続要求がプリフェッチの場合、スワップ可能であることが示される。スワップ後のMIBのエントリは、先行及び後続ともにプリフェッチ要求であるため、プリフェッチ要求が保持される。
【0121】
表600の第2行には、先行要求がプリフェッチ要求で、後続要求がロード要求の場合、スワップ可能であることが示される。ただし、このケースでは、スワップ後のMIBのエントリは、ロード要求が保持される。これは、ロード要求は、プリフェッチ要求と異なり、L1識別情報というロード要求ごとにユニークな識別情報が付されるので、プリフェッチ要求と異なり、プロセッサコアに戻されるまで、当該エントリの内容の消去、無効化又は初期化することが出来ないからである。
【0122】
表600の第3行には、図9及び図10で説明した例であるので、説明を省略する。
【0123】
表600の第4行には、先行及び後続ともにロード要求の場合は、スワップが出来ないことが示される。これは、ロード要求は、それぞれユニークなL1識別情報を有するため、スワップしても後続のロード要求を当該エントリの内容の破棄、消去、無効化又は初期化することが出来ないからである。
【符号の説明】
【0124】
5 プロセッサコア
10 演算処理装置
32 データ入力バッファ
34 データ出力バッファ
60 優先制御回路
62 MOポート
64 LDポート
66 PFポート
70 パイプライン
80 L2キャッシュコントローラ
100 L2キャッシュメモリ
160 MIB
201 L2タグRAM
202 L2データRAM
300 置換ウェイ制御回路
400 メモリコントローラ
420 主記憶装置

【特許請求の範囲】
【請求項1】
第1の記憶部を有する演算処理部と、
前記第1の記憶部が保持するデータの一部を保持する第2の記憶部と、
前記第2の記憶部からデータを読み出し、第1の論理値を取る第1の属性情報を含む第1の要求と、前記第2の記憶部から前記データを読み出し、且つ前記第1の論理値と異なる第2の論理値を取る第2の属性情報を含む第2の要求とを、前記演算処理部から受け取り、且つ、前記第1の要求の完了通知を受け取るまで前記第1の要求を保持し又は前記第2の要求の完了通知を受け取るまで前記第2の要求を保持する第3の記憶部と、
前記第1及び第2の要求を前記第3の記憶部から受け取り、且つ前記第1及び第2の要求に対応するアドレスのデータが前記第2の記憶部に無い場合、前記第1の要求の第1の属性情報を、前記第2の属性情報に置き換え、且つ前記第2の要求に対する前記完了通知を前記第1の記憶部に供給する制御部と、
を有することを特徴とする演算処理装置。
【請求項2】
前記演算処理装置において、
前記制御部は、前記第1の要求のアドレスに対応するデータを、主記憶装置から取得した後で、前記第2の属性情報及び前記主記憶装置から取り出したデータを前記第2の記憶部に登録することを特徴とする請求項1記載の演算処理装置。
【請求項3】
前記演算処理装置において、
前記制御部は、前記第2の要求が、要求の実行が必須ではない旨を判断する場合、前記第1の要求の第1の属性情報を、前記第2の属性情報に置き換えることを抑止することを特徴とする請求項1記載の演算処理装置。
【請求項4】
前記演算処理装置において、
前記第1の要求に対応するアドレスのデータを主記憶装置から取得した後、前記制御部は、前記第1の要求の第1の属性情報を、前記第2の属性情報に置き換えることを抑止することを特徴とする請求項1記載の演算処理装置。
【請求項5】
演算処理部に含まれる第1の記憶部と、前記第1の記憶部の下位階層にある第2の記憶部と、前記第1の記憶部及び前記第2の記憶部との間に配置された第3の記憶部と、前記第2の記憶部及び前記第3の記憶部へデータの入出力を制御する制御部とを有する演算処理装置を制御する方法であって、
前記第2の記憶部からデータを読み出し、第1の論理値を取る第1の属性情報を含む第1の要求を、前記第3の記憶部が受け取るステップと、
前記第1の要求を受け取るステップの後に、前記第2の記憶部から前記データを読み出し、且つ前記第1の論理値と異なる第2の論理値を取る第2の属性情報を含む第2の要求を、前記第3の記憶部が受け取るステップと、
前記第1及び第2の要求に対応するアドレスのデータが前記第2の記憶部に無い場合、前記制御部は、前記第1の要求の第1の属性情報を、前記第2の属性情報に置き換えるステップと、
前記制御部は、前記第2の要求を前記第3の記憶部から消去するステップと、
を有することを特徴とする演算処理装置の制御方法。
【請求項6】
前記演算処理装置の制御方法において、
前記第2の記憶部は、主記憶装置と接続されており、
前記制御部は、前記第1の要求に対応するアドレスのデータを前記主記憶装置から取得した後で、前記第2の属性情報及び前記データを前記第2の記憶部に登録するステップをさらに有することを特徴とする請求項5に記載の演算処理装置の制御方法。
【請求項7】
前記演算処理装置の制御方法において、
前記制御部は、前記第2の要求が要求の実行が必須ではないことを判定する場合、前記第1の要求の第1の属性情報を、前記制御部は、前記第2の属性情報に置き換えることを抑止するステップをさらに有することを特徴とする請求項5記載の方法。
【請求項8】
前記演算処理装置の制御方法において、
前記第2の記憶部は、主記憶装置と接続されており、
前記制御部は、前記第1の要求に対応するアドレスのデータを前記主記憶装置から取得するステップと、
前記制御部は、前記取得ステップの後、前記第2の属性情報に置き換えることを抑止するステップと、をさらに有することを特徴とする請求項5記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate


【公開番号】特開2011−123608(P2011−123608A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−279716(P2009−279716)
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】