JPH0199126A - 拡張精度除算処理方式 - Google Patents

拡張精度除算処理方式

Info

Publication number
JPH0199126A
JPH0199126A JP62256801A JP25680187A JPH0199126A JP H0199126 A JPH0199126 A JP H0199126A JP 62256801 A JP62256801 A JP 62256801A JP 25680187 A JP25680187 A JP 25680187A JP H0199126 A JPH0199126 A JP H0199126A
Authority
JP
Japan
Prior art keywords
register
division
divisor
data
partial
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
JP62256801A
Other languages
English (en)
Inventor
Shigeharu Matsuzaki
松崎 重治
Shigemi Uemoto
重美 上元
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62256801A priority Critical patent/JPH0199126A/ja
Publication of JPH0199126A publication Critical patent/JPH0199126A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする問題点問題点を解
決するための手段 作用 実施例 発明の効果 〔概要〕 高基数非回復型除算回路を用いて、拡張精度の除算を行
う除算方式に関し、 高基数非回復型除算回路の入出力バスの幅、及び該除算
回路が取り扱うデータ幅を広げないで、実効的に拡張精
度の除算命令(DXR命令)を高速に実行することを目
的とし、 1サイクルタイムで、nビットの商を生成する高基数非
回復型除算装置であって、除数レジスタと、除数の倍数
発生回路と、加算器と部分商予測器と、部分商発生器と
、部分剰余レジスタとから構成される除算回路において
、上記除数レジスタ。
及び部分剰余レジスタを、該除算回路のデータ幅で拡張
し、上記除算回路の演算部を、演算データの上記拡張さ
れたデータ幅を単位として、下位から上位への順序で時
分割で使用し、拡張精度の除算を行うように構成する。
〔産業上の利用分野〕
本発明は、高基数非回復型除算回路を用いて、拡張精度
の除算を行う除算方式に関する。
従来から拡張精度の除算を、例えば、ソフトウェ、アを
用いて、通常の演算回路で実行することが行われていた
が、最近の計算機システムによるデータ処理の量の増加
に伴って、該高精度の除算を高速に行うことが必要とさ
れるようになり、専用の除算回路、例えば、高基数非回
復型除算回路を用いて、高速に、拡張精度の除算を行う
除算方式%式% 〔従来の技術と発明が解決しようとする問題点〕第3図
は従来の高基数非回復型除算回路による除算方式を説明
する図である。
除算方式の1つとして、高基数非回復型除算方式が公知
の引き離し法の1つとしてよく用いられている。
該高基数非回復型除算方式は、 R1”RO+m*[) なる演算式で与えられる。
ここで、ROは被除数であり、R1は最初の除算結果に
おける部分剰余であり、Dは除数2mは除倍数である。
そしてnビットの列は、rを基数とするし桁の数字と同
じであって、該基数r=2′l′しで与えられる。
上記の基数r=16(但し、n=4. L=1)とする
と、上記除倍数mは、(−15≦m≦15)の範囲に入
る。
更に、2回目以降の演算は、以下の漸化式で与えられる
即ち、 R1= r*Ri−t + mtD・16*R
t−(+  mtD ここで、Rt−1はi−1番目の部分剰余R0は1番目
の部分剰余 上記の演算によって求められる部分商q、は、減算のと
き: R8が正のとき: Qi−1”+114−1R1が負の
とき: Qt−+□(mt−+)−1(引き過ぎた場合
) 加算のとき: R1が正のとき: Qi−+・16−(mi−+)R4
が正のとき: QL−+=16− (mi−+LL(加
え足りない場合) である。
又、上記の除倍数mは、上記に示すように予測商であり
、除算の結果により、上記部分商qを求め、該除倍数m
は現在の部分剰余R,と、除数りの各上位の数ビットの
値によって予測でき、本質的に除数、被除数のデータ長
に依存しない。
第3図は、実際に、上記の演算式、 R1g1616*Rt  +  m*Dを実行するため
の高基数非回復型除算回路の一例であって、本例では、
例えば、最大8バイ) (8B)幅のデータの除算を行
うことができる。
今、除数レジスタ(D)1に除数が設定され、部分剰余
レジスタ(PR) 6に被除数が設定されると、該除数
の上位桁(DSI?I()と、被除数が3人力桁上げ保
存加算器(CSA1.2) 31.32等を通して部分
商予測回路(QPD) 4に入力され、最上位の商を予
測する信号(m)が出力される。
れる複数のルートを選択して、何れかの出力をセレクト
し、減数レジスタ(SRI、SR2,5R3) 22に
セットする。
続いて、4つの入力信号である上記減数レジスタ(SR
I、SR2,5R3) 22の出力と、部分剰余レジス
タ(PR) 6の出力とが、3人力桁上げ保存加算器(
CSA1.2) 31 、及び桁上げ伝播加算器(CP
A) 32を用いて加算され、その結果は再び上記部分
剰余レジスタ(PR) 6に、4ビツト左シフトしてセ
ットされる。
上記桁上げ伝播加算器(CPA) 32の出力の上位ビ
ットは部分商予測回路(QPD) 4に入力され、次に
選択すべき3種類の減数レジスタ(SR1,5Ili2
,5R3)22への入力を決定するように動作する。
このようにして得られた部分商q、は、部分商発生器(
QG) 7において、上記の補正式に基づいて正しい商
を計算し、部分商レジスタ(FQ) 7にセットする。
固定小数点の除算で、剰余を必要とするときには、同時
に、図示していない剰余レジスタに格納されている剰余
を剰余補正回路で補正して正しい剰余を生成することが
できる。
本図から明らかなように、論理的には、除数レジスタ(
D) 1.減数レジスタ(SRI、SR2,5R3) 
22.及び部分剰余レジスタ(PR) 6.桁上げ保存
加算器(C3AI、2) 31 、桁上げ伝播加算器(
CPA)32等の機能回路のビット幅を拡張すれば、例
えば、8バイト以上の除算回路を構築することができる
が、ビット幅を拡張すると、それだけハードウェア量、
及び演算サイクルタイムが増加することになる。
又、通常の演算回路を用いて、例えば、マイクロプログ
ラム制御で、該拡張精度除算命令(DXR命令)を実行
して、1ピント宛商を求める方式も行われているが、該
拡張精度除算命令(DXR命令)の実効時間が極端に長
くなると云う問題があった。
本発明は上記従来の欠点に迄み、データ処理によく用い
られている高基数非回復型除算回路の入出力バスの幅、
及び該除算回路で取り扱うデータ幅を広げないで、実効
的に、拡張精度除算命令(DXR命令)を高速に実行で
きる除算方式を提供することを目的とするものである。
〔問題点を解決するための手段〕
上記の問題点は下記構成の除算方式によって解決される
(1)1サイクルタイムで、nビットの商を生成する高
基数非回復型除算装置であって、除数レジスタと、除数
の倍数発生回路と、加算器と部分商予測器と部分商発生
器と部分剰余レジスタとから構成される除算回路におい
て、 上記除数レジスタ、及び部分剰余レジスタを、該除算回
路のデータ幅で拡張し、 上記除算回路の演算部を、演算データの上記拡張された
データ幅を単位として、下位から上位への順序で時分割
で使用し、拡張精度の除算を行うように構成する。
(2)上記拡張精度の除算を行うのに、上記拡張された
除数レジスタの下位側、上位側にそれぞれ上記除算回路
のデータ幅の単位で除数の下位データと上位データを設
定し、 上記部分剰余レジスタの下位側には、被除数の上位デー
タを、該部分剰余レジスタの上位側には下位データを、
それぞれ上記除算回路のデータ幅の単位で設定し、 最初の演算サイクルでは、上記除数と被除数の下位デー
タの演算を行い、該演算結果を1桁分左シフトして上記
部分剰余レジスタの下位側に設定すると共に、該部分剰
余レジスタの下位側に設定されていた上記被除数の上位
データを、該部分剰余レジスタの上位側に転送し、且つ
、該演算で生成されたキャリ情報を上位データに伝播さ
せ、次のサイクルにおいては、上記除数と被除数の上位
データの演算を行うことを繰り返して、拡張精度の除算
を行うように構成する。
C作用〕 即ち、本発明によれば、1サイクルタイムで、nビット
の商を生成する高基数非回復型除算装置であって、除数
レジスタと、除数の倍数発生回路と、加算器と部分商予
測器と、部分商発生器と、部分剰余レジスタとから構成
される除算回路において、上記除数レジスタ、及び部分
剰余レジスタのみを、該除算回路のデータ幅で拡張し、
その他の演算回路を時分割で使い分けるようにする。
例えば、8バイト幅の高基数非回復型除算回路で、16
バイト幅のデータに対して除算を行う場合、上記除数レ
ジスタ(D)を上位側(DH)と、下位側(DL)の2
つに拡張すると共に、部分剰余レジスタも(PR)も上
位側(PRO)と、下位側(PRL)に拡張する。
そして、拡張精度除算命令(DXR命令)を実行する際
には、2つのステップに分けて演算する。
先ず、最初に下位側の部分剰余(pRLi)を求める演
算を行い、次に上位側の部分剰余(PRO4)を求める
演算を行う。
このとき、上記下位側の部分剰余(PRci)を求める
演算で発生したキャリは上位側の演算に伝播させる。具
体的には、加算器のキャリ入力に入力する。
上記2つのステップの演算を該拡張精度除算命令(DX
R命令)が必要とするデータ幅の商が得られる迄繰り返
すようにしたものである。
従って、本発明によれば、高基数非回復型除算回路のデ
ータ幅を広げることなく、実効的に、拡張精度除算命令
(DXI?命令)を高速に実行することができる効果が
ある。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
第1図は本発明の一実施例をブロック図で示した図であ
り、第2図は本発明による拡張精度除算方式の動作を模
式的に示した図であって、(a)は初期設定ステップを
示し、(b)は演算ステップを示していて、拡張された
除数レジスタ(DL、DH) 1゜、部分剰余レジスタ
(PRL、PR)l) 6”、及び初期設定ステップに
おける除数、被除数の設定手段、第2ステツプでの演算
結果を上記部分剰余レジスタ(PR,、PR)l) 6
”に設定する手段が本発明を実施するのに必要な手段で
ある。尚、全図を通して同じ符号は同じ対象物を示して
いる。
以下、第1図、第2図によって、本発明の拡張精度除算
方式を説明する。
本発明を実施しても、高基数非回復型除算回路での基本
的な除算動作は特に変わることはないので省略し、ここ
では、16バイト幅の除算を8バイト幅の除算回路で行
うのに、該除算回路を時分割で使い分けて、該拡張精度
の除算を行う方式を中心にして説明する。
本発明を実行するのに使用される拡張精度除算命令(D
XR命令)の仕様を示すと以下の通りとなる。
DXR命令(4バイト): 数部である。
該拡張精度除算命令(DXR命令)においては、上記の
第1オペランド(被除数)が第2オペランド(除数)で
割られ、正規化された商が第1オペランドに格納される
この時、剰余は保存されない。又、第1オペランドの小
数部(F)、及び第2オペランドの小数部(F)は、そ
れぞれ、28デジツト (桁) (112ビツト)あり
、高い精度で除算結果を求める必要があるときに選択的
に使用される。
尚、前述のように、実際の除算回路のデータ幅は、例え
ば、8バイトであるが、上記の仕様から明らかな如く、
演算に使用される有効桁幅は28デジット(14バイト
)であるので、該データを左詰めにして、最下位の4デ
ジツト(2バイト)には0′を入れて、除数レジスタ(
OL、DH) 1°、被除数レジスタ(部分剰余レジス
タ(PRL、PRH) 6’)に設定する。
先ず、最初に、除数、被除数の小数部を取り出して下位
データと上位データに分割し、除数レジスタの上位側(
DH) la”に該除数の上位データを設定し、該除数
レジスタの下位側(DL) lb’ に該除数の下位デ
ータを設定し、且つ、部分剰余レジスタの上位側(pR
,) 6a+には被除数の下位データを設定し、該部分剰余レ
ジスタの下位側(PRt) 6b’ には、該被除数の
上位データを設定する。(第2図(a)参照)ここで、
本発明の拡張精度の除算を開始すると、先ず、下位デー
タの演算が行われ、該演算結果は、4ビツト(1桁)左
シフトされて、部分剰余レジスタの下位側(PRt) 
6°b“に格納される、このとき、あふれた4ビツトは
、レジスタ(SF) 6cに保持される。
この動作と共に、部分剰余レジスタの該下位側(PRL
) sb’ に設定されていた、上記被除数の上位デー
タを、該部分剰余レジスタの上位側(PRH) 6a’
に転送する。
又、この下位データの演算で発生したキャリは加算器3
のキャリ入力に人力されることにより、次の上位データ
の演算サイクル■での上位データの演算に伝播される。
(第2図(b)の下位データの演算サイクル■参照) 次に、該上位データの演算サイクル■において、上位デ
ータ側の演算を行い、結果を4ビツト左シフトして、再
び、部分剰余レジスタの下位側(PRL)6b’に格納
する。これと共に、該部分剰余レジスタの下位側(PR
L) 6b”に設定されていた下位データを上位側(P
Ro) 6a’ に転送する。
又、このとき、上記レジスタ(SF) 5cに保持され
ている、上記下位データの演算結果を4ビツト左シフト
して部分剰余レジスタの下位側(PRJ 6b’に格納
した時のあふれビットを、該部分剰余レジスタの下位側
(PRL) 6b’ の最下位に置数する。(第2図(
b)の上位データの演算サイクル参照)上記の2ステツ
プの演算において、部分商予測回路4からの商予測値(
m)は、下位側演算と上位側演算で同じ値を使用する。
具体的には、上位データの演算サイクル■では、上記商
予測値(m)をレジスタ(QSI) 80にシフトした
ものを使用する。
以後、データ幅分の商が得られる迄、該2ステ・ノブの
動作を繰り返す。
商レジスタ(FQ) 7のデータ幅は8バイトであるの
で、核間のデータ幅が8バイトに達したら一旦最終結果
を格納するレジスタ (図示せず)にはき出すことを行
う。
尚、上記の実施例においては、除数レジスタ。
部分剰余レジスタを上位と、下位の2倍に拡張する例で
説明したが、本発明の主旨から考えて、該上位、下位だ
けの拡張に限定されるものではなく、演算データのデー
タ幅に対応して、3倍、4倍。
−に拡張できるととは云う迄もないことである。
このように、本発明は、高基数非回復型除算回路におい
て、被除数、及び部分剰余を格納する部分剰余レジスタ
、並びに除数を格納する除数レジスタを、該除算回路の
データ幅、例えば、8バイト分の拡張を行い、該除算回
路を演算データ、例えば、16バイトの上位8バイトと
、下位8バイトで交互に使用することにより、通常のデ
ータ幅の除算回路で拡張精度除算命令を高速に実行する
ようにした所に特徴がある。
〔発明の効果〕
以上、詳細に説明したように、本発明の拡張精度除算処
理方式は、1サイクルタイムで、nビットの商を生成す
る高基数非回復型除算装置であって、除数レジスタと、
除数の倍数発生回路と、加算器と部分商予測器と、部分
商発生器と、部分剰余レジスタとから構成される除算回
路において、上記除数レジスタ、及び部分剰余レジスタ
を、該除算回路のデータ幅で拡張し、上記除算回路の演
算部を、演算データの上記拡張されたデータ幅を単位と
して、下位から上位への順序で時分割で使用し、拡張精
度の除算を行うようにしたものであるので、高基数非回
復型除算回路のデータ幅を広げることなく、実効的に、
拡張精度除算命令(DXR命令)を高速に実行すること
ができる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例をブロック図で示した図。 第2図は本発明による拡張精度除算方式の動作を模式的
に示した図。 第3図は従来の貰基数非回復型除算回路による除算方式
を説明する図。 である。 図面において、 1.1゛は除数レジスタ(D)。 18″は除数レジスタの上位側(DH)。 lb’ は除数レジスタの下位側(DL)。 2は除数の倍数発生回路。 21は乗算回路(×±1.X±2/4. X上8/16
) 。 22は減数レジスタ(SRI 、 SR2、5R3) 
。 3は加算器。 31は3人力桁上げ保存加算器(CSAI、C3A2)
 。 32は桁上げ伝播加算器(CP八)。 4は部分商予測回路(QPD)。 5は部分商発生器(QG)。 6.6゛は部分剰余レジスタ(PR)。 6a+ は部分剰余レジスタの上位側(PR,4) 。 6b’ は部分剰余レジスタの下位側(PRL)。 7は商レジスタ(FQ) 。 ■、■は演算サイクル。 をそれぞれ示す。

Claims (2)

    【特許請求の範囲】
  1. (1)1サイクルタイムで、nビットの商を生成する高
    基数非回復型除算装置であって、除数レジスタ(1’)
    と、除数の倍数発生回路(2)と、加算器(3)と部分
    商予測器(4)と部分商発生器(5)と部分剰余レジス
    タ(6’)とから構成される除算回路において、 上記除数レジスタ(1’)、及び部分剰余レジスタ(6
    ’)を、該除算回路のデータ幅で拡張し、上記除算回路
    の演算部を、演算データの上記拡張されたデータ幅を単
    位として、下位から上位への順序で時分割で使用し、拡
    張精度の除算を行うことを特徴とする拡張精度除算処理
    方式。
  2. (2)上記拡張精度の除算を行うのに、上記拡張された
    除数レジスタ(1’)の下位側(1b’)、上位側(1
    a’)にそれぞれ上記除算回路のデータ幅の単位で除数
    の下位データと上位データを設定し、 上記部分剰余レジスタ(6’)の下位側(6b’)には
    、被除数の上位データを、該部分剰余レジスタ(6’)
    の上位側(6a’)には下位データを、それぞれ上記除
    算回路のデータ幅の単位で設定し、 最初の演算サイクルでは、上記除数と被除数の下位デー
    タの演算を行い、該演算結果を1桁分左シフトして上記
    部分剰余レジスタ(6’)の下位側(6b’)に設定す
    ると共に、該部分剰余レジスタ(6’)の下位側(6b
    ’)に設定されていた上記被除数の上位データを、該部
    分剰余レジスタ(6’)の上位側(6a’)に転送し、
    且つ、該演算で生成されたキャリ情報を上位データに伝
    播させ、 次のサイクルにおいては、上記除数と被除数の上位デー
    タの演算を行うことを繰り返して、拡張精度の除算を行
    うことを特徴とする特許請求の範囲第1項に記載の拡張
    精度除算処理方式。
JP62256801A 1987-10-12 1987-10-12 拡張精度除算処理方式 Pending JPH0199126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62256801A JPH0199126A (ja) 1987-10-12 1987-10-12 拡張精度除算処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62256801A JPH0199126A (ja) 1987-10-12 1987-10-12 拡張精度除算処理方式

Publications (1)

Publication Number Publication Date
JPH0199126A true JPH0199126A (ja) 1989-04-18

Family

ID=17297629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62256801A Pending JPH0199126A (ja) 1987-10-12 1987-10-12 拡張精度除算処理方式

Country Status (1)

Country Link
JP (1) JPH0199126A (ja)

Similar Documents

Publication Publication Date Title
US5798955A (en) High-speed division and square root calculation unit
JPH0612229A (ja) 乗累算回路
JPS6347874A (ja) 算術演算装置
JP3418460B2 (ja) 倍精度除算回路および方法
JPS60140422A (ja) 演算処理装置
US4065666A (en) Multiply-divide unit
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US3621218A (en) High-speed divider utilizing carry save additions
JPS63123125A (ja) 浮動小数点数の加算装置
JP2511527B2 (ja) 浮動小数点演算器
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JPH0628155A (ja) 除算方法および除算装置
JPH0464091B2 (ja)
JPH0199126A (ja) 拡張精度除算処理方式
JPH10111791A (ja) 除算装置
JPH0831024B2 (ja) 演算プロセッサ
JPH04172526A (ja) 浮動小数点除算器
US3192367A (en) Fast multiply system
JP3517162B2 (ja) 除算・開平演算装置
SU651341A1 (ru) Устройство дл умножени
JPS5935236A (ja) 可変語長乗算回路
JP2607759B2 (ja) 除算器
JP3461706B2 (ja) ディジットシリアル乗算器
JP2608090B2 (ja) 高基数非回復型除算装置
JP3100868B2 (ja) 浮動小数点数のための算術演算装置