JPH05324572A - Atomic-access-controlled register device - Google Patents
Atomic-access-controlled register deviceInfo
- Publication number
- JPH05324572A JPH05324572A JP4282342A JP28234292A JPH05324572A JP H05324572 A JPH05324572 A JP H05324572A JP 4282342 A JP4282342 A JP 4282342A JP 28234292 A JP28234292 A JP 28234292A JP H05324572 A JPH05324572 A JP H05324572A
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- bit
- specific
- bits
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 複数ビットレジスタ内で1つないし複数の特
定ビットを設定ないしクリアするため確実な原子アクセ
スを可能にするコンピュータ記憶レジスタ・アーキテク
チャを開示する。
【構成】 実施例では、多くの一意的なアドレスが複数
のビットレジスタに割り当てられる。1つのアドレスは
読取りアドレス、1つのアドレスはクリアアドレス、第
3のアドレスは設定アドレスからなる。アドレス解読器
はレジスタに指定されたアドレスを、それぞれ関連読取
り、クリア、設定操作のためにそのレジスタだけがアク
セスされるように解読する。論理ゼロのレジスタ位置等
価バイナリ・パターンを有するデータと設定ないしクリ
アするレジスタの特定ビット位置に対応するものは、設
定ないしクリアアドレスと関連付けられる。解読された
アドレスと関連したデータの位置等価バイナリ値が論理
1であれば、レジスタ内の対応するビットは設定される
かクリアされる。さもなくばそのビットは不変のままと
なる。
(57) Abstract: A computer storage register architecture is disclosed that enables reliable atomic access to set or clear one or more specific bits in a multi-bit register. Configuration In the exemplary embodiment, many unique addresses are assigned to multiple bit registers. One address is a read address, one address is a clear address, and the third address is a set address. The address decoder decodes the address specified in a register so that only that register is accessed for associated read, clear, and set operations, respectively. Data having a register position equivalent binary pattern of logical zeros and those corresponding to particular bit positions in the register to be set or cleared are associated with the set or clear address. If the position equivalent binary value of the data associated with the decoded address is a logical one, the corresponding bit in the register is set or cleared. Otherwise the bit will remain unchanged.
Description
【0001】[0001]
【産業上の利用分野】本発明は一般にコンピュータシス
テム・ハードウエアに関し、特にコンピュータシステム
・プロセッサ内の制御装置と状況レジスタのハードウエ
ア・アーキテクチャに関する。FIELD OF THE INVENTION This invention relates generally to computer system hardware, and more particularly to the hardware architecture of controllers and status registers in computer system processors.
【0002】[0002]
【従来の技術】コンピュータシステムはしばしば、一時
的なデータの記憶ないし制御目的でレジスタを利用す
る。レジスタは通常、一般に1から4バイトに渡り複数
ビットの情報を同時に格納できるように構成されてい
る。コンピュータ・プロセッサで生成された論理ゼロや
1の形のデータがレジスタに格納することが出来、続い
てプロセッサで再読取りされる。コンピュータの操作を
制御する際、オペレーティング・システムではしばしば
複数ビットレジスタ内に格納されたビット集合中の単一
ビットを残りビットに影響を与えることなく修正するこ
とが必要になる。そのような場合、オペレーティング・
システムは読取り・修正・書込みサイクルを実行し、そ
れによりCPUは記憶レジスタ内に含まれる情報を読取
り、内容を修正し、続いて修正した内容をレジスタに再
び書き込む。読取り・変更・書込み操作により、プロセ
ッサは後のデータ処理ないし計算操作で必要になる特定
制御パラメータのビットを設定ないしクリアすることが
出来る。Computer systems often utilize registers for temporary data storage or control purposes. Registers are typically configured to store multiple bits of information simultaneously, typically over 1 to 4 bytes. Data in the form of logical zeros and ones generated by a computer processor can be stored in a register and then reread by the processor. In controlling the operation of a computer, operating systems often need to modify a single bit in a set of bits stored in a multi-bit register without affecting the remaining bits. In such cases, the operating
The system performs a read-modify-write cycle whereby the CPU reads the information contained in the storage register, modifies the contents, and then writes the modified contents back to the register. Read / modify / write operations allow the processor to set or clear the bits of certain control parameters that are needed in subsequent data processing or calculation operations.
【0003】読取り・修正・書込みサイクルの実行は、
通常単一プロセッサシステムで用いられる。しかし1つ
以上のマスタ装置がレジスタにアクセスする等しい機会
を持つ多重プロセッサ環境では、1つのマスタがオーバ
ーライトしたり、修正、変更、あるいは別のマスタ装置
により先に格納されたレジスタの内容と接続したりする
可能性が実質的にある。図1を簡単に参照すると、記憶
レジスタを共用する2つのプロセッサが示されており、
ここで両方のプロセッサは単一レジスタ上で読取り・修
正・書込みサイクルを並列に行っている。図1から、マ
スタBがその最終書込み操作を完了すると、マスタBは
マスタAの書込み操作を無効になすることが分かる。多
重プロセッサシステムの重要な要件は、特定マスタによ
り格納された情報は別のマスタにより後に無効にされる
ことはないということである。特定レジスタの内容の状
態は、そのような内容をそのレジスタに格納するように
したマスタ装置と一致しているが、これは「コヒーレン
ス」として知られている。1つ以上のマスタがレジスタ
内に格納された情報を修正する機会を持つ多重プロセッ
サ環境でのコヒーレンスは、おもにキャッシュ・メモリ
・アーキテクチャに関して問題となるものである。キャ
ッシュ・メモリを組み込んだ多重プロセッサ・アーキテ
クチャでは、特定マスタに関するキャッシュの一貫性は
特に重要である。The execution of read / modify / write cycles is
Usually used in single processor systems. However, in a multiprocessor environment where more than one master device has equal opportunity to access the registers, one master may overwrite, modify, modify, or connect to the contents of a register previously stored by another master device. There is a substantial possibility that Briefly referring to FIG. 1, two processors sharing storage registers are shown,
Here, both processors are performing read / modify / write cycles in parallel on a single register. It can be seen from FIG. 1 that when master B completes its final write operation, master B invalidates master A's write operation. An important requirement of multiprocessor systems is that the information stored by a particular master cannot later be invalidated by another master. The state of the contents of a particular register is consistent with the master device that intended to have such contents stored in that register, which is known as "coherence." Coherence in a multiprocessor environment, where one or more masters have the opportunity to modify the information stored in the registers, is primarily a concern with cache memory architectures. In multiprocessor architectures incorporating cache memory, cache coherency for a particular master is especially important.
【0004】従来技術では、キャッシュ・コヒーレンス
問題を防ぐ主要な方法は、図2に示すようにいわゆる
「相互排他ロック」を呼び出すことである。相互排他ロ
ックは、ソフトウエアで特定マスタが特定レジスタにア
クセスする前に、そのレジスタと交信して制御すること
をアクセスするマスタのみに許可する信号ないしフラッ
グの所有権を得るセマフォである。相互排他ロックは一
般にフラッグを含むハードウエア・レジスタと交換操作
を実行しているマスタにより呼び出される。マスタはフ
ラッグの内容を読取り、その後一部非ゼロ値をレジスタ
にロードする。その際、読取り、書込みの両操作は、交
換操作の間にそのレジスタに他のマスタが読取り、書込
みが出来ないようにして行われる。マスタは次に交換中
にレジスタから読み取った内容の値をテストし、即ちレ
ジスタ内容が「0」に等しければロックは「フリー」で
あったことになり、マスタはレジスタ内容が一部非ゼロ
に等しければ、ロックは「フリー」でないと宣言するこ
とが出来、マスタはそのロックを使用することが否定さ
れる。マスタは一般的に交換とテスト操作をロックが
「フリー」であることを示すテスト値が「0」になるま
で行い続ける。ロックはロックを制御するマスタが
「0」をフラッグ・レジスタに書き込むことにより解除
される。例えば図2に示すように、ロックはマスタが交
換操作を実行するときに設定され、マスタは一部の非ゼ
ロ値<lock_busy>を格納する。次にマスタは
ロックレジスタに先に格納された内容の値を基準値<l
ock_free>に対してテストする。先に格納され
た内容が<lock_free>と等しければ、マスタ
はそれがロックの所有者であると判定する。In the prior art, the main way to prevent the cache coherence problem is to call a so-called "mutually exclusive lock" as shown in FIG. A mutual exclusion lock is a semaphore that acquires the ownership of a signal or flag that allows only the accessing master to communicate with and control a specific register before the specific master is accessed by software. Mutual exclusion locks are generally called by the master performing a swap operation with hardware registers containing flags. The master reads the contents of the flag and then partially loads the register with a non-zero value. At that time, both read and write operations are performed such that another master cannot read or write to the register during the exchange operation. The master next tests the value of the contents read from the register during the exchange, that is, if the register contents are equal to "0", the lock was "free" and the master writes some non-zero register contents. If they are equal, the lock can be declared not "free" and the master is denied to use it. The master generally continues the replacement and test operation until the test value indicating the lock is "free" is "0". The lock is released by the master controlling the lock writing a "0" to the flag register. For example, as shown in FIG. 2, the lock is set when the master performs a swap operation and the master stores some non-zero value <lock_busy>. Next, the master uses the value of the content previously stored in the lock register as the reference value <l
test for ock_free>. If the previously stored content is equal to <lock_free>, the master determines that it is the owner of the lock.
【0005】[0005]
【発明が解決しようとする課題】相互排他ロックの制御
により、プロセッサは格納された情報は後に別のプロセ
ッサによる予期しないアクセスにより破壊されるかも知
れないという懸念無しにレジスタにアクセスして情報を
格納することが出来る。更にフラッグを設定することに
よりロックを主張したマスタだけが、フラッグをクリア
することによりそのロックを解除することが出来る。相
互排他ロックは従来技術でよく知られており、ロック機
能をもたらすソフトウエア・アルゴリズムはいくつか存
在する。多重プロセッサシステムでは、そのような相互
排他ロックが多く存在し、オペレーティング・システム
・ソフトウエアはそのようなロックを頻繁に用いて、重
要なコードが何時実行されるか、あるいは重要なレジス
タが何時アクセスされるかを示している。しかし相互排
他ロックを使用する場合は、ロック機能をもたらすため
にかなりの追加処理時間並びに追加コード・スペースを
必要とする。速度が重要な演算では、複数ロックを使用
することは実質的にシステムの性能を阻害したり、落と
すことになる得る。以下に説明するように、本発明は従
来技術で提供された時間集中的なソフトウエア・インタ
ロック・メカニズムを必要とせずに、多重プロセッサ環
境のシステム記憶レジスタ内に格納されたデータとマス
タとの間のコヒーレンスを確保する単純なレジスタ・ア
ーキテクチャを開示する。更に、本発明により、共用レ
ジスタの1つないし複数の個々のビットにアクセスし
て、従来技術用にソフトウエア・インタロックを必要と
せずに、直接的活動時に修正することが出来る。The control of a mutual exclusion lock allows a processor to access a register and store information without fear that the stored information may later be corrupted by an unexpected access by another processor. You can do it. Furthermore, only the master who claimed the lock by setting the flag can unlock the lock by clearing the flag. Mutual exclusion locks are well known in the art and there are several software algorithms that provide the locking function. In a multiprocessor system, there are many such mutual exclusion locks, and operating system software frequently uses such locks to determine when important code is executed or when important registers are accessed. Is shown. However, the use of mutual exclusion locks requires significant additional processing time as well as additional code space to provide the locking function. For speed-critical operations, using multiple locks can substantially impede or degrade system performance. As will be described below, the present invention eliminates the need for the time-intensive software interlock mechanism provided in the prior art to store data stored in system storage registers in a multiprocessor environment with a master. A simple register architecture that ensures coherence between is disclosed. Further, the present invention allows one or more individual bits of a shared register to be accessed and modified during direct activity without the need for software interlocks as in the prior art.
【0006】[0006]
【課題を解決するための手段】本発明は多重プロセッサ
環境内のレジスタ構造のための方法と装置を提供するも
のであり、プロセッサは間違ったマスタによる原子アク
セスレジスタの意図しないアクセスを防ぎながら、ソフ
トウエア・インタロック無しにレジスタ内の1つないし
複数の特定ビットを設定又はクリアするために、共用レ
ジスタに原子的にアクセスする。複数の独自のアドレス
が複数ビット原子アクセスレジスタに割り当てられてい
る。実施例では、3つのアドレスが各々の原子アクセス
レジスタに割り当てられている。1つのアドレスはクリ
ア・アドレス、第2のアドレスはセット・アドレス、第
3のアドレスは読取りアドレスである。各々のアドレス
は他の全てのアドレスから異なっている。アドレス解読
器は、プロセッサがレジスタアクセス命令を発すると
き、各々の原子キャッシュレジスタに指定されたアドレ
スを解読する。アドレス解読器により解読されると、各
々のアドレスは同一の物理レジスタを指し、2つのアド
レスは「疑似レジスタ」を指す。論理ゼロの位置等価バ
イナリ・パターンを持つデータと設定ないしクリアする
物理レジスタの特定ビット位置に等価なものは、それぞ
れ設定及びクリア・アドレスと連関される。読取りアド
レスとはデータは連関されない。原子アクセスレジスタ
内の各々のビットは、設定、クリア、選択、システム・
クロック入力及び出力イネーブルを持つフリップフロッ
プで形成されている。特定フリップフロップ用の選択入
力は、解読されたアドレスと関連した位置等価バイナリ
・データにしたがって活性化される。変更する特定ビッ
トに対応するデータが論理1であれば、レジスタ内にそ
のデータビットを含むフリップフロップが選択される。
一度選択されると、選択されたビットを含むレジスタと
関連したアドレスがそれぞれ設定ないしクリア機能から
なるかどうかにより、ビットが設定ないしクリアされ
る。アクセスされた物理レジスタの残りのビットは同様
に、対応する疑似レジスタにアクセスするアドレスと関
連した残りの位置等価バイナリデータにしたがって変更
される。レジスタの各々のフリップフロップの出力可能
は、発せられたアドレスが読取りアドレスであるときレ
ジスタの各々のビットの内容をアクセスするプロセッサ
に送る。SUMMARY OF THE INVENTION The present invention provides a method and apparatus for a register structure in a multi-processor environment in which the processor protects against unintended access of an atomic access register by the wrong master while providing soft software. Atomically access a shared register to set or clear one or more specific bits in the register without a wear interlock. Multiple unique addresses are assigned to the multi-bit atomic access register. In the exemplary embodiment, three addresses are assigned to each atomic access register. One address is the clear address, the second address is the set address, and the third address is the read address. Each address is different from all other addresses. The address decoder decodes the address specified in each atomic cache register when the processor issues a register access instruction. When decoded by the address decoder, each address points to the same physical register and the two addresses point to "pseudo registers". Data having a position-equivalent binary pattern of logical zeros and the equivalent of specific bit positions in the physical register to be set or cleared are associated with the set and clear addresses respectively. No data is associated with the read address. Each bit in the atomic access register is set, cleared, selected, system
It is formed by a flip-flop having a clock input and an output enable. The select input for a particular flip-flop is activated according to the position equivalent binary data associated with the decoded address. If the data corresponding to the particular bit to be modified is a logic one, then the flip-flop containing that data bit in the register is selected.
Once selected, the bit is set or cleared depending on whether the address associated with the register containing the selected bit is a set or clear function, respectively. The remaining bits of the physical register accessed are also modified according to the remaining position equivalent binary data associated with the address accessing the corresponding pseudo register. The output enable of each flip-flop of the register sends the contents of each bit of the register to the accessing processor when the issued address is a read address.
【0007】[0007]
【実施例】多重プロセッサ・コンピュータシステムにお
いて、各々のプロセッサが、ソフトウエア・インタロッ
クを必要とせずに1つないし複数の特定ビットを設定な
いしクリアするために共用レジスタに原子的にアクセス
するレジスタ・アーキテクチャを開示する。以下の説明
では、本発明の完全な理解をもたらすために説明のため
に特定の数、時間、信号などを述べるが、当業者には本
発明はそれらの特定の詳細なしに実施することが出来る
ことが明かとなろう。他の例では、よく知られた回路や
装置をブロック図形式で示し、本発明を不必要に曖昧に
しないようにしている。本発明は多くの実施例で実施す
ることが出来る。以下には2つの特定の実施例を詳しく
説明するが、多くの別の実施例で同一結果をもたらすこ
とが明かとなろう。本発明の教示を取り入れた記憶レジ
スタ・アーキテクチャは、コンピュータシステム内で何
処でも実施できることが予測される。ここで好ましいと
されるように、ビットの設定ないしクリアを可能にする
レジスタは、割り込みステアリング・アーキテクチャ内
で実施される。本発明はどの様な多重プロセッサ・コン
ピュータシステムでも使用することが出来るが、カリフ
ォルニア州、マウンテンビューのサンシステムズ社によ
り製造された多重プロセッサ・コンピュータで機能する
ことを目的としている。以下に説明する本発明は、先に
挙げた継続出願、特に「動的ステアリング無向割込み」
の名称の継続出願番号 と共に機能することを意図
している。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In a multiprocessor computer system, each processor atomically accesses a shared register to set or clear one or more specific bits without the need for software interlocks. Disclose the architecture. Although the following description sets forth specific numbers, times, signals, etc. for purposes of explanation in order to provide a thorough understanding of the present invention, those of ordinary skill in the art will be able to practice the invention without those specific details. It will be clear. In other instances, well-known circuits and devices are shown in block diagram form in order not to unnecessarily obscure the present invention. The present invention can be implemented in many embodiments. Two specific embodiments are described in detail below, but it will be apparent that many other embodiments will give the same results. It is envisioned that a storage register architecture incorporating the teachings of the present invention may be implemented anywhere within a computer system. As preferred herein, the registers that allow bits to be set or cleared are implemented within the interrupt steering architecture. The present invention can be used with any multiprocessor computer system, but is intended to function with a multiprocessor computer manufactured by Sun Systems, Inc. of Mountain View, California. The present invention that describes the following, the continuation application listed above, in particular "dynamic steering undirected interrupts"
It is intended to work with a continuing application number in the name of.
【0008】ここで図3を参照すると、2つの原子アク
セスレジスタを示すブロック図が示されている。しかし
特定の多重プロセッサ・コンピュータシステム設計で
は、どの様な数の原子アクセスレジスタをも実施するこ
とが出来る。図3で、複数ビットレジスタ10が既知の方
法で形成されている。レジスタ10は複数の個々のビット
15により形成されている。レジスタ10内に含まれるビッ
ト15の数に関しては、実際上の制限はなく、レジスタ10
は一般的にコンピュータシステム・バス(図示せず)が
収容できるだけ多くのビットを含んでいる。実施例では
レジスタ10は32ビットワイドである。レジスタ10と関連
したものに複数アドレス25がある。図3に示すように、
個々のアドレスのADDR0,ADDR4、ADDR8
はすべてレジスタ10を指している。プロセッサ(図示せ
ず)によって実行され、アドレス解読器(図示せず)に
より解読されると、アドレス25はプロセッサにレジスタ
10にアクセスすることを許可する。プロセッサとアドレ
ス解読器は、従来技術で一般に知られるように形成され
ている。どのアドレス25がプロセッサにより実行される
かによって、レジスタ10に対する活動が異なることに留
意することが重要である。レジスタ10の詳細も解読器の
実施方法による。説明のためにアドレス25に対して特定
のアドレス値を割り当てているが、各々のアドレスが一
意的であり、解読可能で、全体的なシステム・アーキテ
クチャと一致するならば、本発明内ではどの様なアドレ
ス値でも機能することが理解されよう。Referring now to FIG. 3, there is shown a block diagram showing two atomic access registers. However, in any particular multiprocessor computer system design, any number of atomic access registers may be implemented. In FIG. 3, the multi-bit register 10 is formed in a known manner. Register 10 has multiple individual bits
It is formed by 15. There is no practical limit to the number of bits 15 contained in register 10, register 10
Typically contains as many bits as a computer system bus (not shown) can accommodate. In the exemplary embodiment, register 10 is 32 bits wide. Associated with register 10 are multiple addresses 25. As shown in FIG.
ADDR0, ADDR4, ADDR8 of each address
All refer to register 10. Address 25, when executed by a processor (not shown) and decoded by an address decoder (not shown), registers with the processor.
Allow access to 10. The processor and address decoder are formed as is generally known in the art. It is important to note that the activity on register 10 depends on which address 25 is executed by the processor. The details of register 10 also depend on how the decoder is implemented. Although a specific address value has been assigned to address 25 for purposes of illustration, how each address is unique, decodable, and consistent with the overall system architecture within the invention It will be appreciated that any address value will work.
【0009】レジスタ10を構成する個々のビット15に対
する活動は、アドレス命令がプロセッサにより実行され
るときに、各々のアドレス25と関連したデータ27により
制御される。特にレジスタ10内の個々のビット16は、ア
クセスするプロセッサにより実行されるアドレス命令内
の特定アドレス25と関連したデータ27のバイナリ表現の
位置等価ビット28で表すことが出来る。即ち、実行され
る特定のアドレス25と関連したデータ27のバイナリ・デ
ータ等価内の位置等価ビット28位置は、レジスタ10内の
物理的ビット16が作用されるかどうかを制御する。レジ
スタ10内の個々のビット15を制御する際の関連データ27
と関連したアドレス25の操作を以下の節で更に詳細に説
明する。図2を更に参照すると、レジスタ10上で読取り
操作を行うために割り当てられたアドレス25はADDR
0である。プロセッサにより実行され、アドレス解読器
により解読されると、ADDR0はレジスタ10を指し示
し、プロセッサはレジスタ10内に含まれる全てのビット
15のデータを読取る。レジスタ10内のビット15は読取り
操作中に変更されないので、アドレス25が読取りを行う
ために割り当てられたとき、アドレス25と関連したデー
タ27はない。クリア操作を行うために割り当てられるア
ドレスはADDR4である。プロセッサにより実行され
て解読されると、ADDR4もレジスタ10を指し示す。
しかし読取り操作と関連したADDR0アドレスとは異
なり、ADDR4アドレスはクリアするビット15をマス
クするデータ27と関連している。次にプロセッサはレジ
スタ10の特定ビット15をADDR4と関連したデータ27
と等価のバイナリの位置等価ビット28にしたがってクリ
アする。位置等価ビット28が論理1であるならば、位置
等価ビット28に対応したビット16は論理0に設定され
る。ビット16は、位置等価ビット28が論理0ならば、不
変のままとなる。最後の設定操作を行うために割り当て
られるアドレス25はADDR8である。プロセッサによ
り実行され、解読されると、ADDR8もレジスタ10を
指し示す。上記のADDR4の場合のように、データ27
はアドレスADDR8と関連する。プロセッサはレジス
タ10の各々のビット16をアドレスADDR8と関連した
データ27とバイナリ等価の位置等価ビット22にしたがっ
て設定する。位置等価ビット22が論理1ならば、位置等
価ビット22に対応するビット16は論理1に設定される。
位置等価ビット22が論理0ならば、ビット16は不変のま
まとなる。The activity on the individual bits 15 that make up register 10 is controlled by the data 27 associated with each address 25 when the address instruction is executed by the processor. In particular, each bit 16 in register 10 can be represented by a position equivalent bit 28 of the binary representation of data 27 associated with a particular address 25 in the address instruction executed by the accessing processor. That is, the position equivalent bit 28 position within the binary data equivalent of the data 27 associated with the particular address 25 being executed controls whether the physical bit 16 within register 10 is actuated. Associated data in controlling individual bit 15 in register 10 27
The operation of address 25 associated with is described in more detail in the following sections. Still referring to FIG. 2, the address 25 assigned to perform a read operation on register 10 is ADDR.
It is 0. When executed by the processor and decoded by the address decoder, ADDR0 points to register 10 and the processor causes all bits contained in register 10 to be
Read 15 data. Since bit 15 in register 10 is not modified during a read operation, there is no data 27 associated with address 25 when address 25 is assigned to do the read. The address assigned to perform the clear operation is ADDR4. ADDR4, when executed and decoded by the processor, also points to register 10.
However, unlike the ADDR0 address associated with a read operation, the ADDR4 address is associated with data 27 masking bit 15 to clear. The processor then sets the specific bit 15 of register 10 to the data 27 associated with ADDR4.
Clear according to the binary position equivalent bit 28, which is equivalent to. If position equivalent bit 28 is a logical one, bit 16 corresponding to position equivalent bit 28 is set to a logical zero. Bit 16 remains unchanged if position equivalent bit 28 is a logical zero. The address 25 assigned to perform the final setting operation is ADDR8. When executed by the processor and decoded, ADDR8 also points to register 10. As in the case of ADDR4 above, data 27
Is associated with the address ADDR8. The processor sets each bit 16 of register 10 according to position equivalent bit 22 which is the binary equivalent of data 27 associated with address ADDR8. If position equivalent bit 22 is a logical one, bit 16 corresponding to position equivalent bit 22 is set to a logical one.
If position equivalent bit 22 is a logical 0, then bit 16 remains unchanged.
【0010】レジスタ11を構成する個々のビット17に対
する活動は、プロセッサによりアドレス命令が実行され
るとき、アドレス26の各々に関連したデータ27により制
御される。特に、レジスタ11内の個々のビット18は、ア
クセスするプロセッサにより実行される特定アドレス26
と関連したデータ27のバイナリ表現の位置等価ビット29
で表すことが出来る。即ち、実行される特定のアドレス
26と関連したデータ27のバイナリ・データ等価の位置等
価ビット29の位置は、レジスタ11内の物理的ビット18が
作用されるかどうかを制御する。レジスタ11内の個々の
ビット17を制御する際の関連データ27と関連したアドレ
ス26の操作を以下の節で更に詳細に説明する。図3を更
に参照すると、レジスタ11上で読取り操作を行うために
割り当てられたアドレス26はADDRCである。プロセ
ッサにより実行され、アドレス解読器により解読される
と、ADDRCはレジスタ11を指し示し、プロセッサは
レジスタ11内に含まれる全てのビット17のデータを読取
る。アドレス26が読取りを行うために割り当てられたと
き、レジスタ11内のビット17は読取り操作中に変更され
ないので、アドレス26と関連したデータ27はない。クリ
ア操作を行うために割り当てられるアドレスはADDR
10である。プロセッサにより実行されて解読されると、
ADDR410レジスタ11を指し示す。しかし読取り操作
と関連したADDRCアドレスとは異なり、ADDR10
アドレスはクリアするビット17をマスクするデータ27と
関連している。次にプロセッサはレジスタ11の特定ビッ
ト17をADDR10と関連したデータ27のバイナリ等価の
位置等価ビット29にしたがってクリアする。位置等価ビ
ット29が論理1であるならば、位置等価ビット29に対応
したビット18は論理0に設定される。ビット17は、位置
等価ビット29が論理0ならば、不変のままとなる。最後
に設定操作を行うために割り当てられるアドレス26はA
DDR14である。プロセッサにより実行され解読される
と、ADDR14もレジスタ11を指し示す。上記のADD
R10の場合のように、データ27はアドレスADDR14と
関連する。プロセッサはレジスタ11の各々のビット18を
アドレスADDR14と関連したデータ27のバイナリ等価
の位置等価ビット23にしたがって設定する。位置等価ビ
ット23が論理1ならば、位置等価ビット23に対応するビ
ット18は論理1に設定される。位置等価ビット23が論理
0ならば、ビット18は不変のままとなる。The activity on the individual bits 17 that make up register 11 is controlled by the data 27 associated with each of the addresses 26 when the address instruction is executed by the processor. In particular, each bit 18 in register 11 contains a specific address 26 that is executed by the accessing processor.
Position equivalent bit 29 of the binary representation of the data 27 associated with
Can be expressed as That is, the specific address to be executed
The binary data equivalent position of the data 27 associated with 26 The position of the equivalent bit 29 controls whether the physical bit 18 in register 11 is actuated. The operation of address 26 associated with associated data 27 in controlling individual bits 17 in register 11 is described in further detail in the following sections. Still referring to FIG. 3, the address 26 assigned to perform a read operation on register 11 is ADDRC. When executed by the processor and decoded by the address decoder, the ADDRC points to register 11 and the processor reads all bits 17 of the data contained in register 11. When address 26 is assigned to do a read, there is no data 27 associated with address 26 because bit 17 in register 11 is not modified during the read operation. The address assigned to perform the clear operation is ADDR
Is 10. Once executed and decrypted by the processor,
Points to ADDR 410 register 11. However, unlike the ADDRC address associated with a read operation, ADDR10
The address is associated with data 27 that masks bit 17 to clear. The processor then clears specific bits 17 of register 11 according to the binary equivalent position equivalent bit 29 of data 27 associated with ADDR 10. If position equivalent bit 29 is a logical one, bit 18 corresponding to position equivalent bit 29 is set to a logical zero. Bit 17 remains unchanged if position equivalent bit 29 is a logical zero. The address 26 assigned for the last setting operation is A
It is DDR14. When executed and decoded by the processor, ADDR 14 also points to register 11. ADD above
As in R10, data 27 is associated with address ADDR14. The processor sets each bit 18 of register 11 according to the binary equivalent position equivalent bit 23 of data 27 associated with address ADDR14. If the position equivalent bit 23 is a logical one, the bit 18 corresponding to the position equivalent bit 23 is set to a logical one. If the position equivalence bit 23 is a logical 0, then bit 18 remains unchanged.
【0011】ここで図4を参照すると、Nビット原子ア
クセスレジスタ12の実施を示すブロック図が示されてい
る。図4で、レジスタ12のフリップフロップ30は「n番
目」のビットを格納する。フリップフロップ30は「設
定」、「クリア」、「選択」、「クロック」の4つの入
力を持っている。レジスタ12と関連しているのが、アド
レス解読器35である。アドレス解読器35は既知の設計を
持ち、既知の方法で実施されるハードウエア解読器で、
アドレス回線用の適切な入力並びに有効な読取りないし
書込み操作が進行中であることを示す信号を受け取るた
めに「読取りイネーブル(RD−EN)」、「書込みイ
ネーブル(WR−EN)」入力を持っている。アドレス
解読器35はそれぞれフリップフロップ30の設定、クリア
入力とレジスタ12を含む各々のフリップフロップの設
定、クリア入力に接続された「設定」、「クリア」の2
つの入力を持っている。アドレス解読器35の読取り出力
は、フリップフロップ30及びレジスタ12を構成する全て
のフリップフロップの出力イネーブル(OE)入力に接
続されている。レジスタ12と関連したアドレスサイクル
中及び読取り操作が行われていることを示すプロセッサ
(図示せず)からの適切な信号が存在する間、出力イネ
ーブルはアサートされる。図3、4に示すように、フリ
ップフロップ30の選択入力は、アドレス25と関連したデ
ータ27から導出され、特にフリップフロップ30と関連し
たデータ27の位置等価バイナリ表現から導出される。フ
リップフロップ30とアドレス解読器35のクロック入力
は、コンピュータ内に分散されたシステムクロック信号
から取っている。Referring now to FIG. 4, a block diagram illustrating an implementation of the N-bit atomic access register 12 is shown. In FIG. 4, the flip-flop 30 of the register 12 stores the "nth" bit. The flip-flop 30 has four inputs of “setting”, “clear”, “select”, and “clock”. Associated with register 12 is address decoder 35. The address decoder 35 is a hardware decoder having a known design and implemented in a known manner,
Has "Read Enable (RD-EN)", "Write Enable (WR-EN)" inputs to receive the appropriate inputs for the address lines as well as a signal indicating that a valid read or write operation is in progress. There is. The address decoder 35 has two settings, "setting" and "clear", which are connected to the settings of the flip-flop 30, the clear input and the setting of each flip-flop including the register 12, and the clear input.
Have two inputs. The read output of address decoder 35 is connected to the output enable (OE) inputs of flip-flop 30 and all flip-flops that make up register 12. The output enable is asserted during the address cycle associated with register 12 and while there is an appropriate signal from the processor (not shown) indicating that a read operation is taking place. As shown in FIGS. 3 and 4, the select input of flip-flop 30 is derived from data 27 associated with address 25, and in particular the position equivalent binary representation of data 27 associated with flip-flop 30. The clock inputs of flip-flop 30 and address decoder 35 are taken from the system clock signal distributed within the computer.
【0012】作動の際は、アドレス回線上に表れるアド
レスはアドレス解読器35により制御されるレジスタ12と
対応するとアドレス解読器35が判定すると、アドレス解
読器35はアドレス25と関連したデータ27により判定され
るように、個々の設定ないしクリア、読取りビットを0
からNに設定する。図4に示すレジスタ12への特定の適
用では、フリップフロップ30への選択入力が図3に示す
ように解読されたそれぞれアドレスADDR4とADD
R8と関連したデータ27内の「n番目」の位置等価ビッ
ト28と22により起動される。0からNの全てのビット
は、アドレスADDR0と共に読取り命令が発せられた
ときに読み取られる。先の節で説明したように、本発明
で開示した設定ないしクリア原子アクセスアーキテクチ
ャは、本質的にその教示にしたがって構成されたレジス
タに対して「疑似レジスタ」機能を実施するものであ
る。疑似レジスタは一般に仮想的な非物理的記憶位置を
指すことを想起すべきである。疑似レジスタは、対象デ
ータを実際に格納する物理的レジスタに対して割り当て
られるアドレス以外のアドレスにより識別することが出
来る。従ってハードウエア内に物理的レジスタが1つし
か存在しなくとも、物理的レジスタはレジスタで複数の
機能を果たすことを可能にする複数のアドレスにより識
別することが出来る。In operation, when the address decoder 35 determines that the address appearing on the address line corresponds to the register 12 controlled by the address decoder 35, the address decoder 35 determines by the data 27 associated with the address 25. Set or clear individual read bits to 0 as
To N. In the particular application to register 12 shown in FIG. 4, the select inputs to flip-flop 30 are decoded as shown in FIG. 3 to address ADDR4 and ADD, respectively.
It is activated by the "nth" position equivalent bits 28 and 22 in the data 27 associated with R8. All bits 0 to N are read when a read command is issued with the address ADDR0. As explained in the previous section, the set or clear atomic access architecture disclosed in the present invention essentially implements a "pseudo register" function for registers constructed in accordance with its teachings. It should be recalled that a pseudo register generally refers to a virtual non-physical storage location. The pseudo register can be identified by an address other than the address assigned to the physical register that actually stores the target data. Thus, even if there is only one physical register in the hardware, the physical register can be identified by multiple addresses that allow the register to perform multiple functions.
【0013】ここで図7によって、レジスタビットの読
取り、設定、クリアを制御するアドレス及び関連データ
の特定の例を説明する。図7には、読取り、書込みコマ
ンドと関連したアドレスとデータが示されている。更に
図7には、アドレスにより指示された特定レジスタ(図
示せず)の最終レジスタ内容が示されている。図7で例
示目的で、レジスタは4ビットレジスタと想定してい
る。図7で、4ビットレジスタの内容を構成するバイナ
リデータは、最初は1とゼロの任意の組合せである。レ
ジスタ内の全てのビット位置をクリアすることが最初に
望まれると想定する。レジスタのビットをクリアするた
め、オペレーティング・システムは図3に関して上記で
説明した書込み−クリア操作に割り当てられたアドレス
即ちADDR4を用いて、レジスタに書込みを行う。物
理的レジスタ内の特定のバイナリ位置をバイナリデータ
値の等価ビット位置に関連付ける本発明によれば、バイ
ナリ表現の位置等価ビットが論理1に設定されたとき、
特定ビットが選択される。従ってレジスタ内の全てのビ
ット位置をクリアするには、全ての4ビット位置を選択
する必要がある。全ての4ビットを選択するには、デー
タ表現の全ての位置等価バイナリビットを論理1に設定
する必要がある。4ビットレジスタに付いては、バイナ
リデータ表現は「1111」となる。バイナリ1111
は16進表記ではFと等価である。従って4ビットレジス
タ内の全てのビット位置をクリアするには、制御プロセ
ッサにより実行される合成命令は、WRT ADDR4
FHとなる。Referring now to FIG. 7, a specific example of addresses and associated data that controls the reading, setting and clearing of register bits will be described. FIG. 7 shows the addresses and data associated with the read and write commands. Further, FIG. 7 shows the final register contents of the specific register (not shown) designated by the address. For purposes of illustration in FIG. 7, registers are assumed to be 4-bit registers. In FIG. 7, the binary data forming the contents of the 4-bit register is initially an arbitrary combination of 1 and zero. Suppose it is initially desired to clear all bit positions in the register. To clear the bits in the register, the operating system writes to the register using the address or ADDR4 assigned to the write-clear operation described above with respect to FIG. According to the present invention, which associates a particular binary position in a physical register with the equivalent bit position of a binary data value, when the position equivalent bit of the binary representation is set to a logical one,
A specific bit is selected. Therefore, to clear all bit positions in the register, all 4 bit positions must be selected. Selecting all four bits requires setting all position equivalent binary bits in the data representation to logic ones. For a 4-bit register, the binary data expression is "1111". Binary 1111
Is equivalent to F in hexadecimal notation. Therefore, to clear all bit positions in the 4-bit register, the composite instruction executed by the control processor is WRT ADDR4
It becomes FH.
【0014】遂行する次の操作は、レジスタ内の特定ビ
ットを設定するものと想定する。更に設定するビットは
最上位ビットであると想定する。レジスタ内に最上位ビ
ットを設定するには、「1000」のバイナリ表現が要
求される。図3と上記の説明から、設定コマンドと関連
したアドレスはアドレスADDR8となる。従ってレジ
スタの最上位ビットを設定する際、合成命令はWRT
ADDR8 8Hとなる。更に次の操作は、レジスタ内
の下から2番目の最下位ビットを設定することであると
する。ここでも設定するアドレスはADDR8である。
下から2番目の最下位ビットを設定してアドレスADD
R8と関連したデータは、「0010」ないし2Hに等
しいデータとなる。従ってレジスタ内で下から2番目の
最下位ビットを設定する合成命令はWRT ADDR8
2Hとなる。ここでレジスタの内容は読取りであるとす
る。図3に示す上記の説明からの読取りアドレスはアド
レスADDR0である。注目すべきことに、オペレーテ
ィング・システムは読み取っているレジスタからデータ
を受け取ることを期待しているので、読取りコマンドと
関連したデータはない。従ってレジスタを読み取る命令
はRD ADDR0となる。読取りコマンドを実行する
と、レジスタ内容が読取りを要求しているプロセッサの
読取り入力に表れる。次に最上位ビットをクリアすると
する。従って最上位ビットを選択する書込み−クリアア
ドレスADDR4が実行される。最上位ビットは、4番
目のビット位置、即ちバイナリ1000を選択するデー
タを書き込むことにより達成される。従って最上位ビッ
トをクリアする合成命令はWRTADDR4 8Hとな
る。最後にレジスタの内容を再び読み取ることが望まれ
る。上述のように、読取りコマンドはアドレスADDR
0と関連したデータを必要としない。従って合成命令は
RD ADDR0となる。上記の例にしたがって実行さ
れた各々の命令に付いて、図4は、各々の操作ステップ
に続いてレジスタの最終内容を示している。Assume the next operation to be performed is to set a particular bit in the register. Further, it is assumed that the set bit is the most significant bit. A binary representation of "1000" is required to set the most significant bit in the register. From FIG. 3 and the above description, the address associated with the setting command is the address ADDR8. Therefore, when setting the most significant bit of a register, the composite instruction is WRT
It becomes ADDR8 8H. Further assume that the next operation is to set the second least significant bit from the bottom in the register. The address set here is also ADDR8.
Address ADD by setting the second least significant bit from the bottom
The data associated with R8 will be data equal to "0010" to 2H. Therefore, the synthetic instruction to set the second least significant bit from the bottom in the register is WRT ADDR8.
It becomes 2H. Here, it is assumed that the contents of the register are read. The read address from the above description shown in FIG. 3 is the address ADDR0. Notably, there is no data associated with the read command because the operating system expects to receive the data from the register it is reading. Therefore, the instruction to read the register is RD ADDR0. Executing a read command causes the register contents to appear at the read input of the processor requesting the read. Next, suppose that the most significant bit is cleared. Therefore, the write-clear address ADDR4 that selects the most significant bit is executed. The most significant bit is achieved by writing data that selects the fourth bit position, binary 1000. Therefore, the synthetic instruction for clearing the most significant bit is WRTADDR48H. Finally, it is desired to reread the contents of the register. As mentioned above, the read command is the address ADDR.
No data associated with 0 is required. Therefore, the synthesis instruction is RD ADDR0. For each instruction executed according to the above example, FIG. 4 shows the final contents of the register following each operating step.
【0015】先の節で説明したように、本発明の主要な
属性は、多重ステップ命令サイクル中に、意図しないプ
ロセッサによるレジスタへの意図しないアクセスを避け
ることが出来るということである。従って、多重プロセ
ッサ・コンピュータシステムで多重プロセッサにより共
用されるレジスタ内にプロセッサで格納されるデータと
そのようなプロセッサとの間のコヒーレンスが維持され
る。機能的に、物理的レジスタ10及び11を指し示すアド
レス25と26の1つを選択することで、それぞれレジスタ
10、11内での活動が決定される。即ちレジスタ10と関連
した全てのアドレス25はレジスタ10でしか作動しないの
で、特定プロセッサのためにレジスタ10内で格納された
データのコヒーレンスは確保される。レジスタ10は解読
したときにプロセッサをレジスタ10に結び付けるアドレ
スを実行するプロセッサによってしかアクセスされな
い。機能の独自性はアドレス26によりレジスタ11で相似
的に得ることが出来る。従って一意的なレジスタアドレ
スは、従来技術で遭遇したコヒーレンス問題を回避しつ
つ、多重プロセッサによりアクセス出来るレジスタの十
分な選択を提供する。As explained in the previous section, a key attribute of the present invention is that it is possible to avoid unintended access to registers by an unintended processor during a multi-step instruction cycle. Thus, in a multiprocessor computer system, coherence between data stored in the processor and registers stored in the processor shared by the multiple processors is maintained. Functionally, by selecting one of the addresses 25 and 26, which points to physical registers 10 and 11, respectively.
Activities within 10 and 11 are decided. That is, all addresses 25 associated with register 10 operate only in register 10, thus ensuring coherence of the data stored in register 10 for a particular processor. Register 10 is only accessed by the processor executing the address which, when decoded, ties the processor to register 10. The uniqueness of the function can be obtained analogously in the register 11 by the address 26. Thus, the unique register address provides a sufficient selection of registers that can be accessed by multiple processors while avoiding the coherence problems encountered in the prior art.
【0016】本発明の他の重要な属性は、レジスタ内の
個々のビットは、多重ステップの読取り・修正・書込み
サイクルを必要とせずに、原子的に設定ないしクリア出
来るということである。本発明は位置等価バイナリデー
タ・パターンの個々のビットを設定ないしクリアする物
理的レジスタの実際のビットのマスクとして用いる。マ
スタとマスタにより格納されたデータの間のデータコヒ
ーレンスを維持するための厄介なコードスペースや時間
集中的ソフトウエア・インタロック方式の必要性はそれ
により取り除かれる。Another important attribute of the present invention is that individual bits in the register can be set or cleared atomically without the need for multi-step read / modify / write cycles. The present invention uses a mask of the actual bits of a physical register to set or clear individual bits of a position equivalent binary data pattern. It obviates the need for cumbersome code spaces and time intensive software interlock schemes to maintain data coherence between the master and the data stored by the master.
【0017】当業者には、読取り命令は、書込み−設定
アドレスないし書込み−クリア・アドレスをプロセッサ
により発せられる適切な読取り可能信号と共に用いるこ
とにより実施できることが理解されよう。第1の実施例
のように3つの別々のアドレスを用いて読み取るか、ど
ちらかの書込みアドレスを用いて読み取るかは、完全に
設計者の自由裁量による。以前の第1世代(即ち4ビッ
ト)プロセッサでは、アドレススペースは限定され、大
きな値の全てのアドレスもそうであった。最近の32ビッ
ト及びそれ以上のプロセッサでは、アドレススペースは
一般的に装置に対してブロックで割り当てられ、それは
予期される離散アドレスの数をはるかに越えている。従
って2アドレス原子アクセス・レジスタを構築するか、
3アドレス原子アドレス・レジスタを構成するかは、全
く設計者の好みの問題である。2アドレス実施に対して
3アドレス実施を選択することはもちろん、アドレス解
読器の設計に影響を与える。ここで図8を参照すると、
レジスタへの原子アクセスの本発明の第2の実施例が示
されている。図8で、レジスタ40は上記のように構築さ
れた複数ビットレジスタである。単一のアドレス45はレ
ジスタ40のみを指し示す。アドレス45と関連しているの
は、そのバイナリ等価性がレジスタ40内の個々のビット
41を設定ないしクリアするマスクを提供するデータ47で
ある。この第2の実施例では、レジスタ40の単一ビット
42は、操作が設定ないしクリア命令なのかを示すフラッ
グとして示される。このフラッグ機能を果たすビットは
レジスタ40内に含まれる任意のビットでもよい。残りの
ビットはデータを通常の方法で格納する。図8に示すよ
うに、第2の実施例では最上位ビット42がフラッグとし
て用いられ、1は操作はビットを設定し、0はビットを
クリアすることを示す。従ってこの第2の実施例にした
がって原子アクセス・レジスタを実施すると、先の実施
例よりも1ビット少なく設定ないしクリアすることにな
る。即ちNビットで形成された原子アクセスレジスタで
は、第1ないし第2の実施例の原子アクセスレジスタは
Nビットを設定ないしクリアするのに対して、第2の実
施例はレジスタのN−1ビットを設定ないしクリアす
る。論理1に等しいアドレス命令と関連したデータ47の
バイナリ等価の最上位ビット48でのレジスタ40への書込
みコマンドにより、データ47のバイナリ等価の残りのビ
ットはレジスタ40内に含まれた個々のビット41を設定す
るビット・マスクとして割り込まれることになる。他
方、書込み命令で発せられたデータ47のバイナリ等価の
最上位ビット42が論理0であれば、バイナリ等価の残り
のビットは、レジスタ40の個々のビットをクリアするビ
ットマスクとして割り込まれることになる。第2の実施
例では、最上位ビット42の状態は読取り操作では無意味
である。Those skilled in the art will appreciate that a read instruction can be implemented by using a write-set address or a write-clear address with an appropriate readable signal issued by the processor. Whether to read using three separate addresses as in the first embodiment or one of the write addresses to read is entirely at the discretion of the designer. In previous 1st generation (ie 4-bit) processors, the address space was limited, and so were all large valued addresses. In modern 32-bit and higher processors, address space is typically allocated in blocks to devices, which far exceeds the expected number of discrete addresses. So either build a two address atom access register or
Constructing a three-address atomic address register is entirely a matter of designer preference. The choice of 3 address implementation versus 2 address implementation will of course impact the design of the address decoder. Referring now to FIG.
A second embodiment of the invention of atomic access to registers is shown. In FIG. 8, register 40 is a multi-bit register constructed as described above. The single address 45 only points to register 40. Associated with address 45 is that its binary equality is the individual bit in register 40.
The data 47 provides a mask for setting or clearing 41. In this second embodiment, a single bit of register 40
42 is shown as a flag indicating whether the operation is a set or clear command. The bits that perform this flag function may be any of the bits contained in register 40. The remaining bits store the data in the normal way. As shown in FIG. 8, in the second embodiment, the most significant bit 42 is used as a flag, where 1 indicates that the operation sets the bit and 0 indicates that the bit is cleared. Therefore, implementing the atomic access register according to this second embodiment will set or clear one bit less than the previous embodiment. That is, in the atomic access register formed of N bits, the atomic access register of the first and second embodiments sets or clears N bits, whereas the second embodiment sets N-1 bits of the register. Set or clear. A write command to register 40 with the binary equivalent most significant bit 48 of data 47 associated with an address instruction equal to a logical one causes the remaining bits of the binary equivalent of data 47 to be contained in individual bits 41 contained in register 40. Will be interrupted as a bit mask that sets On the other hand, if the binary equivalent most significant bit 42 of the data 47 issued by the write instruction is a logical 0, the remaining binary equivalent bits will be interrupted as a bitmask that clears the individual bits of register 40. .. In the second embodiment, the state of the most significant bit 42 is meaningless for read operations.
【図1】複数マスタ環境がオーバーライトあるいはレジ
スタの意図しない修正を生じることのある従来技術で遭
遇するコヒーレンス問題を例示する。FIG. 1 illustrates a coherence problem encountered in the prior art where a multiple master environment may result in overwrite or unintentional modification of registers.
【図2】図1に示すコヒーレンス問題に対する従来技術
の解決法を示し、ソフトウエア相互排他ロックにより他
のマスタによりアクセスされている特定レジスタへのマ
スタのアクセスを防ぐ。2 shows a prior art solution to the coherence problem shown in FIG. 1 in which a software mutual exclusion lock prevents a master from accessing a particular register being accessed by another master.
【図3】3つの別々のアドレスを各々の物理的原子的ア
クセス・レジスタに割り当て、各々のアドレスは関連ビ
ットマスクを担持する本発明の実施例を示す。FIG. 3 illustrates an embodiment of the invention in which three separate addresses are assigned to each physical atomic access register, each address carrying an associated bit mask.
【図4】原子的アクセスレジスタ内のフリップフロック
の設定、クリア、読取りアドレス選択回線を例示する。FIG. 4 illustrates a flip-flop set, clear, read address select line in an atomic access register.
【図5】本発明の実施例で用いられるアドレス解読器の
論理表である。FIG. 5 is a logical table of an address decoder used in the embodiment of the present invention.
【図6】原子的アクセスレジスタを含むフリップフロッ
プの論理表である。FIG. 6 is a logic table of a flip-flop including an atomic access register.
【図7】読取り、書込み操作に付いてレジスタへの原子
的アクセス例を例示する。FIG. 7 illustrates an example of atomic access to registers for read and write operations.
【図8】本発明の第2の実施例を例示し、単一アドレス
が各々の物理的、原子アクセス・レジスタに割り当てら
れるが、原子的機能は関連ビットマスクの単一ビットに
より制御される。FIG. 8 illustrates a second embodiment of the present invention, where a single address is assigned to each physical, atomic access register, but the atomic function is controlled by a single bit in the associated bitmask.
10、11・・・レジスタ、25、26・・・アドレ
ス、27・・・データ、28・・・位置等価ビット。10, 11 ... Register, 25, 26 ... Address, 27 ... Data, 28 ... Position equivalent bit.
Claims (3)
するコンピュータシステムで、 複数のビットを格納するためにバスに接続されたそれぞ
れが複数のアドレスにより識別される複数の制御レジス
タからなるレジスタ手段と、 前記制御レジスタ内に格納された前記ビットにアクセス
するために前記バスと前記レジスタ手段とに接続され、
ある特定プロセッサにより発せられる前記アドレスの1
つとデータ値からなるアドレス命令を受け取り、そのデ
ータ値とアドレス命令内に含まれる前記アドレスにした
がって特定の制御レジスタの特定ビットのみを変更する
前記特定プロセッサを特定制御レジスタに、前記アドレ
スの前記1つに応じて接続するアドレス手段とからなる
原子アクセス制御レジスタ装置。1. A computer system having a number of processors connected to a bus, and register means comprising a plurality of control registers each connected to the bus for storing a plurality of bits, each control register being identified by a plurality of addresses. Connecting to the bus and the register means to access the bits stored in the control register,
1 of the address issued by a particular processor
A specific processor which receives only an address instruction consisting of one address and a data value and changes only a specific bit of a specific control register in accordance with the data value and the address contained in the address instruction. Access control register device comprising addressing means connected according to the above.
するコンピュータシステムで、 ディジタルデータを格納するために前記バスに接続さ
れ、それぞれが複数のアドレスと関連していて複数の格
納位置を有して複数のビットを格納する複数の制御レジ
スタからなるレジスタ手段と、 前記バスと前記レジスタ手段とに接続され、前記制御レ
ジスタ内に格納された前記ビットにアクセスするアドレ
ス解読手段を含むアドレス手段とからなるもので、 このアドレス手段は、特定プロセッサにより発せられ、
特定の制御レジスタに対応した前記複数アドレスの1つ
とビットマスクからなる記憶位置等価バイナリデータ表
現を有するデータ値とからなるアドレス命令を受ける構
成で、 前記アドレス解読手段は、前記複数のアドレスの前記1
つを解読し、かつ前記特定プロセッサを前記特定プロセ
ッサによりアドレスされた前記特定制御レジスタに接続
する構成で、 さらに、前記アドレス手段はアドレス命令に含まれたデ
ータ値の前記記憶位置等価バイナリデータ表現により形
成されたビットマスクに従って前記特定制御レジスタの
特定ビットのみを変更する構成とされていて、 特定プロセッサによりアドレスされた特定制御レジスタ
内の前記特定ビットのみに原子的にアクセスして前記ビ
ットマスクに従って変更する原子アクセス制御レジスタ
装置。2. A computer system having a number of processors connected to a bus, the computer system being connected to the bus for storing digital data, each associated with a plurality of addresses and having a plurality of storage locations. The register means comprises a plurality of control registers for storing a plurality of bits, and address means including an address decoding means connected to the bus and the register means for accessing the bits stored in the control register. This address means is issued by a specific processor,
The address decoding means is configured to receive an address command consisting of one of the plurality of addresses corresponding to a specific control register and a data value having a storage location equivalent binary data representation composed of a bit mask, and the address decoding means includes the one of the plurality of addresses.
And the specific processor is connected to the specific control register addressed by the specific processor, the addressing means further comprising: the storage location equivalent binary data representation of a data value included in an address instruction. Only a specific bit of the specific control register is modified according to the formed bit mask, and only the specific bit in the specific control register addressed by a specific processor is atomically accessed and modified according to the bit mask. Atomic access control register device.
するコンピュータシステムで、 複数ビットを格納する複数の制御レジスタからなるレジ
スタ手段を設け、 前記制御レジスタの各々を複数のアドレスにより識別
し、 前記制御レジスタ内に格納された前記ビットにアクセス
するアドレス手段を設け、 更に前記アドレスの1つとデータ値からなるアドレス命
令を提供し、 前記アドレス手段を用い、前記アドレスにしたがって特
定プロセッサを特定制御レジスタに接続し、アドレス命
令内に含まれる前記アドレスにしたがって特定制御レジ
スタの特定ビットのみを変更するステップからなる原子
アクセスレジスタ制御方法。3. A computer system having a large number of processors connected to a bus, provided with register means composed of a plurality of control registers for storing a plurality of bits, each control register being identified by a plurality of addresses, Address means for accessing the bits stored in the register are provided, and an address instruction consisting of one of the addresses and a data value is provided, and the address means is used to connect a specific processor to a specific control register according to the address. Then, the atomic access register control method comprising the step of changing only specific bits of the specific control register according to the address included in the address instruction.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/767,122 US5287503A (en) | 1991-09-27 | 1991-09-27 | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
| US767122 | 1991-09-27 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05324572A true JPH05324572A (en) | 1993-12-07 |
| JP3381733B2 JP3381733B2 (en) | 2003-03-04 |
Family
ID=25078543
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28234292A Expired - Fee Related JP3381733B2 (en) | 1991-09-27 | 1992-09-28 | Atomic access control register device |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5287503A (en) |
| EP (1) | EP0535820B1 (en) |
| JP (1) | JP3381733B2 (en) |
| KR (1) | KR970011207B1 (en) |
| DE (1) | DE69231174T2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7174434B2 (en) | 2001-02-24 | 2007-02-06 | International Business Machines Corporation | Low latency memory access and synchronization |
| US7529895B2 (en) | 2003-08-22 | 2009-05-05 | International Business Machines Corporation | Method for prefetching non-contiguous data structures |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2078913A1 (en) * | 1991-12-12 | 1993-06-13 | John J. Reilly | Interprocessor communication system and method for multiprocessor circuitry |
| JP2688164B2 (en) * | 1993-07-26 | 1997-12-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Information processing system |
| US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
| JP2682469B2 (en) * | 1994-09-20 | 1997-11-26 | 日本電気株式会社 | Instruction code encoding method |
| DE69516817T2 (en) * | 1994-11-14 | 2000-12-07 | Nec Corp., Tokio/Tokyo | Peripheral device for executing bit field commands |
| JPH0916472A (en) * | 1995-07-04 | 1997-01-17 | Fujitsu Ltd | Cache memory test method |
| US5790888A (en) | 1996-08-12 | 1998-08-04 | Seeq Technology, Inc. | State machine for selectively performing an operation on a single or a plurality of registers depending upon the register address specified in a packet |
| US6230219B1 (en) * | 1997-11-10 | 2001-05-08 | International Business Machines Corporation | High performance multichannel DMA controller for a PCI host bridge with a built-in cache |
| US6484251B1 (en) * | 1999-10-14 | 2002-11-19 | International Business Machines Corporation | Updating condition status register based on instruction specific modification information in set/clear pair upon instruction commit in out-of-order processor |
| US6795901B1 (en) | 1999-12-17 | 2004-09-21 | Alliant Techsystems Inc. | Shared memory interface with conventional access and synchronization support |
| US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
| DE10103546A1 (en) * | 2001-01-26 | 2002-08-01 | Thomson Brandt Gmbh | Method for controlling a peripheral device by means of a central device and devices for using the method |
| US20030126414A1 (en) * | 2002-01-02 | 2003-07-03 | Grochowski Edward T. | Processing partial register writes in an out-of order processor |
| US7174405B1 (en) * | 2003-06-06 | 2007-02-06 | Cisco Technology, Inc. | Method and system for replacing a read-modify-write operation with an atomic set-bits or clear-bits operation |
| JP4852427B2 (en) * | 2004-11-26 | 2012-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Multiprocessor system and exclusive control method therefor |
| CN102150132A (en) * | 2008-09-10 | 2011-08-10 | 瑞萨电子株式会社 | information processing device |
| US8397005B2 (en) | 2010-03-16 | 2013-03-12 | St-Ericsson Sa | Masked register write method and apparatus |
| JP5527028B2 (en) | 2010-06-07 | 2014-06-18 | 株式会社ジェイテクト | Ball screw device and electric power steering device |
| US9063831B1 (en) * | 2012-12-21 | 2015-06-23 | Cadence Design Systems, Inc. | Method and apparatus for optimizing access to control registers in an emulation chip |
| US9916217B2 (en) * | 2016-01-05 | 2018-03-13 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Accessing hidden diagnostic registers |
| US11928329B2 (en) * | 2021-12-02 | 2024-03-12 | Nxp B.V. | System and method for managing access to registers |
| US12437095B2 (en) * | 2021-12-20 | 2025-10-07 | Intel Corporation | Register interface for computer processor |
| CN115586921A (en) * | 2022-09-05 | 2023-01-10 | 展讯通信(上海)有限公司 | Method, circuit, chip and electronic device for realizing multi-bit register atomic operation |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4085106A (en) * | 1976-01-07 | 1978-04-18 | E. I. Du Pont De Nemours And Company | Bicyclic and tricyclic trisaminomethanes |
| JPS6037477B2 (en) * | 1976-06-02 | 1985-08-26 | 株式会社日立製作所 | display device |
| US4086658A (en) * | 1976-10-04 | 1978-04-25 | International Business Machines Corporation | Input/output and diagnostic arrangements for programmable machine controllers having multiprogramming capabilities |
| US4194241A (en) * | 1977-07-08 | 1980-03-18 | Xerox Corporation | Bit manipulation circuitry in a microprocessor |
| JPS60702B2 (en) * | 1978-08-30 | 1985-01-09 | 株式会社東芝 | Communication control device |
| US4520439A (en) * | 1981-01-05 | 1985-05-28 | Sperry Corporation | Variable field partial write data merge |
| JPS59103153A (en) * | 1982-12-06 | 1984-06-14 | Fujitsu Ltd | Data processor |
| US4663728A (en) * | 1984-06-20 | 1987-05-05 | Weatherford James R | Read/modify/write circuit for computer memory operation |
| US5201039A (en) * | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
| US4862155A (en) * | 1987-10-26 | 1989-08-29 | Tektronix, Inc. | Graphic display system with secondary pixel image storage |
| JPH02284229A (en) * | 1989-04-25 | 1990-11-21 | Nec Corp | State storage device for microprocessor |
-
1991
- 1991-09-27 US US07/767,122 patent/US5287503A/en not_active Expired - Lifetime
-
1992
- 1992-09-23 DE DE69231174T patent/DE69231174T2/en not_active Expired - Fee Related
- 1992-09-23 EP EP92308377A patent/EP0535820B1/en not_active Expired - Lifetime
- 1992-09-26 KR KR1019920017594A patent/KR970011207B1/en not_active Expired - Fee Related
- 1992-09-28 JP JP28234292A patent/JP3381733B2/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7174434B2 (en) | 2001-02-24 | 2007-02-06 | International Business Machines Corporation | Low latency memory access and synchronization |
| US7529895B2 (en) | 2003-08-22 | 2009-05-05 | International Business Machines Corporation | Method for prefetching non-contiguous data structures |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0535820A3 (en) | 1994-07-27 |
| DE69231174T2 (en) | 2001-03-01 |
| EP0535820B1 (en) | 2000-06-14 |
| EP0535820A2 (en) | 1993-04-07 |
| DE69231174D1 (en) | 2000-07-20 |
| US5287503A (en) | 1994-02-15 |
| KR930006541A (en) | 1993-04-21 |
| KR970011207B1 (en) | 1997-07-08 |
| JP3381733B2 (en) | 2003-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3381733B2 (en) | Atomic access control register device | |
| JP5421458B2 (en) | SIMD vector synchronization | |
| EP1008053B1 (en) | Controlling memory access ordering in a multi-processing system | |
| JP4977159B2 (en) | Technology for executing atomic compare and swap instructions using a specific processor | |
| US6795901B1 (en) | Shared memory interface with conventional access and synchronization support | |
| US5889983A (en) | Compare and exchange operation in a processing system | |
| US4430707A (en) | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks | |
| US5317749A (en) | Method and apparatus for controlling access by a plurality of processors to a shared resource | |
| KR20190108109A (en) | Implementation of atomic primitives using cache line locking | |
| JPH10134008A (en) | Semiconductor device and computer system | |
| US5163143A (en) | Enhanced locked bus cycle control in a cache memory computer system | |
| KR20130085042A (en) | Memories and methods for performing atomic memory operations in accordance with configuration information | |
| JPH0526217B2 (en) | ||
| JPS5837587B2 (en) | memory lock device | |
| JP4130465B2 (en) | Technology for executing atomic processing on processors with different memory transfer processing sizes | |
| JPS61264378A (en) | Memory circuit | |
| JP3381079B2 (en) | Exclusive control system using cache memory | |
| JP3256387B2 (en) | Exclusive control method, processor and computer system | |
| JPH0348962A (en) | Bus lock control system | |
| US7017015B2 (en) | Method and system for coordinating the access of data by two computer processes | |
| JPH0486943A (en) | Exclusive control system for shared memory | |
| EP0425843A2 (en) | Enhanced locked bus cycle control in a cache memory computer system | |
| JPS62119661A (en) | Access management system to shared memory | |
| JP3996355B2 (en) | Multiprocessor system | |
| JPH033047A (en) | Memory with arithmetic function |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |