JPH06236253A - ビット演算器 - Google Patents
ビット演算器Info
- Publication number
- JPH06236253A JPH06236253A JP5022256A JP2225693A JPH06236253A JP H06236253 A JPH06236253 A JP H06236253A JP 5022256 A JP5022256 A JP 5022256A JP 2225693 A JP2225693 A JP 2225693A JP H06236253 A JPH06236253 A JP H06236253A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- overflow
- shift
- calculator
- bit shift
- 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
Links
Abstract
(57)【要約】
【目的】 ビットシフトまたはビットローテーション演
算において、シフトあるいはローテート結果の桁あふれ
を検出して、算術演算としての誤差を小さくする。 【構成】 ビットシフト・ローテート演算器2の出力を
桁あふれ検出器3に与え、桁あふれ検出器3の判定出力
に従って、振幅制限器4がビットシフト・ローテート演
算器2の出力補正を行う。
算において、シフトあるいはローテート結果の桁あふれ
を検出して、算術演算としての誤差を小さくする。 【構成】 ビットシフト・ローテート演算器2の出力を
桁あふれ検出器3に与え、桁あふれ検出器3の判定出力
に従って、振幅制限器4がビットシフト・ローテート演
算器2の出力補正を行う。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータ、計算機
等に使用するビット演算器に関する。
等に使用するビット演算器に関する。
【0002】
【従来の技術】図2は従来のビット演算器の構成を示し
ている。図2において、1は入力レジスタ、2はビット
シフト・ローテート演算器、3はALU(alithm
etic logic unit,算術論理演算器)、
4は出力レジスタである。
ている。図2において、1は入力レジスタ、2はビット
シフト・ローテート演算器、3はALU(alithm
etic logic unit,算術論理演算器)、
4は出力レジスタである。
【0003】このビット演算器で演算されるデータは、
上記符号の順序に流れる構造となっている。
上記符号の順序に流れる構造となっている。
【0004】上記のように構成された従来のビット演算
器に関し、以下にその動作について説明する。まず、入
力レジスタ1に格納してある被演算数をビットシフト・
ローテート演算器2に加え、シフトあるいはローテート
演算を行う。被演算数が符号付き数値の場合にも、桁あ
ふれのチェックは行わない。ビットシフト・ローテート
演算器2による演算結果を、ALU3でさらに任意の演
算を行って、出力レジスタ4へ書き込む。なお、ALU
3は必ずしも必要ではない。
器に関し、以下にその動作について説明する。まず、入
力レジスタ1に格納してある被演算数をビットシフト・
ローテート演算器2に加え、シフトあるいはローテート
演算を行う。被演算数が符号付き数値の場合にも、桁あ
ふれのチェックは行わない。ビットシフト・ローテート
演算器2による演算結果を、ALU3でさらに任意の演
算を行って、出力レジスタ4へ書き込む。なお、ALU
3は必ずしも必要ではない。
【0005】このように上記従来のビット演算器によっ
ても、ビットシフト・ローテート演算器によって、数値
のシフトあるいはローテートを行うことができる。
ても、ビットシフト・ローテート演算器によって、数値
のシフトあるいはローテートを行うことができる。
【0006】
【発明が解決しようとする課題】しかしながら、現実に
は経済上の問題でビットシフト・ローテート演算器出力
の語長が制限されることが多く、上記従来のビット演算
器では、左シフトあるいはローテートを行おうとしたと
きに桁あふれが発生し、あふれたビットは捨ててしま
う。したがって、絶対値に意味を持つ数値、あるいは符
号と絶対値に意味を持つ数値に対してシフトを算術演算
として使用するとき、桁あふれによって演算結果が全く
意味を持たない場合が出てくるという問題があった。
は経済上の問題でビットシフト・ローテート演算器出力
の語長が制限されることが多く、上記従来のビット演算
器では、左シフトあるいはローテートを行おうとしたと
きに桁あふれが発生し、あふれたビットは捨ててしま
う。したがって、絶対値に意味を持つ数値、あるいは符
号と絶対値に意味を持つ数値に対してシフトを算術演算
として使用するとき、桁あふれによって演算結果が全く
意味を持たない場合が出てくるという問題があった。
【0007】本発明は、このような従来の問題を解決す
るものであり、絶対値に意味を持つ数値、あるいは符号
と絶対値に意味を持つ数値に対して左シフトあるいはロ
ーテートを行ったときの算術演算としての誤差を減らす
ことのできる、優れたビット演算器を提供することを目
的とする。
るものであり、絶対値に意味を持つ数値、あるいは符号
と絶対値に意味を持つ数値に対して左シフトあるいはロ
ーテートを行ったときの算術演算としての誤差を減らす
ことのできる、優れたビット演算器を提供することを目
的とする。
【0008】
【課題を解決するための手段】本発明は、上記目的を達
成するために、ビットシフトあるいはビットローテート
演算器に、符号無しの数値あるいは符号付き数値に対応
した、1ビットあるいは複数ビット対応の桁あふれ検出
器および振幅制限器を設け、桁あふれ時に演算結果を補
正して出力するようにしたものである。
成するために、ビットシフトあるいはビットローテート
演算器に、符号無しの数値あるいは符号付き数値に対応
した、1ビットあるいは複数ビット対応の桁あふれ検出
器および振幅制限器を設け、桁あふれ時に演算結果を補
正して出力するようにしたものである。
【0009】
【作用】したがって、本発明によれば、ビットシフトあ
るいはローテート演算器の出力に対して桁あふれ検出器
で桁あふれを見つけ、桁あふれしている場合には、振幅
制限器が、所定のビット数で表現可能な絶対値最大の値
に置き換える作用により、シフトあるいはローテートを
算術演算として使用したときの演算誤差を小さくするこ
とができるという効果を有する。
るいはローテート演算器の出力に対して桁あふれ検出器
で桁あふれを見つけ、桁あふれしている場合には、振幅
制限器が、所定のビット数で表現可能な絶対値最大の値
に置き換える作用により、シフトあるいはローテートを
算術演算として使用したときの演算誤差を小さくするこ
とができるという効果を有する。
【0010】
【実施例】図1は本発明の第1の実施例の構成を示すも
のである。図1において、1は入力レジスタであり、2
は入力レジスタに接続されたのビットシフト演算器であ
る。3は桁あふれ検出器、4は振幅制限器であり、それ
ぞれビットシフト演算器2に接続されている。桁あふれ
検出器3は振幅制限器4へも接続している。5は振幅制
限器4に接続されたALU(alithmetic l
ogic unit,算術論理演算器)であり、6はA
LU5に接続された出力レジスタである。
のである。図1において、1は入力レジスタであり、2
は入力レジスタに接続されたのビットシフト演算器であ
る。3は桁あふれ検出器、4は振幅制限器であり、それ
ぞれビットシフト演算器2に接続されている。桁あふれ
検出器3は振幅制限器4へも接続している。5は振幅制
限器4に接続されたALU(alithmetic l
ogic unit,算術論理演算器)であり、6はA
LU5に接続された出力レジスタである。
【0011】次に上記第1の実施例の動作について説明
する。上記第1の実施例において、まず、入力レジスタ
1に格納してある符号付き数値で表現された被演算数を
ビットシフト演算器2に加え、1ビットシフト演算を行
う。シフト演算結果に対して、桁あふれしているかどう
かを桁あふれ検出器3が以下の方法によって調べる。
する。上記第1の実施例において、まず、入力レジスタ
1に格納してある符号付き数値で表現された被演算数を
ビットシフト演算器2に加え、1ビットシフト演算を行
う。シフト演算結果に対して、桁あふれしているかどう
かを桁あふれ検出器3が以下の方法によって調べる。
【0012】なお、扱う符号付き数値を整数としても一
般性を失わないので、以下では符号付き整数を例にあげ
て述べる。
般性を失わないので、以下では符号付き整数を例にあげ
て述べる。
【0013】 sign(被演算数)=0 かつ sign(シフト演
算結果)=1 ならば正のオーバフロー sign(被演算数)=1 かつ sign(シフト演
算結果)=0 ならば負のオーバフロー ここで、sign(X)は数値×の符号を取り出す操作
である。
算結果)=1 ならば正のオーバフロー sign(被演算数)=1 かつ sign(シフト演
算結果)=0 ならば負のオーバフロー ここで、sign(X)は数値×の符号を取り出す操作
である。
【0014】 振幅制限器4は、正のオーバフローまたは負のオーバフ
ローの場合には所定のビット数で表現可能な絶対値最大
の数を代わりに出力する。すなわち、ビットシフト演算
器2の出力ビット数をNビットとしたとき、次式の動作
をする。
ローの場合には所定のビット数で表現可能な絶対値最大
の数を代わりに出力する。すなわち、ビットシフト演算
器2の出力ビット数をNビットとしたとき、次式の動作
をする。
【0015】
【数1】
【0016】振幅制限器出力を、ALU5でさらに任意
の演算を行って、出力レジスタ6へ書き込む。なお、A
LU5は必ずしも必要ではない。
の演算を行って、出力レジスタ6へ書き込む。なお、A
LU5は必ずしも必要ではない。
【0017】このように、上記第1の実施例によれば、
符号付き数値に対してビットシフト演算器2がシフトし
た結果が桁あふれすると、桁あふれ検出器3が検出し、
振幅制限器4が振幅制限するため、シフトレジスタを算
術演算に使用したとき、いかなるシフトによっても被演
算算数の符号を見失わず、かつ桁あふれた場合に本来の
値に対する誤差を小さくすることができるという利点を
有する。さらに、上記第1の実施例によれば、時系列デ
ータを順次処理する場合には、累積誤差を小さくできる
という効果をも有する。
符号付き数値に対してビットシフト演算器2がシフトし
た結果が桁あふれすると、桁あふれ検出器3が検出し、
振幅制限器4が振幅制限するため、シフトレジスタを算
術演算に使用したとき、いかなるシフトによっても被演
算算数の符号を見失わず、かつ桁あふれた場合に本来の
値に対する誤差を小さくすることができるという利点を
有する。さらに、上記第1の実施例によれば、時系列デ
ータを順次処理する場合には、累積誤差を小さくできる
という効果をも有する。
【0018】次に第2の実施例について説明する。第2
の実施例における構成は、第1の実施例のそれと同じで
ある。第2の実施例の動作は、ビットシフト演算器2が
多ビットシフト可能であることと、桁あふれ検出器3が
多ビット対応である点が異なる。
の実施例における構成は、第1の実施例のそれと同じで
ある。第2の実施例の動作は、ビットシフト演算器2が
多ビットシフト可能であることと、桁あふれ検出器3が
多ビット対応である点が異なる。
【0019】ビットシフト演算器2によるシフト演算結
果に対して、桁あふれしているかどうかを桁あふれ検出
器3が以下の方法によって調べる。
果に対して、桁あふれしているかどうかを桁あふれ検出
器3が以下の方法によって調べる。
【0020】なお、第1の実施例と同様に、扱う数値を
符号付きの整数として述べる。 sign(被演算数)=0、かつ(桁あふれビット≠0
…0,または,sign(シフト演算結果)=1) ならば、正のオーバフローとする。
符号付きの整数として述べる。 sign(被演算数)=0、かつ(桁あふれビット≠0
…0,または,sign(シフト演算結果)=1) ならば、正のオーバフローとする。
【0021】 sign(被演算数)=1、かつ(桁あふれビット≠1
…1,または,sign(シフト演算結果)=0) ならば、負のオーバフローとする。
…1,または,sign(シフト演算結果)=0) ならば、負のオーバフローとする。
【0022】このように、上記第2の実施例によっても
符号無し数値に対して、第1の実施例と同様の効果が得
られる。
符号無し数値に対して、第1の実施例と同様の効果が得
られる。
【0023】次に第3の実施例について説明する。第3
の実施例における構成は、第1の実施例のそれと同じで
ある。第3の実施例の動作は、演算に扱う数値が符号無
し数値であることと、桁あふれ検出器3と振幅制限器4
が符号無し数値対応である点が第1の実施例と異なる。
の実施例における構成は、第1の実施例のそれと同じで
ある。第3の実施例の動作は、演算に扱う数値が符号無
し数値であることと、桁あふれ検出器3と振幅制限器4
が符号無し数値対応である点が第1の実施例と異なる。
【0024】ビットシフト演算器2によるシフト演算結
果に対して、桁あふれしているかどうかを桁あふれ検出
器3が以下の方法によって調べる。
果に対して、桁あふれしているかどうかを桁あふれ検出
器3が以下の方法によって調べる。
【0025】桁あふれビット=1 ならば オーバフロ
ーとする。実施例1と同様に、扱う符号無し数値を整数
としても一般性を失わないので、以下では符号無し整数
を例にあげて述べる。
ーとする。実施例1と同様に、扱う符号無し数値を整数
としても一般性を失わないので、以下では符号無し整数
を例にあげて述べる。
【0026】振幅制限器4は、オーバフローの場合には
所定のビット数で表現可能な最大の数を代わりとして出
力する。すなわち、ビットシフト演算器2の出力ビット
数がNビットとしたとき、次式の動作をする。
所定のビット数で表現可能な最大の数を代わりとして出
力する。すなわち、ビットシフト演算器2の出力ビット
数がNビットとしたとき、次式の動作をする。
【0027】
【数2】
【0028】このように、上記第3の実施例によっても
符号無し数値に対して、第1の実施例と同様の効果が得
られる。
符号無し数値に対して、第1の実施例と同様の効果が得
られる。
【0029】さらに、実施例2、3の組合せ、あるいは
ビットシフト演算器が、ビットローテート演算器であっ
ても、第1の実施例と同様の効果が得られる。また、振
幅制限器とALUの順序を入れ替えた構成を用いても、
第1の実施例と同様の効果が得られる。
ビットシフト演算器が、ビットローテート演算器であっ
ても、第1の実施例と同様の効果が得られる。また、振
幅制限器とALUの順序を入れ替えた構成を用いても、
第1の実施例と同様の効果が得られる。
【0030】
【発明の効果】本発明は、上記実施例より明らかなよう
に、ビットシフト・ローテート演算器出力の桁あふれを
調べ、取り得る値の範囲に制限を加えるものであり、ビ
ットシフト・ローテート演算器に算術演算としての桁あ
ふれが発生しても、桁あふれ検出器が検出して振幅制限
器で値の補正をするため、演算結果の符号を誤ることな
く、かつ有限語長の制限の中で最も演算誤差の小さい演
算結果が得られるという効果を有する。
に、ビットシフト・ローテート演算器出力の桁あふれを
調べ、取り得る値の範囲に制限を加えるものであり、ビ
ットシフト・ローテート演算器に算術演算としての桁あ
ふれが発生しても、桁あふれ検出器が検出して振幅制限
器で値の補正をするため、演算結果の符号を誤ることな
く、かつ有限語長の制限の中で最も演算誤差の小さい演
算結果が得られるという効果を有する。
【図1】本発明の第1、第2、第3の実施例におけるビ
ット演算器の構成図
ット演算器の構成図
【図2】従来のビット演算器の構成図
【符号の説明】 1 入力レジスタ 2 ビットシフト演算器 3 桁あふれ検出器 4 振幅制限器 5 ALU 6 出力レジスタ
Claims (3)
- 【請求項1】 ビットシフト演算器と、符号付き数値に
対する桁あふれ検出器と、振幅制限器を備えたビット演
算器 - 【請求項2】 ビットシフト演算器が多ビットシフトが
可能であることを特徴とする請求項1に記載のビット演
算器 - 【請求項3】 符号付き数値に対する桁あふれ検出器、
振幅制限器が、符号無し数値に対する桁あふれ検出器、
振幅制限器であることを特徴とする請求項1に記載のビ
ット演算器
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5022256A JPH06236253A (ja) | 1993-02-10 | 1993-02-10 | ビット演算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5022256A JPH06236253A (ja) | 1993-02-10 | 1993-02-10 | ビット演算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06236253A true JPH06236253A (ja) | 1994-08-23 |
Family
ID=12077700
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5022256A Pending JPH06236253A (ja) | 1993-02-10 | 1993-02-10 | ビット演算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06236253A (ja) |
-
1993
- 1993-02-10 JP JP5022256A patent/JPH06236253A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3487903B2 (ja) | 演算装置及び演算方法 | |
| US20050060359A1 (en) | Arithmetic unit for addition or subtraction with preliminary saturation detection | |
| US5798952A (en) | Leading bit anticipator | |
| JP3012357B2 (ja) | シフト量検出回路 | |
| JPH06236253A (ja) | ビット演算器 | |
| US7051062B2 (en) | Apparatus and method for adding multiple-bit binary-strings | |
| US20080098057A1 (en) | Multiplication Apparatus | |
| JPH09128213A (ja) | ブロックフローティング処理システムおよび方法 | |
| EP0203599B1 (en) | Apparatus to determine conditions in a calculating unit | |
| JPH01282633A (ja) | 非正規化数の処理方式 | |
| JPH0644226B2 (ja) | 演算処理装置 | |
| JPH0713743A (ja) | 乗算器 | |
| JP2513354B2 (ja) | 浮動小数点演算補助回路 | |
| JPS59136849A (ja) | 除算装置 | |
| JP2801640B2 (ja) | 論理値の同値検出回路 | |
| JPS5960637A (ja) | 浮動小数点演算装置 | |
| JPS626326A (ja) | 演算処理装置 | |
| JPH07117892B2 (ja) | シフタ | |
| JPH02170225A (ja) | 演算例外検出方式 | |
| JPH0635670A (ja) | 浮動小数点数加算回路 | |
| Choi | Fixed Point Arithmetic | |
| JPH03241421A (ja) | 乗算器 | |
| JPH0361224B2 (ja) | ||
| JPH02165225A (ja) | 精度つき浮動小数点数演算処理装置 | |
| JPH07120265B2 (ja) | 2進浮動小数点乗算における丸め処理方式 |