JPH03192429A - 平方根演算装置 - Google Patents

平方根演算装置

Info

Publication number
JPH03192429A
JPH03192429A JP31714289A JP31714289A JPH03192429A JP H03192429 A JPH03192429 A JP H03192429A JP 31714289 A JP31714289 A JP 31714289A JP 31714289 A JP31714289 A JP 31714289A JP H03192429 A JPH03192429 A JP H03192429A
Authority
JP
Japan
Prior art keywords
result
value
constant
exponent part
square root
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
JP31714289A
Other languages
English (en)
Inventor
Hiroshi Nakayama
寛 中山
Noriko Kudo
工藤 法子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31714289A priority Critical patent/JPH03192429A/ja
Publication of JPH03192429A publication Critical patent/JPH03192429A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 [目次] 概要 産業上の利用分野 従来の技術 発明の解決しようとする課題 課題を解決するための手段 作用 実施例 発明の効果 [概要コ 浮動小数点数値の平方根をテーブル参照で求める装置に
関し、 高精度な演算を高速に行え、しかも、ハードウェアの規
模縮小が可能となる装置の提供を目的とし、 浮動小数点の数値を仮数部と指数部とに分解する手段と
、仮数部の数値と第1定数との差を用いたべき乗演算を
繰り返して各演算結果と各演算に対応した係数との乗算
値を初期値にすべて逐次加算する手段と、指数部の数値
と第2定数との整数和を求めて該整数和のシフト演算結
果から指数部の数値が偶数か奇数かを判定する手段、奇
数の判定結果が得られたときに指数部の数値及び逐次加
算の結果で示される値と第3定数とを乗する手段と、奇
数の判定結果が得られたときに乗算結果を奇数の判定結
果が得られなかったときに逐次加算の結果及び整数和で
示される値を出力する手段と、第1定数、第2定数、第
3定数、係数を記憶する手段と、を育する。
[産業上の利用分野コ 本発明は、浮動小数点数値の平方根をテーブル参照で求
める装置に関する。
浮動小数点数値の平方根演算には汎用のマイクロプロセ
ッサが一般に利用さ札 その処理内容を示すマイクロコ
ードがROM内に記述される。
そして、リアルタイム性が要求される信号処理やデータ
量の多い画像処理が行われる場合には、浮動小数点の積
和演算がデジタルシグナルプロセッサ(DSP)を用い
て高速に実行される。
これらの処理では多次元で与えられたデータ間の距離情
報が多くの場合に必要とさ札 したがって、与えられた
浮動小数点数値の平方根を高速に計算することが要望さ
れる。
[従来の技術] このため、特開昭60−191332.61−1954
28号公報などで示されるように、平方根演算のための
テーブルが予め用意さ攬 そのテーブルの参照で平方根
が高速に求められる。
第8図では従来装置の一例が説明されており、与えられ
た浮動小数点数値の仮数部を示すデータが入力データ仮
数部80からアドレスデコーダ82に与えら札 アドレ
スデコーダ82の出力でRO子テーブル4が参照される
また他の従来装置においては、与えられた浮動小数点数
値が属する範囲が判別さへ その範囲の両端と対応した
平方根がテーブル参照で求めら札両平方根の線形補間で
解が求められる。
[発明が解決しようとする課題] しかしながら第8図の従来例においては、23ビツトの
仮数を用意した浮動小数点数値のデータに対して23本
のアドレス線が必要となるので、テーブルが8メガワ一
ド分にも達し、テーブル容量が膨大なものとなる。
また後者の従来装置においては、平方根格納用のテーブ
ルとともに線形補間用のテーブルも使用されるので、テ
ーブル容量が依然として大きなものとなる。
なお、テーブルに格納される平方根の数を索引してテー
ブル容量を減少させる場合には、平方根演算の精度が低
下する。
また、線形補間用のテーブルを省略した場合には、除算
を行なうことが必要となるので、平方根演算の処理速度
が低下する。
本発明は上記従来の事情に鑑みてなされたものであり、
その目的は、高精度な演算を高速に行え、しかも、ハー
ドウェア規模の縮小が可能となる装置を提供することに
ある。
[課題を解決するための手段] 上記目的を達成するために、本発明に係る装置は第1図
のように構成されている。
同図の手段10では浮動小数点の数値が仮数部と指数部
とに分解される。
そして手段12においては、仮数部の数値と第1定数c
O(第4図参照)との差を用いたべき乗演算が繰り返さ
ヘ 各演算結果と各演算に対応した係数ao+  aL
  a2+  a3+  a4  a5.a6+  a
7+  a8+  a9+  alO+  all (
第4図参照)との乗算値が初期値にすべて逐次加算され
る。
また手段14においては、指数部の数値と第2定数cl
(第41!l参照)との整数和が求めろ幌この整数和の
シフト演算結果から指数部の数値が偶数か奇数かが判定
される。
さらに手段16では、指数部の数値が奇数であることを
示す判定結果が得られたときに、指数部の数値及び逐次
加算の結果で示される値と第3定数c2(第4図参照)
とが乗ぜられる。
このように奇数の判定結果が得られたときにはそのとき
の乗算結果力ζ また、奇数の判定結果が得られなかっ
たときには逐次加算の結果及び整数和で示される値hζ
 手段18により最終的な演算結果として出力される。
そして、前記の第1定数cO+“第2定数cL第3定数
c2および係数aO+  al+  a2+  a3+
a4  a5+  a6+  a7+  a8+  a
l:L  alo+allは手段20で記憶さへ 手段
12,14゜16で利用される。
[作用コ 本発明では、浮動小数点の数値が仮数部と指数部とに分
解さ攬 仮数部に関しては乗算と加算の繰り返しで解が
級数的に求められる。
また指数部に関しては、基本的に加算のみで解が求めら
れる。
ただし、基本的な解のシフト演算結果からその解が奇数
であることが確認されると、この解に対する定数乗算で
真の解が求められる。
ここで、仮数部に関しては第1定数co、係数ao、 
 aL  a2+  a3+  a4.  a5.  
a6+  a7、  a8+  a9+  alo+ 
 allが使用さ幌 指数部に関しては第2定数cL 
 第3定数c2が使用さへ それらのみが手段20で記
憶されるので、手段20の記憶容量はきわめてわずかな
ものとなる。
[実施例] 以下、図面に基づいて本発明に係る装置の好適な実施例
を説明する。
第2図のプロセッサ22は浮動小数点数値の平方根が求
めるために利用されており、プロセッサ22の内部にお
〜)て、入力部24.出力部26゜演算部28.制御カ
ウンタ30.データメモリ32、制御部34がバス36
で結ばれている。
このプロセッサ22に与えられた浮動小数点の数値は入
力部24で取り込ま枢 内部において求められた平方根
は出力部26から外部へ送出される。
第3図では浮動小数点数値のデータ構成が説明されてお
り、このデータはIEEE32ビット単精度のフォーマ
ットとされている。
その符号部は1ビツト長とされており、符号部の値0,
1で入力データの氾 負が示される。
また、指数部は8ビツト長とされており、2のべき乗で
表現された数値データが格納される。
なお、指数部の数値が127のときには200乗、 1
のときには2の一126乗、254のときには2012
7乗が各々その内容となる。さらに、すべてのビットが
00ときには数値が0であることが示さ攬 不定データ
のときにはすべてのビットが1となる。
そして、仮数部は23ビツト長とされており、この仮数
部により1.0〜(2,0−2−23)の範囲が表現さ
れる。
ただし、仮数部の最上位ビットで2の一1乗が表現さ汰
 最大下位ビットで2の一23乗が表現される。
以上の構成とされたデータは入力部24から演算部28
へ直接与えら攬 あるいはデータメモリ32を介して与
えられる(内部で生成してデータメモリ32から与えて
も良い)。
第4図では演算部28の構成が説明されており、乗算器
38では浮動小数点の数値と整数値上が取り扱わ&AL
U40では加演算、論理演算、シフト演算などが行われ
る。
また、演算部28には演算入力データ保持用のAレジス
タ42.Bレジス、り441乗算出力保持用のPレジス
タ46.アキニームレータ用のDレジスタが設けられて
おり、それら間でデータを任意にバス36を介して転送
できる。
これにより、 A*B  →  P、D+P−I   Dで示される演
算を同時に実行することが可能となり、その語気 級数
演算などが高速化される。
また、第5図から理解されるように、バス36の下位8
ビツトを利用して指数部のみがレジスタ間で転送さ札 
これにより仮数部と指数部とが分解される。
以上の演算部28では入力データの平方根が求めらへ 
その平方根は出力部26から外部へ送出さ札 あるいは
データメモリ32に格納される。
なお、データメモリ32は平方根演算中におけるワーク
メモリとしても使用される。
また、制御カウンタ30にシ3.平方根の演算精度およ
び速度を決定する値iが利用者の指示にしたがって格納
さ札 その値iが演算部28で利用される。
そして、制御部34にはプログラムメモリ50が設けら
れており、その命令部52にはプロセッサ内部を制御す
るための命令(マイクロコードで記述)が格納される。
またテーブル部54には第6図の定数c0、cLc2+
  係数ao+  aL  a2+  a3+  a4
a5+  a8+  a7.  a8+  a9+  
a 10r  a 11のみが格納されており(制御カ
ウンタ30の格納値iは係数総和=12より少ないもの
に制限される)、シたがって、従来のように膨大な量の
平方根データが格納されることはな(、このためその容
量はきわめてわずかなものとされている。
なお、プログラムメモリ50はROMで構成されており
、制御部34にはプログラムカウンタ。
デコーダ、インストラクシ日ンレジスタ等(図示は省略
)も設けられる。
第7図では演算部28の演算作用がフローチャートで説
明されており、入力部24またはデータメモリ32から
データ(浮動小数点の数値を示すデータ)が与えられる
と(ステップ700)、その入力データが仮数部と指数
部とに分けられる(ステップ702)。
演算部28においては浮動小数点数値の仮数部と指数部
とについて平方根演算が別個に行わ札x=a*2”  
    (1,0≦a<2.0)・・・第(1)式 の入力データが与えられた場合、 FX=Fa*2II/2  (m:偶数)・・・第(2
)式 %式%:) e・・第(3)式 に従って平方根が求められる。
ただし、第(2)式と第(3)式のいずれを選択するか
は指数部の値から判別される。
第7図において入力データの仮数部に関しては級数演算
(ステップ704)が行わ札 最初にこの演算について
説明する。
無限階の微分可能な関数f(x)=rxにおいて、θ<
<Xの条件下で −e番第(4)式 が成立する(ただし、 f”’(x)はf (x)のi
階微分を表す)。
本実施例においては、浮動小数点数値の仮数部が1.0
〜(2,0−2−23)の範囲とされているので、値X
が中心値の1.5と定めら札 定数COとして第6図の
ようにテーブル部54で予め用意される。
また値θは仮数部の数値からx=1.5(定数cO)を
差し引くことにより求められる。
その際には入力データの指数部がデータメモリ32に予
め退避さ札 指数部に値127=20(定数c L  
第6図参照)がセットされる。
そして、演算部28で浮動小数点の減算が行わ札 この
演算で値θが求められる。
これらの値X、θを用いて上記第(4)式の級数演算が
行われると、その解は値iの増大とともに真の解(仮数
部の平方根)へ向かって急速に収束する。
ここで、制御カウンタ30の値iが最大の11と予め定
められていた場合には、 (1/1 1   )  Iff 日)(1,5)$0
.  5−〇、55*lo−’ <2−23 目」第(5)式 したがって、 11階微分の項まで各項が初期値Xに逐
次加算されると、最高の精度となる平方根が仮数部につ
いて得られる。
なお、この級数演算の速度を重視する場合には、制御カ
ウンタ30の値iがより低いものに予め設定される。
一方、指数部に関しては整数加算の処理(ステップ70
B)、  1ビツトの右シフト演算(ステップ708)
、  右シフトによるキャリーの判定(ステップ710
)、  定数02と加算結果との乗算処理(ステップ7
12)が行われる。
浮動小数点の数値における実際の指数n(2のn乗)は
8ビツト表現されたときに n=m+127      ・・・第(6)式で示さ札
 値2・の平方根は (2’)”2=2’  (k=m/2  m: 偶数)
(2−) l/2=2 k$ 21/2(k= (m−
1) /2  m: 奇数)11第(7)式 %式% このため、第(6)式から に=(n−127)/2   (n: 奇数)k= (
n−128)/2   (n+ 偶数)・拳や第(8)
式 が得ら也 したがって、値には8ビツト表現の指数部り
で k=に+ 127 =(n+127)/2   (n: 奇数)k=に+1
27 = (n+ 128) /2   (n: 偶数)11
第(9)式 %式%) ・・9第(10)式 のように表される。
そこで、入力データの指数部nからその平方根りを求め
るために、データメモリ32に退避した指数部に対して
第(6)式の整数加算が行われ(ステップ706)。
さらにこの整数加算結果が1ビツトだけ右ヘシフトされ
(ステップ708)、この右シフトで発生したキャリー
が1であるか否かが判定される(ステップ712)。
その際にキャリーが1であったことが確認されると(ス
テップ710でYES)、指数部の値nが偶数であった
ことを第(10)式から判別でき、したがって、実際の
指数nが第(6)式のように奇数となる。
このため、第(7)式のように、整数加算の結果に定数
c2=/−2を乗する必要が生ずる。
その場合には定数c2=f2が整数加算結果に乗ぜられ
(ステップ712)、実際の指数nが偶数となる場合に
は整数加算結果がそのままとされる。
このようにして得られた指数部についての整数加算結果
と仮数部についての整数演算結果とは演算部28から第
(2)式または第(3)式の形で出力される。
以上説明したように本実施例によれば、平方根演算の際
に参照されるテーブル54に第6図で示されたわずかな
データのみが格納されるので、ROM容量を僅少化する
ことが可能となり、しかも、高精度な平方根演算を行な
える。
また、平方根演算に除算が必要とされず、積和演算を同
時に実行できるので、小容量テーブルを用いた高精度な
平方根演算を高速に行なうことが可能となる。
その結べ 安価かつ高性能な装置をきわめて容易に構成
できる。
その上、利用者の要求に応じて平方根演算の速度を選択
することも可能となる。
[発明の効果コ 以上説明したように本発明によれば、高速で構成底な平
方根演算を小容量テーブルの参照で行えるので、高性能
な装置を安価に構成することが可能となる。
また、本発明によれば、べき乗演算の繰り返し数゛を変
更することで演算精度とその速度を調整でき、したがっ
て、十分な精度の演算を高速に行なうことが可能となる
このことは、装置を実際に利用する上で、きわめて有用
とされる。
【図面の簡単な説明】
第1図は原理説明臥 第2図は実施例の全体構成説明区 第3図は浮動データのフォーマット説明麻第4図は実施
例における演算部の構成説明A第5図は仮数部と指数部
との分解作用説明A第6図は実施例のテーブル内容説明
A 第7図は実施例における演算部の作用を説明するフロー
チャート、 第8図は従来例の構成説明A である。 21 24・ 拳 26 ・ ・ 28 ・ ・ 30 ・ ・ 21 34 ・ e 61 38 ・ ・ 40 φ Φ 42 ・ e 41 46争・ 48 ・ ・ ・プロセッサ ・入力部 ・出力部 ・演算部 ・制御カウンタ ・データメモリ ・制御部 ・バス ・乗算器 ・ALU ・Aレジスタ ・Bレジスタ ・Pレジスタ ーDレジスタ 50・・・プログラムメモリ 52φ・の命令部 54・・・テーブル部

Claims (1)

  1. 【特許請求の範囲】 浮動小数点の数値を仮数部と指数部とに分解する手段(
    10)と、 仮数部の数値と第1定数(co)との差を用いたべき乗
    演算を繰り返して各演算結果と各演算に対応した係数(
    a0、a1、a2、a3、a4、a5、a6、a7、a
    8、a9、a10、a11)との乗算値を初期値にすべ
    て逐次加算する手段(12)と、 指数部の数値と第2定数(c1)との整数和を求めて該
    整数和のシフト演算結果から指数部の数値が偶数か奇数
    かを判定する手段(14)と、奇数の判定結果が得られ
    たときに指数部の数値及び逐次加算の結果で示される値
    と第3定数(c2)とを乗する手段(16)と、 奇数の判定結果が得られたときに乗算結果を奇数の判定
    結果が得られなかったときに逐次加算の結果及び整数和
    で示される値を出力する手段(18)と、 第1定数(c0)、第2定数(c1)、第3定数(c2
    )および係数(a0、a1、a2、a3、a4、a5、
    a6、a7、a8、a9、a10、a11)を記憶する
    手段(20)と、 を有する、ことを特徴とする平方根演算装置。
JP31714289A 1989-12-06 1989-12-06 平方根演算装置 Pending JPH03192429A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31714289A JPH03192429A (ja) 1989-12-06 1989-12-06 平方根演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31714289A JPH03192429A (ja) 1989-12-06 1989-12-06 平方根演算装置

Publications (1)

Publication Number Publication Date
JPH03192429A true JPH03192429A (ja) 1991-08-22

Family

ID=18084915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31714289A Pending JPH03192429A (ja) 1989-12-06 1989-12-06 平方根演算装置

Country Status (1)

Country Link
JP (1) JPH03192429A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537345A (en) * 1993-10-14 1996-07-16 Matsushita Electrical Industrial Co. Ltd. Mathematical function processor utilizing table information
WO2000045254A1 (en) * 1999-01-29 2000-08-03 Sun Microsystems, Inc. Floating point square root and reciprocal square root computation unit in a processor
WO2000045251A3 (en) * 1999-01-29 2000-12-14 Sun Microsystems Inc Floating and parallel fixed point square root and reciprocal point square computation unit in a processor
JP2006243826A (ja) * 2005-02-28 2006-09-14 Sony Corp 浮動小数点数値のm乗根を演算する浮動小数点演算装置及びコンピュータプログラム
US10625308B2 (en) 2014-11-20 2020-04-21 Ebara Corporation Cleaning device, method of manufacturing the same and substrate cleaning apparatus

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537345A (en) * 1993-10-14 1996-07-16 Matsushita Electrical Industrial Co. Ltd. Mathematical function processor utilizing table information
WO2000045254A1 (en) * 1999-01-29 2000-08-03 Sun Microsystems, Inc. Floating point square root and reciprocal square root computation unit in a processor
WO2000045251A3 (en) * 1999-01-29 2000-12-14 Sun Microsystems Inc Floating and parallel fixed point square root and reciprocal point square computation unit in a processor
US6341300B1 (en) 1999-01-29 2002-01-22 Sun Microsystems, Inc. Parallel fixed point square root and reciprocal square root computation unit in a processor
US6349319B1 (en) 1999-01-29 2002-02-19 Sun Microsystems, Inc. Floating point square root and reciprocal square root computation unit in a processor
JP2006243826A (ja) * 2005-02-28 2006-09-14 Sony Corp 浮動小数点数値のm乗根を演算する浮動小数点演算装置及びコンピュータプログラム
US10625308B2 (en) 2014-11-20 2020-04-21 Ebara Corporation Cleaning device, method of manufacturing the same and substrate cleaning apparatus

Similar Documents

Publication Publication Date Title
JPS6347874A (ja) 算術演算装置
TW200919304A (en) Apparatus and method for performing magnitude detection for arithmetic operations
EP0416308A2 (en) Rectangular array signed digit multiplier
JPH0477932B2 (ja)
US6912559B1 (en) System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
JPH03192429A (ja) 平方根演算装置
JPS5939774B2 (ja) 指数関数の演算方式
Hass Synthesizing optimal fixed-point arithmetic for embedded signal processing
JP2508286B2 (ja) 平方根演算装置
Shams Ahari Computer Arithmetic in modern computers and usages of Computer Arithmetic
JPH0585924B2 (ja)
Jain et al. Floating-point nonlinear DSP coprocessor cell-Two cycle chip
JPH11195012A (ja) 自由曲線演算方法および該方法に係るプログラムを格納した記憶媒体
JPS63254525A (ja) 除算装置
JPH01300338A (ja) 浮動小数点乗算器
JPH0445860B2 (ja)
JPH01161437A (ja) 除算装置
JPH04195523A (ja) 平方根計算装置
JPH0554160A (ja) 関数発生方法、およびその汎用関数発生器
JP3688503B2 (ja) プログラマブルコントローラ
JPH0414173A (ja) 固定小数点演算器
JPH02266427A (ja) 乗算器
JPS6033629A (ja) 演算装置
JPH04235629A (ja) 平方根演算装置
JPS6286434A (ja) 除算方式