JPH0850578A - 算術論理演算装置及び制御方法 - Google Patents

算術論理演算装置及び制御方法

Info

Publication number
JPH0850578A
JPH0850578A JP7117925A JP11792595A JPH0850578A JP H0850578 A JPH0850578 A JP H0850578A JP 7117925 A JP7117925 A JP 7117925A JP 11792595 A JP11792595 A JP 11792595A JP H0850578 A JPH0850578 A JP H0850578A
Authority
JP
Japan
Prior art keywords
register
input
carry
arithmetic
arithmetic logic
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
JP7117925A
Other languages
English (en)
Other versions
JP3476960B2 (ja
Inventor
Curtet Joel
クルテ ジョエル
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.)
SGS THOMSON MICROELECTRONICS
STMicroelectronics SA
Original Assignee
SGS THOMSON MICROELECTRONICS
SGS Thomson Microelectronics SA
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 SGS THOMSON MICROELECTRONICS, SGS Thomson Microelectronics SA filed Critical SGS THOMSON MICROELECTRONICS
Publication of JPH0850578A publication Critical patent/JPH0850578A/ja
Application granted granted Critical
Publication of JP3476960B2 publication Critical patent/JP3476960B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • G06F9/30014Arithmetic instructions with variable precision
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths

Landscapes

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

Abstract

(57)【要約】 【構成】 算術論理演算装置は、少なくとも1つの入力
にシフタBDを備える算術論理回路ALUを備える。乗
算器MULTを備える演算装置は、倍精度乗算及び乗算
−累算演算を実行するためにキャリーを伝搬する手段及
びキャリーを乗算器に入力する手段を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、算術論理演算装置及び
制御方法に関するものである。この装置及びこの方法
は、特に算術演算プロセッサまたは信号プロセッサに適
用できる。これは、また倍精度計算、特に倍精度の掛け
算(または乗算)演算及び掛け算−累算(乗算−累算)
演算を実行するために使用される。
【0002】
【従来の技術】倍精度または多精度計算の実行は、デー
タバスより大きいオペランドで作業すること、例えば、
16ビットデータバスに対して32ビットオペランドで作業
することを含む。乗算−累算演算を実行するために、乗
算器及び算術論理回路を使用する。乗算器は、2つのオ
ペランド間の乗算を実行し、その積をレジスタに置く。
算術論理回路は、その積を、累算器レジスタに含まれて
いる結果に加算する。
【0003】乗算器が入力でデータバスの幅を有するオ
ペランドを受ける時、倍精度掛け算演算を実行するため
には、基本単位積を計算し、これらの基本単位積を加算
して乗算の結果を得ることが必要である。基本単位積と
は、データバスの幅を有するオペランドで計算される積
と定義される。16ビットデータバスの場合、上位16ビッ
トのワードと下位16ビットのワードによって各々が形成
されている32ビットオペランドでの倍精度乗算掛け算演
算では、4つの基本単位積が計算される。すなわち、2
つの下位ビットワードの積と、2つの上位ビットワード
の積と、別のオペランドの上位ワードと「交叉した」1
つのオペランドの下位ワードの2つの交叉積とである。
【0004】生じる問題の1つは、2×32ビットの最終
結果を得るために異なる基本単位積を加算し、乗算−累
算演算の場合、これらの基本単位積を中間結果に加算す
ることである。32ビット基本単位積を適切に加算するた
めには、それらの基本単位積は64ビット結果のウインド
ウの右の位置に少数点位置合わせされている。この目的
のため、必要ならば、中間結果はシフトされ、基本単位
積がそれに加算される。従って、中間結果、結果内のビ
ットを損失しないようにシフト前にセーブされていなけ
ればならず、それによって、メモリ内で様々なポインタ
を管理することが必要になる。例えば、16ビット乗算器
と32ビット加算器があり、2つの32ビット数x1 0
1 0 (x1 、y1 は上位ワードを示し、x0 、y0
は最下位ワードを示す)を乗算し、この積を32ビット累
算器に累算することが望ましい時、A=Ahigh+Alow
(Ahighは、上位16ビットを示し、Alow は、下位16ビ
ットを示す) で、下記の種々の演算が実行される: x0 *y0 +A in A Alow in m01 *y0 +A*2-16 in A x0 *y1 +A in A' Alow in m11 *y1 +A*2-16 in A
【0005】これらの全ての加算が累算器で行なわれ、
この累算器は常に右にシフトされるので、キャリー(桁
上げ)及び符号ビットが自然に累算器内を伝搬する。乗
算−累算ループを得るためには、演算結果はもはや少数
点位置が合っておらず、一部分がm0 に(最下位16ビッ
ト) 、一部分が累算器に(最上位32ビット)及び一部分
がm1 に(中間16ビット) にあるので、メモリ領域m0
及びm1 及び累算器A上で演算を実行することが必要で
ある。これは、必要な命令サイクル数を増加させ、重大
の不利益をともなうことがある。
【0006】
【発明が解決しようとする課題】本発明の目的は、特に
メモリ演算を排除することによって、倍精度及びより一
般的に多精度演算を容易することである。また、本発明
の目的は、そのような演算に必要な命令サイクル数を少
なくすることである。
【0007】
【課題を解決するための手段】本発明によると、算術論
理回路の入力にシフタが配置される。x0 *y1 型の交
叉積を加算するために、この積は、シフタを入力に備え
る算術論理回路に入力される。従って、積が、累算器に
対して小数点位置合わせされ、その反対ではない。さら
に少なくとも2つの累算器、1つの乗算器及び1つの制
御装置を備える本発明による演算装置は、乗算器によっ
て計算された積の二重累算の命令、すなわち、積の右側
算術シフトによる第1の累算器での第1の累算、および
積の左側シフトによる第2の累算器での第2の累算の命
令を実行するために使用される。
【0008】しかし、2つの異なる累算器で2つの累算
を実行することによって、キャリーの自然な伝搬は乗算
−累算演算で失われる。本発明では、前段のキャリーを
セーブし、第1の累算によって生成したキャリーを第2
の累算に伝搬する手段が備えられている。
【0009】本発明によると、演算装置は、現在の演算
によって生成したキャリーを算術論理回路の次の演算に
伝搬するための第1のレジスタ及び第2のレジスタと、
第1のレジスタの内容を保護し、第2のレジスタを選択
するための第1の回路と、乗算器の入力に第1のレジス
タの内容を入力することを可能にする第2の回路とを備
える。第2の回路は、好ましくは、入力に第1のレジス
タの出力と制御装置から出力された2進数制御信号とを
受けるANDゲートである。
【0010】本発明は、また、上位nビットのワードと
下位nビットのワードを備える積の二重累算の計算の制
御方法に関するものであり、算術論理回路は、少なくと
も、1つの第1の累算器と、1つの第2の累算器と、現
在の命令のために算術論理回路によって計算されたキャ
リーを記憶する第1のレジスタと、第2のレジスタとを
備える。本発明によると、制御方法は、積の二重累算を
含む命令の受け取りに応答して、前段の命令で計算され
たキャリーを保持するために第1のキャリーレジスタを
保護し、第1の累算器の内容及び第2のレジスタに記憶
されたキャリーにより、シフタによって左にnビット算
術的にシフトされた積レジスタの内容の第1の累算を行
い、第2の累算器の内容及び第2のレジスタに記憶され
たキャリービットによりシフタによって右にnビット算
術的にシフトされた積レジスタの内容の第2の累算を行
うことからなる。
【0011】1つの改良では、本発明による制御方法は
第2に累算と並列に乗算をアクティブにする。好ましく
は、第1のレジスタに含まれるキャリーは、入力として
乗算器に入力される。本発明のその他の特徴及び利点
は、添付図面を参照して行なう下記の実施例の説明から
明らかになろう。但し、それらの実施例は、本発明を何
ら限定するものではない。
【0012】
【実施例】図1に図示した算術論理演算装置は、演算装
置の様々な回路、特に、算術論理回路ALU及び乗算器
MULTを駆動する制御装置UCを備える。制御装置U
Cは、例えば、命令バスIBUSから命令INSを受け
る(ハーヴァード(HARVARD) アーキテクチャとして公知
の信号プロセッサの標準的アーキテクチャを使用する)
。制御装置は、この命令に応じて様々な制御信号(m
0、・・・、m4)を出力する。
【0013】算術論理回路ALUは、標準的な算術論理
命令(加算、減算、XOR、比較等)を実行することが
できる。算術論理回路ALUは、少なくとも2つのデー
タ入力E1及びE2を有する。少なくとも1つの入力、
例えば、入力E1(図1)にはシフタBDが備えられて
いる。そのシフタBDは、好ましくは算術論理シフトを
可能にするバレルシフタである。算術論理回路は、好ま
しくは累算器と呼ばれる少なくとも2つの出力レジスタ
A0及びA1に接続された出力OUTに演算結果を出力
する。これらの累算器は、また、算術論理回路の入力E
1及びE2にデータ要素を供給することがある。
【0014】第1のレジスタC1及び第2のレジスタC
2は、算術論理回路によって計算されたキャリーを記憶
して出力するように構成されている。制御回路UCによ
って制御される回路1によって、実行中の演算に係わる
キャリーを記憶して出力する2つのレジスタC1または
C2の一方の選択を可能になる。実際、計算の開始時に
は、選択したレジスタは、算術論理回路に、そのレジス
タが記憶しているキャリーを与える。計算の終わりに
は、新しいキャリーを記憶する。デフォルトによって選
択されるレジスタは、レジスタC1である。
【0015】好ましくは、回路1は、第1に算術論理回
路のキャリー信号を、第2に第1のチャネル上にレジス
タC1の出力を、第2のチャネル上にレジスタC2の出
力を受けるマルチプレクサ/デマルチプレクサを有す
る。その状態によって、制御信号m2は第1のチャネル
又は第2のチャネルのどちらかをアクティブにする。
【0016】一般に、図1に図示したように、第1のレ
ジスタC1及び第2レジスタC2は、算出論理回路と接
続された条件レジスタRCの第1のビット及び第2のビ
ットである。この条件レジスタRCは、現在の演算につ
いて算術論理回路によって出力されたまたは使用された
様々な情報要素(キャリー、符号、容量オーバーフロー
など)を記憶するまたは供給する。下記の説明では、レ
ジスタC1及びC2は条件レジスタのビットで識別され
る。ビットC1はデフォルトキャリービットであり、本
発明の装置に与えられたビットC2は制御装置の命令に
基づいてのみ使用されるこことが注目される。
【0017】演算装置は更に、乗算器MULTを有す
る。最適演算速度を得るために、好ましくは、並列乗算
器である。しかし、アプリケーションに応じて他の形式
のアーキテクチャを選択することができる(直列乗算器
または並列−直列乗算器)。乗算器は、オペランドを受
けるための2つの入力OP1及びOP2を有する。これ
らのオペランドは、実施例では、2つのソースレジスタ
L及びRによって与えられる。乗算器は、また、積の最
下位ビットの計算のための計算段(図示せず)にキャリ
ーを供給する回路2の出力に接続された入力C0を有す
る。好ましくは、回路2は、入力としてビットC1及び
制御装置によって出力された2進数制御信号m4を受け
るAND論理ゲートである。乗算器は、積レジスタPに
乗算の結果を出力する。
【0018】図1の実施例では、データ要素はnビット
で示されており、算術論理回路は実施例ではeビットの
拡張を有する倍精度装置である。データバスDBUSを
図示した。このバスを介して、データ要素は、様々なデ
ータレジスタ、すなわち、積レジスタP、ソースレジス
タL及びRまたは累算器A0またはA1に書き込まれ、
読み出される。nビット幅を有するこのデータバスは、
メモリ空間(図示せず)に接続される。
【0019】乗算器は、nビット入力オペランドで作動
し、レジスタPに2×nビットの結果を与える。レジス
タPは、データバスから別々にアクセスできる2つのn
ビットサブレジスタP1及びP0に分割される。サブレ
ジスタP1は、積の上位mビットを受け、サブレジスタ
P0は、積の下位nビットを受ける。ソースレジスタL
及びRは、各々、データバスから別々にアクセスできる
2つのサブレジスタに分割され、1つは、上位nビット
のためのサブレジスタ(L1、R1)であり、もう1つ
は、下位nビットのためのサブレジスタ(L0、R0)
である。
【0020】累算器A0及びA1は、各々、データバス
から別々にアクセスできる3つのサブレジスタ、すなわ
ち、e個の拡張ビットのための第1のサブレジスタ(A
0H、A1E)、上位nビットのための第2のサブレジ
スタ(AOH、A1H)及び下位nビットのための第3
のサブレジスタ(AOL、A1L)に分割される。
【0021】算術論理回路の入力E1及びE2は、同様
に、3つのローカルバスに対応する3つのサブグループ
に分割される。すなわち、3つのローカルバスは、拡張
ビットを含むサブレジスタ(A0E、A1E)の内容を
受けることができる第1のローカルバスEXT1、EX
T2と、上位nビット専用のサブレジスタの内容を受け
ることができる第2のローカルバスHIGH1、HIG
H2と、下位nビット専用のサブレジスタの内容を受け
ることができる第3のローカルバスLOW1、LOW2
とである。
【0022】図1には、入力E1及びE2のローカルバ
スとサブレジスタ間のリンクを全て図示してはいない
が、それは第1に図面を過度に複雑にしないためであ
り、第2にこれらのリンクはアーキテクチャによって変
化するからである。さらに、また図面を単純化するた
め、1つのデータバスDBUSだけを図示した。しか
し、或る型のアーキテクチャは例えば異なるメモリ空間
に各々接続された2つのデータバスを使用する。
【0023】図1は、本発明の1実施例による乗算また
は乗算−累算演算に有効なリンクだけを図示している。
これらのような演算では、積レジスタPの内容は、算術
論理回路のシフタを介して入力E1に入力され(上位n
ビットに関するP1及び下位nビットに関するP0)、
1つの累算器(A0)またはもう1つの累算器(A1)
は算術論理回路の入力E2に入力される(e個の拡張ビ
ットに関するAiE、上位nビットに関するAiH及び
下位nビットに関するAiL、但し、i=0または
1)。算術論理回路の出力OUTは、入力E2に入力さ
れるものと同じ累算器に書き込まれる。
【0024】本発明による累算−乗算命令では、制御装
置は積レジスタの内容を算術論理回路の入力に入力し、
累算計算の信号(m1)を算術論理回路に送り、乗算器
に新しい積の計算の信号(m3)を送る。本発明による
と、積レジスタでの二重累算命令INSを受けると、制
御装置UCは、算術論理回路のシフタを有する入力E1
へのレジスタPの内容の入力と第1の累算器、例えば、
A0の内容の入力E2への入力をアクティブにし、キャ
リービットC1を保護するための回路1で制御信号(m
2)をアクティブにし、従って、キャリービットがビッ
トC2に記憶されるかまたは読み出される。次に、制御
装置は、シフタBDを左へのnビットシフトで初期化す
る(制御信号m0)。第1の命令サイクルでは、制御信
号m1での累算計算の命令を受けると、算術論理回路は
その計算を実行し、結果を第1の累算器A0に記憶し、
キャリーをビットC2に記憶する。次に、制御装置は、
右へのnビットの算術的シフトでシフタを初期化し、第
2の累算器A1の内容を算術論理回路の入力E2に入力
する。第2の命令サイクルでは、第2の累算命令m1を
算術論理回路に送る。算術論理回路は、ビットC2に記
憶された前の加算のキャリーに2つの入力を加算し、結
果を累算器A1に累算する。
【0025】積レジスタの二重累算及び乗算の命令の場
合、第2のサイクルでは、制御装置は第2の累算命令と
並列に乗算器に計算制御信号m3を送る。新しい積が、
積レジスタに記憶される。第2の命令サイクルの終わり
に、制御装置は2進数制御信号m2を非アクティブにし
て、シフタを零シフトで再初期化する。命令が、キャリ
ーを有する二重累算及び乗算命令である時、制御装置は
制御信号m4をまた1にアクティブにして、キャリービ
ットC1の乗算器の入力C0への入力を有効化し、第2
の命令サイクルの終わりに2進数信号m4をゼロで非ア
クティブ化する。
【0026】演算装置は、極めて単純な方法で両方の累
算器に完全に小数点位置合わせされた結果を有する倍精
度乗算−累算演算を実行するために使用できる。乗算−
累算の結果は、下位ビットが累算器A0に、上位ビット
が累算器A1に置かれる。図1に図示したアーキテクチ
ャでは、算術論理回路及び累算器は拡張累算器であり、
累算器A0の拡張部分(AOE)は重要ではない。累算
器A1 の拡張部分(A1E)は、結果の符号の可能な拡
張を示す。本発明は、また、拡張のない算術論理回路に
も適用される。
【0027】図2は、本発明による演算装置を備える乗
算−累算計算用ループのフローチャートである。乗算さ
れるオペランドは、レジスタR及びL内に配置される。
図2の実施例では、nは16に等しいものとして選択され
る。従って、ソースレジスタ(R、L)及び積レジスタ
(P)は2×16ビットレジスタである。
【0028】本発明の原理は、前の積を累算し、次の積
を計算することからなるので、乗算−累算計算ループに
戻る前に、第1に、第1の積Pr1を計算することが必
要である。従って、制御方法は、第1の2つのオペラン
ドの下位ワードR0、L0の積Pr1を計算する命令で
開始される(MULT R0、L0)。乗算器がアクテ
ィブにされ、積はレジスタPに置かれる。
【0029】次に、入力点Bでループにエントリを行な
い、累算−乗算命令で開始する(MAC R1、L0、
A0)。同じ命令サイクル中に、累算器A内の前の積P
r1=R0・L0と第1の交叉積Pr2、すなわち、オ
ペランドの上位ワード、例えば、R1と他のオペランド
の下位ワード、実施例ではL0の積の計算が実施され
る。累算は、ビットC1に記憶されるキャリーを生成す
る。累算器A0がゼロで初期化されたとすると、このキ
ャリーは無効である。
【0030】その時、次の命令は二重累算−乗算命令で
ある(DMAC R0、L1)。第1の命令サイクルで
は、算術論理回路は、左への16ビットシフトした前の積
Pr2と累算器A0との第1の累算を計算する。累算
は、ビットC2に記憶されるキャリーを生成する。第2
の命令サイクルでは、算術論理回路は、右への16ビット
算術的シフトした前の積Pr2と累算器A1とビットC
2に記憶されたキャリーとの第2の累算を計算する。同
時に、乗算器は第2の交叉積Pr2、実施例では、Pr
3=R0・L1を計算する。
【0031】次に、キャリーを含む二重累算−乗算命令
がある(DMAC R1、L1、C0)。第1の命令サ
イクルでは、算術論理回路は、左への16ビットシフトし
た前の積Pr3と累算器A0との第1の累算を計算す
る。累算は、ビットC2に記憶されるキャリーを生成す
る。第2の命令サイクルでは、算術論理回路は、右への
16ビット算術的シフトした前の積Pr3と累算器A1及
びビットC2に記憶されたキャリーとの第2の累算を計
算する。同時に、乗算器は、キャリービットC1を乗算
器の入力C0に入力することによって上位ワードの積P
r4を計算する。すなわち、Pr4=R1・L1+C
1。ソースレジスタR及びLは、次のオペランド
(R+ 、L+ )がロードされる。
【0032】最後に単一の累算−乗算命令がある(MA
C R0、L0、A1)。算術論理回路は、累算器A1
と前の積Pr4の累算を計算し、乗算器は新しいオペラ
ンドの下位ワードの積Pr5、すなわち、Pr5=R0
・L0を計算する。演算は、第2の計算ループのために
Bに戻ることができる。
【0033】上記の倍精度乗算−累算方法の制御方法
は、固定少数点、符号付き数、整数または分数で表示さ
れる数について有効である。下位ワードの乗算は、符号
なし数の乗算であり、一方、上位ワードの乗算は符号付
き数の乗算であり、交叉積は符号のある数と符号のない
数との乗算によって得られることが注目される。乗算器
MULTで計算される型の積の管理は、制御装置によっ
て行なわれる。
【0034】累算のない倍精度乗算を実行するために
は、最後の乗算−累算命令MACの代わりに、累算器A
1での単純な累算を実行するだけで十分であり、累算器
A0及びA1は計算の開始時に零で初期化される。累算
のない倍精度乗算の場合、最下位ビットワードの第1の
積はこの場合必ず零キャリーを含むリセット累算器に蓄
積されるので、キャリービットC1を最上位ワードの積
の計算のため乗算器に入力することは必要ではないこと
が注目される。
【0035】従って、本発明による演算装置は、大きく
簡略化された倍精度乗算または乗算−累算演算を可能に
する。一般に、算術論理回路の少なくとも1つの入力に
配置されたシフタは、累算器の内容を変更する必要がな
く、データ要素を扱うことができる。すなわち、小数点
位置合わせは、もはや累算器ではなく、データ要素で実
行される。これは、加算及び減算、及び全てのビット扱
い演算に適用される。
【0036】本発明による算術論理演算装置は、図1に
図示したアーキテクチャに限定されのものではない。特
に、他のバスのアーキテクチャが可能である。また、他
のレジスタまたは他の演算装置が存在することがある。
メモリ空間に接続されたレジスタを管理するために使用
される方法は説明していないが、従来技術によって提供
される様々な可能性によって実行される。
【図面の簡単な説明】
【図1】 本発明による算術論理演算装置のアーキテク
チャを図示したものである。
【図2】 本発明による算術論理演算装置の倍精度乗算
−累算の演算のフローチャートを図示したものである。
【符号の簡単な説明】 ALU 算術論理回路 A0、A1 累算器 BD シフタ C1、C2 レジスタ DBUS データバス E1、E2 入力 IBUS 命令バス L、T ソースレジスタ MULT 乗算器 P 積レジスタ UC 制御装置

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも2つの出力累算器を有する算
    術論理回路のシフタ付き入力に入力される出力を有する
    積レジスタを有する乗算器と、その算術論理回路の次の
    演算に現在の演算によって生成したキャリーを伝搬する
    第1のレジスタ及び第2のレジスタを備える、制御装置
    (UC)付き算術論理演算装置であって、更に、第1の
    レジスタの内容を保護し、第2のレジスタを選択する第
    1の回路と、第1のレジスタの内容を乗算器の入力に入
    力できる第2の回路とを備えることを特徴とする算術論
    理演算装置。
  2. 【請求項2】 第1の回路は2つのチャネルを備えるマ
    ルチプレクサ/デマルチプレクサであり、第1のチャネ
    ルは第1のレジスタに接続され、第2のチャネルは第2
    のレジスタに接続され、上記第1の回路は、上記制御装
    置から制御信号を受け、第1のチャネルまたは第2のチ
    ャネルを駆動することを特徴とする請求項1に記載の演
    算装置。
  3. 【請求項3】 上記第2の回路は、上記制御装置から2
    進数制御信号と第1のレジスタの出力とを受けるAND
    ゲートであり、上記第2の回路の出力は乗算器の入力に
    入力されることを特徴とする請求項1または2に記載の
    演算装置。
  4. 【請求項4】 上記算術論理回路の入力のシフタは、バ
    レルシフタであることを特徴とする請求項1〜3のいず
    れか1項に記載の算術論理演算装置。
  5. 【請求項5】 乗算器と、その付属の積レジスタと、入
    力に少なくとも1つのシフタを備える2つの入力を有す
    る算術論理回路とを備える演算装置の制御方法であっ
    て、上記算術論理回路はその出力に少なくとも、1つの
    第1の累算器及び1つの第2の累算器、第1のキャリー
    レジスタ及び第2のキャリーレジスタを備え、積の二重
    累算の計算のために、当該方法は、 前の命令で生成したキャリーを記憶するための第1のキ
    ャリーレジスタを保護し、 第1の累算器の内容と、左にnビット算術的シフトされ
    た積レジスタの内容との第1の累算を実行し、上記第2
    のレジスタにキャリーを記憶し、 右にnビット算術的シフトされた積レジスタの内容の第
    2の累算器の内容と第2のレジスタに記憶された第1の
    累算器のキャリーとの第2の累算を実行することからな
    ることを特徴とする方法。
  6. 【請求項6】 さらに、第2の累算と並列で新しい乗算
    をアクティブにすることからなることを特徴とする請求
    項5に記載の演算装置の制御方法。
  7. 【請求項7】 第1のレジスタに含まれるキャリーは、
    乗算器の入力に入力されることを特徴とする請求項6に
    記載の演算装置の制御方法。
JP11792595A 1994-04-19 1995-04-19 算術論理演算装置及び制御方法 Expired - Fee Related JP3476960B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9404655A FR2718866B1 (fr) 1994-04-19 1994-04-19 Dispositif de calcul arithmétique et logique et procédé de commande.
FR9404655 1994-04-19

Publications (2)

Publication Number Publication Date
JPH0850578A true JPH0850578A (ja) 1996-02-20
JP3476960B2 JP3476960B2 (ja) 2003-12-10

Family

ID=9462251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11792595A Expired - Fee Related JP3476960B2 (ja) 1994-04-19 1995-04-19 算術論理演算装置及び制御方法

Country Status (5)

Country Link
US (1) US5657262A (ja)
EP (1) EP0678807B1 (ja)
JP (1) JP3476960B2 (ja)
DE (1) DE69500410T2 (ja)
FR (1) FR2718866B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266239A (ja) * 2001-02-21 2009-11-12 Mips Technologies Inc 拡張精度アキュムレータ
KR100977963B1 (ko) * 2006-08-09 2010-08-24 인피니언 테크놀로지스 아게 산술 논리 유닛용 셀, 이러한 셀을 포함하는 프로세서, alu 셀을 위한 제어 회로기기, 마스킹된 alu 셀 및 마스킹된 alu 셀의 두 입력의 논리적 결합 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2745647B3 (fr) * 1996-03-01 1998-05-29 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement
US6128726A (en) * 1996-06-04 2000-10-03 Sigma Designs, Inc. Accurate high speed digital signal processor
CN1109990C (zh) 1998-01-21 2003-05-28 松下电器产业株式会社 运算装置及运算方法
FR2775368B1 (fr) * 1998-02-26 2000-04-14 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement
US6484194B1 (en) 1998-06-17 2002-11-19 Texas Instruments Incorporated Low cost multiplier block with chain capability
JP2000039995A (ja) * 1998-06-25 2000-02-08 Texas Instr Inc <Ti> 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
DE69920582T2 (de) * 1998-06-25 2005-09-08 Texas Instruments Inc., Dallas Verfahren zum Multiplizieren von Zahlen in Mehrwortkettendarstellung
JP3845009B2 (ja) * 2001-12-28 2006-11-15 富士通株式会社 積和演算装置、及び積和演算方法
US20050055394A1 (en) * 2003-09-10 2005-03-10 Worley John S. Method and system for high performance, multiple-precision multiply-and-add operation
WO2006083768A2 (en) * 2005-01-31 2006-08-10 Aamir Alam Farooqui Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data
US9104510B1 (en) * 2009-07-21 2015-08-11 Audience, Inc. Multi-function floating point unit
US11599334B2 (en) 2020-06-09 2023-03-07 VeriSilicon Microelectronics Enhanced multiply accumulate device for neural networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5994144A (ja) * 1982-11-22 1984-05-30 Toshiba Corp 乗算器
JPH01260533A (ja) * 1988-04-12 1989-10-17 Nec Corp 算術演算回路
JPH06301710A (ja) * 1993-04-15 1994-10-28 Fujitsu Ltd 倍精度積和演算方法および装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6054070A (ja) * 1983-09-02 1985-03-28 Nec Corp 演算装置
EP0173383B1 (fr) * 1984-08-14 1990-04-18 Telecommunications Radioelectriques Et Telephoniques T.R.T. Processeur pour effectuer suivant différents modes le traitement de données et dispositif de multiplication convenant pour un tel processeur
JPH037083A (ja) * 1989-05-31 1991-01-14 Toshiba Corp 誘導電動機の制御方法
JPH0378083A (ja) * 1989-08-21 1991-04-03 Hitachi Ltd 倍精度演算方式及び積和演算装置
JPH05282133A (ja) * 1992-04-01 1993-10-29 Mitsubishi Electric Corp 演算方式
DE4218769A1 (de) * 1992-06-06 1993-12-09 Philips Patentverwaltung Verfahren und Anordnung zum Bilden der Summe einer Kette von Produkten

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5994144A (ja) * 1982-11-22 1984-05-30 Toshiba Corp 乗算器
JPH01260533A (ja) * 1988-04-12 1989-10-17 Nec Corp 算術演算回路
JPH06301710A (ja) * 1993-04-15 1994-10-28 Fujitsu Ltd 倍精度積和演算方法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266239A (ja) * 2001-02-21 2009-11-12 Mips Technologies Inc 拡張精度アキュムレータ
KR100977963B1 (ko) * 2006-08-09 2010-08-24 인피니언 테크놀로지스 아게 산술 논리 유닛용 셀, 이러한 셀을 포함하는 프로세서, alu 셀을 위한 제어 회로기기, 마스킹된 alu 셀 및 마스킹된 alu 셀의 두 입력의 논리적 결합 방법

Also Published As

Publication number Publication date
FR2718866B1 (fr) 1996-05-15
DE69500410D1 (de) 1997-08-14
EP0678807B1 (fr) 1997-07-09
JP3476960B2 (ja) 2003-12-10
EP0678807A1 (fr) 1995-10-25
US5657262A (en) 1997-08-12
FR2718866A1 (fr) 1995-10-20
DE69500410T2 (de) 1997-11-13

Similar Documents

Publication Publication Date Title
US5319588A (en) Signed overflow sticky bits
US5859789A (en) Arithmetic unit
JP3729881B2 (ja) 並列加算および平均演算を行うための回路およびその方法
EP0755015B1 (en) Combining data values
JP3476960B2 (ja) 算術論理演算装置及び制御方法
US6009450A (en) Finite field inverse circuit
JPS5862746A (ja) 割算装置
US20060184594A1 (en) Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US6963644B1 (en) Multi-word arithmetic device for faster computation of cryptosystem calculations
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JPH0345420B2 (ja)
JP3435744B2 (ja) 乗算回路
US6035310A (en) Method and circuit for performing a shift arithmetic right operation
JP3336986B2 (ja) 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器
JP3691538B2 (ja) ベクトルデータ加算方法及びベクトルデータ乗算方法
JP3394052B2 (ja) 多精度運算方法及び多精度運算装置
JPS6115233A (ja) 乗算器
JP3638218B2 (ja) シフト機能付きalu命令を持つマイクロプロセッサ
KR100246472B1 (ko) 디지탈신호처리기
JPH06301710A (ja) 倍精度積和演算方法および装置
GB2345563A (en) Digital signal processor for performing fixed-point and/or integer arithmetic
JP2654062B2 (ja) 情報処理装置
JPH02310621A (ja) 情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19971216

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees