JPH06222908A - 多数の多ビット要素を含む複合オペランドに対して並列的に算術演算を実行する方法 - Google Patents

多数の多ビット要素を含む複合オペランドに対して並列的に算術演算を実行する方法

Info

Publication number
JPH06222908A
JPH06222908A JP5317778A JP31777893A JPH06222908A JP H06222908 A JPH06222908 A JP H06222908A JP 5317778 A JP5317778 A JP 5317778A JP 31777893 A JP31777893 A JP 31777893A JP H06222908 A JPH06222908 A JP H06222908A
Authority
JP
Japan
Prior art keywords
signal
arithmetic operation
value
processing
inter
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.)
Pending
Application number
JP5317778A
Other languages
English (en)
Inventor
Daniel Davies
ダニエル・デイビース
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.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JPH06222908A publication Critical patent/JPH06222908A/ja
Pending 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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
    • 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/386Special constructional features

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 複数の多ビット要素データ項目を含む複合オ
ペランドについて並列算術演算を実行するための方法を
提供する。 【構成】 複数の要素データ項目を含む複合オペランド
に対して算術演算を実行する。通常には演算で要素間信
号たとえば桁上げまたは位取り信号または偏移ビットが
生成され、無効な結果が得られるような場合でも演算で
有効な結果が得られる。要素データ項目は、画像内の画
素に関連する画素値またはその他のデータであり得る。
保存媒体上の命令が処理装置によりアクセスされまた実
行されて要素間信号にかかわりなく有効な結果が得られ
る。複合オペランド中の要素は有効な結果を保証するた
めに消去されまたは設定されるバッファビットにより隔
てることが出来る。要素の値は有効な結果を得るための
演算の前に偏移することが出来る。

Description

【発明の詳細な説明】
【0001】本発明はデータに算術演算を施すための技
術に関する。
【0002】ウィルソン(Wilson)の米国特許第5,1
29,092号(ウィルソン092号)では、隣接する
処理ユニットを用いて画像や空間的に関連のあるデータ
などのデータ行列を処理するための技術を開示してい
る。図1および図2に図示しまた説明してあるように、
処理ユニットは8個の処理ユニットからなる幾つかのグ
ループのアレイを構成している。それぞれの処理ユニッ
トからアレイ内においてすぐ左側または右側でこれに隣
接する処理ユニットへの接続には左側に桁上げ入力線ま
た右側に桁上げ出力線が含まれている。
【0003】ウィルソン092号では第12段40行以
降で算術演算について開示している。ビットシリアルな
算術演算では、桁上げ用フリップフロップからの桁上げ
信号がマルチプレクサへ渡され、その1つがフリップフ
ロップ内部に保存されている桁上げ伝播値についての真
理値表として動作する。ついで出力選択装置へ供給され
てメモリへ再び読み込むことが出来る。並列演算では、
処理ユニットからその左側のユニットへの桁上げ入力が
得られ、桁上げ出力はすぐ右側の処理ユニットへ伝播さ
れる。並列算術演算を実行する場合、多数のデータワー
ドが同一のビット線上に存在するので桁上げ信号が間違
って1つのデータワードから次のデータワードへ伝わら
ないようにオーバーフローを回避するように、書き込み
アルゴリズムには注意を払う必要がある。
【0004】本発明ではグレースケールやカラー画素値
などの多ビットデータ項目を処理する際の問題を取り扱
う。
【0005】ウィルソン092号に説明されているよう
に、ビットシリアルな算術演算は多ビットワードに対す
る演算に使用することが可能である。しかし水平方向の
様式の多ビットデータ項目に対して演算することによっ
て水平方向と垂直方向の様式の間で隅角折返しを行なう
ことを回避するのが一般により効率的である。同時に、
処理装置は1つのデータ項目の幅より広いデータ単位に
ついて演算するように設計することが出来るので、一度
に1つのデータ項目に対する演算を行なうのはまた効率
的ではない。
【0006】本明細書において「論理演算」と称するあ
る種の演算では、それぞれのオペランド(オペランド)
ビットを用いて1つの結果ビットを得ている。よって、
論理演算では、複数の要素データ項目を含む複合オペラ
ンドについて並列的に実行した場合、有効な結果が生成
される。これの例にはNOT、AND、ORおよびXO
Rが含まれる。
【0007】逆に、一般的な算術演算では演算が実行さ
れた値より多くのビットからなる結果を得ることがあ
る。たとえば、2つのKビットの値を加算すると桁上げ
信号のため(K+1)ビットの結果が生成されることが
ある。1つのKビットの値からもっと小さい別の値を減
算すると(K+1)番目のビットに位取り信号が得られ
る。2つのKビットの値を乗算すると2Kビットの結果
が生成される。また除算では何らかの精度レベルで制限
しない限り無限に続くビット数が生成されることがあ
る。
【0008】幅の大きな結果を生成することがあるの
で、従来の処理装置では画素値などの複数の要素データ
項目を含む複合オペランドについての通常の算術演算を
実行することが出来ない。1つの要素に対する演算で、
次の要素へ伝播またはオーバーフローする桁上げ信号、
位取り信号(borrow signal) 、または桁送り(shift) が
発生することがあり次の要素から得られた結果を無効に
することがある。要素がビットの場合、算術演算のかわ
りに論理演算を用いることでこの問題を回避することが
出来る。しかし要素が1ビット以上を含む場合、論理演
算は充分に算術演算のかわりを果たすことは出来ない。
【0009】本発明は複数の多ビット要素データ項目を
含む複合オペランドについて並列算術演算を実行するた
めの技術の発見に基づいている。たとえば、それぞれの
要素は画像の画素に関連することがあり、成分はグレー
スケールまたはカラー画素値からなることがある。算術
演算では、本明細書において「要素間信号」と称する要
素の間での信号を生成するのが普通で、これは結果を無
効にすることがあるが、本発明の技術では有効な結果を
生成する。幾つかの技術では要素間信号を防止できる特
別な回路を設けた処理装置を使用している。別の技術で
は通常の処理装置を使用可能であるが、要素間信号にか
かわらず算術演算の有効な結果を得ている。
【0010】図1は演算で無効な結果の原因となる要素
間信号が通常なら発生するとしても複合オペランドのそ
れぞれの要素に対する有効な算術演算の結果をどのよう
に得られるかを示す概略図である。
【0011】図2はソフトウェア製品からの命令を処理
装置が実行して要素間信号にかかわらず有効な算術演算
の結果を得ることが出来るようなシステムの部材を示す
概略ブロック図である。
【0012】図3は要素間信号を防止し得る要素間信号
防止回路を含む処理装置を示す概略ブロック図である。
【0013】図4は要素間信号にかかわらず有効な結果
を処理装置が得られるような動作を示す流れ図である。
【0014】図5は図3の要素間信号防止回路を実施す
るゲート回路を示す概略回路図である。
【0015】図6は図3の要素間信号防止回路を実施す
るマスクレジスタ回路を示す概略回路図である。
【0016】図7は加算および減算のそれぞれが図4の
動作を実施する演算を示す概略流れ図である。
【0017】図8は図4における動作を実施するバイア
ス方法を示す流れ図である。
【0018】図1から図4では本発明の一般的特徴を示
す。図1は多ビット要素のデータ項目に対して並列的に
実施する算術演算の有効結果を得る技術を模式的に示
す。図2は図1と同様の技術によって処理装置が実行可
能な命令を表わす命令データを含むソフトウェア製品を
示す。図3は処理桁(processing position) の間で要素
間信号の転送を防止するための要素間信号防止回路を有
する処理装置の一般的特徴を示す。図4は要素間信号に
かかわらず有効な結果を得るような処理装置の演算方法
における一般的動作を示す。
【0019】図1において、複合オペランド10はそれ
ぞれが2ビットを含む要素データ項目12および14を
含む。要素12は値「01」を有し、一方要素14は値
「10」を有する。同様に、複合オペランド20は要素
22および24を含み、それぞれの値は「01」と「1
0」である。
【0020】要素12と22はおなじビット位置を占有
でき、また要素14と24も同様におなじビット位置を
占有できる。要素12と22の最上位ビットは要素12
と22の最下位ビットにそれぞれ隣接し得る。つまり、
処理装置がオペランド10をオペランド20に加算する
算術演算を実行する場合、要素12と22が加算され、
また要素14と24が加算される。
【0021】従来の処理装置が複合オペランド10およ
び20に対して実行する加算の通常算術演算では結果3
0が生成される。図示したように、結果30はデータ項
目32と34を含み、それぞれの値は「11」および
「100」である。データ項目32内の値『1』はどち
らも桁上げ信号から得られるもので、要素14と24の
最上位ビットから桁上げ信号36また要素12と22の
最下位ビットから桁上げ信号が発生する。しかしここか
ら解るように、桁上げ信号36は「01」と「10」の
和が「11」ではなく「10」となるためデータ項目3
2に無効な結果を発生する。
【0022】無効な結果30を回避するためには、処理
装置はかわりにデータ項目42と44がそれぞれ値「1
0」と「100」を有するような有効な結果40を生成
できる。要素間信号が通常無効な結果に先行するような
有効な結果を生成するための各種の特殊技術については
後述する。
【0023】図2はソフトウェア製品60を示し、これ
は図2に図示したのと同様な部材を含むシステム内で使
用することが出来る製造物である。ソフトウェア製品6
0は保存媒体アクセス装置64からアクセス可能なデー
タ保存媒体62を含む。データ保存媒体62はたとえば
1つまたはそれ以上のフロッピーディスクの組などの磁
気媒体、1つまたはそれ以上のCD−ROMの組などの
光学媒体、半導体メモリ、またはデータを保存するため
に適切な何らかのほかの媒体であってよい。
【0024】データ保存媒体62は保存媒体アクセス装
置64がたとえばマイクロプロセッサなどで有り得る処
理装置66に提供可能なデータを保存する。処理装置6
6は入力回路70からデータを受信するために接続して
ある。データは何らかの適切な供給源、たとえばファク
シミリ(ファックス)装置や、デジタル複写機のスキャ
ナまたはコンピュータの入出力装置で有り得るようなス
キャナ、キーボードとマウスまたはペン型または鉄筆型
入力装置などのユーザ入力装置で制御するフォームエデ
ィタまたはその他の対話型画像エディタであり得るよう
なエディタ、またはデータ転送能力を有するローカルエ
リアネットワークまたはその他のネットワークであり得
るようなネットワークなどから取得することが出来る。
データは画像に関連したものであり得る。
【0025】処理装置66はまた出力回路80へデータ
を提供するためにも接続してある。データはこのあとフ
ァクシミリ装置、印刷装置、表示装置、またはネットワ
ークへ提供可能である。印刷装置はデジタル複写機の印
刷装置またはコンピュータの入出力装置のことがある。
【0026】データ保存媒体62に加えて、ソフトウェ
ア製品60は保存媒体62に保存されたデータも含む。
保存データには算術演算命令90を表わす命令データが
含まれる。処理装置66は命令90を実行し、複数の要
素データ項目を含む複合オペランドに対して算術演算を
実行することが出来る。
【0027】処理装置66はメモリ92にアクセスする
ことで算術演算が実行される要素データ項目を取得する
ことが出来る。それぞれのデータ項目はたとえば画像の
画素に関連することが出来る。データ項目はそれぞれ1
ビット以上を含むことが出来る。保存媒体62に保存さ
れているデータはまた処理装置66が実行可能な命令を
表わすデータを含み、入力回路70から受信したデータ
項目をメモリ92に保存し、メモリ92から算術演算の
ためにデータを取り込み、または出力回路80へ提供
し、または算術演算から得られたデータ項目をメモリ9
2内に保存することが出来る。
【0028】処理装置66は複数の処理桁96を有する
処理回路94を含む。処理装置66はたとえば従来のマ
イクロプロセッサのことがある。処理桁96のそれぞれ
は1ビットについての演算を実行する。処理回路94は
処理桁96を対にしてアレイを構成するように接続する
桁接続回路(position connecting circuitry) 98を含
む。対の1つの処理桁からの信号は桁接続回路98によ
って別の処理ユニットへ転送することが出来る。
【0029】算術演算が行なわれている複合オペランド
中のそれぞれの要素データ項目は処理桁96のそれぞれ
の部分行列内に存在することが出来る。処理装置66は
算術演算命令90を実行してそれぞれの要素の部分行列
内にデータ項目を得ることが出来る。算術演算命令90
の実行中に、第1の要素の部分行列は要素間信号を桁接
続回路98に提供する。要素間信号は算術演算を行なわ
せて得られた無効な結果を表わすデータ項目を第2の要
素の部分行列内に取得させることが出来る。処理装置6
6は、算術演算命令90の実行の際に、要素間信号にか
かわらず、第2の要素の部分行列内の結果データ項目が
第2の要素の算術演算の有効な結果を表わすように動作
する。
【0030】図3は処理装置100の一般部材を表わ
す。処理回路102は複合オペランドに対して算術演算
を並列に実行することが出来る。図2の処理回路94と
同様に、処理回路102は複数の処理桁104を有す
る。処理桁104のそれぞれは1ビットについての演算
を実行する。処理回路102は処理桁104を対に接続
してアレイを形成するための桁接続回路106を含む。
対の1つの処理桁からの信号は桁接続回路106によっ
て別の処理ユニットへ転送することが出来る。
【0031】しかし処理装置100は通常のマイクロプ
ロセッサではない。要素間信号防止回路110が接続さ
れているので、桁接続回路106を介して処理桁104
の間の信号転送を防止することが出来る。
【0032】制御回路112は制御信号を処理回路10
2ならびに要素間信号防止回路110へ提供するように
接続してある。
【0033】制御信号によって処理回路102は複数の
多ビット要素データ項目を含む複合オペランドに対して
算術演算を並列して実行する。たとえば、それぞれの要
素データ項目は画像の画素に関連させることが出来る。
それぞれの要素は処理桁104のそれぞれの部分行列内
に存在する。処理回路102はそれぞれの要素に対して
算術演算を実行し、結果データ項目をそれぞれの要素の
部分行列内に取得する。算術演算実行中に、第1の要素
の部分行列は要素間信号を桁接続回路106へ提供す
る。要素間信号は算術演算を行なわせて第2の要素の部
分行列内の無効な結果を表わす結果データ項目を取得す
ることが出来る。
【0034】制御信号はまた、桁接続回路106による
要素間信号の転送を要素間信号防止回路110に防止さ
せる。その結果として、第2の要素の部分行列内に得ら
れるデータ項目は第2の要素についての算術演算の有効
な結果を表わすことになる。
【0035】図4は図2の処理回路94と類似の処理回
路を用いて処理装置を作動させる方法における一般的動
作を表わしている。囲み130の動作は複合オペランド
を処理回路94に提供し、それぞれの要素は処理桁96
のそれぞれの部分行列へ提供されている。囲み132の
動作では、処理回路94を作動させて複合オペランドに
対して並列算術演算を実行し、それぞれの部分行列に得
られるデータ項目を取得している。算術演算実行中に、
第1の要素の部分行列は要素間信号を提供する。囲み1
32の動作はそれぞれの結果データ項目が要素間信号に
かかわりなく有効な結果を表わすように実行される。
【0036】図1から図4を参照して上記に説明した一
般的特徴は広範な要素を用いまた各種の動作によって多
様な方法で実施することが出来る。たとえば、上述の一
般的特徴の幾つかは従来の処理装置で実施されており、
一方その他の特徴は特別設計の処理装置で実施すること
が出来る。
【0037】図5および図6では図3に図示した一般的
部材の2種類の実装を図示している。図7および図8で
は1つ以上のデータ項目に対して並列的に動作可能な処
理ユニットに適用可能な図4に図示した一般的段階の2
種類の実装を図示したものである。このような多数の処
理ユニットを並列に使用することでこれらの間に桁接続
回路を用いる必要がなくなる。
【0038】図5は図3に関連して説明した一般的部材
の実施を表わしており処理回路102に従来のマイクロ
プロセッサを使用することが可能となる。図5の実施に
はマイクロプロセッサ間の要素間信号を防止できる要素
間信号防止回路110を含む。つまり、それぞれのマイ
クロプロセッサがMビット幅の場合、M≧1として、処
理桁のアレイはMビットの何らかの整数倍で部分行列に
分割することが出来る。これによってそれぞれの部分行
列が要素データ項目についての算術演算を実行すること
が出来る。
【0039】図5は処理桁104を提供するマイクロプ
ロセッサのアレイ内におけるp番目のマイクロプロセッ
サであるマイクロプロセッサ150を表わしている。ア
レイ内部で、桁接続回路106は隣接するマイクロプロ
セッサと桁上げ入力端子および桁上げ出力端子で接続し
ている。しかし図示したようにマイクロプロセッサ15
0の桁上げ入力端子は桁上げ選択信号がANDゲート1
52に供給された場合に限り(p−1)番目のマイクロ
プロセッサの桁上げ出力端子から信号を受信する。同様
に、マイクロプロセッサ150の桁上げ出力端子からの
信号は桁上げ選択信号がANDゲート154に供給され
た場合に限り(p+1)番目のマイクロプロセッサへ供
給される。
【0040】幅選択復号回路156は読み出し専用メモ
リ(ROM)、プログラマブル・アレイ・ロジック(P
AL)、またはその他の従来の回路であって、適切なA
NDゲートに桁上げ可能信号を提供することにより制御
回路112からの信号に応答して、桁上げ信号が異なる
要素データ項目の部分行列の間ではなく部分行列内で転
送されるようにする。制御回路112からの信号は部分
行列の幅、たとえばM、2M、3Mなどを表わしてお
り、幅選択復号回路156からの出力はこれにしたがっ
て部分行列内のANDゲートではオンに、また部分行列
間のANDゲートではオフになる。画素の計数など大き
な数値を生成する傾向にあるタスクで有用なアレイ幅の
値について演算を実行するには、制御回路からの信号
が、幅選択復号回路156からの出力で全てのANDゲ
ートにオンの出力を供給するように幅を表わすことが出
来る。
【0041】図6は図3に関連して説明した一般的部材
の別の実施を表わしており、変更を加えた算術論理ユニ
ット(ALU)170を用いることが出来る。図6の実
施にはALU170内部のあらゆる2つの隣接する処理
桁の間で要素間信号を防止することの出来る要素間信号
防止回路が含まれている。つまり、ALU170がMビ
ット幅の場合、処理桁のアレイはMビットの何らかの整
数倍の等しい部分行列に分割することが出来る。それぞ
れの部分行列はこれによって要素データ項目についての
算術演算を実行することが出来る。
【0042】処理桁172はALU170内部での処理
桁104のp番目の桁である。アレイ内部で、図3にあ
るような桁接続回路は隣接する処理桁の桁上げ入力およ
び桁上げ出力端子を接続している。しかし図示したよう
に、桁172の桁上げ入力端子は桁接続論理回路174
を介して(p−1)番目の桁の桁上げ出力端子からの信
号を受信する。同様に、桁172の桁上げ出力端子は桁
接続論理回路174を介して(p+1)番目の桁の桁上
げ入力端子へ信号を供給する。
【0043】桁接続論理回路174はANDゲート18
0の他方の入力端子にオンの値が入力された場合に限っ
て(p−1)番目の桁からの桁上げ入力信号を提供し、
ORゲート182を介して桁172の桁上げ入力端子に
信号が供給されるようにしている。マスクレジスタがA
NDゲート180および184にオフ信号を供給する場
合、桁172の桁上げ入力端子はANDゲート184へ
の減算信号がオンの場合に限ってオン信号を受信する。
桁接続論理回路176も同様の回路を含む。
【0044】マスクレジスタ190は従来のレジスタ回
路で実現可能で、制御回路112からの信号によりマス
ク値とあわせて読み込むことが出来る。マスク値にはイ
ネーブル値たとえばオンと阻止値たとえばオフが含まれ
る。マスクレジスタ190はそれぞれのマスク値がそれ
ぞれの桁の桁上げ入力線を制御するANDゲートたとえ
ばANDゲート180および184にそれぞれのマスク
値が供給されるように接続してある。マスク値192は
(p−1)番目の桁の桁上げ入力線を制御し、マスク値
194はp番目の桁の桁上げ入力線を制御し、マスク値
196は(p+1)番目の桁の桁上げ入力線を制御す
る。一般に、イネーブル値によって1つ低い桁からの桁
上げ出力信号が上向きの方向に伝播し、また阻止値は桁
上げ出力信号の上向きの伝播を防止する。しかし減算演
算の間、阻止値は1つ低い桁が桁上げ出力信号を供給し
ている場合であっても、2の補数の算術演算の標準的実
施で必要とされるように、桁上げ入力信号を提供する。
【0045】制御回路112はそれぞれの要素データ項
目内のビット数が変化する度ごとにマスクレジスタ19
0を読み込むことが出来る。たとえば、要素データ項目
が画素値の場合、マスク値はそれぞれの画素値における
ビット数が変化する場合にいつでも変更することが出来
る。
【0046】図示した実施例では、マスク値192は1
つの要素の部分行列の最上位の処理桁を制御しており、
またマスク値194は桁172をなす隣接する要素の部
分行列の最下位の処理桁を制御する。
【0047】上述の実施はそれぞれ特別な回路を使用し
ている。これとは逆に、以下の実施では特別な回路を必
要としないが、バッファビットなどの追加ビットのため
に上述の実施例より効率が低い処理桁を使用することに
なることがある。
【0048】図7は図4を参照して説明した一般的動作
の2種類の実施を表わす流れ図で、バッファビットと呼
ぶ剰余ビットを要素データ項目間に使用している。オペ
ランド200から250で図示した第1の実施は加算演
算を実行し、オペランド250から300で図示した第
2の実施では減算演算を実行する。
【0049】複合オペランド200は複数の要素データ
項目を含む。図示したように、要素202と204はオ
ペランド200内でそれぞれ隣接している。
【0050】拡散演算をオペランド200に対して実行
して複合オペランド210を取得することが出来る。オ
ペランド210は要素202とおなじ値の要素212
と、要素204とおなじ値の要素214を含む。さら
に、オペランド210は要素212と214の間にバッ
ファビット216を含んでいる。
【0051】一般に、複合オペランドを用いる何らかの
拡散演算を用いて1つまたはそれ以上のバッファビット
を連接する要素データ項目間に含む別の複合オペランド
を取得することが出来る。たとえば、拡散回路を用いて
拡散演算を実行してもよい。バッファビットのビット数
はそれぞれの要素の部分行列内で生成された結果データ
項目が隣接する部分行列に影響を与えない程度に充分大
きくとることが出来るが、これは効率的ではない。
【0052】最大の効率のためには、バッファビット数
を最小限に止めるのが望ましいといえる。
【0053】たとえばMビットのマイクロプロセッサを
使用している場合、またnを正数としてそれぞれのデー
タ項目が((M/n)−1)ビットまたはそれ以下を含
む場合、1つのバッファビットが全ての要素データ項目
の最下位ビットにまたはこれに隣接してまたは最上位ビ
ットにまたはこれに隣接して挿入できるならばn個の要
素が1つのMビット複合オペランドに含まれることにな
る。このような場合には、全ての算術演算はMOD2
n-1 が実行され得る。
【0054】要素を拡散することでバッファビットが挿
入される場合、要素の値の範囲と解像度は保持される
が、バッファビットにさらなる処理桁を用いることにな
る。バッファビットが要素の最下位ビットに置き換わる
場合、要素値の精度または解像度が犠牲になる。バッフ
ァビットが最上位ビットを置換すると、要素値の範囲が
半分に減少する。
【0055】さらに、最上位ビットにまたはこれに隣接
したバッファビットをうまく用いることで画素に対する
算術演算の2進結果を表わすことが出来る。
【0056】それぞれの要素データ項目が((M/n)
−1)以上であるが(M/n)ビット以下を含む場合、
また幾らかの精度が犠牲にできる場合、幾つかまたは全
ての要素の最下位ビットをバッファとして用いれば、n
個の要素データ項目をMビット複合オペランド内に含め
ることが出来る。この場合、算術演算は偶数についての
み実行される。
【0057】2つの複合オペランドにおいて位置の揃っ
た要素を加算する加算演算の前に、両方のオペランド内
のそれぞれのバッファビットを0に払っておき、1つの
要素の部分行列から別の要素への桁上げ信号の伝播を防
止する。つまり、オペランド210は、ビット222と
して図示したように要素の部分行列内の全てのビット桁
でオンでありまた全てのバッファビット桁でオフの、オ
ペランド220とAND演算することになる。
【0058】AND演算は複合オペランド230を生成
し、これの要素232は要素212とおなじ値を有しま
た要素234は要素214とおなじ値を有している。バ
ッファビット236は値0を有する。
【0059】加算演算で複合オペランド230を複合オ
ペランド240と加算し、オペランド240の関連する
部分をオペランド230と同一であるとして図示してあ
り、要素242および244は要素232および234
と等しく、またバッファビット246はバッファビット
236と等しい。オペランド240はオペランド230
を複写することにより取得でき、または上述の動作と同
様の動作により取得することが出来る。複合オペランド
内のそれぞれの要素に定数が加算される場合、定数オペ
ランドは全てが0のオペランドから開始して取得するこ
とができ、定数をそれぞれの要素の部分行列の桁でOR
演算できる。
【0060】オペランド230と240の加算で複合オ
ペランド250が生成され、それぞれの要素の部分行列
内にデータ項目が得られる。結果データ項目252は要
素232と242の加算の有効な結果を表わし、一方結
果データ項目254は要素234と244の加算の有効
な結果を表わす。バッファビット256は要素234と
244が加算される部分行列から受信した桁上げ信号2
58のため値「1」を有しているが、バッファビット2
56は結果データ項目252と254が有効な結果を表
わしていることを保証している。別の加算を実行した場
合、バッファビット256は加算前にもう一度払われ
る。
【0061】オペランド200から250は図4に示し
た動作の実施を表わしていることになる。オペランド2
00、210、230、240はそれぞれの要素データ
項目が部分行列にどのように提供されるかを表わしてい
る。オペランド230、240、250は算術演算がど
のように並列的に実行され、要素間信号、桁上げ信号2
58にかかわらず有効な結果を得られるかを示してい
る。
【0062】2の補数の減算演算は減数を反転しこれに
被減数と桁上げ数を加算して、被減数と減数の差を生成
することにより実施可能である。つまり、それぞれの要
素について有効な結果を得るには、桁上げをそれぞれの
結果データ項目に加えることが必要である。これは、次
の部分行列に桁上げ信号を生成することが確実になるよ
うに、被減数オペランドと反転減数オペランド双方のバ
ッファビットが値「1」を有していれば、バッファビッ
トを用いて行なうことが出来る。
【0063】図7において、複合オペランド250は被
減数オペランドであるが、幾つかのバッファビットでは
「0」を有することがある。つまり、減算演算のために
準備するには、ビット262と264で図示したよう
な、要素の部分行列内の全てのビット桁でオフであって
全てのバッファビットの桁でオンのマスクオペランドで
あるオペランド260とのOR演算を行なう。マスク2
60はマスク220の補数となっているのが理解されよ
う。実施では2つのマスクの一方を保存しておき他方を
得るために必要なように反転することが出来る。
【0064】OR演算は複合オペランド270を生成
し、これの要素272は要素252とおなじ値を有しま
た要素274は要素254とおなじ値を有している。バ
ッファビット276および278は値「1」を有する。
【0065】複合オペランド280は減数であり、たと
えば定数「11」を全て0のオペランド内のそれぞれの
部分行列とOR演算することによって得られ、定数デー
タ項目282と284のそれぞれは値「11」を有しバ
ッファビット286および288はそれぞれ値「0」を
有している。減数は全てのバッファビットが値「0」を
有するように得る必要がある。つまり、オペランド28
0を反転してオペランド290が得られ、ここで定数デ
ータ項目292と294のそれぞれは値「00」を有し
バッファビット296および298はそれぞれ値「1」
を有する。反転演算は算術論理ユニット(ALU)によ
り2の補数の減算演算の一部として従来実施されており
符号で実施する必要はない。
【0066】加算演算ではオペランド270をオペラン
ド290に加算してオペランド300を得ている。結果
データ項目302は桁上げ信号304のため要素252
から定数データ項目282を減算した有効結果を表わし
ており、一方結果データ項目306は桁上げ信号308
のため要素254から定数データ項目284を減算した
有効結果を表わしている。
【0067】オペランド250から300は図4におけ
る動作の実施を表わしていることになるオペランド25
0、270、280、290はそれぞれの要素データ項
目が部分行列にどのように提供されるかを表わしてい
る。オペランド270、290、300は算術演算をど
のように並列的に実施して、要素間信号、桁上げ信号3
04および308にかかわらず有効な結果を得られるか
を示している。
【0068】乗算および除算演算もマスクを生成する技
術にあわせてバッファビットを用い同様に実行すること
が出来る。
【0069】図8は図4との関連で解説した一般的動作
の別の実施を表わし、要素データ項目の値を偏移させて
いる。この実施は複合オペランドの値に適用される定数
により変化する。
【0070】囲み350の動作は入力値を受信する。こ
れらの値は、0から2q の間に広がるようなqビットを
越えない正の数に制限される。図8に図示した実施で
は、保存してある値たとえば表からの値をそれぞれの入
力値に加算する算術演算を実行しており、保存してある
値は同様に±(2r-1 −1)の範囲にあるrビットを越
えない正または負の数に制限される。たとえばq=r=
4の場合、入力値は0から15までの範囲をとることが
出来、一方保存してある値は−7から+7までの範囲を
とることが出来る。この例では、算術演算で−7から+
22までの範囲の値を得ることが出来る。一般に、保存
してある値を入力値に加算する算術演算では、n、mを
正の整数とすると−nから+mまでの範囲にある値を得
ることができる。
【0071】囲み352の動作はそれぞれの入力値につ
いて部分行列を有する複合オペランドを構成する。全て
の部分行列はおなじ長さで、log2(n+m)を超過して
いる必要がある。
【0072】囲み354の動作はそれぞれの部分行列内
の値にnを加算することによって要素を偏移させ、保存
してある値が部分行列に加算された場合に負ではない結
果が得られるようにしている。ついで囲み356の動作
で保存してある値をそれぞれの部分行列に加算し、0か
ら(n+m)までの範囲をとり得る値を得ることが出来
る。
【0073】囲み356の動作で加算した保存値は桁上
げ信号が無効な結果を導かないように調節しなければな
らない。上述の実施例においては、最下位側の端部から
最上位端へ左向きに複合オペランドへ加算される保存値
を操作することにより実行することが出来る。最上位ビ
ットの「1」で示されるように保存値が0以下の場合、
左側の隣接した保存値から1を減算する。この手順はそ
れぞれの負の保存値が桁上げ信号を生成するが、負では
ない保存値はどれも生成しないため有効である。この調
節の結果として、負の保存値を加算することで生成した
桁上げ信号が有効な結果を導く。
【0074】囲み358の動作では囲み356からの結
果を調節している。囲み358の動作はたとえばそれぞ
れの部分行列からnを減算し、囲み354の動作を逆転
させることが出来る。その結果、それぞれの部分行列は
囲み356における調節より先に囲み350で受信した
入力値を保存値に加算することで有効結果を含むことに
なる。囲み358の減算は1つ以上の方法で行なうこと
が出来る。その方法の1つは、それぞれの部分行列を独
立して取り扱うことである。それぞれの部分行列内の値
を用いて参照テーブルをアクセスし、部分行列内の値か
らnを減じた別の値を得ることが出来る。もう1つの方
法は、囲み356からの結果に参照テーブルを提供する
ことである。所望すれば以降の演算に好適なようにデー
タを切り詰めるかまたは取得するために別の調節を行な
うことも出来る。
【0075】図8の実施は画素値のディザーにおけるな
どの表からの入力を加算するために有用である。他の条
件において使用するためにこれを拡張することが出来
る。
【0076】上述の一般的実施の特徴は広範なデータ処
理用途に使用可能である。しかしある種の画像処理にお
いてはそれぞれの要素データ項目について順次実行する
よりも迅速に実行しうることで特に有用であると推測さ
れる。特に、上述の特徴をセラ(Serra, J. )の「画像
分析と数学的変換(Image Analysis and Mathematical
Morphology)」、アカデミックプレス刊、1982年、
およびセラ(Serra, J. )の「画像分析と数学的変換第
2巻:理論的な進歩(Image Analysis and Mathematica
l Morphology, Volume 2: Theoretical Advances
)」、アカデミックプレス刊、1988年、に解説さ
れているのと同様の技術を実施するために使用すること
が出来る。このような技術はたとえば雑音の除去または
その他の情報を含まない特徴の除去、歪曲補正、データ
符号化、自動フォーム作成または制御シート作成のため
の部分の抽出、印刷装置特有の補正などの文書サービス
を提供するために使用することが出来る。このような文
書サービスは、ファクシミリ装置および複写装置を含む
デジタル複写装置において、印刷装置またはその他の画
像出力装置用の画像を定義するデータを生成する装置に
おいて、スキャナまたはその他の画像入力装置から受信
した画像を定義するデータについて演算するまた画像処
理を行なうその他の装置において、使用することが出来
る。
【0077】上述の特徴はグレースケールまたはカラー
画素値についての算術演算を広範な画像処理演算の間に
実行するために使用することが出来る。
【0078】上述の一般的実施の特徴はまた、各種のそ
の他の用途において、たとえば特定の特徴の組み合わせ
を含む画像について画像データベースの検索や、封筒の
住所の走査、高速スキャナからのフォームの解釈、人工
視覚、および処理に特有の印刷画像の補正および確認な
どにおいても有用であろう。
【0079】本発明は各種のその他の画像処理演算、た
とえば画素の計数、グレースケールの形態変更、グレー
スケールの回転、エラー分散画像の生成および歪曲検出
などを実行するために応用することも可能である。
【0080】本発明は画像に関連しないデータに使用す
ることも可能である。本発明はたとえば有限微分解析ま
たは物理現象のシミュレーションを実行するために使用
することが出来る。
【0081】本発明は幾つかの実施について解説した。
本発明は2つまたはそれ以上の実施を組合せて用いるこ
とにより実施することもあり得る。
【0082】本発明は複合オペランド中の要素データ項
目が単一のバッファビットで分離されているような実施
に関連して説明した。本発明はまた要素データ項目間に
複数のバッファビットを有するように実施することも可
能である。
【0083】本発明はゲート回路またはマスクレジスタ
を含む要素間信号防止回路との関連で説明した。本発明
はまたその他の形式の要素間信号防止回路で実施しても
よい。桁上げ先読み信号またはその他のこのような信号
を提供する処理装置とあわせて用いた場合、要素間信号
防止回路はこのような信号が無効な結果を派生させるの
を防止することも出来る。
【0084】本発明は加算および減算との関連で説明し
たが、乗算、除算および閾値旋回を含むその他の算術演
算に応用することが出来る。
【0085】本発明は画像に関連するデータについて演
算する実施に関連して説明したが、画像に関連しないデ
ータに対して演算を行なうために実施してもよい。
【0086】本発明は容易に入手可能な独立した部材を
含む実施に関連して説明した。本発明はまたカスタムV
LSI部材を用いまた同様にカスタムメモリ部材を用い
て実施してもよい。
【0087】本発明は従来のマイクロプロセッサを用い
た実施に関連して説明したが、本発明は縮小命令セット
計算機(RISC)チップを用いてまたはメインフレー
ム・コンピュータ、ミニコンピュータ、スーパーコンピ
ュータ、または何らかのその他の計算機の処理装置を含
む何らかのその他の処理装置を用いて実施してもよい。
【0088】本発明は単純な構造の複合オペランドに関
連して説明した。上述の実施例において、全ての要素デ
ータ項目はおなじ長さであり複合オペランド内部の要素
は相互に関連していなくとも良い。本発明は処理装置の
幅の制約内で、さらなる構造を有する複合オペランドで
実施することも可能である。たとえば、複合オペランド
は、他のオペランドがおなじ位置にある同じ幅の要素と
位置が揃っているならば、異なる幅の要素データ項目を
含んでいてもよい。また、要素データ項目は2つまたは
それ以上のグループに構成され、それぞれのグループの
要素が関連していてもよい。それぞれのグループの要素
が同じ画素に関連している場合、それぞれの要素はそれ
ぞれの閾値減少のための値を保持することが可能であ
る。より一般的には、それぞれのグループ内の要素が物
理的シミュレーション空間内の同じ位置に関連している
場合、1つの要素がその位置での値を保持しまた別の位
置がその位置での導関数を保持することが可能である。
【図面の簡単な説明】
【図1】 演算で無効な結果の原因となる要素間信号が
通常なら発生するとしても複合オペランドのそれぞれの
要素に対する有効な算術演算の結果をどのように得られ
るかを示す概略図である。
【図2】 ソフトウェア製品からの命令を処理装置が実
行して要素間信号にかかわらず有効な算術演算の結果を
得ることが出来るようなシステムの部材を示す概略ブロ
ック図である。
【図3】 要素間信号を防止し得る要素間信号防止回路
を含む処理装置を示す概略ブロック図である。
【図4】 要素間信号にかかわらず有効な結果を処理装
置が得られるような動作を示す流れ図である。
【図5】 図3の要素間信号防止回路を実施するゲート
回路を示す概略回路図である。
【図6】 図3の要素間信号防止回路を実施するマスク
レジスタ回路を示す概略回路図である。
【図7】 加算および減算のそれぞれが図4の動作を実
施する演算を示す概略流れ図である。
【図8】 図4における動作を実施するバイアス方法を
示す流れ図である。
【符号の説明】
10 複合オペランド、12,14 要素、20 複合
オペランド、30 結果、32,34 データ項目、3
6 桁上げ信号、60 ソフトウェア、62 データ保
存媒体、64 保存媒体アクセス装置、66 処理装
置、70 入力回路、80 出力回路、90 算術演算
命令、92 メモリ、94 処理回路、96処理桁、9
8 桁接続回路 100 処理装置、102 処理回路、110 要素間
信号防止回路、112 制御回路、156 幅選択復号
回路、170 ALU、172 処理桁、174 桁接
続論理回路、180 ANDゲート、182ORゲー
ト、184 ANDゲート、190 マスクレジスタ、
192,194,196 マスク値、200〜300
オペランド、220 マスク、252,254 結果デ
ータ項目、260 マスク、282,284 定数デー
タ項目、302 結果データ項目、304 桁上げ信
号、306 結果データ項目、308 桁上げ信号

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 処理装置を作動させてそれぞれが1つ以
    上のビットを含む複数の要素データ項目を含む複合オペ
    ランドに対して算術演算を並列して実施させることであ
    って、前記算術演算は第1の前記複合データ項目の1つ
    から通常なら要素間信号を生成するような演算であり、
    前記要素間信号により前記算術演算では第2の前記要素
    データ項目の1つからの無効な結果が取得されること、
    および前記算術演算がそれぞれの要素データ項目につい
    て前記要素データ項目についての前記算術演算の有効な
    結果を表わすそれぞれの結果のデータ項目を生成するよ
    うに前記処理装置を作動させることを含む、処理装置を
    作動させるための方法。
JP5317778A 1992-12-18 1993-12-17 多数の多ビット要素を含む複合オペランドに対して並列的に算術演算を実行する方法 Pending JPH06222908A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US993925 1992-12-18
US07/993,925 US5408670A (en) 1992-12-18 1992-12-18 Performing arithmetic in parallel on composite operands with packed multi-bit components

Publications (1)

Publication Number Publication Date
JPH06222908A true JPH06222908A (ja) 1994-08-12

Family

ID=25540077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5317778A Pending JPH06222908A (ja) 1992-12-18 1993-12-17 多数の多ビット要素を含む複合オペランドに対して並列的に算術演算を実行する方法

Country Status (4)

Country Link
US (1) US5408670A (ja)
EP (1) EP0602888B1 (ja)
JP (1) JPH06222908A (ja)
DE (1) DE69326314T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140096588A (ko) * 2013-01-28 2014-08-06 삼성전자주식회사 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
US6112219A (en) * 1993-09-23 2000-08-29 Realnetworks, Inc. Method and apparatus for performing fast discrete cosine transforms and fast inverse discrete cosine transforms using look-up tables
NL9400607A (nl) * 1994-04-15 1995-11-01 Arcobel Graphics Bv Dataverwerkingscircuit, vermenigvuldigingseenheid met pijplijn, ALU en schuifregistereenheid ten gebruike bij een dataverwerkingscircuit.
US6275834B1 (en) * 1994-12-01 2001-08-14 Intel Corporation Apparatus for performing packed shift operations
US6738793B2 (en) * 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
ZA9510127B (en) * 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
BR9509845A (pt) * 1994-12-02 1997-12-30 Intel Corp Microprocessador com operação de compactação de elementos de operação compósitos
IL116210A0 (en) * 1994-12-02 1996-01-31 Intel Corp Microprocessor having a compare operation and a method of comparing packed data in a processor
GB9509989D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
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
US6036350A (en) * 1995-12-20 2000-03-14 Intel Corporation Method of sorting signed numbers and solving absolute differences using packed instructions
US5946222A (en) * 1996-12-20 1999-08-31 Oak Technology, Inc. Method and apparatus for performing a masked byte addition operation
US6006316A (en) * 1996-12-20 1999-12-21 International Business Machines, Corporation Performing SIMD shift and arithmetic operation in non-SIMD architecture by operation on packed data of sub-operands and carry over-correction
US5901306A (en) * 1997-06-23 1999-05-04 Sun Microsystems, Inc. Method and apparatus for reducing a computational result to the range boundaries of a signed 8-bit integer in case of overflow
US5887181A (en) * 1997-06-23 1999-03-23 Sun Microsystems, Inc. Method and apparatus for reducing a computational result to the range boundaries of an unsigned 8-bit integer in case of overflow
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
GB2343969A (en) 1998-11-20 2000-05-24 Advanced Risc Mach Ltd A data processing apparatus and method for performing an arithemtic operation on a plurality of signed data values
US6425003B1 (en) * 1999-01-22 2002-07-23 Cisco Technology, Inc. Method and apparatus for DNS resolution
US6463521B1 (en) 1999-06-23 2002-10-08 Sun Microsystems, Inc. Opcode numbering for meta-data encoding
US7010786B2 (en) 1999-11-12 2006-03-07 Sun Microsystems, Inc. Predictive arithmetic overflow detection
US8453133B2 (en) * 1999-11-12 2013-05-28 Oracle America, Inc. Optimization of N-base typed arithmetic instructions via rework
US7207037B2 (en) * 1999-11-12 2007-04-17 Sun Microsystems, Inc. Overflow sensitive arithmetic instruction optimization using chaining
US7107581B2 (en) * 1999-11-12 2006-09-12 Sun Microsystems, Inc. Overflow predictive arithmetic instruction optimization using chaining
US6363523B1 (en) * 1999-11-12 2002-03-26 Sun Microsystems, Inc. Optimization of N-base typed arithmetic expressions
GB2362731B (en) * 2000-05-23 2004-10-06 Advanced Risc Mach Ltd Parallel processing of multiple data values within a data word
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US6834337B1 (en) 2000-09-29 2004-12-21 International Business Machines Corporation System and method for enabling multiple signed independent data elements per register
US7155601B2 (en) * 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US7631025B2 (en) * 2001-10-29 2009-12-08 Intel Corporation Method and apparatus for rearranging data between multiple registers
US7624138B2 (en) 2001-10-29 2009-11-24 Intel Corporation Method and apparatus for efficient integer transform
US7725521B2 (en) * 2001-10-29 2010-05-25 Intel Corporation Method and apparatus for computing matrix transformations
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
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
JP3779602B2 (ja) * 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
US7047383B2 (en) * 2002-07-11 2006-05-16 Intel Corporation Byte swap operation for a 64 bit operand
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411975B (en) * 2003-12-09 2006-10-04 Advanced Risc Mach Ltd Data processing apparatus and method for performing arithmetic operations in SIMD data processing
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411973B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd Constant generation in SMD processing
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409063B (en) * 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
GB2411974C (en) * 2003-12-09 2009-09-23 Advanced Risc Mach Ltd Data shift operations
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US9557994B2 (en) 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US7958181B2 (en) 2006-09-21 2011-06-07 Intel Corporation Method and apparatus for performing logical compare 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
US11620169B2 (en) * 2020-03-13 2023-04-04 Nvidia Corporation Barrierless and fenceless shared memory synchronization with write flag toggling
EP4235399A1 (en) * 2022-02-28 2023-08-30 Barcelona Supercomputing Center - Centro Nacional de Supercomputación (BSC-CMS) Method for the computation of a narrow bit width linear algebra operation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5765194A (en) * 1980-10-09 1982-04-20 Daicel Chem Ind Ltd Microbial preparation of unsaturated dicarboxylic acid
US4742552A (en) * 1983-09-27 1988-05-03 The Boeing Company Vector image processing system
US4608659A (en) * 1983-09-30 1986-08-26 Honeywell Information Systems Inc. Arithmetic logic unit with outputs indicating invalid computation results caused by invalid operands
US4722066A (en) * 1985-07-30 1988-01-26 Rca Corporation Digital signal overflow correction apparatus
US4764887A (en) * 1985-08-02 1988-08-16 Advanced Micro Devices, Inc. Carry-bypass arithmetic logic unit
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
JP2600293B2 (ja) * 1988-06-10 1997-04-16 日本電気株式会社 オーバーフロー補正回路
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
JP2523222B2 (ja) * 1989-12-08 1996-08-07 ゼロックス コーポレーション 画像縮小/拡大方法及び装置
US5280547A (en) * 1990-06-08 1994-01-18 Xerox Corporation Dense aggregative hierarhical techniques for data analysis
JPH0454679A (ja) * 1990-06-25 1992-02-21 Nec Corp 演算装置
JP2601960B2 (ja) * 1990-11-15 1997-04-23 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及びその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140096588A (ko) * 2013-01-28 2014-08-06 삼성전자주식회사 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법

Also Published As

Publication number Publication date
US5408670A (en) 1995-04-18
DE69326314T2 (de) 2000-02-24
EP0602888A1 (en) 1994-06-22
DE69326314D1 (de) 1999-10-14
EP0602888B1 (en) 1999-09-08

Similar Documents

Publication Publication Date Title
JPH06222908A (ja) 多数の多ビット要素を含む複合オペランドに対して並列的に算術演算を実行する方法
JP3584053B2 (ja) 複合オペランド内の多ビット要素を選択するためのマスク
US7389317B2 (en) Long instruction word controlling plural independent processor operations
US5506799A (en) Booth array multiplying circuit having carry correction
US6173394B1 (en) Instruction having bit field designating status bits protected from modification corresponding to arithmetic logic unit result
US5644522A (en) Method, apparatus and system for multiply rounding using redundant coded multiply result
US5995747A (en) Three input arithmetic logic unit capable of performing all possible three operand boolean operations with shifter and/or mask generator
JP3637923B2 (ja) 処理装置を作動させる方法
US4953115A (en) Absolute value calculating circuit having a single adder
US6067613A (en) Rotation register for orthogonal data transformation
US5712999A (en) Address generator employing selective merge of two independent addresses
EP0642093B1 (en) Method, system and apparatus for automatically designing a multiplier circuit and multiplier circuit designed by performing said method
US4477879A (en) Floating point processor architecture which performs square root by hardware
US6173305B1 (en) Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
US5530664A (en) Method and apparatus for automatically designing logic circuit, and multiplier
US6269385B1 (en) Apparatus and method for performing rounding and addition in parallel in floating point multiplier
JP3433588B2 (ja) マスクデータ生成回路及びビットフィールド操作回路
US7167885B2 (en) Emod a fast modulus calculation for computer systems
JPH0370416B2 (ja)
JPH0823814B2 (ja) 多重ディジット10進数を2進数に変換する装置および統一された比復号器
US5673216A (en) Process and system for adding or subtracting symbols in any base without converting to a common base
JPS6393079A (ja) デジタル画像演算処理方法及び装置
JPH10320378A (ja) 演算装置
JPH0713743A (ja) 乗算器
Purdy A binary algorithm for solving n by n systems of integer equations

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040604