JPH03208170A - 数学関数の近似を計算する数値システム及び計算法 - Google Patents

数学関数の近似を計算する数値システム及び計算法

Info

Publication number
JPH03208170A
JPH03208170A JP2263267A JP26326790A JPH03208170A JP H03208170 A JPH03208170 A JP H03208170A JP 2263267 A JP2263267 A JP 2263267A JP 26326790 A JP26326790 A JP 26326790A JP H03208170 A JPH03208170 A JP H03208170A
Authority
JP
Japan
Prior art keywords
circuit
approximation
argument
multiplication
value
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
JP2263267A
Other languages
English (en)
Inventor
Thomas B Brightman
タマス、ビー、ブライトマン
Warren Ferguson
ウォーリン、ファーガスン
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.)
Cyrix Corp
Original Assignee
Cyrix Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23648573&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH03208170(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Cyrix Corp filed Critical Cyrix Corp
Publication of JPH03208170A publication Critical patent/JPH03208170A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、一般に電子デバイスを使い数学関数を演算す
る分野に関する。ことに本発明は、長方形縦横比乗算回
路を備えたシステムで多項式近似を使い数学関数を演算
する方法及び装置に関する。
〔発明の背景〕
正弦、余弦、対数及びその他の初等及び超越の数学関数
の計算は、新形計算システムVC訃ける所要の機能であ
る。これ等の関数は、複数の方法のうちの任意の方法に
よりこれ等の関数の任意の点に対し評価する。これ等の
方法のうちではテイラ一級数展開、チェビシエフ級数展
開、CORDIC 法及び導関数、対数に対するブリッ
グ法、ニュートン法及び多項式近似がよく知られている
。これ等の方法はその必要とする原始演算たとえば加算
、乗算及び階乗の計算とこれ等の方法が与えられた精度
の結果を生ずるのに必要な数の反復とで主として変る。
これ等の方法の全部についての重要な考慮点は、この結
果K3いて正確さ及びその他の重要な性質とを保持する
のに引き数及び中間計算の必要とする精度である。
計3! 機及びマイクロプロセッサ用の集積回路機器で
はCωIIC 法が最も普及している。この方法の普及
性は、加算及び桁送り演算の比較的簡単な原始演算と文
献K 釦ける十分な開発とこの方法で計算される広範囲
の三角関数及び指数関数とだけを使えばよいことに基づ
く。とくに加算及び桁送り演算が電子集積回路法を使っ
て実施される効率にとくに関連する。
CORDIC 法の欠点は、(1)与えられたレベルの
正確さ通常結果内の精度の2ビットごとに1ビットを得
るのに必要な多数の定数と、(2)各定数に対し1つの
結果を生ずるのに必要な多数の反復と、+31反復ごと
に多数回通常反復ごとに3回の原始演算と、(4)反復
ごとに最終の場所にふ・ける通常1単位の、結果vc3
ける丸め誤差の迅速な累積とである。
従ってたとえば64ビットに対する正弦関数は、32の
定数、32の反復、96の付加的サイクル、を必要とす
るが結果では59ビットの正確さだけしか生じない。
CORDIC法とは異なって前記した他の方法は、各反
復で乗算と共に加算を通常含む所要の原始演算に主とし
て基づいて集積回路機器ではあ1り使われない。この要
求の結果は、評価が加算一桁送り形乗算又は重要なサー
キツ} IJの使用により極めて遅く進行することにな
り従ってチップ表面積を高速乗算の実施に当てなければ
ならなくなる。
配列乗算器の回路の複雑性はさらに複雑になり、又は同
様に、単独で又は定数により引き数の全精度乗算を行う
のにこれ等の他のアルゴリズムの要求によって評価速度
が対応して低下する。
Cα{I)IC 法以外の方法に伴う他の欠点は、多く
の反復の必要と、結果への遅い又は一様でない収束と、
近似機能の単調でない動作を招く無限に精密な値の付近
の振動的動作と、除算及び階乗のような付加的原始演算
を必要とすることとがある。
これ等の欠点の結果として、回路の寸法が太き〈なり複
雑性が増し、所望の関数の評価が遅くなり正確さが低下
する。
従って与えられたレベルの正確さを得るのに反復が比較
的少なくて済み、迅速一様に収束し、丸め誤差の累積が
比較的遅〈、単調機能に対する単調近似を生ずる関数近
似の方法が必要になっている。
〔発明の要約〕
本発明によれば従来の関数近似法に伴う欠点及び問題を
実質的になくし又は減らす数学関数近似法が得られる。
本発明の関数近似法は3つの主要なステップを含む。こ
れ等のステップは、(1)近似の計算に適当な範囲1で
の出発引き数Xの減少と、(2)減少した引き数Uを使
う近似の計算と、(3)出発引き数Xで評価した関数に
対応する最終値への計算結果の変換とである。
とくに本発明は、数学関数に対する多項式に基づく近似
を使う。多項式近似は、減少した引き数の関数にされ、
多項式に対する数値を得るのにホーナー(Horker
)  の法則を使う。多項式の評価は加算ポートを持つ
長方形乗算器の反復使用によって行う。
本発明の重要な技術的利点は、本発明が長方形縦横比乗
算器を使うことにある。長方形乗算器の使用は、関数近
似広で複数のステップ中の時間を節約する。変換に含1
れる乗算、除算及び平方根の演算と多項式評価処理とは
、長方形乗算器に協働する新規な方法の使用により迅速
に行われる。
さらに短×長乗算器はオペランド内の有効ビットの数に
従って全×全以下の乗算で全精度乗算演算を行うことが
でき、全精度乗算器の実施に通常必要な時間及び空間を
節約する。
本発明の別の技術的利点は、本発明は与えられたレベル
の正確さを得るのに他の近似法より一層少ない定数を使
うことにある。すなわち関数に対する多項式近似を評価
するのに反復が一層少なくて済み、又定数記憶空間が一
層小さくて済む。
本発明の他の技術的利点は、関数の近似がこの関数の単
調な動作を保持することにある。すなゎち本発明は関数
近似の多項式法の使用に関して生ずることの多い障害を
除く。
本発明の最経の技術的利点は、定数及び関数に対する引
き数と共に関数が基準化されることにある。この基準化
により、近似の評価で一層複雑でない乗算器を使うこと
ができる。この基準化により又定数及び引き数間の全精
度乗算が、基準化さil7ない定数及び引き数に必要で
あるよりも少ないクロックサイクルで実行される。
〔実施例〕
実施例について図面を参照して説明する。
本発明により数学関数を計算する方法は、乗算、除算及
び平方根関数の原始演算を実施する能力を持つ乗算回路
を備えた数値処理システムで実施する。
第1図は典型的数値処理システムのブロック図である。
$1図は、指令及びデータのインタフェース(l2)を
介して集積データ処理ンステムに対しインタフェースと
なるシステム( 10 )を示す。
111合及びデータインタフェース(12)は、集積デ
一夕処理システムから受ける適当な指令及びデータ値を
復号し送る作用をするバスインタフェース単位( 14
 ) K結合する。バスインタフェース単位(14)は
、システム(10)にわたってデータを送る作用をする
67ビットシステムバス(16)に結合してある。バス
インタフェース単位(14)は又16ビット制御回線を
経て制御タイミング回路(18)に結合してある。制御
タイミング回路(l8)はマイクロプログラム記憶装置
(2o)に結合してある。
制御タイミング回路(l8)は、システム(1o)の演
算を監視するように作用しマイクロプログラム記憶装置
(20)内に記憶されたマイクロプログラムを使い集積
データ処理システムによシシステム(10)の所要の種
種の機能を果す。たとえば正弦、余弦又は対数の関数の
ような各数学関数は、マイクロプログラム記憶装置(2
0)内に記憶され制御タイミング回路( 18 ) K
より実施される対応するルーチンを持つ。制御タイミン
グ回路(18)及びマイクロプログラム記憶装置(20
)は、システムバス(16)にも結合した仮数ファイル
に結合してある。仮数ファイル(22)は、システムパ
ス(16)からデータ値を受け、システム(IO)によ
り実施される関数の計算にオペランドが使われる記憶装
置として作用する。仮数ファイル(22)は、システム
バス(16)からデータ値の指数部分を受け、システム
( io )に使われる浮動点オペランドの指数部分に
対して仮数ファイル(22)と同様な記憶装置として作
用する指数ファイル(24)と協働する。指数ファイル
( 24 ) ij:指数A L U ( 26 )に
結合してある。指数A L U ( 26 )は、シス
テム(10)における数学関数の計算中に指数ファイル
(24)に記憶した値に対して値を加算及び減算するよ
うに動作する。指数ALUは、その演算を制御する制御
タイミング回路(18)に結合してある。
又定数記憶装置(28)もシステムバス( 16 ) 
K結合してある。定数記憶装置(28)は、制御タイミ
ング回路(18)により制御される本発明の数学関数評
価方法の実施に使う定数を恒久的に記憶し供給する。又
システムパス(16)には仮数ALU(30)を結合し
てある。仮数A L U ( 30 )は、システムバ
ス(16)からオペランドの仮数部分を受け、システム
(10)で計算される関数に必要なこれ等のオペランド
に加算、減算及び丸め演算を行う。仮数ALUは、オペ
ランドを任意の数のビット位置だけ右又は左にシフトす
ることのできる可変ピットシフタ(32)を備えている
。可変ビットシフタ( 32 )はシステムパス( 1
6 )と共に指数ALUに結合してある。可変ビットシ
フタ(32)は、シフト計数を指数A L U ( 2
6 ) K送るように指数A L U ( 36 ) 
K偶数ビットの情報を出力する。従って可変ビットシフ
タ(32)によりシフトされる仮数と協働する指数を必
要に応じて増減する。
乗算回路(34)も又システムバス( 16 ) K結
合してある。乗算回路(34)の1実施例をとくに第2
図及び第3図について述べる。しかし一般に乗算回路(
34)は、システム( 10 ) Kより評価する数学
関数の計算に必要な乗算、除算及び平方根演算を行うよ
うに作用する。乗算回路(34)及び仮数A L U 
( 30 )は共に、それぞれの演算をマイクロプログ
ラム(20)内に記憶したマイクロプログラムに従って
制御する制御タイミング回路( 18 ) Kに結合し
てある。
要するにシステム(10)は、本発明の数学関数評価方
法を実施するのに所要の制御データ管理サーキットリを
備えたシステムである。本発明方法の実施νこVi2つ
の重要な素子が必要である。本方法は、各数学関数を評
価するためのルーチンを実施する制御記憶回路を必要と
する。さらに本方法は有効かつ正確な乗算、除算及び平
方根の演算を行うことのできる乗算回路を必要とする。
第1図に例示したシステム(lO)は、これ等の重要な
素子を備え従って本発明の数学関数評価法を有効に行う
ことができる。しかしシステム(10)は、本発明方法
を使うことのできる回路の単に1実施例であり本発明方
法を教示するためだけに示したもので本方法を特定の実
施例に限定するものではない。
第2図は乗算回路(40)の配線図である。回路(40
)¥′i、本発明方法に使うのに適し、第1図につイテ
述べたンステム(10)の乗算回路( 34 ) トし
て機能する。乗算回路(40)は、回路(40)を集積
デイジタルデータ処理システムの他の部品(第2図には
示してない)に通じさせる作用をするシステムバス(4
2)を備えている。乗算回路(4o)はたとえば、第1
図に例示したシステム(10)のようなマイクロプロセ
ッサ又は数値コブロセッサに使うことのできる演算論理
単位の一部を備えている。このようなシステムではシス
テムバス( 42 )はシステムバス( 16 ) K
結合され回路(40)が乗算、除算及び平方根の演算を
行うオペランドを受けるようにしてある。
システムバス(42)は74ビットの幅を持チC一ラッ
チ(44)に直接結合したあ最上位ビットを持つ。シス
テムバス(42)の次の最上位36ビットハマルチプレ
クサ( 46 ) ( MtJX(46))を経てC−
ラッチ(44)に結合してある。第1のMUX(46)
ハ又システムバス(42)の最上位おビットに結合して
ある。
システムバス(42)の18最上位ビットはD−ラッチ
(48)に直接結合してある。システムバス(42)の
次の最上位51ピットは、それぞれ第2 MTJX(s
o)、第3MUS(52)及び第4MUZ(54)に結
合した17ビットから成る群に分割される。MUX(5
0)、(52)、(54)の付加的入力は又システムバ
ス(42)の17最上位ビットに結合してある。MUX
(50)、(52)、(54)の出力はD−ラッチ(4
8)への3つの付加的入力に結合してある。
システムバス(42)はA−ラッチ(56)の入力に結
合してある。A−ラッチ(56)の出力は乗算器コア(
58)のADDER INPUTに結合してある。
定数ポート(60)は第5MUS(62)の1つの入力
に結合してある。C−ラッチ(44)の3つの18一ビ
ット出力と17−ビット出力とは第sMUX(62)の
4つの入力に結合してある。単一ビットは第5MUX(
62)から乗算器コア(58)のM U L T IP
LIERCARRY−IN入力に入力される。18ビッ
トは第5MtJX(62)から乗算器コア(58)の乗
数入力に入力される。2ビットは第sMUX(62)か
らシック(84)の制御入力に出力される。
69ビットはD−ラッチ(48)から第1変換器(64
)に出力される。変換器(64)は非冗長69ビット幅
の数を符号付きデイジット数に変換する。従って69デ
ータピット及び69符号付きビットは第■変換器(64
)により第6MUX(66)に出力される。70データ
ビット及び70符号付きビットは第6 MUX( 66
 ) Kより乗算器コア(58)のMULT I PL
 I CANDINPUT  に出力される。
88データピット及び88符号付きビットは乗算器コア
(58)の積出力からシフタ( 68 ) K出力され
る。シフタ(68)は結果出力を乗算器コア(58)に
より、右に1個所、左K1個所にシフトし又はシフトし
ないでパスするように作用する。最上位符号ビット及び
データピットは適当な補正後に切り捨てる。残りの88
データピット及び88符号ビットはシフタ(68)によ
り結果ラッチ(70)に出力する。87データピットと
87符号ビットとは、結果ラッチ(70)内に記憶し3
個所の各別の場所に出力する。75最上位データピット
及び75最上位符号ビットは第2変換器(72)K出力
する。第2変換器(72)はその入力における符号付き
デイジット数を非冗長フォーマットで74ビット数に変
換しこの数をE−ランチ( 44 ) K出力する。E
ーラッチ(74)はシステムバス(42)に結合スる。
結果ラッチ(70) Kより出力される71最下位デー
タピット及び7l最下位符号ビットは、表示器(76)
に入力する。表示器(76)は変換器(72)に又ステ
ータスブロック(78) K結合してある。結果ラッチ
(70) Kよう出力される87データピット及び87
符号付きビットはシック(80)に入力する。 シック
(80)の出力はフィードバックラッチ(82) K結
合する。フィードバックラッチ(82)の出力はシック
(84) K結合する。77M’(84)の出力は、8
8データピット及び88符号ビットを含み、乗算器(5
8)のFEEDBACK INPUTに結合する。フィ
ードバックラッチ(82) Kより出力される70デー
タビット及び70符号ヒットハ又、第5MUX(66)
K入力されこれ等を乗IL器コ7 ( 58) ノMT
JLTIPLICANDINPUTに選択的(て入力す
るようにしてある。
乗算器コア(58)は第3図にさらに詳しく示してある
。一般に乗算器コア(58)は、掛ける3加算器t/ペ
ル(86)とブース( Booth )記録器レベル(
88)と部分積発生器レベル(90)と3つの加算器レ
ベル(92)、(94)、(96)とを直列に接続して
備えている。
MULTIPLICAND INPUT c7) 70
 f − タヒッ} 及び70符号ビットは、掛ける3
加算器レベル(86)を形成する掛ける3加算器(98
) K入力する。掛ける3加算器(98)は部分積発生
器レベル(90) K3の倍数で加えるように作用する
。1、2及び4の倍数を含む乗算演算は、シフト演算を
使って行う。しかし3の倍数は、掛ける3加算器(98
)に存在する加算器論理を必要とする。
単一ビットのMULTIPLIER CARRY−IN
と18ビットの乗数入力とは、ブース記録器(100)
、(102)、(104)、(106)、(108)、
(110)を備えたブース記録器レベル(88)に並列
に入力する。各ブース記録器(100)〜(110)は
、乗数入力から3ビットの乗数を受け、隣接するブース
記録器にその入力に結合した単一ビットけた上げ回線を
経て結合してある。
第1プース記録器(100)はそのキャリーイ/入力を
単一ビットのMULTIPLIER CARI’LT−
IN  K結合してある。
各ブース記録器(100)〜(110)の出力はそれぞ
れ部分積発生器(112)、(114)、(116)、
(118)、(120)、(1.22)の1つに結合し
てある。MULTIPLICANDINPUT  も又
各部分積発生器(112)〜(122)に並列に結合し
てある。さらに掛ける3加算器(98)の出力は各部分
積発生器(112)〜(122) K結合してある。こ
のようにしてブース符号化乗数と被乗数の偶数の倍数と
被乗数の適当に加えた3の倍数とは全部部分積発生器内
で組合せて互いに加え合わせる部分積を生威して88一
ビット積を生成する。
従って各部分積発生器(112)〜(122)の出力は
3つのレベルーl加算器(124)、(126)、(1
28)に入力する。さらに第4のレベル−1加算器(1
30)はその入力として、74ビットADDE凡INP
UTとFEEDBACK INPUTの88符号付き及
びデータのビット入力とを受ける。第4のレベル−1加
算器(130) Fi本発明の配列乗算器の重要な技術
的利点を示すのに役立つ。
レベル−1加算器(92)、レベル−2加算器(94)
及びレベル−3加算器(96) Kより形成した加算器
トリーをアクセスすることができるので、本発明の配列
乗算器は、式AX + B + C の演算を行うこと
ができる。この式でA rt18ビット乗数であり、X
ぱ70ビット符号付きデイジット被乗数であり、Bは7
4−ビット非冗長数であり、Cは70−ビット符号付き
デイジット数である。
レベル−1加算器(124)、(126)の出力は、そ
れぞれ75データピット及び75符号ピットであり又第
1レベル−2加算器(132)に入力される。レベル−
1加算器(128)の出力は、75データビット及び7
5符号ビットであυ、第2レベル−2加算器(134)
の一方の側に入力される。第4レベル−1加算器(13
0)の出力は、88符号ビット及び88データピットで
あり、加算器(134)への第2レベルの残りの側に入
力される。
加算器(132)の第1レベルの出力は、81符号ピッ
ト及び81データピットであり、これ等はレベル−3加
算器(136)の第1の側に入力される。又レベルー3
加算器(136)の第1の側11d2つのビットが入力
され、これ等のビットは定数ポート(138)から入力
される。加算器(134)の第2レベルの出力ハ88符
号付きビット及び88データビットであり、これ等はレ
ベル3加算器(136)の第2の側K入力される。レベ
ル3加算器(136)の出力は、88符号ビソト及び8
8データピットであり、第1図に示したシック( 68
 ) K乗算器コア( 58 ) Kより出力される最
終積出力である。
動作時にはC−ラッチ(44)は一般に乗算演算の乗数
を含む。乗算演算の積は一般にE−ラッチ(74)に含
−!れる。フィードバックラッチ(82)は乗算器コア
(58)の出力を符号付きデイジットフォーマットで含
むのに使われ引続く乗算演算に使えるようにする。
乗算回路(40)への又これからの多くのデータ転送は
75ビット幅のシステム(42)を横切る。たとえばC
−ランチ(44)及びDラツチ(48)は共(てンステ
ムバス(42)からロードされる。第2図及び第3図は
乗算回路(10)を通るデータ径路を示すのはもちろん
である。分りゃすいように乗算回路(lO)を動作させ
るのに使う制御径路は示してない。適当なタイミング制
御信号は乗算回路(4o)の所要の部品に入力されその
構成部品の適当有効な動作を確実にするのはもちろんで
ある。第1図に示すようにこれ等の制御信号は制御タイ
ミング回路( 18 ) Kより生じ供給される。
符号付きデイジット算術演算 乗算回路( 40 ) K使われる符号付きディジット
記数法は−1、O及び1がら成るディジットセットを使
う。これ等のディジットは次の表による符号ビット及び
データピットニょシ定められる。
符号 データ 値 0  0  0 0   1   1 1  1  −1 「一〇」を構成する高符号ビット及び低データビットは
許容条件ではない。
乗算器コア(58)に使う3つのレベルの加算器(92
)、(94)、(96)に使われる基本符号付きディジ
ット加算器はそれぞれ2つの符号付きデイジット数、キ
ャリー−イン及びボロー インを受入れる。
各加算器はこれ等の入力を単一の符号付きfイジット数
、キャリー●アウトKする。第4図は和Zを生ずるよう
にオペランドYへのオペランドXの加算を示す真理値表
を表の形で示す。ボロ一一イン、キャリー・イン、ボロ
一一アウト及びキャリー−アウトも又示してある。
加算回路の速度は1つのビットから次のビットへのキャ
リー信号の伝播により通常制限される。
その理由は、加算器の1ビットからのキャリー・アウト
信号がこの加算器へのキャリー−インによるからである
。加算回路の従来の進歩は一般に、キャリー●ルツクア
ヘッド回路又はキャリー●選択回路のような手段による
この径路の短縮と関係がある。本発明方法と協働して使
う乗算回路の新規な構造により、第4図に示した真理値
表でボロー・アウトがボロー・インに無関係であるのは
明らかである。さらにキャリー・アウト信号はボロー・
インによシ影響を受けるがキャリー●インには無関係で
ある。このよう番でしてボロー又はキャリーが決して2
ビット以上は伝播しないようになる。
第4図に示した真理値表に協働する符号付きデイジット
加算器についての重要な考え方は、このデイジットセッ
トの冗長性によりキャリー及びボローをこれ等が必要で
ないときに生じさせることである。このことは、「先行
l」の生起を生ずるときに、或る数の最上位ビットに起
らなければ,一般に関係がない。先行1はつねに、反対
の符号の1つ又は複数の1が追従するいずれ′゛かの符
号の1の形を取る。先行1は、非冗長形に変換したとき
に先行OKなる符号付きデイジット数の最上位端に存在
する。しかし先行Oとは異なって、先行1は簡単には打
切ることができない。最上位1の符号が数の符号を定め
るから、先行1を打切ると、最上位1が反対の符号であ
った新たな数が得られる。適当な論理金使うと、本発明
方法に協働して使われる乗算回路は先行1を打切ること
ができる。
最上位端で打切らなければならない数は、2の補数表記
法の符号付きビットに幾分類似した余分なビットを必要
とする。この余分なビットはオーノくフロービットと称
する。
さらに乗算回・路(40)に使う加算器は、加算される
データがボロー又ぱキャリーの生成を必要としないよう
な十分な幅を持つ。しかしデータフォーマットが冗長で
あるから、第4図に示した真理値表は、必要としないと
きにボロー及びキャリーを生ずる。これができる2つの
場合は、キャリーを生じZK対する値が−1 に等しい
ときである。
或はボローを生じZに対する値が1に等しいときである
。これ等の出力により先行1が生成するようになる。こ
のようなことが生じないようにするKは、各加算器の最
上位ビットに対する真理値表をわずかに修正する。これ
等の変更は次の真理値表に例示してある。
ボロー・イン  キャリー・イン  ZY    Z1
          1       0−1−1長さ
が与えられた数のビットを持つ任意の非冗長数は、無制
限の数の先行1が存在できるから、非冗長フォーマット
で表示したときに無制限の数のビットを持つ。この変換
は記号表記法で次のよう((示される。
nX  ””3+  n2  t  J  +  nO
=””X+2+  rX++ +  ’X  ”’’3
y ’2+ rl  + ’0 先行1の生成は、数から先行ピットを打切ろうとすると
きに問題を生ずる。冗長数は、次の補正でX+1ビット
に容易に打切ることができる。
rx+2” Oであればrxの符号を逆にする。この場
合次の結果が得られる。
’X  ””3 t n2 1 n1 1 nO”’X
+l l  X   3r 2 + r 1 ヲrO すなわちビットX+1より上位のビットの全ストリング
はこの変換によりオーノ;フローピットと呼ばれる単一
のビットになる。オーバフ口一ビットは、先行ビットの
打切りを行うには本発明乗算回路のデータ径路内に含1
なければならない。
符号付きデイジット数の先行ビットを打切るだけでなく
又符号付きデイジット数を最上位部分及び最下位部分に
、これ等の各部分の正確度に影響を及ぼさないで、又は
全ビットストリングの非冗長フォーマットへの変換の際
に受ける速度ペナルティーを受けないで実際に分離する
ことが必要であるときに付加的な考え方が生ずる。この
手順がたとえば、この説明で述べる2進符号化lO進(
BCD)数への真数の変換の際に生ずる。この場合各B
CDデイジットは変換処理中にビットストリングの最上
位部分のレジデント(常駐)である。
最下位部分は最上位部分へのボローを必要とし各部分の
値に影響を及ぼすことに付加的な考え方が存在する。最
下位部分は前記したオーバフロービットを使って変換し
てもよい。最上位部分は、最下位部分の符号を判定する
ことにより変換し、負であれば最上位部分を低減する。
機能性の上部レベルの説明 乗算回路(40)は次のようにして使い本発明の数学関
数評価方法を、乗算、除算及び平方根の演算の迅速有効
な実施によって実行する。C−ラツチ(44)は、71
ピットの幅を持ちシステムバス(42)からロードする
。このランチは3通シの方式でロードすることができる
。全レジスタにシステムバス(42)の最上位部分から
ロードすることができる。第2に最上位35ビットはシ
ステムバス(42)の最上位部分から無関係にロードす
ることができる。最後K C−ラッチ(44)の最下位
36ビットはシステムパス(42)の最上位部分から無
関係にロードすることができる。C−ラッチ(44)は
4半分に分割され、乗算器コア(58)の短い通を駆動
することができる。C−ラッチ(44)の最上位4半分
である第4の4半分は17ビットであり、これは、それ
ぞれ幅が18ピットである残りの4半分より1ビットだ
け短い。
第5のMUX(52)はC−ラッチ(44)の種種のピ
ットから又は定数発生器(60)から選択して乗算器コ
ア(58)の乗数入力及び乗数キャリー・イン入力を駆
動する。これは又シフタ(84)に、後述の特定の19
ビット幅の乗算に使われる制御入力を送る。
第5図は■JX ( 62 )を表示したものである。
MIJX ( 62 )はC−ラッチ(44)の5通り
の互いに異なる組合せ又Vi3つの互いに異なる定数値
から選択する。シフタ(84)の制御は20ビット乗算
中に使う。MULTIPLIER INPUT及びML
JLT[PLTERCl%R.Y−INは乗算器コア(
58)への入力であろう第5図において表記法c ( 
16 : O )はC−ラッチ(44)の最下位ビット
に追従する16ないしOのピットの範囲を表わす。
D−ラッチ(48)は、69ビットの幅を持ち4半分に
分割される。D−ラッチ(48)は4通りの互いに異な
る方式でロードすることができる。全Dーランチ(48
)はシステムバス(42)の最上位ビットをロードされ
、又はD−ランチ(48)の3の各最下位4半分はシス
テムノζス(42)の17の最上位ビットを無関係にロ
ードされる。
変換器(64)は、D−ラッチ(48)内の非冗長値を
、符号ビットを各データピットに付加することにより、
符号付きデイジット数に変換する。符号ビットは、すべ
て正数に対応する0にセットされ又はすべて負数に対応
する1にセットすることができる。さらに3つの各最下
位4半分は互いに無関係に負にセットすることができる
が残りの4半分は正である。
乗算器コア(58)の長い辺は第6の■JX ( 66
 )により駆動する。第6の■JX ( 66 )は、
フィードバックラッチ(82)から符号付きデイジット
フォーマットで入力される70ビットの間で又は変換器
( 64 ) Kよう入力される69ビットの間で選択
する。
変換器(64)からのデータを選択すると、D−ラッチ
(48)の全内容又はD−ラッチ(48)の4つの4半
分のうちの任意のものを所要に応じて否定することがで
きる。
乗算器コア(58)の出力は、積を1だけ左又は右にシ
フトし或は積をシフトしないでパスさせることのできる
シフタ(68)を通過する。シック(68)の通過後に
積の最上位ピットを打切り、この積を結果ラッチ(70
)Kロードする。結果ラッチ(70)からのデータは、
これをフィードバックラッチ(82)にロードする際に
シフタ(80)により左K 17ビツトだけ適宜にシフ
トする。フィードバックラッチ(82)の出力は条件付
きで否定する。フイードノくソクラッチ(82)の出力
は、乗算器コア(58)の長辺を第6■JX (66)
 Kより駆動し、又はシック(84)を経て乗算器コア
(58)のFEEDBACK INPUTに入力する。
シフタ(84)は、データをシフトしないでバスさせ、
1又は20ビット位置だけ左にシフトし又ハ18一ピッ
ト位置だけ右にシフ}−t−ル。
1又は2のビット位置だけ左にシフトする演算は、行わ
れるこれ等の演算からデータ径路の1又Fi.2の最上
位データピットが有効データにより占められていないこ
とが分ると初めてシフタ(84)により行われる。18
だけ右へのシフトの演算は後述する乗算演算中K積の各
部分を位置合せするために使う。
表示器(76) Vi、結果ラッチ(70) Kより若
干の欄の87ビット出力の符号及び大きさを定める。乗
算演算中に表示器(76)は積の最下位ビットのトラッ
クを保持しビットを捨て去るかどうかを判定し捨て去る
場合には捨てられた数の符号を保持する。
表示器(76)は、前記したように真数からBCDへの
変換中にデータピットを2部分に分離する間にデータ径
路の最下位部分の符号を判定する作用をする。表示器(
76)はデータ径路の最下位部分が負であればオーバフ
ロービットをセットするように作用する。除算及び平方
根の演算中に表示器(76)は、残り値が非零であるか
どうか又非零であればこの値が正か負のいずれであるか
を判定する。この情報は表示器(76)によりステータ
スフロック(78)内に記憶する。ステータスブロック
(78)は又制御回線(図示してない)を経てこのシス
テムの残りの部品に又変換器(72) Kそれぞれ結合
する。
ステータスブロック(78)は、大きい基数デイジット
値を正又は負のいずれに判定したかに関係なく変換器(
72) K:通じて、前記した除算及び平方根の演算に
より必要に応じE−ラッチ(74)内にこの値をロード
するのに先だって変換器(72)がこの値の非冗長表示
を適当に補う。
変換器(72)は、表示器(76)からの符号ビット及
び表示器ビットと共に、結果ラッチ(70)により出力
される最上位75ビットから正又は負の符号付きデイジ
ット値を受けて、このデータを正の74−ビット非冗長
数に変換する。この数は、最下位部分内の表示器ビット
で74−ビットE−ラッチ(74)内に条件付きで記憶
する。本発明の重要な特長は、変換器(72)により、
結果ラッチ(70) Kより出力されデータ径路からの
オ一ノ;フローを指示する最大値を検出することができ
ることにある。変換器(72)は、非冗長フォーマット
への最大値の変換後にオーバフ口一が存在すればE−ラ
ッチ(74)K出力される値を飽和するように作用する
。E−ラッチ(74)の出力はシステムバス(12) 
K″結合する。
E−ラッチ(74)は、前記した演算の必要に応じて、
全74ビット値又は打切った17ビットの大きい基数デ
イジット値をシステムバス( 42 ) K出力するよ
うに作用できる。
第3図に示すように各部分積発生器(112) fiい
し(122)は修正したブース記録能力を持つ基数8で
ある。従って各部分積発生器は被乗数掛ける−4ないし
+4を生ずることができる。各ブース記録回路(100
)ないし(110)は4ビットの乗数を必要とする。■
8ビットのMULTIPLIER INPUT  は6
個の各記録回路(160)ないし(110) K 3ビ
ットずつ等しく分割される。さらに各記録回路に第4の
ビット入力を送る互いに隣接する記録回路の間KFi1
ビットの重なりがある。すなわち各記録回路(100)
ないし(110)は、MULTIPLIER INPU
Tの3つの各ビットに又隣接する一層下位の記録回路の
最上位ビットに結合される。修正ブース記録回路(io
o)は、最下位記録回路であり、従ってMULTIPL
IER INPUT  の3つの最下位ビットとMTJ
LTIPLIER CARRY− IN TNPUT 
の単一のビットとに結合される。
次の真理値表は、乗数ピットが各部分積発生器(112
)ないし(122) K入力されるのでこれ等の乗数ビ
ットの修正ブースフォーマットへの記録を表わす。
1 に 乗数   キャリー・イン   修正ブース記録器出力
ooo       o            o0
00       1            100
1       0            1001
       1            2oio 
      o            2010  
       1               30
11       0            301
1       1            4100
       0            −4100
       1            −3101
       0            −3101
       1            −2110
        0              −2
110         1            
  −1111         0        
      −1111         1    
           0各部分積発生器(112)な
いし(122)内で掛ける、2又Vi4の乗算は、被乗
数をシフトすることより簡単に行われる。3を乗ずるこ
とは、1掛ける被乗数を2掛ける被乗数に加える掛ける
3加算器(98) Kより行われる。加算器(98)の
出カは全部の部分積発生器(112)ないし(122)
に入カされる。このようにして1、2、3及び4を掛け
る被乗数は各部分積発生器(112)ないし(122)
の入力に利用できる。
符号付きデイジット表記法を使うので、各部分積発生器
(112)ないし(122)により出刀しようとする値
の否定は簡単である。数の否定は、1である対応するデ
ータピットを持つ各符号ビットを逆にすることによ9行
われる。すなわち各部分積がその入力に被乗数及び3掛
ける被乗数を持ち、1、2、3又は4掛ける被乗数を選
択し出カを選択的に否定して+4ないし−4掛ける被乗
数の全範囲を生ずるように作用できる。
部分積発生器(112)ないし(122)の出カは72
ビットの幅を持つ。各レベル1 71C[n (124
)、(126)、(128)は3だけオフセットした2
つの部分積発生器の出力を加算する。レベル1加算器(
124)、(126)、(128)の出力は75ビット
の幅を持つ。 レベル1加算器(180)は、最上位ビ
ットを位置合せしてA.DDER INPUTをFEE
DBACK INPUT vc加える。
レペル2加算器(122)はレベル1加算器(124)
、(126)の出力を加算する。レベル1加算器(12
4)、(126)の出力は6だけオフセットされる。レ
ベル2加算器(132)の出力は81ビットの幅を持つ
。レベル2加算器(134) V1レベル1加算器(1
28)、(130)の出力をこれ等の出力の最上位ビッ
トを位置合せして加算する。レベル2加算器(134)
の出力は8lビツ}の幅を持つ。2つのレベル2 加算
! (132)、(134)はそれぞれ最下位ビットを
位置合せしてレベル3加算器(136)内で互いに加算
する。定数ポ− } (138)は、2つ及び3つの半
分の定数を生ずることができる。これ等の定数は又、前
記したように除算及び平方根の演KK使われるニュート
ン・ラフソン( Newton−Raphson ) 
 近似法により必要に応じてレベル3加算器で加算する
ことができる。
乗算器コア(58)の最終の積は、レペル3加算器(1
36)により出力され88ビットの幅を持つ。
乗算 動作時に全精度乗算演算は、変換サイクルが続く乗算器
コア(58)の4回の通過で行われる。入力オペランド
はシステムバス(42)カラロードする。69ヒット被
乗数はD−ラッチ(48)にロードされ、71ビット乗
数はC−ラッチ(44)にロードする。各入力オペラン
ドは非冗長フォーマットになる。A−ラッチ(56)及
びフィードバックラッチ(82)は共にクリアされる。
第1のパスでは乗数の最下位18ビットは、マルチプレ
クサ(62)により選定され乗算器コア(58)の乗数
入力に送る。マルチプレクサ(82)は初めにMULT
IPLIER CARRY−IN INPUTを零にセ
ットする。D−ランチ(48)内の被乗数は、被乗数の
全部の符号ビットを零にセットすることによ9変換器(
62)内で符号付きデイジット数に変換される。この値
は、最上位端に零を付けるマルチプレクサ(66)によ
シ選定する。このようにして得られる70ビット符号付
きディジット数はこの場合乗算器コア(58)へのMU
LTIPLICAND INPUTになる。MULTI
PLICAND INPUTは乗算手順の残りに対し変
らない−44Kなる。A−ラッチ(56)及びフィード
バックラッチ(82)はクリアされるから、乗算器コア
(58)へのAJ)DER INPUT及びFEE−D
BACK INPUTは零である。シック(68)は、
乗算器コア(58)で行われる修正ブース記録により非
有効値を持つように保証される、乗算器コア(58)に
より出力される88−ビットの積の最上位ビットを打切
シ、得られる87ビット符号付きデイジット数を結果ラ
ッチ(70)に出力する。次いで結果ラッチ(70)は
部分積を含む。この部分積の75最上位ビットは次いで
フィードバックラッチ(82)に送られ、又その最下位
18ビットは表示器(76)に送られる。フィードバッ
クラッチ(82)の出力は、シフタ(84)内で右に1
8個所だけシフトされ乗算器コア(58)のFEEJ)
BACX INPUT K送られる。部分積の最上位7
5ビットだけがフィードバックラッチ(82)に保持さ
れる。部分積のl2の最下位ビットは、フィードバック
ラッチ(82)のローデイング中に打切られる。6つの
付加的ビットは、シフト(84)により行われる18ビ
ットの右シフト演算中に失われる。
FEEDBACK INPUT K戻されない結果ラツ
チ(70)内に記憶されたこれ等の18ビットは、表示
器(76)により読取られる。表示器(76)は、l8
の打切られたビットが零であるか又非零値の符号である
かどうかを記録する符号ラッチ及び零ランチを備えてい
る。
第2及び第3のパスでは乗数の第2及び第3の最下位ピ
ットはそれぞれマルチプレクサ( 52 )Kより選定
し乗算器コア(58)の乗数入力に送る。
■几TIPLIER CA}徂Y− INはC−ラッチ
(44)の前の4半分の最上位ビツ}K等しくセットす
る。
rvIJLTPL工CANDINPU′r及ヒADDE
RINPUTハ変ラナイ渣1になっている。FEEDB
ACK INPUT は、これを適正に位置合せするよ
うに右に18個所だけシフトした前のパスからの部分積
を含む。新たな部分積の最上位部分はフィードバックラ
ッチ(82)K記憶する。最下位18ビットは表示器(
76)により検査する。任意の1を表示器(76)に送
られる18ビット内にセットすると、符号ラッチを適当
に更新し、或はこれ等のラッチの古い値を保持する。
乗X器コア(58)への第4のパスは前のノ{スと同様
であり乗数の最上位17ビットをマノレチプレクサ(6
2)により選定する。乗数の最終区分は、乗数入力の最
上位ビットを零にセットすることのできる17ビット値
である。最終積が結果ラッチ(70)に存在するので、
結果ラッチ(70)の最上位75ビットは変換器(72
) K送る。残りの12ビットは、内部に含んだ零ラン
チ及び符号ラッチを更新する表示器(76) K入力す
る。符号ラッチの得られる値は変換器(72)に送る。
変換器(72)は符号付きデイジット結果を非冗長フォ
ーマットに変換する。表示器(76)が負数を打切ると
、この結果は1だけ減る。75ビット数を変換した後、
最上位ビットはつねに零に等しい。残りの75ビットは
E−ラッチ(74)に保持して、結果をシステムを横切
ってシステムバス(42)を経て読取るようにする。残
りのシステムは又、ビットが打切られたかどうか従って
結果が精密であるかどうかを指示する表示器(76)V
c含寸れる零ランチの最終値を読取ることができる。
除算演算特定ハードウエア 乗算回路は又、本発明方法に使われる新規な除算法を実
行するのに極めて有用である。この除算法は本出願人に
よる米国特許願明細書「長方形縦横比乗算器を使い除算
を行う方法及び装置」に記載してある。次のハードウエ
アは、前記した方法を使い有効に除算を行うように乗算
回路( 40 ) K加算した。
除算演算の第1の部分は、ニュートン・ラフソ/の逆数
評価法を使う。この方法は、参照用テーブルからのシー
ド値( Seed Value )で出発し、所望の正
確度を必要とする1で次の式でこの値を繰返す。
y”= y’ (2−yy’ ) この式で Y=逆数の新たな値 y’=逆数の古い値 y=除数 この式は乗算器コア(58)を通る2回のパスで評価す
る。除数はD−ラッチ(48)にロードする。
逆数のシード値はC−ラッチ(44)内にロードする。
D−ラッチ(l8)内の値を変換器(64)で符号付き
デインツl・記法に変換すると、この値は否定される。
定数発生器(138)は定数2をレベル3加算器(13
6)に算入する。第1パスの積は(2−yy’)に等し
い。この積の最上位75ビットはフイードノにツクラッ
チ(82) K記憶する。乗算器コア(58)を通る第
2のパスは第1パスの結果掛ける逆数の出発近似を乗算
する。
乗算器コア(58)は■几TIPLICAND INP
UT  を符号付きデイジットフォーマットで受入れる
ことができるから、非冗長フォーマットへの変換は必要
としない。又乗算器コア(58)を通る2回の7N6ス
は背中合わせのクロツクサイクルにある。乗算器コア(
58)を通る第2のパスでは乗数入力は一定のま1であ
るが、マルチプレクサ(36)はフィードバックラッチ
(82)を選択し■几TIPLICAND INPUT
を供給する。
次いで近似逆数を、乗算器コア(58)を通る2回の付
加的パスを使い或る付加的な時間だけ繰返す。乗算器コ
ア(58)を通る最終のパスでは逆数バイアス調整係数
をA−ラッチ(56)及びADDERINPUTを経て
加える。
除算アルゴリズムは、17ビット商デイジット値を計算
するのに十分な正確さを持つようにするのに19ビット
逆数値による乗算を必要とする。この逆数に.はこれが
決して小さすぎないことを保証するように小さな逆数バ
イアス調整係数を加えるから、19ピット値1420ビ
ット値にあふれ込む。
19又は20ピットの乗算のための乗算器コア(58)
の短い辺への入力オペランドは、1個所だけ左にシフト
したC−ラッチ(44)の第2の最下位18ビットに対
応する、C−ラッチ(44)の欄である。
19又は20ビットの乗算は、乗算器コア(58)への
FBEDBACK INPUT  を使うことによって
行われる。
18の最下位ビットは乗算器コア(58)の■几TPL
IERINPUTに送る。被乗数はフィードバックラッ
チ(82)にロードしなければならない。マルチプレク
サ(36)は、フィードバックラッチ(82)を選定し
これをMULTIPLICAND INPUT K送る
。被乗数の付加的コピーをシフタ(84)で1又は2だ
け左にシフトし乗算器コア(58)のFEEDBACK
 INPtJT に入力する。
逆数の上下の境界が既知であるから、C−ラッチ(14
)の前記欄の18及び190ビットはシフタ(84)を
制御することができる。次の表は、20ビット逆数の全
部の可能な組合せを示し、又18及び19ビットの可能
な組合せが3つしかないことを示す。
ビット数 201 010×××××××××××××××××ouxxx
xxxxxxxxxxxxxx10000000000
00000000X乗数の第1の18ビットは、修正ブ
ース記録器(100)ないし(110)内で修正ブース
記録処理を通る。ビット49及び50ハ乗算器コア(5
8)へのFEEDBACK INPTJT f 考慮さ
れる。18ビットの設定は、修正ブースアルゴリズムを
使い符号化する。18ビットの設定により通常乗算器コ
ア( 58 ”) K負数を出力させる。全精度乗算演
算中に、負の値を、MULTIPLIER INPUT
  を増シテ被乗数を付加的に1回加算することにより
乗算器コア(58)を通る次のパスで補正する。しかし
この場合乗算器コア(58)を通る第2のパスがないか
ら、補正は、FEEDBACK INPUT を経て加
えた被乗数で行われる。
ビット18、19、20の全部の可能な組合せを、FE
EDBACK INPUT で加えなければならない被
乗数に掛ける数と共に以下に示してある。掛けるl及び
掛ける2の被乗数だけしか必要でないから、この数を生
ずるのに必要なノ・−ドウエアはシック(84)だけで
ある。又ピット18及び19はシフタ(84)の演算を
制御するのに必要なすべてであることは次の表から明ら
かである。
BIT#               加える数20
  19  18        1掛ける被乗数0 
1 0      2掛ける被乗数1 0 0    
  2掛ける被乗数これ等のオペランドに必要なデータ
径路幅は全く明らかでない。乗算回路(40)を使い行
われる正規の乗算演算に必要なデータ径路幅を理解する
ことが大切である。数の符号付きデイジット表示は、単
一のオーバフ口一ビットをデータ径路に付けることを必
要とする。この単一ビットは、結果を非冗長数に変換し
たときに打切る。この説明のために、オーバフローピッ
トはこのデータ径路幅内では計数しない。修正ブース記
録法は、積を零の付近に中心を合わせ、修正ブース記録
乗数の積の大きさが正規の乗数より1ビット小さくなる
ようにする。このことは又、次のサイクルで積を補正す
る必要のあるときにも当ては筐る。本発明乗算回路では
短辺の入力が18ビットであれば、この入力は、引続く
サイクルで補正することのできる符号付き部分積及びキ
ャリー・ビットを生ずる。
全精度乗算演算中に乗算器コア(58)を通る最終パス
で、乗数は通常17ビットに制限される。17×69−
ビットの乗算は86一ビットの結果を生ずる。
これは、正確に結果ラッチ(70)をシック(80)に
結合するバスの幅である。
前記した20−ビット乗算演算は、結果を保持するのに
86−ビットバスを増さないで行われる。このことは、
3つの余分のビットを考慮しなければならないことを意
味する。3つの余分のビットのうち第1のビットは自明
である。シック(58)は、加ビット乗算演算中につね
に右に1個所だけシフトする。この右シフトによって、
データ径路の最下位端で1ビットが失われる。しかしこ
の乗算演算は17ビットに打切られた商の評価を計算す
るのに使われるだけであるから、このビットはいずれに
しても打切られる。
第2のビットは、本発明の数学関数評価法に関して使わ
れる乗算回路と協働して使う新規な除算法に依存する。
たとえば除算演算で20ビット乗算を使い、除数の逆数
に被除数又は部分剰余を乗ずることによりl7−ピット
商デイジット値を計算するのに使う、被除数はつねに右
にシフトされ長辺を69ビットでな<68ピットにし、
このようにして16−ピット又Fi17−ビットの商デ
イジット値が得られる。引続く各パスでは部分剰余は幅
が69ビットである。しかしこの除算法は、このことが
逆数及び部分剰余の積が決して18一ビットデイジット
を生ずることがないように十分に小さいときに生ずるだ
けであるような方法である。
前記した引き数は、正確な逆数を使って商デイジット値
を計算する場合に妥当なだけである。このようにして第
3のピットが説明される。逆数の評価を使うのでこの評
価の丸めにより商デイジット値を17ビットよりわずか
に大きくする。この除算法は、商デイジットの実際の正
確な値力玉17ビットより決して太き〈hらないように
する方法である。従って本発明乗算回路は、乗数からの
オ一ノくフローを認識し前記したように変換器(72)
の飽和容量を使い応答を最大許容17ビット数にする。
本発明の数学関数評価法と協働して使う除算法は、被除
数をD−ラッチ( 48 ) Kロードすることにより
継続する。マルチプレクサ(62)により定数ポート(
60)から適当な定数を選定し、結果ラッチ(70)が
2で割る被除数に等しくなるようにする。この被除数は
、シフタ(80)を通過しフィードバックラッチ(82
)内に保持される。次いで除数をD−ラッチ( 48 
) Kロードする。除算法の前記した部分で計算した除
数の短い逆数はC−ラッチ(44)の最下位半分内に留
1る。
第1の商デイジット値は、前記した20ビット乗算演算
を使い乗算器コア(58)で短い逆数に被除数を乗ずる
ことによって計算する。この積は、シフタ(58)で右
に1ビット位置だけシフトした後結果ラッチ(70)に
保持する。この積は、変換器(72)で非冗長ビットに
変換しE−ラッチ(74)にロードする。E−ラッチは
商デイジット値を17ピットに打切りこれをシステムバ
ス(42)に入れる。商デイジット値は、システムバス
(42)カラC−ラッチ(44)の最下位半分に留1る
短い逆数値を乱さないでロードする。
次いで第1の部分剰余を計算する。マルチプレクサ(6
2)ぱC−ラッチ(44)の最上位半分から第1商デイ
ジット値を選定する、変換器(64)は、D−ラッチ(
48)K記憶され、乗算器コ7(58)のMULTIP
LICAND INPUT  を駆動するようにマルチ
プレクサ(66)によク選定した除数を否定する。
被除数の半分に等しい値はフィードバックラッチ(82
)からシフタ(84)を変えない壕1で通過させFEE
DBACK INPIJ’!’  ヲ乗算器−z 7 
( 5s ) K駆動−jル。
次いで第1の商デイジット値を否定した除数を乗じて乗
算器コア(58)で被除数から差引く。この全過程は単
一のクロツクサイクルで起る。減算演算は結果の17の
最上位ビットを相殺する。次いで結果ラッチ(70)内
の値を左に17ビット位置だけシフトしフィードバック
ラッチ(82)にロードする。
この処理は、所望数の商デイジット値が得られる1で、
前記した繰返し内の被除数の代りに逐次の各部分剰余を
使い繰返す。
剰余の値は負にすることができる。剰余が負であれば次
の商デイジット値も又負である。しかし商ディジット値
はM[JLTIPLIER INPUT に送られ次の
剰余を計算するようにする。縄几TIPLIER IN
PtJTは負数を受入れることができない。表示器(7
6)は、剰余の符号を定め、剰余が負であるときはステ
ータスブロック(78)で符号ステータスフラグを設定
する。変換器(72)は符号ステータスフラグに基づい
て商デイジット値を補足し、商デイジット値がつねに正
数に変換されるようにする。変換器(72)は又、符号
ステータスフラグによシ制御され、被乗数の符号が、新
たな各剰余を計算するときにつねにフィードバックラッ
チ(82)内に記憶される値の符号とは反対になるよう
にする。
逆数バイアス調整係数を逆数にその打切りに先だって加
えるので、商デイジット値はl8一ビット数内にあふれ
させることができる。商ディジット値がつねにl8−ビ
ット値より小さいという除算法の特性が分っているから
、18−ビット値へのオーバフローは、変換器(72)
で検出され前記したように最大許容l7−ビット数に代
えられる。
平方根演算特定ハードウェア 本発明方法と協働して使われる乗算回路は又、本出願人
による米国特許願明細書「長方形縦横比乗算器を使い開
平機能を行う方法及び装置」に詳しく記載してある、開
平機能を行う新規な方法と協働して使うことができる。
本発明方法と協働して使われる、開平機能を行う方法は
除算機能を行う前記した方法に極めて類似している。し
かし平方根機能に使われるが除算機能には使われない若
干の乗算回路(40)の特長がある。たとえば乗算回路
(40)は、各平方根値をその計算の際に選択的に否定
できる能力を持たなければならない。このことはD−ラ
ッチ(48)の4つの4半分への再分割により行われる
。最上位4半分は幅が18ビットであり、残りの3つの
4半分は幅が17ビットである。
乗算回路(10)と協働して使われる、開平機能を行う
方法は、修正ニュートンーラフノン近似を使いオペラン
ドの平方根の逆数の近似を繰返して生ずる。これ等の繰
返しの式は次のようである。
1’=  y’  (  3/2  −  y/2(y
つ2 )この式で y” =逆数の新たな値 yl =逆数の古い値 y =偶数の指数を持つ各オペランドに対するオペラン
ド y” =  y’ ( 3/2 − y(y’)2)こ
の式で y″=逆数の新たな値 y′=逆数の古い値 y=奇数の指数を持つ各オペラン.ドに対するオペラン
ドの半分 前記式の各繰返しは乗算器コア(58)を通る3回のパ
スで評価され、逆数の値を乗算器コア(58)を通る6
回のパスで生ずるようにするのに2回の繰返しが必要で
ある。第1のパスに先だって、逆数に対するシード値を
参照用テーブル(図示してない)からシステムバス(4
2)を経てC−ラッチ( 44 ) Kロードする。オ
ペランドは初めにD−ラッチ(48)内にロードする。
第1の反復の第1のパスで■JX(66)は、D−ラッ
チ( 48 ) K記憶されたオペランドを選定してこ
れをMULTTPLICAND INPUT  を経て
乗算器コア(58)に入力する。逆数シード値はC−ラ
ッチ(44)から■JX(62)を経て乗算器コア(5
8)の■几TIPLIERINPUTに入力する。次い
で乗算器コア(58)はシード値と前記式のy−y’又
はy4,−y’K対応するオペランドとの積を生成する
。この積は次いでフィードバックラッチ(52)にロー
ドする。偶数指数に対する2による除算は、シック(6
8)内で右[1個所のシフトにより行われる。
第2のパスではフィードバックラッチ(82)内に存在
する前回の積は、C−ラッチ(44)内に記憶されたシ
ード値をふたたび乗ずる。この積の生成中に、積を否定
して、加算器(136)の定数ポート(138)から出
力される定数の3つの半分に加えられ前記式の( 3/
2 − Y(Yつ)及び( 3/2 − y/2(yク
2の項を生成する。これ等の項のうち適当な項を次いで
フィードバックラッチ(82)にロードする。
乗算器コア(58)を通る第3のパスは、C−ラッチ(
44)内に記憶されたシード値とフィードバックラッチ
(82)内に記憶された値との積を生成することによう
繰返しを完了する。この最終積は、変換器(72)で変
換されC−ラッチ(44) Kロードする。オペランド
はDラツチフィードバックラッチ(82)内に留1り、
回路(40)はこれにより前記式の付加的繰返しのため
に初期設定する。
前記式の第2の反復中に乗算器コア(58)を通る最終
パスで逆数バイアス調整係数を、根デイジット値を生ず
るのに使うときに逆数値がつねに根デイジットの正確な
値又は大きすぎる最終場所で1単位である値を生ずるこ
とを逆数が保証するように前記の値に加える。シフタ(
68)は1ビット位置だけ左へのシフトを行いデータ径
路内に最高数の有効データピットを許容する。最上位デ
ータピットは、オペランド及び逆数値の正規化により消
費される。逆数の最終値は変換器(72)で非冗長フォ
ーマットに変換する。又最上位ビットは、Eーラッチ(
74)及びシステムバス(42)を介してC−ラッチ(
44)の最下位の半分にロードする。逆数の変換中にオ
ペランドに定数ポート(60)にょシ出力された定数の
半分を乗ずる。シフタ(68)は、偶数指数に対して1
個所右へのシフトを行い、又奇数の指数に対してはシフ
トを行わない。シフタ(68)から出力される値は次い
でフィードバックラッチ(82)にロードされ、奇数指
数に対してはオペランドの半分の値に等しく又偶数指数
に対してはオペランドの狐に等しい。
本発明方法と協働して使われる平方根法の付加的な要求
は、前回に計算した根ディジット値を後の計算で使わな
ければならないことである。前回の根テイジット値は、
その計算後にシステムバス(42)の最上位17ビット
内に存在する。この根デイジット値ViD−ラッチ(4
8)の任意の4半分にロードすることができなければな
らない。従って回路(40)は、この選択的ローデイン
グを許容するマルチプレクサ(50)、(52)、(5
4)を備えている。さらに前記したようにD−ラッチ(
48)の各4半分は、負のデイジットを示す負の剰余を
ステータスブロック(78)内の符号ラッチが示すと否
定することができる。
平方根法の別の要求は、各機デイジット値を生ずる打切
システップに先だって乗算器コア(58)によか出力さ
れる積にディジットバイアス調整係数を選択的に算入で
きることである。これ等の補正係数はA−ラッチ(56
)を経て乗算器コア(58)のADDE凡INPUTに
入力され、これ等の係数の加算が平方根法に通常必要で
ある以上にもはやクロックサイクルを招かないようにす
る。
システム(工0)の残Dの部分と協働する乗算回路(4
0)はこのようにして、区分多項式に基づく近似法を使
い数学関数評価法に必要な加算、除算及び平方根の演算
を行うことができる。
数学関数近似 第6図において回路(4o)と協働して使う本発明の数
学関数近似法はフローチャートの形で例示してある。図
示の方法は、第2図及び第3図に示した回路(40)の
ような加算ポートを持つ長方形縦横比乗算器を使い迅速
に加算、乗算、除算を行い又平方根演算を行うことので
きる、第1図について述べたシステム(1o)のような
算術コプロセツサシステムで操作するのにとくに適して
いる。
一般に第6図に示した方法は、若干の規定の最大相対誤
差E内1で正確な与えられた2ε(a,b)K対する関
数f [zlに対し近似を計算するのに使う。
説明の便宜上、f Izlの近似は形fa(zつ=F 
*z’ *Iz)を持つものとする。この式で2′は入
カ引き数2から得られる減小した引き数である。zJd
固定小数点数として表わすことのできる、Xがら得られ
る減少した引き数である。P (zlは2の関数である
。又Fは、固定小数点演算を使いP [zlを計算する
ことのできる基準化因数である。この形で近似f,(χ
)を定める1万法では、基点間隔(a,b)の部分集合
である間隔でf(χ’)/(F*X’) −P (z 
)の最大値を最小にする性質を持つ多項式になるようK
 P (7.1を選定する。このような近似はミニマッ
クス近似と呼ばれる。ミニマックス近似に対し、f(χ
つ/(F*z’ )及びP(zlo間の差の最大値は、
P[Zl(7)次数(degree)を増加させるに伴
って減少する。近似の一層一般的な形は、近似の値の決
定が本発明方法と協働して使うどきにシステム( 10
 ) Kよシ迅速正確に行われる加算、乗算、除算及び
平方根の計算だけを含む場合に、使うことができる。
従来は、このような近似は、その評価が計算時間によっ
て費用がかかるので有効には使われていない。このよう
な近似を評価する費用は、定数表と近似fa(χつの値
を計算するのに必要な加算、乗算、除算及び平方根とか
らロードを行うのにかかる時間の和である。たとえばF
(z) = ao + a1 z−1−* 2 a2 z  が定数表に記憶された係数ao, al,
 a2?持つ次数2の2の多項式であれば、この場合ホ
ーナー(Horner)  c7)規則にょルP [z
1 (7)評価は、次のようにして進行し、 p1 = z*a2+ al p■ = z*P1 + ao P(z) = PQ そして定数記憶装置(28)からの定数の2回のロード
と共K2回の乗算及び2回の加算を必要とする。本発明
方法と協働して使うシステム( 10 ) Kよりこの
ような近似を使うことが有効になる。その理由は、PI
及びp■の評価中に生ずる形C*D十八の式を迅速に計
算するようにしてあるからである。ホーナーの規則に類
似で数学関数の他の形の近似を迅速に評価するのに使う
ことのできる方式が存在する。
従来は前記したような近似を使うことは有効になってい
ない。本方法は、第1に乗算と共に加算を各反復で行い
、第2に加算、乗算、除算及び平方根を含む変換を行い
、第3K全×全乗算演算を使うことを必要とする。本方
法の技術を従来のサ一キットを使って実施する場合には
、加算シフト型乗算器の使用により評価が極めて遅く進
行し、又は高速乗算器の構成にかなりのサーキットを使
用しなければならない。配列乗算回路は、引き数の単独
の又は定数により全×全の乗3Iをつねに行う必要があ
るので一層複雑になる。
本発明システムでは従来の問題は、1回の反復で乗算及
び加算を迅速に行うことのできるADDERINPUT
を持つ乗算回路(40)のような長方形配列乗算器の使
用によって解決している。さらに本発明方法と協働して
使う長方形配列乗算器は、高速の乗算、除算及び平方根
の計算を行うことができ、オペランドの適当な基準化の
使用によシ、全×全より少ない乗数を使い正確な乗算を
行うことにより時間を節約することができる。
多項式評価法を、19 X 69ビットの縦横比を持つ
乗算器コア(58)のような乗算器コアを持つ回路(4
0)のような配列乗算回路について述べる。
しかし本発明方法が加算ポートを持つ広い範囲の結合+
X回路に適用できるものはもちろんである。
前記した加算ポートを持つ特定の乗算回路は、本発明の
説明のために選んだ実施例であって本発明の範囲を限定
するものではない。
第6図は、一般に本発明の数学関数近似法を示すフロー
チャートである。第6図において計算はステップ(14
0)で開始する。ステップ(140)ではシステム( 
10 ) K近似しようとする関数f(χ)と引き数2
とをロードする。この近似広はステップ(142)で継
続する。ステップ(142)では引き数χを引き数χ′
及び2にし、このようにして近似法を一層有効にする。
変えた引き数χ′及び2を定めると、本近似法はステッ
プ(144)で継続する。ステップ(144)ではP 
(z)の値を定める。P (z)の値を定めた後本近似
法はステップ(146)で継続する。ステップ(146
)では近似値fa(z’) = F z’ P(z)を
定める。本近似法はステップ(148)で継続しfa(
χつの計算値からf Izlの近似値を回収する。
2は一の<z<十〇の範囲の2進小数点数であるとする
。2進浮動小数点Fi3つの各別の欄を使って表わす。
すなわち符号S、シグニフイカンド(signific
and) M及び指数Bである。これ等の欄は、(−1
)S*(M)*2 ( E − BIAS )  に等
しい数を表わすのに使う。BIAS  は指数欄に加え
られる随意の定数であり、記憶された全部の数が負でな
い整数である指数Bを持つ性質を備える。非零の数のジ
グニフイカンドMはつねvclより大きいか1に等しく
2より小さい数である。1対の例は、式fa(χつ= 
F*x’ *P (Z)  の近似を評価するのに使ラ
たときにこの装置の価値を示す。
第IK入力引き数Iの正弦の計算を考える。随意の引き
数χの正弦の近似法は引き数χを次のようにすることに
よって開始する。先ず引き数を恒等式sin(z) =
−sin(−z)を使うことによシ非負にする。このこ
とはXが負であれば、Xの代りに−Xを使い本近似法に
より定壕る応答は否定してXの正弦値として戻さなけれ
ばならない。第2K引き数を、定数π/2の反復の減算
によシπ/4より小さい大きさを持つ値X′にする。こ
の反復減算演算はX割るπ/2の正確な除算K@接I/
C関連する。この方法から得られる変えた引き数X′は
X割るπ/2の除算後の正確な剰余である。第7図に示
すようにこのようにして得られた商の最後の2つの有効
ピットは、fa(xつの計算値からのf(Xlvc対す
る所要の近似を回収するのに適用しなければならない適
正な恒等式を定めるのに調べて使う。
π/4より小さい大きさを持つ引き数X′に対しX′の
正弦を近似するのに使う近似式は fa(xつ =x’P(z) この式でz=(xつ は変えた引き数X′の二乗である
。この場合P iZlは多項式 P(z)= aQ  + a1 z  +  a2 z
  +  a3 z  十a4  z  +as  z
+ a5 Z + a7 z  である。
この式の次数7はその10進形の係数を第8図に示して
ある。π/4より小さい大きさを持つ引き数X′に対し
ては、近似sin(xつ割るX’P[ZIKおける相対
誤差の大きさは10←20゜7)よシ小さい。P [z
lの各係数を定めると、これ等の係数は、定数記憶装置
(28)からシステムバス(16)、(42)を介して
取出し必要に応じ第2図及び第3図に示した乗算回路(
 40 ) K入力する。
ホーナーの法則を使う近似P (zlO値の決定は次の
ようVC進行する。P (zlの評価のホーナーの法貝
11は次の7つの反復を必要とする。
P5 −  z  :a7 +  a6,P5 = z
*P5 +a5, p4  zP5+a4+ P3 − z P4 + a3, P2 = z P3 + a2, P1= z*P2 + at, PQ − z Pl+ aQ, P(zl= po これ等はそれぞれ積及び和を含む。評価法は定数記憶装
置(28)からシステムノζス(16)(42)を介し
て定数a7で開始する。定数37は、C−ラッチ(44
)に保持されMUX ( 62 )を経て乗算器コア(
 53 ) (7) MULTIPLIER 入力に入
力する。引き数2は、システムバヌ(42)からD−ラ
ッチ( 48 ) Kロードされ変換器(64)及び■
JX(66)を経て乗算器コア(58)に入力されるへ
itJLTIPLIcAND に入力する。次いで乗算
器コア(58)は前記したようK積a7*z  を生成
する。引き数2は69ビットの情報を含むが、定数87
は乗算器コア(58)を通るパスごとに18ピットの情
報だけしか含1ない。すなわち全精度積の7*zを生成
するのに1、2、3又は4サイクルかかる。サイクル数
は係数の7内の先行非零ビットの数による。定数a6は
又システムバス(16)、(42)を介し定数記憶装置
(28)から八一ラッチ(56)VCロートする。A−
ラッチ(56)からこの定数は乗算器コア(58)のA
DDER入力する。定数a6は次いで積a6*zK加え
て和P6= afz+ a5  を生成する。
項P6は次いで変換してC−ラッチ( 44 ) vc
システムバス(42)を経てロードする。C−ラッチ(
44)に保持した後、P6はMUX ( 62 )を経
て乗算器コア( 58 ) K MULTIPLIER
 入力を経テ入力シテ、P6及び引き数2の積を生或す
る。係数35は乗算器コア( 58 ) c7) AD
DBI{,入力に同時に入力されa5ヲP6*zに加え
てP5=P6z十a5を生成するようにする。
この方法は、係数aOを前回の積P1*zに加えPO 
一pi z + aQを生成する1で継続する。この点
て最?結果を変換しP (zlの最終値をE−ラッチ(
74)に入れる。P (zlO値を定めると、X′の正
弦の近似値fa(x’) = x’ P(z)は、浮動
小数点乗算を使イX’及びP(z)の積を計算すること
によって定める。
計算する数学関数f(x)に従ってステップ(148)
に示すようvcft幻の所要の近似を回復するのにfa
(xつの計算値に変換を適用することが必要である。第
7図に示すように正弦関数に対しこれ等の最終変換は、
1 − s+n(xつの正方根の可能な計算と共に結果
の可能な否定を含む。
本発明方法により、ホーナーの法則に生ずる乗算及びカ
ロg z a7 + a5, z*P6+a5−z*P
1 +a■を迅速に計算することができる。本発明方法
により又、 J  1  −  sin2(xつ のように平方根の高速計算ができる。これは第7図に示
すように必要である。本発明方法は又全×全以下の乗算
を行うことにより時間を節約することができる。第9図
は、第8図に示した10進形を持つP (zlの16進
形の係数を示す。ホーナーIP:.vcよるP (zl
によるP (zlの評価に使う7個の反復は、全×全の
乗法だけしか使わなければ通常28クロツクサイクルを
要する。第9図に示した16進形の数の調査によシ、P
 lzlを評価するのに必要なクロツクサイクルの数は
28クロツクサイクルから22クロツクサイクルに減ら
せることを示す。Xの正弦をCORJ)IC法により評
価するときは、同様に正確な結果の決定には評価のため
K 96クロツクサイクルを要し、定数表K 32の定
数の記憶を必要とする。本発明方法と協働して乗算回路
( 40 ) t持つシステム(10)を使うときは、
結果の決定には評価のためK32クロックサイクルを要
し定数表への7定数の記憶を必要とする。別の考慮点は
、本発明方法によるP (z}の計算が固定小数点演算
を使い積及び和の計算によクー層早くなることである。
この場合浮動小数点数の指数を得るサーキツ} IJの
必要がないから計算を一層早くする。浮動小数点演算の
使用を必要とする唯一の乗算は最終積X′及びPtz+
である。X′とP(zlとのこのような浮動小数点積は
、広い動的範囲の可能な入力引き数Xを生ずるのに必要
である。
本発明に伴う重要な考慮点は、引き数Xの減小が減小引
き数X′及びZK導入される誤差を最小にするのに極め
て正確に行わなければならないことである。このような
誤差は、近似の実際の計算が減小引き数を使って行われ
るので挽回できないからである。引き数Xの減小は通常
、引き数Xの広い動的範囲に適応するのに本システムに
より適応される最高に利用できる精度で通常行われる。
入力引き数Xのこの正確な減小は又他の関数の計算にも
必要である。
本システムの利用できる精度が最終結果に必要な精度よ
シ十分に高ければ、多項式に基づく近似のひんぱんに引
用される単調でない動作をなくすことができる。多項式
に基づく近似の単調でない動作をなくすことはできる。
その理由は、加算、減算、乗算、除算及び平方根の演算
を最終結果に必要であるよりも高い精度で行うことが最
終結果の値を定めるときに捨てられるビットに単調でな
い動作を制限するからである。たとえばπAよシ小さい
大きさを持つ引き数Xに対し正弦関数を近似するときは
、10(−19・7)よシ小さい大きさを相対誤差が持
つ近似はいずれもその先行64有効ビットに切ったとき
に単調になる。
長方形縦横比乗算器を使う本方法の性能向上を示す第2
の例は、入力引き数Xの底2の対数すなわちtag (
x)の計算の方法がある。引き数減小、2 近似の計算及び正弦関数に使う結果変換の一般的解決法
は、又底2の対数関数に対しても使われる。
しかし本発明方法の価値を理解するVcFi、引き数減
小と本方法の多項式評価位相との調査が必要である。
正でない引き数Xに対する底2の対数の値を計算するK
は通常誤差が考えられる。従って正数である引き数XK
対する底20対数の近似を考える。
引き数Xの底2の対数の引き数減小の方法は、先ず引き
数Xの2進浮動小数点表示をそのシグニフイカンドM及
びその指数EK分離することにより開始する。その符号
Sは、Xがつねに正であるから必要がない。前記したよ
うに2進浮動小数点数のシグニフイカンドは1より大き
いか1に等しく2より小さい数である。入力引き数Xの
シグニフイカンドMが2より大きいか又は2より小さい
か2K等しいかに従って、yの値は、第10図に示すよ
うに計算され、JzA−L  より太き〈かつJT−1
より小さく又はf丁−1に等しい数である。第10図に
示すようにyの決定は、1の減算に先だってXのシグニ
フイカンドM割る2の可能な除算を含み、2で割る潜在
的除算は浮動小数点演算の使用を必要としない。引き数
減算は、x’ =y/( 2+y )を計算することに
よう継続する。X′のこの計算は、乗算回路(40)が
y割る2+yの所要の除算を迅速正確に行うことが前記
したようにできることを必要とする。
Xの底2の対数の近似は、w=(xつとX′の二乗とを
計算しX掛けるX’ *Q(W)の底2の対数を近似す
ることによシ継続する。この式でQfw+は次数9の多
項式であり、Q (wl = bQ + bl*w +
 b2*w2+ b3”W3+b4*W4+b5*W5
+b6*W6+b7*W7+b8*W8+b9*W9 ?の式の10進形の係数は第10図に示してある。
log (xl掛けるX′*Q(W)を近似する際の相
対誤差は10C21゜7)より小さい。正弦関数の近似
の評価に関しては、ホーナーの方法を使い多項式Qtw
lを評価しそれぞれ1回の乗算及び1回の加算を含む9
回の反復を使うことができる。固定小数点演算を使いQ
■■■)を評価しようとする場合には、この多孔式の各
係数bQ,bl,・・・b9  は4で割ることにより
Q(wlの値を固定小数点演算を使い定めることができ
なければならない。16進形のこれ等の係数を考慮する
と4で割ったときに第11図に示すように、短×全の乗
算を使う本発明方法の能力は16進形のこれ等の係数の
う゜ちいずれも十分に多〈の先行零を持たないから利用
することができないという早い結論になる。
短×全の乗算を使う本発明の能力をどのように利用でき
るかを例示するように、X′の大きさが決して0.17
2より大きくないことに留意して開始する。従ってz 
= 32*(Xつ2がX′の自乗の32倍であれば、2
の大きさは0.947より決して大きくはない。
Xの底2の対数の近似は4 x’* P(z)と書くこ
とができる。この場合P (zlは次のような多項式で
ある。
P lzl= aQ + al*z + a2”z”+
 a3*z3+ a4*z’+a5*z5+ a6*z
’+ a7*z”+ a8*z8+ a9*Z9この式
の16進形の係数は第13図に示してある。短×長の乗
算を使えることはこの表から明らかである。第13図を
考えると、P (zlの評価が1回の%×全、3回のμ
×全、3回の3/4×全及び2回の全×全の乗算を行う
ことができることを示す。多項弐P [zlの評価は従
って、全×全の乗算だけしか使わない場合に必要な36
回のクロツクサイクルの代りに短×全乗算を使えば24
回のクロツクサイクルで完了することができる。このよ
うにして、P (zlO値を定めるのに必要なクロツク
サイクルの数が33嘩の減少になる。
要するに本発明により数学関数の近似の計算を行う新規
な方法が得られる。本方法は3つの主要ステップ:{1
}多項式に基づく近似が一層有効である範囲に出発引き
数Xの大きさを減小し、(2)この減小した引き数と提
案された回路の特別の機能とを使い結果を計算し、(3
)この計算した結果を近似される数学関数の値を近似す
る値に変換することから戒っている。
本発明方法の重要な技術的利点は、迅速正確な乗算除算
及び平方根の演算を行うように協働する加算ポート及び
協働するサーキツ} IJを持つ長方形縦横比乗算器を
使用することにある。付加的加算ポートにより本システ
ムは1回の反覆で乗算及び加算を行うことができる。こ
れ等の特長によう本システムは、N回の反復でホーナー
の法則を使い次数Nの多項式を評価し乗じようとする数
の1つに先行零を利用することによシ所要の乗算演算を
一層迅速に行うことができる。
本発明の他の有利な特長は、比較的少数の定数を使用し
て与えられたレベルの正確さの得られることである。こ
の特長により本システムは定数記憶装置に釦ける定数の
記憶に一層小さい空間を割当てればよい。
本方法は又多項式に基づ〈関数近似法の使用に関しひん
ぱんに行われる単調でない動作の障害を除〈。多孔式に
基づく近似法の単調でない動作は、加算、乗算、除算及
び平方根の各演算を最終応答の精度に必要であるよりも
十分に高い精度で行うことによりなくすことができる。
さらに時間空間の節約の特長は、長方形縦横比乗算器を
使い迅速に行われる変換による定数及びオペランドの基
準化である。この基準化により、精度の低下を伴わない
で定数及びオペランドの乗算に一層複雑でない乗算器を
使うことができる。
この規準化は又、全×全の乗算の応答をクロツクサイク
ルが一層少なくて済む同等の短×全の乗算として行うこ
とができる。
本発明方法を特定の回路実施例に関して述べたが、本発
明の関数近似法は、広い範囲の縦横比と広い範囲に変る
個数の加算ボートとを持つ多数の乗算器に符号付きデイ
ジット又は非冗長フォーでマットを使い同様に適用でき
る。
本発明はなおその精神を逸脱しないで種種の変化変型を
行うことができるのはもちろんである。
【図面の簡単な説明】
第1図は本発明方法を利用するように構成した数値処理
システムのブロック図である。 第2図は本発明方法に協働して使うのに適した乗算回路
のブロック図である。 第3図は本発明方法に協働して使うのに適した乗算器コ
ア回路の配線図である。 第4図は第2図の乗算回路に使う加算回路の演算を示す
真理値表である。 第5図はMUXを表示した表である。 第6図は本発明方法を示すフローテヤートである。 第7図は本発明方法を使う正弦関数の評価用の所要の結
果変換を示す表である。 第8図及び第9図は本発明方法に協働して使う定数の表
である。 第10図は本発明方法を使いtOg2関数の回復処理を
行うのに必要な式を示す。 第11図、第12図及び第13図は本発明方法に協働し
て使う定数の表である。 10・・・数値処理システム、18・・・制御タイミン
グ回路、20・・・マイクロプログラム記憶装置、28
・・・定数記憶装置、34・・・乗算回路、40・・・
長方形縦横比乗算回路 第2 (20ビット) 0 0 0 O c[35:3川 1,!SBLS日 c[I7]   c[+601 c[35] c[53] O c[34] c[34: 18] c[52:361 c[70:54] c[33:17] 0 c[I7] c[35] c[53] O 定数ポート30からの定数 O 0 O O 10拳2−17 O 0 00A HEX 2−−1 O 0 100Hα FIC;. 5 手続補正書(斌) 特 許 庁 長 官 殿 1.事件の表示 平戒2年特許願第263267号 3,補正をする者 事件との関係 判一千出臥 サイリクス、コーパレイシャン 7.補正の内容 別紙のとおり

Claims (1)

  1. 【特許請求の範囲】 1、複数の数学関数の近似を計算する数値システムにお
    いて、評価しようとする選定した関数と近似を計算しよ
    うとする間隔と結果における最大許容相対誤差と初期引
    き数とをシステム内部に入力するサーキツトリと、 前記初期引き数を第1及び第2の変換した引き数に変換
    するサーキツトリと、 前記第2変換引き数の関数で前記の選定した数学関数に
    協働する多項式近似を評価するサーキットリと、 前記の第1の変換引き数と前記多項式近似の評価によつ
    て生ずる値とを使い近似関数の値を定めるサーキツトリ
    と、 前記近似関数の前記値を変換し前記初期引き数に対する
    数学関数の近似を構成する結果を回復するサーキツトリ
    と を包含する数値システム。 2、多項式近似を評価する前記サーキツトリを、第1の
    定数と第2の定数及び前記第2変換引き数の積との第1
    の和から成る第1の1次多項式を評価するサーキツトリ
    と、第3の定数と第4の定数及び前記第1和の積との第
    2の和から成る第2の1次多項式を評価するサーキツト
    リと、各反復ごとに前記の第3及び第4の定数の代りに
    前記の選定した数学関数に協働する所定の定数を使い又
    前記第1和の代りに直前の反復の1次の多項式を評価す
    ることから得られ前記多項式近似により生ずる前記値を
    構成する、最終反復により生ずる値を使う前記の第2の
    1次多項式の計算を反復するサーキツトリと により構成した請求項1記載のシステム。 3、前記の評価する各サーキツトリと前記の反復するサ
    ーキツトリとに、加算入力、乗数入力及び被乗数入力を
    持ち各1次多項式の計算に必要な積及び和を同時に評価
    することができるようにした乗算回路を設けた請求項2
    記載のシステム。 4、前記乗算回路の前記加算入力又は前記乗算回路の前
    記被乗数入力に前記乗算回路により出力される結果を選
    択的に送るように作用できるフィードパックデータ径路
    を備えた請求項3記載のシステム。 5、前記乗算回路として長方形縦横比を持つ乗算回路を
    使つた請求項3記載のシステム。 6、前記の決定するサーキツトリに、前記の多項式近似
    の評価により生ずる前記値と前記第1変換引き数と倍率
    との積で前記近似関数の前記価を構成する積を生成する
    サーキツトリを設けた請求項1記載のシステム。 7、積を生成する前記サーキツトリとして長方形縦横比
    を持つ乗算回路を使つた請求項1記載のシステム。 8、前記第2変換引き数を固定小数点数により構成し、
    前記多項式近似を固定小数点計算を使つて評価するよう
    にした請求項1記載のシステム。 9、多項式近似と前記の第1及び第2の変換引き数を生
    ずる引き数変換ルーチンと各数学関数に対する結果変換
    ルーチンとを記憶するメモリ回路と、 このメモリ回路に結合され適当な多項式近似と適当な引
    き数変換ルーチンと適当な結果変換ルーチンとを前記の
    入力された選定した関数に応答して選択し実施する制御
    サーキツトリとを備えた請求項1記載のシステム。 10、前記結果変換ルーチンのうちの選定したルーチン
    が加算、減算、乗算、除算及び平方根の各演算を必要と
    し、前記近似関数の前記価を変換する前記サーキツトリ
    を、 前記の加算及び減算の演算を行う算術論理演算装置と、 前記の乗算、除算及び平方根の演算を行うのに使う乗算
    回路と により構成した請求項9記載のシステム。 11、前記乗算回路として長方形縦横比を持つ乗算回路
    を使つた請求項10記載のシステム。 12、前記決定するサーキツトリに、 前記第1変換引き数と前記多項式近似の評価によつて生
    ずる値との積を浮動小数点乗算演算を使つて生ずるサー
    キツトリを設けた請求項1記載のシステム。 13、積を生ずる前記サーキツトリを、長方形縦横比を
    持つ乗算回路によサ構成した請求項12記載のシステム
    。 14、長方形縦横比乗算回路を備えた数値システムを使
    い複数の数学関数の近似を計算する方法において、 評価しようとする選定した関数と近似を計算しようとす
    る間隔と結果の最大許容相対誤差と初期引き数とを前記
    数値システムに入力し、 前記初期引き数を第1及び第2の変換引き数に変換し、 前記の第2変換引き数の関数で前記の選定した数学関数
    に協働する多項式近似を長方形縦横比乗算回路を使つて
    評価し、 前記の第1変換引き数と前記多項式近似を評価する前記
    ステップにより生ずる値とを使い近似関数の値を定め、 前記近似関数の値を変換し初期引き数に対する数学関数
    の近似を構成する結果を回復するようにする ことから成る計算法。 15、多項式近似を評価する前記ステップを、第1の定
    数と第2の定数及び前記第2変換引き数の積との第1の
    和から成る第1の1次多項式を長方形縦横比乗算回路で
    評価し、 第3の定数と第4の定数及び前記第1和の積との第2の
    和から成る第2の1次多項式を前記乗算回路を使い評価
    し、 各反復ごとに前記の第3及び第4の定数の代りに前記の
    選定した数学関数に協働する所定の定数を使い又前記第
    1和の代りに直前の反復の1次多項式の評価から得られ
    前記多項式近似により生ずる前記値を構成する、前記反
    復ステップの最終反復により生ずる値を使い第2の1次
    多項式を評価する前記ステップを反復して行う請求項1
    4記載の計算法。 16、近似関数の値を定める前記ステップを、多項式近
    似により生ずる値と第1の変換引き数と倍数との積で近
    似関数の値を構成する積を長方形縦横比乗算回路を使つ
    て生成して行う請求項14記載の計算法。 17、第2の変換引き数を固定小数点数により構成し、
    多項式近似を評価するステップを、 固定小数点計算を使い多項式近似を評価して行う請求項
    14記載の計算法。 18、各数学関数に協働する各多項式近似に協働する1
    組の係数を記憶する請求項15記載の計算法。 19、長方形配列乗算回路に協働するメモリ回路に、各
    数学関数に対する多項式近似、引き数変換ルーチン及び
    結果変換ルーチンを記憶し、 評価しようとする選定した関数を入力するステップに応
    答して適当な多項式近似、適当な引き数変換算ルーチン
    及び適当な結果変換ルーチンを選択する請求項14記載
    の計算法。20、決定する前記ステップで、 長方形縦横比乗算回路を使い第1変換引き数と浮動小数
    点乗算演算を使い多項式近似により生ずる値との積を生
    成する請求項14記載の計算法。
JP2263267A 1989-10-02 1990-10-02 数学関数の近似を計算する数値システム及び計算法 Pending JPH03208170A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/416,110 US5042001A (en) 1989-10-02 1989-10-02 Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US416110 1989-10-02

Publications (1)

Publication Number Publication Date
JPH03208170A true JPH03208170A (ja) 1991-09-11

Family

ID=23648573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2263267A Pending JPH03208170A (ja) 1989-10-02 1990-10-02 数学関数の近似を計算する数値システム及び計算法

Country Status (5)

Country Link
US (2) US5042001A (ja)
EP (1) EP0421092B1 (ja)
JP (1) JPH03208170A (ja)
AT (1) ATE175789T1 (ja)
DE (1) DE69032891T2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204720A (ja) * 1990-01-08 1991-09-06 Nec Corp 初等関数演算装置
US5331582A (en) * 1991-12-16 1994-07-19 Pioneer Electronic Corporation Digital signal processor using a coefficient value corrected according to the shift of input data
EP0596175A1 (en) * 1992-11-05 1994-05-11 International Business Machines Corporation Apparatus for executing the argument reduction in exponential computations of IEEE standard floating-point numbers
US5305248A (en) * 1993-04-23 1994-04-19 International Business Machines Corporation Fast IEEE double precision reciprocals and square roots
EP0622727A1 (en) * 1993-04-29 1994-11-02 International Business Machines Corporation System for optimizing argument reduction
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
US5671170A (en) * 1993-05-05 1997-09-23 Hewlett-Packard Company Method and apparatus for correctly rounding results of division and square root computations
US5390136A (en) * 1993-06-14 1995-02-14 Motorola, Inc. Artificial neuron and method of using same
US5517667A (en) * 1993-06-14 1996-05-14 Motorola, Inc. Neural network that does not require repetitive training
CA2135857A1 (en) * 1994-01-03 1995-07-04 Shay-Ping Thomas Wang Neural network utilizing logarithmic function and method of using same
CN1160450A (zh) * 1994-09-07 1997-09-24 摩托罗拉公司 从连续语音中识别讲话声音的系统及其应用方法
GB2307085B (en) * 1994-09-09 1998-09-23 Motorola Inc Method and system for recognizing a boundary between characters in handwritten text
US5854855A (en) * 1994-09-09 1998-12-29 Motorola, Inc. Method and system using meta-classes and polynomial discriminant functions for handwriting recognition
US5638486A (en) * 1994-10-26 1997-06-10 Motorola, Inc. Method and system for continuous speech recognition using voting techniques
US5596679A (en) * 1994-10-26 1997-01-21 Motorola, Inc. Method and system for identifying spoken sounds in continuous speech by comparing classifier outputs
US5553012A (en) * 1995-03-10 1996-09-03 Motorola, Inc. Exponentiation circuit utilizing shift means and method of using same
US5685008A (en) * 1995-03-13 1997-11-04 Motorola, Inc. Computer Processor utilizing logarithmic conversion and method of use thereof
US5646876A (en) * 1995-04-18 1997-07-08 Motorola, Inc. Method and apparatus for reducing rounding error when evaluating binary floating point polynomials
US5644520A (en) * 1995-05-31 1997-07-01 Pan; Shao Wei Accumulator circuit and method of use thereof
US5771391A (en) * 1995-08-28 1998-06-23 Motorola Inc. Computer processor having a pipelined architecture and method of using same
AU6951696A (en) * 1995-08-28 1997-03-19 Motorola, Inc. Method and system for performing an iir filtering operation
US5936871A (en) * 1995-08-28 1999-08-10 Motorola, Inc. Method and system for performing an L2 norm operation
WO1997012331A1 (en) * 1995-09-28 1997-04-03 Motorola Inc. Method and system for performing a convolution operation
US5834672A (en) * 1995-11-09 1998-11-10 Chromatic Research, Inc. Non-linear tone generator
US6763367B2 (en) * 2000-12-11 2004-07-13 International Business Machines Corporation Pre-reduction technique within a multiplier/accumulator architecture
DE10129628A1 (de) * 2001-06-20 2003-01-02 Juergen Kaesser Verfahren und Schaltung zur Erzeugung von sinusartigen Signalen und Taktsignalen für Frequenzen eines Rasters und ihre Anwendung in Funkgeräten
US7702709B2 (en) * 2002-06-21 2010-04-20 Broadcom Corporation System and method for optimizing approximation functions
DE10255351B3 (de) * 2002-11-27 2004-08-26 Infineon Technologies Ag Verfahren zum Generieren von Multiplikatorkoeffizienten für einen Mischer und zugehörigen Mischer
US7287051B1 (en) * 2003-10-03 2007-10-23 Altera Corporation Multi-functional digital signal processing circuitry
GB0411880D0 (en) 2004-05-27 2004-06-30 Imagination Tech Ltd Method and apparatus for efficient evaluation of "table-based" mathematical functions
US7716268B2 (en) * 2005-03-04 2010-05-11 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for providing a processor based nested form polynomial engine
US7606850B2 (en) * 2005-03-30 2009-10-20 Lockheed Martin Corporation Method and apparatus for providing a base-2 logarithm approximation to a binary number
KR100640807B1 (ko) * 2005-08-09 2006-11-02 엘지전자 주식회사 선형보간을 이용한 루트연산방법 및 이를 구현할 수 있는이동통신단말기
KR100835173B1 (ko) * 2006-09-20 2008-06-05 한국전자통신연구원 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법
JP4755129B2 (ja) * 2007-03-16 2011-08-24 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8489664B2 (en) * 2007-12-12 2013-07-16 Applied Micro Circuits Corporation Single clock cycle first order limited accumulator for supplying weighted corrections
US8117172B2 (en) * 2008-05-29 2012-02-14 Dell Products L.P. Compact encoding methods, media and systems
US20100106761A1 (en) * 2008-10-29 2010-04-29 Nokia Corporation Method, Apparatus, and Computer Program Product for Identifying Techniques for Solving Functions
JP5304483B2 (ja) * 2009-06-30 2013-10-02 富士通株式会社 演算処理装置
US9563401B2 (en) * 2012-12-07 2017-02-07 Wave Computing, Inc. Extensible iterative multiplier
US20140372493A1 (en) * 2013-06-14 2014-12-18 Texas Instruments Incorporated System and method for accelerating evaluation of functions
RU2602989C2 (ru) * 2015-01-12 2016-11-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Устройство для вычисления функциональных зависимостей
GB2539415B (en) * 2015-06-15 2017-09-06 Advanced Risc Mach Ltd Apparatus and method for inhibiting roundoff error in a floating point argument reduction operation
KR102594656B1 (ko) * 2016-11-25 2023-10-26 삼성전자주식회사 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법
US10447983B2 (en) * 2017-11-15 2019-10-15 Nxp Usa, Inc. Reciprocal approximation circuit
US11416218B1 (en) 2020-07-10 2022-08-16 Ali Tasdighi Far Digital approximate squarer for machine learning
US11467805B1 (en) 2020-07-10 2022-10-11 Ali Tasdighi Far Digital approximate multipliers for machine learning and artificial intelligence applications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4774685A (en) * 1985-01-31 1988-09-27 Analog Devices, Inc. Approximation system
JPS61256436A (ja) * 1985-05-10 1986-11-14 Hitachi Ltd 演算装置
US4888721A (en) * 1986-09-09 1989-12-19 Hitachi, Ltd. Elementary function arithmetic unit

Also Published As

Publication number Publication date
USRE39385E1 (en) 2006-11-07
EP0421092A2 (en) 1991-04-10
US5042001A (en) 1991-08-20
EP0421092A3 (en) 1992-05-13
ATE175789T1 (de) 1999-01-15
DE69032891T2 (de) 1999-09-30
DE69032891D1 (de) 1999-02-25
EP0421092B1 (en) 1999-01-13

Similar Documents

Publication Publication Date Title
JPH03208170A (ja) 数学関数の近似を計算する数値システム及び計算法
JP3144816B2 (ja) 除算を行なう装置
Pineiro et al. Algorithm and architecture for logarithm, exponential, and powering computation
Karp et al. High-precision division and square root
US6813626B1 (en) Method and apparatus for performing fused instructions by determining exponent differences
US5659495A (en) Numeric processor including a multiply-add circuit for computing a succession of product sums using redundant values without conversion to nonredundant format
JPH07182143A (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
US5245564A (en) Apparatus for multiplying operands
EP0472139A2 (en) A floating-point processor
JPH04227531A (ja) パイプライン浮動小数点プロセッサ
JPH02196328A (ja) 浮動小数点演算装置
JPH08185309A (ja) 4倍精度演算の実行方法
US8898215B2 (en) High-radix multiplier-divider
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH05233228A (ja) 浮動小数点演算装置およびその演算方法
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US20100125621A1 (en) Arithmetic processing device and methods thereof
US5144576A (en) Signed digit multiplier
US20060129625A1 (en) Low latency integer divider and integration with floating point divider and method
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
US20090006509A1 (en) High-radix multiplier-divider
JPH0687218B2 (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
US6697833B2 (en) Floating-point multiplier for de-normalized inputs
Takagi et al. A VLSI algorithm for computing the Euclidean norm of a 3D vector
Takagi A hardware algorithm for computing reciprocal square root