JPH0816475A - Multiprocessor system - Google Patents

Multiprocessor system

Info

Publication number
JPH0816475A
JPH0816475A JP6148399A JP14839994A JPH0816475A JP H0816475 A JPH0816475 A JP H0816475A JP 6148399 A JP6148399 A JP 6148399A JP 14839994 A JP14839994 A JP 14839994A JP H0816475 A JPH0816475 A JP H0816475A
Authority
JP
Japan
Prior art keywords
bus
memory
instruction
invalidation
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6148399A
Other languages
Japanese (ja)
Inventor
Takashi Omizo
孝 大溝
Hiroo Hayashi
宏雄 林
Shigeaki Iwasa
繁明 岩佐
Osamu Wakamori
修 若森
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 JP6148399A priority Critical patent/JPH0816475A/en
Publication of JPH0816475A publication Critical patent/JPH0816475A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To reduce the hardware quantity of a cache memory, to lower the price of the system, and to speed up the operation by making a request snoop on a common bus by using cache tag information that a bus bridge has. CONSTITUTION:A CPU 101 sends a common read(CR) request having the address of a local memory 105 to a cache memory 103 and if a cache mishit is made, a CR request is sent from the cache memory 103 to a local common bus 106. The bus bridge 107 retrieves bus tag information 113 corresponding to the CPU 102 by a tag snooping means 111 and outputs a snoop request signal 117 for a connection with the CPU 102 and a memory inhibition signal 118 for a connection with the local memory 105 according to the retrieval result, thereby holding consistency. Consequently, tag duplication on the cache memory side can be eliminated, the hardware quantity of the cache memory is reduced, and the hardware is simplified.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は共有バスを用いてデータ
の一貫性を保持するマルチプロセッサシステムに関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system that uses a shared bus to maintain data consistency.

【0002】[0002]

【従来の技術】バススヌープによってデータの一貫性を
保証するマルチプロセッサシステムは良く知られてい
る。そのような方法を用いたシステムにおいてはバスに
リクエストが発行された時点でバスに接続されているキ
ャッシュメモリは各々のタグ情報を検査し、もしそのリ
クエストに対する最新のデータを有していればメモリか
らのデータ読み出しを抑止するためにメモリ抑止信号を
アサートする。これにより常に最新のデータが返される
ことを保証している。このような技術を使用しているバ
スとしては SPARC MBus 等が挙げられる。SPARC MBus
の詳細については文献 SPARC MBus Interface Specific
ation 、SPARC International に述べられている。
2. Description of the Related Art Multiprocessor systems that ensure data consistency by bus snooping are well known. In a system using such a method, the cache memory connected to the bus at the time when a request is issued to the bus inspects each tag information, and if it has the latest data for the request, the memory Assert the memory inhibit signal to inhibit the reading of data from. This guarantees that the latest data is always returned. Examples of buses that use such technology include the SPARC MBus. SPARC MBus
For details of the document SPARC MBus Interface Specific
ation, SPARC International.

【0003】図6にこれを用いた分散共有メモリマルチ
プロセッサシステムの構成例を示す。ローカル共有バス
に対してキャッシュメモリがコヒーレントリード(CR)リ
クエストを発行した場合、キャッシュメモリはそのリク
エストに対する最新のデータを有しているか否かを調べ
るためにデュプリケートされたタグ情報を検索する。そ
の結果最新のデータを有する場合はメモリインヒビット
信号(MIH) をアサートし、メモリの動作を抑止して最新
のデータを供給することで一貫性を保つ。
FIG. 6 shows an example of the configuration of a distributed shared memory multiprocessor system using this. When the cache memory issues a coherent read (CR) request to the local shared bus, the cache memory searches the duplicated tag information to see if it has the latest data for the request. As a result, if it has the latest data, the memory inhibit signal (MIH) is asserted, the operation of the memory is suppressed, and the latest data is supplied to maintain consistency.

【0004】もしこの検索がメモリのデータ読み出しよ
りも速い間は問題無いが、遅い場合はメモリからの読み
出しを待たせなければならず性能の低下を招くため通常
キャッシュメモリは前記のように共有バスからのスヌー
プのためにデュプリケートされたタグを有しているが、
そのためにハードウェア量と複雑度が増加することにな
るという問題点があった。
If this search is faster than the data read from the memory, there is no problem, but if it is slow, it is necessary to wait for the read from the memory, which causes a drop in performance. Has a duplicated tag for snoops from
Therefore, there has been a problem that the amount of hardware and complexity increase.

【0005】一方、マルチプロセッサシステムのような
階層バス・システムにおけるキャッシュメモリ無効化処
理方式については、以下のような技術的背景がある。計
算機システムではプロセッサ、メモリ、I/O デバイスな
どのモジュールがバスで接続される。これらのモジュー
ル間のデータのやりとりは、あるモジュールがバス・マ
スターとなりバスにread/writeなどのバス命令を発行
し、これに対しそのバス命令の対象となるモジュール(
スレーブ・モジュールと呼ぶ) が応答信号を出力するこ
とによって行なう。
On the other hand, the cache memory invalidation processing method in a hierarchical bus system such as a multiprocessor system has the following technical background. In computer systems, modules such as processors, memory, and I / O devices are connected by a bus. To exchange data between these modules, a module becomes the bus master and issues bus commands such as read / write to the bus.
(Called slave module) outputs a response signal.

【0006】例えばプロセッサ・モジュールがメモリ・
モジュールからデータを読み出す時、プロセッサはバス
にread命令を発行する。メモリ・モジュールはメモリか
ら対象となるデータを読みだしてバスに出力し、応答信
号を出力することによってデータの準備ができたことを
プロセッサに知らせる。プロセッサはこの信号を見てバ
スにデータが出ていることを知りバス上のデータを取り
込む。
For example, if the processor module is a memory
When reading data from the module, the processor issues a read instruction on the bus. The memory module informs the processor that the data is ready by reading the data of interest from the memory and outputting it to the bus and outputting a response signal. The processor sees this signal and knows that data is output to the bus, and takes in the data on the bus.

【0007】メモリの一時的なコピーを格納するキャッ
シュメモリをもつモジュールが複数あるマルチプロセッ
サシステムなどのシステムでは、複数のモジュールが同
じデータを共有している時に、いずれかのモジュールが
この共有しているデータを書き換える場合は、バスに無
効化命令を発行することにより他のモジュールのキャッ
シュメモリのデータを無効にする。この時無効化命令に
よって無効化処理を行なう他のモジュールが次のバス命
令を受けつけることができる状態になった時点で無効化
処理を受け付けたこととするので、応答信号は、全ての
モジュールで無効化命令の処理を終了した時点で出力さ
れる。
In a system such as a multiprocessor system having multiple modules with cache memory for storing temporary copies of memory, when multiple modules share the same data, one of the modules may share this data. When rewriting the existing data, the invalidation command is issued to the bus to invalidate the data in the cache memory of another module. At this time, it is assumed that the invalidation processing is accepted when another module that performs the invalidation processing by the invalidation instruction becomes ready to receive the next bus instruction. Therefore, the response signal is invalid for all modules. It is output when the processing of the conversion instruction is completed.

【0008】その理由の一つは、同時更新の防止であ
る。メモリの更新は直前の値に基づいて行なわれること
が多いが、マルチプロセッサシステムでは、2つ以上の
プロセッサが1つの値を取り込み、それぞれに更新を行
ない、相次いで書き込んでしまうと、後から書き込みを
行なった結果は、先に書き込まれた値に基づいておら
ず、不都合を生じる。例えば、test-and-set命令やswap
命令など、読み出しと書き込みを1つの命令で実行し、
その間に、他のプロセッサの読み出し・書き込みが入り
込まないという性質を用いたspin lock では、書き込み
に伴う無効化処理が全てのプロセッサで完了した後に始
めてそれらの命令が終了すべきである。さもないと、キ
ャッシュ上にコピーされたunlock状態を2以上のプロセ
ッサが取得し、排他制御が実現できなくなる。無効化処
理が完了したキャッシュは更新された値を新たに取得す
るため、直前の値に基づく処理を行ない、正しく排他制
御を実現する。
One of the reasons is prevention of simultaneous update. Memory is often updated based on the previous value, but in a multiprocessor system, if two or more processors fetch one value, update each, and write them one after another, the data will be written later. The result of performing is not based on the previously written value, which causes inconvenience. For example, test-and-set instruction or swap
Read and write commands, etc. with one command,
In the meantime, with spin lock, which uses the property that reading / writing of other processors does not enter, those instructions should end only after the invalidation processing accompanying writing has been completed in all processors. Otherwise, two or more processors acquire the unlocked state copied on the cache, and exclusive control cannot be realized. The cache that has completed the invalidation process newly obtains the updated value, and therefore performs the process based on the immediately preceding value to correctly implement the exclusive control.

【0009】また、別の理由は、キャッシュがプロセッ
サのアクセス単位よりも大きい( アクセス単位の整数倍
の) キャッシュラインを単位に管理されていることに起
因する。同じキャッシュラインの別のアクセス単位を更
新するアクセスが2以上のプロセッサで同時に実行され
た場合、どちらのキャッシュラインも更新前の値をそれ
ぞれ保持しているため、無効化処理が完全に行なわれな
いと、先にバスを取得して書かれた内容が、その後のア
クセスによって書き潰されて、あたかも蒸発したような
現象が生じるという問題がある。
Another reason is that the cache is managed in units of cache lines larger than the access unit of the processor (an integral multiple of the access unit). When access to update another access unit of the same cache line is executed simultaneously by two or more processors, the invalidation process is not performed completely because both cache lines hold the values before update. Then, there is a problem in that the content that was previously acquired by acquiring the bus is overwritten by subsequent access, resulting in a phenomenon as if it were evaporated.

【0010】このため、書き込みのは、全てのキャッシ
ュで無効化処理が完了した後に完了するように設計する
ことが一般的であるが、無効化処理は比較的時間を必要
とするものであり、システム全体の性能低下を免れない
という問題点があった。
For this reason, writing is generally designed to be completed after the invalidation processing is completed in all caches, but the invalidation processing requires a relatively long time, There was a problem that the performance of the entire system was unavoidable.

【0011】無効化応答信号を出力する方法は、 1. 無効化処理の最大時間をあらかじめ決め、1つのモ
ジュールが代表して応答信号を出力する方法、 2. 各々のモジュールが無効化要求を受け付けた時点で
それぞれの無効化応答信号を出力する方法、 3. 各々のモジュールが無効化要求を受け付けるまでop
en drainの信号をアサートし続け、wired ORの原理に従
って、全体の無効化が完了したことを知る方法、などが
ある。
The method of outputting the invalidation response signal is as follows: 1. The maximum time for invalidation processing is determined in advance, and one module outputs the response signal as a representative. 2. Each module accepts the invalidation request. Method to output each invalidation response signal at each point, 3. Until each module receives invalidation request op
There is a method to keep asserting the signal of en drain and to know that the entire invalidation is completed according to the principle of wired OR.

【0012】無効化処理の完了時間は、階層バス・シス
テムを用いた場合に顕著に増大する。階層バス・システ
ムとは、以上に述べた一つのバス( 以下ローカル・バス
と呼ぶ) に複数のモジュールが接続されたものがグロー
バル・バスと呼ばれるバスで接続されるシステムである
( 図7) 。各ローカル・バスはバス・ブリッジと呼ばれ
るモジュールを介してグローバル・バスと接続される。
The completion time of the invalidation process is significantly increased when using a hierarchical bus system. A hierarchical bus system is a system in which multiple modules are connected to one bus described above (hereinafter referred to as a local bus) and connected by a bus called a global bus.
(Figure 7). Each local bus is connected to the global bus via a module called a bus bridge.

【0013】このような階層バス・システムにおいて無
効化命令を行なうときの従来の方式での動作を、キャッ
シュメモリ(3) とキャッシュメモリ(6) にメモリの1000
番地のデータが格納されている時にプロセッサ(7) がそ
の番地のデータを書き換える場合の動作について説明す
る。
The operation in the conventional method when an invalidating instruction is executed in such a hierarchical bus system is described in the cache memory (3) and the cache memory (6).
The operation when the processor (7) rewrites the address data while the address data is stored will be described.

【0014】1. まずプロセッサ(7) はローカル・バス
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(8) は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
1. First, the processor (7) is a local bus
Issue an invalidation command for address 1000 in (1). 2. The processor (8) and the bus bridge (8) see the invalidation instruction and assert the invalidation processing in-progress signal (15).

【0015】3. プロセッサ(8) はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
3. Processor (8) is in cache memory
After confirming that there is no data at address 1000, the assertion of the invalidation processing in progress signal (15) is stopped. However, the bus bridge (11) keeps asserting.

【0016】4. バス・ブリッジ(11)はグローバル・バ
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合は無効化処理実行中信号(15)をアサ
ートしたまま、グローバル・バス(13)に無効化命令を発
行する。バス・ブリッジ(11)がグローバル・バス(13)の
使用権利を得るまえにバス・ブリッジ(12)がグローバル
・バス(13)の使用権利を得て、同じアドレスのデータに
対するバス命令が発行した場合は、バス・ブリッジ(11)
はプロセッサ(7) が発行した無効化命令に対して再実行
応答を返し、ローカル・バス(1)上での無効化命令を一
旦完了させた後、ローカル・バス(1) にグローバル・バ
スから受けたバス命令を発行する。無効化命令に対して
再実行応答を受けたプロセッサ(7) は、ローカル・バス
(1) に発行されたバス命令の処理をした後、受けとった
命令が無効化を必要とする命令であった場合は無効化re
ad命令を、受けとった命令がその他のものであったら以
前のままの無効化命令を発行する。
4. The bus bridge (11) issues a request to use the global bus (13). 5. When the bus bridge (11) gets the right to use the global bus (13), it issues an invalidation instruction to the global bus (13) while keeping the invalidation processing in progress signal (15) asserted. To do. The bus bridge (11) acquired the right to use the global bus (13) before the bus bridge (11) acquired the right to use the global bus (13), and the bus instruction for the data at the same address was issued. Case, Bus Bridge (11)
Returns a re-execution response to the invalidation instruction issued by the processor (7), completes the invalidation instruction on the local bus (1) once, and then from the global bus to the local bus (1). Issue the received bus command. The processor (7) that received the re-execution response to the invalidation instruction
After processing the bus instruction issued in (1), if the received instruction is an instruction that requires invalidation, invalidate re
If the ad command received is any other command, the invalidation command as before is issued.

【0017】6. グローバル・バス(13)に発行された無
効化命令を受けて、バス・ブリッジ(12)はローカル・バ
ス(2) に1000番地に対する無効化命令を発行する。 7. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
6. In response to the invalidation instruction issued to the global bus (13), the bus bridge (12) issues an invalidation instruction for the address 1000 to the local bus (2). 7. The processor (9) and the bus bridge (10) see the invalidation instruction and assert the invalidation processing in-progress signal (16).

【0018】8. プロセッサ(10)はキャッシュメモリに
1000番地のデータがないことを確認 した後無効化処理実行中信号(16)をアサートするのを中
止する。一方プロセッサ(9) は無効化処理実行中信号(1
6)をアサートしたまま1000番地のデータの無効化処理を
開始する。
8. The processor (10) is in the cache memory
After confirming that there is no data at address 1000, cancel the invalidation processing in progress signal (16). On the other hand, the processor (9)
6) Start invalidation processing of data at address 1000 while asserting.

