[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH06110844A - Decentralized shared memory type multiprocessor system - Google Patents

Decentralized shared memory type multiprocessor system

Info

Publication number
JPH06110844A
JPH06110844A JP5199772A JP19977293A JPH06110844A JP H06110844 A JPH06110844 A JP H06110844A JP 5199772 A JP5199772 A JP 5199772A JP 19977293 A JP19977293 A JP 19977293A JP H06110844 A JPH06110844 A JP H06110844A
Authority
JP
Japan
Prior art keywords
shared
cache
memory
state
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5199772A
Other languages
Japanese (ja)
Inventor
Shigeaki Iwasa
繁明 岩佐
Takashi Omizo
孝 大溝
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5199772A priority Critical patent/JPH06110844A/en
Publication of JPH06110844A publication Critical patent/JPH06110844A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To reduce the traffic of a shared bus and to hold the consistency of a cache in a decentralized shared memory type multiprocessor system consisting of plural processors containing the CPUs, the cache memories, and the partial and shared control parts of a main storage which are connected together via the shared bus. CONSTITUTION:A shared control part 4 includes a main storage tag memory 27 which stores the information on a fact whether the address of its own main memory is stored (shared) in the cache memory of another processor or not (non-shared) and a cache state tag memory 24 which stores the information on a fact whether the data entry of the cache memory is updated and rewritten (dirty) in a shared memory or not (clean). Then a CPU gives an invalidating instruction onto a shared bus to assure the cache consistency as long as a main storage tag is shared when the CPU writes the information in its own main memory. Meanwhile the CPU gives nothing to the shared bus if the main storage tag is not shared and performs the processing in its own processor only. If the cache state tag is dirty to the access request given from another processor unit, the cache consistency is held via the access request.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は電子計算機、特に、複数
のCPUをバスで結合する密結合マルチプロセッサシス
テムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic computer, and more particularly to a tightly coupled multiprocessor system in which a plurality of CPUs are coupled by a bus.

【0002】[0002]

【従来の技術】共有メモリ型マルチプロセッサは、図1
のように複数のプロセッサ(プロセッサ1〜プロセッサ
n)1000−1〜1000−nと共有メモリ1000
−1〜1000−mをバスまたはスイッチを用いた結合
路1002で結合した構成を持ち、メモリは全てのプロ
セッサから平等にアクセスすることができる。よって、
並列プログラムは主メモリ上のメモリを区別することな
くアクセスを行なうことができ、他のプロセスと共有し
ている変数をアクセスする際に、そのプロセスがプロセ
ッサ間に跨っているか否かを意識せずにアクセスを行な
うことができる。
2. Description of the Related Art A shared memory type multiprocessor is shown in FIG.
Multiple processors (processor 1 to processor n) 1000-1 to 1000-n and shared memory 1000
It has a configuration in which -1 to 1000-m are coupled by a coupling path 1002 using a bus or a switch, and the memory can be equally accessed by all the processors. Therefore,
A parallel program can access without distinguishing the memory on the main memory, and when accessing a variable shared with another process, it does not care whether the process spans between processors. Can be accessed.

【0003】ところで、並列プログラムといえども、共
有変数へのアクセスばかりでプログラムが実行されるわ
けではない。むしろ、メモリアクセスの大部分はそのプ
ログラムの局所変数へのアクセスであり、マルチプロセ
ッサの性能を高める上で、局所変数のアクセス性能が大
きな影響を及ぼす。
By the way, even with a parallel program, the program is not executed only by accessing the shared variables. Rather, the majority of memory accesses are accesses to the local variables of the program, and the access performance of the local variables has a great influence on improving the performance of the multiprocessor.

【0004】図1の共有メモリ型マルチプロセッサでは
プロセッサで共有していない局所変数へのアクセスであ
っても、キャッシュミスを起こした場合は、共有変数へ
のアクセスと同様に共有バスへアクセスを出し、共有メ
モリをアクセスすることでキャッシュをリフィルする。
この方式では、並列プログラムの作成にあたり変数がプ
ロセッサ間で共有されているか否かを区別する必要がな
くプログラム作成上の制約が少ないことが特徴である
が、局所変数のアクセス性能を高めることができない。
In the shared memory type multiprocessor of FIG. 1, even if an access is made to a local variable that is not shared by the processors, if a cache miss occurs, an access to the shared bus is issued in the same manner as an access to the shared variable. , Refill the cache by accessing the shared memory.
In this method, it is not necessary to distinguish whether variables are shared between processors or not when creating a parallel program, and there are few restrictions on program creation, but the access performance of local variables cannot be improved. .

【0005】密結合マルチプロセッサで高いシステム性
能を得るためには、共有バス上のトラフィックを低減
し、より多くのプロセッサを結合することが肝要である
が、この方式の共有メモリ型マルチプロセッサでは局所
変数のアクセスにも共有バスを使用しなければならず、
多数のプロセッサを結合することが事実上困難であると
いう課題があった。
In order to obtain high system performance with the tightly coupled multiprocessor, it is essential to reduce the traffic on the shared bus and to connect more processors. You must also use the shared bus to access variables,
There is a problem that it is practically difficult to combine a large number of processors.

【0006】近年、半導体集積回路の製造技術は長足の
進歩を遂げ、今日に至っては汎用計算機の中央処理装置
(CPU)のみならず、周辺のキャッシュメモリや記憶
管理機構(MMU)をも1個のチップ上に集積すること
が困難となった。いわゆる、マイクロプロセッサと呼ば
れるチップである。主記憶に用いるDRAMにおいては
1チップあたり4ないし16メガビットの集積度が実現
され、更に高い集積度を目指した研究開発が行なわれて
いる。これらの技術の恩恵を受けて、ワークステーショ
ンと呼ばれる小型計算機は、ディスク、LAN回線とい
った周辺機器の制御装置までを含めて1枚の基板上に集
積する。メモリとCPUが密に結合することで高い性能
を実現し、CPUの処理性能のみに注目すれば同世代の
汎用計算機と肩を並べるまでに至った。この様に今日の
技術をもってすれば、実用的なレベルでCPUとメモリ
を同一基板上に搭載することは可能である。
In recent years, semiconductor integrated circuit manufacturing technology has made great strides, and to date, not only a central processing unit (CPU) of a general-purpose computer, but also a peripheral cache memory and a memory management unit (MMU) are provided. Became difficult to integrate on the chip. It is a so-called microprocessor chip. In the DRAM used for the main memory, a degree of integration of 4 to 16 megabits has been realized per chip, and research and development aiming at a higher degree of integration have been conducted. Taking advantage of these technologies, a small-sized computer called a workstation is integrated on one board including a controller for peripheral devices such as a disk and a LAN line. High performance has been realized by tightly coupling the memory and the CPU, and if attention is paid only to the processing performance of the CPU, it has come close to the general-purpose computer of the same generation. Thus, with today's technology, it is possible to mount the CPU and memory on the same substrate at a practical level.

【0007】図2はメモリを各プロセッサ基板に分散配
置した分散共有メモリ型マルチプロセッサの構成図を示
す。この構成では、CPUとメモリを同一基板に搭載
し、各基板1010−1〜1010−nはバス駆動バッ
ファを経由して共有バス1012で結合されている。こ
の構成で、同一基板上のメモリを局所変数に割り当てれ
ば、局所変数のアクセスは共有バスを経由しなくてもア
クセス可能である。そして、プロセッサ間で共有する変
数は、共有を行うプロセッサのいずれかの主メモリ上に
おき、共有バスを用いてアクセスする。
FIG. 2 shows a configuration diagram of a distributed shared memory type multiprocessor in which memories are distributedly arranged on respective processor boards. In this configuration, the CPU and the memory are mounted on the same substrate, and the substrates 1010-1 to 1010-n are connected by the shared bus 1012 via the bus drive buffer. With this configuration, if the memory on the same board is assigned to the local variables, the local variables can be accessed without going through the shared bus. Then, the variable shared between the processors is placed in one of the main memories of the processors that share it and accessed using the shared bus.

【0008】しかし、既存の並列プログラムは共有変数
と局所変数を区別して記述されておらず、新たに作成す
る並列プログラムにおいても、これを区別して記述する
ことは大きな制約となる。また、同一基板上にCPUと
メモリを搭載するにはマイクロプロセッサを用いるが、
既存のマイクロプロセッサに共有変数と局所変数を区別
してアクセスする手段を持ち合わせていないものが多
い。
However, existing parallel programs are not described by distinguishing between shared variables and local variables, and even in a newly created parallel program, it is a great limitation to distinguish and describe them. A microprocessor is used to mount a CPU and memory on the same board.
Many existing microprocessors do not have a means to access shared variables and local variables separately.

【0009】メモリシステムの振舞いとしては、あるア
クセスが共有変数へのアクセスである可能性が否定でき
ない限り、共有バスを用いて他の基板上のプロセッサの
キャッシュメモリにアクセスを行なった旨を伝達しなけ
れば、一貫性を保持することができないため、全てのア
クセスを共有バス上に伝達する必要が生じる。
The behavior of the memory system is to convey that the access to the cache memory of the processor on another board is performed using the shared bus unless the access can be denied to the shared variable. Otherwise, it will not be possible to maintain consistency, and all access will need to be carried on the shared bus.

【0010】よって、この様な構成を用いても、共有バ
スのトラフィックは減少せず、システムの拡張性を高め
られないという問題点があった。
Therefore, even if such a configuration is used, there is a problem that the traffic of the shared bus is not reduced and the expandability of the system cannot be enhanced.

【0011】[0011]

【発明が解決しようとする課題】以上まとめると、従来
のマルチプロセッサでは、全てのアクセスについて共有
バスを経由して共有メモリをアクセスするという動作が
行われるため、共有バスのトラフィックが増大し、シス
テムの拡張性を高められないという問題点があった。
In summary, in the conventional multiprocessor, since the operation of accessing the shared memory via the shared bus is performed for all accesses, the traffic of the shared bus increases and the system There was a problem that the expandability of could not be improved.

【0012】本発明は以上の問題点を解決するためにな
されたものであり、その目的とするところは、並列プロ
グラムに変数アクセスに対する制約を加えることなく、
共有バスの不必要なトラフィックを削減し、システム拡
張性の高いマルチプロセッサシステムを提供することに
ある。
The present invention has been made to solve the above problems, and an object of the present invention is to provide a parallel program without restricting variable access.
To reduce unnecessary traffic on the shared bus and provide a multiprocessor system with high system expandability.

【0013】[0013]

【課題を解決するための手段】上記課題を解決するため
に、本発明は、共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、CPUと、内部バスを介してCPUと接続され、シ
ステムの共有メモリの分散された一部を記憶する主メモ
リと、内部バスを介して主メモリと接続され、共有メモ
リの選択されたデータ・エントリをキャッシュするCP
Uキャッシュメモリと、内部バスを介して主メモリとC
PUキャッシュメモリと接続され、内部バスと共有バス
をインタフェースする共有管理部で、該各プロセッサ・
ユニット上の主メモリの各データ・エントリが他のプロ
セッサ・ユニット上のCPUキャッシュメモリに共有さ
れているか否かを示す主メモリの各データ・エントリの
共有状態を記憶する主記憶タグ手段と、CPUによる主
メモリの或るデータ・エントリに対する書き込み命令の
実行に対して、主記憶タグ手段の該或るデータ・エント
リの共有状態が該或るデータ・エントリは他のプロセッ
サ・ユニット上のCPUキャッシュメモリに共有されて
いることを示している時に、該他のプロセッサ・ユニッ
ト上のCPUキャッシュメモリの該或るデータ・エント
リを無効化するように該他のプロセッサ・ユニットに命
令する無効化命令を共有バス上に発行する命令手段と、
CPUキャッシュメモリに記憶された選択されたデータ
・エントリのアドレスを記憶するキャッシュ・タグ手段
と、某データ・エントリに対する無効化命令を共有バス
から受け取り該某データ・エントリのアドレスがキャッ
シュ・タグ手段に記憶されている時に、CPUキャッシ
ュメモリの該某データ・エントリを無効化する制御手段
と、を含むものと、から成るシステムを提供する。
In order to solve the above problems, the present invention provides a distributed shared memory type multiprocessor system comprising a plurality of processor units coupled via a shared bus. The unit is connected to the CPU via the internal bus and the main memory for storing a distributed part of the shared memory of the system, and the main memory via the internal bus to select the shared memory CP for caching data entries
U cache memory and main memory and C via internal bus
A shared management unit that is connected to the PU cache memory and interfaces between the internal bus and the shared bus.
A main memory tag means for storing the shared state of each data entry in the main memory indicating whether or not each data entry in the main memory on the unit is shared by the CPU cache memory on another processor unit; The execution of a write instruction to a data entry of the main memory by the CPU, the shared state of the data entry of the main memory tag means is that the data entry is a CPU cache memory on another processor unit. An invalidate instruction that instructs the other processor unit to invalidate the certain data entry in the CPU cache memory on the other processor unit when indicating that the other processor unit is shared. Instruction means issued on the bus,
A cache tag means for storing the address of the selected data entry stored in the CPU cache memory, and an invalidating instruction for a certain data entry from the shared bus, and the address of the certain data entry is given to the cache tag means. And a control means for invalidating the certain data entry in the CPU cache memory when stored.

【0014】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、介入手段が該別のプロセッサ上の主メモリの
該或るデータ・エントリへのアクセスに介入した時に、
キャッシュ状態タグ手段の該或るデータ・エントリのキ
ャッシュ状態を、該或るデータ・エントリの所有権を持
った一キャッシュ状態から該或るデータ・エントリの所
有権を持たない他のキャッシュ状態に状態遷移させ、該
各プロセッサ・ユニットからの某データ・エントリへの
アクセスが他のプロセッサ・ユニットの介入手段により
介入された時に、キャッシュ状態タグ手段の該某データ
・エントリのキャッシュ状態を、該某データ・エントリ
の所有権を持たない一キャッシュ状態から該某データ・
エントリの所有権を持った他のキャッシュ状態に状態遷
移させるように制御する制御手段と、を含むものと、か
ら成るシステムを提供する。
Further, the present invention is a distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, wherein each processor unit has a CPU and an internal bus. A main memory connected to the CPU for storing a distributed portion of the system's shared memory, and a CPU cache memory connected to the main memory via an internal bus for caching selected data entries of the shared memory; A shared management unit that is connected to the main memory and the CPU cache memory via the internal bus and interfaces the internal bus and the shared bus.
Stores the cache state of each data entry in the CPU cache memory indicating whether each data entry in the U cache memory has been updated in the CPU cache memory on each processor unit and not written back to the shared memory. In response to an access request for a certain data entry from the cache state tag means and another processor unit received via the shared bus, the cache state of the certain data entry of the cache state tag means is the certain state. The data entry in main memory on the other processor unit when it indicates that the data entry has been updated in the CPU cache memory on each processor unit and not written back to shared memory. Interventions to intervene in access to and When you intervene in access to 該或 of main memory Ru data entry on the processor of said another,
The cache state of the certain data entry of the cache state tag means is changed from one cache state having the ownership of the certain data entry to another cache state not having the ownership of the certain data entry. When the access to the certain data entry from each of the processor units is made by the intervention means of the other processor unit, the cache state of the certain data entry of the cache state tag means is changed to the certain data entry. · From a cache state that does not have ownership of the entry, the certain data
And a control means for controlling the state transition to another cache state having the ownership of the entry.

【0015】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットからなる分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、該各
プロセッサ・ユニット上の主メモリの各データ・エント
リが他のプロセッサ・ユニット上のCPUキャッシュメ
モリに共有されているか否かを示す主メモリの各データ
・エントリの共有状態を記憶する主記憶タグ手段と、C
PUキャッシュメモリの各データ・エントリが該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないか否かを
示すCPUキャッシュメモリの各データ・エントリのキ
ャッシュ状態を記憶するキャッシュ状態タグ手段と、C
PUによる主メモリの或るデータ・エントリに対する読
み出し/書き込み命令の実行に対して、主記憶タグ手段
の該或るデータ・エントリの共有状態が該或るデータ・
エントリは他のプロセッサ・ユニット上のCPUキャッ
シュメモリに共有されていることを示している時に、該
他のプロセッサ・ユニット上のCPUキャッシュメモリ
の該或るデータ・エントリを共有バス上に読み出すよう
に該他のプロセッサ・ユニットに命令する読み出し命令
を共有バス上に発行する命令手段と、共有バスを介して
受け取った別のプロセッサ・ユニットからの読み出し命
令に対して、キャッシュ状態タグ手段の某データ・エン
トリのキャッシュ状態が該某データ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該某データ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
Further, the present invention is a distributed shared memory type multiprocessor system comprising a plurality of processor units coupled via a shared bus, wherein each processor unit is connected to a CPU via an internal bus. A main memory connected to the CPU for storing a distributed portion of the system's shared memory, and a CPU cache memory connected to the main memory via an internal bus for caching selected data entries of the shared memory; A shared management unit that is connected to a main memory and a CPU cache memory via an internal bus and interfaces the internal bus and the shared bus. Each data entry of the main memory on each processor unit is on another processor unit. Shared state of each data entry in the main memory indicating whether or not it is shared in the CPU cache memory A main storage tag means for storing, C
Stores the cache state of each data entry in the CPU cache memory indicating whether each data entry in the PU cache memory has been updated in the CPU cache memory on each processor unit and not written back to the shared memory. Cache state tag means, C
In response to the execution of a read / write instruction for a certain data entry in the main memory by the PU, the shared state of the certain data entry in the main memory tag means is the certain data entry.
To read the certain data entry of the CPU cache memory on the other processor unit onto the shared bus when indicating that the entry is shared with the CPU cache memory on the other processor unit. A command means for issuing a read command for instructing the other processor unit on the shared bus, and a certain data of the cache state tag means for a read command received from another processor unit via the shared bus. Main memory on another processor unit when the cache state of the entry indicates that the data entry has been updated in the CPU cache memory on each processor unit and not written back to shared memory. An intervention means for intervening in accessing the certain data entry of Noto, a system consisting of.

【0016】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
Further, the present invention is a distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, each processor unit having a CPU and an internal bus. A main memory connected to the CPU for storing a distributed portion of the system's shared memory, and a CPU cache memory connected to the main memory via an internal bus for caching selected data entries of the shared memory; A shared management unit that is connected to the main memory and the CPU cache memory via the internal bus and interfaces the internal bus and the shared bus.
Stores the cache state of each data entry in the CPU cache memory indicating whether each data entry in the U cache memory has been updated in the CPU cache memory on each processor unit and not written back to the shared memory. In response to an access request for a certain data entry from the cache state tag means and another processor unit received via the shared bus, the cache state of the certain data entry of the cache state tag means is the certain state. The data entry in main memory on the other processor unit when it indicates that the data entry has been updated in the CPU cache memory on each processor unit and not written back to shared memory. Means for intervening in access to When, a system consisting of.

【0017】更に、請求項4記載のシステムにおいて、
共有管理部が更に、該各プロセッサ・ユニット上の主メ
モリの各データ・エントリの共有状態を記憶する主記憶
タグ手段で、共有状態は該各データ・エントリの所有権
が該各プロセッサ・ユニット上に存在することを示す
[H]状態と、該各データ・エントリの所有権が他のプ
ロセッサ・ユニット上に存在することを示す[A]状態
とを含むものと、CPUによる主メモリの某データ・エ
ントリに対するアクセス要求に対して、主記憶タグ手段
の該某データ・エントリの共有状態が[A]状態である
時に、該他のプロセッサ・ユニット上のCPUキャッシ
ュメモリの該某データ・エントリを共有バス上に読み出
すように該他のプロセッサ・ユニットに命令する読み出
し命令を共有バス上に発行する命令手段と、を含むシス
テムを提供する。
Further, in the system according to claim 4,
The sharing manager is a main memory tag means for storing the shared state of each data entry in the main memory on each processor unit, the shared state being the ownership of each data entry on each processor unit. [H] state indicating that each data entry exists on another processor unit, and [A] state indicating that the ownership of each data entry exists on another processor unit, and certain data in the main memory by the CPU. In response to an access request for an entry, when the sharing state of the certain data entry of the main memory tag means is the [A] state, the certain data entry of the CPU cache memory on the other processor unit is shared. An instruction means for issuing a read instruction on the shared bus instructing the other processor unit to read out on the bus.

【0018】[0018]

【作用】請求項1記載の第1の発明によれば、主記憶タ
グ手段が、自己の主メモリのアドレスが他のプロセッサ
のキャッシュメモリ上に存在するか(共有か)否か(非
共有か)の情報を記憶しているため、CPUが自己の主
メモリへの書き込みを行う際に、共有であれば命令手段
が共有バス上に無効化命令を出してキャッシュの一貫性
を保証し、非共有であれば共有バス上には何も出さずに
自己のプロセッサ内部だけで処理を行う。書き込むアド
レスをキャッシュメモリ上に持っている他のプロセッサ
は、キャッシュメモリ上にあるアドレスの情報を持つキ
ャッシュ・タグ手段を用いて、制御手段により前記の無
効化命令を共有バスから拾い出して無効化を行う。この
ように、非共有である場合に共有バスを用いないため、
共有バス上のトラフィックを少なくして、キャッシュの
一貫性保持が実現できる。
According to the first aspect of the present invention, whether or not the main memory tag means has the address of its own main memory in the cache memory of another processor (shared) or not (non-shared). ), The instruction means issues an invalidation instruction on the shared bus to guarantee cache coherency when the CPU writes to its own main memory when writing to its main memory. If it is shared, nothing is output on the shared bus, and processing is performed only within its own processor. Another processor having an address to be written in the cache memory uses the cache tag means having the information of the address in the cache memory to take out the invalidation instruction from the shared bus and invalidate it by the control means. I do. In this way, since the shared bus is not used when it is not shared,
Cache coherency can be achieved by reducing traffic on the shared bus.

【0019】又、請求項2記載の発明によれば、制御手
段がキャッシュ状態タグ手段のキャッシュ状態を、介入
先から介入元へ所有権移転が行われるように状態遷移さ
せるので、所有権に併う主メモリへ書き戻す義務が指定
されたアドレスのデータ・エントリを主メモリに持たず
CPUキャッシュメモリに持つ介入元の基板から指定さ
れたアドレスのデータ・エントリを主メモリに持つ介入
先の基板に移転され、後に書き戻しが要求された時には
指定されたアドレスのデータ・エントリの書き戻しが主
メモリに持つ基板のCPUキャッシュメモリから主メモ
リへ内部バスのみを使用して行えるようになる。
According to the second aspect of the present invention, the control means changes the cache state of the cache state tag means so that the ownership is transferred from the intervention destination to the intervention source. Obligation to write back to the main memory does not have the data entry of the specified address in the main memory but has the data entry of the CPU cache memory from the intervention source board to the intervention destination board that has the data entry of the specified address in the main memory When the data is transferred and later written back is requested, the data entry at the specified address can be written back to the main memory from the CPU cache memory of the substrate in the main memory using only the internal bus.

【0020】又、請求項3記載の発明によれば、主記憶
タグ手段が、自己の主メモリのアドレスが他のプロセッ
サのキャッシュメモリ上に存在するか(共有か)否か
(非共有か)の情報を記憶しているため、CPUが自己
の主メモリからの読出し/書込みを行う際に、共有であ
れば命令手段が共有バス上に読み出し命令を出してキャ
ッシュの一貫性を保証し、非共有であれば共有バス上に
は何も出さずに自己のプロセッサ内部だけで処理を行
う。読み出すアドレスをキャッシュメモリ上に持ってい
る他のプロセッサは、キャッシュ状態タグ手段が、キャ
ッシュメモリ上にあるアドレスが最新の値でまだ主メモ
リに書き戻されていない(ダーティ)か否(クリ−ン)
かの情報を記憶しているため、介入手段により前記の読
み出し命令を共有バスから拾い出してそのアドレスがダ
ーティであれば介入を行う。このように、非共有である
場合に共有バスを用いないため、共有バス上のトラフィ
ックを少なくして、キャッシュの一貫性保持が実現でき
る。
According to the third aspect of the invention, the main memory tag means determines whether the address of its own main memory exists in the cache memory of another processor (shared) or not (shared). When storing / reading information from the main memory, the instruction means issues a read instruction on the shared bus to guarantee the coherency of the cache when the CPU reads / writes from the main memory. If it is shared, nothing is output on the shared bus, and processing is performed only within its own processor. The other processor having the address to be read in the cache memory determines whether the cache state tag means has the latest address in the cache memory and has not been written back to the main memory (dirty) (clean). )
Since this information is stored, the read-out instruction is picked up from the shared bus by the intervention means and the intervention is performed if the address is dirty. As described above, since the shared bus is not used when the shared bus is not shared, the traffic on the shared bus can be reduced and the cache coherency can be maintained.

【0021】又、請求項4及び5記載の発明によれば、
主記憶タグ手段の共有状態は[H]状態と[A]状態の
2種類のみとなり。メモリ容量やコストの削減が実現可
能である上、所有権の所在が共有バス上の介入を待たず
に分かるので、共有バス上のトラフィックを低減出来る
ようになる。
According to the inventions of claims 4 and 5,
There are only two shared states of the main memory tag means, the [H] state and the [A] state. It is possible to reduce the memory capacity and cost, and the ownership can be known without waiting for the intervention on the shared bus, so that the traffic on the shared bus can be reduced.

【0022】[0022]

【実施例】本実施例の概要を説明すると、CPUとキャ
ッシュメモリと主メモリと共有管理部とが内部バスで結
合されたプロセッサ基板を複数共有バスで接続したマル
チプロセッサシステムであって、共有管理部は、主メモ
リのキャッシュラインごとに該キャッシュラインが他の
基板上のプロセッサのキャッシュメモリと共有している
か否かを示す共有状態を記憶し、プロセッサが要求した
アドレスが他の基板上のプロセッサのキャッシュメモリ
と共有しているか否かを判定し、共有バス上のトラフィ
ックを監視して、トラフィックが作用するエントリの状
態遷移に応じて共有状態を適宜設定し、CPUのキャッ
シュメモリのエントリごとに該キャッシュラインのCP
Uのキャッシュメモリ上の状態を記憶し、共有バス上の
アクセス要求に対して同一基板上のプロセッサのキャッ
シュメモリと一貫性保持の動作が必要か否かを判定し、
内部バス上のトラフィックを監視して、CPUのキャッ
シュメモリの状態遷移に応じて、CPUキャッシュのキ
ャッシュ状態を適宜に設定する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS To explain the outline of the present embodiment, it is a multiprocessor system in which processor boards in which a CPU, a cache memory, a main memory and a shared management unit are connected by an internal bus are connected by a plurality of shared buses. The unit stores, for each cache line of the main memory, a shared state indicating whether the cache line is shared with the cache memory of the processor on another board, and the address requested by the processor is the processor on the other board. It is determined whether or not it is shared with the cache memory of the CPU, the traffic on the shared bus is monitored, and the shared state is appropriately set according to the state transition of the entry affected by the traffic. CP of the cache line
The state on the cache memory of U is stored, and it is determined whether or not the operation of keeping consistency with the cache memory of the processor on the same board is necessary for the access request on the shared bus.
The traffic on the internal bus is monitored, and the cache state of the CPU cache is appropriately set according to the state transition of the cache memory of the CPU.

【0023】そして、CPUによって行なわれたアクセ
スは内部バスに出力され、同一基板上のメモリのアクセ
スの場合は同一基板上のメモリをアクセスする。
The access made by the CPU is output to the internal bus, and when accessing the memory on the same substrate, the memory on the same substrate is accessed.

【0024】同時に共有管理部でアドレスを解釈し、該
当するアドレスが他の基板上のプロセッサのキャッシュ
メモリと共有されているか否かを判定する。他のキャッ
シュメモリと共有が行なわれていない場合は共有バスを
用いず、同一基板上のメモリのアクセスで要求が満たさ
れる。すなわち、この場合の、共有バスを使用すること
なくアクセス要求を満たすことができ、共有バスのトラ
フィックを減少させることができる。その間に、共有バ
スは他の基板の発行する要求の処理を行なうことができ
る。
At the same time, the sharing management unit interprets the address and determines whether the corresponding address is shared with the cache memory of the processor on another board. If the cache memory is not shared with other cache memories, the shared bus is not used and the request is satisfied by accessing the memory on the same substrate. That is, in this case, the access request can be satisfied without using the shared bus, and the traffic of the shared bus can be reduced. Meanwhile, the shared bus can process requests issued by other boards.

【0025】同一基板上のメモリへのアクセスであって
も、共有管理部によって他の基板上のプロセッサのキャ
ッシュメモリと共有されていると判定された場合は、内
部バスと同時に外部アクセス手段を用いて共有バスにも
アクセスを行ない、他の基板上のキャッシュメモリとの
一貫性保持を行なう。
Even if the memory on the same board is accessed, if the shared management unit determines that the memory is shared with the cache memory of the processor on another board, the external access means is used simultaneously with the internal bus. The shared bus is also accessed to maintain coherency with cache memory on other boards.

【0026】要求されたアドレスが他の基板上のメモリ
である場合は、共有バスを用いて必要なメモリを持つ基
板にアクセスを伝える。要求されたアドレスのメモリを
持つ基板上は共有バス上のアドレスを判定してメモリを
アクセスし、共有バス上の要求に答える。このとき、メ
モリを持つ基板上の共有管理部は、そのアドレスが他の
基板との共有状態であることを示すように設定する。
If the requested address is a memory on another board, a shared bus is used to convey the access to the board with the required memory. On the board having the memory of the requested address, the address on the shared bus is determined, the memory is accessed, and the request on the shared bus is answered. At this time, the shared management unit on the board having the memory is set so as to indicate that the address is in a shared state with another board.

【0027】共有バス上にアクセスを行なうと、他の全
ての基板の共有管理部が各自の基板上のキャッシュメモ
リに該当アドレスが存在するか否かを判定する。該当ア
ドレスが存在した場合、共有管理部は該当アドレスが共
有であることをアクセス元に応答する。もし、共有バス
上のいずれの基板も共有を応答しなかったならばアクセ
スを行なった基板の共有管理部は、該当アドレスは非共
有になったことを示すように設定する。この場合、それ
以降のアクセスは共有バスを用いずに行なうことができ
るようになる。
When the shared bus is accessed, the shared management units of all the other boards judge whether or not the corresponding address exists in the cache memory on their own boards. When the corresponding address exists, the sharing management unit responds to the access source that the corresponding address is shared. If none of the boards on the shared bus responds to the sharing, the sharing management unit of the accessed board sets the corresponding address to indicate that it is not shared. In this case, subsequent access can be performed without using the shared bus.

【0028】また、共有管理部はCPUのキャッシュメ
モリの状態を推定しており、共有バス上に要求されたア
ドレスがキャッシュメモリ上で更新されていた場合や共
有バス上の要求が共有変数への書き込みであったなど一
貫性保持のための動作が必要と判定した場合のみ、その
基板の内部バスを用いてCPUのキャッシュに一貫性保
持に必要な動作を指示する。
Further, the shared management unit estimates the state of the cache memory of the CPU, and when the address requested on the shared bus is updated in the cache memory or the request on the shared bus is sent to the shared variable. Only when it is determined that the operation for maintaining the consistency is necessary such as writing, the internal bus of the board is used to instruct the cache of the CPU of the operation necessary for maintaining the consistency.

【0029】内部バス上に発行されたCPUのアクセス
要求は以上のような過程を経て完了し、要求されたキャ
ッシュエントリが他のプロセッサのキャッシュと共有し
ているか否かの応答が示され、これに基づいてCPUの
キャッシュはそのエントリの状態を決定する。共有管理
部は以上の一連の内部バスのトラフィックを監視し、こ
れに基づいてCPUキャッシュの状態遷移を推定し、C
PUのキャッシュの状態変化を設定する。この結果、共
有管理部は共有バス上のトラフィックに対して一貫性保
持の動作が必要か否かをCPUのキャッシュに問い合わ
せずに判定する事ができ、CPUを内部バスをその処理
に使用し、共有アクセスに伴う不要な干渉を防ぐことが
できる。
The CPU access request issued on the internal bus is completed through the above process, and a response indicating whether or not the requested cache entry is shared with the cache of another processor is shown. Based on the, the cache of the CPU determines the state of that entry. The shared management unit monitors the traffic of the above series of internal buses, estimates the state transition of the CPU cache based on this, and
Set the cache state change of PU. As a result, the shared management unit can determine whether or not the operation of maintaining the consistency for the traffic on the shared bus is necessary without inquiring the cache of the CPU, and the CPU uses the internal bus for the processing. It is possible to prevent unnecessary interference associated with shared access.

【0030】以下、図面に基づいてこの発明に係る分散
共有メモリ型マルチプロセッサシステムの実施例につい
て説明する。
An embodiment of a distributed shared memory type multiprocessor system according to the present invention will be described below with reference to the drawings.

【0031】図3は本発明の第1実施例の分散共有メモ
リ型マルチプロセッサシステムの全体の構成図である。
各々のプロセッサ・ユニットはCPU1とキャッシュメ
モリ2、主メモリ3、共有管理部4を持ち、内部バス5
で結合されて、同一基板上に搭載されている。プロセッ
サ・ユニットを搭載した各基板A,B,C,Dは、バッ
クプレーン上の共有バス6によって結合され、共有管理
部4を介して他の基板上のメモリへのアクセスを行な
う。
FIG. 3 is an overall configuration diagram of a distributed shared memory type multiprocessor system according to the first embodiment of the present invention.
Each processor unit has a CPU 1, a cache memory 2, a main memory 3 and a shared management unit 4, and an internal bus 5
They are combined with each other and mounted on the same substrate. Each of the boards A, B, C, and D on which the processor unit is mounted is connected by a shared bus 6 on the backplane, and accesses the memory on another board via the shared management unit 4.

【0032】CPU1は少なくともメモリに対する読み
出し命令と書き込み命令を各々1種類以上持ち、プログ
ラムの命令列に従ってプログラムを実行する。
The CPU 1 has at least one type of read command and one or more type of write command for the memory, and executes the program according to the command sequence of the program.

【0033】図4にキャッシュメモリ2の内部構成を示
す。キャッシュメモリ2は、各基板上の主メモリの総体
から成るマルチプロセッサ全体の共有メモリのデータ・
エントリの一部分のコピーを持ち、そのコピーを記憶す
るデータ記憶部13と、そのコピーの主メモリ上でのア
ドレスを記憶するアドレスタグ部11と、そのコピーの
状態を記憶する状態タグ部12を持つ。本実施例のキャ
ッシュメモリのデータ記憶部は1メガバイトの容量を持
つが、キャッシュメモリの容量は本発明の有効性と関係
ない。
FIG. 4 shows the internal structure of the cache memory 2. The cache memory 2 is a shared memory data memory for the entire multiprocessor, which is composed of the main memory on each board.
It has a copy of a part of the entry, and has a data storage unit 13 for storing the copy, an address tag unit 11 for storing the address of the copy on the main memory, and a state tag unit 12 for storing the state of the copy. . Although the data storage unit of the cache memory of this embodiment has a capacity of 1 megabyte, the capacity of the cache memory is not related to the effectiveness of the present invention.

【0034】アドレスや状態の管理はキャッシュライン
と呼ばれるブロックで行う。本実施例では以下の説明で
キャッシュラインを64バイトとするが、このキャッシ
ュラインの大きさはCPUが扱うデータ長以上で有れば
本発明の有効性を失わない。本発明のキャッシュメモリ
は16キロラインのキャッシュラインを管理する。
Management of addresses and states is performed in blocks called cache lines. In the present embodiment, the cache line is assumed to be 64 bytes in the following description, but the effectiveness of the present invention is not lost if the size of this cache line is not less than the data length handled by the CPU. The cache memory of the present invention manages a cache line of 16 kilo lines.

【0035】なお、状態タグ部12に記憶される情報
は、他のCPUとの共有状態(共有/非共有)やCPU
によって書換が行われ最新の値を保持しているか否かの
書換状態(ダーティ/クリーン)、そのキャッシュライ
ンの値が有効であるか否かの有効状態(有効/無効)な
ど、共有メモリの一貫性保持を想定した通常のキャッシ
ュメモリの状態タグと同様の状態情報であり、キャッシ
ュメモリ2は一貫性保持を行う共有メモリのキャッシュ
メモリとして動作するようキャッシュ制御部17が制御
を行う。このようなキャッシュメモリの動作は特開平2
−253356号公報および“Cache Coherence Protoc
ols: Evaluation Using a MultiprocessorSimulation M
odel”,J.Archibald J.Bare,ACM Transaction on Com
puter Systems, Vol.4 No.4 Nov. 1986などに種々の方
法が詳細に紹介されているが、本発明の本質に関わらな
いのでここでは詳細に説明を行わない。
The information stored in the status tag unit 12 is shared by other CPUs (shared / non-shared) and the CPU.
Consistency of shared memory, such as the rewriting status by whether the latest value is retained by the rewriting (dirty / clean) and the valid status (valid / invalid) of the cache line value. The cache control unit 17 controls the cache memory 2 so that the cache memory 2 operates as a cache memory of a shared memory that maintains coherency. The operation of such a cache memory is disclosed in Japanese Unexamined Patent Publication
-253356 and "Cache Coherence Protoc
ols: Evaluation Using a Multiprocessor Simulation M
odel ”, J.Archibald J.Bare, ACM Transaction on Com
Various methods are described in detail in, for example, puter Systems, Vol.4 No.4 Nov. 1986, but since they are not related to the essence of the present invention, they will not be described in detail here.

【0036】本実施例のキャッシュメモリは、コピーバ
ック型のキャッシュ方式を持ち、無効化型の一貫性保持
方式をとるものとする。
The cache memory of this embodiment has a copy-back type cache system and an invalidation-type consistency holding system.

【0037】主メモリ3はシステムの共有メモリを各基
板に分散したもので、それぞれ異なるアドレスが割り付
けてある。すなわち、アドレスによってどの基板上の主
メモリをアクセスするかが決定される。本実施例では主
メモリの容量を64メガ・バイトとして以下の説明を行
うが、主メモリの容量の大きさは本発明の有効性に関係
ない。また、主メモリの容量は基板ごとに異なっていて
も本発明の有効性を損なわない。
The main memory 3 is a shared memory of the system dispersed on each substrate, and different addresses are assigned to each. That is, the address determines which substrate the main memory is accessed on. In the present embodiment, the following description will be made assuming that the capacity of the main memory is 64 megabytes, but the size of the capacity of the main memory is not related to the effectiveness of the present invention. Further, the effectiveness of the present invention is not impaired even if the capacity of the main memory differs for each substrate.

【0038】内部バス5はキャッシュミスや一貫性保持
動作の際に用いられ、以下のコマンドを持つ。データ転
送を行う際は、キャッシュライン単位に行う。
The internal bus 5 is used at the time of a cache miss or a coherency holding operation, and has the following commands. When transferring data, it is done in cache line units.

【0039】[CR:](Coherent Read ) 共有読み出し。CPUのread miss によって発生し、一
貫性を保持しながらデータを読み出す。
[CR:] (Coherent Read) Shared read. It is caused by a read miss of the CPU and reads data while maintaining consistency.

【0040】[CRI:](Coherent Read and Invali
date) 排他読み出し。CPUのwrite missによって発生し、デ
ータを読み出すとともに他の基板のキャッシュメモリ上
の同じアドレスのキャッシュラインを無効化する。
[CRI:] (Coherent Read and Invali
date) Exclusive read. It is generated by a write miss of the CPU, reads data, and invalidates the cache line of the same address on the cache memory of another board.

【0041】[CI:](Coherent Invalidate ) 無効化要求。CPUのshared write hitによって発生
し、他の基板のキャッシュメモリ上の同じアドレスのキ
ャッシュラインを無効化する。または、他のプロセッサ
からの無効化要求を共有管理部を介してCPUキャッシ
ュに伝達する場合に発生し、CPUキャッシュの該当エ
ントリを無効化する。データ転送を伴わない。
[CI:] (Coherent Invalidate) Invalidation request. It is generated by the shared write hit of the CPU and invalidates the cache line of the same address on the cache memory of another board. Alternatively, it occurs when an invalidation request from another processor is transmitted to the CPU cache via the shared management unit, and the corresponding entry in the CPU cache is invalidated. No data transfer is involved.

【0042】[WR:](Normal Write) 書き戻し。キャッシュのリプレースの際にリプレース対
象のキャッシュラインが後述するダーティの状態であれ
ば発生し、データを書き込む。
[WR:] (Normal Write) Write back. When the cache is replaced, it occurs when the cache line to be replaced is in a dirty state described later, and data is written.

【0043】内部バス5はこれらのコマンドを伝送する
コマンド線19、通常のアドレス線20、データ線22
の他、読み出したデータが他の基板のキャッシュメモリ
と共有されているか否かを示す共有指示線18と後述す
る介入の有無を示す介入指示線21を持つ。この内部バ
スの共有指示線はその基板の共有管理部が共有している
と判断した場合に駆動する。
The internal bus 5 has a command line 19 for transmitting these commands, a normal address line 20, and a data line 22.
In addition, it has a sharing instruction line 18 indicating whether or not the read data is shared with the cache memory of another substrate, and an intervention instruction line 21 indicating the presence or absence of intervention described later. The sharing instruction line of the internal bus is driven when it is determined that the sharing management unit of the board shares the sharing instruction line.

【0044】共有バス6は一貫性保持動作の際に用いら
れ、以下のコマンドを持つ。データ転送を行う際は、キ
ャッシュライン単位に行う。
The shared bus 6 is used in the consistency maintaining operation and has the following commands. When transferring data, it is done in cache line units.

【0045】[RS:](Read Shared ) 共有読み出し。一貫性を保持しながらデータを読み出
す。
[RS:] (Read Shared) Shared reading. Read data with consistency.

【0046】[RM:](Read Modified ) 排他読み出し。一貫性を保持しながらデータを読み出
し、他の基板のキャッシュメモリの該当エントリを無効
化する。
[RM:] (Read Modified) Exclusive reading. Data is read while maintaining consistency, and the corresponding entry in the cache memory of another board is invalidated.

【0047】[INV:](INValidate) 無効化要求。他の基板上のキャッシュメモリの該当エン
トリを無効化する。
[INV:] (INValidate) Invalidation request. Invalidates the corresponding entry in the cache memory on another board.

【0048】[WB:](Write Back) 書き戻し。プロセッサ基板間に跨る書き戻し。他の基板
に読み出され、書き換えられたデータを元の基板の主メ
モリに書き戻す際に用いる。
[WB:] (Write Back) Write back. Write back across the processor boards. It is used when writing the rewritten data read to another board back to the main memory of the original board.

【0049】共有バス6は、内部バス5と同様のコマン
ド線、アドレス線、データ線他に、読み出したデータが
他の基板のキャッシュメモリと共有しているか否かを示
す共有指示線と後述する介入の有無を示す介入指示線を
持つ。この共有バスの共有指示線はそれぞれの基板の共
有管理部が指定されたキャッシュラインをその基板のキ
ャッシュメモリが持っていると判断した場合に駆動し、
いずれかの基板が駆動すれば共有していると判断され
る。この様な結線論理はopen collector型出力の論理回
路をwired or接続する事で容易に実現できる。
The shared bus 6 has a command line, an address line, a data line, and the like similar to the internal bus 5, and a shared instruction line indicating whether the read data is shared with the cache memory of another substrate, which will be described later. It has an intervention line that indicates the presence or absence of intervention. The shared instruction line of the shared bus is driven when the shared management unit of each board determines that the cache memory of the board has the specified cache line,
If any of the substrates is driven, it is determined that they are shared. Such a connection logic can be easily realized by connecting a wired or connected open collector type output logic circuit.

【0050】図5は本実施例の特徴部分である共有管理
部4の内部構成図である。共有管理部は、主メモリ3の
1ラインに対して1bitの記憶容量を持ち、主メモリ
の各ラインが他の基板上のプロセッサのキャッシュメモ
リに存在しているか否かを記憶する主記憶タグメモリ2
7と、キャッシュメモリ2のタグ部分(アドレスタグ部
11、状態タグ部12)と同じ記憶容量を持ち、CPU
のキャッシュメモリの状態を推定した結果を記憶し、共
有バス上のアクセスが要求したアドレスが同一基板上の
プロセッサのキャッシュメモリ上にどのような状態にあ
るかを記憶するキャッシュアドレスタグメモリ23、キ
ャッシュ状態タグメモリ24とを有する。そして、内部
バス5上のアクセスを制御する内部アクセス制御部29
と、共有バス6上のアクセスを制御する外部アクセス制
御部28と、主記憶タグメモリ27の読み出し・更新を
制御する主記憶タグメモリ制御部26と、キャッシュ状
態タグメモリ24の読み出し・更新を制御するキャッシ
ュ状態タグメモリ制御部25とが設けられている。
FIG. 5 is an internal block diagram of the sharing management unit 4, which is a characteristic part of this embodiment. The shared management unit has a storage capacity of 1 bit for one line of the main memory 3 and stores whether or not each line of the main memory exists in the cache memory of the processor on another board. Two
7 and the same storage capacity as the tag portion (address tag portion 11, state tag portion 12) of the cache memory 2,
A cache address tag memory 23, which stores the result of estimating the state of the cache memory, and stores the state of the address requested by the access on the shared bus in the cache memory of the processor on the same board. And a state tag memory 24. Then, an internal access control unit 29 that controls access on the internal bus 5
An external access control unit 28 for controlling access on the shared bus 6, a main storage tag memory control unit 26 for controlling reading / updating of the main storage tag memory 27, and a reading / updating of cache state tag memory 24. A cache status tag memory control unit 25 is provided.

【0051】本実施例の主記憶タグメモリ27は1メガ
bitの容量を持ち、各ビットは対応する同一基板上の
主メモリのキャッシュラインが他のプロセッサのキャッ
シュメモリに存在している場合(状態G(Grobal))に
値1をとり、同じ基板上のキャッシュメモリにのみコピ
ーがあるかどの基板のキャッシュメモリにもコピーが存
在しない場合(状態P(Private ))に値0をとる。
The main memory tag memory 27 of this embodiment has a capacity of 1 megabit, and each bit corresponds to a case where the corresponding cache line of the main memory on the same board exists in the cache memory of another processor (state. G (Grobal)) has a value of 1, and if there is no copy in the cache memory of a board that has a copy only in the cache memory on the same board (state P (Private)), it takes a value of 0.

