JP2828791B2 - 積和演算に用いる部分和を量子化する方法 - Google Patents

積和演算に用いる部分和を量子化する方法

Info

Publication number
JP2828791B2
JP2828791B2 JP3061308A JP6130891A JP2828791B2 JP 2828791 B2 JP2828791 B2 JP 2828791B2 JP 3061308 A JP3061308 A JP 3061308A JP 6130891 A JP6130891 A JP 6130891A JP 2828791 B2 JP2828791 B2 JP 2828791B2
Authority
JP
Japan
Prior art keywords
value
partial sum
sum
product
partial
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
Application number
JP3061308A
Other languages
English (en)
Other versions
JPH04275668A (ja
Inventor
紳一 浦本
竹田  淳
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3061308A priority Critical patent/JP2828791B2/ja
Publication of JPH04275668A publication Critical patent/JPH04275668A/ja
Application granted granted Critical
Publication of JP2828791B2 publication Critical patent/JP2828791B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、部分和の値をあらか
じめ記憶させておいた半導体記憶装置を用いて、積和演
算を回路で実現する場合に関し、半導体記憶装置に記憶
させる部分和の値を決定する方法の改良に関するもので
ある。
【0002】
【従来の技術】まず、積和演算について説明する。nを
正の整数とする。n個の変数
【数1】 と、n個の定数係数
【数2】 との、積和演算とは
【数3】 で表される演算である。
【0003】変数xk は、2の補数表示の固定少数点表
現で表されている場合には、
【数4】 のように書くことができる。数4において、
【数5】 は0または1の値を取るビット変数であり、pは変数x
k の語長である。
【0004】数4を数3に代入すると、
【数6】 のように書けることから、積和演算である数3を計算す
るには、部分和
【数7】 の値が分かれば良いことが分かる。
【0005】部分和である数7は、nビット変数
【数8】 の関数であり、nビット変数である数8は2のn乗個の
値を取る。従って、もし、数8が取り得る2のn乗個の
値すべてに対応する部分和の値をあらかじめ半導体記憶
装置に記憶させることができれば、積和演算である数3
を図2のような回路で実現することができる。
【0006】図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へ入力される。
【0007】次に、図2の回路で積和演算である数3を
実行する動作について説明する。まずレジスタ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の結果
が入れられることになる。
【0008】実際には、半導体記憶装置11に、部分和
である数7の正確な値を記憶させることができない場合
がある。というのは、どんな半導体記憶装置でも有限語
長しか持たないので、記憶することのできない値が存在
するからである。以下、ある半導体記憶装置が与えられ
たとき、上記半導体記憶装置が記憶できる値のことを、
上記半導体記憶装置の表現可能値と呼ぶことにする。
【0009】もし、数8のある値に対して、部分和数7
の正確な値が半導体記憶装置11の表現可能値でなけれ
ば、上記部分和の正確な値をそのまま半導体記憶装置1
1に記憶させることはできない。その場合には、上記部
分和の値を、半導体記憶装置11の表現可能値の1つで
置き換えて、その置き換えられた値を半導体記憶装置1
1に記憶させることになる。
【0010】一般に語長mビット(mは正の整数とす
る)の半導体記憶装置の表現可能値は、たかだか2のm
乗個である。また、積和演算を実現する回路の規模を大
きくしないために、mはできるだけ小さい方が好まし
い。それに対して、部分和の値は一般に実数である。従
って、多くの場合部分和の正確な値を半導体記憶装置に
記憶させることはできない。そのため、一般に積和演算
数3を図2のような回路で実現する時には、部分和数7
のすべての値を半導体記憶装置11の表現可能値で置き
換える操作を行う。この時、上記部分和の正確な値が元
々上記表現可能値である場合にのみ、置き換えられた値
は上記部分和の正確な値を取り得ることになる。
【0011】上に述べた、部分和の値を半導体記憶装置
の表現可能値に置き換える操作のことを部分和の量子化
と呼び、置き換えられた値のことを量子化された値と呼
ぶ。また、部分和の量子化された値と部分和の正確な値
との差のことを量子化誤差と呼ぶ。
【0012】部分和の正確な値が部分和の値を記憶させ
る半導体記憶装置11の表現可能値でない場合には量子
化誤差は0でない。量子化誤差が0でない場合、半導体
記憶装置11には部分和の正確な値が記憶されていない
ので、上記半導体記憶装置11を用いた回路で積和演算
を実現した場合には積和演算結果に誤差が生じる可能性
がある。従って部分和の量子化をするときには、積和演
算結果が持つ誤差をできるだけ小さくするような量子化
をする必要がある。
【0013】従来このような要求にこたえる量子化方法
としては、丸めによる量子化があった。丸めによる部分
和の量子化では、各部分和の量子化された値に、与えら
れた半導体記憶装置11の表現可能値の中で上記部分和
の値に最も近いものを選ぶ。従って、丸めによる部分和
の量子化では、量子化された各値が持つ量子化誤差の絶
対値は最小になるので、1回の積和演算で生じる誤差の
絶対値も最小になる。
【0014】下記の表3は、nが4の場合における、従
来の丸めによる量子化の例を示す表である。nが4の場
合、2のn乗は16なので、数8の取り得る値は16通
りである。従って、図2のような回路で積和演算を行う
には、部分和の値を記憶させる半導体記憶装置11のア
ドレス15も16通り必要である。ここでは、部分和を
記憶させる半導体記憶装置11の表現可能値は、−32
768から32767までの整数であるとしている。
【0015】
【表3】
【0016】表3には、16通りの上記アドレスと、該
アドレスに対応する正確な部分和の値と、該部分和の値
を丸めによって−32768から32767までの整数
に量子化した値と、上記正確な部分和の値と該量子化し
た値との量子化誤差と、該量子化誤差の全部分和にわた
っての平均が示されている。部分和の量子化された値、
即ち丸められた値は、部分和の正確な値に最も近い−3
2768から32767までの整数になっている。
【0017】次に、従来の丸めによる量子化の動作につ
いて説明する。図3は、丸めによる量子化の動作を示す
フローチャート図である。図3のフローチャートは1つ
のステップからなる。該ステップは、各部分和の値を、
半導体記憶装置11の表現可能値のうち最も上記部分和
の値に近いもので置き換えるステップであり、即ち丸め
による量子化が行われる。
【0018】そして、上記丸めによる量子化で量子化さ
れた値を、半導体記憶装置11に記憶させる値として用
い、図2の回路でもって積和演算を行う。
【0019】
【発明が解決しようとする課題】従来の丸めによる量子
化では、部分和の値と、部分和の値を記憶する半導体記
憶装置の表現可能値が与えられると、量子化された値は
一意的に決まってしまう。そのために、一つ一つの量子
化された値の持つ量子化誤差は最小であるにもかかわら
ず、量子化誤差の全部分和にわたっての平均の絶対値
は、大きくなってしまう可能性があった。
【0020】いろいろな値を持つ変数xk に対して、積
和演算である数3を繰り返して行う場合には、上記量子
化誤差の平均の絶対値が大きいと、積和演算結果が持つ
誤差の全演算にわたっての平均の絶対値も大きくなって
しまう。例えば、変数xk を完全なランダムデータにし
て、積和演算数3を多数回繰り返した場合、積和演算結
果が持つ誤差の全演算にわたっての平均は、量子化誤差
の全部分和にわたっての平均に比例する。このことは、
量子化誤差の全部分和にわたっての平均の絶対値が大き
くなると、積和演算数3の精度が悪くなることを示して
いる。
【0021】従来の丸めによる量子化での値を用いる限
り、積和演算精度を良くするには、部分和の値を記憶す
る半導体記憶装置の語長を大きくして、表現可能値の数
を大きくするしかなかった。ところが、半導体記憶装置
の語長を大きくすると、積和演算数3を実現する回路の
規模が大きくなってしまうという問題点があった。
【0022】本発明は上記のような問題点を解決するた
めになされたもので、部分和の値を記憶させる半導体記
憶装置の語長を大きくすることなく、精度の良い積和演
算を回路で実現することのできる、積和演算に用いる部
分和を量子化する方法を得ることを目的としている。
【0023】
【課題を解決するための手段】本発明に係る積和演算に
用いる部分和を量子化する方法は、部分和の値を丸めに
よって量子化し、量子化誤差の全部分和にわたっての平
均が0にならない場合に、上記丸められた値の一部また
は全部を、上記平均が0に近くなるように、丸められた
値とは異なる値に変更するものである。
【0024】
【作用】この発明においては、部分和の値を丸めによっ
て量子化し、量子化誤差の全部分和にわたっての平均が
0にならない場合に、該平均が0に近くなるように、一
部または全部の上記丸めにより量子化した値を異なる値
にしたので、部分和の値を記憶させる半導体記憶装置の
語長を変えずに、量子化誤差の全部分和にわたっての平
均を0に近づけることができ、従って、積和演算をいろ
いろな値の変数に対して繰り返し行った時、積和演算結
果の待つ誤差の全演算にわたっての平均を0に近づける
ようにすることができる。
【0025】
【実施例】下記の表1は、表3の例と同じ部分和の値の
場合で、半導体記憶装置に記憶させるために本発明の一
実施例による量子化方法で量子化した場合の一例を示す
表である。
【0026】
【表1】
【0027】この実施例での半導体記憶装置の表現可能
値は、表3での場合と同じ−32768から32767
までの整数であるとしている。表1には、表3と同様
に、16通りのアドレスと、該アドレスに対応する正確
な部分和の値と、該部分和の値を本発明の量子化方法に
よって−32768から32767までの整数に量子化
した値と、上記部分和の正確な値と該量子化した値との
量子化誤差と、該量子化誤差の全部分和にわたっての平
均が示されている。表1では、部分和の量子化された値
のうちの3つ、即ちアドレス1001,アドレス110
0,アドレス1101を、丸められた値とは異なる値に
変更している。
【0028】表3に示す従来の丸めによる量子化の場合
では、量子化誤差の全部分和にわたっての平均は−0.
17である。それに対して表1に示す本発明の量子化の
場合では、上記平均が0.0175になっており、従来
の量子化より上記平均は0に近くなっている。
【0029】図1は、本発明による部分和の量子化の動
作を示すフローチャート図である。図1のフローチャー
ト図は、4つのステップからなる。第1のステップは、
各部分和の値を丸めによって量子化する、即ち半導体記
憶装置の表現可能値のうち最も部分和の正確な値に近い
もので置き換えるステップである。第2のステップは、
第1のステップの量子化で生じる量子化誤差の、全部分
和にわたっての平均を計算するステップである。第3の
ステップは、第2のステップで計算した誤差の平均が0
かどうかを判定し、0の場合には終了し、0でない場合
には第4のステップを実行させるステップである。第4
のステップは、1つ以上の量子化された値を、量子化誤
差の全部分和にわたっての平均が0に近くなるように、
丸められた値とは異なる値に設定し直すステップであ
る。
【0030】次に表1の実施例での量子化の動作を、図
1を用いて説明する。図1の第1のステップで、部分和
の値を丸めにより量子化する。従来の量子化方法では、
このステップで量子化の動作を終了していた。
【0031】図1の第2のステップでは、上記第1のス
テップでの量子化により生じる量子化誤差の全部分和に
わたっての平均を計算する。この実施例の場合には、該
平均は表3に示したものと同様に−0.17になってお
り、0でないので、第3のステップにより第4のステッ
プを実行させることになる。
【0032】第4のステップでは、上記平均を0に近づ
けるために、丸めにより量子化された値のうちの1つ以
上を、丸められた値とは異なる値に変更する。この実施
例の場合には、平均が−0.17というように負になっ
ているので、第1のステップで負の方向に丸められた値
のいくつかを、正の方向に量子化し直せば、上記平均は
0に近づくことがわかる。そこで、表3に示したような
丸められた値を、表1に示す量子化された値に変更す
る。即ち、アドレス1001の量子化された値を、丸め
られた値12625から12626という値に変更し、
アドレス1100の量子化された値を、丸められた値1
2625から12626という値に変更し、アドレス1
101の量子化された値を、丸められた値20817か
ら20818という値に変更する。その他のアドレスの
量子化された値は、丸められた値から変更しない。この
ようにすると、量子化誤差の全部分和にわたっての平均
は0.0175になり、丸めによる量子化の場合よりも
平均が0に近くなっている。
【0033】次に本発明の第2の実施例を示す。上述の
実施例では、量子化誤差の全部分和にわたっての平均を
計算する時に、重みをつけない単純平均を計算していた
が、第2の実施例では、上記平均を計算する時に、重み
をつけて平均の計算をするものとする。
【0034】ある積和演算を行うときに、どの部分和が
多く使われるかが予め分かっている場合には、よく使わ
れる部分和の重みを余り使われない部分和の重みより大
きくして、重みをつけて平均の計算をすることにする。
つまり図1の第2のステップでの量子化誤差の平均の計
算を、重みをつけて行い、第4のステップで該重みをつ
けて計算した平均を小さくするように量子化された値を
変更すれば、単純平均を用いた場合よりも更に演算精度
が良くなることが期待できる。
【0035】下記の表2は第2の実施例での場合の表で
あり、表1の例と同じ部分和の値の場合であり、また表
1での場合と同様に半導体記憶装置の表現可能値は−3
2768から32767までの整数であるとしている。
【0036】
【表2】
【0037】表2には、表1と同様に、16通りのアド
レスと、該アドレスに対応する正確な部分和の値と、該
部分和の値を本発明の第2の実施例の量子化方法によっ
て−32768から32767までの整数に量子化した
値と、上記正確な部分和の値と該量子化された値との量
子化誤差と、該量子化誤差の全部分和にわたっての平均
が示されており、また上記部分和の各値が持つ重みが示
されている。
【0038】この第2の実施例では、アドレス1010
に対応する部分和の値の重みを、他の部分和の値の重み
の30倍にして、量子化誤差の全部分和にわた平均の
計算を重みをつけて行っている。この時、丸めによる量
子化の場合には、重みをつけて計算した平均は0.04
27になるので、表2に示すようにアドレス1111に
対応する部分和の量子化された値を、丸められた値31
521から31520に変更して、重みをつけて計算し
た平均を0.0204にし、丸めによる量子化の場合よ
りも量子化誤差の平均を0に近くしている。
【0039】そして、はじめの実施例又は第2の実施例
での量子化された値を、半導体記憶装置11に記憶させ
る部分和の値として用い、積和演算を例えば図2に示す
回路でもって行う。
【0040】このように本実施例によれば、部分和の値
の丸めを行い、量子化誤差の全部分和にわたっての平均
が0にならない場合に、該平均が0に近くなるように、
一部または全部の丸められた値を異なる値に変更するよ
うにして量子化された値を設定するようにしたので、部
分和の値を記憶させる半導体記憶装置11の語長を変え
ずに、量子化誤差の全部分和にわたっての平均を0に近
づけることができ、従って積和演算結果の持つ誤差の全
演算にわたっての平均を0に近づけることができる、即
ち積和演算の精度を良くすることができる。
【0041】
【発明の効果】以上のように、本発明に係る積和演算に
用いる部分和を量子化する方法によれば、部分和の値を
丸めによって量子化し、量子化誤差の全部分和にわたっ
ての平均が0にならない場合に、該平均が0に近くなる
ように、一部または全部の上記丸めにより量子化した値
を異なる値に変更するようにしたので、部分和の値を記
憶させる半導体記憶装置の語長を大きくすることなく、
量子化誤差の全部分和にわたっての平均を0に近づける
ことができ、従って高い演算精度の積和演算ができると
いう効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例による積和演算に用いる部分
和を量子化する方法を示すフローチャート図である。
【図2】本発明及び従来の部分和の値を記憶させる半導
体記憶装置を用いる積和演算回路の一例を示すブロック
図である。
【図3】従来の積和演算に用いる部分和を量子化する方
法を示すフローチャート図である。
【符号の説明】
11 半導体記憶装置 12 加減算器 13 レジスタ 14 シフトレジスタ 15 半導体記憶装置11のアドレス 16 アドレス15に対応する部分和の値 17 レジスタ13の値を1/2倍した値 18 加減算器12の出力
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 17/10 G06F 7/38 JICSTファイル(JOIS)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 積和演算に用いる部分和の値を半導体記
    憶装置に記憶させて、上記積和演算を回路で実現する場
    合において、上記部分和の値を、上記半導体記憶装置が
    記憶できる値に丸めによって量子化し、該量子化による
    誤差の全部分和にわたっての平均が0にならない場合、
    該量子化による誤差の平均が0に近づくように、上記丸
    められた値の一部または全部をその値とは異なる値に量
    子化することを特徴とする積和演算に用いる部分和を量
    子化する方法。
JP3061308A 1991-03-01 1991-03-01 積和演算に用いる部分和を量子化する方法 Expired - Lifetime JP2828791B2 (ja)

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 JPH04275668A (ja) 1992-10-01
JP2828791B2 true 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)

