JPH01258129A - 算術論理演算回路 - Google Patents
算術論理演算回路Info
- Publication number
- JPH01258129A JPH01258129A JP8507688A JP8507688A JPH01258129A JP H01258129 A JPH01258129 A JP H01258129A JP 8507688 A JP8507688 A JP 8507688A JP 8507688 A JP8507688 A JP 8507688A JP H01258129 A JPH01258129 A JP H01258129A
- Authority
- JP
- Japan
- Prior art keywords
- decimal
- circuit
- digit
- subtraction
- 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.)
- Pending
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、例えばマイクロコンピュータの如き電子計算
機における演算回路に関する。
機における演算回路に関する。
従来のマイクロプロセッサにおいて、10進演算機能を
持った算術論理演算回路には、「電子計算機通論2」(
萩原 宏著 181年10月10日第14刷 朝食書店
発行)P98〜99に述べられている10進演算理論に
基づいた補正回路を組み込み、−度めの2進加減算結果
に対して、2度めの2進加減算において10進加減算補
正を行なう方法を採っていた。また、扱う2進化10進
符号(BCD)も2桁(8ビット入力データ)であった
。
持った算術論理演算回路には、「電子計算機通論2」(
萩原 宏著 181年10月10日第14刷 朝食書店
発行)P98〜99に述べられている10進演算理論に
基づいた補正回路を組み込み、−度めの2進加減算結果
に対して、2度めの2進加減算において10進加減算補
正を行なう方法を採っていた。また、扱う2進化10進
符号(BCD)も2桁(8ビット入力データ)であった
。
上記従来例では、まず2進加減算を行なうためにAUL
を使用し1次に10進補正するために。
を使用し1次に10進補正するために。
再びAULを使用することになる。1回の10進演算命
令で、2度AULを使うことは、入力データ長の増加に
伴ない処理時間が長くなる。
令で、2度AULを使うことは、入力データ長の増加に
伴ない処理時間が長くなる。
また、10進補正値発生回路には、桁上げ(キャリー)
伝播回路が含まれており、入力データ長の増大により1
桁上げ伝播遅延時間も大きくなり10進補正の為の2進
加減算処理が、大きく遅れることになる。これは、マイ
クロプログラムの実行ステップ数増にもつながり、さら
に10進演算命令の総処理時間も遅延されることになる
。
伝播回路が含まれており、入力データ長の増大により1
桁上げ伝播遅延時間も大きくなり10進補正の為の2進
加減算処理が、大きく遅れることになる。これは、マイ
クロプログラムの実行ステップ数増にもつながり、さら
に10進演算命令の総処理時間も遅延されることになる
。
論理規模の点でも、該桁上げ伝播回路は、AULの桁上
げ先見回路(CLA)と同等の論理規模を要し、VLS
Iの面積増につながる。
げ先見回路(CLA)と同等の論理規模を要し、VLS
Iの面積増につながる。
そこで、本発明の目的は、上記のような問題を解決し、
10進演算命令の高速化、AULの論理規模増加を防ぐ
手段を提供することにある。
10進演算命令の高速化、AULの論理規模増加を防ぐ
手段を提供することにある。
〔課題を解決するための手段〕
上記目的は、10進演算の指示があった時に、AULに
おいて、1度の2進加減算で10進加減算処理が出来る
ように入力値、出力値補正回路を組み込み、桁上げ情報
は、既存の桁上げ先見回路(CLA)を活用、さらに、
通常の2進加減算結果のバス出力回路とは別に10進演
算が指示された場合のみ動作する10進演算結果のバス
出力回路を設けることにより、多数桁の10進演算を高
速に処理できるようになる。また、既存の回路を共用す
ることで、論理規模の増加も押えられる。
おいて、1度の2進加減算で10進加減算処理が出来る
ように入力値、出力値補正回路を組み込み、桁上げ情報
は、既存の桁上げ先見回路(CLA)を活用、さらに、
通常の2進加減算結果のバス出力回路とは別に10進演
算が指示された場合のみ動作する10進演算結果のバス
出力回路を設けることにより、多数桁の10進演算を高
速に処理できるようになる。また、既存の回路を共用す
ることで、論理規模の増加も押えられる。
前記手段により、AULに組み込む補正回路は、BCD
オペランドデータの全桁に6 (”0110(B)”)
を加算する回路(以下入力値補正回路とする)と。
オペランドデータの全桁に6 (”0110(B)”)
を加算する回路(以下入力値補正回路とする)と。
もう一方のBCDオペランドデータと前記入力値補正回
路で補正後のデータとの2進加減算を行ない、その出力
結果とデジットキャリーが“0″の桁にA (1e)
(’“1010(B)’″)を加算する回路(以下出力
値補正回路とする)であれ、さらに通常の2進加減算結
果のバス出力回路とは別に、10進演算の指示があった
ときだけ動作する10進演算用バス出力回路を設けたこ
とにより、バスへ結果を出力する際の遅延時間を縮少す
る働きがある。
路で補正後のデータとの2進加減算を行ない、その出力
結果とデジットキャリーが“0″の桁にA (1e)
(’“1010(B)’″)を加算する回路(以下出力
値補正回路とする)であれ、さらに通常の2進加減算結
果のバス出力回路とは別に、10進演算の指示があった
ときだけ動作する10進演算用バス出力回路を設けたこ
とにより、バスへ結果を出力する際の遅延時間を縮少す
る働きがある。
以上の回路を組み込んだことにより、本発明のAULに
おいては、10進演算の指示があった場合には、1度の
2進加減算のみで多数桁の10進演算処理が完了するよ
うになる。
おいては、10進演算の指示があった場合には、1度の
2進加減算のみで多数桁の10進演算処理が完了するよ
うになる。
[実施例]
以下1本発明の一実施例について、第1図〜第5図を参
照して詳細に説明する。
照して詳細に説明する。
第1図は、本発明の算術論理演算回路の一実施例を示す
ブロック図である。
ブロック図である。
101.102は、データバスからオペランドデータを
算術論理演算回路(以下ALUとする)104に取込む
為のセレクタ兼ラッチ回路、103は、102へ入力さ
れたBCDオペランドデータの全桁に6 (’0110
(B)’)を加算補正する入力値補正回路、105は、
AUL104の2進加減算結果および、AUL内の桁上
先見回路(以下、CLAとする)から出力される4ビッ
ト毎の桁上げ情報信号(以下、デジットキャリー)を取
込んで、前記デジットキャリーが、′0”である桁にA
(’1010(B)’)を加算補正する出力値補正回路
、106は、2進加減算結果をデータバス108へ出力
するバス出力回路、107は、10進演算結果をバスへ
出力するバス出力回路である6 第2図は、第1図における入力値補正回路103の一具
体例を示すブロック図である@ B o ””’ B
n gB o 〜B。、 P o= P−の信号線で、
102,103゜301が接続されている。
算術論理演算回路(以下ALUとする)104に取込む
為のセレクタ兼ラッチ回路、103は、102へ入力さ
れたBCDオペランドデータの全桁に6 (’0110
(B)’)を加算補正する入力値補正回路、105は、
AUL104の2進加減算結果および、AUL内の桁上
先見回路(以下、CLAとする)から出力される4ビッ
ト毎の桁上げ情報信号(以下、デジットキャリー)を取
込んで、前記デジットキャリーが、′0”である桁にA
(’1010(B)’)を加算補正する出力値補正回路
、106は、2進加減算結果をデータバス108へ出力
するバス出力回路、107は、10進演算結果をバスへ
出力するバス出力回路である6 第2図は、第1図における入力値補正回路103の一具
体例を示すブロック図である@ B o ””’ B
n gB o 〜B。、 P o= P−の信号線で、
102,103゜301が接続されている。
201は、BCDI桁毎に6 (’0110(B)’)
を加算補正する回路、301は、制御信号302゜30
3.304により、入力データスルー、入力データ反転
、補正値を選択することができるラッチ回路である。
を加算補正する回路、301は、制御信号302゜30
3.304により、入力データスルー、入力データ反転
、補正値を選択することができるラッチ回路である。
第3図は、第2図における入力値補正回路103を構成
し、1桁(4ビット)に6を加算補正する回路の一具体
例である。
し、1桁(4ビット)に6を加算補正する回路の一具体
例である。
信号線Bo”Baで入力された4ビットのデータに’0
110’を加算した結果をPo”Paに出力するような
論理を実現したものである。BO〜B3は、入力データ
の反転である。
110’を加算した結果をPo”Paに出力するような
論理を実現したものである。BO〜B3は、入力データ
の反転である。
第4図は、第1図における出力値補正回路105の一具
体例を示すブロック図である。C0−Cl、。
体例を示すブロック図である。C0−Cl、。
0 o〜O−、D Co” D C−への信号線で50
1゜105,107が接続されている。501は、2進
加減算結果のラッチ回路、401は、ラッチ回路501
から入力された該データの1桁毎にA(zs)を加算補
正する回路、第5図は、第4図における出力値補正回路
105を構成し、1桁毎にA (1s)を加算補正する
回路の一具体例である。
1゜105,107が接続されている。501は、2進
加減算結果のラッチ回路、401は、ラッチ回路501
から入力された該データの1桁毎にA(zs)を加算補
正する回路、第5図は、第4図における出力値補正回路
105を構成し、1桁毎にA (1s)を加算補正する
回路の一具体例である。
信号線Go”Caで入力された該2進加減算結果にデジ
ットキャリーD Coが、0の場合には、’1010’
を加算した結果をOo 〜Oaに、DC。
ットキャリーD Coが、0の場合には、’1010’
を加算した結果をOo 〜Oaに、DC。
が1の場合には、入力された該2進加減算結果をOo〜
03に出力するような論理を実現したものである。
03に出力するような論理を実現したものである。
第6図は、従来の10進演算補正回路を持つALUのブ
ロック図である。
ロック図である。
604は、10進演算補正回路である。ALU603に
よ、る1度めの2進加減算結果に対して、補正値を生成
する。該補正値を取り込み、再びALU603で2進加
減算を行なっていた。
よ、る1度めの2進加減算結果に対して、補正値を生成
する。該補正値を取り込み、再びALU603で2進加
減算を行なっていた。
以上記したように、入力値補正回路103.出力値補正
回路105は、単純な回路で実現されている。
回路105は、単純な回路で実現されている。
本発明の動作を以下に説明するが、最初に本実施例で実
現しているlO進演算本式について説明する。
現しているlO進演算本式について説明する。
10進加算の場合、任意の桁で加算した結果、上位の桁
に桁上り(デジットキャリー)がなく、9以下の場合、
補正する必要はない、しがし、デジットキャリーが生じ
た場合と、結果が、A(za)〜F (za) ニなっ
た場合は、実際よ’J6 (’0110’)少なくなっ
ているので、補正する必要がある。
に桁上り(デジットキャリー)がなく、9以下の場合、
補正する必要はない、しがし、デジットキャリーが生じ
た場合と、結果が、A(za)〜F (za) ニなっ
た場合は、実際よ’J6 (’0110’)少なくなっ
ているので、補正する必要がある。
次に10進減算の場合、任意の桁で減算した結果デジッ
トキャリーが生じたときには、正しい結果となる為、補
正の必要がない、しかし、デジットキャリーが無い、即
ち桁借り(ボロー)が生じた場合には、実際より6多く
なっている為、補正の必要がある。
トキャリーが生じたときには、正しい結果となる為、補
正の必要がない、しかし、デジットキャリーが無い、即
ち桁借り(ボロー)が生じた場合には、実際より6多く
なっている為、補正の必要がある。
6を減算することは、A(zs)を加算することと同じ
である。
である。
以上のことを考慮して1本実施例では1次の方式をとる
。まず10進加算の場合入力されたBCDオペランドデ
ータの全桁に対して、6加算した後、もう一方のBCD
オペランドデータと2進加算を行なう、該出力結果に対
して該2進加算時、ALUのCLAから出力されるデジ
ットキャリーがOの桁に、Aを加算する、1の桁には補
正しないで、バスへ出力する。
。まず10進加算の場合入力されたBCDオペランドデ
ータの全桁に対して、6加算した後、もう一方のBCD
オペランドデータと2進加算を行なう、該出力結果に対
して該2進加算時、ALUのCLAから出力されるデジ
ットキャリーがOの桁に、Aを加算する、1の桁には補
正しないで、バスへ出力する。
次に10進減算の場合は、入力されたBCDオペランド
データでそのまま、2進減算を行なう。
データでそのまま、2進減算を行なう。
該出力結果に対して、該2進減算時のデジットキャリー
が0の桁にAを加算する、1の桁は補正しないでそのま
ま、バスへ出力する。
が0の桁にAを加算する、1の桁は補正しないでそのま
ま、バスへ出力する。
次に1本実施例の動作について説明する。
(A) 入力値補正
前記セレクタラッチの回路102へデータバスからBC
Dオペランドデータを取り込む1次に該データは、前記
入力値補正回路103へ転送され、全桁に、6 (’0
110(ii)’)を加算された後、前記セレクタラッ
チ回路301において、制御信号304に、10通加算
指示を受けた時だけ、該補正データが、前記ALU10
4に入力される。
Dオペランドデータを取り込む1次に該データは、前記
入力値補正回路103へ転送され、全桁に、6 (’0
110(ii)’)を加算された後、前記セレクタラッ
チ回路301において、制御信号304に、10通加算
指示を受けた時だけ、該補正データが、前記ALU10
4に入力される。
制御信号303が選択された時は、入力データが補正さ
れずにALU104に入力され、通常の算術論理演算を
行うことができる。
れずにALU104に入力され、通常の算術論理演算を
行うことができる。
制御信号302が選択された時は、入力データが反転さ
れて、ALU104に入力される。これは、10進減算
、2進減算を行う時に用いる。
れて、ALU104に入力される。これは、10進減算
、2進減算を行う時に用いる。
(B) 2進加減算
10進加減算実行時には、前記ALU104には、2進
加減算の指示が出されている。この時、前記セレクタラ
ッチ回路101,301より入力されたデータに対して
2進加減算が行なわれる。
加減算の指示が出されている。この時、前記セレクタラ
ッチ回路101,301より入力されたデータに対して
2進加減算が行なわれる。
該演算時には、前記デジットキャリーと2進加減算結果
を、前記バス出力回路1o6.前記出力値補正回路10
5へ出力する。
を、前記バス出力回路1o6.前記出力値補正回路10
5へ出力する。
(C) 出力値補正
10進演算の指示が出されている時、前記10進演算用
ラッチ回路501から取り込んだ、前記2進加減算結果
の全桁に対して、前記出力値補正回路105により、デ
ジットキャリーが、0の桁には、Aを加算し、1の桁に
は、補正しない、この時のデータが、正確な10進演算
(BCD)結果となり、前記10進演算用バス出力回路
107へ出力される。
ラッチ回路501から取り込んだ、前記2進加減算結果
の全桁に対して、前記出力値補正回路105により、デ
ジットキャリーが、0の桁には、Aを加算し、1の桁に
は、補正しない、この時のデータが、正確な10進演算
(BCD)結果となり、前記10進演算用バス出力回路
107へ出力される。
CD) バス出力
通常、2進の算術論理演算の結果は、前記バス出力回路
106から、データバス108へ出力される。10進演
算の結果は、前記10通用バス出力回路107から、デ
ータバス108へ出力される。
106から、データバス108へ出力される。10進演
算の結果は、前記10通用バス出力回路107から、デ
ータバス108へ出力される。
以上のようにして、本実施例では、10進演算処理が実
現される。
現される。
本発明によれば、ALUにおいて、1度の2進加減算処
理のみで、10進演算結果を出力することができる為、
10進演算専用回路が不要になる。
理のみで、10進演算結果を出力することができる為、
10進演算専用回路が不要になる。
また、ALU内のCLA回路、フラグ生成回路等も、2
進、10進演算で共用できるため、VLSIチップの面
積縮少に有効である。
進、10進演算で共用できるため、VLSIチップの面
積縮少に有効である。
さらに本発明のALUでは、1度の2進加減算処理で、
10進演算結果を求め、10進演算用バス出力回路を経
由して出力できることから、10進演算命令の高速化に
有効である。
10進演算結果を求め、10進演算用バス出力回路を経
由して出力できることから、10進演算命令の高速化に
有効である。
第1図は、本発明の算術論理演算回路の一実施例を示す
ブロック図、2第2図は、第1図における入力値補正回
路の一具体例を示すブロック図、第3図は、第2図にお
ける入力値補正回路の一回路例を示す回路図、第4図は
、第1図における出力値補正回路の一具体例を示すブロ
ック図、第5図は、第4図における出力値補正回路の一
回路例を示す回路図、第6図は、従来の10進演算補正
方法をとるALUのブロック図である。 101.102,601,601・・・セレクタ・ラッ
チ回路、103・・・入力値補正回路、104゜603
・・・ALU、105・・・出力値補正回路、106゜
107.605・・・バス出力回路、201・・・BC
D1桁分の入力値補正回路、401・・・BCDI桁分
の出力値補正回路、604・・・従来の10進演算補正
回路。 箒 1 Σ IDB −r−1ハ人 304 +oJF$’TVl*4ii第 312] 棒 L−■ 早 5 区 L−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−aol 記力領、@
正5:J発(1析)第 乙 図 60ろ テ一タノマス
ブロック図、2第2図は、第1図における入力値補正回
路の一具体例を示すブロック図、第3図は、第2図にお
ける入力値補正回路の一回路例を示す回路図、第4図は
、第1図における出力値補正回路の一具体例を示すブロ
ック図、第5図は、第4図における出力値補正回路の一
回路例を示す回路図、第6図は、従来の10進演算補正
方法をとるALUのブロック図である。 101.102,601,601・・・セレクタ・ラッ
チ回路、103・・・入力値補正回路、104゜603
・・・ALU、105・・・出力値補正回路、106゜
107.605・・・バス出力回路、201・・・BC
D1桁分の入力値補正回路、401・・・BCDI桁分
の出力値補正回路、604・・・従来の10進演算補正
回路。 箒 1 Σ IDB −r−1ハ人 304 +oJF$’TVl*4ii第 312] 棒 L−■ 早 5 区 L−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−aol 記力領、@
正5:J発(1析)第 乙 図 60ろ テ一タノマス
Claims (1)
- 1、2進数の算術論理演算を扱う2入力算術論理演算回
路(以下ALUと称す)において、10進演算命令の指
示があつた時に、2入力の2進化10進数(以下、BC
Dと称す)に対して、該BCDの全桁に‘0110(_
B)’を加算して入力データを補正する入力値補正回路
と、もう一方のBCDと前記入力値補正回路の出力値を
、前記ALUを用いて2進加減算を行なつた結果および
、前記ALUより発生する4ビットごとの桁上げ情報(
デジットキャリー)を入力して、前記AULの演算結果
に対して、前記デジットキャリが、0の桁には‘101
0(_B)’を加算し補正する。前記デジットキャリー
が、1の桁には、補正しない出力値補正回路と、前記出
力値補正回路の出力結果をバスへ出力する10進演算用
バス出力回路を組み込んだことを特徴とする算術論理演
算回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8507688A JPH01258129A (ja) | 1988-04-08 | 1988-04-08 | 算術論理演算回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8507688A JPH01258129A (ja) | 1988-04-08 | 1988-04-08 | 算術論理演算回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01258129A true JPH01258129A (ja) | 1989-10-16 |
Family
ID=13848529
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8507688A Pending JPH01258129A (ja) | 1988-04-08 | 1988-04-08 | 算術論理演算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01258129A (ja) |
-
1988
- 1988-04-08 JP JP8507688A patent/JPH01258129A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4941120A (en) | Floating point normalization and rounding prediction circuit | |
| US4484259A (en) | Fraction bus for use in a numeric data processor | |
| US4953115A (en) | Absolute value calculating circuit having a single adder | |
| JPH0123806B2 (ja) | ||
| JP3418460B2 (ja) | 倍精度除算回路および方法 | |
| US4247891A (en) | Leading zero count formation | |
| EP0295788B1 (en) | Apparatus and method for an extended arithmetic logic unit for expediting selected operations | |
| JPS6125245A (ja) | 丸め処理回路 | |
| JPH0228830A (ja) | 整数除算回路 | |
| US5721697A (en) | Performing tree additions via multiplication | |
| EP0643352A1 (en) | Self-checking complementary adder unit | |
| US4240144A (en) | Long operand alignment and merge operation | |
| JPH10187416A (ja) | 浮動小数点演算装置 | |
| US4224677A (en) | Effective digit count on a resultant operand | |
| JPH01258129A (ja) | 算術論理演算回路 | |
| EP0265948B1 (en) | Data processor capable of immediately calculating branch address in relative address branch | |
| JPS58205253A (ja) | 演算装置 | |
| JPH0251732A (ja) | 浮動小数点演算器 | |
| JP2675087B2 (ja) | マイクロコンピュータ | |
| JP2685466B2 (ja) | アドレス演算器 | |
| JPH0383126A (ja) | 浮動小数点乗算器 | |
| JPH10105377A (ja) | 浮動小数点データ処理手段 | |
| JP3522387B2 (ja) | パイプライン演算装置 | |
| JP3139011B2 (ja) | 固定小数点プロセッサ | |
| JPH045727A (ja) | 変換装置 |