JPH056393A - 関数演算処理装置およびその演算方法 - Google Patents

関数演算処理装置およびその演算方法

Info

Publication number
JPH056393A
JPH056393A JP15716891A JP15716891A JPH056393A JP H056393 A JPH056393 A JP H056393A JP 15716891 A JP15716891 A JP 15716891A JP 15716891 A JP15716891 A JP 15716891A JP H056393 A JPH056393 A JP H056393A
Authority
JP
Japan
Prior art keywords
data
function
argument
multiplication
outputting
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
JP15716891A
Other languages
English (en)
Inventor
Masatsugu Kametani
雅嗣 亀谷
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15716891A priority Critical patent/JPH056393A/ja
Publication of JPH056393A publication Critical patent/JPH056393A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 より高速で低コストなコストパフォーマンス
の高い関数演算処理装置を提供すること。 【構成】 ファンクションユニットAの内部に、レジス
タ1,2、乗算器A4、整数化部5、テーブルROM
(TROM)ユニット6、乗算器B7及び加算器8が設
けられている。そして、レジスタ1からの引数xとレジ
スタ1からの定数値βnとを乗算器A4で乗算し、その
乗算結果を整数化部5で整数データにまるめてインデッ
クスデータとして出力する。テーブルROM(TRO
M)ユニット6では、そのインデックスデータをアドレ
スデータとして取り込み、アドレスに対応した2つのデ
ータTROM0(IX)とTROM1(IX)を出力す
る。さらに、乗算器B7で引数xとTROM1(IX)
を乗算し、その乗算結果とTROM0(IX)とを加算
器8で加算して関数の近似解としてを出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
において関数演算処理を行う装置およびその演算方法に
関する。
【0002】
【従来の技術】従来のコンピュータシステムにおける関
数処理機能は、マイクロプログラム制御等により、複数
の関数機能を1つの演算処理装置内で実現する場合が多
い。
【0003】また、関数f(x)を求めるために用いる
アルゴリズムも、数学的に得られたf(x)への収束型
の級数展開(例えばチョビシエフ級数、テーラー展開)
であり、誤差については、十分な精度の近似級数解を計
算した後、必要以上の精度部分をまるめて、最終的に必
要な精度を得る方法が一般的である。
【0004】
【発明が解決しようとする課題】しかしながら、上記従
来技術では以下に示すような問題点がある。
【0005】(1) f(x)を求める処理過程で、アル
ゴリズムには依存しないレベルの無駄時間(オーバーヘ
ッド)が処理シーケンス内に発生するため、高速化の妨
げとなっている。
【0006】(2) 機能は汎用的であるが、逆に特定
のいくつかの関数を高速処理したい場合にも同レベルの
ハードウエア規模を必要とし、コスト的に不利である。
また、関数処理の多くは並列に実行できる場合が多い
が、基本的に1度に1つの関数しか得られない。他の関
数を並列実行する場合には別に同等の機能を有する演算
ハードウエアが必要となり、規模が大きくなってコスト
的にも物理的にも不利である。
【0007】(3) 十分な精度を得るために、関数演
算アルゴリズムが最終的なまるめ処理のための余分な演
算を必要とする。このことは、関数演算処理に要する時
間を増加させたり、演算処理装置のコストを上昇させた
りすることにつながる。
【0008】本発明の目的は、上記問題点を解決し、よ
り高速で低コストなコストパーフォーマンスの高い関数
演算処理装置を提供することである。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明の関数演算処理装置は、外部から引数データ
を与える入力手段と、定数データを外部から与えるか又
は予め保持しておく記憶手段と、前記引数データと定数
データをオペランドデータとして取り込んで前記両デー
タを乗算し、その乗算結果を出力する第1の乗算手段
と、該第1の乗算手段からの乗算結果を整数データにま
るめてインデックスデータとして出力する整数化手段
と、前記インデックスデータをアドレスデータとして取
り込み、アドレスに対応してテーブルより選択した2つ
のデータを出力するテーブルメモリ手段と、該テーブル
メモリ手段から出力された2つのデータのうちの一方の
データと前記入力手段からの引数データとをオペランド
データとして取り込んで、それらの両データを乗算し、
その乗算結果を出力する第2の乗算手段と、前記テーブ
ルメモリ手段から出力された2つのデータのうちの他方
のデータと前記第2の乗算手段からの乗算結果とをオペ
ランドデータとして加算し、その加算結果を、引数の値
に応じて変化する関数の近似解として出力する加算手段
と、を具備したものである。
【0010】また、本発明の関数演算処理装置は、外部
から引数データを与える入力手段と、定数データを外部
から与えるか又は予め保持しておく記憶手段と、前記引
数データと定数データをオペランドデータとして取り込
んで前記両データを乗算するとともに、その乗算結果を
整数データにまるめてインデックスデータとして出力す
る乗算・整数化手段と、前記インデックスデータをアド
レスデータとして取り込み、アドレスに対応してテーブ
ルより選択した2つのデータを出力するテーブルメモリ
手段と、該テーブルメモリ手段から出力された2つのデ
ータのうちの一方のデータと前記入力手段からの引数デ
ータとをオペランドデータとして取り込んで、それらの
両データを乗算し、その乗算結果を出力する乗算手段
と、前記テーブルメモリ手段から出力された2つのデー
タのうちの他方のデータと前記乗算手段からの乗算結果
とをオペランドデータとして加算し、その加算結果を、
引数の値に応じて変化する関数の近似解として出力する
加算手段と、を具備したものである。
【0011】さらに、本発明の関数演算処理装置は、外
部から引数データを与える入力手段と、データYDと前
記引数データをオペランドデータとして取り込んで前記
両データを乗算し、その乗算結果を出力する乗算手段
と、該乗算手段からの乗算結果を整数データにまるめて
インデックスデータとして出力する整数化手段と、前記
インデックスデータをアドレスデータとして取り込み、
アドレスに対応してテーブルより選択した2つのデータ
を出力するテーブルメモリ手段と、定数データを外部か
ら与えるか又は予め保持しておく記憶手段と、前記テー
ブルメモリ手段から出力された2つのデータのうちの一
方のデータと前記定数データのいずれかを選択して、前
記データYDとして出力するスイッチ手段と、前記テー
ブルメモリ手段から出力された2つのデータのうちの他
方のデータと前記乗算手段からの乗算結果とをオペラン
ドデータとして加算し、その加算結果を、引数の値に応
じて変化する関数の近似解として出力する加算手段と、
を具備したものである。
【0012】また、本発明の関数演算方法は、引数デー
タと定数データをオペランドデータとして取り込んで、
引数データと定数データを乗算する第1のステップと、
その乗算結果を整数データにまるめてインデックスデー
タとして出力する第2のステップと、前記インデックス
データをアドレスデータとして取り込み、アドレスに対
応してテーブルより選択した2つのデータを出力する第
3のステップと、該第3のステップで出力された2つの
データのうちの一方のデータと前記引数データとをオペ
ランドデータとして取り込んで、それらの両データを乗
算する第4のステップと、前記第3のステップで出力さ
れた2つのデータのうちの他方のデータと前記第4のス
テップでの乗算結果とをオペランドデータとして加算
し、その加算結果を、引数の値に応じて変化する関数の
近似解として出力する第5のステップと、を含んでい
る。
【0013】またさらに、本発明の関数演算方法は、引
数データとデータYDとをオペランドデータとして取り
込んで、引数データとデータYDを乗算する第1のステ
ップと、その乗算結果を整数データにまるめてインデッ
クスデータとして出力する第2のステップと、前記イン
デックスデータをアドレスデータとして取り込み、アド
レスに対応してテーブルより選択した2つのデータを出
力する第3のステップと、該第3のステップで出力され
た2つのデータのうちの一方のデータと定数データのい
ずれかを選択して、前記データYDとして出力する第4
のステップと、前記第3のステップで出力された2つの
データのうちの他方のデータと前記第1のステップでの
乗算結果とをオペランドデータとして加算し、その加算
結果を、引数の値に応じて変化する関数の近似解として
出力する第5のステップと、を含んでいる。
【0014】
【作用】上記構成によれば、引数xの近傍値x′のみの
計数関数で表現されるxの一次関数a0(x′)+a
1(x′)xのみを演算するための最もシンプルな構造の
ファンクションユニットを得ることができ、前記一次関
数の求解を高速に処理することが可能となる。また、1
つの関数を1つのファンクションユニットで実行するこ
とができるため、マイクロコードを用いなくても容易に
所望の関数を得ることができる。
【0015】また、基本的な専用演算で関数を表現でき
るため、将来LSI化仕易いシンプルな構造を採ること
が可能となる。そして、ユーザは、所望の関数分だけフ
ァンクションユニットを用意すれば良い。この場合、フ
ァンクションユニット間で関数の並列処理も可能とな
る。また、ファンクションユニット内のテーブルROM
(a0(x′),a1(x′)を内蔵)と、テーブルROMを
参照するためのインデックス(IX)を求めるための係
数βnとを変更できる様にしておくことにより、係数関
数及び精度を自由に設定できるため、同一構造を有する
ファンクションユニットで様々な関数を表現することが
できる。
【0016】さらに、テーラー展開による一次近似関数
の最大誤差と誤差の生じる方向に着目し、一方方向に誤
差が集積しない様にしつつ最大誤差をより小さくする方
向に補正を加えることにより、全体の精度をより高める
0(x′)+a1(x′)x形式の補正された一次関数を求
めることができる。そして、それを用いることによって
所望の関数を近似することができる。これによって、従
来のように誤差を補正するための冗長な精度分を余分に
演算する必要が無く、高速でかつ高精度な関数処理が可
能となる。
【0017】
【実施例】以下に本発明の一実施例を図面に従って説明
する。 (第1実施例)図1は本発明の演算処理装置の第1実施
例を示しており、引数xに対応する基本関数fn(x)又
はfn(x)の近傍解を求めるファンクションユニットA
のハードウエアブロック図である。このハードウエアブ
ロック図の処理シーケンスを以下に示す。
【0018】(1) 外部から与えられた引数xを保持す
るレジスタ1と、外部から与えられるか又はファンクシ
ョンユニットAに予め保持されている基本関数fn固有
の定数値βnを保持するレジスタ2とが存在している。
【0019】(2) レジスタ1に引数xが、レジスタ2
に定数値βnがそれぞれ確定すると、INDEX計算部
3にそれらの値が送られる。INDEX計算部3の中に
は乗算器A4が設けられていて、入力された引数xと定
数値βnとを乗算し、その乗算結果βn・xがもし小数点
以下を含むなら整数化部5で適当な整数にまるめてから
INDEX値として出力する。
【0020】(3) 上記INDEX値は、テーブルRO
M(TROM)6のアドレス(ADDRESS)入力に
テーブルを参照するためのインデックスとして入力され
る。TROM6は、INDEX値で示されるアドレスに
対応してテーブルより選択された2つのデータTROM
0(IX)とTROM1(IX)とを出力する。
【0021】(4) 乗算器B7は、TROM6からのデ
ータTROM1(IX)と、レジスタ1からの引数xと
を乗算し、その乗算結果TROM1(IX)・xを出力
する。
【0022】(5) 加算器8は、TROM6からのデー
タTROM0(IX)と、乗算器B7の出力TROM1
(IX)・xを加算し、その加算結果TROM0(I
X)+TROM1(IX)・xをfn(x)の近似解とし
て出力する。
【0023】なお、レジスタ1はファンクションユニッ
トAの外部に存在しても良いし、引数xを与える外部の
装置がfn(x)を求めるための必要な演算をファンクシ
ョンユニットAが終了するまでxの値を保持し続けても
良い。その場合、レジスタ1をファンクションユニット
Aの内部に設ける必要はなくなる。
【0024】さて、このファンクションユニットAで求
まる近似解fn(x)の値は、次のような式になる。
【0025】 fn(x)≒TROM0(IX)+TROM1(IX)・x …(1−1)式 ただし、IX=INDEX=INTEGER(βn・x) …(1−2)式 この演算に適合した近似解の求解方程式としては、例え
ばテーラー展開がある。すなわち、
【0026】
【数1】
【0027】ここで、x′はxの近傍値の方が少ない項
数でf(x)の真値に近づく。x′の関数として表現され
る係数関数an(x′)でxの多項式として(2)式をま
とめると、
【0028】
【数2】
【0029】と表現することが可能である。なお、an
(x′)のアンダーラインは添字を示している。以下、
アンダーラインは同じ意味である。
【0030】ここで、簡単のため、(2)式を一次の近
似式として表現すると、 f(x)≒f(x′)+f′(x′)(x−x′) =(f(x′)−f′(x′)x′)+f′(x′)x =a0(x′)+a1(x′)x ……(4)式 ∴a0(x′)=f(x′)−f′(x′)x′,a1(x′)=f′(x′) x′はxの近傍値 (4)式から分かるように、a0及びa1はx′のみの関
数として表現されている。したがってan(x′)をxの
n乗の係数関数と呼ぶ。
【0031】(4)式と(1−1)式の係数を比較する
と、TROM0(IX)=a0(x′),TROM1
(IX)=a1(x′)となれば良い。すなわち、テー
ブルROM6からxの近傍値x′に対応するa
0(x′)及びa1(x)の値としてTROM0(I
X),TROM1(IX)を読み出すことになる。この
時、TROM6に与えるINDEX値IXがx′の関数
として表現されている必要がある。(1−2)式より、
IX=INTEGER(βn・x)であるから、βn・x
が整数値にまるめられた値IXはβn・xの近傍値と考
えられ、x′の関数g(x´)=βn・x′で置換するこ
とができる。
【0032】 IX=g(x′)=βn・x′=INTEGER(βn・x) …(5−1)式 x′=IX/βn=INTEGEER(βn・x)/βn …(5−2)式 とx′を表現でき、βnを適当に決めれば対応するIX
を決定することができて、そのIXで示される番地にx
の近傍値x′の係数関数a0(x′)及びa1(x′)を格納
しておけば良いことがわかる。
【0033】次に、f(x)=SIN(x)の場合を検
討してみる。テーラー展開の一次式は、 f(x)=SIN(x)≒SIN(x′)+COS(x′)(x−x′) =SIN(x′)−COS(x′)x′+COS(x′)x ……(6)式 ∴a0(x′)=SIN(x′)−COS(x′)x′ a1(x′)=COS(x′) となる。ここで例えばβn=4096/2πとすると、 IX=INTEGER(βn・x) =INTEGER((4096/2π)・x)=(4096/2π)・x′ ∴x′=(2π/4096)・IX =INTEGER((4096/2π)・x)・(2π/4096) ……(7)式 上記の(7)式から分かるように、1/βnはxの区間
を2πとした時、その区間を4096等分した値であ
り、TROM6にはIXを1ずつ増加するとx′を1/
βnずつ増加させた場合のa0(x′)とa1(x′)の値
が格納される。
【0034】x′の起点を−πとすると、 x′=−π+(1/βn)・IX=−π+(4096/2π)・IX ……(8)式 となり、予めa0(x′)とa1(x′)の値を決定し、TR
OM6に格納しておくことができる。
【0035】なお、乗算器A4と整数化部5を1つの乗
算・整数化計算部としてまとめて、この計算部内で、引
数xと定数値βnとを乗算し、その乗算結果を整数デー
タにまるめてインデックスデータとして出力するように
しても良い。
【0036】(第2実施例)図2は本発明の関数演算処
理装置の第2実施例を示している。図において、ファン
クションユニットBは乗算器の数を1つ節約したもので
あり、ファンクションユニットAに対してコストメリッ
トを高くすることができる。ファンクションユニットB
の動作シーケンスを以下に示す。
【0037】(1) 引数xを保持するレジスタ1と、定
数値βnを保持するレジスタ2とが設けられているの
は、ファンクションユニットAの場合と同じである。
【0038】(2) レジスタ1から与えられた引数x
と、レジスタ2からMUX9を介して与えられた定数値
βnを乗算器4で乗算し、その乗算結果βn・xを信号L
2として出力する。MUX9はマルチプレクサであり、
レジスタ2からの信号L3とTROM6からの信号L4
とから1つを選択して出力する。その信号を選択する際
のの切り換えは信号L5によって行なう。なお、MUX
9の初期値は、信号L3が選択されているとする。
【0039】(3) 乗算器4より信号L2として出力さ
れたβn・xの値は整数化部5に送られるが、乗算器4
と整数化部5との間にラッチ回路10を設けても良い。
もし、ラッチ回路10を設けた場合、βn・xの値をそ
こにラッチし、その後のタイミングでMUX9の出力を
信号L4側に切り換えるための信号を、信号L5として
出力する。整数化部5の出力INDEX=INTEGE
R(βn・x)は、TROM6に送られるが、ラッチ回
路10の代わりに整数化部5の出力段にラッチ回路11
を設け、そこでINDEX値をラッチしても良い。その
場合ラッチ回路11は、MUX9の出力を信号L4側に
切り換えるための信号を、ラッチ回路11にINDEX
値をラッチした後のタイミングで出力する。ラッチ回路
10及びラッチ回路11は、そのいずれか一方が設けら
れていれば十分である。
【0040】(4) TROM6は、ファンクションユニ
ットAの場合と同様に、整数化部5から送られて来た出
力結果INDEX(IX)=INTEGER(βn・
x)をアドレスとして、その値に対応する2つの結果T
ROM0(IX)及びTROM1(IX)を出力する。
【0041】(5) 次に、TROM6より出力されたT
ROM1(IX)は、信号L4としてMUX9に送ら
れ、そのまま乗算器4に与えられる(MUX9は、L4
側が選択されているから)。
【0042】(6) 再び乗算器4は、レジスタ1からの
引数xとMUX9からのTROM1(IX)の各値を乗
算し、その乗算結果であるTROM1(IX)・xを信
号L6として出力する。
【0043】(7) 信号L6の中のデータ(TROM1
(IX)・x)はラッチ回路13で取り込んで、信号L
6の中のデータが確定した後のタイミングで一度ラッチ
回路13にラッチしても良い。その場合、MUX9の切
り換え信号L5は、ラッチ回路13に信号L6の中のデ
ータをラッチした後のタイミングで、初期状態(信号L
3が選択されている状態)に戻すことができる。
【0044】(8) ラッチ回路13が存在する場合に
は、そこからのデータ(TROM1(IX)・x)とT
ROM6からのデータTROM0(IX)を加算器8で
加算し、fn(x)の近似解TROM0(IX)+TRO
M1(IX)・xの出力が得られる。もし、ラッチ回路
13が存在しない場合は、乗算器4の直接の出力結果T
ROM1(IX)・xとTROM6の出力TROM0
(IX)を加算し、fn(x)の近似解TROM0(I
X)+TROM1(IX)・xが得られる。この場合、
乗算器4の出力値を加算器8が演算を終了するまで保っ
ておく必要があるため、MUX9の初期化(信号L3側
が選択されている状態)処理は、加算器8の演算結果
(近似解fn(x))を外部で取りだしてから行う必要が
ある。
【0045】本実施例によれば、ファンクションユニッ
トB中の乗算器が1つで済み、しかもファンクションユ
ニットAの場合と同レベルの演算処理の高速性を得るこ
とができる。したがって、個別の演算器を組み合わせる
場合でも、1つのLSIにまとめる場合でも、性能を低
下させずに安価に関数演算処理装置を実現することがで
きる。しかも集積度が小さくて済むのでLSI化の可能
性自体も高まる。
【0046】図3及び図4は、TROM6の内部のRO
Mの構成を示したものである。
【0047】図3は、1つのROMユニット6a(アド
レス入力とデータ出力が1つずつある)を用いたROM
システムAを示している。Data出力が1つしか無い
ので、まずTROM1(IX)のデータをROMユニッ
ト6aから取り出して一度ラッチ回路6dにラッチす
る。その後のタイミングで速やかに選択信号L61を用
いてROMユニット6aのアドレスをシフトし、別のア
ドレスエリアに保持されたTROM0(IX)のデータ
を読み出すようにする。選択信号L61は、外部から与
えても良いし、ラッチ回路6dへのラッチ信号を用いて
自動的に内部で生成しても良い。ただし、再びTROM
1(IX)のデータを読み出す場合には、選択信号L6
1の状態を初期状態に戻す回路が必要である。
【0048】図4は、2つの独立したROMユニット6
b,6cを設けたROMシステムBの構成を示してい
る。このROMシステムでは、TROM0(IX)のデ
ータをROMユニット6bに、TROM1(IX)のデ
ータをROMユニット6cにそれぞれ保持しており、独
立して2つの必要なデータTROM1(IX)及びTR
OM0(IX)を読み出すことができるため、ROMシ
ステムAの様なラッチ回路6dや選択信号L61を必要
としない。また、特性的に異なるROMユニットを用い
ることができるため、アルゴリズム上アクセスタイム的
に余裕の生じるROMユニット6b(TROM0(I
X)のデータを保持している)側を、低速なアクセスタ
イムのROMで構成すれば、より安価なROMシステム
を構築することができる。なお、ROMシステムAを用
いてもROMシステムBを用いても必要となるROMの
メモリ容量は同じである。
【0049】図5は、fn(x)の近似解を求める演算シ
ーケンスを示したものである。ファンクションユニット
Aを用い、TROM6の内容がROMユニット6bの場
合を想定している。上位から下位にかけて時刻が経過
し、その各時刻に実行されている動作を横方向に並列に
記載したものである。
【0050】図5に示したSで、外部(例えば外部プロ
セッサやCPU)から引数xが与えられ、ファンクショ
ンユニットAは有効な動作を開始し、Eで結果が得られ
演算を終了する。シーケンスについては前述したとおり
であるが、本図によりアルゴリズム自体の並列性などの
特徴が明確になるので、その点に注意して以下に詳細に
説明する。
【0051】1)並列に動作して有効なのは、TROM
0(IX)とTROM1(IX)を並行してテーブルR
OM(TROM6)から読み出す操作及びTROM0
(IX)をTROM6から読み出す操作と乗算器B7で
の演算処理の並列実行の2点である。いずれも、TRO
M0(IX)をTROM6から読み出すための時間(ア
クセス時間)を長くとれるようにする効果があり、RO
Mユニット6bにアクセス時間の長い安価なROMを使
用できる。この並列処理を用いた場合のROMユニット
6bのアクセス時間は、ROMユニット6cのアクセス
時間+乗算器B7での演算時間分、すなわち図5でt5
−t3に相当する時間より短ければ、全体の処理の流れ
の中でクリティカルパスにはならない。
【0052】2)TROM1(IX)をTROM6から
読み出す操作は、全体の処理の流れの中でクリティカル
パスになっている。すなわち、ROMユニット6cのア
クセス時間(図5ではt4−t3に相当する)は短ければ
短いほど良い。そのためには、ROMユニット6c側に
高速なアクセス時間を有するROMを用いる必要がある 。3)乗算器A4の演算(t1からt2)と、乗算器B7
の演算(t4からt5)は決して並列には実行できない。
したがって、ファンクションユニットBのように、乗算
器A及びBでの処理を1つの乗算器で実行してもクリテ
ィカルパスにそれほど影響しない(MUX9をデータが
通過する時間が余分に必要となるが、このオーバーヘッ
ドは乗算器での演算時間に比べて非常に小さい)。この
ことから、ファンクションユニットBはコストパフォー
マンス的に有利であることがわかる。
【0053】次に、xのn次多項式で、係数関数がxの
近傍値x′の関数an(x′)で表現できるf(x)の近
似解
【0054】
【数3】
【0055】について、係数関数an(x′)をTROM
にテーブル化する場合の実用的な解を検討してみる。
【0056】まず、 f(x)≒a0(x′)+a1(x′)x+a2(x′)・x2+‥‥ =a0(x′)+a1(x′)x+(a2(x′)+a3(x′)x)x2 +(a4(x′)+a5(x′)x)x4+‥‥ ……(10)式 と変形するか、又は、
【0057】
【数4】
【0058】と変形することによって、ファンクション
ユニットA又はBが使用できる。
【0059】(11)式を用いる場合は、その最内側の
ファンクションak-1(x′)+ak(x′)xをまずファ
ンクションユニットによって求めた後、その結果をbk-
1(x′)とおき、ak-2(x′)+bk-1(x′)xを最
内側のファンクションとして置換する。これにより、b
k-1(x′)をTROM1(IX)の代わりに用い、ak-
1(x′)を実際のTROM0(IX)を用いて求める
ことによって、ファンクションak-2(x′)+bk-1
(x′)xを別のファンクションユニットによって求め
る。この繰り返しによって(11)式によりf(x)の
近似解を得ることができる。
【0060】一方(10)式を用いる場合は、(11)
式を構成する各括弧内のファンクションan(x′)+a
n+1(x′)xをファンクションユニットA又はBでそれ
ぞれ求め、加算していけば良い。(10)式を用いる場
合は、括弧内の各ファンクションを複数のファンクショ
ンユニットを用いることにより並列に計算することがで
きる。別にxのn乗の計算を実行しておけば、(an
(x′)+an+1(x′)x)×(xのn乗)の計算が実
現できる。xのn乗の計算も、(10)式の各括弧内の
計算とある程度並列に実行できる。
【0061】以上のことから、ファンクションユニット
は(9)式に示すxのn次多項式によるf(x)の近似
【0062】
【数5】
【0063】を計算する基本ファンクションfn(x)を
求める基本演算ユニットであることが分かる。すなわ
ち、
【0064】
【数6】
【0065】を実現するエレメントと定義すれば良い。
【0066】次に、具体的なf(x)の近似解としての
【0067】
【数7】
【0068】における各係数関数an(x′)について考
察してみる。
【0069】最も代表的な級数展開として、テーラー展
開を用いると、
【0070】
【数8】
【0071】これは正にx′がxの近傍値のときf
(x)の近似解を表現するものであり、(13)式をx
のn乗(n=0,1,…m)の多項式に展開して、
(9)式とxのn乗(n=0,1,…m)をそれぞれ比
較すれば、各係数関数an(x′)(n=0,1,…m)
がxの近傍値x′の関数として得られる。x′が十分x
に近く、mの値が十分大きい時にはそのまま用いても十
分な精度が得られるが、mの値が小さい場合には、各係
数関数を補正した方が良いことが多い。以下にm=1の
場合、すなわち、 f(x)≒f′(x′)+f′(x′)(x−x′) ……(14)式 (f′はfの一階微分) を基本式として用いる場合、より実用的に補正された1
次多項式a0(x′)+a1(x′)xの各係数a0(x′)
及びa1(x′)を求める方法について以下に考察してみ
る。
【0072】図6は、実際の正確な関数y=f(x)お
よび近傍値をx′=xaとした場合のf(x)の近似一次
関数ya=f(xa)+f′(xa)・(x−xa)を示して
いる。1/βは、前述したように、テーブルROMに係
数関数をテーブル化する場合のINDEX(IX)の増
加分に対応する実際のxの増加分に相当する。すなわ
ち、INDEX=IXが1増加すれば、xは1/β増加
する。ファンクションユニットA及びBにおいて、βは
βnと等価なものである。また、xmは、(5−1)式で
整数化し、IXを求めた時に、まるめ処理によってxa
側(IX側)にまるめられるか、xa-1=xa−1/β側
(IX−1側)にまるめられるかの境界値を示す。例え
ば、小数点以下を四捨五入して整数値にまるめた場合、
mの値はxa−1/(2β)となる。したがって、(1
4)式によって近似された関数は、
【0073】
【数9】
【0074】
【数10】
【0075】
【数11】
【0076】となる。aの値は、定義域xの領域を全て
カバーする全ての近傍値xaに対応して与えられるもの
である。
【0077】さて、(14)式をそのまま表現した近似
解は、図6からも分かるように、y=f(x)のxaにお
ける接線関数を各aに対応して求めて、それらをxm
(mはaに対応して決まる)の点で切り換えることによ
り得られる。したがって、真値f(x)に対して常に一
方方向に誤差が大きく出る。図6においては、誤差は常
にマイナス方向に出る。すなわち、(14)式によって
得られたf(x)の近似解は、常に真値より小さな値と
して得られる。ゆえに、 a)繰り返して演算すると、誤差が一方方向に蓄積しや
すい。
【0078】b)最大誤差が大きくなる。
【0079】という欠点がある。一方、xの近傍値xa
にxの値が非常に近い領域では、非常に高い精度が得ら
れる。しかし、誤差を均質化する方が一般に有効であ
り、演算速度は最大誤差をより小さくする方が高いと言
える。したがって、前記a),b)の欠点を少しでも改
善するために、より有効なf(x)の近似解を与える一
次関数ym(x)を以下のようにして求める。
【0080】1)誤差が、xmにおける(15−2)式
によって得られたya(xm)とxmにおける真値f(x)
の値f(xm)との誤差αm=f(xm)−ya(xm)のdm
(xa)倍になる点(xm,ym(xm))を決める。
【0081】2)誤差が、xm+1における(15−3)
式によって得られたya+1(xm+1)と、xm+1における真
値f(x)の値f(xm+1)との誤差αm+1=f(xm+1)−
a+1 (xm+1)のdm+1(xa+1)倍になる点(xm+1,y
m(xm+1))を決める。
【0082】3)ym(x)を一次関数(直線関数)とし
て1)及び2)で求めた2つの点を通過するように決定
する。
【0083】図6に示した例では、x=xmで|αm|/
2に、x=xm+1で|αm+1|/2に誤差がなる様にym
(xm)及びym(xm+1)を決めている。すなわち、
【0084】
【数12】
【0085】となる。本例では、x=xaでγaで示した
プラス側の誤差を生ずるが、x=xm及びx=xm+1近傍
ではマイナス側の誤差(最大αm/2及びαm+1/2)を
生じ、全体の誤差分布としては均質化されていると言え
る。最大誤差は、補正前では、|αm+1|であったが、
本実施例では|αm+1/2|となっている。これによっ
て、前述した欠点a)及びb)を共に改善する解の一例
を示すことができた。
【0086】なお、図6では、xmを一次関数ya-1
(x)とya(x)との交点Pmのx座標、xm+1を一次
関数ya(x)とya+1(x)との交点Pm+1のx座標に
それぞれ一致するように、整数IXへのまるめ処理を行
った場合を記載している。ある意味で図6に示した実施
例は理想的と言える。しかし、実際には、整数IXへの
まるめ処理はもっと単純(例えば四捨五入)であり、x
mの値はxa又はxa-1のみに依存した定数となる。した
がって(16)式は、
【0087】
【数13】
【0088】となる。
【0089】これを関数全体を表すべく一般化すると、 f(x)≒y=a0(x′)+a1(x′)x ……(18)式 となり、xの近傍値x′のみの係数関数としてa
0(x′)及びa1(x′)を表現することができ、目的と
する一次近似関数を求めることが可能となる。そして、
0(x′)をTROM0(IX)として、a1(x′)を
TROM1(IX)としてテーブルROMにROM化す
れば良い。
【0090】図6の例から、補正された一次近似関数y
m(x)として利用可能な実用的な直線の存在する領域
は、
【0091】
【数14】
【0092】で囲まれる領域である。この領域を通過す
る直線は、なんらかの補正効果を有しており、かつ前述
した手法でxの近傍値x′のみの関数としてその係数関
数を決めることができる。
【0093】また以上から、関数処理のための近似解が
テーラー展開によって求まり、その一次関数近似解は全
て上述した補正が可能なことから、ファンクションユニ
ットA及びBの構造は最も基本的であることが分かる。
すなわち、求めるべき関数が異なっても、f(x)≒a0
(x′)+a1(x′)xと表現できることにはかわりが
なく、βnの値とTROM6の内容を変更できるように
さえしておけば、大半の関数は本実施例のファンクショ
ンユニットによって表現できることになる。
【0094】
【発明の効果】以上説明したように、本発明によれば次
のような効果が得られる。
【0095】(1) 1つの関数機能をシンプルなアルゴ
リズムで実現するファンクションユニット(演算処理装
置)を提供でき、より高速な関数処理速度を実現でき
る。また、1つの関数処理を1つのユニットで実現する
ため、マイクロコードを用いなくても容易にかつ高速な
関数処理を実現できる。さらに、関数処理アルゴリズム
が基本的・普遍的であるため、定数値βnの値とTRO
Mの内容を変更するだけで様々な関数を実現できる(量
産性が高い)。
【0096】(2) ファンクションユニット(関数処理
装置)のハードウエア規模がコンパクトであり、LSI
化しやすい構造である。したがって、これらのファンク
ションユニットを複数用意すれば、関数処理の並列化を
容易に実現できる。また、特定の関数しか用いない用途
(例えば特殊目的向けの工業用組込み用途)でも、安価
に必要な関数機能を提供できる。
【0097】(3) テーラー展開を基本とした補正形の
一次関数近似解を用いることで、最大誤差や繰返し演算
によるまるめ誤差の増大をより小さく抑え、トータル的
により高い精度を実現している。これにより、最小量の
演算により必要な精度が得られ、さらに高速化を可能に
する。
【図面の簡単な説明】
【図1】本発明の関数演算処理装置の第1実施例を示す
ブロック図である。
【図2】本発明の関数演算処理装置の第2実施例を示す
ブロック図である。
【図3】テーブルROMユニット(TROM)の一実施
例を示すブロック図である。
【図4】テーブルROMユニット(TROM)の他の実
施例を示すブロック図である。
【図5】関数処理のシーケンスを示す図である。
【図6】近似関数の補正を説明するための説明図であ
る。
【符号の説明】
1,2 レジスタ 3 INDEX計算部 4,7 乗算器 5 整数化部 6 テーブルROM(TROM)ユニット 8 加算器 9 マルチプレクサ 10,11,13 ラッチ回路

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 外部から引数データを与える入力手段
    と、定数データを外部から与えるか又は予め保持してお
    く記憶手段と、前記引数データと定数データをオペラン
    ドデータとして取り込んで前記両データを乗算し、その
    乗算結果を出力する第1の乗算手段と、該第1の乗算手
    段からの乗算結果を整数データにまるめてインデックス
    データとして出力する整数化手段と、前記インデックス
    データをアドレスデータとして取り込み、アドレスに対
    応してテーブルより選択した2つのデータを出力するテ
    ーブルメモリ手段と、該テーブルメモリ手段から出力さ
    れた2つのデータのうちの一方のデータと前記入力手段
    からの引数データとをオペランドデータとして取り込ん
    で、それらの両データを乗算し、その乗算結果を出力す
    る第2の乗算手段と、前記テーブルメモリ手段から出力
    された2つのデータのうちの他方のデータと前記第2の
    乗算手段からの乗算結果とをオペランドデータとして加
    算し、その加算結果を、引数の値に応じて変化する関数
    の近似解として出力する加算手段と、を具備した関数演
    算処理装置。
  2. 【請求項2】 外部から引数データを与える入力手段
    と、定数データを外部から与えるか又は予め保持してお
    く記憶手段と、前記引数データと定数データをオペラン
    ドデータとして取り込んで前記両データを乗算するとと
    もに、その乗算結果を整数データにまるめてインデック
    スデータとして出力する乗算・整数化手段と、前記イン
    デックスデータをアドレスデータとして取り込み、アド
    レスに対応してテーブルより選択した2つのデータを出
    力するテーブルメモリ手段と、該テーブルメモリ手段か
    ら出力された2つのデータのうちの一方のデータと前記
    入力手段からの引数データとをオペランドデータとして
    取り込んで、それらの両データを乗算し、その乗算結果
    を出力する乗算手段と、前記テーブルメモリ手段から出
    力された2つのデータのうちの他方のデータと前記乗算
    手段からの乗算結果とをオペランドデータとして加算
    し、その加算結果を、引数の値に応じて変化する関数の
    近似解として出力する加算手段と、を具備した関数演算
    処理装置。
  3. 【請求項3】 外部から引数データを与える入力手段
    と、データYDと前記引数データをオペランドデータと
    して取り込んで前記両データを乗算し、その乗算結果を
    出力する乗算手段と、該乗算手段からの乗算結果を整数
    データにまるめてインデックスデータとして出力する整
    数化手段と、前記インデックスデータをアドレスデータ
    として取り込み、アドレスに対応してテーブルより選択
    した2つのデータを出力するテーブルメモリ手段と、定
    数データを外部から与えるか又は予め保持しておく記憶
    手段と、前記テーブルメモリ手段から出力された2つの
    データのうちの一方のデータと前記定数データのいずれ
    かを選択して、前記データYDとして出力するスイッチ
    手段と、前記テーブルメモリ手段から出力された2つの
    データのうちの他方のデータと前記乗算手段からの乗算
    結果とをオペランドデータとして加算し、その加算結果
    を、引数の値に応じて変化する関数の近似解として出力
    する加算手段と、を具備した関数演算処理装置。
  4. 【請求項4】 請求項3記載の関数演算処理装置におい
    て、前記乗算手段から加算手段へ送出される乗算結果
    は、ラッチ手段を介して送られることを特徴とする関数
    演算処理装置。
  5. 【請求項5】 請求項1,2又は3記載の関数演算処理
    装置において、前記テーブルメモリ手段から出力される
    2つのデータのうちの一方のデータをTROM1(I
    X)、他方のデータをTROM0(IX)とし、かつ関
    数処理を行うための基本式として、引数xの近傍値x′
    で表現した一次近似関数 f(x)=a0(x′)+a
    1(x′)xを用いたとき、前記TROM0(IX)に対応
    してa0(x′)を、前記TROM1(IX)に対応して
    1(x′)をそれぞれ格納することを特徴とする関数演
    算処理装置。
  6. 【請求項6】 請求項5記載の関数演算処理装置におい
    て、前記一次近似関数f(x)≒a0(x′)+a1(x′)
    xを求める場合に、テーラー展開における一次近似式f
    (x)≒f(x′)+f′(x′)(x−x′)によって表現
    されるインデックス値IXに対応するf(x)の近似式
    と、前記整数化手段によるまるめ処理のインデックス値
    IX−1とIXに対応した境界値xm、並びにインデッ
    クス値IXとIX+1に対応した境界値xm+1で、それ
    ぞれ得られたポイントPm=(xm,f(xm))及びポイ
    ントPm+1=(xm+1,f(xm+1))を結ぶ一次関数と、前
    記xm及びxm+1とで囲まれた領域を通過する一次関数を
    f(x)≒a0(x′)+a1(x′)xと置いて、係数関数a
    0(x′)とa1(x′)を求めることを特徴とする関数演算
    処理装置。
  7. 【請求項7】 引数データと定数データをオペランドデ
    ータとして取り込んで、引数データと定数データを乗算
    する第1のステップと、その乗算結果を整数データにま
    るめてインデックスデータとして出力する第2のステッ
    プと、前記インデックスデータをアドレスデータとして
    取り込み、アドレスに対応してテーブルより選択した2
    つのデータを出力する第3のステップと、該第3のステ
    ップで出力された2つのデータのうちの一方のデータと
    前記引数データとをオペランドデータとして取り込ん
    で、それらの両データを乗算する第4のステップと、前
    記第3のステップで出力された2つのデータのうちの他
    方のデータと前記第4のステップでの乗算結果とをオペ
    ランドデータとして加算し、その加算結果を、引数の値
    に応じて変化する関数の近似解として出力する第5のス
    テップと、を含む関数演算方法。
  8. 【請求項8】 引数データとデータYDとをオペランド
    データとして取り込んで、引数データとデータYDを乗
    算する第1のステップと、その乗算結果を整数データに
    まるめてインデックスデータとして出力する第2のステ
    ップと、前記インデックスデータをアドレスデータとし
    て取り込み、アドレスに対応してテーブルより選択した
    2つのデータを出力する第3のステップと、該第3のス
    テップで出力された2つのデータのうちの一方のデータ
    と定数データのいずれかを選択して、前記データYDと
    して出力する第4のステップと、前記第3のステップで
    出力された2つのデータのうちの他方のデータと前記第
    1のステップでの乗算結果とをオペランドデータとして
    加算し、その加算結果を、引数の値に応じて変化する関
    数の近似解として出力する第5のステップと、を含む関
    数演算方法。
JP15716891A 1991-06-27 1991-06-27 関数演算処理装置およびその演算方法 Pending JPH056393A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15716891A JPH056393A (ja) 1991-06-27 1991-06-27 関数演算処理装置およびその演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15716891A JPH056393A (ja) 1991-06-27 1991-06-27 関数演算処理装置およびその演算方法

Publications (1)

Publication Number Publication Date
JPH056393A true JPH056393A (ja) 1993-01-14

Family

ID=15643677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15716891A Pending JPH056393A (ja) 1991-06-27 1991-06-27 関数演算処理装置およびその演算方法

Country Status (1)

Country Link
JP (1) JPH056393A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751164B1 (en) 1999-07-16 2004-06-15 Citizen Watch Co., Ltd. Time piece
US8295128B2 (en) 2007-02-22 2012-10-23 Citizen Holdings Co., Ltd. Radio-controlled timepiece

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751164B1 (en) 1999-07-16 2004-06-15 Citizen Watch Co., Ltd. Time piece
US8295128B2 (en) 2007-02-22 2012-10-23 Citizen Holdings Co., Ltd. Radio-controlled timepiece

Similar Documents

Publication Publication Date Title
US6256653B1 (en) Multi-function bipartite look-up table
Göddeke et al. Performance and accuracy of hardware-oriented native-, emulated-and mixed-precision solvers in FEM simulations
CN107077415B (zh) 用于执行转换运算的装置和方法
US6223192B1 (en) Bipartite look-up table with output values having minimized absolute error
JP5500652B2 (ja) 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法
KR100528269B1 (ko) 부동소수점하드웨어를사용하여마이크로프로세서정수나눗셈연산들을실행하기위한방법및장치
US10579338B2 (en) Apparatus and method for processing input operand values
JPH08185309A (ja) 4倍精度演算の実行方法
US10877733B2 (en) Segment divider, segment division operation method, and electronic device
US9996345B2 (en) Variable length execution pipeline
US8977663B2 (en) Converting binary values into binary-coded-centimal values
US11188328B2 (en) Compute array of a processor with mixed-precision numerical linear algebra support
Van Dam et al. An accelerator for posit arithmetic targeting posit level 1 blas routines and pair-hmm
JPH056393A (ja) 関数演算処理装置およびその演算方法
JP2014041415A (ja) 演算回路、演算処理装置、及び除算方法
Harsha et al. A low error, hardware efficient logarithmic multiplier
JP3493085B2 (ja) 演算器
CN114995765B (zh) 数据处理方法、装置、存储介质及电子设备
JP2508286B2 (ja) 平方根演算装置
JPH10283165A (ja) 演算装置及び演算方法
Underwood Ieee Floating-Point Extension for Managing Error Using Residual Registers
KR20230006397A (ko) 온-더-플라이 변환
JP5849822B2 (ja) Av信号処理低減装置、av信号処理低減方法、およびav信号処理低減プログラム
JP5849823B2 (ja) Av信号処理低減装置、av信号処理低減方法、およびav信号処理低減プログラム
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置