Nothing Special   »   [go: up one dir, main page]

JP3522167B2 - 演算処理回路及び演算処理方法 - Google Patents

演算処理回路及び演算処理方法

Info

Publication number
JP3522167B2
JP3522167B2 JP25194399A JP25194399A JP3522167B2 JP 3522167 B2 JP3522167 B2 JP 3522167B2 JP 25194399 A JP25194399 A JP 25194399A JP 25194399 A JP25194399 A JP 25194399A JP 3522167 B2 JP3522167 B2 JP 3522167B2
Authority
JP
Japan
Prior art keywords
data
bit
component
input
pack
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.)
Expired - Fee Related
Application number
JP25194399A
Other languages
English (en)
Other versions
JP2001075780A (ja
Inventor
聰 中川
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP25194399A priority Critical patent/JP3522167B2/ja
Publication of JP2001075780A publication Critical patent/JP2001075780A/ja
Application granted granted Critical
Publication of JP3522167B2 publication Critical patent/JP3522167B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の成分データ
を有する入力データに対して演算処理を行う演算処理回
路及び演算処理方法に関し、例えば、特別な並列演算機
構を持たないような計算機(特にはプロセッサを意識し
ており、以下では、プロセッサと呼ぶこととする)を用
いて高速に処理を行うことができるようにしたものであ
る。
【0002】
【従来の技術】最近、各種装置に、32ビットプロセッ
サや64ビットプロセッサが適用されていることが多
い。32ビットプロセッサであれば、内部に、32ビッ
ト幅の演算器(スカラ加減算器、論理演算器など)が搭
載されており、64ビットプロセッサであれば、内部
に、64ビット幅の演算器が搭載されている。なお、以
下では、Wビット幅の演算器をWビット演算器と呼ぶ。
【0003】例えば、一般的な32ビットプロセッサの
場合、32ビット幅の演算命令の他に、32ビット演算
器の下位16ビットだけを使用する16ビット命令や、
下位8ビットだけを使用する8ビット命令がある。
【0004】ところで、従来、ベクトルデータのような
複数の成分からなるデータに対する演算処理は、成分デ
ータ毎の演算処理を繰り返すことによって行っていた。
例えば、ベクトルX=(x1,…,xn)とベクトルY
=(y1,…,yn)のベクトル加算Z=X+Yのよう
な処理は、成分データ毎の加算処理zi=xi+yi
(但し、iは1〜n)をベクトルの成分数n回繰り返し
て処理していた。例えば、成分データのビット数が8ビ
ットであれば、演算器が32ビット演算器であっても、
8ビット命令を発行して成分データ毎の加算処理zi=
xi+yiをベクトルの成分数n回だけ繰り返してい
た。
【0005】また、最近、成分データ毎の並列演算にも
対応できる特別なベクトル演算回路を有するプロセッサ
も出現してきた(例えば、intel社のMMXやSS
E(共に商標))。このような特別なベクトル演算回路
は、例えば、64ビットのデータを、8ビットずつの8
成分ベクトルとして演算するものである。
【0006】
【発明が解決しようとする課題】ところで、例えば、デ
ジタル画像データは、各画素毎に8ビット程度の輝度成
分データを持つなど、大量の成分データよりなるデータ
である。動画像符号化装置や動画像復号装置などにおい
ては、このような大量の成分データでなるデジタル画像
データに対する各種の演算処理(例えば、動きベクトル
の検出処理やフレーム間の差分処理や水平ライン相関の
演算処理など)を行っている。
【0007】1回の演算では1成分についての演算しか
実行できない、上述したような通常のWビット演算器を
有するプロセッサでは、デジタル画像データのような多
くの成分データを有するデータを高速に処理することが
できない。
【0008】一方、上述した特別なベクトル演算回路を
有するプロセッサでは、多くの成分データを有するデー
タに対し、高速に処理することも可能である。
【0009】しかしながら、観点を変えれば、多くの成
分データを有するデータに対し、高速に処理するために
は、その装置に適用するプロセッサが限定されるという
課題がある。
【0010】なお、成分データ毎の演算機能を備えない
演算器がプロセッサに搭載されているとして課題を説明
したが、単独の集積回路で構成されている演算器でも同
様な課題を有するものである。
【0011】そのため、特別なベクトル演算回路を用い
ないで、多くの成分データを有するデータを高速に処理
し得る演算処理回路及び演算処理方法が求められてい
る。
【0012】
【課題を解決するための手段】かかる課題を解決するた
め、第1の本発明は、複数の成分データからなる1又は
2以上の入力データに対し、所定の演算を行う演算処理
回路において、(1)入力データの成分データをWビッ
ト幅にパックしたパックデータを入力するパックデータ
入力手段と、(2)Wビット幅の演算を行うWビット演
算器を1個又は複数組合せて備え、入力されたパックデ
ータに対し、Wビット幅のデータのまま、所定の演算を
行うパックデータ演算手段と、(3)パックデータであ
る、演算結果データを所定の出力形式で出力するパック
データ出力手段とを有することを特徴とする。
【0013】また、第2の本発明は、複数の成分データ
からなる1又は2以上の入力データに対し、所定の演算
を行う演算処理方法において、(1)入力データの成分
データをWビット幅にパックしたパックデータを入力
し、(2)Wビット幅の演算を行う、1個又は複数個の
組合せのWビット演算器を用いて、入力されたパックデ
ータに対し、Wビット幅のデータのまま、所定の演算を
行い、(3)パックデータである、演算結果データを所
定の出力形式で出力することを特徴とする。
【0014】
【発明の実施の形態】(A)第1の実施形態 まず、後述する第2の実施形態〜第5の実施形態などの
演算処理回路及び演算処理方法に共通する技術思想を、
図1を参照しながら説明する。なお、以下では、図1に
示したものを第1の実施形態の演算処理回路及び演算処
理方法と呼ぶこととする。
【0015】この第1の実施形態の演算処理回路及び演
算処理方法は、複数の成分データからなるデータを演算
処理するものである。
【0016】図1において、第1の演算処理回路は、パ
ックデータ入力手段1、パックデータ演算手段2及びパ
ックデータ出力手段3とからなる。
【0017】パックデータ入力手段1は、複数の成分デ
ータからなる1つ以上の入力データに対する演算処理を
Wビット演算器2Aを用いて実行できるようにするた
め、複数の成分データをパックしたデータとして、パッ
クデータ演算手段2に与えるものである。
【0018】ここで、ある入力データxが、複数の成分
データxi(i=1,…,n)(但し、nは成分数)か
らなるものとし、すなわち、x=(x1,…,xn)と
し、各i番目の成分データxiをそれぞれ所定のwiビ
ット幅で表現するものとすると、パックデータ入力手段
1は、各wiビットの成分データxiをWビット幅(但
し、wiの合計はWを越えないものとする)にパックし
たデータXとして入力する。なお、各成分データxiの
ビット幅wiはそれぞれ異っていても良い。
【0019】例えば、各成分データxiが既にWビット
幅にパックされたデータXがあれば、パックデータ入力
手段1は、そのパックデータXをパックデータ演算手段
2に与える。
【0020】また例えば、各成分データxiが異なるレ
ジスタなどに格納されていれば、パックデータ入力手段
1は、各wiビットの成分データxiをWビット幅にパ
ックした後に、パックデータ演算手段2に与える。
【0021】ここで、例えば、パック方法としては、W
ビットのうちの、上位ビット側(又は下位ビット側)か
ら、順にw1、w2、…ビットずつのビットに、成分デ
ータx1、x2、…をパックする等の方法がある。
【0022】パックされていないデータをパックするよ
り具体的な方法として、以下の第1及び第2の方法など
を挙げることができる。
【0023】第1の方法は、各成分データxiを入力
し、それぞれをwiビット幅にマスクし、適切な位置ま
でシフトしたものの論理和を求める方法である。また、
第2の方法は、メモリ上の連続したバイト列として格納
された成分データ(この場合、wi=8)をWビットの
ワードとして読み出す方法である。
【0024】以下、第1の方法を、図2を用いて、具体
例で説明する(なお、図2は、説明のために簡略化した
例を示している)。Wビットが32ビットとし、図2
(A)に示す有効なビット幅w1〜w3が10ビットで
ある3個の成分データx1〜x3をWビット幅にパック
するとする。また、3個の成分データx1〜x3は、別
個の32ビットのメモリ又はレジスタに格納されている
とする。
【0025】この場合、有効なビット幅は10ビットで
あっても、格納されているメモリ又はレジスタにおける
上位側に、図2(B)に示すように、不要なビットが存
在している可能性がある。そこでまず、格納されている
各成分データx1、x2、x3に対し、有効ビット幅
(10ビット)にマスキングし、図2(C)に示すよう
なマスク後データを得る。マスキングは、各成分データ
x1、x2、x3と、マスク用データ「0000000
000000000000000111111111
1」との論理積を求めることで実行できる。
【0026】次に、パックした際に、各成分データx
1、x2、x3が互いに重なることを防止するため、マ
スク後の各成分データx1、x2、x3を、異なるシフ
ト量でシフトする。ここでは、図2(D)に示すよう
に、マスク後の成分データx1を上位へ20ビット、マ
スク後の成分データx2を10ビットだけシフトさせて
いる。
【0027】そして最後に、シフト後の各成分データx
1、x2、x3の論理和をとって、図2(E)に示すパ
ックデータXを得る。
【0028】なお、成分データxiのビット幅wiの合
計が、演算器2Aのビット幅Wに満たない場合には、パ
ックデータに、成分データを表すためには使われていな
いビットが生じるが、その成分データ以外のビットの状
態は任意であっても良い。例えば、図2(E)の例で
は、上位2ビットが成分データ以外のビットであって
「00」であるものを示したが、ここが「11」、「1
0」、「01」のいずれであっても良い。
【0029】また、パックデータ演算手段2による演算
が、2以上の入力データx、y、…に対するものであれ
ば、各入力パックデータX、Y、…も、各成分データx
i、yiをWビット幅にパックしたものとなる。
【0030】パックデータ演算手段2は、パックデータ
入力手段1からのパックデータX(、Y、…)に対し、
所定の演算を行い、演算結果データZをパックデータ出
力手段3に与えるものである。ここで、所定の演算と
は、例えば、スカラ加減算や、ビット毎の論理演算や、
シフト演算などであり、また、これら演算の複数の組合
せである。
【0031】このパックデータ演算手段2は、パックデ
ータのビット幅Wをビット幅としている1又は複数のW
ビット演算器2Aを備えており、このWビット演算器2
Aが所定の演算を実行する中心となるものである。Wビ
ット演算器2Aは、例えば、従来の技術の項で説明し
た、成分データ毎の並列演算機能を備えないものであ
り、パックデータの全体に対して、所定の演算を実行す
る。言い換えると、Wビット演算器2Aは、Wビット幅
のデータに対し、Wビット幅で演算しているだけであ
り、成分毎の演算を直接行っているものではない。
【0032】パックデータ出力手段3は、パックデータ
演算手段2から与えられた演算結果データ(成分データ
がパックされているデータ)を、所定のデータ形式で出
力するものである。
【0033】パックデータ出力手段3は、例えば、この
パックされている演算結果データが、他の演算処理回路
の入力データになる場合には、そのまま引き渡す。
【0034】また、パックデータ出力手段3は、パック
されている演算結果データからそれぞれの成分データを
分離して出力するようにしても良い。このような分離方
法としては、例えば、以下の第1及び第2の方法を挙げ
ることができる。
【0035】第1の成分データ毎の分離方法は、シフト
動作とマスキング動作を組み合わせた方法であり、詳述
は避けるが、図2を用いて詳述したパック化方法のほぼ
逆の手順で各成分データziを分離抽出する方法であ
る。
【0036】第2の成分データ毎の分離方法は、メモリ
上の連続したバイト列にWビットのワードとして格納
し、個々のバイト(この場合wi=8)を読み出すこと
で分離する方法である。
【0037】第1の実施形態の演算処理回路の処理(第
1の実施形態の演算処理方法)は、以下の通りである。
【0038】演算処理に供するデータにおける各成分デ
ータを、Wビット幅にパックしたデータを形成する。こ
のような成分データがパックされたパックデータに対
し、Wビット演算器を適用して、所定の演算手続を1回
実行する。その演算結果データを出力する。この際、必
要ならば、パックされている演算結果データを各成分デ
ータに分離する。
【0039】上述した第1の実施形態によれば、各成分
データ毎の所定の演算を、成分データをパックしたパッ
クデータとして、Wビット演算器を利用した処理手続を
1回だけ実行して成分毎の演算結果を並列的に得るよう
にしたので、成分毎の並列演算機能を備えた特別な構成
の演算回路を用いないで、多くの成分データを有するデ
ータを高速に処理することができる。
【0040】以下では、演算種類を特定した各実施形態
について説明する。
【0041】なお、以下の説明において、Wビット幅の
データX、Yに対する、Wビット幅のスカラ加算をX+
Yで、スカラ減算をX−Yで、Wビット幅のビット毎の
論理和をX│Yで、論理積をX&Yで、排他的論理和を
X^Yで、論理否定を ̄Xで、Wビット幅の下位へのs
ビットのシフト演算をX>>sで表現する。
【0042】また、以下の説明において、全ての成分デ
ータ毎の最上位ビットを単にMSBと呼ぶことにする。
このMSBは、Wビット幅のデータの最上位1ビットを
表すのではなく、パックされた各成分データのwiビッ
ト幅のビット列のうちの最上位ビット全て(n個の成分
がパックされている場合は、n個のビット)を表すもの
とする。また、MSBの全ビットが1で、それ以外のビ
ットが全て0であるWビット幅のデータをMで表すこと
にする。
【0043】なお、以下の第4及び第5の実施形態の説
明においては、各成分データが2の補数表現で表されて
いるものを意識している。また、以下の第2及び第3の
実施形態は、各成分データが符号付の数であっても符号
なしの数であっても適用できるが、各成分データが符号
付の数である場合には、2の補数表現で表されているも
のを意識している。
【0044】(B)第2の実施形態 第2の実施形態は、複数の成分データからなる2つの入
力データに対し、成分毎の加算を行う演算処理回路及び
演算処理方法である。
【0045】図3は、第2の実施形態の演算処理回路の
構成を示し、上述した図1との同一、対応部分には、同
一、対応符号を付して示しているものである。
【0046】図3において、第2の実施形態のパックデ
ータ入力手段1は、2つの入力データX=(x1,…,
xn)及びY=(y1,…,yn)を、それぞれ成分デ
ータをWビット幅にパックしてWビット幅のパックデー
タX、Yとしてパックデータ演算手段(この第2の実施
形態に関してはパックデータ加算手段と呼ぶ)2に入力
する。
【0047】パックデータ加算手段2は、2個のMSB
置換部200、201と、Wビット加算器202と、加
算結果調整部203とからなる。
【0048】各MSB置換部200、201はそれぞ
れ、対応する入力パックデータX、YのMSBを「0」
に置き換えたデータX0、Y0を得るものである。例え
ば、(1)式及び(2)式に従う演算を実行して、置換
後データX0、Y0を得る。
【0049】 X0=X&( ̄M) …(1) Y0=Y&( ̄M) …(2) なお、(1)式、(2)式に従う演算で、入力パックデ
ータX、YのMSBを「0」に置き換えたデータX0、
Y0を得る場合には、各MSB置換部200、201は
それぞれ、例えば、Wビット幅の固定データ ̄Mと、入
力パックデータX又はYとの論理積を得るWビット論理
積回路で構成できる。
【0050】各MSB置換部200、201からの出力
データX0、Y0は、Wビット加算器202に与えられ
る。Wビット加算器202は、入力されたデータX0及
びY0を、Wビット幅のスカラ加算し、その加算結果デ
ータZ0を、加算結果調整部203に与える。Wビット
加算器202での演算処理を数式で表すと、(3)式に
示す通りである。
【0051】 Z0=X0+Y0 …(3) 加算結果調整部203は、上述したMSB置換部200
及び201と共に、各成分データ毎の加算を並列的に行
う処理(ベクトル加算)を、WビットにパックされたW
ビットパックデータとしてWビット加算器202で行う
(スカラ加算)ことによる弊害を除去するためのもので
ある。
【0052】加算結果調整部203は、Wビット加算器
202の加算結果データZ0のMSBを、加算結果デー
タZ0と入力パックデータX及びYとのビット毎の排他
的論理和のMSBに置き換えたデータZを得てパックデ
ータ出力手段3に与える。
【0053】加算結果調整部203による上述の処理
は、例えば、(4)式又は(5)式のWビット幅の演算
を行うことに相当する。(4)式又は(5)式から明ら
かなように、上述した機能を果たすならば、演算の順序
等は任意である。
【0054】 Z=Z0^((X^Y)&M) …(4) Z=Z0^(X&M)^(Y&M) …(5) 加算結果調整部203が、(4)式に従う演算を実行す
るものである場合、加算結果調整部203は、例えば、
固定データMを保持しているMレジスタと、入力パック
データX及びYのWビット幅の排他的論理和を求める第
1のWビット排他的論理和回路と、その排他的論理和デ
ータとMレジスタの保持データMとのWビット幅の論理
積を求めるWビット論理積回路と、その論理積データと
加算結果データZ0とのWビット幅の排他的論理和を求
める第2のWビット排他的論理和回路とで構成できる。
【0055】パックデータ出力手段3は、加算結果調整
部203から与えられた加算結果データZを、所定のデ
ータ形式で出力するものである。
【0056】次に、MSB置換部200及び201と、
加算結果調整部203とを設けている意味合いについ
て、図4(なお、図4は、説明のために簡略化した例を
示している)を参照しながら説明する。
【0057】説明の簡略化のために、W=8、w1=w
2=4とし、各成分データが2の補数表現された4ビッ
トの符号付の数である場合を取り上げる(なお、符号な
しの成分データにもこの第2の実施形態は適用でき
る)。また、成分毎の加算が行われる2個のベクトル
を、10進数表記で、x=(1,−2)及びy=(1,
3)とする。この場合、各成分データがパックされたデ
ータX、Yはそれぞれ、図4(A)に示すように、「0
0011110」、「00010011」となる。
【0058】ここで、MSB置換部200及び201
と、加算結果調整部203とが設けられておらず、Wビ
ット加算器202だけが設けられている場合には、スカ
ラ加算結果X+Yは、図4(B)に示すように、「00
110001」となり、成分毎の加算から見て正しい値
「00100001」とはなっていない。
【0059】これは、スカラ加算を用いているために、
各成分データの最上位ビットからの桁上がりが、上位側
の成分データの加算に影響を与えるためである。
【0060】そこで、各成分データの最上位ビットから
の桁上がりが、上位側の成分データの加算に影響を与え
ることを防止すべく、入力パックデータX、YのMSB
を0に置き換えるMSB置換部200及び201を設け
ている。図4(C)及び(D)は、これらMSB置換部
200及び201の処理を示している。
【0061】すなわち、入力パックデータX、YのMS
Bが0に置き換えられているため、置換後のデータX0
及びY0をスカラ加算すると、その加算結果データZ0
は、図4(E)に示すように「00101001」とな
り、成分毎の加算から見て正しい値「0010000
1」と、MSB部分以外では一致している(MSB部分
は必ずしも一致しない)。
【0062】加算結果データZ0におけるMSB部分を
正しい値に戻すために、加算結果調整部203が設けら
れている。加算結果調整部203による調整の考え方
は、上述した(5)式が良く反映している。
【0063】(5)式における(X&M)と(Y&M)
とはそれぞれ、MSB置換部200、201で欠落させ
た、入力パックデータX、YのMSB部分のみを取り出
した値である。これらと、MSB部分以外の加算結果で
あるZ0とを、桁上がりを起こさずに加算できれば、求
める成分毎の加算結果が得られる。桁上がりを無視した
1ビットの加算は排他的論理和であるので、図4(F)
に示すように、これらの排他的論理和を演算することに
よって、MSB部分も正しい値となる。
【0064】以上の説明は、第2の実施形態の処理(第
2の実施形態の演算処理方法)の説明にもなっているの
で、処理だけを取り上げた説明は省略する。
【0065】上述した第2の実施形態によれば、各成分
データ毎の加算演算を、成分データをパックしたパック
データとして、Wビット加算器を利用した処理手続を1
回だけ実行して成分毎の加算結果を並列的に得るように
したので、成分毎の並列演算機能を備えた特別な構成の
演算回路を用いないで、多くの成分データを有するデー
タを高速にベクトル加算処理することができる。
【0066】(C)第3の実施形態 第3の実施形態は、複数の成分データからなる2つの入
力データに対し、成分毎の減算を行う演算処理回路及び
演算処理方法である。
【0067】図5は、第3の実施形態の演算処理回路の
構成を示し、上述した図1との同一、対応部分には、同
一、対応符号を付して示しているものである。
【0068】図5において、第3の実施形態のパックデ
ータ入力手段1は、2つの入力データx=(x1,…,
xn)及びy=(y1,…,yn)を、それぞれ成分デ
ータをWビット幅にパックしてWビット幅のパックデー
タX、Yとしてパックデータ演算手段(この第3の実施
形態に関してはパックデータ減算手段と呼ぶ)2に入力
する。
【0069】パックデータ減算手段2は、2個のMSB
置換部210、211と、Wビット減算器212と、減
算結果調整部213とからなる。
【0070】MSB置換部210は、対応する入力パッ
クデータXのMSBを「1」に置き換えたデータX1を
得るものである。MSB置換部211は、対応する入力
パックデータYのMSBを「0」に置き換えたデータY
0を得るものである。MSB置換部210、211はそ
れぞれ、例えば、(6)式、(7)式に従う演算を実行
して、置換後データX1、Y0を得る。
【0071】 X1=X│M …(6) Y0=Y&( ̄M) …(7) なお、MSB置換部211は、第1の実施形態のMSB
置換部200、201と同様に構成することができる。
一方、MSB置換部210は、(6)式に従う演算で、
入力パックデータXのMSBを「1」に置き換えたデー
タX1を得る場合には、MSB置換部210は、例え
ば、Wビット幅のデータMの保持レジスタと、その保持
レジスタの保持データMと入力パックデータXとの論理
和を得るWビット論理和回路とで構成できる。
【0072】各MSB置換部210、211からの出力
データX1、Y0は、Wビット減算器212に与えられ
る。Wビット減算器212は、入力されたデータX1か
ら入力データY0を、Wビット幅でスカラ減算し、その
減算結果データZ1を、減算結果調整部213に与え
る。Wビット減算器212での演算処理を数式で表す
と、(8)式に示す通りである。
【0073】 Z1=X1−Y0 …(8) 減算結果調整部213は、上述したMSB置換部210
及び211と共に、各成分データ毎の減算を並列的に行
う処理(ベクトル減算)を、WビットにパックされたW
ビットパックデータとしてWビット減算器212で行う
(スカラ減算)ことによる弊害を除去するためのもので
ある。
【0074】減算結果調整部213は、Wビット減算器
212の減算結果データZ1のMSBを、減算結果デー
タZ1と入力パックデータXと入力パックデータYとの
ビット毎の排他的論理和の否定のMSBに置き換えたデ
ータZを得てパックデータ出力手段3に与える。
【0075】減算結果調整部213による上述の処理
は、例えば、(9)式又は(10)式のWビット幅の演
算を行うことに相当する。(9)式又は(10)式から
明らかなように、上述した機能を果たすならば、演算の
順序等は任意である。
【0076】 Z=Z1^((X^Y^M)&M) …(9) Z=Z1^M^((X^Y)&M) …(10) 減算結果調整部213が、(9)式に従う演算を実行す
るものである場合、減算結果調整部213は、例えば、
固定データMを保持しているMレジスタと、入力パック
データX及びYのWビット幅の排他的論理和を求める第
1のWビット排他的論理和回路と、その排他的論理和デ
ータとMレジスタの保持データMとのWビット幅の排他
的論理和を求める第2のWビット排他的論理和回路と、
その排他的論理和データとMレジスタの保持データMと
のWビット幅の論理積を求めるWビット論理積回路と、
その論理積データと減算結果データZ1とのWビット幅
の排他的論理和を求める第3のWビット排他的論理和回
路とで構成できる。
【0077】パックデータ出力手段3は、減算結果調整
部213から与えられた減算結果データZを、所定のデ
ータ形式で出力するものである。
【0078】ここで、MSB置換部210及び211
と、減算結果調整部213とが設けられておらず、Wビ
ット減算器212だけが設けられている場合には、スカ
ラ減算結果X+Yは、成分毎の減算から見て必ずしも正
しい値とはならない。これは、スカラ減算を用いている
ために、各成分データの最上位ビットからの桁下がり
が、上位側の成分データの減算に影響を与えるためであ
る。
【0079】そのため、この第3の実施形態では、MS
B置換部210及び211と、減算結果調整部213と
を設けている。
【0080】このように、MSB置換部210及び21
1と、減算結果調整部213とを設けることは、上述し
た第2の実施形態と同様である。
【0081】なお、MSB置換部210及び211によ
る処理、減算結果調整部213による処理を上述のよう
に定めたかの説明は省略するが、MSB置換部210及
び211による処理、減算結果調整部213による処理
により、各成分データの最上位ビットからの桁下がり
が、上位側の成分データの減算に影響を与えることを防
止できている。
【0082】上述した第3の実施形態によれば、各成分
データ毎の減算を、成分データをパックしたパックデー
タとして、Wビット減算器を利用した処理手続を1回だ
け実行して成分毎の減算結果を並列的に得るようにした
ので、成分毎の並列演算機能を備えた特別な構成の演算
回路を用いないで、多くの成分データを有するデータを
高速にベクトル減算処理することができる。
【0083】(D)第4の実施形態 第4の実施形態は、複数の成分データからなる1個の入
力データに対し、成分毎の符号反転を行う演算処理回路
及び演算処理方法である。
【0084】図6は、第4の実施形態の演算処理回路の
構成を示し、上述した図1との同一、対応部分には、同
一、対応符号を付して示しているものである。
【0085】図6において、第4の実施形態のパックデ
ータ入力手段1は、1個の入力データx=(x1,…,
xn)を、その成分データをWビット幅にパックしてW
ビット幅のパックデータXとしてパックデータ演算手段
(この第4の実施形態に関してはパックデータ符号反転
手段と呼ぶ)2に入力する。
【0086】パックデータ符号反転手段2は、MSB置
換部220、整数部変換部221及び符号調整部222
とからなる。
【0087】MSB置換部220は、入力パックデータ
XのMSBを「0」に置き換えたデータX0を得るもの
である。MSB置換部220は、例えば、(11)式に
従う演算を実行して、置換後データX0を得る。なお、
MSB置換部220は、第1の実施形態のMSB置換部
200、201と同様に構成することができる。
【0088】 X0=X&( ̄M) …(11) MSB置換部220も、後述する整数部変換部221で
の減算処理が、パックデータになっているために、各成
分の範囲を越えて影響し合うことを回避すべく、入力パ
ックデータXのMSBを「0」に置換するものである。
【0089】整数部変換部221は、データMと、MS
B置換後のパックデータX0のWビット幅のスカラ減算
を行い、その演算結果データZ2を符号調整部222に
与えるものである。整数部変換部221による演算は、
(12)式で表すことができる。
【0090】 Z2=M−X0 …(12) この第4の実施形態が対象としている各成分データは、
上述のように、2の補数表現に従っているので、絶対値
が同じ正負の成分データの符号を除いた整数部分の和は
以下のようになる。すなわち、整数部分を仮に4ビット
とすると、絶対値が同じ正負の成分データの符号を除い
た整数部分の和は「10000」となる。従って、(1
2)式は、MSB置換部220での処理をも考慮する
と、各成分データの整数部分を符号反転に合わせて変換
したものとなる。しかしながら、整数部変換部221か
らの出力データZ2の符号ビット位置の値(符号)は、
各成分データ毎の符号反転から見て正しい値になってい
るとは限らない。
【0091】符号調整部222は、そのため、整数部変
換部221からの整数部変換データZ2における各成分
の整数部分の値を維持したまま、符号ビットの値を、各
成分データ毎の符号反転から見て正しい値に調整する。
すなわち、符号調整部222は、整数部変換データZ2
のMSBを、整数部変換データZ2と入力パックデータ
Xのビット毎の排他的論理和の否定のMSBに置き換え
た符号反転データZを得てパックデータ出力手段3に与
える。
【0092】符号調整部222による上述の処理は、例
えば、(13)式又は(14)式のWビット幅の演算を
行うことに相当する。(13)式又は(14)式から明
らかなように、上述した機能を果たすならば、演算の順
序等は任意である。なお、図6では、符号調整部222
が(13)式に従う演算を実行するように記載している
が、これには限定されない。
【0093】 Z=Z2^(X&M)^M …(13) Z=Z2^(( ̄X)&M) …(14) 符号調整部222が、(14)式に従う演算を実行する
ものである場合、符号調整部222は、例えば、入力パ
ックデータXのWビット幅の論理否定を求める論理否定
回路と、その論理否定データと固定データMとのWビッ
ト幅の論理積を求める論理積回路と、その論理積データ
と整数部変換データZ2とのWビット幅の排他的論理和
を求める排他的論理和回路とで構成できる。
【0094】パックデータ出力手段3は、符号調整部2
22から与えられた符号反転データZを、所定のデータ
形式で出力するものである。
【0095】以上の構成の説明によって、処理も明かで
あるので、第4の実施形態の処理(演算処理方法)の説
明は省略する。
【0096】上述した第4の実施形態によれば、各成分
データ毎の符号反転を、成分データをパックしたパック
データとして、Wビット幅の演算器を利用した処理手続
を1回だけ実行して成分毎の符号反転結果を並列的に得
るようにしたので、成分毎の並列演算機能を備えた特別
な構成の演算回路を用いないで、多くの成分データを有
するデータを高速に符号反転処理することができる。
【0097】(E)第5の実施形態 第5の実施形態は、複数の成分データからなる入力デー
タの全ての成分に対し、成分毎の絶対値を求める演算処
理回路及び演算処理方法である。
【0098】図7は、第5の実施形態の演算処理回路の
構成を示し、上述した図1との同一、対応部分には、同
一、対応符号を付して示しているものである。
【0099】図7において、第5の実施形態のパックデ
ータ入力手段1は、1個の入力データx=(x1,…,
xn)を、その成分データをWビット幅にパックしてW
ビット幅のパックデータXとしてパックデータ演算手段
(この第5の実施形態に関してはパックデータ絶対値化
手段と呼ぶ)2に入力する。なお、この第5の実施形態
の場合、各成分xiのビット幅wiが全て、所定のビッ
ト幅wに等しいものとする。
【0100】パックデータ絶対値化手段2は、符号抽出
部230、シフト部231、スカラ減算器232、及
び、MSB調整部233とからなる。
【0101】なお、周知のように、2の補数表現で表さ
れている各成分データにおいて、その成分データが正で
あれば、その絶対値はそのままであり、その成分データ
が負であれば、全てのビットを論理反転した後に「1」
を加算することで絶対値化できる。パックデータ絶対値
化手段2は、この点を考慮して構成されている。
【0102】符号抽出部230は、MSBが全て入力パ
ックデータXのMSBと等しく、その他の成分ビットが
0であるデータXMを得て、シフト部231、スカラ減
算器232及びMSB調整部233に与える。符号抽出
部230は、例えば、(15)式に従って、データXM
を形成する。
【0103】 XM=X&M …(15) 符号抽出部230からの出力データXMにおいて、各成
分データxiに対応するwi(=w)ビット幅のデータ
部分は、成分データxiが正であれば全てのビットが
0、すなわち、「00…00」となり、成分データxi
が負であれば、MSBが「1」で他が「0」、すなわ
ち、「10…00」となる。言い換えると、各成分デー
タxiの符号ビット情報のみを抽出したものとなってい
る。
【0104】シフト部231は、符号抽出部230から
の出力データXMを下位側にw−1ビットだけシフトし
たデータXLを得て、スカラ減算器232及びMSB調
整部233に与える。シフト部231は、例えば、(1
6)式に従って、データXLを形成する。
【0105】 XL=XM>>(w−1) …(16) 上述したように、符号抽出部230からの出力データX
Mにおいて、各成分データxiに対応するwi(=w)
ビット幅のデータ部分は、成分データxiが正であれば
「00…00」であり、成分データxiが負であれば
「10…00」であるので、シフト部231からの出力
データXLにおいて、各成分データxiに対応するwi
(=w)ビット幅のデータ部分は、成分データxiが正
であれば「00…00」となり、成分データxiが負で
あれば「00…01」となる。
【0106】スカラ減算器232は、符号抽出部230
からの出力データXMから、シフト部231からの出力
データXLを、Wビット幅のスカラ減算し、その減算結
果データXSをMSB調整部233に与える。スカラ減
算器232による演算は、(17)式で表すことができ
る。
【0107】 XS=XM−XL …(17) 符号抽出部230からの出力データXMにおいて、各成
分データxiに対応するwi(=w)ビット幅のデータ
部分は、成分データxiの正負に応じて、「00…0
0」又は「10…00」をとり、シフト部231からの
出力データXLにおいて、各成分データxiに対応する
wi(=w)ビット幅のデータ部分は、成分データxi
の正負に応じて、「00…00」又は「00…01」を
とるので、減算結果データXSにおいて、各成分データ
xiに対応するwi(=w)ビット幅のデータ部分は、
成分データxiが正であれば「00…00」となり、成
分データxiが負であれば「01…11」となる。
【0108】MSB調整部233は、入力パックデータ
Xと、符号抽出部230からの出力データXMと、スカ
ラ減算器232からの出力データXSとのビット毎の排
他的論理和をとると共に、さらに、その排他的論理和デ
ータZLと、シフト部231からの出力データXLと
を、Wビット幅でスカラ加算し、得られたデータZを、
絶対値データZとしてパックデータ出力手段3に与え
る。MSB調整部233は、結果として、(18)式及
び(19)式に示す演算を実行していることになる。
【0109】 ZL=X^XM^XS …(18) Z=ZL+XL …(19) 以下、(18)式及び(19)式の意味合いを説明す
る。
【0110】符号抽出部230からの出力データXMに
おいて、各成分データxiに対応するwi(=w)ビッ
ト幅のデータ部分は、成分データxiの正負に応じて、
「00…00」又は「10…00」をとり、スカラ減算
器232からの出力データXSにおいて、各成分データ
xiに対応するwi(=w)ビット幅のデータ部分は、
成分データxiの正負に応じて、「00…00」又は
「01…11」をとるので、(18)式におけるXM^
XSの各成分データxiに対応するwi(=w)ビット
幅のデータ部分は、成分データxiが正であれば「00
…00」となり、成分データxiが負であれば「11…
11」となる。
【0111】このような値をとるデータXM^XSと、
入力パックデータXとの排他的論理和データZLを求め
ると、成分データxiが正であれば、データXM^XS
の成分データxiに対応するデータ部分が「00…0
0」であるため、成分データxiがそのまま排他的論理
和データZLに現れ、一方、成分データxiが負であれ
ば、データXM^XSの成分データxiに対応するデー
タ部分が「11…11」であるため、成分データxiの
各ビットが論理反転されて排他的論理和データZLに現
れる。
【0112】このような入力パックデータXにおける正
の成分データはそのまま含み、負の成分データに対して
は各ビットを論理反転したデータZLが得られたので、
後は、負の成分データに対応した部分に「1」を加算す
れば良い。
【0113】シフト部231からの出力データXLは、
上述のように、各成分データxiに対応するwi(=
w)ビット幅のデータ部分が、成分データxiの正負に
応じて、「00…00」又は「00…01」をとってい
るので、排他的論理和データZLにデータXLをWビッ
ト幅でスカラ加算することは、負の成分データに対応し
た部分にのみ「1」を加算することに相当する。以上の
ようにして絶対値データZが得られる。
【0114】なお、MSB調整部233などにおける演
算の順序等は演算の意味を変えなければ任意である。
【0115】例えば、上記説明では、負の入力成分デー
タに対する符号反転処理が、「全てのビットの論理反転
に1を加算する処理」として説明したが、「1を減算し
てから全てのビットを論理反転」する、(20)式に示
すような演算処理であっても良い。
【0116】 Z=(X−XL)^(XM|XS) …(20) MSB調整部233が(18)式及び(19)に従って
演算するものであれば、MSB調整部233は、例え
ば、データXM及びデータXSのWビット幅の排他的論
理和を求める第1のWビット排他的論理和回路と、その
排他的論理和データと入力パックデータXとのWビット
幅の排他的論理和を求める第2のWビット排他的論理和
回路と、その排他的論理和データとデータXLとのWビ
ット幅のスカラ加算値を求めるスカラ加算器とで構成で
きる。
【0117】パックデータ出力手段3は、MSB調整部
233から与えられた絶対値データZを、所定のデータ
形式で出力するものである。
【0118】以上の構成の説明によって、処理も明かで
あるので、第5の実施形態の処理(演算処理方法)の説
明は省略する。
【0119】上述した第5の実施形態によれば、各成分
データ毎の絶対値を、成分データをパックしたパックデ
ータとして、Wビット幅の演算器を利用した処理手続を
1回だけ実行して成分毎の絶対値を並列的に得るように
したので、成分毎の並列演算機能を備えた特別な構成の
演算回路を用いないで、多くの成分データを有するデー
タに対し、高速に絶対値を求めることができる。
【0120】(F)第6の実施形態 第6の実施形態は、入力データにおける成分データの数
が多く、各成分データのビット幅の総和がWビットを越
えている場合に適用する演算処理回路及び演算処理方法
である。
【0121】図8は、第6の実施形態の演算処理回路の
構成を示し、上述した図1との同一、対応部分には、同
一、対応符号を付して示しているものである。
【0122】図8において、第6の実施形態のパックデ
ータ入力手段1は、複数の成分からなる入力データに対
する演算処理を所定のWビット幅のWビット演算器2A
を用いて行うために、ある入力データx=(x1,…,
xn)(nは成分数)を、m個のグループG1〜Gmに
分け、各グループG1、…、GmにパックデータXG
1、…XGmを形成し、順次、パックデータ演算手段2
に入力するものである。なお、演算に供する入力データ
が2以上の場合には、各入力データx、y、…に対し
て、上述した成分データのWビット幅へのパック化を行
う。
【0123】パックデータ入力手段1は、例えば、以下
のような方法により、パック化を行う。i番目の成分デ
ータxiのビット幅をwiとすると、パックデータ入力
手段1は、n個のビット幅wiの成分データを、それぞ
れのグループに含まれる成分データのビット幅の合計が
Wビット以下となるようm個のグループG1〜Gmに分
け、複数の成分データを含むグループについては、グル
ープに含まれる成分データをWビット幅にパックする。
より具体的には、例えば、1番目の成分データから順
に、ビット幅の合計がWビット幅に収まる分だけ成分デ
ータを集めてグループ化し、Wビット幅に収まらなくな
った成分データからは、次のグループとすることによっ
て、それぞれがWビット幅に収まるグループを構成す
る。
【0124】なお、各成分データxiのビット幅wiは
それぞれ異なっていても良い。また、あるグループにお
ける各成分データxiのビット幅wiの合計がWに満た
ない場合に、成分データを表すためには使われていない
ビットの状態は任意とする。さらに、1つの成分データ
しか含まないグループに対する処理は任意である。例え
ば、1つの成分データのみがパックされたものとして、
複数の成分データがパックされたデータに対するのと同
じ処理を行っても良いし、また、桁上がりや桁下がりな
どが問題とならないので、別途そのグループのための処
理を行っても良い。
【0125】パックデータ演算手段2は、第1の実施形
態と同様なものであり、内蔵するWビット演算器(1個
とは限らない)2Aを用いて、入力された各グループ毎
の入力パックデータに対し、所定の演算を行う。なお、
1つの成分データのみがパックされたパックデータに対
しては、成分データがパックされたことに基づかない演
算処理を行うものであっても良い。
【0126】パックデータ出力手段3は、パックデータ
演算手段2から与えられた演算結果データ(成分データ
がパックされているデータ)を、所定のデータ形式で出
力するものであり、第1の実施形態のものと同様であ
る。
【0127】上述した第6の実施形態によれば、各成分
データ毎の所定の演算を、成分データをグループ化し、
各グループの成分データをパックしたパックデータとし
て、Wビット演算器を利用するパックデータ演算手段
を、各グループについて1回ずつ実行して、グループ内
の成分毎の演算結果を並列的に得るようにしたので、成
分毎の並列演算機能を備えた特別な構成の演算回路を用
いないで、多くの成分データを有するデータを高速に演
算処理することができる。
【0128】(G)他の実施形態 第1及び第6の実施形態は、本発明についての概念的実
施形態であり、この実施形態で普遍的に説明したよう
に、Wビット幅の演算種類は任意である。すなわち、成
分データがパックされた入力パックデータに対し、Wビ
ット幅の演算を行ってもパックデータ内の成分データ同
士が干渉(桁上がりや桁下がりなど)しない演算種類
(例えば、論理演算)であっても本発明を適用すること
ができる。
【0129】第2〜第5の実施形態は、成分データがパ
ックされた入力パックデータに対し、Wビット幅の所定
の演算を単に行った場合には、その演算結果データが正
しくならないことも生じる演算種類について、その誤り
を抑える方法を明確にするため、詳述したものである。
【0130】第2〜第5の実施形態においては、成分デ
ータが例えば2の補数表現で表されているものであった
が、符号+絶対値表現、1の補数表現、n増し表現など
の他の表現形式が適用されている成分データに対して
も、本発明の技術思想を適用することができる。この場
合においても、パックデータに対し、演算が、各成分デ
ータの範囲を越えて影響し合うことを防止する操作や、
その操作のために、所定演算を実行した後に本来の値に
なっていないこともあり得るビット位置の値を正しい値
に戻す操作を適宜実行すれば良い。ここで、第2及び第
3の実施形態について、符号+絶対値表現、1の補数表
現、n増し表現などの表現形式を適用した場合であって
も、符号ビットを有さない正値だけの成分データを取り
扱うこともできる。
【0131】また、第2〜第5の実施形態において、入
力データの各成分データの値の範囲が予め制限されてい
るような場合に、不要な演算を省略することも可能であ
る。例えば、図3において、入力データYの各成分デー
タのMSBが全て0であることが予め分かって居る場合
には、MSB置換部201は省略でき、また、加算結果
調整部203の入力データYに関する演算部分を省略で
きる。
【0132】上記各実施形態は、Wビット幅の各種の演
算器を備えているプロセッサを用いることを意図して成
されたものであるが、個別部品であるWビット幅の演算
器やレジスタを適宜配置、接続して、上記各実施形態の
演算処理回路を構成するようにしても良い。
【0133】逆に、本発明の演算処理方法をソフトウェ
アによって実現するようにしても良い。
【0134】
【発明の効果】以上のように、本発明の演算処理回路と
及び方法によれば、入力データの成分データをWビット
幅にパックしたパックデータを入力し、Wビット幅の演
算を行う、1個又は複数個の組合せのWビット演算器を
用いて、入力されたパックデータに対し、Wビット幅の
データのまま、所定の演算を行い、パックデータであ
る、演算結果データを所定の出力形式で出力するように
したので、成分データ毎の演算が可能な特別な演算回路
を用いることなく、複数の成分データからなる入力デー
タをWビット幅の演算器を用いて並列的に処理すること
が可能となり、高速に演算結果を得ることができる。
【図面の簡単な説明】
【図1】第1の実施形態の構成を示すブロック図であ
る。
【図2】成分データのパック化方法の一例の説明図であ
る。
【図3】第2の実施形態の構成を示すブロック図であ
る。
【図4】第2の実施形態のパックデータ加算手段の構成
原理の説明図である。
【図5】第3の実施形態の構成を示すブロック図であ
る。
【図6】第4の実施形態の構成を示すブロック図であ
る。
【図7】第5の実施形態の構成を示すブロック図であ
る。
【図8】第6の実施形態の構成を示すブロック図であ
る。
【符号の説明】
1…パックデータ入力手段、 2…パックデータ演算手段、 2A…Wビット演算器、 3…パックデータ出力手段。
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/00 G06F 5/00 G06T 1/00 H03M 7/30

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパックデータ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ演算手段は、 Wビット幅のパックデータを演算したときに、パックデ
    ータ内の各成分データの範囲を越えて演算結果が影響し
    合う、1又は複数のWビット演算器でなる第1のWビッ
    ト演算部と、 この第1のWビット演算部に至る前に、この第1のWビ
    ット演算部が演算しても、パックデータ内の各成分デー
    タの範囲を越えて演算結果が影響し合うことを防止する
    ように、この第1のWビット演算部への入力パックデー
    タを操作する、1又は複数のWビット演算器でなる第2
    のWビット演算部と、 上記第1のWビット演算部からの演算結果データにおい
    て、上記第2のWビット演算部のパックデータの操作の
    影響を受けているビット位置の値を正しい値に戻す、1
    又は複数のWビット演算器でなる第3のWビット演算部
    とを少なくとも含むことを特徴とする演算処理回路。
  2. 【請求項2】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパック データ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ入力手段は、2つの入力データx=
    (x1,…,xn)及びy=(y1,…,yn)を、そ
    れぞれパックされたWビット幅のデータX、Yとして入
    力するものであり、 上記パックデータ演算手段は、 入力パックデータX、Yのそれぞれの、全ての成分毎の
    最上位ビットを0に置き換えたデータX0、Y0を得る
    最上位ビット置換部と、 これらデータX0及びY0のWビット幅のスカラ加算に
    よる演算結果データZ0=X0+Y0を得る加算部と、 この演算結果データZ0の全ての成分毎の最上位ビット
    を、データZ0とXとYとのビット毎の排他的論理和
    の、全ての成分毎の最上位ビットに置き換えたデータZ
    を得る加算結果調整部とを有することを特徴とする演
    処理回路。
  3. 【請求項3】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパックデータ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ入力手段は、2つの入力データx=
    (x1,…,xn)及びy=(y1,…,yn)を、そ
    れぞれパックされたWビット幅のデータX、Yとして入
    力するものであり、 上記パックデータ演算手段は、 入力パックデータXの全ての成分毎の最上位ビットを1
    に置き換えたデータX1を得ると共に、入力パックデー
    タYの全ての成分毎の最上位ビットを0に置き換えたデ
    ータY0を得る最上位ビット置換部と、 これらデータX1とY0のWビット幅のスカラ減算によ
    る演算結果データZ1=X1−Y0を得る減算部と、 この演算結果データZ1の全ての成分毎の最上位ビット
    を、データZ1とXとYとのビット毎の排他的論理和の
    否定の全ての成分毎の最上位ビットに置き換えたデータ
    Zを得る減算結果調整部とを有することを特徴とする演
    算処理回路。
  4. 【請求項4】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパックデータ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ演算手段は、 当該パックデータ演算手段へ入力されたパックデータか
    ら、そのパックデータにおける各成分データの正負を規
    定するWビット幅の成分正負規定データを形成する、1
    又は複数のWビット演算器でなる成分正負規定データ作
    成部と、 上記成分正負規定データ作成部からの成分正負規定デー
    タを利用し、同一の演算を行いながら、当該パックデー
    タ演算手段へ入力されたパックデータの成分データの正
    負に応じた別個の処理を実行する、1又は複数のWビッ
    ト演算器でなる正負共通Wビット演算部とを少なくとも
    含むことを特徴とする演算処理回路。
  5. 【請求項5】 上記正負共通Wビット演算部は、Wビッ
    ト幅のパックデータを演算したときに、パックデータ内
    の各成分データの範囲を越えて演算結果が影響し合う成
    分間干渉Wビット演算器を少なくとも1個以上有し、 上記成分正負規定データ作成部が、この成分間干渉Wビ
    ット演算器による演算が実行されても、パックデータ内
    の各成分データの範囲を越えて演算結果が影響し合うこ
    とを防止できる、上記成分正負規定データを作成するこ
    とを特徴とする請求項に記載の演算処理回路。
  6. 【請求項6】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパックデータ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ入力手段は、入力データx=(x1,
    …,xn)を、パックされたWビット幅のデータXとし
    て入力するものであり、 上記パックデータ演算手段は、 入力パックデータXの全ての成分毎の最上位ビットを0
    に置き換えたデータX0を得る最上位ビット置換部と、 全ての成分毎の最上位ビットが1でその他の成分ビット
    が0であるデータMと、データX0との、Wビット幅の
    スカラ減算による演算結果データZ2=M−X0を得る
    整数部変換部と、 演算結果データZ2の全ての成分毎の最上位ビットを、
    データZ2とXとのビット毎の排他的論理和の否定の全
    ての成分毎の最上位ビットに置き換えたデータZを得る
    符号調整部とを有することを特徴とする演算処理回路。
  7. 【請求項7】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理回路に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力するパックデータ入力手段と、 Wビット幅の演算を行うWビット演算器を1個又は複数
    組合せて備え、入力されたパックデータに対し、Wビッ
    ト幅のデータのまま、所定の演算を行うパックデータ演
    算手段と、 パックデータである、演算結果データを所定の出力形式
    で出力するパックデータ出力手段とを有し、 上記パックデータ入力手段は、各i番目の成分xiのビ
    ット幅wiが全てビット幅wに等しい入力データx=
    (x1,…,xn)を、パックされたWビット幅のデー
    タXとして入力するものであり、 上記パックデータ演算手段は、 全ての成分毎の最上位ビットが入力パックデータXと等
    しくその他の成分ビットが0であるデータXMを得る符
    号抽出部と、 このデータXMを下位にw−1ビットだけシフトしたデ
    ータXLを得るシフト部と、 データXMとXLのWビット幅のスカラ減算による演算
    結果データXS=XM−XLを得るスカラ減算器と、 データXとXMとXSのビット毎の排他的論理和データ
    ZLと、データXLとのWビット幅のスカラ加算による
    演算結果Z=ZL+XLを得る最上位ビット調整部とを
    有することを特徴とする演算処理回路。
  8. 【請求項8】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理方法に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 入力されたパックデータに対する所定の演算工程による
    演算には、 Wビット幅のパックデータを演算したときに、パックデ
    ータ内の各成分データの範囲を越えて演算結果が影響し
    合う、1又は複数のWビット演算器を用いた第1の演算
    と、 この第1の演算に至る前に、この第1の演算を実行して
    も、パックデータ内の各成分データの範囲を越えて演算
    結果が影響し合うことを防止するように、この第1の演
    算への入力パックデータを操作する、1又は複数のWビ
    ット演算器を用いた第2の演算と、 上記第1の演算による演算結果データにおいて、上記第
    2の演算によるパックデータの操作の影響を受けている
    ビット位置の値を正しい値に戻す、1又は複数のWビッ
    ト演算器を用いた第3の演算とを少なくとも含むことを
    特徴とする演算処理方法。
  9. 【請求項9】 複数の成分データからなる1又は2以上
    の入力データに対し、所定の演算を行う演算処理方法に
    おいて、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 パックデータを入力する工程では、 2つの入力データx
    =(x1,…,xn)及びy=(y1,…,yn)を、
    それぞれ成分データがパックされたWビット幅のデータ
    X、Yとして入力し、所定の演算を行う工程では、 これら入力パックデータX、Yのそれぞれの、全ての成
    分毎の最上位ビットを0に置き換えたデータX0、Y0
    を得、 データX0及びY0のWビット幅のスカラ加算による演
    算結果データZ0=X0+Y0を得、 この演算結果データZ0の全ての成分毎の最上位ビット
    を、データZ0とXとYとのビット毎の排他的論理和
    の、全ての成分毎の最上位ビットに置き換えたデータZ
    を最終的な演算結果データとして得ることを特徴とす
    算処理方法。
  10. 【請求項10】 複数の成分データからなる1又は2以
    上の入力データに対し、所定の演算を行う演算処理方法
    において、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 パックデータを入力する工程では、 2つの入力データx
    =(x1,…,xn)及びy=(y1,…,yn)を、
    それぞれ成分データがパックされたWビット幅のデータ
    X、Yとして入力し、所定の演算を行う工程では、 入力パックデータXの全ての成分毎の最上位ビットを1
    に置き換えたデータX1を得ると共に、入力パックデー
    タYの全ての成分毎の最上位ビットを0に置き換えたデ
    ータY0を得、 これらデータX1とY0のWビット幅のスカラ減算によ
    る演算結果データZ1=X1−Y0を得、 この演算結果データZ1の全ての成分毎の最上位ビット
    を、データZ1とXとYとのビット毎の排他的論理和の
    否定の全ての成分毎の最上位ビットに置き換えたデータ
    Zを最終的な演算結果データとして得ることを特徴とす
    る演算処理方法。
  11. 【請求項11】 複数の成分データからなる1又は2以
    上の入力データに対し、所定の演算を行う演算処理方法
    において、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 入力されたパックデータに対する所定の演算工程による
    演算には、 入力されたパックデータから、そのパックデータにおけ
    る各成分データの正負を規定するWビット幅の成分正負
    規定データを形成する、1又は複数のWビット演算器を
    用いた成分正負規定データ作成処理と、 作成された成分正負規定データを利用し、同一の演算を
    行いながら、入力されたパックデータの成分データの正
    負に応じた別個の処理を実行する、1又は複数のWビッ
    ト演算器を用いた正負共通Wビット演算とを少なくとも
    含むことを特徴とする演算処理方法。
  12. 【請求項12】 上記正負共通Wビット演算は、Wビッ
    ト幅のパックデータを演算したときに、パックデータ内
    の各成分データの範囲を越えて演算結果が影響し合う成
    分間干渉Wビット演算器を利用した処理を含み、 上記成分正負規定データ作成処理では、この成分間干渉
    Wビット演算器による演算が実行されても、パックデー
    タ内の各成分データの範囲を越えて演算結果が影響し合
    うことを防止できる、上記成分正負規定データを作成す
    ることを特徴とする請求項11に記載の演算処理方法。
  13. 【請求項13】 複数の成分データからなる1又は2以
    上の入力データに対し、所定の演算を行う演算処理方法
    において、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 パックデータを入力する工程では、 入力データx=(x
    1,…,xn)を、パックされたWビット幅のデータX
    として入力し、所定の演算を行う工程では、 入力パックデータXの全ての成分毎の最上位ビットを0
    に置き換えたデータX0を得、 全ての成分毎の最上位ビットが1でその他の成分ビット
    が0であるデータMと、データX0との、Wビット幅の
    スカラ減算による演算結果データZ2=M−X0を得、 演算結果データZ2の全ての成分毎の最上位ビットを、
    データZ2とXとのビット毎の排他的論理和の否定の全
    ての成分毎の最上位ビットに置き換えたデータZを最終
    的な演算結果データとして得ることを特徴とする演算処
    理方法。
  14. 【請求項14】 複数の成分データからなる1又は2以
    上の入力データに対し、所定の演算を行う演算処理方法
    において、 入力データの成分データをWビット幅にパックしたパッ
    クデータを入力する工程と、 Wビット幅の演算を行う、1個又は複数個の組合せのW
    ビット演算器を用いて、入力されたパックデータに対
    し、Wビット幅のデータのまま、所定の演算を行う工程
    と、 パックデータである、演算結果データを所定の出力形式
    で出力する工程とを有し、 パックデータを入力する工程では、 各i番目の成分xi
    のビット幅wiが全てビット幅wに等しい入力データx
    =(x1,…,xn)を、パックされたWビット幅のデ
    ータXとして入力し、所定の演算を行う工程では、 全ての成分毎の最上位ビットが入力パックデータXと等
    しくその他の成分ビットが0であるデータXMを得、 このデータXMを下位にw−1ビットだけシフトしたデ
    ータXLを得、 データXMとXLのWビット幅のスカラ減算による演算
    結果データXS=XM−XLを得、 データXとXMとXSのビット毎の排他的論理和データ
    ZLと、データXLとのWビット幅のスカラ加算による
    演算結果データZ=ZL+XLを最終的な演算結果デー
    タとして得ることを特徴とする演算処理方法。
JP25194399A 1999-09-06 1999-09-06 演算処理回路及び演算処理方法 Expired - Fee Related JP3522167B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25194399A JP3522167B2 (ja) 1999-09-06 1999-09-06 演算処理回路及び演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25194399A JP3522167B2 (ja) 1999-09-06 1999-09-06 演算処理回路及び演算処理方法

Publications (2)

Publication Number Publication Date
JP2001075780A JP2001075780A (ja) 2001-03-23
JP3522167B2 true JP3522167B2 (ja) 2004-04-26

Family

ID=17230295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25194399A Expired - Fee Related JP3522167B2 (ja) 1999-09-06 1999-09-06 演算処理回路及び演算処理方法

Country Status (1)

Country Link
JP (1) JP3522167B2 (ja)

Also Published As

Publication number Publication date
JP2001075780A (ja) 2001-03-23

Similar Documents

Publication Publication Date Title
JP2651267B2 (ja) 演算処理装置及び演算処理方法
JP3244506B2 (ja) 小型乗算器
US6233597B1 (en) Computing apparatus for double-precision multiplication
US5957996A (en) Digital data comparator and microprocessor
JPH07121354A (ja) 倍精度・単精度・内積演算および複素乗算が可能な乗算器
JPH0477932B2 (ja)
JP3522167B2 (ja) 演算処理回路及び演算処理方法
Neto et al. Decimal addition on FPGA based on a mixed BCD/excess-6 representation
JPH09231201A (ja) 浮動小数点乗算累算装置
US7051062B2 (en) Apparatus and method for adding multiple-bit binary-strings
JP3019796B2 (ja) 乗算器
JP3435744B2 (ja) 乗算回路
JP3198868B2 (ja) 乗算処理装置
JP2972326B2 (ja) 平方根計算装置
JP2002157114A (ja) 乗算器及びそれを搭載した集積回路装置
JP2001216136A (ja) 加算回路およびプロセッサ
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
JPH02170228A (ja) 冗長二進加算回路
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
JPH06301710A (ja) 倍精度積和演算方法および装置
JP3612950B2 (ja) 演算装置およびその方法
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
Chawla et al. Hardware efficient reconfigurable arithmetic unit
JPH03225522A (ja) 浮動小数点演算装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040203

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees