JPH1195982A - 演算処理回路及び演算処理方法並びに演算処理システム - Google Patents

演算処理回路及び演算処理方法並びに演算処理システム

Info

Publication number
JPH1195982A
JPH1195982A JP10174472A JP17447298A JPH1195982A JP H1195982 A JPH1195982 A JP H1195982A JP 10174472 A JP10174472 A JP 10174472A JP 17447298 A JP17447298 A JP 17447298A JP H1195982 A JPH1195982 A JP H1195982A
Authority
JP
Japan
Prior art keywords
quotient
partial remainder
stage
divisor
numeral
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
JP10174472A
Other languages
English (en)
Inventor
Gai Eru Jiyunia Suteiiru
ガイ エル ジュニア スティール
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1195982A publication Critical patent/JPH1195982A/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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】全体のクロックサイクルにおいて商数字を推測
することにより、整数又は小数に関する除算及び平方根
の演算に用いられるSRTアルゴリズムを高速化すること
ができる除算/平方根回路を提供すること。 【解決手段】部分剰余の三重冗長表現と、論理インプリ
メンテーションに適した完全並列商数字推測概念とを用
いることにより、1商数字当たりのゲート遅延数を最小
化する。更に、被除数と除数とを予め基準化することに
より、より高速な商数字選択がなされるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタル処理の分
野における演算処理回路及び演算処理方法並びに演算処
理システムに関し、更に詳しくは、浮動小数点演算であ
る除算及び平方根演算の実行に用いられるスウェニー・
ロバートソン・トシェ(Sweeney, Robertson, and Toche
r; 以下単に「SRT」と称する)アルゴリズムの処理速度
を高める技術に関するものである。
【0002】
【従来の技術】コンピュータ処理は、論理設計やより効
果的なコンピュータ処理の改良により進歩してきた。し
かし、コンピュータ処理のアルゴリズムは、比較的単純
な処理の階層的構造に基づいており、そのすべてが同じ
処理速度で実行されるものではない。処理速度に関し、
様々なコンピュータ処理を特徴づけるものは、そのアル
ゴリズムが実行される手法にある。アルゴリズムを実行
するコンピュータの処理速度は、そのデジタル論理設計
の効率化や演算の手法に大きく依存する。
【0003】除算は、最も複雑な算術処理であるが、こ
れは、商数字(商ディジット)の推測処理を含むからであ
る。例えば、エム・エルスゴバック(M.Ercegovac)は、
デジタルシステム及びハードウエア/ファームウエアア
ルゴリズム(Digital Systemsand Hardware/Firmware Al
gorithms, 1985)において、演算結果が商Qと剰余Zにな
る被除数Yと除数Xとで表される正の2つの整数のアルゴ
リズム、すなわち、Y = XQ + Zなる式により表されるア
ルゴリズムについて説明している。その演算処理は、次
式で表される再帰的関係を有している。
【0004】z(0) = Y z(j+1) = rz(j) - XrnYQn-1-j for j = 0,...,n-1. 更に、この関係から次の関係が導かれる。 z(n) = rn(Y - XQ) Y = XQ + z(n)r-n
【0005】被除数Yは、2nディジットを含み、除数X
は、nディジットを含み、これにより、nなる値の商QとZ
= z(n)r-nなる式により表される剰余Zを生じる。商数
字は、除算処理におけるそれぞれのステップ(j,j+1,等)
で0<Z<Xなる関係を満たすものが選ばれる。商ディジッ
ト(以下「商数字」とする)を選択する処理過程は、除算
アルゴリズムにおいて多くの部分を占める。
【0006】周知の除算アルゴリズムとして、スウェニ
ー、ロバートソン及びトシェ(Sweeney, Robertson, an
d Tocher)によって開発されたSRTアルゴリズムが知ら
れている。SRTアルゴリズムは、整数又は小数の平方根
の他、それらの数どうしの商を演算処理するために、コ
ンピュータ上で用いられる。SRT除算アルゴリズムがハ
ードウェア又はソフトウェアで実行される限り、より高
い処理速度と低コストとが実現される。そのため、一般
的に、このアルゴリズムのハードウェアへのインプリメ
ンテーションは、好まれている。
【0007】
【発明が解決しようとする課題】このSRTアルゴリズム
は、パイプライン処理や並列処理等のデータ処理技術に
よってより高速化され得る。パイプライン処理は、同時
に実行される処理数を高めるものであり、ある大きなタ
スクを、単一なハードウェアユニット上の連続した各段
階で同時に実行される複数の小タスクに分割して処理す
るものである。一方、並列処理は、別々のハードウェア
ユニットで大きなタスクを同時に実行することにより同
時に実行される処理の量を増大させる。従って、SRTア
ルゴリズムを高速化するためには、ハードウエア及びソ
フトウエアを高性能化することが必要になる。
【0008】本発明は、全体のクロックサイクルにおい
て商数字を推測することにより、整数又は小数に関する
除算及び平方根の演算に用いられるSRTアルゴリズムに
基づく演算処理を高速化することができる演算処理回路
及び演算処理方法並びに演算処理システムを提供するこ
とにある。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、本発明に係る演算処理回路は、バイナリ形式で表さ
れる除数と被除数との商を求める演算処理を行う演算処
理回路であって、複数のシリアル接続された部分剰余段
を有する部分剰余データパスと、複数のシリアル接続さ
れた商数字段を含む複数の完全並列商数字選択パスとを
備えている。
【0010】前記部分剰余データパスは、第1部分剰余
段と、連続部分剰余段とを含む。前記第1部分剰余段
は、第1部分剰余、第1除数及び第1部分商を含む所定
の数値群を取り込んで、第2部分剰余、第2除数及び第
2部分商を出力として生成して、該出力を前記第1部分
剰余段の次段に当たる前記部分剰余段の一つへの入力と
するものである。
【0011】前記連続部分剰余段は、前段の部分剰余、
前段の除数及び前段の部分商を前記部分剰余段の前段に
当たる前記部分剰余段の一つから入力として取り込ん
で、連続部分剰余、連続除数及び連続部分商を出力とし
て生成して、該出力を前記各部分剰余段の次段に当たる
部分剰余段への入力とするものである。
【0012】また、前記完全並列商数字選択パスは、第
1商数字選択パスと、連続スタガ商数字選択パスとを含
む。前記第1商数字選択パスは、第1部分剰余、第1部
分剰余に第1除数を加えた数及び第1部分剰余から第1
除数を引いた数を含む所定の数値群を入力として取り込
む第1商数字段と、当該第1商数字選択パスの当該各商
数字段の前段に当たる商数字段から選択された商数字を
入力として取り込んで、当該各商数字段の次段に当たる
商数字段へ連続商数字を出力として生成する連続商数字
段と、部分剰余データパスの対応する部分剰余段におい
て新たな部分剰余候補数値を選択するための商数字を出
力として生成する最終商数字段とを有するものである。
【0013】前記連続スタガ商数字選択パスは、部分剰
余データパスの一連の部分剰余段において対応する部分
剰余段から出力された部分剰余を入力として取り込む第
1商数字段と、各選択パスの前記各商数字段の前段に当
たる商数字段から選択された商数字を入力として取り込
んで、各選択パスの前記各商数字段の次段に当たる商数
字段へ新たな商数字を出力として生成する連続商数字段
と、部分剰余データパスの対応する部分剰余段において
新たな部分剰余を選択するための商数字を出力として生
成する最終商数字段とを有するものである。
【0014】上記構成を備えた本発明に係る演算処理回
路によれば、パイプライン処理による並列処理用の固有
データ構造により、クロックサイクルにおける全商数字
の推測演算の並列処理化が可能になり、生成された1商
数字当たりのゲート遅延数が最小化されることになる。
【0015】また、本発明に係る他の演算処理回路は、
バイナリ形式で表される除数と被除数との商を求める演
算処理を行う演算処理回路であって、複数のシリアル接
続された部分剰余段を有する部分剰余データパスと、複
数の商数字選択パスとを備えている。
【0016】前記部分剰余データパスは、第1部分剰余
段と、連続部分剰余段とを含む。前記第1部分剰余段
は、第1除数、第1部分剰余、第1部分剰余に第1除数
を加えた数、第1部分除数から第1除数を引いた数及び
第1部分商を含む所定の数値群を取り込んで、複数の第
2部分剰余候補数値、第2除数及び第2部分商を出力と
して生成して、該出力を前記第1部分剰余段の次段に当
たる前記部分剰余段の一つへの入力とするものである。
【0017】前記連続部分剰余段は、前段の除数、前段
の部分剰余、前段の部分剰余に前段の除数を加えた数及
び前段の部分除数から前段の除数を引いた数を入力とし
て取り込んで、連続部分剰余候補数値、連続除数及び連
続部分商を出力として生成して、該出力を前記各部分剰
余段の次段に当たる部分剰余段への入力とするものであ
る。この場合に、前段の部分剰余、前段の部分剰余に前
段の除数を加えた数及び前段の部分除数から前段の除数
を引いた数は、前記各部分剰余段の前段に当たる前記部
分剰余段から出力された複数の部分剰余候補数値から選
択されている。
【0018】前記商数字選択パスは、部分剰余データパ
スの対応する部分剰余段において新たな部分剰余候補数
値を選択するための商数字を出力として生成するもので
ある。
【0019】上記構成を備えた本発明に係る演算処理回
路によれば、部分剰余データパスの三重冗長データ構造
により、商数字の推測がより簡単に行えることになる。
【0020】また、本発明に係る演算処理方法は、除数
と被除数との商を求める演算処理を行う演算処理回路を
用いた演算処理方法であって、除数、部分剰余、部分剰
余に除数を加えた数、部分除数から除数を引いた数及び
部分商を含む所定の数値群を取り込んで、複数の商数字
並列推測演算を実行して、新たな商数字群に展開するも
のである。
【0021】係る演算処理方法における商数字並列推測
演算を実行する工程は、更に、前記所定の数値群に基づ
いて第1商数字を演算する工程と、前記所定の数値群に
基づいて各連続商数字を求めるために推測演算を実行し
て、複数の商数字候補数値を生成する工程と、既に選択
された商数字に基づいて前記各連続商数字として前記複
数の商数字候補数値のうちの一つを選択する工程とを含
む。
【0022】更に、本発明に係る演算処理回路を用いた
他の演算処理方法は、除数と被除数との商を求める演算
処理方法であって、除数、部分剰余、部分剰余に除数を
加えた数、部分除数から除数を引いた数及び部分商を含
む所定の数値群を取り込んで、複数の商数字並列推測演
算を実行して、新たな部分剰余数値群に展開するもので
ある。
【0023】係る演算処理方法における新たな部分剰余
数値群に展開する工程は、前記所定の数値群に基づいて
第1の複数の部分剰余候補数値を定める工程と、対応す
る商数字に基づいて前記第1の複数の部分剰余候補数値
を選択して新たな部分剰余数値群を生成する工程と、既
に選択された新たな部分剰余数値群に基づいて連続複数
の部分剰余候補数値を定める工程と、対応する商数字に
基づいて前記連続複数の部分剰余候補数値を選択して新
たな部分剰余数値群を選択する工程とを含む。
【0024】また、本発明に係る演算処理システムは、
プロセッサと、プロセッサに接続されたメモリと、該プ
ロセッサ及び該メモリに接続され、バイナリ形式で表さ
れる除数と被除数との商を求める演算処理を行う演算処
理回路とを備え、複数のシリアル接続された部分剰余段
を有する部分剰余データパスと、複数のシリアル接続さ
れた商数字段を含む複数の完全並列商数字選択パスとを
備えたものである。
【0025】
【発明の実施の形態】以下、本発明の一実施の実施の形
態を図面を参照して説明する。
【0026】(1)SRTアルゴリズムの改良したコンピ
ュータインプリメンテーション 以下に、SRTアルゴリズムのコンピュータインプリメン
テーションに関する概念について説明する。図1は、サ
ンマイクロシステムズのウルトラスパークシステムに使
用される改良したSRT除算/平方根処理回路を示したも
のである。スパークアーキテクチャに関する背景技術
は、スパークアーキテクチャマニュアル(デイビッド
エル ウィーバー及びトム ゲーモンド−1994年プレ
ンティスホール)に基づいたものである。ここで、「Su
n」、「Sun Microsystems」及び「Sun Logo」は、アメ
リカ合衆国及びその他の国のサンマイクロシステムズイ
ンコーポレーテッドの商標又は登録商標である。また、
登録商標「UltraSPARCTM」及び他の登録商標「SPAR
CTM」は、ライセンス契約の下で使用されるアメリカ合
衆国及びその他の国のスパークインターナショナルイン
コーポレーテッドの商標である。登録商標「SPARCTM
を付した製品は、サンマイクロシステムズインコーポレ
ーテッドにより開発されたコンピュータアーキテクチャ
に基づいたものである。
【0027】図1に示した除算/平方根処理回路は、並
列処理による商数字選択概念を用いるものであり、それ
によれば、商数字qi+1の選択は、商数字qiが実際に決定
される前に初期化される。商数字qiに関する情報は、商
数字qi+1を計算するためにできるだけ近いクロックサイ
クルで使用される。また、回路は、以降の処理で用いら
れる部分剰余PRをPRi+1=2PRi - qi+1Dなる式により計算
する。ここで、qは、商数字(-1, 0, 1)であり、前の部
分剰余の値により単独に決定され、除数Dから独立した
値である。商の選択は、次の幾つかの商数字の値を仮定
するプロセスを経てなされる。これらの仮定は、同一の
ハードウエアを使用した並列処理により検証され得る。
例えば、図1に示した回路は、同一の商数字推測論理回
路を複数用いて、そのクロックサイクルにおける段の商
数字推測演算を実行し、複数のマルチプレクサが直ちに
その推測演算値から商数字を選択する。この商選択概念
については、米国特許出願第08/498,424に記載され、こ
の他にも関連技術を記載したものとして、米国特許出願
第08/498,397号、米国特許出願第08/498,424号及び米国
特許出願第08/648,410号が挙げられる。
【0028】図1によれば、部分剰余PR、除数D及びそ
の補数D\、冗長部分商Q, Q-1及びマスク値が図示しな
いフリップフロップから入力される。乗算器105は、部
分剰余数字を1ディジット分だけシフトさせて、その部
分剰余に2を乗算する。2PRで表される数字は、商選択回
路110に入る。商選択回路110は、部分剰余のうち高位5
桁の数字を検証して、次の商数字が-1, 0又は1であるか
どうかを決定する。これにより、商数字選択パスが始ま
る。
【0029】この検証の間、3つの推測計算が第2商数字
について行われている。すなわち、2つの8ディジットキ
ャリーセーブ加算器111a, 111b及び3つの乗算器112a-c
が2PR+D及び2PR-Dの高位桁ディジットを計算する。商選
択回路113a-cは、各々、2(PR+D), 2(2PR)及び2(2PR-D)
で表される数値を取り込む。更に、7つの推測演算値が
直ちに初期化され、第3商数字が求められる。すなわ
ち、4つの6ディジットキャリーセーブ加算器115a-d及び
7つの乗算器116a-g (乗算器105と同一構成)が、4PR+3D,
4PR+2D, 4PR+D, 4PR, 4PR-D, 4PR-2D及び4PR+3Dで表さ
れる数値を生成する。乗算器116a-gは、各数値を各々、
商選択回路117a-f(商選択回路113a-cと同一構成)へ出力
する。
【0030】初期値2PRで表される数値は、また、3入力
1出力のマルチプレクサ120へ直接送られる。これによ
り、部分剰余データパスが始まる。マルチプレクサ120
は、また、2PR+D及び2PR-Dで表される数値を各々保持す
る2つの59ディジットキャリーセーブ加算器122a, 122b
の出力を取り込む。商選択回路110により選択された第1
商数字に基づいて、マルチプレクサ120への3つの入力(2
つの59ディジット数値入力及び乗算器105の出力)のうち
どれかが新たな部分剰余として決定される。2PR+D, 2PR
又は2PR-Dで表される数値のうちいずれかが新たな部分
剰余として選択される。これらの各数値は、その第1商
数字の数値である-1, 0又は1に、各々、対応している。
【0031】一方、商数字選択パスにおいて、第1及び
第2商数字は、カスケード接続されたマルチプレクサ130
へ入力され、これにより、第3商数字として商選択回路1
17a-fにより生成された7つの推測商数字選択演算値のう
ち適当なものが選択される。その第3商数字に基づい
て、マルチプレクサ132からの3つの59ディジット加算値
のうちどれかが新たな第3部分剰余として決定される。
その数値は、除算処理の次の処理用にフリップフロップ
に記憶される。そのプロセスは、全ディジット(53又は6
0ディジット)が計算されるまで続けられる。
【0032】図1に示した回路は、3つの商数字を1クロ
ックサイクルで計算する。1クロックサイクル当たりク
リティカルパスの長さは、商数字選択パスにより決定さ
れ、そのゲート遅延数は、1 x QSLC5 + 2 x CSA + 3 x
MUX = 1 x 5 + 2 x 1.5 + 3x 1 = 11で示されるよう
に、11である(「QSLC5」は、商選択回路、「CSA」は、
キャリーセーブ加算器、「MUX」は、マルチプレクサを
示す。以下同じ。)。
【0033】従って、ウルトラスパーク除算/平方根処
理回路は、商数字推測用に2段先まで監視して11のゲー
ト遅延の間に3つの商数字を生成する。回路は、より多
くの商数字を推測するために拡張することができる。図
1に示した論理構造は、より簡単には、図2のように表
される。ここで、例えば、QSLC5 x 3は、3つの同じ商選
択回路(以下単に、「QSLC5」とする)回路を示す。この
簡略化表記は、以下の図にも用いている。
【0034】図3は、第2のウルトラスパーク除算/平
方根処理回路の一部を示したものであり、第4商数字を
生成する。第2及び第3商数字とは異なり、第4商数字の
選択は、第1商数字の選択と並列して行われない。第4商
数字の選択は、データパスの初期でなされる。図4によ
れば、商数字qi+3の選択は、商数字qiに基づいて部分剰
余PRが決定されると同時に始まる。従って、第4商数字
の選択は、第1の新たな部分剰余が計算されると同時に
初期化される。しかし、図4のように並列処理を改良し
ても、全体の遅延は、商選択論理回路がクリティカルパ
ス上にあるため免れない。従って、1クロックサイクル
当たりで複数の商数字の演算が可能であり、しかも、遅
延のない除算/平方根演算回路が必要になる。
【0035】以下に、本発明の種々の実施の形態を添付
した図面を参照して詳細に説明する。以下の説明におい
ては、全図を通して同一のものには、できる限り同一の
符号を用いている。
【0036】(2)商数字選択の並列処理 図5に示した回路500は、予め十分な時間的余裕をもっ
て、以降の商数字を推測することによりクリティカルパ
スを外れたところに商数字選択パス510を配置してい
る。部分剰余PRiが入力されると、回路は、31個の商選
択回路515による部分剰余PRi+5を選択するための商数字
の推測処理を初期化する。この設計によれば、商数字選
択パス510のデータは、第1の部分剰余データパス520(5
レイヤ:530a-d及び540)のデータとほぼ同程度の多くの
マルチプレクサレイヤ(5レイヤ:520a-d及び540)にでく
わす。その結果、商数字選択は、4回の加算を実行する
のみで達成され、CSA遅延は、3程度で済む。
【0037】商選択論理回路の処理量は、商数字選択パ
スのマルチプレクサをそのパスのできるだけ最初の方へ
もってくることにより大幅に減ずることができる。図6
に示したように、マルチプレクサ602, 604を商数字選択
パスの最初の方へもってくることにより、31個の商選択
回路の代わりに7個の商選択回路(商選択回路515と同一
構成)が必要になるだけで済む。図5及び6に各々図示
される回路500, 600の回路全体では、1 x QSLC5 + 3 x
CSA + 5 x MUX = 1 x 5 + 3 x 1.5 + 5 x 1 =13.5の式
で表されるように、5つの商数字に対して13.5のゲート
遅延、すなわち、1商数字当たり2.7のゲート遅延とな
り、部分剰余データパスの1商数字当たりのゲート遅延
2.5とほぼ同程度である。一般的には、ウルトラスパー
ク(UltraSPARCTM)用の回路は、3つの商数字当たりゲー
ト遅延数が11、すなわち、1つの商数字当たりゲート遅
延が3.66となる。ゲート遅延としての13.5という値は、
論理演算用としては理想的な値であり、リスク(RISC)方
式での1クロックサイクルに対応したものになる。
【0038】商数字qa, qb, qc, qd及びqeの演算は、実
質的には2つの処理工程を経て行われる。図7によれ
ば、回路700は、商数字選択パス710を、ほぼ同一の遅延
を示す5個のブロックに分割する。本発明によれば、5個
の同一構成である商選択論理回路は、図8に示したよう
にスタガパイプライン形態で配置され、これにより完全
商数字選択システムを構成する。回路800の全体遅延
は、13.5のゲート遅延よりは幾らか多いが15以下のゲー
ト遅延に収まる。その遅延は、各論理ブロックA, B, C,
D及びEの遅延がどの程度の整合がとれているかに依存
する。
【0039】部分剰余データパスにおける1クロックサ
イクル当たりの段数は、簡単に調整でき、かつ、商数字
ルックアヘッド回路の段数に依存したものではない。必
要なことは、各クロックサイクルの最終で後続演算用に
中間値をラッチさせることである。例えば、図9に示し
た回路900は、同一の5段ルックアヘッド回路を備えてい
るが、その回路は、1クロックサイクル当たり、4段の処
理を行うものである。この配置によれば、ゲート遅延
は、約12である。図10に示した回路1000は、同一の5
段ルックアヘッド回路を備えているが、その回路は、1
クロックサイクル当たり、3段の処理を行うものであ
り、ゲート遅延は、約9である。図11に示した回路110
0は、同一の5段ルックアヘッド回路を備えているが、そ
の回路は、1クロックサイクル当たり、2段の処理を行う
ものであり、ゲート遅延は、約6である。また、図12
に示した回路1200は、1クロックサイクル当たり、1段の
処理しか行わず、ゲート遅延は、約3である。この1商数
字当たりの遅延は、本発明の他の実施例により更に改良
することができる。
【0040】(3)部分剰余の三重冗長表現 図13は、除算/平方根処理回路の一部であり、部分剰
余データパスに関する部分である。図14は、この部分
剰余データパスの変形例を示したものであり、部分剰余
として三重冗長表現を利用している。基数2による処理
工程では、数値PR+D及びPR-Dが数値PRとともに回路に入
力される。これらの数値は、処理された後、5個の数値2
PR+2D, 2PR+D, 2PR, 2PR-D及び2PR-2Dとして生成され
る。選択された商数字の値に応じて、これら5個の数値
のうち3個の数値が先へ進められる。商数字が-1である
場合、最初の3個の数値が先へ進められ、商数字が0であ
る場合、中間の3個の数値が先へ進められ、商数字が1で
ある場合、最後の3個の数値が先へ進められる。
【0041】従来のウルトラスパーク(UltraSPARCTM)の
設計における商選択機能は、5個の部分剰余の数字位置
を検証することにより、除算処理が正確である場合に、
部分剰余が負数ではない(すなわち、0である)ことを保
証するものである。この保証がなければ、商は、大きす
ぎる値になり、部分剰余は、除数の負数に等しくなるこ
とがある。このような状況は、冗長表現した部分商Q-1
により補正可能である。しかし、部分剰余が除数の負数
に等しいかどうかを決定するには、他の処理工程が必要
になり、その処理工程は、システムに大きな遅延をもた
らす。
【0042】本発明によれば、このような遅延は、回避
され得る。三重冗長部分剰余の表現を用いれば、部分剰
余が除数の負数に等しくないことをPR+Dにより確実にす
ることができる。PR及びPR+Dについてなされる0の検出
は、PRに関しての符号検出と同時に行われる。符号検出
の結果に基づいて、2つの0検出のうちいずれを用いて除
算が正確であったかどうかを示すかが決定される。
【0043】三重冗長剰余表現の結果、ウルトラスパー
ク(UltraSPARCTM)の回路で5つの数字位置をとったもの
より簡単な商選択論理回路を用いることができ、これに
よれば、部分剰余の4つの数字位置のみが検証され得
る。図6に示したように、商選択回路QSLC5は、より小
型で高速な商選択回路QSLC4に置き換えることができ
る。この置き換えは、ゲート遅延を13.5から13に減らす
ことができ、これにより、約0.5の遅延が短縮できる。
更に、図5及び図6に示した回路においては、商数字選
択パスの部分剰余に、最高3個の追加分について実行す
ることが必要であるため、3段のCSA遅延が起こる。三重
冗長表現を用いることにより、数値PR+D, PR-Dで開始す
るため、図14の回路は、CSA遅延が2段で済む。これに
より、追加分の1.5のゲート遅延に基づいた商数字選択
パスの遅延が除去され、約11.5のゲート遅延で済む。換
言すれば、商数字選択は、クリティカルパス上には存在
しない。その代わりに、回路全体の遅延は、ゲート遅延
が12.5である部分剰余演算パスにより決定されることに
なる。
【0044】本発明は、より高い基数を用いることより
も、冗長形式の基数2によるアルゴリズムを高速化する
ことをもくろんでなされたものであるが、図14に示し
た回路により実行されるいくつかの処理工程は、基数4
となるよう組み合わせることができる。例えば、部分剰
余データパスにおける2つの連続した基数2の処理工程
は、基数4での加算処理を実行するのと同じ結果を得る
ように組み合わせることができる。この組み合わせは、
図15に示した論理でのインプリメンテーションが可能
であり、2つのCSA-MUXレイヤが1つのCSA-MUX-MUXレイヤ
へ組み合わされる。この手法は、1個のCSAにつき2つの
商数字が生成される4つの59ディジットCSAの代わりに、
6つの59ディジットCSAを必要とする。これによれば、商
数字選択パスは、再び、クリティカルパスになる。ま
た、図15に示した構成では、信号qaは、多くのマルチ
プレクサを作動させる一方で、信号qbは、その約3分の
1を作動させる。図16に示したようにマルチプレクサ
の順序を反対にしても、それ以上の遅延を招くことなく
信号のロードの平衡を保つ。
【0045】図17は、本発明の一実施の形態に係る三
重冗長剰余表現を用いた除算/平方根処理回路を示し、
その回路は、1クロックサイクル当たり6個の商数字を計
算することができる。仮に、図5に示した商選択設計を
拡張して、5段先を先取りする代わりに6段先を先取りす
るために拡張したとすると、必要なハードウエアは広範
囲にわたる。しかし、データパスの初期の段階で、論理
を共有し、マルチプレクサを移動すれば、必要なハード
ウエアを少なくすることができる。
【0046】(4)商数字選択並列処理と三重冗長部分
剰余PRのインプリメンテーション 図18は、本発明の一実施の形態に係る除算/平方根処
理回路1800を示し、この除算/平方根処理回路1800は、
6段の完全並列商選択パス1810と、三重冗長表現による6
段の部分剰余データパス1820とを備えている。図19
は、6段ルックアヘッド回路を備えた、図18に示した
ものと同じ回路を簡略的に示したものである。図20
は、その変形例を示したものであり、6段ルックアヘッ
ド回路をを備え、1クロック当たり部分剰余データパス
を4段とした回路を示したものである。図21は、他の
変形例を示したものであり、6段ルックアヘッド回路
と、1クロック当たり部分剰余データパスを2段とした回
路を示したものである。
【0047】ここで、図17に示した点Xにおける情報
は、商数字qe及びqfを計算するために用いられる。qf
演算は、3段階のCSAにおる処理を必要とする。従って、
点Xからqfまでの遅延は、3 x CSA + 1 x QSLC5 + 5 x M
UX = 3 x 1.5 + 1 x 4.5 +5 x 1 = 14となる。qfにより
制御されるマルチプレクサからの遅延と全体遅延との和
は、15、すなわち、生成された1商数字当たり2.5のゲー
ト遅延となり、この値は、図5の5段ルックアヘッド回
路と比較しうるものである。
【0048】(5)推測除算処理回路 商数字選択は、平方根処理を取りやめ、除算専用とする
ことにより、更に、高速化され得る。すなわち、部分剰
余データパスにおける各段での新たな除数値を演算する
構成に代えて、部分剰余データパスでの各段が除数値と
して一定の定数値を生成する構成とすればよい。
【0049】商選択論理は、検証が必要な部分剰余の数
字の数を少なくすることにより、より簡単にすることが
できる。その一つの方法として、被除数と除数とを基準
化することが挙げられる。最初の除数Dについて関数と
して選ばれる同じ数値mを被除数と除数とに乗算するこ
とにより、同一の商が計算される。剰余は、同一ではな
いがその符号と"0であること"とは同一であり、商の正
確な丸めに適している。
【0050】例えば、被除数と除数とは、数値4分の3を
用いて基準化され、除数が2分の1と4分の3との間で用い
られることが確認される。図22は、4分の3を用いて条
件付き基準化を実行するプリスケーリング回路を示し、
除数が2分の1と4分の3との間になるようにする回路であ
る。この回路では、除数としての基準化パスは、全加算
器220を必要とするが、これは、部分剰余データパスに
おいて除数が単一の59ビットの数になるようにするため
である。しかし、被除数としての基準化パスは、全加算
器を必要とせず、これは、部分剰余データパスがキャリ
ーセーブ形式、例えば、2個の59ビットの数値であるも
のとして、部分剰余を処理するからである。
【0051】本発明に従って除数を基準化すれば、除算
回路は、以降の部分剰余の3ディジットを生成して、商
数字を生成すればよい。特に、基数2の除算において
は、除数Dが2分の1以上で4分の3未満とすれば、mを1と
し、除数Dが4分の3以上で1未満とすれば、mを4分の3と
する。そうすれば、新たな除数Dが2分の1以上で4分の3
未満という条件を満たし、各処理工程において、2倍さ
れた部分剰余2PRは、常に、-2分の3以上2分の3未満とい
う条件を満たすことになる。更に、キャリーセーブ表現
を圧縮することにより得られる適当な部分剰余は、常
に、集合{-2, -2分の3, -1, -2分の1, 0, 2分の1, 1}の
要素となる。その結果、部分剰余の4個の数字位置の検
証よりも、3個の数字位置の検証が必要になるが、これ
は、取り得る部分剰余の値を表現するために、3個のデ
ィジットよりもむしろ、2個のディジットのみがバイナ
リポイントの左側に必要になるからである。この基準化
概念の一つの利点は、4分の3の倍数を特に形成しやすい
ことである。つまり、最初の除数の2個のバイナリ倍数
の加算を必要とするだけである。
【0052】このスケーリング概念は、表1に示した通
りである。
【0053】
【表1】
【0054】図23に示したチャートは、部分剰余(縦
軸)の最初の4個のディジットの関数としての商の選択
と、除数値(横軸)とを図表的に示したものである。例え
ば、部分剰余の最初の4個の数字が1111で、除数値が8分
の5であるとすると、商数字は、-1又は0として選択され
る。2分の1から4分の3の間にある除数を基準化すること
は、処理範囲を2分の1に縮める。すなわち、チャートの
左側のみ(横軸座標で2分の1から4分の3まで)が関連する
数になる。更に、より高速な商数字選択は、基準化した
除数の上限が厳密に1より小さい範囲にある場合、例え
ば、基準化した除数mDが2分の1以上で4096分の4095未満
である場合になされるものである。
【0055】更に、mの倍数に依存するより精巧な基準
化概念は、2個の加数から形成できる。その概念を表2
及び表3に示す。
【0056】
【表2】
【0057】
【表3】
【0058】このような被除数及び除数の基準化は、商
数字選択論理回路を簡単にする。
【0059】この改良された概念によれば、ゲート遅延
が約13、すなわち、1数字当たりのゲート遅延が2.2、の
範囲内にある6個の数字を生成することが可能になる。
【0060】以上、本発明に係る演算処理回路及びそれ
を用いた演算処理方法について、各種の実施の形態を示
したが、本発明は、このような実施の形態に限定される
ものではなく、種々の変形例が可能である。例えば、上
記した各種の演算処理回路及びそれを用いた演算処理方
法は、汎用ディジタル計算機システムの一部として動作
する集積回路チップや、演算処理装置とメモリとを備え
た汎用デジタル計算機システムにインプリメンテーショ
ンしてもよい。
【0061】
【発明の効果】本発明に係る除算/平方根回路によれ
ば、全体のクロックサイクルにおいて商数字を推測する
ことにより、整数又は小数に関する除算及び平方根の演
算に用いられるSRTアルゴリズムを高速化することがで
きる。商数字当たりのゲート遅延数の極小化は、部分剰
余の冗長表現と、論理のインプリメンテーションに適し
た完全並列商数字推測概念とを用いることにより達成さ
れる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るウルトラスパーク
(UltraSPARCTM)の除算/平方根処理回路の論理構成を
示した概略図である。
【図2】本発明の一実施の形態に係るウルトラスパーク
(UltraSPARCTM)の除算/平方根処理回路の論理構成を
簡略的に示した概略図である。
【図3】本発明の一実施の形態に係るウルトラスパーク
(UltraSPARCTM)の2つのカスケード接続された除算/
平方根処理回路の論理構成を示した概略図である。
【図4】本発明の一実施の形態に係る2つのカスケード
接続された除算/平方根処理回路であって、並列処理を
改良した論理構成を示した概略図である。
【図5】本発明の一実施の形態に係る除算/平方根処理
回路であって、5段ルックアヘッド回路を設けた論理構
成を示した概略図である。
【図6】本発明の一実施の形態に係る除算/平方根処理
回路であって、5段ルックアヘッド回路を設けるととも
に、マルチプレクサの配置を改良した論理構成を示した
概略図である。
【図7】本発明の一実施の形態に係る除算/平方根処理
回路であって、5段ルックアヘッド回路を設けるととも
に、マルチプレクサの配置を改良した論理構成を簡略的
に示した概略図である。
【図8】本発明の一実施の形態に係る除算/平方根処理
回路であって、5段ルックアヘッド回路と完全パイプラ
イン処理用並列回路とを設けた論理構成を示した概略図
である。
【図9】本発明の一実施の形態に係る除算/平方根処理
回路であって、5段ルックアヘッド回路を設け、1クロッ
ク当たり4段とした論理構成を示した概略図である。
【図10】本発明の一実施の形態に係る除算/平方根処
理回路であって、5段ルックアヘッド回路を設け、1クロ
ック当たり3段とした論理構成を示した概略図である。
【図11】本発明の一実施の形態に係る除算/平方根処
理回路であって、5段ルックアヘッド回路を設け、1クロ
ック当たり2段とした論理構成を示した概略図である。
【図12】本発明の一実施の形態に係る除算/平方根処
理回路であって、5段ルックアヘッド回路を設け、1クロ
ック当たり1段とした論理構成を示した概略図である。
【図13】本発明の一実施の形態に係るウルトラスパー
ク(UltraSPARCTM)の除算/平方根処理回路の論理構成
の一部を示した概略図である。
【図14】本発明の一実施の形態に係る基数2による除
算/平方根処理回路であって、三重冗長部分剰余を用い
た論理構成を示した概略図である。
【図15】本発明の一実施の形態に係る基数4による除
算/平方根処理回路であって、三重冗長部分剰余を用い
た論理構成を示した概略図である。
【図16】本発明の一実施の形態に係る基数4による除
算/平方根処理回路であって、三重冗長部分剰余を用い
るとともに、マルチプレクサの配置を反対にした論理構
成を示した概略図である。
【図17】本発明の一実施の形態に係る除算/平方根処
理回路に三重冗長部分剰余を入力する論理構成と6段先
までの回路とを設けた論理構成を示した概略図である。
【図18】本発明の一実施の形態に係る除算/平方根処
理回路であって、6段ルックアヘッド商選択回路を設け
た論理構成を示した概略図である。
【図19】本発明の一実施の形態に係る除算/平方根処
理回路であって、6段ルックアヘッド回路を設け、1クロ
ック当たり6段とした論理構成を簡略的に示した概略図
である。
【図20】本発明の一実施の形態に係る除算/平方根処
理回路であって、6段ルックアヘッド回路を設け、1クロ
ック当たり4段とした論理構成を簡略的に示した概略図
である。
【図21】本発明の一実施の形態に係る除算/平方根処
理回路であって、6段ルックアヘッド回路を設け、1クロ
ック当たり2段とした論理構成を簡略的に示した概略図
である。
【図22】本発明の一実施の形態に係る除算/平方根処
理回路のプリスケーリング回路を示した概略図である。
【図23】部分剰余と除算との関数として表される商数
字選択用チャートである。
【符号の説明】
PR 部分剰余 D 除数 Q 商数字 110, 113a-c, 117a-f 商選択回路 111a-b, 122a-b, 115a-d キャリセーブ加算器 120, 125, 130, 132 マルチプレクサ 500 除算/平方根演算処理回路 510 商数字選択パス 515 商選択回路 520 部分剰余データパス 520a-d, 530a-d, 540 マルチプレクサ 600 除算/平方根演算処理回路 602, 604 マルチプレクサ 612 商選択回路 700 除算/平方根演算処理回路 1800 除算/平方根演算処理回路 1810 完全並列商選択商選択パス 1820 部分剰余データパス

