JPH076032A - 高速のマイクロプロセッサ分岐決定回路 - Google Patents

高速のマイクロプロセッサ分岐決定回路

Info

Publication number
JPH076032A
JPH076032A JP5241814A JP24181493A JPH076032A JP H076032 A JPH076032 A JP H076032A JP 5241814 A JP5241814 A JP 5241814A JP 24181493 A JP24181493 A JP 24181493A JP H076032 A JPH076032 A JP H076032A
Authority
JP
Japan
Prior art keywords
alu
signal
candidate
circuit
branch decision
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
JP5241814A
Other languages
English (en)
Other versions
JP3597547B2 (ja
Inventor
Patrick W Bosshart
ダブリュ.ボスハート パトリック
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH076032A publication Critical patent/JPH076032A/ja
Application granted granted Critical
Publication of JP3597547B2 publication Critical patent/JP3597547B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 マイクロプロセッサのALUの出力状態信号
を計算してから分岐決定を行なうと遅れが大きいので、
計算と並行して分岐決定信号を出すことによって遅れを
最少にする方法を開示する。 【構成】 この発明において、算術または論理演算の結
果に基づいて分岐決定信号を出す回路(50)を説明す
る。この回路は少なくとも2つの候補分岐決定回路(5
2、54、56、58)を備え、それぞれは候補分岐決
定信号を計算し、それぞれは少なくとも1つのalu状
態信号に対して独特の候補条件コードを出力する。この
回路は第1選択回路(62,64,66)を更に備え、
前記状態信号が出たときに前記alu状態信号に基づい
て、前記候補分岐決定信号から正しい分岐決定信号を選
択する。その他の装置、システム、方法も開示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は一般に、マイクロプロ
セッサ分岐決定回路に関する。
【0002】
【従来の技術】この発明の背景は、例えば「SPAR
C」圧縮命令セット計算機(RISC)構造と関連して
説明するが、これはこの発明の範囲を制限するものでは
ない。
【0003】これまでこの分野では、分岐の決定はAL
U(算術論理演算装置)出力状態信号、すなわち、条件
コードALU=0、ALUあふれ、ALU出力負号、A
LUけた上げ出力(carry−out)に基づいてい
る。一般的な従来の構造では、ALUはその和出力を生
成するのとほぼ同時にこれらの状態信号を生成する。高
度に最適化した従来の分岐決定回路では、分岐決定すな
わちジャンプ信号はこれらの状態信号が出てから5ない
し6ゲート遅れ以内に生成する。
【0004】
【発明が解決しようとする課題】従来の「SPARC」
分岐決定回路で更に遅れが起こるのは、aluあふれ状
態信号の計算においてであり、これは算術けたあふれと
タグ付きあふれ(「SPARC」構造に特有の特徴)と
の論理和である。この論理和により更にゲート遅れが加
わる。従来の技術の分岐決定回路では、「SPARC」
構造がaluけた上げ出力の極性を決めるために一層遅
れが生じる。
【0005】「SPARC」構造では、減算のけた上げ
出力信号の極性は加算の極性の逆と定義する。このため
減算のaluけた上げ出力条件を検査するには、論理反
転が必要になる。この論理反転により更にゲート遅れが
加わる。
【0006】「SPARC」構造に関連する従来の分岐
決定回路の設計で遅れを生じる別の原因は、条件コード
を用いるからである。条件コードはALU演算で設定さ
れ、次の分岐命令で用いられる。一般的なパイプライン
方式において、分岐決定の前の命令によって条件コード
を変更すると、ALUは次の分岐決定を行うのと同じク
ロックサイクルで条件コードを生成する。
【0007】もし分岐決定の直前以外の命令によって条
件コードを設定すれば、条件コードは条件コード・レジ
スタから読まなければならない。この場合、ALUはA
LU出力状態信号と条件コード・レジスターに記憶され
ている状態信号のどちらを用いるかを選ばなければなら
ない。この選択は一般に送り(forwarding)
mux(マルチプレクサ)を用いて行うので、従来の回
路の分岐決定に更に遅れが加わる。
【0008】
【課題を解決するための手段】この発明とその望ましい
実施態様では「SPARC」構造に関連して説明する
が、この特許の発明は、これらのまたは同様なALU出
力状態信号に基づいて分岐決定を行う任意のコンピュー
タ構造に適用するものである。
【0009】この発明の他の実施態様と同様に、例示の
実施態様の各種の修正や組合わせは、この説明を参照す
ればこの技術に精通した人には明かである。従って特許
請求の範囲は、これらの修正や実施態様をすべて含むも
のとする。
【0010】従来の分岐決定回路では、状態信号と制御
信号は組合わせ論理回路の入力に入る。従来の組合わせ
論理回路はこれらの信号で作動し、入力がゲートの各レ
ベル(一般に高度に最適化した従来の回路では5ないし
6レベル)を通って伝搬した後、分岐決定信号が出る。
【0011】上に述べたように、一般の分岐決定に必要
な最少数のゲートに加えて、「SPARC」のような特
殊な方式では、減算やmux送りでのaluけた上げ出
力の反転などの、プロセッサに特有の追加の条件を通っ
て状態信号や条件コードを伝搬する必要があるので、更
に遅れを生じる。
【0012】この発明の望ましい実施態様では、上に述
べた困難をかなり克服し、ALU和出力(または任意の
論理または算術のALU演算の出力)を計算してから分
岐決定するまでの遅れをなくし、または非常に減らす。
【0013】この発明では、分岐決定信号はALU状態
信号に依存するが、これらの状態信号が出る前に、和
(または別の演算)の計算に並行して分岐決定信号の計
算の大部分を行うことができるように、分岐決定回路を
構成できると考える。
【0014】この発明の第1の望ましい実施態様では、
分岐決定信号を出すための限界タイミング経路を後到着
(late−arriving)信号が決定するよう
に、分岐決定回路を構成する。この実施態様の目的か
ら、後到着信号は、alu演算のゼロ結果(信号名を
「ALU0」とする)、またはALUの最上位ビット
(MSB)へのけた上げ入力(carry−in)(信
号名を「cin31」とする)を表すことが望ましい。
【0015】この望ましい実施態様では、上に述べた後
到着状態信号は計算結果が出る少し前に出る。この望ま
しい実施態様の分岐決定信号は、ALU0信号かcin
31信号の遅い方が到着してから1ないし2遅れ以内に
発生する。この分岐決定は、計算結果とは独立に行われ
る。
【0016】この発明の別の望ましい実施態様では、け
た上げ選択加算器/ALUと両立するように分岐決定回
路を構成する。この構造は基本的には第1の望ましい実
施態様と同じであるが、2つの後到着信号cin31h
とcin31lを加算器のMSB段階からの候補けた上
げ入力信号とし、cin31の代わりにgcinを用い
るという点だけが異なる。
【0017】言い換えると、加算器のLSB段階からの
けた上げ入力によって2つの高いMSBバンクのどちら
かを選択するので、計算に使うけた上げ入力を待たなく
てすむためには、高いMSBバンクのそれぞれの値を決
め、また実際にけた上げ入力値が入ったときに候補分岐
決定を正しく選択しなければならない。
【0018】ここではこの発明の実施態様として、けた
上げ先見(carry−looahead)加算器、け
た上げ選択加算器、条件付き和加算器に用いられる応用
について説明する。この発明の他の多くの実施態様が可
能である。応用によっては、分岐決定信号を生成するの
に必要な別の論理のために更に遅れが加わるので、後到
着信号が限界タイミング経路を決定しないことがある。
【0019】この発明はこのような場合でも、従来の装
置より実質的に機能が高い。この発明は、ボスハート
(Bosshart)による米国特許申請番号923,
282に述べられている条件付き和加算器のような他の
型の加算器やALUにも容易に適用してよい。他の型の
加算器やALUにこの発明を適用できることは、コンピ
ュータ機構の設計に精通した人には明かである。
【0020】この発明を、速いALU=0回路と共に用
いてこの発明の機能の特長を十分に活用することが望ま
しい。速いALU=0回路の一例は、ボスハート他によ
る米国特許申請番号922,926に述べられている
が、他の多くのALU=0回路もここに述べる発明に適
用することができる。
【0021】この発明に従って、算術または論理演算の
結果に基づいて分岐決定信号を出す回路を説明する。こ
の回路は少なくとも2つの候補分岐決定回路を備え、そ
れぞれが候補分岐決定信号を計算し、それぞれが少なく
とも1つのalu状態信号に対して独特の候補条件コー
ドを出力する。更にこの回路は、alu状態信号が得ら
れたときにこの状態信号に基づいて、分岐決定信号の候
補の中から正しい分岐決定信号を選択するための第1選
択回路を備える。
【0022】
【実施例】第1の従来の分岐決定回路30を図1に略図
で示す。この従来の分岐決定回路30では、レジスタ移
送レベル(RTL)の記述と両立するようにゲートを選
ぶ。図1に示すように、適当な分岐条件であるaluゼ
ロ、alu負号、aluあふれ、aluけた上げ出力の
ゲート制御は、ANDゲート32、33、34、35を
用いて使用可能信号EN<3:0>によって行う。図1
に示すように、また次式のようにEXORゲート36、
3入力ORゲート37、EXORゲート38により、分
岐決定信号JTAKENを生成する。
【数1】
【0023】図2に第2の従来の分岐決定回路40の略
図を示す。この従来の分岐決定回路40では、CMOS
(相補形金属酸化膜半導体)を適用できるようにゲート
を選択する。
【0024】適当な分岐条件であるaluゼロ、alu
負号、aluあふれ、aluけた上げ出力のゲート制御
は、図2に示すようにNANDゲート42、43、4
4、45を用いてEN<3:0>によって行う。図2に
示すように、EXNORゲート46、3入力NANDゲ
ート47、EXORゲート48により、分岐決定信号J
TAKENを生成する。この回路の式は、上の式と同じ
である。
【0025】図3に、第1の望ましい実施態様の分岐決
定回路50の略図を示す。この分岐決定回路には加算器
/ALUと両立する後到着状態信号が入る。ここで後到
着信号は、ALU=0信号すなわちALU0と、MSB
へのけた上げ入力信号cin31である。
【0026】ALU=0信号を得る回路は一般に図14
aと図14bに示され、また米国特許申請番号922,
926に示されているが、多くの他のALU=0回路を
ここに説明する発明に適用してよい。cin31を決定
する回路は図10に示す。
【0027】後到着信号の信号名と数字は単なる例示で
ある。この第1の望ましい実施態様の分岐決定回路50
は多くの加算器やALU構造、すなわち、各種の後到着
状態信号と共にけた上げ先見加算器/ALU、けた上げ
選択加算器/ALU、条件付き和加算器/ALU、リッ
プルけた上げ加算器/ALUなどに適用してよいが、こ
れに限られるものではない。
【0028】図3のこの発明の望ましい実施態様は、分
岐決定の結果がcin31とALU0の関数として表す
ことができる、という事実を用いる。これらの信号は一
般に後で到着するので、4つの分岐回路52、54、5
6、58は全く同じである。各分岐回路は、cin31
とALU0に対して異なる組合わせの値をとる。
【0029】これらの値は定数なので、遅れは生じな
い。4つの候補分岐決定回路52、54、56、58の
すべてが結果を出力した後、mux62、64、66は
cin31とALU0の実際の値を選択制御に用いて、
候補分岐決定回路52、54、56、58から正しい結
果を選ぶ。
【0030】cin31とALU0は1ないし2mux
の遅れで分岐を決定するので、分岐決定は従来の技術に
比べてはるかに容易である。分岐決定をcin31の関
数として表す理由は、cin31の値が決まるとalu
あふれ、alu負号、aluけた上げ出力条件コードは
容易に計算できるからである。
【0031】更に図3において、候補条件コードは候補
分岐回路52、54、56、58のそれぞれで異なって
いる。aluゼロ分岐条件以外の候補条件コード名はA
LU−NZVCx(ただしxはcin31の候補値が0
か1に従って0か1)である。aluゼロの候補条件コ
ード名は、ALU−Zy(ただしyはALU=0の候補
値が0か1かに従って0か1)である。
【0032】これらの候補条件コードを得る方法につい
ては後で説明する。候補分岐決定回路52、54、5
6、58のALU条件であるaluゼロ、alu負号、
aluあふれ、aluけた上げおよび関連する使用可能
信号EN<3:0>と、候補条件コードとの対応を次の
表1に示す。
【表1】
【0033】各候補分岐決定回路52、54、56、5
8は候補分岐決定を発生する。第1の候補分岐決定回路
52は、図3と表2に示すように、cin31=0とA
LU0=0が入るとJT0−ALU0を発生する。第2
の候補分岐決定回路54は、図3と表2に示すように、
cin31=0とALU0=1が入るとJT0−ALU
1を発生する。
【0034】第3の候補分岐決定回路56は、図3と表
2に示すように、cin31=1とALU0=0が入る
とJT1−ALU0を発生する。最後に、第4の候補分
岐決定回路58は、図3と表2に示すように、cin3
1=1とALU0=1が入るとJT1−ALU1を発生
する。候補分岐決定信号および候補分岐決定回路52、
54、56、58と、cin31とALUOの候補条件
との対応を、次の表2に示す。
【表2】
【0035】更に図3の一般に望ましい実施態様の回路
50では、候補分岐決定信号選択mux62、64、6
6によって、4つの候補分岐決定信号JT0−ALU
0、JT0−ALU1、JT1−ALU0、JT1−A
LU1から選択する。選択入力ALU0が入ると、候補
分岐mux62、64はこの4つの候補分岐決定から2
つの候補JT0、JT1を出力する。
【0036】ALU=0が負(negatively
asserted)の条件(ALU0=0)であれば、
信号としてJT0−ALU0を選択して候補分岐mux
62はJT0を出力し、また信号としてJT1−ALU
0を選択して候補分岐mux64はJT1を出力する。
ALU=0が正(positively assert
ed)の条件(ALU0=1)であれば、信号としてJ
T0−ALU1を選択して候補分岐mux62はJT0
を出力し、また信号としてJT1−ALU1を選択して
候補分岐mux64はJT1を出力する。
【0037】選択入力cin31が入ると、選択mux
66はこれらの2つの候補JT0、JT1から1つの分
岐選択信号JTを出力する。cin31が負の条件(c
in31=0)であれば、JT0を選択して続いてJT
を出力する。cin31が正の条件(cin31=1)
であれば、JT1を選択して続いてJTを出力する。
【0038】このようにして後到着信号cin31が入
ってから1ゲート遅れ以内に、また後到着信号ALU=
0が入ってから2ゲート遅れ以内に、分岐決定信号JT
を出力する。遅れを最小限に減らして分岐決定信号JT
を出力するために、後到着信号ALU=0はALU和出
力が出る前にまたは同時に出ることが望ましい。
【0039】ALU=0信号の計算速度を速める例示的
な回路が、ボスハート他による米国特許申請番号92
2,926に開示されており、図14aと図14bにそ
の略図を示す。cin31とALU0を分岐決定信号の
条件付けのための後到着信号としたが、この発明の望ま
しい実施態様は別のまたは追加の後到着信号によって容
易に条件付けを行うことができる。
【0040】更に図3において、候補条件コードを得る
方法を説明する。上に述べたように、候補条件コードは
ALU−NZVCx<3:0>とALU−Zyである。
望ましい実施態様では分岐決定はALU=0で条件付け
を行うので、aluゼロ候補条件コードを表す候補条件
コードALU−NZVCx<2>は使わない。
【0041】その代わりに、aluゼロ条件は候補条件
コードALU−Zyによって表される。しかし別の実施
態様において分岐決定がcin31だけで条件付けされ
る場合は、候補条件コードはALU−NZVC0<3:
0>とALU−NZVC1<3:0>で完全な組にな
る。
【0042】条件コードalu負号、aluあふれ、a
luけた上げと、その対応する(上の表1に示す対応)
候補条件コードは、出力がICC<3,1:0>である
条件コード・レジスタ70(図示せず、図4参照)か
ら、または以下に動作を示す条件コード論理回路72、
74から直接に、選択してよい。
【0043】この選択は、ALU操作が一般的に条件コ
ードを設定するパイプライン構造では一般的であり、後
の分岐命令はいつでもこの条件コードを用いてよい。そ
の条件コードを用いる分岐命令の直前にALU操作によ
って条件コードを修正するときは、一般的なパイプライ
ン方式では、ALUは次の分岐命令を実行するのと同じ
クロックサイクルで条件コードを生成する。
【0044】そうではなく、条件コードの最後の設定が
前の命令に行われた場合は(その間に命令がいくつかあ
る)、次の分岐決定の条件コードは条件コード・レジス
タ70から得なければならない。その結果分岐決定回路
50は、状態コード論理回路72、74からの信号を用
いるか、状態コード・レジスタ70に記憶されている状
態信号ICC<3,1:0>を用いるか、を選択しなけ
ればならない。
【0045】この選択は一般的に、選択信号ICCFA
(aluからicc)が入る条件コード選択mux8
0、82を用いて行われる。ICCFAは、負であれば
条件コード・レジスタ70から、正であれば条件コード
論理回路72、74から、候補条件コードを選択する。
【0046】条件コード・レジスタ70とICC<3,
1:0>の回路については、以下に図4を用いて詳細に
説明する。条件コードレジスタ70からのデータをIC
CFA=0によって選択すると、候補分岐決定回路5
2、54、56、58を通って同じ信号が送られる。全
ての分岐決定が同じなので、どの回路が適当な候補分岐
決定かを選択するのは重要ではない。
【0047】更に図3において、条件コード論理回路7
2、74の動作と、そこから得られる条件コードについ
て説明する。条件コード論理回路76、78およびその
条件コードについては後で説明する。第1の条件コード
論理回路72は、上に述べたように、cin31が0
で、ICCFAが正のときに候補条件コードを発生す
る。
【0048】加算の場合のこれらの候補信号の論理を、
次の表3に示す。減算についてこの論理を拡張しまたは
修正することは、コンピュータ構造設計の技術者には明
かである。
【表3】
【0049】ICCFA=1の場合の表3に示す論理を
得るのに用いる論理を図3に示す。
【0050】n=3ビットの場合。cin31=0であ
れば、ALU−NZVC0<3>は候補alu負号信号
である。この信号は第1条件コード選択mux80の正
の入力のn=3ビットに入力する。alu負号は、加算
器のMSB和出力であるSUM<31>に等しい。
【0051】これはp31とよぶALUのビット31の
伝搬信号に等しい。というのは、けた上げ入力がゼロの
場合は、この出力信号は伝搬信号に等しいからである。
p31は、第1条件コード選択mux80の正の入力の
第4(n=3)ビットに直接入る。
【0052】n=1ビットの場合。cin31=0であ
れば、ALU−NZVC0<1>は候補aluあふれ信
号である。この信号は、g31とTOFLOの論理OR
を行うORゲート84から、第1条件コード選択mux
80の正の入力のn=1ビットに入力する。このOR機
能は、「SPARC」構造に特有のタイプをチェックす
るあふれTOFLO条件を考慮するのに必要であり、A
LU MSBあふれには関係ない。
【0053】算数またはALU MSBあふれは、和出
力のMSBが結果の符号を正しく表さない場合に真、と
定義される。言い換えると、両入力が符号拡張1ビット
でかつALUが1ビット幅であれば、この新しい高いM
SBは現在のMSBとは異なる。
【0054】a入力とb入力はこれらの2ビットには同
じなので、両者のけた上げ入力が異なるか、またはビッ
ト31のけた上げ出力がけた上げ入力と等しくなけれ
ば、両者の結果は異なる。cin31=0の場合のAL
U−NZVC0については、けた上げ出力が真の場合は
あふれは真である。けた上げ出力は、g31が真の場合
だけ真である。
【0055】n=0ビットの場合。cin31=0であ
れば、ALU−NZVC0<0>は候補aluけた上げ
出力信号である。この信号は、g31とALUSUBの
論理EXORを行うEXORゲート86から、第1条件
コード選択mux80の正の入力のn=0ビットに入力
する。cin31=0の場合、g31=1であればAL
Uけた上げ出力信号は真である。
【0056】上に述べたように、「SPARC」構造に
より減算のけた上げ出力の極性は反転するので、NZV
C0<0>とALUSUBのEXOR機能が必要であ
る。上に用いた信号g31とp31は、加算器/ALU
のMSB(この実施態様では第31ビット)の発生信号
と伝搬信号である。これらの伝搬と発生は加算器/AL
U設計技術ではよく知られている。
【0057】加算における定義を次に示す。ただしa<
31>とb<31>は、それぞれ第1および第2オペラ
ンドの第31ビットである。
【数2】
【0058】上に述べた候補条件コードNZVC0<3
>、NZVC0<1>、NZVC0<0>は、cin3
1の値が0の場合、候補の分岐決定回路52、54に入
る。
【0059】上に述べたように、ALU(cin31)
のMSBへのけた上げ入力が1でICCFAが正の場合
に、第2の条件コード論理回路74は候補条件コードを
発生する。これらの条件信号の論理を次の表4に示す。
この論理を減算に拡張しまたは修正することは、コンピ
ュータ構造設計の技術者には明かである。
【表4】
【0060】選択入力ICCFAが入る第2条件コード
選択mux82の正の入力(ICCFA=1)への入力
の論理について、図3を用いて以下に説明する。
【0061】n=3ビットの場合。p31_(ただし尾
線(tailing)「_」は図3でオーバーラインで
示す負論理信号を表す)は、第2条件コード選択mux
82の正の入力の第4(n=3)ビットに直接入る。
【0062】alu負号条件を表すp31_の背後にあ
る論理は次の通りである。MSBの符号は、この技術で
よく知られているように、MSB和と同じである。1ビ
ット和は
【数3】 に等しい。cin31=1(cin31の候補値)なの
で、
【数4】 は単にp31_に等しい。
【0063】n=1ビットの場合。第2条件コード選択
mux82の正の入力の第2(n=1)ビットへの入力
は、k31とTOFLOの論理ORを行うORゲート8
8から入る。ALU−NZVC0のn=1ビットと同じ
ように、ORゲート88は算術あふれとタグあふれすな
わちTOFLOとの論理ORを行うのに必要である。
【0064】ALU−NZVC0で説明したように、A
LU MSBあふれは、ビット31のけた上げ出力がけ
た上げ入力と等しくないときに真、と定義される。ci
n31=1の場合のALU−NZVC1については、キ
ル信号k31が真の場合はあふれは真である。
【0065】n=0ビットの場合。cin31=1であ
れば、ALU−NZVC1<0>は候補aluけた上げ
出力信号である。この信号は、第2条件コード選択mu
x82の正の入力の第1(n=0)ビットに入る入力で
ある。EXNORゲート90は、k31とALUSUB
の論理EXNORとしてこの信号を発生する。
【0066】ALUけた上げ出力信号は、g31=1ま
たはp31=1の場合は真である。この組合わせ条件
は、k31=0と同じである。上に述べたように、「S
PARC」構造では減算のけた上げ出力の極性は反転す
るので、ALUSUBとのEXNOR機能が必要であ
る。
【0067】上に用いた信号k31とp31は、加算器
/ALUの第31ビットのキル(kill)信号と伝搬
信号である。これらの信号は既存の加算器/ALU回路
内に一般的にあるので、これらの信号を発生する回路は
ここに含まない。これらの伝搬信号とキル信号およびそ
れらを発生する手段は、加算器/ALU設計の技術でよ
く知られている。
【0068】加算の場合の定義を次に示す。ただし、a
<31>とb<31>は、それぞれ第1および第2オペ
ランドの第31ビットである。
【数5】 上に述べた候補条件コードNZVC1<3>、NZVC
1<1>、NZVC1<0>は、cin31の値が1の
場合、候補分岐決定回路56、58に入る。
【0069】更に図3において、ゲート76と78でそ
れぞれ発生する信号ALU−Z0とALU−Z1を得る
方法について説明する。この発明の望ましい実施態様で
は、ALU=0の値が負のときには候補分岐決定回路5
2、56によって、またALU=0すなわちALU0の
値が正のとき(すなわちALU0=1すなわちALU計
算の結果がゼロ)のときは候補分岐決定回路54、58
によって、ALU=0で条件付けを行う。
【0070】従来の分岐決定回路30、40では、後到
着ALU=0信号では条件付けをしない。この場合al
uゼロ条件コードは条件コード・レジスタ70のn=2
ビットから選択され、ALU=0信号はICCFAの条
件に基づくALUから選択される。従来のmux選択論
理は次の通りである。
【数6】
【0071】候補条件コードALU−Z0とALU−Z
1は、ALU0を0か1にそれぞれ設定することによっ
て上の式から条件付けされる。これらの式は次の通りで
ある。
【数7】
【0072】信号ALU−Z0は第3条件コード論理回
路76で発生し、その出力信号ALU−Z0は第1およ
び第3候補分岐決定回路52、56に送られる。この第
3条件コード論理回路76は、図3に示すように一般的
にANDゲートである。
【0073】信号ALU−Z1は第4条件コード論理回
路78で発生し、その出力信号ALU−Z1は第2およ
び第4候補分岐決定回路54、58に送られる。この第
4条件コード論理回路78は、図3に示すように一般的
にORゲートである。
【0074】更に図3において、候補分岐決定回路5
2、54、56、58のNANDゲート92、94、9
6、98には、前に説明したように使用可能信号EN<
3:0>とゲートされた候補条件コードが入る。EXN
OR100には、NANDゲート94、96からゲート
された候補状態コードが入る。
【0075】3入力NANDゲート102は、EXNO
R100とNANDゲート92、98の出力を受けて候
補分岐決定信号JTx−ALUy’を生成する。ただし
x,yは表2に示したように、cin31とALU0の
候補条件である。JTx−ALUy’の論理表現は、候
補条件コードと使用可能信号を用いて次のように表され
る。
【数8】
【0076】候補分岐決定JTx−ALUy’は、NA
NDゲート102の出力と信号INV−JTを受ける2
入力EXORゲート104で反転してよい。INV−J
Tは、EXOR機能の定義により、次のように候補分岐
決定を反転する。
【0077】すなわち、INV−JTが負(INV−J
T=0)であれば、NANDゲート102の出力が負の
ときは負の候補分岐決定を発生し、NANDゲート10
2の出力が正のときは正の候補分岐決定を発生する。
【0078】INV−JTが正(INV−JT=1)で
あれば、NANDゲート102の出力が負のときは正の
候補分岐決定を発生し、NANDゲート102の出力が
正のときは負の候補分岐決定を発生する。EXOR10
4の後の最終出力はJTx−ALUyである。ただし、
上に述べたように候補条件に従って、x,yは0,0ま
たは0,1または1,0または1,1である。
【0079】前に説明したように、望ましい実施態様の
回路50は、候補分岐決定信号選択mux62、64、
66によって、4つの候補分岐決定信号JT0−ALU
0、JT0−ALU1、JT1−ALU0、JT1−A
LU1から選択する。図3に示すmuxの配列は、リッ
プルけた上げ加算器、けた上げ先見加算器、条件付き和
加算器に一般的な信号と両立する。
【0080】この配列を他の加算器と共に使うように修
正するのは、この技術に精通した人には簡単である。ま
た上に挙げた加算器は少し異なった構造を備えてよく、
これに関連してこの発明と両立するように改造できるこ
とは明かである。可能性のある別の実施態様を例示する
ため、修正を以下に示す。
【0081】この発明の他の実施態様と同様に、例示の
実施態様の各種の修正や組合わせは、この説明を参照す
ればこの技術に精通した人には明かである。従って特許
請求の範囲は、そのような修正や実施態様を含むもので
ある。
【0082】図4に、条件コード・レジスタ70と、関
連する回路110の望ましい実施態様の略図を示す。こ
の応用では、4ビットの4対1mux112は、4つの
条件コード源の1つから条件コード・レジスタ70にロ
ードするデータを選択する選択入力S0、S1によって
動作する。
【0083】S0とS1は関連するプロセッサで与える
ことが望ましい。この例でS0,S1=0,0であれ
ば、3ビットの2対1mux114からの3ビットのデ
ータと、ALU0信号からの第4ビットが、条件コード
レジスタ70に入る。このmux114は、候補分岐決
定信号ALU−NZVC0<3,1:0>とALU−N
ZVC1<3,1:0>からcin31の条件によって
選択して、信号ALU−NZVC<3,1:0>を生成
する。
【0084】またS0,S1=0,1であれば、mux
112はデータとしてWRITE−DATA<3:0>
を選択して、条件コード・レジスタ70に送る。WRI
TE−DATA<3:0>は、ALUから直接に条件コ
ード・レジスタ70に書き込むデータでもよい。S0,
S1=1,0であれば、mux112はデータとしてT
RAP<3:0>を選択して、条件コード・レジスタ7
0に送る。
【0085】最後にS0,S1=1,1であれば、条件
コード・レジスタ70の出力ICC<3:0>の値は条
件コード・レジスタ70に再び入力され、条件コード・
レジスタ内に一定のデータを保持する。
【0086】図4に示す信号と回路は、条件コード・レ
ジスタがどのように動作して異なる条件コードのグルー
プの中から選択するかを示す単なる例である。この機能
の特長は、TRAP<3:0>、WRITE−DATA
<3:0>、およびその他の条件コードのグループの用
い方と同様に、この技術の技術者には明かである。
【0087】図5a、図5bに関連して図3において、
mux80、82とゲート76、78は条件コードを送
るためのものである。条件コード送り回路76、78、
80、82と条件コード論理回路72、74の動作は、
図3と関連して図5aと図5bのタイミング図を見れば
よく理解できる。図5a、図5bは、パイプライン構造
の数個のクロックサイクルを示す。
【0088】図5a、図5bに示す逐次命令は垂直方向
に並べてあり、その実行はパイプライン構造内で部分的
に重なっている。図5a、図5bは送りがある場合とな
い場合の算術演算を示す。パイプライン構造では、分岐
決定直前の命令によって条件コードを変更すると、次の
分岐命令が分岐決定を行うのと同じクロックサイクル中
にALUは条件コードを生成する。
【0089】従って、ICCFAが正であれば、条件コ
ード送り回路76、78、80、82は現在のコードを
直接選択し、条件コード・レジスタ70からは選択しな
い。ICCFA=0の場合は条件コードは前の命令によ
って設定されるので、分岐決定のためのラッチされた条
件コードは条件コード・レジスタ70から読まなければ
ならない。
【0090】この選択は、ICCFAで制御される2対
1送りmux80、82とゲート76、78を用いて行
うことができる。ICCFA=0によって条件コード・
レジスタ70からのデータを選択すると、候補分岐決定
回路52、54、56、68を通って同じ信号が送られ
る。全ての分岐決定が同じなので、どの回路が適当な候
補分岐決定かを選択するのは重要でない。
【0091】図6aは、第2の望ましい実施態様の分岐
決定回路の第1の応用120の部分的な略図を示す。こ
の実施態様の構造は、図9に示すようなけた上げ選択加
算器とも両立する。候補分岐決定信号選択mux62、
64は、ALU0を基にして候補分岐決定信号JTx−
ALUyを決定する。
【0092】第1の望ましい実施態様の分岐決定回路5
0と同じように、4つの候補分岐決定から候補分岐mu
x62、64により2つの中間の候補分岐決定JT0、
JT1を出力する。しかし第2の望ましい実施態様の回
路は、cin31lとcin31hと更にgcinによ
って、中間の候補分岐決定信号JT0、JT1を出力し
なければならない。
【0093】図6aに示す第1の応用120は、選択入
力cin31lが入るmux122を用いてJT0とJ
T1のどちらかを選択して次のレベルの中間信号JT
0’に継続し、また選択入力cin31hが入るmux
124を用いてJT0とJT1のどちらかを選択してJ
T1’として継続する。次にJTは、選択入力gcin
が入るmux126によって、JT0’とJT1’から
選択する。
【0094】第2の望ましい実施態様の第2の応用13
0を、図6bに示す。第1の応用120と同様に、候補
分岐決定信号選択mux62、64は、ALU0を基に
して候補分岐決定信号JTx−ALUyを決定する。
【0095】第1の望ましい実施態様の分岐決定回路5
0と同じように、4つの候補分岐決定から候補分岐mu
x62、64により2つの中間の候補分岐決定JT0、
JT1を出力する。次にmux134は、cin31’
に基づいて中間信号JT0とJT1から選択し、分岐決
定信号JTを出力する。
【0096】この実施態様の構造は、図9に示すような
けた上げ選択加算器とも両立する。第2の望ましい実施
態様の第2の応用は、第1の応用とは異なる信号経路遅
れを与えるもので、使用する加算器の信号遅れによって
は有効な場合に用いる。
【0097】図7に、第3の望ましい実施態様の分岐決
定回路140の部分的な略図を示す。この実施態様の構
造は、最後に到着する条件コードであるALU0に対し
て最適化された、けた上げリップル加算器、けた上げ先
見加算器、条件付き和加算器、その他の加算器/ALU
と両立する。
【0098】この実施態様では、mux142は、ci
n31を選択入力として用いてJT0−ALU0とJT
1−ALU0から中間分岐決定信号AL0を出力し、m
ux144は、cin31を選択入力として用いてJT
0−ALU1とJT1−ALU1からJT1を出力す
る。次にmux146は、ALU0をmux146の選
択入力として用いてAL0とAL1から分岐決定信号J
Tを出力する。
【0099】図8は、第4の望ましい実施態様の分岐決
定回路150の部分的な略図を示す。この実施態様の構
造は、最後に到着する条件コードであるALU0に対し
て最適化されたけた上げ選択加算器/ALUと両立す
る。
【0100】この実施態様では、mux152は、ci
n31lを選択入力として用いてJT0−ALU0とJ
T1−ALU0からJT0−ALU0(I)を出力し、
mux154は、cin31hを選択入力として用いて
JT0−ALU0とJT1−ALU0からJT1−AL
U0(I)を出力する。更にこの実施態様のmux15
6は、cin31lを選択入力として用いてJT0−A
LU1とJT1−ALU1からJT0−ALU1(I)
を出力し、mux158は、cin31hを選択入力と
して用いてJT0−ALU1とJT1−ALU1からJ
T1−ALU1(I)を出力する。
【0101】次にmux160は、gcinを選択入力
として用いてJT0−ALU0(I)とJT1−ALU
0(I)からAL0を出力し、mux162は、gci
nを選択入力として用いてJT0−ALU1(I)とJ
T1−ALU1(I)からAL1を出力する。最後に、
mux164は、ALU0をmux164への選択入力
として用いてAL0とAL1から分岐決定信号JTを出
力する。
【0102】図9に、分岐決定信号選択に用いるMSB
けた上げ入力信号cin31lとcin31hを出力す
る、Nビットの部分的な和加算器172、174、17
6を備える、けた上げ選択加算器170の略図を示す。
この略図では、SUM<N−1:0>についてNビット
の部分的な和加算器172を用いて2Nビット和を行
う。
【0103】mux178は、けた上げ入力が0のNビ
ットの加算器174とけた上げ入力が1のNビットの加
算器176とから、SUM<2N−1:N>を選択す
る。これらの2個の加算器174、176からの選択
は、部分的な和加算器172からのけた上げ出力gci
nによって行う。
【0104】加算器174はけた上げ入力からMSBに
出力cin31lを与え、加算器176はけた上げ入力
からMSBに出力cin31hを与える。cin31
l、cin31h、gcinは、図6a、図6b、図8
に示す第2および第4の望ましい実施態様の分岐決定回
路でmux選択に用いられる信号である。
【0105】図10は図9にブロックで示した部分的な
和加算器172、174、176に用いるNビットのリ
ップルけた上げ加算器180の部分的な略図を示す。こ
れらの加算器は、図3に示す第1の望ましい実施態様の
加算器回路としてもよい。この場合Nは32であってよ
い。ただし、32は全加算器/ALUのビット数であっ
た。図10に示すcin31信号は、MSBけた上げ入
力の後到着状態信号である。
【0106】図11は、Nビットけた上げ先見加算器2
00の略図である。この加算器は、AND・ORゲート
204・206で計算されるグループけた上げ入力を受
ける、けた上げ先見加算器セル202を用いる。AND
・ORゲート204・206は、下位の加算器セル20
2からのグループ伝搬信号pとグループ発生信号gか
ら、けた上げ入力を計算する。
【0107】最上位加算器セル202は、図11に示す
ようにSUM<N−1:N−4>を計算する。更にこの
最上位加算器セル202は、前に説明したように望まし
い実施態様の分岐決定回路で用いるMSBけた上げ入力
を出力する。
【0108】この信号の起源を下の図12に示す。この
特定のけた上げ先見加算器の加算器セル202は4ビッ
トを持つ。ただしこの実施態様で選んだこのビット数は
例示のためであって、他の大きさの加算器セル202を
選んでもよい。けた上げ先見加算器構造はこの技術でよ
く知られている。
【0109】図12は、図11で用いるけた上げ先見加
算器セル202を示す。このセルの動作は、この技術で
よく知られている。従って1ビットの和S<n>は、E
XORゲート212を用いてけた上げ入力信号C<n>
と伝搬信号P<n>から発生する。ただしnは入力信
号、出力信号、関連回路のビット位置を表す指標変数で
ある。
【0110】ここに示す4ビット加算器セル202の場
合は、nは0から3までである。C<0>信号は、下位
のけた上げ先見加算器セル202からのgcinであ
る。図11の実施態様の最上位加算器セル202のC<
3>信号は、望ましい実施態様の分岐決定回路へcin
31信号を与える。
【0111】前に述べたように、けた上げ先見加算器セ
ル202の動作はこの技術でよく知られている。よく知
られているように、AND・ORゲート214・216
はG<n−1>、P<n−1>、C<n−1>を受け、
けた上げ入力信号C<n>を関連する加算器セルに発生
する。けた上げ先見加算器セル202のこの部分は、リ
ップルけた上げ加算器と実質的に同じである。
【0112】加算器けた上げがリップルまたは伝搬しな
ければならないゲートの数を最少にするために、AND
ゲート222は全てのP<n>信号、n=0から3ま
で、を受け、図11に示すg出力であるグループ伝搬信
号GRP PROPを発生する。更にAND・ORゲー
ト218・220は、P<n>、n=1,2,3、とG
<n>、n=0から3まで、の関数であるグループ発生
信号GRP GENを発生する。
【0113】GRP GENとGRP PROPは、グ
ループけた上げ入力gcinを含めていかなるけた上げ
入力信号の関数でもないので、けた上げリップリングで
起こる遅れの量は非常に減少する。図12と上記の説明
に示した論理は分かりやすくするために簡単化してあ
り、速度や回路レイアウトの修正はこの技術の技術者に
は明かである。
【0114】図6a、図6b、図8(第2および第4実
施態様)を図3、図7(第1および第3実施態様)と比
べると、第1および第3実施態様の方が必要なmux段
階が少なく、従って正しい分岐決定信号を発生する際の
遅れが小さい。図3および図7の第1および第3実施態
様を支持する一般化したALU回路230を図13aに
示す。
【0115】この図には、最下位ビット(LSB)のた
めのN−1ビットのALU232と、分離した最上位
(MSB)のための別の1ビットのALU234を含
む、NビットALU230を示す。このように分ける
と、N−1ビットのALU232のけた上げ出力として
cin31信号を発生する。N−1ビットのALU23
2は、けた上げリップル加算器/ALU、けた上げ先見
加算器/ALU、けた上げ選択加算器/ALU、条件付
き和加算器/ALU、およびその他の加算器/ALUを
含む多くの異なる加算器構造で実現することができる。
【0116】図13bに、N−1ビットの条件付き和加
算器240のハイレベル図を示す。この技術に共通のN
=32であれば、N−1ビットの条件付き和加算器はけ
た上げ入力を持つ31ビット加算器である。条件付き和
加算器は2の累乗ビット幅が望ましいので、これをけた
上げ入力なしの32ビットの加算器としても同等のもの
が実現できる。
【0117】この場合、和出力は必要でなくまたけた上
げ発生はけた上げ入力と同じなので、加算器の単一LS
B回路は簡単になる。条件付き和加算器240のこの方
式の重要な特長は、ここに述べた望ましい実施態様の分
岐決定回路などの分岐決定回路に、cin31信号を与
えるのが容易になることである。
【0118】cin31を容易に与えることができるこ
の条件付き和加算器の重要な構造的特長は、加算器を半
加算器242と244に分割するのに、この技術でよく
知られているビット15と16の間ではなくて、ビット
14と15の間で行うことである。条件付き和加算器2
40の動作は、この技術の技術者がよく見れば明かであ
る。
【0119】簡単に述べると、加算器240の第1半加
算器242は、A<14:0>とB<14:0>を受け
てSUM<14:0>を計算し、条件付き和加算器に共
通に用いられる2の累乗ビット幅を確保するために、け
た上げ入力をLSBに入力する。第1半加算器242か
らのけた上げ出力はmux246の選択入力として用い
られる。mux246は、条件付き和加算器240の第
2半加算器244の第1および第2部分244a、24
4bによって計算される2つの条件付き和のどちらかを
選択する。
【0120】第1半加算器242からのけた上げ出力は
更にmux248の選択入力として用いられ、条件付き
加算器240の第2半加算器244の第1および第2部
分244a、244bから、正しいけた上げ出力を選択
する。mux248の選択された出力は、この技術でよ
く知られているように、その後の加算器段階へのグルー
プけた上げ入力、すなわちgcinとして働く。
【0121】mux246は、加算器240の第1半加
算器242からのけた上げ出力による正しい条件付き和
の選択によってSUM<30:15>を出力する。条件
付き和加算器240の第2半加算器244の第1および
第2部分244a、244bは、分かりやすくするため
に分離して示している。
【0122】次に図14a、図14bに、ALU=0回
路250の略図を示す。この例示のALU=0回路の詳
細は、ボスハート他による米国特許申請番号922,9
26に開示されている。図14aでは、実際のALU計
算の結果に関わらずALU=0を計算することのできる
ALU=0回路250を示し、ALUの計算結果が出る
前にまたは同時に、ALU=0信号を出力する。
【0123】この方式において、NビットのAND回路
252には、1ビットのゼロ・セル254からN個の1
ビットのゼロ信号Zn 、n=0からN−1まで、が入力
する。NビットのAND252回路は、N個の1ビット
のゼロ信号Zn の論理和を行う。図14aに示すよう
に、各n番目の1ビットのゼロ・セル254は、次の下
位の1ビットのゼロ・セル254からKn-1 を受け、次
の最上位の1ビットのゼロ・セル254にKn を出力す
る。
【0124】図14bを見ると、各1ビットのゼロ信号
n はn番目とn−1番目のセルの信号だけによるの
で、加算器/減算器回路の全Nビットの特性を通じて信
号のリップルや伝搬を防ぐ。Kn 、Gn 、Pn 、Zn
ル262、264、466、468は、信号Kn
n 、Pn 、Zn (それぞれn=0からN−1)を発生
する。
【0125】Pn とGn はALU=0信号に明示的には
用いられていない(Zn はPn を間接的に用いる。他の
方式でもよい)が、これらの信号は加算器/ALU設計
の技術でよく知られており、ここでは例示の目的で加算
器として示している。減算器すなわちALUは、Kn
n 、Pn 、Zn セル262、264、266、268
の他の構成を用いてよい。これらの他の方式や修正は、
この技術でよく知られている。
【0126】次の表5は、この実施態様と図面の概要を
与える。
【表5】
【表6】
【表7】
【表8】
【0127】望ましい実施態様の回路で用いる命名の規
約は、例として32ビットALUを用いた。従ってMS
Bは、この文書の文脈の中では第31ビットである。3
2ビット以外の大きさのALUを使えることは明かであ
り、従って特許請求の範囲に規定しているように、この
発明でも予想している。
【0128】以上にいくつかの望ましい実施態様を詳細
に説明した。この発明の範囲は、ここに説明したものと
は異なっても特許請求の範囲内にある実施態様をも含む
ものである。
【0129】場合によっては、「マイクロコンピュー
タ」という語は記憶を持ったもので、「マイクロプロセ
ッサ」は記憶を持たないものとして用いられる。ここで
は、これらの用語は同義語であって同じものを指すもの
とする。
【0130】「処理回路」という語は、ASIC(用途
向け集積回路)、PAL(プログラマブル・アレイ論
理)、PLA(プログラマブル論理アレイ)、複号器、
記憶装置、非ソフトウエア基準プロセッサ、またはその
他の回路、または任意の構成のマイクロプロセッサやマ
イクロコンピュータを含むディジタル・コンピュータ、
またはそれらの組合わせを含む。発明の範囲を考慮する
際には、含むという語は無制限と解釈する。
【0131】これの実現は、シリコン、ガリウム砒素、
その他の電子材料族を用いた離散要素または完全な集積
回路でも、光学的または他の技術を基にした形式や実施
態様でも考えられる。この発明の各種の実施態様は、ハ
ードウエア、ソフトウエア、マイクロコード化ファーム
ウエアを採用または実施することができる。
【0132】この発明について例示の実施態様を参照し
て説明したが、この説明は制限的に解釈してはならな
い。この発明の他の実施態様も例示の実施態様の各種の
修正や組合わせも、この説明を参照すればこの技術に精
通した人には明かである。従って特許請求の範囲は、そ
のような全ての修正や実施態様を含むものである。
【0133】以上の説明に関して更に以下の項を開示す
る。 (1) alu状態信号を出力する関連算術論理ユニッ
トで実行する算術または論理操作の結果に基づいて分岐
決定信号を出す回路であって、 a) 少なくとも2つの候補分岐決定回路であって、そ
れぞれは候補分岐決定信号を計算し、それぞれは少なく
とも1つの前記alu状態信号に対して独特の候補条件
コードを出力し、前記alu状態信号は少なくとも2つ
の条件を持つものと、 b) 前記少なくとも1つのalu状態信号に基づい
て、前記少なくとも2つの候補分岐決定信号から正しい
分岐決定信号を選択する第1選択回路と、を含む回路。
【0134】(2) 前記少なくとも1つのalu状態
信号と少なくとも1つの他のalu状態信号から、少な
くとも2つの計算された候補条件コードを計算するため
の少なくとも1つの条件コード論理回路を更に備え、各
計算された候補条件コードは候補alu状態信号の独特
の組合わせから得られる、第1項記載の回路。 (3) ラッチされた条件コードを記憶する条件コード
・レジスタを更に備える、第2項記載の回路。 (4) 前記計算された候補条件コードと前記ラッチさ
れた条件コードから選択するための第2選択回路を更に
備える、第3項記載の回路。
【0135】(5) 前記条件コード・レジスタに入力
されまたプロセッサの制御の下に選択される、少なくと
も2つの条件コード源の1つを選択するための、第3選
択回路を更に備える、第3項記載の回路。 (6) 前記条件コード源の1つは1組のラッチされた
条件コードであって、前の命令サイクルからの条件コー
ドを用いてよい、第5項記載の回路。 (7) 前記第1選択回路はマルチプレクサ網を備え
る、第1項記載の回路。 (8) 前記マルチプレクサ網は単一のマルチプレクサ
である、第7項記載の回路。
【0136】(9) 前記選択回路は論理積・論理和・
反転ゲート網を備える、第1項記載の回路。 (10) 前記少なくとも1つのalu状態信号は、前
記算術または論理操作の結果が前記算術論理ユニットの
最上位ビットにけた上げ入力を生じたかどうかを示す、
第1項記載の回路。 (11) 前記少なくとも1つのalu状態信号は、前
記算術または論理演算の結果がゼロかどうかを示す、第
1項記載の回路。 (12) 前記第1選択回路は、前記少なくとも1つの
alu状態信号と少なくとも1つの他のalu状態信号
とに基づいて、正しい分岐決定信号を選択する、第1項
記載の回路。
【0137】(13) 少なくとも2つの中間分岐決定
信号は、前記少なくとも1つの前記alu状態信号に基
づいて前記少なくとも2つの候補分岐決定信号から選択
される、第12項記載の回路。 (14) 前記正しい分岐決定信号は、前記少なくとも
1つの他の前記alu状態信号に基づいて前記少なくと
も2つの中間分岐決定信号から選択される、第13項記
載の回路。 (15) 前記少なくとも1つの前記alu状態信号
は、前記算術または論理演算の結果がゼロかどうかを示
す、第14項記載の回路。
【0138】(16) 前記少なくとも1つの他の前記
alu状態信号は、前記算術または論理操作の結果が前
記算術論理ユニットの最上位ビットにけた上げ入力を生
じたかどうかを示す、第15項記載の回路。 (17) 前記少なくとも1つの前記alu状態信号
は、前記算術または論理操作の結果が前記算術論理ユニ
ットの最上位ビットにけた上げ入力を生じたかどうかを
示す、第14項記載の回路。 (18) 前記少なくとも1つの他の前記alu状態信
号は、前記算術または論理演算の結果がゼロかどうかを
示す、第17項記載の回路。
【0139】(19) 少なくとも1つの更に別の前記
alu状態信号は、下位グループのビットからのけた上
げ入力の結果を示す、第18項記載の回路。 (20) 前記少なくとも1つの前記alu状態信号
は、前記算術または論理演算の結果がゼロかどうかを示
す、第19項記載の回路。 (21) 前記少なくとも1つの他の前記alu状態信
号は、2つの追加のalu状態信号から選択する前記第
1選択回路の一部となる、第20項記載の回路。 (22) 前記算術および論理ユニットはNビットを持
つ、第12項記載の回路。
【0140】(23) 前記Nビットの算術および論理
ユニットは、N−1ビットの算術および論理ユニットと
1ビットのMSB算術および論理ユニットを備える、第
22項記載の回路。 (24) 前記N−1ビットの算術および論理ユニット
は、けた上げ入力なしのNビットの算術および論理ユニ
ットの構造を備える、第23項記載の回路。 (25) 前記N−1ビットの算術および論理ユニット
は条件付き和算術および論理ユニットである、第24項
記載の回路。 (26) 前記条件付き和算術および論理ユニットは、
第1半分と第2半分を備え、前記第1半分は0ビットか
ら(N×1/2)−2ビットまでの和を計算し、前記第
2半分は(N×1/2)−1ビットからN−1ビットま
での和を計算する、第25項記載の回路。
【0141】(27) 前記条件付き和算術および論理
ユニットは、条件付き和加算器である、第26項記載の
回路。 (28) 分岐決定を行う方法であって、 a) 算術または論理演算を実行し、 b) 少なくとも1つのalu状態信号を与え、 c) 少なくとも2つの候補分岐決定信号を計算し、そ
れぞれは前記少なくとも1つのalu状態信号に対して
独特の状態信号コードを出力し、 d) 前記状態信号が出るときの前記少なくとも1つの
alu状態信号に基づいて、前記少なくとも2つの候補
分岐決定信号から正しい分岐決定信号を選択する、段階
を含む方法。
【0142】(29) この発明において、算術または
論理演算の結果に基づいて分岐決定信号を出す回路50
を説明する。この回路は少なくとも2つの候補分岐決定
回路52、54、56、58を備え、それぞれは候補分
岐決定信号を計算し、それぞれは少なくとも1つのal
u状態信号に対して独特の候補条件コードを出力する。
この回路は第1選択回路62,64,66を更に備え、
前記状態信号が出たときに前記alu状態信号に基づい
て、前記候補分岐決定信号から正しい分岐決定信号を選
択する。その他の装置、システム、方法も開示する。
【0143】
【関連米国特許の相互参照】 特許番号/出願番号 出願日 TIケース番号 4,815,019 1987年2月26日 TI−12438 07/922,926 1992年7月31日 TI−16056 07/823,282 1992年7月31日 TI−16575
【図面の簡単な説明】
【図1】第1の従来の分岐決定回路の略図。
【図2】第2の従来の分岐決定回路の略図。
【図3】最後に到着する条件コードcin31に対して
最適化された第1の望ましい実施態様の分岐決定回路の
略図。
【図4】条件コード・レジスタと関連回路の望ましい実
施態様の略図。
【図5】aは送りありの場合の、条件コード・レジスタ
と関連回路のタイミング図。bは送りなしの場合の、条
件コード・レジスタと関連回路のタイミング図。
【図6】aは第2の望ましい実施態様の分岐決定回路の
候補分岐決定信号選択muxの第1方式で、最後に到着
する条件コードであるgcinに対して最適化されたけ
た上げ選択加算器/ALUと両立する構造を示す部分略
図。bは第2の望ましい実施態様の分岐決定回路の候補
分岐決定信号選択muxの第2方式で、最後に到着する
条件コードであるgcinに対して最適化されたけた上
げ選択加算器/ALUと両立する構造を示す部分略図。
【図7】第3の望ましい実施態様の分岐決定回路の候補
分岐決定信号選択muxの方式で、最後に到着する条件
コードであるALU0に対して最適化された加算器/A
LUと両立する構造を示す部分略図。
【図8】第4の望ましい実施態様の分岐決定回路の候補
分岐決定信号選択muxの方式で、最後に到着する条件
コードであるALU0に対して最適化されたけた上げ選
択加算器/ALUと両立する構造を示す部分略図。
【図9】分岐決定信号選択のためにMSBけた上げ入力
信号を出すNビットの部分的な和加算器を備える、けた
上げ選択加算器のハイレベルの略図。
【図10】図9にブロックで示す部分的な和加算器に用
いることのできるNビットのリップルけた上げ加算器の
部分的な略図。
【図11】分岐決定信号選択のためにMSBけた上げ入
力信号を出すNビットの部分的な和加算器を備える、け
た上げ先見加算器のハイレベルの略図。
【図12】図11にブロックで示す部分的な和加算器と
して用いることのできるNビットのけた上げ先見加算器
の部分的な略図。
【図13】図3および図7の実施態様を支持する一般化
されたALU回路を示す。
【図14】1ビットのゼロ・セルを備えるALU=0回
路を示す。特に指示のない限り、異なる図の対応する数
字と符号は、対応する部分に関連する。
【符号の説明】
30 第1の従来の分岐決定回路 32,33,34,35 分岐決定信号ゲート 36 EXORゲート 37 ORゲート 38 EXORゲート 40 第2の従来の分岐決定回路 42,43,44,45 分岐決定信号ゲート 46 EXNORゲート 47 NANDゲート 48 EXORゲート 50 第1の望ましい実施態様の
分岐決定回路 52,54,56,58 候補分岐決定回路 62,64,66 選択回路 70 条件コード・レジスタ 72,74,76,78 条件コード論理回路 80,82 選択回路 84 ORゲート 86 EXORゲート 88 ORゲート 90 EXNORゲート 92,94,96,98 候補分岐決定信号ゲート 100 EXNORゲート 102 NANDゲート 104 EXORゲート 110 条件コード・レジスタ関連
回路 112 選択回路 114 3ビットの2対1mux 120 部分的な第2の望ましい実
施態様 122,124,,126 選択回路 130 別の部分的な第2の望まし
い実施態様 132,134,136 選択回路 140 部分的な第3の望ましい実
施態様 142,144,146 選択回路 150 部分的な第4の望ましい実
施態様 152,154,156,158 選択回路 160,162,164 選択回路 170 けた上げ選択加算器 172,174,176 部分的な和加算器 180 部分的な和加算器 182 EXORゲート 184 ANDゲート 186 ORゲート 200 けた上げ先見加算器 202 けた上げ先見の部分的な和
加算器 204 ANDゲート 206 ORゲート 212 EXORゲート 214 ANDゲート 216 ORゲート 218 ANDゲート 220 ORゲート 222 ANDゲート 230 一般化したALU回路 232 N−1ビットの条件付き和
加算器 234 1ビットのALU 240 N−1ビットの条件付き和
加算器 242 第1半加算器 244 第2半加算器 246 N−1ビットのmux 248 1ビットのmux 250 ALU=0回路 252 N入力AND回路 254 1ビットのゼロ・セル 262 Kn セル 264 Gn セル 266 Pn セル 268 Zn セル
【手続補正書】
【提出日】平成6年4月28日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 alu(算術論理演算装置)状態信号を
    出力する関連算術論理ユニットで実行する算術または論
    理操作の結果に基づいて分岐決定信号を出す回路であっ
    て、 a) 少なくとも2つの候補分岐決定回路であって、そ
    れぞれは候補分岐決定信号を計算し、それぞれは少なく
    とも1つの前記alu状態信号に対して独特の候補条件
    コードを出力し、前記alu状態信号は少なくとも2つ
    の条件を持つものと、 b) 前記少なくとも1つのalu状態信号に基づい
    て、前記少なくとも2つの候補分岐決定信号から正しい
    分岐決定信号を選択する第1選択回路と、を含む回路。
  2. 【請求項2】 分岐決定を行う方法であって、 a) 算術または論理演算を実行し、 b) 少なくとも1つのalu状態信号を与え、 c) 少なくとも2つの候補分岐決定信号を計算し、そ
    れぞれは前記少なくとも1つのalu状態信号に対して
    独特の状態信号コードを出力し、 d) 前記状態信号が出るときの前記少なくとも1つの
    alu状態信号に基づいて、前記少なくとも2つの候補
    分岐決定信号から正しい分岐決定信号を選択する、段階
    を含む方法。
JP24181493A 1992-09-29 1993-09-28 高速のマイクロプロセッサ分岐決定回路 Expired - Lifetime JP3597547B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/953,637 US5504867A (en) 1992-09-29 1992-09-29 High speed microprocessor branch decision circuit
US953637 1992-09-29

Publications (2)

Publication Number Publication Date
JPH076032A true JPH076032A (ja) 1995-01-10
JP3597547B2 JP3597547B2 (ja) 2004-12-08

Family

ID=25494300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24181493A Expired - Lifetime JP3597547B2 (ja) 1992-09-29 1993-09-28 高速のマイクロプロセッサ分岐決定回路

Country Status (6)

Country Link
US (1) US5504867A (ja)
EP (1) EP0590914B1 (ja)
JP (1) JP3597547B2 (ja)
KR (1) KR100286881B1 (ja)
DE (1) DE69327030T2 (ja)
TW (1) TW320702B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758142A (en) * 1994-05-31 1998-05-26 Digital Equipment Corporation Trainable apparatus for predicting instruction outcomes in pipelined processors
WO2001063416A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for scalable array processor interrupt detection and response
US8707037B2 (en) * 2008-04-17 2014-04-22 Atmel Corporation Cryptographic authentication apparatus, systems and methods
US9652242B2 (en) * 2012-05-02 2017-05-16 Apple Inc. Apparatus for predicate calculation in processor instruction set
DE102013008367A1 (de) 2013-05-16 2014-11-20 Man Truck & Bus Ag Antriebsvorrichtung sowie Verfahren zum Betreiben derselben unter Verwendung eines partiell oxidierten Dieselkraftstoffs

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947369A (en) * 1982-12-23 1990-08-07 International Business Machines Corporation Microword generation mechanism utilizing a separate branch decision programmable logic array
US4685078A (en) * 1984-10-31 1987-08-04 International Business Machines Corporation Dual incrementor
US5247627A (en) * 1987-06-05 1993-09-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
JPH01277931A (ja) * 1988-04-29 1989-11-08 Nec Ic Microcomput Syst Ltd 零検出回路

Also Published As

Publication number Publication date
EP0590914B1 (en) 1999-11-17
DE69327030T2 (de) 2000-07-20
TW320702B (ja) 1997-11-21
EP0590914A3 (en) 1994-05-25
JP3597547B2 (ja) 2004-12-08
DE69327030D1 (de) 1999-12-23
KR100286881B1 (ko) 2001-04-16
US5504867A (en) 1996-04-02
EP0590914A2 (en) 1994-04-06
KR940007722A (ko) 1994-04-28

Similar Documents

Publication Publication Date Title
US6411980B2 (en) Data split parallel shifter and parallel adder/subtractor
US10340920B1 (en) High performance FPGA addition
EP0653703B1 (en) Temporary pipeline register file for a superpipelined superscalar processor
US6990510B2 (en) Wide adder with critical path of three gates
US6209076B1 (en) Method and apparatus for two-stage address generation
US20020143841A1 (en) Multiplexer based parallel n-bit adder circuit for high speed processing
US5815420A (en) Microprocessor arithmetic logic unit using multiple number representations
US20120173597A1 (en) Leading sign digit predictor for floating point near subtractor
US6101621A (en) Logic circuit and method for designing the same
US7170317B2 (en) Sum bit generation circuit
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
JP3597547B2 (ja) 高速のマイクロプロセッサ分岐決定回路
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
US7330869B2 (en) Hybrid arithmetic logic unit
JPH09222991A (ja) 加算方法および加算器
JPH06195201A (ja) 不等桁上げ方式(varied carry scheme)を用いた高速加算器とそれに関連する方法
US5588127A (en) High speed microprocessor branch decision circuit
US6065034A (en) Circuit and method employing an adder for sign extending operands
US8473541B2 (en) M-bit race delay adder and method of operation
US20040225699A1 (en) Method for early evaluation in micropipeline processors
US6035310A (en) Method and circuit for performing a shift arithmetic right operation
US5926407A (en) Combined add/shift structure
EP0992884B1 (en) Zero anticipation method and apparatus
US20050033939A1 (en) Address generation

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070917

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100917

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110917

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110917

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120917

Year of fee payment: 8