JP2000076205A - マルチプロセッサ - Google Patents

マルチプロセッサ

Info

Publication number
JP2000076205A
JP2000076205A JP10242862A JP24286298A JP2000076205A JP 2000076205 A JP2000076205 A JP 2000076205A JP 10242862 A JP10242862 A JP 10242862A JP 24286298 A JP24286298 A JP 24286298A JP 2000076205 A JP2000076205 A JP 2000076205A
Authority
JP
Japan
Prior art keywords
cache
page
node
command
data
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.)
Pending
Application number
JP10242862A
Other languages
English (en)
Inventor
Toshiaki Tarui
俊明 垂井
Toshio Okochi
俊夫 大河内
Keimei Fujii
啓明 藤井
Yoshiko Yasuda
淑子 保田
Shigekazu Inohara
茂和 猪原
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 JP10242862A priority Critical patent/JP2000076205A/ja
Priority to EP99116639A priority patent/EP0982660A3/en
Publication of JP2000076205A publication Critical patent/JP2000076205A/ja
Pending 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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

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

Abstract

(57)【要約】 【課題】 ページ初期化時等のキャッシュプロトコルオ
ーバヘッドを削減する。 【解決手段】 各ノードに、初期化中のページを指示す
るためのレジスタ、及び、OSがページを回収した際
に、他のノードのキャッシュ上のデータをページ毎に無
効化することを指示するためのレジスタをもうける。前
者で指定されたページに初期化等のための書込みが起こ
った際には、他のノードからのライン転送を抑止し、他
のノードのキャッシュ上のデータを無効化する手段を設
ける。後者で指定されたページに対しては、他のノード
にページを一括して無効化するコマンドを発行する。さ
らに、ノード内の主記憶の各ページに対応して、ページ
が排他であることを記憶する手段を設け、後者のコマン
ドの実行が終了した時点で、該当するページの状態を排
他にする手段を持つ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パーソナルコンピ
ュータ(PC)、ワークステーション(WS)、サーバ
機等の情報処理装置に関し、特に、複数のプロセッサが
メモリを共有するマルチプロセッサに関係する。
【0002】
【従来の技術】近年PC,WSでは、主記憶共有型のマ
ルチプロセッサ構成が広まっている。主記憶共有マルチ
プロセッサの構成方式としては、複数のCPUに対し
て、集中的に主記憶を配置するUMA(Uniform
Memory Access)方式、各CPUと主記
憶の一部を組にして配置するNUMA(Non Uni
form Memory Access)方式がある。
初期の主記憶共有マルチプロセッサは、UMAが主流で
あったが、最近は、NUMA方式が、実装の容易さ、ス
ケーラビリティの良さ等の理由から、特に多数台のプロ
セッサを接続するために用いられるようになってきてい
る。
【0003】以下では、主記憶共有マルチプロセッサを
構成する要素プロセッサをノードと呼ぶ。複数のノード
を接続機構で接続し、システムが構成される。ノードは
1以上のCPU、キャッシュ、主記憶(NUMAの場
合)を持つ。
【0004】複数台のCPUを接続し、主記憶共有マル
チプロセッサを構成する方法としては、各プロセッサの
キャッシュの間を共有バスにより接続し、スヌープキャ
ッシュプロトコルを用いてデータをやり取りする方式が
広く用いられている。各プロセッサのキャッシュにおい
て、バス上に出される他のプロセッサのバスコマンドを
モニタし、キャッシュラインの排他/共有状態を管理す
ることにより、キャッシュの一貫性が保たれる。
【0005】マルチプロセッサのキャッシュ方式の一例
は「A LOW−OVERHEADCOHERENCE
SOLUTION FOR MULTIPROCES
SORS WITH PRIVATE CACHE M
EMORIES」第11回ISCA予稿集348ページ
から354ページ迄に開示されている。これらの方式で
は、各プロセッサのキャッシュ(ライトバック型)のT
AGにおいて、排他/共有等のデータの共有状態を記憶
し、バス上にデータ読み出し、無効化等のコマンドを出
すことにより、キャッシュの一貫性が保たれる。あるプ
ロセッサでキャッシュミスがおこった場合には、バス上
にデータ要求のためのコマンドが出され、主記憶もしく
は、他のプロセッサが持つキャッシュ(該当するプロセ
ッサのキャッシュが最新のデータを持っていた場合)よ
りデータがライン転送される。あるプロセッサで共有状
態のラインに書込みが行われた場合には、他のプロセッ
サのキャッシュ上のデータを無効化するためのコマンド
がバス上に出される。このキャッシュ制御プロトコルを
用いることにより、複数のプロセッサのキャッシュ上の
データの一貫性を厳密に保つことができ、プログラマ
は、キャッシュがあることを意識せずにプログラミング
を行うことができる。
【0006】ところが、上記のキャッシュ一致制御プロ
トコルは、プログラムの意味とは無関係に、キャッシュ
の一致制御を機械的にかつ厳密に行うために、時とし
て、非常に無駄な処理を行ってしまう場合がある。その
典型的な例として、ページの初期化のためページ全体に
0を書き込む場合を考える。この処理は、OS、ミドル
ウェアが使用済みのページを回収し、再割り当てする場
合に生じる。この場合、従来のキャッシュ一貫性プロト
コルに従うと、ページ内の全てのラインについて、以下
のように処理が行われる(ここでは、該当するライン
は、初期化を行うプロセッサにはキャッシングされてい
ないと仮定する)。
【0007】(1)CPUが該キャッシュラインに0を
書き込もうとし、キャッシュミスが起こる。 (2)キャッシュは、他の全てのノードのキャッシュお
よび主記憶に対してFetch and Invali
date命令を発行する。 (3)他キャッシュもしくは主記憶は、アクセスするラ
インを、要求元のCPUにライン転送する(他キャッシ
ュ上のデータは無効化される)。 (4)該当するラインが要求元のCPUに入った後、要
求元のCPUは、キャッシュ上のデータに0を書込む。 ここで注意しなければならないのは、ページは使用済み
のため、いままで該当するページに入っていたデータは
全く不要である(二度とアクセスされることは無い)、
ということである。実際に(4)においては、せっかく
ライン転送してきたデータにALL 0を上書きしてい
る。したがって、(3)における他のノードからのライ
ン転送は全く不要であり、(3)により、初期化のため
の書き込みレーテンシが増大し、無駄なトラフィックを
招くという問題点がある。本来なら、(3)において
は、他ノードからラインを転送することなく、他のキャ
ッシュのラインを無効化するだけにとどめ、(4)にお
いてはキャッシュ上にALL0のラインをアロケートす
るだけで十分である。
【0008】上記の問題を解決する手法として、CPU
の特殊命令Data CacheBlock set
to Zero(DBCZ)が、「The Power
PC Architecture」347ページにおい
て述べられている。DBCZにおいては、キャッシュに
ALL 0のラインをアロケートすると同時に他のキャ
ッシュを無効化する。これにより、上の(3)で述べ
た、他のノードからの無駄なデータの転送をなくすこと
ができ、バストラフィックを削減することができる。
【0009】
【発明が解決しようとする課題】一般に、ページクリア
をする場合、該当するページはかなり長い間使用されて
いなかったため、システムプログラムに回収されてしま
っているページなので、該当するページのデータが自C
PUのキャッシュに登録されている可能性は少ない。し
かし、CPUが上記従来技術のDBCZ命令を行った場
合で、自キャッシュに該当するラインがキャッシングさ
れていない場合は、該ラインが他のノードにキャッシン
グされている可能性があるため、他のノードのキャッシ
ュ上のデータを無効化するために、無効化コマンドを出
す必要がある。また、自キャッシュに該当するラインが
あっても、共有状態の場合はやはり他のノードへの無効
化コマンドが必要になる。このように、DBCZ命令を
用いてページのクリアを実現する場合、ほとんどの場合
に他のノードへの無効化コマンドを出す必要があり、下
記が生じる。
【0010】(1)多数のバスコマンドが必要になり、
バストラフィックが増大する。 (2)バスコマンドの出力に伴う、CPUの待ち時間が
生じ、CPUオーバヘッドが増大する。 (3)(2)に伴い、ページクリアーのレーテンシが増
大するため、ページ割り当てルーチンのオーバヘッドが
増大する。又、CPUによっては、DBCZ命令をサポ
ートしていない場合がある。従って、CPUの命令セッ
トによらずに、従来型のキャッシュプロトコルを用いた
場合でも、初期化の処理を削減するアーキテクチャが求
められる。
【0011】更に、従来の方式では、ページを使い終わ
った後、ページがクリアされるまでの間、ページのデー
タは、どこからもアクセスされない。そのため、書き込
みが行われたキャッシュラインは、書き込みの行われた
ノードのキャッシュに(Replaceで追い出される
までの間)Modified状態で残り、キャッシュを
無駄に占有することになる。
【0012】上述の課題は、初期化だけでなく、ページ
コピー、I/O等における、ページ全体への書込みの際
にも問題になる。これらの場合の書込み処理において
も、今までページに書込まれていた古いデータは全く使
用されないため、DBCZと同様の手法を用い、他のノ
ードから古いデータをライン転送すること無しに、新し
いデータを書込むことができるアーキテクチャが求めら
れる。さらに、(1)〜(3)に述べた課題も解決され
なければならない。
【0013】更に又、NUMAアーキテクチャにおい
て、自ノード内の主記憶を読み出す場合には、従来のキ
ャッシュプロトコルをそのまま用いると、他の全てのノ
ードに対してFetchコマンドでチェックしてから後
に、自ノードの主記憶をアクセスしなければならない。
なぜなら、該当するデータが他のノードのキャッシング
されている可能性があるからである。書き込み時の主記
憶読み出しでも、全く同一の問題が生じる。NUMAの
場合、通常は、ページの初期化/回収は該当するページ
を持つノードのプロセッサが行う。その場合、ページの
初期化が終了した後には、該当するページは他のどのノ
ードにもキャッシングされていないことが保証されてい
る。したがって、次回該当するページ内のデータをアク
セスする場合は、他のノードのキャッシュチェックは省
略できるはずである。
【0014】本発明の目的は、ページ初期化時等、ペー
ジへの一括書き込みが行われるときに必要な、ノード間
に出されるキャッシュコヒーレントコマンドのトラフィ
ックを減らすと同時に、ページ初期化に必要なCPUオ
ーバヘッドを減らすことである。
【0015】本発明の他の目的は、NUMA型の共有メ
モリシステムにおいて、初期化が終わり、他のノードに
はキャッシングされていないことが明らかなページに対
して、他のノードへのキャッシュコヒーレントコマンド
を出すことなく、アクセスを行うことである。
【0016】本発明のもう一つの他の目的は、使用済み
になり、アクセスされることがなくなったページのデー
タが、キャッシュを無駄に占有することをなくすことで
ある。
【0017】本発明のもう一つの他の目的は、ページ初
期化等において、他のキャッシュからデータを転送する
オーバヘッドを削減する機能を、CPUの命令セットに
よらずに実現することである。
【0018】
【課題を解決するための手段】上記目的を達成するため
に、主記憶共有マルチプロセッサの各ノードにおいて、
リモートノードのページの無効化を指示するためのレジ
スタを設け、該レジスタに書き込みが起ったことを全て
のノードに通知する手段を持つ。さらに、他のノードか
ら受けた該通知により、ノード内の該ページに属するキ
ャッシュライン全てを該ノードのCPUキャッシュから
追い出すためのコマンドを発行する手段、該ページに属
する全てのキャッシュラインを追い出した後、要求元の
ノードにページの無効化が終了したことを通知する手段
を持つ。さらに、主記憶のページ毎に該ページが排他状
態か共有状態かを記憶するためのビットを設け、上記ペ
ージの無効化が終了したページに対しては、該ビットを
排他状態に設定する手段を持つ。該ページは、他のノー
ドから該ページへのアクセスが行われたときに共有状態
に設定する。各ノードでは、該ページ排他ビットが排他
状態であるページに対してはノード外へのキャッシュコ
ヒーレントコマンドを出さない。
【0019】プログラムがページを使い終わった時に、
該ページを主記憶上に持つ、OS、ミドルウェアは上記
ページ無効化指示レジスタにページ番号を書き込む。こ
れにより、他のノード上の該ページに属するキャッシュ
ラインは全てキャッシュから追い出され、ページの属性
を排他にする事ができる。それにより、後刻、該ページ
に対する初期化/一括書き込みが行われる場合、ノード
外へのコマンドを出さずに行うことができる。
【0020】以上により、他のノードのキャッシュ上の
データをページ毎に無効化することができる。以上の処
理のために必要なノード間コマンドは、ページ一括書き
込みコマンドとそれに対する返答だけであるため、ノー
ド間のコマンド数を削減することができる。また、ペー
ジ無効化指示レジスタへ書き込んだ後の処理は全てハー
ドウェアにより行われるため、CPUオーバヘッドを削
減することができる。
【0021】さらに、上記目的を達成するため、主記憶
のページへのアクセスが初期化等の一括書き込みである
ことを指示するための手段を設け、該ページに対する他
のノードへのFetch and Invalidat
eコマンドがCPUから出された場合、他のノードへは
Invalidateのみを送り、Fetchに対して
はダミーデータを返す手段を設ける。以上により、他の
ノードからの無駄なデータ転送要求をCPUの特殊命令
を使うことなく削減することができる。
【0022】
【発明の実施の形態】以下、本発明に係る主記憶共有型
マルチプロセッサを、図1〜図9に示した実施の形態を
参照してさらに詳細に説明する。
【0023】<実施例> (1)装置の概要 図1は、本発明に係る主記憶共有型マルチプロセッサの
ブロック図である。本システムは8ノードのシステムで
あり、複数のノード、例えば100、200(これらは
ノード0〜ノード7と呼ぶことがある)が、バス900
により接続される。各ノードは同じ構造を有する。すな
わち、各ノードは、CPU110、(部分)主記憶12
1、内部バス190等により構成される。110、19
0、900については、公知の技術であるので内部の説
明は省略する。
【0024】主記憶121は、このシステムに共通の主
記憶の一部を構成し、各ノードで実行されるプログラム
およびデータの一部を保持するもので、このシステムは
NUMA型の並列計算機システムである。CPUはロー
カルキャッシュ1100を持つ。図ではノード内のCP
U、ノード間はバスにより接続されているが、バス以外
の結合方式、例えば一対一結合、スイッチによる結合で
もよい。これらノード内外の接続方法、キャッシュ管理
のためのプロトコルについては公知の技術であるので内
部構造の詳細な説明は行わない。
【0025】回路120は、CPUから送られてきたバ
スコマンドの受信/バスコマンドの分類を行うための回
路である。120は公知の技術であるので内部の詳細は
省略する。
【0026】回路130は、ノード内の主記憶121の
各ページに対して、該ページが排他か共有か(他のノー
ドにキャッシングされているかどうか)を記憶するRA
T(Remote Access Table)であ
る。回路131は、該ノード内のCPUが出した他ノー
ドへのアクセスに対してRATをチェックし、コマンド
の送出の有無を判断する。回路132は、他のノードか
らアクセスされたページに対してRATを共有状態に書
き換える回路である。図9は、RATの構成を示す。R
ATはページ番号を用いてアクセスされる。RAT=0
は排他、RAT=1は共有をあらわし、システムの立ち
上げ時にはRATの全ビットは排他状態にセットされ
る。
【0027】図1にもどり、回路140は該ノード内の
CPUがページ初期化などのページの一括書き込みを行
っていることをハードウェアに指示するための一括書込
ページ指示レジスタであり、CPUのソフトウェア(O
S等)によりページ番号が書き込まれる。図7は、一括
書込ページレジスタ140の構成を示す。同レジスタは
一括書込み中のページアドレス1401と、書込まれた
値が有効であることを示すEnableビット1402
により構成されている。
【0028】図1にもどり、回路141は一括書き込み
中のページに対するCPU110からのアクセス要求コ
マンドを変換する。回路142は一括書き込み中のペー
ジに対するCPU110からのアクセス要求に対してダ
ミーデータを返送する回路である。これらの回路13
0、131、132、140、141、142は本発明
に特有の回路である。
【0029】回路150は、該ノード内の主記憶のペー
ジに対し、他のノードのキャッシュに記憶されたデータ
をキャッシュから追い出すことを指示するための、リモ
ートページ無効化回路である。リモートページ無効化回
路150は、ページの開放、プロセスの終了等、CPU
がページを使い終わった際に、ソフトウェア(OS等)
によってページ番号が書き込まれる。回路152は、R
ATを検査してページ無効化コマンドが必要かどうかを
判断するRATチェック回路2である。回路151は、
他のノードからのページ無効化コマンド(PI)170
cを受け、該ノードのCPUのキャッシュ1100にキ
ャッシングされている該ページのデータを無効化するペ
ージ無効化カウンタである。回路160は、ページ無効
化の終了を判断し、RATを排他状態に戻すACK待ち
回路である。これらの回路150、152、151、1
60も本発明に特有の回路である。
【0030】回路170は、ノード間バスへコマンドを
やり取りするコマンド送受回路である。回路170も公
知の技術であるので内部の詳細は省略する。
【0031】(2)バスコマンドの説明 CPUのキャッシュ1100はスヌーピングキャッシュ
機構をサポートする。ノード内外のバス上では、キャッ
シュコヒーレンスを保持するため、以下の5つのコマン
ドが使われる。括弧内はこの実施例で使われる略号であ
る。
【0032】・Fetch(F) データのライン転送を要求する。CPUの読み出しコマ
ンドがミスした場合に出される。 ・Fetch&Invalidate(FI) データのライン転送と同時に、他のキャッシュ上のデー
タの無効化を要求する。CPUの書き込みコマンドがミ
スした場合に出される。 ・Invalidate(I) 他のキャッシュ上のデータの無効化を要求する。CPU
が、他のキャッシュと共有されているキャッシュライン
に対して書き込み要求を出した場合に出される。 ・Data(D) F,FIコマンドへの返答である。アクセスされたデー
タをアクセス元のCPUに転送する。 ・WriteBack(WB) キャッシュラインの書き戻しを要求する。リプレースに
より、データが追い出されたときに生じる。 ・Page Invalidation(PI) ページ無効化コマンド。他の全てのノードに対し、指定
されたページに含まれるラインを全てキャッシュから追
い出すことを要求する。本発明に特有のコマンドであ
る。 ・Page Invalidation ACK(PI
A) PIコマンドの実行が終了したことを要求元のノードに
通知する。本発明に特有のコマンドである。バス上で
は、コマンドに付随して、アドレスが転送され、さらに
WB,Dコマンドではデータ(キャッシュライン)が転
送される。
【0033】(3)CPUのからのアクセスに対する動
作 以下では、CPUからのアクセスに対する動作を場合に
分けて順に説明する。
【0034】(A)基本動作 最初に、(2)でのべたバスコマンドに対する対する基
本的な動作を述べる。この場合、一括書込ページ指示レ
ジスタ140、リモートページ無効化回路150には何
もセットされていないと仮定する。ここで述べる動作
は、RATに関係する動作以外は、従来のバスベースの
スヌーピングキャッシュであり、公知の技術である。
【0035】(A1)Fコマンド CPUの読み出し要求に対してキャッシュミスが生じる
と、Fコマンドは内部バス190を通じてアクセス分別
回路120に伝えられる。回路120は、アクセスアド
レスが自ノードの主記憶121に属する(ローカル)か
他のノードの主記憶に属する(リモート)かを判断す
る。何れの場合も、要求出力120bよりFコマンドが
出力され、RATチェック回路1(131)に伝えられ
る。
【0036】(A1−1)ローカル主記憶へのFコマン
ド 図2は、RATチェック回路1(131)の詳細を示
す。この場合、アクセスアドレス分別回路1310はロ
ーカル側1310bにFコマンドを出す。コマンド中の
アクセスアドレス1311aよりページ番号取得回路1
311によりページ番号が求められ、RAT読み出し回
路1312により、アクセスされたページのRATの値
が読み出され、値判定回路1313により、アクセスさ
れたページが排他か共有かが判断される。
【0037】(A1−1−1)RATが共有(RAT=
1)の場合 アクセスされたページが共有の場合、スイッチゲート1
314を通じてFコマンドが131aに出される。図3
は、コマンド変換回路141の詳細を示す。この場合、
一括書込ページ指示レジスタ140には何もセットされ
ていないため、Enableビット1402は0であ
り、信号1410cは0である。したがって、回路14
10、信号1410aを通じてFコマンドはそのまま1
41aに出力される。コマンド送受回路170はFコマ
ンドをバス900に出力し、他のノードはFコマンドを
受け取る。
【0038】F要求コマンドを受け取ったノードでは、
コマンド送受回路170は信号170bにFコマンドを
出力する。Fコマンドはアクセス判定回路132に伝え
られる。図4は、アクセス判定回路132の詳細を示
す。Fコマンドは信号132bに伝えられると同時に、
アドレスがローカルアクセス判定回路1320に入力さ
れる。この場合は、アクセスされたアドレスは、アクセ
ス元のノードのローカル主記憶であり、該ノードのロー
カルアドレスではないので、132は何も行わない。1
32bに出力されたFコマンドは回路120、バス19
0を伝わり、CPU110に伝えられる。CPUではF
etchされたアドレスのデータがローカルキャッシュ
1100に排他状態でキャッシングされているか検査す
る。
【0039】(A1−1−1−1)他ノードのCPUに
排他状態でキャッシングされている場合 アクセスされたデータを含むキャッシュラインはDコマ
ンドとして、バス190、回路120に伝えられる。D
コマンドは返答なので、Dコマンドは、回路120、信
号120c、回路170を通じてノード間バス900を
通じてアクセス元のノードにデータを返送する。アクセ
ス元ノードでは、回路170、信号120d、回路12
0、バス190を通じてアクセスされたデータがアクセ
ス元のCPU110に返送される。以上の手順によりF
コマンドで要求されたデータが他のノードのキャッシュ
よりキャッシュ間データ転送で供給される。
【0040】(A1−1−1−2)他の何れのノードの
CPUにも排他状態でキャッシングされていない場合 この場合、どのCPUからも、Dコマンドが返送されな
い。アクセス元のCPUのアクセス分別回路120は、
どのCPUからもDコマンドが返送されないと判断する
と、自ノードの主記憶121よりキャッシュラインを読
み出す。回路120はバス190を通じでCPU110
にアクセスされたデータを返送する。これにより、Fコ
マンドで要求されたデータが、自ノードの主記憶より読
み出される。
【0041】(A1−1−2)RATが排他(RAT=
0)の場合 アクセスされたページが排他の場合、RATチェック回
路131において、スイッチゲート1314により、外
部へのFコマンドの出力が抑止される。したがって、他
のノードへコマンドは出されず、当然他ノードからのデ
ータの返答は無い。
【0042】したがって(A1−1−1−2)と同様
に、アクセス分別回路120は自ノード内の主記憶12
1のデータを読み出し、バス190を通じ、CPU11
0に返送する。
【0043】(A1−2)リモート主記憶へのFコマン
ド この場合、リモートへのFコマンドは、RATチェック
回路131において、回路1310、信号1310aを
通じて信号131aにそのまま出力される。リモートへ
のF要求は、コマンド変換回路141でも、回路141
0より信号1410aを経由して、信号141aにその
まま出力される。その後、他のノードにコマンドが伝え
られ、他のノードでアクセスされたデータがCPUキャ
ッシュにキャッシングされているかどうかを検査すると
ころは(A1−1−1)とほぼ同様である。
【0044】ここで、(A1−1−1)との違いはHo
meノード(アクセスされたデータのアドレスを主記憶
上に持つノード)におけるアクセス判定回路132の動
作である。この場合、Homeノードではローカルアク
セス判定回路1320は、アクセスされたアドレスはロ
ーカルアドレスと判断し、信号1320bにアクセスア
ドレスを出力する。ページ番号取得回路1321では、
アクセスアドレスのページ番号を回路1322に伝え
る。回路1322では、RAT130のアクセスされた
ページに該当するビットに1を書込む。これにより、他
のノードからアクセスされたページの状態を排他から共
有に変更する事ができる。
【0045】(A1−2−1)他ノードのCPUに排他
状態でキャッシングされている場合 この場合は(A1−1−1−1)と同様にアクセスされ
たデータを含むキャッシュラインがDコマンドを用いて
キャッシュ間データ転送で返送される。
【0046】(A1−2−2)他の何れのノードのCP
Uにも排他状態でキャッシングされていない場合 この場合、Homeノード以外のどのノードからもDコ
マンドは返送されない、Homeノードのアクセス分別
回路120は他のノードからDコマンドが返送されず、
かつ自ノードのCPUからもDコマンドが返送されない
と判断すると、自ノードの主記憶121上のアクセスさ
れたデータを含むラインを読み出し、Dコマンドで信号
120cに出力する。その後、Dコマンドは(A1−1
−1−1)と同様にアクセス元CPUに返送される。以
上の手順により、Homeノードの主記憶上のデータを
読み出すことができる。
【0047】(A2)FIコマンド CPUの書込み処理でキャッシュミスが生じると、FI
コマンドが出される。この場合のリモートアクセス動作
は(A1)のFコマンドの場合とほぼ同様である。違い
は、キャッシュ間のデータ転送が行われた後の他ノード
のCPUのキャッシュ上のデータが無効化されることで
ある。
【0048】(A3)Iコマンド CPUのキャッシュ上で共有状態のデータに対して書込
みが生じると、Iコマンドが出される。Iコマンドは内
部バス190を通じてアクセス分別回路120を経由し
て、RATチェック回路1(131)に伝えられる。同
回路では(A−1−1)と同様の手順でRATの値がチ
ェックされる。
【0049】(A3−1)RATが共有(RAT=1)
の場合 アクセスされたページが共有の場合、スイッチゲート1
314を通じてIコマンドが131aに出される。この
場合も、一括書込ページ指示レジスタ140には何もセ
ットされていないため、Enableビット1402は
0であり、回路141においては、信号1410cは0
である。したがって、回路1410、信号1410aを
通じてIコマンドはそのまま141aに出力される。コ
マンド送受回路170はIコマンドをバス900に出力
し、他のノードはIコマンドを受け取る。
【0050】I要求コマンドを受け取ったノードでは、
コマンド送受回路170は信号170bにIコマンドを
出力する。Iコマンドはアクセス判定回路132に伝え
られる。
【0051】ここで、アクセス判定回路132では、F
コマンドの場合と同様にアクセスアドレスがチェックさ
れ、IコマンドによりアクセスされたアドレスのHom
eノードにおいては、RATに1が書込まれ、Home
ノード以外では何も行われない。
【0052】132bに出力されたIコマンドは回路1
20、バス190を伝わり、CPU110に伝えられ
る。CPUではIコマンドで指定されたキャッシュライ
ンを無効化する。
【0053】(A3−2)RATが排他(RAT=0)
の場合 アクセスされたページが排他の場合、RATチェック回
路131において、スイッチゲート1314により、外
部へのFコマンドの出力が抑止される。したがって、他
のノードへのIコマンドは出力されない。
【0054】(A4)WBコマンド CPU110のキャッシュ1100でリプレースが生じ
ると、追い出されたキャッシュラインがWBコマンドに
よりバス190を通じてアクセス分別回路120に伝え
られる。アクセス分別回路120では、アクセスされた
アドレスがローカルかリモートか判断する。
【0055】(A4−1)ローカルへのWBコマンドの
場合 アクセス分別回路120は自ノード内の主記憶121に
キャッシュラインを書き戻す。
【0056】(A4−2)リモートへのWBコマンドの
場合 アクセス分別回路120は信号120bを通じてWBコ
マンドをRATチェック回路1(131)に伝える。同
回路では、リモートアクセスなので、コマンドはそのま
ま信号131aに伝えられ、コマンド変換回路141に
送られる。コマンド変換回路141でも、リモートへの
WBコマンドは、そのまま信号141aに出力され、コ
マンド送受回路170、ノード間バス900を通じてH
omeノードに伝えられる。
【0057】WBコマンドを受け取ったHomeノード
では、コマンド送受回路170、信号170bを通じて
WBコマンドをアクセス判定回路132に伝える。アク
セス判定回路132では、WBコマンドはローカルへの
アクセスなので、ローカルアクセス判定回路1320は
WBされたアドレスをページ番号取得回路1321に出
力し、回路1322はRAT130のアクセスされたペ
ージに該当するビットに1(共有)を書込む。それと同
時にWBコマンドは信号132bを経由してアクセス分
別回路120に伝えられる。アクセス分別回路120は
主記憶121にキャッシュラインを書き戻す。
【0058】以上により、他のノードへのWBが行われ
る。
【0059】(B)一括書込ページが指示されている場
合 次に、本発明のマルチプロセッサシステムにおいて、O
S、ミドルウェアが自ノード内の主記憶のページに対
し、ページの初期化等のページ全体への書込み(ページ
一括書込)を行う場合の処理方式を述べる。図10にO
Sがページを初期化する場合の、図11にOSがページ
コピーを行う場合の処理フローを示す。ここで、データ
アクセスのローカリティを向上するために、初期化、コ
ピー等で、一括書込みを行うページは、必ず自ノードの
主記憶上であるとする。
【0060】ページ初期化の場合、初期化に先立ち、O
Sは、初期化するページ番号を一括書込中ページアドレ
スレジスタに書込むとともに、Enableビット14
02に1を書込む(ステップ8001)。OSはその後
ページ内の全てのワードに0を書込む(ステップ800
2)。初期化が終了すると、OSはEnableビット
1402に0を書込む(ステップ8003)。
【0061】ページコピーの場合も同様に、OSは、ペ
ージコピーの前に、コピーのDestination側
(データを書く側)のページの番号を一括書込中ページ
アドレスレジスタに書込むとともに、Enableビッ
ト1402に1を書込む(ステップ8101)。OSは
その後ページコピーを行い(ステップ8101)、最後
にEnableビット1402に0を書込む(ステップ
8103)。
【0062】ミドルウェアにより、ページのコピー、ク
リアを行うアルゴリズムも同様であるが、この場合は、
図10、図11のルーチンは、システムコールで実現さ
れる。この場合は、図10、図11の処理の前に、仮想
アドレスから実アドレスへのアドレス変換を行い、ペー
ジのプロテクションを検査するルーチンが挿入される。
【0063】以下では、上記のステップ8001、81
01でのページへの書込み時にハードウェアがどのよう
に動作するかを詳細に説明する。
【0064】初期化、ページコピー等では、該当するペ
ージ内のアドレスに対して、書込みアクセスが生じる。
その場合、CPUのキャッシュ1100の状態によっ
て、以下の3つの場合が考えられる。
【0065】(B1)排他状態のラインにヒットする場
合 キャッシュ上1100のラインに書込みを行うだけでO
Kである。
【0066】(B2)共有状態のラインにヒットする場
合 CPUはIコマンドを発行する。Iコマンドは(A3)
と同じ手順でRATチェック回路1(131)に伝えら
れ、RATの値がチェックされる。
【0067】(B2−1)RATが共有(RAT=1)
の場合 アクセスされたページが共有の場合、スイッチゲート1
314を通じてIコマンドが131aに出され、回路1
41に伝えられる。回路141においては、Enabl
e信号1410cが1であり、かつ、ローカルへのアク
セス要求であるので、アクセス要求は1410bに出力
される。ここで、アクセス要求は、アドレス(1411
a)、コマンド(1315c)、それ以外(1410
c)に分けられる。アドレスからは、ページ番号部分が
切り出され(回路1411)、信号140a、1412
cにより伝えられた、一括書込中ページアドレス140
1と比較される(比較器1412)。回路141では、
この比較結果(1412a、1412b)及びデコーダ
1413によるコマンドのデコード結果(1413a、
1413b、1413c)を、ゲート1415、141
6、1417で処理することにより、出力すべきコマン
ドが決定される。この場合は、入力がIコマンドなの
で、信号1413bがアクティブであることより、信号
1417aのみがアクティブになり、コマンドエンコー
ダ1414によりIコマンドが再び出力される(Iコマ
ンドの場合は、比較器141の結果は使用されない)。
従って、信号141aからは元と同じくIコマンドが出
力される。その後の動作は(A3−1)と同じであり、
他のノードにキャッシングされているデータが無効化さ
れる。
【0068】(B2−2)RATが排他(RAT=0)
の場合 この場合は(A3−2)と同様にIコマンドはRATチ
ェック回路から出力されない。
【0069】(B3)CPUキャッシュがミスする場合 CPUはFIコマンドを発行する。FIコマンドは、R
ATチェック回路1に伝えられ、(A1−1)と同様の
手法で、RATの値がチェックされる (B3−1)RATが共有(RAT=1)の場合 この場合も1(B2−1)と同様に、Enableが1
でかつローカルアドレスへのアクセス要求なので、アク
セスコマンドは1410bに出力される。その後、ペー
ジ番号の比較(回路1412)、コマンドのデコードが
行われる(1413)。この場合、一括書込中ページア
ドレス1401には、ステップ8001もしくは810
1で、現在アクセス中のページ番号が書込まれているた
め、アクセスページ番号1411bはページ番号141
2cと一致する。従って、信号1412aと信号(FI
コマンドを表わす)1413cがアクティブになるた
め、信号141bがアクティブになる。
【0070】従って、ゲート1417、信号1417
a、コマンドエンコーダ1414を通じて信号141a
にはIコマンドが出力される。従って、コマンド変換回
路141において、FIコマンドがIコマンドに変換さ
れる。その後(A3−1)と同様に、Iコマンドによ
り、他ノードにキャッシングされているデータが無効化
される。
【0071】Iコマンドの出力と並行して、信号141
bを通じて回路142がアクティブになり、信号142
aに、ダミーライン(この場合、返送されたキャッシュ
ラインに含まれているデータは、全て上書きされること
が、保証されているため、ダミーラインに含まれるデー
タは任意である。例えば、ALL 0のデータを持つラ
インが使われる。)が出力される。ダミーラインは信号
120d、回路120、内部バス190を通じて、CP
U110に返送される。
【0072】以上の手順により、初期化中、ページコピ
ー等で、一括書込みを行うページへのFIコマンドに対
し、他のノードからのデーター転送を行わずに、データ
を返送することができる。さらに、他のノードにIコマ
ンドを送ることにより、他のノードにキャッシングされ
ているデータを無効化し、キャッシュのコヒーレントを
保つことができる。
【0073】(B3−2)RATが排他(RAT=0)
の場合 この場合は(A1−1−2)と同様にFIコマンドはR
ATチェック回路から出力されない。
【0074】(B4)一括書込が行われているページ以
外がアクセスされた場合。
【0075】ここで、CPUからの、一括書込が行われ
ているページ以外へのアクセスに対する、コマンド変換
回路141の動作について補足して説明する。回路14
1に、初期化中のページ以外へのアクセスが到来する場
合、比較器1412の比較結果は不一致であり、信号1
412bがアクティブになる。従って、コマンドデコー
ド回路1413の出力はそのまま、コマンドエンコード
回路1414に伝えられるため、コマンドの変換は行わ
れない。また信号141bはインアクティブであり、ダ
ミーラインの返送も行われない。
【0076】従って、コマンド変換回路141は、一括
書込み中ページアドレスレジスタ1401にセットされ
たページ以外へのアクセスには、全く影響を与えず、通
常通りのアクセスが行われる。従って、ノード内がマル
チプロセッサ構成になっている等の理由で、ページ初期
化、ページコピー等と並行して他の領域がアクセスされ
た場合でも、正常に動作する。
【0077】(C)リモートページ無効化が指示されて
いる場合 最後に、本発明のマルチプロセッサシステムにおいて、
アプリケーション等がページを使い終わり、OS、ミドル
ウェアが自ノード内の主記憶のページを回収する際の処
理について述べる。ここでは、データアクセスのローカ
リティを考慮すると、ページを回収するプロセッサは、
必ずHomeノードでなければならない。図12は、O
Sがページを回収する場合の処理フローを示す。
【0078】ページの回収に先立ち、OSは、回収する
ページ番号をリモート無効化ページアドレスレジスタ1
501に書込みむ(ステップ8201)。その後実際に
ページを回収する(回収したページをフリーページリス
トに入れる等の処理をおこなう)(ステップ820
2)。ミドルウェアにより、ページの回収を行うアルゴ
リズムも同様であるが、この場合は、図12のルーチン
は、システムコールで実現される。この場合は、図12
の処理の前に、仮想アドレスから実アドレスへのアドレ
ス変換を行い、ページのプロテクションを検査するルー
チンが挿入される。
【0079】以下では、上記のステップ8201でのリ
モート無効化ページアドレスレジスタ1501書込み時
にハードウェアがどのように動作するかを詳細に説明す
る。リモート無効化ページアドレスレジスタ1501に
書込まれると、まず、回路1502により、回収するペ
ージに対するPI命令が発生され、信号150aを通じ
てRATチェック回路2(152)に伝えられる。それ
と同時に信号150aを通じて、PIコマンドを送出し
たことが、ACK待ち回路160に伝えられる。
【0080】まずPIコマンドの動作について述べる。
RATチェック回路2(152)は、RATチェック回
路1(131)(図2)と同様の回路である。ただし、
この場合はアクセスアドレスは必ずローカルアドレスな
ので、アクセスアドレス分別回路1310は省略されて
いる(回路152においては入力信号150aはすぐに
信号1310aに相当する信号に接続されている)。回
路152では、回収されたページに相当するRATの値
をチェックし、RATが排他なら、PIコマンドの出力
を抑止する。RATが共有なら、信号152aを通じて
PIコマンドをコマンド送受回路170に送る。コマン
ド送受回路170は、ノード間バス900を通じ、他の
全てのノードにPIコマンドを送付する。
【0081】次にPIコマンドを受け取ったノードの動
作を述べる。PIコマンドは、コマンド送受回路170
を介して、ページ無効化カウンタ151に送付される。
図5は、ページ無効化カウンタの構成を示す。ページ無
効化カウンタ151は、無効化アドレス発生回路15
2、ACKコマンド(PIAコマンド)発生回路151
2、無効化コマンド送出回路1511からなる。PIコ
マンドが到来すると無効化アドレス発生回路152内の
カウンタ1520がトリガされ、0から順にラインサイ
ズのストライドでカウントアップをはじめる。カウンタ
1520の出力はページ内アドレス1520aとして、
PIコマンドで送られたページ番号152aとともに、
無効化コマンド送出回路1511に送られる。無効化コ
マンド送出回路1511は、信号1510aで送られて
きたアドレスに対し、Iコマンドを発生する。発生され
たIコマンドは、信号151b、信号120d、アクセ
ス分別回路120、ノード内バス190を通じて、CP
U110に伝えられる。これにより、ページの最初のラ
インに対するIコマンドが送られ、該ラインは無効化さ
れる。カウンタ1520は、ラインサイズのストライド
でカウントアップを続け、それに呼応して、無効化コマ
ンド送出回路1511は、ページ内の各ラインに対し
て、順にIコマンドを送出する。カウンタの出力152
0aが ページサイズ−ラインサイズ になると(つまり、ページの一番最後のラインに到達す
ると)比較回路1521は終了信号1521aをアクテ
ィブにし、Iコマンドの送出は終了する。以上により、
PIコマンドで指定されたページ内の全ラインが無効化
される。
【0082】終了信号1521aがアクティブになる
と、ACKコマンド(PIA)送出回路1512aがE
nableされ、信号151cに、PIにより指示され
たページに対する、PIAコマンドが出される。PIA
コマンドは、コマンド送受回路170、ノード間バス9
00を介して、アクセス元ノード(ページを回収したノ
ード)に返送される。
【0083】次に、PIコマンドを出した後の、アクセ
ス元ノードの処理を述べる。アクセス元のノードでは、
PIコマンドを送出したことが、信号152aを通じて
ACK待ち回路160に伝えられる。図6は、ACK待
ち回路160の詳細を示す。PIコマンドが到来する
と、ページ番号(回収されたページ番号)が、ACK待
ちページアドレスレジスタ1601に保持され、PIA
コマンドの到来を待ち合わせる。他ノードからPIAコ
マンドが到来すると、コマンドはコマンド送受回路17
0、信号170dを通じてACK待ち回路160に送ら
れる。ACK待ち回路では、PIAコマンドのアドレス
(ページ番号)1603aとACK待ちページアドレス
レジスタ1601の内容と比較される(回路160
2)。比較の結果アドレス(ページ番号)が一致した場
合は、ACK数カウンタ1604がカウントアップされ
る。これにより、PIコマンドに対して返送されてきた
PIAコマンドの数を数えることができる。ACK数カ
ウンタ1604の出力は、システム内の全ノード数かよ
り1少ない値(1605)と比較される(比較器160
6)。これにより、他の全てのノードからPIAが到来
した(言い換えると、他の全てのノードでPIにより要
求されたページの無効化処理が終了した)ことが判定で
きる。他の全ノードからPIAコマンドが到来すると、
信号1606aがアクティブになり、回路1603によ
り、信号160bを通じて、RAT130の該当するペ
ージのビットに0を書込む。これにより、該当するペー
ジの状態を排他に戻すことができる。
【0084】以上の処理により、OS等が回収したペー
ジに対し、他のノードのキャッシュ上に保持されている
データを全て無効化し、ページを排他状態(他のどのノ
ードのキャッシュにも無いことが保証されている状態)
にもどすことができる。従って、後に、該ノードがペー
ジをクリアし、使用する際には、他のノードへのキャッ
シュコヒーレントコマンドを出さずにページをアクセス
することができる。
【0085】<変形例>本発明は以上の実施の形態に限
定されるのではなくいろいろの変形例にも適用可能であ
る。以下に変形例を記述する。
【0086】(1)FLUSHによる他キャッシュから
のデータの追い出し 以上においては、ページの開放時に、プログラムが使い
終わったページのデータを他のノードのキャッシュから
追い出すために、無効化コマンドを使用している。この
場合、以前キャッシングされていたDirtyなデータ
は捨てられるため、無駄なノード間データ転送が避けら
れるという利点がある。この方法は、開放されるページ
上のデータは保存されないため、開放されるページ上の
データは二度とアクセスされないことをシステムソフト
ウェアが保証する必要がある(通常は、一旦開放された
ページのデータがアクセスされることはない)。
【0087】それに対して、他のノードのキャッシュか
らデータを追い出す手段として、FLUSHコマンドを
用いる方法が考えられる。ここで言うFLUSHコマン
ドとは、キャッシュ上のデータを無効化するとともに、
キャッシュラインが変更されていた場合には、データを
主記憶に書き戻すことを要求するコマンドである。この
場合、キャッシュ上の変更されているデータは全てHo
meノードの主記憶に書き戻されるため、ノード間のト
ラフィックが増える(従来方式と同等になる)という欠
点がある。しかし、開放されたページのデータは完全に
保存されるため、OSのページリクレーム等の最適化に
より、一旦開放されたページのデータが再利用される可
能性がある場合は、FLUSHによるプロトコルを使う
必要がある。この場合も、RATのページの状態はは排
他に戻すことができる。
【0088】FLUSHを用いた場合でも、上記の実施
例とほぼ同等のハードウェアで実現できる。変更しなけ
ればならない部分は、ページ無効化カウンタ151のI
コマンドを出力する部分1511を、FLUSHコマン
ドを出力するように変更するだけである。
【0089】さらに、無効化とFLUSHの2つの機能
をあわせて持ち、開放されるページの属性に応じて両者
を使い分ける(再利用される可能性のあるデータのみF
LUSHを使う)方法も可能である。この場合リモート
ページ無効化回路150、ページ無効化カウンタ151
に、無効化とFLUSHを区別する信号を追加すればよ
い。
【0090】(2)ページのゼロクリアもハードで行う
方式 以上においては、ページが開放された際に、他のノード
にキャッシングされているデータを無効化するだけであ
り、ページのゼロクリアはソフトウェアで実行する必要
があった(ページは排他なので、初期化はノード内のみ
で実行できる)。それに対して、ページのゼロクリアも
ハードウェアで行えば、後にOSがページをクリアする
手間を省くことができ、更なる高速化を達成できる。
【0091】図13、図14は、ゼロクリアをハードウ
ェアで行う場合の構造を示す。図13は、主記憶共有マ
ルチプロセッサの全体構成である。各ノードがページク
リアカウンタ155を持つところが図1との違いであ
る。各プロセッサにおいて、OS等が自ノードの主記憶
に置かれたページを回収し、リモートページ無効化レジ
スタがセットされると。ページ無効化コマンドがページ
クリアカウンタ155に送られる(ページクリアカウン
タ155はRATの値によらず動作しなければならな
い)。
【0092】図14は、ページクリアカウンタ155の
詳細図を示す。ページクリアカウンタ155の動作の概
略は図5で示したページ無効化カウンタ151の動作と
同じである。ページクリアアドレス発生回路のカウンタ
156において、ページ内の各ラインのアドレスが発生
され、回路1551に送られる。回路1551では、該
当する主記憶上のラインにALL 0を書込むと同時に
ノード内のキャッシュ1100を無効化するためのコマ
ンドを発生する(これらのコマンドはアクセス分別回路
120により、それぞれ主記憶121、CPU110に
送られる)。ページクリアカウンタ155により、リモ
ートページ無効化回路150で指示されたページの内容
を0クリアすることができる。
【0093】以上の処理により、ページが開放された際
に、開放されたページの内容をハードウェアで0クリア
できるため、後にページをアロケートする際のソフトウ
ェアオーバヘッドを大幅に削減することができる。さら
に、他のノードのキャッシュ上のデータはページ毎に一
括して無効化するため、ノード間のバストラフィックは
増加しない。
【0094】(3)ノード内マルチプロセッサ 以上においては、ノード内のCPUの数は1つであった
が、ノード内をマルチプロセッサ構成にすることも可能
である。その場合、一括書込ページレジスタ140、リ
モートページ無効化回路150、ACK待ち回路160
は、CPUの数だけ複数個持たなくてはならない。
【0095】(4)ノード内の外部キャッシュの活用 以上においては、ノード内のCPUにのみキャッシュを
持っていたが、CPUに外付けのキャッシュを各ノード
に設けることも可能である。この場合、外付けキャッシ
ュとCPUキャッシュの間で包含関係が成り立つ場合
は、外付けキャッシュのTAGの情報を用いて、無効化
コマンドの数を削減することが可能である。
【0096】図15、図16を用いてノード内キャッシ
ュを持った場合の構成を説明する。図15は、主記憶共
有マルチプロセッサの全体構成である。各ノードが外部
キャッシュ管理回路180、Cache DATA 1
81、Cache TAG182を持ち、ページ無効化
カウンタ151が151dにより、Cache TAG
182をアクセスできるようにするところが図1との
違いである。Cache管理回路180等の動作は公知
の技術であるので詳細説明は省略する。また、図15は
(3)で述べたノード内マルチプロセッサ構成になって
おり、一括書込ページレジスタ140、リモートページ
無効化回路150、ACK待ち回路160は、CPUの
数だけ複数個持つ。
【0097】図16は、ページ無効化カウンタ151’
の構成を示す。151’は図5に示すページ無効化カウ
ンタ151とほぼ同じ動作を行うが、外部キャッシュキ
ャッシング判定回路153とゲート1510を持つとこ
ろが相違する。無効化アドレス発生回路152より出力
された無効化コマンドを発行するためのアドレス151
0aは、外部キャッシュキャッシング判定回路153に
入力され、外部キャッシュに該当するアドレスのデータ
が登録されているかが検査される。外部キャッシュキャ
ッシング判定回路153では、コラムアドレスを用いて
外部キャッシュのタグ182を読み出し(回路153
0)、無効化コマンドの上位のキャッシュアドレス15
3bと比較を行う(回路1531、1532)。ここで
は、外部キャッシュは2wayのセットアソシアティブ
キャッシュと仮定しているが、他の構成でも良い。比較
の結果、どちらかのアドレスが一致し、キャッシュ上に
データがあると判定されると、ゲート1510がONに
なり、無効化コマンドが送出される。どちらの比較も不
一致であり、該当するアドレスを持つデータは外部キャ
ッシュ上に無いと判断された場合には、ゲート1510
はOFFになり、無効化コマンドの送出は抑止される。
【0098】以上の手段により、ページ一括無効化の際
に、外部キャッシュのTAGの情報を活用して、不要な
無効化コマンドの送出を抑止することができる。
【0099】(5)アドレス範囲による指定 以上においては、一括書込みページ指示レジスタ14
0、リモートページ無効化回路150においては、ペー
ジ毎にアドレスを指定していたが、任意のページ境界の
アドレス範囲を指定するアーキテクチャとすることも可
能である。
【0100】その場合、以下の点が変更になる。 (a)RATチェック回路2(152)におけるRAT
の検査においては、指定された範囲を含むページが全て
排他状態の場合にのみ、排他とすることができる。 (b)ACK待ち回路160において、RATを排他状
態に戻す際には、指定された範囲内に完全に含まれるペ
ージのみを排他状態に戻すことができる。 (c)本発明のキャッシュ機構を活用するアプリケーシ
ョンのアドレス範囲はリアル連続である(科学技術計算
においては可能な前提である)。 (d)図7、図8で示される一括書込み中ページアドレ
スレジスタ1401、リモート無効化ページアドレスレ
ジスタ1501は、指定された範囲の下限、上限のアド
レスをあらわす、2つのレジスタの組になる。 (e)コマンド変換回路141、ページ無効化カウンタ
151におけるページ内に含まれているかどうかのチェ
ックは、アドレスが指定された範囲に含まれているかど
うかのチェックになる。 上記の変更は自明なので、詳細な説明は略す。
【0101】さらに、リモートページの一括無効化がア
ドレス範囲で指定される場合で、かつ各ノードが外部キ
ャッシュを持つ場合、ページ無効化カウンタ151’’
において、複数のwayを並行してチェックすることに
より、指定されたアドレス範囲がキャッシュのコラムア
ドレスの範囲より大きい場合の無効化コマンドの発行を
大幅に効率化することができる。
【0102】図17は、ページ無効化カウンタ15
1’’の構成を示す。まず、ページ無効化コマンドよ
り、指定されたアドレス範囲の下限アドレス159aと
上限アドレス159bを得る。下限アドレスはカウンタ
1520’にプリセットされ、カウントアップをはじめ
る。比較器1521’では、カウントアップされたアド
レスが、上限アドレスに達するか、下限アドレスにコラ
ム数を足した値より大きくなった場合は、信号1521
aに終了信号を発生する。後者の条件により、キャッシ
ュの同一のコラムが複数回チェックされることを防ぐこ
とができる。終了信号1521aを受け取ったACKコ
マンド送出回路1512’は、151cを通じアクセス
元のノードにPIAコマンドを返す。
【0103】カウンタ1520’より供給されたアドレ
スからは、コラムアドレス1590aが切り出され、キ
ャッシュTAG読み出し回路1530に供給される。キ
ャッシュTAG読み出し回路は、指定されたコラムアド
レスのTAGの内容を並列に読み出す。ここでは2wa
yのキャッシュを仮定しており、TAG0(1530
a)、TAG1(1530b)が読み出される。読み出
されたアドレスは、コラムアドレスと合わせて、キャッ
シュアドレス1591a、1592aが作成される。キ
ャッシュアドレスは、下限アドレスと159aと上限ア
ドレス159bの間にあることを比較器1591、15
92で比較され、範囲内に入っていた場合には、ゲート
1593、1594を通じてキャッシュアドレスが無効
化コマンド送出回路1511’に送付される。無効化コ
マンド送出回路1511’は、送付されたアドレスにつ
いて無効化コマンドを151bを通じて送出する。
【0104】以上の手順により、一括無効化コマンドに
より指定されたアドレス範囲の中で、外部キャッシュに
キャッシングされているラインに対してのみ無効化コマ
ンドを送出することができる。さらに、指定されたアド
レス範囲がコラムアドレスより大きい場合には、各々の
コラムアドレスを1回のみチェックし、キャッシュアド
レスが指定されたアドレス範囲に入っているかどうか
を、複数のwayについて並行してチェックすることに
より、一括無効化に要するチェックの手間を最大で コラムアドレス/ラインサイズ におさえることができる。
【0105】(6)UMAアーキテクチャ 以上においては、各ノードはノード内に主記憶を持った
NUMA構成であったが、本発明で述べられたアーキテ
クチャは、集中主記憶を持ったUMA構成のマシンにも
適用することが可能である。
【0106】図18は、UMAアーキテクチャの場合の
本発明のマルチプロセッサの構成図を示す。ノード内の
主記憶121が無く、そのかわりに共有主記憶901が
あることが図1との相違点である。さらに、拡張RAT
130’の構成がNUMAにおけるRATと以下の点で
異なる。 (a)拡張RATのビットは、NUMAアーキテクチャ
においてはノード内の主記憶に対応するページにのみ設
けられていたが、UMAアーキテクチャでは(実装され
ている)全主記憶空間のページに対して設けられる。 (b)拡張RATの各ビットの初期値は1(共有)であ
る。したがって、RATが0(排他)になるのは、該当
するノードがページを回収し、リモートページ無効化を
実行した後に限られる。UMAの場合でも、本発明の1
つめの特徴技術である、一括書込みページ指示レジスタ
140を用いた初期化時のコマンド変換機能の動作は、
NUMAアーキテクチャと全く同一である。
【0107】次に、本発明の2つめの特徴技術である、
ページ回収時の、リモートページ無効化レジスタ150
による他ノードの主記憶の一括無効化の動作について述
べる。UMAアーキテクチャでは各ノードは任意のペー
ジを回収することができる点がNUMAとの最大の相違
点である(NUMAでは、Homeノードがページを回
収することを前提にしている)。ここで、UMAではR
ATは全主記憶空間について設けられているため、回収
したページが他のノードにキャッシングされていないこ
とを保証することができる。したがって、後刻ページの
初期化を行う場合、ノード間バスにコマンドを出さず
に、ノード内だけで処理することができる。UMAの場
合、各ノード100’〜200’を1チップで実現する
ことも可能である。
【0108】(7)ユーザモードでのコマンドの起動 以上においては、各ノードの一括書込ページ指示レジス
タ140、及びリモートページ無効化回路150は、指
定されたページのデータを破壊するため、ページのアク
セス権限をチェックしてからアクセスしなければならな
い。以上では、OSもしくはシステムコールを介してア
クセスされることを前提としていたため、ハードウェア
での記憶保護機構は設けられていない。上記レジスタを
ユーザ(ミドルウェアを含む)に開放すると、誤って、
他のユーザのアドレス空間を無効化してしまう可能性が
あり、好ましくない。しかし、ユーザモードからのアク
セスを、毎回システムコールを介して行っていたので
は、システムコールのオーバヘッドが大きい場合、問題
になる。
【0109】一括書込み中ページアドレスレジスタ14
01を例にとり、ユーザモードから直接ページアドレス
を指定するためのインタフェース回路を図19に、ペー
ジを指定する部分の(図10のステップ8001の前半
に相当)プログラムのフローを図20に示す(リモート
無効化ページアドレスレジスタ1501への書込みも同
様の手法で実現できる)。ここで問題になるのは、いか
にしてページのプロテクション(現在実行中のプログラ
ムが指定されたページに書込み権限があるか)を検査す
るかである。図19では、CPUの書込み命令(Unc
ached Write)がCPUバス190に出てく
るかどうかを見ることにより、指定するページへの書込
み権限があることをチェックする。
【0110】図19において、1408のページ指定ビ
ットレジスタは、プログラムがページ番号を指定するた
めのUncached Write命令を発行すること
を示す、1ビットのレジスタであり、実行中のプログラ
ムから読み書き可能なページに置かれる。
【0111】ページ指定に先立ち、プログラムはページ
指定ビットレジスタ1408に1を書込む(ステップ8
301)。その後、ページ内の任意のアドレス(例えば
ページの最初のアドレス)を、Uncached Wr
ite命令でアクセスする(ステップ8302)。する
と、Uncached Write検出回路1407の
出力1407aがアクティブになり、ページ指定ビット
レジスタ1408の出力1408aとANDが取られ、
信号1409aがアクティブになる。従って、一括書込
中ページアドレスレジスタ1401’にアクセスされた
ページアドレスが記憶される。その後、プログラムは、
ページ指定ビットレジスタ1408を0に戻す(ステッ
プ8303)。もし、ページに対する書込み権限が無い
場合はステップ8302の書込み処理は失敗するので、
ページ指定レジスタはセットされない。
【0112】以上の機能により、ユーザプログラムから
直接、一括書込み中ページアドレスレジスタへの書込み
を許しつつ、必要なプロテクションを実現することがで
きる。
【0113】
【発明の効果】本発明によれば、主記憶共有型のマルチ
プロセッサにおいて、ページの初期化、ページ一括コピ
ー等ページ全体に書込みを行う場合に、他のノードのキ
ャッシュから古いデータをライン転送することなく、デ
ータの書込みを行うことを、CPUの命令セットによら
ず実現することができ、書込みのレーテンシを大幅に削
減するとともに、ノード間のトラフィックを削減するこ
とができる。
【0114】更に、本発明によれば、アプリケーション
等がページを使い終わった際に、他のノードのキャッシ
ュ上に残った古いデータを、ハードウェアによりキャッ
シュから追い出すこにより、ページ内のデータが他のキ
ャッシュにキャッシングされていないことを保証するこ
とができる。したがって、次回該当するページをアクセ
スする際に、他のノードへのキャッシュコヒーレントコ
マンドを削減することができ、ノード間のトラフィック
を大幅に削減するとともに、アクセスレーテンシを大幅
に削減することができる。
【図面の簡単な説明】
【図1】本発明のキャッシュコヒーレンス保持機構を持
つ主記憶共有型マルチプロセッサの構成図である。
【図2】各ノードのRATチェック回路1のブロック図
である。
【図3】各ノードのコマンド変換回路のブロック図であ
る。
【図4】各ノードのアクセス判定回路のブロック図であ
る。
【図5】各ノードのページ無効化カウンタのブロック図
である。
【図6】各ノードのACK待ち回路のブロック図であ
る。
【図7】各ノードの一括書込みページ指示レジスタのブ
ロック図である。
【図8】各ノードのリモートページ無効化回路のブロッ
ク図である。
【図9】各ノードのRATのブロック図である。
【図10】本発明のマルチプロセッサシステムにおい
て、OSが主記憶を初期化する際のフロー図である。
【図11】本発明のマルチプロセッサシステムにおい
て、OSがページ一括コピーを行う際のフロー図であ
る。
【図12】本発明のマルチプロセッサシステムにおい
て、OSがページを回収する際のフロー図である。
【図13】本発明の変形例2における主記憶共有型マル
チプロセッサの構成図である。
【図14】本発明の変形例2における各ノードのページ
クリアカウンタのブロック図である。
【図15】本発明の変形例4における主記憶共有型マル
チプロセッサの構成図である。
【図16】本発明の変形例4における各ノードのページ
無効化カウンタのブロック図である。
【図17】本発明の変形例5における各ノードのページ
無効化カウンタのブロック図である。
【図18】本発明の変形例6における主記憶共有型マル
チプロセッサの構成図である。
【図19】本発明の変形例7における、各ノードの一括
書込みページ指示レジスタのブロック図である。
【図20】本発明の変形例7における、各ノードの一括
書込みページ指示レジスタへの書込み処理のフロー図で
ある。
【符号の説明】
100、200……ノード 900………………ノード間バス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤井 啓明 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 保田 淑子 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 猪原 茂和 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B005 JJ11 KK13 MM01 NN42 NN53 PP21 PP26

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】CPU、キャッシュおよび主記憶を持つ複
    数のノードと、ノード間を結ぶ結合機構とからなり、結
    合機構を使ってノード間でキャッシュコヒーレント制御
    を行うマルチプロセッサにおいて、各ノードが、 他ノードのキャッシュ上のデータをページ毎に一括して
    追い出すことを指示する手段と、 該指示に対応して、該他ノードにキャッシュ上のデータ
    をページ毎に一括して追い出すことを指示するコマンド
    を送信する手段と、 他ノードから該コマンドを受け取り、ノード内のキャッ
    シュ上の、コマンドにより指定されたページに属するデ
    ータを、キャッシュから追い出す手段を持つことを特徴
    としたマルチプロセッサ。
  2. 【請求項2】キャッシュからキャッシュラインを追い出
    す手段として無効化コマンドを用い、キャッシュからデ
    ータを追い出す際に、他のノードにキャッシングされて
    いるデータを捨てる手段を有することを特徴とする請求
    項1記載のマルチプロセッサ。
  3. 【請求項3】キャッシュからキャッシュラインを追い出
    す手段としてFLUSHコマンドを用い、キャッシュか
    らデータを追い出す際に、他のノードにキャッシングさ
    れているデータを書き戻す手段を有することを特徴とす
    る請求項1記載のマルチプロセッサ。
  4. 【請求項4】他ノードのキャッシュ上のデータをページ
    毎に一括して追い出すコマンドを受け取ったノードが、
    該コマンドの実行が終了したことを、該コマンドの発行
    元のノードに通知する手段を持つことを特徴とする請求
    項1記載のマルチプロセッサ。
  5. 【請求項5】該各ノードは、自ノード内の主記憶の各ペ
    ージに対応し、該当するページが他のノードにキャッシ
    ングされている可能性があるかどうかを記憶するビット
    を持ち、 該ビットは、システムの初期化時はリセットされてお
    り、主記憶の該当するページが他のノードからアクセス
    された場合にセットされ、他ノードのキャッシュ上のデ
    ータをページ毎に一括して追い出すコマンドの実行が終
    了した際にリセットされ、 自ノードのCPUが自ノードの主記憶をアクセスする際
    は、該ビットを検査し、該ビットがセットされていた場
    合には、他のノードへのキャッシュコヒーレント制御を
    行い、該ビットがセットされていなかった場合には、他
    のノードへのキャッシュコヒーレント制御を抑止するこ
    とを特徴とする請求項4記載のマルチプロセッサ。
  6. 【請求項6】プログラムがページを使い終わった際に、
    該ページを主記憶上に持つノードのシステムプログラム
    が、該ページに対して、他ノードのキャッシュ上のデー
    タをページ毎に一括して追い出すコマンドを発行する手
    段を有することを特徴とする請求項1記載のマルチプロ
    セッサ。
  7. 【請求項7】他ノードのキャッシュ上のデータをページ
    毎に一括して追い出すコマンドを発行するノードが、自
    ノードの該当するページをゼロクリアする手段を持つこ
    とを特徴とする請求項1記載のマルチプロセッサ。
  8. 【請求項8】各ノードはCPUの外に外付けのキャッシ
    ュを持ち、 他ノードのキャッシュ上のデータをページ毎に一括して
    追い出すコマンドを受け取ったノードが、自ノード内の
    キャッシュ上の、該コマンドにより指定されたページに
    属するデータを、全てキャッシュから追い出す際に、該
    外付けキャッシュのTAG情報を用いて、不要なコマン
    ドの送出を抑止する手段を有することを特徴とする請求
    項1記載のマルチプロセッサ。
  9. 【請求項9】CPU、キャッシュおよび主記憶を持つ複
    数のノードと、ノード間を結ぶ結合機構とからなり、結
    合機構を使ってノード間でキャッシュコヒーレント制御
    を行うマルチプロセッサにおいて、各ノードが、 他ノードに指定されたアドレス範囲のキャッシュ上のデ
    ータを一括して追い出すことを指示する手段と、 該指示に対応して、指定されたアドレス範囲のキャッシ
    ュ上のデータを一括して追い出すことを指示するコマン
    ドを他ノードへ転送する手段と、 該コマンドを受け取り、自ノード内のキャッシュ上の、
    コマンドにより指定されたアドレス範囲に属するデータ
    を、全てキャッシュから追い出す手段を持つことを特徴
    とするマルチプロセッサ。
  10. 【請求項10】各ノードは、 CPUの外に外付けされたキャッシュと、 他ノードから指定されたアドレス範囲のキャッシュ上の
    データを一括して追い出すコマンドを受け取ったとき、
    自ノード内のキャッシュ上の、該コマンドにより指定さ
    れたアドレス範囲のデータを、全てキャッシュから追い
    出す際に、該外付けキャッシュのTAGの情報を用い
    て、不要なコマンドの送出を抑止する手段を有すること
    を特徴とする請求項9記載のマルチプロセッサ。
  11. 【請求項11】各ノードが、該外付けキャッシュのTA
    Gの情報を用いて不要なコマンドの送出を抑止する際
    に、該外付けキャッシュのTAGの各コラムを1回のみ
    アクセスする手段を有することを特徴とする請求項10
    記載のマルチプロセッサ。
  12. 【請求項12】CPUおよびキャッシュを持つ複数のノ
    ードと、該ノード間を結ぶ結合機構とを持ち、結合機構
    を使ってノード間でキャッシュコヒーレント制御を行う
    マルチプロセッサにおいて、各ノードが、主記憶上のペ
    ージに対して一括書込が行われていることを指示する一
    括書込指示手段と、該一括書込指示手段により指定され
    たページに対して、CPUからデータ読出と無効化を要
    求するキャッシュコマンドが到来した場合に、該コマン
    ドを無効化コマンドに変換した後に他ノードに伝達する
    手段、及び、該読出無効化要求に対してCPUにノード
    内からダミーデータを返す手段を持つことを特長とする
    マルチプロセッサ。
  13. 【請求項13】システムプログラムが、ページを初期化
    する際に、初期化するページ番号を該一括書込指示手段
    に与える手段を有することを特徴とする請求項12記載
    のマルチプロセッサ。
  14. 【請求項14】システムプログラムが、ページをコピー
    するする際に、コピーの宛先のページ番号を該一括書込
    指示手段に与える手段を有することを特徴とする請求項
    12記載のマルチプロセッサ。
  15. 【請求項15】CPUおよびキャッシュを持つ複数のノ
    ードと、該ノード間を結ぶ結合機構と、主記憶からな
    り、該結合機構を使って該ノード間でキャッシュコヒー
    レント制御を行うマルチプロセッサにおいて、各ノード
    が、 他ノードのキャッシュ上のデータをページ毎に一括して
    追い出すことを指示する手段と、該指示に対応して、他
    ノードにキャッシュ上のデータをページ毎に一括して追
    い出すことを指示するコマンドを転送する手段と、 該コマンドを受け取ったとき、自ノード内のキャッシュ
    上の、コマンドにより指定されたページに属するデータ
    を、全てキャッシュから追い出す手段を持つことを特徴
    としたマルチプロセッサ。
  16. 【請求項16】キャッシュからキャッシュラインを追い
    出す手段として無効化コマンドを用い、キャッシュから
    データを追い出す際に、他のノードにキャッシングされ
    ているデータは捨てる手段を有することを特徴とする請
    求項15記載のマルチプロセッサ。
  17. 【請求項17】キャッシュからキャッシュラインを追い
    出す手段としてFLUSHコマンドを用い、キャッシュ
    からデータを追い出す際に、他のノードにキャッシング
    されているデータを書き戻す手段を有することを特徴と
    する請求項15記載のマルチプロセッサ。
  18. 【請求項18】他ノードのキャッシュ上のデータをペー
    ジ毎に一括して追い出すコマンドを受け取ったノード
    が、該コマンドの実行が終了したことを、該コマンドの
    発行元のノードに通知する手段を持つことを特徴とする
    請求項15記載のマルチプロセッサ。
  19. 【請求項19】主記憶空間の各ページに対応し、該当す
    るページが他ノードにキャッシングされている可能性が
    あるかどうかをを示す情報を記憶するビットと、 該ビットをシステムの初期化時にセットする手段と、 主記憶の該当するページが他のノードからアクセスされ
    た場合に、該ビットをセットする手段と、 他ノードのキャッシュ上のデータをページ毎に一括して
    追い出すコマンドの実行が終了した際に、該ビットをリ
    セットする手段と、 自ノードのCPUが主記憶をアクセスする際に、該ビッ
    トを検査し、該ビットがセットされていた場合に、他の
    ノードへのキャッシュコヒーレント制御を行い、該ビッ
    トがセットされていなかった場合に、他のノードへのキ
    ャッシュコヒーレント制御を抑止する手段を有すること
    を特徴とする請求項15記載のマルチプロセッサ。
  20. 【請求項20】他ノードのキャッシュ上のデータをペー
    ジ毎に一括して追い出すことを指示する際に、ユーザモ
    ードのプログラムから該指示を行い、指定されたページ
    への書込み権限をチェックする手段を持つことを特徴と
    する請求項1記載のマルチプロセッサ。
  21. 【請求項21】主記憶上のページに対して一括書込が行
    われていることを指示する際に、ユーザモードのプログ
    ラムから該指示を行い、指定されたページへの書込み権
    限をチェックする手段を持つことを特徴とする請求項1
    2記載のマルチプロセッサ。
  22. 【請求項22】複数のノードと該ノード間を接続する手
    段からなり、各ノードが、CPUと、キャッシュと、該
    複数のノードからアクセスされる主記憶と、キャッシュ
    上のデータをアドレス範囲毎に一括して追い出すことを
    指示する指示手段と、指示手段からの指示に従い、ノー
    ド内のキャッシュ上の、指定されたアドレス範囲に属す
    るデータを、キャッシュから追い出す手段を有するマル
    チプロセッサ。
  23. 【請求項23】該指示手段は他ノードへ指示する手段で
    ある請求項22記載のマルチプロセッサ。
  24. 【請求項24】該指示する手段は、ユーザモードのプロ
    グラムからの要求に応答して動作する請求項23記載の
    マルチプロセッサ。
  25. 【請求項25】キャッシュからデータを追い出す際に、
    他のノードにキャッシングされているデータを無効化す
    る請求項23記載のマルチプロセッサ。
  26. 【請求項26】キャッシュからデータを追い出す際に、
    他のノードにキャッシングされているデータを書き戻す
    請求項23記載のマルチプロセッサ。
  27. 【請求項27】該アドレス範囲はページである請求項2
    2から請求項26までのいずれかに記載のマルチプロセ
    ッサ。
  28. 【請求項28】複数のノードと、該ノード間を結ぶ手段
    と、該複数のノードがアクセスするメモリからなり、各
    ノードが、CPUと、キャッシュと、キャッシュ上のデ
    ータをアドレス範囲毎に一括して追い出すことを指示す
    る指示手段と、指示手段からの指示に従い、ノード内の
    キャッシュ上の、指定されたアドレス範囲に属するデー
    タを、キャッシュから追い出す手段を有するマルチプロ
    セッサ。
JP10242862A 1998-08-28 1998-08-28 マルチプロセッサ Pending JP2000076205A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10242862A JP2000076205A (ja) 1998-08-28 1998-08-28 マルチプロセッサ
EP99116639A EP0982660A3 (en) 1998-08-28 1999-08-25 Multiprocessor system with plurality of nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10242862A JP2000076205A (ja) 1998-08-28 1998-08-28 マルチプロセッサ

Publications (1)

Publication Number Publication Date
JP2000076205A true JP2000076205A (ja) 2000-03-14

Family

ID=17095370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10242862A Pending JP2000076205A (ja) 1998-08-28 1998-08-28 マルチプロセッサ

Country Status (2)

Country Link
EP (1) EP0982660A3 (ja)
JP (1) JP2000076205A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
EP2339472A2 (en) 2009-12-25 2011-06-29 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
US9547576B2 (en) 2011-07-13 2017-01-17 Fujitsu Limited Multi-core processor system and control method
JP2018159989A (ja) * 2017-03-22 2018-10-11 日本電気株式会社 計算機システム及びキャッシュ・コヒーレンス方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871219B2 (en) * 2001-03-07 2005-03-22 Sun Microsystems, Inc. Dynamic memory placement policies for NUMA architecture

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
JP3200757B2 (ja) * 1993-10-22 2001-08-20 株式会社日立製作所 並列計算機の記憶制御方法および並列計算機

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
EP2339472A2 (en) 2009-12-25 2011-06-29 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
US8856478B2 (en) 2009-12-25 2014-10-07 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
US9547576B2 (en) 2011-07-13 2017-01-17 Fujitsu Limited Multi-core processor system and control method
JP2018159989A (ja) * 2017-03-22 2018-10-11 日本電気株式会社 計算機システム及びキャッシュ・コヒーレンス方法

Also Published As

Publication number Publication date
EP0982660A2 (en) 2000-03-01
EP0982660A3 (en) 2000-08-30

Similar Documents

Publication Publication Date Title
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
EP0817071B1 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US7657710B2 (en) Cache coherence protocol with write-only permission
EP0818733B1 (en) A multiprocessing system configured to perform software initiated prefetch operations
US9639470B2 (en) Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US11675700B2 (en) Cache coherence shared state suppression
US20070005899A1 (en) Processing multicore evictions in a CMP multiprocessor
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
US20090006668A1 (en) Performing direct data transactions with a cache memory
WO2013186694A2 (en) System and method for data classification and efficient virtual cache coherence without reverse translation
US6643741B1 (en) Method and apparatus for efficient cache management and avoiding unnecessary cache traffic
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
JP2000076205A (ja) マルチプロセッサ
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations
KR101192423B1 (ko) 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치