JPH08287022A - Multiprocessor system and its exclusive control method - Google Patents

Multiprocessor system and its exclusive control method

Info

Publication number
JPH08287022A
JPH08287022A JP3821896A JP3821896A JPH08287022A JP H08287022 A JPH08287022 A JP H08287022A JP 3821896 A JP3821896 A JP 3821896A JP 3821896 A JP3821896 A JP 3821896A JP H08287022 A JPH08287022 A JP H08287022A
Authority
JP
Japan
Prior art keywords
storage unit
cache
processors
processor
lock
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
JP3821896A
Other languages
Japanese (ja)
Inventor
Lair Easton Janet
ジャネット・レア・イーストン
Gardner Grassen Steven
スチーブン・ガードナー・グラッセン
Maku Paku-Kin
パク−キン・マク
William W Shen
ウィリアム・ウー・シェン
Keben Sham Chung-Lunn
チュン−ラン・ケベン・シャム
Charles F Webb
チャールズ・フランクリン・ウェブ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08287022A publication Critical patent/JPH08287022A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a lock mechanism which can facilitate a counter measure to a plurality of instructions and/or a plurality of words. SOLUTION: A multiprocessor system 100 is provided with a plurality of processors, intermediate caches 104 connected with the plurality of processors, and shared memory 102 connected through a common bus 106 with the intermediate caches 104, and shared by the plurality of processors. Each of the plurality of processors has a local cache, and the resource of the intermediate cache 104 is shared by the plurality of processors. One processor starts a lock operation in order to obtain the exclusive control of storage units. The exclusive control is maintained across a plurality of instructions. Moreover, any instruction related with the locked storage units is fetched prior to the lock operation, and maintained by the local cache 108 of the processor which makes the lock request until the exclusive control is released by the lock releasing operation.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、一般的に、マルチ
プロセッサ・システム内の処理に関し、特に、記憶単位
(a unit of storage)をロック(lock)する機構に関す
る。この機構は、ロックされた記憶単位に関して実行さ
れている複数の命令に渡って排他的制御を維持すること
を可能とすると共に、当該記憶単位へのアクセス要求が
別のプロセッサから与えられるとき以外は共有システム
・バスをビジー状態(使用中)とさせないものである。
FIELD OF THE INVENTION This invention relates generally to processing within multiprocessor systems, and more particularly to storage units.
It relates to a mechanism for locking (a unit of storage). This mechanism allows exclusive control to be maintained over multiple instructions being executed on a locked storage unit, and except when a request to access that storage unit is provided by another processor. It does not keep the shared system bus busy.

【0002】[0002]

【従来の技術】コンピュータ・システム内では、記憶単
位に対して排他的制御を行うために多様なロック機構が
用いられてきた。排他的制御は、多くの理由から必要な
ものであるが、最も重要な理由の1つは、更新オペレー
ション中に記憶の一貫性を確保することである。
2. Description of the Related Art In computer systems, various lock mechanisms have been used to perform exclusive control on storage units. Exclusive control is necessary for many reasons, but one of the most important is to ensure storage consistency during update operations.

【0003】マルチプロセッサ・システムにおける記憶
単位をロックする汎用的機構の例を、以下に示す。1つ
の例では、マルチプロセッサ・システムの共有システム
・バスを使用不能とすることにより排他的制御が行われ
る。特に、システム・バスが監視されていて、排他的に
保持された記憶単位への要求が別のプロセッサから与え
られたとき、システム・バスはビジー状態に見える。従
って、排他的に保持された記憶単位へのアクセスと共に
システムの共有メモリへのアクセスも妨げられる。
An example of a general-purpose mechanism for locking a storage unit in a multiprocessor system is shown below. In one example, exclusive control is achieved by disabling the shared system bus of a multiprocessor system. In particular, the system bus appears busy when it is being monitored and a request for an exclusively held storage unit is made by another processor. Therefore, access to the exclusively held storage unit as well as access to the shared memory of the system is prevented.

【0004】上記のようにシステム・バスをロックする
ことには、いくつかの不都合な点がある。例えば、シス
テム・バスがビジー状態であると見なされるので、共有
メモリへのアクセスが拒否されてしまい、システム性能
を不必要に低下させることとなる。さらに、ロックされ
ている特定の記憶単位に対する無効コマンド以外の全て
のコマンドに対してシステム・バスがビジー状態である
ので、この排他的制御の解除に先立って更新オペレーシ
ョンを実行するために必要な命令を、主メモリから取出
すことができなくなる。このように、潜在的なデッドロ
ック状況が生じる。
Locking the system bus as described above has several disadvantages. For example, because the system bus is considered busy, access to shared memory is denied, unnecessarily degrading system performance. In addition, because the system bus is busy for all commands other than invalid commands for a particular locked storage unit, the instructions needed to perform an update operation prior to releasing this exclusive control. Cannot be retrieved from main memory. Thus, a potential deadlock situation arises.

【0005】上記の潜在的なデッドロック状況は、記憶
場所を自動的に更新するために単一のハードウェア命令
を用いる場合には避けられる。ESA(Enterprise System
Architecture)/390命令セットは、内部ロック更新オペ
レーションを実行するための多数の単一ハードウェア命
令を含む。これらの命令の例としては、「COMPARE AND
SWAP」、「COMPARE DOUBLE AND SWAP」、「TEST AND SE
T」等があるが、これらの各々の詳細については、IB
M社(International Business Machines Corporation)
によるESA/390の「Principles of Operation」(発行番
号SA22-7201-02,December 1994)を参照されたい。しか
しながらこれらの命令は、単純な比較及び更新について
のみ用いることができる。よって、フェッチ(取出し)と
記憶との間に実行される機能が単純な比較よりさらに複
雑な場合や、アトミックに更新される記憶が複数の倍ワ
ードにわたっている場合には、これらの命令は適切では
ない。
The potential deadlock situation described above is avoided when a single hardware instruction is used to automatically update a memory location. ESA (Enterprise System
Architecture) / 390 instruction set includes a number of single hardware instructions for performing internal lock update operations. For examples of these instructions, see COMPARE AND
SWAP, COMPARE DOUBLE AND SWAP, TEST AND SE
, Etc., but for details of each of these, see IB
Company M (International Business Machines Corporation)
See ESA / 390, "Principles of Operation" (Issue No. SA22-7201-02, December 1994). However, these instructions can only be used for simple compare and update. Thus, if the function performed between fetch and store is more complex than a simple comparison, or if the atomically updated store spans multiple doublewords, then these instructions are not appropriate. Absent.

【0006】[0006]

【発明が解決しようとする課題】以上の見地から、複数
命令及び/又は複数ワードにまで対応できる体系的なロ
ック機構が必要とされる。さらに、その記憶単位のロッ
ク状態を無効にしようとする(すなわちアクセスを獲得
しようとする)別のプロセッサからの要求があったとき
以外は、システム・バスをビジー状態にさせないような
ロック機構が必要とされる。さらにまた、ロック状態が
解除されるまで、ロック状態の記憶単位を参照するべく
用いられる命令をローカル・キャッシュ内に維持するた
めの機構も必要である。
From the above point of view, there is a need for a systematic locking mechanism capable of handling multiple instructions and / or multiple words. In addition, a locking mechanism is needed to keep the system bus busy only when requested by another processor that attempts to invalidate the lock state of the storage unit (that is, gain access). It is said that Furthermore, there is also a need for a mechanism to maintain in the local cache the instructions used to reference a locked storage unit until the locked state is released.

【0007】[0007]

【課題を解決するための手段】本発明は、従来技術の欠
点を克服すると同時に更なる有益性をもたらすものであ
る。本発明は、各々キャッシュを備える複数のプロセッ
サと、これら複数のプロセッサへ接続されこれら複数の
プロセッサによりそのリソース(資源)を共有される中
間キャッシュと、共有バスを介して中間キャッシュへ接
続されるメモリと、複数のプロセッサの中の1つに設け
られ記憶単位に対する排他的制御を獲得する手段とを有
するマルチプロセッサ・システムを提供する。記憶単位
を用いて実行されている複数の命令に渡って排他的制御
が維持される一方で、その記憶単位へのアクセス要求が
別のプロセッサから与えられたとき以外は、共有バスは
複数のプロセッサにより利用可能な状態となる。
The present invention overcomes the deficiencies of the prior art while providing additional benefits. The present invention relates to a plurality of processors each provided with a cache, an intermediate cache connected to the plurality of processors and sharing the resources thereof, and a memory connected to the intermediate cache via a shared bus. And a means provided in one of the plurality of processors for obtaining exclusive control over the storage unit. While exclusive control is maintained over multiple instructions being executed using a storage unit, a shared bus is a multiple processor except when a request to access that storage unit is made by another processor. Will be ready for use.

【0008】本発明の更なる実施形態では、上記のマル
チプロセッサ・システムが、排他的制御を所有するプロ
セッサのローカル・キャッシュ内に、ロック状態の記憶
単位を参照することができる複数命令を維持する手段を
有する。複数命令は、ロック状態が解除されるまでその
ローカル・キャッシュ内に維持される。
In a further embodiment of the present invention, the multiprocessor system described above maintains multiple instructions in a local cache of a processor that owns exclusive control, which can refer to a locked storage unit. Have means. Multiple instructions remain in their local cache until the lock is released.

【0009】本発明の更なる実施形態では、ローカル・
キャッシュとこれに接続された中間キャッシュとの間に
存在するサブセット規則を緩和することにより、複数命
令がローカル・キャッシュ内に維持される。これによ
り、複数命令が、中間キャッシュ内に存在していなくと
もローカル・キャッシュ内に存在することができる。
In a further embodiment of the invention, a local
Multiple instructions are maintained in the local cache by relaxing the subset rules that exist between the cache and the intermediate cache connected to it. This allows multiple instructions to be present in the local cache even if not in the intermediate cache.

【0010】本発明の更なる実施形態では、マルチプロ
セッサ・システムにおいて記憶単位に対する排他的制御
を獲得する方法が提供される。このマルチプロセッサ・
システムは、例えば、各々キャッシュを備える複数のプ
ロセッサと、これら複数のプロセッサへ接続されこれら
複数のプロセッサによりそのリソース(資源)を共有さ
れる中間キャッシュと、共有バスを介して中間キャッシ
ュへ接続されるメモリとを有するものである。複数のプ
ロセッサの中の1のプロセッサが、指定された記憶単位
に対する排他的制御を獲得するためのロック・オペレー
ションを開始して実行する。ロック解除オペレーション
が実行されるまでは、その記憶単位を用いて実行されて
いる複数の命令に渡って排他的制御が維持される。
In a further embodiment of the invention, a method of gaining exclusive control over a storage unit in a multiprocessor system is provided. This multiprocessor
The system is connected to, for example, a plurality of processors each having a cache, an intermediate cache connected to the plurality of processors and sharing the resources thereof by the plurality of processors, and the intermediate cache via a shared bus. And a memory. One of the processors initiates and executes a lock operation to gain exclusive control over a specified storage unit. Until the unlock operation is performed, exclusive control is maintained over the instructions being executed using that storage unit.

【0011】本発明の更なる実施形態では、ロック状態
の記憶単位を参照する命令が、ロック・オペレーション
に先立ってローカル・キャッシュ内へフェッチされ、ロ
ック状態が解除されるまでローカル・キャッシュ内に維
持される。
In a further embodiment of the invention, an instruction referencing a locked storage unit is fetched into the local cache prior to the lock operation and maintained in the local cache until the lock is released. To be done.

【0012】本発明によるロック機構は、複数命令又は
複数ワードに渡って記憶単位をロック状態にできる点で
有益である。本発明のロック機構は、記憶単位のみをロ
ックし、他のプロセッサによるロック状態の記憶単位へ
のアクセスを禁止するため以外には共有バスをビジー状
態とする必要がない。さらに、本発明のロック機構で
は、内部コードがローカル・キャッシュ内に存在するこ
とができ、しかも当該内部コードを中間キャッシュにも
存在させる必要はない。従って、中間キャッシュから処
分(age out)されるコードが、ローカル・キャッシュ内
に留まることができる。このようにしてローカル・キャ
ッシュのミス(miss)の数が低減されるので、システム性
能を向上させることができる。
The lock mechanism according to the present invention is advantageous in that a storage unit can be locked over a plurality of instructions or a plurality of words. The lock mechanism of the present invention does not require the shared bus to be in a busy state except for locking only the storage unit and prohibiting access to the locked storage unit by another processor. Further, the locking mechanism of the present invention allows internal code to reside in the local cache, and need not reside in the intermediate cache as well. Thus, code that is age out from the intermediate cache can remain in the local cache. In this way, the number of local cache misses is reduced, thus improving system performance.

【0013】[0013]

【発明の実施の形態】本発明においては、記憶単位をロ
ックする機構(すなわち、技術及び関連するハードウェ
ア)が提供される。これにより、マルチプロセッサ・シ
ステムにおいて複数のプロセッサの中の1のプロセッサ
は、当該プロセッサが記憶単位のロック状態を明示的に
解除するまで、その記憶単位の排他的制御を所有する。
その記憶単位は、当該プロセッサにより実行されている
複数の命令に渡ってロック状態のままとなることができ
る。このロック機構では、ロックされている特定の記憶
単位への無効要求(すなわちアクセス要求)がある場合
を除いて、共有システム・バスはビジー状態に見えな
い。
DETAILED DESCRIPTION OF THE INVENTION In the present invention, a mechanism (ie, technology and associated hardware) for locking storage units is provided. Thus, in a multiprocessor system, one of the processors has exclusive control of the storage unit until the processor explicitly releases the lock state of the storage unit.
The storage unit can remain locked across multiple instructions being executed by the processor. With this locking mechanism, the shared system bus does not appear to be busy unless there is an invalid request (i.e., access request) to a particular storage unit that is locked.

【0014】本発明の一実施例においては、記憶単位を
参照するべく用いられる命令(すなわちコード)とし
て、記憶単位をロックする命令、記憶単位を更新する命
令、及び記憶単位をロック解除する命令がある(但しこ
れらに限定はしない)。これらの命令は、記憶単位をロ
ックする前にローカル・キャッシュ内へフェッチされ、
そしてロックが解除されるまでローカル・キャッシュ内
に留まる。ローカル・キャッシュ内に留まり続けるため
に、ローカル・キャッシュに通常関連するサブセット規
則が緩和される。これについては以下に述べる。
In one embodiment of the present invention, the instruction (ie, code) used to refer to the storage unit is a storage unit lock instruction, a storage unit update instruction, and a storage unit unlock instruction. Yes (but not limited to). These instructions are fetched into the local cache before locking the storage unit,
It stays in the local cache until the lock is released. To remain in the local cache, the subset rules normally associated with the local cache are relaxed. This will be described below.

【0015】本発明のロック機構を組込んだマルチプロ
セッサ・システムの一例は、IBM社により提供される
ESA/390アーキテクチャに基づくシステムである。ESA/3
90についての詳細は、IBM社よるESA/390の「Princip
les of Operation」(発行番号SA22-7201-02, December
1994)を参照されたい。
An example of a multiprocessor system incorporating the locking mechanism of the present invention is provided by IBM Corporation.
It is a system based on the ESA / 390 architecture. ESA / 3
For more information about 90, see "Princip" in ESA / 390 by IBM.
les of Operation '' (Issue No.SA22-7201-02, December
1994).

【0016】本発明のマルチプロセッサ・システムは、
ESA/390アーキテクチャの複合命令セット及び内部コー
ドを実行することができる。内部コードは、ESA/390命
令セットよりも更に直接的にシステム・ハードウェアを
制御することができる。内部コードの一例としては、ミ
リコード(millicode)があり、これは、ESA/390命令セッ
トと実質的に同じようにシステム内で実行される。本発
明において内部コードは、更に複雑な命令を実行するた
めに用いられる。例えば、本発明のロック機構を必要と
するような命令である。ミリコード・ルーチンは当業者
には知られており、その詳細については、Buillionsら
によるIBM Technical Disclosure Bulletin, Vol.35, N
o. 4A, September 1992を参照されたい。
The multiprocessor system of the present invention comprises:
It is capable of executing the complex instruction set and internal code of the ESA / 390 architecture. Internal code can control system hardware more directly than the ESA / 390 instruction set. An example of internal code is millicode, which is executed in the system in much the same way as the ESA / 390 instruction set. In the present invention internal code is used to execute more complex instructions. For example, an instruction that requires the lock mechanism of the present invention. Millicode routines are known to those of skill in the art and may be found in more detail in the IBM Technical Disclosure Bulletin, Vol. 35, N by Buillions et al.
See 4A, September 1992.

【0017】図1は、マルチプロセッサ・システム10
0の一実施形態を示す。マルチプロセッサ・システム1
00は、例えば、共有バス106を介して1又は複数の
中間キャッシュ(すなわちレベル2(L2)キャッシュ)
104と接続された共有メモリ102を具備する。これ
らの中間キャッシュ104は、汎用的リンクすなわちバ
ス110を介して1又は複数のプロセッサ108へ接続
される。この実施形態では、各プロセッサは1つのL2
キャッシュへ接続されているが、各L2キャッシュは1
又は複数のプロセッサへ接続されていてもよい。この場
合、L2キャッシュのリソース(例えば、キャッシュ、
ディレクトリ、及び主記憶へアクセスするための機構
等)が、接続されたこれらのプロセッサにより共有され
る。さらに各プロセッサは、ローカル・キャッシュ(す
なわちレベル1(L1)キャッシュ)を具備する。共有メ
モリ、L2キャッシュ、及びL1キャッシュは、3階層
(three-tier)記憶システムを構成しており、その各階層
について以下に説明する。
FIG. 1 illustrates a multiprocessor system 10.
0 shows one embodiment. Multiprocessor system 1
00 is, for example, one or a plurality of intermediate caches (that is, level 2 (L2) caches) via the shared bus 106.
A shared memory 102 connected to 104 is provided. These intermediate caches 104 are connected to one or more processors 108 via a general link or bus 110. In this embodiment, each processor has one L2
Connected to cache, but each L2 cache has 1
Alternatively, it may be connected to a plurality of processors. In this case, the resources of the L2 cache (for example, cache,
The directories and the mechanisms for accessing main memory, etc.) are shared by these connected processors. In addition, each processor has a local cache (ie, a level 1 (L1) cache). Shared memory, L2 cache, and L1 cache have three layers
A (three-tier) storage system is configured, and each layer thereof will be described below.

【0018】共有メモリ12は、3階層記憶システムの
第3階層である。共有メモリ12は、プロセッサ108
により直接的にアドレス指定可能でありプロセッサ10
8により用いられる情報(例えば、データや命令)を格
納している。周知のように、プロセッサにより用いられ
るデータや命令は、当該プロセッサによりL2キャッシ
ュ及びL1キャッシュの双方又はいずれかにフェッチさ
れる。
The shared memory 12 is the third layer of the three layer storage system. The shared memory 12 is the processor 108.
Directly addressable by the processor 10
8 stores information (for example, data and instructions) used by the user. As is well known, data and instructions used by a processor are fetched by the processor into an L2 cache and / or an L1 cache.

【0019】L2キャッシュは中間キャッシュであり、
通常、ローカル・キャッシュ(L1キャッシュ)よりも大
きく、共有メモリから情報を検索するよりも速いアクセ
スが可能である。なぜならプロセッサは、共有バスを参
照することなくL2キャッシュにアクセスすることがで
きるからである。一例として、L2キャッシュがストア
イン(store-in)・キャッシュである場合、その中に記憶
された情報は、所定の条件の下でのみ主メモリ102へ
書込まれる。
The L2 cache is an intermediate cache,
It is typically larger than the local cache (L1 cache) and allows faster access than retrieving information from shared memory. This is because the processor can access the L2 cache without referring to the shared bus. As an example, if the L2 cache is a store-in cache, the information stored therein is written to main memory 102 only under certain conditions.

【0020】L1キャッシュはローカル・キャッシュで
あり、通常、L2キャッシュよりも小さく、プロセッサ
の内部にある。一例として、L1キャッシュがストアス
ルー(store-through)・キャッシュである場合、プロセ
ッサによりL1キャッシュへ記憶される全ての情報は自
動的にこれに接続されたL2キャッシュへと渡される。
一実施形態では、L1キャッシュとL2キャッシュとの
間に厳しいサブセット規則が設けられる。この厳しいサ
ブセット規則によれば、L1キャッシュ内に存在するい
かなる情報についても、当該L1キャッシュに接続され
たL2キャッシュ内にも存在することが要求される。こ
のことにより各L2キャッシュは、別のプロセッサから
要求された特定の記憶単位が、そのL2キャッシュに接
続されたいずれかのL1キャッシュに記憶されているか
否かを知ることができる。本発明においては、ロックさ
れた記憶単位を参照する命令に対してこの厳しいサブセ
ット規則が緩和される。これについて以下に詳述する。
The L1 cache is a local cache, usually smaller than the L2 cache and internal to the processor. As an example, if the L1 cache is a store-through cache, all information stored by the processor in the L1 cache is automatically passed to the L2 cache connected to it.
In one embodiment, a strict subset rule is provided between the L1 and L2 caches. This strict subset rule requires that any information that is present in the L1 cache also be present in the L2 cache connected to that L1 cache. This allows each L2 cache to know whether or not the specific storage unit requested by another processor is stored in any of the L1 caches connected to that L2 cache. In the present invention, this strict subset rule is relaxed for instructions that reference locked storage units. This will be described in detail below.

【0021】本発明のロック機構はプロセッサ108内
に配置される。図2は、このロック機構を詳細に示した
図である。一実施形態では各プロセッサが、例えば、命
令及びオペランドをフェッチして命令をデコードする命
令ユニット200と、デコードされた命令を実行する実
行ユニット202と、データ及び命令をキャッシュする
バッファ制御要素204とを具備する。命令ユニット、
実行ユニット、及びバッファ制御要素について以下に詳
述する。
The locking mechanism of the present invention is located within processor 108. FIG. 2 is a diagram showing the lock mechanism in detail. In one embodiment, each processor includes, for example, an instruction unit 200 that fetches instructions and operands and decodes the instructions, an execution unit 202 that executes the decoded instructions, and a buffer control element 204 that caches the data and instructions. To have. Instruction unit,
The execution unit and the buffer control element will be described in detail below.

【0022】一例として命令ユニット200は、例え
ば、命令バッファ206と、命令レジスタ208と、命
令デコード装置210と、アドレス制御装置212と、
アドレス加算器214と、ローカル制御レジスタ(CR)
複写装置216とを具備する。次に、これらの各々につ
いて説明する。
As an example, the instruction unit 200 includes, for example, an instruction buffer 206, an instruction register 208, an instruction decoding device 210, an address control device 212,
Address adder 214 and local control register (CR)
And a copying machine 216. Next, each of these will be described.

【0023】命令バッファ206は、入力としてバッフ
ァ制御要素204から命令を受信する。これらの命令は
デコードされて最終的に実行ユニット202により実行
される。デコードされる命令は、命令バッファ206か
ら取り出されて命令レジスタ208に記憶される。その
後、命令レジスタ208は、デコードされる命令を命令
デコード装置210へ渡す。命令デコード装置210
は、構文解析してその命令をデコードした後、そのデコ
ードされた命令を命令キュー218へ渡す。ここで命令
は実行されるのを待つ。命令デコード装置210は、ア
ドレス制御装置212に対しても、そのオペレーション
のために有効なアドレス指定モード及びオペランド形式
についての情報を渡す。
The instruction buffer 206 receives as an input instructions from the buffer control element 204. These instructions are decoded and finally executed by execution unit 202. The instruction to be decoded is fetched from the instruction buffer 206 and stored in the instruction register 208. After that, the instruction register 208 passes the instruction to be decoded to the instruction decoding device 210. Instruction decoding device 210
Passes the decoded instruction to the instruction queue 218 after parsing and decoding the instruction. Here the instruction waits for execution. The instruction decoder 210 also passes to the address controller 212 information about the valid addressing modes and operand formats for its operation.

【0024】アドレス制御装置212は、アドレス加算
器214に対して要求形式を指定することにより、アド
レス番号を発生するアドレス加算器214を制御する。
アドレス加算器214は、バッファ制御要素204へ渡
される論理アドレスを形成する。一例として、アドレス
加算器214は、汎用/アクセス・レジスタ220から
の入力を受信し、ロックされるべき記憶単位のアドレス
を決定する。その後、アドレス加算器214は、そのア
ドレスをバッファ制御要素へ渡す。これについては後述
する。
The address control device 212 controls the address adder 214 that generates an address number by designating a request format for the address adder 214.
Address adder 214 forms the logical address passed to buffer control element 204. As an example, address adder 214 receives the input from general / access register 220 and determines the address of the storage unit to be locked. The address adder 214 then passes the address to the buffer control element. This will be described later.

【0025】ローカルCR複写装置216は、命令処理
を制御しかつ修正するために命令ユニットのハードウェ
アが必要とするレジスタのローカル複写を格納する。ロ
ーカルCR複写装置216内に記憶されるものは、例え
ば、プログラム・イベント記録(Program Event Recordi
ng)のために用いられるESA/390制御レジスタの複写、及
び現在のオペレーション・モードを指定する内部レジス
タの複写である。これらのレジスタに対する更新は、実
行ユニット出力バス201を介して書込まれるレジスタ
・アドレスを監視することにより認知される。
The local CR copier 216 stores a local copy of the registers required by the instruction unit hardware to control and modify instruction processing. What is stored in the local CR copying device 216 is, for example, a program event record (Program Event Recordi).
ng) is a copy of the ESA / 390 control register used for ng) and a copy of the internal register that specifies the current mode of operation. Updates to these registers are acknowledged by monitoring the register address written via the execution unit output bus 201.

【0026】実行ユニット202は、デコードされた命
令を命令キュー218から受信し、当業者には周知の方
法によりこれらの命令を実行する。一例として、実行ユ
ニット202は、実行ユニット202内のシーケンスを
制御する実行ユニット制御装置222と、固定小数点装
置224と、浮動小数点装置232とを具備する。固定
小数点装置224は、演算論理ユニット(ALU)226
と、固定小数点装置224に対して入力を与えるレジス
タ(例えばAレジスタ及びBレジスタ)228と、固定小
数点装置224の結果を受信してそれらを汎用/アクセ
ス・レジスタ220及び/又はバッファ制御要素204
へ渡すレジスタ(例えばCレジスタ)230とを適宜含
む。浮動小数点装置232は、演算論理ユニット(AL
U)234と、浮動小数点装置232に対して入力を与
えるレジスタ(例えばAレジスタ及びBレジスタ)236
と、浮動小数点装置224の結果を受信してそれらを実
行ユニット202内に位置する浮動小数点レジスタ24
2、汎用/アクセス・レジスタ220及び/又はバッフ
ァ制御要素204へ渡すレジスタ(例えばCレジスタ)2
38とを適宜含む。
Execution unit 202 receives decoded instructions from instruction queue 218 and executes these instructions in a manner well known to those skilled in the art. As an example, the execution unit 202 comprises an execution unit controller 222 that controls the sequences within the execution unit 202, a fixed point unit 224, and a floating point unit 232. The fixed point unit 224 has an arithmetic logic unit (ALU) 226.
And a register (eg, A register and B register) 228 that provides an input to the fixed point unit 224 and receives the results of the fixed point unit 224 and directs them to the general / access register 220 and / or the buffer control element 204.
And a register (for example, a C register) 230 to be transferred to. The floating point unit 232 is an arithmetic logic unit (AL
U) 234 and registers (eg A and B registers) 236 that provide input to the floating point unit 232.
And floating-point registers 24 that receive the results of the floating-point unit 224 and locate them in the execution unit 202.
2. General / access register 220 and / or register (eg C register) passed to buffer control element 204 2.
38 and 38 as appropriate.

【0027】さらに、実行ユニット202内にはオペラ
ンド・バッファ240が配置されており、これは、バッ
ファ制御要素204内のローカル・キャッシュからオペ
ランド・データを受信し、そのデータを例えばレジスタ
228へ入力する。さらに、レジスタ228へは、汎用
/アクセス・レジスタ220からのデータも入力され
る。加えて、浮動小数点レジスタ242は、レジスタ2
36への入力を設けている。固定小数点Cレジスタ23
0及び浮動小数点Cレジスタ238は、単一バス201
へ接続されており、単一バス201は、キャッシュ24
8へ記憶されるデータを伝送すると共に、各レジスタす
なわち汎用/アクセス・レジスタ220、浮動小数点レ
ジスタ242及びローカルCR複写装置216及び26
6に対する更新データを伝送する。
Also located within execution unit 202 is an operand buffer 240, which receives operand data from a local cache within buffer control element 204 and inputs that data into, for example, register 228. . Furthermore, the register 228 is a general-purpose
/ Data from the access register 220 is also input. In addition, the floating point register 242 is
Input to 36 is provided. Fixed point C register 23
0 and floating point C register 238
Is connected to the single bus 201 and the cache 24
8 to transfer the data stored therein to each of the registers, i.e. general / access register 220, floating point register 242 and local CR copiers 216 and 26.
The update data for 6 is transmitted.

【0028】一例では、バッファ制御要素204がアド
レス変換装置240を具備し、これは、アドレス加算器
214からアドレスを受信し、そのアドレスを当業者に
は周知の方法により例えば仮想アドレスから実アドレス
へと変換する。その詳細は、前述の文献「Principle of
Operation」に記載されている。
In one example, the buffer control element 204 comprises an address translator 240, which receives an address from an address adder 214, which is converted in a manner well known to those skilled in the art, for example from a virtual address to a real address. And convert. For details, refer to the above-mentioned document "Principle of
Operation ”.

【0029】さらに、バッファ制御要素204は、論理
アドレス(LA)・レジスタ246を具備し、これは、
アドレス加算器から受信したアドレスを記憶する。変換
されたアドレス及び/又は論理アドレスは、倍ワード・
インタリーブ(interleave)・キャッシュ248をアドレ
ス指定するために用いられる。キャッシュ248に関す
る制御には、例えば、書込みデータ偶数レジスタ25
0、書込みデータ奇数レジスタ252、及び個々のマル
チプレクサ254、256、さらにデータ偶数出力レジ
スタ258及びデータ奇数出力レジスタ260が含まれ
る。マルチプレクサ254、256は、実行ユニット2
02のレジスタ230、238から入力を受信すると共
に、プロセッサに接続された中間キャッシュ(L2キャ
ッシュ)からも入力を受信する。上記の出力レジスタへ
接続されるものは、複数のマルチプレクサ262であ
り、これらは命令ユニット200、実行ユニット20
2、及びL2バッファのための記憶バッファ264に対
して入力を与える。
In addition, the buffer control element 204 comprises a logical address (LA) register 246, which
The address received from the address adder is stored. The translated address and / or logical address is a double word
It is used to address the interleave cache 248. For the control relating to the cache 248, for example, the write data even register 25
0, write data odd register 252, and individual multiplexers 254, 256, as well as data even output register 258 and data odd output register 260. The multiplexers 254 and 256 are the execution units 2
02 registers 230, 238, and also from an intermediate cache (L2 cache) connected to the processor. Connected to the above output registers are multiple multiplexers 262, which are instruction unit 200, execution unit 20.
2 and the inputs to the storage buffer 264 for the L2 buffer.

【0030】さらに本発明においては、バッファ制御要
素204がローカルCR複写装置266を具備する。こ
れは実行ユニット202から入力を受信する。ローカル
CR複写装置266は、例えば、バッファ制御要素20
4のコマンド・レジスタ内に記憶されたコマンドの複写
を含む。これについては図4を参照して後述する。ロー
カルCR複写装置266はさらに、バッファ制御要素2
04のオペレーションを制御するために必要なESA/390
制御レジスタのローカル複写を含む。
Further in the present invention, the buffer control element 204 comprises a local CR copier 266. It receives input from the execution unit 202. The local CR copier 266 may be, for example, a buffer control element 20.
4 contains a copy of the command stored in the command register. This will be described later with reference to FIG. The local CR copier 266 further includes buffer control element 2
ESA / 390 required to control 04 operations
Contains a local copy of the control register.

【0031】本発明によるロック機構は、プロセッサが
記憶単位(データ・キャッシュ・ライン又は記憶ブロッ
ク(例えば128バイト)とも称される)に対して排他的
制御を要求したときに開始される。このプロセッサは、
バッファ制御要素に対してその記憶単位をロックするよ
う指示する命令を用いる。この結果、ロック状態を保持
する当該プロセッサがロックを解除するまでは、システ
ム内の他のいずれのプロセッサも、その記憶単位にアク
セスすることができなくなる。記憶単位をロック又はロ
ック解除するために当該プロセッサにより出される命令
の一例が、図3に示されている。
The locking mechanism according to the present invention is initiated when the processor requests exclusive control of a storage unit (also called a data cache line or storage block (eg 128 bytes)). This processor
An instruction is used to instruct the buffer control element to lock its storage unit. As a result, no other processor in the system can access the storage unit until the processor holding the locked state releases the lock. An example of an instruction issued by the processor to lock or unlock a storage unit is shown in FIG.

【0032】一例として図3では、記憶単位のロックを
セットし又はリセットするためにSYSRQ(Perform S
ystem Request)命令が用いられる。このSYSRQ命令
300の例では、この命令がバッファ制御要素に対する
特別の要求であることを示すオペレーション・コード3
02と、基底アドレス(B2)フィールド304と、変位
アドレス(D2)フィールド306とを含む。B2フィー
ルドにより指示される汎用レジスタの内容がD2フィー
ルドの内容に加算されて第2オペランドのアドレスを形
成する。第2オペランドのアドレスは、ロックされる記
憶単位のアドレス(例えば、仮想アドレス又は実アドレ
ス)である。
As an example, in FIG. 3, the SYSRQ (Perform S) is used to set or reset the storage unit lock.
ystem Request) command is used. In this example SYSRQ instruction 300, operation code 3 indicates that this instruction is a special request to the buffer control element.
02, a base address (B2) field 304, and a displacement address (D2) field 306. The contents of the general purpose register pointed to by the B2 field are added to the contents of the D2 field to form the address of the second operand. The address of the second operand is the address of the storage unit to be locked (for example, virtual address or real address).

【0033】図2に関して説明したように、SYSRQ
命令は、命令ユニット200によりデコードされ、実行
ユニット202により実行される。第2オペランドのア
ドレスは、アドレス加算器214から論理アドレス・レ
ジスタ246へ渡される。ロック・オペレーションの場
合は、このアドレスがロックされる記憶単位を表す。
As described with reference to FIG. 2, SYSRQ
The instructions are decoded by instruction unit 200 and executed by execution unit 202. The address of the second operand is passed from address adder 214 to logical address register 246. For lock operations, this address represents the storage unit to be locked.

【0034】本発明においては、記憶単位のロック及び
ロック解除に関するハードウェアが、そのロック及びロ
ック解除オペレーションを要求するプロセッサのバッフ
ァ制御要素内に配置されている。本発明のロック及びロ
ック解除機構に関するハードウェアの一例を、記憶単位
のロック及びロック解除方法と共に図4を参照して説明
する。
In the present invention, the hardware for locking and unlocking storage units is located in the buffer control element of the processor requesting the locking and unlocking operations. An example of hardware relating to the lock and unlock mechanism of the present invention will be described with reference to FIG.

【0035】図4では、ロックされる記憶単位のアドレ
スがプロセッサ・アドレス・バスから受信され、論理ア
ドレス・レジスタ246内に記憶される。一例では、こ
のアドレスは32ビットの長さであり、オペレーション
・モードに依って仮想アドレス又は実アドレスのいずれ
かを表すが、これは周知のことである。アドレスが仮想
アドレスの場合は、例えば周知の動的アドレス変換(D
AT)技術を用いて実アドレスへ変換される。性能を拡
張するために、変換されたアドレスの一部(すなわち論
理アドレスのビット0〜19により表される変換された
ページ・アドレス)が、変換ルックアサイド(lookaside)
・バッファ400内に記憶される。動的アドレス変換及
び変換ルックアサイド・バッファは、当業者には周知で
あり、前述の文献「Principles of Operation」にも記
載されている。
In FIG. 4, the address of the storage unit to be locked is received from the processor address bus and stored in the logical address register 246. In one example, this address is 32 bits long and represents either a virtual address or a real address depending on the mode of operation, which is well known. When the address is a virtual address, for example, well-known dynamic address translation (D
It is converted to a real address using AT) technology. To extend performance, a portion of the translated address (ie, the translated page address represented by bits 0-19 of the logical address) is translated lookaside.
Stored in buffer 400. Dynamic address translation and translation lookaside buffers are well known to those skilled in the art and are also described in the aforementioned document "Principles of Operation".

【0036】その後、ロックされる記憶単位がL1キャ
ッシュ内に存在するか否かが判断される。この判断は、
バッファ制御要素内のディレクトリ401を検査するこ
とにより行われる。記憶単位がそのディレクトリ内に置
かれていなければ、ライン・フェッチ制御403を用い
てL2キャッシュからフェッチされる。
Thereafter, it is determined whether the storage unit to be locked exists in the L1 cache. This decision is
This is done by examining the directory 401 in the buffer control element. If the storage unit is not located in that directory, it is fetched from the L2 cache using line fetch control 403.

【0037】続いて、TLB(変換ルックアサイド・バ
ッファ)の内容が、論理アドレスのビット20〜24(こ
れはこのアドレスのライン・オフセットを表す)と共に
絶対アドレス・レジスタ402へロードされる。この時
点で、絶対アドレス・レジスタ内のアドレスは、ロック
される記憶単位の絶対アドレス(ライン境界)を表して
いる。つまり、この例ではライン(例えば128バイト)
に基づいてロックが行われるので、アドレスのビット0
〜24のみが必要となる。しかしながら、より大きな単
位でロックが行われる場合、全アドレス(例えば、ビッ
ト0〜31)が用いられることになる。
The contents of the TLB (Translation Lookaside Buffer) are then loaded into absolute address register 402 along with bits 20-24 of the logical address, which represents the line offset of this address. At this point, the address in the absolute address register represents the absolute address (line boundary) of the storage unit to be locked. In other words, in this example, the line (128 bytes, for example)
Since the lock is performed based on the
Only ~ 24 are required. However, if locking is done in larger units, all addresses (eg bits 0-31) will be used.

【0038】上記に加えて、SYSRQロック命令を出
すに先立って、ロック・コマンドをコマンド・レジスタ
406へロードする。特に、ミリコード命令等の命令
は、ロック・コマンドを表す汎用レジスタからの値をコ
マンド・レジスタへ書込む。上述のSYSRQ命令は、
記憶へアクセスするための論理アドレスを用いるのでは
なく、コマンド・レジスタ406を用いて、その論理ア
ドレスにより指示された記憶単位をロックするようバッ
ファ制御要素に伝える。
In addition to the above, the lock command is loaded into the command register 406 prior to issuing the SYSRQ lock instruction. In particular, instructions such as millicode instructions write the value from the general register representing the lock command to the command register. The above SYSRQ command
Rather than using a logical address to access a store, command register 406 is used to tell the buffer control element to lock the storage unit pointed to by that logical address.

【0039】コマンド・レジスタ406の内容は、バッ
ファ制御要素内のデコード装置408によりデコードさ
れる。このときデコード装置は、実行されるコマンドが
ロック・オペレーションであることを判断する。そし
て、ロック/ロック解除制御410(これは例えば組合
せ論理を含む)は、デコードされたロック・コマンドを
得て、レジスタ412内のロック有効ビットをセットす
る。さらに、ロック/ロック解除制御410は、絶対ア
ドレス・レジスタ402内のアドレスをロック・レジス
タ404へ入れる。こうして、ロック・オペレーション
が完了し、ロックオペレーションを行ったプロセッサ
は、ロック・レジスタ404に置かれたアドレスにより
指示される記憶単位に対する排他的制御を所有する。ロ
ックが解除されるまでは、ロックされた記憶単位を無効
化しようとするいかなる要求も拒否される。
The contents of the command register 406 are decoded by the decoding unit 408 in the buffer control element. At this time, the decoding device determines that the command to be executed is a lock operation. The lock / unlock control 410 (which includes, for example, combinatorial logic) then gets the decoded lock command and sets the lock valid bit in register 412. In addition, lock / unlock control 410 places the address in absolute address register 402 into lock register 404. Thus, the lock operation is complete and the processor that performed the lock operation has exclusive control over the storage unit pointed to by the address located in lock register 404. Until the lock is released, any request to invalidate the locked storage unit will be denied.

【0040】本発明の一実施形態においては、記憶単位
がロック状態の間、そのロックを保持しているプロセッ
サが共有バスへアクセスしなければならないようなオペ
レーションは一切認められない。全てのオペレーション
は、L1キャッシュ及びプロセッサ内部レジスタ内に含
まれるべきである。
In one embodiment of the present invention, no operation is allowed while the storage unit is in the locked state, where the processor holding the lock must access the shared bus. All operations should be contained within the L1 cache and processor internal registers.

【0041】上記に加えて、一例では、図4に示したシ
ステム構成要素が、ロックされた記憶単位に対する別の
プロセッサによるアクセスを拒否するべきか否かを判断
するためにも用いられる。特に、要求された記憶単位の
アドレスが、要求しているプロセッサからロックを保持
しているプロセッサのバッファ制御要素へL2アドレス
・バスを介して渡され、論理アドレスレジスタ246内
に記憶される。このアドレスは適宜変換され、変換され
たページ・アドレスがTLB400内に記憶される。そ
して、TLBの内容及びレジスタ246のビット20〜
24が、絶対アドレス・レジスタ402へロードされ
る。(この例では新たなアドレスはロック・レジスタ4
04へ入れられていないので)レジスタ402内のアド
レスが、ロック状態の記憶単位のアドレスを入れたロッ
ク・レジスタ404の内容と比較される(比較器41
4)。比較の結果同じでありかつロック有効ビットがセ
ットされていれば(AND論理416)、制御418は無
効化要求の実行を認めない。しかしながらロック有効ビ
ットがオフであれば、その記憶単位へのアクセスが認め
られる。
In addition to the above, in one example, the system components shown in FIG. 4 are also used to determine if access to a locked storage unit by another processor should be denied. In particular, the address of the requested storage unit is passed from the requesting processor to the buffer control element of the processor holding the lock via the L2 address bus and stored in logical address register 246. This address is translated appropriately and the translated page address is stored in TLB 400. Then, the contents of TLB and bit 20 to 20 of the register 246
24 is loaded into absolute address register 402. (In this example, the new address is lock register 4
The address in register 402 is compared with the contents of lock register 404 which contains the address of the locked storage unit (since it has not been placed in 04) (comparator 41
4). If the comparisons are the same and the lock valid bit is set (AND logic 416), control 418 does not allow the invalidation request to be executed. However, if the lock valid bit is off, access to the storage unit is granted.

【0042】プロセッサが記憶単位の排他的制御をもは
や必要としないとき、本発明に従ってプロセッサは明示
的にロックを解除する。特に一例では、コマンド・レジ
スタ406がロック解除コマンドをセットアップされ
る。SYSRQ命令は、バッファ制御要素に対しコマン
ド・レジスタ内のコマンドにより表された機能を実行す
るよう伝える。この場合アドレスは用いられない。コマ
ンド・レジスタはデコードされ、ロック/ロック解除制
御410がロック有効ビット412をリセットする。こ
れにより、ロックされていた記憶単位への別のプロセッ
サによるアクセスが可能となる。
When the processor no longer needs exclusive control of a storage unit, it explicitly releases the lock in accordance with the present invention. In one example in particular, command register 406 is set up with an unlock command. The SYSRQ instruction tells the buffer control element to perform the function represented by the command in the command register. In this case, the address is not used. The command register is decoded and the lock / unlock control 410 resets the lock valid bit 412. This allows another processor to access the locked storage unit.

【0043】本発明の一実施形態においては、記憶の一
貫性を侵すことなく記憶単位の更新を実行するためにロ
ック機構が用いられる。一例として、アトミックな更新
が内部コード(すなわちミリコード)により実行され
る。ミリコードは、ロックが実行されるべきであること
を示すべくコマンド・レジスタをセットアップし、ロッ
ク・オペレーションを発生し、相互ロック更新を実行
し、結果を記憶し、そしてロックを解除する。
In one embodiment of the present invention, a locking mechanism is used to perform storage unit updates without violating storage consistency. As an example, atomic updates are performed by internal code (ie, millicode). Millicode sets up a command register to indicate that a lock should be taken, issues a lock operation, performs a mutual lock update, stores the result, and releases the lock.

【0044】本発明においては、ロック命令が出される
に先立って(すなわちミリコードがまだローカル・キャ
ッシュ内にない場合)、ミリコードが主記憶からフェッ
チされ、ロックを実行するプロセッサのローカル・キャ
ッシュに記憶される。本発明では、ロックが解除される
までこのミリコードはローカル・キャッシュ内に維持さ
れる。
In the present invention, prior to the lock instruction being issued (ie, if the millicode is not already in the local cache), the millicode is fetched from main memory and placed in the local cache of the processor performing the lock. Remembered. In the present invention, this millicode is kept in the local cache until the lock is released.

【0045】一例では、ローカル・キャッシュにミリコ
ードが留まることを確保するために、L1キャッシュと
L2キャッシュとの間のサブセット規則が緩和される。
これによりミリコードは、L2キャッシュ内に存在しな
くともL1キャッシュ内に留まることができる。このこ
とは、例えば、指定された絶対アドレス範囲内の全ての
命令を読み取り専用として扱うことにより実現される。
この例では、ミリコード命令は、このアドレス範囲内の
記憶機構に留まる。この範囲は、システム初期化の際に
バッファ制御要素へ与えられる。特に、この範囲の始ま
りと終わりがバッファ制御要素のレジスタ内に記憶され
る。これらのレジスタの複写は、ローカルCR複写装置
266に記憶される。この範囲内のコード・ライン(す
なわち128バイト)を無効化しようとするL2キャッ
シュからの要求は、無視される。こうしてこのライン
は、例えばLRU(least recently used:最新使用)アル
ゴリズム又は他のいずれかの方式に基づいて処分される
まではL1キャッシュ内に留まることになる。
In one example, the subset rules between the L1 and L2 caches are relaxed to ensure that millicode stays in the local cache.
This allows millicode to remain in the L1 cache even if it is not in the L2 cache. This is achieved, for example, by treating all instructions within the specified absolute address range as read-only.
In this example, millicode instructions remain in storage within this address range. This range is given to the buffer control element at system initialization. In particular, the beginning and end of this range are stored in the register of the buffer control element. Copies of these registers are stored in local CR copier 266. Requests from the L2 cache that try to invalidate code lines within this range (ie 128 bytes) are ignored. Thus this line will remain in the L1 cache until it is disposed of, for example, according to the least recently used (LRU) algorithm or any other scheme.

【0046】本発明の一実施形態では、インターロック
更新オペレーションのための全てのミリコード(すなわ
ち内部コード)命令が、1つのキャッシュ命令ライン
(すなわち128バイト内)に格納される。これは、例
えば、ロック及びロック解除オペレーションのためのS
YSRQ命令、及び2つのSYSRQ命令の間で実行さ
れる全ての命令を含む。
In one embodiment of the invention, all millicode (ie, internal code) instructions for interlock update operations are stored in one cache instruction line (ie, within 128 bytes). This is, for example, S for lock and unlock operations.
It includes the YSRQ instruction and all instructions executed between two SYSRQ instructions.

【0047】以上、特定の記憶単位に対する排他的制御
を設けるロック機構について詳述したが、この機構は、
複数ミリコード命令にも拡張することができる。記憶単
位のロックに加え、本発明によるこのロック機構及び特
定の範囲内の命令についてのサブセット規則の緩和によ
って、命令ラインが順番にローカル・キャッシュ内に存
在することを確保することにより前述の潜在的なデッド
ロック状況を避けることができる。本発明のロック機構
は、L1キャッシュ及びL2キャッシュ内の他の記憶単
位に対する他のプロセッサからのアクセスを停止させな
い。インターロックされた記憶単位に対する相互無効化
のみが、共有バスを凍結することになる。サブセット規
則の緩和により、1つのプロセッサが使用しているコー
ド・ラインがより長くL1キャッシュ内に留まることが
でき、このことがL2キャッシュを共有する他のプロセ
ッサからのL2フェッチ・ミスに起因する無効化要求の
影響を低減するので、システム性能が向上する。また、
バッファ制御要素によるミリコード・アドレス範囲内の
オペランドのフェッチは排他的でないので、システム性
能は更に向上する。
The lock mechanism for providing exclusive control for a specific storage unit has been described in detail above.
It can be extended to multiple millicode instructions. In addition to storage unit locking, this locking mechanism according to the present invention and the relaxation of the subset rules for instructions within a certain range ensures that the instruction lines are in sequence in the local cache. You can avoid a deadlock situation. The lock mechanism of the present invention does not stop access from other processors to other storage units in the L1 cache and L2 cache. Only mutual invalidations for interlocked storage units will freeze the shared bus. Relaxing the subset rules allows code lines used by one processor to stay in the L1 cache longer, which results in invalidity due to L2 fetch misses from other processors sharing the L2 cache. The system performance is improved because the influence of the request for computerization is reduced. Also,
Fetching operands within the millicode address range by the buffer control element is not exclusive, further improving system performance.

【0048】マルチプロセッサ・システムにおいてロッ
ク機構を用いる方法の一例を示し、以下に説明する。 命令ライン1: ・ ・ ・ ロック/ロック解除オペレーションのためのレジスタを
セットアップする 全てのオペランド記憶をL2キャッシュへ書込むことを
含めて命令パイプラインを排出させる 命令ライン2: インターロック・コマンドによりSYSRQを出す ロックされた記憶単位に対する更新を含めて命令を実行
する ロック解除コマンドによりSYSRQを出す
An example of how to use the locking mechanism in a multiprocessor system is shown and described below. Instruction line 1: ··· Set up registers for lock / unlock operations to drain the instruction pipeline, including writing all operand stores to the L2 cache. Instruction line 2: Interlock command Issue an instruction that includes an update to a locked storage unit Issue a SYSRQ with an unlock command

【0049】上記の例では、命令(すなわちコード)ラ
イン1において、バッファ制御要素内のコマンド・レジ
スタが、実行されるべきオペレーションに依ってロック
・コマンド又はロック解除コマンドによりセットアップ
される。
In the above example, on instruction (ie code) line 1, the command register in the buffer control element is set up with a lock or unlock command depending on the operation to be performed.

【0050】先ずライン2において、SYSRQ命令を
用いてロック・コマンドが出される。ロック・コマンド
はこの命令により指定された特定の記憶単位をロックす
る。記憶単位がロックされた後、コード・ライン内の命
令が記憶単位に対して働く。例えば、その記憶単位を検
査し更新する。その後、ロックが解除されることにより
他のプロセッサがそのデータ・ラインにアクセス可能と
なる。
First, on line 2, a lock command is issued using the SYSRQ instruction. The lock command locks the particular storage unit specified by this instruction. After the storage unit is locked, the instructions in the code line work on the storage unit. For example, the storage unit is inspected and updated. The lock is then released so that the other processor can access the data line.

【0051】上記の例では、1つのデータ・ラインのみ
がロックされる。これは1つの例にすぎない。他の実施
形態では、例えば、ローカル・キャッシュが少なくとも
3ウェイ・セットアソシアティブ(three-way set assoc
iative)・キャッシュの場合、複数の記憶単位をロック
することも可能である。他の実施形態が有り得ることも
当業者には自明であろう。
In the above example, only one data line is locked. This is just one example. In another embodiment, for example, the local cache is at least a three-way set assoc.
iative) ・ In the case of cache, it is possible to lock multiple storage units. It will be apparent to those skilled in the art that other embodiments are possible.

【0052】上記の好適例では、全てのミリコード・ラ
インが読取り専用と見なされる。しかしながら他の実施
形態では、このことは必要ない。さらに他の実施形態例
では、ロック及び記憶参照が、ミリコードによっては行
われず、読取り専用と見なされる記憶内に存在するいず
れかのコードにより行われる。
In the preferred embodiment above, all millicode lines are considered read-only. However, in other embodiments this is not necessary. In yet another example embodiment, locking and memory references are not done by millicode, but by any code present in memory that is considered read-only.

【0053】上記の例に代えて次のようなものである。
一実施形態では、L1キャッシュ・ディレクトリ内に置
かれたディレクトリ・ビットすなわちコード・ポイント
が、特定のラインがミリコードであることを示し、従っ
てL1/L2サブセット規則が緩和されるべきであるこ
とを指示するために用いられる。命令ユニットは、この
指示を命令フェッチに対して与えることになる。別の例
では、ミリコード・アドレス・レジスタが追加される。
命令フェッチがミリコードについてのものであれば、バ
ッファ制御要素がL1キャッシュ内のこのラインを検査
し、そしてもし既に存在していなければフェッチされる
ことになる。この場合このラインに対する全ての無効化
要求が無視され、命令ユニットはミリコード命令フェッ
チ及びインターロックの指示を与えなければならない。
そしてバッファ制御要素はこのラインに対するサブセッ
ト規則を緩和し、このラインに対する無効化要求を無視
する。
The following is an alternative to the above example.
In one embodiment, a directory bit or code point located in the L1 cache directory indicates that a particular line is millicode, and thus the L1 / L2 subset rule should be relaxed. Used to indicate. The instruction unit will give this instruction to the instruction fetch. In another example, a millicode address register is added.
If the instruction fetch is for millicode, the buffer control element will check this line in the L1 cache and will be fetched if it does not already exist. In this case all invalidation requests for this line are ignored and the instruction unit must provide instructions for millicode instruction fetch and interlock.
The buffer control element then relaxes the subset rule for this line and ignores the invalidation request for this line.

【0054】以上、好適例について詳細に説明してきた
が、当業者であれば、本発明の趣旨から逸脱するするこ
となく多様な変形、追加、置換等が可能であり、よって
これらのことは特許請求の範囲に規定された本発明の範
囲内であることは自明であろう。
Although the preferred examples have been described in detail above, those skilled in the art can make various modifications, additions, and substitutions without departing from the spirit of the present invention. It will be apparent that it is within the scope of the invention as defined in the claims.

【0055】まとめとして本発明の構成に関して以下の
事項を開示する。
As a summary, the following matters will be disclosed regarding the configuration of the present invention.

【0056】(1)各々がローカル・キャッシュを具備
する複数のプロセッサと、前記複数のプロセッサに接続
されかつ該複数のプロセッサにより共有されるリソース
をもつ中間キャッシュと、共有バスを介して前記中間キ
ャッシュへ接続されるメモリと、記憶単位の排他的制御
を獲得するべく前記複数のプロセッサの中の1のプロセ
ッサに設けられ、該排他的制御が該記憶単位を用いて実
行されている複数の命令に渡って維持され、かつ該複数
のプロセッサの中の別のプロセッサから該記憶単位への
アクセス要求があるとき以外は該複数のプロセッサによ
る前記共有バスの利用を可能とする排他的制御の獲得手
段とを有するマルチプロセッサ・システム。 (2)前記排他的制御が解除されるまで、前記1のプロ
セッサの前記ローカル・キャッシュ内に前記複数の命令
を維持する手段を有する上記(1)に記載のマルチプロ
セッサ・システム。 (3)前記複数の命令が前記中間キャッシュ内に存在す
ることなく前記1のプロセッサの前記ローカル・キャッ
シュ内に存在できるように、前記複数の命令を維持する
手段が、該ローカル・キャッシュと該中間キャッシュと
の間に存在するサブセット規則を緩和する手段を有する
上記(2)に記載のマルチプロセッサ・システム。 (4)前記記憶単位の排他的制御を解除する手段を有す
る上記(1)に記載のマルチプロセッサ・システム。 (5)前記排他的制御の獲得手段と前記排他的制御の解
除手段とが、バッファ制御要素を有する上記(4)に記
載のマルチプロセッサ・システム。 (6)各々がローカル・キャッシュを具備する複数のプ
ロセッサと、前記複数のプロセッサに接続されかつ該複
数のプロセッサにより共有されるリソースをもつ中間キ
ャッシュと、共有バスを介して前記中間キャッシュへ接
続されるメモリとを有するマルチプロセッサ・システム
における記憶単位の排他的制御を獲得する方法であっ
て、前記複数のプロセッサの中の1のプロセッサが、指
定された記憶単位の排他的制御を獲得するべくロック・
オペレーションを開始するステップと、前記1のプロセ
ッサに前記記憶単位の排他的制御を与え、該1のプロセ
ッサにより実行される複数の命令に渡って前記記憶単位
をロック状態とし、前記複数のプロセッサの中の別のプ
ロセッサから該記憶単位へのアクセス要求があるとき以
外は該複数のプロセッサによる前記共有バスの利用を可
能とするべく前記ロック・オペレーションを実行するス
テップとを含むマルチプロセッサ・システムにおける記
憶単位の排他的制御の獲得方法。 (7)前記記憶単位が、前記ロック・オペレーションを
指定する命令に含まれるアドレスにより指定される上記
(6)に記載の方法。 (8)前記命令が、前記マルチプロセッサ・システムの
内部コードを含む上記(7)に記載の方法。 (9)前記記憶単位の排他的制御を解除するステップを
含む上記(6)に記載の方法。 (10)前記解除が、前記マルチプロセッサ・システム
の内部コードを含む命令で指定される上記(9)に記載
の方法。 (11)前記ロック・オペレーション及び前記解除が、
前記1のプロセッサのバッファ制御要素内で実行される
上記(9)に記載の方法。 (12)前記複数の命令が前記1のプロセッサのローカ
ル・キャッシュ内にないとき、前記記憶単位の排他的制
御を獲得する前に、該記憶単位にアクセスするべく該複
数の命令を該ローカル・キャッシュにフェッチするステ
ップと、前記排他的制御が解除されるまで前記ローカル
・キャッシュ内の前記複数の命令を維持するステップと
を含む上記(6)に記載の方法。 (13)前記維持するステップが、前記複数の命令が前
記中間キャッシュ内に存在することなく前記ローカル・
キャッシュ内に存在できるように、該ローカル・キャッ
シュと該中間キャッシュとの間に存在するサブセット規
則を緩和するステップを含む上記(12)に記載の方
法。 (14)前記ロック・オペレーションの実行の前に、前
記ロック・オペレーションの実行中にアクセスされるこ
とになるコマンド・レジスタ内にロック・コマンドを配
置するステップと、前記中間キャッシュに接続された1
又は複数のバッファ内に置かれたデータを前記中間キャ
ッシュに記憶するステップとを含む上記(6)に記載の
方法。 (15)前記ロック・オペレーションを実行するステッ
プが、ロックされる前記記憶単位のアドレスをロック・
レジスタ内に記憶するステップと、前記記憶単位の排他
的制御を示すロック有効ビットをセットするステップと
を含む上記(6)に記載の方法。 (16)各々がローカル・キャッシュを具備する複数の
プロセッサと、前記複数のプロセッサに接続されかつ該
複数のプロセッサにより共有されるリソースをもつ中間
キャッシュと、共有バスを介して前記中間キャッシュへ
接続されるメモリとを有するマルチプロセッサ・システ
ムにおける記憶単位の排他的制御を獲得する方法であっ
て、前記複数のプロセッサの1のプロセッサのローカル
・キャッシュ内に記憶単位のロックの前に記憶された該
ロックされる記憶単位に関する複数の命令を維持し、か
つ該ロックが解除されるまで該ローカル・キャッシュ内
に該複数の命令を留まらせるステップと、前記1のプロ
セッサに前記記憶単位の排他的制御を与えるロック・オ
ペレーションを前記1のプロセッサ内で実行するステッ
プであって、該排他的制御が前記複数の命令に渡って保
持されるステップとを含むマルチプロセッサ・システム
における記憶単位の排他的制御の獲得方法。 (17)前記実行するスッテプが、ロックされる前記記
憶単位のアドレスを指定するミリコード命令を発生する
ステップと、前記アドレスをロック・レジスタ内にロー
ドしかつ前記記憶単位がロックされていることを示すロ
ック有効ビットをセットするべくロック制御機構を用い
るステップとを含む上記(16)に記載の方法。 (18)前記記憶単位の排他的制御を解除するステップ
を含み、該解除するステップが前記記憶単位がロックさ
れていないことを示すべくロック有効ビットをリセット
するステップを含む上記(17)に記載の方法。 (19)各々がローカル・キャッシュを具備する複数の
プロセッサと、前記複数のプロセッサに接続されかつ該
複数のプロセッサにより共有されるリソースをもつ中間
キャッシュと、共有バスを介して前記中間キャッシュへ
接続されるメモリとを有するマルチプロセッサ・システ
ムにおけるコード・ラインがローカルに存在することを
制御する方法であって、1又は複数のコード・ラインを
読取り専用に指示するステップと、前記複数のプロセッ
サの中の1のプロセッサのローカル・キャッシュに読取
り専用として指示された前記1又は複数のコード・ライ
ンを維持するステップとを含み、上記維持するステップ
が、前記1又は複数のコード・ラインが前記中間キャッ
シュに存在することなく前記ローカル・キャッシュ内に
存在できるように前記ローカル・キャッシュと前記中間
キャッシュとの間にあるサブセット規則を緩和するステ
ップを含むマルチプロセッサ・システムにおけるコード
・ラインのローカル存在を制御する方法。 (20)各々がローカル・キャッシュを具備する複数の
プロセッサと、前記複数のプロセッサに接続されかつ該
複数のプロセッサにより共有されるリソースをもつ中間
キャッシュと、共有バスを介して前記中間キャッシュへ
接続されるメモリと、記憶単位の排他的制御を獲得する
べく前記複数のプロセッサの中の1のプロセッサに設け
られ、該排他的制御が該記憶単位に関して実行される複
数の命令に渡って維持され、かつ該複数のプロセッサの
中の別のプロセッサから該記憶単位へのアクセス要求が
あるとき以外は該複数のプロセッサによる前記共有バス
の利用を可能とするロック制御機構とを有するマルチプ
ロセッサ・システム。 (21)前記プロセッサがバッファ制御要素を有し、該
バッファ制御要素が前記ロック制御機構を有する上記
(20)に記載のマルチプロセッサ・システム。
(1) A plurality of processors each having a local cache, an intermediate cache having resources connected to the plurality of processors and shared by the plurality of processors, and the intermediate cache via a shared bus A memory connected to the memory unit and a plurality of instructions provided in one processor of the plurality of processors to obtain exclusive control of the storage unit, the exclusive control being performed by a plurality of instructions executed using the storage unit. Means for obtaining exclusive control, which is maintained across and enables the plurality of processors to use the shared bus except when there is a request for access to the storage unit from another processor of the plurality of processors; A multiprocessor system having: (2) The multiprocessor system according to (1), further comprising means for maintaining the plurality of instructions in the local cache of the one processor until the exclusive control is released. (3) Means for maintaining the plurality of instructions so that the plurality of instructions can be present in the local cache of the one processor without being present in the intermediate cache. The multiprocessor system according to (2) above, having means for relaxing a subset rule existing between the cache and the cache. (4) The multiprocessor system according to the above (1), having means for releasing the exclusive control of the storage unit. (5) The multiprocessor system according to (4), wherein the exclusive control acquisition means and the exclusive control release means have a buffer control element. (6) A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and connected to the intermediate cache via a shared bus A method for gaining exclusive control of a storage unit in a multiprocessor system having a memory, wherein one processor of the plurality of processors locks to obtain exclusive control of a specified storage unit.・
A step of starting an operation, giving exclusive control of the storage unit to the one processor, locking the storage unit over a plurality of instructions executed by the one processor, and Storage unit in a multiprocessor system, the step of performing the locking operation to enable the shared bus to be used by the plurality of processors except when there is a request for access to the storage unit from another processor. How to obtain exclusive control of. (7) The method according to (6) above, wherein the storage unit is specified by an address included in an instruction specifying the lock operation. (8) The method according to (7) above, wherein the instructions include internal code of the multiprocessor system. (9) The method according to (6) above, which includes a step of releasing exclusive control of the storage unit. (10) The method according to (9) above, wherein the release is specified by an instruction including internal code of the multiprocessor system. (11) The lock operation and the release are
The method of (9) above, which is performed within a buffer control element of the one processor. (12) When the instructions are not in the local cache of the one processor, the instructions are accessed to access the storage unit before gaining exclusive control of the storage unit. The method of claim (6), including the steps of: fetching into the local cache and maintaining the plurality of instructions in the local cache until the exclusive control is released. (13) The step of maintaining may be performed in the local cache without the plurality of instructions existing in the intermediate cache.
13. The method of (12) above, including the step of relaxing the subset rules that exist between the local cache and the intermediate cache so that they can be in the cache. (14) placing a lock command in a command register that will be accessed during execution of the lock operation prior to execution of the lock operation;
Or storing the data placed in a plurality of buffers in the intermediate cache. (15) The step of performing the lock operation locks an address of the storage unit to be locked.
7. The method according to (6) above, comprising storing in a register and setting a lock valid bit indicating exclusive control of the storage unit. (16) A plurality of processors each having a local cache, an intermediate cache connected to the plurality of processors and having resources shared by the plurality of processors, and connected to the intermediate cache via a shared bus. A method for gaining exclusive control of a storage unit in a multiprocessor system having a memory, the lock being stored in a local cache of one of the plurality of processors before the lock of the storage unit. Maintaining instructions for the storage unit to be retained and retaining the instructions in the local cache until the lock is released; and giving the one processor exclusive control of the storage unit. Performing a lock operation in the one processor, the lock operation comprising: Exclusive control of acquisition method of a storage unit in a multiprocessor system in which control; and held across the plurality of instructions. (17) The executing step generates a millicode instruction designating an address of the storage unit to be locked; loading the address into a lock register and locking the storage unit; Using a lock control mechanism to set a lock valid bit as indicated. (18) The method according to (17) above, which includes a step of releasing exclusive control of the storage unit, and the releasing step includes a step of resetting a lock valid bit to indicate that the storage unit is not locked. Method. (19) A plurality of processors each having a local cache, an intermediate cache connected to the plurality of processors and having resources shared by the plurality of processors, and connected to the intermediate cache via a shared bus. A method for controlling the local presence of a code line in a multiprocessor system having a memory, the method comprising the step of indicating one or more code lines as read-only; Maintaining said one or more code lines designated as read-only in a local cache of a processor, said maintaining step wherein said one or more code lines are present in said intermediate cache. To be in the local cache without Serial method of controlling the local presence of the code line in a multiprocessor system that includes a step of relaxing the subset rule is between local cache and the intermediate cache. (20) A plurality of processors each having a local cache, an intermediate cache connected to the plurality of processors and having resources shared by the plurality of processors, and connected to the intermediate cache via a shared bus. A memory and a processor in one of the plurality of processors to obtain exclusive control of a storage unit, the exclusive control being maintained over a plurality of instructions executed for the storage unit, and A multiprocessor system having a lock control mechanism that enables the plurality of processors to use the shared bus except when there is a request for access to the storage unit from another processor of the plurality of processors. (21) The multiprocessor system according to (20), wherein the processor has a buffer control element, and the buffer control element has the lock control mechanism.

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

【図1】本発明の原理による、複数のプロセッサと、3
段階記憶階層と、共有システム・バスとを有するマルチ
プロセッサ・システムの一例を示す図である。
FIG. 1 illustrates a plurality of processors and 3 according to the principles of the present invention.
FIG. 6 is a diagram illustrating an example of a multiprocessor system having a tiered storage hierarchy and a shared system bus.

【図2】本発明の原理による、図1のプロセッサに関す
るハードウェア構成の一例を示す図である。
2 is a diagram illustrating an example of a hardware configuration for the processor of FIG. 1 according to the principles of the present invention.

【図3】本発明のロック及びロック解除を実行する命令
の一例を示す図である。
FIG. 3 is a diagram showing an example of an instruction for executing locking and unlocking according to the present invention.

【図4】図2のバッファ制御要素の、特に本発明のロッ
ク/ロック解除機構において用いられる構成要素を示す
拡大図である。
4 is an enlarged view of the buffer control element of FIG. 2, particularly the components used in the lock / unlock mechanism of the present invention.

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

100 マルチプロセッサ・システム 102 共有メモリ 104 中間キャッシュ(L2キャッシュ) 106 共有バス 108 ローカル・キャッシュ(L1キャッシュ) 200 命令ユニット 202 実行ユニット 204 バッファ制御要素 100 multiprocessor system 102 shared memory 104 intermediate cache (L2 cache) 106 shared bus 108 local cache (L1 cache) 200 instruction unit 202 execution unit 204 buffer control element

───────────────────────────────────────────────────── フロントページの続き (72)発明者 スチーブン・ガードナー・グラッセン アメリカ合衆国12589、ニューヨーク州、 ウォールキル、シャーウッド・ドライブ 11 (72)発明者 パク−キン・マク アメリカ合衆国12603、ニューヨーク州、 パウキープジー、リッジウッド・テラス 13 (72)発明者 ウィリアム・ウー・シェン アメリカ合衆国12603、ニューヨーク州、 パウキープジー、ケラーハウス・ドライブ 18 (72)発明者 チュン−ラン・ケベン・シャム アメリカ合衆国12603、ニューヨーク州、 パウキープジー、サットン・パーク・ロー ド 31 (72)発明者 チャールズ・フランクリン・ウェブ アメリカ合衆国12603、ニューヨーク州、 パウキープジー、メイネッティ・ドライブ 4 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Stephen Gardner Grassen United States 12589, New York, Wallkill, Sherwood Drive 11 (72) Inventor Park-Kin Mc United States 12603, New York, Powkeepsie, Ridgewood・ Terrace 13 (72) Inventor William Wu Shen United States 12603, New York State, Pawkeepsie, Keller House Drive 18 (72) Inventor Chun-Ran Keben Sham United States 12603, New York State, Powkeepsie, Sutton Park Lord 31 (72) Inventor Charles Franklin Webs Pawkeepsie, 12603 New York, USA , Meinetti drive 4

Claims (21)

【特許請求の範囲】[Claims] 【請求項1】各々がローカル・キャッシュを具備する複
数のプロセッサと、 前記複数のプロセッサに接続されかつ該複数のプロセッ
サにより共有されるリソースをもつ中間キャッシュと、 共有バスを介して前記中間キャッシュへ接続されるメモ
リと、 記憶単位の排他的制御を獲得するべく前記複数のプロセ
ッサの中の1のプロセッサに設けられ、該排他的制御が
該記憶単位を用いて実行されている複数の命令に渡って
維持され、かつ該複数のプロセッサの中の別のプロセッ
サから該記憶単位へのアクセス要求があるとき以外は該
複数のプロセッサによる前記共有バスの利用を可能とす
る排他的制御の獲得手段とを有するマルチプロセッサ・
システム。
1. A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and to the intermediate cache via a shared bus. A memory to be connected and a processor of the plurality of processors to obtain exclusive control of a storage unit, the exclusive control is provided to a plurality of instructions executed by using the storage unit. And an exclusive control acquisition means for maintaining the shared bus by the plurality of processors except when there is a request for access to the storage unit from another processor of the plurality of processors. Having a multi-processor
system.
【請求項2】前記排他的制御が解除されるまで、前記1
のプロセッサの前記ローカル・キャッシュ内に前記複数
の命令を維持する手段を有する請求項1に記載のマルチ
プロセッサ・システム。
2. The above-mentioned 1 until the exclusive control is released.
2. The multiprocessor system of claim 1 including means for maintaining said plurality of instructions in said local cache of said processor.
【請求項3】前記複数の命令が前記中間キャッシュ内に
存在することなく前記1のプロセッサの前記ローカル・
キャッシュ内に存在できるように、前記複数の命令を維
持する手段が、該ローカル・キャッシュと該中間キャッ
シュとの間に存在するサブセット規則を緩和する手段を
有する請求項2に記載のマルチプロセッサ・システム。
3. The local instructions of the one processor without the instructions being present in the intermediate cache.
The multiprocessor system of claim 2, wherein the means for maintaining the plurality of instructions so that they can reside in a cache comprises means for relaxing a subset rule that exists between the local cache and the intermediate cache. .
【請求項4】前記記憶単位の排他的制御を解除する手段
を有する請求項1に記載のマルチプロセッサ・システ
ム。
4. The multiprocessor system according to claim 1, further comprising means for releasing exclusive control of the storage unit.
【請求項5】前記排他的制御の獲得手段と前記排他的制
御の解除手段とが、バッファ制御要素を有する請求項4
に記載のマルチプロセッサ・システム。
5. The exclusive control acquiring means and the exclusive control releasing means have a buffer control element.
The multiprocessor system described in.
【請求項6】各々がローカル・キャッシュを具備する複
数のプロセッサと、前記複数のプロセッサに接続されか
つ該複数のプロセッサにより共有されるリソースをもつ
中間キャッシュと、共有バスを介して前記中間キャッシ
ュへ接続されるメモリとを有するマルチプロセッサ・シ
ステムにおける記憶単位の排他的制御を獲得する方法で
あって、 前記複数のプロセッサの中の1のプロセッサが、指定さ
れた記憶単位の排他的制御を獲得するべくロック・オペ
レーションを開始するステップと、 前記1のプロセッサに前記記憶単位の排他的制御を与
え、該1のプロセッサにより実行される複数の命令に渡
って前記記憶単位をロック状態とし、前記複数のプロセ
ッサの中の別のプロセッサから該記憶単位へのアクセス
要求があるとき以外は該複数のプロセッサによる前記共
有バスの利用を可能とするべく前記ロック・オペレーシ
ョンを実行するステップとを含むマルチプロセッサ・シ
ステムにおける記憶単位の排他的制御の獲得方法。
6. A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and to the intermediate cache via a shared bus. A method of gaining exclusive control of a storage unit in a multiprocessor system having a memory connected thereto, wherein one processor obtains exclusive control of a designated storage unit. To initiate a lock operation, and to give the one processor exclusive control of the storage unit to lock the storage unit over a plurality of instructions executed by the one processor. The plurality of processors except when there is a request for access to the storage unit from another processor of the processors. Method of acquiring exclusive control of the storage unit in a multi-processor system and executing the locking operation so as to allow the shared bus utilization by the processor.
【請求項7】前記記憶単位が、前記ロック・オペレーシ
ョンを指定する命令に含まれるアドレスにより指定され
る請求項6に記載の方法。
7. The method of claim 6, wherein the storage unit is specified by an address contained in an instruction specifying the lock operation.
【請求項8】前記命令が、前記マルチプロセッサ・シス
テムの内部コードを含む請求項7に記載の方法。
8. The method of claim 7, wherein the instructions include internal code of the multiprocessor system.
【請求項9】前記記憶単位の排他的制御を解除するステ
ップを含む請求項6に記載の方法。
9. The method of claim 6 including the step of releasing exclusive control of the storage unit.
【請求項10】前記解除が、前記マルチプロセッサ・シ
ステムの内部コードを含む命令で指定される請求項9に
記載の方法。
10. The method of claim 9, wherein the release is specified by an instruction containing internal code of the multiprocessor system.
【請求項11】前記ロック・オペレーション及び前記解
除が、前記1のプロセッサのバッファ制御要素内で実行
される請求項9に記載の方法。
11. The method of claim 9, wherein the lock operation and the release are performed within a buffer control element of the one processor.
【請求項12】前記複数の命令が前記1のプロセッサの
ローカル・キャッシュ内にないとき、前記記憶単位の排
他的制御を獲得する前に、該記憶単位にアクセスするべ
く該複数の命令を該ローカル・キャッシュにフェッチす
るステップと、 前記排他的制御が解除されるまで前記ローカル・キャッ
シュ内の前記複数の命令を維持するステップとを含む請
求項6に記載の方法。
12. When the instructions are not in the local cache of the one processor, the instructions are accessed locally to access the storage unit before gaining exclusive control of the storage unit. 7. The method of claim 6 including fetching into cache and maintaining the plurality of instructions in the local cache until the exclusive control is released.
【請求項13】前記維持するステップが、前記複数の命
令が前記中間キャッシュ内に存在することなく前記ロー
カル・キャッシュ内に存在できるように、該ローカル・
キャッシュと該中間キャッシュとの間に存在するサブセ
ット規則を緩和するステップを含む請求項12に記載の
方法。
13. The local maintenance step such that the maintaining step allows the plurality of instructions to be present in the local cache without being present in the intermediate cache.
13. The method of claim 12, comprising relaxing the subset rules that exist between the cache and the intermediate cache.
【請求項14】前記ロック・オペレーションの実行の前
に、 前記ロック・オペレーションの実行中にアクセスされる
ことになるコマンド・レジスタ内にロック・コマンドを
配置するステップと、 前記中間キャッシュに接続された1又は複数のバッファ
内に置かれたデータを前記中間キャッシュに記憶するス
テップとを含む請求項6に記載の方法。
14. Placing a lock command in a command register that will be accessed during the execution of the lock operation prior to executing the lock operation; and connecting to the intermediate cache. Storing the data located in one or more buffers in the intermediate cache.
【請求項15】前記ロック・オペレーションを実行する
ステップが、 ロックされる前記記憶単位のアドレスをロック・レジス
タ内に記憶するステップと、 前記記憶単位の排他的制御を示すロック有効ビットをセ
ットするステップとを含む請求項6に記載の方法。
15. The step of performing the lock operation stores the address of the storage unit to be locked in a lock register, and sets a lock valid bit indicating exclusive control of the storage unit. 7. The method of claim 6, comprising:
【請求項16】各々がローカル・キャッシュを具備する
複数のプロセッサと、前記複数のプロセッサに接続され
かつ該複数のプロセッサにより共有されるリソースをも
つ中間キャッシュと、共有バスを介して前記中間キャッ
シュへ接続されるメモリとを有するマルチプロセッサ・
システムにおける記憶単位の排他的制御を獲得する方法
であって、 前記複数のプロセッサの1のプロセッサのローカル・キ
ャッシュ内に記憶単位のロックの前に記憶された該ロッ
クされる記憶単位に関する複数の命令を維持し、かつ該
ロックが解除されるまで該ローカル・キャッシュ内に該
複数の命令を留まらせるステップと、 前記1のプロセッサに前記記憶単位の排他的制御を与え
るロック・オペレーションを前記1のプロセッサ内で実
行するステップであって、該排他的制御が前記複数の命
令に渡って保持されるステップとを含むマルチプロセッ
サ・システムにおける記憶単位の排他的制御の獲得方
法。
16. A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and to the intermediate cache via a shared bus. A multiprocessor having a connected memory and
A method for gaining exclusive control of a storage unit in a system, the plurality of instructions relating to a locked storage unit stored prior to locking the storage unit in a local cache of a processor of the plurality of processors. And retaining the plurality of instructions in the local cache until the lock is released; and a lock operation for giving the one processor exclusive control of the storage unit to the one processor. A step of executing exclusive control, wherein the exclusive control is retained over the plurality of instructions, the method for obtaining exclusive control of a storage unit in a multiprocessor system.
【請求項17】前記実行するステップが、 ロックされる前記記憶単位のアドレスを指定するミリコ
ード命令を発生するステップと、 前記アドレスをロック・レジスタ内にロードしかつ前記
記憶単位がロックされていることを示すロック有効ビッ
トをセットするべくロック制御機構を用いるステップと
を含む請求項16に記載の方法。
17. The step of executing comprises generating a millicode instruction that specifies an address of the storage unit to be locked; loading the address into a lock register and locking the storage unit. Using a lock control mechanism to set a lock valid bit indicating that.
【請求項18】前記記憶単位の排他的制御を解除するス
テップを含み、該解除するステップが前記記憶単位がロ
ックされていないことを示すべくロック有効ビットをリ
セットするステップを含む請求項17に記載の方法。
18. The method of claim 17 including releasing exclusive control of the storage unit, the releasing step including resetting a lock valid bit to indicate that the storage unit is not locked. the method of.
【請求項19】各々がローカル・キャッシュを具備する
複数のプロセッサと、前記複数のプロセッサに接続され
かつ該複数のプロセッサにより共有されるリソースをも
つ中間キャッシュと、共有バスを介して前記中間キャッ
シュへ接続されるメモリとを有するマルチプロセッサ・
システムにおけるコード・ラインがローカルに存在する
ことを制御する方法であって、 1又は複数のコード・ラインを読取り専用に指示するス
テップと、 前記複数のプロセッサの中の1のプロセッサのローカル
・キャッシュに読取り専用として指示された前記1又は
複数のコード・ラインを維持するステップとを含み、 上記維持するステップが、前記1又は複数のコード・ラ
インが前記中間キャッシュに存在することなく前記ロー
カル・キャッシュ内に存在できるように前記ローカル・
キャッシュと前記中間キャッシュとの間にあるサブセッ
ト規則を緩和するステップを含むマルチプロセッサ・シ
ステムにおけるコード・ラインのローカル存在を制御す
る方法。
19. A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and to the intermediate cache via a shared bus. A multiprocessor having a connected memory and
A method of controlling the local presence of code lines in a system, the method comprising the steps of: directing one or more code lines to be read-only; Maintaining the one or more code lines designated as read-only in the local cache without the one or more code lines being present in the intermediate cache. Can exist in the local
A method of controlling the local presence of a code line in a multiprocessor system comprising the step of relaxing a subset rule between a cache and said intermediate cache.
【請求項20】各々がローカル・キャッシュを具備する
複数のプロセッサと、 前記複数のプロセッサに接続されかつ該複数のプロセッ
サにより共有されるリソースをもつ中間キャッシュと、 共有バスを介して前記中間キャッシュへ接続されるメモ
リと、 記憶単位の排他的制御を獲得するべく前記複数のプロセ
ッサの中の1のプロセッサに設けられ、該排他的制御が
該記憶単位に関して実行される複数の命令に渡って維持
され、かつ該複数のプロセッサの中の別のプロセッサか
ら該記憶単位へのアクセス要求があるとき以外は該複数
のプロセッサによる前記共有バスの利用を可能とするロ
ック制御機構とを有するマルチプロセッサ・システム。
20. A plurality of processors each having a local cache, an intermediate cache having resources shared by the plurality of processors and shared by the plurality of processors, and to the intermediate cache via a shared bus. A memory to be attached and a processor of the plurality of processors to obtain exclusive control of a storage unit, the exclusive control being maintained over a plurality of instructions executed for the storage unit. And a lock control mechanism which enables the plurality of processors to use the shared bus except when there is a request for access to the storage unit from another processor of the plurality of processors.
【請求項21】前記プロセッサがバッファ制御要素を有
し、該バッファ制御要素が前記ロック制御機構を有する
請求項20に記載のマルチプロセッサ・システム。
21. The multiprocessor system of claim 20, wherein the processor has a buffer control element, and the buffer control element has the lock control mechanism.
JP3821896A 1995-03-31 1996-02-26 Multiprocessor system and its exclusive control method Pending JPH08287022A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41455395A 1995-03-31 1995-03-31
US414553 1995-03-31

Publications (1)

Publication Number Publication Date
JPH08287022A true JPH08287022A (en) 1996-11-01

Family

ID=23641949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3821896A Pending JPH08287022A (en) 1995-03-31 1996-02-26 Multiprocessor system and its exclusive control method

Country Status (1)

Country Link
JP (1) JPH08287022A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122741A (en) * 2003-05-22 2007-05-17 Internatl Business Mach Corp <Ibm> Method to provide atomic update primitive in asymmetric heterogeneous multiprocessor environment
JP2011527788A (en) * 2008-07-10 2011-11-04 ロケティック テクノロジーズ リミテッド Efficient parallel computation of dependency problems
US8751211B2 (en) 2008-03-27 2014-06-10 Rocketick Technologies Ltd. Simulation using parallel processors
US9032377B2 (en) 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
US9128748B2 (en) 2011-04-12 2015-09-08 Rocketick Technologies Ltd. Parallel simulation using multiple co-simulators

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122741A (en) * 2003-05-22 2007-05-17 Internatl Business Mach Corp <Ibm> Method to provide atomic update primitive in asymmetric heterogeneous multiprocessor environment
US7814281B2 (en) 2003-05-22 2010-10-12 International Business Machines Corporation Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US8751211B2 (en) 2008-03-27 2014-06-10 Rocketick Technologies Ltd. Simulation using parallel processors
US10509876B2 (en) 2008-03-27 2019-12-17 Rocketick Technologies Ltd Simulation using parallel processors
JP2011527788A (en) * 2008-07-10 2011-11-04 ロケティック テクノロジーズ リミテッド Efficient parallel computation of dependency problems
US9032377B2 (en) 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
US9684494B2 (en) 2008-07-10 2017-06-20 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
US9128748B2 (en) 2011-04-12 2015-09-08 Rocketick Technologies Ltd. Parallel simulation using multiple co-simulators
US9672065B2 (en) 2011-04-12 2017-06-06 Rocketick Technologies Ltd Parallel simulation using multiple co-simulators

Similar Documents

Publication Publication Date Title
JP4764430B2 (en) Transaction-based shared data operations in a multiprocessor environment
US5574922A (en) Processor with sequences of processor instructions for locked memory updates
US4484267A (en) Cache sharing control in a multiprocessor
US6665783B2 (en) Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
US7073044B2 (en) Method and apparatus for sharing TLB entries
US5524233A (en) Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
US7165164B2 (en) Method and apparatus including heuristic for sharing TLB entries
US7213248B2 (en) High speed promotion mechanism suitable for lock acquisition in a multiprocessor data processing system
US5860126A (en) Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model
KR100264401B1 (en) Method and apparatus for processing memory-type information within a microprocessor
JP5764206B2 (en) Method, system, and program for executing diagnostic instructions for serializing processing
JP2675961B2 (en) Methods for locking pages in real memory
EP1984814B1 (en) Method and apparatus for enforcing memory reference ordering requirements at the l1 cache level
JPH05225061A (en) Chip for integrated circuit for providing real- time cache function
US20030041225A1 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
CN112970003A (en) Method and apparatus for implementing lock-free data structures
US6915395B1 (en) Active address content addressable memory
US7216202B1 (en) Method and apparatus for supporting one or more servers on a single semiconductor chip
JP3862959B2 (en) Microprocessor load / store instruction control circuit and load / store instruction control method
JPH06161893A (en) Method and system for access of memory
JP2008503821A (en) Method and system for invalidating writeback on atomic reservation lines in a small capacity cache system
JPH0567976B2 (en)
JP2019503009A (en) Vector atomic memory update instruction
US6973541B1 (en) System and method for initializing memory within a data processing system
JPH08287022A (en) Multiprocessor system and its exclusive control method