Claims (60)

    【特許請求の範囲】
  1. 【請求項1】 バイナリ形式で表される除数と被除数と
    の商を求める演算処理を行う演算処理回路であって、複
    数のシリアル接続された部分剰余段を有する部分剰余デ
    ータパスと、複数のシリアル接続された商数字段を含む
    複数の完全並列商数字選択パスとを備え、 前記部分剰余データパスは、第1部分剰余段と、連続部
    分剰余段とを含み、 前記第1部分剰余段は、第1除数、第1部分剰余及び第
    1部分商を含む所定の数値群を取り込んで、第2部分剰
    余、第2除数及び第2部分商を出力として生成して、該
    出力を前記第1部分剰余段の次段に当たる前記部分剰余
    段の一つへの入力とするものであり、 前記連続部分剰余段は、前段の除数及び前段の部分剰余
    を前記部分剰余段の前段に当たる前記部分剰余段の一つ
    から入力として取り込んで、連続部分剰余、連続除数及
    び連続部分商を出力として生成して、該出力を前記各部
    分剰余段の次段に当たる部分剰余段への入力とするもの
    であり、 前記完全並列商数字選択パスは、第1商数字選択パス
    と、連続スタガ商数字選択パスとを含み、 前記第1商数字選択パスは、第1部分剰余、第1部分剰
    余に第1除数を加えた数及び第1部分剰余から第1除数
    を引いた数を含む所定の数値群を入力として取り込む第
    1商数字段と、当該第1商数字選択パスの当該各商数字
    段の前段に当たる商数字段から選択された商数字を入力
    として取り込んで、当該各商数字段の次段に当たる商数
    字段へ新たな商数字を出力として生成する連続商数字段
    と、部分剰余データパスの対応する部分剰余段において
    新たな部分剰余候補数値を選択するための商数字を出力
    として生成する最終商数字段とを有するものであり、 前記連続スタガ商数字選択パスは、部分剰余データパス
    の一連の部分剰余段において対応する部分剰余段から出
    力された部分剰余を入力として取り込む第1商数字段
    と、各選択パスの前記各商数字段の前段に当たる商数字
    段から選択された商数字を入力として取り込んで、各選
    択パスの前記各商数字段の次段に当たる商数字段へ新た
    な商数字を出力として生成する連続商数字段と、部分剰
    余データパスの対応する部分剰余段において新たな部分
    剰余を選択するための商数字を出力として生成する最終
    商数字段とを有するものであることを特徴とする演算処
    理回路。
  2. 【請求項2】 バイナリ形式で表される整数又は小数の
    平方根を計算するものであることを特徴とする請求項1
    に記載される演算処理回路。
  3. 【請求項3】 前記第1商数字選択パスの前記第1商数
    字段は、対応する部分剰余段から入力として取り込んだ
    4ディジットの部分剰余を検証して商数字の推測演算を
    実行するものであることを特徴とする請求項1に記載さ
    れる演算処理回路。
  4. 【請求項4】 前記被除数及び除数は、少なくとも24
    桁の精度を有していることを特徴とする請求項1に記載
    される演算処理回路。
  5. 【請求項5】 前記被除数及び除数は、複数の定数群の
    うち一つにより予め基準化されて、予め基準化した被除
    数と予め基準化した除数とが生成されることを特徴とす
    る請求項1に記載される演算処理回路。
  6. 【請求項6】 前記複数の定数群のうち一つは、前記除
    数が4分の3未満であるときには1に等しく、該除数が
    4分の3以上であるときには4分の3であることを特徴
    とする請求項5に記載される演算処理回路。
  7. 【請求項7】 予め基準化した除数が4096分の40
    95よりも小さいことを特徴とする請求項5に記載され
    る演算処理回路。
  8. 【請求項8】 前記予め基準化した除数が4分の3より
    も小さいことを特徴とする請求項5に記載される演算処
    理回路。
  9. 【請求項9】 部分剰余の最上位3桁のみが商ビット選
    択パスで検証され、部分剰余候補数値が選択されること
    を特徴とする請求項5に記載される演算処理回路。
  10. 【請求項10】 バイナリ形式で表される除数と被除数
    との商を求める演算処理を行う演算処理回路であって、
    複数のシリアル接続された部分剰余段を有する部分剰余
    データパスと、複数の商数字選択パスとを備え、 前記部分剰余データパスは、第1部分剰余段と、連続部
    分剰余段とを含み、 前記第1部分剰余段は、第1除数、第1部分剰余、第1
    部分剰余に第1除数を加えた数、第1部分除数から第1
    除数を引いた数及び第1部分商を含む所定の数値群を取
    り込んで、第2除数、部分剰余候補数値及び第2部分商
    を出力として生成して、該出力を前記第1部分剰余段の
    次段に当たる前記部分剰余段の一つへの入力とするもの
    であり、 前記連続部分剰余段は、前段の除数及び前段の部分剰余
    を、前記各部分剰余段の前段に当たる前記部分剰余段か
    ら出力された前記部分剰余候補数値から選択して、入力
    として取り込んで、連続除数、連続部分剰余候補数値及
    び連続部分商を出力として生成して、該出力を前記各部
    分剰余段の次段に当たる部分剰余段への入力とするもの
    であり、 前記商数字選択パスは、部分剰余データパスの対応する
    部分剰余段において新たな部分剰余候補数値を選択する
    ための商数字を出力として生成するものであることを特
    徴とする演算処理回路。
  11. 【請求項11】 前記部分剰余候補数値は、前段の部分
    剰余、前段の部分剰余に前段の除数を加えた数及び前段
    の部分剰余から前段の除数を引いた数を含むことを特徴
    とする請求項10に記載される演算処理回路。
  12. 【請求項12】 前記各部分剰余段は、 入力として取り込んだ部分剰余項候補数値と除数とから
    中間の部分剰余候補数値を形成する加算器群と、 部分加算器の出力端子に接続されるとともに対応する商
    数字の端子に接続された入力端子を備えたマルチプレク
    サ群であって、該対応する商数字に応じた部分剰余候補
    数値を選択するマルチプレクサ群と、 新たな部分剰余候補数値を基準化するとともに、基準化
    された候補数値を前記データパスの前記各部分剰余段の
    次段に当たる部分剰余段へ出力するアライメント回路
    と、 を備えたものであることを特徴とする請求項10に記載
    される演算処理回路。
  13. 【請求項13】 整数又は小数の平方根を計算するもの
    であることを特徴とする請求項10に記載される演算処
    理回路。
  14. 【請求項14】 前記被除数及び除数は、少なくとも2
    4桁の精度を有していることを特徴とする請求項10に
    記載される演算処理回路。
  15. 【請求項15】 前記被除数及び除数は、複数の定数群
    のうち一つにより予め基準化されて、予め基準化した被
    除数と予め基準化した除数とが生成されることを特徴と
    する請求項10に記載される演算処理回路。
  16. 【請求項16】 前記複数の定数群のうち一つは、前記
    除数が4分の3未満であるときには1に等しく、該除数
    が4分の3以上であるときには4分の3であることを特
    徴とする請求項15に記載される演算処理回路。
  17. 【請求項17】 予め基準化した除数が4096分の4
    095よりも小さいことを特徴とする請求項15に記載
    される演算処理回路。
  18. 【請求項18】 前記予め基準化した除数が4分の3よ
    りも小さいことを特徴とする請求項15に記載される演
    算処理回路。
  19. 【請求項19】 部分剰余の最上位3桁のみが商ビット
    選択パスで検証され、部分剰余候補数値が選択されるこ
    とを特徴とする請求項15に記載される演算処理回路。
  20. 【請求項20】 1クロックサイクル当たりの部分剰余
    数値群を選択する前記部分剰余段の数は、各商数字選択
    パスの商数字段の数に基づいたものではないことを特徴
    とする請求項10に記載される演算処理回路。
  21. 【請求項21】 各部分剰余段の前記加算器群及び対応
    するマルチプレクサ群は、基数4での加算を実行するた
    めに組み合わされることを特徴とする請求項10に記載
    される演算処理回路。
  22. 【請求項22】 バイナリ形式で表される除数と被除数
    との商を求める演算処理を行う演算処理回路であって、
    複数のシリアル接続された部分剰余段を有する部分剰余
    データパスと、複数のシリアル接続された商数字段を含
    む複数の完全並列商数字選択パスとを備え、 前記部分剰余データパスは、第1部分剰余段と、連続部
    分剰余段とを含み、 前記第1部分剰余段は、第1除数、第1部分剰余、第1
    部分剰余に第1除数を加えた数、第1部分剰余から第1
    除数を引いた数及び第1部分商を含む所定の数値群を取
    り込んで、第2除数、部分剰余候補数値及び第2部分商
    を出力として生成して、該出力を前記第1部分剰余段の
    次段に当たる前記部分剰余段の一つへの入力とするもの
    であり、 前記連続部分剰余段は、前段の除数及び前段の部分剰余
    を、前記各部分剰余段の前段に当たる前記部分剰余段か
    ら出力された前記部分剰余候補数値から選択して、入力
    として取り込んで、連続除数、連続部分剰余候補数値及
    び連続部分商を出力として生成して、該出力を前記各部
    分剰余段の次段に当たる部分剰余段への入力とするもの
    であり、 前記完全並列商数字選択パスは、第1商数字選択パス
    と、連続スタガ商数字選択パスとを含み、 前記第1商数字選択パスは、第1部分剰余、第1部分剰
    余に第1除数を加えた数及び第1部分剰余から第1除数
    を引いた数を含む所定の数値群を入力として取り込む第
    1商数字段と、当該第1商数字選択パスの当該各商数字
    段の前段に当たる商数字段から選択された商数字を入力
    として取り込んで、当該各商数字段の次段に当たる商数
    字段へ新たな商数字を出力として生成する連続商数字段
    と、部分剰余データパスの対応する部分剰余段において
    新たな部分剰余候補数値を選択するための商数字を出力
    として生成する最終商数字段とを有するものであり、 前記連続スタガ商数字選択パスは、部分剰余データパス
    の一連の部分剰余段において対応する部分剰余段から出
    力された部分剰余を入力として取り込む第1商数字段
    と、各選択パスの前記各商数字段の前段に当たる商数字
    段から選択された商数字を入力として取り込んで、各選
    択パスの前記各商数字段の次段に当たる商数字段へ新た
    な商数字を出力として生成する連続商数字段と、部分剰
    余データパスの対応する部分剰余段において新たな部分
    剰余候補数値を選択するための商数字を出力として生成
    する最終商数字段とを有するものであることを特徴とす
    る演算処理回路。
  23. 【請求項23】 バイナリ形式で表される整数又は小数
    の平方根を計算するものであることを特徴とする請求項
    22に記載される演算処理回路。
  24. 【請求項24】 前記部分剰余候補数値は、前段の部分
    剰余、前段の部分剰余に前段の除数を加えた数及び前段
    の部分剰余から前段の除数を引いた数を含むことを特徴
    とする請求項22に記載される演算処理回路。
  25. 【請求項25】 前記第1商数字選択パスの前記第1商
    数字段は、対応する部分剰余段から入力として取り込ん
    だ4ディジットの部分剰余を検証して商数字の推測演算
    を実行するものであることを特徴とする請求項22に記
    載される演算処理回路。
  26. 【請求項26】 前記被除数及び除数は、少なくとも2
    4桁の精度を有していることを特徴とする請求項22に
    記載される演算処理回路。
  27. 【請求項27】 前記被除数及び除数は、複数の定数群
    のうち一つにより予め基準化されて、予め基準化した被
    除数と予め基準化した除数とが生成されることを特徴と
    する請求項22に記載される演算処理回路。
  28. 【請求項28】 前記複数の定数群のうち一つは、前記
    除数が4分の3未満であるときには1に等しく、該除数
    が4分の3以上であるときには4分の3であることを特
    徴とする請求項27に記載される演算処理回路。
  29. 【請求項29】 予め基準化した除数が4096分の4
    095よりも小さいことを特徴とする請求項27に記載
    される演算処理回路。
  30. 【請求項30】 前記予め基準化した除数が4分の3よ
    りも小さいことを特徴とする請求項27に記載される演
    算処理回路。
  31. 【請求項31】 部分剰余の最上位3桁のみが商ビット
    選択パスで検証され、部分剰余候補数値が選択されるこ
    とを特徴とする請求項27に記載される演算処理回路。
  32. 【請求項32】 1クロックサイクル当たりの新たな部
    分剰余数値群を選択する前記部分剰余段の数は、各商数
    字選択パスの商数字段の数に基づいたものではないこと
    を特徴とする請求項22に記載される演算処理回路。
  33. 【請求項33】 各部分剰余段の前記加算器群及び対応
    するマルチプレクサ群は、基数4での加算を実行するた
    めに組み合わされることを特徴とする請求項22に記載
    される演算処理回路。
  34. 【請求項34】 除数と被除数との商を求める演算処理
    を行う演算処理回路を用いた演算処理方法であって、 除数、部分剰余、部分剰余に除数を加えた数、部分除数
    から除数を引いた数及び部分商を含む所定の数値群を取
    り込む工程と、 複数の商数字並列推測演算を実行をする工程とを含み、
    該工程は、更に、 前記所定の数値群に基づいて第1商数字を演算する工程
    と、 前記所定の数値群に基づいて各連続商数字を求めるため
    に推測演算を実行して、複数の商数字候補数値を生成す
    る工程と、 既に選択された商数字に基づいて前記各連続商数字とし
    て前記複数の商数字候補数値のうちの一つを選択する工
    程と、 部分剰余数値群を展開する工程と、を含むことを特徴と
    する演算処理方法。
  35. 【請求項35】 バイナリ形式で表される整数又は小数
    の平方根を計算するものであることを特徴とする請求項
    34に記載される演算処理方法。
  36. 【請求項36】 前記商数字の推測演算は、取り込んだ
    4ディジットの部分剰余数値群を検証して各段の商数字
    の推測演算を実行するものであることを特徴とする請求
    項34に記載される演算処理方法。
  37. 【請求項37】 前記被除数及び除数は、少なくとも2
    4桁の精度を有していることを特徴とする請求項34に
    記載される演算処理方法。
  38. 【請求項38】 前記被除数及び除数は、複数の定数群
    のうち一つにより予め基準化されて、予め基準化した被
    除数と予め基準化した除数とが生成されることを特徴と
    する請求項34に記載される演算処理方法。
  39. 【請求項39】 前記複数の定数群のうち一つは、前記
    除数が4分の3未満であるときには1に等しく、該除数
    が4分の3以上であるときには4分の3であることを特
    徴とする請求項38に記載される演算処理方法。
  40. 【請求項40】 予め基準化した除数が4096分の4
    095よりも小さいことを特徴とする請求項38に記載
    される演算処理方法。
  41. 【請求項41】 前記予め基準化した除数が4分の3よ
    りも小さいことを特徴とする請求項38に記載される演
    算処理方法。
  42. 【請求項42】 部分剰余の最上位3桁のみが商ビット
    選択パスで検証され、部分剰余候補数値が選択されるこ
    とを特徴とする請求項38に記載される演算処理方法。
  43. 【請求項43】 除数と被除数との商を求める演算処理
    を行う演算処理回路を用いた演算処理方法であって、 除数、部分剰余、部分剰余に除数を加えた数、部分除数
    から除数を引いた数及び部分商を含む所定の数値群を取
    り込む工程と、 複数の商数字並列推測演算を実行をする工程と、 部分剰余数値群を展開する工程とを含み、該工程は、更
    に、 前記所定の数値群に基づいて第1の複数の部分剰余候補
    数値を形成する工程と、 対応する商数字に基づいて前記第1の複数の部分剰余候
    補数値を選択して部分剰余数値群を形成する工程と、 既に選択された新たな部分剰余数値群に基づいて連続複
    数の部分剰余候補数値を定める工程と、 対応する商数字に基づいて前記連続複数の部分剰余候補
    数値を選択して新たな部分剰余数値群を選択する工程
    と、 を含むことを特徴とする演算処理方法。
  44. 【請求項44】 バイナリ形式で表される整数又は小数
    の平方根を計算するものであることを特徴とする請求項
    43に記載される演算処理方法。
  45. 【請求項45】 前記被除数及び除数は、少なくとも2
    4桁の精度を有していることを特徴とする請求項43に
    記載される演算処理方法。
  46. 【請求項46】 前記被除数及び除数は、除数について
    の関数として選択された複数の定数群の一つにより予め
    基準化されることを特徴とする請求項43に記載される
    演算処理方法。
  47. 【請求項47】 商数字推測演算を行う工程は、新たな
    部分剰余数値群を展開する工程から生成された三重冗長
    部分剰余数値群に基づいていることを特徴とする請求項
    43に記載される演算処理方法。
  48. 【請求項48】 除数と被除数との商を求める演算処理
    を行う演算処理回路を用いた演算処理方法であって、 除数、部分剰余、部分剰余に除数を加えた数、部分除数
    から除数を引いた数及び部分商を含む所定の数値群を取
    り込む工程と、 複数の商数字並列推測演算を実行をする工程とを含み、
    該工程は、更に、 前記所定の数値群に基づいて第1商数字を演算する工程
    と、 前記所定の数値群に基づいて各連続商数字を求めるため
    に推測演算を実行して、複数の商数字候補数値を生成す
    る工程と、 既に選択された商数字に基づいて前記各連続商数字とし
    て前記複数の商数字候補数値のうちの一つを選択する工
    程と、 部分剰余数値群を展開する工程とを含み、該工程は、更
    に、 前記所定の数値群に基づいて第1の複数の部分剰余候補
    数値を形成する工程と、 対応する商数字に基づいて前記第1の複数の部分剰余候
    補数値を選択して新たな部分剰余数値群を生成する工程
    と、 既に選択された新たな部分剰余数値群に基づいて連続複
    数の部分剰余候補数値を形成する工程と、 対応する商数字に基づいて前記連続複数の部分剰余候補
    数値を選択して新たな部分剰余数値群を選択する工程
    と、を含むことを特徴とする演算処理方法。
  49. 【請求項49】 バイナリ形式で表される整数又は小数
    の平方根を計算するものであることを特徴とする請求項
    48に記載される演算処理方法。
  50. 【請求項50】 前記商数字の推測演算は、取り込んだ
    4ディジットの部分剰余数値群を検証して各段の商数字
    の推測演算を実行するものであることを特徴とする請求
    項48に記載される演算処理方法。
  51. 【請求項51】 前記被除数及び除数は、少なくとも2
    4桁の精度を有していることを特徴とする請求項48に
    記載される演算処理方法。
  52. 【請求項52】 前記被除数及び除数は、除数について
    の関数として選択された複数の定数群の一つにより予め
    基準化されることを特徴とする請求項48に記載される
    演算処理方法。
  53. 【請求項53】 商数字推測演算を行う工程は、新たな
    部分剰余数値群を展開する工程から生成された新たな三
    重冗長部分剰余数値群に基づいていることを特徴とする
    請求項48に記載される演算処理方法。
  54. 【請求項54】 バイナリ形式で表される除数と被除数
    との商を求める演算処理を行う演算処理回路であって、
    複数のシリアル接続された部分剰余段を有する部分剰余
    データパスと、複数の商数字選択パスとを備え、 前記部分剰余データパスは、第1部分剰余段と、連続部
    分剰余段とを含み、 前記第1部分剰余段は、第1除数、第1部分剰余及び第
    1部分商を含む所定の数値群を取り込んで、第2部分剰
    余、第2除数及び第2部分商を出力として生成して、該
    出力を前記第1部分剰余段の次段に当たる前記部分剰余
    段の一つへの入力とするものであり、 前記連続部分剰余段は、前段の除数及び前段の部分剰余
    を前記部分剰余段の前段に当たる前記部分剰余段の一つ
    から入力として取り込んで、連続部分剰余、連続除数及
    び連続部分商を出力として生成して、該出力を前記各部
    分剰余段の次段に当たる部分剰余段への入力とするもの
    であり、 前記商数字選択パスは、部分剰余データパスの対応する
    部分剰余段において新たな部分剰余候補数値を選択する
    ための商数字を出力として生成するものであることを特
    徴とする演算処理回路。
  55. 【請求項55】 前記被除数及び除数は、複数の定数群
    のうち一つにより予め基準化されて、予め基準化した被
    除数と予め基準化した除数とが生成されることを特徴と
    する請求項54に記載される演算処理回路。
  56. 【請求項56】 前記複数の定数群のうち一つは、前記
    除数が4分の3未満であるときには1に等しく、該除数
    が4分の3以上であるときには4分の3であることを特
    徴とする請求項55に記載される演算処理回路。
  57. 【請求項57】 予め基準化した除数が4096分の4
    095よりも小さいことを特徴とする請求項55に記載
    される演算処理回路。
  58. 【請求項58】 前記予め基準化した除数が4分の3よ
    りも小さいことを特徴とする請求項55に記載される演
    算処理回路。
  59. 【請求項59】 部分剰余の最上位3桁のみが商ビット
    選択パスで検証され、部分剰余候補数値が選択されるこ
    とを特徴とする請求項55に記載される演算処理回路。
  60. 【請求項60】 プロセッサと、プロセッサに接続され
    たメモリと、該プロセッサ及び該メモリに接続され、バ
    イナリ形式で表される除数と被除数との商を求める演算
    処理を行う演算処理回路とを備えた演算処理システムで
    あって、 複数のシリアル接続された部分剰余段を有する部分剰余
    データパスと、複数のシリアル接続された商数字段を含
    む複数の完全並列商数字選択パスとを備え、 前記部分剰余データパスは、第1部分剰余段と、連続部
    分剰余段とを含み、 前記第1部分剰余段は、第1除数、第1部分剰余、第1
    部分剰余に第1除数を加えた数、第1部分除数から第1
    除数を引いた数及び第1部分商を含む所定の数値群を取
    り込んで、第2除数、部分剰余候補数値及び第2部分商
    を出力として生成して、該出力を前記第1部分剰余段の
    次段に当たる前記部分剰余段の一つへの入力とするもの
    であり、 前記連続部分剰余段は、前段の除数及び新たな部分剰余
    を、前記各部分剰余段の前段に当たる前記部分剰余段か
    ら出力された前記部分剰余候補数値から選択して、入力
    として取り込んで、連続除数、連続部分剰余候補数値及
    び連続部分商を出力として生成して、該出力を前記各部
    分剰余段の次段に当たる部分剰余段への入力とするもの
    であり、 前記完全並列商数字選択パスは、第1商数字選択パス
    と、連続スタガ商数字選択パスとを含み、 前記第1商数字選択パスは、第1部分剰余、第1部分剰
    余に第1除数を加えた数及び第1部分剰余から第1除数
    を引いた数を含む所定の数値群を入力として取り込む第
    1商数字段と、当該第1商数字選択パスの当該各商数字
    段の前段に当たる商数字段から選択された商数字を入力
    として取り込んで、当該各商数字段の次段に当たる商数
    字段へ新たな商数字を出力として生成する連続商数字段
    と、部分剰余データパスの対応する部分剰余段において
    新たな部分剰余候補数値を選択するための商数字を出力
    として生成する最終商数字段とを有するものであり、 前記連続スタガ商数字選択パスは、部分剰余データパス
    の一連の部分剰余段において対応する部分剰余段から出
    力された部分剰余を入力として取り込む第1商数字段
    と、各選択パスの前記各商数字段の前段に当たる商数字
    段から選択された商数字を入力として取り込んで、各選
    択パスの前記各商数字段の次段に当たる商数字段へ新た
    な商数字を出力として生成する連続商数字段と、部分剰
    余データパスの対応する部分剰余段において部分剰余候
    補数値を選択するための商数字を出力として生成する最
    終商数字段と、を有するものであることを特徴とする演
    算処理システム。
JP10174472A 1997-06-23 1998-06-22 演算処理回路及び演算処理方法並びに演算処理システム Pending JPH1195982A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/880,408 US5910910A (en) 1997-06-23 1997-06-23 Circuit and method for rapid calculation of quotients and square roots
US08/880408 1997-06-23

Publications (1)

Publication Number Publication Date
JPH1195982A true JPH1195982A (ja) 1999-04-09

Family

ID=25376212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10174472A Pending JPH1195982A (ja) 1997-06-23 1998-06-22 演算処理回路及び演算処理方法並びに演算処理システム

Country Status (2)

Country Link
US (1) US5910910A (ja)
JP (1) JPH1195982A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016047848A1 (ko) * 2014-09-24 2016-03-31 (주)셀로직 나머지를 연산하는 장치 및 그 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584483B1 (en) * 1999-12-30 2003-06-24 Intel Corporation System and method for efficient hardware implementation of a perfect precision blending function
JP3551113B2 (ja) * 2000-02-07 2004-08-04 日本電気株式会社 除算器
US7539720B2 (en) * 2004-12-15 2009-05-26 Sun Microsystems, Inc. Low latency integer divider and integration with floating point divider and method
US7519649B2 (en) * 2005-02-10 2009-04-14 International Business Machines Corporation System and method for performing decimal division
JP5169760B2 (ja) * 2008-01-28 2013-03-27 富士通株式会社 通信装置、受信データサイズチェック方法、倍数判定回路および倍数判定方法
US8452831B2 (en) * 2009-03-31 2013-05-28 Oracle America, Inc. Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations
US9086890B2 (en) 2012-01-06 2015-07-21 Oracle International Corporation Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated
US10209959B2 (en) 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate
US10372414B2 (en) 2017-10-27 2019-08-06 Advanced Micro Devices, Inc. Fractional pointer lookup table
US11500612B2 (en) * 2020-02-14 2022-11-15 Arm Limited Method, system and device for multi-cycle division operation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5272660A (en) * 1992-06-01 1993-12-21 Motorola, Inc. Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US5237525A (en) * 1992-06-01 1993-08-17 Motorola, Inc. In a data processor an SRT divider having a negative divisor sticky detection circuit
US5301139A (en) * 1992-08-31 1994-04-05 Intel Corporation Shifter circuit for multiple precision division
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5258944A (en) * 1992-09-01 1993-11-02 Cray Research, Inc. High performance mantissa divider
US5357455A (en) * 1992-10-09 1994-10-18 Intel Corporation Floating point remainder generator for a math processor
US5696712A (en) * 1995-07-05 1997-12-09 Sun Microsystems, Inc. Three overlapped stages of radix-2 square root/division with speculative execution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016047848A1 (ko) * 2014-09-24 2016-03-31 (주)셀로직 나머지를 연산하는 장치 및 그 방법

Also Published As

Publication number Publication date
US5910910A (en) 1999-06-08

Similar Documents

Publication Publication Date Title
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
EP0158530B1 (en) Nonrestoring divider
JP3609512B2 (ja) 演算器
CA2530015C (en) Division and square root arithmetic unit
JPH04227535A (ja) 除算を行なう装置
JP2835153B2 (ja) 高基数除算器
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH07168697A (ja) 倍精度除算回路および方法
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
EP0436905B1 (en) High performance adder using carry predictions
JPH04205026A (ja) 除算回路
US5867413A (en) Fast method of floating-point multiplication and accumulation
JP2001222410A (ja) 除算器
KR100627993B1 (ko) 3입력 분할 가산기
US6813628B2 (en) Method and apparatus for performing equality comparison in redundant form arithmetic
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
JP3660075B2 (ja) 除算装置
JP3563043B2 (ja) 平方根の逆数計算方法、計算回路、及びプログラム
JP2777265B2 (ja) 高基数開平演算装置
JP2608090B2 (ja) 高基数非回復型除算装置
JP2790327B2 (ja) 剰余乗算回路および剰余乗算方法
JP3517162B2 (ja) 除算・開平演算装置
JPH0368415B2 (ja)
JP3100868B2 (ja) 浮動小数点数のための算術演算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708