JP3721283B2 - 主記憶共有型マルチプロセッサシステム - Google Patents
主記憶共有型マルチプロセッサシステム Download PDFInfo
- Publication number
- JP3721283B2 JP3721283B2 JP15656099A JP15656099A JP3721283B2 JP 3721283 B2 JP3721283 B2 JP 3721283B2 JP 15656099 A JP15656099 A JP 15656099A JP 15656099 A JP15656099 A JP 15656099A JP 3721283 B2 JP3721283 B2 JP 3721283B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- crossbar switch
- nodes
- module
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、一般にプロセッサが主記憶を共有し、キャッシュメモリのコヒーレンシ制御のために、要求キャッシュラインのアドレスを全プロセッサに配布するようなスヌープ方式を使用しているマルチプロセッサシステムに係り、特に、CPUと主記憶、及びキャッシュメモリユニットが搭載され、小規模システムと大規模システムで共通の部品として使用できる構成のノードを有するマルチプロセッサシステムに関する。
【0002】
【従来の技術】
従来技術として、CPUモジュールと主記憶モジュールを同一のボードに搭載したノードを、小規模マルチプロセッサシステムと大規模マルチプロセッサシステムで共通に使用している装置については、「James Laudon,et.al.System Overview of the SGI Origin200/2000 Product Line.Proceeding ofthe 47th IEEE COMPUTER SOCIETY INTERNATIONAL CONFERENCE,pp.150−156,Feb.1997」に記載されている。
Origin200/2000は、1枚以上のノードから構成され、各ノードにはCPU2個、主記憶、ディレクトリ、Hub chipから構成される。
Hub chipは、CPUとの通信インタフェース制御部、主記憶及びディレクトリの通信インタフェース制御部、外部入出力インタフェース制御部、及びこれらのインタフェース制御部を結合するクロスバスイッチで構成される。
小規模マルチプロセッサシステムに該当するOrigin200は、通常1枚のノードで構成されるが、2枚のノードをHub chipからの外部入出力インタフェースで直接接続した構成もある。大規模マルチプロセッサシステムに相当するOrigin2000では、2枚以上のノードボードをクロスバスイッチを搭載したルーターボードで接続している。以下の記述ではOrigin200とOrigin2000は区別せずOriginと呼ぶことにする。
Originの例のように、システムの規模に関わらず同一のノードを使用して多様なシステム構成が可能なことは、開発コストの削減、開発期間の短縮に有効な手段である。
【0003】
また、OriginはccNUMA(cache−coherent Non−Uniform Memory Access)方式のマルチプロセッサで、ディレクトリ方式のキャッシュコヒーレンシ制御を行っている。
この制御についての詳細は、「James Laudon,et.al.The SGI Origin:A ccNUMA Highly Scalable Server.Proceeding of 24th Annual Symposium on Computer Archtecture,pp.241−251,Jun.1997」に記載されている。
Originのメモリアクセスは通常以下のように行われる。CPUで発行されたメモリアクセス要求は、要求するアドレスに対応する主記憶の存在するノードに転送され、該ノード内のディレクトリを検索する。ディレクトリは、要求したアドレスに対応するキャッシュラインごとに設けられ、どのノードのキャッシュメモリに転送され、どのような状態になっているか記録されている。
ディレクトリを検索した結果、判明したノードのキャッシュメモリ、あるいは主記憶から読み出したデータは、要求発行元のCPUに転送される。
【0004】
さらに、従来技術として、特開平9−138782に、キャッシュコヒーレンシ制御の為に、メモリアクセス要求の処理順序を決定する調停回路を有するクロスバスイッチが示されている。一般に、クロスバスイッチは、データの並列転送を持ち、スループット性能がバスより高いことは一般に知られている。
しかし、メモリアクセスの順番が部分的に逆転し、キャッシュコヒーレンシを崩す可能性がある。
Originではディレクトリ方式でキャッシュコヒーレンシを維持しているが、特開平9−138782で示されているマルチプロセッサシステムでは、CPUから発行されたメモリアクセス要求を、クロスバスイッチモジュール内の論理的に唯一の動作をする調停回路で一意の順番付けを行うことで、キャッシュコヒーレンシ制御を行っている。
順番付けをされた要求は、クロスバスイッチモジュール内の選択回路を通して、CPUモジュールや主記憶モジュール、及び入出力モジュールに転送される。
このように、クロスバスイッチにメモリアクセス要求の順番付け機能をもたせ、全てのCPUモジュールにメモリアクセス要求をブロードキャストすることでスヌープキャッシュを実現する方式を、以下においては擬似スヌープ方式と呼ぶことにする。
また、擬似スヌープ方式を実現するためのメモリアクセス要求の順番付け機能を搭載したクロスバスイッチモジュールを擬似スヌープ機能付クロスバスイッチモジュールと呼ぶことにする。
しかしながら、特開平9−138782のマルチプロセッサシステムでは、Originのように、大規模システムに用いられているノードだけを少数使用し、これらのノード間を直結して小規模システムを構成できるような装置にはなっていない。
【0005】
【発明が解決しようとする課題】
上述のディレクトリ方式のキャッシュコヒーレンシ制御を行うマルチプロセッサシステムの場合、一般に、ディレクトリを参照を行う分だけLSI間転送の回数が多くなり、メモリレイテンシが増大するという課題がある。
また、主記憶の量を増大する場合、ディレクトリの量も増大する。したがって、大容量主記憶を搭載する場合、大量のディレクトリ用のメモリが必要となるためコストが高くなる課題もある。
本発明の目的は、上述のOriginと同様に、ノード数の少ない小規模システムとノード数の多い大規模システムで共通のノードを使うことによる開発コストを削減できるマルチプロセッサシステムを提供することにある。
本発明の他の目的は、小規模システムでは複数ノードを直結してシステムを構成し、ノード外部のクロスバスイッチを省略できるマルチプロセッサシステムを提供することにある。
さらに、本発明の他の目的は、ディレクトリを用いないキャッシュコヒーレンシ制御方式を使うことで、ディレクトリ参照のオーバヘッドによるメモリレイテンシの増分を削減し、かつ主記憶を増加させても、主記憶以外のコストが増加しないマルチプロセッサシステムを提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するため、本発明は、
複数のノードを有する主記憶共有型マルチプロセッサシステムにおいて、
該各ノードは、キャッシュメモリを有する1個以上のCPUモジュールと、1個以上の主記憶モジュールと、これらのモジュールと他ノードの間の通信制御を行うノード制御モジュールを備え、
該ノード制御モジュールは、ノード間通信のインタフェースを制御する通信制御モジュールと、全ノードで発行するメモリアクセス要求の処理順序を決定してキャッシュコヒーレンス制御を行うクロスバスイッチを有するクロスバスイッチモジュールを有し、
該クロスバスイッチモジュールは、モードレジスタを有し、該モードレジスタにセットされた値に応じて該クロスバスイッチを有効、あるいは無効にするようにしている。
【0007】
また、前記クロスバスイッチモジュールは、前記モードレジスタに代えてモード信号ピンを有し、該モード信号ピンの信号値に応じて該クロスバスイッチを有効、あるいは無効にするようにしている。
【0008】
また、前記クロスバスイッチモジュールは、全ノードから前記クロスバスイッチに転送されるメモリアクセス要求がどのノード内の主記憶モジュールに割り付けられているアドレス空間に対する要求であるかを判別する手段を有するようにしている。
【0009】
また、前記ノードの外部に、全ノードで発行するメモリアクセス要求の処理順序を決定してキャッシュコヒーレンス制御を行うクロスバスイッチを有する外部クロスバスイッチモジュールを設け、前記各ノードを該外部クロスバスイッチモジュールに接続し、前記各ノード内のクロスバスイッチを無効にするようにしている。
【0010】
また、前記ノード間を直接接続し、少なくとも1つのノード内のクロスバスイッチを有効にするようにしている。
【0011】
【発明の実施の形態】
以下、本発明に係わるマルチプロセッサを図面に示したいくつかの実施例を参照してさらに詳細に説明する。
《実施例1》
(装置構成の概略)
図1は、本発明に係わる主記憶共有型マルチプロセッサシステムの装置構成の概略を示す。
図1において、5−i(0≦i≦N、Nは1以上の自然数)はノードであり、複数のノード間を信号線c−i、d−iで結合する。
次にノード5−iの構成について説明する。各ノードは全て同一構造をしている。
ノード5−iは、CPUモジュール4−i−j(1≦j≦k、kは1以上の自然数)、キャッシュモジュール6−i、主記憶モジュール7−i、入出力モジュール8−i、ノード制御モジュール2−iから構成される。ノード制御モジュール2−iは、通信制御モジュール3−i、クロスバスイッチモジュール1−iから構成されている。
【0012】
各CPUモジュール4−i−jは、ライトバック方式のプロセッサキャッシュ(図示せず)を有する。また、各CPUモジュールはプロセッサバスh−iで結合されている。
キャッシュモジュール6−iは、ライトバック方式のキャッシュメモリ(図示せず)とキャッシュメモリ制御部(図示せず)で構成されている。キャッシュモジュール6−iのキャッシュメモリは、ノード5−iの全CPUモジュール4−i−jで共有されている。本実施例のマルチプロセッサシステムのメモリ階層構造においては、プロセッサキャッシュと主記憶の中間に位置するキャッシュである。
主記憶モジュール7−iは全ノード5−iで共有される主記憶空間の一部を構成している。
入出力モジュール8−iは複数の入出力装置、例えば、ディスク装置9−iに接続されている。この入出力モジュールには、他の入出力装置、例えば、回線接続装置(図示せず)等も接続されている。
【0013】
通信制御モジュール3−iは、CPUモジュール4−i−j、キャッシュモジュール6−i、主記憶モジュール7−i、及び入出力モジュール8−iと、それぞれ、プロセッサバスh−i、信号線e−i、f−i、g−iで結合している。
さらに、通信制御モジュール3−iは、クロスバスイッチモジュール1−iと、信号線a−i、b−iで結合している。
通信制御モジュール3−i(内部の構造は図示せず)は、各モジュール間の通信制御を行っている。
例えば、CPUモジュール4−i−jからプロセッサバスh−iに転送されたメモリアクセス要求をキャッシュモジュール6−iに転送する処理や、他ノードに発行したメモリアクセス要求をクロスバスイッチモジュールを通して転送するための、通信プロトコル制御や、通信を行うデータのフォーマット変更等を行っている。
クロスバスイッチモジュール1−iは、自ノード内の通信制御モジュール3−iと信号線a−i、b−iで結合し、他ノードと信号線c−i、d−iで結合している。
【0014】
本発明では、同一構成のノードを、小規模構成のマルチプロセッサシステム、大規模構成のマルチプロセッサシステムで利用できることを特徴とする。
ここで、マルチプロセッサシステムの規模とは、CPUモジュールの個数、つまり、ノードの枚数が少ないシステムを小規模、ノードの枚数が多いものを大規模と言っている。
小規模、大規模の明確な数での切り分けはなく、実装上の都合でクロスバスイッチモジュール1−iに設けられている他ノードとの結合信号線c−i、d−iの組数によって決まる。
図1は、小規模システムの構成を示し、図2は大規模システムの構成を示している。
大規模構成システムの構成は、図1と同じ構成の複数ノード5−iを、ノード5−iの外に設けた外部クロスバスイッチモジュール20と、信号線c−0、…、c−N、d−0、…、d−Nで結合している。
外部クロスバスイッチモジュール20は、前述した特開平9−138782号公報に記載されたものと同様のものである。
【0015】
図3は、ノード制御モジュール2−0の内部を示している。
ノードは全て同一構造なのでここでは図1のノード5−0を例にとり図3を用いて説明する。
ノード制御モジュール2−0は、既に説明したとおり通信制御モジュール3−0と、クロスバスイッチモジュール1−0を有している。
クロスバスイッチモジュール1−0は、擬似スヌープ機能付クロスバスイッチ100、このクロスバスイッチ100を使用する有効モードか使用しない無効モードかを設定するモードレジスタであるクロスババイパスフラグレジスタ300(説明及び図面においては、クロスババイパスフラグレジスタ300をクロスババイパスフラグ300とも記載する)、マルチプレクサ303、304、30−v(2≦v≦N)から構成されている。
ただし、ノード数が2枚の場合は、マルチプレクサ30−2、…、30−N、信号線31−2、…、31−N、c−2、…、c−N、d−2、…、d−Nは使用されない。
【0016】
クロスババイパスフラグレジスタ300は、1ビットのフラグレジスタで信号線301で通信制御モジュール3−0と接続、信号線302でマルチプレクサ303、304、30−v(2≦v≦N)と接続されている。
マルチプレクサ304は、擬似クロスバからの信号306と別ノードからの信号線c−1を、クロスババイパスフラグからの信号線302を使ってどちらか一方を選択し、信号線b−0に出力している。
マルチプレクサ303は、擬似クロスバからの信号305と通信制御モジュール3−0からの信号線a−0を、クロスババイパスフラグからの信号線302を使ってどちらか一方を選択し、信号線d−1に出力している。
【0017】
クロスババイパスフラグ300が1のとき、マルチプレクサ303、304共に、それぞれ信号線a−0、c−1を選択し、擬似スヌープ機能付クロスバスイッチ100をバイパスする。
クロスババイパスフラグ300が0のときは、マルチプレクサ303、304はそれぞれ、信号線305、306を選択する。
【0018】
マルチプレクサ30−vは、クロスババイパスフラグが0のとき、他ノードからの信号線c−vを選択し、信号線31−vで擬似スヌープ機能付クロスバスイッチ100に接続する。
クロスババイパスフラグ300が1のときは、信号線310を選択し、トランザクションが存在しないことを示すNOP信号311をマルチプレクサ30−vへ転送する。
例えばオールゼロの信号がトランザクションが無い状態を示すならば、該NOP信号は配線時に固定値オールゼロに設定される。
【0019】
このように、クロスババイパスフラグ300を0にした場合を「擬似スヌープ機能付クロスバスイッチ100が有効」、1にした場合を「擬似スヌープ機能付クロスバスイッチ100が無効」と呼ぶことにする。
図3の擬似スヌープ機能付クロスバスイッチ100が無効の場合は、通信制御モジュール3−0の信号線a−0、b−0がノードの入出力として直接使われる。 本実施例1のマルチプロセッサシステムにおいて、擬似スヌープ機能付クロスバスイッチ100は、1枚のノードでのみ有効にし、他のノードは全て無効にする。
図2の外部クロスバスイッチモジュール20を使った大規模構成の場合には、図3の擬似スヌープ機能付クロスバスイッチ100は、全ノードで無効にする。
【0020】
図3のクロスババイパスフラグレジスタ300は、アドレス空間に配置したマップドレジスタにしておき、システム起動時に一枚のノードのクロスババイパスフラグレジスタだけ0にしておき、残りのノードのクロスババイパスフラグレジスタは全て1になるように設定する。
または、図4のように、モード信号ピン(クロスババイパスモード信号ピン)40を設置し、ボードの配線時にあらかじめ0か1に決めて配線してしまう方法や、ジャンパスイッチにしてあらかじめ手動で0か1に設定する方法(図示せず)を使用してもよい。
【0021】
(擬似スヌープ機構付クロスバスイッチの機能説明)
擬似スヌープ機構付クロスバスイッチは、キャッシュコヒーレンシ制御のために、特開平9−138782に示されているメモリアクセス要求の順番付け機能を有している。
クロスバスイッチは、データの並列転送ができることが特徴であることは一般に知られている。
しかし、メモリアクセスの順番が部分的に逆転してしまい、キャッシュコヒーレンシを保証できない場合が起きうる。
キャッシュコヒーレンシ制御方式としてバススヌープ方式がよく知られている。このバススヌープ方式では、バスに接続された複数のCPUがCPUバスにメモリアクセス要求を出すために、バス制御部にはバスの使用権を調停する機能がある。
バスの調停で決まったメモリアクセス要求の順番が、システム全体で、つまりどのCPUでも一意であることでキャッシュの一貫性を保っている。
このような、システムで一意のメモリアクセス要求の順番を決定する機能をクロスバスイッチに搭載することで擬似スヌープ機構付クロスバスイッチはキャッシュコヒーレンシ制御を行っている。
【0022】
(装置動作)
ここでは、CPUモジュールで発行されたメモリアクセス要求が、全CPUモジュール、及び主記憶モジュールにブロードキャストされる動作を説明する。
なお、以降では、メモリアクセスの要求や、それに対する応答等、プロセッサバスやクロスバスイッチなどで転送されるデータをトランザクションと呼ぶことにする。
【0023】
図1のCPUモジュール4−0−1において、CPUが内蔵のキャッシュメモリに所望のデータが存在せず、キャッシュミスを起こしたとする。
この場合、CPUモジュール4−0−1はプロセッサバスh−0にキャッシュミスしたアドレスのデータをアクセスするトランザクションを発行する。
該トランザクションは、メモリの読出しである等のトランザクションの種類の情報、トランザクションを発行したCPUモジュール番号等の制御情報、要求するアドレスで構成されている(図示せず)。
プロセッサバスh−0に転送されたトランザクションは、ノード制御モジュール2−0内の通信制御モジュール3−0を通して、キャッシュモジュール6−0に転送する。
このキャッシュモジュール6−0で、該トランザクションの要求するアドレスのデータが保持されていない場合、所望のデータが他のノードでキャッシュされているかどうか調べるために全ノードにこのトランザクションを送ろうとする。
この場合、通信制御モジュール3−0を通して、クロスバスイッチモジュール1−0に転送される。
【0024】
本動作例では、ノード5−0のクロスババイパスフラグ300が0でクロスバスイッチが有効となっている。
他のノード5−i(1≦i≦N)ではクロスババイパスフラグ300が1となりクロスバスイッチが無効となっている。
該クロスバスイッチモジュール1−0に入力されたトランザクションは信号線a−0を通して擬似スヌープ機能付クロスバスイッチ100に転送される。
【0025】
図5は、図3に示されている擬似スヌープ機能付クロスバスイッチ100の構成を示している。
入力信号線a−0、c−1、31−2、…、31−Nは、入力レジスタ500−x(0≦x≦N)、520−x、521−xに接続している。
ただし、図5では、全ての信号の図示はしていない、代表してa−0と31−Nのみを示している。
TYPEレジスタ500−xには、クロスバスイッチに転送されるメモリアクセス要求、ならびにその応答データなど、トランザクションの種類を表す情報が格納される。
MISCレジスタ520−xには、どこのノードで発行されたトランザクションであるか等、トランザクションの制御情報が格納される。
ADDRESSレジスタ521−xには、要求しているアドレス情報が格納される。
また、トランザクション全体は、信号線503−0を通し、トランザクションレジスタ507−0に格納され、信号線t0を通して選択回路512−xに転送され、調停完了を待つ。
【0026】
トランザクションの種類を表すTYPEレジスタ500−0のデータは信号線502−0を通してリクエスト制御504−0へ転送される。
そして、レジスタ506−0の中の転送対象のノードに対応する要素に調停要求信号を書き込む。
ここでは、キャッシュを持ったモジュールがあるノード、あるいは、主記憶が転送先となるので全ノードが転送対象となる。
このレジスタ506−0から調停要求信号r00、…、r0Nが調停回路510−0、…、510−Nに転送される。
【0027】
全ての調停回路が同じ調停動作を同時に行っている場合は、誤った順番付けを行うことはない。
しかし、何らかの理由で出力レジスタ514−x、515−x,516−xにセットできず、各調停回路で調停を行う時間が異なる場合がありうるが、全調停回路は全て同じ優先順位で調停を行っているので、全て同じ順序でトランザクションが出力されていけばキャッシュコヒーレンシが崩れることはない。
【0028】
調停回路510−x(0≦x≦N)で調停に勝利した場合、調停完了信号g0xがリクエスト制御504−xに転送される。
どのノードからのトランザクションが調停で勝ったかという情報は、信号線511−xを通し選択回路512−xに伝えられる。
いま、調停要求r00が調停に勝利したとする。
調停回路510−xは、リクエスト制御504−0に調停完了信号g0xを送り、同時に、選択回路512−0に信号線511−0を通して通知する。
選択回路512−xは、調停に勝ったノードを選択し、トランザクションを信号線t0、及び信号線513−xを通し、出力レジスタ514−x、515−x、516−xに転送する。
リクエスト制御504−xは、調停完了信号g0xが到着した後、調停要求の入ったレジスタ506−0をリセットし、同時に信号線505−0を通してトランザクションレジスタ505−0から削除を指示する。
調停要求コマンドを格納するレジスタ506−0、及びトランザクションレジスタ505−0はリセットされ、次の入力を待つ。
出力レジスタのトランザクションは、図5の信号線306、…、d−N(正しくは、図3の306、305、d−2、…、d−N)を通して各ノードに転送される。
【0029】
図1において、調停後のトランザクションは、ノード5−0ではクロスバスイッチモジュール1−0から信号線b−0を通し通信制御モジュールを通過し、キャッシュモジュール6−0、プロセッサバスh−0に転送され、各々のキャッシュタグを検索する。
ノード5−1、…、5−Nでは、入力されたトランザクションは、クロスバスイッチをバイパスして通信制御モジュールへ入力され、同様にキャッシュモジュール6−1、…、6−N、プロセッサバスh−1、…、h−Nに転送され、各々のキャッシュタグを検索する。
キャッシュの状態を調査した後、各々のノードはこの調査結果をトランザクション発行元に報告し(この手段は図示していないが専用線を設けたり、メモリアクセス要求の転送で用いたクロスバスイッチを使ってもかまわない)、主記憶、あるいはキャッシュメモリからデータがトランザクション発行元に転送され、メモリアクセス要求は完了する。
このデータ転送手段は、クロスバスイッチモジュールを併用する場合もあるし、別のデータ専用の通信路を用意してもよい。
【0030】
《実施例2》
(装置構成の概略)
図6は、本発明に係る主記憶共有型マルチプロセッサシステムの第2の実施例の装置構成の概略を示す。
図6において、5−i(0≦i≦N、Nは1以上の自然数)はノードであり、複数のノード間を信号線60−ij、(0≦j≦N)で結合する。
次にノード5−iの構成について説明する。各ノードは全て同一構造を有している。
ノード5−iは、CPUモジュール4−i−j(1≦j≦k、kは1以上の自然数)、キャッシュモジュール6−i、主記憶モジュール7−i、入出力モジュール8−i、ノード制御モジュール2−iから構成される。
ノード制御モジュール2−iは、通信制御モジュール3−i、クロスバスイッチモジュール1−iから構成されている。
【0031】
各CPUモジュール4−i−jは、ライトバック方式のプロセッサキャッシュ(図示せず)を有する。
また、各CPUモジュールはプロセッサバスh−iで結合されている。
キャッシュモジュール6−iは、ライトバック方式のキャッシュメモリ(図示せず)とキャッシュメモリ制御部(図示せず)で構成されている。
キャッシュモジュール6−iのキャッシュメモリは、ノード5−iの全CPUモジュール4−i−jで共有されている。
本実施例のマルチプロセッサシステムのメモリ階層構造においては、プロセッサキャッシュと主記憶の中間に位置するキャッシュである。
主記憶モジュール7−iは全ノード5−iで共有される主記憶空間の一部を構成している。
入出力モジュール8−iは複数の入出力装置、例えば、ディスク装置9−iに接続されている。
この入出力モジュールには、他の入出力装置、例えば、回線接続装置(図示せず)等も接続されている。
【0032】
通信制御モジュール3−iは、CPUモジュール4−i−j、キャッシュモジュール6−i、主記憶モジュール7−i、入出力モジュール8−iを、それぞれ、プロセッサバスh−i、信号線e−i、f−i、g−iと結合し、クロスバスイッチモジュール1−iとは、信号線a−i、b−iで結合している。
通信制御モジュール3−i(内部の構造は図示しせず)は、各モジュール間の通信制御を行っている。
通信制御の内容は、CPUモジュール4−i−jからプロセッサバスh−iに転送されたメモリアクセス要求をキャッシュモジュール6−iに転送する処理や、他ノードに発行したメモリアクセス要求をクロスバスイッチモジュールを通して転送するための通信プロトコル制御や、通信を行うデータのフォーマット変更等である。
【0033】
クロスバスイッチモジュール1−iは、自ノード内の通信制御モジュール3−iと信号線a−i、b−iで結合し、他ノードと信号線60−ijで結合している。
図7に示すアドレスマップ700は、主記憶空間のアドレスと、どのノードの主記憶に割り付けられているかアドレスとノードの対応表である。
アドレスマップ700はメモリマップドレジスタとして主記憶空間に配置され、システムが立ち上がるとき、ノードに割り振られているメモリ空間のアドレスをセットする。
また、ノード上のジャンパスイッチなどを使用してアドレスマップに格納するアドレス情報を定義する方法もある。
【0034】
図7は、ノード制御モジュール2−0の内部を示している。ノードは全て同一構造で、同一動作を行うので、本実施例では図6のノード5−0の動作のみを図7を使って説明する。
ノード制御モジュールは、既に説明したとおり通信制御モジュール3−0と、クロスバスイッチモジュール1−0を有している。
クロスバスイッチモジュール1−0は、擬似スヌープ機能付クロスバスイッチ100、トランザクション判別部70−0、アドレスマップ700、マルチプレクサ704,705、クロスババイパスフラグレジスタ710(説明及び図面においては、クロスババイパスフラグレジスタ710をクロスババイパスフラグ710とも記載する)から構成されている。
クロスババイパスフラグは、実施例1の図3に示されているものと同様の働きをし、図7のクロスババイパスフラグ710を1に設定すると、通信制御モジュール3−0と擬似スヌープ機能付クロスバスイッチ間の信号線a−0、b−0がノードの入出力信号60−01、60−10と直結する。
また、クロスババイパスフラグが0の時は、通信制御モジュールの信号線a−0はトランザクション判別部70−0に、信号線b−0は擬似スヌープ機能付クロスバスイッチ100からの出力信号となる。
【0035】
クロスババイパスフラグは、ノード間を直結する小規模システム時には、全ノードで0に設定し、外部クロスバスイッチモジュールでノードを結合する大規模構成時には1に設定する。
なお、クロスババイパスフラグ710は信号線711で通信制御モジュール3−0と接続し、実施例1と同様にメモリマップドレジスタにして、システム起動時に設定するようにする。
あるいは、実施例1と同様にクロスババイパスフラグレジスタの代わりにモード信号ピン(図示せず)を設ける方法でもよい。
【0036】
トランザクション判別部70−0は、通信制御モジュールからの出力信号線aー0とアドレスマップ700からの信号線702を入力とし、疑似スヌープ機能付クロスバスイッチ100と接続する信号線71−0を出力する。
擬似スヌープ機能付クロスバスイッチ100の疑似スヌープ機能については実施例1で説明した通りである。
図7のクロスバスイッチモジュール1−0内の疑似スヌープ機能付クロスバスイッチ100は、図12に示す表に基づいた動作を行う。
図12に基づく動作をフローチャートにしたものが図9である。
【0037】
図8において、トランザクション判別部70−iは、入力レジスタ801、802、803、804、805、及び806、要求ノード検索回路800から構成されている。
入力レジスタは801、802、803、804、805、及び806は信号線a−iと接続している。
要求ノード検索回路800は入力として、入力レジスタ804と信号線807で、及びアドレスマップと信号線702で接続されている。
要求ノード検索回路800の出力信号で、AMレジスタ809の内容を変更する。
該AMレジスタには、ノード番号が格納されている。
このノード番号は、トランザクションが要求しているアドレスがどのノードの主記憶に割り付けられているか示している。
【0038】
(装置動作)
ここでは、実施例1と同様にCPUモジュールで発行されたメモリアクセス要求を行うトランザクションが、全CPUモジュール、及び主記憶モジュールにブロードキャストされる動作を説明する。
本実施例では、全ノードの主記憶上のデータ、あるいは他ノードのキャッシュにアクセスを行う場合を説明する。
本実施例では、メモリアクセス要求を行うトランザクション発行元が自ノードの主記憶に割り付けられたアドレスをアクセスする場合と他ノードの主記憶に割り付けられたアドレスをアクセスする場合を示す。
【0039】
まず、動作例(1)として自ノードの主記憶に割り付けられたアドレスをアクセスする場合について説明する。
図6のCPUモジュール4−0−1において、CPUが内蔵のキャッシュメモリに所望のデータが存在せず、キャッシュミスを起こしたとする。
この場合、CPUモジュール4−0−1はプロセッサバスh−0にキャッシュミスしたアドレスのデータをアクセスするトランザクションを発行する。
該トランザクションは、メモリの読出しである等のトランザクションの種類の情報、トランザクションを発行したCPUモジュール番号等の制御情報、要求するアドレスで構成されている(図示せず)。
プロセッサバスh−0に転送されたトランザクションは、ノード制御モジュール2−0内の通信制御モジュール3−0を通して、キャッシュモジュール6−0に転送する。
該キャッシュモジュールで、当該トランザクションの要求するアドレスのデータが保持されていない場合、所望のデータが他のノードでキャッシュされているかどうか調べるために全ノードにこのトランザクションを送ろうとする。
この場合、通信制御モジュール3−0から信号線aー0を通して、クロスバスイッチモジュール1−0に転送される。
【0040】
クロスバスイッチモジュール1−0に転送されたトランザクションは、図8のトランザクション判別部70−iに転送される。
まず、入力レジスタ801、802、803、804、805、806にトランザクションを格納する。
TYPEレジスタ802はトランザクションの種類を示す情報が格納される。
MISCレジスタ803には、トランザクションのID番号等の制御情報が格納されている。
ADDRESSレジスタ804には、トランザクションのアクセスするアドレスが、NIDレジスタ813には、トランザクションを発行したノードの番号を示す情報が格納されている。
また、AMレジスタ806には、トランザクションが要求するアドレスが、どのノードの主記憶に割り付けられているか、そのノード番号が格納されている。
ARBレジスタ801は、1ビットのレジスタで当該トランザクションがクロスバスイッチモジュールで既に調停を終了している場合は1、調停未完了のときは0が格納されている。
本ケースでは、まだクロスバスイッチで調停が行われていないのでARB=0となっている。
要求ノード検索回路800は、アクセス対象が自ノードに設定されたメモリ空間なのでAMレジスタに自ノード番号である‘0’を書き込む。
ただし、本実施例では、図6のノード5−i(0≦i≦N)のNIDをiとしている。
【0041】
図10の疑似スヌープ機能付クロスバスイッチ100に入力されたトランザクションは、入力レジスタであるTYPEレジスタ500−0、MISCレジスタ520−0、ADDRESSレジスタ521−0、ARBレジスタ1100−0、NIDレジスタ1102−0、AMレジスタ1103−0に格納される。
レジスタ1100−0,500−0,520−0、1102−0、1103−0はコマンド信号としてリクエスト制御504−0に送られ、送付ノードの番号のついたレジスタ506−0に調停要求信号をセットする。
また、トランザクション全体は信号線503−0を通してトランザクションレジスタ507−0に格納される。
【0042】
図9のフローチャートに示す判定をリクエスト制御504−i(0≦i≦N)で行う。
本ケースでは、ARB=0,AM=0なので図9の条件1001は満たさず、条件1003を満たすので、図9の処理1004を実行する。
処理1004により、信号線505−0でARB=1にセットし、レジスタ506−0は全ノードを対象に調停要求をセットする。
【0043】
リクエスト制御504−0から調停回路510−iに転送された調停要求r00、…、r0Nが調停回路で勝利すると選択回路512−0に勝利したノードの番号、ここでは0を伝え、信号線t0を通してトランザクションを出力レジスタ1101i、514−i、515−i、516−i、1004−i、1105iにセットし、各ノードに転送する。
他ノードには、図7の信号線60−0i(1≦i≦N)を通して伝えられる。
自ノードの通信制御モジュール3−0にはb−0を通してトランザクションが伝えられる。
【0044】
トランザクションが他ノードに到着した場合を説明する、ここでは簡単の為、図6のノード5−1での場合を説明する。
図6のノード5−0の信号線60−01を通してトランザクションがノード5−1に伝えられる。
当該トランザクションは信号線60−01を通して図11の疑似スヌープ機能付クロスバスイッチ100に転送される。
疑似スヌープ機能付クロスバスイッチ100では、図9のフローチャートに従い、ARB=1なので条件1001を満足するので1002の処理を行う。
疑似スヌープ機能付クロスバスイッチ100の動作は先の説明とほとんど同様だが、図10のリクエスト制御504−1のレジスタ506−1で自ノードに対応するレジスタのみ調停要求をセットする。
後の処理は、先ほどと同様の調停処理を行い、図11の信号線b−1を通して通信制御モジュール3−1にトランザクションを転送する。
このようにして、全ノードの通信制御モジュールにトランザクションがブロードキャストされる。
ブロードキャスト後の処理は実施例1の動作例と同様である。
【0045】
次に、動作例(2)として他ノードの主記憶に割り付けられたアドレスをアクセスする場合について説明する。
ここでは、図6のノード5−1に割り当てられた主記憶にアクセスすると仮定する。
図6のCPUモジュール4−0−1で発行されたトランザクションがキャッシュミスを起こし、クロスバスイッチモジュール1−0に転送されるまでの動作は動作例(1)の場合と同様である。
【0046】
図6のクロスバスイッチモジュールにトランザクションが転送された後、図10の擬似スヌープ機能付クロスバスイッチのリクエスト制御504−0では、図9の処理が行われる。
本動作例では、ARB=0、AM=1なので、条件1001、1003は満たされず、処理1005が行われる。
処理1005では、AMレジスタ1103−0で示されたノードにのみトランザクションを転送するので、図10のレジスタ506−0において、該AMレジスタで示されているノードのみに調停要求をセットする。
調停後、該トランザクションは、図6のノード5−1に転送される。
当該ノードの内蔵する擬似スヌープ機能付クロスバスイッチでは、図9の1001の条件は満たさず、条件1003を満たすので処理1004が行われる。
この後の動作は動作例(1)と同様である。
【0047】
【発明の効果】
本発明によれば、各ノードにクロスバスイッチを搭載し、直接ノード間結合することで小規模マルチプロセッサシステムを構成できる。
しかも、このノードは大規模システムにも利用できるため開発コストを削減できる。
さらに、本発明によれば、ディレクトリを用いずクロスバスイッチでキャッシュコヒーレンシ制御をするため、ディレクトリを検索するための通信コストが削減されメモリレイテンシの削減が可能となる。
また、主記憶を増加する場合、ディレクトリを使用していないため主記憶以外の資源を追加する必要がなく、低コストでシステムのスケールアップが可能となる。
【図面の簡単な説明】
【図1】第1の実施例に係わる主記憶共有型マルチプロセッサシステムの装置構成の概略を示す図である。
【図2】第1の実施例におけるノードを外部クロスバスイッチモジュールに接続した大規模マルチプロセッサシステムの全体構成を示す図である。
【図3】第1の実施例におけるノード制御モジュールの構成を示す図である。
【図4】図3に示すノード制御モジュールの変形例を示す図である。
【図5】第1の実施例における疑似スヌープ機能付クロスバスイッチの構成を示す図である。
【図6】第2の実施例に係わる主記憶共有型マルチプロセッサシステムの装置構成の概略を示す図である。
【図7】第2の実施例におけるノード制御モジュールの構成を示す図である。
【図8】第2の実施例におけるトランザクション判別部の構成を示す図である。
【図9】第2の実施例における疑似スヌープ機能付クロスバスイッチを構成するリクエスト制御の動作の一部のフローチャートを示す図である。
【図10】第2の実施例における疑似スヌープ機能付クロスバスイッチの構成を示す図である。
【図11】第2の実施例における他のノードのノード制御モジュールの構成を示す図である。
【図12】第2の実施例における疑似スヌープ機能付クロスバスイッチを構成するリクエスト制御の動作の一部を記述した表を示す図である。
【符号の説明】
1−0,1−1 クロスバスイッチモジュール
2−0,2−1 ノード制御モジュール
3−1,3−2 通信制御モジュール
4−0−1〜4−1−k CPU
5−0,5−1,5−N ノード
6−0,6−1 キャッシュモジュール
7−0,7−1 主記憶モジュール
8−0,8−1 入出力モジュール
9−0,9−1,9−N ディスク装置
20 外部クロスバスイッチモジュール
40 クロスババイパスモード信号ピン
70−0,70−1 トランザクション判別部
100 疑似スヌープ機能付クロスバスイッチ
300,710 クロスババイパスフラグレジスタ
303,304,30−2,30−N,704,705 マルチプレクサ
700 アドレスマップ
800 要求ノード検索回路
Claims (5)
- 信号線を介して互いに接続される複数のノードを有する主記憶共有型マルチプロセッサシステムにおいて、
各ノードは、キャッシュメモリを有する1個以上のCPUモジュールと、1個以上の主記憶モジュールと、これらのモジュールと他ノードの間の通信制御を行うノード制御モジュールを備え、
該ノード制御モジュールは、
ノード間通信のインタフェースを制御する通信制御モジュールと、
前記通信制御モジュールと前記信号線の間に設けられ、前記複数のノードで発行する各ノードの主記憶へのメモリアクセス要求の処理順序を決定するとともに、前記通信制御モジュールから、もしくは前記信号線から与えられるメモリアクセス要求がキャッシュコヒーレンス制御のために全ノードにブロードキャストされる必要がある場合には、前記メモリアクセス要求のマルチキャストを行うクロスバスイッチと、
前記クロスバスイッチの有効、無効を決定するためのバイパス手段であり、無効が設定された場合には前記クロスバスイッチをバイパスして前記信号線上のメモリアクセス要求を前記通信制御モジュールに伝達する第1のバイパス経路と、前記クロスバスイッチをバイパスして他のノードに発するメモリアクセス要求を前記通信制御モジュールから前記信号線に伝達する第2のバイパス経路を形成するバイパス手段とを備えることを特徴とする主記憶共有型マルチプロセッサシステム。 - 請求項1記載の主記憶共有型マルチプロセッサシステムにおいて、
前記バイパス手段が前記クロスバスイッチをバイパスするかどうかを設定するためのモードレジスタ、あるいはモード信号ピンを備えていることを特徴とする主記憶共有型マルチプロセッサシステム。 - 請求項1または請求項2記載の主記憶共有型マルチプロセッサシステムにおいて、
全ノードから前記クロスバスイッチに転送されるメモリアクセス要求が、どのノード内の主記憶モジュールに割り付けられているアドレス空間に対する要求であるかを判別する手段を前記クロスバスイッチに備えることを特徴とする主記憶共有型マルチプロセッサシステム。 - 請求項1乃至請求項3のいずれかの請求項記載の主記憶共有型マルチプロセッサシステムにおいて、
前記バイパス手段により前記ノード内の前記クロスバスイッチをバイパスした信号線を介して前記ノード内の通信制御モジュールと接続され、複数の前記ノードで発行する主記憶へのメモリアクセス要求の処理順序を決定するとともに、前記ノードから与えられるメモリアクセス要求がキャッシュコヒーレンス制御のために全ノードにブロードキャストされる必要がある場合には、前記メモリアクセス要求のブロードキャストを行う外部クロスバスイッチモジュールを備えることを特徴とする主記憶共有型マルチプロセッサシステム。 - 請求項1乃至請求項3のいずれかの請求項記載の主記憶共有型マルチプロセッサシステムにおいて、
信号線を介して前記ノード間を直接接続し、
前記信号線がノード内の前記クロスバスイッチと接続するように前記バイパス手段を設定したk個(kは1以上の整数)の前記ノードと、
前記信号線がノード内の前記クロスバスイッチをバイパスして前記通信制御モジュールと接続するように前記バイパス手段を設定しているN−k個(Nは1以上の整数でN≧k)の前記ノードを備えることを特徴とする主記憶共有型マルチプロセッサシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15656099A JP3721283B2 (ja) | 1999-06-03 | 1999-06-03 | 主記憶共有型マルチプロセッサシステム |
US09/585,390 US6789173B1 (en) | 1999-06-03 | 2000-06-02 | Node controller for performing cache coherence control and memory-shared multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15656099A JP3721283B2 (ja) | 1999-06-03 | 1999-06-03 | 主記憶共有型マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000348000A JP2000348000A (ja) | 2000-12-15 |
JP3721283B2 true JP3721283B2 (ja) | 2005-11-30 |
Family
ID=15630470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15656099A Expired - Fee Related JP3721283B2 (ja) | 1999-06-03 | 1999-06-03 | 主記憶共有型マルチプロセッサシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6789173B1 (ja) |
JP (1) | JP3721283B2 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001167069A (ja) * | 1999-12-13 | 2001-06-22 | Fujitsu Ltd | マルチプロセッサシステム及びデータ転送方法 |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US7133972B2 (en) | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US20040022022A1 (en) * | 2002-08-02 | 2004-02-05 | Voge Brendan A. | Modular system customized by system backplane |
US7117316B2 (en) | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US7546422B2 (en) * | 2002-08-28 | 2009-06-09 | Intel Corporation | Method and apparatus for the synchronization of distributed caches |
US7836252B2 (en) | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
US6820181B2 (en) | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
JP4217452B2 (ja) * | 2002-09-30 | 2009-02-04 | キヤノン株式会社 | プロセッサシステム |
US7093079B2 (en) * | 2002-12-17 | 2006-08-15 | Intel Corporation | Snoop filter bypass |
US7673118B2 (en) | 2003-02-12 | 2010-03-02 | Swarztrauber Paul N | System and method for vector-parallel multiprocessor communication |
US7245145B2 (en) | 2003-06-11 | 2007-07-17 | Micron Technology, Inc. | Memory module and method having improved signal routing topology |
US7120727B2 (en) | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7260685B2 (en) | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
US7389364B2 (en) | 2003-07-22 | 2008-06-17 | Micron Technology, Inc. | Apparatus and method for direct memory access in a hub-based memory system |
US7210059B2 (en) | 2003-08-19 | 2007-04-24 | Micron Technology, Inc. | System and method for on-board diagnostics of memory modules |
US8463996B2 (en) * | 2003-08-19 | 2013-06-11 | Oracle America, Inc. | Multi-core multi-thread processor crossbar architecture |
US7133991B2 (en) * | 2003-08-20 | 2006-11-07 | Micron Technology, Inc. | Method and system for capturing and bypassing memory transactions in a hub-based memory system |
US7136958B2 (en) | 2003-08-28 | 2006-11-14 | Micron Technology, Inc. | Multiple processor system and method including multiple memory hub modules |
US7310752B2 (en) | 2003-09-12 | 2007-12-18 | Micron Technology, Inc. | System and method for on-board timing margin testing of memory modules |
US7194593B2 (en) | 2003-09-18 | 2007-03-20 | Micron Technology, Inc. | Memory hub with integrated non-volatile memory |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7188219B2 (en) | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
US7788451B2 (en) | 2004-02-05 | 2010-08-31 | Micron Technology, Inc. | Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system |
US7366864B2 (en) | 2004-03-08 | 2008-04-29 | Micron Technology, Inc. | Memory hub architecture having programmable lane widths |
US7257683B2 (en) | 2004-03-24 | 2007-08-14 | Micron Technology, Inc. | Memory arbitration system and method having an arbitration packet protocol |
US7120723B2 (en) | 2004-03-25 | 2006-10-10 | Micron Technology, Inc. | System and method for memory hub-based expansion bus |
US6980042B2 (en) | 2004-04-05 | 2005-12-27 | Micron Technology, Inc. | Delay line synchronizer apparatus and method |
US7590797B2 (en) | 2004-04-08 | 2009-09-15 | Micron Technology, Inc. | System and method for optimizing interconnections of components in a multichip memory module |
US7363419B2 (en) | 2004-05-28 | 2008-04-22 | Micron Technology, Inc. | Method and system for terminating write commands in a hub-based memory system |
US7519788B2 (en) | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
US7310748B2 (en) | 2004-06-04 | 2007-12-18 | Micron Technology, Inc. | Memory hub tester interface and method for use thereof |
US7392331B2 (en) | 2004-08-31 | 2008-06-24 | Micron Technology, Inc. | System and method for transmitting data packets in a computer system having a memory hub architecture |
JP4695367B2 (ja) * | 2004-08-31 | 2011-06-08 | 富士通株式会社 | 情報処理装置,制御装置及び情報処理装置の制御方法 |
US20060143517A1 (en) * | 2004-12-22 | 2006-06-29 | Microsoft Corporation | Replicated virtual machine |
US9753754B2 (en) * | 2004-12-22 | 2017-09-05 | Microsoft Technology Licensing, Llc | Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine |
US7818507B2 (en) * | 2005-04-04 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
US8407424B2 (en) | 2005-11-07 | 2013-03-26 | Silicon Graphics International Corp. | Data coherence method and apparatus for multi-node computer system |
JP4704252B2 (ja) * | 2006-03-14 | 2011-06-15 | 富士通株式会社 | ネットワークシステムのブロードキャスト処理方法及びネットワークシステム |
JP4868012B2 (ja) | 2009-03-09 | 2012-02-01 | 日本電気株式会社 | コンピュータシステム、コンピュータシステムの制御方法、及びプログラム |
JP5550089B2 (ja) * | 2009-03-30 | 2014-07-16 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム、ノードコントローラ、障害回復方式 |
JP5493575B2 (ja) * | 2009-08-10 | 2014-05-14 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
US8782339B2 (en) * | 2010-10-11 | 2014-07-15 | Open Invention Network, Llc | Storage system having cross node data redundancy and method and computer readable medium for same |
CN104781797B (zh) * | 2012-09-14 | 2017-05-31 | 英派尔科技开发有限公司 | 多处理器架构中的高速缓存一致性目录 |
JP6193910B2 (ja) * | 2015-04-03 | 2017-09-06 | ファナック株式会社 | インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム |
CN106569727B (zh) * | 2015-10-08 | 2019-04-16 | 福州瑞芯微电子股份有限公司 | 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法 |
CN106603355B (zh) | 2015-10-15 | 2019-10-18 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
NO342930B1 (en) * | 2016-10-18 | 2018-09-03 | Numascale As | Cache Coherent node controller |
NO343359B1 (en) * | 2017-05-02 | 2019-02-11 | Numascale As | Interconnect switch in multiprocessor systems |
US11531619B2 (en) * | 2019-12-17 | 2022-12-20 | Meta Platforms, Inc. | High bandwidth memory system with crossbar switch for dynamically programmable distribution scheme |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5165038A (en) * | 1989-12-29 | 1992-11-17 | Supercomputer Systems Limited Partnership | Global registers for a multiprocessor system |
US5560027A (en) * | 1993-12-15 | 1996-09-24 | Convex Computer Corporation | Scalable parallel processing systems wherein each hypernode has plural processing modules interconnected by crossbar and each processing module has SCI circuitry for forming multi-dimensional network with other hypernodes |
US5933857A (en) * | 1997-04-25 | 1999-08-03 | Hewlett-Packard Co. | Accessing multiple independent microkernels existing in a globally shared memory system |
-
1999
- 1999-06-03 JP JP15656099A patent/JP3721283B2/ja not_active Expired - Fee Related
-
2000
- 2000-06-02 US US09/585,390 patent/US6789173B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000348000A (ja) | 2000-12-15 |
US6789173B1 (en) | 2004-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3721283B2 (ja) | 主記憶共有型マルチプロセッサシステム | |
JP3722415B2 (ja) | 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム | |
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
US6826653B2 (en) | Block data mover adapted to contain faults in a partitioned multiprocessor system | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
JP3849951B2 (ja) | 主記憶共有型マルチプロセッサ | |
US6101420A (en) | Method and apparatus for disambiguating change-to-dirty commands in a switch based multi-processing system with coarse directories | |
JP2512651B2 (ja) | メモリ共有マルチプロセッサ | |
US6154816A (en) | Low occupancy protocol for managing concurrent transactions with dependencies | |
US6279084B1 (en) | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system | |
US5796605A (en) | Extended symmetrical multiprocessor address mapping | |
US6122714A (en) | Order supporting mechanisms for use in a switch-based multi-processor system | |
US6839810B2 (en) | Consistency control device merging updated memory blocks | |
US6011791A (en) | Multi-processor system and its network | |
US6249520B1 (en) | High-performance non-blocking switch with multiple channel ordering constraints | |
US6463510B1 (en) | Apparatus for identifying memory requests originating on remote I/O devices as noncacheable | |
US20020087811A1 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
US6192452B1 (en) | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system | |
US7788452B2 (en) | Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches | |
KR20000036144A (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
EP1701267B1 (en) | Address snoop method and multi-processor system | |
US7321956B2 (en) | Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches | |
JPH0810447B2 (ja) | メモリ共有マルチプロセッサが使用する全ての物理的アドレスのデータ両立性を保持する方法 | |
EP0489583A2 (en) | Multiple processor cache control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040318 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050509 |
|
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: 20050816 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050912 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |