JP2644514B2 - 関数演算装置 - Google Patents
関数演算装置Info
- Publication number
- JP2644514B2 JP2644514B2 JP63014063A JP1406388A JP2644514B2 JP 2644514 B2 JP2644514 B2 JP 2644514B2 JP 63014063 A JP63014063 A JP 63014063A JP 1406388 A JP1406388 A JP 1406388A JP 2644514 B2 JP2644514 B2 JP 2644514B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- input
- bits
- input variable
- 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.)
- Expired - Lifetime
Links
Landscapes
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子計算機を用いた関数演算を高速に実
行する関数演算装置に関するものである。
行する関数演算装置に関するものである。
第4図(a),(b)は例えば従来の直接テーブルル
ックアップ法によって2変数関数演算を実行する関数演
算装置であり、10aは関数値をあらかじめ用意したメモ
リテーブルとしての関数テーブル、20,21はそれぞれ入
力変数X,Y、30は関数値f(X,Y)である。
ックアップ法によって2変数関数演算を実行する関数演
算装置であり、10aは関数値をあらかじめ用意したメモ
リテーブルとしての関数テーブル、20,21はそれぞれ入
力変数X,Y、30は関数値f(X,Y)である。
次に動作について説明する。第4図(a)における関
数テーブル10aは、第4図(b)のように入力変数X,Yの
すべてのアドレスに対応してデータが格納されている。
すなわち、入力変数X,Yの値が定まるとそのアドレスを
参照することにより目的の関数値f(X,Y)=aaが求ま
ることになる。
数テーブル10aは、第4図(b)のように入力変数X,Yの
すべてのアドレスに対応してデータが格納されている。
すなわち、入力変数X,Yの値が定まるとそのアドレスを
参照することにより目的の関数値f(X,Y)=aaが求ま
ることになる。
この直接テーブルルックアップ法の従来の実現法とし
ては、関数テーブル10を電子計算機内の主記憶装置等に
配置し、プログラムを用いたソフトウェア方式と、関数
テーブル10をROMやRAM等のメモリ素子中に配置し、入力
アドレスに対する出力値として関数値を求めるハードウ
ェア方式がある。
ては、関数テーブル10を電子計算機内の主記憶装置等に
配置し、プログラムを用いたソフトウェア方式と、関数
テーブル10をROMやRAM等のメモリ素子中に配置し、入力
アドレスに対する出力値として関数値を求めるハードウ
ェア方式がある。
従来の直接テーブルルックアップ法では、ソフトウェ
ア方式の場合、電子計算機のCPUによるプログラムの実
行のため処理時間が増大するという問題点があり、ROM
等を用いるハードウェア方式では、処理時間は素子のア
クセス時間となり高速ではあるが、精度を上げようとす
る入力アドレスのビット数を増やすことになりハードウ
ェア量が膨大なものになるという問題点があった。
ア方式の場合、電子計算機のCPUによるプログラムの実
行のため処理時間が増大するという問題点があり、ROM
等を用いるハードウェア方式では、処理時間は素子のア
クセス時間となり高速ではあるが、精度を上げようとす
る入力アドレスのビット数を増やすことになりハードウ
ェア量が膨大なものになるという問題点があった。
この発明は上記のような問題点を解消するためになさ
れたもので、少ないハードウェア量で高速かつ実用レベ
ルの精度を持つ汎用の関数演算装置を得ることを目的と
する。
れたもので、少ないハードウェア量で高速かつ実用レベ
ルの精度を持つ汎用の関数演算装置を得ることを目的と
する。
この発明に係る関数演算装置は、入力変数を上位ビッ
トと下位ビットと一次補間近似の式に基づいた上記入力
変数の傾きとを乗算して偏差を算出する偏差算出器1A
と、上記入力変数の上位ビットを基にして得られたメモ
リテーブル10上の関数値と上記偏差算出器1Aから出力さ
れる偏差とを加算して上記入力変数に対応する関数値を
出力する加算器16とを具備したことを特徴とするもので
ある。
トと下位ビットと一次補間近似の式に基づいた上記入力
変数の傾きとを乗算して偏差を算出する偏差算出器1A
と、上記入力変数の上位ビットを基にして得られたメモ
リテーブル10上の関数値と上記偏差算出器1Aから出力さ
れる偏差とを加算して上記入力変数に対応する関数値を
出力する加算器16とを具備したことを特徴とするもので
ある。
関数演算装置に入力変数が入力されると、入力変数の
上位ビットはメモリテーブル10に、また下位ビットは偏
差算出器1Aに各々入力される。ここでメモリテーブル10
から入力変数の上位ビットに対応する関数値が出力さ
れ、偏差算出器1Aから偏差が出力される。加算器16はメ
モリテーブル10から出力される関数値と偏差算出器1Aか
ら出力される偏差を加算した値すなわち入力変数に対応
した関数値を出力する。
上位ビットはメモリテーブル10に、また下位ビットは偏
差算出器1Aに各々入力される。ここでメモリテーブル10
から入力変数の上位ビットに対応する関数値が出力さ
れ、偏差算出器1Aから偏差が出力される。加算器16はメ
モリテーブル10から出力される関数値と偏差算出器1Aか
ら出力される偏差を加算した値すなわち入力変数に対応
した関数値を出力する。
以下この発明の一実施例を図について説明する。
第1図はこの発明の一実施例を示す構成図で、図にお
いて、20は16ビットの整数の入力変数X、21は同様に16
ビットの整数の入力変数Y、30は24ビットの2変数の関
数出力値f(X,Y)、10はメモリテーブルとしての関数
値ROMテーブル、11はX方向の傾きROMテーブル、12はY
方向の傾きROMテーブル、13はX方向補間乗算器、14は
Y方向補間乗算器、15,16は加算器である。40,41はそれ
ぞれ入力変数X,Yをラッチする入力ラッチ、42は加算器1
6の出力をラッチする出力ラッチ、50はXの上位7ビッ
トとYの上位7ビットの計14ビットからなり、各ROMテ
ーブル11,12の入力となる入力アドレス、51は入力変数
Xの下位9ビットからなる下位ビット、52はYの下位9
ビットからなる下位ビット、53は関数ROMテーブル10の2
4ビット出力値、54はX方向の傾きROMテーブル11の16ビ
ットの出力値、55はY方向の傾きROMテーブル12の16ビ
ットの出力値、56,57は、それぞれX方向補間乗算器13,
Y方向補間乗算器14の24ビットの出力値、58は加算器15
の24ビットの出力値、59は加算器16から出力される24ビ
ットの出力値である。
いて、20は16ビットの整数の入力変数X、21は同様に16
ビットの整数の入力変数Y、30は24ビットの2変数の関
数出力値f(X,Y)、10はメモリテーブルとしての関数
値ROMテーブル、11はX方向の傾きROMテーブル、12はY
方向の傾きROMテーブル、13はX方向補間乗算器、14は
Y方向補間乗算器、15,16は加算器である。40,41はそれ
ぞれ入力変数X,Yをラッチする入力ラッチ、42は加算器1
6の出力をラッチする出力ラッチ、50はXの上位7ビッ
トとYの上位7ビットの計14ビットからなり、各ROMテ
ーブル11,12の入力となる入力アドレス、51は入力変数
Xの下位9ビットからなる下位ビット、52はYの下位9
ビットからなる下位ビット、53は関数ROMテーブル10の2
4ビット出力値、54はX方向の傾きROMテーブル11の16ビ
ットの出力値、55はY方向の傾きROMテーブル12の16ビ
ットの出力値、56,57は、それぞれX方向補間乗算器13,
Y方向補間乗算器14の24ビットの出力値、58は加算器15
の24ビットの出力値、59は加算器16から出力される24ビ
ットの出力値である。
ここにおいて、X方向の傾きROMテーブル11,Y方向の
傾きROMテーブル12,X方向補間乗算器13,Y方向補間乗算
器14は全体で偏差算出器1Aを構成している。
傾きROMテーブル12,X方向補間乗算器13,Y方向補間乗算
器14は全体で偏差算出器1Aを構成している。
ところで、一次補間近似の式は で表される。
第2図(a)はこの一次補間近似の式を説明するため
の図である。
の図である。
ここで は偏差Δを表している。
このように入力変数xH,xLを関数ROMテーブル10上のサ
ンプル点とし、このxH,xLに対応する関数値f(xH),f
(xL)が関数ROMテーブル10から得られるとすれば、こ
れらサンプル点の間にある入力変数xに対応するf
(x)が一次補間近似の式から導き出される。
ンプル点とし、このxH,xLに対応する関数値f(xH),f
(xL)が関数ROMテーブル10から得られるとすれば、こ
れらサンプル点の間にある入力変数xに対応するf
(x)が一次補間近似の式から導き出される。
今サンプル点の間隔を2nとすると第1項の除算とx−
xLの計算が省略できる。例えば、10進数の38は2進数で
100110であり、テーブルのサンプル点の間隔を23=8と
すると、上位3ビットが100であることより4番目のサ
ンプル点を参照することになり、下位3ビットが110で
あることより、Δx=x−x1は6であることになる。
xLの計算が省略できる。例えば、10進数の38は2進数で
100110であり、テーブルのサンプル点の間隔を23=8と
すると、上位3ビットが100であることより4番目のサ
ンプル点を参照することになり、下位3ビットが110で
あることより、Δx=x−x1は6であることになる。
またf(xH)−f(xL)の減算はテーブルのデータと
してf(xH)−f(xL)の値を与えることにより省略で
きる。
してf(xH)−f(xL)の値を与えることにより省略で
きる。
この結果、1変数補間計算は第2図(b)に示す図で
わかるように、 f(x)=A1+Δx・A2 =A1+Δ(偏差) となり加算と乗算で関数値f(x)が得られる。
わかるように、 f(x)=A1+Δx・A2 =A1+Δ(偏差) となり加算と乗算で関数値f(x)が得られる。
この考え方を2変数補間計算へ拡張する。第3図は2
変数補間計算方式を示すものである。点(X,Y)の関数
値f(X,Y)を求めるために点(X0,Y0)のテーブル上の
データを参照する。テーブルには3個のデータA1,A2,A3
が書き込まれていて、これらのデータとΔX,ΔYの値を
用いて以下の手順で計算が行われる。
変数補間計算方式を示すものである。点(X,Y)の関数
値f(X,Y)を求めるために点(X0,Y0)のテーブル上の
データを参照する。テーブルには3個のデータA1,A2,A3
が書き込まれていて、これらのデータとΔX,ΔYの値を
用いて以下の手順で計算が行われる。
1)B=A2ΔX (2−3) 2)C=A3ΔY (2−4) 3)f(X,Y)=A1+B+C=A1+A2ΔX+A3ΔY (2
−5) この方式により2回の乗算と2回の加算のみで2変数
の補間計算が行える。このアルゴリズムのハードウェア
化を示したのが第1図である。
−5) この方式により2回の乗算と2回の加算のみで2変数
の補間計算が行える。このアルゴリズムのハードウェア
化を示したのが第1図である。
次に動作について説明する。
今、入力変数X20の16ビットと、入力変数Y21の16ビッ
トはそれぞれ入力ラッチ40,41にデータ保持された後、
Xの上位7ビットとYの上位7ビットの合わせて14ビッ
トが入力アドレス50となり各ROMテーブル11,12のアドレ
ス入力となる。すなわち、関数値ROMテーブル10によ
り、出力値53の出力24ビットが(2−5)式の第1項A1
として求まり、X方向の傾きROMテーブル11によりA2が
求まり、16ビットの出力値54が得られ、Y方向の傾きRO
Mテーブル12によりA3が求まり、16ビットの出力値55が
得られる。また、入力ラッチ40,41の入力変数X,Yの出力
16ビットの下位9ビットが、それぞれ(2−5)式のΔ
Xすなわち下位ビット51とΔYすなわち下位ビット52と
なり、ΔXとA2がX方向補間乗算器13により乗算が行わ
れ、24ビットの出力値56が第2項A2ΔXとして求まり、
同様にΔYすなわち下位ビット52とA3の出力値55がY方
向補間乗算器14により乗算結果として24ビットの出力値
57が第3項A3ΔYとして得られる。
トはそれぞれ入力ラッチ40,41にデータ保持された後、
Xの上位7ビットとYの上位7ビットの合わせて14ビッ
トが入力アドレス50となり各ROMテーブル11,12のアドレ
ス入力となる。すなわち、関数値ROMテーブル10によ
り、出力値53の出力24ビットが(2−5)式の第1項A1
として求まり、X方向の傾きROMテーブル11によりA2が
求まり、16ビットの出力値54が得られ、Y方向の傾きRO
Mテーブル12によりA3が求まり、16ビットの出力値55が
得られる。また、入力ラッチ40,41の入力変数X,Yの出力
16ビットの下位9ビットが、それぞれ(2−5)式のΔ
Xすなわち下位ビット51とΔYすなわち下位ビット52と
なり、ΔXとA2がX方向補間乗算器13により乗算が行わ
れ、24ビットの出力値56が第2項A2ΔXとして求まり、
同様にΔYすなわち下位ビット52とA3の出力値55がY方
向補間乗算器14により乗算結果として24ビットの出力値
57が第3項A3ΔYとして得られる。
最後に、第2項の値となる出力値56と第3項の値とな
る出力値57が加算器15によって加算され24ビットの出力
値58となり、それと第1項の値となる出力値53が加算器
16によって加算されることによりその結果出力値59が出
力ラッチ42に入力され、最終的な関数値f(X,Y)が出
力値30の24ビットとして求まることになる。
る出力値57が加算器15によって加算され24ビットの出力
値58となり、それと第1項の値となる出力値53が加算器
16によって加算されることによりその結果出力値59が出
力ラッチ42に入力され、最終的な関数値f(X,Y)が出
力値30の24ビットとして求まることになる。
なお、上記実施例ではテーブルとしてROMを用いた
が、RAM等を用いて関数テーブルを必要に応じて書き込
むことにより、汎用の高速関数演算装置として用いるこ
ともできる。
が、RAM等を用いて関数テーブルを必要に応じて書き込
むことにより、汎用の高速関数演算装置として用いるこ
ともできる。
また例ではX,Y入力を16ビットとして出力を24ビット
としたが、さらに高い精度を得たければその入力ビット
数を増やし、関数テーブルの間隔を細く設定することに
より可能となる。
としたが、さらに高い精度を得たければその入力ビット
数を増やし、関数テーブルの間隔を細く設定することに
より可能となる。
さらに、上記例では2変数入力関数演算について説明
したが、3変数以上の関数でも上記の2変数入力関数演
算装置で拡張可能である。すなわち、1変数関数のみで
3変数関数を表すことは不可能であるが、3変数x,y,x
が独立であればf(x,y,z)はf(x,y,z)=g(h(x,
y),z)のように2変数関数のみで表すことが可能であ
る。これは一般にn変数(n>1)についても成立す
る。
したが、3変数以上の関数でも上記の2変数入力関数演
算装置で拡張可能である。すなわち、1変数関数のみで
3変数関数を表すことは不可能であるが、3変数x,y,x
が独立であればf(x,y,z)はf(x,y,z)=g(h(x,
y),z)のように2変数関数のみで表すことが可能であ
る。これは一般にn変数(n>1)についても成立す
る。
以上のように、この発明によれば、入力変数を上位ビ
ットと下位ビットに分けた場合の下位ビットと一次補間
近似の式に基づいた上記入力変数の傾きとを乗算して偏
差を算出する偏差算出器と、入力変数の上位ビットを基
にして得られたメモリテーブル上の関数値と上記偏差算
出器から出力される偏差とを加算して上記入力変数に対
応する関数値を出力する加算器とを具備したので装置が
大規模にならずに精度を高められ、しかも汎用の高速関
数演算装置を得られる効果がある。
ットと下位ビットに分けた場合の下位ビットと一次補間
近似の式に基づいた上記入力変数の傾きとを乗算して偏
差を算出する偏差算出器と、入力変数の上位ビットを基
にして得られたメモリテーブル上の関数値と上記偏差算
出器から出力される偏差とを加算して上記入力変数に対
応する関数値を出力する加算器とを具備したので装置が
大規模にならずに精度を高められ、しかも汎用の高速関
数演算装置を得られる効果がある。
第1図はこの発明の一実施例を示す構成図、第2図
(a),(b)は一次補間近似の式を説明するための
図、第3図は入力変数がX,Y2つの場合の一次補間近似の
式を説明するための図、第4図(a),(b)は従来の
入力変数に対する関数値を求める関数演算装置を説明す
るための図である。 10……関数値ROMテーブル(メモリテーブル)、11……
X方向の傾きROMテーブル、12……Y方向の傾きROMテー
ブル、13……X方向補間乗算器、14……Y方向補間乗算
器、15,16……加算器、1A……偏差算出器。 図中同一符号は同一若しくは相当する構成要素を示す。
(a),(b)は一次補間近似の式を説明するための
図、第3図は入力変数がX,Y2つの場合の一次補間近似の
式を説明するための図、第4図(a),(b)は従来の
入力変数に対する関数値を求める関数演算装置を説明す
るための図である。 10……関数値ROMテーブル(メモリテーブル)、11……
X方向の傾きROMテーブル、12……Y方向の傾きROMテー
ブル、13……X方向補間乗算器、14……Y方向補間乗算
器、15,16……加算器、1A……偏差算出器。 図中同一符号は同一若しくは相当する構成要素を示す。
Claims (1)
- 【請求項1】入力変数に対応するメモリテーブル上の値
を参照して上記入力変数に対応する関数値を求める関数
演算装置において、上記入力変数を上位ビットと下位ビ
ットに分けた場合の下位ビットと一次補間近似の式に基
づいた上記入力変数の傾きとを乗算して偏差を算出する
偏差算出器と、上記入力変数の上位ビットを基にして得
られた上記メモリーテーブル上の関数値と上記偏差算出
器から出力される偏差とを加算して上記入力変数に対応
する関数値を出力する加算器とを具備したことを特徴と
する関数演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63014063A JP2644514B2 (ja) | 1988-01-25 | 1988-01-25 | 関数演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63014063A JP2644514B2 (ja) | 1988-01-25 | 1988-01-25 | 関数演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01189765A JPH01189765A (ja) | 1989-07-28 |
JP2644514B2 true JP2644514B2 (ja) | 1997-08-25 |
Family
ID=11850631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63014063A Expired - Lifetime JP2644514B2 (ja) | 1988-01-25 | 1988-01-25 | 関数演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2644514B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940006814B1 (ko) * | 1992-01-11 | 1994-07-28 | 삼성전자 주식회사 | 분산 연산을 이용한 연산장치 |
JPH06110919A (ja) * | 1992-09-24 | 1994-04-22 | Sony Tektronix Corp | 近似直線計算方法 |
JP2002373076A (ja) * | 2001-06-13 | 2002-12-26 | Oki Electric Ind Co Ltd | 計算装置及び計算方法 |
WO2021117112A1 (ja) * | 2019-12-09 | 2021-06-17 | 太陽誘電株式会社 | 演算装置および演算システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61283962A (ja) * | 1985-06-10 | 1986-12-13 | Nec Corp | 近似関数値生成回路 |
-
1988
- 1988-01-25 JP JP63014063A patent/JP2644514B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01189765A (ja) | 1989-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02196328A (ja) | 浮動小数点演算装置 | |
US4130878A (en) | Expandable 4 × 8 array multiplier | |
JPH01125626A (ja) | 逆数計算方法 | |
US5796645A (en) | Multiply accumulate computation unit | |
US5359551A (en) | High speed logarithmic function generating apparatus | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
JP2644514B2 (ja) | 関数演算装置 | |
JP3129392B2 (ja) | 2次元idct回路 | |
US5757377A (en) | Expediting blending and interpolation via multiplication | |
JPH0690668B2 (ja) | ファジイ演算装置 | |
JP2737933B2 (ja) | 除算装置 | |
JPH08504046A (ja) | 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置 | |
EP0166999A2 (en) | Time saving method for computing square roots on a computer having a "one bit at a time" division instruction | |
JP3315042B2 (ja) | 乗算装置 | |
JPH0314128A (ja) | 対数表現数値利用の演算装置 | |
WO1994018632A1 (en) | Low latency function generating apparatus and method | |
JP2790327B2 (ja) | 剰余乗算回路および剰余乗算方法 | |
JP3201097B2 (ja) | 乗算器における乗算処方方法 | |
JP2005227811A (ja) | 近似回路 | |
JPH0251732A (ja) | 浮動小数点演算器 | |
JPH0695855A (ja) | 逆数発生回路及びこれを用いたディジタルシグナルプロセッサ | |
JP2708526B2 (ja) | 2進整数除算処理方法 | |
JP2508286B2 (ja) | 平方根演算装置 | |
JP3461252B2 (ja) | 乗算方法 | |
JP3078696B2 (ja) | 逆数演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080502 Year of fee payment: 11 |