JPS58119047A - 10進乗算又は除算装置 - Google Patents

10進乗算又は除算装置

Info

Publication number
JPS58119047A
JPS58119047A JP184482A JP184482A JPS58119047A JP S58119047 A JPS58119047 A JP S58119047A JP 184482 A JP184482 A JP 184482A JP 184482 A JP184482 A JP 184482A JP S58119047 A JPS58119047 A JP S58119047A
Authority
JP
Japan
Prior art keywords
register
digit
selector
multiplication
fold
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
Application number
JP184482A
Other languages
English (en)
Inventor
Akira Yamaoka
山岡 彰
Kenichi Wada
健一 和田
Tsuguo Shimizu
清水 嗣雄
Yoichi Shintani
洋一 新谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP184482A priority Critical patent/JPS58119047A/ja
Publication of JPS58119047A publication Critical patent/JPS58119047A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; Dividing

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、絶対値と符号により表現される10進数の乗
除算装置に係る。
従来の10進乗算は、乗数の1桁(デジット)に対応す
る回数だけ被乗数を加算し、11−に桁シフトをするこ
とにより積を求める方法で行なわれるのが一般的である
。この方法では、乗数の桁がn(=0.−・・・・・、
9)とすれば、1桁当り1回の加算が必要であり、平均
4.5回/桁の加算が必要である。
一方、従来の10進除算は、被除数から除数を桁シフト
しながら減算することによって行っている。この方式で
は、商1桁が”(”L・・・・・・、9)になることを
知るためにn+1回の減算が必要であり平均5.5回/
桁の減算が必要である。
したがって、乗除算においては、加減算回数が乗除算速
度に大きな影響を与えていた。
本発明の目的は、乗数又は商の1桁当りに要する加減算
回数が、少なくてすむ10進乗除算装置を提供すること
にある。
そのため、被乗数又は除数の1倍、2倍、4倍。
8倍数を発生させる回路を設け、乗算においてはこれら
の倍数の適当な組合せを選ぶことにより、乗数1桁に対
し1ないし2回の加減算で処理を完了させ、除算におい
ては、被除数とこれらの倍数とを適当な順に減算してい
くことにより、商1桁当り4回以下の減算で処理を完了
させることを特徴にしている。
以下、本発明の一実施例を図面を参照しつつ説明する。
なお、被乗数(又は除数)と乗数(又は被除数)はとも
に8バイトのデータで右端の4ビツトに符号コードが有
るものとして説明する。
第1図は、本発明を実現する全体のブロック図である。
レジスタ10は、乗算の場合被乗数が、除算の場合除数
が入れられる。レジスタ10の内容は、回路20で1.
2,4.8倍数に変換され、それぞれ線20A、20B
、20C,20Dを通じてレジスタ21,22,23.
24に納められる。ここでレジスタ21,22.23.
24および10は例えば8バイトである。
レジスタ30は16バイトであり、乗算の場合前半8バ
イトにはオールOか、後半の8バイトには乗数が入れら
れ、除算の場合、前半8バイトにはオール0が後半8バ
イトには被除数が入れられる。
シフタ40は、レジスタ30の内容を右又は左に4ビツ
ト論理シフトするか、そのままシフトせずに出力する機
能を有する。
デコーダ50は、乗算の場合、乗数の1桁をデコードす
ることにより、セレクタ25と加算器70とシフタ40
の動作を制御し、除算の場合、減算結果により商の1桁
を発生する。
以下、各部の動作について具体的に説明する。
第2図は、第1図の回路20を表わしたものである。レ
ジスタ10の内容は、線10Aを介して回路20に送ら
れる。1llOAは64ビツトで、右端4ビツトは符号
を表わすコードであり、符号チェック回路100で符号
が調べられ正符号のとる。残り60ビツトは、数値を表
わす2進化10進符号の集りである。16ケよりなる1
列目の2倍回路201〜216の内置上位の2倍回路2
16へは4ビツトの0が入れられ、他の15ケの2倍回
路215〜201には、この60ビツトが順に4ビツト
づつ上位側から割当てられる。2倍回路の入力io〜1
.と、出力5ビツトの内の上位側4ビツト80〜もの間
の真理値表を第3図に示す。1列目の2倍回路の出力は
、図のごとく2列目の2倍回路217〜232に入力さ
れ、2列目の出力は3列目の2倍回路233〜248へ
入力される。このとき1(i=1〜2)列目の2倍回路
201の4ビツトの出力の内の下位側3ビツトの下位側
に10#を付加したものが(i+1 )列目の2倍回路
217に入力される。2倍回路201の最上位ビットは
2倍回路218の最下位入力となる。以下同様にi列目
の2倍回路の出力の内の下位側3ビツトが対応する( 
++X )列目の2倍回路の上位桁入力さ扛、i列目の
2倍回路の出力の内の最上位ビットは、対応する(i+
1)列目の2倍回路よりさらに上位側に隣接する2倍回
路の最下位桁に入力される。このとき、各列の最上位の
出力線216A、232A、246Aは無視する。1列
目、2列目、3列目の2倍回路への入力および3列目の
出力はそれぞれ、120A。
20B、20C,20Dを介して、レジスタ21゜22
.23,24 (第1図)へ送られる。こnらの値は、
被乗数又は除数の絶対値の1.2,4゜8倍を示してい
る。
このようにして、レジスタ21〜24にセットされた値
は、第1図で@21八〜24Aを介しセレクタ25に送
らnる。
さて、ここから、乗算の場合の動作について説明する。
最初レジスタ30の上位側8バイトにはオール0が、下
位側8バイトには乗数がセットされている。最下位側の
4ビツトは線30を介してデコーダ50へ送られる。こ
うして、乗数の符号が線30Aを介してデコーダ50に
送られること罠なり、ここで符号のチェックが行われ正
符号のとき、#20Eの値をそのまま内部フラグF(図
示せず]にセットし、負符号のときは線20Bを反転さ
せた値をFにセットする。
一方、レジスタ30の値16バイトはレジスタ81と8
2を介し交のちシフタ40でデコーダ50の制御下で右
に4ビツト論理シフトされレジスタ30へ戻される。以
上が第1サイクルの動作である。
第2サイクルは、Ij!30Aにより送られた値に従い
以下のような動作をする。デコーダ5oは線30Aの値
により第4図で示した表に従って線50A、50B、5
0C,50Dの値をセットする。
第4図は、乗数のケタが0.1,2,4.8のときは、
被乗数の0.1,2,4.8倍を中間積に加えることを
、乗数が3.5.6のときは最初に被乗数の−1,1,
2倍を中間積に加えtのち、2サイクル目で4倍を加え
ることを、乗数が7゜9のときは−1,1倍を加えたの
ち、8倍を加えることを意味している。すなわち、セレ
クタ25は、線50Dの値が1111”のとき線24A
を、1100”のとき線23Aを、”010”のとき線
22Aを、”Ool”のとき線21Aを、@ooo”の
ときオール0を、それぞn線25A圧出力する。加減算
器70は、線50Cが′1#のときは10進減算をO”
のときは10進加算を実行する。結果はレジスタ80に
セットされ、セレクタ90では、常に+1180Aを選
ぶ。レジスタ30の内容は、常にレジスタ81と82に
セットされる。レジスタ80と82の値はシフタ40へ
送られる。シフタ40は4150Bの値が11”のとき
右に4ビツトシフトし、′0”のときシフトをしない。
シック40の出力は再び、レジスタ30にセットされる
。ただし、線50Bの値が0の場合には、レジスタ30
の右端4ビツトには、第4図に示した線50Aの値がセ
ットされる。このようにして、レジスタ30の前半8バ
イトには第1回目の中間積が得られる。第4図で示すよ
うに、乗数の1桁30Aが(10進表現で)0,1゜2
.4.8すなわち50Bが@1”のときは、1回の加算
で1桁の掛は算が終了し、右に4ビツトシフトすること
により次のサイクルで乗数の次の桁をレジスタ30の右
端4ビツトにセットするとともに、中間積も1桁分シフ
トする。30Aが3゜5.6,7.9すなわち50Bが
@0”のときは、2回の加減算(2サイクル)例えば5
のときは、まず被乗数の1倍を加えて、次のサイクルで
4倍を加えることで1桁の掛は算が終了する。すなわち
、初めのサイクルでは、結果をシフトすることなく、次
の乗数1桁をl!150Aにより強制的に4又は8にセ
ットし、次のサイクルでは、線30Aが4又は8となる
念め、必ずこのサイクルで右4ビツトシフトが行われる
。このように、第2サイクルの終わりの時点で、レジス
タ30の右端にあつた乗数の1のケタが失われ乗数の1
0のケタの値が各端に現われる。また、レジスタ30の
後半の左端の桁には、積の1のケタの値が求まり、前半
にはそれ以上のケタの中間積が入っている。
以上の第2サイクルの処理を、乗数の桁数回くり返すこ
とにより順次、積が下のケタから求まり、それがレジス
タ30で右につぎつぎシフトでnてゆく。最後のサイク
ルではデコーダ50の内部フラグFのO/1により正/
負符号を線50Aに発生してレジスタ30の右端にセッ
トすることにより所望の乗算峙果が、レジスタ30に得
られる。
本方式によれば、乗数1桁当り1又は2回の加算、平均
1.5回/桁ですむ。
次に、除算の場合の動作について説明する。
最初レジスタ30の上位8バイトにはオール0が下位8
バイトには被除数がセットされている。
第1サイクルでは右端4ビツトが線30を介してデコー
ダ50へ送られ、被除数の符号がチェックされる。もし
、正符号であれば、内部フラグFには線20Hの値をそ
のままセットし、負符号でおれば、920Eを反転した
値をFにセットする。
一方、レジスタ30の値は、レジスタ81と82を介し
たのち、シフタ40で左に4ビツト論理シフトさn、レ
ジスタ30に戻される。
第2サイクルでは、セレクタ25は線24Aを選択して
線25Aに出力し、加算器70は10進減算を行い結果
をレジスタ80にセットする。レジスタ30の値はその
ままレジスタ81と82にセットする。セレクタ90は
もし、加算器70の最上位からキャリーが生じた場合に
は、線80Aを、キャリーが生じない場合には、線81
Aをセレクトする。シフタ40は、シフトを行わずその
ままの値を出力し、再びレジスタ30にセットする。デ
コーダ50は、加算器70からキャリーが生じたか、否
かにより内部の1ビツトラツチ(d4 とする)をそれ
ぞれ、11” @0”にセットする。
第3サイクルでは、セレクタ25は線23Aを選び、加
算器70は10進減算を行い、レジスタ80にセットす
る。レジスタ30の値は常にレジスタ81と82にセッ
トされる。
加算器70の最上位からのキャリーの有、無により、セ
レクタ90はそれぞれ線80A、81Aをセレクトし、
デコーダ50は、1ビツトランチ(dsとする)をそれ
ぞれ11”、@0”にセットする。シフタ40は、シフ
トをせず、値はそのまま、レジスタ30にセットされる
第4サイクルでは、セレクタ25は線22Aを選び、加
算器70は10進減算を行い、結果をレジスタ80にセ
ットする。レジスタ30の値はレジスタ81と82にセ
ットされる。加算器70の最上位からのキャリーの有、
無により、セレクタ90は、8B OA、 81 At
−Jヒ、fコ−1’50は内部1ビツトラツチ(dtと
するンを11#。
@IO”にセットする。シフタ40は、シフトを行わず
、そのttレジスタ30に!をセットする。
第5サイクルでは、セレクタ25は121Aを選び加算
器70は10進減算を行い、結果をレジスタ80にセッ
トする。レジスタ30の値はレジスタ81と82にセッ
トされる。加算器70の最上位からのキャリーの有、無
により、セレクタ90は線80A、81Aを選び、デコ
ーダ50.1ビツトラツチ(’t とする]を@1#、
@Q”にセットする。今度はシフタ40で左に4ビツト
シフトを行い、結果をレジスタ30にセットする。
このとき、レジスタ30の右端4ビツトには、デコーダ
50から線50Aを介して、4ビツトのラッチd、d、
d、d、の値がそのままセットされる。
このように、第2〜5サイクルの処理で商の最初の1桁
d、d、d、d、が求められる。すなわち、第2サイク
ルの処理は、被除数から除数の8倍をひいてもし、除数
の方が小さいときは、減算結果を次のために残し、除数
の方が大きいときは、減算前の値を次のために残す、と
同時に、商1桁4ビットの内の最上位1ビツトd4の値
を求めている。以下、除数の4倍、2倍、1倍と減算を
行うことにより、商の1ビットd、、d、、d、を求め
ている。また、第5サイクルでは、商の次の桁を求める
ために、被除数の中間値とそれまでに求めた商を左に4
ビツトシフトし、右端4ビツトには今求めた1桁の商を
入れている。
以上の第2〜5サイクルの処理を、くり返すことにより
、レジスタ30の後半には、右端へ順次求められた商が
入れられてゆく。また、前半へは、後半から順次1ケタ
ずつ被除数がシフトされてゆく。
このようにして最後の商が求まったら、最後のサイクル
では、デコーダ50の内部フラグFの071に従い正/
負符号を線50Aに発生させるレジスタ30にセットす
ることにより、所望の余抄と商が、レジスタ30の上位
と下位にそれぞれ得られる。本実施例によれば、商1桁
を求めるのに、4回の減算ですむ。
以上のごとく、本発明によれば、被乗数又は除数の1倍
、2倍、4倍、8倍を発生する回路を設けることにより
、より少ない加算回数で乗除算処理を実行することが可
能である。本発明は以上の実施例に限定されるものでは
なく、特許請求の範囲の記載内において、当業者が容易
になしつる変形をも含むものである。
以上に示したごとく、本発明によれば、被乗数又は除数
の1倍、2倍、4倍、8倍を用い、これらを適当な組合
せで加減算することにより、少ない演算回数で乗除算処
理を行うことができる。
【図面の簡単な説明】
第1図は、本発明における10進乗除算装置のブロック
図、第2図は、第1図の1.2,4.8倍数発生回路の
ブロック図、第3図は、第2図の2倍回路の真理値表、
第4図は、第1図のデコー第 1  図 第 2 図 レスダ/l)(ソ

Claims (1)

  1. 【特許請求の範囲】 1、乗算又は被除数に対し、被乗数又は除数に相当する
    加減算をくシ返すことにより、所望の結果を求めるよう
    な10進乗除算装置において、被乗数又は除数の1倍、
    2倍、4倍、8倍を発生する回路と、 これらの内の1つ又はオールOをセレクトするセレクタ
    と、 一方の入力には中間積(又は被除数)を、他方には上記
    セレクタからの出力を入力し、これら2数の間でlO進
    加算又は減算を行う加算器と、 演算結果か演算前の中間積(又は被除数)を選ぶセレク
    タと、 そのセレクタの出力および中間積−乗数(又は被除数・
    商]を右(又は左ンに4ビツトシフトするか、ノーシフ
    トで出力するシックと、シフタからの出力を納めるレジ
    スタと、乗算においては、乗数1桁をデコードすること
    により、核セレクタと加算器とシフタを制御し、除算に
    おいては、該セレクタと加算器とシックを制御するとと
    もに、該加算器の結果から商1桁のコードを生成するデ
    コーダ、を設けたことを特徴とする10進乗算又は除算
    装蓋。
JP184482A 1982-01-11 1982-01-11 10進乗算又は除算装置 Pending JPS58119047A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP184482A JPS58119047A (ja) 1982-01-11 1982-01-11 10進乗算又は除算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP184482A JPS58119047A (ja) 1982-01-11 1982-01-11 10進乗算又は除算装置

Publications (1)

Publication Number Publication Date
JPS58119047A true JPS58119047A (ja) 1983-07-15

Family

ID=11512852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP184482A Pending JPS58119047A (ja) 1982-01-11 1982-01-11 10進乗算又は除算装置

Country Status (1)

Country Link
JP (1) JPS58119047A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60160438A (ja) * 1984-01-31 1985-08-22 Fujitsu Ltd 除算装置
US4745569A (en) * 1983-12-28 1988-05-17 Hitachi, Ltd. Decimal multiplier device and method therefor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745569A (en) * 1983-12-28 1988-05-17 Hitachi, Ltd. Decimal multiplier device and method therefor
JPS60160438A (ja) * 1984-01-31 1985-08-22 Fujitsu Ltd 除算装置
JPH0368415B2 (ja) * 1984-01-31 1991-10-28 Fujitsu Ltd

Similar Documents

Publication Publication Date Title
EP0158530B1 (en) Nonrestoring divider
KR860001433B1 (ko) Rom을 사용하여 10진 승산을 수행하는 데이터 프로세서
KR0165719B1 (ko) 반도체메모리를 이용한 승산장치
JPS6256536B2 (ja)
JPH0113130B2 (ja)
US4745569A (en) Decimal multiplier device and method therefor
EP0310701B1 (en) BCD arithmetic using binary arithmetic and logical operations
JP2502836B2 (ja) 除算回路の前処理装置
JPS58119047A (ja) 10進乗算又は除算装置
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
JPH076024A (ja) 十進数乗算器
JPS6226723B2 (ja)
JPH01116826A (ja) 10進乗算装置
US4458327A (en) Prime or relatively prime radix data processing system
SU748409A1 (ru) Устройство дл умножени двоично- дес тичных чисел
JP2508286B2 (ja) 平方根演算装置
JPS63221426A (ja) GF(2▲上m▼)のガロア体に属する元の乗算装置
EP0055124B1 (en) Digital multipliers
JP3638218B2 (ja) シフト機能付きalu命令を持つマイクロプロセッサ
RU2248094C2 (ru) Устройство преобразования из десятичной системы счисления в двоичную
JP2675087B2 (ja) マイクロコンピュータ
JPS60108932A (ja) 十進演算処理装置
SU763897A1 (ru) Устройство дл умножени
JP3105577B2 (ja) 分割積型乗算装置
JP3104569B2 (ja) 除算回路