(57)【要約】【課題】  キャッシュメモリのスループットを向上させる。【解決手段】  演算処理装置は、第１キャッシュメモリと、第１キャッシュメモリに接続された第２キャッシュメモリとを有し、第２キャッシュメモリは、データを保持する複数の記憶領域を含むデータ保持部と、データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部と、第１キャッシュメモリからの読み出し要求で要求される要求データがデータ保持部に保持されているかを第１管理情報に基づいて判定する状態判定部と、要求データがデータ保持部に保持されていないと状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す処理部とを有する。【選択図】  図１
2018005395.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行する演算処理部と、前記演算処理部が使用するデータを保持する第１キャッシュメモリと、前記第１キャッシュメモリに接続された第２キャッシュメモリとを有する演算処理装置において、
前記第２キャッシュメモリは、
データを保持する複数の記憶領域を含むデータ保持部と、
前記データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部と、
前記第１キャッシュメモリからの読み出し要求で要求される要求データが前記データ保持部に保持されているかを第１管理情報に基づいて判定する状態判定部と、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、前記複数の記憶領域のいずれかからデータを追い出す処理部とを有する
ことを特徴とする演算処理装置。
【請求項２】
請求項１に記載の演算処理装置において、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの状態が前記第２キャッシュメモリに接続された記憶装置への書き戻しを必要としない状態である場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項３】
請求項１に記載の演算処理装置において、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記第１キャッシュメモリに保持されたデータの状態を示す第２状態情報を含む第２管理情報を保持する第２情報保持部と、
前記複数の記憶領域のいずれかから追い出される追い出し対象データが前記第１キャッシュメモリに保持されていない場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項４】
請求項１に記載の演算処理装置において、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記第１キャッシュメモリに保持されたデータの状態を示す第２状態情報を含む第２管理情報を保持する第２情報保持部と、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの状態が前記第２キャッシュメモリに接続された記憶装置への書き戻しを必要としない状態で、かつ、追い出し対象データが前記第１キャッシュメモリに保持されていない場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項５】
請求項１に記載の演算処理装置において、
前記第２キャッシュメモリと記憶装置との間のデータ転送を制御するメモリ制御部と、
演算処理部と第１キャッシュメモリと第２キャッシュメモリとを含み、他の記憶装置に接続された他の演算処理装置と通信する通信インタフェース部とをさらに有し、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの格納先を示すメモリアドレスが前記記憶装置に割り当てられている場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項６】
請求項１に記載の演算処理装置において、
前記第２キャッシュメモリと記憶装置との間のデータ転送を制御するメモリ制御部と、
演算処理部と第１キャッシュメモリと第２キャッシュメモリとを含み、他の記憶装置に接続された他の演算処理装置と通信する通信インタフェース部とをさらに有し、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの格納先を示すメモリアドレスが前記記憶装置に割り当てられ、かつ、追い出し対象データの状態が前記記憶装置への書き戻しを必要としない状態である場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項７】
請求項１に記載の演算処理装置において、
前記第２キャッシュメモリと記憶装置との間のデータ転送を制御するメモリ制御部と、
演算処理部と第１キャッシュメモリと第２キャッシュメモリとを含み、他の記憶装置に接続された他の演算処理装置と通信する通信インタフェース部とをさらに有し、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記第１キャッシュメモリに保持されたデータの状態を示す第２状態情報を含む第２管理情報を保持する第２情報保持部と、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの格納先を示すメモリアドレスが前記記憶装置に割り当てられ、かつ、追い出し対象データが前記第１キャッシュメモリに保持されていない場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項８】
請求項１に記載の演算処理装置において、
前記第２キャッシュメモリと記憶装置との間のデータ転送を制御するメモリ制御部と、
演算処理部と第１キャッシュメモリと第２キャッシュメモリとを含み、他の記憶装置に接続された他の演算処理装置と通信する通信インタフェース部とをさらに有し、
前記処理部は、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、追い出し要求の発行を抑止する抑止条件が満たされる場合、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出し、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがなく、かつ、前記抑止条件が満たされない場合、追い出し要求の発行を指示し、発行された追い出し要求に基づいて前記データ保持部から追い出し対象データを追い出し、
前記第２キャッシュメモリは、
前記第１キャッシュメモリに保持されたデータの状態を示す第２状態情報を含む第２管理情報を保持する第２情報保持部と、
前記複数の記憶領域のいずれかから追い出される追い出し対象データの格納先を示すメモリアドレスが前記記憶装置に割り当てられ、追い出し対象データの状態が前記記憶装置への書き戻しを必要としない状態で、かつ、追い出し対象データが前記第１キャッシュメモリに保持されていない場合、前記抑止条件が満たされると判定する条件判定部と、
前記処理部からの指示に基づいて、追い出し要求を前記処理部に発行する追い出し制御部とをさらに有する
ことを特徴とする演算処理装置。
【請求項９】
請求項３、請求項４、請求項７および請求項８のいずれか１項に記載の演算処理装置において、
前記演算処理部を複数有し、
前記第１キャッシュメモリは、複数の前記演算処理部にそれぞれ対応して複数設けられ、
前記第２キャッシュメモリは、複数の前記演算処理部に共通に設けられ、
前記条件判定部は、追い出し対象データが複数の前記第１キャッシュメモリのいずれにも保持されていないことを第２管理情報に基づいて検出し、かつ、追い出し対象データを複数の前記第１キャッシュメモリのいずれかから追い出す処理が実行中でないことを検出した場合に、追い出し対象データが前記第１キャッシュメモリに保持されていないと判定する
ことを特徴とする演算処理装置。
【請求項１０】
請求項１に記載の演算処理装置において、
前記演算処理部を複数有し、
前記第１キャッシュメモリは、複数の前記演算処理部にそれぞれ対応して複数設けられ、
前記第２キャッシュメモリは、
複数の前記演算処理部に共通に設けられ、
追い出し対象データを複数の前記第１キャッシュメモリのいずれかから追い出す処理が実行中でないことを判定する条件判定部をさらに有し、
前記処理部は、要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、要求データを格納する記憶領域に空きがない状態で、追い出し対象データが複数の前記第１キャッシュメモリのいずれかに保持され、かつ、追い出し対象データを複数の前記第１キャッシュメモリのいずれかから追い出す処理が実行中でない場合、追い出し対象データを前記第１キャッシュメモリから追い出させる追い出し指示を追い出し対象データを保持している前記第１キャッシュメモリに通知し、追い出し指示に基づく処理の完了を示す応答情報を受けた後、追い出し要求を発行せずに前記データ保持部から追い出し対象データを追い出す
ことを特徴とする演算処理装置。
【請求項１１】
請求項１０に記載の演算処理装置において、
前記データ保持部は、データのアクセスに使用するメモリアドレスの一部分のビット群で表される第１インデックス毎にデータを保持する複数のウェイを含み、
複数の前記第１キャッシュメモリの各々は、第１インデックスの一部分のビット群で表される第２インデックス毎にデータを保持する少なくとも１つのウェイを含み、
前記第２キャッシュメモリは、
前記複数のウェイのうち、管理対象のデータを保持するウェイを示すウェイ識別子と、第２インデックスと第１インデックスとの差分を示す差分インデックスと、管理対象のデータの状態を示す状態識別子とを含む情報であり、前記第１キャッシュメモリに保持されたデータを複数の前記第１キャッシュメモリの各々のウェイ毎に管理する第２管理情報を、第２インデックス毎に保持する第２情報保持部と、
第２インデックスで指定された第２管理情報のウェイ識別子が示す論理値をデコードし、前記複数のウェイの各々に対して真であるかを示すビットを含むデコード情報を、複数の前記第１キャッシュメモリの各々のウェイ毎に生成するデコード部と、
第２インデックスで指定された第２管理情報の差分インデックスと要求データのメモリアドレスのうちの差分インデックスに対応する部分の情報とが互いに一致する場合を真とする一致フラグを、複数の前記第１キャッシュメモリの各々のウェイ毎に生成する一致フラグ生成部と、
第２インデックスで指定された第２管理情報の状態識別子がデータの有効を示す場合を真とする有効ビットと、デコード情報の各ビットと、一致フラグとの論理積を、複数の前記第１キャッシュメモリの各々のウェイ毎に演算する論理積部と、
前記第１キャッシュメモリ毎に前記論理積部の演算結果の論理和を演算し、演算結果を複数の前記第１キャッシュメモリの各々の所持情報として前記処理部に出力する論理和部とをさらに有し、
前記処理部は、追い出し対象データを保持している前記第１キャッシュメモリを、複数の前記第１キャッシュメモリの各々の所持情報に基づいて特定する
ことを特徴とする演算処理装置。
【請求項１２】
請求項９または請求項１０に記載の演算処理装置において、
前記データ保持部は、データのアクセスに使用するメモリアドレスの一部分のビット群で表される第１インデックス毎にデータを保持する複数のウェイを含み、
前記第２キャッシュメモリは、
前記複数のウェイのうち、管理対象のデータを保持するウェイを示すウェイ識別子と、管理対象のデータのメモリアドレスに含まれる第１インデックスと、管理対象のデータが有効であることを示す有効ビットとを含む情報であり、前記第１キャッシュメモリからデータを追い出す処理の対象となるデータを前記第１キャッシュメモリ毎に管理する第３管理情報を保持する第３情報保持部と、
第３管理情報のウェイ識別子が示す論理値をデコードし、前記複数のウェイの各々に対して真であるかを示すビットを含むデコード情報を第３管理情報毎に生成するデコード部と、
第３管理情報の第１インデックスと要求データの第１インデックスとが互いに一致する場合を真とする一致フラグを第３管理情報毎に生成する一致フラグ生成部と、
第３管理情報の有効ビットとデコード情報の各ビットと一致フラグとの論理積を第３管理情報毎に演算する論理積部と、
前記複数のウェイ毎に前記論理積部の演算結果の論理和を演算する論理和部とをさらに有し、
前記条件判定部は、追い出し対象データを複数の前記第１キャッシュメモリのいずれかから追い出す処理が実行中でないことを、前記論理和部の演算結果に基づいて判定する
ことを特徴とする演算処理装置。
【請求項１３】
請求項１に記載の演算処理装置において、
前記複数の記憶領域のいずれかからデータを追い出す処理は、前記複数の記憶領域のいずれかから追い出したデータを前記第２キャッシュメモリに接続された記憶装置に書き戻す処理を含む
ことを特徴とする演算処理装置。
【請求項１４】
命令を実行する演算処理部と、前記演算処理部が使用するデータを保持する第１キャッシュメモリと、前記第１キャッシュメモリに接続された第２キャッシュメモリとを含む複数の演算処理装置を有する情報処理装置において、
前記第２キャッシュメモリは、
データを保持する複数の記憶領域を含むデータ保持部と、
前記データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部と、
前記第１キャッシュメモリからの読み出し要求で要求される要求データが前記データ保持部に保持されているかを第１管理情報に基づいて判定する状態判定部と、
要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、前記複数の記憶領域のいずれかからデータを追い出す処理部とを有する
ことを特徴とする情報処理装置。
【請求項１５】
命令を実行する演算処理部と、前記演算処理部が使用するデータを保持する第１キャッシュメモリと、前記第１キャッシュメモリに接続され、データを保持する複数の記憶領域を含むデータ保持部および前記データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部を含む第２キャッシュメモリとを有する演算処理装置の制御方法において、
前記第２キャッシュメモリが有する状態判定部は、前記第１キャッシュメモリからの読み出し要求で要求される要求データが前記データ保持部に保持されているかを第１管理情報に基づいて判定し、
前記第２キャッシュメモリが有する処理部は、要求データが前記データ保持部に保持されていないと前記状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、前記複数の記憶領域のいずれかからデータを追い出す
ことを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、情報処理装置および演算処理装置の制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）等の演算処理装置は、主記憶装置に比べて高速にアクセス可能なキャッシュメモリを有する。キャッシュメモリは、演算処理部であるＣＰＵコア等のプロセッサコアと主記憶装置との間に配置され、主記憶装置に記憶されたデータの一部を保持する。
【０００３】
なお、キャッシュメモリが階層構造を有する場合、例えば、演算処理装置は、第２レベルのキャッシュメモリと、第２レベルのキャッシュメモリに比べて高速にアクセス可能な第１レベルのキャッシュメモリとを有する。以下、第１レベルのキャッシュメモリおよび第２レベルのキャッシュメモリは、１次キャッシュメモリおよび２次キャッシュメモリともそれぞれ称される。
【０００４】
２次キャッシュメモリは、アクセス対象のデータが１次キャッシュメモリに保持されていない場合（１次キャッシュメモリがキャッシュミスした場合）、１次キャッシュメモリによりアクセスされる。例えば、１次キャッシュメモリは、キャッシュミスした場合、リード要求を２次キャッシュメモリに出力する。
【０００５】
２次キャッシュメモリは、リード要求で要求される要求データを保持している場合（２次キャッシュメモリがキャッシュヒットする場合）、１次キャッシュメモリを介してプロセッサコアに要求データを転送する。なお、２次キャッシュメモリは、要求データを保持していない場合（２次キャッシュメモリがキャッシュミスする場合）、主記憶装置から要求データを取得し、１次キャッシュメモリを介して、取得した要求データをプロセッサコアに転送する。また、２次キャッシュメモリは、主記憶装置から取得した要求データを保持する。これにより、１次キャッシュメモリからのリード要求で要求された要求データは、２次キャッシュメモリに登録される。
【０００６】
なお、２次キャッシュメモリは、主記憶装置から取得した要求データを格納する記憶領域に空きがない場合、２次キャッシュメモリに保持されたデータのいずれかを記憶領域から追い出すリプレース処理を実行する。以下、リプレース処理により２次キャッシュメモリから追い出されるデータは、追い出し対象データとも称される。例えば、２次キャッシュメモリは、アクセスされていない時間が最も長いデータを追い出し対象データとして選択する。なお、追い出し対象データの選択方法として、例えば、１次キャッシュメモリに保持されていないデータを追い出し対象データとして優先的に選択する方法が提案されている（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００９−５２４１３７号公報
【特許文献２】特開平１０−１０５４６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
２次キャッシュメモリは、例えば、リード要求等の処理要求に基づく処理を実行する処理部を有する。この種の２次キャッシュメモリは、例えば、キャッシュミスした場合、リプレース処理の要求（以下、リプレース要求とも称する）を２次キャッシュメモリ内で発行して処理部に投入する。そして、リプレース要求を受けた処理部は、リプレース処理を実行する。この場合、２次キャッシュメモリ内の処理部は、１次キャッシュメモリからの１回のリード要求に対して、リード要求だけでなくリプレース要求等の複数の処理要求を受ける。例えば、１次キャッシュメモリからの１回のリード要求に対応して実行される一連の処理のスループットは、２次キャッシュメモリ内の処理部が受ける処理要求の数の増加に伴い低下する。すなわち、キャッシュメモリのスループットは、２次キャッシュメモリ内の処理部に対して発行される処理要求の数の増加に伴い低下する。
【０００９】
１つの側面では、本件開示の演算処理装置、情報処理装置および演算処理装置の制御方法は、キャッシュメモリのスループットを向上させることを目的とする。
【課題を解決するための手段】
【００１０】
一観点によれば、演算処理装置は、命令を実行する演算処理部と、演算処理部が使用するデータを保持する第１キャッシュメモリと、第１キャッシュメモリに接続された第２キャッシュメモリとを有し、第２キャッシュメモリは、データを保持する複数の記憶領域を含むデータ保持部と、データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部と、第１キャッシュメモリからの読み出し要求で要求される要求データがデータ保持部に保持されているかを第１管理情報に基づいて判定する状態判定部と、要求データがデータ保持部に保持されていないと状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す処理部とを有する。
【００１１】
別の観点によれば、情報処理装置は、命令を実行する演算処理部と、演算処理部が使用するデータを保持する第１キャッシュメモリと、第１キャッシュメモリに接続された第２キャッシュメモリとを含む複数の演算処理装置を有し、第２キャッシュメモリは、データを保持する複数の記憶領域を含むデータ保持部と、データ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部と、第１キャッシュメモリからの読み出し要求で要求される要求データがデータ保持部に保持されているかを第１管理情報に基づいて判定する状態判定部と、要求データがデータ保持部に保持されていないと状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す処理部とを有する。
【００１２】
別の観点によれば、命令を実行する演算処理部と、演算処理部が使用するデータを保持する第１キャッシュメモリと、第１キャッシュメモリに接続され、データを保持する複数の記憶領域を含むデータ保持部およびデータ保持部に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する第１情報保持部を含む第２キャッシュメモリとを有する演算処理装置の制御方法では、第２キャッシュメモリが有する状態判定部は、第１キャッシュメモリからの読み出し要求で要求される要求データがデータ保持部に保持されているかを第１管理情報に基づいて判定し、第２キャッシュメモリが有する処理部は、要求データがデータ保持部に保持されていないと状態判定部により判定され、かつ、要求データを格納する記憶領域に空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す。
【発明の効果】
【００１３】
本件開示の演算処理装置、情報処理装置および演算処理装置の制御方法は、キャッシュメモリのスループットを向上できる。
【図面の簡単な説明】
【００１４】
【図１】演算処理装置、情報処理装置および演算処理装置の制御方法の一実施形態を示す図である。
【図２】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図３】図２に示し第２キャッシュメモリの一例を示す図である。
【図４】図３に示したデータ保持部の一例を示す図である。
【図５】図３に示したタグ部および使用情報保持部の一例を示す図である。
【図６】図３に示したスヌープロック部の一例を示す図である。
【図７】図３に示したキャッシュミス制御部の要部の一例を示す図である。
【図８】図３に示したデータ選択部の一例を示す図である。
【図９】図２に示したパイプライン制御部の一例を示す図である。
【図１０】図９に示したヒット判定部の一例を示す図である。
【図１１】図９に示したコア判定部の一例を示す図である。
【図１２】図９に示した条件一致検出部の一例を示す図である。
【図１３】図９に示した処理判定部の一例を示す図である。
【図１４】追い出し対象データが抑止条件を満たす場合の演算処理装置の動作の一例を示す図である。
【図１５】追い出し対象データが抑止条件を満たさない場合の演算処理装置の動作の一例を示す図である。
【図１６】追い出し対象データが抑止条件を満たさない場合の演算処理装置の動作の別の例を示す図である。
【図１７】追い出し対象データが抑止条件を満たさない場合の演算処理装置の動作の別の例を示す図である。
【図１８】図３に示したパイプライン制御部に投入される処理要求の一例を示す図である。
【図１９】図３に示したパイプライン制御部の動作の一例を示す図である。
【図２０】追い出し要求の発行を抑止するかを判定する処理の一例を示す図である。
【図２１】追い出し要求に基づく処理の一例を示す図である。
【図２２】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図２３】図２２に示し第２キャッシュメモリの一例を示す図である。
【図２４】図２３に示したタグ部および使用情報保持部の一例を示す図である。
【図２５】図２３に示したスヌープロック部の一例を示す図である。
【図２６】図２３に示したメインパイプライン制御部の一例を示す図である。
【図２７】図２６に示したヒット判定部の一例を示す図である。
【図２８】図２６に示したコア判定部の一例を示す図である。
【図２９】図２６に示した条件一致検出部の一例を示す図である。
【図３０】図２３に示したパイプライン制御部に投入される処理要求の一例を示す図である。
【図３１】追い出し対象データが抑止条件を満たさない場合の演算処理装置の動作の一例を示す図である。
【図３２】図２２に示した第２キャッシュメモリＬＬｃのデータアクセスの一例を示す図である。
【図３３】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図３４】図３３に示した第２キャッシュメモリの一例を示す図である。
【図３５】図３４に示したメインパイプライン制御部の一例を示す図である。
【図３６】図３５に示したコア判定部の一例を示す図である。
【図３７】図３５に示した条件一致検出部の一例を示す図である。
【図３８】図３５に示した処理判定部の一例を示す図である。
【図３９】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図４０】図３９に示した第２キャッシュメモリの一例を示す図である。
【図４１】図４０に示したデータ選択部の一例を示す図である。
【図４２】図４０に示した排他選択部の一例を示す図である。
【図４３】図４０に示したメインパイプライン制御部の一例を示す図である。
【図４４】図４３に示した条件一致検出部の一例を示す図である。
【図４５】図４３に示した処理判定部の一例を示す図である。
【図４６】図３９に示した第２キャッシュメモリのデータアクセスの一例を示す図である。
【図４７】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図４８】図４７に示し第２キャッシュメモリの一例を示す図である。
【図４９】図４８に示したメインパイプライン制御部の一例を示す図である。
【図５０】図４９に示した条件一致検出部の一例を示す図である。
【図５１】図４９に示した処理判定部の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、実施形態について、図面を用いて説明する。
【００１６】
図１は、演算処理装置、情報処理装置および演算処理装置の制御方法の一実施形態を示す。図１に示す情報処理装置ＩＰＥａは、例えば、サーバ等のコンピュータ装置である。例えば、情報処理装置ＩＰＥａは、互いに通信可能に接続された複数の演算処理装置ＰＵａ（ＰＵａ０、ＰＵａ１）と、複数の演算処理装置ＰＵａにそれぞれ接続された複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１）とを有する。なお、演算処理装置ＰＵａの数は、図１に示す例に限定されない。
【００１７】
演算処理装置ＰＵａは、例えば、命令を実行するＣＰＵ等のプロセッサである。演算処理装置ＰＵａは、ＣＰＵコア等のプロセッサコアＰＣＯＲと、プロセッサコアＰＣＯＲが使用するデータを保持する第１キャッシュメモリＬ１と、第１キャッシュメモリＬ１に接続された第２キャッシュメモリＬＬａとを有する。
【００１８】
プロセッサコアＰＣＯＲは、例えば、第１キャッシュメモリＬ１に保持されたデータを参照して、命令に基づく演算等を実行する。すなわち、プロセッサコアＰＣＯＲは、命令を実行する演算処理部の一例である。
【００１９】
第１キャッシュメモリＬ１は、例えば、セットアソシアティブ方式のキャッシュメモリであり、第２キャッシュメモリＬＬａに比べて高速にアクセス可能な１次キャッシュメモリである。第１キャッシュメモリＬ１は、第２キャッシュメモリＬＬａに保持されたデータの一部を保持する。例えば、第１キャッシュメモリＬ１は、ロード命令をプロセッサコアＰＣＯＲから受けた場合、ロード命令で要求されたデータをプロセッサコアＰＣＯＲに出力する。なお、第１キャッシュメモリＬ１は、ロード命令で要求されたデータを保持していない場合（第１キャッシュメモリＬ１がキャッシュミスした場合）、第２キャッシュメモリＬＬａに読み出し要求を出力する。また、例えば、第１キャッシュメモリＬ１は、プロセッサコアＰＣＯＲから受けたストア命令で要求されたデータを保持していない場合（第１キャッシュメモリＬ１がキャッシュミスした場合）、第２キャッシュメモリＬＬａに読み出し要求を出力する。
【００２０】
このように、第２キャッシュメモリＬＬａへの読み出し要求は、プロセッサコアＰＣＯＲからストアまたはロード命令によって第１キャッシュメモリＬ１でキャッシュミスしたことを起因に発生する。なお、第１キャッシュメモリＬ１からのプリフェッチの要求も、第２キャッシュメモリＬＬａに発行される読み出し要求の一種に含まれる。
【００２１】
第２キャッシュメモリＬＬａは、例えば、セットアソシアティブ方式のキャッシュメモリであり、第１キャッシュメモリＬ１に接続される。すなわち、第２キャッシュメモリＬＬａは、第１キャッシュメモリＬ１より下位の階層の２次キャッシュメモリである。第２キャッシュメモリＬＬａは、データ保持部１０、第１情報保持部２０、状態判定部３０および処理部４０を有する。
【００２２】
データ保持部１０は、第２キャッシュメモリＬＬａより下位の階層の記憶装置である主記憶装置ＭＥＭに記憶されたデータの一部を、第２キャッシュメモリＬＬａのインデックスアドレス毎に保持する。インデックスアドレスは、データのアクセスに使用するメモリアドレスの一部分のビット群に対応する。例えば、第２キャッシュメモリＬＬａのインデックスアドレスは、第２キャッシュメモリＬＬａのキャッシュラインの番号に対応する。
【００２３】
第１情報保持部２０は、データ保持部１０に保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する。例えば、第１情報保持部２０は、第２キャッシュメモリＬＬａのタグアドレスおよび第１状態情報等を含む第１管理情報を、第２キャッシュメモリＬＬａのインデックスアドレス毎に保持する。タグアドレスは、メモリアドレスのうち、インデックスアドレスを除くビット群の一部分に対応する。
【００２４】
また、第１管理情報に含まれる第１状態情報は、第２キャッシュメモリＬＬａのインデックスアドレスおよびタグアドレスで示されるデータ（キャッシュライン）の状態を示す。ＭＥＳＩプロトコルでは、データの状態は、”変更（Modified）”、”排他（Exclusive）”、”共有（Shared）”、”無効（Invalid）”のいずれかに分類される。例えば、ストア動作等により更新され、書き換えられたダーティなデータの状態は、”変更”に分類される。複数の第２キャッシュメモリＬＬａのうちの該当する１つの第２キャッシュメモリＬＬａのみに保持され、更新されていないクリーンなデータの状態は、”排他”に分類される。複数の第２キャッシュメモリＬＬａに保持されているクリーンなデータの状態は、”共有”に分類される。第２キャッシュメモリＬＬａの初期化後のデータ、無効にされたデータ等の意味のないデータの状態は、”無効”に分類される。以下、”変更（Modified）”、”排他（Exclusive）”、”共有（Shared）”、”無効（Invalid）”は、”Ｍ”、”Ｅ”、”Ｓ”、”Ｉ”とも称される。
【００２５】
状態判定部３０は、読み出し要求で要求される要求データがデータ保持部１０に保持されているか否かを第１管理情報に基づいて判定する。例えば、状態判定部３０は、第１情報保持部２０に保持された第１管理情報のうち、要求データのメモリアドレスに含まれるインデックスアドレスで示されるキャッシュラインの第１管理情報を参照する。以下、要求データのメモリアドレスに含まれるインデックスアドレスおよびタグアドレスは、要求データのインデックスアドレスおよびタグアドレスともそれぞれ称される。例えば、状態判定部３０は、要求データのタグアドレスが要求データのインデックスアドレスで示されるキャッシュラインの第１管理情報に登録されている場合、要求データがデータ保持部１０に保持されていると判定する。
【００２６】
すなわち、状態判定部３０は、要求データのタグアドレスが要求データのインデックスアドレスで示されるキャッシュラインの第１管理情報に登録されている場合、第２キャッシュメモリＬＬａがキャッシュヒットしたと判定する。また、状態判定部３０は、要求データのタグアドレスが要求データのインデックスアドレスで示されるキャッシュラインの第１管理情報に登録されていない場合、第２キャッシュメモリＬＬａがキャッシュミスしたと判定する。
【００２７】
処理部４０は、例えば、要求データがデータ保持部１０に保持されていると状態判定部３０により判定された場合、要求データをデータ保持部１０から第１キャッシュメモリＬ１に転送する。また、処理部４０は、要求データがデータ保持部１０に保持されていないと状態判定部３０により判定された場合、主記憶装置ＭＥＭに要求データの転送を要求する。例えば、処理部４０は、要求データの読み出し要求を主記憶装置ＭＥＭに発行する。これにより、要求データは、主記憶装置ＭＥＭから第２キャッシュメモリＬＬａに転送される。そして、処理部４０は、主記憶装置ＭＥＭから第２キャッシュメモリＬＬａに転送された要求データをデータ保持部１０に格納する。これにより、要求データは、第２キャッシュメモリＬＬａに登録される。また、処理部４０は、要求データをデータ保持部１０から第１キャッシュメモリＬ１に転送する。
【００２８】
なお、処理部４０は、データ保持部１０の記憶領域に要求データを格納する空きがない場合、読み出し要求に基づく追い出し要求を発行せずに、データ保持部１０の複数の記憶領域のいずれかからデータを追い出す処理を実行する。追い出し要求は、データ保持部１０からデータを追い出す処理の要求であり、読み出し要求に後続する処理要求である。
【００２９】
すなわち、処理部４０は、データ保持部１０からデータを追い出す処理を、追い出し要求を発行せずに、読み出し要求の実行サイクル中に実行する。以下、データ保持部１０から追い出されるデータは、追い出し対象データとも称される。
【００３０】
例えば、処理部４０は、追い出し対象データの状態が”排他”の場合、読み出し要求の実行サイクル中に、追い出し対象データの第１管理情報に含まれる第１状態情報を”無効”に設定する。そして、第１状態情報が”無効”に設定されたキャッシュラインに、主記憶装置ＭＥＭから第２キャッシュメモリＬＬａに転送された要求データが登録される。このように、処理部４０は、データ保持部１０から追い出し対象データを追い出す処理として、追い出し対象データの第１管理情報に含まれる第１状態情報を”無効”に設定する処理を読み出し要求の実行サイクル中に実行する。
【００３１】
すなわち、処理部４０は、要求データがデータ保持部１０に保持されていないと状態判定部３０により判定され、かつ、要求データを登録する記憶領域に空きがない場合、追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す処理を実行する。
【００３２】
なお、読み出し要求に後続する追い出し要求が発行される場合があってもよい。すなわち、第２キャッシュメモリＬＬａは、追い出し要求を第２キャッシュメモリＬＬａ内で発行して処理部４０に投入する場合と、追い出し要求を発行せずにデータ保持部１０からデータを追い出す処理を実行する場合とを使い分けてもいい。例えば、追い出し要求を受けた処理部４０は、追い出し要求で要求される追い出し対象データをデータ保持部１０から追い出す処理を実行する。
【００３３】
ここで、追い出し要求を発行せずにデータ保持部１０からデータを追い出す処理が実行される場合、追い出し要求が発行される場合に比べて、処理部４０に投入される処理要求の数を少なくすることができる。この結果、第１キャッシュメモリＬ１からの１回の読み出し要求に対する一連の処理を実行する際の処理部４０のスループットを向上させることができる。すなわち、第２キャッシュメモリＬＬａがキャッシュミスしたときのスループットを向上させることができる。
【００３４】
なお、演算処理装置ＰＵａおよび情報処理装置ＩＰＥａの構成は、図１に示す例に限定されない。例えば、演算処理装置ＰＵａは、プロセッサコアＰＣＯＲと第１キャッシュメモリＬ１との組を複数有してもよい。この場合、第２キャッシュメモリＬＬａは、複数のプロセッサコアＰＣＯＲに共有され、複数の第１キャッシュメモリＬ１に接続される。
【００３５】
以上、図１に示す実施形態では、第２キャッシュメモリＬＬａは、データ保持部１０、第１情報保持部２０、状態判定部３０および処理部４０を有する。状態判定部３０は、第１キャッシュメモリＬ１からの読み出し要求で要求される要求データがデータ保持部１０に保持されているかを第１管理情報に基づいて判定する。また、処理部４０は、要求データがデータ保持部１０に保持されていないと状態判定部３０により判定され、かつ、要求データを格納する記憶領域に空きがない場合、追い出し要求を発行せずに、複数の記憶領域のいずれかからデータを追い出す処理を実行する。
【００３６】
例えば、処理部４０は、追い出し要求を発行せずにデータ保持部１０からデータを追い出す処理を実行することにより、追い出し要求を発行する場合に比べて、処理部４０に投入する処理要求の数を少なくできる。この結果、第１キャッシュメモリＬ１からの１回の読み出し要求に対する一連の処理を実行する際の処理部４０のスループットを向上させることができる。これにより、第２キャッシュメモリＬＬａのスループットを向上させることができる。
【００３７】
図２は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２に示す情報処理装置ＩＰＥｂは、例えば、サーバ等のコンピュータ装置である。例えば、情報処理装置ＩＰＥｂは、複数の演算処理装置ＰＵｂ（ＰＵｂ０、ＰＵｂ１、ＰＵｂ２、ＰＵｂ３）と複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と通信部ＣＤと入出力制御部ＩＯＣＮＴＬと入出力装置ＩＯＵとを有する。なお、演算処理装置ＰＵｂおよび主記憶装置ＭＥＭの数は、図２に示す例に限定されない。複数の演算処理装置ＰＵｂ、複数の主記憶装置ＭＥＭ、通信部ＣＤおよび入出力制御部ＩＯＣＮＴＬは、例えば、サーバのシステムボードに搭載される。
【００３８】
演算処理装置ＰＵｂは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬｂと、メモリ制御部ＭＣＮＴＬと、通信インタフェース部ＣＩＦとを有する。図２以降では、コアＣＯＲＥの数を８つとして説明する。なお、コアＣＯＲＥの数は、８に限定されない。
【００３９】
各コアＣＯＲＥは、互いに対応するプロセッサコアＰＣＯＲおよび第１キャッシュメモリＬ１を有し、第２キャッシュメモリＬＬｂに接続される。
【００４０】
プロセッサコアＰＣＯＲは、図１に示したプロセッサコアＰＣＯＲと同一または同様である。例えば、プロセッサコアＰＣＯＲは、第１キャッシュメモリＬ１に保持されたデータを参照して、命令に基づく演算等を実行する。
【００４１】
第１キャッシュメモリＬ１は、例えば、セットアソシアティブ方式のキャッシュメモリであり、図１に示した第１キャッシュメモリＬ１と同一または同様である。第１キャッシュメモリＬ１は、第２キャッシュメモリＬＬｂに比べて高速にアクセス可能な１次キャッシュメモリであり、第２キャッシュメモリＬＬｂに保持されたデータの一部を保持する。
【００４２】
第２キャッシュメモリＬＬｂは、セットアソシアティブ方式のキャッシュメモリであり、メモリ制御部ＭＣＮＴＬ、通信インタフェース部ＣＩＦおよび複数のコアＣＯＲＥ等に接続される。すなわち、第２キャッシュメモリＬＬｂは、第１キャッシュメモリＬ１より下位の階層の２次キャッシュメモリであり、複数のコアＣＯＲＥに共有される。第２キャッシュメモリＬＬｂの詳細は、図３で説明する。
【００４３】
メモリ制御部ＭＣＮＴＬには、例えば、第２キャッシュメモリＬＬｂより下位の階層の主記憶装置ＭＥＭが接続される。そして、メモリ制御部ＭＣＮＴＬは、第２キャッシュメモリＬＬｂと主記憶装置ＭＥＭとの間のデータ転送等を実行する。図２に示す例では、メモリ制御部ＭＣＮＴＬと主記憶装置ＭＥＭとの間のデータ転送は、双方向バスを用いて実行され、メモリ制御部ＭＣＮＴＬと第２キャッシュメモリＬＬｂとの間のデータ転送は、単方向の転送により実行される。なお、メモリ制御部ＭＣＮＴＬと他のモジュールとの間のデータ転送方式は、図２に示す例に限定されない。
【００４４】
メモリ制御部ＭＣＮＴＬは、第２キャッシュメモリＬＬｂと連動して動作する。例えば、１つのメモリ制御部ＭＣＮＴＬは、１つの第２キャッシュメモリＬＬｂの配下で動作する。例えば、情報処理装置ＰＵａ１がｃｃＮＵＭＡ（cache coherent NonUniform Memory access）構成である場合、メモリ制御部ＭＣＮＴＬは、ｃｃＮＵＭＡを構成する１つのローカルメモリアドレス空間を制御する。ｃｃＮＵＭＡを構成する１つのノードに含まれるコアＣＯＲＥ、第２キャッシュメモリＬＬｂおよびメモリ制御部ＭＣＮＴＬを含むグループは、ＣＭＧ（Core Memory Group）とも称される。例えば、複数のＣＭＧが１つの半導体チップに実装され、システムボード上に１つの半導体チップが実装されてもよいし、１つのＣＭＧが１つの半導体チップに実装され、複数の半導体チップがシステムボード上で接続されてもよい。
【００４５】
主記憶装置ＭＥＭは、例えば、第２キャッシュメモリＬＬｂより下位の階層のメモリであり、演算処理装置ＰＵｂ内のメモリ制御部ＭＣＮＴＬに接続される。
【００４６】
通信インタフェース部ＣＩＦには、例えば、通信部ＣＤが接続される。例えば、演算処理装置ＰＵｂは、通信部ＣＤを介して、他の演算処理装置ＰＵｂとの間のデータ転送等を実行する。
【００４７】
通信部ＣＤは、複数の演算処理装置ＰＵｂおよび入出力制御部ＩＯＣＮＴＬに接続され、演算処理装置ＰＵｂと入出力制御部ＩＯＣＮＴＬとの通信、演算処理装置ＰＵｂ間の通信等を実行する。
【００４８】
入出力制御部ＩＯＣＮＴＬには、例えば、入出力装置ＩＯＵ等が接続される。そして、入出力制御部ＩＯＣＮＴＬは、入出力装置ＩＯＵと通信部ＣＤとの間のデータ転送等を実行する。入出力装置ＩＯＵは、演算処理装置ＰＵｂにデータを入力するキーボード等の入力装置、演算処理装置ＰＵｂの処理結果を外部に出力するディスプレイ等の出力装置等である。
【００４９】
なお、演算処理装置ＰＵｂおよび情報処理装置ＩＰＥｂの構成は、図２に示す例に限定されない。例えば、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂは、セットアソシアティブ方式以外の方式（例えば、ダイレクトマップ方式）のキャッシュメモリでもよい。また、キャッシュメモリの階層レベルは、３以上でもよい。あるいは、情報処理装置ＩＰＥｂは、他の情報処理装置ＩＰＥｂに接続するＣＰＵ接続インタフェース装置を有してもよい。この場合、情報処理装置ＩＰＥｂ内のＣＰＵ接続インタフェース装置は、他の情報処理装置ＩＰＥｂ内のＣＰＵ接続インタフェース装置に接続される。
【００５０】
図３は、図２に示し第２キャッシュメモリＬＬｂの一例を示す。なお、第２キャッシュメモリＬＬｂの構成は、図３に示す例に限定されない。
【００５１】
第２キャッシュメモリＬＬｂは、データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｂ、タグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂ、ＴＡＧＤ、使用情報保持部ＬＲＵＬＬ、投入部ＩＮＰｂおよびパイプライン制御部ＰＬＣを有する。さらに、第２キャッシュメモリＬＬｂは、スヌープロック部ＳＮＰｂおよびキャッシュミス制御部ＭＩＢを有する。
【００５２】
データ保持部ＤＭＥＭは、メモリ制御部ＭＣＮＴＬに接続される主記憶装置ＭＥＭ等に記憶されたデータの一部を保持する。例えば、データ保持部ＤＭＥＭは、図４に示すように、インデックスアドレス毎にデータを保持する複数のウェイを有する。データ保持部ＤＭＥＭの記憶容量は、第１キャッシュメモリＬ１の記憶容量に比べて大きい。
【００５３】
データ選択部ＤＳＥＬｂは、データ保持部ＤＭＥＭとメモリ制御部ＭＣＮＴＬとの間のデータ転送、データ保持部ＤＭＥＭと他のＣＭＧとの間のデータ転送等を制御する。データ選択部ＤＳＥＬｂの詳細は、図８で説明する。
【００５４】
タグ部ＴＡＧＬＬｂは、データ保持部ＤＭＥＭに保持されたデータの状態を示す第１状態情報を含む第１管理情報を保持する。すなわち、タグ部ＴＡＧＬＬｂは、第１情報保持部の一例である。タグ部ＴＡＧＬ１ｂは、第１キャッシュメモリＬ１に保持されたデータの状態を示す第２状態情報を含む第２管理情報を保持する。すなわち、タグ部ＴＡＧＬ１ｂは、第２情報保持部の一例である。タグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂの詳細は、図５で説明する。
【００５５】
タグ部ＴＡＧＤは、ｃｃＮＵＭＡ構成の１つのノードで管理されるべきデータの状態を示すディレクトリ情報を保持する。例えば、タグ部ＴＡＧＤは、自身を含む第２キャッシュメモリＬＬｂが管理するｃｃＮＵＭＡのディレクトリ情報を保持し、他のＣＭＧに持ち出されたデータの状態を管理する。以下、第２キャッシュメモリＬＬｂで処理されるデータのメモリアドレスが自身のＣＭＧが管理する範囲内である場合は、”Ｌｏｃａｌ＝Ｈｏｓｔ”とも称される。また、第２キャッシュメモリＬＬｂで処理されるデータのメモリアドレスが自身のＣＭＧが管理する範囲外である場合は、”Ｌｏｃａｌ≠Ｈｏｓｔ”とも称される。
【００５６】
例えば、”Ｌｏｃａｌ＝Ｈｏｓｔ”のアドレス空間のデータを他のＣＭＧが保持する場合のデータの状態（ディレクトリ）は、”排他（Exclusive）”、”共有（Shared）”、”無効（Invalid）”のいずれかに分類される。”排他”は、対象のＣＭＧのみがデータを保持している状態を示す。なお、データが更新されていない保証はない。すなわち、”排他”は、ＭＥＳＩプロトコルにおける”Ｍ”で保持されている状態を含む。”共有”は、他のＣＭＧの１つ以上の第２キャッシュメモリＬＬｂが対象のデータを保持している状態を示す。”無効”は、他のＣＭＧが対象のデータを保持していない状態を示す。例えば、タグ部ＴＡＧＤは、”Ｌｏｃａｌ＝Ｈｏｓｔ”におけるパイプライン処理時に要求アドレスに対するディレクトリ情報を表示する機能を有する。
【００５７】
使用情報保持部ＬＲＵＬＬは、データ保持部ＤＭＥＭの複数のウェイのうち、複数の第１キャッシュメモリＬ１のいずれにもアクセスされていない待機時間が最も長いウェイを選択するための選択情報を保持する。例えば、第２キャッシュメモリＬＬｂがキャッシュミスし、主記憶装置ＭＥＭから第２キャッシュメモリＬＬｂに転送されたデータを登録する領域がない場合、第２キャッシュメモリＬＬｂに保持されたデータのいずれかを追い出すリプレース処理が実行される。この際、主記憶装置ＭＥＭからのデータの格納先のウェイ（すなわち、追い出されるデータを保持しているウェイ）は、使用情報保持部ＬＲＵＬＬに保持された選択情報を使用してＬＲＵ（Least Recently Used）方式で決定される。なお、使用情報保持部ＬＲＵＬＬの詳細は、図５で説明する。
【００５８】
投入部ＩＮＰは、コアＣＯＲＥ、キャッシュミス制御部ＭＩＢ等から処理要求を受け、受けた処理要求をパイプライン制御部ＰＬＣに投入する。例えば、投入部ＩＮＰは、処理要求ＲＥＡＤ、ＢＩＳＲ等をコアＣＯＲＥから受け、処理要求ＭＯＲＰ、ＭＶＩＮ等をキャッシュミス制御部ＭＩＢから受ける。以下、処理要求ＭＯＲＰは、追い出し要求ＭＯＲＰとも称される。
【００５９】
処理要求ＲＥＡＤ（以下、読み出し要求ＲＥＡＤとも称する）に基づく処理では、第２キャッシュメモリＬＬｂは、キャッシュヒットした場合に、データを第１キャッシュメモリＬ１に応答する。また、第２キャッシュメモリＬＬｂは、キャッシュミスした場合に、主記憶装置ＭＥＭに読み出し要求を発行する。
【００６０】
処理要求ＢＩＳＲに基づく処理では、例えば、第２キャッシュメモリＬＬｂは、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬｂへのライトバックを伴わないリプレース完了処理（リプレース処理の完了に関する処理）等を実行する。
【００６１】
処理要求ＭＯＲＰに基づく処理では、第２キャッシュメモリＬＬｂは、データ保持部ＤＭＥＭからデータを追い出す処理を実行する。なお、処理要求ＭＯＲＰは、処理要求ＲＥＡＤに後続する処理要求である。すなわち、処理要求ＭＯＲＰは、読み出し要求ＲＥＡＤに基づく追い出し要求である。
【００６２】
処理要求ＭＶＩＮに基づく処理では、第２キャッシュメモリＬＬｂは、読み出し要求ＲＥＡＤで要求されたデータを第２キャッシュメモリＬＬｂに登録して第１キャッシュメモリＬ１に応答する。なお、処理要求ＭＶＩＮは、処理要求ＲＥＡＤに後続する処理要求である。
【００６３】
パイプライン制御部ＰＬＣは、投入部ＩＮＰｂから受ける処理要求（処理要求ＲＥＡＤ等）に基づく処理を、タグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂ等に保持された情報に基づいて実行する。パイプライン制御部ＰＬＣの詳細は、図９以降で説明する。
【００６４】
スヌープロック部ＳＮＰｂは、第１キャッシュメモリＬ１からデータを追い出す処理の対象となるデータを第１キャッシュメモリＬ１毎に管理する第３管理情報を保持する情報保持部を有する。なお、スヌープロック部ＳＮＰｂの詳細は、図６で説明する。
【００６５】
キャッシュミス制御部ＭＩＢは、読み出し要求ＲＥＡＤで要求されたデータがキャッシュミスした場合、後続の処理を管理する。例えば、キャッシュミス制御部ＭＩＢは、キャッシュミスが発生し、データ保持部ＤＭＥＭからデータを追い出す場合に、処理要求ＭＯＲＰを投入部ＩＮＰｂに発行する。すなわち、キャッシュミス制御部ＭＩＢは、追い出し要求ＭＯＲＰをパイプライン制御部ＰＬＣ等の処理部に発行する追い出し制御部の一例である。なお、キャッシュミス制御部ＭＩＢは、処理要求ＭＯＲＰの抑止を示す情報をパイプライン制御部ＰＬＣから受けた場合、処理要求ＭＯＲＰを発行しない。
【００６６】
また、キャッシュミス制御部ＭＩＢは、メモリ制御部ＭＣＮＴＬに要求したデータに対する応答を受け、読み出し要求ＲＥＡＤで要求されたデータをデータ保持部ＤＭＥＭに格納する準備ができている場合、処理要求ＭＶＩＮを投入部ＩＮＰｂに発行する。
【００６７】
また、キャッシュミス制御部ＭＩＢは、ブロックタイプチェンジ処理の要求を処理要求ＭＶＩＮの一部として、投入部ＩＮＰｂに発行する。ブロックタイプチェンジ処理は、第２キャッシュメモリＬＬｂのウェイのデータ状態を変更する処理である。例えば、パイプライン制御部ＰＬＣは、”共有”で保持されているデータに対して”排他”での読み出し要求ＲＥＡＤに基づく処理を実行する場合、キャッシュミス制御部ＭＩＢに対して、ブロックタイプチェンジ処理を実行するための資源を確保する。キャッシュミス制御部ＭＩＢは、第２キャッシュメモリＬＬ、第１キャッシュメモリＬ１に保持されている対象のデータの状態によって後続の命令を判断し、パイプライン制御部ＰＬＣに対して処理要求を発行する。
【００６８】
図４は、図３に示したデータ保持部ＤＭＥＭの一例を示す。データ保持部ＤＭＥＭは、インデックスアドレスＲＡＤ［１８：７］毎にデータを保持する複数のウェイＷＡＹ（ＷＡＹ０、ＷＡＹ１、・・・、ＷＡＹ１４、ＷＡＹ１５）を有する。なお、インデックスアドレスＲＡＤ［１８：７］は、データのアクセスに使用するメモリアドレスＲＡＤ［４７：０］の一部分のビット群で表される第１インデックスの一例である。図４に示す例では、データ保持部ＤＭＥＭのウェイＷＡＹの数は、１６である。すなわち、第２キャッシュメモリＬＬｂは、１６ウェイのセットアソシアティブ方式のキャッシュメモリである。なお、データ保持部ＤＭＥＭのウェイＷＡＹの数は、１６に限定されない。
【００６９】
データ保持部ＤＭＥＭは、アクセス対象のウェイＷＡＹを示す情報ＬＬＨＴＷ（ＬＬＨＴＷ０−ＬＬＨＴＷ１５）と、アクセス対象のインデックスアドレスＲＡＤ［１８：７］とを受ける。例えば、情報ＬＬＨＴＷは、パイプライン制御部ＰＬＣからデータ保持部ＤＭＥＭに転送される。以下、情報ＬＬＨＴＷは、アクセスウェイ情報ＬＬＨＴＷまたはヒットウェイ情報ＬＬＨＴＷとも称される。例えば、第２キャッシュメモリＬＬｂが読み出し要求をコアＣＯＲＥから受けた場合、データ保持部ＤＭＥＭは、インデックスアドレスＲＡＤ［１８：７］とヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＴＷ１５とで指定されたデータを要求元のコアＣＯＲＥに出力する。以下、アクセス対象のメモリアドレスＲＡＤは、要求アドレスＲＡＤとも称される。また、インデックスアドレスＲＡＤ［１８：７］は、アドレスＲＡＤ［１８：７］とも称される。
【００７０】
図５は、図３に示したタグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂおよび使用情報保持部ＬＲＵＬＬの一例を示す。なお、図５に示すタグ部ＴＡＧＬＬｂは、第２キャッシュメモリＬＬｂのウェイ数が１６である場合の一例である。また、図５に示すタグ部ＴＡＧＬ１ｂは、第１キャッシュメモリＬ１のウェイ数が８である場合の一例である。例えば、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂのキャッシュラインのサイズは、１２８バイトである。
【００７１】
第２キャッシュメモリＬＬｂのキャッシュラインの番号は、インデックスアドレスＰＡ［１８：７］で表される。そして、インデックスアドレスＰＡ［１８：７］は、メモリアドレスＲＡＤ［４７：０］の一部分（７から１８ビット）のビット群で表されるインデックスアドレスＲＡＤ［１８：７］で指定される。第１キャッシュメモリＬ１のキャッシュラインの番号は、インデックスアドレスＰＡ［１３：７］で表される。そして、インデックスアドレスＰＡ［１３：７］は、データのアクセスに使用するメモリアドレスＲＡＤ［４７：０］の一部分（７から１３ビット）のビット群で表されるインデックスアドレスＲＡＤ［１３：７］で指定される。なお、インデックスアドレスＲＡＤ［１３：７］は、第１インデックス（インデックスアドレスＲＡＤ［１８：７］）の一部分のビット群で表される第２インデックスの一例である。
【００７２】
タグ部ＴＡＧＬＬｂは、１つのインデックスアドレスＰＡ［１８：７］に対して、第２キャッシュメモリＬＬｂのウェイ数分（図５に示す例では、１６ウェイ分）の第１管理情報ＩＮＦＬＬｂ（ＩＮＦＬＬｂ０、・・・、ＩＮＦＬＬｂ１５）を保持する。第１管理情報ＩＮＦＬＬｂの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。このように、タグ部ＴＡＧＬＬｂは、各ウェイＷＡＹの第１管理情報ＩＮＦＬＬを第２キャッシュメモリＬＬｂのインデックスアドレスＰＡ［１８：７］毎に保持する。
【００７３】
各第１管理情報ＩＮＦＬＬｂは、第２キャッシュメモリＬＬｂのタグアドレスＰＡ［４７：１９］およびタイプコードＴＣＬＬ［１：０］、ＴＣＬ１［１：０］を有する。第２キャッシュメモリＬＬｂのタグアドレスＰＡ［４７：１９］は、メモリアドレスＲＡＤ［４７：０］の一部分（１９から４７ビット）のビット群で表される。また、タイプコードＴＣＬＬ［１：０］は、第２キャッシュメモリＬＬｂのインデックスアドレスＰＡ［１８：７］とタグアドレスＰＡ［４７：１９］とで指定されるデータ（キャッシュライン）の状態を示す。データの状態は、例えば、ＭＥＳＩプロトコルで管理される。
【００７４】
図５に示す例では、データの状態が”無効”である場合、タイプコードＴＣＬＬ［１：０］は”００”に設定される。データの状態が”共有”である場合、タイプコードＴＣＬＬ［１：０］は”０１”に設定される。データの状態が”変更”である場合、タイプコードＴＣＬＬ［１：０］は”１０”に設定される。データの状態が”排他”である場合、タイプコードＴＣＬＬ［１：０］は”１１”に設定される。
【００７５】
タイプコードＴＣＬ１［１：０］は、第２キャッシュメモリＬＬｂのインデックスアドレスＰＡ［１８：７］とタグアドレスＰＡ［４７：１９］とで指定されるデータ（キャッシュライン）の第１キャッシュメモリＬ１における状態を示す。データの状態は、例えば、ＭＥＳＩプロトコルで管理される。なお、第２キャッシュメモリＬＬｂは、第１キャッシュメモリＬ１に保持されたデータが変更されたタイミングを検出しない。このため、タイプコードＴＣＬ１［１：０］は、データの状態が”変更”であることを示す”１０”以外の値に設定される。
【００７６】
タグ部ＴＡＧＬＬが保持する第１管理情報ＩＮＦＬＬは、例えば、パイプライン制御部ＰＬＣからのアップデート情報に対応する信号ＷＥ、ＷＤに基づいて、更新される。信号ＷＥは、第１管理情報ＩＮＦＬＬの更新を示すライトイネーブル信号であり、信号ＷＤは、更新データである。
【００７７】
タグ部ＴＡＧＬ１ｂは、１つのインデックスアドレスＰＡ［１３：７］に対して、第１キャッシュメモリＬ１のウェイ数と第１キャッシュメモリＬ１の数との積で表される数の第２管理情報ＩＮＦＬ１ｂを保持する。図５に示す例では、タグ部ＴＡＧＬ１ｂは、１つのインデックスアドレスＰＡ［１３：７］に対して、６４個（＝８ウェイ×８コア分）の第２管理情報ＩＮＦＬ１ｂ（ＩＮＦＬ１ｂ０、・・・、ＩＮＦＬ１ｂ６３）を保持する。
【００７８】
このように、タグ部ＴＡＧＬ１ｂは、各第１キャッシュメモリＬ１における各ウェイの第２管理情報ＩＮＦＬ１ｂを、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］毎に保持する。図５に示す例では、第２管理情報ＩＮＦＬ１ｂの末尾の数字を８で割った場合の商および余りは、それぞれコアＣＯＲＥの末尾の数字および第１キャッシュメモリＬ１のウェイ番号（０から７のいずれか）に対応する。例えば、第２管理情報ＩＮＦＬ１ｂ０は、コアＣＯＲＥ０の第１キャッシュメモリＬ１の０番目のウェイの第２管理情報ＩＮＦＬ１ｂを示す。また、第２管理情報ＩＮＦＬ１ｂ６３は、コアＣＯＲＥ７の第１キャッシュメモリＬ１の７番目のウェイの第２管理情報ＩＮＦＬ１ｂを示す。
【００７９】
各第２管理情報ＩＮＦＬ１ｂは、ウェイ情報ＷＡＹＬＬ［３：０］と、差分情報ＰＡ［１８：１４］と、バリッドＶＬ１とを有する。ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］の代わりに保持される情報である。例えば、ウェイ情報ＷＡＹＬＬ［３：０］は、第２キャッシュメモリＬＬｂの複数のウェイＷＡＹのうち、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］とタグアドレスＰＡ［４７：１４］とで指定されるデータが保持されたウェイＷＡＹを示す。すなわち、ウェイ情報ＷＡＹＬＬ［３：０］は、タグアドレスＰＡ［４７：１４］のうちのアドレスＰＡ［４７：１９］（第２キャッシュメモリＬＬｂのタグアドレスＰＡ［４７：１９］）に対応する。
【００８０】
差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］と第２キャッシュメモリＬＬｂのインデックスアドレスＰＡ［１８：７］との差分を示す。すなわち、差分情報ＰＡ［１８：１４］は、メモリアドレスＲＡＤ［４７：０］の一部分（１４から１８ビット）のビット群で表され、タグアドレスＰＡ［４７：１４］のうちのアドレスＰＡ［１８：１４］に対応する。このように、ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］の代わりに使用される。
【００８１】
バリッドＶＬ１は、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］、ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］で指定されるデータ（キャッシュライン）が有効であるかを示す。例えば、データが有効である場合、バリッドＶＬ１は、”１”に設定される。
【００８２】
タグ部ＴＡＧＬ１ｂが保持する第２管理情報ＩＮＦＬ１ｂは、例えば、パイプライン制御部ＰＬＣからのアップデート情報ＵＰＤＬ１ｂに基づいて、更新される。
【００８３】
使用情報保持部ＬＲＵＬＬは、インデックスアドレスＰＡ［１８：７］毎に、選択情報ＳＩＮＦ（ＳＩＮＦ１［３：０］、ＳＩＮＦ２［３：０］、・・・、ＳＩＮＦ１５［３：０］、ＳＩＮＦ１６［３：０］）を保持する。選択情報ＳＩＮＦ１［３：０］に登録されたウェイＷＡＹは、データ保持部ＤＭＥＭの複数のウェイＷＡＹのうち、複数の第１キャッシュメモリＬ１のいずれにもアクセスされていない待機時間が最も長いウェイＷＡＹである。選択情報ＳＩＮＦの符号ＳＩＮＦの後の数字が大きくなるほど、待機時間が短いウェイＷＡＹが登録される。使用情報保持部ＬＲＵＬＬが保持する選択情報ＳＩＮＦは、例えば、パイプライン制御部ＰＬＣからのアップデート情報ＵＰＤＬＲＵに基づいて、更新される。
【００８４】
なお、タグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂおよび使用情報保持部ＬＲＵＬＬの構成は、図５に示す例に限定されない。
【００８５】
図６は、図３に示したスヌープロック部ＳＮＰｂの一例を示す。スヌープロック部ＳＮＰｂは、情報保持部ＭＳＮＰと複数の判定部ＤＪＳＢ（ＤＪＳＢ０−ＤＪＳＢｎ）と論理和回路ＯＲｓ２とを有する。
【００８６】
情報保持部ＭＳＮＰは、第１キャッシュメモリＬ１からデータを追い出す処理の対象となるデータを第１キャッシュメモリＬ１毎に管理する第３管理情報ＩＮＦＳＮＰ（ＩＮＦＳＮＰ０、・・・、ＩＮＦＳＮＰｎ）を保持する。図６に示す例では、情報保持部ＭＳＮＰは、”ｎ＋１”個（ｎは０以上の整数）の第３管理情報ＩＮＦＳＮＰを保持する。各第３管理情報ＩＮＦＳＮＰは、ウェイ情報ＷＡＹＬＬ［３：０］と、インデックスアドレスＰＡ［１８：７］と、バリッドＶＥＮＴとを有する。ウェイ情報ＷＡＹＬＬ［３：０］は、データ保持部の複数のウェイＷＡＹのうち、管理対象のデータを保持するウェイＷＡＹを示すウェイ識別子である。インデックスアドレスＰＡ［１８：７］は、管理対象のデータのメモリアドレスに含まれる第１インデックスを示す。バリッドＶＥＮＴは、管理対象のデータが有効であることを示す有効ビットである。すなわち、情報保持部ＭＳＮＰは、第３情報保持部の一例である。情報保持部ＭＳＮＰが保持する第３管理情報ＩＮＦＳＮＰは、例えば、パイプライン制御部ＰＬＣからのアップデート情報ＵＰＤＳＮＰに基づいて、更新される。
【００８７】
判定部ＤＪＳＢは、第２キャッシュメモリＬＬｂでキャッシュヒットしたデータが第１キャッシュメモリＬ１からデータを追い出す処理の仕掛かりのデータであるか否かを判定する。判定部ＤＪＳＢの末尾の数字および”ｎ”は、第３管理情報ＩＮＦＳＮＰの末尾の数字および”ｎ”に対応する。複数の判定部ＤＪＳＢは互いに同一または同様であるため、判定部ＤＪＳＢ０について説明する。
【００８８】
判定部ＤＪＳＢ０は、デコード部ＤＥＣｓ１、マッチ検出部ＭＤｓ１、論理和回路ＯＲｓ１および論理積回路ＡＮＤｓ１、ＡＮＤｓｗ０−ＡＮＤｓｗ１５を有する。論理積回路ＡＮＤｓｗの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。
【００８９】
デコード部ＤＥＣｓ１は、第３管理情報ＩＮＦＳＮＰ０内のウェイ情報ＷＡＹＬＬ［３：０］を情報保持部ＭＳＮＰから受ける。そして、デコード部ＤＥＣｓ１は、ウェイ情報ＷＡＹＬＬ［３：０］が示す論理値をデコードし、複数のウェイＷＡＹ０−ＷＡＹ１５の各々に対して真であるか否かを示すビットを含むデコード情報ＬＬＷ０−ＬＬＷ１５を生成する。例えば、ウェイ情報ＷＡＹＬＬ［３：０］が十進数で”１５”を示す場合、デコード部ＤＥＣｓ１は、デコード情報ＬＬＷ１５を真（例えば、論理値”１”）に設定し、デコード情報ＬＬＷ０−ＬＬＷ１４を偽（例えば、論理値”０”）に設定する。
【００９０】
デコード部ＤＥＣｓ１は、ウェイ情報ＷＡＹＬＬ［３：０］をデコードしたデコード情報ＬＬＷ０−ＬＬＷ１５を、論理積回路ＡＮＤｓｗ０−ＡＮＤｓｗ１５にそれぞれ出力する。例えば、デコード部ＤＥＣｓ１は、デコード情報ＬＬＷ０を論理積回路ＡＮＤｓｗ０に出力する。
【００９１】
論理積回路ＡＮＤｓｗ０は、パイプライン制御部ＰＬＣから受けたヒットウェイ情報ＬＬＨＴＷ０とデコード部ＤＥＣｓ１から受けたデコード情報ＬＬＷ０との論理積を演算し、演算結果を論理和回路ＯＲｓ１に出力する。論理積回路ＡＮＤｓｗ０以外の論理積回路ＡＮＤｓｗは、論理積回路ＡＮＤｓｗ０の説明におけるヒットウェイ情報ＬＬＨＴＷおよびデコード情報ＬＬＷの末尾の数字を、論理積回路ＡＮＤｓｗに対応する数字に読み替えることで説明される。
【００９２】
論理和回路ＯＲｓ１は、論理積回路ＡＮＤｓｗ０−ＡＮＤｓｗ１５のそれぞれの演算結果の論理和を演算し、演算結果を論理積回路ＡＮＤｓ１に出力する。
【００９３】
マッチ検出部ＭＤｓ１は、第３管理情報ＩＮＦＳＮＰ０内のインデックスアドレスＰＡ［１８：７］を情報保持部ＭＳＮＰから受ける。そして、マッチ検出部ＭＤｓ１は、投入部ＩＮＰｂから受けたアドレスＲＡＤ［１８：７］と、第３管理情報ＩＮＦＳＮＰ０内のインデックスアドレスＰＡ［１８：７］とを比較し、比較結果を論理積回路ＡＮＤｓ１に出力する。例えば、アドレスＲＡＤ［１８：７］とインデックスアドレスＰＡ［１８：７］とが一致する場合、マッチ検出部ＭＤｓ１は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤｓ１に出力する。また、アドレスＲＡＤ［１８：７］とインデックスアドレスＰＡ［１８：７］とが一致しない場合、マッチ検出部ＭＤｓ１は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤｓ１に出力する。
【００９４】
論理積回路ＡＮＤｓ１は、第３管理情報ＩＮＦＳＮＰ０内のバリッドＶＥＮＴを情報保持部ＭＳＮＰから受ける。そして、論理積回路ＡＮＤｓ１は、マッチ検出部ＭＤｓ１による比較結果と論理和回路ＯＲｓ１の演算結果と情報保持部ＭＳＮＰから受けたバリッドＶＥＮＴとの論理積を演算し、演算結果を示す情報ＡＤＭＥを論理和回路ＯＲｓ２に出力する。
【００９５】
論理和回路ＯＲｓ２は、判定部ＤＪＳＢ０−ＤＪＳＢｎから受けた情報ＡＤＭＥ０−ＡＤＭＥｎの論理和を演算し、演算結果をアドレスマッチ情報ＡＤＭＳとしてパイプライン制御部ＰＬＣに出力する。なお、スヌープロック部ＳＮＰｂの構成は、図６に示す例に限定されない。
【００９６】
図７は、図３に示したキャッシュミス制御部ＭＩＢの要部の一例を示す。キャッシュミス制御部ＭＩＢは、複数の制御バッファ部ＩＮＣＮＴＬ、論理積回路ＡＮＤｍ１、ＡＮＤｍ２および論理和回路ＯＲｍ１を有する。例えば、キャッシュミス制御部ＭＩＢは、複数の制御バッファ部ＩＮＣＮＴＬのいずれかに空きが有る場合に、パイプライン制御部ＰＬＣからの指示を受け付ける。制御バッファ部ＩＮＣＮＴＬは、パイプライン制御部ＰＬＣから受ける情報ＶＡＬＩＤ、ＢＴＣ、ＮＭＯＲＰ、ＭＯＲＰＣＴ、ＷＡＹＩＤを保持し、メモリ制御部ＭＣＮＴＬ等から受ける情報ＲＥＱＣＴを保持する。
【００９７】
例えば、情報ＶＡＬＩＤは、第２キャッシュメモリＬＬｂがキャッシュミスした場合に論理値”１”に設定される信号である。情報ＢＴＣは、ブロックタイプチェンジ処理を要求する場合に論理値”１”に設定される信号である。情報ＮＭＯＲＰは、処理要求ＭＯＲＰの発行を抑止する場合に論理値”１”に設定される信号である。情報ＭＯＲＰＣＴは、処理要求ＭＯＲＰに基づく処理が終了した場合に論理値”１”に設定される信号である。情報ＷＡＹＩＤは、データ保持部ＤＭＥＭの複数のウェイＷＡＹのうち、追い出し対象データを保持しているウェイＷＡＹを示すウェイ識別子である。情報ＷＡＹＩＤは、処理要求ＭＯＲＰが投入部ＩＮＰｂに発行される場合に、情報ＬＬＷＡＹとしてパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して転送される。情報ＲＥＱＣＴは、要求データがメモリ制御部ＭＣＮＴＬ等から転送された場合に論理値”１”に設定される信号である。
【００９８】
論理積回路ＡＮＤｍ１は、信号ＶＡＬＩＤと信号ＢＴＣの反転信号と信号ＮＭＯＲＰの反転信号と信号ＭＯＲＰＣＴの反転信号との論理積を演算し、演算結果を示す情報ＭＯＲＰを投入部ＩＮＰｂに出力する。例えば、論理値”１”の情報ＭＯＲＰは、処理要求ＭＯＲＰの発行を意味する。
【００９９】
論理和回路ＯＲｍ１は、信号ＮＭＯＲＰと信号ＭＯＲＰＣＴとの論理和を演算し、演算結果を示す情報を論理積回路ＡＮＤｍ２に出力する。
【０１００】
論理積回路ＡＮＤｍ２は、信号ＶＡＬＩＤと論理和回路ＯＲｍ１の演算結果と信号ＲＥＱＣＴとの論理和を演算し、演算結果を示す情報ＭＶＩＮを投入部ＩＮＰｂに出力する。例えば、論理値”１”の情報ＭＶＩＮは、処理要求ＭＶＩＮの発行を意味する。なお、キャッシュミス制御部ＭＩＢの構成は、図７に示す例に限定されない。
【０１０１】
図８は、図３に示したデータ選択部ＤＳＥＬｂの一例を示す。図８に示す一点鎖線は、パイプライン処理の各ステージの境界に対応する。また、図８に示す網掛けの矩形は、パイプラインレジスタを示す。図８に示す例では、データ保持部ＤＭＥＭから出力されるデータ幅は１２８バイトである。また、メモリ制御部ＭＣＮＴＬ等へのデータ転送は、３２バイト×４サイクルで実行される。
【０１０２】
データ選択部ＤＳＥＬｂは、分割部ＤＩＶと複数の単位回路部ＵＣ（ＵＣ０−ＵＣ７、ＵＣｍ）とを有する。分割部ＤＩＶは、データ保持部ＤＭＥＭから転送された１２８バイトのデータを３２バイトのデータに分割し、３２バイトの４つのデータを各単位回路部ＵＣに転送する。
【０１０３】
単位回路部ＵＣ０−ＵＣ７は、コアＣＯＲＥ０−ＣＯＲＥ７にそれぞれ対応して設けられる。単位回路部ＵＣ０−ＵＣ７の末尾の数字は、コアＣＯＲＥ０−ＣＯＲＥ７の末尾の数字に対応する。例えば、コアＣＯＲＥ０は、データ保持部ＤＭＥＭから単位回路部ＵＣ０を介してデータを受ける。また、単位回路部ＵＣｍは、メモリ制御部ＭＣＮＴＬおよび通信インタフェース部ＣＩＦに対応して設けられる。複数の単位回路部ＵＣは互いに同一または同様であるため、単位回路部ＵＣｍについて説明する。
【０１０４】
単位回路部ＵＣｍは、分割部ＤＩＶから転送される４つの３２バイトのデータをそれぞれ保持する４つのバッファ部ＢＵＦ（ＢＵＦ１、ＢＵＦ２、ＢＵＦ３、ＢＵＦ４）と、選択制御部ＤＳＣＮＴＬと、選択部ＳＥＬｂｕｆとを有する。選択制御部ＤＳＣＮＴＬは、４つのバッファ部ＢＵＦを順に選択することにより、３２バイトのデータを選択部ＳＥＬｂｕｆを介して順次出力する。これにより、１２８バイトのデータは、３２バイトに分割されてメモリ制御部ＭＣＮＴＬ等に転送される。
【０１０５】
このように、コアＣＯＲＥに応答するデータは、メモリ制御部ＭＣＮＴＬおよび通信インタフェース部ＣＩＦ等に応答するデータとは別に管理される。これにより、例えば、データ選択部ＤＳＥＬｂは、メモリ制御部ＭＣＮＴＬとの間のデータバスが先行する処理要求のデータ応答により占有される場合でも、後続の読み出し要求ＲＥＡＤがヒットする場合にコアＣＯＲＥへのデータ応答を連続サイクルで実行できる。
【０１０６】
なお、データ選択部ＤＳＥＬｂの構成は、図８に示す例に限定されない。また、データ保持部ＤＭＥＭから出力されるデータ幅がメモリ制御部ＭＣＮＴＬ等へのデータ転送のデータ幅以下である場合、データ選択部ＤＳＥＬｂは、省かれてもよい。
【０１０７】
図９は、図２に示したパイプライン制御部ＰＬＣの一例を示す。図９に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。図９に示す入力情報ＳＩＮは、例えば、投入部ＩＮＰｂから投入される処理要求、要求データのメモリアドレス等を含む。
【０１０８】
パイプライン制御部ＰＬＣは、選択判定部ＳＤＪ、ヒット判定部ＨＤＪｂ、エンコード部ＥＮＣ、コア判定部ＣＤＪｂ、データ制御部ＤＡＴＡＣＬ、条件一致検出部ＣＯＮＤｂ、使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｂを有する。さらに、パイプライン制御部ＰＬＣは、コマンド制御部ＣＭＤＣＬを有する。
【０１０９】
パイプライン処理のステージ０では、選択判定部ＳＤＪおよびヒット判定部ＨＤＪｂが処理を実行する。例えば、選択判定部ＳＤＪは、使用情報保持部ＬＲＵＬＬに保持された選択情報ＳＩＮＦのうち、情報ＳＩＮに含まれるインデックスアドレスＰＡ［１８：７］により指定される選択情報ＳＩＮＦを参照する。そして、選択判定部ＳＤＪは、データ保持部ＤＭＥＭの複数のウェイＷＡＹのうちのどのウェイＷＡＹからデータを追い出すかを、インデックスアドレスＰＡ［１８：７］により指定される選択情報ＳＩＮＦ等に基づいて選択する。以下、データ保持部ＤＭＥＭから追い出すデータを保持しているウェイＷＡＹは、ビクティムウェイＷＡＹとも称される。選択判定部ＳＤＪは、ビクティムウェイＷＡＹを示す情報ＲＷＡＹＩＤを使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｂに出力する。
【０１１０】
例えば、選択判定部ＳＤＪは、複数のウェイＷＡＹのうち、第１キャッシュメモリＬ１に保持されたデータを保持しているウェイＷＡＹ以外のウェイＷＡＹから優先的に、選択情報ＳＩＮＦに基づいてビクティムウェイＷＡＹを選択する。第１キャッシュメモリＬ１に保持されたデータを保持しているウェイＷＡＹは、例えば、インデックスアドレスＰＡ［１８：７］で示される第１管理情報ＩＮＦＬＬｂ内のタイプコードＴＣＬ１［１：０］に基づいて特定される。例えば、選択判定部ＳＤＪは、タイプコードＴＣＬ１［１：１］とタイプコードＴＣＬ１［０：０］との論理和結果が論理値”１”である場合、対応するウェイＷＡＹは第１キャッシュメモリＬ１に保持されたデータを保持していると判定する。
【０１１１】
ヒット判定部ＨＤＪｂは、第２キャッシュメモリＬＬｂがキャッシュヒットするか否かを判定する。すなわち、ヒット判定部ＨＤＪｂは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求される要求データがデータ保持部ＤＭＥＭに保持されているかを第１管理情報ＩＮＦＬＬｂに基づいて判定する状態判定部の一例である。ヒット判定部ＨＤＪｂの詳細は、図１０で説明する。
【０１１２】
ステージ１では、コア判定部ＣＤＪｂ、データ制御部ＤＡＴＡＣＬ、エンコード部ＥＮＣが処理を実行する。
【０１１３】
コア判定部ＣＤＪｂは、複数の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを判定する。すなわち、コア判定部ＣＤＪｂは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求される要求データを、複数の第１キャッシュメモリＬ１のいずれかが保持しているか否かを判定する。コア判定部ＣＤＪｂの詳細は、図１１で説明する。
【０１１４】
データ制御部ＤＡＴＡＣＬは、ヒット判定部ＨＤＪｂの判定結果に基づいて、データ保持部ＤＭＥＭにアクセスする。エンコード部ＥＮＣは、ヒット判定部ＨＤＪｂから出力されたウェイ数分のヒットウェイ情報ＬＬＨＴＷ（１６本の信号）をエンコードする。例えば、ウェイＷＡＹ１５がヒットした場合、エンコード部ＥＮＣは、論理値”０”のヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＩＴＷ１４と、論理値”１”のヒットウェイ情報ＬＬＨＴＷ１５とをヒット判定部ＨＤＪｂから受ける。この場合、エンコード部ＥＮＣは、１６本の信号ＬＬＨＴＷ（ＬＬＨＴＷ０−ＬＬＨＩＴＷ１５）を、十進数で”１５”を示す４ビットのヒットウェイ情報ＬＬＨＴＷ［３：０］にエンコードする。そして、エンコード部ＥＮＣは、エンコードしたヒットウェイ情報ＬＬＨＴＷを処理判定部ＰＤＪｂに出力する。
【０１１５】
さらに、ステージ１では、スヌープロック部ＳＮＰｂから処理判定部ＰＤＪｂにアドレスマッチ情報ＡＤＭＳが出力され、キャッシュミス制御部ＭＩＢから処理判定部ＰＤＪｂにアドレスマッチ情報ＡＤＭＭが出力される。アドレスマッチ情報ＡＤＭＭは、例えば、パイプライン制御部ＰＬＣに投入された処理要求で要求されるデータのアドレスが先行する処理要求によってキャッシュミス制御部ＭＩＢの処理対象となっている場合に論理値”１”に設定される信号である。
【０１１６】
ステージ２では、使用情報更新部ＩＮＦＵＰＤおよび条件一致検出部ＣＯＮＤｂが処理を実行する。使用情報更新部ＩＮＦＵＰＤは、要求データのアドレスＲＡＤ［１８：７］、選択判定部ＳＤＪにより選択されたビクティムウェイＷＡＹを示す情報ＲＷＡＹＩＤ等に基づいて、アップデート情報ＵＰＤＬＲＵを処理判定部ＰＤＪｂに出力する。
【０１１７】
条件一致検出部ＣＯＮＤｂは、追い出し要求ＭＯＲＰの発行を抑止する抑止条件が満たされるか判定する際の事前判定を実行する。例えば、以下に示す第１条件または第２条件が満たされる場合、抑止条件が満たされる。
【０１１８】
第１条件は、追い出し対象データの状態が”無効”であることである。第２条件は、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであり、追い出し対象データの状態が”変更”以外の状態であり、かつ、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。
【０１１９】
なお、追い出し対象データの状態が”変更”以外の状態（追い出し対象データの状態が”無効”を含む）は、追い出し対象データの状態が第２キャッシュメモリＬＬｂに接続された主記憶装置ＭＥＭへの書き戻しを必要としない状態である。
【０１２０】
条件一致検出部ＣＯＮＤｂは、情報ＳＩＮに含まれるインデックスアドレスＰＡ［１８：７］により指定される各ウェイＷＡＹのデータ（以下、追い出し対象データの候補とも称する）が第１条件または第２条件を満たすか検出する。そして、条件一致検出部ＣＯＮＤｂは、各ウェイＷＡＹの検出結果を示す情報ＭＷＡＹを処理判定部ＰＤＪｂに出力する。条件一致検出部ＣＯＮＤｂの詳細は、図１２で説明する。また、ステージ２では、データ保持部ＤＭＥＭからデータが出力される。
【０１２１】
ステージ３では、処理判定部ＰＤＪｂが処理を実行する。例えば、処理判定部ＰＤＪｂは、パイプライン制御部ＰＬＣに投入された処理要求に基づいて、処理要求の中止判定、タグ部ＴＡＧＬＬｂの更新判定、タグ部ＴＡＧＬＬｂの更新データの生成、キャッシュミス制御部ＭＩＢへのリクエスト生成等を実行する。また、処理判定部ＰＤＪｂは、処理要求ＭＯＲＰを抑止するか否かに拘わらず、データ保持部ＤＭＥＭからデータを追い出す処理が必要であるか否かを判定する。また、処理判定部ＰＤＪｂは、選択判定部ＳＤＪにより選択されたビクティムウェイＷＡＹと、条件一致検出部ＣＯＮＤｂによる各ウェイＷＡＹの検出結果とに基づいて、追い出し対象データが抑止条件を満たすか判定する。そして、処理判定部ＰＤＪｂは、追い出し対象データが抑止条件を満たす場合、追い出し要求ＭＯＲＰの発行の抑止をキャッシュミス制御部ＭＩＢに情報ＮＭＯＲＰを用いて通知する。
【０１２２】
すなわち、処理判定部ＰＤＪｂは、第２キャッシュメモリＬＬｂがキャッシュミスし、かつ、要求データを登録する記憶領域に空きがない場合、追い出し要求ＭＯＲＰを発行せずに、複数の記憶領域のいずれかからデータを追い出す処理部の一例である。なお、処理判定部ＰＤＪｂの詳細は、図１３で説明する。
【０１２３】
ステージ４では、コマンド制御部ＣＭＤＣＬが処理を実行する。例えば、コマンド制御部ＣＭＤＣＬは、情報ＳＩＮＦ等に基づいてコマンドＣＭＤを、コアＣＯＲＥ、メモリ制御部ＭＣＮＴＬ、通信インタフェース部ＣＩＦ等に発行する。
【０１２４】
また、ステージ４では、ライトイネーブル信号ＷＥ、更新データＷＤ、アドレスＲＡＤ［１８：７］等により、タグ部ＴＡＧＬＬｂが更新される。情報ＵＰＤＬ１ｂによりタグ部ＴＡＧＬ１ｂが更新され、情報ＵＰＤＬＲＵにより使用情報保持部ＬＲＵＬＬが更新され、情報ＵＰＤＳＮＰによりスヌープロック部ＳＮＰｂが更新される。さらに、情報ＶＡＬＩＤ、ＢＴＣ、ＮＭＯＲＰ、ＭＯＲＰＣＴ、ＷＡＹＩＤ等によりキャッシュミス制御部ＭＩＢが制御される。また、リプレースを指示する情報ＩＲＰＬ、スヌープを指示する情報ＩＳＮＰ等がコアＣＯＲＥに出力される。
【０１２５】
図１０は、図９に示したヒット判定部ＨＤＪｂの一例を示す。ヒット判定部ＨＤＪｂは、デコード部ＤＥＣｈ１と、複数の判定部ＤＪＷ（ＤＪＷ０−ＤＪＷ１５）と、選択部ＳＥＬｈ２、ＳＥＬｈ３とを有する。
【０１２６】
デコード部ＤＥＣｈ１は、処理要求ＭＯＲＰが発行された場合、ビクティムウェイＷＡＹを示す情報ＬＬＷＡＹ［３：０］をキャッシュミス制御部ＭＩＢから受ける。そして、デコード部ＤＥＣｈ１は、情報ＬＬＷＡＹ［３：０］が示す論理値をデコードし、複数のウェイＷＡＹ０−ＷＡＹ１５の各々に対して真であるか否かを示すビットを含むデコード情報ＬＬＷＡＹ０−ＬＬＷＡＹ１５を生成する。デコード部ＤＥＣｈ１は、情報ＬＬＷＡＹ［３：０］をデコードしたデコード情報ＬＬＷＡＹ０−ＬＬＷＡＹ１５を、判定部ＤＪＷ０−ＤＪＷ１５にそれぞれ出力する。例えば、デコード部ＤＥＣｈ１は、デコード情報ＬＬＷＡＹ０を判定部ＤＪＷ０に出力する。
【０１２７】
判定部ＤＪＷの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。複数の判定部ＤＪＷは互いに同一または同様であるため、判定部ＤＪＷ０について説明する。
【０１２８】
判定部ＤＪＷ０は、マッチ検出部ＭＤｈ１、論理和回路ＯＲｈ１、論理積回路ＡＮＤｈ１および選択部ＳＥＬｈ１を有する。マッチ検出部ＭＤｈ１は、情報ＳＩＮに含まれるアドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０内のタグアドレスＰＡ［４７：１９］を、タグ部ＴＡＧＬＬｂから受ける。そして、マッチ検出部ＭＤｈ１は、投入部ＩＮＰｂから受けたアドレスＲＡＤ［４７：１９］と、第１管理情報ＩＮＦＬＬｂ０内のタグアドレスＰＡ［４７：１９］とを比較し、比較結果を論理積回路ＡＮＤｈ１に出力する。例えば、アドレスＲＡＤ［４７：１９］とタグアドレスＰＡ［４７：１９］とが一致する場合、マッチ検出部ＭＤｈ１は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤｈ１に出力する。また、アドレスＲＡＤ［４７：１９］とタグアドレスＰＡ［４７：１９］とが一致しない場合、マッチ検出部ＭＤｈ１は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤｈ１に出力する。
【０１２９】
論理和回路ＯＲｈ１は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０内のタイプコードＴＣＬＬ［１：０］を、タグ部ＴＡＧＬＬｂから受ける。そして、論理和回路ＯＲｈ１は、タイプコードＴＣＬＬ［０：０］とタイプコードＴＣＬＬ［１：１］との論理和を演算し、演算結果（ＴＣＬＬ［０：０］とＴＣＬＬ［１：１］との論理和結果）を論理積回路ＡＮＤｈ１に出力する。
【０１３０】
論理積回路ＡＮＤｈ１は、マッチ検出部ＭＤｈ１による比較結果と論理和回路ＯＲｈ１の演算結果との論理積を演算し、演算結果をヒットウェイ情報ＨＴＷＡＹ０として選択部ＳＥＬｈ１に出力する。例えば、アクセス対象のデータがデータ保持部ＤＭＥＭのウェイＷＡＹ０に保持されている場合、判定部ＤＪＷ０は、真（例えば、論理値”１”）を示すヒットウェイ情報ＬＬＨＴＷＡＹ０を選択部ＳＥＬｈ１に出力する。
【０１３１】
選択部ＳＥＬｈ１は、ヒットウェイ情報ＨＴＷＡＹ０、デコード情報ＬＬＷＡＹ０および選択信号ＡＣＣＷＡＹＶＡＬを受け、情報ＬＬＨＴＷ０を選択部ＳＥＬｈ２、ＳＥＬｈ３、データ制御部ＤＡＴＡＣＬ等に出力する。例えば、選択部ＳＥＬｈ１は、選択信号ＡＣＣＷＡＹＶＡＬに基づいて、情報ＨＴＷＡＹ０、ＬＬＷＡＹ０のいずれかを情報ＬＬＨＴＷ０として選択する。
【０１３２】
ここで、選択信号ＡＣＣＷＡＹＶＡＬは、例えば、パイプライン制御部ＰＬＣに処理要求ＭＯＲＰが投入された場合、論理値”１”に設定される。選択部ＳＥＬｈ１は、選択信号ＡＣＣＷＡＹＶＡＬが論理値”１”の場合、情報ＬＬＷＡＹ０を選択する。すなわち、選択部ＳＥＬｈ１は、処理要求ＭＯＲＰがパイプライン制御部ＰＬＣに投入された場合、情報ＬＬＷＡＹ０を選択する。また、選択部ＳＥＬｈ１は、処理要求ＲＥＡＤがパイプライン制御部ＰＬＣに投入された場合、情報ＨＴＷＡＹ０を選択する。処理要求ＭＶＩＮがパイプライン制御部ＰＬＣに投入された場合、ブロックタイプチェンジ処理の要求では、情報ＨＴＷＡＹ０が選択され、ブロックタイプチェンジ処理の要求以外では、情報ＬＬＷＡＹ０が選択される。
【０１３３】
選択部ＳＥＬｈ２は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０−ＩＮＦＬＬｂ１５内のタイプコードＴＣＬＬ［１：０］を入力信号として、タグ部ＴＡＧＬＬｂから受ける。また、選択部ＳＥＬｈ２は、ヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＴＷ１５を選択信号として、判定部ＤＪＷ０−ＤＪＷ１５から受ける。そして、選択部ＳＥＬｈ２は、タグ部ＴＡＧＬＬｂから受けた複数のタイプコードＴＣＬＬ［１：０］のうち、ヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＴＷ１５で指定されるタイプコードＴＣＬＬ［１：０］をヒットデータ情報ＨＴＣＬＬ［１：０］として選択する。
【０１３４】
例えば、選択部ＳＥＬｈ２は、真を示すヒットウェイ情報ＬＬＨＴＷに対応する第１管理情報ＩＮＦＬＬｂ内のタイプコードＴＣＬＬ［１：０］を、ヒットデータ情報ＨＴＣＬＬ［１：０］として選択する。そして、選択部ＳＥＬｈ２は、ヒットデータ情報ＨＴＣＬＬ［１：０］を処理判定部ＰＤＪｂに出力する。
【０１３５】
選択部ＳＥＬｈ３は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０−ＩＮＦＬＬｂ１５内のタイプコードＴＣＬ１［１：０］を入力信号として、タグ部ＴＡＧＬＬｂから受ける。また、選択部ＳＥＬｈ３は、ヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＴＷ１５を選択信号として、判定部ＤＪＷ０−ＤＪＷ１５から受ける。そして、選択部ＳＥＬｈ３は、タグ部ＴＡＧＬＬｂから受けた複数のタイプコードＴＣＬ１［１：０］のうち、ヒットウェイ情報ＬＬＨＴＷ０−ＬＬＨＴＷ１５で指定されるタイプコードＴＣＬ１［１：０］を情報ＨＴＣＬ１ｂ［１：０］として選択する。
【０１３６】
例えば、選択部ＳＥＬｈ３は、真を示すヒットウェイ情報ＬＬＨＴＷに対応する第１管理情報ＩＮＦＬＬｂ内のタイプコードＴＣＬＬ［１：０］を、情報ＨＴＣＬ１ｂ［１：０］として選択する。そして、選択部ＳＥＬｈ３は、情報ＨＴＣＬ１ｂ［１：０］をコア判定部ＣＤＪｂに出力する。
【０１３７】
図１１は、図９に示したコア判定部ＣＤＪｂの一例を示す。コア判定部ＣＤＪｂは、複数の判定部ＤＪＬ１ｂ（ＤＪＬ１ｂ０−ＤＪＬ１ｂ６３）と、複数の論理和回路ＯＲｃｗ（ＯＲｃｗ０−ＯＲｃｗ１５）と、選択部ＳＥＬｃ１とを有する。判定部ＤＪＬ１ｂの末尾の数字は、第２管理情報ＩＮＦＬ１ｂの末尾の数字に対応する。複数の判定部ＤＪＬ１ｂは互いに同一または同様であるため、判定部ＤＪＬ１ｂ０について説明する。
【０１３８】
判定部ＤＪＬ１ｂ０は、デコード部ＤＥＣｃ１、マッチ検出部ＭＤｃ１、論理和回路ＯＲｃ１および論理積回路ＡＮＤｃ１、ＡＮＤｃ２、ＡＮＤｃｗ０−ＡＮＤｃｗ１５を有する。論理積回路ＡＮＤｃｗの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。
【０１３９】
デコード部ＤＥＣｃ１は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｂ０内のウェイ情報ＷＡＹＬＬ［３：０］を、タグ部ＴＡＧＬ１ｂから受ける。そして、デコード部ＤＥＣｃ１は、ウェイ情報ＷＡＹＬＬ［３：０］が示す論理値をデコードし、複数のウェイＷＡＹ０−ＷＡＹ１５の各々に対して真であるか否かを示すビットを含むデコード情報ＬＬＷ０−ＬＬＷ１５を生成する。例えば、ウェイ情報ＷＡＹＬＬ［３：０］が十進数で”１５”を示す場合、デコード部ＤＥＣｃ１は、デコード情報ＬＬＷ１５を真（例えば、論理値”１”）に設定し、デコード情報ＬＬＷ０−ＬＬＷ１４を偽（例えば、論理値”０”）に設定する。
【０１４０】
デコード部ＤＥＣｃ１は、ウェイ情報ＷＡＹＬＬ［３：０］をデコードしたデコード情報ＬＬＷ０−ＬＬＷ１５を、論理積回路ＡＮＤｃｗ０−ＡＮＤｃｗ１５にそれぞれ出力する。例えば、デコード部ＤＥＣｃ１は、デコード情報ＬＬＷ０を論理積回路ＡＮＤｃｗ０に出力する。
【０１４１】
論理積回路ＡＮＤｃｗ０は、ヒット判定部ＨＤＪｂの判定部ＤＪＷ０から受けたヒットウェイ情報ＬＬＨＴＷ０とデコード部ＤＥＣｃ１から受けたデコード情報ＬＬＷ０との論理積を演算し、演算結果を論理和回路ＯＲｃ１に出力する。論理積回路ＡＮＤｃｗ０以外の論理積回路ＡＮＤｃｗは、論理積回路ＡＮＤｃｗ０の説明における判定部ＤＪＷ、ヒットウェイ情報ＬＬＨＴＷおよびデコード情報ＬＬＷの末尾の数字を、論理積回路ＡＮＤｃｗに対応する数字に読み替えることで説明される。
【０１４２】
論理和回路ＯＲｃ１は、論理積回路ＡＮＤｃｗ０−ＡＮＤｃｗ１５のそれぞれの演算結果の論理和を演算し、演算結果を論理積回路ＡＮＤｃ１に出力する。
【０１４３】
マッチ検出部ＭＤｃ１は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｂ０内の差分情報ＰＡ［１８：１４］を、タグ部ＴＡＧＬ１ｂから受ける。そして、マッチ検出部ＭＤｃ１は、投入部ＩＮＰｂから受けたアドレスＲＡＤ［１８：１４］と、第２管理情報ＩＮＦＬ１ｂ０内の差分情報ＰＡ［１８：１４］とを比較し、比較結果を論理積回路ＡＮＤｃ１に出力する。例えば、アドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが一致する場合、マッチ検出部ＭＤｃ１は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤｃ１に出力する。また、アドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが一致しない場合、マッチ検出部ＭＤｃ１は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤｃ１に出力する。
【０１４４】
すなわち、マッチ検出部ＭＤｃ１は、アドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが一致する場合を真とする一致フラグを複数の第１キャッシュメモリＬ１の各々のウェイ毎に生成する一致フラグ生成部の一例である。
【０１４５】
論理積回路ＡＮＤｃ１は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｂ０内のバリッドＶＬ１を、タグ部ＴＡＧＬ１ｂから受ける。
【０１４６】
そして、論理積回路ＡＮＤｃ１は、マッチ検出部ＭＤｃ１による比較結果と論理和回路ＯＲｃ１の演算結果とタグ部ＴＡＧＬ１ｂから受けたバリッドＶＬ１との論理積を演算し、演算結果を論理積回路ＡＮＤｃ２に出力する。
【０１４７】
論理積回路ＡＮＤｃ２は、ヒット判定部ＨＤＪｂから受けた情報ＨＴＣＬ１ｂと論理積回路ＡＮＤｃ１の演算結果との論理積を演算し、演算結果をコアデータ情報ＨＴＣＬ１００［１：０］として出力する。
【０１４８】
論理和回路ＯＲｃｗ０は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０内のタイプコードＴＣＬ１［１：０］をタグ部ＴＡＧＬＬｂから受ける。そして、論理和回路ＯＲｃｗ０は、タグ部ＴＡＧＬＬｂから受けたタイプコードＴＣＬ１［０：０］とタイプコードＴＣＬ１［１：１］との論理和を演算し、演算結果を所持情報ＣＷＡＹ０として条件一致検出部ＣＯＮＤｂに出力する。なお、論理和回路ＯＲｃｗおよび所持情報ＣＷＡＹの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。なお、論理和回路ＯＲｃｗ０以外の論理和回路ＯＲｃｗは、論理和回路ＯＲｃｗ０の説明における第１管理情報ＩＮＦＬＬｂおよび所持情報ＣＷＡＹの末尾の数字を、論理和回路ＯＲｃｗに対応する数字に読み替えることで説明される。例えば、第１キャッシュメモリＬ１に保持されたデータを保持しているウェイＷＡＹに対応する所持情報ＣＷＡＹは、論理値”１”に設定される。
【０１４９】
選択部ＳＥＬｃ１は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０−ＩＮＦＬＬｂ１５内のタイプコードＴＣＬ１［１：０］を入力信号として、タグ部ＴＡＧＬＬｂから受ける。また、選択部ＳＥＬｃ１は、要求ウェイ情報ＲＥＱＣＷＡＹを選択信号として、投入部ＩＮＰｂから受ける。そして、選択部ＳＥＬｃ１は、タグ部ＴＡＧＬＬｂから受けた複数のタイプコードＴＣＬ１［１：０］のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＥＱＴＣＬ１［１：０］として選択する。選択部ＳＥＬｃ１により選択された要求データ情報ＲＥＱＴＣＬ１［１：０］は、処理判定部ＰＤＪｂに転送される。
【０１５０】
図１２は、図９に示した条件一致検出部ＣＯＮＤｂの一例を示す。条件一致検出部ＣＯＮＤｂは、複数の検出部ＤＥＴｂ（ＤＥＴｂ０−ＤＥＴｂ１５）を有する。検出部ＤＥＴｂの末尾の数字は、第２キャッシュメモリＬＬｂのウェイＷＡＹの末尾の数字に対応する。複数の検出部ＤＥＴｂは互いに同一または同様であるため、検出部ＤＥＴｂ０について説明する。
【０１５１】
検出部ＤＥＴｂ０は、ウェイＷＡＹ０に保持されたデータのうち、インデックスアドレスＰＡ［１８：７］で示される追い出し対象データの候補が抑止条件を満たすかを検出する。
【０１５２】
例えば、検出部ＤＥＴｂ０は、排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、否定論理積回路ＮＡＮＤｄ１、論理積回路ＡＮＤｄ１、ＡＮＤｄ２、否定論理和回路ＮＯＲｄ１および論理和回路ＯＲｄ１を有する。図１２に示す情報ＣＭＧＩＤは、第２キャッシュメモリＬＬｂが所属するｃｃＮＵＭＡを構成するノードに関する固定情報であり、ｃｃＮＵＭＡを構成するノード毎に固有の番号が割り当てられる。情報ＣＭＧＩＤは、アドレスＲＡＤ［４７：０］の上位ビットで判別される。図２に示す情報処理装置ＩＰＥｂでは、４つのＣＭＧが存在するため、アドレスＲＡＤ［４７：０］の上位２ビットのアドレスＲＡＤ［４７：４６］が情報ＣＭＧＩＤに割り当てられる。
【０１５３】
排他的否定論理和回路ＥＮＯＲｄ２は、情報ＳＩＮに含まれるアドレスＲＡＤ［４７：４７］と情報ＣＭＧＩＤ［１：１］との排他的否定論理和を演算し、演算結果を論理積回路ＡＮＤｄ２に出力する。例えば、排他的否定論理和回路ＥＮＯＲｄ２は、アドレスＲＡＤ［４７：４７］が情報ＣＭＧＩＤ［１：１］に一致する場合に、論理値”１”を論理積回路ＡＮＤｄ２に出力する。
【０１５４】
排他的否定論理和回路ＥＮＯＲｄ１は、情報ＳＩＮに含まれるアドレスＲＡＤ［４６：４６］と情報ＣＭＧＩＤ［０：０］との排他的否定論理和を演算し、演算結果を論理積回路ＡＮＤｄ２に出力する。例えば、排他的否定論理和回路ＥＮＯＲｄ１は、アドレスＲＡＤ［４６：４６］が情報ＣＭＧＩＤ［０：０］に一致する場合に、論理値”１”を論理積回路ＡＮＤｄ２に出力する。
【０１５５】
論理積回路ＡＮＤｄ２は、排他的否定論理和回路ＥＮＯＲｄ１の演算結果と排他的否定論理和回路ＥＮＯＲｄ２の演算結果との論理積を演算し、演算結果を論理積回路ＡＮＤｄ１に出力する。すなわち、論理積回路ＡＮＤｄ２は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補がｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータである場合、論理値”１”を論理積回路ＡＮＤｄ１に出力する。
【０１５６】
否定論理積回路ＮＡＮＤｄ１は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０内のタイプコードＴＣＬＬ［１：０］をタグ部ＴＡＧＬＬｂから受ける。そして、否定論理積回路ＮＡＮＤｄ１は、タグ部ＴＡＧＬＬｂから受けたタイプコードＴＣＬＬ［０：０］の反転信号とタイプコードＴＣＬＬ［１：１］との否定論理積を演算し、演算結果を論理積回路ＡＮＤｄ１に出力する。すなわち、否定論理積回路ＮＡＮＤｄ１は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補の状態が”変更”以外の場合、論理値”１”を論理積回路ＡＮＤｄ１に出力する。
【０１５７】
論理積回路ＡＮＤｄ１は、論理積回路ＡＮＤｄ２の演算結果と所持情報ＣＷＡＹ０の反転信号と否定論理積回路ＮＡＮＤｄ１の演算結果との論理積を演算し、演算結果を論理和回路ＯＲｄ１に出力する。すなわち、論理積回路ＡＮＤｄ１は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補が図１１で説明した第２条件を満たす場合、論理値”１”を論理和回路ＯＲｄ１に出力する。
【０１５８】
否定論理和回路ＮＯＲｄ１は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｂ０内のタイプコードＴＣＬＬ［１：０］をタグ部ＴＡＧＬＬｂから受ける。そして、否定論理和回路ＮＯＲｄ１は、タグ部ＴＡＧＬＬｂから受けたタイプコードＴＣＬＬ［０：０］とタイプコードＴＣＬＬ［１：１］との否定論理和を演算し、演算結果を論理和回路ＯＲｄ１に出力する。すなわち、否定論理和回路ＮＯＲｄ１は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補の状態が”無効”である場合（図１１で説明した第１条件を満たす場合）、論理値”１”を論理和回路ＯＲｄ１に出力する。
【０１５９】
論理和回路ＯＲｄ１は、論理積回路ＡＮＤｄ１の演算結果と否定論理和回路ＮＯＲｄ１の演算結果との論理和を演算し、演算結果をマッチウェイ情報ＭＷＡＹ０として処理判定部ＰＤＪｂに出力する。すなわち、論理和回路ＯＲｄ１は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補が図１１で説明した第１条件または第２条件を満たす場合、論理値”１”を論理和回路ＯＲｄ１に出力する。
【０１６０】
図１３は、図９に示した処理判定部ＰＤＪｂの一例を示す。図１３に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。処理判定部ＰＤＪｂは、追い出し要求完了判定部ＣＴＤＪ、追い出し実行判定部ＥＸＤＪ、指示生成部ＩＧＥＮ、第２キャッシュタグ更新判定部ＴＧＤＪ、第２キャッシュタグデータ生成部ＴＤＧＥＮおよび第１キャッシュ制御部ＣＭＣＮＴＬｂを有する。さらに、処理判定部ＰＤＪｂは、アボート判定部ＡＢＤＪ、インターロック制御部ＩＮＴＣＬ、論理積回路ＡＮＤｐ１、ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ４、ＡＮＤｐ５、論理和回路ＯＲｐ１、選択部ＳＥＬｐ１、ＳＥＬｐ２、ＳＥＬｐ３およびデコード部ＤＥＣを有する。
【０１６１】
選択部ＳＥＬｐ１は、各ウェイＷＡＹの追い出し対象データの候補が抑止条件を満たすかを示す各ウェイＷＡＹのマッチウェイ情報ＭＷＡＹ０−ＭＷＡＹ１５のうち、情報ＲＷＡＹＩＤが示すビクティムウェイＷＡＹに対応するマッチウェイ情報ＭＷＡＹを選択する。そして、選択部ＳＥＬｐ１は、情報ＲＷＡＹＩＤに基づいて選択したマッチウェイ情報ＭＷＡＹを論理積回路ＡＮＤｐ１に出力する。情報ＲＷＡＹＩＤに基づいて選択されたマッチウェイ情報ＭＷＡＹは、ビクティムウェイＷＡＹに保持された追い出し対象データが抑止条件を満たすかを示す。例えば、追い出し対象データが抑止条件を満たす場合、論理値”１”の信号が論理積回路ＡＮＤｐ１に出力される。すなわち、選択部ＳＥＬｐ１および図１２に示した条件一致検出部ＣＯＮＤｂは、抑止条件が満たされるか否かを判定する条件判定部の一例である。
【０１６２】
追い出し要求完了判定部ＣＴＤＪは、追い出し要求ＭＯＲＰがパイプライン制御部ＰＬＣに投入された場合、追い出し要求ＭＯＲＰに基づく処理が完了したか否かを、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ等に基づいて判定する。例えば、追い出し要求完了判定部ＣＴＤＪは、追い出し要求ＭＯＲＰに基づく処理が完了した場合、論理値”１”の信号を論理積回路ＡＮＤｐ５に出力する。
【０１６３】
追い出し実行判定部ＥＸＤＪは、処理要求ＭＯＲＰを抑止するか否かに拘わらず、データ保持部ＤＭＥＭからデータを追い出す処理が必要であるか否かを、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ等に基づいて判定する。例えば、データ保持部ＤＭＥＭからデータを追い出す処理が必要である場合、論理値”１”の信号を論理積回路ＡＮＤｐ１に出力する。
【０１６４】
論理積回路ＡＮＤｐ１は、選択部ＳＥＬｐ１の出力信号と追い出し実行判定部ＥＸＤＪの出力信号との論理積を演算し、演算結果を情報ＮＭＯＲＰとして論理和回路ＯＲｐ１およびキャッシュミス制御部ＭＩＢに出力する。例えば、データ保持部ＤＭＥＭからデータを追い出す処理が必要で、追い出し対象データが抑止条件を満たす場合、情報ＮＭＯＲＰは論理値”１”に設定される。これにより、データ保持部ＤＭＥＭからデータを追い出す処理が必要である場合でも、追い出し要求ＭＯＲＰの発行が抑止される。この場合、データ保持部ＤＭＥＭからデータを追い出す処理は、読み出し要求ＲＥＡＤ内で実行される。また、情報ＮＭＯＲＰは、ステージ４において、インターロック制御部ＩＮＴＣＬに転送される。
【０１６５】
指示生成部ＩＧＥＮは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ等に基づいて、キャッシュミス制御部ＭＩＢへのリクエストを生成する。例えば、指示生成部ＩＧＥＮは、第２キャッシュメモリＬＬｂがキャッシュミスした場合、キャッシュミス制御部ＭＩＢの資源（例えば、図７に示した制御バッファ部ＩＮＣＮＴＬ）を獲得する情報ＶＡＬＩＤを生成する。情報ＶＡＬＩＤは、論理積回路ＡＮＤｐ２を介してキャッシュミス制御部ＭＩＢに転送される。また、指示生成部ＩＧＥＮは、キャッシュミス制御部ＭＩＢの資源を獲得する場合、ブロックタイプチェンジ処理を要求するか否かを示す情報ＢＴＣを生成し、情報ＢＴＣを選択部ＳＥＬｐ３およびキャッシュミス制御部ＭＩＢに出力する。
【０１６６】
例えば、情報ＶＡＬＩＤ、ＢＴＣが論理値”１”の場合、後続では、ブロックタイプチェンジ処理が実行される。また、情報ＶＡＬＩＤが論理値”１”で、情報ＢＴＣ、ＮＭＯＲＰが論理値”０”の場合、後続では、追い出し要求ＭＯＲＰが発行される。なお、情報ＮＭＯＲＰが論理値”１”の場合、追い出し要求ＭＯＲＰの発行が抑止され、データ保持部ＤＭＥＭからデータを追い出す処理が読み出し要求ＲＥＡＤ内で実行される。
【０１６７】
第２キャッシュタグ更新判定部ＴＧＤＪは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ等に基づいて、タグ部ＴＡＧＬＬｂを更新するか否かを判定する。そして、第２キャッシュタグ更新判定部ＴＧＤＪは、判定結果を論理和回路ＯＲｐ１に出力する。例えば、第２キャッシュタグ更新判定部ＴＧＤＪは、情報ＳＩＮが示す処理要求が読み出し要求ＲＥＡＤである場合、タグ部ＴＡＧＬＬｂを更新しないと判定する。第２キャッシュタグ更新判定部ＴＧＤＪの出力信号は、タグ部ＴＡＧＬＬｂを更新する従来の制御信号に対応する。
【０１６８】
論理和回路ＯＲｐ１は、第２キャッシュタグ更新判定部ＴＧＤＪの判定結果と論理積回路ＡＮＤｐ１の出力信号との論理和を演算し、演算結果を論理積回路ＡＮＤｐ３に出力する。したがって、論理和回路ＯＲｐ１は、タグ部ＴＡＧＬＬｂを更新しないと第２キャッシュタグ更新判定部ＴＧＤＪにより判定された場合でも、追い出し対象データが抑止条件を満たす場合、論理値”１”の信号を論理積回路ＡＮＤｐ３に出力する。論理和回路ＯＲｐ１から出力される論理値”１”の信号は、タグ部ＴＡＧＬＬｂを更新することを意味する。このように、論理和回路ＯＲｐ１を従来の構成に追加することにより、読み出し要求ＲＥＡＤ内でタグ部ＴＡＧＬＬｂを更新することができる。
【０１６９】
第２キャッシュタグデータ生成部ＴＤＧＥＮは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ等に基づいて、タグ部ＴＡＧＬＬｂの更新データＷＤを生成し、更新データＷＤをタグ部ＴＡＧＬＬｂに出力する。
【０１７０】
第１キャッシュ制御部ＣＭＣＮＴＬｂは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ、ＨＴＣＬ１、ＲＥＱＴＣＬ１、ＡＤＭＳ等に基づいて、第１キャッシュメモリＬ１を制御する。例えば、第１キャッシュ制御部ＣＭＣＮＴＬｂは、リプレースを指示する情報ＩＲＰＬ、スヌープを指示する情報ＩＳＮＰ等をコアＣＯＲＥに出力する。
【０１７１】
アボート判定部ＡＢＤＪは、情報ＳＩＮ、ＡＤＭＳ、ＡＤＭＭおよびインターロック制御部ＩＮＴＣＬの出力信号等に基づいて、パイプライン制御部ＰＬＣに投入された処理要求を中止するか否かを判定する。そして、アボート判定部ＡＢＤＪは、判定結果を論理積回路ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ５に出力する。例えば、アボート判定部ＡＢＤＪは、パイプライン制御部ＰＬＣに投入された処理要求を中止する場合、論理値”１”の信号を論理積回路ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ５に出力する。
【０１７２】
インターロック制御部ＩＮＴＣＬは、タグ部ＴＡＧＬＬｂの内容に更新が発生した際、更新処理が完了するまで以降の処理を無効とするための処理機構である。例えば、読み出し要求ＲＥＡＤ内でのタグ部ＴＡＧＬＬｂの更新処理の後続において同一ブロックを参照する処理要求をロック（アボート）させる。このように、インターロック制御部ＩＮＴＣＬは、先行する処理と同一のブロックを更新する処理要求があった場合、処理要求をロックさせる。
【０１７３】
論理積回路ＡＮＤｐ５は、アボート判定部ＡＢＤＪの判定結果の反転信号と追い出し要求完了判定部ＣＴＤＪの出力信号との論理積を演算し、演算結果を情報ＭＯＲＰＣＴとしてキャッシュミス制御部ＭＩＢに出力する。例えば、論理積回路ＡＮＤｐ５は、処理要求ＭＯＲＰに基づく処理がアボートせずに正常に終了した場合、追い出し要求ＭＯＲＰに基づく処理が完了したことを示す情報ＭＯＲＰＣＴを、追い出し要求完了判定部ＣＴＤＪからキャッシュミス制御部ＭＩＢに転送する。情報ＭＯＲＰＣＴを受けたキャッシュミス制御部ＭＩＢは、処理要求ＭＶＩＮを投入部ＩＮＰｂを介してパイプライン制御部ＰＬＣｂに投入する。
【０１７４】
論理積回路ＡＮＤｐ２は、アボート判定部ＡＢＤＪの判定結果の反転信号と指示生成部ＩＧＥＮの出力信号との論理積を演算し、演算結果を情報ＶＡＬＩＤとして選択部ＳＥＬｐ２およびキャッシュミス制御部ＭＩＢに出力する。
【０１７５】
論理積回路ＡＮＤｐ３は、アボート判定部ＡＢＤＪの判定結果の反転信号と論理和回路ＯＲｐ１の出力信号との論理積を演算し、演算結果を論理積回路ＡＮＤｐ４に出力する。
【０１７６】
選択部ＳＥＬｐ２は、情報ＬＬＨＴＷ、ＲＷＡＹＩＤのいずれかを、論理積回路ＡＮＤｐ２の出力信号に基づいて選択してデコード部ＤＥＣに出力する。情報ＬＬＨＴＷは、タグ部ＴＡＧＬＬｂに保持された複数の第１管理情報ＩＮＦＬＬｂのうち、パイプライン制御部ＰＬＣに投入された処理要求がヒットした場合にアクセスされるウェイＷＡＹを示す。情報ＲＷＡＹＩＤは、図９で説明したように、データ保持部ＤＭＥＭから追い出すデータ（追い出し対象データ）を保持しているウェイＷＡＹを示す。
【０１７７】
例えば、選択部ＳＥＬｐ２は、情報ＶＡＬＩＤが論理値”１”の場合、すなわち、第２キャッシュメモリＬＬｂがキャッシュミスした場合、情報ＲＷＡＹＩＤをデコード部ＤＥＣに出力する。また、選択部ＳＥＬｈ２は、処理要求ＭＯＲＰがパイプライン制御部ＰＬＣに投入された場合、情報ＬＬＨＴＷを選択する。なお、処理要求ＭＶＩＮがパイプライン制御部ＰＬＣに投入された場合、ブロックタイプチェンジ処理の要求では、情報ＲＷＡＹＩＤが選択され、ブロックタイプチェンジ処理の要求以外では、情報ＬＬＨＴＷが選択される。このように、選択部ＳＥＬｐ２を従来の構成に追加することにより、読み出し要求ＲＥＡＤ内でタグ部ＴＡＧＬＬｂを更新することができる。
【０１７８】
デコード部ＤＥＣは、選択部ＳＥＬｐ２の出力信号をウェイＷＡＹ毎の信号にデコードする。
【０１７９】
論理積回路ＡＮＤｐ４は、デコード部ＤＥＣの出力信号と論理積回路ＡＮＤｐ３の出力信号との論理積を演算し、演算結果を情報ＷＥとしてタグ部ＴＡＧＬＬｂに出力する。すなわち、論理積回路ＡＮＤｐ４は、タグ部ＴＡＧＬＬｂに保持された複数のウェイＷＡＹの第１管理情報ＩＮＦＬＬｂのうちの更新対象の第１管理情報ＩＮＦＬＬｂを示す情報ＷＥを、タグ部ＴＡＧＬＬｂに出力する。このように、論理積回路ＡＮＤｐ４は、タグ部ＴＡＧＬＬｂを更新する場合、更新対象のウェイＷＡＹを示す情報ＷＥをタグ部ＴＡＧＬＬｂに出力する。
【０１８０】
タグ部ＴＡＧＬＬｂに保持された複数の第１管理情報ＩＮＦＬＬｂのうちの更新対象の第１管理情報ＩＮＦＬＬｂは、情報ＷＥ（ライトイネーブル）およびアドレスＲＡＤ［１８：７］に基づいて選択される。そして、情報ＷＥおよびアドレスＲＡＤ［１８：７］に基づいて選択された第１管理情報ＩＮＦＬＬｂは、更新データＷＤに基づいて更新される。これにより、タグ部ＴＡＧＬＬｂの内容が更新される。
【０１８１】
選択部ＳＥＬｐ３は、情報ＢＴＣ、ＲＷＡＹＩＤのいずれかを情報ＷＡＹＩＤとして、情報ＢＴＣに基づいて選択する。例えば、選択部ＳＥＬｐ３は、情報ＢＴＣが論理値”０”の場合、情報ＲＷＡＹＩＤを情報ＷＡＹＩＤとして選択する。また、選択部ＳＥＬｐ３は、情報ＢＴＣが論理値”１”の場合、情報ＢＴＣを情報ＷＡＹＩＤとして選択する。
【０１８２】
図１４は、追い出し対象データが抑止条件を満たす場合の演算処理装置ＰＵｂの動作の一例を示す。なお、図１４の括弧内に、追い出し要求ＭＯＲＰを抑止する制御がない比較例を示す。図１４に示す実線の矢印は、追い出し対象データに関する処理を示し、点線の矢印は、第１キャッシュメモリＬ１から要求された要求データに関する処理を示す。図１４の”ＬＬ  Ｖｉｃｔｉｍ”は、追い出し対象データを示す。
【０１８３】
図１４では、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂは、要求データを保持していない。また、要求データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、他のＣＭＧに持ち出されていない。追い出し対象データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、第１キャッシュメモリＬ１での状態が”無効”であり、第２キャッシュメモリＬＬｂでの状態が”排他”であり、要求元のコアＣＯＲＥ０の属するＣＭＧのみに保持されている。
【０１８４】
コアＣＯＲＥ０は、要求データが第１キャッシュメモリＬ１でキャッシュミスしたため、読み出し要求ＲＥＡＤを第２キャッシュメモリＬＬｂに発行する（図１４（ａ１））。これにより、パイプライン制御部ＰＬＣに読み出し要求ＲＥＡＤが投入される。パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する（図１４（ａ２））。パイプライン制御部ＰＬＣは、要求データが第２キャッシュメモリＬＬでキャッシュミスしたが、追い出し対象データが抑止条件を満たすため、キャッシュミス制御部ＭＩＢに対して追い出し要求ＭＯＲＰの発行の抑止を指示する（図１４（ａ３））。さらに、パイプライン制御部ＰＬＣは、タグ部ＴＡＧＬＬｂの追い出し対象データの状態を”無効”に更新する（図１４（ａ４））。
【０１８５】
図１４に示す例では、追い出し対象データは、第１キャッシュメモリＬ１に保持されておらず、要求元のコアＣＯＲＥ０の属するＣＭＧの第２キャッシュメモリＬＬｂのみが更新されていないデータを保持している。したがって、追い出し対象データを主記憶装置ＭＥＭ０に退避する必要がないため、追い出し対象データの第１管理情報ＩＮＦＬＬｂを解放するのみで追い出し対象データを第２キャッシュメモリＬＬｂから追い出す処理は終了する。このように、パイプライン制御部ＰＬＣは、追い出し対象データが抑止条件を満たす場合、追い出し要求ＭＯＲＰに基づく処理相当の処理を読み出し処理ＲＥＡＤ内で実行できる。
【０１８６】
また、パイプライン制御部ＰＬＣは、メモリ制御部ＭＣＮＴＬに要求データを要求する（図１４（ａ５））。メモリ制御部ＭＣＮＴＬは、要求データの読み出しを実行し、キャッシュミス制御部ＭＩＢに要求データを応答する（図１４（ａ６））。キャッシュミス制御部ＭＩＢは、メモリ制御部ＭＣＮＴＬからデータ応答があった場合、処理要求ＭＶＩＮをパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して投入する（図１４（ａ７））。処理要求ＭＶＩＮは、メモリ制御部ＭＣＮＴＬから応答のあったデータを第２キャッシュメモリＬＬｂに格納する要求である。
【０１８７】
パイプライン制御部ＰＬＣは、処理要求ＭＶＩＮに基づく処理が終了した場合、第１キャッシュメモリＬ１に要求データを応答するとともに、第１キャッシュメモリＬ１からデータを追い出すＬ１リプレース処理の実行を指示する（図１４（ａ８））。また、パイプライン制御部ＰＬＣは、キャッシュミス制御部ＭＩＢの資源を開放する（図１４（ａ９））。さらに、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１にＬ１リプレース処理を実行させるため、Ｌ１リプレース処理の対象アドレスに対してスヌープロックを実行する（図１４（ａ１０））。
【０１８８】
コアＣＯＲＥ０は、第１キャッシュメモリＬ１でのＬ１リプレース処理が完了した場合、第２キャッシュメモリに処理要求ＢＩＳＲを発行する。処理要求ＢＩＳＲを受けたパイプライン制御部ＰＬＣは、処理要求ＢＩＳＲに基づく処理を実行する（図１４（ａ１１））。処理要求ＢＩＳＲに基づく処理は、例えば、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬへのライトバックを伴わないリプレース完了処理である。例えば、処理要求ＢＩＳＲでは、タグ部ＴＡＧＬＬｂに保持された第１管理情報ＩＮＦＬＬｂ内のタイプコードＴＣＬ１、第２管理情報ＩＮＦＬ１ｂ等が更新される。処理要求ＢＩＳＲに基づく処理の終了により、スヌープロックが解除される。
【０１８９】
ここで、比較例では、パイプライン制御部ＰＬＣは、第２キャッシュメモリＬＬがキャッシュミスした場合、追い出し対象データを第２キャッシュメモリＬＬから追い出すために、キャッシュミス制御部ＭＩＢの資源を獲得する。そして、キャッシュミス制御部ＭＩＢは、資源が獲得された場合、追い出し要求ＭＯＲＰをパイプライン制御部ＰＬＣに発行する（図１４（ｂ４））。パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰを受けた場合、タグ部ＴＡＧＬＬｂの追い出し対象データの状態を”無効”に更新することにより、追い出し対象データを第２キャッシュメモリＬＬから追い出す。このように、比較例では、追い出し要求ＭＯＲＰが読み出し要求ＲＥＡＤに後続して発行される。
【０１９０】
これに対し、図３に示した第２キャッシュメモリＬＬｂでは、追い出し要求ＭＯＲＰの発行が抑止されるため、パイプライン制御部ＰＬＣに投入される処理要求の数が比較例に比べて減少する。このため、パイプライン制御部ＰＬＣのスループットを向上させることができる。
【０１９１】
図１５は、追い出し対象データが抑止条件を満たさない場合の演算処理装置ＰＵｂの動作の一例を示す。図１５に示す実線の矢印、点線の矢印および”ＬＬ  Ｖｉｃｔｉｍ”の意味は、図１４と同じである。図１５では、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂは、要求データを保持していない。また、要求データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、他のＣＭＧに持ち出されていない。追い出し対象データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、第１キャッシュメモリＬ１での状態が”変更”であり、第２キャッシュメモリＬＬｂでの状態が”排他”であり、要求元のコアＣＯＲＥ０の属するＣＭＧのみに保持されている。
【０１９２】
コアＣＯＲＥ０は、要求データが第１キャッシュメモリＬ１でキャッシュミスしたため、読み出し要求ＲＥＡＤを第２キャッシュメモリＬＬｂに発行する（図１５（ｃ１））。パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する（図１５（ｃ２））。第２キャッシュメモリＬＬｂがキャッシュミスしたため、パイプライン制御部ＰＬＣは、メモリ制御部ＭＣＮＴＬに要求データを要求する（図１５（ｃ３））。
【０１９３】
パイプライン制御部ＰＬＣは、追い出し対象データが抑止条件を満たさないため、キャッシュミス制御部ＭＩＢの資源を獲得する。そして、キャッシュミス制御部ＭＩＢは、資源が獲得された場合、追い出し要求ＭＯＲＰをパイプライン制御部ＰＬＣに発行する（図１５（ｃ４））。また、パイプライン制御部ＰＬＣは、追い出し対象データが第１キャッシュメモリＬ１に保持されているため、第１キャッシュメモリＬ１に対して追い出し対象データの無効化を要求する。第１キャッシュメモリＬ１は、第２キャッシュメモリからの無効化要求を受けた場合、追い出し対象データの無効化処理を実行する（図１５（ｃ６））。例えば、第１キャッシュメモリＬ１は、追い出し対象データを更新しているため、追い出し対象データの書き戻しを第２キャッシュメモリＬＬｂに発行する。書き戻し要求を受けたパイプライン制御部ＰＬＣは、追い出し対象データの主記憶装置ＭＥＭ０への書き戻しを実行する（図１５（ｃ８））。例えば、パイプライン制御部ＰＬＣは、書き戻し制御部（図示せず）の資源を獲得し、メモリ制御部ＭＣＮＴＬに追い出し対象データを転送する。
【０１９４】
キャッシュミス制御部ＭＩＢは、メモリ制御部ＭＣＮＴＬからデータ応答があり（図１５（ｃ５））、かつ、追い出し対象データの退避が完了した場合、処理要求ＭＶＩＮをパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して投入する（図１５（ｃ９））。処理要求ＭＶＩＮに基づく処理が完了した後の動作は、図１４に示した動作と同一または同様である。
【０１９５】
ここで、第２キャッシュメモリＬＬｂは、第１キャッシュメモリＬ１が追い出し対象データを”排他”で保持していると判定するが、第１キャッシュメモリＬ１が追い出し対象データを更新したか否かは把握していない。このため、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１が追い出し対象データを保持している場合、追い出し要求ＭＯＲＰの発行を抑止しない。
【０１９６】
なお、パイプライン制御部ＰＬＣは、追い出し対象データの第１キャッシュメモリＬ１での状態を詳細に把握してもよい。例えば、第１キャッシュメモリＬ１は、データを更新する度に、データの状態を第２キャッシュメモリＬＬに報告してもよい。
【０１９７】
図１６は、追い出し対象データが抑止条件を満たさない場合の演算処理装置ＰＵｂの動作の別の例を示す。図１６に示す実線の矢印、点線の矢印および”ＬＬ  Ｖｉｃｔｉｍ”の意味は、図１４と同じである。図１６では、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂは、要求データを保持していない。また、要求データは、”Ｌｏｃａｌ≠Ｈｏｓｔ”であり、他のＣＭＧに持ち出されていない。追い出し対象データは、”Ｌｏｃａｌ≠Ｈｏｓｔ”であり、第１キャッシュメモリＬ１での状態が”無効”であり、第２キャッシュメモリＬＬｂでの状態が”変更”であり、要求元のコアＣＯＲＥ０の属するＣＭＧのみに保持されている。要求データおよび追い出し対象データの格納先は、演算処理装置ＰＵｂ１に接続された主記憶装置ＭＥＭ１である。
【０１９８】
コアＣＯＲＥ０は、要求データが第１キャッシュメモリＬ１でキャッシュミスしたため、読み出し要求ＲＥＡＤを第２キャッシュメモリＬＬｂに発行する（図１６（ｄ１））。パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する（図１６（ｄ２））。第２キャッシュメモリＬＬｂがキャッシュミスしたため、パイプライン制御部ＰＬＣは、演算処理装置ＰＵｂ１のメモリ制御部ＭＣＮＴＬに要求データを要求する（図１６（ｄ３））。
【０１９９】
パイプライン制御部ＰＬＣは、追い出し対象データが抑止条件を満たさないため、キャッシュミス制御部ＭＩＢの資源を獲得する。そして、キャッシュミス制御部ＭＩＢは、資源が獲得された場合、追い出し要求ＭＯＲＰをパイプライン制御部ＰＬＣに発行する（図１６（ｄ４））。
【０２００】
パイプライン制御部ＰＬＣは、追い出し対象データが更新されているため、追い出し対象データの管理元のＣＭＧに属する演算処理装置ＰＵｂ１に、書き戻しと無効化を要求する（図１６（ｄ６））。演算処理装置ＰＵｂ１のパイプライン制御部ＰＬＣは、追い出し対象データの書き戻しと無効化処理とが完了した場合、完了報告を演算処理装置ＰＵｂ０のキャッシュミス制御部ＭＩＢに通知する（図１６（ｄ７））。
【０２０１】
パイプライン制御部ＰＬＣは、追い出し対象データに対する演算処理装置ＰＵｂ１での書き戻し処理および無効化処理が完了した場合、処理要求ＭＶＩＮをパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して投入する（図１６（ｄ８））。すなわち、キャッシュミス制御部ＭＩＢは、メモリ制御部ＭＣＮＴＬからデータ応答があり（図１６（ｄ５））、かつ、追い出し対象データの退避が完了した場合、処理要求ＭＶＩＮをパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して投入する。処理要求ＭＶＩＮに基づく処理が完了した後の動作は、図１５に示した動作と同一または同様である。
【０２０２】
図１７は、追い出し対象データが抑止条件を満たさない場合の演算処理装置ＰＵｂの動作の別の例を示す。図１７に示す実線の矢印、点線の矢印の意味は、図１４と同じである。また、図１７の”Ｌ１  Ｖｉｃｔｉｍ”は、第１キャッシュメモリＬ１から追い出されるデータを示す。図１７では、先行の読み出し要求ＲＥＡＤで要求される要求データは、第２キャッシュメモリＬＬｂに保持されている。そして、後続の読み出し要求で要求される要求データは、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｂに保持されていない。また、要求データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、他のＣＭＧに持ち出されていない。追い出し対象データは、”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、第１キャッシュメモリＬ１での状態が”無効”であり、第２キャッシュメモリＬＬｂでの状態が”排他”であり、要求元のコアＣＯＲＥ０の属するＣＭＧのみに保持されている。また、追い出し対象データは、スヌープロック部ＳＮＰｂに登録されている。
【０２０３】
コアＣＯＲＥ０は、要求データが第１キャッシュメモリＬ１でキャッシュミスしたため、読み出し要求ＲＥＡＤを第２キャッシュメモリＬＬｂに発行する（図１７（ｅ１））。パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤ（先行の読み出し要求ＲＥＡＤ）で要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する（図１７（ｅ２））。第２キャッシュメモリＬＬｂがキャッシュヒットしたため、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１に要求データを応答するとともに、第１キャッシュメモリＬ１からデータを追い出すＬ１リプレース処理の実行を指示する（図１７（ｅ４））。また、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１にＬ１リプレース処理を実行させるため、Ｌ１リプレース処理の対象アドレスに対してスヌープロックを実行する（図１７（ｅ３））。そして、パイプライン制御部ＰＬＣは、処理要求ＢＩＳＲを受けた場合、処理要求ＢＩＳＲに基づく処理を実行する（図１７（ｅ５））。
【０２０４】
また、コアＣＯＲＥ０は、後続の要求データが第１キャッシュメモリＬ１でキャッシュミスしたため、読み出し要求ＲＥＡＤを第２キャッシュメモリＬＬｂに発行する（図１７（ｆ１））。パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤ（後続の読み出し要求ＲＥＡＤ）で要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する（図１７（ｆ２））。第２キャッシュメモリＬＬｂがキャッシュミスしたため、追い出し対象データが決定される。追い出し対象データは、先行する読み出し要求ＲＥＡＤに基づく処理（図１７（ｅ１）−（ｅ５））により、スヌープロック部ＳＮＰｂに登録されている。すなわち、追い出し対象データは抑止条件を満たさない。
【０２０５】
このため、パイプライン制御部ＰＬＣは、キャッシュミス制御部ＭＩＢの資源を獲得するとともに（図１７（ｆ３））、メモリ制御部ＭＣＮＴＬに要求データを要求する（図１７（ｆ４））。そして、キャッシュミス制御部ＭＩＢは、メモリ制御部ＭＣＮＴＬから要求データの応答があった場合、追い出し要求ＭＯＲＰをパイプライン制御部ＰＬＣに発行する（図１７（ｆ５））。図１７ではスヌープロックが解除されてから追い出し要求ＭＯＲＰに基づく処理が実行されているように記載しているが、実際にはスヌープロックが解除されるまで以下のフロー１、フロー２およびフロー３を実行する。
【０２０６】
フロー１では、キャッシュミス制御部ＭＩＢは、スヌープロックに関係なく、追い出し要求ＭＯＲＰの実行環境が整うとパイプライン制御部ＰＬＣに対して追い出し要求ＭＯＲＰを発行する。
【０２０７】
フロー２では、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰの処理を実行した結果、追い出し対象データがスヌープロックにより追い出し不可であった場合、追い出し要求ＭＯＲＰの処理を中断する。そして、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰの処理を中止したことキャッシュミス制御部ＭＩＢに通知する。
【０２０８】
フロー３では、キャッシュミス制御部ＭＩＢは、追い出し要求ＭＯＲＰの処理を中止したことが通知された場合、フロー１を再実行する。
【０２０９】
キャッシュミス制御部ＭＩＢは、追い出し対象データの退避が完了した場合、処理要求ＭＶＩＮをパイプライン制御部ＰＬＣに投入部ＩＮＰｂを介して投入する。処理要求ＭＶＩＮに基づく処理が完了した後の動作は、図１４に示した動作と同一または同様である。
【０２１０】
図１８は、図３に示したパイプライン制御部ＰＬＣに投入される処理要求の一例を示す。なお、図１８の括弧内に、追い出し要求ＭＯＲＰを抑止する制御がない比較例を示す。読み出し要求ＲＥＡＤにより選択される追い出し対象データが全てクリーンである場合、パイプライン制御部ＰＬＣには、３つの処理要求ＲＥＡＤ、ＭＶＩＮ、ＢＩＳＲが投入される。これに対し、比較例では、４つの処理要求ＲＥＡＤ、ＭＯＲＰ、ＭＶＩＮ、ＢＩＳＲがパイプライン制御部ＰＬＣに投入される。以下に、読み出し要求ＲＥＡＤ内で追い出し要求ＭＯＲＰに基づく処理相当の処理を実行することによって見込める性能改善を示す。
【０２１１】
読み出し要求ＲＥＡＤにより選択される追い出し対象データが全てクリーンである場合、第２キャッシュメモリＬＬｂでは、読み出し処理に基づく一連のフローは、１２サイクルで４回実行される。これに対し、比較例では、読み出し処理に基づく一連のフローは、１２サイクルで３回実行される。この場合、第２キャッシュメモリＬＬｂでは、比較例に対して約３３％の改善が見込めると考えられる。
【０２１２】
図１９は、図３に示したパイプライン制御部ＰＬＣの動作の一例を示す。なお、図１９の括弧内に、追い出し要求ＭＯＲＰを抑止する制御がない比較例を示す。図１９は、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求された要求データが第２キャッシュメモリＬＬｂでキャッシュミスした場合のパイプライン制御部ＰＬＣの動作の一例である。したがって、図１９に示すステップＳ１００の前に、パイプライン制御部ＰＬＣは、図１４等で説明したように、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求された要求データが第２キャッシュメモリＬＬｂに格納されているかを検索する。そして、パイプライン制御部ＰＬＣは、要求データが第２キャッシュメモリＬＬでキャッシュミスしたことを検出し、ステップＳ１００の処理を実行する。
【０２１３】
ステップＳ１００では、パイプライン制御部ＰＬＣは、メモリ制御部ＭＣＮＴＬに要求データを要求する。
【０２１４】
次に、ステップＳ２００では、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰの発行を抑止するか否かを判定する。追い出し要求ＭＯＲＰの発行を抑止するか否かの判定処理の詳細は、図２０で説明する。追い出し要求ＭＯＲＰの発行を抑止する場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２２０に移る。一方、追い出し要求ＭＯＲＰの発行を抑止しない場合、すなわち、追い出し要求ＭＯＲＰを発行する場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２４０に移る。
【０２１５】
ステップＳ２２０では、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰの発行を抑止する指示をキャッシュミス制御部ＭＩＢに通知する。ステップＳ２２０の処理が終了した後、パイプライン制御部ＰＬＣの動作は、ステップＳ３００に移る。
【０２１６】
ステップＳ３００では、パイプライン制御部ＰＬＣは、メモリ制御部ＭＣＮＴＬからのデータ応答を待ち、メモリ制御部ＭＣＮＴＬからデータ応答があった場合、動作をステップＳ４００に移す。
【０２１７】
ステップＳ２４０では、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰを発行する指示をキャッシュミス制御部ＭＩＢに通知する。ステップＳ２４０の処理が実行された後、パイプライン制御部ＰＬＣの動作は、ステップＳ３２０およびステップＳ３４０に移る。なお、ステップＳ３２０およびステップＳ３４０は、並列に実行される。
【０２１８】
ステップＳ３２０では、パイプライン制御部ＰＬＣは、メモリ制御部ＭＣＮＴＬからのデータ応答を待つ。
【０２１９】
ステップＳ３４０では、パイプライン制御部ＰＬＣは、追い出し要求ＭＯＲＰに基づく処理を実行する。追い出し要求ＭＯＲＰに基づく処理の詳細は、図２１で説明する。メモリ制御部ＭＣＮＴＬからデータ応答があり、追い出し要求ＭＯＲＰに基づく処理が終了した場合、パイプライン制御部ＰＬＣの動作は、ステップＳ４００に移る。
【０２２０】
ステップＳ４００では、パイプライン制御部ＰＬＣは、図１４等で説明したように、処理要求ＭＶＩＮに基づく処理、第１キャッシュメモリＬ１へのデータ応答、Ｌ１リプレース処理の指示等を実行する。
【０２２１】
次に、ステップＳ４２０では、パイプライン制御部ＰＬＣは、図１４等で説明したように、処理要求ＢＩＳＲに基づく処理を実行する。
【０２２２】
なお、比較例では、ステップＳ２００、Ｓ２２０、Ｓ３００が省かれる。すなわち、比較例では、第２キャッシュメモリがキャッシュミスし、要求データを格納するウェイＷＡＹに空きがない場合、追い出し対象データの状態に拘わらず、追い出し要求ＭＯＲＰが発行される。したがって、比較例では、パイプライン制御部ＰＬＣに比べて、パイプライン処理のスループットが低下する。換言すれば、パイプライン制御部ＰＬＣでは、パイプライン処理のスループットを比較例に比べて向上させることができる。なお、パイプライン制御部ＰＬＣの動作は、図１９に示す例に限定されない。
【０２２３】
図２０は、追い出し要求ＭＯＲＰの発行を抑止するかを判定する処理の一例を示す。すなわち、図２０は、図１９に示したステップＳ２００の判定処理の一例を示す。図２０の”ＬＬ  Ｖｉｃｔｉｍ”の意味は、図１４と同じである。すなわち、図２０の”ＬＬ  Ｖｉｃｔｉｍ”は、追い出し対象データを示す。
【０２２４】
ステップＳ２０２では、パイプライン制御部ＰＬＣは、追い出し対象データ（ＬＬ  Ｖｉｃｔｉｍ）の第２キャッシュメモリＬＬｂでの状態が”無効”か否かを判定する。追い出し対象データの状態が”無効”の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２１０に移る。一方、追い出し対象データの状態が”無効”以外の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２０４に移る。
【０２２５】
ステップＳ２０４では、パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭか否かを判定する。すなわち、パイプライン制御部ＰＬＣは、追い出し対象データが”Ｌｏｃａｌ＝Ｈｏｓｔ”であるか否かを判定する。パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭである場合、動作をステップＳ２０６に移す。一方、パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂ以外の演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭである場合、動作をステップＳ２１２に移す。
【０２２６】
ステップＳ２０６では、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１が追い出し対象データを保持しているか否かを判定する。第１キャッシュメモリＬ１が追い出し対象データを保持している場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２１２に移る。一方、第１キャッシュメモリＬ１が追い出し対象データを保持していない場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２０８に移る。
【０２２７】
ステップＳ２０８では、パイプライン制御部ＰＬＣは、追い出し対象データの状態が”変更”か否かを判定する。追い出し対象データの状態が”変更”の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２１２に移る。一方、追い出し対象データの状態が”変更”以外の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ２１０に移る。
【０２２８】
このように、ステップＳ２０２、Ｓ２０４、Ｓ２０６、Ｓ２０８の判定により、追い出し対象データが抑止条件を満たすか否かが判定される。
【０２２９】
ステップＳ２１０では、パイプライン制御部ＰＬＣは、追い出し要求の発行を抑止すると判定し、追い出し対象データの状態を”無効”に更新する。例えば、パイプライン制御部ＰＬＣは、タグ部ＴＡＧＬＬｂに保持された第１管理情報ＩＮＦＬＬｂのうち、追い出し対象データに対応する第１管理情報ＩＮＦＬＬｂのタイプコードＴＣＬＬを”無効”に更新する。ステップＳ２１０の処理が実行された後、パイプライン制御部ＰＬＣの動作は、図１９に示したステップＳ２２０に移る。
【０２３０】
ステップＳ２１２では、パイプライン制御部ＰＬＣは、追い出し要求を発行すると判定し、動作を図１９に示したステップＳ２４０に移す。なお、追い出し要求ＭＯＲＰの発行を抑止するか否かを判定する処理は、図２０に示す例に限定されない。
【０２３１】
図２１は、追い出し要求ＭＯＲＰに基づく処理の一例を示す。すなわち、図２１は、図１９に示したステップＳ３４０の処理の一例を示す。図２１の”ＬＬ  Ｖｉｃｔｉｍ”の意味は、図１４と同じである。
【０２３２】
ステップＳ３４２では、パイプライン制御部ＰＬＣは、追い出し対象データの第２キャッシュメモリＬＬｂでの状態が”無効”か否かを判定する。追い出し対象データの状態が”無効”の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。一方、追い出し対象データの状態が”無効”以外の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３４４に移る。
【０２３３】
ステップＳ３４４では、パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭか否かを判定する。すなわち、パイプライン制御部ＰＬＣは、追い出し対象データが”Ｌｏｃａｌ＝Ｈｏｓｔ”であるか否かを判定する。パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭである場合、動作をステップＳ３４６に移す。一方、パイプライン制御部ＰＬＣは、追い出し対象データの格納先が自身を含む演算処理装置ＰＵｂ以外の演算処理装置ＰＵｂに接続された主記憶装置ＭＥＭである場合、動作をステップＳ３５４に移す。
【０２３４】
ステップＳ３４６では、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１が追い出し対象データを保持しているか否かを判定する。第１キャッシュメモリＬ１が追い出し対象データを保持している場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３５０に移る。一方、第１キャッシュメモリＬ１が追い出し対象データを保持していない場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３４８に移る。
【０２３５】
ステップＳ３４８では、パイプライン制御部ＰＬＣは、追い出し対象データの状態が”変更”か否かを判定する。追い出し対象データの状態が”変更”の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３５２に移る。一方、追い出し対象データの状態が”変更”以外の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２３６】
ステップＳ３５０では、パイプライン制御部ＰＬＣは、追い出し対象データを第１キャッシュメモリＬ１から追い出すＬ１リプレース処理を、第１キャッシュメモリＬ１に要求する。なお、追い出し対象データがダーティである場合、パイプライン制御部ＰＬＣは、追い出し対象データの主記憶装置ＭＥＭへの書き戻しを実行する。Ｌ１リプレース処理が完了した場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２３７】
ステップＳ３５２では、パイプライン制御部ＰＬＣは、追い出し対象データの主記憶装置ＭＥＭへの書き戻しを実行する。ステップＳ３５２の処理が実行された後、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２３８】
ステップＳ３５４では、パイプライン制御部ＰＬＣは、第１キャッシュメモリＬ１が追い出し対象データを保持しているか否かを判定する。第１キャッシュメモリＬ１が追い出し対象データを保持している場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３６２に移る。一方、第１キャッシュメモリＬ１が追い出し対象データを保持していない場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３５６に移る。
【０２３９】
ステップＳ３５６では、パイプライン制御部ＰＬＣは、追い出し対象データの状態が”変更”か否かを判定する。追い出し対象データの状態が”変更”の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３６０に移る。一方、追い出し対象データの状態が”変更”以外の場合、パイプライン制御部ＰＬＣの動作は、ステップＳ３５８に移る。
【０２４０】
ステップＳ３５８では、パイプライン制御部ＰＬＣは、追い出し対象データを管理する演算処理装置ＰＵｂに、追い出し対象データの無効化を要求する。ステップＳ３５８の処理が実行された後、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２４１】
ステップＳ３６０では、パイプライン制御部ＰＬＣは、追い出し対象データを管理する演算処理装置ＰＵｂに、追い出し対象データの書き戻しと無効化を要求する。ステップＳ３６０の処理が実行された後、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２４２】
ステップＳ３６２では、パイプライン制御部ＰＬＣは、追い出し対象データを第１キャッシュメモリＬ１から追い出すＬ１リプレース処理を、第１キャッシュメモリＬ１に要求する。さらに、パイプライン制御部ＰＬＣは、追い出し対象データを管理する演算処理装置ＰＵｂに、追い出し対象データの無効化を要求する。なお、追い出し対象データがダーティである場合、パイプライン制御部ＰＬＣは、追い出し対象データを管理する演算処理装置ＰＵｂに、追い出し対象データの書き戻しと無効化を要求する。ステップＳ３６２の処理が実行された後、パイプライン制御部ＰＬＣの動作は、ステップＳ３６４に移る。
【０２４３】
ステップＳ３６４では、パイプライン制御部ＰＬＣは、追い出し対象データの状態を”無効”に更新する。これにより、追い出し要求ＭＯＲＰに基づく処理は終了する。なお、追い出し要求ＭＯＲＰに基づく処理は、図２１に示す例に限定されない。
【０２４４】
以上、図２から図２１に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、パイプライン制御部ＰＬＣは、追い出し対象データが抑止条件（下記の第１条件または第２条件）を満たす場合、追い出し要求ＭＯＲＰを発行せずに、複数のウェイＷＡＹのいずれかからデータを追い出す処理を実行する。
【０２４５】
第１条件は、追い出し対象データの状態が”無効”であることである。第２条件は、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであり、追い出し対象データの状態が”変更”以外の状態であり、かつ、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。
【０２４６】
抑止条件が満たされる場合、追い出し要求ＭＯＲＰを発行せずにデータ保持部ＤＭＥＭからデータを追い出す処理を実行できるため、追い出し要求ＭＯＲＰを発行する場合に比べて、パイプライン制御部ＰＬＣに投入する処理要求の数を少なくすることができる。これにより、第１キャッシュメモリＬ１からの１回の読み出し要求ＲＥＡＤに対する一連の処理を実行する際のパイプライン制御部ＰＬＣのスループットを向上させることができる。この結果、第２キャッシュメモリＬＬｂのスループットを向上させることができる。
【０２４７】
図２２は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図２１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２２に示す情報処理装置ＩＰＥｃは、例えば、サーバ等のコンピュータ装置である。情報処理装置ＩＰＥｃは、図２に示した演算処理装置ＰＵｂの代わりに演算処理装置ＰＵｃを有することを除いて、図２に示した情報処理装置ＩＰＥｂと同一または同様である。例えば、情報処理装置ＩＰＥｃは、複数の演算処理装置ＰＵｃ（ＰＵｃ０、ＰＵｃ１、ＰＵｃ２、ＰＵｃ３）と複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と通信部ＣＤと入出力制御部ＩＯＣＮＴＬと入出力装置ＩＯＵとを有する。
【０２４８】
演算処理装置ＰＵｃは、図２に示した第２キャッシュメモリＬＬｂの代わりに第２キャッシュメモリＬＬｃを有することを除いて、図２に示した演算処理装置ＰＵｂと同一または同様である。例えば、演算処理装置ＰＵｃは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬｃと、メモリ制御部ＭＣＮＴＬと、通信インタフェース部ＣＩＦとを有する。
【０２４９】
なお、演算処理装置ＰＵｃおよび情報処理装置ＩＰＥｃの構成は、図２２に示す例に限定されない。また、演算処理装置ＰＵｃおよび主記憶装置ＭＥＭの数は、図２２に示す例に限定されない。
【０２５０】
図２３は、図２２に示し第２キャッシュメモリＬＬｃの一例を示す。なお、第２キャッシュメモリＬＬｃの構成は、図２３に示す例に限定されない。第２キャッシュメモリＬＬｃは、図３に示したパイプライン制御部ＰＬＣの代わりに、メインパイプライン制御部ＭＰＬＣｃおよびサブパイプライン制御部ＳＰＬＣを有する。また、第２キャッシュメモリＬＬｃは、図３に示した投入部ＩＮＰｂ、タグ部ＴＡＧＬＬｂ、ＴＡＧＬ１ｂおよびスヌープロック部ＳＮＰｂの代わりに、投入部ＩＮＰｃ、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃおよびスヌープロック部ＳＮＰｃを有する。第２キャッシュメモリＬＬｃのその他の構成は、図３に示した第２キャッシュメモリＬＬｂと同一または同様である。
【０２５１】
例えば、第２キャッシュメモリＬＬｃは、投入部ＩＮＰｃ、メインパイプライン制御部ＭＰＬＣｃおよびサブパイプライン制御部ＳＰＬＣを有する。さらに、第２キャッシュメモリＬＬｃは、データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｂ、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃ、ＴＡＧＤ、使用情報保持部ＬＲＵＬＬ、スヌープロック部ＳＮＰｃおよびキャッシュミス制御部ＭＩＢを有する。
【０２５２】
データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｂ、タグ部ＴＡＧＤおよび使用情報保持部ＬＲＵＬＬは、図３に示したデータ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｂ、タグ部ＴＡＧＤおよび使用情報保持部ＬＲＵＬＬと同一または同様である。また、キャッシュミス制御部ＭＩＢは、図３に示したキャッシュミス制御部ＭＩＢと同一または同様である。
【０２５３】
タグ部ＴＡＧＬＬｃは、図５に示した第１管理情報ＩＮＦＬＬｂの代わりに図２４に示す第１管理情報ＩＮＦＬＬｃを保持することを除いて、図３に示したタグ部ＴＡＧＬＬｂと同一または同様である。タグ部ＴＡＧＬ１ｃは、図５に示した第２管理情報ＩＮＦＬ１ｂの代わりに図２４に示す第２管理情報ＩＮＦＬ１ｃを保持することを除いて、図３に示したタグ部ＴＡＧＬ１ｂと同一または同様である。図２４に示す例では、タイプコードＴＣＬ１は、第１管理情報ＩＮＦＬＬｃから省かれ、第２管理情報ＩＮＦＬ１ｃに含まれる。
【０２５４】
投入部ＩＮＰｃは、複数の処理要求をメインパイプライン制御部ＭＰＬＣｃに投入する処理要求とサブパイプライン制御部ＳＰＬＣに投入する処理要求とに分類することを除いて、図３に示した投入部ＩＮＰｂと同一または同様である。メインパイプライン制御部ＭＰＬＣｃに投入する処理要求は、第１管理情報ＩＮＦＬＬｃおよび第２管理情報ＩＮＦＬ１ｃのうちの少なくとも第１管理情報ＩＮＦＬＬｃを参照して実行される処理の要求である。また、サブパイプライン制御部ＳＰＬＣに投入する処理要求は、第１管理情報ＩＮＦＬＬｃを参照せずに第２管理情報ＩＮＦＬ１ｃを参照して実行される処理の要求である。図２４に示すタグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃが用いられる場合、サブパイプライン制御部ＳＰＬＣに投入する処理要求は、図１４等で説明した処理要求ＢＩＳＲである。処理要求ＢＩＳＲ以外の処理要求は、メインパイプライン制御部ＭＰＬＣｃに投入される。
【０２５５】
また、投入部ＩＮＰは、処理対象のデータのメモリアドレス等を、メインパイプライン制御部ＭＰＬＣｃ、サブパイプライン制御部ＳＰＬＣ等に出力する。
【０２５６】
メインパイプライン制御部ＭＰＬＣｃは、投入部ＩＮＰｃから受ける処理要求（例えば、処理要求ＲＥＡＤ等）に基づく処理を、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃ等に保持された情報に基づいて実行する。メインパイプライン制御部ＭＰＬＣｃの詳細は、図２６以降で説明する。
【０２５７】
サブパイプライン制御部ＳＰＬＣは、投入部ＩＮＰから受けた処理要求（例えば、処理要求ＢＩＳＲ）に基づく処理を、第１管理情報を参照せずに第２管理情報を参照して実行する。なお、サブパイプライン制御部ＳＰＬＣは、メインパイプライン制御部ＭＰＬＣｃと並列に動作可能である。
【０２５８】
スヌープロック部ＳＮＰｃは、第１キャッシュメモリＬ１からデータを追い出す処理の対象となるデータを第１キャッシュメモリＬ１毎に管理する第３管理情報を保持する情報保持部を有する。なお、スヌープロック部ＳＮＰｃの詳細は、図２５で説明する。
【０２５９】
図２４は、図２３に示したタグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃおよび使用情報保持部ＬＲＵＬＬの一例を示す。なお、図２４に示すタグ部ＴＡＧＬＬｃは、第２キャッシュメモリＬＬｃのウェイ数が１６である場合の一例である。また、図２４に示すタグ部ＴＡＧＬ１ｃは、第１キャッシュメモリＬ１のウェイ数が８である場合の一例である。例えば、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬｃのキャッシュラインのサイズは、１２８バイトである。
【０２６０】
タグ部ＴＡＧＬＬｃは、図５に示した第１管理情報ＩＮＦＬＬｂの代わりに第１管理情報ＩＮＦＬＬｃを保持することを除いて、図３に示したタグ部ＴＡＧＬＬｂと同一または同様である。第１管理情報ＩＮＦＬＬｃは、図５に示した第１管理情報ＩＮＦＬＬｂからタイプコードＴＣＬ１［１：０］が省かれていることを除いて、図５に示した第１管理情報ＩＮＦＬＬｂと同一または同様である。
【０２６１】
タグ部ＴＡＧＬ１ｃは、図５に示した第２管理情報ＩＮＦＬ１ｂの代わりに第２管理情報ＩＮＦＬ１ｃを保持することを除いて、図３に示したタグ部ＴＡＧＬ１ｂと同一または同様である。第２管理情報ＩＮＦＬ１ｃは、図３に示したバリッドＶＬ１の代わりにタイプコードＴＣＬ１［１：０］を有することを除いて、図５に示した第２管理情報ＩＮＦＬ１ｂと同一または同様である。すなわち、タイプコードＴＣＬ１［１：０］は、図３に示した例ではタグ部ＴＡＧＬＬｂに格納されるが、図２４に示す例ではタグ部ＴＡＧＬ１ｃに格納される。
【０２６２】
使用情報保持部ＬＲＵＬＬは、図５に示した使用情報保持部ＬＲＵＬＬと同一または同様である。なお、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃおよび使用情報保持部ＬＲＵＬＬの構成は、図５に示す例に限定されない。
【０２６３】
図２５は、図２３に示したスヌープロック部ＳＮＰｃの一例を示す。スヌープロック部ＳＮＰｃは、図６に示した判定部ＤＪＳＢ（ＤＪＳＢ０−ＤＪＳＢｎ）の代わりに判定部ＤＪＳＣ（ＤＪＳＣ０−ＤＪＳＣｎ）を有する。また、スヌープロック部ＳＮＰｃは、論理和回路ＯＲｓ３が図６に示したスヌープロック部ＳＮＰｂに追加される。スヌープロック部ＳＮＰｃのその他の構成は、図６に示したスヌープロック部ＳＮＰｂと同一または同様である。例えば、スヌープロック部ＳＮＰｃは、情報保持部ＭＳＮＰと複数の判定部ＤＪＳＢ（ＤＪＳＢ０−ＤＪＳＢｎ）と論理和回路ＯＲｓ２、ＯＲｓ３とを有する。
【０２６４】
情報保持部ＭＳＮＰおよび論理和回路ＯＲｓ２は、図６に示した情報保持部ＭＳＮＰおよび論理和回路ＯＲｓ２と同一または同様である。複数の判定部ＤＪＳＣは互いに同一または同様であるため、判定部ＤＪＳＣ０について説明する。
【０２６５】
判定部ＤＪＳＣ０は、論理積回路ＡＮＤｓ２が図６に示した判定部ＤＪＳＢに追加されることを除いて、図６に示した判定部ＤＪＳＢ０と同一または同様である。例えば、判定部ＤＪＳＣ０は、デコード部ＤＥＣｓ１、マッチ検出部ＭＤｓ１、論理和回路ＯＲｓ１および論理積回路ＡＮＤｓ１、ＡＮＤｓ２、ＡＮＤｓｗ０−ＡＮＤｓｗ１５を有する。
【０２６６】
デコード部ＤＥＣｓ１、マッチ検出部ＭＤｓ１、論理和回路ＯＲｓ１および論理積回路ＡＮＤｓ１は、図６に示したデコード部ＤＥＣｓ１、マッチ検出部ＭＤｓ１、論理和回路ＯＲｓ１および論理積回路ＡＮＤｓ１と同一または同様である。また、論理積回路ＡＮＤｓｗ０−ＡＮＤｓｗ１５は、図６に示した論理積回路ＡＮＤｓｗ０−ＡＮＤｓｗ１５と同一または同様である。なお、マッチ検出部ＭＤｓ１は、アドレスＲＡＤ［１８：７］とインデックスアドレスＰＡ［１８：７］とが一致する場合を真とする一致フラグを第３管理情報ＩＮＦＳＮＰ毎に生成する一致フラグ生成部の一例である。
【０２６７】
論理積回路ＡＮＤｓ２は、第３管理情報ＩＮＦＳＮＰ０内のバリッドＶＥＮＴと、マッチ検出部ＭＤｓ１による比較結果と、デコード部ＤＥＣｓ１によりデコードされたデコード情報ＬＬＷ０−ＬＬＷ１５とを受ける。そして、論理積回路ＡＮＤｓ２は、デコード情報ＬＬＷ０−ＬＬＷ１５の各々と、バリッドＶＥＮＴと、マッチ検出部ＭＤｓ１による比較結果との論理積を演算し、演算結果を情報ＳＩＮＦ０［１５：０］として論理和回路ＯＲｓ３に出力する。例えば、情報ＳＩＮＦ０［０：０］は、デコード情報ＬＬＷ０とバリッドＶＥＮＴとマッチ検出部ＭＤｓ１による比較結果との論理積結果を示す。また、例えば、情報ＳＩＮＦ０［１５：１５］は、デコード情報ＬＬＷ１５とバリッドＶＥＮＴとマッチ検出部ＭＤｓ１による比較結果との論理積結果を示す。
【０２６８】
論理和回路ＯＲｓ３は、判定部ＤＪＳＣ０−ＤＪＳＣｎから情報ＳＩＮＦ０［１５：０］−ＳＩＮＦｎ［１５：０］をそれぞれ受け、情報ＳＩＮＦ０［１５：０］−ＳＩＮＦｎ［１５：０］の論理和を情報ＳＩＮＦのビット毎に演算する。そして、論理和回路ＯＲｓ３は、情報ＳＩＮＦ０［１５：０］−ＳＩＮＦｎ［１５：０］のビット毎の論理和結果を、情報ＳＷＡＹ０−ＳＷＡＹ１５としてメインパイプライン制御部ＭＰＬＣｃに出力する。例えば、情報ＳＷＡＹ０は、情報ＳＩＮＦ０［０：０］−ＳＩＮＦｎ［０：０］の論理和結果を示す。情報ＳＷＡＹの末尾の数字は、第２キャッシュメモリＬＬｃのウェイＷＡＹの末尾の数字に対応する。
【０２６９】
情報ＳＷＡＹは、要求データのアドレス［１８：７］で指定される各ウェイＷＡＹのデータがスヌープロック部ＳＮＰｃに登録されているか否かを示す。例えば、要求データのアドレス［１８：７］で指定される複数のデータのうち、ウェイＷＡＹ０、ＷＡＹ１５のデータがスヌープロック部ＳＮＰｃに登録されている場合、情報ＳＷＡＹ０、ＳＷＡＹ１５が論理値”１”に設定される。なお、スヌープロック部ＳＮＰｃの構成は、図２５に示す例に限定されない。
【０２７０】
図２６は、図２３に示したメインパイプライン制御部ＭＰＬＣｃの一例を示す。図２６に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。メインパイプライン制御部ＭＰＬＣｃは、図９に示したヒット判定部ＨＤＪｂ、コア判定部ＣＤＪｂ、条件一致検出部ＣＯＮＤｂおよび処理判定部ＰＤＪｂの代わりに、ヒット判定部ＨＤＪｃ、コア判定部ＣＤＪｃ、条件一致検出部ＣＯＮＤｃおよび処理判定部ＰＤＪｃを有する。また、メインパイプライン制御部ＭＰＬＣｃは、図９に示した選択判定部ＳＤＪの代わりに、選択判定部ＳＤＪ１、ＳＤＪ２、ＳＤＪ３を有する。メインパイプライン制御部ＭＰＬＣｃのその他の構成は、図９に示したパイプライン制御部ＰＬＣと同一または同様である。
【０２７１】
例えば、メインパイプライン制御部ＭＰＬＣｃは、選択判定部ＳＤＪ、ヒット判定部ＨＤＪｃ、エンコード部ＥＮＣ、コア判定部ＣＤＪｃ、データ制御部ＤＡＴＡＣＬ、条件一致検出部ＣＯＮＤｃ、使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｃを有する。さらに、メインパイプライン制御部ＭＰＬＣｃは、コマンド制御部ＣＭＤＣＬを有する。図２６では、図９に示したパイプライン制御部ＰＬＣと相違する点を中心に説明する。
【０２７２】
図２６に示すメインパイプライン制御部ＭＰＬＣｃでは、第１キャッシュメモリＬ１に保持されたデータを保持しているウェイＷＡＹは、コア判定部ＣＤＪｃによりステージ１で特定される。このため、選択判定部ＳＤＪ（ＳＤＪ１、ＳＤＪ２、ＳＤＪ３）は、ビクティムウェイＷＡＹを選択する処理を、ステージ０からステージ３までかけて実行する。選択判定部ＳＤＪ（ＳＤＪ１、ＳＤＪ２、ＳＤＪ３）は、第１キャッシュメモリＬ１に保持されたデータを保持しているウェイＷＡＹを示す情報ＣＷＡＹをコア判定部ＣＤＪｃから受けることを除いて、図９に示した選択判定部ＳＤＪと同一または同様である。
【０２７３】
ヒット判定部ＨＤＪｃは、第２キャッシュメモリＬＬｃがキャッシュヒットするか否かを、タグ部ＴＡＧＬＬｃに保持された第１管理情報ＩＮＦＬＬｃに基づいて判定する。そして、ヒット判定部ＨＤＪｃは、判定結果として情報ＨＴＣＬＬ、ＬＬＨＴＷを出力する。すなわち、ヒット判定部ＨＤＪｃは、第１キャッシュメモリＬ１からの読み出し要求ＲＥＡＤで要求される要求データがデータ保持部ＤＭＥＭに保持されているかを第１管理情報ＩＮＦＬＬｃに基づいて判定する状態判定部の一例である。ヒット判定部ＨＤＪｃの詳細は、図２７で説明する。
【０２７４】
コア判定部ＣＤＪｃは、複数の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを、タグ部ＴＡＧＬ１ｃに保持された第２管理情報ＩＮＦＬ１ｃに基づいて判定する。コア判定部ＣＤＪｃの詳細は、図２８で説明する。
【０２７５】
条件一致検出部ＣＯＮＤｃは、追い出し要求ＭＯＲＰの発行を抑止する抑止条件が満たされるか判定する際の事前判定を実行する。抑止条件は、図９で説明した抑止条件と同じである。なお、第２キャッシュメモリＬＬｃでは、タイプコードＴＣＬ１が第２管理情報ＩＮＦＬ１ｃに含まれる。このため、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことを検出する際に、情報ＣＷＡＹの他に、スヌープロック部ＳＮＰｃからの情報ＳＷＡＹが使用される。条件一致検出部ＣＯＮＤｃの詳細は、図２９で説明する。
【０２７６】
処理判定部ＰＤＪｃは、サブパイプライン制御部ＳＰＬＣに投入される処理要求ＢＩＳＲ等の処理要求に基づく処理を実行しないことを除いて、図９に示した処理判定部ＰＤＪｂと同一または同様である。例えば、処理判定部ＰＤＪｃは、図１３に示した追い出し要求完了判定部ＣＴＤＪ、追い出し実行判定部ＥＸＤＪ、指示生成部ＩＧＥＮ、第２キャッシュタグ更新判定部ＴＧＤＪ、第２キャッシュタグデータ生成部ＴＤＧＥＮを有する。さらに、処理判定部ＰＤＪｃは、図１３に示した第１キャッシュ制御部ＣＭＣＮＴＬｂ、アボート判定部ＡＢＤＪ、インターロック制御部ＩＮＴＣＬ、論理積回路ＡＮＤｐ１、ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ４、ＡＮＤｐ５を有する。また、処理判定部ＰＤＪｃは、図１３に示した論理和回路ＯＲｐ１、選択部ＳＥＬｐ１、ＳＥＬｐ２、ＳＥＬｐ３およびデコード部ＤＥＣを有する。
【０２７７】
なお、処理判定部ＰＤＪｃは、第２キャッシュメモリＬＬｃがキャッシュミスし、かつ、要求データを登録する記憶領域に空きがない場合、追い出し要求ＭＯＲＰを発行せずに、複数の記憶領域のいずれかからデータを追い出す処理部の一例である。
【０２７８】
図２７は、図２６に示したヒット判定部ＨＤＪｃの一例を示す。ヒット判定部ＨＤＪｃは、図１０に示した選択部ＳＥＬｈ３がヒット判定部ＨＤＪｂから省かれることを除いて、図１０に示したヒット判定部ＨＤＪｂと同一または同様である。例えば、ヒット判定部ＨＤＪｃは、デコード部ＤＥＣｈ１と、複数の判定部ＤＪＷ（ＤＪＷ０−ＤＪＷ１５）と、選択部ＳＥＬｈ２とを有する。
【０２７９】
図２８は、図２６に示したコア判定部ＣＤＪｃの一例を示す。コア判定部ＣＤＪｃは、複数の判定部ＤＪＬ１ｃ（ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３）と、論理和回路ＯＲｃ３と、選択部ＳＥＬｃ２とを有する。判定部ＤＪＬ１ｃの末尾の数字は、第２管理情報ＩＮＦＬ１ｃの末尾の数字に対応する。複数の判定部ＤＪＬ１ｃは互いに同一または同様であるため、判定部ＤＪＬ１ｃ０について説明する。
【０２８０】
判定部ＤＪＬ１ｃ０は、図１１に示した論理積回路ＡＮＤｃ１、ＡＮＤｃ２の代わりに、論理積回路ＡＮＤｃ３を有する。また、判定部ＤＪＬ１ｂ０では、論理和回路ＯＲｃ２および論理積回路ＡＮＤｃ４が図１１に示した判定部ＤＪＬ１ｂ０に追加される。判定部ＤＪＬ１ｃ０のその他の構成は、図１１に示した判定部ＤＪＬ１ｂ０と同一または同様である。
【０２８１】
例えば、判定部ＤＪＬ１ｂ０は、デコード部ＤＥＣｃ１、マッチ検出部ＭＤｃ１、論理和回路ＯＲｃ１、ＯＲｃ２および論理積回路ＡＮＤｃ３、ＡＮＤｃ４、ＡＮＤｃｗ０−ＡＮＤｃｗ１５を有する。
【０２８２】
デコード部ＤＥＣｃ１、マッチ検出部ＭＤｃ１および論理和回路ＯＲｃ１は、図１１に示したデコード部ＤＥＣｃ１、マッチ検出部ＭＤｃ１および論理和回路ＯＲｃ１と同一または同様である。また、論理積回路ＡＮＤｃｗ０−ＡＮＤｃｗ１５は、図１１に示した論理積回路ＡＮＤｃｗ０−ＡＮＤｃｗ１５と同一または同様である。
【０２８３】
論理積回路ＡＮＤｃ３は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｃ０内のタイプコードＴＣＬ１［１：０］を、タグ部ＴＡＧＬ１ｃから受ける。また、論理積回路ＡＮＤｃ３は、マッチ検出部ＭＤｃ１による比較結果と論理和回路ＯＲｃ１の演算結果とを受ける。そして、論理積回路ＡＮＤｃ３は、マッチ検出部ＭＤｃ１による比較結果と論理和回路ＯＲｃ１の演算結果とタグ部ＴＡＧＬ１ｃから受けたタイプコードＴＣＬ１［１：０］との論理積を演算し、演算結果をコアデータ情報ＨＴＣＬ１００［１：０］として出力する。
【０２８４】
論理和回路ＯＲｃ２は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｃ０内のタイプコードＴＣＬ１［１：０］をタグ部ＴＡＧＬ１ｃから受ける。そして、論理和回路ＯＲｃ２は、タグ部ＴＡＧＬ１ｃから受けたタイプコードＴＣＬ１［０：０］とタイプコードＴＣＬ１［１：１］との論理和を演算し、演算結果を論理積回路ＡＮＤｃ４に出力する。
【０２８５】
論理積回路ＡＮＤｃ４は、デコード部ＤＥＣｃ１によりデコードされたデコード情報ＬＬＷ０−ＬＬＷ１５とマッチ検出部ＭＤｃ１による比較結果と論理和回路ＯＲｃ２の演算結果とを受ける。そして、論理積回路ＡＮＤｃ４は、デコード情報ＬＬＷ０−ＬＬＷ１５の各々とマッチ検出部ＭＤｃ１による比較結果と論理和回路ＯＲｃ２の演算結果との論理積を演算し、演算結果を個別所持情報ＶＡＬ０［１５：０］として論理和回路ＯＲｃ３に出力する。個別所持情報ＶＡＬ０［１５：０］の０番目から１５番目までの各ビットは、第２キャッシュメモリＬＬｃのウェイＷＡＹ０−ＷＡＹ１５にそれぞれ対応する。
【０２８６】
例えば、コアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されているデータが、第２キャッシュメモリＬＬｃのウェイＷＡＹ０に保持されている場合、個別所持情報ＶＡＬ０［０：０］は、真（例えば、論理値”１”）に設定される。また、コアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されているデータが、第２キャッシュメモリＬＬｃのウェイＷＡＹ１５に保持されている場合、個別所持情報ＶＡＬ０［１５：１５］は、真（例えば、論理値”１”）に設定される。
【０２８７】
論理和回路ＯＲｃ３は、判定部ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３から受けた個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ６３［１５：０］の論理和をビット毎に演算し、各ビットの演算結果を１６個の所持情報ＣＷＡＹ０−ＣＷＡＹ１５として出力する。例えば、所持情報ＣＩＮＦ０は、個別所持情報ＶＡＬ０［０：０］−ＶＡＬ６３［０：０］の論理和結果であり、所持情報ＣＩＮＦ１５は、個別所持情報ＶＡＬ０［１５：１５］−ＶＡＬ６３［１５：１５］の論理和結果である。所持情報ＣＷＡＹ（ＣＷＡＹ０−ＣＷＡＹ１５）は、条件一致検出部ＣＯＮＤｃおよび選択判定部ＳＤＪ３に転送される。
【０２８８】
選択部ＳＥＬｃ２は、アドレスＲＡＤ［１３：７］で示されるインデックスアドレスＰＡ［１３：７］に対応する第２管理情報ＩＮＦＬ１ｃ０−ＩＮＦＬ１ｃ６３内のタイプコードＴＣＬ１［１：０］を入力信号として、タグ部ＴＡＧＬ１ｃから受ける。また、選択部ＳＥＬｃ２は、要求ウェイ情報ＲＥＱＣＷＡＹを選択信号として、投入部ＩＮＰｃから受ける。そして、選択部ＳＥＬｃ２は、タグ部ＴＡＧＬ１ｃから受けた複数のタイプコードＴＣＬ１［１：０］のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＥＱＴＣＬ１［１：０］として選択する。選択部ＳＥＬｃ２により選択された要求データ情報ＲＥＱＴＣＬ１［１：０］は、処理判定部ＰＤＪｃに転送される。
【０２８９】
図２９は、図２６に示した条件一致検出部ＣＯＮＤｃの一例を示す。条件一致検出部ＣＯＮＤｃは、図１２に示した検出部ＤＥＴｂ（ＤＥＴｂ０−ＤＥＴｂ１５）の代わりに検出部ＤＥＴｃ（ＤＥＴｃ０−ＤＥＴｃ１５）を有することを除いて、図１２に示した条件一致検出部ＣＯＮＤｂと同一または同様である。例えば、条件一致検出部ＣＯＮＤｃは、複数の検出部ＤＥＴｃ（ＤＥＴｃ０−ＤＥＴｃ１５）を有する。検出部ＤＥＴｃの末尾の数字は、第２キャッシュメモリＬＬｃのウェイＷＡＹの末尾の数字に対応する。複数の検出部ＤＥＴｃは互いに同一または同様であるため、検出部ＤＥＴｃ０について説明する。
【０２９０】
検出部ＤＥＴｃ０は、論理和回路ＯＲｄ２が図１２に示した検出部ＤＥＴｂ０に追加されることを除いて、図１２に示した検出部ＤＥＴｂ０と同一または同様である。すなわち、検出部ＤＥＴｃ０は、ウェイＷＡＹ０に保持されたデータのうち、インデックスアドレスＰＡ［１８：７］で示される追い出し対象データの候補が抑止条件を満たすかを検出する。
【０２９１】
例えば、検出部ＤＥＴｃ０は、排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、否定論理積回路ＮＡＮＤｄ１、論理積回路ＡＮＤｄ１、ＡＮＤｄ２、否定論理和回路ＮＯＲｄ１および論理和回路ＯＲｄ１、ＯＲｄ２を有する。論理和回路ＯＲｄ２は、所持情報ＣＷＡＹ０と情報ＳＷＡＹ０との論理和を演算し、演算結果を論理積回路ＡＮＤｄ１に出力する。所持情報ＣＷＡＹ０と情報ＳＷＡＹ０との論理和結果が論理値”１”の場合、追い出し対象データの候補が第１キャッシュメモリＬ１に保持されていることを示す。
【０２９２】
排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理積回路ＡＮＤｄ１、ＡＮＤｄ２は、図１２に示した排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理積回路ＡＮＤｄ１、ＡＮＤｄ２と同一または同様である。なお、論理積回路ＡＮＤｄ１は、論理積回路ＡＮＤｄ２の演算結果と論理和回路ＯＲｄ２の演算結果の反転信号と否定論理積回路ＮＡＮＤｄ１の演算結果との論理積を演算し、演算結果を論理和回路ＯＲｄ１に出力する。否定論理和回路ＮＯＲｄ１、否定論理積回路ＮＡＮＤｄ１および論理和回路ＯＲｄ１は、図１２に示した否定論理和回路ＮＯＲｄ１、否定論理積回路ＮＡＮＤｄ１および論理和回路ＯＲｄ１と同一または同様である。例えば、論理和回路ＯＲｄ１は、論理積回路ＡＮＤｄ１の演算結果と否定論理和回路ＮＯＲｄ１の演算結果との論理和を演算し、演算結果をマッチウェイ情報ＭＷＡＹ０として処理判定部ＰＤＪｃに出力する。
【０２９３】
図３０は、図２３に示したパイプライン制御部ＭＰＬＣｃ、ＳＰＬＣに投入される処理要求の一例を示す。なお、図２３の括弧内に、追い出し要求ＭＯＲＰを抑止する制御がない比較例を示す。処理要求ＢＩＳＲは、サブパイプライン制御部ＳＰＬＣに投入される。また、読み出し要求ＲＥＡＤにより選択される追い出し対象データが全てクリーンである場合、メインパイプライン制御部ＭＰＬＣｃには、２つの処理要求ＲＥＡＤ、ＭＶＩＮが投入される。これに対し、比較例では、３つの処理要求ＲＥＡＤ、ＭＯＲＰ、ＭＶＩＮがメインパイプライン制御部ＭＰＬＣｃに投入される。以下に、読み出し要求ＲＥＡＤ内で追い出し要求ＭＯＲＰに基づく処理相当の処理を実行することによって見込める性能改善を示す。
【０２９４】
読み出し要求ＲＥＡＤにより選択される追い出し対象データが全てクリーンである場合、第２キャッシュメモリＬＬｃでは、読み出し処理に基づく一連のフローは、１２サイクルで６回実行される。これに対し、比較例では、読み出し処理に基づく一連のフローは、１２サイクルで４回実行される。この場合、第２キャッシュメモリＬＬｂでは、比較例に対して約５０％の改善が見込めると考えられる。
【０２９５】
追い出し対象データがダーティである確率が１０％と仮定した場合、読み出し要求ＲＥＡＤにより選択される追い出し対象データは、９０％がクリーンである。追い出し対象データがダーティである場合、メインパイプライン制御部ＭＰＬＣｃは、４つの処理要求ＲＥＡＤ、ＭＯＲＰ、ＭＶＩＮ、ＷＲＢＫに基づく処理を実行する。なお、処理要求ＷＲＢＫは、追い出し対象データを書き戻す処理の要求である。
【０２９６】
この場合、１０個の読み出し処理に基づく一連のフローは、追い出し対象データがダーティである場合のフローが１回、追い出し対象データがクリーンである場合のフローが９回に分けられる。したがって、第２キャッシュメモリＬＬｃでは、１０個の読み出し処理に基づく一連のフローを実行する場合、２２回（＝４×１＋２×９）の処理要求が投入される。これに対し、比較例では、３１回（＝４×１＋３×９）の処理要求が投入される。この場合、第２キャッシュメモリＬＬｃでは、比較例に対して約２９％の改善が見込めると考えられる。
【０２９７】
図３１は、追い出し対象データが抑止条件を満たさない場合の演算処理装置ＰＵｃの動作の一例を示す。図３１に示す実線の矢印、点線の矢印および”Ｌ１  Ｖｉｃｔｉｍ”の意味は、図１７と同じである。また、図３１では、要求データおよび追い出し対象データの状態（条件）は、図１７と同じである。例えば、追い出し対象データは、スヌープロック部ＳＮＰｃに登録されている。図３１では、図１７のパイプライン制御部ＰＬＣをメインパイプライン制御部ＭＰＬＣｃに読み替えた場合の図１７の動作と図３１の動作との相違点を中心に説明する。
【０２９８】
図３１に示す動作では、処理要求ＢＩＳＲは、サブパイプライン制御部ＳＰＬＣに投入される。また、”Ｌ１  Ｖｉｃｔｉｍ”が第１キャッシュメモリＬ１に保持されていることを示す保持情報は、メインパイプライン制御部ＭＰＬＣｃが第１キャッシュメモリＬ１に対して”Ｌ１  Ｖｉｃｔｉｍ”の無効化を要求するまで、タグ部ＴＡＧＬ１ｂに保持される。メインパイプライン制御部ＭＰＬＣｃが第１キャッシュメモリＬ１に対して”Ｌ１  Ｖｉｃｔｉｍ”の無効化を要求してからは、保持情報は、サブパイプライン制御部ＳＰＬＣで処理要求ＢＩＳＲが実行されるまで、スヌープロック部ＳＮＰｃに保持される。このため、図２３に示した第２キャッシュメモリＬＬｃは、スヌープロック部ＳＮＰｃに保持された情報を用いて、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことを検出する。
【０２９９】
例えば、メインパイプライン制御部ＭＰＬＣｃは、タグ部ＴＡＧＬ１ｂに保持されている”Ｌ１  Ｖｉｃｔｉｍ”の第２管理情報ＩＮＦＬ１ｂを含む第２管理情報ＩＮＦＬ１ｂを、読み出し要求ＲＥＡＤにより応答する新しいデータの情報に上書きする。そして、メインパイプライン制御部ＭＰＬＣｃは、”Ｌ１  Ｖｉｃｔｉｍ”の情報をスヌープロック部ＳＮＰｃに登録する（図３１（ｇ３））。スヌープロックは、第１キャッシュメモリＬ１によるＬ１リプレース処理が完了し、サブパイプライン制御部ＳＰＬＣで処理要求ＢＩＳＲが実行されことにより、解放される（図３１（ｇ５））。
【０３００】
これに対し、図１７に示した動作では、保持情報は、パイプライン制御部ＰＬＣで処理要求ＢＩＳＲが実行されるまで、タグ部ＴＡＧＬ１ｂとスヌープロック部ＳＮＰｂとの両方に保持される。すなわち、スヌープロック部ＳＮＰｂに保持される情報は、タグ部ＴＡＧＬ１ｂから得られる情報に含まれる。このため、図３に示した第２キャッシュメモリＬＬｂは、スヌープロック部ＳＮＰｂの情報を参照することなく、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことを検出できる。
【０３０１】
なお、図１４、図１５および図１６に示した動作に対応する演算処理装置ＰＵｃの動作は、パイプライン制御部ＰＬＣをメインパイプライン制御部ＭＰＬＣｃに読み替え、処理要求ＢＩＳＲの投入先をサブパイプライン制御部ＳＰＬＣとすることにより説明される。
【０３０２】
図３２は、図２２に示した第２キャッシュメモリＬＬｃのデータアクセスの一例を示す。メインパイプライン制御部ＭＰＬＣｃは、読み出し要求ＲＥＡＤ１が投入され、第２キャッシュメモリＬＬｃがキャッシュミスした場合、メモリ制御部ＭＣＮＴＬ等に対してデータ要求を実行する。この場合、メインパイプライン制御部ＭＰＬＣｃは、読み出し要求ＲＥＡＤ１が投入されてから固定サイクル後に、要求が有効であることを示す信号を信号線ＲＥＱＶＡＬＩＤを介してメモリ制御部ＭＣＮＴＬ等に送信する。さらに、メインパイプライン制御部ＭＰＬＣｃは、要求内容、要求アドレス等を示す信号を信号線ＲＥＣＣＭＤを用いてメモリ制御部ＭＣＮＴＬ等に送信する。要求内容は、例えば、データの読み出しを要求する要求ＭＥＭＲＥＡＤ１等である。
【０３０３】
読み出し要求ＲＥＡＤ２は、読み出し要求ＲＥＡＤ１に連続してメインパイプライン制御部ＭＰＬＣｃに投入され、メインパイプライン制御部ＭＰＬＣｃからメモリ制御部ＭＣＮＴＬ等に対する要求ＭＥＭＲＥＡＤ２も連続して送信される。
【０３０４】
読み出し要求ＲＥＡＤ２に続いて追い出し要求ＭＯＲＰ３がメインパイプライン制御部ＭＰＬＣｃに投入された場合、メモリ制御部ＭＣＮＴＬ等に対して、データＷＤ３の書き込みを要求する要求ＭＥＭＷＲＩＴＥが実行される可能性がある。データＷＤ３は、図８で説明したように、４つのデータＷＤ３ａ、ＷＤ３ｂ、ＷＤ３ｃ、ＷＤ３ｄに分割されて転送される。この場合、データバスＲＥＱＤＡＴＡは４サイクル占有される。このため、追い出し要求ＭＯＲＰ３以降に要求ＭＥＭＷＲＩＴＥを実行する可能性のある処理要求は、追い出し要求ＭＯＲＰ３をメインパイプライン制御部ＭＰＬＣｃに投入してから少なくとも４サイクル経過後に投入するように制御される。
【０３０５】
なお、主記憶装置ＭＥＭへの書き込みを実行しない処理要求は、メインパイプライン制御部ＭＰＬＣｃに投入されてもデータバスＲＥＱＤＡＴＡの競合が発生しない。このため、例えば、読み出し要求ＲＥＡＤ４は、追い出し要求ＭＯＲＰ３に連続してメインパイプライン制御部ＭＰＬＣｃに投入され、固定サイクル後に、要求ＭＥＭＲＥＡＤ２がメモリ制御部ＭＣＮＴＬ等に送信される。
【０３０６】
メモリ制御部ＭＣＮＴＬからメインパイプライン制御部ＭＰＬＣｃへの応答は、例えば、信号線ＲＥＱＶＡＬＩＤ、ＲＥＱＣＭＤ、ＲＥＱＤＡＴＡと異なる信号線ＲＴＮＶＡＬＩＤ、ＲＴＮＣＭＤ、ＲＴＮＤＡＴＡを用いて実行される。
【０３０７】
例えば、メモリ制御部ＭＣＮＴＬは、メインパイプライン制御部ＭＰＬＣｃから要求ＭＥＭＲＥＡＤ１を受けてから一定時間後に、応答ＲＴＮＲＥＡＤ１およびデータＲＤ１をメインパイプライン制御部ＭＰＬＣｃに応答する。データＲＤ１は、例えば、データＷＤ３と同様に、４つのデータＲＤ１ａ、ＲＤ１ｂ、ＲＤ１ｃ、ＲＤ１ｄに分割され、４サイクルで送信される。
【０３０８】
要求ＭＥＭＲＥＡＤ２に対する応答も、要求ＭＥＭＲＥＡＤ１に対する応答と同様に実行される。要求ＭＥＭＷＲＩＴＥ３に対する応答では、応答するデータがないため、メモリ制御部ＭＣＮＴＬは、信号線ＲＴＮＣＭＤを用いて、応答ＲＴＮＷＲＩＴＥ３をメインパイプライン制御部ＭＰＬＣｃに応答する。
【０３０９】
以上、図２２から図３２に示す実施形態においても、図２から図２１に示した実施形態と同様の効果を得ることができる。例えば、メインパイプライン制御部ＭＰＬＣｃは、追い出し対象データが抑止条件を満たす場合、追い出し要求ＭＯＲＰを発行せずに、複数のウェイＷＡＹのいずれかからデータを追い出す処理を実行する。これにより、第１キャッシュメモリＬ１からの１回の読み出し要求ＲＥＡＤに対する一連の処理を実行する際のパイプライン制御部ＰＬＣのスループットを向上させることができる。この結果、第２キャッシュメモリＬＬｃのスループットを向上させることができる。
【０３１０】
さらに、第２キャッシュメモリＬＬｃは、メインパイプライン制御部ＭＰＬＣｃとサブパイプライン制御部ＳＰＬとを有する。メインパイプライン制御部ＭＰＬＣｃは、処理要求ＢＩＳＲ等を実行するサブパイプライン制御部ＳＰＬと並列に動作可能である。これにより、例えば、処理要求ＢＩＳＲと他の処理要求とを並列に実行できないキャッシュメモリに比べて、第２キャッシュメモリＬＬｃのスループットを向上させることができる。
【０３１１】
図３３は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図３１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図３３に示す情報処理装置ＩＰＥｄは、例えば、サーバ等のコンピュータ装置である。情報処理装置ＩＰＥｄは、図２２に示した演算処理装置ＰＵｃの代わりに演算処理装置ＰＵｄを有することを除いて、図２２に示した情報処理装置ＩＰＥｃと同一または同様である。例えば、情報処理装置ＩＰＥｄは、複数の演算処理装置ＰＵｄ（ＰＵｄ０、ＰＵｄ１、ＰＵｄ２、ＰＵｄ３）と複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と通信部ＣＤと入出力制御部ＩＯＣＮＴＬと入出力装置ＩＯＵとを有する。
【０３１２】
演算処理装置ＰＵｄは、図２２に示した第２キャッシュメモリＬＬｃの代わりに第２キャッシュメモリＬＬｄを有することを除いて、図２２に示した演算処理装置ＰＵｃと同一または同様である。例えば、演算処理装置ＰＵｄは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬｄと、メモリ制御部ＭＣＮＴＬと、通信インタフェース部ＣＩＦとを有する。
【０３１３】
なお、演算処理装置ＰＵｄおよび情報処理装置ＩＰＥｄの構成は、図３３に示す例に限定されない。また、演算処理装置ＰＵｄおよび主記憶装置ＭＥＭの数は、図３３に示す例に限定されない。
【０３１４】
図３４は、図３３に示した第２キャッシュメモリＬＬｄの一例を示す。第２キャッシュメモリＬＬｄは、図２３に示したメインパイプライン制御部ＭＰＬＣｃの代わりに、メインパイプライン制御部ＭＰＬＣｄを有することを除いて、図２３に示した第２キャッシュメモリＬＬｃと同一または同様である。
【０３１５】
例えば、第２キャッシュメモリＬＬｄは、投入部ＩＮＰｃ、メインパイプライン制御部ＭＰＬＣｄおよびサブパイプライン制御部ＳＰＬＣを有する。さらに、第２キャッシュメモリＬＬｄは、データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｂ、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃ、ＴＡＧＤ、使用情報保持部ＬＲＵＬＬ、スヌープロック部ＳＮＰｃおよびキャッシュミス制御部ＭＩＢを有する。
【０３１６】
図３４に示す第２キャッシュメモリＬＬｄでは、追い出し要求ＭＯＲＰの発行を抑止する抑止条件の第２条件が図２３に示した第２キャッシュメモリＬＬｃと異なる。例えば、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことが図９で説明した第２条件から省かれる。そして、追い出し対象データを複数の第１キャッシュメモリＬ１のいずれかから追い出す処理が実行中でないことが図９で説明した第２条件に追加される。すなわち、第２条件は、追い出し対象データが”Ｌｏｃａｌ＝Ｈｏｓｔ”であり、追い出し対象データの状態が”変更”以外の状態であり、かつ、追い出し対象データを複数の第１キャッシュメモリＬ１のいずれかから追い出す処理が実行中でないことである。第１条件は、図９で説明した第１条件と同じである。
【０３１７】
このため、メインパイプライン制御部ＭＰＬＣｄが図２３に示したメインパイプライン制御部ＭＰＬＣｃと異なる。メインパイプライン制御部ＭＰＬＣｄの詳細は、図３５以降で説明する。なお、メインパイプライン制御部ＭＰＬＣｄ以外の投入部ＩＮＰｃ等のブロックは、図２３に示した第２キャッシュメモリＬＬｃ内の対応するブロックと同一または同様である。
【０３１８】
なお、第２キャッシュメモリＬＬｄの構成は、図３４に示す例に限定されない。例えば、１つのＣＭＧで構成された情報処理装置ＩＰＥｄでは、第２キャッシュメモリＬＬｄは、追い出し対象データの状態が主記憶装置ＭＥＭへの書き戻しを必要としない状態（例えば、”変更”以外の状態）である場合、抑止条件を満たすと判定してもよい。
【０３１９】
図３５は、図３４に示したメインパイプライン制御部ＭＰＬＣｄの一例を示す。図３５に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。
【０３２０】
メインパイプライン制御部ＭＰＬＣｄは、第１キャッシュメモリＬ１が追い出し対象データを保持していた場合でも、読み出し要求ＲＥＡＤ内で追い出し要求ＭＯＲＰに基づく処理相当の処理を実行する。この場合、メインパイプライン制御部ＭＰＬＣｄは、読み出し要求ＲＥＡＤ内で第１キャッシュメモリＬ１に対して追い出し対象データを無効化する無効化指示を送信し、無効化指示の応答によりタグ部ＴＡＧＬ１ｃを更新する機能を有する。さらに、メインパイプライン制御部ＭＰＬＣｄは、追い出し対象データをメモリ制御部ＭＣＮＴＬまたは他のＣＭＧに応答する機能を有する。
【０３２１】
例えば、メインパイプライン制御部ＭＰＬＣｄは、図２６に示したコア判定部ＣＤＪｃ、条件一致検出部ＣＯＮＤｃおよび処理判定部ＰＤＪｃの代わりに、コア判定部ＣＤＪｄ、条件一致検出部ＣＯＮＤｄおよび処理判定部ＰＤＪｄを有する。メインパイプライン制御部ＭＰＬＣｄのその他の構成は、図２６に示したメインパイプライン制御部ＭＰＬＣｃと同一または同様である。
【０３２２】
例えば、メインパイプライン制御部ＭＰＬＣｄは、選択判定部ＳＤＪ、ヒット判定部ＨＤＪｃ、エンコード部ＥＮＣ、コア判定部ＣＤＪｄ、データ制御部ＤＡＴＡＣＬ、条件一致検出部ＣＯＮＤｄ、使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｄを有する。さらに、メインパイプライン制御部ＭＰＬＣｄは、コマンド制御部ＣＭＤＣＬを有する。メインパイプライン制御部ＭＰＬＣｄでは、コア判定部ＣＤＪｄ、条件一致検出部ＣＯＮＤｄおよび処理判定部ＰＤＪｄが図２６に示したコア判定部ＣＤＪｃ、条件一致検出部ＣＯＮＤｃおよび処理判定部ＰＤＪｃと異なる。
【０３２３】
コア判定部ＣＤＪｄは、読み出し要求ＲＥＡＤ内で第１キャッシュメモリＬ１に対して無効化指示を送信するために、追い出し対象データを所持しているコアＣＯＲＥを特定するためのコア所持情報ＶＡＬＣを生成する。コア所持情報ＶＡＬＣは、ステージ３で動作する処理判定部ＰＤＪｄまで伝搬される。なお、コア判定部ＣＤＪｄの詳細は、図３６で説明する。
【０３２４】
条件一致検出部ＣＯＮＤｃは、追い出し対象データの候補が第１キャッシュメモリＬ１に保持されていないことを検出する代わりに、追い出し対象データの候補がスヌープロック部ＳＮＰｃに登録されていないことを検出する。例えば、追い出し対象データがスヌープロック部ＳＮＰｃに登録されている場合、メインパイプライン制御部ＭＰＬＣｄは、読み出し要求ＲＥＡＤを中断し、後続で追い出し要求ＭＯＲＰを実行し、スヌープロックの解除後に読み出し要求ＲＥＡＤを再実行する。この場合、パイプライン処理のスループットが低下する。このため、追い出し対象データがスヌープロック部ＳＮＰｃに登録されている場合に追い出し要求ＭＯＲＰの発行を抑止しないように、追い出し対象データがスヌープロック部ＳＮＰｃに登録されていないことが、抑止条件に含まれる。なお、条件一致検出部ＣＯＮＤｄの詳細は、図３７で説明する。
【０３２５】
処理判定部ＰＤＪｄは、例えば、追い出し対象データが抑止条件を満たし、第１キャッシュメモリＬ１が追い出し対象データを保持していた場合、Ｌ１リプレース処理の指示を追い出し対象データを保持している第１キャッシュメモリＬ１に通知する。そして、処理判定部ＰＤＪｄは、Ｌ１リプレース処理の完了を示す応答情報を受けた後、追い出し要求ＭＯＲＰを発行せずにデータ保持部ＭＥＭから追い出し対象データを追い出す処理を実行する。なお、処理判定部ＰＤＪｄの詳細は、図３８で説明する。
【０３２６】
図３６は、図３５に示したコア判定部ＣＤＪｄの一例を示す。図３６に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。コア判定部ＣＤＪｄは、図２８に示した論理和回路ＯＲｃ３の代わりに、論理和回路ＯＲｃ４（ＯＲｃ４０−ＯＲｃ４７）、ＯＲｃ５を有する。コア判定部ＣＤＪｄのその他の構成は、図２８に示したコア判定部ＣＤＪｃと同一または同様である。
【０３２７】
例えば、コア判定部ＣＤＪｄは、複数の判定部ＤＪＬ１ｃ（ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３）と、論理和回路ＯＲｃ４０−ＯＲｃ４７、ＯＲｃ５と、選択部ＳＥＬｃ２とを有する。判定部ＤＪＬ１ｃおよび選択部ＳＥＬｃ２は、図２８に示した判定部ＤＪＬ１ｃおよび選択部ＳＥＬｃ２と同一または同様である。
【０３２８】
論理和回路ＯＲｃ４（ＯＲｃ４０−ＯＲｃ４７）の末尾の１桁目の数字は、コアＣＯＲＥの末尾の数字に対応する。各論理和回路ＯＲｃ４（ＯＲｃ４０−ＯＲｃ４７）は、対応するコアＣＯＲＥの個別所持情報ＶＡＬを受け、コアＣＯＲＥの各ウェイの個別所持情報ＶＡＬの論理和をビット毎に演算し、演算結果をコア情報ＶＡＬＣとして出力する。コア情報ＶＡＬＣは、論理和回路ＯＲｃ５および処理判定部ＰＤＪｄに転送される。
【０３２９】
コア所持情報ＶＡＬＣの末尾の数字は、コアＣＯＲＥの末尾の数字に対応し、コア所持情報ＶＡＬＣの０番目から１５番目までの各ビットは、第２キャッシュメモリＬＬｄのウェイＷＡＹ０−ＷＡＹ１５にそれぞれ対応する。例えば、コアＣＯＲＥ０の第１キャッシュメモリＬ１に保持されているデータが、第２キャッシュメモリＬＬｄのウェイＷＡＹ０に保持されている場合、コア所持情報ＶＡＬＣ０［０：０］は、真（例えば、論理値”１”）に設定される。
【０３３０】
例えば、論理和回路ＯＲｃ４０は、コアＣＯＲＥ０の各ウェイに対応する個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ７［１５：０］を判定部ＤＪＬ１ｃ０−ＤＪＬ１ｃ７からそれぞれ受ける。そして、論理和回路ＯＲｃ４０は、個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ７［１５：０］の論理和をビット毎に演算し、演算結果をコア所持情報ＶＡＬＣ０［１５：０］として論理和回路ＯＲｃ５および処理判定部ＰＤＪｄに出力する。コア所持情報ＶＡＬＣ０［０：０］は、個別所持情報ＶＡＬ０［０：０］−ＶＡＬ７［０：０］の論理和結果であり、コア所持情報ＶＡＬＣ０［１５：１５］は、個別所持情報ＶＡＬ０［１５：１５］−ＶＡＬ７［１５：１５］の論理和結果である。
【０３３１】
また、例えば、論理和回路ＯＲｃ４７は、コアＣＯＲＥ７の各ウェイに対応する個別所持情報ＶＡＬ５６［１５：０］−ＶＡＬ６３［１５：０］を判定部ＤＪＬ１ｃ５６−ＤＪＬ１ｃ６３からそれぞれ受ける。そして、論理和回路ＯＲｃ４７は、個別所持情報ＶＡＬ５６［１５：０］−ＶＡＬ６３［１５：０］の論理和をビット毎に演算し、演算結果をコア所持情報ＶＡＬＣ７［１５：０］として論理和回路ＯＲｃ５および処理判定部ＰＤＪｄに出力する。コア所持情報ＶＡＬＣ７［０：０］は、個別所持情報ＶＡＬ５６［０：０］−ＶＡＬ６３［０：０］の論理和結果であり、コア所持情報ＶＡＬＣ７［１５：１５］は、個別所持情報ＶＡＬ５６［１５：１５］−ＶＡＬ６３［１５：１５］の論理和結果である。
【０３３２】
論理和回路ＯＲｃ５は、論理和回路ＯＲｃ４０−ＯＲｃ４７から受けたコア所持情報ＶＡＬＣ０［１５：０］−ＶＡＬＣ７［１５：０］の論理和をビット毎に演算し、各ビットの演算結果を１６個の所持情報ＣＷＡＹ０−ＣＷＡＹ１５として出力する。例えば、所持情報ＣＩＮＦ０は、コア所持情報ＶＡＬＣ０［０：０］−ＶＡＬＣ７［０：０］の論理和結果であり、所持情報ＣＩＮＦ１５は、コア所持情報ＶＡＬＣ０［１５：１５］−ＶＡＬＣ７［１５：１５］の論理和結果である。所持情報ＣＷＡＹ（ＣＷＡＹ０−ＣＷＡＹ１５）は、選択判定部ＳＤＪ３に転送される。
【０３３３】
図３６に示す例では、論理和回路ＯＲｃ４（ＯＲｃ４０−ＯＲｃ４７）は、パイプライン処理のステージ１で処理を実行し、論理和回路ＯＲｃ５は、ステージ２で処理を実行する。なお、論理和回路ＯＲｃ５は、ステージ１で処理を実行してもよい。
【０３３４】
このように、第２キャッシュメモリＬＬｄでは、図２３に示した第２キャッシュメモリＬＬｃに比べて、追い出し対象データを所持しているコアＣＯＲＥを特定するための論理和回路ＯＲｃ４０−ＯＲｃ４７等が追加されるため、回路規模が増大するおそれがある。換言すれば、図２３に示した第２キャッシュメモリＬＬｃでは、回路規模の増加を抑制しつつ、パイプライン処理のスループットを向上させることができる。
【０３３５】
図３７は、図３５に示した条件一致検出部ＣＯＮＤｄの一例を示す。条件一致検出部ＣＯＮＤｄは、図２９に示した検出部ＤＥＴｃ（ＤＥＴｃ０−ＤＥＴｃ１５）の代わりに検出部ＤＥＴｄ（ＤＥＴｄ０−ＤＥＴｄ１５）を有することを除いて、図２９に示した条件一致検出部ＣＯＮＤｃと同一または同様である。例えば、条件一致検出部ＣＯＮＤｄは、複数の検出部ＤＥＴｄ（ＤＥＴｄ０−ＤＥＴｄ１５）を有する。検出部ＤＥＴｄの末尾の数字は、第２キャッシュメモリＬＬｄのウェイＷＡＹの末尾の数字に対応する。複数の検出部ＤＥＴｄは互いに同一または同様であるため、検出部ＤＥＴｄ０について説明する。
【０３３６】
検出部ＤＥＴｄ０は、図２９に示した論理和回路ＯＲｄ２が検出部ＤＥＴｃ０から省かれることを除いて、図２９に示した検出部ＤＥＴｃ０と同一または同様である。すなわち、検出部ＤＥＴｄ０は、ウェイＷＡＹ０に保持されたデータのうち、インデックスアドレスＰＡ［１８：７］で示される追い出し対象データの候補が抑止条件を満たすかを検出する。
【０３３７】
例えば、検出部ＤＥＴｄ０は、排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、否定論理積回路ＮＡＮＤｄ１、論理積回路ＡＮＤｄ１、ＡＮＤｄ２、否定論理和回路ＮＯＲｄ１および論理和回路ＯＲｄ１を有する。
【０３３８】
排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理積回路ＡＮＤｄ１、ＡＮＤｄ２は、図２９に示した排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ１、論理積回路ＡＮＤｄ１、ＡＮＤｄ２と同一または同様である。なお、論理積回路ＡＮＤｄ１は、論理積回路ＡＮＤｄ２の演算結果と情報ＳＷＡＹ０の反転信号と否定論理積回路ＮＡＮＤｄ１の演算結果との論理積を演算し、演算結果を論理和回路ＯＲｄ１に出力する。否定論理和回路ＮＯＲｄ１、否定論理積回路ＮＡＮＤｄ１および論理和回路ＯＲｄ１は、図２９に示した否定論理和回路ＮＯＲｄ１、否定論理積回路ＮＡＮＤｄ１および論理和回路ＯＲｄ１と同一または同様である。
【０３３９】
図３８は、図３５に示した処理判定部ＰＤＪｄの一例を示す。図３３に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。処理判定部ＰＤＪｄは、図１３に示した第１キャッシュ制御部ＣＭＣＮＴＬｂの代わりに、第１キャッシュ制御部ＣＭＣＮＴＬｄを有する。処理判定部ＰＤＪｄのその他の構成は、図１３に示した処理判定部ＰＤＪｂと同一または同様である。
【０３４０】
例えば、処理判定部ＰＤＪｄは、追い出し要求完了判定部ＣＴＤＪ、追い出し実行判定部ＥＸＤＪ、指示生成部ＩＧＥＮ、第２キャッシュタグ更新判定部ＴＧＤＪ、第２キャッシュタグデータ生成部ＴＤＧＥＮおよび第１キャッシュ制御部ＣＭＣＮＴＬｄを有する。さらに、処理判定部ＰＤＪｃは、アボート判定部ＡＢＤＪ、インターロック制御部ＩＮＴＣＬ、論理積回路ＡＮＤｐ１、ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ４、ＡＮＤｐ５、論理和回路ＯＲｐ１、選択部ＳＥＬｐ１、ＳＥＬｐ２、ＳＥＬｐ３およびデコード部ＤＥＣを有する。図３８では、図１３に示した処理判定部ＰＤＪｂと異なる第１キャッシュ制御部ＣＭＣＮＴＬｄについて説明する。
【０３４１】
第１キャッシュ制御部ＣＭＣＮＴＬｄは、第１キャッシュメモリＬ１に対してスヌープを指示する場合、スヌープ指示ＩＮＳＰの宛先となる第１キャッシュメモリＬ１をコア所持情報ＶＡＬＣに基づいて決定する。そして、第１キャッシュ制御部ＣＭＣＮＴＬｄは、追い出し対象データを保持しているコアＣＯＲＥにスヌープ指示ＩＮＳＰを送信する。
【０３４２】
以上、図３３から図３８に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、メインパイプライン制御部ＭＰＬＣｄは、追い出し対象データが抑止条件（下記の第１条件または第２条件）を満たす場合、追い出し要求ＭＯＲＰを発行せずに、複数のウェイＷＡＹのいずれかからデータを追い出す処理を実行する。
【０３４３】
第１条件は、追い出し対象データの状態が”無効”であることである。第２条件は、下記の条件２ａ、２ｂ、２ｃを全て満たすことである。条件２ａは、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであることである。条件２ｂは、追い出し対象データの状態が”変更”以外の状態であることである。条件２ｃは、追い出し対象データを複数の第１キャッシュメモリＬ１のいずれかから追い出す処理が実行中でないことである。
【０３４４】
抑止条件が満たされる場合、追い出し要求ＭＯＲＰに基づく処理相当の処理を追い出し要求ＭＯＲＰを発行せずに実行できるため、追い出し要求ＭＯＲＰを発行する場合に比べて、パイプライン制御部ＰＬＣに投入する処理要求の数を少なくすることができる。これにより、第１キャッシュメモリＬ１からの１回の読み出し要求ＲＥＡＤに対する一連の処理を実行する際のパイプライン制御部ＰＬＣのスループットを向上させることができる。この結果、第２キャッシュメモリＬＬｄのスループットを向上させることができる。
【０３４５】
図３９は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図３８で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図３９に示す情報処理装置ＩＰＥｅは、例えば、サーバ等のコンピュータ装置である。情報処理装置ＩＰＥｅは、図２２に示した演算処理装置ＰＵｃの代わりに演算処理装置ＰＵｅを有することを除いて、図２２に示した情報処理装置ＩＰＥｃと同一または同様である。例えば、情報処理装置ＩＰＥｅは、複数の演算処理装置ＰＵｅ（ＰＵｅ０、ＰＵｅ１、ＰＵｅ２、ＰＵｅ３）と複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と通信部ＣＤと入出力制御部ＩＯＣＮＴＬと入出力装置ＩＯＵとを有する。
【０３４６】
演算処理装置ＰＵｅは、図２２に示した第２キャッシュメモリＬＬｃの代わりに第２キャッシュメモリＬＬｅを有することを除いて、図２２に示した演算処理装置ＰＵｃと同一または同様である。例えば、演算処理装置ＰＵｅは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬｅと、メモリ制御部ＭＣＮＴＬと、通信インタフェース部ＣＩＦとを有する。
【０３４７】
なお、演算処理装置ＰＵｅおよび情報処理装置ＩＰＥｅの構成は、図３９に示す例に限定されない。また、演算処理装置ＰＵｅおよび主記憶装置ＭＥＭの数は、図３９に示す例に限定されない。
【０３４８】
図４０は、図３９に示した第２キャッシュメモリＬＬｅの一例を示す。第２キャッシュメモリＬＬｅは、図２３に示したメインパイプライン制御部ＭＰＬＣｃおよびデータ選択部ＤＥＳＬｂの代わりに、メインパイプライン制御部ＭＰＬＣｅおよびデータ選択部ＤＥＳＬｅを有する。また、第２キャッシュメモリＬＬｅでは、排他選択部ＥＸＳＥＬが図２３に示した第２キャッシュメモリＬＬｃに追加される。第２キャッシュメモリＬＬｅのその他の構成は、図２３に示した第２キャッシュメモリＬＬｃと同一または同様である。
【０３４９】
例えば、第２キャッシュメモリＬＬｅは、投入部ＩＮＰｃ、メインパイプライン制御部ＭＰＬＣｅ、サブパイプライン制御部ＳＰＬＣおよび排他選択部ＥＸＳＥＬを有する。さらに、第２キャッシュメモリＬＬｅは、データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｅ、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃ、ＴＡＧＤ、使用情報保持部ＬＲＵＬＬ、スヌープロック部ＳＮＰｃおよびキャッシュミス制御部ＭＩＢを有する。
【０３５０】
図４０に示す第２キャッシュメモリＬＬｅでは、追い出し要求ＭＯＲＰの発行を抑止する抑止条件の第２条件が図２３に示した第２キャッシュメモリＬＬｃと異なる。例えば、追い出し対象データの状態が”変更”以外の状態であることが図９で説明した第２条件から省かれる。すなわち、第２条件は、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであり、かつ、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。第１条件は、図９で説明した第１条件と同じである。このように、第２キャッシュメモリＬＬｅでは、複数のウェイＷＡＹのいずれかから追い出し対象データを追い出す処理（追い出し要求ＭＯＲＰに基づく処理相当の処理）は、追い出し対象データを主記憶装置ＭＥＭに書き戻す処理を含む。
【０３５１】
なお、追い出し対象データの状態が”変更”の場合に、追い出し要求ＭＯＲＰに基づく処理相当の処理を読み出し要求ＲＥＡＤ内で実行すると、メモリ制御部ＭＣＮＴＬに対する２つの要求が同時に発生する可能性がある。２つの要求は、例えば、第１キャッシュメモリＬ１に応答するデータの要求と、追い出し対象データの書き戻しの要求である。このため、２つの要求を排他的に選択する排他選択部ＥＸＳＥＬが図２３に示した第２キャッシュメモリＬＬｃに追加される。なお、排他選択部ＥＸＳＥＬの詳細は、図４２で説明する。
【０３５２】
また、抑止条件が図２３に示した第２キャッシュメモリＬＬｃと異なるため、メインパイプライン制御部ＭＰＬＣｅが図２３に示したメインパイプライン制御部ＭＰＬＣｃと異なる。メインパイプライン制御部ＭＰＬＣｅの詳細は、図４３以降で説明する。さらに、図４０に示す例では、データ選択部ＤＳＥＬｅが図２３に示したデータ選択部ＤＳＥＬｂと異なる。データ選択部ＤＳＥＬｅの詳細は、図４１で説明する。なお、第２キャッシュメモリＬＬｅ内のその他のブロック（例えば、投入部ＩＮＰｃ等）は、図２３に示した第２キャッシュメモリＬＬｃ内の対応するブロックと同一または同様である。
【０３５３】
なお、第２キャッシュメモリＬＬｅの構成は、図３９に示す例に限定されない。例えば、第２キャッシュメモリＬＬｅは、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータである場合、抑止条件を満たすと判定してもよい。この場合、例えば、図４３等で説明するメインパイプライン制御部ＭＰＬＣｅは、図３６、図３８で説明したコア判定部ＣＤＪｄ、第１キャッシュ制御部ＣＭＣＮＴＬｄをコア判定部ＣＤＪｃ、第１キャッシュ制御部ＣＭＣＮＴＬｂの代わりに有する。
【０３５４】
図４１は、図４０に示したデータ選択部ＤＳＥＬｅの一例を示す。図４１に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。図４１に示す例では、図４３で説明するように、データ保持部ＤＭＥＭは、パイプライン処理のステージ４で動作する。また、データ保持部ＤＭＥＭから出力されるデータ幅は１２８バイトであり、メモリ制御部ＭＣＮＴＬ等へのデータ転送は、３２バイト×４サイクルで実行される。
【０３５５】
データ選択部ＤＳＥＬｅは、分割部ＤＩＶと複数の単位回路群ＵＣＧ（ＵＣＧ０−ＵＣＧ７、ＵＣＧｍ）とを有する。分割部ＤＩＶは、データ保持部ＤＭＥＭから転送された１２８バイトのデータを３２バイトのデータに分割し、３２バイトの４つのデータを各単位回路群ＵＣＧに転送する。
【０３５６】
単位回路群ＵＣＧ０−ＵＣＧ７は、コアＣＯＲＥ０−ＣＯＲＥ７にそれぞれ対応して設けられる。単位回路群ＵＣＧ０−ＵＣＧ７の末尾の数字は、コアＣＯＲＥ０−ＣＯＲＥ７の末尾の数字に対応する。例えば、コアＣＯＲＥ０は、データ保持部ＤＭＥＭから単位回路群ＵＣＧ０を介してデータを受ける。また、単位回路群ＵＣＧｍは、メモリ制御部ＭＣＮＴＬおよび通信インタフェース部ＣＩＦに対応して設けられる。複数の単位回路群ＵＣＧは互いに同一または同様であるため、単位回路群ＵＣＧｍについて説明する。
【０３５７】
単位回路群ＵＣＧｍは、複数の単位回路部ＵＣと選択部ＳＥＬｕｃと選択制御部ＵＳＣＮＴＬとを有する。単位回路部ＵＣは、図８に示した単位回路部ＵＣと同一または同様である。例えば、各単位回路部ＵＣは、分割部ＤＩＶから転送される４つの３２バイトのデータをそれぞれ保持する４つのバッファ部ＢＵＦ（ＢＵＦ１、ＢＵＦ２、ＢＵＦ３、ＢＵＦ４）と、選択制御部ＤＳＣＮＴＬと、選択部ＳＥＬｂｕｆとを有する。
【０３５８】
選択制御部ＵＳＣＮＴＬは、複数の単位回路部ＵＣのいずれかを選択し、選択した単位回路部ＵＣから出力されるデータを、選択部ＳＥＬｕｃを介して出力する。すなわち、選択部ＳＥＬｕｃは、複数の単位回路部ＵＣのうち、選択制御部ＵＳＣＮＴＬにより選択された単位回路部ＵＣから出力されるデータをメモリ制御部ＭＣＮＴＬ等に転送する。
【０３５９】
このように、各単位回路群ＵＣＧは、複数の単位回路部ＵＣを有する。これにより、メインパイプライン制御部ＭＰＬＣｅは、図４６に示すように、要求ＭＥＭＷＲＩＴＥが連続した場合でも、適切な制御を実行できる。なお、例えば、メインパイプライン制御部ＭＰＬＣｅは、全ての単位回路部ＵＣが使用中である場合に、要求ＭＥＭＷＲＩＴＥを実行する可能性のある処理要求が投入された場合、投入された処理要求をアボートする。
【０３６０】
図４２は、図４０に示した排他選択部ＥＸＳＥＬの一例を示す。図４２に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。例えば、排他選択部ＥＸＳＥＬは、パイプライン処理のステージ４で処理を実行する。
【０３６１】
排他選択部ＥＸＳＥＬは、メインパイプライン制御部ＭＰＬＣｅから出力されるコマンド等のコマンドＣＭＤを保持する複数のバッファ部ＣＢＵＦと、選択制御部ＣＳＣＮＴＬと、選択部ＳＥＬｅ１、ＳＥＬｅ２とを有する。
【０３６２】
選択制御部ＣＳＣＮＴＬは、選択部ＳＥＬｅ１の出力先を選択する。選択部ＳＥＬｅ１は、選択制御部ＣＳＣＮＴＬにより選択されたバッファ部ＣＢＵＦに、メインパイプライン制御部ＭＰＬＣｅから出力されたコマンドＣＭＤを転送する。また、選択制御部ＣＳＣＮＴＬは、複数のバッファ部ＣＢＵＦのいずれかを選択し、選択したバッファ部ＣＢＵＦに保持されたコマンドＣＭＤを、選択部ＳＥＬｅ２を介して出力する。すなわち、選択部ＳＥＬｅ２は、複数のバッファ部ＣＢＵＦのうち、選択制御部ＣＳＣＮＴＬにより選択されたバッファ部ＣＢＵＦに保持されたコマンドＣＭＤをメモリ制御部ＭＣＮＴＬ等に転送する。
【０３６３】
図４３は、図４０に示したメインパイプライン制御部ＭＰＬＣｅの一例を示す。図４３に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。
【０３６４】
メインパイプライン制御部ＭＰＬＣｅは、追い出し対象データの状態が”変更”の場合でも、読み出し要求ＲＥＡＤ内で追い出し要求ＭＯＲＰに基づく処理相当の処理を実行する。この場合、データ保持部ＤＭＥＭは、追い出し対象データが決定したことにより選択されるウェイＷＡＹを用いて、アクセスされる。追い出し対象データは、ステージ３で決定されるため、データ保持部ＤＭＥＭへのアクセスは、ステージ４で実行される。このため、メインパイプライン制御部ＭＰＬＣｅでは、データ保持部ＤＭＥＭのアクセスに使用するウェイＷＡＹのアドレスがウェイＷＡＹの数だけステージ３まで伝搬する機能が図２６に示したメインパイプライン制御部ＭＰＬｃに追加される。例えば、追い出し対象データの候補（ウェイＷＡＹ０−ＷＡＹ１５に保持されたデータ）のアドレスＡｖｉｃｔがタグ部ＴＡＧＬＬｃから処理判定部ＰＤＪｅまで転送される。
【０３６５】
メインパイプライン制御部ＭＰＬＣｅでは、データ保持部ＤＭＥＭへのアクセスがステージ３で実行されるため、図２６に示したメインパイプライン制御部ＭＰＬｃに比べて、データ保持部ＤＭＥＭへのアクセスタイミングが遅れる。例えば、メインパイプライン制御部ＭＰＬＣｅでは、読み出し要求ＲＥＡＤで要求されたデータがキャッシュヒットした場合のデータ保持部ＤＭＥＭへのアクセスタイミングも、図２６に示したメインパイプライン制御部ＭＰＬｃに比べて遅れる。換言すれば、図２３に示した第２キャッシュメモリＬＬｃでは、データ保持部ＤＭＥＭへのアクセスタイミングを遅らせることなく、パイプライン処理のスループットを向上させることができる。なお、アクセスタイミングが遅れることにより、レイテンシが悪化し、性能が悪化する。
【０３６６】
図４３に示すメインパイプライン制御部ＭＰＬＣｅは、図２６に示した条件一致検出部ＣＯＮＤｃおよび処理判定部ＰＤＪｃの代わりに、条件一致検出部ＣＯＮＤｅおよび処理判定部ＰＤＪｅを有する。また、メインパイプライン制御部ＭＰＬＣｅでは、図２６に示したデータ制御部ＤＡＴＡＣＬおよびコマンド制御部ＣＭＤＣＬがメインパイプライン制御部ＭＰＬＣｃから省かれる。メインパイプライン制御部ＭＰＬＣｅのその他の構成は、図２６に示したメインパイプライン制御部ＭＰＬＣｃと同一または同様である。
【０３６７】
メインパイプライン制御部ＭＰＬＣｅは、例えば、選択判定部ＳＤＪ、ヒット判定部ＨＤＪｃ、エンコード部ＥＮＣ、コア判定部ＣＤＪｃ、条件一致検出部ＣＯＮＤｅ、使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｅを有する。メインパイプライン制御部ＭＰＬＣｅでは、条件一致検出部ＣＯＮＤｅおよび処理判定部ＰＤＪｅが図２６に示した条件一致検出部ＣＯＮＤｃおよび処理判定部ＰＤＪｃと異なる。
【０３６８】
条件一致検出部ＣＯＮＤｅは、追い出し対象データの候補がｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであり、かつ、追い出し対象データの候補が第１キャッシュメモリＬ１に保持されていないことを検出する。検出結果を示す情報ＭＷＡＹは、処理判定部ＰＤＪｅに転送される。
【０３６９】
さらに、条件一致検出部ＣＯＮＤｅは、追い出し対象データの候補の状態が”変更”であるかを検出し、検出結果を示す情報ＭＤＷＡＹを処理判定部ＰＤＪｅに転送する。なお、条件一致検出部ＣＯＮＤｃの詳細は、図４４で説明する。また、処理判定部ＰＤＪｅの詳細は、図４５で説明する。
【０３７０】
図４４は、図４３に示した条件一致検出部ＣＯＮＤｅの一例を示す。条件一致検出部ＣＯＮＤｅは、図２９に示した検出部ＤＥＴｃ（ＤＥＴｃ０−ＤＥＴｃ１５）の代わりに検出部ＤＥＴｅ（ＤＥＴｅ０−ＤＥＴｅ１５）を有することを除いて、図２９に示した条件一致検出部ＣＯＮＤｃと同一または同様である。例えば、条件一致検出部ＣＯＮＤｅは、複数の検出部ＤＥＴｅ（ＤＥＴｅ０−ＤＥＴｅ１５）を有する。検出部ＤＥＴｅの末尾の数字は、第２キャッシュメモリＬＬｅのウェイＷＡＹの末尾の数字に対応する。複数の検出部ＤＥＴｅは互いに同一または同様であるため、検出部ＤＥＴｅ０について説明する。
【０３７１】
検出部ＤＥＴｅ０は、図２９に示した論理積回路ＡＮＤｄ１の代わりに論理積回路ＡＮＤｄ３を有する。また、検出部ＤＥＴｅ０では、図２９に示した否定論理和回路ＮＯＲｄ１、否定論理積回路ＮＡＮＤｄ１および論理和回路ＯＲｄ１が検出部ＤＥＴｃ０から省かれ、論理積回路ＡＮＤｄ４が検出部ＤＥＴｃ０に追加される。検出部ＤＥＴｅ０のその他の構成は、図２９に示した検出部ＤＥＴｃ０と同一または同様である。
【０３７２】
例えば、検出部ＤＥＴｅ０は、排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理和回路ＯＲｄ２、論理積回路ＡＮＤｄ２、ＡＮＤｄ３、ＡＮＤｄ４を有する。排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理積回路ＡＮＤｄ２および論理和回路ＯＲｄ２は、図２９に示した排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理積回路ＡＮＤｄ２および論理和回路ＯＲｄ２と同一または同様である。
【０３７３】
論理積回路ＡＮＤｄ３は、論理積回路ＡＮＤｄ２の演算結果と論理和回路ＯＲｄ２の演算結果の反転信号との論理積を演算し、演算結果をマッチウェイ情報ＭＷＡＹ０として処理判定部ＰＤＪｅに出力する。
【０３７４】
論理積回路ＡＮＤｄ４は、アドレスＲＡＤ［１８：７］で示されるインデックスアドレスＰＡ［１８：７］に対応する第１管理情報ＩＮＦＬＬｃ０内のタイプコードＴＣＬＬ［１：０］をタグ部ＴＡＧＬＬｃから受ける。そして、論理積回路ＡＮＤｄ４は、タグ部ＴＡＧＬＬｃから受けたタイプコードＴＣＬＬ［０：０］の反転信号とタイプコードＴＣＬＬ［１：１］との論理積を演算し、演算結果を情報ＭＤＷＡＹ０として処理判定部ＰＤＪｅに出力する。すなわち、論理積回路ＡＮＤｄ４は、ウェイＷＡＹ０に保持されたデータのうちの追い出し対象データの候補の状態が”変更”の場合、論理値”１”を処理判定部ＰＤＪｅに出力する。
【０３７５】
このように、検出部ＤＥＴｅ０は、ウェイＷＡＹ０に保持されたデータのうち、インデックスアドレスＰＡ［１８：７］で示される追い出し対象データの候補が抑止条件を満たすかを検出する。また、検出部ＤＥＴｅ０は、追い出し対象データの候補の状態が”変更”であるかを検出する。
【０３７６】
図４５は、図４３に示した処理判定部ＰＤＪｅの一例を示す。図４５に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。処理判定部ＰＤＪｅでは、選択部ＳＥＬｐ４、ＳＥＬｐ５およびアクセス制御部ＡＣＮＴＬｅが図１３に示した処理判定部ＰＤＪｂに追加される。処理判定部ＰＤＪｅのその他の構成は、図１３に示した処理判定部ＰＤＪｂと同一または同様である。
【０３７７】
例えば、処理判定部ＰＤＪｅは、選択部ＳＥＬｐ１、ＳＥＬｐ２、ＳＥＬｐ３、ＳＥＬｐ４、ＳＥＬｐ５、デコード部ＤＥＣ、アクセス制御部ＡＣＮＴＬｅ、追い出し要求完了判定部ＣＴＤＪ、追い出し実行判定部ＥＸＤＪおよび指示生成部ＩＧＥＮを有する。さらに、処理判定部ＰＤＪｅは、第２キャッシュタグ更新判定部ＴＧＤＪ、第２キャッシュタグデータ生成部ＴＤＧＥＮ、第１キャッシュ制御部ＣＭＣＮＴＬｂ、アボート判定部ＡＢＤＪおよびインターロック制御部ＩＮＴＣＬを有する。また、処理判定部ＰＤＪｅは、論理積回路ＡＮＤｐ１、ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ４、ＡＮＤｐ５、論理和回路ＯＲｐ１を有する。図４５では、図１３に示した処理判定部ＰＤＪｂに追加された選択部ＳＥＬｐ４、ＳＥＬｐ５およびアクセス制御部ＡＣＮＴＬｅについて説明する。
【０３７８】
選択部ＳＥＬｐ４は、各ウェイＷＡＹの追い出し対象データの候補の状態が”変更”であるかを示す各ウェイＷＡＹの情報ＭＤＷＡＹ０−ＭＤＷＡＹ１５のうち、情報ＲＷＡＹＩＤが示すビクティムウェイＷＡＹに対応する情報ＭＤＷＡＹを選択する。そして、選択部ＳＥＬｐ４は、情報ＲＷＡＹＩＤに基づいて選択した情報ＭＤＷＡＹをアクセス制御部ＡＣＮＴＬｅに出力する。情報ＲＷＡＹＩＤに基づいて選択された情報ＭＤＷＡＹは、ビクティムウェイＷＡＹに保持された追い出し対象データの状態が”変更”であるかを示す。
【０３７９】
選択部ＳＥＬｐ５は、各ウェイＷＡＹの追い出し対象データの候補のアドレスＡｖｉｃｔ０−Ａｖｉｃｔ１５のうち、情報ＲＷＡＹＩＤが示すビクティムウェイＷＡＹに対応するアドレスＡｖｉｃｔを選択する。そして、選択部ＳＥＬｐ５は、情報ＲＷＡＹＩＤに基づいて選択したアドレスＡｖｉｃｔをアクセス制御部ＡＣＮＴＬｅに出力する。情報ＲＷＡＹＩＤに基づいて選択されたアドレスＡｖｉｃｔは、ビクティムウェイＷＡＹに保持された追い出し対象データのアドレスを示す。
【０３８０】
アクセス制御部ＡＣＮＴＬｅは、選択部ＳＥＬｐ１、ＳＥＬｐ４、ＳＥＬｐ５により選択されたマッチウェイ情報ＭＷＡＹ、情報ＭＤＷＡＹおよびアドレスＡｖｉｃｔを受ける。また、アクセス制御部ＡＣＮＴＬｅは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ、ＲＷＡＹＩＤを受ける。そして、アクセス制御部ＡＣＮＴＬｅは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ、ＲＷＡＹＩＤ、ＭＷＡＹ、ＭＤＷＡＹおよびアドレスＡｖｉｃｔ等に基づいて、信号ＡＣＣＳＩＧ、コマンドＣＭＤ等を生成する。信号ＡＣＣＳＩＧは、データ保持部ＤＭＥＭをアクセスするための信号である。コマンドＣＭＤは、図４２で説明したように、排他選択部ＥＸＳＥＬを介してメモリ制御部ＭＣＮＴＬ等に転送される。
【０３８１】
例えば、アクセス制御部ＡＣＮＴＬｅは、読み出し要求ＲＥＡＤで要求された要求データがキャッシュヒットした場合、要求データを読み出すために、信号ＡＣＣＳＩＧを用いてデータ保持部ＤＭＥＭにアクセスする。
【０３８２】
また、例えば、アクセス制御部ＡＣＮＴＬｅは、読み出し要求ＲＥＡＤで要求された要求データがキャッシュミスし、追い出し対象データの状態が”変更”以外の場合、コマンドＣＭＤを用いて、メモリ制御部ＭＣＮＴＬに対して要求データの転送を要求する。この場合、データ保持部ＤＭＥＭは、アクセスされない。
【０３８３】
また、例えば、アクセス制御部ＡＣＮＴＬｅは、読み出し要求ＲＥＡＤで要求された要求データがキャッシュミスし、追い出し対象データの状態が”変更”の場合、コマンドＣＭＤを用いて、メモリ制御部ＭＣＮＴＬに対して要求データの転送を要求する。さらに、アクセス制御部ＡＣＮＴＬｅは、信号ＡＣＣＳＩＧを用いて、データ保持部ＤＭＥＭに対して追い出し対象データの読み出しを指示する。
【０３８４】
図４６は、図３９に示した第２キャッシュメモリＬＬｅのデータアクセスの一例を示す。なお、図４６は、読み出し要求ＲＥＡＤ２、ＲＥＡＤ３で要求された要求データがキャッシュミスし、追い出し対象データの状態が”変更”の場合のデータアクセスの一例を示す。
【０３８５】
メインパイプライン制御部ＭＰＬＣｅは、読み出し要求ＲＥＡＤ１が投入され、第２キャッシュメモリＬＬｅがキャッシュミスした場合、メモリ制御部ＭＣＮＴＬに対して要求ＭＥＭＲＥＡＤ１を送信する。
【０３８６】
読み出し要求ＲＥＡＤ２が、読み出し要求ＲＥＡＤ１に連続してメインパイプライン制御部ＭＰＬＣｅに投入される。追い出し対象データの状態が”変更”であるため、メモリ制御部ＭＣＮＴＬに対して、２つの要求ＭＥＭＷＲＩＴＥ２、ＭＥＭＲＥＡＤ２が互いに同じサイクルで発生する。要求ＭＥＭＷＲＩＴＥ２は、追い出し対象データの主記憶装置ＭＥＭへの書き戻しの要求であり、要求ＭＥＭＲＥＡＤ２は、読み出し要求ＲＥＡＤ２で要求された要求データを主記憶装置ＭＥＭから読み出す要求である。
【０３８７】
第２キャッシュメモリＬＬｅは、２つの要求ＭＥＭＷＲＩＴＥ２、ＭＥＭＲＥＡＤ２が互いに同じサイクルで発生するため、どちらかの要求を１サイクル遅らせる制御を実行する。図４６に示す例では、第２キャッシュメモリＬＬｅは、要求ＭＥＭＲＥＡＤ２を１サイクル遅らせる。
【０３８８】
また、読み出し要求ＲＥＡＤ３が、読み出し要求ＲＥＡＤ２に連続してメインパイプライン制御部ＭＰＬＣｅに投入される。追い出し対象データの状態が”変更”であるため、メモリ制御部ＭＣＮＴＬに対して、２つの要求ＭＥＭＷＲＩＴＥ２、ＭＥＭＲＥＡＤ２が互いに同じサイクルで発生する。この場合、第２キャッシュメモリＬＬｅは、先行する読み出し要求ＲＥＡＤ２により発生した要求ＭＥＭＷＲＩＴＥ２、ＭＥＭＲＥＡＤ２が実行されてから、要求ＭＥＭＲＥＡＤ３を実行する。また、第２キャッシュメモリＬＬｅは、要求ＭＥＭＷＲＩＴＥ２により占有されていたデータバスＲＥＱＤＡＴＡが解放されてから、要求ＭＥＭＷＲＩＴＥ３を実行する。
【０３８９】
なお、読み出し要求ＲＥＡＤがメインパイプライン制御部ＭＰＬＣｅに投入されてから４サイクルの間、後続の読み出し要求ＲＥＡＤの投入を待機させる制御方法も考えられるが、キャッシュヒットした場合のスループットおよびレイテンシが低下する。この結果、演算処理装置ＰＵの処理性能が低下するため、後続の読み出し要求ＲＥＡＤの投入を待機させる制御方法は、適切ではない。
【０３９０】
ここで、図４６に示す制御方法を用いる第２キャッシュメモリＬＬｅは、図３２に示した制御方法を用いる第２キャッシュメモリＬＬｃに比べて、演算処理装置ＰＵの性能低下を招き、実装コストが高くなるおそれがある。このため、第２キャッシュメモリＬＬｅは、実装コストの増加よりも性能利点が上回ると判断される場合に採用されることにより、効果を発揮する。例えば、第２キャッシュメモリＬＬｅは、読み出しに比べて書き込みの比率が高く、第２キャッシュメモリＬＬｅのキャッシュヒット時のレイテンシよりもパイプライン処理のスループットを重視する場合等に有効である。
【０３９１】
以上、図３９から図４６に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、メインパイプライン制御部ＭＰＬＣｅは、追い出し対象データが下記の抑止条件を満たす場合、追い出し要求ＭＯＲＰを発行せずに、複数のウェイＷＡＹのいずれかからデータを追い出す処理を実行する。
【０３９２】
抑止条件は、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであり、かつ、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。
【０３９３】
抑止条件が満たされる場合、追い出し要求ＭＯＲＰに基づく処理相当の処理を追い出し要求ＭＯＲＰを発行せずに実行できるため、追い出し要求ＭＯＲＰを発行する場合に比べて、パイプライン制御部ＰＬＣに投入する処理要求の数を少なくすることができる。これにより、第１キャッシュメモリＬ１からの１回の読み出し要求ＲＥＡＤに対する一連の処理を実行する際のパイプライン制御部ＰＬＣのスループットを向上させることができる。この結果、第２キャッシュメモリＬＬｅのスループットを向上させることができる。
【０３９４】
図４７は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図４５で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図４７に示す情報処理装置ＩＰＥｆは、例えば、サーバ等のコンピュータ装置である。情報処理装置ＩＰＥｆは、図３９に示した演算処理装置ＰＵｅの代わりに演算処理装置ＰＵｆを有することを除いて、図３９に示した情報処理装置ＩＰＥｅと同一または同様である。例えば、情報処理装置ＩＰＥｆは、複数の演算処理装置ＰＵｆ（ＰＵｆ０、ＰＵｆ１、ＰＵｆ２、ＰＵｆ３）と複数の主記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３）と通信部ＣＤと入出力制御部ＩＯＣＮＴＬと入出力装置ＩＯＵとを有する。
【０３９５】
演算処理装置ＰＵｆは、図３９に示した第２キャッシュメモリＬＬｅの代わりに第２キャッシュメモリＬＬｆを有することを除いて、図３９に示した演算処理装置ＰＵｅと同一または同様である。例えば、演算処理装置ＰＵｆは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬｆと、メモリ制御部ＭＣＮＴＬと、通信インタフェース部ＣＩＦとを有する。
【０３９６】
なお、演算処理装置ＰＵｆおよび情報処理装置ＩＰＥｆの構成は、図４７に示す例に限定されない。また、演算処理装置ＰＵｆおよび主記憶装置ＭＥＭの数は、図４７に示す例に限定されない。
【０３９７】
図４８は、図４７に示し第２キャッシュメモリＬＬｆの一例を示す。なお、第２キャッシュメモリＬＬｆの構成は、図４８に示す例に限定されない。第２キャッシュメモリＬＬｆは、図４０に示したメインパイプライン制御部ＭＰＬＣｅの代わりにメインパイプライン制御部ＭＰＬＣｆを有することを除いて、図４０に示した第２キャッシュメモリＬＬｅと同一または同様である。
【０３９８】
例えば、第２キャッシュメモリＬＬｆは、投入部ＩＮＰｃ、メインパイプライン制御部ＭＰＬＣｆ、サブパイプライン制御部ＳＰＬＣおよび排他選択部ＥＸＳＥＬを有する。さらに、第２キャッシュメモリＬＬｆは、データ保持部ＤＭＥＭ、データ選択部ＤＳＥＬｅ、タグ部ＴＡＧＬＬｃ、ＴＡＧＬ１ｃ、ＴＡＧＤ、使用情報保持部ＬＲＵＬＬ、スヌープロック部ＳＮＰｃおよびキャッシュミス制御部ＭＩＢを有する。
【０３９９】
図４８に示す第２キャッシュメモリＬＬｅでは、追い出し要求ＭＯＲＰの発行を抑止する抑止条件の第２条件が図３９に示した第２キャッシュメモリＬＬｅと異なる。例えば、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであることが図４０で説明した第２条件から省かれる。
【０４００】
すなわち、追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであることと、追い出し対象データの状態が”変更”以外の状態であることの２つが図９で説明した第２条件から省かれる。したがって、第２条件は、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。このため、追い出し対象データが”Ｌｏｃａｌ≠Ｈｏｓｔ”の場合でも、追い出し対象データが第１キャッシュメモリＬ１に保持されていなければ、追い出し要求ＭＯＲＰに基づく処理相当の処理が読み出し要求ＲＥＡＤ内で実行される。なお、第１条件は、図９で説明した第１条件と同じである。
【０４０１】
メインパイプライン制御部ＭＰＬＣｆは、追い出し対象データが”Ｌｏｃａｌ≠Ｈｏｓｔ”で、追い出し要求ＭＯＲＰの発行を抑止した場合、追い出し対象データを管理するＣＭＧに対する指示を読み出し要求ＲＥＡＤ内で実行する。例えば、メインパイプライン制御部ＭＰＬＣｆは、自身のＣＭＧの持ち出し情報を無効化する指示を、追い出し対象データを管理するＣＭＧに送信する。なお、追い出し対象データの状態が”変更”である場合、メインパイプライン制御部ＭＰＬＣｆは、自身のＣＭＧの持ち出し情報を無効化する指示と、書き戻しデータである追い出し対象データとを、追い出し対象データを管理するＣＭＧに送信する。図４３で説明したように、追い出し対象データは、ステージ３で決定されるため、データ保持部ＤＭＥＭへのアクセスは、ステージ４で実行される。
【０４０２】
また、追い出し対象データが”Ｌｏｃａｌ≠Ｈｏｓｔ”の場合に、追い出し要求ＭＯＲＰに基づく処理相当の処理を読み出し要求ＲＥＡＤ内で実行すると、通信インタフェース部ＣＩＦに対する２つの要求が同時に発生する可能性がある。２つの要求は、例えば、第１キャッシュメモリＬ１に応答するデータの要求と、自身のＣＭＧの持ち出し情報の無効化の要求（追い出し対象データがダーティの場合は書き戻しデータの送付も含む）である。
【０４０３】
このように、第２キャッシュメモリＬＬｆでは、追い出し要求ＭＯＲＰの発行を抑止した場合、排他選択部ＥＸＳＥＬの出力先は、通信インタフェース部ＣＩＦである。これに対し、図４０に示した第２キャッシュメモリＬＬｅでは、追い出し要求ＭＯＲＰの発行を抑止した場合、排他選択部ＥＸＳＥＬの出力先は、メモリ制御部ＭＣＮＴＬである。したがって、追い出し対象データの状態が”変更”の場合でも、排他選択部ＥＸＳＥＬの出力先を適切に選択することにより、追い出し要求ＭＯＲＰの発行を抑止することができる。このため、第２キャッシュメモリＬＬｆでは、上述したように、追い出し対象データが”Ｌｏｃａｌ＝Ｈｏｓｔ”であることと、追い出し対象データの状態が”変更”以外の状態であることの２つが図９で説明した第２条件から省かれる。
【０４０４】
例えば、追い出し対象データの状態が”変更”の場合におけるメインパイプライン制御部ＭＰＬＣｆの動作は、図４３に示したパイプライン制御部ＭＰＬＣｅと同一または同様である。メインパイプライン制御部ＭＰＬＣｄの詳細は、図４９以降で説明する。なお、メインパイプライン制御部ＭＰＬＣｆ以外の投入部ＩＮＰｃ等のブロックは、図４０に示した第２キャッシュメモリＬＬｅ内の対応するブロックと同一または同様である。
【０４０５】
図４９は、図４８に示したメインパイプライン制御部ＭＰＬＣｆの一例を示す。図４９に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。メインパイプライン制御部ＭＰＬＣｆは、図４３に示した条件一致検出部ＣＯＮＤｅおよび処理判定部ＰＤＪｅの代わりに、条件一致検出部ＣＯＮＤｆおよび処理判定部ＰＤＪｆを有する。メインパイプライン制御部ＭＰＬＣｆのその他の構成は、図４３に示したメインパイプライン制御部ＭＰＬＣｅと同一または同様である。
【０４０６】
例えば、メインパイプライン制御部ＭＰＬＣｆは、選択判定部ＳＤＪ、ヒット判定部ＨＤＪｃ、エンコード部ＥＮＣ、コア判定部ＣＤＪｃ、条件一致検出部ＣＯＮＤｆ、使用情報更新部ＩＮＦＵＰＤおよび処理判定部ＰＤＪｆを有する。メインパイプライン制御部ＭＰＬＣｆでは、条件一致検出部ＣＯＮＤｆおよび処理判定部ＰＤＪｆが図４３に示した条件一致検出部ＣＯＮＤｅおよび処理判定部ＰＤＪｅと異なる。
【０４０７】
条件一致検出部ＣＯＮＤｆは、追い出し対象データの候補が第１キャッシュメモリＬ１に保持されていないことを検出し、検出結果を示す情報ＭＷＡＹを処理判定部ＰＤＪｆに転送する。また、条件一致検出部ＣＯＮＤｆは、追い出し対象データの候補の状態が”変更”であるかを検出し、検出結果を示す情報ＭＤＷＡＹを処理判定部ＰＤＪｆに転送する。さらに、条件一致検出部ＣＯＮＤｆは、追い出し対象データの候補がｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであるかを検出し、検出結果を示す情報ＬＨＷＡＹを処理判定部ＰＤＪｆに転送する。なお、条件一致検出部ＣＯＮＤｆの詳細は、図５０で説明する。また、処理判定部ＰＤＪｆの詳細は、図５１で説明する。
【０４０８】
図５０は、図４９に示した条件一致検出部ＣＯＮＤｆの一例を示す。条件一致検出部ＣＯＮＤｆは、図４４に示した検出部ＤＥＴｅ（ＤＥＴｅ０−ＤＥＴｅ１５）の代わりに検出部ＤＥＴｆ（ＤＥＴｆ０−ＤＥＴｆ１５）を有することを除いて、図４４に示した条件一致検出部ＣＯＮＤｅと同一または同様である。例えば、条件一致検出部ＣＯＮＤｆは、複数の検出部ＤＥＴｆ（ＤＥＴｆ０−ＤＥＴｆ１５）を有する。検出部ＤＥＴｆの末尾の数字は、第２キャッシュメモリＬＬｆのウェイＷＡＹの末尾の数字に対応する。複数の検出部ＤＥＴｆは互いに同一または同様であるため、検出部ＤＥＴｆ０について説明する。
【０４０９】
検出部ＤＥＴｆ０では、図４４に示した論理積回路ＡＮＤｄ３が検出部ＤＥＴｅ０から省かれる。検出部ＤＥＴｆ０のその他の構成は、図４４に示した検出部ＤＥＴｆ０と同一または同様である。例えば、検出部ＤＥＴｆ０は、排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理和回路ＯＲｄ２、論理積回路ＡＮＤｄ２、ＡＮＤｄ４を有する。排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理和回路ＯＲｄ２、論理積回路ＡＮＤｄ２、ＡＮＤｄ４は、図４４に示した排他的否定論理和回路ＥＮＯＲｄ１、ＥＮＯＲｄ２、論理和回路ＯＲｄ２、論理積回路ＡＮＤｄ２、ＡＮＤｄ４と同一または同様である。
【０４１０】
例えば、論理積回路ＡＮＤｄ２は、排他的否定論理和回路ＥＮＯＲｄ１の演算結果と排他的否定論理和回路ＥＮＯＲｄ２の演算結果との論理積を演算し、演算結果を情報ＬＨＷＡＹ０として処理判定部ＰＤＪｆに出力する。論理和回路ＯＲｄ２は、所持情報ＣＷＡＹ０と情報ＳＷＡＹ０との論理和を演算し、演算結果をマッチウェイ情報ＭＷＡＹ０として処理判定部ＰＤＪｆに出力する。論理積回路ＡＮＤｄ４は、タグ部ＴＡＧＬＬｃから受けたタイプコードＴＣＬＬ［０：０］の反転信号とタイプコードＴＣＬＬ［１：１］との論理積を演算し、演算結果を情報ＭＤＷＡＹ０として処理判定部ＰＤＪｆに出力する。
【０４１１】
このように、検出部ＤＥＴｆ０は、ウェイＷＡＹ０に保持されたデータのうち、インデックスアドレスＰＡ［１８：７］で示される追い出し対象データの候補が抑止条件を満たすかを検出する。また、検出部ＤＥＴｆ０は、追い出し対象データの候補の状態が”変更”であるかを検出する。さらに、検出部ＤＥＴｆ０は、追い出し対象データの候補がｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであるかを検出する。
【０４１２】
図５１は、図４９に示した処理判定部ＰＤＪｆの一例を示す。図５１に示す一点鎖線および網掛けの矩形の意味は、図８に示した一点鎖線および網掛けの矩形と同じである。処理判定部ＰＤＪｆは、図４５に示したアクセス制御部ＡＣＮＴＬｅの代わりにアクセス制御部ＡＣＮＴＬｆを有する。また、処理判定部ＰＤＪｆでは、選択部ＳＥＬｐ６が図４５に示した処理判定部ＰＤＪｅに追加される。処理判定部ＰＤＪｆのその他の構成は、図４５に示した処理判定部ＰＤＪｅと同一または同様である。
【０４１３】
例えば、処理判定部ＰＤＪｆは、選択部ＳＥＬｐ１、ＳＥＬｐ２、ＳＥＬｐ３、ＳＥＬｐ４、ＳＥＬｐ５、ＳＥＬｐ６、デコード部ＤＥＣ、アクセス制御部ＡＣＮＴＬｆ、追い出し要求完了判定部ＣＴＤＪ、追い出し実行判定部ＥＸＤＪおよび指示生成部ＩＧＥＮを有する。さらに、処理判定部ＰＤＪｆは、第２キャッシュタグ更新判定部ＴＧＤＪ、第２キャッシュタグデータ生成部ＴＤＧＥＮ、第１キャッシュ制御部ＣＭＣＮＴＬｂ、アボート判定部ＡＢＤＪおよびインターロック制御部ＩＮＴＣＬを有する。また、処理判定部ＰＤＪｆは、論理積回路ＡＮＤｐ１、ＡＮＤｐ２、ＡＮＤｐ３、ＡＮＤｐ４、ＡＮＤｐ５、論理和回路ＯＲｐ１を有する。図５１では、図４５に示した処理判定部ＰＤＪｅからの変更点である選択部ＳＥＬｐ６およびアクセス制御部ＡＣＮＴＬｆについて説明する。
【０４１４】
選択部ＳＥＬｐ６は、各ウェイＷＡＹの追い出し対象データの候補がｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであるかを示す各ウェイＷＡＹの情報ＬＨＷＡＹ０−ＬＨＷＡＹ１５を受ける。そして、選択部ＳＥＬｐ６は、情報ＬＨＷＡＹ０−ＬＨＷＡＹ１５のうち、情報ＲＷＡＹＩＤが示すビクティムウェイＷＡＹに対応する情報ＬＨＷＡＹを選択し、選択した情報ＬＨＷＡＹをアクセス制御部ＡＣＮＴＬｆに出力する。情報ＲＷＡＹＩＤに基づいて選択された情報ＬＨＷＡＹは、ビクティムウェイＷＡＹに保持された追い出し対象データがｃｃＮＵＭＡ構成におけるローカルメモリアドレスに格納されるデータであるかを示す。
【０４１５】
アクセス制御部ＡＣＮＴＬｆは、選択部ＳＥＬｐ１、ＳＥＬｐ４、ＳＥＬｐ５、ＳＥＬｐ６により選択されたマッチウェイ情報ＭＷＡＹ、情報ＭＤＷＡＹ、アドレスＡｖｉｃｔおよび情報ＬＨＷＡＹを受ける。また、アクセス制御部ＡＣＮＴＬｆは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ、ＲＷＡＹＩＤを受ける。そして、アクセス制御部ＡＣＮＴＬｆは、情報ＳＩＮ、ＬＬＨＴＷ、ＨＴＣＬＬ、ＲＷＡＹＩＤ、ＭＷＡＹ、ＭＤＷＡＹ、ＬＨＷＡＹおよびアドレスＡｖｉｃｔ等に基づいて、信号ＡＣＣＳＩＧ、コマンドＣＭＤ等を生成する。信号ＡＣＣＳＩＧは、データ保持部ＤＭＥＭをアクセスするための信号である。コマンドＣＭＤは、排他選択部ＥＸＳＥＬを介して通信インタフェース部ＣＩＦ等に転送される。例えば、他のＣＭＧに対してデータ転送等を要求する場合、排他選択部ＥＸＳＥＬの出力先として、通信インタフェース部ＣＩＦが選択される。
【０４１６】
例えば、アクセス制御部ＡＣＮＴＬｆは、読み出し要求ＲＥＡＤで要求された要求データがキャッシュヒットした場合、要求データを読み出すために、信号ＡＣＣＳＩＧを用いてデータ保持部ＤＭＥＭにアクセスする。
【０４１７】
また、例えば、アクセス制御部ＡＣＮＴＬｆは、要求データがキャッシュミスし、追い出し対象データの状態が”変更”以外の場合、コマンドＣＭＤを用いて、メモリ制御部ＭＣＮＴＬまたは他のＣＭＧに対して要求データの転送を要求する。この場合、データ保持部ＤＭＥＭは、アクセスされない。
【０４１８】
また、例えば、アクセス制御部ＡＣＮＴＬｆは、要求データがキャッシュミスし、追い出し対象データの状態が”変更”の場合、コマンドＣＭＤを用いて、メモリ制御部ＭＣＮＴＬまたは他のＣＭＧに対して要求データの転送を要求する。さらに、アクセス制御部ＡＣＮＴＬｆは、コマンドＣＭＤを用いて、メモリ制御部ＭＣＮＴＬまたは他のＣＭＧに対して追い出し対象データの書き戻しを要求する。また、アクセス制御部ＡＣＮＴＬｆは、信号ＡＣＣＳＩＧを用いて、データ保持部ＤＭＥＭに対して追い出し対象データの読み出しを指示する。さらに、アクセス制御部ＡＣＮＴＬｆは、メモリ制御部ＭＣＮＴＬまたは他のＣＭＧに対して追い出し対象データの書き戻しをコマンドＣＭＤを用いて要求し、データ保持部ＤＭＥＭに対して追い出し対象データの読み出しを信号ＡＣＣＳＩＧを用いて指示する。
【０４１９】
以上、図４７から図５１に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、メインパイプライン制御部ＭＰＬＣｆは、追い出し対象データが下記の抑止条件を満たす場合、追い出し要求ＭＯＲＰを発行せずに、複数のウェイＷＡＹのいずれかからデータを追い出す処理を実行する。
【０４２０】
抑止条件は、追い出し対象データが第１キャッシュメモリＬ１に保持されていないことである。抑止条件が満たされる場合、追い出し要求ＭＯＲＰに基づく処理相当の処理を追い出し要求ＭＯＲＰを発行せずに実行できるため、追い出し要求ＭＯＲＰを発行する場合に比べて、パイプライン制御部ＰＬＣに投入する処理要求の数を少なくすることができる。これにより、第１キャッシュメモリＬ１からの１回の読み出し要求ＲＥＡＤに対する一連の処理を実行する際のパイプライン制御部ＰＬＣのスループットを向上させることができる。この結果、第２キャッシュメモリＬＬｆのスループットを向上させることができる。
【０４２１】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０４２２】
１０‥データ保持部；２０‥第１情報保持部；３０‥状態判定部；４０‥処理部；ＡＢＤＪ‥アボート判定部；ＡＣＮＴＬｅ、ＡＣＮＴＬｆ‥アクセス制御部；ＢＵＦ‥バッファ部；ＣＢＵＦ‥バッファ部；ＣＤ‥通信部；ＣＤＪｂ、ＣＤＪｃ、ＣＤＪｄ‥コア判定部；ＣＩＦ‥通信インタフェース部；ＣＭＣＮＴＬｂ、ＣＭＣＮＴＬｄ‥第１キャッシュ制御部；ＣＭＤＣＬ‥コマンド制御部；ＣＯＮＤｂ、ＣＯＮＤｃ、ＣＯＮＤｄ、ＣＯＮＤｅ、ＣＯＮＤｆ‥条件一致検出部；ＣＯＲＥ‥コア；ＣＳＣＮＴＬ‥選択制御部；ＣＴＤＪ‥追い出し要求完了判定部；ＤＡＴＡＣＬ‥データ制御部；ＤＥＣ、ＤＥＣｃ１、ＤＥＣｈ１、ＤＥＣｓ１‥デコード部；ＤＥＴｂ、ＤＥＴｃ、ＤＥＴｄ、ＤＥＴｅ、ＤＥＴｆ‥検出部；ＤＩＶ‥分割部；ＤＪＬ１ｂ、ＤＪＬ１ｃ‥判定部；ＤＪＳＢ、ＤＪＳＣ‥判定部；ＤＪＷ‥判定部；ＤＭＥＭ‥データ保持部；ＤＳＣＮＴＬ‥選択制御部；ＤＳＥＬｂ、ＤＳＥＬｅ‥データ選択部；ＥＮＣ‥エンコード部；ＥＸＤＪ‥追い出し実行判定部；ＥＸＳＥＬ‥排他選択部；ＨＤＪｂ、ＨＤＪｃ‥ヒット判定部；ＩＧＥＮ‥指示生成部；ＩＮＣＮＴＬ‥制御バッファ部；ＩＮＦＵＰＤ‥使用情報更新部；ＩＮＰｂ、ＩＮＰｃ‥投入部；ＩＮＴＣＬ‥インターロック制御部；ＩＯＣＮＴＬ‥入出力制御部；ＩＯＵ‥入出力装置；ＩＰＥａ、ＩＰＥｂ、ＩＰＥｃ、ＩＰＥｄ、ＩＰＥｅ、ＩＰＥｆ‥情報処理装置；ＬＬａ、ＬＬｂ、ＬＬｃ、ＬＬｄ、ＬＬｅ、ＬＬｆ‥第２キャッシュメモリ；ＬＲＵＬＬ‥使用情報保持部；ＭＣＮＴＬ‥メモリ制御部；ＭＤｃ１、ＭＤｓ１、ＭＤｈ１‥マッチ検出部；ＭＥＭ‥主記憶装置；ＭＩＢ‥キャッシュミス制御部；ＭＰＬＣｃ、ＭＰＬＣｄ、ＭＰＬＣｅ、ＭＰＬＣｆ‥メインパイプライン制御部；ＭＳＮＰ‥情報保持部；ＰＤＪｂ、ＰＤＪｃ、ＰＤＪｄ、ＰＤＪｅ、ＰＤＪｆ‥処理判定部；ＰＬＣ‥パイプライン制御部；ＰＵａ、ＰＵｂ、ＰＵｃ、ＰＵｄ、ＰＵｅ、ＰＵｆ‥演算処理装置；ＳＤＪ‥選択判定部；ＳＥＬｂｕｆ、ＳＥＬｃ１、ＳＥＬｃ２、ＳＥＬｅ１、ＳＥＬｅ２、ＳＥＬｈ２、ＳＥＬｈ３、ＳＥＬｐ１−ＳＥＬｐ６、ＳＥＬｕｃ‥選択部；ＳＮＰｂ、ＳＮＰｃ‥スヌープロック部；ＳＰＬＣ‥サブパイプライン制御部；ＴＡＧＤ、ＴＡＧＬ１ｂ、ＴＡＧＬ１ｃ、ＴＡＧＬＬｂ、ＴＡＧＬＬｃ‥タグ部；ＴＤＧＥＮ‥第２キャッシュタグデータ生成部；ＴＧＤＪ‥第２キャッシュタグ更新判定部；ＵＣ‥単位回路部；ＵＣＧ‥単位回路群；ＷＡＹ‥ウェイ
【図１】
2018005395.tif 000003
【図２】
2018005395.tif 000004
【図３】
2018005395.tif 000005
【図４】
2018005395.tif 000006
【図５】
2018005395.tif 000007
【図６】
2018005395.tif 000008
【図７】
2018005395.tif 000009
【図８】
2018005395.tif 000010
【図９】
2018005395.tif 000011
【図１０】
2018005395.tif 000012
【図１１】
2018005395.tif 000013
【図１２】
2018005395.tif 000014
【図１３】
2018005395.tif 000015
【図１４】
2018005395.tif 000016
【図１５】
2018005395.tif 000017
【図１６】
2018005395.tif 000018
【図１７】
2018005395.tif 000019
【図１８】
2018005395.tif 000020
【図１９】
2018005395.tif 000021
【図２０】
2018005395.tif 000022
【図２１】
2018005395.tif 000023
【図２２】
2018005395.tif 000024
【図２３】
2018005395.tif 000025
【図２４】
2018005395.tif 000026
【図２５】
2018005395.tif 000027
【図２６】
2018005395.tif 000028
【図２７】
2018005395.tif 000029
【図２８】
2018005395.tif 000030
【図２９】
2018005395.tif 000031
【図３０】
2018005395.tif 000032
【図３１】
2018005395.tif 000033
【図３２】
2018005395.tif 000034
【図３３】
2018005395.tif 000035
【図３４】
2018005395.tif 000036
【図３５】
2018005395.tif 000037
【図３６】
2018005395.tif 000038
【図３７】
2018005395.tif 000039
【図３８】
2018005395.tif 000040
【図３９】
2018005395.tif 000041
【図４０】
2018005395.tif 000042
【図４１】
2018005395.tif 000043
【図４２】
2018005395.tif 000044
【図４３】
2018005395.tif 000045
【図４４】
2018005395.tif 000046
【図４５】
2018005395.tif 000047
【図４６】
2018005395.tif 000048
【図４７】
2018005395.tif 000049
【図４８】
2018005395.tif 000050
【図４９】
2018005395.tif 000051
【図５０】
2018005395.tif 000052
【図５１】
2018005395.tif 000053