【0019】9. プロセッサは無効化処理が完了した後
無効化処理実行中信号(16)をアサートするのを中止す
る。 10. プロセッサ(9), (10) が無効化処理実行中信号(1
6)をアサートするのを中止した時点でバス・ブリッジ(1
2)はグローバル・バスの無効化命令に対して完了応答を
返し、グローバル・バス上での無効化命令を完了する。
9. The processor stops asserting the invalidation processing in progress signal (16) after the invalidation processing is completed. 10. Processors (9) and (10) have signals (1
The bus bridge (1
2) returns a completion response to the invalidation instruction of the global bus, and completes the invalidation instruction on the global bus.

【0020】11. バス・ブリッジ(11)はこの応答を受
けて無効化処理実行中信号(15)をアサートするのを中止
する。 12. 無効化命令を発行したプロセッサ(7) はプロセッ
サ(9) とバス・ブリッジ(11)の両方が無効化処理実行中
信号をデ・アサートしたことを見て無効化命令が完了し
たことを知り、次の命令の処理を開始する。この様に、
N 階層のバスに跨る無効化処理を行なうには、2N-1段の
バス遅延を伴うのが従来の技術であった。
11. Upon receiving this response, the bus bridge (11) stops asserting the invalidation processing in-progress signal (15). 12. The processor (7) that issued the invalidation instruction sees that both the processor (9) and the bus bridge (11) de-assert the invalidation-in-progress signal and that the invalidation instruction has completed. Know and start processing the next instruction. Like this
The conventional technique involves a bus delay of 2N-1 stages in order to perform invalidation processing across N layers of buses.

【0021】[0021]

【発明が解決しようとする課題】特願平05-199772 号で
開示されている共有バスがバスブリッジを介してシステ
の他の部分と一貫性を保持して結合されているマルチプ
ロセッサシステムにおいて、バスブリッジはシステムの
他の部分からのリクエストに対してスヌープを行うため
に、共有バスに接続されているキャッシュメモリのタグ
情報を有している。このようなシステムにおいてはバス
ブリッジにおいて共有バス上のリクエストに対するスヌ
ープを行うことでキャッシュメモリ側のタグデュプリケ
ーションは不要になる。
In a multiprocessor system in which a shared bus disclosed in Japanese Patent Application No. 05-199772 is coupled to other parts of the system through a bus bridge in a consistent manner, The bus bridge has tag information of the cache memory connected to the shared bus in order to snoop requests from other parts of the system. In such a system, the tag duplication on the cache memory side becomes unnecessary by snooping the request on the shared bus in the bus bridge.

【0022】本発明の第1の発明はこの点に鑑みてなさ
れたものであり、共有バスがバスブリッジによってシス
テムの他の部分と一貫性を保持して結合されているよう
なシステムにおいて、バスブリッジの有するキャッシュ
タグ情報を用いて共有バス上のリクエストのスヌープを
行わせることでキャッシュメモリ側でのタグデュプリケ
ーションをなくすことができ、キャッシュメモリのハー
ドウェア量を減らしかつ単純化を可能とし、より安価で
高速なシステムを提供することを目的とする。
The first invention of the present invention has been made in view of this point, and in a system in which a shared bus is coupled with other parts of the system by a bus bridge in a consistent manner, Tag duplication on the cache memory side can be eliminated by using the cache tag information of the bridge to perform snooping of requests on the shared bus, reducing the hardware amount of the cache memory and enabling simplification. The purpose is to provide a cheaper and faster system.

【0023】一方、従来の階層バス・システムでは、無
効化命令を発行した場合、無効化命令を発行したモジュ
ールが接続されたローカル・バス以外の全てのローカル
・バスで無効化命令が完了した後にグローバル・バスで
無効化命令が完了し、さらにこのグローバル・バスで無
効化命令が完了した後に無効化命令を発行したローカル
・バスの無効化命令が完了する。よって無効化命令が完
了するまではグローバル・バス、無効化命令を発行した
モジュールが接続されるローカル・バスは使用できな
い。さらに無効化命令を発行したモジュールは無効化命
令が完了するまで次の処理を開始することができない。
On the other hand, in the conventional hierarchical bus system, when an invalidation instruction is issued, after the invalidation instruction is completed on all local buses other than the local bus to which the module that issued the invalidation instruction is connected. The invalidation instruction is completed on the global bus, and further, the invalidation instruction on the local bus that issued the invalidation instruction is completed after the invalidation instruction is completed on the global bus. Therefore, until the invalidation instruction is completed, the global bus and the local bus to which the module that issued the invalidation instruction is connected cannot be used. Further, the module that issued the invalidation instruction cannot start the next processing until the invalidation instruction is completed.

【0024】本発明の第2の発明はこの点に鑑みてなさ
れたものであり、階層バス・システムにおいて、無効化
命令が発行される場合のバスの使用効率を上げ、さらに
無効化命令を発行したモジュールが早期に次の処理に移
ることのできるシステムを提供することを目的とする。
The second invention of the present invention has been made in view of this point, and in the hierarchical bus system, the efficiency of use of the bus when the invalidation instruction is issued is increased, and the invalidation instruction is further issued. It is an object of the present invention to provide a system in which the created module can move to the next processing at an early stage.

【0025】[0025]

【課題を解決するための手段】本発明の第1の発明は、
第1のバスによって接続された複数のノードの間でデー
タの一貫性を保持するマルチプロセッサシステムであっ
て、該ノードは、キャッシュメモリを備えるプロセッサ
と、メモリ装置と、前記プロセッサと前記メモリ装置と
を接続する第2のバスと、前記プロセッサ及び前記メモ
リ装置と前記第1のバスとを結合するバスブリッジ装置
とを備え、該バスブリッジ装置は、前記第2のバスに結
合されているキャッシュメモリのタグ情報をシミュレー
トする手段と、この手段により得られたタグ情報に基づ
き前記メモリ装置に対してメモリ動作を抑止することを
示すメモリ抑止信号を出力する手段と、前記タグ情報に
基づき前記キャッシュメモリに対してスヌープ動作を行
う必要があることを示すスヌープ要求信号を出力する手
段とを具備するものであることを特徴とする。
The first invention of the present invention is as follows:
A multiprocessor system for maintaining data consistency among a plurality of nodes connected by a first bus, the node comprising a processor having a cache memory, a memory device, the processor and the memory device. A cache bus coupled to the second bus, and a bus bridge device coupling the processor and the memory device with the first bus. Means for simulating the tag information, means for outputting a memory inhibition signal indicating that the memory operation is inhibited to the memory device based on the tag information obtained by the means, and the cache based on the tag information. And a means for outputting a snoop request signal indicating that it is necessary to perform a snoop operation on the memory. And characterized in that.

【0026】本発明の第2の発明は、第1のバスによっ
て接続された複数のノードの間でデータの一貫性を保持
するマルチプロセッサシステムであって、該ノードは、
キャッシュメモリを備えるプロセッサと、前記プロセッ
サを接続するための第2のバスと、前記第2のバスと前
記第1のバスとを結合するためのバスブリッジ装置とを
備え、該バスブリッジ装置は、前記第1のバスを使用す
る権利を獲得したバス命令を、このバス命令と同時に到
着し且つ同じメモリアドレスに対するものである他のバ
ス命令に優先して前記第2のバスに発行する手段と、前
記第2のバスからの前記キャッシュメモリに対する無効
化命令を前記第1のバスに発行する場合に、前記第1の
バスを使用する権利を獲得した時点で、前記無効化要求
が完了したことを示す信号を前記第2のバスに出力する
手段とを具備するものであることを特徴とする。
A second invention of the present invention is a multiprocessor system for maintaining data consistency among a plurality of nodes connected by a first bus, the nodes comprising:
A bus-bridge device for connecting the second bus and the first bus; a second bus for connecting the processor; and a bus-bridge device for coupling the second bus and the first bus. Means for issuing to the second bus a bus instruction that has acquired the right to use the first bus, prior to another bus instruction that arrives at the same time as this bus instruction and is for the same memory address, When issuing the invalidation instruction for the cache memory from the second bus to the first bus, the invalidation request is completed when the right to use the first bus is acquired. Means for outputting the indicated signal to the second bus.

【0027】[0027]

【作用】本発明の第1の発明によれば、あるキャッシュ
メモリから共有バス(第2のバス)に対してリクエスト
が発行された場合、バスブリッジは現在のタグ情報を検
索し、もし共有バス(第2のバス)に接続されているい
ずれかのキャッシュメモリが最新のデータを有する場合
にはメモリ抑止信号とそのキャッシュメモリに対するス
ヌープ要求信号をアサートすることで一貫性を保持する
ように作用する。
According to the first aspect of the present invention, when a request is issued from a certain cache memory to the shared bus (second bus), the bus bridge retrieves the current tag information, and if the shared bus is used, When any of the cache memories connected to the (second bus) has the latest data, the memory inhibit signal and the snoop request signal for the cache memory are asserted to maintain the consistency. .

【0028】またシステムの他の部分からのリクエスト
(第1のバスを介して送信される)によりバスブリッジ
から共有バス(第2のバス)にリクエストを発行する場
合、バスブリッジはリクエストを発行する前に並行して
タグ情報を検索し、もし共有バス(第2のバス)に接続
されているいずれかのキャッシュメモリが最新のデータ
を有する場合にはメモリ抑止信号とそのキャッシュメモ
リに対するスヌープ要求信号をアサートすることで一貫
性を保持するように作用する。
Further, when a request is issued from the bus bridge to the shared bus (second bus) by a request from another part of the system (transmitted via the first bus), the bus bridge issues the request. The tag information is previously searched in parallel, and if any cache memory connected to the shared bus (second bus) has the latest data, a memory inhibit signal and a snoop request signal for the cache memory. Acts to maintain consistency by asserting.

【0029】いずれの場合もバスブリッジはリクエスト
の処理に伴いタグ情報をタグ情報シミュレーション手段
により必要に応じて更新するように作用する。本発明の
第2の発明によれば、階層バス・システムにおいてある
モジュールから無効化命令が発行された場合に、そのモ
ジュールと同じローカル・バス(第2のバス)に接続さ
れるバス・ブリッジがグローバル・バス(第1のバス)
の使用権を得た時点で応答を返すことにより、そのロー
カル・バス上での無効化命令は完了し、次のバス命令を
発行することが可能となり、さらに無効化命令を発行し
たモジュールは無効化命令を次の処理を開始することが
可能となる。
In any case, the bus bridge acts so as to update the tag information by the tag information simulation means as needed in accordance with the processing of the request. According to the second aspect of the present invention, when a module issues an invalidation instruction in a hierarchical bus system, a bus bridge connected to the same local bus (second bus) as the module is provided. Global bus (first bus)
By returning a response when the right to use is acquired, the invalidation instruction on the local bus is completed, the next bus instruction can be issued, and the module that issued the invalidation instruction is invalid. It becomes possible to start the next processing by the conversion instruction.

【0030】またバス・ブリッジがグローバル・バスに
対して発行された無効化命令に対してグローバル・バス
に接続されている他のバス・ブリッジがその無効化命令
を受け付けた時点で、各バス・ブリッジが接続されるロ
ーカル・バス上での無効化命令が完了するのを待つこと
なく、グローバル・バス上の無効化命令を完了するため
グローバル・バスを次のバス命令のために使用すること
が可能となる。
When the bus bridge receives an invalidation instruction from another bus bridge connected to the global bus in response to the invalidation instruction issued to the global bus, each bus The global bus may be used for the next bus instruction to complete an invalidate instruction on the global bus without waiting for the invalidate instruction on the local bus to which the bridge is attached to complete. It will be possible.

【0031】[0031]

【実施例】【Example】

(実施例1)以下本発明の第1の発明の実施例を図面に
より説明する。図1は本発明の一実施例によるマルチプ
ロセッサシステムの概略構成図を示している。100は
ノード1、200はノード2でありシステム共有バス3
00によって結合されている。ノード1においては CPU
101、CPU 102がそれぞれキャッシュメモリ10
3、キャッシュメモリ104に接続され、キャッシュメ
モリ103、キャッシュメモリ104、ローカルメモリ
105はローカル共有バス106によって接続されてい
る。バスブリッジ107はそれらをシステム共有バス3
00と接続する。
(Embodiment 1) A first embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows a schematic configuration diagram of a multiprocessor system according to an embodiment of the present invention. 100 is a node 1, 200 is a node 2, and the system shared bus 3
Are bound by 00. CPU on node 1
101 and CPU 102 are cache memory 10 respectively
3, the cache memory 104 is connected, and the cache memory 103, the cache memory 104, and the local memory 105 are connected by the local shared bus 106. The bus bridge 107 connects them to the system shared bus 3
Connect with 00.

【0032】キャッシュメモリ103はCPU タグ情報1
08、キャッシュメモリ104はCPU タグ情報109を
持ちCPU 101とローカル共有バス106からのリクエ
ストに対してキャッシュデータがヒットしたか否か、キ
ャッシュデータの状態等を保持する。
The cache memory 103 has CPU tag information 1
08, the cache memory 104 has the CPU tag information 109, and holds whether or not the cache data hits the request from the CPU 101 and the local shared bus 106, the state of the cache data, and the like.

【0033】バスブリッジ107はタグ情報シミュレー
ション手段110とタグスヌープ手段111とによって
キャッシュメモリ103に対応するシミュレートされた
バスタグ情報112とタグメモリ104に対応するシミ
ュレートされたバスタグ情報113に接続されている。
バスブリッジ107はさらにローカル共有バス106と
システム共有バス300からのリクエストに対してスヌ
ープを行った結果キャッシュメモリ103とキャッシュ
メモリ104に対して各々介入を行う必要があるかどう
かを判定するスヌープ要求判定部114とローカルメモ
リ105に対してメモリ動作を抑止するかどうかを判定
するメモリ抑止判定部115を持ち、前記スヌープ要求
判定部はスヌープ要求信号116、スヌープ要求信号1
17によりキャッシュメモリ103とキャッシュメモリ
104に接続され、前記メモリ抑止判定部はメモリ抑止
信号118によりローカルメモリ105に接続されてい
る。
The bus bridge 107 is connected to the simulated bus tag information 112 corresponding to the cache memory 103 and the simulated bus tag information 113 corresponding to the tag memory 104 by the tag information simulation means 110 and the tag snoop means 111. There is.
The bus bridge 107 further snoops requests from the local shared bus 106 and the system shared bus 300, and as a result, determines whether or not it is necessary to intervene in the cache memory 103 and the cache memory 104, respectively. The unit 114 and the local memory 105 have a memory inhibition determination unit 115 for determining whether or not to inhibit the memory operation, and the snoop request determination unit includes the snoop request signal 116 and the snoop request signal 1
17 connects the cache memory 103 and the cache memory 104, and the memory inhibition determination unit is connected to the local memory 105 by the memory inhibition signal 118.

【0034】ノード2はノード1と同様に構成されてお
り、詳細の説明は割愛する。このように構成されたマル
チプロセッサシステムは次のように動作する。ここでキ
ャッシュメモリは M(排他ダーティ) O(共有ダーテ
ィ) E(排他クリーン) S(共有クリーン) I(無効)
の5状態をとるライトインバリデート型コピーバック
プロトコルを採用するものと仮定する。キャッシュメモ
リの動作とタグの状態遷移については本発明と直接関係
するものでなく説明は割愛する。
The node 2 has the same structure as the node 1, and a detailed description thereof will be omitted. The thus configured multiprocessor system operates as follows. Here, the cache memory is M (exclusive dirty) O (shared dirty) E (exclusive clean) S (shared clean) I (invalid)
It is assumed that the write-in-validate type copyback protocol that takes the following five states is adopted. The operation of the cache memory and the state transition of the tag are not directly related to the present invention and will not be described.

【0035】詳細は文献 A Class of Compatible Cache
Consistency Protocols and theirSupport by The IEE
E Futurebus、13th ISCA,June 1986.(Paul Sweazey, Al
anJay Smith)に述べられている。また本実施例において
はローカル共有バス、システム共有バスに前述の SPARC
MBus を採用した例を示す。
For details, refer to Document A Class of Compatible Cache
Consistency Protocols and their Support by The IEE
E Futurebus, 13th ISCA, June 1986. (Paul Sweazey, Al
anJay Smith). Further, in this embodiment, the above-mentioned SPARC is added to the local shared bus and the system shared bus.
Here is an example of using MBus.

【0036】CPU 101からキャッシュメモリ103に
対してローカルメモリ105のアドレスを有する CR
(共有読み出し) リクエストが発行された場合、キャ
ッシュメモリ103は前記プロトコルに基づいて動作す
る。本発明においてはキャッシュヒットした場合は重要
ではないためキャッシュミスを起こした場合について考
える。キャッシュミス時にはキャッシュメモリ103か
らローカル共有バス106に対してCRリクエストが発行
される。バスブリッジ107はタグスヌープ手段111
によりCPU 102に対応するバスタグ情報113を検索
しその結果に応じてCPU 102に接続されるスヌープ要
求信号117とローカルメモリ105に接続されるメモ
リ抑止信号118を出力する。
CR having the address of the local memory 105 from the CPU 101 to the cache memory 103
(Shared Read) When a request is issued, the cache memory 103 operates based on the protocol. In the present invention, a case where a cache hit occurs is not important, so a case where a cache miss occurs will be considered. When a cache miss occurs, a CR request is issued from the cache memory 103 to the local shared bus 106. The bus bridge 107 is a tag snoop means 111.
Then, the bus tag information 113 corresponding to the CPU 102 is searched, and a snoop request signal 117 connected to the CPU 102 and a memory inhibit signal 118 connected to the local memory 105 are output according to the result.

【0037】バスタグ情報と出力信号の対応について図
2に示す。CPU 102からキャッシュメモリ104に対
してローカルメモリ105のアドレスを有するCRリクエ
ストが発行され、同様にキャッシュメモリ104におい
てキャッシュミスが発生した場合、同様にローカル共有
バス106に対してCRリクエストが発行される。
The correspondence between bus tag information and output signals is shown in FIG. If the CPU 102 issues a CR request having the address of the local memory 105 to the cache memory 104 and similarly a cache miss occurs in the cache memory 104, a CR request is similarly issued to the local shared bus 106. .

【0038】バスブリッジ107はタグスヌープ手段1
11によりCPU 101に対応するバスタグ情報112を
検索しその結果に応じてCPU 101に接続されるスヌー
プ要求信号116とローカルメモリ105に接続される
メモリ抑止信号118を出力する。バスタグ情報と出力
信号の対応は同じく図2に示した通りである。
The bus bridge 107 is a tag snoop means 1
The bus tag information 112 corresponding to the CPU 101 is searched by 11 and a snoop request signal 116 connected to the CPU 101 and a memory inhibit signal 118 connected to the local memory 105 are output according to the result. Correspondence between the bus tag information and the output signal is as shown in FIG.

【0039】これまではキャッシュメモリからローカル
共有バスへのCRリクエストが発行された場合について述
べたが、もう一つのケースであるシステム共有バスから
バスブリッジを通してローカル共有バスへCRリクエスト
が発行される場合について述べる。一つの例としてはCP
U 201からキャッシュメモリ203に対してローカル
メモリ105のアドレスを有するCRリクエストが発行さ
れ、キャッシュメモリ203においてキャッシュミスが
発生したとするとそのCRリクエストはまずローカル共有
バス206へ発行される。バスブリッジはタグスヌープ
手段111によってキャッシュメモリ204に対するバ
スタグ情報213を検索する。
Up to now, the case where the CR request is issued from the cache memory to the local shared bus has been described. In another case, the case where the CR request is issued from the system shared bus to the local shared bus through the bus bridge. I will describe. CP is one example
If the U 201 issues a CR request having the address of the local memory 105 to the cache memory 203 and a cache miss occurs in the cache memory 203, the CR request is first issued to the local shared bus 206. The bus bridge searches the bus tag information 213 for the cache memory 204 by the tag snoop means 111.

【0040】ここで自ノード内に有効なデータが存在し
ない場合共有バス300へのCRリクエストが発行され
る。どのような場合に共有バスへのCRリクエストが発行
されるかについては本発明の本質とは関係ないため詳細
な説明は割愛する。詳しくは前述の特願平05-199772 号
に述べられている。もう一方のバスブリッジ106はタ
グスヌープ手段111によりCPU 101に対応するバス
タグ情報112とCPU 102に対応するバスタグ情報1
13を検索し、その結果に応じてスヌープ要求信号11
6、117とメモリ抑止信号118を出力する。タグ情
報と出力信号の関係を図3に示す。
If there is no valid data in its own node, a CR request to the shared bus 300 is issued. The detailed description of the case in which the CR request is issued to the shared bus is omitted because it is not related to the essence of the present invention. The details are described in Japanese Patent Application No. 05-199772 mentioned above. In the other bus bridge 106, the tag snoop means 111 causes the bus tag information 112 corresponding to the CPU 101 and the bus tag information 1 corresponding to the CPU 102.
13 is searched, and the snoop request signal 11 is searched according to the result.
6, 117 and the memory inhibit signal 118 are output. The relationship between the tag information and the output signal is shown in FIG.

【0041】CRリクエストの代わりにCRI (排他読み出
し)リクエストが発行された場合も同様に動作する。こ
の場合はリクエストが完了した後のタグ遷移が異なる。
CI(無効化要求)リクエスト、CWI リクエスト、RDリク
エスト、WR(書き戻し)リクエストについては本発明と
は無関係なので説明は割愛する。
The same operation is performed when a CRI (exclusive read) request is issued instead of the CR request. In this case, the tag transition after the request is completed is different.
The CI (invalidation request) request, the CWI request, the RD request, and the WR (write-back) request are not related to the present invention, so the description thereof will be omitted.

【0042】いずれの場合もリクエストが実行されると
バスブリッジのタグ情報シミュレーション手段によりバ
スタグ情報が必要に応じて更新される。タグ情報シミュ
レーション手段はローカル共有バス上のリクエスト種別
とそれに対するバス上での応答を監視することでキャッ
シュメモリ内のCPU タグ情報をシミュレートすることが
出来る。本実施例ではローカル共有バスに SPARC MBus
を使用した場合のバスタグ情報の遷移について図4、図
5に示す。図4はリクエストを発行したプロセッサにつ
いてのバスタグ情報の遷移である。図5はリクエストを
発行していないプロセッサについてのバスタグ情報の遷
移である。
In either case, when the request is executed, the tag information simulation means of the bus bridge updates the bus tag information as needed. The tag information simulation means can simulate the CPU tag information in the cache memory by monitoring the request type on the local shared bus and the response to it on the bus. In this embodiment, a SPARC MBus is used for the local shared bus.
The transition of the bus tag information when using is shown in FIGS. 4 and 5. FIG. 4 is a transition of bus tag information regarding the processor that issued the request. FIG. 5 is a transition of bus tag information regarding a processor that has not issued a request.

【0043】この例の場合 CPUからキャッシュメモリへ
のライトヒットが発生した場合にはローカル共有バスに
おいてそれを知ることができないため一時的にバスブリ
ッジのバスタグ情報とキャッシュメモリのCPU タグ情報
が一致しない場合がある。これはバスブリッジのバスタ
グ情報が Eを示しているときにはライトヒットによりキ
ャッシュメモリのCPU タグ情報が Mに変わった場合であ
り、このためバスブリッジのバスタグ情報が Eを示す場
合にはスヌープ要求信号とメモリ抑止信号をアサートし
てキャッシュメモリ中のCPU タグ情報を検索する必要が
ある。ただし別途ライトヒットを検出する信号を設けれ
ばバスブリッジとキャッシュメモリのタグ情報を一致さ
せることができるため、不必要なスヌープは発生しな
い。
In the case of this example, when a write hit from the CPU to the cache memory occurs, it cannot be known on the local shared bus, so the bus tag information of the bus bridge and the CPU tag information of the cache memory do not match temporarily. There are cases. This is a case where the CPU tag information of the cache memory is changed to M by the write hit when the bus tag information of the bus bridge shows E. Therefore, when the bus tag information of the bus bridge shows E, the snoop request signal is output. It is necessary to retrieve the CPU tag information in the cache memory by asserting the memory inhibit signal. However, if a signal for detecting a write hit is separately provided, the tag information in the bus bridge can be matched with the tag information in the cache memory, so that unnecessary snoop does not occur.

【0044】なお本実施例では2つのノードがシステム
共有バスによって接続されるとしたが、ノードの数がそ
れ以上であっても本発明の有効性は変わらない。また本
実施例ではローカル共有バスに2つのCPU がそれぞれの
キャッシュを通して接続されるとしたが、CPU とキャッ
シュの対の数は任意であり、その数に応じてバスブリッ
ジにタグ情報を接続すればよく、本発明の有効性は変わ
らない。
In this embodiment, two nodes are connected by the system shared bus, but the effectiveness of the present invention does not change even if the number of nodes is larger than that. In this embodiment, two CPUs are connected to the local shared bus through their respective caches, but the number of CPU and cache pairs is arbitrary, and tag information can be connected to the bus bridge according to the number. Well, the effectiveness of the invention does not change.

【0045】また本実施例はシステム共有バスとローカ
ル共有バスの2つの階層を持つシステムとしたが、階層
間においてバスブリッジを同様に構成すればより多段の
階層をとることも可能でありその変形はいろいろと考え
ることができるが、どのような変形においても本発明の
有効性は変わらない。
In this embodiment, the system has two hierarchies of the system shared bus and the local shared bus. However, if a bus bridge is similarly configured between the hierarchies, it is possible to take more hierarchies and its modification. Can be considered variously, but the effectiveness of the present invention does not change in any modification.

【0046】また本実施例ではローカル共有バスとシス
テム共有バスに SPARC MBus を採用した例を用いたが、
本発明はこれに制限されるものではなく様々なバスプロ
トコルに応用することができその有効性は変わらない。
In this embodiment, the SPARC MBus is used for the local shared bus and the system shared bus.
The present invention is not limited to this, and can be applied to various bus protocols, and its effectiveness remains unchanged.

【0047】また本実施例ではスヌープ要求信号とメモ
リ抑止信号は独立した信号としたが、本発明はこれに制
限されるものではなく、これらを一つの信号として接続
することも可能であり、その有効性は変わらない。 (実施例2)以下本発明の第2の発明の実施例を図面に
より説明する。図7に本発明の一実施例によるマルチプ
ロセッサシステムの全体構成を示す。2組のローカル・
バス(1, 2) にそれぞれキャッシュメモリ(3, 4, 5, 6)
をもった2組のプロセッサ・モジュール(7,8,9,10)
とバス・ブリッジ(11, 12) が接続され、これらのロー
カル・バスはバス・ブリッジを介してグローバル・バス
と接続される。さらにグローバル・バスには2つのバス
・ブリッジの他にメモリ・モジュール(14)が接続され
る。ローカル・バスにはopen drain の無効化処理実行
中信号(15, 16)があり、それぞれプロセッサ・モジュー
ルとバス・ブリッジに接続されている。ローカル・バス
に無効化命令が発行された場合、プロセッサモジュール
とバス・ブリッジは次のバス命令を受け付けることがで
きる状態になるまでこの信号をアサートし続ける。ロー
カル・バスに接続されたモジュールはこの信号がアサー
トされている間は次のバス命令を発行することができな
い。
Although the snoop request signal and the memory inhibit signal are independent signals in this embodiment, the present invention is not limited to this, and it is possible to connect them as one signal. The effectiveness remains the same. (Embodiment 2) A second embodiment of the present invention will be described below with reference to the drawings. FIG. 7 shows the overall configuration of a multiprocessor system according to an embodiment of the present invention. 2 sets of local
Cache memory (3, 4, 5, 6) on bus (1, 2)
Two sets of processor modules (7,8,9,10)
And bus bridges (11, 12) are connected, and these local buses are connected to the global bus via the bus bridge. In addition to the two bus bridges, a memory module (14) is connected to the global bus. On the local bus, there are open drain invalidating signals (15, 16), which are connected to the processor module and the bus bridge, respectively. When an invalidate instruction is issued on the local bus, the processor module and the bus bridge continue to assert this signal until they are ready to accept the next bus instruction. Modules connected to the local bus cannot issue the next bus instruction while this signal is asserted.

【0048】図8は図7中のバス・ブリッジ(11,12) の
概略構成を示している。バス・ブリッジは、ローカル・
バスに接続されたバスモジュールが発行したバス命令を
受け付ける、ローカル・バス命令受付部と、ローカル・
バス命令受付部で受け付けたバス命令に従って、グロー
バル・バスの使用権を要求するグローバル・バス要求発
生部を備える。グローバル・バス(13)上には、グローバ
ル・バスに接続された複数のバスモジュールからのバス
使用要求に対して、同時にただ一つのバスモジュールが
グローバル・バスを使用するように調停する、グローバ
ル・バス調停部がある。
FIG. 8 shows a schematic structure of the bus bridges (11, 12) in FIG. Bus bridge is local
A local bus instruction reception unit that receives bus instructions issued by a bus module connected to the bus
A global bus request generation unit for requesting a right to use the global bus according to the bus command received by the bus command reception unit is provided. On the global bus (13), a global bus that arbitrates so that only one bus module uses the global bus at the same time in response to bus use requests from multiple bus modules connected to the global bus. There is a bus arbitration section.

【0049】バス・ブリッジは、さらに、グローバル・
バス調停部によりグローバル・バスの使用権を得た後、
ローカル・バス命令受付部で受け付けたバス命令をグロ
ーバル・バスに発行するグローバル・バス命令発行部
と、グローバル・バスに接続されたバスモジュールが発
行したバス命令を受け付ける、グローバル・バス命令受
付部と、グローバル・バス命令受付部で受け付けたバス
命令に従って、ローカル・バスの使用権を要求するロー
カル・バス要求発生部を備える。ローカル・バス(1,2)
上には、複数のローカル・バスに接続されたバスモジュ
ールからのバス使用要求に対して、同時に他だ一つのバ
スモジュールがローカル・バスを使用するように調停す
る、ローカル・バス調停部がある。
The bus bridge also has a global
After obtaining the right to use the global bus by the bus arbitration unit,
A global bus instruction issuing unit that issues the bus instruction received by the local bus instruction receiving unit to the global bus, and a global bus instruction receiving unit that receives the bus instruction issued by the bus module connected to the global bus A local bus request generation unit for requesting the right to use the local bus according to the bus command received by the global bus command reception unit. Local bus (1,2)
Above, there is a local bus arbitration unit that arbitrates for a bus use request from a bus module connected to a plurality of local buses so that another bus module uses the local bus at the same time. .

【0050】バス・ブリッジは、さらに、ローカル・バ
ス調停部によりローカル・バスの使用権を得た後、グロ
ーバル・バス命令受付部で受け付けたバス命令をローカ
ル・バスに発行するローカル・バス命令発行部と、ロー
カル・バス命令受付部とグローバル・バス命令受付部と
で同じキャッシュ・ラインに対するバス命令を受け付け
た時に、ローカル・バスのバス命令に対して、バスの使
用を中断し、再実行促す再実行通知部と、ローカル・バ
ス命令受付部で受け付けた無効化命令をグローバル・バ
スに発行するためにグローバル・バス調停部からグロー
バル・バスの使用権を獲得できた時点で、ローカル・バ
スに完了応答を返す、先行応答部とを備える。
The bus bridge further issues a local bus instruction issued to the local bus by the local bus arbitration unit and then issues the bus instruction accepted by the global bus instruction acceptance unit to the local bus. When a bus instruction for the same cache line is received by the local section, the local bus instruction receiving section, and the global bus instruction receiving section, the bus instruction of the local bus is suspended and the re-execution is prompted. When the global bus arbitration unit can acquire the right to use the global bus to issue the invalidation instruction received by the re-execution notification unit and the local bus instruction reception unit to the global bus, the local bus is notified to the local bus. And a preceding response unit that returns a completion response.

【0051】この構成により、2つのローカル・バスに
おいてバス命令が同時に発行された場合、各々のローカ
ル・バスに接続されたバス・ブリッジの要求発生部がグ
ローバル・バスの使用権を要求する。この時、グローバ
ル・バス上の優先順位決定部は、これらの要求のうちか
ら1つを選択し、グローバル・バスの使用権を与える。
With this configuration, when a bus instruction is issued simultaneously on two local buses, the request generation unit of the bus bridge connected to each local bus requests the right to use the global bus. At this time, the priority determining unit on the global bus selects one of these requests and gives the right to use the global bus.

【0052】使用権を獲得したバス・ブリッジのローカ
ル・バスのバス命令に対し、その時点で、先行応答部が
完了応答を返す。その他のバス命令に対しては、再実行
通知部が再実行を指示する再実行応答を返す。
In response to the bus command of the local bus of the bus bridge that has acquired the right to use, the preceding response unit returns a completion response at that time. For other bus commands, the re-execution notification unit returns a re-execution response instructing re-execution.

【0053】その後グローバル・バスから来た命令が、
優先命令発行部によって、グローバル・バスを獲得でき
なかったローカル・バスに発行される。グローバル・バ
スが獲得できなかったローカル・バスは、このバス命令
が完了した後、バス命令再発行部によって取り消された
バス命令が再発行され、処理を継続する。この時、先に
グローバル・バスから発行された命令によってキャッシ
ュの状態が変化していることがあるため、以前と異なる
バス命令を発行する場合や再発行しない場合もある。
Then, the instruction that came from the global bus is
It is issued by the priority instruction issuing unit to the local bus that could not acquire the global bus. For the local bus that could not be acquired by the global bus, the bus instruction canceled by the bus instruction reissue unit is reissued after the completion of this bus instruction, and the processing continues. At this time, the state of the cache may have been changed by an instruction issued from the global bus first, so that a bus instruction different from the previous one may be issued or may not be reissued.

【0054】したがって、無効化命令がバス・ブリッジ
に発行され、グローバル・バスの使用権を獲得した時点
で、その無効化命令が他のローカル・バスに発行され、
完了することが保証されるので、ローカル・バス上での
無効化命令が完了するのを待つことなく、ローカル・バ
スに応答を返すことによりこのローカル・バス上での無
効化命令を完了する。さらにグローバル・バスに接続さ
れている全てのバス・ブリッジでその無効化命令が受け
付けた時点で、各バス・ブリッジが接続されるグローバ
ル・バス上の無効化を完了する。
Therefore, when the invalidation instruction is issued to the bus bridge and the right to use the global bus is acquired, the invalidation instruction is issued to another local bus.
As it is guaranteed to complete, the invalidation instruction on the local bus is completed by returning a response to the local bus without waiting for the invalidation instruction on the local bus to complete. Further, when the invalidation instruction is accepted by all the bus bridges connected to the global bus, the invalidation on the global bus to which each bus bridge is connected is completed.

【0055】以下には、キャッシュメモリ(3) とキャッ
シュメモリ(6) にメモリの1000番地のデータが格納され
ている時にプロセッサ(7) がその番地のデータを書き換
える場合の動作について説明する。
The operation when the processor (7) rewrites the data at the addresses 1000 in the cache memory (3) and the cache memory (6) will be described below.

【0056】1. まずプロセッサ(7) はローカル・バス
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(11)は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
1. First, the processor (7) is a local bus
Issue an invalidation command for address 1000 in (1). 2. The processor (8) and the bus bridge (11) see the invalidation instruction and assert the invalidation processing in-progress signal (15).

【0057】3. プロセッサ(8) はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
3. The processor (8) uses the cache memory
After confirming that there is no data at address 1000, the assertion of the invalidation processing in progress signal (15) is stopped. However, the bus bridge (11) keeps asserting.

【0058】4. バス・ブリッジ(11)はグローバル・バ
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合はグローバル・バス(13)に無効化命
令を発行し、さらに無効化処理実行中信号(15)をアサー
トするのを中止する。バス・ブリッジ(11)がグローバル
・バス(13)の使用権利を得る前にバス・ブリッジ(12)が
グローバル・バス(13)の使用権利を得て、同じアドレス
のデータに対するバス命令が発行された場合は、バス・
ブリッジ(11)はプロセッサ(7) が発行した無効化命令に
対して再実行応答を返し、ローカル・バス(1) 上での無
効化命令を一旦完了させた後、ローカル・バス(1) にグ
ローバル・バスから受けたバス命令を発行する。無効化
命令に対して再実行応答を受けたプロセッサ(7) は、ロ
ーカル・バス(1) に発行されたバス命令の処理をした
後、受けとった命令が無効化を必要とする命令であった
場合は無効化read 命令を、受けとった命令がその他の
ものであったら以前のままの無効化命令を発行する。
4. The bus bridge (11) issues a request to use the global bus (13). 5. The bus bridge (11) issues an invalidation instruction to the global bus (13) when it is granted the right to use the global bus (13), and asserts the invalidation processing in progress signal (15). Stop doing. The bus bridge (12) gets the right to use the global bus (13) before the bus bridge (11) gets the right to use the global bus (13), and a bus instruction for the data at the same address is issued. If the bus
The bridge (11) returns a re-execution response to the invalidation instruction issued by the processor (7), completes the invalidation instruction on the local bus (1) once, and then returns to the local bus (1). Issues a bus instruction received from the global bus. The processor (7) that received the re-execution response to the invalidation instruction processed the bus instruction issued to the local bus (1), and then the received instruction was an instruction that requires invalidation. In this case, the invalidation read instruction is issued, and if the received instruction is any other instruction, the previous invalidation instruction is issued.

【0059】6. ここで無効化処理実行中信号(15)をア
サートするモジュールがなくなるのでプロセッサ(7) は
無効化処理が完了したものとして次の処理を始める。ロ
ーカル・バス(3) は、次のバス命令を発行できる状態に
なる。
6. Here, since there is no module that asserts the invalidation processing in-progress signal (15), the processor (7) starts the next processing assuming that the invalidation processing is completed. The local bus (3) is ready to issue the next bus instruction.

【0060】7. グローバル・バスに発行された無効化
命令を受けて、バス・ブリッジ(12)はローカル・バスに
1000番地に対する無効化命令を発行する。 8. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
7. In response to the invalidation instruction issued to the global bus, the bus bridge (12) switches to the local bus.
Issue an invalidation command for address 1000. 8. The processor (9) and the bus bridge (10) see the invalidation instruction and assert the invalidation processing in-progress signal (16).

【0061】9. プロセッサ(10)はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(16)をアサートするのを中止する。一方プロセ
ッサ(9) は無効化処理実行中信号(16)をアサートしたま
ま1000番地のデータの無効化処理を開始する。
9. The processor (10) uses the cache memory
After confirming that there is no data at address 1000, the assertion of the invalidation processing in progress signal (16) is stopped. On the other hand, the processor (9) starts the invalidation processing of the data at address 1000 while asserting the invalidation processing in-progress signal (16).

【0062】10. プロセッサは無効化処理が完了した
後無効化処理実行中信号(16)をアサートするのを中止す
る。ここでシステム全体での無効化処理が完了する。 また本実施例ではグローバル・バスに接続されているモ
ジュールは2つのバス・ブリッジと無効化処理を行なう
必要のないメモリだけであるため、通常のバス応答で無
効化処理の完了を通知することができるためグローバル
・バスには無効化処理実行中信号を設けていないが、バ
ス・ブリッジが3つ以上ある場合などはローカル・バス
と同様に無効化処理実行中信号を設けることも可能であ
る。
10. The processor stops asserting the invalidation processing in-progress signal (16) after the invalidation processing is completed. At this point, the invalidation processing of the entire system is completed. Further, in the present embodiment, the modules connected to the global bus are only the two bus bridges and the memory that does not need to perform the invalidation processing, so that the completion of the invalidation processing can be notified by a normal bus response. Since the global bus is not provided with the invalidation execution signal because it is possible, it is possible to provide the invalidation execution signal like the local bus when there are three or more bus bridges.

【0063】[0063]

【発明の効果】かかるように本発明の第1の発明によれ
ば、共有バスを用いた分散共有マルチプロセッサシステ
ムにおいて、共有バスに接続されるキャッシュメモリは
バススヌープのためのタグデュプリケーションを必要と
しないため、ハードウェア量を減らすことができる。ま
たハードウェアを簡単化できるため、より高速なシステ
ムを安価に提供できるという絶大なる効果を奏するもの
である。
As described above, according to the first aspect of the present invention, in the distributed shared multiprocessor system using the shared bus, the cache memory connected to the shared bus needs the tag duplication for the bus snoop. Therefore, the amount of hardware can be reduced. Moreover, since the hardware can be simplified, a great effect that a higher-speed system can be provided at low cost is achieved.

【0064】また、本発明の第2の発明によれば、階層
バス・システムにおける無効化命令におけるバスの使用
効率を上げ、さらに無効化命令を発行したモジュールは
無効化命令が完了するまでの時間が短くなるため早期に
次の処理を開始することができる。
According to the second aspect of the present invention, the bus use efficiency of the invalidation instruction in the hierarchical bus system is improved, and the module that issued the invalidation instruction waits until the invalidation instruction is completed. The next processing can be started early because of shortening.

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

【図1】 本発明の第1の実施例に係るマルチプロセッ
サシステムの概略構成図。
FIG. 1 is a schematic configuration diagram of a multiprocessor system according to a first embodiment of the present invention.

【図2】 プロセッサからローカル共有バスへリクエス
トが発行された場合のタグ情報と出力信号の対応表を示
す図。
FIG. 2 is a diagram showing a correspondence table of tag information and output signals when a request is issued from a processor to a local shared bus.

【図3】 システム共有バスからローカル共有バスへリ
クエストが発行された場合のタグ情報と出力信号の対応
表を示す図。
FIG. 3 is a diagram showing a correspondence table of tag information and output signals when a request is issued from the system shared bus to the local shared bus.

【図4】 リクエストを発行したプロセッサについての
タグ情報の遷移表を示す図。
FIG. 4 is a diagram showing a transition table of tag information regarding a processor that issued a request.

【図5】 リクエストを発行していないプロセッサにつ
いてのタグ情報の遷移表を示す図。
FIG. 5 is a diagram showing a transition table of tag information for a processor that has not issued a request.

【図6】 従来の技術を示す概略構成図。FIG. 6 is a schematic configuration diagram showing a conventional technique.

【図7】 本発明の第2の実施例に係るマルチプロセッ
サシステムの概略構成図。
FIG. 7 is a schematic configuration diagram of a multiprocessor system according to a second embodiment of the present invention.

【図8】 本実施例におけるバス・ブリッジの構成を示
す図。
FIG. 8 is a diagram showing a configuration of a bus bridge in the present embodiment.

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

100、200…ノード 300…システム共有バス 101、102、201、202…プロセッサ 103、104、203、204…キャッシュメモリ 105、205…ローカルメモリ 106、206…ローカル共有バス 107、207…バスブリッジ 108、109、208、209…CPU タグ情報 108’、109’、208’、209’…デュプリケ
ートされたCPU タグ情報 110、210… タグ情報シミュレーション手段 111、211…タグスヌープ手段 112、113、212、213…バスタグ情報 114、214…スヌープ要求判定手段 115、215…メモリ抑止判定手段 116、117、216、217…スヌープ要求信号 118、219…メモリ抑止信号 119、219…メモリインヒビット信号(MIH) 1、2…ローカル・バス 3、4、5、6…キャッシュメモリ 7、8、9、10…プロセッサ 11、12…バス・ブリッジ 13…グローバル・バス 14…メモリ・モジュール 15、16…無効化処理実行中信号 17、18…pull-up 抵抗
100, 200 ... Node 300 ... System shared bus 101, 102, 201, 202 ... Processor 103, 104, 203, 204 ... Cache memory 105, 205 ... Local memory 106, 206 ... Local shared bus 107, 207 ... Bus bridge 108, 109, 208, 209 ... CPU tag information 108 ', 109', 208 ', 209' ... Duplicate CPU tag information 110, 210 ... Tag information simulation means 111, 211 ... Tag snoop means 112, 113, 212, 213 ... Bus tag information 114, 214 ... Snoop request determination means 115, 215 ... Memory inhibition determination means 116, 117, 216, 217 ... Snoop request signal 118, 219 ... Memory inhibition signal 119, 219 ... Memory inhibit signal (MIH) 1, 2 ... B Cull bus 3, 4, 5, 6 ... Cache memory 7, 8, 9, 10 ... Processor 11, 12 ... Bus bridge 13 ... Global bus 14 ... Memory module 15, 16 ... Invalidation process execution signal 17 , 18… pull-up resistance

───────────────────────────────────────────────────── フロントページの続き (72)発明者 若森 修 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Osamu Wakamori 1 Komukai Toshiba-cho, Saiwai-ku, Kawasaki-shi, Kanagawa Incorporated Toshiba Research and Development Center

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 第1のバスによって接続された複数のノ
ードの間でデータの一貫性を保持するマルチプロセッサ
システムであって、 該ノードは、 キャッシュメモリを備えるプロセッサと、 メモリ装置と、 前記プロセッサと前記メモリ装置とを接続する第2のバ
スと、 前記プロセッサ及び前記メモリ装置と前記第1のバスと
を結合するバスブリッジ装置とを備え、 該バスブリッジ装置は、 前記第2のバスに結合されているキャッシュメモリのタ
グ情報をシミュレートする手段と、 この手段により得られたタグ情報に基づき前記メモリ装
置に対してメモリ動作を抑止することを示すメモリ抑止
信号を出力する手段と、 前記タグ情報に基づき前記キャッシュメモリに対してス
ヌープ動作を行う必要があることを示すスヌープ要求信
号を出力する手段とを具備するものであることを特徴と
するマルチプロセッサシステム。
1. A multiprocessor system for maintaining data consistency among a plurality of nodes connected by a first bus, the node comprising a processor having a cache memory, a memory device, and the processor. And a bus bridge device for connecting the processor and the memory device to the first bus, the bus bridge device being connected to the second bus. Means for simulating tag information of a cache memory that is stored, means for outputting a memory inhibition signal indicating that the memory operation is inhibited to the memory device based on the tag information obtained by the means, and the tag Output a snoop request signal indicating that it is necessary to perform a snoop operation to the cache memory based on the information. And a multiprocessor system.
【請求項2】 第1のバスによって接続された複数のノ
ードの間でデータの一貫性を保持するマルチプロセッサ
システムであって、 該ノードは、 キャッシュメモリを備えるプロセッサと、 前記プロセッサを接続するための第2のバスと、 前記第2のバスと前記第1のバスとを結合するためのバ
スブリッジ装置とを備え、 該バスブリッジ装置は、 前記第1のバスを使用する権利を獲得したバス命令を、
このバス命令と同時に到着し且つ同じメモリアドレスに
対するものである他のバス命令に優先して前記第2のバ
スに発行する手段と、 前記第2のバスからの前記キャッシュメモリに対する無
効化命令を前記第1のバスに発行する場合に、前記第1
のバスを使用する権利を獲得した時点で、前記無効化要
求が完了したことを示す信号を前記第2のバスに出力す
る手段とを具備するものであることを特徴とするマルチ
プロセッサシステム。
2. A multiprocessor system for maintaining data consistency among a plurality of nodes connected by a first bus, the node connecting a processor having a cache memory and the processor. A second bus, and a bus bridge device for coupling the second bus and the first bus, the bus bridge device acquiring the right to use the first bus. Command
Means for issuing to the second bus prior to other bus instructions that arrive at the same time as this bus instruction and are for the same memory address; and an invalidating instruction for the cache memory from the second bus. When issuing to the first bus, the first
Means for outputting to the second bus a signal indicating that the invalidation request has been completed when the right to use the bus has been acquired.
JP6148399A 1994-06-30 1994-06-30 Multiprocessor system Pending JPH0816475A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6148399A JPH0816475A (en) 1994-06-30 1994-06-30 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6148399A JPH0816475A (en) 1994-06-30 1994-06-30 Multiprocessor system

Publications (1)

Publication Number Publication Date
JPH0816475A true JPH0816475A (en) 1996-01-19

Family

ID=15451919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6148399A Pending JPH0816475A (en) 1994-06-30 1994-06-30 Multiprocessor system

Country Status (1)

Country Link
JP (1) JPH0816475A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099583A1 (en) * 2006-02-28 2007-09-07 Fujitsu Limited System controller and cache control method
JP2008204101A (en) * 2007-02-19 2008-09-04 Nec Computertechno Ltd Bus interface adapter, data transfer method, data transfer system, and information processor
US8991182B2 (en) 2009-02-17 2015-03-31 Mcalister Technologies, Llc Increasing the efficiency of supplemented ocean thermal energy conversion (SOTEC) systems
JP2015512102A (en) * 2012-03-02 2015-04-23 エイアールエム リミテッド Data processing apparatus having first and second protocol domains and method relating to data processing apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099583A1 (en) * 2006-02-28 2007-09-07 Fujitsu Limited System controller and cache control method
US8327081B2 (en) 2006-02-28 2012-12-04 Fujitsu Limited Information processing device and method for controlling the same
JP2008204101A (en) * 2007-02-19 2008-09-04 Nec Computertechno Ltd Bus interface adapter, data transfer method, data transfer system, and information processor
US8991182B2 (en) 2009-02-17 2015-03-31 Mcalister Technologies, Llc Increasing the efficiency of supplemented ocean thermal energy conversion (SOTEC) systems
JP2015512102A (en) * 2012-03-02 2015-04-23 エイアールエム リミテッド Data processing apparatus having first and second protocol domains and method relating to data processing apparatus
US9372798B2 (en) 2012-03-02 2016-06-21 Arm Limited Data processing apparatus having first and second protocol domains, and method for the data processing apparatus

Similar Documents

Publication Publication Date Title
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US5909699A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US6779086B2 (en) Symmetric multiprocessor systems with an independent super-coherent cache directory
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
KR100465583B1 (en) Non-uniform memory access(numa) data processing system that speculatively forwards a read request to a remote processing node and communication method in the system
CA2280172C (en) Non-uniform memory access (numa) data processing system that holds and reissues requests at a target processing node in response to a retry
US5659709A (en) Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
US20030097529A1 (en) High performance symmetric multiprocessing systems via super-coherent data mechanisms
KR100228940B1 (en) Method for maintaining memory coherency in a computer system having a cache
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
JP2001503889A (en) System and method for maintaining memory coherence in a computer system having multiple system buses
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
USRE40921E1 (en) Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
US6226718B1 (en) Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system
CA2279138C (en) Non-uniform memory access (numa) data processing system that decreases latency by expediting rerun requests
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
WO1997004392A1 (en) Shared cache memory device
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation
JPH0816475A (en) Multiprocessor system
US6986011B2 (en) High speed memory cloner within a data processing system