JPH08320828A - Multiprocessor system - Google Patents

Multiprocessor system

Info

Publication number
JPH08320828A
JPH08320828A JP7124634A JP12463495A JPH08320828A JP H08320828 A JPH08320828 A JP H08320828A JP 7124634 A JP7124634 A JP 7124634A JP 12463495 A JP12463495 A JP 12463495A JP H08320828 A JPH08320828 A JP H08320828A
Authority
JP
Japan
Prior art keywords
lock
memory
block
processor
access
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.)
Withdrawn
Application number
JP7124634A
Other languages
Japanese (ja)
Inventor
均 ▲高▼木
Hitoshi Takagi
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP7124634A priority Critical patent/JPH08320828A/en
Publication of JPH08320828A publication Critical patent/JPH08320828A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: To reduce a traffic at the time of access from respective processors to the common memory in the multiprocessor system which enables a large number of processors to a access the common memory. CONSTITUTION: The respective processors 1-4 are provided with cache memories respectively and a TAG entry in each cache is provided with F bits 192 and 193 indicating whether or not locking is successful in addition to an entry address 190 and the memory block of the corresponding address. Each block of a memory 6 is provided with a lock bit L indicating the lock state of the corresponding block. The processor 1 when accessing the memory checks the entry address 190 of the TAG part of its cache and sends a lock request to the memory 6 in case of a mishit. The memory 6 checks the lock bit L of the block of the address and sets the bit to 1 unless the bit shows a lock state to lock the block. This processor can exclusively use access to this block thereafter.

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, and more particularly to a common memory and a plurality of processors each having a cache memory for storing a part of data stored in the memory in a block unit, these processors and a common processor. The present invention relates to a multiprocessor system including an interconnecting means for connecting memories.

【0002】[0002]

【従来の技術】この様なマルチプロセッサシステムにお
いて、プロセッサ間で同期をとることはシステムの動作
をコンシステントな状態に保つために必要である。例え
ば、メモリや入出力(I/O)などの資源をそれぞれ別
のプロセッサで走行している複数のプロセスに割り当て
る作業を考える時、同一のメモリ領域や同一のI/Oを
複数のプロセスに同時に割り当てることは避けなければ
ならない。このため、オペレーティングシステムの中
で、メモリ割り当てやI/Oの割り当て処理はある一時
点に一つしか動作しないようにするように同期する必要
がある(排他制御)。
2. Description of the Related Art In such a multiprocessor system, it is necessary to synchronize the processors in order to keep the operation of the system consistent. For example, when considering the work of allocating resources such as memory and input / output (I / O) to multiple processes running on different processors, the same memory area and the same I / O can be simultaneously assigned to multiple processes. Allocation should be avoided. Therefore, in the operating system, it is necessary to synchronize memory allocation and I / O allocation processing so that only one operation can be performed at a certain time point (exclusive control).

【0003】また、今日のアプリケーションでは、処理
を複数のプロセッサに割り当てて行うことが行われる。
その場合にもプロセッサ間の同期が必要である。例え
ば、あるプロセッサの処理の結果をもう一つのプロセッ
サで処理する必要となる場合がその例である。この場合
にも、前のプロセッサが結果を格納する領域を排他制御
により排他的に獲得し、後のプロセッサは結果を格納す
る領域の獲得に失敗し、前のプロセッサの結果が出るま
で待ち合わせるように同期制御しなければならない。
Further, in today's applications, processing is performed by allocating processing to a plurality of processors.
Even in that case, synchronization between processors is necessary. For example, the case where the result of the processing of one processor needs to be processed by another processor is an example. Even in this case, the former processor exclusively acquires the area for storing the result by the exclusive control, and the latter processor fails to acquire the area for storing the result, and waits until the result of the previous processor comes out. It must be controlled synchronously.

【0004】この様な同期制御を行う場合、「ロック」
という概念が用いられる。排他的に獲得する領域に対し
てロックを一つ設ける。このロックは、各プロセッサが
共通にアクセスできるメモリや特殊レジスタを用いて実
現するロックビットのアクセスの状態により管理する方
式であり、その方法は以下の通りである。
When performing such a synchronous control, "lock"
Is used. One lock is provided for the area to be exclusively acquired. This lock is a method of managing by the access state of a lock bit realized by using a memory or a special register that can be commonly accessed by each processor, and the method is as follows.

【0005】すなわち、あるプロセッサが排他的にアク
セスする領域を、アクセスする前に、必ずロックビット
を参照するようにする。例えば、ロックビットの初期値
は0とし、あるプロセッサがロック獲得中であれば1と
なっているものとする。このロックビット参照の結果得
られた値が0であれば、いずれのプロセッサもロックを
獲得していないのであるから、ロックビットを1にセッ
トする。
That is, the lock bit is always referred to before the area which is exclusively accessed by a certain processor is accessed. For example, it is assumed that the initial value of the lock bit is 0, and it is 1 when a certain processor is acquiring the lock. If the value obtained as a result of this lock bit reference is 0, it means that neither processor has acquired the lock, so the lock bit is set to 1.

【0006】ロックビットの値が既に1になっていれ
ば、他のプロセッサがロックを獲得中であるから、ロッ
クビットが0になるまで参照を続けることになる。尚、
1のプロセッサが1となっているロックビットを参照し
続けているときに他のプロセッサのアクセスがロックビ
ットにないこと(参照と更新の不可分性)をハードウェ
アが保証する必要がある。
If the value of the lock bit is already 1, another processor is in the process of acquiring the lock, and therefore the reference is continued until the lock bit becomes 0. still,
While one processor continues to refer to the lock bit that is 1, the hardware needs to ensure that the lock bit is not accessed by another processor (the inseparability of reference and update).

【0007】このロックビットはシステムにおいて複数
存在することも考えられる。例えば、メモリの1ワード
毎にロックビットを設けても良いし、メモリバンク単
位,キャッシュメモリのブロック単位,プロセッサ毎に
設けても良い。ワード毎に設ける方式では、ロックビッ
トの数がワード数分必要であるからコスト高となり、よ
ってどの単位でロックビットを設けるかはコストと性能
の兼ね合いにより決定されることになる。
There may be a plurality of lock bits in the system. For example, the lock bit may be provided for each word of the memory, or may be provided for each memory bank, each block of the cache memory, and each processor. In the method provided for each word, the number of lock bits is required for the number of words, resulting in high cost, and therefore, in which unit the lock bit is provided is determined by the balance between cost and performance.

【0008】上述した参照と更新の不可分性は通常メモ
リシステムにより保証される。例えば、特開平2−23
2747号公報に示される様に、メモリ装置において、
どのアドレスがロックされているかを判定し、後続のア
クセス要求が拒絶されるべきものであるかどうかを、い
かに効率良く判断するかに技術開発の重点が置かれてい
る。
The atomicity of references and updates mentioned above is usually guaranteed by a memory system. For example, Japanese Patent Laid-Open No. 2-23
As disclosed in Japanese Patent No. 2747, in a memory device,
The focus of technological development is to determine which address is locked and how to efficiently determine whether a subsequent access request should be rejected.

【0009】[0009]

【発明が解決しようとする課題】ところが、マルチプロ
セッサシステムにおいては、プロセッサの数が増加する
傾向にあり、例えば100個以上のプロセッサが用いら
れる様なシステムがある。この様なシステムでは、アプ
リケーションレベルでの並列処理の浸透によるプロセッ
サ間同期の増加により、ロックが獲得できない場合のロ
ックビットの参照の繰り返しが、性能に与える影響が問
題になってきている。すなわち、ロック待ちにより各プ
ロセッサからのロックビットへのアクセスが頻発し、メ
モリトラフィックを増大させ、結果としてシステム性能
の低下を招来することになる。
However, in a multiprocessor system, the number of processors tends to increase, and there is a system in which, for example, 100 or more processors are used. In such a system, due to the increase in inter-processor synchronization due to the penetration of parallel processing at the application level, the effect of repeated reference of the lock bit when the lock cannot be acquired has become a problem. That is, due to the lock wait, each processor frequently accesses the lock bit, which increases the memory traffic, resulting in a decrease in system performance.

【0010】本発明の目的は、プロセッサのメモリにお
けるロック待ち時のロックの参照のためのメモリトラフ
ィックを大幅に減少させてシステム性能の低下を可能と
したマルチプロセッサシステムを提供することである。
An object of the present invention is to provide a multiprocessor system capable of reducing system performance by significantly reducing memory traffic for referring to a lock when waiting for a lock in a memory of a processor.

【0011】[0011]

【課題を解決するための手段】本発明によれば、共通メ
モリと、前記メモリの格納データの一部をブロック単位
で格納するキャッシュメモリを各々が有する複数のプロ
セッサと、これ等プロセッサ及び共通メモリ間を接続す
るインタコネクト手段とを含むマルチプロセッサシステ
ムであって、前記共通メモリに設けられ、前記ブロック
単位にそのブロックの排他的占有状態を示すロック表示
手段と、前記プロセッサの各々に設けられ、前記共通メ
モリへのアクセスの発生に応答して当該アクセスアドレ
スに対応するエントリブロックが前記キャッシュメモリ
に存在しないとき前記共通メモリへのロック要求を生成
する手段と、前記共通メモリに設けられ、前記ロック要
求に応答して前記アクセスアドレスに対応するブロック
のロック表示手段が非ロックであればロック表示を行い
ロック成功を、既にロックであればロック失敗を夫々要
求元プロセッサへ送出するロック制御手段と、前記プロ
セッサの各々に設けられ、前記ロック成功か失敗に夫々
応答して自キャッシュメモリへロック成功か失敗を示す
ロック成功情報と共に前記アクセスアドレス情報を登録
する登録制御手段と、を有することを特徴とするマルチ
プロセッサシステムが得られる。
According to the present invention, a common memory and a plurality of processors each having a cache memory for storing a part of data stored in the memory in block units, and these processors and common memory A multiprocessor system including an interconnecting means for connecting between, a lock display means provided in the common memory and showing an exclusive occupation state of the block in the block unit, and provided in each of the processors, Means for generating a lock request to the common memory when an entry block corresponding to the access address does not exist in the cache memory in response to the occurrence of the access to the common memory; Lock display means for the block corresponding to the access address in response to the request Lock control means for sending a lock indication to the requesting processor if it is not locked and a lock failure if it is already locked; and a lock control means provided in each of the processors for responding to the lock success or failure respectively. And a registration control means for registering the access address information together with lock success information indicating lock success or failure in its own cache memory.

【0012】[0012]

【作用】各プロセッサ上のキャッシュメモリにキャッシ
ュブロック単位のクロック獲得の成功・失敗を記録する
ビットを有することにより、プロセッサがあるメモリブ
ロックのロックを獲得できなかった場合、キャッシュ上
のアクセスで待つようにすることで、メモリトラフィッ
クを減少し、システム性能の低下を防止する。
When the processor cannot acquire the lock of the memory block, the cache memory on each processor has a bit for recording the success / failure of the clock acquisition for each cache block, so that the access on the cache is waited for. This reduces memory traffic and prevents system performance degradation.

【0013】[0013]

【実施例】以下、本発明の実施例について図面を用いて
説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0014】図1は本発明の実施例の概略システムブロ
ック図であり、複数のプロセッサ1〜4と、これ等に共
通のメモリ6とがインタコネクション5により相互接続
されている。
FIG. 1 is a schematic system block diagram of an embodiment of the present invention. A plurality of processors 1 to 4 and a memory 6 common to these are interconnected by an interconnection 5.

【0015】各プロセッサはプログラムの実行を行うも
ので、各プロセッサで実行されるプログラムとそのプロ
グラムが必要とするデータはメモリ6上に置かれてい
る。そのために、プログラムやデータのアクセスのため
に各プロセッサからインタコネクション5に対してメモ
リアクセス要求が発せられる。インタコネクション5は
各プロセッサからの要求の調停を取り、メモリ6へのア
クセスを制御する。
Each processor executes a program, and the program executed by each processor and the data required by the program are stored in the memory 6. Therefore, a memory access request is issued from each processor to the interconnection 5 to access a program or data. The interconnection 5 arbitrates requests from each processor and controls access to the memory 6.

【0016】各プロセッサのアクセスは同時にプロセッ
サの数だけ発生する可能性があるが、メモリは一つなの
で当然メモリアクセスの結果は同時ではなく、逐次的に
ならざるを得ない。このため、プログラムやデータのア
クセス時間はプロセッサ一台の場合に比べて悪化する。
Although there is a possibility that the access of each processor occurs at the same time as the number of processors, since the number of memories is one, the result of the memory access must be sequential, not simultaneous. Therefore, the access time of the program or data becomes worse than in the case of one processor.

【0017】この様な、マルチプロセッサシステムにお
けるメモリアクセスを改善するために、各プロセッサに
キャッシュメモリを備えることが通常行われている。キ
ャッシュメモリは一度アクセスしたメモリアクセスの結
果をバッファリングする比較的小容量のメモリである。
In order to improve memory access in such a multiprocessor system, each processor is usually provided with a cache memory. The cache memory is a memory having a relatively small capacity that buffers the result of memory access once accessed.

【0018】キャッシュメモリは複数のエントリからな
る。アクセスしたメモリのアドレスとデータをこのエン
トリに登録する。エントリはアドレスに格納するTAG
部とそのアドレスに対応するデータを保持するDATA
部よりなる。TAG部にはアドレスを格納する部分19
0とそのエントリに格納された情報が有効かどうかを示
す有効(V)ビット191とを含む。
The cache memory is composed of a plurality of entries. Register the accessed memory address and data in this entry. The entry is a TAG that is stored at the address
DATA that holds the data corresponding to the copy and its address
Consists of parts. A portion 19 for storing an address in the TAG portion
It contains a 0 and a valid (V) bit 191 that indicates whether the information stored in that entry is valid.

【0019】本実施例では、このTAG部に、有効
(V)ビットに加えて、ロック成功(S)ビット192
とロック失敗(F)ビット193とを設け、ロック獲得
待ちのメモリトラフィックの減少を目指している。すな
わち、メモリ上のロックをプロセッサ上のキャッシュメ
モリの管理するブロック単位に設け、プロセッサが上記
のロック操作によりロックを獲得すると、対応するキャ
ッシュTAGのロック成功を示すビットをセットする。
また、ロック獲得を失敗すると、対応するキャッシュT
AGのロック失敗を示すビットをセットする。
In this embodiment, in addition to the valid (V) bit, the lock success (S) bit 192 is added to the TAG portion.
And a lock failure (F) bit 193 are provided to reduce the memory traffic waiting for the lock acquisition. That is, a lock on the memory is provided for each block managed by the cache memory on the processor, and when the processor acquires the lock by the above-mentioned lock operation, a bit indicating the lock success of the corresponding cache TAG is set.
If the lock acquisition fails, the corresponding cache T
The bit indicating the AG lock failure is set.

【0020】以降、ロックビットのアクセスはキャッシ
ュ上で行われ、メモリへのリクエストは減少する。ロッ
クを獲得したプロセッサがメモリにロック解除(アンロ
ック)要求を出すと、メモリはロックビットの状態をロ
ックされていない状態に変更すると共に、全プロセッサ
に対して該当キャッシュブロックの無効化要求を発行
し、ロック失敗で待っているプロセッサのキャッシュメ
モリの該当エントリも無効化されるので、再びメモリへ
ロック獲得要求を発行する様になる。
After that, the lock bit is accessed on the cache, and the number of requests to the memory is reduced. When the processor that has acquired the lock issues a lock release (unlock) request to the memory, the memory changes the state of the lock bit to the unlocked state and issues a request to invalidate the corresponding cache block to all processors. However, since the corresponding entry in the cache memory of the processor waiting due to the lock failure is also invalidated, the lock acquisition request is issued again to the memory.

【0021】プロセッサ1〜4の各々は、図2に示す如
く、命令実行部110とキャッシュメモリ120とを有
する。命令実行部110は実際にプログラムの実行を行
うものであり、この命令実行部のプログラムアクセスや
データアクセスは、インタフェースINPUT130に
よりキャッシュメモリ120へ要求され、その結果がイ
ンタフェースOUTPUT140により送出される。
As shown in FIG. 2, each of the processors 1 to 4 has an instruction executing section 110 and a cache memory 120. The instruction execution unit 110 actually executes a program, and the program access and data access of this instruction execution unit are requested to the cache memory 120 by the interface INPUT 130, and the result is sent out by the interface OUTPUT 140.

【0022】インタフェースINPUT130にはアク
セスコマンドとアドレスとデータとからなるパケットで
あり、図7(A)にフォーマットが示されている。この
パケットは命令実行部110からインタフェースINP
UT130を介してキャッシュメモリ120へ送出され
る。このパケットの「アクセスコマンド」はメモリアク
セスの種別を指示するものであり、リード,ライト,ロ
ック,アンロックがある。
The interface INPUT 130 is a packet composed of an access command, an address and data, the format of which is shown in FIG. 7 (A). This packet is sent from the instruction execution unit 110 to the interface INP.
It is sent to the cache memory 120 via the UT 130. The "access command" of this packet indicates the type of memory access, and includes read, write, lock, and unlock.

【0023】リードはアドレスで指定されたメモリのワ
ードのデータを要求するものであり、ライトはアドレス
で指定されたメモリのワードにライトデータで指定され
た内容を書込むものである。ロックはアドレスで指定さ
れたメモリのワードをロックすると同時に、そのメモリ
のワードのデータを要求するものである。アンロックは
アドレスが指定されたワードのロックを解除すると同時
に、ライトデータをそのワードに書込むものである。
Read requests data of a word in a memory specified by an address, and write writes data specified by a write data in a word of a memory specified by an address. Lock locks the word in the memory specified by the address, and at the same time requests the data in the word in the memory. Unlock unlocks the word whose address is specified and simultaneously writes the write data to the word.

【0024】このパケットの「アドレス」はアクセスコ
マンドで指定する操作を行うメモリアドレスを指定する
ものである。「データ」はアクセスコマンドがライトの
ときにアドレスで指定されたメモリアドレスに書込むデ
ータを指定するものである。
The "address" of this packet designates a memory address for performing the operation designated by the access command. “Data” specifies the data to be written to the memory address specified by the address when the access command is write.

【0025】インタフェースOUTPUT140はリプ
ライステータスとリプライデータとからなるパケットが
INPUTパケットの応答としてキャッシュメモリから
命令実行部110へ送出される。図7(B)にこのOU
TPUTパケットを示す。「リプライステータス」はイ
ンタフェースINPUT130で指定された要求の結果
を表示するものであり、データリプライ,ロック成功,
ロック失敗がある。
The interface OUTPUT 140 sends a packet of reply status and reply data from the cache memory to the instruction execution unit 110 as a response to the INPUT packet. This OU is shown in FIG.
9 shows a TPUT packet. The “reply status” displays the result of the request specified by the interface INPUT 130, and includes data reply, lock success, and
There is a lock failure.

【0026】データリプライはリード動作が終了してそ
の結果のデータがリプライデータとして返送される。ロ
ック成功はロックで要求したメモリ上のワードのロック
が成功したことを示すと同時に、ワードのデータをリプ
ライデータとして返送する。ロック失敗はロックで要求
したメモリ上のワードのロックが失敗したことを示す。
In the data reply, the read operation is completed and the resulting data is returned as reply data. The lock success indicates that the word on the memory requested by the lock has been successfully locked, and at the same time, the word data is returned as reply data. The lock failure indicates that the lock of the word in the memory requested by the lock has failed.

【0027】このパケットの「リプライデータ」はリプ
ライステータスのデータリプライとロック成功において
指定されたメモリのワードのデータを返送するものであ
る。
The "reply data" of this packet returns the data reply of the reply status and the data of the word of the memory designated in the lock success.

【0028】キャッシュメモリ120は、図3に示す如
く、TAG部121とDATA部122とからなってい
る。TAG部121とDATA部122は各々対応する
複数のワードからなっており、1つのTAGとDATA
とのペアをエントリと称し、メモリアクセスの結果はエ
ントリ単位でキャッシングの単位となる。
As shown in FIG. 3, the cache memory 120 comprises a TAG section 121 and a DATA section 122. The TAG section 121 and the DATA section 122 are composed of a plurality of corresponding words, and one TAG and DATA are included.
The pair of and is called an entry, and the result of the memory access becomes a unit of caching on an entry basis.

【0029】TAGエントリは図4の如くアドレス部1
90,有効(V)ビット191,ロック成功(S)ビッ
ト192,ロック失敗(F)ビット193とからなって
いる。このTAGエントリの「アドレス」190は対応
データ(DATA)部122のメモリアドレスを示す。
The TAG entry has the address section 1 as shown in FIG.
90, valid (V) bit 191, lock success (S) bit 192, lock failure (F) bit 193. The “address” 190 of this TAG entry indicates the memory address of the corresponding data (DATA) unit 122.

【0030】「有効(V)ビット」191はこのエント
リの内容が有効であることを示し、論理値1で有効を示
す。「ロック成功(S)ビット」192はこのエントリ
のメモリアドレスのロックを獲得していることを示し、
論理値1で成功を示す。「ロック失敗(F)ビット」1
93はこのエントリのメモリアドレスのロックの獲得に
失敗していることを示し、論理値1で失敗を示す。
A "valid (V) bit" 191 indicates that the content of this entry is valid, and a logical value 1 indicates that it is valid. "Lock success (S) bit" 192 indicates that the lock of the memory address of this entry is acquired,
A logical value of 1 indicates success. "Lock failure (F) bit" 1
Reference numeral 93 indicates that acquisition of the memory address lock of this entry has failed, and a logical value 1 indicates failure.

【0031】本実施例では、キャッシングの単位である
ブロックサイズを図5に示す如く4ワードと仮定する。
すなわち、あるワードのリードアクセスを命令実行部1
10より要求されたアドレスに対応するデータがキャッ
シュメモリの全エントリに見付からなかった時(ミスヒ
ット)、この要求アドレスを含む4ワード単位のブロッ
クをメモリ6から読出して適当なエントリへ登録するも
のとする。
In this embodiment, it is assumed that the block size which is a unit of caching is 4 words as shown in FIG.
That is, the read access of a certain word is performed by the instruction execution unit 1
When the data corresponding to the address requested by 10 is not found in all the entries of the cache memory (miss hit), a 4-word unit block including the requested address is read from the memory 6 and registered in an appropriate entry. To do.

【0032】キャッシュメモリはメモリアクセスのため
の外部インタフェース140とメモリインタフェースで
あるOUTBOUND150とINBOUND160と
を有している。メモリインタフェースOUTBOUND
150は図7(C)に示す如く、メモリコマンドとアド
レスとデータからなるパケットである。
The cache memory has an external interface 140 for memory access, and OUTBOUND150 and INBOUND160 which are memory interfaces. Memory interface OUTBOUND
As shown in FIG. 7C, 150 is a packet including a memory command, an address and data.

【0033】このパケットの「メモリコマンド」はメモ
リに対する動作要求、または他プロセッサに対する要求
を示す。このコマンドには、ブロックリード,ブロック
ライト,ロック,アンロックがある。
The "memory command" of this packet indicates an operation request to the memory or a request to another processor. This command includes block read, block write, lock, and unlock.

【0034】このパケットの「アドレス」はブロックリ
ード,ブロックライト,ロック,アンロックの場合、動
作の対象となるメモリのアドレスを示す。「データ」は
ブロックライトの場合ライトデータを示す。
The "address" of this packet indicates the address of the memory to be operated in the case of block read, block write, lock and unlock. “Data” indicates write data in the case of block write.

【0035】メモリインタフェースINBOUND16
0は図7(D)に示す如くステータスとアドレスとデー
タとからなるパケットである。このパケットの「ステー
タス」はインタコネクション5からの動作要求を示し、
データリプライとバリッドとの2つがある。
Memory interface INBOUND16
0 is a packet including a status, an address and data as shown in FIG. The "status" of this packet indicates the operation request from the interconnection 5,
There are two types, data reply and valid.

【0036】「アドレス」はステータスがインバリッド
の場合に無効化を要求するアドレスを指定するものであ
り、「データ」はステータスがデータリプライの場合リ
プライデータを示す。
"Address" designates an address for which invalidation is requested when the status is invalid, and "data" indicates reply data when the status is data reply.

【0037】メモリ6は図6に示す如くインタコネクシ
ョン5とのインタフェースREQUEST2100とイ
ンタフェースREPLY2200とを有し、複数のメモ
リワード2001と各メモリワードの4ワード(キャッ
シュメモリ120上のブロックと同一サイズ)のブロッ
ク毎に設けられたロック(L)ビット2002とからな
っている。
The memory 6 has an interface REQUEST 2100 and an interface REPLY 2200 with the interconnection 5 as shown in FIG. 6, and has a plurality of memory words 2001 and four words of each memory word (the same size as the block on the cache memory 120). A lock (L) bit 2002 provided for each block.

【0038】インタフェースREQUESTパケットは
図7(E)に示す如くコマンドとアドレスとノードから
なり、「コマンド」はブロックリード,ブロックライ
ト,ロック,アンロックを示す。「アドレス」は各コマ
ンドに対するメモリアドレスを示し、「ノード」はリク
エストを発行したプロセッサ番号(ノード番号)を示
す。
The interface REQUEST packet consists of a command, an address and a node as shown in FIG. 7E, and "command" indicates block read, block write, lock and unlock. The “address” indicates the memory address for each command, and the “node” indicates the processor number (node number) that issued the request.

【0039】インタフェースREPLYパケットは図7
(F)に示す如くノードとステータスとデータとアドレ
スからなり、「ノード」はリプライ返送先のプロセッサ
番号(ノード番号)を示す。「ステータス」はデータリ
プライ,ロック成功,ロック失敗,インバリッドを示
し、「データ」はデータリプライ,ロック成功時のリプ
ライデータを示す。「アドレス」はステータスがインバ
リッドのときに無効化すべきアドレスを示す。
The interface REPLY packet is shown in FIG.
As shown in (F), it consists of a node, status, data, and address, and "node" indicates the processor number (node number) of the reply return destination. “Status” indicates data reply, lock success, lock failure, and invalid, and “data” indicates reply data at the time of data reply and lock success. “Address” indicates an address that should be invalidated when the status is invalid.

【0040】インタコネクション5は、プロセッサ1〜
4がメモリに対する要求を行う場合、各プロセッサの要
求を調停しメモリに要求を送出する。OUTPUTBO
UNDにより与えられたコマンドとアドレスにノード番
号を付してREQUESTに送出する。
The interconnection 5 includes processors 1 to 1.
When 4 makes a request to the memory, it arbitrates the request of each processor and sends the request to the memory. OUTPUTBO
The node number is added to the command and address given by UND, and the result is sent to REQUEST.

【0041】また、インタコネクション5は、メモリ6
がリプライデータを返すとき、指定されたプロセッサに
データを返し、REPLYより与えられたステータスと
データとをINBOUNDに送出する。更に、インタコ
ネクション5はメモリ6が無効化要求を行うとき、RE
PLYで指定されたノード番号に従って相手プロセッサ
に無効化要求と無効化すべきアドレスを送出する。ま
た、REPLYにより与えられたコマンドとアドレスを
INBOUNDへ送るものである。
Further, the interconnection 5 is a memory 6
Returns the reply data to the designated processor, and sends the status and data given by REPLY to INBOUND. Further, the interconnection 5 is RE when the memory 6 makes an invalidation request.
The invalidation request and the address to be invalidated are transmitted to the partner processor according to the node number designated by PLY. It also sends the command and address given by REPLY to INBOUND.

【0042】以上の構成において、本発明の実施例のメ
モリアクセス動作について図8〜図11の各処理フロー
チャートを用いて詳述する。メモリアクセス動作は、先
ずメモリアクセス(リード/ライト)を行うべきプロセ
ッサがメモリロック処理を行うことから始まり、メモリ
ロックが成功すれば、当該メモリアクセスが実行され、
このメモリアクセスが全て終了すれば、アンロック処理
を行って動作終了となる。
The memory access operation according to the embodiment of the present invention having the above configuration will be described in detail with reference to the process flow charts of FIGS. The memory access operation starts when the processor that should perform the memory access (read / write) first performs the memory lock process, and if the memory lock is successful, the memory access is executed,
When all the memory accesses are completed, the unlock process is performed and the operation ends.

【0043】図8を参照すると、命令実行部110から
メモリアクセス要求があると、キャッシュメモリ120
では、アクセス要求アドレスと有効な(V=1)TAG
部121の各エントリとが比較され(10300)、一
致不一致が判断される(10310)。不一致であれば
メモリロック要求となり(10360)、一致すればそ
のエントリのVビット191が調べられ(1032
0)、有効でなければ(1でなければ)、メモリロック
要求となる(10360)。有効であれば(1であれ
ば)、そのエントリのS,Fの各ビット192,193
の状態に応じて動作が分かれる(10330)。
Referring to FIG. 8, when there is a memory access request from the instruction execution unit 110, the cache memory 120
Then, the access request address and the valid (V = 1) TAG
Each entry of the section 121 is compared (10300), and it is determined whether there is a match (10310). If they do not match, a memory lock request is made (10360), and if they match, the V bit 191 of the entry is checked (1032).
0), if not valid (if not 1), a memory lock request is issued (10360). If valid (if 1), S and F bits 192, 193 of the entry
The operation is divided according to the state (10330).

【0044】対応ブロックのメモリロック要求がキャッ
シュメモリ120からメモリ6へ送出されると(103
60)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(10370)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成功のリプライが要求元へ返
送される(10340)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われる(10350)。
When a memory lock request for the corresponding block is sent from the cache memory 120 to the memory 6 (103
60), the lock bit L for the block is checked in the memory 6 (10370), and the processing is divided depending on the state of the lock bit L. When L = 0, the lock bit L is set to 1, and the reply of the lock success is returned to the request source (10340). In the request source processor that received this reply, the cache T corresponding to this block
The state of the AG unit 121 is V = 1, S = 1, F = 0,
Cache DATA unit 122 of corresponding memory block
Is loaded (10350).

【0045】ステップ10380でL=1と判断される
と、このメモリブロックは既に他のプロセッサにロック
を獲得されていることになるので、メモリ6からロック
失敗のリプライが要求元へ返される(10390)。要
求元プロセッサでは、このブロックに対応したエントリ
のTAG部の状態がV=1,S=0,F=1とされる
(10400)。このとき、このメモリブロックのキャ
ッシュDARA部へのロードは行われないことは当然で
ある。
If it is determined in step 10380 that L = 1, this memory block has already been locked by another processor, and therefore a reply of lock failure is returned from the memory 6 to the request source (10390). ). In the requesting processor, the state of the TAG portion of the entry corresponding to this block is set to V = 1, S = 0, F = 1 (10400). At this time, it is natural that this memory block is not loaded into the cache DARA part.

【0046】ステップ10330において、そのエント
リのS,Fの各ビットの状態が(S,F)=(0,0)
であれば、そのエントリが無効化(V=0)とされ、後
はステップ10340,10350の処理がなされる。
At step 10330, the state of each bit of S and F of the entry is (S, F) = (0,0).
If so, the entry is invalidated (V = 0), and the processes of steps 10340 and 10350 are performed thereafter.

【0047】(S,F)=(0,1)であれば、このエ
ントリは他のプロセッサにより既にロックされているも
のと判断され、ロック失敗が命令実行部110へ返され
る(10360)。(S,F)=(1,0),(1,
1)の場合、この状態はあり得ない(この状態でロック
要求が再度発生されることはない)ので、エラーとして
処理される(10410)。
If (S, F) = (0, 1), it is determined that this entry has already been locked by another processor, and a lock failure is returned to the instruction execution unit 110 (10360). (S, F) = (1,0), (1,
In the case of 1), this state is not possible (the lock request is not generated again in this state), so that it is processed as an error (10410).

【0048】図9にはメモリアクセスがリードアクセス
の場合のリード動作を示すフローチャートである。リー
ド要求アドレスとTAG部の有効な各エントリとが比較
され(10000)、一致するかどうかが判定される
(10010)。一致すればキャッシュヒットであり、
対応するDATA部のデータがリプライデータとして返
送される(10020)。そのときのリプライステータ
スはデータリプライとなる。
FIG. 9 is a flowchart showing a read operation when the memory access is a read access. The read request address and each valid entry in the TAG part are compared (10000) and it is determined whether or not they match (10010). If they match, it is a cache hit,
The data of the corresponding DATA part is returned as reply data (10020). The reply status at that time is a data reply.

【0049】ステップ10010において、不一致であ
ればキャッシュミスヒットであるから、キャッシュメモ
リ120はメモリ6に対してリード要求アドレスを含む
ブロックのブロックリード要求を行う(10100)
(図9(B)のキャッシュミス処理)。このときには、
図8のフローで示した如く既にリード要求のアドレスの
メモリブロックはロック獲得されている。
In step 10010, if they do not match, it means that there is a cache miss. Therefore, the cache memory 120 makes a block read request for the block including the read request address to the memory 6 (10100).
(Cache miss processing of FIG. 9B). At this time,
As shown in the flow of FIG. 8, the memory block at the address of the read request has already been locked.

【0050】メモリ6においては、メモリリードが実行
されてリプライデータが4ワード分返送される(101
10)。キャッシュメモリにおいては、1つのエントリ
がこのブロック(4ワード)に割り当てられ、要求部の
アドレス部に登録され、Vビットが論理値1とされる。
ブロックのデータはDATA部へ格納される(1012
0)。
In the memory 6, memory read is executed and reply data of 4 words is returned (101
10). In the cache memory, one entry is assigned to this block (4 words), registered in the address section of the request section, and the V bit is set to the logical value 1.
The block data is stored in the DATA section (1012).
0).

【0051】図10はメモリアクセスがライトアクセス
の場合の動作を示すフローチャートである。ライト要求
アドレスとTAG部の有効な各エントリとが比較され
(10200)、一致判定がなされる(10210)。
一致すれば、そのエントリのDATA部にライトデータ
が書込まれる(10220)。不一致であれば、図9
(B)に示したキャッシュミス処理が行われ、そのブロ
ックがキャッシュメモリのDATA部に登録される(1
0220)。
FIG. 10 is a flow chart showing the operation when the memory access is a write access. The write request address and each valid entry in the TAG part are compared (10200) and a match determination is made (10210).
If they match, the write data is written in the DATA portion of the entry (10220). If they do not match, FIG.
The cache miss process shown in (B) is performed, and the block is registered in the DATA portion of the cache memory (1
0220).

【0052】図11はアンロック処理のフローチャート
であり、ロックを獲得したプロセッサ全てのアクセス処
理が終了した場合に実行される処理である。プロセッサ
によりロックされていたメモリブロックがアンロックさ
れるとき、アンロック要求がメモリ6へ送出される(1
0600)。メモリでは、アンロック要求に応答して全
プロセッサへ該当キャッシュブロックの無効化要求が生
成される(10610)。そのブロックのロックビット
L=0となり、ロック解除となる。
FIG. 11 is a flowchart of the unlock process, which is a process executed when the access processes of all the processors that have acquired the lock are completed. When the memory block locked by the processor is unlocked, an unlock request is sent to the memory 6 (1
0600). In the memory, in response to the unlock request, a request to invalidate the corresponding cache block is generated for all processors (10610). The lock bit L of that block becomes 0, and the lock is released.

【0053】以上の構成とすることにより、一度いずれ
かのプロセッサがメモリブロックに対するロックを獲得
すると、他のプロセッサはロックを取りにいくときには
一度だけメモリに対するトラフィックが発生することに
なるが、それ以降はキャッシュメモリ上の処理操作のみ
で済むので、メモリトラフィックが大幅に減少するので
ある。
With the above configuration, once one of the processors acquires the lock on the memory block, the traffic of the memory is generated only once when the other processors acquire the lock. Since only processing operations on the cache memory are required, memory traffic is greatly reduced.

【0054】図12〜14は本発明の他の実施例のブロ
ック図であり、図1の各プロセッサ1〜4に代えてプロ
セッサクラスタ11〜13が設けられている。各プロセ
ッサクラスタは複数のプロセッサ0〜m(mは1以上の
整数)を有しており、クラスタ内部バス200にて相互
接続されると共に、共通のキャッシュメモリ120とも
接続されている。そして、各クラスタ11〜13とこれ
等クラスタに共通のメモリ6とはインタコネクション5
により接続されている。この様な構成の、マルチプロセ
ッサシステムにおいても、各プロセッサによるメモリ6
のロック獲得のためのアクセスを共有キャッシュへのア
クセスのみとしてメモリ6へのトラフィックを抑えるよ
うにしたものである。
12 to 14 are block diagrams of another embodiment of the present invention. Processor clusters 11 to 13 are provided in place of the processors 1 to 4 in FIG. Each processor cluster has a plurality of processors 0 to m (m is an integer of 1 or more), which are interconnected by a cluster internal bus 200 and also connected to a common cache memory 120. The interconnections 5 are provided between the clusters 11 to 13 and the memory 6 common to these clusters.
Connected by. Even in a multiprocessor system having such a configuration, the memory 6 by each processor
The access to the shared cache is limited to the access for acquiring the lock of the memory 6, and the traffic to the memory 6 is suppressed.

【0055】図1〜3に示した先の実施例と異なる部分
について述べると、各キャッシュメモリのTAGエント
リは、図15に示す如く、アドレス部190と、有効
(V)ビット191と、ロック成功(S)ビット192
と、ロック失敗(F)ビット193の他に、ロック獲得
プロセッサ番号(P#)194と、他プロセッサロック
要求存在(O)ビット195とが追加されている。
The parts different from the previous embodiment shown in FIGS. 1 to 3 will be described. The TAG entry of each cache memory has an address part 190, a valid (V) bit 191, and a lock success, as shown in FIG. (S) bit 192
In addition to the lock failure (F) bit 193, a lock acquisition processor number (P #) 194 and another processor lock request existence (O) bit 195 are added.

【0056】ロック獲得プロセッサ番号(P#)は現在
ロックを獲得しているプロセッサの番号を示すものであ
る。他プロセッサロック要求存在(O)ビットは現在ロ
ックを獲得しているプロセッサの他のプロセッサが同じ
ロックの獲得を待っていることを示す。
The lock acquisition processor number (P #) indicates the number of the processor currently acquiring the lock. The other processor lock request present (O) bit indicates that another processor of the processors currently acquiring the lock is waiting to acquire the same lock.

【0057】各プロセッサからキャッシュメモリ120
に対してはクラスタ内部バス200を介してREQUE
STパケットとが送出され、またそれに対するREPL
Yパケットがクラスタ内部バス200を介して各プロセ
ッサへ送出される。これ等REQUESTパケットは図
7(A)のINPUTパケットと等価であり、REPL
Yパケットは図7(B)のOUTPUTパケットと等価
である。
From each processor to the cache memory 120
Via the cluster internal bus 200 to
ST packet and REPL for it
The Y packet is sent to each processor via the cluster internal bus 200. These REQUEST packets are equivalent to the INPUT packet shown in FIG.
The Y packet is equivalent to the OUTPUT packet shown in FIG.

【0058】メモリインタフェースは図7(C),
(D)のOUTPUTパケット,INPUTパケットと
同一であり、メモリ6とインタコネクション5との間の
各パケットも図7(E),(F)に示すREQUEST
パケット,REPLYパケットと同一である。
The memory interface is shown in FIG.
The packets are the same as the OUTPUT packet and the INPUT packet in (D), and each packet between the memory 6 and the interconnection 5 is also REQUEST shown in FIGS. 7 (E) and (F).
It is the same as the packet and the REPLY packet.

【0059】図16はこの実施例のメモリロック獲得処
理の動作フローである。クラスタ内部バス200上のR
EQUESTパケットで要求されたアドレスとTAG部
の有効(V=1)な各エントリとを比較する(2020
0)。一致するエントリがTAG部にあるかどうかが判
断され(20210)、不一致であればメモリインタフ
ェースOUTBOUDを介してメモリ6に対して要求ア
ドレスを含むブロックのブロックリードが要求される
(20240)。一致すればそのエントリのVビット1
91が調べられ(20220)、有効でなければメモリ
ロック要求となる(20240)。有効であればそのエ
ントリのS,Fの各ビット192,193の状態に応じ
て動作が分かれる(20230)。
FIG. 16 is an operation flow of the memory lock acquisition processing of this embodiment. R on cluster internal bus 200
The address requested by the EQUEST packet is compared with each valid (V = 1) entry of the TAG part (2020).
0). It is determined whether a matching entry exists in the TAG part (20210), and if they do not match, a block read of the block including the requested address is requested to the memory 6 via the memory interface OUTBOUD (20240). If matched, V bit 1 of that entry
91 is checked (20220), and if not valid, a memory lock request is made (20240). If the entry is valid, the operation is divided according to the states of the S and F bits 192 and 193 of the entry (20230).

【0060】対応ブロックのメモリロック要求がキャッ
シュメモリ120からメモリ6へ送出されると(202
40)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(20250)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成分のリプライが要求元へ返
送される(20290)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われると同時にTAG部121のプロセ
ッサ番号P#に要求元プロセッサ番号(この例では、P
#=Procとする)が書込まれる(20300)。
When the memory lock request for the corresponding block is sent from the cache memory 120 to the memory 6 (202
40), the lock bit L for the block is checked in the memory 6 (20250), and the processing is divided depending on the state of the lock bit L. When L = 0, the lock bit L is set to 1, and the reply of the lock component is returned to the request source (20290). In the request source processor that received this reply, the cache T corresponding to this block
The state of the AG unit 121 is V = 1, S = 1, F = 0,
Cache DATA unit 122 of corresponding memory block
At the same time that the request source processor number (in this example, P
# = Proc) is written (20300).

【0061】ステップ20260でL=1と判断される
と、このメモリブロックは既に他のプロセッサにロック
を獲得されているので、メモリ6からロック失敗のリプ
ライが要求元へ返される(20270)。要求元プロセ
ッサでは、このブロックに対応したエントリのTAG部
の状態がV=1,S=0,F=1とされる(2028
0)。このとき、このメモリブロックのキャッシュDA
TA部へのロードは行われないことは当然である。
If it is determined in step 20260 that L = 1, this memory block has already been locked by another processor, and therefore a reply of lock failure is returned from the memory 6 to the request source (20270). In the requesting processor, the state of the TAG portion of the entry corresponding to this block is V = 1, S = 0, F = 1 (2028).
0). At this time, the cache DA of this memory block
Of course, the TA section is not loaded.

【0062】ステップ20230において、そのエント
リのS,Fの各ビットの状態が(S,F)=(1,1)
であれば、ロック成功が要求元プロセッサへ返され、P
#がロックを獲得したプロセッサ番号(Proc)とさ
れる(20350)。
At step 20230, the state of each bit of S and F of the entry is (S, F) = (1,1).
If so, a lock success is returned to the requesting processor and P
# Is the processor number (Proc) that acquired the lock (20350).

【0063】(S,F)=(0,0)であれば、そのエ
ントリが無効化(V=0)され、後はステップ2029
0,20300の処理が行われる。
If (S, F) = (0,0), the entry is invalidated (V = 0), and thereafter step 2029.
The processing of 0,20300 is performed.

【0064】(S,F)=(0,1)であれば、ロック
失敗となり(20320)、(1,0)であれば、Oビ
ット194が調べられ(20310)、0でなければロ
ック失敗となり(20320)、0であればP#が調べ
られる。P#が現在の要求元プロセッサ番号(Pro
c)であればエラーとなり(20340)、そうでなけ
ればOビット194が1とされロック失敗(ロック獲得
待ち)となる(20331)。
If (S, F) = (0,1), lock failure occurs (20320). If (1,0), O bit 194 is checked (20310). If not 0, lock failure occurs. Then (20320), if 0, P # is examined. P # is the current request source processor number (Pro
If it is c), an error occurs (20340), and if not, the O bit 194 is set to 1 and the lock fails (waiting for lock acquisition) (20331).

【0065】ロック後のメモリアクセスであるリード,
ライト動作は図9,10と同一である。
Read, which is a memory access after locking,
The write operation is the same as in FIGS.

【0066】図17はアンロック処理のフローチャート
であり、ロックを獲得したプロセッサの全てのアクセス
処理が終了した場合に実行される。プロセッサによりロ
ックされていたメモリブロックがアンロックされると
き、アンロックするメモリブロックに対応するキャッシ
ュエントリのOビットがチェックされる(2060
0)。Oビットが0のとき、要求元プロセッサより、こ
のメモリブロックのアンロック要求がメモリ6へ送出さ
れ(20610)、メモリ6はこれに応答して全プロセ
ッサクラスタ11〜13へ向けてメモリブロックに対応
する各クラスタ上のキャッシュブロックのインバリッド
要求をインタコネクション5を介して送出する(202
60)。
FIG. 17 is a flowchart of the unlocking process, which is executed when all the access processes of the processor that has acquired the lock are completed. When a memory block locked by the processor is unlocked, the O bit of the cache entry corresponding to the unlocked memory block is checked (2060).
0). When the O bit is 0, the request source processor sends an unlock request for this memory block to the memory 6 (20610), and the memory 6 responds to this request and responds to the memory block toward all processor clusters 11-13. Send an invalid request for a cache block on each cluster via the interconnection 5 (202
60).

【0067】Oビットが1の場合、キャッシュエントリ
の属性がV=1,S=1,F=1,O=0とされる(2
0630)。
When the O bit is 1, the cache entry attributes are V = 1, S = 1, F = 1, and O = 0 (2
0630).

【0068】[0068]

【発明の効果】以上述べた如く、本発明によれば、一度
いずれかのプロセッサ(クラスタ)がメモリブロックに
対するロックを獲得してしまうと、他のプロセッサ(ク
ラスタ)がロックを獲得するときに一度だけメモリに対
するトラフィックが発生するが、それ以降はキャッシュ
上の操作で済むので、メモリトラフィックが大幅に減少
するという効果がある。
As described above, according to the present invention, once any processor (cluster) once acquires a lock on a memory block, the other processor (cluster) once acquires the lock. However, since the traffic to the memory is generated only after that, the operation on the cache is sufficient, which has the effect of significantly reducing the memory traffic.

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

【図1】本発明の一実施例のシステムブロック図であるFIG. 1 is a system block diagram of an embodiment of the present invention.

【図2】図1のプロセッサ1〜4の例を示す図である。FIG. 2 is a diagram illustrating an example of processors 1 to 4 in FIG.

【図3】図2のキャッシュメモリ120の例を示す図で
ある。
FIG. 3 is a diagram showing an example of a cache memory 120 of FIG.

【図4】図3のTAG部121のエントリの構成を示す
図である。
4 is a diagram showing a configuration of an entry of a TAG unit 121 of FIG.

【図5】図3のDATA部122のエントリの構成を示
す図である。
5 is a diagram showing a configuration of an entry of a DATA unit 122 of FIG.

【図6】図1のメモリ6の構成を示す図である。FIG. 6 is a diagram showing a configuration of a memory 6 of FIG.

【図7】図1のブロックにおける各部信号のパケット例
を示す図である。
7 is a diagram showing an example of a packet of each part signal in the block of FIG.

【図8】本発明の一実施例のロック獲得処理を示すフロ
ー図である。
FIG. 8 is a flowchart showing lock acquisition processing according to an embodiment of the present invention.

【図9】本発明の一実施例のリード処理を示すフロー図
である。
FIG. 9 is a flowchart showing a read process according to an embodiment of the present invention.

【図10】本発明の一実施例のライト処理を示すフロー
図である。
FIG. 10 is a flowchart showing write processing according to an embodiment of the present invention.

【図11】本発明の一実施例のアンロック処理を示すフ
ロー図である。
FIG. 11 is a flowchart showing unlock processing according to an embodiment of the present invention.

【図12】本発明の他の実施例のブロック図である。FIG. 12 is a block diagram of another embodiment of the present invention.

【図13】図12のプロセッサクラスタ11〜13の例
を示す図である。
13 is a diagram showing an example of processor clusters 11 to 13 in FIG.

【図14】図12のキャッシュメモリ120の例を示す
図である。
FIG. 14 is a diagram showing an example of a cache memory 120 of FIG.

【図15】図14のキャッシュメモリ120のTAG部
121のエントリの構成を示す図である。
15 is a diagram showing a configuration of an entry of a TAG unit 121 of the cache memory 120 of FIG.

【図16】本発明の他の実施例のロック獲得処理を示す
フロー図である。
FIG. 16 is a flowchart showing lock acquisition processing according to another embodiment of the present invention.

【図17】本発明の他の実施例のアンロック処理を示す
フロー図である。
FIG. 17 is a flowchart showing unlock processing according to another embodiment of the present invention.

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

1〜4 プロセッサ 5 インタコネクション 6 メモリ 11〜13 プロセッサクラスタ 110 命令実行部 120 キャッシュメモリ 121 TAG部 122 DATA部 2001 ワードブロック 2002 ロックビット 1 to 4 processors 5 interconnections 6 memories 11 to 13 processor clusters 110 instruction execution units 120 cache memories 121 TAG units 122 DATA units 2001 word blocks 2002 lock bits

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 共通メモリと、前記メモリの格納データ
の一部をブロック単位で格納するキャッシュメモリを各
々が有する複数のプロセッサと、これ等プロセッサ及び
共通メモリ間を接続するインタコネクト手段とを含むマ
ルチプロセッサシステムであって、 前記共通メモリに設けられ、前記ブロック単位にそのブ
ロックの排他的占有状態を示すロック表示手段と、 前記プロセッサの各々に設けられ、前記共通メモリへの
アクセスの発生に応答して当該アクセスアドレスに対応
するエントリブロックが前記キャッシュメモリに存在し
ないとき前記共通メモリへのロック要求を生成する手段
と、 前記共通メモリに設けられ、前記ロック要求に応答して
前記アクセスアドレスに対応するブロックのロック表示
手段が非ロックであればロック表示を行いロック成功
を、既にロックであればロック失敗を夫々要求元プロセ
ッサへ送出するロック制御手段と、 前記プロセッサの各々に設けられ、前記ロック成功か失
敗に夫々応答して自キャッシュメモリへロック成功か失
敗を示すロック成功情報と共に前記アクセスアドレス情
報を登録する登録制御手段と、 を有することを特徴とするマルチプロセッサシステム。
1. A common memory, a plurality of processors each having a cache memory for storing a part of data stored in the memory in block units, and an interconnecting means for connecting these processors and the common memory. A multiprocessor system, wherein lock display means is provided in the common memory and indicates an exclusive occupation state of the block in block units, and a lock display means is provided in each of the processors and responds to an occurrence of access to the common memory. Means for generating a lock request to the common memory when an entry block corresponding to the access address does not exist in the cache memory, and the means is provided in the common memory and corresponds to the access address in response to the lock request. If the lock display means of the block The lock control means for sending the successful lock to the requesting processor, and the lock control means for sending the lock failure to the requesting processor if already locked, and whether the lock success to the own cache memory is successful in response to the lock success or failure respectively. A registration control means for registering the access address information together with lock success information indicating failure, and a multiprocessor system.
【請求項2】 前記プロセッサの各々は、前記ロック成
功に応答して当該アクセス要求を前記共通メモリに対し
て行い、アクセス処理の終了に応答して前記共通メモリ
に対してロック解除要求を発生すると共に、他のプロセ
ッサに対して該当キャッシュブロック無効化要求を生成
するようにしたことを特徴とする請求項1記載のマルチ
プロセッサシステム。
2. Each of the processors issues the access request to the common memory in response to the lock success, and issues a lock release request to the common memory in response to the end of the access processing. The multiprocessor system according to claim 1, wherein the cache block invalidation request is generated with respect to another processor.
【請求項3】 前記プロセッサの各々は、前記共通メモ
リへのアクセスの発生に応答して当該アクセスアドレス
に対応するエントリブロックが前記キャッシュメモリに
存在するとき、そのエントリブロックの前記ロック成功
情報を参照するようにしたことを特徴とする請求項1ま
たは2記載のマルチプロセッサシステム。
3. Each of the processors refers to the lock success information of the entry block when an entry block corresponding to the access address exists in the cache memory in response to the occurrence of access to the common memory. The multiprocessor system according to claim 1 or 2, characterized in that
【請求項4】 前記複数のプロセッサに代えて複数のプ
ロセッサクラスタとし、前記キャッシュメモリは前記プ
ロセッサクラスタの各々に設けられており、前記登録制
御手段は、前記ロック成功情報と前記アクセスアドレス
情報とに加えてこのアクセス要求元のプロセッサ番号情
報をも登録するよう構成されていることを特徴とする請
求項1〜3いずれか記載のマルチプロセッサシステム。
4. A plurality of processor clusters are used instead of the plurality of processors, the cache memory is provided in each of the processor clusters, and the registration control unit stores the lock success information and the access address information. The multiprocessor system according to any one of claims 1 to 3, wherein the processor number information of the access request source is also registered.
JP7124634A 1995-05-24 1995-05-24 Multiprocessor system Withdrawn JPH08320828A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7124634A JPH08320828A (en) 1995-05-24 1995-05-24 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7124634A JPH08320828A (en) 1995-05-24 1995-05-24 Multiprocessor system

Publications (1)

Publication Number Publication Date
JPH08320828A true JPH08320828A (en) 1996-12-03

Family

ID=14890273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7124634A Withdrawn JPH08320828A (en) 1995-05-24 1995-05-24 Multiprocessor system

Country Status (1)

Country Link
JP (1) JPH08320828A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088770A (en) * 1997-02-27 2000-07-11 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
JP2010146431A (en) * 2008-12-22 2010-07-01 Nec Computertechno Ltd Memory control device
WO2011155027A1 (en) 2010-06-08 2011-12-15 富士通株式会社 Memory access control device, multi-core processor system, memory access control method, and memory access control program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088770A (en) * 1997-02-27 2000-07-11 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
US6546471B1 (en) 1997-02-27 2003-04-08 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
JP2010146431A (en) * 2008-12-22 2010-07-01 Nec Computertechno Ltd Memory control device
WO2011155027A1 (en) 2010-06-08 2011-12-15 富士通株式会社 Memory access control device, multi-core processor system, memory access control method, and memory access control program
US9348740B2 (en) 2010-06-08 2016-05-24 Fujitsu Limited Memory access controller, multi-core processor system, memory access control method, and computer product

Similar Documents

Publication Publication Date Title
JP3849951B2 (en) Main memory shared multiprocessor
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
JPH10187470A (en) Multiprocess system provided with device for optimizing spin lock operation
US7523260B2 (en) Propagating data using mirrored lock caches
JPH10143477A (en) Multiprocess system provided with reinforced blocking mechanism for read-to-share transaction in numa mode
JPH04268649A (en) Method for controlling entry of data block into memory
JPH10143482A (en) Multiprocessor system for executing efficient write operation
JPH10171710A (en) Multi-process system for executing effective block copying operation
JPH10187645A (en) Multiprocess system constituted for storage in many subnodes of process node in coherence state
JPH07253928A (en) Duplex cache snoop mechanism
JPH10143476A (en) Multiprocess system for executing software for starting prefetch operation
JP2001167077A (en) Data access method for network system, network system and recording medium
JPH10134014A (en) Multiprocess system using three-hop communication protocol
US7472237B1 (en) Apparatus to offload and accelerate pico code processing running in a storage processor
US6874065B1 (en) Cache-flushing engine for distributed shared memory multi-processor computer systems
JPH03118649A (en) Memory subsystem input que
US7159079B2 (en) Multiprocessor system
US6412047B2 (en) Coherency protocol
US20040117564A1 (en) System and method for reducing shared memory write overhead in multiprocessor systems
US20040059818A1 (en) Apparatus and method for synchronizing multiple accesses to common resources
JPH03225542A (en) Memory of data and processing circuit for bit encode data
JP2746530B2 (en) Shared memory multiprocessor
US6490662B1 (en) System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
JP2829115B2 (en) File sharing method
JP2776759B2 (en) Lock request control device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020806