JPH06259231A - 整数型除算器 - Google Patents
整数型除算器Info
- Publication number
- JPH06259231A JPH06259231A JP5048160A JP4816093A JPH06259231A JP H06259231 A JPH06259231 A JP H06259231A JP 5048160 A JP5048160 A JP 5048160A JP 4816093 A JP4816093 A JP 4816093A JP H06259231 A JPH06259231 A JP H06259231A
- Authority
- JP
- Japan
- Prior art keywords
- output
- dividend
- adder
- bits
- bit
- 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)【要約】 (修正有)
【目的】 同じサイクルタイムで繰り返しの演算回数を
少なくし、より高速に演算を行うことができる繰り返し
型の整数型除算器を提供する。 【構成】 被除数Rfが入力され、演算サイクルで得ら
れたキャリー出力に基づき被除数を上位ビットから所定
ビットと同じタイミングでシフトして出力するシフト手
段3と、これによりシフトされた被除数の下位ビット
に、そのビット数に応じ被除数を上位ビットから順次挿
入し減算データを生成する挿入手段と、所定ビット数に
応じ並列に配置され、減算データから除数を各ビット毎
に減算する複数の減算手段と、キャリー出力に応じ、減
算手段の演算出力と減算データのいずれかを選択し出力
する選択手段と、この出力を保持しかつ次の被除数とし
てこの出力をシフト手段に送る第1の保持手段と、減算
手段からの出力を保持しかつシフト手段に送る第2の保
持手段と、減算手段の演算出力から必要な演算サイクル
の完了を検出する検出手段とを具備する。
少なくし、より高速に演算を行うことができる繰り返し
型の整数型除算器を提供する。 【構成】 被除数Rfが入力され、演算サイクルで得ら
れたキャリー出力に基づき被除数を上位ビットから所定
ビットと同じタイミングでシフトして出力するシフト手
段3と、これによりシフトされた被除数の下位ビット
に、そのビット数に応じ被除数を上位ビットから順次挿
入し減算データを生成する挿入手段と、所定ビット数に
応じ並列に配置され、減算データから除数を各ビット毎
に減算する複数の減算手段と、キャリー出力に応じ、減
算手段の演算出力と減算データのいずれかを選択し出力
する選択手段と、この出力を保持しかつ次の被除数とし
てこの出力をシフト手段に送る第1の保持手段と、減算
手段からの出力を保持しかつシフト手段に送る第2の保
持手段と、減算手段の演算出力から必要な演算サイクル
の完了を検出する検出手段とを具備する。
Description
【0001】
【産業上の利用分野】本発明は、高速の演算が可能な繰
り返し型の整数型除算器に関する。
り返し型の整数型除算器に関する。
【0002】
【従来の技術】図4は従来の繰り返し型の整数型除算器
の基本構成を示すブロック図である。被除数Rjまたは
部分剰余が第1の加算器50aの一方の入力端と第1の
セレクタ51aとに供給されている。除数Dの2の補数
が第1及び第2の加算器50a及び50bの各他方の入
力端に接続されている。第1の加算器50aの加算出力
及びキャリー出力は各々信号線55a及びキャリー信号
線57aを介して第1のセレクタ51aに接続されてい
る。第1のセレクタ51aの出力端は第2の加算器50
bの一方の入力端に接続されている。第2の加算器50
bの加算出力及びキャリー出力は各々信号線55b及び
キャリー信号線57bを介して第2のセレクタ51bに
接続されている。第2のセレクタ51bからそのサイク
ルの加算結果Rj+1が出力される。
の基本構成を示すブロック図である。被除数Rjまたは
部分剰余が第1の加算器50aの一方の入力端と第1の
セレクタ51aとに供給されている。除数Dの2の補数
が第1及び第2の加算器50a及び50bの各他方の入
力端に接続されている。第1の加算器50aの加算出力
及びキャリー出力は各々信号線55a及びキャリー信号
線57aを介して第1のセレクタ51aに接続されてい
る。第1のセレクタ51aの出力端は第2の加算器50
bの一方の入力端に接続されている。第2の加算器50
bの加算出力及びキャリー出力は各々信号線55b及び
キャリー信号線57bを介して第2のセレクタ51bに
接続されている。第2のセレクタ51bからそのサイク
ルの加算結果Rj+1が出力される。
【0003】図5は従来の繰り返し型の整数型除算器の
具体的構成を示すブロック図である。図5は説明の簡単
のために繰り返し型の整数型除算器の制御回路を除いた
データパス部のみの構成を示している。以下に、図5の
整数型除算器の動作について説明する。最初のサイクル
では被除数Rjの最上位ビットが信号線66aに供給さ
れ、以後のサイクルでは被除数を最上位ビットからサイ
クル毎に2ビットずつシフトアウトした値が信号線66
aに供給される。信号線66bには、除数の2の補数が
供給される。最初のサイクルでは、第1のセレクタ71
aが信号線66aの被除数Rjのうち最上位の1ビット
を選択し信号線64aに出力する。第1の加算器70a
はこの信号線64aの最上位の1ビットと信号線66b
の除数の2の補数とを加算する。第1の加算器70aに
おいて被除数または部分剰余から除数Dが引けない時に
は、キャリー出力が信号線77aに出力されない。この
場合、第2のセレクタ71bは信号線66bから供給さ
れる被除数または部分剰余の上位の2ビットを第2の加
算器70bの入力信号線76aに出力する。一方、キャ
リー出力が信号線77aに出力されると、出力信号線7
5aに加算結果が出力される。この場合には、第2のセ
レクタ71bはこの加算結果を1ビットシフトし、この
加算結果の最下位ビットに信号線66bの被除数Rjま
たは部分剰余の次の上位の1ビットを挿入し、信号線7
6aより第2の加算器70bに出力する。この後、第2
のセレクタ71bからの信号線76aの出力と信号線6
6bの除数の2の補数とが第2の加算器70bで加算さ
れる。第2の加算器70bにおいて、キャリー出力が信
号線77bに出力されない場合には、信号線76a上の
出力が第3のセレクタ71cで選択され信号線76cに
出力される。ラッチ72がこの加算結果をラッチする。
一方、キャリー出力が信号線77bに出力されると、第
3のセレクタ71cが第2の加算器70bの出力信号線
75bの加算結果を選択し、信号線76cに出力する。
第2のサイクルでは、第1のセレクタ71aはラッチ7
2の出力信号線78からの第1のサイクルの加算結果を
1ビットシフトし、その最下位ビットに信号線66aの
被除数または部分剰余の更に次の上位1ビットつまり最
上位ビットから3ビット下位のビットの信号を挿入し
て、信号線64aに出力する。以後、除算が終了するま
で前のサイクルと同じ動作が繰り返される。図5の従来
の繰り返し型の整数型除算器により8ビットの演算を行
なった場合の演算例を以下に示す。 被除数=10010011 除数=10010010 除数の2の補数=01101110 商=Q ADD0 ADD1 Q キャリー 1 第1サイクル 01101110 0 なし 10 01101110 0 なし 100 第2サイクル 01101110 0 なし 1001 01101110 0 なし 10010 第3サイクル 01101110 0 なし 100100 01101110 0 なし 1001001 第4サイクル 01101110 0 なし 10010011 01101110 1 あり
具体的構成を示すブロック図である。図5は説明の簡単
のために繰り返し型の整数型除算器の制御回路を除いた
データパス部のみの構成を示している。以下に、図5の
整数型除算器の動作について説明する。最初のサイクル
では被除数Rjの最上位ビットが信号線66aに供給さ
れ、以後のサイクルでは被除数を最上位ビットからサイ
クル毎に2ビットずつシフトアウトした値が信号線66
aに供給される。信号線66bには、除数の2の補数が
供給される。最初のサイクルでは、第1のセレクタ71
aが信号線66aの被除数Rjのうち最上位の1ビット
を選択し信号線64aに出力する。第1の加算器70a
はこの信号線64aの最上位の1ビットと信号線66b
の除数の2の補数とを加算する。第1の加算器70aに
おいて被除数または部分剰余から除数Dが引けない時に
は、キャリー出力が信号線77aに出力されない。この
場合、第2のセレクタ71bは信号線66bから供給さ
れる被除数または部分剰余の上位の2ビットを第2の加
算器70bの入力信号線76aに出力する。一方、キャ
リー出力が信号線77aに出力されると、出力信号線7
5aに加算結果が出力される。この場合には、第2のセ
レクタ71bはこの加算結果を1ビットシフトし、この
加算結果の最下位ビットに信号線66bの被除数Rjま
たは部分剰余の次の上位の1ビットを挿入し、信号線7
6aより第2の加算器70bに出力する。この後、第2
のセレクタ71bからの信号線76aの出力と信号線6
6bの除数の2の補数とが第2の加算器70bで加算さ
れる。第2の加算器70bにおいて、キャリー出力が信
号線77bに出力されない場合には、信号線76a上の
出力が第3のセレクタ71cで選択され信号線76cに
出力される。ラッチ72がこの加算結果をラッチする。
一方、キャリー出力が信号線77bに出力されると、第
3のセレクタ71cが第2の加算器70bの出力信号線
75bの加算結果を選択し、信号線76cに出力する。
第2のサイクルでは、第1のセレクタ71aはラッチ7
2の出力信号線78からの第1のサイクルの加算結果を
1ビットシフトし、その最下位ビットに信号線66aの
被除数または部分剰余の更に次の上位1ビットつまり最
上位ビットから3ビット下位のビットの信号を挿入し
て、信号線64aに出力する。以後、除算が終了するま
で前のサイクルと同じ動作が繰り返される。図5の従来
の繰り返し型の整数型除算器により8ビットの演算を行
なった場合の演算例を以下に示す。 被除数=10010011 除数=10010010 除数の2の補数=01101110 商=Q ADD0 ADD1 Q キャリー 1 第1サイクル 01101110 0 なし 10 01101110 0 なし 100 第2サイクル 01101110 0 なし 1001 01101110 0 なし 10010 第3サイクル 01101110 0 なし 100100 01101110 0 なし 1001001 第4サイクル 01101110 0 なし 10010011 01101110 1 あり
【0004】演算の結果、第4サイクルの第2の加算器
70bではじめてキャリーがあり商Q=1が得られる。
商Qは00000001となり、余りは1となる。この
従来の整数型除算器により演算を行なうと、演算終了ま
で4サイクル必要である。
70bではじめてキャリーがあり商Q=1が得られる。
商Qは00000001となり、余りは1となる。この
従来の整数型除算器により演算を行なうと、演算終了ま
で4サイクル必要である。
【0005】
【発明が解決しようとする課題】従来の繰り返し型の整
数型除算器により多ビットの演算を行なう場合には、同
じサイクルタイム(同じ長さのクリテイカルパス)を用
いると多くのサイクル数つまり多くの演算の繰り返し回
数を必要とし、このため高速の演算を行なうことができ
ないという問題があった。
数型除算器により多ビットの演算を行なう場合には、同
じサイクルタイム(同じ長さのクリテイカルパス)を用
いると多くのサイクル数つまり多くの演算の繰り返し回
数を必要とし、このため高速の演算を行なうことができ
ないという問題があった。
【0006】本発明は、上記問題を解決するために成さ
れたものであり、同じサイクルタイムで繰り返しの演算
回数を少なくし、より高速に演算を行うことができる繰
り返し型の整数型除算器を提供することを目的とする。
れたものであり、同じサイクルタイムで繰り返しの演算
回数を少なくし、より高速に演算を行うことができる繰
り返し型の整数型除算器を提供することを目的とする。
【0007】
【課題を解決するための手段】本発明は、上記課題を解
決するために、被除数が入力され、先の演算サイクルで
得られたキャリー出力に基づいて前記被除数を上位ビッ
トから所定ビット同じタイミングでシフトして出力する
シフト手段と、このシフト手段によってシフトされた被
除数の下位ビットに、シフトするビット数に応じて被除
数を上位ビットから順次挿入し減算データを生成する挿
入手段と、シフトされる前記所定ビットの数に応じて並
列に配置され、前記減算データから除数を各ビット毎に
減算する複数の減算手段と、この複数の減算手段から出
力されるキャリー出力に応じて、減算手段の演算出力と
前記挿入手段が生成した減算データとのいずれかを選択
し出力する選択手段と、この選択手段の選択した出力を
保持しかつ次の演算サイクルの被除数としてこの出力を
前記シフト手段に送る第1の保持手段と、前記複数の減
算手段から出力されるキャリー出力を保持しかつ前記シ
フト手段に送る第2の保持手段と、前記複数の減算手段
の演算出力から必要な演算サイクルが完了したことを検
出する検出手段とを具備している。
決するために、被除数が入力され、先の演算サイクルで
得られたキャリー出力に基づいて前記被除数を上位ビッ
トから所定ビット同じタイミングでシフトして出力する
シフト手段と、このシフト手段によってシフトされた被
除数の下位ビットに、シフトするビット数に応じて被除
数を上位ビットから順次挿入し減算データを生成する挿
入手段と、シフトされる前記所定ビットの数に応じて並
列に配置され、前記減算データから除数を各ビット毎に
減算する複数の減算手段と、この複数の減算手段から出
力されるキャリー出力に応じて、減算手段の演算出力と
前記挿入手段が生成した減算データとのいずれかを選択
し出力する選択手段と、この選択手段の選択した出力を
保持しかつ次の演算サイクルの被除数としてこの出力を
前記シフト手段に送る第1の保持手段と、前記複数の減
算手段から出力されるキャリー出力を保持しかつ前記シ
フト手段に送る第2の保持手段と、前記複数の減算手段
の演算出力から必要な演算サイクルが完了したことを検
出する検出手段とを具備している。
【0008】
【作用】被除数Rjから除数Dを引くときに同じタイミ
ングで被除数Rjを1ビットシフトした値Rj′からも
除数Dを引いておく。また、被除数Rjを2ビットシフ
トした値Rj″を用意しておく。Rj―Dの演算で除数
Dが引けない場合であってRj′―Dの演算ができた場
合にはこの演算結果が次の被除数Rjとして用いられ
る。Rj′―Dの演算もできなかった場合には値Rj″
が次の演算に用いられる。従って、Rj―Dの演算が可
能な場合には商Qが1サイクルで2ビット得られ、一
方、Rj―Dの演算が不可能な場合には商Qが1サイク
ルで3ビット得られる。このように、本発明では、同じ
演算サイクルで被除数の複数ビットが同時に演算され
る。
ングで被除数Rjを1ビットシフトした値Rj′からも
除数Dを引いておく。また、被除数Rjを2ビットシフ
トした値Rj″を用意しておく。Rj―Dの演算で除数
Dが引けない場合であってRj′―Dの演算ができた場
合にはこの演算結果が次の被除数Rjとして用いられ
る。Rj′―Dの演算もできなかった場合には値Rj″
が次の演算に用いられる。従って、Rj―Dの演算が可
能な場合には商Qが1サイクルで2ビット得られ、一
方、Rj―Dの演算が不可能な場合には商Qが1サイク
ルで3ビット得られる。このように、本発明では、同じ
演算サイクルで被除数の複数ビットが同時に演算され
る。
【0009】
【実施例】以下、本発明の実施例について図面を参照し
て詳細に説明する。 図1は本発明の繰り返し型の整数
型除算器の基本構成を示すブロック図である。シフト手
段3は入力端が被除数Rjに接続され、シフトしない被
除数Rj、被除数Rjを1ビットシフトした値Rj′及
び被除数Rjを2ビットシフトした値Rj″の各出力端
が各々第1の加算器(ADD0)10aの一端、第2の
加算器(ADD1)10bの一端及び第1のセレクタ1
1aに接続されている。シフト手段3は実際には同じタ
イミングで被除数RjからこれをNビットシフトした値
まで出力できる。第1の加算器10aと第2の加算器1
0bとは並列配置され、加算出力及びキャリー出力は各
々出力線5a、5b及び出力線6a、6bにより第1の
セレクタ11aに接続されている。加算器は実際にはN
個並列配置できる。第1のセレクタ11aの出力端は第
3の加算器(ADD2)10cの一方の入力端及び第2
のセレクタ11bに接続されている。第3の加算器10
cの加算出力及びキャリー出力は第2のセレクタ11b
に接続されている。除数Dの2の補数は第1、第2及び
第3の加算器10a、10b及び10cの各他方の入力
端に接続されている。部分剰余Rj+1が第2のセレク
タ11bからラッチ8へ出力される。このラッチ8は部
分剰余Rj+1及びキャリー出力をラッチした後シフト
手段3へ戻す。シフト手段3は部分剰余Rj+1、部分
剰余Rj+1を1ビットシフトした値Rj+1′及び部
分剰余Rj+1を2ビットシフトした値Rj+1″を出
力し、以下同じ演算が行なわれる。尚、説明の簡単のた
めに、図1には各部に供給されるタイミング信号が図示
されていない。
て詳細に説明する。 図1は本発明の繰り返し型の整数
型除算器の基本構成を示すブロック図である。シフト手
段3は入力端が被除数Rjに接続され、シフトしない被
除数Rj、被除数Rjを1ビットシフトした値Rj′及
び被除数Rjを2ビットシフトした値Rj″の各出力端
が各々第1の加算器(ADD0)10aの一端、第2の
加算器(ADD1)10bの一端及び第1のセレクタ1
1aに接続されている。シフト手段3は実際には同じタ
イミングで被除数RjからこれをNビットシフトした値
まで出力できる。第1の加算器10aと第2の加算器1
0bとは並列配置され、加算出力及びキャリー出力は各
々出力線5a、5b及び出力線6a、6bにより第1の
セレクタ11aに接続されている。加算器は実際にはN
個並列配置できる。第1のセレクタ11aの出力端は第
3の加算器(ADD2)10cの一方の入力端及び第2
のセレクタ11bに接続されている。第3の加算器10
cの加算出力及びキャリー出力は第2のセレクタ11b
に接続されている。除数Dの2の補数は第1、第2及び
第3の加算器10a、10b及び10cの各他方の入力
端に接続されている。部分剰余Rj+1が第2のセレク
タ11bからラッチ8へ出力される。このラッチ8は部
分剰余Rj+1及びキャリー出力をラッチした後シフト
手段3へ戻す。シフト手段3は部分剰余Rj+1、部分
剰余Rj+1を1ビットシフトした値Rj+1′及び部
分剰余Rj+1を2ビットシフトした値Rj+1″を出
力し、以下同じ演算が行なわれる。尚、説明の簡単のた
めに、図1には各部に供給されるタイミング信号が図示
されていない。
【0010】図2は本発明の繰り返し型の整数型除算器
の実施例の構成を示すブロック図である。この実施例で
は、N個の加算器20ー1・・・20ーNが並列に一段
に配置されている。第1のセレクタ21a、第1のラッ
チ22a,N+1ビットのバレルシフタ23a及び第2
のシフタ23bは図1のシフト手段3に対応する。第2
のシフタ23bの各出力がN個の加算器の一方の入力端
に接続され、除数Dの2の補数がN個の加算器の他方の
入力端に接続されている。21bは第2のセレクタであ
り、22bは被除数をラッチする第2のラッチであり、
22cはキャリーをラッチする第3のラッチである。N
個の加算器の演算出力は第2のセレクタ21bに接続さ
れ、キャリー出力は第2のセレクタ21b及び第3のラ
ッチ22cに接続されている。バレルシフタ23aはけ
た移動を一度に複数ビット行い、そのシフト量はをラッ
チ22cからのキャリー出力により制御される。被除数
Rjが第1のセレクタ21aに供給され、除数Dの2の
補数が各加算器20ー1・・・20ーNの一方の入力端
に供給されている。
の実施例の構成を示すブロック図である。この実施例で
は、N個の加算器20ー1・・・20ーNが並列に一段
に配置されている。第1のセレクタ21a、第1のラッ
チ22a,N+1ビットのバレルシフタ23a及び第2
のシフタ23bは図1のシフト手段3に対応する。第2
のシフタ23bの各出力がN個の加算器の一方の入力端
に接続され、除数Dの2の補数がN個の加算器の他方の
入力端に接続されている。21bは第2のセレクタであ
り、22bは被除数をラッチする第2のラッチであり、
22cはキャリーをラッチする第3のラッチである。N
個の加算器の演算出力は第2のセレクタ21bに接続さ
れ、キャリー出力は第2のセレクタ21b及び第3のラ
ッチ22cに接続されている。バレルシフタ23aはけ
た移動を一度に複数ビット行い、そのシフト量はをラッ
チ22cからのキャリー出力により制御される。被除数
Rjが第1のセレクタ21aに供給され、除数Dの2の
補数が各加算器20ー1・・・20ーNの一方の入力端
に供給されている。
【0011】次に、図2の繰り返し型の整数型除算器の
演算動作について概略の説明をする。最初のサイクルで
は、第1のセレクタ21aが被除数Rjの信号を上位ビ
ットから選択して第1のラッチ22aに送る。第1のラ
ッチ22aはこれをラッチした後バレルシフタ23aに
送る。バレルシフタ23aは第1のラッチ22aから被
除数Rjの信号を受けとり、第3のラッチ22cからの
キャリー出力に応じてこれをシフトするが、最初のサイ
クルでは第3のラッチ22cからのキャリー出力がない
ので被除数Rjを何もシフトせずそのまま出力する。こ
こで、バレルシフタ23aから信号線19aに出力され
る信号は常に被除数(または部分剰余)の信号の上位の
N+1ビットの値である。バレルシフタ23aの出力は
信号線19aによりシフタ23aに送られ、同時に信号
線19bにより第1のセレクタ21aに戻され第1のラ
ッチ22aにラッチされる。最初のサイクルでは、第2
のシフタ23bから第1の加算器20ー1には最上位ビ
ットの信号が出力され、第2の加算器20ー2には最上
位ビットの信号と1ビット下位の信号とが出力され、第
3の加算器20ー3には最上位ビットの信号から2ビッ
ト下位の信号までが出力され、以下同様に、第N番目の
加算器には最上位ビットの信号からNビット下位の信号
までが出力される。この第2のシフタ23bは信号線2
4−N+1を介して第2のセレクタ21bにも被除数
(または部分剰余)を出力する。各加算器は第2のシフ
タ23bからの信号と信号線16bからの除数の2の補
数の信号とを加算する。各加算器の加算結果の信号は第
2のセレクタ21bに出力される。加算の結果、各加算
器にキャリー出力があれば、各加算器は各々の信号線2
7ー1・・・27ーNにより第2のセレクタ21b及び
第3のラッチ22cに出力する。第3のラッチ22cは
キャリー出力をラッチしかつバレルシフタ23aに送
る。第2のセレクタ21bは各加算器のキャリー出力信
号に応じて、各加算器の各加算結果の信号及びシフタ2
3bから信号線24−N+1を介して送られる被除数
(または部分剰余)の最上位ビットからNビット下位ま
での信号について選択を行なう。つまり、第2のセレク
タ21bにおいては、第1の加算器20ー1からキャリ
ーが出力されている場合には第1の加算器20ー1の加
算結果の信号が選択される。第1の加算器20ー1から
キャリーが出力されておらず第2の加算器20ー2から
キャリーが出力されている場合には第2の加算器20ー
2の加算結果の信号が選択される。第1の加算器20ー
1及び20ー2からキャリーが出力されておらず第3の
加算器20ー3からキャリーが出力されている場合には
第3の加算器20ー3の加算結果の信号が選択される。
第1、第2及び第3の加算器20ー1,20ー2及び2
0ー3からキャリーが出力されておらず第4の加算器2
0ー4からキャリーが出力されている場合には第4の加
算器20ー4の加算結果の信号が選択される。以下、キ
ャリー出力に応じて同様の選択が第2のセレクタ21b
において行なわれる。どの加算器からもキャリーが出力
されなかった場合には、第2のセレクタ21bはシフタ
23bからの被除数(または部分剰余)の最上位ビット
からNビット下位までの信号を選択する。第2のセレク
タ21bは選択した信号を第2のラッチ22aに送り、
第2のラッチ22aはこれをラッチしかつシフタ23b
に送る。
演算動作について概略の説明をする。最初のサイクルで
は、第1のセレクタ21aが被除数Rjの信号を上位ビ
ットから選択して第1のラッチ22aに送る。第1のラ
ッチ22aはこれをラッチした後バレルシフタ23aに
送る。バレルシフタ23aは第1のラッチ22aから被
除数Rjの信号を受けとり、第3のラッチ22cからの
キャリー出力に応じてこれをシフトするが、最初のサイ
クルでは第3のラッチ22cからのキャリー出力がない
ので被除数Rjを何もシフトせずそのまま出力する。こ
こで、バレルシフタ23aから信号線19aに出力され
る信号は常に被除数(または部分剰余)の信号の上位の
N+1ビットの値である。バレルシフタ23aの出力は
信号線19aによりシフタ23aに送られ、同時に信号
線19bにより第1のセレクタ21aに戻され第1のラ
ッチ22aにラッチされる。最初のサイクルでは、第2
のシフタ23bから第1の加算器20ー1には最上位ビ
ットの信号が出力され、第2の加算器20ー2には最上
位ビットの信号と1ビット下位の信号とが出力され、第
3の加算器20ー3には最上位ビットの信号から2ビッ
ト下位の信号までが出力され、以下同様に、第N番目の
加算器には最上位ビットの信号からNビット下位の信号
までが出力される。この第2のシフタ23bは信号線2
4−N+1を介して第2のセレクタ21bにも被除数
(または部分剰余)を出力する。各加算器は第2のシフ
タ23bからの信号と信号線16bからの除数の2の補
数の信号とを加算する。各加算器の加算結果の信号は第
2のセレクタ21bに出力される。加算の結果、各加算
器にキャリー出力があれば、各加算器は各々の信号線2
7ー1・・・27ーNにより第2のセレクタ21b及び
第3のラッチ22cに出力する。第3のラッチ22cは
キャリー出力をラッチしかつバレルシフタ23aに送
る。第2のセレクタ21bは各加算器のキャリー出力信
号に応じて、各加算器の各加算結果の信号及びシフタ2
3bから信号線24−N+1を介して送られる被除数
(または部分剰余)の最上位ビットからNビット下位ま
での信号について選択を行なう。つまり、第2のセレク
タ21bにおいては、第1の加算器20ー1からキャリ
ーが出力されている場合には第1の加算器20ー1の加
算結果の信号が選択される。第1の加算器20ー1から
キャリーが出力されておらず第2の加算器20ー2から
キャリーが出力されている場合には第2の加算器20ー
2の加算結果の信号が選択される。第1の加算器20ー
1及び20ー2からキャリーが出力されておらず第3の
加算器20ー3からキャリーが出力されている場合には
第3の加算器20ー3の加算結果の信号が選択される。
第1、第2及び第3の加算器20ー1,20ー2及び2
0ー3からキャリーが出力されておらず第4の加算器2
0ー4からキャリーが出力されている場合には第4の加
算器20ー4の加算結果の信号が選択される。以下、キ
ャリー出力に応じて同様の選択が第2のセレクタ21b
において行なわれる。どの加算器からもキャリーが出力
されなかった場合には、第2のセレクタ21bはシフタ
23bからの被除数(または部分剰余)の最上位ビット
からNビット下位までの信号を選択する。第2のセレク
タ21bは選択した信号を第2のラッチ22aに送り、
第2のラッチ22aはこれをラッチしかつシフタ23b
に送る。
【0012】次のサイクルでは、バレルシフタ23aは
第3のラッチ22cから受け取ったキャリー信号に基づ
いて被除数のシフト量を決定する。例えば、第1及び第
2の加算器20ー1及び20ー2からキャリーが出力さ
れておらず、第3の加算器20ー3からキャリーが出力
されている場合には、バレルシフタ23aは第1のラッ
チ22aから供給される被除数を3ビットシフトする。
この結果、被除数の最上位ビットから4ビット下位から
N+4ビット下位までの値がバレルシフタ23aからシ
フタ23bに出力される。前のサイクルでどの加算器か
らもキャリーが出力されていない場合には、第1のラッ
チ22aから供給される被除数はバレルシフタ23aで
N+1ビットシフトされる。このシフト後の値つまり部
分剰余がバレルシフタ23aからシフタ23bに送られ
る。バレルシフタ23aから出力されたシフト後の部分
剰余は次のサイクルの演算のために第1のセレクタ21
aを介して第1のラッチ22aにラッチされる。第1の
加算器20ー1には第2のラッチ22bからの部分剰余
を1ビットシフトしシフタ23bの出力の最上位ビット
が挿入された値が入力される。第2の加算器20ー2に
は第2のラッチ22bからの部分剰余を2ビットシフト
しシフタ23bの出力の最上位ビットと1ビット下位の
ビットの信号が挿入された値が入力される。以下同様に
して第nの加算器20ーnには第2のラッチ22bから
の部分剰余をNビットシフトしシフタ23bの出力の最
上位ビットからNビット下位までのビットの信号が挿入
された値が入力される。この後のサイクルでは同じ動作
が繰り返される。
第3のラッチ22cから受け取ったキャリー信号に基づ
いて被除数のシフト量を決定する。例えば、第1及び第
2の加算器20ー1及び20ー2からキャリーが出力さ
れておらず、第3の加算器20ー3からキャリーが出力
されている場合には、バレルシフタ23aは第1のラッ
チ22aから供給される被除数を3ビットシフトする。
この結果、被除数の最上位ビットから4ビット下位から
N+4ビット下位までの値がバレルシフタ23aからシ
フタ23bに出力される。前のサイクルでどの加算器か
らもキャリーが出力されていない場合には、第1のラッ
チ22aから供給される被除数はバレルシフタ23aで
N+1ビットシフトされる。このシフト後の値つまり部
分剰余がバレルシフタ23aからシフタ23bに送られ
る。バレルシフタ23aから出力されたシフト後の部分
剰余は次のサイクルの演算のために第1のセレクタ21
aを介して第1のラッチ22aにラッチされる。第1の
加算器20ー1には第2のラッチ22bからの部分剰余
を1ビットシフトしシフタ23bの出力の最上位ビット
が挿入された値が入力される。第2の加算器20ー2に
は第2のラッチ22bからの部分剰余を2ビットシフト
しシフタ23bの出力の最上位ビットと1ビット下位の
ビットの信号が挿入された値が入力される。以下同様に
して第nの加算器20ーnには第2のラッチ22bから
の部分剰余をNビットシフトしシフタ23bの出力の最
上位ビットからNビット下位までのビットの信号が挿入
された値が入力される。この後のサイクルでは同じ動作
が繰り返される。
【0013】図3は本発明の繰り返し型の整数型除算器
の具体的構成を示すブロック図である。図3及び以下に
示す演算例を参照して本発明の繰り返し型の整数型除算
器の演算動作について具体的に説明する。この例では、
加算器は2段に構成されている。被除数(演算例では
「10010011」)が入力線36aに与えられ、除数の2の
補数(演算例では「01101110」)が入力線36bに与え
られる。第一回目のサイクルでは、被除数Rjが第1の
セレクタ41aで選択され、第1のラッチ42aにラッ
チされる。バレルシフタ43bは第一回目のサイクルで
は何も行なわず第1のラッチ42aから入力された被除
数をそのまま出力する。バレルシフタ43bの出力は信
号線39bを介して第1のセレクタ41aに送られる。
バレルシフタ43bの出力の最上位ビットの信号(演算
例では「1 」)が第1の加算器40aに送られ、第1の
加算器40aがこの信号と除数の2の補数とを加算す
る。バレルシフタ43bの出力の最上位ビットと1ビッ
ト下位のビットの信号(演算例では「10」)が第2の加
算器40bに送られ、第2の加算器40bがこの信号と
除数の2の補数とを加算する。バレルシフタ43bの出
力の上位3ビットの信号(演算例では「100 」)が信号
線44cを介してバレルシフタ43bから直接に第2の
セレクタ41bに送られる。第1の加算器40a及び第
2の加算器40bのキャリー出力は第2のセレクタ41
b及びキャリー用の第3のラッチ42cに送られる。第
1の加算器40aの加算の結果、信号線47aにキャリ
ー出力があった場合には、第2のセレクタ41bは第1
の加算器40aの加算結果を選択する。第1の加算器4
0aにキャリー出力がなくかつ第2の加算器40bにキ
ャリー出力があった場合には、第2のセレクタ41bは
第2の加算器40bの加算結果を選択する。第1及び第
2の加算器40a及び40b共にキャリー出力がない場
合には信号線44cの信号が第2のセレクタ41bによ
り選択される。(演算例では、第1及び第2の加算器4
0a及び40bにキャリー出力は出力されていないの
で、バレルシフタ43bから被除数の上位3ビットの信
号「100 」が第3の加算器40cに出力される。)選択
された信号は第2のセレクタ41bから第3の加算器4
0c及び第3のセレクタ41cに出力される。第3の加
算器40cは第2のセレクタ41bからの信号(演算例
では「100 」)と除数の2の補数とを加算する。第3の
加算器40cのキャリー出力は第3のセレクタ41c及
び第3のラッチ42cに送られる。第3のセレクタ41
cは第3の加算器40cからキャリーが出力された場合
には第3の加算器40cの加算結果を選択し、キャリー
が出力されなかった場合には第2のセレクタ41bから
の信号を選択して、第2のラッチ42bに出力する。
(演算例では、このキャリーは出力されていない。)第
2及び第3のラッチ42b及び42cの出力は共にバレ
ルシフタ43bに送られる。
の具体的構成を示すブロック図である。図3及び以下に
示す演算例を参照して本発明の繰り返し型の整数型除算
器の演算動作について具体的に説明する。この例では、
加算器は2段に構成されている。被除数(演算例では
「10010011」)が入力線36aに与えられ、除数の2の
補数(演算例では「01101110」)が入力線36bに与え
られる。第一回目のサイクルでは、被除数Rjが第1の
セレクタ41aで選択され、第1のラッチ42aにラッ
チされる。バレルシフタ43bは第一回目のサイクルで
は何も行なわず第1のラッチ42aから入力された被除
数をそのまま出力する。バレルシフタ43bの出力は信
号線39bを介して第1のセレクタ41aに送られる。
バレルシフタ43bの出力の最上位ビットの信号(演算
例では「1 」)が第1の加算器40aに送られ、第1の
加算器40aがこの信号と除数の2の補数とを加算す
る。バレルシフタ43bの出力の最上位ビットと1ビッ
ト下位のビットの信号(演算例では「10」)が第2の加
算器40bに送られ、第2の加算器40bがこの信号と
除数の2の補数とを加算する。バレルシフタ43bの出
力の上位3ビットの信号(演算例では「100 」)が信号
線44cを介してバレルシフタ43bから直接に第2の
セレクタ41bに送られる。第1の加算器40a及び第
2の加算器40bのキャリー出力は第2のセレクタ41
b及びキャリー用の第3のラッチ42cに送られる。第
1の加算器40aの加算の結果、信号線47aにキャリ
ー出力があった場合には、第2のセレクタ41bは第1
の加算器40aの加算結果を選択する。第1の加算器4
0aにキャリー出力がなくかつ第2の加算器40bにキ
ャリー出力があった場合には、第2のセレクタ41bは
第2の加算器40bの加算結果を選択する。第1及び第
2の加算器40a及び40b共にキャリー出力がない場
合には信号線44cの信号が第2のセレクタ41bによ
り選択される。(演算例では、第1及び第2の加算器4
0a及び40bにキャリー出力は出力されていないの
で、バレルシフタ43bから被除数の上位3ビットの信
号「100 」が第3の加算器40cに出力される。)選択
された信号は第2のセレクタ41bから第3の加算器4
0c及び第3のセレクタ41cに出力される。第3の加
算器40cは第2のセレクタ41bからの信号(演算例
では「100 」)と除数の2の補数とを加算する。第3の
加算器40cのキャリー出力は第3のセレクタ41c及
び第3のラッチ42cに送られる。第3のセレクタ41
cは第3の加算器40cからキャリーが出力された場合
には第3の加算器40cの加算結果を選択し、キャリー
が出力されなかった場合には第2のセレクタ41bから
の信号を選択して、第2のラッチ42bに出力する。
(演算例では、このキャリーは出力されていない。)第
2及び第3のラッチ42b及び42cの出力は共にバレ
ルシフタ43bに送られる。
【0014】第二回目のサイクルでは、第1のセレクタ
41aは第一回目のサイクルにおけるバレルシフタ43
bの出力信号を選択し、第1のラッチ42aがこれをラ
ッチしかつバレルシフタ43bに出力する。バレルシフ
タ43bは第3のラッチ42cの出力信号に応じてその
出力のシフト量を変える。つまり、バレルシフタ43b
は、第1の加算器40aにキャリー出力があった場合に
はその出力を1ビット左へシフトし、第1の加算器40
aにキャリー出力がなく第2の加算器40bにキャリー
出力があった場合にはその出力を2ビット左へシフト
し、第1及び第2の加算器40a及び40b共にキャリ
ー出力がない場合にはその出力を3ビット左へシフトす
る。バレルシフタ43bは、第1の加算器40aには、
第2のラッチ42bの出力信号(演算例では「100 」)
を1ビット左にシフトしその最下位ビットに第1のラッ
チ42aからの信号の最上位ビットの信号(演算例では
「1」)を挿入した値(演算例では「1001」)を出
力する。バレルシフタ43bは、第2の加算器40bに
は、第2のラッチ42bの出力信号を2ビット左にシフ
トしその下位2ビットに第1のラッチ42aからの信号
の最上位ビットと1ビット下位の信号(演算例では「1
0」)を挿入した値(演算例では「10010 」)を出力す
る。バレルシフタ43bは、第3の加算器40cには、
第2のラッチ42bの出力信号を3ビット左にシフトし
その下位3ビットに第1のラッチ42aからの信号の最
上位ビットから2ビット下位までの信号を挿入した値
(演算例では「100100」)を出力する。第1、第2及び
第3の加算器40a、40b及び40cで除数の2の補
数と加算が行なわれ、以後第一回目のサイクルに戻り、
除算が終了するまで同じ動作が繰り返される。(演算例
では、第1サイクル及び第2サイクル共に商Qは得られ
ずに、第3サイクルにおいてはじめて商Q=1、余り=
1が得られている。)図3の繰り返し型の整数型除算器
を使用した演算例を以下に示す。 被除数=10010011 除数=10010010 除数の2の補数=01101110 ADD0(40a) ADD1(40b) ADD2(40c) Q 1 10 第1サイクル 01101110 01101110 00 100 01101110 0 1001 10010 第2サイクル 01101110 01101110 00 100100 01101110 0 1001001 10010011 第3サイクル 01101110 01101110 01 1 01101110 0
41aは第一回目のサイクルにおけるバレルシフタ43
bの出力信号を選択し、第1のラッチ42aがこれをラ
ッチしかつバレルシフタ43bに出力する。バレルシフ
タ43bは第3のラッチ42cの出力信号に応じてその
出力のシフト量を変える。つまり、バレルシフタ43b
は、第1の加算器40aにキャリー出力があった場合に
はその出力を1ビット左へシフトし、第1の加算器40
aにキャリー出力がなく第2の加算器40bにキャリー
出力があった場合にはその出力を2ビット左へシフト
し、第1及び第2の加算器40a及び40b共にキャリ
ー出力がない場合にはその出力を3ビット左へシフトす
る。バレルシフタ43bは、第1の加算器40aには、
第2のラッチ42bの出力信号(演算例では「100 」)
を1ビット左にシフトしその最下位ビットに第1のラッ
チ42aからの信号の最上位ビットの信号(演算例では
「1」)を挿入した値(演算例では「1001」)を出
力する。バレルシフタ43bは、第2の加算器40bに
は、第2のラッチ42bの出力信号を2ビット左にシフ
トしその下位2ビットに第1のラッチ42aからの信号
の最上位ビットと1ビット下位の信号(演算例では「1
0」)を挿入した値(演算例では「10010 」)を出力す
る。バレルシフタ43bは、第3の加算器40cには、
第2のラッチ42bの出力信号を3ビット左にシフトし
その下位3ビットに第1のラッチ42aからの信号の最
上位ビットから2ビット下位までの信号を挿入した値
(演算例では「100100」)を出力する。第1、第2及び
第3の加算器40a、40b及び40cで除数の2の補
数と加算が行なわれ、以後第一回目のサイクルに戻り、
除算が終了するまで同じ動作が繰り返される。(演算例
では、第1サイクル及び第2サイクル共に商Qは得られ
ずに、第3サイクルにおいてはじめて商Q=1、余り=
1が得られている。)図3の繰り返し型の整数型除算器
を使用した演算例を以下に示す。 被除数=10010011 除数=10010010 除数の2の補数=01101110 ADD0(40a) ADD1(40b) ADD2(40c) Q 1 10 第1サイクル 01101110 01101110 00 100 01101110 0 1001 10010 第2サイクル 01101110 01101110 00 100100 01101110 0 1001001 10010011 第3サイクル 01101110 01101110 01 1 01101110 0
【0015】
【発明の効果】以上説明したように、本発明の整数型除
算器によれば、従来の整数型除算器における動作速度と
ほぼ同じ動作速度で動作し、同じサイクルタイムで少な
い繰り返し演算サイクル数で演算を実行でき、そのため
従来と比べて高速の除算が可能となる。
算器によれば、従来の整数型除算器における動作速度と
ほぼ同じ動作速度で動作し、同じサイクルタイムで少な
い繰り返し演算サイクル数で演算を実行でき、そのため
従来と比べて高速の除算が可能となる。
【図1】本発明の繰り返し型の整数型除算器の基本構成
を示すブロック図。
を示すブロック図。
【図2】本発明の繰り返し型の整数型除算器の実施例の
構成を示すブロック図。
構成を示すブロック図。
【図3】本発明の繰り返し型の整数型除算器の具体的構
成を示すブロック図。
成を示すブロック図。
【図4】従来の繰り返し型の整数型除算器の基本構成を
示すブロック図。
示すブロック図。
【図5】従来の繰り返し型の整数型除算器の具体的構成
を示すブロック図。
を示すブロック図。
10a ・・10d 、40a ・・40c 加算器 1c,11,11a,11b,12,60a,60c,60d セレクタ 1a,60b バレルシフタ 1d,8a,8b,12,50a ・・50c ラッチ 3 シフタ
Claims (1)
- 【請求項1】 被除数が入力され、先の演算サイクルで
得られたキャリー出力に基づいて前記被除数を上位ビッ
トから所定ビット同じタイミングでシフトして出力する
シフト手段と、 このシフト手段によってシフトされた被除数の下位ビッ
トに、シフトするビット数に応じて被除数を上位ビット
から順次挿入し減算データを生成する挿入手段と、 シフトされる前記所定ビットの数に応じて並列に配置さ
れ、前記減算データから除数を各ビット毎に減算する複
数の減算手段と、 この複数の減算手段から出力されるキャリー出力に応じ
て、減算手段の演算出力と前記挿入手段が生成した減算
データとのいずれかを選択し出力する選択手段と、 この選択手段の選択した出力を保持しかつ次の演算サイ
クルの被除数としてこの出力を前記シフト手段に送る第
1の保持手段と、 前記複数の減算手段から出力されるキャリー出力を保持
しかつ前記シフト手段に送る第2の保持手段と、 前記複数の減算手段の演算出力から必要な演算サイクル
が完了したことを検出する検出手段と、 を具備したことを特徴とする整数型除算器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5048160A JPH06259231A (ja) | 1993-03-09 | 1993-03-09 | 整数型除算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5048160A JPH06259231A (ja) | 1993-03-09 | 1993-03-09 | 整数型除算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06259231A true JPH06259231A (ja) | 1994-09-16 |
Family
ID=12795639
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5048160A Pending JPH06259231A (ja) | 1993-03-09 | 1993-03-09 | 整数型除算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06259231A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6650502B2 (en) | 2000-01-28 | 2003-11-18 | Alps Electric Co., Ltd. | Thin-film magnetic head capable of narrowing track width and method of manufacturing the same |
-
1993
- 1993-03-09 JP JP5048160A patent/JPH06259231A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6650502B2 (en) | 2000-01-28 | 2003-11-18 | Alps Electric Co., Ltd. | Thin-film magnetic head capable of narrowing track width and method of manufacturing the same |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4754421A (en) | Multiple precision multiplication device | |
| EP0801345A1 (en) | Circuit and method for modulo multiplication and exponentiation arithmetic | |
| US6279020B1 (en) | Programmable circuit for realizing a digital filter | |
| JP2585649B2 (ja) | 除算回路 | |
| US5177703A (en) | Division circuit using higher radices | |
| US6963644B1 (en) | Multi-word arithmetic device for faster computation of cryptosystem calculations | |
| JP2000353077A (ja) | 多倍長演算装置 | |
| JPH08329261A (ja) | パラメータ曲線発生器 | |
| US6519621B1 (en) | Arithmetic circuit for accumulative operation | |
| US4754422A (en) | Dividing apparatus | |
| JP3271120B2 (ja) | 2進数を高速乗算する装置 | |
| JPH06259231A (ja) | 整数型除算器 | |
| US4879675A (en) | Parity generator circuit and method | |
| JPS61166628A (ja) | 除算装置 | |
| CN116149605A (zh) | 模数乘法电路与计算模数乘法的方法 | |
| US6275837B1 (en) | Method for the implementation of an elementary modular operation according to the Montgomery method | |
| JP2737933B2 (ja) | 除算装置 | |
| US6470369B1 (en) | Euclid mutual division arithmetic circuit and processing circuit | |
| JP3166781B2 (ja) | 加算回路 | |
| US5615141A (en) | Multiplying apparatus | |
| JPS62237523A (ja) | ソ−テイング回路 | |
| JP2524035Y2 (ja) | 畳み込み演算回路用乗算器 | |
| JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
| JP3851025B2 (ja) | 除算回路 | |
| JP2778478B2 (ja) | 相関演算プロセッサ |