JPH06274461A - 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム - Google Patents

範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム

Info

Publication number
JPH06274461A
JPH06274461A JP5058332A JP5833293A JPH06274461A JP H06274461 A JPH06274461 A JP H06274461A JP 5058332 A JP5058332 A JP 5058332A JP 5833293 A JP5833293 A JP 5833293A JP H06274461 A JPH06274461 A JP H06274461A
Authority
JP
Japan
Prior art keywords
cache
memory
processor
range
access
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.)
Granted
Application number
JP5058332A
Other languages
English (en)
Other versions
JP2819982B2 (ja
Inventor
Michio Morioka
道雄 森岡
Kenichi Kurosawa
憲一 黒沢
Tetsuaki Nakamigawa
哲明 中三川
Suketaka Ishikawa
佐孝 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5058332A priority Critical patent/JP2819982B2/ja
Publication of JPH06274461A publication Critical patent/JPH06274461A/ja
Priority to US08/824,411 priority patent/US6631447B1/en
Application granted granted Critical
Publication of JP2819982B2 publication Critical patent/JP2819982B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】大規模なマルチプロセッサシステムにおいて、
高速でかつプロセッサ間の通信量を低減可能なキャッシ
ュ一致保証を行い得るシステムの提供にある。 【構成】プロセッサ200に内蔵されるアドレス変換バ
ッファ220にキャッシュ一致保証の範囲を指定できる
属性情報223を保持し、プロセッサーメモリインター
フェース装置300内に、キャッシュ一致保証属性情報
223に応じて、クラスタ100内でのみキャッシュ一
致保証すれば良いのか、システム内の全キャッシュメモ
リ240を対象にキャッシュ一致保証すべきかを判定す
るキャッシュ一致保証制御機構310を設けた。 【効果】データの特徴に合わせて、キャッシュ一致保証
すべき範囲を限定することができ、キャッシュ一致保証
制御の遅延を大幅に改善できる。また、メモリ読みだし
/書き込みごとにシステム内の全てのプロセッサにブロ
ードキャストする必要がなく、プロセッサ間の通信量を
大幅に低減することが可能になる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機システムにおけ
るマルチプロセッサの高性能化に係り、特に分散したキ
ャッシュメモリの一致保証制御に係わるものである。
【0002】
【従来の技術】近年、数十台から数千台のプロセッサを
効率良く動作させるスケーラブルな共有メモリマルチプ
ロセッサの研究が盛んである。これらのシステムでは、
Non-uniform Memory Access Architecture (NUMA)
と呼ばれる分散メモリ型システム構成を採用するものが
多い。すなわち、1つの共有メモリを数千台のプロセッ
サで共有すると、共有メモリのアクセスがボトルネック
となって十分な性能が得られない。NUMA構成とは、
これをさけるために、共有メモリを分散させるシステム
構成である。
【0003】一方、プロセッサの高周波化に伴って、主
メモリアクセスのレイテンシがシステムの性能を決定す
る重要な要因となってきている。レイテンシを改善する
には主メモリをプロセッサの近くに実装することが望ま
しい。この点でも、各プロセッサごとにローカルメモリ
を持たせた分散メモリ型システム構成(NUMA)が適し
ている。本構成によれば、プロセッサの動作周波数向上
に合わせて、ローカルメモリの動作周波数を向上でき、
レイテンシを大幅に改善できる可能性がある。これら、
分散メモリシステムの従来例としては、以下がある。
【0004】(1)Stanford大学のDASHシステム Daniel Lenoski, et. al.,“The DASH Prototype: Impl
ementation andPerformance”,Proc. 19th Int. Symp.
on Computer Architecture,1992. (2)SCI(Scalable Coherent Interface) David B. Gustavson, “The Scalable Coherent Interf
ace and RelatedStandards Projects”, IEEE MICRO, p
p.10−22, 1992. (3)IBM RP3(Research Parallel Processor) The IBM Research Parallel Processor Prototype(RP
3):Introductionand Architecture”, Proc. of the 1
985 Int. Conf. on ParallelProcessing, pp.764−771,
1985. 分散メモリ型システムにおける重要な課題として、数千
台のプロセッサの中に分散されているキャッシュメモリ
の一致保証制御がある。これは、各プロセッサのキャッ
シュメモリに登録されている内容を保証するための機構
である。
【0005】従来、数台程度のマルチプロセッサでは、
バススヌーピング方式と呼ばれるキャッシュ一致保証方
式を採用している。これは、各プロセッサが共有バスに
接続され、共有バス上のトランザクションを監視するこ
とによってキャッシュ一致保証を実現する方式である。
即ち、あるデータを読み出したいプロセッサは、そのア
ドレスを共有バスにブロードキャストする。他のプロセ
ッサは共有バス上のトランザクションを監視し、自分の
キャッシュメモリに最新データがある場合は、該データ
を要求プロセッサに転送する。
【0006】しかし、このバススヌーピング方式をその
まま数千台の共有メモリマルチプロセッサに適用する
と、以下の問題が発生する。1つは、数千台のプロセッ
サにブロードキャストし、全てのプロセッサからキャッ
シュ一致保証の報告を受けとるために時間が掛かってし
まうことである。このため、分散メモリ構成によってロ
ーカルメモリへのレイテンシが向上しても、キャッシュ
一致保証の遅延がネックとなって、データを即座に使う
ことができないといった問題が発生する。また2つ目の
問題点は、共有バスの負荷が大きくなってしまうことで
ある。すなわち、各プロセッサがメモリを読み書きする
たびに全てのプロセッサにブロードキャストが行われ
る。このためシステム全体で見ると、共有バス上に非常
に多くのトランザクションが発生することになる。さら
には、各プロセッサにある共有バス監視機構の一致保証
制御の頻度も多くなり、これがボトルネックとなって、
共有バスの性能を十分に引き出すことができないといっ
た問題も発生する。
【0007】これらの問題を解決するキャッシュ一致方
式としては、ディレクトリ方式とソフトウエア制御方式
の2つが知られている。ディレクトリ方式とは、分散さ
れた各メモリごとに該メモリのコピーがどのキャッシュ
に存在するかを示すディレクトリを持つ方式である。こ
れによって、全てのプロセッサに対するブロードキャス
トやバス監視の機構は不要となる。
【0008】ディレクトリ方式のなかにも、マップ方式
と分散リンク方式の2つがある。
【0009】前述のDASHシステムはマップ方式を採
用している。マップ方式とは、共有メモリの管理データ
単位ごとに、該データがどのキャッシュメモリに存在す
るかを示すプレゼンスビットを設ける方式である。従っ
てプレゼンスビットはシステム内に存在するキャッシュ
メモリと同じ数のビット数が必要である。本方式の変形
されたものとして、限定マップ方式や、グループマップ
方式も知られている。限定マップ方式とは、共有メモリ
上のデータのコピーがキャッシュメモリに存在する数を
限定することによって、プレゼンスビットのビット数を
削減する方式である。また、グループマップ方式とは、
いくつかのプロセッサを一つのグループと定義し、グル
ープを対象にしてプレゼンスビットを設ける方式であ
る。これによってプレゼンスビットのビット数を削減す
ることが可能になる。各グループ内では、バススヌーピ
ング方式で一致保証を実現するなどが可能である。前述
のDASHシステムは、実際にはグループマップ方式を
採用している。
【0010】ディレクトリ方式のもう1つの方式である
分散リンク方式は、前述のSCIシステムが採用してい
る方式である。分散リンク方式とは、共有メモリ、及び
キャッシュメモリの各データにリンク情報をもたせ、こ
のリンク情報を用いてコピーされたデータをすべて繋い
でリンクドリストを作成する方式である。例えば、ある
プロセッサが、共有メモリ上のあるデータのコピーをキ
ャッシュ上から消去するといった要求を出すと、キャッ
シュ一致保証制御は、該当する共有メモリデータのリン
ク情報をたどって最初のコピーを見つけて消去する。最
初のコピーがリンク情報を持っていれば、更にそのリン
ク情報をたどって次のコピーを見つけ消去する。本方式
によれば、マップ方式に比べディレクトリ情報を削減す
ることが可能になる。
【0011】ディレクトリ方式とは異なる、もう1つの
重要なキャッシュ一致保証方式にソフトウエア制御方式
がある。前述のIBM RP3が本方式を採用してい
る。ソフトウエア制御方式とは、ページ単位(例えば4
Kバイト)にキャッシング可能/不可能の属性を指定で
きる機構と、ユーザープログラムからキャッシュメモリ
のエントリを無効化できる機構を有する方式である。例
えばタスクに固有のローカルデータはキャッシング可能
属性とし、タスク間で共有されるデータはキャッシング
不可属性に指定する。そして、タスクが他のプロセッサ
に移動するときは、現在のプロセッサのキャッシュメモ
リにあるローカルデータは全て無効化する。これによ
り、ローカルデータは他のキャッシュメモリに存在しな
いことが保証できるので、キャッシュ一致保証のための
機構は不要となる。また共有データはキャッシュ上に登
録されないので、キャッシュ一致保証そのものが必要な
い。また、他の例としては、タスク間で共有されるデー
タのなかでも、読みだし専用の共有データはキャッシン
グ可能属性とする方式も考えられる。また、タスク間で
共有されるデータを全てキャッシング可能属性とする方
式も可能である。この場合は、フラグやセマフォアを用
いて共有データにアクセスできるタスクを1つに限定す
る。共有データを変更したタスクは、フラグやセマフォ
アを解放する前に、キャッシュ無効化機能によって、変
更した内容を主メモリに反映する。以上に示した方式に
よれば、バススヌープ機構やディレクトリ機構といった
ハードウエアによるキャッシュ一致保証機構無しに、ス
ケーラブルな共有メモリマルチプロセッサを実現するこ
とが可能となる。
【0012】
【発明が解決しようとする課題】
1.ディレクトリ方式(マップ方式)における問題点 ディレクトリ方式の1つであるマップ方式の問題点は、
ディレクトリのサイズが大きくなり、ディレクトリを読
みだすのに時間がかかることである。例えば、32台の
プロセッサが512Mバイトの共有メモリを共有してい
る構成を考える。メモリの管理単位は32バイトを1ブ
ロックとすると、ディレクトリのサイズは、512Mバ
イト/32バイト×32ビット=64Mバイトとなる。
グループマップ方式で、4台を1グループにしたとして
もディレクトリのサイズは16Mバイトとなる。これを
DRAMで実装するとアクセス時間が遅くなってしま
い、SRAMで実装するとコストが高くなってしまうと
いった問題がある。ディレクトリの読みだし時間が大き
くなると、キャッシュ一致保証の遅延も大きくなり、メ
モリのレイテンシは改善されない。
【0013】2.ディレクトリ方式(分散リンク方式)
における問題点 ディレクトリ方式の1つである分散リンク方式の問題点
は、ディレクトリサイズが大きくなることに加え、リン
ク情報をたどっていくことによってキャッシュ一致保証
を行うため、キャッシュ一致保証の遅延が大きくなって
しまうことである。ディレクトリ情報のサイズに関して
は、前述のシステム例では、512Mバイト/32バイ
ト×5ビット=10Mバイトとなる。マップ方式に比較
すると小容量だが、やはりDRAMで実装する必要があ
り、アクセス時間が大きくなってしまう。また、リンク
情報のもう一つの問題点を例を用いて説明すると、ある
プロセッサが自キャッシュメモリ上のデータを更新する
ため、他のキャッシュ上のコピーを無効化する要求を発
行したとする。この時、キャッシュ一致保証機構は、ま
ず共有メモリ上の対応するデータのリンク情報を読みだ
し、その内容に従って他キャッシュメモリのエントリを
無効化する。この処理をリンクがつながっている限り繰
り返す必要がある。このため、全てのキャッシュ上のコ
ピーを無効化し終わるまでにかなり時間がかかるといっ
た問題がある。
【0014】3.ソフトウエア制御方式における問題点 ソフトウエア制御方式の問題点は、共有データをキャッ
シュメモリに登録しない方式では、共有データアクセス
に対するキャッシュの効果を期待できず、アクセスレイ
テンシが悪化し、また共有バスのトラッフィックを軽減
できないことである。また、ソフト保証によって、共有
データをキャッシュに登録できる方式では、プログラマ
がキャッシュ一致保証を意識する必要があり、プログラ
マへの負担が大き過ぎるといった問題もある。
【0015】本発明の目的は、大規模なマルチプロセッ
サシステムにおいて、高速でかつプロセッサ間の通信量
を低減可能なキャッシュ一致保証を行い得るシステムの
提供及びプロセッサの提供にある。
【0016】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、キャッシュメモリとアドレス変換バッ
ファを有する少なくとも2以上のプロセッサと、ローカ
ル共有メモリと、この2以上のプロセッサとローカル共
有メモリとに接続され、プロセッサからのローカル共有
メモリへのアクセスを制御するメモリインタフェース装
置を有するクラスタをバスを介して複数接続し、このク
ラスタ内のプロセッサからのグローバル共有メモリへの
アクセスを制御するシステム制御装置を備えたマルチプ
ロセッサシステムにおいて、プロセッサからのアクセス
に対し、クラスタ内のキャッシュメモリのみを対象とし
て一致保証すべきか又はシステム内の全てのキャッシュ
メモリを対象として一致保証すべきかを識別する範囲属
性情報をアドレス変換バッファに保持する構成としたも
のである。
【0017】また、本発明では、プロセッサからのアク
セスに対し、システム内の全てのキャッシュメモリを対
象として一致保証すべきか又は限定された範囲のキャッ
シュメモリを対象として一致保証すべきかを識別する範
囲属性情報をアドレス変換バッファに保持するようにし
た上、更に、メモリインタフェース装置内に、アドレス
変換バッファに保持された範囲属性情報に基づいてキャ
ッシュ一致保証すべき範囲を判定するキャッシュ一致保
証範囲判定手段と、キャッシュ一致保証範囲判定手段に
よる判定結果に応じて指定された範囲内のプロセッサに
対してキャッシュ一致保証に使用される情報をブロード
キャストするブロードキャスト手段を設けたものであ
る。尚、キャッシュ一致保証範囲判定手段は、具体的に
は、自クラスタの番号を示す情報を保持する自クラスタ
番号レジスタと、この自クラスタ番号レジスタに保持さ
れた情報と、プロセッサからのアクセスアドレスである
仮想アドレスをアドレス変換バッファにて変換された実
アドレスとを比較する比較器を有し、この比較器による
比較結果と、アドレス変換バッファに保持された範囲属
性情報とに基づいてキャッシュ一致保証すべき範囲を決
定するものである。
【0018】また更に本発明では、主記憶装置に記憶さ
れた命令のうちその一部を保持する命令キャッシュメモ
リと、この主記憶装置に記憶されたデータのうちその一
部を保持するデータキャッシュメモリと、前記命令キャ
ッシュメモリ又は主記憶装置から実行すべき命令を読み
出す命令フェッチユニットと、この命令フェッチユニッ
トにより読み出された命令を解釈し、前記データキャッ
シュメモリ又は主記憶装置からデータを読み出し、解釈
された命令を実行する命令実行ユニットと、前記命令フ
ェッチユニット又は命令実行ユニットより発せられる仮
想アドレスを実アドレスに変換するアドレス変換バッフ
ァを有するプロセッサにおいて、複数のプロセッサが接
続された場合に、これら複数のプロセッサに存在する複
数のキャッシュメモリのうちキャッシュ一致保証すべき
範囲を指定する範囲属性情報をアドレス変換バッファに
保持する構成としたものである。
【0019】
【作用】プロセッサがメモリアクセス要求を発行する
と、アドレス変換バッファによって、仮想アドレスが実
アドレスに変換される。この時、アドレス変換バッファ
に保持されたキャッシュ一致保証すべき範囲を識別する
範囲属性情報によって、メモリアクセスのキャッシュ一
致保証すべき範囲が決定される。
【0020】更にまた、メモリインタフェース装置で
は、キャッシュ一致保証範囲判定手段により、アドレス
変換バッファに保持されたキャッシュ一致保証すべき範
囲を識別する範囲属性情報とアドレス変換バッファによ
り変換された実アドレス(メモリアドレス)を用いて、
キャッシュ一致保証すべき範囲が決定される。次に、範
囲限定ブロードキャスト手段により、キャッシュ一致致
保証範囲判定手段の結果により、決定された範囲のプロ
セッサに対してのみ、キャッシュ一致保証に使用される
情報がブロードキャストされる。
【0021】これにより、ローカルデータ,共有デー
タ,スタック領域といったデータの特徴に合わせて、キ
ャッシュ一致保証すべき範囲を限定することが可能とな
る。特に、大規模なマルチプロセッサシステムでは、キ
ャッシュ一致保証の範囲が限定されるので、システム内
の全てのキャッシュを対象にキャッシュ一致保証する必
要がなく、キャッシュ一致保証制御の遅延を大幅に改善
できる。また、限定された範囲のプロセッサに対しての
みキャッシュ一致保証に使用される情報がブロードキャ
ストされるので、メモリ読みだし/書き込みごとにシス
テム内の全てのプロセッサにブロードキャストする必要
もなく、プロセッサ間の通信量を大幅に低減することが
可能になる。
【0022】また、命令キャッシュメモリ,データキャ
ッシュメモリとこの命令キャッシュメモリ又は主記憶装
置から実行すべき命令を読み出す命令フェッチユニット
と、命令フェッチユニットにより読み出された命令を解
釈し、データキャッシュメモリ又は主記憶装置からデー
タを読み出し、命令を実行する命令実行ユニットと、命
令フェッチユニット又は命令実行ユニットより発せられ
る仮想アドレスを実アドレスに変換するアドレス変換バ
ッファを有するプロセッサにおいて、これら複数のプロ
セッサが接続された場合に、複数のプロセッサに存在す
る複数のキャッシュメモリのうちキャッシュ一致保証す
べき範囲を指定する範囲属性情報がアドレス変換バッフ
ァに保持されるので、データの特徴に合わせて、キャッ
シュ一致保証すべき範囲を限定することが可能となり、
複数のプロセッサを接続するようなマルチプロセッサシ
ステムに好適なプロセッサの提供が可能となる。
【0023】
【実施例】図1は、本発明が適用されるマルチプロセッ
サシステムの全体構成を示している。本構成では、複数
のプロセッサ200が、プロセッサローカルバス160
0を介してプロセッサーメモリインターフェース装置3
00に接続される。プロセッサーメモリインターフェー
ス装置300には、ローカル共有メモリバス1700を介し
てローカル共有メモリ400が接続される。また、キャ
ッシュ一致保証の高速化機構として、キャッシュメモリ
の複製タグ2000も接続される。これは、複数のプロ
セッサ200に内蔵されるキャッシュメモリに登録され
ているデータの有無を識別するためのものである。
【0024】これら、複数のプロセッサ200,プロセ
ッサーメモリインターフェース装置300,ローカル共
有メモリ400,複製タグ2000が集合体としてクラ
スタ100と呼ばれる。複数のクラスタ100はプロセ
ッサグローバルバス1800を介して、システム制御装
置500に接続される。システム制御装置500はグロ
ーバル共有メモリバス1900を介してグローバル共有
メモリ600に接続される。また、システム制御装置5
00は、入出力バス2100を介して入出力制御装置7
00,ネットワーク制御装置800,ファイル制御装置
900,グラフィックス制御装置1000に接続され
る。ファイル制御装置900は、固定ディスク装置13
00とローカル共有メモリ400あるいはグローバル共
有メモリ600との間のデータ転送を制御する。ネット
ワーク制御装置800は、FDDI,Ethernetといったネッ
トワークとローカル共有メモリ400あるいはグローバ
ル共有メモリ600との間のデータ転送を制御する。グ
ラフィックス制御装置1000は表示用フレームメモリ14
10とローカル共有メモリ400あるいはグローバル共
有メモリ600間のデータ転送を制御する。転送された
データは、グラフィックス制御装置1000により表示
装置1400に表示される。また、I/O制御装置70
0はフロッピーディスク装置1100やプリンタ装置1
200と、ローカル共有メモリ400あるいはグローバ
ル共有メモリ600間のデータ転送を制御する。各I/
O制御装置は、DMA(Direct Memory Access)機能を
持つ。DMA機能により各I/O装置はプロセッサ20
0に負荷をかけることなく、I/Oバス2100を介し
てローカル共有メモリ400あるいはグローバル共有メ
モリ600間でデータの転送が可能である。
【0025】プロセッサ200からのメモリ空間へのア
クセスあるいはI/O空間へのアクセス要求は、一旦プ
ロセッサーメモリインターフェース装置300に受け付
けられる。プロセッサーメモリインターフェース装置3
00では受け付けたアクセスのアドレスからアクセス先
を判定する。自クラスタ内のローカル共有メモリ400へ
のアクセスであれば、ローカル共有メモリ400への書
き込み/読みだしを実行する。プロセッサ200から、
他クラスタのローカル共有メモリ400へのアクセスで
あれば、プロセッサグローバルバス1800を介して他
クラスタのプロセッサーメモリインターフェース300
にアクセス要求を転送する。他クラスタのプロセッサー
メモリインターフェース300はこれを受けてローカル
共有メモリ400の書き込み/読みだしを実行する。一
方、プロセッサ200からグローバル共有メモリ60
0、あるいはI/O装置へのアクセス(以下プロセッサ
によるI/O直接アクセスと呼ぶ)であれば、プロセッ
サグローバルバス1800を介してシステム制御装置5
00にアクセス要求を転送する。
【0026】システム制御装置500は、プロセッサグ
ローバルバス1800から受け付けたアクセスのアドレ
スからアクセス先を判定する。グローバル共有メモリ6
00へのアクセスであれば、グローバル共有メモリ60
0への書き込み/読みだしを実行する。I/O空間への
アクセスであれば、I/Oバス2100上にアクセス要
求を発行する。各I/O装置700,800,900,
1000は、I/Oバス2100上のアクセス要求を受
付け、そのアドレスから自装置へのアクセスかどうかを
検証する。自装置へのアクセス要求であれば要求された
処理(レジスタの設定,I/O装置の制御等)を実施す
る。尚、図14に、本実施例における特徴部分であるプ
ロセッサ200,ローカル供給メモリ400及びグロー
バル共有メモリ600の周辺部分の概略構成を示す。
【0027】図2は、プロセッサ200からみたローカ
ル共有メモリ400,グローバル共有メモリ600のア
ドレス割当ての一例を示している。各クラスタ100の
ローカル共有メモリ400に対して順次アドレスを割当
て、最後にグローバル共有メモリ600が割り当てられ
る。あるプロセッサ200から全てのメモリに対してア
クセスが可能である。アドレス割当は、ここで示した割
当に限らず、他の割当も可能である。例えば、各クラス
タ100内のローカル共有メモリをバンクとみなし、あ
るまとまったデータ単位(例えば32バイト)でインタ
ーリーブ動作させるメモリ割当も可能である。これらの
実メモリ空間の割り当て情報は、各クラスタ100内の
プロセッサーメモリインターフェース300内のレジス
タに設定される。
【0028】図3は、プロセッサ200の内部構成を示
している。命令フェッチユニット211はプログラムの
実行に必要な命令をローカル共有メモリ400あるいは
グローバル共有メモリ600から読みだす。読みだされ
た命令は命令実行ユニット210に転送される。命令実
行ユニット210は、命令の意味を解釈し、命令実行に
必要なデータを共有メモリ400,600から読みだし
演算を実行する。命令用アドレス変換バッファ253,
254,255,256、及びデータ用アドレス変換バ
ッファ221,224,222,223は仮想記憶シス
テムを実現するために設けられている。それぞれ、命令
フェッチユニット211及び命令実行ユニット210
が、共有メモリ400,600を読みだす時に発行する
仮想アドレスを実際の共有メモリアドレス(以下、実ア
ドレス)に変換する。
【0029】命令用アドレス変換バッファは、仮想アド
レスページ番号部253と、仮想アドレスページ番号2
53の有効/無効を示す有効フラグ部254,仮想アド
レスページ番号253に対応した実アドレスページ番号
部255、及びキャッシュ一致保証の範囲を示すキャッ
シュ一致保証範囲属性情報256から構成される。本実
施例では、キャッシュ一致保証範囲属性情報256は、
クラスタ内だけでキャッシュ一致保証を実施すればよい
ローカルキャッシュコヒーレンシ(LCC)と、システ
ム内の全てのキャッシュメモリでキャッシュ一致保証を
実施すべきグローバルキャッシュコヒーレンシ(GC
C)と2つの属性を定義する。当然ながら、他のキャッ
シュ一致保証の範囲指定の方法も考えられる。例えば、
キャッシュ一致保証すべきグループ番号をキャッシュ一
致保証範囲属性情報256として持つことも可能であ
る。
【0030】命令フェッチユニット211が仮想アドレ
ス250を発行すると、その中の一部がインデックスア
ドレス252として命令用アドレス変換バッファ25
3,254,255,256の読みだしに用いられる。
仮想アドレスページ番号部253は、仮想アドレス25
0の上位アドレスである251と比較器257で比較さ
れる。アドレスが一致しかつ有効フラグ部254が有効
であればアドレス変換が成功し、命令キャッシュメモリ
270に通知される。アドレス変換の結果得られた実ア
ドレスページ番号部255は命令キャッシュメモリ27
0のアクセスアドレスとして利用される。
【0031】一方、キャッシュ一致保証範囲属性情報2
56は、命令キャッシュ制御部280に送られキャッシュ
一致保証の範囲限定に使用される。データ用アドレス変
換バッファ221,224,222,223も命令用ア
ドレス変換バッファと同等の機能を有する。よって、こ
こでは、詳細説明を省く。
【0032】命令キャッシュメモリ270は、共有メモ
リ400,600上にある命令の一部を複写して保持す
る高速メモリである。命令フェッチユニット211が要
求する命令が命令キャッシュメモリ270内に存在すれ
ば、共有メモリ400,600にアクセスすることなく即
座に命令を読みだすことができる。要求する命令がキャ
ッシュメモリに存在しない場合、命令キャッシュメモリ
270は、命令キャッシュ制御部280を介して共有メ
モリ400,600にデータを要求する。
【0033】命令キャッシュ制御部280は、命令キャ
ッシュメモリ270からの共有メモリアクセスを受け付
け、プロセッサローカルバス1600を経由してプロセ
ッサーメモリインターフェース300にアクセスを送
る。このとき、信号線1603によりキャッシュ一致保
証範囲属性情報256も同時に送る。プロセッサーメモ
リインターフェース300から、応答データが返送され
てくると、これを命令キャッシュメモリ270に登録す
る。このとき、応答データのキャッシュ登録属性情報1
602に従って、キャッシュ登録不可属性であれば、命
令フェッチユニット211に応答データを転送するが、
命令キャッシュメモリ270には登録しない。
【0034】データキャッシュメモリ240は、共有メ
モリ400,600のデータの一部を保持する高速メモ
リである。命令実行ユニット210が要求するデータが
キャッシュメモリ240内に存在すれば、共有メモリ4
00,600にアクセスすることなく即座にデータを提
供することができる。要求するデータがキャッシュメモ
リに存在しない場合、データキャッシュメモリ240
は、データキャッシュ制御部282を介して共有メモリ
400,600にデータを要求する。キャッシュメモリ
240と共有メモリ400,600との間のデータ転送
は、一般に32バイトから128バイト程度のブロック
を転送単位とすることによりキャッシュメモリのヒット
率の向上を計っている。
【0035】本実施例におけるデータキャッシュメモリ
240では、ストアイン方式により命令実行ユニット2
10からの主メモリ書き込み処理を高速化している。ス
トアイン方式では、書き込み対象となるデータがデータ
キャッシュメモリ240上に存在しかつそのデータのコ
ピーが他のキャッシュメモリに存在しなければ、データ
キャッシュメモリにのみ書き込みを行い、共有メモリ4
00,600には書き込みを行わない。書き込みが行わ
れたデータキャッシュ内のブロックをダーティーブロッ
クと呼ぶ。ダーティブロックは、データキャッシュメモ
リ240が溢れたときに共有メモリ400,600に書
き戻される。命令実行ユニット210は、データキャッ
シュメモリ240内の任意のダーティーブロックを強制
的に共有メモリに書き戻す命令を実行することができ
る。データキャッシュメモリ240から掃き出されたダ
ーティーブロックは、データキャッシュ制御部282を
介してプロセッサローカルバス1600に転送される。
データキャッシュ制御部282は、命令キャッシュ制御部
280とほぼ同等な動作となるので詳細説明は省略す
る。
【0036】バスモニター及びキャッシュ一致保証制御
部281は、プロセッサ間でキャッシュ一致保証を行う
機構である。プロセッサローカルバス1600上にキャ
ッシュ一致保証の対象となるトランザクションが発行さ
れると、バスモニター及びキャッシュ一致保証制御部2
81は、このトランザクションを取り込みデータキャッ
シュメモリ240、及び命令キャッシュメモリ270を
検索し、該当するブロックが存在するかどうか、あるい
は該当ブロックがダーティブロックかどうかを判定す
る。そして必要であれば、該当するダーティブロックを
アクセス要求元に転送する。
【0037】図4は、プロセッサーメモリインターフェ
ース装置300の内部構成を示している。プロセッサロ
ーカルバス受信部351はプロセッサ200からのアク
セス要求を受け付ける制御を行う。ローカル/リモート
メモリ制御部330は、プロセッサローカルバス受信部
351から受け取ったアクセスのアドレスから、アクセ
ス先が自クラスタ内ローカル共有メモリ400か、他ク
ラスタ内ローカル共有メモリか、グローバル共有メモリ
600かを判定する。ローカル共有メモリ400へのアク
セスであれば、バス2011を介してローカル共有メモ
リ起動制御部370にアクセス要求を転送する。また、
アクセス先が他クラスタ内ローカル共有メモリか、グロ
ーバル共有メモリ600であれば、バス2010を経由
してグローバルバス送信部380にアクセスを転送す
る。プロセッサローカルバス送信部352は、ローカル
共有メモリ受信部371からバス2015を介して送ら
れてくるローカル共有メモリ400の読みだしデータを
受取り、プロセッサローカルバス1600を介して要求
元プロセッサにデータを転送する。またグローバルバス
受信部382からバス2013を介して送られてくる他
クラスタ内ローカル共有メモリ、あるいはグローバル共
有メモリ600の読みだしデータを受取り、プロセッサ
ローカルバス1600を介して要求元プロセッサにデー
タを転送する。
【0038】ローカルバスキャッシュ一致保証監視装置
350は、クラスタ内のプロセッサ200に内蔵された
キャッシュメモリ240,270を対象に、キャッシュ
メモリ一致保証の結果を監視する機構である。プロセッ
サローカルバス1600上にキャッシュ一致保証の対象
となるトランザクションが発行されると、キャッシュメ
モリ一致保証の監視が開始される。プロセッサローカル
バス1600に接続された全てのプロセッサ200から
のキャッシュ一致保証の検証結果をまとめ、信号351
によりローカル/グローバルキャッシュコヒーレンシ制
御部310に報告する。
【0039】ローカル/グローバルキャッシュコヒーレ
ンシ制御部310は、4つの機能を有する。即ち、キャ
ッシュ一致保証範囲判定機能,範囲限定ブロードキャス
ト機能,データ供給元選択機能、及びキャッシュ登録制
御機能である。キャッシュ一致保証範囲判定機能は、プ
ロセッサローカルバス1600から受け取ったアクセス
のキャッシュ一致保証範囲属性情報1603及びアクセ
ス先情報から、自クラスタ内のキャッシュ一致保証のみ
でよいのか、全てのキャッシュメモリに対して一致保証
すべきかを判定する。最も単純な範囲判定アルゴリズム
としては、キャッシュ一致保証範囲属性がローカルキャ
ッシュコヒーレンシで、かつアクセス先が自クラスタ内
のローカル共有メモリ400である時に限り、自クラス
タ内のキャッシュ一致保証のみで完了とする。それ以外
は全てのキャッシュに対して一致保証を行うといった方
式が挙げられる。また、範囲限定ブロードキャスト機能
は、キャッシュ一致保証範囲判定の結果に従い、自クラ
スタ内のキャッシュ一致保証のみでよい場合は、クラス
タ外へのブロードキャストは行わない。また、全キャッ
シュメモリが一致保証の対象となる場合には、バス20
10,グローバルバス送信部380を経由して、プロセ
ッサグローバルバス1800にキャッシュ一致保証のた
めのトランザクションを送出する。データ供給元選択機
能は、自クラスタ内のキャッシュ一致保証のみの場合
は、ローカルバスキャッシュ一致保証制御部350の結
果を待って、キャッシュ間転送すべきか、ローカル共有
メモリ400の内容を読みだすべきかを決定する。一
方、全キャッシュメモリが一致保証の対象となる場合に
は、プロセッサグローバルバス1800に接続される全
てのクラスタからのキャッシュ一致保証報告、及びロー
カルバスキャッシュ一致保証制御部350からの報告を
待って、キャッシュ間転送すべきか、共有メモリ40
0,600の内容を読みだすべきかを決定する。
【0040】キャッシュ登録制御機能は、キャッシュ一
致保証範囲判定結果及びアクセス先に従って、応答デー
タをキャッシュメモリに登録して良いかどうかを決定
し、キャッシュ登録属性情報1602とともにデータを
プロセッサに転送する。最も単純な登録アルゴリズムと
しては、キャッシュ一致保証範囲属性がローカルキャッ
シュコヒーレンシで、かつアクセス先が自クラスタ内の
ローカル共有メモリ400である場合、およびキャッシュ
一致保証範囲属性がグローバルキャッシュコヒーレンシ
である場合にキャッシュメモリへの登録を許可する。そ
れ以外は、即ち、キャッシュ一致保証範囲属性がローカ
ルキャッシュコヒーレンシで、アクセス先がクラスタ外
である場合はキャッシュへの登録を禁止する。
【0041】グローバルバス受信部382は、他クラス
タからのローカル共有メモリアクセスを受付け、バス2
014を介してローカル共有メモリ起動制御部370に
アクセスを転送する。また、自クラスタから外部に向け
て発行されたメモリ読みだし要求のレスポンスデータを
受信し、バス2013を介してプロセッサローカルバス
送信部352に転送する。グローバルバス送信部380
は、ローカル/リモートメモリ制御部330において自
クラスタ外と判定されたアクセスを受信し、プロセッサ
グローバルバス1800に送出する。また、バス201
2を介してローカル共有メモリレスポンス制御部371
からのレスポンスデータを受取り、アクセス元のクラス
タに送信する。
【0042】グローバルバスキャッシュ一致保証監視装
置381は、自クラスタ内のプロセッサ200が、クラ
スタ外部に対してキャッシュ一致保証を必要とするアク
セスを発行したときに起動され、他クラスタからのキャ
ッシュ一致保証の結果を監視する。そして全クラスタか
らの結果をまとめてローカル/グローバルキャッシュコ
ヒーレンシ制御部310に報告する。グローバルバスキ
ャッシュ一致保証監視装置381のもう1つの機能は、
クラスタ間でキャッシュ一致保証を行う機構である。プ
ロセッサグローバルバス1800上にキャッシュ一致保
証の対象となるトランザクションが発行されると、グロ
ーバルバスキャッシュ一致保証監視装置381はこのト
ランザクションを取り込む。そしてバス2022を介し
てこのトランザクションを複製タグ制御部360に送
る。複製タグ制御部360は、データキャッシュ用複製
タグメモリ2002、及び命令キャッシュ用複製タグメ
モリ2001を検索し、該当するブロックがクラスタ内
に存在するかどうか、あるいは該当ブロックがダーティ
ブロックかどうかを判定する。グローバルバスキャッシ
ュ一致保証監視装置381は、複製タグ制御部360か
らの判定結果を受けて、プロセッサグローバルバス18
00を経由して、アクセス元クラスタに判定結果を報告
する。ダーティブロックが存在する場合は、ローカル共
有バス送信部352を経由して該当ブロックを保持して
いるクラスタ内のプロセッサに対して、アクセス要求元
にデータを転送するよう要求する。
【0043】図5は、ローカル/グローバルキャッシュ
コヒーレンシ制御部310の更に詳細な内部構成を示し
ている。主な構成要素は、キャッシュ一致保証範囲判定
機能320,範囲限定ブロードキャスト機能321,デ
ータ供給元選択機能322、及びキャッシュ登録制御機
能323の4つである。キャッシュ一致保証範囲判定機
能320の内部には、自クラスタの番号を示すクラスタ
番号レジスタ311がある。プロセッサローカルバスか
ら受け取った実アドレス316から、ハッシュ論理31
2を経由して取り出された情報とクラスタ番号レジスタ
311を比較器313によって比較することにより、実
アドレス316が自クラスタ内のローカル共有メモリ4
00に対するものか、他クラスタあるいはグローバル共
有メモリに対するものかを判定する。ハッシュ論理の最
も単純な例としては、実アドレス316の上位アドレス
部の一部を切り出してクラスタ番号レジスタ311と比
較するといった論理がありうる。例えば、0番のクラス
タに256メガバイトのローカルメモリがある場合、実
アドレスで0x00000000番地から0x0FFFFFFF番地までは、
0番のクラスタ内のローカルメモリがアクセス対象であ
り、それ以上はクラスタ外部のメモリがアクセス対象と
なる。当然ながら、ハッシュ論理312には共有メモリ
のアドレス割当てによってさまざまな方式があり得る。
アクセス対象の判定結果は、プロセッサ200から受け
取ったアクセス対象のページのキャッシュ一致保証範囲
属性情報315を含めて、キャッシュ一致保証の範囲を
決定する。即ちアクセス対象が自クラスタ内でキャッシ
ュ一致保証範囲属性情報がローカルキャッシュコヒーレ
ンシ(LCC)の場合は、キャッシュ一致保証の範囲は
自クラスタ内のみ。また、アクセス対象がクラスタ外で
キャッシュ一致保証範囲属性情報がローカルキャッシュ
コヒーレンシ(LCC)の場合あるいはキャッシュ一致
保証範囲属性情報がグローバルキャッシュコヒーレンシ
(GCC)の場合には、キャッシュ一致保証の範囲は外
部のクラスタも含むことになる。
【0044】本実施例では、図6に示す5つのタイプの
メモリアクセスが発生し得る。この中で、自クラスタ内
のキャッシュ一致保証のみでよい場合とは、アクセス対
象が自クラスタ内のローカル共有メモリで、且つページ
のキャッシュ一致保証属性がローカルキャッシュ一致保
証(LCC)であるものに限られる。他のタイプのメモ
リアクセスは、システム内の全てのキャッシュメモリを
対象にしてキャッシュ一致保証を行う必要がある。ま
た、キャッシュメモリへの登録が不可となるメモリアク
セスは、アクセス対象が他クラスタ内のローカル共有メ
モリで、且つページのキャッシュ一致保証属性がローカ
ルキャッシュ一致保証属性(LCC)となっているもの
である。即ち、キャッシュ一致保証の範囲外からのアク
セスはキャッシュに登録することができない。
【0045】図7は、前述した5つのタイプのメモリア
クセスの例を示している。3000はタスク0の仮想ア
ドレス空間、3100はタスク1の仮想アドレス空間を
示している。また、3300はクラスタ0のローカル共
有メモリの実アドレス空間、3310はクラスタ1のロ
ーカル共有メモリの実アドレス空間、3200はグロー
バル共有メモリの実アドレス空間を示している。また、
プロセッサ3301,3302はクラスタ0内のプロセ
ッサを表し、プロセッサ3311,3312はクラスタ
1内のプロセッサを表している。これら、各タスクの仮
想アドレス空間から、実アドレス空間へのマッピングは
オペレーティングシステムのページ割り当て機構が管理
するアドレス変換マップに登録されている。今タスク0
がクラスタ0のプロセッサで実行され、タスク1がクラ
スタ1のプロセッサで実行されていると仮定する。タス
ク0のローカルキャッシュ一致保証属性のページ300
1は、アドレス変換によってクラスタ0のローカル共有
メモリ3303に割り当てられている。このページへの
アクセスは自クラスタ対象で、ローカルキャッシュ一致
保証属性のアクセスとなる。タスク0のローカルキャッ
シュ一致保証属性ページ3002は、アドレス変換によ
ってクラスタ1のローカル共有メモリ3313に割り当てら
れている。このページへのアクセスは他クラスタ対象
で、ローカルキャッシュ一致保証属性のアクセスとな
る。タスク1のグローバルキャッシュ一致保証属性ペー
ジ3101は、アドレス変換によってクラスタ0のロー
カル共有メモリ3304に割り当てられている。このペ
ージへのアクセスは他クラスタ対象で、グローバルキャ
ッシュ一致保証属性のアクセスとなる。タスク1のグロ
ーバルキャッシュ一致保証属性ページ3102は、アド
レス変換によってクラスタ1のローカル共有メモリ33
14に割り当てられている。このページへのアクセスは
自クラスタ対象で、グローバルキャッシュ一致保証属性
のアクセスとなる。タスク1のグローバルキャッシュ一
致保証属性ページ3103は、アドレス変換によってグ
ローバル共有メモリ3321に割り当てられている。こ
のページへのアクセスはグローバル共有メモリ対象で、
グローバルキャッシュ一致保証属性のアクセスとなる。
【0046】次に、図8〜図13を用いて、メモリアク
セス処理手順を示す。
【0047】(1)自クラスタ内のローカル共有メモリ
に対するブロックリード 図8は、自クラスタ内のローカル共有メモリに対するア
クセスの処理フローを示す。プロセッサ200が発行す
るブロックリード要求は、プロセッサローカルバス16
00を経由してプロセッサーメモリインターフェース装
置300に送信される。この時同時にクラスタ内の他の
プロセッサは、該ブロックリード要求を監視し、自キャ
ッシュ内のキャッシュ検索を行う。プロセッサーメモリ
インターフェース装置300は、受け取ったアクセスの
アドレスから自クラスタ内のローカル共有メモリへのア
クセスであることを識別する(901)。次に、プロセ
ッサ200のアドレス変換バッファのキャッシュ一致保
証属性223から受け取った情報をもとに、ローカルキ
ャッシュ一致保証属性のデータかどうかを判定する(9
02)。ローカルである場合は、クラスタ内キャッシュ
一致保証が終了するのを待つ(903)。次にクラスタ
内の他のキャッシュメモリ上にダーティブロックが存在
するかどうかを判定する(904)。存在する場合はク
ラスタ内でキャッシュ間転送を行い、ローカル共有メモ
リ400の読みだしはキャンセルする(905)。そして
応答データをアクセス元のキャッシュメモリに登録する
(906)。また、ダーティブロックが存在しない場合は、
ローカル共有メモリ400から読みだしたデータをアク
セス元に転送し(909)、キャッシュメモリに登録す
る(908)。
【0048】一方、ローカルキャッシュ一致保証属性の
判定902の結果、グローバル属性の場合には、プロセ
ッサメモリインターフェース装置300は、プロセッサ
グローバルバス1800にメモリアドレスをブロードキ
ャストする(909)。そして、全てのクラスタに対す
るグローバルキャッシュ一致保証が終了するまで待つ
(910)。他クラスタはブロードキャストされたアド
レスを受取り、複製タグ2000を検索することによっ
て、該当データのキャッシュ一致保証制御を行う。キャ
ッシュ一致保証の結果、他クラスタにダーティブロック
が存在するかどうかを判定する(911)。他クラスタ
にダーティブロックが存在しなければ、自クラスタ内の
ローカル共有メモリ400のデータを読みだしアクセス
元に転送し(914)、キャッシュに登録する(91
5)。他クラスタにダーティブロックが存在する場合、
該当クラスタのプロセッサーメモリインターフェース3
00がダーティブロックを持つプロセッサ200に対し
てキャッシュ間データ転送を要求する。ダーティブロッ
クはクラスタ間を渡ってアクセス元のクラスタに転送さ
れる。この時、自クラスタ内のローカル共有メモリ40
0の読みだしはキャンセルする(912)。そして、応
答データは要求元プロセッサのキャッシュメモリに登録
される(913)。
【0049】(2)他クラスタ内のローカル共有メモリ
に対するブロックリード 図9は、他クラスタ内のローカル共有メモリに対するア
クセスの処理フローを示す。プロセッサ200が発行す
るブロックリード要求は、プロセッサローカルバス16
00を経由してプロセッサーメモリインターフェース装
置300に送信される。この時同時にクラスタ内の他の
プロセッサは、該ブロックリード要求を監視し、自キャ
ッシュ内のキャッシュ検索を行う。プロセッサーメモリ
インターフェース装置300は、受け取ったアクセスの
アドレスから他クラスタ内のローカル共有メモリへのア
クセスであることを識別する(1001)。次に、プロ
セッサ200のアドレス変換バッファのキャッシュ一致
保証属性223から受け取った情報をもとに、ローカル
キャッシュ一致保証属性のデータかどうかを判定する
(1002)。ローカルである場合は、プロセッサグロ
ーバルバス1800を経由して、ブロックリード要求を
目標のクラスタに転送する(1003)。目標クラスタ
はブロックリード要求を受け付けると、ローカル共有メ
モリを読みだすとともに、複製タグ2000を検索する
ことによって、該当データのクラスタ内キャッシュ一致
保証制御を行う(1004)。次に対象クラスタ内のキ
ャッシュメモリ上にダーティブロックが存在するかどう
かを判定する(1005)。キャッシュ一致保証の結
果、ダーティブロックが存在しなければ、ローカル共有
メモリから読みだしたデータをアクセス元のクラスタに
転送し(1006)、キャッシュメモリに登録せず処理
を終える(1007)。目標クラスタ内にダーティブロ
ックが存在する場合は、目標クラスタのプロセッサーメ
モリインターフェース300がダーティブロックを持つ
プロセッサ200に対してキャッシュ間データ転送を要
求する。ダーティブロックはクラスタ間を渡ってアクセ
ス元のクラスタに転送される。この時、目標クラスタ内
のローカル共有メモリ400の読みだしはキャンセルす
る(1008)。そして、応答データをキャッシュメモ
リに登録せず処理を終える(1009)。
【0050】一方、アクセスしたページがグローバルキ
ャッシュ一致保証属性の場合には、プロセッサグローバ
ルバス1800を介して、ブロックリード要求を目標の
クラスタに転送するとともに、メモリアドレスを全クラ
スタにブロードキャストする(1010)。そして、全
てのクラスタに対するグローバルキャッシュ一致保証が
終了するまで待つ(1011)。他クラスタはブロード
キャストされたアドレスを受取り、複製タグ2000を
検索することによって、該当データのキャッシュ一致保
証制御を行う。キャッシュ一致保証の結果、他クラスタ
にダーティブロックが存在するかどうか判定する(10
12)。他クラスタにダーティブロックが存在しなけれ
ば、目標クラスタ内のローカル共有メモリ400のデー
タを読みだしアクセス元クラスタに転送し(1013)、
キャッシュに登録する(1014)。他クラスタにダーテ
ィブロックが存在する場合、該当クラスタのプロセッサ
ーメモリインターフェース300がダーティブロックを
持つプロセッサ200に対してキャッシュ間データ転送
を要求する。ダーティブロックはクラスタ間を渡ってア
クセス元クラスタに転送される。この時、目標クラスタ
内のローカル共有メモリ400の読みだしはキャンセル
する(1015)。そして応答データはアクセス元のキ
ャッシュメモリに登録される(1016)。
【0051】 (3)グローバル共有メモリに対するブロックリード 図10は、グローバル共有メモリ600に対するアクセ
スの処理フローを示す。プロセッサ200が発行するブ
ロックリード要求は、プロセッサローカルバス1600
を経由してプロセッサーメモリインターフェース装置3
00に送信される。この時同時にクラスタ内の他のプロ
セッサは、該ブロックリード要求を監視し、自キャッシ
ュ内のキャッシュ検索を行う。プロセッサーメモリイン
ターフェース装置300は、受け取ったアクセスのアド
レスからグローバル共有メモリへのアクセスであること
を識別する(1101)。次にプロセッサグローバルバ
ス1800を経由して、ブロックリード要求をシステム
制御装置500に転送するとともに、メモリアドレスを
全クラスタにブロードキャストする(1102)。そし
て、全てのクラスタに対するグローバルキャッシュ一致
保証が終了するまで待つ(1103)。他クラスタはブ
ロードキャストされたアドレスを受取り、複製タグ20
00を検索することによって、該当データのキャッシュ
一致保証制御を行う。キャッシュ一致保証により、他ク
ラスタにダーティブロックが存在するかどうか判定する
(1108)、他クラスタにダーティブロックが存在し
なければ、システム制御装置500はグローバル共有メ
モリ600のデータを読みだしアクセス元クラスタに転
送し(1104)、キャッシュに登録する(110
5)。他クラスタにダーティブロックが存在する場合、
該当クラスタのプロセッサーメモリインターフェース3
00がダーティブロックを持つプロセッサ200に対し
てキャッシュ間データ転送を要求する。ダーティブロッ
クはクラスタ間を渡ってアクセス元のクラスタに転送さ
れる。この時、グローバル共有メモリ600の読みだし
はキャンセルする(1106)。そして応答データは、
アクセス元プロセッサのキャッシュメモリに登録される
(1107)。
【0052】(4)自クラスタ内のローカル共有メモリ
に対するキャッシュフラッシュ 図11は、自クラスタ内のローカル共有メモリに対する
キャッシュフラッシュの処理フローを示す。プロセッサ
200が発行するキャッシュフラッシュ要求は、プロセ
ッサローカルバス1600を経由してプロセッサーメモ
リインターフェース装置300に送信される。この時同
時にクラスタ内の他のプロセッサは、該キャッシュフラ
ッシュ要求を監視し、自キャッシュ内のキャッシュ検索
を行う。また、アクセス元プロセッサはメモリ同期化命
令を実行し、メモリ同期化終了報告を待つ。プロセッサ
ーメモリインターフェース装置300は、受け取ったア
クセスのアドレスから自クラスタ内のローカル共有メモ
リへのアクセスであることを識別する(1201)。次
に、プロセッサ200のアドレス変換バッファのキャッ
シュ一致保証属性223から受け取った情報をもとに、
ローカルキャッシュ一致保証属性のデータかどうかを判
定する(1202)。ローカルである場合は、クラスタ
内キャッシュ一致保証が終了するのを待つ(120
3)。キャッシュ一致保証の結果、クラスタ内の他のキ
ャッシュメモリ上にダーティブロックが存在するかどう
かを判定する(1204)。クラスタ内の他のキャッシ
ュメモリ上にダーティブロックが存在する場合はクラス
タ内でダーティブロックの書き戻しを行い(1205)、
アクセス元にメモリが同期したことを報告する(120
6)。また、ダーティブロックが存在しない場合は、即
座にアクセス元にメモリが同期したことを報告し処理を
終了する(1207)。
【0053】一方、ローカルキャッシュ一致保証属性の
判定の結果、グローバル属性の場合には、プロセッサグ
ローバルバス1800にメモリアドレスをブロードキャ
ストする(1208)。そして、全てのクラスタに対す
るグローバルキャッシュ一致保証が終了するまで待つ
(1209)。他クラスタはブロードキャストされたア
ドレスを受取り、複製タグ2000を検索することによ
って、該当データのキャッシュ一致保証制御を行う。キ
ャッシュ一致保証の結果、他クラスタにダーティブロッ
クが存在するかどうか判定する(1210)。他クラス
タにダーティブロックが存在しなければ、即座にアクセ
ス元にメモリが同期したことを報告する(1211)。
他クラスタにダーティブロックが存在する場合、該当ク
ラスタのプロセッサーメモリインターフェース300が
ダーティブロックを持つプロセッサ200に対してダー
ティブロックの書き戻しを要求する。ダーティブロック
はクラスタ間を渡ってアクセス元のローカル共有メモリ
に書き戻される(1212)。そして、アクセス元にメモ
リが同期したことを報告する(1213)。
【0054】(5)他クラスタ内のローカル共有メモリ
に対するキャッシュフラッシュ 図12は、他クラスタ内のローカル共有メモリに対する
キャッシュフラッシュの処理フローを示す。プロセッサ
200が発行するキャッシュフラッシュ要求は、プロセ
ッサローカルバス1600を経由してプロセッサーメモ
リインターフェース装置300に送信される。この時同
時にクラスタ内の他のプロセッサは、該ブロックリード
要求を監視し、自キャッシュ内のキャッシュ検索を行
う。プロセッサーメモリインターフェース装置300
は、受け取ったアクセスのアドレスから他クラスタ内の
ローカル共有メモリへのアクセスであることを識別する
(1301)。次に、プロセッサ200のアドレス変換バッフ
ァのキャッシュ一致保証属性223から受け取った情報
をもとに、ローカルキャッシュ一致保証属性のデータか
どうかを判定する(1302)。ローカルである場合
は、プロセッサグローバルバス1800を経由して、キ
ャッシュフラッシュ要求を目標のクラスタに転送する
(1303)。目標クラスタはキャッシュフラッシュ要
求を受け付けると、複製タグ2000を検索することに
よって、該当データのクラスタ内キャッシュ一致保証制
御を行う(1304)。キャッシュ一致保証の結果、対
象クラスタ内にダーティブロックが存在するかどうか判
定する(1305)。ダーティブロックが存在しなけれ
ば、アクセス元のプロセッサにメモリ同期化が終了した
ことを報告して処理を終える(1306)。目標クラス
タ内にダーティブロックが存在する場合は、目標クラス
タのプロセッサーメモリインターフェース300がダー
ティブロックを持つプロセッサ200に対してダーティ
ブロックの書き戻しを要求する。ダーティブロックは目
標クラスタ内でローカル共有メモリへ書き戻され(13
07)、アクセス元にメモリ同期化が終了したことを報
告する(1308)。
【0055】一方、アクセスしたページがグローバルキ
ャッシュ一致保証属性の場合には、プロセッサグローバ
ルバス1800を介して、キャッシュフラッシュ要求を
全クラスタにブロードキャストする(1309)。そし
て、全てのクラスタに対するグローバルキャッシュ一致
保証が終了するまで待つ(1310)。他クラスタはブ
ロードキャストされたアドレスを受取り、複製タグ20
00を検索することによって、該当データのキャッシュ
一致保証制御を行う。キャッシュ一致保証の結果、他ク
ラスタにダーティブロックが存在するかどうか判定する
(1311)。他クラスタにダーティブロックが存在し
なければ、即座にアクセス元のプロセッサにメモリ同期
化が終了したことを報告する(1312)。他クラスタ
にダーティブロックが存在する場合、該当クラスタのプ
ロセッサーメモリインターフェース300がダーティブ
ロックを持つプロセッサ200に対してダーティブロッ
クの書き戻しを要求する。ダーティブロックはクラスタ
間を渡って、目標クラスタに転送され、ローカル共有メ
モリへ書き戻される(1313)。そして、アクセス元
にメモリ同期化が終了したことを報告する(131
4)。
【0056】(6)グローバル共有メモリに対するキャ
ッシュフラッシュ 図13は、グローバル共有メモリ600に対するキャッ
シュフラッシュの処理フローを示す。プロセッサ200
が発行するキャッシュフラッシュ要求は、プロセッサロ
ーカルバス1600を経由してプロセッサーメモリイン
ターフェース装置300に送信される。この時同時にク
ラスタ内の他のプロセッサは、該ブロックリード要求を
監視し、自キャッシュ内のキャッシュ検索を行う。プロ
セッサーメモリインターフェース装置300は、受け取
ったアクセスのアドレスからグローバル共有メモリへの
アクセスであることを識別する(1401)。次にプロ
セッサグローバルバス1800を経由して、キャッシュ
フラッシュ要求を全クラスタにブロードキャストする
(1402)。そして、全てのクラスタに対するグロー
バルキャッシュ一致保証が終了するまで待つ(140
3)。他クラスタはブロードキャストされたアドレスを
受取り、複製タグ2000を検索することによって、該
当データのキャッシュ一致保証制御を行う。キャッシュ
一致保証の結果、他クラスタにダーティブロックが存在
するかどうか判定する(1404)。他クラスタにダー
ティブロックが存在しなければ、即座にアクセス元のプ
ロセッサにメモリ同期化が終了したことを報告する(1
405)。他クラスタにダーティブロックが存在する場
合、該当クラスタのプロセッサーメモリインターフェー
ス300がダーティブロックを持つプロセッサ200に
対してダーティブロックの書き戻しを要求する。ダーテ
ィブロックはシステム制御装置500に転送され、グロ
ーバル共有メモリ600へ書き戻される(1406)。
そして、アクセス元にメモリ同期化が終了したことを報
告する(1407)。
【0057】
【発明の効果】本発明によれば、ローカルデータ,共有
データ,スタック領域といったデータの特徴に合わせ
て、キャッシュ一致保証すべき範囲を限定することがで
き、システム内の全てのキャッシュを対象にキャッシュ
一致保証する必要がなく、キャッシュ一致保証制御の遅
延を大幅に改善できる。
【0058】また、キャッシュ一致保証すべき範囲が限
定されるので、メモリ読みだし/書き込みごとにシステ
ム内の全てのプロセッサにブロードキャストする必要が
なく、プロセッサ間の通信量を大幅に低減することが可
能になる。
【0059】また、キャッシュ一致保証すべき範囲を限
定する機構により、10−20Mバイトといった大きな
容量を必要とするディレクトリ方式にくらべ、少ない物
量で効率の良いキャッシュ一致保証が可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例であるマルチプロセッサシス
テムの全体構成図。
【図2】本発明の実施例におけるプロセッサからみえる
実メモリ空間のアドレス割付を示す図。
【図3】本発明の実施例におけるプロセッサの内部構成
図。
【図4】本発明の実施例におけるプロセッサーメモリイ
ンターフェース装置の内部構成図。
【図5】本発明の実施例におけるローカル/グローバル
キャッシュ一致保証制御部の内部構成図。
【図6】アクセスタイプの分類を示す説明図。
【図7】メモリ割当,タスク割当の一例を表す図。
【図8】自クラスタ内ローカル共有メモリへのブロック
リード処理のフロー図。
【図9】他クラスタ内ローカル共有メモリへのブロック
リード処理のフロー図。
【図10】グローバル共有メモリへのブロックリード処
理のフロー図。
【図11】自クラスタ内ローカル共有メモリへのキャッ
シュフラッシュ処理のフロー図。
【図12】他クラスタ内ローカル共有メモリへのキャッ
シュフラッシュ処理のフロー図。
【図13】グローバル共有メモリへのキャッシュフラッ
シュ処理のフロー図。
【図14】プロセッサ,ローカル共有メモリ及びグロー
バル共有メモリ周辺の概略構成を表す図。
【符号の説明】
100…クラスタ、200…プロセッサ、220…アド
レス変換バッファ、221…仮想アドレスページ番号、
222…実アドレスページ番号、223…キャッシュ一
致保証範囲属性情報、240…キャッシュメモリ、30
0…プロセッサーメモリインターフェース装置、400
…ローカル共有メモリ、500…システム制御装置、6
00…グローバル共有メモリ、1600…プロセッサロ
ーカルバス、1800…プロセッサグローバルバス、2
000…キャッシュメモリの複製タグ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 石川 佐孝 神奈川県海老名市下今泉810番地 株式会 社日立製作所オフィスシステム事業部内

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】キャッシュメモリ及びアドレス変換バッフ
    ァを有する少なくとも2以上のプロセッサと、ローカル
    共有メモリと、前記2以上のプロセッサとローカル共有
    メモリとに接続され前記プロセッサからのローカル共有
    メモリへのアクセスを制御するメモリインタフェース装
    置を有するクラスタをバスを介して複数接続し、前記ク
    ラスタ内のプロセッサからのグローバル共有メモリへの
    アクセスを制御するシステム制御装置を備えたマルチプ
    ロセッサシステムにおいて、前記プロセッサからのアク
    セスに対し、クラスタ内のキャッシュメモリのみを対象
    として一致保証すべきか、又はシステム内の全てのキャ
    ッシュメモリを対象として一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持するこ
    とを特徴とするマルチプロセッサシステム。
  2. 【請求項2】キャッシュメモリ及びアドレス変換バッフ
    ァを有する少なくとも2以上のプロセッサと、ローカル
    共有メモリと、前記2以上のプロセッサとローカル共有
    メモリとに接続され前記プロセッサからのローカル共有
    メモリへのアクセスを制御するメモリインタフェース装
    置を有するクラスタをバスを介して複数接続し、前記ク
    ラスタ内のプロセッサからのグローバル共有メモリへの
    アクセスを制御するシステム制御装置を備えたマルチプ
    ロセッサシステムにおいて、前記プロセッサからのアク
    セスに対し、システム内の全てのキャッシュメモリを対
    象として一致保証すべきか、又は限定された範囲のキャ
    ッシュメモリを対象として一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持するこ
    とを特徴とするマルチプロセッサシステム。
  3. 【請求項3】キャッシュメモリ及びアドレス変換バッフ
    ァを有する少なくとも2以上のプロセッサと、ローカル
    共有メモリと、前記2以上のプロセッサとローカル共有
    メモリとに接続され前記プロセッサからのローカル共有
    メモリへのアクセスを制御するメモリインタフェース装
    置を有するクラスタをバスを介して複数接続し、前記ク
    ラスタ内のプロセッサからのグローバル共有メモリへの
    アクセスを制御するシステム制御装置を備えたマルチプ
    ロセッサシステムにおいて、前記プロセッサからのアク
    セスに対し、システム内の全てのキャッシュメモリを対
    象として一致保証すべきか、又は限定された範囲のキャ
    ッシュメモリを対象として一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持し、前
    記メモリインタフェースは、前記アドレス変換バッファ
    に保持された範囲属性情報に基づいてキャッシュ一致保
    証すべき範囲を判定するキャッシュ一致保証範囲判定手
    段を有することを特徴とするマルチプロセッサシステ
    ム。
  4. 【請求項4】請求項1乃至3のうちのいずれかにおい
    て、前記アドレス変換バッファは複数のエントリを有
    し、各エントリ毎に前記範囲属性情報を保持することを
    特徴とするマルチプロセッサシステム。
  5. 【請求項5】請求項3において、前記キャッシュ一致保
    証範囲判定手段は、前記プロセッサからのアクセスアド
    レスである仮想アドレスが前記アドレス変換バッファに
    て変換された実アドレスと、当該実アドレスに対応する
    前記属性情報とに基づいてキャッシュ一致保証すべき範
    囲を判定することを特徴とするマルチプロセッサシステ
    ム。
  6. 【請求項6】請求項3又は5において、前記キャッシュ
    一致保証範囲判定手段は、自クラスタの番号を示す情報
    を保持する自クラスタ番号レジスタと、当該自クラスタ
    番号レジスタに保持された情報と前記プロセッサからの
    アクセスアドレスである仮想アドレスを前記アドレス変
    換バッファにて変換された実アドレスとを比較する比較
    器を有することを特徴とするマルチプロセッサシステ
    ム。
  7. 【請求項7】キャッシュメモリ及びアドレス変換バッフ
    ァを有する少なくとも2以上のプロセッサと、ローカル
    共有メモリと、前記2以上のプロセッサとローカル共有
    メモリとに接続され前記プロセッサからのローカル共有
    メモリへのアクセスを制御するメモリインタフェース装
    置を有するクラスタをバスを介して複数接続し、前記ク
    ラスタ内のプロセッサからのグローバル共有メモリへの
    アクセスを制御するシステム制御装置を備えたマルチプ
    ロセッサシステムにおいて、前記プロセッサからのアク
    セスに対し、システム内の全てのキャッシュメモリを対
    象として一致保証すべきか、又は限定された範囲のキャ
    ッシュメモリを対象として一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持し、前
    記メモリインタフェース装置は、前記アドレス変換バッ
    ファに保持された範囲属性情報に基づいてキャッシュ一
    致保証すべき範囲を判定するキャッシュ一致保証範囲判
    定手段と、前記キャッシュ一致保証範囲判定手段による
    判定結果に応じて指定された範囲内のプロセッサに対し
    てキャッシュ一致保証に使用される情報をブロードキャ
    ストするブロードキャスト手段を有することを特徴とす
    るマルチプロセッサシステム。
  8. 【請求項8】キャッシュメモリ及びアドレス変換バッフ
    ァを有する少なくとも2以上のプロセッサと、ローカル
    共有メモリと、前記2以上のプロセッサとローカル共有
    メモリとに接続され前記プロセッサからのローカル共有
    メモリへのアクセスを制御するメモリインタフェース装
    置を有するクラスタをバスを介して複数接続し、前記ク
    ラスタ内のプロセッサからのグローバル共有メモリへの
    アクセスを制御するシステム制御装置を備えたマルチプ
    ロセッサシステムにおいて、前記プロセッサからのアク
    セスに対し、システム内の全てのキャッシュメモリを対
    象として一致保証すべきか、又は限定された範囲のキャ
    ッシュメモリを対象として一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持し、前
    記メモリインタフェース装置は、前記アドレス変換バッ
    ファに保持された範囲属性情報に基づいてキャッシュ一
    致保証すべき範囲を判定するキャッシュ一致保証範囲判
    定手段と、前記キャッシュ一致保証範囲判定手段による
    判定結果に応じて指定された範囲内のプロセッサに対し
    てキャッシュ一致保証の終了を監視するキャッシュ一致
    保証監視手段と、キャッシュ一致保証終了後、自クラス
    タ内のキャッシュ間でデータ転送すべきか、前記ローカ
    ル共有メモリの読み出しをすべきか又は前記グローバル
    共有メモリの読み出しを実行すべきかを選択するデータ
    供給元選択手段を有することを特徴とするマルチプロセ
    ッサシステム。
  9. 【請求項9】請求項3,7又は8において、前記メモリ
    インタフェース装置は、前記キャッシュ一致保証範囲判
    定手段の結果に従って、指定された範囲内の前記プロセ
    ッサからのアクセスであれば、当該プロセッサのキャッ
    シュメモリにキャッシュ一致保証の結果である応答デー
    タを登録可能とし、指定された範囲外の前記プロセッサ
    からのアクセスであれば、当該プロセッサのキャッシュ
    メモリに登録不可とするキャッシュ登録制御手段を有す
    ることを特徴とするマルチプロセッサシステム。
  10. 【請求項10】キャッシュメモリおよびアドレス変換バ
    ッファを有する複数のプロセッサと、前記プロセッサの
    実行する命令及びデータを記憶する主記憶装置と、前記
    複数のプロセッサと前記主記憶装置に接続され前記プロ
    セッサからの主記憶装置へのアクセスを制御するメモリ
    インタフェース装置からなるマルチプロセッサシステム
    において、前記プロセッサからのアクセスに対し、シス
    テム内の全てのキャッシュメモリを対象にキャッシュ一
    致保証すべきか、又は限定された範囲のキャッシュメモ
    リを対象にしてキャッシュ一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持するこ
    とを特徴とするマルチプロセッサシステム。
  11. 【請求項11】キャッシュメモリおよびアドレス変換バ
    ッファを有する複数のプロセッサと、前記プロセッサの
    実行する命令及びデータを記憶する主記憶装置と、前記
    複数のプロセッサと前記主記憶装置に接続され前記プロ
    セッサからの主記憶装置へのアクセスを制御するメモリ
    インタフェース装置からなるマルチプロセッサシステム
    において、前記プロセッサからのアクセスに対し、シス
    テム内の全てのキャッシュメモリを対象にキャッシュ一
    致保証すべきか、又は限定された範囲のキャッシュメモ
    リを対象にしてキャッシュ一致保証すべきかを識別する
    範囲属性情報を前記アドレス変換バッファに保持し、前
    記メモリインタフェース装置は、前記アドレス変換バッ
    ファに保持された範囲属性情報に基づいてキャッシュ一
    致保証すべき範囲を判定するキャッシュ一致保証範囲判
    定手段を有することを特徴とするマルチプロセッサシス
    テム。
  12. 【請求項12】請求項11において、前記メモリインタ
    フェース装置は、前記キャッシュ一致保証範囲判定手段
    による判定結果に応じて指定された範囲内のプロセッサ
    に対してキャッシュ一致保証に使用される情報をブロー
    ドキャストするブロードキャスト手段を有することを特
    徴とするマルチプロセッサシステム。
  13. 【請求項13】請求項11または12において、前記メ
    モリインタフェース装置は、前記キャッシュ一致保証範
    囲判定手段による判定結果に応じて指定された範囲内の
    プロセッサに対してキャッシュ一致保証の終了を監視す
    るキャッシュ一致保証監視手段と、キャッシュ一致保証
    終了後、キャッシュ間でデータ転送すべきか、前記主記
    憶装置の読み出しを実行すべきかを選択するデータ供給
    元選択手段を有することを特徴とするマルチプロセッサ
    システム。
  14. 【請求項14】請求項1,2,3,7,8,10または
    11において、前記アドレス変換バッファに保持された
    範囲属性情報により指定される範囲のプロセッサに対し
    特定のタスクを割り当てるタスク割当て機能を有するこ
    とを特徴とするマルチプロセッサシステム。
  15. 【請求項15】主記憶装置に記憶された命令のうちその
    一部を保持する命令キャッシュメモリと、前記主記憶装
    置に記憶されたデータのうちその一部を保持するデータ
    キャッシュメモリと、前記命令キャッシュメモリ又は主
    記憶装置から実行すべき命令を読み出す命令フェッチユ
    ニットと、前記命令フェッチユニットにより読み出され
    た命令を解釈し、前記データキャッシュメモリ又は主記
    憶装置からデータを読み出し、前記解釈された命令を実
    行する命令実行ユニットと、前記命令フェッチユニット
    又は命令実行ユニットより発せられる仮想アドレスを実
    アドレスに変換するアドレス変換バッファを有するプロ
    セッサであって、前記アドレス変換バッファは、複数の
    プロセッサが接続された場合に、複数のキャッシュメモ
    リのうちキャッシュ一致保証すべき範囲を指定する範囲
    属性情報を保持する領域を有することを特徴とする範囲
    指定可能なプロセッサ。
JP5058332A 1993-03-18 1993-03-18 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム Expired - Fee Related JP2819982B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5058332A JP2819982B2 (ja) 1993-03-18 1993-03-18 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US08/824,411 US6631447B1 (en) 1993-03-18 1997-03-26 Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5058332A JP2819982B2 (ja) 1993-03-18 1993-03-18 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPH06274461A true JPH06274461A (ja) 1994-09-30
JP2819982B2 JP2819982B2 (ja) 1998-11-05

Family

ID=13081360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5058332A Expired - Fee Related JP2819982B2 (ja) 1993-03-18 1993-03-18 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム

Country Status (2)

Country Link
US (1) US6631447B1 (ja)
JP (1) JP2819982B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08179987A (ja) * 1994-12-21 1996-07-12 Nec Corp データ処理システムおよびリクエスト制御方法
JPH08235141A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk 情報処理システム
US6986002B2 (en) 2002-12-17 2006-01-10 International Business Machines Corporation Adaptive shared data interventions in coupled broadcast engines
JP2006072509A (ja) * 2004-08-31 2006-03-16 Fujitsu Ltd 情報処理装置及びローカルスヌープ制御方法
JP2007504549A (ja) * 2003-09-04 2007-03-01 コニンクリユケ フィリップス エレクトロニクス エヌ.ブイ. データ処理システム
JP2008506195A (ja) * 2004-07-07 2008-02-28 ヨッタヨッタ インコーポレイテッド 分散キャッシュ・コヒーレンスを提供するシステムおよび方法
JP2008140258A (ja) * 2006-12-04 2008-06-19 Renesas Technology Corp バス制御装置
JP2009032264A (ja) * 2007-07-26 2009-02-12 Hewlett-Packard Development Co Lp スヌープ要求に使用可能なマスク
WO2010058455A1 (ja) * 2008-11-19 2010-05-27 株式会社日立製作所 情報処理装置
CN104462005A (zh) * 2014-12-22 2015-03-25 浪潮电子信息产业股份有限公司 多处理器系统及构建多处理器系统的方法

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374329B1 (en) * 1996-02-20 2002-04-16 Intergraph Corporation High-availability super server
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6915387B1 (en) 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US7406554B1 (en) * 2000-07-20 2008-07-29 Silicon Graphics, Inc. Queue circuit and method for memory arbitration employing same
US8635410B1 (en) * 2000-07-20 2014-01-21 Silicon Graphics International, Corp. System and method for removing data from processor caches in a distributed multi-processor computer system
US6938128B1 (en) 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US7530070B1 (en) * 2000-08-10 2009-05-05 Agere Systems Inc. Dynamically configurable architecture for mixed data processing
KR100615411B1 (ko) 2001-02-24 2006-08-25 인터내셔널 비지네스 머신즈 코포레이션 풋/겟 윈도우를 통한 일관성 관리 방법 및 시스템
US20030069949A1 (en) * 2001-10-04 2003-04-10 Chan Michele W. Managing distributed network infrastructure services
US6999998B2 (en) * 2001-10-04 2006-02-14 Hewlett-Packard Development Company, L.P. Shared memory coupling of network infrastructure devices
US6920485B2 (en) * 2001-10-04 2005-07-19 Hewlett-Packard Development Company, L.P. Packet processing in shared memory multi-computer systems
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US6993630B1 (en) * 2002-09-26 2006-01-31 Unisys Corporation Data pre-fetch system and method for a cache memory
US6934810B1 (en) * 2002-09-26 2005-08-23 Unisys Corporation Delayed leaky write system and method for a cache memory
US6976128B1 (en) * 2002-09-26 2005-12-13 Unisys Corporation Cache flush system and method
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7103726B2 (en) * 2002-11-04 2006-09-05 Newisys, Inc. Methods and apparatus for managing probe requests
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US6950913B2 (en) * 2002-11-08 2005-09-27 Newisys, Inc. Methods and apparatus for multiple cluster locking
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7130969B2 (en) * 2002-12-19 2006-10-31 Intel Corporation Hierarchical directories for cache coherency in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
US7069392B2 (en) * 2003-06-12 2006-06-27 Newisys, Inc. Methods and apparatus for extended packet communications between multiprocessor clusters
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7484043B2 (en) * 2003-06-25 2009-01-27 International Business Machines Corporation Multiprocessor system with dynamic cache coherency regions
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7089397B1 (en) * 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US20050091459A1 (en) * 2003-10-23 2005-04-28 Nhon Quach Flexible mechanism for enforcing coherency among caching structures
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7277994B2 (en) * 2004-09-23 2007-10-02 Hewlett-Packard Development Company, L.P. Communication in partitioned computer systems
US20060080514A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Managing shared memory
DE102004062287A1 (de) * 2004-12-23 2006-07-13 Fujitsu Siemens Computers Gmbh Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem
US7991966B2 (en) * 2004-12-29 2011-08-02 Intel Corporation Efficient usage of last level caches in a MCMP system using application level configuration
JP4391954B2 (ja) * 2005-02-18 2009-12-24 富士通株式会社 ファイル制御システムおよびファイル制御装置
JP4956900B2 (ja) * 2005-03-07 2012-06-20 富士通株式会社 アドレススヌープ方法及びマルチプロセッサシステム
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
JP2007114890A (ja) * 2005-10-18 2007-05-10 Matsushita Electric Ind Co Ltd 演算処理装置およびキャッシュ動作方法
US7543116B2 (en) * 2006-01-30 2009-06-02 International Business Machines Corporation Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains
US7872657B1 (en) * 2006-06-16 2011-01-18 Nvidia Corporation Memory addressing scheme using partition strides
US8103832B2 (en) * 2007-06-26 2012-01-24 International Business Machines Corporation Method and apparatus of prefetching streams of varying prefetch depth
US8509255B2 (en) 2007-06-26 2013-08-13 International Business Machines Corporation Hardware packet pacing using a DMA in a parallel computer
US8756350B2 (en) 2007-06-26 2014-06-17 International Business Machines Corporation Method and apparatus for efficiently tracking queue entries relative to a timestamp
US7827391B2 (en) * 2007-06-26 2010-11-02 International Business Machines Corporation Method and apparatus for single-stepping coherence events in a multiprocessor system under software control
US8468416B2 (en) 2007-06-26 2013-06-18 International Business Machines Corporation Combined group ECC protection and subgroup parity protection
US8140925B2 (en) 2007-06-26 2012-03-20 International Business Machines Corporation Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan
US7877551B2 (en) * 2007-06-26 2011-01-25 International Business Machines Corporation Programmable partitioning for high-performance coherence domains in a multiprocessor system
US8010875B2 (en) 2007-06-26 2011-08-30 International Business Machines Corporation Error correcting code with chip kill capability and power saving enhancement
US8230433B2 (en) 2007-06-26 2012-07-24 International Business Machines Corporation Shared performance monitor in a multiprocessor system
US7984448B2 (en) * 2007-06-26 2011-07-19 International Business Machines Corporation Mechanism to support generic collective communication across a variety of programming models
US8032892B2 (en) * 2007-06-26 2011-10-04 International Business Machines Corporation Message passing with a limited number of DMA byte counters
US8458282B2 (en) 2007-06-26 2013-06-04 International Business Machines Corporation Extended write combining using a write continuation hint flag
US7802025B2 (en) 2007-06-26 2010-09-21 International Business Machines Corporation DMA engine for repeating communication patterns
US8108738B2 (en) 2007-06-26 2012-01-31 International Business Machines Corporation Data eye monitor method and apparatus
US7793038B2 (en) 2007-06-26 2010-09-07 International Business Machines Corporation System and method for programmable bank selection for banked memory subsystems
US7886084B2 (en) 2007-06-26 2011-02-08 International Business Machines Corporation Optimized collectives using a DMA on a parallel computer
US7826455B2 (en) * 2007-11-02 2010-11-02 Cisco Technology, Inc. Providing single point-of-presence across multiple processors
US8473904B1 (en) * 2008-01-16 2013-06-25 Xilinx, Inc. Generation of cache architecture from a high-level language description
US8468510B1 (en) 2008-01-16 2013-06-18 Xilinx, Inc. Optimization of cache architecture generated from a high-level language description
CN101271401B (zh) * 2008-04-23 2010-04-14 北京航空航天大学 一种具备单一系统映像的服务器机群系统
US8370855B2 (en) * 2008-12-23 2013-02-05 International Business Machines Corporation Management of process-to-process intra-cluster communication requests
US8521895B2 (en) * 2008-12-23 2013-08-27 International Business Machines Corporation Management of application to application communication requests between data processing systems
US9098354B2 (en) * 2008-12-23 2015-08-04 International Business Machines Corporation Management of application to I/O device communication requests between data processing systems
US8499029B1 (en) * 2008-12-23 2013-07-30 International Business Machines Corporation Management of process-to-process communication requests
US9009214B2 (en) * 2008-12-23 2015-04-14 International Business Machines Corporation Management of process-to-process inter-cluster communication requests
JP2010231619A (ja) * 2009-03-27 2010-10-14 Renesas Electronics Corp 情報処理装置
US9378003B1 (en) 2009-07-23 2016-06-28 Xilinx, Inc. Compiler directed cache coherence for many caches generated from high-level language source code
US8285969B2 (en) 2009-09-02 2012-10-09 International Business Machines Corporation Reducing broadcasts in multiprocessors
US8572353B1 (en) * 2009-09-21 2013-10-29 Tilera Corporation Condensed router headers with low latency output port calculation
CN102110072B (zh) * 2009-12-29 2013-06-05 中兴通讯股份有限公司 一种多处理器完全互访的方法及系统
US20110276769A1 (en) * 2010-05-10 2011-11-10 Nokia Siemens Networks Oy Data processor
US8656137B2 (en) 2011-09-01 2014-02-18 Qualcomm Incorporated Computer system with processor local coherency for virtualized input/output
US20130268930A1 (en) * 2012-04-06 2013-10-10 Arm Limited Performance isolation within data processing systems supporting distributed maintenance operations
US9229865B2 (en) * 2013-02-21 2016-01-05 Empire Technology Development Llc One-cacheable multi-core architecture
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
US9448937B1 (en) * 2014-08-18 2016-09-20 Xilinx, Inc. Cache coherency
US9852071B2 (en) * 2014-10-20 2017-12-26 International Business Machines Corporation Granting exclusive cache access using locality cache coherency state
US9606925B2 (en) * 2015-03-26 2017-03-28 Intel Corporation Method, apparatus and system for optimizing cache memory transaction handling in a processor
JP6674085B2 (ja) * 2015-08-12 2020-04-01 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
FR3048526B1 (fr) * 2016-03-07 2023-01-06 Kalray Instruction atomique de portee limitee a un niveau de cache intermediaire
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10223281B2 (en) * 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10970118B2 (en) 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
CN109669784B (zh) * 2017-10-13 2021-06-22 华为技术有限公司 一种进程间通信的方法及系统
US11556471B2 (en) * 2019-04-30 2023-01-17 Hewlett Packard Enterprise Development Lp Cache coherency management for multi-category memories
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems
US20230236759A1 (en) * 2022-01-21 2023-07-27 Dell Products L.P. Scanning pages of shared memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08179987A (ja) * 1994-12-21 1996-07-12 Nec Corp データ処理システムおよびリクエスト制御方法
JPH08235141A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk 情報処理システム
US6986002B2 (en) 2002-12-17 2006-01-10 International Business Machines Corporation Adaptive shared data interventions in coupled broadcast engines
CN1311372C (zh) * 2002-12-17 2007-04-18 国际商业机器公司 总线系统、产生高速缓存利用率数据的方法及其使用方法
JP2007504549A (ja) * 2003-09-04 2007-03-01 コニンクリユケ フィリップス エレクトロニクス エヌ.ブイ. データ処理システム
JP4729490B2 (ja) * 2003-09-04 2011-07-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2008506195A (ja) * 2004-07-07 2008-02-28 ヨッタヨッタ インコーポレイテッド 分散キャッシュ・コヒーレンスを提供するシステムおよび方法
JP2006072509A (ja) * 2004-08-31 2006-03-16 Fujitsu Ltd 情報処理装置及びローカルスヌープ制御方法
JP2008140258A (ja) * 2006-12-04 2008-06-19 Renesas Technology Corp バス制御装置
JP2009032264A (ja) * 2007-07-26 2009-02-12 Hewlett-Packard Development Co Lp スヌープ要求に使用可能なマスク
WO2010058455A1 (ja) * 2008-11-19 2010-05-27 株式会社日立製作所 情報処理装置
CN104462005A (zh) * 2014-12-22 2015-03-25 浪潮电子信息产业股份有限公司 多处理器系统及构建多处理器系统的方法

Also Published As

Publication number Publication date
US6631447B1 (en) 2003-10-07
JP2819982B2 (ja) 1998-11-05

Similar Documents

Publication Publication Date Title
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JP2662603B2 (ja) 無効要求を選別する方法及び装置
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
JP3533355B2 (ja) キャッシュ・メモリ・システム
CA2349569C (en) Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node
US20040215901A1 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US8700863B2 (en) Computer system having a cache memory and control method of the same
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
KR20180063820A (ko) 메모리에서 어드레스 범위간의 데이터 전송 장치 및 방법
US6587922B2 (en) Multiprocessor system
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
US5361342A (en) Tag control system in a hierarchical memory control system
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
JPH0551937B2 (ja)
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
JP3626609B2 (ja) マルチプロセッサシステム
JPH0816474A (ja) マルチプロセッサシステム
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
JP2846888B2 (ja) 分散共有メモリを持つマルチプロセッサシステム
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
JPH11102320A (ja) キャッシュシステム
JPH09311820A (ja) マルチプロセッサシステム
JPH08263374A (ja) キャッシュ制御方法およびそれを用いたマルチプロセッサシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees