JP2683488B2 - 3−1論理演算装置 - Google Patents

3−1論理演算装置

Info

Publication number
JP2683488B2
JP2683488B2 JP5122983A JP12298393A JP2683488B2 JP 2683488 B2 JP2683488 B2 JP 2683488B2 JP 5122983 A JP5122983 A JP 5122983A JP 12298393 A JP12298393 A JP 12298393A JP 2683488 B2 JP2683488 B2 JP 2683488B2
Authority
JP
Japan
Prior art keywords
input
logic
logical
alu
control
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
JP5122983A
Other languages
English (en)
Other versions
JPH0659861A (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 JPH0659861A publication Critical patent/JPH0659861A/ja
Application granted granted Critical
Publication of JP2683488B2 publication Critical patent/JP2683488B2/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT

Landscapes

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

Description

【発明の詳細な説明】
【0001】関連特許出願 本出願は、米国特許出願第07/677,079号(一部継続出
願、出願日 1991年3月29日、発明者 S.Vassiliadis
他、発明の名称 High Perfomance Interlock Collapsi
ng SCISM ALU Apparatus)に基づくものである。
【0002】この米国出願は次に列挙する同時係属中の
米国出願に関連して出願されたものである。
【0003】(1)米国特許出願第07/519,384号(出願
日 1990年5月4日、発明の名称 Scalable Compound
Instruction Set Machine Architecture、発明者 Stam
ais Vassiliadis 他)、(2)米国特許出願第07/519,3
82号(出願日 1990年5月4日、発明の名称 General
Purpose Compound Apparatus For Instruction-Level P
arallel Processors 、発明者 Richard J. Eickemeyer
他)、(3)米国特許出願第07/504,910号(出願日 1
990年4月4日、発明の名称 Data Dependency Collaps
ing Hardware Apparatus 、発明者 Stamatis Vassilia
dis他)、(4)米国特許出願第07/522,219号(出願日
1990年5月10日、発明の名称 Compounding Preproces
sor For Cache、発明者 Bartholomew Blaner他)、
(5)米国特許出願第07/543,464号(出願日 1990年6
月26日、発明の名称 AnIn-Memory Preprocessor for a
Scalable Compound Instructuion Set MachineProcess
or、発明者 Richard Eickemeyer他)、(6)米国特許
出願第07/543,458号(出願日 1990年6月26、発明の名
称 Memory Management for Scalable Compound Instru
ction Set Machines) 、(7)米国特許出願第07/619,8
68号(出願日 1990年11月28日、発明の名称 Overflow
Determination for Three-Operand ALUS in a Scalabl
e Compuond Instruction Set Machine、発明者 Stamat
is Vassiliadis他)、(8)米国特許出願第07/642,011
号(出願日 1991年1月15日、発明の名称 Compoundin
g Preprocessor for Cache、発明者 Bartholomew Blan
er他)、(9)米国特許出願第07/677,066号(出願日
1991年3月29日、発明の名称 System for Compounding
Instructions for an Instruction Processor with Di
fferent Attributes with Apparatus for Handling Tes
t and Data with Differing Reference Point Informat
ion and Backward Compounding Apparatus for Cimpoun
d Instructions、発明者 Eickemeyer他)、(10)米
国特許出願第07/677,685号(出願日 1991年3月29、発
明の名称 System for Preparing Instructions for In
struction Processor and System with Mechanism for
Branching in the Middle of a Compound Instruction
、発明者 S. Vassiliadis他)。
【0004】他にも同時係属中の特許出願があるが、本
発明に特に関係しない。
【0005】
【0006】
【産業上の利用分野】本発明は、3−1論理演算装置お
よび論理演算装置(ALU)の分野に関し、特に、イン
タロック縮小装置ALUに関する。
【0007】
【0008】
【従来の技術】インタロックを処理する必要性は、3−
1論理演算装置では普通になっている。他にも解決手法
が知られている。
【0009】
【発明が解決しようとする課題】しかし、アーキテクチ
ャが進歩するに伴い、絶えず異なる問題が起こってい
る。元々IBM RISC/システム6000(商標)
用に開発されたRISCプロセッサのようなRISCプ
ロセッサで、スーパースカラ性能を達成する上で障害に
なっていることは、インタロックが逐次化されているた
め、慣用のスーパースカラ・ハードウェアは利用効率が
悪いことである。システムのために、このハードウェア
の利用効率を向上させる必要がある。特に、マシンが所
定のマシン・サイクルで2つ以上の命令を発行したり、
インタロックされた命令をマシンが1サイクルで実行す
るようなスーパースカラ・ハードウェアにおいて、その
必要性がある。本発明による3−1論理演算装置は利用
効率を向上させるための解答を提供する。
【0010】
【課題を解決するための手段】本発明は、加算−加算、
加算−論理、論理−加算、論理−論理の機能の全4つの
組合せを結合することを意味する「加算/論理組合せ演
算」を行う命令を定義するアーキテクチャを提供する。
また、本発明のアーキテクチャに従って、2つ以上の別
々のALU演算は、複数の別々の命令(RISC型命令
を含む)が並列に発行されるとき、それに応答する単一
のインタロック縮小ALUによって指定される。本発明
のアーキテクチャは、命令を1マシン・サイクルで並列
に実行し、CISC型、スーパースカラ型、スーパース
カラRISC型等のコンピュータ設計でALUを有用に
することができる。
【0011】本発明によって設計された3−1ALU
は、所定のマシンサイクルで複数の命令を実行する方法
を提供し、しかも、インタロックされた命令を単一のサ
イクルで実行することができる。3−1論理演算装置、
すなわち3−1ALUは、インタロックされた命令対
を、3−1の2の補数と、符号なし数字表記とを使用し
て実行することができる。3−1ALUは、3−2キャ
リー・セーブ加算器(CSA)と、キャリー・セーブ加
算器からの入力を受けるように接続された2−1制御論
理演算装置(CALU)と、制御論理演算装置への出力
に接続された第1事前加算ロジック・ブロックと、制御
ジェネレータと、制御ジェネレータから入力を受けるよ
うに接続され、制御論理演算装置に接続された出力端子
を有する第2被制御ロジック・ブロックとを有する。
【0012】3−1ALUでは、事前加算ロジック・ブ
ロックの出力は、CSAとCSA和制御からの和と結合
される。制御ジェネレータは制御入力が入力され、この
制御入力は第3のオペランドと結合される。第2被制御
ロジック・ブロックはCALUからの半和と修正半和を
制御レジスタの出力と結合し、CALUに対する制御を
生成し、事後加算論理機能をCALUに組み入れてい
る。
【0013】ビット単位AND、OR、XOR、NO
R、NANDまたはXNOR機能をCALUに組み込
み、次のカテゴリ、すなわち、 カテゴリ2:B+(A LOP Γ) 論理演算後に算術演算 カテゴリ3:B LOP(A+Γ) 算術演算後に論理演算 カテゴリ4:B LOP(A LOP Γ) 論理演算後に論理演算 を実行する。
【0014】本発明に係るALUは、本発明の好ましい
実施例で期待され、行われるように、通常の2−1AL
Uと協力して用いると、2つの独立または従属算術演算
型または論理演算型を任意に組合せたものを同時に実行
することができる。3−1ALUは高速(直列に接続さ
れた2個のALUよりもはるかに高速)になるように設
計されているので、上に示した2つの算術演算型または
論理演算型命令を、サイクル・タイムを増加させること
なく、1マシン・サイクルで実行することができる。こ
の考え方は、所定のマシン・サイクルで2つ以上の命令
を発行しようとするスーパースカラ型、スーパースカラ
RISC型、その他のマシンや、インタロックされた命
令を単一のサイクルで実行しよとするマシンで特に有用
である。
【0015】次のようにすることができる。
【0016】1) 本発明に係る3−1論理演算装置
は、インタロックされた命令対を2の補数および符号な
し数字表記を用いて実行する3−1ALU用であって、
3−2キャリー・セーブ加算器(CSA)と、該キャリ
ー・セーブ加算器から入力を受け取るように接続された
2−1制御算術論理演算装置(CALU)と、該制御論
理演算装置に出力するように接続された第1事前加算ロ
ジック・ブロックと、制御ジェネレータと、該制御ジェ
ネレータから入力を受け取るように接続され、その出力
が前記制御論理演算装置に接続された第2被制御ロジッ
ク・ブロックとを備えたことを特徴とする。
【0017】2) 上記1)に記載の3−1論理演算装
置において、第1事前加算ロジック・ブロックの出力は
CSAからの和とCSA和制御と結合され、制御ジェネ
レータは第3オペランドと結合される制御入力を有し、
第2被制御ロジック・ブロックはCALUからの半和お
よび修正半和と、制御ジェネレータの出力と結合し、事
後加算論理機能をCLAUに組み入れるために、CAL
Uに対する制御を生成することを特徴とする。
【0018】3) 上記2)に記載の3−1論理演算装
置において、論理演算装置(ALU)オペレーション
は、インタロックされた命令対の実行に対応して、算術
演算後に論理演算を行い、論理演算後に算術演算を行
い、算術演算後に論理演算を行い、論理演算後に論理演
算を行うことを特徴とする。
【0019】4) 上記3)に記載の3−1論理演算装
置において、 ALUオペレーション形式は、 カテゴリ1:A+B+Γ 算術演算後に算術演算 カテゴリ2:B+(A LOP Γ) 論理演算後に算術演算 カテゴリ3:B LOP(A+Γ) 算術演算後に論理演算 カテゴリ4:B LOP(A LOP Γ) 論理演算後に論理演算 の特徴を有し、ただし、A、B、およびΓは3−1論理
演算装置に入力されるオペランドに対応していることを
特徴とする。
【0020】5) 上記2)に記載の3−1論理演算装
置において、前記事前加算ロジック・ブロックは、論理
演算後に算術演算を行い、論理演算後に論理演算を行う
命令に対する出力を
【0021】
【数6】
【0022】により生成し、ただし、ΩOALASL
ΩXOSL、およびΩXAALは入力オペランドの適正な極性で
アサートされ、命令セットをインプリメントするために
必要であり、同様に、論理演算とその後に行う加算/減
算演算のために必要とされるビット単位論理機能AN
D、OR、XOR、NAND、NOR、およびXNOR
を生成することを特徴とする。
【0023】6) 上記5)に記載の3−1論理演算装
置において、事前加算ロジック・ブロックの出力は、3
−1CSAと同数のロジック・ステージを必要とするこ
とを特徴とする。
【0024】7) 上記2)に記載の3−1論理演算装
置において、コンピューティグ装置のロジック・ステー
ジは高々3−1 2進加算器より多くないことを特徴と
する。
【0025】8) 上記2)に記載の3−1論理演算装
置において、桁上げは、
【0026】
【数7】 λi =Ω1 αi βi +Ω2 αi γi +Ω1 βi γi +Ω3 βi-1 に従って生成され、ただし、Ω1 、Ω2 、およびΩ3
CSAからの桁上げ出力が第1カテゴリの演算のために
3−2CSA桁上げを与えることを可能にする制御信号
であり、 カテゴリ1:A+BΓ 算術演算後に算術演算を行
い、第3オペランドは第2カテゴリを実行することがで
き、 カテゴリ2:B+(A LOP Γ) 論理演算後に算
術演算を行い、2−2CSAに対応する桁上げは第3カ
テゴリを実行することができ、 カテゴリ3:B LOP(A+Γ) 算術演算後に論理
演算を行い、論理0により第4カテゴリが実行され、 カテゴリ4:B LOP(A LOP Γ) 論理演算
後に論理演算を行うことを特徴とする。
【0027】9) 上記8)に記載の3−1論理演算装
置において、CSA桁上げを生成するには、3−2CS
Aと同数のロジック・ステージを必要とすることを特徴
とする。
【0028】10) 上記2)に記載の3−1論理演算
装置において、第1事前加算ロジック・ブロックの出力
は、CALU入力に入力され、ビット単位AND、O
R、XOR、NOR、NANDまたはXNOR機能をC
ALUに入力し、次のカテゴリ、すなわち、 カテゴリ2:B+(A LOP Γ) 論理演算
後に算術演算 テテゴリ3:B LOP(A+Γ) 算術演算
後に論理演算 カテゴリ4:B LOP(A LOP Γ) 論理演算
後に論理演算 を実行することを特徴とする。
【0029】11) 上記2)に記載の3−1論理演算
装置において、3−2 CSAからの和と事前加算ロジ
ック・ブロックの出力とは、CALU機能をインプリメ
ントするために必要な伝送、生成、および半和の生成と
並列に、CALUの1つの入力として使用するために、
制御信号Ω4 の制御により選択されることを特徴とす
る。
【0030】12) 上記2)に記載の3−1論理演算
装置において、CALUは、ΞGENi、ΞSXMi、ΞSOMi
入力と、事前加算ロジック・ブロック出力Ω4 と、3−
2CSAからの入力σとλを有し、λは1ビット位置だ
け左にシフトするように配線され、
【0031】
【数8】
【0032】を実行し、ただし、Hi は標準加算方程式
に従って得られる信号Mi とともに、被制御ロジック・
ブロックに入力され、
【0033】
【外2】
【0034】CALU内で使用されることを特徴とす
る。
【0035】13) 上記2)に記載の3−1論理演算
装置において、3−1 ALUへの制御入力ΞXOR 、Ξ
AND 、ΞOR、ΞADD 、およびΞNOR は、第3の3−1
ALUオペランド入力Bとともに、制御ジェネレータに
供給され、
【0036】
【数9】
【0037】の形式の制御出力を生成することを特徴と
する。
【0038】14) 上記13)に記載の3−1論理演
算装置において、制御ジェネレータの出力と、CALU
からの半和Hi および信号Mi とを第2被制御ロジック
・ブロックに接続して、CALUの制御を生成するため
の信号を供給することを特徴とする。
【0039】15) 上記2)に記載の3−1論理演算
装置において、第2被制御ロジック・ブロックは、制御
ジェネレータからの入力を受け取り、CALUからの半
和と信号Mi から
【0040】
【数10】
【0041】が生成されることを特徴とする。
【0042】16) 上記1)に記載の3−1論理演算
装置において、事前加算・ロジック・ブロックは論理機
能後に加算を処理し、論理機能後に論理機能を処理する
ことができることを特徴とする。
【0043】17) 上記1)に記載の3−1論理演算
装置において、第2被制御ロジック・ブロックは、加算
に論理機能を処理し、論理機能後に論理機能を処理する
ことができることを特徴とする。
【0044】18) 上記1)に記載の3−1論理演算
装置は、3−1ALUの2の補数と符号なし数字表記を
提供し、スーパースカラ・マシン編成を含むRISC型
とCISC型の並列命令発行マシンに適用可能なインタ
ロックされた命令対を実行できることを特徴とする。
【0045】19) 上記1)に記載の3−1論理演算
装置は、組み合せるため2−1ALUをさらに備え、3
−1ALUと2−1ALUは、共に、共通レジスタGP
Rを共用し、共通レジスタGPRは5つの読取りポート
(ALUの各入力に対して1つの独立ポート)と、2つ
の書込みポート(ALUの各結果に対して1つの独立ポ
ート)と有し、ALU演算を指定する命令対のうちの第
1の命令は、2−1ALUによって実行され、第2の命
令は、命令がデータ依存インタロックを保有するときで
も、3−1ALUにより、同一マシン・サイクルで実行
され、しかも第1の命令と並列に実行されることを特徴
とする。
【0046】20) 上記19)に記載の3−1論理演
算装置は、加算−加算、加算−論理、論理−加算、およ
び論理−加算の機能の全4つの組合せを結合した加算/
論理組合せ演算を行う命令を実行することができ、2つ
以上の関連のないALU演算は、RISC型命令を含
む、複数の個々の命令が並列に発行されると、それに応
答する単一インタロック縮小ALUによって指定され、
これらの命令は、それぞれ、ALU演算を指定してお
り、当該3−1論理演算装置はこれらの命令を単一マシ
ン・サイクルで並列に実行することを特徴とする。
【0047】21) 上記19)に記載の3−1論理演
算装置は、2つの独立または従属算術演算または論理演
算型命令の組合せを実行し、2つの算術演算型または論
理演算型命令を1マシン・サイクルで実行することを特
徴とする。
【0048】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0049】図1は、3−1論理演算装置(ALU)の
ハイレベル説明図である。ALUへの全てのオペランド
はキャリー・セーブ加算器(CSA)に入力される。C
SAでは、加算型演算の場合、3つのオペランドの和を
とり、桁上げを行い、和および桁上げは後続の制御算術
論理演算装置(CALU)に入力され、CALUで特殊
な加算が行われる。さらに、左側と右側のオペランドは
第1ロジック・ブロック、すなわち論理装置L1に入力
される。論理装置L1で、論理命令とそのあとに続く算
術命令間の依存関係を縮小するとき論理演算が実行され
る。このロジック・ブロックは加算機能を処理した後に
論理機能を処理し、同様に、論理機能を処理した後に論
理機能を処理する。中間のオペランドは、CALUの演
算を指定するALU制御入力とともに、制御ジェネレー
タに入力され、そこでCALUに対する制御が生成され
る。CALUは、中間入力と、通常の2対1対応加算か
ら得られる和との間に、ビット単位の論理演算を高速生
成することができるように、これらの制御に応答する。
CALUがビット単位の論理演算を行うことができるよ
うにするため、第2被制御ロジック・ブロックL2は、
CALUから信号HとMを受け取り、信号θとmを出力
し、中間の入力と、2対1対応加算から得た和との間で
ビット単位の論理演算を生成することができる。被制御
ロジック・ブロックL2は論理機能を処理し、その後、
加算機能を処理し、同様に、論理機能を処理し、その
後、論理機能を処理する。
【0050】図2は、2つの従属または独立算術演算型
または論理演算型命令の任意の組合せを同時に実行する
ことをサポートするために、3−1ALUを標準2−1
ALUと併用した例を示す。標準2−1ALUは、発行
された2つの命令のうちの最初の命令を実行し、一方、
3−1ALUは2番目の従属または独立命令を実行す
る。
【0051】図1は、開示されている3−1ALUを示
す概要図である。ESA/370命令セットに準拠する
ように設計されたこの種のALUを式で表すと、次のと
おりである。
【0052】
【数11】
【0053】ただし、Ω1 , Ω2 ,Ω3 ,Ω4 ,Ω
OALASL,ΩXAAL,ΩXOSL,ΞADD ,ΞOR,ΞNOR ,およ
びΞXOR は制御信号であり、
【0054】
【外3】
【0055】“Recursive Equations for Hardwired Bi
nary Adders" , Int. J. Electronics、 Vol.67 No.2、 p
p201-213に定義されているような再帰CLA方程式のパ
ラメータであり、αi ,βi ,およびγi はICALU
への入力である。
【0056】以下において明らかにするように、ALU
を記述した上記方程式はRISC命令セットに含まれる
ALU命令のインタロックを縮小するために必要な機能
を果す。説明を簡単にするために、このようなの命令セ
ットの例としてMIPS命令セットを選択し、次の説明
で使用する。MIPS ALU命令は次の6つのカテゴ
リに分類することができる。
【0057】 符号付き算術演算 ADDI、ADD、SUB 符号なし算術演算 ADDIU、ADDU、SUBU 符号付き算術比較 SLTI、SLT 符号なし算術比較 SLTIU、SLTU 論理演算 NR、OR、XR、NOR ロード・レジスタ LR これらの6つの命令カテゴリは、2つのカテゴリ、すな
わち、算術演算(arithmetics)と論理演算
(logicals)に抽象化することができる。算術
演算には、符号付き算術演算、符号なし算術演算、符号
付き算術比較、符号なし算術比較、およびロード・レジ
スタが含まれ、一方、論理演算には論理演算が含まれ
る。このように抽象化すると、命令カテゴリの組合せを
考慮するだけで、ALU演算の次のカテゴリの実行を3
−1ALUでサポートすることによりインターロックの
大部分を縮小することができる。
【0058】カテゴリ1:α+β+γ 算術
演算を行いその後算術演算を行う カテゴリ2:β+(α LOP γ)論理演算を行いそ
の後算術演算を行う カテゴリ3:β LOP(α+γ) 算術演算を行いそ
の後論理演算を行う カテゴリ4:β LOP(α LOP γ)論理演算を
行いその後論理演算を行う ただし、α、β、およびγはALUが演算を行う3つの
オペランドを表しており、+は2進加算(減算は減数の
1の補数を被減数に加え、「ホット1」(hot on
e)を加算器に入力することにより行うことができるの
で、この加算は、符号付きまたは符号なし加算、減算ま
たは比較を包括している)を表している。LOPは、O
R、AND、EXCLUSIVE−OR、またはNOR
のビット単位論理演算の1つを表す。
【0059】第1に、ALUの第1カテゴリ実行の観点
から、ALUを検討することする。このカテゴリでは、
次の制御がALUに入力される。
【0060】
【数12】 Ω1 =Ω2 =Ω4 =1 Ω3 =0 ΞADD =1 ΞOR=ΞAND =ΞXOR =ΞNOR =0 ΩOALASL=ΩXOSL=ΩXAAL=0 このことから、上記式は次のようになる。すなわち、
【0061】
【数13】
【0062】しかし、σi とλi は3−2CSAからの
和と桁上げを表しており、しかも、φi は2−1CLA
の新しい桁上げを表し、2−1CLA入力は、3−2C
SAからの和と、1ビット位置だけ左にシフトされたC
SAからの桁上げであるので、Vassailiadi
sが教示する2進加算器の再帰方程式を利用すると、Λ
i は所要の和αi +βi +γi になる。
【0063】第2に、ALU演算の第2カテゴリの実行
を検討する。このカテゴリでは、ΩOALASL、ΩXOSL、お
よびΩXAALは、オペランドの適正な極性とともにアサー
トされ左側と右側の入力α1 とγi に対して、論理機能
AND、OR、XOR、NAND、NOR、XNORの
うちの1つが行われる。さらに、残りの制御は次のよう
にアサートされる。
【0064】
【数14】 Ω1 =Ω2 =Ω4 =0 Ω3 =1 ΞADD =1 ΞOR=ΞAND =ΞXOR =ΞNOR =0 このことから、上記式は次のようになる。すなわち、
【0065】
【数15】
【0066】しかし、(αi LOPγi )であるLi
と、βi-1 であるγi は、γi が1ビット位置だけ左に
シフトして2対1対応加算器に入力されるので、βi
(αiLOPγi )を加算するための新しいキャリーに
応じた新しい桁上げが生成される。Vassiliad
isの2進加算器に対する再帰方程式が教示しているよ
うに、、Λi は必須の和βi +(αi LOPγi )を出
力する。
【0067】第3に、ALU演算の第3カテゴリの実行
について検討する。このカテゴリでは、ΩOALASLは論理
0としてアサートされ、ΩXOSLとΩXAALは共に論理1と
してアサートされる。第3の入力Γの極性は、ΑとΓを
加算または減算するため、正または負のいずれかであ
る。CLAUの制御は、CLAUによって実行されるビ
ット単位論理機能のうちの1つを示す。次の例では、E
XCLUSIVE−OR機能が仮定されている。従っ
て、この例はB∀(A+Γ)の演算を示する。この機能
を実行するには、残りの制御は次のようにアサートされ
る。
【0068】
【数16】 Ω1 =Ω3 =Ω4 =0 Ω2 =1 ΞXOR =1 ΞADD =ΞOR=ΞAND =ΞNOR =0 制御のこのような設定と、3−1ALUの演算を指定し
ている式とから、結果は次式から得られる。
【0069】
【数17】
【0070】しかし、Li とγi はΑとΓの2対2対応
加算による和と桁上げを表しており、しかも、またLi
とγi はγi が1ビット位置だけ左にシフトされて2対
1対応加算器に入力され、しかも、αi は2対2対応加
算器に入力されるが、Ω4 =0によって選択が解除され
るので、Vassiliadisの再帰方程式が教示す
るように、
【0071】
【外4】
【0072】Si がビット位置iにおける和A+Γを表
すとすると、
【0073】
【数18】
【0074】のようになる。
【0075】Si を3−1ALUからの結果に代入する
と、。
【0076】
【数19】
【0077】のようになる。
【0078】従って、その結果は、BとSをビット単位
でEXCLUSIVE−OR演算した結果である。しか
し、Sは和A+Γであるので、その結果は、
【0079】
【数20】Λ= B∀(A+Γ) のようになる。ただし、∀はビット単位EXCLUSI
VE−OR演算を表し、+は加算を表している。
【0080】第4に、演算の最後のカテゴリ、つまり、
第4カテゴリについて検討する。このカテゴリでは、3
−1ALUはビット単位でAND演算を行い、その後、
NOR演算を行った所要の結果を出力する。
【0081】
【外5】
【0082】ALUの制御は、
【0083】
【数21】 Ω1 =Ω2 =Ω3 =Ω4 =0 ΩXAAL=1 ΩOALASL=ΩXOSL=0 ΞNOR =1 ΞADD =ΞOR=ΞAND =ΞXOR =0 このことから、その結果は、
【0084】
【数22】
【0085】となる。
【0086】「ホット1」は第4カテゴリを実行するた
めに3−1ALUに入力されず、しかも、疑似生成Gi
は各ビット位置において論理ゼロであるので、新しい桁
上げはΦi+1 =0である。従って、
【0087】
【数23】
【0088】
【外6】
【0089】
【数24】
【0090】また、このカテゴリでは、オペランドBと
AはALUに入力され、オペランドΓの1の補数はAL
Uに入力される。
【0091】
【外7】
【0092】これらを結果の最後の式に代入すると、
【0093】
【数25】
【0094】が得られる。
【0095】ただし、+はビット単位論理ORを表して
いる。従って、AND−NOR機能が所望した通りに得
られる。
【0096】以上、好ましい実施例で記述した3−1A
LUを有するコンピューティング装置は、図2に示すよ
うに、慣用の2−1ALU(ALU1)と結合されてい
る。ALU1では、コンピューティング装置の3−1A
LU(ALU2)と2−1ALU(ALU1)は、共
に、共通の汎用レジスタ・アレイ(GPRアレイ)を共
用している。GPRアレイは5つの読取りポートを有す
る。すなわち、ALUの各入力に対して1つの独立ポー
トを有する。また、GPRアレイは2つの書込みポート
を有する。すなわち、ALUの各結果に対して1つの独
立ポートを有する。従って、ALU演算を指定する命令
対のうちの第1の命令は、2−1ALUによって実行さ
れる。第2の命令は、図2に示すようなデータ依存イン
タロックを所有しているときでも、同一マシン・サイク
ルで、第1の命令と並列に3−1ALUによって実行さ
れる。
【0097】このような結合コンピューティング装置に
よれば、「加算/論理組合せ演算」を有する命令を実行
するアーキテクチャを提供することができる。「加算/
論理組合せ演算」は加算−加算、加算−論理、論理−加
算、論理−加算の機能の全4つの組合せを結合すること
を意味する。このアーキテクチャでは、2つ以上の関連
のないALU演算は単一のインタロック縮小ALUによ
って指定され、このALUはRISC型命令を含む複数
の個々の命令(各命令はALU演算を指定している)が
並列に発行されると、それに応答する。しかも、コンピ
ューティング装置はこれらの命令を単一のマシンサイク
ルで並列に実行する。このように装置が結合されると、
コンピュータ・システム装置は2つの独立または従属算
術演算型または論理演算型命令の組合せを実行すること
ができ、2つの算術演算型または論理演算型命令を、サ
イクル・タイムを増加することなく、1マシン・サイク
ルで実行することができる。
【0098】以上、本発明の好ましい実施例について説
明したが、特許請求の範囲を逸脱することなく、種々に
改良することができることは当業者にとって当然であ
る。これらの特許請求の範囲は当初開示された発明を適
正に保護するものである。
【0099】
【発明の効果】以上説明したように、本発明によれば、
上記のように構成したので、ハードウェアの利用効率を
向上させることができる。
【図面の簡単な説明】
【図1】本発明の好ましい実施例に係るインタロック縮
小3−1実行ALUの論理データフローを示すブロック
図である。
【図2】本発明の好ましい実施例に係るALUを通常の
2−1ALUと組み合せた例を示すブロック図である。
【符号の説明】
ALU 論理演算装置 CALU 制御論理演算装置 CSA キャリー・セーブ加算器 L1 第1ロジック・ブロック L2 第2被制御ロジック・ブロック
フロントページの続き (72)発明者 スタマティス ヴァシリアディス アメリカ合衆国 13850 ニューヨーク 州 ベスタル ベスタル ロード 717 (56)参考文献 国際公開91/15819(WO,A1) 国際公開91/15820(WO,A1)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 加算/論理組合せ演算を実行するための
    命令対を単一マシン・サイクルで実行する3−1論理演
    算装置であって、 前記命令対の3つのオペランドをそれぞれ第1入力、第
    2入力及び第3入力に受け取り、和及び桁上げを出力す
    るキャリー・セーブ加算器と、 前記キャリー・セーブ加算器から入力を受け取るように
    接続され、前記第2入力に受け取られた第2オペランド
    と、前記第1入力及び前記第3入力にそれぞれ受け取ら
    れた第1オペランド及び第3オペランドの加算結果とを
    ビット単位で論理演算する制御論理演算装置と、 前記第1入力及び前記第3出力にそれぞれ接続された2
    つの入力、並びに前記制御論理演算装置に接続された1
    つの出力を有し、論理命令及びそれに続く算術命令の間
    の依存関係を縮小するための演算を実行する第1論理手
    段と、 前記第2入力及び前記制御論理演算装置の演算を指定す
    る制御入力にそれぞれ接続された2つの入力を有し、前
    記制御論理演算装置の演算を制御するための制御信号を
    発生する制御ジェネレータと、 前記制御ジェネレータ及び前記制御論理演算装置から入
    力を受け取るように接続され、前記ビット単位の論理演
    算を含む、前記制御論理演算装置における事後加算論理
    演算を制御するための出力を発生して前記制御論理演算
    装置に供給する第2論理手段と、 を備えたことを特徴とする3−1論理演算装置。
  2. 【請求項2】 前記第2論理手段は、前記制御ジェネレ
    ータの出力を前記制御論理演算装置からの半和及び修正
    半和と組み合わせることによって前記出力を発生する、
    請求項1記載の装置。
JP5122983A 1992-06-30 1993-05-25 3−1論理演算装置 Expired - Lifetime JP2683488B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90663192A 1992-06-30 1992-06-30
US906631 2001-07-16

Publications (2)

Publication Number Publication Date
JPH0659861A JPH0659861A (ja) 1994-03-04
JP2683488B2 true JP2683488B2 (ja) 1997-11-26

Family

ID=25422739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5122983A Expired - Lifetime JP2683488B2 (ja) 1992-06-30 1993-05-25 3−1論理演算装置

Country Status (2)

Country Link
US (1) US5426743A (ja)
JP (1) JP2683488B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US6219688B1 (en) * 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US5623434A (en) * 1994-07-27 1997-04-22 Chromatic Research, Inc. Structure and method of using an arithmetic and logic unit for carry propagation stage of a multiplier
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
JPH09222992A (ja) * 1996-02-07 1997-08-26 Internatl Business Mach Corp <Ibm> 演算処理方法
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US6370636B1 (en) 1996-07-31 2002-04-09 Hyundai Electronics Industries Co., Ltd. Accessing byte lines from dual memory blocks and aligning for variable length instruction execution
US5838960A (en) * 1996-09-26 1998-11-17 Bay Networks, Inc. Apparatus for performing an atomic add instructions
US5870581A (en) * 1996-12-20 1999-02-09 Oak Technology, Inc. Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register
US5963723A (en) * 1997-03-26 1999-10-05 International Business Machines Corporation System for pairing dependent instructions having non-contiguous addresses during dispatch
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6282633B1 (en) 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
US6292818B1 (en) * 1999-01-12 2001-09-18 Hewlett-Packard Company Method and apparatus for performing a sum-and-compare operation
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
US7822948B2 (en) * 2008-01-03 2010-10-26 International Business Machines Corporation Apparatus, system, and method for discontiguous multiple issue of instructions
US8468326B1 (en) * 2008-08-01 2013-06-18 Marvell International Ltd. Method and apparatus for accelerating execution of logical “and” instructions in data processing applications
US8465475B2 (en) * 2008-08-18 2013-06-18 Intuitive Surgical Operations, Inc. Instrument with multiple articulation locks
JP5491071B2 (ja) 2009-05-20 2014-05-14 エヌイーシーコンピュータテクノ株式会社 命令融合演算装置および命令融合演算方法
CN103699357B (zh) * 2013-12-05 2016-11-23 西安交通大学 一种用于模乘和模平方的快速模约简算法电路
CN110837354B (zh) * 2019-11-04 2023-07-14 上海大学 基于三值逻辑运算器的msd并行加法器及其构造方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4110832A (en) * 1977-04-28 1978-08-29 International Business Machines Corporation Carry save adder
EP0281132B1 (en) * 1987-03-04 1995-10-25 Nec Corporation Vector calculation circuit capable of rapidly carrying out vector calculation of three input vectors
US4819155A (en) * 1987-06-01 1989-04-04 Wulf William A Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations
US4958312A (en) * 1987-11-09 1990-09-18 Lsi Logic Corporation Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults

Also Published As

Publication number Publication date
JPH0659861A (ja) 1994-03-04
US5426743A (en) 1995-06-20

Similar Documents

Publication Publication Date Title
JP2683488B2 (ja) 3−1論理演算装置
US6078941A (en) Computational structure having multiple stages wherein each stage includes a pair of adders and a multiplexing circuit capable of operating in parallel
JP3578502B2 (ja) 単一プロセッサにおいて並列データ処理を実行する方法
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US5517440A (en) Optimized binary adders and comparators for inputs having different widths
US5394351A (en) Optimized binary adder and comparator having an implicit constant for an input
US6360189B1 (en) Data processing apparatus and method for performing multiply-accumulate operations
JP3889069B2 (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
US6742012B2 (en) Apparatus and method for performing multiplication operations
EP0260409A2 (en) Data processing system with two execution units
US5299319A (en) High performance interlock collapsing SCISM ALU apparatus
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JP2006529043A (ja) 飽和あり、または飽和なしで、オペランドの積和を実行するプロセッサ簡約ユニット
US5892698A (en) 2&#39;s complement floating-point multiply accumulate unit
WO2006136764A1 (en) A data processing apparatus and method for accelerating execution of subgraphs
US7827226B2 (en) Hybrid arithmetic logic unit
JPH0823811B2 (ja) 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
Padegs et al. The IBM System/370 vector architecture: Design considerations
US5583806A (en) Optimized binary adder for concurrently generating effective and intermediate addresses
EP0588341B1 (en) Data processor
JP3578883B2 (ja) データ処理装置
US10929101B2 (en) Processor with efficient arithmetic units
JP3462054B2 (ja) 並列加減算回路
US11789701B2 (en) Controlling carry-save adders in multiplication