JPH08241197A - 命令実行順の回転式優先順位選択回路 - Google Patents

命令実行順の回転式優先順位選択回路

Info

Publication number
JPH08241197A
JPH08241197A JP7316199A JP31619995A JPH08241197A JP H08241197 A JPH08241197 A JP H08241197A JP 7316199 A JP7316199 A JP 7316199A JP 31619995 A JP31619995 A JP 31619995A JP H08241197 A JPH08241197 A JP H08241197A
Authority
JP
Japan
Prior art keywords
signal
carry
selection
circuit
priority
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
Application number
JP7316199A
Other languages
English (en)
Other versions
JP2866606B2 (ja
Inventor
Stephen E Rich
スティーブン・エメリー・リッチ
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 JPH08241197A publication Critical patent/JPH08241197A/ja
Application granted granted Critical
Publication of JP2866606B2 publication Critical patent/JP2866606B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 順不同に命令を実行させるマイクロプロセッ
サの設計において、いくつかの可能性のある命令の中で
次に実行すべき命令を選択すると共に、一方でクリティ
カル・パスにおけるゲート遅延を最小にする回路を提供
する。 【解決手段】 本発明によれば、時間的に1番古い実行
待ち命令を、もしそれが実行可能(即ちオペランドがあ
る)ならば実行すべき命令として選択し、1番古い命令
が実行可能でなければ、次に古い命令をそれが実行可能
ならば実行するというようにして命令を選択する、優先
順位論理回路が提供される。ここで使われているトポロ
ジは、高速並列加算機での考え方を借用している。この
回路中の各ノードにある論理は、キャリー発生及びキャ
リー伝播と同等のものをもつ。キャリーはループ中をた
どり、優先順位の低い入力応答を阻止する。このループ
はポインタ・バスによって指定されているノードにおい
て、自身にフィードバックしないように切断される。こ
の回路におけるゲート遅延数は旧来の選択回路の半分で
ある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は概して、プログラム
記憶式データ処理マシンのパイプライン化されたプロセ
ッサに渡される命令の制御に関し、より詳細には、高性
能を達成するために、命令を順不同に実行させるアーキ
テクチャを有するマイクロプロセッサにおいて、次に実
行される命令を選択する優先順位選択論理回路に関す
る。
【0002】
【発明が解決しようとする課題】機械語命令を順不同に
発行し実行できるマイクロプロセッサは、論理的には5
0%にも達する性能改善が達成できる。しかしながらこ
の潜在的な性能改善は、実際の実現状態においては、命
令選択回路の設計によって大きく制限されることにもな
る。ツリー(木)構造、又は連鎖構造をもつ優先順位選
択回路が知られている。12の入力をもつツリー構造は
4つの階層を必要とする(log212)。このケース
を解決するには、信号はツリーの最低の階層から最上層
に伝わり、再び最低層に戻らなければならない。このよ
うにして信号は、出力点に達するまでに7つのノードを
通過する必要がある。固定順位の優先順位選択回路で
は、各ノードにおける論理は少くとも1階層分の深さが
なければならない。回転式優先順位選択回路では、各ノ
ードにおける論理ははるかに複雑であり、少くとも2つ
又は3つの階層の深さが必要である。ツリー構造をもつ
12ビットの回転式優先順位選択回路の最良の設計は、
結果として14段の遅延経路をもつことになる。連鎖構
造の論理の深さは、解決すべき入力数にリニア(線形)
に比例する。固定優先順位選択回路では、12段の遅延
経路をもつことになる。12ビットの回転式優先順位選
択回路は、全体の遅延経路に少くとも1段加えることに
なり、13のゲート遅延をもつクリティカル・パスを生
じさせる。
【0003】そこで本発明の目的は、順不同に命令を実
行させるマイクロプロセッサの設計において、いくつか
の可能性のある命令の中で次に実行すべき命令を選択す
ると共に、一方でクリティカル・パスにおけるゲート遅
延を最小にする回路を提供することである。
【0004】
【課題を解決するための手段】本発明によれば時間的に
1番古い実行待ち命令を、もしそれが実行可能(即ちオ
ペランドがある)ならば実行すべき命令として選択し、
1番古い命令が実行可能でなければ、次に古い命令をそ
れが実行可能ならば実行するというようにして、命令を
選択する優先順位論理回路が提供されている。ここで使
われているトポロジは、高速並列加算器での考え方を借
用している。この回路中の各ノードにおける論理は、キ
ャリー発生及びキャリー伝播と同等のものをもつ。「キ
ャリー」はループの中をたどり、優先順位の低い入力応
答を阻止する。このループはポインタ・バスにより指定
されているノードにおいて、自身へフィードバックしな
いように切断される。このネットワークにおけるゲート
遅延数は、12ビットの回転式優先順位選択回路の場
合、6段までに少なくできる。特別な実施形態では、実
際に7段のゲート遅延があり、スタート点における1つ
の余分の反転回路が、入力応答とポインタ・バスに対す
る真数信号及び補数信号を発生させるのに使われる。
【0005】
【発明の実施の形態】ここで図を参照し、特に図1を見
ると本発明の良好な実施例に従う、高性能回転式優先順
位選択回路のモジュール式設計が示されている。この回
路は3つの4ビット優先順位選択モジュール11、1
2、及び13を含む。示されている例は12ビット用の
もので、4ビットの倍数として構成されているが、モジ
ュール式の設計により4の倍数である、他のバス・サイ
ズやデータ・サイズも可能である。これらの優先順位選
択モジュールは、4つの12ビット・バス14〜17の
それぞれの選択されたビット・ラインに接続される。1
4は優先順位バス、15はその補数バス、16はデータ
・バス、17はその補数バスである。ここで使用してい
る取決めでは、補数信号及び補数バスは添字「b」で明
示され(通常は反転を意味するバーが記号の上に付され
る)、バス・ラインは記号「<」と「>」との間に表示
されている。そこで例えば、s<0,11>と表示され
ている優先順位バス14の12のビットの補数は、sb
<0,11>と表示されている。優先順位バス14、s
<0,11>は、自身の最初の即ち最下位の4ビット、
s<0,3>をモジュール11に接続させ、次の4ビッ
ト、s<4,7>をモジュール12に接続させ、最後の
即ち最上位4ビット、s<8,11>をモジュール13
に接続させている。他の3つのバスのそれぞれに対して
も同様の接続がなされている。またモジュール11の4
つの出力ビット、o<0,3>は、それぞれモジュール
12及びモジュール13からの4つの出力ビット、o<
4,7>、及びo<8,11>と結合され、優先順位選
択回路の出力バス18を形成している。回転式の選択を
可能にするため、モジュール11、12、及び13のそ
れぞれはキャリー入力、及びキャリー出力の接続をも
ち、フィードバック・ループ19を形成している。キャ
リー入力、及びキャリー出力はそれぞれ真数信号及び補
数信号、即ちci、cib、co、cobの形で与えら
れている。
【0006】優先順位バス14上の入力ビットの中には
ただ1つの高レベル(アクティブ)ビットがあり、これ
は待ち時間を基準にしたときの最優先の命令を表してい
る。12のビットは12の実行待ち命令を表している。
いかなる時点においてもすべての命令が有効で実行可能
であるということはない。データ・バス16、d<0,
11>及びその補数のバス17、db<0,11>も1
2のビットをもつ。アクティブなdビットは、対応する
命令が有効なオペランドをもち、実行可能であることを
示す。優先順位バス14によって指定される最優先命令
は、有効な実行可能命令を表わすときもあり、そうでな
いときもある。
【0007】図1に示す回転式優先順位選択回路の機能
的役割は、優先順位バス14及びデータ・バス16(並
びにそれらの補数のバス15及び17)の双方を調べ、
次の基準に従って命令を選択することである。 (1) 優先順位バス14によって指定された命令をも
しそれが有効なら選択する。 (2) 上記(1)が満足されないときは回転方式で次
の命令を見つける。例えば、もしs<6>がアクティブ
でありd<6>がアクティブでないときは、d<5>を
調べ次にd<4>を調べるという順に、アクティブなd
<n>が見つかるまで続ける。 (3) 前記に従って12ビットの出力バスを設定す
る。出力バス18中では、実行される命令に対応するた
だ1つのビットがアクティブである。 この基準は、入力から出力までの間になすべき論理判断
の数で決まる最少限の時間で満たされる。
【0008】モジュール11、12、13の構成は、図
2により詳細に示されており、この図についてこれから
説明する。図示された例はモジュール11であり、この
モジュールは4つのバス14〜17のそれぞれの4つの
最下位ビットを受信し、出力バス18の4つの最下位ビ
ットを生成する。それ以外のことについては他のモジュ
ール(モジュール12及び13)も同じである。このモ
ジュール自身はいくつかの標準モジュールで構成され、
機能的にはデータ回路及びキャリー回路に分けられてい
る。データ回路では、最初の標準モジュールは、キャリ
ー入力がゼロであることを前提にしている最初の2ビッ
ト優先順位選択回路S2_0と、キャリー入力がアクテ
ィブ(高レベル)であることを前提にしている他の2ビ
ット優先順位選択回路S2_1とを含んでいる。これら
のモジュールのそれぞれが2つずつ使用される。第1の
S2_0モジュール21は信号線s<1>、d<1>、
及びdb<0>に接続され、ob<1>に対応する出力
信号を4入力選択回路22の1入力端に送る。第1のS
2_1モジュール27は信号線s<0>、s<1>、d
<0>、db<0>、及びd<1>に接続され、ob<
0>及びob<1>に対応する2つの出力信号を選択回
路22に送る。選択回路22の4つ目の入力端はob<
0>に対応し、db<0>線に直接に接続されている。
キャリー入力信号ci及びその補数信号cibは選択回
路22で使われ、出力バス18にo<0>及びo<1>
を出力する。具体的には、選択回路22は、前段のモジ
ュール13からのキャリー入力信号ciがゼロ(cib
がアクティブ)であれば、その4ビット入力のうちの右
側2ビット、即ちdb<0>及びモジュール21の出力
を選択し、それらを反転してo<0>及びo<1>とし
て出力する。また、キャリー入力信号ciがアクティブ
であれば、左側の2ビット入力、即ちモジュール27か
らの2つの出力を選択し、それらを反転してo<0>及
びo<1>として出力する。
【0009】第2のS2_0モジュール23は信号線s
<3>、d<3>、及びdb<2>に接続され、ob<
3>に対応する出力は、第2及び第3の選択回路25及
び26に渡される前に、反転回路24で先ず反転され
る。信号線d<2>は、選択回路25及び26のo<2
>に対応する入力に直接に接続される。第2のS2_1
モジュール28は信号線s<2>、s<3>、d<2
>、db<2>、及びd<3>に接続され、ob<2>
及びob<3>に対応する出力は、選択回路25及び2
6に渡される前に、反転回路29及び30で先ず反転さ
れる。選択回路25及び26は、選択論理回路31によ
って発生された選択信号に応答し、それぞれ2つの出力
信号を発生させる。選択回路25及び26のそれぞれ2
つの出力信号は、第4の選択回路32に渡され、この選
択回路32もまた選択回路22と同様に、ci及びci
b信号に応答して出力バス18のo<2>及びo<3>
に対応する2つの出力信号を出す。選択回路25、2
6、及び32における選択動作は上述の選択回路22と
同じであり、それぞれの選択信号に応じて、右側の2ビ
ット入力又は左側の2ビット入力を選択して、それらを
反転して出力する。
【0010】キャリー回路は、優先順位バス及びデータ
・バス(並びにその補数バス)に接続された2つのモジ
ュール、即ちキャリー発生回路33及び34を使ってい
る。キャリー発生回路33は信号線s<0>、sb<0
>、s<1>、sb<1>、d<0>、db<0>、d
<1>、及びdb<1>に接続されている。キャリー発
生回路33は4つの出力、即ちローカル・キャリー信号
及びその補数信号、並びにローカル選択信号及びグロー
バル選択信号を供給する。ローカル選択信号は、このモ
ジュール11で発生されたローカル・キャリーを選択す
る信号であり、グローバル選択信号は、前段のモジュー
ル13からループ19(図1参照)を介して送られてき
たキャリー入力(グローバル・キャリー)を選択する信
号である。これら4つのそれぞれが選択論理回路31に
入力される。更にローカル選択信号及びグローバル選択
信号は、選択論理回路31により制限されるトライ・ス
テート回路35に入力される。キャリー発生回路34は
信号線s<2>、sb<2>、s<3>、sb<3>、
d<2>、db<2>、d<3>、及びdb<3>に接
続されている。キャリー発生回路34は4つの出力、即
ちローカル・キャリー信号及びその補数信号、並びにロ
ーカル選択信号及びグローバル選択信号を供給する。そ
のうちローカル選択信号及びグローバル選択信号のみが
選択論理回路31に入力される。キャリー発生回路34
から出るローカル・キャリー信号及びその補数信号は第
2のトライ・ステート回路36に入力され、キャリー発
生回路34から出るローカル選択信号及びグローバル選
択信号も、トライ・ステート回路36を制御するのに使
われる。第3のトライ・ステート回路37があり、この
回路は入力としてci及びcib信号を受信し、選択論
理回路31からの出力信号によって制御される。3つの
トライ・ステート回路の出力は接続されて、モジュール
のキャリー出力信号co及びその補数信号cobとな
る。
【0011】選択論理回路31はその詳細が図3に示さ
れており、複数のNORゲート及びNANDゲートを含
んでいる。NORゲート40及びNANDゲート41の
組合わせは、グローバル・キャリーをアクティブ(高レ
ベル)と見なしている。NORゲート40は、入力とし
てキャリー発生回路33からローカル・キャリー信号、
及びグローバル選択信号を受取り、選択回路25に選択
信号Aを送る。NANDゲート41は、キャリー発生回
路33からローカル・キャリー信号の補数信号b、及び
ローカル選択信号を受取り、選択回路25に選択信号B
を送る。第2のNORゲート42及びNANDゲート4
3の組合わせは、グローバル・キャリーを0であると見
なしている。NORゲート42は、キャリー発生回路3
3からローカル・キャリー信号の補数信号b、及びグロ
ーバル選択信号を受取り、選択回路26に選択信号Dを
送る。NANDゲート43は、キャリー発生回路33か
らローカル・キャリー信号、及びローカル選択信号を受
取り、選択回路26に選択信号Cを送る。選択回路A及
びBは、図2に示した選択回路25の選択動作を制御す
るもので、選択回路25の出力は前段のモジュール13
からのキャリー入力、即ちグローバル・キャリーがアク
ティブ(高レベル)のときに選択回路32によって選択
されるようになっており、したがってこれらの選択信号
A及びBは、グローバル・キャリーがアクティブ(ci
=1)であるときのモジュールの出力o<2>、及びo
<3>を決めるものである。同様に選択回路26を制御
する選択信号C及びDは、グローバル・キャリーがゼロ
(ci=0)であるときの出力を決める。これらの選択
信号A〜Dがどのようなときにアクティブになるかは、
ゲート40〜43の接続を見れば明らかであろう。例え
ば、選択信号Aはキャリー発生回路33からのグローバ
ル選択信号、及びローカル・キャリー信号がいずれもゼ
ロのときにアクティブになり、選択信号Bはローカル選
択信号、及びローカル・キャリー信号の少なくとも1つ
がゼロであればアクティブになる。
【0012】第3のNORゲート44及びNANDゲー
ト45の組合わせは、トライ・ステート回路35に対し
て制御信号を送る。NORゲート44は、キャリー発生
回路33からグローバル選択信号、及びキャリー発生回
路34からローカル選択信号を受取り、トライ・ステー
ト回路35に対して「オン」信号を送る。NANDゲー
ト45は、キャリー発生回路33からローカル選択信
号、及びキャリー発生回路34からグローバル選択信号
を受取り、トライ・ステート回路35に対して「オフ」
信号を送る。第4のNORゲート46及びNANDゲー
ト47の組合わせは、第3のトライ・ステート回路37
を制御するように接続されている。NORゲート46は
キャリー発生回路33からローカル選択信号、及びキャ
リー発生回路34からもローカル選択信号を受取り、ト
ライ・ステート回路37に対して「オン」信号を送る。
NANDゲート47は、キャリー発生回路33からグロ
ーバル選択信号、及びキャリー発生回路34からもグロ
ーバル選択信号を受取り、トライ・ステート回路37に
対して「オフ」信号を送る。トライ・ステート回路35
〜37は、それらのオン信号及びオフ信号の状態に応じ
て、このモジュール11のキャリー発生回路33又は3
4で発生されたローカル・キャリーか、前段のモジュー
ル13からのグローバル・キャリーを次段のモジュール
12に送る。トライ・ステート回路35〜37のオン信
号及びオフ信号の状態を決めるローカル選択信号及びグ
ローバル選択信号の発生論理については図7のところで
説明する。
【0013】S2_0の2ビット選択回路が図4に示さ
れている。この回路は図2のモジュール21及び23に
使われている。図4に示されている接続はモジュール2
1用のものであるが、モジュール23に対する接続も、
同様ではあるが前記のようにわずかの違いがある。例え
ば、モジュール21中の信号線s<1>の代りに、モジ
ュール23ではこの信号線がs<3>に代る。第1のp
チャネル電界効果トランジスタ(FET)51は、ソー
スが電源VDDに、そしてドレインがノード52に接続さ
れている。ノード52は補数出力信号ob<1>を発生
させる。FET51のゲートは信号線d<1>に接続さ
れている。他の2つのpチャネルFET53及び54が
電源VDDとノード52との間に直列に接続されている。
FET53のゲートは信号線db<0>に接続され、F
ET54のゲートは信号線s<1>に接続されている。
第1のnチャネルFET57はソースが回路接地gnd
に、ドレインがノード56に接続されている。FET5
7のゲートは信号線s<1>に接続されている。第2の
nチャネルFET58は、回路接地gndとノード56
との間にFET57と並列に接続されている。FET5
8のゲートは信号線db<0>に接続されている。第3
のnチャネルFET55はノード52とノード56との
間に接続され、そのゲートは信号線d<1>に接続され
ている。図4に示すタイプの相補型金属酸化物半導体
(CMOS)論理回路の慣例のように、FET57及び
58のように並列になっているFETの組はOR機能を
実行し、FET53及び54のように直列になったFE
Tの組はAND機能を実行する。図4の論理回路に入力
されている信号db<0>は、ビット0に対応する命令
が実行可能かどうかを示し(これは補数信号であるか
ら、ゼロであれば実行可能)、d<1>はビット1に対
応する命令が実行可能かどうかを示し(アクティブ即ち
高レベルであれば実行可能)、s<1>はビット1に対
応する命令が最優先の命令かどうかを示す(高レベルで
あれば最優先)。出力ob<1>はビット1に対応する
命令が次の実行のために選択されるかどうかを示す。実
際に選択されたかどうかは、図2の選択回路22の出力
によって示される。
【0014】図5はS2_1モジュールを示し、このモ
ジュールは、この回路が発生する2つの出力に対応して
2つの部分から成っている。図5はモジュール27に対
する接続を示したものであるが、ここでもまたモジュー
ル28に対する接続も同様ではあるが、前記のようなわ
ずかの違いがある。S2_1モジュールの第1の部分
は、電源VDDとノード63との間に並列に接続された、
pチャネルFET61及び62の組をもつ。FET62
のゲートは信号線d<0>に接続され、FET61のゲ
ートは信号線s<0>に接続されている。nチャネルF
ET64及び65の組はノード63と回路接地gndと
の間に直列に接続されている。FET64のゲートは信
号線s<0>に接続され、FET65のゲートは信号線
d<0>に接続されている。ノード63はob<0>に
接続されている。この回路の第2の部分は、電源VDDと
ノード69との間に並列に接続された3つのpチャネル
FET66、67、及び68をもっている。FET66
のゲートは信号線d<1>に接続されている。FET6
7のゲートは信号線s<0>に接続されている。FET
68のゲートは信号線db<0>に接続されている。第
4のpチャネルFET70はノード69をノード71に
接続している。FET70のゲートは信号線s<1>に
接続されている。第1のnチャネルFET72はノード
71とノード73との間に接続されている。FET72
のゲートは信号線s<1>に接続されている。nチャネ
ルFET74及び75の組がノード71とノード73と
の間に直列に接続されている。FET74のゲートは信
号線s<0>に接続され、FET75のゲートは信号線
db<0>に接続されている。最後に第4のnチャネル
FET76がノード73と回路接地gndとの間に接続
されている。FET76のゲートは信号線d<0>に接
続されている。図5の論理回路の各入出力信号の意味は
図4と同様である。出力ob<0>及びob<1>は、
キャリー入力ciがアクティブであれば選択回路22に
より選択される。
【0015】図6はキャリー発生回路33及び34のキ
ャリー発生部分を示している。この図に示されている接
続はキャリー発生回路33用のものである。キャリー発
生回路34用の接続は前述の通りである。回路のこの部
分は、2つのキャリー出力信号に対応して2つの回路に
分けられる。第1の部分には、電源VDDとノード82と
の間に接続された第1のpチャネルFET81がある。
FET81のゲートは信号線db<1>に接続されてい
る。2つのpチャネルFET83及び84は電源VDDと
ノード82との間に直列に接続されている。FET83
のゲートは信号線s<1>に接続され、FET84のゲ
ートは信号線db<0>に接続されている。第1のnチ
ャネルFET85がノード82とノード86との間に接
続されている。FET85のゲートは信号線db<1>
に接続されている。nチャネルFET87及び88の組
が、回路接地gndとノード86との間に並列に接続さ
れている。FET87のゲートは信号線db<0>に接
続され、FET88のゲートは信号線s<1>に接続さ
れている。この回路の第2の部分には、電源VDDとノー
ド92との間に並列に接続された、pチャネルFET9
0及び91の組がある。FET90のゲートは信号線d
<0>に接続され、FET91のゲートは信号線sb<
1>に接続されている。第3のpチャネルFET93が
ノード92とノード94との間に接続されている。ノー
ド94はローカル・キャリー出力信号の補数信号bを送
り出す。第1のnチャネルFET95が、回路接地gn
dとノード94との間に接続されている。FET95の
ゲートは信号線d<1>に接続されている。nチャネル
FET96及び97の組が回路接地gndとノード94
との間に直列に接続されている。FET96のゲートは
信号線d<0>に接続され、FET97のゲートは信号
線sb<1>に接続されている。図6の回路によって発
生されるローカル・キャリー信号は、ビット0又は1に
対応する命令が実行可能かどうかを次段のモジュール1
2に知らせるためのものである。但し、このローカル・
キャリー信号が実際に次段のモジュール12に送られる
かどうかは、トライ・ステート回路35の状態によって
決まる。
【0016】キャリー発生回路の選択回路部分が図7に
示され、ここでもその選択回路部分からの2つの出力に
対応して、2つの部分に分けられる。示されている接続
はキャリー発生回路33用のもので、キャリー発生回路
34用の接続も前述の通りである。第1の部分には2つ
のNANDゲート101及び102があり、それぞれの
出力はNORゲート103に接続されている。このNO
Rゲート103の出力がグローバル選択信号である。N
ANDゲート101の入力は、信号db<0>及びdb
<1>である。NANDゲート102の入力は、信号s
b<0>及びsb<1>である。第2の部分には2つの
NORゲート104及び105があり、それぞれの出力
はNANDゲート106に接続されている。NANDゲ
ート106の出力はローカル選択信号である。NORゲ
ート104の入力は信号線d<0>及びd<1>であ
る。NORゲート105の入力は信号線s<0>及びs
<1>である。
【0017】本発明に従った回転式優先順位選択回路
は、従来の技術で達成されたクリティカル・パスを半分
にすることができ、順不同に命令を実行できるように設
計されたマイクロプロセッサが、自身の潜在的な能力を
最大限に発揮できるようにした。本発明を良好な実施例
で説明してきたが、当業者であれば、本発明の範囲内で
様々な修正をなし得ることを理解できるであろう。
【0018】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0019】(1) 順不同に命令を実行するアーキテ
クチャを有するプロセッサにおいて、次に実行すべき命
令を選択する回転式優先順位選択論理回路であり、
(a) 待ち時間に従った優先順位を有する命令を識別
するデータを供給する第1の入力バスに接続され、更に
命令が実行可能か否かを示すデータを供給するデータ・
バスに接続され、ローカル・キャリー信号、ローカル選
択信号、及びグローバル選択信号を含む出力信号を生成
するキャリー生成手段と、(b) 前記キャリー生成手
段から生じる、前記ローカル・キャリー信号、前記ロー
カル選択信号、及び前記グローバル選択信号に応答し、
キャリー出力信号と、グローバル・キャリーが0である
ことを想定した第1の選択信号と、グローバル・キャリ
ーが1であることを想定した第2の選択信号とを生成す
るための論理手段と、(c) 前記第1の入力バス及び
前記データ・バスに接続され、キャリー入力信号がゼロ
であることを想定して、第1の候補出力信号を生成する
第1の優先順位選択手段と、(d) 前記第1の入力バ
ス及び前記データ・バスに接続され、キャリー入力信号
が1であることを想定して第2の候補出力信号を生成す
る第2の優先順位選択手段と、(e) 前記第1及び第
2の優先順位選択手段のそれぞれが出す、前記第1及び
第2の候補出力信号を受取るべく接続されており、前記
キャリー入力信号と、前記論理手段からの前記第1及び
第2の選択信号とに応答し、前記第1及び第2の候補出
力信号の1つを選択して出力ポインタ・バス上に送り出
す選択手段とを具備し、キャリー信号がキャリー出力信
号からキャリー入力信号へと1つのループ内で回転し、
それにより優先順位の低い命令の実行を阻止し、有効な
オペランドをもった最高の優先順位をもつ命令を次に実
行すべき命令として指定できるように、前記ループが途
中で切断されることを特徴とする、回転式優先順位選択
論理回路。 (2) 前記論理手段が、前記キャリー出力信号を出力
するためのトライ・ステート回路を有する、(1)に記
載の回転式優先順位選択論理回路。 (3) ループ状に接続された複数の同一のモジュール
を有し、1つのモジュールからのキャリー出力信号が次
のモジュールのキャリー入力信号として供給される、
(1)に記載の回転式優先順位選択論理回路。 (4) 前記各モジュールが、前記第1の入力バス及び
前記データ・バスのそれぞれから4つのビットを受取
り、前記出力バス上に4つのビットを送り出す(3)に
記載の回転式優先順位選択論理回路。 (5) 前記各モジュール中の前記第1及び第2の優先
順位選択手段のそれぞれが第1及び第2の2ビット優先
順位選択回路を有し、前記選択手段が、前記キャリー入
力信号に応答し、前記第1及び第2の優先順位選択手段
のそれぞれ第1の2ビット優先順位選択回路からの2ビ
ットを選択する第1の選択回路と、前記第1及び第2の
選択信号に応答し、前記第1及び第2の優先順位選択手
段のそれぞれの第2の2ビット優先順位選択回路からの
2ビットを選択する複数の選択回路とを有する、(4)
に記載の回転式優先順位選択論理回路。
【図面の簡単な説明】
【図1】本発明の良好な実施例に従った、12ビットの
回転式優先順位選択回路の全体のブロック図。
【図2】図1に使われている4ビットの回転式優先順位
選択回路の1つの詳細を示す論理ブロック図。
【図3】図2の選択論理31の詳細を示す論理ブロック
図。
【図4】キャリー入力信号を0と見なしている、2ビッ
トの優先順位選択機能の回路図。
【図5】キャリー入力信号を1(高レベルがアクティ
ブ)と見なしている、2ビットの優先順位選択機能の回
路図。
【図6】真数及び補数のローカル・キャリー出力を生成
するキャリー発生回路の一部の回路図。
【図7】グローバル選択出力及びローカル選択出力を生
成する、キャリー選択回路の一部の論理回路図。
【符号の説明】
11、12、13 4ビットの優先順位選択モ
ジュール 14 優先順位バス 15 補数優先順位バス 16 データ・バス 17 補数データ・バス 18 出力バス 21、23 2ビット優先順位選択回路 27、28 2ビット優先順位選択回路 22、25、26、32 選択回路 24、29、30 反転回路 31 選択論理回路 33、34 キャリー発生回路 35、36、37 トライ・ステート回路

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 順不同に命令を実行するアーキテクチャ
    を有するプロセッサにおいて、次に実行すべき命令を選
    択する回転式優先順位選択論理回路であり、 (a) 待ち時間に従った優先順位を有する命令を識別
    するデータを供給する第1の入力バスに接続され、更に
    命令が実行可能か否かを示すデータを供給するデータ・
    バスに接続され、ローカル・キャリー信号、ローカル選
    択信号、及びグローバル選択信号を含む出力信号を生成
    するキャリー生成手段と、 (b) 前記キャリー生成手段から生じる、前記ローカ
    ル・キャリー信号、前記ローカル選択信号、及び前記グ
    ローバル選択信号に応答し、キャリー出力信号と、グロ
    ーバル・キャリーが0であることを想定した第1の選択
    信号と、グローバル・キャリーが1であることを想定し
    た第2の選択信号とを生成するための論理手段と、 (c) 前記第1の入力バス及び前記データ・バスに接
    続され、キャリー入力信号が0であることを想定して第
    1の候補出力信号を生成する第1の優先順位選択手段
    と、 (d) 前記第1の入力バス及び前記データ・バスに接
    続され、キャリー入力信号が1であることを想定して第
    2の候補出力信号を生成する第2の優先順位選択手段
    と、 (e) 前記第1及び第2の優先順位選択手段のそれぞ
    れが出す、前記第1及び第2の候補出力信号を受取るべ
    く接続されており、前記キャリー入力信号と、前記論理
    手段からの前記第1及び第2の選択信号とに応答し、前
    記第1及び第2の候補出力信号の1つを選択して出力ポ
    インタ・バス上に送り出す選択手段とを具備し、キャリ
    ー信号がキャリー出力信号からキャリー入力信号へと1
    つのループ内で回転し、それにより優先順位の低い命令
    の実行を阻止し、有効なオペランドをもった最高の優先
    順位をもつ命令を次に実行すべき命令として指定できる
    ように、前記ループが途中で切断されることを特徴とす
    る、回転式優先順位選択論理回路。
  2. 【請求項2】 前記論理手段が、前記キャリー出力信号
    を出力するためのトライ・ステート回路を有する、請求
    項1に記載の回転式優先順位選択論理回路。
  3. 【請求項3】 ループ状に接続された複数の同一のモジ
    ュールを有し、1つのモジュールからのキャリー出力信
    号が次のモジュールのキャリー入力信号として供給され
    る、請求項1に記載の回転式優先順位選択論理回路。
  4. 【請求項4】 前記各モジュールが、前記第1の入力バ
    ス及び前記データ・バスのそれぞれから4つのビットを
    受取り、前記出力バス上に4つのビットを送り出す、請
    求項3に記載の回転式優先順位選択論理回路。
  5. 【請求項5】 前記各モジュール中の前記第1及び第2
    の優先順位選択手段のそれぞれが第1及び第2の2ビッ
    ト優先順位選択回路を有し、前記選択手段が、前記キャ
    リー入力信号に応答し、前記第1及び第2の優先順位選
    択手段のそれぞれの第1の2ビット優先順位選択回路か
    らの2ビットを選択する第1の選択回路と、前記第1及
    び第2の選択信号に応答し、前記第1及び第2の優先順
    位選択手段のそれぞれの第2の2ビット優先順位選択回
    路からの2ビットを選択する複数の選択回路とを有す
    る、請求項4に記載の回転式優先順位選択論理回路。
JP7316199A 1994-12-09 1995-12-05 命令実行順の回転式優先順位選択回路 Expired - Lifetime JP2866606B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/352,642 US5546545A (en) 1994-12-09 1994-12-09 Rotating priority selection logic circuit
US352642 1994-12-09

Publications (2)

Publication Number Publication Date
JPH08241197A true JPH08241197A (ja) 1996-09-17
JP2866606B2 JP2866606B2 (ja) 1999-03-08

Family

ID=23385913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7316199A Expired - Lifetime JP2866606B2 (ja) 1994-12-09 1995-12-05 命令実行順の回転式優先順位選択回路

Country Status (2)

Country Link
US (1) US5546545A (ja)
JP (1) JP2866606B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6530000B1 (en) 1999-03-24 2003-03-04 Qlogic Corporation Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units
US7111228B1 (en) 2002-05-07 2006-09-19 Marvell International Ltd. System and method for performing parity checks in disk storage system
US7007114B1 (en) 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7526691B1 (en) 2003-10-15 2009-04-28 Marvell International Ltd. System and method for using TAP controllers
US7139150B2 (en) 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US7370178B1 (en) 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) * 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914574A (en) * 1984-08-16 1990-04-03 Mitsubishi Denki Kabushiki Kaisha Data transmission apparatus having cascaded data processing modules for daisy chain data transfer
US5133064A (en) * 1987-04-27 1992-07-21 Hitachi, Ltd. Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
US4887084A (en) * 1987-06-23 1989-12-12 Matsushita Electric Industrial Co., Ltd. Priority encoder
US5095460A (en) * 1989-04-25 1992-03-10 Digital Equipment Corporation Rotating priority encoder operating by selectively masking input signals to a fixed priority encoder
US5222218A (en) * 1990-06-27 1993-06-22 Zilog, Inc. System with devices connected in sequence to receive information in a predetermined order
US5274785A (en) * 1992-01-15 1993-12-28 Alcatel Network Systems, Inc. Round robin arbiter circuit apparatus
US5321640A (en) * 1992-11-27 1994-06-14 Motorola, Inc. Priority encoder and method of operation

Also Published As

Publication number Publication date
US5546545A (en) 1996-08-13
JP2866606B2 (ja) 1999-03-08

Similar Documents

Publication Publication Date Title
JPH08241197A (ja) 命令実行順の回転式優先順位選択回路
JP3253347B2 (ja) 機能的に完全なセルフタイミング機能付き論理回路群
US6188240B1 (en) Programmable function block
JP3869726B2 (ja) 大容量非同期パイプライン処理の回路および方法
US4967326A (en) Microcomputer building block
US5491359A (en) Microcomputer with high density ram in separate isolation well on single chip
US6414368B1 (en) Microcomputer with high density RAM on single chip
WO1996034351A1 (fr) Procede de conception de circuits integres a semi-conducteurs et appareil de conception automatique
JPH08123665A (ja) 差分桁上げ保存加算器と乗算器
TWI790088B (zh) 處理器和計算系統
US4831578A (en) Binary adder
US4536855A (en) Impedance restoration for fast carry propagation
US4349888A (en) CMOS Static ALU
US4989174A (en) Fast gate and adder for microprocessor ALU
US6347327B1 (en) Method and apparatus for N-nary incrementor
US5301345A (en) Data processing system for performing a shifting operation and a constant generation operation and method therefor
US5493525A (en) Carry-chain compiler
JP2638613B2 (ja) プログラマブル アクセラレータ及びその方法
JPH11305994A (ja) データ処理装置
US6219687B1 (en) Method and apparatus for an N-nary Sum/HPG gate
US6223199B1 (en) Method and apparatus for an N-NARY HPG gate
JPH087671B2 (ja) 演算・論理回路
US6219686B1 (en) Method and apparatus for an N-NARY sum/HPG adder/subtractor gate
JPH0460252B2 (ja)
US6216146B1 (en) Method and apparatus for an N-nary adder gate