JPS626258B2 - - Google Patents
Info
- Publication number
- JPS626258B2 JPS626258B2 JP56105333A JP10533381A JPS626258B2 JP S626258 B2 JPS626258 B2 JP S626258B2 JP 56105333 A JP56105333 A JP 56105333A JP 10533381 A JP10533381 A JP 10533381A JP S626258 B2 JPS626258 B2 JP S626258B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- register
- signal
- contents
- output
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
Description
【発明の詳細な説明】
この発明はノン−リストアリング方式で除算を
行う除算回路に関する。
行う除算回路に関する。
一般に、電子計算機内部で、除算を行う方式と
してリストアリング方式とノン−リストアリング
方式とがある。リストアリング方式は、「被除数
−除数」なる減算を行い、引ける場合この減算に
対応する商のビツトを「1」とし、引けない場合
「0」にする。次に、今のビツトより1つ下の商
のビツト位置の「1/0」を決める為、被除数を
左へ1ビツトシフトしてから、再度、「被除数−
除数」なる減算を行う。ところが、直前の減算で
引けた場合は、単にシフトして減算を行い、引け
なかつた場合は、被除数の値を、引く前の値に戻
してから、シフトして減算を行うようになつてい
る。たとえば、上記引けなかつた場合を式に表わ
すと次のようになる。
してリストアリング方式とノン−リストアリング
方式とがある。リストアリング方式は、「被除数
−除数」なる減算を行い、引ける場合この減算に
対応する商のビツトを「1」とし、引けない場合
「0」にする。次に、今のビツトより1つ下の商
のビツト位置の「1/0」を決める為、被除数を
左へ1ビツトシフトしてから、再度、「被除数−
除数」なる減算を行う。ところが、直前の減算で
引けた場合は、単にシフトして減算を行い、引け
なかつた場合は、被除数の値を、引く前の値に戻
してから、シフトして減算を行うようになつてい
る。たとえば、上記引けなかつた場合を式に表わ
すと次のようになる。
2×((A−B)+B)−B=2A−B ………(1)
但し、「A」は被除数、「B」は除数、「A−
B」は1回目の減算、「(A−B)+B」は引けな
かつた場合に被除数を元の値「A」に戻す式、
「2×(A−B)+B」は上記元の値「A」を左へ
1ビツトシフトする式、「2×((A−B)+B))−
B」は2回目の減算をそれぞれ示している。
B」は1回目の減算、「(A−B)+B」は引けな
かつた場合に被除数を元の値「A」に戻す式、
「2×(A−B)+B」は上記元の値「A」を左へ
1ビツトシフトする式、「2×((A−B)+B))−
B」は2回目の減算をそれぞれ示している。
このように、リストアリング方式は、引きすぎ
をいちいち修正する方式である。
をいちいち修正する方式である。
ところで、上記リストアリング方式による結果
の「2A−B」を得るためには 2A−B=2(A−B)+B ………(2) でも良い。ここで、「2−(A−B)」は、引けな
かつた場合も被除数の値を元に戻さずに左へ1ビ
ツトシフトすることを示し、「2(A−B)+B」
は、2回目の減算の代りに加算を行えば良いこと
を示している。これが即ち、ノン−リストアリン
グ方式である。
の「2A−B」を得るためには 2A−B=2(A−B)+B ………(2) でも良い。ここで、「2−(A−B)」は、引けな
かつた場合も被除数の値を元に戻さずに左へ1ビ
ツトシフトすることを示し、「2(A−B)+B」
は、2回目の減算の代りに加算を行えば良いこと
を示している。これが即ち、ノン−リストアリン
グ方式である。
しかしながら、上記リストアリング方式では、
引けなかつたとき、被除数を元に戻すというステ
ツプが必らず必要であつたため、ノン−リストア
リング方式に比べ、商1ビツトにつき必ず1ステ
ツプ処理が余分に必要である。このため、商が8
ビツトのものでは合計8ステツプも多く処理が必
要なため、電子計算機にとつて、大変致命的な実
行時間の損失となる。しかして、現状では、ノン
−リストアリング方式の除去回路を用いると、回
路が複雑になり、コストパフオーマンス的に問題
があつたため、リストアリング方式の除算回路が
用いられている。
引けなかつたとき、被除数を元に戻すというステ
ツプが必らず必要であつたため、ノン−リストア
リング方式に比べ、商1ビツトにつき必ず1ステ
ツプ処理が余分に必要である。このため、商が8
ビツトのものでは合計8ステツプも多く処理が必
要なため、電子計算機にとつて、大変致命的な実
行時間の損失となる。しかして、現状では、ノン
−リストアリング方式の除去回路を用いると、回
路が複雑になり、コストパフオーマンス的に問題
があつたため、リストアリング方式の除算回路が
用いられている。
この発明は上記事情に鑑みてなされたもので、
その目的とするところは、簡単な回路構成で、処
理ステツプの減少および実行時間の改善が計れる
ノン−リストアリング方式の除算を行うことがで
きる除算回路を提供することにある。
その目的とするところは、簡単な回路構成で、処
理ステツプの減少および実行時間の改善が計れる
ノン−リストアリング方式の除算を行うことがで
きる除算回路を提供することにある。
この発明は、リストアリング方式とノン−リス
トアリング方式との差を見い出し、その差を簡単
な回路で相殺するという手段をとつた。そこで、
この発明により見出した両者の差を説明する。す
なわち、両者の差は前記した(1)式、(2)式から明ら
かなように「2A−B」と「2(A−B)+B」と
の差である。たとえば、4ビツト演算で考え、結
果を5ビツトの範囲で見ると(A=A3A2A1A0、
B=B3B2B1B0とおく)、ノン−リストアリング方
式の場合、次のようになる。
トアリング方式との差を見い出し、その差を簡単
な回路で相殺するという手段をとつた。そこで、
この発明により見出した両者の差を説明する。す
なわち、両者の差は前記した(1)式、(2)式から明ら
かなように「2A−B」と「2(A−B)+B」と
の差である。たとえば、4ビツト演算で考え、結
果を5ビツトの範囲で見ると(A=A3A2A1A0、
B=B3B2B1B0とおく)、ノン−リストアリング方
式の場合、次のようになる。
A−B=0・A3A2A1A0+0・3 2 1
0+0・0001これは、電子計算機内部では減算が
減数の2の補数の加算によつて行われるためであ
る。
0+0・0001これは、電子計算機内部では減算が
減数の2の補数の加算によつて行われるためであ
る。
2(A−B)=A3・A2A1A00
+3・2 1 00+0・0010
2(A−B)+B=A3・A2A1A00
+3・2 1 00+0・0010+0・
B3B2B1B0 ………(3) 一方、リストアリング方式の場合、次のように
なる。
B3B2B1B0 ………(3) 一方、リストアリング方式の場合、次のように
なる。
2A−B=A3・A2A1A00+0・3 2 1 0
+0・0001 ………(4)
これにより、(3)式と(4)式とを比べると、「A3・
A2A1A00」は両式に共通なため、両者の差は、下
記X1、X2の差である。
A2A1A00」は両式に共通なため、両者の差は、下
記X1、X2の差である。
X1≡3・2 1 00+0・0010
+0・B3B2B1B0
X2≡0・3 2 1 0+0・0001
X1−X2=X1−(0・3 2 1 0)−0・
0001 ここで、「0・3 2 1 0」の2の補数
は「1・B3B2B1B0+0・0001」、「0・0001」の
2の補数は「1・1111」である。これにより、 X1−X2=3・2 1 00+0・0010 +0・B3B2B1B0+1・B3B2B1B0 +0・0001+1・1111 ………(5) ここで、「0・B3B2B1B0+1・B3B2B1B0」は
「(1B3)・B2B1B00」となり、「1B3=3」
より「3・B2B1B00」となる。また、「0・
0001+1・1111」は「0・0000」となる。したが
つて上記(5)式は、 となる。
0001 ここで、「0・3 2 1 0」の2の補数
は「1・B3B2B1B0+0・0001」、「0・0001」の
2の補数は「1・1111」である。これにより、 X1−X2=3・2 1 00+0・0010 +0・B3B2B1B0+1・B3B2B1B0 +0・0001+1・1111 ………(5) ここで、「0・B3B2B1B0+1・B3B2B1B0」は
「(1B3)・B2B1B00」となり、「1B3=3」
より「3・B2B1B00」となる。また、「0・
0001+1・1111」は「0・0000」となる。したが
つて上記(5)式は、 となる。
この結果、引けなかつた場合の処理では、「2
回目の減算」に相当する演算結果の5ビツト目
が、リストアリング方式とノン−リストアリング
方式とでは、互いに反転した関係にある。
回目の減算」に相当する演算結果の5ビツト目
が、リストアリング方式とノン−リストアリング
方式とでは、互いに反転した関係にある。
一方、以下に示すように上記演算結果の5ビツ
ト目は、リストアリング方式においては、引ける
か引けないかの判定にそのまま使えることがわか
る。これを示すために、(n−1)回目の減算か
ら、n回目の減算に行く場合のリストアリング方
式を追つて見る。
ト目は、リストアリング方式においては、引ける
か引けないかの判定にそのまま使えることがわか
る。これを示すために、(n−1)回目の減算か
ら、n回目の減算に行く場合のリストアリング方
式を追つて見る。
すなわち、演算回路の最上位ビツト(4ビツト
目、ビツト3)をALU3とすると、n回目の演算
結果の5ビツト目、すなわちn回目の結果の符号
ビツトであるS4(n)は(n−1)回目から、n
回へ移行するときに左へ1ビツトシフトされるた
め、 S4(n)=ALU3(n−1)OVF(n) (但しOVF(n):n回目の演算でのオーバーフ
ロー)となる。そこで、 C(o)=ALU3(o-1) ………(6) を導入すると、 S4(o)=C(o)OVF(o) ………(7) (この場合、オーバーフローは、bit3からbit4への
桁上げ信号を云う。)となる。
目、ビツト3)をALU3とすると、n回目の演算
結果の5ビツト目、すなわちn回目の結果の符号
ビツトであるS4(n)は(n−1)回目から、n
回へ移行するときに左へ1ビツトシフトされるた
め、 S4(n)=ALU3(n−1)OVF(n) (但しOVF(n):n回目の演算でのオーバーフ
ロー)となる。そこで、 C(o)=ALU3(o-1) ………(6) を導入すると、 S4(o)=C(o)OVF(o) ………(7) (この場合、オーバーフローは、bit3からbit4への
桁上げ信号を云う。)となる。
したがつて、次の2つの場合を考えれば、すべ
ての場合を言い尽くしていることになる。すなわ
ち、被除数:A(≡A3A2A1A0)、除数:B(≡
B3B2B1B0)とすると、 (1) A(o-1)=X・1A2A1A0の場合、すなわち、
この場合は(n−1)回目の減算結果がシフト
される直前のデータのbit3が“1”のときであ
り、これは具体的には(n−1)回目の減算で
引けなかつたとき、もしくはリストアした後の
場合である。そして、この場合の次桁の演算は
次のようになる。
ての場合を言い尽くしていることになる。すなわ
ち、被除数:A(≡A3A2A1A0)、除数:B(≡
B3B2B1B0)とすると、 (1) A(o-1)=X・1A2A1A0の場合、すなわち、
この場合は(n−1)回目の減算結果がシフト
される直前のデータのbit3が“1”のときであ
り、これは具体的には(n−1)回目の減算で
引けなかつたとき、もしくはリストアした後の
場合である。そして、この場合の次桁の演算は
次のようになる。
A(o)=2×A(o-1)=1・A2A1A0A-1、
C(o)=1 ………(8)
この結果、減算(A(o)とBとの比較)は、
5bitの範囲で行われるからA(o)の5ビツト目
が“1”、Bの5ビツト目が“0”であるた
め、必ず「引ける」となる。そこでαo-1≡
1A2A1A0、αo≡A2A1A0A-1とおくと、 αo-1≧αo ………(9) ただし、A2=A1=A0=A-1=1のとき、αo-
1=αoとなる。ところが、Bで引いた余りであ
るαo-1、もしくはBで引けずに元に戻された
場合には、 αo-1<B ………(10) を満たす。上記(9)、(10)式により αo<B ゆえにA(o)−Bを行うと、必らずオーバー
フローとはならためOVF(o)=0となる。この
ため、 S4(o)=C(o)OVF(o)=C(o) =ALU3(o-1)=1 ………(11) となり、この場合必らず「引ける」ため、
S4(o)=1となつている。
5bitの範囲で行われるからA(o)の5ビツト目
が“1”、Bの5ビツト目が“0”であるた
め、必ず「引ける」となる。そこでαo-1≡
1A2A1A0、αo≡A2A1A0A-1とおくと、 αo-1≧αo ………(9) ただし、A2=A1=A0=A-1=1のとき、αo-
1=αoとなる。ところが、Bで引いた余りであ
るαo-1、もしくはBで引けずに元に戻された
場合には、 αo-1<B ………(10) を満たす。上記(9)、(10)式により αo<B ゆえにA(o)−Bを行うと、必らずオーバー
フローとはならためOVF(o)=0となる。この
ため、 S4(o)=C(o)OVF(o)=C(o) =ALU3(o-1)=1 ………(11) となり、この場合必らず「引ける」ため、
S4(o)=1となつている。
(2) A(o-1)=X・0A2A1A0の場合、
A(o)=0・A2A1A0A-1≡0・αo、
C(o)=0 ………(12)
この場合は、(A2A1A0A-1)と(B3B2B1B0)と
の大小関係により引けるか引けないかが決ま
る。引ける場合、αo≧B、したがつてαo−B
ではOVF(n)=1となる。この結果、 S4(o)=C(o)OVF(o)=OVF(o)=1 引けない場合、αo<B、したがつてαo−B
ではOVF(n)=0となる。この結果、 S4(o)=OVF(o)=0 以上により、リストアリング方式では、演算結
果の5ビツト目(bit4、S4(o))に着目して、 となる。
の大小関係により引けるか引けないかが決ま
る。引ける場合、αo≧B、したがつてαo−B
ではOVF(n)=1となる。この結果、 S4(o)=C(o)OVF(o)=OVF(o)=1 引けない場合、αo<B、したがつてαo−B
ではOVF(n)=0となる。この結果、 S4(o)=OVF(o)=0 以上により、リストアリング方式では、演算結
果の5ビツト目(bit4、S4(o))に着目して、 となる。
よつて上記(11)、(13)式により、ノン−リスト
アリング方式では、 K≡C(o)OVF(o)、 C(o)=ALUMSB (o−1) (但しC(o)OVF(o)は4ビツトの場合S4(o)と同
じ、またALUMSBは演算結果の最上位ビツト)を
導入し、引けている間はリストアリング方式と同
じだから、K=0………引けない、K=1………
引ける、引けなくなつた時はKに関して、リスト
アリング方式と反転の関係にあるから、加算後、
K=1(=0)………引けない、K=0(=
1)………引けるで判断すれば良いことがわか
る。
アリング方式では、 K≡C(o)OVF(o)、 C(o)=ALUMSB (o−1) (但しC(o)OVF(o)は4ビツトの場合S4(o)と同
じ、またALUMSBは演算結果の最上位ビツト)を
導入し、引けている間はリストアリング方式と同
じだから、K=0………引けない、K=1………
引ける、引けなくなつた時はKに関して、リスト
アリング方式と反転の関係にあるから、加算後、
K=1(=0)………引けない、K=0(=
1)………引けるで判断すれば良いことがわか
る。
したがつて、リストアリング方式の回路に上記
判断回路を付加するだけでノン−リストアリング
方式の除算回路を構成できる点に着目した。
判断回路を付加するだけでノン−リストアリング
方式の除算回路を構成できる点に着目した。
以下、この発明の一実施例について図面を参照
して説明する。
して説明する。
第1図において、1は内部バス2によりロード
可能でしかも左シフト機能をもつたシフトレジス
タ、3,4は内部バス2によりロード可能なレジ
スタ、5はレジスタ4からのデータをそのまま出
力したりあるいは2の補数化して出力する補数
器、6はレジスタ2の内容と補数器5の出力とを
演算する演算回路(加算器)(以後ALU:
arithmetic and logic unitを略称する)、7は
ALU6の出力をそのまま出力したりあるいはシ
フトして出力するシフト回路、8はシフト回路7
からのデータをバス2に出力するバスドライバ、
9はALU6から出力されるオーバーフロー信号
と「ALU3」信号とにより「S4(o)=1」か否か
を判断する判断回路、10はループカウンタであ
る。
可能でしかも左シフト機能をもつたシフトレジス
タ、3,4は内部バス2によりロード可能なレジ
スタ、5はレジスタ4からのデータをそのまま出
力したりあるいは2の補数化して出力する補数
器、6はレジスタ2の内容と補数器5の出力とを
演算する演算回路(加算器)(以後ALU:
arithmetic and logic unitを略称する)、7は
ALU6の出力をそのまま出力したりあるいはシ
フトして出力するシフト回路、8はシフト回路7
からのデータをバス2に出力するバスドライバ、
9はALU6から出力されるオーバーフロー信号
と「ALU3」信号とにより「S4(o)=1」か否か
を判断する判断回路、10はループカウンタであ
る。
上記判断回路9は、次のように構成されてい
る。すなわち、D形フリツプフロツプ回路(以後
D−FF回路と略称する)11のデータ入力端D
には前記ALU6からALU6の最上位ビツト(4
ビツト目、ビツト3)の信号つまり「ALU3」信
号が供給され、クロツク信号入力端CKには図示
しない制御回路からクロツク信号が供給されてい
る。上記D−FF回路11のセツト出力は、排他
的論理回路(以後EORと略称する)12の一方
の入力端に供給され、このEOR12の他方の入
力端には前記ALU6からのオーバーフロー信号
が供給される。上記EOR12の出力はインバー
タ回路14を介してセレクタ13の第1の入力端
に供給されるとともにそのまま第2の入力端に供
給される。上記セレクタ13の出力はD−FF回
路15のデータ入力端Dに供給され、このD−
FF回路15のクロツク信号入力端には上記制御
回路からのクロツク信号が供給され、プリセツト
端子Sには制御回路からのプリセツト信号が供給
される。上記D−FF回路15のセツト出力つま
りK信号は上記セレクタ13のセレクト端子SEL
に供給されるとともに、前記シフトレジスタ1の
入力端子に供給される。なお、上記各部は上記制
御回路によつて制御されるようになつている。
る。すなわち、D形フリツプフロツプ回路(以後
D−FF回路と略称する)11のデータ入力端D
には前記ALU6からALU6の最上位ビツト(4
ビツト目、ビツト3)の信号つまり「ALU3」信
号が供給され、クロツク信号入力端CKには図示
しない制御回路からクロツク信号が供給されてい
る。上記D−FF回路11のセツト出力は、排他
的論理回路(以後EORと略称する)12の一方
の入力端に供給され、このEOR12の他方の入
力端には前記ALU6からのオーバーフロー信号
が供給される。上記EOR12の出力はインバー
タ回路14を介してセレクタ13の第1の入力端
に供給されるとともにそのまま第2の入力端に供
給される。上記セレクタ13の出力はD−FF回
路15のデータ入力端Dに供給され、このD−
FF回路15のクロツク信号入力端には上記制御
回路からのクロツク信号が供給され、プリセツト
端子Sには制御回路からのプリセツト信号が供給
される。上記D−FF回路15のセツト出力つま
りK信号は上記セレクタ13のセレクト端子SEL
に供給されるとともに、前記シフトレジスタ1の
入力端子に供給される。なお、上記各部は上記制
御回路によつて制御されるようになつている。
次に、このような構成において、第2図に示す
フローチヤートを参照して動作を説明する。たと
えば今、被除数を(0000)・(1011)2、除数を
(0010)2とすると、被除数の下位4ビツト
(1011)2はレジスタ1に、上位4ビツト(0000)2
はレジスタ3に設定され、除数(0010)2はレジス
タ4に設定される。すると、レジスタ3の内容つ
まり「0000」はALU6に供給され、レジスタ4
の内容は補数器5で2の補数つまり「1110」に変
換された後、ALU6に供給される。これによ
り、ALU6は「0000」と「1110」の加算を行
い、その加算結果が「1110」となる。このALU
6の出力の最下位ビツト(ALU3)は「0」であ
り、この「0」によりD−FF回路11はリセツ
ト状態になる。このとき、ALU6の出力はオー
バーフローでないため、次のステツプに進む。次
に、ループカウンタ10に「4」をセツトし、レ
ジスタ3の内容をそのままALU6を介してシフ
ト回路7に供給する。このシフト回路7で左へ1
ビツトシフトし、そのLSBにレジスタ1内の最上
位ビツト「1」を設定する。そのシフト回路7の
内容はバスドライバ8およびバス2を介してレジ
スタ3に供給される。この結果、レジスタ3には
「0001」が記憶される。このとき、図示しない制
御回路からのプリセツト信号により、D−FF回
路15がセツトし、このD−FF回路15のセツ
ト出力つまりK信号が論理“1”信号となる。ま
た、演算結果の最上位ビツトが「0」だから、D
−FF回路11はリセツトされる。
フローチヤートを参照して動作を説明する。たと
えば今、被除数を(0000)・(1011)2、除数を
(0010)2とすると、被除数の下位4ビツト
(1011)2はレジスタ1に、上位4ビツト(0000)2
はレジスタ3に設定され、除数(0010)2はレジス
タ4に設定される。すると、レジスタ3の内容つ
まり「0000」はALU6に供給され、レジスタ4
の内容は補数器5で2の補数つまり「1110」に変
換された後、ALU6に供給される。これによ
り、ALU6は「0000」と「1110」の加算を行
い、その加算結果が「1110」となる。このALU
6の出力の最下位ビツト(ALU3)は「0」であ
り、この「0」によりD−FF回路11はリセツ
ト状態になる。このとき、ALU6の出力はオー
バーフローでないため、次のステツプに進む。次
に、ループカウンタ10に「4」をセツトし、レ
ジスタ3の内容をそのままALU6を介してシフ
ト回路7に供給する。このシフト回路7で左へ1
ビツトシフトし、そのLSBにレジスタ1内の最上
位ビツト「1」を設定する。そのシフト回路7の
内容はバスドライバ8およびバス2を介してレジ
スタ3に供給される。この結果、レジスタ3には
「0001」が記憶される。このとき、図示しない制
御回路からのプリセツト信号により、D−FF回
路15がセツトし、このD−FF回路15のセツ
ト出力つまりK信号が論理“1”信号となる。ま
た、演算結果の最上位ビツトが「0」だから、D
−FF回路11はリセツトされる。
ついで、レジスタ1の内容を1ビツト左へシフ
トし、LSBへK信号(論理“1信号)を設定す
る。すると、レジスタ1の内容は「0111」とな
る。この後、レジスタ3の内容がALU6に供給
され、レジスタ4の内容が補数器5で2の補数つ
まり「1110」の変更された後、ALU6に供給さ
れる。これにより、ALU6は「0001」と
「1110」の加算を行い、その加算結果が「1111」
となり、オーバーフローではない。前回の演算に
より、D−FF回路11はリセツトされているか
ら、これとALU6からのオーバーフローでない
信号(論理“0”信号)とにより、EOR12の
出力は「0」となつている。また、このとき、セ
レクタ13はK信号が「1」であるため、B入力
がセレクトされ、D−FF回路15をリセツトせ
しめる。これにより、D−FF回路15のセツト
出力つまりK信号が論理“0”信号に変わる。こ
の後、ループカウンタ10の内容が「1」でない
ため、ALU6の出力をシフト回路7で左へ1ビ
ツトシフトし、LSBへレジスタ1の最上位ビツト
の「0」を設定する。そのシフト回路7の内容は
バストライバ8およびバス2を介してシフト3に
供給される。この結果、レジスト3には「1110」
が記憶される。このとき、ALU6から出力され
るデータの最上位ビツトが「1」のため、D−
FF回路11がセツト状態となる。また、ループ
カウンタ10をカウウントダウンする。
トし、LSBへK信号(論理“1信号)を設定す
る。すると、レジスタ1の内容は「0111」とな
る。この後、レジスタ3の内容がALU6に供給
され、レジスタ4の内容が補数器5で2の補数つ
まり「1110」の変更された後、ALU6に供給さ
れる。これにより、ALU6は「0001」と
「1110」の加算を行い、その加算結果が「1111」
となり、オーバーフローではない。前回の演算に
より、D−FF回路11はリセツトされているか
ら、これとALU6からのオーバーフローでない
信号(論理“0”信号)とにより、EOR12の
出力は「0」となつている。また、このとき、セ
レクタ13はK信号が「1」であるため、B入力
がセレクトされ、D−FF回路15をリセツトせ
しめる。これにより、D−FF回路15のセツト
出力つまりK信号が論理“0”信号に変わる。こ
の後、ループカウンタ10の内容が「1」でない
ため、ALU6の出力をシフト回路7で左へ1ビ
ツトシフトし、LSBへレジスタ1の最上位ビツト
の「0」を設定する。そのシフト回路7の内容は
バストライバ8およびバス2を介してシフト3に
供給される。この結果、レジスト3には「1110」
が記憶される。このとき、ALU6から出力され
るデータの最上位ビツトが「1」のため、D−
FF回路11がセツト状態となる。また、ループ
カウンタ10をカウウントダウンする。
ところで、上記動作は引けなかつた場合であ
り、K信号が論理“0”信号であるから、レジス
タ1の内容を左へ1ビツトシフトし、LSBへK信
号を設定する。すると、レジスタ1の内容は
「1110」となる。この後、レジスタ3の内容は
ALU6にに供給され、レジスタ4の内容がALU
6に供給される。これにより、ALU6は
「1110」と「0010」の加算を行い、その加算結果
が「10000」となり、オーバーフローとなる。前
回の演算により、D−FF回路11ががセツトさ
れている。これにより、D−FF回路11のセツ
ト出力とALU6からのオーバーフロー信号(論
理“1”信号)とにより、EOR12で排他的論
理和が成立し、EOR12から論理“0”信号が
出力される。また、このとき、Kは前回の演算で
“0”となつているのでセレクタ13はA入力を
セレクトしインバータ14を介して供給される前
回のEOR12の出力をセレクトすることによ
り、D−FF回路15をセツトせしめる。これに
より、D−FF回路15のセツト出力つまりK信
号が論理“1”信号となる。この後、ループカウ
ンタ10の内容が「1」でないため、ALU6の
出力をシフト回路7で左へ1ビツトシフトし、
LSBへレジスタ1の最上位ビツトの「1」を設定
する。そのシフト回路7の内容はバスドライバ8
およびバス2を介してレジスタ3に供給される。
この結果、レジスタ3には「0001」が記憶され
る。このとき、ALU6から出力されるデータの
最上位ビツトが「0」のため、D−FF回路11
がリセツト状態となる。また、ループカウンタ1
0をカウントダウンする。
り、K信号が論理“0”信号であるから、レジス
タ1の内容を左へ1ビツトシフトし、LSBへK信
号を設定する。すると、レジスタ1の内容は
「1110」となる。この後、レジスタ3の内容は
ALU6にに供給され、レジスタ4の内容がALU
6に供給される。これにより、ALU6は
「1110」と「0010」の加算を行い、その加算結果
が「10000」となり、オーバーフローとなる。前
回の演算により、D−FF回路11ががセツトさ
れている。これにより、D−FF回路11のセツ
ト出力とALU6からのオーバーフロー信号(論
理“1”信号)とにより、EOR12で排他的論
理和が成立し、EOR12から論理“0”信号が
出力される。また、このとき、Kは前回の演算で
“0”となつているのでセレクタ13はA入力を
セレクトしインバータ14を介して供給される前
回のEOR12の出力をセレクトすることによ
り、D−FF回路15をセツトせしめる。これに
より、D−FF回路15のセツト出力つまりK信
号が論理“1”信号となる。この後、ループカウ
ンタ10の内容が「1」でないため、ALU6の
出力をシフト回路7で左へ1ビツトシフトし、
LSBへレジスタ1の最上位ビツトの「1」を設定
する。そのシフト回路7の内容はバスドライバ8
およびバス2を介してレジスタ3に供給される。
この結果、レジスタ3には「0001」が記憶され
る。このとき、ALU6から出力されるデータの
最上位ビツトが「0」のため、D−FF回路11
がリセツト状態となる。また、ループカウンタ1
0をカウントダウンする。
以後、上記同様に動作が行われ、ループカウン
タ10の内容が「0」となつた場合、K信号が
「1」の際、レジスタ1の内容を左へ1ビツトシ
フトし、LSBにK信号を設定する。この後、レジ
スタ3の内容をALU6、シフト回路7、および
バスドライバ8を介してレジスタ4へ供給する。
あるいはK信号が「0」の際、レジスタ1の内容
を左へ1ビツトシフトし、LSBにK信号を設定す
る。ついで、レジスタ3の内容およびレジスタ4
の内容がALU6に供給され、このALU6で加算
される。ALU6の加算結果はシフト回路7、バ
スドライバ8、およびバス2を介してレジスタ4
に供給される。
タ10の内容が「0」となつた場合、K信号が
「1」の際、レジスタ1の内容を左へ1ビツトシ
フトし、LSBにK信号を設定する。この後、レジ
スタ3の内容をALU6、シフト回路7、および
バスドライバ8を介してレジスタ4へ供給する。
あるいはK信号が「0」の際、レジスタ1の内容
を左へ1ビツトシフトし、LSBにK信号を設定す
る。ついで、レジスタ3の内容およびレジスタ4
の内容がALU6に供給され、このALU6で加算
される。ALU6の加算結果はシフト回路7、バ
スドライバ8、およびバス2を介してレジスタ4
に供給される。
この結果、レジスタ1に「0101」が記憶され、
レジスタ3に「0001」が記憶され、レジスタ4に
「0001」が記憶される。これにより、商はレジス
タ1に記憶されている(0101)2=510であり、余
りはレジスタ4に記憶されている(0001)2=110
である。
レジスタ3に「0001」が記憶され、レジスタ4に
「0001」が記憶される。これにより、商はレジス
タ1に記憶されている(0101)2=510であり、余
りはレジスタ4に記憶されている(0001)2=110
である。
このように、被除数かつ除数の減算を順次行
い、その減算が行えたか否かを判断回路で判断
し、この判断結果に応じて引けた場合次のステツ
プに進み、引けなかつた場合も判断回路の出力に
応じて減算を加算に変えるだけで次の商を求める
ようにし、簡単な回路構成の判断回路を用いるだ
けで、ノン−リストアリング方式の除算ができ
る。
い、その減算が行えたか否かを判断回路で判断
し、この判断結果に応じて引けた場合次のステツ
プに進み、引けなかつた場合も判断回路の出力に
応じて減算を加算に変えるだけで次の商を求める
ようにし、簡単な回路構成の判断回路を用いるだ
けで、ノン−リストアリング方式の除算ができ
る。
以上詳述したようにこの発明によれば、簡単な
回路構成で、処理ステツプ数の減少および実行時
間の改善が計れるノン−リストアリング方式の除
算を行うことができる除算回路を提供できる。
回路構成で、処理ステツプ数の減少および実行時
間の改善が計れるノン−リストアリング方式の除
算を行うことができる除算回路を提供できる。
図面はこの発明の一実施例を示すもので、第1
図は全体の概略構成図、第2図は動作を説明する
ためのフローチヤートである。 1……シフトレジスタ、2……バス、3……レ
ジスタ(第2のレジスタ)、4……レジスタ(第
1のレジスタ)、5……補数器、6……演算回路
(加算器)、7……シフト回路、9……判断回路、
11,15……D−FF回路、12……EOR、1
3……セレクタ、14……インバータ回路。
図は全体の概略構成図、第2図は動作を説明する
ためのフローチヤートである。 1……シフトレジスタ、2……バス、3……レ
ジスタ(第2のレジスタ)、4……レジスタ(第
1のレジスタ)、5……補数器、6……演算回路
(加算器)、7……シフト回路、9……判断回路、
11,15……D−FF回路、12……EOR、1
3……セレクタ、14……インバータ回路。
Claims (1)
- 1 除数が設定される第1のレジスタと、倍長デ
ータの被除数の下位データが設定されるシフトレ
ジスタと、上記被除数の上位データが設定される
第2のレジスタと、上記第2のレジスタの内容と
前記第1のレジスタの内容との加算あるいは減算
を行なうか、または上記第2のレジスタの内容を
そのまま通過させる演算回路と、上記演算回路の
出力を1ビツト左にシフトし、このシフト出力の
最下位ビツトに前記シフトレジスタの最上位ビツ
トデータを設定するシフト回路と、上記シフト回
路の出力で前記第2のレジスタを再設定する手段
と、前記演算回路における演算結果の最上位ビツ
トデータとオーバーフロー信号とに応じて前記第
2のレジスタの内容から前記第1のレジスタの内
容を減ずる減算が行なえた否かを判断する判断回
路と、上記判断回路の判断結果に従い前記第2の
レジスタの内容と前記第1のレジスタの内容とを
加算するか減算するかを決定しこの決定に基づい
て前記演算回路の動作を制御する制御手段と、前
記判断回路の判断結果に応じて前記シフトレジス
タの内容を1ビツト左にシフトし、このシフトさ
れたデータの最下位ビツトに前記判断回路の判断
結果に応じたデータを設定する手段とを具備し、
前記判断回路は、前記演算回路からの演算結果の
最上位ビツトデータを記憶する記憶回路と、上記
記憶回路の記憶内容と前記演算回路のオーバーフ
ロー信号とが供給される排他的論理和回路と、上
記排他的論理和回路の出力信号が第1の入力端子
に、その反転された信号が第2の入力端子にそれ
ぞれ供給され、セレクト端子の信号に応じて第
1、第2の入力端子に供給される信号を選択出力
するセレクタと、予めプリセツトされ上記セレク
タの出力に基づいて内容が設定され、その出力が
上記セレクタのセレクト端子にセレクト信号とし
て与えられるとともに前記判断結果を示す信号に
されるフリツプフロツプ回路とで構成するように
したことを特徴とする除算回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56105333A JPS588352A (ja) | 1981-07-06 | 1981-07-06 | 除算回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56105333A JPS588352A (ja) | 1981-07-06 | 1981-07-06 | 除算回路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS588352A JPS588352A (ja) | 1983-01-18 |
| JPS626258B2 true JPS626258B2 (ja) | 1987-02-09 |
Family
ID=14404791
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP56105333A Granted JPS588352A (ja) | 1981-07-06 | 1981-07-06 | 除算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS588352A (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07106637B2 (ja) * | 1983-08-02 | 1995-11-15 | キヤノン株式会社 | 記録装置 |
| JPH0639162B2 (ja) * | 1983-09-02 | 1994-05-25 | キヤノン株式会社 | インク液量異常警報出力方法 |
| JPS60246437A (ja) * | 1984-05-21 | 1985-12-06 | Matsushita Electric Ind Co Ltd | 除算回路 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6029977B2 (ja) * | 1979-01-10 | 1985-07-13 | 株式会社日立製作所 | 2進演算回路 |
-
1981
- 1981-07-06 JP JP56105333A patent/JPS588352A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS588352A (ja) | 1983-01-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA1231455A (en) | Nonrestoring divider | |
| JP2835153B2 (ja) | 高基数除算器 | |
| KR950006580B1 (ko) | 나눗셈연산장치 | |
| KR900010545A (ko) | 연산장치와 연산방법 | |
| US4594680A (en) | Apparatus for performing quadratic convergence division in a large data processing system | |
| JPH0479015B2 (ja) | ||
| JPS626258B2 (ja) | ||
| EP0379998A2 (en) | Divider for carrying out high speed arithmetic operation | |
| JPH02294731A (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
| EP0268123B1 (en) | Processor for the calculation of transcendental functions | |
| JPH10283164A (ja) | 除算回路 | |
| JP2578482B2 (ja) | 浮動小数点演算器 | |
| US5208769A (en) | Unsigned integer multiply/divide circuit | |
| JP4428778B2 (ja) | 演算装置及び演算方法並びに計算装置 | |
| JP3074958B2 (ja) | 加算機能付きシリアル乗算器 | |
| JP2752698B2 (ja) | 浮動小数点加減算回路 | |
| JPH0449138B2 (ja) | ||
| JP4073513B2 (ja) | 浮動小数点処理装置 | |
| JP2995721B2 (ja) | 除算装置および除算方法 | |
| JP3068640B2 (ja) | 計算装置 | |
| JPS59160235A (ja) | 除算装置 | |
| JPH07160480A (ja) | 10進除算器 | |
| JP3528334B2 (ja) | データセレクト回路 | |
| JPH08263271A (ja) | 引放し除算装置 | |
| JPH01274234A (ja) | 除算装置 |