(57)【要約】【課題】マルチプロセッサでのＬｉｎｕｘ動作時は、ひとつのタスクがＣＰＵの数だけ実行される可能性があり、それに相当する数の外部メモリへのリフィル要求およびキャッシュ間共有によるペナルティーが発生する可能性があるため、ユニプロセッサよりマルチプロセッサの方がキャッシュの局所性によるミス率が増えることが予想される【解決手段】キャッシュアクセスミスが発生した場合のキャッシュ間のスヌープアクセスで、他のローカルキャッシュがデータをキャッシュしているとして、偽りの情報を伝達すると同時に、そのローカルキャッシュがリフィル動作を行うことによって、複数のローカルキャッシュに対して同時にリフィル動作を行う擬似データ整合性管理部を有しており、命令とデータローカルキャッシュ間のキャッシュ同時リフィル、および、整合性管理を行うことができる擬似データ整合性管理部を提供する。【選択図】  図１
2006085292.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算装置であって、
各プロセッサは、ＣＰＵとローカルキャッシュとを有し、
各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、
各キャッシュ制御手段は、
共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、
キャッシュ制御手段のうちの少なくとも１つのキャッシュ制御手段は、
他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視し、
前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記バス制御装置を介して他のプロセッサに通知する
ことを特徴とする演算装置。
【請求項２】
前記少なくとも１つのキャッシュ制御手段は、さらに、前記ローカルキャッシュアクセス信号に対応するデータをメモリから読み出すためのメモリ読み出し要求を共有メモリ制御装置を介してメモリに発行する
ことを特徴とする請求項１記載の演算装置。
【請求項３】
前記少なくとも１つのキャッシュ制御手段と、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータをキャッシュメモリにそれぞれ格納する
ことを特徴とする請求項２記載の演算装置。
【請求項４】
前記少なくとも１つのキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、所属するプロセッサ内のキャッシュメモリに格納し、
前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、それが属するキャッシュメモリに格納しないでＣＰＵに出力する
ことを特徴とする請求項２記載の演算装置。
【請求項５】
各キャッシュ制御手段は、
同じプロセッサに属するＣＰＵからローカルキャッシュへのメモリアクセス内容を共有バス制御装置に伝達するキャッシュアクセス伝達手段と、
他のプロセッサ内のローカルキャッシュである第１ローカルキャッシュにおけるキャッシュミスの発生を通知するために他のプロセッサ内のキャッシュアクセス伝達手段から前記共有バス制御装置に出力された第１ローカルキャッシュアクセス信号を監視し、前記第１ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュである第２ローカルキャッシュに記憶されているかどうかを検索するキャッシュアクセス監視手段と、
キャッシュアクセス監視手段によって前記第１ローカルキャッシュアクセス信号に対応するデータが、前記第２ローカルキャッシュに記憶されているかどうか検索された場合に、前記検索結果に応じて前記ローカルキャッシュ間のデータ整合性を維持するために前記第２ローカルキャッシュの制御および前記共有バス制御装置とのデータ転送を行うデータ整合性管理手段と、
前記第１ローカルキャッシュアクセス信号に対応するデータが、前記第２ローカルキャッシュに記憶されているかどうかにかかわらず、前記第２ローカルキャッシュがキャッシュリフィル動作を行うかどうかを判定し、リフィル動作を行うと判定した場合に、前記擬似情報を通知し、前記ローカルキャッシュ間のデータ整合性を維持するために前記第２ローカルキャッシュの制御および前記共有バス制御装置とのデータ転送を行う擬似データ整合性管理手段を有している
ことを特徴とする請求項１記載の演算装置。
【請求項６】
前記キャッシュアクセス伝達手段は、ＣＰＵからローカルキャッシュへのメモリアクセスであって、非キャッシュ読み出しおよび書き込みアクセス、キャッシュ書き込みアクセス、もしくは、キャッシュ読み出しアクセスのキャッシュミスアクセスの場合に、前記ローカルキャッシュアクセス信号を前記共有バス制御装置に伝達することを特徴とする請求項５に記載の演算処理装置。
【請求項７】
前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達された非キャッシュ読み出しアクセス、および、キャッシュ読み出しのキャッシュミスアクセスに対して前記第２ローカルキャッシュの前記キャッシュメモリが検索され、前記第２ローカルキャッシュが、前記第１ローカルキャッシュのアクセス対象データを記憶している場合に、前記第２ローカルキャッシュが前記共有バス制御装置に前記対象データ、もしくは、対象エントリのデータの出力するよう制御することを特徴とする請求項５に記載の演算処理装置。
【請求項８】
前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達されたキャッシュ書き込みのキャッシュヒットアクセスに対して前記第２ローカルキャッシュの前記キャッシュメモリが検索され、前記第２ローカルキャッシュが、前記第１ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第２ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新するか、もしくは、前記第２ローカルキャッシュの対象エントリの記憶情報を無効化する、
ことを特徴とする請求項５に記載の演算処理装置。
【請求項９】
前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達されたキャッシュ書き込みのキャッシュミスアクセスに対して前記第２ローカルキャッシュのキャッシュメモリが検索され、前記第２ローカルキャッシュが、前記第１ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第２ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新し、前記第２ローカルキャッシュの対象エントリのデータを前記共有バス制御装置に出力するか、もしくは、前記第２ローカルキャッシュの前記対象エントリの記憶情報を無効化する、
有することを特徴とする請求項５に記載の演算処理装置。
【請求項１０】
前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達された非キャッシュ書き込みアクセス対して前記第２ローカルキャッシュの前記キャッシュメモリが検索され、前記第２ローカルキャッシュが、前記第１ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第２ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新するか、もしくは、前記第２ローカルキャッシュの対象エントリの記憶情報を無効化することを特徴とする請求項５に記載の演算処理装置。
【請求項１１】
前記プロセッサは、所属するプロセッサ以外のプロセッサに前記擬似情報による整合性管理を要求する第１擬似データ整合性管理要求信号を出力する第１擬似データ整合性管理要求手段を有し、
前記擬似データ整合性管理手段は、他のプロセッサから共有バス制御装置を介して入力される第１擬似データ整合性管理要求信号に従って、前記擬似情報を通知するか否かを判定する
ことを特徴とする請求項５に記載の演算処理装置。
【請求項１２】
前記擬似データ整合性管理手段は、前記第１ローカルキャッシュのアクセス内容が、前記第２ローカルキャッシュのキャッシュメモリに記憶されていないことが検索された後、さらに前記第１擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定することを特徴とした請求項１１に記載の演算処理装置。
【請求項１３】
前記プロセッサは、さらに所属するプロセッサ以外のプロセッサに前記擬似情報による整合性管理を要求する第２擬似データ整合性管理要求信号を出力する第２擬似データ整合性管理要求手段を有し、
前記擬似データ整合性管理手段は、他のプロセッサから共有バス制御装置を介して入力される第１および第２擬似データ整合性管理要求信号に基づいて、前記擬似情報を通知するか否かを判定する
ことを特徴とする請求項１１に記載の演算処理装置。
【請求項１４】
前記擬似データ整合性管理手段は、前記第１ローカルキャッシュのアクセス内容が、前記第２ローカルキャッシュのキャッシュメモリに記憶されていないことが検索された後、さらに前記第２擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定することを特徴とした請求項１３に記載の演算処理装置。
【請求項１５】
前記擬似データ整合性管理手段は、前記第１および第２擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定することを特徴とした請求項１３に記載の演算処理装置。
【請求項１６】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令のデコード情報によって、前記第１擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１１に記載の演算処理装置。
【請求項１７】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時に、そのＣＰＵに該当するプロセッサ状態記憶手段によって管理された第１擬似データ整合性管理要求モード信号によって、前記第１擬似データ整合性管理要求信号を有効とするかどうかを決定する特徴とする請求項１１に記載の演算処理装置。
【請求項１８】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時に、そのＣＰＵに該当するプロセッサ状態記憶手段によって管理された第１擬似データ整合性管理要求モード信号と、前記第１擬似データ整合性管理要求モード信号の状態を維持することを要求する第１擬似データ整合性管理要求モードロック信号とによって、前記第１擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１１に記載の演算処理装置。
【請求項１９】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の論理アドレス空間アクセス領域によって、第１擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１１に記載の演算処理装置。
【請求項２０】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセス領域によって、第１擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１１に記載の演算処理装置。
【請求項２１】
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセス領域によって、第２擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１３に記載の演算処理装置。
【請求項２２】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の論理アドレス空間アクセス領域によって、第１擬似データ整合性管理要求信号を有効とするかどうかを決定し、
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセス領域によって、第２擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１３に記載の演算処理装置。
【請求項２３】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセス領域によって、第１擬似データ整合性管理要求信号を有効とするかどうかを決定し、
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセス領域によって、第２擬似データ整合性管理要求信号を有効とするかどうかを決定することを特徴とする請求項１３に記載の演算処理装置。
【請求項２４】
前記第１擬似データ整合性管理要求手段は、
前記ＣＰＵのロードストア命令実行時の論理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、
前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、
前記論理アドレス空間アクセスアドレスと前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第１擬似データ整合性管理要求信号を有効とすることを特徴とする請求項１１に記載の演算処理装置。
【請求項２５】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第１擬似データ整合性管理要求信号を有効とすることを特徴とする請求項１１に記載の演算処理装置。
【請求項２６】
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第２擬似データ整合性管理要求アドレス記憶手段と、前記第２擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第２擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第２擬似データ整合性管理要求アドレス記憶手段と前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第２擬似データ整合性管理要求信号を有効とすることを特徴とする請求項１３に記載の演算処理装置。
【請求項２７】
前記第１擬似データ整合性管理要求手段が、前記ＣＰＵのロードストア命令実行時の論理アドレス空間アクセスアドレスに対して、第１擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記論理アドレス空間アクセスアドレスと前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第１擬似データ整合性管理要求信号を有効とし、
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第２擬似データ整合性管理要求アドレス記憶手段と、前記第２擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第２擬似データ整合性管理要求アドレスマスク記憶手段によって、前記物理アドレス空間アクセスと前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第２擬似データ整合性管理要求アドレス記憶手段と前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第２擬似データ整合性管理要求信号を有効とすることを特徴とする請求項１３に記載の演算処理装置。
【請求項２８】
前記第１擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第１擬似データ整合性管理要求信号を有効とし、
前記第２擬似データ整合性管理要求手段は、前記ＣＰＵのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第２擬似データ整合性管理要求アドレス記憶手段と、前記第２擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第２擬似データ整合性管理要求アドレスマスク記憶手段によって、前記物理アドレス空間アクセスアドレスと前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第２擬似データ整合性管理要求アドレス記憶手段と前記第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第２擬似データ整合性管理要求信号を有効とすることを特徴とする請求項１３に記載の演算処理装置。
【請求項２９】
前記プロセッサは、論理アドレス空間から物理アドレス空間に変換するページテーブルを記憶したＴＬＢを有し、前記ＴＬＢの各エントリには、第１擬似データ整合性管理要求フラグ記憶手段を有しており、前記第１擬似データ整合性管理要求手段が、前記ＣＰＵのロードストア命令実行時に、前記ＴＬＢによって論理アドレスから物理アドレスを生成される場合、前記ＴＬＢの該当エントリに格納された前記第１擬似データ整合性管理要求フラグ記憶手段によって、第１擬似データ整合性管理要求信号を有効にすることを特徴とする請求項１１または１３に記載の演算処理装置。
【請求項３０】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュによって読み出されたリフィル対象データを前記第１ローカルキャッシュの前記キャッシュメモリと、前記第２ローカルキャッシュの前記キャッシュメモリの両方に格納することを特徴とする請求項１６から請求項３０の何れかに記載の演算処理装置。
【請求項３１】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュによって読み出されたリフィル対象データを前記第１ローカルキャッシュの前記キャッシュメモリには格納せず、前記第２ローカルキャッシュの前記キャッシュメモリに格納することを特徴とする請求項１６から請求項３０の何れかに記載の演算処理装置。
【請求項３２】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュによって読み出されたリフィル対象データを前記第２ローカルキャッシュの前記キャッシュメモリに格納し、前記第１ローカルキャッシュの前記キャッシュメモリに関しては、格納するかどうかを判定する擬似データ整合性管理共有判定を生成する擬似データ整合性管理共有判定手段を有することを特徴とした請求項１６から請求項３０の何れかに記載の演算処理装置。
【請求項３３】
前記擬似データ整合性管理共有判定手段は、前記ＣＰＵのロードストア命令のデコード情報によって、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを特徴とする請求項３２に記載の演算処理装置。
【請求項３４】
前記擬似データ整合性管理共有判定手段は、前記ＣＰＵのロードストア命令実行時に、そのＣＰＵに該当するプロセッサ状態記憶手段によって管理された、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを請求項３３に記載の演算処理装置。
【請求項３５】
前記プロセッサは、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時の、論理アドレス空間アクセス領域によって判定される、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを請求項３３に記載の演算処理装置。
【請求項３６】
前記プロセッサは、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時の、物理アドレス空間アクセス領域によって判定される、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを特徴とする請求項３３に記載の演算処理装置。
【請求項３７】
前記プロセッサは、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時の論理アドレス空間に対して、前記擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記論理アドレス空間と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを特徴とする請求項３３に記載の演算処理装置。
【請求項３８】
前記プロセッサは、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時の物理アドレス空間に対して、前記擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを特徴とする請求項３３に記載の演算処理装置。
【請求項３９】
前記プロセッサは、前記擬似データ整合性管理共有判定手段が、論理アドレス空間から物理アドレス空間に変換するページテーブルを記憶したＴＬＢを有し、前記ＴＬＢの各エントリには、擬似データ整合性管理共有フラグ記憶手段を有しており、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時に、前記ＴＬＢによって論理アドレスから物理アドレスを生成される場合、前記ＴＬＢの該当エントリに格納された前記擬似データ整合性管理共有フラグ記憶手段によって、前記擬似データ整合性管理判定信号を有効とするかどうかを決定する前記擬似データ整合性管理共有判定手段を有していることを特徴とする請求項３３に記載の演算処理装置。
【請求項４０】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数が、前記データ整合性管理手段によって発行されるリフィル回数と等しいことを特徴とする請求項１６から請求項２９の何れかに記載の演算処理装置。
【請求項４１】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数が、前記データ整合性管理手段によって発行されるリフィル回数と異なることを特徴とする請求項１６から請求項２９の何れかに記載の演算処理装置。
【請求項４２】
前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する擬似データ整合性管理要求回数記憶手段によって決定されることを特徴とする請求項１６から請求項２９の何れかに記載の演算処理装置。
【請求項４３】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令のデコード情報によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを特徴とする請求項４２に記載の演算処理装置。
【請求項４４】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令実行時に、そのＣＰＵに該当するプロセッサ状態記憶手段によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを請求項４２に記載の演算処理装置。
【請求項４５】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令実行時の、論理アドレス空間アクセス領域によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを請求項４２に記載の演算処理装置。
【請求項４６】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令実行時の、物理アドレス空間アクセス領域によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを特徴とする請求項４２に記載の演算処理装置。
【請求項４７】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令実行時の論理アドレス空間に対して、前記擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記論理アドレス空間と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを特徴とする請求項４２に記載の演算処理装置。
【請求項４８】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記ＣＰＵのロードストア命令実行時の物理アドレス空間に対して、前記擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第１擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第１擬似データ整合性管理要求アドレス記憶手段と前記第１擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを特徴とする請求項４２に記載の演算処理装置。
【請求項４９】
前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、論理アドレス空間から物理アドレス空間に変換するページテーブルを記憶したＴＬＢを有し、前記ＴＬＢの各エントリには、擬似データ整合性管理共有フラグ記憶手段を有しており、前記擬似データ整合性管理共有判定手段が、前記ＣＰＵのロードストア命令実行時に、前記ＴＬＢによって論理アドレスから物理アドレスを生成される場合、前記ＴＬＢの該当エントリに格納された前記擬似データ整合性管理共有フラグ記憶手段によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有していることを特徴とする請求項４２に記載の演算処理装置。
【請求項５０】
前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第２キャッシュメモリにデータを格納することを可能とし、前記第２キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第２データ整合性管理手段は、該当メモリを更新し、外部メモリに対して、書き込みを発行することを特徴とする請求項５から請求項１６の何れかに記載の演算処理装置。
【請求項５１】
前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第２キャッシュメモリにデータを格納することを可能とし、前記第２キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第２データ整合性管理手段は、該当メモリを無効にし、外部メモリに対して、書き込みを発行することを特徴とする請求項５から請求項１６の何れかに記載の演算処理装置。
【請求項５２】
前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第２キャッシュメモリにデータを格納することを可能とし、前記第２キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第２データ整合性管理手段は、該当メモリを無効にするか更新するかを決定する擬似データ整合性管理書き込みモード記憶手段有し、前記擬似データ整合性管理書き込みモード記憶手段によって、該当エントリのキャッシュ状態を変更し、外部メモリに対して、書き込みを発行することを特徴とする請求項５から請求項１６の何れかに記載の演算処理装置。
【請求項５３】
複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算装置におけるデータ整合性管理方法であって、
前記各プロセッサは、ＣＰＵとローカルキャッシュとを有し、各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、各キャッシュ制御手段は、共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、
前記データ整合性管理方法は、
各キャッシュ制御手段が、他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視するステップと、
キャッシュ制御手段のうちの少なくとも１つのキャッシュ制御手段が、前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記バス制御装置を介して他のプロセッサに通知するステップとを有することを特徴とするデータ整合性管理方法。
【請求項５４】
請求項５３に記載のデータ整合性管理方法を、複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算処理装置に実行させることを特徴とするプログラム。、
【請求項５５】
プログラムを生成するコンパイラであって、
前記プログラムは、複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算装置に実行され、
他のプロセッサおけるキャッシュミスの発生を通知するローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記バス制御装置を介して他のプロセッサに通知することを要求する命令を含むプログラムを生成する
ことを特徴とするコンパイラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関し、特に半導体チップ内の複数のプロセッサから任意のローカルキャッシュを使用するのに適用して有効な技術に関する。
【背景技術】
【０００２】
従来の対称型マルチプロセッサは、各プロセッサのローカルキャッシュが共有メモリに接続された共有バスを介してそれぞれ接続されている。この構成の一般的なキャッシュ制御方法では、あるＣＰＵでキャッシュリフィルを行った場合でも、それ以外のローカルキャッシュは、リフィルアクセスを行わない。なぜなら、それぞれのローカルキャッシュは、キャッシュ間のデータ整合性を維持する目的でのみ、キャッシュ間データ転送を行うためであり、もし、キャッシュリフィルした場合、不要なデータをキャッシュにもつ可能性があるためこのような制御が行われている。それに対して、Ｌｉｎｕｘなどのマルチプロセッサに対応した一般的なＯＳの管理下においては、それぞれのタスクが任意のＣＰＵで実行されることを想定してタスクのスケジューリングが行われている。つまり、あるＣＰＵですでにキャッシュリフィルを行っているが、他のＣＰＵでは、キャッシュリフィルは行われていないため、タスクスケジューリングによって、ユニプロセッサ構成時ではヒットしていたキャッシュアクセスも、他のＣＰＵに割り当てられた時点でキャッシュミスが発生する。
【特許文献１】特開昭６３−２４０６４９号公報（第一図）
【特許文献２】特開平５−１９７６２２号公報（第一図）
【非特許文献１】John L. Hennessy & David A. Patterson "Computer Architecture A Quantitative Approach Third Edition" Chapter Six Multiprocessors and Thread-Level Parallelism Snooping Protocols [P.551]
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、マルチプロセッサの一般的なスヌープキャッシュ機構は、局所性の特徴がユニプロセッサのキャッシュ機構より劣ることが考えられる。なぜなら、ハードウェア制御は、各ＣＰＵがデータアクセスを必要とした時点で対象データをローカルキャッシュに格納するが、それぞれのＣＰＵのローカルキャッシュにその対象データを格納するわけではない。それに対して、ソフトウェア制御（Ｌｉｎｕｘなど）が、どのＣＰＵにスケジューリングされるかは、通常動的に決定する方式を採用している。つまり、新しいタスクの生成から完了までの間に、ひとつのタスクがＣＰＵの数だけ（もしくはそれ以上）実行される可能性があり、それに相当する数の外部メモリへのリフィル要求およびキャッシュ間共有によるペナルティーが発生する可能性があるため、ユニプロセッサよりマルチプロセッサの方がキャッシュの局所性によるミス率が増えることが予想される。
【０００４】
ただし、マルチプロセッサシステムの各ローカルキャッシュでは、そういう状態であっても、できる限りキャッシュ間のデータ転送、キャッシュリフィルを行うことによって、キャッシュミスペナルティーを削減する方法がとられているため、２ＣＰＵ構成のマルチプロセッサや、キャッシュ間データ転送のペナルティーがローカルキャッシュヒット時のサイクル数と変わらない場合は、キャッシュ間データ転送による大きな問題は発生しない。
【０００５】
以上のように、マルチプロセッサ化によるキャッシュの局所性を向上させることが必要である。
【０００６】
本発明の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、２つ以上のローカルキャッシュが同時にキャッシュリフィルを行うことによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させ、キャッシュ間データ転送による共有バスの競合を削減することができる演算処理装置を提供することにある。
【０００７】
本発明の他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第１ローカルキャッシュにアクセスされた命令の種類によって判定され、２つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令によって偽りの共有情報を使用するかどうかを決定するため、キャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
【０００８】
本発明の他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第１ローカルキャッシュにアクセスしたＣＰＵのプロセッサ状態を記憶するレジスタのモード信号によって判定され、２つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令セットの追加を必要とすることなくキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
【０００９】
本発明の他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第１ローカルキャッシュにアクセスしたロードストア実行時のアクセスアドレス空間によって判定され、２つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令セットを追加やプロセッサ状態レジスタのモードを変更することなく、キャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
【００１０】
本発明の他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、論理アドレス空間から物理アドレス空間に変換するＴＬＢに記憶された第１擬似データ整合性管理要求フラグによって判定され、２つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、ページ単位で、かつ、プロセス単位で、偽りの共有情報を制御することによってキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
【００１１】
本発明の他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第１ローカルキャッシュ、もしくは、第２ローカルキャッシュにアクセスされるアドレスと第１もしくは第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積が、第1もしくは第２擬似データ整合性管理要求アドレス記憶手段に設定されているアドレスと第１もしくは第２擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、一致するかどうかによって判定され、２つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、ＴＬＢを持たないＣＰＵでも偽りの共有情報を制御することによってキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
【００１２】
本発明のさらに他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第２ローカルキャッシュのみがキャッシュリフィルされ、第１ローカルキャッシュは、キャッシュスルーでＣＰＵに対象データを伝達することによって、同じデータを参照するＣＰＵが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを選択的に第１ローカルキャッシュに格納しておくことができる演算処理装置を提供することにある。
【００１３】
本発明のさらに他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第２ローカルキャッシュが第２キャッシュリフィル回数記憶手段によって決定されるリフィル回数にてキャッシュリフィルが実行され、第１ローカルキャッシュは、キャッシュスルーでＣＰＵに対象データを伝達することによって、同じデータを参照するＣＰＵが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを選択的に第１ローカルキャッシュに格納しておくことができ、第２ローカルキャッシュに格納される偽りのデータリフィル回数を動的に変更することができることによって大容量データアクセスに対する参照局所性を向上する演算処理装置を提供することにある。
【００１４】
本発明のさらに他の目的は、キャッシュリフィル要求を出した第１ローカルキャッシュに対して、共有バスを監視する第２ローカルキャッシュが、偽りの共有（キャッシュヒット）情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第２ローカルキャッシュのみが第２キャッシュリフィル回数記憶手段によって決定されるリフィル回数にてキャッシュリフィルされ、第１ローカルキャッシュは、キャッシュスルーでＣＰＵに対象データを伝達し、第１ローカルキャッシュに接続されたＣＰＵからの書き込みが発生した場合は、第２ローカルキャッシュを無効化するか、更新するかを決定し、外部メモリには、更新データの書き込み要求を発行することによって、同じデータを参照するＣＰＵが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを第１ローカルキャッシュに格納しておくことができ、かつ、第２ローカルキャッシュに格納されるデータリフィル回数を動的に変更することができ、かつ、その第２ローカルキャッシュが、ダーティービットを必要としないキャッシュメモリであった場合でも、パージ管理を必要としないことを特徴とする演算処理装置を提供することにある。
【課題を解決するための手段】
【００１５】
上記問題を解決するために本発明の演算処理装置は、複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算装置であって、各プロセッサは、ＣＰＵとローカルキャッシュとを有し、各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、各キャッシュ制御手段は、共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、キャッシュ制御手段のうちの少なくとも１つのキャッシュ制御手段は、他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視し、前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記バス制御装置を介して他のプロセッサに通知することを特徴とする。
【００１６】
ここで、前記少なくとも１つのキャッシュ制御手段は、さらに、前記ローカルキャッシュアクセス信号に対応するデータをメモリから読み出すためのメモリ読み出し要求を共有メモリ制御装置を介してメモリに発行するようにしてもよい。
【００１７】
この構成によれば、擬似情報を偽りの共有（キャッシュヒット）情報の伝達することによって、例えば、２つ以上のローカルキャッシュが同時にキャッシュリフィルを行うことや、キャッシュミスを起こしたしたローカルキャッシュ以外のローカルキャッシュがリフィルするなど、データの整合性を柔軟に制御することができる。
【００１８】
ここで、前記少なくとも１つのキャッシュ制御手段と、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータをキャッシュメモリにそれぞれ格納するようにしてもよい。
【００１９】
この構成によれば、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させ、キャッシュ間データ転送による共有バスの競合を削減することができる
ここで、前記少なくとも１つのキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、所属するプロセッサ内のキャッシュメモリに格納し、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、それが属するキャッシュメモリに格納しないでＣＰＵに出力するようにしてもよい。
【００２０】
この構成によれば、異なるキャシュメモリが同じデータを無駄に共有するによる実質的なキャッシュ容量の低下を防止することができる。
【００２１】
また、本発明の演算処理装置は、各プロセッサ間キャッシュのデータ整合性を保つための共有バスとその制御を含む共有バス制御装置と、前記第１ローカルキャッシュのアクセス内容を共有バスに伝達するキャッシュアクセス伝達手段と、前記キャッシュアクセス伝達手段によって得られたアクセス情報を元に前記第２ローカルキャッシュの監視を行う前記キャッシュアクセス監視手段と、前記第２ローカルキャッシュ監視手段によって検索された結果を元に、第２ローカルキャッシュの制御およびそれにかかわるデータ転送を行う前記データ整合性管理手段と、前記第２ローカルキャッシュ監視手段によって検索された結果にかかわらず、第２ローカルキャッシュの制御およびそれにかかわるデータ転送を行う前記擬似データ整合性管理手段により、マルチプロセッサで、同じデータを参照するＣＰＵが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させることができる手段を有している。
【００２２】
この構成によれば、マルチプロセッサ構成のローカルキャッシュにおいて、各プログラムがそれぞれのＣＰＵで動作するため、ローカルキャッシュの参照局所性が低下する。そのため、各ローカルキャッシュ内でのキャッシュヒット率が低下し、かつ、他ローカルキャッシュにデータが記憶されている場合でも、キャッシュ間データ転送の確率が増加するため、共有バスの競合が発生し、キャッシュミスペナルティーが大きくなるという問題に対して、キャッシュリフィル時に他のローカルキャッシュに対してもリフィル動作を同時に行うことによって、上記参照局所性低下によるキャッシュヒット率の低下を回避する。
【００２３】
ここで演算処理装置では、記載の演算処理手段に加えて、前記ＣＰＵの命令デコード結果から第１擬似データ整合性管理要求命令伝達手段によって生成される第１擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理装置が動作することによって、メモリアクセスのみ、ローカルキャッシュの一括リフィルを行う手段を有していてもよい。
【００２４】
この構成によれば、常にキャッシュリフィル動作を他ローカルキャッシュでも行うのではなく、命令でその動作を限定することによって、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００２５】
ここで、前記演算処理装置に加えて、前記ＣＰＵの命令実行時のプロセッサ状態記憶手段の第１擬似データ整合性管理要求モード記憶手段によって生成される第１擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットを追加変更することなく、ローカルキャッシュの一括リフィルを行う手段を有していてもよい。
【００２６】
この構成によれば、プロセッサ状態レジスタによって管理されるモード信号でその動作を限定することによって、命令セットの変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００２７】
ここで、前記演算処理装置に加えて、前記ＣＰＵからアクセスされる論理アドレス空間から第１擬似データ整合性管理要求空間判定手段によって生成される第１擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加変更や、プロセッサのモード変更を行うことなく、ローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
【００２８】
この構成によれば、アクセスされるアドレスに対して、それをマスクするマスクレジスタと、比較するアクセスレジスタで、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００２９】
ここで、前記演算処理装置に加えて、論理アドレス空間に対して、物理アドレス空間に変換を行うＴＬＢを有し、前記ＴＬＢの各エントリには、第１擬似データ整合性管理要求アドレス変換手段によって生成される第１擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加を行うことなく、前記ＣＰＵからアクセスされる論理アドレスのページ単位、プロセス識別子単位でローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
【００３０】
この構成によれば、アクセスされるアドレスに対して、ＴＬＢに設定されているフラグ信号で、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００３１】
ここで、前記演算処理装置に加えて、前記第１ローカルキャッシュにアクセスされるアドレスと、前記第１擬似データ整合性管理要求アドレス記憶手段と、前記第１擬似データ整合性管理要求アドレスマスク記憶手段によって生成される第１擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加供給を行うことなく、また、ＭＭＵをもたないプロセッサでも、前記ＣＰＵからアクセスされる論理アドレスの任意のアドレスでローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
【００３２】
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュから得られた対象データを前記第１ローカルキャッシュの前記キャッシュメモリには格納することによって、前記ＣＰＵからのアクセス要求を元に、マルチプロセッサで共有されると予測される対象データを一括リフィルする擬似データ整合性管理共有判定手段を有していてもよい。
【００３３】
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュから得られた対象データを前記第１ローカルキャッシュの前記キャッシュメモリには格納しないことによって、前記ＣＰＵからのアクセス要求に対して、前記第１ローカルキャッシュの格納状態を保存したまま、優先度の低い第２ローカルキャッシュに対象データを格納することができる擬似データ整合性管理共有判定手段を有していてもよい。
【００３４】
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュが、前記第２ローカルキャッシュから得られた対象データを前記第１ローカルキャッシュの前記キャッシュメモリには格納するかどうか擬似データ整合性管理共有判定手段をもとに判定してもよい。
【００３５】
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュや、前記第２ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と同じ回数で、擬似データ整合性管理手段によって発行されることを特徴とすることによってリフィル制御を簡単にすることができる前記擬似データ整合性管理要求回数記憶手段を有していてもよい。
【００３６】
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュや、前記第２ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と異なる回数で、擬似データ整合性管理手段がリフィル要求を発行することを特徴とすることによって、グラフィック演算処理などに適した大容量のキャッシュリフィルに適している、擬似データ整合性管理要求回数記憶手段を有していてもよい。
【００３７】
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第１ローカルキャッシュや、前記第２ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と異なり、擬似データ整合性管理手段がリフィル要求を動的に切り替えて発行することを特徴とする前記擬似データ整合性管理要求回数記憶手段を有していてもよい。
【００３８】
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第２ローカルキャッシュにリフィル動作を行った後、前記ＣＰＵが第１ローカルキャッシュへ書き込み動作を行った場合、第２データ整合性管理手段がキャッシュメモリを更新すると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第２データ整合性管理手段を有していてもよい。
【００３９】
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第２ローカルキャッシュにリフィル動作を行った後、前記ＣＰＵが第１ローカルキャッシュへ書き込み動作を行った場合、第２データ整合性管理手段がキャッシュメモリを無効にすると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第２データ整合性管理手段を有していてもよい。
【００４０】
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第２ローカルキャッシュにリフィル動作を行った後、前記ＣＰＵが第１ローカルキャッシュへ書き込み動作を行った場合、前記データ整合性管理書き込みモード記憶手段によって第２データ整合性管理手段がキャッシュメモリを無効にするか、更新するかを決定すると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第２データ整合性管理手段を有していてもよい。
【発明の効果】
【００４１】
本発明の効果は、マルチプロセッサ構成のローカルキャッシュにおいて、各プログラムがそれぞれのＣＰＵで動作するため、ローカルキャッシュの参照局所性が低下する。そのため、各ローカルキャッシュ内でのキャッシュヒット率が低下し、かつ、他ローカルキャッシュにデータが記憶されている場合でも、キャッシュ間データ転送の確率が増加するため、共有バスの競合が発生し、キャッシュミスペナルティーが大きくなるという問題に対して、キャッシュリフィル時に他のローカルキャッシュに対してもリフィル動作を同時に行うことによって、上記参照局所性低下によるキャッシュヒット率の低下を回避する。
【００４２】
本発明の効果は、発生する不要なキャッシュリフィル動作を回避するため、常にキャッシュリフィル動作を他ローカルキャッシュでも行うのではなく、上記構成によって、命令でその動作を限定することによって、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００４３】
本発明の効果は、命令セットの変更の必要性をなくすために、プロセッサ状態レジスタによって管理されるモード信号でその動作を限定することによって、命令セットの変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００４４】
本発明の効果は、モード設定の切り替えによる命令実行効率の削減のために、アクセスされるアドレス空間でその動作を限定することによって、モード設定の変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００４５】
本発明の効果は、切り替え設定の粒度の粗さによって発生する、プログラム難易度上昇の問題を回避するために、アクセスされるアドレスに対して、それをマスクするマスクレジスタと、比較するアクセスレジスタで、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００４６】
本発明の効果は、プロセス単位の切り替え粒度の粗さによって発生する、プログラム難易度上昇の問題を回避するために、アクセスされるアドレスに対して、ＴＬＢに設定されているフラグ信号で、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
【００４７】
本発明のさらに他の効果は、ローカルキャッシュ間のコピーデータによる、マルチプロセッサ全体のローカルキャッシュの容量効率の低下のために、本来共有させるデータを他ローカルキャッシュのみに記憶することによって、マルチプロセッサでコピーデータを削減し、キャッシュ容量効率を増加させることができ、かつ、自ローカルキャッシュのキャッシュメモリの書き換えを制限できるため、リアルタイム要求が厳しいデータをキャッシュに残すことができる。
【００４８】
本発明のさらに他の効果は、グラフィック処理などの大容量データをキャッシュにリフィルしたい場合、本来のリフィル動作関係ないキャッシュ動作において、偽りの共有情報によってキャッシュリフィルを起動し、また、その回数を変更することによって、リフィルサイズの変更を行うことなく、キャッシュの参照局所性を向上させることができる。
【００４９】
本発明のさらに他の効果は、他ローカルキャッシュでリフィルされたデータが、ダーティービットを持たないキャッシュメモリに対してキャッシュリフィルが発生した場合、データ書き込みを可能とし、かつ、外部メモリとのデータ整合性を維持することができる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施の形態を、図面を参照しながら説明する。
（実施の形態１）
演算処理装置の実施例として図１、図２、図１３、図１５Ａを用いて説明する。
【００５１】
図１は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、２つのプロセッサが共有バスとその制御装置からなる共有バス制御部に接続されたマルチプロセッサ１００の機能ブロック構成図である。また、プロセッサ１０１，１０２は、ＣＰＵ１１１，１１２とローカルキャッシュ１２１，１２２からなり、ローカルキャッシュ１２１，１２２は、命令ローカルキャッシュ１３１，１５１とデータローカルキャッシュ１４１，１６１から構成されている。命令ローカルキャッシュ１３１，１５１、および、データローカルキャッシュ１４１，１６１は、キャッシュメモリ１３２，１４２，１５２，１６２とそのキャッシュ制御部１３３，１４３，１５３，１６３からなり、キャッシュ制御部１３３，１４３，１５３，１６３は、ＣＰＵ１１１，１１２と外部メモリとのデータ転送およびそのデータ整合性を管理し、各キャッシュ間のデータ転送およびそのデータ整合性を管理するデータ整合性管理部１３６，１４６，１５６，１６６と、他ローカルキャッシュにアクセス内容を伝達するキャッシュアクセス伝達部１３４，１４４，１５４，１６４と、他ローカルキャッシュがアクセスした内容を監視するキャッシュアクセス監視部１３５，１４５，１５５，１６５と、他ローカルキャッシュがアクセスした場合に自ローカルキャッシュが対象データをすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部１３７，１４７，１５７，１６７とを有している。
【００５２】
命令ローカルキャッシュ１３１、１５１は、ＣＰＵ１１１，１１２と共有バス制御部１７０に接続されており、ＣＰＵ１１１，１１２と命令ローカルキャッシュ間１３１，１５１では、ＣＰＵ１１１，１１２からのフェッチアドレスを伝達するＣＰＵフェッチアドレスバスが接続されており、ＣＰＵ１１１，１１２からのフェッチアドレスに対応する命令を伝達するＣＰＵフェッチデータバスが接続されている。また、命令ローカルキャッシュ１３１，１５１と共有バス制御部間１７０では、命令ローカルキャッシュ１３１，１５１からのフェッチアドレスを伝達する命令ローカルキャッシュフェッチアドレスバスが接続されており、命令ローカルキャッシュ１３１，１５１からのフェッチアドレスに対応する命令や、他ローカルキャッシュ１３１，１５１からの共有データを伝達する命令ローカルキャッシュフェッチデータバスが接続されている。さらに、他ローカルキャッシュとのデータ転送においては、他ローカルキャッシュのアクセス内容を伝達する命令ローカルキャッシュ共有アドレスバスが接続されており、命令ローカルキャッシュから共有バス制御部に転送される命令ローカルキャッシュ共有データバスが接続されている。
【００５３】
データローカルキャッシュ１４１，１６１は、ＣＰＵ１１１，１１２と共有バス制御部１７０に接続されており、ＣＰＵ１１１，１１２とデータローカルキャッシュ１４１，１６１間では、ＣＰＵ１１１，１１２からの読み出しおよび書き込みアドレスを伝達するＣＰＵデータアドレスバスが接続されており、ＣＰＵ１１１，１１２からの読み出しアドレスに対応するデータを伝達するＣＰＵデータ読み出しデータバスと、ＣＰＵ１１１，１１２からの書き込みアドレスに対応するデータを伝達するＣＰＵデータ書き込みデータバスが接続されている。また、データローカルキャッシュ１４１，１６１と共有バス制御部１７０間では、データローカルキャッシュ１４１，１６１からのデータ読み出しおよび書き込みアドレスを伝達するデータローカルキャッシュアドレスバスが接続されており、データローカルキャッシュ１４１，１６１からの読み出しアドレスに対応するデータや、他ローカルキャッシュからの共有データを伝達するデータローカルキャッシュ読み出しデータバスが接続されている。さらに、他ローカルキャッシュとのデータ転送においては、他ローカルキャッシュのアクセス内容を伝達するデータローカルキャッシュ共有アドレスバスが接続されており、データローカルキャッシュ１４１，１６１から共有バス制御部へのデータ転送や、データローカルキャッシュ１４１，１６１から外部メモリへデータ転送されるデータローカルキャッシュ共有データバスが接続されている。
【００５４】
なお、本実施の形態１では、共有バス制御部１７０に接続されているデータバスは、外部メモリへのアクセスとキャッシュ間のアクセスで兼用されているが、バス競合状態をできるだけ回避するために外部メモリ用のバスとキャッシュ間アクセス用のバスを個別に備えるなどの方法もあり、この限りではない。
【００５５】
ＣＰＵ１１１，１１２から命令ローカルキャッシュ１３１，１５１およびデータローカルキャッシュ１４１，１６１へのメモリアクセスで、キャッシュアクセス伝達部１３４，１４４，１５４，１６４は、キャッシュを使用しない（非キャッシュ）読み出しアクセス、および、キャッシュを使用しない（非キャッシュ）書き込みアクセス、キャッシュを使用する（キャッシュ）書き込みアクセス、もしくは、キャッシュを使用する（キャッシュ）読み出しアクセスのキャッシュミスアクセスの場合に、命令ローカルキャッシュおよびデータローカルキャッシュのアクセスアドレス信号を共有バス制御部１７０に伝達する。この伝達信号によって他ローカルキャッシュはデータ整合性を維持するための処理が必要かどうかを判定することができる。
【００５６】
キャッシュアクセス監視部１３５，１４５，１５５，１６５は、キャッシュアクセス伝達部１３４ｍ１４４，１５４，１６４から共有バス制御部１７０に伝達された非キャッシュ読み出しアクセス、および、キャッシュ読み出しのキャッシュミスアクセスに対して、自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部１３６，１４６，１５６，１６６は、自ローカルキャッシュが、キャッシュアクセス伝達部１３４，１４４，１５４，１６４によってアクセスアドレスを伝達した他ローカルキャッシュのアクセス対象データを記憶している場合に、自ローカルキャッシュが共有バス制御部１７０に対象データ、もしくは、対象エントリのデータを出力するよう制御する。
【００５７】
キャッシュアクセス監視部１３５，１４５，１５５，１６５は、キャッシュアクセス伝達部１３４，１４４，１５４，１６４から共有バス制御部１７０に伝達されたキャッシュ書き込みのキャッシュヒットアクセスに対して自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部１３６，１４６，１５６，１６６は、自ローカルキャッシュが、キャッシュアクセス伝達部１３４，１４４，１５４，１６４によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部１７０に出力されている対象データを記憶情報として更新するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
【００５８】
キャッシュアクセス監視部１３５，１４５，１５５，１６５は、キャッシュアクセス伝達部１３４，１４４，１５４，１６４から共有バス制御部１７０に伝達されたキャッシュ書き込みのキャッシュミスアクセスに対して自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部１３６，１４６，１５６，１６６は、自ローカルキャッシュが、キャッシュアクセス伝達部１３４，１４４，１５４，１６４によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部１７０に出力されている対象データを記憶情報として更新し、自ローカルキャッシュの対象エントリのデータを共有バス制御部１７０に出力するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
【００５９】
キャッシュアクセス監視部１３５，１４５，１５５，１６５は、キャッシュアクセス伝達部１３４，１４４，１５４，１６４から共有バス制御部１７０に伝達された非キャッシュ書き込みアクセス対して自ローカルキャッシュのキャッシュメモリを検索する。自ローカルキャッシュが、キャッシュアクセス伝達部１３４，１４４，１５４，１６４によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部１７０に出力されている対象データを記憶情報として更新するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
【００６０】
擬似データ整合性管理部１３７，１４７，１５７，１６７は、キャッシュアクセス伝達部から共有バス制御部１７０に伝達されたキャッシュ読み出しアクセスのキャッシュミスアクセス、および、キャッシュ書き込みアクセスのキャッシュミスアクセスがあった場合に、自ローカルキャッシュが対象データをすでにキャッシュメモリ１３２，１４２，１５２，１６２に格納していると偽って動作し、外部メモリからのリフィル動作を開始する。
【００６１】
以上で、図１に記載の演算処理装置の機能ブロック構成図を示した。
図１３は、キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。同図では、プロセッサ１０２内のデータローカルキャッシュ２でキャッシュミスヒットが発生した場合にデータ整合性をとる動作を示している。
【００６２】
同図のように、プロセッサ１０２内のデータローカルキャッシュ１２２でキャッシュミスヒットが発生した場合（Ｓ２０１:yes）、プロセッサ１０２は、キャッシュアクセス制御部１６３によってキャッシュ書き込みミスアクセスが発生したことをキャッシュミス情報Ｓ１として共有バス制御部１７０に送信する（Ｓ２０２）。このキャッシュミス情報Ｓ１には、メモリアクセスアドレス、リード／ライトの区別などのキャッシュアクセス情報が含まれる。
【００６３】
プロセッサ１０１は、キャッシュミス情報Ｓ１を受信すると、共有バス制御部１７０からキャッシュアクセス制御部１４３によってプロセッサ２のキャッシュミス情報Ｓ１に含まれるメモリアクセスアドレスのデータがエントリーされているかキャッシュメモリ１４２を検索する（Ｓ１０１）。この検索の結果、データがエントリーされていない場合つまりスヌープキャッシュミスアクセスの場合（Ｓ１０２：no）、プロセッサ１０１は、擬似共有情報Ｓ２をプロセッサ１０２に送信する（Ｓ１０３）。擬似共有情報Ｓ２は、実際にはスヌープキャッシュミスであるにも関わらずスヌープキャッシュヒットしたことを示す偽りの情報である。
【００６４】
さらに、プロセッサ１０１は、擬似データ整合性管理部１４６によって、キャッシュメモリリフィルのための外部メモリ読み出し要求を共有バス制御部１７０に発行する（Ｓ１０４）。これにより、共有バス制御部１７０は、スヌープキャッシュミスしたデータを外部メモリから共有バス１７０上に読み出す。その際、外部メモリ読み出し要求を発行したプロセッサ１０１は、共有バス１７０上に読み出されたデータＳ４をキャッシュメモリにリフィルし（Ｓ１０５）、これと同時に、擬似共有情報を受信したプロセッサ１０２も、共有バス１７０上に読み出されたデータをキャッシュメモリにリフィルする（Ｓ２０３）。このように、各ローカルキャッシュには、外部メモリ読み出しデータＳ４が同時にリフィルされることになる。
【００６５】
リフィルの後、プロセッサ１０１は、キャッシュミス情報Ｓ１がキャッシュへの書き込みアクセスにおけるキャッシュミスアクセスを示していれば（Ｓ１０６）、リフィルしたエントリーを無効化する（Ｓ１０７）。
【００６６】
一方、Ｓ１０２において、データがエントリーされている場合つまりスヌープキャッシュヒットアクセスの場合（Ｓ１０２：yes）、プロセッサ１０１は、共有情報Ｓ３をプロセッサ１０２に送信する（Ｓ１０３）。共有情報Ｓ３は、スヌープキャッシュヒットしたことを示す情報であり、上記の擬似共有情報Ｓ２と同内容でよい。さらに、プロセッサ１０１は、キャッシュ間転送を行い（Ｓ１０９）、この転送によりプロセッサ１０２は、転送データＳ５をローカルキャッシュにリフィルする（Ｓ２０３）。プロセッサ１０１は、キャッシュ間転送の後、キャッシュミス情報Ｓ１がキャッシュへの書き込みアクセスにおけるキャッシュミスアクセスを示していれば（Ｓ１０６）、当該エントリーを無効化する（Ｓ１０７）。
【００６７】
このように、擬似共有情報Ｓ２を受信したプロセッサ１０２は、共有情報Ｓ３を受信した場合と同様に、共有バス１７０からリフィルする動作を行う。この場合、プロセッサ１０２は、共有バス１７０上に転送されるデータが外部メモリ読み出しデータＳ４であるか、キャッシュ間転送データＳ５であるかを区別しなくてよい。
【００６８】
なお、図１３ではプロセッサ１０２でキャッシュミスが発生した場合を説明したが、プロセッサ１０１でキャッシュミスが発生した場合は、同図のプロセッサ１０１、１０２を入れ替えた動作となる。
【００６９】
図１５Ａは、実施の形態１で動作説明するためのプログラム１であり、プロセッサ１で実行される命令とプロセッサ２で実行される命令を併記している。
【００７０】
図２は、プログラム実行時間を説明する図であり、従来技術の課題と実施の形態１の効果を説明するために、ユニプロセッサ構成時のプログラム１実行時間（１）と、マルチプロセッサ構成時で図１に記載の擬似データ整合性管理部を使用しない場合のプログラム１実行時間（２）と、マルチプロセッサ構成時で図１に記載の擬似データ整合性管理部を使用した場合のプログラム１実行時間（３）を比較している。
【００７１】
この説明では、命令キャッシュにすべての命令が格納されており、データキャッシュは、有効なデータをキャッシュしていないとし、ロードストア命令実行に要する実行サイクル数は、キャッシュヒット時１サイクル、キャッシュミス時で他ローカルキャッシュヒット時１サイクル、キャッシュミス時で外部メモリアクセス時７サイクル、また、共有バスのアクセスが競合した場合、キャッシュ間転送は前者のアクセスが完了してからさらに１サイクル、キャッシュのラインサイズ転送に４サイクル要する（ただしクリティカルワードから転送開始しこの期間共有バスを占有する）と仮定して説明する。
【００７２】
プログラム１がユニプロセッサによってシーケンシャルに（プロセッサ１の命令１から命令５、そして、プロセッサ２の命令１から７と）実行された場合について、図１、および、図２（Ａ）を用いて説明する。ユニプロセッサの動作説明は、図１のプロセッサ１のみが操作しているとして説明する。
【００７３】
ユニプロセッサは、図２（Ａ）のＴ１時にレジスタ転送命令１を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令である。
【００７４】
ユニプロセッサは、図２（Ａ）のＴ２時にロード命令２を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロードする）命令である。また、このアクセスは、キャッシュミスアクセス、キャッシュ間転送なし、バス競合なしのため、命令実行サイクルはＴ２からＴ８の７サイクルとなる。
【００７５】
ユニプロセッサは、図２（Ａ）のＴ９時に加算命令３を実行する。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【００７６】
ユニプロセッサは、図２（Ａ）のＴ１０時にレジスタ転送命令４を実行する。命令４は、レジスタＡ１にアドレス０ｘ４００００１００を格納する命令である。
【００７７】
ユニプロセッサは、図２（Ａ）のＴ１１時にストア命令５を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに格納する命令である。また、このアクセスは、キャッシュミスアクセス、キャッシュ間転送なし、バス競合なしのため、命令実行サイクルはＴ１１からＴ１７の７サイクルとなる。
【００７８】
ユニプロセッサは、図２（Ａ）のＴ１８時に命令６のクリア命令を実行する。命令６は、レジスタＤ０をクリア（０にする）命令である。
【００７９】
ユニプロセッサは、図２（Ａ）のＴ１９時に命令７のレジスタ転送命令７を実行する。命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。
【００８０】
ユニプロセッサは、図２（Ａ）のＴ２０時に命令８のロード命令を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロードする）命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルはＴ２０の１サイクル実行となる。
【００８１】
ユニプロセッサは、図２（Ａ）のＴ２１時に命令９のレジスタ転送命令を実行する。命令９は、レジスタＡ１に０ｘ４００００００４を格納する命令である。
【００８２】
ユニプロセッサは、図２（Ａ）のＴ２２時に命令１０のロード命令を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロードする）命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルは、Ｔ２２の１サイクル実行となる。
【００８３】
ユニプロセッサは、図２（Ａ）のＴ２３時に命令１１の加算命令を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【００８４】
ユニプロセッサは、図２（Ａ）のＴ２４時に命令１２のストア命令を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに格納する命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルはＴ２０の１サイクルとなる。
【００８５】
以上のことから、ユニプロセッサ構成時にプログラム１を実行した場合、実行サイクル２４サイクルであることがわかる。
【００８６】
次に、マルチプロセッサ構成時で擬似データ整合性管理部を用いない、従来のスヌープキャッシュの場合を第１マルチプロセッサとして以下に説明する。
【００８７】
第１マルチプロセッサは、図２（Ｂ）のＴ１時にプロセッサ１０１でレジスタ転送命令１、プロセッサ１０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【００８８】
第１マルチプロセッサは、図２（Ｂ）のＴ２時にプロセッサ１０１でロード命令２、プロセッサ１０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。命令２のアクセスによって、プロセッサ１０１は、キャッシュアクセス伝達部１４４によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０２は、共有バス制御部１７０からキャッシュアクセス監視部１６５によってプロセッサ１０１のアクセス内容でキャッシュメモリ１６２を検索する。プロセッサ１０２は、スヌープキャッシュミスアクセスのためキャッシュ間転送を行わない。共有バス制御部１７０は、共有バス１７１未使用のため、共有バスアクセス待ちサイクルを必要としない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【００８９】
第１マルチプロセッサは、図２（Ｂ）のＴ３時にプロセッサ１０１でロード命令２を実行中であり、プロセッサ１０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。命令８のアクセスによって、プロセッサ１０２は、キャッシュアクセス伝達部１６４によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０１は、共有バス制御部１７０からキャッシュアクセス監視部１４４によってプロセッサ１０２のアクセス内容でキャッシュメモリ１４２を検索する。プロセッサ１０１は、スヌープキャッシュミスアクセスのためキャッシュ間転送を行わない。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バス１７１がＴ１２からＴ１５の間占有される。
【００９０】
第１マルチプロセッサは、図２（Ｂ）のＴ９時にプロセッサ１０１で加算命令３を実行し、プロセッサ１０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【００９１】
第１マルチプロセッサは、図２（Ｂ）のＴ１０時にプロセッサ１０１でレジスタ転送命令４を実行し、プロセッサ１０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ４００００１００を格納する命令である。
【００９２】
第１マルチプロセッサは、図２（Ｂ）のＴ１１時にプロセッサ１０１でストア命令５、プロセッサ１０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ１０１は、キャッシュアクセス伝達部１４４によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０２は、共有バス制御部１７０からキャッシュアクセス監視部１６５によってプロセッサ１０１のアクセス内容でキャッシュメモリ１６２を検索する。プロセッサ１０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部１６６によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【００９３】
第１マルチプロセッサは、図２（Ｂ）のＴ１３時にプロセッサ１０１でストア命令５を実行中であり、プロセッサ１０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【００９４】
第１マルチプロセッサは、図２（Ｂ）のＴ１４時にプロセッサ１０１でストア命令５を実行中であり、プロセッサ１０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスによって、プロセッサ１０２は、キャッシュアクセス制御部１６３によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０１は、共有バス制御部１７０からキャッシュアクセス監視部１４５によってプロセッサ１０２のアクセス内容でキャッシュメモリ１４２を検索する。プロセッサ１０１は、スヌープキャッシュヒットアクセスのため、データ整合性管理部１４６によってキャッシュ間転送が行われる。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルは、Ｔ１４からＴ２０の７サイクル実行となり、命令１０のキャッシュリフィルアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【００９５】
第１マルチプロセッサは、図２（Ｂ）のＴ２１時にプロセッサ１０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【００９６】
第１マルチプロセッサは、図２（Ｂ）のＴ２２時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ１０２は、キャッシュアクセス制御部１６３によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０１は、共有バス制御部１７０からキャッシュアクセス制御部１４３によってプロセッサ１０２のアクセス内容でキャッシュメモリ１４２を検索する。プロセッサ１０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部１４６によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部１７０は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ２２からＴ２４サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２４からＴ２７の間占有される。
【００９７】
以上のことから、第１マルチプロセッサ構成時にプログラム１を実行した場合、実行サイクル２４サイクルであることがわかる。
【００９８】
最後に、マルチプロセッサ構成時で擬似データ整合性管理部を用いた本実施の形態１の場合を第２マルチプロセッサとして以下に説明する。
【００９９】
第２マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ１０１でレジスタ転送命令１、プロセッサ１０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０１００】
第２マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ１０１でロード命令２、プロセッサ１０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。命令２のアクセスによって、プロセッサ１０１は、キャッシュアクセス伝達部１４４によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０２は、共有バス制御部１７０からキャッシュアクセス監視部１６５によって、プロセッサ１のアクセス内容でキャッシュメモリ１６２を検索する。プロセッサ１０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部１６６によってキャッシュ間転送を行わない。プロセッサ１０２は、擬似データ整合性管理部１６７によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部１７０に発行し、プロセッサ１０１およびプロセッサ１０２のキャッシュメモリ１４２，１６２がリフィルされる。共有バス制御部１７０は、共有バス１７１未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０１０１】
第２マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ１でロード命令２を実行中であり、プロセッサ１０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。命令８のアクセスによって、プロセッサ１０２は、キャッシュアクセス伝達部１６４によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０１は、共有バス制御部１７０からキャッシュアクセス監視部１４５によってプロセッサ１０２のアクセス内容でキャッシュメモリ１４２を検索する。プロセッサ１０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部１４６によってキャッシュ間転送を行わない。プロセッサ１０１は、擬似データ整合性管理部１４７によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部１７０に発行し、プロセッサ１０２およびプロセッサ１０１のキャッシュメモリがリフィルされる。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０１０２】
第２マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ１０１で加算命令３を実行し、プロセッサ１０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１０３】
第２マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ１０１でレジスタ転送命令４を実行し、プロセッサ１０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ４００００１００を格納する命令である。
【０１０４】
第２マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ１でストア命令５、プロセッサ２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ１０１は、キャッシュアクセス伝達部１４４によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０２は、共有バス制御部１７０からキャッシュアクセス監視部１６５によってプロセッサ１のアクセス内容でキャッシュメモリ１６２を検索する。プロセッサ１０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部１６６によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０１０５】
第２マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ１０１でストア命令５を実行中であり、プロセッサ１０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０１０６】
第２マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ１０１でストア命令５を実行中であり、プロセッサ１０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ１０２の擬似データ整合性管理部１６７は、キャッシュメモリ１６２にリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０１０７】
第２マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ１０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１０８】
第２マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ１０２は、キャッシュアクセス制御部１６３によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部１７０に伝達する。プロセッサ１０１は、共有バス制御部１７０からキャッシュアクセス制御部１４３によってプロセッサ２のアクセス内容でキャッシュメモリ１４２を検索する。プロセッサ１０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部１４６によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部１７０は、共有バス１７１使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バス１７１がＴ２０からＴ２３の間占有される。
【０１０９】
以上のことから、第２マルチプロセッサ構成時にプログラム１を実行した場合、実行サイクル２０サイクルであることがわかる。
【０１１０】
以上のように、プログラム１をマルチプロセッサの構成で実行される場合と、ユニプロセッサとしてプログラム１に記載の命令をシーケンシャルに（プロセッサ１０１の命令（１）から（５）を実行して、プロセッサ１０２の命令（１）から（７）を）実行した場合を比較すると、本来、参照局所性や時間局所性の効果によってキャッシュヒットが期待されるプロセッサ１０２の命令（３）、命令（５）、および、命令（７）が、キャッシュミスヒットとして動作する。そのため、外部メモリに対するリフィルの発生や、プロセッサ１０１に対するスヌープアクセス（データ共有化）が発生するため、キャッシュメモリの局所性の効果が少なくなることが考えられる。そこで、擬似データ整合性管理部によって、各プロセッサ間のリフィル要求を共有することによって、マルチプロセッサ化による、ローカルキャッシュの参照局所性および時間局所性の低下を削減することができる。
【０１１１】
なお、本実施の形態１では、２つのプロセッサをもとに説明を行ったが、この限りではない。３つ以上のプロセッサの場合で、同様の構成要素によって２つ以上のキャッシュメモリに同時にリフィルを行える。擬似データ整合性管理部によって２つ以上のローカルキャッシュからリフィル要求が発生したあった場合は、前記共有バス制御部によって、同じキャッシュアクセス伝達部によって発生するリフィルアクセスは、外部メモリに対してひとつのリフィルアクセス要求として、マージするとさらに本発明の効果が得られる。
【０１１２】
なお、本実施の形態１では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０１１３】
（実施の形態２）
しかし、この擬似データ整合性管理部を常に有効にする場合、局所性の低下は、防止することができるが、データの共有状態の確率が高くなるため、キャッシュ容量の低下に対する問題が発生すると考えられる。そこで、実施の形態１と比較して、無駄なキャッシュ容量の共有を行わない方法として、演算処理装置を図３、図４、および、図１５Ｂに示すプログラム２を用いて説明する。
【０１１４】
図３は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図１に記載の演算処理装置に加えて、各ＣＰＵ３１１，３１２には、第１擬似データ整合性管理要求部３８１，３８２を有している。第１擬似データ整合性管理要求部３８１，３８２は、キャッシュアクセス伝達部３３４，３４４，３５４，３６４と同様に、共有バス制御部３７０に接続されており、共有バス制御部３７０からそれぞれのローカルキャッシュの擬似データ整合性管理部３３７，３４７，３５７，３６７に接続されている。
【０１１５】
擬似データ整合性管理部３３７，３４７，３５７，３６７は、第１擬似データ整合性管理要求部３８１，３８２によって伝達された第１擬似データ整合性管理要求信号がアクティブであることを検出した場合にのみ、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリ３３２，３４２，３５２，３６２に格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部３３７，３４７，３５７，３６７とを有している。
【０１１６】
図４は、図３に記載の第１擬似データ整合性管理要求部３８１，３８２の構成を示す図であり、図３に記載のＣＰＵ３１１，３１２の中の前記第１擬似データ整合性管理要求部３８１，３８２にかかわる機能ブロックの説明を記載している。各ＣＰＵ４００には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部４０１と、命令をデコードするデコーダ４１０と、そのデコーダ４１０の出力から第１擬似データ整合性管理要求信号４２１を生成する第１擬似データ整合性管理要求命令検出部４２０を有した、第１擬似データ整合性管理要求部４５０から構成されており、ここで生成されたロードストアアクセスアドレス４０２が図３に記載の各ローカルキャッシュ３３１，３４１，３５１，３６１にそれぞれ出力され、第１擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部１７０に出力される。
【０１１７】
プログラム２は、実施の形態２で動作説明するプログラムであり、プロセッサ１で実行される命令とプロセッサ２で実行される命令を併記している。プログラム１とプログラム２の違いは、命令（２）、命令（８）、および、命令（１０）のみであり、この命令は、ＭＯＶＣ命令であり、この命令をデコードしたデコーダは、擬似データ整合性有効部によって、擬似データ整合性要求信号をアクティブし、共有バス制御部に伝達することを特徴としている。
【０１１８】
マルチプロセッサ構成時で擬似データ整合性有効検出部と擬似データ整合性管理部を用いた第３マルチプロセッサについて図２（Ｃ）および図３、図４と、プログラム２を用いて以下に説明する。
【０１１９】
第３マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ３０１でレジスタ転送命令１、プロセッサ３０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０１２０】
第３マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ３０１でロード命令２、プロセッサ３０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。このとき図４に示すように、ＣＰＵ３１１は、ロードアクセスアドレスを生成するロードアクセスアドレス生成部と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求命令検出部があり、前記擬似データ整合性管理要求命令検出部は、命令デコーダの結果を観測することによって、命令２が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０２は、共有バス制御部からアクティブな擬似データ整合性有効信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０１およびプロセッサ３０２のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０１２１】
第３マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ３０１でロード命令２を実行中であり、プロセッサ３０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。このとき図４に示すように、ＣＰＵ３１２は、ロードアクセスアドレスを生成するロードアクセスアドレス生成部と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求命令検出部があり、前記擬似データ整合性管理要求命令検出部は、命令デコーダの結果を観測することによって、命令８が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ３０２は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ１は、共有バス制御部からアクティブな擬似データ整合性有効信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０２およびプロセッサ３０１のキャッシュメモリがリフィルされる。共有バス制御部３７０は、共有バス３７１使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０１２２】
第３マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ３０１で加算命令３を実行し、プロセッサ３０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１２３】
第３マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ３０１でレジスタ転送命令４を実行し、プロセッサ３０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ４００００１００を格納する命令である。
【０１２４】
第３マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ３０１でストア命令５、プロセッサ３０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０１２５】
第３マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０１２６】
第３マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ１でストア命令５を実行中であり、プロセッサ３０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ３０２の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０１２７】
第３マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ３０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１２８】
第３マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ３０２は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【０１２９】
以上のことから、第３マルチプロセッサ構成時にプログラム２を実行した場合、実行サイクル２０サイクルであることがわかり、かつ、命令コードが擬似データ整合性有効検出部を動作させる命令でない限り、この擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生することを防止できる。
【０１３０】
実施の形態２においては、擬似データ整合性管理部による、局所性低下の防止と、それに機能変更によって考えられるキャッシュ容量の浪費（使用しない共有データ）の削減を、命令コードの追加によって改善した。
【０１３１】
なお、本実施の形態２で示した命令は、アセンブラで書かれているが、この限りではない。たとえば、Ｃ言語の予約語を設定することにより、コンパイラによる本アセンブラの命令を出力することは可能であり、また、アセンブラで記述したライブラリをリンクして呼び出すことによって同様の効果を得ることができる。
【０１３２】
なお、本実施の形態２では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０１３３】
（実施の形態３）
しかし、命令コードの追加は、アーキテクチャの変更に相当するため、互換性の問題などが発生する。そこで、演算処理装置と比較して、特別な命令セットの追加を行うことなく、キャッシュ容量の浪費（使用しない共有データ）の削減方法として、演算処理装置を図３、図５、および、プログラム１を用いて説明する。
【０１３４】
図５は、図３に記載の第１擬似データ整合性管理要求部３８１，３８２の構成を示す図であり、図３に記載のＣＰＵ３１１，３１２の中の前記第１擬似データ整合性管理要求部３８１，３８２にかかわる機能ブロックの説明を記載している。各ＣＰＵ５００には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部５０１と、命令実行時のプロセッサの状態を示すプロセッサ状態記憶部５１０と、前記プロセッサ状態記憶部の出力から第１擬似データ整合性管理要求モード信号５１２を生成する第１擬似データ整合性管理要求モード検出部５２０を有した、第１擬似データ整合性管理要求部５５０から構成されており、ここで生成されたロードストアアクセスアドレス５０２が図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号５２１が前記各ローカルキャッシュ３３１，３４１，３５１，３６１に出力され、共有バス制御部３７０に出力される。
【０１３５】
プログラム１は、実施の形態３で動作説明するプログラムであり、プロセッサ１で実行される命令とプロセッサ２で実行される命令を併記している。
【０１３６】
マルチプロセッサ構成時でプロセッサ状態記憶部と第１擬似データ整合性管理要求部を用いた第４マルチプロセッサについて図２（Ｃ）および図３、図５、および、プログラム１を用いて以下に説明する。
【０１３７】
第４マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ１でレジスタ転送命令１、プロセッサ２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０１３８】
第４マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ３０１でロード命令２、プロセッサ３０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。このとき図５に示すように、ＣＰＵ３１１は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部５０１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部５５０とからなり、前記擬似データ整合性管理要求部５５０には、擬似データ整合性管理要求モード検出部５２０があり、前記擬似データ整合性管理要求モード検出部５２０は、プロセッサ状態記憶部５１０のプロセッサ状態を観測することによって、命令２が、擬似データ整合性管理要求信号５２１をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０２は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０１およびプロセッサ３０２のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０１３９】
第４マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ３０１でロード命令２を実行中であり、プロセッサ３０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。このとき図５に示すように、ＣＰＵ３０２は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求モード検出部があり、前記擬似データ整合性管理要求モード検出部は、プロセッサ状態記憶部のプロセッサ状態を観測することによって、命令８が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ３０２は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０１は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０２およびプロセッサ３０１のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０１４０】
第４マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ３０１で加算命令３を実行し、プロセッサ３０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１４１】
第４マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ３０１でレジスタ転送命令４を実行し、プロセッサ３０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ４００００１００を格納する命令である。
【０１４２】
第４マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ３０１でストア命令５、プロセッサ３０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０１４３】
第４マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０１４４】
第４マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ３０２の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０１４５】
第４マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ３０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１４６】
第４マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ３０２は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【０１４７】
以上のことから、第４マルチプロセッサ構成時にプログラム１を実行した場合、実行サイクル２０サイクルであることがわかり、かつ、プロセッサ状態記憶部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
【０１４８】
実施の形態３においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費（使用しない共有データ）の削減を、プロセッサ状態記憶部の追加によって第１擬似データ整合性管理要求モード信号から、擬似データ整合性管理部の動作を有効にし、命令コードに制限されることなく、その課題を改善した。
【０１４９】
なお、プロセッサ状態記憶部によって、設定された前記第１擬似データ整合性管理要求モード信号は、本実施の形態３では、命令実行後その状態を維持し続けるとして説明しているが、ロードストア命令実行後にクリアされるように実装されている場合など、実装方法は、この限りではない。また、プロセッサ状態記憶部のように、第１擬似データ整合性管理要求モード信号と、ロードストア命令実行後にその信号をクリアするかどうかを決定する第１擬似データ整合性管理要求モードロック信号を用いることによって、第１擬似データ整合性管理要求信号をアクティブにするために、ロードストア命令を複数回実行する場合は、このロック信号をセットしておくなどの制御よって、前記プロセッサ状態記憶部の前記第１擬似データ整合性管理要求モード信号を維持させることができる。
【０１５０】
なお、本実施の形態１では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０１５１】
（実施の形態４）
しかし、前記プロセッサ状態記憶部を用いて、前記第１擬似データ整合性管理部の設定を切り替える場合は、前記プロセッサ状態記憶部の書き換えが、ロードストア命令２命令ごとに再設定する必要があるケースが発生するため、命令実効効率が低下する。そのため、実施の形態３のプロセッサ状態記憶部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費（使用しない共有データ）の削減方法として、ロードストア命令で実行される論理アドレス空間に応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス空間判定部を用いた演算処理装置を図２（Ｃ）、図３、図６、図７、図８、図９および、図１５Ｃに示すプログラム３を用いて説明する。
【０１５２】
図６は、論理アドレス空間のアクセスに対する物理アドレス空間のマッピング規則を示した図である。ＣＰＵからロードストア命令として生成される論理アドレスは、０ｘ００００００００から０ｘＦＦＦＦＦＦＦＦの範囲で用いられる。
【０１５３】
また、０ｘ００００００００から０ｘ１ＦＦＦＦＦＦＦは、スーパーバイザレベルと、ユーザレベルがアクセスできるＳＵ０空間６００であり、物理アドレス０ｘ８０００００００から０ｘ９ＦＦＦＦＦＦＦのＲ０空間６１０へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。０ｘ２０００００００から０ｘ３ＦＦＦＦＦＦＦは、スーパーバイザレベルと、ユーザレベルがアクセスできるＳＵ１空間６０１であり、物理アドレス０ｘＡ０００００００から０ｘＢＦＦＦＦＦＦＦのＲ１空間６１１へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。０ｘ４０００００００から０ｘ５ＦＦＦＦＦＦＦは、スーパーバイザレベルと、ユーザレベルがアクセスできるＳＵ２空間６０２であり、物理アドレス０ｘ８０００００００から０ｘ９ＦＦＦＦＦＦＦのＲ０空間６１０へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにする空間である。０ｘ６０００００００から０ｘ７ＦＦＦＦＦＦＦは、スーパーバイザレベルと、ユーザレベルがアクセスできるＳＵ３空間６０３であり、物理アドレス０ｘＡ０００００００から０ｘＢＦＦＦＦＦＦＦのＲ１空間６１１へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにする空間である。０ｘ８０００００００から０ｘ９ＦＦＦＦＦＦＦは、スーパーバイザレベルがアクセスできるＳ４空間６０４であり、物理アドレス０ｘ８０００００００から０ｘ９ＦＦＦＦＦＦＦのＲ０空間６１０へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。０ｘＡ０００００００から０ｘＢＦＦＦＦＦＦＦは、スーパーバイザレベルがアクセスできるＳ５空間６０５であり、物理アドレス０ｘＡ０００００００から０ｘＢＦＦＦＦＦＦＦのＲ１空間６１１へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。０ｘＣ０００００００から０ｘＤＦＦＦＦＦＦＦは、モニタレベルがアクセスできるＭ６空間６０６であり、物理アドレス０ｘ８０００００００から０ｘ９ＦＦＦＦＦＦＦのＲ０空間６１０へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。０ｘＥ０００００００から０ｘＦＦＦＦＦＦＦＦは、モニタレベルがアクセスできるＭ７空間６０７であり、物理アドレス０ｘＡ０００００００から０ｘＢＦＦＦＦＦＦＦのＲ１空間６１１へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。
【０１５４】
図７は、図３に記載の第１擬似データ整合性管理要求部３８１，３８２の構成を示す図であり、図３に記載のＣＰＵ３１１，３１２の中の前記第１擬似データ整合性管理要求部３８１，３８２にかかわる機能ブロックの説明を記載している。各ＣＰＵ７００には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部７０１と、ロードストア命令実行時のロードストアアドレスより図６に示したマッピング規則により擬似データ整合性管理要求信号をアクティブにするかどうかを判定する擬似データ整合性管理要求空間判定部７１０を有した、第１擬似データ整合性管理要求部７５０から構成されており、ここで生成されたロードストアアクセスアドレスが図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号７１１が前記各ローカルキャッシュに出力され、共有バス制御部３７０に出力される。
【０１５５】
図８は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図１に記載の演算処理装置に加えて、各ＣＰＵ８１１，８１２には、第２擬似データ整合性管理要求部８３８，８４８，８５８，８６８を有している。第２擬似データ整合性管理要求部８３８，８４８，８５８，８６８は、キャッシュアクセス監視部８３４，８４４，８５４，８６４と同様に、共有バス制御部８７０に接続されており、共有バス制御部８７０からそれぞれのローカルキャッシュの擬似データ整合性管理部８３６，８４６，８５６，８６６に接続されている。
【０１５６】
擬似データ整合性管理部８３７，８４７，８５７，８６７は、第２擬似データ整合性管理要求部８３８，８４８，８５８，８６８によって伝達された第２擬似データ整合性管理要求信号がアクティブであることを検出した場合にのみ、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部とを有している。
【０１５７】
図９は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図３に記載の演算処理装置に加えて、各ＣＰＵ９１１，９１２には、第２擬似データ整合性管理要求部９３８，９４８，９５８，９６８を有している。第２擬似データ整合性管理要求部９３８，９４８，９５８，９６８は、キャッシュアクセス監視部９３４，９４４，９５４．９６４と同様に、共有バス制御部９７０に接続されており、共有バス制御部９７０からそれぞれのローカルキャッシュの擬似データ整合性管理部９３７，９４７，９５７，９６７に接続されている。
【０１５８】
擬似データ整合性管理部９３７，９４７，９５７，９６７は、第１擬似データ整合性管理要求部９８１，９８２によって伝達された第１擬似データ整合性管理要求信号がアクティブであることを検出した場合と、第２擬似データ整合性管理要求部９３８，９４８，９５８，９６８によって伝達された第２擬似データ整合性管理要求信号がアクティブであることを検出した場合のどちらかがアクティブである場合に、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部９３７，９４７，９５７，９６７と、を有している。
【０１５９】
プログラム３は、実施の形態３で動作説明するプログラムであり、プロセッサ１で実行される命令とプロセッサ２で実行される命令を併記している。
【０１６０】
プログラム３は、プログラム２と比較して、擬似データ整合性管理部を使用したいロードストア命令のアドレス設定においては、図６のＳＵ２空間６０２のアドレスを使用し、擬似データ整合性管理部を使用する必要がないロードストア命令のアドレス設定においては、図６のＳ４空間６０４を使用している。
【０１６１】
なお、図６の擬似データ整合性管理要求信号をアクティブにする領域の設定は、この限りではない。たとえば、同じ物理アドレス空間においても、あるページ単位で擬似データ整合性管理要求信号をアクティブにする領域として設定することもできる。
【０１６２】
マルチプロセッサ構成時で擬似データ整合性管理要求空間判定部による第１擬似データ整合性管理要求部を用いた第５マルチプロセッサについて図２（Ｃ）および図３、図６、図７、図８、および、プログラム３を用いて以下に説明する。
【０１６３】
第５マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ３０１でレジスタ転送命令１、プロセッサ３０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０１６４】
第５マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ３０１でロード命令２、プロセッサ３０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。このとき図７に示すように、ＣＰＵ７００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部７０１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部７５０とからなり、前記擬似データ整合性管理要求部７５０には、擬似データ整合性管理空間判定部７１０があり、前記擬似データ整合性管理空間判定部７１０は、ロードストアアクセスアドレスを観測することによって、命令２が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０２は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０１およびプロセッサ３０２のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０１６５】
第５マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ３０１でロード命令２を実行中であり、プロセッサ３０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。このとき図７に示すように、ＣＰＵ７００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部７０１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部７５０とからなり、前記擬似データ整合性管理要求部７５０には、擬似データ整合性管理要求空間判定部７１０があり、前記擬似データ整合性管理空間判定部７１０は、ロードストアアクセスアドレスを観測することによって、命令８が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ３０２は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０１は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０２およびプロセッサ３０１のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０１６６】
第５マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ１で加算命令３を実行し、プロセッサ２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１６７】
第５マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ３０１でレジスタ転送命令４を実行し、プロセッサ３０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ８００００１００を格納する命令である。
【０１６８】
第５マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ３０１でストア命令５、プロセッサ３０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０１６９】
第５マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０１７０】
第５マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ２の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０１７１】
第５マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ３０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１７２】
第５マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ３０２は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【０１７３】
以上のことから、第５マルチプロセッサ構成時にプログラム１を実行した場合、実行サイクル２０サイクルであることがわかり、かつ、擬似データ整合性管理要求空間判定部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
【０１７４】
実施の形態４においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費（使用しない共有データ）の削減を、ロードストア命令で実行される論理アドレス空間に応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス空間判定部を用いた擬似データ整合性管理要求部の追加によって特定のプロセス識別子で実行されたロードストア命令実行時のみ、擬似データ整合性管理部の動作を有効にし、プロセッサ状態記憶部に限定されることなく、その課題を改善した。
【０１７５】
なお、本実施の形態４では、擬似データ整合性管理部を有効にする部として、第１擬似データ整合性管理要求部を用いたが、この限りではない。たとえば、図８に記載の第２擬似データ整合性管理要求部を用いることによっても、制御方法は異なるが、同じ効果を得ることができる。図９のように、第１擬似データ整合性管理要求部と、第２擬似データ整合性管理要求部の両方を用いた場合であり、ここの擬似データ整合性管理要求空間判定部が異なっていてもよい。
【０１７６】
なお、本実施の形態１では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０１７７】
（実施の形態５）
しかし、前記論理アドレス空間判定部を用いて、前記第１擬似データ整合性管理部の設定を切り替える場合は、各ユーザプログラムの内容や、スーパーバイザレベルなどの特権レベルに応じて異なり、それらを擬似データ整合性管理部のために、統一したルールでプログラムを作成することは困難である。そのため、実施の形態４の論理アドレス空間判定部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、演算処理装置と比較して、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費（使用しない共有データ）の削減方法として、ロードストア命令で実行される論理アドレスに応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス領域判定部を用いた演算処理装置を図２（Ｃ）、図３、図８、図９、図１０および、プログラム３を用いて説明する。
【０１７８】
図１０は、図３、図９に記載の第１擬似データ整合性管理要求部、および、図８、図９に記載の第２擬似データ整合性管理要求部１０５０の構成を示す図であり、図３、図８、図９に記載のＣＰＵの中の前記第１擬似データ整合性管理要求部および第２擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部１００１と、第１擬似データ整合性管理要求アドレス比較部１０１０からなり、第１擬似データ整合性管理要求アドレス比較部１０１０は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号１０５０をアクティブにする該当アドレスであるかどうかを検出ための第１擬似データ整合性管理要求アドレス記憶部１０１２と、第１擬似データ整合性管理要求アドレスマスク記憶部１０１１と、を有した、第１擬似データ整合性管理要求部１０５０から構成されており、ここで生成されたロードストアアクセスアドレスが図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。図１０の記載の第１擬似データ整合性管理要求信号は、ロードストアアクセスアドレス１００２と第１擬似データ整合性管理要求アドレスマスク記憶部１０１１によって格納されたアドレスマスクとの論理積と、第１擬似データ整合性管理要求アドレス記憶部１０１２によって格納されたアクセスベースアドレスと、前記アドレスマスクとの論理積とを比較し、一致する場合にアクティブとなる。
【０１７９】
マルチプロセッサ構成時で擬似データ整合性管理要求アドレス比較部による第１擬似データ整合性管理要求部を用いた第６マルチプロセッサについて図２（Ｃ）および図３、図８、図９、図１０および、プログラム３を用いて以下に説明する。
【０１８０】
まず、本実施の形態５では、プログラム実行のはじめに、図９の第１擬似データ整合性管理要求アドレス記憶部に、０ｘ４０００００００を設定し、第１擬似データ整合性管理要求アドレスマスク記憶部に、０ｘＦＦＦＦ００００を設定する。なお、この設定方法は、この限りではない。
【０１８１】
第６マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ３０１でレジスタ転送命令１、プロセッサ３０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０１８２】
第６マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ３０１でロード命令２、プロセッサ３０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。このとき図１０に示すように、ＣＰＵ１０００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部１００１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部１０５０とからなり、前記擬似データ整合性管理要求部１０５０には、擬似データ整合性管理アドレス比較部１０１０があり、前記擬似データ整合性管理アドレス比較部１０１０は、ロードストアアクセスアドレスを観測することによって、命令２が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０２は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０１およびプロセッサ３０２のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０１８３】
第６マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ３０１でロード命令２を実行中であり、プロセッサ３０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。このとき図１０に示すように、ＣＰＵ１０００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部１００１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部１０５０とからなり、前記擬似データ整合性管理要求部１０５０には、擬似データ整合性管理要求アドレス比較部１０１０があり、前記擬似データ整合性管理要求アドレス比較部１０１０は、ロードストアアクセスアドレスを観測することによって、命令８が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ３０２は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０１は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０２およびプロセッサ３０１のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０１８４】
第６マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ３０１で加算命令３を実行し、プロセッサ３０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１８５】
第６マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ３０１でレジスタ転送命令４を実行し、プロセッサ３０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ８００００１００を格納する命令である。
【０１８６】
第６マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ３０１でストア命令５、プロセッサ３０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０１８７】
第６マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０１８８】
第６マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ３０２の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０１８９】
第６マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ３０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０１９０】
第６マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ３０２は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【０１９１】
以上のことから、第６マルチプロセッサ構成時にプログラム１を実行した場合、実行サイクル２０サイクルであることがわかり、かつ、擬似データ整合性管理要求アドレス比較部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
【０１９２】
実施の形態５においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費（使用しない共有データ）の削減を、ロードストア命令で実行される論理アドレスに応じて擬似データ整合性有効部を有効とするかどうかを決定する擬似データ整合性管理要求アドレス比較部を用いた擬似データ整合性管理要求部の追加によって特定の論理アドレスで実行されたロードストア命令実行時のみ、擬似データ整合性管理部の動作を有効にし、擬似データ整合性管理要求空間判定部に限定されることなく、その課題を改善した。
【０１９３】
なお、本実施の形態５では、論理アドレスに限定して第１擬似データ整合性管理要求アドレス記憶部と第１擬似データ整合性管理要求アドレスマスク記憶部を用いたアクセスアドレスの比較を行ったが、この限りではない。論理アドレス空間との比較ではなく、第１ローカルキャッシュにアクセスされる物理アドレス、第２ローカルキャッシュにアクセスされる物理アドレスでも同様の効果を発揮することができる。
【０１９４】
なお、実施の形態５では、ロードストア命令によってアクセスされる論理アドレスや物理アドレスの比較を行ったが、比較される対象はこの限りではない。たとえば、これらアドレス比較とあわせて、ロードストア命令実行時のＣＰＵに格納されたプロセス識別子を比較するなどの限定を加えるとなお効果を発揮する。
【０１９５】
なお、本実施の形態５では、第１擬似データ整合性管理要求アドレス記憶部と第１擬似データ整合性管理要求アドレスマスク記憶部は、ＣＰＵからキャッシュアクセスされるローカルキャッシュで有しているデータアクセスベースアドレス記憶部およびその比較部が共有バス制御部を通して他ローカルキャッシュの擬似データ整合性管理部に入力されているがこの限りではない。たとえば、他ローカルキャッシュの第２擬似データ整合性管理要求アドレス記憶部と第２擬似データ整合性管理要求アドレスマスク記憶部を用いた他ローカルキャッシュの擬似データ整合性管理部が制御される場合も、同等の動作をさせることができる。
【０１９６】
なお、本実施の形態１では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０１９７】
（実施の形態６）
しかし、共有データの必要性の制御単位は、同じ論理アドレス空間のなかでもそれぞれ共有データの必要がある場合と、共有データの必要がない場合の両方があると考えられる。たとえば、同じユーザレベルで、同じプロセス識別子で、同じアドレス空間によっても、プログラムのページアドレスによって、共有データが必要になるときと、そうでないときが存在する。そのため、実施の形態４の擬似データ整合性管理要求空間判定部や、実施の形態５の擬似データ整合性管理要求アドレス比較部を用いた擬似データ整合性管理要求部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。  そこで、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費（使用しない共有データ）の削減方法として、アクセスされる論理アドレス空間のＴＬＢの第１擬似データ整合性管理要求フラグ記憶部によって擬似データ整合性管理部の動作を制御する演算処理装置を図２（Ｃ）、図３、図８、図９、図１１、および、プログラム３を用いて説明する。
【０１９８】
図１１は、図３、図９に記載の第１擬似データ整合性管理要求部の構成を示す図であり、図３、図８、図９に記載のＣＰＵの中の前記第１擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部１１０１と、命令実行時のプロセッサの状態を記憶するプロセッサ状態記憶部１１０２と、命令実行時のプロセス番号を記憶するプロセス識別子記憶部１１０３と、ＴＬＢ１１０５から構成される、第１擬似データ整合性管理要求アドレス変換部１１５０からなり、第１擬似データ整合性管理要求アドレス変換部１１８０は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号をアクティブにする該当アドレスであるかどうかを検出ためのＴＬＢタグ部の論理アクセスタグ部１１１０と物理アドレスデータ部１１４０とからなり、論理アドレスタグ部１１１０には、各エントリに、論理アドレスタグ１１１１〜１１１８と、特権レベル１１２１〜１１２８、プロセス識別子１１３１〜１１３８が格納されている。物理アドレス部１１４０には、論理アドレスタグ部の各エントリに対応して物理アドレス１１４１〜１１４８と、第１擬似データ整合性管理要求フラグ１１５１〜１１５８が格納されている。ロードストア命令が実行されると、ロードストアアクセスアドレス部１１０１から論理アドレスが入力され、プロセッサ状態記憶部１１０２から特権レベルを示す信号が入力され、プロセス識別子記憶部１１０３からは、プロセス番号が入力される。上記入力信号と一致する論理アドレスタグエントリがあった場合に、ＴＬＢがヒットし、そのエントリに対応する物理アクセスアドレスと、擬似データ整合性管理要求フラグが出力され、ロードストアアクセスアドレスと、擬似データ整合性管理要求信号１１７３として、図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号１１７３が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。
【０１９９】
マルチプロセッサ構成時で擬似データ整合性管理要求アドレス変換部による第１擬似データ整合性管理要求部を用いた第７マルチプロセッサについて図２（Ｃ）および図３、図８、図９、図１１および、プログラム３を用いて以下に説明する。
【０２００】
まず、本実施の形態６では、プログラム実行のはじめに、図１１の第１擬似データ整合性管理要求アドレス変換部の論理アドレスタグ１１１１に、０ｘ４０００００００を設定し、物理アドレスタグ１１４１に、物理アドレス０ｘ８０００００００と、擬似データ整合性管理要求フラグ１１５１を設定する。また、説明を簡単にするため、プロセス識別子１１２１は０、特権レベル１１３１の設定はスーパーバイザレベル、であるとする。なお、この設定方法は、この限りではない。
【０２０１】
第７マルチプロセッサは、図２（Ｃ）のＴ１時にプロセッサ３０１でレジスタ転送命令１、プロセッサ３０２でクリア命令６を実行する。命令１は、レジスタＡ０にアドレス０ｘ４０００００００を格納する命令であり、命令６は、レジスタＤ０をクリア（０にする）命令である。
【０２０２】
第７マルチプロセッサは、図２（Ｃ）のＴ２時にプロセッサ３０１でロード命令２、プロセッサ３０２でレジスタ転送命令７を実行する。命令２は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令であり、命令７は、レジスタＡ０に０ｘ４００００１０４を格納する命令である。このとき図１１に示すように、ＣＰＵ１１００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部１１０１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部１１５０とからなり、前記擬似データ整合性管理要求部１１５０には、擬似データ整合性管理アドレス変換部１１８０があり、前記擬似データ整合性管理アドレス変換部１１８０は、ロードストアアクセスアドレスを観測することによって、命令２が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０２は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０１およびプロセッサ３０２のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはＴ２からＴ８の７サイクルとなり、命令２のキャッシュリフィルアクセスによって共有バスがＴ８からＴ１１の間占有される。
【０２０３】
第７マルチプロセッサは、図２（Ｃ）のＴ３時にプロセッサ３０１でロード命令２を実行中であり、プロセッサ３０２でロード命令８を実行する。命令８は、レジスタＡ０に示されているアドレスからデータをレジスタＤ０に読み出す（ロード）命令である。このとき図１１に示すように、ＣＰＵ１１００は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部１１０１と、第１擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部１１５０とからなり、前記擬似データ整合性管理要求部１１５０には、擬似データ整合性管理要求アドレス変換部１１８０があり、前記擬似データ整合性管理要求アドレス変換部１１８０は、ロードストアアクセスアドレスを観測することによって、命令８が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ３０２は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ３０１は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ３０２およびプロセッサ３０１のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはＴ３からＴ１２の１０サイクルとなり、命令８のキャッシュリフィルアクセスによって共有バスがＴ１２からＴ１５の間占有される。
【０２０４】
第７マルチプロセッサは、図２（Ｃ）のＴ９時にプロセッサ１で加算命令３を実行し、プロセッサ３０２でロード命令８を実行中である。命令３は、即値０ｘ０５を、レジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０２０５】
第７マルチプロセッサは、図２（Ｃ）のＴ１０時にプロセッサ３０１でレジスタ転送命令４を実行し、プロセッサ３０２でロード命令８を実行中である。命令４は、レジスタＡ１にアドレス０ｘ８００００１００を格納する命令である。
【０２０６】
第７マルチプロセッサは、図２（Ｃ）のＴ１１時にプロセッサ３０１でストア命令５、プロセッサ３０２でレジスタ転送命令９を実行する。命令５は、レジスタＤ０の内容をレジスタＡ１が示すメモリに書き込む（ストア）命令である。命令５のアクセスによって、プロセッサ３０１は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０２は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ３０１のアクセス内容でキャッシュメモリを検索する。プロセッサ３０２は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１１からＴ１６の６サイクルとなり、命令５のキャッシュリフィルアクセスによって共有バスがＴ１６からＴ１９の間占有される。
【０２０７】
第７マルチプロセッサは、図２（Ｃ）のＴ１３時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でデータ転送命令９を実行中である。命令９は、レジスタＡ１に４００００００４を格納する命令である。
【０２０８】
第７マルチプロセッサは、図２（Ｃ）のＴ１４時にプロセッサ３０１でストア命令５を実行中であり、プロセッサ３０２でロード命令１０を実行する。命令１０は、レジスタＡ１に示されているアドレスからデータをレジスタＤ１に読み出す（ロード）命令である。命令１０のアクセスは、図２（Ｃ）のＴ２時に命令２に対して、プロセッサ３０２の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、Ｔ１４の１サイクル実行となる。
【０２０９】
第７マルチプロセッサは、図２（Ｃ）のＴ１５時にプロセッサ３０２で加算命令１１を実行する。命令１１は、レジスタＤ１をレジスタＤ０と加算し、その結果をＤ０に格納する命令である。
【０２１０】
第７マルチプロセッサは、図２（Ｃ）のＴ１６時にストア命令１２を実行する。命令１２は、レジスタＤ０の内容をレジスタＡ０が示すメモリに書き込む（ストア）命令である。命令１２のアクセスによって、プロセッサ３０２は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ３０１は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ３０２のアクセス内容でキャッシュメモリを検索する。プロセッサ３０１は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはＴ１６からＴ２０の５サイクルとなり、命令１２のキャッシュライトアクセスによって共有バスがＴ２０からＴ２３の間占有される。
【０２１１】
以上のことから、第７マルチプロセッサ構成時にプログラム３を実行した場合、実行サイクル２０サイクルであることがわかり、かつ、擬似データ整合性管理要求アドレス変換部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
【０２１２】
実施の形態６においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費（使用しない共有データ）の削減を、ロードストア命令実行時のアクセスする論理アドレス空間から変換されるＴＬＢに格納された擬似データ整合性管理要求フラグ信号によって判定される擬似データ整合性管理要求アドレス変換部によって、擬似データ整合性管理部の動作を有効にし、特権レベルやプロセス識別子、アクセスする論理アドレス空間に限定されることなく、その課題を改善した。
【０２１３】
なお、本実施の形態６のＴＬＢでは、論理アドレスタグ部の構成に、プロセス識別子や、特権レベルを格納し、比較対照としているが、この限りではない。たとえば、プロセス識別子を使用しないグローバルビットの設定などを用いてもよい。
【０２１４】
なお、本実施の形態１では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
【０２１５】
（実施の形態７）
実施の形態５および実施の形態６に示したように、第１擬似データ整合性管理要求アドレス比較部とＴＬＢの擬似データ整合性管理要求アドレス変換部によって、ページ単位、プロセス単位による共有データが必要・不必要が制御できるようになった。しかし、プログラムの中には、リアルタイム処理が必要になる場合と、その必要性が低い場合がある。その場合、実施の形態１から実施の形態６による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、キャッシュ容量の浪費（使用しない共有データ）の削減方法を改善しつつ、自ローカルキャッシュには、不要なキャッシュリプレイスを発生されることなく選択的に擬似データ整合性管理部によるキャッシュ間データ転送を行うために、擬似データ整合性管理共有判定部によってリフィルされたデータを、ロードストア命令を発行したＣＰＵに接続されたローカルデータキャッシュのキャッシュメモリに格納するかどうかを設定することを特徴とする擬似データ整合性管理部の動作を制御する演算処理装置として、図４、図５、図７、図１０、図１１を用いて説明する。
【０２１６】
図４は、前記第１擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部４０１と、命令をデコードするデコーダと、そのデコーダの出力から第１擬似データ整合性管理要求信号を生成する第１擬似データ整合性管理要求命令検出部４２０を有した、第１擬似データ整合性管理要求部４５０から構成されており、ここで生成されたロードストアアクセスアドレスが図３に記載の各ローカルキャッシュにそれぞれ出力され、第１擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。
【０２１７】
このとき、第１擬似データ整合性管理要求命令検出部は、命令から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
【０２１８】
図５は、前記第１擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部５０１と、命令実行時のプロセッサの状態を示すプロセッサ状態記憶部５１０と、前記プロセッサ状態記憶部５１０の出力から第１擬似データ整合性管理要求モード信号を生成する第１擬似データ整合性管理要求モード検出部５２０を有した、第１擬似データ整合性管理要求部から構成されており、ここで生成されたロードストアアクセスアドレス５０２が図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号５２１が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。このとき、第１擬似データ整合性管理要求モード記憶部５２０は、プロセッサ状態記憶部５１０から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
【０２１９】
図７は、前記第１擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部７０１と、ロードストア命令実行時のロードストアアドレスより図６に示したマッピング規則により擬似データ整合性管理要求信号をアクティブにするかどうかを判定する擬似データ整合性管理要求空間判定部７１０を有した、第１擬似データ整合性管理要求部７５０から構成されており、ここで生成されたロードストアアクセスアドレスが図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号７１１が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。このとき、第１擬似データ整合性管理要求空間判定部７１０は、図６に示したマッピング規則から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
【０２２０】
図１０は、前記第１擬似データ整合性管理要求部および第２擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部１００１と、第１擬似データ整合性管理要求アドレス比較部１０１０からなり、第１擬似データ整合性管理要求アドレス比較部１０１０は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号１０５０をアクティブにする該当アドレスであるかどうかを検出ための第１擬似データ整合性管理要求アドレス記憶部１０１２と、第１擬似データ整合性管理要求アドレスマスク記憶部１０１１と、を有した、第１擬似データ整合性管理要求部１０５０から構成されており、ここで生成されたロードストアアクセスアドレスが図３に記載の各ローカルキャッシュに出力され、第１擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。図１０の記載の第１擬似データ整合性管理要求信号は、ロードストアアクセスアドレス１００２と第１擬似データ整合性管理要求アドレスマスク記憶部１０１１によって格納されたアドレスマスクとの論理積と、第１擬似データ整合性管理要求アドレス記憶部１０１２によって格納されたアクセスベースアドレスと、前記アドレスマスクとの論理積とを比較し、一致した場合、第１擬似データ整合性管理要求アドレス比較部１０１０は、擬似データ整合性管理要求信号をアクティブにするかどうかと、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
【０２２１】
図１１は、前記第１擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部１１０１と、命令実行時のプロセッサの状態を記憶するプロセッサ状態記憶部１１０２と、命令実行時のプロセス番号を記憶するプロセス識別子記憶部１１０３と、ＴＬＢ１１０５から構成される、第１擬似データ整合性管理要求アドレス変換部１１５０からなり、第１擬似データ整合性管理要求アドレス変換部１１８０は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号をアクティブにする該当アドレスであるかどうかを検出ためのＴＬＢタグ部の論理アクセスタグ部１１１０と物理アドレスデータ部１１４０とからなり、論理アドレスタグ部１１１０には、各エントリに、論理アドレスタグ１１１１〜１１１８と、特権レベル１１２１〜１１２８、プロセス識別子１１３１〜１１３８が格納されている。物理アドレス部１１４０には、論理アドレスタグ部の各エントリに対応して物理アドレス１１４１〜１１４８と、第１擬似データ整合性管理要求フラグ１１５１〜１１５８が格納されている。ロードストア命令が実行されると、ロードストアアクセスアドレス部１１０１から論理アドレスが入力され、プロセッサ状態記憶部１１０２から特権レベルを示す信号が入力され、プロセス識別子記憶部１１０３からは、プロセス番号が入力される。上記入力信号と一致する論理アドレスタグエントリがあった場合に、ＴＬＢがヒットし、そのエントリに対応する物理アクセスアドレスと、擬似データ整合性管理要求フラグが出力され、ロードストアアクセスアドレスと、擬似データ整合性管理要求信号１１７３として、図３に記載の各ローカルキャッシュに出力され、共有バス制御部に出力される。ＴＬＢがヒットした場合、第１擬似データ整合性管理要求アドレス変換部（ＴＬＢ）１１０５は、擬似データ整合性管理要求信号をアクティブにするかどうかと、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
【０２２２】
以上のように、図４、図５、図７、図１０、図１１で示した、第１ローカルキャッシュメモリのデータを格納するかどうかを決定する信号は、擬似データ整合性管理共有判定部に対応し、この信号がアクティブの場合は、ＣＰＵからロードストア命令を実行したプロセッサのローカルキャッシュのキャッシュメモリにはデータを格納せず、共有バス制御部から得られたデータをＣＰＵへ転送する。
【０２２３】
図１４は、キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。図１３のフローチャートと同じ点は説明を省略して、異なる点を中心に説明する。異なる点は、ステップＳ１０２の判定内容が若干異なる点と、新たにステップＳ２０２ａ、Ｓ２０３ａが追加されている点とである。
【０２２４】
図１４のステップＳ１０２においてプロセッサ１０２は、検索に成功したか否かの判定だけでなく、擬似データ整合性管理要求信号をアクティブであるか否かを判定する。検索に失敗し、かつ擬似データ整合性管理要求信号をアクティブである場合には、Ｓ１０３において擬似共有情報が送信される。
【０２２５】
ステップ２０２ａにおいて、プロセッサ１０２は、第１ローカルキャッシュメモリにデータを格納するかどうかを決定する信号がアクティブであるか否かを判定する。つまり、プロセッサ１０２は、この信号がアクティブであればリフィルすると決定し、Ｓ２０３に進み、アクティブでなければリフィルしないと決定し、Ｓ２０３ａに進む。
【０２２６】
ステップ２０３ａにおいて、プロセッサ１０２は、外部メモリ読み出しデータＳ４またはキャッシュ間転送データＳ５をキャッシュメモリにリフィルしないで、外部メモリ読み出しデータＳ４またはキャッシュ間転送データＳ５のうちのキャッシュミスしたデータを直接ＣＰＵに転送する。
【０２２７】
実施の形態７においては、選択的に擬似データ整合性管理部による、データリフィルアクセスにおいて、ＣＰＵからロードストア命令を実行したプロセッサのローカルキャッシュのキャッシュメモリにデータを格納するかどうかを判定し、局所性低下の影響が大きいデータアクセスに対しては格納を行い、参照の局所性よりも、既存キャッシュメモリの保護等によって自ローカルキャッシュの状態を変更したくない（キャッシュリプレイスしたくない）データアクセスに対しては、格納を行わないことによって、キャッシュ容量の浪費（使用しない共有データ）の削減方法を改善しつつ、自ローカルキャッシュには、不要なキャッシュリプレイスを発生されることなく選択的に擬似データ整合性管理部によるキャッシュ間データ転送を行うために、擬似データ整合性管理共有判定部によってリフィルされたデータを、ロードストア命令を発行したＣＰＵに接続されたローカルデータキャッシュのキャッシュメモリに格納するかどうかを設定できることを説明した。
【０２２８】
（実施の形態８）
実施の形態７では、データアクセスに対するリアルタイム性能要求が高いデータアクセスと、低いデータアクセスがあって、リアルタイム性が高いデータがキャッシュされている状態は選択的に保護されるようにするために、それ以外のデータに対して、擬似データ整合性管理部によって、他のキャッシュにリフィル動作を行わせ、そのデータも他のキャッシュのみにキャッシュする方法を説明し、擬似データ整合性管理部による局所性低下の課題を解決し、その機能を追加した場合に考えられるキャッシュ容量の低下の課題を解決し、リアルタイム性および、非リアルタイム性プログラムにおける、キャッシュ容量の有効活用を実現した。
【０２２９】
しかし、プログラムの中には、キャッシュアクセスで大量データを処理し、その演算結果を格納するだけで、その結果を再利用、再計算しない（もしくは、時間局所性を越える時間間隔をもって再アクセスが発生する）処理もある。このような目的で使用されるプログラムとしては、リアルタイム性の低いデータアクセスでも高速処理は要求される（ＣＰＵのパフォーマンスとして人間が知覚できる）、グラフィック処理などが考えられる。この様なデータ処理は、大量なデータの読み込みを必要とする演算処理が一般的に多いと考えられる。そこで、本実施の形態８ではキャッシュ容量の浪費（使用しない共有データ）の削減方法を改善しつつ、グラフィック処理などにみられる大量データの読み出しアクセスに対しても擬似データ整合性管理部によって、本来発生しないキャッシュアクセスを、擬似データ整合性管理要求回数記憶部によってバックグラウンドで発生されるリフィル動作の発行回数を変更することによって、参照局所性を改善することができる擬似データ整合性管理部の動作を制御する演算処理装置として、図１２を用いて説明する。
【０２３０】
図１２は、前記データ整合性管理部にかかわる機能ブロックの説明を記載している。各ＣＰＵには、キャッシュリフィル時に使用されるロードストアアクセスアドレス１２０１を入力し、擬似データ整合性管理部によって起動されるリフィル動作の回数を決定する擬似データ整合性管理要求回数記憶部１２５０を有している。前記擬似データ整合性管理要求回数記憶部１２５０には、リフィルアクセスをカウントするリフィルアクセス制御カウンタ記憶部１２１１と、擬似データ整合性リフィル要求回数記憶部１２２０を有しており、リフィルアクセス制御カウンタ記憶部は、０入力と、リフィルアクセス制御カウンタ１２３０の出力をリフィル回数比較部のよって生成される信号１２６０をセレクト信号とするセレクタ１２１１の出力を入力とし、リフィルアクセス制御カウンタ記憶部の出力は、前記リフィルアクセス制御カウンタ１２３０に接続されている。また、前記リフィルアクセス制御カウンタ記憶部の出力を左に２ビットシフトした信号１２０４を生成し、ロードストアアクセスアドレス１２０２と加算することによってリフィルアドレスを生成するリフィルアドレス生成部１２０５を有している。また擬似データ整合性リフィル要求回数記憶部の出力とリフィルアクセスカウンタ記憶部の比較を行って一致しない場合は、リフィル要求信号１２６０として、共有バス制御部に出力される。以上のような第１擬似データ整合性管理要求回数記憶部を有した擬似データ整合性管理部によって、大容量データを必要とするキャッシュアクセスデータに対しては、擬似データ整合性管理部によって、前記データ整合性リフィル要求回数記憶部に設定された回数だけリフィルアクセスを発行するため、ＣＰＵより、データアクセスがあった場合でも、すでにキャッシュリフィルが行われているため、参照局所性が上がるということが説明できた。
【０２３１】
なお、実施の形態８には、擬似データ整合性リフィル回数記憶部によってリフィル回数を設定することで説明したが、この限りではない。実施の形態２から実施の形態６に記載の方法のように、命令コードにその情報をいれる擬似データ整合性管理命令検出部や、プロセッサ状態記憶部にその回数を記憶する擬似データ整合性管理要求モード検出部や、アクセスするアドレス空間によって決定する擬似データ整合性管理要求空間判定部や、アクセスするアドレスをあらかじめ設定れているアドレスと比較する擬似データ整合性管理アドレス比較部や、ＴＬＢのデータとして記憶する擬似データ整合性管理アドレス変換部を用いることもできる。
【０２３２】
（実施の形態９）
実施の形態１から実施の形態８では、命令ローカルキャッシュにデータローカルキャッシュのアクセスに対して、擬似データ整合性管理部を動作させる説明は行わなかった。しかし、前記実施の形態８に記載のように、グラフィック処理などの大容量データをキャッシュする場合は、既存のデータキャッシュの状態がリプレイスされるため、キャッシュのヒット率が低下することが考えられる。そのため、データローカルキャッシュからのキャッシュアクセス伝達部に対して、命令ローカルキャッシュの擬似データ整合性管理部が動作することによって、命令ローカルキャッシュに上記データを格納する方がキャッシュ効率がよい。なぜなら、このような命令を実行する場合は、比較的命令コードは繰り返しが多く、命令キャッシュヒット率が高く、使用されるキャッシュ容量も少ない。また、データキャッシュに関しては、一般的に命令ローカルキャッシュよりキャッシュヒット率が低い傾向にあり、さらに、大容量のキャッシュリプレイスが発生すると、さらにデータローカルキャッシュのヒット率が低下する。そこで、命令ローカルキャッシュ擬似データ整合性管理部は有用である。しかし、命令ローカルキャッシュは、データキャッシュと異なり、ダーティービットを管理していない。そこで、ダーティービットを有していないキャッシュに擬似データ整合性管理部によってキャッシュリフィルされても、データの整合性が維持できる部について説明する。この演算処理装置は、図１に記載の演算処理装置と同じ構造で動作できるため、図１を用いて説明する。
【０２３３】
図１において、キャッシュメモリ１３２に格納されたデータがあり、キャッシュメモリ１４２，１５２，１６２には同じデータは格納されていないとする。ここで、プロセッサ１１２から同データに対して書き込みがあった場合、データローカルキャッシュ１６１は、キャッシュアクセス伝達部１８４を用いて、共有バス制御部１７０に信号を伝達する。そこで、命令ローカルキャッシュ１３１のキャッシュアクセス監視部１３５が動作し、キャッシュメモリ１３２を検索するとキャッシュデータが格納されている。この場合に、擬似データ整合性管理部が動作し、擬似データ整合性管理要求信号がアクティブであった場合は、擬似データ整合性管理要求部は動作を行う。ただし、ここでは、書き込みアクセスであって、かつ、ダーティービットを持たないキャッシュメモリであるため、擬似データ整合性管理要求部は、その書き込みデータをキャッシュメモリに書き込みを行い、かつ、擬似データ整合性管理部として、外部メモリへも書き込みアクセスを発行する。以上のように、命令ローカルキャッシュを擬似データ整合性管理部によって管理することによって、データ、命令間のキャッシュ共有が可能となるため、グラフィック処理などの大容量データをキャッシュする場合は、本実施の形態９によって、データアクセスの参照局所性効率を有効に利用し、既存のデータキャッシュのリプレイスが発生せず、キャッシュのヒット率が低下することも防止できることを説明した。本実施の形態９は、擬似データ整合性管理部を有し、データ共有記憶部を有し、リアルタイム性能を要求されるプログラムを実行する演算処理装置に適用して有用であり、かつ、データ処理結果のノンアロケート実行を行う場合の命令ローカルキャッシュに適用して有用である。
【０２３４】
なお、本実施の形態９では、命令ローカルキャッシュへの書き込みに対して、キャッシュメモリを更新したが、この限りではない。たとえば、キャッシュメモリの書き込みが発生した時点で、キャッシュメモリを無効化し、外部メモリへの書き出しを行ってもよい。
【０２３５】
なお、本実施の形態９では、マルチプロセッサ構成時を参考に説明したがこの限りではない。
【産業上の利用可能性】
【０２３６】
本発明の擬似データ整合性管理部は、マルチプロセッサシステムにおけるスヌープキャッシュ機構に利用して有効であり、基本的な制御構造を変更することなく、キャッシュアクセスの参照局所性とスヌープキャッシュの不要な共有データの削減、および、命令、データローカルキャッシュ間のキャッシュ間転送を有効に行うことができる。さらに、リアルタイム性を要求されるプログラムが共存している場合は、自ローカルキャッシュの書き換えを行わないことによって、リアルタイム性を要求されるキャッシュデータを保護し、かつ、キャッシュ間のデータ転送を利用して、メモリアクセス効率をあげることができる。
【図面の簡単な説明】
【０２３７】
【図１】実施の形態１に係る演算処理装置の機能ブロック構成図である。
【図２】プログラム実行時間を説明する図である。
【図３】実施の形態２に係る演算処理装置の機能ブロック構成図である。
【図４】第１擬似データ整合性管理要求部の構成を示す図である。
【図５】実施の形態３に係る第１擬似データ整合性管理要求部の構成を示す図であり、
【図６】実施の形態４に係る論理アドレス空間のアクセスに対する物理アドレス空間のマッピング規則を示した図である。
【図７】第１擬似データ整合性管理要求部の構成を示す図である。
【図８】演算処理装置の機能ブロック構成を示す図である。
【図９】演算処理装置の機能ブロック構成を示す図である。
【図１０】実施の形態５に係る第１、第２擬似データ整合性管理要求部の各構成を示す図である。
【図１１】実施の形態５に係る第１擬似データ整合性管理要求部の構成を示す図である。
【図１２】前記データ整合性管理部にかかわる機能ブロックの説明図である。
【図１３】キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。
【図１４】キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。
【図１５Ａ】動作説明のためのプログラム１を示す図である。
【図１５Ｂ】動作説明のためのプログラム２を示す図である。
【図１５Ｃ】動作説明のためのプログラム３を示す図である。
【符号の説明】
【０２３８】
１３４  キャッシュアクセス伝達部
１３５  キャッシュアクセス監視部
１３６  データ整合性管理部
１３７  擬似データ整合性管理部
１７０  共有バス制御部
３８１  第１擬似データ整合性管理要求部
４２０  擬似データ整合性管理要求命令検出部
５２０  擬似データ整合性管理要求モード記憶部
７１０  擬似データ整合性管理要求空間判定部
８３８  第２擬似データ整合性管理要求部
１０１０  第１擬似データ整合性管理アドレス比較部
１１０５  第１擬似データ整合性管理アドレス変換部
１２５０  擬似データ整合性管理要求回数記憶部
【図１】
2006085292.tif 000003
【図２】
2006085292.tif 000004
【図３】
2006085292.tif 000005
【図４】
2006085292.tif 000006
【図５】
2006085292.tif 000007
【図６】
2006085292.tif 000008
【図７】
2006085292.tif 000009
【図８】
2006085292.tif 000010
【図９】
2006085292.tif 000011
【図１０】
2006085292.tif 000012
【図１１】
2006085292.tif 000013
【図１２】
2006085292.tif 000014
【図１３】
2006085292.tif 000015
【図１４】
2006085292.tif 000016
【図１５Ａ】
2006085292.tif 000017
【図１５Ｂ】
2006085292.tif 000018
【図１５Ｃ】
2006085292.tif 000019