JPH07210368A - 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法 - Google Patents
算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法Info
- Publication number
- JPH07210368A JPH07210368A JP6303286A JP30328694A JPH07210368A JP H07210368 A JPH07210368 A JP H07210368A JP 6303286 A JP6303286 A JP 6303286A JP 30328694 A JP30328694 A JP 30328694A JP H07210368 A JPH07210368 A JP H07210368A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- overflow
- result
- logic
- operand
- 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/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
- 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
- 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/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Abstract
ータシステムを提供する。 【構成】 第1のnヒ゛ット符号なし2進数オヘ゜ラント゛と第2のnヒ゛
ット符号付き2進数オヘ゜ラント゛とについて第1の算術演算を行
ってnヒ゛ット符号なし2進数結果を生成する。算術論理演算
装置内のO.F.検出論理回路が算術演算に起因する正また
は負のO.F.を検出する。正O.F.が存在する場合、飽和論
理が2の補数加算器の出力を値2n-1に置換し、負O.F.が
存在する場合、同出力を値0に置換する。代替的には第1
および第2のnヒ゛ット符号付き2進数オヘ゜ラント゛について第1の
算術演算を行ってnヒ゛ット正符号付き2進数結果を生成す
る。例えば算術演算は2の補数加算器が行う加算または
減算である。代替的には算術論理演算装置内のO.F.検出
論理回路が算術演算に起因する正または負のO.F.を検出
する。正のO.F.が存在する場合、飽和論理が2の補数加
算器の出力を値2n-1-1に置換し、負のO.F.が存在する場
合、同出力を値0に置換する。
Description
生じる正および負のオーバーフローの取り扱いをハード
ウェアにより実施することに関する。
は、正のオーバーフローまたは負のオーバーフローが生
じる可能性がある。例えば、算術論理演算装置(AL
U)により2つのnビット整数が加算される場合には、
n+1ビットの結果、即ち、nビットの和と1ビットの
桁上げ出力とが生成される。符号なし加算を用いた演算
の場合、桁上げ出力がゼロのときには、その和が結果全
体を与えるものとなる。しかし、桁上げ出力が1のとき
には「オーバーフロー」が生じる。これは、その結果を
表現するにはnビットではなくn+1ビットが必要とな
るからである。また、符号付き数の場合には、2つのオ
ペランドが同じ符号を有し、その演算結果が異なる符号
を有するときにオーバーフローが生じる。従来、オーバ
ーフローは一般には、ソフトウェア例外ハンドラへのト
ラップにより取り扱われてきた。
出する必要がある場合には、ソフトウェアトラップハン
ドラを用いるのが許容し得る慣行となっている。しか
し、オーバーフローが頻繁に生じる場合には、ソフトウ
ェアトラップを用いたオーバーフローの取り扱いは、シ
ステム性能に悪影響を与え得るものとなる。この場合に
は、ソフトウェアトラップを用いるのではなく、各算術
命令の後のコードに別のインラインソフトウェア命令を
追加することができる。その追加のソフトウェア命令
は、オーバーフローをチェックし、オーバーフローが存
在する場合には、演算結果を調整するか、または一層多
くのビット有する精度でそのコードを再実行する。
て起こらない用途では、ソフトウェアトラップ処理をデ
ィセーブルにすることができ、この場合には、オーバー
フローをチェックするインラインソフトウェアは必要な
くなる。しかし、正および/または負のオーバーフロー
がかなり頻繁である場合には、ソフトウェアトラップま
たは追加インラインコードを用いることなく、それらオ
ーバーフローを効率的な態様で取り扱う方法を有してい
ることが望ましい。
よれば、正および負のオーバーフローを取り扱うコンピ
ュータシステムが提供される。結果を表現するために割
り当てられたビットにより表現可能な最大数よりも結果
が大きい場合に正のオーバーフローが生じる。また、結
果を表現するために割り当てられたビットにより表現可
能な最小数よりも結果が小さい場合に負のオーバーフロ
ーが生じる。第1の算術演算が、第1のnビット符号な
し2進数オペランドと第2のnビット符号付き2進数オ
ペランドとについて行われて、nビット符号なし2進数
結果が生成される。例えば、この算術演算は、2の補数
加算器(two's complement adder)により行われる加算で
ある。好適な実施例では、算術論理演算装置内のオーバ
ーフロー検出論理回路が、算術演算の結果として生じる
正のオーバーフローまたは負のオーバーフローを検出す
る。正のオーバーフローが存在する場合には、飽和論理
(saturation logic)が2の補数加算器の出力を値2n−
1に置き換える。また、負のオーバーフローが存在する
場合には、飽和論理が2の補数加算器の出力を値0に置
き換える。
ビット符号なし2進数オペランドの最上位ビットが1に
等しく、第2のnビット符号付き2進数オペランドの最
上位ビットが0に等しく、nビット符号なし2進数結果
の最上位ビットが0に等しい場合に、正のオーバーフロ
ーが存在すると判定する。また、オーバーフロー検出論
理回路は、第1のnビット符号なし2進数オペランドの
最上位ビットが0に等しく、第2のnビット符号付き2
進数オペランドの最上位ビットが1に等しく、nビット
符号なし2進数結果の最上位ビットが1に等しい場合
に、負のオーバーフローが存在すると判定する。
算については異なるオーバーフロー機構が実施されてい
る。例えば、2つのnビット符号付き2進数オペランド
について第2の算術演算が行われてnビット符号付き2
進数結果が生成される。この場合、算術論理演算装置内
のオーバーフロー検出論理回路は、その算術演算の結果
として生じる正のオーバーフローまたは負のオーバーフ
ローも検出する。第2の算術演算の結果として生じる正
のオーバーフローが存在する場合には、飽和論理が、n
ビット符号付き2進数結果に値2n-1−1を割り当て
る。また、第2の算術演算の結果として生じる負のオー
バーフローが存在する場合には、飽和論理は、nビット
符号付き2進数結果に値−2n-1を割り当てる。
ビット符号付き2進数オペランドの最上位ビットがとも
に0に等しく、nビット符号付き2進数結果の最上位ビ
ットが1に等しいとき、第2の算術演算に正のオーバー
フローが存在すると判定する。オーバーフロー検出論理
回路はまた、2つのnビット符号付き2進数オペランド
の最上位ビットがともに1に等しく、nビット符号付き
2進数結果の最上位ビットが0に等しい場合には、第2
の算術演算に負のオーバーフローが存在すると判定す
る。
しオペランドを用いた減算演算である。オーバーフロー
検出論理回路は、(n+1)ビット符号付き2進数中間結
果が負であるか否かを判定する。(n+1)ビット符号付
き2進数中間結果が負の場合には、飽和論理は、(n+
1)ビット符号付き2進数中間結果の2の(または1
の)補数演算を行って、最終的なnビット符号なし結果
を生成する。
フローの様々な取り扱い処理をオーバーライドして(ove
rride)、オーバーフローにかかわらず2の補数加算器の
出力を用いるようにすることができる。
符号付き2進数オペランドと第2のnビット符号付き2
進数オペランドとに関して第1の算術演算が行われて、
nビット正符号付き2進数結果が生成される。例えば、
この算術演算は、2の補数加算器により行われる加算ま
たは減算である。代替実施例では、算術論理演算装置内
のオーバーフロー検出論理回路が、算術演算の結果とし
て生じる正のオーバーフローまたは負のオーバーフロー
を検出する。正のオーバーフローが存在する場合には、
飽和論理が2の補数加算器の出力を値2n-1−1に置き
換える。また、負のオーバーフローが存在する場合に
は、飽和論理が2の補数加算器の出力を値0に置き換え
る。
ビット符号付き2進数オペランドの最上位ビットが0に
等しく、第2のnビット符号付き2進数オペランドの最
上位ビットが0に等しく、nビット正符号付き2進数結
果の最上位ビットが1に等しい場合に、正のオーバーフ
ローが存在すると判定する。オーバーフロー検出論理回
路はまた、nビット正符号付き2進数結果の最上位ビッ
トが1に等しく、第1のnビット符号付き2進数オペラ
ンドの最上位ビットと第2のnビット符号付き2進数オ
ペランドの最上位ビットとの何れか一方が1に等しい場
合に、負のオーバーフローが存在すると判定する。
加算器により受容される前にプリシフタ(pre-shifter)
がオペランドをシフトさせる場合にも拡張可能なもので
ある。この場合には、オーバーフロー検出論理回路は、
nビットの2の補数加算器により受容される前に第1の
nビット符号付きまたは符号なし2進数オペランドをプ
リシフタが左へシフトさせる結果として生じる正または
負のオーバーフローを更に検出する。
の演算を実施するコンピュータシステムで特に良好に働
くものである。この場合、第1の算術演算は、1つの算
術論理演算装置内で同時に行われる複数の並列演算のう
ちの1つである。
負のオーバーフローの発生がまれではないような計算を
行うコンピュータシステムの性能を向上させることが可
能となる。本発明をハードウェアで実施することによ
り、ソフトウェアオーバーフロートラップハンドラやイ
ンライン命令を用いることなく正および負のオーバーフ
ローを容易に取り扱うことができる。本発明はまた、正
および負のオーバーフローの取り扱いに関する融通性に
備えた簡単で効果的なハードウェア実施に備えるもので
ある。
ータパスを示す簡略ブロック図である。起こりつつある
演算のためのオペランド、および完了した演算の結果
は、汎用レジスタ25内に格納される。演算が行われる
と、汎用レジスタ25内の第1のレジスタ中に格納されて
いる第1のオペランドが第1のソースバス21上に置かれ
る。その演算にもう1つのオペランドが必要な場合に、
汎用レジスタ25内の第2のレジスタ中に格納されている
第2のオペランドが第2のソースバス22上に置かれる。
ス23上に置かれて、汎用レジスタ25内のレジスタにロー
ドされるか、または他の機能ユニットに送られる。演算
は、算術論理演算装置(ALU)26またはシフタ29によ
り行われる。プリシフタ27および補数演算回路(complem
ent circuitry)28は、オペランドがALU26により受容
される前にそれらオペランドを変更するのに使用するこ
とができる。例えば、減算演算の場合には、補数演算回
路28が使用されて、オペランドのうちの1つについてそ
のオペランドがALU26内の加算器に送られる前に2の
補数演算が行われる。本発明と同様に構成された単一演
算処理装置システムのアーキテクチャに関する一般的な
背景については、例えば、Ruby B. Leeの「Precision A
rchitecture」(IEEE Computer, Volume22, No.1, Janua
ry 1989, pp.78〜91)を参照のこと。
の結果として生じる正および負のオーバーフローをハー
ドウェアにより取り扱うことを考慮して、演算処理装置
内の演算実行データパスを如何に変更することができる
かを示すものである。下記のように、オーバーフロー信
号204を生成するための別の回路がプリシフタ27に付加
され、この回路はまた、オーバーフロー信号205を生成
するためにALU26に付加される。オーバーフロー信号
204,205は、飽和選択ブロック202により処理されて、飽
和選択信号206が生成される。代替的には、オーバーフ
ロー信号204は、ALU26により受容してオーバーフロ
ー信号205の生成に使用可能なものである。飽和選択信
号206に基づいて、飽和論理201は、ALU26からのAL
U結果207について演算を行ってオーバーフロー修正結
果208を生成する。
より行われる演算は、飽和算術を用いてオーバーフロー
を取り扱うものである。飽和算術では、結果は、「n」
個のビットに制限される。結果をnビットで表すことが
できない場合には、その結果はnビットで表現される値
にクリップされる(clip)。
ーは幾つかの方法の内の1つにより取り扱われる。どの
方法をとるかは、実行された命令による選択と現在行わ
れている演算そのものとによって決まる。
のnビット符号付き2の補数オペランドについて行われ
る算術演算に関するものであり、その算術演算は、nビ
ット符号付き2の補数結果を生成するものである。最大
のnビット符号付き2の補数は、値2n-1−1を有す
る。また、最小のnビット符号付き2の補数は、値−2
n -1を有する。この第1のオーバーフローオプションで
は、2n-1−1よりも大きい値(正のオーバーフロー)
を有する結果に値2n-1−1が割り当てられる。また、
−2n-1よりも小さい値(負のオーバーフロー)を有す
る結果には値−2n-1が割り当てられる。
のnビット符号付き2の補数と1つのnビット符号なし
2進数とについて行われる算術演算に関するものであ
り、この演算は、nビット符号なし結果を生成するもの
である。最大のnビット符号付き2の補数は、値2n-1
−1を有する。最小のnビット符号付き2の補数は、値
−2n-1を有する。最大のnビット符号なし2進数は、
値2n−1を有する。最小のnビット符号なし2進数
は、値0を有する。第2のオーバーフローオプションで
は、2n−1よりも大きい値(正のオーバーフロー)を
有する結果に値2n−1が割り当てられる。また、0よ
りも小さい値(負のオーバーフロー)を有する結果には
値0が割り当てられる。
のnビット符号なし2進数について行われる算術演算に
関するものである。最大のnビット符号なし2進数は値
2n−1を有する。最小のnビット符号なし2進数は値
0を有する。第3のオーバーフローオプションでは、モ
ジュール式ラップアラウンド(modular wra
p−around)算術が実施される。2n−1よりも
大きい値(正のオーバーフロー)を有する結果は、ラッ
プアラウンドされて、負のオーバーフローの量に基づき
0で始まる値が割り当てられる。例えば、2n−1を1
だけオーバーフローした結果には値0が割り当てられ、
2n−1を2だけオーバーフローした結果には値1が割
り当てられ、2n−1を3だけオーバーフローした結果
には値2が割り当てられる、といった具合である。0よ
りも小さい値(負のオーバーフロー)を有する結果は、
ラップアラウンドされて、オーバーフローの量に基づき
2n−1で始まる値が割り当てられる。例えば、0を1
だけ負にオーバーフローした結果には値2n−1が割り
当てられ、0を2だけ負にオーバーフローした結果には
値2n−2が割り当てられ、0を3だけ負にオーバーフ
ローした結果には値2n−3が割り当てられる、といっ
た具合である。第3のオーバーフローオプションはま
た、nビット符号付き2進数についても同様に良好に働
くことが当業者には理解されよう。
2n-1の範囲内の2つのnビット符号なし2進数につい
ての減算に関するものである。この減算により、(n+
1)ビットの符号付き2進数が生成され、そのうち、n
ビットは差のためのもの、1ビットは符号のためのもの
である。しかし、2つのnビット符号なし2進数の差の
絶対値は、0〜2n-1の範囲内のnビット符号なし数と
なる。この場合、負のオーバーフローは、結果の絶対値
をとることにより取り扱われる。これは、結果が負であ
る場合にはその結果が2の(または1の)補数値に置き
換えられる、ということを意味している。2つの符号な
し数の減算では、正のオーバーフローは起こり得ない。
の符号付きオペランドを扱うものであり、0〜2n-1−
1の範囲内の正の符号付き結果を生成する。
のオペランドの最上位ビット(符号ビット)(An)と、
第2のオペランドの最上位ビット(符号ビット)(Bn)
と、結果の最上位ビット(符号ビット)(Cn)とを検査
することにより実施される。第1のオーバーフローオプ
ションを用いた加算または減算では、各オペランドの符
号ビットがともに0に等しく、結果の符号ビットが1に
等しい場合に、正のオーバーフローが生じる。これは、
次の数1のように表すことができる。
1が割り当てられる。
を用いた加算では、各オペランドの符号ビットがともに
1に等しく、結果の符号ビットが0に等しい場合に、負
のオーバーフローが生じる。これは、次の数2のように
表すことができる。
が割り当てられる。
第1の(nビット符号なし2進数)オペランドの最上位
ビット(An)と、第2の(nビット符号付き2の補
数)オペランドの最上位ビット(Bn)と、(nビット符
号なし2進数)結果の最上位ビット(Cn)とを検査す
ることにより実施される。第2のオーバーフローオプシ
ョンを用いた加算または減算では、第2のオペランドの
符号ビットと結果の最上位ビットとが共に0に等しく、
第1のオペランドの最上位ビットが1に等しい場合に、
正のオーバーフローが生じる。これは、次の数3のよう
に表すことができる。
が割り当てられる。
を用いた加算または減算では、第2のオペランドの符号
ビットと結果の最上位ビットとが共に1に等しく、第1
のオペランドの最上位ビットが0に等しい場合に、負の
オーバーフローが生じる。これは、次の数4のように表
すことができる。
当てられる。
的なnビット2の補数加算器の演算により実施される。
出力に対する付加的な変更は不要である。
を行うことにより実施され、中間結果が負である場合に
は、2の(または1の)補数演算をその中間結果に対し
て行って最終的な結果を形成する。第4のオーバーフロ
ーオプションの場合のオーバーフローは、A−B=Cで
ある場合に次の数5により検出することができる。
AND Cn=1) 他の飽和オプションも本発明の実施例にしたがって利用
することが可能である。例えば、第5のオプションで
は、第1および第2のオペランドは−2n-1〜2n-1−1
の範囲内のnビット符号付き数となる。結果は、0〜2
n-1−1の範囲内の正のnビット符号付き数となる。両
方のオペランドが共に正であり、結果の最上位ビットが
1である場合に、正のオーバーフローが生じる。また、
オペランドの内の少なくとも1つが負であり結果の符号
が負である場合に、または、両方のオペランドが共に負
である場合に、負のオーバーフローが生じる。正のオー
バーフローを検出するために、次の数6に従う論理が用
いられる。
従う論理が用いられる。
1))OR(An=Bn=1) 第5のオーバーフローオプションでは、正のオーバーフ
ローが存在する場合には、結果は飽和して2n-1−1と
なる。また、負のオーバーフローが存在する場合には、
結果は飽和して0となる。
の好適な実施例は、プリシフタ27を使用した結果として
生じるオーバーフローもまた考慮している。図3ないし
図6は、本発明の好適実施例を実施する論理を示すもの
である。この論理は、加算と減算とシフトおよび加算(s
hift-and-add)とシフトおよび減算(shift-and subtrac
t)との算術演算についての実施を示している。
とするためにプリシフタ27に付加される論理を示すもの
である。好適実施例では、プリシフタ27は、第1のオペ
ランドがALU26に送られる前にその第1のオペランド
を左または右へ0、1、2、または3ビットだけシフト
することができる。図3の論理は、第1のオペランドの
ビットを左へ1、2、または3ビットだけシフトさせる
際にオーバーフローが発生したときを検出する。
出するプリシフタ27中の論理は、マルチプレクサ260
と、インバータ261と、論理NORゲート262と、論理N
ORゲート263と、論理NORゲート264とを含むもので
ある。プリシフタのオペランドの上位ビットは、論理N
ORゲート264の入力276に接続される。プリシフタのオ
ペランドの上位から2番目のビットは、インバータ261
の入力270と、論理NORゲート262の入力271と、論理
NORゲート263の入力273とに接続される。プリシフタ
のオペランドの上位から3番目のビットは、論理NOR
ゲート262の入力272と、論理NORゲート263の入力274
とに接続される。プリシフタのオペランドの上位から4
番目のビットは、論理NORゲート263の入力275に接続
される。マルチプレクサ260の入力269には論理1(VD
D)信号が接続される。
ったりまたは右へシフトされる演算の場合、ライン265
上のゼロシフト選択信号が起動されて、マルチプレクサ
260がライン269上の値を選択してその値が論理NORゲ
ート264に送られるようになる。プリシフタのオペラン
ドが左へ1ビットシフトされる演算の場合には、ライン
266上の1ビット左シフト選択信号が起動されて、マル
チプレクサ260がインバータ261からの値を選択してその
値が論理NORゲート264に送られるようになる。プリ
シフタのオペランドが左へ2ビットシフトされる演算の
場合には、ライン267上の2ビット左シフト選択信号が
起動されて、マルチプレクサ260が論理NORゲート262
からの値を選択してその値が論理NORゲート264に送
られるようになる。プリシフタのオペランドが左へ3ビ
ットシフトされる演算の場合には、ライン268上の3ビ
ット左シフト選択信号が起動されて、マルチプレクサ26
0が論理NORゲート263からの値を選択してその値が論
理NORゲート264に送られるようになる。ライン277上
の第1のプリシフタオーバーフロー信号277が論理1で
ある場合、これは、シフタの正の符号付きオーバーフロ
ーが発生したことを示している。
出するプリシフタ27中の論理は、マルチプレクサ280
と、インバータ281と、論理NANDゲート282と、論理
NANDゲート283と、論理NANDゲート284とを含む
ものである。プリシフタのオペランドの上位ビットは、
論理NANDゲート284の入力296に接続される。プリシ
フタのオペランドの上位から2番目のビットは、インバ
ータ281の入力290と、論理NANDゲート282の入力291
と、論理NANDゲート283の入力293とに接続される。
プリシフタのオペランドの上位から3番目のビットは、
論理NANDゲート282の入力292と論理NANDゲート
283の入力294とに接続される。プリシフタのオペランド
の上位から4番目のビットは、論理NANDゲート283
の入力295に接続される。マルチプレクサ280の入力289
には、論理0(接地)信号が接続される。
ったりまたは右へシフトされる演算の場合、ライン285
上のゼロシフト選択信号が起動されて、マルチプレクサ
280がライン289上の値を選択してその値が論理NAND
ゲート284に送られるようになる。プリシフタのオペラ
ンドが左へ1ビットシフトされる演算の場合には、ライ
ン286上の1ビット左シフト選択信号が起動されて、マ
ルチプレクサ280がインバータ281からの値を選択してそ
の値が論理NANDゲート284に送られるようになる。
プリシフタのオペランドが左へ2ビットシフトされる演
算の場合には、ライン287上の2ビット左シフト選択信
号が起動されて、マルチプレクサ280が論理NANDゲ
ート282からの値を選択してその値が論理NANDゲー
ト284に送られるようになる。プリシフタのオペランド
が左へ3ビットシフトされる演算の場合には、ライン28
8上の3ビット左シフト選択信号が起動されて、マルチ
プレクサ280が論理NANDゲート283からの値を選択し
てその値が論理NANDゲート284に送られるようにな
る。ライン297上の第2のプリシフタオーバーフロー信
号が論理0である場合、これは、シフタの負の符号付き
オーバーフローが発生したことを示している。
に示すプリシフタの論理による結果を考慮する、ALU
26内のオーバーフロー論理を示すものである。ALU26
内の加算器は、プリシフタ27からの第1の加算器オペラ
ンドと補数演算回路28からの第2の加算器オペランドと
を受け取る。
理は、インバータ211と、インバータ212と、インバータ
213と、論理NORゲート214と、論理NORゲート215
と、論理NORゲート216と、論理NANDゲート217
と、論理NANDゲート218と、論理NANDゲート219
と、論理ORゲート220と、論理ANDゲート221とを含
むものである。インバータ211の入力231には、第2の加
算器オペランドの上位ビットを反転させた値が置かれ
る。論理NANDゲート219の入力238には、第1の加算
器オペランドの上位ビットを反転させた値が置かれる。
論理NANDゲート219の入力239には、第2の加算器オ
ペランドの上位ビットを反転させた値が置かれる。論理
NORゲート216の入力240には、第1の加算器オペラン
ドの上位ビットを反転させた値が置かれる。論理NOR
ゲート216の入力241には、第2の加算器オペランドの上
位ビットを反転させた値が置かれる。
器結果の上位ビットの桁上げ出力を反転させた値が置か
れる。論理NANDゲート217の入力233には、加算器結
果の上位ビットの桁上げ出力を反転させた値が置かれ
る。論理NORゲート215の入力242には、ライン277か
らの第1のプリシフタオーバーフロー信号が置かれる。
論理NANDゲート218の入力243には、ライン297から
の第2のプリシフタオーバーフロー信号が置かれる。論
理ANDゲート221の入力234には、加算器結果の最上位
ビットから2番目のビットからの桁上げ出力の値が置か
れる。論理ANDゲート221の入力235には、ライン297
からの第2のプリシフタオーバーフロー信号が置かれ
る。論理ORゲート220の入力236には、ライン277から
の第1のプリシフタオーバーフロー信号が置かれる。論
理ORゲート220の入力237には、加算器結果の最上位ビ
ットから2番目のビットからの桁上げ出力の値が置かれ
る。
の計算には、加算器結果の最上位ビットからの桁上げ出
力ではなく、その加算器結果の最上位ビットから2番目
のビットからの桁上げ出力が用いられる。当業者には理
解されるように、基本的には、最上位ビットから2番目
のビットからの桁上げ出力と最上位ビットへの入力とを
用いて最上位ビットからの桁上げ出力に含まれる情報を
導出することができ、これにより、性能がわずかに増大
する。その理由は、最上位ビットからの桁上げ出力の計
算を待つ必要がないことにある。
の加算器オーバーフロー信号を生成する。ライン251上
の第1の加算器オーバーフロー信号は、符号付きオペラ
ンドと符号なしオペランドとについての演算の結果とし
て生じる正のオーバーフローが存在する場合に論理1と
なる。ライン252上の第2の加算器オーバーフロー信号
は、符号付きオペランドと符号なしオペランドとについ
ての演算の結果として生じる負のオーバーフローが存在
する場合に論理0となる。ライン253上の第3の加算器
オーバーフロー信号は、2つの符号付きオペランドにつ
いての演算の結果として生じる正のオーバーフローが存
在する場合に論理0となる。ライン254上の第4の加算
器オーバーフロー信号は、2つの符号付きオペランドに
ついての演算の結果として生じる負のオーバーフローが
存在する場合に論理1となる。
ック図である。飽和選択論理202は、マルチプレクサ300
と、マルチプレクサ310と、マルチプレクサ320と、マル
チプレクサ330と、インバータ326と、インバータ336と
を含むものである。この飽和選択論理202は、図示のよ
うに、ライン251,252,253,254上のそれぞれの第1、第
2、第3、第4の加算器オーバーフロー信号を受け取
る。マルチプレクサ300の入力ライン304には論理0(接
地)信号が置かれる。マルチプレクサ310の入力ライン3
14には論理1(VDD)信号が置かれる。マルチプレク
サ320の入力ライン324には論理0(接地)信号が置かれ
る。マルチプレクサ330の入力ライン334には論理1(V
DD)信号が置かれる。
の選択信号により制御される。飽和オーバーフロー機構
が2つの符号付きオペランドについて選択されるような
演算となるよう演算が選択される場合には、ライン301
上の第1の選択信号が論理1にセットされ、マルチプレ
クサ300,310,320,330がそれぞれの上側の入力を選択し
てそれぞれの出力へ送る。1つの符号付きオペランドと
1つの符号なしオペランドとについて飽和機構が選択さ
れるような演算となるように演算が選択される場合に
は、ライン302上の第2の選択信号が論理1にセットさ
れ、マルチプレクサ300,310,320,330がそれぞれの中央
の入力を選択してそれぞれの出力へ送る。飽和オーバー
フローが発生しないような演算となるように演算が選択
される場合には、ライン303上の第3の選択信号が論理
1にセットされ、マルチプレクサ300,310,320,330がそ
れぞれの下側の入力を選択してそれぞれの出力へ送る。
選択飽和信号と、ライン315上の第2の選択飽和信号
と、ライン325上の第3の選択飽和信号と、ライン335上
の第4の選択飽和信号とを生成する。第1の選択飽和信
号が論理1の場合には、飽和論理201は、結果の最上位
ビットを論理1にするように命令される。第2の選択飽
和信号が論理0の場合には、飽和論理201は、結果の最
上位ビットを論理0にするように命令される。第3の選
択飽和信号が論理1の場合には、飽和論理201は、結果
の最上位ビットを除いた全てのビットを論理1にするよ
うに命令される。第4の選択飽和信号が論理0の場合に
は、飽和論理201は、結果の最上位ビットを除いた全て
のビットを論理0にするように命令される。
図である。飽和論理201は、論理ANDゲート341と、論
理ORゲート340と、論理ANDゲート351と、論理OR
ゲート350とを含むものである。論理ANDゲート351お
よび論理ORゲート350は、ALU結果207の最上位ビッ
トを除いたあらゆるビット毎に複製されるものである。
の最上位ビットを生成するために、飽和論理201は、ラ
イン344上のALUの結果207の最上位ビットと、ライン
305上の第1の選択飽和信号と、ライン315上の第2の選
択飽和信号とを受け取る。
位ビット以外の各ビットを生成するために、論理AND
ゲート351および論理ORゲート350が各ビット毎に複製
される。オーバーフロー修正結果208の最上位ビット以
外の各ビット毎に、飽和論理201は、ライン354上のAL
U結果207のビットと、ライン325上の第3の選択飽和信
号と、ライン335上の第4の選択飽和信号とを受け取っ
て、オーバーフロー修正結果208の対応するビットをラ
イン352上に生成する。
列にインバータを設けることにより、上記の第4のオー
バーフローオプションで説明した1の補数演算を実施す
ることができる。当業者には自明であるように、2の補
数演算を実施するためには、第4のオーバーフローオプ
ションの場合には、1の桁上げ入力も必要となる。
論理を付加する必要がある。図11は、オーバーフロー
計算を行い、図3に示すプリシフタ論理による結果を考
慮する、第5のオプションについてのALU26内のオー
バーフロー論理を示すものである。第5のオプションに
ついてオーバーフロー計算を行うALU26内の論理は、
インバータ412と、インバータ413と、論理NORゲート
416と、論理NANDゲート418と、論理NANDゲート
419と、論理ORゲート420と、論理NANDゲート421
とを含むものである。論理NANDゲート419の入力438
には、第1の加算器オペランドの上位ビットを反転させ
た値が置かれる。論理NANDゲート419の入力439に
は、第2の加算器オペランドの上位ビットを反転させた
値が置かれる。論理NORゲート416の入力440には、第
1の加算器オペランドの上位ビットを反転させた値が置
かれる。論理NORゲート416の入力441には、第2の加
算器オペランドの上位ビットを反転させた値が置かれ
る。
算器結果の最上位ビットの次のビットからの桁上げ出力
(即ち、最上位ビットへの桁上げ入力)の値が置かれ
る。論理ORゲート420の入力437には、加算器結果の最
上位ビットの次のビットからの桁上げ出力(即ち、最上
位ビットへの桁上げ入力)の値が置かれる。
オーバーフロー論理は、2つの加算器オーバーフロー信
号を生成する。ライン453上の第1の加算器オーバーフ
ロー信号は、2つの符号付きオペランドについての演算
の結果として生じる正のオーバーフローが存在する場合
に論理0となる。ライン454上の第2の加算器オーバー
フロー信号は、2つの符号付きオペランドについての演
算の結果として生じる負のオーバーフローが存在する場
合に論理1となる。
和選択論理202を示す論理ブロック図である。飽和選択
論理202は、マルチプレクサ500と、マルチプレクサ510
と、マルチプレクサ520と、マルチプレクサ530と、イン
バータ526と、インバータ536とを含むものである。第5
のオプションについての飽和選択論理202は、図示のよ
うにライン453,454上のそれぞれの第1および第2の加
算器オーバーフロー信号を受け取る。論理0(接地)信
号がマルチプレクサ500の入力ライン503,504上に置かれ
る。論理0(接地)信号がマルチプレクサ510の入力ラ
イン513上に置かれる。論理1(VDD)信号がマルチ
プレクサ510の入力ライン514上に置かれる。論理0(接
地)信号がマルチプレクサ520の入力ライン524上に置か
れる。論理1(VDD)信号がマルチプレクサ530の入
力ライン534上に置かれる。
選択信号により制御される。第5のオプションに従って
飽和オーバーフロー機構が2つの符号付きオペランドに
ついて選択されるような演算となるように演算が選択さ
れる場合には、ライン501上の第1の選択信号が論理1
にセットされ、マルチプレクサ500,510,520,530がそれ
ぞれの上側の入力を選択してそれぞれの出力へ送る。飽
和オーバーフローが発生しないような演算となるように
演算が選択される場合には、ライン502上の第2の選択
信号が論理1にセットされ、マルチプレクサ500,510,52
0,530がそれぞれの下側の入力を選択してそれぞれの出
力へ送る。
202は、ライン505上に第1の選択飽和信号を、ライン51
5上に第2の選択飽和信号を、ライン525上に第3の選択
飽和信号を、ライン535上に第4の選択飽和信号を生成
する。第1の選択飽和信号が論理1の場合、飽和論理20
1は、結果の最上位ビットを論理1にするように命令さ
れる。第2の選択飽和信号が論理0の場合には、飽和論
理201は、結果の最上位ビットを論理0にするように命
令される。第3の選択飽和信号が論理1の場合には、飽
和論理201は、結果の最上位ビットを除いた全てのビッ
トを論理1にするように命令される。第4の選択飽和信
号が論理0の場合には、飽和論理201は、結果の最上位
ビットを除いた全てのビットを論理0にするように命令
される。
tioned)ALUを用いた演算について説明したものであ
るが、本発明はまた、データの並列処理が可能となるよ
うにALUが区分化されている場合にも非常に有用なも
のである。この場合には、ALUの各区分毎に別個のオ
ーバーフローハードウェアを用いることができる。
7に示す。第1の区分41は、第1のオペランドの下位ビ
ット42と第2のオペランドの下位ビット43とについて演
算を行って下位ビット結果44を生成する。第2の区分51
は、第1のオペランドの上位ビット52と第2のオペラン
ドの上位ビット53とについて演算を行って上位ビット結
果54を生成する。
て、データパス45上の情報を第1の区分41から第2の区
分51へ伝達させること、またはデータパス45上の情報が
第1の区分41から第2の区分51へと伝達する前にその情
報を遮断することが可能となる。特に、フルワードオペ
ランドについて行われる算術演算の場合に、情報を第1
の区分41からセレクタ50を介して第2の区分51へと伝達
させることが可能である。ハーフワードオペランドにつ
いて行われる並列算術演算の場合には、セレクタ50は、
情報が第1の区分41から第2の区分51に伝達するのを阻
止する。一般に、論理演算では、第1の区分41から第2
の区分51へ情報が伝達することはない。
コンピュータでは、各フルワードオペランドは32ビット
である。したがって、32ビットのフルワードオペランド
を用いて演算を行う場合には、セレクタ50が、情報が第
1の区分41からセレクタ50を介して第2の区分51へと伝
わることができるようにしている。16ビットのハーフワ
ードオペランドを用いて2つの並列演算を行う場合に
は、セレクタ50は、情報が第1の区分41からセレクタ50
を介して第2の区分51へ伝達するのを阻止する。その代
わりにライン59上の値が区分51に送られる。「加算」が
行われている場合には、論理0が入力ライン59上に置か
れる。「減算」が行われている場合には、論理1が入力
ライン59上に置かれる。
LU26により行われる一般的な算術演算は2の補数加算
である。当業者には理解されるように、ALUにおいて
2の補数加算演算を行う前に2の補数演算回路28を用い
てオペランドについて2の補数演算を行うことにより2
の補数減算が実施される。また、ALUにおいて2の補
数加算演算を行う前にプリシフタ27を用いてオペランド
のプリシフトを行うことにより、シフトおよび加算演算
が実施される。
26内の桁上げ伝搬加算を用いた2の補数加算器の実施態
様を示すものである。代替的には、ALU26は、桁上げ
先回り制御を用いた2の補数加算器を含むものとなる。
半加算器60は、第1のオペランドの単一ビットX0と第
2のオペランドの単一ビットY0とを受け取る。この半
加算器60は、和ビットZ0および桁上げビットC0を生成
する。全加算器61は、第1のオペランドの単一ビットX
1と、第2のオペランドの単一ビットY1と、桁上げビッ
トC0とを受け取る。この全加算器61は、和ビットZ1お
よび桁上げビットC1を生成する。全加算器65は、第1
のオペランドの単一ビットXi-1と、第2のオペランド
の単一ビットYi-1と、前の加算器からの桁上げビット
(即ち、図示しないがCi-2)とを受け取る。この全加
算器65は、和ビットZi-1および桁上げビットCi-1を生
成する。全加算器66は、第1のオペランドの単一ビット
Xiと第2のオペランドの単一ビットYiとを受け取る。
全加算器66はまた、イネーブルビット49の値に応じて、
セレクタ50(または当業者に理解されるような等価の論
理回路)を介して桁上げビットCi-1を受け取る。この
全加算器66は、和ビットZiおよび桁上げビットCiを生
成する。全加算器69は、第1のオペランドの単一ビット
Xj-1と、第2のオペランドの単一ビットYj-1と、前の
加算器からの桁上げビット(図示せず)とを受け取る。
この全加算器69は、和ビットZj-1および桁上げビット
Cj-1を生成する。
「j」はデータパスの大きさおよびフルワード演算のビ
ット長である。また、「i」は「j」を2で割ったものに
等しい。例えば、「j」は32に等しく「i」は16に等し
い。当業者には理解されるように、「j」はいかなる値
でもよく、「i」は「j」よりも小さいいかなる値でもよ
い。
「j」ビットのフルワードオペランドを用いて演算を行
う場合、イネーブルビット49は論理1に等しく、桁上げ
がセレクタ50を介して全加算器66へ伝達することが可能
となる。「i」ビットのハーフワードオペランドを用い
て2つの並列演算を行う場合には、イネーブルビット49
は論理0に等しく、桁上げがセレクタ50を介して全加算
器66に伝達することが阻止される。その代わりに、ライ
ン59上の値が全加算器66に送られる。「加算」が行われ
ている場合には、論理0が入力ライン59上に置かれる。
「減算」が行われている場合には、論理1が入力ライン
59上に置かれる。
LU26の実施態様を説明するものであるが、本発明の別
の好適実施例に従って設計されたALUは、ALUを様
々に区分することができるものである。例えば、本発明
の好適な代替実施例によるALU26の簡略ブロック図を
図9に示す。同図において、ALU26は4つに区分化さ
れている。第1の区分71は、第1のオペランドの下位ビ
ット72と第2のオペランドの下位ビット73とについて演
算を行って下位ビット結果74を生成する。第2の区分81
は、第1のオペランドのビット82と第2のオペランドの
ビット83とについて演算を行って結果ビット84を生成す
る。第3の区分91は、第1のオペランドのビット92と第
2のオペランドのビット93とについて演算を行って結果
ビット94を生成する。第4の区分101は、第1のオペラ
ンドの上位ビット102と第2のオペランドの上位ビット1
03とについて演算を行って上位ビット結果104を生成す
る。
て、データパス75上の情報が第1の区分71から第2の区
分81へ伝達することが可能になり、または、データパス
75上の情報が第1の区分71から第2の区分81へ伝達する
前にその情報が遮断される。特に、フルワードオペラン
ドまたはハーフワードオペランドについて行われる算術
演算の場合には、情報が第1の区分71からセレクタ80を
介して第2の区分81に伝達することが可能となってい
る。クォーターワードオペランドについて行われる並列
算術演算の場合には、情報が第1の区分71から第2の区
分81に伝達するのをセレクタ80が阻止する。その代わり
に、ライン88上の値が区分81に送られる。「加算」が行
われている場合には論理0がライン88上に置かれる。ま
た、「減算」が行われている場合には論理1がライン88
上に置かれる。一般に、論理演算において区分間で情報
が伝達することはない。
て、データパス85上の情報が第2の区分81から第3の区
分91に伝達することが可能になり、または、データパス
85上の情報が第2の区分81から第3の区分91に伝達する
前にその情報が遮断される。特に、フルワードオペラン
ドについて行われる算術演算の場合には、情報は第2の
区分81からセレクタ90を介して第3の区分91に伝達する
ことが可能となる。クォーターワードオペランドまたは
ハーフワードオペランドについて行われる並列算術演算
の場合には、セレクタ90は、情報が第2の区分81から第
3の区分91に伝達するのを阻止する。その代わりに、ラ
イン98上の値が区分91に送られる。「加算」が行われて
いる場合には、論理0がライン98上に置かれる。「減
算」が行われている場合には、論理1がライン98上に置
かれる。
れて、データパス95上の情報が第3の区分91から第4の
区分101に伝達することを可能になり、または、データ
パス95上の情報が第3の区分91から第4の区分101に伝
達する前にその情報が遮断される。特に、フルワードオ
ペランドおよびハーフワードオペランドについて行われ
る算術演算の場合には、情報は、第3の区分91からセレ
クタ100を介して第4の区分101に伝達することが可能と
なる。クォーターワードオペランドについて行われる並
列算術演算の場合には、セレクタ100は、情報が第3の
区分91から第4の区分101に伝達するのを阻止する。そ
の代わりに、ライン108上の値が区分101に送られる。
「加算」が行われている場合には論理0がライン108上
に置かれる。「減算」が行われている場合には、論理1
がライン108上に置かれる。
コンピュータでは、各フルワードオペランドは64ビット
となる。したがって、64ビットのフルワードオペランド
を用いて演算を行う場合には、セレクタ80は、情報が第
1の区分71からセレクタ80を介して第2の区分81に伝達
することを可能にし、セレクタ90は、情報が第2の区分
81からセレクタ90を介して第3の区分91に伝達すること
を可能にし、セレクタ100は、情報が第3の区分91から
セレクタ100を介して第4の区分101に伝達することを可
能にする。32ビットのハーフワードオペランドを用いて
2つの並列演算を行う場合には、セレクタ80は、情報が
第1の区分71からセレクタ80を介して第2の区分81に伝
達することを可能にし、セレクタ90は、情報が第2の区
分81からセレクタ90を介して第3の区分91に伝達するの
を阻止し、セレクタ100は、情報が第3の区分91からセ
レクタ100を介して第4の区分101に伝達することを可能
にする。16ビットのクォーターワードオペランドを用い
て4つの並列演算を行う場合には、セレクタ80は、情報
が第1の区分71からセレクタ80を介して第2の区分81に
伝達するのを阻止し、セレクタ90は、情報が第2の区分
81からセレクタ90を介して第3の区分91に伝達するのを
阻止し、セレクタ100は、情報が第3の区分91からセレ
クタ100を介して第4の区分101に伝達するのを阻止す
る。
グループ化を用いることもできる。例えば、64ビット幅
のデータパスを有するコンピュータにおいて、2つの16
ビットの算術演算と4つの8ビットの算術演算とが全て
同時に行われるように制御入力を選択することができ
る。更に、合計がワードサイズ以下であれば如何なるビ
ットの組み合わせも用いることができる。例えば、17ビ
ットと3ビットと16ビットと12ビットと5ビットと11ビ
ットとの算術演算の並列処理も同時に行うことができ
る。上述の原理は、桁上げ先回り制御式加算器にも適用
可能なものである。
理は、コンピュータシステムのALU内の算術演算に限
られるものではない。例えば、ALUにおける図示のよ
うな区分化は、データについて演算を行うコンピュータ
システム内の他のエンティティにも拡張することができ
る。例えば、図10は、プリシフタ27において実施した
本発明を示すものである。本発明の同一の実施例は、シ
フタ29の実施にも用いることができる。プリシフタ27お
よびシフタ29の区分化は、例えば、並列のシフト・加算
演算や並列のシフト演算の実施を考慮したものである。
は、シフトレジスタ1ビットスライス160と、シフトレ
ジスタ1ビットスライス161と、シフトレジスタ1ビッ
トスライス165と、シフトレジスタ1ビットスライス166
と、シフトレジスタ1ビットスライス169とを含むもの
である。
171上のデータ(典型的には論理値0)が、シフトレジ
スタ1ビットスライス160への入力として用いられる。
また、データが右にシフトされる場合には、セレクタ17
5が、制御入力182に応じて、入力181上のデータ(論理
値0または論理値1)を選択するか、またはシフトレジ
スタ1ビットスライス169が現在記憶している値を選択
して、シフトレジスタ1ビットスライス169に入力す
る。
なるセレクタがシフタに付加される。例えば、図10
は、シフトレジスタ1ビットスライス165,166間で区分
化されたシフタを示している。同図ではセレクタ174お
よびセレクタ173が付加されている。区分化されたオペ
ランドについてのシフト演算の場合には、データが左に
シフトされる際に、セレクタ173が、制御入力185に応じ
て入力172上のデータ(典型的には論理値0)を選択し
てシフトレジスタ1ビットスライス166への入力として
用いる。フルワードオペランドについてのシフト演算の
場合には、データが左にシフトされる際に、セレクタ17
3が、シフトレジスタ1ビットスライス165からの出力を
選択してシフトレジスタ1ビットスライス166への入力
として用いる。
演算の場合には、データが右にシフトされる際に、セレ
クタ174が、制御入力184に応じて入力183上のデータ
(論理値0または論理値1)を選択するか、またはシフ
トレジスタ1ビットスライス166が現在記憶している値
を選択して、シフトレジスタ1ビットスライス165に入
力する。フルワードオペランドに関するシフト演算の場
合には、データが右にシフトされる際に、セレクタ174
が、シフトレジスタ1ビットスライス166からの出力を
選択して、シフトレジスタ1ビットスライス165への入
力として用いる。
を示したものである。ALUにおける区分化に関する上
記説明から理解されるように、シフタは様々な態様で区
分化することができる。例えば、64ビットシフタは、
2、4、8、16、32、または64ビットの等しい大きさの
区分に区分化することが可能である。加えて、各区分が
それぞれ等しい数のビットについて演算を行うことは本
発明の要件ではない。
らなるシフトレジスタとして実施されたプリシフタ27お
よびシフタ29について説明したものであるが、他の好適
な代替実施例として、プリシフタとシフタをマルチプレ
クサを用いて実施したものが挙げられる。典型的には、
プリシフタ27は1レベルのマルチプレクサにより実施さ
れる。これは、プリシフタ27が多くとも少数のビット
(例えば0、1、2、3または4ビット)だけしかシフ
トできないのが普通だからである。シフタ29は、典型的
には3レベルのマルチプレクサにより実施される。この
場合、各レベルのマルチプレクサは4→1マルチプレク
サとなる。例えば、64ビットシフタ29では、第1レベル
のマルチプレクサは、0、16、32または48ビットのいず
れかをシフトすることになる。第2レベルのマルチプレ
クサは、0、4、8または12ビットのいずれかをシフト
することができる。第3レベルのマルチプレクサは、
0、1、2または3ビットのいずれかをシフトすること
ができる。これにより、0から63までのいかなる数のビ
ットもシフトすることが可能となる。このような3段の
マルチプレクサからなるシフタにおいても、1ビットス
ライスはなお識別することができる。しかし、当業者に
は理解されるように、いかなる2つのビット間のシフト
も、3つのマルチプレクサ段の内の1つ以上においてブ
ロックされなければならない場合がある。。
方法および実施例を開示し説明したものである。当業者
には理解されるように、本発明の思想および本質的な特
徴から逸脱することなく本発明を他の特定形態で実施す
ることが可能である。したがって、本発明の開示は、特
許請求の範囲に記載の本発明の範囲の例示を意図したも
のであり、本発明の範囲を制限することを意図したもの
ではない。
の組み合わせからなる例示的な実施態様を示す。
ンドと第2のnビット符号付き2進数オペランドとにつ
いて第1の算術演算を行ってnビット符号なし2進数結
果を生成する第1の算術演算手段と、その第1の算術演
算手段に接続され、正のオーバーフローが存在する場合
に前記nビット符号なし2進数結果に値2n−1を割り
当てる、第1の正オーバーフロー手段と、前記第1の算
術演算手段に接続され、負のオーバーフローが存在する
場合に前記nビット符号なし2進数結果に値0を割り当
てる、第1の負オーバーフロー手段とを備えることを特
徴とする、計算システム。
前記第1のnビット符号なし2進数オペランドの最上位
ビットが1に等しく、前記第2のnビット符号付き2進
数オペランドの最上位ビットが0に等しく、前記nビッ
ト符号なし2進数結果の最上位ビットが0に等しい場合
に前記nビット符号なし2進数結果に値2n−1を割り
当てる手段を備え、前記第1の負オーバーフロー手段
が、前記第1のnビット符号なし2進数オペランドの最
上位ビットが0に等しく、前記第2のnビット符号付き
2進数オペランドの最上位ビットが1に等しく、前記n
ビット符号なし2進数結果の最上位ビットが1に等しい
場合に前記nビット符号なし2進数結果に値0を割り当
てる手段を備えている、前項1記載の計算システム。
ンドについて第2の算術演算を行ってnビット符号付き
2進数結果を生成する第2の算術演算手段と、その第2
の算術演算手段に接続され、その第2の算術演算の結果
として生じる正のオーバーフローが存在する場合に前記
nビット符号付き2進数結果に値2n- 1−1を割り当て
る、第2の正オーバーフロー手段と、前記第2の算術演
算手段に接続され、その第2の算術演算の結果として生
じる負のオーバーフローが存在する場合に前記nビット
符号付き2進数結果に値−2n-1を割り当てる、第2の
負オーバーフロー手段とを更に備えている、前項1記載
の計算システム。
じて多数の演算を実施し、前記第2の算術演算が、算術
論理演算装置において同時に行われる複数の並列演算の
内の1つとなる、前項3記載の計算システム。
前記第1のnビット符号なし2進数オペランドの最上位
ビットが1に等しく、前記第2のnビット符号付き2進
数オペランドの最上位ビットが0に等しく、前記nビッ
ト符号なし2進数結果の最上位ビットが0に等しい場合
に前記nビット符号なし2進数結果に値2n−1を割り
当てる手段を備え、前記第1の負オーバーフロー手段
が、前記第1のnビット符号なし2進数オペランドの最
上位ビットが0に等しく、前記第2のnビット符号付き
2進数オペランドの最上位ビットが1に等しく、前記n
ビット符号なし2進数結果の最上位ビットが1に等しい
場合に前記nビット符号なし2進数結果に値0を割り当
てる手段を備え、前記第2の正オーバーフロー手段が、
前記2つのnビット符号付き2進数オペランドの最上位
ビットが共に0に等しく、前記nビット符号付き2進数
結果の最上位ビットが1に等しい場合に前記nビット符
号付き2進数結果に値2n-1−1を割り当てる手段を備
え、前記第2の負オーバーフロー手段が、前記2つのn
ビット符号付き2進数オペランドの最上位ビットが共に
1に等しく、前記nビット符号付き2進数結果の最上位
ビットが0に等しい場合に前記nビット符号付き2進数
結果に値−2n-1を割り当てる手段を備えている、前項
3記載の計算システム。
ついて減算演算を行って(n+1)ビット符号付き2進数
中間結果を生成する第3の算術演算手段と、その第3の
算術演算手段に接続され、前記(n+1)ビット符号付き
2進数中間結果が負である場合にその(n+1)ビット符
号付き2進数中間結果について補数演算を行うことによ
りnビット符号なし2進数最終結果を提供する、第3の
負オーバーフロー手段とを更に備えている、前項3記載
の計算システム。
じて多数の演算を実施し、前記第3の算術演算が、算術
論理演算装置において同時に行われる複数の並列演算の
内の1つとなる、前項6記載の計算システム。
の補数加算器を備え、前記計算システムが、前記第1の
正オーバーフロー手段、前記第1の負オーバーフロー手
段、前記第2の正オーバーフロー手段、および前記第2
の負オーバーフロー手段の演算を選択に応じてオーバー
ライドして前記nビット2の補数加算器の出力がnビッ
ト2進数結果として用いられるようにする選択手段を更
に備えている、前項3記載の計算システム。
て多数の演算を実施して、前記第1の算術演算が算術論
理演算装置において同時に行われる複数の並列演算の内
の1つとなる、前項8記載の計算システム。
2の補数加算器により行われる演算を含んでいる、前項
1記載の計算システム。
が、前記第1のnビット符号なし2進数オペランドの最
上位ビットが1に等しく、前記第2のnビット符号付き
2進数オペランドの最上位ビットが0に等しく、前記n
ビット符号なし2進数結果の最上位ビットが0に等しい
場合に第1の正オーバーフロー信号を生成するオーバー
フロー検出論理と、そのオーバーフロー検出論理および
前記nビット2の補数加算器の出力に接続され、前記第
1の正オーバーフロー信号と前記第1の算術演算が行わ
れていることを示す第1の選択とに応じて前記nビット
2の補数加算器の出力を値2n−1に置き換える、飽和
論理とを備えている、前項10記載の計算システム。
が、前記第1のnビット符号なし2進数オペランドの最
上位ビットが0に等しく、前記第2のnビット符号付き
2進数オペランドの最上位ビットが1に等しく、前記n
ビット符号なし2進数結果の最上位ビットが1に等しい
場合に第1の負オーバーフロー信号を生成するオーバー
フロー検出論理と、前記第1の負オーバーフロー信号と
前記第1の算術演算が行われていることを示す第1の選
択とに応じて前記nビット2の補数加算器の出力を値0
に置き換える飽和論理とを備えている、前項11記載の
計算システム。
に接続され、選択に応じてnビット2進数オペランドが
前記nビット2の補数加算器により受容される前にその
nビット2進数オペランドをシフトさせるプリシフタを
更に備え、前記オーバーフロー検出論理が、前記nビッ
ト2進数オペランドが前記nビット2の補数加算器によ
り受容される前にプリシフタがそのnビット2進数オペ
ランドを左へシフトさせる結果として生じる正のオーバ
ーフローを更に検出する、前項12記載の計算システ
ム。
じて多数の演算を実施し、前記第1の算術演算が算術論
理演算装置において同時に行われる複数の並列演算の内
の1つとなる、前項1記載の計算システム。
れるコンピュータ内の方法であって、この方法が、(a)
算術論理演算装置において第1のnビット符号なし2進
数オペランドと第2のnビット符号付き2進数オペラン
ドとについて第1の算術演算を行ってnビット符号なし
2進数結果を生成し、(b)前記nビット符号なし2進数
結果に正のオーバーフローが存在するか否かを判定する
ためのチェックを行い、(c)そのステップ(b)でのチェッ
クにより正のオーバーフローが存在すると判定された場
合に、前記nビット符号なし2進数結果に値2n−1を
割り当て、(d)前記nビット符号なし2進数結果に負の
オーバーフローが存在するか否かを判定するためのチェ
ックを行い、(e)そのステップ(d)でのチェックにより負
のオーバーフローが存在すると判定された場合に、前記
nビット符号なし2進数結果に値0を割り当てる、とい
各ステップを含むことを特徴とする、ハードウェア論理
素子により実施されるコンピュータ内の方法。
ビット符号なし2進数オペランドの最上位ビットが1に
等しく、前記第2のnビット符号付き2進数オペランド
の最上位ビットが0に等しく、前記nビット符号なし2
進数結果の最上位ビットが0に等しい場合に正のオーバ
ーフローが存在すると判定することを含み、前記ステッ
プ(d)が、前記第1のnビット符号なし2進数オペラン
ドの最上位ビットが0に等しく、前記第2のnビット符
号付き2進数オペランドの最上位ビットが1に等しく、
前記nビット符号なし2進数結果の最上位ビットが1に
等しい場合に負のオーバーフローが存在すると判定する
ことを含む、前項15記載の方法。
2つのnビット符号付き2進数オペランドについて第2
の算術演算を行ってnビット符号付き2進数結果を生成
し、(g)そのnビット符号付き2進数結果に正のオーバ
ーフローが存在するか否かを判定するためのチェックを
行い、(h)そのステップ(g)でのチェックにより正のオー
バーフローが存在すると判定された場合に、前記nビッ
ト符号付き2進数結果に値2n-1−1を割り当て、(i)前
記nビット符号付き2進数結果に負のオーバーフローが
存在するか否かを判定するためのチェックを行い、(j)
そのステップ(i)でのチェックにより負のオーバーフロ
ーが存在すると判定された場合に、前記nビット符号付
き2進数結果に値−2n-1を割り当てる、という各ステ
ップを更に含む、前項15記載の方法。
演算装置において同時に行われる複数の並列演算の内の
1つとなるように前記ステップ(f)と並列に追加の算術
演算を行う、というステップを更に含む、前項17記載
の方法。
ビット符号なし2進数オペランドの最上位ビットが1に
等しく、前記第2のnビット符号付き2進数オペランド
の最上位ビットが0に等しく、前記nビット符号なし2
進数結果の最上位ビットが0に等しい場合に正のオーバ
ーフローが存在すると判定することを含み、前記ステッ
プ(d)が、前記第1のnビット符号なし2進数オペラン
ドの最上位ビットが0に等しく、前記第2のnビット符
号付き2進数オペランドの最上位ビットが1に等しく、
前記nビット符号なし2進数結果の前記最上位ビットが
1に等しい場合に負のオーバーフローが存在すると判定
することを含み、前記ステップ(g)が、前記2つのnビ
ット符号付き2進数オペランドの最上位ビットが共に0
に等しく、前記nビット符号付き2進数結果の最上位ビ
ットが1に等しい場合に正のオーバーフローが存在する
と判定することを含み、前記ステップ(i)が、前記2つ
のnビット符号付き2進数オペランドの最上位ビットが
共に1に等しく、前記nビット符号付き2進数結果の最
上位ビットが0に等しい場合に負のオーバーフローが存
在すると判定することを含む、前項17記載の方法。
2つのnビット符号なしオペランドについて減算演算を
行って(n+1)ビット符号付き2進数中間結果を生成
し、(l)前記(n+1)ビット符号付き2進数中間結果が
負であるか否かを判定するためのチェックを行い、(m)
そのステップ(l)でのチェックにより前記(n+1)ビッ
ト符号付き2進数中間結果が負であると判定された場合
に、その(n+1)ビット符号付き2進数中間結果につい
て補数演算を行ってnビット符号なし2進数最終結果を
生成する、という各ステップを更に含む、前項17記載
の方法。
置において同時に行われる複数の並列演算の内の1つと
なるように前記ステップ(k)と並列に追加の算術演算を
行う、というステップを更に含む、前項20記載の方
法。
nビット2の補数加算器を用いて2つのnビット2進数
オペランドについて第3の算術演算を行って、オーバー
フロー演算が行われることのないnビット2進数結果を
生成する、というステップを更に含む、前項17記載の
方法。
1の算術演算がnビット2の補数加算器により行われる
演算である、前項15記載の方法。
記ステップ(a)を行う前にシフトする、というステップ
を更に含み、前記ステップ(b)が、前記ステップ(f)を行
った結果として正のオーバーフローが生じるか否かを判
定するためのチェックを行うことを含む、前項23記載
の方法。
理演算装置において同時に行われる複数の並列演算の内
の1つとなるように前記ステップ(a)と並列に追加の算
術演算を行う、というステップを更に含む、前項15記
載の方法。
ランドと第2のnビット符号付き2進数オペランドとに
ついて第1の算術演算を行ってnビット正符号付き2進
数結果を生成する第1の算術演算手段と、その第1の算
術演算手段に接続され、正のオーバーフローが存在する
場合に前記nビットの正符号付き2進数結果に値2n-1
−1を割り当てる、第1の正オーバーフロー手段と、前
記第1の算術演算手段に接続され、負のオーバーフロー
が存在する場合に前記nビット正符号付き2進数結果に
値0を割り当てる、第1の負オーバーフロー手段とを備
えることを特徴とする、計算システム。
が、前記第1のnビット符号付き2進数オペランドの最
上位ビットが0に等しく、前記第2のnビット符号付き
2進数オペランドの最上位ビットが0に等しく、前記n
ビット正符号付き2進数結果の最上位ビットが1に等し
い場合に前記nビット正符号付き2進数結果に値2n-1
−1を割り当てる手段を含み、前記第1の負オーバーフ
ロー手段が、前記nビット正符号付き2進数結果の最上
位ビットが1に等しく、前記第1のnビット符号付き2
進数オペランドの最上位ビットと前記第2のnビット符
号付き2進数オペランドの最上位ビットとのどちらか1
つが1に等しい場合に前記nビット正符号付き2進数結
果に値0を割り当て、前記第1のnビット符号付き2進
数オペランドの最上位ビットと前記第2のnビット符号
付き2進数オペランドの最上位ビットとが共に1に等し
い場合に前記nビット正符号付き2進数結果に値0を割
り当てる手段を含む、前項26記載の計算システム。
れるコンピュータ内の方法であって、この方法が、(a)
算術論理演算装置において第1のnビット符号付き2進
数オペランドと第2のnビット符号付き2進数オペラン
ドとについて第1の算術演算を行ってnビット正符号付
き2進数結果を生成し、(b)前記nビット正符号付き2
進数結果に正のオーバーフローが存在するか否かを判定
するためのチェックを行い、(c)そのステップ(b)でのチ
ェックにより正のオーバーフローが存在すると判定され
た場合に、前記nビット正符号付き2進数結果に値2
n-1−1を割り当て、(d)前記nビット正符号付き2進数
結果に負のオーバーフローが存在するか否かを判定する
ためのチェックを行い、(e)そのステップ(d)でのチェッ
クにより負のオーバーフローが存在すると判定された場
合に、前記nビット正符号付き2進数結果に値0を割り
当てる、という各ステップを含む、ハードウェア論理素
子により実施されるコンピュータ内の方法。
ビット符号付き2進数オペランドの最上位ビットが0に
等しく、前記第2のnビット符号付き2進数オペランド
の最上位ビットが0に等しく、前記nビット正符号付き
2進数結果の最上位ビットが1に等しい場合に正のオー
バーフローが存在すると判定することを含み、前記ステ
ップ(d)が、前記nビット正符号付き2進数結果の最上
位ビットが1に等しく、前記第1のnビット符号付き2
進数オペランドの最上位ビットと前記第2のnビット符
号付き2進数オペランドの最上位ビットとのどちらか1
つが1に等しい場合に負のオーバーフローが存在すると
判定し、前記第1のnビット符号付き2進数オペランド
の最上位ビットと前記第2のnビット符号付き2進数オ
ペランドの最上位ビットとが共に1に等しい場合に負の
オーバーフローが存在すると判定することを含む、前項
28記載の方法。
術演算の結果として生じる正および負のオーバーフロー
を効率的に取り扱うコンピュータシステムを提供するこ
とが可能となる。
示す簡略ブロック図である。
演算実行データパスを示す簡略ブロック図である。
フタについてのオーバーフロー計算を行う論理を示す図
である。
理演算装置(ALU)についてのオーバーフロー計算を
行う論理を示す図である。
択論理ブロックを実施する論理を示す図である。
についての算術結果を表すのに用いられる飽和論理を示
す図である。
LUの簡略ブロック図である。
内の2の補数加算器の実施例を示す図である。
LUの代替的な簡略ブロック図である。
略ブロック図である。
ALUについてのオーバーフロー計算を行う論理を示す
図である。
飽和選択論理ブロックを実施する論理を示す図である。
Claims (1)
- 【請求項1】第1のnビット符号なし2進数オペランド
と第2のnビット符号付き2進数オペランドとについて
第1の算術演算を行ってnビット符号なし2進数結果を
生成する第1の算術演算手段と、 その第1の算術演算手段に接続され、正のオーバーフロ
ーが存在する場合に前記nビット符号なし2進数結果に
値2n−1を割り当てる、第1の正オーバーフロー手段
と、 前記第1の算術演算手段に接続され、負のオーバーフロ
ーが存在する場合に前記nビット符号なし2進数結果に
値0を割り当てる、第1の負オーバーフロー手段とを備
えることを特徴とする、計算システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US163960 | 1993-12-08 | ||
| US08/163,960 US5448509A (en) | 1993-12-08 | 1993-12-08 | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07210368A true JPH07210368A (ja) | 1995-08-11 |
| JP3589719B2 JP3589719B2 (ja) | 2004-11-17 |
Family
ID=22592376
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30328694A Expired - Fee Related JP3589719B2 (ja) | 1993-12-08 | 1994-12-07 | 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5448509A (ja) |
| EP (1) | EP0657804B1 (ja) |
| JP (1) | JP3589719B2 (ja) |
| DE (1) | DE69416283T2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5847978A (en) * | 1995-09-29 | 1998-12-08 | Matsushita Electric Industrial Co., Ltd. | Processor and control method for performing proper saturation operation |
| US5905662A (en) * | 1996-09-13 | 1999-05-18 | Kabushiki Kaisha Toshiba | Digital processing system for binary addition/subtraction |
| US5915109A (en) * | 1996-08-12 | 1999-06-22 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor for processing a saturation instruction of an optional-bit length value |
| US5974540A (en) * | 1996-11-29 | 1999-10-26 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
Families Citing this family (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07168696A (ja) * | 1993-10-19 | 1995-07-04 | Mitsubishi Electric Corp | 2進数加算器のオーバフロー,アンダフロー処理回路 |
| JP3105738B2 (ja) * | 1994-06-10 | 2000-11-06 | 日本電気株式会社 | 情報処理装置 |
| GB2300054A (en) * | 1995-01-17 | 1996-10-23 | Hewlett Packard Co | Clipping integers |
| 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 |
| US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
| 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 |
| US5732004A (en) * | 1995-11-14 | 1998-03-24 | Advanced Micro Devices, Inc. | DSP architecture for a FIR-type filter and method |
| US5835389A (en) * | 1996-04-22 | 1998-11-10 | Samsung Electronics Company, Ltd. | Calculating the absolute difference of two integer numbers in a single instruction cycle |
| US5798958A (en) * | 1996-06-05 | 1998-08-25 | Samsung Electronics Co., Ltd. | Zero detect for binary sum |
| US6018757A (en) * | 1996-08-08 | 2000-01-25 | Samsung Electronics Company, Ltd. | Zero detect for binary difference |
| US5905221A (en) * | 1997-01-22 | 1999-05-18 | Atmel Corporation | Music chip |
| GB2330226B (en) | 1997-08-30 | 2000-12-27 | Lg Electronics Inc | Digital signal processor |
| US6301600B1 (en) | 1997-11-18 | 2001-10-09 | Intrinsity, Inc. | Method and apparatus for dynamic partitionable saturating adder/subtractor |
| US6272514B1 (en) | 1997-11-18 | 2001-08-07 | Intrinsity, Inc. | Method and apparatus for interruption of carry propagation on partition boundaries |
| US6301597B1 (en) | 1997-11-18 | 2001-10-09 | Intrinsity, Inc. | Method and apparatus for saturation in an N-NARY adder/subtractor |
| JP4092735B2 (ja) | 1997-12-10 | 2008-05-28 | セイコーエプソン株式会社 | 情報処理システム及び暗号/復号システム |
| US6529930B1 (en) | 1998-11-16 | 2003-03-04 | Hitachi America, Ltd. | Methods and apparatus for performing a signed saturation operation |
| US6519620B1 (en) * | 1999-04-22 | 2003-02-11 | International Business Machines Corporation | Saturation select apparatus and method therefor |
| US6499046B1 (en) | 1999-05-20 | 2002-12-24 | International Business Machines Corporation | Saturation detection apparatus and method therefor |
| US7206800B1 (en) | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
| US6748411B1 (en) | 2000-11-20 | 2004-06-08 | Agere Systems Inc. | Hierarchical carry-select multiple-input split adder |
| EP1387259B1 (en) | 2002-07-31 | 2017-09-20 | Texas Instruments Incorporated | Inter-processor control |
| KR100493053B1 (ko) * | 2003-02-26 | 2005-06-02 | 삼성전자주식회사 | 디지털 데이터의 포화 처리 장치 |
| EP1503280A1 (en) * | 2003-07-30 | 2005-02-02 | Texas Instruments Incorporated | Saturated arithmetic in a processing unit |
| US7395287B2 (en) * | 2003-12-15 | 2008-07-01 | Micrel, Inc. | Numerical value conversion using a saturation limited arithmetic logic unit supporting variable resolution operands |
| JP2006227939A (ja) * | 2005-02-17 | 2006-08-31 | Matsushita Electric Ind Co Ltd | 演算装置 |
| US8209366B2 (en) * | 2005-02-28 | 2012-06-26 | Hitachi Global Storage Technologies Netherlands B.V. | Method, apparatus and program storage device that provides a shift process with saturation for digital signal processor operations |
| US7594090B2 (en) * | 2005-07-18 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Efficient data storage |
| DE102007014808A1 (de) * | 2007-03-28 | 2008-10-02 | Texas Instruments Deutschland Gmbh | Multiplizier- und Multiplizier- und Addiereinheit |
| US7508329B1 (en) | 2008-01-03 | 2009-03-24 | Micrel, Inc. | Laser controller integrated circuit including variable resolution data processing device |
| US10067744B2 (en) * | 2016-12-08 | 2018-09-04 | International Business Machines Corporation | Overflow detection for sign-magnitude adders |
| DE102018110687A1 (de) | 2017-05-05 | 2018-11-08 | Intel Corporation | Dynamisches Genauigkeitsmanagement für Deep-Learning-Ganzzahlprimitive |
| US10643297B2 (en) * | 2017-05-05 | 2020-05-05 | Intel Corporation | Dynamic precision management for integer deep learning primitives |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3677051D1 (de) * | 1985-05-17 | 1991-02-28 | Nec Corp | Verarbeitungsschaltung, die es erlaubt den akkumulationsdurchsatz zu erhoehen. |
| US4722066A (en) * | 1985-07-30 | 1988-01-26 | Rca Corporation | Digital signal overflow correction apparatus |
| US4754412A (en) * | 1985-10-07 | 1988-06-28 | Schlumberger Systems & Services, Inc. | Arithmetic logic system using the output of a first alu to control the operation of a second alu |
| US5047975A (en) * | 1987-11-16 | 1991-09-10 | Intel Corporation | Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode |
| JP2600293B2 (ja) * | 1988-06-10 | 1997-04-16 | 日本電気株式会社 | オーバーフロー補正回路 |
| JP3076046B2 (ja) * | 1989-01-31 | 2000-08-14 | 日本電気株式会社 | 例外検出回路 |
| US5038314A (en) * | 1989-11-17 | 1991-08-06 | Digital Equipment Corporation | Method and apparatus for correction of underflow and overflow |
| JPH04309123A (ja) * | 1991-04-08 | 1992-10-30 | Nec Corp | 冗長2進演算回路 |
-
1993
- 1993-12-08 US US08/163,960 patent/US5448509A/en not_active Expired - Lifetime
-
1994
- 1994-12-05 EP EP94309025A patent/EP0657804B1/en not_active Expired - Lifetime
- 1994-12-05 DE DE69416283T patent/DE69416283T2/de not_active Expired - Fee Related
- 1994-12-07 JP JP30328694A patent/JP3589719B2/ja not_active Expired - Fee Related
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5847978A (en) * | 1995-09-29 | 1998-12-08 | Matsushita Electric Industrial Co., Ltd. | Processor and control method for performing proper saturation operation |
| US5915109A (en) * | 1996-08-12 | 1999-06-22 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor for processing a saturation instruction of an optional-bit length value |
| US5905662A (en) * | 1996-09-13 | 1999-05-18 | Kabushiki Kaisha Toshiba | Digital processing system for binary addition/subtraction |
| US5974540A (en) * | 1996-11-29 | 1999-10-26 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| US6237084B1 (en) | 1996-11-29 | 2001-05-22 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| USRE39121E1 (en) * | 1996-11-29 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| USRE43145E1 (en) | 1996-11-29 | 2012-01-24 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| USRE43729E1 (en) | 1996-11-29 | 2012-10-09 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3589719B2 (ja) | 2004-11-17 |
| DE69416283T2 (de) | 1999-06-10 |
| EP0657804B1 (en) | 1999-01-27 |
| US5448509A (en) | 1995-09-05 |
| EP0657804A1 (en) | 1995-06-14 |
| DE69416283D1 (de) | 1999-03-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3589719B2 (ja) | 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法 | |
| JP3578502B2 (ja) | 単一プロセッサにおいて並列データ処理を実行する方法 | |
| US5844830A (en) | Executing computer instrucrions by circuits having different latencies | |
| US10216479B2 (en) | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers | |
| JP3573808B2 (ja) | 論理演算装置 | |
| JP3729881B2 (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
| US6411980B2 (en) | Data split parallel shifter and parallel adder/subtractor | |
| JP3418460B2 (ja) | 倍精度除算回路および方法 | |
| US9678716B2 (en) | Apparatus and method for performing absolute difference operation | |
| US8554822B2 (en) | Decimal adder with end around carry | |
| US4639887A (en) | Bifurcated method and apparatus for floating point addition with decreased latency time | |
| CN113874833B (zh) | 多输入浮点加法器 | |
| US10037189B2 (en) | Distributed double-precision floating-point multiplication | |
| US6499044B1 (en) | Leading zero/one anticipator for floating point | |
| JPH08212058A (ja) | 加算オーバフロ検出回路 | |
| US6499046B1 (en) | Saturation detection apparatus and method therefor | |
| US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
| JPH0346024A (ja) | 浮動小数点演算器 | |
| US7003540B2 (en) | Floating point multiplier for delimited operands | |
| US7051062B2 (en) | Apparatus and method for adding multiple-bit binary-strings | |
| US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
| US6519620B1 (en) | Saturation select apparatus and method therefor | |
| US6981012B2 (en) | Method and circuit for normalization of floating point significants in a SIMD array MPP | |
| US5051943A (en) | Adder circuit with an encoded carry | |
| WO1998006029A1 (en) | Apparatus and methods for execution of computer instructions |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040728 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040803 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040818 |
|
| 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: 20080827 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100827 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |