JPH0413734B2 - - Google Patents

Info

Publication number
JPH0413734B2
JPH0413734B2 JP57202944A JP20294482A JPH0413734B2 JP H0413734 B2 JPH0413734 B2 JP H0413734B2 JP 57202944 A JP57202944 A JP 57202944A JP 20294482 A JP20294482 A JP 20294482A JP H0413734 B2 JPH0413734 B2 JP H0413734B2
Authority
JP
Japan
Prior art keywords
register
adder
division
divisor
bits
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 - Lifetime
Application number
JP57202944A
Other languages
English (en)
Other versions
JPS5994143A (ja
Inventor
Tsutomu Sakamoto
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co 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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP57202944A priority Critical patent/JPS5994143A/ja
Publication of JPS5994143A publication Critical patent/JPS5994143A/ja
Publication of JPH0413734B2 publication Critical patent/JPH0413734B2/ja
Granted 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/52Multiplying; Dividing
    • G06F7/535Dividing 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)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明はデジタル式データ処理装置に係り、1
語長のデータ処理と倍語長のデータ処理との両機
能を有する除算回路に関する。
〔発明の技術的背景とその問題点〕
一般に除算命令には、固定小数点除算を指定す
る命令と、浮動小数点除算を指定する命令とがあ
る。前者には、被除数が倍語長で除数および商が
1語長で、1語長の余りを求めるものが多い。こ
れに対し後者は、被除数、除数、商共に倍語長の
もの(倍精度)と、1語長のもの(単精度)とが
あり、余りは求めないものが一般的である。
固定小数点と浮動小数点の除算は基本的なアル
ゴリズムにおいては一致している。しかし通常、
固定小数点除算では、データの負数は2の補数表
現のため(浮動小数点データは、符号付絶対値表
現)、また余りを求めるために、浮動小数点除算
より特にデータの前後処理が複雑である。このよ
うに固定小数点と浮動小数点の除算の処理上の差
があるため、従来技術では固定小数点用と浮動小
数点用のそれぞれ専用の除算回路を設けるのが一
般的であつた。この場合、高速性という点では問
題ないが、ハード量が多くなる欠点があつた。こ
れに対し、1つの除算回路で兼用する技術もある
が、固定小数点除算の前後処理を逐次的に行なわ
せる必要があるため高速性に乏しかつた。
〔発明の目的〕
本発明は上記事情に鑑みてなされたものでその
目的は、1語長のデータ処理と倍語長のデータ処
理とに共用でき、かつ固定小数点除算など1語長
の商を求める際の前後処理の並列処理化が図れ、
もつて少ないハード量で高速除算が行なえる除算
回路を提供することにある。
〔発明の概要〕
本発明は1語長の類似の除算回路を2回路設
け、2語長のデータを処理する場合には、一方の
除算回路内の加算器のキヤリー出力を他方の除算
回路内の加算器のキヤリー入力とすることによつ
て上記2つの除算回路を連結し、1組の除算回路
として動作させる一方、1語長のデータを処理す
る場合には上記各回路を独立に動作させることに
より除算の前後処理を並列処理させるようにした
ものである。
〔発明の実施例〕
以下、本発明の一実施例を図面を参照して説明
する。第1図は除算回路の構成を示すものであ
る。図中、1は1語長のデータを処理する第1除
算回路、2も1語長のデータを処理する第2除算
回路、3はこれら除算回路1,2を制御するフア
ームウエアを有する制御部である。本実施例にお
いて第1図の除算回路における除算アルゴリズム
は基数=4とした高基数除算方式であり、商は1
サイクル2ビツトずつ求めていく方式である。
第1図の除算回路で適用されるデータのフオー
マツトは第2図および第3図で示される通りであ
る。第2図は1語長(例えば32ビツト)の固定小
数点データDのデータフオーマツトを示すもので
ある。第3図は倍語長(倍精度)の浮動小数点デ
ータのデータフオーマツトを示すものでる。図中
Sは符号部(1ビツト)、Xは指数部(7ビツ
ト)、M1,M2は仮数部(56ビツト)のそれぞ
れ上位部分(24ビツト)、下位部分(32ビツト)
である。この仮数部16進14桁の絶対値表現で示さ
れた正規化された値である。
再び第1図を参照すると、除算回路1,2にお
いて10,20は部分剰余が格納されるURレジ
スタ、LRレジスタ、11,21は商が格納され
るUQレジスタ、LQレジスタである。これらUQ
レジスタ11およびLQレジスタ21は左2ビツ
トシフト機能を有する。12,22は除数が格納
されるUVレジスタ、LVレジスタ、13,23
は除数の2倍値が格納されるUMレジスタ、LM
レジスタである。14,24は64ビツトの入力を
0〜31の任意数シフト(左並びに右シフト)する
USシフタ、LSシフタ、15,25は数種の演算
モードを有するUA加算器、LA加算器である。
16,26はゼロ検出を行なうUZゼロ検出回路、
LZゼロ検出回路である。UZゼロ検出回路16,
26は指数部(X)に対応するビツトをマスクす
る機能および“8000 000016”(添字の16は16進表
現を示す)の値(すなわち固定小数点における負
の最大値)を検出する機能をも有している。17
はLVレジスタ22に格納される除数の上位11ビ
ツトが保持されるLVCレジスタ、18はUVレジ
スタ12に格納される除数の上位数ビツトが保持
されるUVCレジスタである。19は倍数および
演算モードを予測するMC予測回路である。この
MC予測回路19は部分剰余の上位数ビツトと
UVCレジスタ18の保持内容とを比較し、次に
実行すべき除数の倍数(×0,×1,×2)と、演
算モード(加算,減算)とを決定するようになつ
ている。27はLVレジスタ22内の除数の最上
位ビツト(MSB)から連続する0(ゼロ)の数を
カウントするLGZ検出回路、28はSELセレク
タである。SELセレクタ28は加算機LA25の
キヤリー出力CI1または制御部3から供給され
るキヤリー入力CI2のいずれか一方を選択する。
SELセレクタ28の選択出力は加算器UA15の
キヤリー入力UCIとなる。なお、加算器LA25
のキヤリー入力LCIは制御部3から供給される。
次に本発明の一実施例の動作について、まず被
除数が64ビツトで、除数、商、剰余が共に32ビツ
トの場合の固定小数点除算を例にとつて説明す
る。ここで便宜的に制御部3の制御による内部シ
ンケースを“ステート”で表わすことにする。ま
ず第1ステートの始まりにおいて被除数の上位32
ビツトRuがURレジスタ10、LRレジスタ20
およびUQレジスタ11、LQレジスタ21にA
バス経由で置数される。同じく除数DがUVレジ
スタ12、LVレジスタ22にBバス経由で置数
される。続いて、LVレジスタ22の内容(除数
D)はLA加算器25を経由し、LZゼロ検出回路
26およびLGZ検出回路27に導かれる。しか
してLZゼロ検出回路26は除数=0または除数
=“8000 000016”の検出を行ない、その検出結果
を保持する。またLGZ検出回路27は除数の最
上位ビツト(MSB)から連続する0(ゼロ)の数
をシフト数Nとして検出し、その検出結果を保持
する。
第2ステートではUVレジスタ12の内容(除
数D)がUSシフタ14により左シフトされる。
この左シフトはLGZ検出回路27から得られる
シフト数Nに従つて行なわれる。これにより、除
数Dはその小数点の位置がBit 0の左側になるよ
うに正規化される。USシフタ14のシフト結果
(D′)はUVレジスタ12に置数され、その上位
数ビツトはUVCレジスタ18に置数される。す
なわち第2ステートにおいては、第1除算回路1
を用いて固定小数点の除数Dを浮動小数点に変換
し、かつ1/2≦|D|<1となるように除数Dを
正規化する処理が行なわれる。また、第2ステー
トの始めで、被除数に下位32ビツトRlがAバス
経由でURレジスタ10およびLQレジスタ21
に置数される。そして、上述した第1除算回路1
での除数Dの正規化処理と同時に、第2除算回路
2においてLA加算器25によりLRレジスタ20
の内容(Ru)とLVレジスタ22の内容(D)と
から|Ru|<|D|のチエツクが行なわれる。
もし|Ru|≧|D|ならば演算結果はオーバフ
ローとなる。このように第2ステートでは、第1
除算回路1で除数Dの正規化が行なわれ、これと
並行して第2除算回路1でオーバフローの検出が
行なわれる。
第3ステートでは、UQレジスタ11の内容
(被除数Ru)とURレジスタ10の内容(被除数
Rl)とがシフト数Nに従つてUSシフタ14によ
り左シフトされる。また、LQレジスタ21の内
容(被除数Rl)がシフト数Nに従つてLSシフタ
24により左シフトされる。そして、USシフタ
14のシフト結果(Ru′)はURレジスタ10に
置数され、LSシフタ24のシフト結果(Rl′)は
LRレジスタ20に置数される。これが被除数の
正規化処理である。また、UZゼロ検出回路16
およびLZゼロ検出回路26により被除数の負の
最大値の検出が行なわれる。もし、前記第1ステ
ートで除数が負の最大値であることが検出されて
おり、被除数も負の最大値のであれば、オーバフ
ローの処理が必要となる。
第4ステートでは、第5ステートで行なわれる
部分剰余と商を求めるサイクルの最初の倍数(×
0)を設定すると共に、UVレジスタ12の除数
D′を2倍(左1ビツトシフト)する処理が行な
われる。この除数D′の2倍値はUMレジスタ13
に置数される。
以上の第1〜第4ステートが固定小数点除算の
前処理である。
第5ステートでは、MC予測回路19の判断に
従つて、所定の回数の演算を行ない、部分剰余と
商を求める処理が行なわれる。ここで演算とは、
部分剰余Rmが置数されるURレジスタ10に対
し、予測された倍数に従つてUVレジスタ12の
内容(D′)、或いはUMレジスタ13の内容(2
×D′)を減算または加算を施すことがある。×0
倍が予測された場合には、UA加算器15はスル
ー(Through)モードに設定される。これによ
りURレジスタ10の内容はそのままUA加算器
15から出力される。このUA加算器15の出力
は、左2ビツトシフトされ、URレジスタ10に
置数される。このとき、LRレジスタ20の上位
2ビツトが図示せぬデータラインを介してURレ
ジスタ10の下位2ビツトに入る。商は演算モー
ドと、倍数と、演算結果との関係から2ビツトず
る求められ、LQレジスタ21の最下位ビツト
(LSB)から順にシフトインされる。
第6ステートでは基本的に第5ステートと同様
の処理が行なわれる。ただし、UA加算器15の
出力はシフトされずURレジスタ10に置数され
る。また、商は最後の2ビツトが求められ、LQ
レジスタ21にシフトインされる。同時に最後の
部分剰余のゼロ検出がUZゼロ検出回路16で行
なわれる。
第7ステートでは、UA加算器15により剰余
の補正が行なわれ、これと並行してLA加算器2
5により商の補正が行なわれる。このとき、上記
第6ステートで検出されたゼロ検出の条件が使用
される。上記剰余の補正はURレジスタ10の出
力にUVレジスタ12の出力をUA加算器15で
加算し、その結果をURレジスタ10に再格納す
ることにより行なわれる。なお、剰余=0であれ
ば補正はない。また、商の補正はLQレジスタ2
1格納されている商に「1」を加算することによ
り行なわれる。なお、商の補正もない場合があ
る。上記「1」の加算はLA加算器25で行なわ
れ、その結果(すなわち補正後の商)はデステイ
ネーシヨンバスとしてのSバスへ送出される。
第8ステートでは、補正の終了した剰余(UR
レジスタ10の内容)がUSシフタ14により右
にNビツトシフトされる。これにより上記剰余は
固定小数点表現に戻される。この剰余(USシフ
タ14の出力)はSバスへ送出される。
以上の第7および第8ステートが固定小数点除
算の後処理である。第8ステートの完了によつて
全ての処理が終了する。なお、除数=0の場合
や、負の最大値によるオーバフローまたは|被除
数|≧|除数|によるオーバフローが検出された
場合には、割込み等のエラー処理が起動される。
次に64ビツトの倍精度(倍語長)浮動小数点除
算の動作を説明する。まず第1ステートの始め
で、被除数の上位32ビツトRuがURレジスタ1
0、UQレジスタ11およびLRレジスタ20、
LQレジスタ21に置数される。また除数の上位
32ビツトDuがUVレジスタ12、LVレジスタ2
2に置数される。続いて、LVレジスタ22の内
容(除数Du)がLA加算器25を介してLGZ検出
回路27に導かれる。しかしてLGZ検出回路2
7はシフト数Nを検出し、それを保持する。この
場合、指数部Xおよび符号Sの部分を予め0(ゼ
ロ)と見なしてシフト数Nが求められる。
第2ステートでは、まず被除数の下位32ビツト
RlがUQレジスタ11、LRレジスタ20に置数
される。同時に除数の下位32ビツトDlがLVレジ
スタ22に置数される。次に、仮数部のみUA加
算器15およびLA加算器25で減算され、(被除
数の仮数部)<(除数の仮数部)のチエツクが行な
われる。
第3ステートではUSシフタ14およびLSシフ
タ24により、除数がシフト数Nだけ左シフトさ
れる。USシフタ14のシフト結果(Du′)はUV
レジスタ12に置数され、LSシフタ24のシフ
ト結果(Dl′)はLVレジスタ22に置数される。
このとき、(LVレジスタ22の上位11ビツトを置
数する)LVCレジスタ17の内容もUSシフタ1
4に導かれてシフトされ、一部または全ビツトが
UVレジスタ12の下位位置に置数される。以上
の動作と並行して、UZゼロ検出回路16および
LZゼロ検出回路26により除数の仮数部=0の
検出が行なわれる。また、もし第2ステートで被
除数の仮数部が除数のそれよりも大きいことが検
出されていれば、LGZ検出回路27におけるシ
フト数Nから4減じた値が新たなNとして旧シフ
ト数に置き換えられる。
第4ステートでは、被除数の左シフトが行なわ
れる。すなわちURレジスタ10の内容(被除数
Ru)とUQレジスタ11の内容(被除数Rl)とが
USシフタ14に導かれ、シフト数Nに従つて左
シフトされる。また、LRレジスタ20の内容
(被除数Rl)がLSシフタ24に導かれ、シフト数
Nに従つて左シフトされる。そして、USシフタ
14のシフト結果(Ru′)はURレジスタ10に
置数され、LSシフタ24のシフト結果(Rl′)は
LRレジスタ20に置数される。
第5ステートでは、固定小数点の場合の第4ス
テートと同様の処理が行なわれる。但し、ここで
は、LVレジスタ22の除数Dl′を2倍(左1ビツ
トシフト)した値(2×Dl′)をLMレジスタ2
3に置数する処理も行なわれる。このとき、LV
レジスタ22の上位1ビツトは図示せぬデータラ
インを介しUMレジスタ13の下位1ビツトに入
力される。
第6ステートでは、固定小数点の場合の第5ス
テートと同様の処理が行なわれる。但し、今度
は、UA加算器15およびLA加算器25とが次
に述べるように連結され、64ビツトの加算器とし
て動作する。すなわち本実施例の除算回路には
UA加算器15およびLA加算器25との連結/
切り離しを行なうSELセレクタ28が設けられて
いる。このSELセレクタ28の一方の入力端子に
はLA25のキヤリー出力CI1が入力され、他方
の入力端子には制御部3から出力されるキヤリー
出力CI2が入力されるようになつている。SEL
セレクタ28は前述した固定小数点除算や単精度
(1語長)浮動小数点除算の場合、制御部3から
の指示により当該制御部3からのキヤリー入力
CI2を選択する。これによりキヤリー入力CI2
がUA加算器15のキヤリー入力UCIとなり、
UA加算器15とLA加算器25とが切り離され
る。これに対し、倍精度(倍語長)浮動小数点除
算の場合、SELセレクタ28はLA加算器25か
らのキヤリー出力CI1をUA加算器15のキヤリ
ー入力UCIとして選択出力する。これによりUA
加算器15とLA加算器25とがキヤリーで接続
される。したがつて、LRレジスタ20、LVレジ
スタ22、LMレジスタ23の内容も予測演算モ
ードおよび倍数に従つてLA加算器25により演
算が施され、左2ビツトシフトされ、LRレジス
タ20に置数される。LRレジスタ20の下位2
ビツトには“0”が入力され、URレジスタ10
の下位2ビツトにはLA加算器25の出力の上位
2ビツトが(図示せぬデータラインを介して)入
力される。また、商はLQレジスタ21に2ビツ
トずつシフトインされ、あふれた分はUQレジス
タ11にシフトインされる。
第7ステートでは、丸めビツトを求めるために
更にもう一度上述した第6ステートと同様の演算
が行なわれる。但し、演算結果のURレジスタ1
0、LRレジスタ20への格納、およびUQレジ
スタ11、LQレジスタ21への商の格納はない。
第8ステートでは、UQレジスタ11、LQレ
ジスタ21の商に対し、第7ステートで求められ
た丸めビツトをUA加算器15、LA加算器25
により加える処理が行なわれる。そして、LA加
算器25の加算結果である下位23ビツトがSバス
へ送出される。一方、UA加算器15の加算結果
である上位32ビツトは再びUQレジスタ11に置
数される。このときUZゼロ検出回路16、LZゼ
ロ検出回路26により商が“0”であることが検
出されると、指数部および符号のクリアが行なわ
れる。
第9ステートでは、UQレジスタ11に置数さ
れている上位24ビツトの商を指数部および符号を
合わせ、UA加算器15を経由してSバスへ送出
する処理が行なわれる。これにより全ての処理が
終了する。但し、指数部の演算においてオーバフ
ローやアンダフローが検出された場合、或いは第
3ステートで除数=0が検出された場合にはエラ
ー処理が行なわれる。
このように本実施例によれば、1語長のデータ
を処理する第1除算回路1と、類似の機能を有す
る第2除算回路2とを組合わせることにより、倍
精度(倍語長)の浮動小数点除算が行なえる一
方、これら2つの除算回路1,2を独立に動作さ
せることにより固定小数点除算においては以下に
示すように除算の前後処理の並列処理が行なえ
る。すなわち除数の正規化と同時にオーバフロー
の検出が行なえ、また商の補正と同時に剰余の補
正などが行なえる。これにより、前後処理に要す
るステツプを短縮することができる。とことで、
上述の動作説明では、単精度(1語長)の浮動小
数点除算についての説明が省略されているが、こ
の場合にも前後処理のいくつかを並列処理させる
ことができることは勿論である。
なお、前記実施例では、高基数除算方式の除算
回路について説明したが、商を1ビツトずつ求め
る方式にも適用することができる。。
〔発明の効果〕
以上詳述したように本発明によれば、1語長の
データ処理と倍語長のデータ処理とに共用でき、
しかも1語長の商を求める際の前後処理の並列処
理が行なえる。したがつて本発明によれば少ない
ハード量で高速除算を行なうことができる。
【図面の簡単な説明】
第1図は本発明の除算回路の一実施例を示すブ
ロツク構成図、第2図および第3図は上記実施例
で適用されるデータフオーマツトを示す図であ
り、第2図は1語長の固定小数点データ、第3図
は倍精度の浮動小数点データの場合である。 1……第1除算回路、2……第2除算回路、3
……制御部、14,24……シフタ、15,25
……加算器、28……セレクタ。

