JPH0330018A - 10進演算方式 - Google Patents
10進演算方式Info
- Publication number
- JPH0330018A JPH0330018A JP1163679A JP16367989A JPH0330018A JP H0330018 A JPH0330018 A JP H0330018A JP 1163679 A JP1163679 A JP 1163679A JP 16367989 A JP16367989 A JP 16367989A JP H0330018 A JPH0330018 A JP H0330018A
- Authority
- JP
- Japan
- Prior art keywords
- register
- subtraction
- result
- carry status
- loaded
- 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
- 238000000034 method Methods 0.000 claims description 6
- 230000001629 suppression Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/492—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
- G06F7/493—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
- G06F7/494—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/492—Indexing scheme relating to groups G06F7/492 - G06F7/496
- G06F2207/4924—Digit-parallel adding or subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
この発明は10進減算を高速に行うようにしたlO進演
算方式に関する。
算方式に関する。
[従来の技術]
従来の10進演算方式で10進演算を行う場合、2進加
減算器(ALU)を使用して2進化10進数の演算を行
うのが一般的である。2進加減算器を使用して10進減
算を行う際、被減数(減算される方の数)より減数(減
算する方の数〉が大きいため、被減数の最上位桁でボロ
ーが発生するとき、減算結果の10の補数をとる操作が
必要になる。従来は、10進減算を実行した結果のキャ
リーステータスを条件判定して、補正演算を行うか否か
をマイクロプログラムで切り分ける方法が一般的である
. すなわち、従来は第4図に示すようなフローチャートに
従って動作がなされる。10進減算のマイクロ命令DS
UBが実行され(ステップ201)、キャリーステータ
スの条件分岐のマイクロ命令が実行される〈ステップ2
02)。キャリーステータスが「1」である場合(被減
数でボローが発生しない場合)はそのまま終了するので
、2ステップのマイクロ命令で10進減算の実行が終了
する.しかし、キャリーステータスが「0」である場合
(被減数でボローが発生する場合〉は補正演算のマイク
ロ命令RECOl4が実行される(ステップ203〉の
で、3ステップのマイクロ命令が必要となる. また、第5図(a)〜(C)はこの10進演算方式にお
ける命令サイクルを示すタイムチャートである。第5図
において、(a)は命令フェッチサイクル、(b)はデ
コードサイクル、(C)は実行サイクルを示しており、
この第5図から判るように3段パイプラインtN造とな
っている。10進減算のマイクロ命令DSUBのステッ
プを81、補正演算のマイクロ命令のステップを82、
キャリーステータスにより条件分岐のマイクロ命令のス
テップをS3とし、マイクロ命令のlサイクルの時間を
Tとすれば、補正演算のマイクロ命令RECOMの実行
が必要な場合、10進減算の実行に要する時間は5Tか
かる。
減算器(ALU)を使用して2進化10進数の演算を行
うのが一般的である。2進加減算器を使用して10進減
算を行う際、被減数(減算される方の数)より減数(減
算する方の数〉が大きいため、被減数の最上位桁でボロ
ーが発生するとき、減算結果の10の補数をとる操作が
必要になる。従来は、10進減算を実行した結果のキャ
リーステータスを条件判定して、補正演算を行うか否か
をマイクロプログラムで切り分ける方法が一般的である
. すなわち、従来は第4図に示すようなフローチャートに
従って動作がなされる。10進減算のマイクロ命令DS
UBが実行され(ステップ201)、キャリーステータ
スの条件分岐のマイクロ命令が実行される〈ステップ2
02)。キャリーステータスが「1」である場合(被減
数でボローが発生しない場合)はそのまま終了するので
、2ステップのマイクロ命令で10進減算の実行が終了
する.しかし、キャリーステータスが「0」である場合
(被減数でボローが発生する場合〉は補正演算のマイク
ロ命令RECOl4が実行される(ステップ203〉の
で、3ステップのマイクロ命令が必要となる. また、第5図(a)〜(C)はこの10進演算方式にお
ける命令サイクルを示すタイムチャートである。第5図
において、(a)は命令フェッチサイクル、(b)はデ
コードサイクル、(C)は実行サイクルを示しており、
この第5図から判るように3段パイプラインtN造とな
っている。10進減算のマイクロ命令DSUBのステッ
プを81、補正演算のマイクロ命令のステップを82、
キャリーステータスにより条件分岐のマイクロ命令のス
テップをS3とし、マイクロ命令のlサイクルの時間を
Tとすれば、補正演算のマイクロ命令RECOMの実行
が必要な場合、10進減算の実行に要する時間は5Tか
かる。
[発明が解決しようとする課題]
上述したように、10進減算の実行は上記3つのマイク
ロ命令のステップ81〜S3でなされるが、補正演算の
マイクロ命令RECOHのステップS2のフェッチは第
5図中一点鎖線で示すように条件分岐のマイクロ命令の
ステップS3の実行終了後でなければできないので、補
正演算のマイクロ命令RECOl4の実行が必要な場合
、10進減算の実行に5Tの時間が必要となっていた。
ロ命令のステップ81〜S3でなされるが、補正演算の
マイクロ命令RECOHのステップS2のフェッチは第
5図中一点鎖線で示すように条件分岐のマイクロ命令の
ステップS3の実行終了後でなければできないので、補
正演算のマイクロ命令RECOl4の実行が必要な場合
、10進減算の実行に5Tの時間が必要となっていた。
これはパイプライン横造をとる場合の欠点である.すな
わち、従来のlO進演算方式では、条件判定を行って演
算処理のフローを分岐させているため、パイプラインの
段数を深くして演算処理の高速化を図っている最近の中
央処理装置においては、上述したような条件分岐を行っ
た場合、パイプライン処理に乱れが生じるために演算処
理速度が低下する欠点があった. [課題を解決するための手段] この発明の10進演算方式は、第1のレジスタに格納さ
れた被減数および第2のレジスタに格納された減数を入
力するとともに入力した被減数から減数を減算してこの
減算結果を第3のレジスタに格納して減算動作を実行す
る2進加減算器と、この2進加減算器で減算した結果、
被減数の最上位桁でボローが発生した場合にキャリース
テータスとして「0」を出力しボローが発生しない場合
にキャリーステータスとして「1」を出力するキャリー
ステータス判定回路と、「0」を発生するゼロ発生回路
と、キャリーステータス判定回路から出力されたキャリ
ーステータスを保持するキャリーステータスレジスタと
、キャリーステータスレジスタが「1」を保持している
場合、2進加減算器から出力される減算結果のデータを
第3のレジスタに格納することを抑止する抑止回路とを
設け、被減数から減数を減算する減算動作を実行した後
、補正演算動作を行う。
わち、従来のlO進演算方式では、条件判定を行って演
算処理のフローを分岐させているため、パイプラインの
段数を深くして演算処理の高速化を図っている最近の中
央処理装置においては、上述したような条件分岐を行っ
た場合、パイプライン処理に乱れが生じるために演算処
理速度が低下する欠点があった. [課題を解決するための手段] この発明の10進演算方式は、第1のレジスタに格納さ
れた被減数および第2のレジスタに格納された減数を入
力するとともに入力した被減数から減数を減算してこの
減算結果を第3のレジスタに格納して減算動作を実行す
る2進加減算器と、この2進加減算器で減算した結果、
被減数の最上位桁でボローが発生した場合にキャリース
テータスとして「0」を出力しボローが発生しない場合
にキャリーステータスとして「1」を出力するキャリー
ステータス判定回路と、「0」を発生するゼロ発生回路
と、キャリーステータス判定回路から出力されたキャリ
ーステータスを保持するキャリーステータスレジスタと
、キャリーステータスレジスタが「1」を保持している
場合、2進加減算器から出力される減算結果のデータを
第3のレジスタに格納することを抑止する抑止回路とを
設け、被減数から減数を減算する減算動作を実行した後
、補正演算動作を行う。
[作用]
第1のレジスタおよび第2のレジスタがら被減数および
減数を入力した2進加:g&算器により減算動作がなさ
れるとともにこの減算結果データは第3のレジスタに格
納される。この減算の結果、ボローが発生しない場合に
キャリーステータス判定回路から出力されたキャリース
テータス「1」はキャリーステータスレジスタに格納さ
れ、被減数の最上位桁でボローが発生した場合にキャリ
ーステータス判定回路から出力されたキャリーステータ
ス「0」はキャリーステータスレジスタに格納される. 次に、上記減算結果データが第2のレジスタに格納され
るとともにゼロ発生回路がら「o」が第■のレジスタに
格納されて減算動作が再度実行されて補正演算動作がな
される。この場合、キャリーステータスレジスタでrl
Jが保持されているときは2進加減算器から出力された
補正演算結果データが第3のレジスタに格納されること
は仰止回路により抑止され、キャリーステータスレシス
タでrQJか保持されているときは2進加減算器から出
力された補正演算結果データが第3のレジスタに格納さ
れることは抑止回路により印止されない。
減数を入力した2進加:g&算器により減算動作がなさ
れるとともにこの減算結果データは第3のレジスタに格
納される。この減算の結果、ボローが発生しない場合に
キャリーステータス判定回路から出力されたキャリース
テータス「1」はキャリーステータスレジスタに格納さ
れ、被減数の最上位桁でボローが発生した場合にキャリ
ーステータス判定回路から出力されたキャリーステータ
ス「0」はキャリーステータスレジスタに格納される. 次に、上記減算結果データが第2のレジスタに格納され
るとともにゼロ発生回路がら「o」が第■のレジスタに
格納されて減算動作が再度実行されて補正演算動作がな
される。この場合、キャリーステータスレジスタでrl
Jが保持されているときは2進加減算器から出力された
補正演算結果データが第3のレジスタに格納されること
は仰止回路により抑止され、キャリーステータスレシス
タでrQJか保持されているときは2進加減算器から出
力された補正演算結果データが第3のレジスタに格納さ
れることは抑止回路により印止されない。
したがって、減算動作を実行した場合、被減数より減数
が小さいためにボローが発生しないときには減算結果デ
ータが第3のレジスタに格納されたままとなり、被減数
より減数が大きいためにボローが発生したときには補正
演算結果データが新たに第3のレジスタに格納される.
この結果、ボローの発生の有無とは無関係に補正演算が
なされ、条件分岐命令は使用されない。
が小さいためにボローが発生しないときには減算結果デ
ータが第3のレジスタに格納されたままとなり、被減数
より減数が大きいためにボローが発生したときには補正
演算結果データが新たに第3のレジスタに格納される.
この結果、ボローの発生の有無とは無関係に補正演算が
なされ、条件分岐命令は使用されない。
[実施@]
次にこの発明について図面を参照して説明す?。
第1図はこの発明の10進演算方式の一実施例における
IO進演算機構を示すブロック図である。tは演算する
データの一方を格納するソース1レジスタ、2は演算す
るデータの他方を格納するソース2レジスタ、3はソー
スlレジスタ1およびソース2レジスタ2からデータを
入力して2進数の演算を行う2進加減算器、4はこの2
進加減算器3から出力された演算結果を格納する目的レ
ジスタである。5は2進加減算器3でなされた演算の結
果、最上位桁でボローが発生したとき「0」、発生しな
いとき「1」を出力するキャリーステータス判定回路で
ある。6はキャリーステータス判定回路5から送出され
たステータスの結果を格納するキャリーステータスレジ
スタ、7はロード指示信号を生成して目的レジスタ4に
送出することにより目的レジスタ4にデータを格納させ
る目的レジスタロード指示生成回路である。
IO進演算機構を示すブロック図である。tは演算する
データの一方を格納するソース1レジスタ、2は演算す
るデータの他方を格納するソース2レジスタ、3はソー
スlレジスタ1およびソース2レジスタ2からデータを
入力して2進数の演算を行う2進加減算器、4はこの2
進加減算器3から出力された演算結果を格納する目的レ
ジスタである。5は2進加減算器3でなされた演算の結
果、最上位桁でボローが発生したとき「0」、発生しな
いとき「1」を出力するキャリーステータス判定回路で
ある。6はキャリーステータス判定回路5から送出され
たステータスの結果を格納するキャリーステータスレジ
スタ、7はロード指示信号を生成して目的レジスタ4に
送出することにより目的レジスタ4にデータを格納させ
る目的レジスタロード指示生成回路である。
8は補正演算のためにソースlレジスタ1にロードする
r■」を出力するゼロ発生回路、9はマイクロ命令をデ
コードして各部に指示を送出するマイクロ命令レコーダ
である。10はソースlレジスタtにロードするデータ
を伝達するソース1バス、11はソース2レジスタ2に
ロードするデータを伝達するソース2バスで、13は目
的レジスタ4から出力されるデータを伝達する目的バス
である。
r■」を出力するゼロ発生回路、9はマイクロ命令をデ
コードして各部に指示を送出するマイクロ命令レコーダ
である。10はソースlレジスタtにロードするデータ
を伝達するソース1バス、11はソース2レジスタ2に
ロードするデータを伝達するソース2バスで、13は目
的レジスタ4から出力されるデータを伝達する目的バス
である。
第2図(a)〜(C)はこの10進演算方式における命
令サイクルを示すタイムチャートであり、前述した第5
図と同様に、(a)は命令フェッチサイクル、(b)は
デコードサイクル、(C)は実行サイクルを示しており
、第5図と同じく3段パイプライン構造となっている。
令サイクルを示すタイムチャートであり、前述した第5
図と同様に、(a)は命令フェッチサイクル、(b)は
デコードサイクル、(C)は実行サイクルを示しており
、第5図と同じく3段パイプライン構造となっている。
次に、第1図に示した10進演算機構において10進減
算を実行する場合の動作を第3図のフローチャートを参
照して説明する。
算を実行する場合の動作を第3図のフローチャートを参
照して説明する。
まず、被減数をソース1バス10を介してソースレジス
タ1に、減数をソース2バス11.を介してソースレジ
スタ2にロードする。次に10進減算の実行を指示する
。
タ1に、減数をソース2バス11.を介してソースレジ
スタ2にロードする。次に10進減算の実行を指示する
。
これにより、{0進減算のマイクロ命令DSUBが実行
される〈第3図ステップ101 >。すなわち、マイク
ロ命令DSUBがマイクロ命令デコーダ9でデコードさ
れ各部に制御信号が送出されることによって、2進加減
算器3はソース■レジスタ1およびソース2レジスタ2
から被減数および減数を入力して減算を行い、この減算
結果のデータを目的レジスタ4にロードするとともに、
バイパスルート11−lを介してソース2レジスタ2に
もロードする.これと同時に、キャリーステータス判定
回路5は2進加減算器3でなされた減算動作の結果、最
L位桁でボローが発生したか否かを判定し、ボローが発
生した場合に「O」、ボローか発生しない場合に「1」
をキャリーステータスレジスタ6にロードする。
される〈第3図ステップ101 >。すなわち、マイク
ロ命令DSUBがマイクロ命令デコーダ9でデコードさ
れ各部に制御信号が送出されることによって、2進加減
算器3はソース■レジスタ1およびソース2レジスタ2
から被減数および減数を入力して減算を行い、この減算
結果のデータを目的レジスタ4にロードするとともに、
バイパスルート11−lを介してソース2レジスタ2に
もロードする.これと同時に、キャリーステータス判定
回路5は2進加減算器3でなされた減算動作の結果、最
L位桁でボローが発生したか否かを判定し、ボローが発
生した場合に「O」、ボローか発生しない場合に「1」
をキャリーステータスレジスタ6にロードする。
次に、補正演算のマイクロ命令RECOMが実行される
(第3図ステップ102)。すなわち、マイクロ命令R
ECOl4がマイクロ命令デコータ9でデコードされ各
部に制御信号が送出されることによって、ゼロ発生回路
8はソースlバス↓Oを介してソース1レジスタ■に「
O」をロードする。そして、この状態で再び10進減算
が実行される。この減算結果を目的レジスタ4にロード
するか否かは、目的レジスタロード生成指示回路7がキ
ャリーステータスレジスタ6の内容に従って判断する。
(第3図ステップ102)。すなわち、マイクロ命令R
ECOl4がマイクロ命令デコータ9でデコードされ各
部に制御信号が送出されることによって、ゼロ発生回路
8はソースlバス↓Oを介してソース1レジスタ■に「
O」をロードする。そして、この状態で再び10進減算
が実行される。この減算結果を目的レジスタ4にロード
するか否かは、目的レジスタロード生成指示回路7がキ
ャリーステータスレジスタ6の内容に従って判断する。
この目的レジスタロード生成指示回路7が目的レジスタ
4に送出するロード信号をアクティブにすれば減算結果
は目的レジスタ4にロードされ、インアクティブにすれ
ば減算結果は目的レジスタ4にロードされない。
4に送出するロード信号をアクティブにすれば減算結果
は目的レジスタ4にロードされ、インアクティブにすれ
ば減算結果は目的レジスタ4にロードされない。
次に、上述の動作を具体例で示す。
l)被減数より減数が小さい場合
r543−234Jという10進減算を実行する場合、
ソース1レジスタ1にr543J 、ソース2レジスタ
2にr234,がロードされた後、10進減算のマイク
ロ命令DSUBが実行されると、目的レジスタ4および
ソース2レジスタ2にr309,という減算結果をロー
ドする((1〉式).この場合、被減数r543】より
減数r234.の方が小さいため、キャリーステータス
レジスタ6には「1」がロードされる。
ソース1レジスタ1にr543J 、ソース2レジスタ
2にr234,がロードされた後、10進減算のマイク
ロ命令DSUBが実行されると、目的レジスタ4および
ソース2レジスタ2にr309,という減算結果をロー
ドする((1〉式).この場合、被減数r543】より
減数r234.の方が小さいため、キャリーステータス
レジスタ6には「1」がロードされる。
これに続いて、補正演算のマイクロ命令RECOMが実
行されると、ソースlレジスタ1に「0」がロードされ
るとともにソース2レジスタ2に「3091がロードさ
れrQOo.−r309.という減算動作がなされる(
(2〉式〉。しかし、目的レジスタロード生成指示回路
7はキャリーステータスレジスタ6の内容が「1」なの
で、目的レジスタ4に送出するロード信号をインアクテ
ィブにする。したがって、rooO』− r309Jの
減算結果は目的レジスタ4にロードされず、目的レジス
タ4の内容はr3091のまま保持される。この結果、
キャリーステータスレジスタ6が「1」であるため、目
的レジスタ4の内容r309Jにプラスの符号がつけら
れてr + 309.という結果が最終的に得られる.
2)被減数より減数が大きい場合 r234−543Jという10進減算を実行する場合、
ソース1レジスタ1にr234, 、ソース2レジスタ
2にr543,がロードされた後、10進減算のマイク
ロ命令DSUBが実行されると、目的レジスタ4および
ソース2レジスタ2にr691Jという減算結果をロー
ドする((3〉式〉。この場合、被減数r234,より
減数r543.の方が大きいため、キャリーステータス
レジスタ6には「0」がロードされる。
行されると、ソースlレジスタ1に「0」がロードされ
るとともにソース2レジスタ2に「3091がロードさ
れrQOo.−r309.という減算動作がなされる(
(2〉式〉。しかし、目的レジスタロード生成指示回路
7はキャリーステータスレジスタ6の内容が「1」なの
で、目的レジスタ4に送出するロード信号をインアクテ
ィブにする。したがって、rooO』− r309Jの
減算結果は目的レジスタ4にロードされず、目的レジス
タ4の内容はr3091のまま保持される。この結果、
キャリーステータスレジスタ6が「1」であるため、目
的レジスタ4の内容r309Jにプラスの符号がつけら
れてr + 309.という結果が最終的に得られる.
2)被減数より減数が大きい場合 r234−543Jという10進減算を実行する場合、
ソース1レジスタ1にr234, 、ソース2レジスタ
2にr543,がロードされた後、10進減算のマイク
ロ命令DSUBが実行されると、目的レジスタ4および
ソース2レジスタ2にr691Jという減算結果をロー
ドする((3〉式〉。この場合、被減数r234,より
減数r543.の方が大きいため、キャリーステータス
レジスタ6には「0」がロードされる。
これに続いて、補正演算のマイクロ命令RECOMが実
行されると、ソース1レジスタ1に「0」がロードされ
るとともにソース2レジスタ2に「69ljがロードさ
れr000』− r691 Jという減算動作がなされ
る((4〉式)。ここで、目的レジスタロード生戒指示
回路7はキャリーステータスレジスタ6の内容が「O」
なので、目的レジスタ4に送出するロード信号をアクテ
ィブにする.したがって、’OOOJ ’691Jの
減算結果r309,は目的レジスタ4にロードされ、目
的レジスタ4の内容はr691Jからr 309 jに
変化する。この結果、キャリニステータスレジスタ6が
「o」であるため、目的レジスタ4の内容r309,に
マイナスの符号がつけられてr−309Jという結果が
最終的に得られる。
行されると、ソース1レジスタ1に「0」がロードされ
るとともにソース2レジスタ2に「69ljがロードさ
れr000』− r691 Jという減算動作がなされ
る((4〉式)。ここで、目的レジスタロード生戒指示
回路7はキャリーステータスレジスタ6の内容が「O」
なので、目的レジスタ4に送出するロード信号をアクテ
ィブにする.したがって、’OOOJ ’691Jの
減算結果r309,は目的レジスタ4にロードされ、目
的レジスタ4の内容はr691Jからr 309 jに
変化する。この結果、キャリニステータスレジスタ6が
「o」であるため、目的レジスタ4の内容r309,に
マイナスの符号がつけられてr−309Jという結果が
最終的に得られる。
以上説明したように、被減数より減数が小さい場合でも
被減数より減数が大きい場合でも、1o進減算の実行に
はlO進減算のマイクロ命令DSUBおよび補正演算の
マイクロ命令RECOMの2つのマイクロ命令を実行す
ればよい. 第2図に示すように10進減算のマイクロ命令DSUB
のステップを81、補正演算のマイクロ命令RECOl
4のステップを82とし、マイクロ命令の1サイクルの
時間をTとすれば、上記2つのマイクロ命令のステップ
SL,S2を順次行うので、IO進減算の実行に要する
時間は2Tとなる。
被減数より減数が大きい場合でも、1o進減算の実行に
はlO進減算のマイクロ命令DSUBおよび補正演算の
マイクロ命令RECOMの2つのマイクロ命令を実行す
ればよい. 第2図に示すように10進減算のマイクロ命令DSUB
のステップを81、補正演算のマイクロ命令RECOl
4のステップを82とし、マイクロ命令の1サイクルの
時間をTとすれば、上記2つのマイクロ命令のステップ
SL,S2を順次行うので、IO進減算の実行に要する
時間は2Tとなる。
方、前述した従来例の場合、補正演算の実行が必要なと
きは第5図のタイムチャートに示したように10進減算
の実行に5Tの時間を要している。
きは第5図のタイムチャートに示したように10進減算
の実行に5Tの時間を要している。
すなわち、この実施例においては、従来例に比較して1
0進減算に要する時間を3T短縮したこと?なる。
0進減算に要する時間を3T短縮したこと?なる。
[発明の効果]
以上説明したように、この発明の10進演算方式によれ
ば、第1のレジスタおよび第2のレジスタから被減数お
よび減数を入力した2進加減算器により減算動作がなさ
れるとともにこの減算結果データは第3のレジスタに格
納される。この減算の結果、ボローが発生しない場合に
キャリーステータス判定回路から出力されたキャリース
テータス「1」はキャリーステータスレジスタに格納さ
れ、被減数の最上位桁でボローが発生した場合にキャリ
ーステータス判定回路から出力されたキャリーステータ
ス「0」はキャリーステータスレジスタに格納される. 次に、上記減算結果データが第2のレジスタに格納され
るとともにゼロ発生回路からr■,が第1のレジスタに
格納されて減算動作が再度実行されて補正演算動作がな
される。この場合、キャリーステータスレジスタで「1
」が保持されているときは2進加減算器から出力された
補正演算結果データが第3のレジスタに格納されること
は抑止回路により抑止され、キャリーステータスレジス
タで「0」が保持されているときは2進加減算器から出
力された補正演算結果データが第3のレジスタに格納さ
れることは抑止回路により抑止されない. したがって、減算動作を実行した場合、被減数より減数
が小さいためにボローが発生しないときには減算結果デ
ータが第3のレジスタに格納されたままとなり、被減数
より減数が大きいためにボローが発生したときには補正
演算結果データが新たに第3のレジスタに格納される。
ば、第1のレジスタおよび第2のレジスタから被減数お
よび減数を入力した2進加減算器により減算動作がなさ
れるとともにこの減算結果データは第3のレジスタに格
納される。この減算の結果、ボローが発生しない場合に
キャリーステータス判定回路から出力されたキャリース
テータス「1」はキャリーステータスレジスタに格納さ
れ、被減数の最上位桁でボローが発生した場合にキャリ
ーステータス判定回路から出力されたキャリーステータ
ス「0」はキャリーステータスレジスタに格納される. 次に、上記減算結果データが第2のレジスタに格納され
るとともにゼロ発生回路からr■,が第1のレジスタに
格納されて減算動作が再度実行されて補正演算動作がな
される。この場合、キャリーステータスレジスタで「1
」が保持されているときは2進加減算器から出力された
補正演算結果データが第3のレジスタに格納されること
は抑止回路により抑止され、キャリーステータスレジス
タで「0」が保持されているときは2進加減算器から出
力された補正演算結果データが第3のレジスタに格納さ
れることは抑止回路により抑止されない. したがって、減算動作を実行した場合、被減数より減数
が小さいためにボローが発生しないときには減算結果デ
ータが第3のレジスタに格納されたままとなり、被減数
より減数が大きいためにボローが発生したときには補正
演算結果データが新たに第3のレジスタに格納される。
この結果、従来とは違ってボローの発生の有無とは無関
係に補正演算がなされ、条件分岐命令は使用されないの
で、10進減算を高速に実行することができる。
係に補正演算がなされ、条件分岐命令は使用されないの
で、10進減算を高速に実行することができる。
第1図はこの発明の10進演算方式の一実施例における
10進演算機構を示すブロック図、第2図は同実施例に
おけるフローチャート、第3図は同実施例におけるタイ
ムチャート、第4図は従来例におけるフローチャート、
第5図は従来例におけるタイムチャートである. 1・・・ソース1レジスタ(第1のレジスタ〉、2・・
−ソース2レジスタ(第2のレジスタ)、3・・・2進
加減算器、4・・・目的レジスタ(第3のレジスタ)、
5・・・キャリーステータス判定回路、6・・・キャリ
ーステータスレジスタ、7・・・目的レジスタロード指
示生或回28(抑止回路〉、8・・・ゼロ発生回路. 第1図
10進演算機構を示すブロック図、第2図は同実施例に
おけるフローチャート、第3図は同実施例におけるタイ
ムチャート、第4図は従来例におけるフローチャート、
第5図は従来例におけるタイムチャートである. 1・・・ソース1レジスタ(第1のレジスタ〉、2・・
−ソース2レジスタ(第2のレジスタ)、3・・・2進
加減算器、4・・・目的レジスタ(第3のレジスタ)、
5・・・キャリーステータス判定回路、6・・・キャリ
ーステータスレジスタ、7・・・目的レジスタロード指
示生或回28(抑止回路〉、8・・・ゼロ発生回路. 第1図
Claims (1)
- 【特許請求の範囲】 第1のレジスタに格納された被減数および第2のレジ
スタに格納された減数を入力するとともに入力した被減
数から減数を減算してこの減算結果を第3のレジスタに
格納して減算動作を実行する2進加減算器と、 この2進加減算器で減算した結果、被減数の最上位桁で
ボローが発生した場合にキャリーステータスとして「0
」を出力しボローが発生しない場合にキャリーステータ
スとして「1」を出力するキャリーステータス判定回路
と、 「0」を発生するゼロ発生回路と、 キャリーステータス判定回路から出力されたキャリース
テータスを保持するキャリーステータスレジスタと、 キャリーステータスレジスタが「1」を保持している場
合、2進加減算器から出力される減算結果のデータを第
3のレジスタに格納することを抑止する抑止回路とを設
け、 第1のレジスタおよび第2のレジスタに被減数および減
数を格納して減算動作を実行し、この減算結果を第2の
レジスタに格納するとともにゼロ発生回路から出力され
た「0」を第1のレジスタに格納した後、減算動作を実
行して補正演算動作を行うことを特徴とする10進演算
方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1163679A JPH0330018A (ja) | 1989-06-28 | 1989-06-28 | 10進演算方式 |
US07/544,863 US5086406A (en) | 1989-06-28 | 1990-06-28 | Circuit arrangement for decimal arithmetic |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1163679A JPH0330018A (ja) | 1989-06-28 | 1989-06-28 | 10進演算方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0330018A true JPH0330018A (ja) | 1991-02-08 |
Family
ID=15778540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1163679A Pending JPH0330018A (ja) | 1989-06-28 | 1989-06-28 | 10進演算方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5086406A (ja) |
JP (1) | JPH0330018A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699287A (en) * | 1992-09-30 | 1997-12-16 | Texas Instruments Incorporated | Method and device for adding and subtracting thermometer coded data |
US5751623A (en) * | 1995-11-22 | 1998-05-12 | Amalgamated Software Of North America, Inc. | Digital computer for adding and subtracting |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60262243A (ja) * | 1984-06-08 | 1985-12-25 | Matsushita Electric Ind Co Ltd | 高速演算装置 |
JPS623335A (ja) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | コンピュータ |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1257003A (en) * | 1985-06-19 | 1989-07-04 | Tadayoshi Enomoto | Arithmetic circuit |
US4866656A (en) * | 1986-12-05 | 1989-09-12 | American Telephone And Telegraph Company, At&T Bell Laboratories | High-speed binary and decimal arithmetic logic unit |
US4811272A (en) * | 1987-05-15 | 1989-03-07 | Digital Equipment Corporation | Apparatus and method for an extended arithmetic logic unit for expediting selected floating point operations |
-
1989
- 1989-06-28 JP JP1163679A patent/JPH0330018A/ja active Pending
-
1990
- 1990-06-28 US US07/544,863 patent/US5086406A/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60262243A (ja) * | 1984-06-08 | 1985-12-25 | Matsushita Electric Ind Co Ltd | 高速演算装置 |
JPS623335A (ja) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | コンピュータ |
Also Published As
Publication number | Publication date |
---|---|
US5086406A (en) | 1992-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0895804A (ja) | 中央処理装置 | |
JPH0330018A (ja) | 10進演算方式 | |
JP2806346B2 (ja) | 演算処理装置 | |
KR100231852B1 (ko) | 듀얼 파이프라인 프로세서에서 로드 명령의 병렬 수행 장치 | |
CA1155231A (en) | Pipelined digital processor arranged for conditional operation | |
JP2807170B2 (ja) | 演算装置 | |
JP2002182902A (ja) | メモリデータアクセス構造およびその方法 | |
JP2597744B2 (ja) | 分岐制御方法 | |
JP2944563B2 (ja) | パイプライン型情報処理装置 | |
JPH02249025A (ja) | 信号処理プロセッサ | |
JPH0228828A (ja) | 最大値最小値検出回路 | |
JPS60117331A (ja) | 10進加減算装置 | |
JPS5852747A (ja) | 加減算回路 | |
JP2591325B2 (ja) | 分岐制御装置 | |
JPH04218834A (ja) | 条件分岐制御回路 | |
JPS63298633A (ja) | パイプライン処理装置における命令フェッチ制御方式 | |
JPS61145644A (ja) | マイクロ命令の分岐方式 | |
JPS63279321A (ja) | マイクロプログラム制御装置 | |
JPH0346027A (ja) | 条件判定方式 | |
JPH0433021A (ja) | 分岐命令制御方式 | |
JPS62285137A (ja) | デイジタル信号処理プロセツサ | |
JPS6257028A (ja) | パイプライン制御の情報処理装置におけるブランチ制御方法 | |
JPH01150934A (ja) | 情報処理装置のプログラムカウンタ | |
JPH04117520A (ja) | 浮動小数点演算装置 | |
US20060224654A1 (en) | Method and system for performing digital signal processing operations in a computer system |