JPH07200261A - 論理演算装置 - Google Patents
論理演算装置Info
- Publication number
- JPH07200261A JPH07200261A JP6317609A JP31760994A JPH07200261A JP H07200261 A JPH07200261 A JP H07200261A JP 6317609 A JP6317609 A JP 6317609A JP 31760994 A JP31760994 A JP 31760994A JP H07200261 A JPH07200261 A JP H07200261A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- word
- adder
- sub
- signal
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/527—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
- G06F7/5272—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel with row wise addition of partial products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; 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/508—Adding; 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 carry look-ahead circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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/575—Basic 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49963—Rounding to nearest
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
数の演算処理を高効率で行い、かつ2進小数を含む乗算
に好適な論理演算装置を提供する。 【構成】 N個の単一ビット加算器31〜35にそれぞ
れマルチプレクサ41〜45を接続し、i=0〜N−1
でZ0 が最下位ビット、ZN-1 が最上位ビットとし、ビ
ットXi を有するXワードをXサブワードに区分化し、
ビットYi を有するYワードをYサブワードに区分し、
単一ビット加算器33のステージでXワードからのビッ
ト信号Xk とYワードからのビット信号Yk と単一ビッ
ト加算器34からの桁上げ入力信号Ck-1 とを加算し
て、和信号Sk と桁上げ出力ビット信号Ck とを出力
し、和信号Sk より、出力ワードのビット信号Xk を生
じさせ、桁上げ出力ビット信号Ck はブロック回路37
により、単一ビット加算器32の桁上げ入力ビット信号
となす。
Description
ものであり、とりわけ、それに用いられる論理演算装置
に関するものである。
ト数の数を加算する加算器が含まれている。マイクロプ
ロセッサ等においては、32ビット及び64ビットの長
さのワードに関する加算器が一般的である。これらの加
算器は、はるかに少ないワードに関する演算も行うが、
そうする場合、加算器に含まれる大部分の論理回路は遊
休状態になる。例えば、64ビット加算器は、対応する
64ビット・ワードの最下位部分に2つの8ビット・ワ
ードのそれぞれを配置し、それから、64ビット・ワー
ドを加算することによって、2つの8ビット・ワードの
加算に利用することが可能である。この加算中、ワード
のそれぞれにおける7つの上位バイトの加算に関連した
論理回路要素が、事実上遊休状態になる。従って、この
演算中、加算器の能力の7/8が無駄になっている。
計算は、マルチ・メディア・データ処理においてしばし
ば見受けられる。イメージは、通常、各ピクセルが、論
理演算装置の最大ワード・サイズよりかなり小さいワー
ドによって表される、ピクセル・アレイとして表現され
る。グレイ・スケールのイメージは、一般に、そのイメ
ージの対応する位置における光の強度を表した1バイト
の整数からなるアレイによって表現される。同様に、サ
ウンド・トラックは、時間の関数としてサウンド・トラ
ックの強度を表す1または2バイトの整数からなるアレ
イによって表現される。従って、マルチ・メディア・デ
ータ処理は、典型的な汎用コンピュータに組み込まれた
論理演算装置の計算能力を十分に活用していない。
処理は、論理演算装置(以下、適宜ALU という)の能力
を十分に活用していないだけでなく、ALU においてその
演算を行う前に、データのパック及びパック解除を行う
ことが必要になるので、結果として、非能率的でもあ
る。例えば、記憶空間は、常に不足しているので、イメ
ージのピクセルは、一般に、ワードにパックされる。コ
ンピュータの基本ワード・サイズが32ビットの場合、
グレイ・スケール・イメージのピクセルは、ワード毎に
4つずつパックすることが可能である。イメージ内の各
ピクセル毎に実施しなければならない演算について考え
てみることにする。演算の実施に必要な時間に加えて、
プログラムは、各計算の前に、ピクセル情報のパック解
除を行い、さらに結果を再パックしなければならない。
これらのパック及びパック解除操作によって、演算効率
がさらに低下する。
算時間は、法外なものになる可能性がある。従って、和
イメージ指令の実行と、和イメージの完成時との間の時
間を短縮するため、特殊並列コンピュータ・アーキテク
チャがよく用いられる。1つのピクセルまたはサウンド
・サンプルに対して実施されるマルチ・メディア処理演
算は、他のピクセルまたはサウンド・サンプルに対して
実施される演算とは独立している場合が多く、従って、
演算は、順番に関係なく、並列に実施することができ
る。M 個の加算器を備えたコンピュータは、原理的に、
メモリと加算器の間におけるピクセルの移動が障害にな
らない場合、1/M thの時間で結果を得ることが可能で
ある。従って、複数の加算を並列に実施することが可能
なコンピュータ・アーキテクチャを備えることが有利で
ある。あいにく、こうした追加ALU及びそれらの制御に
必要なハードウェアを設けるコストは、けた外れになる
場合が多い。
い計算クラスの1つが、2進小数による乗算である。こ
うした計算は、フィルタリング操作、及び、データ圧縮
及び圧縮解除操作において一般的である。これらの場
合、乗算は、定数によって行われる。
演算装置を提供することにある。
の幅よりも狭いワードを伴う複数の演算が処理される場
合に、効率の高い演算を行う論理演算装置を提供するこ
とにある。
数を伴う複数の乗算の計算に適した論理演算装置を提供
することにある。
び添付の図面から本発明の以上の目的及びその他の目的
が明らかになるであろう。
1であるとした場合、ビットXiを有するXワード及び
ビットYiを有するYワードの内容に演算を施して、ビ
ットZiを有する結果ワードを発生するための論理演算
装置である。X及びYワードは、サブ・ワードに区分化
することが可能である。Z0 は、サブ・ワードの1つの
最下位ビットであり、ZN −1は、サブ・ワードの1つ
の最上位ビットである。論理演算装置は、マスク・ワー
ドに応答して、X 、Y 、及び、結果ワードを複数のサブ
・ワードに区分化するが、Xワードの各サブ・ワード
に、Y及び結果ワードのサブ・ワードの1つが対応す
る。本発明では、各Xサブ・ワードを2m で割った値と
対応するYサブ・ワードの合計を発生することによっ
て、前記結果ワードの前記対応するサブ・ワードに納め
られる結果が生じる。ここで、mは非負整数である。
ンスをなすように接続されたN個の単一ビット加算器か
ら構成される。各単一ビット加算器ステージは、Xワー
ドから第1のビット信号を受信し、Yワードから第2の
ビット信号を受信するようになっており、シーケンスに
おけるi番目の単一ビット加算器は、Yレジスタのビッ
トYi に接続される。各単一ビット加算器は、第1及び
第2のビット信号と桁上げ入力信号を加算して、和信号
及び桁上げ出力信号を発生し、単一ビット加算器によっ
て発生した和信号は、YレジスタのビットYi に接続さ
れ、ビット信号Zi が生じることになる。i=0〜N−
1の場合、Yi に接続された単一ビット加算器の桁上げ
出力信号は、Yi+1 に接続された単一ビット加算器の桁
上げ入力に接続される。論理演算装置には、N個のマル
チプレクサも含まれており、各加算器ステージに、1つ
のマルチプレクサが接続され、mを指定する信号に応答
する。ビットYp 及びYp+m がYワードの同じサブ・ワ
ードに含まれている場合、p番目の加算器ステージに接
続されたマルチプレクサは、このステージをXサブ・ワ
ードのビットXp+m に接続する。残りのビットに関して
行われる接続は、Xサブ・ワードのそれぞれが、符号付
き整数を表しているか、符号無し整数を表しているかに
よって決まる。Xサブ・ワードが符号付き整数を表して
いる場合、残りのビットは、適合するXサブ・ワードの
最上位ビットに接続される。そうでなければ、残りのビ
ットは、「0」に接続される。
まず、2進小数から成る定数による乗算は、加数の1つ
に対して実施される右シフトを伴う複数の加算に相当す
る。2進小数fと数rの積について考えてみることにす
る。i=0〜B−1として、fのビットがbi であれ
ば、積pは、(1)式のように書くことができる。
書くことの可能な、複数の総和に分解することが可能に
なる。
r、または、このタイプの分解における先行する演算の
結果に当たる整数である。例えば、2進数1.101の
r倍は、次の(3)式のように書くことが可能である。
び(5)式のように、2つの演算で実施することが可能
である。
合する命令を発生して、乗算を必要な演算に分解するこ
とが可能である。これらの演算は、それぞれ、オペラン
ドの一方がmビットだけ右にシフトしたレジスタの内容
である、2つのオペランドの和と表現して書くことが可
能である。従って、「mだけ右にシフトし、加算する」
形の命令を実施するALU を備えていることが有利であ
る。
して、単一マシン・サイクルで複数の小オペランドの加
算が行えるようにする、単純なハードウェアの修正に関
するものである。原理上、加算器は、それぞれ、加算器
の全幅より狭いサイズのワードに対する演算を行う、複
数の区分に分割することが可能である。各区分の和は、
加算器の幅以下でなければならない。各マシン・サイク
ル毎に、これらのより小さいワードに対して、複数の加
算演算を実施することが可能である。さらに、加算器を
従来の加算器として利用することも可能である。
任意のサイズのワードに分割される本発明の実施例は、
可能であり、さらに詳細に後述するが、本発明の好適な
実施例によれば、可能性のあるほんの少数のワード組み
合わせに分割することが可能な加算器が得られる。例え
ば、32ビットの加算器は、長さが1バイトまたは2バ
イトのワードを加算可能にする区分に分割することが望
ましい。下記の説明を単純化するため、ALU は、半分に
分割されるものと仮定する。この場合、各マシン・サイ
クル毎に、2つのハーフ・ワード加算または1つのフル
・ワードを実施することが可能である。
は、2つのNビット・オペランドのワード12及び14
を受諾する。i=0〜N−1の場合、第1のオペランド
のビットは、Xi で表され、第2のオペランドのビット
は、Yi で表される。オペランドは、コンピュータのCP
U におけるレジスタの2つに記憶されるのが普通であ
る。全幅モードで演算する場合、ALU 10は、mビット
だけ右にシフトしたxとyの2の補数和を有するNビッ
トの結果ワードとしての出力ワード16を発生する。AL
U 10の出力のビットは、下記の説明においてZiで表さ
れる。加算の結果は、一般に、CPU レジスタの1つに戻
される。
は、最下位から最上位まで番号が付けられている。すな
わち、X0 は、オペランドX の最下位ビットであり、X
N-1は、オペランドX の最上位ビットである。同じ規則
が、Y及びZワードにも用いられる。
ブ・ワードに分割することができる。単純化のため、本
発明の説明は、まず、各オペランドから部分オペランド
への単一分割に関連して行うことにする。この場合、X
オペランドの第1のqビットX0 〜Xq-1 は、Xワード
の最初の部分ワード18のビットであり、残りのビット
Xq 〜XN-1 は、Xワードの第2の部分オペランドのワ
ード17のビットである。Yオペランドは、同様に部分
ワード19及び20に分割される。このモードの場合、
ビットZ0 〜Zq-1 は、mビットだけシフトした部分オ
ペランド18と部分オペランド20の和のビットであ
り、ビットZq 〜Zq-1 は、それぞれ、mビットだけシ
フトした部分オペランドのワード17と部分オペランド
19の和のビットである。
の整数に制限される。従来のALU には、加算前に、Yオ
ペランドの2の補数を発生する機能が含まれている。さ
らに詳細に後述するように、本発明には、加算前に、X
オペランドに対する演算を行う新規のシフタが含まれて
いる。このシフタの導入によって、ALU の性能が劣化し
ないことを保証するため、シフト演算に固有の遅延は、
2の補数ハードウェアを通過する際にYオペランドが遭
遇する遅延程度でなければならない。実際、これによっ
て、mは上述の値に制限される。
ランドは、符号付き整数である。オーバ・フローまたは
アンダ・フローの場合、その結果は、それぞれ、問題と
なる長さの符号付き整数に関する最大値または最小値で
クランプされる。例えば、N=32で、ハーフ・ワード
・シフト(すなわち、16ビット)及び加算演算が実施
される場合、結果は、それぞれ、16進数の7FFF及
び8000でクランプされる。
ペランドの位置1つ分だけ右にシフトし、次に、シフト
したオペランドを対応するYオペランドに加算するALU
に関連して、本発明の解説を行うことにする。さらに説
明を単純化するため、ALU が、加算時に桁上げ伝播を利
用する複数の単一ビット加算器から構成されるものであ
ると仮定する。次に、2つのサブ・オペランドに分割す
ることが可能な、そして、加算前に、Xオペランドの位
置1つ分だけ右にシフトすることが可能な、本発明によ
るALU 30の一部に関するブロック図である図2を参照
されたい。2つのサブ・オペランド間の境界が、ALU 3
0のビット位置kに生じる。すなわち、ビットkは、1
つのサブ・オペランド集合の最上位ビットであり、ビッ
トk+1は、もう1つのサブ・オペランド集合の最下位
ビットである。ALU 30の加算セクションは、従来の桁
上げ伝播加算器と同様のやり方で、1ビット加算器ステ
ージのアレイから構成されている。典型的な加算手段と
しての単一ビット加算器が、31〜35で示されてい
る。本発明では、ステージの減結合によって、ALU が部
分ワードに並列加算を施すことが可能になる。各単一ビ
ット加算器は、2つのビット、すなわち、Xオペランド
から導き出されたビット及びYオペランドから導き出さ
れたビットと、i番目のステージに関した、Ci-1 で表
示される、加算器の先行ステージからの桁上げビットを
加算して、和ビット及び新しい桁上げビットを発生す
る。単一ビット加算器33及び32で示す2つのステー
ジは、それぞれ、部分オペランド18及び20の最上位
ビット、及び、部分オペランド17及び19の最下位ビ
ットの加算に用いられる、単一ビット加算器である。例
えば、単一ビット加算器33は、ビットCk-1 、Xk 、
及び、Yk を加算して、和ビットSk 及び桁上げビット
Ck を発生する。以下の説明において、Yp に対して機
能する加算器のステージは、加算器のp 番目のステージ
と呼ばれる。従来の加算器の場合、各ステージからの桁
上げビットは、各ステージの桁上げビット入力を、1ビ
ット加算器のアレイにおけるその前のステージの桁上げ
ビット出力に接続することによって、次のステージに伝
播する。
割する境界の直前のステージからの桁上げビットが、ブ
ロック回路37に接続される。ALU 30が単一ワードと
して扱われるレジスタの全内容であるNビットオ・ペラ
ンドのワード12及び14に対して演算を施す従来の加
算器として用いられる場合、ブロック回路37は、単一
ビット加算器33の桁上げ出力を単一ビット加算器32
の桁上げ入力に接続する。ALU 30が、各レジスタのビ
ットkとk+1の間の部分ワード境界に関して2つの並
列加算を実施するために利用される場合、ブロック回路
37は、単一ビット加算器33からの桁上げビットを、
加算時に強制的に0にする。これは、境界信号Mk によ
って制御される。他の全ての単一ビット加算器の桁上げ
出力は、ALU 30の残りのステージにおいて、従来のや
り方で接続される。従って、桁上げビットは、特定の部
分オペランドに対する演算を行うALU 30の各セクショ
ン内において、従来のやり方で伝播する。各加算器ステ
ージからの和ビットは、Zk で表示された出力ポートの
対応するビットに接続される。
ドの加算が行われると仮定したものであった。ブロック
回路37は、加算器がブロック回路の境界に関して副加
算器に分割される加算時に、桁上げビットを0に置き換
える。加算器が、加算器が同様に分割される2の補数減
算にも利用される場合、桁上げビットは、0ではなく、
強制的に1にしなければならない。図2に示すブロック
回路37は、「0」または「1」の値を有する入力Fを
供給することによって、加算と減算の両方を実施する。
ブロック回路37において、境界が活性状態の場合、F
の値が、次のステージに送られる値である。境界が、不
活性状態の場合、ブロック回路37は、桁上げビットC
k を次のステージに伝送するだけである。
ロー信号は、オペランドの最上位ビット及び結果の最上
位ビットから計算される。符号無しオーバ・フローは、
オペランドの最上位ビットに対して演算を行う最上位ビ
ット加算器からの桁上げビットから計算される。この特
徴を部分オペランドのそれぞれについて実施すべき場
合、各部分オペランドの加算によるオーバ・フロー信号
は、適合するオーバ・フロー回路に接続される。本発明
の実施例の1つでは、オーバ・フロー信号には、OR演
算が施され、結果信号は、オーバ・フローの検出に利用
される。このビットは、トラップのトリガに利用するこ
ともできるし、あるいは、単一ビット・レジスタの内容
とのOR演算が可能である。後者の場合、プログラムは
レジスタの内容をチェックし、レジスタに行った最終チ
ェック以降の演算によって、オーバ・フローが生じたか
否かを確認する。
レジスタの内容を右に位置1つ分だけシフトさせるよう
に設計されている。これは、Xオペランドのビットを適
正な単一ビット加算器ステージに接続する2対1マルチ
プレクサによって、信号mに応答して実施される。典型
的な多重化手段としてのマルチプレクサが、図2の41
〜45に示されている。マルチプレクサ制御信号が真の
場合、Xp は、ステージ(p−1)に関する単一ビット
加算器に接続される。制御入力が偽の場合、ビットはス
テージpに接続される。
いる場合、各オペランドの最上位ビットは、符号ビット
であるため、その新しい位置にコピーするだけでなく、
そのもとの位置で複製しなければならない。従って、2
つのサブ・ワードの境界におけるマルチプレクサは、サ
ブ・オペランドの内部にだけしか存在し得ないX ビット
に接続されたマルチプレクサとは異なっていなければな
らない。マルチプレクサ43は、こうしたマルチプレク
サである。mが真であって、Xレジスタが、ステージX
k がオペランドの最上位ビットになるように区分化され
ている場合、マルチプレクサ43は、Xk をステージk
に接続する。Xレジスタがこのように区分化されていな
い場合、すなわち、Mk が偽の場合には、マルチプレク
サ43は、他のマルチプレクサと同様に動作する。
ドの境界におけるステージの位置は、そのビットがMp
で表示されるマスクによって指定される。ビットMp
は、各部分オペランドの最上位ビットの位置を指定す
る。以下の説明において、このマスクは、境界マスクと
呼ぶことにする。マスクのビットは、ALU のレジスタに
記憶しておくこともできるし、あるいは、加算器が配置
されたプロセッサの命令復号化回路要素によって実行さ
れている命令から直接発生させることも可能である。
用して、単一ビット加算器から構成された加算器に関連
して説明してきたが、当業者には明らかなように、本発
明の教示は、多種多様な加算器構成に適用することが可
能である。加算器を副加算器に分割することによって、
可能性のある各サブ・オペランドの最上位ビットが、副
加算器の境界上に位置するようにすることが可能な任意
の加算器構成は、本発明において機能するように構成す
ることが可能である。加算器は、問題となる副加算器に
区分化される場合、副加算器からの桁上げを中断する回
路を導入することによって、変更することが可能であ
る。
くなるので、桁上げ先見アーキテクチャが利用される。
桁上げ先見加算器の場合、桁上げ発生回路要素は、加算
器の各ビットに対応する伝播信号及び発生信号を送り出
す。これらの信号を上述の桁上げビットと同様に利用す
ることによって、加算器を並列サブ・ワード加算器に分
割できるようにすることが可能である。ステージkがサ
ブ・ワードの結果の最上位ビットに演算を施すように、
加算器を分割すべき場合について考えてみることにす
る。図2に示すブロック回路37のようなブロック回路
を桁上げ発生論理回路に挿入することによって、実施さ
れている演算のタイプ、すなわち、加算または減算に基
づいて、伝播ビット及び発生ビットを強制的に適合する
値にすることが可能になる。加算器が、ステージkにお
いて分割されないワードに対して用いられている場合、
ブロック回路は、ステージkに対応する伝播及び発生ビ
ットの値を変更しない。
ドを位置1つ分だけ右にシフトするように設計されてい
る。しかし、以上の説明から明らかなように、同じ原理
を利用して、任意の量m<μだけXオペランドを右にシ
フトさせるALU を提供することも可能である。この場
合、41〜45に示す2対1マルチプレクサの代わり
に、(μ+1)対1マルチプレクサが用いられる。信号
m は、(μ+1)の可能性のある位置のうちどの位置が
指定されているかを指定することができなければならな
い。加算器のステージpは、オペランドの内部ビットに
対する演算だけしか行うことができない場合、それに接
続されたマルチプレクサは、ステージpをXp+m に接続
する。しかし、ステージpが、可能性のあるサブ・ワー
ドの境界のmステージ内にある場合、ステージpに関連
したマルチプレクサは、シフト信号mだけでなく、マス
ク・ビットも検査しなければならない。マスク・ビット
が、境界がステージkにおいて活性状態にある、すなわ
ち、Xk がサブ・ワードの最上位ビットであることを表
している場合について、考えてみることにする。(k−
m) <p<kの場合、ステージpに関連したマルチプレ
クサは、Xk をステージpの加算器にコピーしなければ
ならない。留意すべきは、Xk は、問題となるマルチプ
レクサのそれぞれにおける入力の1つに接続されるとい
うことである。
接続には、図2に示すゲート49のようなゲートが含ま
れていなければならない。このゲートは、境界が活性状
態にある場合、境界を横切るデータの伝播をブロックす
る。すなわち、加算器ステージp が入力ラインXq に接
続されている場合、この接続には、Mkがp〜qの任意
のkについて真の場合、接続を遮断するゲートが含まれ
ていなければならない。
49のようなブロック・ゲートが必要になるが、マルチ
プレクサ43は、他のマルチプレクサ(例えば、41、
42、44、及び、45)と同じマルチプレクサによっ
て構成することが可能である。Xが符号付き整数の場合
には、Mのμビットをマルチプレクサ43に入力して、
他のマルチプレクサと異なるようにしなければならな
い。この場合、演算モードによって不要になるので、ゲ
ート49のようなブロック・ゲートは省略することが可
能である。
がある。丸め誤差は、1がXサブ・ワードからシフト・
オフされる場合に生じる。上述の本発明の実施例は、切
り捨てによって結果を丸める。切り捨ては、整数の除算
結果の丸めに利用することが可能であるが、他の形態の
丸めによって阻止される可能性のある、望ましくない問
題を生じる可能性がある。例えば、ワードの集合に除算
が施されており、集合の平均値が重要である場合には、
切り捨てによって、エラーが生じることになる。切り捨
てによる丸めは、全ての値が、次に小さい整数に丸めら
れるので、平均値のシフトを生じることになる。
理回路を利用して、このタイプのバイアスが阻止され
る。奇数丸めシステムでは、右シフトによって丸め誤差
が生じる場合、結果は最寄りの奇数整数に丸められる。
丸め以前の答が正しければ、変化は生じない。1が結果
からシフト・オフされる毎に、丸め誤差は生じる。これ
は、シフト前のmの最下位ビットに少なくとも1つの
「1」が含まれている場合に生じる。ここで、mは、シ
フトされるビット数である。奇数丸めシステムのでは、
「1」がワードからシフト・オフされる場合、結果の最
下位ビットは、「1」にセットされる。シフト・アウト
される全てのビットが「0」の場合、結果は、正しかっ
たことになり、結果の最下位ビットは変更されない。
たはサブ・ワードの最下位ビットに対して演算を行うこ
とができる場合、ステージpに接続されたマルチプレク
サの代わりに、図3に200で示されたマルチプレクサ
構成を用いることによって、本発明に奇数丸めシステム
を含めることが可能である。この構成には、丸め信号、
シフト信号m、及び、マスク・ビットMによって制御さ
れる(2μ+1)対1マルチプレクサ202が含まれて
いる。マルチプレクサ202に対する入力は、2つのグ
ループに分割することができる。グループ221は、ス
テージpがサブ・ワードの最下位ビットに対する演算を
行い、丸め信号Rが丸めを実施すべきであると指示して
いる場合に、用いられる。この場合、ステージpは、グ
ループ221のm番目の入力を選択することによって、
値(Xp OR Xp+1 OR...Xp+m )を備える信号
に接続される。グループ221のm番目の入力は、Xp
〜Xp+m の入力を備えたOR回路に接続される。典型的
なOR回路が、205〜207で示されている。丸めを
実施すべきでない場合、ステージpは、グループ220
のm番目の入力に接続される。この後者のモードの場
合、マルチプレクサ構成は、サブ・ワードの内部ビット
に対する演算だけしかできないステージに接続された他
の(μ+1)対1マルチプレクサと同様の働きをする。
が均等に分布している場合、この形式の丸めによって得
られる平均誤差がゼロになるのは明らかである。留意す
べきは、偶数丸めシステムも、丸めにおけるバイアスを
阻止するということである。偶数丸めシステムでは、丸
め誤差が生じ、丸め前の結果が奇数の場合には、その結
果が、最寄りの偶数の整数に丸められる。しかし、偶数
丸め案の実施に必要なハードウェアは、上述のものより
かなり複雑になり、従って、奇数丸めシステムが望まし
い。
算または2つのハーフ・ワードに対する並列演算を可能
にするが、当該技術の熟練者には明らかなように、上記
技法を利用して、サブ・オペランドの境界及び数の両方
または一方が上述のものとは異なる実施例を実施するこ
とが可能である。サブ・オペランドの数に対する唯一の
制限は、サブ・オペランドのビットの和が、全幅モード
で演算を行うALU の幅を超えてはならないということで
ある。同様に、サブ・オペランドの境界は、原理的に、
対応するマスク・ビットをセットすることによって、AL
U の任意の2つのビット間にセットすることが可能であ
る。
る各サブ・ワードを2m で割った値とYワードにおける
対応するサブ・ワードの和の計算に関連して行ってきた
が、当業者には明らかなように、本発明は、Xワードに
おける各サブ・ワードを2mで割った値とYワードにお
ける対応するサブ・ワードの差を求めることも可能であ
る。上述のように、大部分のALU は、Y入力をその2の
補数に置き換えるための回路要素を提供する。従って、
問題となる差は、Yオペランドに対してこの従来の回路
要素を利用して計算することができる。
明してきたが、当業者には明らかなように、非区分化デ
ータ・ワードに対する演算を行う場合にも、利点があ
る。この場合、本発明によれば、単一命令に応答して、
単一マシン・サイクルで除算及び加算を実施することが
可能になる。
施される各種演算のトリガ手段としての命令に関連して
行ってきたが、当業者には明らかなように、本発明によ
る演算は、記憶されたコンピュータ・プログラムの命令
によって発生するのではない、電気信号によってトリガ
することも可能である。従って、請求項において用いら
れる場合の「命令」という用語には、他の形態の信号に
よってトリガされる演算も含まれるものとする。さら
に、当業者には明らかなように、本発明は、コンピュー
タの一部ではない回路要素にも利用することが可能であ
る。
面から本発明に対する各種修正が明らかになるであろ
う。従って、本発明は、特許請求の範囲によってのみ制
限されるものとする。
が、ここで各実施例の理解を容易にするために、各実施
例を要約して、以下に列挙する。
位ビットであり、ZN-1 が最上位ビットであるとした場
合、ビットXiを有するXワード[12]及びビットY
i を有するYワード[14]の内容に演算を施して、ビ
ットZi を有する結果ワード[16]を発生するための
装置[10、30]であって、前記X、Y、及び、結果
ワード[12、14、16]を複数のサブ・ワード[1
7、19、21、22]に区分化し、前記Y及び結果ワ
ードのサブ・ワードの1つが前記Xワード[12]の各
サブ・ワードに対応するようにするための手段[37]
と、mを整数とした場合、第1の命令に応答して、Xワ
ードの各Xサブ・ワードを2m で割った値と対応するY
ワードのYサブ・ワードの合計を発生し、その結果によ
って、前記結果ワードの前記対応するサブ・ワードが決
まるようにするための手段[31〜35、41〜45]
から構成される論理演算装置である。
m で割った前記X ワード[12]の各サブ・ワードと前
記Yワード[14]の対応するサブ・ワードの差を発生
し、その結果によって、前記結果ワード[16]の前記
対応するサブ・ワードが決まるようにするための手段
[31〜35、41〜45]が設けられていることを特
徴とする前記1に記載の論理演算装置「10、30」で
ある。
生じた場合、前記Xワード[12]の各前記サブ・ワー
ドを割る結果が、次に高位の、奇数の整数に丸められる
ことを特徴とする前記1に記載の論理演算装置「10、
30」である。
るための多重化手段「41〜45」と、前記X及びYワ
ード[12、14]から導き出されるビットを加算する
ための加算手段[31〜35]が設けられていること
と、前記加算手段が、それぞれ、前記Yワードから導き
出されるビットを受信し、Yp から導き出される前記ビ
ットを受信するものがp番目のY入力手段と称される、
複数のY入力手段と、それぞれ、前記Xワード[12]
から導き出されるビットを受信し、各前記Y入力手段に
対応するものが1つ含まれており、p番目のY入力手段
に対応するものは、p番目のX入力手段と称される、複
数のX入力手段と、それぞれ、前記X入力手段で受信し
た1つ以上のビットと前記Y 入力手段で受信した対応す
るビットを加算するための手段、及び、直列に接続され
た1つの加算ステージから次の加算ステージに桁上げビ
ットを伝播するための手段からから構成され、Yp に演
算を施すものが、p番目の加算ステージと称される、直
列に接続された複数の加算ステージとから構成されるこ
とと、前記区分化手段が、前記加算ステージで、前記X
ワード[12]の異なるサブ・ワードのビットに対する
演算が行われる場合、強制的に、前記桁上げビットを実
施される演算によって求められる値にする手段[37]
から構成されることと、前記多重化手段が、複数の多重
化回路[41〜45]から構成され、各前記加算ステー
ジに対して、前記多重化回路の1つが接続されており、
Yp 及びYp+m が、前記Yワード[14]の同じ前記サ
ブ・ワードに含まれている場合、前記p番目の加算ステ
ージに接続された多重化回路が、前記加算ステージをX
p+m に接続することを特徴とする前記1に記載の論理演
算装置「10、30」てある。
[14]の異なる前記サブワードに含まれている場合、
前記p番目の加算ステージに接続された前記多重化回路
[43]によって、前記Xサブ・ワードの1つの最上位
ビットが前記p番目の加算ステージに接続されることを
特徴とする前記4に記載の論理演算装置[10、30]
である。
4]の異なる前記サブワードに含まれている場合、前記
p番目の加算ステージに接続された前記多重化回路[4
3]によって、値0を有する信号が前記p番目の加算ス
テージに接続されることを特徴とする前記4に記載の論
理演算装置[10、30]である。
R...Xp+m )を有する信号を発生し、Yp が前記サ
ブ・ワードの1つの最下位ビットである場合、前記信号
を前記p番目の加算ステージに接続するための手段が、
設けられていることを特徴とする前記4に記載の論理演
算装置[10、30]である。
に、前記桁上げビットが、前記求められた値にされる前
は、「1」であったことを示す信号を発生する手段が設
けられていることを特徴とする前記4に記載の論理演算
装置[10、30]である。
るための記憶セルが設けられていることを特徴とする前
記4に記載の論理演算装置[10、30]である。
下位ビットであり、ZN-1 が最上位ビットであるとした
場合、ビットXi を有するXワード[12]及びビット
Yiを有するYワード[14]の内容に演算を施して、
ビットZi を有する結果ワード[16]を発生するため
の装置[10、30]であって、mを整数とした場合、
第1の命令に応答して、前記Xワード[12]を2m で
割った値とYワード[14]の合計を発生するための手
段[31〜35、41〜45]と、前記加算の結果から
前記結果ワード[16]を発生するための手段から構成
される論理演算装置[10、30]である。
記X ワード[12]を2m で割った値とYワード[1
4]の差を発生するための手段[31〜35]が設けら
れていることと、その結果が、前記結果ワードの前記対
応するサブ・ワードに納められることを特徴とする前記
10に記載の論理演算装置[10、30]である。
が生じた場合、前記Xワード[12]を割る結果が、次
に高位の、奇数の整数に丸められることを特徴とする前
記10に記載の論理演算装置「10、30」である。
送るための多重化手段「41〜45」と、前記X及びY
ワード[12、14]から導き出されるビットを加算す
るための加算手段が設けられていることと、前記加算手
段が、それぞれ、前記Yワードから導き出されるビット
を受信し、Yp から導き出される前記ビットを受信する
ものがp番目のY入力手段と称される、複数のY入力手
段と、それぞれ、前記Xワード[12]から導き出され
るビットを受信し、各前記Y入力手段に対応するものが
1つ含まれており、p番目のY入力手段に対応するもの
は、p番目のX入力手段と称される、複数のX入力手段
と、それぞれ、前記X入力手段で受信した1つ以上のビ
ットと前記Y入力手段で受信した対応するビットを加算
するための手段、及び、直列に接続された1つの加算ス
テージから次の加算ステージに桁上げビットを伝播する
ための手段からから構成され、Yp に演算を施すもの
が、p番目の加算ステージと称される、直列に接続され
た複数の加算ステージと「31〜35」から構成される
ことと、前記多重化手段が、複数の多重化回路[41〜
45]から構成され、各前記加算ステージに対して、前
記多重化回路の1つが接続されており、Yp+m <Nの場
合、前記p番目の加算ステージに接続された前記多重化
回路が、前記加算ステージをXp+m に接続することを特
徴とする前記10に記載の論理演算装置「10、30」
である。
p番目の加算ステージに接続された前記多重化回路[4
3]が、前記加算ステージを論理値0の信号に接続する
ことを特徴とする前記13に記載の論理演算装置「1
0、30」である。
p番目の加算ステージに接続された前記多重化回路[4
3]が、前記加算ステージをXN-1 に接続することを特
徴とする前記13に記載の論理演算装置「10、30」
である。
R...Xm )を有する信号を発生し、前記信号を前記
0番目加算ステージに接続するための手段[200]が
設けられていることを特徴とする前記13に記載の論理
演算装置[10、30]である。
Xi(i=0〜N−1) を有するXワードとビットYi を
有するYワードと結果ワードを複数のサブワードに区分
化し、Yワードと結果ワードのサブワードを区分し、Y
ワードと結果ワードのサブワードの1つがXワードの各
サブワードに対応させ、第1の命令に応答してXワード
のXサブワードを2m (mは整数)で割った値を対応する
YワードのYサブワードの合計を発生し、その結果によ
って結果のワードの対応するサブワードを決めるように
したので、論理演算装置の幅よりも狭いワードを伴う複
数の演算処理を高効率で行うことができ、2進小数を含
む乗算に好適となる。
るALU が演算を行う方法を示すブロック図である。
算前に、Xオペランドにおいて位置1つ分だけ右にシフ
トさせることも可能な、本発明によるALU の一部に関す
るブロック図である。
るマルチプレクサ構成のブロック図である。
Claims (1)
- 【請求項1】 i=0〜N−1であり、Z0 が最下位ビ
ットであり、ZN −1が最上位ビットであるとした場
合、ビットXiを有するXワード[12]及びビットY
iを有するYワード[14]の内容に演算を施して、ビ
ットZiを有する結果ワード[16]を発生するための
装置[10、30]であって、前記X、Y、及び、結果
ワード[12、14、16]を複数のサブ・ワード[1
7、19、21、22]に区分化し、前記Y及び結果ワ
ードのサブ・ワードの1つが前記Xワード[12]の各
サブ・ワードに対応するようにするための手段[37]
と、mを整数とした場合、第1の命令に応答して、Xワ
ードの各Xサブ・ワードを2m で割った値と対応するY
ワードのYサブ・ワードの合計を発生し、その結果によ
って、前記結果ワードの前記対応するサブ・ワードが決
まるようにするための手段[31〜35、41〜45]
から構成される論理演算装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/158,646 US5390135A (en) | 1993-11-29 | 1993-11-29 | Parallel shift and add circuit and method |
| US158,646 | 1993-11-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07200261A true JPH07200261A (ja) | 1995-08-04 |
| JP3573808B2 JP3573808B2 (ja) | 2004-10-06 |
Family
ID=22569068
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31760994A Expired - Fee Related JP3573808B2 (ja) | 1993-11-29 | 1994-11-28 | 論理演算装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5390135A (ja) |
| EP (1) | EP0655677B1 (ja) |
| JP (1) | JP3573808B2 (ja) |
| DE (1) | DE69430838T2 (ja) |
Families Citing this family (58)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6016538A (en) * | 1993-11-30 | 2000-01-18 | Texas Instruments Incorporated | Method, apparatus and system forming the sum of data in plural equal sections of a single data word |
| US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
| JP3428741B2 (ja) * | 1994-02-14 | 2003-07-22 | 松下電器産業株式会社 | 演算装置とアドレス発生装置及びプログラム制御装置 |
| US6738793B2 (en) | 1994-12-01 | 2004-05-18 | Intel Corporation | Processor capable of executing packed shift operations |
| US6275834B1 (en) | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
| KR100329338B1 (ko) * | 1994-12-02 | 2002-07-18 | 피터 엔. 데트킨 | 복합피연산자의팩연산을수행하는마이크로프로세서 |
| US6381690B1 (en) * | 1995-08-01 | 2002-04-30 | Hewlett-Packard Company | Processor for performing subword permutations and combinations |
| US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
| US5953241A (en) * | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
| US6295599B1 (en) * | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
| US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
| US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
| US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
| US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
| KR100445542B1 (ko) * | 1995-09-01 | 2004-11-20 | 필립스 일렉트로닉스 노쓰 아메리카 코포레이션 | 프로세서의커스텀오퍼레이션들을위한방법및장치 |
| US5815421A (en) * | 1995-12-18 | 1998-09-29 | Intel Corporation | Method for transposing a two-dimensional array |
| US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
| JP3356613B2 (ja) * | 1996-02-14 | 2002-12-16 | 日本電気株式会社 | 加算方法および加算器 |
| US6092094A (en) * | 1996-04-17 | 2000-07-18 | Advanced Micro Devices, Inc. | Execute unit configured to selectably interpret an operand as multiple operands or as a single operand |
| US5841683A (en) * | 1996-09-20 | 1998-11-24 | International Business Machines Corporation | Least significant bit and guard bit extractor |
| GB2317466B (en) * | 1996-09-23 | 2000-11-08 | Advanced Risc Mach Ltd | Data processing condition code flags |
| US7392275B2 (en) * | 1998-03-31 | 2008-06-24 | Intel Corporation | Method and apparatus for performing efficient transformations with horizontal addition and subtraction |
| US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
| US7395302B2 (en) | 1998-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing horizontal addition and subtraction |
| US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
| US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
| US6211892B1 (en) * | 1998-03-31 | 2001-04-03 | Intel Corporation | System and method for performing an intra-add operation |
| US6230257B1 (en) | 1998-03-31 | 2001-05-08 | Intel Corporation | Method and apparatus for staggering execution of a single packed data instruction using the same circuit |
| US6539061B1 (en) * | 1998-09-16 | 2003-03-25 | Texas Instruments Incorporated | Efficient method for decompressing difference coded signals |
| RU2145113C1 (ru) * | 1998-10-23 | 2000-01-27 | Варламов Олег Олегович | Способ суммирования чисел |
| TW514822B (en) * | 1999-05-06 | 2002-12-21 | Ind Tech Res Inst | Low power consumption mathematic apparatus and method |
| US6449629B1 (en) * | 1999-05-12 | 2002-09-10 | Agere Systems Guardian Corp. | Three input split-adder |
| JP2002063025A (ja) * | 2000-08-18 | 2002-02-28 | Fujitsu Ltd | 可変長データ処理用プロセッサ |
| US6834337B1 (en) | 2000-09-29 | 2004-12-21 | International Business Machines Corporation | System and method for enabling multiple signed independent data elements per register |
| US7039906B1 (en) | 2000-09-29 | 2006-05-02 | International Business Machines Corporation | Compiler for enabling multiple signed independent data elements per register |
| GB0024312D0 (en) * | 2000-10-04 | 2000-11-15 | Advanced Risc Mach Ltd | Single instruction multiple data processing |
| US6748411B1 (en) * | 2000-11-20 | 2004-06-08 | Agere Systems Inc. | Hierarchical carry-select multiple-input split adder |
| US6959316B2 (en) * | 2001-02-01 | 2005-10-25 | Nokia Mobile Phones Limited | Dynamically configurable processor |
| US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
| US20030037085A1 (en) * | 2001-08-20 | 2003-02-20 | Sandbote Sam B. | Field processing unit |
| US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
| US7624138B2 (en) | 2001-10-29 | 2009-11-24 | Intel Corporation | Method and apparatus for efficient integer transform |
| US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
| US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
| US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
| US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
| US7739319B2 (en) * | 2001-10-29 | 2010-06-15 | Intel Corporation | Method and apparatus for parallel table lookup using SIMD instructions |
| US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
| US7219118B2 (en) * | 2001-11-06 | 2007-05-15 | Broadcom Corporation | SIMD addition circuit |
| US7236207B2 (en) * | 2002-01-22 | 2007-06-26 | Broadcom Corporation | System and method of transmission and reception of progressive content with isolated fields for conversion to interlaced display |
| US20030140076A1 (en) * | 2002-01-22 | 2003-07-24 | International Business Machines Corporation | Interleaved arithmetic logic units |
| US7047383B2 (en) * | 2002-07-11 | 2006-05-16 | Intel Corporation | Byte swap operation for a 64 bit operand |
| GB2411974C (en) * | 2003-12-09 | 2009-09-23 | Advanced Risc Mach Ltd | Data shift operations |
| US7272804B2 (en) * | 2004-10-14 | 2007-09-18 | Broadcom Corporation | Generation of RTL to carry out parallel arithmetic operations |
| US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
| WO2010019169A1 (en) * | 2008-08-15 | 2010-02-18 | Lsi Corporation | Rom list-decoding of near codewords |
| US8825727B2 (en) * | 2012-03-15 | 2014-09-02 | International Business Machines Corporation | Software-hardware adder |
| DE102023208612A1 (de) * | 2023-09-06 | 2025-03-06 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum fehlertoleranten Betrieb einer Verarbeitungseinheit und einer Ver-arbeitungsanordnung, Schaltungsanordnung und Recheneinheit |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3987291A (en) * | 1975-05-01 | 1976-10-19 | International Business Machines Corporation | Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location |
| JPS5943442A (ja) * | 1982-09-02 | 1984-03-10 | Matsushita Electric Ind Co Ltd | デイジタル乗算器 |
| US4707800A (en) * | 1985-03-04 | 1987-11-17 | Raytheon Company | Adder/substractor for variable length numbers |
| JPS61239327A (ja) * | 1985-04-16 | 1986-10-24 | Nec Corp | オ−バフロ−検出方式 |
| US4914617A (en) * | 1987-06-26 | 1990-04-03 | International Business Machines Corporation | High performance parallel binary byte adder |
| US5189636A (en) * | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
| US5047975A (en) * | 1987-11-16 | 1991-09-10 | Intel Corporation | Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode |
| JPH05503178A (ja) * | 1990-11-09 | 1993-05-27 | アダプティブ・ソリューションズ・インコーポレーテッド | 偏りのないビット廃棄装置および方法 |
-
1993
- 1993-11-29 US US08/158,646 patent/US5390135A/en not_active Expired - Lifetime
-
1994
- 1994-08-02 DE DE69430838T patent/DE69430838T2/de not_active Expired - Fee Related
- 1994-08-02 EP EP94112052A patent/EP0655677B1/en not_active Expired - Lifetime
- 1994-11-28 JP JP31760994A patent/JP3573808B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0655677B1 (en) | 2002-06-19 |
| JP3573808B2 (ja) | 2004-10-06 |
| DE69430838D1 (de) | 2002-07-25 |
| EP0655677A1 (en) | 1995-05-31 |
| DE69430838T2 (de) | 2002-12-05 |
| US5390135A (en) | 1995-02-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3573808B2 (ja) | 論理演算装置 | |
| JP3729881B2 (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
| US6009451A (en) | Method for generating barrel shifter result flags directly from input data | |
| EP0847551B1 (en) | A set of instructions for operating on packed data | |
| US8725787B2 (en) | Processor for performing multiply-add operations on packed data | |
| US5446651A (en) | Split multiply operation | |
| US5448509A (en) | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations | |
| US6032170A (en) | Long instruction word controlling plural independent processor operations | |
| US5696959A (en) | Memory store from a selected one of a register pair conditional upon the state of a selected status bit | |
| US5644522A (en) | Method, apparatus and system for multiply rounding using redundant coded multiply result | |
| EP0654733B1 (en) | Parallel data processing in a single processor | |
| US5640578A (en) | Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section | |
| US5995747A (en) | Three input arithmetic logic unit capable of performing all possible three operand boolean operations with shifter and/or mask generator | |
| US6078941A (en) | Computational structure having multiple stages wherein each stage includes a pair of adders and a multiplexing circuit capable of operating in parallel | |
| US5961635A (en) | Three input arithmetic logic unit with barrel rotator and mask generator | |
| US6016538A (en) | Method, apparatus and system forming the sum of data in plural equal sections of a single data word | |
| US4168530A (en) | Multiplication circuit using column compression | |
| US6026484A (en) | Data processing apparatus, system and method for if, then, else operation using write priority | |
| EP3921942B1 (en) | Encoding special value in anchored-data element | |
| US5479166A (en) | Huffman decoding method, circuit and system employing conditional subtraction for conversion of negative numbers | |
| GB2262637A (en) | Padding scheme for optimized multiplication. | |
| US5689695A (en) | Conditional processor operation based upon result of two consecutive prior processor operations | |
| WO2008077803A1 (en) | Simd processor with reduction unit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040130 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040220 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
| 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: 20040622 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
| 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: 20080709 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |