(57)【特許請求の範囲】
【請求項１】
命令を実行する複数の演算処理部と、前記複数の演算処理部に対応してそれぞれ設けられ、データを保持する複数の第１キャシュメモリと、前記複数の演算処理部に共有され、前記複数の第１キャシュメモリに接続された第２キャシュメモリとを有する演算処理装置において、
前記第２キャシュメモリは、
データを保持するデータ保持部と、
前記複数の第１キャシュメモリに保持されたデータを管理する第１管理情報を保持する第１情報保持部と、
前記データ保持部に保持されたデータを管理する第２管理情報を保持する第２情報保持部と、
前記複数の第１キャシュメモリのいずれかからの読み出し要求を含む複数の処理要求のうち、前記第２管理情報を参照せずに前記第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類し、前記第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類する分類部と、
前記分類部から受ける前記第２の種類の処理要求に基づく処理を、前記第２管理情報を参照して実行する第２処理部と、
前記分類部から受ける前記第１の種類の処理要求に基づく処理を、前記第２管理情報を参照せずに前記第１管理情報を参照して実行し、前記第２処理部と並列に動作可能な第１処理部とを有する
ことを特徴とする演算処理装置。
【請求項２】
請求項１に記載の演算処理装置において、
前記分類部は、前記複数の第１キャシュメモリのいずれかからデータを追い出す処理のうち、追い出すデータを前記第２キャシュメモリに書き戻すライトバックを伴わない処理の要求を前記第１の種類の処理要求に分類する
ことを特徴とする演算処理装置。
【請求項３】
請求項１または請求項２に記載の演算処理装置において、
前記データ保持部は、データのアクセスに使用するメモリアドレスの一部分のビット群で表される第２インデックス毎にデータを保持する複数のウェイを含み、
前記第２キャシュメモリは、前記複数のウェイのうち、前記複数の第１キャシュメモリのいずれにもアクセスされていない待機時間が最も長いウェイを選択するための選択情報を保持する選択情報保持部をさらに有し、
前記第２処理部は、アクセス対象のデータと同じ第２インデックスで指定され、前記複数のウェイにそれぞれ保持されたデータのうち、前記複数の第１キャシュメモリのいずれかに保持されたデータを保持しているウェイを示す所持情報を、前記第１管理情報に基づいて生成する所持情報生成部をさらに有し、
前記第２キャシュメモリは、前記第２キャシュメモリから追い出すデータを保持しているウェイを、前記複数のウェイのうち、前記所持情報が示すウェイ以外のウェイから優先的に、選択情報に基づいて選択する選択部を有する
ことを特徴とする演算処理装置。
【請求項４】
請求項３に記載の演算処理装置において、
前記第１情報保持部は、第２インデックスの一部分のビット群で表される第１インデックス毎に、前記複数の第１キャシュメモリの各々に対応する前記第１管理情報を保持し、
前記第１管理情報は、前記複数のウェイのいずれかを示すウェイ情報と、前記第１インデックスと前記第２インデックスとの差分を示す差分情報と、データの状態を示すタイプコードとを含み、
前記所持情報生成部は、
前記第１インデックス毎に、前記ウェイ情報が示す論理値をデコードし、前記複数のウェイの各々に対して真であるかを示すビットを含むデコード情報を生成するデコード部と、
前記第１インデックス毎に、データが有効であるかを前記タイプコードに基づいて判定する状態判定部と、
前記第１インデックス毎に、アクセス対象のデータのメモリアドレスのうちの前記差分情報に対応する部分の情報と前記差分情報とが互いに一致するかを判定する一致判定部と、
前記第１インデックス毎に、前記デコード情報の各ビットと、前記状態判定部の判定結果と、前記一致判定部の判定結果との論理積を演算する論理積部と、
前記第１インデックス毎に、前記複数の第１キャシュメモリの各々に対応する前記論理積部の演算結果の論理和を演算し、演算結果を前記所持情報として前記選択部に出力する論理和部とを有する
ことを特徴とする演算処理装置。
【請求項５】
命令を実行する複数の演算処理部と、前記複数の演算処理部に対応してそれぞれ設けられ、データを保持する複数の第１キャシュメモリと、前記複数の演算処理部に共有され、前記複数の第１キャシュメモリに接続され、データを保持するデータ保持部、前記複数の第１キャシュメモリに保持されたデータを管理する第１管理情報を保持する第１情報保持部および前記データ保持部に保持されたデータを管理する第２管理情報を保持する第２情報保持部を含む第２キャシュメモリとを有する演算処理装置の制御方法において、
前記第２キャシュメモリが有する分類部は、前記複数の第１キャシュメモリのいずれかからの読み出し要求を含む複数の処理要求のうち、前記第２管理情報を参照せずに前記第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類し、前記第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類し、
前記第２キャシュメモリが有する第２処理部は、前記分類部から受ける前記第２の種類の処理要求に基づく処理を、前記第２管理情報を参照して実行し、
前記第２キャシュメモリが有する第１処理部は、前記分類部から受ける前記第１の種類の処理要求に基づく処理を、前記第２管理情報を参照せずに前記第１管理情報を参照して、前記第２の種類の処理要求に基づく処理と並列に実行する
ことを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置および演算処理装置の制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）等の演算処理装置は、主記憶装置に比べて高速にアクセス可能なキャッシュメモリを有する（例えば、特許文献１参照）。キャッシュメモリは、演算処理部であるＣＰＵコア等のプロセッサコアと主記憶装置との間に配置され、主記憶装置に記憶されたデータの一部を保持する。
【０００３】
なお、キャッシュメモリが階層構造を有する場合、例えば、演算処理装置は、第２レベルのキャッシュメモリと、第２レベルのキャッシュメモリに比べて高速にアクセス可能な第１レベルのキャッシュメモリとを有する。以下、第１レベルのキャッシュメモリおよび第２レベルのキャッシュメモリは、１次キャッシュメモリおよび２次キャッシュメモリともそれぞれ称される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１９９６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の演算処理部としてのプロセッサコアを有する演算処理装置は、例えば、プロセッサコアに対応して設けられる１次キャッシュメモリと、複数のプロセッサコアに共有される２次キャッシュメモリとを有する。以下、複数のプロセッサコアに共有される２次キャッシュメモリは、共有キャッシュメモリとも称される。
【０００６】
共有キャッシュメモリの記憶容量は、１次キャッシュメモリの記憶容量に比べて大きい。共有キャッシュメモリは、主記憶装置に記憶されたデータの一部を保持し、１次キャッシュメモリは、共有キャッシュメモリに保持されたデータの一部を保持する。また、共有キャッシュメモリは、各１次キャッシュメモリに保持されたデータを管理する管理情報を保持する。
【０００７】
共有キャッシュメモリは、アクセス対象のデータが１次キャッシュメモリに保持されていない場合（１次キャッシュメモリがキャッシュミスした場合）、アクセスされる。１次キャッシュメモリは、キャッシュミスした場合、プロセッサコアからのリード要求を共有キャッシュメモリに転送する。共有キャッシュメモリは、リード要求で指定されるデータを保持している場合（共有キャッシュメモリがキャッシュヒットする場合）、リード要求で指定されるデータを１次キャッシュメモリを介してプロセッサコアに転送する。プロセッサコアは、共有キャッシュメモリから受けたデータを演算処理等に使用する。また、１次キャッシュメモリは、共有キャッシュメモリから受けたデータを保持する。これにより、リード要求で指定されるデータは、１次キャッシュメモリに登録される。
【０００８】
なお、１次キャッシュメモリは、共有キャッシュメモリから受けたデータを登録する前にリプレース処理を実行し、リプレース処理が完了した場合、リプレース処理の完了を共有キャッシュメモリに通知する。リプレース処理は、共有キャッシュメモリから受けたデータを登録する領域がない場合に、１次キャッシュメモリに保持されたデータのいずれか（例えば、使用されていない時間が最も長いデータ）を追い出す処理である。以下、リプレース処理の対象のデータは、リプレースデータとも称される。
【０００９】
共有キャッシュメモリは、リプレース処理の完了に関する処理を実行する。例えば、共有キャッシュメモリは、リプレースデータ（リプレース処理の対象のデータ）がプロセッサコアのストア動作により更新された場合、リプレースデータを１次キャッシュメモリから共有キャッシュメモリに書き戻すライトバックを実行する。一方、リプレースデータに対するストア動作がプロセッサコアで実行されていない場合、共有キャッシュメモリは、１次キャッシュメモリの管理情報のうちのリプレースデータに関する情報を無効にする処理（以下、無効化処理とも称する）を実行する。この種の無効化処理では、リプレースデータを１次キャッシュメモリから共有キャッシュメモリに書き戻すライトバックは、実行されない。
【００１０】
このように、共有キャッシュメモリは、１回のリード要求に対して、リード要求で指定されるデータの転送の他に、無効化処理等を実行する。したがって、データ転送、ライトバック、無効化処理等の各処理を１サイクルで実行する共有キャッシュメモリでは、リード要求に基づく１次キャッシュメモリへのデータ転送の実行頻度は、最短で２サイクルに１回である。このため、例えば、１サイクルのデータ転送量の上限が１２８バイトである場合、共有キャッシュメモリのスループットの上限は、６４バイト／サイクルである。
【００１１】
１回のリード要求に対するスループットが６４バイト／サイクルの共有キャッシュメモリでは、各プロセッサコアによるデータ転送量が１６バイト／サイクルの場合、共有可能なプロセッサコアの数が４個以下である。なお、共有キャッシュメモリを共有可能なプロセッサコアの数は、共有キャッシュメモリのスループットの向上に伴い、増加する。
【００１２】
１つの側面では、本件開示の演算処理装置および演算処理装置の制御方法は、共有キャッシュメモリのスループットを向上させることを目的とする。
【課題を解決するための手段】
【００１３】
一観点によれば、演算処理装置は、命令を実行する複数の演算処理部と、複数の演算処理部に対応してそれぞれ設けられ、データを保持する複数の第１キャシュメモリと、複数の演算処理部に共有され、複数の第１キャシュメモリに接続された第２キャシュメモリとを有し、第２キャシュメモリは、データを保持するデータ保持部と、複数の第１キャシュメモリに保持されたデータを管理する第１管理情報を保持する第１情報保持部と、データ保持部に保持されたデータを管理する第２管理情報を保持する第２情報保持部と、複数の第１キャシュメモリのいずれかからの読み出し要求を含む複数の処理要求のうち、第２管理情報を参照せずに第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類し、第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類する分類部と、分類部から受ける第２の種類の処理要求に基づく処理を、第２管理情報を参照して実行する第２処理部と、分類部から受ける第１の種類の処理要求に基づく処理を、第２管理情報を参照せずに第１管理情報を参照して実行し、第２処理部と並列に動作可能な第１処理部とを有する。
【００１４】
別の観点によれば、命令を実行する複数の演算処理部と、複数の演算処理部に対応してそれぞれ設けられ、データを保持する複数の第１キャシュメモリと、複数の演算処理部に共有され、複数の第１キャシュメモリに接続され、データを保持するデータ保持部、複数の第１キャシュメモリに保持されたデータを管理する第１管理情報を保持する第１情報保持部およびデータ保持部に保持されたデータを管理する第２管理情報を保持する第２情報保持部を含む第２キャシュメモリとを有する演算処理装置の制御方法では、第２キャシュメモリが有する分類部は、複数の第１キャシュメモリのいずれかからの読み出し要求を含む複数の処理要求のうち、第２管理情報を参照せずに第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類し、第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類し、第２キャシュメモリが有する第２処理部は、分類部から受ける第２の種類の処理要求に基づく処理を、第２管理情報を参照して実行し、第２キャシュメモリが有する第１処理部は、分類部から受ける第１の種類の処理要求に基づく処理を、第２管理情報を参照せずに第１管理情報を参照して、第２の種類の処理要求に基づく処理と並列に実行する。
【発明の効果】
【００１５】
本件開示の演算処理装置および演算処理装置の制御方法は、共有キャッシュメモリのスループットを向上できる。
【図面の簡単な説明】
【００１６】
【図１】演算処理装置および演算処理装置の制御方法の一実施形態を示す図である。
【図２】図１に示した演算処理装置の動作の一例を示す図である。
【図３】演算処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図４】図３に示したデータ保持部の一例を示す図である。
【図５】図３に示した管理情報保持部の一例を示す図である。
【図６】図３に示した使用情報保持部の一例を示す図である。
【図７】図３に示したメインパイプライン制御部の一例を示す図である。
【図８】図７に示したヒット判定部の一例を示す図である。
【図９】図７に示したコア判定部の一例を示す図である。
【図１０】図３に示したサブパイプライン制御部の一例を示す図である。
【図１１】図３に示した投入部が受ける処理要求の一例を示す図である。
【図１２】図７に示した処理情報およびオペレーション情報と処理要求との対応の一例を示す図である。
【図１３】図７に示した処理判定部の動作の一例を示す図である。
【図１４】図１０に示した処理判定部の動作の一例を示す図である。
【図１５】図６に示した使用情報保持部の更新の一例を示す図である。
【図１６】図３に示した演算処理装置の動作の一例を示す図である。
【図１７】図１６に示したＬ１間転送に関する処理の一例を示す図である。
【図１８】図１６に示したＬ１リプレース完了処理の一例を示す図である。
【図１９】リプレースデータがクリーンである場合の演算処理装置の動作の一例を示す図である。
【図２０】Ｌ１間転送時の演算処理装置の動作の一例を示す図である。
【図２１】図３に示した第１キャッシュメモリでキャッシュミスが連続した場合のパイプライン制御部の動作の一例を示す図である。
【図２２】演算処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図２３】図２２に示したメインパイプライン制御部の一例を示す図である。
【図２４】図２３に示したコア判定部の一例を示す図である。
【図２５】図２２に示したサブパイプライン制御部の一例を示す図である。
【図２６】図３および図２２に示した演算処理装置が搭載されるシステムの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、実施形態について、図面を用いて説明する。
【００１８】
図１は、演算処理装置および演算処理装置の制御方法の一実施形態を示す。図１に示す演算処理装置１０は、例えば、命令を実行するＣＰＵ等のプロセッサである。演算処理装置１０は、命令をそれぞれ実行する複数の演算処理部としての複数のプロセッサコア２０と、複数のプロセッサコア２０にそれぞれ対応して設けられる複数の第１キャッシュメモリ４０と、複数のプロセッサコア２０に共有される第２キャッシュメモリ６０とを有する。
【００１９】
各プロセッサコア２０は、対応する第１キャッシュメモリ４０に保持されたデータを参照して、命令に基づく演算等を実行する。
【００２０】
各第１キャッシュメモリ４０は、例えば、セットアソシアティブ方式のキャッシュメモリであり、第２キャッシュメモリ６０に比べて高速にアクセス可能な１次キャッシュメモリである。各第１キャッシュメモリ４０は、第２キャッシュメモリ６０に保持されたデータの一部を保持する。例えば、第１キャッシュメモリ４０は、プロセッサコア２０からリード要求を受けた場合、リード要求で指定されたデータをプロセッサコア２０に転送する。なお、第１キャッシュメモリ４０は、リード要求で指定されたデータを保持していない場合（第１キャッシュメモリ４０がキャッシュミスした場合）、第２キャッシュメモリ６０にリード要求を転送する。
【００２１】
例えば、各第１キャッシュメモリ４０は、保持したデータのタグアドレス等をキャッシュラインの番号に対応するインデックスアドレス毎に保持した情報保持部（図示せず）を参照することにより、キャッシュミスしたか否かを判定する。インデックスアドレスは、データのアクセスに使用するメモリアドレスの一部分のビット群に対応し、タグアドレスは、メモリアドレスの他の一部分のビット群に対応する。
【００２２】
第２キャッシュメモリ６０は、例えば、セットアソシアティブ方式のキャッシュメモリであり、複数の第１キャッシュメモリ４０に接続される。すなわち、第２キャッシュメモリ６０は、第１キャッシュメモリ４０より下位の階層の２次キャッシュメモリである。第２キャッシュメモリ６０は、データ保持部６２、第１情報保持部６４、第２情報保持部６６、分類部６８、第１処理部７０および第２処理部７２を有する。
【００２３】
データ保持部６２は、図示しない主記憶装置等（第２キャッシュメモリ６０より下位の階層の記憶部）に記憶されたデータの一部を保持する。そして、データ保持部６２は、第２キャッシュメモリ６０が第１キャッシュメモリ４０からリード要求を受けた場合、リード要求で指定されたデータを要求元の第１キャッシュメモリ４０に転送する。
【００２４】
なお、リード要求で指定されたデータをデータ保持部６２が保持していない場合（第２キャッシュメモリ６０がキャッシュミスした場合）、第２キャッシュメモリ６０は、リード要求で指定されたデータを主記憶装置等から取得する。そして、第２キャッシュメモリ６０は、リード要求で指定されたデータ（主記憶装置等から取得したデータ）を、要求元の第１キャッシュメモリ４０に転送するとともにデータ保持部６２に格納する。データ保持部６２の記憶容量は、第１キャッシュメモリ４０の記憶容量に比べて大きい。
【００２５】
また、データ保持部６２は、リプレース処理の対象のデータであるリプレースデータを第１キャッシュメモリ４０から第２キャッシュメモリ６０に書き戻すライトバックが実行された場合、第１キャッシュメモリ４０から受けたリプレースデータを保持する。第１キャッシュメモリ４０でのリプレース処理は、例えば、第２キャッシュメモリ６０から転送されたデータを格納する領域が第１キャッシュメモリ４０にない場合に、第１キャッシュメモリ４０に保持されたデータのいずれかを追い出す処理である。リプレース処理により第１キャッシュメモリ４０から追い出されるリプレースデータは、例えば、使用されていない時間が最も長いデータである。
【００２６】
第１情報保持部６４は、複数の第１キャッシュメモリ４０に保持されたデータを管理する第１管理情報を保持する。例えば、第１情報保持部６４は、複数の第１キャッシュメモリ４０のそれぞれに対応する複数の第１管理情報を、各第１キャッシュメモリ４０のインデックスアドレス毎に保持する。すなわち、第１情報保持部６４は、互いに同じ値のインデックスアドレスに対して、複数の第１キャッシュメモリ４０のそれぞれに対応する複数の第１管理情報を保持する。第１情報保持部６４に保持された第１管理情報は、例えば、複数の第１キャッシュメモリ４０に保持されたデータの一貫性（キャッシュコヒーレンシ）を維持するために使用される。
【００２７】
例えば、第１管理情報は、第１キャッシュメモリ４０のタグアドレスおよびタイプコード等を含む。第１管理情報に含まれるタイプコードは、第１キャッシュメモリ４０のインデックスアドレスおよびタグアドレスで指定されるデータ（キャッシュライン）の状態を示す。ＭＥＳＩプロトコルでは、データの状態は、変更（Modified）、排他（Exclusive）、共有（Shared）、無効（Invalid）のいずれかに分類される。例えば、ストア動作等により更新されたダーティなデータの状態は、変更（Modified）に分類される。階層が互いに同じ複数の第１キャッシュメモリ４０のうちの該当する１つの第１キャッシュメモリ４０のみに保持され、更新されていないクリーンなデータの状態は、排他（Exclusive）に分類される。階層が互いに同じ第１キャッシュメモリ４０の他の第１キャッシュメモリ４０にも保持されているクリーンなデータの状態は、共有（Shared）に分類される。第１キャッシュメモリ４０の初期化後のデータ、無効にされたデータ等の意味のないデータの状態は、無効（Invalid）に分類される。
【００２８】
なお、第１管理情報は、第１キャッシュメモリ４０のタグアドレスの代わりに、第１キャッシュメモリ４０のタグアドレスに対応する情報（例えば、図５に示すウェイ情報ＷＡＹＬＬ［３：０］およびタイプコードＴＣＬ１［１：０］）を有してもよい。
【００２９】
第２情報保持部６６は、データ保持部６２に保持されたデータを管理する第２管理情報を保持する。例えば、第２情報保持部６６は、第２キャッシュメモリ６０のタグアドレスおよびタイプコード等を含む第２管理情報を、第２キャッシュメモリ６０のインデックスアドレス毎に保持する。第２キャッシュメモリ６０のインデックスアドレスは、第２キャッシュメモリ６０のキャッシュライン（データ保持部６２のキャッシュライン）の番号に対応する。第２管理情報に含まれるタイプコードは、第１管理情報に含まれるタイプコードと同様に、第２キャッシュメモリ６０のインデックスアドレスおよびタグアドレスで指定されるデータ（キャッシュライン）の状態を示す。
【００３０】
分類部６８は、複数の第１キャッシュメモリ４０のいずれかからのリード要求を含む複数の処理要求を受け、受けた処理要求を、要求の種類に基づいて分類する。例えば、分類部６８は、複数の処理要求のうち、第２管理情報を参照せずに第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類する。また、分類部６８は、複数の処理要求のうち、第１管理情報および第２管理情報のうちの少なくとも第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類する。そして、分類部６８は、複数の処理要求のうちの第１の種類の処理要求を第１処理部７０に投入し、複数の処理要求のうちの第２の種類の処理要求を第２処理部７２に投入する。
【００３１】
例えば、分類部６８は、リード要求を第１キャッシュメモリ４０から受けた場合、リード要求で指定されたデータの検索に第２管理情報が参照されるため、リード要求を第２処理部７２に投入する。また、分類部６８は、リプレース処理のうち、リプレースデータのライトバックを伴わないリプレース完了処理の要求を受けた場合、リプレース完了処理では第２管理情報が参照されないため、リプレース完了処理の要求を第１処理部７０に投入する。なお、分類部６８は、リプレース処理のうち、リプレースデータのライトバックの要求を受けた場合、リプレースデータに関する第２管理情報の更新処理で第２管理情報が参照されるため、リプレースデータのライトバックの要求を第２処理部７２に投入する。このように、分類部６８は、処理要求の種類に基づいて、処理要求の出力先を第１処理部７０および第２処理部７２のいずれかに決定する。
【００３２】
第１処理部７０は、分類部６８から受ける第１の種類の処理要求に基づく処理を、第２管理情報を参照せずに第１管理情報を参照して実行する。なお、第１処理部７０は、第２処理部７２と並列に動作可能である。
【００３３】
第２処理部７２は、分類部６８から受ける第２の種類の処理要求に基づく処理を、第１情報保持部６４に保持された第１管理情報および第２情報保持部６６に保持された第２管理情報のうちの少なくとも第２管理情報に基づいて実行する。
【００３４】
例えば、第２処理部７２は、リード要求を受けた場合、第２キャッシュメモリ６０がキャッシュヒットするか否かを、第２情報保持部６６に保持された第２管理情報を参照して判定する。リード要求で指定されたデータをデータ保持部６２が保持している場合、第２キャッシュメモリ６０はキャッシュヒットする。第２キャッシュメモリ６０がキャッシュヒットした場合、第２処理部７２は、リード要求で指定されたデータをデータ保持部６２から要求元の第１キャッシュメモリ４０に転送する処理を実行する。
【００３５】
また、例えば、第２処理部７２は、リプレースデータのライトバックの要求を受けた場合、第１キャッシュメモリ４０から受けたリプレースデータをデータ保持部６２に格納し、第２情報保持部６６に保持された第２管理情報を更新する。
【００３６】
第１処理部７０と第２処理部７２とが並列に動作可能であるため、第２キャッシュメモリ６０は、第２の種類の処理要求に基づく処理（第２処理部７２での処理）と第１の種類の処理要求に基づく処理（第１処理部７０での処理）とを並列に実行できる。
【００３７】
例えば、第１キャッシュメモリ４０が連続してキャッシュミスし、キャッシュミスに伴い第１キャッシュメモリ４０から追い出されるリプレースデータが全てクリーンなデータ（変更されていないデータ）である場合、第２処理部７２は、リード要求を順次受ける。そして、第２処理部７２は、リード要求で指定されたデータを、データ保持部６２から第１キャッシュメモリ４０に転送する。また、第２処理部７２は、キャッシュミスに伴い第１キャッシュメモリ４０から追い出されるリプレースデータに関する第１管理情報を、リード要求で指定されたデータに関する第１管理情報に更新する。これにより、第１情報保持部６４は、リード要求で指定されたデータに関する第１管理情報を保持する。
【００３８】
また、第１処理部７０は、ライトバックを伴わないリプレース完了処理の要求を順次受ける。そして、第１処理部７０は、第２処理部７２がデータ保持部６２から第１キャッシュメモリ４０にデータを転送しているサイクルに、前のサイクルのリード要求に対応するリプレース完了処理を実行する。
【００３９】
ここで、例えば、第１処理部７０が省かれた構成では、リード要求により発生する一連の処理の各処理は、第２処理部７２に対応する処理部により順番に実行される。この場合、リード要求に基づく処理とライトバックを伴わないリプレース完了処理とが並列に実行されない。このため、第１処理部７０が省かれた構成では、リプレースデータが全てクリーンなデータである場合、データ保持部６２から第１キャッシュメモリ４０へのデータの転送は、２サイクルに１回実行される。
【００４０】
これに対し、第１処理部７０と第２処理部７２とを含む第２キャッシュメモリ６０は、リード要求に基づく処理（データ保持部６２から第１キャッシュメモリ４０へのデータの転送）と、ライトバックを伴わないリプレース完了処理とを並列に実行できる。このため、キャッシュミスに伴い第１キャッシュメモリ４０から追い出されるリプレースデータが全てクリーンなデータである場合、データ保持部６２から第１キャッシュメモリ４０へのデータの転送を１サイクル毎に実行できる。この場合、データ保持部６２から第１キャッシュメモリ４０へのデータの転送のスループットは、上述した第１処理部７０が省かれた構成（データの転送を２サイクルに１回実行する場合）に比べて、向上する。すなわち、演算処理装置１０は、リード要求に基づく処理とライトバックを伴わないリプレース完了処理とを並列に実行できない演算処理装置に比べて、第２キャッシュメモリ６０のスループットを向上できる。
【００４１】
なお、演算処理装置１０の構成は、図１に示す例に限定されない。例えば、第１キャッシュメモリ４０および第２キャッシュメモリ６０は、セットアソシアティブ方式以外の方式（例えば、ダイレクトマップ方式）のキャッシュメモリでもよい。
【００４２】
図２は、図１に示した演算処理装置１０の動作の一例を示す。図２に示す動作は、演算処理装置の制御方法の一態様である。なお、図２に示す動作は、ハードウェアのみで実現されてもよく、ハードウェアをソフトウェアにより制御することにより実現されてもよい。図２では、分類部６８の動作を中心に説明する。
【００４３】
ステップＳ１０では、分類部６８は、第１キャッシュメモリ４０等から受けた処理要求が第２の種類の処理要求か否かを判定する。処理要求が第２の種類の処理要求である場合、分類部６８の動作は、ステップＳ２０に移る。一方、処理要求が第２の種類の処理要求でない場合（すなわち、処理要求が第１の種類の処理要求である場合）、分類部６８の動作は、ステップＳ３０に移る。
【００４４】
ステップＳ２０では、分類部６８は、ステップＳ１０で第２の種類の処理要求であると判定した処理要求を、第２処理部７２に投入する。すなわち、分類部６８は、第２の種類の処理要求を第２処理部７２に投入する。これにより、第２処理部７２は、ステップＳ４０において、第２の種類の処理要求に基づく処理を実行する。
【００４５】
ステップＳ３０では、分類部６８は、ステップＳ１０で第１の種類の処理要求であると判定した処理要求を、第１処理部７０に投入する。すなわち、分類部６８は、第１の種類の処理要求を第１処理部７０に投入する。これにより、第１処理部７０は、ステップＳ５０において、第１の種類の処理要求に基づく処理を実行する。
【００４６】
このように、分類部６８は、複数の処理要求を第１の種類の処理要求および第２の種類の処理要求のいずれかに分類して、第１の種類の処理要求を第１処理部７０に投入し、第２の種類の処理要求を第２処理部７２に投入する。
【００４７】
第１処理部７０と第２処理部７２とが互いに並列に動作可能であるため、第１の種類の処理要求に基づく処理と第２の種類の処理要求に基づく処理とは、互いに並列に実行可能である。なお、演算処理装置１０の動作は、図２に示す例に限定されない。
【００４８】
以上、図１に示す実施形態では、第２キャッシュメモリ６０は、第１の種類の処理要求に基づく処理（例えば、ライトバックを伴わないリプレース完了処理）と、リード要求等の第２の種類の処理要求に基づく処理とを並列に実行できる。これにより、第１の種類の処理要求に基づく処理と第２の種類の処理要求に基づく処理とを並列に実行できない手法に比べて、第２キャッシュメモリ６０のスループットを向上できる。
【００４９】
図３は、演算処理装置および演算処理装置の制御方法の別の実施形態を示す。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図３に示す演算処理装置ＰＵは、例えば、命令を実行するＣＰＵ等のプロセッサである。
【００５０】
演算処理装置ＰＵは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬと、主記憶制御部ＭＣＮＴＬと、入出力制御部ＩＯＣＮＴＬと、ＣＰＵインタフェース部ＣＩＦとを有する。図３以降では、コアＣＯＲＥの数を８つとして説明する。なお、コアＣＯＲＥの数は、８に限定されない。
【００５１】
各コアＣＯＲＥは、互いに対応するプロセッサコアＰＣＯＲおよび第１キャッシュメモリＬ１を有し、第２キャッシュメモリＬＬに接続される。
【００５２】
プロセッサコアＰＣＯＲは、図１に示したプロセッサコア２０と同一または同様である。例えば、プロセッサコアＰＣＯＲは、第１キャッシュメモリＬ１に保持されたデータを参照して、命令に基づく演算等を実行する。
【００５３】
第１キャッシュメモリＬ１は、例えば、セットアソシアティブ方式のキャッシュメモリであり、図１に示した第１キャッシュメモリ４０と同一または同様である。第１キャッシュメモリＬ１は、第２キャッシュメモリＬＬに比べて高速にアクセス可能な１次キャッシュメモリであり、第２キャッシュメモリＬＬに保持されたデータの一部を保持する。
【００５４】
第２キャッシュメモリＬＬは、セットアソシアティブ方式のキャッシュメモリであり、主記憶制御部ＭＣＮＴＬ、入出力制御部ＩＯＣＮＴＬ、ＣＰＵインタフェース部ＣＩＦおよび複数のコアＣＯＲＥ等に接続される。すなわち、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１より下位の階層の２次キャッシュメモリであり、複数のコアＣＯＲＥに共有される。
【００５５】
第２キャッシュメモリＬＬは、データ保持部ＤＭＥＭ、管理情報保持部ＴＡＧＬ１ｃ、管理情報保持部ＴＡＧＬＬおよび使用情報保持部ＬＲＵＬＬｃを有する。さらに、第２キャッシュメモリＬＬは、投入部ＩＮＰ、メインパイプライン制御部ＭＰＬＣｃ、サブパイプライン制御部ＳＰＬＣｃおよびスヌープロック部ＳＮＰを有する。
【００５６】
データ保持部ＤＭＥＭは、主記憶制御部ＭＣＮＴＬに接続される主記憶装置（図示せず）等に記憶されたデータの一部を保持する。例えば、データ保持部ＤＭＥＭは、図４に示すように、インデックスアドレス毎にデータを保持する複数のウェイを有する。データ保持部ＤＭＥＭの記憶容量は、第１キャッシュメモリＬ１の記憶容量に比べて大きい。
【００５７】
管理情報保持部ＴＡＧＬ１ｃは、複数の第１キャッシュメモリＬ１に保持されたデータを管理する第１管理情報を保持する。管理情報保持部ＴＡＧＬＬは、データ保持部ＤＭＥＭに保持されたデータを管理する第２管理情報を保持する。管理情報保持部ＴＡＧＬ１ｃおよび管理情報保持部ＴＡＧＬＬの詳細は、図５で説明する。
【００５８】
使用情報保持部ＬＲＵＬＬｃは、データ保持部ＤＭＥＭの複数のウェイのうち、複数の第１キャッシュメモリＬ１のいずれにもアクセスされていない待機時間が最も長いウェイを選択するための選択情報を保持する選択情報保持部の一例である。例えば、第２キャッシュメモリＬＬがキャッシュミスし、主記憶装置等から第２キャッシュメモリＬＬに転送されたデータを登録する領域がない場合、第２キャッシュメモリＬＬに保持されたデータのいずれかを追い出すリプレース処理が実行される。この際、使用情報保持部ＬＲＵＬＬｃは、主記憶装置等からのデータの格納先のウェイ（すなわち、追い出されるデータを保持しているウェイ）を、選択情報を使用してＬＲＵ（Least Recently Used）方式で決定する。なお、使用情報保持部ＬＲＵＬＬｃの詳細は、図６で説明する。
【００５９】
投入部ＩＮＰは、複数の処理要求を第１の種類の処理要求と第２の種類の処理要求とに分類する分類部の一例である。投入部ＩＮＰは、リード要求等を含む複数の処理要求をコアＣＯＲＥ等から受け、受けた処理要求を要求の種類に基づいて分類する。例えば、投入部ＩＮＰは、複数の処理要求のうち、第２管理情報を参照せずに第１管理情報を参照して実行される処理の要求を第１の種類の処理要求に分類する。また、投入部ＩＮＰは、複数の処理要求のうち、第１管理情報および第２管理情報のうちの少なくとも第２管理情報を参照して実行される処理の要求を第２の種類の処理要求に分類する。そして、投入部ＩＮＰは、複数の処理要求のうちの第１の種類の処理要求をサブパイプライン制御部ＳＰＬＣｃに投入し、複数の処理要求のうちの第２の種類の処理要求をメインパイプライン制御部ＭＰＬＣｃに投入する。
【００６０】
また、投入部ＩＮＰは、処理対象のデータのメモリアドレス等を、メインパイプライン制御部ＭＰＬＣｃ、サブパイプライン制御部ＳＰＬＣｃ等に出力する。
【００６１】
メインパイプライン制御部ＭＰＬＣｃは、投入部ＩＮＰから受ける第２の種類の処理要求に基づく処理を、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報および管理情報保持部ＴＡＧＬＬに保持された第２管理情報のうちの少なくとも第２管理情報に基づいて実行する。
【００６２】
サブパイプライン制御部ＳＰＬＣｃは、投入部ＩＮＰから受けた第１の種類の処理要求に基づく処理を、第２管理情報を参照せずに第１管理情報を参照して実行する。なお、サブパイプライン制御部ＳＰＬＣｃは、メインパイプライン制御部ＭＰＬＣｃと並列に動作可能である。メインパイプライン制御部ＭＰＬＣｃおよびサブパイプライン制御部ＳＰＬＣｃの詳細は、図７以降で説明する。
【００６３】
スヌープロック部ＳＮＰは、第１キャッシュメモリＬ１から追い出されるデータと同じメモリアドレスに対する処理要求を止めるスヌープロックを、メインパイプライン制御部ＭＰＬＣｃ、サブパイプライン制御部ＳＰＬＣｃ等からの指示に基づいて実行する。
【００６４】
主記憶制御部ＭＣＮＴＬには、例えば、第２キャッシュメモリＬＬより下位の階層の主記憶装置（図示せず）等が接続される。そして、主記憶制御部ＭＣＮＴＬは、第２キャッシュメモリＬＬと主記憶装置との間のデータ転送等を実行する。
【００６５】
入出力制御部ＩＯＣＮＴＬには、例えば、入出力装置（図示せず）が接続される。そして、入出力制御部ＩＯＣＮＴＬは、第２キャッシュメモリＬＬと入出力装置との間のデータ転送等を実行する。入出力装置は、演算処理装置ＰＵにデータを入力するキーボード等の入力装置、演算処理装置ＰＵの処理結果を外部に出力するディスプレイ等の出力装置等である。
【００６６】
ＣＰＵインタフェース部ＣＩＦには、例えば、他の演算処理装置ＰＵ（図示せず）、他のシステムとの接続インタフェース装置（図示せず）等が接続される。そして、ＣＰＵインタフェース部ＣＩＦは、ＣＰＵインタフェース部ＣＩＦに接続された装置と第２キャッシュメモリＬＬとの間のデータ転送等を実行する。
【００６７】
なお、演算処理装置ＰＵの構成は、図３に示す例に限定されない。例えば、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬは、セットアソシアティブ方式以外の方式（例えば、ダイレクトマップ方式）のキャッシュメモリでもよい。また、キャッシュメモリの階層レベルは、３以上でもよい。この場合、３次キャッシュメモリ等は、第２キャシュメモリＬＬ（２次キャッシュメモリ）と同様に、メインパイプライン制御部ＭＰＬＣｃおよびサブパイプライン制御部ＳＰＬＣｃを有してもよい。
【００６８】
図４は、図３に示したデータ保持部ＤＭＥＭの一例を示す。データ保持部ＤＭＥＭは、インデックスアドレスＲＡＤ［１８：７］毎にデータを保持する複数のウェイＷＡＹ（ＷＡＹ０、ＷＡＹ１、・・・、ＷＡＹ１４、ＷＡＹ１５）を有する。なお、インデックスアドレスＲＡＤ［１８：７］は、データのアクセスに使用するメモリアドレスＲＡＤ［４７：０］の一部分のビット群で表される第２インデックスの一例である。図４に示す例では、データ保持部ＤＭＥＭのウェイＷＡＹの数は、１６である。すなわち、第２キャッシュメモリＬＬは、１６ウェイのセットアソシアティブ方式のキャッシュメモリである。なお、データ保持部ＤＭＥＭのウェイＷＡＹの数は、１６に限定されない。
【００６９】
データ保持部ＤＭＥＭは、アクセス対象のウェイＷＡＹを示すヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５と、アクセス対象のインデックスアドレスＲＡＤ［１８：７］とを受ける。例えば、第２キャッシュメモリＬＬがリード要求をコアＣＯＲＥから受けた場合、データ保持部ＤＭＥＭは、インデックスアドレスＲＡＤ［１８：７］とヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５とで指定されたデータを要求元のコアＣＯＲＥに出力する。以下、アクセス対象のメモリアドレスＲＡＤは、要求アドレスＲＡＤとも称される。また、インデックスアドレスＲＡＤ［１８：７］は、アドレスＲＡＤ［１８：７］とも称される。
【００７０】
図５は、図３に示した管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃの一例を示す。なお、図５に示す管理情報保持部ＴＡＧＬＬは、第２キャッシュメモリＬＬのウェイ数が１６で、サイズが８メガバイトである場合の一例である。また、図５に示す管理情報保持部ＴＡＧＬ１ｃは、第１キャッシュメモリＬ１のウェイ数が８（命令用に４ウェイ、データ用に４ウェイ）で、サイズが１２８キロバイトである場合の一例である。第１キャッシュメモリＬ１および第２キャッシュメモリＬＬのキャッシュラインのサイズは、１２８バイトである。
【００７１】
したがって、第１キャッシュメモリＬ１のキャッシュラインの番号は、インデックスアドレスＰＡ［１３：７］で表される。そして、インデックスアドレスＰＡ［１３：７］は、データのアクセスに使用するメモリアドレスＲＡＤ［４７：０］の一部分（７から１３ビット）のビット群で表されるインデックスアドレスＲＡＤ［１３：７］で指定される。なお、インデックスアドレスＲＡＤ［１３：７］は、第２インデックス（インデックスアドレスＲＡＤ［１８：７］）の一部分のビット群で表される第１インデックスの一例である。
【００７２】
また、第２キャッシュメモリＬＬのキャッシュラインの番号は、インデックスアドレスＰＡ［１８：７］で表される。そして、インデックスアドレスＰＡ［１８：７］は、メモリアドレスＲＡＤ［４７：０］の一部分（７から１８ビット）のビット群で表されるインデックスアドレスＲＡＤ［１８：７］で指定される。
【００７３】
管理情報保持部ＴＡＧＬＬは、１つのインデックスアドレスＰＡ［１８：７］に対して、第２キャッシュメモリＬＬのウェイ数分（図５に示す例では、１６ウェイ分）の第２管理情報ＩＮＦＬＬ（ＩＮＦＬＬ０、・・・、ＩＮＦＬＬ１５）を保持する。第２管理情報ＩＮＦＬＬの末尾の数字は、第２キャッシュメモリＬＬのウェイＷＡＹの末尾の数字に対応する。このように、管理情報保持部ＴＡＧＬＬは、各ウェイＷＡＹの第２管理情報ＩＮＦＬＬを第２キャッシュメモリＬＬのインデックスアドレスＰＡ［１８：７］毎に保持する。
【００７４】
各第２管理情報ＩＮＦＬＬは、第２キャッシュメモリＬＬのタグアドレスＰＡ［４７：１９］およびタイプコードＴＣＬＬ［１：０］を含む。第２キャッシュメモリＬＬのタグアドレスＰＡ［４７：１９］は、メモリアドレスＲＡＤ［４７：０］の一部分（１９から４７ビット）のビット群で表される。また、タイプコードＴＣＬＬ［１：０］は、第２キャッシュメモリＬＬのインデックスアドレスＰＡ［１８：７］とタグアドレスＰＡ［４７：１９］とで指定されるデータ（キャッシュライン）の状態を示す。データの状態は、例えば、ＭＥＳＩプロトコルで管理される。
【００７５】
図５に示す例では、データの状態が無効（Invalid）である場合、タイプコードＴＣＬＬ［１：０］は”００”に設定される。データの状態が共有（Shared）である場合、タイプコードＴＣＬＬ［１：０］は”０１”に設定される。データの状態が変更（Modified）である場合、タイプコードＴＣＬＬ［１：０］は”１０”に設定される。データの状態が排他（Exclusive）である場合、タイプコードＴＣＬＬ［１：０］は”１１”に設定される。
【００７６】
管理情報保持部ＴＡＧＬＬが保持する第２管理情報ＩＮＦＬＬは、例えば、メインパイプライン制御部ＭＰＬＣｃからのアップデート指示ＵＰＤＬＬに基づいて、更新される。
【００７７】
管理情報保持部ＴＡＧＬ１ｃは、１つのインデックスアドレスＰＡ［１３：７］に対して、第１キャッシュメモリＬ１のウェイ数と第１キャッシュメモリＬ１の数との積で表される数の第１管理情報ＩＮＦＬ１ｃを保持する。図５に示す例では、管理情報保持部ＴＡＧＬ１ｃは、１つのインデックスアドレスＰＡ［１３：７］に対して、６４個（＝８ウェイ×８コア分）の第１管理情報ＩＮＦＬ１ｃ（ＩＮＦＬ１ｃ０、・・・、ＩＮＦＬ１ｃ６３）を保持する。
【００７８】
このように、管理情報保持部ＴＡＧＬ１ｃは、各第１キャッシュメモリＬ１における各ウェイの第１管理情報ＩＮＦＬ１ｃを、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］毎に保持する。図５に示す例では、第１管理情報ＩＮＦＬ１ｃの末尾の数字を８で割った場合の商および余りは、それぞれコアＣＯＲＥの末尾の数字および第１キャッシュメモリＬ１のウェイ番号（０から７のいずれか）に対応する。例えば、第１管理情報ＩＮＦＬ１ｃ０は、コアＣＯＲＥ０の第１キャッシュメモリＬ１の０番目のウェイの第１管理情報ＩＮＦＬ１ｃを示す。また、第１管理情報ＩＮＦＬ１ｃ６３は、コアＣＯＲＥ７の第１キャッシュメモリＬ１の７番目のウェイの第１管理情報ＩＮＦＬ１ｃを示す。
【００７９】
各第１管理情報ＩＮＦＬ１ｃは、ウェイ情報ＷＡＹＬＬ［３：０］と、差分情報ＰＡ［１８：１４］と、タイプコードＴＣＬ１［１：０］とを有する。ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］の代わりに保持される情報である。例えば、ウェイ情報ＷＡＹＬＬ［３：０］は、第２キャッシュメモリＬＬの複数のウェイＷＡＹのうち、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］とタグアドレスＰＡ［４７：１４］とで指定されるデータが保持されたウェイＷＡＹを示す。すなわち、ウェイ情報ＷＡＹＬＬ［３：０］は、タグアドレスＰＡ［４７：１４］のうちのアドレスＰＡ［４７：１９］（第２キャッシュメモリＬＬのタグアドレスＰＡ［４７：１９］）に対応する。
【００８０】
差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］と第２キャッシュメモリＬＬのインデックスアドレスＰＡ［１８：７］との差分を示す。すなわち、差分情報ＰＡ［１８：１４］は、メモリアドレスＲＡＤ［４７：０］の一部分（１４から１８ビット）のビット群で表され、タグアドレスＰＡ［４７：１４］のうちのアドレスＰＡ［１８：１４］に対応する。このように、ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］は、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］の代わりに使用される。
【００８１】
タイプコードＴＣＬ１［１：０］は、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］、ウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］で指定されるデータ（キャッシュライン）の状態を示す。データの状態は、例えば、ＭＥＳＩプロトコルで管理される。なお、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１に保持されたデータが変更されたタイミングを検出しない。このため、タイプコードＴＣＬ１［１：０］は、データの状態が変更（Modified）であることを示す”１０”以外の値に設定される。
【００８２】
管理情報保持部ＴＡＧＬ１ｃが保持する第１管理情報ＩＮＦＬ１ｃは、例えば、メインパイプライン制御部ＭＰＬＣｃまたはサブパイプライン制御部ＳＰＬＣｃからのアップデート指示ＵＰＤＬ１ｃに基づいて、更新される。
【００８３】
なお、管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃの構成は、図５に示す例に限定されない。例えば、管理情報保持部ＴＡＧＬ１ｃは、図２３等に示すように、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］とタイプコードＴＣＬ１［１：０］とを含む第１管理情報ＩＮＦＬ１ａを保持してもよい。
【００８４】
図６は、図３に示した使用情報保持部ＬＲＵＬＬｃの一例を示す。なお、図６に示す使用情報保持部ＬＲＵＬＬｃは、第２キャッシュメモリＬＬのウェイ数が１６である場合の一例である。
【００８５】
使用情報保持部ＬＲＵＬＬｃは、インデックスアドレスＰＡ［１８：７］毎に、選択情報ＳＩＮＦ（ＳＩＮＦ１［３：０］、ＳＩＮＦ２［３：０］、・・・、ＳＩＮＦ１５［３：０］、ＳＩＮＦ１６［３：０］）を保持する。選択情報ＳＩＮＦ１［３：０］に登録されたウェイＷＡＹは、データ保持部ＤＭＥＭの複数のウェイＷＡＹのうち、複数の第１キャッシュメモリＬ１のいずれにもアクセスされていない待機時間が最も長いウェイＷＡＹである。選択情報ＳＩＮＦの符号ＳＩＮＦの後の数字が大きくなるほど、待機時間が短いウェイＷＡＹが登録される。使用情報保持部ＬＲＵＬＬｃが保持する選択情報ＳＩＮＦは、例えば、メインパイプライン制御部ＭＰＬＣｃからのアップデート指示ＵＰＤＬＲＵに基づいて、更新される。
【００８６】
また、使用情報保持部ＬＲＵＬＬｃは、選択部ＳＬＵを有する。選択部ＳＬＵは、第２キャシュメモリＬＬから追い出すデータを保持しているウェイＷＡＹを、複数のウェイＷＡＹのうち、所持情報ＣＩＮＦ０−ＣＩＮＦ１５が示すウェイＷＡＹ以外のウェイＷＡＹから優先的に、選択情報ＳＩＮＦに基づいて選択する。例えば、所持情報ＣＩＮＦ０−ＣＩＮＦ１５が示すウェイＷＡＹが、選択情報ＳＩＮＦ１［３：０］に登録されたウェイＷＡＹである場合、選択部ＳＬＵは、選択情報ＳＩＮＦ２［３：０］に登録されたウェイＷＡＹを選択する。そして、使用情報保持部ＬＲＵＬＬｃは、選択部ＳＬＵで選択したウェイＷＡＹを示すリプレースウェイ情報ＲＰＬＷＡＹを、出力する。
【００８７】
このように、アドレスＲＡＤ［１８：７］で指定され、データ保持部ＤＭＥＭの複数のウェイＷＡＹにそれぞれ保持されたデータのうち、複数の第１キャッシュメモリＬ１のいずれかに保持されたデータを保持するウェイＷＡＹは、リプレース対象から除外される。コアＣＯＲＥ内の第１キャッシュメモリＬ１に保持されているデータがプロセッサコアＰＣＯＲに再度参照される確率は、第１キャッシュメモリＬ１に保持されていないデータに比べて高い。このため、第２キャッシュメモリＬＬの複数のウェイＷＡＹのうち、複数の第１キャッシュメモリＬ１のいずれかに保持されたデータを保持するウェイＷＡＹをリプレース対象から除外することで、キャッシュヒットの頻度が低下することを抑止することができる。
【００８８】
なお、使用情報保持部ＬＲＵＬＬｃの構成は、図６に示す例に限定されない。例えば、選択部ＳＬＵは、使用情報保持部ＬＲＵＬＬｃの外部に設けられてもよい。
【００８９】
図７は、図３に示したメインパイプライン制御部ＭＰＬＣｃの一例を示す。図７に示す一点鎖線は、パイプライン処理の各ステージの境界に対応する。メモリアドレスＲＡＤ［４７：０］のうちのアドレスＲＡＤ［１８：７］は、アクセス対象のインデックスアドレスＲＡＤ［１８：７］であり、第２キャッシュメモリＬＬのインデックスアドレスＰＡ［１８：７］に対応する。また、メモリアドレスＲＡＤ［４７：０］のうちのアドレスＲＡＤ［４７：１９］は、第２キャッシュメモリＬＬのタグアドレスＰＡ［４７：１９］に対応する。そして、メモリアドレスＲＡＤ［４７：０］のうちのアドレスＲＡＤ［１３：７］は、第１キャッシュメモリＬ１のインデックスアドレスＰＡ［１３：７］に対応する。
【００９０】
メインパイプライン制御部ＭＰＬＣｃは、ヒット判定部ＨＤＪ、コア判定部ＣＤＪｃおよび処理判定部ＭＰＤＪｃを有する。
【００９１】
ヒット判定部ＨＤＪは、第２キャッシュメモリＬＬがキャッシュヒットするか否かを判定する。例えば、ヒット判定部ＨＤＪは、インデックスアドレスＲＡＤ［１８：７］で指定される第２管理情報ＩＮＦＬＬ０−ＩＮＦＬＬ１５を管理情報保持部ＴＡＧＬＬから受ける。各第２管理情報ＩＮＦＬＬには、図５で説明したように、タグアドレスＰＡ［４７：１９］およびタイプコードＴＣＬＬ［１：０］が含まれる。
【００９２】
また、ヒット判定部ＨＤＪは、アドレスＲＡＤ［４７：１９］を投入部ＩＮＰから受ける。そして、ヒット判定部ＨＤＪは、アドレスＲＡＤ［４７：１９］と管理情報保持部ＴＡＧＬＬから受けた各第２管理情報ＩＮＦＬＬ内のタグアドレスＰＡ［４７：１９］とを比較する。管理情報保持部ＴＡＧＬＬから受けた第２管理情報ＩＮＦＬＬ内のタグアドレスＰＡ［４７：１９］のいずれかがアドレスＲＡＤ［４７：１９］と一致した場合、ヒット判定部ＨＤＪは、第２キャッシュメモリＬＬがキャッシュヒットしたと判定する。
【００９３】
また、ヒット判定部ＨＤＪは、ヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５をコア判定部ＣＤＪｃ、データ保持部ＤＭＥＭ等に出力し、ヒットデータ情報ＨＴＣＬＬ［１：０］を処理判定部ＭＰＤＪｃに出力する。ヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５は、キャッシュヒットしたウェイＷＡＹ（アクセス対象のデータを保持しているウェイＷＡＹ）を示し、ヒットデータ情報ＨＴＣＬＬ［１：０］は、キャッシュヒットしたデータの状態を示す。ヒットウェイ情報ＨＩＴＷの末尾の数字は、第２キャッシュメモリＬＬのウェイＷＡＹ（図４に示したデータ保持部ＤＭＥＭのウェイＷＡＹ）の末尾の数字に対応する。なお、第２キャッシュメモリＬＬがキャッシュミスした場合、ヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５およびヒットデータ情報ＨＴＣＬＬ［１：０］は、例えば、全て”０”に設定される。ヒット判定部ＨＤＪの詳細は、図８で説明する。
【００９４】
コア判定部ＣＤＪｃは、複数の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを判定する。例えば、コア判定部ＣＤＪｃは、インデックスアドレスＲＡＤ［１３：７］で指定される第１管理情報ＩＮＦＬ１ｃ０−ＩＮＦＬ１ｃ６３を管理情報保持部ＴＡＧＬ１ｃから受ける。また、コア判定部ＣＤＪｃは、第１キャッシュメモリＬ１から追い出すデータが保持された第１キャッシュメモリＬ１のウェイの番号等を示す要求ウェイ情報ＲＥＱＣＷＡＹと、アドレスＲＡＤ［１８：１４］とを投入部ＩＮＰから受ける。なお、各第１管理情報ＩＮＦＬ１ｃには、図５で説明したように、ウェイ情報ＷＡＹＬＬ［３：０］、差分情報ＰＡ［１８：１４］およびタイプコードＴＣＬ１［１：０］が含まれる。要求ウェイ情報ＲＥＱＣＷＡＹは、例えば、要求元のコアＣＯＲＥおよび要求元のコアＣＯＲＥ内の第１キャシュメモリＬ１のウェイ番号を示す。
【００９５】
例えば、コア判定部ＣＤＪｃは、要求ウェイ情報ＲＥＱＣＷＡＹと、各第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１［１：０］とを用いて、要求データ情報ＲＴＣＬ１［１：０］を生成する。また、コア判定部ＣＤＪｃは、アドレスＲＡＤ［１８：１４］と各第１管理情報ＩＮＦＬ１ｃとヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５とを用いて、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］と所持情報ＣＩＮＦ０−ＣＩＮＦ１５とを生成する。コアデータ情報ＨＴＣの末尾の数字（符号ＨＴＣの後の数字）は、第１管理情報ＩＮＦＬ１ｃの末尾の数字に対応する。また、所持情報ＣＩＮＦの末尾の数字は、第２キャッシュメモリＬＬのウェイＷＡＹの末尾の数字に対応する。
【００９６】
コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］は、第１キャッシュメモリＬ１でキャッシュヒットしたデータ（第１キャッシュメモリＬ１に保持されたデータ）の状態を示す。なお、キャッシュミスしたデータに対応するコアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］は、例えば、”００”に設定される。
【００９７】
所持情報ＣＩＮＦ０−ＣＩＮＦ１５は、アドレスＲＡＤ［１８：７］で指定され、データ保持部ＤＭＥＭの複数のウェイＷＡＹにそれぞれ保持されたデータのうち、複数の第１キャッシュメモリＬ１のいずれかに保持されたデータを保持しているウェイＷＡＹを示す。
【００９８】
要求データ情報ＲＴＣＬ１［１：０］は、アドレスＲＡＤ［１３：７］で指定されたデータのうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定された第１キャッシュメモリＬ１のウェイに保持されたデータの状態を示す。コア判定部ＣＤＪｃの詳細は、図９で説明する。
【００９９】
処理判定部ＭＰＤＪｃは、ヒットデータ情報ＨＴＣＬＬ［１：０］をヒット判定部ＨＤＪから受け、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］および要求データ情報ＲＴＣＬ１［１：０］をコア判定部ＣＤＪｃから受ける。さらに、処理判定部ＭＰＤＪｃは、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］を投入部ＩＮＰから受ける。
【０１００】
そして、処理判定部ＭＰＤＪｃは、情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］、ＲＴＣＬ１［１：０］、ＰＩＤ［３：０］、ＯＰＣＤ［１：０］に基づいて、コアＣＯＲＥ等に実行させる処理を決定する。例えば、処理判定部ＭＰＤＪｃは、リプレース処理を実行させるリプレース指示ＩＲＰＬ、スヌープ処理を実行させるスヌープ指示ＩＳＮＰ、データ応答等を、実行対象のコアＣＯＲＥに通知する。スヌープ処理は、複数の第１キャッシュメモリＬ１に保持されたデータの一貫性（キャッシュコヒーレンシ）を維持する処理である。また、処理判定部ＭＰＤＪｃは、演算処理装置ＰＵの外部の装置に主記憶制御部ＭＣＮＴＬ等を介して処理要求等を通知する。
【０１０１】
また、処理判定部ＭＰＤＪｃは、情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］、ＲＴＣＬ１［１：０］、ＰＩＤ［３：０］、ＯＰＣＤ［１：０］に基づいて、管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃ、使用情報保持部ＬＲＵＬＬｃに保持された情報を更新する。例えば、処理判定部ＭＰＤＪｃは、アップデート指示ＵＰＤＬＬを管理情報保持部ＴＡＧＬＬに出力し、アップデート指示ＵＰＤＬ１ｃを管理情報保持部ＴＡＧＬ１ｃに出力する。また、処理判定部ＭＰＤＪｃは、アップデート指示ＵＰＤＬＲＵを使用情報保持部ＬＲＵＬＬｃに出力する。
【０１０２】
図８は、図７に示したヒット判定部ＨＤＪの一例を示す。ヒット判定部ＨＤＪは、複数の判定部ＤＪＷ（ＤＪＷ０−ＤＪＷ１５）と、選択部ＳＥＬ１とを有する。判定部ＤＪＷの末尾の数字は、第２キャッシュメモリＬＬのウェイＷＡＹの末尾の数字に対応する。複数の判定部ＤＪＷは互いに同一または同様であるため、判定部ＤＪＷ０について説明する。
【０１０３】
判定部ＤＪＷ０は、マッチ検出部ＭＤ１、論理和回路ＯＲ１および論理積回路ＡＮＤ１を有する。マッチ検出部ＭＤ１は、アドレスＲＡＤ［１８：７］で指定されるインデックスアドレスＰＡ［１８：７］に対応する第２管理情報ＩＮＦＬＬ０内のタグアドレスＰＡ［４７：１９］を、管理情報保持部ＴＡＧＬＬから受ける。そして、マッチ検出部ＭＤ１は、投入部ＩＮＰから受けたアドレスＲＡＤ［４７：１９］と、第２管理情報ＩＮＦＬＬ０内のタグアドレスＰＡ［４７：１９］とを比較し、比較結果を論理積回路ＡＮＤ１に出力する。例えば、アドレスＲＡＤ［４７：１９］とタグアドレスＰＡ［４７：１９］とが一致する場合、マッチ検出部ＭＤ１は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤ１に出力する。また、アドレスＲＡＤ［４７：１９］とタグアドレスＰＡ［４７：１９］とが一致しない場合、マッチ検出部ＭＤ１は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤ１に出力する。
【０１０４】
論理和回路ＯＲ１は、アドレスＲＡＤ［１８：７］で指定されるインデックスアドレスＰＡ［１８：７］に対応する第２管理情報ＩＮＦＬＬ０内のタイプコードＴＣＬＬ［１：０］を、管理情報保持部ＴＡＧＬＬから受ける。そして、論理和回路ＯＲ１は、タイプコードＴＣＬＬ［０：０］とタイプコードＴＣＬＬ［１：１］との論理和を演算し、演算結果（ＴＣＬＬ［０：０］とＴＣＬＬ［１：１］との論理和結果）を論理積回路ＡＮＤ１に出力する。
【０１０５】
論理積回路ＡＮＤ１は、マッチ検出部ＭＤ１による比較結果と論理和回路ＯＲ１の演算結果との論理積を演算し、演算結果をヒットウェイ情報ＨＩＴＷ０として選択部ＳＥＬ１、データ保持部ＤＭＥＭ等に出力する。例えば、アクセス対象のデータがデータ保持部ＤＭＥＭのウェイＷＡＹ０に保持されている場合、判定部ＤＪＷ０は、真（例えば、論理値”１”）を示すヒットウェイ情報ＨＩＴＷ０を選択部ＳＥＬ１、データ保持部ＤＭＥＭ等に出力する。
【０１０６】
選択部ＳＥＬ１は、アドレスＲＡＤ［１８：７］で指定されるインデックスアドレスＰＡ［１８：７］に対応する第２管理情報ＩＮＦＬＬ０−ＩＮＦＬＬ１５内のタイプコードＴＣＬＬ［１：０］を入力信号として、管理情報保持部ＴＡＧＬＬから受ける。また、選択部ＳＥＬ１は、ヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５を選択信号として、判定部ＤＪＷ０−ＤＪＷ１５から受ける。そして、選択部ＳＥＬ１は、管理情報保持部ＴＡＧＬＬから受けた複数のタイプコードＴＣＬＬ［１：０］のうち、ヒットウェイ情報ＨＩＴＷ０−ＨＩＴＷ１５で指定されるタイプコードＴＣＬＬ［１：０］をヒットデータ情報ＨＴＣＬＬ［１：０］として選択する。
【０１０７】
例えば、選択部ＳＥＬ１は、真を示すヒットウェイ情報ＨＩＴＷに対応する第２管理情報ＩＮＦＬＬ内のタイプコードＴＣＬＬ［１：０］を、ヒットデータ情報ＨＴＣＬＬ［１：０］として選択する。そして、選択部ＳＥＬ１は、ヒットデータ情報ＨＴＣＬＬ［１：０］を処理判定部ＭＰＤＪｃに出力する。
【０１０８】
図９は、図７に示したコア判定部ＣＤＪｃの一例を示す。コア判定部ＣＤＪｃは、複数の判定部ＤＪＬ１ｃ（ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３）と、論理和回路ＯＲ４と、選択部ＳＥＬ２とを有する。判定部ＤＪＬ１ｃの末尾の数字は、第１管理情報ＩＮＦＬ１ｃの末尾の数字に対応する。複数の判定部ＤＪＬ１ｃは互いに同一または同様であるため、判定部ＤＪＬ１ｃ０について説明する。
【０１０９】
判定部ＤＪＬ１ｃ０は、デコード部ＤＥＣ、マッチ検出部ＭＤ２、論理和回路ＯＲ２、ＯＲ３および論理積回路ＡＮＤ２、ＡＮＤ３、ＡＮＤｗ０−ＡＮＤｗ１５を有する。論理積回路ＡＮＤｗの末尾の数字は、第２キャッシュメモリＬＬのウェイＷＡＹの末尾の数字に対応する。
【０１１０】
デコード部ＤＥＣは、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ｃ０内のウェイ情報ＷＡＹＬＬ［３：０］を、管理情報保持部ＴＡＧＬ１ｃから受ける。そして、デコード部ＤＥＣは、ウェイ情報ＷＡＹＬＬ［３：０］が示す論理値をデコードし、複数のウェイＷＡＹ０−ＷＡＹ１５の各々に対して真であるか否かを示すビットを含むデコード情報ＬＬＷ０−ＬＬＷ１５を生成する。例えば、ウェイ情報ＷＡＹＬＬ［３：０］が十進数で”１５”を示す場合、デコード部ＤＥＣは、デコード情報ＬＬＷ１５を真（例えば、論理値”１”）に設定し、デコード情報ＬＬＷ０−ＬＬＷ１４を偽（例えば、論理値”０”）に設定する。
【０１１１】
デコード部ＤＥＣは、デコードしたデコード情報ＬＬＷ０−ＬＬＷ１５を論理積回路ＡＮＤ３に出力する。また、デコード部ＤＥＣは、デコード情報ＬＬＷ０−ＬＬＷ１５を、論理積回路ＡＮＤｗ０−ＡＮＤｗ１５にそれぞれ出力する。例えば、デコード部ＤＥＣは、デコード情報ＬＬＷ０を論理積回路ＡＮＤｗ０に出力する。
【０１１２】
論理積回路ＡＮＤｗ０は、ヒット判定部ＨＤＪの判定部ＤＪＷ０から受けたヒットウェイ情報ＨＩＴＷ０とデコード部ＤＥＣから受けたデコード情報ＬＬＷ０との論理積を演算し、演算結果を論理和回路ＯＲ２に出力する。論理積回路ＡＮＤｗ０以外の論理積回路ＡＮＤｗは、論理積回路ＡＮＤｗ０の説明における判定部ＤＪＷ、ヒットウェイ情報ＨＩＴＷおよびデコード情報ＬＬＷの末尾の数字を、論理積回路ＡＮＤｗに対応する数字に読み替えることで説明される。
【０１１３】
論理和回路ＯＲ２は、論理積回路ＡＮＤｗ０−ＡＮＤｗ１５のそれぞれの演算結果の論理和を演算し、演算結果を論理積回路ＡＮＤ２に出力する。
【０１１４】
マッチ検出部ＭＤ２は、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ｃ０内の差分情報ＰＡ［１８：１４］を、管理情報保持部ＴＡＧＬ１ｃから受ける。そして、マッチ検出部ＭＤ２は、投入部ＩＮＰから受けたアドレスＲＡＤ［１８：１４］と、第１管理情報ＩＮＦＬ１ｃ０内の差分情報ＰＡ［１８：１４］とを比較し、比較結果を論理積回路ＡＮＤ２、ＡＮＤ３に出力する。例えば、アドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが一致する場合、マッチ検出部ＭＤ２は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤ２、ＡＮＤ３に出力する。また、アドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが一致しない場合、マッチ検出部ＭＤ２は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤ２、ＡＮＤ３に出力する。
【０１１５】
論理積回路ＡＮＤ２および論理和回路ＯＲ３は、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ｃ０内のタイプコードＴＣＬ１［１：０］を、管理情報保持部ＴＡＧＬ１ｃから受ける。
【０１１６】
そして、論理積回路ＡＮＤ２は、マッチ検出部ＭＤ２による比較結果と論理和回路ＯＲ２の演算結果と管理情報保持部ＴＡＧＬ１ｃから受けたタイプコードＴＣＬ１［１：０］との論理積を演算し、演算結果をコアデータ情報ＨＴＣ０［１：０］として出力する。例えば、アクセス対象のデータがコアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されている場合、マッチ検出部ＭＤ２による比較結果と論理和回路ＯＲ２の演算結果との両方が真（例えば、論理値”１”）になる。この場合、判定部ＤＪＬ１ｃ０は、管理情報保持部ＴＡＧＬ１ｃから受けたタイプコードＴＣＬ１［１：０］をコアデータ情報ＨＴＣ０［１：０］として処理判定部ＭＰＤＪｃに出力する。
【０１１７】
また、論理和回路ＯＲ３は、タイプコードＴＣＬ１［０：０］とタイプコードＴＣＬ１［１：１］との論理和を演算し、演算結果（ＴＣＬ１［０：０］とＴＣＬ１［１：１］との論理和結果）を論理積回路ＡＮＤ３に出力する。
【０１１８】
論理積回路ＡＮＤ３は、デコード情報ＬＬＷ０−ＬＬＷ１５の各々とマッチ検出部ＭＤ２による比較結果と論理和回路ＯＲ３の演算結果との論理積を演算し、演算結果を個別所持情報ＶＡＬ０［１５：０］として論理和回路ＯＲ４に出力する。個別所持情報ＶＡＬ０［１５：０］の０番目から１５番目までの各ビットは、第２キャッシュメモリＬＬのウェイＷＡＹ０−ＷＡＹ１５にそれぞれ対応する。
【０１１９】
例えば、コアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されているデータが、第２キャッシュメモリＬＬのウェイＷＡＹ０に保持されている場合、個別所持情報ＶＡＬ０［０：０］は、真（例えば、論理値”１”）に設定される。また、コアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されているデータが、第２キャッシュメモリＬＬのウェイＷＡＹ１５に保持されている場合、個別所持情報ＶＡＬ０［１５：１５］は、真（例えば、論理値”１”）に設定される。
【０１２０】
論理和回路ＯＲ４は、判定部ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３から受けた個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ６３［１５：０］の論理和をビット毎に演算し、各ビットの演算結果を１６ビットの所持情報ＣＩＮＦ０−ＣＩＮＦ１５として選択部ＳＬＵに出力する。例えば、所持情報ＣＩＮＦ０は、個別所持情報ＶＡＬ０［０：０］−ＶＡＬ６３［０：０］の論理和結果であり、所持情報ＣＩＮＦ１５は、個別所持情報ＶＡＬ０［１５：１５］−ＶＡＬ６３［１５：１５］の論理和結果である。
【０１２１】
すなわち、各判定部ＤＪＬ１ｃのデコード部ＤＥＣ、マッチ検出部ＭＤ２、論理和回路ＯＲ３および論理積回路ＡＮＤ３と、論理和回路ＯＲ４とを含むブロックは、所持情報ＣＩＮＦを第１管理情報ＩＮＦＬ１ｃに基づいて生成する所持情報生成部の一例である。
【０１２２】
したがって、論理和回路ＯＲ３は、第１インデックス（インデックスアドレスＲＡＤ［１３：７］）毎に、データが有効であるかをタイプコードＴＣＬ１［１：０］に基づいて判定する状態判定部の一例である。また、マッチ検出部ＭＤ２は、第１インデックス毎に、アクセス対象のデータのメモリアドレスＲＡＤ［４７：０］のうちのアドレスＲＡＤ［１８：１４］と差分情報ＰＡ［１８：１４］とが互いに一致するかを判定する一致判定部の一例である。論理積回路ＡＮＤ３は、第１インデックス毎に、デコード情報ＬＬＷの各ビット（デコード情報ＬＬＷ０−ＬＬＷ１５）と、状態判定部の判定結果と、一致判定部の判定結果との論理積を演算する論理積部の一例である。論理和回路ＯＲ４は、第１インデックス毎に、複数の第１キャシュメモリＬ１の各々に対応する論理積部の演算結果の論理和を演算し、演算結果を所持情報ＣＩＮＦ０−ＣＩＮＦ１５として選択部ＳＬＵに出力する論理和部の一例である。
【０１２３】
選択部ＳＥＬ２は、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ｃ０−ＩＮＦＬ１ｃ６３内のタイプコードＴＣＬ１［１：０］を入力信号として、管理情報保持部ＴＡＧＬ１ｃから受ける。また、選択部ＳＥＬ２は、要求ウェイ情報ＲＥＱＣＷＡＹを選択信号として、投入部ＩＮＰから受ける。そして、選択部ＳＥＬ２は、管理情報保持部ＴＡＧＬ１ｃから受けた複数のタイプコードＴＣＬ１［１：０］のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＴＣＬ１［１：０］として選択する。選択部ＳＥＬ２により選択された要求データ情報ＲＴＣＬ１［１：０］は、処理判定部ＭＰＤＪｃに転送される。
【０１２４】
ここで、例えば、従来方式では、管理情報保持部ＴＡＧＬＬは、第２キャッシュメモリＬＬに保持されたデータの第１キャッシュメモリＬ１での状態を示す２ビットのコア所持情報（タイプコードＴＣＬ１［１：０］に相当する情報）を保持する。そして、従来方式では、第１キャッシュメモリＬ１に保持されたデータを保持する第２キャッシュメモリＬＬのウェイＷＡＹをリプレース対象から除外する処理（以下、除外処理とも称する）は、コア所持情報に基づいて実行される。このように、コア所持情報を管理情報保持部ＴＡＧＬＬに登録する従来方式では、コア所持情報を管理情報保持部ＴＡＧＬＬに登録しない方式に比べて、回路等を工夫することなく、除外処理を容易に実現することができる。
【０１２５】
なお、演算処理装置ＰＵでは、コア判定部ＣＤＪｃ内の回路を工夫しているため、所持情報ＣＩＮＦ０−ＣＩＮＦ１５を生成することができ、除外処理を実現することができる。例えば、コア判定部ＣＤＪｃは、個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ６３［１５：０］を生成するように工夫した判定部ＤＪＬ１ｃ０−ＤＪＬ１ｃ６３を有する。さらに、コア判定部ＣＤＪｃ内には、個別所持情報ＶＡＬ０［１５：０］−ＶＡＬ６３［１５：０］に基づいて所持情報ＣＩＮＦ０−ＣＩＮＦ１５を生成する論理和回路ＯＲ４が設けられる。所持情報ＣＩＮＦは、従来方式における管理情報保持部ＴＡＧＬＬに登録された２ビットのコア所持情報の論理和結果に対応する。このように、演算処理装置ＰＵでは、コア判定部ＣＤＪｃ内の回路等を工夫しているため、従来方式と同一または同様な情報が得られる。
【０１２６】
図１０は、図３に示したサブパイプライン制御部ＳＰＬＣｃの一例を示す。図１０に示す一点鎖線は、パイプライン処理の各ステージの境界に対応する。サブパイプライン制御部ＳＰＬＣｃは、選択部ＳＥＬ３および処理判定部ＳＰＤＪｃを有する。
【０１２７】
選択部ＳＥＬ３は、図９に示した選択部ＳＥＬ２と同一または同様である。例えば、選択部ＳＥＬ３は、管理情報保持部ＴＡＧＬ１ｃから受けた複数のタイプコードＴＣＬ１［１：０］のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＴＣＬ１［１：０］として選択する。そして、選択部ＳＥＬ３は、要求データ情報ＲＴＣＬ１［１：０］を処理判定部ＳＰＤＪｃに出力する。
【０１２８】
処理判定部ＳＰＤＪｃは、要求データ情報ＲＴＣＬ１［１：０］を選択部ＳＥＬ３から受け、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］を投入部ＩＮＰから受ける。そして、処理判定部ＳＰＤＪｃは、要求データ情報ＲＴＣＬ１［１：０］、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］に基づいて、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報ＩＮＦＬ１ｃを更新する。例えば、処理判定部ＳＰＤＪｃは、アップデート指示ＵＰＤＬ１ｃを管理情報保持部ＴＡＧＬ１ｃに出力する。
【０１２９】
図１１は、図３に示した投入部ＩＮＰが受ける処理要求の一例を示す。
【０１３０】
処理要求ＢＰＭＯに基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬのデータを無効化し、第１キャッシュメモリＬ１からのデータを外部に出力する。なお、処理要求ＢＰＭＯは、処理要求ＭＯＲＰ、ＭＯＣＯに後続する処理要求である。以下、所定の処理要求に後続する処理要求は、所定の処理要求の後続フローまたは従属フローとも称される。
【０１３１】
処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）に基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬへのライトバックを伴わないリプレース完了処理（リプレース処理の完了に関する処理）を実行する。なお、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）は、リード要求ＲＥＡＤ（以下、処理要求ＲＥＡＤとも称する）および処理要求ＭＶＩＮの従属フローである。
【０１３２】
処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）に基づく処理では、第２キャッシュメモリＬＬは、Ｌ１間転送（以下、第１キャッシュメモリＬ１間転送とも称する）により第１キャッシュメモリＬ１から追い出されるデータを無効化する。第１キャッシュメモリＬ１間転送は、２つの第１キャッシュメモリＬ１の一方に保持されたデータを他方に転送する処理である。なお、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）では、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬへのライトバックは実行されない。すなわち、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）では、第１キャッシュメモリＬ１間転送により第１キャッシュメモリＬ１から追い出されるデータは、第２キャッシュメモリＬＬに書き戻されない。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）は、処理要求ＲＥＡＤの従属フローである。
【０１３３】
処理要求ＢＩＳＲ−Ｒに基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬのデータを無効化する。
【０１３４】
処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）に基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬへのライトバックを伴うリプレース完了処理（リプレース処理の完了に関する処理）を実行する。また、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）は、処理要求ＲＥＡＤ、ＭＶＩＮの従属フローである。
【０１３５】
処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）に基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１間転送により第１キャッシュメモリＬ１から追い出されるデータを無効化する。なお、処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）では、第１キャッシュメモリＬ１から第２キャッシュメモリＬＬへのライトバックは実行される。すなわち、処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）では、第１キャッシュメモリＬ１間転送により第１キャッシュメモリＬ１から追い出されるデータは、第２キャッシュメモリＬＬに書き戻される。処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）は、処理要求ＲＥＡＤの従属フローである。
【０１３６】
処理要求ＭＯＳＲに基づく処理では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１および第２キャッシュメモリＬＬのデータを無効化して、第２キャッシュメモリＬＬのデータを外部に出力する。なお、処理要求ＭＯＳＲは、処理要求ＭＯＲＰ、ＭＯＣＯの従属フローである。
【０１３７】
処理要求ＭＯＲＰに基づく処理では、第２キャッシュメモリＬＬは、第２キャッシュメモリＬＬがキャッシュミスした場合に、第２キャッシュメモリＬＬのデータを追い出すリプレース処理を実行する。なお、処理要求ＭＯＲＰは、処理要求ＲＥＡＤの従属フローである。
【０１３８】
処理要求ＭＶＩＮに基づく処理では、第２キャッシュメモリＬＬは、第２キャッシュメモリＬＬがキャッシュミスした場合に、データを第２キャッシュメモリＬＬに登録して第１キャッシュメモリＬ１に応答する。なお、処理要求ＭＶＩＮは、処理要求ＲＥＡＤの従属フローである。
【０１３９】
処理要求ＭＯＣＯに基づく処理では、第２キャッシュメモリＬＬは、外部からのスヌープ指示に対する処理を実行する。
【０１４０】
処理要求ＲＥＡＤ（リード要求ＲＥＡＤ）に基づく処理では、第２キャッシュメモリＬＬは、第２キャッシュメモリＬＬがキャッシュヒットした場合に、データを第１キャッシュメモリＬ１に応答する。また、第２キャッシュメモリＬＬは、第２キャッシュメモリＬＬがキャッシュミスした場合に、主記憶装置等（第２キャッシュメモリＬＬより下位の階層の記憶部）にリード要求を発行する。例えば、処理要求ＲＥＡＤは、他の処理要求に従属しない新規要求フローである。
【０１４１】
図１２は、図７に示した処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］と処理要求との対応の一例を示す。図１２の網掛けは、サブパイプライン制御部ＳＰＬＣｃに投入される第１の種類の処理要求を示す。図１２に示すように、処理要求は、処理情報ＰＩＤ［３：０］で指定され、処理情報ＰＩＤ［３：０］で指定された処理要求は、オペレーション情報ＯＰＣＤ［１：０］によりさらに分類される。
【０１４２】
図１２に示す例では、”１１０１”、”１０００”、”１０１０”、”１００１”、”０１００”、”０００１”、”０１０１”のいずれかの処理情報ＰＩＤ［３：０］で指定される処理要求は、第２の種類の処理要求である。
【０１４３】
例えば、処理情報ＰＩＤ［３：０］が”１１０１”で、オペレーション情報ＯＰＣＤ［１：０］が”０１”の組み合わせは、処理要求ＲＥＡＤのうちの処理要求ＲＥＡＤ（Ｓ）を示す。処理要求ＲＥＡＤ（Ｓ）の符号における括弧内の”Ｓ”は、ＭＥＳＩプロトコルの共有（Shared）に対応する。処理要求ＲＥＡＤ（Ｓ）は、第２の種類の処理要求であり、メインパイプライン制御部ＭＰＬＣｃに投入される。
【０１４４】
処理情報ＰＩＤ［３：０］が”１１０１”で、オペレーション情報ＯＰＣＤ［１：０］が”１１”の組み合わせは、処理要求ＲＥＡＤのうちの処理要求ＲＥＡＤ（Ｅ）を示す。処理要求ＲＥＡＤ（Ｅ）の符号における括弧内の”Ｅ”は、ＭＥＳＩプロトコルの排他（Exclusive）に対応する。処理要求ＲＥＡＤ（Ｅ）は、第２の種類の処理要求であり、メインパイプライン制御部ＭＰＬＣｃに投入される。
【０１４５】
また、”００１０”の処理情報ＰＩＤ［３：０］で指定される処理要求は、第１の種類あるいは第２の種類の処理要求である。例えば、処理情報ＰＩＤ［３：０］が”００１０”で、オペレーション情報ＯＰＣＤ［１：０］が”０１”の組み合わせは、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）を示す。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）は、第１の種類の処理要求であり、サブパイプライン制御部ＳＰＬＣｃに投入される。
【０１４６】
処理情報ＰＩＤ［３：０］が”００１０”で、オペレーション情報ＯＰＣＤ［１：０］が”１０”の組み合わせは、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）を示す。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）は、第１の種類の処理要求であり、サブパイプライン制御部ＳＰＬＣｃに投入される。
【０１４７】
図１３は、図７に示した処理判定部ＭＰＤＪｃの動作の一例を示す。すなわち、図１３は、メインパイプライン制御部ＭＰＬＣｃ内の処理判定部ＭＰＤＪｃの動作の一例を示す。図１３に示す符号”Ｒ”は、データが命令保持部ＤＭＥＭから読み出されることを示し、符号”Ｗ”は、データが命令保持部ＤＭＥＭに書き込まれることを示す。
【０１４８】
また、図１３に示す符号”Ｍ”、”Ｅ”、”Ｓ”、”Ｉ”は、ＭＥＳＩプロトコルの変更（Modified）、排他（Exclusive）、共有（Shared）、無効（Invalid）にそれぞれ対応する。参照対象が複数のデータである場合（例えば、要求元以外の複数の第１キャッシュメモリＬ１のデータが参照対象である場合）、符号”Ｉ”は、参照対象のデータの全てが無効であることを示す。また、参照対象が複数のデータである場合、符号”Ｓ”は、参照対象のデータの少なくとも１つが共有である場合を示す。なお、図１３では、複数の状態のいずれでもよい場合は、符号”／”を用いて複数の状態を記載している。例えば、参照の項目の”Ｉ／Ｓ”は、参照対象のデータの全てが無効である場合、または、参照対象のデータの少なくとも１つが共有である場合を示す。また、ＤＡＴＡ応答の項目のＥ＊＊は、処理対象のデータの状態を排他にするデータ応答のうち、データなし（データが転送されない）のデータ応答を示す。
【０１４９】
処理判定部ＭＰＤＪｃは、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］に基づいて、処理要求を識別する。また、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃの参照結果として、ヒットデータ情報ＨＴＣＬＬ［１：０］およびコアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］を受ける。例えば、管理情報保持部ＴＡＧＬＬの参照結果は、ヒットデータ情報ＨＴＣＬＬ［１：０］により通知される。管理情報保持部ＴＡＧＬ１ｃの参照結果は、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］により通知される。
【０１５０】
なお、図１３に示す要求元ＴＡＧＬ１ｃは、要求元の第１キャッシュメモリＬ１に対応する管理情報保持部ＴＡＧＬ１ｃの参照結果であり、その他ＴＡＧＬ１ｃは、要求元ＴＡＧＬ１ｃ以外の管理情報保持部ＴＡＧＬ１ｃの参照結果である。要求元の第１キャッシュメモリＬ１に対応する管理情報保持部ＴＡＧＬ１ｃの参照結果は、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］のうち、要求元に対応するコアデータ情報ＨＴＣにより通知される。
【０１５１】
また、処理判定部ＭＰＤＪｃは、処理要求と、管理情報保持部ＴＡＧＬＬの参照結果と、管理情報保持部ＴＡＧＬ１ｃの参照結果（要求元ＴＡＧＬ１ｃ、その他ＴＡＧＬ１ｃ）との組み合わせに基づいて、図１３に示すように、管理情報保持部ＴＡＧＬＬ等を更新する。
【０１５２】
例えば、図１３に示した処理要求ＲＥＡＤのうち、上から４番目の処理要求ＲＥＡＤ（Ｓ）では、第２キャッシュメモリＬＬは、処理対象のデータを共有状態で保持している状態（ＴＡＧＬＬ：Ｓ）である。また、要求元の第１キャッシュメモリＬ１は、処理対象のデータを保持していない状態（要求元ＴＡＧＬ１ｃ：Ｉ）である。要求元以外の第１キャッシュメモリＬ１は、処理対象のデータを保持していない状態（その他ＴＡＧＬ１ｃ：Ｉ）、または、処理対象のデータを共有状態で保持している状態（その他ＴＡＧＬ１ｃ：Ｓ）である。
【０１５３】
この場合、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬＬに保持された情報を更新せずに維持する。そして、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬ１ｃに保持されたタイプコードＴＣＬ１［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬ１［１：０］を”Ｓ”（例えば、”０１”）に更新する。また、処理判定部ＭＰＤＪｃは、処理要求ＲＥＡＤ（Ｓ）で要求されたデータを命令保持部ＤＭＥＭから読み出し、データ付きの共有データ応答とリプレース指示ＩＲＰＬとを要求元の第１キャシュメモリＬ１に出力する。さらに、処理判定部ＭＰＤＪｃは、命令保持部ＤＭＥＭからデータを読み出したため、使用情報保持部ＬＲＵＬＬｃに保持された選択情報ＳＩＮＦを更新する。
【０１５４】
そして、リプレース指示ＩＲＰＬに基づくリプレース処理の対象データがクリーンである場合、第２キャッシュメモリＬＬは、処理要求ＲＥＡＤ（Ｓ）の後続フローとして、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）を要求元の第１キャシュメモリＬ１から受ける。また、リプレース指示ＩＲＰＬに基づくリプレース処理の対象データがダーティである場合、第２キャッシュメモリＬＬは、処理要求ＲＥＡＤ（Ｓ）の後続フローとして、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）を要求元の第１キャシュメモリＬ１から受ける。
【０１５５】
処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）は、図１２に示したように、サブパイプライン制御部ＳＰＬＣｃに投入される。一方、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）は、メインパイプライン制御部ＭＰＬＣｃに投入される。
【０１５６】
例えば、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）では、第２キャッシュメモリＬＬは、処理対象のデータを排他状態または変更状態で保持している状態（ＴＡＧＬＬ：Ｅ／Ｍ）である。また、要求元の第１キャッシュメモリＬ１は、処理対象のデータを排他状態で保持している状態（要求元ＴＡＧＬ１ｃ：Ｅ）である。
【０１５７】
この場合、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬＬに保持されたタイプコードＴＣＬＬ［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬＬ［１：０］を”Ｍ”（例えば、”１０”）に更新する。なお、管理情報保持部ＴＡＧＬ１ｃに保持されたタイプコードＴＣＬ１［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬ１［１：０］は、先行の処理要求（例えば、処理要求ＲＥＡＤ（Ｓ））に基づく処理で既に更新されている。このため、管理情報保持部ＴＡＧＬ１ｃは、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）では更新されない（図１３の−＊＊＊）。また、処理判定部ＭＰＤＪｃは、要求元の第１キャッシュメモリＬ１から受けたデータを命令保持部ＤＭＥＭに書き込み、処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）および先行の処理要求に基づく一連の処理を終了する。
【０１５８】
また、例えば、図１３に示した処理要求ＲＥＡＤのうち、上から３番目の処理要求ＲＥＡＤ（Ｅ）では、第２キャッシュメモリＬＬは、処理対象のデータを共有状態で保持している状態（ＴＡＧＬＬ：Ｓ）である。要求元の第１キャッシュメモリＬ１は、処理対象のデータを保持していない状態（要求元ＴＡＧＬ１ｃ：Ｉ）、または、処理対象のデータを共有状態で保持している状態（要求元ＴＡＧＬ１ｃ：Ｓ）である。そして、要求元以外の第１キャッシュメモリＬ１は、処理対象のデータを共有状態で保持している状態（その他ＴＡＧＬ１ｃ：Ｓ）である。
【０１５９】
この場合、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃおよび使用情報保持部ＬＲＵＬＬｃに保持された情報を更新せずに維持する。そして、処理判定部ＭＰＤＪｃは、要求元以外の第１キャッシュメモリＬ１のうち、処理対象のデータを保持している第１キャッシュメモリＬ１にスヌープ指示ＩＳＮＰを出力する。また、処理判定部ＭＰＤＪｃは、主記憶装置等の外部の装置に対して、フェッチを要求する。
【０１６０】
なお、図１３に示した後続（従属）フローの項目の処理要求ＭＯＲＰ、ＭＶＩＮ、ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）他＊は、処理要求ＭＯＲＰ、ＭＶＩＮ、ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）、ＷＲＢＫ（Ｌ１−ＣＰＢ）を示す。したがって、後続フローは、処理要求ＭＯＲＰ、ＭＶＩＮ、ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）、ＷＲＢＫ（Ｌ１−ＣＰＢ）のいずれかである。
【０１６１】
例えば、処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）では、第２キャッシュメモリＬＬは、処理対象のデータを排他状態または変更状態で保持している状態（ＴＡＧＬＬ：Ｅ／Ｍ）である。また、要求元以外の第１キャッシュメモリＬ１のうち、スヌープ指示ＩＳＮＰを受けた第１キャッシュメモリＬ１は、処理対象のデータを排他状態で保持している状態（その他ＴＡＧＬ１ｃ：Ｅ）である。
【０１６２】
この場合、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬＬに保持されたタイプコードＴＣＬＬ［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬＬ［１：０］を”Ｍ”（例えば、”１０”）に更新する。さらに、処理判定部ＭＰＤＪｃは、管理情報保持部ＴＡＧＬ１ｃに保持されたタイプコードＴＣＬ１［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬ１［１：０］を”Ｉ”（例えば、”００”）に更新する。また、処理判定部ＭＰＤＪｃは、第１キャッシュメモリＬ１（スヌープ指示ＩＳＮＰを受けた第１キャッシュメモリＬ１）から受けたデータを命令保持部ＤＭＥＭに書き込み、処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）の先行の処理要求ＲＥＡＤを再投入する。
【０１６３】
図１４は、図１０に示した処理判定部ＳＰＤＪｃの動作の一例を示す。すなわち、図１４は、サブパイプライン制御部ＳＰＬＣｃ内の処理判定部ＳＰＤＪｃの動作の一例を示す。図１４に示す符号”Ｍ”、”Ｅ”、”Ｓ”、”Ｉ”等の意味は、図１３と同一または同様である。サブパイプライン制御部ＳＰＬＣｃでは、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）および処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）のいずれかが実行される。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）および処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）では、管理情報保持部ＴＡＧＬＬは参照されない（図１４のＴＡＧＬＬ＊）。
【０１６４】
例えば、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）では、要求元の第１キャッシュメモリＬ１は、処理対象のデータを共有状態または排他状態で保持している状態（要求元ＴＡＧＬ１ｃ：Ｓ／Ｅ）である。この場合、処理判定部ＳＰＤＪｃは、管理情報保持部ＴＡＧＬ１ｃに保持された情報を更新せずに維持して、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）および先行の処理要求に基づく一連の処理を終了する。なお、管理情報保持部ＴＡＧＬ１ｃに保持されたタイプコードＴＣＬ１［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬ１［１：０］は、先行の処理要求（例えば、処理要求ＲＥＡＤ（Ｓ））に基づく処理で既に更新されている。このため、管理情報保持部ＴＡＧＬ１ｃは、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）では更新されない（図１４の−＊＊）。
【０１６５】
また、例えば、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）では、要求元以外の第１キャッシュメモリＬ１は、処理対象のデータを共有状態または排他状態で保持している状態（その他ＴＡＧＬ１ｃ：Ｓ／Ｅ）である。この場合、処理判定部ＳＰＤＪｃは、管理情報保持部ＴＡＧＬ１ｃに保持されたタイプコードＴＣＬ１［１：０］のうち、処理対象のデータに対応するタイプコードＴＣＬ１［１：０］を”Ｉ”（例えば、”００”）に更新する。そして、処理判定部ＳＰＤＪｃは、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）の先行の処理要求ＲＥＡＤを再投入する。
【０１６６】
図１５は、図６に示した使用情報保持部ＬＲＵＬＬｃの更新の一例を示す。なお、図１５では、使用情報保持部ＬＲＵＬＬｃ内の１つのインデックスアドレスＰＡ［１８：７］の選択情報ＳＩＮＦ１−ＳＩＮＦ１６（ＳＩＮＦ１［３：０］−ＳＩＮＦ１６［３：０］）を示す。図１５に示す選択情報ＳＩＮＦのビット値は、ウェイＷＡＹの末尾の数字に対応する。例えば、ビット値”００００”の選択情報ＳＩＮＦ１６は、ウェイＷＡＹ０が登録されていることを示す。また、例えば、ビット値”１１００”の選択情報ＳＩＮＦ１５は、ウェイＷＡＹ１２が登録されていることを示す。
【０１６７】
最近使用されたウェイＷＡＹは、使用情報保持部ＬＲＵＬＬｃ内の選択情報ＳＩＮＦ１−ＳＩＮＦ１６のうち、選択情報ＳＩＮＦ１６に登録される。例えば、使用情報保持部ＬＲＵＬＬｃは、ウェイＷＡＹが参照される度に、参照されたウェイＷＡＹが登録された選択情報ＳＩＮＦより符号の末尾の数字が大きい選択情報ＳＩＮＦに登録されたウェイＷＡＹを、図１５のＯＬＤ側（図の左側）にシフトする。そして、使用情報保持部ＬＲＵＬＬｃは、最新のウェイＷＡＹ（参照されたＷＡＹ）を選択情報ＳＩＮＦ１６（図の一番右側）に登録する。
【０１６８】
図１６は、図３に示した演算処理装置ＰＵの動作の一例を示す。すなわち、図１６は、演算処理装置ＰＵの制御方法の一例を示す。なお、図１６は、処理要求ＲＥＡＤ（リード要求ＲＥＡＤ）を第２キャッシュメモリＬＬが受けた場合の第２キャッシュメモリＬＬの動作を示す。
【０１６９】
ステップＳ１００では、投入部ＩＮＰは、複数の処理要求を調停する処理、複数の処理要求を第１の種類の処理要求と第２の種類の処理要求とに分類する処理等のパイプライン投入制御を実行し、動作をステップＳ１１０に移す。
【０１７０】
ステップＳ１１０では、投入部ＩＮＰは、メインパイプライン制御部ＭＰＬＣｃに処理要求ＲＥＡＤを投入する。これにより、メインパイプライン制御部ＭＰＬＣｃは、ステップＳ１２０の処理を実行する。
【０１７１】
ステップＳ１２０では、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬＬを参照して、第２キャッシュメモリＬＬがキャッシュヒットするか否かを判定する。例えば、ヒット判定部ＨＤＪは、図７、図８で説明したように、管理情報保持部ＴＡＧＬＬを参照して、要求アドレスＲＡＤ［４７：０］で指定されるデータが第２キャッシュメモリＬＬでキャッシュヒットするか否かを判定する。そして、処理判定部ＭＰＤＪｃは、ヒット判定部ＨＤＪによる判定結果であるヒットデータ情報ＨＴＣＬＬ［１：０］に基づいて、第２キャッシュメモリＬＬがキャッシュヒットするか否かを判定する。
【０１７２】
第２キャッシュメモリＬＬがキャッシュヒットする場合、第２キャッシュメモリＬＬの動作は、ステップＳ１３０に移る。一方、第２キャッシュメモリＬＬがキャッシュヒットしない場合（第２キャッシュメモリＬＬがキャッシュミスする場合）、第２キャッシュメモリＬＬの動作は、ステップＳ３００に移る。
【０１７３】
ステップＳ１３０では、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬ１ｃを参照して、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを判定する。すなわち、メインパイプライン制御部ＭＰＬＣｃは、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１が要求アドレスＲＡＤ［４７：０］で指定されるデータを保持しているか否かを判定する。
【０１７４】
例えば、コア判定部ＣＤＪｃは、図７、図９で説明したように、管理情報保持部ＴＡＧＬ１ｃを参照して、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれかが要求アドレスＲＡＤ［４７：０］で指定されるデータを保持しているかを検出する。そして、処理判定部ＭＰＤＪｃは、コア判定部ＣＤＪｃによる検出結果であるコアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］に基づいて、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを判定する。
【０１７５】
処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれかがキャッシュヒットする場合、第２キャッシュメモリＬＬの動作は、ステップＳ２００に移る。すなわち、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１が要求アドレスＲＡＤ［４７：０］で指定されるデータを保持している場合、第２キャッシュメモリＬＬの動作は、ステップＳ２００に移る。
【０１７６】
一方、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれもキャッシュヒットしない場合（要求元以外の第１キャッシュメモリＬ１の全てがキャッシュミスする場合）、第２キャッシュメモリＬＬの動作は、ステップＳ４００に移る。すなわち、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のいずれも要求アドレスＲＡＤ［４７：０］で指定されるデータを保持していない場合、第２キャッシュメモリＬＬの動作は、ステップＳ４００に移る。
【０１７７】
ステップＳ２００では、第２キャッシュメモリＬＬは、Ｌ１間転送に関する処理を実行する。これにより、要求アドレスＲＡＤ［４７：０］で指定されるデータは、要求元以外の第１キャッシュメモリＬ１から追い出される。なお、Ｌ１間転送に関する処理の詳細は、図１７で説明する。
【０１７８】
Ｌ１間転送に関する処理では、図１７に示すステップＳ２４４またはステップＳ２５４において、サブパイプライン制御部ＳＰＬＣｃまたはメインパイプライン制御部ＭＰＬＣｃは、処理要求ＲＥＡＤの再投入指示を投入部ＩＮＰに通知する。サブパイプライン制御部ＳＰＬＣｃまたはメインパイプライン制御部ＭＰＬＣｃが処理要求ＲＥＡＤの再投入指示を投入部ＩＮＰに通知した後、第２キャッシュメモリＬＬの動作は、ステップＳ１００に戻る。
【０１７９】
ステップＳ３００では、投入部ＩＮＰは、メインパイプライン制御部ＭＰＬＣｃに処理要求ＭＯＲＰを投入する。これにより、メインパイプライン制御部ＭＰＬＣｃは、第２キャッシュメモリＬＬからデータを追い出すリプレース処理を実行する。メインパイプライン制御部ＭＰＬＣｃに処理要求ＭＯＲＰが投入された後、第２キャッシュメモリＬＬの動作は、ステップＳ３１０に移る。
【０１８０】
ステップＳ３１０では、第２キャッシュメモリＬＬは、リプレース処理の完了と、要求アドレスＲＡＤ［４７：０］で指定されるデータを保持している主記憶装置等の外部装置からのデータ応答を待ち、データ応答等を受けた後、動作をステップＳ３２０に移す。
【０１８１】
ステップＳ３２０では、投入部ＩＮＰは、メインパイプライン制御部ＭＰＬＣｃに処理要求ＭＶＩＮを投入する。これにより、メインパイプライン制御部ＭＰＬＣｃは、要求アドレスＲＡＤ［４７：０］で指定されるデータを第２キャッシュメモリＬＬに登録する処理を実行する。第２キャッシュメモリＬＬは、要求アドレスＲＡＤ［４７：０］で指定されるデータを登録した後、動作をステップＳ４００に移す。
【０１８２】
ステップＳ４００では、メインパイプライン制御部ＭＰＬＣｃは、要求アドレスＲＡＤ［４７：０］で指定されるデータを要求元の第１キャッシュメモリＬ１に転送するとともに、リプレース指示を要求元の第１キャッシュメモリＬ１に通知する。さらに、メインパイプライン制御部ＭＰＬＣｃは、使用情報保持部ＬＲＵＬＬｃおよび管理情報保持部ＴＡＧＬ１ｃに保持された情報を更新する。
【０１８３】
例えば、メインパイプライン制御部ＭＰＬＣｃは、要求アドレスＲＡＤ［１３：７］で指定される第１管理情報ＩＮＦＬ１ｃ０−ＩＮＦＬ１ｃ６３のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定される第１管理情報ＩＮＦＬ１ｃを更新する。これにより、要求アドレスＲＡＤ［４７：０］に基づくウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］と、タイプコードＴＣＬ１［１：０］とが、管理情報保持部ＴＡＧＬ１ｃに登録される。ステップＳ４００の処理が実行された後、第２キャッシュメモリＬＬの動作は、ステップＳ４１０に移る。
【０１８４】
ステップＳ４１０では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１でのリプレース処理の完了を待ち、第１キャッシュメモリＬ１でのリプレース処理が完了した後、動作をステップＳ４２０に移す。
【０１８５】
ステップＳ４２０では、第２キャッシュメモリＬＬは、Ｌ１リプレース完了処理を実行する。Ｌ１リプレース完了処理は、第１キャッシュメモリＬ１でのリプレース処理の完了に伴い第２キャッシュメモリＬＬで実行される処理である。Ｌ１リプレース完了処理の終了により、処理要求ＲＥＡＤに伴う一連の処理は、終了する。なお、Ｌ１リプレース完了処理の詳細は、図１８で説明する。
【０１８６】
図１７は、図１６に示したＬ１間転送に関する処理（ステップＳ２００の処理）の一例を示す。図１７以降では、処理要求ＲＥＡＤの要求元以外の第１キャッシュメモリＬ１のうち、要求アドレスＲＡＤ［４７：０］で指定される転送データを保持している第１キャッシュメモリＬ１は、転送元の第１キャッシュメモリＬ１とも称される。
【０１８７】
ステップＳ２１０では、メインパイプライン制御部ＭＰＬＣｃは、転送元の第１キャッシュメモリＬ１にスヌープ指示ＩＳＮＰを通知し、転送元の第１キャッシュメモリＬ１に対するスヌープロックを実行する指示をスヌープロック部ＳＮＰに出力する。以下、スヌープロックを実行する指示は、スヌープロックの指示とも称される。
【０１８８】
次に、ステップＳ２２０では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１でのスヌープ処理の完了を待ち、第１キャッシュメモリＬ１でのスヌープ処理が完了した後、動作をステップＳ２３０に移す。
【０１８９】
ステップＳ２３０では、第２キャッシュメモリＬＬは、転送データがクリーンか否かを判定する。例えば、転送元の第１キャッシュメモリＬ１は、スヌープ処理の結果として、転送データがクリーンか否かを示す処理結果を第２キャッシュメモリＬＬに出力する。そして、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１から受けた処理結果に基づいて、転送データがクリーンか否かを判定する。
【０１９０】
転送データがクリーンである場合、第２キャッシュメモリＬＬの動作は、ステップＳ２４０に移る。一方、転送データがクリーンでない場合（転送データがダーティである場合）、第２キャッシュメモリＬＬの動作は、ステップＳ２５０に移る。
【０１９１】
ステップＳ２４０では、投入部ＩＮＰは、サブパイプライン制御部ＳＰＬＣｃに処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）を投入する。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）を受けたサブパイプライン制御部ＳＰＬＣｃは、ステップＳ２４２の処理を実行する。
【０１９２】
ステップＳ２４２では、サブパイプライン制御部ＳＰＬＣｃは、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１を”Ｉ”（無効）に更新し、スヌープロックを解除する指示をスヌープロック部ＳＮＰに出力する。以下、スヌープロックを解除する指示は、スヌープロックの解除指示とも称される。
【０１９３】
なお、ステップＳ２４２で更新される第１管理情報ＩＮＦＬ１ｃは、転送データを保持した転送元の第１キャッシュメモリＬ１のウェイに対応する第１管理情報ＩＮＦＬ１ｃのうち、要求アドレスＲＡＤ［１３：７］で指定される第１管理情報ＩＮＦＬ１ｃである。ステップＳ２４２の処理が実行された後、第２キャッシュメモリＬＬの動作は、ステップＳ２４４に移る。
【０１９４】
ステップＳ２４４では、サブパイプライン制御部ＳＰＬＣｃは、処理要求ＲＥＡＤの再投入指示を投入部ＩＮＰに出力し、Ｌ１間転送に関する処理を終了する。これにより、投入部ＩＮＰは、図１６に示したステップＳ１００の処理を実行し、ステップＳ１１０において、メインパイプライン制御部ＭＰＬＣｃに処理要求ＲＥＡＤを再投入する。
【０１９５】
ステップＳ２５０では、投入部ＩＮＰは、メインパイプライン制御部ＭＰＬＣｃに処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）を投入する。処理要求ＷＲＢＫ（Ｌ１−ＣＰＢ）を受けたメインパイプライン制御部ＭＰＬＣｃは、ステップＳ２５２の処理を実行する。
【０１９６】
ステップＳ２５２では、メインパイプライン制御部ＭＰＬＣｃは、第１キャッシュメモリＬ１から転送された転送データをデータ保持部ＤＭＥＭに書き込む。そして、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬＬに保持された第２管理情報ＩＮＦＬＬ内のタイプコードＴＣＬＬを”Ｍ”（変更）に更新する。これにより、要求アドレスＲＡＤ［１８：７］で指定される第２管理情報ＩＮＦＬＬ０−ＩＮＦＬＬ１５のうち、要求アドレスＲＡＤ［４７：１９］に一致するタグアドレスＰＡ［４７：１９］を有する第２管理情報ＩＮＦＬＬが更新される。
【０１９７】
また、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１を”Ｉ”（無効）に更新し、スヌープロックの解除指示をスヌープロック部ＳＮＰに出力する。
【０１９８】
なお、ステップＳ２５２で更新される第１管理情報ＩＮＦＬ１ｃは、転送データを保持した転送元の第１キャッシュメモリＬ１のウェイに対応する第１管理情報ＩＮＦＬ１ｃのうち、要求アドレスＲＡＤ［１３：７］で指定される第１管理情報ＩＮＦＬ１ｃである。ステップＳ２５２の処理が実行された後、第２キャッシュメモリＬＬの動作は、ステップＳ２５４に移る。
【０１９９】
ステップＳ２５４では、メインパイプライン制御部ＭＰＬＣｃは、処理要求ＲＥＡＤの再投入指示を投入部ＩＮＰに出力し、Ｌ１間転送に関する処理を終了する。これにより、投入部ＩＮＰは、図１６に示したステップＳ１００の処理を実行し、ステップＳ１１０において、メインパイプライン制御部ＭＰＬＣｃに処理要求ＲＥＡＤを再投入する。
【０２００】
図１８は、図１６に示したＬ１リプレース完了処理（ステップＳ４２０の処理）の一例を示す。
【０２０１】
ステップＳ４３０では、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１でのリプレース処理により第１キャッシュメモリＬ１から追い出されるリプレースデータがクリーンか否かを判定する。例えば、処理要求ＲＥＡＤの要求元の第１キャッシュメモリＬ１は、リプレース処理の結果として、リプレースデータがクリーンか否かを示す処理結果を第２キャッシュメモリＬＬに出力する。そして、第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１から受けた処理結果に基づいて、リプレースデータがクリーンか否かを判定する。
【０２０２】
リプレースデータがクリーンである場合、第２キャッシュメモリＬＬの動作は、ステップＳ４４０に移る。一方、リプレースデータがクリーンでない場合（リプレースデータがダーティである場合）、第２キャッシュメモリＬＬの動作は、ステップＳ４５０に移る。
【０２０３】
ステップＳ４４０では、投入部ＩＮＰは、サブパイプライン制御部ＳＰＬＣｃに処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）を投入する。処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）を受けたサブパイプライン制御部ＳＰＬＣｃは、ステップＳ４４２の処理を実行する。
【０２０４】
ステップＳ４４２では、サブパイプライン制御部ＳＰＬＣｃは、スヌープロックの解除指示をスヌープロック部ＳＮＰに出力し、Ｌ１リプレース完了処理を終了する。
【０２０５】
ステップＳ４５０では、投入部ＩＮＰは、メインパイプライン制御部ＭＰＬＣｃに処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）を投入する。処理要求ＷＲＢＫ（Ｌ１−ＲＰＬ）を受けたメインパイプライン制御部ＭＰＬＣｃは、ステップＳ４５２の処理を実行する。
【０２０６】
ステップＳ４５２では、メインパイプライン制御部ＭＰＬＣｃは、第１キャッシュメモリＬ１から転送されたリプレースデータをデータ保持部ＤＭＥＭに書き込む。そして、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬＬに保持された第２管理情報ＩＮＦＬＬ内のタイプコードＴＣＬＬを”Ｍ”（変更）に更新する。これにより、要求アドレスＲＡＤ［１８：７］で指定される第２管理情報ＩＮＦＬＬ０−ＩＮＦＬＬ１５のうち、要求アドレスＲＡＤ［４７：１９］に一致するタグアドレスＰＡ［４７：１９］を有する第２管理情報ＩＮＦＬＬが更新される。
【０２０７】
また、メインパイプライン制御部ＭＰＬＣｃは、スヌープロックの解除指示をスヌープロック部ＳＮＰに出力し、Ｌ１リプレース完了処理を終了する。なお、演算処理装置ＰＵの動作は、図１６から図１８に示す例に限定されない。
【０２０８】
図１９は、リプレースデータがクリーンである場合の演算処理装置ＰＵの動作の一例を示す。
【０２０９】
コアＣＯＲＥ０は、第１キャッシュメモリＬ１がキャッシュミスしたため、処理要求ＲＥＡＤおよび要求アドレスＲＡＤを、投入部ＩＮＰを介してメインパイプライン制御部ＭＰＬＣｃに転送する（図１９（ａ））。
【０２１０】
メインパイプライン制御部ＭＰＬＣｃは、要求アドレスＲＡＤに対応する第２管理情報ＩＮＦＬＬを管理情報保持部ＴＡＧＬＬから検索し、要求アドレスＲＡＤに対応する第１管理情報ＩＮＦＬ１ｃを管理情報保持部ＴＡＧＬ１ｃから検索する。
【０２１１】
図１９に示す例では、管理情報保持部ＴＡＧＬＬがヒットし、管理情報保持部ＴＡＧＬ１ｃがミスする。すなわち、要求アドレスＲＡＤで指定される要求データは、第２キャッシュメモリＬＬに保持され、複数のコアＣＯＲＥの第１キャッシュメモリＬ１のいずれにも保持されていない。この場合、メインパイプライン制御部ＭＰＬＣｃは、データ保持部ＭＥＭにアクセスして、要求データを読み出す（図１９（ｂ））。
【０２１２】
そして、メインパイプライン制御部ＭＰＬＣｃは、データ保持部ＭＥＭから読み出した要求データをコアＣＯＲＥ０に転送する（図１９（ｃ））。コアＣＯＲＥ０内のプロセッサコアＰＣＯＲは、第２キャッシュメモリＬＬから転送された要求データを用いて演算等を実行する。
【０２１３】
また、メインパイプライン制御部ＭＰＬＣｃは、管理情報保持部ＴＡＧＬＬ、ＴＡＧＬ１ｃに保持された情報の更新（処理要求ＲＥＡＤに基づく上書き更新）を実行する。そして、メインパイプライン制御部ＭＰＬＣｃは、処理要求ＲＥＡＤの要求元のコアＣＯＲＥ０に、データ応答コマンドとリプレース指示ＩＲＰＬとを出力する（図１９（ｄ））。また、メインパイプライン制御部ＭＰＬＣｃは、スヌープロック部ＳＮＰにコアＣＯＲＥ０のスヌープロックの指示を出力する（図１９（ｅ））。
【０２１４】
コアＣＯＲＥ０は、第１キャッシュメモリＬ１への要求データの登録とリプレース処理とが完了した場合、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）を、投入部ＩＮＰを介してサブパイプライン制御部ＳＰＬＣｃに転送する（図１９（ｆ））。なお、図１９に示す例では、リプレース処理で第１キャッシュメモリＬ１から追い出したリプレースデータがクリーンであるため、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）がサブパイプライン制御部ＳＰＬＣｃに転送される。
【０２１５】
管理情報保持部ＴＡＧＬＬに保持された第２管理情報ＩＮＦＬＬは、第１キャッシュメモリＬ１の状態に関する情報を含まないため、更新されない。また、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報ＩＮＦＬ１ｃが処理要求ＲＥＡＤに基づく処理で既に更新されているため、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）では、第１管理情報ＩＮＦＬ１ｃは、更新されない。このため、サブパイプライン制御部ＳＰＬＣｃは、スヌープロック部ＳＮＰにコアＣＯＲＥ０のスヌープロックの解除指示を出力して（図１９（ｇ））、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）に基づく処理を終了する。
【０２１６】
このように、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）がメインパイプライン制御部ＭＰＬＣｃに投入されない。このため、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）がサブパイプライン制御部ＳＰＬＣｃに投入されるサイクルに、処理要求ＲＥＡＤをメインパイプライン制御部ＭＰＬＣｃに投入することができる。これにより、処理要求ＲＥＡＤをメインパイプライン制御部ＭＰＬＣｃに毎サイクル投入することができる。
【０２１７】
図２０は、Ｌ１間転送時の演算処理装置ＰＵの動作の一例を示す。なお、図２０は、コアＣＯＲＥ１内の第１キャッシュメモリＬ１からコアＣＯＲＥ０内の第１キャッシュメモリＬ１にデータを転送するＬ１間転送時の演算処理装置ＰＵの動作の一例を示す。図２０に示す例では、コアＣＯＲＥ１内の第１キャッシュメモリＬ１に保持された転送データは、クリーンである。
【０２１８】
コアＣＯＲＥ０は、第１キャッシュメモリＬ１がキャッシュミスしたため、処理要求ＲＥＡＤおよび要求アドレスＲＡＤを、投入部ＩＮＰを介してメインパイプライン制御部ＭＰＬＣｃに転送する（図２０（ａ））。
【０２１９】
メインパイプライン制御部ＭＰＬＣｃは、要求アドレスＲＡＤに対応する第２管理情報ＩＮＦＬＬを管理情報保持部ＴＡＧＬＬから検索し、要求アドレスＲＡＤに対応する第１管理情報ＩＮＦＬ１ｃを管理情報保持部ＴＡＧＬ１ｃから検索する。
【０２２０】
図２０に示す例では、管理情報保持部ＴＡＧＬＬがヒットし、管理情報保持部ＴＡＧＬ１ｃがコアＣＯＲＥ１に対応する第１管理情報ＩＮＦＬ１ｃでヒットする。なお、ヒットした第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１ｃは、排他状態を示す。すなわち、要求アドレスＲＡＤで指定される要求データは、第２キャッシュメモリＬＬに保持され、さらに、コアＣＯＲＥ１の第１キャッシュメモリＬ１に排他状態で保持されている。この場合、メインパイプライン制御部ＭＰＬＣｃは、コアＣＯＲＥ１にスヌープ指示ＩＳＮＰを出力する（図２０（ｂ））。また、メインパイプライン制御部ＭＰＬＣｃは、スヌープロック部ＳＮＰにコアＣＯＲＥ１のスヌープロックの指示を出力する（図２０（ｃ））。
【０２２１】
コアＣＯＲＥ１は、スヌープ処理が完了した場合、転送データがクリーンであるため、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＣＰＢ）を、投入部ＩＮＰを介してサブパイプライン制御部ＳＰＬＣｃに転送する（図２０（ｄ））。サブパイプライン制御部ＳＰＬＣｃは、管理情報保持部ＴＡＧＬ１ｃに保持された第１管理情報ＩＮＦＬ１ｃのうち、コアＣＯＲＥ１内の第１キャッシュメモリＬ１に保持された転送データの第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１ｃを無効に更新する。
【０２２２】
サブパイプライン制御部ＳＰＬＣｃは、転送データの第１管理情報ＩＮＦＬ１ｃ内のタイプコードＴＣＬ１ｃを無効に更新した後、処理要求ＲＥＡＤの再投入指示を投入部ＩＮＰに出力する（図２０（ｅ））。また、サブパイプライン制御部ＳＰＬＣｃは、スヌープロック部ＳＮＰにコアＣＯＲＥ１のスヌープロックの解除指示を出力する（図２０（ｆ））。コアＣＯＲＥ１のスヌープロックを解除した後の動作は、図１９に示した動作と同一または同様である。
【０２２３】
図２１は、図３に示した第１キャッシュメモリＬ１でキャッシュミスが連続した場合のパイプライン制御部の動作の一例を示す。なお、図２１に示す例では、第１キャッシュメモリＬ１から追い出されるリプレースデータは、全てクリーンである。また、図２１では、１サイクル（ｃｙｃｌｅ）のデータ転送量の上限が１２８バイトであるとして説明する。
【０２２４】
第２キャッシュメモリＬＬでは、処理要求ＢＩＳＲ−Ｌ専用のサブパイプライン制御部ＳＰＬＣｃが設けられたため、処理要求ＲＥＡＤと処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）との両方を毎サイクル投入することができる。例えば、処理要求ＲＥＡＤは、メインパイプライン制御部ＭＰＬＣｃに毎サイクル投入され、処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）は、サブパイプラインＳＰＬＣｃに毎サイクル投入される。制御上、データアクセスを伴わないサイクルが発生しないため、１２８バイト／サイクルのスループットを実現することができる。
【０２２５】
これに対し、サブパイプライン制御部ＳＰＬＣｃを含まない比較例では、１２８バイト／サイクルのスループットを実現するため、例えば、偶数アドレス用と奇数アドレス用との２つのパイプライン制御部が設けられる。比較例の各パイプライン制御部は、処理要求ＲＥＡＤと処理要求ＢＩＳＲ−Ｌ（Ｌ１−ＲＰＬ）とが交互に投入されるため、データアクセスを伴わないサイクルが発生する。処理要求ＲＥＡＤに基づく処理では、例えば、１２８バイト／ブロック（ｂｌｏｃｋ）のデータが転送される。この場合、１つのパイプライン制御部のスループットが６４バイト／サイクルである。このため、比較例では、２つのパイプライン制御部を合わせて１２８バイト／サイクルのスループットを実現する。
【０２２６】
比較例では、２つのパイプライン制御部が互いに同一または同様な処理を実行するため、２つのパイプライン制御部を含むキャッシュメモリの回路規模は、第２キャッシュメモリＬＬに比べて増加する。すなわち、第２キャッシュメモリＬＬは、メインパイプライン制御部ＭＰＬＣｃとメインパイプライン制御部ＭＰＬＣｃに比べて回路規模の小さいサブパイプライン制御部ＳＰＬＣｃとを用いることにより、回路規模の増加を抑制しつつ、スループットを向上できる。
【０２２７】
以上、図３から図２１に示す実施形態においても、図１および図２に示した実施形態と同様の効果を得ることができる。例えば、第２キャッシュメモリＬＬは、第１の種類の処理要求に基づく処理（例えば、ライトバックを伴わないリプレース完了処理）と、リード要求等の第２の種類の処理要求に基づく処理とを並列に実行できる。これにより、第１の種類の処理要求に基づく処理と第２の種類の処理要求に基づく処理とを並列に実行できない手法（例えば、図２１に示した比較例）に比べて、回路規模の増加を抑制しつつ、第２キャッシュメモリＬＬのスループットを向上できる。
【０２２８】
図２２は、演算処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図２１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２２に示す演算処理装置ＰＵは、例えば、命令を実行するＣＰＵ等のプロセッサである。
【０２２９】
演算処理装置ＰＵは、複数のコアＣＯＲＥ（ＣＯＲＥ０、ＣＯＲＥ１、・・・、ＣＯＲＥ７）と、第２キャッシュメモリＬＬと、主記憶制御部ＭＣＮＴＬと、入出力制御部ＩＯＣＮＴＬと、ＣＰＵインタフェース部ＣＩＦとを有する。コアＣＯＲＥ、主記憶制御部ＭＣＮＴＬ、入出力制御部ＩＯＣＮＴＬおよびＣＰＵインタフェース部ＣＩＦは、図３に示したコアＣＯＲＥ、主記憶制御部ＭＣＮＴＬ、入出力制御部ＩＯＣＮＴＬおよびＣＰＵインタフェース部ＣＩＦと同一または同様である。例えば、各コアＣＯＲＥは、プロセッサコアＰＣＯＲと、第２キャッシュメモリＬＬに比べて高速にアクセス可能な第１キャッシュメモリＬ１とを有する。
【０２３０】
第２キャッシュメモリＬＬは、第１キャッシュメモリＬ１より下位の階層の２次キャッシュメモリであり、複数のコアＣＯＲＥに共有される。例えば、第２キャッシュメモリＬＬは、データ保持部ＤＭＥＭ、管理情報保持部ＴＡＧＬ１ａ、ＴＡＧＬＬおよび使用情報保持部ＬＲＵＬＬａを有する。さらに、第２キャッシュメモリＬＬは、投入部ＩＮＰ、メインパイプライン制御部ＭＰＬＣａ、サブパイプライン制御部ＳＰＬＣａおよびスヌープロック部ＳＮＰを有する。
【０２３１】
データ保持部ＤＭＥＭ、管理情報保持部ＴＡＧＬＬ、投入部ＩＮＰおよびスヌープロック部ＳＮＰは、図３に示した管理情報保持部ＴＡＧＬＬ、投入部ＩＮＰおよびスヌープロック部ＳＮＰと同一または同様である。使用情報保持部ＬＲＵＬＬａは、図６に示した選択部ＳＬＵが使用情報保持部ＬＲＵＬＬｃから省かれることを除いて、図６に示した使用情報保持部ＬＲＵＬＬｃと同一または同様である。管理情報保持部ＴＡＧＬ１ａおよびメインパイプライン制御部ＭＰＬＣａの詳細は、図２３で説明する。サブパイプライン制御部ＳＰＬＣｃの詳細は、図２５で説明する。
【０２３２】
図２３は、図２２に示したメインパイプライン制御部ＭＰＬＣａの一例を示す図である。図２３に示す一点鎖線は、パイプライン処理の各ステージの境界に対応する。なお、図２３に示す管理情報保持部ＴＡＧＬ１ａは、図５に示した第１管理情報ＩＮＦＬ１ｃの代わりに第１管理情報ＩＮＦＬ１ａを保持することを除いて、図５に示した管理情報保持部ＴＡＧＬ１ｃと同一または同様である。各第１管理情報ＩＮＦＬ１ａは、図５に示したウェイ情報ＷＡＹＬＬ［３：０］および差分情報ＰＡ［１８：１４］の代わりに、第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］を有する。第１キャッシュメモリＬ１のタグアドレスＰＡ［４７：１４］は、メモリアドレスＲＡＤ［４７：０］の一部分（１４から４７ビット）のビット群で表される。すなわち、各第１管理情報ＩＮＦＬ１ａは、タグアドレスＰＡ［４７：１４］およびタイプコードＴＣＬ１［１：０］を有する。
【０２３３】
メインパイプライン制御部ＭＰＬＣａは、図７に示したコア判定部ＣＤＪｃおよび処理判定部ＭＰＤＪｃの代わりに、コア判定部ＣＤＪａおよび処理判定部ＭＰＤＪａを有する。メインパイプライン制御部ＭＰＬＣａのその他の構成は、図７に示したメインパイプライン制御部ＭＰＬＣｃと同一または同様である。例えば、メインパイプライン制御部ＭＰＬＣａは、ヒット判定部ＨＤＪ、コア判定部ＣＤＪａおよび処理判定部ＭＰＤＪａを有する。
【０２３４】
コア判定部ＣＤＪａは、複数の第１キャッシュメモリＬ１のいずれかがキャッシュヒットするか否かを判定する。例えば、コア判定部ＣＤＪａは、インデックスアドレスＲＡＤ［１３：７］で指定される第１管理情報ＩＮＦＬ１ａ０−ＩＮＦＬ１ａ６３を管理情報保持部ＴＡＧＬ１ａから受ける。また、コア判定部ＣＤＪａは、アドレスＲＡＤ［４７：１４］と、第１キャッシュメモリＬ１から追い出すリプレースデータが保持された第１キャッシュメモリＬ１のウェイの番号等を示す要求ウェイ情報ＲＥＱＣＷＡＹとを投入部ＩＮＰから受ける。
【０２３５】
例えば、コア判定部ＣＤＪａは、要求ウェイ情報ＲＥＱＣＷＡＹと、各第１管理情報ＩＮＦＬ１ａ内のタイプコードＴＣＬ１［１：０］とを用いて、要求データ情報ＲＴＣＬ１［１：０］を生成する。また、コア判定部ＣＤＪａは、アドレスＲＡＤ［４７：１４］と各第１管理情報ＩＮＦＬ１ａとを用いて、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］を生成する。コアデータ情報ＨＴＣの末尾の数字は、第１管理情報ＩＮＦＬ１ａの末尾の数字に対応する。なお、第１管理情報ＩＮＦＬ１ａの末尾の数字の意味は、図５に示した第１管理情報ＩＮＦＬ１ｃの末尾の数字の意味と同一である。
【０２３６】
例えば、コア判定部ＣＤＪａは、アドレスＲＡＤ［４７：１４］と管理情報保持部ＴＡＧＬ１ａから受けた各第１管理情報ＩＮＦＬ１ａ内のタグアドレスＰＡ［４７：１４］とを比較する。管理情報保持部ＴＡＧＬ１ａから受けた第１管理情報ＩＮＦＬ１ａ内のタグアドレスＰＡ［４７：１４］のいずれかがアドレスＲＡＤ［４７：１４］と一致した場合、コア判定部ＣＤＪａは、第１キャッシュメモリＬ１のいずれかがキャッシュヒットしたと判定する。
【０２３７】
コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］は、図３で説明したように、第１キャッシュメモリＬ１でキャッシュヒットしたデータ（第１キャッシュメモリＬ１に保持されたデータ）の状態を示す。なお、キャッシュミスしたデータに対応するコアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］は、例えば、”００”に設定される。
【０２３８】
要求データ情報ＲＴＣＬ１［１：０］は、図３で説明したように、アドレスＲＡＤ［１３：７］で指定されたデータのうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定された第１キャッシュメモリＬ１のウェイに保持されたデータの状態を示す。コア判定部ＣＤＪａの詳細は、図２４で説明する。
【０２３９】
処理判定部ＭＰＤＪａは、図６に示した使用情報保持部ＬＲＵＬＬｃの代わりに使用情報保持部ＬＲＵＬＬａに保持された選択情報ＳＩＮＦを更新することを除いて、図３に示した処理判定部ＭＰＤＪｃと同一または同様である。例えば、処理判定部ＭＰＤＪａは、ヒットデータ情報ＨＴＣＬＬ［１：０］をヒット判定部ＨＤＪから受け、コアデータ情報ＨＴＣ０［１：０］−ＨＴＣ６３［１：０］および要求データ情報ＲＴＣＬ１［１：０］をコア判定部ＣＤＪａから受ける。さらに、処理判定部ＭＰＤＪａは、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］を投入部ＩＮＰから受ける。
【０２４０】
そして、例えば、処理判定部ＭＰＤＪａは、アップデート指示ＵＰＤＬＬを管理情報保持部ＴＡＧＬＬに出力し、アップデート指示ＵＰＤＬ１ａを管理情報保持部ＴＡＧＬ１ａに出力する。また、処理判定部ＭＰＤＪａは、アップデート指示ＵＰＤＬＲＵを使用情報保持部ＬＲＵＬＬａに出力する。
【０２４１】
図２４は、図２３に示したコア判定部ＣＤＪａの一例を示す。コア判定部ＣＤＪａは、複数の判定部ＤＪＬ１ａ（ＤＪＬ１ａ０−ＤＪＬ１ａ６３）と、選択部ＳＥＬ２とを有する。判定部ＤＪＬ１ａの末尾の数字は、第１管理情報ＩＮＦＬ１ａの末尾の数字に対応する。複数の判定部ＤＪＬ１ａは互いに同一または同様であるため、判定部ＤＪＬ１ａ０について説明する。
【０２４２】
判定部ＤＪＬ１ａ０は、マッチ検出部ＭＤ３および論理積回路ＡＮＤ４を有する。マッチ検出部ＭＤ３は、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ａ０内のタグアドレスＰＡ［４７：１４］を、管理情報保持部ＴＡＧＬ１ａから受ける。そして、マッチ検出部ＭＤ３は、投入部ＩＮＰから受けたアドレスＲＡＤ［４７：１４］と、第１管理情報ＩＮＦＬ１ａ０内のタグアドレスＰＡ［４７：１４］とを比較し、比較結果を論理積回路ＡＮＤ４に出力する。例えば、アドレスＲＡＤ［４７：１４］とタグアドレスＰＡ［４７：１４］とが一致する場合、マッチ検出部ＭＤ３は、真を示す情報（例えば、論理値”１”）を比較結果として論理積回路ＡＮＤ４に出力する。また、アドレスＲＡＤ［４７：１４］とタグアドレスＰＡ［４７：１４］とが一致しない場合、マッチ検出部ＭＤ３は、偽を示す情報（例えば、論理値”０”）を比較結果として論理積回路ＡＮＤ４に出力する。
【０２４３】
論理積回路ＡＮＤ４は、アドレスＲＡＤ［１３：７］で指定されるインデックスアドレスＰＡ［１３：７］に対応する第１管理情報ＩＮＦＬ１ａ０内のタイプコードＴＣＬ１［１：０］を、管理情報保持部ＴＡＧＬ１ａから受ける。
【０２４４】
そして、論理積回路ＡＮＤ４は、マッチ検出部ＭＤ３による比較結果と管理情報保持部ＴＡＧＬ１ａから受けたタイプコードＴＣＬ１［１：０］との論理積を演算し、演算結果をコアデータ情報ＨＴＣ０［１：０］として出力する。例えば、アクセス対象のデータがコアＣＯＲＥ０の第１キャッシュメモリＬ１における０番目のウェイに保持されている場合、マッチ検出部ＭＤ３による比較結果は、真（例えば、論理値”１”）になる。この場合、判定部ＤＪＬ１ａ０は、管理情報保持部ＴＡＧＬ１ａから受けたタイプコードＴＣＬ１［１：０］をコアデータ情報ＨＴＣ０［１：０］として処理判定部ＭＰＤＪａに出力する。
【０２４５】
選択部ＳＥＬ２は、図９に示した選択部ＳＥＬ２と同一または同様である。例えば、選択部ＳＥＬ２は、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＴＣＬ１［１：０］として、処理判定部ＭＰＤＪａに転送する。
【０２４６】
第１管理情報ＩＮＦＬ１ａには、図５等に示したウェイ情報ＷＡＹＬＬ［３：０］が含まれないため、コア判定部ＣＤＪａは、図９等に示した所持情報ＣＩＮＦ０−ＣＩＮＦ１５を生成しない。このため、図２２に示した演算処理装置ＰＵでは、第１キャッシュメモリＬ１に保持されたデータを保持する第２キャッシュメモリＬＬのウェイＷＡＹをリプレース対象から除外する処理は、実行されない。換言すれば、ウェイ情報ＷＡＹＬＬ［３：０］を含む第１管理情報ＩＮＦＬ１ｃを保持する管理情報保持部ＴＡＧＬ１ｃを用いることにより、図６で説明したように、キャッシュヒットの頻度が低下することを抑止することができる。
【０２４７】
図２５は、図２２に示したサブパイプライン制御部ＳＰＬＣａの一例を示す図である。図２５に示す一点鎖線は、パイプライン処理の各ステージの境界に対応する。サブパイプライン制御部ＳＰＬＣａは、選択部ＳＥＬ３および処理判定部ＳＰＤＪａを有する。
【０２４８】
選択部ＳＥＬ３は、図１０に示した選択部ＳＥＬ３と同一または同様である。例えば、選択部ＳＥＬ３は、管理情報保持部ＴＡＧＬ１ａから受けた複数のタイプコードＴＣＬ１［１：０］のうち、要求ウェイ情報ＲＥＱＣＷＡＹで指定されるタイプコードＴＣＬ１［１：０］を要求データ情報ＲＴＣＬ１［１：０］として選択する。そして、選択部ＳＥＬ３は、要求データ情報ＲＴＣＬ１［１：０］を処理判定部ＳＰＤＪａに出力する。
【０２４９】
処理判定部ＳＰＤＪａは、要求データ情報ＲＴＣＬ１［１：０］を選択部ＳＥＬ３から受け、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］を投入部ＩＮＰから受ける。そして、処理判定部ＳＰＤＪａは、要求データ情報ＲＴＣＬ１［１：０］、処理情報ＰＩＤ［３：０］およびオペレーション情報ＯＰＣＤ［１：０］に基づいて、管理情報保持部ＴＡＧＬ１ａに保持された第１管理情報ＩＮＦＬ１ａを更新する。例えば、処理判定部ＳＰＤＪａは、アップデート指示ＵＰＤＬ１ａを管理情報保持部ＴＡＧＬ１ａに出力する。
【０２５０】
以上、図２２から図２５に示す実施形態においても、図１および図２に示した実施形態と同様の効果を得ることができる。例えば、第２キャッシュメモリＬＬは、第１の種類の処理要求に基づく処理（例えば、ライトバックを伴わないリプレース完了処理）と、リード要求等の第２の種類の処理要求に基づく処理とを並列に実行できる。これにより、第１の種類の処理要求に基づく処理と第２の種類の処理要求に基づく処理とを並列に実行できない手法（例えば、図２１に示した比較例）に比べて、回路規模の増加を抑制しつつ、第２キャッシュメモリＬＬのスループットを向上できる。
【０２５１】
図２６は、図３および図２２に示した演算処理装置ＰＵが搭載されるシステムの一例を示す。システムＳＹＳは、例えば、サーバ等の情報処理装置である。システムＳＹＳは、複数のシステムボードＳＢＤ（ＳＢＤ１、ＳＢＤ２）を有する。システムボードＳＢＤ１、ＳＢＤ２は、互いに同一または同様の構成である。
【０２５２】
各システムボードＳＢＤは、複数の演算処理装置ＰＵと、複数の演算処理装置ＰＵにそれぞれ接続される複数の入出力装置ＩＯＵと、複数の演算処理装置ＰＵにそれぞれ接続される複数のメモリＭＥＭと、ＣＰＵ接続インタフェース装置ＣＩＦＵとを有する。
【０２５３】
複数の演算処理装置ＰＵ（図３または図２２に示した演算処理装置ＰＵ）は、各演算処理装置ＰＵ内のＣＰＵインタフェース部ＣＩＦを介して互いに接続される。また、複数の演算処理装置ＰＵ（より詳細には、演算処理装置ＰＵ内のＣＰＵインタフェース部ＣＩＦ）は、ＣＰＵ接続インタフェース装置ＣＩＦＵに接続される。そして、システムボードＳＢＤ１のＣＰＵ接続インタフェース装置ＣＩＦＵおよびシステムボードＳＢＤ２のＣＰＵ接続インタフェース装置ＣＩＦＵは、互いに接続される。
【０２５４】
入出力装置ＩＯＵは、例えば、演算処理装置ＰＵにデータを入力するキーボード等の入力装置および演算処理装置ＰＵの処理結果を外部に出力するディスプレイ等の出力装置であり、演算処理装置ＰＵ内の出力制御部ＩＯＣＮＴＬに接続される。メモリＭＥＭは、例えば、第２キャッシュメモリＬＬより下位の階層の主記憶装置であり、演算処理装置ＰＵ内の主記憶制御部ＭＣＮＴＬに接続される。
【０２５５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２５６】
１０‥演算処理装置；２０‥プロセッサコア；４０‥第１キャッシュメモリ；６０‥第２キャッシュメモリ；ＡＮＤ１−ＡＮＤ３、ＡＮＤｗ０−ＡＮＤｗ１５‥論理積回路；ＣＤＪａ、ＣＤＪｃ‥コア判定部；ＣＩＦ‥ＣＰＵインタフェース部；ＣＩＦＵ‥ＣＰＵ接続インタフェース装置；ＣＯＲＥ‥コア；ＤＥＣ‥デコード部；ＤＪＬ１ａ、ＤＪＬ１ｃ、ＤＪＷ‥判定部；ＤＭＥＭ‥データ保持部；ＨＤＪ‥ヒット判定部；ＩＮＰ‥投入部；ＩＯＣＮＴＬ‥入出力制御部；ＩＯＵ‥入出力装置；Ｌ１‥第１キャッシュメモリ；ＬＬ‥第２キャッシュメモリ；ＬＲＵＬＬａ、ＬＲＵＬＬｃ‥使用情報保持部；ＭＣＮＴＬ‥主記憶制御部；ＭＤ１−ＭＤ３‥マッチ検出部；ＭＥＭ‥メモリ；ＭＰＤＪａ、ＭＰＤＪｃ、ＳＰＤＪａ、ＳＰＤＪｃ‥処理判定部；ＭＰＬＣａ、ＭＰＬＣｃ‥メインパイプライン制御部；ＯＲ１−ＯＲ４‥論理和回路；ＰＣＯＲ‥プロセッサコア；ＰＵ‥演算処理装置；ＳＢＤ１、ＳＢＤ２‥システムボード；ＳＥＬ１−ＳＥＬ３、ＳＬＵ‥選択部；ＳＮＰ‥スヌープロック部；ＳＰＬＣａ、ＳＰＬＣｃ‥サブパイプライン制御部；ＴＡＧＬ１ａ、ＴＡＧＬ１ｃ、ＴＡＧＬＬ‥管理情報保持部
【図１】
0006468121.tif 000002
【図２】
0006468121.tif 000003
【図３】
0006468121.tif 000004
【図４】
0006468121.tif 000005
【図５】
0006468121.tif 000006
【図６】
0006468121.tif 000007
【図７】
0006468121.tif 000008
【図８】
0006468121.tif 000009
【図９】
0006468121.tif 000010
【図１０】
0006468121.tif 000011
【図１１】
0006468121.tif 000012
【図１２】
0006468121.tif 000013
【図１３】
0006468121.tif 000014
【図１４】
0006468121.tif 000015
【図１５】
0006468121.tif 000016
【図１６】
0006468121.tif 000017
【図１７】
0006468121.tif 000018
【図１８】
0006468121.tif 000019
【図１９】
0006468121.tif 000020
【図２０】
0006468121.tif 000021
【図２１】
0006468121.tif 000022
【図２２】
0006468121.tif 000023
【図２３】
0006468121.tif 000024
【図２４】
0006468121.tif 000025
【図２５】
0006468121.tif 000026
【図２６】
0006468121.tif 000027