JP3336986B2 - 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 - Google Patents
信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器Info
- Publication number
- JP3336986B2 JP3336986B2 JP02567499A JP2567499A JP3336986B2 JP 3336986 B2 JP3336986 B2 JP 3336986B2 JP 02567499 A JP02567499 A JP 02567499A JP 2567499 A JP2567499 A JP 2567499A JP 3336986 B2 JP3336986 B2 JP 3336986B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- rounding
- product
- unit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Description
及びそれに用いる丸め機能付き積和演算器に関し、特に
信号処理プロセッサ等で使用する16ビットデータの効
率の良い扱いを考慮した丸めつき積和演算回路に関す
る。
を読込んで、加減算、論理演算、乗算といったさまざま
な演算を行う。特に、画像処理や音声処理等の信号処理
プログラム中に頻繁に現れる積和演算を1サイクルで実
行することができる積和演算器を搭載することによっ
て、信号処理プロセッサの処理性能を飛躍的に向上させ
ている。
実行ユニット、レジスタ、メモリの構成例を示す。図6
は「IEEE VLSI SIGNAL PROCES
SING,VI」(pp.93−101 1993)
(以下、文献1とする)において紹介された信号処理プ
ロセッサを示している。
ッサは40ビット幅のレジスタを8個持ち(以下、レジ
スタ50とする)、積和演算器52と、MUX(マルチ
プレクサ)53と、ALU(Arithmetic a
nd Logic Unit:算術及び論理演算器)5
4と、BSFT(バレルシフトユニット)55と、Xメ
モリ57xと、Yメモリ57yとを備えている。以下、
Xメモリ57x及びYメモリ57yをメモリ57x,5
7yとする。
データバス58x,58yによって接続されている。積
和演算器52とALU54とMUX53とBSFT55
とはレジスタ50からの出力51a〜51cによって接
続されている。
LU54はMUX53によって選択された即値imm.
またはレジスタ50の値を使用して算術または論理演算
を実行する。BSFT55はMUX53によって選択さ
れた即値imm.またはレジスタ50の値を使用して算
術または論理シフトを実行する。
算とは、 A=A+B×C ……(1) という乗算と加算とを行う演算である。
の加数Aに加算し、この結果を(1)式の左辺Aとす
る。(1)式の右辺の加数Aは多くの場合、繰返し実行
される積和演算の結果であるが、メモリから読込むこと
もある。また、式(1)の右辺の「+」記号を「−」記
号に変えた演算も積和演算である。
和演算器においては実用性や経済性等の点から、(1)
式の右辺の被乗数B、乗数Cを16ビット幅のデータと
することが多い。この場合、被乗数Bと乗数Cとの積は
最大で32ビット幅のデータとなるので、(1)式の右
辺及び左辺Aは32ビット以上のデータ幅が必要であ
る。
るために、一般的な信号処理プロセッサでは32ビット
以上の幅を持つレジスタを搭載している。このようなプ
ロセッサでレジスタに16ビットデータを保持する時、
レジスタの15〜0ビットあるいは31〜16ビットの
どちらかに置くことになる。
(1)式の積和演算を実行する場合について、図7を参
照して説明する。図7は図6に示した信号処理プロセッ
サのレジスタ50と積和演算器52とに注目して積和演
算を実行する過程を示す図である。
リから(1)式の右辺の被乗数Bをレジスタ502に、
乗数Cをレジスタ503に、加数Aをレジスタ501に
それぞれ読込む。
03の31〜16ビットまたは15〜0ビットのどちら
にあってもよいが、ここでは、被乗数Bがレジスタ50
2の31〜16ビットに、乗数Cがレジスタ503の1
5〜0ビットにあるものとする。加数Aはレジスタの全
てのビットを使用する。図7において、レジスタ501
〜503の下に書かれた数字はビット位置を示す。
キュームレータ)523に格納する。さらに、被乗数B
と乗数Cとを積和演算器52内にある乗算器521に入
力し、これらの積を計算する。被乗数Bと乗数Cとの積
は加減算器(±)522によって、ACC523内に格
納した加数Aに加算される。最後に、加算結果はACC
523に一旦格納され、積和演算器の出力56を通じて
加数Aが格納されていたレジスタ501に書戻される。
で、16ビットデータの加数をメモリから読込み、これ
に対してある積和演算を行って、その結果を再び16ビ
ットデータとしてメモリに保存する処理を考える。つま
り、途中の演算結果は別にして、入出力データの幅を1
6ビットに統一した積和演算である。
別の積和演算の加数として使うという処理を繰返し行う
場合に発生する。このような処理では加数、被乗数、乗
数が全て16ビットデータとして扱われるので、これら
の値によっては演算結果がオーバフローする可能性があ
る。しかしながら、値の範囲を適切に選ぶことが可能な
場合にはオーバフローを起こさずに、演算を実行するこ
とが可能である。
入出力データの幅を16ビットに統一した積和演算を実
行する場合について、図8を参照して説明する。図8で
は図7と同様に、プロセッサの外部に接続されたメモリ
から被乗数Bをレジスタ502の31〜16ビットに、
乗数Cをレジスタ503の15〜0ビットに、加数Aを
レジスタ501の31〜16ビットにそれぞれ読込む。
レジスタ501に読込む際に、Aの符号が39〜32ビ
ットに挿入され、15〜0ビットには“0”が挿入され
る。レジスタ501〜503にデータが格納された状態
を50nとする。
れ、A+B×Cがレジスタ501に格納される。また、
状態50n2では積和演算の結果40ビットをALU5
4によって16ビットに丸め、丸めた結果はレジスタ5
01に格納される。最後に、丸めたデータをメモリに格
納する。
一つ目の問題はメモリから読込んだ加数Aのデータ幅と
積和演算器52が要求する加数のデータ幅との相違であ
る。加数Aは16ビット幅のデータであるから、積和演
算を行うためには40ビットのデータ幅に拡張しなけれ
ばならない。したがって、同一レジスタ内に二つの16
ビット加数を置くことができない。
ータ幅とメモリ格納時のデータ幅との相違である。従来
の信号処理プロセッサが備える積和演算器は40ビット
のデータ幅をもつ演算結果を出力するので、16ビット
幅のデータとしてメモリに格納する場合、40ビットを
16ビットに丸める必要がある。つまり、積和演算に加
えて、丸め処理を行わなければならない。
ッサの性能向上を図るために、メモリとレジスタとの間
のバス幅を32ビットに増やした場合を考えると、一つ
のデータバスから16ビットデータを同時に二つ読込む
ことができる。
再び入出力データの幅を16ビットに統一した積和演算
について考えると、被乗数及び乗数は16ビットデータ
であるから、32ビットの転送能力を活かしてそれぞれ
を二つずつ同時に読込むことができる。読込まれた二つ
のデータはレジスタの31〜16ビットと15〜0ビッ
トとに格納されるものとする。
よって二つのデータを同時にレジスタに読込むことが可
能である。しかしながら、これはうまく機能しない。な
ぜならば、16ビットデータの加数はレジスタの31〜
16ビットにあって、15〜0ビットは“0”でなけれ
ばならないからである。
ているレジスタ501の15〜0ビットに別の加数があ
る場合、そのままでは正しい演算を実行することができ
ないのである。したがって、加数は一つずつレジスタに
読込まなければならない。
ジスタに二つ読込んだ場合には、レジスタ・レジスタ間
転送またはシフト等を用いて、別のレジスタに一つずつ
データを格納しなければならない。メモリ・レジスタ間
の転送命令は半分にすることができても、レジスタ・レ
ジスタ間の転送が必要となるので、この場合、メモリ・
レジスタ間の32ビット転送能力が活かされないことに
なる。
理プロセッサでは、上記のように、16ビットデータの
扱いに問題を抱えている。一つは、入出力データの幅を
16ビットに統一した積和演算において、余分な資源を
消費してしまうことである。加数の16ビットデータは
積和演算器の要求するデータ幅に合わせるためにレジス
タの幅に拡張して格納しなければならない。
同じデータ幅になっているので、16ビットのデータに
するためには丸め処理が必要である。さらに、この問題
によって、メモリ・レジスタ間の転送効率向上が期待で
きないという問題が引き起こされる。
16ビットの倍の32ビット幅に拡大したとしても、1
6ビットの加数データを複数個同時にレジスタに読込
み、効率よく演算するためにはレジスタ・レジスタ間で
の加数データの転送が不可欠である。したがって、演算
を実行するまでに必要なメモリ・レジスタ間のデータ転
送において、効率の向上は期待できない。
消し、16ビットデータの効率の良い扱いを考慮した信
号処理プロセッサ及びそれに用いる丸め機能付き積和演
算器を提供することにある。さらに詳しく言うと、レジ
スタの中での加数の位置を考慮した16ビットの積和演
算を実行可能な信号処理プロセッサ及びそれに用いる丸
め機能付き積和演算器を提供することにある。
ロセッサは、加数と被乗数と乗数との積和演算を行う積
和演算器からなる丸め機能付き積和演算器を含む信号処
理プロセッサであって、前記丸め機能付き積和演算器に
接続されたレジスタを備え、前記丸め機能付き積和演算
器は、前記レジスタ内の異なる位置から入力される加数
を選択的に入力する選択入力手段と、前記選択入力手段
で選択的に入力される加数に基づいた前記積和演算器の
積和演算結果に対してデータ幅の大きなデータをデータ
幅の小さなデータへ変換する丸め処理を行う丸め処理手
段と、前記丸め処理手段で丸め処理された前記積和演算
結果を前記レジスタ内の異なる位置に選択的に出力する
選択出力手段とを具備している。
加数と被乗数と乗数との積和演算を行う積和演算器から
なる丸め機能付き積和演算器であって、外部に接続され
たレジスタ内の異なる位置から入力される加数を選択的
に入力する選択入力手段と、前記選択入力手段で選択的
に入力される加数に基づいた前記積和演算器の積和演算
結果に対してデータ幅の大きなデータをデータ幅の小さ
なデータへ変換する丸め処理を行う丸め処理手段と、前
記丸め処理手段で丸め処理された前記積和演算結果を前
記レジスタ内の異なる位置に選択的に出力する選択出力
手段とを備えている。
器は、選択入力及び拡張手段と、丸め及び選択出力手段
と、積和演算器とを備える。丸め機能付き積和演算器は
制御信号Round,Positionによってその動
作を決定する。制御信号Roundが“0”の場合、本
発明の丸め機能付き積和演算器は従来の積和演算器とし
て動作する。
明の丸め機能付き積和演算器の動作は制御信号Posi
tionによって異なる。選択入力及び拡張手段は外部
に接続されたレジスタにおける16ビットデータである
加数の位置を制御信号Positionで与えることに
よって、加数を積和演算器が要求するデータ幅に拡張す
る。
して得られるレジスタ幅のデータを16ビットに丸め処
理した後、制御信号Positionが示すレジスタに
おける加数の位置に丸め処理したデータを出力する。
和演算器の外部に接続された32ビット以上の幅をもつ
レジスタ内の31〜16ビットあるいは15〜0ビット
にある16ビット幅の加数に対して、互いに影響を与え
ずに丸め付き積和演算を実行することが可能となる。
て図面を参照して説明する。図1は本発明の実施の形態
の構成を示すブロック図である。同図において、丸め機
能付き積和演算器4は16ビットデータの効率の良い扱
いを考慮した丸め機能付き積和演算器である。さらに詳
しく言うと、32ビット以上の幅をもつレジスタ1内に
二つの別々の16ビットデータがある場合に、互いのデ
ータに影響を与えないような積和演算が実行可能な改良
された丸め機能付き積和演算器である。
タを接続して動作させる。丸め機能付き積和演算器4は
外部のレジスタから加数、被乗数、乗数の三つのデータ
を取込む。また、丸め機能付き積和演算器4は演算の結
果を書出す出力を三つ備えている。さらに、丸め機能付
き積和演算器4は演算の動作を決定する制御信号を二つ
持つ。
接続された40ビットレジスタ1の31〜16ビットあ
るいは15〜0ビットに格納されている。被乗数及び乗
数は外部のレジスタに格納されており、丸め機能付き積
和演算器4に入力される。
レジスタ1のみを示し、被乗数や乗数が格納されている
レジスタは示していない。40ビットレジスタ1に格納
されたデータは15〜0ビットが入力データ46L、3
1〜16ビットが入力データ46H、39〜32ビット
が入力データ46Eとして丸め機能付き積和演算器4に
入力される。また、被乗数は16ビットデータ45、乗
数は16ビットデータ44として丸め機能付き積和演算
器4へ入力される。
処理の結果は出力47L,47H,47Eとして40ビ
ットレジスタ1へ書戻される。出力47L,47Hは1
6ビットデータであり、出力47Eは8ビットデータで
ある。出力47Lは40ビットレジスタ1の15〜0ビ
ットへ、出力47Hは40ビットレジスタ1の31〜1
6ビットへ、出力47Eは40ビットレジスタ1の39
〜32ビットへそれぞれ出力される。
るのは二つの制御信号Round,Positionで
ある。制御信号Positionは40ビットレジスタ
1における加数の位置を示す信号である。加数が40ビ
ットレジスタ1の31〜16ビットにある場合に制御信
号Position=1、15〜0ビットにある場合に
制御信号Position=0とする。
算器4において丸め処理を行うかどうかを決める信号で
ある。ここで、丸め処理とはデータ幅の大きなデータを
データ幅の小さなデータへ変換する操作である。この逆
の操作、つまりデータ幅の小さなデータをデータ幅の大
きなデータへ変換する操作を拡張処理と呼ぶことにす
る。丸め処理を行う場合は制御信号Round=1、丸
め処理を行わない場合は制御信号Round=0とす
る。
の内部構成について説明する。丸め機能付き積和演算器
4は積和演算器41と、選択入力及び拡張手段42と、
丸め及び選択出力手段43とからなる。
らの入力データ46E,46H,46Lからデータを選
択して拡張し、40ビットデータを出力する。また、選
択入力及び拡張手段42は制御信号Position,
Roundによって制御される。積和演算器41は選択
入力及び拡張手段42によって得られる加数と乗数44
と被乗数45とによる積和演算を実行する。
1の出力を40ビットから16ビットへ丸めて、40ビ
ットレジスタ1の指定された位置へ出力する。また、丸
め及び選択出力手段43は制御信号Position,
Roundによって制御される。
の積和演算器41に、選択入力及び拡張手段42と丸め
及び選択出力手段43とを加えることによって16ビッ
トデータの扱いを改善したものである。
き積和演算器4の動作について説明する。選択入力及び
拡張手段42は40ビットレジスタ1から入力される入
力データ46E,46H,46Lに基づいて40ビット
データ48を構成する。これは制御信号Round,P
ositionによって制御される。
処理を行わないので、丸め機能付き積和演算器4は従来
の積和演算器と同じ演算結果が得られるように動作しな
ければならない。この時、40ビットレジスタ1から入
力される入力データ46E,46H,46Lはそのまま
40ビットデータとして積和演算器41へ出力される。
は制御信号Positionによって動作が異なる。制
御信号Roundが“1”で、制御信号Positio
nが“0”の場合には、加数が40ビットレジスタ1の
15〜0ビットにあるものとして処理を行う。この場
合、40ビットレジスタ1の15〜0ビットにある加数
46Lを40ビットに拡張して積和演算器41へ出力す
る。
Positionが“1”の場合には、加数が40ビッ
トレジスタ1の31〜16ビットにあるものとして処理
を行う。この場合、40ビットレジスタ1の31〜16
ビットにある加数46Hを40ビットに拡張して積和演
算器41へ出力する。
45の積を計算し、これを40ビットデータ48に加算
した結果を、同じく40ビットデータ49として出力す
る。最後に、丸め及び選択出力手段43は積和演算器4
1で計算された積和演算の結果である40ビットデータ
49に丸め処理を行って、16ビットデータとして40
ビットレジスタ1へ出力する。ここで、丸め処理を行う
かどうかは制御信号Roundによって決定する。丸め
た16ビットデータを40ビットレジスタ1のどの部分
に出力するかは制御信号Positionによって決定
する。制御信号Roundが“0”の場合には丸め処理
を行わずに40ビットデータ49を出力47E,47
H,47Lにわけてレジスタ1へ出力する。
Positionが“0”の場合には加数が40ビット
レジスタ1の15〜0ビットにあるので、40ビットデ
ータ49に丸め処理を施して16ビットデータとし、こ
れを出力47Lとして40ビットレジスタ1の15〜0
ビットに出力する。この時、出力47H,47Eは動作
しないので、40ビットレジスタ1の39〜16ビット
は変化しない。
Positionが“1”の場合には加数が40ビット
レジスタ1の31〜16ビットにあるので、40ビット
データ49に丸め処理を施して16ビットデータとし、
これを出力47Hとして40ビットレジスタ1の31〜
16ビットに出力する。この時、出力47L,47Eは
動作しないので、40ビットレジスタ1の39〜32ビ
ット及び15〜0ビットは変化しない。
動作を示す図である。この図2を参照して選択入力及び
拡張手段42の動作について説明する。選択入力及び拡
張手段42の目的は丸め処理の有無、積和演算に必要な
加数の40ビットレジスタ1における位置を考慮し、4
0ビットレジスタ1から40ビットデータを作成するこ
とである。
理の有無は制御信号Roundによって決定し、加数の
40ビットレジスタ1における位置は制御信号Posi
tionによって決定する。
る場合、制御信号Positionが何であろうと、4
0ビットレジスタ1から入力された入力データ46E,
46H,46Lによって40ビットデータ48を構成し
て出力する。この場合、16ビットデータ46Lは40
ビットデータ48の15〜0ビット、16ビットデータ
46Hは同じく40ビットデータ48の31〜16ビッ
ト、8ビットデータ46Eは同じく40ビットデータ4
8の39〜32ビットとなる。
場合には、制御信号Positionによって動作が異
なる。制御信号Roundが“1”でかつ制御信号Po
sitionが“0”である場合、加数は40ビットレ
ジスタ1の15〜0ビットにある。そこで、40ビット
レジスタ1の15〜0ビットにある16ビットデータ4
6Lを40ビット幅のデータへ拡張し、40ビットデー
タ48とする。
号Positionが“1”である場合、加数は40ビ
ットレジスタ1の31〜16ビットにある。そこで、4
0ビットレジスタ1の31〜16ビットにある16ビッ
トデータ46Hを40ビット幅のデータへ拡張し、40
ビットデータ48とする。
タ46Lまたは16ビットデータ46Hから40ビット
データ48への拡張は次のようにして行う。まず、拡張
する16ビットデータを40ビットデータ48の31〜
16ビットとする。
ビットを取出し、その符号ビットを40ビットデータ4
8の39〜32ビットとする。通常、符号ビットは1ビ
ットの情報であるから、40ビットデータ48の39〜
32ビットには符号ビットが繰返し挿入される。最後
に、40ビットデータ48の15〜0ビットに0を挿入
する。
動作を示す図である。この図3を参照して丸め及び選択
出力手段43の動作について説明する。丸め及び選択出
力手段43へは積和演算器41から演算結果49が入力
される。
理の有無、積和演算に使用した加数の40ビットレジス
タ1における位置を考慮し、入力40ビットデータ49
を40ビットレジスタ1へ出力することである。
理の有無は制御信号Roundによって決定し、加数の
レジスタ1における位置は制御信号Positionに
よって決定する。
る場合、制御信号Positionが何であろうと、丸
め処理を行わずに入力40ビットデータ49をそのまま
40ビットレジスタ1へ出力する。
力40ビットデータ49の15〜0ビット、16ビット
出力データ47Hは同じく入力40ビットデータ49の
31〜16ビット、8ビット出力データ47Eは同じく
入力40ビットデータ49の39〜32ビットとなる。
場合、制御信号Positionによって動作が異な
る。制御信号Roundが“1”でかつ制御信号Pos
itionが“0”である場合、加数は40ビットレジ
スタ1の15〜0ビットにある。そこで、丸め及び選択
出力手段43は入力40ビットデータ49に丸め処理を
行って16ビットデータとし、これを出力47Lとす
る。これは40ビットレジスタ1の15〜0ビットに書
込まれる。この時、出力47H及び出力47Eは何も出
力しない。
号Positionが“1”である場合、加数は40ビ
ットレジスタ1の31〜16ビットにある。そこで、丸
め及び選択出力手段43は入力40ビットデータ49に
丸め処理を行って16ビットデータとし、これを出力4
7Hとする。これは40ビットレジスタ1の31〜16
ビットに書込まれる。この時、出力47L及び出力47
Eは何も出力しない。
ジスタ1のデータ幅が40ビットの場合について述べた
が、そのデータ幅が32ビットの場合にも適用可能であ
る。その場合、入力46Eと出力47Eとが不要とな
る。
幅とデータサイズとを変えることで、Mビット幅のレジ
スタで、N≦M/2なるNビットのデータを扱うように
修正することも可能である。この場合、図1において、
1はMビット幅のレジスタ、2,3,44,45,46
H,46L,47H,47LはNビット幅のデータ、4
6E,47EはM−2Nビット幅のデータ、48,49
はMビット幅のデータとなる。
5の積を計算し、選択入力及び拡張手段42から受取っ
たMビットデータ48に加算する。その演算結果49は
丸め及び選択出力手段43によって丸め処理され、Nビ
ットデータとしてレジスタ1に書戻される。選択入力及
び拡張手段42及び丸め及び選択出力手段43の動作は
それぞれ図2及び図3において、ビット位置を示す数字
39をM−1に、同じく32を2Nに、31を2N−1
に、16をNに、15をN−1に変更したものとなる。
但し、M=2Nの場合には入力46Eと出力47Eとが
不要となる。
き積和演算器の構成を示すブロック図である。図におい
ては外部に40ビットレジスタ61〜63を接続し、か
つMUX(マルチプレクサ)64,65によってレジス
タ61〜63の31〜16ビットあるいは15〜0ビッ
トのどちらかを選択して丸め機能付き積和演算器4に入
力できるようにした構成例を示している。この図4にお
いて、レジスタ61〜63はメモリ(図示せず)からデ
ータを読込んだり、メモリへデータを保存することがで
きるものとする。
使用して加数、被乗数、乗数の全てが16ビットデータ
である積和演算を実行した場合のレジスタの状態を示す
図である。これら図4及び図5を参照して丸め機能付き
積和演算器4の動作について説明する。
ビットデータがメモリから読込まれた状態にある。レジ
スタ61の31〜16ビットには加数Aが、15〜0ビ
ットには別の加数Dが格納されている。
和演算を実行する。ここで、丸め機能付き積和演算器4
への制御信号Round=1、制御信号Positio
n=1とする。
から加数Aを取込み、レジスタ62からMUX64によ
って選択された被乗数Bと、レジスタ63からMUX6
5によって選択された乗数Cとによって積和演算と丸め
処理とを行う。その結果は再びレジスタ61に書戻され
る。この時、レジスタ61の31〜16ビットに演算結
果が書込まれ、レジスタ61の15〜0ビットは変化し
ない。この状態を6n1とする。
行する。ここで、丸め機能付き積和演算器4への制御信
号Round=1、制御信号Position=0とす
る。丸め機能付き積和演算器4はレジスタ61から加数
Dを取込み、レジスタ62からMUX64によって選択
された被乗数Eと、レジスタ63からMUX65によっ
て選択された乗数Fとによって積和演算と丸め処理とを
行う。その結果は再びレジスタ61に書戻される。この
時、レジスタ61の15〜0ビットに演算結果が書込ま
れ、レジスタ61の31〜16ビットは変化しない。こ
の状態を6n2とする。
とD+E×Fとの演算結果が16ビットに丸めて31〜
16ビットと15〜0ビットとにそれぞれ格納されてお
り、そのままメモリへ保存することが可能となる。
46E,47E,47H,47Lと、レジスタ62はM
UX64を介して被乗数16ビットデータ45と、レジ
スタ63もMUX65を介して乗数16ビットデータ4
4と固定的に接続されているが、これらの組合せを自由
に選択可能なように修正することは容易である。
き積和演算器4を、複数のレジスタをもつ信号処理プロ
セッサで使用する場合に特に有効である。もちろん、信
号処理プロセッサに含まれない回路として本発明の一実
施例による丸め機能付き積和演算器4を使用することも
可能である。
演算器4を使用すれば、図5に示したように、レジスタ
内の31〜16ビットあるいは15〜0ビットにある1
6ビット幅の加数に対して、他のビットに影響を与えず
に積和演算を実行することが可能となる。この効果によ
って、レジスタ内に異なる16ビット幅の加数を混在さ
せることが可能となる。この効果は積和演算に使用する
レジスタ数の削減につながる。
付き積和演算器4を32ビット幅以上のレジスタをもつ
信号処理プロセッサに搭載した場合、2つの16ビット
幅の加数をメモリから同時に読込み、一つのレジスタ内
に混在させても正しく積和演算を実行することができる
ため、レジスタ・メモリ間の32ビット転送を活かすこ
とができる。
an Square)適応フィルタの実装を例にとって
示す。LMS適応フィルタは時刻iにおける入力信号を
xiとするタップ数TのFIR(Finite Imp
ulse Response)フィルタ(係数wj )
(j=0,1,……,T−1)の出力yi と所望信号
di との誤差ei によって、FIRフィルタの係数を
勾配法を用いて適応的に更新するものである。yi の
計算とwj の更新式とは、 yi =Σxi-j wj ……(2) ei =di −yi ……(3) wj =wj +μei xi-j ……(4) という式で表される。但し、Σはj=0からj=T−1
の総和であり、μは非常に小さな正の定数であり、j=
0,1,……,T−1である。
算しておけば全ての係数について同じ値を使用すること
ができる。そのため、(4)式のフィルタ係数の更新に
おいて係数毎に必要となる基本操作は、 (1)メモリからxi-j を読込む (2)メモリからwj を読込む (3)加数wj 、被乗数μei 、乗数xi-j による
積和演算 wj =wj +μei xi-j (4)wj をメモリへ保存 という四つの処理であることがわかる。
行う場合、xi-j ,wj ,eiは16ビットデータ、
yi は32ビット以上のデータとする場合が多い。こ
れは信号処理プロセッサに搭載された積和演算器の仕様
によるものである。xi-j,wj ,ei ,yi を上記
のようなデータ幅とした時、wj が加数となる(3)
の積和演算はデータ幅を16ビットに統一した演算にな
る。
と(4)とのメモリ・レジスタ間の転送は16ビットデ
ータの転送であるから、32ビット幅のデータバスをも
つ信号処理プロセッサならば、二つのイタレーションの
転送をまとめて一回で行うことができる。
を使用した場合、読込まれた二つのデータはレジスタの
31〜16ビットと15〜0ビットとに格納される。従
来の積和演算器を搭載するプロセッサでは、このような
配置で格納されたwj をそのままの状態で演算するこ
とは不可能だが、本発明の一実施例による丸め機能付き
積和演算器4を搭載した信号処理プロセッサならば、す
ぐに積和演算を実行することができる。その結果、wj
をメモリへ保存する(4)の処理においても、演算後
すぐに32ビット転送を使用することができる。
バスをもつ信号処理プロセッサで16ビットデータの積
和演算を実行する場合でも、本発明一実施例による丸め
機能付き積和演算器4を使用することによって、メモリ
・レジスタ間の32ビット転送を活かすことができる。
数と被乗数と乗数との積和演算を行う積和演算器からな
る丸め機能付き積和演算器において、外部に接続された
レジスタ内の異なる位置から入力される加数を選択的に
入力し、選択的に入力される加数に基づいた積和演算器
の積和演算結果に対してデータ幅の大きなデータをデー
タ幅の小さなデータへ変換する丸め処理を行い、その丸
め処理された積和演算結果をレジスタ内の異なる位置に
選択的に出力することによって、レジスタの中での加数
の位置を考慮した16ビットの積和演算を実行すること
ができるという効果がある。
ある。
ある。
ある。
器の構成を示すブロック図である。
数、被乗数、乗数の全てが16ビットデータである積和
演算を実行した場合のレジスタの状態を示す図である。
図である。
データで、被乗数及び乗数が16ビットデータである積
和演算の実行例を示すブロック図である。
数の全てが16ビットデータである積和演算を実行した
場合のレジスタの状態を示す図である。
Claims (10)
- 【請求項1】 加数と被乗数と乗数との積和演算を行う
積和演算器からなる丸め機能付き積和演算器を含む信号
処理プロセッサであって、 前記丸め機能付き積和演算器に接続されたレジスタを有
し、 前記丸め機能付き積和演算器は、前記レジスタ内の異な
る位置から入力される加数を選択的に入力する選択入力
手段と、前記選択入力手段で選択的に入力される加数に
基づいた前記積和演算器の積和演算結果に対してデータ
幅の大きなデータをデータ幅の小さなデータへ変換する
丸め処理を行う丸め処理手段と、前記丸め処理手段で丸
め処理された前記積和演算結果を前記レジスタ内の異な
る位置に選択的に出力する選択出力手段とを含むことを
特徴とする信号処理プロセッサ。 - 【請求項2】 前記レジスタは、外部から読込んだデー
タを保持するための複数のレジスタからなることを特徴
とする請求項1記載の信号処理プロセッサ。 - 【請求項3】 前記選択入力手段で選択的に入力される
加数に対してデータ幅の小さなデータをデータ幅の大き
なデータへ変換する拡張処理を行って前記積和演算器へ
入力する拡張処理手段を含むことを特徴とする請求項1
または請求項2記載の信号処理プロセッサ。 - 【請求項4】 前記丸め処理手段は、外部からの丸め指
示に応じて前記丸め処理を実行するよう構成したことを
特徴とする請求項1から請求項3のいずれか記載の信号
処理プロセッサ。 - 【請求項5】 前記選択入力手段は、前記レジスタから
入力するデータの前記レジスタ内での位置を外部からの
位置指示に応じて決定し、前記選択出力手段は、前記レ
ジスタへ出力するデータの前記レジスタ内での位置を前
記位置指示に応じて決定するよう構成したことを特徴と
する請求項1から請求項4のいずれか記載の信号処理プ
ロセッサ。 - 【請求項6】 加数と被乗数と乗数との積和演算を行う
積和演算器を含む丸め機能付き積和演算器であって、外
部に接続されたレジスタ内の異なる位置から入力される
加数を選択的に入力する選択入力手段と、前記選択入力
手段で選択的に入力される加数に基づいた前記積和演算
器の積和演算結果に対してデータ幅の大きなデータをデ
ータ幅の小さなデータへ変換する丸め処理を行う丸め処
理手段と、前記丸め処理手段で丸め処理された前記積和
演算結果を前記レジスタ内の異なる位置に選択的に出力
する選択出力手段とを有することを特徴とする丸め機能
付き積和演算器。 - 【請求項7】 前記レジスタは、外部から読込んだデー
タを保持するための複数のレジスタからなることを特徴
とする請求項6記載の丸め機能付き積和演算器。 - 【請求項8】 前記選択入力手段で選択的に入力される
加数に対してデータ幅の小さなデータをデータ幅の大き
なデータへ変換する拡張処理を行って前記積和演算器へ
入力する拡張処理手段を含むことを特徴とする請求項6
または請求項7記載の丸め機能付き積和演算器。 - 【請求項9】 前記丸め処理手段は、外部からの丸め指
示に応じて前記丸め処理を実行するよう構成したことを
特徴とする請求項6から請求項8のいずれか記載の丸め
機能付き積和演算器。 - 【請求項10】 前記選択入力手段は、前記レジスタか
ら入力するデータの前記レジスタ内での位置を外部から
の位置指示に応じて決定し、 前記選択出力手段は、前記レジスタへ出力するデータの
前記レジスタ内での位置を前記位置指示に応じて決定す
るよう構成したことを特徴とする請求項6から請求項9
のいずれか記載の丸め機能付き積和演算器。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02567499A JP3336986B2 (ja) | 1999-02-03 | 1999-02-03 | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
US09/890,749 US6792442B1 (en) | 1999-02-03 | 2000-02-03 | Signal processor and product-sum operating device for use therein with rounding function |
EP00902067A EP1197874B1 (en) | 1999-02-03 | 2000-02-03 | Signal processor and product-sum operating device for use therein with rounding function |
PCT/JP2000/000584 WO2000046692A1 (fr) | 1999-02-03 | 2000-02-03 | Processeur de signaux et additionneur-multiplicateur a fonction d'arrondi utilise dans ce dernier |
DE60035999T DE60035999T2 (de) | 1999-02-03 | 2000-02-03 | Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion |
CA002361451A CA2361451A1 (en) | 1999-02-03 | 2000-02-03 | Signal processor and product-sum operating device for use therein with rounding function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02567499A JP3336986B2 (ja) | 1999-02-03 | 1999-02-03 | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000222174A JP2000222174A (ja) | 2000-08-11 |
JP3336986B2 true JP3336986B2 (ja) | 2002-10-21 |
Family
ID=12172340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02567499A Expired - Fee Related JP3336986B2 (ja) | 1999-02-03 | 1999-02-03 | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6792442B1 (ja) |
EP (1) | EP1197874B1 (ja) |
JP (1) | JP3336986B2 (ja) |
CA (1) | CA2361451A1 (ja) |
DE (1) | DE60035999T2 (ja) |
WO (1) | WO2000046692A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3984790B2 (ja) * | 2001-01-15 | 2007-10-03 | 日本電気株式会社 | ビタビ復号処理装置 |
JP2006215611A (ja) * | 2005-02-01 | 2006-08-17 | Sony Corp | 演算装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59197936A (ja) * | 1983-04-25 | 1984-11-09 | Fujitsu Ltd | デイジタル信号処理方式 |
US4876660A (en) * | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
US5363322A (en) * | 1991-04-02 | 1994-11-08 | Motorola, Inc. | Data processor with an integer multiplication function on a fractional multiplier |
JP3166781B2 (ja) * | 1991-07-12 | 2001-05-14 | 新日本製鐵株式会社 | 加算回路 |
FR2693287B1 (fr) | 1992-07-03 | 1994-09-09 | Sgs Thomson Microelectronics Sa | Procédé pour effectuer des calculs numériques, et unité arithmétique pour la mise en Óoeuvre de ce procédé. |
JPH08137669A (ja) | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | 演算回路 |
BR9612911B1 (pt) * | 1995-08-31 | 2010-12-14 | aparelho e mÉtodo para realizar operaÇÕes multiplicaÇço-adiÇço em dados em pacote. | |
US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
JPH09274612A (ja) * | 1996-04-05 | 1997-10-21 | Hitachi Ltd | ベクトル処理装置 |
JP3767085B2 (ja) | 1996-09-04 | 2006-04-19 | セイコーエプソン株式会社 | 情報処理回路及びマイクロコンピュータ |
GB2317465B (en) * | 1996-09-23 | 2000-11-15 | Advanced Risc Mach Ltd | Data processing apparatus registers. |
-
1999
- 1999-02-03 JP JP02567499A patent/JP3336986B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-03 CA CA002361451A patent/CA2361451A1/en not_active Abandoned
- 2000-02-03 EP EP00902067A patent/EP1197874B1/en not_active Expired - Lifetime
- 2000-02-03 DE DE60035999T patent/DE60035999T2/de not_active Expired - Lifetime
- 2000-02-03 WO PCT/JP2000/000584 patent/WO2000046692A1/ja active IP Right Grant
- 2000-02-03 US US09/890,749 patent/US6792442B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE60035999T2 (de) | 2007-12-20 |
JP2000222174A (ja) | 2000-08-11 |
EP1197874A1 (en) | 2002-04-17 |
US6792442B1 (en) | 2004-09-14 |
DE60035999D1 (de) | 2007-09-27 |
EP1197874A4 (en) | 2005-02-09 |
CA2361451A1 (en) | 2000-08-10 |
WO2000046692A1 (fr) | 2000-08-10 |
EP1197874B1 (en) | 2007-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5991785A (en) | Determining an extremum value and its index in an array using a dual-accumulation processor | |
US5473554A (en) | CMOS multiplexor | |
JP3605181B2 (ja) | 掛け算累算命令を使用したデータ処理 | |
JP3750820B2 (ja) | パック・データの乗加算演算を実行する装置 | |
JP2020507844A (ja) | 入力オペランド値を処理するための装置及び方法 | |
JP3536063B2 (ja) | デジタル乗算システム | |
JP3476960B2 (ja) | 算術論理演算装置及び制御方法 | |
JP3458518B2 (ja) | 並列プロセッサ | |
JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
JP3336986B2 (ja) | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
US20030233384A1 (en) | Arithmetic apparatus for performing high speed multiplication and addition operations | |
JP2001216136A (ja) | 加算回路およびプロセッサ | |
JP3435744B2 (ja) | 乗算回路 | |
WO2008077803A1 (en) | Simd processor with reduction unit | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JP3096574B2 (ja) | 倍精度乗算を実行する方法及び演算装置 | |
JP3198868B2 (ja) | 乗算処理装置 | |
JP3551291B2 (ja) | シリアル数値演算装置 | |
JP2003084972A (ja) | 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法 | |
JP3723311B2 (ja) | 並列演算プロセッサ | |
JPWO2002029546A1 (ja) | 演算器及びそれを用いた電子回路装置 | |
JPH0414173A (ja) | 固定小数点演算器 | |
JP3457082B2 (ja) | 演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070809 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080809 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080809 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090809 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090809 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100809 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110809 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110809 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120809 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130809 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |