JPH06119297A - データ処理システムにおける命令の実行順序を決定する方法および装置 - Google Patents
データ処理システムにおける命令の実行順序を決定する方法および装置Info
- Publication number
- JPH06119297A JPH06119297A JP5046085A JP4608593A JPH06119297A JP H06119297 A JPH06119297 A JP H06119297A JP 5046085 A JP5046085 A JP 5046085A JP 4608593 A JP4608593 A JP 4608593A JP H06119297 A JPH06119297 A JP H06119297A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- instruction
- xmem
- processor
- data processing
- 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; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
Abstract
序を決定する方法・装置を提供する。 【構成】データ処理装置10は制御ビットを用いて、標
準命令かまたは変更命令を実施するかを判定する。標準
命令は読み取りバス・サイクルの後に書き込みバス・サ
イクルを実行する。バスをロックする代りに、一度に1
つのプロセッサしか、資源使用可能を表示するセマフォ
ー値を受取らないよう保証するため、一度に1つのプロ
セッサしか資源利用を試みないように保証される。バス
をロックする必要がないので、一部のマルチプロセッサ
はバスの潜在処理能力を大幅に増大できる。変更命令
は、バッファ付き書き込みバスサイクルの後に、読取り
バスサイクルを実行。このバス12は一貫性を保つの
に、書込みと読取りサイクル間のロック不要。一部のバ
スでは、バス12をロックしないことによって、バス帯
域幅を増加できる。
Description
し、具体的にはデータ処理システムにおけるアクセス順
序に関する。
雑化するにつれ、システム資源の効率的な使用を確保す
るために新しい技術が必要になる。たとえば、多くのマ
ルチプロセッサ・システムでは、メモリ,プリンタまた
は表示画面に対するポートなど、いくつかのマイクロプ
ロセッサで同じいくつかのシステム資源を共用しようと
する。このようなマルチプロセッサ・システムでは、マ
イクロプロセッサとシステム資源との間で情報を伝搬す
る通信路またはバスを、可能な限り効率的に用いること
が重要である。
ステム資源へと伝搬するメッセージは、都市のある部分
から道路を通って別の部分に進む車に似ている。通信路
の通信量をできるだけ効率的にさばかなければ、通信の
流れが停滞し始めて、通信路が込み合った状態になる。
その結果、マイクロプロセッサとシステム資源との通信
の速度が遅くなり、このためにシステム全体の動作速度
が低下する。通信路の渋滞がラッシュアワー時のように
ひどくなれば、マイクロプロセッサ・システム全体が遅
々として進まなくなる恐れがある。
用いるマイクロプロセッサ・バスを介しては、一度に1
つのメッセージしか転送できない。そのため、一度に1
個のマイクロプロセッサしか、バスの制御下に入って、
別のマイクロプロセッサもしくはシステム資源に情報を
送ることができない。
bitration )を獲得して、バスの制御下に入るかを決定
するために、マイクロプロセッサは互いに調整を行わな
ければならない。マイクロプロセッサはアービトレーシ
ョンを獲得して「バス・マスタ」になる場合に限り、当
該バスを介して情報の送受信ができる。他のマイクロプ
ロセッサは、当該バスを介して情報を送受信するために
は、バス・マスタになる順番を待たなければならない。
たとえばプリンタなどのシステム資源を効率的に共用す
るニーズも存在する。複数のプロセッサで1台のプリン
タを共用している場合、現在どのプロセッサが資源を利
用しているか、またそのプロセッサが、中断できない機
能を実行しているか否かを示す方法がなくてはならな
い。多くのマルチプロセッサ・システムでは、この機能
にセマフォーを用いている。
を示す一種のフラグまたは状態標識である。通常、セマ
フォーの状態情報は、システム資源が現在使用中か否か
を示す。一部のマルチプロセッサ・システムでは、セマ
フォーは、どのマイクロプロセッサが資源を使用してい
るか、およびその資源を介して実行されている機能の種
類に関する情報も含めることができる。
プリンタ資源のセマフォーの記憶位置として指定でき
る。いずれかのマイクロプロセッサがそのプリンタを使
用したい場合には、当該マイクロプロセッサは、メモリ
内の特定の記憶位置を読み取ることによって、プリンタ
・セマフォーを読み取らなければならない。プリンタ・
セマフォーは、現在プリンタが使用中か否かなど、プリ
ンタの状態に関する情報を含んでいる。当該プリンタが
現在使用中であることをプリンタ・セマフォーが表示す
る場合には、マイクロプロセッサは待機しなければなら
ない。マイクロプロセッサは、当該プリンタが依然使用
中であるか、または使用可能になったかを見るために、
定期的にプリンタ・セマフォーを読み取ることによっ
て、プリンタ・セマフォーをポーリングし続けることが
できる。
ンタ・セマフォーが示したなら、待機中のマイクロプロ
セッサはプリンタ・セマフォーに書き込みを行い、状態
を使用中に変更する。こうすることによって、待機中の
マイクロプロセッサは、プリンタ資源を自分だけが使用
できるように効果的にロックする。プリンタのセマフォ
ーがプリンタの使用中を示している間、他のプロセッサ
はプリンタを使用できない。待機中のプロセッサはプリ
ンタの使用を終えると、プリンタ・セマフォーの記憶位
置に新しい値を書き込み、プリンタが再び使用可能にな
ったことを表示すべくプリンタ・セマフォーを変更す
る。
分するシステムでは、1つ重要な問題が発生する。その
問題は、資源が使用可能になったかを見るために、共用
資源のセマフォーを複数のマイクロプロセッサがポーリ
ングする際に生じる。たとえば、マイクロプロセッサ#
1とマイクロプロセッサ#2が共にプリンタ・セマフォ
ーにポーリングしていると仮定しよう。マイクロプロセ
ッサ#1は、プリンタが使用可能であるという表示に変
更された後、最初にプリンタ・セマフォーを読み取る。
そのときマイクロプロセッサ#2もプリンタ・セマフォ
ーを読み取って、プリンタが使用可能であることを知
る。マイクロプロセッサ#1もマイクロプロセッサ#2
も、このプリンタの使用をめぐって別のプロセッサと競
合していることに気づいていない。
る場合には、マイクロプロセッサ#1は、予めソフトウ
ェア割り込みルーチンを実行してから、割り込み前の状
態に戻らなければならない。ところがその間に、マイク
ロプロセッサ#2がプリンタ・セマフォーに値を書き込
み、当該プリンタが現在使用中であると表示させる。つ
いでマイクロプロセッサ#2はプリンタの使用を進め
る。マイクロプロセッサ#1は割り込みルーチンを終了
して、ソフトウェア・プログラム内の割り込み前の状態
に戻る。マイクロプロセッサ#1は、プリンタが使用可
能状態であることを知って、動作を中断したのであるか
ら、プリンタ・セマフォーに値を書き込み、当該プリン
タが現在使用中であると表示させて、プリンタの使用を
進める。しかし、当該プリンタは既にマイクロプロセッ
サ#2が使用しているため、プリンタに向かうバス上で
衝突が起こる。その結果、当該プリンタは、どちらのマ
イクロプロセッサからの情報も正しくプリントアウトで
きなくなる。
がメモリ内のセマフォーの読み取りとその後の書き込み
の両方を実行している間ずっと、バスをロックすること
である。バスを「ロック」することは、現在のバス・マ
スタが、多重バス・サイクルのために当該バスを使用で
きる唯一のプロセッサということになる。通常、すべて
のプロセッサに、バスを利用する機会が定期的な間隔で
めぐってくるように、バスのアービトレーションは頻繁
に発生する。他のプロセッサがバス・マスタになって、
当該バスを使用する機会を得ないように、当該バスのロ
ックが実行される。
ス・マスタになったプロセッサは、予めバスをロックし
てからセマフォーを読み取る。バスがロックされるの
で、他のプロセッサはバスを使用できない。ついでバス
・マスタ・プロセッサは、メモリからセマフォーを読み
取って、システム資源が使用可能か否か判定する。資源
が使用中の場合には、バス・マスタ・プロセッサはバス
・ロックを外して、新たなバス・マスタを決めるアービ
トレーションを行える。しかし資源が使用可能な場合に
は、バス・マスタ・プロセッサは、セマフォーに新しい
値を書き込んで、システム資源が現在使用中であること
を表示できるまで、引き続きバスをロックする。
のプロセッサしか、セマフォーを読み取って、システム
資源が使用可能であることを知り、セマフォーに値を書
き込んで、資源が現在使用中であると表示させることが
できない。そのため、バスをロックすることによって、
一度に1つのプロセッサしか実際にシステム資源を使用
しないことが保証される。そのため、バス上の衝突は回
避される。
ロックすることには重大な欠点がある。他のマイクロプ
ロセッサとシステム資源との通信の速度が大幅に低下す
る可能性があることである。その結果、システム全体の
動作速度が大幅に低下する。
構造を使用しているときに、問題が生じる恐れがある。
バス・マスタ・プロセッサと、セマフォーを含んでいる
メモリとが互いに距離が離れたバス上にある場合、バス
・マスタは、セマフォーの読み取りとその後の書き込み
動作の間、自身と遠隔のメモリの間にあるすべてのバス
を絶えずロックしなければならない。セマフォーへのア
クセスは通常、マルチプロセッサ・システムでは極めて
頻度が多いことを特に考慮すれば、これはバス時間のあ
まり効果的な利用とはいえない。そのため、バスをロッ
クすることは満足のいく解決法ではない。
ニーズが満足されると共に、他の長所も達成される。本
発明は、1つの形態では、データ処理システムにおける
アクセス順序を決定する装置および方法によって構成さ
れる。データ処理装置は、複数の段階を有する命令を実
行できる。
第1部分を有する。データ処理装置はまた、前記第1部
分に結合された第2部分を有する。第2部分は、第1論
理状態および第2論理状態を有する。第2部分が第1論
理状態にある場合には、第2部分は、第1部分に、第1
順序の複数の段階を実行せしめる。また第2部分が第2
論理状態にある場合には、第2部分は、第1部分に、第
2順序の複数の段階を実行せしめる。
な説明から、本発明を理解しよう。
度に1つのプロセッサしか、資源が使用可能であること
を表示するセマフォー値を受け取らないよう保証するた
めに異なる方法を利用する。そのため本発明では、一度
に1つのプロセッサしか資源の利用を試みないように保
証される。また本発明はバスをロックする必要がないの
で、一部のマルチプロセッサ・システムではバスの潜在
的処理能力を大幅に増大できる。
処理装置10を示したものである。図1に示すデータ処
理装置10は具体的にはRISC(縮小命令セットコン
ピューター)アーキテクチャを有しているが、任意のア
ーキテクチャもしくは種類のデータ処理装置10を使用
してもよい。データ処理装置10は、ユーザがソフトウ
ェア・プログラムで指定する命令を実行できる。
フィック装置18,ロード/格納実行装置20,レジス
タ・ファイル22およびスーパースカラ命令装置24は
すべて、内部バス26と双方向に接続されている。ロー
ド/格納実行装置20は、データ処理装置10内部で、
命令の実行を制御するのに用いる。本発明の一部の実施
例では、ロード/格納実行装置20は制御ピン27から
の入力を受け取ることができる。レジスタ・ファイル2
2は、たとえば、数値およびアドレスなど各種のデータ
型を格納するのに使用できる情報レジスタを含む。目標
命令キャッシュ28は、情報をスーパースカラ命令装置
24に伝送するために、スーパースカラ命令装置24に
接続されている。
きる。データ・キャッシュMMU30は、メモリ管理装
置32,タグ34およびデータ・キャッシュ36を有し
ている。データ・キャシュMMU30内のブロックはす
べて、情報を、データ・キャッシュMMU30内の他の
どのブロックにも転送できる。タグ34はロード/格納
実行装置20から情報を受け取る。データ・キャッシュ
36は、ロード/格納実行装置20と双方向に接続され
ている。命令キャッシュMMU38は、メモリ管理装置
40,タグ42および命令キャッシュ44を有する。命
令キャッシュMMU38内のブロックはすべて、命令キ
ャッシュMMU38内の他のどのブロックにも情報を転
送できる。
ーパースカラ命令装置24から情報を受け取る。命令キ
ャッシュ44はスーパースカラ命令装置24に情報を送
出する。メモリ管理装置32は制御レジスタ・ファイル
46を含む。制御レジスタ・ファイル46は、内部バス
26を用いて、ユーザが読み書きおよびプログラムがで
きる。内部バス26を用いて、制御レジスタ・ファイル
46を読み書きするためのデータ・パスは、ロード/格
納命令装置20からデータ・キャッシュ36に至る。ま
た制御レジスタ・ファイル46は、制御情報をロード/
格納実行装置20に送出する。
ッシュ36と双方向に接続されている。バス・インタフ
ェース48はメモリ管理装置32およびメモリ管理装置
40から情報を受け取る。またバス・インタフェース4
8は、情報をタグ34および命令キャッシュ44に送出
する。バス・インタフェース48はまた外部バス12と
双方向に接続されている。
6の1つの実現を示したものである。制御レジスタ・フ
ァイル46は32ビット幅となるように図示されている
が、他の幅を使用することもできる。またこの実施例は
メモリ管理装置32の一部として制御レジスタ・ファイ
ル46を示しているが、制御レジスタ・ファイル46は
実際には、データ処理装置10内で、ロード/格納実行
装置20にアクセスできる任意の場所に置くことができ
る。制御レジスタ・ファイル46はいくつかの制御レジ
スタを含んでおり、その内の1つだけ、すなわちデータ
MMU/キャッシュ制御レジスタ50だけを図示してい
る。
制御レジスタ50を制御レジスタ50という。制御レジ
スタ50は、制御レジスタ・ファイル46内の任意の場
所に置ける。事実、制御レジスタ50は制御レジスタ・
ファイル46の一部である必要ではなく、データ処理装
置10内の任意の場所に置ける。
メモリを交換)制御ビット52(縮尺どおりの図ではな
い)を含む。他の実施例では、XMEM制御ビット52
は、データ処理装置10内のメモリの中の都合の良い任
意の場所に置くことができる。XMEM制御ビット52
は制御レジスタ内に置く必要はないが、普通便利の良い
場所に置かれる。XMEM制御ビット52は本実施例で
は制御レジスタ50のビット位置13に位置している
が、XMEM制御ビット52は、制御レジスタ50内の
任意の場所に置ける。制御レジスタ50内に位置する他
の制御ビットは図示していない。
ト52およびロード/格納実行装置20、ならびに任意
のデータ処理システムで使用できる関連論理によって達
成される。XMEM制御ビット52およびその関連論理
の動作について以下に検討する。
ロセッサ・システムを示したものである。データ処理装
置54,60,66はそれぞれ、XMEM制御ビット5
2とその関連論理を有する任意の種類のデータ処理装置
でよい。単純化するため、データ処理装置54,60,
66はすべて図1のデータ処理装置10と同一であると
仮定する。
ス58と双方向に接続されている。データ処理装置60
およびメモリ62はバス64と双方向に接続されてい
る。データ処理装置66およびメモリ68はバス70と
双方向に接続されている。バス58は、バス・スイッチ
72を介して、バス64と双方向に結合されている。バ
ス64は、バス・スイッチ74を介してバス70と双方
向に結合されている。バス64はバス・スイッチ76を
介して、バス78と双方向に接続されている。
・スイッチを介して他のバスと通信できる複数のローカ
ル・バスを配列したものである。同一のローカル・バス
上にあるプロセッサと他の装置とは、そのローカル・バ
スのみを用いて互いに通信できる。しかしプロセッサが
別のローカル・バス上の装置と通信を希望する場合に
は、1つまたは複数のバス・スイッチおよび(恐らく)
他の中間バスを介して、2つのローカル・バス間で情報
を伝達しなければならない。
内のある記憶位置を読み取りたい場合には、伝送を実行
するのにローカルバス、すなわちバス58しか必要がな
い。データ処理装置54は最初にバス58のバス・マス
タシップについてアービトレーションを得る。注意すべ
きことは、あるバスに関して現在のバス・マスタである
ことは、当該バスの所有権を有しているのと同じだとい
うことである。データ処理装置54がバス58の所有権
を握ったなら、データ処理装置54は、読み取りを実行
すべきことを示す信号と共に、アドレスをバス58を介
してメモリ56に単に送出する。メモリ56は、該当す
る記憶位置にアクセスした後、バス58を介して当該メ
モリ位置に含まれるデータを返す。この情報転送にはバ
ス58だけが関与している。
どより遠隔のメモリ内のある記憶位置を読み取りたい場
合には、その転送を実施するのにバス58,64,70
のすべてが必要になる。データ処理装置54は最初にバ
ス58のバス・マスタシップについてアービトレーショ
ンを得る。ついでデータ処理装置54は、バス・スイッ
チ72を介してバス64のバス・マスタシップについて
アービトレーションを得る。最後にデータ処理装置54
はバス・スイッチ74を介してバス70のバス・マスタ
シップについてアービトレーションを得る。注意すべき
ことは、データ処理装置54は、残りのバスの所有権を
獲得しようとしている間、所有権を獲得しているバスを
専有していることである。
64,70全部の所有権を獲得した上でなければ、前記
3つのバスを介してメモリ68にアドレスおよび読み取
り信号を送出できない。メモリ68は、アドレスおよび
読み取り信号を受け取ったなら、前記アドレスが示す記
憶位置に内部的にアクセスする。メモリ68が、アクセ
スした記憶位置に含まれているデータを返すのに、再
び、3つのバス全部の所有権が必要になる。3つのバス
58,64,70はすべて、アドレス情報の転送と、そ
の後のデータ情報の転送の両方に関与している。
ッサ・システムを用いて説明する。バスをロックしない
ことの長所は、分割バス・トランザクションおよび/ま
たは逐次制御方式を用いるマルチプロセッサ・システム
において最も顕著になる。したがってバス58,64,
70は本実施例では分割トランザクション・バスおよび
逐次制御バスの両方であると見なされる。
テムは、異なるプロセッサがアドレス・バスとデータ・
バスの所有権を同時にもてるようにするシステムであ
る。この種のバスを分割トランザクション・バスとい
う。一例として、分割トランザクション・バスを用いる
場合、マイクロプロセッサ#1はマイクロプロセッサ#
2がデータ・バスを用いるのと同時に、アドレスバスを
使用できる。非分割トランザクション・バスでは、同じ
プロセッサが、アドレス・バスとデータ・バスの両方の
バス・マスタになる。したがって非分割トランザクショ
ン・バスを用いる場合には、アドレス・バスとデータ・
バスの所有権は分割できない。分割トランザクション・
バスは、バスの帯域幅を増すために、マルチプロセッサ
・システムでよく用いられる。
アドレス段階を別のトランザクションのデータ段階にオ
ーバラップできるバスである。多くのマルチプロセッサ
・バスは、アドレス・バスとデータ・バスの両方を介し
て情報転送を最大限に行うために、分割トランザクショ
ンと逐次制御方式とを結合している。
る特定の命令、すなわちXMEM(レジスタとメモリを
交換)命令の間だけ使用できる。XMEM命令は、メモ
リの内容を、図1のレジスタ・ファイル22に位置する
レジスタの内容と交換する。すなわち、XMEM命令
は、ある記憶位置の内容を、レジスタの内容と交換する
わけである。当該記憶位置が最初値「X」を含んでお
り、レジスタが最初値「Y]を含んでいる場合に、XM
EM命令はこれらの内容を交換する。XMEM命令の実
行後、当該記憶位置は値「Y」を含み、レジスタは値
「X」を含むようになる。XMEM命令は、図1に示す
回路の部分によって、従来の方法で受け取られ、実行さ
れる。
マルチプロセッサ・システムで役立つ。特定のシステム
資源を使用したいプロセッサは、その資源が使用可能か
どうかを見るために、当該資源のセマフォーを読み取
る。資源が使用可能でない場合には、プロセッサは、定
期的にセマフォーを読み取ることによって、このセマフ
ォーを引き続きポーリングする。セマフォーの値が資源
の使用可能を示したなら、プロセッサはXMEM命令を
実行し、この命令によって最初にセマフォーの現在の値
をレジスタにロードし、ついでセマフォーに新しい値を
書き込んで、当該資源が現在使用中であることを示す。
たセマフォーの値を見て、当該資源が使用中か使用可能
かを判定する。セマフォーが資源の使用可能を示すな
ら、プロセッサはXMEM命令の開始時に資源が使用可
能であったことを知る。また先行技術の装置では、XM
EM命令中バスをロックする必要があったので、プロセ
ッサは、XMEM命令の読み取り部分と書き込み部分と
の間、他のプロセッサがセマフォーにアクセスできなか
ったことを知る。そのため、プロセッサは、結果として
衝突が起こらないということを踏まえて、自由に資源を
使用できる。
ドされたセマフォーが、当該資源の使用中を示す場合に
は、プロセッサはセマフォーの最新のポーリング読み取
りと、XMEM命令の実行の間に、別のプロセッサが当
該資源を獲得したことを知る。そのため資源が使用可能
状態を示すまで、プロセッサは資源を使用せず、代わり
に、セマフォーをポーリングし続けるべきであることを
知る。
とレジスタの内容を交換するXMEM命令は、あるバス
に関して、XMEM動作が発生しているときを示すバス
・ロック信号を伴っていた。メモリおよびバス・アービ
トレーション論理はこのバス・ロック信号を用いて、X
MEM命令の読み取りとその後の書き込みが、バスの所
有権を獲得している別のプロセッサによって決して邪魔
されないように保証していた。プロセッサに対して、X
MEM命令の読み取りとその後の書き込みが、分かち難
い一組の動作として実行されるように保証するために
は、XMEM命令の間、バスをロックしなければならな
かった。XMEM命令の読み取り部分と書き込み部分と
の間で、他のプロセッサがバスの所有権を獲得できた場
合には、XMEMはセマフォー転送に役立たなくなる。
りバス・サイクルと、XMEM書き込みバス・サイクル
との間、バスをロックする必要がない。そのため一部の
バス環境では、バスの潜在的処理能力が大幅に増加す
る。先行技術のデータ処理装置では、XMEM命令は読
み取り(「ロード」ともいう)の後に書き込み(「格
納」ともいう)が来ていた。本発明では、XMEM命令
の書き込み部分を、読み取り部分の前に実行できるので
ある。結果として、バスをロックする必要はない。たと
えば図3で、データ処理装置54が、メモリ68に位置
するセマフォーにアクセスすることを希望していると仮
定する。先行技術のシステムでは、3つのバス58,6
4,70はすべて、XMEM命令の読み取り部分とその
後の書き込み部分の両方の実行中、ロックしなければな
らなかった。しかし本発明では、XMEM命令の読み取
り部分と書き込み部分の両方の実行中、3つのバスすべ
てを絶えずロックしなくても、同じXMEM命令を実行
できる。
すれば、XMEM命令の書き込み部分と読み取り部分と
の間、バスをロックする必要がない。先行技術のシステ
ムにおいてバスをロックするのに用いたバス信号は代わ
りに、ただXMEM命令が現在実行中であることを示す
のに用いることができる。
M命令を実行する新しい方法は、変更SMEM命令と言
われる。今度は、セマフォーのアプリケーションにおけ
る変更XMEM命令の使用について説明しよう。
場合、発生する最初のバス・サイクルは、セマフォーを
入れている記憶位置への書き込みである。プロセッサは
常に、当該資源が使用中であることを示す値を書き込
む。同じ書き込みバス・サイクルの間、どのプロセッサ
がXMEM命令を開始したのかメモリが把握できるよう
に、プロセッサはプロセッサ識別値も送出する。バス信
号はXMEM命令が現在実行中であることを示すのに使
用できる。メモリは、プロセッサから書き込みを受け取
ると、セマフォーの既存の値をバッファにロードし、つ
いで新しい値を同じ記憶位置に書き込む。適正なプロセ
ッサに適正なセマフォー値を返すことができるように、
メモリは、セマフォーのバッファ付き値と共にプロセッ
サ識別値も格納する。
ッサはいずれも、資源が使用中であることを示す値を読
み取ることになる。またXMEM命令の実行を試みるプ
ロセッサはいずれも、資源が使用中であることを示す同
じ値をセマフォーに書き込み直すだけである。
が受け取るセマフォー値は、第1プロセッサが以前書き
込んだ値、すなわち、資源の使用中を示す値だというこ
とである。そのため第2プロセッサのXMEM命令の読
み取り部分が第1プロセッサの読み取り部分よりも前に
実行される場合には、メモリは第2プロセッサの識別値
を受け取り、資源の使用中を示すセマフォー値を第2プ
ロセッサに返す。また第1プロセッサのXMEM命令の
読み取り部分が最終的に実行されると、メモリは第1プ
ロセッサの識別値を受け取り、資源が使用可能であるこ
とを示すバッファ付きセマフォー値を返す。このため一
度に1つのプロセッサしか、資源が使用可能であること
を示すセマフォー値を受け取れない。
4がメモリ68に位置するセマフォーにアクセスするこ
とを希望していると仮定する。プロセッサ54は変更X
MEM命令を実行する。第1バス・サイクルは、データ
処理装置54からメモリ68への書き込みである。デー
タ処理装置54は書き込みのために3つのバス58,6
4,70すべてを使用しなければならないが、バス・ロ
ックは必要ない。1回のバス・サイクル書き込みの後、
データ処理装置54はバスの所有権を放棄し、他のプロ
セッサが自由に当該バスを使用できる。データ処理装置
54が3つのバスのアービトレーションを行い、再び所
有権を取り戻すと、XMEM命令の読み取り部分が実行
され、データ処理装置は、セマフォーの適正な値を受け
取ることができる。
源の使用可能状態を示すセマフォー値を受け取らないの
で、重要な一貫性が保たれている。また先行技術のシス
テムではXMEM命令の読み取り部分と書き込み部分と
の間、バスのロックを必要としたが、この一貫性はロッ
クしなくても得られる。
いては、どのプロセッサが変更XMEM命令を実行して
いるか示すために、なんらかの方法で、書き込みサイク
ルおよび読み取りサイクルに標識を付ける必要があるこ
とである。この表示を行わない場合には、システムは、
XMEM転送中にメモリに書き込みを行う第1プロセッ
サが、資源の使用可能状態を示す初期セマフォー値を読
み取って受け取る唯一のプロセッサであるように保証す
ることによって、一貫性を確保する必要がある。XME
M転送では、XMEM命令の間になんらかの順序で発生
する段階、すなわち、読み取りバス・サイクルと書き込
みバス・サイクルを必要とする。
MEM命令として実行されるのか、または変更XMEM
命令として実行されるのかユーザが判定できるようにし
ている。標準XMEM命令は既存の多くのバス環境で依
然必要とされており、読み取りサイクルの後に書き込み
サイクルを実行する。変更XMEM命令は分割トランザ
クション・バス・システムにおいて帯域幅を改善するの
に必要とされており、これはバッファ付き書き込みサイ
クルの後に読み取りサイクルを実行する。
標準XMEM命令として実行されるのか、または変更X
MEM命令として実行されるのか判定するために、制御
レジスタ・ビットを用いている。使用する制御ビット
は、図2に示すXMEM制御ビット52である。本実施
例では、XMEM制御ビット52が、デジタル論理状態
「ゼロ」に相当する2進数のゼロ値の場合には、標準X
MEM命令が実行される。XMEM制御ビット52がデ
ジタル論理状態「1」に相当する2進数の1の値をとる
場合には、変更XMEM命令が実行される。
施例では、ユーザが、実行するXMEM命令の種類を選
択できる別の方法として、XMEM制御ビット52の代
わりに、制御ピン27を使用できる。制御ピン27の上
に、デジタル論理状態「1」に相当する電圧、またはデ
ジタル論理状態「0」に相当する電圧をかけることによ
って、ユーザは実行するXMEM命令の種類を選択でき
る。図1に示すように、制御ピン27はロード/格納実
行装置20に直接接続できる。このピンは外部バス12
に結合してもしなくてもよい。これに代わる方法とし
て、ピンを外部バス12およびバス・インタフェース4
8に接続することもできる。この場合、ロード/格納実
行装置20は、命令キャッシュ44,スーパースカラ命
令装置24および内部バス26を介して、ピンから制御
情報を受け取ることができる。
他の実施例では、実行するXMEM命令の種類をユーザ
が選択できる方法として、命令自体の2進符号内部の1
つまたは複数のビットのビット・フィールドを、制御レ
ジスタ・ビットの代わりに使用できる。本実施例の1つ
における命令は、複数のビット・フィールドに配列され
た32個のビットによって構成される。他の実施例で
は、合計ビット数が32個以上でも以下でもよい。XM
EM命令の適正なビット・フィールドに適正な2進値を
入れることにより、ユーザは、実行するXMEM命令の
種類を選択できる。たとえば、1つのビットのビット・
フィールドを2進数のゼロ値と共に用いて標準XMEM
命令を表したり、2進数の1の値と共に用いて変更XM
EM命令を表したりできる。
ィールドを用いてXMEM命令の段階もしくはタスクの
順序を選択する場合でも、XMEM命令は依然、他の命
令と同じ方法で、データ処理装置10が受け取る。他の
命令同様、XMEM命令は外部バス12からバス・イン
タフェース48によって受け取られる。XMEM命令の
各種のビット・フィールドは、XMEM命令の段階もし
くはタスクの順序を選択するのに用いるビット・フィー
ルドを除き、他の命令のビット・フィールドと同じよう
に用いられる。このタスク順序付けビット・フィールド
は、命令の実行を制御するのに用いられるロード/格納
実行装置20に転送される。本実施例では、タスク順序
付けビット・フィールドは、命令キャッシュ44,スー
パースカラ命令装置24および内部バス26を介して、
ロード/格納実行装置20に転送される。
M転送中にバスをロックする必要をなくすることによっ
て、分割トランザクション・バスの帯域幅を潜在的に増
加できる。XMEM制御ビット52によって、ユーザ
は、各自のシステムに最適なXMEM命令を選択でき
る。標準バス環境のシステムを有するユーザは、標準X
MEM命令を選択できる。また分割トランザクション・
バスとより複雑なバス環境を有するユーザは、変更XM
EM命令を選択できる。このソフトウェア制御を用いれ
ば、同じデータ処理装置10によって、各種のバス環境
を利用するユーザのニーズに答えることができる。また
このソフトウェア制御によって、ユーザは、各自のシス
テムのためにデータ処理装置10を最適化できる。
命令を実施するのに必要な段階もしくはタスクの順序を
変更するだけであることに注意すべきである。XMEM
命令を実行する場合、XMEM制御ビット52の論理状
態と関係なく、常に同じ段階もしくはタスクが実行され
るのであり、段階もしくはタスクの順序だけが変更され
る。このため命令の結果もしくは成果はユーザにとって
同じである。標準および変更XMEM命令の両方の成果
もしくは結果として、レジスタ内の数値と記憶位置の値
が交換される。しかしユーザがこの命令の実行に用いる
段階の順序を選択できるという事実によって、結果とし
て一定のバス環境ではバス帯域幅を大幅に改善できる。
令に関連して説明しているが、複数の段階もしくはタス
クを有するいずれの命令についても使用できる。本発明
によって、ユーザは、命令の段階もしくはタスクの順序
を変更できる。ここで検討しているXMEM命令は2通
りの順序しかないが、本発明の他の実施例では、複数の
制御ビットを用いて、被選択命令の段階もしくはタスク
の複数通りの順序の中から選択することができる。
きたが、当業者はさらに変形および改良を加えられよ
う。
限定されないこと、また本発明の精神および範囲から逸
脱しないすべての変更をカバーすることが添付クレイム
で意図されていることが、是とされる。
ステムおよびバスをブロック図形式で示したものであ
る。
ジスタ・ファイルをブロック図形式で示したものであ
る。
システムをブロック図形式で示したものである。
Claims (3)
- 【請求項1】 複数の段階を有する命令を実行できるデ
ータ処理装置(10)であって、前記装置は:命令の実
行を制御する第1手段(20);および前記第1手段に
結合されており、第1論理状態および第2論理状態を有
する第2手段(52または27)であって、前記第2手
段(52または27)が前記第1論理状態にある場合に
は、前記第1手段(20)に第1順序で複数の段階を実
行せしめ、前記第2手段(52または27)が前記第2
論理状態にある場合には、前記第1手段(20)に、第
2順序で複数の段階を実行せしめるための前記第2手段
(52または27);によって構成されることを特徴と
するデータ処理装置。 - 【請求項2】 外部メモリ(56)に結合でき、また命
令を実行できるデータ処理装置(10)であって、前記
装置(10)は:命令の実行を制御する第1手段(2
0);および前記第1手段に結合されており、第1論理
状態および第2論理状態(20)を有する第2手段(5
2または27)であって、前記第2手段(52または2
7)が前記第1論理状態にある場合には、前記第1手段
(20)に、命令の読み取り段階の実行後、命令の書き
込み段階を実行せしめ、前記第2手段(52または2
7)が前記第2論理状態にある場合には、前記第1手段
(20)に、命令の書き込み段階の実行後、命令の読み
取り段階を実行せしめるための前記第2手段(52また
は27);によって構成されることを特徴とするデータ
処理装置。 - 【請求項3】 データ処理装置(10)において命令を
実行するのに必要な複数のタスクの順序を決定する方法
であって、前記方法は:前記データ処理装置(10)の
ユーザが、制御手段(52または27)の論理状態を決
定できるようにする段階;前記制御手段(52または2
7)を用いて、命令のための複数のタスクの第1順序
と、同じ命令のための同じ複数のタスクの第2順序の内
1つを、被選択順序として選択する段階;および前記被
選択順序を用いて命令を実行する段階;によって構成さ
れることを特徴とする複数のタスクの順序を決定する方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83747092A | 1992-02-14 | 1992-02-14 | |
US837470 | 1992-02-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06119297A true JPH06119297A (ja) | 1994-04-28 |
JP3431941B2 JP3431941B2 (ja) | 2003-07-28 |
Family
ID=25274538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04608593A Expired - Lifetime JP3431941B2 (ja) | 1992-02-14 | 1993-02-12 | データ処理システムにおける命令の実行順序を決定する方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5594880A (ja) |
EP (1) | EP0555680B1 (ja) |
JP (1) | JP3431941B2 (ja) |
KR (1) | KR100315880B1 (ja) |
DE (1) | DE69326705T2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3411300B2 (ja) * | 1992-02-18 | 2003-05-26 | 株式会社日立製作所 | 情報処理装置 |
US5734874A (en) * | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
US5732244A (en) * | 1995-07-24 | 1998-03-24 | Unisys Corp. | Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag |
US5872980A (en) * | 1996-01-25 | 1999-02-16 | International Business Machines Corporation | Semaphore access control buffer and method for accelerated semaphore operations |
US5784640A (en) * | 1996-03-18 | 1998-07-21 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros |
US5794068A (en) * | 1996-03-18 | 1998-08-11 | Advanced Micro Devices, Inc. | CPU with DSP having function preprocessor that converts instruction sequences intended to perform DSP function into DSP function identifier |
US5754878A (en) * | 1996-03-18 | 1998-05-19 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros |
US5781792A (en) * | 1996-03-18 | 1998-07-14 | Advanced Micro Devices, Inc. | CPU with DSP having decoder that detects and converts instruction sequences intended to perform DSP function into DSP function identifier |
FR2759472B1 (fr) * | 1997-02-12 | 1999-05-07 | Thomson Csf | Registre semaphore rapide a fonctionnement securise sans protocole de bus specifique |
US6263425B1 (en) * | 1997-07-08 | 2001-07-17 | National Semiconductor Corporation | Circuit that implements semaphores in a multiprocessor environment without reliance on atomic test and set operations of the processor cores |
US6000029A (en) | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for affecting subsequent instruction processing in a data processor |
US6032178A (en) * | 1998-01-12 | 2000-02-29 | Siemens Aktiengesellschaft | Method and arrangement for data transmission between units on a bus system selectively transmitting data in one of a first and a second data transmission configurations |
US6415369B1 (en) * | 2000-08-29 | 2002-07-02 | Agere Systems Guardian Corp. | Shared devices and memory using split bus and time slot interface bus arbitration |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699526A (en) * | 1971-03-26 | 1972-10-17 | Ibm | Program selection based upon intrinsic characteristics of an instruction stream |
US3886525A (en) * | 1973-06-29 | 1975-05-27 | Ibm | Shared data controlled by a plurality of users |
US4142246A (en) * | 1976-12-23 | 1979-02-27 | Fuji Electric Company, Ltd. | Sequence controller with dynamically changeable program |
US4336602A (en) * | 1979-09-24 | 1982-06-22 | Control Data Corporation | Network for generating modified microcode addresses |
US4354227A (en) * | 1979-11-19 | 1982-10-12 | International Business Machines Corp. | Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles |
US4510582A (en) * | 1981-06-01 | 1985-04-09 | International Business Machines Corp. | Binary number substitution mechanism |
US4594657A (en) * | 1983-04-22 | 1986-06-10 | Motorola, Inc. | Semaphore for memory shared by two asynchronous microcomputers |
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
US4881194A (en) * | 1987-11-16 | 1989-11-14 | Intel Corporation | Stored-program controller for equalizing conditional branch delays |
US4815039A (en) * | 1988-01-11 | 1989-03-21 | Texas Instruments Incorporated | Fast real-time arbiter |
US4933901A (en) * | 1988-01-11 | 1990-06-12 | Texas Instruments Incorporated | Method for assigning priority to read and write requests received closely in time |
US5088048A (en) * | 1988-06-10 | 1992-02-11 | Xerox Corporation | Massively parallel propositional reasoning |
US5163140A (en) * | 1990-02-26 | 1992-11-10 | Nexgen Microsystems | Two-level branch prediction cache |
-
1993
- 1993-01-25 DE DE69326705T patent/DE69326705T2/de not_active Expired - Fee Related
- 1993-01-25 EP EP93101064A patent/EP0555680B1/en not_active Expired - Lifetime
- 1993-02-11 KR KR1019930001832A patent/KR100315880B1/ko not_active IP Right Cessation
- 1993-02-12 JP JP04608593A patent/JP3431941B2/ja not_active Expired - Lifetime
-
1994
- 1994-05-17 US US08/243,731 patent/US5594880A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5594880A (en) | 1997-01-14 |
DE69326705T2 (de) | 2000-04-27 |
EP0555680B1 (en) | 1999-10-13 |
KR100315880B1 (ko) | 2002-02-19 |
JP3431941B2 (ja) | 2003-07-28 |
EP0555680A1 (en) | 1993-08-18 |
DE69326705D1 (de) | 1999-11-18 |
KR930018389A (ko) | 1993-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0760135B1 (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
US5444853A (en) | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's | |
US6115761A (en) | First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment | |
US20020165896A1 (en) | Multiprocessor communication system and method | |
JP3431941B2 (ja) | データ処理システムにおける命令の実行順序を決定する方法および装置 | |
JPH0772889B2 (ja) | 情報処理システム | |
JP2001117859A (ja) | バス制御装置 | |
AU603876B2 (en) | Multiple i/o bus virtual broadcast of programmed i/o instructions | |
KR20040017822A (ko) | 데이터 전송 방법, 시스템 및 컴퓨터 판독가능 매체 | |
JPH0997184A (ja) | 効率的な割込み処理を含む情報処理システム | |
JP4642531B2 (ja) | データ要求のアービトレーション | |
JP2591502B2 (ja) | 情報処理システムおよびそのバス調停方式 | |
JP2003271574A (ja) | 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法 | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
US5666545A (en) | Direct access video bus computer system and method for transferring video information using a dedicated video bus | |
JP2813182B2 (ja) | マルチプロセッサコンピュータ複合装置 | |
KR960005395B1 (ko) | 최소 경합 프로세서 및 시스템 버스 시스템 | |
JP2001236335A (ja) | 分散メモリ型並列計算機及びそのデータ転送終了確認方法 | |
JPH05216794A (ja) | 相互問い合わせ要求に優先権を与える方法及び装置 | |
JPH1185673A (ja) | 共有バスの制御方法とその装置 | |
EP0537898B1 (en) | Computer system including video subsystem | |
JPH1173403A (ja) | クロスバスイッチ制御回路 | |
JPH07114522A (ja) | マルチプロセッサシステム | |
JP2001075826A (ja) | 並列計算機における高効率セマフォ処理方式 | |
JPH0512219A (ja) | プロセス転送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090523 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100523 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100523 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110523 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120523 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130523 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130523 Year of fee payment: 10 |