JP4306811B2 - Cache coherence unit with integrated message passing and memory protection for distributed shared memory multiprocessor systems - Google Patents

Cache coherence unit with integrated message passing and memory protection for distributed shared memory multiprocessor systems Download PDF

Info

Publication number
JP4306811B2
JP4306811B2 JP53615499A JP53615499A JP4306811B2 JP 4306811 B2 JP4306811 B2 JP 4306811B2 JP 53615499 A JP53615499 A JP 53615499A JP 53615499 A JP53615499 A JP 53615499A JP 4306811 B2 JP4306811 B2 JP 4306811B2
Authority
JP
Japan
Prior art keywords
node
processor
memory
site
coherence
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
Application number
JP53615499A
Other languages
Japanese (ja)
Other versions
JP2001515633A (en
Inventor
ベバー,ボルフ−ディートリヒ
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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
Priority claimed from US09/003,771 external-priority patent/US6212610B1/en
Priority claimed from US09/003,721 external-priority patent/US6209064B1/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2001515633A publication Critical patent/JP2001515633A/en
Application granted granted Critical
Publication of JP4306811B2 publication Critical patent/JP4306811B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Description

出願中の他の出願の参照
本発明は、発明者がWofl-Dietrich Weber及びJaspal Kohliで、共通の譲受人であり、「統合されたメッセージ・パッシング・サポートを有する分散共有メモリマルチプロセッサのためのメモリ保護機構」の名称で、1998年1月7日に出願された審査中の出願シリアル番号9/003,771に関係する。
発明の背景
1.発明の分野
本発明は、一般的にはコンピュータ通信プロトコルに関し、特に共有メモリ・キャッシュ・コヒーレンス及び保護された共有で無いメッセージ・パッシング(protected shared nothing message passing)の両方をサポートする統合されたプロトコルに関する。
2.背景技術の議論
あるクラスのマルチプロセッサ・データ・コンピュータシステムは、高速相互接続ネットワーク上で通信する複数のプロセッサ・ノードで構成される。各プロセッサ・ノードは、典型的にはプロセッサとローカル・ランダム・アクセス・メモリ(RAM)を有する。演算上の問題は、異なるプロセッサ・ノードで利用可能な特定の資源を使用するか、又は結果を生成するのに必要な実時間を低減してそれにより演算を促進するように、プロセッサ・ノードに分割される。それゆえ、1つのプロセッサ・ノードで進行するプロセスはコンピュータシステムの他のプロセッサ・ノードで実行される演算に依存している。各種のプロセスは、情報を交換してプロセスを同期させるように相互接続上で通信する。
プロセッサが相互にどのように通信するかによって異なる2つの主たるマルチプロセッサ・プログラミングの例がある。共有メモリの例は、すべてのプロセッサが装置全体ですべてのメモリにアクセスするのを許す。プロセッサは、1つのプロセッサが所定のメモリ位置に値を書込み、他のプロセッサが同一のメモリ位置からその値を読むことにより、互いに通信する。これに対して、共有で無い(すなわち、メッセージ・パッシング)例では、各プロセッサはその固有メモリにだけアクセスすることができ、明瞭にメッセージを作成し、それらを他のプロセッサに送ることにより他のプロセッサと通信する。両方のプログラミング例は、それぞれ利点があり、両方共に使用されている。共有メモリ例の利点は、より効率的な通信を提供することであり、共有でない例は、1つのプロセスの他のすべてのプロセッサからのより良好な保護を提供することである。
従来技術のシステムは、1つ又は他のプログラミング例が可能である。もし両方が可能であれば、それらは2つの異なる形式の相互接続上でサポートされ、通常は共有メモリ及び関係するキャッシュ・コヒーレンス・プロトコルについては高性能相互接続で、メッセージ・パッシングについてはより低い性能の相互接続でサポートされる。
発明の概要
本発明の目的は、共有メモリ・キャッシュ・コヒーレンス・プロトコルと共有でないメッセージ・パッシング・プロトコルの同一の高性能相互接続上への統合を含み、プロセッサの共有メモリへの完全なアクセスは許すが、プロセッサの共有でないメモリ間には保護障壁を設ける。
本発明は、メッセージ・パッシング・プロトコルをスケーラブル共有メモリ・マルチプロセッシング・コンピュータシステムのキャッシュ・コヒーレンス管理に拡張するシステム及び方法に属する。スケーラブル共有メモリ・マルチプロセッシング・コンピュータシステムは、相互接続に接続された複数のプロセッサを有し、プロセッサは相互接続の上で相互に通信する。相互接続プロセッサは、共有メモリ・コンピュータシステム、共有でないコンピュータシステム、及び一部のプロセッサはメモリを共有するが他は共有しないハイブリッド・コンピュータシステムに適用可能な通信プロトコルを使用して、相互接続上でメッセージの送信と受信を行う。ハイブリッド・コンピュータシステムについては、プロセッサの共有メモリへの完全なアクセスは許すが、プロセッサの共有でないメモリ間には保護障壁を設けることが重要である。プロセッサ・ノードは、やって来るメッセージが(完全には保護されない)同一のコヒーレンス・グループ内から来るか、又は(共有でない保護を適用する)コヒーレンス・グループの外側から来るかを告げることが可能である。これにより、プロセッサ・ノード共有メモリと共有でないプロセッサ・ノードを、同一の相互接続上に一緒に存在させることを可能にする。これは、ノード識別番号(NIDs)、コヒーレンス・ノード番号(CNNs)、及びそれらの間のマッピング(地図)を使用して実現される。システムにおける各プロセッシング・ノードは、NIDが与えられる。メモリを共有する組内のノードは、それぞれCNNが割り当てられ、CNNsからNIDsまでの一貫したマッピングに一致する。このマッピングで、プロセッサ・ノードは、やって来たメッセージが(完全には保護されない)同一のコヒーレンス・グループ内から来たか、又は(共有でない保護を適用する)そのコヒーレンス・グループの外側から来たかを告けることができる。これにより、プロセッサ・ノード共有メモリと共有でないプロセッサ・ノードを、同一の相互接続上に一緒に存在させることを可能にする。
本発明のこれら及び他の目的は、以下の本発明の詳細な説明及び付属の図面から、当業者には明らかになるであろう。
【図面の簡単な説明】
図1は、本発明の多重プロセッサ・ノードを有するコンピュータシステムの機能ブロック図である。
図2は、メモリ・サブシステム、入力/出力サブシステム、メッシュ・コヒーレンス・ユニット(MCU)及びそれぞれのキャッシュを有するプロセッサを含む図1のプロセッサ・ノードの例の機能ブロック図である。
図3は、メッシュ・コヒーレンス・ユニットのブロック図である。
好適な実施例の詳細な説明
本発明は、メッセージ・パッシング・プロトコルと必要な保護障壁をスケーラブル共有メモリ・マルチプロセッシング・コンピュータシステムに統合するシステム及び方法に属する。スケーラブル共有メモリ・マルチプロセッシング・コンピュータシステムは、相互接続に接続された複数のプロセッサを有し、プロセッサは相互接続の上で相互に通信する。メッセージが送られる伝統的な機構は、入力/出力チャンネルと相互接続を介する。これに対して、本発明は、同一の通信チャンネル、相互接続、キャッシュ・コヒーレンスとメッセージ・パッシングの両方を使用し、これがメッセージを交換するレートを著しく増加させる。各プロセッサは、プロセッサ間ノード・キャッシュ・コヒーレンス・プロトコルと密接に統合されたメッセージ・プロトコルを使用してメッセージの送信と受信を行うことにより、他の相互接続プロセッサと通信する。
図1は、本発明によるコンピュータシステム100の機能ブロック図であり、多重プロセッサ・ノード102a−tと、接続されたノード間の点間通信を提供するプロセッサ・ノード相互接続104とを有する。それぞれのプロセッサ・ノード102a−tは、スタンドアロン・コンピュータシステムとして又はメモリを共有するコンピュータシステムを形成するように他のプロセッサ・ノード組み合わされて構成されている。「サイト」という語は、メモリにおける物理的なアドレス空間を共有するプロセッサ・ノードのグループを示すのに使用される。選択されたプロセッサ・ノード102a−d,102f−i,102l−o及び102q−tは、それぞれサイト106a,106b,106c及び106dとして構成されている。他のプロセッサ・ノード102e,102j,102k及び102pも、相互接続104を介して接続されているが、メモリを共有していない。異なるサイトのプロセッサ・ノードは、メッセージ・パッシングを介して通信する。例えば、サイト106aにおけるプロセッサ・ノードは、他のサイトのプロセッサ・ノード、例えばサイト106cのプロセッサ・ノード102nと相互接続104を介してメッセージを送ることにより通信する。各サイトは、典型的には、対称マルチプロセッサ(SMP)上で動作するのに類似したオペレーティングシステムの単一コピーを動作させる。
プロセッサ・ノード102a−t間の統合されたメッセージ・パッシング及びメモリ保護を有するキャッシュ・コヒーレンスは、例示のシステム100に適用されることで、本発明が実現される。あるサイトにおけるプロセッサ・ノード、例えばサイト106aのプロセッサ・ノード102a−dは、物理的なアドレスメモリ空間を共有する。更に、それぞれのプロセッサ・ノードは、それぞれのキャッシュメモリ204a−d(図2)を有する多重プロセッサを有する。このように、キャッシュ・コヒーレンスは、プロセッサのキャッシュ間で、ノード内だけでなく、異なるプロセッサ・ノード内でも維持されなければならない。例えば、ノード102aにおけるキャッシュは、ノード102b−dにおけるキャッシュとコヒーレントでなければならない。
本発明は、サイト内のプロセッサ・ノードに共有物理アドレス空間へのアクセスを許し、サイト外のプロセッサ・ノードにはアクセスを拒絶するメモリ保護機構を有する。例えば、プロセッサ・ノード102eは、プロセッサ・ノード102aにメッセージを送ることができる。しかし、プロセッサ・ノード102eはサイト106a内にはないので、プロセッサ・ノード102eはサイト106aの物理アドレス空間でのメモリアクセス動作を実行できない。
メモリ保護機構は、ノード識別子(NIDs)及びコヒーレンス・ノード番号(CNNs)及びそれらの間のマッピングに依存している。システムにおける各プロセッサ・ノードは、システムに渡って特有のNIDが与えられる。更に、サイト内の各プロセッサ・ノードは、サイトに特有のCNNを割り当てられる。サイト内のプロセッサ・ノードは、それぞれそのサイト内の他のすべてのプロセッサ・ノードのCNNsとNIDsの間のマッピングを保持するテーブルを保持している。システム100においては、サイト106dは、NID=151、CNN=1のノード102t、NID=152、CNN=2のノード102s、NID=153、CNN=3のノード102r、及びNID=154、CNN=4のノード102qを有している。プロセッサ・ノード間で通信されるメッセージは、常にソース・プロセッサ・ノードを識別するNIDを有する。受けたノードは、そのマッピング・テーブルを使用して、やって来たメッセージが同一サイト内のプロセッシング・ノードから来たかそうでないかを決定する。もしソース・ノード・サイトが到着先ノード・サイトと異なれば、メモリ・アクセス保護を適用する。
図2は、プロセッサ・ノード102の機能ブロック図である。プロセッサ・ノード102は、例えば、図1のプロセッサ・ノード102a−tであり、それぞれキャッシュ204a−dを有するプロセッサ202a−dと、メモリ・サブシステム206と、入力/出力サブシステム208と、メッシュ・コヒーレンス・ユニット(MCU)210とを有する。それぞれの機能ユニット202a−d,206,208及び210は、バス212に接続され、ユニット間で制御、アドレス及びデータ信号を送ることができる。メッシュ・コヒーレンス・ユニット210は、相互接続104に接続されている。メッシュ・コヒーレンス・ユニット210は、プロセッサ間ノード・キャッシュ・コヒーレンス、プロセッサ間ノード・メッセージ・パッシング、及びプロセッサ間ノード・メモリ保護を統合する。
プロセッサ202a−d、メモリ・サブシステム206、入力/出力サブシステム208、メッシュ・コヒーレンス・ユニット210、及びバス212は、1つの可能なプロセッサ・ノードの構成例を示し、例えば、異なる個数のプロセッサを使用することもできる。
図3は、メッシュ・コヒーレンス・ユニット210のブロック図であり、それはプロセッサ間ノード・キャッシュ・コヒーレンスを維持し、プロセッサ間ノード102a−tの間のメッセージ・パッシングをサポートし、及び許可されていないメモリ・アクセスから保護する。
メッシュ・コヒーレンス・ユニット210は、出力制御要素310、入力制御要素312、キャッシュ・コヒーレンス制御要素314、及び相互接続インターフェース316を有する。出力制御要素310はCNNマップ・レジスタ332を有し、及び入力制御要素312はメモリ・アクセス制御要素334を有する。出力制御要素310は、バス21から、ライン322を介して制御信号を、ライン324を介しデータ信号を受け、出力メッセージを相互接続インターフェース316に送り、指定されたプロセッサ・ノード102a−tに送る(図1を参照)。同様に、入力制御要素312は、相互接続インターフェース316からメッセージを受け、例えば102aに送られるように、制御信号はライン326を介して、データ信号はライン328を介してバス212に送る(図1を参照)。
キャッシュ・コヒーレンス制御要素314は、キャッシュされたメモリ位置の状態情報を保持する。再び図2を参照して、サイト102内の各プロセッサ・ノードは、そのノード内のプロセッサに固有のメモリ・サブシステム206を有する。キャッシュ・コヒーレンス制御要素314(図3)は、メッシュ・コヒーレンス・ユニット210に対して相対的に固有のメモリ位置のコヒーレンシィを統合する。
CNNマップ・レジスタ332及びメモリ・アクセス制御要素334は、ノード識別番号(NIDs)、コヒーレンス・ノード番号(CNNs)、及びそれらの間のマッピングを使用して、プロセッサ・ノード間のメモリ保護を提供する。システム100内の各ノード102(図1参照)は、NIDが与えられる。一旦ノードの組がメモリを共有させると、それぞれにCNNが割り当てられ、すべてCNNsとNIDsの一貫したマッピングを採用する。このマッピングで、プロセッサ・ノードは、やって来るメッセージが(完全には保護されない)同一のコヒーレンス・グループから来たか、(共有でない保護が適用される)コヒーレンス・グループの外から来たかを告げることができる。これにより、プロセッサ・ノード共有メモリと共有でないプロセッサ・ノードを、同一の相互接続上に一緒に存在させることを可能にする。
これまで説明した例示の実施例は、説明のためであり、限界を意図したものではない。従って、当業者には、以下の請求の範囲の範囲及び趣旨から離れない範囲で、他の実施例が実現できることが認識されるであろう。
Reference to other pending applications The present invention is a common assignee with the inventor, Wofl-Dietrich Weber and Jasper Kohli, “distributed shared memory multiplayer with integrated message passing support. It is related to the pending serial number 9 / 003,771, filed January 7, 1998, under the name “Memory Protection Mechanism for Processors”.
Background of the Invention FIELD OF THE INVENTION The present invention relates generally to computer communication protocols, and in particular to support both shared memory cache coherence and protected shared nothing message passing. Related protocol.
2. 2. Background Art Discussion A class of multiprocessor data computer systems consists of multiple processor nodes communicating over a high speed interconnect network. Each processor node typically has a processor and local random access memory (RAM). Arithmetic issues can cause processor nodes to use specific resources available on different processor nodes, or to reduce the real time required to produce results and thereby facilitate operations. Divided. Therefore, processes that run on one processor node depend on operations performed on other processor nodes in the computer system. The various processes communicate over the interconnect to exchange information and synchronize the processes.
There are two main examples of multiprocessor programming that depend on how the processors communicate with each other. The shared memory example allows all processors to access all memory throughout the device. Processors communicate with each other by one processor writing a value to a given memory location and another processor reading the value from the same memory location. In contrast, in non-shared (ie, message passing) examples, each processor can only access its own memory, and clearly creates messages and sends them to other processors Communicate with the processor. Both programming examples have their advantages and both are used. The advantage of the shared memory example is that it provides more efficient communication, and the non-shared example is that it provides better protection from all other processors of a process.
Prior art systems are capable of one or other programming examples. If both are possible, they are supported on two different types of interconnects, usually high performance interconnects for shared memory and related cache coherence protocols, and lower performance for message passing Supported in the interconnect.
SUMMARY OF THE INVENTION An object of the present invention includes the integration of a shared memory cache coherence protocol and a non-shared message passing protocol onto the same high performance interconnect, and the complete integration of the processor into shared memory. However, a protective barrier is provided between non-shared memory of processors.
The present invention belongs to a system and method for extending a message passing protocol to cache coherence management in a scalable shared memory multiprocessing computer system. A scalable shared memory multiprocessing computer system has a plurality of processors connected to an interconnect, and the processors communicate with each other over the interconnect. Interconnect processors can be used on interconnects using communication protocols applicable to shared memory computer systems, non-shared computer systems, and hybrid computer systems where some processors share memory but not others. Send and receive messages. For hybrid computer systems, full access to the processor's shared memory is allowed, but it is important to provide a protective barrier between the processors' non-shared memory. The processor node can tell whether incoming messages come from within the same coherence group (which is not fully protected) or from outside the coherence group (which applies non-shared protection). This allows processor nodes that are not shared with processor node shared memory to exist together on the same interconnect. This is achieved using node identification numbers (NIDs), coherence node numbers (CNNs), and mappings (maps) between them. Each processing node in the system is given an NID. Each node in the set sharing the memory is assigned a CNN and matches a consistent mapping from CNNs to NIDs. With this mapping, the processor node reports whether the incoming message came from within the same coherence group (which is not fully protected) or from outside that coherence group (which applies non-shared protection). Can This allows processor nodes that are not shared with processor node shared memory to exist together on the same interconnect.
These and other objects of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of a computer system having a multiprocessor node of the present invention.
FIG. 2 is a functional block diagram of the example processor node of FIG. 1 including a memory subsystem, an input / output subsystem, a mesh coherence unit (MCU), and a processor having respective caches.
FIG. 3 is a block diagram of the mesh coherence unit.
Detailed Description of the Preferred Embodiments The present invention belongs to a system and method that integrates a message passing protocol and the necessary protection barriers into a scalable shared memory multiprocessing computer system. A scalable shared memory multiprocessing computer system has a plurality of processors connected to an interconnect, and the processors communicate with each other over the interconnect. The traditional mechanism by which messages are sent is through the input / output channels and interconnections. In contrast, the present invention uses the same communication channel, interconnection, both cache coherence and message passing, which significantly increases the rate at which messages are exchanged. Each processor communicates with other interconnected processors by sending and receiving messages using a message protocol that is tightly integrated with the interprocessor node cache coherence protocol.
FIG. 1 is a functional block diagram of a computer system 100 according to the present invention having multiple processor nodes 102a-t and a processor node interconnect 104 that provides point-to-point communication between the connected nodes. Each processor node 102a-t is configured as a stand-alone computer system or in combination with other processor nodes to form a computer system that shares memory. The term “site” is used to indicate a group of processor nodes that share a physical address space in memory. The selected processor nodes 102a-d, 102f-i, 102l-o and 102q-t are configured as sites 106a, 106b, 106c and 106d, respectively. Other processor nodes 102e, 102j, 102k and 102p are also connected via interconnect 104, but do not share memory. Processor nodes at different sites communicate via message passing. For example, a processor node at site 106a communicates by sending a message over interconnect 104 with a processor node at another site, eg, processor node 102n at site 106c. Each site typically runs a single copy of an operating system similar to running on a symmetric multiprocessor (SMP).
Cache coherence with integrated message passing and memory protection between processor nodes 102a-t is applied to the exemplary system 100 to implement the present invention. The processor nodes at a site, eg, processor nodes 102a-d at site 106a, share the physical address memory space. In addition, each processor node has multiple processors with respective cache memories 204a-d (FIG. 2). Thus, cache coherence must be maintained between processor caches, not only in nodes, but also in different processor nodes. For example, the cache at node 102a must be coherent with the cache at nodes 102b-d.
The present invention has a memory protection mechanism that allows processor nodes in the site to access the shared physical address space and denies access to processor nodes outside the site. For example, the processor node 102e can send a message to the processor node 102a. However, since the processor node 102e is not in the site 106a, the processor node 102e cannot perform a memory access operation in the physical address space of the site 106a.
Memory protection mechanisms rely on node identifiers (NIDs) and coherence node numbers (CNNs) and the mapping between them. Each processor node in the system is given a unique NID across the system. In addition, each processor node in the site is assigned a CNN specific to the site. Each processor node in a site maintains a table that maintains a mapping between CNNs and NIDs of all other processor nodes in the site. In the system 100, the site 106d has a node 102t with NID = 151 and CNN = 1, a node 102s with NID = 152 and CNN = 2, a node 102r with NID = 153 and CNN = 3, and a node 102r with NID = 154 and CNN = 4. Node 102q. Messages communicated between processor nodes always have an NID that identifies the source processor node. The receiving node uses its mapping table to determine whether the incoming message came from a processing node in the same site or not. If the source node site is different from the destination node site, apply memory access protection.
FIG. 2 is a functional block diagram of the processor node 102. The processor node 102 is, for example, the processor node 102a-t of FIG. 1, each of the processors 202a-d having caches 204a-d, a memory subsystem 206, an input / output subsystem 208, and a mesh node. A coherence unit (MCU) 210. Each functional unit 202a-d, 206, 208 and 210 is connected to the bus 212 and can send control, address and data signals between the units. The mesh coherence unit 210 is connected to the interconnect 104. The mesh coherence unit 210 integrates interprocessor node cache coherence, interprocessor node message passing, and interprocessor node memory protection.
Processors 202a-d, memory subsystem 206, input / output subsystem 208, mesh coherence unit 210, and bus 212 illustrate one possible processor node configuration, for example, a different number of processors. It can also be used.
FIG. 3 is a block diagram of mesh coherence unit 210, which maintains interprocessor node cache coherence, supports message passing between interprocessor nodes 102a-t, and is not allowed memory.・ Protect from access.
The mesh coherence unit 210 has an output control element 310, an input control element 312, a cache coherence control element 314, and an interconnection interface 316. The output control element 310 has a CNN map register 332 and the input control element 312 has a memory access control element 334. The output control element 310 receives control signals from the bus 21 via line 322, data signals via line 324, sends output messages to the interconnect interface 316, and sends them to designated processor nodes 102a-t ( (See FIG. 1). Similarly, the input control element 312 receives messages from the interconnect interface 316 and sends control signals via line 326 and data signals via line 328 to the bus 212, for example, to 102a (FIG. 1). See).
The cache coherence control element 314 maintains cached memory location state information. Referring again to FIG. 2, each processor node in site 102 has a memory subsystem 206 that is specific to the processors in that node. Cache coherence control element 314 (FIG. 3) integrates coherency of memory locations that are unique relative to mesh coherence unit 210.
CNN map register 332 and memory access control element 334 provide memory protection between processor nodes using node identification numbers (NIDs), coherence node numbers (CNNs), and mappings between them. . Each node 102 (see FIG. 1) in the system 100 is given an NID. Once a set of nodes share memory, each is assigned a CNN and all employ a consistent mapping of CNNs and NIDs. With this mapping, the processor node can tell whether the incoming message came from the same coherence group (which is not fully protected) or from outside the coherence group (which applies non-shared protection) . This allows processor nodes that are not shared with processor node shared memory to exist together on the same interconnect.
The exemplary embodiments described so far are illustrative and not intended to be limiting. Accordingly, those skilled in the art will recognize that other embodiments can be implemented without departing from the scope and spirit of the following claims.

Claims (5)

コンピュータシステムであって、A computer system,
相互接続と、Interconnects,
バスに接続された少なくとも1つのプロセッサを有し、前記相互接続に接続された複数のプロセッサ・ノードと、を備え、A plurality of processor nodes having at least one processor connected to the bus and connected to the interconnect;
1または複数のノードが、メモリの物理的アドレス空間を共有するプロセッサ・ノードのグループであるサイトを構成し、One or more nodes form a site that is a group of processor nodes sharing a physical address space of memory;
それぞれのプロセッサ・ノードには、システムに渡って特有のノード識別情報が与えられ、Each processor node is given node identification information that is unique across the system,
前記プロセッサ・ノードは、The processor node is
前記バスから前記相互接続へのメッセージとメモリ・アクセス要求との出力を制御する出力制御部と、An output controller that controls the output of messages and memory access requests from the bus to the interconnect;
前記相互接続から前記バスへのメッセージとメモリ・アクセス要求との入力を制御する入力制御部と、An input controller that controls input of messages and memory access requests from the interconnect to the bus;
前記プロセッサ・ノードが属するサイト内の他プロセッサ・ノードに与えられた、前記サイト内で特有のコヒーレンスノード番号とノード識別情報とのマッピングを格納するテーブルと、A table storing a mapping between a coherence node number unique to the site and node identification information given to another processor node in the site to which the processor node belongs;
同一サイト内のプロセッサ・ノードによるサイト内のメモリ共有を許容する一方、前記相互接続に接続され且つ同一サイト外に位置するプロセッサ・ノードによるサイト内のメモリ共有を禁止するメモリ保護部と、を有し、A memory protection unit that permits sharing of memory within a site by processor nodes within the same site, while prohibiting memory sharing within the site by processor nodes that are connected to the interconnect and located outside the same site. And
プロセッサ・ノードの組みがメモリを共有するように設定された場合、それぞれのプロセッサ・ノードの組みに対してコヒーレンスノード番号を割り当てるとともに、コヒーレンスノード番号とノード識別情報とのマッピングを前記テーブルに格納し、プロセッサ・ノードが前記テーブルを参照して、ノード識別情報が付された入力メッセージが同一サイト内のプロセッサ・ノードからのメモリ・アクセス要求であるか否かを判定させることを特徴とする、コンピュータシステム。When a set of processor nodes is set to share memory, a coherence node number is assigned to each set of processor nodes, and a mapping between the coherence node number and node identification information is stored in the table. The computer is characterized in that the processor node refers to the table to determine whether or not the input message to which the node identification information is attached is a memory access request from a processor node in the same site. system.
前記複数のプロセッサ・ノードはマルチプロセッサ・ノード・システムに分けられ、
少なくとも1つのマルチプロセッサ・ノード・システムに属する第1のプロセッサ・ノードのメモリは、前記マルチプロセッサ・ノード・システムに属する第2のプロセッサ・ノードに対してアクセス可能であり、
前記第2のプロセッサ・ノードのメモリは、前記第1のプロセッサ・ノードに対してアクセス可能であり、
前記第1のプロセッサ・ノードの前記入力制御は、前記相互接続からの前記メモリ・アクセス要求に応じて、前記相互接続からのメモリ・アクセス要求を選択的に拒絶するメモリ・アクセス制御を有する請求項1に記載のコンピュータシステム。
The plurality of processor nodes are divided into a multiprocessor node system;
Memory of a first processor node belonging to at least one multiprocessor node system is accessible to a second processor node belonging to said multiprocessor node system;
The memory of the second processor node is accessible to the first processor node;
The input control unit of the first processor node has said in response to the memory access request from the interconnect, the memory access control unit for selectively rejecting memory access request from the interconnect The computer system according to claim 1.
前記複数のプロセッサ・ノードはマルチプロセッサ・ノード・システムに分けられ、
少なくとも1つのマルチプロセッサ・ノード・システムは分散共有メモリを有し、
マルチプロセッサ・ノード・システムに属する第1のプロセッサ・ノードのメモリは前記マルチプロセッサ・ノード・システムに属する第2のプロセッサ・ノードに対してアクセス可能であり、
前記第2のプロセッサ・ノードのメモリは、前記第1のプロセッサ・ノードに対してアクセス可能であり、
前記第1のプロセッサ・ノードの前記入力制御は、前記相互接続からのメモリ・アクセス要求に応じて、ノード識別番号と、コヒーレンス・ノード番号と、それらの間のマッピングを使用して、前記相互接続からのメモリ・アクセス要求を選択的に拒絶するメモリ・アクセス制御を有する請求項1に記載のコンピュータシステム。
The plurality of processor nodes are divided into a multiprocessor node system;
At least one multiprocessor node system has distributed shared memory;
Memory of a first processor node belonging to a multiprocessor node system is accessible to a second processor node belonging to the multiprocessor node system;
The memory of the second processor node is accessible to the first processor node;
The input control unit of the first processor node in response to a memory access request from the interconnect, using a node identification numbers, and the coherence node number, a mapping between its those The computer system according to claim 1, further comprising a memory access control unit that selectively rejects a memory access request from the interconnection.
前記複数のプロセッサ・ノードはマルチプロセッサ・ノード・システムに分けられ、
少なくとも1つのマルチプロセッサ・ノード・システムは分散共有メモリを有し、
マルチプロセッサ・ノード・システムに属する第1のプロセッサ・ノードのメモリは、前記マルチプロセッサ・ノード・システムに属する第2のプロセッサ・ノードに対してアクセス可能であり、
前記第2のプロセッサ・ノードのメモリは、前記第1のプロセッサ・ノードに対してアクセス可能であり、
前記第1のプロセッサ・ノードの前記入力制御は、前記相互接続からのメモリ・アクセス要求に応じて、ノード識別番号、コヒーレンス・ノード番号、および前記ノード識別番号と前記コヒーレンス・ノード番号との間のマッピングを使用して、前記相互接続からのメモリ・アクセス要求を選択的に拒絶するメモリ・アクセス制御部を有する請求項1に記載のコンピュータシステム。
The plurality of processor nodes are divided into a multiprocessor node system;
At least one multiprocessor node system has distributed shared memory;
Memory of a first processor node belonging to a multiprocessor node system is accessible to a second processor node belonging to the multiprocessor node system;
The memory of the second processor node is accessible to the first processor node;
In response to a memory access request from the interconnection, the input control unit of the first processor node is configured to output a node identification number, a coherence node number, and between the node identification number and the coherence node number. 2. The computer system of claim 1, further comprising a memory access controller that selectively rejects memory access requests from the interconnect using a mapping of .
相互接続に接続された複数のプロセッサ・ノードを有し、Having a plurality of processor nodes connected to the interconnect;
前記複数のプロセッサ・ノードのうちの少なくとも1つは、At least one of the plurality of processor nodes is:
バスに接続されたメモリと、Memory connected to the bus;
キャッシュを有するプロセッサを少なくとも1つ含む、前記バスに接続された複数のプロセッサと、A plurality of processors connected to the bus including at least one processor having a cache;
メッシュコヒーレンスユニットと、を有し、A mesh coherence unit, and
前記メッシュコヒーレンスユニットは、The mesh coherence unit is
前記プロセッサ・ノードが属する、メモリの物理的アドレス空間を共有するプロセッサ・ノードのグループであるサイト内の他プロセッサ・ノードに与えられている、前記サイト内で特有のコヒーレンス・ノード番号と、システムに渡って特有のノード識別情報とのマッピングを格納するテーブルと、A unique coherence node number within the site, given to other processor nodes within the site that is a group of processor nodes that share the physical address space of the memory to which the processor node belongs, and the system A table that stores mappings with unique node identification information across,
前記バスから前記相互接続へのメッセージとメモリ・アクセス要求との出力を制御する出力制御部と、An output controller that controls the output of messages and memory access requests from the bus to the interconnect;
前記相互接続から前記バスへのメッセージとメモリ・アクセス要求との入力を制御する入力制御部と、An input controller that controls input of messages and memory access requests from the interconnect to the bus;
前記出力制御部と前記入力制御部との接続され、プロセッサ・ノード間のキャッシュ・コヒーレンスを制御するキャッシュ・コヒーレンス制御部と、を備え、A cache coherence control unit connected to the output control unit and the input control unit and controlling cache coherence between processor nodes; and
同一サイトに属するプロセッサは前記サイト内のメモリを共有する一方、同一サイト外に属するプロセッサは前記サイト内のメモリを共有せず、Processors belonging to the same site share the memory in the site, while processors belonging to the same site do not share the memory in the site,
プロセッサ・ノードの組みがサイト内のメモリを共有するように設定された場合、組みを構成するプロセッサ・ノードのそれぞれに対してコヒーレンスノード番号を割り当て、コヒーレンスノード番号とノード識別情報とのマッピングを前記テーブルに格納し、プロセッサ・ノードが前記テーブルの参照して、入力するノード識別情報の付されたメッセージが同一サイトに属するプロセッサ・ノードからのメモリ・アクセス要求であるか否かを判定することを特徴とする、コンピュータシステム。When a set of processor nodes is set to share memory in the site, a coherence node number is assigned to each of the processor nodes constituting the set, and the mapping between the coherence node number and the node identification information is performed as described above. The processor node refers to the table and determines whether the message with the node identification information to be input is a memory access request from a processor node belonging to the same site. Characteristic computer system.
JP53615499A 1998-01-07 1998-12-22 Cache coherence unit with integrated message passing and memory protection for distributed shared memory multiprocessor systems Expired - Fee Related JP4306811B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/003,771 1998-01-07
US09/003,771 US6212610B1 (en) 1998-01-07 1998-01-07 Memory protection mechanism for a distributed shared memory multiprocessor with integrated message passing support
US09/003,721 US6209064B1 (en) 1998-01-07 1998-01-07 Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system
US09/003,721 1998-01-07
PCT/US1998/027495 WO1999035581A1 (en) 1998-01-07 1998-12-22 Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system

Publications (2)

Publication Number Publication Date
JP2001515633A JP2001515633A (en) 2001-09-18
JP4306811B2 true JP4306811B2 (en) 2009-08-05

Family

ID=26672110

Family Applications (2)

Application Number Title Priority Date Filing Date
JP53615499A Expired - Fee Related JP4306811B2 (en) 1998-01-07 1998-12-22 Cache coherence unit with integrated message passing and memory protection for distributed shared memory multiprocessor systems
JP53615399A Expired - Fee Related JP3983820B2 (en) 1998-01-07 1998-12-22 Computer system and memory protection method

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP53615399A Expired - Fee Related JP3983820B2 (en) 1998-01-07 1998-12-22 Computer system and memory protection method

Country Status (2)

Country Link
JP (2) JP4306811B2 (en)
WO (2) WO1999035580A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5103823B2 (en) * 2006-08-18 2012-12-19 富士通株式会社 Information processing apparatus and input / output request control method
US7941499B2 (en) 2007-03-06 2011-05-10 Freescale Semiconductor, Inc. Interprocessor message transmission via coherency-based interconnect
JP5413001B2 (en) * 2009-07-09 2014-02-12 富士通株式会社 Cache memory
JP5541275B2 (en) * 2011-12-28 2014-07-09 富士通株式会社 Information processing apparatus and unauthorized access prevention method
CN105718242B (en) * 2016-01-15 2018-08-17 中国人民解放军国防科学技术大学 The processing method and system of software and hardware data consistency are supported in multi-core DSP
JP6668908B2 (en) * 2016-04-13 2020-03-18 富士通株式会社 Information processing system, transmitting apparatus, and control method for information processing system
JP2019053617A (en) 2017-09-15 2019-04-04 株式会社東芝 System lsi and system lsi failure detection method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04291446A (en) * 1990-12-05 1992-10-15 Ncr Corp Tightly coupled multiprocessor provided with scalable memory band
US5450563A (en) * 1992-10-30 1995-09-12 International Business Machines Corporation Storage protection keys in two level cache system
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system

Also Published As

Publication number Publication date
WO1999035581A1 (en) 1999-07-15
WO1999035580A1 (en) 1999-07-15
JP2001515632A (en) 2001-09-18
JP2001515633A (en) 2001-09-18
JP3983820B2 (en) 2007-09-26

Similar Documents

Publication Publication Date Title
US6209064B1 (en) Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system
US7032078B2 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
EP0889403B1 (en) A snoop filter for use in multiprocessor computer systems
CN1783033B (en) Heterogeneous processors sharing a common cache
US6212610B1 (en) Memory protection mechanism for a distributed shared memory multiprocessor with integrated message passing support
JPH11134312A (en) Decentralized shared memory multiprocessor system
US6128677A (en) System and method for improved transfer of data between multiple processors and I/O bridges
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US20050021913A1 (en) Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges
JPH0776942B2 (en) Multiprocessor system and data transmission device thereof
JP2001184321A (en) Main memory shared parallel computers and node controller to be used therefor
JP2002519785A (en) Split directory-based cache coherency technique for multiprocessor computer systems
JP2000112910A (en) Nonuniform memory access computer system and operating method therefor
EP0764905B1 (en) An invalidation bus optimisation for multiprocessors using directory-based coherence protocols
US20040002992A1 (en) Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
US6950913B2 (en) Methods and apparatus for multiple cluster locking
US7159079B2 (en) Multiprocessor system
JP4306811B2 (en) Cache coherence unit with integrated message passing and memory protection for distributed shared memory multiprocessor systems
KR100348956B1 (en) Non-uniform memory access(numa) data processing system that decreases latency by expediting rerun requests
US6339812B1 (en) Method and apparatus for handling invalidation requests to processors not present in a computer system
US20040268052A1 (en) Methods and apparatus for sending targeted probes
JPH0750466B2 (en) Parallel computer cache memory control system
KR100253201B1 (en) Cache coherency controller for system having distributed shared memory structure
WO2023121925A1 (en) Coherent block read fulfillment
JPH0511340B2 (en)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080418

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090428

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees