JPH1165928A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH1165928A JPH1165928A JP9222231A JP22223197A JPH1165928A JP H1165928 A JPH1165928 A JP H1165928A JP 9222231 A JP9222231 A JP 9222231A JP 22223197 A JP22223197 A JP 22223197A JP H1165928 A JPH1165928 A JP H1165928A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- processor
- units
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
ユニットを備えるマルチプロセッサシステムにおいて、
コヒーレントリード要求が複数個オーバラップして実行
される場合に、オーバラップ可能なコヒーレントリード
要求の数を限定することなく、コヒーレンシ報告の集計
を行う機構を提供する。 【解決手段】 複数のプロセッサユニットの間に、全て
のプロセッサユニットからのコヒーレンシ報告を集計
し、コヒーレントリード要求元プロセッサユニットに集
計結果を送付するコヒーレンシ報告集計ユニットを設け
る。 【効果】 複数のプロセッサユニット及び複数のメモリ
ユニットを備えるマルチプロセッサシステムにおいて、
コヒーレントリード要求が同時に複数個オーバラップし
て実行される場合に、オーバラップ可能なコヒーレント
リード要求の数を限定することなく、コヒーレンシ報告
の集計を行うことができる。
Description
に、複数のプロセッサを接続するマルチプロセッサシス
テムに関する。
ッサにおいては、数台のプロセッサユニットとメモリユ
ニットをバスで接続し、プロセッサユニット内のキャッ
シュ内容の一貫性を保証するために、スヌープキャッシ
ュ方式を採用するのが一般的である。こういった計算機
システムは、”Ben Catanzaro, ”Mu
ltiprocessor System Archi
tectures”,Sun Microsystem
s, 1994”(参考文献1と呼ぶ)、あるいは、
“Don Anderson/Tom Shanle
y、”PENTIUM PROCESSOR SYST
EM ARCHITECTURE Second Ed
ition“,MINDSHARE,INC.,199
5”(参考文献2と呼ぶ)などにその例を見ることがで
きる。これらの従来例においては、複数のプロセッサユ
ニットおよびメモリユニットは1本のバスで接続されて
いる。またプロセッサユニット間はコヒーレンシ報告バ
スで接続されており、コヒーレンシ報告バスは、1本の
共用通知線および1本のダーティ通知線から成る。動作
フローは以下の通りである。尚、他キャッシュの状態検
査を必要とするメモリアクセス要求をここではコヒーレ
ントリード要求と呼ぶ。またコヒーレントリード要求に
応答して各々のキャッシュが該当するキャッシュライン
の状態をコヒーレントリード要求元に返答することをこ
こではコヒーレンシ報告と呼ぶ。
セッサユニットがコヒーレントリード要求をプロセッサ
ユニットおよび主記憶を接続するバスに送出する。
コヒーレントリード要求を観測した場合、プロセッサユ
ニット間を接続するコヒーレンシ報告バスに対して返答
を行う。各プロセッサユニットは、例えば当該データを
クリーン状態で保持していた場合は、共用通知線をアサ
ートする。例えば当該データをダーティで保持していた
場合は、ダーティ通知線をアサートする。要求元プロセ
ッサユニットでは、所定のサイクルに共用通知線および
ダーティ通知線を検査する。所定のサイクルとは、各従
来例によって異なり、参考文献1の例ではコヒーレント
リード要求をバス上に送付してから固定サイクル後、参
考文献2の例では、メモリからのデータリターンが返答
されるまでとなっている。もし共用通知線がアサートさ
れている場合は、少なくとも1つのプロセッサユニット
がデータを共用していると判断し、自キャッシュの次状
態を決定する。もしダーティ通知線がアサートされてい
る場合は、少なくとも1つのプロセッサユニットが最新
のデータを保持していると判断し、自キャッシュの次状
態およびデータ送付元を決定する。このように、複数の
プロセッサユニットからのコヒーレンシ報告を基に自キ
ャッシュの状態あるいは最新データの送付元を決定する
処理をここではコヒーレンシ報告の集計と呼ぶ。
するデータをコヒーレントリード要求元のプロセッサユ
ニットに送付する。
が、その要求が指定するデータを更新済みであるときに
は、メモリユニットに代わってそのプロセッサユニット
がコヒーレントリード要求元のプロセッサユニットにデ
ータを送信する。
いて複数のプロセッサからの状態報告の集計を行う方式
をここではバス集計方式と呼ぶ。
文献3と呼ぶ)においては、コヒーレントリード要求が
同時に複数個オーバラップして実行される場合のコヒー
レンシ報告集計方式について開示している。この従来例
においては、複数のプロセッサユニットと1つのメモリ
ユニットが1本のバスで接続されており、各プロセッサ
ユニットとメモリユニットは別々のコヒーレンシ報告線
により接続されている。コヒーレントリード時の動作フ
ローは以下のようになる。
セッサユニットがコヒーレントリード要求をプロセッサ
ユニットおよびメモリユニットを接続するバスに送出す
る。
対して、コヒーレンシ報告線を経由してコヒーレンシ報
告を送付する。メモリユニットにおいては、各プロセッ
サから送付されたコヒーレンシ報告を集計し、コヒーレ
ントリード要求元キャッシュの次状態を決定する。
するデータをコヒーレントリード要求元のプロセッサユ
ニットに送付する。これと同時にバス上に設けられた状
態報告線によりコヒーレントリード要求元プロセッサユ
ニットに対しキャッシュの次状態の通知を行う。
が、その要求が指定するデータを更新済みであるときに
は、主記憶に代わってそのプロセッサユニットがコヒー
レントリード要求元のプロセッサユニットにデータを送
信する。
計方式と呼ぶ。
するにあたって上記従来例ではコヒーレントリード要求
を各プロセッサユニットおよびメモリユニットを接続す
るバスにより配布することを前提としている。これは少
数台のプロセッサを安価に接続するためには有効な手段
ではあるが、プロセッサユニット数、あるいは、主記憶
ユニット数が増加すると、バスのトラフィックが増加し
性能向上が困難となる。また、大規模なマルチプロセッ
サシステムを構成する際には、ドライブするべきユニッ
ト数が増加し、かつ、物理的な広がりが大きくなるため
動作周波数を向上させることが困難となる。そこで、特
開平9−138782号公報(参考文献4と呼ぶ)では
バスの代わりに、並列にアドレスおよびデータが転送可
能な相互結合網(具体的にはクロスバ網)を用いてスヌ
ープ処理を行う方法が開示されている。この従来例にお
いては、コヒーレントリード要求の配布方法については
開示しているが、コヒーレンシ報告の送付方法、およ
び、集計方法に関しては開示していない。
ス集計方式に関しては、コヒーレンシ報告をバスで行う
ため、動作周波数を向上することが困難である。また、
コヒーレントリード要求が同時に複数個オーバラップし
て実行されるようなシステムにおいては、コヒーレンシ
報告の集計が完了するまで、次のコヒーレンシ報告を送
付することができないため、オーバラップ可能なコヒー
レントリード要求数が限定される。ユニット集中集計方
式に関しては、主記憶容量を複数個設けた場合、およ
び、スループットを高めるために主記憶制御ユニットが
複数個設けた場合に対応できない。
述べたクロスバ網などの相互結合網を利用したスヌープ
方式には適用することができない。
ト、および、複数のメモリユニットを備えるマルチプロ
セッサシステムにおいて、コヒーレントリード要求が同
時に複数個オーバラップして実行される場合に、オーバ
ラップ可能なコヒーレントリード要求の数を限定するこ
となく、コヒーレンシ報告の集計を行う機構を提供する
ことである。
レスおよびデータが転送可能な相互結合網を介して複数
のプロセッサユニット、および、複数のメモリユニット
が接続されるマルチプロセッサシステムにおいて、コヒ
ーレントリード要求が同時に複数個オーバラップして実
行される場合に、オーバラップ可能なコヒーレントリー
ド要求の数を限定することなく、コヒーレンシ報告の集
計を行う機構を提供することである。
ッサユニットと上記コヒーレンシ報告の集計を行う機構
間のピン数をできるだけ少なく実現することである。
成するために、複数のプロセッサユニットの間にコヒー
レンシ報告を転送するための第2の相互結合網を設け、
該第2の相互結合網は全てのプロセッサユニットからの
コヒーレンシ報告を集計し、コヒーレントリード要求元
プロセッサユニットに集計結果を送付する。
ロセッサおよびメモリユニットを結合する第1の相互結
合網から、コヒーレンシ報告の集計に必要な情報をコヒ
ーレントリード発行時にコヒーレンシ報告集計を行う機
構が得る手段を設ける。
セッサシステムを図面に示したいくつかの実施の形態を
参照してさらに詳細に説明する。なお、以下において
は、同じ参照番号は同じものもしくは類似のものを表わ
すものとする。また、発明の第2の実施の形態以降にお
いては、発明の第1の実施の形態との相違点を主に説明
するに止める。
構成で、2つのプロセッサボード10−0〜1、2つの
メモリボード60−0〜1、入出力装置等の周辺装置を
含むユニット(図示せず)、および、これらを接続する
SC(System Connection)ボード3
0から構成される。メモリボード60−0〜1の各々
は、プログラムおよびデータを保持する主記憶61、お
よび、主記憶制御回路70を備え、主記憶61は主記憶
制御回路70によりSCボード30と接続される。2つ
のメモリボード60−0〜1は64B単位にインタリー
ブされている。このインタリーブ単位はプロセッサボー
ド10−0〜1内キャッシュ12のラインサイズにより
定まる。プロセッサボード10−0〜1の各々は、プロ
グラム命令を主記憶61から順次読み出し、順次それら
の命令を実行するCPUコア11と、主記憶61の一部
分の写しを格納するキャッシュ12と、これを制御する
キャッシュ制御回路20、とを備える。キャッシュ制御
回路20は、キャッシュ12のアクセスを制御するキャ
ッシュアクセス制御回路21を備え、トランザクション
送信回路22、および、トランザクション受信回路23
により、SCボード30と接続される。SCボード30
は、プロセッサボード10−0〜1間、あるいは、プロ
セッサボード10−0〜1−メモリボード60−0〜1
間でアドレスおよびデータを通信するためのクロスバユ
ニット40、および、本発明で特徴的なユニットである
コヒーレンシ報告集計ユニット50から構成される。ク
ロスバユニット40とプロセッサボード10−0〜1、
あるいは、メモリボード60−0〜1は8B幅の1対1
の信号線L100−0〜3およびL400−0〜3で接
続される。また、コヒーレンシ報告集計ユニット50と
プロセッサボード10−0〜1も1対1の信号線L10
1−0〜1、L500−0〜1により接続される。この
信号線L101−0〜1、L500−0〜1は後述する
コヒーレンシ報告、および、その制御線であり、片道
(3ビット+若干の制御線)である。コヒーレンシ報告
集計ユニット50とメモリボード60−0〜1の各々は
後述するメモリデータ転送を制御する信号線L501−
0〜1により接続される。クロスバユニット40とコヒ
ーレンシ報告集計ユニット50は、集計機能に必要な信
号を伝達するための信号線L450、L540により接
続される。クロスバユニット40は、スヌープ処理のた
めのマルチキャスト機能を持つ。クロスバユニット40
内を通るアドレスおよびデータの1単位をここではSC
トランザクション、あるいは、単にトランザクションと
呼ぶ。
ト40のポート0とコヒーレンシ報告集計ユニット50
のポート0には、プロセッサボード10−0が接続され
る。同様に、クロスバユニット40のポート1とコヒー
レンシ報告集計ユニット50のポート1には、プロセッ
サボード10−1が接続される。メモリボード60−
0、および、メモリボード60−1は、クロスバユニッ
ト40およびコヒーレンシ報告集計ユニット50のポー
ト2、3にそれぞれ接続される。
を図9、および、図10を用いて説明し、この動作フロ
ーの各々のステップの詳細動作を図1〜図8を用いて説
明する。
ストア命令実行時で、キャッシュ12がミスした場合の
システム動作概要を説明する。尚、キャッシュ12がヒ
ットした場合の動作は一般的なキャッシュを持つプロセ
ッサシステムと同様である。本実施の形態において、キ
ャッシュ12はストアイン方式を採用する。またキャッ
シュラインの取り得る状態は、「ダーティ」、「クリー
ン」、「共有」、「無効」の4状態とする。これは一般
にMESIプロトコルと呼ばれるものと同一である。
「ダーティ」、あるいは、「クリーン」の状態をあるキ
ャッシュラインが示している場合、このラインは他のキ
ャッシュ12からはキャッシングされていないことが保
証される。「クリーン」あるいは「共有」の状態をある
キャッシュラインが示している場合、このライン内のデ
ータは主記憶61上のデータと一致していることが保証
される。各キャッシュライン状態の遷移に関しては、例
えば参考文献2を参照されたい。但し、本実施の形態で
は次の点がこの参考文献記載のものと異なる。すなわ
ち、他プロセッサボード10−0〜1からのコヒーレン
トリード要求に対して「ダーティ」状態でヒットした場
合、自キャッシュ12の次状態を「共有」ではなく「無
効」にし、主記憶61には書き戻さない。
シュミスが発生した場合の動作概要を最新のデータが主
記憶中にある場合、および、プロセッサボード10−1
内キャッシュ12にある場合に分けて図9、および、図
10を用いて説明する。
にある場合(この場合を動作ケース1と呼ぶ)について
説明する。このケースにおいては、プロセッサボード1
0−0内のCPUコア11がロード命令を発行し、その
データがプロセッサボード10−0およびプロセッサボ
ード10−1のキャッシュ12には存在しないことを仮
定する。まずプロセッサボード10−0内のCPUコア
11はメモリロード要求をキャッシュアクセス制御回路
21に対して送付する(ステップA)。キャッシュアク
セス制御回路21がキャッシュミスと判断し(ステップ
B)、トランザクション送信回路22がコヒーレントリ
ード要求としてデータリードトランザクションをクロス
バユニット40に対して送付する(ステップC)。クロ
スバユニット40ではこれを全プロセッサボード10−
0〜1、および、指定されたメモリボード60−0に対
してマルチキャストする(ステップD)。コヒーレント
リード要求を受け取ったプロセッサボード10−0〜1
の各々は(ステップE)、内部のキャッシュ12の状態
を検査し、検査結果をコヒーレンシ報告CSR (Co
hrency Status Report)としてコ
ヒーレンシ報告集計ユニット50に送付する(ステップ
F)。コヒーレンシ報告集計ユニット50は、全てのコ
ヒーレンシ報告を受け取った時点でこれを集計し、その
集計結果CSS(Coherency Status
Summary)をコヒーレントリード要求元プロセッ
サボード10−0へ送付する(ステップH)。またこれ
と同時にメモリボード60−0に対してメモリデータの
転送許可通知を送付する(ステップH)。ステップE/
Fと並行して、コヒーレントリード要求を受け取ったメ
モリボード60−0は、内部の主記憶61をアクセスす
る。コヒーレンシ報告集計ユニット50から転送許可通
知を受けたら、得られたデータをデータトランザクショ
ンとして、クロスバユニット40へ送付する(ステップ
I)。クロスバユニット40はデータトランザクション
をコヒーレントリード要求元のプロセッサボード10−
0へ送付する(ステップJ)。CSSおよびメモリデー
タを受け取ったプロセッサボード10−0は、データお
よび状態をキャッシュ12へ登録し、またデータをCP
Uコア11へ返答する(ステップL)。
セッサボード10−0〜1内キャッシュ12にある場合
(この場合を動作ケース2と呼ぶ)について説明する。
このケースにおいては、プロセッサボード10−0内の
CPUコア11がストア命令を発行し、そのデータがプ
ロセッサボード10−1のキャッシュ12内に「ダーテ
ィ」で存在することを仮定する。まずプロセッサボード
10−0内のCPUコア11はストア要求をキャッシュ
アクセス制御回路21に対して送付する(ステップ
A)。キャッシュアクセス制御回路21がキャッシュミ
スと判断し(ステップB)、トランザクション送信回路
22がコヒーレントリード要求としてデータリード−無
効トランザクションをクロスバユニット40に対して送
付する(ステップC)。クロスバユニット40ではこれ
を全プロセッサボード10−0〜1、および、指定され
たメモリボード60−0に対してマルチキャストする
(ステップD)。コヒーレントリード要求を受け取った
プロセッサボード10−1(ステップE)において内部
のキャッシュ12を検査した結果、最新のデータを保持
しているとキャッシュアクセス制御回路21が判断した
場合、その結果をCSRとしてコヒーレンシ報告集計ユ
ニット50に送付する(ステップF)。さらに、キャッ
シュ12から読み出した最新のデータをデータトランザ
クションとして、クロスバユニット40へ送付する(ス
テップG)。クロスバユニット40はデータトランザク
ションをコヒーレントリード要求元であるプロセッサボ
ード10−0に送付する(ステップJ)。プロセッサボ
ード10−0におけるステップE/Fの動作は動作ケー
ス1の場合と同様である。全プロセッサボード10−0
〜1からCSRを受け取ったコヒーレンシ報告集計ユニ
ット50は、CSRを集計し集計結果をCSSとしてプ
ロセッサボード10−0に送付する。さらに、コヒーレ
ンシ報告集計ユニット50は、集計結果CSSにより主
記憶61からのデータ転送が不要と判断できるため、デ
ータ転送抑止通知をメモリボード60−0に対して送付
する(ステップH)。コヒーレントリード要求を受け取
ったメモリボード60−0は、データ転送抑止通知が到
着しているため、データトランザクションをクロスバユ
ニット40に送付することなく処理を完了する(ステッ
プI)。CSSおよびデータを受け取ったプロセッサボ
ード10−0は動作ケース1と同様に、キャッシュ12
に対してデータおよび状態を登録し、かつ、CPUコア
11からのストアデータを格納する(ステップL)。
する書き戻しは、キャッシュラインの置換時、あるい
は、命令による強制的なフラッシュにより行われる。こ
の動作に関しては、従来技術と差がないため、必要な回
路および説明を省略する。
ける動作ケース1および図10における動作ケース2に
関して説明する。文章中の各項番のうちアルファベット
部は、図9、あるいは、図10の各ステップと対応して
いる。以下で特に動作ケースの指示がない動作内容につ
いては、共通の動作となる。
CPUコア11内において実行中の命令がメモリアクセ
ス命令、すなわちデータロード命令、あるいは、データ
ストア命令であった場合、キャッシュ制御回路20内の
キャッシュアクセス制御回路21に対して、信号線L1
10を経由してアドレスを、信号線L111を経由して
アクセス種類、および、トランザクション識別子TXI
Dを送付する。ここで、アクセス種類とは命令ロード、
データロード、データストアの区別を指す。
はアクセス種類としてデータロードを信号線L111を
経由してキャッシュアクセス制御回路21に送付する。
はアクセス種類としてデータストアを信号線L111を
経由してキャッシュアクセス制御回路21に送付する。
キャッシュアクセス制御回路21においては、送付され
たアドレスを基にキャッシュ12を信号線L212を経
由してアクセスし、キャッシュラインの状態を調べる。
もし、指定されたアドレスに対応するキャッシュライン
が存在しないか、存在してもその状態が有効でなかった
らキャッシュ12がミスしたと判定し、信号線L214
を経由してアドレスを、信号線L215を経由してトラ
ンザクション種類を、信号線L213を経由してトラン
ザクション識別子TXID、および、自ポート番号0を
トランザクション送信回路22に送付する。トランザク
ション種類は、CPUコア11から信号線L111経由
で送付されたアクセス種により定められ、命令ロードの
場合は命令リード、データロードの場合はデータリー
ド、データストアの場合はデータリード−無効化とな
る。キャッシュ12の検査方法に関しては従来のキャッ
シュ制御方式と同様の技術であるため、ここでは説明を
省略する。
からのアクセス種がデータロードであるため、トランザ
クション種はデータリードとなる。
のアクセス種がデータロードであるため、トランザクシ
ョン種はデータリード−無効化となる。
作について説明する。キャッシュアクセス制御回路21
から送付されたトランザクション種およびアドレスを基
にコヒーレントリード要求となるSCトランザクション
を生成し、SCボード内クロスバユニット40に対して
発行する。SCトランザクションのフォーマットを図5
に示す。SCトランザクションはデータ線L100−0
〜3をヘッダサイクルT0、アドレスサイクルT1、デ
ータサイクルT2に分けて使用する。ヘッダサイクルT
0はクロスバユニット40に対する指示を示しており、
配布モードを示すヘッダ種T3、配布先を示すヘッダポ
ート番号T4から成る。尚、ヘッダサイクルT0はクロ
スバユニット40に対する指示を示しており、クロスバ
ユニット40から各ボード10−0〜1、60−0〜1
に対しては出力されない。アドレスサイクルT1はプロ
セッサボード10−0〜1、あるいは、メモリボード6
0−0〜1に対する指示を示しており、各フィールドの
意味としては、TX種T5は信号線L215を経由して
指示されたトランザクション種、アドレスT6は信号線
L214を経由して指示されたアドレス、ポート番号T
7およびTXID T8は信号線L213を経由して指
示されたものである。データサイクルT2中のデータは
メモリボード60−0〜1からのデータリターン時、あ
るいはプロセッサボード10−0〜1からのプロセッサ
ボード間転送時に送付されるべきデータを保持してお
り、64Bデータを送付する際は、8サイクルを要す
る。ただし、本実施の形態ではクロスバユニット40と
各ボードを接続する信号線L100−0〜3、L400
−0〜3の幅は片道8Bである。コヒーレントリード要
求を送付する場合は、データサイクルT2は不要であ
る。
線L215を経由して指示されたトランザクション種を
用い、ヘッダ生成回路においてヘッダ種T3を生成す
る。これはトランザクション種に対して一意に定まるも
のであり、表1の関係がある。
いは、データリード−無効化の場合、ヘッダポート番号
T4としてアクセスを行うメモリボード60−0〜1の
ポート番号を生成する必要がある。これはメモリボード
60−0〜1のインタリーブ方法、および、アクセスす
るアドレスにより定まる。本実施の形態においては64
B毎にインタリーブしているため、アドレスの下位7ビ
ット目が0の場合ポート番号2を、アドレスの下位7ビ
ット目が1の場合、ポート番号3を示す。この変換は信
号線L214を経由してアドレスを受けた主記憶ポート
番号生成回路220により行われ、生成されたヘッダポ
ート番号T4はヘッダ生成回路221によりヘッダ種T
3とマージされ、信号線L221を経由してヘッダサイ
クルT0を保持するレジスタ226に格納される。
225には、信号線L215を経由して通知されたトラ
ンザクション種、信号線L214を経由して通知された
アドレス、信号線L213を経由して通知されたポート
番号およびTXID、がマージされて格納される。
1が揃ったところで、ヘッダサイクルT0、アドレスサ
イクルT1の順にセレクタ227は選択して信号線L1
00−i(i=0,1)、SCトランザクションとして
クロスバユニット40に送出する。
イクルT1の送付時には、TXIDT8、および、アド
レスT6をトランザクション受信回路23へも信号線L
220を経由して送付する。トランザクション受信回路
23では、受け取ったTXID T8、および、アドレ
スT6をリードデータキュー230のTXIDフィール
ド231、および、ADDRフィールド231へそれぞ
れ格納する。
がデータリードであるため、ヘッダサイクルT0におけ
るヘッダ種T3はMMCとなる。動作ケース2において
トランザクション種がデータリード−無効化であるた
め、ヘッダサイクルT0におけるヘッダ種T3は同様に
MMCとなる。またいずれの動作ケースにおいてもアク
セスするアドレスの下位7ビット目が0の場合を仮定
し、ヘッダサイクルT0におけるヘッダポート番号T4
は2となる。
受け取ったクロスバユニット40は、これをヘッダサイ
クルT0の指示に従い、プロセッサボード10−0〜
1、あるいは、メモリボード60−0〜1へ送付する。
以下ではマルチキャスト時の動作について説明する。
示している。INQ 401−0〜2はプロセッサボー
ド10−0〜1、メモリボード60−0〜1の各々から
送付されたSCトランザクションを一時的に格納するキ
ューである。図6においては、図面の都合上3ポートし
か図示していない。INQCTL 402−0〜2はI
NQ 401−0〜2内に存在するSCトランザクショ
ンのヘッダサイクルT0をデコードし、ヘッダ種T3が
1対1転送を指示している場合、出力ポート403−0
〜2のアービタARB404−0〜2へ調停要求を送付
する。また、ヘッダ種T3がマルチキャスト転送を指示
している場合、本発明で特徴的なマルチキャストアービ
タMCARB 406へ調停要求を送付する。 信号線
L402〜2はINQCTL 402−0〜2からの調
停要求を送付するのに使用される。MCARB 406
はマルチキャスト転送のためのアービタである。MCQ
408はMCARB 406の調停結果を保持するキュ
ーであり、調停順序に応じてin−orderで管理さ
れる。MCDQ409はMCARB 406の調停結果
により選択されたSCトランザクションのアドレスサイ
クルT1およびデータサイクルT2を保持するキューで
あり、MCQ408と連動して管理される。ID送付回
路410は、MCQ408の内容を基にコヒーレンシ報
告集計ユニット50に対して、CSSを送付すべきポー
ト番号を送付する。ARB404−0〜2は各INQC
TL 402−0〜2、および、MCARB 406か
らの調停要求を調停する回路である。信号線L403〜
2およびL409はINQ 401−0〜2、および、
MCDQ409からSCトランザクションのアドレスサ
イクルT1およびデータサイクルT2を送付するのに使
用される。
リード要求の送付動作について説明する。まず、プロセ
ッサボード10−0が接続されている入力ポート400
−0にSCトランザクションが到着し、INQ401−
0へ格納される。INQCTL402−0はINQ40
1−0の先頭からSCトランザクションのヘッダサイク
ルT0を解釈する。この場合ヘッダサイクルT0はMM
Cであり、ヘッダポート番号T4は指定すべきメモリボ
ード60−0〜1の接続されているポート番号すなわち
「2」を示している。ヘッダ種T3がMMCであること
を解釈すると、INQCTL402−0は信号線L40
2−0を経由して、調停要求、ヘッダ種T3、および、
ヘッダポート番号T4をMCARB 406へ送付す
る。MCARB 406では、他INQCTL 402
−1〜2からの調停要求との調停を行い、INQCTL
402−0からの調停要求が勝利した場合、SCトラン
ザクションの配付先、勝利したポート番号、ヘッダポー
ト番号T4、ID送付の有無をMCQ408へ格納す
る。この場合SCトランザクションの配付先はポート
0、ポート1、ポート2であり、勝利したポート番号は
0、ヘッダポート番号T4は2、ID送付の有無は1で
ある。ID送付の有無はヘッダ種T3がMMCの時のみ
「1」であり、これ以外の場合「0」である。セレクタ
407はMCARB406の調停結果を受け取り、調停
結果の示す入力ポート、すなわち、入力ポート400−
0から信号線L403−0を経由して送付されたアドレ
スサイクルT1を選択し、MCDQ409へ格納する。
ビジー信号540がアサートされていない場合、MCQ
408の先頭に格納されているSCトランザクション配
付先のARB404−0〜2へ信号線L408を経由し
て調停要求を送付する。またMCDQ409は先頭のS
Cトランザクションを信号線L409経由で各出力ポー
ト403−0〜2へ送付する。コヒーレンシ報告集計ユ
ニット50からのビジー信号540がアサートされてい
る場合、MCQ408からの調停要求の送付は行わな
い。各ARB404−0〜2では受け取った調停要求を
調停し、MCQ408からの調停要求が勝利した場合、
セレクタ405−0〜2を制御し、MCDQ409から
信号線L409を経由して送付されたSCトランザクシ
ョンを、信号線L400−0〜2経由で送付先であるプ
ロセッサボード10−0、プロセッサボード10−1、
メモリボード60−0へ送付する。もしMCQ408か
らの調停要求が敗北した場合、各ARB404−0〜2
において次の調停機会では、必ずMCQ408からの調
停要求が勝利するように制御する。全ARBにおいて調
停が勝利したらMCQ408、および、MCDQ409
は先頭をデキューする。上記制御により、コヒーレント
リード要求は、MCARB 406において計算機シス
テム内での順序が付けられ、この順に従い各プロセッサ
ボード10−0〜1、あるいは、メモリボード60−0
〜1に送付される。ただし、その到着時刻は必ずしも同
時でなくても構わない。
ビジー信号540がアサートされていない場合、MCQ
408の先頭エントリにおけるID送付の有無の情報に
従い、ID送付回路410はMCQ408内の勝利した
ポート番号、および、ヘッダポート番号T4を信号線4
50を経由してコヒーレンシ報告集計ユニット50へ送
付する。コヒーレンシ報告集計ユニット50からのビジ
ー信号540がアサートされている場合、この送付は行
わない 。
様の動作を行う。
る。TXデコーダ236はクロスバユニット40から送
付されるSCトランザクションの解釈を行い、受け取っ
たSCトランザクションがコヒーレントリード要求の場
合、スヌープアドレスキュー235にこれを格納する。
受け取ったSCトランザクションがデータリターンある
いはプロセッサボード間転送であった場合に、リードデ
ータキュー230はSCトランザクション中のデータサ
イクルT2を格納する。また(3−C)で述べたよう
に、リードデータキュー230はトランザクション送信
回路22から送付されたTXIDおよびアドレスを格納
し、さらにコヒーレンシ報告集計ユニット50から送付
されたコヒーレンシ報告の集計結果CSSを格納し、デ
ータ到着制御を行う。この動作は(3−K)で詳しく述
べる。
信時、クロスバユニット40より信号線L400−i
(i=0,1)を経由してSCトランザクションを受け
取った各プロセッサボード10−iは、これをTXデコ
ーダ236で解釈する。SCトランザクション中アドレ
スサイクルT1のTX種T5がデータリードであるた
め、 TXデコーダ236は信号線L237経由でSC
トランザクションをスヌープアドレスキュー235に送
付し、これを格納する。スヌープアドレスキュー235
はin−orderで管理され、キューの先頭から信号
線L231を経由して、キャッシュアクセス制御回路2
1へコヒーレントリード要求を送付する。
信時も、SCトランザクション中アドレスサイクルT1
のTX種T5がデータリード−無効化であるため、動作
内容は上記と同様である。
ュアクセスの動作を説明する。信号線L231を経由し
てコヒーレントリード要求を受け取ったキャッシュアク
セス制御回路21は、信号線L212を用いてキャッシ
ュ12をアクセスし、キャッシュラインの状態を信号線
L120経由で得る。またキャッシュラインの状態はト
ランザクション送信回路22にも送付される。この際、
キャッシュアクセス制御回路21はトランザクション種
を信号線L215経由でトランザクション送信回路22
に送付する。キャッシュアクセス制御回路21では、コ
ヒーレントリード要求中のトランザクション種、およ
び、得られたキャッシュラインの状態により、もし必要
があればキャッシュラインの状態の更新を行う。更新が
必要な場合とは、例えばトランザクション種がデータリ
ード−無効化であり、キャッシュライン状態が「無効」
以外であった場合は、キャッシュラインの状態を「無
効」に更新する。トランザクション種がデータリード
で、キャッシュラインの状態が「クリーン」の場合、キ
ャッシュラインの状態を「共有」に更新する。トランザ
クション種がデータリードで、キャッシュラインの状態
が「ダーティ」の場合、キャッシュラインの状態を「無
効」に更新する。キャッシュ状態更新の具体的な動作に
ついては従来のスヌープキャッシュと同様の制御である
ため、詳細な説明は省略する。
動作を説明する。トランザクション送信回路22におい
てコヒーレンシ報告生成回路222は、上述のようにキ
ャッシュ12から信号線L120経由でキャッシュライ
ンの状態を受け取り、キャッシュアクセス制御回路21
から信号線L215経由でトランザクション種を受け取
る。これらを基に表2に従いコヒーレンシ報告CSRを
生成する。
レンシ報告格納用レジスタ223に格納され、信号線L
101−i(i=0,1)を経由して、コヒーレンシ報
告集計ユニット50に送付される。
10−0の動作としては、コヒーレンシ報告生成回路2
22が受け取るキャッシュの状態は「無効」であり、ト
ランザクション種はデータリードであるため、生成する
コヒーレンシ報告はDONEとなる。プロセッサボード
10−1の動作も同様である。
10−0の動作としては、コヒーレンシ報告生成回路2
22が受け取るキャッシュの状態は「無効」であり、ト
ランザクション種はデータリード−無効化であるため、
生成するコヒーレンシ報告はDONEとなる。プロセッ
サボード10−1の動作としては、コヒーレンシ報告生
成回路222が受け取るキャッシュラインの状態は「ダ
ーティ」であり、トランザクション種はデータリード−
無効化であるため、生成するコヒーレンシ報告はDIR
TYとなる。
トリード要求に対してキャッシュラインの状態が「ダー
ティ」であった場合、プロセッサボード10−0〜1間
でのデータ転送のためのSCトランザクションを生成
し、クロスバユニット40経由で、コヒーレントリード
要求元プロセッサボード10−0〜1に送付する必要が
ある。
スヌープアドレスキュー235から信号線L231経由
でコヒーレントリード要求を受け付けたキャッシュアク
セス制御回路21は、キャッシュ12をアクセスし、キ
ャッシュライン状態を信号線L120経由で得る。キャ
ッシュライン状態が「ダーティ」であった場合、キャッ
シュアクセス制御回路21は、信号線L231経由でト
ランザクション種としてプロセッサボード間転送をトラ
ンザクション送信回路22に送付する。また、コヒーレ
ントリード要求のアドレス部分を信号線L214経由
で、コヒーレントリード要求中のポート番号およびTX
IDを信号線L213経由でトランザクション送信回路
22に送付する。
−C)で述べた手順に従い、信号線L100−i(i=
0,1)経由でクロスバユニット40に対してプロセッ
サボード間転送トランザクションを送付する。ただし、
以下の点が(3−C)の手順と異なる。まず、ヘッダ生
成回路221においてヘッダポート番号を信号線L21
3を経由して送付されたポート番号とする。また、信号
線L120経由でキャッシュから送付されたデータをレ
ジスタ224に格納し、SCトランザクションのアドレ
スサイクルT1の後にデータサイクルT2として付加す
る。
ード10−1での動作となる。
コヒーレンシ報告集計ユニット50において、CSRQ
503−0〜1は各プロセッサボード10−0〜1から
送付されたコヒーレンシ報告CSRを一時的に格納する
キューであり、in−orderで管理される。DID
Q501はコヒーレンシ報告の集計結果CSSを送付す
べきポート番号を格納しているキューであり、MIDQ
502はデータ転送の許可あるいは抑止通知を送付すべ
きポート番号を格納しているキューである。DIDQ5
01およびMIDQ502はin−orderで管理さ
れる。集計回路507はCSRQ503−0〜1の内容
を集計する回路であり、発火回路506により起動され
る。抑止信号生成回路508は集計回路によって得られ
たCSSを基にメモリボード60−0〜1に対してデー
タ転送許可通知、あるいは、抑止通知を送付する。
シ報告集計ユニット50は、まず(3−D)で述べた様
に、クロスバユニット40から信号線L450経由で集
計したCSSの送付先ポート番号、および、データ転送
抑止に使用するメモリボードポート番号を受け取り、こ
れをDIDQ501およびMIDQ502にそれぞれ格
納する。次に(3−F)で述べた様に、プロセッサボー
ド10−0〜1の各々から信号線L101−0〜1経由
でコヒーレンシ報告CSRを受け取り、各々のポートに
対応するCSRQ503−0〜1に格納する。CSRQ
503−0〜1の先頭に有効なCSRが存在しているか
否かが信号線L503−0〜1を経由して発火回路50
6に通知される。また、どのポートにプロセッサボード
10−0〜1が接続されているかを示す集計マスク50
5の内容が、信号線L505を経由して発火回路506
に通知される。集計マスク505の各々のビットは、各
ポートに対応し、「1」の場合はそのポートにプロセッ
サボード10−0〜1が接続されていることを示す。本
実施の形態においては、集計マスクのビットはいずれも
「1」である。発火回路506においては、集計マスク
が「1」であるポートの全てにおいて、対応するCSR
Q503−0〜1の先頭にCSRが存在することが信号
線L503−0〜1で通知された場合、CSRの集計が
可能であると判断し、信号線L506を用い集計回路5
07を起動する。集計回路507には信号線L503−
0〜1を経由してCSRQ503−0〜1からCSRが
送付される。また集計マスク505の内容が信号線L5
05を経由して送付される。さらに信号線L511を経
由してDIDQ501から送付先ポート番号の存在が通
知される。集計回路507は、表3の条件に従いCSR
の集計を行いCSSの生成を行う。ただし、集計マップ
501のビットが「0」であるポートに対するCSR
は、全て「DONE」であるとみなす。
れた時点で、信号線L511を経由して送付されたDI
DQ501の先頭の内容が有効であるか否かを調べ、も
し有効でなければCSSをERRに置き換える。集計回
路507は、生成したCSSを信号線L507を経由し
てDeMUX504(デマルチプレクサ)へ送付する。
またDIDQ501はその先頭の内容を信号線L511
を経由して送付先ポート番号をDeMUX504へ送付
する。DeMUX504は通知された送付先ポート番号
に従い、CSSを信号線L500−0〜1を経由してプ
ロセッサボード10−0〜1へ送付する。また集計回路
507は生成したCSSを信号線L507を経由して抑
止信号生成回路508へ送付する。抑止信号生成回路5
08は、CSSがDIRTYの場合、抑止通知を、それ
以外の場合転送許可通知を、信号線L508を経由して
DeMUX510に送付する。MIDDQ502はその
先頭のメモリボードポート番号を信号線L502を経由
してDeMUX510へ送付する。DeMUX510は
指定されたメモリポート番号の示すメモリボード60−
0〜1に対して、抑止通知あるいは転送許可通知を信号
線L501−0〜1経由で送付する。
であるプロセッサボード10−i(i=0,1)からの
CSRの到着が遅れた場合、他プロセッサボード10−
j(j=0,1)に対応するCSRQ503−j(j=
0,1)がオーバフローする可能性がある。このオーバ
フローを避けるためにコヒーレンシ報告集計ユニット5
0から各々のプロセッサボード10−0〜1に対してC
SRQ503−0〜1のビジーを伝える方法が考えられ
る。しかしこの場合コヒーレンシ報告集計ユニット50
のピン数およびプロセッサボード10−0〜1のピン数
が増大する。そこで本実施の形態では、まずDIDQ5
01およびMIDQ502のキュー長を、CSRQ50
3−0〜1のキュー長に比べて同じか少なくしておき、
DIDQ501がオーバフローしそうな場合は、ビジー
をクロスバユニット40に通知し、コヒーレントリード
要求のマルチキャストを抑止する。こうすることで同時
に存在し得るCSRの最大数をDIDQ501に登録さ
れている数に制限できるためCSRQ503−0〜1の
オーバフローを避けることができる。この方式を採用す
ることでクロスバユニット40とコヒーレンシ報告集計
ユニット50の間に1本のビジー信号L540のみが必
要となり、全てのCSRQ503−0〜1のビジー線が
不要となる。動作としては、ビジー制御回路500がD
IDQ501に登録されている数を管理し、オーバフロ
ーしそうな場合はビジー信号L540をアサートする。
ビジー信号L540アサート時の動作は(3−D)で説
明したようにマルチキャストを抑止する。
の方式があり得る。本実施の形態では、システムの立ち
上げ時にプロセッサボード10−0〜1の各々が一定期
間信号線L101−0〜1を経由して固定パターン、例
えばDONEをコヒーレンシ報告集計ユニット50に送
付しておき、コヒーレンシ報告集計ユニット50内のマ
スク生成回路504では、これを観測して指定された固
定パターン、例えばDONEを送付しているプロセッサ
ボード10−0〜1に対応する集計マスク504のビッ
トに「1」を設定し、これ以外のビットには「0」を設
定する。これ以外にも、集計マスクを保持しているレジ
スタをあるI/O空間にマッピングしておき、CPUコ
ア11がこのI/O空間に対して書き込みを行うこと
で、設定を行うといった方式があり得る。
バユニット40の送付内容によりDIDQ501には
「0」が、MIDQ502には「2」が格納される。プ
ロセッサボード10−0〜1から送付されるCSRが全
てDONEであり、集計回路507により生成されるC
SSはDONEとなる。これをプロセッサボード10−
0に送付する。また転送許可信号をメモリボード60−
0に対して送付する。
バユニット40の送付内容によりDIDQには「0」
が、MIDQには「2」が格納される。プロセッサボー
ド10−0から送付されるCSRはDONEであり、プ
ロセッサボード10−1から送付されるCSRはDIR
TYであるため、集計回路507により生成されるCS
SはDIRTYとなる。これをプロセッサボード10−
0に送付する。また転送抑止信号をメモリボード60−
0に対して送付する。
は、CSSの送付先ポート番号及びデータ転送抑止に使
用するメモリポート番号をコヒーレンシ報告集計ユニッ
ト50へ送付していた。上記ポート番号は、各プロセッ
サボード10−0〜1がコヒーレントリードトランザク
ション中のアドレスサイクルT1を基に生成し、生成し
た上記ポート番号をCSRの送付時に各プロセッサボー
ド10−0〜1がコヒーレンシ報告集計ユニット50へ
信号線L101−0〜1を経由して送付することは可能
である。しかし、この場合、信号線L101−0〜1が
増加するためコヒーレンシ報告集計ユニット50のピン
数が増加する。そこで、本実施の形態では、上記ポート
番号をコヒーレントリードトランザクションの送付時
に、クロスバユニット40から送付している。これによ
り、コヒーレンシ報告集計ユニット50のピン数を削減
することができる。
データ転送抑止 図8を用いてメモリボード60−0〜1におけるデータ
トランザクション発行およびデータ転送抑止の動作を説
明する。メモリボード60−0〜1は主記憶61と主記
憶制御回路70を備え、主記憶制御回路70内にはコヒ
ーレントリードのためのアドレスおよびデータを保持す
るコヒーレントリードキュー701と、命令リードのた
めのアドレスおよびデータを保持する命令リードキュー
706を備える。コヒーレントリードキュー701と命
令リードキュー706はそれぞれSCトランザクション
を受けた順にin−orderで処理される。コヒーレ
ントリードキュー701と命令リードキュー706が分
かれているのは、コヒーレントリードに関してはデータ
のプロセッサボード10−0〜1への転送を抑止可能と
するためである。
0は信号線L400−i(i=0,1)経由でクロスバ
ユニット40からSCトランザクションを受け取り、T
X種T5をデコードし、もしデータリードあるいはデー
タリード−無効化であればコヒーレントリードキュー7
01に、アドレスサイクルT1中のアドレスT6、ポー
ト番号T7、TXIDT8を、ADDRフィールド70
3、DIDフィールド714、TXIDフィールド70
2、それぞれ格納する。TX種T5が命令リードであれ
ば命令リードキュー706に、アドレスサイクルT1中
のアドレスT6、ポート番号T7、TXIDT8を、A
DDRフィールド708、DIDフィールド715、T
XIDフィールド707に、それぞれ格納する。コヒー
レントリードキュー701は先頭からADDRを信号線
L713経由で調停/セレクタ710へ送付し、調停に
勝利した場合、主記憶61に信号線L710経由でAD
DRを送付し、主記憶61をアクセスする。アクセスし
た結果得られたデータは信号線L610経由でコヒーレ
ントリードキュー701に送付され、該当するエントリ
に格納される。これと並行して主記憶制御回路70は、
コヒーレンシ報告集計ユニット50から信号線L501
−i(i=0,1)を経由して抑止通知あるいは転送許
可通知を受け取り、コヒーレントリードキュー701の
ENフィールド705に順次格納する。コヒーレントリ
ードキュー701の先頭エントリのDATAフィールド
704、および、ENフィールド705が有効になった
ら、トランザクション生成回路711へコヒーレントリ
ードキュー701の先頭エントリの内容を信号線L70
1を経由して送付する。トランザクション生成回路71
1においては、ENフィールド705がもし抑止である
場合は、コヒーレントリードキュー701からデキュー
するのみで、データをプロセッサボード10−0〜1に
対して送付しない。もしENフィールド705が転送許
可である場合は、コヒーレントリードキュー701の内
容によりSCトランザクションを生成する。この際、ヘ
ッダサイクルT0におけるヘッダ種T3はSU、ヘッダ
ポート番号T4はDIDフィールド714の内容とな
る。アドレスサイクルT1のTX種T5はデータリター
ン、アドレスT6はADDRフィールド703の内容、
ポート番号T7はDIDフィールド714の内容、TX
IDT8はTXIDフィールド702の内容、となる。
データサイクルT2はDATAフィールド704の内容
を8サイクルに分けて送付する。トランザクション生成
回路711は生成したSCトランザクションを調停/セ
レクタ713へ信号線L711を経由して送付し、調停
/セレクタ713は調停に勝利したSCトランザクショ
ンを、信号線L100−i(i=0,1)経由で主記憶
制御回路70からクロスバユニット40へ送付する。命
令リードキュー706の動作については、ENフィール
ド705が存在せず、したがって、データリターンの抑
止がないこと以外はコヒーレントリードキュー701の
動作と同じである。
リードである。またコヒーレンシ報告集計ユニット50
からは転送許可通知が送付されるため、SCトランザク
ションとしてデータリターンをクロスバユニット40へ
送付する。
リード−無効化である。またコヒーレンシ報告集計ユニ
ット50からは転送抑止通知が送付されるため、SCト
ランザクションを送付せず、コヒーレントリードキュー
のデキューのみを行う。
ード60−0からプロセッサボード10−0へのデータ
リターントランザクション処理時のクロスバユニット4
0の動作について説明する。クロスバユニット40は信
号線L100−2を経由してSCトランザクションをメ
モリボード60−0から受け取り、INQ401−2へ
格納する。INQCTL402−2はINQ401−2
の先頭エントリに関して、ヘッダサイクルT0の解釈を
行い、ヘッダ種T3がSUである場合、ヘッダサイクル
T0のヘッダポート番号T4により指定される出力ポー
ト0403−0に対応するARB404−0へ信号線L
402−2を経由して調停要求を送付する。ARB40
4−0では調停処理を行い、もしINQCTL402−
2からの要求が勝利した場合、ARB404−0はセレ
クタ405−0へ調停結果を信号線L404−0を経由
して通知し、セレクタ405−0はINQ401−2か
ら信号線L403−2を経由して送付されるアドレスサ
イクルT1およびデータサイクルT2を選択し、信号線
L400−0を経由してプロセッサボード10−0へS
Cトランザクションを送付する。
転送時も、SCトランザクションの発行元がプロセッサ
ボード10−1であり、SCトランザクションを受け付
ける入力ポートが入力ポート400−1であることを除
けば、上記と同様のフローとなる。
ザクションにおいてヘッダ種T3はQMとなるが、この
送付動作もここで説明したヘッダ種T3がSU時の動作
と同様である。
おけるデータおよびCSSの受信制御について説明す
る。トランザクション受信回路23内のリードデータキ
ュー230は、データのリターンおよびCSSの到着を
待ち合わせるためのキューである。リードデータキュー
230におけるTXIDフィールド231およびADD
Rフィールド232はコヒーレントリード要求発行時に
トランザクション送信回路22から送付されるTXID
およびアドレスを格納する。またDATAフィールド2
33はデータリターントランザクションあるいはプロセ
ッサボード間転送トランザクションのデータサイクルT
2を格納する。CSSフィールド234はCSSを格納
する。TXIDフィールド、ADDRフィールド、CS
Sフィールドの格納はin−orderで行う。DAT
Aフィールドの格納はout−of−orderで行
い、格納すべきエントリはTXIDをキーとして検索す
る。リードデータキューのデキューはin−order
で行う。
動作について説明する。トランザクション受信回路23
は、信号線L400i−i(i=0,1)を経由して送
付されたSCトランザクションを、TXデコーダ236
において解釈し、Tx種T5がデータリターンであるた
め、アドレスサイクルT1内TXIDT8の内容と同一
のTXIDフィールド231の内容を持つリードデータ
キュー230のエントリへ、SCトランザクションのデ
ータサイクルT2を信号線L236を経由して格納す
る。またこれとは非同期にトランザクション受信回路2
3はコヒーレンシ報告集計ユニット50から信号線L5
00−i(i=0,1)経由で送付されたCSSを受け
取り、これを順次リードデータキュー230のCSSフ
ィールド234へ格納する。ここで、CSSの到着はコ
ヒーレントリード要求の発行順に返答されることを期待
しており、データリターンは、コヒーレントリード要求
の発行順序とは無関係に返答されても構わない。リード
データキュー230の先頭において、DATAフィール
ド233およびCSSフィールド234が有効となった
場合、このエントリの内容を全て、信号線L230経由
でキャッシュアクセス制御回路21へ送付する。
ータリターンではなくプロセッサボード間転送である
が、動作は上記と同様である。
答 図2においてトランザクション受信回路23から信号線
L230経由でリターンデータを受け取ったキャッシュ
アクセス制御回路21では、ADDRフィールドの示す
アドレスを用いてキャッシュ12へデータおよびキャッ
シュ状態を格納する。格納するキャッシュ状態は、もし
CSSフィールドがDONEであった場合は「クリー
ン」、SHAREDであった場合は「共有」、DIRT
Yであった場合は「ダーティ」である。また、CPUコ
ア11に対してTXID、および、リターンデータを信
号線L210を経由して送付する。この動作は従来のス
ヌープキャッシュの制御とほぼ同一であるため、詳細な
説明は省略する。
る。1つのプロセッサボード10−i(i=0,1)は
1枚のボード上に実装される。また1つのメモリボード
60−i(i=0,1)も1枚のボード上に実装され
る。またクロスバユニット40とコヒーレンシ報告集計
ユニット50は、同じSCボード上に実装される。これ
らボードをバックプレーン80へ挿入することで計算機
システムを構築する。プロセッサボード10−0〜1、
あるいは、メモリボード60−0〜1はSCボード30
のポート数が許す限りは増設可能であり、また最小限の
システムまでは縮退が可能である。
してストアイン方式を前提としたが、これをストアスル
ーにしても構わない。この場合、キャッシュの状態とし
てDIRTY状態が存在しなくなることを除けば、動作
フロー自体は同じである。
ド10−0〜1、および、メモリボード60−0〜1の
数をそれぞれ2としているが、これはさらに多数台のボ
ードを接続しても構わない。この場合、クロスバユニッ
ト40およびコヒーレンシ報告集計ユニット50におい
て入力ポートおよび出力ポートに関わる回路を増やすこ
とで実現できる。
ト40およびコヒーレンシ報告集計ユニット50を同一
のボードに実装しているが、これを別々のボードに実装
しても構わない。また、クロスバユニット40あるいは
コヒーレンシ報告集計ユニット50のいずれか、あるい
は、両方をバックプレーン上に実装しても構わない。
ード要求を発行したプロセッサボード10−i(i=
0,1)以外のプロセッサボード10−j(j=0,
1)が最新のデータを保持していた場合、メモリボード
60−0〜1からのデータ転送を抑止していた。これ
は、コヒーレンシ報告の集計完了がメモリボード60−
0〜1における主記憶のアクセスより早いことを前提と
している。もしコヒーレンシ報告の集計が設計上早く行
うことができない場合、それだけメモリボード60−0
〜1からのデータリターントランザクション送付が遅延
してしまう。これを避けるには、メモリボード60−0
〜1においてはデータ転送の抑止を行わず、そのままデ
ータトランザクションをプロセッサボード10−0〜1
へ送付する。プロセッサボード10−0〜1において
は、メモリボード60−0〜1からのデータリターンに
よるデータ、および、他プロセッサボード10−0〜1
からのプロセッサボード間転送によるデータの双方をト
ランザクション受信回路23中のリードデータキュー内
DATAフィールドに保持する。CSSが到着した時点
で、CSSがDIRTYであればプロセッサボード間転
送によるデータを有効とし、それ以外の場合はデータリ
ターンによるデータを有効とする、という方式が考えら
れる。
各プロセッサボード10−0〜1中にCPUコア11が
1つしかない例であった。この場合、計算機システム全
体におけるCPUコア11の数を増加させるためには、
クロスバユニット40およびコヒーレンシ報告集計ユニ
ット50のポート数を増加させる必要がある。しかし、
ピン数、および、ゲート数の制約によりポート数の増加
は限度がある。そこで1つのプロセッサボード10−0
〜1に複数のCPUコア11を搭載する場合を考える。
セッサボード10−0〜1の構成を説明する。図12に
おいてCPUコア11、キャッシュ制御回路20、キャ
ッシュ12をまとめてプロセッサユニット13−0〜1
と呼び、プロセッサボード10−0〜1はこのプロセッ
サユニット13−0〜1を2つ備え、プロセッサユニッ
ト13−0〜1とSCボード間にSCインタフェース回
路24を設けたことが実施の形態1と異なる。図13に
おいてSCインタフェース回路24は、各プロセッサユ
ニット13−0〜1からのSCトランザクションを受け
付けるTXQ240−0〜1、CSRをプロセッサボー
ド10−0〜1内部で集計するためのローカル集計回路
244、コヒーレンシ報告集計ユニット50からのCS
Sをプロセッサユニットのどちらに送付するかを示すS
RCQ248を備える。ローカル集計回路244に関連
する構成要素として、各々のプロセッサユニット13−
0〜1からのCSRを格納するLCSRQ242−0〜
1、および、各々のプロセッサユニット13−0〜1が
存在するか否かを示すローカル集計マップ243を備え
る。ローカル集計マップはどのプロセッサユニット13
−0〜1が実装されているかを対応するビットにより示
す。このような構成により、SCボード30のポート数
を増やすことなく、CPUコア11の台数を増加させる
ことができる。以下では、コヒーレントリード要求の処
理において実施の形態1と異なる点についてのみ述べ、
同じ動作を行うものについては説明を省略する。
IDT8はCPUコア11から信号線L111を経由し
て送付されるものであった。本実施の形態においては、
これをCPUコア11から送付されるTXIDに自プロ
セッサユニット識別子PUIDを付加する。PUIDは
プロセッサユニット13−0〜1のプロセッサボード1
0−0〜1内における実装位置によって定まる。PUI
Dはトランザクション送信回路22においてアドレスサ
イクルT1を生成する際にTXIDT8に付加される。
ザクションが生成された後に信号線L100−i(i=
0,1)を経由してクロスバユニット40に送付してい
たが、これを本実施の形態では、信号線L130−0〜
1を経由してSCインタフェース回路24に送付する。
SCインタフェース回路24は、受け取ったSCトラン
ザクションを対応するTXQ240−0〜1に格納す
る。TXQ240−0〜1の各々の先頭からSCトラン
ザクションが読み出され、これが調停/セレクタ245
へ送付される。調停/セレクタ245はSCトランザク
ションの調停を行い、勝利した方を信号線L100−i
(i−0,1)を経由してクロスバユニット40へ送付
する。またSCトランザクションをクロスバユニット4
0へ送付した際に、このアドレスサイクルT1中のTX
ID中のPUIDを信号線L245経由でSRCQ24
8に格納する。これは、後述するCSSの到着時に返答
すべきプロセッサユニット13−0〜1を特定するため
である。
線L400−i(i=0,1)を経由して送付したSC
トランザクションを直接トランザクション受信回路23
が受信していたが、本実施の形態においては、これをS
Cインタフェース回路24が受信する。SCインタフェ
ース回路24においては、受信制御回路246において
アドレスサイクルT1を解釈し、TX種T5がコヒーレ
ントリード要求であった場合は、信号線L132−0〜
1を経由してプロセッサユニット13−0〜1の各々に
対してSCトランザクションを送付する。
計ユニット50のみで集計していたが、これをそのまま
適用すると、コヒーレンシ報告集計ユニット50内にプ
ロセッサユニット13−i(iは任意の整数)対応にC
SRQ503−i(iは任意の整数)を持つ必要が生じ
るため、コヒーレンシ報告集計ユニット50に実装可能
なゲート数によりCPUコア11数の増加に制限が生じ
る。そこで本実施の形態においては、まずプロセッサボ
ード10−0〜1単位にCSRの集計を行い、集計結果
をさらにコヒーレンシ報告集計ユニット50へ送付し、
全体の集計を行う。表3に示した集計アルゴリズムは、
任意個のCSSに対して、どのCSSから集計アルゴリ
ズムを適用しても結果は変わらないという性質を持つ。
この性質を利用することでプロセッサボード10−0〜
1内でローカルにCSSの集計が可能となる。
路22が生成したCSSを信号線L101−i(i=
0,1)を経由してコヒーレンシ報告集計ユニット50
に送付していたが、これを信号線L130−0〜1を経
由してSCインタフェース回路24に送付する。SCイ
ンタフェース回路24では受け取ったCSRをLCSR
Q242−0〜1に格納する。LCSRQ242−0〜
1はin−orderで制御される。LCSRQ242
−0〜1の各々の先頭から、内容をローカル集計回路2
44に送付する。ローカル集計回路244においては、
ローカル集計マップ243が「0」であるビットに対応
するLCSRQ242−0〜1の内容は常にDONEで
あるとみなし、表3のアルゴリズムに基づいて集計を行
う。生成したCSSはプロセッサボード10−0〜1単
位のCSRとして信号線L101−i(i=0,1)を
経由してコヒーレンシ報告集計ユニット50へ送付す
る。
ボード10−1においては、SCトランザクションが生
成された後に信号線L100−1を経由してクロスバユ
ニット40に送付していたが、これを本実施の形態で
は、信号線L130−0〜1を経由してSCインタフェ
ース回路24に送付するよう変更する。SCインタフェ
ース回路24は、受け取ったSCトランザクションを対
応するTXQ240−0〜1に格納する。TXQ240
−0〜1の各々からクロスバユニット40へのSCトラ
ンザクション発行は本実施の形態における(3−C)の
動作と同様である。ただし、PUIDのSRCQ248
への送付は行わない。
て、クロスバユニット40からのSCトランザクション
は信号線L400−0を経由して直接トランザクション
受信回路23により受信されたが、本実施の形態におい
てはまずSCインタフェース回路24によりSCトラン
ザクションが受信され、受信制御回路246によりアド
レスサイクルT1が解釈される。アドレスサイクルT1
中のTX種T5がデータリターン、あるいは、プロセッ
サ間転送の場合、TXIDT8中のPUIDが指定する
プロセッサユニット13−0〜1へ、信号線L132−
0〜1を経由してSCトランザクションを送付する。
シ報告集計ユニット50からのCSSは信号線L500
−i(i=0,1)を経由して直接トランザクション受
信回路23により受信されたが、本実施例においてはま
ずSCインタフェース回路24によりCSSが受信さ
れ、SRCQ248の先頭の内容が指示するプロセッサ
ユニット13−0〜1に対して、信号線L133−0〜
1を経由してCSSを送付する。
サユニット13−0〜1の動作は、実施の形態1におけ
るプロセッサボード10−0〜1の動作と同様である。
いては、クロスバユニット40から送付されたコヒーレ
ントリード要求の順序に従い、コヒーレンシ報告集計ユ
ニット50では全てのCSRの到着後にCSRの集計お
よび送付を行っていた。これに対して実施の形態3にお
いては、「CSSの確定後にCSRの集計を行い」、
「コヒーレントリード要求の順序とは無関係にCSSの
送付を行う」点が異なる。すなわち、コヒーレンシ報告
集計の性質を考えると、少なくとも1つのプロセッサボ
ード10−0〜1からのCSRがSHAREDであれ
ば、他のCSRの結果に依らずCSSはSHAREDと
確定する。また1つのプロセッサボード10−0〜1か
らのCSRがDIRYTであれば他のCSRの内容に依
らずCSSはDIRTYと確定する。ただし、この場合
実施の形態1で示した不正なCSRの組合せがないこと
を前提としている。そこで、まず不正なCSRの組合せ
がないことを前提にCSSが確定次第CSSをプロセッ
サボード10−0〜1に送付する。全CSRの到着後不
正なCSRの組合せが検出された場合は、CSSが既に
発行されている/いないに関わらずERRをCSSとし
て、プロセッサボード10−0〜1に送付する。これに
より、実施の形態1においては、あるプロセッサボード
10−i(i=0,1)のコヒーレンシ報告が大きく遅
延した場合、全てのCSSの発行が遅れるのに対して、
この実施の形態では他の後続のCSSの発行は遅延した
CSRに依らず行えるため、データのCPUコア11へ
のリターンを早めることができる。尚、各プロセッサボ
ード10−0〜1からのコヒーレンシ報告集計ユニット
50へのCSRの送付は実施の形態1と同様に、コヒー
レントリード要求の順序に従う。
シ報告集計ユニット50の構成が異なる。図14にコヒ
ーレンシ報告集計ユニット50の内部構成を示す。コヒ
ーレンシ報告集計ユニット50は、出力ポート対応にポ
ート集計回路525−0〜1を有する。ポート集計回路
525−0〜1は、CSRテーブル526および集計回
路530を備え、CSRテーブル526は、TXIDフ
ィールド527、MIDフィールド528、入力ポート
の各々に対応するCSRフィールド529−0〜1を備
える。また、入力ポート側にはプロセッサボード10−
0〜1からのCSRをどのポート集計回路に格納するか
を指示するための、DIDQ521−0〜1を備える。
以下では、コヒーレントリード要求の処理において実施
の形態1と異なる点についてのみ述べる。
1からコヒーレンシ報告集計ユニット50へは信号線L
101−0〜1を経由してCSRのみを送付していた。
これに対し実施の形態3においては、TXIDをCSR
に付加して送付する。すなわち、コヒーレンシ報告生成
回路222においては、実施の形態1と同様にCSRを
生成した後、信号線L213を経由して送付されるTX
IDを取り込み(取り込む線に関しては図示していな
い)、これをCSRに付加し、信号線L101−0〜1
を経由してコヒーレンシ報告集計ユニット50に送付す
る。
1の(3−D)で述べたように、クロスバユニット40
から信号線L450経由で集計すべきCSRの送付先ポ
ート番号、および、データ転送抑止に使用するメモリボ
ードポート番号を受け取り、まずメモリボードポート番
号は送付先ポート番号の指定するポート集計回路525
−0〜1内のCSRテーブル526内MIDフィールド
528に格納する。また送付先ポート番号はDIDQ5
21−0〜1の各々に格納する。次に実施の形態3の
(3−F)で述べたように、プロセッサボード10−0
〜1の各々から信号線L101−0〜1を経由してCS
RおよびTXIDを受け取り、各入力ポートに対応する
DIDQ521−0〜1の指示するポート集計回路52
5−0〜1内のCSRテーブル526の入力ポートに対
応するCSRフィールド529−0〜1、および、TX
IDフィールド527へ格納する。CSRテーブル52
6はenqueue, dequeueはin−ord
erで管理し、集計およびCSSの送付はout−of
−orderで管理する。集計回路530は、CSRテ
ーブル526の全エントリを検査し、表4に従いCSS
の生成を行う。
TXIDフィールド527中のTXIDを信号線L50
0−0〜1を経由して、対応するプロセッサボード10
−0〜1へ送付する。また、実施の形態1と同様に生成
したCSSを基にメモリボード60−0〜1に対する抑
止通知、あるいは、転送可能通知を生成し、これにTX
IDフィールド527中のTXIDを付加して、CSS
を生成したエントリのMIDフィールド528が指示す
るメモリボード60−0〜1へ信号線L530−0〜
1、調停/セレクタ531〜532、信号線L501−
0〜1を経由して発行する。もし複数のエントリにおい
てCSSが確定したら、CSRテーブル526の先頭に
近いものから優先してCSSの発行を行う。また集計回
路530は、CSRエントリ526の先頭において全て
のCSRフィールド529−0〜1が有効であるか否か
を検査し、もし有効であった場合は、不正なCSRの組
合せがないか検査する。不正なCSRの組合せとは、D
IRTYのCSRが存在しており、かつ、その他のCS
RがDONE以外の場合である。不正なCSRの組合せ
を検出した場合、対応するプロセッサボード10−0〜
1へCSSとしてERRを信号線L500−0〜1を経
由して送付し、当該エントリをデキューする。また不正
なCSRの組合せが存在しない場合、当該エントリをデ
キューする。
データ転送抑止 実施の形態1においては、図8においてメモリボード6
0−i(i=0,1)は信号線L501−i(i=0,
1)を経由してコヒーレンシ報告集計ユニット50か
ら、コヒーレントリードトランザクションを受け取った
順に、転送許可あるいは転送抑止通知を受け取ってい
た。本実施の形態では、転送許可あるいは転送抑止通知
はコヒーレントリードトランザクションの到着順とは無
関係に到着する代わりに、対応するトランザクションの
TXIDが付加される。したがって、主記憶制御回路7
0においては、信号線L501−i(i=0,1)経由
で転送許可あるいは転送抑止通知を受け取った際に、付
加されているTXIDを基にコヒーレントリードキュー
701を検索し、TXIDフィールド702に同じ内容
を持つエントリに対して、そのENフィールド705に
転送許可あるいは転送抑止通知を格納する。
ン受信回路23は信号線L500−i(i=0,1)を
経由してコヒーレンシ報告集計ユニット50から、コヒ
ーレントリードトランザクションを受け取った順に、C
SSを受け取っていた。本実施の形態では、CSSはコ
ヒーレントリードトランザクションの発行順とは無関係
に到着する代わりに、対応するトランザクションのTX
IDが付加される。したがって、トランザクション受信
回路23においては、信号線L500−i(i=0,
1)経由でCSSを受け取った際に、付加されているT
XIDを基にリードデータキュー230を検索し、TX
IDフィールド231に同じ内容を持つエントリに対し
て、そのCSSフィールド234にCSSを格納する。
0を経由してリードデータキュー230の先頭エントリ
からその内容をキャッシュアクセス制御回路21へ送付
していたが、本実施の形態においては、DATAフィー
ルド233、および、CSSフィールド234がout
−of−orderで有効となるため、両方が揃ったエ
ントリからその内容を信号線L230を経由してキャッ
シュアクセス制御回路21へ送付する。
0〜1からコヒーレンシ報告集計ユニット50へのCS
Rの送付の際、TXIDを付加して送付していた。これ
は、クロスバユニット40においてはヘッダサイクルT
0で得られる情報のみしかコヒーレンシ報告集計ユニッ
ト50には送付していないため、アドレスサイクルT1
に含まれるTXIDについては、プロセッサボード10
−0〜1から送付している。しかしTXIDを送付する
ためには、このための信号線をプロセッサボード10−
0〜1とコヒーレンシ報告集計ユニット50の間に設け
るか、あるいは、複数サイクルをかけてCSSおよびT
XIDを送付する必要がある。これを避けるためには、
クロスバユニット40(図6)におけるID送付回路4
10においてMCDQ409内のアドレスサイクルT1
を解釈し、TXIDT8を信号線L450を経由して送
付する方法が考えられる。この場合、必要となる信号線
の追加はクロスバユニット40とコヒーレンシ報告ユニ
ットに限定されるため、ピン数の増加を抑えることがで
きる。
ータリターン、プロセッサボード間転送がクロスバユニ
ット40という「並列にトランザクションを送付可能な
相互結合網」を用いて転送している。本実施の形態にお
いては、これをバスに置き換えた場合について述べる。
この構成により、メモリボード60−0〜1が複数存在
するような計算機システムにおいて、コヒーレントリー
ド要求が同時に複数個オーバラップ可能なマルチプロセ
ッサシステムを安価に提供できる。
成である。実施の形態1ではクロスバユニット40を用
いていたのと異なり、プロセッサボード10−0〜1の
各々、および、メモリボード60−0〜1の各々をバス
31で接続している。コヒーレンシ報告集計ユニット5
0とプロセッサボード10−0〜1、あるいは、メモリ
ボード60−0〜1との接続形態は実施の形態と同様で
あるが、実施の形態1ではクロスバユニット40とコヒ
ーレンシ報告集計ユニット50が接続されていたのに対
して、バス31とコヒーレンシ報告集計ユニット50が
信号線L310で接続されている点が異なる。図16は
本実施の形態におけるコヒーレンシ報告集計ユニット5
0の内部構成を示している。実施の形態1とは異なり、
コヒーレンシ報告集計ユニット50はDIDQ501お
よびMIDQ502を登録するためにTX種デコーダ5
40、および、主記憶ポート番号生成回路550を備え
る。また、プロセッサボード10−0〜1においてトラ
ンザクション送信回路22(図3)は、ヘッダ生成回路
221、主記憶ポート番号生成回路220、ヘッダサイ
クルT0を保持するレジスタ226が必要なくなるが、
これに関しては図示していない。またバス31を用いた
ことによりバスアービタが必要となるが、これについて
は従来技術で実現可能であるため、図示および説明を省
略する。
関する動作が全て不要となる。
Q502の格納方法が異なる。実施の形態1ではクロス
バユニット40に送付されるヘッダサイクルT0内の情
報を用いて、クロスバユニット40がCSSを送付すべ
きポート番号および抑止信号を送付すべきメモリボード
60−0〜1のポート番号を決定し、コヒーレンシ報告
集計ユニット50に対して送付していた。本実施の形態
においては、クロスバユニット40の代わりにバスを用
いているためヘッダサイクルT0が存在しない。したが
ってバス上のアドレスサイクルT1の一部を用いて上記
情報を得る必要がある。
た場合、コヒーレンシ報告集計ユニット50はこれを検
出し、信号線L310を経由してトランザクションにお
けるアドレスサイクルT1中のTX種T5、アドレスT
6、ポート番号T7を取り込む。主記憶ポート番号生成
回路550は、信号線L310を経由してアドレスT6
を取り込み、実施の形態1における(3−C)の処理と
同様にアドレスからメモリボード60−0〜1のポート
番号を生成する。TX種デコーダはTX種T5をデコー
ドし、TX種T5がコヒーレントリード要求である、す
なわち、データリードあるいはデータリード−無効化で
あることを検出すると、信号線L310経由でポート番
号をDIDQ501に格納し、上記で得たメモリボード
ポート番号を信号線L550を経由してMIDQへ格納
する。
ては、実施の形態1と同様である。
ット、および、複数のメモリユニットを備えるマルチプ
ロセッサシステムにおいて、コヒーレントリード要求が
同時に複数個オーバラップして実行される場合に、オー
バラップ可能なコヒーレントリード要求の数を限定する
ことなく、コヒーレンシ報告の集計を行うことができ
る。
およびデータが転送可能な相互結合網を介して複数のプ
ロセッサユニット、および、複数のメモリユニットが接
続されるマルチプロセッサシステムにおいて、コヒーレ
ントリード要求が同時に複数個オーバラップして実行さ
れる場合に、オーバラップ可能なコヒーレントリード要
求の数を限定することなく、コヒーレンシ報告の集計を
行うことができる。
トと上記コヒーレンシ報告の集計を行う機構間のピン数
をできるだけ少なくすることができる。
ブロック図。
ブロック図。
路の概略ブロック図。
路の概略ブロック図。
マット。
ブロック図。
ニットの概略ブロック図。
ック図。
図。
ー図。
略ブロック図。
路の概略ブロック図。
ユニットの概略ブロック図。
略ブロック図。
計ユニットの概略ブロック図。
Claims (18)
- 【請求項1】それぞれプロセッサとキャッシュメモリと
を有する複数のプロセッサユニットと、 上記複数のプロセッサユニットにより共有される複数の
メモリユニットと、 上記複数のプロセッサユニットと上記複数のメモリユニ
ットとを相互に接続する第1の相互結合網と、 上記複数のプロセッサユニットを相互に接続する第2の
相互結合網と、 上記第1の相互結合網と上記第2の相互結合網とを接続
する信号線とを有することを特徴とするマルチプロセッ
サシステム。 - 【請求項2】上記第2の相互結合網は、上記複数のプロ
セッサの上記キャッシュメモリの状態に関する情報を集
計して、上記信号線により伝達される信号に応じて上記
複数のプロセッサユニットのいずれか一つのプロセッサ
ユニットに上記集計した情報に基に生成した情報を送付
することを特徴とする請求項1に記載のマルチプロセッ
サシステム。 - 【請求項3】それぞれプロセッサを有する複数のプロセ
ッサユニットと、 上記複数のプロセッサユニットにより共有される複数の
メモリユニットと、 上記複数のプロセッサユニットと上記複数のメモリユニ
ットとの間でアドレス若しくはデータ、又はその双方を
送付する第1の相互結合網と、 上記複数のプロセッサユニットを相互に接続する第2の
相互結合網とを有し、 上記複数のプロセッサユニットの各々は、キャッシュメ
モリと、上記第1の相互結合網を介して受理したキャッ
シュ検査を要するメモリアクセス要求に応答して、該キ
ャッシュメモリの状態を基に、キャッシュ検査報告を上
記第2の相互結合網に送付するキャッシュ検査報告手段
とを有し、 上記第2の相互結合網は、上記複数のプロセッサユニッ
トから受理した上記キャッシュ検査報告を集計して、上
記キャッシュ検査を要するメモリアクセス要求の発行元
である上記複数のプロセッサユニットのいずれかの上記
キャッシュメモリの状態を定める情報を発生するキャッ
シュ検査報告集計手段と、該情報を上記キャッシュ検査
を要するメモリアクセス要求の発行元に送付する手段を
有することを特徴とするマルチプロセッサシステム。 - 【請求項4】上記第1の相互結合網は、上記第2の相互
結合網との間にキャッシュ検査を要するメモリアクセス
要求の発行元を通知する手段を有し、 上記第2の相互結合網は、上記キャッシュ検査報告集計
手段が発生する上記情報を上記メモリアクセス要求の発
行元を通知する手段により指定される上記複数のプロセ
ッサユニットのいずれかに送付することを特徴とする請
求項3に記載のマルチプロセッサシステム。 - 【請求項5】上記第1の相互結合網は、並列に上記アド
レス若しくは上記データ、又はその双方を、上記複数の
プロセッサユニット若しくはそのいずれか、又は上記複
数のメモリユニットのいずれかに送付する手段を有する
請求項3又は請求項4いずれかに記載のマルチプロセッ
サシステム。 - 【請求項6】上記第1の相互結合網は、上記キャッシュ
検査を要するメモリアクセス要求を、上記複数のプロセ
ッサユニット又は上記複数のメモリユニットのいずれか
に送付する手段を有し、 上記複数のプロセッサユニット及び上記複数のメモリユ
ニットが上記キャッシュ検査を要するメモリアクセス要
求を受理する順序が一致することを特徴とする請求項5
記載のマルチプロセッサシステム。 - 【請求項7】上記第2の相互結合網は、上記複数のプロ
セッサユニットのいずれが存在しているかを識別する手
段を有し、 上記キャッシュ検査報告集計手段は、上記識別する手段
を用いて、上記キャッシュ検査を要するメモリアクセス
要求の発行元の上記キャッシュメモリの状態を定める上
記情報を発生することを特徴とする請求項3乃至請求項
6いずれかに記載のマルチプロセッサシステム。 - 【請求項8】上記識別する手段は、上記マルチプロセッ
サの立ち上げ時に、上記複数のプロセッサユニットから
送付される存在信号により設定されることを特徴とする
請求項7に記載のマルチプロセッサシステム。 - 【請求項9】上記複数のプロセッサユニットは、 複数の上記プロセッサと、 複数の上記キャッシュメモリと、 上記複数のプロセッサのいずれのプロセッサが存在して
いるかを識別する識別手段とを有し、 上記キャッシュ検査報告手段は、上記複数のキャッシュ
メモリの状態を基に、該複数のキャッシュメモリのキャ
ッシュ検査報告を集計して上記第2の相互結合網へ送付
する手段を有し、 上記複数のプロセッサは、上記キャッシュ検査を要する
メモリアクセス要求に応答して、上記複数のキャッシュ
メモリの状態を基に、上記複数のキャッシュメモリのキ
ャッシュ検査報告を上記キャッシュ検査報告手段に送付
し、 上記キャッシュ検査報告手段は、上記複数のキャッシュ
メモリのキャッシュ検査報告と上記識別手段とを用い
て、上記プロセッサユニットのキャッシュ検査報告を発
生することを特徴とする請求項3乃至請求項6いずれか
に記載のマルチプロセッサシステム。 - 【請求項10】上記複数のプロセッサユニットの各々
は、上記キャッシュ検査を要するメモリアクセス要求を
受理した順序で、上記キャッシュメモリの状態を上記第
2の相互結合網に送付し、 上記第2の相互結合網は、上記メモリアクセス要求の発
行元の上記キャッシュメモリの状態を定める上記情報を
上記メモリアクセス要求の発行元を通知する手段により
指定される上記複数のプロセッサユニットのいずれか
に、上記メモリアクセス要求の発行元の通知と同じ順序
で送付することを特徴とする請求項4に記載のマルチプ
ロセッサシステム。 - 【請求項11】上記複数のプロセッサユニットは、上記
キャッシュ検査を要するメモリアクセス要求に応答し
て、最新のデータを上記キャッシュ検査を要するメモリ
アクセス要求の発行元に送付する手段を有し、 上記複数のメモリユニットは、上記メモリアクセス要求
に応答して上記複数のメモリユニットが保持するデータ
を上記キャッシュ検査を要するメモリアクセス要求の発
行元へ送付する動作を抑止する手段を有し、 上記第2の相互結合網は、上記キャッシュ検査を要する
メモリアクセス要求の発行元の上記キャッシュメモリの
状態を定める上記情報により、上記複数のメモリユニッ
トのいずれかに、上記プロセッサユニットへのデータ転
送の抑止を通知する手段を有する請求項3乃至請求項1
0いずれかに記載のマルチプロセッサシステム。 - 【請求項12】上記複数のプロセッサユニットは、上記
キャッシュ検査を要するメモリアクセス要求に応答し
て、最新のデータを上記キャッシュ検査を要するメモリ
アクセス要求の発行元に送付する手段と、 上記第2の相互結合網により通知された、上記キャッシ
ュ検査を要するメモリアクセス要求の発行元の上記キャ
ッシュメモリの状態を定める上記情報に応じて、上記プ
ロセッサユニットから送付された上記最新のデータと、
上記メモリユニットから送付されたデータとを選択する
手段とを備える請求項3乃至請求項11いずれかに記載
のマルチプロセッサシステム。 - 【請求項13】上記第1の相互結合網は、共有バスであ
ることを特徴とする請求項3乃至請求項12いずれかに
記載のマルチプロセッサシステム。 - 【請求項14】上記第2の相互結合網は、内部のビジー
状態を上記第1の相互結合網に通知する手段を有し、 上記第1の相互結合網は、上記第2の相互結合網のビジ
ー状態により、上記キャッシュ検査を要するメモリアク
セス要求を上記複数のプロセッサユニット及び上記複数
のメモリユニットに送付することを抑止する手段を有す
る請求項3乃至請求項12いずれかに記載のマルチプロ
セッサシステム。 - 【請求項15】上記第2の相互結合網は、上記キャッシ
ュ検査を要するメモリアクセス要求の発行元の上記キャ
ッシュメモリの状態を定める上記情報を発生する際に、
キャッシュ状態の一貫性が保証されていないことを検出
し、その一貫性が保証されない場合には上記複数のプロ
セッサユニットのいずれかにエラー報告を送付する手段
を有する請求項3乃至請求項14いずれかに記載のマル
チプロセッサシステム。 - 【請求項16】上記第2の相互結合網は、上記メモリア
クセス要求の発行元を通知する手段により上記複数のプ
ロセッサユニットのいずれかが指定される以前に、上記
複数のプロセッサユニットから上記キャッシュメモリの
状態を受け取った際に、上記複数のプロセッサユニット
のいずれかにエラー通知を送付する手段を備える請求項
4記載のマルチプロセッサシステム。 - 【請求項17】上記第1の結合網又は上記第2の相互結
合網は、集積回路に実装されることを特徴とする請求項
1乃至請求項16いずれかに記載のマルチプロセッサシ
ステム。 - 【請求項18】上記複数のプロセッサユニットのいずれ
か、又は上記複数のメモリユニットのいずれかが、上記
第1の相互結合網、又は上記第2の相互結合網と独立に
着脱可能であることを特徴とする請求項1乃至請求項1
7いずれかに記載のマルチプロセッサシステム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22223197A JP3864509B2 (ja) | 1997-08-19 | 1997-08-19 | マルチプロセッサシステム |
| US09/134,336 US6263405B1 (en) | 1997-08-19 | 1998-08-14 | Multiprocessor system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22223197A JP3864509B2 (ja) | 1997-08-19 | 1997-08-19 | マルチプロセッサシステム |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH1165928A true JPH1165928A (ja) | 1999-03-09 |
| JPH1165928A5 JPH1165928A5 (ja) | 2005-03-03 |
| JP3864509B2 JP3864509B2 (ja) | 2007-01-10 |
Family
ID=16779179
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22223197A Expired - Fee Related JP3864509B2 (ja) | 1997-08-19 | 1997-08-19 | マルチプロセッサシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6263405B1 (ja) |
| JP (1) | JP3864509B2 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005539282A (ja) * | 2002-01-09 | 2005-12-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 |
| JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
| JP2007207238A (ja) * | 2006-02-02 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 |
| WO2007096980A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | 記録制御装置および記録制御方法 |
| JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000010860A (ja) * | 1998-06-16 | 2000-01-14 | Hitachi Ltd | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム |
| JP3764015B2 (ja) * | 1999-12-13 | 2006-04-05 | 富士通株式会社 | メモリアクセス方法及びマルチプロセッサシステム |
| US6631474B1 (en) * | 1999-12-31 | 2003-10-07 | Intel Corporation | System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching |
| US6928520B2 (en) * | 2000-04-30 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Memory controller that provides memory line caching and memory transaction coherency by using at least one memory controller agent |
| US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
| US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
| US6775686B1 (en) * | 2000-08-30 | 2004-08-10 | Motorola, Inc. | High availability redundant array of data storage elements that bridges coherency traffic |
| US6725342B1 (en) * | 2000-09-26 | 2004-04-20 | Intel Corporation | Non-volatile mass storage cache coherency apparatus |
| US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
| US7275135B2 (en) * | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
| KR100474704B1 (ko) * | 2002-04-29 | 2005-03-08 | 삼성전자주식회사 | 데이터의 버스트 동시쓰기가 가능한 프로세서 이중화 장치 |
| US7000041B2 (en) * | 2003-03-31 | 2006-02-14 | Intel Corporation | Method and an apparatus to efficiently handle read completions that satisfy a read request |
| US20070245171A1 (en) * | 2006-03-27 | 2007-10-18 | Patrick Ohly | Methods and apparatus to perform distributed memory checking |
| JP4829038B2 (ja) * | 2006-08-17 | 2011-11-30 | 富士通株式会社 | マルチプロセッサシステム |
| JP5115075B2 (ja) * | 2007-07-25 | 2013-01-09 | 富士通株式会社 | 転送装置、転送装置を有する情報処理装置及び制御方法 |
| US20110161585A1 (en) * | 2009-12-26 | 2011-06-30 | Sailesh Kottapalli | Processing non-ownership load requests hitting modified line in cache of a different processor |
| US8418187B2 (en) * | 2010-03-01 | 2013-04-09 | Arm Limited | Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system |
| US20110213935A1 (en) * | 2010-03-01 | 2011-09-01 | Arm Limited | Data processing apparatus and method for switching a workload between first and second processing circuitry |
| US8533505B2 (en) * | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
| US8751833B2 (en) | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
| US9436605B2 (en) | 2013-12-20 | 2016-09-06 | Intel Corporation | Cache coherency apparatus and method minimizing memory writeback operations |
| DE102014201682A1 (de) * | 2014-01-30 | 2015-07-30 | Robert Bosch Gmbh | Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem |
| JP2019053617A (ja) * | 2017-09-15 | 2019-04-04 | 株式会社東芝 | システムlsiおよびシステムlsiの故障検出方法 |
| US11445020B2 (en) * | 2020-03-24 | 2022-09-13 | Arm Limited | Circuitry and method |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1991010200A1 (en) * | 1990-01-05 | 1991-07-11 | Maspar Computer Corporation | Parallel processor memory system |
| JPH0776942B2 (ja) * | 1991-04-22 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システムおよびそのデータ伝送装置 |
| EP0553743A1 (en) * | 1992-01-31 | 1993-08-04 | Motorola, Inc. | A cache controller |
| US5559987A (en) * | 1994-06-30 | 1996-09-24 | Digital Equipment Corporation | Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system |
| US6038644A (en) * | 1996-03-19 | 2000-03-14 | Hitachi, Ltd. | Multiprocessor system with partial broadcast capability of a cache coherent processing request |
-
1997
- 1997-08-19 JP JP22223197A patent/JP3864509B2/ja not_active Expired - Fee Related
-
1998
- 1998-08-14 US US09/134,336 patent/US6263405B1/en not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005539282A (ja) * | 2002-01-09 | 2005-12-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 |
| JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
| JP2007207238A (ja) * | 2006-02-02 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 |
| WO2007096980A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | 記録制御装置および記録制御方法 |
| US8176260B2 (en) | 2006-02-24 | 2012-05-08 | Fujitsu Limited | Recording controller including snoop unit issuing invalidation request and response unit outputting notification indicating identification information for indentifying recording request and recording control method thereof |
| JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3864509B2 (ja) | 2007-01-10 |
| US6263405B1 (en) | 2001-07-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1165928A (ja) | マルチプロセッサシステム | |
| US7389389B2 (en) | System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system | |
| US6748498B2 (en) | Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector | |
| US6622217B2 (en) | Cache coherence protocol engine system and method for processing memory transaction in distinct address subsets during interleaved time periods in a multiprocessor system | |
| US6675265B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
| US6925537B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
| US6751710B2 (en) | Scalable multiprocessor system and cache coherence method | |
| US6640287B2 (en) | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests | |
| US6738868B2 (en) | System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes | |
| US6088771A (en) | Mechanism for reducing latency of memory barrier operations on a multiprocessor system | |
| US6055605A (en) | Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches | |
| US5684977A (en) | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system | |
| US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
| US7991964B2 (en) | Pre-coherence channel | |
| US5887138A (en) | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes | |
| US5581729A (en) | Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system | |
| US5749095A (en) | Multiprocessing system configured to perform efficient write operations | |
| US5655100A (en) | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system | |
| US5860159A (en) | Multiprocessing system including an apparatus for optimizing spin--lock operations | |
| US6279084B1 (en) | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system | |
| US6249520B1 (en) | High-performance non-blocking switch with multiple channel ordering constraints | |
| US20090037665A1 (en) | Hiding conflict, coherence completion and transaction id elements of a coherence protocol | |
| US6622218B2 (en) | Cache coherence protocol engine and method for efficient processing of interleaved memory transactions in a multiprocessor system | |
| US6272601B1 (en) | Critical word forwarding in a multiprocessor system | |
| US6460133B1 (en) | Queue resource tracking in a multiprocessor system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040330 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040330 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040330 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060829 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060912 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060925 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |