JPH0635866A - Multiprocessor system - Google Patents
Multiprocessor systemInfo
- Publication number
- JPH0635866A JPH0635866A JP4185417A JP18541792A JPH0635866A JP H0635866 A JPH0635866 A JP H0635866A JP 4185417 A JP4185417 A JP 4185417A JP 18541792 A JP18541792 A JP 18541792A JP H0635866 A JPH0635866 A JP H0635866A
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- block
- cache memory
- processor
- address
- 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
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数の処理ユニット
と、メインメモリと、複数の処理ユニットとメインメモ
リを接続するシステムバスで構成され、処理ユニットは
プロセッサとキャッシュメモリから成り、メインメモリ
のアドレス空間は複数のブロックに分割され、キャッシ
ュメモリは複数のエントリから成るマルチプロセッサシ
ステムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention comprises a plurality of processing units, a main memory, and a system bus connecting the plurality of processing units and the main memory. The processing unit comprises a processor and a cache memory. The address space is divided into a plurality of blocks, and the cache memory relates to a multiprocessor system including a plurality of entries.
【0002】[0002]
【従来の技術】従来、この種のマルチプロセッサシステ
ムにおいて、各処理ユニットが共通データの読出しおよ
び書き換えを行う場合、他の処理ユニットとの間に矛盾
が発生することがある。例えば、処理ユニットAと、処
理ユニットBが、メインメモリのアドレスXに格納され
ている値「x」に1を加算する場合を考える。本来、処
理ユニットAおよびBの処理が矛盾無く行われるとアド
レスXの値は「x+2」となる。しかし、処理ユニット
AがアドレスXの値「x」を読出してからアドレスXに
値「x+1」書込む間に処理ユニットBがアドレスXの
値「x」を読出すと、処理ユニットBもアドレスXを
「x+1」に書き換えることになる。2. Description of the Related Art Conventionally, in this type of multiprocessor system, when each processing unit reads and rewrites common data, a contradiction may occur with another processing unit. For example, consider a case where the processing unit A and the processing unit B add 1 to the value “x” stored in the address X of the main memory. Originally, if the processes of the processing units A and B are performed without contradiction, the value of the address X becomes "x + 2". However, if the processing unit B reads the value "x" of the address X and then the value "x + 1" of the address X is written by the processing unit B, the processing unit B also reads the value "x" of the address X. Will be rewritten to "x + 1".
【0003】このような矛盾が発生しないように、共通
データにアクセスする前に共通データへのアクセス権の
獲得を行い、アクセス権の獲得が成功すると共通データ
へのアクセスを行い、共通データへのアクセス終了後に
アクセス権を解放する。アクセス権は共通データ毎に設
けられ、同時に1台のプロセッサにのみアクセス権が与
えられるように制御される。In order to prevent such a contradiction, an access right to the common data is acquired before accessing the common data, and if the access right is successfully acquired, the common data is accessed to access the common data. The access right is released after the access is completed. The access right is provided for each common data, and is controlled so that the access right is given to only one processor at the same time.
【0004】以上述べたように、マルチプロセッサシス
テムにおける排他制御においては、共通データにアクセ
スする前にアクセス権を獲得し、他の処理ユニットから
の共通データへのアクセスを抑止し、アクセス終了後に
はアクセス権を解放する排他制御が必要である。As described above, in the exclusive control in the multiprocessor system, the access right is acquired before accessing the common data, the access to the common data from other processing units is suppressed, and after the access is completed. Exclusive control to release the access right is required.
【0005】しかし従来の方式では、各処理ユニットが
同時並列にアクセスする共通データ毎にアクセス権の確
保/解放の処理を行う必要があるため、このための処理
量が増加する欠点があった。However, in the conventional method, each processing unit needs to perform processing for securing / releasing the access right for each common data accessed in parallel at the same time, which has a drawback that the processing amount for this purpose increases.
【0006】[0006]
【発明が解決しようとする課題】従来、上記問題を解決
するために、同時並列にアクセスしないデータと共通デ
ータを厳密に分けずに、アクセス権の確保/解放を複数
の共通データに対して一括して行うことによって、アク
セス権の確保/解放回数を減らす手法が採られていた。
しかし、複数の共通データに対して一括してアクセス権
の確保/解放を行うと、共通データに対して不要な排他
制御を行うことになり、アクセス権の確保期間が長くな
るため、複数の処理ユニットで同時並列に可能な処理の
実行が阻害される確率が大きくなる欠点が生じる。Conventionally, in order to solve the above problem, the access right is secured / released collectively for a plurality of common data without strictly separating the data that is not accessed in parallel and the common data. Then, a method of reducing the number of times of securing / releasing the access right has been adopted.
However, if the access rights are collectively secured / released for a plurality of common data, unnecessary exclusive control is performed for the common data, and the access right securing period becomes long. There is a drawback that the probability that the execution of processing that can be performed in parallel in a unit is hindered increases.
【0007】本発明の目的は、アクセス権の確保および
解放のための処理ユニットのオーバーヘットが生じず、
処理ユニットの実効的な処理性能が向上したマルチプロ
セッサシステムを提供することである。An object of the present invention is to prevent an overhead of a processing unit for securing and releasing an access right,
It is an object of the present invention to provide a multiprocessor system in which the effective processing performance of a processing unit is improved.
【0008】[0008]
【課題を解決するための手段】本発明のマルチプロセッ
サシステムは、キャッシュメモリの各エントリは、ブロ
ックのアドレス、ブロックがそれぞれ格納されるアドレ
ス情報部、ブロックデータ部と、該ブロックデータに格
納されているデータの読出しまたは書き換えを禁止する
排他制御情報が設定されるロック状態部とを含み、各プ
ロセッサは自処理ユニットのキャッシュメモリのエント
リのロック状態部に排他制御情報を設定する排他制御情
報設定手段と排他制御情報をリセットする排他制御情報
リセット手段を有し、ある処理ユニットのキャッシュメ
モリがシステムバスにアドレスとアクセス種別を出力し
たとき、他の処理ユニットのキャッシュメモリは、当該
アドレスで指定されるブロックが格納されているエント
リのロック状態部に排他制御情報がセットされており、
さらに、排他制御情報と前記処理ユニットがシステムバ
スに出力したアクセス種別とが予め定められた組み合わ
せの場合、排他制御情報がセットされているブロックに
対してアクセスを行った旨をアドレス出力元の処理ユニ
ットに通知する。According to the multiprocessor system of the present invention, each entry of the cache memory has a block address, an address information section in which the block is stored, a block data section, and the block data. Lock state section in which exclusive control information for prohibiting reading or rewriting of existing data is set, and each processor sets exclusive control information in the lock state section of the entry in the cache memory of its own processing unit. And exclusive control information reset means for resetting exclusive control information, and when the cache memory of a certain processing unit outputs an address and an access type to the system bus, the cache memory of another processing unit is designated by the address. Lock state part of the entry in which the block is stored Exclusive control information has been set,
Furthermore, when the exclusive control information and the access type output to the system bus by the processing unit are a predetermined combination, it is determined by the address output source that the block in which the exclusive control information is set is accessed. Notify the unit.
【0009】[0009]
【作用】本発明は、プロセッサで実行中の処理が共通デ
ータにアクセスする際に、当該データに対してアクセス
するための情報(アドレスとアクセス種別)とともに当
該データのロック(置き換えまたは読出し禁止)を指示
する排他制御情報を出力し、キャッシュメモリは当該デ
ータを含むブロックをロック状態として管理し、他の処
理ユニットからロック状態のブロックへのアクセスが発
生した場合、他の処理ユニットで実行中の処理または自
処理ユニットで実行中の処理を中断または無効化(中
止)することによって共通データへの排他制御情報を行
うものである。According to the present invention, when the process being executed in the processor accesses the common data, the information (address and access type) for accessing the data is locked together with the lock (replacement or read prohibition) of the data. Outputs exclusive control information to instruct, the cache memory manages the block containing the data as a locked state, and if an access to the block in the locked state occurs from another processing unit, the processing being executed in the other processing unit Alternatively, exclusive control information for the common data is provided by interrupting or invalidating (stopping) the process being executed in the own processing unit.
【0010】これによって、各処理ユニットが同時並列
にアクセスする共通データアクセス権の確保/解放の処
理を行うための処理量の増加による処理ユニットの実効
的な処理性能の低下が生じなくなる。As a result, the effective processing performance of the processing units does not decrease due to an increase in the processing amount for securing / releasing the common data access right for each processing unit to access in parallel at the same time.
【0011】なお、システムバスにアドレスを出力した
キャッシュメモリが、該アドレスに対して排他制御情報
がセットされているブロックへのアクセスを行なったこ
とアドレス出力元の処理ユニットではなく自処理ユニッ
トのプロセッサに通知することにより、システムバスの
ハードウェ ア量が削減される。It should be noted that the cache memory that has output the address to the system bus has accessed the block in which the exclusive control information has been set for that address, not the processing unit that issued the address, but the processor of its own processing unit. Notifying the system reduces the amount of system bus hardware.
【0012】また、キャッシュメモリ内に処理の優先度
が書込まれる優先度レジスタを設け、自プロセッサの優
先度がシステムバスに出力された優先度より低いとき、
自プロセッサで実行中の処理を中止することにより、優
先度の高い処理が実行される。Further, a priority register for writing the processing priority is provided in the cache memory, and when the priority of the self processor is lower than the priority output to the system bus,
By stopping the process being executed by the own processor, the process with high priority is executed.
【0013】さらに、キャッシュメモリが、該キャッシ
ュメモリの処理ユニット内のプロセッサで実行中の処理
が共通データへの排他制御が不要になったとき、該キャ
ッシュメモリ内の全エントリのロック状態部の排他制御
情報をリセット(アンロック状態に)することにより、
ロック解除のための処理ユニットからのアクセス回数が
削除される。Further, when the cache memory does not require exclusive control over common data for the process being executed by the processor in the processing unit of the cache memory, exclusion of lock state parts of all entries in the cache memory is performed. By resetting the control information (to the unlocked state),
The access count from the processing unit for unlocking is deleted.
【0014】[0014]
【実施例】次に、本発明の実施例について図面を参照し
て説明する。Embodiments of the present invention will now be described with reference to the drawings.
【0015】図1は本発明の一実施例を示すマルチプロ
セッサシステムのブロック図、図2はキャッシュメモリ
11,21,31のエントリの構成を示す図である。FIG. 1 is a block diagram of a multiprocessor system showing an embodiment of the present invention, and FIG. 2 is a diagram showing the configuration of entries in the cache memories 11, 21, 31.
【0016】本実施例のマルチプロセッサシステムは、
処理ユニット1,2,3と、メインメモリ5と、バスマ
スタコントローラ6と、処理ユニット1,2,3とメイ
ンメモリ5を接続するシステムバス4(アドレスバス4
1、データバス42、リード/ライトバス43、アクセ
ス種別(読出しまたは書き換え)バス44、優先度が出
力される優先度バス45、応答が出力される転送応答バ
ス46、矛盾が発生したことを通知するための矛盾応答
バス47からなる)で構成されている。処理ユニット1
はプロセッサ10とキャッシュメモリ11とプロセッサ
バス12からなり、バスマスタコントローラ6とキャッ
シュメモリ11の間には信号線13,14が接続されて
いる。処理ユニット2はプロセッサ20とキャッシュメ
モリ21とプロセッサバス22からなり、バスマスタコ
ントローラ6とキャッシュメモリ21の間には信号線2
3,24が接続されている。処理ユニット3はプロセッ
サ30とキャッシュメモリ31とプロセッサバス32か
らなり、バスマスタコントラーラ6とキャッシュメモリ
の間には信号線33,34が接続されている。The multiprocessor system of this embodiment is
The processing units 1, 2, and 3, the main memory 5, the bus master controller 6, and the system bus 4 (the address bus 4 that connects the processing units 1, 2, and 3 with the main memory 5).
1, a data bus 42, a read / write bus 43, an access type (read or rewrite) bus 44, a priority bus 45 that outputs a priority, a transfer response bus 46 that outputs a response, and a notification that an inconsistency has occurred (Consisting of an inconsistency response bus 47). Processing unit 1
Comprises a processor 10, a cache memory 11 and a processor bus 12, and signal lines 13 and 14 are connected between the bus master controller 6 and the cache memory 11. The processing unit 2 includes a processor 20, a cache memory 21, and a processor bus 22, and a signal line 2 is provided between the bus master controller 6 and the cache memory 21.
3, 24 are connected. The processing unit 3 includes a processor 30, a cache memory 31, and a processor bus 32, and signal lines 33 and 34 are connected between the bus master controller 6 and the cache memory.
【0017】メインメモリ5は同じ大きさの複数のブロ
ックに分割され、キャッシュメモリ11,21,31と
の間ではブロック単位にデータの転送が行われる。キャ
ッシュメモリ11,21,31は複数のエントリからな
り、各エントリは、図2に示すように、ブロックのアド
レスが格納されるアドレス情報部61と、ブロックのデ
ータが格納されるブロックデータ部62と、ブロックデ
ータ部62のデータの書き換えを禁止(ロック)する場
合“2”、読出しを禁止(ロック)する場合“1”、書
き換えも読出しも禁止しない(アンロックの)場合
“0”が設定されるロック状態部63と、当該エントリ
に格納されている内容が有効の場合“1”、無効の場合
“0”が設定されるバリッド部64と、ブロックデータ
部62のブロックとメインメモリ5のブロックが不一致
の場合“1”、一致の場合“0”が設定されるモディフ
ァイ部65からなる。The main memory 5 is divided into a plurality of blocks of the same size, and data is transferred in block units with the cache memories 11, 21, 31. Each of the cache memories 11, 21 and 31 is made up of a plurality of entries. As shown in FIG. 2, each entry includes an address information section 61 in which a block address is stored and a block data section 62 in which block data is stored. , "2" is set when prohibiting (locking) the rewriting of the data in the block data section 62, "1" is set when prohibiting (locking) the reading, and "0" is set when neither rewriting nor reading is prohibited (unlocked). Lock state section 63, a valid section 64 in which "1" is set when the content stored in the entry is valid, and "0" is set when the entry is invalid, a block in the block data section 62, and a block in the main memory 5. The modification unit 65 is configured to set "1" when they do not match and "0" when they do match.
【0018】図3と図4は処理ユニット1のプロセッサ
10が、メインメモリ5のアドレスaで指定されたデー
タを含むブロックBaをアクセスする場合に、キャッシ
ュメモリ11が行なう処理の流れ図、図5と図6は他の
処理ユニット2,3がシステムバス4に出力されたアク
セスをチェックする処理の流れ図である。図3〜図6中
における各処理は論理回路を用いることによって並列に
実行することができる。図5と図6の処理は他の処理ユ
ニット2,3がシステムバス4に出力を行ってから予め
定められた時間内に実行される。FIGS. 3 and 4 are flowcharts of the processing performed by the cache memory 11 when the processor 10 of the processing unit 1 accesses the block Ba containing the data designated by the address a of the main memory 5, and FIG. FIG. 6 is a flow chart of processing in which the other processing units 2 and 3 check the access output to the system bus 4. Each process in FIGS. 3 to 6 can be executed in parallel by using a logic circuit. The processing of FIGS. 5 and 6 is executed within a predetermined time after the other processing units 2 and 3 output to the system bus 4.
【0019】プロセッサ10がプロセッサバス12にア
ドレスa、読出しまたは書き換えの種別、ロックまたは
アンロックの指示、書き換えデータ(書き換えの場合の
み)を出力すると、ブロックBaが格納されるエントリ
Eがキャッシュメモリ11に存在し、かつエントリEの
バリッド部64が“1”(有効)かどうか調べる(ステ
ップ101)。 (1)ブロックBaが格納される有効なエントリがキャ
ッシュメモリ11に存在しない場合 キャッシュメモリ11は信号線13を介してシステムバ
ス4の使用要求をバスマスタコントローラ6に知らせる
(ステップ102)。バスマスタコントローラ6は、予
め定められた手続きに従い1つのキャッシュメモリにの
みシステムバス4の使用許可を与える。信号線14を介
してシステムバス4の使用許可がキャッシュメモリ11
に与えられた時、キャッシュメモリ11はアドレスバス
41上にアドレスaを出力し、リード/ライトバス43
に読出し指示を出力し、アクセス種別バス44にプロセ
ッサ10が出力したアクセス種別(読出しまたは書き換
え)を出力する(ステップ103)。キャッシュメモリ
21および31は、アドレスバス41に出力されている
アドレスaを入力し(ステップ201)、アドレスaの
データを含むブロックBaが内部に格納されているか否
かのチェックを行う(ステップ202)。 (1−a)キャッシュメモリ21および31がブロック
Ba を内部に格納していない場合 予め定められた時間(キャッシュメモリ21および31
が図5と図6に示す処理を行うために必要とする時間よ
り長い時間)が経過してキャッシュメモリ21および3
1が転送応答バス46または矛盾応答バス47に信号を
出力しないと、最新のブロックはメインメモリ5上に存
在し、かつロック状態でキャッシュメモリ21または3
1に存在しないことになり、メインメモリ5はブロック
Ba をデータバス42に出力し、応答(データ)を出力
したことを転送応答バス46を介してキャッシュメモリ
11に通知する。 (1−b)キャッシュメモリ21または31がブロック
Ba を内部に格納している場合 ブロックBa が格納されているエントリeのロック状態
部63が“0”(アンロック)かどうか調べる(ステッ
プ203)。ここで、排他制御を行う上で無予盾性を保
証する必要があるロック状態の組み合わせは、一般に以
下の2つの場合である。他のキャッシュメモリ内で書
き換えロック状態(“2”)のブロックに対して新たに
書き換えアクセスまたは読出しアクセスを行う(他のプ
ロセッサが当該ブロックの書き換えを行うため、当該ブ
ロックの内容はロック期間中は他のプロセッサから不定
となる)。他のキャッシュメモリ内でロック状態
(“1”または“2”)のブロックに対して書き換えア
クセスを行う(他のプロセッサは当該ブロックを書き換
えないが、自プロセッサが当該ブロックを書き換えると
当該ブロックを読出しロックしているにも関わらず、他
のプロセッサからブロックの内容が不定となる)。そこ
で、ブロックBa が格納されているエントリeのロック
状態部63が“2”(書き換えロック)または、キャッ
シュメモリ11がアクセス種別バス44に「書き換え」
を出力していれば、矛盾が発生したことを矛盾応答バス
47を介してキャッシュメモリ11に通知する(ステッ
プ204,205,206)。キャッシュメモリ11が
処理ユニット2または3のキャッシュメモリ21または
31から矛盾応答バス47を介して矛盾が発生した旨の
通知を受けると、キャッシュメモリ11は下記(3)に
示す矛盾解消処理をおこなう。エントリeのロック状態
部63が“2”(書き換えロック)でなく、かつキャッ
シュメモリ11がアクセス種別バス44に「書き換え」
を出力していなければ、エントリeのモディファイ部6
5が“1”(ブロックデータ部62のブロックBa とメ
インメモリ5のBa が不一致)かどうか調べる(ステッ
プ204,205,207)。モディファイ部65が
“1”であれば、キャッシュメモリ21または31はエ
ントリeのブロックデータ部62に格納されているブロ
ックBa をデータバス42に出力し、転送応答バス46
を介して応答を出力したことをキャッシュメモリ11に
通知するとともに(ステップ208)、エントリeのモ
ディファイ部65“0”(ブロックデータ部62のBa
とメインメモリ5のBa が一致)とする(ステップ20
9)。この時、メインメモリ5はデータバス42にキャ
ッシュメモリ21が出力したブロックBa をキャッシュ
メモリ11とともに受信してメインメモリ5に格納され
ている内容を最新の内容に更新する。エントリeのロッ
ク状態部63が“0”(アンロック状態)の場合、ブロ
ックBa が格納されるエントリeのモディファイ部65
が“1”(ブロックデータ部62のBaとメインメモリ
5のBa が不一致)かどうか調べる(ステップ21
0)。ブロックBa を格納するエントリeのモディファ
イ部65が“1”(ブロックデータ部62のBa とメイ
ンメモリ5のBa が不一致)であれば、ブロックBa の
最新の内容はキャッシュメモリ21または31に存在す
る(ここでは、キャッシュメモリ21とする)ので、キ
ャッシュメモリ21はブロックBa をデータバス42に
出力し、転送応答バス46を介して応答を出力したこと
をキャッシュメモリ11に通知し(ステップ211)、
モディファイ部65を“0”(ブロックデータ部62の
Ba とメインメモリ5のBa が一致)とする(ステップ
212)。この時、メインメモリ5はデータバス42に
キャッシュメモリ21が出力したブロックBa をキャッ
シュメモリ11とともに受信してメインメモリ5に格納
されている内容を最新の内容に更新する。キャッシュメ
モリ11がアクセス種別バス44に「書き換え」を出力
していれば、ブロックBa が格納されるエントリeのバ
リッド部64を“0”(無効)として無効化を行う(ス
テップ213,214)。これによって、プロセッサ1
0からのブロックBa へのアクセスが「書き換え」の場
合に、書き換え前の内容が他のキャッシュメモリ21ま
たは31に存在することが無くなり、データの無矛盾性
を保証する。When the processor 10 outputs the address a, the type of read or rewrite, the lock or unlock instruction, and the rewrite data (only in the case of rewrite) to the processor bus 12, the entry E storing the block Ba is stored in the cache memory 11. Exists and the valid portion 64 of the entry E is "1" (valid) (step 101). (1) When the cache memory 11 does not have a valid entry for storing the block Ba, the cache memory 11 notifies the bus master controller 6 of a request for using the system bus 4 via the signal line 13 (step 102). The bus master controller 6 gives permission to use the system bus 4 to only one cache memory according to a predetermined procedure. The permission to use the system bus 4 is given to the cache memory 11 via the signal line 14.
Is given to the read / write bus 43, the cache memory 11 outputs the address a on the address bus 41.
To the access type bus 44, and the access type (read or rewrite) output by the processor 10 is output to the access type bus 44 (step 103). The cache memories 21 and 31 receive the address a output to the address bus 41 (step 201) and check whether the block Ba including the data of the address a is stored inside (step 202). . (1-a) When the cache memories 21 and 31 do not store the block B a inside The predetermined time (the cache memories 21 and 31)
Is longer than the time required to perform the processing shown in FIGS. 5 and 6) and the cache memories 21 and 3
If 1 does not output a signal to the transfer response bus 46 or the inconsistency response bus 47, the latest block exists in the main memory 5 and is locked in the cache memory 21 or 3
1 does not exist, the main memory 5 outputs the block B a to the data bus 42, and notifies the cache memory 11 via the transfer response bus 46 that the response (data) has been output. (1-b) a cache memory 21 or 31 is locked portion 63 of the entry e stored if block B a storing block B a therein "0" (unlocked) whether examined (step 203). Here, there are generally the following two cases of combinations of lock states for which it is necessary to guarantee unpredictability in performing exclusive control. Rewrite access or read access is newly performed to a block in the rewrite lock state (“2”) in another cache memory (the content of the block is not updated during the lock period because another processor rewrites the block. Indeterminate from other processors). Rewrite access is performed to a block in the locked state (“1” or “2”) in another cache memory (other processors do not rewrite the block, but if the self processor rewrites the block, the block is read. Despite being locked, the contents of the block will be undefined from other processors). Therefore, the lock state part 63 of the entry e in which the block B a is stored is “2” (rewrite lock), or the cache memory 11 is “rewrite” to the access type bus 44.
Is output, the fact that a contradiction has occurred is notified to the cache memory 11 via the contradiction response bus 47 (steps 204, 205, 206). When the cache memory 11 receives a notification from the cache memory 21 or 31 of the processing unit 2 or 3 via the contradiction response bus 47 that a contradiction has occurred, the cache memory 11 performs the contradiction resolution process shown in (3) below. The lock state part 63 of the entry e is not “2” (rewrite lock), and the cache memory 11 “rewrites” the access type bus 44.
If is not output, the modification unit 6 of the entry e
5 is "1" (B a block B a and the main memory 5 of the block data section 62 mismatch) whether examined (step 204,205,207). If the modification unit 65 is “1”, the cache memory 21 or 31 outputs the block B a stored in the block data unit 62 of the entry e to the data bus 42, and the transfer response bus 46.
The cache memory 11 is notified that the response has been output via (step 208), and the modification unit 65 “0” of the entry e (B a of the block data unit 62).
And B a of the main memory 5 match (step 20).
9). At this time, the main memory 5 receives the block B a output from the cache memory 21 on the data bus 42 together with the cache memory 11 and updates the contents stored in the main memory 5 to the latest contents. When the lock state part 63 of the entry e is “0” (unlocked state), the modification part 65 of the entry e in which the block B a is stored is stored.
There "1" (B a and B a main memory 5 of the block data section 62 mismatch) whether examined (step 21
0). If modifier unit 65 is "1" entry e to store the block B a (B a mismatch B a and the main memory 5 of the block data section 62), the latest contents of the block B a cache memory 21 or 31 (here, the cache memory 21), the cache memory 21 outputs the block B a to the data bus 42 and notifies the cache memory 11 that a response has been output via the transfer response bus 46. (Step 211),
The modifier unit 65 "0" (B a and B a main memory 5 of the block data section 62 matches) (step 212). At this time, the main memory 5 receives the block B a output from the cache memory 21 on the data bus 42 together with the cache memory 11 and updates the contents stored in the main memory 5 to the latest contents. If the cache memory 11 outputs "rewrite" to the access type bus 44, the valid portion 64 of the entry e in which the block B a is stored is set to "0" (invalid) and invalidated (steps 213 and 214). . As a result, the processor 1
When the access from 0 to the block B a is “rewrite”, the content before rewrite does not exist in the other cache memory 21 or 31, and the data consistency is guaranteed.
【0020】キャッシュメモリ11は、矛盾応答バス4
5を介して矛盾が発生(「オン」)した旨の通知を受信
しなければ、転送応答バス46を介して要求したブロッ
クB a がデータバス42上に出力され、データバス42
上に出力されたブロックBaをロック状態部63が
“0”(アンロック状態)であるエントリから予め決め
られた手続きによって選択したエントリ(選択したエン
トリをエントリEと記述する)のブロックデータ部62
に格納し、アドレスaの情報をアドレス情報部61に格
納し、バリッド部64を“1”(有効)とする(ステッ
プ104,105)。プロセッサ10がプロセッサバス
12にアクセス種別として「読出し」かつ「ロック指
示」を出力している場合エントリEのロック状態部63
を“1”(読出しロック状態)にし(ステップ105〜
107)、プロセッサ10がプロセッサバス12にアク
セス種別として「書き換え」を出力している場合、エン
トリEのモディファイ部65を“1”とし(ステップ1
09)、「ロック指示」を出力している場合ロック状態
部63を“2”(書き換えロック状態)とする(ステッ
プ110,111)。The cache memory 11 uses the conflict response bus 4
Receive notification of inconsistency (“on”) via 5
Otherwise, the block requested via transfer response bus 46
B a Is output to the data bus 42, and the data bus 42
Block B output aboveaLock state part 63
Predetermined from the entry that is “0” (unlocked state)
The selected entry (selected entry
Block data portion 62)
The address information is stored in the address information section 61.
Then, the valid portion 64 is set to "1" (valid) (step
104, 105). Processor 10 is the processor bus
12 access types "read" and "lock finger"
Is output, the lock state part 63 of the entry E is output.
Is set to "1" (read lock state) (steps 105 to 105).
107), the processor 10 accesses the processor bus 12.
If "Rewrite" is output as the process type, the
The modification unit 65 of the bird E is set to "1" (step 1
09), when "lock instruction" is output Locked state
The part 63 is set to "2" (rewrite lock state) (step
110, 111).
【0021】プロセッサ10からのブロックBa に対す
るアクセス種別が「書き換え」であればエントリEのモ
ディファイ部65を“1”(ブロックデータ部62のブ
ロックBa とメインメモリ5のブロックBa が不一致)
とするとともにプロセッサ10からプロセッサバス12
を介して指示された内容でエントリEのブロックデータ
部62に格納されているブロックBa のアドレスaで指
定されるデータを書き換え、プロセッサ10からのブロ
ックBa に対するアクセス種別が「読出し」であればエ
ントリEのブロックデータ部62に格納されているブロ
ックBa のアドレスaで指定されるデータを読出し、プ
ロセッサ10に転送する(ステップ122)。キャッシ
ュメモリ11は信号線13を介してシステムバス4の使
用を終了したことをバスマスタコントローラ6に知らせ
る。 (2)プロセッサ10からプロセッサバス12を介して
要求されたアドレスaのデータを含むブロックBa を格
納する有効なエントリEがキャッシュメモリ11に存在
する場合 プロセッサ10がプロセッサバス12に出力しているア
クセス種別が「書き換え」かつエントリEのモディファ
イ部65が“0”(ブロックデータ部62のブロックB
a とメインメモリ5のブロックBa が一致)であれば、
キャッシュメモリ11は信号線13を介してシステムバ
ス4の使用要求をバスマスタコントローラ6に知らせ、
バスマスタコントローラ6が、予め定められた手続きに
従い、信号線14を介してシステムバス4の使用許可を
キャッシュメモリ11に与えた時、キャッシュメモリ1
1はアドレスバス41上にアドレスaを出力し、リード
/ライトバス43に「読出し」を出力し、アクセス種別
バス44にプロセッサ10が出力しているアクセス種別
である「書き換え」を出力する(ステップ112,11
3)。この時、処理ユニット2または3のキャッシュメ
モリ21または31から矛盾応答バス47を介して矛盾
が発生した旨の通知を受けると、キャッシュメモリ11
は下記(3)に示す矛盾解消処理をおこなう(ステップ
114,124)。キャッシュメモリ11はキャッシュ
メモリ21または31が矛盾応答バス47に矛盾が発生
した旨の信号を出力しなければ応答を出力した旨の信号
を転送応答バス46に出力して、メインメモリ5からの
ブロックBa の転送を抑止し(キャッシュメモリ11に
は既にブロックBa が存在するのでブロック転送は不要
である)、信号線13を介してシステムバス4の使用を
終了したことをバスマスタコントローラ6に知らせる
(ステップ116)。キャッシュメモリ11は、プロセ
ッサ10がプロセッサバス12に出力しているアクセス
種別、エントリEのモディファイ部65の値の如何にか
かわらず、以下の処理を行う。 (2−a)エントリEのロック状態部63が“0”(ア
ンロック状態)の場合 プロセッサ10がプロセッサバス12にアクセス種別と
して「読出し」かつ「ロック指示あり」を出力している
場合、エントリEのロック状態部63を“1”(読出し
ロック状態)に(ステップ106〜108)、プロセッ
サ10がプロセッサバス12にアクセス種別として「書
き換え」かつ「ロック指示有り」を出力している場合、
エントリEのロック状態部63を“2”(書き換えロッ
ク状態)とする(ステップ106,109〜111)。[0021] The modifier unit 65 of the access type for the block B a is equal to "rewrite" entry E from the processor 10 to "1" (block B a mismatch block B a and the main memory 5 of the block data section 62)
From the processor 10 to the processor bus 12
The data designated by the address a of the block B a stored in the block data portion 62 of the entry E is rewritten with the content instructed via the entry E, and the access type from the processor 10 to the block B a is “read”. For example, the data designated by the address a of the block B a stored in the block data section 62 of the entry E is read and transferred to the processor 10 (step 122). The cache memory 11 informs the bus master controller 6 via the signal line 13 that the use of the system bus 4 has been completed. (2) When there is a valid entry E in the cache memory 11 for storing the block B a containing the data at the address a requested by the processor 10 via the processor bus 12, the processor 10 is outputting to the processor bus 12. When the access type is "rewrite" and the modification unit 65 of the entry E is "0" (block B of the block data unit 62)
a and the block B a of the main memory 5 match),
The cache memory 11 informs the bus master controller 6 of a request to use the system bus 4 via the signal line 13,
When the bus master controller 6 gives permission to use the system bus 4 to the cache memory 11 via the signal line 14 according to a predetermined procedure, the cache memory 1
1 outputs the address a on the address bus 41, outputs "read" to the read / write bus 43, and outputs "rewrite", which is the access type output by the processor 10, to the access type bus 44 (step 112, 11
3). At this time, when the notification that the contradiction has occurred is received from the cache memory 21 or 31 of the processing unit 2 or 3 via the contradiction response bus 47, the cache memory 11
Performs the contradiction resolution process shown in (3) below (steps 114 and 124). If the cache memory 21 or 31 does not output the signal indicating that the contradiction occurs on the contradiction response bus 47, the cache memory 11 outputs a signal indicating that a response is output to the transfer response bus 46, and the block from the main memory 5 is output. The transfer of B a is suppressed (block transfer is unnecessary because the block B a already exists in the cache memory 11), and the bus master controller 6 is notified via the signal line 13 that the use of the system bus 4 has been completed. (Step 116). The cache memory 11 performs the following processing regardless of the access type that the processor 10 outputs to the processor bus 12 and the value of the modification unit 65 of the entry E. (2-a) When the lock state part 63 of the entry E is “0” (unlocked state) When the processor 10 outputs “read” and “lock instruction given” to the processor bus 12 as the access type, the entry When the lock state unit 63 of E is set to "1" (read lock state) (steps 106 to 108) and the processor 10 outputs "rewrite" and "lock instruction present" as the access type to the processor bus 12,
The lock state part 63 of the entry E is set to "2" (rewrite lock state) (steps 106, 109 to 111).
【0022】プロセッサ10からのブロックBa に対す
るアクセス種別が「書き換え」であればエントリEのモ
ディファイ部65を“1”(ブロックデータ部62のB
a とメインメモリ5のBa が不一致)とするとともに
(ステップ120)、プロセッサ10からプロセッサバ
ス12を介して指示された内容でエントリEのブロック
データ部62に格納されている、ブロックBa のアドレ
スaで指定されるデータを書き換え、プロセッサ10か
らのブロックBa に対するアクセス種別が「読出し」で
あればエントリEのブロックデータ部62に格納されて
いる、ブロックB a のアドレスaで指定されるデータを
プロセッサ10に転送する(ステップ123)。 (2−b)エントリEのロック状態部63が“1”(読
出しロック状態)または“2”(書き換えロック状態)
の場合 プロセッサ10からのアクセス種別が「読出し」かつ
「ロック指示なし」であれば、エントリEのロック状態
部63を“0”(アンロック状態)とし(ステップ11
7〜119)、エントリEのブロックデータ部62に格
納されている、ブロックBa のアドレスaで指定される
データをプロセッサ10に転送する(ステップ12
3)。プロセッサ10からのアクセス種別が「書き換
え」であればエントリEのモディファイ部65を“1”
(ブロックデータ部62のBa とメインメモリ5のBa
が不一致)とするとともに(ステップ117,12
0)、「ロック指示有り」であればエントリEのロック
状態部63を“2”(書き換えロック状態)とし(ステ
ップ121,122)、「ロック指示なし」であれば、
エントリEのロック状態部63を“0”(アンロック状
態)とし(ステップ119)、プロセッサ10からプロ
セッサバス12を介して指示された内容でエントリEの
ブロックデータ部62に格納されている、ブロックBa
のアドレスaで指定されるデータを書き換える(ステッ
プ123)。 (3)他の処理ユニット2,3から矛盾応答バス47を
介して矛盾が発生した旨の通知を受信した場合 キャッシュメモリ11はプロセッサ10で実行中の処理
を中断して予め定められた時間が経過した後に処理を再
開するか、または実行中の処理が書き換えたメインメモ
リ5の内容を処理が実行を開始する以前の状態に戻す処
理を行って実行中の処理を中止し、予め定められた時間
が経過した後に処理を最初から実行する(ステップ12
4)。Block B from processor 10a Against
If the access type to be rewritten is “rewrite”, the entry E
The define section 65 is set to "1" (B in the block data section 62).
a And B of main memory 5a Disagreement) and
(Step 120), processor 10 to processor
Block of entry E with contents instructed via page 12
Block B stored in the data section 62a Address
Rewrite the data specified by the
Block Ba Access type is "read"
If it exists, it is stored in the block data section 62 of the entry E.
Block B a Data specified by the address a of
Transfer to the processor 10 (step 123). (2-b) The lock state part 63 of the entry E is "1" (read
Output lock state) or "2" (rewrite lock state)
When the access type from the processor 10 is “read” and
If there is no lock instruction, the locked state of entry E
The part 63 is set to “0” (unlocked state) (step 11
7 to 119), the block data portion 62 of the entry E
Paid, block Ba Specified by address a
Transfer the data to the processor 10 (step 12)
3). The access type from the processor 10 is “rewrite
If it is “E”, the modification section 65 of the entry E is set to “1”.
(B of the block data section 62a And B of main memory 5a
And (steps 117 and 12)
0), if there is a lock instruction, entry E is locked
The state part 63 is set to "2" (rewrite lock state) (step
121, 122), if "no lock instruction",
The lock state part 63 of the entry E is set to "0" (unlocked state).
State) (step 119), and the processor 10
The contents of the entry E of the contents instructed via the sessa bus 12
Block B stored in the block data section 62a
Rewrite the data specified by the address a of
123). (3) Conflict response bus 47 from other processing units 2 and 3
When a notification indicating that a contradiction has occurred is received via the cache memory 11, the process being executed by the processor 10 is executed.
Process and restart the process after a predetermined time has elapsed.
The main memo opened or rewritten by the process being executed
A process for restoring the contents of item 5 to the state before the process started executing
A predetermined period of time after processing
After the lapse of time, the process is executed from the beginning (step 12).
4).
【0023】このように、各処理ユニット1,2,3が
同時並列にアクセスする共通データのアクセス権の確保
/解放の処理を各処理ユニット1,2,3が共通データ
にアクセスする処理と同時に行うので、共通データのア
クセス権の確保/解放のために各処理ユニット1,2,
3での処理量が増加せず、処理ユニット1,2,3の実
効的な処理性能の低下を無くすことが可能となる。As described above, the processing of securing / releasing the access right of the common data which the processing units 1, 2 and 3 simultaneously access in parallel is performed at the same time as the processing of the processing units 1, 2 and 3 accessing the common data. Therefore, each processing unit 1, 2,
It is possible to prevent the effective processing performance of the processing units 1, 2 and 3 from decreasing without increasing the processing amount in the processing unit 3.
【0024】次に、請求項2の実施例を以下に述べる。
本実施例において、図1のシステムバス4の矛盾応答バ
ス47が削除され、図3中の「矛盾応答バス47がオン
?」(ステップ104,114)および矛盾解消処理
(ステップ124)が削除され、図6のステップ206
が「矛盾解消処理」に変更される。図7と図8は本実施
例において、プロセッサ10がブロックBa をアクセス
する場合のキャッシュメモリ11の処理を示すフローチ
ャート、図9と図10は他の処理ユニット21,31が
システムバス4に出力されたアクセスをチェックする処
理のフローチャートである。Next, an embodiment of claim 2 will be described below.
In this embodiment, the contradiction response bus 47 of the system bus 4 in FIG. 1 is deleted, and “contradiction response bus 47 is on?” (Steps 104 and 114) and contradiction resolution processing (step 124) in FIG. 3 are deleted. , Step 206 of FIG.
Is changed to "contradiction resolution processing". 7 and 8 are flowcharts showing the processing of the cache memory 11 when the processor 10 accesses the block B a in this embodiment, and FIGS. 9 and 10 show that the other processing units 21 and 31 output to the system bus 4. It is a flowchart of the process which checks the made access.
【0025】本実施例は、予盾発生時に、予盾発生をア
クセス元の処理ユニットのキャッシュメモリに通知する
のではなく、予盾検出元で予盾解消処理(処理の中止)
を行なう。これにより、矛盾応答バス47の分、ハード
ウエア量が削減される。In the present embodiment, when a shield is generated, the shield is not notified to the cache memory of the processing unit of the access source, but the shield is canceled by the shield detecting source (processing is stopped).
Do. As a result, the amount of hardware is reduced by the amount of the conflict response bus 47.
【0026】次に、請求項3の一実施例を以下に述べ
る。本実施例においては、各処理ユニット1,2,3の
キャッシュメモリ11,21,31にプロセッサ10,
20,30が書き換え可能な優先度レジスタが設けら
れ、プロセッサ10,20,30は実行開始時に上記優
先度レジスタに実行する処理の優先度を書込む。Next, an embodiment of claim 3 will be described below. In the present embodiment, the processor 10, the cache memories 11, 21, 31 of the respective processing units 1, 2, 3,
20 and 30 are provided with rewritable priority registers, and the processors 10, 20, and 30 write the priority of processing to be executed in the priority registers at the start of execution.
【0027】バスマスタコントローラ6からシステムバ
ス4の使用許可を得てシステムバス4にアドレスを出力
するキャッシュメモリ11は優先度レジスタに書込まれ
ている優先度を優先度バス45に出力する。他の処理ユ
ニット2,3がシステムバス4に出力したアクセスをチ
ェックする処理において、矛盾が発生した(図6のステ
ップ206)時、矛盾を検出した処理ユニットのキャッ
シュメモリは、優先度バス45に出力されている優先度
と優先度レジスタに書込まれている優先度とを比較し、
優先度レジスタに書込まれている優先度が優先度バス4
5に出力されている優先度より高いかまたは同じである
場合、上記請求項1の実施例に示すように、矛盾応答バ
ス47に矛盾が発生した旨の信号を出力し、優先度レジ
スタに書込まれている優先度が優先度バス45に出力さ
れている優先度よりも低い場合には、上記請求項2の実
施例に示すように、自プロセッサで実行中の処理を中止
させる。The cache memory 11 which obtains the use permission of the system bus 4 from the bus master controller 6 and outputs the address to the system bus 4 outputs the priority written in the priority register to the priority bus 45. When a contradiction occurs in the process of checking the access output to the system bus 4 by the other processing units 2 and 3 (step 206 in FIG. 6), the cache memory of the processing unit that has detected the contradiction is assigned to the priority bus 45. Compare the output priority with the priority written in the priority register,
The priority written in the priority register is the priority bus 4
If the priority is higher than or equal to the priority output to No. 5, the signal indicating that the inconsistency has occurred on the inconsistency response bus 47 is output and written in the priority register, as shown in the embodiment of claim 1 above. When the incorporated priority is lower than the priority output to the priority bus 45, the processing being executed by the own processor is stopped as shown in the embodiment of the second aspect.
【0028】このように、共通データに同時並列にアク
セスする処理の中で、重要度が高く、他の処理に比べて
優先して実行させたい優先度の高い処理と優先度の低い
処理との間で、共通データに対して競合が発生した場
合、優先度の低い処理が中止され優先度の高い処理が優
先して実行される。なお、優先度レジスタはプロセッサ
10,20,30内に設けてもよい。As described above, among the processes for accessing the common data in parallel at the same time, there are a process having a high priority and a process having a high priority and a process having a low priority which are to be executed with priority over other processes. In the meantime, when a conflict occurs with the common data, the process with the low priority is stopped and the process with the high priority is executed with priority. The priority register may be provided in the processor 10, 20, 30.
【0029】次に、請求項4の一実施例を以下に述べ
る。本実施例においては、プロセッサ10で実行中の処
理がロック状態となっている共通データの排他制御が不
要となった時、プロセッサ10はキャッシュメモリ11
に対してロック状態の解除を通知する。キャッシュメモ
リ11はこの通知を受けると、図2に示すように、ロッ
ク状態リセット指示信号66(リセット手段)をオンと
し、キャッシュメモリ内の全てのエントリのロック状態
部63の値を“0”とする。Next, an embodiment of claim 4 will be described below. In the present embodiment, when the process being executed by the processor 10 does not need the exclusive control of the common data in the locked state, the processor 10 causes the cache memory 11 to operate.
Is notified to the lock release. When the cache memory 11 receives this notification, as shown in FIG. 2, the lock state reset instruction signal 66 (reset means) is turned on, and the values of the lock state parts 63 of all the entries in the cache memory are set to "0". To do.
【0030】これにより、引き続きプロセッサで実行す
る処理において、ロック状態となっている共通データへ
のアクセスが不要となった場合、ロックを解除するため
のアクセス(ロック指示を行わずに当該ブロックへのア
クセスを行う)を共通データを格納しているブロック毎
に行うことが不要となり、ロック解除のための処理ユニ
ットからのアクセス回数を削減可能となる。特に、矛盾
解消処理のために、ロック状態を解除する場合に有効で
ある。As a result, when it becomes unnecessary to access the common data in the locked state in the process executed by the processor, the access for releasing the lock (the block is accessed without issuing the lock instruction). It is not necessary to perform (access) for each block storing common data, and the number of accesses from the processing unit for unlocking can be reduced. In particular, it is effective in releasing the locked state for the conflict resolution processing.
【0031】[0031]
【発明の効果】以上説明したように、本発明は、以下の
ような効果がある。 (1)請求項1の発明は、排他制御情報と処理ユニット
がシステムバスに出力したアクセス種別とが処理の予盾
を引き起すような予め定められた組み合わせの場合、排
他制御情報がセットされているブロックに対してアクセ
スを行なったことをアドレス出力元の処理ユニットに通
知することにより、各処理ユニットが同時並列にアクセ
スする共通データへのアクセスを行う際にアクセス権の
確保/解放の処理を各処理ユニットで実行するアクセス
と同時に実行することが可能となり、アクセス権の確保
および解放のための処理ユニットのオーバーヘッドが生
じず、処理ユニットでの実効的な性能を向上させること
が可能となる。 (2)請求項2の発明は、システムバスにアドレスを出
力したキャッシュメモリが、該アドレスに対して排他制
御情報がセットされているブロックへのアクセスを行な
ったことを自処理ユニットのプロセッサに通知すること
により、システムバスのハードウエア量が削減される。 (3)請求項3の発明は、処理ユニット内に処理の優先
度が書込まれる優先度レジスタを設け、優先度をシステ
ムバスに出力し、共通データへのアクセス時に予盾が発
生した場合には、優先度の低い処理を中断または中止す
ることにより、優先度の高い処理が実行される。 (4)請求項4の発明は、プロセッサで実行中の処理が
共通データへのアクセスが不要になったとき、全エント
リのロック状態部をリセット(アンロック状態に)する
ことにより、ロック解除のための処理ユニットからのア
クセス回数が削除される。As described above, the present invention has the following effects. (1) According to the invention of claim 1, when the exclusive control information and the access type output to the system bus by the processing unit are a predetermined combination that causes a prediction of processing, the exclusive control information is set. By notifying the processing unit of the address output source that the access to the existing block has been performed, the processing of securing / releasing the access right can be performed when the processing units access the common data accessed in parallel at the same time. It becomes possible to execute the access at the same time as the access executed in each processing unit, the overhead of the processing unit for securing and releasing the access right does not occur, and the effective performance in the processing unit can be improved. (2) The invention of claim 2 notifies the processor of its own processing unit that the cache memory that has output an address to the system bus has accessed a block in which exclusive control information is set for the address. By doing so, the amount of hardware of the system bus is reduced. (3) According to the invention of claim 3, a priority register in which the priority of processing is written is provided in the processing unit, the priority is output to the system bus, and when a shield comes out when accessing the common data, Causes a process with a high priority to be executed by suspending or canceling a process with a low priority. (4) According to the invention of claim 4, when the process being executed by the processor does not need to access the common data, the lock state part of all the entries is reset (in the unlock state) to release the lock. The number of accesses from the processing unit is deleted.
【図1】本発明の請求項1の一実施例を示すマルチプロ
セッサシステムのブロック図である。FIG. 1 is a block diagram of a multiprocessor system showing an embodiment of claim 1 of the present invention.
【図2】図1中のキャッシュメモリ11,21,31の
エントリの構成を示す図である。FIG. 2 is a diagram showing a configuration of entries in cache memories 11, 21, 31 in FIG.
【図3】図1の実施例において、プロセッサ10からの
アクセスに対するキャッシュメモリ11の動作を示すフ
ローチャートである。3 is a flowchart showing an operation of a cache memory 11 in response to an access from a processor 10 in the embodiment of FIG.
【図4】図1の実施例において、プロセッサ10からの
アクセスに対するキャッシュメモリ11の動作を示すフ
ローチャートである。4 is a flowchart showing an operation of a cache memory 11 in response to an access from a processor 10 in the embodiment shown in FIG.
【図5】図1の実施例において、他の処理ユニット2,
3による、アクセスをチェックする動作を示すフローチ
ャートである。5 shows another processing unit 2 in the embodiment of FIG.
6 is a flowchart showing an operation of checking access according to No. 3;
【図6】図1の実施例において、他の処理ユニット2,
3による、アクセスをチェックする動作を示すフローチ
ャートである。FIG. 6 is another processing unit 2 in the embodiment of FIG.
6 is a flowchart showing an operation of checking access according to No. 3;
【図7】本発明の請求項2の一実施例で、プロセッサ1
0からのアクセスに対するキャッシュメモリ11の動作
を示すフローチャートである。FIG. 7 shows a processor 1 according to an embodiment of claim 2 of the present invention.
6 is a flowchart showing an operation of the cache memory 11 with respect to access from 0.
【図8】本発明の請求項2の一実施例で、プロセッサ1
0からのアクセスに対するキャッシュメモリ11の動作
を示すフローチャートである。FIG. 8 is a processor 1 according to an embodiment of claim 2 of the present invention.
6 is a flowchart showing an operation of the cache memory 11 with respect to access from 0.
【図9】本発明の請求項2の一実施例で、他の処理ユニ
ット2,3による、アクセスをチェックする動作を示す
フローチャートである。FIG. 9 is a flowchart showing an operation of checking access by other processing units 2 and 3 according to the second embodiment of the present invention.
【図10】本発明の請求項2の一実施例で、他の処理ユ
ニット2,3による、アクセスをチェックする動作を示
すフローチャートである。FIG. 10 is a flowchart showing an operation of checking access by other processing units 2 and 3 according to the second embodiment of the present invention.
1,2,3 処理ユニット 4 システムバス 5 メインメモリ 11,21,31 キャッシュメモリ 12,22,32 プロセッサバス 13,14,23,24,33,34 信号線 41 アドレスバス 42 データバス 43 リード/ライトバス 44 アクセス種別バス 45 優先度バス 46 転送応答バス 47 矛盾応答バス 61 アドレス情報部 62 ブロックデータ部 63 ロック状態部 64 バリッド部 65 モディファイ部 66 ロック状態リセット指示 101〜125,201〜207 ステップ 1, 2, 3 processing unit 4 system bus 5 main memory 11, 21, 31 cache memory 12, 22, 32 processor bus 13, 14, 23, 24, 33, 34 signal line 41 address bus 42 data bus 43 read / write Bus 44 Access type bus 45 Priority bus 46 Transfer response bus 47 Contradiction response bus 61 Address information part 62 Block data part 63 Lock status part 64 Valid part 65 Modify part 66 Lock status reset instruction 101-125, 201-207 Steps
Claims (4)
と、前記複数の処理ユニットと前記メインメモリを接続
するシステムバスで構成され、前記処理ユニットはプロ
セッサとキャッシュメモリから成り、前記メインメモリ
のアドレス空間は複数のブロックに分割され、前記キャ
ッシュメモリは複数のエントリから成るマルチプロセッ
サシステムにおいて、 前記各エントリは、ブロックのアドレス、ブロックがそ
れぞれ格納されるアドレス情報部、ブロックデータ部
と、該ブロックデータ部に格納されているデータの読出
しまたは書き換えを禁止する排他制御情報が設定される
ロック状態部とを含み、 前記各プロセッサは自処理ユニットのキャッシュメモリ
のエントリの前記ロック状態部に排他制御情報を設定す
る排他制御情報設定手段と排他制御情報をリセットする
排他制御情報リセット手段を有し、 ある処理ユニットのキャッシュメモリが前記システムバ
スにアドレスとアクセス種別を出力したとき、他の処理
ユニットのキャッシュメモリは、当該アドレスで指定さ
れるブロックが格納されているエントリのロック状態部
に排他制御情報がセットされており、さらに、排他制御
情報と前記処理ユニットがシステムバスに出力したアク
セス種別とが予め定められた組み合わせの場合、排他制
御情報がセットされているブロックに対してアクセスを
行った旨をアドレス出力元の処理ユニットに通知するこ
とを特徴とするマルチプロセッサシステム。1. A plurality of processing units, a main memory, and a system bus that connects the plurality of processing units to the main memory, the processing unit including a processor and a cache memory, and an address space of the main memory. Is divided into a plurality of blocks, and the cache memory is composed of a plurality of entries. In each of the entries, an address of the block, an address information section in which the block is stored, a block data section, and the block data section And a lock state part in which exclusive control information for prohibiting reading or rewriting of data stored in is set, wherein each processor sets exclusive control information in the lock state part of the entry of the cache memory of its own processing unit. Exclusive control information setting means and exclusive When a cache memory of a processing unit outputs an address and an access type to the system bus, the cache memory of another processing unit has a block designated by the address. If the exclusive control information is set in the lock state part of the entry that stores, and the exclusive control information and the access type output to the system bus by the processing unit are a predetermined combination, the exclusive control information A multiprocessor system characterized by notifying a processing unit of an address output source that an access has been made to a block in which is set.
キャッシュメモリは前記システムバスに出力されたアド
レスに対して排他制御情報がセットされているブロック
へのアクセスを行なったことをアドレス出力元の処理ユ
ニットではなく自処理ユニットのプロセッサに通知する
請求項1記載のマルチプロセッサシステム。2. A processing unit as an address output source indicates that the cache memory that has output an address to the system bus has accessed a block in which exclusive control information is set for the address output to the system bus. The multiprocessor system according to claim 1, wherein the processor of the self processing unit is notified instead of the above.
え可能で、プロセッサが実行開始時に実行する処理の優
先度を書込む優先度レジスタが設けられ、処理ユニット
のキャッシュメモリはアクセス情報とともに前記優先度
レジスタに書込まれている優先度を前記システムバスに
出力し、他の処理ユニットのキャッシュメモリは、前記
システムバスに出力されたアドレスに対して排他制御情
報がセットされているブロックへのアクセスを行ったこ
とを、自プロセッサの優先度とシステムバスに出力され
た優先度を比較し、前者が後者より高いか、後者と等し
いときアドレス出力元の処理ユニットに通知し、前者が
後者より低いとき自プロセッサで実行中の処理を中止さ
せる請求項1または2に記載のマルチプロセッサシステ
ム。3. Each processing unit is provided with a priority register which is rewritable by the processor and which writes the priority of processing executed by the processor at the start of execution, and the cache memory of the processing unit stores the priority register together with access information. To the system bus, and the cache memory of another processing unit accesses the block in which the exclusive control information is set for the address output to the system bus. Compare the priority of its own processor with the priority output to the system bus, notify the processing unit of the address output source when the former is higher than the latter or equal to the latter, and when the former is lower than the latter, The multiprocessor system according to claim 1, wherein processing being executed by the processor is stopped.
リの処理ユニット内のプロセッサで実行中の処理が共通
データの排他制御が不要となった時、該キャッシュメモ
リ内の全エントリのロック状態部の排他制御情報をリセ
ットするリセット手段を有する請求項1〜3のいずれか
1項に記載のマルチプロセッサシステム。4. The exclusive control of the lock state part of all entries in the cache memory when the processing being executed by the processor in the processing unit of the cache memory does not require the exclusive control of the common data. 4. The multiprocessor system according to claim 1, further comprising reset means for resetting information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4185417A JPH0635866A (en) | 1992-07-13 | 1992-07-13 | Multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4185417A JPH0635866A (en) | 1992-07-13 | 1992-07-13 | Multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0635866A true JPH0635866A (en) | 1994-02-10 |
Family
ID=16170427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4185417A Pending JPH0635866A (en) | 1992-07-13 | 1992-07-13 | Multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0635866A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099616A1 (en) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | Address exclusive control system and address exclusive control method |
US9751644B2 (en) | 2012-07-25 | 2017-09-05 | Korea Aerospace Research Institute | Three-dimensional rigid ball driving system |
-
1992
- 1992-07-13 JP JP4185417A patent/JPH0635866A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099616A1 (en) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | Address exclusive control system and address exclusive control method |
JP4712863B2 (en) * | 2006-02-28 | 2011-06-29 | 富士通株式会社 | Address exclusion control system and address exclusion control method |
US8082410B2 (en) | 2006-02-28 | 2011-12-20 | Fujitsu Limited | Address exclusive control system and address exclusive control method |
US9751644B2 (en) | 2012-07-25 | 2017-09-05 | Korea Aerospace Research Institute | Three-dimensional rigid ball driving system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6708256B2 (en) | Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes | |
CN110312997B (en) | Implementing atomic primitives using cache line locking | |
KR101461378B1 (en) | Synchronizing simd vectors | |
AU2010337318B2 (en) | Mechanisms to accelerate transactions using buffered stores | |
US10445238B1 (en) | Robust transactional memory | |
CN107851037B (en) | Coherency protocol for hardware transactional stores in shared memory using journaling and unlocked non-volatile memory | |
US20100241812A1 (en) | Data processing system with a plurality of processors, cache circuits and a shared memory | |
US5261106A (en) | Semaphore bypass | |
US11442871B2 (en) | Supporting concurrent remove operations and add-to-front operations on a Least Recently Used (LRU) queue | |
CN112970003A (en) | Method and apparatus for implementing lock-free data structures | |
JP2015158936A (en) | Data processor | |
US6918011B2 (en) | Cache memory for invalidating data or writing back data to a main memory | |
JPH0635866A (en) | Multiprocessor system | |
JP3381079B2 (en) | Exclusive control system using cache memory | |
JP3381086B2 (en) | Exclusive controllable multiprocessor system | |
US6401173B1 (en) | Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state | |
JPH06139206A (en) | Exclusive control system of multiprocessor system | |
JP3427901B2 (en) | Memory content recovery device | |
JP3381080B2 (en) | Exclusive control method that can interrupt processing | |
JPH06266621A (en) | Data access method | |
JP4370227B2 (en) | Processor | |
CN116685958A (en) | Method and device for accessing data | |
JPH05134918A (en) | Information processor | |
JPH06175981A (en) | Method and system for exclusive control using cache memory | |
JPS6238743B2 (en) |