JPH0962577A - 情報処理システム及び情報処理方法 - Google Patents
情報処理システム及び情報処理方法Info
- Publication number
- JPH0962577A JPH0962577A JP7213373A JP21337395A JPH0962577A JP H0962577 A JPH0962577 A JP H0962577A JP 7213373 A JP7213373 A JP 7213373A JP 21337395 A JP21337395 A JP 21337395A JP H0962577 A JPH0962577 A JP H0962577A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data block
- main memory
- memory
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】キャッシュメモリの内容を、同期命令により一
斉に主記憶にライトバックすると、その処理によりシス
テムの性能が低下する。 【解決手段】キャッシュメモリに読み込んだデータブロ
ックを更新する際、更新されたデータブロックの数を計
数して状態フラグカウンタ117に記憶しておく。この
値が、規定値メモリに予め設定された値を越えたなら、
キャッシュ内の更新されたデータブロックを主記憶にラ
イトバックする。このため、同期命令により行うライト
バックに集中せず、性能を落とすことを防止できる。
斉に主記憶にライトバックすると、その処理によりシス
テムの性能が低下する。 【解決手段】キャッシュメモリに読み込んだデータブロ
ックを更新する際、更新されたデータブロックの数を計
数して状態フラグカウンタ117に記憶しておく。この
値が、規定値メモリに予め設定された値を越えたなら、
キャッシュ内の更新されたデータブロックを主記憶にラ
イトバックする。このため、同期命令により行うライト
バックに集中せず、性能を落とすことを防止できる。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュを備え
た複数のプロセッサが同期を取って動作する情報処理装
置に関するものである。
た複数のプロセッサが同期を取って動作する情報処理装
置に関するものである。
【0002】
【従来の技術】並列計算機システムにおいては、プロセ
ッサから発行される主記憶に対するアクセス要求に高速
に応じるため、及び相互結合網のトラフィックを減じる
ために、各プロセッサにキャッシュ・メモリを付随させ
ることが多い。各プロセッサから発行されるメモリ・ア
クセスはキャッシュ・メモリを介して行われ、キャッシ
ュ・メモリ中にはそれらメモリ・アクセス対象のデータ
・ブロックのコピーが置かれることになる。並列計算機
システムにおいては、複数あるキャッシュ・メモリ中に
同一データ・ブロックのコピーが各々存在する状況が生
じ得るが、それらコピー間の一貫性を保証するために、
従来様々な方法が考案/実現されている。
ッサから発行される主記憶に対するアクセス要求に高速
に応じるため、及び相互結合網のトラフィックを減じる
ために、各プロセッサにキャッシュ・メモリを付随させ
ることが多い。各プロセッサから発行されるメモリ・ア
クセスはキャッシュ・メモリを介して行われ、キャッシ
ュ・メモリ中にはそれらメモリ・アクセス対象のデータ
・ブロックのコピーが置かれることになる。並列計算機
システムにおいては、複数あるキャッシュ・メモリ中に
同一データ・ブロックのコピーが各々存在する状況が生
じ得るが、それらコピー間の一貫性を保証するために、
従来様々な方法が考案/実現されている。
【0003】プロセッサ間やプロセッサ・主記憶間を相
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
【0004】また、プロセッサ間やプロセッサ・主記憶
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難なものを用いた並列計算機システ
ムにおいては、ディレクトリ方式が用いられる。ディレ
クトリ方式は、データ・ブロック単位、あるいはそれに
類する単位毎に、いずれのキャッシュ・メモリ中にその
コピーが存在するかというキャッシング情報を、ディレ
クトリと呼ばれる記憶装置に格納・管理しておき、プロ
セッサからのトランザクション発行時にはディレクトリ
から得られるキャッシング情報をもとにして、トランザ
クション対象データ・ブロックのコピーを有するキャッ
シュ・メモリにトランザクションの発生を通知し、コピ
ー間の一貫性保持を図るものである。
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難なものを用いた並列計算機システ
ムにおいては、ディレクトリ方式が用いられる。ディレ
クトリ方式は、データ・ブロック単位、あるいはそれに
類する単位毎に、いずれのキャッシュ・メモリ中にその
コピーが存在するかというキャッシング情報を、ディレ
クトリと呼ばれる記憶装置に格納・管理しておき、プロ
セッサからのトランザクション発行時にはディレクトリ
から得られるキャッシング情報をもとにして、トランザ
クション対象データ・ブロックのコピーを有するキャッ
シュ・メモリにトランザクションの発生を通知し、コピ
ー間の一貫性保持を図るものである。
【0005】
【発明が解決しようとする課題】従来、並列計算機シス
テムにおける複数キャッシュ・メモリ中に存在するコピ
ー間の一貫性をとるための動作は、上述の通りトランザ
クション毎に行われるものであった。しかしこれは、メ
モリに対するアクセス・レイテンシを抑えるために様々
考案/実現されている緩いメモリ・コンシステンシ・モ
デルにはそぐわないものである。一般に緩いメモリ・コ
ンシステンシ・モデルでは、処理の過程に同期ポイント
を定め、処理が同期ポイントに達した時点で、それまで
に発行したメモリ・トランザクションをシステム中に反
映させることを義務付けている。このことは、同期ポイ
ント以前には各メモリ・トランザクション結果を反映さ
せる必要がないことを意味する。即ち、緩いメモリ・コ
ンシステンシ・モデルを採る並列計算機システムにおい
て従来のキャッシュ一貫性保持手法を用いた場合、その
時点では不要な一貫性保持動作がトランザクション毎に
入ることとなり、そのオーバヘッドは、緩いメモリ・コ
ンシステンシ・モデルの目的に反し、不用意にメモリ・
アクセス・レイテンシを嵩ませていると言える。
テムにおける複数キャッシュ・メモリ中に存在するコピ
ー間の一貫性をとるための動作は、上述の通りトランザ
クション毎に行われるものであった。しかしこれは、メ
モリに対するアクセス・レイテンシを抑えるために様々
考案/実現されている緩いメモリ・コンシステンシ・モ
デルにはそぐわないものである。一般に緩いメモリ・コ
ンシステンシ・モデルでは、処理の過程に同期ポイント
を定め、処理が同期ポイントに達した時点で、それまで
に発行したメモリ・トランザクションをシステム中に反
映させることを義務付けている。このことは、同期ポイ
ント以前には各メモリ・トランザクション結果を反映さ
せる必要がないことを意味する。即ち、緩いメモリ・コ
ンシステンシ・モデルを採る並列計算機システムにおい
て従来のキャッシュ一貫性保持手法を用いた場合、その
時点では不要な一貫性保持動作がトランザクション毎に
入ることとなり、そのオーバヘッドは、緩いメモリ・コ
ンシステンシ・モデルの目的に反し、不用意にメモリ・
アクセス・レイテンシを嵩ませていると言える。
【0006】しかし、キャッシュの一貫性保持動作の実
施を、緩いメモリ・コンシステンシ・モデルでメモリ・
トランザクションを反映する必要が生じる同期ポイント
の時点にまで遅延させることによって、不要なキャッシ
ュ一貫性保持動作によるオーバーヘッドを削減するよう
なシステムにおいては、同期ポイントの時点において集
中的にキャッシュの一貫性保持動作が行われるため、同
期ポイントの時点で相互結合網上に集中的にトラフィッ
クが発生することになり、その結果、相互結合網の利用
効率が極端に低下する恐れがあった。
施を、緩いメモリ・コンシステンシ・モデルでメモリ・
トランザクションを反映する必要が生じる同期ポイント
の時点にまで遅延させることによって、不要なキャッシ
ュ一貫性保持動作によるオーバーヘッドを削減するよう
なシステムにおいては、同期ポイントの時点において集
中的にキャッシュの一貫性保持動作が行われるため、同
期ポイントの時点で相互結合網上に集中的にトラフィッ
クが発生することになり、その結果、相互結合網の利用
効率が極端に低下する恐れがあった。
【0007】本発明は上記従来例に鑑みてなされたもの
で、キャッシュ・メモリ及びキャッシュ・メモリの一貫
性保持動作機構を提供し、同期ポイント時点に集中する
相互結合網上のトラフィックを分散させることで、相互
結合網の利用効率低下,及び同期動作に伴う処理のオー
バーヘッドを軽減することが可能であり、システム全体
の処理能力を向上させる、相互結合網で互いに結合され
た情報処理システム及び情報処理方法を提供することを
目的とする。
で、キャッシュ・メモリ及びキャッシュ・メモリの一貫
性保持動作機構を提供し、同期ポイント時点に集中する
相互結合網上のトラフィックを分散させることで、相互
結合網の利用効率低下,及び同期動作に伴う処理のオー
バーヘッドを軽減することが可能であり、システム全体
の処理能力を向上させる、相互結合網で互いに結合され
た情報処理システム及び情報処理方法を提供することを
目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に本発明の情報処理システムは次のような構成からな
る。すなわち、複数のプロセッサとそれぞれに付随する
キャッシュ・メモリと、主メモリ、及びキャッシュ・メ
モリと主メモリとを相互に接続する結合網を含む情報処
理システムにおいて、各プロセッサの処理が予め定めた
段階に達した場合、当該プロセッサに付随するキャッシ
ュ・メモリ中に存在するデータ・ブロックを主メモリに
反映し、当該データ・ブロックの内容の一貫性を保持す
る一貫性保持処理を実行する。
に本発明の情報処理システムは次のような構成からな
る。すなわち、複数のプロセッサとそれぞれに付随する
キャッシュ・メモリと、主メモリ、及びキャッシュ・メ
モリと主メモリとを相互に接続する結合網を含む情報処
理システムにおいて、各プロセッサの処理が予め定めた
段階に達した場合、当該プロセッサに付随するキャッシ
ュ・メモリ中に存在するデータ・ブロックを主メモリに
反映し、当該データ・ブロックの内容の一貫性を保持す
る一貫性保持処理を実行する。
【0009】また、望ましくは、前記プロセッサによる
処理が前記予め定めた段階に達する以前において、キャ
ッシュ・メモリ中に存在するデータ・ブロックが所定の
条件を満たした場合には、当該キャッシュ・メモリ中に
存在するデータ・ブロックを主メモリに反映し、当該デ
ータ・ブロックの内容の一貫性を保持する一貫性保持処
理を実行することを特徴とする。
処理が前記予め定めた段階に達する以前において、キャ
ッシュ・メモリ中に存在するデータ・ブロックが所定の
条件を満たした場合には、当該キャッシュ・メモリ中に
存在するデータ・ブロックを主メモリに反映し、当該デ
ータ・ブロックの内容の一貫性を保持する一貫性保持処
理を実行することを特徴とする。
【0010】更に望ましくは、前記所定の条件は、その
内容が主メモリに反映されていないデータ・ブロックの
数を、予め指定した値と比較することによって判定す
る。
内容が主メモリに反映されていないデータ・ブロックの
数を、予め指定した値と比較することによって判定す
る。
【0011】更に望ましくは、前記所定の条件は、前記
プロセッサが行ったデータの書き込みの回数を、予め指
定した値と比較することによって判定する。
プロセッサが行ったデータの書き込みの回数を、予め指
定した値と比較することによって判定する。
【0012】更に望ましくは、前記情報処理システムは
緩いメモリ・コンシステンシ・モデルを採用したもので
ある。
緩いメモリ・コンシステンシ・モデルを採用したもので
ある。
【0013】更に望ましくは、前記一貫性保持処理は、
ひとつのキャッシュ・メモリから主メモリに反映したデ
ータ・ブロックの、前記キャッシュ・メモリ以外のキャ
ッシュ・メモリに保持される複製を無効化する処理であ
る。
ひとつのキャッシュ・メモリから主メモリに反映したデ
ータ・ブロックの、前記キャッシュ・メモリ以外のキャ
ッシュ・メモリに保持される複製を無効化する処理であ
る。
【0014】更に望ましくは、前記主メモリは、前記複
数のプロセッサそれぞれと接続されており、プロセッサ
の1に付随するキャッシュ・メモリは、他のプロセッサ
のキャッシュ・メモリから、そこに格納されたデータ・
ブロックを主メモリに反映する処理が行われたことを前
記バスを介して検知し、当該キャッシュ・メモリに格納
されている該当するデータブロックの複製を無効化する
ことで前記一貫性保持処理を実行する。
数のプロセッサそれぞれと接続されており、プロセッサ
の1に付随するキャッシュ・メモリは、他のプロセッサ
のキャッシュ・メモリから、そこに格納されたデータ・
ブロックを主メモリに反映する処理が行われたことを前
記バスを介して検知し、当該キャッシュ・メモリに格納
されている該当するデータブロックの複製を無効化する
ことで前記一貫性保持処理を実行する。
【0015】更に望ましくは、前記主メモリは、前記複
数のプロセッサごとに分散して接続されており、前記主
メモリは、その内容とするデータ・ブロックがキャッシ
ュ・メモリに複製されるごとに、その複製先を記録し、
前記複数のプロセッサの1のキャッシュ・メモリからそ
こに格納されたデータ・ブロックを主メモリに反映する
処理が行われた場合に、前記複製先の記録に基づいて該
当するデータブロックの複製を無効化することで前記一
貫性保持処理を実行する。
数のプロセッサごとに分散して接続されており、前記主
メモリは、その内容とするデータ・ブロックがキャッシ
ュ・メモリに複製されるごとに、その複製先を記録し、
前記複数のプロセッサの1のキャッシュ・メモリからそ
こに格納されたデータ・ブロックを主メモリに反映する
処理が行われた場合に、前記複製先の記録に基づいて該
当するデータブロックの複製を無効化することで前記一
貫性保持処理を実行する。
【0016】また、本発明の情報処理方法は次のような
構成からなるすなわち、複数の情報処理手段を接続して
成り、記憶手段から、各情報処理手段に付随するキャッ
シュ手段にデータを複製して前記記憶手段の内容を前記
複数の情報処理手段で共有する情報処理システムにおい
て、所定の段階においてキャッシュ手段の内容を一斉に
記憶手段に書き戻す情報処理方法であって、前記記憶手
段に記憶された、所望のデータブロックをキャッシュ手
段に読み込む読込み工程と、前記読込み工程によりキャ
ッシュ手段に読み込まれたデータブロックを更新するキ
ャッシュ更新工程と、前記キャッシュ更新工程により更
新されたデータブロック数を計数する計数工程と、前記
計数工程により計数されたデータブロック数と所定値と
を比較して、その比較結果に基づいて前記更新されたデ
ータブロックを、前記記憶手段に書き戻す書き戻し工程
とを備える。
構成からなるすなわち、複数の情報処理手段を接続して
成り、記憶手段から、各情報処理手段に付随するキャッ
シュ手段にデータを複製して前記記憶手段の内容を前記
複数の情報処理手段で共有する情報処理システムにおい
て、所定の段階においてキャッシュ手段の内容を一斉に
記憶手段に書き戻す情報処理方法であって、前記記憶手
段に記憶された、所望のデータブロックをキャッシュ手
段に読み込む読込み工程と、前記読込み工程によりキャ
ッシュ手段に読み込まれたデータブロックを更新するキ
ャッシュ更新工程と、前記キャッシュ更新工程により更
新されたデータブロック数を計数する計数工程と、前記
計数工程により計数されたデータブロック数と所定値と
を比較して、その比較結果に基づいて前記更新されたデ
ータブロックを、前記記憶手段に書き戻す書き戻し工程
とを備える。
【0017】また、望ましくは、書き戻されたキャッシ
ュ手段以外のキャッシュ手段により前記書き戻し工程に
よるデータブロックの記憶手段への書き戻しを検知し
て、前記キャッシュ手段に保持された、書き戻しの対象
となったデータブロックの複製を無効化する工程を更に
備える。
ュ手段以外のキャッシュ手段により前記書き戻し工程に
よるデータブロックの記憶手段への書き戻しを検知し
て、前記キャッシュ手段に保持された、書き戻しの対象
となったデータブロックの複製を無効化する工程を更に
備える。
【0018】また、望ましくは、前記読出し工程により
主記憶手段からキャッシュ手段に読み出されたデータブ
ロックごとに、読出された先を記録する記録工程と、前
記書き戻し工程により主記憶にデータブロックが書き戻
された場合、当該データブロックについて前記記録工程
により記録された読出し先のキャッシュ手段に格納され
たデータブロックの複製を無効化する工程を更に備え
る。
主記憶手段からキャッシュ手段に読み出されたデータブ
ロックごとに、読出された先を記録する記録工程と、前
記書き戻し工程により主記憶にデータブロックが書き戻
された場合、当該データブロックについて前記記録工程
により記録された読出し先のキャッシュ手段に格納され
たデータブロックの複製を無効化する工程を更に備え
る。
【0019】また、本発明のコンピュータ制御装置は次
のような構成からなる。すなわち、複数台接続された、
メモリ媒体から所定のプログラムを読み込んで制御する
複数のコンピュータ制御装置であって、前記記憶手段に
記憶された、所望のデータブロックをキャッシュ手段に
読み込む読込み工程のモジュールと、前記読込み工程に
よりキャッシュ手段に読み込まれたデータブロックを更
新するキャッシュ更新工程のモジュールと、前記キャッ
シュ更新工程により更新されたデータブロック数を計数
する計数工程のモジュールと、前記計数工程により計数
されたデータブロック数と所定値とを比較して、その比
較結果に基づいて前記更新されたデータブロックを、前
記記憶手段に書き戻す書き戻し工程のモジュールと、キ
ャッシュ手段の有する、更新されたデータブロックを一
斉に記憶手段に書き戻す一斉書き戻し工程のモジュール
とを備える。
のような構成からなる。すなわち、複数台接続された、
メモリ媒体から所定のプログラムを読み込んで制御する
複数のコンピュータ制御装置であって、前記記憶手段に
記憶された、所望のデータブロックをキャッシュ手段に
読み込む読込み工程のモジュールと、前記読込み工程に
よりキャッシュ手段に読み込まれたデータブロックを更
新するキャッシュ更新工程のモジュールと、前記キャッ
シュ更新工程により更新されたデータブロック数を計数
する計数工程のモジュールと、前記計数工程により計数
されたデータブロック数と所定値とを比較して、その比
較結果に基づいて前記更新されたデータブロックを、前
記記憶手段に書き戻す書き戻し工程のモジュールと、キ
ャッシュ手段の有する、更新されたデータブロックを一
斉に記憶手段に書き戻す一斉書き戻し工程のモジュール
とを備える。
【0020】以上の構成により、一斉にキャッシュのデ
ータブロックを書き戻す以前でも、所定数のデータブロ
ックが更新された場合に書き戻しを行うため、データブ
ロックの書き戻しが集中することによる性能の低下がな
い。
ータブロックを書き戻す以前でも、所定数のデータブロ
ックが更新された場合に書き戻しを行うため、データブ
ロックの書き戻しが集中することによる性能の低下がな
い。
【0021】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態としてマルチプロセッサシステムを詳細に説明
する。 [第1の形態]図1は、本発明を実現するためシステム
の第1の実施の形態の構成を示すブロック図である。
施の形態としてマルチプロセッサシステムを詳細に説明
する。 [第1の形態]図1は、本発明を実現するためシステム
の第1の実施の形態の構成を示すブロック図である。
【0022】図1中、10,20はプロセッサであり、
それぞれプロセッサバス14,24を介してキャッシュ
ユニット11,21に接続される。
それぞれプロセッサバス14,24を介してキャッシュ
ユニット11,21に接続される。
【0023】図2において、プロセッサ10は、メモリ
・アクセスを多重発行することが可能であり、多重発行
されたメモリ・アクセスを緩いメモリ・コンシステンシ
・モデルによるデータ一貫性保証の下で完了させるため
の特別な命令(同期命令)を持つものとする。
・アクセスを多重発行することが可能であり、多重発行
されたメモリ・アクセスを緩いメモリ・コンシステンシ
・モデルによるデータ一貫性保証の下で完了させるため
の特別な命令(同期命令)を持つものとする。
【0024】またキャッシュユニット11,21は、そ
れぞれローカルバス15を介して主記憶ユニット12及
び、バスアービタ16と接続される。またキャッシュユ
ニット11,21は、プロセッサの要求に基づいて、キ
ャッシュユニット11,21の内部のデータブロックの
データエントリの更新を行ったり、主記憶ユニット12
に反映させたり等すると共に、ローカルバス15上を流
れるアドレス情報等をスヌープしてキャッシュのメイン
テナンスを実施する。
れぞれローカルバス15を介して主記憶ユニット12及
び、バスアービタ16と接続される。またキャッシュユ
ニット11,21は、プロセッサの要求に基づいて、キ
ャッシュユニット11,21の内部のデータブロックの
データエントリの更新を行ったり、主記憶ユニット12
に反映させたり等すると共に、ローカルバス15上を流
れるアドレス情報等をスヌープしてキャッシュのメイン
テナンスを実施する。
【0025】バスアービタ16はローカルバス15の利
用権を調停するためのものである。
用権を調停するためのものである。
【0026】本実施例では、プロセッサから明示的に与
えられる同期命令発行時点でデータの一貫性が保証され
るような緩いメモリ・コンシステンシ・モデルを採用し
た一貫性制御が行われる図1に示すような構成の情報処
理システムにおいて、キャッシュの一貫性保持動作を制
御するキャッシュ制御シーケンサが、同期命令発行時以
外で最新の値で書き換えられた後、主記憶にその値を反
映していないデータ・ブロック(DIRTYブロック)
の数が既定値以上になった場合にも最新の値で書き換え
られた後,主記憶にその値を反映していない状態(DI
RTY状態)にあるキャッシュのデータブロックを、当
該主記憶ユニットに主記憶へのライトバック処理及び必
要ならば一貫性保持動作を実行することによって、同期
命令発行時点で集中的に発生する主記憶へのライトバッ
ク処理トラフィックや一貫性保持動作・トラフィックを
分散することを実現している。
えられる同期命令発行時点でデータの一貫性が保証され
るような緩いメモリ・コンシステンシ・モデルを採用し
た一貫性制御が行われる図1に示すような構成の情報処
理システムにおいて、キャッシュの一貫性保持動作を制
御するキャッシュ制御シーケンサが、同期命令発行時以
外で最新の値で書き換えられた後、主記憶にその値を反
映していないデータ・ブロック(DIRTYブロック)
の数が既定値以上になった場合にも最新の値で書き換え
られた後,主記憶にその値を反映していない状態(DI
RTY状態)にあるキャッシュのデータブロックを、当
該主記憶ユニットに主記憶へのライトバック処理及び必
要ならば一貫性保持動作を実行することによって、同期
命令発行時点で集中的に発生する主記憶へのライトバッ
ク処理トラフィックや一貫性保持動作・トラフィックを
分散することを実現している。
【0027】図2は、本実施例の一部分であるキャッシ
ュユニットの構成を示す図である。図2においては、キ
ャッシュユニット11を例にあげているが、キャッシュ
ユニット21についても同様な構成をとる。
ュユニットの構成を示す図である。図2においては、キ
ャッシュユニット11を例にあげているが、キャッシュ
ユニット21についても同様な構成をとる。
【0028】図2中、144はプロセッサアドレスバス
141と接続するためのプロセッサアドレスバスインタ
フェースであり、145はプロセッサデータバス142
と接続するためのプロセッサデータバスインタフェース
であり、146はプロセッサコントロールバス143と
接続するためのプロセッサコントロールバスインタフェ
ースである。
141と接続するためのプロセッサアドレスバスインタ
フェースであり、145はプロセッサデータバス142
と接続するためのプロセッサデータバスインタフェース
であり、146はプロセッサコントロールバス143と
接続するためのプロセッサコントロールバスインタフェ
ースである。
【0029】154はローカルアドレスバス151と接
続するためのローカルアドレスバスインタフェースであ
り、155はローカルデータバス152と接続するため
のローカルデータバスインタフェースであり、156は
ローカルコントロールバス153と接続するためのロー
カルコントロールバスインタフェースである。
続するためのローカルアドレスバスインタフェースであ
り、155はローカルデータバス152と接続するため
のローカルデータバスインタフェースであり、156は
ローカルコントロールバス153と接続するためのロー
カルコントロールバスインタフェースである。
【0030】114はデータを保持するためのデータエ
ントリであり、112はデータエントリ114のアドレ
スを保持するためのアドレスタグであり、113はデー
タエントリ114の状態を保持するための状態フラグで
ある。これらの部分は例えばSRAMのような記憶素子
の集合であるとするが、これに制限されるものではな
い。
ントリであり、112はデータエントリ114のアドレ
スを保持するためのアドレスタグであり、113はデー
タエントリ114の状態を保持するための状態フラグで
ある。これらの部分は例えばSRAMのような記憶素子
の集合であるとするが、これに制限されるものではな
い。
【0031】115は、アドレスタグ112の内容とプ
ロセッサアドレスバス141,ローカルアドレスバス1
51上のアドレスを比較する比較器である。116は、
比較器115の比較結果からデータエントリ内のデータ
を選択する選択器である。
ロセッサアドレスバス141,ローカルアドレスバス1
51上のアドレスを比較する比較器である。116は、
比較器115の比較結果からデータエントリ内のデータ
を選択する選択器である。
【0032】111はキャッシュユニット内の各モジュ
ールを制御するキャッシュ制御シーケンサである。
ールを制御するキャッシュ制御シーケンサである。
【0033】本実施例では、キャッシュユニットは2ウ
ェイ・セット・アソシアティブの構成をとっているが、
この構成に制限されるものではない。 <LOAD命令の処理手順>図3は、上記の様に構成さ
れるキャッシュユニットにおいて、データをプロセッサ
にロードするLOAD命令実行の際の制御手順を示した
ものである。以下、LOAD命令がプロセッサ10から
発行されたものとして説明する。
ェイ・セット・アソシアティブの構成をとっているが、
この構成に制限されるものではない。 <LOAD命令の処理手順>図3は、上記の様に構成さ
れるキャッシュユニットにおいて、データをプロセッサ
にロードするLOAD命令実行の際の制御手順を示した
ものである。以下、LOAD命令がプロセッサ10から
発行されたものとして説明する。
【0034】図3において、プロセッサ10から発行さ
れるLOAD命令に対してキャッシュ・リードヒットし
た場合(S301−YES)、キャッシュユニット11
は、プロセッサ10に対してデータブロックを供給する
(S306)。
れるLOAD命令に対してキャッシュ・リードヒットし
た場合(S301−YES)、キャッシュユニット11
は、プロセッサ10に対してデータブロックを供給する
(S306)。
【0035】また、プロセッサ10から発行されるLO
AD命令に対してキャッシュ・リードミスした場合(S
301−NO)、キャッシュユニット11は、ローカル
バス15に対してリード要求を発行する(S302)。
この場合、キャッシュ・リードミスしたデータブロック
がキャッシュユニット11に供給されるまで、キャッシ
ュユニット11はプロセッサ10に対して当該データブ
ロックの供給を行わない。
AD命令に対してキャッシュ・リードミスした場合(S
301−NO)、キャッシュユニット11は、ローカル
バス15に対してリード要求を発行する(S302)。
この場合、キャッシュ・リードミスしたデータブロック
がキャッシュユニット11に供給されるまで、キャッシ
ュユニット11はプロセッサ10に対して当該データブ
ロックの供給を行わない。
【0036】キャッシュユニット11は、ローカルアド
レスバス151に対して当該リードアクセスのアドレス
を転送し、ローカルコントロールバス153に対してリ
ード要求を発行し、ローカルデータバス152にデータ
ブロックが供給されるまで実行を停止するものとする
が、これは本実施例に制限されるものではない。
レスバス151に対して当該リードアクセスのアドレス
を転送し、ローカルコントロールバス153に対してリ
ード要求を発行し、ローカルデータバス152にデータ
ブロックが供給されるまで実行を停止するものとする
が、これは本実施例に制限されるものではない。
【0037】主記憶ユニット12は、リード要求,及び
当該リードアクセスのアドレスを受け付けてローカルデ
ータバス152にデータブロックを供給し、キャッシュ
ユニット11はそれを受ける(S303)。
当該リードアクセスのアドレスを受け付けてローカルデ
ータバス152にデータブロックを供給し、キャッシュ
ユニット11はそれを受ける(S303)。
【0038】キャッシュユニット11は、ローカルデー
タバス152に供給されたデータブロックをキャッシュ
ユニット11内の当該データブロックのエントリにリプ
レースする(S304)。この処理は図7として後述す
る。
タバス152に供給されたデータブロックをキャッシュ
ユニット11内の当該データブロックのエントリにリプ
レースする(S304)。この処理は図7として後述す
る。
【0039】キャッシュユニット11は、プロセッサ1
0に対してデータブロックを供給する(S305)。
0に対してデータブロックを供給する(S305)。
【0040】以上のようにして、LOAD命令に対して
プロセッサにデータを供給する。 <STORE命令の処理手順>図4は、プロセッサから
データを書き出すSTORE命令実行の際のキャッシュ
ユニットによる制御手順を示したものである。以下、S
TORE命令がプロセッサ10から発行されたものとし
て説明する。
プロセッサにデータを供給する。 <STORE命令の処理手順>図4は、プロセッサから
データを書き出すSTORE命令実行の際のキャッシュ
ユニットによる制御手順を示したものである。以下、S
TORE命令がプロセッサ10から発行されたものとし
て説明する。
【0041】図4において、プロセッサ10から発行さ
れるSTORE命令に対してキャッシュ・ライトヒット
した場合に、プロセッサからストアすべきデータを受け
(S403)、そのデータに対応する状態フラグを”D
IRTY”に設定する(S404)。それとともに、状
態フラグカウンタ117を1インクリメントする(S4
05)。
れるSTORE命令に対してキャッシュ・ライトヒット
した場合に、プロセッサからストアすべきデータを受け
(S403)、そのデータに対応する状態フラグを”D
IRTY”に設定する(S404)。それとともに、状
態フラグカウンタ117を1インクリメントする(S4
05)。
【0042】キャッシュユニット11のDIRTYブロ
ックの数が状態フラグカウンタ117に設定されている
ある既定値以上に達した場合、DIRTYブロックの主
記憶へのライトバック処理を実行する(S407)。ラ
イトバックしたなら、状態フラグカウンタをリセットす
る(S408)。本実施例ではDIRTYブロックの主
記憶へのライトバック処理を実行するかどうかの判断基
準となる、キャッシュ内のDIRTYブロック数の既定
値は、状態フラグカウンタ117内の規定値メモリに予
め設定されるものとするが、その格納位置などはこれに
制限されるものではない。
ックの数が状態フラグカウンタ117に設定されている
ある既定値以上に達した場合、DIRTYブロックの主
記憶へのライトバック処理を実行する(S407)。ラ
イトバックしたなら、状態フラグカウンタをリセットす
る(S408)。本実施例ではDIRTYブロックの主
記憶へのライトバック処理を実行するかどうかの判断基
準となる、キャッシュ内のDIRTYブロック数の既定
値は、状態フラグカウンタ117内の規定値メモリに予
め設定されるものとするが、その格納位置などはこれに
制限されるものではない。
【0043】なお、ライトバック処理は、DIRTYブ
ロックを選び出し、それを対象として図6の処理を実行
することで行われる。
ロックを選び出し、それを対象として図6の処理を実行
することで行われる。
【0044】プロセッサ10から発行されるSTORE
命令に対してキャッシュ・ライトミスした場合、すなわ
ちキャッシュユニットのアドレスタグ内に該当するアド
レスがない場合には、キャッシュ・リードミス処理、す
なわち図3のステップS302以降の処理を行った後
(S402)、キャッシュ・ライトヒット処理を行うも
のとする。
命令に対してキャッシュ・ライトミスした場合、すなわ
ちキャッシュユニットのアドレスタグ内に該当するアド
レスがない場合には、キャッシュ・リードミス処理、す
なわち図3のステップS302以降の処理を行った後
(S402)、キャッシュ・ライトヒット処理を行うも
のとする。
【0045】このようにして、データのSTORE処理
時には、STORE処理によってDIRTY状態となっ
たブロックの数が所定数を越えたならキャッシュ内のデ
ータブロックを主記憶ユニットにライトバックしてお
く。 <同期命令処理の手順>図5は、複数のプロセッサによ
ってアクセスされている可能性のあるデータブロックの
内容を主記憶にライトバックして、主記憶の内容とキャ
ッシュの内容とを一致させる同期命令実行の際の制御手
順を示したものである。以下、同期命令がプロセッサ1
0から発行されたものとして説明する。
時には、STORE処理によってDIRTY状態となっ
たブロックの数が所定数を越えたならキャッシュ内のデ
ータブロックを主記憶ユニットにライトバックしてお
く。 <同期命令処理の手順>図5は、複数のプロセッサによ
ってアクセスされている可能性のあるデータブロックの
内容を主記憶にライトバックして、主記憶の内容とキャ
ッシュの内容とを一致させる同期命令実行の際の制御手
順を示したものである。以下、同期命令がプロセッサ1
0から発行されたものとして説明する。
【0046】図5において、プロセッサ10から同期命
令が発行された場合、キャッシュユニット11にDIR
TYブロックが1つ以上存在すると(S501−YE
S)、当該DIRTYブロックの主記憶へのライトバッ
ク処理を実行する(S502)。本実施例ではDIRT
Yブロックの主記憶へのライトバック処理はDIRTY
ブロックがなくなるまで繰り返し実行されるものとする
が、これに制限されるものではない。
令が発行された場合、キャッシュユニット11にDIR
TYブロックが1つ以上存在すると(S501−YE
S)、当該DIRTYブロックの主記憶へのライトバッ
ク処理を実行する(S502)。本実施例ではDIRT
Yブロックの主記憶へのライトバック処理はDIRTY
ブロックがなくなるまで繰り返し実行されるものとする
が、これに制限されるものではない。
【0047】ライトバックしたなら、ライトバックされ
たデータブロックの状態フラグをCLEANとし(S5
03)、状態フラグカウンタをデクリメントする(S5
04)。
たデータブロックの状態フラグをCLEANとし(S5
03)、状態フラグカウンタをデクリメントする(S5
04)。
【0048】このようにして、DIRTY状態にあるブ
ロックをすべて主記憶にライトバックしてCLEANな
状態に戻すことができる。
ロックをすべて主記憶にライトバックしてCLEANな
状態に戻すことができる。
【0049】<ライトバック処理の手順>図6は、主記
憶へのライトバック処理実行の際の制御手順を示したも
のである。以下、主記憶へのライトバック処理がキャッ
シュユニット11から発行されたものとして説明する。
憶へのライトバック処理実行の際の制御手順を示したも
のである。以下、主記憶へのライトバック処理がキャッ
シュユニット11から発行されたものとして説明する。
【0050】図6において、キャッシュユニット11
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し、ローカルデータバス152にライトバック
するデータブロックを供給し、ライトバックしたデータ
ブロックが当該主記憶ユニットのエントリに供給され、
必要な一貫性保持動作が完了し、主記憶へのライトバッ
ク処理が完了するまで実行を停止する(S601)。完
了通知を受け取ると(S604)、ライトバック処理は
終了となる。
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し、ローカルデータバス152にライトバック
するデータブロックを供給し、ライトバックしたデータ
ブロックが当該主記憶ユニットのエントリに供給され、
必要な一貫性保持動作が完了し、主記憶へのライトバッ
ク処理が完了するまで実行を停止する(S601)。完
了通知を受け取ると(S604)、ライトバック処理は
終了となる。
【0051】主記憶ユニット12は、リード要求、及び
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて当該データブロックのエントリに書き込む(S60
2)。その後、完了を要求元に通知する(S603)。
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて当該データブロックのエントリに書き込む(S60
2)。その後、完了を要求元に通知する(S603)。
【0052】また、同時にキャッシュユニット11以外
のキャッシュユニットは、ローカルバス15に転送され
るアドレスをスヌープして(S605)、データのコピ
ーが有効状態(CLEAN状態,もしくはDIRTY状
態のいずれか)で保持されている場合は、キャッシュユ
ニットは有効状態で保持しているデータブロックに対し
て一貫性保持動作を実行する(S607)。本実施例で
は一貫性保持動作は、キャッシュに重複して有する、書
き戻したデータブロック以外のデータブロックを無効な
データとする無効化のトランザクションとするが、これ
に制限されるものではない。無効化は、状態フラグ13
を“INVALID”とすることで行われる。
のキャッシュユニットは、ローカルバス15に転送され
るアドレスをスヌープして(S605)、データのコピ
ーが有効状態(CLEAN状態,もしくはDIRTY状
態のいずれか)で保持されている場合は、キャッシュユ
ニットは有効状態で保持しているデータブロックに対し
て一貫性保持動作を実行する(S607)。本実施例で
は一貫性保持動作は、キャッシュに重複して有する、書
き戻したデータブロック以外のデータブロックを無効な
データとする無効化のトランザクションとするが、これ
に制限されるものではない。無効化は、状態フラグ13
を“INVALID”とすることで行われる。
【0053】<リプレース処理の手順>図7は、データ
ブロックのリプレース実行の際の制御手順を示したもの
である。以下、キャッシュユニット11がデータブロッ
クのリプレースを実行するものとして説明する。
ブロックのリプレース実行の際の制御手順を示したもの
である。以下、キャッシュユニット11がデータブロッ
クのリプレースを実行するものとして説明する。
【0054】図7において、キャッシュユニット11
は、データブロックのリプレース要求が発行された場
合、置換すべきデータブロックをLRU等のデータブロ
ック置換アルゴリズムにより、置換対象データブロック
を検出する(S701)。
は、データブロックのリプレース要求が発行された場
合、置換すべきデータブロックをLRU等のデータブロ
ック置換アルゴリズムにより、置換対象データブロック
を検出する(S701)。
【0055】当該置換対象データブロックがDIRTY
状態の場合、DIRTYブロックの主記憶へのライトバ
ック処理を実行する(S704)。
状態の場合、DIRTYブロックの主記憶へのライトバ
ック処理を実行する(S704)。
【0056】当該置換対象データブロックがDIRTY
状態以外の場合や、当該置換対象データブロックがDI
RTY状態で主記憶へのライトバック処理が完了した場
合、当該データブロックのデータエントリにデータブロ
ックをリードする(S703,S705)。
状態以外の場合や、当該置換対象データブロックがDI
RTY状態で主記憶へのライトバック処理が完了した場
合、当該データブロックのデータエントリにデータブロ
ックをリードする(S703,S705)。
【0057】キャッシュにデータブロックを読み込む場
合には、このリプレース処理を実行することで使用可能
な領域を確保し、そこにあらたなデータブロックを読み
込む。 <データブロックの状態遷移>図8は、各メモリトラン
ザクション実行時の状態フラグの状態遷移図を示したも
のである。以下、キャッシュユニット11の状態フラグ
として説明する。
合には、このリプレース処理を実行することで使用可能
な領域を確保し、そこにあらたなデータブロックを読み
込む。 <データブロックの状態遷移>図8は、各メモリトラン
ザクション実行時の状態フラグの状態遷移図を示したも
のである。以下、キャッシュユニット11の状態フラグ
として説明する。
【0058】図8において、状態INVALIDは当該
状態フラグが管理するデータエントリが無効であること
を示す。状態CLEANは当該状態フラグが管理するデ
ータエントリが主記憶ユニットからリードされた後、1
回も書き換えられていないことを示す。当該データエン
トリには主記憶ユニットと同一の値が格納されている
が、他のキャッシュユニットのデータエントリには最新
の値が格納されているかもしれない。状態DIRTYは
当該状態フラグが管理するデータエントリが主記憶ユニ
ットからリードされた後、1回以上最新の値で書き換え
られ、かつ、主記憶にその値を反映していないことを示
す。当該データエントリには最新の値が格納されてい
る。
状態フラグが管理するデータエントリが無効であること
を示す。状態CLEANは当該状態フラグが管理するデ
ータエントリが主記憶ユニットからリードされた後、1
回も書き換えられていないことを示す。当該データエン
トリには主記憶ユニットと同一の値が格納されている
が、他のキャッシュユニットのデータエントリには最新
の値が格納されているかもしれない。状態DIRTYは
当該状態フラグが管理するデータエントリが主記憶ユニ
ットからリードされた後、1回以上最新の値で書き換え
られ、かつ、主記憶にその値を反映していないことを示
す。当該データエントリには最新の値が格納されてい
る。
【0059】各状態は次のように遷移する。 INVALID状態にあるデータブロックに対してプ
ロセッサ10からLOAD命令が発行された場合、状態
フラグはCLEANに遷移する。 INVALID状態にあるデータブロックに対してプ
ロセッサ10からSTORE命令が発行された場合、一
旦キャッシュ・リードミス処理が実行され、状態フラグ
がCLEAN に遷移した後、キャッシュ・ライトヒッ
ト処理が実行され、状態フラグはDIRTYに遷移す
る。 CLEAN状態にあるデータブロックに対してプロセ
ッサ10からLOAD命令が発行された場合、状態フラ
グはCLEANに遷移する。 CLEAN状態にあるデータブロックに対してプロセ
ッサ10からSTORE命令が発行された場合、状態フ
ラグはDIRTYに遷移する。 CLEAN状態にあるデータブロックに対して一貫性
保持動作が実行された場合、状態フラグはINVALI
Dに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10からLOAD命令が発行された場合、状態フラ
グはDIRTYに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10からSTORE命令が発行された場合、状態フ
ラグはDIRTYに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10から同期命令が発行された場合、状態フラグは
CLEAN に遷移する。 DIRTY状態にあるデータブロックに対して主記憶
へのライトバック処理が実行された場合、状態フラグは
CLEAN に遷移する。 (10)DIRTY状態にあるデータブロックに対して一貫
性保持動作が実行された場合、状態フラグはINVAL
IDに遷移する。
ロセッサ10からLOAD命令が発行された場合、状態
フラグはCLEANに遷移する。 INVALID状態にあるデータブロックに対してプ
ロセッサ10からSTORE命令が発行された場合、一
旦キャッシュ・リードミス処理が実行され、状態フラグ
がCLEAN に遷移した後、キャッシュ・ライトヒッ
ト処理が実行され、状態フラグはDIRTYに遷移す
る。 CLEAN状態にあるデータブロックに対してプロセ
ッサ10からLOAD命令が発行された場合、状態フラ
グはCLEANに遷移する。 CLEAN状態にあるデータブロックに対してプロセ
ッサ10からSTORE命令が発行された場合、状態フ
ラグはDIRTYに遷移する。 CLEAN状態にあるデータブロックに対して一貫性
保持動作が実行された場合、状態フラグはINVALI
Dに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10からLOAD命令が発行された場合、状態フラ
グはDIRTYに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10からSTORE命令が発行された場合、状態フ
ラグはDIRTYに遷移する。 DIRTY状態にあるデータブロックに対してプロセ
ッサ10から同期命令が発行された場合、状態フラグは
CLEAN に遷移する。 DIRTY状態にあるデータブロックに対して主記憶
へのライトバック処理が実行された場合、状態フラグは
CLEAN に遷移する。 (10)DIRTY状態にあるデータブロックに対して一貫
性保持動作が実行された場合、状態フラグはINVAL
IDに遷移する。
【0060】本発明に係る一貫性保持動作の理解のため
に、まず本システムの特長である同期命令発行時点まで
一貫性保持動作が延期される例を説明し、次にDIRT
Yブロックの数がある既定値以上になるまで一貫性保持
動作が延期される例を説明する。
に、まず本システムの特長である同期命令発行時点まで
一貫性保持動作が延期される例を説明し、次にDIRT
Yブロックの数がある既定値以上になるまで一貫性保持
動作が延期される例を説明する。
【0061】具体的には、例えばプロセッサ10,20
がアドレスf8000000番地に対してLOAD命令
を発行し、それぞれのLOAD命令が完了した後で、プ
ロセッサ10がアドレスf8000000番地に対して
STORE命令を発行した場合、STORE命令発行時
点ではキャッシュユニット21に対して一貫性保持動作
は発行されず、同期命令がプロセッサ10から発行され
た場合に、一貫性保持動作が実行されることをどのよう
にして実現するかを図9を参考にして説明する。
がアドレスf8000000番地に対してLOAD命令
を発行し、それぞれのLOAD命令が完了した後で、プ
ロセッサ10がアドレスf8000000番地に対して
STORE命令を発行した場合、STORE命令発行時
点ではキャッシュユニット21に対して一貫性保持動作
は発行されず、同期命令がプロセッサ10から発行され
た場合に、一貫性保持動作が実行されることをどのよう
にして実現するかを図9を参考にして説明する。
【0062】また、同様にプロセッサ10,20がアド
レスf8000000番地に対してLOAD命令を発行
し、プロセッサ10がアドレスf8000000番地に
対してSTORE命令を発行した場合、STORE命令
発行時点ではノード間インタフェース13がキャッシュ
ユニット21に対して一貫性保持動作を発行せず、DI
RTYブロックの数がある既定値(この例では2)以上
になった場合に、一貫性保持動作が実行されることをキ
ャッシュユニット11,21の持つ機構でどのようにし
て実現するかを図10を参考にして説明する。 <一貫性の保持(同期命令による)>図9は、本実施例
の一貫性保持動作の一例を示すタイミングチャート図で
ある。
レスf8000000番地に対してLOAD命令を発行
し、プロセッサ10がアドレスf8000000番地に
対してSTORE命令を発行した場合、STORE命令
発行時点ではノード間インタフェース13がキャッシュ
ユニット21に対して一貫性保持動作を発行せず、DI
RTYブロックの数がある既定値(この例では2)以上
になった場合に、一貫性保持動作が実行されることをキ
ャッシュユニット11,21の持つ機構でどのようにし
て実現するかを図10を参考にして説明する。 <一貫性の保持(同期命令による)>図9は、本実施例
の一貫性保持動作の一例を示すタイミングチャート図で
ある。
【0063】アドレスf8000000番地が主記憶ユ
ニット12に割り当てられているものとして説明する。
ニット12に割り当てられているものとして説明する。
【0064】時刻1では、プロセッサ10,20がアド
レスf8000000番地に対してLOAD命令を発行
し、それぞれが主記憶ユニット12からリードを完了し
ている。このとき、アドレスf8000000番地に対
応するキャッシュユニット11,21の内の状態フラグ
113,213は、それぞれCLEANである。
レスf8000000番地に対してLOAD命令を発行
し、それぞれが主記憶ユニット12からリードを完了し
ている。このとき、アドレスf8000000番地に対
応するキャッシュユニット11,21の内の状態フラグ
113,213は、それぞれCLEANである。
【0065】時刻2では、プロセッサ10がアドレスf
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、ローカルバ
スアクセス,及び一貫性保持動作は発生しない。キャッ
シュ11内の状態フラグ113はプロセッサ10の発行
したSTORE命令の結果、DIRTYに変更されてい
る。また、状態フラグカウンタ117をインクリメント
する。
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、ローカルバ
スアクセス,及び一貫性保持動作は発生しない。キャッ
シュ11内の状態フラグ113はプロセッサ10の発行
したSTORE命令の結果、DIRTYに変更されてい
る。また、状態フラグカウンタ117をインクリメント
する。
【0066】時刻3では、プロセッサ10が同期命令を
発行している。
発行している。
【0067】時刻4では、時刻3で発行されたプロセッ
サ10の同期命令により、キャッシュ11内にDIRT
Yで保持されているアドレスf8000000番地の主
記憶へのライトバック処理が生じている。
サ10の同期命令により、キャッシュ11内にDIRT
Yで保持されているアドレスf8000000番地の主
記憶へのライトバック処理が生じている。
【0068】時刻5では、時刻4で生じたアドレスf8
000000番地の主記憶へのライトバック処理により
キャッシュユニット21のデータエントリが無効化され
ている。
000000番地の主記憶へのライトバック処理により
キャッシュユニット21のデータエントリが無効化され
ている。
【0069】時刻6では、一貫性保持動作の完了を受け
付けて、主記憶へのライトバック処理が完了したキャッ
シュユニット11はプロセッサ10に同期命令の完了を
通達し、時刻3で発行された同期命令が完了している。
付けて、主記憶へのライトバック処理が完了したキャッ
シュユニット11はプロセッサ10に同期命令の完了を
通達し、時刻3で発行された同期命令が完了している。
【0070】このように、DIRTYブロック数が2以
上になる以前に同期命令が出され、それによりライトバ
ックが行われている。 <一貫性の保持(DIRTYブロックの数をトリガとす
る)>図10は、本実施例の一貫性保持動作の一例を示
すタイミングチャート図である。
上になる以前に同期命令が出され、それによりライトバ
ックが行われている。 <一貫性の保持(DIRTYブロックの数をトリガとす
る)>図10は、本実施例の一貫性保持動作の一例を示
すタイミングチャート図である。
【0071】アドレスf8000000番地,及びアド
レスf8000001番地が主記憶ユニット12に割り
当てられているものとして説明する。
レスf8000001番地が主記憶ユニット12に割り
当てられているものとして説明する。
【0072】時刻1では、プロセッサ10がアドレスf
8000000番地に対してLOAD命令を発行し、主
記憶ユニット12からリードを完了している。キャッシ
ュユニット11の内の状態フラグ113は、CLEAN
である。
8000000番地に対してLOAD命令を発行し、主
記憶ユニット12からリードを完了している。キャッシ
ュユニット11の内の状態フラグ113は、CLEAN
である。
【0073】時刻2では、プロセッサ10がアドレスf
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
DIRTYに変更されている。また、状態フラグカウン
タ117をインクリメントする。
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
DIRTYに変更されている。また、状態フラグカウン
タ117をインクリメントする。
【0074】時刻3では、プロセッサ20がアドレスf
8000000番地に対してLOAD命令を発行し、L
OAD命令を完了している。このときも、キャッシュユ
ニット21は主記憶ユニット12からデータブロックを
リードするだけで一貫性保持動作は発生しない。LOA
D命令の結果、キャッシュユニット21の内の状態フラ
グ213は、CLEANである。
8000000番地に対してLOAD命令を発行し、L
OAD命令を完了している。このときも、キャッシュユ
ニット21は主記憶ユニット12からデータブロックを
リードするだけで一貫性保持動作は発生しない。LOA
D命令の結果、キャッシュユニット21の内の状態フラ
グ213は、CLEANである。
【0075】時刻4では、プロセッサ10がアドレスf
8000001番地に対してSTORE命令を発行し、
STORE命令が完了している。状態フラグカウンタ1
17をインクリメントするとDIRTYブロックの数が
既定値(2)以上になったので、主記憶へのライトバッ
ク処理が生じている。
8000001番地に対してSTORE命令を発行し、
STORE命令が完了している。状態フラグカウンタ1
17をインクリメントするとDIRTYブロックの数が
既定値(2)以上になったので、主記憶へのライトバッ
ク処理が生じている。
【0076】時刻5では、時刻4で生じたアドレスf8
000000番地の主記憶へのライトバック処理により
キャッシュユニット21のデータエントリが無効化され
ている。
000000番地の主記憶へのライトバック処理により
キャッシュユニット21のデータエントリが無効化され
ている。
【0077】時刻6では、アドレスf8000001番
地の主記憶へのライトバック処理が生じている。
地の主記憶へのライトバック処理が生じている。
【0078】時刻7では、アドレスf8000001番
地の主記憶へのライトバック処理が完了している以上の
ように、DIRTY状態のデータブロックの数が所定値
(本例では2)以上となるとライトバックが実行される
ため、同期命令による一貫性保持動作が実行されても、
各キャッシュユニットには所定数以上のライトバックす
べきデータブロックが残っていないため、バスのトラフ
ィックの輻輳や同期動作に伴うオーバーヘッドを軽減す
ることができる。
地の主記憶へのライトバック処理が完了している以上の
ように、DIRTY状態のデータブロックの数が所定値
(本例では2)以上となるとライトバックが実行される
ため、同期命令による一貫性保持動作が実行されても、
各キャッシュユニットには所定数以上のライトバックす
べきデータブロックが残っていないため、バスのトラフ
ィックの輻輳や同期動作に伴うオーバーヘッドを軽減す
ることができる。
【0079】なお、上記装置の機能もしくは方法の機能
によって達成される本発明の目的は、前述の本発明を実
施した装置におけるプログラムを記憶させた記憶媒体に
よっても達成できる。すなわち、上記装置に、その記憶
媒体を装着し、その記憶媒体から読出したプログラム自
体が本発明の新規な機能を達成するからである。このた
めの、本発明に係るプログラムの構造的特徴は図18に
示す通りである。 [第2の形態]以下、図面を参照して本発明の実施例を
詳細に説明する。
によって達成される本発明の目的は、前述の本発明を実
施した装置におけるプログラムを記憶させた記憶媒体に
よっても達成できる。すなわち、上記装置に、その記憶
媒体を装着し、その記憶媒体から読出したプログラム自
体が本発明の新規な機能を達成するからである。このた
めの、本発明に係るプログラムの構造的特徴は図18に
示す通りである。 [第2の形態]以下、図面を参照して本発明の実施例を
詳細に説明する。
【0080】図11は、本発明を実現するためシステム
の第2の実施例の構成を示すブロック図である。
の第2の実施例の構成を示すブロック図である。
【0081】図11中、1,2,3は計算機ノードであ
る。10,20,30はプロセッサであり、それぞれプ
ロセッサバス14,24,34を介してキャッシュユニ
ット11,21,31に接続される。
る。10,20,30はプロセッサであり、それぞれプ
ロセッサバス14,24,34を介してキャッシュユニ
ット11,21,31に接続される。
【0082】またキャッシュユニット11,21,31
は、それぞれローカルバス15,25,35を介して主
記憶ユニット12,22,32及び、ノード間インタフ
ェース13,23,33と接続される。4はグローバル
バスであり、ノード間インタフェース13,23,33
及び、グローバルバスアービタ5を接続する。
は、それぞれローカルバス15,25,35を介して主
記憶ユニット12,22,32及び、ノード間インタフ
ェース13,23,33と接続される。4はグローバル
バスであり、ノード間インタフェース13,23,33
及び、グローバルバスアービタ5を接続する。
【0083】図11では、接続されているの計算機ノー
ドの数は3であるが、この数に制限されるものではな
い。
ドの数は3であるが、この数に制限されるものではな
い。
【0084】本実施例では、プロセッサから明示的に与
えられる同期命令発行時点でデータの一貫性が保証され
るような緩いメモリ・コンシステンシ・モデルを採用し
た一貫性制御が行われる図11に示すような構成の情報
処理システムにおいて、キャッシュの一貫性保持動作を
制御するキャッシュ制御シーケンサが、同期命令発行時
以外でDIRTYブロックの数が既定値以上になった場
合にもDIRTY状態にあるキャッシュのデータブロッ
クを、当該主記憶ユニットに主記憶へのライトバック処
理及び必要ならば一貫性保持動作を実行することによっ
て、同期命令発行時点で集中的に発生する主記憶へのラ
イトバック処理トラフィックや一貫性保持動作・トラフ
ィックを分散することを実現している。
えられる同期命令発行時点でデータの一貫性が保証され
るような緩いメモリ・コンシステンシ・モデルを採用し
た一貫性制御が行われる図11に示すような構成の情報
処理システムにおいて、キャッシュの一貫性保持動作を
制御するキャッシュ制御シーケンサが、同期命令発行時
以外でDIRTYブロックの数が既定値以上になった場
合にもDIRTY状態にあるキャッシュのデータブロッ
クを、当該主記憶ユニットに主記憶へのライトバック処
理及び必要ならば一貫性保持動作を実行することによっ
て、同期命令発行時点で集中的に発生する主記憶へのラ
イトバック処理トラフィックや一貫性保持動作・トラフ
ィックを分散することを実現している。
【0085】図12は、本実施例の一部分である計算機
ノードの内部構成を示す図である。図12においては、
計算機ノード1を例にあげているが、計算機ノード2,
3についても同様な構成をとる。
ノードの内部構成を示す図である。図12においては、
計算機ノード1を例にあげているが、計算機ノード2,
3についても同様な構成をとる。
【0086】図12において、プロセッサ10は、メモ
リ・アクセスを多重発行することが可能であり、多重発
行されたメモリ・アクセスを緩いメモリ・コンシステン
シ・モデルによるデータ一貫性保証の下で完了させるた
めの特別な命令(同期命令)を持つものとする。
リ・アクセスを多重発行することが可能であり、多重発
行されたメモリ・アクセスを緩いメモリ・コンシステン
シ・モデルによるデータ一貫性保証の下で完了させるた
めの特別な命令(同期命令)を持つものとする。
【0087】図12中、11はキャッシュユニットであ
り、12は主記憶ユニットであり、15はローカルバス
であり、13はノード間インタフェースである。また、
主記憶ユニット12は、主記憶制御シーケンサ121,
メモリ123、及びディレクトリユニット122を含
む。141はプロセッサ10とキャッシュユニット11
を接続するプロセッサアドレスバスであり、142はプ
ロセッサ10とキャッシュユニット11を接続するプロ
セッサデータバスであり、143はプロセッサ10とキ
ャッシュユニット11を接続するプロセッサコントロー
ルバスである。
り、12は主記憶ユニットであり、15はローカルバス
であり、13はノード間インタフェースである。また、
主記憶ユニット12は、主記憶制御シーケンサ121,
メモリ123、及びディレクトリユニット122を含
む。141はプロセッサ10とキャッシュユニット11
を接続するプロセッサアドレスバスであり、142はプ
ロセッサ10とキャッシュユニット11を接続するプロ
セッサデータバスであり、143はプロセッサ10とキ
ャッシュユニット11を接続するプロセッサコントロー
ルバスである。
【0088】プロセッサコントロールバス143にはプ
ロセッサ10が発行するメモリ・アクセス要求信号線、
及び当該メモリ・アクセス要求信号線の種別を示すメモ
リ・アクセス種別信号線群が含まれる。
ロセッサ10が発行するメモリ・アクセス要求信号線、
及び当該メモリ・アクセス要求信号線の種別を示すメモ
リ・アクセス種別信号線群が含まれる。
【0089】151はキャッシュユニット11とノード
間インタフェース13,主記憶ユニット12を接続する
ローカルアドレスバスであり、152はキャッシュユニ
ット11とノード間インタフェース13,主記憶ユニッ
ト12を接続するローカルデータバスであり、153は
キャッシュユニット11とノード間インタフェース1
3,主記憶ユニット12を接続するローカルコントロー
ルバスである。
間インタフェース13,主記憶ユニット12を接続する
ローカルアドレスバスであり、152はキャッシュユニ
ット11とノード間インタフェース13,主記憶ユニッ
ト12を接続するローカルデータバスであり、153は
キャッシュユニット11とノード間インタフェース1
3,主記憶ユニット12を接続するローカルコントロー
ルバスである。
【0090】ローカルコントロールバス153にはキャ
ッシュユニット11が発行するトランザクション要求信
号線、及び当該一貫性保持動作の種別を示すトランザク
ション種別信号線群が含まれる。
ッシュユニット11が発行するトランザクション要求信
号線、及び当該一貫性保持動作の種別を示すトランザク
ション種別信号線群が含まれる。
【0091】43はノード間インタフェース13,2
3,33を接続するグローバルコントロールバスであ
り、41はノード間インタフェース13,23,33を
接続するグローバルアドレスバスであり、42はノード
間インタフェース13,23,33を接続するグローバ
ルデータバスである。
3,33を接続するグローバルコントロールバスであ
り、41はノード間インタフェース13,23,33を
接続するグローバルアドレスバスであり、42はノード
間インタフェース13,23,33を接続するグローバ
ルデータバスである。
【0092】グローバルコントロールバス43にはノー
ド間インタフェース13,23,33が発行するトラン
ザクション要求信号線、当該トランザクション要求信号
線の種別を示すトランザクション種別信号線群が含まれ
る。
ド間インタフェース13,23,33が発行するトラン
ザクション要求信号線、当該トランザクション要求信号
線の種別を示すトランザクション種別信号線群が含まれ
る。
【0093】グローバルバスアービタ5はノード間イン
タフェースから発行されるトランザクション要求信号線
を受取り、グローバルバス4の使用権の調停を行う。
タフェースから発行されるトランザクション要求信号線
を受取り、グローバルバス4の使用権の調停を行う。
【0094】キャッシュユニットについては実施例1と
同様の構成をとるため、説明は省略する。
同様の構成をとるため、説明は省略する。
【0095】図13は、本実施例の一部分である主記憶
ユニット12の構成を示す図である。
ユニット12の構成を示す図である。
【0096】図13中、121は主記憶ユニット内の各
モジュールを制御する主記憶制御シーケンサである。1
24はキャッシュユニット11,21,31に保持され
るデータブロックの共有情報を保持するディレクトリフ
ラグである。122ディレクトリユニットはディレクト
リフラグを内部に保持するモジュールである。123は
データブロックを保持するメモリである。
モジュールを制御する主記憶制御シーケンサである。1
24はキャッシュユニット11,21,31に保持され
るデータブロックの共有情報を保持するディレクトリフ
ラグである。122ディレクトリユニットはディレクト
リフラグを内部に保持するモジュールである。123は
データブロックを保持するメモリである。
【0097】157はローカルアドレスバス151と接
続するためのローカルアドレスバスインタフェースであ
り、158はローカルデータバス152と接続するため
のローカルデータバスインタフェースであり、159は
ローカルコントロールバス153と接続するためのロー
カルコントロールバスインタフェースである。 <LOAD命令の処理手順>図14は、上記のように構
成されるマルチプロセッサシステムの各ノードにおける
LOAD命令実行の際の制御手順を示したものである。
以下、LOAD命令がプロセッサ10から発行されたも
のとして説明する。なお、破線の矢印は制御がユニット
間で移行することを示している。
続するためのローカルアドレスバスインタフェースであ
り、158はローカルデータバス152と接続するため
のローカルデータバスインタフェースであり、159は
ローカルコントロールバス153と接続するためのロー
カルコントロールバスインタフェースである。 <LOAD命令の処理手順>図14は、上記のように構
成されるマルチプロセッサシステムの各ノードにおける
LOAD命令実行の際の制御手順を示したものである。
以下、LOAD命令がプロセッサ10から発行されたも
のとして説明する。なお、破線の矢印は制御がユニット
間で移行することを示している。
【0098】図14において、プロセッサ10から発行
されるLOAD命令に対して、アドレスタグ内にLOA
Dすべきアドレスがある場合、すなわちキャッシュ・リ
ードヒットした場合(S1401−YES)、キャッシ
ュユニット11は、プロセッサ10に対してデータブロ
ックを供給する(S1416)。
されるLOAD命令に対して、アドレスタグ内にLOA
Dすべきアドレスがある場合、すなわちキャッシュ・リ
ードヒットした場合(S1401−YES)、キャッシ
ュユニット11は、プロセッサ10に対してデータブロ
ックを供給する(S1416)。
【0099】また、プロセッサ10から発行されるLO
AD命令に対してキャッシュ・リードミスした場合、キ
ャッシュユニット11は、ローカルバス15に対してリ
ード要求を発行する(S1402)。この場合、キャッ
シュ・リードミスしたデータブロックがキャッシュユニ
ット11に供給されるまで、キャッシュユニット11は
プロセッサ10に対してデータブロックの供給を行わな
い。
AD命令に対してキャッシュ・リードミスした場合、キ
ャッシュユニット11は、ローカルバス15に対してリ
ード要求を発行する(S1402)。この場合、キャッ
シュ・リードミスしたデータブロックがキャッシュユニ
ット11に供給されるまで、キャッシュユニット11は
プロセッサ10に対してデータブロックの供給を行わな
い。
【0100】キャッシュユニット11は、ローカルコン
トロールバス153に対してリード要求元情報,及びロ
ーカルアドレスバス151に対して当該リードアクセス
のアドレスを転送し、ローカルコントロールバス153
に対してリード要求を発行し、ローカルデータバス15
2にデータブロックが供給されるまで待つ。
トロールバス153に対してリード要求元情報,及びロ
ーカルアドレスバス151に対して当該リードアクセス
のアドレスを転送し、ローカルコントロールバス153
に対してリード要求を発行し、ローカルデータバス15
2にデータブロックが供給されるまで待つ。
【0101】(1)キャッシュ・リードミスした場合
で、かつ、当該リードアクセスのアドレス(LOADす
るアドレス)が計算機ノード1内の主記憶ユニット12
に対するリードアクセスである場合(S1403−YE
S)、キャッシュユニットは主記憶ユニットにデータを
要求する(S1411)。この要求に対し、主記憶ユニ
ット12は、リード要求,及び当該リードアクセスのア
ドレスを受け付けてローカルデータバス152にデータ
ブロックを供給する。また、同時に主記憶ユニット12
内のディレクトリユニット122にリード要求元である
キャッシュユニット11に対応したディレクトリフラグ
を登録する(S1412,1413)。このステップ
は、キャッシュユニットでなく主記憶ユニットによる動
作である。
で、かつ、当該リードアクセスのアドレス(LOADす
るアドレス)が計算機ノード1内の主記憶ユニット12
に対するリードアクセスである場合(S1403−YE
S)、キャッシュユニットは主記憶ユニットにデータを
要求する(S1411)。この要求に対し、主記憶ユニ
ット12は、リード要求,及び当該リードアクセスのア
ドレスを受け付けてローカルデータバス152にデータ
ブロックを供給する。また、同時に主記憶ユニット12
内のディレクトリユニット122にリード要求元である
キャッシュユニット11に対応したディレクトリフラグ
を登録する(S1412,1413)。このステップ
は、キャッシュユニットでなく主記憶ユニットによる動
作である。
【0102】キャッシュユニット11は、主記憶ユニッ
トからデータを受けると、リプレース処理を行ってキャ
ッシュに使用可能な領域をつくった後(S1414)、
ローカルデータバス152に供給されたデータブロック
をキャッシュユニット11内の当該データブロックのエ
ントリに書き込む(S1415)。
トからデータを受けると、リプレース処理を行ってキャ
ッシュに使用可能な領域をつくった後(S1414)、
ローカルデータバス152に供給されたデータブロック
をキャッシュユニット11内の当該データブロックのエ
ントリに書き込む(S1415)。
【0103】(2)キャッシュ・リードミスした場合
で、かつ、当該リードアクセスのアドレスが計算機ノー
ド1外の主記憶ユニット(例えば主記憶ユニット22)
に対するリードアクセスである場合(S1403−N
O)、キャッシュユニットはグローバルバスにデータ要
求を発行する(S1404)。これを受けて、ノード間
インタフェース13は、リード要求、及び当該リードア
クセスのアドレスを受け付けてグローバルコントロール
バス43に対してリード要求元情報、及びグローバルア
ドレスバス41に対して当該リードアクセスのアドレス
を転送し、リモートノードのノード間インタフェース2
3に対してリード要求を発行し、グローバルデータバス
42にデータブロックが供給されるまで待つ。
で、かつ、当該リードアクセスのアドレスが計算機ノー
ド1外の主記憶ユニット(例えば主記憶ユニット22)
に対するリードアクセスである場合(S1403−N
O)、キャッシュユニットはグローバルバスにデータ要
求を発行する(S1404)。これを受けて、ノード間
インタフェース13は、リード要求、及び当該リードア
クセスのアドレスを受け付けてグローバルコントロール
バス43に対してリード要求元情報、及びグローバルア
ドレスバス41に対して当該リードアクセスのアドレス
を転送し、リモートノードのノード間インタフェース2
3に対してリード要求を発行し、グローバルデータバス
42にデータブロックが供給されるまで待つ。
【0104】ノード間インタフェース23は、リード要
求、及び当該リードアクセスのアドレスを受け付けてロ
ーカルコントロールバス253にに対してリード要求元
情報,及びローカルアドレスバス251に対して当該リ
ードアクセスのアドレスを転送し、ローカルコントロー
ルバス253に対してリード要求を発行し、ローカルデ
ータバス252にデータブロックが供給されるまで待
つ。このようにしてリモートノードの主記憶ユニットに
データ要求が行われる(S1405)。
求、及び当該リードアクセスのアドレスを受け付けてロ
ーカルコントロールバス253にに対してリード要求元
情報,及びローカルアドレスバス251に対して当該リ
ードアクセスのアドレスを転送し、ローカルコントロー
ルバス253に対してリード要求を発行し、ローカルデ
ータバス252にデータブロックが供給されるまで待
つ。このようにしてリモートノードの主記憶ユニットに
データ要求が行われる(S1405)。
【0105】主記憶ユニット22は、リード要求,及び
当該リードアクセスのアドレスを受け付けてローカルデ
ータバス252にデータブロックを供給する。また、同
時に主記憶ユニット22内のディレクトリユニット22
2にリード要求元であるキャッシュユニット21に対応
したディレクトリフラグを登録する(S1406)。
当該リードアクセスのアドレスを受け付けてローカルデ
ータバス252にデータブロックを供給する。また、同
時に主記憶ユニット22内のディレクトリユニット22
2にリード要求元であるキャッシュユニット21に対応
したディレクトリフラグを登録する(S1406)。
【0106】ノード間インタフェース23は、ローカル
データバス152に供給されたデータブロックをグロー
バルデータバス42に転送する(S1407)。
データバス152に供給されたデータブロックをグロー
バルデータバス42に転送する(S1407)。
【0107】ノード間インタフェース13は、グローバ
ルデータバス42に供給されたデータブロックをローカ
ルデータバス152に転送する(S1408)。
ルデータバス42に供給されたデータブロックをローカ
ルデータバス152に転送する(S1408)。
【0108】ステップS1406〜S1408は、キャ
ッシュユニットによる処理ではなく、要求を受けた側の
処理である。
ッシュユニットによる処理ではなく、要求を受けた側の
処理である。
【0109】キャッシュユニット11は、リプレース処
理により使用可能なデータブロックを確保し(S140
9)、ローカルデータバス152に供給されたデータブ
ロックをキャッシュユニット11内の当該データブロッ
クのエントリに読み込む。
理により使用可能なデータブロックを確保し(S140
9)、ローカルデータバス152に供給されたデータブ
ロックをキャッシュユニット11内の当該データブロッ
クのエントリに読み込む。
【0110】キャッシュユニット11は、プロセッサ1
0に対してデータブロックを供給する(S1410)。
0に対してデータブロックを供給する(S1410)。
【0111】このようにして、各ノードの主記憶ユニッ
トから所望のデータブロックをロードする。
トから所望のデータブロックをロードする。
【0112】STORE命令実行の際の制御手順は第1
の形態と同様なので説明は省略する。また、同期命令実
行の際の制御手順も第1の形態と同様なので説明は省略
する。 <ライトバック処理の手順>図15は、主記憶へのライ
トバック処理実行の際の制御手順を示したものである。
以下、主記憶へのライトバック処理がキャッシュユニッ
ト11から発行されたものとして説明する。
の形態と同様なので説明は省略する。また、同期命令実
行の際の制御手順も第1の形態と同様なので説明は省略
する。 <ライトバック処理の手順>図15は、主記憶へのライ
トバック処理実行の際の制御手順を示したものである。
以下、主記憶へのライトバック処理がキャッシュユニッ
ト11から発行されたものとして説明する。
【0113】図15において、キャッシュユニット11
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し(S1501)、ローカルデータバス152
にライトバックするデータブロックを供給し、ライトバ
ックしたデータブロックが当該主記憶ユニットのエント
リに供給され,必要な一貫性保持動作が完了し,主記憶
へのライトバック処理が完了するまで待つ。
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し(S1501)、ローカルデータバス152
にライトバックするデータブロックを供給し、ライトバ
ックしたデータブロックが当該主記憶ユニットのエント
リに供給され,必要な一貫性保持動作が完了し,主記憶
へのライトバック処理が完了するまで待つ。
【0114】(1)当該主記憶へのライトバック処理の
アドレスが計算機ノード1内の主記憶ユニット12に対
するライトバックアクセスである場合(S1502−Y
ES)、ローカルノードの主記憶ユニットに対してライ
トバック要求を発行する(S1510)。
アドレスが計算機ノード1内の主記憶ユニット12に対
するライトバックアクセスである場合(S1502−Y
ES)、ローカルノードの主記憶ユニットに対してライ
トバック要求を発行する(S1510)。
【0115】主記憶ユニット12は、リード要求、及び
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて主記憶ユニット12内のディレクトリユニット12
2を検索し、ライトバック要求元であるキャッシュユニ
ット11以外のディレクトリフラグが登録されているか
調べる(S1511)。キャッシュユニット11以外の
キャッシュユニットにもデータのコピーが有効状態で保
持されている場合は、有効状態で保持しているキャッシ
ュユニットデータブロックに対して一貫性保持動作を実
行する。この場合には、一貫性保持動作としてキャッシ
ュユニットに保有されたデータブロックのコピーを無効
化する処理を実行する(S1513)。
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて主記憶ユニット12内のディレクトリユニット12
2を検索し、ライトバック要求元であるキャッシュユニ
ット11以外のディレクトリフラグが登録されているか
調べる(S1511)。キャッシュユニット11以外の
キャッシュユニットにもデータのコピーが有効状態で保
持されている場合は、有効状態で保持しているキャッシ
ュユニットデータブロックに対して一貫性保持動作を実
行する。この場合には、一貫性保持動作としてキャッシ
ュユニットに保有されたデータブロックのコピーを無効
化する処理を実行する(S1513)。
【0116】本実施例では一貫性保持動作は無効化型の
トランザクションとするが、これは本実施例に制限され
るものではない。
トランザクションとするが、これは本実施例に制限され
るものではない。
【0117】一貫性保持動作完了後、主記憶ユニット
は、当該データブロックのエントリにライトバックデー
タを書き込む(S1514)。最後に、キャッシュユニ
ット11に主記憶へのライトバック処理完了を通達する
(S1515)。
は、当該データブロックのエントリにライトバックデー
タを書き込む(S1514)。最後に、キャッシュユニ
ット11に主記憶へのライトバック処理完了を通達する
(S1515)。
【0118】(2)当該主記憶へのライトバック処理の
アドレスが計算機ノード1外の主記憶ユニット(例えば
主記憶ユニット22)に対するライトバックアクセスで
ある場合(S1502−NO)、キャッシュユニット1
1はノード間インターフェース13にライトバック要求
を出す。
アドレスが計算機ノード1外の主記憶ユニット(例えば
主記憶ユニット22)に対するライトバックアクセスで
ある場合(S1502−NO)、キャッシュユニット1
1はノード間インターフェース13にライトバック要求
を出す。
【0119】ノード間インタフェース13は、ライトバ
ック要求,及び当該ライトバックアクセスのアドレス,
ローカルデータバス152に供給されているデータブロ
ックを受け付けてグローバルコントロールバス43に対
してライトバック要求元情報,及びグローバルアドレス
バス41に対して当該ライトバックアクセスのアドレ
ス,グローバルデータバス42に対して当該ライトバッ
クアクセスのデータブロックを転送し、ノード間インタ
フェース23に対してライトバック要求を発行する(S
1503)。
ック要求,及び当該ライトバックアクセスのアドレス,
ローカルデータバス152に供給されているデータブロ
ックを受け付けてグローバルコントロールバス43に対
してライトバック要求元情報,及びグローバルアドレス
バス41に対して当該ライトバックアクセスのアドレ
ス,グローバルデータバス42に対して当該ライトバッ
クアクセスのデータブロックを転送し、ノード間インタ
フェース23に対してライトバック要求を発行する(S
1503)。
【0120】ノード間インタフェース23は、ライトバ
ック要求、及び当該リードアクセスのアドレスを受け付
けてローカルコントロールバス253に対してライトバ
ック要求元情報,及びローカルアドレスバス251に対
して当該ライトバックアクセスのアドレス,ローカルデ
ータバス252に対して当該ライトバックアクセスのデ
ータブロックを転送し、ローカルコントロールバス25
3に対してライトバック要求を発行する。こうしてリモ
ートノードの主記憶ユニットについてライトバック要求
を発行する(S1504)。
ック要求、及び当該リードアクセスのアドレスを受け付
けてローカルコントロールバス253に対してライトバ
ック要求元情報,及びローカルアドレスバス251に対
して当該ライトバックアクセスのアドレス,ローカルデ
ータバス252に対して当該ライトバックアクセスのデ
ータブロックを転送し、ローカルコントロールバス25
3に対してライトバック要求を発行する。こうしてリモ
ートノードの主記憶ユニットについてライトバック要求
を発行する(S1504)。
【0121】主記憶ユニット22は、主記憶ユニット2
2内のディレクトリユニット222を検索し、ライトバ
ック要求元であるキャッシュユニット11以外のディレ
クトリフラグが登録されているか調べる(S150
5)。キャッシュユニット11以外のキャッシュユニッ
トにもデータのコピーが有効状態で保持されている場合
は、有効状態で保持しているキャッシュユニットデータ
ブロックに対して一貫性保持動作を実行する。この場合
には、一貫性保持のために有効状態のコピーを無効化す
る。
2内のディレクトリユニット222を検索し、ライトバ
ック要求元であるキャッシュユニット11以外のディレ
クトリフラグが登録されているか調べる(S150
5)。キャッシュユニット11以外のキャッシュユニッ
トにもデータのコピーが有効状態で保持されている場合
は、有効状態で保持しているキャッシュユニットデータ
ブロックに対して一貫性保持動作を実行する。この場合
には、一貫性保持のために有効状態のコピーを無効化す
る。
【0122】一貫性保持動作完了後、主記憶ユニット2
2は、リード要求、及び当該ライトバックアクセスのア
ドレス及びローカルデータバス252に供給されている
データブロックを受け付けて当該データブロックのエン
トリに書き込む(S1508)。
2は、リード要求、及び当該ライトバックアクセスのア
ドレス及びローカルデータバス252に供給されている
データブロックを受け付けて当該データブロックのエン
トリに書き込む(S1508)。
【0123】ノード間インタフェース23は、ノード間
インタフェース13に主記憶へのライトバック処理完了
を通達する。
インタフェース13に主記憶へのライトバック処理完了
を通達する。
【0124】ノード間インタフェース13は、キャッシ
ュユニット11に主記憶へのライトバック処理完了を通
達する(S1509)。
ュユニット11に主記憶へのライトバック処理完了を通
達する(S1509)。
【0125】上記手順のうち、ステップS1501〜S
1503,S1510はキャッシュユニットの処理であ
り、ステップS1504はノード間インターフェースの
処理で、それ以外のステップはライトバック要求を受け
たノードの主記憶による処理である。以上の手順で、デ
ィレクトリを参照して無効化を行い、ライトバックが実
行される。
1503,S1510はキャッシュユニットの処理であ
り、ステップS1504はノード間インターフェースの
処理で、それ以外のステップはライトバック要求を受け
たノードの主記憶による処理である。以上の手順で、デ
ィレクトリを参照して無効化を行い、ライトバックが実
行される。
【0126】リプレース処理実行時の制御手順は第1の
実施形態と同様なので説明は省略する。
実施形態と同様なので説明は省略する。
【0127】各メモリトランザクション実行時の状態フ
ラグの状態遷移も第1の実施形態と同様なので説明は省
略する。
ラグの状態遷移も第1の実施形態と同様なので説明は省
略する。
【0128】本手法による一貫性保持動作の手順の理解
のために、まず同期命令発行時点まで一貫性保持動作が
延期される例を説明し、次にDIRTYブロックの数が
ある既定値以上になった時点で一貫性保持動作が実行さ
れる例を説明する。
のために、まず同期命令発行時点まで一貫性保持動作が
延期される例を説明し、次にDIRTYブロックの数が
ある既定値以上になった時点で一貫性保持動作が実行さ
れる例を説明する。
【0129】具体的には、例えばプロセッサ10,2
0,30がアドレスf8000000番地に対してLO
AD命令を発行し、それぞれのLOAD命令が完了した
後で、プロセッサ10がアドレスf8000000番地
に対してSTORE命令を発行した場合、STORE命
令発行時点ではキャッシュユニット21,31に対して
一貫性保持動作は発行されず、同期命令がプロセッサ1
0から発行された場合に、一貫性保持動作が発行される
ことをどのようにして実現するかを図16を参考にして
説明し、また、同様にプロセッサ10,20,30がア
ドレスf8000000番地に対してLOAD命令を発
行し、プロセッサ10がアドレスf8000000番地
に対してSTORE命令を発行した場合、STORE命
令発行時点ではノード間インタフェース13がキャッシ
ュユニット21,31に対して一貫性保持動作を発行せ
ず、DIRTYブロックの数がある既定値(この例では
2)以上になった場合に、一貫性保持動作が発行される
ことをノード間インタフェース13,23,33の持つ
機構でどのようにして実現するかを図16を参考にして
説明する。
0,30がアドレスf8000000番地に対してLO
AD命令を発行し、それぞれのLOAD命令が完了した
後で、プロセッサ10がアドレスf8000000番地
に対してSTORE命令を発行した場合、STORE命
令発行時点ではキャッシュユニット21,31に対して
一貫性保持動作は発行されず、同期命令がプロセッサ1
0から発行された場合に、一貫性保持動作が発行される
ことをどのようにして実現するかを図16を参考にして
説明し、また、同様にプロセッサ10,20,30がア
ドレスf8000000番地に対してLOAD命令を発
行し、プロセッサ10がアドレスf8000000番地
に対してSTORE命令を発行した場合、STORE命
令発行時点ではノード間インタフェース13がキャッシ
ュユニット21,31に対して一貫性保持動作を発行せ
ず、DIRTYブロックの数がある既定値(この例では
2)以上になった場合に、一貫性保持動作が発行される
ことをノード間インタフェース13,23,33の持つ
機構でどのようにして実現するかを図16を参考にして
説明する。
【0130】図16は、本実施例の一貫性保持動作の一
例を示すタイミングチャート図である。アドレスf80
00000番地が計算機ノード1内の主記憶ユニット1
2に割り当てられているものとして説明する。
例を示すタイミングチャート図である。アドレスf80
00000番地が計算機ノード1内の主記憶ユニット1
2に割り当てられているものとして説明する。
【0131】時刻1では、プロセッサ10,20,30
がアドレスf8000000番地に対してそれぞれLO
AD命令を発行し、それぞれが主記憶ユニット12から
ロードを完了している。このとき、アドレスf8000
000番地に対応するディレクトリフラグには、そのコ
ピーを保有するノードとしてキャッシュユニット11,
21,31が登録されている。
がアドレスf8000000番地に対してそれぞれLO
AD命令を発行し、それぞれが主記憶ユニット12から
ロードを完了している。このとき、アドレスf8000
000番地に対応するディレクトリフラグには、そのコ
ピーを保有するノードとしてキャッシュユニット11,
21,31が登録されている。
【0132】時刻2では、プロセッサ10がアドレスf
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
その状態はDIRTYに変更されている。また、状態フ
ラグカウンタ117をインクリメントする。
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
その状態はDIRTYに変更されている。また、状態フ
ラグカウンタ117をインクリメントする。
【0133】時刻3では、プロセッサ10が同期命令を
発行している。
発行している。
【0134】時刻4では、時刻3で発行されたプロセッ
サ10の同期命令により、キャッシュ11内にDIRT
Yで保持されているアドレスf8000000番地の主
記憶へのライトバック処理が生じている。
サ10の同期命令により、キャッシュ11内にDIRT
Yで保持されているアドレスf8000000番地の主
記憶へのライトバック処理が生じている。
【0135】時刻5では、時刻4で生じたアドレスf8
000000番地の主記憶へのライトバック処理により
一貫性保持動作が生じている。
000000番地の主記憶へのライトバック処理により
一貫性保持動作が生じている。
【0136】時刻6では、時刻5で生じた一貫性保持動
作により、キャッシュユニット21,31が無効化され
ている。
作により、キャッシュユニット21,31が無効化され
ている。
【0137】時刻7では、一貫性保持動作の完了を受け
付けて、主記憶へのライトバック処理が完了したキャッ
シュユニット11はプロセッサ10に同期命令の完了を
通達し、時刻3で発行された同期命令が完了している。
付けて、主記憶へのライトバック処理が完了したキャッ
シュユニット11はプロセッサ10に同期命令の完了を
通達し、時刻3で発行された同期命令が完了している。
【0138】このように、いずれのキャッシュユニット
にも、所定のしきい値(この場合は2)以上のDIRT
Y状態のデータブロックが、予め定められた同期時期
(同期命令の発せられる時期)までに発生しないため、
同期命令によってライトバック及び一貫性保持動作(無
効化処理)が初めて行われる。
にも、所定のしきい値(この場合は2)以上のDIRT
Y状態のデータブロックが、予め定められた同期時期
(同期命令の発せられる時期)までに発生しないため、
同期命令によってライトバック及び一貫性保持動作(無
効化処理)が初めて行われる。
【0139】図17は、DIRTY状態のデータブロッ
ク数をトリガとして一貫性保持動作を起動する一例を示
すタイミングチャート図である。
ク数をトリガとして一貫性保持動作を起動する一例を示
すタイミングチャート図である。
【0140】アドレスf8000000番地,及びアド
レスf8000001番地が計算機ノード1内の主記憶
ユニット12に割り当てられているものとして説明す
る。
レスf8000001番地が計算機ノード1内の主記憶
ユニット12に割り当てられているものとして説明す
る。
【0141】時刻1では、プロセッサ10,20がアド
レスf8000000番地に対してLOAD命令を発行
し、それぞれが主記憶ユニット12からリードを完了し
ている。このとき、アドレスf8000000番地に対
応するディレクトリフラグにはキャッシュユニット1
1,21が登録されている。
レスf8000000番地に対してLOAD命令を発行
し、それぞれが主記憶ユニット12からリードを完了し
ている。このとき、アドレスf8000000番地に対
応するディレクトリフラグにはキャッシュユニット1
1,21が登録されている。
【0142】時刻2では、プロセッサ10がアドレスf
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
DIRTYに変更されている。また、状態フラグカウン
タ117をインクリメントする。
8000000番地に対してSTORE命令を発行し、
STORE命令が完了している。このとき、一貫性保持
動作は発生しない。キャッシュ11内の状態フラグ11
3はプロセッサ10の発行したSTORE命令の結果、
DIRTYに変更されている。また、状態フラグカウン
タ117をインクリメントする。
【0143】時刻3では、プロセッサ30がアドレスf
8000000番地に対してLOAD命令を発行し、L
OAD命令を完了している。このときも、キャッシュユ
ニット31は主記憶ユニット12からデータブロックを
リードするだけで一貫性保持動作は発生しない。LOA
D命令の結果、アドレスf8000000番地に対応す
るディレクトリフラグにはキャッシュユニット11,2
1,31が登録されている。
8000000番地に対してLOAD命令を発行し、L
OAD命令を完了している。このときも、キャッシュユ
ニット31は主記憶ユニット12からデータブロックを
リードするだけで一貫性保持動作は発生しない。LOA
D命令の結果、アドレスf8000000番地に対応す
るディレクトリフラグにはキャッシュユニット11,2
1,31が登録されている。
【0144】時刻4では、プロセッサ10がアドレスf
8000001番地に対してSTORE命令を発行し、
STORE命令が完了している。状態フラグカウンタ1
17をインクリメントするとDIRTYブロックの数が
既定値である2以上になったので、主記憶へのライトバ
ック処理が生じている。
8000001番地に対してSTORE命令を発行し、
STORE命令が完了している。状態フラグカウンタ1
17をインクリメントするとDIRTYブロックの数が
既定値である2以上になったので、主記憶へのライトバ
ック処理が生じている。
【0145】時刻5では、時刻4で生じたアドレスf8
000000番地の主記憶へのライトバック処理により
一貫性保持動作が生じている。
000000番地の主記憶へのライトバック処理により
一貫性保持動作が生じている。
【0146】時刻6では、時刻5で生じた一貫性保持動
作により、キャッシュユニット21,31が無効化され
ている。
作により、キャッシュユニット21,31が無効化され
ている。
【0147】時刻7では、アドレスf8000001番
地の主記憶へのライトバック処理が生じている。
地の主記憶へのライトバック処理が生じている。
【0148】時刻8では、アドレスf8000001番
地の主記憶へのライトバック処理が完了している 以上のようにして、キャッシュ内のDIRTYなデータ
ブロックの数が予め定めておいた数以上となった場合
に、キャッシュ内のDIRTYブロックを主記憶にライ
トバック(及び一貫性保持処理)してしまうことで、次
の同期時期にライトバック及び一貫性保持処理を行うべ
きブロック数を予め設定した上限以下に抑制することが
できる。例えば、本例では、N個のノードからなるシス
テムで1ノードについてbブロック以上のDIRTYブ
ロックが発生したところでライトバックを行うとすれ
ば、同期命令によって一時にまとめてライトバック及び
同期保持処理が行われる対象となるデータブロック数
は、N×bを越えることはない。
地の主記憶へのライトバック処理が完了している 以上のようにして、キャッシュ内のDIRTYなデータ
ブロックの数が予め定めておいた数以上となった場合
に、キャッシュ内のDIRTYブロックを主記憶にライ
トバック(及び一貫性保持処理)してしまうことで、次
の同期時期にライトバック及び一貫性保持処理を行うべ
きブロック数を予め設定した上限以下に抑制することが
できる。例えば、本例では、N個のノードからなるシス
テムで1ノードについてbブロック以上のDIRTYブ
ロックが発生したところでライトバックを行うとすれ
ば、同期命令によって一時にまとめてライトバック及び
同期保持処理が行われる対象となるデータブロック数
は、N×bを越えることはない。
【0149】このように、キャッシュ・メモリ及びキャ
ッシュ・メモリの一貫性保持動作機構を提供し、同期ポ
イント時点に集中する相互結合網上のトラフィックを分
散させることで、相互結合網の利用効率低下,及び同期
動作に伴う処理のオーバーヘッドを軽減することができ
る。
ッシュ・メモリの一貫性保持動作機構を提供し、同期ポ
イント時点に集中する相互結合網上のトラフィックを分
散させることで、相互結合網の利用効率低下,及び同期
動作に伴う処理のオーバーヘッドを軽減することができ
る。
【0150】また、本発明は、システム或は装置にプロ
グラムを供給することによって達成される場合にも適用
できることはいうまでもない。この場合、本発明を達成
するためのソフトウェアによって表されるプログラムを
格納した記憶媒体から、該プログラムを該システム或は
装置に読み出すことによって、そのシステム或は装置
が、本発明の効果を享受することが可能となる。
グラムを供給することによって達成される場合にも適用
できることはいうまでもない。この場合、本発明を達成
するためのソフトウェアによって表されるプログラムを
格納した記憶媒体から、該プログラムを該システム或は
装置に読み出すことによって、そのシステム或は装置
が、本発明の効果を享受することが可能となる。
【0151】
【発明の効果】以上説明したように、本発明によれば、
緩いメモリ・コンシステンシ・モデルを採用し、相互結
合網で互いに結合された並列計算機システムにおいて、
その性能をより向上させるためのキャッシュ・メモリ及
びキャッシュ・メモリの一貫性保持動作機構を提供し、
同期ポイント時点に集中する相互結合網上のトラフィッ
クを分散させることで、相互結合網の利用効率低下,及
び同期動作に伴う処理のオーバーヘッドを軽減すること
が可能であり、システム全体の処理能力を向上させると
いう効果がある。
緩いメモリ・コンシステンシ・モデルを採用し、相互結
合網で互いに結合された並列計算機システムにおいて、
その性能をより向上させるためのキャッシュ・メモリ及
びキャッシュ・メモリの一貫性保持動作機構を提供し、
同期ポイント時点に集中する相互結合網上のトラフィッ
クを分散させることで、相互結合網の利用効率低下,及
び同期動作に伴う処理のオーバーヘッドを軽減すること
が可能であり、システム全体の処理能力を向上させると
いう効果がある。
【0152】
【図1】第1の実施形態の情報処理システムの構成を示
す図である。
す図である。
【図2】第1及び第2の実施形態のキャッシュユニット
の構成を示す図である。
の構成を示す図である。
【図3】第1の実施形態においてキャッシュユニットが
LOAD命令命令実行時に行う処理のチャートである。
LOAD命令命令実行時に行う処理のチャートである。
【図4】第1及び第2の実施形態においてキャッュユニ
ットがSTORE命令命令実行時に行う処理のチャート
である。
ットがSTORE命令命令実行時に行う処理のチャート
である。
【図5】第1及び第2の実施形態においてキャッシュユ
ニットが同期命令実行時に行う処理のチャートである。
ニットが同期命令実行時に行う処理のチャートである。
【図6】第1の実施形態において主記憶へのライトバッ
ク処理実施時のチャートである。
ク処理実施時のチャートである。
【図7】第1の実施形態においてデータブロックの置換
時に行う処理のチャートである。
時に行う処理のチャートである。
【図8】第1及び第2の実施形態の状態フラグの状態遷
移図である。
移図である。
【図9】第1の実施形態において同期命令発行時点まで
一貫性保持動作が延期される例を示すチャートである。
一貫性保持動作が延期される例を示すチャートである。
【図10】第1の実施形態においてDIRTYブロック
の数がある既定値以上になる時点まで一貫性保持動作が
延期される例を示すチャートである。
の数がある既定値以上になる時点まで一貫性保持動作が
延期される例を示すチャートである。
【図11】第2の実施形態の情報処理システムの構成を
示す図である。
示す図である。
【図12】第2の実施形態の計算機ノードの構成を示す
図である。
図である。
【図13】第2の実施形態の主記憶ユニットの構成を示
す図である。
す図である。
【図14】第2の実施形態においてキャッシュユニット
がLOAD命令命令実行時に行う処理のチャートであ
る。
がLOAD命令命令実行時に行う処理のチャートであ
る。
【図15】第2の実施形態において主記憶へのライトバ
ック処理時に行う処理のチャートである。
ック処理時に行う処理のチャートである。
【図16】第2の実施形態の同期命令発行時点まで一貫
性保持動作が延期される例を示すチャートである。
性保持動作が延期される例を示すチャートである。
【図17】第2の実施形態のDIRTYブロックの数が
ある既定値以上になる時点まで一貫性保持動作が延期さ
れる例を示すチャートである。
ある既定値以上になる時点まで一貫性保持動作が延期さ
れる例を示すチャートである。
【図18】第1の実施形態を実現するためのプログラム
モジュールが記憶媒体に記録されるメモリマップを示す
図である。
モジュールが記憶媒体に記録されるメモリマップを示す
図である。
1,2,3 計算機ノード 4 グローバルバス 5 グローバルバスアービタ 10,20,30 プロセッサ 11,21,31キャッシュユニット 12,22,32 主記憶ユニット 13,23,33 ノード間インタフェース 14,24,34 プロセッサバス 15,25,35 ローカルバス 16 バスアービタ 41 グローバルアドレスバス 42 グローバルデータバス 43 グローバルコントロールバス 44 グローバルアドレスバスインタフェース 45 グローバルデータバスインタフェース 46 グローバルコントロールバスインタフェース 111 キャッシュ制御シーケンサ 112 アドレスタグ 113 状態フラグ 114 データエントリ 115 比較器 116 選択器 117 状態フラグカウンタ 121 主記憶制御シーケンサ 122,222,322 ディレクトリユニット 123,223,323 メモリ 124,224,324 ディレクトリフラグ 144,244,344 プロセッサアドレスバスイン
タフェース 145,245,345 プロセッサデータバスインタ
フェース 146,246,346 プロセッサコントロールバス
インタフェース 154,254,354,157 ローカルアドレスバ
スインタフェース 155,255,355,158 ローカルデータバス
インタフェース 156,256,356,159 ローカルコントロー
ルバスインタフェース 141,241,341 プロセッサアドレスバス 142,242,342 プロセッサデータバス 143,243,343 プロセッサコントロールバス 153,253,353 ローカルコントロールバス 151,251,351 ローカルアドレスバス 152,252,352 ローカルデータバス
タフェース 145,245,345 プロセッサデータバスインタ
フェース 146,246,346 プロセッサコントロールバス
インタフェース 154,254,354,157 ローカルアドレスバ
スインタフェース 155,255,355,158 ローカルデータバス
インタフェース 156,256,356,159 ローカルコントロー
ルバスインタフェース 141,241,341 プロセッサアドレスバス 142,242,342 プロセッサデータバス 143,243,343 プロセッサコントロールバス 153,253,353 ローカルコントロールバス 151,251,351 ローカルアドレスバス 152,252,352 ローカルデータバス
Claims (12)
- 【請求項1】 複数のプロセッサとそれぞれに付随する
キャッシュ・メモリと、主メモリ、及びキャッシュ・メ
モリと主メモリとを相互に接続する結合網を含む情報処
理システムにおいて、 各プロセッサの処理が予め定めた段階に達した場合、当
該プロセッサに付随するキャッシュ・メモリ中に存在す
るデータ・ブロックを主メモリに反映し、当該データ・
ブロックの内容の一貫性を保持する一貫性保持処理を実
行することを特徴とする情報処理システム。 - 【請求項2】 前記プロセッサによる処理が前記予め定
めた段階に達する以前において、キャッシュ・メモリ中
に存在するデータ・ブロックが所定の条件を満たした場
合には、当該キャッシュ・メモリ中に存在するデータ・
ブロックを主メモリに反映し、当該データ・ブロックの
内容の一貫性を保持する一貫性保持処理を実行すること
を特徴とする請求項1記載の情報処理システム。 - 【請求項3】 前記所定の条件は、その内容が主メモリ
に反映されていないデータ・ブロックの数を、予め指定
した値と比較することによって判定することを特徴とす
る請求項2記載の情報処理システム。 - 【請求項4】 前記所定の条件は、前記プロセッサが行
ったデータの書き込みの回数を、予め指定した値と比較
することによって判定することを特徴とする請求項2記
載の情報処理システム。 - 【請求項5】 前記情報処理システムは緩いメモリ・コ
ンシステンシ・モデルであることを特徴とする請求項1
乃至4のいずれかに記載の情報処理システム。 - 【請求項6】 前記一貫性保持処理は、ひとつのキャッ
シュ・メモリから主メモリに反映したデータ・ブロック
の、前記キャッシュ・メモリ以外のキャッシュ・メモリ
に保持される複製を無効化する処理であることを特徴と
する請求項1乃至5に記載の情報処理システム。 - 【請求項7】 前記主メモリは、前記複数のプロセッサ
それぞれと接続されており、プロセッサの1に付随する
キャッシュ・メモリは、他のプロセッサのキャッシュ・
メモリから、そこに格納されたデータ・ブロックを主メ
モリに反映する処理が行われたことを前記バスを介して
検知し、当該キャッシュ・メモリに格納されている該当
するデータブロックの複製を無効化することで前記一貫
性保持処理を実行することを特徴とする請求項6に記載
の情報処理システム。 - 【請求項8】 前記主メモリは、前記複数のプロセッサ
ごとに分散して接続されており、前記主メモリは、その
内容とするデータ・ブロックがキャッシュ・メモリに複
製されるごとに、その複製先を記録し、前記複数のプロ
セッサの1のキャッシュ・メモリからそこに格納された
データ・ブロックを主メモリに反映する処理が行われた
場合に、前記複製先の記録に基づいて該当するデータブ
ロックの複製を無効化することで前記一貫性保持処理を
実行することを特徴とする請求項6に記載の情報処理シ
ステム。 - 【請求項9】 複数の情報処理手段を接続して成り、記
憶手段から、各情報処理手段に付随するキャッシュ手段
にデータを複製して前記記憶手段の内容を前記複数の情
報処理手段で共有する情報処理システムにおいて、所定
の段階においてキャッシュ手段の内容を一斉に記憶手段
に書き戻す情報処理方法であって、 前記記憶手段に記憶された、所望のデータブロックをキ
ャッシュ手段に読み込む読込み工程と、 前記読込み工程によりキャッシュ手段に読み込まれたデ
ータブロックを更新するキャッシュ更新工程と、 前記キャッシュ更新工程により更新されたデータブロッ
ク数を計数する計数工程と、 前記計数工程により計数されたデータブロック数と所定
値とを比較して、その比較結果に基づいて前記更新され
たデータブロックを、前記記憶手段に書き戻す書き戻し
工程とを備えることを特徴とする情報処理方法。 - 【請求項10】 書き戻されたキャッシュ手段以外のキ
ャッシュ手段により前記書き戻し工程によるデータブロ
ックの記憶手段への書き戻しを検知して、前記キャッシ
ュ手段に保持された、書き戻しの対象となったデータブ
ロックの複製を無効化する工程を更に備えることを特徴
とする請求項9に記載の情報処理方法。 - 【請求項11】 前記読出し工程により主記憶手段から
キャッシュ手段に読み出されたデータブロックごとに、
読出された先を記録する記録工程と、前記書き戻し工程
により主記憶にデータブロックが書き戻された場合、当
該データブロックについて前記記録工程により記録され
た読出し先のキャッシュ手段に格納されたデータブロッ
クの複製を無効化する工程を更に備えることを特徴とす
る請求項9に記載の情報処理方法。 - 【請求項12】 複数台接続された、メモリ媒体から所
定のプログラムを読み込んで制御する複数のコンピュー
タ制御装置であって、 前記記憶手段に記憶された、所望のデータブロックをキ
ャッシュ手段に読み込む読込み工程のモジュールと、 前記読込み工程によりキャッシュ手段に読み込まれたデ
ータブロックを更新するキャッシュ更新工程のモジュー
ルと、 前記キャッシュ更新工程により更新されたデータブロッ
ク数を計数する計数工程のモジュールと、 前記計数工程により計数されたデータブロック数と所定
値とを比較して、その比較結果に基づいて前記更新され
たデータブロックを、前記記憶手段に書き戻す書き戻し
工程のモジュールと、 キャッシュ手段の有する、更新されたデータブロックを
一斉に記憶手段に書き戻す一斉書き戻し工程のモジュー
ルとを備えることを特徴とするコンピュータ制御装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7213373A JPH0962577A (ja) | 1995-08-22 | 1995-08-22 | 情報処理システム及び情報処理方法 |
| US08/699,105 US5860110A (en) | 1995-08-22 | 1996-08-16 | Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7213373A JPH0962577A (ja) | 1995-08-22 | 1995-08-22 | 情報処理システム及び情報処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0962577A true JPH0962577A (ja) | 1997-03-07 |
Family
ID=16638121
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7213373A Withdrawn JPH0962577A (ja) | 1995-08-22 | 1995-08-22 | 情報処理システム及び情報処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0962577A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010140362A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
| JP2021505994A (ja) * | 2017-12-05 | 2021-02-18 | エイアールエム リミテッド | 書込み動作を処理するための装置及び方法 |
-
1995
- 1995-08-22 JP JP7213373A patent/JPH0962577A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010140362A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
| JP2021505994A (ja) * | 2017-12-05 | 2021-02-18 | エイアールエム リミテッド | 書込み動作を処理するための装置及び方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5434993A (en) | Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories | |
| JP2540517B2 (ja) | 階層キヤツシユメモリ装置および方法 | |
| US5822763A (en) | Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors | |
| JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
| JP5714733B2 (ja) | キャッシュ競合の解決 | |
| US7003635B2 (en) | Generalized active inheritance consistency mechanism having linked writes | |
| JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
| US20020174305A1 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
| JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
| JP2008525901A (ja) | 共有メモリコンピュータシステムにおける、所有されている複数のキャッシュブロックのライトバックの早期予測 | |
| US6898676B2 (en) | Computer system supporting both dirty-shared and non-dirty-shared data processing entities | |
| US6922755B1 (en) | Directory tree multinode computer system | |
| JPH02141845A (ja) | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 | |
| US20010025335A1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
| JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
| GB2390710A (en) | Data maintenance of a distributed shared memory system | |
| US5611070A (en) | Methods and apparatus for performing a write/load cache protocol | |
| WO2025138722A1 (zh) | 访存失效队列处理方法、装置及电子设备 | |
| US20040068616A1 (en) | System and method enabling efficient cache line reuse in a computer system | |
| US7143245B2 (en) | System and method for read migratory optimization in a cache coherency protocol | |
| US7000080B2 (en) | Channel-based late race resolution mechanism for a computer system | |
| US20040068619A1 (en) | Linked-list early race resolution mechanism | |
| WO1997004392A1 (en) | Shared cache memory device | |
| US6895476B2 (en) | Retry-based late race resolution mechanism for a computer system | |
| JPH0962577A (ja) | 情報処理システム及び情報処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20021105 |