JPH01119849A - Multi-processor system - Google Patents

Multi-processor system

Info

Publication number
JPH01119849A
JPH01119849A JP62278579A JP27857987A JPH01119849A JP H01119849 A JPH01119849 A JP H01119849A JP 62278579 A JP62278579 A JP 62278579A JP 27857987 A JP27857987 A JP 27857987A JP H01119849 A JPH01119849 A JP H01119849A
Authority
JP
Japan
Prior art keywords
instruction
lock
block
address
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP62278579A
Other languages
Japanese (ja)
Inventor
Takafumi Yamada
山田 尚文
Kanji Kubo
久保 完次
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62278579A priority Critical patent/JPH01119849A/en
Publication of JPH01119849A publication Critical patent/JPH01119849A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To execute at a high speed the processing of serialization in a lock instruction accompanied with a serialization operation by providing a means for executing a block cancel to a data block of a buffer storage device of other instruction processor. CONSTITUTION:In a lock instruction accompanied with serialization from an instruction processor 1 or 2, when a storage controller 3 applies a lock, a block cancel means of the storage controller 3 sends a block cancel request to the other instruction processor 1 or 2. As a result, in the other instruction processor 1 or 2, a data block of a buffer storage device is cancelled, and also, to a main storage device 4, an access is inhibited by a lock control. In such a way, the lock instruction accompanied with serialization can be ended without waiting for the end of the store.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、多重プロセッサシステムに関し、特に、命令
の順序性を保証するためのシリアライゼーション動作を
伴う命令を高速に処理できるようにした多重プロセッサ
システムに関するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a multiprocessor system, and particularly to a multiprocessor system that can process instructions at high speed that involve serialization operations to ensure the order of instructions. It is related to.

〔従来の技術〕[Conventional technology]

従来、複数プロセッサで構成される多重プロセッサシス
テムにおいて、各プロセッサが主記憶装置上でデータを
共有して処理を行うため、あるプロセッサが主記憶装置
」二の共有データを読み書きする場合には、ロック制御
機構により、ある一定期間、他のプロセッサからのデー
タアクセスを禁止して、共有データの読み書きを行う。
Conventionally, in a multiprocessor system consisting of multiple processors, each processor shares data on the main memory for processing, so when a processor reads or writes shared data in the main memory, a lock is required. A control mechanism prohibits data access from other processors for a certain period of time, and reads and writes shared data.

この種のロック制御機構については、例えば、時開51
−10704、2号公報に開示されている。
For this type of lock control mechanism, for example, the time opening 51
-10704, No. 2 publication.

このようなロック!lI御機構を使用する命令の例とし
ては、例えば、Mシリーズ処理装置(M/EXモード)
  (8080−2−093)に示されているO8(C
ompare and S wap)命令がある◎第5
図は、O8命令を説明する図である。このC8命令30
は、第5図に示すように、3つのオペランドを有するR
5形式の命令である。このC8命令30におけるR1お
よびR3は、汎用レジスタ(GR)の番号を示し、B2
はペースレジスタ番号を示し、B2はペースレジスタ(
B2)からの変位(D isplacement)を示
しテイル。ペースレジスタB2の内容と変位D2とによ
り、主記憶装置」二のオペランドアドレスが示される。
Rock like this! Examples of instructions that use the II control mechanism include, for example, M series processing units (M/EX mode)
(8080-2-093)
There is a compare and swap) instruction◎5th
The figure is a diagram explaining the O8 instruction. This C8 instruction 30
is R with three operands, as shown in Figure 5.
5 type of command. R1 and R3 in this C8 instruction 30 indicate the general purpose register (GR) number, and B2
indicates the pace register number, and B2 indicates the pace register (
B2) shows the displacement from the tail. The contents of pace register B2 and displacement D2 indicate the operand address in main memory 2.

CS命令の動作の概略を説明する。まず、R1で示され
る汎用レジスタの内容31(第1オペランド)と、ペー
スレジスタB2および変位D2で指定されるアドレスの
主記憶装置4上の内容33(第2オペランド)とを比較
する。そして、比較結果が等しければ、R3で示される
汎用レジスタの内容32(第3オペランド)が、主記憶
装置4上の当該アドレスの位置(第2オペランド)にス
トアされる。また、比較結果が等しくなれば、R3で指
定される汎用レジスタの内容32(第3オペランド)が
、R1で指定される汎用レジスタ(第1オペランド)に
ロードされる。
An outline of the operation of the CS instruction will be explained. First, the content 31 (first operand) of the general-purpose register indicated by R1 is compared with the content 33 (second operand) on the main memory 4 at the address specified by pace register B2 and displacement D2. If the comparison results are equal, the contents 32 (third operand) of the general-purpose register indicated by R3 are stored at the corresponding address location (second operand) on the main storage device 4. Furthermore, if the comparison results are equal, the contents 32 (third operand) of the general-purpose register specified by R3 are loaded into the general-purpose register (first operand) specified by R1.

多重プロセッサシステムを構成する1つの命令プロセッ
サにより、このC8命令が実行される場合、CS命令を
処理する命令プロセッサは、CS命令を実行する動作に
おいて、第2オペランドの主記憶装置4上の該当アドレ
ス位置のデータの読出し開始から、比較結果により主記
憶装置4上の該当アドレス位置に所定のデータをストア
するまでの間、主記憶装置4に対する他のプロセッサか
らのアクセスを禁止するロック制御を行う。すなわち、
このC8命令の処理は、ロック制御機構によるロックを
かけて行われる。また、C8命令はシリアライゼーショ
ン動作を伴うロック命令であり、さらに、このC8命令
の処理の前後で、シリアライゼーション動作が行われる
。このシリアライゼーション動作は、命令の順序性を保
証するため動作である。すなわち、シリアライゼーショ
ン動作では、シリアライゼーション動作が行われた時は
、他の命令プロセッサから見ると、命令実行の処理の流
れにおいて、シリアライゼーション前のストアがすべて
終了した後に、次の動作(フェッチまたはストア)が行
われるということが保証されて、処理の実行制御の動作
が行われる。
When this C8 instruction is executed by one instruction processor constituting a multiprocessor system, the instruction processor that processes the CS instruction selects the corresponding address on the main storage device 4 of the second operand in the operation of executing the CS instruction. Lock control is performed to prohibit access from other processors to the main memory device 4 from the start of reading data at the location until the predetermined data is stored in the corresponding address location on the main memory device 4 based on the comparison result. That is,
Processing of this C8 instruction is performed with a lock applied by the lock control mechanism. Further, the C8 instruction is a lock instruction that involves a serialization operation, and furthermore, the serialization operation is performed before and after the processing of this C8 instruction. This serialization operation is an operation to guarantee the order of instructions. In other words, when a serialization operation is performed, from the perspective of other instruction processors, in the flow of instruction execution processing, the next operation (fetch or store) is performed after all stores before serialization are completed. It is guaranteed that the process will be executed, and the process execution control operation is performed.

第6図は、このようなCS命令が多重プロセッサシステ
ムの1つの命令プロセッサIP#Oにより実行される動
作を説明する図である。第6図を参照して説明する。命
令プロセッサのIP#Oで、C8命令が実行されると、
ロックして主記憶装置からのデータを参照するため、I
P#Oは、まず、ロック付フェッチ(L F)のリクエ
ストを主記憶装置を制御する記憶制御装置(SC)に発
行する。
FIG. 6 is a diagram illustrating an operation in which such a CS instruction is executed by one instruction processor IP#O of the multiprocessor system. This will be explained with reference to FIG. When a C8 instruction is executed at IP#O of the instruction processor,
To lock and refer to data from main memory, I
P#O first issues a fetch with lock (LF) request to the storage controller (SC) that controls the main storage.

記憶制御装置は、LFリクエストを受は取ると、ロック
アドレスアレイ(LKA)にロックアドレスを設定した
後、主記憶装置のデータを読み出しIP#0に送出する
。IP#Oはデータを受は取ると、当該データをテスト
した後、例えば、ストア(S T)リクエストを発行す
る。記憶制御装置は、STリクエストを受は取ると、主
記憶装置にストア動作を行った後に、ブロックキャンセ
ル要求をIP#1に送出する。IP#1では、ブロック
キャンセル要求を受は取ると、当該ブロックのキャンセ
ル動作を行う。I P#Oは、ストア動作の終了を確認
した後、ロック解除(RL)リクエストを発行し、C8
命令を終了する。
When the storage control device receives an LF request, it sets a lock address in a lock address array (LKA), reads out data from the main storage device, and sends it to IP#0. When IP#O receives data, it issues a store (ST) request, for example, after testing the data. When the storage control device receives the ST request, it performs a store operation in the main storage device, and then sends a block cancellation request to IP#1. When IP#1 receives a block cancellation request, it performs a cancellation operation for the block. After confirming the completion of the store operation, IP#O issues a lock release (RL) request and
Finish the command.

この動作において、IP#1側から見て、C8命令の終
了時点は、ブロックキャンセル動作が行われたC1時点
となっている。すなわち、C8命令により書き替えられ
るデータ領域のブロックが、IP#1のバッファ記憶装
置中に存在する場合、IP#1においては、ブロックキ
ャンセル要求により、バッファ記憶装置中の当該ブロッ
クがキャンセルされるまで、C8命令実行前データが読
み出される。A区間ではC8命令実行前のデータが読み
出せ、また、B区間ではCS命令実行後のデータが読み
出される。このため、IP#1から見てIP#Oによる
C8命令の実行終了の時点は、C1時点となっている。
In this operation, as seen from the IP#1 side, the end point of the C8 instruction is the point C1 when the block cancel operation is performed. In other words, if a block in the data area to be rewritten by the C8 instruction exists in the buffer storage device of IP#1, the block in the buffer storage device in IP#1 will be rewritten until the block in the buffer storage device is canceled by a block cancellation request. , C8 instruction pre-execution data is read. In section A, data before execution of the C8 instruction can be read, and in section B, data after execution of the CS instruction can be read. Therefore, as seen from IP#1, the point in time when execution of the C8 instruction by IP#O ends is the point in time C1.

したがって、シリアライゼーション動作を保証するため
には、IP#Oは、ストア動作の終了を見てから、次の
命令の実行を開始するようにする。
Therefore, in order to guarantee the serialization operation, IP#O starts executing the next instruction after seeing the completion of the store operation.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

このように、C8命令終了時のシリアライゼーション動
作を考えると、C8命令による主記憶装置へのストア動
作が終了した後に、次の命令の実行が行われなければな
らない。このため、ストアデータが主記憶装置に書き込
まれるまでは、次の命令の実行ができないことになり、
O8命令の終了が遅れるという問題があった。
In this way, considering the serialization operation at the end of the C8 instruction, the next instruction must be executed after the store operation to the main memory device by the C8 instruction is completed. Therefore, the next instruction cannot be executed until the store data is written to main memory.
There was a problem that the completion of the O8 instruction was delayed.

本発明は、上記問題点を解決するためになされたもので
ある。
The present invention has been made to solve the above problems.

本発明の目的は、例えば、C8命令のようなシリアライ
ゼーション動作を伴うロック命令におけるシリアライゼ
ーションの処理を高速化することにある。
An object of the present invention is to speed up serialization processing in lock instructions that involve serialization operations, such as C8 instructions.

本発明の前記ならびにその他の目的と新規な特徴は、本
明細書の記述及び添付図面によって明らかになるであろ
う。
The above and other objects and novel features of the present invention will become apparent from the description of this specification and the accompanying drawings.

〔問題点を解決するための手段〕[Means for solving problems]

」二記目的を達成するため、本発明においては、複数の
命令プロセッサと、記憶制御装置と、共有の主記憶装置
とからなり、各命令プロセッサが主記憶装置のデータブ
ロックを保持するバッファ記憶装置をそれぞれに有する
多重プロセッサシステムにおいて、各命令プロセッサか
らの要求を排他的に処理するロック制御機構と、前記バ
ッファ記憶装置のデータブロックを無効化する要求を発
行するブロックキャンセル手段とを備え、シリアライゼ
ーション動作を伴うロック命令の処理は、前記ロック制
御機構によりロックをかける時に、前記ブロックキャン
セル手段により他の命令プロセッサのバッファ記憶装置
のデータブロックのブロックキャンセルを行うことを特
徴とする。
In order to achieve the second object, the present invention comprises a plurality of instruction processors, a storage control device, and a shared main storage device, and each instruction processor has a buffer storage device that holds data blocks in the main storage device. A multi-processor system each having a lock control mechanism that exclusively processes requests from each instruction processor, and block cancel means that issues a request to invalidate a data block in the buffer storage device, and a serialization operation. Processing of a lock instruction accompanied by is characterized in that, when locking is performed by the lock control mechanism, the block canceling means performs block cancellation of a data block in a buffer storage device of another instruction processor.

〔作用〕[Effect]

前記手段によれば、命令の順序性を保証するためのシリ
アライゼーションを高速に処理するため、各命令プロセ
ッサからの要求を、排他的に処理するロック制御機構と
共に、ロック制御機構によりロックをかける時に、他の
命令プロセッサのバッファ記憶装置のデータブロックに
対してブロックキャンセルを行うブロックキャンセル手
段が備えられる。そして、シリアライゼーションを伴う
ローフ= ツク命令において、ロックをかける時、ブロックキャン
セル手段は、他の命令プロセッサに対してブロックキャ
ンセル要求を送るように動作する。
According to the above means, in order to process serialization for ensuring ordering of instructions at high speed, the lock control mechanism exclusively processes requests from each instruction processor, and when locking is performed by the lock control mechanism, Block canceling means is provided for block canceling data blocks in buffer storage devices of other instruction processors. When locking a loaf instruction that involves serialization, the block canceling means operates to send a block cancellation request to other instruction processors.

この動作により、他の命令プロセッサでは、バッファ記
憶装置のデータブロックがキャンセルされ、また、主記
憶装置に対してはロック制御によりアクセスが禁止され
ているため、他の命令プロセッサは、ロック制御動作中
の主記憶装置の領域を参照できなくなる。
As a result of this operation, other instruction processors cancel the data block in the buffer storage device, and since access to the main memory is prohibited by lock control, other instruction processors are unable to perform lock control operations. The area of the main storage device cannot be referenced.

これにより、シリアライゼーションを伴うロック命令は
、ストアの終了を待たずに終了することが可能となり、
処理を高速に行うことができる。
This makes it possible for lock instructions that involve serialization to finish without waiting for the store to finish.
Processing can be performed at high speed.

〔実施例〕〔Example〕

以下、本発明の一実施例を図面を用いて具体的に説明す
る。
Hereinafter, one embodiment of the present invention will be specifically described using the drawings.

なお、実施例を説明するための全図において、同一機能
を有するものは同一符号を付け、その繰り返しの説明は
省略する。
In addition, in all the figures for explaining the embodiment, parts having the same functions are given the same reference numerals, and repeated explanations thereof will be omitted.

第1図は、本発明の一実施例にかかる多重プロセッサシ
ステムのブロック図である。第1図において、1は第1
の命令プロセッサ(IPO)+ 2は第2の命令プロセ
ッサ(IPI)、3は記憶制御装置(SC) 、4は主
記憶装置(MS)である。
FIG. 1 is a block diagram of a multiprocessor system according to an embodiment of the present invention. In Figure 1, 1 is the first
2 is a second instruction processor (IPI), 3 is a storage controller (SC), and 4 is a main memory (MS).

第1の命令プロセッサ1および第2の命令プロセッサ2
が、記憶制御装置3を介して主記憶装置4に接続され、
多重プロセッサシステムを構成している。各々の命令プ
ロセッサは、命令実行ユニット1a、2aと、バッファ
記憶制御ユニット(以下、BS制御ユニットと略称する
)lb、2bとで構成されており、BS制御ユニットは
主記憶装置の一部のデータの写しを記憶するバッファ記
憶装置(BS)を有している。バッファ記憶装置は、一
定の単位(以下、ブロックという)ごとにデータを区切
って、主記憶装置4からデータを読出し、主記憶装置4
のデータの写しを持っている。各命令プロセッサにおい
ては、バッファ記憶装置に要求するデータが存在しない
時には、主記憶装置4からブロック単位にデータが転送
され、バッファ記憶装置に格納される。
First instruction processor 1 and second instruction processor 2
is connected to the main storage device 4 via the storage control device 3,
A multiprocessor system is configured. Each instruction processor is composed of instruction execution units 1a and 2a and buffer storage control units (hereinafter abbreviated as BS control units) lb and 2b, and the BS control unit stores some data in the main memory. It has a buffer storage (BS) for storing a copy of the BS. The buffer storage device divides data into fixed units (hereinafter referred to as blocks), reads the data from the main storage device 4, and stores the data in the main storage device 4.
I have a copy of the data. In each instruction processor, when the requested data does not exist in the buffer storage device, the data is transferred block by block from the main storage device 4 and stored in the buffer storage device.

第2図は、記憶制御装置8の構成の要部を示すブロック
図である。第2図を参照して説明する。
FIG. 2 is a block diagram showing main parts of the configuration of the storage control device 8. As shown in FIG. This will be explained with reference to FIG.

第1の命令プロセッサ(以下、IPOと略称する)から
のリクエストは、信号線50にコマンドが、信号線51
にアドレスが、信号線52にストアデータが乗せられて
送出されてくる。IPOから送られてきたリクエストの
コマンド、アドレス、データは、それぞれコマンドスタ
ック8.アドレススタック9、ストアデータスタック1
0にスタックされる。
A request from a first instruction processor (hereinafter abbreviated as IPO) is a command sent to a signal line 50 and a command sent to a signal line 51.
The address is sent out on the signal line 52, and the store data is sent out on the signal line 52. The command, address, and data of the request sent from the IPO are stored in the command stack 8. Address stack 9, store data stack 1
Stacked at 0.

同様にして、第2の命令プロセッサ(以下、IFlと略
称する)からのリクエストに対しては、リフニス1〜の
コマンド、アドレス、データがそれぞれにコマンドスタ
ック11.アドレススタック12゜ストアデータスタッ
ク13にスタックされる。IPO,IPIからのリクエ
ストのコマンドをスタックするコマンドスタック8,1
1の内容は、プライオリティ回路21を介して、コマン
ドレジスタ14に格納される。アドレススタック9,1
2の内容は、プライオリティ回路22を介して、アドレ
スレジスタ15.18に格納される。アドレスレジスタ
18は主記憶装置4のアドレス付けに用いられる。スト
アデータスタック10.11の内容は、プライオリティ
回路23を介して、ストアデータレジスタ16に格納さ
れる。ロックアドレスアレイ(LKA)17は、ロック
アドレスを保持するレジスタである。各々の命令プロセ
ッサ(IPO,IPI)対応に、そのロックアドレスを
保持するレジスタが備えられており、アドレスレジスタ
15の内容がセットされる。このロックアドレスアレイ
17の内容は、記憶制御部25の制御により、比較回路
19によってアドレスレジスタ15の内容と比較され、
ロック領域がアクセスされたかどうかを検出する。この
ロックアドレスアレイ17および比較回路19が、ロッ
ク制御を行う部分である。記憶制御部25は、コマンド
レジスタ14の内容と、比較回路19の出力により。
Similarly, in response to a request from the second instruction processor (hereinafter abbreviated as IFl), commands, addresses, and data from the riffnis 1 to 11 are sent to the command stack 11. Address stack 12° is stacked on store data stack 13. Command stack 8, 1 that stacks request commands from IPO and IPI
The contents of 1 are stored in the command register 14 via the priority circuit 21. address stack 9,1
2 is stored in the address register 15.18 via the priority circuit 22. Address register 18 is used for addressing main memory 4 . The contents of the store data stack 10.11 are stored in the store data register 16 via the priority circuit 23. Lock address array (LKA) 17 is a register that holds lock addresses. A register is provided corresponding to each instruction processor (IPO, IPI) to hold its lock address, and the contents of the address register 15 are set. The contents of this lock address array 17 are compared with the contents of the address register 15 by a comparison circuit 19 under the control of the storage control section 25.
Detect whether a lock area has been accessed. This lock address array 17 and comparison circuit 19 are the parts that perform lock control. The storage control unit 25 uses the contents of the command register 14 and the output of the comparison circuit 19.

プライオリティ回路21.22.23を制御し、コマン
ドスタック8,11、アドレススタック9,12、スト
アデータスタック10.13を制御し、また、ロックア
ドレスアレイ17を制御する。同時に、信号線64、6
5を介シテ、それぞれIPO,IPlに対するブロック
キャンセル制御部26.27に、ブロックキャンセル動
作を行うか否かの指示を行う。更に、信号線68.69
を介して、それぞれIPO,IPIに対して、ストア動
作の報告を行う。IPOに対するブロックキャンセル制
御部26は、信号線64からのブロックキャンセル指示
を受取ると、アドレスレジスタ18に格納されているア
ドレスを用いて、当該アドレスを含むバッファ記憶装置
(BS)上のブロックのデータをキャンセルをするため
、ブロックキャンセル要求を信号線66によりIPOに
送出する。同様にして、IPIに対するブロックキャン
セル制御部27は、信号線67からのブロックキャンセ
ル指示を受取ると、アドレスレジスタ18に格納されて
いるアドレスを用いて、当該アドレスを含むバッファ記
憶装置(BS)上のブロックのデータをキャンセルをす
るため、ブロックキャンセル要求を信号線67によりI
PIに送出する。
It controls the priority circuits 21, 22, 23, the command stacks 8, 11, the address stacks 9, 12, the store data stacks 10, 13, and also controls the lock address array 17. At the same time, the signal lines 64, 6
5, instructions are given to the block cancel control units 26 and 27 for IPO and IP1, respectively, as to whether or not to perform a block cancel operation. Furthermore, signal line 68.69
Store operations are reported to IPO and IPI respectively via . When the block cancellation control unit 26 for IPO receives a block cancellation instruction from the signal line 64, it uses the address stored in the address register 18 to cancel the data of the block on the buffer storage device (BS) including the address. In order to cancel, a block cancellation request is sent to the IPO via the signal line 66. Similarly, upon receiving a block cancel instruction from the signal line 67, the block cancel control unit 27 for IPI uses the address stored in the address register 18 to In order to cancel the block data, a block cancellation request is sent via the signal line 67.
Send to PI.

また、主記憶装置4は、アドレスレジスタ18に格納さ
れたアドレスにより、そのアドレス位置のデータが読み
書き可能であり、ストアデータレジスタ16に格納され
たデータ内容を書き込んだり、当該アドレス位置に記憶
されている主記憶装置4の内容を読み出しデータレジス
タ20に読み出したりすることが可能である。読み出し
データレジスタ20に読み出したデータは、信号線70
.71を介して、それぞれにIPO,IPIに送られる
。なお、この例の説明では、理解を容易とするため、命
令プロセッサ(IPO,IPI)への読み出しデータの
転送単位(ブロック)は、主記憶装置4から1回で読み
出せる単位としているが、主記憶装置4から複数回読み
出すことが必要なメモリの大きさを1ブロツクとしても
よい。この場合には、命令プロセッサへのデータ転送は
、複数回行うことになる。
In addition, the main memory device 4 can read and write data at the address location according to the address stored in the address register 18, and can write the data content stored in the store data register 16, or write the data stored at the address location. It is possible to read out the contents of the main memory 4 to the read data register 20. The data read into the read data register 20 is transferred to the signal line 70.
.. 71, and are sent to IPO and IPI, respectively. In the explanation of this example, in order to make it easier to understand, the unit (block) of transfer of read data to the instruction processor (IPO, IPI) is assumed to be a unit that can be read from the main memory device 4 in one go. The size of the memory that needs to be read multiple times from the storage device 4 may be one block. In this case, data transfer to the instruction processor will be performed multiple times.

次に、このように構成された記憶制御装置の動作につい
て説明する。第3図は、命令プロセッサから発行される
記憶制御装置への各リクエストの動作をまとめた説明図
である。命令プロセッサから、記憶制御装置にリフニス
1〜されるコマンドには少なくとも、フェッチ(F)、
ロック付フェッチ(LF)、ストア(ST)、ストアか
つロック解除(ST@RT、、、)の4つのコマンドが
ある。
Next, the operation of the storage control device configured as described above will be explained. FIG. 3 is an explanatory diagram summarizing the operations of each request issued from the instruction processor to the storage control device. The commands sent from the instruction processor to the storage control device include at least fetch (F),
There are four commands: fetch with lock (LF), store (ST), and store and unlock (ST@RT, . . .).

まず、フェッチ(F)の動作について説明する。First, the operation of fetch (F) will be explained.

例えば、IPOが、フェッチ(F)のリクエストを発行
すると、フェッチ(F)のリクエストを示すコマンドが
コマンドスタック8に取り込まれ、アドレスがアドレス
スタック9に取り込まれる。
For example, when the IPO issues a fetch (F) request, a command indicating the fetch (F) request is loaded into the command stack 8 and an address is loaded into the address stack 9.

リクエストが受は付けられると、記憶制御部25は信号
線62に制御信号を送出して、コマンドレジスタ14に
コマンドスタック8からコマンドを取り込むと同時に、
アドレスレジスタ15にアドレススタック9からアドレ
スを取り込む。この時、ロックアドレスアレイ17のI
PIに対応するレジスタに、ロックアドレスが設定され
ていなければ、当該アドレスはアドレスレジスタ18に
転送され、当該アドレスを用いて主記憶装置4の該当ア
ドレスの内容が、読み出しデータレジスタ20に格納さ
れた後、信号線70を介してIPOに転送される。また
、この時、ロックアドレスアレイ17のIPIに対応す
るレジスタに、ロックアドレスが設定されていると、ロ
ックアドレスアレイ17のロックアドレスと、アドレス
レジスタ15に格納された当該アドレスが比較される。
When the request is accepted, the storage control unit 25 sends a control signal to the signal line 62 and at the same time captures the command from the command stack 8 into the command register 14.
The address is taken into the address register 15 from the address stack 9. At this time, I of the lock address array 17
If a lock address is not set in the register corresponding to the PI, the address is transferred to the address register 18, and the contents of the corresponding address in the main memory 4 are stored in the read data register 20 using the address. Thereafter, it is transferred to the IPO via the signal line 70. Further, at this time, if a lock address is set in the register corresponding to the IPI of the lock address array 17, the lock address of the lock address array 17 and the address stored in the address register 15 are compared.

比較した結果が一致すれば、フェッチされようとしてい
る主記憶装置4の当該アドレスの領域が、IPIにより
ロックされているということであり、IPOからのリク
エストは、IP○リクエストをスタックするコマンドス
タック8およびアドレススタック9に戻され、ロックが
解除されるまで持たされる。もし、ロックアドレスアレ
イ17のアドレスと、アドレスレジスタ15の内容が一
致しなかったならば、主記憶装置4からの読み出し動作
が行われる。
If the comparison results match, it means that the area at the address in the main memory 4 that is about to be fetched is locked by the IPI, and the request from the IPO is sent to the command stack 8 that stacks IP○ requests. and is returned to the address stack 9, where it is held until the lock is released. If the address in lock address array 17 and the contents of address register 15 do not match, a read operation from main memory 4 is performed.

次に、ロック付フェッチ(LF)の動作について説明す
る。ロック付フェッチ(LF)のリクエストについても
、IPOからのリクエストが受は付けるられる時は、前
述したフェッチ(F)のリクエストの動作と同様に、ロ
ックアドレスアレイ17のIPIに対応するレジスタに
、ロックアドレスが設定されていないか、設定されてい
ても、アドレスが一致していない時である。このロック
付フェッチのリクエストでは、IPOからのロック付フ
エッチ(LF)のリクエストが受付けられると、ロック
をかけるため、アドレスレジスタ15の内容がロックア
ドレスアレイ17のIPOに対応するレジスタにセット
される。その後、記憶制御部25は信号線65を介して
、ブロックキャンセル制御部27にブロックキャンセル
要求を出す。ブロックキャンセル制御部27は、IPI
に対して信号線67を介して、アドレスレジスタ18に
格納された当該アドレス(ロックアドレス)を含むブロ
ックアドレスのデータを、IPIのバッファ記憶装置(
BS)から無効化(キャンセル)するブロックキャンセ
ル要求を発行する。このブロックキャンセル要求に対し
て、IPIは、自己のバッファ記憶装置(BS)内に該
当するブロックのデータが登録されていれば、そのブロ
ックのデータを無効とする。したがって、この動作の後
、IPIが当該ブロック内のデータを読み出そうとする
場合には、主記憶装置4から読み出すことになるため、
記憶制御装置3に対して、フェッチ(F)のリクエスト
を発行することになる。
Next, the operation of fetch with lock (LF) will be explained. Regarding the fetch with lock (LF) request, when a request from IPO is accepted, the lock is placed in the register corresponding to the IPI in the lock address array 17, similar to the operation of the fetch (F) request described above. This is when the address is not set, or even if it is set, the addresses do not match. In this fetch with lock request, when a fetch with lock (LF) request from an IPO is accepted, the contents of the address register 15 are set in the register corresponding to the IPO in the lock address array 17 in order to apply a lock. Thereafter, the storage control section 25 issues a block cancellation request to the block cancellation control section 27 via the signal line 65. The block cancellation control unit 27
The block address data including the address (lock address) stored in the address register 18 is transferred to the IPI buffer storage device (
BS) issues a block cancellation request to be invalidated (cancelled). In response to this block cancellation request, the IPI invalidates the data of the block if the data of the corresponding block is registered in its own buffer storage device (BS). Therefore, after this operation, when the IPI attempts to read the data in the block, it will be read from the main storage device 4.
A fetch (F) request will be issued to the storage control device 3.

=16− 次に、ストア(ST)の動作について説明する。=16- Next, the operation of the store (ST) will be explained.

例えば、ストア(ST)のリクエストがIPOから発行
されると、ストアのリクエストを示すコマンド、ストア
するアドレス、およびストアデータがIPOより送られ
、それぞれコマンドスタック8、アドレススタック9.
およびストアデータスタック10に格納される。このス
トアリクエストが受付けられる場合は、前述のフェッチ
(F)リクエストと同様に、IPIにより当該ブロック
が、ロックされていない時である。ロックされている時
には、ストアリクエストは、リクエストを格納するスタ
ック(コマンドスタック8.アドレススタック9.スト
アデータスタック10)中で、ロックが解除されるまで
待たされる。ストアリクエストが受付けられると、アド
レスがアドレスレジスタ15.18に、ストアデータが
ストアデータレジスタ16に取り込まれる。その後、主
記憶装置4にストアデータが書き込まれる。このとき、
記憶制御部25は、IPIに対するブロックキャンセル
制御部27にブロックキャンセル指示を出し、ブロック
キャンセル制御部27は、IPIに対してブロックキャ
ンセル要求を発行する。
For example, when a store (ST) request is issued from the IPO, a command indicating the store request, an address to store, and store data are sent from the IPO, and the command stack 8, address stack 9.
and stored in the store data stack 10. This store request is accepted when the block in question is not locked by the IPI, similar to the fetch (F) request described above. When locked, the store request is made to wait in the stack that stores the request (command stack 8, address stack 9, store data stack 10) until the lock is released. When a store request is accepted, the address is taken into the address register 15.18 and the store data is taken into the store data register 16. Thereafter, the store data is written to the main storage device 4. At this time,
The storage control unit 25 issues a block cancellation instruction to the block cancellation control unit 27 for the IPI, and the block cancellation control unit 27 issues a block cancellation request to the IPI.

最後に、ストアかつロック解除(ST@RL)の動作に
ついて説明する。このストアかつロック解除(ST@R
L)のリクエストでは、前述のストア(S T) リク
エストの動作と同じ動作を行って、主記憶装置4へのデ
ータの書込みを終了した後、リクエストを発行した命令
プロセッサのロックアドレスアレイのレジスタの内容(
ロックアドレス)を無効化する動作を行い、ロックの状
態を解除する。
Finally, the store and unlock (ST@RL) operation will be explained. This store and unlock (ST@R
In the request L), the same operation as the store (ST) request described above is performed, and after writing of data to the main memory 4 is completed, the register of the lock address array of the instruction processor that issued the request is written. Contents (
lock address) and release the locked state.