【0052】主記憶タグメモリ27の状態は、主記憶タ
グメモリ制御部26の制御に従い、以下のように遷移す
る。
The state of the main memory tag memory 27 transits as follows under the control of the main memory tag memory control unit 26.

【0053】(1)初期状態はP。(1) The initial state is P.

【0054】(2)対応するキャッシュラインのエント
リに対して他のCPUから共有バスを介してRSまたは
RMのアクセス要求があったとき状態Gに遷移する。
(2) When there is an access request of RS or RM from another CPU via the shared bus to the entry of the corresponding cache line, the state G is entered.

【0055】(3)対応するキャッシュラインのエント
リに対して共有バスのINVまたはRMを自分のCPU
から発行したとき状態Pに遷移する。
(3) The INV or RM of the shared bus for the corresponding cache line entry is set in its own CPU
When issued from, transitions to state P.

【0056】本実施例のキャッシュアドレスタグメモリ
23、キャッシュ状態タグメモリ24は、キャッシュメ
モリのタグ部と同じ、16キロラインのキャッシュライ
ンの情報を管理する。管理する情報は、キャッシュメモ
リ上のキャッシュラインに対して、各々、主メモリ上で
のアドレスと、システム中の状態である。キャッシュラ
インの状態は以下の5状態のいずれかである。
The cache address tag memory 23 and the cache status tag memory 24 of this embodiment manage the information of the cache line of 16 kilo lines, which is the same as the tag portion of the cache memory. The information to be managed is the address in the main memory and the state in the system for each cache line in the cache memory. The cache line is in one of the following five states.

【0057】なお、以下の説明でダーティとはキャッシ
ュラインが更新されており、かつ更新されたデータを主
メモリへまだ書き戻していない状態、つまり主メモリへ
の書き戻し義務を負っている状態で、クリーンとはその
ような義務を負わない状態である。キャッシュラインが
共有されている場合、書き戻し義務を負うのはそのうち
の1つのキャッシュのみで良いので、ダーティなライン
の共有を要求したキャッシュは、共有クリーン状態に設
定する。
In the following description, "dirty" means that the cache line has been updated and the updated data has not been written back to the main memory, that is, the duty to write back to the main memory is obligatory. Clean is a state that does not have such an obligation. When a cache line is shared, only one of the caches is obliged to write back, so the cache that requested dirty line sharing is set to the shared clean state.

【0058】[M]排他ダーティ。他のキャッシュにコ
ピーは存在しない、このラインのデータは変更されてお
り、メモリへ書き戻す必要がある。
[M] Exclusive Dirty. No copy exists in other caches, data on this line has changed and needs to be written back to memory.

【0059】[O]共有ダーティ。他のキャッシュにコ
ピーが存在する可能性がある。このラインのデータは変
更されており、メモリへ書き戻す必要がある。
[O] Shared dirty. There may be copies in other caches. The data on this line has been modified and needs to be written back to memory.

【0060】[E]排他クリーン。他のキャッシュにコ
ピーは存在しない。このラインのデータは変更されてい
ないので、メモリへ書き戻す必要はない。
[E] Exclusive clean. There are no copies in other caches. The data on this line has not been modified and need not be written back to memory.

【0061】[S]共有クリーン。他のキャッシュにコ
ピーが存在する可能性がある。このラインのデータは変
更されていないので、メモリへ書き戻す必要はない。
[S] Shared clean. There may be copies in other caches. The data on this line has not been modified and need not be written back to memory.

【0062】(以上の4つの状態では、キャッシュライ
ンは有効である。) [I]無効。このキャッシュラインは有効ではない。
(In the above four states, the cache line is valid.) [I] Invalid. This cache line is not valid.

【0063】キャッシュメモリ2の状態タグ部12の状
態はキャッシュ制御部17の制御に従い、CPUからの
命令、及び、共有管理部が内部バスに発行するコマンド
に基づいて、図6の表にまとめた通り以下のように状態
を遷移する。
The state of the state tag unit 12 of the cache memory 2 is summarized in the table of FIG. 6 under the control of the cache control unit 17 based on the instruction from the CPU and the command issued by the shared management unit to the internal bus. The state transitions as follows.

【0064】(1)初期状態はI。(1) The initial state is I.

【0065】(2)状態Iから自分のCPUが読み出し
を行い内部バスの共有指示線が他のCPUと共有してい
る事を示したとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったときに、状態S
に遷移する。
(2) When the CPU reads from state I and indicates that the sharing instruction line of the internal bus is shared with another CPU, or from state E when another CPU passes the shared bus. When the shared read is performed by
Transition to.

【0066】(3)状態Iから自分のCPUが読み出し
を行い内部バスの共有指示線が他のCPUと共有しない
事を示したとき状態Eに遷移する。
(3) Transition from the state I to the state E when the own CPU reads and indicates that the sharing instruction line of the internal bus is not shared with other CPUs.

【0067】(4)自分のCPUが書き込みを行ったと
き、状態Mに遷移する。
(4) When its own CPU writes, it transits to state M.

【0068】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき状態Oに遷移する。
(5) Transition from state M to state O when another CPU performs shared reading via the shared bus.

【0069】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき状態Iに遷
移する。
(6) When another CPU issues an exclusive read request or an invalidation request via the shared bus, the state transitions to state I.

【0070】また、状態EまたはSからキャッシュメモ
リのリプレースが行われて、状態Iに遷移することがあ
る。
Further, the cache memory may be replaced from the state E or S, and the state may transit to the state I.

【0071】一方、共有管理部4のキャッシュ状態タグ
メモリ24の状態は、キャッシュ状態タグメモリ制御部
25の制御に従い、キャッシュ制御部17が上記のよう
に状態遷移を行うと共に内部バスに発行するコマンド、
及び、他の基板の共有管理部が共有バスに発行するコマ
ンドに基づいて、以下のように状態を遷移する。
On the other hand, the state of the cache state tag memory 24 of the shared management unit 4 is controlled by the cache state tag memory control unit 25, and the cache control unit 17 performs the state transition as described above and issues a command to the internal bus. ,
Also, the state transitions as follows based on the command issued to the shared bus by the shared management unit of another board.

【0072】まず、自分の基板上の主メモリに対するア
クセスの場合は図7の表にまとめた通り以下のように状
態を遷移する。
First, in the case of access to the main memory on the own board, the states transit as follows as summarized in the table of FIG.

【0073】(1)初期状態はI。(1) The initial state is I.

【0074】(2)状態Iで主記憶タグがGの場合に、
自分のCPUが内部バスを介して共有読み出しを行い共
有バスの共有指示線が駆動されているとき、もしくは、
状態Eから他のCPUが共有バスを介して共有読み出し
を行いキャッシュからの介入が無かったとき、状態Sに
遷移する。
(2) When the main memory tag is G in the state I,
When its own CPU performs shared read via the internal bus and the shared instruction line of the shared bus is driven, or
When another CPU performs shared reading from the state E via the shared bus and there is no intervention from the cache, the state transits to the state S.

【0075】ここで、介入とは、主メモリから値を読み
出すとき、最新の値でまだ主メモリに書き戻されていな
いものがキャッシュメモリに存在する場合に、キャッシ
ュメモリが、バス上の読み出しのコマンドに対して、主
メモリからの読み出しを中止するよう介入指示線を駆動
して、自分の持っている最新の値を送る動作のことを言
う。この介入は、読み出しが行われる主メモリと最新の
値を持っているキャッシュメモリが同じ基板上にあると
きには、内部バスを介して行われ、両者が異なる基板上
にあるときには、共有バスを介して行われる。
Here, the intervention means that when a value is read from the main memory and the latest value that has not been written back to the main memory exists in the cache memory, the cache memory reads the value on the bus. In response to a command, it refers to the operation of driving the intervention instruction line to stop reading from the main memory and sending the latest value that it has. This intervention is done via the internal bus when the main memory to be read and the cache memory with the latest values are on the same board, and when they are on different boards via the shared bus. Done.

【0076】(3)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから同様に状態Eに遷
移することがある。
(3) From state I, when its own CPU performs shared read via the internal bus and the shared instruction line of the shared bus is not driven, the state transits to state E. However, even if the status tag of the shared management unit is S, the status tag of the cache memory may have transited to I (due to cache replacement), and therefore the status S may transit to status E as well. .

【0077】(4)自分のCPUが排他読み出しあるい
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
(4) When its own CPU makes an exclusive read or invalidation request to invalidate the cache on another board, the state transits to the state M.

【0078】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき、状態Oに遷移する。
但し、共有管理部の状態タグがEでも、キャッシュメモ
リの状態タグがMに遷移してしまっている(書き込みヒ
ットにより)ことがあるため、状態Eから他のCPUが
共有バスを介して共有読み出しを行いキャッシュからの
介入が有ったとき(ここで実はMに遷移していたことが
わかる)も、状態Oに遷移する。
(5) When another CPU performs shared read from the state M via the shared bus, the state transits to the state O.
However, even if the status tag of the shared management unit is E, the status tag of the cache memory may have transitioned to M (due to a write hit). Therefore, other CPUs from the status E can perform shared reading via the shared bus. When there is an intervention from the cache (it can be seen that the state actually transits to M here), the state transits to the state O.

【0079】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
(6) When another CPU issues an exclusive read or invalidation request via the shared bus, the state transits to the state I. It also transits to the state I when the replacement is performed.

【0080】一方、他の基板上の主メモリに対するアク
セスの場合は図8の表にまとめた通り以下のように状態
を遷移する。
On the other hand, in the case of access to the main memory on another board, the states transit as follows as summarized in the table of FIG.

【0081】(1)初期状態はI。(1) The initial state is I.

【0082】(2)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されているとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったとき、状態Sに
遷移する。但し、共有管理部の状態タグがEでも、キャ
ッシュメモリの状態タグがIに遷移してしまっている
(キャッシュのリプレースにより)ことがあるため、状
態Eから状態Iと同様に状態Sに遷移することがある。
(2) From state I, when its own CPU performs shared read via the internal bus and the shared instruction line of the shared bus is driven, or from state E, another CPU shares it via the shared bus. When reading is performed, the state transits to the state S. However, even if the state tag of the shared management unit is E, the state tag of the cache memory may have transitioned to I (due to cache replacement), so transition from state E to state S as in state I. Sometimes.

【0083】(3)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから状態Iと同様に状
態Eに遷移することがある。
(3) From state I, when its own CPU performs shared read via the internal bus and the shared instruction line of the shared bus is not driven, the state transits to state E. However, even if the state tag of the shared management unit is S, the state tag of the cache memory may have transitioned to I (due to cache replacement), so transition from state S to state E as in state I. Sometimes.

【0084】(4)自分のCPUが排他読み出しあるい
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
(4) When the own CPU makes an exclusive read or invalidation request to invalidate the cache on another board, the state M is transited to.

【0085】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき、状態Oに遷移する。
(5) Transition from state M to state O when another CPU performs shared read via the shared bus.

【0086】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
(6) When another CPU issues an exclusive read or invalidation request via the shared bus, the state transits to the state I. It also transits to the state I when the replacement is performed.

【0087】このように図6〜図8にまとめた通り、キ
ャッシュメモリと共有管理部が状態遷移とバス上に発行
するコマンドを制御することにより、一部の例外を除い
てキャッシュメモリの状態タグ部12と共有管理部のキ
ャッシュ状態タグメモリ24の内部が一致するようにな
る。一致しない場合も、上記の但し書きで説明したよう
に制御すればエラーは起こらない。さらに共有指示線の
駆動に工夫をすることによりエラーを防いでいるが、こ
れについては後述する。
Thus, as summarized in FIGS. 6 to 8, the cache memory and the shared management unit control the state transition and the commands issued on the bus, so that the state tag of the cache memory is excluded except for some exceptions. The insides of the cache state tag memory 24 of the unit 12 and the shared management unit are matched. Even if they do not match, no error will occur if the control is performed as described in the proviso above. Further, an error is prevented by devising driving of the sharing instruction line, which will be described later.

【0088】以下、この第1実施例の共有管理部の動作
について説明する。
The operation of the sharing management unit of the first embodiment will be described below.

【0089】図9,10はCPUの読み出し命令に対す
る本実施例のキャッシュ制御部17及び共有管理部4の
動作を示したフローチャートである。CPUが読み出し
命令を実行し、キャッシュメモリにミスした場合(S1
No)、内部バス上に共有読み出しCRを発行する(S
2)。要求されたアドレスが同一基板上の主メモリのア
ドレスであれば(S3Yes)、同一基板上の主メモリ
が応答する(S4)。同時に共有管理部4の内部アクセ
ス制御部29が内部バス上の要求を解釈し、主記憶タグ
メモリ27を検索し(S4)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
5)。共有が行われていなければ、共有管理部は動作を
終了し、主メモリのみにアクセスで内部バスの共有読み
出しCRは終了する(S6,S7)。これは同一基板上
の主メモリ上に割り当てられた局所変数のアクセスに相
当し、プログラム実行時のアクセスのほとんどはこの形
態のアクセスが行われる。このとき、共有バスを使用せ
ずにアクセスが行われるので、共有バスのトラフィック
を軽減する事ができる。また、この間に共有バスは他の
基板のアクセス要求を実行できるので他の基板のプロセ
ッサの実行に干渉する可能性が軽減される。内部バスの
共有指示線は非共有を示す。
9 and 10 are flow charts showing the operations of the cache control unit 17 and the sharing management unit 4 of this embodiment in response to a read instruction from the CPU. When the CPU executes the read instruction and misses the cache memory (S1
No), issue a shared read CR on the internal bus (S
2). If the requested address is the address of the main memory on the same board (S3 Yes), the main memory on the same board responds (S4). At the same time, the internal access control unit 29 of the sharing management unit 4 interprets the request on the internal bus, searches the main memory tag memory 27 (S4), and determines whether the requested cache line of the main memory is shared. Do (S
5). If the sharing is not performed, the sharing management unit ends the operation, and the shared read CR of the internal bus ends by accessing only the main memory (S6, S7). This corresponds to the access of the local variable allocated on the main memory on the same board, and most of the accesses at the time of program execution are performed in this form. At this time, since access is performed without using the shared bus, it is possible to reduce traffic on the shared bus. Further, during this time, the shared bus can execute the access request of another board, so that the possibility of interfering with the execution of the processor of another board is reduced. The shared instruction line of the internal bus indicates non-shared.

【0090】主記憶タグメモリの検索の結果、要求され
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S5Yes)、共有
管理部4の外部アクセス制御部28を通して共有バス上
に共有読み出しRSを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う。他の基板上の
キャッシュメモリに最新の値(ダーティなライン)が存
在した場合は、その値を持つ基板の共有管理部が介入を
行い、最新の値を供給する。その基板のキャッシュメモ
リにも最新の値が存在しなければ、そのキャッシュライ
ンの値は主メモリ上に存在するので、主メモリから供給
された値をキャッシュメモリに供給する(以上S8)。
このとき、主記憶タグメモリの状態は、共有バス上の共
有指示線の値に応じて設定し直される(S9)。これに
より、前回のアクセスから今回のアクセスの間に共有が
解除されていれば検出する事ができる。内部バスの共有
指示線は共有バスの共有指示線の状態を伝達する(S1
0)。
When it is determined that the requested cache line is shared with the CPU cache on another board as a result of the search of the main memory tag memory (S5 Yes), the external access control unit 28 of the sharing management unit 4 is used. A shared read RS is issued on the shared bus via the through to perform coherency operation with the cache memory on another board. When the latest value (dirty line) exists in the cache memory on another board, the shared management unit of the board having that value intervenes and supplies the latest value. If the latest value does not exist in the cache memory of the board, the value of the cache line exists in the main memory, so the value supplied from the main memory is supplied to the cache memory (above S8).
At this time, the state of the main memory tag memory is reset according to the value of the sharing instruction line on the shared bus (S9). As a result, it is possible to detect if sharing has been canceled between the last access and the current access. The shared instruction line of the internal bus transmits the state of the shared instruction line of the shared bus (S1).
0).

【0091】内部バス上に出された共有読み出しのアド
レスが他の基板上の主メモリのアドレスであれば(S3
No)、共有管理部4は共有バス上に共有読み出しRS
を発行し、一貫性保持のための動作を行う(S11)。
要求されたアドレスの主メモリを持つ基板はこの共有読
み出しRSに応答し、共有管理部の主記憶タグメモリの
状態をGに設定し、共有が開始された事を記憶する。内
部バスの共有指示線は共有バスの共有指示線が共有/非
共有のどちらであっても共有を示す(S12)。
If the shared read address issued on the internal bus is the address of the main memory on another board (S3
No), the sharing management unit 4 makes a shared read RS on the shared bus.
Is issued and an operation for maintaining consistency is performed (S11).
The substrate having the main memory of the requested address responds to the shared read RS, sets the state of the main memory tag memory of the shared management unit to G, and stores that sharing is started. The sharing instruction line of the internal bus indicates sharing regardless of whether the sharing instruction line of the shared bus is shared or not (S12).

【0092】以上のように読み出されたキャッシュライ
ンはキャッシュメモリに記憶され、キャッシュラインの
状態は、内部バスの共有指示線が共有を示している場合
は状態Sに(S15)、非共有を示している場合は状態
Eに(S14)設定される。共有管理部のキャッシュ状
態タグは共有バスの共有指示線の示す値によって状態を
SまたはEに設定する。
The cache line read out as described above is stored in the cache memory, and the state of the cache line is set to state S (S15) when the sharing instruction line of the internal bus indicates sharing (non-shared). If so, the state E is set (S14). The cache status tag of the shared management unit sets the state to S or E according to the value indicated by the shared instruction line of the shared bus.

【0093】ここで注意したいのは、S10とS12の
違いである。これが前述したエラーを防ぐための工夫
で、他の基板上の主メモリを読み出して共有バスの共有
指示線が非共有を示した場合に、共有管理部のキャッシ
ュ状態タグは状態Eに設定されるが、共有管理部は、共
有バスの共有指示線が非共有を示しているにも関わらず
内部バスの共有指示線を共有にするのでCPUのキャッ
シュは状態Sに設定される。もし、CPUキャッシュの
状態をEと設定してしまうとこのエントリに書き込みが
行われてもCPUは無効化要求を出さずに状態Mに遷移
してしまい、共有管理部のキャッシュ状態タグが書換を
認識できず、それ以降の共有バス上の読み出し要求に正
しい応答ができなくなってしまう。本実施例では、わざ
とCPUキャッシュの状態と共有管理部のキャッシュ状
態タグの状態を違える事でこの問題を回避する。CPU
キャッシュの状態がSであれば、CPUキャッシュは書
き込みの際に無効化要求を内部バスに発行するので共有
管理部は書き込みを認識する事ができる。この場合、キ
ャッシュ状態タグが状態Eである事から内部バス上の無
効化要求を共有バス上に伝達する必要がない事が判り、
共有バス上のトラフィックを増加させる事にはならな
い。
What should be noted here is the difference between S10 and S12. This is a device for preventing the error described above, and when the main memory on another board is read and the sharing instruction line of the shared bus indicates non-shared, the cache status tag of the shared management unit is set to the status E. However, since the shared management unit shares the shared instruction line of the internal bus even though the shared instruction line of the shared bus indicates non-shared, the cache of the CPU is set to the state S. If the state of the CPU cache is set to E, even if writing is made to this entry, the CPU does not issue the invalidation request but transits to the state M, and the cache state tag of the shared management unit rewrites. It cannot be recognized, and the subsequent read request on the shared bus cannot be correctly answered. In the present embodiment, this problem is avoided by intentionally making the state of the CPU cache different from the state of the cache state tag of the shared management unit. CPU
If the cache state is S, the CPU cache issues an invalidation request to the internal bus at the time of writing, so that the sharing management unit can recognize the writing. In this case, since the cache status tag is the status E, it is understood that it is not necessary to transmit the invalidation request on the internal bus to the shared bus.
It does not increase traffic on the shared bus.

【0094】図11は、CPUの書き込み命令に対する
本実施例のキャッシュ制御部17及び共有管理部4の動
作を示したフローチャートである。CPUが書き込み命
令を実行し、キャッシュメモリにミスした場合(S21
ミス)、内部バス上に排他読み出しCRIを発行する
(S32)。要求されたアドレスが同一基板上の主メモ
リのアドレスであれば(S33Yes)、同一基板上の
主メモリが応答する。同時に共有管理部の内部アクセス
制御部29が内部バス上の要求を解釈し、主記憶タグメ
モリ27を検索し(S34)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
36)。共有が行われていなければ、共有管理部は動作
を終了し、主メモリのみのアクセスで内部バスの排他読
み出しCRIは終了する(S39)。これは同一基板上
の主メモリ上に割り当てられた局所変数への書き込みに
相当し、プログラム実行時のアクセスのほとんどはこの
形態のアクセスが行われる。このとき、共有バスを使用
せずにアクセスが行われるので、共有バスのトラフィッ
クを軽減する事ができる。また、この間に共有バスは他
の基板のアクセス要求を実行できるので他の基板のプロ
セッサの実行に干渉する可能性が軽減される。
FIG. 11 is a flow chart showing the operation of the cache control unit 17 and the sharing management unit 4 of this embodiment in response to the CPU write command. When the CPU executes the write command and misses the cache memory (S21
Miss), issues an exclusive read CRI on the internal bus (S32). If the requested address is the address of the main memory on the same board (S33 Yes), the main memory on the same board responds. At the same time, the internal access control unit 29 of the sharing management unit interprets the request on the internal bus, searches the main memory tag memory 27 (S34), and determines whether or not the requested cache line of the main memory is shared. (S
36). If sharing is not performed, the sharing management unit ends the operation, and the exclusive read CRI of the internal bus ends by accessing only the main memory (S39). This corresponds to writing to a local variable allocated on the main memory on the same substrate, and most of the accesses at the time of program execution are performed in this form. At this time, since access is performed without using the shared bus, it is possible to reduce traffic on the shared bus. Further, during this time, the shared bus can execute the access request of another board, so that the possibility of interfering with the execution of the processor of another board is reduced.

【0095】主記憶タグメモリの検索の結果、要求され
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S36Yes)、共
有管理部の外部アクセス制御部28を通して共有バス上
に排他読み出しRMを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う(S37)。他
の基板上のキャッシュメモリに最新の値が存在した場合
は、その値を持つ基板の共有管理部が介入を行い、最新
の値を供給する。どの基板のキャッシュメモリにも最新
の値が存在しなければ、そのキャッシュラインの値は主
メモリ上に存在するので、主メモリから共有された値を
キャッシュメモリに共有する。このとき、他の基板上の
キャッシュメモリは無効化が行われ排他読み出しRMを
発行したキャッシュメモリのみが排他的にコピーを持つ
事になる。よって、主記憶タグメモリは状態Pに設定さ
れる(S38)。
When it is determined that the requested cache line is shared with the CPU cache on another board as a result of the search of the main memory tag memory (Yes at S36), the external access control unit 28 of the sharing management unit is used. An exclusive read RM is issued on the shared bus, and an operation for maintaining coherency with a cache memory on another board is performed (S37). If the latest value exists in the cache memory on another board, the shared management unit of the board having that value intervenes and supplies the latest value. If the latest value does not exist in the cache memory of any board, the value of the cache line exists in the main memory, so the value shared from the main memory is shared with the cache memory. At this time, the cache memories on the other boards are invalidated, and only the cache memories that issued the exclusive read RM have exclusive copies. Therefore, the main memory tag memory is set to the state P (S38).

【0096】内部バス上に出された排他読み出しCRI
のアドレスが他の基板上の主メモリのアドレスであれば
(S33No)、共有管理機構は共有バス上に排他読み
出しRMを発行し、一貫性保持のための動作を行う(S
35)。要求されたアドレスの主メモリを持つ基板はこ
の排他読み出しRMに応答し、共有管理部の主記憶タグ
メモリの状態をGに設定し、共有が開始された事を記憶
する。
Exclusive read CRI issued on internal bus
Is the address of the main memory on another board (S33, No), the shared management mechanism issues an exclusive read RM on the shared bus and performs an operation for maintaining consistency (S).
35). The substrate having the main memory of the requested address responds to the exclusive read RM, sets the state of the main memory tag memory of the sharing management unit to G, and stores that sharing is started.

【0097】以上のように読み出されたキャッシュライ
ンはキャッシュメモリに記憶され、CPUの書き込み命
令によって更新される。キャッシュラインの状態はMに
設定され(S40)、これに応じて共有管理部のキャッ
シュ状態タグも状態Mに設定される。
The cache line read as described above is stored in the cache memory and updated by the write command of the CPU. The state of the cache line is set to M (S40), and accordingly, the cache state tag of the shared management unit is also set to state M.

【0098】CPUが書き込み命令を実行し、キャッシ
ュメモリにヒットしてもキャッシュラインの状態が共有
(状態タグ部12の状態がSまたはO)であれば(S2
1共有ヒット)、他のキャッシュメモリ上のコピーを無
効化する必要があり、内部バス上に無効化要求CIを発
行する(S22)。共有管理部の内部アクセス制御部が
内部バス上の要求を解釈し、要求されたアドレスが同一
基板上の主メモリのアドレスであれば(S23Ye
s)、共有管理部の共有バス制御部を通して共有バス上
に無効化要求INVを発行し、他の基板上のキャッシュ
メモリのエントリを無効化する(S26)。そして、主
記憶タグメモリを状態Pに設定する(S27)。
Even if the CPU executes the write command and hits the cache memory, if the state of the cache line is shared (the state of the state tag unit 12 is S or O) (S2
1 shared hit), it is necessary to invalidate another copy on the cache memory, and an invalidation request CI is issued on the internal bus (S22). The internal access control unit of the shared management unit interprets the request on the internal bus, and if the requested address is the address of the main memory on the same board (S23Ye).
s) The invalidation request INV is issued on the shared bus through the shared bus control unit of the shared management unit to invalidate the cache memory entry on another board (S26). Then, the main memory tag memory is set to the state P (S27).

【0099】内部バス上に出された無効化要求CIのア
ドレスが他の基板上の主メモリのアドレスであれば(S
23No)、共有管理部はキャッシュ状態タグメモリ2
4を調べて(S28)状態が共有(SまたはO)であれ
ば(S29Yes)共有バス上に無効化要求INVを発
行し、他の基板上のキャッシュメモリのエントリを無効
化する(S30)。要求元のエントリは無効化されずに
残るため、主メモリをもつ基板上の共有管理部の主記憶
タグメモリの状態はGのままに残し、共有が継続してい
る事を記憶する。尚、S28で状態がEであれば(S2
9No)、内部バス上の無効化要求CIはCPUキャッ
シュで書き込みヒットが起こったことを示すものである
(前述した工夫)から、共有バスにコマンドを伝達する
ことはしない。
If the address of the invalidation request CI issued on the internal bus is the address of the main memory on another board (S
23 No), the shared management unit is the cache status tag memory 2
4 is checked (S28) and if the state is shared (S or O) (S29 Yes), an invalidation request INV is issued on the shared bus to invalidate the cache memory entry on another board (S30). Since the entry of the request source remains without being invalidated, the state of the main memory tag memory of the shared management unit on the substrate having the main memory is left as G to store that the sharing is continued. If the state is S in S28 (S2
No. 9), the invalidation request CI on the internal bus indicates that a write hit has occurred in the CPU cache (invention described above), and therefore no command is transmitted to the shared bus.

【0100】以上のように無効化の行われたキャッシュ
ラインはCPUの書き込み命令によって更新され、キャ
ッシュラインの状態はMに設定される(S31)。これ
に応じて共有管理部のキャッシュ状態タグも状態Mに設
定される。
The cache line invalidated as described above is updated by the write command of the CPU, and the state of the cache line is set to M (S31). In response to this, the cache status tag of the shared management unit is also set to the status M.

【0101】さて、全ての基板の共有管理部4の外部ア
クセス制御部28は共有バス上のトラフィックを監視し
ており、共有バス上のコマンドと対応するキャッシュ状
態タグの状態によって以下のような一貫性保持動作を行
う。
The external access control units 28 of the shared management units 4 of all the boards monitor the traffic on the shared bus, and depending on the state of the cache state tag corresponding to the command on the shared bus, the following consistency is obtained. Performs sex retention operation.

【0102】図12は共有バス6上の共有読み出しRS
に対する共有管理部4及びキャッシュ制御部17の動作
を示すフローチャートである。指定されたアドレスの主
メモリを持つ基板の場合は(S41Yes)、主メモリ
をアクセスするために内部バスに共有読み出しCRを発
行する(S42)。この際に、キャッシュメモリの対応
する状態タグ部12の状態がIまたはSであればCPU
のキャッシュメモリから最新の値を読み出す必要も状態
遷移を行う必要もないので、内部バスに共有読み出しC
Rを発行せず、単に主メモリの読み出しだけを行っても
良い。そして、主メモリの読み出しを行うが、キャッシ
ュメモリの状態がMまたはOであれば介入が行われる
(S43)。CPUキャッシュメモリは状態Eで書き込
みを行なうと内部バスにコマンドを発行することなく状
態Mに遷移するので、共有管理部はこの遷移を認識でき
ない。よって、キャッシュ状態タグの状態がEであって
も、CPUのキャッシュメモリの状態はMである可能性
が残り、内部バスに発行するコマンドは共有読み出しC
Rでなければならない。
FIG. 12 shows a shared read RS on the shared bus 6.
9 is a flowchart showing the operations of the sharing management unit 4 and the cache control unit 17 for the. In the case of the board having the main memory of the designated address (S41 Yes), the shared read CR is issued to the internal bus to access the main memory (S42). At this time, if the status of the corresponding status tag unit 12 of the cache memory is I or S, the CPU
Since it is not necessary to read the latest value from the cache memory of the
It is also possible to simply read the main memory without issuing R. Then, the main memory is read, but if the state of the cache memory is M or O, intervention is performed (S43). When writing in the state E, the CPU cache memory transits to the state M without issuing a command to the internal bus, and therefore the shared management unit cannot recognize this transition. Therefore, even if the state of the cache state tag is E, the state of the cache memory of the CPU may remain M, and the command issued to the internal bus is the shared read C
Must be R.

【0103】共有読み出しCRの結果、CPUキャッシ
ュメモリの状態タグ部12の状態は、キャッシュ制御部
17により MまたはOならばOに EまたはSならばSに IならばIに それぞれ遷移する(S44)。これに合わせて共有管理
部のキャッシュ状態タグメモリ24の状態は、 MまたはO、またはEでキャッシュからの介入が起これ
ば、Oに S、またはEでキャッシュからの介入が起こらなけれ
ば、Sに IならばIに それぞれ遷移する(S45)。また、共有管理部の主記
憶タグメモリはGに設定される(S46)。
As a result of the shared read CR, the state of the state tag unit 12 of the CPU cache memory is changed by the cache control unit 17 to O for M or O, E for S or S, and I for I (S44). ). In accordance with this, the state of the cache status tag memory 24 of the shared management unit is: M, O, or E if cache intervention occurs, S for O, or E if cache intervention does not occur for S, E If it is I, transition to I is made (S45). Further, the main memory tag memory of the sharing management unit is set to G (S46).

【0104】内部バスの共有指示線はCPUキャッシュ
メモリが状態Iであれば非共有を、それ以外では共有を
示し、この値を共有バスの共有指示線に伝達すると共
に、主メモリ又はキャッシュメモリから読み出した値を
共有バスに出力する(S47)。
The sharing instruction line of the internal bus indicates non-shared if the CPU cache memory is in the state I, and indicates sharing otherwise, and this value is transmitted to the sharing instruction line of the shared bus and is also transmitted from the main memory or the cache memory. The read value is output to the shared bus (S47).

【0105】指定されたアドレスの主メモリを持たない
基板の場合は(S41No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S4
8,S49)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、共有指示線の駆動も行なわ
ない。状態がI以外の場合は有効なコピーを持つので共
有指示線を駆動する(S52,S54)。状態がMまた
はOの場合はCPUのキャッシュメモリに最新の値が存
在するので内部バスに共有読み出しCRを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、別の基板上の主メモリに代
わって値を共有する(S50,S52)。状態がMまた
はO以外の場合は内部バスをアクセスしない。
When the board does not have the main memory of the specified address (No in S41), the use of the internal bus is determined according to the status of the corresponding cache status tag (S4).
8, S49). When the state is I, there is no valid copy in the cache memory on this board, so the operation for maintaining coherency is unnecessary and the shared instruction line is not driven. If the state is other than I, the shared instruction line is driven because it has a valid copy (S52, S54). If the state is M or O, the latest value exists in the cache memory of the CPU, so the shared read CR is issued to the internal bus to read the latest value from the cache memory and the intervention instruction line of the shared bus indicates the intervention. , The value is shared instead of the main memory on another board (S50, S52). When the status is other than M or O, the internal bus is not accessed.

【0106】CPUキャッシュメモリの状態タグは、M
またはOならばOに(その他はそのまま)共有管理部の
キャッシュ状態タグは、MまたはOならばOにそれぞれ
遷移する(S51)。
The status tag of the CPU cache memory is M
Alternatively, if it is O, the cache status tag of the shared management unit transits to O (others remain unchanged), and if M or O, transits to O (S51).

【0107】図13は共有バス上の排他読み出しRMに
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスの主メ
モリを持つ基板の場合は(S61Yes)、主メモリを
アクセスするために内部バスに排他読み出しCRIを発
行する(S62)。この排他読み出しCRIが行なわれ
る(S63,S65)に併い、CPUキャッシュメモリ
の状態と、共有管理部のキャッシュ状態タグの状態はI
に遷移する。また、共有管理部の主記憶タグメモリはG
に設定される(S64)。
FIG. 13 is a flow chart showing the operation of the sharing management unit 4 and the cache control unit 17 for the exclusive read RM on the shared bus. In the case of the board having the main memory at the designated address (Yes in S61), the exclusive read CRI is issued to the internal bus to access the main memory (S62). Along with the execution of this exclusive read CRI (S63, S65), the state of the CPU cache memory and the state of the cache state tag of the shared management unit are I.
Transition to. In addition, the main memory tag memory of the shared management unit is G
Is set (S64).

【0108】指定されたアドレスの主メモリを持たない
基板の場合は(S61No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S6
6,S67)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、内部バスへのコマンド発行
は行わない。状態がSまたはEの場合は、無効化要求C
Iを内部バスに発行する(S71)。状態がMまたはO
の場合は、CPUのキャッシュメモリに最新の値が存在
するので内部バスに排他読み出しCRIを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、キャッシュを無効化する
(S68)。読み出した値は主メモリに代わって要求元
に供給する(S70)。CPUキャッシュメモリの状態
と、共有管理部のキャッシュ状態タグの状態はいずれも
Iに遷移する(S69,S72)。
When the board does not have the main memory of the designated address (S61 No), the use of the internal bus is determined according to the state of the corresponding cache state tag (S6).
6, S67). When the state is I, since a valid copy does not exist in the cache memory on this board, the operation for maintaining the coherency is unnecessary and the command is not issued to the internal bus. If the status is S or E, the invalidation request C
I is issued to the internal bus (S71). State is M or O
In this case, since the latest value exists in the cache memory of the CPU, the exclusive read CRI is issued to the internal bus to read the latest value from the cache memory, and the intervention instruction line of the shared bus indicates the intervention to invalidate the cache. (S68). The read value is supplied to the request source instead of the main memory (S70). Both the state of the CPU cache memory and the state of the cache state tag of the shared management unit transit to I (S69, S72).

【0109】図14は共有バス上の無効化要求INVに
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスに対応
するキャッシュ状態タグの状態がIでなければ(S8
1,S82)。内部バスに無効化要求CIを発行し、C
PUのキャッシュメモリの有効なエントリを無効化する
(S83)。CPUキャッシュメモリの状態と、共有管
理部のキャッシュ状態タグの状態はIに遷移し、要求さ
れたアドレスを割り当てられた主メモリを持つプロセッ
サ基板の場合は主記憶タグの状態はGに設定される(S
84)。
FIG. 14 is a flowchart showing the operation of the sharing management unit 4 and the cache control unit 17 in response to the invalidation request INV on the shared bus. If the state of the cache state tag corresponding to the designated address is not I (S8
1, S82). Issue an invalidation request CI to the internal bus, and
The valid entry in the cache memory of the PU is invalidated (S83). The state of the CPU cache memory and the state of the cache state tag of the shared management unit transit to I, and the state of the main memory tag is set to G in the case of the processor board having the main memory to which the requested address is assigned. (S
84).

【0110】共有バス上の書き戻しWBに対しては、主
メモリを持つ基板のみが応答し、送られてきた値を取り
込み主メモリに書き戻す。他の基板は何も応答せずに動
作を終了する。
In response to the write-back WB on the shared bus, only the substrate having the main memory responds, and the sent value is fetched and written back to the main memory. The other board ends the operation without responding.

【0111】以下、例題を用いて本実施例の動作の例を
示す。図15は例題の構成図である。ここでアドレスの
先頭の0x は16進数であることを示す。
An example of the operation of this embodiment will be shown below by using an example. FIG. 15 is a block diagram of an example. Here, 0x at the head of the address indicates that it is a hexadecimal number.

【0112】プロセッサ基板PB0 はアドレス0x0000 0
000 から0x03ff ffff の主メモリM0 を持ち、プロセッ
サ基板PB1 はアドレス0x0400 0000 から0x07ff ffff
の主メモリM1 を持ち、プロセッサ基板PB2 はアドレ
ス0x0800 0000 から0x0bff ffff の主メモリM2 を持
ち、プロセッサ基板PB3 はアドレス0x0c00 0000 から
0x0fff ffff の主メモリM3 を持つ。
The processor board PB 0 has the address 0x0000 0
It has a main memory M 0 of 000 to 0x03ff ffff, and the processor board PB 1 has addresses 0x0400 0000 to 0x07ff ffff.
The main memory has a M 1, the processor board PB 2 has a main memory M 2 of 0X0bff ffff from the address 0x0800 0000, processor board PB 3 from the address 0x0C00 0000 of
It has a main memory M 3 of 0x0fff ffff.

【0113】アドレス0x0000 1000 のキャッシュライン
はプロセッサ基板PB0 の主メモリM0 にあるが、どの
プロセッサのキャッシュメモリにも存在しない。よっ
て、対応する主記憶タグメモリMTag0 の状態はPであ
る。
The cache line of address 0x0000 1000 exists in the main memory M 0 of the processor board PB 0 , but does not exist in the cache memory of any processor. Therefore, the state of the corresponding main memory tag memory MTag 0 is P.

【0114】アドレス0x0400 2000 のキャッシュライン
はプロセッサ基板PB1 の主メモリM1 にあるが、プロ
セッサ基板PB1 のキャッシュメモリC1 に状態Eで存
在する。よって、対応する主記憶タグメモリMTag1
状態はPである。
[0114] address 0x0400 2000 of the cache line is in main memory M 1 of the processor board PB 1, present in the state E to the cache memory C 1 processor board PB 1. Therefore, the state of the corresponding main memory tag memory MTag 1 is P.

【0115】図16はプロセッサ基板PB0 のCPU
(CPU0 )がアドレス0x0000 1000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。プロセッサ基板PB0 の主記憶タグメモリ
MTag0 は状態Pであるので、共有バスSBへのアクセ
スは行わず(5)、プロセッサ基板PB0 の主メモリM
0 を読み出して(6)キャッシュC0 に記憶し、CPU
(CPU0 )に値を供給する(8)。
FIG. 16 shows the CPU of the processor board PB 0 .
(CPU 0 ) reads address 0x0000 1000 (1)
It shows the operation at the time. Cache C 0 of the processor board PB 0 undergoes a read miss (2), issues a shared read CR to internal bus B 0 of the processor board PB 0 (3). Since the main memory tag memory MTag 0 of the processor board PB 0 is in the state P, the shared bus SB is not accessed (5) and the main memory M of the processor board PB 0 is not accessed.
0 is read and (6) stored in the cache C 0 , and the CPU
A value is supplied to (CPU 0 ) (8).

【0116】プロセッサ基板PB0 のキャッシュメモリ
0 とキャッシュ状態タグメモリCTag0 は状態Eに遷
移する(4)(7)。以降、プロセッサ基板PB0 のC
PU(CPU0 )からの読み出しはキャッシュC0 にヒ
ットし、内部バスB0 に要求がでない。
The cache memory C 0 and the cache status tag memory CTag 0 of the processor board PB 0 transit to the status E (4) (7). After that, C of the processor board PB 0
A read from PU (CPU 0 ) hits cache C 0 and there is no request on internal bus B 0 .

【0117】図17はこの状態からプロセッサ基板PB
0 のCPU(CPU0 )がアドレス0x0000 1000 へ書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB0 のキャッシュC0 は書き込みヒットを起こ
し(2)、内部バスB0 にアクセスすることなく、状態
をMに遷移する(3)。以降、キャッシュC0 から追い
出されるまで、プロセッサ基板PB0 のCPU(CPU
0 )からの読み出しと書き込みのいずれのアクセスもキ
ャッシュC0 にヒットし、内部バスB0 に要求がでない
(4)。この様に、同一基板上の局所変数は共有バスS
Bを用いることなくアクセスすることができる。共有管
理部S0 のキャッシュ状態タグCTag0は状態Eのまま
に残るが、共有読み出しを行なう際は主メモリM0 をア
クセスする関係で共有読み出しを行なうので問題を生じ
ない。他のプロセッサ基板から共有バスSBを介して共
有読み出しを行なえば不一致の状態が解消される。
FIG. 17 shows the processor board PB from this state.
0 of CPU (CPU 0) indicates an operation when has been written to the address 0x0000 1000 (1). Cache C 0 of the processor board PB 0 undergoes a write hit (2), without accessing the internal bus B 0, a transition state to M (3). Thereafter, until evicted from the cache C 0, processor board PB 0 of CPU (CPU
Both read and write accesses from 0 ) hit the cache C 0 and no request is made to the internal bus B 0 (4). In this way, local variables on the same substrate are shared bus S
It can be accessed without using B. Although cache state tag CTag 0 shared management unit S 0 remains remain E, does not cause problems since the shared read in relation to accessing the main memory M 0 is the time of performing a shared read. If the shared reading is performed from another processor board via the shared bus SB, the mismatched state is resolved.

【0118】図18はプロセッサ基板PB0 のCPU
(CPU0 )がアドレス0x0400 2000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。このアドレスはプロセッサ基板PB0 の主
メモリM0 ではないので共有バスSB上に共有読み出し
RSを発行する(4)。
FIG. 18 shows the CPU of the processor board PB 0 .
(CPU 0 ) reads address 0x0400 2000 (1)
It shows the operation at the time. Cache C 0 of the processor board PB 0 undergoes a read miss (2), issues a shared read CR to internal bus B 0 of the processor board PB 0 (3). Since this address is not the main memory M 0 of the processor board PB 0 , the shared read RS is issued on the shared bus SB (4).

【0119】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 は要求されたアドレスの
主メモリM1 を持ち、キャッシュ状態タグCTag1 が状
態Eなのでその内部バスB1 に共有読み出しCRを発行
し(6)、主メモリM1 がキャッシュラインの値を供給
する(7)。このときプロセッサ基板PB1 のCPUキ
ャッシュC1 は共有が開始されたことを認識し、状態E
からSに遷移する(8)。また、プロセッサ基板PB1
のキャッシュ状態タグCTag1 も状態Sに、主記憶タグ
MTag1 は状態Gに遷移する(8)。
The processor boards PB 1 to PB 3 start the operation by seeing the shared read RS on the shared bus SB.
The processor boards PB 2 to PB 3 terminate the operation because the cache status tags CTag 2 and CTag 3 are invalid state I (5). Since the processor board PB 1 has the main memory M 1 at the requested address and the cache state tag CTag 1 is in state E, the shared read CR is issued to its internal bus B 1 (6), and the main memory M 1 becomes the cache line. Supply the value (7). At this time, the CPU cache C 1 of the processor board PB 1 recognizes that sharing is started, and the status E
Transition from S to S (8). In addition, the processor board PB 1
The cache state tag CTag 1 of the above is also transited to the state S, and the main memory tag MTag 1 thereof is transited to the state G (8).

【0120】読み出されたキャッシュラインは共有バス
SBを介してプロセッサ基板PB0に供給される
(9)。このとき共有バスSBの共有指示線は共有を指
示している。プロセッサ基板PB0 のキャッシュ状態タ
グCTag0 は状態をSに設定し(10)、内部バスB0
に共有指示線に共有を指示しながらCPUキャッシュC
0 にキャッシュラインの値を供給する(11)。CPU
キャッシュC0 は状態Sとなり(12)、このCPUキ
ャッシュC0 からCPU(CPU0 )にキャッシュライ
ンの値が読出される(13)。
The read cache line is supplied to the processor board PB 0 via the shared bus SB (9). At this time, the sharing instruction line of the shared bus SB indicates sharing. Cache state tag CTag 0 of the processor board PB 0 sets the state to S (10), internal bus B 0
CPU cache C while instructing sharing to the sharing instruction line
The value of the cache line is supplied to 0 (11). CPU
The cache C 0 becomes the state S (12), and the value of the cache line is read from the CPU cache C 0 to the CPU (CPU 0 ) (13).

【0121】図19は、この状態からプロセッサ基板P
0 のCPU(CPU0 )がアドレス0x0400 2000 に書
き込みを行った(1)ときの動作を示している。プロセ
ッサ基板PB0 のキャッシュC0 は共有ヒットを起こし
(2)、内部バスに無効化要求CIを発行する(3)。
プロセッサ基板PB0 の共有管理部S0 は同一基板上の
主メモリM0 のアドレスでないので、共有バスSBに無
効化要求INVを発行する(4)。
FIG. 19 shows the processor board P from this state.
The operation when the CPU of B 0 (CPU 0 ) writes to the address 0x0400 2000 (1) is shown. Cache C 0 of the processor board PB 0 can cause shared hit (2), issues an invalidate request CI to an internal bus (3).
Because sharing management unit S 0 of the processor board PB 0 is not the address of the main memory M 0 on the same substrate, issues an invalidate request INV to the shared bus SB (4).

【0122】プロセッサ基板PB1 からPB3 は共有バ
スSB上の無効化要求INVを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 はキャッシュ状態タグC
Tag1 が状態Sなので無効化要求CIを内部バスB1
伝達する(6)。プロセッサ基板PB1 のCPUキャッ
シュC1 はこの無効化要2CIによって状態をIに遷移
し(7)、キャッシュ状態タグCTag1 も状態Iに遷移
する(8)が、主記憶タグMTag1 の状態はGのままで
ある。プロセッサ基板PB1 の無効化が終了するとプロ
セッサ基板PB0 のキャッシュ状態タグCTag0 は状態
Mに遷移し(9)、CPUキャッシュC0 の状態もMに
遷移して(10)キャッシュC0 に対する書き込みが行
われる(11)。
The processor boards PB 1 to PB 3 start the operation upon seeing the invalidation request INV on the shared bus SB.
The processor boards PB 2 to PB 3 terminate the operation because the cache status tags CTag 2 and CTag 3 are invalid state I (5). The processor board PB 1 has a cache status tag C
Since Tag 1 is in state S, the invalidation request CI is transmitted to the internal bus B 1 (6). CPU cache C 1 processor board PB 1 is a state transition by the disabled Kayo 2CI to I (7), the cache status tag CTag 1 also transitions to state I (8) is the main memory tag Mtag 1 state It remains G. When the invalidation of the processor board PB 1 is completed, the cache state tag CTag 0 of the processor board PB 0 transits to the state M (9), and the state of the CPU cache C 0 also transits to M (10) writing to the cache C 0 . Is performed (11).

