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

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
Application number
JP02567499A
Other languages
English (en)
Other versions
JP2000222174A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP02567499A priority Critical patent/JP3336986B2/ja
Priority to US09/890,749 priority patent/US6792442B1/en
Priority to EP00902067A priority patent/EP1197874B1/en
Priority to PCT/JP2000/000584 priority patent/WO2000046692A1/ja
Priority to DE60035999T priority patent/DE60035999T2/de
Priority to CA002361451A priority patent/CA2361451A1/en
Publication of JP2000222174A publication Critical patent/JP2000222174A/ja
Application granted granted Critical
Publication of JP3336986B2 publication Critical patent/JP3336986B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex 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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は信号処理プロセッサ
及びそれに用いる丸め機能付き積和演算器に関し、特に
信号処理プロセッサ等で使用する16ビットデータの効
率の良い扱いを考慮した丸めつき積和演算回路に関す
る。
【0002】
【従来の技術】信号処理プロセッサはメモリからデータ
を読込んで、加減算、論理演算、乗算といったさまざま
な演算を行う。特に、画像処理や音声処理等の信号処理
プログラム中に頻繁に現れる積和演算を1サイクルで実
行することができる積和演算器を搭載することによっ
て、信号処理プロセッサの処理性能を飛躍的に向上させ
ている。
【0003】図6に従来の信号処理プロセッサにおける
実行ユニット、レジスタ、メモリの構成例を示す。図6
は「IEEE VLSI SIGNAL PROCES
SING,VI」(pp.93−101 1993)
(以下、文献1とする)において紹介された信号処理プ
ロセッサを示している。
【0004】図6を参照すると、従来の信号処理プロセ
ッサは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とする。
【0005】メモリ57x,57yとレジスタ50とは
データバス58x,58yによって接続されている。積
和演算器52とALU54とMUX53とBSFT55
とはレジスタ50からの出力51a〜51cによって接
続されている。
【0006】積和演算器52は積和演算を実行する。A
LU54はMUX53によって選択された即値imm.
またはレジスタ50の値を使用して算術または論理演算
を実行する。BSFT55はMUX53によって選択さ
れた即値imm.またはレジスタ50の値を使用して算
術または論理シフトを実行する。
【0007】信号処理プログラムに頻繁に現れる積和演
算とは、 A=A+B×C ……(1) という乗算と加算とを行う演算である。
【0008】被乗数Bと乗数Cとの積を(1)式の右辺
の加数Aに加算し、この結果を(1)式の左辺Aとす
る。(1)式の右辺の加数Aは多くの場合、繰返し実行
される積和演算の結果であるが、メモリから読込むこと
もある。また、式(1)の右辺の「+」記号を「−」記
号に変えた演算も積和演算である。
【0009】固定小数点の数値データを扱う一般的な積
和演算器においては実用性や経済性等の点から、(1)
式の右辺の被乗数B、乗数Cを16ビット幅のデータと
することが多い。この場合、被乗数Bと乗数Cとの積は
最大で32ビット幅のデータとなるので、(1)式の右
辺及び左辺Aは32ビット以上のデータ幅が必要であ
る。
【0010】以上の理由から、積和演算の結果を保存す
るために、一般的な信号処理プロセッサでは32ビット
以上の幅を持つレジスタを搭載している。このようなプ
ロセッサでレジスタに16ビットデータを保持する時、
レジスタの15〜0ビットあるいは31〜16ビットの
どちらかに置くことになる。
【0011】図6に示した従来の信号処理プロセッサで
(1)式の積和演算を実行する場合について、図7を参
照して説明する。図7は図6に示した信号処理プロセッ
サのレジスタ50と積和演算器52とに注目して積和演
算を実行する過程を示す図である。
【0012】まず、プロセッサの外部に接続されたメモ
リから(1)式の右辺の被乗数Bをレジスタ502に、
乗数Cをレジスタ503に、加数Aをレジスタ501に
それぞれ読込む。
【0013】被乗数B及び乗数Cはレジスタ502,5
03の31〜16ビットまたは15〜0ビットのどちら
にあってもよいが、ここでは、被乗数Bがレジスタ50
2の31〜16ビットに、乗数Cがレジスタ503の1
5〜0ビットにあるものとする。加数Aはレジスタの全
てのビットを使用する。図7において、レジスタ501
〜503の下に書かれた数字はビット位置を示す。
【0014】続いて、加数Aを積和演算器のACC(ア
キュームレータ)523に格納する。さらに、被乗数B
と乗数Cとを積和演算器52内にある乗算器521に入
力し、これらの積を計算する。被乗数Bと乗数Cとの積
は加減算器(±)522によって、ACC523内に格
納した加数Aに加算される。最後に、加算結果はACC
523に一旦格納され、積和演算器の出力56を通じて
加数Aが格納されていたレジスタ501に書戻される。
【0015】図6のような構成の信号処理プロセッサ上
で、16ビットデータの加数をメモリから読込み、これ
に対してある積和演算を行って、その結果を再び16ビ
ットデータとしてメモリに保存する処理を考える。つま
り、途中の演算結果は別にして、入出力データの幅を1
6ビットに統一した積和演算である。
【0016】これはある積和演算の被乗数または乗数を
別の積和演算の加数として使うという処理を繰返し行う
場合に発生する。このような処理では加数、被乗数、乗
数が全て16ビットデータとして扱われるので、これら
の値によっては演算結果がオーバフローする可能性があ
る。しかしながら、値の範囲を適切に選ぶことが可能な
場合にはオーバフローを起こさずに、演算を実行するこ
とが可能である。
【0017】図6に示した従来の信号処理プロセッサで
入出力データの幅を16ビットに統一した積和演算を実
行する場合について、図8を参照して説明する。図8で
は図7と同様に、プロセッサの外部に接続されたメモリ
から被乗数Bをレジスタ502の31〜16ビットに、
乗数Cをレジスタ503の15〜0ビットに、加数Aを
レジスタ501の31〜16ビットにそれぞれ読込む。
【0018】ここで、16ビットデータである加数Aを
レジスタ501に読込む際に、Aの符号が39〜32ビ
ットに挿入され、15〜0ビットには“0”が挿入され
る。レジスタ501〜503にデータが格納された状態
を50nとする。
【0019】次の状態50n1では積和演算が実行さ
れ、A+B×Cがレジスタ501に格納される。また、
状態50n2では積和演算の結果40ビットをALU5
4によって16ビットに丸め、丸めた結果はレジスタ5
01に格納される。最後に、丸めたデータをメモリに格
納する。
【0020】以上の処理においては二つの問題がある。
一つ目の問題はメモリから読込んだ加数Aのデータ幅と
積和演算器52が要求する加数のデータ幅との相違であ
る。加数Aは16ビット幅のデータであるから、積和演
算を行うためには40ビットのデータ幅に拡張しなけれ
ばならない。したがって、同一レジスタ内に二つの16
ビット加数を置くことができない。
【0021】二つ目の問題は積和演算器の演算結果のデ
ータ幅とメモリ格納時のデータ幅との相違である。従来
の信号処理プロセッサが備える積和演算器は40ビット
のデータ幅をもつ演算結果を出力するので、16ビット
幅のデータとしてメモリに格納する場合、40ビットを
16ビットに丸める必要がある。つまり、積和演算に加
えて、丸め処理を行わなければならない。
【0022】さらに、図6に示す従来の信号処理プロセ
ッサの性能向上を図るために、メモリとレジスタとの間
のバス幅を32ビットに増やした場合を考えると、一つ
のデータバスから16ビットデータを同時に二つ読込む
ことができる。
【0023】このような信号処理プロセッサにおいて、
再び入出力データの幅を16ビットに統一した積和演算
について考えると、被乗数及び乗数は16ビットデータ
であるから、32ビットの転送能力を活かしてそれぞれ
を二つずつ同時に読込むことができる。読込まれた二つ
のデータはレジスタの31〜16ビットと15〜0ビッ
トとに格納されるものとする。
【0024】同様に、加数についても32ビット転送に
よって二つのデータを同時にレジスタに読込むことが可
能である。しかしながら、これはうまく機能しない。な
ぜならば、16ビットデータの加数はレジスタの31〜
16ビットにあって、15〜0ビットは“0”でなけれ
ばならないからである。
【0025】つまり、図8において、加数Aが格納され
ているレジスタ501の15〜0ビットに別の加数があ
る場合、そのままでは正しい演算を実行することができ
ないのである。したがって、加数は一つずつレジスタに
読込まなければならない。
【0026】32ビット転送を使用して加数を同一のレ
ジスタに二つ読込んだ場合には、レジスタ・レジスタ間
転送またはシフト等を用いて、別のレジスタに一つずつ
データを格納しなければならない。メモリ・レジスタ間
の転送命令は半分にすることができても、レジスタ・レ
ジスタ間の転送が必要となるので、この場合、メモリ・
レジスタ間の32ビット転送能力が活かされないことに
なる。
【0027】
【発明が解決しようとする課題】上述した従来の信号処
理プロセッサでは、上記のように、16ビットデータの
扱いに問題を抱えている。一つは、入出力データの幅を
16ビットに統一した積和演算において、余分な資源を
消費してしまうことである。加数の16ビットデータは
積和演算器の要求するデータ幅に合わせるためにレジス
タの幅に拡張して格納しなければならない。
【0028】さらに、積和演算の結果はレジスタの幅と
同じデータ幅になっているので、16ビットのデータに
するためには丸め処理が必要である。さらに、この問題
によって、メモリ・レジスタ間の転送効率向上が期待で
きないという問題が引き起こされる。
【0029】例えば、メモリ・レジスタ間の転送能力を
16ビットの倍の32ビット幅に拡大したとしても、1
6ビットの加数データを複数個同時にレジスタに読込
み、効率よく演算するためにはレジスタ・レジスタ間で
の加数データの転送が不可欠である。したがって、演算
を実行するまでに必要なメモリ・レジスタ間のデータ転
送において、効率の向上は期待できない。
【0030】そこで、本発明の目的は上記の問題点を解
消し、16ビットデータの効率の良い扱いを考慮した信
号処理プロセッサ及びそれに用いる丸め機能付き積和演
算器を提供することにある。さらに詳しく言うと、レジ
スタの中での加数の位置を考慮した16ビットの積和演
算を実行可能な信号処理プロセッサ及びそれに用いる丸
め機能付き積和演算器を提供することにある。
【0031】
【課題を解決するための手段】本発明による信号処理プ
ロセッサは、加数と被乗数と乗数との積和演算を行う積
和演算器からなる丸め機能付き積和演算器を含む信号処
理プロセッサであって、前記丸め機能付き積和演算器に
接続されたレジスタを備え、前記丸め機能付き積和演算
器は、前記レジスタ内の異なる位置から入力される加数
を選択的に入力する選択入力手段と、前記選択入力手段
で選択的に入力される加数に基づいた前記積和演算器の
積和演算結果に対してデータ幅の大きなデータをデータ
幅の小さなデータへ変換する丸め処理を行う丸め処理手
段と、前記丸め処理手段で丸め処理された前記積和演算
結果を前記レジスタ内の異なる位置に選択的に出力する
選択出力手段とを具備している。
【0032】本発明による丸め機能付き積和演算器は、
加数と被乗数と乗数との積和演算を行う積和演算器から
なる丸め機能付き積和演算器であって、外部に接続され
たレジスタ内の異なる位置から入力される加数を選択的
に入力する選択入力手段と、前記選択入力手段で選択的
に入力される加数に基づいた前記積和演算器の積和演算
結果に対してデータ幅の大きなデータをデータ幅の小さ
なデータへ変換する丸め処理を行う丸め処理手段と、前
記丸め処理手段で丸め処理された前記積和演算結果を前
記レジスタ内の異なる位置に選択的に出力する選択出力
手段とを備えている。
【0033】すなわち、本発明の丸め機能付き積和演算
器は、選択入力及び拡張手段と、丸め及び選択出力手段
と、積和演算器とを備える。丸め機能付き積和演算器は
制御信号Round,Positionによってその動
作を決定する。制御信号Roundが“0”の場合、本
発明の丸め機能付き積和演算器は従来の積和演算器とし
て動作する。
【0034】制御信号Roundが“1”の場合、本発
明の丸め機能付き積和演算器の動作は制御信号Posi
tionによって異なる。選択入力及び拡張手段は外部
に接続されたレジスタにおける16ビットデータである
加数の位置を制御信号Positionで与えることに
よって、加数を積和演算器が要求するデータ幅に拡張す
る。
【0035】丸め及び選択出力手段は積和演算の結果と
して得られるレジスタ幅のデータを16ビットに丸め処
理した後、制御信号Positionが示すレジスタに
おける加数の位置に丸め処理したデータを出力する。
【0036】このような構成によって、丸め機能付き積
和演算器の外部に接続された32ビット以上の幅をもつ
レジスタ内の31〜16ビットあるいは15〜0ビット
にある16ビット幅の加数に対して、互いに影響を与え
ずに丸め付き積和演算を実行することが可能となる。
【0037】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。図1は本発明の実施の形態
の構成を示すブロック図である。同図において、丸め機
能付き積和演算器4は16ビットデータの効率の良い扱
いを考慮した丸め機能付き積和演算器である。さらに詳
しく言うと、32ビット以上の幅をもつレジスタ1内に
二つの別々の16ビットデータがある場合に、互いのデ
ータに影響を与えないような積和演算が実行可能な改良
された丸め機能付き積和演算器である。
【0038】丸め機能付き積和演算器4は外部にレジス
タを接続して動作させる。丸め機能付き積和演算器4は
外部のレジスタから加数、被乗数、乗数の三つのデータ
を取込む。また、丸め機能付き積和演算器4は演算の結
果を書出す出力を三つ備えている。さらに、丸め機能付
き積和演算器4は演算の動作を決定する制御信号を二つ
持つ。
【0039】加数は丸め機能付き積和演算器4の外部に
接続された40ビットレジスタ1の31〜16ビットあ
るいは15〜0ビットに格納されている。被乗数及び乗
数は外部のレジスタに格納されており、丸め機能付き積
和演算器4に入力される。
【0040】図1では加数が格納されている40ビット
レジスタ1のみを示し、被乗数や乗数が格納されている
レジスタは示していない。40ビットレジスタ1に格納
されたデータは15〜0ビットが入力データ46L、3
1〜16ビットが入力データ46H、39〜32ビット
が入力データ46Eとして丸め機能付き積和演算器4に
入力される。また、被乗数は16ビットデータ45、乗
数は16ビットデータ44として丸め機能付き積和演算
器4へ入力される。
【0041】加数と被乗数と乗数との積和演算及び丸め
処理の結果は出力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ビットへそれぞれ出力される。
【0042】丸め機能付き積和演算器4の動作を制御す
るのは二つの制御信号Round,Positionで
ある。制御信号Positionは40ビットレジスタ
1における加数の位置を示す信号である。加数が40ビ
ットレジスタ1の31〜16ビットにある場合に制御信
号Position=1、15〜0ビットにある場合に
制御信号Position=0とする。
【0043】制御信号Roundは丸め機能付き積和演
算器4において丸め処理を行うかどうかを決める信号で
ある。ここで、丸め処理とはデータ幅の大きなデータを
データ幅の小さなデータへ変換する操作である。この逆
の操作、つまりデータ幅の小さなデータをデータ幅の大
きなデータへ変換する操作を拡張処理と呼ぶことにす
る。丸め処理を行う場合は制御信号Round=1、丸
め処理を行わない場合は制御信号Round=0とす
る。
【0044】さらに、図1の丸め機能付き積和演算器4
の内部構成について説明する。丸め機能付き積和演算器
4は積和演算器41と、選択入力及び拡張手段42と、
丸め及び選択出力手段43とからなる。
【0045】選択入力及び拡張手段42はレジスタ1か
らの入力データ46E,46H,46Lからデータを選
択して拡張し、40ビットデータを出力する。また、選
択入力及び拡張手段42は制御信号Position,
Roundによって制御される。積和演算器41は選択
入力及び拡張手段42によって得られる加数と乗数44
と被乗数45とによる積和演算を実行する。
【0046】丸め及び選択出力手段43は積和演算器4
1の出力を40ビットから16ビットへ丸めて、40ビ
ットレジスタ1の指定された位置へ出力する。また、丸
め及び選択出力手段43は制御信号Position,
Roundによって制御される。
【0047】本発明の丸め機能付き積和演算器4は従来
の積和演算器41に、選択入力及び拡張手段42と丸め
及び選択出力手段43とを加えることによって16ビッ
トデータの扱いを改善したものである。
【0048】次に、図1を参照して本発明の丸め機能付
き積和演算器4の動作について説明する。選択入力及び
拡張手段42は40ビットレジスタ1から入力される入
力データ46E,46H,46Lに基づいて40ビット
データ48を構成する。これは制御信号Round,P
ositionによって制御される。
【0049】制御信号Roundが“0”の場合は丸め
処理を行わないので、丸め機能付き積和演算器4は従来
の積和演算器と同じ演算結果が得られるように動作しな
ければならない。この時、40ビットレジスタ1から入
力される入力データ46E,46H,46Lはそのまま
40ビットデータとして積和演算器41へ出力される。
【0050】一方、制御信号Roundが“1”の場合
は制御信号Positionによって動作が異なる。制
御信号Roundが“1”で、制御信号Positio
nが“0”の場合には、加数が40ビットレジスタ1の
15〜0ビットにあるものとして処理を行う。この場
合、40ビットレジスタ1の15〜0ビットにある加数
46Lを40ビットに拡張して積和演算器41へ出力す
る。
【0051】制御信号Roundが“1”で、制御信号
Positionが“1”の場合には、加数が40ビッ
トレジスタ1の31〜16ビットにあるものとして処理
を行う。この場合、40ビットレジスタ1の31〜16
ビットにある加数46Hを40ビットに拡張して積和演
算器41へ出力する。
【0052】積和演算器41は16ビットデータ44,
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へ出力する。
【0053】制御信号Roundが“1”で、制御信号
Positionが“0”の場合には加数が40ビット
レジスタ1の15〜0ビットにあるので、40ビットデ
ータ49に丸め処理を施して16ビットデータとし、こ
れを出力47Lとして40ビットレジスタ1の15〜0
ビットに出力する。この時、出力47H,47Eは動作
しないので、40ビットレジスタ1の39〜16ビット
は変化しない。
【0054】制御信号Roundが“1”で、制御信号
Positionが“1”の場合には加数が40ビット
レジスタ1の31〜16ビットにあるので、40ビット
データ49に丸め処理を施して16ビットデータとし、
これを出力47Hとして40ビットレジスタ1の31〜
16ビットに出力する。この時、出力47L,47Eは
動作しないので、40ビットレジスタ1の39〜32ビ
ット及び15〜0ビットは変化しない。
【0055】図2は図1の選択入力及び拡張手段42の
動作を示す図である。この図2を参照して選択入力及び
拡張手段42の動作について説明する。選択入力及び拡
張手段42の目的は丸め処理の有無、積和演算に必要な
加数の40ビットレジスタ1における位置を考慮し、4
0ビットレジスタ1から40ビットデータを作成するこ
とである。
【0056】選択入力及び拡張手段42における丸め処
理の有無は制御信号Roundによって決定し、加数の
40ビットレジスタ1における位置は制御信号Posi
tionによって決定する。
【0057】例えば、制御信号Roundが“0”であ
る場合、制御信号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ビットとなる。
【0058】一方、制御信号Roundが“1”である
場合には、制御信号Positionによって動作が異
なる。制御信号Roundが“1”でかつ制御信号Po
sitionが“0”である場合、加数は40ビットレ
ジスタ1の15〜0ビットにある。そこで、40ビット
レジスタ1の15〜0ビットにある16ビットデータ4
6Lを40ビット幅のデータへ拡張し、40ビットデー
タ48とする。
【0059】制御信号Roundが“1”でかつ制御信
号Positionが“1”である場合、加数は40ビ
ットレジスタ1の31〜16ビットにある。そこで、4
0ビットレジスタ1の31〜16ビットにある16ビッ
トデータ46Hを40ビット幅のデータへ拡張し、40
ビットデータ48とする。
【0060】固定小数点データの場合、16ビットデー
タ46Lまたは16ビットデータ46Hから40ビット
データ48への拡張は次のようにして行う。まず、拡張
する16ビットデータを40ビットデータ48の31〜
16ビットとする。
【0061】さらに、拡張する16ビットデータの符号
ビットを取出し、その符号ビットを40ビットデータ4
8の39〜32ビットとする。通常、符号ビットは1ビ
ットの情報であるから、40ビットデータ48の39〜
32ビットには符号ビットが繰返し挿入される。最後
に、40ビットデータ48の15〜0ビットに0を挿入
する。
【0062】図3は図1の丸め及び選択出力手段43の
動作を示す図である。この図3を参照して丸め及び選択
出力手段43の動作について説明する。丸め及び選択出
力手段43へは積和演算器41から演算結果49が入力
される。
【0063】丸め及び選択出力手段43の目的は丸め処
理の有無、積和演算に使用した加数の40ビットレジス
タ1における位置を考慮し、入力40ビットデータ49
を40ビットレジスタ1へ出力することである。
【0064】丸め及び選択出力手段43における丸め処
理の有無は制御信号Roundによって決定し、加数の
レジスタ1における位置は制御信号Positionに
よって決定する。
【0065】例えば、制御信号Roundが“0”であ
る場合、制御信号Positionが何であろうと、丸
め処理を行わずに入力40ビットデータ49をそのまま
40ビットレジスタ1へ出力する。
【0066】この時、16ビット出力データ47Lは入
力40ビットデータ49の15〜0ビット、16ビット
出力データ47Hは同じく入力40ビットデータ49の
31〜16ビット、8ビット出力データ47Eは同じく
入力40ビットデータ49の39〜32ビットとなる。
【0067】一方、制御信号Roundが“1”である
場合、制御信号Positionによって動作が異な
る。制御信号Roundが“1”でかつ制御信号Pos
itionが“0”である場合、加数は40ビットレジ
スタ1の15〜0ビットにある。そこで、丸め及び選択
出力手段43は入力40ビットデータ49に丸め処理を
行って16ビットデータとし、これを出力47Lとす
る。これは40ビットレジスタ1の15〜0ビットに書
込まれる。この時、出力47H及び出力47Eは何も出
力しない。
【0068】制御信号Roundが“1”でかつ制御信
号Positionが“1”である場合、加数は40ビ
ットレジスタ1の31〜16ビットにある。そこで、丸
め及び選択出力手段43は入力40ビットデータ49に
丸め処理を行って16ビットデータとし、これを出力4
7Hとする。これは40ビットレジスタ1の31〜16
ビットに書込まれる。この時、出力47L及び出力47
Eは何も出力しない。
【0069】尚、本発明の実施の形態では40ビットレ
ジスタ1のデータ幅が40ビットの場合について述べた
が、そのデータ幅が32ビットの場合にも適用可能であ
る。その場合、入力46Eと出力47Eとが不要とな
る。
【0070】さらに、本発明の実施の形態ではレジスタ
幅とデータサイズとを変えることで、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ビット幅のデータとなる。
【0071】積和演算器41はNビットデータ44,4
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とが
不要となる。
【0072】図4は本発明の一実施例による丸め機能付
き積和演算器の構成を示すブロック図である。図におい
ては外部に40ビットレジスタ61〜63を接続し、か
つMUX(マルチプレクサ)64,65によってレジス
タ61〜63の31〜16ビットあるいは15〜0ビッ
トのどちらかを選択して丸め機能付き積和演算器4に入
力できるようにした構成例を示している。この図4にお
いて、レジスタ61〜63はメモリ(図示せず)からデ
ータを読込んだり、メモリへデータを保存することがで
きるものとする。
【0073】図5は図4の丸め機能付き積和演算器4を
使用して加数、被乗数、乗数の全てが16ビットデータ
である積和演算を実行した場合のレジスタの状態を示す
図である。これら図4及び図5を参照して丸め機能付き
積和演算器4の動作について説明する。
【0074】レジスタ61には「A」及び「D」の16
ビットデータがメモリから読込まれた状態にある。レジ
スタ61の31〜16ビットには加数Aが、15〜0ビ
ットには別の加数Dが格納されている。
【0075】この状態で、まずA=A+B×Cという積
和演算を実行する。ここで、丸め機能付き積和演算器4
への制御信号Round=1、制御信号Positio
n=1とする。
【0076】丸め機能付き積和演算器4はレジスタ61
から加数Aを取込み、レジスタ62からMUX64によ
って選択された被乗数Bと、レジスタ63からMUX6
5によって選択された乗数Cとによって積和演算と丸め
処理とを行う。その結果は再びレジスタ61に書戻され
る。この時、レジスタ61の31〜16ビットに演算結
果が書込まれ、レジスタ61の15〜0ビットは変化し
ない。この状態を6n1とする。
【0077】次に、D=D+E×Fという積和演算を実
行する。ここで、丸め機能付き積和演算器4への制御信
号Round=1、制御信号Position=0とす
る。丸め機能付き積和演算器4はレジスタ61から加数
Dを取込み、レジスタ62からMUX64によって選択
された被乗数Eと、レジスタ63からMUX65によっ
て選択された乗数Fとによって積和演算と丸め処理とを
行う。その結果は再びレジスタ61に書戻される。この
時、レジスタ61の15〜0ビットに演算結果が書込ま
れ、レジスタ61の31〜16ビットは変化しない。こ
の状態を6n2とする。
【0078】状態6n2のレジスタ61にはA+B×C
とD+E×Fとの演算結果が16ビットに丸めて31〜
16ビットと15〜0ビットとにそれぞれ格納されてお
り、そのままメモリへ保存することが可能となる。
【0079】図4ではレジスタ61は46L,46H,
46E,47E,47H,47Lと、レジスタ62はM
UX64を介して被乗数16ビットデータ45と、レジ
スタ63もMUX65を介して乗数16ビットデータ4
4と固定的に接続されているが、これらの組合せを自由
に選択可能なように修正することは容易である。
【0080】これは本発明の一実施例による丸め機能付
き積和演算器4を、複数のレジスタをもつ信号処理プロ
セッサで使用する場合に特に有効である。もちろん、信
号処理プロセッサに含まれない回路として本発明の一実
施例による丸め機能付き積和演算器4を使用することも
可能である。
【0081】本発明の一実施例による丸め機能付き積和
演算器4を使用すれば、図5に示したように、レジスタ
内の31〜16ビットあるいは15〜0ビットにある1
6ビット幅の加数に対して、他のビットに影響を与えず
に積和演算を実行することが可能となる。この効果によ
って、レジスタ内に異なる16ビット幅の加数を混在さ
せることが可能となる。この効果は積和演算に使用する
レジスタ数の削減につながる。
【0082】さらに、本発明の一実施例による丸め機能
付き積和演算器4を32ビット幅以上のレジスタをもつ
信号処理プロセッサに搭載した場合、2つの16ビット
幅の加数をメモリから同時に読込み、一つのレジスタ内
に混在させても正しく積和演算を実行することができる
ため、レジスタ・メモリ間の32ビット転送を活かすこ
とができる。
【0083】以上のことを、LMS(Least Me
an Square)適応フィルタの実装を例にとって
示す。LMS適応フィルタは時刻iにおける入力信号を
iとするタップ数TのFIR(Finite Imp
ulse Response)フィルタ(係数wj
(j=0,1,……,T−1)の出力yi と所望信号
i との誤差ei によって、FIRフィルタの係数を
勾配法を用いて適応的に更新するものである。yi
計算とwj の更新式とは、 yi =Σxi-jj ……(2) ei =di −yi ……(3) wj =wj +μeii-j ……(4) という式で表される。但し、Σはj=0からj=T−1
の総和であり、μは非常に小さな正の定数であり、j=
0,1,……,T−1である。
【0084】(4)式を参照すると、μei は一度計
算しておけば全ての係数について同じ値を使用すること
ができる。そのため、(4)式のフィルタ係数の更新に
おいて係数毎に必要となる基本操作は、 (1)メモリからxi-j を読込む (2)メモリからwj を読込む (3)加数wj 、被乗数μei 、乗数xi-j による
積和演算 wj =wj +μeii-j (4)wj をメモリへ保存 という四つの処理であることがわかる。
【0085】信号処理プロセッサでこれら四つの処理を
行う場合、xi-j ,wj ,eiは16ビットデータ、
i は32ビット以上のデータとする場合が多い。こ
れは信号処理プロセッサに搭載された積和演算器の仕様
によるものである。xi-j,wj ,ei ,yi を上記
のようなデータ幅とした時、wj が加数となる(3)
の積和演算はデータ幅を16ビットに統一した演算にな
る。
【0086】上記の基本操作において、(1)と(2)
と(4)とのメモリ・レジスタ間の転送は16ビットデ
ータの転送であるから、32ビット幅のデータバスをも
つ信号処理プロセッサならば、二つのイタレーションの
転送をまとめて一回で行うことができる。
【0087】(2)のwj の読込みに32ビット転送
を使用した場合、読込まれた二つのデータはレジスタの
31〜16ビットと15〜0ビットとに格納される。従
来の積和演算器を搭載するプロセッサでは、このような
配置で格納されたwj をそのままの状態で演算するこ
とは不可能だが、本発明の一実施例による丸め機能付き
積和演算器4を搭載した信号処理プロセッサならば、す
ぐに積和演算を実行することができる。その結果、wj
をメモリへ保存する(4)の処理においても、演算後
すぐに32ビット転送を使用することができる。
【0088】以上のようにして、32ビット幅のデータ
バスをもつ信号処理プロセッサで16ビットデータの積
和演算を実行する場合でも、本発明一実施例による丸め
機能付き積和演算器4を使用することによって、メモリ
・レジスタ間の32ビット転送を活かすことができる。
【0089】
【発明の効果】以上説明したように本発明によれば、加
数と被乗数と乗数との積和演算を行う積和演算器からな
る丸め機能付き積和演算器において、外部に接続された
レジスタ内の異なる位置から入力される加数を選択的に
入力し、選択的に入力される加数に基づいた積和演算器
の積和演算結果に対してデータ幅の大きなデータをデー
タ幅の小さなデータへ変換する丸め処理を行い、その丸
め処理された積和演算結果をレジスタ内の異なる位置に
選択的に出力することによって、レジスタの中での加数
の位置を考慮した16ビットの積和演算を実行すること
ができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態の構成を示すブロック図で
ある。
【図2】図1の選択入力及び拡張手段の動作を示す図で
ある。
【図3】図1の丸め及び選択出力手段の動作を示す図で
ある。
【図4】本発明の一実施例による丸め機能付き積和演算
器の構成を示すブロック図である。
【図5】図4の丸め機能付き積和演算器を使用して加
数、被乗数、乗数の全てが16ビットデータである積和
演算を実行した場合のレジスタの状態を示す図である。
【図6】従来の信号プロセッサの構成例を示すブロック
図である。
【図7】従来の信号プロセッサによる加数が40ビット
データで、被乗数及び乗数が16ビットデータである積
和演算の実行例を示すブロック図である。
【図8】従来の信号プロセッサによる加数、被乗数、乗
数の全てが16ビットデータである積和演算を実行した
場合のレジスタの状態を示す図である。
【符号の説明】
1,61〜63 40ビットレジスタ 2,3 16ビットデータ 4 丸め機能付き積和演算器 41 積和演算器 42 選択入力及び拡張手段 43 丸め及び選択出力手段 64,65 マルチプレクサ A 加数 B 被乗数 C 乗数

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 加数と被乗数と乗数との積和演算を行う
    積和演算器からなる丸め機能付き積和演算器を含む信号
    処理プロセッサであって、 前記丸め機能付き積和演算器に接続されたレジスタを有
    し、 前記丸め機能付き積和演算器は、前記レジスタ内の異な
    る位置から入力される加数を選択的に入力する選択入力
    手段と、前記選択入力手段で選択的に入力される加数に
    基づいた前記積和演算器の積和演算結果に対してデータ
    幅の大きなデータをデータ幅の小さなデータへ変換する
    丸め処理を行う丸め処理手段と、前記丸め処理手段で丸
    め処理された前記積和演算結果を前記レジスタ内の異な
    る位置に選択的に出力する選択出力手段とを含むことを
    特徴とする信号処理プロセッサ。
  2. 【請求項2】 前記レジスタは、外部から読込んだデー
    タを保持するための複数のレジスタからなることを特徴
    とする請求項1記載の信号処理プロセッサ。
  3. 【請求項3】 前記選択入力手段で選択的に入力される
    加数に対してデータ幅の小さなデータをデータ幅の大き
    なデータへ変換する拡張処理を行って前記積和演算器へ
    入力する拡張処理手段を含むことを特徴とする請求項1
    または請求項2記載の信号処理プロセッサ。
  4. 【請求項4】 前記丸め処理手段は、外部からの丸め指
    示に応じて前記丸め処理を実行するよう構成したことを
    特徴とする請求項1から請求項3のいずれか記載の信号
    処理プロセッサ。
  5. 【請求項5】 前記選択入力手段は、前記レジスタから
    入力するデータの前記レジスタ内での位置を外部からの
    位置指示に応じて決定し、前記選択出力手段は、前記レ
    ジスタへ出力するデータの前記レジスタ内での位置を前
    記位置指示に応じて決定するよう構成したことを特徴と
    する請求項1から請求項4のいずれか記載の信号処理プ
    ロセッサ。
  6. 【請求項6】 加数と被乗数と乗数との積和演算を行う
    積和演算器を含む丸め機能付き積和演算器であって、外
    部に接続されたレジスタ内の異なる位置から入力される
    加数を選択的に入力する選択入力手段と、前記選択入力
    手段で選択的に入力される加数に基づいた前記積和演算
    器の積和演算結果に対してデータ幅の大きなデータをデ
    ータ幅の小さなデータへ変換する丸め処理を行う丸め処
    理手段と、前記丸め処理手段で丸め処理された前記積和
    演算結果を前記レジスタ内の異なる位置に選択的に出力
    する選択出力手段とを有することを特徴とする丸め機能
    付き積和演算器。
  7. 【請求項7】 前記レジスタは、外部から読込んだデー
    タを保持するための複数のレジスタからなることを特徴
    とする請求項6記載の丸め機能付き積和演算器。
  8. 【請求項8】 前記選択入力手段で選択的に入力される
    加数に対してデータ幅の小さなデータをデータ幅の大き
    なデータへ変換する拡張処理を行って前記積和演算器へ
    入力する拡張処理手段を含むことを特徴とする請求項6
    または請求項7記載の丸め機能付き積和演算器。
  9. 【請求項9】 前記丸め処理手段は、外部からの丸め指
    示に応じて前記丸め処理を実行するよう構成したことを
    特徴とする請求項6から請求項8のいずれか記載の丸め
    機能付き積和演算器。
  10. 【請求項10】 前記選択入力手段は、前記レジスタか
    ら入力するデータの前記レジスタ内での位置を外部から
    の位置指示に応じて決定し、 前記選択出力手段は、前記レジスタへ出力するデータの
    前記レジスタ内での位置を前記位置指示に応じて決定す
    るよう構成したことを特徴とする請求項6から請求項9
    のいずれか記載の丸め機能付き積和演算器。
JP02567499A 1999-02-03 1999-02-03 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 Expired - Fee Related JP3336986B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.

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