JPH0823811B2 - 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構 - Google Patents

3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構

Info

Publication number
JPH0823811B2
JPH0823811B2 JP3230994A JP23099491A JPH0823811B2 JP H0823811 B2 JPH0823811 B2 JP H0823811B2 JP 3230994 A JP3230994 A JP 3230994A JP 23099491 A JP23099491 A JP 23099491A JP H0823811 B2 JPH0823811 B2 JP H0823811B2
Authority
JP
Japan
Prior art keywords
carry
overflow
bit
operand
instruction
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.)
Expired - Lifetime
Application number
JP3230994A
Other languages
English (en)
Other versions
JPH04230519A (ja
Inventor
スタマティス、バシリアディス
ジェームズ、エドワード、フィリップス
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 JPH04230519A publication Critical patent/JPH04230519A/ja
Publication of JPH0823811B2 publication Critical patent/JPH0823811B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • 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/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタル・コンピュ
ータおよびディジタル・データ・プロセッサに関し、詳
細には、2つまたはそれ以上の命令を同時に実行可能な
ディジタル・コンピュータおよびディジタル・データ・
プロセッサに関する。
【0002】
【従来の技術】一連の命令を受信して一時に1つづつそ
の命令列を実行する従来のコンピュータが知られてい
る。こうしたコンピュータにより実行される命令は、単
一値オブジェクトに基づいて動作する。それ故こうした
コンピュータに対して「スカラー」という名称が与えら
れる。従来のスカラー・コンピュータの動作速度は、回
路技術、コンピュータ機構およびコンピュータ・アーキ
テクチャの進展によりその限界にきている。しかし、競
合するコンピュータの新しい世代ではそれぞれ、従来の
スカラー・マシン用の新しい加速機構を見つけだす必要
がある。
【0003】ユニプロセッサの計算速度を加速する最近
の機構は、非常に単純な命令の限られた集合を利用する
縮小命令集合アーキテクチャで発見されたものである。
他の加速機構は、複雑な複数オペランド命令の最小の集
合に基づいた複雑な命令集合アーキテクチャである。従
来のスカラー・コンピュータにこうした方式のどちらか
一方を適用するには、マシンの命令集合とアーキテクチ
ャの基本的な変更が必要になる。こうした達成困難な変
更には、費用、処理速度低下、マシンの信頼性と可用性
の縮小を伴う。
【0004】本特許出願は以下の出願中の米国特許に関
連する。1990年5月4日出願の出願番号第07/5
19382号の「スケーラブル複合命令集合マシン・ア
ーキテクチャ(SCALABLE COMPOUND INSTRUCTION SETMAC
HINE ARCHITECTURE)」発明者はStamatis Vassiliadis
その他。1990年5月4日出願の出願番号第07/5
19384号の「命令レベル並列プロセッサ用の汎用複
合装置(GENERAL PURPOSE COMPOUND APPARATUS FORINST
RUCTION-LEVEL PARALLEL PROCESSORS )」発明者はRich
ard J. Eickemeyer その他。1990年4月4日の出願
番号第07/504910号の「データ依存性破壊ハー
ドウェア装置(DATA DEPENDENCY COLLAPSING HARDWARE
APPARATUS )」発明者はStamatis Vasiliadis その他。
1990年5月10日出願の出願番号第07/5222
91号の「キャッシュ用の複合プリプロセッサ(COMPOU
NDING PREPROCESSOR FOR CACHE)」発明者はBartholome
w Blanerその他。1990年6月26日出願の出願番号
第07/543464号の「スケーラブル複合命令集合
マシーンプロセッサ用のメモリ内プリプロセッサ(AN IN
-MEMORYPREPROCESSOR FOR A SCALABLE COMPOUND INSTRU
CTION SET MACHINE PROCESSOR) 」発明者はRicahrd J.E
ickemeyerその他。1990年6月26日出願の出願番
号第07/543458号の「メモリ内複合によるスケ
ーラブル複合命令集合マシン用のメモリ管理(MEMORY M
ANAGEMENTFOR SCALABLE COMPOUND INSTRUCTION SET MAC
HINES WITH IN-MEMORY COMPOUNDING )」発明者はRicha
rd J.Eickemeyerその他。上記の出願中の発明および本
出願の発明は、ニューヨーク、アーモンクにあるインタ
ーナショナル・ビジネス・マシン社により所有されてい
る。上記の出願中の発明の詳細な説明は、参考のため本
願書に組み込まれている。
【0005】上記の特許出願中の発明では、スケーラブ
ル複合命令集合マシン(SCISM)アーキテクチャが
記載されている。このアーキテクチャでは、命令実行の
前に1時に1つづつスカラー命令の列を静的に分析する
ことにより命令レベルの並列化が達成され、並列実行が
可能な従来の一連の命令を隣接するグループに分離して
形成された複合命令を生成する。本明細書では、用語
「複合化」は、連続する命令に含まれた命令のグループ
に分離することを意味する。そのグループ分離化は、グ
ループに分離された命令の同時または並行に実行するた
めに行なわれる。最小レベルでは、複合化は、同時命令
用に2つの命令を対にすることにより満たされる。複合
化命令は、スカラー実行用に提出されたときに命令がも
つ形式と同じであるのが好ましい。
【0006】スカラー命令を並列または同時に実行する
ようにすると、SCISMマシンはいくつかの障害物を
もつことになる。こうした障害物は「インターロック」
とも呼ばれる。より詳細には、「書込み−読取り障害
物」または「読取り−書込み障害物」とも呼ばれるデー
タ依存性障害物が、一連の命令の中2つの命令が同時ま
たは並列に実行されるときに発生する。具体的には、そ
の障害物が発生するのは、第2の命令が、実行のため
に、第1の命令の結果を読み取らなければならないとき
である。たとえば、図1を参照すると、第1命令10が
命令の列において第2命令12の前にある。これらの命
令は両方とも、命令実行用のオペランドが記憶される汎
用レジスタ(GPR)14の集合へのアクセスが必要で
ある。第1命令10は、レジスタ位置15と16にそれ
ぞれ記憶される2つのオペランドを必要とする。命令実
行にはその結果がレジスタ位置16に書き戻されること
が必要であると仮定する。第2命令12も、実行のため
に2つのオペランド、レジスタ位置17と16に記憶さ
れたオペランドが必要である。第2命令12が信頼のお
ける結果を作成するには、レジスタ位置16に書き込ま
れるまで第1命令10の実行の結果が遅延される必要が
ある。
【0007】図2に示す機構は、図1に示すデータ依存
性を破壊するために提案されたものである。図2は、2
つの命令、たとえば、図1の命令10と12、が単一実
行機構として考えられる機構に複合されているものを示
している。第1および第2命令10と12が複合される
と、その複合化の結果、それらは並行に発行され実行さ
れる。図2の構造では、複合化された命令は同時に実行
され、第1命令は2対1演算論理機構(ALU)19に
より実行され、第2命令は3対1演算論理機構(AL
U)21により実行される。演算論理機構21は、これ
らの2つの命令間で発生する書込み−読取りインターロ
ックを壊すように設計されている。図1の例では、演算
論理機構19と21は、命令10と12を並列に実行
し、演算論理機構19はレジスタ位置15と16のオペ
ランドに基づいて動作し、演算論理機構21はレジスタ
位置15、16、17のオペランドに基づいて動作す
る。演算論理機構21の動作は、第1命令により要求さ
れるようにレジスタ位置15と16のオペランドを組み
合わせて、第2の命令の実行に必要な結果を獲得するこ
とを意味している。
【0008】演算論理機構21は、並列に動作される2
つの命令間で発生する書込み−読取りインターロックを
壊すよう設計されているので、演算論理機構21は、壊
されなければならないインターロックをもつすべての命
令列にたいして起こる機能を実行するよう設計される。
演算論理機構21の動作は、本特許出願の主題ではない
が、出願中の米国特許第07/504910号に詳述さ
れている。
【0009】図2のインターロック破壊ハードウェア
は、個々の命令がどちらとも有効な演算論理記憶の動作
を指定して書込み−読取り障害物を含むときに、複合さ
れた命令の正確な結果を計算する。しかし、こうした装
置は、2つの有効でない演算が指定されると、誤った結
果を計算する。これは、SCISMアーキテクチャと命
令を逐次実行するスカラー・マシンのアーキテクチャ間
の対応を達成するために解決されなければならない主要
な問題である。
【0010】演算論理機構19は、「通常の」2対1演
算論理機構演算として第1命令の実行を行ない、その結
果を生成する。演算による複数の状態コードCCの決定
とオーバーフローOFの検出は、従来の技術により実行
可能である。
【0011】演算論理機構19が第1命令の実行により
発生する状態コードCCとオーバーフローOFを設定す
るので、演算論理機構21は、第2命令を実行している
かのようにこうした状態の決定を制限する。特に、演算
論理機構21におけるオーバーフローOFの検出は、そ
の結果の計算と並列に実行され、演算論理機構21の結
果が利用可能で第2命令だけが実行されているかのよう
に行なわれるべきである。これを可能にするには、第2
命令のみの実行に関連する情報が、演算論理機構21に
よりこの命令を実行する間に確認される必要がある。
【0012】
【発明が解決しようとする課題】したがって、1対の複
合命令を同時に実行する装置におけるようなデータ依存
破壊ハードウェア装置がOFを検出する必要がある。オ
ーバーフローの検出は、第2命令のみの実行に特有でな
ければならないが、依存性破壊ハードウェア装置におけ
る3対1演算の実行から収集されなければならない。
【0013】本発明の目的は、1対のスカラー命令を同
時に実行するデータ依存性破壊ハードウェア装置におけ
るオーバーフロー検出を実現することにある。本発明の
関連する目的は、こうした装置におけるオーバーフロー
検出の指示が、同時に実行された命令の第2の命令だけ
の実行に特有であることにある。本発明の特有の利点
は、こうしたオーバーフロー検出が、データ依存性破壊
装置に入力された値とその装置内で生成された値だけを
用いて実行されることである。
【0014】
【課題を解決するための手段】本発明は、2つの命令を
同時に実行する装置における演算オーバーフローを検出
する機構として表される。この機構は、3つの複数ビッ
ト、2進オペランドに応えて、和および桁上げ信号を生
成する桁上げセーブ加算器を含む。桁上げルックアヘッ
ド加算器は、桁上げセーブ加算器に接続されて、和およ
び桁上げ信号に応答して結果信号を生成する。その結果
信号は、3つの複数ビット2進オペランドで実行された
一連の2つの2進演算動作の実行により達成された結果
を表す。この機構は、2進演算の第2の演算の実行によ
り発生するオーバーフロー状態を表すオーバーフロー信
号OFを作成する桁上げセーブ加算器に接続された論理
回路を含む。そのオーバーフロー信号は、オペランドと
和および桁上げ信号に応えて作成される。この機構が上
記の目的と利点を満足たすことは、以下の詳細な説明を
添付図面を参照にして読めば理解できるであろう。
【0015】
【実施例】データ依存性破壊ハードウェア装置(以後
「3−1演算論理機構」と呼ぶ)が、図3の回路機構に
図示されている。図3に示すように、桁上げセーブ加算
器(CSA)30が桁上げルックアサイド加算器(CL
A)32に直列接続される。この構成は、図2の演算論
理機構21の演算部分を備え、データ依存性の障害物で
1対の複合命令の同時実行を支援する。複合インターロ
ック命令実行の概念は、加算命令ADDと減算命令SU
Bにより明確になる。これらの2つの命令は実行用の同
じハードウェアを利用するという理由から、1つの固有
の命令形式(すなわち、「ADD」形式)として分類さ
れる。その結果、それらの命令は、1つの命令として組
み合わされて実行できる。以下のシーケンスを考慮して
みる。ADD R1、R2 R1をR2に加算し、その
結果をR1に入力する。SUB R1、R3 R1から
R3を減算し、その結果をR1に入力する。ただし、加
算命令は、レジスタR1の内容をレジスタR2の内容に
加算し、その加算結果をレジスタR1に戻すことにより
実行され、SUB命令は、レジスタR1の内容からレジ
スタR3の内容を差し引きその結果をレジスタR1に戻
すことにより実行される。演算の逐次実行の表示は次の
ようになる。 R1=R1+R2 R1=R1−R3 並列化を活かすために、2つの命令を同時に実行する
が、それには、単一命令を実行するのに必要な時間で以
下の演算を実行する必要がある。 R1=R1+R2−R3
【0016】図3のデータ依存性破壊装置のADD形式
命令の実行とインターロックの除去は、CSA30をC
LA32に直列に接続することで実行可能である。上記
の例では、CSA30への入力は、レジスタR3の補足
された内容と共に3つのレジスタR1、R2、R3に含
まれたオペランドである。従来のように、CSAは、3
つの入力に応答して2つの出力を作成する。それらの出
力は和出力Sと桁上げ出力Lとして示される。これら2
つの出力は、CLA32へオペランドとして提供され
る。CLA32はこれら2つの出力を組み合わせて、O
UTとして示される単一結果を作成する。
【0017】図3では、CSA30は、40、41、4
2で3つのオペランドを受信する結合段34を含む。桁
上げ出力を受信する桁上げセーブ桁送り回路36が備え
られる。桁上げ出力は36で桁送りされて、入力37に
より桁上げ値に「1」または「0」(「新しい」1また
は0)を付加する。この値は、「桁入れ(carry−
in)」とも呼ばれる。入力37の値は、CSA30に
より実行される機能に応じて慣例的に設定される。
【0018】CSA30の和および桁上げ(1または0
が添付されている)出力が、CLA32への2つの入力
として提供される。CLA32も、従来、望ましい演算
によって入力39上の「新しい」1または0を受信し
て、44でその結果(OUT)を出力する。CLA32
で生成された結果は、2つの演算の連続実行により生成
された結果を表し、その列は、図3の装置により単一演
算に壊される。
【0019】桁上げセーブおよび桁上げルックアヘッド
加算器は従来の構成要素であり、その構造と機能は周知
である。Hwangは、その著作であるコンピュータ演
算:原理、アーキテクチャ、デザイン、1979(COMP
UTER ARITHMETIC:PRINCIPLES,ARCHITECTURE, AND DESIG
N)において、桁上げルックアヘッド加算器(88ない
し93頁)と桁上げセーブ加算器(97ないし100
頁)を詳述している。
【0020】第2命令のみの実行により発生する状況を
適切に判定するために図3の3−1演算論理機構から誘
導される情報が2つのカテゴリに分割可能である。第1
は、複合命令対の第2命令の実行によってのみ発生する
符号ビットへの桁上げおよびその符号ビットからの桁上
げを決定する必要がある。第2は、第1命令の結果の符
号ビットが、2の補数の演算から発生する状態を誘導す
るために決定される必要がある。
【0021】オーバーフローを適切に検出するために、
複合命令の第2命令が第1演算の結果の後で2対1演算
として実行される場合に発生する符号ビットへの桁上げ
およびその符号ビットからの桁上げを決定する必要があ
る。こうした桁上げは、図3に示す装置により実行され
た3対1の加算法により生成された桁上げから決定可能
である。
【0022】3対1加算内で実行される機能は、第2命
令の第1または第2オペランドでインターロックする加
算類命令の組合せにより発生する。こうした機能は、表
Iと表IIに示してある。ただし、そこで仮定された命令
は、本出願人から販売されたシステム/370コンピュ
ータ・システムの命令集合から引き出された命令であ
る。370命令形式においては、加算形式命令に対し
て、第2オペランドが第1オペランドに加算されるか、
そこから差し引かれ、その結果は第1オペランド位置に
記憶される。表Iは命令が第2命令の第1オペランドで
インターロックされるときに発生する機能を示し、表II
は命令が第2命令の第2オペランドでインターロックす
るときに発生する機能を示す。こうした表では、aとd
が第1命令の第1および第2オペランドをそれぞれ表
す。ただし、aとbは第2命令の2つのオペランドを表
す。オペランドは、32ビットの2の補数として表さ
れ、最上位ビット位置はビット位置ゼロとして示され
る。たとえば、オペランドaは、次のように表される。 a=[a0 、a1 、...、a31] ただし、a0 は、最上位ビットで「符号」ビットを示
し、a31は最下位ビットを示す。
【0023】表I 第2命令の第1オペランドのインターロックによる機能 演算 ALU機能 ケース 新しい1 t1 0 1 0 + + (a+d)+b=a+b+d ケース 1 0 0 0 0 + - (a+d)-b=a-b+d ケース 2 1 0 1 0 - + (a-d)+b=a+b-d ケース 3 0 1 0 1 - - (a-d)-b=a-b-d ケース 4 1 1 1 1 表II 第2命令の第2オペランドのインターロックによる機能 演算 ALU機能 ケース 新しい1 t1 0 1 0 + + b+(a+d)=a+b+d ケース 1 0 0 0 0 + - b-(a+d)=-a+b-d ケース 2 1 1 1 0 - + b+(a-d)=a+b-d ケース 3 0 1 0 1 - - b-(a-d)=-a+b+d ケース 4 1 0 1 1
【0024】表IとIIでは、2つの加算類命令は、図3
に示してあるように演算機構により同時に実行されると
きに8つの可能な場合が発生する。たとえば、表Iの第
2の行は、上記の例を表し、加算ADDとその次に減算
SUBが続く。表に示された8つの可能な場合の中で
は、2つのインターロック形式は、第2命令が加算であ
るとときには同一の結果を生成するので、6つの場合だ
けが個別である。表に識別されているこれら6つの場合
は、以後に続く説明における演算機構の機能の誘導を示
すために用いられる。さらに、表IとIIに示す場合は、
演算を適切に動作するためにどのように「新しい」1が
セットアップされなければならないかを決定する。「新
しい」1の必要なセットアップも上記の表に含まれてい
る。量t0 とt1 が「新しい」1の要求に対応する、た
だし、−aまたは−bの計算が必要なときにt1 =1を
もつインターロックが壊され、他方、−dの計算が必要
なときにはt0 =1をもつインターロックが壊される。
量h0 とh1 は、「新しい」1に対応する。これらの
「新しい」1は、連続して実行されるときに命令対の第
1および第2命令に供給されなければならない。
【0025】3対1加算は、図3に示すようにCSAと
CLAを組合せて実行される。CSAは、3つの入力オ
ペランドからの和および桁上げを生成し、他方CLA
は、「新しい」1または0を添付することによりCSA
からMSBに1ビット位置分移送された桁上げに、CS
Aからの和を加算することにより単一の結果を作成す
る。オーバーフローがなく、打ち切りを伴う適切な加算
が行なわれると仮定すると、CSA演算は次のように表
すことができる。 a * 0 a * 1 ・・・ a * 30 a * 31 b * 0 b * 1 ・・・ b * 30 b * 31 d * 0 d * 1 ・・・ d * 30 d * 31 s0 s 1 ・・・ s30 s31 11 1 2 ・・・ 131 ただし、si (0≦i ≦31) は、CSAの和を表し、1
i (0≦i ≦31) は、CSA桁上げを表す。同様に、CL
A演算は以下のように表すことができる。 f1 ・・・ f30 f31 t1 s0 s1 ・・・ s30 s31 11 ・・・ 131 t0 s0 s1 ・・・ s30 s31 ただし、fi (0≦i ≦31) は、CLAで生成または伝播
可能な桁上げを示し、t0 とt1 は、前述のように減算
を実行する演算機構に適応された「新しい」1を表す。
上記の例では、演算論理機構中のオペランドはここでも
a、b、dで表されるが、*が追加されている。この*
は、オペランドの真数または1の補数が、対応する望ま
しい加算または減算を実行するのに必要なように入力と
して演算論理機構に供給されることを示す。
【0026】オーバーフローがない場合、図3の演算論
理機構による命令対を3対1演算として実行すると必
ず、適切な打切りがなされるときに命令対の連続実行に
等価の結果が生成される。連続実行は、2つの2対1加
算として表すことができる、ただし、第1命令は以下の
ように実行される。 k1 ・・・ k30 k31 h0 a0 a1 ・・・ a30 a31 d * 0 d * 1 ・・・ d * 30 d * 31 e0 e1 ・・・ e30 e31 第2命令は以下のように実行される。 c1 ・・・ c30 c31 h1 e * 0 e * 1 ・・・ e * 0 e * 31 b * 0 b * 1 ・・・ b * 30 b * 31 s * 0 s * 1 ・・・ s * 30 s * 31 ただし、kは、第1命令の実行中に生成された桁上げを
表し、cは第2命令の実行により生成された桁上げを表
し、h0 とh1 は、それぞれ第1と第2命令の実行のた
めに2対1加算器に供給された「新しい」1を表す。こ
れらの表記では、*は、オペランドが加算されるか減算
されるかに応じて、供給されたオペランドの真数または
1の補数を表す。第2命令が連続して実行される3対1
加算中の3−1演算論理回路においてオーバーフロー状
況が発生することを以下に説明する。
【0027】オーバーフロー状況発生に関する基本原理
の説明 定理1:S=AVBおよびS=AVCの場合、B=Cで
ある。但し、Vは排他的論理和演算を表す。この定理の
証明を以下で行なう。この証明は、形式含意と命題代数
の等式の定義を用いる。これらの定義とは、 定義1 形式含意(P→Q) 命題関数PとQのP0 とQ0 の対応値の各対に関して、
0 が偽であるか、またはP0 が真のときにQ0 も真で
あるかのいずれか一方である。命題の代数はブール代数
なので、上記の定義は以下のように表せる。 (P→Q)=P’+Q ただし「’」は論理否定演算を表す。 定義2等式(P=Q) P→QでかつQ→Pの場合、P=Qである。 この定義は以下のように表せる。 (P=Q)=(P→Q)(Q→P) ただし、(x)(y)は論理積(AND)を意味する。
形式含意用の式を等式の式に置換すると次のようにな
る。 (P=Q)=(P’+Q)(Q’+P) =P’(Q’+P)+Q(Q’+P) =P’Q’+P’P+QQ’+QP =P’Q’+QP 定理1は、等式の最後の式を使用すれば証明できる。こ
の式の定理1の第1条件への適応、すなわちS=AVB
は以下のようになる。 (S=(AVB))=S’(AVB)’+S(AVB) しかし、定理1の第2条件であるS=AVCによって前
述の方程式のSにAVCを代入すると、次のようにな
る。 (S=(AVB))=(AVC)’(AVB)’+(AVC)(AVB) =(A’C+AC’)’(A’B+AB’)’ +(A’C+AC’)(A’B+AB’) =((A’C)’(AC’)’)((A’B)’(AB’)’) +A’C(A’B+AB’)+AC’(A’B+AB’) =(A+C’)(A’+C)(A+B’)(A’+B) +A’CB+A’CAB’+AC’A’B+AC’B’ =(A(A’+C)+C’(A’+C)) (A(A’+B)+B’(A’+B))+A’CB+AC’B’ =(AA’+AC+C’A’+C’C) (AA’+AB+B’A’+B’B)+A’CB+AC’B’ =(AC+C’A’)(AB+B’A’)+A’CB+AC’B’ =(AC(AB+B’A’)+C’A’(AB+B’A’)) +A’CB+AC’B’ =ACB+C’A’B’+A’CB+AC’B’ =(A+A’)CB+(A’+A)C’B’ =CB+C’B’ しかし、 (B=C)=C’B’+CB であるので、その結果、 B=C となる。
【0028】定理2:インターロックされた計算命令の
対の連続実行により行なわれるビット位置i+1 での桁上
げは次の式により決定できる。 ci+1 =zi+1 Vli+1 Vfi+1 ただし、li+1 とfi+1 は、3対1加算中にCSAによ
り生成された桁上げとCLAにより生成された桁上げで
あり、zi+1 はki+1 またはki+1 ’を表している。k
i+1 は、第1命令を連続して実行している間にビット位
置i+1 で生成された桁上げである。
【0029】証明:ビット位置iのCSAからの和と桁
上げは以下の式から決定できる。 si =a * i Vb * i Vd* i =a * i * i +a * i * i +b * i * i ただし、Vは排他的論理和を表し、a * i * i は論理
積、+は論理和を表す。3対1演算論理機構からの結果
は以下の式により計算される。 Si =si Vli+1 Vfi+1 ここでl32=t0 かつf32=t1 =Cin ただし、t0 とt1 はそれぞれ、第1および第2命令の
実行に供給された新しい1に対応する3対1演算に供給
された新しい1である。任意の桁上げに対して、添字i
は、たとえば、ビットiからビットi−1への桁上げを
表し、f1 はCLAによりビット位置1から位置0への
桁上げを表す。同様に、連続実行の結果は以下のように
表せる。 ei =ai Vd + i Vki+1 * i =e * i Vb * i Vci+1 、 ここでk32=h0 =Cinかつc32=h1 =Cin ただし、h0 とh1 はそれぞれ第1および第2命令の連
続実行に供給された新しい1である。
【0030】上述したように、加算/減算命令および可
能なインターロックの組合せにより6つの固有な場合が
発生する。これらの場合は表Iと表IIに示されている。
これらのケースがそれぞれ考慮されて証明を完了する。ケース1、2、3、4 以下の恒等式は上記の場合に当てはまる a * i =ai 直列および並列実行に対して、aは常に正
である。 d * i =d + i dが直列実行時に正(負)であると、
並列実行時に正(負)でもある。 b * i =b + i bが直列実行時に正(負)であると、
+ i により示されているように、それは並列実行時に
も正(負)である。 e * i =ei 第1命令の正の結果は、対の連続実行に
要求される。 これらの恒等式により、S * i (0 ≦i ≦31)の式は以
下のように表現できる。 S * i =e * i Vb * i Vci+1 =ei Vb * i Vci+1 =ai Vd + i Vk i+1Vb* i Vci+1 =a * i Vd * i Vb * iVki+1 Vci+1 =si Vki+1 Vci+1 xV0=xかつxVx=0なので、 3対1加算による和は以下のように表現できる。 Si =si Vli+1 Vfi+1 Vki+1 Vki+1 =si Vki+1 Vki+1 Vli+1 Vfi+1 ただし、0 ≦i ≦31。しかし、命令対の実行の結果は各
実施において等価である。したがって、 Si =S * i 定理1により、次のようになる。 ci+1 =ki+1 V1i+1 Vfi+1
【0031】ケース5と6 ケース5と6に関して、 a * i =ai ’直列実行に関して、aは常に正であり、
並列実行に関して、aは 常に負である。 d * i =d + i ’直列実行に関してdが正(負)である
と、並列実行に関してそれは負(正)である。 b * i =b + i =bi 直列および並列実行とも、bは
常に正である。 e * i =ei 第1命令の直列実行の結果の負は、第2
命令の実行のために必要になる。 0 ≦i≦31の時にS * i に関する式に上記の恒等式を用
いると、次のようになる 。 S * i =e * i Vb * i Vci+1 =ei Vb * i Vci+1 =ai Vd + i Vki+1 Vb* i Vci+1 =ai Vd + i Vki+1 Vb* i Vci+1 =a * i Vd * i Vki+1 Vb * i Vci+1 =a * i Vd * i Vb * iVki+1 Vci+1 =a * i Vd * i Vb * iVki+1 Vci+1 =si Vki+1 Vci+1 ケース1ないし4に関すれば、Si は以下のように表す
ことができる。 Si =si Vki+1 Vki+1 Vli+1 Vfi+1 ただ
し、0 ≦i ≦31である。 Si =S * i なので、 定理1から ci+1 =ki+1 Vli+1 Vfi+1が導かれる。 QED(証明終了)
【0032】定理3:ci+1 を生成するのに必要な桁上
げki+1 とki+1 ’は以下の式により実行可能である。 Zi+1 =Gi+1 31+Ti+1 31ini+1 31とGi+1 31は、a* 、d* およびt0 =Cin
加算用の送信および生成信号である。
【0033】証明:S.Vassiliadisによる
「ハードワイヤ式2進加算器の再帰的方程式(Recursiv
e Equations for Hardwired Binary Addres )」 INT.
J.ElECTRONICS, vol.67,No.2,pp.201-213, 1989に記載
された桁上げ方程式である、以下の式を考える。 Gi+1 31=Ti+1 * i+1 31 これにより以下の式が証明されることになる。 Zi+1 =Ti+1 * i+1 31+Ti+1 310 ただし、Ti とG * i は、ビット位置iの送信および偽
生成信号であり、T i n とG * i n は、第1命令の直列
実行に関してビット位置nからビット位置iへの送信お
よび偽生成信号である。オペランドa* とd* を使用し
て、3対1加算器に適応するとT + i 、G + i 、T + i
n およびG + i n が対応する信号となる。したがって、
次のようになる。 第1命令ki+1 の直列実行中にビット位置i+1 で生成
された桁上げは、以下のように表すことができる。 ki+1 =Ti+1 (G * i+1 31+Ti+2 310 ) オペランドa* とd* を使用する3対1加算器内で生成
された桁上げZi+1 は、以下のように表すことができ
る。 Zi+1 =T + i+1 (G + i+1 31+T + i+2 310 ) 表IとIIに示す6つの固有なケースがそれぞれ考慮され
て、証明を完了する。
【0034】ケース1、2、3、4 前述の a * i =ai * i =d + i および表IとIIに示す t0 =h0 が付与されているので、以下のようになる。 T + i =(a * i +d * i) =(ai +d + i ) =Ti+1 及び、 G + i =a * i * i =ai + i =G + i したがって、 T + i n =T i n 及び、 G + i n =G * i n これらの式をZi+1 に関する式に代入すると、以下のよ
うになる。 Zi+1 =Ti+1 (G * i+1 31+Ti+2 310 ) t0 =h0 なので、Zi+1 は以下のようになる。 Zi+1 =Ti+1 (G * i+1 31+Ti+2 0 ) したがって、Zi+1 は、これらの場合に関してci+1
生成するために定理2により要求されるようにki+1
生成する。
【0035】ケース5と6 前述した a * i =ai ’ d * i =d + i ’ および表IとIIに示すt0 =h0 が付与されると、以下
のようになる。 Ti =(a * i +d * i ) =(ai ’+d + i ’) =(ai + i )’ =(G * i )’ 及び G * i =(a * i +d * i) =(ai ’+d + i ’) =(ai + i )’ =Ti ’ 上記の式ならびにt0 の式をZi+1 の式に代入すると以
下のようになる。 Zi+1 =G * i+1 ’(Ti+1 ’+Ti+2 ’+G * i+2 ’Ti+3 ’ +G * i+2 ’G * i+3 ’Ti+4 ’+ … +G * i+2 ’G * i+3 ’ … G * 30’T31’ +G * i+2 ’G * i+3 ’ … G * 31’h0 ’) これは、ドモルガンの定理を以下の式に繰り返し適用す
ることにより変形可能である。 Zi+1 =(G * i+1 +Ti+1 i+2 * i+2 +Ti+1 i+2 i+3 * i+3 +Ti+1 i+2 2930 * 30+Ti+1 i+2 31)’ +(G * i+1 +G * i+2 + … +G * 31+h0 )’ しかし、Ti i =Gi なので、次のようになる。 Zi+1 =(Ti+1 * i+1 +Ti+1 * i+2 +Ti+1 i+2 * i+3 + … +Ti+1 i+2 29 * 30+Ti+1 i+2 31)’ +(G * i+1 +G * i+2 + … +G * 31+h0 )’ これはさらに次のように変形される。 Zi+1 =(Ti+1 (Gi+1 31+Ti+2 310 ))’ =ki+1 ’ したがって、こうしたケースに対しては、Zi+1 は、c
i+1を生成するのに必要な値であるki+1 ’を作成す
る。QED.
【0036】前述の証明はS.Vassiliadis
による論文に記載されているような新しい桁上げに基づ
いて再帰的方程式を使用したものである。新しい桁上げ
と桁上げ方程式の結果が同じであることは上記の参考文
献に記載されている。したがって、ci+1 を生成するの
に必要な桁上げki+1またはki+1 ’は以下の式の一方
から計算できる。 Zi+1 =Gi+1 31+Ti+1 310 又は Zi+1 =Ti+1 i+1 31+Ti+1 310 定理2と3は、2つのインターロックされた計算命令の
並列実行における第2命令の位置i+1での桁上げは2
つの方法で生成できることを示唆している。第1の方法
は、2対1演算論理機構の位置i+1での桁上げを使用
する計算である。これは第1命令の結果を作成するため
に要求される、その計算は、適切な反転により、2つの
命令の並列実行中(定理2)に3対1演算論理機構で作
成されるli+1 とfi+1 と共に行なわれる。替わりに、
第2演算の位置i+1の桁上げは、新しい1、t0 、l
i+1 およびfi+1 を適切に設定してその入力a* とd*
から3対1演算論理機構から生成可能である。MSBへ
のおよびそこからの第2命令の桁上げは、演算論理機構
の状況を決定するのに使用可能である。以上によってオ
ーバーフロー状況発生に関する基本原理の説明を終了す
る。
【0037】2対1加算器では、オーバーフローは、2
対1加算による発生した符号ビットへの桁上げまたはそ
の符号ビットからの桁上げの排他的論理和を取ることに
よる検出される。本発明は、符号ビットc1 への桁上げ
とc0 からの桁上げを決定できることを示唆している。
その符号ビットは、図3の演算論理機構が書込み−読取
りインターロックを壊す3対1加算を実行している場合
でさえ命令の複合対の第2命令だけを実行することから
発生する。その結果、第2命令の実行からのオーバーフ
ローは、式(1)により検出できることになる。ただ
し、「V」は排他的論理和演算である。 OF=c0 Vc1 (1)
【0038】本発明では、式(1)の桁上げc0 とc1
は、図3の3対1の演算論理機構に入力された値および
その内部で生成された値から誘導される。こうした桁上
げの決定に関連する信号が図4に図示してある。図4で
は、図3の3−1演算論理機構が5段の機構として示し
てある。この機構では、CS30が第1段を占め、CL
A32が2ないし5段を占る。3つのオペランドはCS
A30の加算器部分50に入力される。この加算器部分
50は和と桁上げ出力を生成する。桁上げ出力は51で
移送されて、桁上げ出力の「新しい」1の位置は、t0
の現在の値が占めている。この和と桁上げは、第1段か
ら第2段に送られる。第2段は、CSA30により作成
された和と桁上げに応じて従来の生成(Gi )と送信
(Ti )項を生成する生成/送信回路53が占めてい
る。CLA32では、従来の桁上げは、生成および桁上
げ項ならびにt1 入力に応じて桁上げ回路54で生成さ
れる。生成および桁上げ項がt1 とともに演算機構の第
5段の和回路55に供給される。和回路は、周知のとお
り、その入力を結合してその結果を出力する。
【0039】本明細書で使用される用語「段」とは、論
理製造の基本ユニットに対応する論理回路の内の1つの
レベルを意味する。こうしたユニットは「ブックセット
(booksets)」とよばれる。従来、1つのブックセット
は、連続する複数のこうしたユニットを含む論理回路を
通過する際の1遅延ユニットを表す。本出願では、用語
「段」はパイプライン式の列の刻時ユニットには対応し
ない。
【0040】本発明は、第2命令のみによるオーバーフ
ローが、3対1加算の結果が生成される同じ段でデータ
依存性破壊演算機構で検出可能であるように実現され
る。これは、データ依存性破壊演算機構に入力される値
とその機構内で生成される値だけを用いる本発明で達成
される。これらの信号は、図4と以下に示す展開を参照
すると理解可能である。前述の展開により、あるアルゴ
リズムは、式(1)の桁上げc0 とc1 の決定を可能に
する本発明のために誘導される。そのアルゴリズムで
は、c0 とc1 は以下のように与えられる。 c0 =k0 Vl0 Vf0 1 =k1 Vl1 Vf1 i とTi は2対1加算の生成および送信信号を表す。
これらの信号は、以下の式により図3と図4に示す演算
機構への入力から誘導することができる。 Gi =ai i i =ai +di ただし、項が隣接していれば「論理積(AND)」演算
を示し、「+」は「論理和(OR)」演算を示す。x
i+1 が、ビット位置i+1からビット位置iへの桁上げ
を表すとすれば、ビット位置0からの桁上げx0 は、以
下の式によりビット位置1からの桁上げx1 から見つけ
ることができる。 x0 =(G0 +T0 1 ) x0 のこの表現を使用すると、以下のようになる。 x0 Vx1 =(G0 +T0 1 )Vx1 0 Vx1 =(G0 ’T0 ’+G0 ’x1 ’)x1 +(G0 +T0 1 )x1 ’ここで「’」は論理否定演算を意味する。しかし、 T0 ’=(a0 +d0 )’ =a0 ’d0 ’+a0 ’d0 ’ =a0 ’a0 ’d0 ’+d0 ’a0 ’d0 ’ =(a0 ’+d0 ’)a0 ’d0 ’ =(a0 0 )’(a0 +d0 )’ =G0 ’T0 ’ である。したがって、次のようになる。 x0 Vx1 =T0 ’x1 +G01 ’ c0 とc1 の表記をc0 Vc1 の表記を置き換えると以
下に示すようになる。 c0 Vc1 =k0 V10 Vf0Vk1 V11 Vf1 すなわち、 c0 Vc1 =k0 Vk1 V10Vf0 Vf1 V11 しかし、k0 Vk1 は、第1命令だけを実行した結果発
生する2対1加算からの桁上げの排他的論理和である。
0 Vx1に対して上記のように展開された表現を使用
すると、k0 Vk1 は以下のように表現できる。 k0 Vk1 =a0 ’d0 ’k1+a0 0 1 ’ =a0 ’d0 ’k1 Va0 01 ’ さらに、10 は次のように表現できる。 10 =a0 0 +a0 0 +b0 0 =a0 0 V((a0 0 +b0 0 )(a0 0 )’) この表現の最後の項は次のように変形可能である。 (a0 0 +b0 0 )(a00 )’ =(a0 0 +b0 0 )(a0 ’+b0 ’) =a0 ’b0 0 +a0 0 0 ’ =b0 (a0 Vd0 ) この表現を10 に関する表記に置換すると、以下のよう
になる。 10 =a0 0 V(b0 (a0Vd0 )) この表現から、次の表現が可能になる。 k0 Vk1 V10 =a0 0 1 ’Va0 ’d0 ’k1 Va0 0 V(b0 (a0 Vd0 )) =a0 0 1 Va0 ’d0 ’k1 V(b0 (a0 Vd0 )) しかし、次の関係式がある。 a0 0 1 Va0 ’d0 ’k1 =(a0 ’+d0 ’+k1 ’)a0 ’d0 ’k1 +a0 0 1 (a0 +d0 +k1 ’) =a0 ’d0 ’k1 +a0 01 =(a0 Vd0 )’k1 したがって、k0 Vk1 V10 は次のように表すことが
できる。 k0 Vk1 V10 =(a0 Vd0 )’k1 V(b0 (a0 Vd0 )) =(a0 Vd0 )’k1 +b0 (a0 Vd0 ) 同様に、f0 Vf1 は次のように表すことができる。 f0 Vf1 =s0 1 1 ’Vs0 ’11 ’f1 したがって、 f0 Vf1 V11 =s0 1 1 ’Vs0 ’11 ’f1
V11 この式は以下のように変形される。 f0 Vf1 V11 =11 0 ’V(f1 (s0 V11 )’) 上記で誘導されたf0 Vf1 V11 とk0Vk1 V10
の表現を組み合わせて、オーバーフロー検出の表現を生
成する。この組合せの結果は以下に示す式(2)であ
る。 c0 Vc1 =(a0 Vd0 )’k1 V(b0 (a0 Vd0 )) V11 0 ’V(f1 (s0 V11 )’) (2) 式(2)では、項(a0 Vd0 )’k1 V(b0 (a0
Vd0 ))Vl1 0’が、4つの段で生成できる。項
1 (s0 Vl1 )’も4つの段で生成できる。オーバ
ーフロー信号は、和が生成される段である第5段で、2
対1排他的論理和ゲートにより生成できる。
【0041】図面に再び戻ると、図5は、図3と4に示
された3−1演算論理回路を組み合わせた本発明のオー
バーフロー検出器を示す。図5に示すように、3−1演
算論理機構(ALU)は、参照番号70により示してあ
る。本発明のオーバーフロー検出器72は、3つのオペ
ランドの必要なビットを受信するように3−1演算論理
回路に接続されている。それらの必要なビットは、演算
論理機構70での演算のために供給されたもので、演算
論理回路70への桁上げ入力(t0 とt1 )、演算論理
回路70のCSA部で生成された和と桁上げビットsi
と1i である。オーバーフロー検出器72は、上記の式
(1)と(2)に応じてこれらのビットを組み合わせ
て、オーバーフロー信号OFを作成する。オーバーフロ
ー信号OFは、状態コード回路74に供給されるように
なっている。この状態コード回路74は、ゼロ結果や関
連する決定を表す他の信号とともに、オーバーフローを
使用して状態コード信号CCを作成する。
【0042】図6は、オーバーフロー検出器72をより
詳細に示すものである。当分野の技術者には理解できる
ことであるが、オーバーフロー検出器は、式(1)と
(2)により限定的に記述された論理回路である。図6
に示すように、オーバーフロー検出器は、5段をもつ多
段装置である。この段数は、図3と4に示す演算機構の
段数と同じである。オーバーフロー信号OFは、オーバ
ーフロー検出器の第5段により出力さる。第5段は、演
算機構の出力が生成される段である。したがって、オー
バーフロー検出器は、データ依存性破壊演算機構により
作成された結果とほぼ同時にオーバーフロー結果を利用
可能にする。
【0043】図6では、オーバーフロー検出器は、3−
1演算論理機構に入力される信号またはこの演算論理機
構内で生成される信号にのみ応答するオーバーフロー信
号を生成する。したがって、オーバーフロー検出器の第
1段への入力は、演算機構の機能を適切に実行するよう
演算機構に供給される桁上げ入力t0と共にオペランド
a、b、dから構成される。オーバーフロー検出器の第
1段で、図3のCSA演算機構34により出力された和
と桁上げが、演算論理機構の機能を適切に実行するのに
必要な桁上げt1 と共にオーバーフロー検出器に入力さ
れる。
【0044】図6では、c0 Vc1 に関して上記に示さ
れた式の要素はすべて、習熟したディジタル回路の技術
者には周知の回路要素によりつくれる。この点では、X
OR(排他的論理和)ゲート80とANDゲート82
は、式(2)の第2項、すなわち、b0 (a0 Vd0
を生成するようにa0 、b0 、d0 に基づいて動作す
る。XORゲート84とインバータ85はs0 ’を生成
し、他方で3AND単一OR回路87は、11 を作成す
るようa1 、b1 、d1 に基づいて動作する。ANDゲ
ート89は、回路要素85と87の出力を組み合わせ、
式(2)の第3項、すなわち、l1 0 ’を生成する。
式(2)の第1項は、要素90により生成される。図6
では、要素90は、式(2)の第1項であるk1 (a0
Vd0 )の計算を表す抽象のレベルで図示されている。
桁上げ項k1 に関しては、以下の式が与えられる。 k1 =G1 31(a,d)+T1 31(a,d)t0 複雑な生成および送信項G1 31とT1 31の計算は当分野
では周知であり、これらの複雑な値の生成に関しては、
本出願人の米国特許第4924424号の図8と9を参
照できる。分配項H0 ’はH0 ’=(a0 Vd0 )’で
ある。
【0045】図7と8に示すように、回路要素90は出
力生成のために3段が必要である。その出力は第4段に
入力可能である。特に、図7乃至図8では、項H0
は、排他的論理和ゲート100の反転出力で作成され
る。他方で、複雑な生成および送信項は図示の回路によ
り生成される。図5、6、7、8は、3−1演算論理回
路とは分かれている回路により複雑な送信および桁上げ
項の生成を示すが、これらの項は演算論理機構のCLA
からも獲得できる。
【0046】図6に戻ると、回路要素82、89、90
により作成された3つの式の項が検出器の第4段の3対
1排他的論理回路91で組み合わされる。最後に、式
(2)の最後の項は回路要素93により生成される。そ
の回路要素93の入力は、演算機構のCSAからの演算
論理機構第1段の出力、排他的論理和ゲート84
(s0 )の出力、AND/OR要素87(11 )の出
力、および桁上げt1 を受ける。要素93は、以下の式
に応じてこれらの項を組み合わせる。 f1 (s0 V11 )’=F0 ’G1 31(s,1)+F0 ’T1 31(s,1)t1 ただし、この式は図7乃至8の回路と同じ3段回路で実
施可能である。例外は複雑な生成および送信項が、CS
A30により生成された和および桁上げ項の関数として
生成され、桁上げt1 が供給され、項F0 ’がF0 ’=
(s0 Vl1 )’により決定されることである。オーバ
ーフロー信号は、排他的論理和ゲート91と回路93の
出力を入力として受信する排他的論理和ゲート95の出
力端で生成される。
【図面の簡単な説明】
【図1】2つの命令間のデータ依存性を示す図。
【図2】2つのスカラー命令の同時実行用のデータ依存
性破壊ハードウェア装置を示す構成図。
【図3】桁上げセーブおよび桁上げルックアヘッド加算
器を含むデータ依存性破壊演算論理機構を示す概略図。
【図4】図3の演算論理機構の多段表示における中間項
の作成を示す概略図。
【図5】本発明によるオーバーフロー検出器と図3と4
に示すように構成された3対1演算論理機構間の演算上
の相互接続を示す構成図。
【図6】図5に示すオーバーフロー検出器を示す論理
図。
【図7】図6の生成ブロックをより詳細に示す概略構成
図。
【図8】図6の生成ブロックをより詳細に示す概略構成
図。
【符号の説明】
19、21 演算論理機構 72 オーバーフロー検出器 70 演算論理機構 74 状態コード
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−245517(JP,A) 特開 昭56−105540(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】コンピュータシステムによる同時実行のた
    めに命令列内の命令をグループ化することによって2つ
    の命令を複合する前記システム内で算術上のオーバーフ
    ローを検出する機構において、 オペランドa,b,dを含み、前記オペランドのそれぞ
    れはn個のビットを含み、各オペランドのビットはi
    (0≦i≦n−1)による重み付けとほぼ同等であり、
    ,b,dが最上位ビットを示し、a31,b
    31,d31が前記オペランドa,b,dの最下位ビッ
    トを示す3つの複数ビット2進オペランドに応答して複
    数ビットの和と桁上げ信号を生成する桁上げセーブ加算
    手段と、 前記桁上げセーブ加算手段に接続され、前記和および桁
    上げ信号に応答して前記オペランドに基づいて実行され
    た2つの2進加算型演算列により作成された結果を表す
    結果信号を生成する桁上げルックアヘッド加算手段、 前記桁上げセーブ加算手段に接続され、前記2つの2進
    演算の第2の2進演算の実行により発生したオーバーフ
    ロー状態を表すオーバーフロー信号OFを生成し、前記
    オペランドおよび和ならび桁上げ信号に応答して前記オ
    ーバーフロー信号を供給する論理手段と、 を備え、 前記論理手段は、 a、b、dに応答し、Vを排他的論理演算子とし
    た場合にb(aVd)によって与えられる第1方
    程式要素に対応する第1出力を生成する第1手段と、 オペランドa、オペランドb、およびオペランドdの第
    1および第2最上位ビットに応答し、sを前記複数ビ
    ット和信号の最上位ビットとし、1を前記複数ビット
    桁上げ信号の第2の最上位ビットとしたときに第2の項
    ’1(「’」は論理否定演算を表す)に対応する
    第2出力を生成する第2手段と 、 kが前記2つの2進演算の第1の2進演算の実行によ
    り生成された結果の最上位ビットへの桁上げを表し、前
    記複数ビットオペランドに応答し、第3の項k(a
    Vd)’に対応する第3出力を生成する第3手段と、 fが前記第2の2進演算の実行により生成された結果
    の最上位ビットへの桁上げを表すときに前記複数ビット
    の和および桁上げ信号に応答し、第4の項f(s
    ),に対応する第4の出力を生成する第4手段と、 前記第1、第2、第3、および第4手段に接続され、前
    記第1、第2、第3、および第4の出力の排他的論理和
    を取ることにより前記オーバーフロー信号を生成する排
    他的論理和手段と、を有していることを特徴とする機
    構。
  2. 【請求項2】cが前記第2の2進演算の実行から生成
    される符号ビットからの桁上げであり、cが前記符号
    ビットへの桁上げであり、ビット位置i+1での桁上げ
    i+1が ci+1=ki+1Vli+1Vfi+1 によって与えられる前記第2の2進演算が続く前記第1
    の2進演算の連続実行によって発生させられるときに、
    前記論理手段は、 OF=cVc によって与えられるオーバーフロー信号OFを生成する
    ことを特徴とする請求項1記載の機構。
  3. 【請求項3】a,b,およびdが最上位オペラン
    ドビットであり、an−1,bn−1およびdn−1
    最下位オペランドビットである3つの複数ビットオペラ
    ンドa,bおよびd (0≦i≦n−1)を受信
    するよう接続された桁上げセーブ加算器部分を有し、前
    記3つの複数ビットオペランドに応答して、第1および
    第2演算命令の連続実行を表す1対の2進演算を同時に
    実行する3オペランド演算論理機構ALU内でオーバー
    フローを決定する方法において、 sおよび1が各々最上位和および桁上げビットであ
    り、an−1およびln−1が各々最下位和および桁上
    げビットを表わす複数ビット和sおよび桁上げ信号l
    (0≦i≦n−1)を、前記桁上げセーブ加算器にお
    いて生成する第1生成過程と、 前記複数ビット和および桁上げ信号と前記複数ビットオ
    ペランドに応答してオーバーフロー状態を示し、前記第
    1命令の実行の後で前記第2命令の実行によるオーバー
    フローを表すオーバーフロー信号を生成する第2生成過
    程と、を備え、前記第2生成過程は、 前記オペランドに応答して第1方程式要因信号b(a
    Vd)を生成する過程と、 前記オペランドに応答して第2方程式要因信号s’l
    を生成する過程と、 第3方程式要因信号k(aVd)’を生成し(k
    は前記第1演算命令のみの実行結果の最上位ビットへ
    の桁上げを表す)過程と、 第4方程式要因信号fすなわちf(sVl)’
    (fは前記第1演算の後で前記第2演算命令の実行結
    果である最上位ビットへの桁上げを表す)を生成する過
    程と、 前記第1、第2、第3および第4の方程式要因信号の排
    他的論理和を取ることにより前記オーバーフロー信号を
    生成する過程とを有していることを特徴とする方法。
JP3230994A 1990-11-28 1991-08-19 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構 Expired - Lifetime JPH0823811B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/619,868 US5301341A (en) 1990-11-28 1990-11-28 Overflow determination for three-operand alus in a scalable compound instruction set machine which compounds two arithmetic instructions
US619868 1990-11-28

Publications (2)

Publication Number Publication Date
JPH04230519A JPH04230519A (ja) 1992-08-19
JPH0823811B2 true JPH0823811B2 (ja) 1996-03-06

Family

ID=24483652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3230994A Expired - Lifetime JPH0823811B2 (ja) 1990-11-28 1991-08-19 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構

Country Status (3)

Country Link
US (1) US5301341A (ja)
EP (1) EP0487814A3 (ja)
JP (1) JPH0823811B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
US5961635A (en) * 1993-11-30 1999-10-05 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator and mask generator
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US5974539A (en) * 1993-11-30 1999-10-26 Texas Instruments Incorporated Three input arithmetic logic unit with shifter and mask generator
US5493524A (en) * 1993-11-30 1996-02-20 Texas Instruments Incorporated Three input arithmetic logic unit employing carry propagate logic
US6263424B1 (en) 1998-08-03 2001-07-17 Rise Technology Company Execution of data dependent arithmetic instructions in multi-pipeline processors
US6363523B1 (en) * 1999-11-12 2002-03-26 Sun Microsystems, Inc. Optimization of N-base typed arithmetic expressions
US8453133B2 (en) * 1999-11-12 2013-05-28 Oracle America, Inc. Optimization of N-base typed arithmetic instructions via rework
US7207037B2 (en) * 1999-11-12 2007-04-17 Sun Microsystems, Inc. Overflow sensitive arithmetic instruction optimization using chaining
US6754892B1 (en) * 1999-12-15 2004-06-22 Transmeta Corporation Instruction packing for an advanced microprocessor
US7051062B2 (en) * 2002-09-10 2006-05-23 Analog Devices, Inc. Apparatus and method for adding multiple-bit binary-strings
US20040128480A1 (en) * 2002-12-31 2004-07-01 Intel Corporation Register file read port to support uop fusion
US7698539B1 (en) 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7606997B1 (en) 2003-07-18 2009-10-20 Guillermo Rozas Method and system for using one or more address bits and an instruction to increase an instruction set
WO2007009002A2 (en) * 2005-07-12 2007-01-18 Cipherflux Llc Method for accelerating the computational speed of a computer algorithm
JP2015072623A (ja) * 2013-10-03 2015-04-16 株式会社エルイーテック 加減算回路
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2371014A1 (fr) * 1976-11-12 1978-06-09 Ibm France Dispositif multiplicateur-accumulateur
US4319335A (en) * 1979-10-16 1982-03-09 Burroughs Corporation Arithmetic logic unit controller
JPS56105540A (en) * 1980-01-25 1981-08-22 Hitachi Ltd Adder
US4467444A (en) * 1980-08-01 1984-08-21 Advanced Micro Devices, Inc. Processor unit for microcomputer systems
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
FR2528596A1 (fr) * 1982-06-09 1983-12-16 Labo Cent Telecommunicat Cellule d'addition binaire a trois entrees a propagation rapide de la somme, realisee en circuit integre
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator
DE3481559D1 (de) * 1983-12-27 1990-04-12 Nec Corp Eine, fuer eine arithmetische operation hoher geschwindigkeit geeignete, uebertragsschaltung.
FR2559285B1 (fr) * 1984-02-03 1986-04-25 Efcis Unite arithmetique et logique avec indicateur de debordement
US4783757A (en) * 1985-12-24 1988-11-08 Intel Corporation Three input binary adder
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
FR2612660B1 (fr) * 1987-03-18 1990-10-19 Hmida Hedi Dispositif de calcul binaire
JPS63245517A (ja) * 1987-03-31 1988-10-12 Toshiba Corp デジタル加算回路
US4839851A (en) * 1987-07-13 1989-06-13 Idaho Research Foundation, Inc. Programmable data path device

Also Published As

Publication number Publication date
EP0487814A2 (en) 1992-06-03
JPH04230519A (ja) 1992-08-19
US5301341A (en) 1994-04-05
EP0487814A3 (en) 1993-08-25

Similar Documents

Publication Publication Date Title
JPH0823811B2 (ja) 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構
US6099158A (en) Apparatus and methods for execution of computer instructions
JP3729881B2 (ja) 並列加算および平均演算を行うための回路およびその方法
US3993891A (en) High speed parallel digital adder employing conditional and look-ahead approaches
JP3573808B2 (ja) 論理演算装置
US5862065A (en) Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
US5299319A (en) High performance interlock collapsing SCISM ALU apparatus
JP2683488B2 (ja) 3−1論理演算装置
US5892698A (en) 2's complement floating-point multiply accumulate unit
JPH0542011B2 (ja)
US9146707B2 (en) Generating a fast 3x multiplicand term for radix-8 booth multiplication
US5957996A (en) Digital data comparator and microprocessor
US6519621B1 (en) Arithmetic circuit for accumulative operation
EP0643352A1 (en) Self-checking complementary adder unit
US5235539A (en) Method and apparatus for generating carry out signals
US6151616A (en) Method and circuit for detecting overflow in operand multiplication
Lutz et al. The half-adder form and early branch condition resolution
JPH0346024A (ja) 浮動小数点演算器
US8219604B2 (en) System and method for providing a double adder for decimal floating point operations
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
Lutz et al. Early zero detection [integrated adder/subtracter/zero-detector]
US4914579A (en) Apparatus for branch prediction for computer instructions
JP3286793B2 (ja) キャリアウトを確定する回路及び方法
US6519620B1 (en) Saturation select apparatus and method therefor
US20080177816A1 (en) Method And Decimal Arithmetic Logic Unit Structure To Generate A Magnitude Result of a Mathematic