【0123】図20は、この状態からプロセッサ基板P
1 のCPU(CPU1 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB1 のキャッシュC1 は読み出しミスを起こ
し(2)、内部バスB1 に共有読み出しCRを発行する
(3)。プロセッサ基板PB1 の共有管理部S1 は同一
基板の主メモリM1 のアドレスではあるが、主記憶タグ
MTag1 の状態がGであるので主メモリM1 のアクセス
(4)と同時に共有バスSBにも共有読み出しRSを発
行する(4)。
FIG. 20 shows the processor board P from this state.
The operation when the CPU of B 1 (CPU 1 ) reads data at address 0x0400 2000 (1) is shown. Cache C 1 processor board PB 1 causes a read miss (2), issues a shared read CR to internal bus B 1 (3). Although sharing management unit S 1 of the processor board PB 1 is a main memory M 1 address the same substrate, a main memory since tag Mtag 1 state is a G access main memory M 1 (4) simultaneously with the shared bus SB Also, the shared read RS is issued (4).

【0124】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 からPB3 はキャッシュ
状態タグCTag2 、CTag3 が無効状態Iなので動作を
終了する(5)。プロセッサ基板PB0 はキャッシュ状
態タグCTag0 が状態Mなので要求に介入する(6)。
この時点でプロセッサ基板PB1 の主メモリM1 のアク
セスは中断される(7)。プロセッサ基板PB0 の共有
管理部S0 は内部バスB0 に共有読み出しCRを発行し
(8)、CPUキャッシュC0 からキャッシュラインの
値を取り出す。この共有読み出しCRによってCPUキ
ャッシュC0 は状態をOに遷移する(9)。プロセッサ
基板PB0 の共有管理部S0 は読み出されたキャッシュ
ラインの値を共有バスSBにのせると共にキャッシュ状
態タグCTag0 を状態Oに遷移する(10)。
Processor boards PB 0 and PB 2 to PB 3
Starts the operation by looking at the shared read RS on the shared bus SB, but the processor boards PB 2 to PB 3 terminate the operation because the cache state tags CTag 2 and CTag 3 are in the invalid state I (5). Since the cache status tag CTag 0 is in the state M, the processor board PB 0 intervenes in the request (6).
At this point, the access to the main memory M 1 of the processor board PB 1 is suspended (7). Shared management section S of the processor board PB 0 0 issues a shared read CR to internal bus B 0 (8), retrieving the value of the cache line from the CPU cache C 0. This shared read CR causes the CPU cache C 0 to change its state to O (9). Shared management section S of the processor board PB 0 0 transitions the cache state tag CTag 0 state O with placing the value of the read cache line to the shared bus SB (10).

【0125】プロセッサ基板PB1 の共有管理部S1
えられた値を内部バスB1 に返すと共に、キャッシュ状
態タグCTag1 の状態をSに遷移する(11)。プロセ
ッサ基板PB1 のCPUキャッシュC1 は、主メモリM
1 の古い値ではなく、共有管理部S1 が供給するプロセ
ッサ基板PB0 で更新された新しいキャッシュラインの
値をキャッシュC1 に取り込んで状態をSに設定し(1
2)このCPUキャッシュC1 からCPU(CPU1
にキャッシュラインの値が読出される(13)。以上の
動作によってプロセッサ基板PB1 の読み出しはプロセ
ッサ基板PB0で行われた書き込みの結果が反映され、
キャッシュ間の一貫性が保たれる。
[0125] with return sharing management unit S 1 flies had a value of the processor board PB 1 to internal bus B 1, transits the state of the cache status tag CTag 1 to S (11). The CPU cache C 1 of the processor board PB 1 is the main memory M
Instead of the old value of 1, the value of the new cache line updated by the processor board PB 0 supplied by the shared management unit S 1 is fetched into the cache C 1 and the state is set to S (1
2) From this CPU cache C 1 to CPU (CPU 1 )
The value of the cache line is read (13). Read processor board PB 1 is the result of the write done by processor board PB 0 is reflected by the above operation,
Coherency between caches is maintained.

【0126】図21は、この状態からプロセッサ基板P
2 のCPU(CPU2 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB2 のキャッシュC2 は読み出しミスを起こ
し(2)、内部バスB2 に共有読み出しCRを発行する
(3)。プロセッサ基板PB2 の共有管理部S2 は同一
基板の主メモリM2 のアドレスでないので、共有バスS
Bに共有読み出しRSを発行する(4)。
FIG. 21 shows the processor board P from this state.
The operation when the CPU (CPU 2 ) of B 2 performs reading (1) at the address 0x0400 2000 is shown. Cache C 2 processor board PB 2 causes a read miss (2), issues a shared read CR to an internal bus B 2 (3). Because sharing management unit S 2 of the processor board PB 2 is not the main memory M 2 addresses the same substrate, the shared bus S
The shared read RS is issued to B (4).

【0127】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はキャッシュ状態タグC
Tag3 が無効状態Iなので動作を終了する(5)。プロ
セッサ基板PB1 は要求されたアドレスの主メモリM1
を持つので、主メモリM1 のアクセスを行うために内部
バスB1 に共有読み出しCRを発行する(6)。プロセ
ッサ基板PB0 はキャッシュ状態タグCTag0 が状態O
なので要求に介入する(7)。この時点でプロセッサ基
板PB1 の主メモリM1 のアクセスは中断される
(8)。プロセッサ基板PB0 の共有管理部S0 は内部
バスB0 に共有読み出しCRを発行、CPUキャッシ
ュC0 からキャッシュラインの値を取り出す(8)。プ
ロセッサ基板PB0 の共有管理部S0 は読み出されたキ
ャッシュラインの値を共有バスSBに載せる。
Processor boards PB 0 to PB 1 and PB 3
Starts the operation by seeing the shared read RS on the shared bus SB, but the processor board PB 3 is the cache state tag C
Since Tag 3 is in the invalid state I, the operation ends (5). The processor board PB 1 is the main memory M 1 of the requested address.
Therefore, the shared read CR is issued to the internal bus B 1 to access the main memory M 1 (6). In the processor board PB 0, the cache status tag CTag 0 is in the status O.
So intervene in the request (7). At this point, access to the main memory M 1 of the processor board PB 1 is interrupted (8). Shared management section S of the processor board PB 0 0 issues a shared read CR to internal bus B 0, retrieving the value of the cache line from the CPU cache C 0 (8). Shared management section S of the processor board PB 0 0 is placed the value of the read cache line to the shared bus SB.

【0128】プロセッサ基板PB2 の共有管理部S2
得られた値を内部バスB2 に返すと共に、キャッシュ状
態タグCTag2 の状態をSに遷移する(9)。プロセッ
サ基板PB2 のCPUキャッシュC2 は、内部バスB2
に返された値を取り込んで状態をSに設定する(1
0)。この値はプロセッサ基板PB1 の主メモリM1
古い値ではなく、プロセッサ基板PB0 で更新された新
しい値であるので、プロセッサ基板PB0 で行われた書
き込みの結果が反映され、共有しているプロセッサ基板
PB0 からPB2 の間でキャッシュ間の一貫性が保たれ
る。
[0128] common control section S 2 of the processor board PB 2, along with returns the resulting value to an internal bus B 2, transits the state of the cache status tag CTag 2 to S (9). The CPU cache C 2 of the processor board PB 2 has an internal bus B 2
Fetches the value returned to and sets the state to S (1
0). This value is not the old value of the main memory M 1 of the processor board PB 1, since it is the new value that has been updated by the processor board PB 0, the result of the write done by processor board PB 0 are reflected, shared to Coherency between caches is maintained between the processor boards PB 0 and PB 2 that are present.

【0129】図22はプロセッサ基板PB0 のCPU
(CPU0 )が、アドレス0x0000 1000に対して、プロ
セッサ基板PB1 上のキャッシュメモリC1 がこのアド
レスのキャッシュラインを状態Oで持ち、プロセッサ基
板PB2 上のキャッシュメモリC2 がこのアドレスのキ
ャッシュラインを状態Sで持ち、プロセッサ基板PB0
上の主記憶タグMTag0 がこのアドレスのキャッシュラ
インの共有状態が状態Gであることを示している時に、
書き込みを行った(1)ときの動作を示している。プロ
セッサ基板PB0 のキャッシュメモリC0 は書き込みミ
スを起こし(2)、内部バスB0 に排他読み出しCRI
を発行する(3)。このアドレスはプロセッサ基板PB
0 上の主メモリM0 に割当てられたものであるが、この
プロセッサ基板PB0 上の主記憶タグMTag0 の示す共
有状態が状態Gであるので、このプロセッサ基板PB0
の共有管理部S0 は主メモリM0 にアクセスする(4)
と共に、共有バスSBに排他読出しRMを発行する
(4)。
FIG. 22 shows the CPU of the processor board PB 0 .
(CPU 0) is, to the address 0x0000 1000, has a cache memory C 1 on the processor board PB 1 is the cache line of the address in the state O, the cache memory C 2 on the processor board PB 2 is the address cache Hold the line in state S and put the processor board PB 0
When the above main memory tag MTag 0 indicates that the shared state of the cache line of this address is the state G,
The operation at the time of writing (1) is shown. Cache memory C 0 of the processor board PB 0 undergoes a write miss (2), exclusive read CRI to internal bus B 0
Is issued (3). This address is the processor board PB
Although it is assigned to the main memory M 0 on 0 , the shared state indicated by the main memory tag MTag 0 on this processor substrate PB 0 is the state G, so this processor substrate PB 0
The shared management unit S 0 accesses the main memory M 0 (4)
At the same time, the exclusive read RM is issued to the shared bus SB (4).

【0130】プロセッサ基板PB1 からPB3 は共有バ
スSB上の排他読み出しRMを見て動作を開始するが、
プロセッサ基板PB3 はキャッシュ状態タグCTag3
無効状態Iなので動作を終了する(5)。プロセッサ基
板PB1 はキャッシュ状態タグCTag1 が状態Oなので
その内部バスB1 に排他読み出しCRIを発行すると共
に、共有バスSBからの要求に介入し(6)、プロセッ
サ基板PB0 上の主メモリM0 のアクセスを中断する
(7)と共に、プロセッサ基板PB1 上のキャッシュメ
モリC1 からこのアドレスのキャッシュラインが共有バ
スSBに読み出される。プロセッサ基板PB2 はキャッ
シュ状態タグCTag2 が状態Sなのでその内部バスB2
に無効化要求CIを発行する(6)。
The processor boards PB 1 to PB 3 start the operation by seeing the exclusive read RM on the shared bus SB.
The processor board PB 3 ends its operation because the cache status tag CTag 3 is in the invalid state I (5). Since the cache status tag CTag 1 is in the state O, the processor board PB 1 issues an exclusive read CRI to the internal bus B 1 thereof and intervenes the request from the shared bus SB (6), and the main memory M on the processor board PB 0. The access of 0 is interrupted (7), and at the same time, the cache line of this address is read from the cache memory C 1 on the processor board PB 1 to the shared bus SB. Since the cache status tag CTag 2 is in the state S, the processor board PB 2 has its internal bus B 2
The invalidation request CI is issued to (6).

【0131】これにより、プロセッサ基板PB1 のキャ
ッシュメモリC1 は状態をIに遷移し(7)、プロセッ
サ基板PB2 のキャッシュメモリC2 も状態をIに遷移
して(7)、当該アドレスのキャッシュラインを無効化
する。これに併い、プロセッサ基板PB1 のキャッシュ
状態タグCTag1 も状態Iに遷移し(8)、プロセッサ
基板PB2 のキャッシュ状態タグCTag2 も状態Iに遷
移する(8)。
[0131] Accordingly, the cache memory C 1 processor board PB 1 transits the state to I (7), the cache memory C 2 processor board PB 2 even state transitions to I (7), of the address Invalidate the cache line. This併I, cache status tag CTag 1 processor board PB 1 is also a transition to state I (8), the cache status tag of the processor board PB 2 CTag 2 also transition to state I (8).

【0132】プロセッサ基板PB1 及びPB2 の無効化
が終了するとプロセッサ基板PB0のキャッシュ状態タ
グCTag0 が状態Mに遷移し、主記憶タグMTag0 が状
態Pに遷移する(9)。そして、キャッシュメモリC0
の状態が状態Mに遷移し(10)、キャッシュメモリC
0 に対して書き込みが行われる(11)。
When the invalidation of the processor boards PB 1 and PB 2 is completed, the cache status tag CTag 0 of the processor board PB 0 transits to the state M and the main memory tag MTag 0 transits to the state P (9). Then, the cache memory C 0
State changes to state M (10), and the cache memory C
Writing is performed on 0 (11).

【0133】次に、本発明の第2実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
Next, a distributed shared memory type multiprocessor system according to a second embodiment of the present invention will be described.

【0134】この第2実施例は上記第1実施例において
異なるプロセッサ基板の間での所有権の移転に関する改
良を加えたもので、ここで所有権とは最新の値をキャッ
シュから主メモリに書き戻す義務があることを意味す
る。
This second embodiment is an improvement of the first embodiment regarding transfer of ownership between different processor boards. Here, ownership is the latest value written from the cache to the main memory. Means you have to return.

【0135】本実施例においては、共有バス6は更に共
有バス6上のメモリアクセス要求の要求元であるプロセ
ッサ基板を同定する要求元識別線を備えている。
In this embodiment, the shared bus 6 is further provided with a request source identification line for identifying the processor board which is the request source of the memory access request on the shared bus 6.

【0136】あるプロセッサ基板上のCPU1が同基板
上の主メモリに割り当てられたアドレスに対する読み出
し命令を実行し、キャッシュメモリ2で読み出しミスが
起こった際に、別のプロセッサ基板上のキャッシュメモ
リ2がこのアドレスの最新の値を持っていた場合、この
別のプロセッサ基板は上記第1実施例の場合同様に介入
を行う。
When a CPU 1 on one processor board executes a read command for an address assigned to the main memory on the same board and a read miss occurs in the cache memory 2, the cache memory 2 on another processor board If it has the latest value of this address, this other processor board will intervene as in the first embodiment.

【0137】上記第1実施例では、このような場合でも
所有権は介入元である別のプロセッサ基板の方に残すた
め、後に書き戻しが要求されると、この別のプロセッサ
基板が前記あるプロセッサ基板の主メモリに対して共有
バス6を介して書き戻しを行わねばならない。
In the first embodiment described above, even in such a case, the ownership is left to the other processor board which is the intervention source, so that when the write-back is requested later, this other processor board is set to the certain processor board. Writeback must be done to the main memory of the board via the shared bus 6.

【0138】これに対して、この第2実施例では、介入
時に最新の値と共に所有権もこの別のプロセッサ基板か
ら前記あるプロセッサ基板に移転させて、後の書き戻し
がこのあるプロセッサ基板内だけで、共有バス6を使わ
ずに行えるようにしている。
On the other hand, in the second embodiment, at the time of intervention, the ownership as well as the latest value is transferred from the other processor board to the certain processor board, and the later write back is performed only within the certain processor board. Therefore, it can be performed without using the shared bus 6.

【0139】このような所有権の移転を行うために、こ
の第2実施例では、共有バス6上のメモリ・アクセス要
求は要求元識別線上の要求元プロセッサ基板を示す情報
を併うようにする。この情報は通常のバスが持つ基板識
別番号でも良いが、実質的には要求元のプロセッサ基板
が指定されたアドレスが割り当てられた主メモリを持っ
たプロセッサ基板であるかどうかを示すもので充分であ
るので、このことを示す1ビットの信号で与えても良
い。
In order to transfer the ownership like this, in the second embodiment, the memory access request on the shared bus 6 is accompanied by the information indicating the request source processor board on the request source identification line. . This information may be the board identification number of a normal bus, but it is enough to indicate whether the requesting processor board is the processor board having the main memory to which the specified address is assigned. Therefore, it may be given as a 1-bit signal indicating this.

【0140】ここで、指定されたアドレスが割り当てら
れた主メモリを持ち、介入を受けた要求元のプロセッサ
基板では、キャッシュメモリ2が最新の値と併せて所有
権をも共有バス6を介して受けとるので、キャッシュメ
モリ2のキャッシュ状態は状態Oにされ、介入を行った
別のプロセッサ基板ではキャッシュのキャッシュ状態は
状態Sにされる。
Here, in the processor board of the request source that has the main memory to which the specified address is assigned and has received the intervention, the cache memory 2 takes ownership along with the latest value via the shared bus 6. Since the cache state is received, the cache state of the cache memory 2 is set to the state O, and the cache state of the cache is set to the state S in another processor board that has performed the intervention.

【0141】従って、キャッシュメモリ2のキャッシュ
状態タグ部12の状態遷移は上記図6にまとめたものに
代わって図23にまとめたものとなり、一方共有管理部
4のキャッシュ状態タグメモリ24の状態遷移は自分の
プロセッサ基板上の主メモリのアクセスの際には上記図
7にまとめたものに代わって図24にまとめたものとな
り、他のプロセッサ基板上の主メモリへのアクセスの際
には上記図8にまとめたものに代わって図25にまとめ
たものとなる。
Therefore, the state transitions of the cache state tag unit 12 of the cache memory 2 are summarized in FIG. 23 in place of those summarized in FIG. 6, while the state transitions of the cache state tag memory 24 of the shared management unit 4 are performed. Is shown in FIG. 24 instead of the one shown in FIG. 7 when accessing the main memory on its own processor board, and is shown in the above figure when accessing the main memory on another processor board. Instead of the one summarized in FIG. 8, the one summarized in FIG.

【0142】又、この第2実施例では、CPUの読み出
し命令に対するキャッシュ制御部17及び共有管理部4
の動作を示す上記図9,10のフローチャートを、図2
6,27のように変更する。
Further, in the second embodiment, the cache control unit 17 and the sharing management unit 4 for the read instruction of the CPU.
2 is a flowchart showing the operation of FIG.
Change it to 6,27.

【0143】即ち、S8における一貫性保持動作の終了
後、この一貫性保持動作において介入があったか否かを
決定し(S16)、なかった場合は図9,10の場合と
同様にS9に進むが、あった場合は内部バス5の介入指
示線を駆動し(S17)、CPUキャッシュの状態を状
態Oに設定する(S18)ようにする。これ以外は図
9,10と同様で良い。
That is, after the end of the consistency holding operation in S8, it is determined whether or not there is an intervention in this consistency holding operation (S16). If not, the process proceeds to S9 as in the case of FIGS. If so, the intervention instruction line of the internal bus 5 is driven (S17), and the state of the CPU cache is set to the state O (S18). Other than this, the same as in FIGS.

【0144】更に、共有バス6上の共有読み出しRSに
対する共有管理部4とキャッシュ制御部17の動作を示
す上記図12のフローチャートを図28の様に変更す
る。
Further, the flowchart of FIG. 12 showing the operations of the sharing management unit 4 and the cache control unit 17 for the shared read RS on the shared bus 6 is modified as shown in FIG.

【0145】即ち、S50の後で、要求されたアドレス
の割り当てられた主メモリを持つプロセッサ基板からの
アクセスか否かを決定し(S55)、そうでなければ図
12の場合と同様にS51に進むが、そうであった場合
にはCPUキャッシュメモリの状態タグは、MまたはO
ならばSに(その他はそのまま)、共有管理部のキャッ
シュ状態タグは、MまたはOならばSに、それぞれ遷移
させ(S56)、そしてS52に進むようにする。これ
以外は図12と同様で良い。
That is, after S50, it is determined whether or not the access is from the processor board having the main memory to which the requested address is assigned (S55). If not, the process proceeds to S51 as in the case of FIG. If so, the CPU cache memory status tag is M or O.
If so, the cache state tag of the shared management unit is changed to S (others are unchanged), and if M or O, the cache state tag is changed to S (S56), and the process proceeds to S52. Other than this, the same as in FIG.

【0146】図29はプロセッサ基板PB0 のCPU
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されているアドレス0x0000 0000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB0 のキャッシュメモリC0 は読み出
しミスを起こし(2)、内部バスB0 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
0 上の主メモリM0 に割り当てれられたものである
が、このプロセッサ基板PB0 上の主記憶タグMTag0
の示す共有状態が状態Gであるので、このプロセッサ基
板PB0 の共有管理部S0 は主メモリM0 にアクセスす
る(4)と共に、共有バスSBに共有読み出しRSを発
行する(4)。
FIG. 29 shows the CPU of the processor board PB 0 .
(CPU 0) is shows the operation when data is read out to the address 0x0000 0000, which is updated in the cache memory C 1 on the processor board PB 1 (1).
Cache memory C 0 of the processor board PB 0 undergoes a read miss (2), a shared read C to the internal bus B 0
Issue R (3). This address is the processor board P
Although what was being assigned to the main memory M 0 on B 0, the main memory tag on the processor board PB 0 Mtag 0
Since the shared state indicated by is the state G, the shared management unit S 0 of the processor substrate PB 0 accesses the main memory M 0 (4) and issues the shared read RS to the shared bus SB (4).

【0147】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はキャッシュ状態タグC
Tag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1はキャッシュ状態タグC
Tag1 が状態Mなので、その内部バスB1 に共有読み出
しCRを発行すると共に共有バスSBからの要求に介入
し(6)、プロセッサ基板PB1 上のキャッシュメモリ
1 からこのアドレスのキャッシュラインを読み出す
(7)。この時、このキャッシュメモリC1 のキャッシ
ュ状態がMからSに遷移する。
The processor boards PB 1 to PB 3 start the operation by seeing the shared read RS on the shared bus SB.
Processor boards PB 2 and PB 3 are cache status tag C
Since Tag 2 and CTag 3 are in the invalid state I, the operation ends (5). The processor board PB 1 has a cache status tag C
Since Tag 1 is in the state M, the shared read CR is issued to the internal bus B 1 and the request from the shared bus SB is intervened (6), and the cache line of this address is transferred from the cache memory C 1 on the processor board PB 1. Read (7). At this time, the cache state of the cache memory C 1 changes from M to S.

【0148】これにより、プロセッサ基板PB0 上の主
メモリM0 のアクセスが中断される(7)と共に、キャ
ッシュメモリC1 から読み出した最新の値が共有バスS
Bを介してプロセッサ基板PB0 に転送される(8)。
この時点で、キャッシュ状態タグメモリCTag1 のキャ
ッシュ状態がMからSに遷移する(8)。
[0148] Thus, the access of the main memory M 0 on the processor board PB 0 is interrupted (7), the latest values shared bus S read from the cache memory C 1
It is transferred to the processor board PB 0 via B (8).
At this point, the cache state of the cache state tag memory CTag 1 transits from M to S (8).

【0149】次に、プロセッサ基板PB0 においては、
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからOに遷移して(9)、所有権が移転されてきたこ
とを示す。共有バスSBを介して転送されたデータはキ
ャッシュメモリC0 にキャッシュされて(10)、キャ
ッシュメモリC0 のキャッシュ状態もIからOに遷移し
て、所有権が移転されてきたことを示す。このキャッシ
ュC0 からCPU(CPU0 )に最新の値が読出される
(11)。
Next, in the processor board PB 0 ,
The cache state of the cache state tag memory CTag 0 changes from I to O (9), indicating that ownership has been transferred. The data transferred via the shared bus SB is cached in the cache memory C 0 (10), and the cache state of the cache memory C 0 also changes from I to O, indicating that the ownership has been transferred. The latest value is read from the cache C 0 to the CPU (CPU 0 ) (11).

【0150】次に、本発明の第3実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
Next, a distributed shared memory type multiprocessor system according to a third embodiment of the present invention will be described.

【0151】この第3実施例は上記第1実施例において
キャッシュメモリ2のキャッシュ状態タグ部12と共有
管理部4のキャッシュ状態タグメモリ24で用いるキャ
ッシュ状態をM,E,S,Iの4状態に限定し、状態O
を省略するという改良を加えたものである。
In the third embodiment, the cache states used in the cache state tag unit 12 of the cache memory 2 and the cache state tag memory 24 of the shared management unit 4 in the first embodiment are M, E, S, and I states. Limited to state O
It is an improvement that omits.

【0152】実際の回路では各キャッシュ状態は2進数
のビットで表現されるためキャッシュ状態数を2の巾数
とすることが望ましく、このためこの第3実施例のよう
にキャッシュ状態を4状態に限定することによりキャッ
シュ状態タグ部12やキャッシュ状態タグメモリ24の
実現が容易となる。
In an actual circuit, since each cache state is represented by a binary bit, it is desirable to set the number of cache states to a range of 2. Therefore, the cache state is set to 4 states as in the third embodiment. By limiting, the cache state tag unit 12 and the cache state tag memory 24 can be easily realized.

【0153】4状態だけを使ったキャッシュメモリの一
貫性保持方式としてはBerkeley方式とIllinois方式の2
方式が知られているが、本実施例ではIllinois方式を適
用したものとして説明する。但し、Berkeley方式を用い
ても同様に実現が可能である。
As the cache memory coherency holding method using only four states, there are two methods of Berkeley method and Illinois method.
Although the method is known, in the present embodiment, description will be made assuming that the Illinois method is applied. However, the Berkeley method can be similarly used.

【0154】Illinois方式では主メモリ3にいわゆるリ
フレクティブ機能を持たせる。これは、主メモリ3の共
有読み出しの際に介入が発生した時に、主メモリ3の読
み出し動作を中断する代わりに、介入によって内部バス
に転送されてきたデータを主メモリ3に書き込む機能で
ある。この機能によれば、介入を行ったキャッシュは介
入と同時に書き戻し義務を果すことになるので、所有権
の存在を示す状態O(共有ダーティ)は不要となる。
In the Illinois system, the main memory 3 has a so-called reflective function. This is a function of writing the data transferred to the internal bus by the intervention to the main memory 3 instead of interrupting the read operation of the main memory 3 when the intervention occurs during the shared reading of the main memory 3. According to this function, the intervening cache fulfills the write-back obligation at the same time as the intervention, so that the state O (shared dirty) indicating the existence of the ownership is unnecessary.

【0155】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図30にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図31にまとめたものとなる。
Therefore, the state transition of the cache state tag memory 24 of the shared management unit 4 is summarized in FIG. 30 in place of the one summarized in FIG. 7 when accessing the main memory on the processor board. Therefore, when accessing the main memory on another processor board, the one summarized in FIG. 31 is replaced with the one summarized in FIG.

【0156】図32はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は読み出
しミスを起こし(2)、内部バスB1 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
1 上の主メモリM1 に割り当てられたものではないの
で、プロセッサ基板PB1 の共有管理部S1 は共有バス
SBに共有読み出しRSを発行する(4)。
FIG. 32 shows the CPU of the processor board PB 1 .
(CPU 1) is shows the operation when data is read out to the address 0x0000 1000, which is updated in the cache memory C 0 on the processor board PB 0 (1).
Cache memory C 1 processor board PB 1 undergoes a read miss (2), a shared read C the internal bus B 1
Issue R (3). This address is the processor board P
Since not assigned to the main memory M 1 on B 1, sharing management unit S 1 of the processor board PB 1 issues a shared read RS to the shared bus SB (4).

【0157】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に共有
読み出しCRを発行して、キャッシュメモリC0 からこ
のアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)このメ
モリアクセスに介入する。この時、このキャッシュメモ
リC0 はキャッシュ状態をMからSに遷移する。
Processor boards PB 0 and PB 2 to PB 3
Starts the operation by looking at the shared read RS on the shared bus SB, but the processor boards PB 2 and PB 3 terminate the operation because the cache state tags CTag 2 and CTag 3 are in the invalid state I (5). Since the cache status tag CTag 0 is in the state M, the processor board PB 0 issues the shared read CR to the internal bus B 0 to read the cache line of this address from the cache memory C 0 (6) and the internal bus B 0. Drive the intervention instruction line of (6) to intervene in this memory access. At this time, the cache memory C 0 changes its cache state from M to S.

【0158】これによりプロセッサ基板PB0 上の主メ
モリM0 のアクセスが中断される(7)と共に、キャッ
シュメモリC0 の最新の値が主メモリM0 に書き込まれ
て書き戻し義務が果され、最新の値は共有バスSBを介
して、プロセッサ基板PB1に転送される。この時点
で、キャッシュ状態タグメモリCTag0 はキャッシュ状
態をMからSに遷移し、主記憶タグメモリMTag0 は共
有状態をPからGに遷移する(7)。
[0158] Thus with the access of the main memory M 0 on the processor board PB 0 is interrupted (7), is achieved obligation writeback latest value of the cache memory C 0 is written in the main memory M 0, The latest value is transferred to the processor board PB 1 via the shared bus SB. At this point, the cache state tag memory CTag 0 changes its cache state from M to S, and the main memory tag memory MTag 0 changes its shared state from P to G (7).

【0159】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC1 からCPU(C
PU1 )に最新の値が読み出される。
Next, in the processor board PB 1 ,
Cache state tag memory CTag 1 transitions to S cache status from the I (8), data transferred through the shared bus SB is cached in the cache memory C 1, the cache memory C 1 in a cache state from I S
(9). From this cache C 1 to CPU (C
The latest value is read to PU 1 ).

【0160】図33はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000 に対
して書き込みを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は書き込
みミスを起こし(2)、内部バスB1 に排他読み出しC
RIを発行する(3)。このアドレスはプロセッサ基板
PB1 上の主メモリM1に割り当てられたものではない
ので、プロセッサ基板PB1 の共有管理部S1 は共有バ
スSBに排他読み出しRMを発行する(4)。
FIG. 33 shows the CPU of the processor board PB 1 .
(CPU 1) is shows the operation when attempts writing to address 0x0000 1000 that has been updated in the cache memory C 0 on the processor board PB 0 (1).
Cache memory C 1 processor board PB 1 undergoes a write miss (2), exclusive read C to the internal bus B 1
Issue RI (3). Since this address is not allocated to the main memory M 1 on the processor board PB 1, sharing management unit S 1 of the processor board PB 1 issues an exclusive read RM to the shared bus SB (4).

【0161】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に排他
読み出しCRIを発行して、キャッシュメモリC0 から
このアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)、この
メモリアクセスに介入する。この時、キャッシュメモリ
0 はキャッシュ状態をMからIに遷移する。
Processor boards PB 0 and PB 2 to PB 3
Starts the operation by looking at the exclusive read RM on the shared bus SB, but the processor boards PB 2 and PB 3 end the operation because the cache status tags CTag 2 and CTag 3 are in the invalid state I (5). Since the cache state tag CTag 0 of the processor board PB 0 is the state M, the exclusive read CRI is issued to the internal bus B 0 to read the cache line of this address from the cache memory C 0 (6) and the internal bus B 0. The intervention instruction line of is driven (6) to intervene in this memory access. At this time, the cache memory C 0 changes its cache state from M to I.

【0162】これにより、プロセッサ基板PB0 上の主
メモリM0 のアクセスが中断される(7)と共に、最新
の値は共有バスSBを介してプロセッサ基板PB1 に転
送される。ここで最新の値はいづれプロセッサ基板PB
1 で書き替えられるので、主メモリM0 に書き込む必要
はない。この時点で、キャッシュ状態タグメモリCTag
0 はキャッシュ状態をMからIに遷移し、主記憶タグメ
モリMTag0 は共有状態をPからGに遷移する(7)。
[0162] Thus, the access is interrupted in the main memory M 0 on the processor board PB 0 (7), the latest values are transferred to the processor board PB 1 via the shared bus SB. The latest value is the processor board PB
Since it is rewritten by 1 , it is not necessary to write in the main memory M 0 . At this point, cache status tag memory CTag
In 0, the cache state transits from M to I, and in the main memory tag memory MTag 0, the shared state transits from P to G (7).

【0163】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからM
に遷移する(9)。このキャッシュC1 に対してCPU
(CPU1 )が書き込みを行う。
Next, in the processor board PB 1 ,
Cache state tag memory CTag 1 transitions to M cache status from the I (8), data transferred through the shared bus SB is cached in the cache memory C 1, the cache memory C 1 in a cache state from I M
(9). CPU for this cache C 1
(CPU 1 ) writes.

【0164】図34はプロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新させているアドレス0x0000 1000 に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB2 のキャッシュメモリC2 は読み出
しミスを起こし(2)、内部バスB2 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
2 上の主メモリM2 に割り当てられたものではないの
で、プロセッサ基板PB2 の共有管理部S2 は共有バス
SBに共有読み出しRSを発行する(4)。
FIG. 34 shows the CPU of the processor board PB 2 .
(CPU 2) is shows the operation when data is read out to the address 0x0000 1000, which is updated in the cache memory C 1 on the processor board PB 1 (1).
Cache memory C 2 processor board PB 2 undergoes a read miss (2), a shared read C to an internal bus B 2
Issue R (3). This address is the processor board P
Since not assigned to the main memory M 2 on B 2, sharing management unit S 2 of the processor board PB 2 issues a shared read RS to the shared bus SB (4).

【0165】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了する(5)。プロセッサ基板P
1 はキャッシュ状態タグCTag1 が状態Mなので、そ
の内部バスに共有読み出しCRを発行して(5)、キャ
ッシュメモリC1 からこのアドレスの最新の値を読み出
す(6)と共に、内部バスの介入指示線を駆動して介入
を示す。この時点で、キャッシュメモリC1 はキャッシ
ュ状態をMからSに遷移させ、共有管理部S1 のキャッ
シュ状態タグCTag1 もキャッシュ状態をMからSに遷
移させる(7)。そして、最新の値は共有バスSBを介
して介入指示線の介入指示と共にプロセッサ基板PB2
に転送される(7)。
Processor boards PB 0 to PB 1 and PB 3
Starts the operation by looking at the shared read RS on the shared bus SB, but the processor substrate PB 3 has neither a copy of this cache line in the cache memory C 3 nor the main memory M 3 , so the operation ends (5 ). Processor board P
Since B 1 has the cache state tag CTag 1 in the state M, the shared read CR is issued to the internal bus (5), the latest value of this address is read from the cache memory C 1 (6), and the internal bus intervention is performed. Drive the indicator line to indicate intervention. At this point, the cache memory C 1 causes a transition to S the cache state from M, the cache status tag CTag 1 shared managing unit S 1 also to transition the cache state from M to S (7). Then, the latest value is added to the processor board PB 2 together with the intervention instruction of the intervention instruction line via the shared bus SB.
(7).

【0166】プロセッサ基板PB0 はキャッシュ状態タ
グCTag0 が状態Iなので、共有バスSB上の共有読み
出しRSには応答しない。
Since the cache state tag CTag 0 is in state I, the processor board PB 0 does not respond to the shared read RS on the shared bus SB.

【0167】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移する(8)が、プロセッサ基板PB0
キャッシュ状態タグメモリCTag0 のキャッシュ状態は
Iのままである(8)。
Next, in the processor board PB 2 ,
The cache state tag memory CTag 2 changes the cache state from I to S (8), but the cache state of the cache state tag memory CTag 0 of the processor board PB 0 remains I (8).

【0168】そして、共有バスSBを介して転送された
データがキャッシュメモリC2 にキャッシュされて、キ
ャッシュメモリC2 はキャッシュ状態をIからSに遷移
する(9)。このキャッシュC2 からCPU(CP
2 )に最新の値が読み出される。
[0168] Then, data transferred through the shared bus SB is cached in the cache memory C 2, the cache memory C 2 transitions the cache state from I to S (9). From this cache C 2 to CPU (CP
The latest value is read in U 2 ).

【0169】一方、プロセッサ基板PB0 では、共有バ
スSBの介入指示線の介入指示に応じて共有バスを介し
て転送されたこのキャッシュラインの最新の値が主メモ
リM0 に書き込まれて(9)、書き戻し義務が果たされ
る。
On the other hand, in the processor board PB 0 , the latest value of this cache line transferred via the shared bus in response to the intervention instruction of the intervention instruction line of the shared bus SB is written in the main memory M 0 (9 ), The write-back obligation is fulfilled.

【0170】次に、本発明の第4実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
Next, a distributed shared memory type multiprocessor system according to a fourth embodiment of the present invention will be described.

【0171】この第4実施例は上記第1実施例において
共有管理部4の主記憶タグメモリ27で用いる共有状態
に他のプロセッサ基板上のキャッシュメモリで書き変え
られているか否か、即ち他のプロセッサ基板上に所有権
が存在するか否か、を示す情報を、他のプロセッサ基板
上のキャッシュメモリからのアクセスの有無に加えると
いう改良を加えたものである。
In the fourth embodiment, whether or not the cache memory on another processor board has rewritten the shared state used in the main memory tag memory 27 of the shared management unit 4 in the first embodiment, that is, other This is an improvement in that information indicating whether or not ownership is present on a processor board is added to the presence / absence of access from a cache memory on another processor board.

【0172】この追加の情報は所有権がプロセッサ基板
上に不在であるか否かを示すものであるため、主メモリ
3に対して読み出しを行う際に介入が起こるか否かを前
もって知らせることが可能である。
Since this additional information indicates whether or not ownership is absent on the processor board, it is possible to inform the main memory 3 in advance whether or not an intervention will occur when reading. It is possible.

【0173】この追加の情報を表すビットは共有バス6
上に排他読み出しRMと無効化要求INVが発行された
時に駆動され、共有バス6上に書き戻しWBが発行され
た時に解除されることで、所有権の所在を正確に反映出
来るようにされる。
The bits representing this additional information are shared bus 6
It is driven when the exclusive read RM and the invalidation request INV are issued above, and is released when the write back WB is issued on the shared bus 6, so that the whereabouts of the ownership can be accurately reflected. .

【0174】従って、この第4実施例では、主記憶タグ
メモリ27は以下の3状態P,G,Aのいずれかを取り
得る。
Therefore, in the fourth embodiment, the main memory tag memory 27 can take any of the following three states P, G and A.

【0175】[P]:他のプロセッサ基板のキャッシュ
にコピーがない。
[P]: There is no copy in the cache of another processor board.

【0176】[G]:他のプロセッサ基板のキャッシュ
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
[G]: The copy may exist in the cache of another processor board, but the ownership is on this processor board.

【0177】[A]:他のプロセッサ基板のキャッシュ
に所有権がある。
[A]: Ownership in the cache of another processor board.

【0178】ここで、所有権が存在するということは、
キャッシュにコピーがあることをも意味するので、これ
ら3状態で全ての状況をカバーできる。
Here, the existence of ownership means that
It also means that there is a copy in the cache, so these three states can cover all situations.

【0179】この第4実施例では、主メモリ3に対して
読み出しを行なう際に介入が起こるか否かを、所有バス
6からの介入を待つことなく主記憶タグメモリの共有状
態から前もって知ることが可能なため、指定されたアド
レスを割り当てられた主メモリ3を持つプロセッサ基板
での動作を主記憶タグメモリの共有状態に応じて以下の
様にすることで、共有バス6上のトラフィックを減らす
ことが可能である。
In the fourth embodiment, it is possible to know in advance from the shared state of the main memory tag memory whether the intervention occurs when reading from the main memory 3 without waiting for the intervention from the proprietary bus 6. Therefore, the operation on the processor board having the main memory 3 to which the designated address is assigned is performed as follows according to the sharing state of the main memory tag memory, thereby reducing the traffic on the shared bus 6. It is possible.

【0180】[P]:読み書き共に共有バス6を介さず
に内部バス5のみで行う。
[P]: Reading and writing are performed only by the internal bus 5 without passing through the shared bus 6.

【0181】[G]:読み出しは内部バス5のみで行
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
[G]: Read is performed only by the internal bus 5, and write is performed by issuing the invalidation request INV to the shared bus 6.

【0182】[A]:読み出しは主メモリ3へのアクセ
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
[A]: Reading is performed by interrupting access to the main memory 3 and waiting for intervention from the shared bus 6, and writing is performed by issuing an invalidation request INV to the shared bus 6.

【0183】又、この第4実施例では、キャッシュリフ
ィルを行なった際に共有状態が[P]であれば、他のキ
ャッシュにコピーが存在しないことを意味するので、キ
ャッシュ状態を状態E(排他クリーン)に設定出来る。
キャッシュ状態がEの時には書き込み、読み出し、リプ
レースの全てを内部バス5のみを使って行うことが可能
なので、共有バス6上の不要なトラフィックを削減出来
る。
In the fourth embodiment, if the shared state is [P] when the cache refill is performed, it means that there is no copy in another cache. Therefore, the cache state is changed to the state E (exclusive). It can be set to (clean).
When the cache state is E, writing, reading, and replacement can be performed using only the internal bus 5, so unnecessary traffic on the shared bus 6 can be reduced.

【0184】又、自分のプロセッサ基板上の主メモリに
対するアクセスであっても、共有状態が[A]であれ
ば、他のプロセッサ基板上のキャッシュが介入を行うの
で、主メモリ3にアクセスする必要はなく、内部バス5
のトラフィックを削減出来る。
Even if the main memory on its own processor board is accessed, if the shared state is [A], the cache on another processor board intervenes, so it is necessary to access the main memory 3. Not internal bus 5
Traffic can be reduced.

【0185】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図35にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図36にまとめたものとなる。
Therefore, the state transition of the cache state tag memory 24 of the shared management unit 4 is summarized in FIG. 35 instead of the one summarized in FIG. 7 when accessing the main memory on its own processor board. Therefore, when accessing the main memory on another processor board, the one summarized in FIG. 36 is replaced with the one summarized in FIG.

【0186】図37はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は読み出しミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
FIG. 37 shows the CPU of the processor board PB 1 .
(CPU 1 ) is the main memory M on the processor board PB 0
It shows the operation when writing (1) to the address 0x0000 1000 stored in 0 . The cache memory C 1 processor board PB 1 causes a read miss (2), and issues an exclusive read CRI to internal bus B 1 (3). Since this address is not allocated to the main memory M 1 on the processor board PB 1, sharing management unit S 1 of the processor board PB 1 issues an exclusive read RM to the shared bus SB (4).

【0187】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 は、このキャッ
シュラインのコピーをキャッシュメモリC2 ,C3 にも
主メモリM2 ,M3 にも持たないので動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0
排他読み出しCRIを発行して(5)、主メモリM0
らこのキャッシュラインを読み出す(6)。
Processor boards PB 0 and PB 2 to PB 3
Starts the operation by looking at the exclusive read RM on the shared bus SB, but the processor boards PB 2 and PB 3 copy the cache lines to the cache memories C 2 and C 3 and to the main memories M 2 and M 3 . Since it does not have, the operation is finished (5). Since the processor board PB 0 has the main memory M 0 to which this address is assigned, it issues an exclusive read CRI to its internal bus B 0 (5) and reads this cache line from the main memory M 0 (6).

【0188】読み出されたデータは共有バスSBを介し
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はPからAに遷
移して(7)、他のプロセッサ基板に所有権が移転した
ことを示すが、キャッシュ状態タグメモリCTag0 のキ
ャッシュ状態はIのままである。
The read data is transferred to the processor board PB 1 via the shared bus SB (7). At this point, the shared state of the main memory tag memory MTag 0 changes from P to A (7), indicating that ownership has been transferred to another processor board, but the cache state of the cache state tag memory CTag 0 is I. It remains.

【0189】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1はキャッシュ状態をIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
Next, in the processor board PB 1 ,
The cache state tag memory CTag 1 changes the cache state from I to M (8), the data transferred via the shared bus SB is cached in the cache memory C 1 (9), and the cache memory C 1 changes the cache state. Transition from I to M (9). C for this cache C 1
The PU (CPU 1 ) writes.

【0190】図38は、プロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0 からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスSBに共有読み出しRSを発行する
(4)。
FIG. 38 shows the CPU of the processor board PB 2 .
(CPU 2) is updated in the cache memory C 1 on the processor board PB 1, its ownership was read to the address 0x0000 1000 are transferred from the processor board PB 0 to the processor board PB 1 ( The operation at the time of 1) is shown. The cache memory C 2 of the processor board PB 2 causes a read miss (2), and the internal bus B
A shared read CR is issued to 2 (3). Since this address is not allocated to the main memory M 2 on the processor board PB 2, sharing management unit S 2 of the processor board PB 2 issues a shared read RS to the shared bus SB (4).

【0191】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB0 とPB3 はキャッシュ状
態タグCTag0 ,CTag3 が無効状態Iなので、動作を
終了する(5)。特に、プロセッサ基板PB0 はこのア
ドレスが割り当てあられた主メモリM0 を持つが、主記
憶タグメモリMTag0 が状態Aで所有権の不在を示して
いることから内部バスB0 には一斉コマンドを発行しな
い。
Processor boards PB 0 to PB 1 and PB 3
Starts the operation by looking at the shared read RS on the shared bus SB, but the processor boards PB 0 and PB 3 terminate the operation because the cache status tags CTag 0 and CTag 3 are in the invalid state I (5). In particular, the processor board PB 0 has the main memory M 0 to which this address is assigned, but since the main memory tag memory MTag 0 shows the absence of ownership in the state A, a general command is sent to the internal bus B 0. Do not issue.

【0192】一方、プロセッサ基板PB1 はキャッシュ
状態タグCTag1 が状態Mなので、その内部バスB1
共有読み出しCRを発行して(5)、キャッシュメモリ
1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 はキャッシュ状態をM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 もキャッシュ状態をMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
On the other hand, since the cache state tag CTag 1 of the processor board PB 1 is in the state M, the shared read CR is issued to its internal bus B 1 (5) to read the latest value of this address from the cache memory C 1. (6). At this point, the cache memory C 1 changes the cache state to M
To O (6), cache state tag memory CT
Ag 1 also changes the cache state from M to O (7). The latest read value is transferred to the processor board PB 2 via the shared bus SB (7).

【0193】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされ
て、キャッシュメモリC2 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC2 からCPU(C
PU2 )に最新の値が読み出される。
Next, in the processor board PB 2 ,
Cache state tag memory CTag 2 transitions to S cache status from the I (8), data transferred through the shared bus SB is cached in the cache memory C 2, the cache memory C 2 is the cache state from I S
(9). From this cache C 2 to CPU (C
The latest value is read to PU 2 ).

【0194】図39はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB1 上のキャッシュ
メモリで更新されて、その所有権がプロセッサ基板PB
0 からプロセッサ基板PB1 に移転しているアドレス0x
0000 1000 に対してキャッシュの衝突又はキャッシュフ
ラッシュ命令に基づいて書き戻し(リプレース)を行っ
た(1)ときの動作を示している。プロセッサ基板PB
1 のキャッシュメモリC2 は最新の値を読み出し
(2)、キャッシュメモリC2 はキャッシュ状態をMか
らIに遷移し、内部バスB1 に書き戻しWRを発行する
(3)。このアドレスはプロセッサ基板PB1 上の主メ
モリM1 に割り当てられたものではないので、プロセッ
サ基板PB1 の共有管理部S1 は共有バスSBに書き戻
しWBを発行して(4)最新の値を転送すると共に、キ
ャッシュ状態タグメモリCTag1 のキャッシュ状態をM
からIに遷移する。
FIG. 39 shows the CPU of the processor board PB 1 .
(CPU 1 ) is updated in the cache memory on the processor board PB 1 and its ownership is changed to the processor board PB 1.
Address 0x transferred from 0 to processor board PB 1
The operation (1) is shown when write back (replace) is performed on 0000 1000 based on a cache collision or a cache flush instruction. Processor board PB
The cache memory C 2 of 1 reads the latest value (2), the cache memory C 2 changes the cache state from M to I, and issues the write-back WR to the internal bus B 1 (3). Since this address is not allocated to the main memory M 1 on the processor board PB 1, sharing management unit S 1 of the processor board PB 1 issues a WB write back to the shared bus SB (4) latest value And the cache state of the cache state tag memory CTag 1 is transferred to M
To I.

【0195】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の書き戻しWBを見て動作を開始する
が、プロセッサ基板PB2 とPB3 はこのキャッシュラ
インを書き戻すエントリを主メモリM2 ,M3 に持たな
いので動作を終了する(5)。プロセッサ基板PB0
このアドレスが割り当てられた主メモリM0 を持つの
で、その内部バスB0 に書き戻しWRを発行し(5)、
主記憶タグメモリMTag0 の共有状態をAからGに遷移
して、所有権を取り戻したことを示す。共有バスSBを
介して転送された最新の値が主メモリM0 に書き戻され
る(6)。
Processor boards PB 0 and PB 2 to PB 3
Starts its operation by looking at the write-back WB on the shared bus SB, but the processor boards PB 2 and PB 3 do not have an entry to write-back this cache line in the main memories M 2 and M 3 , so the operation ends ( 5). Since the processor board PB 0 has the main memory M 0 to which this address is assigned, the write back WR is issued to its internal bus B 0 (5),
This indicates that the shared state of the main memory tag memory MTag 0 is transited from A to G and the ownership is regained. The latest value transferred via the shared bus SB is written back to the main memory M 0 (6).

【0196】図40は、プロセッサ基板PB0 のCPU
(CPU0 )がその主メモリM0 に割り当てられたアド
レス0x0000 1000 に読み出しを行った(1)ときの動作
を示している。プロセッサ基板PB0 のキャッシュメモ
リC0 は読み出しミスを起こし(2)、内部バスB0
共有読み出しCRを発行する(3)。主記憶タグメモリ
MTag0 の共有状態がPで(4)、完全に排他なprivat
e 状態であることを示している(5)ので共有バスSB
にアクセスすることなく、主メモリM0 に直接アクセス
を行い、このアドレスのデータを読み出し(4)、これ
をキャッシュメモリC0 にキャッシュする(5)。この
キャッシュC0 からCPU0 がこのキャッシュラインを
読み出す。
FIG. 40 shows the CPU of the processor board PB 0 .
The operation when (CPU 0 ) reads (1) to the address 0x0000 1000 assigned to the main memory M 0 is shown. Cache memory C 0 of the processor board PB 0 undergoes a read miss (2), issues a shared read CR to internal bus B 0 (3). The shared state of the main memory tag memory MTag 0 is P (4), and it is a completely exclusive privat
The shared bus SB is shown because it is in the e state (5).
Without access to perform direct access to the main memory M 0, the read data of the address (4), caches them in cache memory C 0 (5). CPU 0 reads this cache line from this cache C 0 .

【0197】これに伴い、キャッシュメモリC0 をキャ
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らEに遷移する(5)。
Along with this, the cache state of the cache state tag memory CTag 0 of the cache memory C 0 changes from I to E (5).

【0198】その後、このアドレスに対するCPU(C
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
After that, the CPU (C
Since an access from PU 0 ) makes a cache hit in the cache memory C 0 , it can be performed without issuing a command to the internal bus B 0 .

【0199】次に、本発明の第5実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
Next explained is a distributed shared memory type multiprocessor system according to the fifth embodiment of the invention.

【0200】この第5実施例は上記第1実施例の改良で
ある上記第4実施例を更に改良して、主記憶タグメモリ
27で用いる共有状態の意味を変えて他のプロセッサ基
板上のキャッシュメモリで書き変えられているか否か、
即ち他のプロセッサ基板上に所有権が存在するか否か、
のみを示す2状態にしたものである。
This fifth embodiment is an improvement of the first embodiment, and further improves the fourth embodiment to change the meaning of the shared state used in the main memory tag memory 27 to change the cache on another processor board. Whether it is rewritten in memory,
That is, whether ownership exists on another processor board,
It is a two-state display that shows only that.

【0201】このように共有状態を2状態に限定するこ
とにより、システムのコスト低減を図ることが可能とな
る。例えば主メモリ3が64メガ・バイトの場合主記憶
タグを64バイトのキャッシュライン単位に持つとする
と、共有状態が2状態ならば1ビットで表すことが可能
であるから、全体として1メガ・ビットの主記憶タグメ
モリで充分であるが、共有状態が第4実施例の様に3状
態の場合は2ビットで表さねばならず、全体として2メ
ガ・ビットの主記憶タグメモリが必要となる。この容量
は現在のSRAM1チップ分の容量に匹敵し、実現は可
能であるが、コストの増大を免れ得ない。
By limiting the shared state to two states in this way, it is possible to reduce the cost of the system. For example, if the main memory 3 is 64 megabytes and the main memory tag is provided in cache line units of 64 bytes, it can be represented by 1 bit if the shared state is 2 states, so 1 megabit as a whole. However, if the shared state is three states as in the fourth embodiment, it must be represented by 2 bits, and a total of 2 megabits of main memory tag memory is required. . This capacity is comparable to the capacity of one SRAM chip at present and can be realized, but the increase in cost cannot be avoided.

【0202】この第5実施例では主記憶タグメモリ27
は以下の2状態H,Aのいずれかを取り得る。
In this fifth embodiment, the main memory tag memory 27
Can take one of the following two states H and A.

【0203】「H]:他のプロセッサ基板のキャッシュ
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
[H]: A copy may exist in the cache of another processor board, but the ownership is owned by this processor board.

【0204】[A]:他のプロセッサ基板のキャッシュ
に所有権がある。
[A]: Ownership in the cache of another processor board.

【0205】この第5実施例においては、共有バス6か
らの介入を待つことなく所有権の所在が主記憶タグメモ
リ27の共有状態から前もって知ることが可能なため、
指定されたアドレスを割り当てられた主メモリ3を持つ
プロセッサ基板での動作を主記憶タグメモリ27の共有
状態に応じて以下の様にすることで、共有バス6上のト
ラフィックを減らすことが可能である。
In the fifth embodiment, the location of ownership can be known in advance from the shared state of the main memory tag memory 27 without waiting for intervention from the shared bus 6.
The traffic on the shared bus 6 can be reduced by making the operation in the processor board having the main memory 3 to which the designated address is allocated according to the sharing state of the main memory tag memory 27. is there.

【0206】[H]:読み出しは内部バス5のみで行
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
[H]: Read is performed only by the internal bus 5, and write is performed by issuing the invalidation request INV to the shared bus 6.

【0207】[A]:読み出しは主メモリ3へのアクセ
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
[A]: Reading is performed by interrupting access to the main memory 3 and waiting for intervention from the shared bus 6, and writing is performed by issuing an invalidation request INV to the shared bus 6.

【0208】但し、状態Hにおいては読み出しを内部バ
ス5のみで行うため、他のプロセッサ基板のキャッシュ
にコピーが存在するか否か正確な情報が得られない。こ
のため、キャッシュのリフィル時に共有指示線を駆動し
て共有状態にあるものとしてキャッシュメモリに供給す
る必要がある。
However, in the state H, since reading is performed only by the internal bus 5, it is impossible to obtain accurate information as to whether or not a copy exists in the cache of another processor board. Therefore, when the cache is refilled, it is necessary to drive the sharing instruction line and supply it to the cache memory as a shared state.

【0209】又、共有バス6上に自分の主メモリ3に割
り当てられたアドレスに対するアクセス要求があって
も、主記憶タグメモリ27の共有状態がAであれば他の
プロセッサ基板が介入を行うもので、主メモリ3へのア
クセスは不要であり内部バス5を一斉使わずに済むの
で、この内部バス5のトラフィックも削減出来る。
Even if there is an access request for the address assigned to its own main memory 3 on the shared bus 6, if the shared state of the main memory tag memory 27 is A, another processor board will intervene. Since access to the main memory 3 is unnecessary and the internal bus 5 is not used all at once, the traffic on the internal bus 5 can be reduced.

【0210】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図41にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図42にまとめたものとなる。
Therefore, the state transition of the cache state tag memory 24 of the shared management unit 4 is summarized in FIG. 41 instead of the one summarized in FIG. 7 when accessing the main memory on its own processor board. Therefore, when accessing the main memory on another processor board, the one summarized in FIG. 42 is replaced with the one summarized in FIG.

【0211】図43はプロセッサ基板PB0 のCPU
(CPU0 )が、その主メモリM0 に割り当てられたア
ドレス0x0000 1000 に読み出しを行った(1)ときの動
作を示している。プロセッサ基板PB0 のキャッシュメ
モリC0 は読み出しミスを起こし(2)、内部バスB0
に共有読み出しCRを発行し(3)、主メモリM0 にア
クセスする(4)。主記憶タグメモリMTag0 の共有状
態がHで(4)、他のプロセッサ基板に所有権が不在で
あることを示している(5)ので、共有バスSBにアク
セスすることなく、主メモリM0 に直接アクセスを行
い、このアドレスのデータを読み出し(4)、これをキ
ャッシュメモリC0 にキャッシュする(5)。このキャ
ッシュC0 からCPU0 がこのキャッシュラインを読み
出す。
FIG. 43 shows the CPU of the processor board PB 0 .
The operation when (CPU 0 ) reads (1) at the address 0x0000 1000 assigned to the main memory M 0 is shown. The cache memory C 0 of the processor board PB 0 causes a read miss (2), and the internal bus B 0
The shared read CR is issued to (3) and the main memory M 0 is accessed (4). Since the shared state of the main memory tag memory MTag 0 is H (4), which indicates that the ownership is absent in another processor board (5), the main memory M 0 is not accessed without accessing the shared bus SB. Is directly accessed, the data at this address is read (4), and this is cached in the cache memory C 0 (5). CPU 0 reads this cache line from this cache C 0 .

【0212】これに伴い、キャッシュメモリC0 とキャ
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らSに遷移する。
Along with this, the cache states of the cache memory C 0 and the cache state tag memory CTag 0 transit from I to S.

【0213】その後、このアドレスに対するCPU(C
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
After that, the CPU (C
Since an access from PU 0 ) makes a cache hit in the cache memory C 0 , it can be performed without issuing a command to the internal bus B 0 .

【0214】図44はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は書き込みミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
FIG. 44 shows the CPU of the processor board PB 1 .
(CPU 1 ) is the main memory M on the processor board PB 0
It shows the operation when writing (1) to the address 0x0000 1000 stored in 0 . The cache memory C 1 processor board PB 1 causes a write miss (2), and issues an exclusive read CRI to internal bus B 1 (3). Since this address is not allocated to the main memory M 1 on the processor board PB 1, sharing management unit S 1 of the processor board PB 1 issues an exclusive read RM to the shared bus SB (4).

【0215】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はこのキャッシ
ュラインのコピーをキャッシュメモリC2 ,C3 にも主
メモリM2 ,M3 にも持たないので、動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0
排他読み出しCRIを発行して(5)、主メモリM0
らこのキャッシュラインを読み出す(6)。
Processor boards PB 0 and PB 2 to PB 3
Starts the operation by looking at the exclusive read RM on the shared bus SB, but the processor boards PB 2 and PB 3 copy a copy of this cache line to both the cache memories C 2 and C 3 and the main memories M 2 and M 3 . Since it does not have it, the operation ends (5). Since the processor board PB 0 has the main memory M 0 to which this address is assigned, it issues an exclusive read CRI to its internal bus B 0 (5) and reads this cache line from the main memory M 0 (6).

【0216】読み出されたデータは共有バスSBを介し
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はHからAに遷
移して、他のプロセッサ基板に所有権が移転したことを
示すが、キャッシュ状態タグメモリCTag0 のキャッシ
ュ状態はIのままである。
The read data is transferred to the processor board PB 1 via the shared bus SB (7). At this point, the shared state of the main memory tag memory MTag 0 changes from H to A, indicating that ownership has been transferred to another processor board, but the cache state of the cache state tag memory CTag 0 remains I. is there.

【0217】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1のキャッシュ状態が
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1のキャッシュ状態がIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
Next, in the processor board PB 1 ,
The cache state of the cache state tag memory CTag 1 transits from I to M (8), the data transferred via the shared bus SB is cached in the cache memory C 1 (9), and the cache state of the cache memory C 1 changes. Transition from I to M (9). C for this cache C 1
The PU (CPU 1 ) writes.

【0218】図45はプロセッサ基板PB0 のCPU
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB0 のキャッシュ
メモリC0 は読み出しミスを起こし(2)、内部バスB
0 に共有読み出しCRを発行し(3)、主メモリM0
アクセスする(4)。
FIG. 45 shows the CPU of the processor board PB 0 .
(CPU 0) is being updated by the cache memory C 1 on the processor board PB 1, its ownership was read to the address 0x0000 1000 are transferred from the processor board PB 0 to the processor board PB 1 ( The operation at the time of 1) is shown. The cache memory C 0 of the processor board PB 0 causes a read miss (2), and the internal bus B
A shared read CR is issued to 0 (3), and the main memory M 0 is accessed (4).

【0219】しかし、主記憶タグメモリMTag0 の共有
状態がAで(4)、このプロセッサ基板に所有権が不在
であることを示している(5)ので、このプロセッサ基
板PB0 の共有管理部S0 が共有バスSBの介入指示線
を調べることなく主メモリM0 へのアクセスに介入して
(5)、このアクセスを中断(6)する一方、共有バス
SBに共有読み出しRSを発行する(4)。
However, since the shared state of the main memory tag memory MTag 0 is A (4), indicating that the ownership of this processor board is absent (5), the shared management section of this processor board PB 0 is shown. S 0 intervenes access to the main memory M 0 without checking the intervention instruction line of the shared bus SB (5) and interrupts this access (6), while issuing a shared read RS to the shared bus SB ( 4).

【0220】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はこのキャッシュライン
のコピーをキャッシュメモリC2 ,C3 にも主メモリM
2 ,M3 にも持たないので動作を終了する(5)。プロ
セッサ基板PB1 は、キャッシュ状態タグCTag1 が状
態Mなので、その内部バスB1 に共有読み出しCRを発
行して(5)、キャッシュメモリC1 からこのアドレス
の最新の値を読み出す(6)。この時点で、キャッシュ
メモリC1 のキャッシュ状態がMからOに遷移し
(6)、キャッシュ状態タグメモリCTag1 のキャッシ
ュ状態もMからOに遷移する(7)。読み出された最新
の値は共有バスSBを介してプロセッサ基板PB0 に転
送される(7)。
The processor boards PB 1 to PB 3 start the operation by seeing the shared read RS on the shared bus SB.
The processor boards PB 2 and PB 3 copy the cache line to the cache memories C 2 and C 3 as well as the main memory M.
The operation is terminated because it does not have it in 2 or M 3 (5). Since the cache status tag CTag 1 is in the state M, the processor board PB 1 issues a shared read CR to its internal bus B 1 (5) and reads the latest value of this address from the cache memory C 1 (6). At this point, the cache state of the cache memory C 1 changes from M to O (6), and the cache state of the cache state tag memory CTag 1 also changes from M to O (7). The latest read value is transferred to the processor board PB 0 via the shared bus SB (7).

【0221】次に、プロセッサ基板PB0 においては、
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからSに遷移する(8)が、主記憶タグメモリMTag
0 の共有状態はAのままで、このプロセッサ基板に所有
権が不在であることを示す。
Next, in the processor board PB 0 ,
The cache state of the cache state tag memory CTag 0 transits from I to S (8), but the main memory tag memory MTag
The shared state of 0 remains A, indicating that the processor board has no ownership.

【0222】共有バスSBを介して転送されたデータが
キャッシュメモリC0 にキャッシュされて(9)、キャ
ッシュメモリC0 のキャッシュ状態がIからSに遷移す
る(9)。このキャッシュC0 からCPU(CPU0
に最新の値が読み出される。
The data transferred via the shared bus SB is cached in the cache memory C 0 (9), and the cache state of the cache memory C 0 transits from I to S (9). From this cache C 0 to CPU (CPU 0 )
The latest value is read.

【0223】図46はプロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスに共有読み出しRSを発行する
(4)。
FIG. 46 shows the CPU of the processor board PB 2 .
(CPU 2) is updated in the cache memory C 1 on the processor board PB 1, its ownership was read to the address 0x0000 1000 are transferred from the processor board PB 0 to the processor board PB 1 ( The operation at the time of 1) is shown. The cache memory C 2 of the processor board PB 2 causes a read miss (2), and the internal bus B
A shared read CR is issued to 2 (3). Since this address is not allocated to the main memory M 2 on the processor board PB 2, sharing management unit S 2 of the processor board PB 2 issues a shared read RS to the shared bus (4).

【0224】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了し(5)、プロセッサ基板PB
0 は主記憶タグメモリMTag0 が状態Aであるので動作
を終了する(5)。ここで、プロセッサ基板PB0 はこ
のアドレスが割り当てあられた主メモリM0 を持つが、
主記憶タグメモリMTag0 が状態Aで所有権の不在を示
していることから内部バスB0 には一斉コマンドを発行
しない。
Processor boards PB 0 to PB 1 and PB 3
Starts the operation by seeing the shared read RS on the shared bus SB, but the processor substrate PB 3 has neither a copy of this cache line in the cache memory C 3 nor in the main memory M 3 , so the operation is terminated (5 ), Processor board PB
For 0, since the main memory tag memory MTag 0 is in state A, the operation ends (5). Here, the processor board PB 0 has a main memory M 0 to which this address is assigned,
Since the main memory tag memory MTag 0 indicates the absence of ownership in the state A, no simultaneous command is issued to the internal bus B 0 .

【0225】一方、プロセッサ基板PB1 はキャッシュ
状態タグCTag1 が状態Mなので、その内部バスB1
共有読み出しCRを発行して(5)、キャッシュメモリ
1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 のキャッシュ状態がM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 のキャッシュ状態もMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
On the other hand, since the cache state tag CTag 1 of the processor board PB 1 is in the state M, the shared read CR is issued to its internal bus B 1 (5) to read the latest value of this address from the cache memory C 1. (6). At this point, the cache state of the cache memory C 1 is M
To O (6), cache state tag memory CT
The cache state of ag 1 also transits from M to O (7). The latest read value is transferred to the processor board PB 2 via the shared bus SB (7).

【0226】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2のキャッシュ状態が
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされて
(9)、キャッシュメモリC2 のキャッシュ状態がIか
らSに遷移する(9)。このキャッシュC2 からCPU
(CPU2 )に最新の値が読み出される。
Next, in the processor board PB 2 ,
The cache state of the cache state tag memory CTag 2 transits from I to S (8), the data transferred via the shared bus SB is cached in the cache memory C 2 (9), and the cache state of the cache memory C 2 Changes from I to S (9). This cache C 2 to CPU
The latest value is read out to (CPU 2 ).

【0227】[0227]

【発明の効果】以上のように本発明によれば、同一基板
上のメモリに対する非共有変数のアクセスを、共有バス
を用いることなくかつ一貫性を保証しながら実現するこ
とができる。この同一基板上のメモリに対する非共有変
数のアクセスは、通常メモリアクセスの大部分を占めて
いるため、CPUの実行動作性能の低下を防ぎ、また、
共有バス上の不必要なトラフィックを削減できるのでよ
り多くのプロセッサ基板をバス上に接続することが可能
となる。結果として並列プログラムに共有変数アクセス
に対する制約を加えることなく、高いシステム拡張性を
持つマルチプロセッサシステムを実現できるという多大
な効果を奏する。
As described above, according to the present invention, access to a non-shared variable to a memory on the same substrate can be realized without using a shared bus and while ensuring consistency. The non-shared variable access to the memory on the same board usually occupies most of the memory access, so that the deterioration of the execution operation performance of the CPU is prevented, and
Since unnecessary traffic on the shared bus can be reduced, more processor boards can be connected on the bus. As a result, there is a great effect that a multiprocessor system having high system expandability can be realized without imposing restrictions on shared variable access to parallel programs.

【図面の簡単な説明】[Brief description of drawings]

【図1】従来の共有メモリ型マルチプロセッサシステム
の概略ブロック図。
FIG. 1 is a schematic block diagram of a conventional shared memory type multiprocessor system.

【図2】従来の分散共有メモリ型マルチプロセッサシス
テムの概略ブロック図。
FIG. 2 is a schematic block diagram of a conventional distributed shared memory type multiprocessor system.

【図3】本発明の第1実施例の分散共有メモリ型マルチ
プロセッサシステムの概略ブロック図。
FIG. 3 is a schematic block diagram of a distributed shared memory type multiprocessor system according to the first embodiment of the present invention.

【図4】本発明の第1実施例におけるキャッシュメモリ
2の詳細ブロック図。
FIG. 4 is a detailed block diagram of the cache memory 2 according to the first embodiment of the present invention.

【図5】本発明の第1実施例における共有管理部4の詳
細ブロック図。
FIG. 5 is a detailed block diagram of the sharing management unit 4 in the first embodiment of the present invention.

【図6】本発明の第1実施例における状態タグ部12の
状態とCPUからの命令及び内部バスからのコマンドに
対する発行コマンド/状態遷移をまとめた表を示す図。
FIG. 6 is a diagram showing a table summarizing the states of the state tag unit 12 in the first embodiment of the present invention and the issued commands / state transitions with respect to commands from the CPU and commands from the internal bus.

【図7】本発明の第1実施例におけるキャッシュ状態タ
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、自分の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
FIG. 7 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for the commands from the internal bus and the shared bus in the first embodiment of the present invention for the case of access to the main memory on the own board. The figure which shows a table.

【図8】本発明の第1実施例におけるキャッシュ状態タ
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、他の基板上の
主メモリに対するアクセスの場合についてまとめた表を
示す図。
FIG. 8 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for the commands from the internal bus and the shared bus in the first embodiment of the present invention for the case of accessing the main memory on another board. The figure which shows a table.

【図9】本発明の第1実施例におけるCPUの読み出し
命令に対するキャッシュ制御部及び共有管理部の動作を
示すフローチャートの前半。
FIG. 9 is the first half of a flowchart showing the operations of the cache control unit and the sharing management unit in response to the read instruction of the CPU in the first embodiment of the present invention.

【図10】本発明の第1実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
FIG. 10 is the latter half of the flowchart showing the operations of the cache control unit and the sharing management unit in response to the read instruction of the CPU in the first embodiment of the present invention.

【図11】本発明の第1実施例におけるCPUの書き込
み命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャート。
FIG. 11 is a flowchart showing the operations of the cache control unit and the sharing management unit in response to a CPU write command in the first embodiment of the present invention.

【図12】本発明の第1実施例における共有読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
FIG. 12 is a flowchart showing the operation of the shared management unit and cache control unit for shared read in the first embodiment of the present invention.

【図13】本発明の第1実施例における排他読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
FIG. 13 is a flowchart showing the operation of the shared management unit and cache control unit for exclusive reading in the first embodiment of the present invention.

【図14】本発明の第1実施例における無効化要求に対
する共有管理部及びキャッシュ制御部の動作を示すフロ
ーチャート。
FIG. 14 is a flowchart showing the operations of the sharing management unit and the cache control unit in response to an invalidation request according to the first embodiment of this invention.

【図15】本発明の分散共有メモリ型マルチプロセッサ
システムの構成例を示す図。
FIG. 15 is a diagram showing a configuration example of a distributed shared memory type multiprocessor system of the present invention.

【図16】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 16 is a specific operation example of the first embodiment of the present invention.
The figure shown in the structural example.

【図17】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 17 is a specific operation example of the first embodiment of the present invention.
The figure shown in the structural example.

【図18】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 18 is a concrete operation example of the first embodiment of the present invention;
The figure shown in the structural example.

【図19】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 19 is a specific operation example of the first embodiment of the present invention.
The figure shown in the structural example.

【図20】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 20 is a specific operation example of the first embodiment of the present invention.
The figure shown in the structural example.

【図21】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 21 is a specific operation example of the first embodiment of the present invention;
The figure shown in the structural example.

【図22】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
FIG. 22 is a specific operation example of the first embodiment of the present invention;
The figure shown in the structural example.

【図23】本発明の第2実施例における状態タグ部12
の状態とCPUからの命令及び内部バスからのコマンド
に対する発行コマンド/状態遷移をまとめた表を示す
図。
FIG. 23 is a state tag section 12 in the second embodiment of the present invention.
FIG. 6 is a diagram showing a table summarizing the state of the command and the issued command / state transition for the command from the CPU and the command from the internal bus.

【図24】本発明の第2実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
FIG. 24 summarizes the state of the cache state tag memory 24 and the issue command / state transition for the command from the internal bus and the shared bus in the second embodiment of the present invention for the case of accessing the main memory on the own board. The figure which shows a table.

【図25】本発明の第2実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
FIG. 25 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for commands from the internal bus and the shared bus in the second embodiment of the present invention for the case of access to the main memory on another board. The figure which shows a table.

【図26】本発明の第2実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの前半。
FIG. 26 is the first half of a flowchart showing the operations of the cache control unit and the sharing management unit in response to a CPU read instruction in the second embodiment of the present invention.

【図27】本発明の第2実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
FIG. 27 is the latter half of the flowchart showing the operations of the cache control unit and the sharing management unit in response to the read instruction of the CPU according to the second embodiment of the present invention.

【図28】本発明の第2実施例における共有読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
FIG. 28 is a flowchart showing the operations of the sharing management unit and cache control unit for shared reading in the second embodiment of the present invention.

【図29】本発明の第2実施例の具体的動作例を図15
の構成例において示す図。
FIG. 29 is a diagram showing a specific operation example of the second embodiment of the present invention.
The figure shown in the structural example.

【図30】本発明の第3実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
FIG. 30 summarizes the state of the cache state tag memory 24 and the issue command / state transition for the command from the internal bus and the shared bus in the third embodiment of the present invention for the case of access to the main memory on the own board. The figure which shows a table.

【図31】本発明の第3実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
FIG. 31 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for the commands from the internal bus and the shared bus in the third embodiment of the present invention for the case of accessing the main memory on another board. The figure which shows a table.

【図32】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
FIG. 32 is a specific operation example of the third embodiment of the present invention.
The figure shown in the structural example.

【図33】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
FIG. 33 shows a concrete operation example of the third embodiment of the present invention.
The figure shown in the structural example.

【図34】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
FIG. 34 shows a specific operation example of the third embodiment of the present invention.
The figure shown in the structural example.

【図35】本発明の第4実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
FIG. 35 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for commands from the internal bus and the shared bus in the fourth embodiment of the present invention for the case of access to the main memory on the own board. The figure which shows a table.

【図36】本発明の第4実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
FIG. 36 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for the commands from the internal bus and the shared bus in the fourth embodiment of the present invention for the case of accessing the main memory on another board. The figure which shows a table.

【図37】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
FIG. 37 is a diagram showing a specific operation example of the fourth embodiment of the present invention.
The figure shown in the structural example.

【図38】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
FIG. 38 is a specific operation example of the fourth embodiment of the present invention.
The figure shown in the structural example.

【図39】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
FIG. 39 is a specific operation example of the fourth embodiment of the present invention.
The figure shown in the structural example.

【図40】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
FIG. 40 is a specific operation example of the fourth embodiment of the present invention.
The figure shown in the structural example.

【図41】本発明の第5実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
FIG. 41 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for commands from the internal bus and the shared bus in the fifth embodiment of the present invention for the case of access to the main memory on the own board. The figure which shows a table.

【図42】本発明の第5実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
FIG. 42 summarizes the states of the cache state tag memory 24 and the issued commands / state transitions for the commands from the internal bus and the shared bus in the fifth embodiment of the present invention for the case of accessing the main memory on another board. The figure which shows a table.

【図43】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
FIG. 43 is a specific operation example of the fifth embodiment of the present invention.
The figure shown in the structural example.

【図44】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
FIG. 44 is a specific operation example of the fifth embodiment of the present invention.
The figure shown in the structural example.

【図45】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
FIG. 45 is a specific operation example of the fifth embodiment of the present invention.
The figure shown in the structural example.

【図46】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
FIG. 46 is a specific operation example of the fifth embodiment of the present invention;
The figure shown in the structural example.

【符号の説明】[Explanation of symbols]

1 CPU 2 キャッシュメモリ 3 主記憶 4 共有管理部 5 内部バス 6 共有バス 11 アドレスタグ部 12 状態タグ部 13 データ記憶部 14 比較器 15 有効/無効判断部 16 hit/miss信号算出部 17 キャッシュ制御部 18 共有指示線 19 コマンド線 20 アドレス線 21 介入指示線 22 データ線 23 キャッシュアドレスタグメモリ 24 キャッシュ状態タグメモリ 25 キャッシュ状態タグメモリ制御部 26 主記憶タグメモリ制御部 27 主記憶タグメモリ 28 外部アクセス制御部 29 内部アクセス制御部 1 CPU 2 cache memory 3 main memory 4 shared management unit 5 internal bus 6 shared bus 11 address tag unit 12 status tag unit 13 data storage unit 14 comparator 15 valid / invalid determination unit 16 hit / miss signal calculation unit 17 cache control unit 18 shared instruction line 19 command line 20 address line 21 intervention instruction line 22 data line 23 cache address tag memory 24 cache state tag memory 25 cache state tag memory control unit 26 main memory tag memory control unit 27 main memory tag memory 28 external access control Unit 29 Internal access control unit

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリが他のプロセッサ・ユニット上のCPUキャッシ
ュメモリに共有されているか否かを示す主メモリの各デ
ータ・エントリの共有状態を記憶する主記憶タグ手段
と、 CPUによる主メモリの或るデータ・エントリに対する
書き込み命令の実行に対して、主記憶タグ手段の該或る
データ・エントリの共有状態が該或るデータ・エントリ
は他のプロセッサ・ユニット上のCPUキャッシュメモ
リに共有されていることを示している時に、該他のプロ
セッサ・ユニット上のCPUキャッシュメモリの該或る
データ・エントリを無効化するように該他のプロセッサ
・ユニットに命令する無効化命令を共有バス上に発行す
る命令手段と、 CPUキャッシュメモリに記憶された選択されたデータ
・エントリのアドレスを記憶するキャッシュ・タグ手段
と、 某データ・エントリに対する無効化命令を共有バスから
受け取り該某データ・エントリのアドレスがキャッシュ
・タグ手段に記憶されている時に、CPUキャッシュメ
モリの該某データ・エントリを無効化する制御手段と、
を含むものと、から成るシステム。
1. A distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, each processor unit being connected to a CPU and a CPU via an internal bus. , A main memory that stores a distributed portion of the system's shared memory, a CPU cache memory that is connected to the main memory via an internal bus, and caches selected data entries in the shared memory, and an internal bus In the shared management unit that is connected to the main memory and the CPU cache memory and interfaces the internal bus and the shared bus, each data entry of the main memory on each processor unit is stored in the CPU cache memory on another processor unit. Stores the shared state of each data entry in main memory indicating whether it is shared In response to the execution of a write instruction to a certain data entry of the main memory by the main memory tag means and the CPU, the sharing state of the certain data entry of the main memory tag means is that the certain data entry is another processor. The other processor unit to invalidate the certain data entry of the CPU cache memory on the other processor unit when indicating that it is being shared by the CPU cache memory on the unit. Instruction means for issuing an invalidating instruction to be issued on a shared bus, cache tag means for storing the address of a selected data entry stored in the CPU cache memory, and an invalidating instruction for a certain data entry are shared The address of the certain data entry received from the bus is stored in the cache tag means. To, and control means for invalidating 該某 data entry CPU cache memory,
A system consisting of and including.
【請求項2】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの或るデータ・エントリに対するアクセス要求に対
して、キャッシュ状態タグ手段の該或るデータ・エント
リのキャッシュ状態が該或るデータ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該或るデータ・エントリへのアクセスに介入する
介入手段と、 介入手段が該別のプロセッサ上の主メモリの該或るデー
タ・エントリへのアクセスに介入した時に、キャッシュ
状態タグ手段の該或るデータ・エントリのキャッシュ状
態を、該或るデータ・エントリの所有権を持った一キャ
ッシュ状態から該或るデータ・エントリの所有権を持た
ない他のキャッシュ状態に状態遷移させ、該各プロセッ
サ・ユニットからの某データ・エントリへのアクセスが
他のプロセッサ・ユニットの介入手段により介入された
時に、キャッシュ状態タグ手段の該某データ・エントリ
のキャッシュ状態を、該某データ・エントリの所有権を
持たない一キャッシュ状態から該某データ・エントリの
所有権を持った他のキャッシュ状態に状態遷移させるよ
うに制御する制御手段と、を含むものと、から成るシス
テム。
2. A distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, each processor unit being connected to a CPU and a CPU via an internal bus. , A main memory that stores a distributed portion of the system's shared memory, a CPU cache memory that is connected to the main memory via an internal bus, and caches selected data entries in the shared memory, and an internal bus A shared management unit that is connected to the main memory and the CPU cache memory and interfaces the internal bus and the shared bus. Each data entry of the CPU cache memory is updated in the CPU cache memory on each processor unit and Each of the CPU cache memory indicating whether it has not been written back Cache state tag means for storing the cache state of the data entry, and the cache state tag means for receiving an access request for a data entry from another processor unit received via the shared bus. On another processor unit when the cache state of the data entry indicates that the one data entry has been updated in the CPU cache memory on each processor unit and not written back to shared memory. Means for intervening in the access to the certain data entry of the main memory of the cache memory and the cache state tag means when the intervention means intervenes in the access to the certain data entry of the main memory on the other processor. The cache state of the certain data entry to the ownership of the certain data entry. State transition from one cache state with a certain data entry to another cache state that does not have ownership of the certain data entry, and access to the certain data entry from each processor unit is intervened by another processor unit. When intervened by the means, the cache state of the certain data entry of the cache state tag means is changed from one cache state that does not have ownership of the certain data entry to another that has ownership of the certain data entry. And a control means for controlling the state transition to the cache state.
【請求項3】 共有バスを介して結合された複数のプロ
セッサ・ユニットからなる分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリが他のプロセッサ・ユニット上のCPUキャッシ
ュメモリに共有されているか否かを示す主メモリの各デ
ータ・エントリの共有状態を記憶する主記憶タグ手段
と、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 CPUによる主メモリの或るデータ・エントリに対する
読み出し/書き込み命令の実行に対して、主記憶タグ手
段の該或るデータ・エントリの共有状態が該或るデータ
・エントリは他のプロセッサ・ユニット上のCPUキャ
ッシュメモリに共有されていることを示している時に、
該他のプロセッサ・ユニット上のCPUキャッシュメモ
リの該或るデータ・エントリを共有バス上に読み出すよ
うに該他のプロセッサ・ユニットに命令する読み出し命
令を共有バス上に発行する命令手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの読み出し命令に対して、キャッシュ状態タグ手段
の某データ・エントリのキャッシュ状態が該某データ・
エントリは該各プロセッサ・ユニット上のCPUキャッ
シュメモリにおいて更新され且つ共有メモリに書き戻さ
れていないことを示している時に、該別のプロセッサ・
ユニット上の主メモリの該某データ・エントリへのアク
セスに介入する介入手段と、を含むものと、から成るシ
ステム。
3. A distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, each processor unit being connected to a CPU and a CPU via an internal bus. , A main memory that stores a distributed portion of the system's shared memory, a CPU cache memory that is connected to the main memory via an internal bus, and caches selected data entries in the shared memory, and an internal bus In the shared management unit that is connected to the main memory and the CPU cache memory and interfaces the internal bus and the shared bus, each data entry of the main memory on each processor unit is stored in the CPU cache memory on another processor unit Stores the shared state of each data entry in main memory indicating whether it is shared Main memory tag means and each data entry of the CPU cache memory indicating whether each data entry of the CPU cache memory has been updated in the CPU cache memory on each processor unit and has not been written back to the shared memory Cache state tag means for storing the cache state of the main memory tag, and the shared state of the certain data entry of the main memory tag means for execution of a read / write instruction to a certain data entry of the main memory by the CPU. Data entry indicating that it is shared with the CPU cache memory on another processor unit,
Command means for issuing a read command on the shared bus for instructing the other processor unit to read the certain data entry of the CPU cache memory on the other processor unit, and the shared bus In response to a read command from another processor unit received via the cache state tag means, the cache state of a certain data entry is
When an entry indicates that it has been updated in the CPU cache memory on each processor unit and has not been written back to shared memory, the other processor
Means for intervening in accessing the certain data entry in main memory on the unit.
【請求項4】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの或るデータ・エントリに対するアクセス要求に対
して、キャッシュ状態タグ手段の該或るデータ・エント
リのキャッシュ状態が該或るデータ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該或るデータ・エントリへのアクセスに介入する
介入手段と、を含むものと、から成るシステム。
4. A distributed shared memory multiprocessor system comprising a plurality of processor units coupled via a shared bus, each processor unit being connected to a CPU and a CPU via an internal bus. , A main memory that stores a distributed portion of the system's shared memory, a CPU cache memory that is connected to the main memory via an internal bus, and caches selected data entries in the shared memory, and an internal bus A shared management unit that is connected to the main memory and the CPU cache memory and interfaces the internal bus and the shared bus. Each data entry of the CPU cache memory is updated in the CPU cache memory on each processor unit and Each of the CPU cache memory indicating whether it has not been written back Cache state tag means for storing the cache state of the data entry, and the cache state tag means for receiving an access request for a data entry from another processor unit received via the shared bus. On another processor unit when the cache state of the data entry indicates that the one data entry has been updated in the CPU cache memory on each processor unit and not written back to shared memory. Means for intervening in accessing the certain data entry of the main memory of the.
【請求項5】 請求項4記載のシステムにおいて、共有
管理部が更に、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリの共有状態を記憶する主記憶タグ手段で、共有状
態は該各データ・エントリの所有権が該各プロセッサ・
ユニット上に存在することを示す[H]状態と、該各デ
ータ・エントリの所有権が他のプロセッサ・ユニット上
に存在することを示す[A]状態とを含むものと、 CPUによる主メモリの某データ・エントリに対するア
クセス要求に対して、主記憶タグ手段の該某データ・エ
ントリの共有状態が[A]状態である時に、該他のプロ
セッサ・ユニット上のCPUキャッシュメモリの該某デ
ータ・エントリを共有バス上に読み出すように該他のプ
ロセッサ・ユニットに命令する読み出し命令を共有バス
上に発行する命令手段と、を含むシステム。
5. The system according to claim 4, wherein the sharing management unit is further a main memory tag means for storing a sharing state of each data entry of the main memory on each processor unit, and the sharing state is each Ownership of the data entry is assigned to each processor
Including the [H] state indicating that the data entry exists on the unit and the [A] state indicating that the ownership of each data entry exists on another processor unit; In response to an access request for a certain data entry, when the shared state of the certain data entry of the main memory tag means is the [A] state, the certain data entry of the CPU cache memory on the other processor unit. And a command means for issuing a read command on the shared bus to instruct the other processor unit to read the data on the shared bus.
JP5199772A 1992-08-11 1993-08-11 Decentralized shared memory type multiprocessor system Pending JPH06110844A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5199772A JPH06110844A (en) 1992-08-11 1993-08-11 Decentralized shared memory type multiprocessor system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-213133 1992-08-11
JP21313392 1992-08-11
JP5199772A JPH06110844A (en) 1992-08-11 1993-08-11 Decentralized shared memory type multiprocessor system

Publications (1)

Publication Number Publication Date
JPH06110844A true JPH06110844A (en) 1994-04-22

Family

ID=26511742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5199772A Pending JPH06110844A (en) 1992-08-11 1993-08-11 Decentralized shared memory type multiprocessor system

Country Status (1)

Country Link
JP (1) JPH06110844A (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086856A (en) * 1994-06-15 1996-01-12 Nec Corp Bus interface adapter
JPH08185359A (en) * 1994-10-31 1996-07-16 Toshiba Corp Memory subsystem
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
US6173370B1 (en) 1997-06-19 2001-01-09 Nec Corporation Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction
US6192451B1 (en) 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
JP2002533813A (en) * 1998-12-21 2002-10-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Saving system memory bandwidth and maintaining cache coherency using memory cancel messages
JP2005148771A (en) * 2002-06-28 2005-06-09 Sun Microsyst Inc Mechanism for maintaining cache consistency in computer system
JP2006085292A (en) * 2004-09-14 2006-03-30 Matsushita Electric Ind Co Ltd Processor
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
WO2007096979A1 (en) * 2006-02-24 2007-08-30 Fujitsu Limited Information processor and data transfer method
JP2007272922A (en) * 2001-06-04 2007-10-18 Fujitsu Ltd Communication method, interconnection port and interconnection system between multiple nodes
WO2010038301A1 (en) * 2008-10-02 2010-04-08 富士通株式会社 Memory access method and information processing apparatus
US7904665B2 (en) 2006-01-26 2011-03-08 Nec Computer Techno, Ltd. Multiprocessor system and its operational method
US8032717B2 (en) 2005-01-24 2011-10-04 Fujitsu Limited Memory control apparatus and method using retention tags
US10747699B2 (en) 2016-08-31 2020-08-18 Socionext Inc Bus control circuit, semiconductor integrated circuit, circuit board, information processing device and bus control method
JP2023145337A (en) * 2022-03-28 2023-10-11 ウーブン・バイ・トヨタ株式会社 Cache coherency protocol for encoding cache line by domain sharing state

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086856A (en) * 1994-06-15 1996-01-12 Nec Corp Bus interface adapter
JPH08185359A (en) * 1994-10-31 1996-07-16 Toshiba Corp Memory subsystem
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor
US6173370B1 (en) 1997-06-19 2001-01-09 Nec Corporation Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6192451B1 (en) 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
JP2002533813A (en) * 1998-12-21 2002-10-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Saving system memory bandwidth and maintaining cache coherency using memory cancel messages
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JP2007272922A (en) * 2001-06-04 2007-10-18 Fujitsu Ltd Communication method, interconnection port and interconnection system between multiple nodes
JP2005148771A (en) * 2002-06-28 2005-06-09 Sun Microsyst Inc Mechanism for maintaining cache consistency in computer system
JP2006085292A (en) * 2004-09-14 2006-03-30 Matsushita Electric Ind Co Ltd Processor
US8032717B2 (en) 2005-01-24 2011-10-04 Fujitsu Limited Memory control apparatus and method using retention tags
US7904665B2 (en) 2006-01-26 2011-03-08 Nec Computer Techno, Ltd. Multiprocessor system and its operational method
WO2007096979A1 (en) * 2006-02-24 2007-08-30 Fujitsu Limited Information processor and data transfer method
JPWO2007096979A1 (en) * 2006-02-24 2009-07-09 富士通株式会社 Information processing apparatus and data transfer method
US8176261B2 (en) 2006-02-24 2012-05-08 Fujitsu Limited Information processing apparatus and data transfer method
WO2010038301A1 (en) * 2008-10-02 2010-04-08 富士通株式会社 Memory access method and information processing apparatus
JPWO2010038301A1 (en) * 2008-10-02 2012-02-23 富士通株式会社 Memory access method and information processing apparatus
US10747699B2 (en) 2016-08-31 2020-08-18 Socionext Inc Bus control circuit, semiconductor integrated circuit, circuit board, information processing device and bus control method
JP2023145337A (en) * 2022-03-28 2023-10-11 ウーブン・バイ・トヨタ株式会社 Cache coherency protocol for encoding cache line by domain sharing state
US11954034B2 (en) 2022-03-28 2024-04-09 Woven By Toyota, Inc. Cache coherency protocol for encoding a cache line with a domain shared state

Similar Documents

Publication Publication Date Title
US5522058A (en) Distributed shared-memory multiprocessor system with reduced traffic on shared bus
JPH06110844A (en) Decentralized shared memory type multiprocessor system
US6704843B1 (en) Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6343347B1 (en) Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6601144B1 (en) Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US7698508B2 (en) System and method for reducing unnecessary cache operations
KR100274771B1 (en) Method of shared intervention for cache lines in the shared state for smp bus
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US5946709A (en) Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US5940864A (en) Shared memory-access priorization method for multiprocessors using caches and snoop responses
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6185658B1 (en) Cache with enhanced victim selection using the coherency states of cache lines
JP2000250812A (en) Memory cache system and managing method therefor
JPH11506852A (en) Reduction of cache snooping overhead in a multi-level cache system having a large number of bus masters and a shared level 2 cache
JPH10154100A (en) Information processing system, device and its controlling method
US6763433B1 (en) High performance cache intervention mechanism for symmetric multiprocessor systems
US6721856B1 (en) Enhanced cache management mechanism via an intelligent system bus monitor
US5987544A (en) System interface protocol with optional module cache
US7165146B2 (en) Multiprocessing computer system employing capacity prefetching