このような、Fコマンド、LFコマンド、STコマンド
、ST@RLコマンドの各リクエストが、命令プロセッ
サから記憶制御装置に送出されて、例えば、C8命令が
実行される。このC8命令が実行される時の動作につい
て説明する。
Requests such as the F command, LF command, ST command, and ST@RL command are sent from the instruction processor to the storage control device, and, for example, a C8 instruction is executed. The operation when this C8 instruction is executed will be explained.

第4図は、本発明の一実施例にかかる多重プロセッサシ
ステムにおいて、C8命令を実行した場合の処理の動作
の流れを示した図である。
FIG. 4 is a diagram showing the flow of processing when a C8 instruction is executed in a multiprocessor system according to an embodiment of the present invention.

第4図を参照して説明する。IPOでCS命令が実行さ
れると、ロックをかけて主記憶装置のデータを参照する
ため、IPOは、ロック付フェッチ(LF)リクエスト
を記憶制御装置(SC)に発行する。記憶制御装置は、
LFリクエストを受は取ると、ロックアドレスアレイ(
LKA)にロックアドレスを設定した後、IPIに対し
てブロックキャンセル要求を送出する。次に主記憶装置
からデータを読み出して、IPOに送出する。工POは
データを受は取ると、当該データをテストした後、テス
ト結果に従い、例えば、データをストアし、その後にロ
ック解除する。このため、ストアかつロック解除(ST
@RL)リクエストを発行する。記憶制御装置は、ST
@RLリクエストを受は取ると、主記憶装置にストア動
作を行い、ストア動作を終了すると、ロック解除を行う
This will be explained with reference to FIG. When the CS instruction is executed by the IPO, the IPO issues a fetch with lock (LF) request to the storage controller (SC) in order to lock and refer to the data in the main storage device. The storage controller is
When an LF request is received, the lock address array (
After setting a lock address in LKA), a block cancellation request is sent to IPI. Next, the data is read from the main memory and sent to the IPO. When the engineering PO receives the data, it tests the data, stores the data according to the test results, and then unlocks the data. For this reason, store and unlock (ST
@RL) Issue a request. The storage controller is ST
When it receives the @RL request, it performs a store operation in the main memory, and when the store operation is completed, it releases the lock.

このC8命令の動作においては、IPIから見ると、I
POからのリクエストにより、記憶制御装置でロックが
かけられた時点で、IPIのバッファ記憶装置中の当該
ブロックがキャンセルされる。このため、IPIにおい
ては、C2時点まで一19= はC8命令実行前のデータを参照することができるが、
02時点の以降、当該ブロックを参照するIPIのリク
エストは、主記憶装置に対してアクセスしなければなら
ない。この場合、IPIから記憶制御装置に対してフェ
ッチリクエストが出されるが、記憶制御装置において当
該ブロックの領域がIPOからのリクエストでロックさ
れているため、ロック解除されるC3時点まで待たされ
ることになる。すなわち、IPIから見ると、02時点
で、IPOにおけるC8命令が終了しているとの等価で
あり、IPOはストアの終了を見ずに当該C8命令を終
了して、次の命令の実行を開始できることになる。
In the operation of this C8 instruction, from the perspective of IPI, I
When a lock is placed on the storage controller by a request from the PO, the block in the IPI's buffer storage is canceled. Therefore, in IPI, up to the C2 point, -19= can refer to the data before the execution of the C8 instruction.
After time 02, an IPI request that refers to the block must access the main memory. In this case, a fetch request is issued from the IPI to the storage control device, but since the area of the block in question is locked in the storage control device by the request from the IPO, it will have to wait until the C3 point when the lock is released. . In other words, from the perspective of the IPI, it is equivalent to the C8 instruction in the IPO having finished at time 02, and the IPO finishes the C8 instruction without seeing the end of the store and starts executing the next instruction. It will be possible.

以上、説明したように、本実施例によれば、シリアライ
ゼーション動作を伴うロック命令のC8命令を、ストア
の終了を見ずに終了することができ、シリアライゼーシ
ョンを高速に処理でき、次命令の処理に早く移行できる
。本実施例では、C8命令について説明してきたが、シ
リアライゼーションを伴うロック命令の全てについて同
様に適=20− 用できる。
As described above, according to this embodiment, the C8 instruction, which is a lock instruction that involves serialization, can be completed without seeing the end of the store, and serialization can be processed at high speed, allowing for processing of the next instruction. You can move quickly. Although the C8 instruction has been described in this embodiment, it can be similarly applied to all lock instructions that involve serialization.

以上、本発明を実施例にもとづき具体的に説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
The present invention has been specifically explained above based on examples, but
It goes without saying that the present invention is not limited to the embodiments described above, and can be modified in various ways without departing from the spirit thereof.

〔発明の効果〕〔Effect of the invention〕

以上、説明したように、本発明によれば、多重プロセッ
サシステムにおいて、命令の順序性を保証するためのシ
リアライゼーションを伴う命令を高速に処理でき、多重
プロセッサシステムの性能が向上する。
As described above, according to the present invention, in a multiprocessor system, instructions that require serialization to ensure ordering of instructions can be processed at high speed, and the performance of the multiprocessor system is improved.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、本発明の一実施例にかかる多重プロセッサシ
ステムのブロック図。 第2図は、記憶制御装置の構成の要部を示すブロック図
、 第3図は、命令プロセッサから発行される記憶制御装置
への各リクエストの動作をまとめた説明図、 第4図は、本発明の一実施例にかかる多重プロセッサシ
ステムにおいて、C8命令を実行した場合の処理の動作
の流れを示した図、 第5図は、CS命令を説明する説明図、第6図は、従来
の多重プロセッサシステムにおいて、O8命令を実行し
た場合の処理の動作の流れを示した図である。 図中、1,2・・・命令プロセッサ、3・・・記憶制御
装置、4・・・主記憶装置、8,11・・・コマンドス
タック、9,12・・アドレススタック、10.13・
・ストアデータスタック、14・・・コマンドレジスタ
、15.18・・・アドレスレジスタ、16・・ストア
データレジスタ、17・・・ロックアドレスアレイ、1
9・・・比較回路、20・・・読み出しデータレジスタ
、25・・記憶制御部、26゜27・・・ブロックキャ
ンセル制御部である。
FIG. 1 is a block diagram of a multiprocessor system according to an embodiment of the present invention. FIG. 2 is a block diagram showing the main parts of the configuration of the storage control device. FIG. 3 is an explanatory diagram summarizing the operation of each request issued from the instruction processor to the storage control device. A diagram showing the flow of processing when a C8 instruction is executed in a multiprocessor system according to an embodiment of the invention, FIG. 5 is an explanatory diagram explaining the CS instruction, and FIG. FIG. 2 is a diagram showing the flow of processing operations when an O8 instruction is executed in a processor system. In the figure, 1, 2... Instruction processor, 3... Storage control device, 4... Main storage device, 8, 11... Command stack, 9, 12... Address stack, 10.13...
・Store data stack, 14... Command register, 15. 18... Address register, 16... Store data register, 17... Lock address array, 1
9...Comparison circuit, 20...Read data register, 25...Storage control section, 26.27...Block cancellation control section.

Claims (1)

【特許請求の範囲】[Claims] 1、複数の命令プロセッサと、記憶制御装置と、共有の
主記憶装置とからなり、各命令プロセッサが主記憶装置
のデータブロックを保持するバッファ記憶装置をそれぞ
れに有する多重プロセッサシステムにおいて、各命令プ
ロセッサからの要求を排他的に処理するロック制御機構
と、各命令プロセッサのバッファ記憶装置のデータブロ
ックを無効化するブロックキャンセル手段とを備え、シ
リアライゼーション動作を伴うロック命令の処理は、前
記ロック制御機構でロックをかける時に、前記ブロック
キャンセル手段により他の命令プロセッサのバッファ記
憶装置のデータブロックのブロックキャンセルを行うこ
とを特徴とする多重プロセッサシステム。
1. In a multiprocessor system consisting of a plurality of instruction processors, a storage control device, and a shared main memory, each instruction processor having a buffer storage device for holding data blocks in the main memory, each instruction processor a lock control mechanism that exclusively processes requests from the instruction processor; and block cancel means that invalidates a data block in a buffer storage device of each instruction processor; A multiprocessor system characterized in that, when a lock is applied, the block cancellation means performs block cancellation of a data block in a buffer storage device of another instruction processor.
JP62278579A 1987-11-04 1987-11-04 Multi-processor system Pending JPH01119849A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62278579A JPH01119849A (en) 1987-11-04 1987-11-04 Multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62278579A JPH01119849A (en) 1987-11-04 1987-11-04 Multi-processor system

Publications (1)

Publication Number Publication Date
JPH01119849A true JPH01119849A (en) 1989-05-11

Family

ID=17599230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62278579A Pending JPH01119849A (en) 1987-11-04 1987-11-04 Multi-processor system

Country Status (1)

Country Link
JP (1) JPH01119849A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175669A (en) * 2004-06-30 2011-09-08 Intel Corp Method and apparatus for speculative execution of uncontended lock instruction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6112581A (en) * 1984-06-29 1986-01-20 株式会社日立製作所 Informing device for elevator
JPS62105250A (en) * 1985-10-30 1987-05-15 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Control of cash of multiprocessor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6112581A (en) * 1984-06-29 1986-01-20 株式会社日立製作所 Informing device for elevator
JPS62105250A (en) * 1985-10-30 1987-05-15 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Control of cash of multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175669A (en) * 2004-06-30 2011-09-08 Intel Corp Method and apparatus for speculative execution of uncontended lock instruction

Similar Documents

Publication Publication Date Title
US5109499A (en) Vector multiprocessor system which individually indicates the data element stored in common vector register
US4683533A (en) Storage control system using plural buffer address arrays
JPH01119849A (en) Multi-processor system
JPS6319058A (en) Memory device
JPH02257343A (en) Store buffer
JP2559165B2 (en) Multiprocessor system
JPH0368034A (en) Checkpoint retesting system
JP2504323B2 (en) System bus control method
JPH10198644A (en) Synchronous control method and multi-processor system
JPS6161143B2 (en)
JPS592051B2 (en) Mutual exclusion request selection device
JPH07111711B2 (en) Processing end interrupt control system
JPS63286959A (en) Memory access system
JP2506975B2 (en) Buffer invalidation processing method of information processing device
JPH03232051A (en) Semaphore access control method
JP2547329B2 (en) Lock data setting device
JPH02294761A (en) Sequential processing method for multiprocessor system
JPH04149650A (en) Information processor
JPH04184557A (en) Request contention generating system
JPH01280858A (en) Lock control system for main storage device
JPH02197961A (en) Information processor
JPH056706B2 (en)
JPS63304334A (en) Microprocessor for program evaluation
JPH02234267A (en) Loading/storing method for additional vector processor
JPH0581211A (en) Inter-processor communication system