JPH10240707A - 主記憶共有型マルチプロセッサ - Google Patents

主記憶共有型マルチプロセッサ

Info

Publication number
JPH10240707A
JPH10240707A JP9059914A JP5991497A JPH10240707A JP H10240707 A JPH10240707 A JP H10240707A JP 9059914 A JP9059914 A JP 9059914A JP 5991497 A JP5991497 A JP 5991497A JP H10240707 A JPH10240707 A JP H10240707A
Authority
JP
Japan
Prior art keywords
node
command
main memory
nodes
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9059914A
Other languages
English (en)
Other versions
JP3849951B2 (ja
Inventor
Toshiaki Tarui
俊明 垂井
Koichi Okazawa
宏一 岡澤
Yasuyuki Okada
康行 岡田
Toru Shonai
亨 庄内
Toshio Okochi
俊夫 大河内
Hideya Akashi
英也 明石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP05991497A priority Critical patent/JP3849951B2/ja
Priority to US09/030,957 priority patent/US6088770A/en
Publication of JPH10240707A publication Critical patent/JPH10240707A/ja
Priority to US09/506,810 priority patent/US6546471B1/en
Application granted granted Critical
Publication of JP3849951B2 publication Critical patent/JP3849951B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

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

Abstract

(57)【要約】 【課題】 自ノード内の主記憶のアクセス、パーティシ
ョンの管理の効率化。 【解決手段】 ノード内の主記憶の各ページに対応し
て、該ページが他のノードからアクセスされたかどかを
記憶するためのビットを1ビット設ける。該ビットが0
の場合は他のノードへのキャッシュコヒーレントコマン
ド送出を行わない。該ビットは、初期化、メモリ割り当
て時にソフトウェアでリセットされ、主記憶のページが
他のノードからアクセスされるとハードウェアでセット
される。また、SMP内をパーティションに分けた際
に、各ノードの主記憶をローカル、共有領域に分け、各
々別個のアドレスを指定できるようにする。各ノードで
は、共有領域、ローカル領域の構成情報をレジスタで記
憶する。共有領域のアクセスコマンドは全ノードにマル
チキャストするのに対し、ローカル領域へのアクセスが
行われた際は、パーティション内のノードにのみコマン
ドをマルチキャストする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置、特
に、パーソナルコンピュータ(PC)、ワークステーシ
ョン(WS)、サーバ機等に用いられる主記憶共有型の
並列計算機システムに係り、特に、主記憶の制御方式に
関する。
【0002】
【従来の技術】近年PC,WSの上位機種及びサーバ機
などでは、主記憶共有型のマルチプロセッサ(SMP)
構成が広まっており、性能を向上させるために、20〜
30台以上の多数台のプロセッサの間で主記憶を共有す
ることが重要な課題になってきている。主記憶共有型の
マルチプロセッサの構成方法として広く使われている方
式として共有バスがあるが、バスではバスのスループッ
トがネックになるため、接続可能なプロセッサの数は高
々8台程度である。従って、多数台のプロセッサを接続
する方式としては適さない。
【0003】現在行われている、多数台のプロセッサを
接続する主記憶共有マルチプロセッサの構成方法には、
大きく2つの方式がある。その一つに、クロスバスイッ
チによる構成があり、例えば、「進化したシステム・ア
ーキテクチャ」(SunWorld誌1996年1月号
第29頁〜第32頁)に開示されている。この方式で
は、プロセッサと主記憶を持つ各ボードを、高速なクロ
スバスイッチで接続し、プロセッサ間のキャッシュ一貫
性を保持する。この方式では、キャッシュ一貫性の保持
が高速にできるという利点が有る。しかし、キャッシュ
の一貫性を保持するためのトランザクションが全プロセ
ッサにブロードキャストされるため、クロスバスイッチ
にかかるトラフィックが非常に高く、性能的に隘路にな
るとともに、高速なスイッチが必要になるためコスト高
を招くという欠点がある。さらに、キャッシュ一貫性保
持のためのトランザクションをブロードキャストしなけ
ればならないため、台数が非常に多いシステムを実現す
ることは困難であり、数十台程度が限度である。以下で
はこの方式をスイッチ型SMP(Symmetrica
l MultiProcessor)と呼ぶ。
【0004】それに対して、ディレクトリ方式によるマ
ルチプロセッサの構成があり、たとえば「The St
anford FLASH Multiprocess
or」(第21回ISCA Proceedings)
に開示されている。この方式では、主記憶のデータライ
ン毎に、そのデータラインがどこのプロセッサのキャッ
シュに接続されているかを示すビットマップであるディ
レクトリを設けることにより、必要なプロセッサにのみ
キャッシュ一貫性を保持するためのトランザクションを
送る。それにより、スイッチにかかるトラフィックを大
幅に削減することができ、スイッチのハードウェアコス
トを削減することができる。しかし、キャッシュ一貫性
を保持するためのトランザクションを出す際には、必
ず、主記憶に置かれたディレクトリの内容をチェックし
なければならないため、アクセスレーテンシが大幅に増
えるという欠点がある。さらに、ディレクトリを置くた
めのメモリのコストが高くなると言う欠点を持つ。
【0005】上記のようにスイッチ型SMPとディレク
トリ方式は一長一短である。一般にスイッチ型SMPの
方がハードウェア規模は大きくなり、台数が多くなった
場合のスケーラビリティは良くないが、高性能を達成で
きる。したがって、PCやサーバ機等の、台数のそれほ
ど多くない(30台程度までの)システムでは、スイッ
チ型SMPで実現する方が得策である。
【0006】ここで、主記憶共有型マルチプロセッサを
構成する上でのもう一つの問題点として、信頼性の問題
がある。従来の主記憶共有型マルチプロセッサは、シス
テム全体で一つのOSを持つ。この方式は、システムの
全てのプロセッサを一つのOSで管理できるため、柔軟
なシステム運用(負荷分散等)をできるという利点を持
つ。しかし、多数台のプロセッサを主記憶共有のマルチ
プロセッサ構成で接続した場合、システムの信頼性が低
下するという欠点を持つ。複数のプロセッサをネットワ
ークで接続したクラスタ構成のサーバや、MPP(Ma
ssively Parallel Processo
rs)では、ノード毎にOSは別なので、OSなどのバ
グ等のためにシステムダウンしても、システムダウンす
るのは当該のノードのみである。それに対して主記憶共
有型のマルチプロセッサで、システム全体を1つのOS
で制御する場合、あるプロセッサがシステムバグ等のた
めにダウンすると、OSがダウンしてしまうため、全て
のプロセッサが影響を受けてしまう。
【0007】上記の問題を避けるために、主記憶共有型
のマルチプロセッサにおいて、複数のOSを走らせる方
式が「Hive:Fault Containment
for Shared−Memory Multip
rocessors」(第15回 ACM Sympo
sium on Operating Systems
Principles)において開示されている。こ
の方式では、ディレクトリ方式の主記憶共有のマルチプ
ロセッサに、以下の2つの機構を持たせる。 (1)システム全体を複数のセル(パーティション)に
わけ、各パーティション毎に、独立したOSを走らせ
る。全体のアドレス空間は一つであり、OSごとに担当
するアドレス範囲が異なる。 (2)主記憶のページ毎に書き込みアクセス可能なプロ
セッサを表すビットマップを設け、書き込みアクセスを
ビットマップが1であるプロセッサのみに許す。各プロ
セッサの主記憶に書き込みが行われる場合(Fetch
&Invalidate命令によりデータがキャッシン
グされる場合、もしくはWriteBack要求が到来
した場合)、ビットマップの内容がチェックされ、ビッ
トマップが1であるプロセッサからのアクセスのみが許
される。上記の(1)の機構により、たとえ、1つのパ
ーティションのOSがダウンしても、他のパーティショ
ンがダウンする事を避けることができる。さらに、
(2)の機構を設けることにより、バグにより暴走した
パーティションのプロセッサが、他のパーティションが
使用するデータを破壊することを防止することができ
る。以上のように、主記憶共有型のマルチプロセッサ内
を複数のパーティションに分けることにより、システム
の信頼性を大幅に向上させることができる。
【0008】
【発明が解決しようとする課題】上記従来技術で述べ
た、スイッチ型SMPを構成し、さらにSMP内をパー
ティションに分けようとする場合、以下に示す3つの問
題点がある。
【0009】(A)ローカル主記憶のアクセスが遅い プロセッサが同一ボード内の主記憶をアクセスする場
合、理想的にはクロスバスイッチを経由せずに高速にア
クセスを行うことができるはずである。しかし、実際
は、必ず他のプロセッサへのキャッシュ一貫性保持のた
めのトランザクションを出し、他のプロセッサのキャッ
シュのチェック(以下ではこの処理をCCC:Cach
e Coherent Checkと呼ぶ)を行わなけ
ればならない。なぜなら、他のプロセッサのキャッシュ
の上に、アクセスされたデータのコピーがキャッシング
されている可能性があるからである。実際に他のプロセ
ッサのキャッシュにデータがキャッシングされていた場
合は、上記のCCCは無駄にはならない。しかし、アク
セスされたデータが、他のプロセッサから一回もアクセ
スされていないローカルなデータの場合は、該当するデ
ータが他のプロセッサのキャッシュ上にキャッシングさ
れている可能性は0であり、本来は、CCCの処理は全
く不要である。そのため、無駄なCCCのために、アク
セスレーテンシを増加させてしまうのみならず、スイッ
チ上のトラフィックを増大させてしまうという問題点が
ある。
【0010】ディレクトリ方式では、キャッシュライン
単位でどのプロセッサにキャッシングされているかが管
理されているため、無駄なCCCは生じない。しかし、
先に述べたように、ディレクトリのためのハードウェア
量が多いのみならず、ディレクトリを管理するためのオ
ーバヘッドが非常に大きいという欠点を持つ。たとえ
ば、16プロセッサ、4GB主記憶、64B/ラインの
システムのディレクトリとしては、 4GB/64B*16bit=128MB もの主記憶が必要になる。従って、大幅なハードウェア
量の削減が必要になる。
【0011】(B)パーティションのアドレスが0番地
から始まらない 上記の従来のパーティション管理機構では、システム全
体でアドレス空間が一つである。従って、各パーティシ
ョンの分担するアドレスが0番地から始まらない。例え
ば、パーティション数が2、各パーティションの主記憶
容量が1MBとすると、パーティション0は0番地から
1M番地までのアドレス空間を持つのに対し、パーティ
ション1は1M番地から2M番地までのアドレス空間を
持たなければならないことになる。既存のOSは、アド
レスが0番地から主記憶が実装されていることを前提と
しているため、上記の制限は従来OSを使用する場合、
大きな障害になる。
【0012】(C)パーティション管理のためのハード
ウェア量が多い 上記従来例のパーティション管理機構を用いる場合、4
KBのページ毎に、各プロセッサが該当するページへの
アクセスを許されるかどうかがビットマップで記憶され
ている。したがって、該当するビットマップのハードウ
ェア量が非常に大きいという問題点がある。例えば、プ
ロセッサの台数を16台、システムの主記憶容量を4G
Bとすると、 4GB/4KB×16=16MB ものメモリがパーティション管理のために必要になり、
コストの増大を招く。
【0013】従って、本発明の第一の目的は、他のプロ
セッサから全くアクセスされていないローカルなデータ
を、他のノードへのCCCを行わずに高速にアクセスす
ることが可能な、主記憶共有型のマルチプロセッサを、
少ないハードウェアオーバヘッドで実現することであ
る。本発明のもう一つの目的は、主記憶共有型のマルチ
プロセッサをパーティションに分けた際に、各パーティ
ションの持つローカルな主記憶が独立したアドレス空間
を持つことによりローカルな主記憶を0番地から始める
ことができ、かつ、必要な領域を共有することができる
主記憶共有型のマルチプロセッサを構成することであ
る。本発明のさらなる目的は、上記のパーティション管
理を少ないハードウェア量で実現することである。
【0014】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、1つ以上のCPU、キャッシュと、主記
憶を備える複数のノードと、ノード間を結ぶネットワー
クとからなり、ネットワークを用いてノード間でキャッ
シュコヒーレント制御を行う主記憶共有型マルチプロセ
ッサにおいて、各ノードは、自ノードの主記憶の各ペー
ジ対応に、該当するページが他のノードからアクセスさ
れたかどうかを記憶する第1のビットが1ビット割り当
てられ、該第1のビットはシステムの初期化時にリセッ
トされ、主記憶の該当するページが他のノードからアク
セスされた場合に、ハードウェアによりセットされるテ
ーブルと、自ノードのCPUが自ノードの主記憶をアク
セスする際に、アクセスするページに該当する前記テー
ブルの前記第1のビットを検査し、該第1のビットがセ
ットされていた場合には他のノードへのキャッシュコヒ
ーレント制御を行い、該第1のビットがセットされてい
なかった場合には他のノードへのキャッシュコヒーレン
ト制御を行わない手段を備えるようにしている。
【0015】さらに、システムソフトウェアが主記憶の
ページをアロケートする際に、アロケートするページに
対応する前記テーブルのビットを該システムソフトウェ
アがリセットするようにしている。
【0016】また、前記テーブルに、前記主記憶の各ペ
ージ対応に該ページに対してキャッシュコヒーレント制
御が必要で無いことを記憶する第2のビットを1ビット
割り当て、前記手段は、自ノードのCPUが自ノードの
主記憶をアクセスする際に該第2のビットを検査し、該
ビットがセットされていない場合には、前記第1のビッ
トの値にしたがって他のノードへのキャッシュコヒーレ
ント制御の要否を判断し、前記第2のビットがセットさ
れていた場合には他のノードへのキャッシュコヒーレン
ト制御を行わないようにしている。
【0017】1つ以上のCPU、キャッシュと、主記憶
を備える複数のノードと、ノード間を結ぶネットワーク
とからなり、ネットワークを使ってノード間でキャッシ
ュコヒーレント制御を行い、主記憶を共有している各ノ
ードを1つ以上のノードからなる複数のパーティション
に分けることが可能な主記憶共有型マルチプロセッサに
おいて、各ノードの主記憶を、全ノードからアクセス可
能な共有領域と、パーティション内からのみアクセス可
能なローカル領域に分割し、各々の領域について別個の
開始アドレスを指定するようにしている。
【0018】さらに、前記各ノードは、アクセスされた
アドレスがローカル領域であるか共有領域であるかを判
定する手段と、パーティション内にどのノードが含まれ
ているかを判定する手段を備え、他のノードへキャッシ
ュコヒーレンス制御のためのコマンドを出すとき、共有
領域へのアクセスコマンドに関しては、システム内の全
ノードにコマンドをブロードキャストし、ローカル領域
へのアクセスコマンドに関しては、パーティション内の
ノードにのみコマンドをマルチキャストするようにして
いる。
【0019】また、前記各パーティションのローカル領
域のアドレスが0番地から始まるようにしている。ま
た、他のノードからキャッシュコヒーレントコマンドが
到来した際に、アクセスアドレスがローカル領域か共有
領域かを判定する手段と、アクセス元のノードがパーテ
ィション内かパーティション外かを判定する手段を備
え、ローカル領域にパーティション外のノードからコマ
ンドが到来したと判定された場合には、アクセスを抑止
し、エラーを報告するようにしている。また、前記各ノ
ードは前記共有領域の構成情報を記憶するレジスタを備
えるようにしている。また、前記共有領域の構成情報
は、共有領域の開始アドレスと、1プロセッサの担当す
る共有領域の大きさからなるようにしている。また、前
記共有領域の構成情報は、共有領域の開始アドレスと終
了アドレスの組からなるようにしている。また、前記各
ノードは、パーティションの構成情報を記憶する手段と
して、パーティション内のノードの分布をビットマップ
で記憶する手段を備えるようにしている。
【0020】
【発明の実施の形態】以下、本発明に係る主記憶共有型
マルチプロセッサを、図面に示した実施の形態を参照し
てさらに詳細に説明する。
【0021】(1)装置の概要 図1は本発明に係る主記憶共有型マルチプロセッサのブ
ロック図である。本システムは64ノードのシステムで
あり、複数のノード、例えば100、200(これらは
ノード0、ノード63と呼ぶことがある)が、ネットワ
ーク900により接続される。各ノードは同じ構造を有
する。すなわち、各ノードは、CPU110〜112、
(部分)主記憶160、主記憶アクセス回路130、ネ
ットワークコマンド送信/受信回路180/190を持
つ。180、190、900については、公知の技術で
あるので内部の説明は省略する。主記憶160は、この
システムに共通の主記憶の一部を構成し、各ノードで実
行されるプログラムおよびデータの一部を保持するもの
で、このシステムはいわゆる分散共有メモリ型の並列計
算機システムである。主記憶は、ローカル主記憶16
1、共有主記憶162に分けられ、ベースアドレスレジ
スタ1610、1620により、それぞれ別個のアドレ
スを指定できる。ベースアドレスレジスタ1610、1
620はシステムの立ち上げ時に、システムのアドレス
マップに応じて、後に述べるパーティション/主記憶構
成情報レジスタ150とともにセットされる。図ではノ
ード内のCPUはバスにより接続されているが、バス以
外の結合方式、例えば一対一結合、スイッチによる結合
でもよい。これらノード内の接続方法については公知の
技術であるので内部構造の詳細な説明は行わない。
【0022】主記憶アクセス回路130は、CPUから
主記憶アクセス命令が発行されたときに、他のノードへ
のCCCのためのネットワークコマンドの発行、他ノー
ドへの主記憶アクセスコマンドの発行、自ノード内の主
記憶のアクセス、および、他のノードから送られてきた
CCCコマンド、主記憶アクセスコマンドを実行するた
めの回路である。先ず、送信側の回路を説明すると、1
31はCPUから送られてきたバスコマンドの受信/バ
スコマンドの分類を行うための回路である。132はC
PUからアクセスされたアドレスが内部(ノード内の主
記憶のアドレス)かリモート(他のノードが持つ主記憶
のアドレス)かを判断するための回路である。132は
パーティション構成情報150の内容を用いて内部/リ
モートを判断する。132、150は本実施の形態に特
有の回路である。
【0023】138は自ノード内の主記憶の各ページの
属性(他のノードからアクセスされたか否か、及び他の
ノードへのCCCが不要であるかどうか)を、記憶する
ためのテーブルRAT(Remote Access
Table)、133はCPUからアクセスされたアド
レスのRATの値をチェックし、必要な動作を起動する
ための回路、148は他のノードからアクセスされたペ
ージのRATの値を変更するための回路である。これら
の138、133、148は本実施の形態に特有の回路
である。
【0024】137はRATを初期化等のためにCPU
からアクセスするための回路である。134はCCCコ
マンド、他ノード主記憶アクセスコマンド、他ノードへ
の返答コマンド等のネットワークコマンドを生成するた
めの回路である。139はアクセスアドレス、アクセス
コマンドより、ネットワークコマンドをどのノードに出
すかを判断する回路である。139は本実施の形態に特
有の動作を行う。135はCPUが自ノードの主記憶上
のデータをアクセスする際に、他ノードへ出したCCC
の内容を記憶し、他のノードから帰ってきたCCCに対
する返答コマンドを集計するためのCCC待ち合わせ回
路A、136はCPUがアクセスした自ノードの主記憶
160の内容をアクセスするための主記憶アクセス回路
Aである。
【0025】次に受信側の回路を説明すると、141は
ネットワークコマンドのアドレス、送信元ノード番号
と、パーティション構成情報150の内容の整合性をチ
ェックするための回路であり、本実施の形態に特有の回
路である。142は他のノードから送られてきたネット
ワークコマンドの分類を行う回路、147は他のノード
から送られてきたコマンドのアクセスアドレスが内部か
リモートかを判断する回路である。147は、本実施の
形態に特有の回路である。143は他のノードから送ら
れてきたCCCコマンドなどを、ノード内のバスに出力
するための回路である。144は、他のノードへのデー
タフェッチ要求の回答を集計し、CPUに返送するデー
タを選択するための回路である。145は、他のノード
が自ノード内の主記憶をアクセスした際に、自ノードの
バスに出したCCCコマンドの内容を記憶し、自ノード
のバスからの返答を待ち合わせるためのCCC待ち回路
B、146は、他のノードからの要求に応じて自ノード
内の主記憶160をアクセスするための回路である。1
49は他のノードからのアクセスコマンドが来た際に、
アクセス元のノード番号を一時的に記憶するためのラッ
チである。返答先のノード番号を知るために用いられ
る。
【0026】(2)バス、ネットワークコマンドの説明 ノード内のバス上では、以下の6つのコマンドが使われ
る。括弧内はこの実施例で使われる略号である。 ・Fetch(F) データのライン転送を要求する。CPUの読み出しコマ
ンドがミスした場合に出される。CCCコマンドの一つ
である。 ・Fetch&Invalidate(FI) データのライン転送と同時に、他のキャッシュ上のデー
タの無効化を要求する。CPUの書き込みコマンドがミ
スした場合に出される。CCCコマンドの一つである。 ・Invalidate(I) 他のキャッシュ上のデータの無効化を要求する。CPU
が、他のキャッシュと共有されているキャッシュライン
に対して書き込み要求を出した場合に出される。CCC
コマンドの一つである。 ・WriteBack(WB) キャッシュラインの書き戻しを要求する。リプレースに
より、データが追い出されたときに生じる。 ・Data(D) データ転送を要求する。F,FIコマンドへの返答。 ・NoData(ND) F,FIコマンドに対し、どのCPUもDコマンドを出
さない状態。これは、バス上では明示的なコマンドとし
ては存在しないが、便宜的にコマンドとして扱う。バス
上では、コマンドに付随して、アドレスが転送され、さ
らにWB,Dコマンドではデータ(キャッシュライン)
が転送される。
【0027】ネットワークコマンドは以下の7種類が存
在する。バスコマンドと同じものについては意味の説明
を略する。 ・Fetch(F) ・Fetch&Invalidate(FI) ・Invalidate(I) ・WriteBack(WB) ・Data(D) F,FIコマンドに対し、キャッシュ上のデータを返送
するためのコマンド。 ・DataMem(DM) F,FIコマンドに対し、主記憶上のデータを返送する
ためのコマンド。ここで、他のいずれかのノードのキャ
ッシュよりDコマンドが来た場合は、DMコマンドで返
送されたデータは無視されなければならない。 ・NoData(ND) F,FIコマンドに対し、該当するノードではどのCP
UもDコマンドを出さないことを示す返答。
【0028】図6、図7にバスコマンドのフォーマット
を示す。図6はF,FI,I,NDコマンドであり、コ
マンドの他に、宛先ノード番号を表すビットマップ、ア
クセス元ノード番号、アクセスアドレスを含む。ここ
で、宛先ノード番号はビットマップで表されているた
め、複数のビットを立てることにより、特定の複数のノ
ード(例えばパーティション内のノード)に向けたマル
チキャスト、さらには、全ビットを立てることにより、
システムの全プロセッサに向けたブロードキャストを容
易に実現することができる。図7はWB,D,DMコマ
ンドのフォーマットであり、上記の情報の他にキャッシ
ュラインのデータを含む。
【0029】(3)CPUのからのアクセスに対する動
作 以下では、CPUからのアクセスに対する主記憶をアク
セス回路130の動作を場合に分けて順に説明する。共
有バス上にコマンドが出されると、バスコマンド受信/
バスコマンド分類回路131は、アクセスされたアドレ
スをリモート判定回路132に送り、アクセスされたコ
マンドが自ノードの主記憶のアドレスをアクセスしてい
るか(内部)、他ノードの主記憶のアドレスをアクセス
しているか(リモート)を判断する。リモート判定回路
132では、パーティション/主記憶構成情報150の
内容を使用し、内部/リモートの判定を行う。
【0030】図5にパーティション/主記憶構成情報1
50の内容を示す。パーティション/主記憶構成情報1
50は、パーティション内にどのノードが属しているか
を示すビットマップ1500、パーティション内のノー
ドの数を表すレジスタ1506を持ち、さらに、共有領
域に関しては、共有領域の先頭アドレス(ベースアドレ
ス)1501、1ノードあたりの共有領域の大きさ15
02を記憶する。ここでは、各ノードの共有領域は、全
て同じ大きさである。さらに、ローカル領域に関して
は、パーティション内の各ノードに対して、ローカル領
域の開始アドレス1503と終了アドレス1504を記
憶する。パーティションレジスタ1500の該当するビ
ットが1であるノードに対してのみこの情報は有効であ
る。各ノード毎に別個のレジスタを持つことにより、ロ
ーカル領域に関しては各ノードの主記憶容量は異なって
も良い。
【0031】リモート判定回路132では、アクセスア
ドレスをAとすると、Aが自ノードのローカル領域の開
始アドレス1503と終了アドレス1504の間にある
かを調べる。さらに、自ノードの番号をN、共有領域ベ
ースアドレスレジスタ1501の内容をB、共有領域サ
イズ/ノード レジスタ1502の内容をSとすると、 B+S×N≦A<B+S×(N+1) であるかどうかを調べる。いずれかが成り立つ場合はバ
スコマンド受信/バスコマンド分類回路131に、アク
セスされたアドレスが内部であることを、そうでない場
合はリモートの主記憶であることを知らせる。その後、
バスコマンド受信/バスコマンド分類回路131は、ア
クセスコマンド、アクセスアドレスが内部であるかリモ
ートであるかによって、異なった動作をする。
【0032】(A)内部アドレスへのF、FIコマンド
の場合 まず、131aを通してRATチェック回路133にア
クセスアドレス、コマンドが送られる。RATチェック
回路133では、アクセスされたページに該当するRA
T138の内容をチェックし、他のノードへのCCCが
要るかどうかを判断する。
【0033】図3にRATの詳細を示す。RATでは、
ページ毎にA,Nの2つのビットを記憶するメモリであ
る。Aビットは他のノードへのCCCが必要であるかど
うかを示す。Aが0の場合、該当するページが他のノー
ドからアクセスされていない(従って他のノードへのC
CCは不要である)ことを示し、Aが1の場合該当する
ページが他のノードからアクセスされたこと(従って、
他のノードへのCCCが必要であること)を示す。Aビ
ットは立ち上げ時に0に初期化されるほか、ソフトウェ
アがあるページを割り当てる際にソフトウェアにより0
にリセットされる。
【0034】図9に本実施例におけるページ割り当ての
アルゴリズムを示す。これにより、ページがシステムソ
フトウェアにより回収され、再利用された場合にも、R
ATが正しく動作することを保証することができる。A
ビットはハードウェア(RAT変更回路148)で1に
セットされる。これについては後ほど述べる。
【0035】Nビットは通常のキャッシュコヒーレント
管理が不要であるページを示すのに用いる。Nビットが
0の場合該当するページは通常のキャッシュコヒーレン
ト管理の対象になることを示し、Nが1の場合は、該当
するページは(パージ、フラッシュ等の命令を用いて)
ソフトウェアによりコヒーレント管理が行われるため通
常のキャッシュコヒーレント管理は不要であることを示
す。Nビットが1のページに対しては、他のノードへの
CCCのためのコマンドは出されない。I/O領域や、
数値計算の配列がおかれる領域などで有効である。Nビ
ットはアプリケーションソフトウェアが定義したアドレ
ス情報に基づき、システムソフトウエアが管理する。
【0036】図2にRATチェック回路133の詳細を
示す。先ず、1333、1334でアクセスされたペー
ジに該当するRATの値が読み出しされた後、ゲート1
335により、A=1かつN=0であるかどうか(すな
わち、他のノードへのCCCが必要であるかどうか)を
判断する。他のノードへのCCCが必要である場合、ス
イッチ1330、信号133aを通してネットワークコ
マンド生成回路134に他ノードへのコマンドを出すこ
とを依頼するとともに、他ノードへのCCCが必要で、
かつコマンドがFかFIの場合(コマンドデコード回路
1332およびゲート1336により判断する)スイッ
チ1331、信号133bを通してCCC待ち回路Aに
CCCの結果を待ちあわせることを依頼する。それに対
して、他ノードへのCCCが必要でない場合(A=0も
しくはN=1の場合)は、ゲート1337でコマンドが
FかFIかどうかが判断され、FかFIで外部へのCC
Cが不要な場合には、スイッチ1338、信号133c
を通じて主記憶アクセス回路A136に主記憶の内容を
読み出すことを依頼する。すなはち、外部へのCCCを
省略し、即座に主記憶をアクセスできる。
【0037】(A1)他のノードへのCCCが不要の場
合 この場合、信号133cを通じて主記憶アクセス回路A
136にアクセスアドレスが伝えられる。主記憶アクセ
ス回路A136はアクセスされたデータラインを自ノー
ド内の主記憶160から読み出し(ローカル領域16
1、共有領域162の何れの場合も同じである)、読み
出されたデータを136a、143を通じて自ノード内
のCPUに返す。
【0038】(A2)他のノードへのCCCが必要な場
合 先ず、信号133aを通じてネットワークコマンド生成
回路134に他のノードにF,FIコマンドを送出する
ことを依頼する。それと同時に信号133bを通じてC
CC待ち回路A135に対して他のノードからの返答を
待ち合わせることを依頼する。ネットワークコマンド生
成回路134は、宛先生成回路139により判断された
ノードにコマンドを送付する。ここで、注意しなければ
ならないのは、宛先ノードは図6、図7に示すように全
ての(64個の)ノードに対応するビットマップで表さ
れるため、複数のノードを指定すればブロードキャス
ト、マルチキャストを指定することができる。
【0039】図11に宛先生成回路139の構成を示
す。宛先生成回路では、先ず、アクセスアドレスが内部
であるかリモートであるか(リモート判定回路139
1)が判断され、さらに、アクセスアドレスが共有メモ
リであるかどうかが(共有メモリ判定回路1392)が
判断される。1391の動作は132と同一である。共
有メモリ判定回路1392では、アクセスアドレスを
A、共有領域ベースアドレスレジスタ1501の内容を
B、共有領域サイズ/ノード レジスタ1502の内容
をSとすると、 B≦A<B+S×64 で有るかどうかが調べられる(アクセスアドレスが上記
の範囲内に入っていれば共有メモリである)。さらに、
回路1394により、アクセスアドレスのhomeノー
ドが求められる。homeノードとは、アクセスアドレ
スを主記憶上に持つノードである。具体的には以下の手
順で求められる(以下ではアクセスアドレスをAとす
る)。 ・Aと全てのノードに対応するローカル領域レジスタ1
503、1504の値が比較され、Aが何れかのノード
HLの開始アドレスと終了アドレスの間に有る場合、H
Lがhomeノードである(Aはローカル領域であ
る)。 ・さらに、共有領域ベースアドレスレジスタ1501の
内容をB、共有領域サイズ/ノード レジスタ1502
の内容をSとすると、以下の計算を行う。 HS=(A−B)/S (小数点以下切り捨て) HSが0以上64未満の場合、HSがhomeノード番
号である(Aは共有領域である)。
【0040】セレクタ1390は、上記の判断結果、及
び、アクセスコマンドにより、図12に示す動作をす
る。つまり、コマンドがF、FI、Iの場合は、共有領
域の場合は全ノードへブロードキャストするためオール
1のビットマップ1393aが選ばれ(ここでは説明を
簡単にするため64個全ノードが実装されているとする
が、実装されているノードが64未満でも、ビットマッ
プを変えることにより対応できる)、ローカル領域の場
合は、パーティション内のノードにのみマルチキャスト
するため、パーティションレジスタ1500の内容が選
ばれる。D、NDコマンドの場合、及びリモート主記憶
からのDMコマンドの場合、アクセス元ノード番号レジ
スタ149の値をデコードした(ビットマップにした)
結果が選ばれ、アクセス元のノードに結果が返送され
る。リモートの主記憶へのWBコマンドの場合は、回路
1394で求められたhomeノード番号をデコードし
た結果が選ばれ、データをhomeノードに書き戻す。
内部のアドレスへのWB、NDコマンドはエラーである
(あり得ないはずである)。この場合、F,FIコマン
ドであるので、ローカル領域の場合はパーティション内
の全ノードにマルチキャストされ、、共有領域の場合は
システム内の全ノードにブロードキャストされる。他ノ
ードへF,FIコマンドを出した結果は、DもしくはN
Dコマンドにより、返送される。他のノードより返送さ
れたコマンドはネットワークコマンドチェック回路14
1でパーティション/主記憶構成情報150との整合性
をチェックされた後、ネットワークコマンド分類回路1
42に送付される。
【0041】ネットワークコマンド分類回路142は、
コマンドの種類、アクセスされたアドレスが内部(自ノ
ードの主記憶)かリモート(他ノードの主記憶)か(リ
モート判定回路147を用いてを判断される、リモート
判定回路147の動作は132と全く同一である)に応
じ、該当する出力にコマンドを出す。内部アドレスへの
N、NDコマンドの場合は、信号142aを通じてCC
C待ち回路A(135)にコマンドを送る。
【0042】図14にネットワークコマンドチェック回
路141の詳細を示す。ネットワークコマンドチェック
回路141では、ローカル領域へのパーティション外の
ノードへのアクセスをエラーとして検出するための回路
である(ローカル領域を他のパーティションからの不正
なアクセスから守るために、ローカル領域へはパーティ
ション内のノードからのみしかアクセスが許されな
い)。まず、アクセスアドレスが共有メモリか否かが共
有メモリ判定回路1410により判断される(共有メモ
リ判定回路1410の動作は、1392と同一であ
る)。さらに、パーティション内外判定回路1411に
よりアクセス元のノードがパーティションの中であるか
どうかが判断される。具体的には、ネットワークコマン
ドのアクセス元ノード番号をデコーダ1412でデコー
ドした結果と、パーティションレジスタ1500(パー
ティション内のノードを表すビットマップ)をAND−
ORゲートでゲートした結果により、アクセス元のノー
ド番号に相当するビットがパーティションレジスタ15
00の中で立っているかどうかがチェックされる。その
結果、正しいアクセスの場合、つまりアクセスアドレス
が共有メモリであるか、アクセス元のノードがパーティ
ション内である場合は、スイッチ1415を通じてアク
セスコマンドがネットワークコマンド分類回路142に
送られる。不正なアクセスの場合は、ゲート1416に
より、エラーが報告される(スイッチ1415によりア
クセスは抑止される)。これにより、ローカル領域への
他のパーティションからの不正なアクセスを防止するこ
とができる。
【0043】内部のアドレスに対して他のノードへF,
FIコマンドを出した結果としては、全てのノードから
NDが返る場合と、1つ以上のノードからDコマンドが
返る(それ以外のノードからはNDが返る)場合に分け
られる。他のノードからの返答はCCC待ち回路A(1
35)で集計され、該当する動作がとられる。
【0044】図10にCCC待ち回路A(135)の詳
細を示す。信号133bを通じて与えられたCCCアド
レスはレジスタ13506に蓄えられる。後に他のノー
ドからCCCの返答(DもしくはNDコマンド)が来る
と、先ず、コンパレータ13507でCCCアドレス1
3506と比較される。比較した結果が一致した場合
は、コマンドがDであるかNDであるかが、デコーダ1
3500とゲート13501、13502で判断され
る。Dコマンドが(1つでも)到来した場合(つまり他
のキャッシュから最新のデータが送られて来た場合)
は、フリップフロップ(FF)13504がセットさ
れ、Dコマンドが到来したことが記憶されると同時に、
ラッチ13514にDコマンドの内容が記憶される(D
コマンドにより送られてきた値は、後にCPUに返され
る)。それとは別に、D、NDコマンドが1個到来する
毎に、ゲート13503を通じてカウンタ13505が
カウントアップされ、今までに何個の返答が来たかが数
えられる。カウンタの値が信号13511aで示され
る、期待される返答数と一致すると、全ての返答が返っ
たとして、CCCの待ち合わせが終了する。
【0045】その際にフリップフロップ13504が1
の場合、スイッチ13515がONになり、ラッチ13
514に記憶されていたDコマンドにより返送されたデ
ータが信号135b、バスコマンド生成回路143を通
じてCPUに返される。それに対して、フリップフロッ
プ13504が0の場合(全てのノードからNoDat
aコマンドが返された場合)は、スイッチ13516が
ONになり、信号135aを通じて、CCCアドレスレ
ジスタ13506に記憶されていたアクセスアドレスが
主記憶アクセス回路A(136)に伝えられ、主記憶上
のデータをアクセスすることが依頼される。
【0046】信号13511aで示される期待される返
答数は、次の手順で求められる。まず、CCCアドレス
レジスタ13506で記憶されているアクセスアドレス
が共有主記憶であるかどうかが、共有メモリ判定回路1
3508で判断され(共有メモリ判定回路13508の
動作は1392と同一である)、セレクタ13511に
伝えられる。セレクタ13511は、アクセスアドレス
が共有メモリの場合は64(システムの全ノード数、た
だし、実装されているノード数が64未満の場合は実装
されているノード数を指定する)を出力し、アクセスア
ドレスが共有メモリでない(ローカルメモリの場合)は
パーティション内ノード数レジスタ1506の値を出力
する。これにより、該当するデータをアクセスするノー
ドの数を求めることができる。
【0047】(A2a)他のノードからの回答が全てN
Dの場合 CCC待ち回路A(135)より信号135aを通じて
主記憶アクセス回路A(136)に、自ノード上の主記
憶160をアクセスすることが依頼され、アクセスされ
たデータがCPUに返される。
【0048】(A2b)何れかのノードよりDコマンド
が返ってきた場合 CCC待ち回路A(135)より、信号135b、バス
コマンド生成回路143を通じて、Dコマンドにより返
送された最新のデータが、CPUに返される。
【0049】(B)内部アドレスへのIコマンドの場合 この場合、RATチェック回路135により、他のノー
ドへのCCCの要不要がチェックされるところまでは
(A)と同様である。
【0050】(B1)他のノードへのCCCが必要な場
合 信号133aを通じてネットワークコマンド生成回路1
34に他のノードへのIコマンドの生成を依頼する(I
コマンドに返答はない)。ネットワークコマンド生成回
路134は宛先生成回路139の指定するノードにコマ
ンドを送る。つまり、ローカル領域へのIコマンドの場
合、パーティション内の全ノードにマルチキャストさ
れ、共有領域へのIコマンドの場合、システムの全ノー
ドにブロードキャストされる。
【0051】(B2)他のノードへのCCCが不要な場
合 Iコマンドの場合、主記憶のデータアクセスは不要なの
で何も起こらない。すなわち、コマンドデコード回路1
332は0を出力するため、ゲート1337の出力は0
であり、信号133cには何も出力されない。
【0052】(C)内部アドレスへのWBコマンドの場
合 この場合、バスコマンド受信/バスコマンド分類回路1
31は信号131cを通じて主記憶アクセス回路136
に、書き戻されたデータを主記憶160に書き込むこと
を依頼する。
【0053】(D)リモートアドレスへのF,FIコマ
ンドの場合 この場合、信号131bを通じてネットワークコマンド
生成回路に、他ノードへF,FIコマンドを生成する事
を要求する。ネットワークコマンド生成回路134は宛
先生成回路139の指定するノードにコマンドを送る。
つまり、ローカル領域へのF,FIコマンドの場合、パ
ーティション内の全ノードにマルチキャストされ、共有
領域へのF,FIコマンドの場合、システムの全ノード
にブロードキャストされる。リモートアドレスへのF,
FIに対しては、D,DM,NDの3種のコマンドが到
来する。ネットワークコマンド分類回路142は、リモ
ートアドレスに対するD,DM,NDコマンドが到来し
た場合は、信号142eを通じて返答集計回路144に
送出する。
【0054】この場合、返答されるコマンドの組み合わ
せとしては、 (あ)homeノードからDMコマンドが、その他のノ
ードからは全てNDが返る場合 (い)homeノードからDMコマンドが、他の何れか
一つ以上のノードからDコマンドが返る(その他のノー
ドからはNDコマンドが返る)場合 (う)homeノードを含む何れか1つ以上のノードか
らDコマンドが返る(その他のノードからはNDコマン
ドが返る)場合 に分けられる。(あ)ではDMコマンドより送られたh
omeノードの主記憶から読み出された値が使われるの
に対し、(い)では、他のノードのキャッシュの上のデ
ータを優先しなければならず(なぜならキャッシュ上の
データは変更されている可能性があるため)、DMコマ
ンドでhomeノードの主記憶から送られたデータは捨
てられ、Dコマンドによりキャッシュから送られたデー
タが活用される。(う)では、Dコマンドにより何れか
のノードのキャッシュから送られてきたデータが用いら
れる。各ノードからの返答は返答集計回路144で集計
され、(あ)(い)(う)の何れかの場合であるかが判
断され、アクセスされた結果(データライン)がアクセ
ス元のCPUに返される。
【0055】図13に返答集計回路144の詳細を示
す。先ず、他ノードから送られてきたコマンドが144
00によりデコードされる。Dコマンドの場合はラッチ
14401によりDコマンドの内容(アドレス、デー
タ)が記憶されるとともに、フリップフロップ1440
3によりDコマンドが1つ以上到来したことが記憶され
る。DMコマンドの場合はラッチ14402によりDM
コマンドの内容が記憶される。それと並行して、D、D
M、NDコマンドが1つ到来する毎に、ゲート1440
4を通じてカウンタ14405がカウントアップされ、
到着した返答の数を数える。カウンタの値が信号144
13aで示される期待される返答数と一致した場合(コ
ンパレータ14406で判断される)、全ての返答が到
着したと判断し、Dコマンドが一つでも来ていた場合
(フリップフロップ14403が1の時)はゲート14
408、スイッチ14410によりDコマンドの内容
が、信号144aを通じてバスコマンド生成回路143
に供給される。それに対しDコマンドが一つも来ていな
かった場合は、ゲート14407、スイッチ14409
により、DMコマンドの内容がバスコマンド生成回路に
供給される。これにより、Dコマンドが一つ以上来てい
た場合は、Dコマンドにより返送された他のノードのキ
ャッシュ上のデータがアクセスを行ったCPUに返さ
れ、Dコマンドが一つも来ていなかった場合は、DMコ
マンドにより返送された、homeノードの主記憶上の
値がアクセスを行ったCPUに返される。1411、1
413等の期待される返答数を求める回路は、アドレス
ラッチ14414にラッチされたアクセスアドレスに対
して、CCCの返答の数を求める。詳細な動作は、CC
C待ち回路A(135)の回路(13508、1351
1等)と全く同一である。
【0056】(E)リモートアドレスへのIコマンドの
場合 この場合はRATのチェックは行われず、信号131b
により直接ネットワークコマンド生成回路134に他の
ノードへのコマンドの送出の依頼が行われる。その後の
動作は(B1)と同様である。
【0057】(F)リモートアドレスへのWBコマンド
の場合 この場合、バスコマンド受信/バスコマンド分類回路1
31は信号131bを通じてネットワークコマンド生成
回路134に、WBコマンドを送付することを依頼す
る。宛先生成回路が出す宛先は、homeノードであ
り、WBコマンドはhomeノードに送られる。
【0058】(4)他のノードからのアクセスに対する
動作 ここでは、主記憶アクセス回路130が、ネットワーク
900を通じて送られてきた、他のノードからのコマン
ドに対してどのように動作するかを述べる。ここで、
D,DM,NDコマンドに対する動作は既に(3)で述
べてあるので、その他のF,FI,I,WBに対する動
作を述べる。他のノードから送られてきたコマンドは、
ネットワークコマンドチェック回路141によりチェッ
クされた後、ネットワークコマンド分類回路142に送
られる。ネットワークコマンド分類回路142では、ア
クセスコマンドの種類、アクセスアドレスが内部かリモ
ートか(リモート判定回路147により判断される)に
より、該当する出力にコマンドを送る。また、F,F
I,Iコマンドの場合は、アクセス元ノード番号レジス
タ149にアクセス元ノード番号をセットする。
【0059】(A)内部アドレスへのF,FIコマンド
の場合 ネットワークコマンド分類回路142は、信号142d
を通じてバスコマンド生成回路143にバスコマンドの
生成を依頼する。バスコマンド生成回路143は、ノー
ド内の共有バス120を通じてノード内のCPUにF,
FIコマンドを出す。それと同時に、信号142cを通
じてCCC待ち回路B(145)に、ノード内の共有バ
スに出されたコマンドを待ち合わせることを依頼する。
【0060】図15にCCC待ち回路B(145)の詳
細を示す。信号142cを通じて送られてきた、CCC
を行うアドレスは、CCCアドレスレジスタ1451に
記憶される。後にノード内の共有バス120からバスコ
マンド受信/バスコマンド分類回路131を通じて、C
CCの返答(DもしくはNDコマンド)が来ると、先
ず、コンパレータ1452でCCCアドレス1451と
比較される。比較した結果が一致した場合は、コマンド
がNDであるかどうかが、デコーダ1450とゲート1
453で判断される。NDコマンドが返送された場合
は、スイッチ1455を通じて、CCCアドレスレジス
タ1451に記憶されていたアクセスアドレスが、信号
145aを通して主記憶アクセス回路B146に伝えら
れ、主記憶上のデータをアクセスすることが依頼され
る。
【0061】ノード内の共有バスに出したF,FIコマ
ンドの結果は、D(ノード内のいずれかのCPUのキャ
ッシュに該当するデータがある場合)、もしくはND
(ノード内の何れのCPUのキャッシュにも該当するデ
ータが無い場合)により返送される。Dコマンドの場合
は、データも同時に返送される。バスコマンド受信/バ
スコマンド分類回路131は、コマンド、および、アク
セスアドレスが内部であるか、リモートであるか(リモ
ート判定回路132により判定される)に応じて、該当
する出力にコマンドを送る。
【0062】(Aa)内部アドレスへのアクセスに対
し、Dコマンドが返送された場合 自ノードのキャッシュ上にアクセスデータがあった場
合、バスコマンド受信/バスコマンド分類回路131
は、Dコマンド(コマンド、アドレス、データ)を、信
号131bを通じて、ネットワークコマンド生成回路1
34に送る。ネットワークコマンド生成回路134は、
アクセス元のノードにアクセスデータをDコマンドを用
いて返送する(宛先生成回路139は、アクセス元ノー
ド番号149を選択する)。これにより、自ノードのC
PUのキャッシュ上のデータがアクセス元のノードに返
送される。
【0063】(Ab)内部アドレスへのアクセスに対
し、NDコマンドが返送された場合。
【0064】自ノードのキャッシュ上にはアクセスデー
タが無かった場合、バスコマンド受信/バスコマンド分
類回路131は、NDコマンドを信号131dを通じて
CCC待ち回路B(145)に送付する。CCC待ち回
路Bは信号145aを通じて、主記憶アクセス回路B
(146)に主記憶160上のアクセスアドレスの内容
(キャッシュライン)を読み出すことを依頼する。主記
憶アクセス回路B(146)は、信号160aを通じて
アクセスラインを読み出すと、信号146aを通じてネ
ットワークコマンド生成回路134に送る。ネットワー
クコマンド生成回路134は、アクセス元のノードにア
クセスデータをDMコマンドを用いて返送する(宛先生
成回路139は、アクセス元ノード番号149を選択す
る)。これにより、自ノードの主記憶上のデータがアク
セス元のノードに返送される。それと同時に、主記憶ア
クセス回路B(146)は、信号146bを通じてRA
T変更回路148にアクセスされたページに該当する、
RAT138のAビットに1を設定することを依頼す
る。
【0065】図4にRAT変更回路148の詳細を示
す。アクセスされたアドレスのページ番号に対応するR
ATのAビットに1が書き込まれる。
【0066】(B)内部アドレスへのIコマンドの場合 ネットワークコマンド分類回路142は、信号142d
を通じてバスコマンド生成回路143にバスコマンドの
生成を依頼する。バスコマンド生成回路143は、ノー
ド内の共有バス120を通じてノード内のCPUにIコ
マンドを出す(Iコマンドには返答は無い)。
【0067】(C)内部アドレスへのWBコマンドの場
合 ネットワークコマンド分類回路142は、信号142b
を通じて、主記憶アクセス回路B(146)に、WBさ
れたデータを主記憶に書き込むことを依頼する。主記憶
アクセス回路B(146)は、信号160aを通じて主
記憶160へWBされたデータを書き込む。それと同時
に、主記憶アクセス回路B(146)は、信号146b
を通じてRAT変更回路148にアクセスされたページ
に該当する,RAT138のAビットに1を設定するこ
とを依頼する。
【0068】(D)リモートアドレスへのF,FIコマ
ンドの場合 ネットワークコマンド分類回路142は、信号142d
を通じてバスコマンド生成回路143にバスコマンドの
生成を依頼する。バスコマンド生成回路143は、ノー
ド内の共有バス120を通じてノード内のCPUにF,
FIコマンドを出す。ノード内の共有バスに出したF,
FIコマンドの結果は、D(ノード内のいずれかのCP
Uのキャッシュに該当するデータがある場合)、もしく
はND(ノード内の何れのCPUのキャッシュにも該当
するデータが無い場合)により返送される。Dコマンド
の場合は、データも同時に返送される。
【0069】リモートアドレスに対するD,NDコマン
ドの場合、何れの場合も、バスコマンド受信/バスコマ
ンド分類回路131は、Dコマンド(コマンド、アドレ
ス、データ)もしくはNDコマンド(コマンド、アドレ
ス)を、信号131bを通じて、ネットワークコマンド
生成回路134に送る。ネットワークコマンド生成回路
134は、アクセス元のノードにアクセス結果をD又は
NDコマンドを用いて返送する(宛先生成回路139
は、アクセス元ノード番号149を選択する)。これに
より、Dコマンドの場合、自ノードのCPUのキャッシ
ュ上のデータがアクセス元のノードに返送され、NDコ
マンドの場合、自ノードのCPUのキャッシュ上には該
当するデータが無いことが伝えられる。
【0070】(E)リモートアドレスへのIコマンドの
場合 この場合、内部アドレスへのIコマンドの場合(B)と
全く同じ動作を行う。
【0071】(F)リモートアドレスへのWBコマンド
の場合 他のノードからリモートアドレスへのWBコマンドが来
ることはあり得ない。
【0072】ネットワークコマンド分類回路142はエ
ラーを報告する。
【0073】以上述べた手順によりクロスバネットワー
クにより接続されたノード間でキャッシュコヒーレンス
をとることができる。その際に、リモートアクセステー
ブル(RAT)138を用いて他のノードへのCCCを
削減することができる。さらに、主記憶共有マルチプロ
セッサ内をパーティションに分ける際に、主記憶を、各
パーティションのローカル領域/パーティション間共有
領域の2つに分け、ローカル領域に対しては各パーティ
ション間で独立したアドレス空間とすることにより、各
パーティションのアドレスを0番地より始めるようにす
ることができる。さらに、パーティション/主記憶構成
情報150をレジスタにより記憶することにより、少な
いハードウェア量でパーティションの管理を実現するこ
とができる。
【0074】<変形例>本発明は以上の実施の形態に限
定されるのではなくいろいろの変形例にも適用可能であ
る。例えば、 (1)以上においては、ノード内のCPUはバス120
により接続されているが、その他の接続形態(スイッチ
による接続、主記憶アクセス回路130への一対一接
続)も可能である。 (2)また、以上においては、RAT148は、主記憶
アクセス回路130に内蔵される、専用メモリにより、
構成されているが、外付けのメモリにすることも可能で
ある。さらに、RATを物理的にはローカル主記憶16
1上に置くことも可能である。さらに、この場合、RA
Tの内容を主記憶アクセス回路130内にキャッシング
する事も可能である。
【0075】(3)上記実施の形態において、パーティ
ション/主記憶構成情報150では、共有領域の構成情
報は、共有領域ベースアドレス1501及び、共有領域
サイズ/ノード レジスタ1502の2つのレジスタに
より記憶されている。しかし、ローカル領域レジスタ1
503、1504のように、ノード毎に開始アドレス、
終了アドレスの組で覚えることも可能である(これによ
り、各ノードの共有領域の大きさを変えることができ
る)。この場合、上記実施の形態においては共有領域ベ
ースアドレス1501及び、共有領域サイズ/ノードレ
ジスタ1502を用いて計算で求めていた、共有メモリ
判定回路、homeノード判定回路は、コンパレータに
より構成することができる。
【0076】(4)以上においては、ノード内の各CP
U(110〜112)は独立したキャッシュを持ってい
るが、複数のCPUに共有される外付けの2次キャッシ
ュを持たせることも可能である。各ノードの主記憶アク
セス回路130に、CPUのキャッシュTAGのコピー
を持ち、他のノードから到来するキャッシュコヒーレン
トトランザクションをフィルタリングする事も可能であ
る。
【0077】(5)以上においては、ノード間はクロス
バネットワークにより接続されているが、他の形式のネ
ットワーク(多段網等)により接続することも可能であ
る。 (6)上記実施の形態においては、他のノードへのネッ
トワークコマンドを出す際に、宛先のノードをビットマ
ップにより指定することにより、ブロードキャスト、マ
ルチキャストを指示しているが、ネットワークコマンド
生成回路134が、宛先のノード毎に複数のコマンドを
出すことにより、ブロードキャスト、マルチキャストを
実現することも可能である。
【0078】
【発明の効果】本発明によれば、主記憶共有型のマルチ
プロセッサにおいて、リモートアクセステーブル(RA
T)を置くことにより、少ないハードウェア量の追加に
より、自ノード内の主記憶をアクセスする際に、他のノ
ードからアクセスされていないページに関しては、ノー
ド間のCCCを省くことができる。従って、アクセスレ
ーテンシを削減するとともに、ノード間のネットワーク
にかかるトラフィックを削減することができる。さら
に、本発明によれば、主記憶共有マルチプロセッサ内を
複数のパーティションに分ける際に、主記憶をパーティ
ション毎のローカルな領域とパーティション間で共有さ
れる領域に分け、ローカル領域に対しては各ノードのア
ドレス空間を独立することにより、各パーティションの
開始アドレスを0番地から始めることを可能にすること
ができる。さらに、各パーティションのローカル領域、
共有領域の範囲をレジスタにより記憶することにより、
パーティション管理のためのハードウェア量を従来のペ
ージ毎の管理と比較して大幅に削減することができる。
【図面の簡単な説明】
【図1】本発明のキャッシュコヒーレンス保持機構を持
つ主記憶共有型マルチプロセッサである。
【図2】各ノードのRATチェック回路のブロック図で
ある。
【図3】各ノードのRATのブロック図である。
【図4】各ノードのRAT変更回路のブロック図であ
る。
【図5】各ノードにおいて、パーティション/主記憶構
成情報を表すレジスタ群の詳細図である。
【図6】ネットワーク上の、F,FI,I,NDコマン
ドのパケットフォーマットである。
【図7】ネットワーク上の、WB,D,DMコマンドの
パケットフォーマットである。
【図8】各ノードの主記憶のブロック図である。
【図9】本発明のマルチプロセッサシステムにおいて、
主記憶のページをアロケートする際のフロー図である。
【図10】各ノードのCCC待ち回路Aのブロック図で
ある。
【図11】各ノードの宛先生成回路のブロック図であ
る。
【図12】各ノードの宛先生成回路内の、宛先セレクタ
の入力と出力の関係の表を示す図である。
【図13】各ノードの返答集計回路のブロック図であ
る。
【図14】各ノードのネットワークコマンドチェック回
路のブロック図である。
【図15】各ノードのCCC待ち回路Bのブロック図で
ある。
【符号の説明】
100、200 ノード 110〜112 CPU 110a〜112a キャッシュ 120 バス 131 バスコマンド受信/バスコマンド分類回路 132、147 リモート判定回路 133 RATチェック回路 134 ネットワークコマンド生成回路 135 CCC待ち回路A 136 主記憶アクセス回路A 137 RATアクセス回路 138 RAT(Remote Access Tab
le) 139 宛先生成回路 141 ネットワークコマンドチェック回路 142 ネットワークコマンド分類回路 143 バスコマンド生成回路 144 返答集計回路 145 CCC待ち回路B 146 主記憶アクセス回路B 148 RAT変更回路 149 アクセス元ノード番号レジスタ 150 パーティション/主記憶構成情報 160 主記憶 161 ローカル主記憶 162 共有主記憶 180 ネットワークコマンド送信回路 190 ネットワークコマンド受信回路 900 ノード間クロスバネットワーク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 庄内 亨 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 大河内 俊夫 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 明石 英也 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 1つ以上のCPU、キャッシュと、主記
    憶を備える複数のノードと、ノード間を結ぶネットワー
    クとからなり、ネットワークを用いてノード間でキャッ
    シュコヒーレント制御を行う主記憶共有型マルチプロセ
    ッサにおいて、 前記各ノードは、自ノードの主記憶の各ページ対応に、
    該当するページが他のノードからアクセスされたかどう
    かを記憶する第1のビットが1ビット割り当てられ、該
    第1のビットはシステムの初期化時にリセットされ、主
    記憶の該当するページが他のノードからアクセスされた
    場合に、ハードウェアによりセットされるテーブルと、 自ノードのCPUが自ノードの主記憶をアクセスする際
    に、アクセスするページに該当する前記テーブルの前記
    第1のビットを検査し、該第1のビットがセットされて
    いた場合には他のノードへのキャッシュコヒーレント制
    御を行い、該第1のビットがセットされていなかった場
    合には他のノードへのキャッシュコヒーレント制御を行
    わない手段を備えることを特徴とする主記憶共有型マル
    チプロセッサ。
  2. 【請求項2】 請求項1記載の主記憶共有型マルチプロ
    セッサにおいて、 システムソフトウェアが主記憶のページをアロケートす
    る際に、アロケートするページに対応する前記テーブル
    のビットを該システムソフトウェアがリセットすること
    を特徴とする主記憶共有型マルチプロセッサ。
  3. 【請求項3】 請求項1記載の主記憶共有型マルチプロ
    セッサにおいて、 前記テーブルに、前記主記憶の各ページ対応に該ページ
    に対してキャッシュコヒーレント制御が必要で無いこと
    を記憶する第2のビットを1ビット割り当て、 前記手段は、自ノードのCPUが自ノードの主記憶をア
    クセスする際に該第2のビットを検査し、該ビットがセ
    ットされていない場合には、前記第1のビットの値にし
    たがって他のノードへのキャッシュコヒーレント制御の
    要否を判断し、前記第2のビットがセットされていた場
    合には他のノードへのキャッシュコヒーレント制御を行
    わないことを特徴とする主記憶共有型マルチプロセッ
    サ。
  4. 【請求項4】 1つ以上のCPU、キャッシュと、主記
    憶を備える複数のノードと、ノード間を結ぶネットワー
    クとからなり、ネットワークを使ってノード間でキャッ
    シュコヒーレント制御を行い、主記憶を共有している各
    ノードを1つ以上のノードからなる複数のパーティショ
    ンに分けることが可能な主記憶共有型マルチプロセッサ
    において、 各ノードの主記憶を、全ノードからアクセス可能な共有
    領域と、パーティション内からのみアクセス可能なロー
    カル領域に分割し、各々の領域について別個の開始アド
    レスを指定することを特徴とする主記憶共有型マルチプ
    ロセッサ。
  5. 【請求項5】 請求項4記載の主記憶共有型マルチプロ
    セッサにおいて、 前記各ノードは、アクセスされたアドレスがローカル領
    域であるか共有領域であるかを判定する手段と、パーテ
    ィション内にどのノードが含まれているかを判定する手
    段を備え、 他のノードへキャッシュコヒーレンス制御のためのコマ
    ンドを出すとき、共有領域へのアクセスコマンドに関し
    ては、システム内の全ノードにコマンドをブロードキャ
    ストし、ローカル領域へのアクセスコマンドに関して
    は、パーティション内のノードにのみコマンドをマルチ
    キャストすることを特徴とする主記憶共有型マルチプロ
    セッサ。
  6. 【請求項6】 請求項4記載の主記憶共有型マルチプロ
    セッサにおいて、 前記各パーティションのローカル領域のアドレスが0番
    地から始まることを特徴とする主記憶共有型マルチプロ
    セッサ。
  7. 【請求項7】 請求項5記載の主記憶共有型マルチプロ
    セッサにおいて、 他のノードからキャッシュコヒーレントコマンドが到来
    した際に、アクセスアドレスがローカル領域か共有領域
    かを判定する手段と、 アクセス元のノードがパーティション内かパーティショ
    ン外かを判定する手段を備え、 ローカル領域にパーティション外のノードからコマンド
    が到来したと判定された場合には、アクセスを抑止し、
    エラーを報告することを特徴とする主記憶共有型マルチ
    プロセッサ。
  8. 【請求項8】 請求項4記載の主記憶共有型マルチプロ
    セッサにおいて、 前記各ノードは前記共有領域の構成情報を記憶するレジ
    スタを備えることを特徴とする主記憶共有型マルチプロ
    セッサ。
  9. 【請求項9】 請求項8記載の主記憶共有型マルチプロ
    セッサにおいて、 前記共有領域の構成情報は、共有領域の開始アドレス
    と、1プロセッサの担当する共有領域の大きさからなる
    ことを特徴とする主記憶共有型マルチプロセッサ。
  10. 【請求項10】 請求項8記載の主記憶共有型マルチプ
    ロセッサにおいて、 前記共有領域の構成情報は、共有領域の開始アドレスと
    終了アドレスの組からなることを特徴とする主記憶共有
    型マルチプロセッサ。
  11. 【請求項11】 請求項5記載の主記憶共有型マルチプ
    ロセッサにおいて、 前記各ノードは、パーティションの構成情報を記憶する
    手段として、パーティション内のノードの分布をビット
    マップで記憶する手段を備えることを特徴とする主記憶
    共有型マルチプロセッサ。
JP05991497A 1997-02-27 1997-02-27 主記憶共有型マルチプロセッサ Expired - Fee Related JP3849951B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP05991497A JP3849951B2 (ja) 1997-02-27 1997-02-27 主記憶共有型マルチプロセッサ
US09/030,957 US6088770A (en) 1997-02-27 1998-02-26 Shared memory multiprocessor performing cache coherency
US09/506,810 US6546471B1 (en) 1997-02-27 2000-02-18 Shared memory multiprocessor performing cache coherency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05991497A JP3849951B2 (ja) 1997-02-27 1997-02-27 主記憶共有型マルチプロセッサ

Publications (2)

Publication Number Publication Date
JPH10240707A true JPH10240707A (ja) 1998-09-11
JP3849951B2 JP3849951B2 (ja) 2006-11-22

Family

ID=13126885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05991497A Expired - Fee Related JP3849951B2 (ja) 1997-02-27 1997-02-27 主記憶共有型マルチプロセッサ

Country Status (2)

Country Link
US (2) US6088770A (ja)
JP (1) JP3849951B2 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510496B1 (en) * 1999-02-16 2003-01-21 Hitachi, Ltd. Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions
JP2005141606A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd マルチプロセッサシステム
US6938078B1 (en) 1998-12-09 2005-08-30 Nec Corporation Data processing apparatus and data processing method
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US7613884B2 (en) 2004-02-19 2009-11-03 Hitachi, Ltd. Multiprocessor system and method ensuring coherency between a main memory and a cache memory
JP2010009567A (ja) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
JP2010140485A (ja) * 2008-12-09 2010-06-24 Nvidia Corp 直列インターフェースバスにまたがってキャッシュコヒーレンシを維持するシステム及び方法
US7966389B2 (en) 2003-04-22 2011-06-21 Hewlett-Packard Development Company, L.P. System and method for application programming interface for extended intelligent platform management
JP2013130976A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 情報処理装置およびメモリアクセス方法
JP2013140445A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置、制御方法および制御プログラム
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
JP2014160502A (ja) * 2014-04-28 2014-09-04 Fujitsu Ltd 情報処理装置およびメモリアクセス方法
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
JP2014197402A (ja) * 2014-05-26 2014-10-16 富士通株式会社 情報処理装置、制御方法および制御プログラム
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870239B1 (en) * 1998-06-30 2011-01-11 Emc Corporation Method and system for securing network access to dynamically updateable data stored in a data storage system
US6286111B1 (en) * 1998-09-01 2001-09-04 International Business Machines Corporation Retry mechanism for remote operation failure in distributed computing environment
US6449699B2 (en) * 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6681320B1 (en) 1999-12-29 2004-01-20 Intel Corporation Causality-based memory ordering in a multiprocessing environment
US7343622B1 (en) * 2000-04-27 2008-03-11 Raytheon Company Multi-level secure multi-processor computer architecture
US6684343B1 (en) * 2000-04-29 2004-01-27 Hewlett-Packard Development Company, Lp. Managing operations of a computer system having a plurality of partitions
US6925634B2 (en) * 2001-01-24 2005-08-02 Texas Instruments Incorporated Method for maintaining cache coherency in software in a shared memory system
US7007267B2 (en) * 2001-01-24 2006-02-28 Texas Instruments Incorporated Transparent shared memory access in a software development system
US7039901B2 (en) * 2001-01-24 2006-05-02 Texas Instruments Incorporated Software shared memory bus
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6757785B2 (en) * 2001-11-27 2004-06-29 International Business Machines Corporation Method and system for improving cache performance in a multiprocessor computer
US6934835B2 (en) * 2002-01-09 2005-08-23 International Business Machines Corporation Building block removal from partitions
US7051180B2 (en) 2002-01-09 2006-05-23 International Business Machines Corporation Masterless building block binding to partitions using identifiers and indicators
US6823498B2 (en) 2002-01-09 2004-11-23 International Business Machines Corporation Masterless building block binding to partitions
US6910108B2 (en) * 2002-01-09 2005-06-21 International Business Machines Corporation Hardware support for partitioning a multiprocessor system to allow distinct operating systems
US6826653B2 (en) 2002-02-06 2004-11-30 Hewlett-Packard Development Company, L.P. Block data mover adapted to contain faults in a partitioned multiprocessor system
US20040022022A1 (en) * 2002-08-02 2004-02-05 Voge Brendan A. Modular system customized by system backplane
US7051166B2 (en) * 2003-04-21 2006-05-23 Hewlett-Packard Development Company, L.P. Directory-based cache coherency scheme for reducing memory bandwidth loss
US7305654B2 (en) * 2003-09-19 2007-12-04 Lsi Corporation Test schedule estimator for legacy builds
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
DK1794979T3 (en) 2004-09-10 2017-07-24 Cavium Inc Selective copying of data structure
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
US7970980B2 (en) * 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US7290094B2 (en) * 2005-05-17 2007-10-30 International Business Machines Corporation Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy
JP4831599B2 (ja) * 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US7647469B2 (en) * 2005-07-22 2010-01-12 International Business Machines Corporation Method of assigning virtual import/export element addresses
WO2007088581A1 (ja) * 2006-01-31 2007-08-09 Fujitsu Limited 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体
US7493468B2 (en) * 2006-06-01 2009-02-17 International Business Machines Corporation Method for broadcasting instructions/data to a plurality of processors in a multiprocessor device via aliasing
JP5171118B2 (ja) * 2007-06-13 2013-03-27 キヤノン株式会社 演算処理装置及びその制御方法
US7958314B2 (en) * 2007-12-18 2011-06-07 International Business Machines Corporation Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US8429353B2 (en) * 2008-05-20 2013-04-23 Oracle America, Inc. Distributed home-node hub
US7650488B2 (en) * 2008-06-18 2010-01-19 Intel Corporation Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space
KR101574257B1 (ko) * 2009-06-01 2015-12-03 시게이트 테크놀로지 엘엘씨 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8364922B2 (en) * 2009-12-21 2013-01-29 International Business Machines Corporation Aggregate symmetric multiprocessor system
US9727338B2 (en) * 2012-11-05 2017-08-08 Nvidia Corporation System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same
US9703697B2 (en) * 2012-12-27 2017-07-11 Intel Corporation Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses
EP3251021B1 (en) * 2015-01-30 2023-07-19 Hewlett Packard Enterprise Development LP Memory network to prioritize processing of a memory access request
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
EP3443471B1 (en) 2016-06-30 2021-12-01 Huawei Technologies Co., Ltd. Systems and methods for managing databases

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US4985825A (en) * 1989-02-03 1991-01-15 Digital Equipment Corporation System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH08320828A (ja) * 1995-05-24 1996-12-03 Nec Eng Ltd マルチプロセッサシステム
JP3754112B2 (ja) * 1995-07-06 2006-03-08 株式会社日立製作所 プロセッサ間データ一貫性保証装置
US5710907A (en) * 1995-12-22 1998-01-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5829034A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
US6456628B1 (en) * 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938078B1 (en) 1998-12-09 2005-08-30 Nec Corporation Data processing apparatus and data processing method
US6510496B1 (en) * 1999-02-16 2003-01-21 Hitachi, Ltd. Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions
US7966389B2 (en) 2003-04-22 2011-06-21 Hewlett-Packard Development Company, L.P. System and method for application programming interface for extended intelligent platform management
JP2005141606A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd マルチプロセッサシステム
US7613884B2 (en) 2004-02-19 2009-11-03 Hitachi, Ltd. Multiprocessor system and method ensuring coherency between a main memory and a cache memory
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
JP4550136B2 (ja) * 2008-06-27 2010-09-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
US7743375B2 (en) 2008-06-27 2010-06-22 International Business Machines Corporation Information handling system including dynamically merged physical partitions
JP2010009567A (ja) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
JP2010140485A (ja) * 2008-12-09 2010-06-24 Nvidia Corp 直列インターフェースバスにまたがってキャッシュコヒーレンシを維持するシステム及び方法
JP2013130976A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 情報処理装置およびメモリアクセス方法
JP2013140445A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置、制御方法および制御プログラム
US9065706B2 (en) 2011-12-28 2015-06-23 Fujitsu Limited Information processing apparatus, computer-readable recording medium, and control method
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法
JP2014160502A (ja) * 2014-04-28 2014-09-04 Fujitsu Ltd 情報処理装置およびメモリアクセス方法
JP2014197402A (ja) * 2014-05-26 2014-10-16 富士通株式会社 情報処理装置、制御方法および制御プログラム

Also Published As

Publication number Publication date
US6088770A (en) 2000-07-11
JP3849951B2 (ja) 2006-11-22
US6546471B1 (en) 2003-04-08

Similar Documents

Publication Publication Date Title
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ
CA2414438C (en) System and method for semaphore and atomic operation management in a multiprocessor
US6510496B1 (en) Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions
US9465767B2 (en) Multi-processor, multi-domain, multi-protocol cache coherent speculation aware shared memory controller and interconnect
JP3987162B2 (ja) 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム
US8359453B2 (en) Real address accessing in a coprocessor executing on behalf of an unprivileged process
US7577816B2 (en) Remote translation mechanism for a multinode system
US7680987B1 (en) Sub-page-granular cache coherency using shared virtual memory mechanism
US5613071A (en) Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
CA2280125C (en) Non-uniform memory access (numa) data processing system that speculatively issues requests on a node interconnect
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
EP0301354A2 (en) Cache consistency protocol for multiprocessor system
JPH10289214A (ja) 対称的マルチプロセッサのクラスタのための可変粒度型メモリ共用方法
JP2001515243A (ja) クラスタ保護メカニズムを使用する多重処理コンピュータ・システム
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
US6996645B1 (en) Method and apparatus for spawning multiple requests from a single entry of a queue
US6671792B1 (en) Share masks and alias for directory coherency
US20040059818A1 (en) Apparatus and method for synchronizing multiple accesses to common resources
JPH10187631A (ja) 拡張された対称マルチプロセッサ・アーキテクチャ
EP0404560B1 (en) multiprocessor system and method
JP2000067009A (ja) 主記憶共有型マルチプロセッサ
Leijten et al. PROPHID: a data-driven multi-processor architecture for high-performance DSP
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040218

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060410

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: 20060815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060825

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees