(57)【要約】【課題】  新規の要求を保持する要求保持部と派生の要求を保持する要求保持部とを有する演算処理装置において、要求の処理が滞ることを回避する。【解決手段】  演算処理装置は、記憶装置に対する要求を出力する演算処理部と、演算処理部からの要求を保持し、入力した設定通知に基づき第１フラグが設定された場合、保持した要求の発行を抑止する要求エントリを有し、要求エントリのいずれかに保持した要求が所定時間を超えて処理されない場合、警告通知を出力する要求保持部と、要求保持部に保持された要求の処理により派生した派生要求を保持する派生要求エントリを有する派生要求保持部と、要求保持部に保持された要求と派生要求保持部に保持された派生要求を調停し、警告通知に基づき設定通知を出力する調停部と、調停部が調停した要求又は派生要求を処理し、派生要求を派生要求保持部に保持させる処理部を有する。【選択図】    図１
2014038544.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に接続される演算処理装置において、
前記記憶装置に対する要求を出力する演算処理部と、
前記演算処理部が出力した要求を保持し、入力した設定通知に基づき第１フラグが設定された場合、保持した要求の発行を抑止する要求エントリを複数有するとともに、前記複数の要求エントリのいずれかに保持した要求が所定時間を超えて処理されない場合、警告通知を出力する要求保持部と、
前記要求保持部に保持された要求が処理されることにより派生した派生要求を保持する派生要求エントリを複数有する派生要求保持部と、
前記要求保持部に保持された要求と前記派生要求保持部に保持された派生要求を調停するとともに、前記要求保持部が出力した警告通知に基づき前記設定通知を出力する調停部と、
前記調停部が調停した要求又は派生要求を処理し、要求を処理することにより派生した派生要求を前記派生要求保持部に保持させる処理部を有することを特徴とする演算処理装置。
【請求項２】
前記要求保持部はさらに、
前記所定時間を超えて処理されない要求が前記処理部により処理されたと判断した場合、前記調停部に回避通知を出力するとともに、前記調停部から入力した解除通知に基づき設定された前記第１フラグを解除し、
前記調停部はさらに、
前記回避通知を入力した場合、前記解除通知を前記要求保持部に出力することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記各要求エントリは、
前記第１フラグと、有効な前記要求を保持していることを示す第２フラグとを有し、
前記要求保持部はさらに、
前記設定通知を受けてから前記解除通知を受けるまで、前記第１フラグがリセットされ、前記第２フラグがセットされている要求エントリに保持されている前記要求を発行し、前記第１フラグがセットされ、前記第２フラグがセットされている要求エントリに保持されている前記要求の発行を抑止し、前記解除通知を受けてから前記設定通知受けるまで、前記第１フラグの状態に拘わらず、前記第２フラグがセットされている要求エントリに保持されている前記要求を発行する発行制御部を有することを特徴とする請求項２記載の演算処理装置。
【請求項４】
前記要求保持部はさらに、
前記設定通知を受けてから前記解除通知を受けるまで、新たな要求の保持に応じた前記要求エントリの前記第２フラグのセットに基づいて前記第１フラグをセットし、前記解除通知を受けた場合に、前記第１フラグをリセットするフラグ制御回路を有することを特徴とする請求項３記載の演算処理装置。
【請求項５】
前記要求保持部はさらに、
前記要求エントリの１つを順次に選択し、選択している要求エントリに前記要求が保持された場合に第１起動信号を出力し、選択している要求エントリに保持された前記要求が処理された場合に前記回避通知を出力する第１チェック回路と、
前記第１起動信号に応答して時間の計測を開始し、所定時間を超えた場合に警告通知を出力する第１タイマを有し、
前記派生要求保持部はさらに、
前記派生要求エントリの１つを順次に選択し、選択している派生要求エントリに前記派生要求が保持された場合に第２起動信号を出力し、選択している派生要求エントリに保持された前記派生要求が処理された場合に前記回避通知を出力する第２チェック回路と、
前記第２起動信号に応答して時間の計測を開始し、所定時間を超えた場合に警告通知を出力する第２タイマを有することを特徴とする請求項３記載の演算処理装置。
【請求項６】
前記要求保持部はさらに、
前記要求エントリに前記要求が保持された場合に第１起動信号をそれぞれ出力し、前記要求エントリに保持された前記要求が処理された場合に前記回避通知を出力する第１チェック回路と、
前記要求エントリにそれぞれ対応して設けられ、対応する第１起動信号に応答して時間の計測を開始し、所定時間を超えた場合に警告通知を出力する複数の第１タイマを有し、
前記派生要求保持部はさらに、
前記派生要求エントリに前記派生要求が保持された場合に第２起動信号をそれぞれ出力し、前記派生要求エントリに保持された前記派生要求が処理された場合に前記回避通知を出力する第２チェック回路と、
前記派生要求エントリにそれぞれ対応して設けられ、対応する第２起動信号に応答して時間の計測を開始し、所定時間を超えた場合に警告通知を出力する複数の第２タイマを有することを特徴とする請求項３記載の演算処理装置。
【請求項７】
前記調停部は、
前記派生要求保持部が発行した派生要求を、前記要求保持部が発行した要求よりも優先して調停することを特徴とする請求項１記載の演算処理装置。
【請求項８】
記憶装置に接続される演算処理装置の制御方法において、
前記演算処理装置が有する演算処理部が、前記記憶装置に対する要求を出力し、
前記演算処理装置が有する要求保持部が有する複数の要求エントリのいずれかが、前記演算処理部が出力した要求を保持し、入力した設定通知に基づき第１フラグが設定された場合、保持した要求の発行を抑止し、
前記複数の要求エントリのいずれかに保持した要求が所定時間を超えて処理されない場合、前記要求保持部が、警告通知を出力し、
前記演算処理装置が有する派生要求保持部が有する複数の派生要求エントリのいずれかが、前記要求保持部に保持された要求が処理されることにより派生した派生要求を保持し、
前記演算処理装置が有する調停部が、前記要求保持部に保持された要求と前記派生要求保持部に保持された派生要求を調停し、
前記調停部が、前記要求保持部が出力した警告通知に基づき前記設定通知を出力し、
処理部が、前記調停部が調停した要求又は派生要求を処理し、
前記処理部が、要求を処理することにより派生した派生要求を前記派生要求保持部に保持させることを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置および演算処理装置の制御方法に関する。
【背景技術】
【０００２】
例えば、演算処理装置であるＣＰＵ（Central Processing Unit）におけるＣＰＵコア等の演算処理部が記憶装置にアクセス要求を順次に発行する場合、アクセス要求は要求保持部に保持される。要求保持部に保持されたアクセス要求は、優先順にしたがって選択され、記憶装置に出力される。要求保持部に保持されてから一定時間が経過したアクセス要求は、他のアクセス要求の記憶装置への出力を抑止することで処理可能になる。要求保持部に保持されてから一定時間が経過した複数のアクセス要求が存在する場合にも、アクセス要求を処理するタイミングを互いにずらすことで、アクセス要求が互いに抑止されることが回避される（例えば、特許文献１参照）。
【０００３】
また、複数のプロセッサに共有される記憶装置は、一方のプロセッサからアクセス要求が連続する場合に、例えば、他方のプロセッサへのウエイト信号の出力期間を制限することで、他方のプロセッサからのアクセス要求を受け付ける（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−８１０４２号公報
【特許文献２】特開２００４−３３４３６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、演算処理部から出力される新規の要求に基づいて、派生の要求が発生する場合、演算処理装置は、新規の要求を保持する新規の要求保持部と、派生の要求を保持する派生の要求保持部とを有する。新規の要求保持部に保持された新規の要求が処理されることなく一定時間が経過し、新規の要求が優先して処理される場合、派生の要求による記憶装置へのアクセスは抑止される。優先された新規の要求に基づいて派生の要求が発生する場合、派生の要求保持部は派生の要求により満杯になるおそれがある。派生の要求保持部が満杯になった場合、派生の要求を発生させる新規の要求はアボートされる。すなわち、新規の要求の処理を進めるために派生の要求の処理を抑止する場合、結果として、派生の要求の処理が進まないことが妨げになり、新規の要求の処理が進まず、演算処理装置がハングアップするおそれがある。
【０００６】
１つの側面では、本発明の目的は、演算処理部から出力される新規の要求を保持する要求保持部と派生の要求を保持する要求保持部とを有する演算処理装置において、要求の処理が滞ることを回避し、ハングアップする確率を従来に比べて下げることである。
【課題を解決するための手段】
【０００７】
本発明の一形態では、記憶装置に接続される演算処理装置は、記憶装置に対する要求を出力する演算処理部と、演算処理部が出力した要求を保持し、入力した設定通知に基づき第１フラグが設定された場合、保持した要求の発行を抑止する要求エントリを複数有するとともに、複数の要求エントリのいずれかに保持した要求が所定時間を超えて処理されない場合、警告通知を出力する要求保持部と、要求保持部に保持された要求が処理されることにより派生した派生要求を保持する派生要求エントリを複数有する派生要求保持部と、要求保持部に保持された要求と派生要求保持部に保持された派生要求を調停するとともに、要求保持部が出力した警告通知に基づき設定通知を出力する調停部と、調停部が調停した要求又は派生要求を処理し、要求を処理することにより派生した派生要求を派生要求保持部に保持させる処理部を有することを特徴とする。
【発明の効果】
【０００８】
演算処理部から出力される新規の要求を保持する要求保持部と派生の要求を保持する要求保持部とを有する演算処理装置において、要求の処理が滞ることを回避でき、ハングアップする確率を従来に比べて下げることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態における情報処理装置および演算処理装置の例を示している。
【図２】図１に示した情報処理装置および演算処理装置の動作の例を示している。
【図３】図１に示した情報処理装置および演算処理装置の動作の例を示している。
【図４】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図５】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図６】図５に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２の例を示している。
【図７】図５に示したポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２の例を示している。
【図８】図５に示した調停部の例を示している。
【図９】図８に示した調停部の動作の例を示している。
【図１０】図５に示したポートＭＩＰ１にアクセス要求が供給される場合の情報処理装置および演算処理装置の動作の例を示している。
【図１１】図１０に示したステップＳ１０の動作の例を示している。
【図１２】図５に示したポートＭＩＢＰ１にアクセス要求が供給される場合の情報処理装置および演算処理装置の動作の例を示している。
【図１３】図１２に示したステップＳ４０の動作の例を示している。
【図１４】図５に示した情報処理装置および演算処理装置の動作の例を示している。
【図１５】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図１６】図１５に示した調停部の例を示している。
【図１７】図１５に示した情報処理装置および演算処理装置の動作の例を示している。
【図１８】別の実施形態における情報処理装置および演算処理装置の例を示している。
【図１９】図１８に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２の例を示している。
【図２０】図１８に示したポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２の例を示している。
【図２１】図１８に示した情報処理装置および演算処理装置の動作の例を示している。
【図２２】図１８に示した情報処理装置および演算処理装置の動作の例を示している。
【図２３】図６に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２の別の例を示している。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、一実施形態における情報処理装置１００および演算処理装置２００の例を示している。情報処理装置１００は、演算処理装置２００および記憶装置３００を有する。例えば、情報処理装置１００は、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００は、ＣＰＵ等のプロセッサである。
【００１２】
例えば、記憶装置３００は、複数のＤＲＡＭ（Dynamic Random Access Memory）が搭載されたＤＩＭＭ（Dual Inline Memory Module）等のメモリモジュールである。記憶装置３００は、演算処理装置２００の演算処理部２１０が実行するプログラムや演算処理部２１０により処理されるデータを記憶する。なお、記憶装置３００は、半導体メモリチップや半導体メモリコアの形態でもよい。
【００１３】
例えば、演算処理装置２００および記憶装置３００は、プリント基板上に搭載される。なお、演算処理装置２００は、プロセッサチップまたはプロセッサコアでもよい。この場合、演算処理装置２００および記憶装置３００は、１つの半導体チップの上に搭載されてもよい。
【００１４】
演算処理装置２００は、演算処理部２１０、要求保持部２２０、２３０、調停部２４０および処理部２５０を有する。演算処理部２１０は、例えば、ＣＰＵコアであり、記憶装置３００に対するアクセス要求ＮＲＥＱを出力する。例えば、アクセス要求ＮＲＥＱは、ロード命令およびストア命令等の演算処理部２１０で扱うデータの入出力要求と、演算処理部２１０が実行するプログラムのプリフェッチ要求との少なくともいずれかを含む。
【００１５】
要求保持部２２０は、演算処理部２１０が出力するアクセス要求ＮＲＥＱを保持する少なくとも１つのエントリＮＥＮＴと、エントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱの調停部２４０への出力を制御する出力制御部ＯＵＴＣとを有する。エントリＮＥＮＴは、要求エントリの一例である。
【００１６】
例えば、各エントリＮＥＮＴは、設定通知ＦＳＥＴを受ける前に保持したアクセス要求ＮＲＥＱと、設定通知ＦＳＥＴを受けた後に保持したアクセス要求ＮＲＥＱを識別するために、フラグＮを有する。要求保持部２２０は、設定通知ＦＳＥＴを受けた後に、アクセス要求ＮＲＥＱをエントリＮＥＮＴに保持する場合、フラグＮを設定する。なお、フラグＮは、エントリＮＥＮＴの外部に、各エントリＮＥＮＴに対応して設けられてもよい。
【００１７】
例えば、出力制御部ＯＵＴＣは、調停部２４０から設定通知ＦＳＥＴを受けたときに、フラグＮが設定されたエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱの調停部２４０への出力を抑止する。出力制御部ＯＵＴＣは、調停部２４０から解除通知ＦＲＳＴを受けたときに、フラグＮに拘わらず、エントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱを調停部２４０に出力する。
【００１８】
なお、設定通知ＦＳＥＴおよび解除通知ＦＲＳＴは、例えば、１本の信号線の論理レベルにより調停部２４０から出力制御部ＯＵＴＣに伝達されてもよい。この場合、例えば、ハイベルの信号（または立ち上がりエッジ）は、設定通知ＦＳＥＴを示し、ロウレベルの信号（または立ち下がりエッジ）は、解除通知ＦＲＳＴを示す。
【００１９】
また、要求保持部２２０は、所定時間を超えて処理されないアクセス要求ＮＲＥＱがエントリＮＥＮＴのいずれかに存在する場合、調停部２４０に警告通知ＷＡＲＮを出力する。さらに、要求保持部２２０は、エントリＮＥＮＴに保持されてから所定時間を超えて処理されていないアクセス要求ＮＲＥＱが処理部２５０により処理されたと判断した場合、調停部２４０に回避通知ＡＶＩＤを出力する。
【００２０】
要求保持部２３０は、アクセス要求ＳＲＥＱを保持する少なくとも１つのエントリＳＥＮＴを有する。要求保持部２３０は、派生要求保持部の一例であり、エントリＳＥＮＴは、派生要求エントリの一例である。アクセス要求ＳＲＥＱは、要求保持部２２０に保持されたアクセス要求ＮＲＥＱが処理されることにより、記憶装置３００へのアクセスが必要になった場合に生成される派生要求の一例である。なお、図１では、要求保持部２２０、２３０がそれぞれ４つのエントリＮＥＮＴ、ＳＥＮＴを有する例を示しているが、エントリＮＥＮＴ、ＳＥＮＴの数は、４つに限定されない。
【００２１】
調停部２４０は、要求保持部２２０に保持されたアクセス要求ＮＲＥＱおよび要求保持部２３０に保持されたアクセス要求ＳＲＥＱを調停し、記憶装置３００へのアクセス要求ＲＥＱとして選択する。例えば、調停部２４０は、ラウンドロビン等の手法を用いて、要求保持部２２０および要求保持部２３０に保持されたアクセス要求ＮＲＥＱ、ＳＲＥＱを順次に選択する。そして、調停部２３０は、選択したアクセス要求ＮＲＥＱ（またはＳＲＥＱ）を処理部２５０に出力する。
【００２２】
なお、図１では、要求保持部２２０は、エントリＮＥＮＴに保持された複数のアクセス要求ＮＲＥＱを調停部２４０に出力し、要求保持部２３０は、エントリＳＥＮＴに保持された複数のアクセス要求ＳＲＥＱを調停部２４０に出力する。しかしながら、要求保持部２２０は、エントリＮＥＮＴを順次に選択し、選択したエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱを調停部２４０に出力してもよい。要求保持部２３０は、エントリＳＥＮＴを順次に選択し、選択したエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱを調停部２４０に出力してもよい。
【００２３】
また、調停部２４０は、要求保持部２２０から出力された警告通知ＷＡＲＮに基づいて、設定通知ＦＳＥＴを要求保持部２２０に出力する。さらに、調停部２４０は、要求保持部２２０から出力される回避通知ＡＶＩＤに基づいて、解除通知ＦＲＳＴを要求保持部２２０に出力する。
【００２４】
処理部２５０は、調停部２４０から出力されるアクセス要求ＲＥＱを記憶装置３００に出力する。例えば、記憶装置３００は、アクセス要求ＲＥＱに基づいて読み出し動作を実行し、メモリセルから読み出されるデータを演算処理部２１０に出力する。図１および図１以降の図面において、太い破線は、データが転送されるデータ線を示している。
【００２５】
図２および図３は、図１に示した情報処理装置１００および演算処理装置２００の動作の例を示している。すなわち、図２および図３は、情報処理装置１００および演算処理装置２００の制御方法の例を示している。図３は、図２の動作の続きを示している。図２および図３において、白のエントリＮＥＮＴ（またはＳＥＮＴ）は、アクセス要求ＮＲＥＱ（またはＳＲＥＱ）を保持していない空きの状態を示している。網掛けのエントリＮＥＮＴ（またはＳＥＮＴ）は、アクセス要求ＮＲＥＱ（またはＳＲＥＱ）を保持した状態を示している。
【００２６】
斜線のエントリＮＥＮＴは、アクセス要求ＮＲＥＱを受けてから所定時間が経過した状態を示している。斜線のエントリＮＥＮＴの状態がさらに続く場合、演算処理部２１０は、アクセス要求ＮＲＥＱに対応するデータを受けられず、ハングアップするおそれがある。”Ｎ”を付けた網掛けのエントリＮＥＮＴは、調停部２４０から設定通知ＦＳＥＴを受けた後に、演算処理部２１０から新たに供給されたアクセス要求ＮＲＥＱを保持したことを示す。”Ｎ”を付けた網掛けのエントリＮＥＮＴは、解除通知ＦＲＳＴに基づいて”Ｎ”の付かない網掛けのエントリＮＥＮＴに変更される。
【００２７】
初期の状態（ａ）において、要求保持部２２０は、３つのエントリＮＥＮＴにアクセス要求ＮＲＥＱを保持し、要求保持部２３０は、３つのエントリＳＥＮＴにアクセス要求ＳＲＥＱを保持する。調停部２４０は、要求保持部２２０に保持されたアクセス要求ＮＲＥＱを選択し、アクセス要求ＲＥＱとして処理部２５０に出力する。処理部２５０は、アクセス要求ＲＥＱに基づいて図１に示した記憶装置３００にアクセスする処理を実行する。また、処理部２５０は、アクセス要求ＮＲＥＱに基づくアクセス処理により、記憶装置３００へのアクセスがさらに必要になったことを判断する。処理部２５０は、アクセス要求ＮＲＥＱに基づいて派生されたアクセス要求ＳＲＥＱを、要求保持部２３０の空きのエントリＳＥＮＴに出力する。
【００２８】
状態（ｂ）において、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、アクセス要求ＲＥＱとして処理部２５０に出力する。処理部２５０は、アクセス要求ＲＥＱに基づいて図１に示した記憶装置３００にアクセスする処理を実行する。また、状態（ｂ）において、要求保持部２２０は、エントリＮＥＮＴに保持したアクセス要求ＮＲＥＱの中に、所定時間を超えて処理されないアクセス要求ＮＲＥＱが存在することを検出し（斜線のエントリＮＥＮＴ）、警告通知ＷＡＲＮを調停部２４０に出力する。調停部２４０は、警告通知ＷＡＲＮを受け、設定通知ＦＳＥＴを要求保持部２２０に出力する。また、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、アクセス要求ＲＥＱとして処理部２５０に出力する。処理部２５０は、アクセス要求ＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。
【００２９】
状態（ｃ）において、演算処理部２１０は、要求保持部２２０の空きのエントリＮＥＮＴにアクセス要求ＮＲＥＱを格納する。要求保持部２２０は、設定通知ＦＳＥＴ後に受けたアクセス要求ＮＲＥＱを保持するエントリＮＥＮＴのフラグＮをセットする（状態（ｄ）で”Ｎ”を付けたエントリＮＥＮＴ）。すなわち、設定通知ＦＳＥＴ後に受けたアクセス要求ＮＲＥＱは、フラグＮにより、設定通知ＦＳＥＴ前に保持したアクセス要求ＮＲＥＱと区別して保持される。要求保持部２２０は、設定通知ＦＳＥＴの受信に基づいて、フラグＮがセットされたエントリＥＮＴに保持されたアクセス要求ＮＲＥＱの調停部２４０への発行を抑止する。
【００３０】
調停部２４０は、要求保持部２２０に保持された次のアクセス要求ＮＲＥＱを選択し、アクセス要求ＲＥＱとして処理部２５０に出力する。処理部２５０は、例えば、アクセス要求ＳＲＥＱの処理に伴いデータバスの競合が発生するため、アクセス要求ＮＲＥＱをアボートする。
【００３１】
状態（ｄ）では、状態（ｂ）と同様に、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、アクセス要求ＲＥＱとして処理部２５０に出力する。処理部２５０は、アクセス要求ＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。
【００３２】
状態（ｅ）では、状態（ａ）と同様に、調停部２４０は、要求保持部２２０に保持されたアクセス要求ＮＲＥＱを選択し、処理部２５０は、アクセス要求ＮＲＥＱに基づいて記憶装置３００にアクセスする。また、処理部２５０は、アクセス要求ＮＲＥＱに基づいて派生されたアクセス要求ＳＲＥＱを、要求保持部２３０の空きのエントリＳＥＮＴに出力する。
【００３３】
状態（ｆ）において、演算処理部２１０は、要求保持部２２０の空きのエントリＮＥＮＴにアクセス要求ＮＲＥＱを格納する。また、上述した状態（ｄ）と同様に、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、処理部２５０は、アクセス要求ＳＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。
【００３４】
次に、図３の状態（ｇ）において、演算処理部２１０は、要求保持部２２０の空きのエントリＮＥＮＴにアクセス要求ＮＲＥＱを格納する。また、状態（ｇ）では、状態（ｃ）と同様に、調停部２４０は、要求保持部２２０に保持されたアクセス要求ＮＲＥＱを選択する。しかし、処理部２５０は、例えば、アクセス要求ＳＲＥＱの処理に伴いデータバスの競合が発生するため、アクセス要求ＮＲＥＱをアボートする。なお、状態（ｇ）、（ｈ）では、１つのエントリＮＥＮＴを除き、要求保持部２２０は、設定通知ＦＳＥＴ後に受けたアクセス要求ＮＲＥＱを保持している。要求保持部２２０は、これ等アクセス要求ＮＲＥＱの調停部２４０への発行を抑止するため、調停部２４０により選択されるアクセス要求ＮＲＥＱは限られてしまう。例えば、他のアクセス要求ＮＲＥＱに比べてアボートする可能性が高いアクセス要求ＮＲＥＱが連続して選択される場合がある。
【００３５】
状態（ｈ）では、状態（ｄ）と同様に、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、処理部２５０は、アクセス要求ＳＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。
【００３６】
次に、状態（ｉ）では、状態（ｇ）と同様に、調停部２４０は、要求保持部２２０に保持されたアクセス要求ＮＲＥＱを選択するが、処理部２５０は、アクセス要求ＮＲＥＱをアボートする。次に、状態（ｊ）では、状態（ｄ）と同様に、調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、処理部２５０は、アクセス要求ＳＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。この処理により、要求保持部２３０に保持されたアクセス要求ＳＲＥＱの処理は全て完了する。
【００３７】
このように、設定通知ＦＳＥＴ後にエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱの調停部２４０への発行を抑止することにより、派生要求であるアクセス要求ＳＲＥＱの発生の頻度を従来に比べて下げることができる。これにより、派生要求の処理が進まないことを避けることができ、演算処理装置２００がハングアップする可能性を従来に比べて低くできる。
【００３８】
状態（ｋ）において、状態（ｅ）と同様に、調停部２４０は、ＮフラグがリセットされたエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱを選択する。処理部２５０は、アクセス要求ＮＲＥＱに基づいて記憶装置３００にアクセスし、アクセス要求ＮＲＥＱに基づいて派生されたアクセス要求ＳＲＥＱを空きのエントリＳＥＮＴに出力する。要求保持部２２０は、設定通知ＦＳＥＴ前に保持されたアクセス要求ＮＲＥＱがなくなったことに基づいて、回避通知ＡＶＩＤを調停部２４０に出力する。調停部２４０は、回避通知ＡＶＩＤを受け、設定解除ＦＲＳＴを要求保持部２２０に出力する。
【００３９】
状態（ｌ）において、演算処理部２１０は、要求保持部２２０の空きのエントリＮＥＮＴにアクセス要求ＮＲＥＱを格納する。要求保持部２２０は、解除通知ＦＲＳＴを受けた後、フラグＮをリセットする。これにより、次に設定通知ＦＳＥＴを受けるまでの期間、アクセス要求ＮＲＥＱは新旧の区別なくエントリＮＥＮＴに保持される。調停部２４０は、要求保持部２３０に保持されたアクセス要求ＳＲＥＱを選択し、処理部２５０は、アクセス要求ＳＲＥＱに基づいて記憶装置３００にアクセスする処理を実行する。
【００４０】
以上、この実施形態では、所定時間を超えて処理されないアクセス要求ＮＲＥＱが存在する場合に、新たに保持するアクセス要求ＮＲＥＱの出力を抑止する一方で、要求保持部２３０に保持されたアクセス要求ＳＲＥＱの選択には制限を設けない。これにより、古いアクセス要求ＮＲＥＱを新しいアクセス要求ＮＲＥＱに比べて優先的に処理できる。また、派生要求であるアクセス要求ＳＲＥＱの発生の頻度を従来に比べて下げることができ、アクセス要求ＳＲＥＱをエントリＳＥＮＴに溜めにくくできる。
【００４１】
したがって、派生要求であるアクセス要求ＳＲＥＱの処理が進まない不具合を抑制でき、アクセス要求ＮＲＥＱの処理が滞ることを回避できる。この結果、古いアクセス要求ＮＲＥＱが処理されないことで演算処理部２１０がハングアップする確率を従来に比べて下げることができ、情報処理装置１００および演算処理装置２００の性能の低下を抑制できる。
【００４２】
図４は、別の実施形態における情報処理装置１００Ａおよび演算処理装置２００Ａの例を示している。図１と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、演算処理装置２００Ａは、図１に示した処理部２５０の代わりに、処理部２５０Ａを有する。また、演算処理装置２００Ａは、図１に示した要素に加えて、キャッシュメモリ部２６０Ａを有する。演算処理装置２００Ａのその他の構成は、図１と同様である。
【００４３】
処理部２５０Ａは、図１に示した処理部２５０の機能に加えて、調停部２４０から出力されるアクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２６０Ａに格納されたか否かをチェックする。すなわち、処理部２５０Ａは、キャッシュメモリ部２６０Ａのアクセスを制御する制御部の機能を有する。例えば、処理部２５０Ａは、アクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２６０Ａに格納された場合（キャッシュヒット）、記憶装置３００にアクセス要求ＲＥＱを出力せず、キャッシュメモリ部２６０Ａからデータを読み出す。キャッシュメモリ部２６０Ａから読み出されたデータは、演算処理部２１０Ａに出力される。
【００４４】
一方、処理部２５０Ａは、アクセス要求ＲＥＱに対応するデータがキャッシュメモリ部２６０Ａに格納されていない場合（キャッシュミス）、記憶装置３００にアクセス要求ＲＥＱを出力する。そして、記憶装置３００から読み出されたデータは、演算処理部２１０Ａに出力される。
【００４５】
例えば、アクセス要求ＮＲＥＱは、キャッシュメモリ部２６０Ａに対するアクセス要求であり、アクセス要求ＳＲＥＱは、アクセス要求ＮＲＥＱがキャッシュミスした場合に、記憶装置３００に出力されるアクセス要求である。図４に示した情報処理装置１００Ａおよび演算処理装置２００Ａの動作は、次の動作を除き、図２および図３の動作と同様である。すなわち、この実施形態では、キャッシュヒットが判定された場合に、アクセス要求ＮＲＥＱがキャッシュメモリ部２６０Ａに出力され、キャッシュミスが判定された場合に、アクセス要求ＮＲＥＱの代わりにアクセス要求ＳＲＥＱが記憶装置３００に出力される。
【００４６】
以上、この実施形態においても、図１から図３に示した実施形態と同様に、派生要求であるアクセス要求ＳＲＥＱの処理が進まない不具合を解消でき、アクセス要求ＮＲＥＱの処理が滞ることを回避できる。この結果、古いアクセス要求ＮＲＥＱが処理されないことで演算処理部２１０がハングアップする確率を従来に比べて下げることができ、情報処理装置１００Ａおよび演算処理装置２００Ａの性能の低下を抑制できる。
【００４７】
図５は、別の実施形態における情報処理装置１００Ｂおよび演算処理装置２００Ｂの例を示している。図１および図４と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００４８】
情報処理装置１００Ｂは、演算処理装置２００Ｂおよび記憶装置３００を有する。例えば、情報処理装置１００Ｂは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｂは、ＣＰＵ等のプロセッサである。
【００４９】
演算処理装置２００Ｂは、複数のコア部ＣＯＲＥ（ＣＯＲＥ１、ＣＯＲＥ２）、ポートＰＴ（ＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２、ＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２）、調停部２４０Ｂ、キャッシュメモリ制御部２５０Ｂ、キャッシュタグ部２６０Ｂ、Ｌ２キャッシュメモリ２７０Ｂ、メモリアクセスコントローラ２８０ＢおよびデータバッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３を有する。
【００５０】
図５において、二点鎖線で囲った領域は、Ｌ２キャッシュ部２０２Ｂを示している。すなわち、Ｌ２キャッシュ部２０２Ｂは、ポートＰＴ、調停部２４０Ｂ、キャッシュメモリ制御部２５０Ｂ、キャッシュタグ部２６０Ｂ、Ｌ２キャッシュメモリ２７０Ｂ、メモリアクセスコントローラ２８０ＢおよびデータバッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３を有する。
【００５１】
各コア部ＣＯＲＥは、例えば、符号Ｌ１で示したＬ１キャッシュ部を含むＣＰＵコアである。Ｌ１キャッシュ部は、Ｌ１キャッシュメモリと、Ｌ１キャッシュメモリのアクセスを制御するキャッシュメモリ制御部とを有する。例えば、Ｌ１キャッシュメモリは、ロード命令およびストア命令等で扱われるデータを格納するデータキャッシュと、プリフェッチ命令に対応するプログラムを格納する命令キャッシュとを有する。コア部ＣＯＲＥは、演算処理部の一例である。
【００５２】
コア部ＣＯＲＥ１は、アクセス要求ＮＲＥＱ１をポートＭＩＰ１に出力し、アクセス要求ＮＲＥＱ３をポートＰＦＰ１に出力し、アクセス要求ＳＲＥＱ１をポートＭＯＰ１に出力する。コア部ＣＯＲＥ２は、アクセス要求ＮＲＥＱ２をポートＭＩＰ２に出力し、アクセス要求ＮＲＥＱ４をポートＰＦＰ２に出力し、アクセス要求ＳＲＥＱ２をポートＭＯＰ２に出力する。
【００５３】
例えば、アクセス要求ＮＲＥＱ１、ＮＲＥＱ２は、ロード命令およびストア命令等のコア部ＣＯＲＥで扱うデータの入出力要求である。ロード命令は、Ｌ１キャッシュメモリ、Ｌ２キャッシュメモリ２７０Ｂまたは記憶装置３００から読み出されるデータを、コア部ＣＯＲＥのレジスタに格納する命令である。Ｌ１キャッシュ部は、ロード命令に対応するデータがＬ１キャッシュメモリにない場合（キャッシュミス）、Ｌ２キャッシュ部２０２Ｂにロード命令を出力する。
【００５４】
ストア命令は、コア部ＣＯＲＥにより処理されたデータをＬ１キャッシュメモリに格納する命令である。Ｌ１キャッシュ部は、ストア命令に対応するデータの領域を含むキャッシュラインがＬ１キャッシュメモリに確保されていない場合（キャッシュミス）、Ｌ２キャッシュ部２０２Ｂにストア命令を出力する。
【００５５】
Ｌ１キャッシュ部からストア命令を受けたＬ２キャッシュ部２０２Ｂは、ストア命令に対応するデータ（キャッシュライン）をＬ２キャッシュメモリ２７０Ｂまたは記憶装置３００から読み出し、読み出したデータをＬ１キャッシュ部に出力する。このように、コア部ＣＯＲＥがＬ２キャッシュ部２０２Ｂに出力するロード命令およびストア命令は、Ｌ２キャッシュメモリ２７０Ｂまたは記憶装置３００からデータを読み出す命令である。
【００５６】
例えば、アクセス要求ＮＲＥＱ３、ＮＲＥＱ４は、各コア部ＣＯＲＥが実行するプログラムを記憶装置３００からＬ２キャッシュメモリ２７０Ａに予め読み込むプリフェッチ命令である。なお、後述するように、記憶装置３００へのアクセスは、Ｌ２キャッシュメモリ２７０Ｂのキャッシュミス時に、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４から派生的に生成されるアクセス要求ＳＲＥＱ３、ＳＲＥＱ４により実行される。
【００５７】
例えば、アクセス要求ＳＲＥＱ１、ＳＲＥＱ２は、Ｌ１キャッシュメモリに格納されたデータをＬ２キャッシュメモリ２７０Ｂおよび記憶装置３００に転送し、Ｌ１キャッシュメモリの領域を空ける書き戻し命令である。コア部ＣＯＲＥは、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４の処理によりコア部ＣＯＲＥに転送されるデータを格納する領域がＬ１キャッシュメモリにない場合にアクセス要求ＳＲＥＱ１、ＳＲＥＱ２を出力する。すなわち、アクセス要求ＳＲＥＱ１、ＳＲＥＱ２は、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４から派生的に生成される派生アクセス要求である。
【００５８】
例えば、アクセス要求ＳＲＥＱ３、ＳＲＥＱ４は、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４に基づくＬ２キャッシュメモリ２７０Ｂのキャッシュミス時に、キャッシュメモリ制御部２５０Ｂにより生成される。すなわち、アクセス要求ＳＲＥＱ３、ＳＲＥＱ４は、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４から派生的に生成される派生アクセス要求である。
【００５９】
キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂから受けるアクセス要求ＳＲＥＱ３、ＳＲＥＱ４に基づいて、メモリアクセスコントローラ２８０Ｂを介して記憶装置３００にアクセスする。アクセス要求ＳＲＥＱ３に基づいて記憶装置３００から読み出されたデータは、ポートＭＩＢＰ１に対応するデータバッファＢＵＦ１に保持される。アクセス要求ＳＲＥＱ４に基づいて記憶装置３００から読み出されたデータは、ポートＭＩＢＰ２に対応するデータバッファＢＵＦ２に保持される。
【００６０】
以降の説明では、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４をアクセス要求ＮＲＥＱとも称し、アクセス要求ＳＲＥＱ１−ＳＲＥＱ４をアクセス要求ＳＲＥＱとも称する。また、アクセス要求ＮＲＥＱ１−ＮＲＥＱ４、ＳＲＥＱ１−ＳＲＥＱ４をアクセス要求ＲＥＱとも称する。
【００６１】
ポートＭＩＰ１（Move In Port）は、コア部ＣＯＲＥ１からのアクセス要求ＮＲＥＱ１を保持する複数のエントリＮＥＮＴ（図６）を有する。ポートＰＦＰ１（Pre Fetch Port）は、コア部ＣＯＲＥ１からのアクセス要求ＮＲＥＱ３を保持する複数のエントリＮＥＮＴを有する。ポートＭＩＰ２は、コア部ＣＯＲＥ２からのアクセス要求ＮＲＥＱ２を保持する複数のエントリＮＥＮＴを有する。ポートＰＦＰ２は、コア部ＣＯＲＥ２からのアクセス要求ＮＲＥＱ４を保持する複数のエントリＮＥＮＴを有する。ポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２は、要求保持部の一例である。ポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２の例は、図６に示す。
【００６２】
ポートＭＯＰ１（Move Out Port）は、コア部ＣＯＲＥ１からのアクセス要求ＳＲＥＱ１を保持する複数のエントリＳＥＮＴ（図７）を有する。ポートＭＯＰ２は、コア部ＣＯＲＥ２からのアクセス要求ＳＲＥＱ２を保持する複数のエントリＳＥＮＴを有する。ポートＭＩＢＰ１（Move In Buffer Port）は、キャッシュメモリ制御部２５０Ｂから出力されるアクセス要求ＳＲＥＱ３を保持する複数のエントリＳＥＮＴを有する。ポートＭＩＢＰ２は、キャッシュメモリ制御部２５０Ｂから出力されるアクセス要求ＳＲＥＱ４を保持する複数のエントリＳＥＮＴを有する。ポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＰＢ２は、派生要求保持部の一例である。
【００６３】
データバッファＢＵＦ１、ＢＵＦ２に保持されたデータは、Ｌ２キャッシュメモリ２７０ＢおよびＬ１キャッシュメモリに出力され、格納される。但し、プリフェッチ命令であるアクセス要求ＮＲＥＱ３、ＮＲＥＱ４に基づいてアクセス要求ＳＲＥＱ３、ＳＲＥＱ４が派生された場合、データバッファＢＵＦ１（またはＢＵＦ２）に保持されたデータは、Ｌ２キャッシュメモリ２７０Ｂに出力されるが、Ｌ１キャッシュメモリに格納されない。なお、ポートＭＩＢＰ１とデータバッファＢＵＦ１とを合わせてポートＭＩＢ１とも称する場合があり、ポートＭＩＢＰ２とデータバッファＢＵＦ２とを合わせてポートＭＩＢ２と称する場合がある。
【００６４】
調停部２４０Ｂは、ポートＰＴにそれぞれ保持されたアクセス要求ＲＥＱを調停し、キャッシュメモリ制御部２７０Ｂに出力する。例えば、調停部２４０Ｂは、ラウンドロビン等の手法を用いて、ポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２、ＭＯＰ１、ＭＯＰ３、ＭＩＰＢ１、ＭＩＰＢ２に保持されたアクセス要求ＲＥＱを順次に選択する。また、調停部２４０Ｂは、各ポートＰＴからの警告通知ＷＡＲＭ（図６）、ＷＡＲＭＳ（図７）に基づいて設定通知ＦＳＥＴ（図８）をポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２に出力する。調停部２４０Ｂは、各ポートＰＴからの回避通知ＡＶＩＤ（図６）、ＡＶＩＤＳ（図７）に基づいて解除通知ＦＲＳＴ（図８）をポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２に出力する。例えば、設定通知ＦＳＥＴは、フラグ信号ＦＬＧ（図８）のハイレベルにより示され、解除通知ＦＲＳＴは、フラグ信号ＦＬＧのロウレベルにより示される。調停回路２４０Ｂの例は図８に示す。
【００６５】
キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂにより調停されたアクセス要求ＮＲＥＱに含まれるアドレス情報をキャッシュタグ２６０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、キャッシュタグ２６０Ｂから読み出される情報に基づいてＬ２キャッシュメモリ２７０Ｂのキャッシュヒット／キャッシュミスを判定する。キャッシュメモリ制御部２５０Ｂは、キャッシュヒットを判定した場合、Ｌ２キャッシュメモリ２７０Ｂからデータを読み出して、アクセス要求ＮＲＥＱを発行したコア部ＣＯＲＥに読み出したデータを出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱのキャッシュミスを判定した場合、メモリアクセスコントローラ２８０Ｂにアクセス要求を出力する。
【００６６】
また、キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂにより調停されたアクセス要求ＳＲＥＱ１、ＳＲＥＱ２（書き戻し命令）に含まれるアドレス情報をキャッシュタグ２６０Ｂに出力し、Ｌ２キャッシュメモリ２７０Ｂのキャッシュヒット／キャッシュミスを判定する。キャッシュメモリ制御部２５０Ｂは、キャッシュヒットを判定した場合、アクセス要求ＳＲＥＱ１、ＳＲＥＱ２に対応してコア部ＣＯＲＥから出力され、データバッファＢＵＦ３に保持されたデータを、Ｌ２キャッシュメモリ２７０Ａに書き込む。キャッシュメモリ制御部２５０Ｂは、キャッシュミスを判定した場合、アクセス要求ＳＲＥＱ１、ＳＲＥＱ２に含まれるアドレス情報をキャッシュタグ２６０Ａに登録して新たなキャッシュラインを確保する。そして、キャッシュメモリ制御部２５０Ｂは、データバッファＢＵＦ３に保持されたデータを確保したキャッシュラインに書き込む。さらに、キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ１、ＳＲＥＱ２に含まれるアドレス情報をメモリアクセスコントローラ２８０Ａに出力し、データバッファＢＵＦ３に保持されたデータを記憶装置３００に書き込んでもよい。
【００６７】
キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂにより調停されたアクセス要求ＳＲＥＱ３に含まれるアドレス情報をメモリアクセスコントローラ２８０Ｂに出力する。メモリアクセスコントローラ２８０Ｂは、アクセス要求ＳＲＥＱ３に基づいて記憶装置３００にアクセスし、記憶装置３００から読み出されるデータをデータバッファＢＵＦ１に書き込む。キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂにより調停されたアクセス要求ＳＲＥＱ４に含まれるアドレス情報をメモリアクセスコントローラ２８０Ｂに出力する。メモリアクセスコントローラ２８０Ｂは、アクセス要求ＳＲＥＱ４に基づいて記憶装置３００にアクセスし、記憶装置３００から読み出されるデータをデータバッファＢＵＦ２に書き込む。
【００６８】
さらに、キャッシュメモリ制御部２５０Ｂは、Ｌ２キャッシュメモリ２７０ＢまたはデータバッファＢＵＦ１、ＢＵＦ２からコア部ＣＯＲＥにデータが転送される場合に、アクセス要求ＲＥＱの完了応答を示す完了信号ＦＩＮを、アクセス要求ＲＥＱを出力したコア部ＣＯＲＥに出力する。また、キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ、ＳＲＥＱを受け付けた場合に、アクセス要求ＮＲＥＱ、ＳＲＥＱを出力したポートＰＴにリセット信号ＲＳＴを出力する。リセット信号ＲＳＴを受けたポートＰＴは、対応するアクセス要求ＮＲＥＱ、ＳＲＥＱを無効にする。
【００６９】
例えば、アクセス要求ＮＲＥＱに対応するリセット信号ＲＳＴは、キャッシュヒットの場合にＬ２キャッシュメモリ２７０Ｂへのアクセスに基づいて出力され、キャッシュミスの場合に派生命令であるアクセス要求ＳＲＥＱの出力に基づいて出力される。アクセス要求ＳＲＥＱに対応するリセット信号ＲＳＴは、キャッシュメモリ制御部２５０Ｂからメモリアクセスコントローラ２８０Ｂへのアクセス要求の出力に基づいて出力される。
【００７０】
メモリアクセスコントローラ２８０Ｂは、キャッシュメモリ制御部２５０Ｂからのアクセス要求ＳＲＥＱ１、ＳＲＥＱ２に基づいて、記憶装置３００に書き込み動作を実行させるアクセス信号（書き込み要求）を記憶装置３００に出力する。メモリアクセスコントローラ２８０Ｂは、キャッシュメモリ制御部２５０Ｂからのアクセス要求ＳＲＥＱ３、ＳＲＥＱ４に基づいて、記憶装置３００に読み出し動作を実行させるアクセス信号（読み出し要求）を記憶装置３００に出力する。
【００７１】
なお、メモリアクセスコントローラ２８０Ｂは、演算処理装置２００Ｂの外部に配置されてもよい。また、キャッシュメモリ制御部２５０Ｂが記憶装置３００のアクセスを制御する機能を有する場合、記憶装置３００は、メモリアクセスコントローラ２８０Ｂを介することなくキャッシュメモリ制御部２５０Ｂに接続されてもよい。この場合、演算処理装置２００Ｂは、メモリアクセスコントローラ２８０Ｂを持たなくてよい。以降の実施形態でも同様に、メモリアクセスコントローラ２８０Ｂは、演算処理装置の外部に配置されてもよく、情報処理装置内に存在しなくてもよい。
【００７２】
図６は、図５に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２の例を示している。ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２は、互いに同一または同様の構成であるため、ここでは、ポートＭＩＰ１について説明する。ポートＭＩＰ１は、ポート部ＰＯＲＴＮ、発行制御部ＲＥＱＣＮＴ、エントリ選択部ＥＳＥＬ、チェック回路ＣＨＫＮ、分周回路ＤＩＶおよびカウンタＣＯＵＮＴを有する。
【００７３】
ポート部ＰＯＲＴＮは、図６に太枠で示すように、例えば、アクセス要求ＮＲＥＱ１を保持する４つのエントリＮＥＮＴを有する。なお、エントリＮＥＮＴの数は４つに限定されない。各エントリＮＥＮＴは、データが格納された記憶装置３００の記憶領域を示すアドレスが格納されるアドレス領域ＡＤＲ、フラグＶおよびフラグＮを有する。例えば、各アドレス領域は３２ビットであり、各フラグＶは１ビットであり、各フラグＮは１ビットである。
【００７４】
フラグＶは、アドレス領域ＡＤＲに格納されたアドレスが有効か無効かを示す。すなわち、フラグＶがセットされたエントリＮＥＮＴのアドレス領域ＡＤＲは、有効なアクセス要求ＮＲＥＱ１のアドレスが格納される。図５に示した調停部２４０Ｂは、フラグＶがセットされたエントリＮＥＮＴのいずれかを選択する。フラグＮは、例えば、フラグ信号ＦＬＧのハイレベル期間に、新たに受けたアクセス要求ＮＲＥＱ１に対応してセットされる。
【００７５】
発行制御部ＲＥＱＣＮＴは、各エントリＮＥＮＴに対応してマスク回路ＭＳＫおよびバッファＢＵＦを有する。マスク回路ＭＳＫは、調停部２４０Ｂからのフラグ信号ＦＬＧがハイレベルで、フラグＮがハイレベルにセットされた場合に、対応するフラグＶのレベルに拘わらず、バッファＢＵＦのイネーブル端子ＥＮにロウレベルに設定する。各マスク回路ＭＳＫは、ＮＡＮＤ回路およびＡＮＤ回路を有する。マスク回路ＭＳＫは、フラグ信号ＦＬＧがロウレベル、またはフラグＮがロウレベルにリセットされた場合に、対応するフラグＶのレベルをバッファＢＵＦのイネーブル端子ＥＮに設定する。
【００７６】
なお、フラグ信号ＦＬＧがロウレベルの期間に、フラグＮがリセットされる場合、図２３に示すように、各マスク回路ＭＳＫは、フラグＮの論理を反転し、反転した論理をＡＮＤ回路の入力に出力するインバータＩＶを、ＮＡＮＤ回路の代わりに有してもよい。この場合、マスク回路ＭＳＫは、フラグ信号ＦＬＧを受けることなく、バッファＢＵＦのイネーブル端子ＥＮを制御できる。
【００７７】
バッファＢＵＦは、イネーブル端子ＥＮでハイレベルを受ける期間に、アドレス領域ＡＤＲに格納されたアドレスをエントリ選択部ＥＳＥＬに出力する。バッファＢＵＦは、イネーブル端子ＥＮでロウレベルを受ける期間に、アドレスのエントリ選択部ＥＳＥＬへの出力を禁止する。
【００７８】
すなわち、発行制御部ＲＥＱＣＮＴは、フラグ信号ＦＬＧがハイレベルの期間に、フラグＮがリセットされ、フラグＶがセットされたエントリＮＥＮＴのアドレスを、エントリ選択部ＥＳＥＬに出力する。また、発行制御部ＲＥＱＣＮＴは、フラグ信号ＦＬＧがハイレベルの間、フラグＮおよびフラグＶがセットされたエントリＮＥＮＴのアドレスのエントリ選択部ＥＳＥＬへの出力を抑止する。さらに、発行制御部ＲＥＱＣＮＴは、フラグ信号ＦＬＧがロウレベルの期間に、フラグＮのレベルに拘わらず、フラグＶがセットされたエントリＮＥＮＴのアドレスをエントリ選択部ＥＳＥＬに出力する。
【００７９】
エントリ選択部ＥＳＥＬは、例えば、ラウンドロビン等の手法を用いて、バッファＢＵＦからそれぞれ出力されるアドレスを順次に選択し、選択したアドレスをアクセス要求ＮＲＥＱＳ１として調停部２４０Ｂに出力する。なお、ポートＭＩＰ２のエントリ選択部ＥＳＥＬは、アクセス要求ＮＲＥＱＳ２を調停部２４０Ｂに出力する。ポートＰＦＰ１のエントリ選択部ＥＳＥＬは、アクセス要求ＮＲＥＱＳ３を調停部２４０Ｂに出力する。ポートＰＦＰ２のエントリ選択部ＥＳＥＬは、アクセス要求ＮＲＥＱＳ４を調停部２４０Ｂに出力する。
【００８０】
チェック回路ＣＨＫＮは、例えば、ラウンドロビン等の手法を用いて、フラグＶをチェックするエントリＮＥＮＴを順次選択する。チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがロウレベルの期間に、着目する１つのエントリＮＥＮＴのフラグＶのセットを検出した場合に、カウンタＣＯＵＮＴにカウント動作を開始させる起動信号ＳＴＴ１を出力する。あるいは、チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがハイレベルからロウレベルに変化したタイミングで、着目する１つのエントリＮＥＮＴのフラグＶがセットされたことを検出した場合に起動信号ＳＴＴ１を出力する。
【００８１】
チェック回路ＣＨＫＮは、図５に示したキャッシュメモリ制御部２５０Ｂからのセット信号ＲＳＴに基づいて、対応するアクセス要求ＮＲＥＱ１を出力したエントリＮＥＮＴのフラグＶをリセットする。チェック回路ＣＨＫＮは、着目する１つのエントリＮＥＮＴのフラグＶがリセットされた場合に、カウンタＣＯＵＮＴの動作を停止させ、カウンタ値をリセットする。この後、チェック回路ＣＨＫＮは、次のエントリＮＥＮＴを選択し、フラグＶのセットを検出した場合に、起動信号ＳＴＴ１を出力し、カウンタＣＯＵＮＴにカウント動作を開始させる。
【００８２】
また、チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがハイレベルの期間に、フラグＶのセットを検出した場合に、対応するフラグＮをセットする。チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがハイレベルの期間に、警告通知ＷＡＲＮ１の出力の起因となったエントリＮＥＮＴのフラグＶがリセットされた場合、回避通知ＡＶＩＤ１を調停部２４０Ｂに出力する。すなわち、チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがハイレベルの期間に、選択したエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱが処理された場合に回避通知ＡＶＩＤ１を出力する。
【００８３】
さらに、チェック回路ＣＨＫＮは、回避通知ＡＶＩＤ１に応答してフラグ信号ＦＬＧがロウレベルに変化したことに基づいて、全てのフラグＮをリセットする。なお、ポートＭＩＰ２のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤ２を調停部２４０Ｂに出力する。ポートＰＦＰ１のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤ３を調停部２４０Ｂに出力する。ポートＰＦＰ２のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤ４を調停部２４０Ｂに出力する。
【００８４】
分周回路ＤＩＶは、クロックＣＬＫの周波数を分周して、カウンタＣＯＵＮＴに出力する。カウンタＣＯＵＮＴは、チェック回路ＣＨＫＮからの起動信号ＳＴＴ１に応答して、周波数が分周されたクロックに同期してカウント動作する。カウンタＣＯＵＮＴは、カウンタ値が所定値に達した場合、警告通知ＷＡＲＮ１を調停部２４０Ｂに出力する。すなわち、カウンタＣＯＵＮＴは、着目する１つのエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が格納されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ１を調停部２４０Ｂに出力する。分周回路ＤＩＶおよびカウンタＣＯＵＮＴは、起動信号ＳＴＴ１に応答して時間の計測を開始し、所定時間Ｔｍａｘを超えた場合に警告通知ＷＡＲＮ１を出力するタイマとして機能する。
【００８５】
なお、ポートＭＩＰ２のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮ２を調停部２４０Ｂに出力する。ポートＰＦＰ１のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮ３を調停部２４０Ｂに出力する。ポートＰＦＰ２のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮ４を調停部２４０Ｂに出力する。
【００８６】
図７は、図５に示したポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２の例を示している。ポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２は、互いに同一または同様の構成であるため、ここでは、ポートＭＩＢＰ１について説明する。ポートＭＩＢＰ１は、ポート部ＰＯＲＴＳ、エントリ選択部ＥＳＥＬ、チェック回路ＣＨＫＳ、分周回路ＤＩＶおよびカウンタＣＯＵＮＴを有する。なお、ポートＭＩＢＰ１は、図６に示したポートＭＩＰ１の制御部ＣＮＴおよび発行制御部ＲＥＱＣＮＴを有していない。
【００８７】
ポート部ＰＯＲＴＳは、図７に太枠で示すように、例えば、アクセス要求ＳＲＥＱ１を保持する４つのエントリＳＥＮＴを有する。なお、エントリＳＥＮＴの数は４つに限定されない。各エントリＳＥＮＴは、データが格納された記憶装置３００の記憶領域を示すアドレスが格納されるアドレス領域ＡＤＲおよびフラグＶを有する。フラグＶは、アドレス領域ＡＤＲに格納されたアドレスが有効か無効かを示す。例えば、各アドレス領域は３２ビットであり、各フラグＶは１ビットである。
【００８８】
エントリ選択部ＥＳＥＬは、アドレス領域ＡＤＲに格納されたアドレスを図６に示したバッファＢＵＦを介することなく受けることを除き、図６に示したエントリ選択部ＥＳＥＬと同一または同様である。すなわち、エントリ選択部ＥＳＥＬは、ラウンドロビン等の手法を用いて、アドレス領域ＡＤＲから出力されるアドレスを順次に選択し、選択したアドレスをアクセス要求ＳＲＥＱＳ１として調停部２４０Ｂに出力する。なお、ポートＭＯＰ２のエントリ選択部ＥＳＥＬは、アクセス要求ＳＲＥＱＳ２を調停部２４０Ｂに出力する。ポートＭＩＢＰ１のエントリ選択部ＥＳＥＬは、アクセス要求ＳＲＥＱＳ３を調停部２４０Ｂに出力する。ポートＭＩＢＰ２のエントリ選択部ＥＳＥＬは、アクセス要求ＳＲＥＱＳ４を調停部２４０Ｂに出力する。
【００８９】
チェック回路ＣＨＫＳは、例えば、ラウンドロビン等の手法を用いて、フラグＶをチェックするエントリＳＥＮＴを順次選択する。チェック回路ＣＨＫＳは、選択したエントリＳＥＮＴのフラグＶのセットを検出した場合に、カウンタＣＯＵＮＴにカウント動作を開始させる起動信号ＳＴＴ２を出力する。チェック回路ＣＨＫＳは、図５に示したキャッシュメモリ制御部２５０Ｂからのセット信号ＲＳＴに基づいて、対応するアクセス要求ＳＲＥＱ１を出力したエントリＳＥＮＴのフラグＶをリセットする。
【００９０】
チェック回路ＣＨＫＳは、フラグＶがセットされたエントリＳＥＮＴのうち、選択したエントリＳＥＮＴのリセットを検出した場合に、カウンタＣＯＵＮＴをリセットする。この後、チェック回路ＣＨＫＳは、次のエントリＳＥＮＴを選択し、フラグＶのセットを検出した場合に、カウンタＣＯＵＮＴにカウント動作を開始させる。
【００９１】
チェック回路ＣＨＫＳは、警告通知ＷＡＲＮＳ１の出力の起因となったフラグＶがリセットされた場合、回避通知ＡＶＩＤＳ１を調停部２４０Ｂに出力する。すなわち、チェック回路ＣＨＫＳは、選択したエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱが処理された場合に回避通知ＡＶＩＤＳ１を出力する。
【００９２】
なお、ポートＭＯＰ２のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤＳ２を調停部２４０Ｂに出力する。ポートＭＩＢＰ１のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤＳ３を調停部２４０Ｂに出力する。ポートＭＩＢＰ２のチェック回路ＣＨＫＮは、回避通知ＡＶＩＤＳ４を調停部２４０Ｂに出力する。
【００９３】
分周回路ＤＩＶおよびカウンタＣＯＵＮＴは、図６に示した分周回路ＤＩＶおよびカウンタＣＯＵＮＴと同一または同様である。すなわち、カウンタＣＯＵＮＴは、チェック回路ＣＨＫＳからの起動信号ＳＴＴ２に応答して、周波数が分周されたクロックに同期してカウント動作する。カウンタＣＯＵＮＴは、カウンタ値が所定値に達した場合、警告通知ＷＡＲＮＳ１を調停部２４０Ｂに出力する。
【００９４】
すなわち、カウンタＣＯＵＮＴは、着目する１つのエントリＳＥＮＴにアクセス要求ＳＲＥＱ３が格納されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮＳ１を調停部２４０Ｂに出力する。分周回路ＤＩＶおよびカウンタＣＯＵＮＴは、起動信号ＳＴＴ２に応答して時間の計測を開始し、所定時間Ｔｍａｘを超えた場合に警告通知ＷＡＲＮ１Ｓを出力するタイマとして機能する。
【００９５】
なお、ポートＭＯＰ２のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮＳ２を調停部２４０Ｂに出力する。ポートＭＩＢＰ１のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮＳ３を調停部２４０Ｂに出力する。ポートＭＩＢＰ２のカウンタＣＯＵＮＴは、警告通知ＷＡＲＮＳ４を調停部２４０Ｂに出力する。
【００９６】
図８は、図５に示した調停部２４０Ｂの例を示している。調停部２４０Ｂは、フラグセット信号ＦＳＥＴ０の生成回路ＳＥＴＧＥＮ、フラグリセット信号ＦＲＳＴ０の生成回路ＲＳＴＧＥＮおよびフリップフロップＦＦを有する。生成回路ＳＥＴＧＥＮは、例えば、オア回路を含み、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４の少なくいずれかがハイレベルの場合に、フラグセット信号ＦＳＥＴ０をハイレベルに設定する。
【００９７】
生成回路ＲＳＴＧＥＮは、アクティブ状態の警告通知ＷＡＲＮに対応する回避通知ＡＶＩＤが全てハイレベルになった場合に、フラグリセット信号ＦＲＳＴ０をハイレベルに設定する。フリップフロップＦＦは、フラグセット信号ＦＳＥＴ０をセット端子Ｓで受け、フラグリセット信号ＦＲＳＴ０をリセット端子Ｒで受ける。フリップフロップＦＦは、フラグセット信号ＦＳＥＴ０の立ち上がりエッジに同期してフラグ信号ＦＬＧをハイレベルに設定し、フラグリセット信号ＦＲＳＴ０の立ち上がりエッジに同期してフラグ信号ＦＬＧをロウレベルに設定する。上述したように、ハイレベルのフラグ信号ＦＬＧは、設定通知ＦＳＥＴを示し、ロウレベルのフラグ信号ＦＬＧは、解除通知ＦＲＳＴを示す。
【００９８】
なお、調停部２４０Ｂは、図８に示した回路に加えて、ポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２、ＭＯＰ１、ＭＯＰ３、ＭＩＰＢ１、ＭＩＰＢ２に保持されたアクセス要求ＲＥＱを順次に選択する回路を有する。
【００９９】
図９は、図８に示した調停部２４０Ｂの動作の例を示している。この例では、警告通知ＷＡＲＮ１、ＷＡＲＮ２、ＷＡＲＮＳ１が順次にハイレベルに変化した後、回避通知ＡＶＩＤ１、ＡＶＩＤ２、ＡＶＩＤＳ３が順次にハイレベルに変化する例を示している。他の警告通知ＷＡＲＮおよび他の回避通知ＡＶＩＤは、出力されず、ロウレベルに維持される。
【０１００】
生成回路ＳＥＴＧＥＮは、最初の警告通知ＷＡＲＮ１の出力に応答して、フラグセット信号ＦＳＥＴ０をハイレベルに設定する（図９（ａ））。フリップフロップＦＦは、フラグセット信号ＦＳＥＴ０に応答してフラグ信号ＦＬＧをハイレベルに設定し、設定通知ＦＳＥＴを出力する（図９（ｂ））。
【０１０１】
この後、生成回路ＲＳＴＧＥＮは、警告通知ＷＡＲＮが出力された全てのポートＰＴから回避通知ＡＶＩＤ１、ＡＶＩＤ２、ＡＶＩＤＳ３が出力されたことに基づいて、フラグリセット信号ＦＲＳＴ０をハイレベルに設定する（図９（ｃ））。フリップフロップＦＦは、フラグリセット信号ＦＲＳＴ０に応答してフラグ信号ＦＬＧをロウレベルに設定し、解除通知ＦＲＳＴを出力する（図９（ｄ））。
【０１０２】
なお、警告通知ＷＡＲＮを出力しないポートＰＴは、回避通知ＡＶＩＤを出力しない。また、警告通知ＷＡＲＮを出力したポートＰＴは、フラグ信号ＦＬＧのハイレベルからロウレベルへの変化に基づいて、警告通知ＷＡＲＮおよび回避通知ＡＶＩＤをロウレベルにリセットする（図９（ｅ）、（ｆ））。
【０１０３】
図１０は、図５に示したポートＭＩＰ１にアクセス要求ＮＲＥＱ１が供給される場合の情報処理装置１００Ｂおよび演算処理装置２００Ｂの動作の例を示している。すなわち、図１０は、情報処理装置１００Ｂおよび演算処理装置２００Ｂの制御方法の例を示している。図１０に示したフローは、例えば、ハードウエアにより実現される。なお、図１０に示す各ステップは、動作を分かりやすくするための区分けであり、実際には、演算処理装置２００Ｂのハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１０４】
ポートＭＩＰ２にアクセス要求ＮＲＥＱ２が供給される場合の動作、ポートＰＦＰ１にアクセス要求ＮＲＥＱ３が供給される場合の動作、およびポートＰＦＰ２にアクセス要求ＮＲＥＱ４が供給される場合の動作も、図１０と同様である。また、図１０の動作が開始される前に、コア部ＣＯＲＥ１は、少なくとも１つのアクセス要求ＮＲＥＱ１をポートＭＩＰ１のエントリＮＥＮＴに格納し、アクセス要求ＮＲＥＱ１を格納したエントリＮＥＮＴのフラグＶを”１”にセットするものとする。例えば、図１０に示すフローは、図６に示したポートＭＩＰ１のエントリ選択部ＥＳＥＬがアクセス要求ＮＲＥＱ１の１つを選択する頻度と同様の頻度で繰り返し実行される。
【０１０５】
まず、ステップＳ１０において、ポートＭＩＰ１は、着目する１つのエントリＮＥＮＴのフラグＮ、Ｖの状態、フラグ信号ＦＬＧの状態、およびカウンタＣＯＵＮＴの値をチェックする。そして、ポートＭＩＰ１は、警告通知ＷＡＲＮ１または回避通知ＡＶＩＤ１を出力するか否かを判断する。また、ステップＳ１０では、調停部２４０Ｂは、警告通知ＷＡＲＮ１および回避通知ＡＶＩＤ１に基づいて、フラグ信号ＦＬＧのレベルを決定する。ステップＳ１０の例は、図１１に示す。
【０１０６】
次に、ステップＳ１２において、ポートＭＩＰ１の発行制御部ＲＥＱＣＮＴは、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかに基づいて調停部２４０Ｂからハイレベルのフラグ信号ＦＬＧを受けたか否かを判断する。警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかに基づくハイレベルのフラグ信号ＦＬＧを受けた場合、発行制御部ＲＥＱＣＮＴは、ステップＳ１４の動作を実行する。警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかも出力されず、ロウレベルのフラグ信号ＦＬＧを受けた場合、発行制御部ＲＥＱＣＮＴは、ステップＳ１６の動作を実行する。
【０１０７】
ステップＳ１４において、発行制御部ＲＥＱＣＮＴは、フラグＮが”０”にリセットされ、フラグＶが”１”にセットされたエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１をエントリ選択部ＥＳＥＬに出力する。すなわち、警告通知ＷＡＲＮ１に基づいてフラグ信号ＦＬＧがハイレベルに設定された場合、ポートＭＩＰ１は、フラグＮがセットされていないアクセス要求ＮＲＥＱ１を調停部２４０Ｂに出力する。例えば、発行制御部ＲＥＱＣＮＴから出力されるアクセス要求ＮＲＥＱ１は、アドレス領域ＡＤＲに保持されたアドレスである。
【０１０８】
このように、警告通知ＷＡＲＮ１が出力された後にエントリＮＥＮＴに投入されたアクセス要求ＮＲＥＱ１は、調停部２４０Ｂに出力されない。すなわち、警告通知ＷＡＲＮ１の前にエントリに投入されたアクセス要求ＮＲＥＱ１と、警告通知ＷＡＲＮ１の後にエントリに投入されたアクセス要求ＮＲＥＱ１とは、フラグＮにより互いに区別される。
【０１０９】
一方、ステップＳ１６において、発行制御部ＲＥＱＣＮＴは、フラグＮの値に拘わらず、フラグＶが”１”にセットされたエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１をエントリ選択部ＥＳＥＬに出力する。エントリ選択部ＥＳＥＬは、発行制御部ＲＥＱＣＮＴから受けるアクセス要求ＮＲＥＱ１の１つを調停部２４０Ｂに出力する。
【０１１０】
ステップＳ１８において、アクセス要求ＮＲＥＱ１が、調停部２４０Ｂにより選択され、キャッシュメモリ制御部２５０Ｂに出力された場合、ステップＳ２０の動作に移行される。調停部２４０Ｂにより選択されたアクセス要求ＮＲＥＱ１は、キャッシュメモリ制御部２５０Ｂに出力される。アクセス要求ＮＲＥＱ１が調停部２４０Ｂにより選択されない場合、動作は完了する。
【０１１１】
ステップＳ２０において、キャッシュメモリ制御部２５０Ｂは、調停部２４０Ｂにより選択されたアクセス要求ＮＲＥＱ１が処理可能か否かを判定する。処理可能な場合、ステップＳ２２の動作に移行される。処理可能でない場合、アクセス要求ＮＲＥＱ１はアボートされ、動作は完了する。ここで、アボートとは、アクセス要求ＮＲＥＱ１に対応するアクセス処理が実行されない状態である。アクセス要求ＮＲＥＱ１がアボートされた場合、アクセス要求ＮＲＥＱ１に対応するデータは読み出されず、ポートＭＩＰ１は、アクセス要求ＮＲＥＱ１を保持し続ける。他のポートに保持されたアクセス要求のアボートも同様である。
【０１１２】
ステップＳ２２において、キャッシュメモリ制御部２５０Ｂは、受けたアクセス要求ＮＲＥＱ１に基づいて、Ｌ２キャッシュメモリ２７０Ｂのキャッシュヒット／キャッシュミスを判定する。ステップＳ２４において、キャッシュヒットの場合、ステップＳ２６の動作に移行され、キャッシュミスの場合、図１２に示すステップＳ４０の動作に移行される。
【０１１３】
次に、ステップＳ２６において、キャッシュメモリ制御部２５０Ｂは、Ｌ２キャッシュメモリ２７０Ｂからデータを読み出し、読み出したデータをコアＣＯＲＥ１に出力する。次に、ステップＳ２８において、キャッシュメモリ制御部２５０Ｂは、データの読み出しの完了に基づいて、アクセス要求ＮＲＥＱ１を保持したポートＭＩＰ１にリセット信号ＲＳＴを出力する。
【０１１４】
そして、ステップＳ３０において、ポートＭＩＰ１のチェック回路ＣＨＫＮは、リセット信号ＲＳＴに基づいて、読み出し動作を実行したアクセス要求ＮＲＥＱ１を保持したエントリＮＥＮＴのフラグＶを”０”にリセットする。これにより、読み出し動作を実行したアクセス要求ＮＲＥＱ１が無効にされる。なお、ステップＳ２８、Ｓ３０は、ステップＳ２２またはステップＳ２６とともに実行されてもよい。
【０１１５】
図１１は、図１０に示したステップＳ１０の動作の例を示している。図１１の動作は、ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２のチェック回路ＣＨＫＮの各々で実行される。ここでは、ポートＭＩＰ１のチェック回路ＣＨＫＮにより実行される動作の例を説明する。
【０１１６】
まず、ステップＳ１０２において、チェック回路ＣＨＫＮは、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかが出力されたか否かを判定する。例えば、チェック回路ＣＨＫＮは、フラグ信号ＦＬＧがハイレベルに維持される場合に、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４が出力されたと判定する。警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかが出力された場合、ステップＳ１１２の動作に移行される。警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれも出力されていない場合、ステップＳ１０４の動作に移行される。
【０１１７】
ステップＳ１０４において、チェック回路ＣＨＫＮは、着目する１つのエントリＮＥＮＴのフラグＮが”０”にリセットされ、フラグＶが”１”にセットされたか否かを判定する。すなわち、着目するエントリＮＥＮＴがアクセス要求ＮＲＥＱを保持したか否かが判定される。着目するエントリＮＥＮＴがアクセス要求ＮＲＥＱを保持した場合、ステップＳ１０６の動作に移行され、着目するエントリＮＥＮＴがアクセス要求ＮＲＥＱを保持していない場合、処理は完了する。
【０１１８】
次に、ステップＳ１０６において、カウンタＣＯＵＮＴは、着目する１つのエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が保持されてからの時間Ｔが所定時間Ｔｍａｘを超えたか否かを判定する。時間Ｔが所定時間Ｔｍａｘを超えた場合、アクセス要求ＮＲＥＱ１が長時間処理されないことによりコアＣＯＲＥがハングアップする可能性があると判断され、動作はステップＳ１０８に移行される。時間Ｔが所定時間Ｔｍａｘを超えていない場合、ハングアップの可能性がないため、動作は終了する。
【０１１９】
次に、ステップＳ１０８において、カウンタＣＯＵＮＴは、アクセス要求ＮＲＥＱ１のエントリＮＥＮＴへの保持時間Ｔが所定時間Ｔｍａｘを超えたことに基づいて、警告通知ＷＡＲＮ１を調停部２４０Ｂに出力する。次に、ステップＳ１１０において、調停部２４０Ｂは、警告通知ＷＡＲＮ１に基づいて、フラグ信号ＦＬＧをロウレベルからハイレベルに変化させ、動作を完了する。なお、ハイレベルのフラグ信号ＦＬＧを受けた各ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２は、エントリＮＥＮＴに新たなアクセス要求ＮＲＥＱが格納された場合に、フラグＮをセットする。
【０１２０】
一方、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかが出力された場合、ステップＳ１１２において、チェック回路ＣＨＫＮは、ポートＭＩＰ１自身のカウンタＣＯＵＮＴから警告通知ＷＡＲＮ１が出力されたか否かを判定する。ポートＭＩＰ１自身から警告通知ＷＡＲＮ１が出力された場合、ステップＳ１１４の動作に移行され、ポートＭＩＰ１自身から警告通知ＷＡＲＮ１が出力されていない場合、動作は完了する。
【０１２１】
ステップＳ１１４において、チェック回路ＣＨＫＮは、着目する１つのエントリＮＥＮＴのフラグＮが”０”にリセットされ、フラグＶが”０”にセットされたか否かを判定する。着目するエントリＮＥＮＴがＮ＝０、Ｖ＝０の場合、警告通知ＷＡＲＮ１の起因となったアクセス要求ＮＲＥＱ１が処理されたと判断され、ステップＳ１１６の動作に移行される。着目するエントリＮＥＮＴがＮ＝０、Ｖ＝１の場合、警告通知ＷＡＲＮ１の起因となったアクセス要求ＮＲＥＱ１が未だ処理されていないと判断され、処理は完了する。
【０１２２】
ステップＳ１１６において、チェック回路ＣＨＫＮは、アクセス要求ＮＲＥＱ１の処理により、ハングアップの可能性が回避されたと判断し、回避通知ＡＶＩＤ１を調停部２４０Ｂに出力する。次に、ステップＳ１１８において、調停部２４０Ｂは、回避通知ＡＶＩＤ１を受け、フラグ信号ＦＬＧをハイレベルからロウレベルに変化させる。
【０１２３】
次に、ステップＳ１２０において、各ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２のチェック回路ＣＨＫＮは、フラグ信号ＦＬＧのハイレベルからロウレベルへの変化に基づいて、フラグＮを”０”にリセットする。これにより、警告通知ＷＡＲＮ１の後に各ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１は、次の警告通知ＷＡＲＮ１−ＷＡＲＮ４のいずれかが出力される場合に、古いアクセス要求ＮＲＥＱとして扱われる。そして、動作は完了する。
【０１２４】
図１２は、図５に示したポートＭＩＢＰ１にアクセス要求ＳＲＥＱ３が供給される場合の情報処理装置１００Ｂおよび演算処理装置２００Ｂの動作の例を示している。すなわち、図１２は、情報処理装置１００Ｂおよび演算処理装置２００Ｂの制御方法の例を示している。図１２に示したフローは、例えば、ハードウエアにより実現される。なお、図１２に示す各ステップは、動作を分かりやすくするための区分けであり、実際には、演算処理装置２００Ｂのハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１２５】
ポートＭＯＰ１にアクセス要求ＳＲＥＱ１が供給される場合の動作、ポートＭＯＰ２にアクセス要求ＳＲＥＱ２が供給される場合の動作、およびポートＭＩＢＰ２にアクセス要求ＳＲＥＱ４が供給される場合の動作も、図１２と同様である。また、図１２の動作が開始される前に、キャッシュメモリ制御部２５０Ｂは、少なくとも１つのアクセス要求ＳＲＥＱ３をポートＭＩＢＰ１のエントリＳＥＮＴに格納するものとする。さらに、図１２の動作が開始される前に、キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ３を格納したエントリＳＥＮＴのフラグＶを”１”に設定するものとする。例えば、図１２に示すフローは、図７に示したポートＭＩＢＰ１のエントリ選択部ＥＳＥＬがアクセス要求ＳＲＥＱ３の１つを選択する頻度と同様の頻度で繰り返し実行される。
【０１２６】
まず、ステップＳ４０において、ポートＭＩＢＰ１は、着目する１つのエントリＳＥＮＴのフラグＶの状態およびカウンタＣＯＵＮＴの値をチェックする。そして、ポートＭＩＢＰ１は、警告通知ＷＡＲＮＳ３または回避通知ＡＶＩＤＳ３を出力するか否かを判断する。また、調停部２４０Ｂは、警告通知ＷＡＲＮＳ３および回避通知ＡＶＩＤＳ３に基づいて、フラグ信号ＦＬＧの論理レベルを決定する。ステップＳ４０の例は、図１３に示す。
【０１２７】
次に、ステップＳ４２において、アクセス要求ＳＲＥＱ３が、調停部２４０Ｂにより選択され、キャッシュメモリ制御部２５０Ｂに出力された場合、ステップＳ４４の動作に移行される。アクセス要求ＳＲＥＱ３が調停部２４０Ｂにより選択されない場合、動作は完了する。
【０１２８】
ステップＳ４４において、キャッシュメモリ制御部２５０Ｂは、メモリアクセスコントローラ２８０Ｂにアクセス要求ＳＲＥＱ３を出力する。メモリアクセスコントローラ２８０Ｂは、キャッシュメモリ制御部２５０Ｂからのアクセス要求ＳＲＥＱ３に基づいて、記憶装置３００にアクセスし、記憶装置３００から読み出されるデータをデータバッファＢＵＦ１に出力する。
【０１２９】
次に、ステップＳ４６において、データバッファＢＵＦ１は、メモリアクセスコントローラ２８０Ｂにより格納されたデータを、Ｌ２キャッシュメモリ２７０Ｂおよびコア部ＣＯＲＥ１に出力する。但し、メモリアクセスコントローラ２８０Ｂにより格納されたデータが、プリフェッチ命令であるアクセス要求ＳＲＥＱ１に基づいて記憶装置３００から読み出された場合、データバッファＢＵＦ１は、データをコア部ＣＯＲＥ１に出力しない。
【０１３０】
次に、ステップＳ４８において、キャッシュメモリ制御部２５０Ｂは、データの読み出しの完了に基づいて、アクセス要求ＳＲＥＱ３を保持したポートＭＩＢＰ１にリセット信号ＲＳＴを出力する。例えば、データの読み出しの完了は、メモリアクセスコントローラ２８０ＢによるデータバッファＢＵＦ１へのデータの格納、またはデータバッファＢＵＦ１からのデータの出力により判定される。
【０１３１】
そして、ステップＳ５０において、ポートＭＩＢＰ１のチェック回路ＣＨＫＳは、リセット信号ＲＳＴに基づいて、アクセス要求ＳＲＥＱ３を保持したエントリＳＥＮＴのフラグＶを”０”にリセットする。これにより、アクセス要求ＳＲＥＱ３が無効にされる。そして、動作が完了する。なお、ステップＳ４８、Ｓ５０は、ステップＳ４４またはステップＳ４６とともに実行されてもよい。
【０１３２】
図１３は、図１１に示したステップＳ４０の動作の例を示している。図１１と同様の動作については、詳細な説明は省略する。図１３に示したステップＳ４０２、Ｓ４０６、Ｓ４０８、Ｓ４１０、Ｓ４１２、Ｓ４１６、Ｓ４１８は、図１０に示したステップＳ１０２、Ｓ１０６、Ｓ１０８、Ｓ１１０、Ｓ１１２、Ｓ１１６、Ｓ１１８と同様の動作である。なお、図１３の動作は、ポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２のチェック回路ＣＨＫＳの各々で実行される。ここでは、ポートＭＩＢＰ１のチェック回路ＣＨＫＳにより実行される動作の例を説明する。
【０１３３】
まず、ステップＳ４０２において、チェック回路ＣＨＫＮは、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかが出力されたか否かを判定する。警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれも出力されていない場合、ステップＳ４０４において、チェック回路ＣＨＫＳは、着目する１つのエントリＳＥＮＴのフラグＶが”１”にセットされたか否かを判定する。すなわち、着目するエントリＮＥＮＴがアクセス要求ＳＲＥＱを保持したか否かが判定される。着目するエントリＮＥＮＴがアクセス要求ＳＲＥＱを保持した場合、ステップＳ４０６の動作に移行され、着目するエントリＮＥＮＴがアクセス要求ＳＲＥＱを保持していない場合、処理は完了する。
【０１３４】
ステップＳ４０６において、カウンタＣＯＵＮＴは、着目する１つのエントリＳＥＮＴにアクセス要求ＳＲＥＱ３が保持されてからの時間Ｔが所定時間Ｔｍａｘを超えたか否かを判定する。時間Ｔが所定時間Ｔｍａｘを超えていない場合、ハングアップの可能性がないため、動作は終了する。時間Ｔが所定時間Ｔｍａｘを超えた場合、ステップＳ４０８において、カウンタＣＯＵＮＴは、警告通知ＷＡＲＮＳ３を調停部２４０Ｂに出力する。
【０１３５】
次に、ステップＳ４１０において、調停部２４０Ｂは、警告通知ＷＡＲＮＳ１に基づいて、フラグ信号ＦＬＧをロウレベルからハイレベルに変化させることで設定通知ＦＳＥＴをポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＦＰＦ２に出力し、動作を完了する。
【０１３６】
一方、警告通知ＷＡＲＮ１−ＷＡＲＮ４、ＷＡＲＮＳ１−ＷＡＲＮＳ４のいずれかが出力された場合、ステップＳ４１２において、チェック回路ＣＨＫＳは、ポートＭＩＢＰ１自身のカウンタＣＯＵＮＴから警告通知ＷＡＲＮＳ３が出力されたか否かを判定する。警告通知ＷＡＲＮＳ３が出力されていない場合、動作は完了する。
【０１３７】
警告通知ＷＡＲＮＳ３が出力された場合、ステップＳ４１４において、チェック回路ＣＨＫＳは、着目する１つのエントリＳＥＮＴのフラグＶが”０”にセットされたか否かを判定する。着目するエントリＳＥＮＴがＶ＝１に設定された場合、処理は完了する。着目するエントリＳＥＮＴがＶ＝０に設定された場合、ステップＳ４１６において、チェック回路ＣＨＫＳは、アクセス要求ＳＲＥＱ３の処理により、ハングアップの可能性が回避されたと判断し、回避通知ＡＶＩＤＳ３を調停部２４０Ｂに出力する。次に、ステップＳ４１８において、調停部２４０Ｂは、回避通知ＡＶＩＤＳ３を受け、フラグ信号ＦＬＧをハイレベルからロウレベルに変化させることで、解除通知ＦＲＳＴをポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２に出力し、動作を完了する。
【０１３８】
図１４は、図５に示した情報処理装置１００Ｂおよび演算処理装置２００Ｂの動作の例を示している。すなわち、図１４は、情報処理装置１００Ｂおよび演算処理装置２００Ｂの制御方法の例を示している。図２および図３と同一または同様の動作については、詳細な説明は省略する。エントリＮＥＮＴ、ＳＥＮＴの状態を示す網掛けや斜線等のパターンの意味は、図２および図３と同じである。図１４において、白抜きの下向きの矢印は、調停部２４０Ｂによりアクセス要求が選択されることを示している。
【０１３９】
この例では、説明を簡単にするために、演算処理装置２００Ｂが４つのポートＰＴ（ＭＩＰ１、ＭＩＰ２、ＭＩＢＰ１、ＭＩＢＰ２）を有するものとする。太枠で示したエントリＮＥＮＴ、ＳＥＮＴは、各ポートＭＩＰ１、ＭＩＰ２のチェック回路ＣＨＫＮおよび各ポートＭＩＢＰ１、ＭＩＢＰ２のチェック回路ＣＨＫＳにより着目されたエントリである。
【０１４０】
初期の状態（ａ）において、ポートＭＩＰＢ１の全てのエントリＳＥＮＴは、アクセス要求ＳＲＥＱ３（図５）を保持する。ポートＭＩＰ２は、コア部ＣＯＲＥ２からアクセス要求ＮＲＥＱ２を受ける。調停部２４０Ｂは、ポートＭＩＰ１のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１（図５）を選択し、キャッシュメモリ制御部２５０Ｂに出力する。
【０１４１】
キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ１に基づいてキャッシュミスを判定し、派生命令であるアクセス要求ＳＲＥＱ３の発行が必要と判断する。しかし、ポートＭＩＰＢ１のエントリＳＥＮＴが全て埋まっているため、キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ３を発行しない。すなわち、ポートＭＩＰ１に保持されたアクセス要求ＮＲＥＱ１はアボートされる。
【０１４２】
次に、状態（ｂ）において、調停部２４０Ｂは、ポートＭＩＰ２のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ２を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ２に基づいてキャッシュヒットを判定し、Ｌ２キャッシュメモリ２７０Ｂにアクセスする。キャッシュメモリ制御部２５０Ｂは、Ｌ２キャッシュメモリ２７０Ｂから読み出したデータをコア部ＣＯＲＥ２に出力し、リセット信号ＲＳＴ（図５）および完了信号ＦＩＮ（図５）を出力する。
【０１４３】
ポートＭＩＰ１のカウンタＣＯＵＮＴは、着目するエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が保持されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ１を出力する。調停部２４０Ｂは、警告通知ＷＡＲＮ１に基づいてフラグ信号ＦＬＧをロウレベルからハイレベルに変化させることで、設定通知ＦＳＥＴを出力する。
【０１４４】
次に、状態（ｃ）において、ポートＭＩＰ１は、コア部ＣＯＲＥ１からアクセス要求ＮＲＥＱ１を受ける。ポートＭＩＰ１は、設定通知ＦＳＥＴ後に受けたアクセス要求ＮＲＥＱ１を、設定通知ＦＳＥＴ前に保持したアクセス要求ＮＲＥＱ１と区別して保持する（状態（ｄ）で”Ｎ”を付けたエントリＮＥＮＴ）。
【０１４５】
調停部２４０Ｂは、ポートＭＩＢＰ１のエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ３を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ３をメモリアクセスコントローラ２８０Ｂに出力し、アクセス要求ＳＲＥＱ３に対応するデータを記憶装置３００から読み出す。この後、キャッシュメモリ制御部２５０Ｂは、記憶装置３００から読み出されたデータを、データバッファＢＵＦ１を介してコア部ＣＯＲＥ２に出力し、リセット信号ＲＳＴおよび完了信号ＦＩＮを出力する。
【０１４６】
次に、状態（ｄ）において、ポートＭＩＰ２は、コア部ＣＯＲＥ２からアクセス要求ＮＲＥＱ２を受ける。ポートＭＩＰ２は、設定通知ＦＳＥＴ後に受けたアクセス要求ＮＲＥＱ２を、設定通知ＦＳＥＴ前に保持したアクセス要求ＮＲＥＱ２と区別して保持する（状態（ｅ）で”Ｎ”を付けたエントリＮＥＮＴ）。
【０１４７】
また、ポートＭＩＰ２のカウンタＣＯＵＮＴは、着目するエントリＮＥＮＴにアクセス要求ＮＲＥＱ２が保持されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ２を出力する。調停部２４０Ｂは、ポートＭＩＰ１からの警告通知ＷＡＲＮ１を受けるため、警告通知ＷＡＲＮ２を無視する。
【０１４８】
調停部２４０Ｂは、ポートＭＩＢＰ２のエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ４（図５）を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ４をメモリアクセスコントローラ２８０Ｂに出力し、アクセス要求ＳＲＥＱ４に対応するデータを記憶装置３００から読み出す。
【０１４９】
この後、キャッシュメモリ制御部２５０Ｂは、記憶装置３００から読み出されたデータを、データバッファＢＵＦ２を介してコア部ＣＯＲＥ２に出力する。また、キャッシュメモリ制御部２５０Ｂは、コア部ＣＯＲＥ２に完了信号ＦＩＮを出力し、ポートＭＩＢＰ２にリセット信号ＲＳＴを出力する。ポートＭＩＢＰ２のチェック回路ＣＨＫＳは、リセット信号ＲＳＴを受け、着目するエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ４が処理されたことを検出し、着目するエントリＳＥＮＴを切り替える。
【０１５０】
次に、状態（ｅ）において、調停部２４０Ｂは、ポートＭＩＰ１のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１を再び選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ１に基づいてキャッシュミスを判定し、アクセス要求ＮＲＥＱ１に基づいて派生命令であるアクセス要求ＳＲＥＱ３を生成する。ポートＭＩＢＰ１のエントリＳＥＮＴに空きがあるため、キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１にアクセス要求ＳＲＥＱ３を出力する。
【０１５１】
キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１へのアクセス要求ＳＲＥＱ３の出力に基づいて、ポートＭＩＰ１にリセット信号ＲＳＴを出力する。ポートＭＩＰ１のチェック回路ＣＨＫＮは、リセット信号ＲＳＴを受け、着目するエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１が処理されたことを検出し、着目するエントリＮＥＮＴを切り替える。
【０１５２】
また、ポートＭＩＰ１のチェック回路ＣＨＫＮは、着目するエントリＮＥＮＴに所定時間Ｔｍａｘを超えて保持されたアクセス要求ＮＲＥＱ１が受け付けられたため、回避通知ＡＶＩＤ１を調停部２４０Ｂに出力する。但し、調停部２４０Ｂは、他の警告通知ＷＡＲＮ２に対応する回避通知ＡＶＩＤ２を受けていないため、回避通知ＡＶＩＤ１を無視する。
【０１５３】
次に、状態（ｆ）において、ポートＭＩＰＢ１は、キャッシュメモリ制御部２５０Ｂからのアクセス要求ＳＲＥＱ３を空いているエントリＳＥＮＴに保持する。また、調停部２４０Ｂは、ポートＭＩＰ２のエントリＮＥＮＴに保持されているアクセス要求ＮＲＥＱ２を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ２に基づいてキャッシュヒットを判定し、Ｌ２キャッシュメモリ２７０Ｂにアクセスする。キャッシュメモリ制御部２５０Ｂは、Ｌ２キャッシュメモリ２７０Ｂから読み出したデータをコア部ＣＯＲＥ２に出力する。また、キャッシュメモリ制御部２５０Ｂは、コア部ＣＯＲＥ２に完了信号ＦＩＮを出力し、ポートＭＩＰ２にリセット信号ＲＳＴを出力する。
【０１５４】
ポートＭＩＰ２のチェック回路ＣＨＫＮは、リセット信号ＲＳＴを受け、着目しているエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ２が処理されたことを検出し、着目するエントリＮＥＮＴを切り替える。また、ポートＭＩＰ２のチェック回路ＣＨＫＮは、着目するエントリＮＥＮＴに所定時間Ｔｍａｘを超えて保持されたアクセス要求ＮＲＥＱ２が処理されたため、回避通知ＡＶＩＤ２を調停部２４０Ｂに出力する。
【０１５５】
調停部２４０Ｂは、重複して発生された警告通知ＷＡＲＮ１、ＷＡＲＮ２に対応する回避通知ＡＶＩＤ１、ＡＶＩＤ２を両方受けたため、フラグ信号ＦＬＧをハイレベルからロウレベルに変化させることで、解除通知ＦＲＳＴを出力する。警告通知ＷＡＲＮおよび回避通知ＡＶＩＤを出力するポートＭＩＰ１、ＭＩＰ２は、解除通知ＦＲＳＴに応答して、警告通知ＷＡＲＮおよび回避通知ＡＶＩＤの出力を停止する。ポートＭＩＰ１は、フラグＮをリセットし、警告通知ＷＡＲＮの前に保持されたアクセス要求ＮＲＥＱ１と警告通知ＷＡＲＮ１の後に保持されたアクセス要求ＮＲＥＱ１とを、区別することなく保持する。同様に、ポートＭＩＰ２は、フラグＮをリセットし、警告通知ＷＡＲＮの前に保持されたアクセス要求ＮＲＥＱ２と警告通知ＷＡＲＮ１の後に保持されたアクセス要求ＮＲＥＱ２とを、区別することなく保持する。
【０１５６】
次に、状態（ｇ）において、調停部２４０Ｂは、ポートＭＩＢＰ１のエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ３を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ３をメモリアクセスコントローラ２８０Ｂに出力し、アクセス要求ＳＲＥＱ３に対応するデータを記憶装置３００から読み出す。この後、キャッシュメモリ制御部２５０Ｂは、記憶装置３００から読み出されたデータを、データバッファＢＵＦ１を介してコア部ＣＯＲＥ１に出力する。また、キャッシュメモリ制御部２５０Ｂは、コア部ＣＯＲＥ１に完了信号ＦＩＮを出力する。また、キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ３の出力に基づいて、ポートＭＩＢＰ１にリセット信号ＲＳＴを出力する。
【０１５７】
なお、実際の動作では、アクセス要求ＳＲＥＱ３をメモリアクセスコントローラ２８０Ｂに出力後、記憶装置３００からデータが読み出されるアクセス時間は、Ｌ２キャッシュメモリ２７０Ｂのアクセス時間よりも長い。しかし、この例では、説明を簡単にするために、状態（ｇ）の期間に記憶装置３００からデータが読み出され、完了信号ＦＩＮが出力されるものとする。
【０１５８】
次に、状態（ｈ）において、調停部２４０Ｂは、ポートＭＩＢＰ２のエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ４を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＳＲＥＱ４をメモリアクセスコントローラ２８０Ｂに出力し、アクセス要求ＳＲＥＱ４に対応するデータを記憶装置３００から読み出す。
【０１５９】
この後、キャッシュメモリ制御部２５０Ｂは、記憶装置３００から読み出されたデータを、データバッファＢＵＦ２を介してコア部ＣＯＲＥ２に出力する。また、キャッシュメモリ制御部２５０Ｂは、コア部ＣＯＲＥ２に完了信号ＦＩＮを出力し、ポートＭＩＢＰ２にリセット信号ＲＳＴを出力する。ポートＭＩＢＰ２のチェック回路ＣＨＫＳは、リセット信号ＲＳＴを受け、着目するエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ４が処理されたことを検出し、着目するエントリＳＥＮＴを切り替える。
【０１６０】
以上、この実施形態においても、図１および図３に示した実施形態と同様に、派生要求であるアクセス要求ＳＲＥＱの処理が進まない不具合を解消でき、アクセス要求ＮＲＥＱの処理が滞ることを回避できる。この結果、古いアクセス要求ＮＲＥＱが処理されないことでコアＣＯＲＥがハングアップする確率を従来に比べて下げることができ、情報処理装置１００Ｂおよび演算処理装置２００Ｂの性能の低下を抑制できる。
【０１６１】
さらに、図６に示した発行制御部ＲＥＱＣＮＴにより、フラグ信号ＦＬＧ、フラグＮ、Ｖに基づいて、エントリＮＥＮＴ毎にアクセス要求ＮＲＥＱを調停部２４０Ｂに出力するか否かを制御できる。チェック回路ＣＨＫＮにより、フラグＮをセットすることで、フラグ信号ＦＬＧがハイレベルの期間（設定通知ＦＳＥＴの期間）にポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２に新たに格納されたアクセス要求ＮＲＥＱを識別できる。これにより、フラグ信号ＦＬＧがハイレベルの期間に、警告通知ＷＡＲＮ１を出力する前の古いアクセス要求ＮＲＥＱを選択的に調停部２４０Ｂに出力できる。
【０１６２】
チェック回路ＣＨＫＮにより、１つのエントリＮＥＮＴに着目し、着目するエントリＮＥＮＴの状態に応じて、カウンタＣＯＵＮＴを動作させることで、カウンタＣＯＵＮＴの数をエントリＮＥＮＴの数に拘わらず最小限にできる。この結果、エントリＮＥＮＴ毎にカウンタＣＯＵＮＴを設ける場合に比べて、演算処理装置２００Ｂの回路規模を小さくできる。
【０１６３】
図１５は、別の実施形態における情報処理装置１００Ｃおよび演算処理装置２００Ｃの例を示している。図５と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１６４】
情報処理装置１００Ｃは、演算処理装置２００Ｃおよび記憶装置３００を有する。例えば、情報処理装置１００Ｃは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｃは、ＣＰＵ等のプロセッサである。
【０１６５】
情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃは、図５に示した調停部２４０Ｂの代わりに調停部２４０Ｃを有する。情報処理装置１００Ｃ、演算処理装置２００ＣおよびＬ２キャッシュ部２０２Ｃのその他の構成は、図５に示した情報処理装置１００Ｂ、演算処理装置２００ＢおよびＬ２キャッシュ部２０２Ｂと同様である。
【０１６６】
図１６は、図１５に示した調停部２４０Ｃの例を示している。図８と同一または同様の要素については、詳細な説明は省略する。調停部２４０Ｃは、生成回路ＳＥＴＧＥＮ２１、ＳＥＴＧＥＮ２２、ＲＳＴＧＥＮ、オア回路ＯＲおよびフリップフロップＦＦを有する。また、調停部２４０Ｃは、図１６に示した回路に加えて、ポートＭＩＰ１、ＰＦＰ１、ＭＩＰ２、ＰＦＰ２、ＭＯＰ１、ＭＯＰ３、ＭＩＰＢ１、ＭＩＰＢ２に保持されたアクセス要求ＲＥＱを順次に選択する回路を有する。
【０１６７】
生成回路ＳＥＴＧＥＮ２１は、マスク回路ＭＳＫ１１、ＭＳＫ１２、ＭＳＫ１３を有する。マスク回路ＭＳＫ１１は、警告通知ＷＡＲＮ１、ＷＡＲＮＳ１、ＷＡＲＮＳ３を受けていない期間に、警告通知ＷＡＲＮ３に応答して、フラグセット信号ＦＳＥＴ０（ＰＦＰ１）を出力する。マスク回路ＭＳＫ１１は、警告通知ＷＡＲＮ１、ＷＡＲＮＳ１、ＷＡＲＮＳ３のいずれかを受ける間、警告通知ＷＡＲＮ３に応答するフラグセット信号ＦＳＥＴ０（ＰＦＰ１）の出力をマスクする。
【０１６８】
マスク回路ＭＳＫ１２は、警告通知ＷＡＲＮＳ１、ＷＡＲＮＳ３を受けていない期間に、警告通知ＷＡＲＮ１に応答して、フラグセット信号ＦＳＥＴ０（ＭＩＰ１）を出力する。マスク回路ＭＳＫ１２は、警告通知ＷＡＲＮＳ１、ＷＡＲＮＳ３のいずれかを受ける間、警告通知ＷＡＲＮ１に応答するフラグセット信号ＦＳＥＴ０（ＭＩＰ１）の出力をマスクする。マスク回路ＭＳＫ１３は、警告通知ＷＡＲＮＳ３を受けていない期間に、警告通知ＷＡＲＮＳ１に応答して、フラグセット信号ＦＳＥＴ０（ＭＯＰ１）を出力する。マスク回路ＭＳＫ１３は、警告通知ＷＡＲＮＳ３を受ける間、警告通知ＷＡＲＮＳ１に応答するフラグセット信号ＦＳＥＴ０（ＭＯＰ１）の出力をマスクする。
【０１６９】
生成回路ＳＥＴＧＥＮ２２は、マスク回路ＭＳＫ２１、ＭＳＫ２２、ＭＳＫ２３を有する。マスク回路ＭＳＫ２１は、警告通知ＷＡＲＮ２、ＷＡＲＮＳ２、ＷＡＲＮＳ４を受けていない期間に、警告通知ＷＡＲＮ４に応答して、フラグセット信号ＦＳＥＴ０（ＰＦＰ２）を出力する。マスク回路ＭＳＫ２１は、警告通知ＷＡＲＮ２、ＷＡＲＮＳ２、ＷＡＲＮＳ４のいずれかを受ける間、警告通知ＷＡＲＮ４に応答するフラグセット信号ＦＳＥＴ０（ＰＦＰ２）の出力をマスクする。
【０１７０】
マスク回路ＭＳＫ２２は、警告通知ＷＡＲＮＳ２、ＷＡＲＮＳ４を受けていない期間に、警告通知ＷＡＲＮ２に応答して、フラグセット信号ＦＳＥＴ０（ＭＩＰ２）を出力する。マスク回路ＭＳＫ２２は、警告通知ＷＡＲＮＳ２、ＷＡＲＮＳ４のいずれかを受ける間、警告通知ＷＡＲＮ２に応答するフラグセット信号ＦＳＥＴ０（ＭＩＰ２）の出力をマスクする。マスク回路ＭＳＫ２３は、警告通知ＷＡＲＮＳ４を受けていない期間に、警告通知ＷＡＲＮＳ２に応答して、フラグセット信号ＦＳＥＴ０（ＭＯＰ２）を出力する。マスク回路ＭＳＫ２３は、警告通知ＷＡＲＮＳ４を受ける間、警告通知ＷＡＲＮＳ２に応答するフラグセット信号ＦＳＥＴ０（ＭＯＰ２）の出力をマスクする。
【０１７１】
オア回路ＯＲ４は、フラグセット信号ＦＳＥＴ０（ＰＦＰ１）、ＦＳＥＴ０（ＭＩＰ１）、ＦＳＥＴ０（ＭＯＰ１）、ＦＳＥＴ０（ＭＯＰ１）、ＦＳＥＴ０（ＰＦＰ２）、ＦＳＥＴ０（ＭＩＰ２）、ＦＳＥＴ０（ＭＯＰ２）、ＦＳＥＴ０（ＭＯＰ２）のいずれかを受けた場合に、フラグセット信号ＦＳＥＴ０を出力する。なお、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ１）は、警告通知ＷＡＲＮＳ３に応答して出力され、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ２）は、警告通知ＷＡＲＮＳ４に応答して出力される。
【０１７２】
調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＰＦＰ１）、ＦＳＥＴ０（ＭＩＰ１）、ＦＳＥＴ０（ＭＯＰ１）、ＦＳＥＴ０（ＭＯＰ１）、ＦＳＥＴ０（ＰＦＰ２）、ＦＳＥＴ０（ＭＩＰ２）、ＦＳＥＴ０（ＭＯＰ２）、ＦＳＥＴ０（ＭＯＰ２）の各々に基づいてフラグ信号ＦＬＧをロウレベルからハイレベルに設定する。
【０１７３】
調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＰＦＰ１）を出力する場合、ポートＰＦＰ１、ＭＩＰ１、ＭＯＰ１、ＭＩＢＰ１から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＰ１）を出力する場合、ポートＰＦＰ１から出力されるアクセス要求ＲＥＱを選択しない。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＰＦＰ２）を出力する場合、ポートＰＦＰ２、ＭＩＰ２、ＭＯＰ２、ＭＩＢＰ２から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＰ２）を出力する場合、ポートＰＦＰ２から出力されるアクセス要求ＲＥＱを選択しない。
【０１７４】
調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＰ１）を出力する場合、ポートＭＩＰ１、ＭＯＰ１、ＭＩＢＰ１から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＰ２）を出力する場合、ポートＭＩＰ２、ＭＯＰ２、ＭＩＢＰ２から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。
【０１７５】
調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＯＰ１）を出力する場合、ポートＭＯＰ１、ＭＩＢＰ１から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＯＰ１）を出力する場合、ポートＰＦＰ１、ＭＩＰ１から出力されるアクセス要求ＲＥＱを選択しない。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＯＰ２）を出力する場合、ポートＭＯＰ２、ＭＩＢＰ２から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＯＰ２）を出力する場合、ポートＰＦＰ２、ＭＩＰ２から出力されるアクセス要求ＲＥＱを選択しない。
【０１７６】
調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ１）を出力する場合、ポートＭＩＢＰ１から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ１）を出力する場合、ポートＰＦＰ１、ＭＩＰ１、ＭＯＰ１から出力されるアクセス要求ＲＥＱを選択しない。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ２）を出力する場合、ポートＭＩＢＰ２から出力されるアクセス要求ＲＥＱのいずれかを順次に選択する。調停部２４０Ｃは、フラグセット信号ＦＳＥＴ０（ＭＩＢＰ２）を出力する場合、ポートＰＦＰ２、ＭＩＰ２、ＭＯＰ２から出力されるアクセス要求ＲＥＱを選択しない。
【０１７７】
この実施形態では、例えば、派生命令であるアクセス要求ＳＲＥＱを保持するポートＭＯＰ１から警告通知ＷＡＲＮＳ１が出力された場合、調停部２４０Ｃは、ポートＰＦＰ１、ＭＩＰ１に保持されたアクセス要求ＮＲＥＱを選択しない。換言すれば、調停部２４０Ｃは、所定時間Ｔｍａｘを超えるアクセス要求ＳＲＥＱを保持するポートＰＴが存在する場合、派生命令を優先的に調停する。
【０１７８】
これにより、例えば、ポートＭＯＰ１、ＭＩＢＰ１に保持されたアクセス要求ＳＲＥＱを優先的に処理し、ポートＭＯＰ１、ＭＩＢＰ１のエントリＳＥＮＴを空けることが可能になる。したがって、回避通知ＡＶＩＤＳが出力された後に、ポートＭＩＰ１、ＰＦＰ１に保持されたアクセス要求ＮＲＥＱに基づいて発生する派生命令を、ポートＭＯＰ１、ＭＩＢＰ１に保持する可能性を向上できる。この結果、調停部２４０Ｃにより選択されるアクセス要求ＮＲＥＱがアボートされる確率を下げることができ、演算処理装置２００Ｃおよび情報処理装置１００Ｃの性能を向上できる。
【０１７９】
図１７は、図１５に示した情報処理装置１００Ｃおよび演算処理装置２００Ｃの動作の例を示している。すなわち、図１７は、情報処理装置１００Ｃおよび演算処理装置２００Ｃの制御方法の例を示している。図１４と同一または同様の動作については、詳細な説明は省略する。この例においても、図１４と同様に、演算処理装置２００Ｃが４つのポートＰＴ（ＭＩＰ１、ＭＩＰ２、ＭＩＢＰ１、ＭＩＢＰ２）を有するものとする。
【０１８０】
ポートＭＩＰ１、ＭＩＰ２における状態（ａ）から状態（ｄ）の動作は、図１４と同様である。状態（ａ）において、ポートＭＩＢＰ１のカウンタＣＯＵＮＴは、着目するエントリＳＥＮＴにアクセス要求ＳＲＥＱ３が保持されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮＳ３を出力する。調停部２４０Ｃは、警告通知ＷＡＲＮＳ３に基づいてフラグ信号ＦＬＧをロウレベルからハイレベルに変化させ、設定通知ＦＳＥＴを出力する。
【０１８１】
この後、状態（ｂ）から状態（ｆ）において、調停部２４０Ｃは、警告通知ＷＡＲＮＳ３に基づいて、ポートＭＩＢＰ１、ＭＩＢＰ２に保持されたアクセス要求ＳＲＥＱ（すなわち、派生命令）を優先的に順次に選択する。換言すれば、状態（ｂ）から状態（ｆ）において、ポートＭＩＰ１、ＭＩＰ２に保持されたアクセス要求ＮＲＥＱは、選択されない。
【０１８２】
状態（ｆ）において、調停部２４０Ｃは、ポートＭＩＢＰ１のエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ３を選択し、キャッシュメモリ制御部２５０Ｂに出力する。ポートＭＩＢＰ１のチェック回路ＣＨＫＳは、リセット信号ＲＳＴを受け、着目するエントリＳＥＮＴに保持されたアクセス要求ＳＲＥＱ３が処理されたことを検出し、着目するエントリＳＥＮＴを切り替える。
【０１８３】
また、ポートＭＩＢＰ１のチェック回路ＣＨＫＳは、着目するエントリＳＥＮＴに所定時間Ｔｍａｘを超えて保持されたアクセス要求ＳＲＥＱ３が処理されたため、回避通知ＡＶＩＤＳ３を調停部２４０Ｃに出力する。調停部２４０Ｃは、回避通知ＡＶＩＤＳ３に応じて、フラグ信号ＦＬＧをハイレベルからロウレベルに変化させ、解除通知ＦＲＳＴを出力する。ポートＭＩＰ１、ＭＩＰ２は、ロウレベルのフラグ信号ＦＬＧに応答して、警告通知ＷＡＲＮ１、ＷＡＲＮ２の出力を停止する。また、ポートＭＩＰ１、ＭＩＰ２は、フラグＮをリセットし、警告通知ＷＡＲＮ１、ＷＡＲＮ２の出力前に保持されたアクセス要求ＮＲＥＱと警告通知ＷＡＲＮ１、ＷＡＲＮ２の出力後に保持されたアクセス要求ＮＲＥＱとを、区別することなく保持する。
【０１８４】
状態（ｇ）において、調停部２４０Ｃは、ポートＭＩＰ１のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１を再び選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ１に基づいてキャッシュミスを判定し、アクセス要求ＮＲＥＱ１に基づいて派生命令であるアクセス要求ＳＲＥＱ３が必要と判断する。
【０１８５】
ポートＭＩＢＰ１のエントリＳＥＮＴは、状態（ｂ）から状態（ｆ）による動作により、状態（ａ）に比べて十分に空くため、キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１にアクセス要求ＳＲＥＱ３を出力可能である。この例では、アクセス要求ＮＲＥＱ１がアボートされることなく選択されるため、ポートＭＩＰ１から再び警告通知ＷＡＲＮ１が出力されることはない。
【０１８６】
キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１へのアクセス要求ＳＲＥＱ３の出力に基づいて、ポートＭＩＰ１にリセット信号ＲＳＴを出力する。ポートＭＩＰ１のチェック回路ＣＨＫＮは、リセット信号ＲＳＴを受け、着目するエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１が処理されたことを検出し、着目するエントリＮＥＮＴを切り替える。
【０１８７】
状態（ｈ）において、ポートＭＩＰＢ１は、キャッシュメモリ制御部２５０Ｂからのアクセス要求ＳＲＥＱ３を空きのエントリＳＥＮＴに保持する。調停部２４０Ｃは、ポートＭＩＰ２のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ２を選択し、キャッシュメモリ制御部２５０Ｂに出力する。
【０１８８】
以上、この実施形態では、調停部２４０Ｃは、警告通知ＷＡＲＮ、ＷＡＲＮＳを出力したポートＰＴに応じて、優先的に選択するアクセス要求ＮＲＥＱ、ＳＲＥＱを決定する。例えば、ポートＭＩＢＰ１に所定時間Ｔｍａｘを超えてアクセス要求ＳＲＥＱが保持される場合、調停部２４０Ｃは、ポートＭＩＢＰ１、ＭＩＢＰ２に保持されたアクセス要求ＳＲＥＱを優先的に選択する。これにより、派生命令が保持されるポートＭＩＢＰ１、ＭＩＢＰ２のエントリＳＥＮＴを迅速に空けることができ、新たに派生命令が発生する場合に、アボートさせることなくエントリＳＥＮＴに保持できる。この結果、古いアクセス要求ＮＲＥＱが処理されないことでコアＣＯＲＥがハングアップする確率を従来に比べて下げることができ、情報処理装置１００Ｃおよび演算処理装置２００Ｃの性能の低下を抑制できる。
【０１８９】
図１８は、別の実施形態における情報処理装置１００Ｄおよび演算処理装置２００Ｄの例を示している。図５と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１９０】
この実施形態の情報処理装置１００Ｄは、演算処理装置２００Ｄおよび記憶装置３００を有する。例えば、情報処理装置１００Ｄは、サーバやパーソナルコンピュータ等のコンピュータ装置であり、演算処理装置２００Ｄは、ＣＰＵ等のプロセッサである。
【０１９１】
この実施形態では、ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２、ＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２が、図５に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２、ＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２と相違する。情報処理装置１００Ｄ、演算処理装置２００ＤおよびＬ２キャッシュ部２０２Ｄのその他の構成は、図５に示した情報処理装置１００Ｂ、演算処理装置２００ＢおよびＬ２キャッシュ部２０２Ｂと同様である。
【０１９２】
図１９は、図１８に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２の例を示している。図６と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。ポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２は、互いに同一または同様の構成であるため、ここでは、ポートＭＩＰ１について説明する。
【０１９３】
ポートＭＩＰ１は、図６に示したチェック回路ＣＨＫＮの代わりにチェック回路ＣＨＫＮ２を有する。また、ポートＭＩＰ１は、各エントリＮＥＮＴに対応する４つのカウンタＣＯＵＮＴとオア回路ＯＲＮを有する。各カウンタＣＯＵＮＴは、分周回路ＤＩＶにより周波数が分周されたクロックに同期してカウント動作する。分周回路ＤＩＶおよび各カウンタＣＯＵＮＴは、タイマとして機能する。タイマは、エントリＮＥＮＴにそれぞれ対応して設けられ、対応する起動信号ＳＴＴ１（ＳＴＴ１０−ＳＴＴ１３）に応答して時間の計測を開始し、所定時間Ｔｍａｘを超えた場合に警告通知ＷＡＲＮ１０を出力する。
【０１９４】
すなわち、各カウンタＣＯＵＮＴは、対応するエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が格納されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ１の元となる信号ＷＡＲＮ１０をオア回路ＯＲＮに出力する。オア回路ＯＲＮは、カウンタＣＯＵＮＴのいずれかからの信号ＷＡＲＮ１０を受けた場合に、警告通知ＷＡＲＮ１を調停部２４０Ｂに出力する。
【０１９５】
チェック回路ＣＨＫＮ２は、フラグ信号ＦＬＧがロウレベルの期間（解除通知ＦＲＳＴの期間）に、各エントリＮＥＮＴのフラグＶのセットを検出した場合に、対応するカウンタＣＯＵＮＴにカウント動作を開始させる起動信号ＳＴＴ１を出力する。あるいは、チェック回路ＣＨＫＮ２は、フラグ信号ＦＬＧがハイレベルからロウレベルに変化したタイミング（解除通知ＦＲＳＴの出力タイミング）で、各エントリＮＥＮＴのフラグＶがセットされたことを検出した場合に起動信号ＳＴＴ１を出力する。
【０１９６】
チェック回路ＣＨＫＮ２は、各エントリＮＥＮＴのフラグＶがリセットされた場合に、対応するカウンタＣＯＵＮＴの動作を停止させ、カウンタ値をリセットする。さらに、チェック回路ＣＨＫＮ２は、フラグ信号ＦＬＧがハイレベルの期間（設定通知ＦＳＥＴの期間）に、警告通知ＷＡＲＮ１０を出力する全てのカウンタＣＯＵＮＴに対応するフラグＶがリセットされた場合、回避通知ＡＶＩＤ１を調停部２４０Ｂに出力する。
【０１９７】
このように、チェック回路ＣＨＫＮ２は、各エントリＮＥＮＴにアクセス要求ＮＲＥＱが保持された場合に起動信号ＳＴＴ１を出力し、各エントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱが処理された場合に回避通知ＡＶＩＤ１を出力する。
【０１９８】
チェック回路ＣＨＫＮ２において、カウンタＣＯＵＮＴを制御する機能を除く機能は、図６に示したチェック回路ＣＨＫＮの機能と同様である。なお、フラグ信号ＦＬＧがロウレベルの期間に、フラグＮがリセットされる場合、図１８に示したポートＭＩＰ１、ＭＩＰ２、ＰＦＰ１、ＰＦＰ２は、図１９のマスク回路ＭＳＫの代わりに図２３に示すマスク回路ＭＳＫを有してもよい。すなわち、各マスク回路ＭＳＫは、フラグＮの論理を反転し、反転した論理をＡＮＤ回路の入力に出力するインバータＩＶを、ＮＡＮＤ回路の代わりに有してもよい。この場合、マスク回路ＭＳＫは、フラグ信号ＦＬＧを受けることなく、バッファＢＵＦのイネーブル端子ＥＮを制御できる。
【０１９９】
図２０は、図１８に示したポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２の例を示している。図７と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。ポートＭＯＰ１、ＭＯＰ２、ＭＩＢＰ１、ＭＩＢＰ２は、互いに同一または同様の構成であるため、ここでは、ポートＭＩＢＰ１について説明する。
【０２００】
ポートＭＩＢＰ１は、図７に示したチェック回路ＣＨＫＳの代わりにチェック回路ＣＨＫＳ２を有する。また、ポートＭＩＢＰ１は、各エントリＳＥＮＴに対応する４つのカウンタＣＯＵＮＴとオア回路ＯＲＳを有する。各カウンタＣＯＵＮＴは、分周回路ＤＩＶにより周波数が分周されたクロックに同期してカウント動作する。分周回路ＤＩＶおよび各カウンタＣＯＵＮＴは、タイマとして機能する。タイマは、エントリＳＥＮＴにそれぞれ対応して設けられ、対応する起動信号ＳＴＴ２（ＳＴＴ２０−ＳＴＴ２３）に応答して時間の計測を開始し、所定時間Ｔｍａｘを超えた場合に警告通知ＷＡＲＮＳ１０を出力する。
【０２０１】
すなわち、各カウンタＣＯＵＮＴは、対応するエントリＳＥＮＴにアクセス要求ＳＲＥＱ３が格納されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮＳ１の元となる信号ＷＡＲＮＳ１０をオア回路ＯＲＳに出力する。オア回路ＯＲＳは、カウンタＣＯＵＮＴのいずれかからの信号ＷＡＲＮＳ１０を受けた場合に、警告通知ＷＡＲＮＳ１を調停部２４０Ｂに出力する。
【０２０２】
チェック回路ＣＨＫＳ２は、各エントリＳＥＮＴのフラグＶのセットを検出した場合に、対応するカウンタＣＯＵＮＴにカウント動作を開始させる。チェック回路ＣＨＫＳ２は、各エントリＳＥＮＴのフラグＶがリセットされた場合に、対応するカウンタＣＯＵＮＴの動作を停止させ、カウンタ値をリセットする。さらに、チェック回路ＣＨＫＳ２は、警告通知ＷＡＲＮＳ１０を出力する全てのカウンタＣＯＵＮＴに対応するフラグＶがリセットされた場合、回避通知ＡＶＩＤＳ１を調停部２４０Ｂに出力する。
【０２０３】
このように、チェック回路ＣＨＫＳ２は、各エントリＳＥＮＴにアクセス要求ＳＲＥＱが保持された場合に起動信号ＳＴＴ２を出力し、各エントリＮＥＮＴに保持されたアクセス要求ＳＲＥＱが処理された場合に回避通知ＡＶＩＤＳ１を出力する。チェック回路ＣＨＫＳ２において、カウンタＣＯＵＮＴを制御する機能を除く機能は、図７に示したチェック回路ＣＨＫＳの機能と同様である。
【０２０４】
図２１および図２２は、図１８に示した情報処理装置１００Ｄおよび演算処理装置２００Ｄの動作の例を示している。すなわち、図２１および図２２は、情報処理装置１００Ｄおよび演算処理装置２００Ｄの制御方法の例を示している。図１４と同一または同様の動作については、詳細な説明は省略する。この例においても、図１４と同様に、演算処理装置２００Ｄが４つのポートＰＴ（ＭＩＰ１、ＭＩＰ２、ＭＩＢＰ１、ＭＩＢＰ２）を有するものとする。
【０２０５】
この実施形態では、図１９に示したチェック回路ＣＨＫＮ２および図２０に示したチェック回路ＣＨＫＳ２は、各エントリＮＥＮＴ、ＳＥＮＴに保持されたアクセス要求ＮＲＥＱ、ＳＲＥＱに基づいて、対応するカウンタＣＯＵＮＴを動作させる。このため、図１４に太枠で示した”着目するエントリＮＥＮＴ”および”着目するエントリＳＥＮＴ”は存在しない。ポートＭＩＰ２、ＭＩＢＰ１、ＭＩＢＰ２の動作は、図１４と同様である。
【０２０６】
状態（ｂ）において、ポートＭＩＰ１のカウンタＣＯＵＮＴの１つは、対応するエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が保持されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ１（ＷＡＲＮ１０）を出力する。調停部２４０Ｂは、警告通知ＷＡＲＮ１に基づいてフラグ信号ＦＬＧをロウレベルからハイレベルに変化させて、設定通知ＦＳＥＴを出力する。
【０２０７】
この後、状態（ｄ）において、ポートＭＩＰ１のカウンタＣＯＵＮＴの別の１つは、対応するエントリＮＥＮＴにアクセス要求ＮＲＥＱ１が保持されてから所定時間Ｔｍａｘが経過したことに基づいて、警告通知ＷＡＲＮ１０を出力する。しかし、状態（ｂ）において、警告通知ＷＡＲＮ１が出力されるため、警告通知ＷＡＲＮ１は、例えば、ハイレベルに維持される。
【０２０８】
次に、状態（ｅ）において、調停部２４０Ｂは、ポートＭＩＰ１のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１を再び選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ１に基づいてキャッシュミスを判定し、アクセス要求ＮＲＥＱ１に基づいて派生命令であるアクセス要求ＳＲＥＱ３が必要と判断する。ポートＭＩＢＰ１のエントリＳＥＮＴに空きがあるため、キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１にアクセス要求ＳＲＥＱ３を出力する。
【０２０９】
但し、この実施形態では、ポートＭＩＰ１の別のエントリＮＥＮＴに対応するカウンタＣＯＵＮＴから警告通知ＷＡＲＮ１０が出力されるため、図１９に示したチェック回路ＣＨＫＮ２は、回避通知ＡＶＩＤ１を出力しない。
【０２１０】
図２２の状態（ｉ）において、調停部２４０Ｂは、ポートＭＩＰ１のエントリＮＥＮＴに保持されたアクセス要求ＮＲＥＱ１を選択し、キャッシュメモリ制御部２５０Ｂに出力する。キャッシュメモリ制御部２５０Ｂは、アクセス要求ＮＲＥＱ１に基づいてキャッシュミスを判定し、アクセス要求ＮＲＥＱ１に基づいて派生命令であるアクセス要求ＳＲＥＱ３が必要と判断する。ポートＭＩＢＰ１のエントリＳＥＮＴに空きがあるため、キャッシュメモリ制御部２５０Ｂは、ポートＭＩＢＰ１にアクセス要求ＳＲＥＱ３を出力する。
【０２１１】
ポートＭＩＰ１のチェック回路ＣＨＫＮ２は、各エントリＮＥＮＴに所定時間Ｔｍａｘを超えて保持されたアクセス要求ＮＲＥＱ１が存在しなくなったため、回避通知ＡＶＩＤ１を調停部２４０Ｂに出力する。調停部２４０Ｂは、警告通知ＷＡＲＮ１に対応する回避通知ＡＶＩＤ１を受け、他の警告通知ＷＡＲＮは出力されていないため、フラグ信号ＦＬＧをハイレベルからロウレベルに変化させて、解除通知ＦＲＳＴを出力する。ポートＭＩＰ１は、ロウレベルのフラグ信号ＦＬＧに応答して、警告通知ＷＡＲＮ１および回避通知ＡＶＩＤ１の出力を停止する。
【０２１２】
この後、状態（ｊ）から状態（ｍ）において、調停部２４０Ｂは、ポートＭＩＰ２、ＭＩＢＰ１、ＭＩＢＰ２、ＭＩＰ１に保持されたアクセス要求ＮＲＥＱ（またはＳＲＥＱ）を順次に選択する。
【０２１３】
以上、この実施形態では、各ポートＰＴは、エントリＮＥＮＴ、ＳＥＮＴ毎にカウンタＣＯＵＮＴを有する。これにより、設定通知ＦＳＥＴ前に保持された全てのアクセス要求ＮＲＥＱが処理されるまで、設定通知ＦＳＥＴ後に保持されたアクセス要求ＮＲＥＱの処理を抑制できる。したがって、警告通知ＷＡＲＮ（またはＷＡＲＮＳ）が出力された場合に、アクセス要求ＮＲＥＱから派生的に発生するアクセス要求ＳＲＥＱの発生頻度を図５から図１４に示した実施形態に比べて下げることができる。この結果、アクセス要求ＳＲＥＱをエントリＳＥＮＴに溜めにくくでき、古いアクセス要求ＮＲＥＱが処理されないことで演算処理部２１０がハングアップする確率を従来に比べて下げることができる。これにより、情報処理装置１００Ｄおよび演算処理装置２００Ｄの性能の低下を抑制できる。
【０２１４】
なお、図１８に示した演算処理装置２００Ｄは、調停部２４０Ｂの代わりに、図１６に示した調停部２４０Ｃを有してもよい。この場合、警告通知ＷＡＲＮ、ＷＡＲＮＳを出力したポートＰＴに応じて、優先的に選択するアクセス要求ＮＲＥＱ、ＳＲＥＱを決定できるため、コアＣＯＲＥがハングアップする確率をさらに下げることができる。
【０２１５】
なお、図１８から図２２に示した実施形態では、各ポートＭＩＰ、ＰＦＰがエントリＮＥＮＴ毎にカウンタＣＯＵＮＴを有し、各ポートＭＯＰ、ＭＩＢＰ２がエントリＳＥＮＴ毎にカウンタＣＯＵＮＴを有する例について述べた。しかし、各ポートＭＩＰ、ＰＦＰは、エントリＮＥＮＴに共通のカウンタＣＯＵＮＴを有してもよく、各ポートＭＯＰ、ＭＩＢＰ２は、エントリＳＥＮＴに共通のカウンタＣＯＵＮＴを有してもよい。
【０２１６】
この場合、各ポートＭＩＰ、ＰＦＰのチェック回路ＣＨＫＮは、エントリＮＥＮＴにアクセス要求ＮＲＥＱがそれぞれ保持されたときのカウンタ値を記憶しておき、カウンタ値の進み量から所定時間ＴｍａｘをエントリＮＥＮＴ毎に判定する。同様に、各ポートＭＯＰ、ＭＩＢＰのチェック回路ＣＨＫＳは、エントリＳＥＮＴにアクセス要求ＳＲＥＱがそれぞれ保持されたときのカウンタ値を記憶しておき、カウンタ値の進み量から所定時間ＴｍａｘをエントリＳＥＮＴ毎に判定する。これにより、カウンタＣＯＵＮＴの数を図１９および図２０に比べて少なくして、図２１および図２２と同様の動作を実現できる。
【０２１７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２１８】
１００、１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ‥情報処理装置；２００、２００Ｂ、２００Ｃ、２００Ｄ‥演算処理装置；２０２Ｂ、２０２Ｃ、２０２Ｄ‥Ｌ２キャッシュ部；２１０‥演算処理部；２２０、２３０‥要求保持部；２４０、２４０Ｂ、２４０Ｃ‥調停部；２５０、２５０Ａ‥処理部；２５０Ｂ‥キャッシュメモリ制御部；２６０Ｂ‥キャッシュタグ部；２７０Ｂ‥Ｌ２キャッシュメモリ；２６０Ａ‥キャッシュメモリ部；２８０Ｂ‥メモリアクセスコントローラ；３００‥記憶装置；ＡＶＩＤ‥回避通知；ＢＵＦ‥バッファ；ＢＵＦ１、ＢＵＦ２、ＢＵＦ３‥データバッファ；ＣＨＫＮ、ＣＨＫＮ２、ＣＨＫＳ、ＣＨＫＳ２‥チェック回路；ＣＯＲＥ１、ＣＯＲＥ２‥コア部；ＣＯＵＮＴ‥カウンタ；ＤＩＶ‥分周回路；ＥＳＥＬ‥エントリ選択部；ＦＦ‥フリップフロップ；ＦＩＮ‥完了信号；ＦＲＳＴ‥解除通知；ＦＳＥＴ‥設定通知；ＭＩＢＰ１、ＭＩＢＰ２‥ポート；ＭＩＰ１、ＭＩＰ２‥ポート；ＭＯＰ１、ＭＯＰ２‥ポート；ＭＳＫ‥マスク回路；Ｎ‥フラグ；ＮＥＮＴ‥エントリ；ＮＲＥＱ‥アクセス要求；ＯＵＴＣ‥出力制御部；ＰＦＰ１、ＰＦＰ２‥ポート；ＰＯＲＴＮ、ＰＯＲＴＳ‥ポート部；ＰＴ‥ポート；ＲＥＱＣＮＴ‥発行制御部；ＲＳＴ‥リセット信号；ＲＳＴＧＥＮ‥生成回路；ＳＥＮＴ‥エントリ；ＳＥＴＧＥＮ、ＳＥＴＧＥＮ２‥生成回路；ＳＲＥＱ‥アクセス要求；Ｔｍａｘ‥所定時間；Ｖ‥フラグ；ＷＡＲＮ、ＷＡＲＮＳ‥警告通知
【図１】
2014038544.tif 000003
【図２】
2014038544.tif 000004
【図３】
2014038544.tif 000005
【図４】
2014038544.tif 000006
【図５】
2014038544.tif 000007
【図６】
2014038544.tif 000008
【図７】
2014038544.tif 000009
【図８】
2014038544.tif 000010
【図９】
2014038544.tif 000011
【図１０】
2014038544.tif 000012
【図１１】
2014038544.tif 000013
【図１２】
2014038544.tif 000014
【図１３】
2014038544.tif 000015
【図１４】
2014038544.tif 000016
【図１５】
2014038544.tif 000017
【図１６】
2014038544.tif 000018
【図１７】
2014038544.tif 000019
【図１８】
2014038544.tif 000020
【図１９】
2014038544.tif 000021
【図２０】
2014038544.tif 000022
【図２１】
2014038544.tif 000023
【図２２】
2014038544.tif 000024
【図２３】
2014038544.tif 000025