Also Published As

Publication number Publication date
JPH04275668A (ja) 1992-10-01

Similar Documents

Publication Publication Date Title
US10491239B1 (en) Large-scale computations using an adaptive numerical format
CN1498364A (zh) 产生具有可变精度的对数信号近似
US20210097397A1 (en) Information processing apparatus and information processing method
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
JP6528884B1 (ja) 学習プログラム、学習方法、及び情報処理装置
JP2828791B2 (ja) 積和演算に用いる部分和を量子化する方法
EP4375855A1 (en) Function approximation device and method using multi-level look-up table
TW202333041A (zh) 執行浮點運算的系統及方法
JP2020098469A (ja) 演算処理装置および演算処理装置の制御方法
US6983298B2 (en) Method and apparatus for linear interpolation using gradient tables
US7472147B2 (en) Random number string output apparatus, random number string output method, program, and information recording medium
WO2023189191A1 (ja) 固定小数点積和演算装置
JPH09128213A (ja) ブロックフローティング処理システムおよび方法
JP2645422B2 (ja) 浮動小数点演算処理装置
CN112308199B (zh) 数据块的处理方法、装置及存储介质
CN112308216B (zh) 数据块的处理方法、装置及存储介质
JP2023161967A (ja) 演算装置、演算方法及びプログラム
JP2508286B2 (ja) 平方根演算装置
JP4196434B2 (ja) データ丸め方法およびデータ丸め装置
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
KR20010067226A (ko) 인터폴레이션 방법 및 장치
JPH0637592A (ja) ディジタルフィルタ設計法
JP2000137701A (ja) 積和演算誤差補正方法及び積和演算装置
KR100256463B1 (ko) 임의의 베이스의 심볼을 가산하거나 감산하는 프로세스 및 시스템
JP4359258B2 (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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070918

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080918

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080918

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090918

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090918

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100918

Year of fee payment: 12

FPAY Renewal fee payment (prs 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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110918

Year of fee payment: 13