Claims (1)

  1. 【特許請求の範囲】 1 第1加算器を備えた1語長の第1除算回路
    と、 第2加算器を備えた1語長の第2除算回路と、 1語長の商を求める場合に、上記第1除算回路
    により除数および被除数の正規化と部分剰余の生
    成と剰余の補正とを行なわせると共に、上記第2
    除算回路により上記除数の正規化と並行してオー
    バフローの検出を行なわせ、且つ上記剰余の補正
    と並行して商の補正を行なわせる手段と、 倍語長の商を求める場合に、上記第2加算器の
    キヤリー出力を上記第1加算器のキヤリー入力と
    することにより上記第1および第2除算回路を連
    結させる手段と、 を具備することを特徴とする除算回路。
JP57202944A 1982-11-19 1982-11-19 除算回路 Granted JPS5994143A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57202944A JPS5994143A (ja) 1982-11-19 1982-11-19 除算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57202944A JPS5994143A (ja) 1982-11-19 1982-11-19 除算回路

Publications (2)

Publication Number Publication Date
JPS5994143A JPS5994143A (ja) 1984-05-30
JPH0413734B2 true JPH0413734B2 (ja) 1992-03-10

Family

ID=16465743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57202944A Granted JPS5994143A (ja) 1982-11-19 1982-11-19 除算回路

Country Status (1)

Country Link
JP (1) JPS5994143A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03269588A (ja) * 1990-03-20 1991-12-02 Yamaha Corp 電子楽器
JPH04172526A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 浮動小数点除算器

Also Published As

Publication number Publication date
JPS5994143A (ja) 1984-05-30

Similar Documents

Publication Publication Date Title
US20110040815A1 (en) Apparatus and method for performing fused multiply add floating point operation
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
US5136536A (en) Floating-point ALU with parallel paths
JPH0544046B2 (ja)
JPH06314187A (ja) 引き数簡約の最適化システム
CN108694037B (zh) 用于在执行浮点减法时估计移位量的装置和方法
JPH10500513A (ja) ディジタル除算実行装置
JPS63123125A (ja) 浮動小数点数の加算装置
JPH01302425A (ja) 浮動小数点加減算回路
JPH0413734B2 (ja)
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
US5432727A (en) Apparatus for computing a sticky bit for a floating point arithmetic unit
JPH0283728A (ja) 浮動小数点乗算装置
JPS62128331A (ja) 情報処理装置
JPS63158626A (ja) 演算処理装置
JPS5960637A (ja) 浮動小数点演算装置
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
JPH0383126A (ja) 浮動小数点乗算器
JPS61224036A (ja) 演算装置
JPH0352093B2 (ja)
JPH0540609A (ja) 浮動小数点除算装置
JPH03217938A (ja) 浮動小数点丸め正規化装置
JPH03245225A (ja) 浮動小数点加減算装置
JPS63123123A (ja) 非正規化浮動小数点演算装置