JPH0584527B2 - - Google Patents
Info
- Publication number
- JPH0584527B2 JPH0584527B2 JP58239148A JP23914883A JPH0584527B2 JP H0584527 B2 JPH0584527 B2 JP H0584527B2 JP 58239148 A JP58239148 A JP 58239148A JP 23914883 A JP23914883 A JP 23914883A JP H0584527 B2 JPH0584527 B2 JP H0584527B2
- Authority
- JP
- Japan
- Prior art keywords
- barrel shifter
- shifting
- bits
- data
- input
- 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 - Lifetime
Links
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、シフト時に生じる誤差を最小にする
丸め機能を持つた演算装置に関するものである。
丸め機能を持つた演算装置に関するものである。
従来例の構成とその問題点
近年、デイジタル信号処理技術が進歩し、連続
信号を量子化してそのデータを扱うということは
ごく普通に行なわれるようになつてきた。本来、
デイジタル値には、既にその中に量子化時の誤差
が含まれていると考えられる。
信号を量子化してそのデータを扱うということは
ごく普通に行なわれるようになつてきた。本来、
デイジタル値には、既にその中に量子化時の誤差
が含まれていると考えられる。
今、例えば1以上の連続的な値xをその小数部
を切捨てて 〓i ai2i(ai=1、0)というデイジタル
値で表わしているとする。このxのデイジタル値
〓i ai2i(≦x< 〓i ai2i+1)を従来のシフタで操作
することによつて量子化時の誤差がどのように拡
大するかについて述べる。
を切捨てて 〓i ai2i(ai=1、0)というデイジタル
値で表わしているとする。このxのデイジタル値
〓i ai2i(≦x< 〓i ai2i+1)を従来のシフタで操作
することによつて量子化時の誤差がどのように拡
大するかについて述べる。
まず左にjビツトシフトする場合について述べ
る。シフタの動きは第1図のbに示すように最下
位ビツトから0をつめる。このシフト操作は、2
のべき乗の演算を行うことと同値である。従つ
て、シフトした結果は2j・ 〓i ai2i(≦2j・x<2j 〓i ai
2i+2j)となる。このことを示したのが第2図の
aとbである。図において横軸は入力データ、縦
軸はシフト後のデータである。直線で表わした連
続値xのシフト結果を真値と考えると、 〓i ai2iを
をシフトする時に生じる誤差は、傾き2jが大きく
なるほど拡大する。jビツトシフト時の誤差は2j
未満である。
る。シフタの動きは第1図のbに示すように最下
位ビツトから0をつめる。このシフト操作は、2
のべき乗の演算を行うことと同値である。従つ
て、シフトした結果は2j・ 〓i ai2i(≦2j・x<2j 〓i ai
2i+2j)となる。このことを示したのが第2図の
aとbである。図において横軸は入力データ、縦
軸はシフト後のデータである。直線で表わした連
続値xのシフト結果を真値と考えると、 〓i ai2iを
をシフトする時に生じる誤差は、傾き2jが大きく
なるほど拡大する。jビツトシフト時の誤差は2j
未満である。
次に右にシフトする場合について述べる。右シ
フト操作は基本的には2のマイナスのべき乗と同
じたが、表わすことのできない小数部分の値は切
捨てられる。この右シフト時の動きは第1図のa
に示すように符号であるa4が延長され、下位にあ
ふれてしまつたa1、a0は切捨てられる。このシフ
タの動きをさらに詳しく示したのが第2図c,d
である。シフトしてその小数部を切捨てることか
らも、又このグラフからも分かるよう、直線で示
した直線との誤差は1未満である。
フト操作は基本的には2のマイナスのべき乗と同
じたが、表わすことのできない小数部分の値は切
捨てられる。この右シフト時の動きは第1図のa
に示すように符号であるa4が延長され、下位にあ
ふれてしまつたa1、a0は切捨てられる。このシフ
タの動きをさらに詳しく示したのが第2図c,d
である。シフトしてその小数部を切捨てることか
らも、又このグラフからも分かるよう、直線で示
した直線との誤差は1未満である。
以上のように、従来のシフタでは特にシフト時
に連続信号の量子化時の誤差が大きくなるという
問題点を有していた。
に連続信号の量子化時の誤差が大きくなるという
問題点を有していた。
発明の目的
本発明の目的は、上記従来例で述べた問題点を
除去し、シフト時に生じる誤差を最小にする丸め
機能を持つた演算装置を提供することにある。
除去し、シフト時に生じる誤差を最小にする丸め
機能を持つた演算装置を提供することにある。
発明の構成
本発明は、nを整数とするとき、n+1ビツト
データの算術シフトを行なうバレルシフタと、バ
レルシフタのシフト数とシフト方向を制御するバ
レルシフタ制御手段と、nビツト幅の加算手段と
を備え、前記バレルシフタは、nビツトの入力デ
ータの下位に論理1のビツトを並べ、合計n+1
ビツトの入力を前記バレルシフタ制御手段に従つ
てシフトし、前記加算手段では、前記バレルシフ
タの出力の最下位ビツトと、それより上位のnビ
ツトの出力をデータの右桁を合わせて加算する演
算装置である。本発明の演算装置は右シフト時に
は、下位にあふれるデータの最上位ビツトの値を
シフトした結果に加え、左シフト時には、最下位
ビツトから10…0を入力していくことにより、シ
フト時の丸めを実現できるものである。
データの算術シフトを行なうバレルシフタと、バ
レルシフタのシフト数とシフト方向を制御するバ
レルシフタ制御手段と、nビツト幅の加算手段と
を備え、前記バレルシフタは、nビツトの入力デ
ータの下位に論理1のビツトを並べ、合計n+1
ビツトの入力を前記バレルシフタ制御手段に従つ
てシフトし、前記加算手段では、前記バレルシフ
タの出力の最下位ビツトと、それより上位のnビ
ツトの出力をデータの右桁を合わせて加算する演
算装置である。本発明の演算装置は右シフト時に
は、下位にあふれるデータの最上位ビツトの値を
シフトした結果に加え、左シフト時には、最下位
ビツトから10…0を入力していくことにより、シ
フト時の丸めを実現できるものである。
実施例の説明
第3図は本発明の一実施例における演算装置を
示している。第3図において、1は第1図の動き
をするバレルシフタ、2はシフトするデータを格
納するレジスタ、3は2つのデータを加算する加
算器、7はバレルシフタ1のシフト数とシフト方
向を制御するバレルシフタ制御手段である。バレ
ルシフタ1と加算器3を包含したものをブロツク
4とし、その動作の説明を例を上げて行なう。一
例を第4図に示す。
示している。第3図において、1は第1図の動き
をするバレルシフタ、2はシフトするデータを格
納するレジスタ、3は2つのデータを加算する加
算器、7はバレルシフタ1のシフト数とシフト方
向を制御するバレルシフタ制御手段である。バレ
ルシフタ1と加算器3を包含したものをブロツク
4とし、その動作の説明を例を上げて行なう。一
例を第4図に示す。
第4図aは右2ビツトシフト時のブロツク4の
動きである。入力a4〜a0に対し、シフトした値
と、下位にあふれたデータの最上位ビツトの値a1
とを足したものが出力となつている。第4図bは
左1ビツトシフト時の動きである。入力a4〜a0に
対し、最下位ビツトから1を入力したものが出力
となつている。例えば、入力データが00010で右
1ビツトシフトする時、第3図における加算器3
の第1入力aがa=00001、第2入力bがb=0
となり、従つて出力値はa+b=00001となる。
右2ビツトシフトする時はa=0000、b=1、従
つて出力値はa+b=00001となる。又左1ビツ
トシフトする時はa=00101、b=0、従つてa
+b=00101が出力となる。左2ビツトシフトす
る時はa=01010、b=0、従つてa+b=01010
が出力となる。
動きである。入力a4〜a0に対し、シフトした値
と、下位にあふれたデータの最上位ビツトの値a1
とを足したものが出力となつている。第4図bは
左1ビツトシフト時の動きである。入力a4〜a0に
対し、最下位ビツトから1を入力したものが出力
となつている。例えば、入力データが00010で右
1ビツトシフトする時、第3図における加算器3
の第1入力aがa=00001、第2入力bがb=0
となり、従つて出力値はa+b=00001となる。
右2ビツトシフトする時はa=0000、b=1、従
つて出力値はa+b=00001となる。又左1ビツ
トシフトする時はa=00101、b=0、従つてa
+b=00101が出力となる。左2ビツトシフトす
る時はa=01010、b=0、従つてa+b=01010
が出力となる。
以下、これらの操作により、従来例で述べた問
題点がどのように解決されているか示す。
題点がどのように解決されているか示す。
まずjビツト左にシフトする場合について述べ
る。従来例で述べたのと同じく、連続値xを量子
化した値を〓ai2i(ai=1、0)とする。入力デー
タの最下位ビツトから10…0を入力する本発明の
演算により、この値は2j〓aai2i−2j-1(≦2jx<2j
〓ai2i+2j-1)となる。このことを表わたのが、
第5図のa,bである。グラフの意味は第2図と
同じである。このグラフからも分かるとおり、誤
差は従来例の1/2(2j-1)になつている。
る。従来例で述べたのと同じく、連続値xを量子
化した値を〓ai2i(ai=1、0)とする。入力デー
タの最下位ビツトから10…0を入力する本発明の
演算により、この値は2j〓aai2i−2j-1(≦2jx<2j
〓ai2i+2j-1)となる。このことを表わたのが、
第5図のa,bである。グラフの意味は第2図と
同じである。このグラフからも分かるとおり、誤
差は従来例の1/2(2j-1)になつている。
次に右シフトする場合について述べる。シフト
結果の小数点以下第1位の値を整数部に加えると
いう操作は小数点以下を0捨1入(10進数表示で
述べると4捨5入)していることと同値である。
従つて第5図のc,dからも分かるとおり、誤差
は1/2になつている。
結果の小数点以下第1位の値を整数部に加えると
いう操作は小数点以下を0捨1入(10進数表示で
述べると4捨5入)していることと同値である。
従つて第5図のc,dからも分かるとおり、誤差
は1/2になつている。
次に第3図における加算器3の例を上げてそれ
について説明する。第6図はこの加算器3の構成
例である。同図において5は加算モード時、入力
A+入力B+キヤリーインを出力し、又減算モー
ド時は入力A−入力B−キヤリーインを出力する
加減算器、6は上記加減算器5の出力に接続さ
れ、又加減算器5の入力となるアキユムレータで
ある。バレルシフタの出力値であるaとbをそれ
ぞれ加減算器5の入力Bとキヤリーインに入力す
る。上記加減算器5の機能により、加算モード時
は入力A+(a+b)、減算モード時は入力A−
(a+b)となるので、特別に丸めのための加算
器を付加しなくてもシフタの下の加減算器にシフ
タの丸めa+bをうめこむことができる。このよ
うな実施例は、例えば複数個のデータの和を求め
る時有効である。加減算器でのオーバーフローを
防止するため、あらかじめシフタでシフトダウン
しておいたデータを加減算器で足しこんでいく。
本発明では、その際シフトダウンすることによる
誤差を最小にする。なお、上記実施例では双方向
のバレルシフタとしたが、これは右あるいは左シ
フタとして右シフト時のみあるいは左シフト時の
みに応用してもよい。
について説明する。第6図はこの加算器3の構成
例である。同図において5は加算モード時、入力
A+入力B+キヤリーインを出力し、又減算モー
ド時は入力A−入力B−キヤリーインを出力する
加減算器、6は上記加減算器5の出力に接続さ
れ、又加減算器5の入力となるアキユムレータで
ある。バレルシフタの出力値であるaとbをそれ
ぞれ加減算器5の入力Bとキヤリーインに入力す
る。上記加減算器5の機能により、加算モード時
は入力A+(a+b)、減算モード時は入力A−
(a+b)となるので、特別に丸めのための加算
器を付加しなくてもシフタの下の加減算器にシフ
タの丸めa+bをうめこむことができる。このよ
うな実施例は、例えば複数個のデータの和を求め
る時有効である。加減算器でのオーバーフローを
防止するため、あらかじめシフタでシフトダウン
しておいたデータを加減算器で足しこんでいく。
本発明では、その際シフトダウンすることによる
誤差を最小にする。なお、上記実施例では双方向
のバレルシフタとしたが、これは右あるいは左シ
フタとして右シフト時のみあるいは左シフト時の
みに応用してもよい。
発明の効果
本発明の演算装置は、既存のバレルシフタと算
術論理演算器(ALU)に付加するハードウエア
としては、バレルシフタの入力ビツト幅を1ビツ
ト増やすだけで構成できる。又、機能面では連続
信号をシフトする場合を真値として、その連続信
号の量子化値をシフトする場合を考えると、その
間の誤差は従来のシフタの1/2になつている。つ
まりたとえば左にjビツトシフトする際の誤差は
従来のものは2j、本発明では2j-1、右シフトをす
る際の誤差は従来のものは1、本発明では1/2に
なる。従つて本発明の演算装置を使用すれば、連
続信号の量子化を行つた後のデータをシフトする
場合、たとえば複数個の加算を行う場合には誤差
が従来の1/2になり、実用的効果は大きい。
術論理演算器(ALU)に付加するハードウエア
としては、バレルシフタの入力ビツト幅を1ビツ
ト増やすだけで構成できる。又、機能面では連続
信号をシフトする場合を真値として、その連続信
号の量子化値をシフトする場合を考えると、その
間の誤差は従来のシフタの1/2になつている。つ
まりたとえば左にjビツトシフトする際の誤差は
従来のものは2j、本発明では2j-1、右シフトをす
る際の誤差は従来のものは1、本発明では1/2に
なる。従つて本発明の演算装置を使用すれば、連
続信号の量子化を行つた後のデータをシフトする
場合、たとえば複数個の加算を行う場合には誤差
が従来の1/2になり、実用的効果は大きい。
第1図a,b及び第2図a〜dは従来のシフタ
の動作を説明する図、第3図は本発明の演算装置
の一実施例を示す構成図、第4図a,b及び第5
図a〜dは本発明の演算装置の動作を説明する
図、第6図は本発明に用いる加算器の一例を示す
構成図である。 1……バレルシフタ、2……レジスタ、3……
加算器、5……加減算器、6……アキユムレー
タ。
の動作を説明する図、第3図は本発明の演算装置
の一実施例を示す構成図、第4図a,b及び第5
図a〜dは本発明の演算装置の動作を説明する
図、第6図は本発明に用いる加算器の一例を示す
構成図である。 1……バレルシフタ、2……レジスタ、3……
加算器、5……加減算器、6……アキユムレー
タ。
Claims (1)
- 【特許請求の範囲】 1 nを整数とするとき、n+1ビツトデータの
算術シフトを行なうバレルシフタと、前記バレル
シフタのシフト数とシフト方向を制御するバレル
シフタ制御手段と、nビツト幅の加算手段とを備
え、 前記バレルシフタは、nビツトの入力データの
下位に論理1のビツトを並べ、合計n+1ビツト
の入力を前記バレルシフタ制御手段に従つてシフ
トし、前記加算手段では、前記バレルシフタの出
力の最下位ビツトと、それより上位のnビツトの
出力をデータの右桁を合わせて加算する演算装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58239148A JPS60129832A (ja) | 1983-12-19 | 1983-12-19 | 演算装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58239148A JPS60129832A (ja) | 1983-12-19 | 1983-12-19 | 演算装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60129832A JPS60129832A (ja) | 1985-07-11 |
| JPH0584527B2 true JPH0584527B2 (ja) | 1993-12-02 |
Family
ID=17040463
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58239148A Granted JPS60129832A (ja) | 1983-12-19 | 1983-12-19 | 演算装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS60129832A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0814790B2 (ja) * | 1986-09-16 | 1996-02-14 | 株式会社日立製作所 | 演算処理装置 |
| JP2872424B2 (ja) * | 1991-02-27 | 1999-03-17 | シャープ株式会社 | デジタル信号混合回路 |
-
1983
- 1983-12-19 JP JP58239148A patent/JPS60129832A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS60129832A (ja) | 1985-07-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4866656A (en) | High-speed binary and decimal arithmetic logic unit | |
| EP0416869B1 (en) | Digital adder/accumulator | |
| JP2831729B2 (ja) | プライオリティエンコーダおよび浮動小数点正規化装置 | |
| US5038315A (en) | Multiplier circuit | |
| JPH05134851A (ja) | 乗算回路出力方式 | |
| US4110831A (en) | Method and means for tracking digit significance in arithmetic operations executed on decimal computers | |
| US5497343A (en) | Reducing the number of carry-look-ahead adder stages in high-speed arithmetic units, structure and method | |
| JPH07234778A (ja) | 演算回路 | |
| US6269385B1 (en) | Apparatus and method for performing rounding and addition in parallel in floating point multiplier | |
| JPH0234054B2 (ja) | ||
| US5148161A (en) | Digital signal processor for fixed and floating point data | |
| JPH0149973B2 (ja) | ||
| JPS6230451B2 (ja) | ||
| JPS60129832A (ja) | 演算装置 | |
| JPH0661871A (ja) | パラレル・シリアル・データ変換回路 | |
| JP2551111B2 (ja) | 二乗演算回路 | |
| JP3074958B2 (ja) | 加算機能付きシリアル乗算器 | |
| JP2575969B2 (ja) | 浮動小数点乗除算装置 | |
| RU2022340C1 (ru) | Устройство для вычисления модуля вектора | |
| JP2931632B2 (ja) | 桁移動装置及び浮動小数点演算装置 | |
| JPH0427587B2 (ja) | ||
| JPH11353157A (ja) | 累積加算回路 | |
| JPH0381174B2 (ja) | ||
| JPH0253819B2 (ja) | ||
| JPH04195423A (ja) | 乗算器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |