(57)【要約】【課題】  全ての要求元に対応してバッファ部のデータ領域を確保しながら、要求元からのアクセス要求がアボートされる頻度を下げ、情報処理装置の性能の低下を抑制する。【解決手段】  演算処理装置は、記憶装置に対するアクセス要求を出力する演算処理部と、演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、複数の要求保持部に保持されたアクセス要求を調停する調停部と、データを保持する複数のエントリを有するバッファ部と、複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、調停部が調停したアクセス要求に応じて記憶装置が出力したデータを複数のエントリのいずれかに保持させるバッファ制御部を有している。【選択図】    図１
2014035678.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対するアクセス要求を出力する演算処理部と、
前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、
前記複数の要求保持部に保持されたアクセス要求を調停する調停部と、
データを保持する複数のエントリを有するバッファ部と、
前記複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させるバッファ制御部を有することを特徴とする演算処理装置。
【請求項２】
前記バッファ制御部は、
前記計数値が前記最大値未満である場合、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記バッファ制御部は、
前記計数値が前記最大値の場合、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させないことを特徴とする請求項１記載の演算処理装置。
【請求項４】
複数のアクセス種別のうちの１つを除くアクセス種別にそれぞれ対応する前記最大値の合計は、エントリの総数より少なく設定されることを特徴とする請求項１ないし請求項３のいずれか１項記載の演算処理装置。
【請求項５】
前記演算処理装置は、
各アクセス種別に対応するアクセス識別子毎に複数の要求保持部を有し、
前記バッファ制御部は、
前記複数のエントリのうちデータを保持したエントリをアクセス識別子毎に計数した計数値とアクセス識別子毎にデータを保持させるエントリの最大値とをアクセス種別子毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする請求項１記載の演算処理装置。
【請求項６】
前記演算処理装置は、
複数のアクセス種別に対応するグループ識別子毎に複数の要求保持部を有し、
前記バッファ制御部は、
前記複数のエントリのうちデータを保持したエントリをグループ識別子毎に計数した計数値とグループ識別子毎にデータを保持させるエントリの最大値とをグループ識別子毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする請求項１記載の演算処理装置。
【請求項７】
前記バッファ制御部は、
アクセス要求を優先させる場合にセットされる優先フラグをアクセス種別毎に有し、
前記優先フラグがセットされているアクセス種別に対応して確保されている前記エントリがない場合に、他のアクセス種別のアクセス要求に基づく前記エントリの確保を停止し、前記優先フラグがセットされているアクセス種別のアクセス要求に基づいて前記エントリを確保し、
複数のアクセス種別のうちの１つを除くアクセス種別にそれぞれ対応する前記最大値の合計は、エントリの総数以上に設定されることを特徴とする請求項１ないし請求項４のいずれか１項記載の演算処理装置。
【請求項８】
前記調停部は、
順次に選択する前記要求保持部に保持されているアクセス要求の受け付けに基づいてリセットされ、選択した前記要求保持部にアクセス要求が保持されていない場合にセットされるアイドルフラグを、アクセス種別毎に有し、
前記バッファ制御部は、
１つのアクセス種別に対応する前記アイドルフラグがリセットされ、他のアクセス種別に対応する前記アイドルフラグがセットされている場合に、前記計数値に拘わらず、リセットされているアイドルフラグに対応するアクセス要求に基づいて、前記エントリを確保することを特徴とする請求項１ないし請求項４のいずれか１項記載の演算処理装置。
【請求項９】
前記調停部は、
順次に選択する前記要求保持部に保持されているアクセス要求の受け付けに基づいて一方向にカウントされ、選択した前記要求保持部にアクセス要求が保持されていない場合に逆方向にカウントされるカウンタを、アクセス種別毎に有し、
前記バッファ制御部は、
前記カウンタが前記一方向に所定数カウントされた場合に、対応する前記最大値を増加させ、前記カウンタが前記逆方向に所定数カウントされた場合に、対応する前記最大値を減少させることを特徴とする請求項１ないし請求項４、請求項７のいずれか１項記載の演算処理装置。
【請求項１０】
記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
キャッシュメモリ部と、
前記記憶装置に対するアクセス要求を出力する演算処理部と、
前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、
前記複数の要求保持部に保持されたアクセス要求を調停する調停部と、
データを保持する複数のエントリを有するバッファ部と、
前記複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させるバッファ制御部と、
前記バッファ部に保持されたデータを前記キャッシュメモリ部に出力するキャッシュメモリ制御部を有することを特徴とする情報処理装置。
【請求項１１】
記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置の制御方法において、
前記演算処理装置が有する演算処理部が、前記記憶装置に対するアクセス要求を出力し、
前記演算処理装置が有する複数の要求保持部が、前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持し、
前記演算処理装置が有する調停部が、前記複数の要求保持部に保持されたアクセス要求を調停し、
前記演算処理装置が有するバッファ部が備える複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記演算処理装置が有するバッファ制御部が、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させ、
前記演算処理装置が有するキャッシュメモリ制御部が、前記バッファ部に保持されたデータを、前記演算処理装置が有するキャッシュメモリ部に出力することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
例えば、サーバ等の情報処理装置は、複数の演算処理装置により共有されるメインメモリ等の記憶装置と、記憶装置から読み出されるデータを保持するバッファ部とを有する。この種の情報処理装置では、アクセス要求の要求元に応じてバッファ部内のデータ領域は、動的に割り当てられる（例えば、特許文献１参照。）。また、中央制御装置やメモリなどの複数のノードをそれぞれ有する複数のドメインを、共有リソース内の複数のリソースの各々に割り当てる手法が提案されている（例えば、特許文献２参照。）。
【０００３】
さらに、共有データ装置内の複数のデータ領域の各々にアクセスする計算機または計算機のグループを割り当て、複数の計算機から共有データ装置への同時アクセスを排除する排他制御装置が提案されている（例えば、特許文献３参照。）。プライオリティが低いデータが格納されるバッファ部のデータ領域の比率を、バッファ部の利用効率に応じて変更することが提案されている（例えば、特許文献４参照。）。主記憶のデータをバッファする共有バッファを、複数のプロセッサを含むプロセッサグループ毎に有するマルチプロセッサシステムが提案されている（例えば、特許文献５参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１６４６０７号公報
【特許文献２】特開２００３−７６６７１号公報
【特許文献３】特開平８−２７８９５３号公報
【特許文献４】特開平９−６２５６４号公報
【特許文献５】特開平１０−７８９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、アクセス要求の要求元に対応して所定のデータ領域が割り当てられる場合、データ領域が割り当てられない要求元からのアクセス要求はアボートされてしまう。全ての要求元に対応してデータ領域を割り当てる場合、要求元毎に割り当てられるデータ領域の数は減るため、要求元からのアクセス要求がアボートされる頻度は高くなる。アボートが繰り返されると、情報処理装置および演算処理装置の性能が低下するおそれがある。
【０００６】
１つの側面では、本発明の目的は、全ての要求元に対応してバッファ部のデータ領域を確保しながら、要求元からのアクセス要求がアボートされる頻度を下げ、情報処理装置および演算処理装置の性能の低下を抑制することである。
【課題を解決するための手段】
【０００７】
本発明の一形態では、演算処理装置は、記憶装置に対するアクセス要求を出力する演算処理部と、演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、複数の要求保持部に保持されたアクセス要求を調停する調停部と、データを保持する複数のエントリを有するバッファ部と、複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、調停部が調停したアクセス要求に応じて記憶装置が出力したデータを複数のエントリのいずれかに保持させるバッファ制御部とを有する。
【０００８】
本発明の別の形態では、記憶装置と、記憶装置に接続された演算処理装置とを有する情報処理装置において、演算処理装置は、キャッシュメモリ部と、記憶装置に対するアクセス要求を出力する演算処理部と、演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、複数の要求保持部に保持されたアクセス要求を調停する調停部と、データを保持する複数のエントリを有するバッファ部と、複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、調停部が調停したアクセス要求に応じて記憶装置が出力したデータを複数のエントリのいずれかに保持させるバッファ制御部と、バッファ部に保持されたデータをキャッシュメモリ部に出力するキャッシュメモリ制御部とを有する。
【発明の効果】
【０００９】
データ領域であるエントリの割り当て数の最大値をアクセス要求の種別毎に設定することで、要求の種別毎に少なくとも１つのエントリを確保できる。これにより、アクセス要求がアボートされる頻度を従来に比べて下げることができ、情報処理装置および演算処理装置の性能の低下を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態における情報処理装置および演算処理装置の例を示している。
【図２】図１に示した情報処理装置および演算処理装置の動作の例を示している。
【図３】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図４】図３に示した情報処理装置および演算処理装置の動作の例を示している。
【図５】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図６】図５に示したポートの例を示している。
【図７】図５に示したバッファ部のエントリの割り当ての例を示している。
【図８】図５に示したバッファ制御部の例を示している。
【図９】図５に示した演算処理装置の動作の例を示している。
【図１０】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図１１】図１０に示したバッファ部のエントリの割り当ての例を示している。
【図１２】図１０に示したバッファ制御部の例を示している。
【図１３】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図１４】図１３に示したバッファ部のエントリの割り当ての例を示している。
【図１５】図１３に示したバッファ制御部の例を示している。
【図１６】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図１７】図１６に示した優先フラグ回路および保持回路の例と、バッファ制御部によるエントリの割り当ての例を示している。
【図１８】図１６に示したＬ２キャッシュ部の動作の例を示している。
【図１９】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図２０】図１９に示した調停部の動作の例を示している。
【図２１】図１９に示したバッファ制御部の動作の例を示している。
【図２２】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図２３】図２２に示した調停部の動作の例を示している。
【図２４】図２２に示したバッファ制御部の動作の例を示している。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、一実施形態における情報処理装置１００および演算処理装置２００の例を示している。情報処理装置１００は、演算処理装置２００および記憶装置３００を有する。例えば、情報処理装置１００は、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００は、ＣＰＵ（Central Processing Unit）等のプロセッサである。
【００１３】
例えば、記憶装置３００は、複数のＤＲＡＭ（Dynamic Random Access Memory）が搭載されたＤＩＭＭ（Dual Inline Memory Module）等のメモリモジュールである。記憶装置３００は、演算処理装置２００の演算処理部２１０が実行するプログラムや演算処理部２１０により処理されるデータを記憶する。なお、記憶装置３００は、半導体メモリチップや半導体メモリコアの形態でもよい。
【００１４】
例えば、演算処理装置２００および記憶装置３００は、プリント基板上に搭載される。なお、演算処理装置２００は、プロセッサチップまたはプロセッサコアでもよい。この場合、演算処理装置２００および記憶装置３００は、１つの半導体チップの上に搭載されてもよい。
【００１５】
演算処理装置２００は、演算処理部２１０、要求保持部２２０（２２０ａ、２２０ｂ）、調停部２３０、バッファ制御部２４０およびバッファ部２５０を有する。演算処理部２１０は、例えば、ＣＰＵコアであり、記憶装置３００に対するアクセス要求ＲＥＱを出力する。例えば、アクセス要求ＲＥＱは、ロード命令およびストア命令等の演算処理部２１０で扱うデータの入出力要求と、演算処理部２１０が実行するプログラムのプリフェッチ命令とを含む。
【００１６】
要求保持部２２０ａ、２２０ｂの各々は、アクセス要求ＲＥＱを保持する少なくとも１つの保持領域ＨＬＤを有する。なお、図１では、各要求保持部２２０ａ、２２０ｂが４個の保持領域ＨＬＤを有する例を示しているが、保持領域ＨＬＤの数は、４個に限定されない。要求保持部２２０ａは、演算処理部２１０から出力されるアクセス要求ＲＥＱのうち入出力要求を保持領域ＨＬＤに保持する。要求保持部２２０ｂは、演算処理部２１０から出力されるアクセス要求ＲＥＱのうちプリフェッチ命令を保持領域ＨＬＤに保持する。
【００１７】
データの入出力要求およびプログラムのプリフェッチ命令は、アクセス要求ＲＥＱの種別であるアクセス種別の一例である。換言すれば、演算処理部２１０は、アクセス種別毎に、アクセス要求ＲＥＱを要求保持部２２０ａ、２２０ｂにそれぞれ出力し、要求保持部２２０ａ、２２０ｂは、アクセス種別毎にアクセス要求ＲＥＱを保持する。
【００１８】
調停部２３０は、要求保持部２２０ａ、２２０ｂに保持されたアクセス要求ＲＥＱを調停し、記憶装置３００に出力するアクセス要求ＲＥＱを選択する。例えば、調停部２３０は、ラウンドロビン等の手法を用いて、要求保持部２２０ａ、２２０ｂに保持されたアクセス要求ＲＥＱを順次に選択する。そして、調停部２３０は、例えば、データを保持するバッファ部２５０内のエントリＥＮＴがアクセス要求ＲＥＱに対応して確保されたことに基づいて、アクセス要求ＲＥＱを記憶装置３００に出力する。
【００１９】
バッファ部２５０は、アクセス要求ＲＥＱに基づいて記憶装置３００から読み出されるデータを保持する複数のエントリＥＮＴを有する。図１において、太い破線は、データが転送されるデータ線を示している。なお、図１では、バッファ部２５０が８個のエントリＥＮＴを有する例を示しているが、エントリＥＮＴの数は、８個に限定されない。
【００２０】
この実施形態では、アクセス要求ＲＥＱに基づいて記憶装置３００から読み出されるデータを保持するエントリＥＮＴの数の最大値が、要求保持部２２０ａ、２２０ｂ毎に予め決められる。例えば、エントリＥＮＴの数が８個の場合、要求保持部２２０ａ、２２０ｂからのアクセス要求ＲＥＱに対応するエントリＥＮＴの割り当て数の最大値は、それぞれ７個以下である。
【００２１】
エントリＥＮＴの割り当て数の最大値は、１つの要求保持部２２０を除く他の要求保持部２２０に対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数より少なくなるように設定される。例えば、エントリＥＮＴの数が８個で、演算処理装置２００が４つの要求保持部２２０を有する場合、３つの要求保持部２２０に対応するエントリＥＮＴの割り当て数の最大値の合計は、７個以下に設定される。これにより、１つの要求保持部２２０を除く残りの要求保持部２２０に対応して、割り当て可能な最大数のエントリＥＮＴが確保される場合にも、１つの要求保持部２２０からのアクセス要求ＲＥＱに対応するエントリＥＮＴを確保できる。
【００２２】
バッファ制御部２４０は、要求保持部２２０ａ、２２０ｂに対応して確保されたエントリＥＮＴの数をそれぞれ計数して、計数値として保持する。バッファ制御部２４０は、各要求保持部２２０ａ、２２０ｂに対応する計数値が、エントリＥＮＴの割り当て数の最大値未満の場合、対応する要求保持部２２０からのアクセス要求ＲＥＱの調停部２３０による選択に基づいてエントリＥＮＴを確保する。バッファ制御部２４０は、各要求保持部２２０ａ、２２０ｂに対応する計数値が、エントリＥＮＴの割り当て数の最大値以上場合、対応する要求保持部２２０からのアクセス要求ＲＥＱが調停部２３０により選択された場合にも、エントリＥＮＴを確保しない。
【００２３】
すなわち、バッファ制御部２４０は、複数のエントリＥＮＴのうちデータを保持するエントリＥＮＴをアクセス種別毎に計数した計数値と、アクセス種別毎にデータを保持させるエントリＥＮＴの最大値とをアクセス種別毎に比較する。そして、バッファ制御部２４０は、比較結果に基づいて、調停部２３０が調停したアクセス要求ＲＥＱに応じて、記憶装置３００が出力したデータをエントリＥＮＴのいずれかに保持させる。
【００２４】
これにより、特定の要求保持部２２０にアクセス要求ＲＥＱが集中する場合にも、要求保持部２２０毎に少なくとも１つのエントリＥＮＴが確保されることを保証できる。換言すれば、要求保持部２２０毎に、所定の頻度でアクセス要求ＲＥＱが受け付けられることを保証できる。この結果、演算処理装置２００および情報処理装置１００の性能が、特定のアクセス要求ＲＥＱが受け付けられないことに起因して低下することなない。
【００２５】
図２は、図１に示した情報処理装置１００および演算処理装置２００の動作の例を示している。すなわち、図２は、情報処理装置１００および演算処理装置２００の制御方法の例を示している。図２に示したフローは、例えば、ハードウエアにより実現される。なお、図２は、アクセス要求ＲＥＱ毎の動作および要求保持部２２０毎の動作を示している。
【００２６】
まず、ステップＳ１０において、演算処理部２１０は、アクセス要求ＲＥＱを対応する要求保持部２２０に出力する。ステップＳ１２において、要求保持部２２０は、アクセス要求ＲＥＱを保持領域ＨＬＤに格納する。なお、例えば、演算処理部２１０は、保持領域ＨＬＤが空いた場合にアクセス要求ＲＥＱを要求保持部２２０に出力し、全ての保持領域ＨＬＤにアクセス要求ＲＥＱが格納された場合、アクセス要求ＲＥＱの出力を保留する。
【００２７】
ステップＳ１４において、調停部２３０は、要求保持部２２０に保持されたアクセス要求ＲＥＱの１つを選択する。なお、調停部２３０により選択された要求保持部２２０の保持領域ＨＬＤにアクセス要求ＲＥＱが保持されていない場合、調停部２３０は、次の要求保持部２２０に保持されたアクセス要求ＲＥＱを選択する。
【００２８】
調停部２３０によりアクセス要求ＲＥＱが選択された場合、ステップＳ１６において、バッファ制御部２４０は、アクセス要求ＲＥＱを保持した要求保持部２２０に対応して確保されたエントリＥＮＴの数Ｎと、当該要求保持部２２０に対応するエントリＥＮＴの割り当て数の最大値ＭＡＸとを比較する。確保された数Ｎが最大値ＭＡＸの場合、エントリＥＮＴが確保されないため、アクセス要求ＲＥＱはアボートされ、調停部２３０により別のアクセス要求ＲＥＱが選択される。ここで、アボートとは、アクセス要求ＲＥＱに対応するデータが演算処理部２１０に転送されない状態である。アクセス要求ＲＥＱがアボートされた場合、アクセス要求ＲＥＱは記憶装置３００に出力されず、要求保持部２２０はアクセス要求ＲＥＱを保持し続ける。
【００２９】
確保された数Ｎが最大値ＭＡＸ未満の場合、ステップＳ１８において、バッファ制御部２４０は、空きのエントリＥＮＴ（すなわち、確保されていないエントリＥＮＴ）があるかどうかをチェックする。エントリＥＮＴに空きがない場合、アクセス要求ＲＥＱはアボートされ、調停部２３０により別のアクセス要求ＲＥＱが選択される。
【００３０】
エントリＥＮＴに空きがある場合、ステップＳ２０において、バッファ制御部２４０は、調停部２３０により選択されたアクセス要求ＲＥＱに対応して記憶装置３００から読み出されるデータを格納するためのエントリＥＮＴを確保する。エントリＥＮＴの確保により、選択されたアクセス要求ＲＥＱを保持した要求保持部２２０に対応するエントリＥＮＴの数Ｎが”１”増加される。
【００３１】
ステップＳ２２において、調停部２３０は、エントリＥＮＴの確保に基づいて、アクセス要求ＲＥＱを記憶装置３００に出力する。記憶装置３００は、アクセス要求ＲＥＱに基づいて読み出し動作を実行し、メモリセルから読み出されるデータをバッファ部２５０に出力する。バッファ部２５０は、記憶装置３００から出力されるデータを、ステップＳ２０で確保されたエントリＥＮＴに格納する。
【００３２】
ステップＳ２４において、バッファ部２５０は、エントリＥＮＴに格納したデータを演算処理部２１０に出力する。エントリＥＮＴからのデータの出力に伴い、選択されたアクセス要求ＲＥＱを保持した要求保持部２２０に対応するエントリＥＮＴの数Ｎが”１”減少される。なお、要求保持部２２０に保持されたアクセス要求ＲＥＱは、エントリＥＮＴの確保に基づいて無効にされ、あるいは、バッファ部２５０から演算処理部２１０へのデータの出力に基づいて無効にされる。
【００３３】
以上、この実施形態では、エントリＥＮＴの割り当て数の最大値を、要求保持部２２０ａ、２２０ｂ毎に設定することで、各要求保持部２２０ａ、２２０ｂに対応して少なくとも１つのエントリＥＮＴを確保できる。これにより、調停部２３０は、各要求保持部２２０ａ、２２０ｂに保持されたアクセス要求ＲＥＱを所定の頻度で受け付け、記憶装置３００に出力できる。この結果、特定のアクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートにより演算処理部２１０がハングアップする可能性を従来に比べて低くできる。すなわち、アボートに起因する情報処理装置１００および演算処理装置２００の性能の低下を抑制できる。
【００３４】
図３は、別の実施形態における情報処理装置１００Ａおよび演算処理装置２００Ａの例を示している。図１と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、演算処理装置２００Ａは、図１に示したバッファ制御部２４０およびバッファ部２５０の代わりに、バッファ制御部２４０Ａおよびバッファ部２５０Ａを有する。また、演算処理装置２００Ａは、図１に示した要素に加えて、キャッシュメモリ制御部２６０Ａおよびキャッシュメモリ部２７０Ａを有する。演算処理装置２００Ａのその他の構成は、図１と同様である。
【００３５】
キャッシュメモリ制御部２６０Ａは、調停部２３０から出力されるアクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２７０Ａに存在するかどうかをチェックする。アクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２７０Ａに存在する場合（キャッシュヒット）、キャッシュメモリ制御部２６０Ａは、記憶装置３００にアクセス要求ＲＥＱを出力せず、キャッシュメモリ部２７０Ａからデータを読み出す。キャッシュメモリ部２７０Ａから読み出されたデータは、演算処理部２１０に出力される。
【００３６】
アクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２７０Ａに存在しない場合（キャッシュミス）、キャッシュメモリ制御部２６０Ａは、バッファ制御部２４０ＡにエントリＥＮＴの確保を要求する。なお、キャッシュヒットの場合、バッファ制御部２４０Ａは、バッファ部２５０ＡのエントリＥＮＴを確保しない。バッファ制御部２４０Ａの機能は、キャッシュミス時にエントリＥＮＴを確保し、キャッシュヒット時にエントリＥＮＴを確保しないことを除き、図１に示したバッファ制御部２４０と同様である。
【００３７】
アクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２７０Ａに格納されていない場合（キャッシュミス）、キャッシュメモリ制御部２６０Ａは、バッファ部２５０ＡのエントリＥＮＴが確保されたことに基づいて、記憶装置３００にアクセス要求ＲＥＱを出力する。エントリＥＮＴが確保されない場合、アクセス要求ＲＥＱは記憶装置３００に出力されず、アクセス要求ＲＥＱはアボートされる。
【００３８】
バッファ部２５０Ａは、図１に示したバッファ部２５０の機能に加えて、エントリＥＮＴに格納したデータをキャッシュメモリ部２７０Ａに出力する機能を有する。すなわち、キャッシュミスの場合、記憶装置３００から読み出され、エントリＥＮＴに格納されたデータは、演算処理部装置２１０に出力されるとともに、キャッシュメモリ部２７０Ａに格納される。
【００３９】
図４は、図３に示した情報処理装置１００Ａおよび演算処理装置２００Ａの動作の例を示している。すなわち、図４は、情報処理装置１００Ａおよび演算処理装置２００Ａの制御方法の例を示している。図２と同様または同一の動作については、同一の符号を付し、詳細な説明を省略する。図４に示したフローは、例えば、ハードウエアにより実現される。なお、図４は、アクセス要求ＲＥＱ毎の動作および要求保持部２２０毎の動作を示している。
【００４０】
この実施形態では、図２に示したステップＳ２４の代わりに、ステップＳ２５が実行される。また、図２の動作フローに加えて、ステップＳ１５、Ｓ２６、Ｓ２８が追加される。ステップＳ１５は、ステップＳ１４、Ｓ１６の間に配置される。ステップＳ１０、Ｓ１２、Ｓ１４、Ｓ１６、Ｓ１８、Ｓ２０、Ｓ２２、Ｓ２４の動作は、図２と同様である。
【００４１】
ステップＳ１５において、キャッシュメモリ制御部２６０Ａは、キャッシュミス／キャッシュヒットを判定する。キャッシュミスの場合、ステップＳ１６が実行され、キャッシュヒットの場合、ステップＳ２６が実行される。
【００４２】
ステップＳ２６において、キャッシュメモリ制御部２６０Ａは、調停部２３０からのアクセス要求ＲＥＱに基づいて、キャッシュメモリ部２７０Ａからデータを読み出す。次に、ステップＳ２８において、キャッシュメモリ制御部２６０Ａは、キャッシュメモリ部２７０Ａから読み出したデータを、演算処理部２１０に出力する。なお、アクセス要求ＲＥＱがプリフェッチ命令の場合、ステップＳ２６、Ｓ２８の実行はマスクされてもよい。すなわち、プリフェッチ命令では、データ（プログラム）は、キャッシュメモリ部２７０Ａから演算処理部２１０に転送されなくてもよい。
【００４３】
一方、キャッシュミスが判定され、ステップＳ１６、Ｓ１８、Ｓ２０を経て新たなエントリＥＮＴが確保された場合、ステップＳ２２により、記憶装置３００から読み出されたデータは、新たに確保されたエントリＥＮＴに格納される。そして、ステップＳ２５において、記憶装置３００から読み出されたデータは、演算処理装置２００Ａに出力されるとともに、キャッシュメモリ部２７０Ａに格納される。但し、プリフェッチ命令に基づいて記憶装置３００からデータ（プログラム）が読み出された場合、ステップＳ２８と同様に、演算処理部２１０へのデータの出力はマスクされてもよい。
【００４４】
以上、この実施形態では、キャッシュメモリ制御部２６０Ａを有する演算処理装置２００Ａおよび情報処理装置１００Ａにおいて、図１、図２に示した実施形態と同様に、各要求保持部２２０ａ、２２０ｂに対応して少なくとも１つのエントリＥＮＴを確保できる。この結果、特定のアクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートにより演算処理部２１０がハングアップする可能性を従来に比べて低くできる。
【００４５】
図５は、別の実施形態における情報処理装置１００Ｃおよび演算処理装置２００Ｃの例を示している。図１および図３と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００４６】
情報処理装置１００Ｃは、演算処理装置２００Ｃおよび記憶装置３００を有する。例えば、情報処理装置１００Ｃは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｃは、ＣＰＵ等のプロセッサである。
【００４７】
演算処理装置２００Ｃは、８個のコア部ＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、...、ＣＯＲＥ７）、ポートＰＴ（ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２）、調停部２３０Ｃ、キャッシュメモリ制御部２６０Ｃ、バッファ制御部２４０Ｃ、バッファ部２５０Ｃ、Ｌ２キャッシュメモリ２７０Ｃおよびメモリアクセスコントローラ２８０Ｃを有する。図５において、二点鎖線で囲った領域は、Ｌ２キャッシュ部２０２Ｃを示している。すなわち、Ｌ２キャッシュ部２０２Ｃは、ポートＰＴ、調停部２３０Ｃ、キャッシュメモリ制御部２６０Ｃ、バッファ制御部２４０Ｃ、バッファ部２５０ＣおよびＬ２キャッシュメモリ２７０Ｃを有する。
【００４８】
各コア部ＣＯＲＥは、例えば、符号Ｌ１で示したＬ１キャッシュ部を含むＣＰＵコアであり、記憶装置３００に対するアクセス要求ＲＥＱを出力する。アクセス要求ＲＥＱは、ロード命令およびストア命令等の演算処理部２１０で扱うデータの入出力要求と、各コア部ＣＯＲＥが実行するプログラムのプリフェッチ命令とを含む。コア部ＣＯＲＥは、演算処理部の一例である。なお、コア部ＣＯＲＥの数は、８個に限定されず、演算処理装置２００Ｃは、少なくとも１つのコア部ＣＯＲＥを有していればよい。
【００４９】
ロード命令は、Ｌ１キャッシュ部内のＬ１キャッシュメモリ、Ｌ２キャッシュメモリ２７０Ｃまたは記憶装置３００から読み出されるデータを、コア部ＣＯＲＥのレジスタに格納する命令である。Ｌ１キャッシュ部は、ロード命令に対応するデータがＬ１キャッシュメモリにない場合（キャッシュミス）、Ｌ２キャッシュ部２０２Ｃにロード命令を出力する。ストア命令は、コア部ＣＯＲＥにより処理されたデータをＬ１キャッシュメモリに格納する命令である。Ｌ１キャッシュ部は、ストア命令に対応するデータの領域を含むキャッシュラインがＬ１キャッシュメモリに確保されていない場合（キャッシュミス）、Ｌ２キャッシュ部２０２Ｃにストア命令を出力する。Ｌ１キャッシュ部からストア命令を受けたＬ２キャッシュ部２０２Ｃは、ストア命令に対応するデータ（キャッシュライン）をＬ２キャッシュメモリ２７０Ｃまたは記憶装置３００から読み出し、読み出したデータをＬ１キャッシュ部に出力する。このように、Ｌ２キャッシュ部２０２Ｃで受けるロード命令およびストア命令は、Ｌ２キャッシュメモリ２７０Ｃまたは記憶装置３００からデータを読み出す命令である。例えば、Ｌ１キャッシュメモリは、ロード命令およびストア命令に対応するデータを格納するデータキャッシュと、プリフェッチ命令に対応するプログラムを格納する命令キャッシュとを有する。
【００５０】
例えば、ポートＲＤＰ１、ＳＴＰ１、ＰＦＰ１は、コア部ＣＯＲＥ０、ＣＯＲＥ１、ＣＯＲＥ２、ＣＯＲＥ３から出力されるアクセス要求ＲＥＱを保持する。ポートＲＤＰ２、ＳＴＰ２、ＰＦＰ２は、コア部ＣＯＲＥ４、ＣＯＲＥ５、ＣＯＲＥ６、ＣＯＲＥ７から出力されるアクセス要求ＲＥＱを保持する。ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２は、要求保持部の一例である。
【００５１】
ポートＲＤＰ（ＲＤＰ１、ＲＤＰ２）は、ロード命令を保持し、ポートＳＴＰ（ＳＴＰ１、ＳＴＰ２）は、ストア命令を保持する。ポートＰＦＰ（ＰＦＰ１、ＰＦＰ２）は、プリフェッチ命令を保持する。換言すれば、各コア部ＣＯＲＥは、アクセス要求ＲＥＱをアクセス種別毎にポートＲＤＰ、ＳＴＰ、ＰＦＰのいずれかに出力する。ロード命令、ストア命令およびプリフェッチ命令は、アクセス要求ＲＥＱの種別であるアクセス種別の一例である。
【００５２】
ロード命令は、プログラムおよびデータをＬ１キャッシュメモリに格納する種別の命令である。ストア命令は、プログラムおよびデータをＬ１キャッシュメモリに格納する種別の命令である。ロード命令もストア命令もＬ２キャッシュ部２０２Ｃの処理は互いに同様であるが、ストア命令はＬ１キャッシュメモリへ格納された後にライトバックすることを目的としており、コア部ＣＯＲＥからみると処理が異なる。プリフェッチ命令は、将来の使用が予測されるプログラムおよびデータをＬ２キャッシュメモリ２７０Ｃに格納する種別の命令である。
【００５３】
この実施形態では、各ポートＰＴは、アクセス要求ＲＥＱを保持する４つの保持領域を有するが、保持領域ＨＬＤの数は、４つに限定されない。各ポートＰＴは、保持したアクセス要求ＲＥＱを、調停部２３０Ｃに出力する。ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２の例は、図６に示す。
【００５４】
調停部２３０Ｃは、図１に示した調停部２３０と同様に、ポートＰＴにそれぞれ保持されたアクセス要求ＲＥＱを調停し、調停により選択したアクセス要求ＲＥＱをキャッシュメモリ制御部２６０Ｃに出力する。例えば、調停部２３０Ｃは、ラウンドロビン等の手法を用いて、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱを順次に選択する。
【００５５】
バッファ部２５０Ｃは、記憶装置３００から読み出されるデータを保持する１６個のエントリＥＮＴを有する。なお、エントリＥＮＴの数は、１６個に限定されず、複数であればよい。各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して割り当てられるエントリＥＮＴの数の最大値ＭＡＸの例は、図７に示す。
【００５６】
バッファ制御部２４０Ｃは、保持回路２４１、計数回路２４２および比較回路２４３を有する。保持回路２４１は、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２のそれぞれに対応して割り当て可能なエントリＥＮＴの数の最大値ＭＡＸを保持する。すなわち、保持回路２４１は、最大値ＭＡＸをアクセス種別毎に保持する。
【００５７】
計数回路２４２は、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して確保されたエントリＥＮＴの数を計数して、計数値Ｎ（図８のＮ０−Ｎ５）として保持する。すなわち、計数回路２４２は、アクセス種別毎に計数値Ｎを求めて保持する。
【００５８】
比較回路２４３は、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２毎に、計数値Ｎと最大値ＭＡＸとを比較する。すなわち、比較回路２４３は、アクセス種別毎に計数値Ｎと最大値ＭＡＸとを比較する。そして、バッファ制御部２４０Ｃは、キャッシュメモリ制御部２６０ＣによりＬ２キャッシュメモリ２７０Ｃのキャッシュミスが判定された場合、比較回路２４３での比較結果に基づいて、エントリＥＮＴを確保するか否かを決定する。
【００５９】
例えば、バッファ制御部２４０Ｃは、計数値Ｎが最大値ＭＡＸ未満で、バッファ部２５０ＣのエントリＥＮＴに空きがある場合に、キャッシュメモリ制御部２６０Ｃからの指示に基づいて新たなエントリＥＮＴを確保する。バッファ制御部２４０Ｃは、エントリＥＮＴの確保に基づいて、キャッシュメモリ制御部２６０Ｃにアクセス許可信号ＡＥＮを出力する。バッファ制御部２４０Ｃは、計数値Ｎが最大値ＭＡＸのときに、新たなエントリＥＮＴを確保せず、アクセス許可信号ＡＥＮを出力しない。
【００６０】
また、バッファ制御部２４０Ｃは、メモリアクセスコントローラ２８０Ｃを介して記憶装置３００から読み出されたデータがエントリＥＮＴに格納された場合、格納されたデータを、アクセス要求ＲＥＱを発行したコア部ＣＯＲＥとＬ２キャッシュメモリ２７０Ｃとに転送する。バッファ制御部２４０Ｃの例は、図８に示す。
【００６１】
キャッシュメモリ制御部２６０Ｃは、Ｌ２キャッシュメモリ２７０Ｃのキャッシュヒットを判定した場合、アクセス要求ＲＥＱに対応するデータをＬ２キャッシュメモリ２７０Ｃから読み出す。Ｌ２キャッシュメモリ２７０Ｃから読み出されたデータは、アクセス要求ＲＥＱを発行したコア部ＣＯＲＥに出力される。
【００６２】
キャッシュメモリ制御部２６０Ｃは、Ｌ２キャッシュメモリ２７０Ｃのキャッシュミスを判定した場合、バッファ制御部２４０ＣにエントリＥＮＴの確保を要求する。そして、キャッシュメモリ制御部２６０Ｃは、バッファ制御部２４０Ｃからのアクセス許可信号ＡＥＮに応答して、調停部２３０Ｃから受けたアクセス要求ＲＥＱをメモリアクセスコントローラ２８０Ｃに出力する。キャッシュメモリ制御部２６０Ｃは、Ｌ２キャッシュメモリ２７０Ｃのキャッシュミスを判定した場合で、アクセス許可信号ＡＥＮを受けない場合、すなわち、エントリＥＮＴが確保されない場合、アクセス要求ＲＥＱをメモリアクセスコントローラ２８０Ｃに出力しない。これにより、アクセス要求ＲＥＱはアボートされる。
【００６３】
また、キャッシュメモリ制御部２６０Ｃは、バッファ部２５０ＣまたはＬ２キャッシュメモリ２７０Ｃからコア部ＣＯＲＥにデータが転送される場合に、アクセス要求ＲＥＱの完了応答ＦＩＮを、アクセス要求ＲＥＱを発行したコア部ＣＯＲＥに出力する。さらに、キャッシュメモリ制御部２６０Ｃは、バッファ部２５０ＣまたはＬ２キャッシュメモリ２７０Ｃからコア部ＣＯＲＥにデータが転送される場合に、リセット信号ＲＳＴをアクセス要求ＲＥＱを出力したポートＰＴに出力する。リセット信号ＲＳＴを受けたポートＰＴは、対応するアクセス要求ＲＥＱを無効にする。
【００６４】
メモリアクセスコントローラ２８０Ｃは、キャッシュメモリ制御部２６０Ｃからのアクセス要求ＲＥＱに基づいて、記憶装置３００に読み出し動作を実行させるアクセス信号（読み出し要求）を記憶装置３００に出力する。メモリアクセスコントローラ２８０Ｃは、記憶装置３００から読み出されるデータをバッファ部２５０Ｃに出力する。
【００６５】
また、メモリアクセスコントローラ２８０Ｃは、記憶装置３００に書き込み動作を実行させるアクセス信号（書き込み要求）を書き込みデータとともに記憶装置３００に出力する機能を有する。書き込み要求は、Ｌ２キャッシュメモリ２７０Ｃに記憶されたデータを記憶装置３００に書き戻す場合に生成される。なお、書き込み要求は、図５に示していない別のポートを介して調停部２３０Ｃにより選択される。書き込み要求に対応して記憶装置３００に書き込まれるデータは、図５に示していない別のバッファ部を介してメモリアクセスコントローラ２８０Ｃに出力される。
【００６６】
なお、メモリアクセスコントローラ２８０Ｃは、演算処理装置２００Ｃの外部に配置されてもよい。また、キャッシュメモリ制御部２６０Ｃが記憶装置３００のアクセスを制御する機能を有する場合、記憶装置３００は、メモリアクセスコントローラ２８０Ｃを介することなくキャッシュメモリ制御部２６０Ｃに接続される。すなわち、この場合、演算処理装置２００Ｃは、メモリアクセスコントローラ２８０Ｃを持たない。以降の実施形態でも同様に、演算処理装置２００Ｄ、２００Ｅ、２００Ｆ、２００Ｇ、２００Ｈは、メモリアクセスコントローラ２８０Ｃを持たない場合もある。
【００６７】
図６は、図５に示したポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２の例を示している。各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２は、アクセス要求ＲＥＱ毎に、データが格納された記憶装置３００の記憶領域を示すアドレスが格納されるアドレス領域と、Ｖａｌｉｄフラグとを保持する領域とを有する。Ｖａｌｉｄフラグは、アドレス領域に格納されたアドレスが有効か無効かを示す。例えば、各アドレス領域は、３２ビットであり、各Ｖａｌｉｄフラグは１ビットである。
【００６８】
図５に示した各コア部ＣＯＲＥは、アクセス要求ＲＥＱを各ポートＰＴに出力する場合に、リセット状態のＶａｌｉｄフラグに対応するアドレス領域にアクセス要求ＲＥＱに含まれるアドレスを格納し、対応するＶａｌｉｄフラグをセット状態にする。また、セット状態のＶａｌｉｄフラグは、対応するリセット信号ＲＳＴをキャッシュメモリ２７０Ｃから受けたときにリセットされる。
【００６９】
図７は、図５に示したバッファ部２５０ＣのエントリＥＮＴの割り当ての例を示している。この実施形態では、バッファ部２５０Ｃは、１６個のエントリＥＮＴを有する。また、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２が確保可能なエントリＥＮＴの数の最大値ＭＡＸ（ＭＡＸ０、ＭＡＸ１、ＭＡＸ２、ＭＡＸ３、ＭＡＸ４、ＭＡＸ５）は、それぞれ３個に設定される。
【００７０】
エントリＥＮＴの割り当て数の最大値ＭＡＸは、１つのポートＰＴを除く他のポートＰＴに対応するエントリＥＮＴの割り当て数の最大値の合計（この例では、１５個）が、エントリＥＮＴの総数（この例では、１６個）より少なくなるように設定される。すなわち、複数のアクセス種別のうちの１つを除くアクセス種別にそれぞれ対応する最大値ＭＡＸの合計は、エントリＥＮＴの総数より少なく設定される。このため、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２が確保可能なエントリＥＮＴの数の最大値ＭＡＸは、例えば、３個、３個、２個、２個、４個、３個に設定されてもよい。
【００７１】
この実施形態では、調停部２３０Ｃによる調停により、例えば、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１に対応して最大値である３個ずつのエントリＥＮＴが確保された場合にも、ポートＰＦＰ２用に１つのエントリＥＮＴを確保できる。これにより、全てのポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して少なくとも１つのエントリＥＮＴを確保することを保証できる。
【００７２】
なお、図７では、説明を分かりやすくするために、各ポートＰＴと、確保可能なエントリＥＮＴとを矢印で対応付けしている。しかし、図５に示した保持回路２４１に保持された値は、確保可能なエントリＥＮＴの数の最大値ＭＡＸを示し、確保可能なエントリＥＮＴの物理的な位置を示すものではない。図１１、図１４および図１７に示す矢印も、図７と同様に、確保可能なエントリＥＮＴの物理的な位置を示すものではない。
【００７３】
図８は、図５に示したバッファ制御部２４０Ｃの例を示している。保持回路２４１は、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して最大値ＭＡＸを保持する保持部ＨＯＬＤを有する。計数回路２４２は、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応してカウンタＣＮＴ１を有する。比較回路２４３は、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して比較器ＣＭＰを有する。また、バッファ制御部２４０Ｃは、各比較器ＣＭＰによる判定結果に基づいて、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２毎に割り当て信号ＡＳＧＮ（ＡＳＧＮ０、ＡＳＧＮ１、ＡＳＧＮ２、ＡＳＧＮ３、ＡＳＧＮ４、ＡＳＧＮ５）を出力する出力回路ＯＵＴを有する。
【００７４】
各保持部ＨＯＬＤは、例えば、１、２、３のいずれかの値を記憶するＲＯＭ（Read Only Memory）を含み、記憶した値を最大値ＭＡＸ（ＭＡＸ０、ＭＡＸ１、ＭＡＸ２、ＭＡＸ３、ＭＡＸ４、ＭＡＸ５）として出力する。最大値ＭＡＸ０−ＭＡＸ５は２ビットの信号として出力される。ＲＯＭは、不揮発性メモリでもよく、ヒューズ回路でもよい。なお、各保持部ＨＯＬＤは、最大値ＭＡＸを書き換え可能に保持するレジスタを含んでいてもよく、この場合、信号ＭＡＸ０−ＭＡＸ５の値は、情報処理装置１００Ｃの仕様に応じて変更可能である。
【００７５】
カウンタＣＮＴ１は、互いに同一または同様の回路であるため、ここでは、ポートＲＤＰ１に対応するカウンタＣＮＴ１について説明する。カウンタＣＮＴ１は、開始信号ＳＴＡＲＴ０の受信に応答して”＋１”カウントアップし、終了信号ＥＮＤ０の受信に応答して”−１”カウントダウンし、カウンタ値を計数値Ｎ０として出力する。計数値Ｎ０は、ポートＲＤＰ１に対応して確保されたエントリＥＮＴの数を示す。計数値Ｎ０は、最大値ＭＡＸ０（＝３）に対応して、”０”、”１”、”２”、”３”のいずれかであり、２ビットで表される。他のカウンタＣＮＴ１の計数値Ｎ１−Ｎ５は、対応するポートＰＴに対応して確保されたエントリＥＮＴの数を示す。
【００７６】
例えば、開始信号ＳＴＡＲＴ０は、割り当て信号ＡＳＧＮ０に基づいて、ポートＲＤＰ１に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。開始信号ＳＴＡＲＴ１−ＳＴＡＲＴ５も、開始信号ＳＴＡＲＴ０と同様に、割り当て信号ＡＳＧＮ１−ＡＳＧＮ５にそれぞれ基づいて、対応するポートＰＴに保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。開始信号ＳＴＡＲＴ０−ＳＴＡＲＴ５は、例えば、パルス信号である。
【００７７】
例えば、終了信号ＥＮＤ０は、ポートＲＤＰ１に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。終了信号ＥＮＤ１−ＥＮＤ５も、終了信号ＥＮＤ０と同様に、対応するポートＰＴに保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。終了信号ＥＮＤ０−ＥＮＤ５は、例えば、パルス信号である。
【００７８】
ポートＲＤＰ１に対応する比較器ＣＭＰは、計数値Ｎ０と最大値ＭＡＸ０とが一致する場合にロウレベルを出力し、計数値Ｎ０と最大値ＭＡＸ０とが不一致の場合にハイレベルを出力する。換言すれば、ポートＲＤＰ１に対応する比較器ＣＭＰは、計数値Ｎ０が”０”、”１”または”２”の場合にハイレベルを出力し、計数値Ｎ０が”３”の場合にロウレベルを出力する。
【００７９】
出力回路ＯＵＴは、エンプティ信号ＥＭＰおよび対応する比較器ＣＭＰの出力がともにハイレベルの場合に、ハイレベルの割り当て信号ＡＳＧＮ（ＡＳＧＮ０−ＡＳＧＮ５）を出力する。また、出力回路ＯＵＴは、エンプティ信号ＥＭＰまたは対応する比較器ＣＭＰの出力のいずれかがロウレベルの場合に、ロウレベルの割り当て信号ＡＳＧＮを出力する。
【００８０】
バッファ制御部２４０Ｃは、空いたエントリＥＮＴがある場合にエンプティ信号ＥＭＰをハイレベルに設定し、空いたエントリＥＮＴがない場合にエンプティ信号ＥＭＰをロウレベルに設定する。このため、割り当て信号ＡＳＧＮは、エントリＥＮＴの少なくとも１つが空いており、対応するポートＰＴ用に確保されたエントリＥＮＴの数が最大値ＭＡＸ未満の場合に、割り当て信号ＡＳＧＮを出力する。そして、バッファ制御部２４０Ｃは、割り当て信号ＡＳＧＮ（ＡＳＧＮ０−ＡＳＧＮ５のいずれか）に基づいて、対応するポートＰＴ用のエントリＥＮＴを新たに確保する。
【００８１】
図９は、図５に示した演算処理装置２００Ｃの動作の例を示している。図９に示したフローは、例えば、ハードウエアにより実現される。図２および図４に示した動作と同一または同様の動作については、詳細な説明は省略する。なお、図９は、アクセス要求ＲＥＱ毎の動作、コア部ＣＯＲＥ毎の動作およびポートＰＴ毎の動作を示している。
【００８２】
図９に示したＬ２キャッシュ部２０２Ｃの各ステップは、動作を分かりやすくするための区分けであり、実際には、Ｌ２キャッシュ部２０２Ｃのハードウエアが連動することにより、複数のステップが並列に実行されてもよい。ステップＳ４４、Ｓ４６、Ｓ４８、Ｓ５０、Ｓ５２、Ｓ５４、Ｓ５６、Ｓ６２、Ｓ６４の動作は、図４に示したステップＳ１４、Ｓ１５、Ｓ１６、Ｓ１８、Ｓ２０、Ｓ２２、Ｓ２５、Ｓ２６、Ｓ２８の動作と同様である。
【００８３】
各コア部ＣＯＲＥは、ステップＳ３０において、アクセス要求ＲＥＱをアクセス種別に対応するポートＰＴに出力し、ステップＳ３２において、ハングアップの検出用のタイマの動作を開始する。各コア部ＣＯＲＥに内蔵されるタイマは、ハードウエアでもよくソフトウエアでもよい。なお、各コア部ＣＯＲＥは、アクセス要求ＲＥＱに対応するデータがＬ１キャッシュ部に格納されていない場合に、アクセス要求ＲＥＱをＬ２キャッシュ部２０２Ｃに出力する。
【００８４】
各コア部ＣＯＲＥは、ステップＳ３４において、キャッシュメモリ制御部２６０Ｃからの完了応答ＦＩＮの有無をチェックする。各コア部ＣＯＲＥは、完了応答ＦＩＮを受けた場合、ステップＳ３８においてタイマを停止し、アクセス要求ＲＥＱに対応する動作を完了する。各コア部ＣＯＲＥは、完了応答ＦＩＮを受けていない場合、ステップＳ３６において、タイマの計数値に基づいて、所定時間が経過したか否かを判定する。
【００８５】
所定時間が経過していない場合、再びステップＳ３４が実行される。所定時間が経過した場合、各コア部ＣＯＲＥは、ステップＳ３０で発行したアクセス要求ＲＥＱに対するデータを所定時間内に受けられなかったため、ハングアップする。なお、この実施形態では、全てのポートＰＴに対応して少なくとも１つのエントリＥＮＴを確保可能なため、ハングアップする確率は従来に比べて低い。
【００８６】
一方、Ｌ２キャッシュ部２０２Ｃは、以下のように動作する。ステップＳ４０、Ｓ４２において、アクセス要求ＲＥＱを受けたポートＰＴは、アクセス要求ＲＥＱに含まれるアドレスを図６に示したアドレス領域に格納し、Ｖａｌｉｄフラグを例えば”１”にセットする。なお、アドレス領域へのアドレスの格納およびＶａｌｉｄフラグのセットは、アクセス要求ＲＥＱを出力するコア部ＣＯＲＥにより実行されてもよい。
【００８７】
次に、ステップＳ４４において、調停部２３０Ｃは、ポートＰＴに保持されたアクセス要求ＲＥＱの１つを選択し、キャッシュメモリ制御部２６０Ｃおよびバッファ制御部２４０Ｃに出力する。ステップＳ４６において、キャッシュメモリ制御部２６０Ｃは、調停部２３０Ｃからのアクセス要求ＲＥＱに含まれるアドレスに対応するデータがＬ２キャッシュメモリ２７０Ｃに格納されたか否かを判定する。すなわち、Ｌ２キャッシュメモリ２７０Ｃのキャッシュミス／キャッシュヒットが判定される。キャッシュミスの場合、ステップＳ４８が実行され、キャッシュヒットの場合、ステップＳ６４が実行される。
【００８８】
ステップＳ６４において、キャッシュメモリ制御部２６０Ｃは、調停部２３０Ｃからのアクセス要求ＲＥＱに基づいて、Ｌ２キャッシュメモリ２７０Ｃからデータを読み出す。次に、ステップＳ６６において、キャッシュメモリ制御部２６０Ｃは、Ｌ２キャッシュメモリ２７０Ｃから読み出したデータを、アクセス要求ＲＥＱを発行したコア部ＣＯＲＥに出力する。ステップＳ６６の実行後、ステップＳ５８が実行される。
【００８９】
なお、ポートＰＦＰ１、ＰＦＰ２に格納されたアクセス要求ＲＥＱ（プリフェッチ命令）に基づく動作では、ステップＳ６４、Ｓ６６の実行はマスクされてもよい。この場合、Ｌ２キャッシュメモリ２７０Ｃに保持された命令（プログラム）等のデータは、Ｌ１キャッシュメモリに転送されず、ポートＲＤＰ１、ＲＤＰ２に格納される新たなアクセス要求に基づいて、コア部ＣＯＲＥのＬ１キャッシュメモリに格納される。
【００９０】
一方、キャッシュミスが判定された場合、ステップＳ４８において、バッファ制御部２４０Ｃの比較回路２４３は、確保されたエントリＥＮＴの数Ｎと最大値ＭＡＸとを比較する。確保された数Ｎが最大値ＭＡＸの場合、エントリＥＮＴの確保は無理なため、アクセス要求ＲＥＱはアボートされ、調停部２３０Ｃにより別のアクセス要求ＲＥＱが選択される。アクセス要求ＲＥＱがアボートされた場合、キャッシュメモリ制御部２６０Ｃは、アクセス要求ＲＥＱを記憶装置３００に出力せず、対応するポートＰＴはアクセス要求ＲＥＱを保持し続ける。
【００９１】
確保された数Ｎが最大値ＭＡＸ未満の場合、ステップＳ５０において、バッファ制御部２４０Ｃは、バッファ部２５０Ｃに空いたエントリＥＮＴがあるかどうかをチェックする。エントリＥＮＴに空きがない場合、アクセス要求ＲＥＱはアボートされ、調停部２３０Ｃにより別のアクセス要求ＲＥＱが選択される。
【００９２】
エントリＥＮＴに空きがある場合、ステップＳ５２において、バッファ制御部２４０Ｃは、調停部２３０Ｃにより選択されたアクセス要求ＲＥＱに対応して記憶装置３００から読み出されるデータを格納するエントリＥＮＴを確保する。また、バッファ制御部２４０Ｃの計数回路２４２は、アクセス要求ＲＥＱを保持したポートＰＴに対応して確保されたエントリＥＮＴの数Ｎを”１”増加する。
【００９３】
ステップＳ５４において、キャッシュメモリ制御部２６０Ｃは、バッファ制御部２４０ＣからのエントリＥＮＴの確保の通知であるアクセス許可信号ＡＥＮに基づいて、アクセス要求ＲＥＱをメモリアクセスコントローラ２８０Ｃを介して記憶装置３００に出力する。記憶装置３００は、アクセス要求ＲＥＱに基づいて読み出し動作を実行し、メモリセルから読み出されるデータをメモリアクセスコントローラ２８０Ｃを介してバッファ部２５０Ｃに出力する。バッファ部２５０Ｃは、記憶装置３００から出力されるデータを、ステップＳ５２で確保されたエントリＥＮＴに格納する。
【００９４】
ステップＳ５６において、バッファ部２５０Ｃは、エントリＥＮＴに格納したデータをアクセス要求ＲＥＱを発行したコア部ＣＯＲＥに出力し、Ｌ２キャッシュメモリ２７０Ｃに格納する。但し、ステップＳ６６と同様に、ポートＰＦＰ１、ＰＦＰ２に格納されたアクセス要求ＲＥＱ（プリフェッチ命令）に基づいて記憶装置３００から読み出されたデータは、コア部ＣＯＲＥへの出力（Ｌ１キャッシュメモリへの格納）をマスクされてもよい。
【００９５】
次に、ステップＳ５８において、キャッシュメモリ制御部２６０Ｃは、アクセス要求ＲＥＱを発行したコア部ＣＯＲＥに完了応答ＦＩＮを出力する。ステップＳ６０において、バッファ制御部２４０Ｃの計数回路２４２は、コア部ＣＯＲＥに出力されたデータを読み出すためのアクセス要求ＲＥＱを保持したポートＰＴに対応して確保されたエントリＥＮＴの数Ｎを”１”減少する。
【００９６】
次に、ステップＳ６２において、キャッシュメモリ制御部２６０Ｃは、アクセス要求ＲＥＱを出力したポートＰＴにリセット信号ＲＳＴを出力する。リセット信号ＲＳＴを受けたポートＰＴは、対応するアクセス要求ＲＥＱを保持したＶａｌｉｄフラグを例えば”０”にリセットし、アクセス要求ＲＥＱを無効にする。
【００９７】
以上、この実施形態においも、図１から図４に示した実施形態と同様に、各ポートＰＴに対応して少なくとも１つのエントリＥＮＴを確保できる。この結果、特定のアクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【００９８】
図１０は、別の実施形態における情報処理装置１００Ｄおよび演算処理装置２００Ｄの例を示している。図１、図２および図５と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００９９】
情報処理装置１００Ｄ、演算処理装置２００ＤおよびＬ２キャッシュ部２０２Ｄは、図５に示したバッファ制御部２４０Ｃの代わりにバッファ制御部２４０Ｄを有する。情報処理装置１００Ｄ、演算処理装置２００ＤおよびＬ２キャッシュ部２０２Ｄのその他の構成は、図５に示した情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃと同様である。
【０１００】
例えば、情報処理装置１００Ｄは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｄは、ＣＰＵ等のプロセッサである。バッファ制御部２４０Ｄは、保持回路２４１Ｄ、計数回路２４２Ｄおよび比較回路２４３Ｄを有する。バッファ制御部２４０Ｄの例は、図１２に示す。
【０１０１】
図１１は、図１０に示したバッファ部２５０ＤのエントリＥＮＴの割り当ての例を示している。この実施形態では、アクセス識別子ＡＩＤ（ＡＩＤ０、ＡＩＤ１、ＡＩＤ２）毎に、複数のポートＰＴが割り当てられ、確保可能なエントリＥＮＴの数の最大値ＭＡＸ（ＭＡＸ０、ＭＡＸ１、ＭＡＸ２）が決められる。
【０１０２】
例えば、アクセス種別の１つであるロード命令が格納されるポートＲＤＰ１、ＲＤＰ２は、アクセス識別子ＡＩＤ０に割り当てられる。アクセス種別の別の１つであるストア命令が格納されるポートＳＴＰ１、ＳＴＰ２は、アクセス識別子ＡＩＤ１に割り当てられる。アクセス種別の別の１つであるプリフェッチ命令が格納されるポートＰＦＰ１、ＰＦＰ２は、アクセス識別子ＡＩＤ２に割り当てられる。
【０１０３】
アクセス識別子ＡＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２が共通に確保可能なエントリＥＮＴの数の最大値ＭＡＸ０は、例えば７個に設定される。アクセス識別子ＡＩＤ１で識別されるポートＳＴＰ１、ＳＴＰ２が共通に確保可能なエントリＥＮＴの数の最大値ＭＡＸ１は、例えば８個に設定される。アクセス識別子ＡＩＤ２で識別されるポートＰＦＰ１、ＰＦＰ２が共通に確保可能なエントリＥＮＴの数の最大値ＭＡＸ２は、例えば５個に設定される。
【０１０４】
エントリＥＮＴの割り当て数の最大値ＭＡＸは、１つのアクセス識別子ＡＩＤを除く他のアクセス識別子ＡＩＤに対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数（この例では、１６個）より少なくなるように設定される。この例では、エントリＥＮＴの割り当て数の最大値ＭＡＸは、アクセス識別子ＡＩＤ０、ＡＩＤ１に対応するエントリＥＮＴの割り当て数の最大値の合計（１５個）が、エントリＥＮＴの総数（１６個）より少なくなるように設定される。このため、アクセス識別子ＡＩＤ０、ＡＩＤ１、ＡＩＤ２が確保可能なエントリＥＮＴの数の最大値ＭＡＸは、例えば、７個、８個、７個に設定されてもよい。
【０１０５】
この実施形態では、調停部２３０Ｃによる調停により、アクセス識別子ＡＩＤ０、ＡＩＤ１に対応して最大で１５個のエントリＥＮＴが確保された場合にも、アクセス識別子ＡＩＤ２用に１つのエントリＥＮＴを確保できる。また、例えば、ポートＲＤＰ１へのアクセス要求ＲＥＱの入力頻度が低い場合、ポートＲＤＰ２に保持されるアクセス要求ＲＥＱに対応するエントリＥＮＴの割り当て数を、図７に比べて増やすことができる。すなわち、同種のアクセス要求ＲＥＱを受けるポート群ＰＴ毎にエントリＥＮＴの割り当て数の最大値ＭＡＸを設定することで、各ポートＰＴに対応して確保可能なエントリＥＮＴの数を図７に比べて増やすことができる。
【０１０６】
図１２は、図１０に示したバッファ制御部２４０Ｄの例を示している。図８と同一または同様の要素については、詳細な説明は省略する。
【０１０７】
保持回路２４１Ｄは、アクセス識別子ＡＩＤ０、ＡＩＤ１、ＡＩＤ２に対応して最大値ＭＡＸ０、ＭＡＸ１、ＭＡＸ２をそれぞれ保持する保持部ＨＯＬＤを有する。計数回路２４２Ｄは、アクセス識別子ＡＩＤ０、ＡＩＤ１、ＡＩＤ２にそれぞれ対応してカウンタＣＮＴ２を有する。比較回路２４３Ｄは、アクセス識別子ＡＩＤ０、ＡＩＤ１、ＡＩＤ２にそれぞれ対応して比較器ＣＭＰを有する。また、バッファ制御部２４０Ｄは、各比較器ＣＭＰによる判定結果に基づいて、アクセス識別子ＡＩＤ０、ＡＩＤ１、ＡＩＤ２毎に割り当て信号ＡＳＧＮ（ＡＳＧＮ０、ＡＳＧＮ１、ＡＳＧＮ２）を出力する出力回路ＯＵＴを有する。
【０１０８】
各保持部ＨＯＬＤは、図８と同様に、最大値ＭＡＸを記憶するＲＯＭを含み、記憶した値を最大値ＭＡＸ（ＭＡＸ０−ＭＡＸ２のいずれか）として出力する。最大値ＭＡＸ０−ＭＡＸ２は３ビットまたは４ビットの信号として出力される。なお、各保持部ＨＯＬＤは、最大値ＭＡＸを書き換え可能に保持するレジスタを含んでいてもよい。
【０１０９】
カウンタＣＮＴ２は、カウンタ値の上限が、対応する保持部ＨＯＬＤが保持した最大値ＭＡＸであることを除き、図８に示したカウンタＣＮＴ１と同一または同様の回路である。例えば、アクセス識別子ＡＩＤ０に対応するカウンタＣＮＴ２は、開始信号ＳＴＡＲＴ０の受信に応答して”＋１”カウントアップし、終了信号ＥＮＤ０の受信に応答して”−１”カウントダウンし、カウンタ値Ｃ０を計数値Ｎ０として出力する。計数値Ｎ０は、信号ＭＡＸ０の最大値（＝７）に対応して、”０”から”７”のいずれかであり、３ビットで表される。他のカウンタＣＮＴ２の計数値Ｎ１−Ｎ２は、対応するポートＰＴに対応して確保されたエントリＥＮＴの数を示す。
【０１１０】
開始信号ＳＴＡＲＴ０は、割り当て信号ＡＳＧＮ０に基づいて、アクセス識別子ＡＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。開始信号ＳＴＡＲＴ１は、割り当て信号ＡＳＧＮ１に基づいて、アクセス識別子ＡＩＤ１で識別されるポートＳＴＰ１、ＳＴＰ２に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。開始信号ＳＴＡＲＴ２は、割り当て信号ＡＳＧＮ２に基づいて、アクセス識別子ＡＩＤ２で識別されるポートＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。
【０１１１】
終了信号ＥＮＤ０は、アクセス識別子ＡＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。終了信号ＥＮＤ１は、アクセス識別子ＡＩＤ１で識別されるポートＳＴＰ１、ＳＴＰ２に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。終了信号ＥＮＤ２は、アクセス識別子ＡＩＤ２で識別されるポートＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。
【０１１２】
比較器ＣＭＰの動作は、図８に示した比較器ＣＭＰの動作と同様である。すなわち、各比較器ＣＭＰは、カウンタＣＮＴ２から出力される計数値Ｎが保持部ＨＯＬＤからの最大値ＭＡＸと一致する場合にロウレベルを出力し、カウンタＣＮＴ２から出力される計数値Ｎが最大値ＭＡＸ未満の場合にハイレベルを出力する。
【０１１３】
出力回路ＯＵＴの動作は、図８に示した出力回路ＯＵＴの動作と同様である。すなわち、出力回路ＯＵＴは、アクセス識別子ＡＩＤに対応するエントリＥＮＴに空きがあり（ＥＭＰ＝Ｈ）、確保したエントリＥＮＴの数が最大値ＭＡＸ未満の場合、ハイレベルの割り当て信号ＡＳＧＮ（ＡＳＧＮ０、ＡＳＧＮ１、ＡＳＧＮ２）を出力する。
【０１１４】
以上、この実施形態では、同種のアクセス要求ＲＥＱを受ける複数のポート群ＰＴ毎に（ＲＤＰ１とＲＤＰ２、ＳＴＰ１とＳＴＰ２、あるいはＰＦＰ１とＰＦＰ２）、エントリＥＮＴの割り当て数の最大値ＭＡＸが設定される。これにより、同種のアクセス要求ＲＥＱに対応するエントリＥＮＴの割り当て数の最大値ＭＡＸを、図７に比べて増やすことができ、ポートＰＴに対応してエントリＥＮＴを効率的に配分することが可能になる。この結果、アボートされるアクセス要求ＲＥＱの発生を抑制でき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【０１１５】
図１３は、別の実施形態における情報処理装置１００Ｅおよび演算処理装置２００Ｅの例を示している。図１、図２および図５と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１１６】
情報処理装置１００Ｅ、演算処理装置２００ＥおよびＬ２キャッシュ部２０２Ｅは、図５に示したバッファ制御部２４０Ｃの代わりにバッファ制御部２４０Ｅを有する。情報処理装置１００Ｅ、演算処理装置２００ＥおよびＬ２キャッシュ部２０２Ｅのその他の構成は、図５に示した情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃと同様である。
【０１１７】
例えば、情報処理装置１００Ｅは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｅは、ＣＰＵ等のプロセッサである。バッファ制御部２４０Ｅは、保持回路２４１Ｅ、計数回路２４２Ｅおよび比較回路２４３Ｅを有する。バッファ制御部２４０Ｅの例は、図１５に示す。
【０１１８】
図１４は、図１３に示したバッファ部２５０ＥのエントリＥＮＴの割り当ての例を示している。この実施形態では、グループ識別子ＧＩＤ（ＧＩＤ０、ＧＩＤ１）毎に、複数のポートＰＴ（例えば、ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２）が割り当てられ、確保可能なエントリＥＮＴの数の最大値ＭＡＸが決められる。
【０１１９】
例えば、アクセス種別の１つであるロード命令が格納されるポートＲＤＰ１、ＲＤＰ２と、アクセス種別の別の１つであるストア命令が格納されるポートＳＴＰ１、ＳＴＰ２は、アクセス識別子ＡＩＤ０に割り当てられる。アクセス種別の別の１つであるプリフェッチ命令が格納されるポートＰＦＰ１、ＰＦＰ２は、アクセス識別子ＡＩＤ１に割り当てられる。ロード命令およびストア命令は、データをＬ１キャッシュメモリ内のデータキャッシュに入出力する種別の命令である。プリフェッチ命令は、プログラムをＬ１キャッシュメモリ内の命令キャッシュに入力する種別の命令である。
【０１２０】
グループ識別子ＧＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２が共通に確保可能なエントリＥＮＴの数の最大値ＭＡＸは、例えば１４個に設定される。グループ識別子ＧＩＤ１で識別されるポートＰＦＰ１、ＰＦＰ２が共通に確保可能なエントリＥＮＴの数の最大値ＭＡＸは、例えば６個に設定される。
【０１２１】
エントリＥＮＴの割り当て数の最大値ＭＡＸは、１つのグループ識別子ＧＩＤに対応するエントリＥＮＴの割り当て数の最大値（この例では、最大で１４個）が、エントリＥＮＴの総数（この例では、１６個）より少なくなるように設定される。このため、各グループ識別子ＧＩＤ０、ＧＩＤ１が確保可能なエントリＥＮＴの数の最大値ＭＡＸは、例えば、１５個に設定されてもよい。
【０１２２】
なお、複数のポートＰＴが３以上のグループ識別子ＧＩＤにより識別される場合が考えられる。この場合、１つのグループ識別子ＧＩＤを除く他のグループ識別子ＧＩＤに対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数（この例では、１６個）より少なくなるように設定される。
【０１２３】
この実施形態では、例えば、調停部２３０Ｃによる調停により、グループ識別子ＧＩＤ０に対応して最大で１４個のエントリＥＮＴが確保された場合にも、グループ識別子ＧＩＤ１用に２つのエントリＥＮＴを確保できる。
【０１２４】
図１５は、図１３に示したバッファ制御部２４０Ｅの例を示している。図８および図１２と同一または同様の要素については、詳細な説明は省略する。
【０１２５】
保持回路２４１Ｅは、各グループ識別子ＧＩＤ０、ＧＩＤ１にそれぞれ対応して最大値ＭＡＸ０、ＭＡＸ１を保持する保持部ＨＯＬＤを有する。計数回路２４２Ｅは、各グループ識別子ＧＩＤ０、ＧＩＤ１にそれぞれ対応してカウンタＣＮＴ３を有する。比較回路２４３Ｅは、各グループ識別子ＧＩＤ０、ＧＩＤ１にそれぞれ対応して比較器ＣＭＰを有する。また、バッファ制御部２４０Ｅは、各比較器ＣＭＰによる判定結果に基づいて、グループ識別子ＧＩＤ０、ＧＩＤ１毎に割り当て信号ＡＳＧＮ（ＡＳＧＮ０、ＡＳＧＮ１）を出力する出力回路ＯＵＴを有する。
【０１２６】
各保持部ＨＯＬＤは、図８と同様に、最大値ＭＡＸを記憶するＲＯＭを含み、記憶した値を最大値ＭＡＸ（ＭＡＸ０、ＭＡＸ１のいずれか）として出力する。最大値ＭＡＸ０、ＭＡＸ１はそれぞれ４ビットと３ビットの信号として出力される。なお、各保持部ＨＯＬＤは、最大値ＭＡＸを書き換え可能に保持するレジスタを含んでいてもよい。
【０１２７】
カウンタＣＮＴ３は、カウンタ値の上限が、対応する保持部ＨＯＬＤが保持した最大値ＭＡＸであることを除き、図８に示したカウンタＣＮＴ１と同一または同様の回路である。例えば、グループ識別子ＧＩＤ０に対応するカウンタＣＮＴ３は、開始信号ＳＴＡＲＴ０の受信に応答して”＋１”カウントアップし、終了信号ＥＮＤ０の受信に応答して”−１”カウントダウンし、カウンタ値を計数値Ｎ０として出力する。計数値Ｎ０は、信号ＭＡＸ０の最大値（＝１４）に対応して、”０”から”１４”のいずれかであり、４ビットで表される。
【０１２８】
開始信号ＳＴＡＲＴ０は、割り当て信号ＡＳＧＮ０に基づいて、グループ識別子ＧＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。開始信号ＳＴＡＲＴ１は、割り当て信号ＡＳＧＮ１に基づいて、グループ識別子ＧＩＤ１で識別されるポートＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱに対応してエントリＥＮＴが確保された場合に生成される。
【０１２９】
終了信号ＥＮＤ０は、グループ識別子ＧＩＤ０で識別されるポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。終了信号ＥＮＤ１は、グループ識別子ＧＩＤ１で識別されるポートＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱに対応して、エントリＥＮＴに格納されたデータがコア部ＣＯＲＥおよびＬ２キャッシュメモリ２７０Ｃに出力された場合に生成される。
【０１３０】
比較器ＣＭＰの動作は、図８に示した比較器ＣＭＰの動作と同様である。すなわち、各比較器ＣＭＰは、カウンタＣＮＴ３から出力される計数値Ｎが保持部ＨＯＬＤからの最大値ＭＡＸと一致する場合にロウレベルを出力し、カウンタＣＮＴ３から出力される計数値Ｎが最大値ＭＡＸ未満の場合にハイレベルを出力する。
【０１３１】
出力回路ＯＵＴの動作は、図８に示した出力回路ＯＵＴの動作と同様である。すなわち、出力回路ＯＵＴは、グループ識別子ＧＩＤに対応するエントリＥＮＴに空きがあり（ＥＭＰ＝Ｈ）、確保したエントリＥＮＴの数が最大値ＭＡＸ未満の場合、ハイレベルの割り当て信号ＡＳＧＮ（ＡＳＧＮ０、ＡＳＧＮ１）を出力する。
【０１３２】
以上、この実施形態では、異種のアクセス要求ＲＥＱを受ける複数のポート群ＰＴ毎に（例えば、ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２）、エントリＥＮＴの割り当て数の最大値ＭＡＸが設定される。これにより、各ポートＰＴに対応して確保可能なエントリＥＮＴの数を図７および図１１に比べて増やすことができる。この結果、アボートされるアクセス要求ＲＥＱの発生を抑制でき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【０１３３】
図１６は、別の実施形態における情報処理装置１００Ｆおよび演算処理装置２００Ｆの例を示している。図１、図２および図５と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１３４】
情報処理装置１００Ｆ、演算処理装置２００ＦおよびＬ２キャッシュ部２０２Ｆは、図５に示したバッファ制御部２４０Ｃの代わりにバッファ制御部２４０Ｆを有する。情報処理装置１００Ｆ、演算処理装置２００ＦおよびＬ２キャッシュ部２０２Ｆのその他の構成は、図５に示した情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃと同様である。すなわち、例えば、情報処理装置１００Ｆは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｆは、ＣＰＵ等のプロセッサである。
【０１３５】
バッファ制御部２４０Ｆは、図５に示した保持回路２４１の代わりに保持回路２４１Ｆを有し、新たに優先フラグ回路２４４Ｆを有する。保持回路２４１Ｆおよび優先フラグ回路２４４Ｆの例は、図１７に示す。
【０１３６】
図１７は、図１６に示した優先フラグ回路２４４Ｆおよび保持回路２４１Ｆの例と、バッファ制御部２４０Ｆによるエントリの割り当ての例を示している。図７と同一または同様の要素については、詳細な説明は省略する。
【０１３７】
この実施形態では、保持回路２４１Ｆにより、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２が確保可能なエントリＥＮＴの数の最大値ＭＡＸは、それぞれ５個に設定される。保持回路２４１Ｆは、設定される最大値ＭＡＸが異なることを除き、図５に示した保持回路２４１と同様である。
【０１３８】
１つのポートＰＴを除く他のポートＰＴに対応して確保可能なエントリＥＮＴの数の最大値ＭＡＸの合計（この例では、２５個）は、エントリＥＮＴの総数（この例では、１６個）以上に設定される。このため、例えば、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２に対応して、エントリＥＮＴが４つずつ確保された場合、ポートＰＦＰ１、ＰＦＰ２に対応するエントリＥＮＴは確保されない。
【０１３９】
この実施形態では、優先フラグ回路２４４Ｆを用いて、１つのポートＰＴを除くポートＰＴに対応して確保可能なエントリＥＮＴの最大数の合計が、エントリＥＮＴの総数以上の場合にも、各ポートＰＴに対応してエントリＥＮＴが確保可能である。優先フラグ回路２４４Ｆは、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応する優先フラグＰＦＬＧを有する。すなわち、優先フラグＰＦＬＧは、アクセス種別毎に設けられる。優先フラグＰＦＬＧは、エントリＥＮＴを確保していないポートＰＴに対応して例えば”１”にセットされる。但し、優先フラグＰＦＬＧは、全ての優先フラグＰＦＬＧが”０”にリセットされた場合にセット可能である。
【０１４０】
バッファ制御部２４０Ｆは、優先フラグＰＦＬＧのいずれかがセットされた場合、セットされた優先フラグＰＦＬＧに対応するポートＰＴ用のエントリＥＮＴを確保し、他のポートＰＴ用のエントリＥＮＴは確保しない。
【０１４１】
例えば、図１７は、ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２に対応するエントリＥＮＴが確保され、エントリＥＮＴに空きがない場合に、ポートＰＦＰ１に対応する優先フラグＰＦＬＧがセットされた状態を示している。この場合、バッファ制御部２４０Ｆは、調停部２３０Ｃから受けるポートＰＦＰ１以外からのアクセス要求ＲＥＱをアボートし、ポートＰＦＰ１からのアクセス要求ＲＥＱを受け付ける。これにより、既に確保されたエントリＥＮＴが、記憶装置３００からのデータの読み出しにより空き状態になった場合に、優先フラグＰＦＬＧがセットされたポートＰＦＰ１に対応するエントリＥＮＴが新たに確保される。
【０１４２】
図１８は、図１６に示したＬ２キャッシュ部２０２Ｆの動作の例を示している。図９と同様または同一の動作については、同一の符号を付し、詳細な説明を省略する。図１８に示したフローは、例えば、ハードウエアにより実現される。なお、図１８は、アクセス要求ＲＥＱ毎の動作およびポートＰＴ毎の動作を示している。
【０１４３】
各コア部ＣＯＲＥの動作は、図９と同様である。なお、図１８に示したＬ２キャッシュ部２０２Ｆの各ステップは、動作を分かりやすくするための区分けであり、実際には、Ｌ２キャッシュ部２０２Ｆのハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１４４】
この実施形態では、ステップＳ４６によりＬ２キャッシュメモリ２７０Ｃのキャッシュミスが判定された場合に、図９に示したステップＳ４８、Ｓ５０の代わりに、ステップＳ７０、Ｓ７２、Ｓ７４、Ｓ７６、Ｓ７６、Ｓ７８、Ｓ８０、Ｓ８２が実行される。
【０１４５】
ステップＳ７０では、対象のアクセス要求ＲＥＱを保持するポートＰＴを除く他のポートＰＴに対応する優先フラグＰＦＬＧがセットがセットされたか否かが判定される。他のポートＰＴに対応する優先フラグＰＦＬＧがセットされた場合、自身のポートＰＴに対応してエントリＥＮＴを確保する権利がないため、ステップＳ４４の判定に戻る。
【０１４６】
他のポートＰＴに対応する優先フラグＰＦＬＧがセットされていない場合、ステップＳ７２において、対象のアクセス要求ＲＥＱを保持する自身のポートＰＴに対応する優先フラグＰＦＬＧがセットされたか否かが判定される。自身のポートＰＴに対応する優先フラグＰＦＬＧがセットされた場合、エントリＥＮＴの優先的な確保を既に予約済みのため、ステップＳ８０の判定に移行する。自身のポートＰＴに対応する優先フラグＰＦＬＧがセットされていない場合、ステップＳ７４の判定に移行する。
【０１４７】
ステップＳ７４において、自身のポートＰＴに対応するエントリＥＮＴが確保されたか否かが判定される。自身のポートＰＴに対応するエントリＥＮＴが確保されていない場合（Ｎ＝０）、ステップＳ７６の判定に移行する。自身のポートＰＴに対応して確保されたエントリＥＮＴが１以上で最大値ＭＡＸ未満の場合（Ｎ＝０＜Ｎ＜ＭＡＸ）、ステップＳ８０の判定に移行する。自身のポートＰＴに対応して最大値ＭＡＸのエントリＥＮＴが確保された場合（Ｎ＝ＭＡＸ）、これ以上のエントリＥＮＴの確保は無理なため、ステップＳ４４の判定に戻る。
【０１４８】
ステップＳ７６では、バッファ部２５０ＣにエントリＥＮＴの空きがあるか否かが判定される。バッファ部２５０ＣにエントリＥＮＴの空きがある場合、優先フラグＰＦＬＧをセットすることなく、エントリＥＮＴを確保可能なため、ステップＳ８２の動作に以降する。バッファ部２５０ＣにエントリＥＮＴの空きがない場合、ステップＳ７８において、自身のポートＰＴに対応する優先フラグＰＦＬＧがセットされる。これにより、バッファ制御部２４０Ｆは、この後のステップＳ７２の判定において、ステップＳ８０の処理に進む。
【０１４９】
なお、ステップＳ７８は、ステップＳ７０において他のポートＰＴの優先フラグＰＦＬＧがセットされていない場合に実行される。これにより、優先フラグ回路２４４Ｆにおいて、セットされる優先フラグＰＦＬＧを１つにでき、エントリＥＮＴの確保するための競争が複数のポートＰＴ間で起こることはない。
【０１５０】
また、ステップＳ７８は、ステップＳ７４において、自身のポートＰＴに対応するエントリＥＮＴが確保されていない場合に実行される。このため、自身のポートＰＴに対応して少なくとも１つのエントリＥＮＴが確保された場合、このポートＰＴに対応する優先フラグＰＦＬＧはセットされない。
【０１５１】
ステップＳ８０では、バッファ部２５０ＣにエントリＥＮＴの空きがあるか否かが判定される。バッファ部２５０ＣにエントリＥＮＴの空きがある場合、ステップＳ８２において、自身のポートＰＴに対応する優先フラグＰＦＬＧがリセットされ、ステップＳ５２の動作に移行する。そして、図９と同様の動作が実行される。バッファ部２５０ＣにエントリＥＮＴの空きがない場合、これ以上のエントリＥＮＴの確保は無理なため、ステップＳ４４の判定に戻る。
【０１５２】
以上、この実施形態では、バッファ制御部２４０Ｆは、エントリＥＮＴを優先的に確保するための優先フラグＰＦＬＧを有する。これにより、１つのポートＰＴを除く残りのポートＰＴにより確保可能なエントリＥＮＴの数の最大値ＭＡＸの合計が、エントリＥＮＴの総数以上の場合にも、各ポートＰＴにおいて、少なくとも１つのエントリＥＮＴを確保できる。また、各ポートＰＴにより確保可能なエントリＥＮＴの数の最大値ＭＡＸを、図７に比べて大きくできる。この結果、特定のアクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【０１５３】
なお、図１６から図１８に示した実施形態は、図１０から図１２に示した実施形態および図１３から図１５に示した実施形態に適用されてもよい。この場合、例えば、１つのアクセス識別子ＡＩＤを除く他のアクセス識別子ＡＩＤに対応して確保可能なエントリＥＮＴの数の最大値ＭＡＸの合計が、エントリＥＮＴの総数以上に設定される。そして、Ｌ２キャッシュ部２０２Ｄは、図１８と同様に動作し、優先フラグＰＦＬＧにより、エントリＥＮＴが確保されていないアクセス識別子ＡＩＤに対して、エントリＥＮＴを優先的に確保する。
【０１５４】
あるいは、１つのグループ識別子ＧＩＤを除く他のグループ識別子ＧＩＤに対応して確保可能なエントリＥＮＴの数の最大値ＭＡＸの合計が、エントリＥＮＴの総数以上に設定される。そして、Ｌ２キャッシュ部２０２Ｅは、図１８と同様に動作し、優先フラグＰＦＬＧにより、エントリＥＮＴが確保されていないグループ識別子ＧＩＤに対して、エントリＥＮＴを優先的に確保する。
【０１５５】
図１９は、別の実施形態における情報処理装置１００Ｇおよび演算処理装置２００Ｇの例を示している。図１、図２および図５と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１５６】
情報処理装置１００Ｇ、演算処理装置２００ＧおよびＬ２キャッシュ部２０２Ｇは、図５に示した調停部２３０Ｃおよびバッファ制御部２４０Ｃの代わりに調停部２３０Ｇおよびバッファ制御部２４０Ｇを有する。情報処理装置１００Ｇ、演算処理装置２００ＧおよびＬ２キャッシュ部２０２Ｇのその他の構成は、図５に示した情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃと同様である。すなわち、例えば、情報処理装置１００Ｇは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｇは、ＣＰＵ等のプロセッサである。
【０１５７】
調停部２３０Ｇは、各ポートＰＴ（ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２）に対応するカウンタＣＮＴ４を、図５に示した調停部２３０Ｃに追加している。すなわち、カウンタＣＮＴ４は、アクセス種別毎に設けられる。調停部２３０Ｇは、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に保持されたアクセス要求ＲＥＱを選択した場合に、対応するカウンタＣＮＴ４の値をリセットする。調停部２３０Ｇは、選択した各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２にアクセス要求ＲＥＱが保持されていない場合に、対応するカウンタＣＮＴ４の値をインクリメントする。さらに、調停部２３０Ｇは、他のポートＰＴに対応するカウンタＣＮＴ４の値が全て”１”以上の場合、エントリＥＮＴの割り当て数の制限を止める制限解除信号ＲＥＬをバッファ制御部２４０Ｇに出力する。これにより、例えば、バッファ部２５０Ｃの全てのエントリＥＮＴが、１つのポートＰＴ用に確保可能になる。
【０１５８】
図２０は、図１９に示した調停部２３０Ｇの動作の例を示している。図２０に示す動作は、図９に示したステップＳ４４に対応する動作であり、例えば、ハードウエアにより実現される。なお、図２０は、アクセス要求ＲＥＱ毎の動作およびポートＰＴ毎の動作を示している。
【０１５９】
まず、ステップＳ１００において、調停部２３０Ｇは、例えば、ラウンドロビン等の手法を用いて、ポートＰＴ（ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２）の１つを順次に選択する。ステップＳ１０２において、調停部２３０Ｇは、選択したポートＰＴにアクセス要求ＲＥＱが保持されたか否かを判定する。アクセス要求ＲＥＱが保持された場合、ステップＳ１０４において、調停部２３０Ｇは、選択したポートＰＴに対応するカウンタＣＮＴ４の値をリセットし、ステップＳ１０８に移行する。アクセス要求ＲＥＱが保持されていない場合、ステップＳ１０６において、調停部２３０Ｇは、選択したポートＰＴに対応するカウンタＣＮＴ４の値をインクリメントし（＋１）、調停動作を完了する。
【０１６０】
ステップＳ１０８において、調停部２３０Ｇは、キャッシュメモリ制御部２６０Ｃおよびバッファ制御部２４０Ｇに、選択したアクセス要求ＲＥＱを出力する。ステップＳ１１０において、調停部２３０Ｇは、選択したポートＰＴを除く他のポートＰＴに対応するカウンタＣＮＴ４の値をチェックする。ステップＳ１１２において、他のポートＰＴに対応するカウンタＣＮＴ４の値が”０”より大きい場合、ステップＳ１１４に移行し、他のポートＰＴに対応するカウンタＣＮＴ４が”０”にリセットされた場合、ステップＳ１１６に移行する。
【０１６１】
ステップＳ１１４において、調停部２３０Ｇは、エントリＥＮＴの割り当て数の制限を解除する通知をバッファ制御部２４０Ｇに出力し、調停動作を完了する。ステップＳ１１６において、調停部２３０Ｇは、エントリＥＮＴの割り当て数の制限を開始する通知をバッファ制御部２４０Ｇに出力し、調停動作を完了する。例えば、割り当て数の制限の解除は、ハイレベルの制限解除信号ＲＥＬにより通知され、割り当て数の制限の開始は、ロウレベルの制限解除信号ＲＥＬにより通知される。
【０１６２】
図２１は、図１９に示したバッファ制御部２４０Ｇの動作の例を示している。図２１に示す動作は、図９に示したステップＳ４８、Ｓ５０、Ｓ５２に対応する動作であり、例えば、ハードウエアにより実現される。すなわち、この実施形態では、図９に示したステップＳ４６とステップＳ４８の間に、ステップＳ４７が挿入される。バッファ制御部２４０Ｇのその他の動作は、図９に示したバッファ制御部２４０Ｃの動作と同様である。なお、図２１は、アクセス要求ＲＥＱ毎およびポートＰＴ毎の動作を示している。
【０１６３】
ステップＳ４７では、バッファ制御部２４０Ｇは、制限解除信号ＲＥＬの論理レベルに基づいて、エントリＥＮＴの割り当て数の制限を解除する通知を調停部２３０Ｇから受けたか否かを判定する。制限を解除する通知を受けた場合（ＲＥＬ＝Ｈ）、バッファ制御部２４０Ｇは、ステップＳ４８によるエントリＥＮＴの数Ｎと最大値ＭＡＸとの比較動作を禁止し、ステップＳ５０の判定を実行する。すなわち、バッファ部２５０Ｃに空いたエントリＥＮＴがある場合、既に確保したエントリＥＮＴの数に拘わりなく、エントリが確保される。一方、エントリＥＮＴの割り当て数の制限を解除する通知を調停部２３０Ｇから受けていない場合（ＲＥＬ＝Ｌ）、図９と同様に、ステップＳ４８によるエントリＥＮＴの数Ｎと最大値ＭＡＸとの比較動作が実行される。
【０１６４】
なお、図１９に示した調停部２３０Ｇは、カウンタＣＮＴ４の代わりに、アクセス要求ＲＥＱの有無を示すアイドルフラグを、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して有してもよい。すなわち、アイドルフラグは、アクセス種別毎に設けられる。この場合、アクセス要求ＲＥＱがあった場合に、図２０のステップＳ１０４においてアイドルフラグがリセットされ、アクセス要求ＲＥＱがない場合に、ステップＳ１０６においてアイドルフラグがセットされる。そして、ステップＳ１１２において、他のポートＰＴに対応するアイドルフラグがセットされた場合にステップＳ１１４に移行され、他のポートＰＴに対応するアイドルフラグがリセットされた場合にステップＳ１１６に移行される。
【０１６５】
なお、図１９に示したカウンタＣＮＴ４において、”１”以上の値は、上述したアイドルフラグのセット状態を示し、”０”の値は、アイドルフラグのリセット状態を示す。
【０１６６】
以上、この実施形態においても、図１から図９に示した実施形態と同様に、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して少なくとも１つのエントリＥＮＴを確保できる。さらに、この実施形態では、アクセス要求が、特定のポートＰＴで集中して発生し、他のポートＰＴで発生していない場合に、最大値ＭＡＸによるエントリＥＮＴの確保数の制限を解除する。これにより、アクセス要求が集中するポートＰＴに対応するエントリＥＮＴの確保数を、最大でバッファ部２５０Ｃが有するエントリＥＮＴの数（この例では、１６個）まで増やすことができる。この結果、アクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【０１６７】
なお、図１９から図２１に示した実施形態は、図１０から図１２に示した実施形態および図１３から図１５に示した実施形態に適用されてもよい。この場合、例えば、調停部２３０Ｇは、アクセス識別子ＡＩＤにそれぞれ対応してカウンタＣＮＴ４を有する。そして、アクセス要求ＲＥＱが、特定のアクセス識別子ＡＩＤで集中して発生し、他のアクセス識別子ＡＩＤで発生していない場合に、最大値ＭＡＸによるエントリＥＮＴの確保数の制限を解除する。
【０１６８】
あるいは、調停部２３０Ｇは、グループ識別子ＧＩＤにそれぞれ対応してカウンタＣＮＴ４を有する。そして、アクセス要求ＲＥＱが、特定のグループ識別子ＧＩＤで集中して発生し、他のグループ識別子ＧＩＤで発生していない場合に、最大値ＭＡＸによるエントリＥＮＴの確保数の制限を解除する。
【０１６９】
図２２は、別の実施形態における情報処理装置１００Ｈおよび演算処理装置２００Ｈの例を示している。図１、図２、図５および図１９と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１７０】
情報処理装置１００Ｈ、演算処理装置２００ＨおよびＬ２キャッシュ部２０２Ｈは、図５に示した調停部２３０Ｃおよびバッファ制御部２４０Ｃの代わりに調停部２３０Ｈおよびバッファ制御部２４０Ｈを有する。情報処理装置１００Ｈ、演算処理装置２００ＨおよびＬ２キャッシュ部２０２Ｈのその他の構成は、図５に示した情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃと同様である。すなわち、例えば、情報処理装置１００Ｈは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｈは、ＣＰＵ等のプロセッサである。
【０１７１】
調停部２３０Ｈは、図１９に示した調停部２３０Ｇと同様に、各ポートＰＴ（ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２）に対応するカウンタＣＮＴ４を、図５に示した調停部２３０Ｃに追加している。すなわち、カウンタＣＮＴ４は、アクセス種別毎に設けられる。
【０１７２】
調停部２３０Ｇは、例えば、ラウンドロビン等の手法を用いて、ポートＰＴの１つを順次に選択する。調停部２３０Ｈは、選択した各ポートＰＴにアクセス要求ＲＥＱが保持された場合に、対応するカウンタＣＮＴ４の値をインクリメントする。また、調停部２３０Ｈは、選択した各ポートＰＴにアクセス要求ＲＥＱが保持されていない場合に、対応するカウンタＣＮＴ４の値をデクリメントする。例えば、カウンタＣＮＴ４の値”１０”は、カウンタＣＮＴ４の値”５”に比べて、アクセス要求ＲＥＱの頻度が高いことを示す。
【０１７３】
さらに、調停部２３０Ｈは、インクリメントした各カウンタＣＮＴ４の値が、例えば５の倍数に到達した場合に、バッファ制御部２４０Ｈにインクリメント信号ＩＮＣを出力する。調停部２３０Ｈは、デクリメントした各カウンタＣＮＴ４の値が、例えば５の倍数に到達した場合に、バッファ制御部２４０Ｈにデクリメント信号ＤＥＣを出力する。なお、インクリメント信号ＩＮＣおよびデクリメント信号ＤＥＣは、カウンタＣＮＴ４に対応してポートＰＴ毎に生成される。
【０１７４】
バッファ制御部２４０Ｈは、図５に示した保持回路２４１の代わりに保持回路２４１Ｈを有する。保持回路２４１Ｈは、図８と同様に、各ポートＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２に対応して最大値ＭＡＸを保持する保持部ＨＯＬＤを有する。但し、保持部ＨＯＬＤは、例えば、保持した値を書き換え可能なレジスタである。
【０１７５】
バッファ制御部２４０Ｈは、インクリメント信号ＩＮＣに基づいて、対応する保持部ＨＯＬＤの値を”１”増加し、デクリメント信号ＤＥＣに基づいて、対応する保持部ＨＯＬＤの値を”１”減少する。バッファ制御部２４０Ｈのその他の機能は、図５に示したバッファ制御部２４０Ｃの機能と同様である。なお、この実施形態では、図７と同様に、１６個のエントリＥＮＴに対して、６個の各保持部ＨＯＬＤに設定可能なエントリＥＮＴの割り当て数の最大値は３である。すなわち、各保持部ＨＯＬＤは、”０”、”１”、”２”、”３”のいずれかの値を保持し、１つのポートＰＴを除く他のポートＰＴに対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数より少なくなるように設定される。インクリメント信号ＩＮＣに基づいて増加する値の最大値は”３”であり、デクリメント信号ＤＥＣに基づいて減少する値の最小値は”０”である。
【０１７６】
図２３は、図２２に示した調停部２３０Ｈの動作の例を示している。図９および図２０と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図２３に示す動作は、例えば、ハードウエアにより実現される。なお、図２３は、アクセス要求ＲＥＱ毎の動作およびポートＰＴ毎の動作を示している。
【０１７７】
ステップＳ１００、Ｓ１０２の動作は、図２０に示したステップＳ１００、Ｓ１０２の動作と同様である。選択したポートＰＴにアクセス要求ＲＥＱが保持された場合、ステップＳ１２０において、調停部２３０Ｈは、アクセス要求ＲＥＱを受け付け、対応するカウンタＣＮＴ４の値を”１”減少させる。すなわち、カウンタＣＮＴ４は、アクセス要求ＲＥＱの受け付けに基づいて一方向にカウントされる。次に、ステップＳ１２２において、調停部２３０Ｈは、選択したポートＰＴである自ポートＰＴに対応するカウンタＣＮＴ４の値をチェックする。ステップＳ１２４において、調停部２３０Ｈは、カウンタＣＮＴ４の値が、減少により５の倍数になったか否かを判定する。なお、５の倍数は一例であり、２以上の自然数の倍数であればよい。
【０１７８】
カウンタＣＮＴ４の値が、減少により５の倍数になった場合、ステップＳ１２６において、調停部２３０Ｈは、対応する保持部ＨＯＬＤの値である最大値ＭＡＸを増加させるように、バッファ制御部２４０Ｈにインクリメント信号ＩＮＣを出力する。この後、ステップＳ１０８において、調停部２３０Ｈは、図２０のステップＳ１０８と同様に、キャッシュメモリ制御部２６０Ｃおよびバッファ制御部２４０Ｈに、選択したアクセス要求ＲＥＱを出力する。
【０１７９】
一方、選択したポートＰＴにアクセス要求ＲＥＱが保持されていない場合、ステップＳ１２８において、調停部２３０Ｈは、対応するカウンタＣＮＴ４の値を”１”増加させる。すなわち、カウンタＣＮＴ４は、アクセス要求ＲＥＱが保持されていない場合、逆方向にカウントされる。次に、ステップＳ１３０において、調停部２３０Ｈは、選択したポートＰＴである自ポートＰＴに対応するカウンタＣＮＴ４の値をチェックする。ステップＳ１３２において、調停部２３０Ｈは、カウンタＣＮＴ４の値が、増加により５の倍数になったか否かを判定する。なお、５の倍数は一例であり、他の自然数の倍数でもよい。この場合に、比較する値は、ステップＳ１２４と同じ値であることが好ましい。
【０１８０】
カウンタＣＮＴ４の値が、増加により５の倍数になった場合、ステップＳ３４において、調停部２３０Ｈは、対応する保持部ＨＯＬＤの値である最大値ＭＡＸを減少させるように、バッファ制御部２４０Ｈにデクリメント信号ＤＥＣを出力する。そして、調停動作が完了する。
【０１８１】
図２４は、図２２に示したバッファ制御部２４０Ｈの動作の例を示している。図２４に示す動作は、図９に示したステップＳ４８、Ｓ５０、Ｓ５２に対応する動作であり、例えば、ハードウエアにより実現される。すなわち、この実施形態では、図９に示したステップＳ４６とステップＳ４８の間に、ステップＳ１４０、Ｓ１４２、Ｓ１４４、Ｓ１４６が挿入される。バッファ制御部２４０Ｈのその他の動作は、図９に示したバッファ制御部２４０Ｃの動作と同様である。なお、図２４は、アクセス要求ＲＥＱ毎の動作およびポートＰＴ毎の動作を示している。
【０１８２】
ステップＳ１４０では、バッファ制御部２４０Ｈは、調停部２３０Ｈからインクリメント信号ＩＮＣを受けたか否かを判定する。インクリメント信号ＩＮＣを受けた場合、ステップＳ１４２において、バッファ制御部２４０Ｈは、対応する保持部ＨＯＬＤに保持された最大値ＭＡＸを”１”増加させる。すなわち、バッファ制御部２４０Ｈは、カウンタＣＮＴ４が一方向に所定数カウントされた場合（この例では、”５”減少）、対応する最大値ＭＡＸを増加させる。但し、最大値ＭＡＸがすでに”３”に設定された場合、最大値ＭＡＸは保持される。
【０１８３】
ステップＳ１４４において、バッファ制御部２４０Ｈは、調停部２３０Ｈからデクリメント信号ＤＥＣを受けたか否かを判定する。デクリメント信号ＤＥＣを受けた場合、ステップＳ１４６において、バッファ制御部２４０Ｈは、対応する保持部ＨＯＬＤに保持された最大値ＭＡＸを”１”減少させる。すなわち、バッファ制御部２４０Ｈは、カウンタＣＮＴ４が逆方向に所定数カウントされた場合（この例では、”５”増加）、対応する最大値ＭＡＸを減少させる。但し、最大値ＭＡＸがすでに”０”に設定された場合、最大値ＭＡＸは保持される。
【０１８４】
この後、図９と同様に、ステップＳ４８、Ｓ５０、Ｓ５２の動作が実行される。なお、ステップＳ４８では、確保されたエントリＥＮＴの数Ｎは、”０”、”１”、”２”、”３”のいずれかに設定された最大値ＭＡＸと比較される。
【０１８５】
以上、この実施形態においても、図１から図９に示した実施形態と同様に、各ポートＰＴ（ＲＤＰ１、ＲＤＰ２、ＳＴＰ１、ＳＴＰ２、ＰＦＰ１、ＰＦＰ２）に対応して少なくとも１つのエントリＥＮＴを確保できる。さらに、この実施形態では、ポートＰＴ毎のアクセス要求の頻度の変化に合わせて、エントリＥＮＴの確保数の上限である最大値ＭＡＸを変更する。これにより、アクセス要求の発生頻度に応じてエントリＥＮＴの確保数の上限を増減できる。この結果、アクセス要求ＲＥＱがアボートされ続ける可能性を従来に比べて低くでき、アボートによりコア部ＣＯＲＥがハングアップする可能性を従来に比べて低くできる。
【０１８６】
なお、図２２から図２４に示した実施形態では、１つのポートＰＴを除く他のポートＰＴに対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数より少なくなるように設定される。しかしながら、１つのポートＰＴを除く他のポートＰＴに対応するエントリＥＮＴの割り当て数の最大値の合計が、エントリＥＮＴの総数以上に設定されてもよい。この場合、バッファ制御部２４０Ｈは、図１７に示したように、各ポートＰＴに対応する優先フラグＰＦＬＧを有する優先フラグ回路２４４Ｆを有し、Ｌ２キャッシュ部２０２Ｈは、図１８に示した動作を実行する。図２３に示したフローは、図１８のステップＳ４４に含まれる。図２４に示したフローのステップＳ１４０、Ｓ１４２、Ｓ１４４、Ｓ１４６は、図１８のステップＳ７２、Ｓ７４間に挿入される。これにより、最大値ＭＡＸの増加により、１つのポートＰＴを除く残りのポートＰＴにより確保可能なエントリＥＮＴの数の最大値ＭＡＸの合計が、エントリＥＮＴの総数以上の場合になった場合にも、優先フラグＰＦＬＧを用いてエントリＥＮＴを確保できる。
【０１８７】
さらに、図２２から図２４に示した実施形態は、図１０から図１２に示した実施形態および図１３から図１５に示した実施形態に適用されてもよい。この場合、例えば、調停部２３０Ｇは、アクセス識別子ＡＩＤにそれぞれ対応してカウンタＣＮＴ４を有する。そして、アクセス識別子ＡＩＤ毎に、アクセス要求ＲＥＱの頻度が高くなった場合に最大値ＭＡＸを増やし、アクセス識別子ＡＩＤ毎に、アクセス要求ＲＥＱの頻度が低くなった場合に最大値ＭＡＸを減らす。
【０１８８】
あるいは、調停部２３０Ｇは、グループ識別子ＧＩＤにそれぞれ対応してカウンタＣＮＴ４を有する。そして、グループ識別子ＧＩＤ毎に、アクセス要求ＲＥＱの頻度が高くなった場合に最大値ＭＡＸを増やし、グループ識別子ＧＩＤ毎に、アクセス要求ＲＥＱの頻度が低くなった場合に最大値ＭＡＸを減らす。
【０１８９】
なお、図１から図２４に示した実施形態では、記憶装置３００が演算処理装置２００、２００Ａ、２００Ｃ、２００Ｄ、２００Ｅ、２００Ｆ、２００Ｇ、２００Ｈ等に占有される例について述べた。しかしながら、記憶装置は、複数の演算処理装置に共有されてもよい。この場合、図１から図２４に示した実施形態は、各演算処理装置に適用されてもよい。
【０１９０】
また、情報処理装置１００Ｃ、１００Ｄ、１００Ｅ、１００Ｆ、１００Ｇ、１００Ｈが、Ｌ３キャッシュ部を有する場合、図５から図２４に示した実施形態は、Ｌ２キャッシュ部およびＬ３キャッシュ部の少なくともいずれかに適用されてもよい。例えば、図５に示した実施形態がＬ３キャッシュ部に適用される場合、Ｌ３キャッシュ部は、Ｌ２キャッシュ部２０２Ｃとメモリアクセスコントローラ２８０Ｃとの間に配置される。そして、キャッシュメモリ制御部２６０Ｃは、Ｌ２キャッシュメモリのキャッシュミス時に、Ｌ３キャッシュ部にアクセス要求を出力する。Ｌ３キャッシュ部は、キャッシュメモリ制御部２６０Ｃからのアクセス要求ＲＥＱを受け、Ｌ３キャッシュメモリのキャッシュヒット・キャッシュミスを判定する。そして、Ｌ３キャッシュ部は、キャッシュミス時にメモリアクセスコントローラ２８０Ｃにアクセス要求ＲＥＱを出力する。
【０１９１】
以上の図１から図２４に示した実施形態に関し、さらに以下の付記を開示する。
（付記１）
記憶装置に対するアクセス要求を出力する演算処理部と、
前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、
前記複数の要求保持部に保持されたアクセス要求を調停する調停部と、
データを保持する複数のエントリを有するバッファ部と、
前記複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させるバッファ制御部を有することを特徴とする演算処理装置。
（付記２）
前記バッファ制御部は、
前記計数値が前記最大値未満である場合、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする付記１記載の演算処理装置。
（付記３）
前記バッファ制御部は、
前記計数値が前記最大値の場合、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させないことを特徴とする付記１記載の演算処理装置。
（付記４）
複数のアクセス種別のうちの１つを除くアクセス種別にそれぞれ対応する前記最大値の合計は、エントリの総数より少なく設定されることを特徴とする付記１ないし付記３のいずれか１項記載の演算処理装置。
（付記５）
前記バッファ制御部は、
前記最大値をアクセス種別毎に保持する保持回路と、
アクセス種別毎に前記計数値を求め、求めた計数値を保持する計数回路と、
前記計数値と前記最大値とをアクセス種別毎に比較する比較回路を有することを特徴とする付記１ないし付記４のいずれか１項記載の演算処理装置。
（付記６）
前記演算処理装置は、
各アクセス種別に対応するアクセス識別子毎に複数の要求保持部を有し、
前記バッファ制御部は、
前記複数のエントリのうちデータを保持したエントリをアクセス識別子毎に計数した計数値とアクセス識別子毎にデータを保持させるエントリの最大値とをアクセス種別子毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする付記１記載の演算処理装置。
（付記７）
複数のアクセス識別子のうちの１つを除くアクセス識別子にそれぞれ対応する前記最大値の合計は、エントリの総数より少なく設定されることを特徴とする付記４記載の演算処理装置。
（付記８）
前記バッファ制御部は、
前記最大値をアクセス識別子毎に保持する保持回路と、
アクセス識別子毎に前記計数値を求め、求めた計数値を保持する計数回路と、
前記計数値と前記最大値とをアクセス識別子毎に比較する比較回路を有することを特徴とする付記６または付記７記載の演算処理装置。
（付記９）
前記演算処理装置は、
複数のアクセス種別に対応するグループ識別子毎に複数の要求保持部を有し、
前記バッファ制御部は、
前記複数のエントリのうちデータを保持したエントリをグループ識別子毎に計数した計数値とグループ識別子毎にデータを保持させるエントリの最大値とをグループ識別子毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させることを特徴とする付記１記載の演算処理装置。
（付記１０）
複数のグループ識別子のうちの１つを除くグループ識別子にそれぞれ対応する前記最大値の合計は、エントリの総数より少なく設定されることを特徴とする付記９記載の演算処理装置。
（付記１１）
前記バッファ制御部は、
前記最大値をグループ識別子毎に保持する保持回路と、
グループ識別子毎に前記計数値を求め、求めた計数値を保持する計数回路と、
前記計数値と前記最大値とをグループ識別子毎に比較する比較回路を有することを特徴とする付記９または付記１０記載の演算処理装置。
（付記１２）
前記バッファ制御部は、
アクセス要求を優先させる場合にセットされる優先フラグをアクセス種別毎に有し、
前記優先フラグがセットされたアクセス種別に対応して確保された前記エントリがない場合に、他のアクセス種別のアクセス要求に基づく前記エントリの確保を停止し、前記優先フラグがセットされたアクセス種別のアクセス要求に基づいて前記エントリを確保し、
複数のアクセス種別のうちの１つを除くアクセス種別にそれぞれ対応する前記最大値の合計は、エントリの総数以上に設定されることを特徴とする付記１ないし付記５のいずれか１項記載の演算処理装置。
（付記１３）
前記調停部は、
順次に選択する前記要求保持部に保持されたアクセス要求の受け付けに基づいてリセットされ、選択した前記要求保持部にアクセス要求が保持されていない場合にセットされるアイドルフラグを、アクセス種別毎に有し、
前記バッファ制御部は、
１つのアクセス種別に対応する前記アイドルフラグがリセットされ、他のアクセス種別に対応する前記アイドルフラグがセットされた場合に、前記計数値に拘わらず、リセットされたアイドルフラグに対応するアクセス要求に基づいて、前記エントリを確保することを特徴とする付記１ないし付記５のいずれか１項記載の演算処理装置。
（付記１４）
前記調停部は、
順次に選択する前記要求保持部に保持されたアクセス要求の受け付けに基づいて一方向にカウントされ、選択した前記要求保持部にアクセス要求が保持されていない場合に逆方向にカウントされるカウンタを、アクセス種別毎に有し、
前記バッファ制御部は、
前記カウンタが前記一方向に所定数カウントされた場合に、対応する前記最大値を増加させ、前記カウンタが前記逆方向に所定数カウントされた場合に、対応する前記最大値を減少させることを特徴とする付記１ないし付記５、付記１２のいずれか１項記載の演算処理装置。
（付記１５）
記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
キャッシュメモリ部と、
前記記憶装置に対するアクセス要求を出力する演算処理部と、
前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持する複数の要求保持部と、
前記複数の要求保持部に保持されたアクセス要求を調停する調停部と、
データを保持する複数のエントリを有するバッファ部と、
前記複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させるバッファ制御部と、
前記バッファ部に保持されたデータを前記キャッシュメモリ部に出力するキャッシュメモリ制御部を有することを特徴とする情報処理装置。
（付記１６）
記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置の制御方法において、
前記演算処理装置が有する演算処理部が、前記記憶装置に対するアクセス要求を出力し、
前記演算処理装置が有する複数の要求保持部が、前記演算処理部が出力したアクセス要求を、アクセス要求の種別であるアクセス種別毎にそれぞれ保持し、
前記演算処理装置が有する調停部が、前記複数の要求保持部に保持されたアクセス要求を調停し、
前記演算処理装置が有するバッファ部が備える複数のエントリのうちデータを保持したエントリをアクセス種別毎に計数した計数値とアクセス種別毎にデータを保持させるエントリの最大値とをアクセス種別毎に比較した結果に基づいて、前記演算処理装置が有するバッファ制御部が、前記調停部が調停したアクセス要求に応じて前記記憶装置が出力したデータを前記複数のエントリのいずれかに保持させ、
前記演算処理装置が有するキャッシュメモリ制御部が、前記バッファ部に保持されたデータを、前記演算処理装置が有するキャッシュメモリ部に出力することを特徴とする情報処理装置の制御方法。
【０１９２】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１９３】
１００、１００Ａ、１００Ｃ、１００Ｄ、１００Ｅ、１００Ｆ、１００Ｇ、１００Ｈ‥情報処理装置；２００、２００Ａ、２００Ｃ、２００Ｄ、２００Ｅ、２００Ｆ、２００Ｇ、２００Ｈ‥演算処理装置；２０２Ｃ、２０２Ｄ、２０２Ｅ、２０２Ｆ、２０２Ｇ、２０２Ｈ‥Ｌ２キャッシュ部；２１０‥演算処理部；２２０ａ、２２０ｂ‥要求保持部；２３０、２３０Ｃ‥調停部；２４０、２４０Ａ、２４０Ｃ、２４０Ｄ、２４０Ｅ、２４０Ｆ、２４０Ｇ、２４０Ｈ‥バッファ制御部；２４１、２４１Ｄ、２４１Ｅ、２４１Ｆ、２４１Ｈ‥保持回路；２４２、２４２Ｄ、２４２Ｅ‥計数回路；２４３、２４３Ｄ、２４３Ｅ‥比較回路；２４４Ｆ‥優先フラグ回路；２５０、２５０Ａ、２５０Ｃ‥バッファ部；２６０Ａ、２６０Ｃ‥キャッシュメモリ制御部；２７０Ａ‥キャッシュメモリ部；２７０Ｃ‥Ｌ２キャッシュメモリ；２８０‥メモリアクセスコントローラ；３００‥記憶装置；ＡＥＮ‥アクセス許可信号；ＡＩＤ‥アクセス識別子；ＣＯＲＥ０−ＣＯＲＥ７‥コア部；ＤＥＣ‥デクリメント信号；ＥＮＴ‥エントリ；ＦＩＮ‥完了応答；ＧＩＤ‥グループ識別子；ＨＬＤ‥保持領域；ＩＮＣ‥インクリメント信号；ＭＡＸ‥最大値；ＰＦＬＧ‥優先フラグ；ＰＦＰ１、ＰＦＰ２‥ポート；ＰＴ‥ポート；ＲＤＰ１、ＲＤＰ２‥ポート；ＲＥＬ‥制限解除信号；ＲＥＱ‥アクセス要求；ＲＳＴ‥リセット信号；ＳＴＰ１、ＳＴＰ２‥ポート
【図１】
2014035678.tif 000003
【図２】
2014035678.tif 000004
【図３】
2014035678.tif 000005
【図４】
2014035678.tif 000006
【図５】
2014035678.tif 000007
【図６】
2014035678.tif 000008
【図７】
2014035678.tif 000009
【図８】
2014035678.tif 000010
【図９】
2014035678.tif 000011
【図１０】
2014035678.tif 000012
【図１１】
2014035678.tif 000013
【図１２】
2014035678.tif 000014
【図１３】
2014035678.tif 000015
【図１４】
2014035678.tif 000016
【図１５】
2014035678.tif 000017
【図１６】
2014035678.tif 000018
【図１７】
2014035678.tif 000019
【図１８】
2014035678.tif 000020
【図１９】
2014035678.tif 000021
【図２０】
2014035678.tif 000022
【図２１】
2014035678.tif 000023
【図２２】
2014035678.tif 000024
【図２３】
2014035678.tif 000025
【図２４】
2014035678.tif 000026