JPH05100952A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH05100952A
JPH05100952A JP3258819A JP25881991A JPH05100952A JP H05100952 A JPH05100952 A JP H05100952A JP 3258819 A JP3258819 A JP 3258819A JP 25881991 A JP25881991 A JP 25881991A JP H05100952 A JPH05100952 A JP H05100952A
Authority
JP
Japan
Prior art keywords
bus
memory
processor
data
cache memory
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
JP3258819A
Other languages
English (en)
Inventor
Katsuhiko Yanagisawa
克彦 柳沢
Atsushi Kasuya
淳 粕谷
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP3258819A priority Critical patent/JPH05100952A/ja
Publication of JPH05100952A publication Critical patent/JPH05100952A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 経済的で大規模なマルチ・プロセッサを有す
るデータ処理装置を提供する。 【構成】 データ処理装置を、複数のプロセッサ22
と、メモリ24と、それぞれのプロセッサ22ごとに配
置されメモリ24の一部領域のコピーを保持するキャッ
シュ・メモリ23と、スヌープ機構を有しこれらキャッ
シュ・メモリ23とメモリ24を結合するメモリ・バス
21と、このメモリ・バス21に接続されたバス・イン
ターフェース部25とからそれぞれ構成される複数のプ
ロセッサ・セグメント12と、これらを接続するシステ
ム・バス11とで構成する。プロセッサ・セグメント1
2ごとのバス・インターフェース部25には、システム
・バス12に接続された他のプロセッサ・セグメント1
2内のキャッシュ・メモリ23に保持されている自己の
プロセッサ・セグメント12内のデータのアドレス情報
を記憶するディレクトリ26が配置されている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマルチ・プロセッサのキ
ャッシュ上でのデータの不一致の発生を防ぐ機構を有す
るデータ処理装置に関する。
【0002】
【従来の技術】高性能のワークステーションのようにデ
ータの高速処理を必要とする装置の分野では、複数のプ
ロセッサを用いてデータ処理を行うようにしたマルチ・
プロセッサ形式を採用する傾向にある。これは、プロセ
ッサ自体の性能が向上しているものの、単独のプロセッ
サを用いてデータ処理を飛躍的に高速化することはかな
り困難なことによるものである。複数のプロセッサを用
いる場合には、各プロセッサとメモリとの間に高速のキ
ャッシュ・メモリを配置して、プロセッサとメモリ間の
バス(以下メモリ・バスという。)の使用頻度を下げる
工夫が一般的に採られている。
【0003】このような複数のプロセッサにそれぞれ対
応してキャッシュ・メモリが存在すると、各キャッシュ
・メモリ間に格納されているデータの間に不一致が発生
する可能性が生じる。こうした不具合を防止するため
に、従来から次の2つの方式が一般に知られている。
【0004】(1)スヌープ方式:各キャッシュ・メモ
リがメモリ・バス上のアクセスを監視する方式である。
【0005】(2)ディレクトリ方式:主記憶上のメモ
リ・ブロックごとにキャッシュ状態を記憶する方式であ
る。
【0006】このうち(1)のスヌープ方式について
は、例えばCache Coherence Protocols:Evaluation Usi
ng a Multiprocessor Simulation Model,James Archiba
ld & Jean-Laup Bare, ACM Transaction on Computer S
ystem.Vol4.NO.4 November 1986,page 273-298.にいろ
いろなスヌープ方式についての解説と性能の比較に関す
る記述がある。また、日経エレクトロニクス 1988 年11
月28日号P101〜121 の“100MPS時代へ向け胎動を始めた
マルチ・プロセッサ型ワークステーション”にも、今後
のワークステーションの方向性として、このスヌープ方
式のアーキテクチャについての説明が行われている。
【0007】また、(2)のディレクトリ方式について
は、例えばDierctory-Based CacheCoherence in Large
Scale Multiprocessor,D.Chaiken,C.Fields,K.Karinhar
a,A.Agarwal IEEEE Computer June 1990 Page 49 〜5
8.に各種ディレクトリ構成を含んだ説明が行われてい
る。
【0008】
【発明が解決しようとする課題】このうち(1)のスヌ
ープ方式では、すべてのキャッシュ・メモリがバス上の
すべてのアクセスを監視する。したがって、大規模なマ
ルチ・プロセッサにはその適用が難しいという問題があ
る。このような問題を避けるためにはキャッシュ・メモ
リを2段以上に階層化するといったような方式が採られ
るが、こうするとプロセッサと主記憶装置の間での実際
のデータ転送レートが低下してしまうという問題が発生
する。
【0009】これに対して(2)のディレクトリ方式で
は、キャッシュ・メモリのブロックサイズごとに主記憶
側にディレクトリ情報を保持する必要がある。このた
め、主記憶容量の増加とともに、この情報の保持に必要
な記憶素子の容量が膨大になる。したがって、このディ
レクトリ方式を用いて実用的なシステムを作成するのは
困難であり、実験あるいは研究用のシステムが作成され
るにとどまっている。
【0010】そこで本発明の目的は、経済的で大規模な
マルチ・プロセッサを有するデータ処理装置を提供する
ことにある。
【0011】
【課題を解決するための手段】請求項1記載の発明で
は、データ処理装置を、複数のプロセッサと、メモリ
と、それぞれのプロセッサごとに配置され前記メモリの
一部領域のコピーを保持するキャッシュ・メモリと、ス
ヌープ機構を有しこれらキャッシュ・メモリと前記メモ
リを結合するメモリ・バスと、このメモリ・バスに接続
されたバス・インターフェース部とからそれぞれ構成さ
れる複数のプロセッサ・セグメントと、これらのプロセ
ッサ・セグメントをこれらのバス・インターフェース部
を介して接続する共通のシステム・バスとで構成してい
る。そして、これらプロセッサ・セグメントごとのバス
・インターフェース部には、同一のシステム・バスに接
続された他のプロセッサ・セグメント内のキャッシュ・
メモリに保持されている自己のプロセッサ・セグメント
内のデータのアドレス情報を記憶するためのディレクト
リを配置している。
【0012】すなわち請求項1記載の発明では、複数の
プロセッサごとにキャッシュ・メモリを備えたプロセッ
サ・セグメントにおけるスヌープ機構を持ったメモリ・
バス間をシステム・バスで結合し、自己のプロセッサ・
セグメント外にキャッシュされている自己のメモリ・バ
ス上のデータを記憶するディレクトリを、自己のバス・
インターフェース部に配置したものである。
【0013】請求項2記載の発明では、データ処理装置
を、複数のプロセッサと、メモリと、このメモリの一部
領域のコピーを保持するキャッシュ・メモリと、スヌー
プ機構を有しこれら複数のプロセッサと、メモリおよび
キャッシュ・メモリを結合するメモリ・バスと、このメ
モリ・バスに接続されたバス・インターフェース部とか
らそれぞれ構成される複数のプロセッサ・セグメント
と、これらのプロセッサ・セグメントをこれらのバス・
インターフェース部を介して接続する共通のシステム・
バスとで構成している。そして、これらプロセッサ・セ
グメントごとのバス・インターフェース部には、同一の
システム・バスに接続された他のプロセッサ・セグメン
ト内のキャッシュ・メモリに保持されている自己のプロ
セッサ・セグメント内のデータのアドレス情報を記憶す
るためのディレクトリを配置している。
【0014】すなわち請求項2記載の発明では、複数の
プロセッサと、メモリおよびキャッシュ・メモリを結合
し、スヌープ機構を持ったメモリ・バス間をシステム・
バスで結合し、自己のプロセッサ・セグメント外にキャ
ッシュされている自己のメモリ・バス上のデータを記憶
するディレクトリを、自己のバス・インターフェース部
に配置したものである。
【0015】請求項3記載の発明では、データ処理装置
を、複数のプロセッサと、メモリと、このメモリと接続
されその一部領域のコピーを保持するキャッシュ・メモ
リと、スヌープ機構を有しこれら複数のプロセッサとキ
ャッシュ・メモリとを結合するメモリ・バスと、このメ
モリ・バスに接続されたバス・インターフェース部とか
らそれぞれ構成される複数のプロセッサ・セグメント
と、これらのプロセッサ・セグメントをこれらのバス・
インターフェース部を介して接続する共通のシステム・
バスとで構成している。そして、これらプロセッサ・セ
グメントごとのバス・インターフェース部には、同一の
システム・バスに接続された他のプロセッサ・セグメン
ト内のキャッシュ・メモリに保持されている自己のプロ
セッサ・セグメント内のデータのアドレス情報を記憶す
るためのディレクトリを配置している。
【0016】すなわち請求項3記載の発明では、複数の
プロセッサとキャッシュ・メモリとを結合しスヌープ機
構を持ったメモリ・バス間をシステム・バスで結合し、
自己のプロセッサ・セグメント外にキャッシュされてい
る自己のメモリ・バス上のデータを記憶するディレクト
リを、自己のバス・インターフェース部に配置したもの
である。
【0017】
【実施例】以下実施例につき本発明を詳細に説明する。
【0018】図1は本実施例におけるデータ処理装置の
構成を表わしたものである。このデータ処理装置は、シ
ステム・バス11と、これに接続されたプロセッサ・セ
グメント121 、122 、……12N から構成されてい
る。本実施例でそれぞれのプロセッサ・セグメント12
1 、122 、……12N は、同一の構成をしているの
で、次に第1のプロセッサ・セグメント121 について
その構成を代表的に説明する。なお、この明細書では特
に対象を限定して説明する必要がある場合を除いてデー
タ処理装置の各構成部品の添字を省いた形で説明を行う
ことにする。
【0019】第1のプロセッサ・セグメント121 のメ
モリ・バス211 には、3つのCPU22A1 、22B
1 、22C1 が対応するキャッシュ・メモリ23A1
23B1 、23C1 を介して接続されている。メモリ・
バス211 にはプログラムやデータを格納したメモリ2
1 も接続されている。各プロセッサ・セグメント12
1 、122 、……12N 上のメモリ241 は、それぞれ
別のアドレスを持っており、全メモリ241 、242
……24N は、単一のアドレス空間上にマッピングされ
るようになっている。
【0020】更に、このメモリ・バス211 にはシステ
ム・バス11と接続されたバス・インターフェース(B
IF)251 も接続されている。バス・インターフェー
ス251 には、自己のメモリ・バス211 上のメモリ2
1 内のデータが外部のキャッシュ・メモリ内に保持さ
れていることを記憶するためのディレクトリ261 が接
続されている。
【0021】さて、このような構成のデータ処理装置で
メモリ・バス21を介して行われるメモリ・アクセス
は、通常のスヌープ方式によるバス・プロトコルが用い
られる。(1)のスヌープ方式についての前記した先行
技術に示されるように、これについては各種のプロトコ
ルを考えることができる。本実施例では、キャッシュ・
メモリ23の書き込み時に、他のキャッシュ・メモリ2
3上のエントリを無効化する“Write Invaidate ”方式
を用いることにする。
【0022】次の表1は、メモリ・バス21で用いられ
る信号を示している。
【0023】
【表1】
【0024】このようなバス信号の他に、各プロセッサ
間でバスの使用権の調停を行うためのアービトレーショ
ン用の信号が必要であるが、これについての説明は省略
する。なお、表1の信号名の箇所に示した“*”は、負
論理の信号であることを表わす記号である。また、“A
D〔63:0〕”とは、アドレスおよびデータがマルチプ
レックスされた64ビットのバスであることを示してい
る。“AS*”は、C22あるいはキャッシュ・メモリ
23がAD〔63:0〕上にアドレス情報を出力したこと
を示す信号である。この“AS*”が出力されたとき
を、アドレス・フェーズと呼ぶ。このときAD〔63:
0〕上には次の表2に示すように、アクセスのための情
報が出力されるものとする。
【0025】
【表2】
【0026】“ACK*”は、アクセスが完了したこと
を知らせる信号であり、バス・スレーブから出力され
る。Err*は、アクセスが異常終了したことを知らせ
る信号である。ACK*とErr*が同時に出力される
場合をR&R(Relinguish andRetry)と呼ぶ。この場
合、メモリ・バス21の使用を管理する管理者としての
バス・マスタは、一旦バスの使用権を開放した後に再び
アクセスをやり直す。この機構により、バス使用権の取
り合いによるデッド・ロックを回避することができる。
【0027】“Shr*”は、複数のキャッシュ・メモ
リ23上にアクセス中のデータが保持されている信号で
ある。この信号は、全キャッシュ・メモリ23からオー
プン・コレクタ出力によってドライブされる。メモリ・
バス21上のキャッシュ・メモリ23は、バス上のアク
セスを監視し、自分のキャッシュ・メモリ23内に保持
されているアクセスを検知した場合、この信号を出力す
るようになっている。
【0028】“OWN*”は、アクセス中のデータが別
のキャッシュ・メモリ23上で更新されていることを示
す信号である。この信号は、更新されたデータを保持す
るキャッシュ・メモリ23から出力される。この場合、
メモリ24上のデータは最新のものではないので、この
データはキャッシュ・メモリから返される。CLKは、
メモリ・バス21上の同期クロックである。
【0029】次に、表2に示したアドレス・フェーズで
の情報について説明する。ADR〔31:0〕は、アクセ
ス対象となるアドレスを指定するフィールドである。T
YPE〔3:0 〕は、アクセスするタイプを指定するフィ
ールドであり、次の表3のようにデコードされる。ID
〔3:0〕は、バス上のデバイスIDである。
【0030】
【表3】
【0031】アクセス・タイプの説明
【0032】表3における“WR”は、CPU22とキ
ャッシュ・メモリ23からメモリ24に対する書き込み
を意味し、更新されたキャッシュ・エントリのリプレー
ス時の書き戻し等に使用される。“RD”は、キャッシ
ュの対象とならないメモリ・エリアへの読み出しを意味
し、キャッシュ・メモリ23のスヌープ動作の対象外で
ある。“CI”は、すべてのキャッシュ・メモリ23へ
のエントリの無効化要求であり、キャッシュ・メモリ2
3がこのアドレスのコピーを保持していた場合には、そ
のエントリが無効化される。
【0033】“CR”は、キャッシュ対象エリアへの読
み出しを意味する。他のキャッシュ・メモリ23内にこ
のアドレスのデータが保持されている場合、そのキャッ
シュ・メモリ23はSHR*を出力する。また、他のキ
ャッシュ・メモリ23上でデータが更新された場合に
は、そのキャッシュ・メモリ23はSHR*とOWN*
信号を出力して更新されたデータを返送する。この場
合、OWN*信号によって、メモリ24は読み出しの動
作を行わない。
【0034】“CRI”は、読み出しとエントリの無効
化を同時に行うアクセスを意味する。このアドレスを保
持するキャッシュ・メモリ23は、そのエントリを無効
化する。他のキャッシュ・メモリ23上でデータが更新
された場合には、OWN*信号を出力し、更新されたデ
ータを返した後に、そのエントリを無効化する。
【0035】バス・シーケンスの説明
【0036】図2は、以上のようなメモリ・バスの構成
による実際のバス・アクセスのシーケンスを表わしたも
のである。このうち同図(a)は通常のRDサイクル
(シーケンス)を表わしている。このRDシーケンスで
は、前記したバス・マスタがアドレス情報をADに出力
し、AS*をこれに応じて出力すると、同じく前記した
バス・スレーブがデータを返してACK*を出力するよ
うになっている。
【0037】同図(b)は、WRサイクル(シーケン
ス)を表わしたものである。バス・マスタがAS*を出
力したと同時にアドレス情報がAD上に出力され、続い
て書込データが出力される。バス・スレーブは書き込み
が完了した時点でACKを返し、バス・マスタは次の書
込データを出力する。
【0038】同図(c)は、CRサイクル(シーケン
ス)を表わしたものである。この図には他のキャッシュ
・メモリ23からOWN*信号が出力された場合を示し
てある。この場合、データはOWN*信号を出力したキ
ャッシュ・メモリ23から替えされることになる。
【0039】この図2に示したように、メモリ・バス2
1のアクセスは32バイト単位(64ビットバス=8バ
イト×4バス転送)で行われるものとする。また、これ
に伴って、各キャッシュ・メモリ23のブロック・サイ
ズは32バイトであるものとする。
【0040】キャッシュ・コンシステンシィについての
説明
【0041】以上説明したバイト・アクセスを用いて、
メモリ・バイト21上のキャッシュ・メモリ23は常に
自分がストアしているキャッシュ・エントリが他のキャ
ッシュ・メモリ23と共有のものであるかどうかを管理
し、データの不一致が発生しないように制御を行う。
【000★】図3は、キャッシュ・エントリがCPUお
よびメモリ・バスの動作に対して取るべき状態遷移を示
したものである。この図の中で示した(1)〜(14)
の記号はキャッシュ・メモリ23の状態であり、これは
次の表4のように定義される。
【0042】
【表4】
【0043】この図3内の矢印は、各状態からの遷移を
表わしたものである。次の表5〜表7は各遷移トリガを
示している。
【0044】
【表5】
【0045】
【表6】
【0046】
【表7】
【0047】以上の制御シーケンスによって、キャッシ
ュ・メモリ23上のデータが更新される場合、唯一のキ
ャッシュ・メモリ23にのみそのデータが存在すること
が保証され、キャッシュ・メモリ23間のデータの不一
致が避けられる。
【0048】以上説明したスヌープ方式の技術は公知の
ものであり、すでに多くの実システムが存在している。
したがって、以上の説明は次に述べるシステム・バス1
1の動作の理解の手助けとして行ったものである。
【0049】バス・インターフェースの説明
【0050】各メモリ・バス21上のキャッシュ・メモ
リ24は、以上説明したように通常のスヌープ機構を持
ったマルチ・プロセッサ・システムとして動作する。こ
れに対して、バス・インターフェース25(図1)は、
メモリ・バス21に対して1つのキャッシュ・メモリで
あるかのように振る舞いながら、全セグメントを単一空
間のシェアド・メモリ・マルチ・プロセッサ・システム
として動作させる。
【0051】CPU22は命令あるデータのアクセスを
行うとき、これが自己のプロセッサ・セグメント内のキ
ャッシュ・メモリ23あるいはメモリ24上に存在する
場合には、これを読み出すことは当然である。これ以外
の場合、各バス・インターフェース25は、システム・
バス11を介して他のプロセッサ・セグメント12内の
バス・インターフェース25に要求を出すことになる。
この相手側のバス・インターフェース25は、自分のメ
モリ・バス21上のデータが他のプロセッサ・セグメン
ト12内のメモリ・バス21上のキャッシュ・メモリ2
3に保持されていることをディレクトリ26上に記憶し
ておくことによって、キャッシュ・コンシステンシィを
保つ。
【0052】ディレクトリ構造の説明
【0053】通常のディレクトリ方式では、メモリの全
ブロックに1つずつディレクトリがある。本実施例のデ
ィレクトリ26は、限られた数のエントリした持たな
い、いわゆるキャッシュ的な動作を行う。したがって、
あるメモリ・バス21から同時に外部のキャッシュ・メ
モリ23に保持できるデータの数には制限がある。
【0054】ここで、このディレクトリ26が1024
エントリ×4ウェイ(way)のセット・アソシエイテ
ィブ・キャッシュ構造をとることにする。先に説明した
ように、キャッシュ・メモリ23のブロック・サイズを
32バイトとすると、表2に定めたADR〔31:0〕
のアドレスは、ADR〔4:0〕がブロック内バイトオ
フセットを指し、ADR〔14:5〕が1024のキャ
ッシュ・ラインを選ぶのに用いられる。残りのADR
〔31:15〕がキャッシュ・メモリ23内に保持され
るタグに分類される。
【0055】次の表8は、ディレクトリ26内の1エン
トリに保持されているデータを示している。
【0056】
【表8】
【0057】ここでSID〔3:0〕は、各バス・イン
ターフェース25ごとにユニークに割り当てられる識別
コードを保持するためのフィールドである。これは、先
に示したメモリ・バス21上のデバイス・コードとは別
のものである。
【0058】次にフィールドの値と定義について説明す
る。
【0059】(イ)Valid =0のとき、このエントリは
無効であり、残りのフィールドは意味を持たない(Inva
lid )。
【0060】(ロ)Valid =1、Dirty =0、Multi =
0のとき、このエントリで示されるデータ・ブロック
が、SID〔3:0〕で示されるバス・インターフェー
ス25上のキャッシュ・メモリ23に保持されている。
キャッシュ・メモリ23上のデータは更新されていない
(Clean Single状態)。
【0061】(ハ)Valid =1、Dirty =0、Multi =
1のとき、このエントリのデータ・ブロックは、複数の
バス・インターフェース25上のキャッシュ・メモリ2
3に保持されている。これは、同一のバス・インターフ
ェース25上の複数のキャッシュ・メモリ23A〜23
Cではなく、あくまでも別のメモリ・バス21上のキャ
ッシュ・メモリ23である。この状態で、キャッシュ・
メモリ23上のデータは更新されていない(CleanMulti
ple状態)。この場合には、SID〔3:0〕の情報は
意味を持たない。
【0062】(ニ)Valid =1、Dirty =1、Multi =
0のとき、このエントリのデータはSID〔3:0〕で
示されるバス・インターフェース25上のキャッシュ・
メモリ23に保持され、データはキャッシュ・メモリ2
3上で更新されている(Dirty Single)。
【0063】(ホ)Valid =1、Dirty =1、Multi =
0のとき、データはSID〔3:0〕のバス・インター
フェース25上のキャッシュ・メモリ23で更新され、
他のバス・インターフェース25上のキャッシュ・メモ
リ23にもコピーが保持されている(Dirty Multiple状
態)。
【0064】システム・バス信号の説明
【0065】各バス・インターフェース25間を接続す
るシステム・バス11は、バス・マスタが発行した要求
を処理するために、バス・スレーブが更に別のバス要求
を発行する機能をもっている。次の表9に本実施例で用
いられているシステム・バス信号を示す。
【0066】
【表9】
【0067】ここで“SYAD〔63:0〕”とは、6
4ビット構成のアドレスやデータを時分割で転送するた
めのマルチプレックス・バスを指す。“MAS*”と
は、システム・バス・マスタがSYAD〔63:0〕に
アドレス情報を出して、マスタ・バス・トランザクショ
ンを開始したことを示す信号である。“MACK*”と
は、システム・バス・スレーブがマスタ・バス・トラン
ザクションの完了を示すための信号である。“MERR
*”とは、システム・バス・スレーブがマスタにマスタ
・バス・トランザクションのエラーの終了を通知するた
めの信号である。
【0068】“SAS*”とは、システム・バス・スレ
ーブが、マスタ・バス・トランザクションの処理のため
に、SYAD〔63:0〕にアドレス情報を出力し、ス
レーブ・バス・トランザクションを開始したことを示す
信号である。“SACK*”とは、スレーブ・バス・ト
ランザクションのアクセス先である2次スレーブがトラ
ンザクションの終了を示すための信号である。“SER
R*”とは、2次スレーブがスレーブ・バス・トランザ
クションのエラー終了を知らせる信号である。
【0069】“SAVD*”とは、スレーブがマスタに
対して、2次スレーブからのSACK*およびSERR
*の組み合わせデータをもって、マスタ・バス・トラン
ザクションの終了とすることを知らせる信号である。
“IBSY*”とは、システム・バス11でのインバリ
デート・リクエストの処理中であることを知らせる信号
である。各バス・インターフェース25からオープン・
ドレイン・ゲートにてドライブされ、全バス・インター
フェース25上での処理が終了した時点でネゲートされ
る。
【0070】“SBSY*”とは、バス・マスタがバス
を使用中であることを示す信号である。“ARB〔5:
0〕”とは、アービトレーション・バスを示す。このバ
スは各バス・インターフェース25上のアービトレーシ
ョン回路(後に図6で説明する。)を介してオープン・
コレクタ・ゲートにてドライブされ、バス上の唯一のバ
ス使用権者を選択する。
【0071】“ABS*”とは、アービトレーション・
ストローブを示す。ARB〔5:0〕を使用したアービ
トレーション・サイクルの実施中であることを示してい
る。各バス・インターフェース25は、ABS*が出力
されていないことを検知した次のクロック・エッジから
ABS*を出力して、アービトレーション・サイクルを
開始することができる。“ABRQ*”とは、アービト
レーション・リクエストを示す。この信号は現在進行中
のアービトレーション・サイクルを中断し、再度やり直
しをリクエストするために用いられる。この信号を出力
することができるのは、SBSY*とABS*とがとも
に出力されていることを検知した場合に限る。この信号
を検知したアービトレーション参加者は、一旦、ABS
*をネゲートして、再度アービトレーション・サイクル
をやり直す。
【0072】バス・アドレス情報の説明
【0073】MAS*およびSAS*が出力されたと
き、SYAD〔63:0〕上には次の表10に示すアド
レス情報が出力される。
【0074】
【表10】
【0075】ここで“ADR〔31:0〕”とは、32
ビットのアクセス・アドレスが出力されることを示して
いる。“MI”とは、インバリデートを要求する対象
が、システム・バス11上の全バス・インターフェース
25であることを示すビットである。このビットが有効
になるのは、次に示す表11のSINおよびSTRIコ
マンドのときだけである。TYPE〔3:0〕は、シス
テム・バス11上のアクセス・タイプを示している。タ
イプは、次の表11のようにデコードされる。
【0076】
【表11】
【0077】TID〔3:0〕とは、特定のバス・イン
ターフェース25に対して、アクセスを指定するフィー
ルドをいう。このフィールドが有効なアクセスは、SI
N、STRおよびSTRIのみである。ただし、SIN
とSTRIアクセスで、MIビットが“1”の場合に
は、全バス・インターフェース25に対するインバリデ
ート要求となる。SID〔3:0〕とは、バス・トラン
ザクションを開始したバス・インターフェース25のI
Dを出力することを示している。
【0078】アクセス・タイプの説明
【0079】表11に示したアクセス・タイプは次のよ
うに定義される。
【0080】“SWR”は、システム・バス11経由
で、他のメモリ・バス21上のメモリ24へデータを書
き込む要求である。
【0081】“SRD”は、システム・バス11経由
で、他のメモリ・バス21上のメモリ24へデータを読
み出す要求である。
【0082】“SAR”は、他のメモリ・バス21上
のデータへの書き込み権の要求である。
【0083】“SCR”は、外部メモリ・バス21上
のデータに対するコヒーレント・リードを要求するリク
エストである。キャッシュ・メモリ23上でデータが更
新された場合には、最新のデータが返されなければなら
ない。
【0084】“SCRA”は、外部メモリ・バス21
上、データへのコヒーレント・リードと書き込み権を要
求するものである。データがキャッシュ・メモリ23上
で更新されていた場合、その最新のデータが返される。
このとき、この更新されたデータについて、更新される
前のデータのコピーを保持するすべてのキャッシュ・メ
モリ23の内容は、最新のデータとは異なることになる
ので無効化されなければならない。
【0085】“SIN”は、外部メモリ・バス21上
のキャッシュ・メモリ23へのインバリデートを要求す
るものである。MIビットが“0”の場合、TID
〔3:0〕で指定されるバス・インターフェース25上
のキャッシュ・メモリ23のみが対象となる。MIビッ
トが“1”の場合、全てのバス・インターフェース25
がインバリデートの処理を行う。
【0086】“STR”は、外部メモリ・バス21上
のキャッシュ・メモリ23からデータを読み出す要求で
ある。TID〔3:0〕で指定されるバス・インターフ
ェース25上のキャッシュ・メモリ23が読み出しの対
象である。
【0087】“STRI”は、STRとSINを同時
に行う要求である。MIビットが“0”の場合、TID
〔3:0〕のバス・インターフェース25のみが対象と
なる。MIビットが“1”の場合、TID〔3:0〕の
バス・インターフェース25上のキャッシュ・メモリ2
3が読み出しの対象であり、他のバス・インターフェー
ス25もインバリデート処理を行う。
【0088】以上のアクセス・タイプのうち〜のみ
がスレーブ・バス・トランザクションに用いられる。
【0089】システム・バス・トランザクション・シー
ケンスの説明
【0090】図4および図5は、以上のシステム・バス
信号を用いて行われるバス・トランザクション・シーケ
ンスを説明するためのものである。バス・トランザクシ
ョン・シーケンスは、次の規則に従って動作する。
【0091】マスタ・バス・トランザクションは、M
AS*の出力で開始され、MACK*(またはMERR
*)にて終了する(図4(a))。
【0092】SWR・マスタ・トランザクションでの
書き込みデータは、アドレス・フェーズに引続き連続し
て転送され、MACK*によるハンドシェークは行わな
い。MACK*は全処理の終了時t1 に返される(図4
(b))。
【0093】SRD、SCR、SCRA、STRおよ
びSTRIのトランザクションにおけるスレーブ(また
は2次スレーブ)からの読み出しデータについては、M
ACK*(またはSACK*)によるハンドシェークが
行われる。バス転送は32バイトのみであるため、4回
の転送完了にてトランザクションが終了する(図4
(c))。
【0094】マスタ・トランザクションの処理のた
め、スレーブはSAS*を用いて、スレーブ・トランザ
クションを開始することができる。スレーブ・トランザ
クションは、SAS*の出力で開始され、SACK*
(またはSERR*)にて終了する(図4(d))。
【0095】SINおよびSTRIのアクセス時に、
MIが“1”の場合、バス・マスタを除いたすべてのバ
ス・インターフェース25がインバリデートの対象とな
る。バス・インターフェース25はこの条件を検知した
とき、直ちにIBSY*を出力し、各メモリ・バス21
上でCI(コヒーレント・インバリデート)を実行す
る。マスタはIBSY*のネゲートを待ってから、SB
SY*をネゲートし、バスを開放する(図5(e))。
【0096】スレーブ・トランザクションを発行した
スレーブは、SAVD*を出力することによって、2次
スレーブからのSACK*(またはSERR*)をもっ
て、MACK*(MERR*)とすることができる。こ
れによって2次スレーブからの応答をマスタに直接引き
渡すことができる(図5(f))。なお、図5(f)に
おける時刻t2 は、マスタ・トランザクションの完了の
時刻を表わしている。
【0097】以上のシーケンスに従って、各バス・イン
ターフェース25はシステム・バス11上でのデータ転
送を行う。
【0098】アービトレーション・シーケンスの説明
【0099】各バス・インターフェース25は、メモリ
・バス21上のアクセスによってシステム・バス11に
よるアクセスが必要になったとき、バス・アービトレー
ションを行う。本実施例でのアービトレーションは、S
BSY*、ABS*、ARB〔5:0〕およびABRQ
*で行われる。以下アービトレーションの動作について
説明するが、これらは本発明での特別な方式ではなく、
公知の技術であり、ほじで説明するシステム全体の理解
を容易にするためのものである。
【0100】バス使用権の必要なバス・インターフェー
ス25は、ABS*がネゲートされたことを検知後、A
RB〔5:0〕にアービトレーション・コードを出力
し、ABS*をアサートしてアービトレーションに参加
する。ARB〔5:0〕は、上位2ビットがプライオリ
ティであり、下位4ビットに各バス・インターフェース
25のIDが出力されるようになっている。これらはア
ービトレーション回路に入力される。
【0101】図6は、アービトレーション回路の構成を
表わしたものである。アービトレーション回路41は、
各位に対応したビットID
〔0〕〜ID〔3〕、PR
〔0〕、PR〔1〕を入力する2入力オアゲート421
〜426 およびアンドゲート431 〜436 を備えてい
る。各アンドゲート431 〜436 の出力端子にはオー
プン・コレクタ・ゲート441 〜446 の入力側が配置
されており、その出力側はインバータ451 〜456
介して対応する2入力オアゲート421 〜426 のもう
一方の入力端子に接続されている。また、このアービト
レーション回路41では、各アンドゲート431 〜43
6 にイネーブル信号が入力される他、アンドゲート43
5 にはオアゲート426 の出力が、またアンドゲート4
4 にはアンドゲート426 および425 の出力が、更
にアンドゲート433 にはアンドゲート426 、425
および424 の出力がそれぞれ入力されるようになって
いる。アンドゲート432 および431 についても同様
に入力が増加している。そして、更に他のアンドゲート
46には、イネーブル信号とオアゲート421 、42 3
〜426 の各出力信号が入力され、WIN信号が出力さ
れるようになっている。
【0102】この図6に示したアービトレーション回路
41では、上位ビットより自己出力とバス・データを比
較し、データが不一致のときにはそのビットより下位の
出力を禁止するようになっている。バスはオープン・コ
レクタでドライブされるため、常にバス上では“0”出
力が優先し、ARB〔5:0〕=“000000”が最
も高いプライオリティを持つ。アービトレーションは、
バスが安定状態に達するまで待ち、最終的に、この図6
に示したアービトレーション回路41にWIN信号を得
たバス・インターフェース25がバスの使用権を持つこ
とになる。
【0103】ARB〔5:4〕の2ビットは、プライオ
リティで、4レベルのプライオリティをサポートする。
最高プライオリティARB〔5:4〕=“00”は、後
に説明するディレクトリ・エントリのインバリデート処
理のために用いられる。ABRQ*信号は、システム・
バス11のトランザクション処理中に、このインバリデ
ート要求が発生したとき、現在決定している次のバス使
用者を無効化し、再度アービトレーション・サイクルを
やり直すために用いられる。
【0104】図7は、一連のアービトレーション・シー
ケンスを表わしたものである。サイクル“0”で、前の
バス使用者がSBSY*を開放し、アービトレーション
の勝者(WIN0)がSBSY*をサイクル“1”より
出力してバスを使用し始める。これと同時に、WIN0
はABS*およびARB〔5:0〕をネゲートする。サ
イクル“2”にて、バス要求を持つバス・インターフェ
ース25は、ABS*のネゲートを検知し、ABS*お
よび自己のアービトレーション値を出力して、次のアー
ビトレーション・サイクルを開始する。
【0105】サイクル“4”にて、勝者(WIN1)が
決定するが、サイクル“5”でアービトレーションの再
リクエスト(ABRQ*)が発生し、全バス・インター
フェース25は、ABS*をネゲートし、再びアービト
レーションをやり直す。サイクル“9”で新しい勝者
(WIN2)が決定し、サイクル“11”からバスを使
用し始める。
【0106】本実施例にこのアービトレーション方式を
用いた理由は、(i)中央アービタのような特別な機構
が必要なく、システムの拡張性が高い他、(ii)複数
のプライオリティ・レベルが取り扱えるため、緊急の処
理に対応可能である等による。もちろん、この方式を用
いる必要は必ずしも存在せず、例えば通常用いられてい
る各バス・ユーザごとの専用線と中央アービタによる方
式でも構わない。
【0107】メモリ・バスに対するバス・インターフェ
ースの動作
【0108】バス・インターフェース25は、以上説明
したバスの動作に従って、キャッシュ・メモリ23間の
記憶内容の不一致が発生しないように制御を行う。ま
ず、自分のメモリ・バス21上のトランザクションに対
して、どのように動作するかについて説明を行う。
【0109】表3で示したメモリ・バス21上のトラン
ザクションに対して、バス・インターフェース25が動
作する必要のあるアドレス条件は、次の表12のように
なる。これ以外のアドレスは、CPU22、キャッシュ
・メモリ23およびメモリ24間のみで解決する。
【0110】
【表12】
【0111】表3のメモリ・バス・トランザクション
と、表12のアドレス条件に対して、バス・インターフ
ェース25は次の表13および表14に示す動作を行
う。
【0112】
【表13】
【0113】
【表14】
【0114】以上のように振る舞うことで、バス・イン
ターフェース25はメモリ・バス21上からは1つのキ
ャッシュ・メモリ23のように見える。
【0115】バス・インターフェースのシステム・バス
に対する動作
【0116】表13および表14のような動作によっ
て、各バス・インターフェース25はシステム・バス1
1上に表11に示すタイプのトランザクションを発生さ
せる。これに対して、要求を受ける側のバス・インター
フェース25上のディレクトリ条件は、次の表15のも
のが考えられる。
【0117】
【表15】
【0118】ここで、表11のトランザクション・タイ
プのうち、SIN、STRおよびSTRIは、自己メモ
リ・バス21のエリアではなく、アドレス・フェーズの
TIDおよびMIフィールドによって動作が定まる。次
の表16はこれを表わしたものである。
【0119】
【表16】
【0120】それ以外のアクセス・タイプについては、
自己メモリ・バス21のアドレスに対し、表14のディ
レクトリ条件に対して、次の表17および表18のよう
に動作する。
【0121】
【表17】
【0122】
【表18】
【0123】表18において、(♯)の箇所について
は、システム・バス11へのSINは、SIDと、エン
トリ内のIDが一致した場合には不要である。また、
(♯♯)の箇所については、SIDとエントリ内のID
が一致した場合には、Multiビットはセットしな
い。
【0124】ところで、表17および表18において
は、新エントリを作成する場合、4ウェイ・セット・ア
ソシエイティブの構成をとる。ディレクトリには、空が
ない場合が発生する。この場合には、4つのエントリか
ら1つを選び、そのエントリを無効化する必要がある。
なお、選択にはランダム、LIFO(後入れ先出し)、
LRU(日本語名あるいはフルネーム???)等
の各種の方法を採ることができる。エントリの無効化の
操作は、バス・インターフェース25内に設けられたイ
ンバリデート・ペンディング・バッファ(IPB)を用
いて行われる。以下にその処理手順を示す。
【0125】(a)選ばれたエントリの内容が、インバ
リデート・ペンディング・バッファにコピーされる。
【0126】(b)インバリデート・ペンディング・バ
ッファのインバリデートは、アービトレーションの最高
プライオリティを持つ。インバリデート・ペンディング
・バッファにエントリがコピーされた場合、ABRQ*
を用いてアービトレーションを再度行い、確実に現在処
理中の次のバス使用権がインバリデート・ペンディング
・バッファ処理に渡るようにする。
【0127】(c)インバリデート・ペンディング・バ
ッファ上のエントリは、メモリ・バス21上のトランザ
クションをスヌープする機能を持つ。メモリ・バス21
上のCRまたはCRIがエントリにヒットしてDビット
が“1”の場合には、バスへSHR*およびOWN*を
出力し、メモリが応答するのを禁止した後、先に説明し
たR&Rアクノリッジを返し、アクセスのリライトを要
求する。この操作は、インバリデートが終了するまで行
われ、インバリデート・ペンディング・バッファ上のエ
ントリが無効になった後は、通常のメモリ・バス上のメ
モリ・アクセスとなる。
【0128】(d)インバリデート・ペンディング・バ
ッファ上のエントリのDirty が“0”の場合には、シス
テム・バス11に対してSIN要求を出力する。Dirty
が“1”の場合、システム・バス11にSTRI要求を
出し、更新されたデータを読み取り、メモリ・バス21
上のメモリ24にWRで書き戻す。
【0129】以上により、新しいエントリの作成のため
の旧エントリは、次のシステム・バス・トランザクショ
ンで確実にインバリデートされ、それぞれのキャッシュ
・メモリ23間でのデータの不一致等の不都合は生じな
い。
【0130】これまで、バス・インターフェース25の
動作を中心に説明を行った。次にディレクトリの状態遷
移について説明する。
【0131】ディレクトリ状態遷移の説明
【0132】図8は、ディレクトリの1エントリの状態
遷移を表わしたものである。この図に示した各矢印での
動作を次の表18〜表20に示す。
【0133】
【表19】
【0134】
【表20】
【0135】
【表21】
【0136】以上のような操作を行うことによって、メ
モリ・バス21上のみのスヌープ動作と同様に、キャッ
シュ・メモリ23上でデータが行進されるときに唯一の
キャッシュ・メモリ23にのみそのデータが存在するこ
とが保証され、キャッシュ・メモリ23間でのデータの
不一致が発生しない。これを図3に示したキャッシュ・
メモリの状態遷移において、説明する。外部メモリ・バ
ス21へのCR時には、必ずSHR*が出力されるの
で、(1)の遷移は発生せず、必ず(2)の遷移とな
る。従って、キャッシュ・メモリ23上での更新を検知
することのできない(4)の遷移は発生しないことにな
り、必ず更新時に唯一のデータであることが保証される
ためである。
【0137】なお、実施例ではライト・インバリデート
(Write Invalidate) 方式のスヌープ機構を持ったメモ
リ・バスを用いたが、ライト・ブロードキャスト(Writ
e Broadcast )方式等、他のスヌープ機構にも本発明を
適用することが可能である。この場合には、システム・
バス上のプロトコル等に変更が必要であるが、外部キャ
ッシュ・メモリに存在しているデータのディレクトリを
管理して、キャッシュ・メモリ上のデータの不一致の発
生を避けるという基本構成に変わりはない。
【0138】また、実施例では64ビット幅のパラレル
・バスを用いることにしたが、シリアル・バス等のよう
に全く異なったバス構成に対しても本発明を適用するこ
とができる。更に、実施例ではキャッシュ・メモリを介
してCPUをメモリ・バスに接続したが、プロセッサ・
セグメント内のキャッシュ・メモリの配置についてはこ
れに限るものではない。これらについての変形例を次に
説明する。
【0139】変形例
【0140】図9は、本発明の第1の変形例におけるデ
ータ処理装置の構成を表わしたものである。この第1の
変形例では各CPU22A〜22Cに1つずつ対応する
キャッシュ・メモリは存在せず、各CPU22A〜22
Cはメモリ・バス21に直接接続されている。メモリ・
バス21にはこれらのCPU22A〜22Cに共通する
キャッシュ・メモリ23Dが配置されている。各プロセ
ッサ・セグメント12 1 〜12N はこのような変更点を
有している。それぞれのプロセッサ・セグメント121
〜12N 内のバス・インターフェース251 〜25N
は、自己のメモリ・バス211 〜21N 上のメモリ24
1 〜24N 内のデータが外部のキャッシュ・メモリ内に
保持されていることを記憶するためのディレクトリ26
1 〜26 N が接続されているのは先の実施例と同様であ
る。
【0141】図10は、本発明の第2の変形例における
データ処理装置の構成を表わしたものである。この第2
の変形例でも各CPU22A〜22Cに1つずつ対応す
るキャッシュ・メモリは存在せず、各CPU22A〜2
2Cはメモリ・バス21に直接接続されている。メモリ
24は、これらのCPU22A〜22Cに共通するキャ
ッシュ・メモリ23Eを介してメモリ・バス21に接続
されている。各プロセッサ・セグメント121 〜12N
はこのような変更点を有している。それぞれのプロセッ
サ・セグメント121 〜12N 内のバス・インターフェ
ース251 〜25N には、自己のメモリ・バス211
21N 上のメモリ241 〜24N 内のデータが外部のキ
ャッシュ・メモリ内に保持されていることを記憶するた
めのディレクトリ261 〜26N が接続されているのは
先の実施例および第1の変形例と同様である。
【0142】
【発明の効果】このように本発明によれば、データ処理
装置を複数のプロセッサ・セグメントとこれらを接続す
るシステム・バスで構成したので、それぞれのプロセッ
サ・セグメント内における各メモリ・バス上にローカル
に存在するデータについては、システム・バスの介在な
しに処理することができ、高速なアクセスが可能であ
る。したがって、大規模なマルチ・プロセッサを構成し
た場合や、速度の遅いシステム・バスを採用した場合で
も、ソフトウェアの最適化等の手法によってデータ処理
装置の性能低下を最小限に抑えることができるという効
果がある。
【図面の簡単な説明】
【図1】 本実施例におけるデータ処理装置の構成を表
わしたブロック図である。
【図2】 本実施例のメモリ・バスの構成によるバス・
アクセスのシーケンスを表わしたタイミング図である。
【図3】 キャッシュ・エントリがCPUおよびメモリ
・バスの動作に対して取るべき状態遷移を示した説明図
である。
【図4】 本実施例でシステム・バス信号を用いて行わ
れるバス・トランザクション・シーケンスを表わした説
明図である。
【図5】 本実施例でシステム・バス信号を用いて行わ
れるバス・トランザクション・シーケンスを表わした説
明図である。
【図6】 本実施例におけるアービトレーション回路の
構成を表わした回路図である。
【図7】 本実施例における一連のアービトレーション
・シーケンスを表わしたタイミング図である。
【図8】 本実施例におけるディレクトリの1エントリ
の状態遷移を表わした説明図である。
【図9】 本発明の第1の変形例におけるデータ処理装
置の構成を表わしたブロック図である。
【図10】 本発明の第2の変形例におけるデータ処理
装置の構成を表わしたブロック図である。
【符号の説明】
11…システム・バス、12…プロセッサ・セグメン
ト、21…メモリ・バス、22…CPU、23…キャッ
シュ・メモリ、24…メモリ、25…バス・インターフ
ェース

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと、メモリと、それぞ
    れのプロセッサごとに配置され前記メモリの一部領域の
    コピーを保持するキャッシュ・メモリと、スヌープ機構
    を有しこれらキャッシュ・メモリと前記メモリを結合す
    るメモリ・バスと、このメモリ・バスに接続されたバス
    ・インターフェース部とからそれぞれ構成される複数の
    プロセッサ・セグメントが、それぞれの前記バス・イン
    ターフェース部を介して共通のシステム・バスと接続さ
    れており、これらプロセッサ・セグメントごとのバス・
    インターフェース部には、前記システム・バスに接続さ
    れた他のプロセッサ・セグメント内のキャッシュ・メモ
    リに保持されている自己のプロセッサ・セグメント内の
    データのアドレス情報を記憶するためのディレクトリが
    配置されていることを特徴とするデータ処理装置。
  2. 【請求項2】 複数のプロセッサと、メモリと、このメ
    モリの一部領域のコピーを保持するキャッシュ・メモリ
    と、スヌープ機構を有しこれら複数のプロセッサと、メ
    モリおよびキャッシュ・メモリを結合するメモリ・バス
    と、このメモリ・バスに接続されたバス・インターフェ
    ース部とからそれぞれ構成される複数のプロセッサ・セ
    グメントが、それぞれの前記バス・インターフェース部
    を介して共通のシステム・バスと接続されており、これ
    らプロセッサ・セグメントごとのバス・インターフェー
    ス部には、前記システム・バスに接続された他のプロセ
    ッサ・セグメント内のキャッシュ・メモリに保持されて
    いる自己のプロセッサ・セグメント内のデータのアドレ
    ス情報を記憶するためのディレクトリが配置されている
    ことを特徴とするデータ処理装置。
  3. 【請求項3】 複数のプロセッサと、メモリと、このメ
    モリと接続されその一部領域のコピーを保持するキャッ
    シュ・メモリと、スヌープ機構を有し前記複数のプロセ
    ッサと前記キャッシュ・メモリとを結合するメモリ・バ
    スと、このメモリ・バスに接続されたバス・インターフ
    ェース部とからそれぞれ構成される複数のプロセッサ・
    セグメントが、それぞれの前記バス・インターフェース
    部を介して共通のシステム・バスと接続されており、こ
    れらプロセッサ・セグメントごとのバス・インターフェ
    ース部には、前記システム・バスに接続された他のプロ
    セッサ・セグメント内のキャッシュ・メモリに保持され
    ている自己のプロセッサ・セグメント内のデータのアド
    レス情報を記憶するためのディレクトリが配置されてい
    ることを特徴とするデータ処理装置。
JP3258819A 1991-10-07 1991-10-07 データ処理装置 Pending JPH05100952A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3258819A JPH05100952A (ja) 1991-10-07 1991-10-07 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3258819A JPH05100952A (ja) 1991-10-07 1991-10-07 データ処理装置

Publications (1)

Publication Number Publication Date
JPH05100952A true JPH05100952A (ja) 1993-04-23

Family

ID=17325486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3258819A Pending JPH05100952A (ja) 1991-10-07 1991-10-07 データ処理装置

Country Status (1)

Country Link
JP (1) JPH05100952A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086856A (ja) * 1994-06-15 1996-01-12 Nec Corp バスインタフェースアダプタ
JPH08297642A (ja) * 1995-04-26 1996-11-12 Kofu Nippon Denki Kk 共有メモリ型マルチプロセッサシステム
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JPWO2007096979A1 (ja) * 2006-02-24 2009-07-09 富士通株式会社 情報処理装置およびデータ転送方法
WO2010038301A1 (ja) 2008-10-02 2010-04-08 富士通株式会社 メモリアクセス方法及び情報処理装置
WO2010052799A1 (ja) 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086856A (ja) * 1994-06-15 1996-01-12 Nec Corp バスインタフェースアダプタ
JPH08297642A (ja) * 1995-04-26 1996-11-12 Kofu Nippon Denki Kk 共有メモリ型マルチプロセッサシステム
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JPWO2007096979A1 (ja) * 2006-02-24 2009-07-09 富士通株式会社 情報処理装置およびデータ転送方法
US8176261B2 (en) 2006-02-24 2012-05-08 Fujitsu Limited Information processing apparatus and data transfer method
WO2010038301A1 (ja) 2008-10-02 2010-04-08 富士通株式会社 メモリアクセス方法及び情報処理装置
WO2010052799A1 (ja) 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
US8725954B2 (en) 2008-11-10 2014-05-13 Fujitsu Limited Information processing apparatus and memory control apparatus

Similar Documents

Publication Publication Date Title
JP3999821B2 (ja) データ処理システム内でバス仲裁プロトコルを実行する方法および装置
US5553266A (en) Update vs. invalidate policy for a snoopy bus protocol
JP3660679B2 (ja) 高度パイプライン式バス・アーキテクチャ
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US7343456B2 (en) Load-linked/store conditional mechanism in a CC-NUMA system
TW475117B (en) Method of shared intervention for cache lines in the recently read state for SMP bus
US5319766A (en) Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5388224A (en) Processor identification mechanism for a multiprocessor system
US5555382A (en) Intelligent snoopy bus arbiter
US5909699A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US7269695B2 (en) Ambiguous virtual channels
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
JP3635634B2 (ja) データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法
GB2287110A (en) Method and apparatus for snoop stretching
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
JP4106664B2 (ja) データ処理システムにおけるメモリ・コントローラ
JPH05100952A (ja) データ処理装置
EP0567355A2 (en) A method and apparatus for operating a multiprocessor computer system having cache memories
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation
US20040111547A1 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US8108618B2 (en) Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols
US6321304B1 (en) System and method for deleting read-only head entries in multi-processor computer systems supporting cache coherence with mixed protocols
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor