JPH07210369A - 並列加算および平均演算を行うための回路およびその方法 - Google Patents

並列加算および平均演算を行うための回路およびその方法

Info

Publication number
JPH07210369A
JPH07210369A JP6294231A JP29423194A JPH07210369A JP H07210369 A JPH07210369 A JP H07210369A JP 6294231 A JP6294231 A JP 6294231A JP 29423194 A JP29423194 A JP 29423194A JP H07210369 A JPH07210369 A JP H07210369A
Authority
JP
Japan
Prior art keywords
bit
word
bits
adder
result
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
JP6294231A
Other languages
English (en)
Other versions
JP3729881B2 (ja
Inventor
Ruby Bei-Loh Lee
ルビー・ベイ−ロー・リー
John Paul Beck
ジョン・ポール・ベック
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH07210369A publication Critical patent/JPH07210369A/ja
Application granted granted Critical
Publication of JP3729881B2 publication Critical patent/JP3729881B2/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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; 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/508Adding; 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49963Rounding to nearest

Landscapes

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

Abstract

(57)【要約】 【目的】 加算器の幅よりも小さなワードを伴う多数の
加算を行う際に高効率で動作し、また単一のマシンサイ
クルで2つの数の平均を生成することのできる加算器を
提供すること 【構成】 2つの整数の平均の生成にも使用可能な装置
10,30,100である。この装置10,30,100は、入力された整
数のサブワードについて並列に演算を行う複数の副加算
器102へと分割可能なものである。従って、この加算器
は、各整数がある所定の長さのものである1組の2つの
整数の加算または減算を行うために、あるいは、各整数
の長さの合計が所定の長さ以下である場合に複数組の2
つの整数の加算または減算を行うために使用することが
できる。また、この装置10,30,100は、各サブワードの
和または差を2で除算した値を求めることもできる。単
一の命令に応じて並列演算を行うことが可能となる。そ
の2による除算結果は、その結果の偏りをなくすような
態様で丸められる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータに関し、特
に、コンピュータで使用するための算術演算装置に関す
る。
【0002】
【従来の技術】コンピュータは通常、所定の最大ビット
数の数値を加算する加算器を含む算術演算論理装置を備
えている。マイクロプロセッサ等では、32ビット長およ
び64ビット長のワード用の加算器が一般的である。それ
ら加算器はまた、それよりもずっと小さなワードについ
ても機能するが、その場合には、加算器に含まれる論理
回路の大部分がアイドル状態となる。例えば、64ビット
加算器を使用して2つの8ビットワードを加算すること
ができる。この加算は、対応する64ビットワードの最下
位部分に各8ビットワードを置き、次いでその64ビット
ワードを加算することにより行われる。この加算処理中
には、各ワードの上位7バイトの加算に関する論理回路
が事実上アイドル状態になる。したがって、この演算中
には加算器の能力の7/8が無駄になっている。
【0003】マルチメディアデータ処理では、多数の小
さなワード対の加算を伴う計算に出会うことが多い。例
えば、2つのグレースケール画像を加算して加算画像を
生成することに関する問題について考察する。画像の各
画素は典型的には、その画像中の対応する一点における
光強度を表す1バイトの整数として格納される。記憶空
間は常に貴重なものであるので、画像の画素は一般には
ワードへとパックされる。コンピュータの基本ワードサ
イズが32ビットであれば、1ワードにつき4つの画素を
パックすることができる。各画像は100万個の画素を有
することができる。したがって、加算画像の計算には、
構成要素となる各画像から得た2つの画素を加算して加
算画像中の対応画素を生成することが含まれる。各画像
に100万個の画素が存在する場合には、そのような加算
を100万回実行しなければならない。各加算では、構成
要素となる各画像から1つずつ得た2ワードの「アンパ
ック」を行い、そのアンパックが行われた2つの1バイ
トを加算し、その結果を加算画像における1ワード内の
正しい1バイト中に記憶させる、ということが必要とさ
れる。
【0004】コンピュータの基本ワードサイズが32ビッ
トである場合、そのコンピュータは、32ビット加算器を
有するのが普通である。上述のような計算時には、加算
器の加算能力の75%がアイドル状態となる。したがっ
て、従来の算術演算論理装置は、この種の画像計算を実
行する際には最適には使用されていない。
【0005】この種の演算で行われる計算の回数は過度
なものとなり得る。このため、特殊並列コンピュータア
ーキテクチャを使用して、加算画像コマンドを実行して
から加算画像が完成するまでの時間を短縮させることが
多い。その全ての加算は互いに独立したものであり、こ
のため、その加算は順序にかかわらず並列に実行するこ
とができる。M個の加算器を備えたコンピュータは、原
則的には、メモリから加算器への画素の移動がネックに
ならない限り、1/Mの時間で結果を提供することがで
きる。したがって、多数の加算を並列に実行することが
可能なコンピュータアーキテクチャを提供するのが有用
であろう。残念ながら、このような追加の加算器とそれ
らを制御するのに必要なハードウェアとを提供するコス
トは法外な金額になることが多い。
【0006】上述の画像加算に関する問題には平均画像
の生成が含まれることが多いことにも留意されたい。構
成要素となる各画像中の対応画素の平均である画素を有
する画像は、上述の加算画像の画素を生成してその各加
算画像画素の強度を2で除算したものと等価である。こ
の種の画像計算は、それによりオーバーフローが防止さ
れるので好適なものである。構成要素となる各画像の2
つの対応する画素値が128よりも大きな値を有する場合
には、その加算画像画素は8ビットの整数として表すこ
とができないものとなる。この問題を回避するために平
均画像が使用される。これは、構成要素となる画像の画
素が1バイト整数であれば平均画像画素は常に1バイト
整数として表すことができるからである。
【0007】
【発明が解決しようとする課題】広範には、本発明の目
的は、改良された加算器を提供することにある。
【0008】本発明の別の目的は、加算器の幅よりも小
さなワードを伴う多数の加算を行う際に高効率で動作す
る加算器を提供することにある。
【0009】本発明のもう1つの目的は、単一のマシン
サイクルで2つの数の平均を生成することのできる加算
器を提供することにある。
【0010】本発明の更なる目的は、加算器の幅よりも
小さな数の対の多数の平均値を計算するように適応させ
た加算器を提供することにある。
【0011】本発明の上述その他の目的は、本発明の以
下の詳細な説明および図面から当業者にとって明らかな
ものとなろう。
【0012】
【課題を解決するための手段】本発明は、2つの整数の
平均を生成するためにも使用することのできる算術演算
論理装置である。この算術演算論理装置は、入力された
整数のサブワードについて並列に演算を行う複数の副加
算器へと分割可能な加算器を含む。したがって、この加
算器は、各整数がある所定の長さのものである1組の2
つの整数を加算するために、また、各整数の長さの合計
が所定の長さ以下である場合には複数組の2つの整数を
加算するために使用することができる。この加算器は、
順序正しく接続された複数の加算器段から構成される。
各加算器段は、1つ以上のビットについて演算を行って
合計ビットおよび桁上げ出力ビットを生成する。入力さ
れたワードがサブワードへと区画化される際に桁上げ出
力がサブワードの境界を横切って伝搬するのを防止する
ために、サブワードの考え得る境界に切断回路が設けら
れる。
【0013】2つのオペランドの平均を計算することの
できる本発明の実施例では、算術演算論理装置の各出力
ビットに、副加算器によって生成された結果に対して右
シフト演算を実施するマルチプレクサが含まれる。結果
の最上位ビットに接続されたマルチプレクサは、対応す
るサブワードの最上位ビットを加算することにより生成
された桁上げビットへと前記最上位ビットを接続する。
各結果の最下位ビットに接続されたマルチプレクサは、
平均結果の偏りを防ぐために奇数丸め(round odd)方式
を実施するよう修正可能なものである。
【0014】
【実施例】本発明は、複数の部分ワード加算または平均
演算を並列に実行するように構成することのできる改良
された加算器である。図1を参照すると、本発明による
加算器10は、2つのNビットオペランド12,14を受容す
る。第1オペランドの各ビットをXi(i=0〜N-1)で示
し、第2オペランドの各ビットをYiで示す。それらオ
ペランドは、通常はコンピュータのプロセッサ中の2つ
のレジスタに格納される。しかし、本発明は、コンピュ
ータ中に含まれない回路という形で実施することができ
る。加算器10は、従来の加算器として動作する場合に
は、XおよびYの2の補数の和と1ビット桁上げ出力と
を有するNビット出力ワード16を生成する。以下の説明
では、加算器10の出力16の各ビットをZiで示すことと
する。加算結果は通常は、CPUのレジスタの1つに再
び格納される。
【0015】以下の説明では、様々なワード中のビット
に最下位のものから最上位のものへと番号付けしてあ
る。即ち、X0はオペランドXの最下位ビットであり、
N-1はオペランドXの最上位ビットである。ワードY,
Zについても同様の規則を用いることとする。
【0016】本発明は、各オペランドを複数のサブワー
ドへと分割することを可能にする。説明を簡単にするた
め、まず、各オペランドを部分オペランドへと1回だけ
分割することに関して本発明を説明することとする。こ
の場合、オペランドXの最初のkビットX0〜Xk-1は、
ワードXの第1の部分オペランド18の各ビットであり、
残りのビットXk〜XN-1は、ワードXの第2の部分オペ
ランド17の各ビットである。同様に、オペランドYを部
分ワード19,20へと分割する。この態様では、ビットZ0
〜Zk-1は部分オペランド18,20の和のビットであり、ビ
ットZk〜ZN-1は部分オペランド17,19の和のビットで
ある。以下の説明では、それら2つの結果を部分和また
はサブワード和と称することとする。以下で詳細に説明
するように、本発明は、2つの部分オペランドの各々の
平均値を計算するのに使用することも可能なものであ
る。平均値を計算する場合、ビットZ0〜Zk-1は部分オ
ペランド18,20の平均のビットであり、ビットZk〜Z
N-1は部分オペランド17,19の平均のビットである。
【0017】まず、桁上げ伝搬(carry propagate)アー
キテクチャとしても知られるリップル桁上げ(ripple ca
rry)アーキテクチャを利用した単一ビット加算段から構
成された加算器に関して本発明を説明することとする。
また、本発明による教示を他の加算器アーキテクチャに
利用する方法については後に詳述することとする。次に
図2を参照する。同図は、加算のみを実行する本発明に
よる加算器30の一部を示すブロック図である。即ち、加
算器30は平均計算を実行しない。加算器30は、1ビット
加算器段のアレイで構成されている。本発明は、加算器
が部分ワードについて並列加算を実行できるように段を
減結合させる(decouple)ことができる点で従来の加算器
とは異なるものである。各々の単一ビット加算器は、オ
ペランドXからの1ビットおよびオペランドYからの1
ビットの2ビットと、i番目の段に関してCiで示す加
算器の前段からの桁上げビットとを加算して、和ビット
および新しい桁上げビットを生成する。図2に示す2つ
の段は、部分オペランド18,20の最上位ビットと部分オ
ペランド17,19の最下位ビットとを加算するのに使用さ
れる単一ビット加算器である。例えば、単一ビット加算
器31は、ビットCk-2,Xk-1,Yk-1を加算して和ビット
k-1および桁上げビットCk-1を生成する。以下の説明
では、ビットXp,Ypを加算して和ビットSpを生成する
加算器の段を、加算器のp番目の段と称することにす
る。桁上げ伝搬を使用する従来の加算器では、各段から
の桁上げビットは、1ビット加算器のアレイにおいて各
段の桁上げビット入力をその前段の桁上げビット出力に
接続することにより、次の段へ伝搬される。
【0018】本発明では、2つの部分オペランドを分離
する境界の直前の段からの桁上げビットがブロック化回
路33に接続されている。単一のワードとして扱われるレ
ジスタ12,14の内容全体について演算を行う従来の加算
器として加算器30を使用する場合には、ブロック化回路
33が、単一ビット加算器31の桁上げ出力を単一ビット加
算器32の桁上げ入力に接続する。加算器30を使用して各
レジスタ中のビットk-1とビットkとの間の部分ワード境
界で2つの加算を並列に実行する場合には、ブロック化
回路33は単に、単一ビット加算器31からの桁上げビット
が単一ビット加算器32の桁上げ入力に伝搬するのを防止
する。これは、1ビット信号Mkに応じて行われる。ビ
ットMkを指定する方法について以下で詳述する。加算
器30の残りの段では、他の全ての単一ビット加算器の桁
上げ出力が従来の態様で接続される。このため、桁上げ
ビットは、特定の部分オペランドについて演算を行う加
算器30の各セクション内で従来の態様で伝搬する。各加
算器段からの和ビットは、対応する出力ポートのビット
に接続される。
【0019】従来の加算器では、オペランドの最上位ビ
ットについて演算を行う単一ビット加算器からの桁上げ
ビットを使用してオーバーフローを検出する。この態様
を各部分オペランド毎に実施する場合には、各部分オペ
ランドの最上位ビットの加算による桁上げビットが適当
なオーバーフロー回路に接続される。本発明の一実施例
では、桁上げビットの論理和が求められ、その結果とし
て得られるビットを使用してオーバーフローが検出され
る。そのビットは、オーバーフロー時にトラップをトリ
ガするのに使用可能なものであり、また、そのビットと
単一ビットレジスタの内容との論理和を求めることもで
きる。後者の場合、プログラムは、レジスタの内容を検
査して、最後にレジスタが検査されてからの演算でオー
バーフローになったものがあるか否かを判定することが
できる。
【0020】平均計算を実施しない場合には、本発明
は、2つの部分オペランド間の境界にまたがる可能性の
ある各々の段対の間にブロック化回路33等のブロック化
回路を単に設けることにより、従来の加算器から構成す
ることができる。X入力およびY入力を任意の数の任意
のサイズの部分オペランドへと分割する場合には、各々
の単一ビット加算器対の間にブロック化セクションを設
ける。このブロック化セクションは、各部分オペランド
の最上位ビットの位置を指定するビットMkを有するマ
スクにより構成される。以下の説明では、このマスクを
境界マスクと称することにする。この境界マスクの各ビ
ットは、加算器中のレジスタに格納可能なものであり、
また、加算器が存在するプロセッサの命令デコード回路
により実行される命令から直接生成することも可能なも
のである。
【0021】本発明の上記実施例は、オペランドの加算
を実行する。ブロック化回路33は、ブロック化回路のと
ころに境界を有する副加算器へと加算器が分割される加
算中に、桁上げビットを0と置換する。また、加算器が
同様に分割される2の補数の減算に加算器を使用する場
合には、桁上げビットを0ではなく1にしなければなら
ない。図2に示すブロック化回路33は、「0」または
「1」の値を有する入力Fを供給することにより加算お
よび減算を両方とも実施する。ブロック化回路33で境界
が活動状態である場合、Fの値は、次の段に与えられる
値となる。また境界が非活動状態である場合には、ブロ
ック化回路33は単に桁上げビットCk-1を次段に送る。
【0022】本発明の上述の実施例は平均計算を実行し
ないものである。これらの実施例は従来に勝る重要な利
点を提供するものであるが、本発明の好適実施例は、平
均を計算する機能を提供する追加的なハードウェアを提
供するものとなる。次いで、平均計算を実行するのに必
要となる追加的なハードウェアについて説明することと
する。2つのオペランドの平均は、2つのオペランドの
和を2で除算した値である。2で除算することは、2つ
のオペランドの和を右に1ビットだけシフトさせること
と等価である。その和の最下位ビットは失われる。平均
の最上位ビットは、部分オペランドの最上位ビットにつ
いて演算を行う単一ビット加算器の桁上げ出力となる。
例えば、部分オペランド18,20の平均は、SiをZi-1(i
=1,..,k-1)に経路指定し、S0を廃棄し、Ck-1をZk-1
に経路指定することによって計算することができる。
【0023】入力の部分オペランドへの所与の分割に関
し、3種類の段がある。部分オペランドの最下位ビット
の加算を行う段は、平均計算を実行する際にその和ビッ
トを廃棄する。以下の説明では、この種の段を最下位ビ
ット段と称することにする。また、部分オペランドの最
上位ビットの加算を行う段は、その加算により生成され
た桁上げビットをその加算結果の最上位ビットへ経路指
定し、その和ビットをその加算結果の最上位ビットの次
のビットへ経路指定すると共に、桁上げ伝搬チェーンを
断たなければならない。以下の説明では、この種の段を
最上位ビット段と称することにする。また、最下位ビッ
トと最上位ビットとの間のビットの加算を行う段は、そ
の段が加算を実行する際に使用する位置の1つ右の位置
にその段の和ビットを経路指定しなければならない。即
ち、i番目の段は、その和ビットをZi-1に経路指定す
る。以下の説明では、この種の段を内側ビット段と称す
ることにする。
【0024】部分オペランドの境界をワード中の任意の
点に位置させることができる実施例が可能ではあるが、
一般には、少数の位置にのみ境界を設ける方が有用とな
る。例えば、通常32ビットワードの加算を行うコンピュ
ータで加算器を使用する場合には、そのような4バイト
のワードを分割する境界が一層有用なものとなる。これ
は、そのようなシステムでは部分オペランドが通常は1
バイトまたは2バイトとなるからである。この場合、各
加算器段は、上述の3つの役割のうちの多くとも2つで
機能することができなければならない。段(N-1)は最上
位ビット段として働くだけでよい。同様に、段0は最下
位ビット段として働くだけでよい。その他の全ての段
は、加算器を全ワード加算に使用する場合には内側ビッ
ト段として機能することができなければならない。更
に、並列サブワード加算または平均の最上位ビット段ま
たは最下位ビット段になることができる段は、それらの
構成へと切り替えることができなければならない。
【0025】各段の間には差が存在し、その差は、加算
器段がXレジスタおよびYレジスタのビットから和ビッ
トを如何に生成するかの詳細にではなく、各々の加算器
段により生成される和信号Siが加算器の出力ビットZi
に経路指定される態様にある。次に図3を参照する。同
図は、本発明による加算器100の一部を示すブロック図
である。加算器100は、加算セクション102が典型例であ
る複数の4ビット加算セクションから構成されている。
加算セクション102は、X,Yレジスタのビットq〜q+3に
ついて演算を行って和ビットSq〜Sq+3を生成する。各
加算セクションは、Xレジスタから4ビット、Yレジス
タから4ビットを受容してそれらに対応する4つの和ビ
ットを生成する点で、4つの上述の単一ビット加算器と
機能的に等価なものである。更に、加算セクション102
は、桁上げビットCq+3を生成し、桁上げビットCq-1
受容する。ブロック化回路110,112は、加算セクション1
02の両側に示されている。
【0026】加算器100は、N個の和ビットSi(i=0〜N-
1)を生成する。加算器100を単一オペランド加算器とし
て使用する場合には、i番目の和ビットSiはその加算器
のi番目の出力ビットZに経路指定される。各出力ラ
インZiはマルチプレクサに接続される。典型的なマル
チプレクサを図3に符号121,124で示す。マルチプレク
サは、平均信号Aにより制御される。Aが偽である場
合、SiはZiに接続される(i=0〜N-1)。またAが真であ
る場合には、段の種類に関して上記説明の3つの可能性
が存在する。結果の内側のビットにのみなることができ
る出力ラインに接続されたマルチプレクサは、Si+1
iに接続する。マルチプレクサ122,123はそのようなマ
ルチプレクサの例である。
【0027】第2の種類のマルチプレクサは、結果の内
側ビットまたは最上位ビットのいずれかになることので
きる出力ラインに接続されたものである。そのようなマ
ルチプレクサを符号121で示す。これらのマルチプレク
サを最上位ビットマルチプレクサと称することとする。
最上位ビットマルチプレクサは、3→1マルチプレクサ
であり、この3→1マルチプレクサは、Aと、そのマル
チプレクサが結果の最上位ビットに接続されているか否
かを判定するマスクビットとに応じて動作する。Aが偽
である場合、最上位ビットマルチプレクサはZiをSi
接続する。また、Aが真であり、マスクビットもまた真
である場合には、最上位ビットマルチプレクサはZi
iに接続する。ここで、Ciは、Siを生成した段によ
り生成される桁上げビットである。また、Aが真であ
り、マスクビットが偽である場合には、最上位ビットマ
ルチプレクサはZiをSi+1に接続する。ZN-1に接続さ
れたマルチプレクサは、2→1マルチプレクサで十分で
ある最上位ビットマルチプレクサである、ということに
留意されたい。これは、そのマルチプレクサが内側マル
チプレクサになり得ないからである。
【0028】第3の種類のマルチプレクサは、結果の内
側ビットまたは最下位ビットのいずれかとなることので
きる出力ラインに接続されたものである。このようなマ
ルチプレクサを符号124で示す。これを最下位ビットマ
ルチプレクサと称することにする。平均演算の結果を切
り捨てることになる場合、即ち、結果の決定時にシフト
アウトされたビットを無視することになる場合には、最
下位ビットマルチプレクサは、内側ビットマルチプレク
サと同じである。
【0029】切り捨ては、右にシフトすることにより整
数除算の結果を丸める方法として使用することができる
が、他の形の丸めでは防止可能な望ましくない問題を発
生させることがある。画像中の隣接画素の平均を求める
ことによりその画像のサイズを縮小する場合を考察す
る。即ち、4画素からなる各グループを1画素に置き換
え、その1画素が、置換される4画素の平均と等しい値
を有している、といった場合である。画像はI×I画素
アレイにより表される。画素の削減は、アレイ中の奇数
行および偶数行の平均を求めてI×I/2画素アレイを
生成することにより達成することができる。次いで、そ
の中間アレイの奇数列および偶数列の平均を求めて最終
的な(I/2)×(I/2)アレイを生成する。様々な平均
演算が常に切り捨てられる場合には、最終的な画像は元
の画像とは異なる統計的特性を有するものとなる。例え
ば、縮小された画像は、元のアレイよりも低い平均光強
度を有するものとなる。この種のアーチファクトを避け
ることが重要であることが多い。本発明は、この種の偏
った(biased)丸めを避けるための手段を提供する。
【0030】本発明の好適実施例では、奇数丸め論理を
使用してこの偏りを防止している。奇数丸めシステムで
は、右シフトにより丸め誤差が発生した場合に、最も近
い奇数の整数に結果が丸められる。丸めを行う前の答え
が正確である場合には変更は加えられない。丸め誤差
は、結果から1がシフトオフされる場合に必ず発生す
る。これは、シフトされる前の最下位ビットが「1」で
ある場合に発生する。この場合、結果の最下位ビットは
「1」にセットされる。また、シフトアウトされるビッ
トが「0」である場合には、そのシフトを行った後でも
結果は正確であり、結果の最下位ビットは変更されな
い。本発明が奇数丸めを使用するのは、単一のORゲー
ト131をマルチプレクサに追加することで奇数丸めシス
テムを実施できるからである。したがって、偏らない丸
めが使用される最下位ビットマルチプレクサでは、Aが
真であり、当該マルチプレクサが結果の最下位ビットで
あることをマスクビットが示す場合に、前記マルチプレ
クサが、Ziに接続するための信号(Si+1 OR Si
を選択する。また、Aが偽である場合にはSiがZiに接
続される。また、Aが真であり、出力ラインが結果の内
側ビットに接続されていることをマスクビットが示す場
合には、マルチプレクサはZiをSi+1に接続する。
【0031】Sの値が一様に分散されている場合にはこ
の形態の丸めで得られる平均誤差が0であることを示す
ことができる。偶数丸め(round even)システムもまた丸
めの偏りを防止することが可能であるということに留意
されたい。偶数丸めシステムでは、丸め誤差が発生し、
丸めを行う前の結果が奇数である場合に、その結果が最
も近い偶数整数に丸められる。しかし、偶数丸め機構を
実施するのに必要とされるハードウェアの方がはるかに
複雑なものである。
【0032】上述のマルチプレクサは、限られた数の考
え得る部分オペランド境界しか実施されないことを仮定
したものである。しかし、加算器が任意の境界を有する
場合には、0番目の段および(N-1)番目の段を除いた各
出力ラインに取り付けられたマルチプレクサは、3つの
考え得るマルチプレクサ機能のうちのいずれをも機能す
ることができなければならない。これら機能を提供する
マルチプレクサ構成200のブロック図を図4に示す。マ
ルチプレクサ構成200は、4→1マルチプレクサ201から
構成される。以下の説明では、マルチプレクサ200が出
力ラインZqに接続されているものと仮定する。マルチ
プレクサ201は、平均信号およびマスクビットの状態に
応じてSq+1、Sq、Cq、または(Sq+1 OR Sq)を
qに接続する。マルチプレクサ201は、最下位ビットマ
ルチプレクサまたは最上位ビットマルチプレクサとして
両方とも適切に機能しなければならないので、Mqおよ
びMq+1の状態を共に判定することができなければなら
ない。
【0033】本発明は、従来の加算器に比較してわずか
しか複雑でない加算器での並列加算または平均を提供す
ることに加え、計算の始めにデータがワードとしてパッ
クされる多種類の計算の全体的な計算効率も向上させる
ものである。ここで、32ビットワードサイズを有するコ
ンピュータ上で上述の画像サイズの縮小を行う際の問題
について考察する。各画素が1バイトの整数で表される
場合、記憶空間を節約するために画像データは通常はワ
ードとしてパックされる。したがって、画像中の各水平
ラインはI/4個の32ビットワードで表される。奇数ラ
インの画素をその奇数ラインに続く偶数ラインの画素に
加算するために、その奇数ラインの4画素を含む1ワー
ドをXレジスタに入力し、そのワードに対応する偶数ラ
インからのワードをYレジスタに入力することができ
る。次いで、結果的に得られる画像ラインのパックされ
た1ワードとしてZレジスタの内容を直接メモリに格納
することができる。この演算は、個々のバイトをアンパ
ックして結果を再パックする必要なしに実行することが
できる。したがって、本発明は、単一の加算命令で4画
素を処理することを可能にし、従来の加算器で必要とさ
れるパック命令およびアンパック命令を不要とするもの
である。最後に、本発明は、2つの画素の平均を自動的
に生成し、これにより、各加算後の1回のシフト演算を
不要にする。
【0034】更に、並列サブワード加算命令は、従来の
全ワード加算命令以下の複雑さを有するものである。従
来の全ワード加算では、オペランドを有する2つのレジ
スタ、および結果を保持するための第3のレジスタを、
プログラマが指定する。本発明も同様に、3つのレジス
タを指定するだけでよい。部分オペランドフィールドに
おいて考え得る加算器の構成が少数しかない場合には、
それら構成を加算命令に含めることができ、この場合に
は、対応するマスクビットを命令デコード回路が生成す
ることができる。したがって、加算器のセットアップを
行うための命令が別に必要となることはない。
【0035】上記説明は、入力ワードおよび出力ワード
がプロセッサのレジスタ中に格納されていると仮定した
ものである。出力値および/または入力値が加算命令ま
たは平均命令で指定された場所に送られ、あるいはその
場所から受容される本発明の実施例は、当業者には明ら
かなものであろう。例えば、加算命令は、レジスタの最
下位ビットにそれぞれロードされる和を受容するための
複数のレジスタを指定することができる。同様に、レジ
スタ以外の場所、例えばメモリやその他の機能ユニット
に直接結果を送ることができる。更に、他の機能ユニッ
トまたはメモリから各オペランドを送り出すことが可能
であることも明らかであろう。
【0036】上記実施例は、並列部分サブワード平均に
関して説明したものであるが、本発明を使用してワード
XおよびワードYの内容全体に対して平均命令を実行す
ることも可能であることは当業者には明らかであろう。
そのような実施例は、1マシンサイクル中に2つの演
算、即ち加算と2による除算とを行うことができる、と
いう利益を提供するものである。
【0037】本発明の上記実施例は、桁上げ伝搬型の加
算器に関して説明したものである。本発明の好適実施例
では、キャリールックアヘッドアーキテクチャが使用さ
れる。これは、遅延が一層少ないからである。キャリー
ルックアヘッド加算器では、桁上げ生成回路が、加算器
の各ビットに対応して伝搬信号および生成信号を1つず
つ生成する。これらの信号を上述の桁上げビットと類似
の態様で使用して、加算器を並列サブワード加算器に分
割することが可能となる。段kがサブワード結果の最上
位ビットについて演算を行うように加算器を分割する場
合を考察する。図2に示したブロック化回路33等のブロ
ック化回路を桁上げ生成論理回路中に挿入して、伝搬ビ
ットおよび生成ビットが実行中の演算の種類に応じて、
即ち加算または減算に応じて強制的に適当な値になるよ
うにすることができる。段kで、分割されていないワー
ドについて加算器を使用している場合には、そのブロッ
ク化回路は、その段kに対応する伝搬ビットおよび生成
ビットの値の修正を行うことはない。
【0038】本発明の上記実施例は、本発明により実行
される様々な演算をトリガするための手段としての命令
に関して説明したものであるが、本発明の演算は、予め
格納されているコンピュータプログラムの命令により生
成されたのではない電気信号によってトリガ可能なもの
である、ということが当業者には明らかであろう。した
がって、特許請求の範囲で使用する「命令」という用語
は、他の形態の信号によりトリガされる演算もまた含む
ものである。更に、コンピュータの一部ではない回路で
本発明を使用することも可能であることが当業者には明
らかであろう。
【0039】本発明の上記実施例は、符号なし整数の平
均を求めることに関して説明したものであるが、本発明
の教示は符号付き整数にも適用可能であることが当業者
には明らかであろう。この場合には、和の最上位ビット
から結果の最上位ビットへと桁上げ出力ビットを移動さ
せる代わりに、結果の最上位ビットが次のようにして求
められる。即ち、2つのオペランドが同じ符号のもので
ある場合には、上記と同様に結果の最上位ビットが桁上
げ出力ビットとなる。また、2つのオペランドが異なる
符号のものである場合には、結果の最上位ビットは、右
シフトを行う前の和の最上位ビットとなる。即ち、結果
の最上位ビットは、(Xp AND Yp)OR (Xp OR
p) AND バーCp-1となる。キャリールックアヘッ
ド加算器の場合には、この式は、Gp OR Pp AND
バーCp-1となる。ここで、Gp,Ppは、最上位ビットに
関する生成ビットおよび伝搬ビットである。
【0040】当業者であれば、上記説明および図面から
本発明の様々な修正例が明らかとなろう。したがって、
本発明は特許請求の範囲によってのみ制限されるもので
ある。
【0041】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。
【0042】1.ビットXiを有するワードXとビット
iを有するワードYとの内容について演算を行ってビ
ットZiを有する結果ワードを生成する装置であって、
i=0〜N-1であり、Z0が前記サブワードの内の1つの
最下位ビットであり、ZN-1が前記サブワードの内の1
つの最上位ビットである、前記装置において、この装置
が、前記ワードXと前記ワードYと前記結果ワードとを
複数のサブワードへと区画化する手段であって、前記ワ
ードXの各サブワードに対応して前記ワードYおよび前
記結果ワードのサブワードが1つずつ存在する、前記区
画化手段と、第1の命令に応じて前記Xの各サブワード
とそれに対応する前記Yの各サブワードとの和を生成す
る手段であって、その結果が、前記結果ワードの対応す
るサブワードを決定する、前記和生成手段とを備えてい
ることを特徴とする、前記装置。 2.第2の命令に応じて前記ワードX中の各サブワード
とそれに対応する前記ワードY中のサブワードとの差を
生成する手段であって、その結果が、前記結果ワードの
対応するサブワードを決定する、前記手段を更に備えて
いる、前項1記載の装置。
【0043】3.第3の命令に応じて前記ワードX中の
各サブワードとそれに対応する前記ワードY中のサブワ
ードとの和を2で除算した値を生成する手段であって、
その結果が、前記結果ワードの対応するサブワードを決
定する、前記手段を更に備えている、前項1記載の装
置。
【0044】4.前記の2での除算の結果として丸め誤
差が生じた場合に、前記の各結果が1つ下の奇数整数に
丸められる、前項3記載の装置。
【0045】5.第4の命令に応じて前記ワードX中の
各サブワードとそれに対応する前記ワードY中のサブワ
ードとの差を2で除算した値を生成する手段であって、
その結果が、前記結果ワードの対応するサブワードを決
定する、前記手段を更に備えている、前項2記載の装
置。
【0046】6.前記装置が、前記ワードXからの1つ
以上のビットと前記ワードYから得た対応するビットと
について演算を行う演算手段と、前記ワードXの各ビッ
トに対応して生成ビットおよび伝搬ビットを1つずつ生
成する手段とを備え、前記区画化手段が、前記生成ビッ
トおよび前記伝搬ビットを強制的に、前記ワードXの前
記ビットがサブワードの最上位ビットである場合に実行
される演算により決定される値にする手段を備えてい
る、前項1記載の装置。
【0047】7.前記装置が、直列に接続された複数の
加算段を備えており、その各加算段が、前記ワードXか
らの1つ以上のビットとそれに対応する前記ワードYか
ら得たビットとについて演算を行う手段と、前記加算段
からの桁上げビットを前記直列接続中の次の加算段へ伝
搬させる手段とを備えており、前記区画化手段が、前記
桁上げビットを強制的に、前記加算段が前記ワードX中
の異なるサブワードのビットについて演算を行う場合に
実行される演算により決定される値にする手段を備えて
いる、前項1記載の装置。
【0048】8.前記加算段が、Xiについての演算か
ら導出されるN個の結果ビットSi(i=0〜N-1)を生成
し、前記装置が、前記結果ビットの内の1つを示す信号
を各々が生成するN個の多重化手段を更に備え、その多
重化手段は、前記の各結果ビットZp(p=0〜N-1)毎に1
つずつあり、Zpに対応する前記多重化手段が、前記第
1の命令に応じてSpをZpに接続する、前項7記載の装
置。
【0049】9.Zpに対応する前記多重化手段が、Zp
が1つの前記サブワードの内側にある場合に前記第3の
命令に応じてZpをSp+1に接続し、Zpが前記結果サブ
ワードの内の1つの最上位ビットである場合にはZp
pに接続し、そのCpは、Zpを含む結果サブワードに
対応する前記Xのサブワードの最上位ビットについて演
算を行う前記加算段により生成される前記桁上げビット
である、前項8記載の装置。
【0050】10.Zpに対応する前記多重化手段が、
pが前記結果サブワードの内の1つの最下位ビットで
ある場合にZpを(Sp+1 OR Sp)へ接続する手段を更
に備えている、前項9記載の装置。
【0051】11.前記演算手段が、Xiについての演
算から導出されるN個の結果ビットSi(i=0〜N-1)を生
成し、前記装置が、前記結果ビットの内の1つを示す信
号を生成するN個の多重化手段を更に備えており、前記
多重化手段が前記の各結果ビットZp(p=0〜N-1)毎に
1つずつあり、Zpに対応する前記多重化手段が前記第
1の命令に応じてSpをZpに接続する、前項6記載の装
置。
【0052】12.サブワードの最上位ビットとなるこ
とができる各ビットXpに対応する桁上げビットCpを生
成する手段を更に備え、Zpに対応する前記多重化手段
が、Zpが前記サブワードの内の1つの内側にある場合
に前記第3の命令に応じてZpをSp +1に接続し、Zp
前記結果サブワードの内の1つの最上位ビットである場
合にZpをCpに接続し、Cpが、Zpを含む結果サブワー
ドに対応するXのサブワードの最上位ビットについて演
算を行う前記加算段により生成される桁上げビットであ
る、前項11記載の装置。
【0053】13.Zpに対応する前記多重化手段が、
pが前記結果サブワードの内の1つの最下位ビットで
ある場合にZpを(Sp+1 OR Sp)に接続する手段を更
に備えている、前項12記載の装置。
【0054】14.ビットXiを有するワードXと、ビ
ットYiを有するワードYとの内容について演算を行っ
てビットZiを有する結果ワードを生成する装置であっ
て、i=0〜N-1であり、Z0が最下位ビットであり、Z
N-1が最上位ビットである、前記装置において、平均命
令に応じて前記ワードXおよび前記ワードYの和を生成
する手段と、その和をシフトさせて前記ワードZを生成
する手段とを備えることを特徴とする、前記装置。
【0055】15.前記シフトの結果として丸め誤差が
生じた場合に、前記ワードZが1つ下の奇数整数へと丸
められる、前項14記載の装置。
【0056】16.前記装置が、直列に接続された複数
の加算段を備えており、その各加算段が、前記ワードX
からの1つ以上のビットとそれに対応する前記ワードY
から得た対応するビットとについて演算を行う手段を備
えており、それら加算段がN個の結果ビットSi(i=0
〜N-1)を生成し、SiがXiおよび桁上げ出力ビットC
N-1についての演算から導出され、および、前記装置が
N個の多重化手段を更に備えており、その各多重化手段
が、前記結果ビットの内の1つを示す信号を生成し、前
記の各結果ビットZp(p=0〜N-1)毎に1つずつ存在
し、そのZpに対応する前記多重化手段が前記平均命令
に応じてSpをZpに接続する、前項14記載の装置。
【0057】17.差命令に応じて前記ワードXと前記
ワードYとの差を2で除算した値を生成する手段を更に
備えており、その生成結果が前記結果ワードを決定す
る、前項14記載の装置。
【0058】18.Zpに対応する前記多重化手段が、p
=0〜N-2である場合に前記平均命令に応じてZpをSp+1
へ接続し、p=N-1である場合にはZpをCN-1へ接続す
る、前項16記載の装置。
【0059】19.Zpに対応する前記多重化手段が、p
=0である場合にZpを(Sp+1 OR Sp)へ接続する手段
を更に備えている、前項18記載の装置。
【0060】20.サブワードの最上位ビットとなるこ
とができる各ビットXpに対応する桁上げビットCpを生
成する手段を更に備え、Zpに対応する前記多重化手段
が、Zpが前記サブワードの内の1つの内側にある場合
に前記第3の命令に応じてZpをSp +1へ接続し、Zp
前記結果サブワードの内の1つの最上位ビットである場
合にはZpをSpに接続する、前項11記載の装置。
【0061】
【発明の効果】本発明は上述のように構成したので、加
算器の幅よりも小さなワードを伴う多数の加算を行う際
に高効率で動作し、また単一のマシンサイクルで2つの
数の平均を生成することのできる加算器を提供すること
ができる。
【図面の簡単な説明】
【図1】本発明による加算器を示すブロック図である。
【図2】加算のみを実行する本発明による加算器の一部
を示すブロック図である。
【図3】本発明による加算器の一部を示すブロック図で
ある。
【図4】本発明の実施例を構築するのに利用可能なマル
チプレクサ構成を示すブロック図である。
【符号の説明】
10 加算器 12,14 Nビットオペランド 16 Nビット出力ワード Xi,Yi ビット X0, Y0 最下位ビット XN-1,YN-1 最上位ビット 17,18,19,20 部分オペランド

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ビットXiを有するワードXとビットYi
    有するワードYとの内容について演算を行ってビットZ
    iを有する結果ワードを生成する装置であって、i=0〜
    N-1であり、Z0が前記サブワードの内の1つの最下位ビ
    ットであり、ZN-1が前記サブワードの内の1つの最上
    位ビットである、前記装置において、この装置が、 前記ワードXと前記ワードYと前記結果ワードとを複数
    のサブワードへと区画化する手段であって、前記ワード
    Xの各サブワードに対応して前記ワードYおよび前記結
    果ワードのサブワードが1つずつ存在する、前記区画化
    手段と、 第1の命令に応じて前記Xの各サブワードとそれに対応
    する前記Yの各サブワードとの和を生成する手段であっ
    て、その結果が、前記結果ワードの対応するサブワード
    を決定する、前記和生成手段とを備えていることを特徴
    とする、前記装置。
JP29423194A 1993-11-29 1994-11-29 並列加算および平均演算を行うための回路およびその方法 Expired - Fee Related JP3729881B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US158649 1993-11-29
US08/158,649 US5883824A (en) 1993-11-29 1993-11-29 Parallel adding and averaging circuit and method

Publications (2)

Publication Number Publication Date
JPH07210369A true JPH07210369A (ja) 1995-08-11
JP3729881B2 JP3729881B2 (ja) 2005-12-21

Family

ID=22569081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29423194A Expired - Fee Related JP3729881B2 (ja) 1993-11-29 1994-11-29 並列加算および平均演算を行うための回路およびその方法

Country Status (4)

Country Link
US (1) US5883824A (ja)
EP (1) EP0656582B1 (ja)
JP (1) JP3729881B2 (ja)
DE (1) DE69435047T2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
EP0789870B1 (en) * 1995-09-01 2003-01-15 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US6003125A (en) * 1997-01-24 1999-12-14 Texas Instruments Incorporated High performance adder for multiple parallel add operations
US6408320B1 (en) * 1998-01-27 2002-06-18 Texas Instruments Incorporated Instruction set architecture with versatile adder carry control
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US6211892B1 (en) * 1998-03-31 2001-04-03 Intel Corporation System and method for performing an intra-add operation
US6418529B1 (en) 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US7395302B2 (en) 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
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
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
US6449629B1 (en) * 1999-05-12 2002-09-10 Agere Systems Guardian Corp. Three input split-adder
US6512523B1 (en) * 2000-03-27 2003-01-28 Intel Corporation Accurate averaging of elements using integer averaging
GB2362732B (en) * 2000-05-23 2004-08-04 Advanced Risc Mach Ltd Parallel processing of multiple data values within a data word
US6748411B1 (en) * 2000-11-20 2004-06-08 Agere Systems Inc. Hierarchical carry-select multiple-input split adder
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
US7219118B2 (en) * 2001-11-06 2007-05-15 Broadcom Corporation SIMD addition circuit
US7558816B2 (en) * 2001-11-21 2009-07-07 Sun Microsystems, Inc. Methods and apparatus for performing pixel average operations
US7254599B2 (en) * 2002-05-30 2007-08-07 Sun Microsystems, Inc. Average code generation circuit
US7149768B2 (en) * 2002-10-15 2006-12-12 Ceva D.S.P. Ltd. 3-input arithmetic logic unit
JP4317738B2 (ja) * 2003-12-17 2009-08-19 富士通株式会社 平均値算出装置および平均値算出方法
US20090070400A1 (en) * 2007-09-12 2009-03-12 Technology Properties Limited Carry-select adder
US8036484B2 (en) * 2007-10-16 2011-10-11 Broadcom Corporation In-place averaging of packed pixel data
KR101418467B1 (ko) * 2008-08-15 2014-07-10 엘에스아이 코포레이션 니어 코드워드들의 ram 리스트-디코딩
US9524572B2 (en) * 2010-11-23 2016-12-20 Microsoft Technology Licensing, Llc Parallel processing of pixel data
KR102072543B1 (ko) * 2013-01-28 2020-02-03 삼성전자 주식회사 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
US4137568A (en) * 1977-04-11 1979-01-30 Pitney-Bowes, Inc. Circuit for establishing the average value of a number of input values
JPS59161731A (ja) * 1983-03-07 1984-09-12 Hitachi Ltd バレルシフタ
JPS6124331A (ja) * 1984-07-12 1986-02-03 Nec Corp アナログ−デイジタル変換器
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
DE3509762A1 (de) * 1985-03-19 1986-09-25 Battelle-Institut E.V., 6000 Frankfurt Schaltungsanordnung zur mittelwertbildung
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
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US5189636A (en) * 1987-11-16 1993-02-23 Intel Corporation Dual mode combining circuitry

Also Published As

Publication number Publication date
DE69435047T2 (de) 2008-10-02
DE69435047D1 (de) 2008-01-03
EP0656582B1 (en) 2007-11-21
US5883824A (en) 1999-03-16
EP0656582A1 (en) 1995-06-07
JP3729881B2 (ja) 2005-12-21

Similar Documents

Publication Publication Date Title
JP3729881B2 (ja) 並列加算および平均演算を行うための回路およびその方法
JP3573808B2 (ja) 論理演算装置
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US5761726A (en) Base address generation in a multi-processing system having plural memories with a unified address space corresponding to each processor
US5644522A (en) Method, apparatus and system for multiply rounding using redundant coded multiply result
US5448509A (en) Efficient hardware handling of positive and negative overflow resulting from arithmetic operations
US5696959A (en) Memory store from a selected one of a register pair conditional upon the state of a selected status bit
US5640578A (en) Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US5606677A (en) Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
KR100291383B1 (ko) 디지털신호처리를위한명령을지원하는모듈계산장치및방법
US6016538A (en) Method, apparatus and system forming the sum of data in plural equal sections of a single data word
KR920008280B1 (ko) 집적 프로세서
JPH05216624A (ja) 演算装置
US6026484A (en) Data processing apparatus, system and method for if, then, else operation using write priority
JPH0823811B2 (ja) 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構
US5957996A (en) Digital data comparator and microprocessor
US5867413A (en) Fast method of floating-point multiplication and accumulation
US6499046B1 (en) Saturation detection apparatus and method therefor
EP0436905A2 (en) High performance adder using carry predictions
KR20080083321A (ko) 패리티 생성 회로, 계수 회로 및 계수 방법
CN113485751A (zh) 执行伽罗瓦域乘法的方法、运算单元和电子装置
US6848043B1 (en) Optimal redundant arithmetic for microprocessors design
US6519620B1 (en) Saturation select apparatus and method therefor
KR100315303B1 (ko) 디지탈 신호 처리기
EP0508627B1 (en) Method and apparatus for generating carry out signals

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041102

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050826

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050831

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: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051005

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: 20091014

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees