JPH04275668A - 積和演算に用いる部分和を量子化する方法 - Google Patents
積和演算に用いる部分和を量子化する方法Info
- Publication number
- JPH04275668A JPH04275668A JP3061308A JP6130891A JPH04275668A JP H04275668 A JPH04275668 A JP H04275668A JP 3061308 A JP3061308 A JP 3061308A JP 6130891 A JP6130891 A JP 6130891A JP H04275668 A JPH04275668 A JP H04275668A
- Authority
- JP
- Japan
- Prior art keywords
- value
- sum
- partial
- average
- quantization
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 14
- 239000004065 semiconductor Substances 0.000 claims abstract description 44
- 238000013139 quantization Methods 0.000 claims description 61
- 238000013459 approach Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 101000582320 Homo sapiens Neurogenic differentiation factor 6 Proteins 0.000 description 1
- 102100030589 Neurogenic differentiation factor 6 Human genes 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Abstract
め要約のデータは記録されません。
Description
じめ記憶させておいた半導体記憶装置を用いて、積和演
算を回路で実現する場合に関し、半導体記憶装置に記憶
させる部分和の値を決定する方法の改良に関するもので
ある。
正の整数とする。n個の変数
表現で表されている場合には、
k の語長である。
るには、部分和
】 の関数であり、nビット変数である数8は2のn乗個の
値を取る。従って、もし、数8が取り得る2のn乗個の
値すべてに対応する部分和の値をあらかじめ半導体記憶
装置に記憶させることができれば、積和演算である数3
を図2のような回路で実現することができる。
算である数3を行う回路の一例を示すブロック図である
。図において、11は部分和である数7の値を記憶して
おく半導体記憶装置、12は加減算器、13はレジスタ
であり、14はレジスタ13の値を1/2倍するシフト
レジスタである。半導体記憶装置11は、nビット変数
数8の値をアドレス15として与えられると、数8の値
に対応した部分和数7の値16を出力する。そして、ア
ドレス15に対応した部分和の値16は加減算器12へ
入力される。18は加減算器12からの出力で、レジス
タ13へ入力される。17はレジスタ13の値を1/2
倍した値で、シフトレジスタ14から出力され、加減算
器12へ入力される。
実行する動作について説明する。まずレジスタ13の値
をあらかじめ0に設定しておく。nビット変数数8の値
を半導体記憶装置11にアドレス15として入力する。 その結果、半導体記憶装置11から出力される部分和数
7の値16と、レジスタ13の値を1/2倍した値17
が、加減算器12で加算される。ただし、jがp、即ち
変数xk の語長の場合のみ減算される。そして加減算
器12からの出力18は、レジスタ13に入れられる。 上記の操作を、jがlからpになるまでp回繰り返すと
、最終的にレジスタ13には、積和演算である数3の結
果が入れられることになる。
である数7の正確な値を記憶させることができない場合
がある。というのは、どんな半導体記憶装置でも有限語
長しか持たないので、記憶することのできない値が存在
するからである。以下、ある半導体記憶装置が与えられ
たとき、上記半導体記憶装置が記憶できる値のことを、
上記半導体記憶装置の表現可能値と呼ぶことにする。
の正確な値が半導体記憶装置11の表現可能値でなけれ
ば、上記部分和の正確な値をそのまま半導体記憶装置1
1に記憶させることはできない。その場合には、上記部
分和の値を、半導体記憶装置11の表現可能値の1つで
置き換えて、その置き換えられた値を半導体記憶装置1
1に記憶させることになる。
)の半導体記憶装置の表現可能値は、たかだか2のm乗
個である。また、積和演算を実現する回路の規模を大き
くしないために、mはできるだけ小さい方が好ましい。 それに対して、部分和の値は一般に実数である。従って
、多くの場合部分和の正確な値を半導体記憶装置に記憶
させることはできない。そのため、一般に積和演算数3
を図2のような回路で実現する時には、部分和数7のす
べての値を半導体記憶装置11の表現可能値で置き換え
る操作を行う。この時、上記部分和の正確な値が元々上
記表現可能値である場合にのみ、置き換えられた値は上
記部分和の正確な値を取り得ることになる。
の表現可能値に置き換える操作のことを部分和の量子化
と呼び、置き換えられた値のことを量子化された値と呼
ぶ。また、部分和の量子化された値と部分和の正確な値
との差のことを量子化誤差と呼ぶ。
る半導体記憶装置11の表現可能値でない場合には量子
化誤差は0でない。量子化誤差が0でない場合、半導体
記憶装置11には部分和の正確な値が記憶されていない
ので、上記半導体記憶装置11を用いた回路で積和演算
を実現した場合には積和演算結果に誤差が生じる可能性
がある。従って部分和の量子化をするときには、積和演
算結果が持つ誤差をできるだけ小さくするような量子化
をする必要がある。
としては、丸めによる量子化があった。丸めによる部分
和の量子化では、各部分和の量子化された値に、与えら
れた半導体記憶装置11の表現可能値の中で上記部分和
の値に最も近いものを選ぶ。従って、丸めによる部分和
の量子化では、量子化された各値が持つ量子化誤差の絶
対値は最小になるので、1回の積和演算で生じる誤差の
絶対値も最小になる。
来の丸めによる量子化の例を示す表である。nが4の場
合、2のn乗は16なので、数8の取り得る値は16通
りである。従って、図2のような回路で積和演算を行う
には、部分和の値を記憶させる半導体記憶装置11のア
ドレス15も16通り必要である。ここでは、部分和を
記憶させる半導体記憶装置11の表現可能値は、−32
768から32767までの整数であるとしている。
アドレスに対応する正確な部分和の値と、該部分和の値
を丸めによって−32768から32767までの整数
に量子化した値と、上記正確な部分和の値と該量子化し
た値との量子化誤差と、該量子化誤差の全部分和にわた
っての平均が示されている。部分和の量子化された値、
即ち丸められた値は、部分和の正確な値に最も近い−3
2768から32767までの整数になっている。
いて説明する。図3は、丸めによる量子化の動作を示す
フローチャート図である。図3のフローチャートは1つ
のステップからなる。該ステップは、各部分和の値を、
半導体記憶装置11の表現可能値のうち最も上記部分和
の値に近いもので置き換えるステップであり、即ち丸め
による量子化が行われる。
半導体記憶装置11に記憶させる値として用い、図2の
回路でもって積和演算を行う。
化では、部分和の値と、部分和の値を記憶する半導体記
憶装置の表現可能値が与えられると、量子化された値は
一意的に決まってしまう。そのために、一つ一つの量子
化された値の持つ量子化誤差は最小であるにもかかわら
ず、量子化誤差の全部分和にわたっての平均の絶対値は
、大きくなってしまう可能性があった。
積和演算である数3を繰り返して行う場合には、上記量
子化誤差の平均の絶対値が大きいと、積和演算結果が持
つ誤差の全演算にわたっての平均の絶対値も大きくなっ
てしまう。例えば、変数xk を完全なランダムデータ
にして、積和演算数3を多数回繰り返した場合、積和演
算結果が持つ誤差の全演算にわたっての平均は、量子化
誤差の全部分和にわたっての平均に比例する。このこと
は、量子化誤差の全部分和にわたっての平均の絶対値が
大きくなると、積和演算数3の精度が悪くなることを示
している。
り、積和演算精度を良くするには、部分和の値を記憶す
る半導体記憶装置の語長を大きくして、表現可能値の数
を大きくするしかなかった。ところが、半導体記憶装置
の語長を大きくすると、積和演算数3を実現する回路の
規模が大きくなってしまうという問題点があった。
めになされたもので、部分和の値を記憶させる半導体記
憶装置の語長を大きくすることなく、精度の良い積和演
算を回路で実現することのできる、積和演算に用いる部
分和を量子化する方法を得ることを目的としている。
用いる部分和を量子化する方法は、部分和の値を丸めに
よって量子化し、量子化誤差の全部分和にわたっての平
均が0にならない場合に、上記丸められた値の一部また
は全部を、上記平均が0に近くなるように、丸められた
値とは異なる値に変更するものである。
て量子化し、量子化誤差の全部分和にわたっての平均が
0にならない場合に、該平均が0に近くなるように、一
部または全部の上記丸めにより量子化した値を異なる値
にしたので、部分和の値を記憶させる半導体記憶装置の
語長を変えずに、量子化誤差の全部分和にわたっての平
均を0に近づけることができ、従って、積和演算をいろ
いろな値の変数に対して繰り返し行った時、積和演算結
果の待つ誤差の全演算にわたっての平均を0に近づける
ようにすることができる。
場合で、半導体記憶装置に記憶させるために本発明の一
実施例による量子化方法で量子化した場合の一例を示す
表である。
値は、表3での場合と同じ−32768から32767
までの整数であるとしている。表1には、表3と同様に
、16通りのアドレスと、該アドレスに対応する正確な
部分和の値と、該部分和の値を本発明の量子化方法によ
って−32768から32767までの整数に量子化し
た値と、上記部分和の正確な値と該量子化した値との量
子化誤差と、該量子化誤差の全部分和にわたっての平均
が示されている。表1では、部分和の量子化された値の
うちの3つ、即ちアドレス1001,アドレス1100
,アドレス1101を、丸められた値とは異なる値に変
更している。
では、量子化誤差の全部分和にわたっての平均は−0.
17である。それに対して表1に示す本発明の量子化の
場合では、上記平均が0.0175になっており、従来
の量子化より上記平均は0に近くなっている。
作を示すフローチャート図である。図1のフローチャー
ト図は、4つのステップからなる。第1のステップは、
各部分和の値を丸めによって量子化する、即ち半導体記
憶装置の表現可能値のうち最も部分和の正確な値に近い
もので置き換えるステップである。第2のステップは、
第1のステップの量子化で生じる量子化誤差の、全部分
和にわたっての平均を計算するステップである。第3の
ステップは、第2のステップで計算した誤差の平均が0
かどうかを判定し、0の場合には終了し、0でない場合
には第4のステップを実行させるステップである。第4
のステップは、1つ以上の量子化された値を、量子化誤
差の全部分和にわたっての平均が0に近くなるように、
丸められた値とは異なる値に設定し直すステップである
。
1を用いて説明する。図1の第1のステップで、部分和
の値を丸めにより量子化する。従来の量子化方法では、
このステップで量子化の動作を終了していた。
テップでの量子化により生じる量子化誤差の全部分和に
わたっての平均を計算する。この実施例の場合には、該
平均は表3に示したものと同様に−0.17になってお
り、0でないので、第3のステップにより第4のステッ
プを実行させることになる。
けるために、丸めにより量子化された値のうちの1つ以
上を、丸められた値とは異なる値に変更する。この実施
例の場合には、平均が−0.17というように負になっ
ているので、第1のステップで負の方向に丸められた値
のいくつかを、正の方向に量子化し直せば、上記平均は
0に近づくことがわかる。そこで、表3に示したような
丸められた値を、表1に示す量子化された値に変更する
。即ち、アドレス1001の量子化された値を、丸めら
れた値12625から12626という値に変更し、ア
ドレス1100の量子化された値を、丸められた値12
625から12626という値に変更し、アドレス11
01の量子化された値を、丸められた値20817から
20818という値に変更する。その他のアドレスの量
子化された値は、丸められた値から変更しない。このよ
うにすると、量子化誤差の全部分和にわたっての平均は
0.0175になり、丸めによる量子化の場合よりも平
均が0に近くなっている。
実施例では、量子化誤差の全部分和にわたっての平均を
計算する時に、重みをつけない単純平均を計算していた
が、第2の実施例では、上記平均を計算する時に、重み
をつけて平均の計算をするものとする。
多く使われるかが予め分かっている場合には、よく使わ
れる部分和の重みを余り使われない部分和の重みより大
きくして、重みをつけて平均の計算をすることにする。 つまり図1の第2のステップでの量子化誤差の平均の計
算を、重みをつけて行い、第4のステップで該重みをつ
けて計算した平均を小さくするように量子化された値を
変更すれば、単純平均を用いた場合よりも更に演算精度
が良くなることが期待できる。
あり、表1の例と同じ部分和の値の場合であり、また表
1での場合と同様に半導体記憶装置の表現可能値は−3
2768から32767までの整数であるとしている。
レスと、該アドレスに対応する正確な部分和の値と、該
部分和の値を本発明の第2の実施例の量子化方法によっ
て−32768から32767までの整数に量子化した
値と、上記正確な部分和の値と該量子化された値との量
子化誤差と、該量子化誤差の全部分和にわたっての平均
が示されており、また上記部分和の各値が持つ重みが示
されている。
に対応する部分和の値の重みを、他の部分和の値の重み
の30倍にして、量子化誤差の全部分和にわたって平均
の計算を重みをつけて行っている。この時、丸めによる
量子化の場合には、重みをつけて計算した平均は0.0
427になるので、表2に示すようにアドレス1111
に対応する部分和の量子化された値を、丸められた値3
1521から31520に変更して、重みをつけて計算
した平均を0.0204にし、丸めによる量子化の場合
よりも量子化誤差の平均を0に近くしている。
での量子化された値を、半導体記憶装置11に記憶させ
る部分和の値として用い、積和演算を例えば図2に示す
回路でもって行う。
の丸めを行い、量子化誤差の全部分和にわたっての平均
が0にならない場合に、該平均が0に近くなるように、
一部または全部の丸められた値を異なる値に変更するよ
うにして量子化された値を設定するようにしたので、部
分和の値を記憶させる半導体記憶装置11の語長を変え
ずに、量子化誤差の全部分和にわたっての平均を0に近
づけることができ、従って積和演算結果の持つ誤差の全
演算にわたっての平均を0に近づけることができる、即
ち積和演算の精度を良くすることができる。
用いる部分和を量子化する方法によれば、部分和の値を
丸めによって量子化し、量子化誤差の全部分和にわたっ
ての平均が0にならない場合に、該平均が0に近くなる
ように、一部または全部の上記丸めにより量子化した値
を異なる値に変更するようにしたので、部分和の値を記
憶させる半導体記憶装置の語長を大きくすることなく、
量子化誤差の全部分和にわたっての平均を0に近づける
ことができ、従って高い演算精度の積和演算ができると
いう効果がある。
和を量子化する方法を示すフローチャート図である。
体記憶装置を用いる積和演算回路の一例を示すブロック
図である。
法を示すフローチャート図である。
ス15に対応する部分和の値17 レジスタ13の値
を1/2倍した値18 加減算器12の出力
Claims (1)
- 【請求項1】 積和演算に用いる部分和の値を半導体
記憶装置に記憶させて、上記積和演算を回路で実現する
場合において、上記部分和の値を、上記半導体記憶装置
が記憶できる値に丸めによって量子化し、該量子化によ
る誤差の全部分和にわたっての平均が0にならない場合
、該量子化による誤差の平均が0に近づくように、上記
丸められた値の一部または全部をその値とは異なる値に
量子化することを特徴とする積和演算に用いる部分和を
量子化する方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3061308A JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3061308A JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04275668A true JPH04275668A (ja) | 1992-10-01 |
JP2828791B2 JP2828791B2 (ja) | 1998-11-25 |
Family
ID=13167417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3061308A Expired - Lifetime JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2828791B2 (ja) |
-
1991
- 1991-03-01 JP JP3061308A patent/JP2828791B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2828791B2 (ja) | 1998-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100498457B1 (ko) | 메모리를 감소시키는 개선된 룩업 테이블 압축방법 및이를 이용하여 압축된 룩업 테이블을 가지는 비선형 함수발생장치 및 그 발생방법 | |
EP0474222A2 (en) | Learning machine with a hierarchical structure without mutual connections within levels thereof | |
CN117859124A (zh) | 使用多层级查找表的函数近似方法和装置 | |
WO2020021396A1 (en) | Improved analog computing implementing arbitrary non-linear functions using chebyshev-polynomial- interpolation schemes and methods of use | |
US6983298B2 (en) | Method and apparatus for linear interpolation using gradient tables | |
JPH04275668A (ja) | 積和演算に用いる部分和を量子化する方法 | |
US4737925A (en) | Method and apparatus for minimizing a memory table for use with nonlinear monotonic arithmetic functions | |
JP3235713B2 (ja) | ベクトル量子化法及びその符号帳 | |
JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
JP2023161967A (ja) | 演算装置、演算方法及びプログラム | |
JP2943255B2 (ja) | 逆数算出回路 | |
JP2960594B2 (ja) | ディジタル信号プロセッサ | |
KR20010067226A (ko) | 인터폴레이션 방법 및 장치 | |
JP2000137701A (ja) | 積和演算誤差補正方法及び積和演算装置 | |
JPS63240626A (ja) | 関数演算器 | |
CN117435856A (zh) | 模型运算方法、装置、电子设备和存储介质 | |
KR940008610B1 (ko) | 고속 수렴 인자 결정 방법 및 프로세서 | |
JPS6356020A (ja) | 圧縮復号化装置 | |
JP2000029668A (ja) | データ丸め方法およびデータ丸め装置 | |
JPH0419571B2 (ja) | ||
JP2002063023A (ja) | 演算装置および演算方法 | |
JPH04317122A (ja) | ディジタル乗算器 | |
JPH06202752A (ja) | 指数関数データの補間装置 | |
JPH01288921A (ja) | 丸めの処理方式 | |
JPS63157269A (ja) | 演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070918 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080918 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080918 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090918 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090918 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100918 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110918 Year of fee payment: 13 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110918 Year of fee payment: 13 |