JPH1055352A - 浮動小数点数累積加算装置 - Google Patents

浮動小数点数累積加算装置

Info

Publication number
JPH1055352A
JPH1055352A JP8209836A JP20983696A JPH1055352A JP H1055352 A JPH1055352 A JP H1055352A JP 8209836 A JP8209836 A JP 8209836A JP 20983696 A JP20983696 A JP 20983696A JP H1055352 A JPH1055352 A JP H1055352A
Authority
JP
Japan
Prior art keywords
data
addition
input
level
result
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
JP8209836A
Other languages
English (en)
Inventor
Shinjirou Inahata
深二郎 稲畑
Sou Yamada
想 山田
Shinjiro Toyoda
新次郎 豊田
Nobuaki Miyagawa
宣明 宮川
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP8209836A priority Critical patent/JPH1055352A/ja
Priority to US08/901,671 priority patent/US6073155A/en
Publication of JPH1055352A publication Critical patent/JPH1055352A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】計算量が多い場合にも充分精度が良い浮動小数
点累積加算結果が得られるようにする。 【解決手段】シフトレジスタ30〜33のいずれか1つ
に2つの浮動小数点数データが格納されるとバッファ2
0 、201 〜230 、231 のうちそのシフトレジス
タに接続されているバッファを介して、BUS0、BU
S1に2つのデータが各々出力される。出力された2つ
のデータは、BUS0、BUS1を介して加算器40に
入力され、浮動小数点数に対する加算が行われ加算結果
データとして出力される。この加算結果データは、BU
SW及びマルチプレクサ41を介してシフトレジスタ3
1〜33の各入力に戻され、加算前の浮動小数点数デー
タを保持していたシフトレジスタの1つ上の加算レベル
に対応するシフトレジスタに書き込まれる。このような
動作を繰り返すことによって浮動小数点数を累積加算す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は浮動小数点数累積
加算装置に係り、特に、信号処理や物理現象のシミュレ
ーション等に応用される、有限な語長を有する浮動小数
点数を累積加算するための累積加算装置に関する。
【0002】
【従来の技術】従来より、累積加算装置は、画像処理等
の分野で広く使用されている。例えば、ディジタルフィ
ルタでは、複数の画素値の各々に特定の係数を乗算し、
乗算後のデータを累積加算する操作が行われるので、こ
の操作に累積加算装置が使用されている。
【0003】従来、この累積加算装置は、図11に示す
ように、データを保持するレジスタ111と、入力され
た累積加算すべきデータとレジスタ111に保持された
加算結果データとを加算する加算器110とで構成さ
れ、入力される順番でデータを累積加算していた。
【0004】すなわち、図11において、入力100か
らは図示されていないクロック信号に同期して累積加算
すべきデータが順番に入力され、レジスタ111はこの
クロック信号に同期して加算器110で加算されたデー
タを保持する。このとき、入力100から入力されたデ
ータは加算器110によってレジスタ111に保持され
ているデータと加算され、その和がレジスタ111に再
度格納される。このように、入力されたデータが直接累
積加算データに順に加算されてレジスタ111に格納さ
れていき、累積加算が終了すると出力101から累積加
算結果が出力される。
【0005】しかしながら、語長の定まった浮動小数点
データをこのように累積加算する場合には、切捨て、切
上げ、二捨一入等で生ずる丸め誤差によって累積加算結
果の精度が低下するという問題が発生する。特に、加算
結果の指数部と入力されるデータの指数部との差が大き
く異なる場合には、加算結果のビット数が浮動小数点数
で表されるビット数の範囲を越えてしまい、精度の低下
を引き起こす。値が大きい数に引き続いて値が小さい数
が多数入力されてくる場合等では、この誤差が累積加算
するために、最終的には計算精度の面で許容できない値
となる。
【0006】この現象を、257個の浮動小数点数で表
された数を累積加算する場合を例に説明する。ここで、
浮動小数点数は次のような形式で表現する。まず、1語
の中に区切りを設けて符号部、仮数部、及び指数部を別
々に格納する。仮数部は8ビットで絶対値を格納するも
のとし、また説明を簡単にするため仮数部のMSBは常
に1であるとし、仮数部のMSBが0で表される数は考
えないものとする。浮動小数点数の符号は符号部のビッ
トによって指定されるものとする。さらに、指数部は例
えば5ビットの符号付数で表されているものとし、基数
が2の時の指数を保持する。そして、以下の式で表され
る計算によって累積加算値sumを求めるものとする。
【0007】sum=Σa(i) , i=1〜257 ただし、a(1)=2-1,a(2)=a(3)=・・・
=a(257)=2-9 この計算の正確な結果は、以下のように1となる。
【0008】sum=2-1+2-9×256=2-1+2-9
×28 =2-1+2-1=1 一方、図11の回路でこの計算を行う場合を考えと、デ
ータa(i)は入力100から順番に入力されて加算器
110で加算されるので、加算器110では、まず2つ
の入力の小数点の位置を合わせるために、両者の指数部
の差に応じて、指数部が小さい方の浮動小数点数データ
の仮数部をLSB方向へシフトする。このシフトによっ
て、仮数部の8ビットの領域を越えるビットデータは捨
てられる。次に、8ビット同士の数を加え合わせて9ビ
ットの加算結果を得る。その後、MSBが1になるよう
に加算結果をシフトし、加算結果を得る。従って、9ビ
ットの加算結果のMSBが1であるときには、LSB方
向へ1ビットだけシフトされることになる。このとき、
シフト前の9ビットデータのLSBは8ビットの領域を
越えるので捨てられる。
【0009】上記のことを更に詳細に説明する。a
(1)が入力100から入力されてレジスタ111に格
納された後、入力100から順番にa(2)以降のデー
タが入力されるので、a(2)が入力された場合には、
加算器110ではレジスタに格納されているa(1)=
-1と次に入力されるa(2)=2-9とが上述した加算
手順に従って加え合わされる。
【0010】2-9の仮数部は、MSBのみが1で、残り
のビットが全て0で表されている。この値2-9の指数部
は、2-1の指数部との差が8であるため、加算を行う前
にLSB方向へ8ビットだけシフトされる。しかしなが
ら、仮数部は8ビットしかないので、MSBに存在して
いた1はシフトによって仮数部を越えることにより捨て
られ、仮数部は全ビットが0になる。このように、加え
合わされる2つのデータの指数部の値が大きく異なる場
合には、シフト操作によって値が小さいデータの精度が
低下する。この結果、2-1と0とが加算されることにな
り、1回目の加算結果は2-1となるので、レジスタ11
1には2-1が格納される。
【0011】その後、入力100からはa(2)と同じ
値であるa(3)以降のデータが順に入力されるが、レ
ジスタ111にはa(1)と同じ値2-1が格納されてい
るので、加算器110に入力される2つのデータはa
(1)とa(2)とを加算する場合と全く同じ値とな
る。この結果、加算結果もa(1)とa(2)との加算
結果と同じになり、レジスタ111に格納される値は2
-1のまま変化しない。
【0012】従って、入力100に257個のデータが
入力され、累積加算が終了した後には、出力101から
は累積加算値として2-1が出力される。この値は上述し
た正確な値と比較して1/2になっている。
【0013】この現象を更に解析的に検討する。まず、
仮数部のビット幅をpビットとしたとき、この構成によ
れば、1回の浮動小数点加算操作で、相対誤差er(|
er|≦2-p)が発生する。ここで、上記累積加算装置
による浮動小数点の加算を+’、正確な加算(誤差が発
生しない理想状態での加算)を+と表すと、累積加算装
置によるaとbとの加算は以下の式で表される。
【0014】a+’b=(1+er)(a+b)=(1
+er)a+(1+er)b すなわち、1回の浮動小数点の加算結果は、正確な加算
を実施した結果に対して、aとbとに共に相対誤差er
分の誤差が加えられた値となる。
【0015】この式に基づいて、図11の累積加算装置
を使用してN個の数a1〜aNを累積加算する場合の誤
差を解析する。この場合には、(N−1)回の浮動小数
点加算に対して、以下の式が成立する。 (・・・((a1+’a2)+’a3)+’・・・+’aN) =(1+er)(・・・(1+er)((1+er)(a1+a2)+a3) +・・・+aN) =(1+er)N-1 a1+(1+er)N-1 a2+(1+er)N-2 a3 +(1+er)N-3 a4+・・・+(1+er)aN すなわち、この式をN個の正確な和の形に表した時、N
個の数のうちa1、a2についてみると、各々(1+e
r)N-1 −1の相対誤差が残ることになり、この結果相
対誤差は最大(1+2-pN-1 −1、最小(1−2-p
N-1 −1となる。
【0016】上記の例では、N=257、p=8ビット
であるから、一番最初に入力される値に対する相対誤差
は、最大(1+2-8256 −1=1.71、最小(1−
-8256 −1=−0.63となる。従って、a1、a
2の値が他の255個の値と比較して大きければ、相対
誤差が累積加算結果に対して与える影響は大きくなる。
【0017】従来、このような精度の低下を防止するた
めに、特開平1−169627号公報及び特開平4−2
81524公報等で示される技術では、減算器によって
1回の加算結果の誤差を求め、その誤差を別の加算器で
累積加算して加算結果に加える等を行っていた。
【0018】
【発明が解決しようとする課題】しかしながら、上記の
従来例では、他の浮動小数点加算器、浮動小数点減算器
が3個から4個必要となり、浮動小数点加算器に含まれ
るバレルシフタ等によって回路規模が大きくなってしま
う、という欠点があった。
【0019】また、従来例では、結果的にデータのビッ
ト数を増やして精度を上げるという効果が得られるが、
加算の順番は図11で行われる累積加算の順番と変わら
ないので、加算の回数が非常に大きくなると図11の場
合と同様精度が問題となってくる。
【0020】この従来例では、浮動小数点演算の仮数部
のビット幅pを2pに拡張したことに相当する。従っ
て、相対誤差erは、|er|≦2-2p になる。この結
果、前述と同様の解析によって、一番最初に入力される
値に対する相対誤差は最大(1+2-2p N −1、最小
(1−2-2p N −1となる。
【0021】このように、相対誤差erの値自体は小さ
くなものの、Nの値が大きくなると相対誤差erも無視
できない大きさになる。
【0022】近年計算化学の分野においては、非経験的
分子軌道法と呼ばれる方法による計算によって、分子の
量子力学的なエネルギーを求める試みが盛んに行われる
ようになっている。この分野では、計算量はしばしば非
常に大きいものとなる。具体的には、Hartree−
Fock法(HF法)と呼ばれる方法によって計算を行
う場合、通常Fock行列と呼ばれる行列を求めながら
エネルギーを計算する。このとき、Fock行列の1つ
の要素を計算するためには、大きい分子で1億回もの累
積加算を求めることが必要となる。
【0023】従って、上記従来例は画像処理等の分野で
は十分な精度が得られていたにもかかわらず、分子軌道
法等の計算量が多い分野では十分な精度が得られない、
という問題があった。
【0024】本発明は上記問題点を解消するためになさ
れたもので、計算量が多い場合にも十分な精度が得られ
る浮動小数点累積加算装置を提供することを目的とす
る。
【0025】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明は浮動小数点数で表されたデータを累積
加算する浮動小数点数累積加算装置であって、入力され
た2つのデータを加算し加算結果データとして出力する
加算手段と、累積加算すべきデータと前記加算手段の加
算結果データとを入力し、該累積加算すべきデータ及び
該加算結果データから同じレベルの加算に使用される2
つのデータを抽出し、抽出した2つのデータを前記加算
手段に入力させるデータ加算順序変更手段と、を含んで
構成したものである。
【0026】本発明の加算手段は、入力された2つのデ
ータを加算し加算結果データとして出力し、加算順序変
更手段は、累積加算すべきデータと加算手段の加算結果
データとを入力し、加算に使用される2つのデータを抽
出し、加算手段に入力させる。従って、加算手段では、
累積加算すべきデータ同士の加算、累積加算すべきデー
タと加算結果データとの加算、及び加算結果データ同士
の加算等のレベルが異なる加算が行われることになる。
そこで、加算順序変更手段では、同じレベルの加算に使
用される2つのデータを抽出し、抽出した2つのデータ
を加算手段に入力させる。これにより、加算手段では同
じレベルの加算が実行される。なお、加算順序変更手段
で抽出するときは、同じレベルの加算に使用されるデー
タであればよく、レベルの高低に関係なく抽出すること
ができる。
【0027】例えば、累積加算すべきデータがa1〜a
7の7個の場合には、浮動小数点加算の順番は図3
(b)に示す順番になる。この結果、累積加算すべきデ
ータの個数をN(自然数)とし、m=log2 Nと仮定
すると、累積加算結果は以下の式で表される誤差を含ん
だものとなる。 (・・・((a1+’a2)+’(a3+’a4)+’・・・+’aN) =(・・・((1+er)(a1+a2)+’(1+er)(a3+a4)) +’・・・) =(1+er)m a1+(1+er)m a2+(1+er)m a3 +・・・+(1+er)m aN すなわち、累積加算結果をN個の正確な和で表した時
に、N個の数全てに(1+er)m −1の相対誤差が均
等に含まれることになる。浮動小数点数の仮数部をpビ
ットとすると、相対誤差の最大値は(1+2-pm
1、最小値は(1−2-pm −1となる。
【0028】浮動小数点数の仮数部を16ビットとした
ときの本発明の相対誤差を、従来例で得られる相対誤差
と比較して図4に示す。累積加算すべきデータの個数N
が100万程度の数では従来例の方が相対誤差は小さい
が、400万以上になってくると本発明の相対誤差の方
が小さくなり、1600万を越えると両者の相対誤差間
に10倍以上の開きが出ている。
【0029】図4より明らかなように、本発明によれ
ば、累積回数が大きくなってくると相対誤差は従来例に
比べて向上している。
【0030】第2の発明は、第1の発明のデータ加算順
序変更手段を、累積加算すべきデータから2つのデータ
を抽出する入力データ抽出部と、前記入力データ抽出部
で抽出されたデータを格納する入力データ格納部と、前
記加算手段の加算結果データから同じレベルの加算を行
った2つのデータを抽出する加算結果抽出部と、前記加
算結果抽出部で抽出されたデータを加算のレベル毎に格
納する複数の加算結果格納部と、前記入力データ格納部
及び前記複数の加算結果格納部から同じレベルの加算に
使用される2つのデータを抽出し、抽出した2つのデー
タを前記加算手段に入力させる格納データ抽出部と、を
含んで構成したものである。
【0031】本発明では、累積加算すべき2つのデータ
が入力データ格納部に格納され、同じレベルの加算を行
った2つの加算結果データが加算のレベル毎に各加算結
果格納部に格納される。加算結果格納部は、各々加算の
レベル毎にデータを格納するので、必要な最低の個数は
発生する加算のレベルの個数と同数である。すなわち、
累積加算すべきデータの個数をN、ガウスの記号を
[ ]とすると発生する加算のレベルの個数はN=2m
のときm個、N≠2m のとき[log2 N]+1個であ
るので、加算結果格納部の個数はN=2m のときm−1
個、N≠2m のとき[log2 N]個(入力データ格納
部を含めると各々m個、[log2 N]+1個)とな
り、また加算手段を1つだけ用意すればよいので、回路
規模を小さくすることができる。
【0032】また、入力データ抽出部で2つのデータを
抽出している間に異なるレベルの加算を実行することが
可能であるので、図11に示した従来の回路で累積加算
を求める場合と大差ない時間で最終的な累積加算結果を
得ることができる。
【0033】第3の発明は、第2の発明において、抽出
すべき2つのデータの少なくとも1つが存在しない場合
には、入力データ抽出部及び加算結果抽出部の少なくと
も一方が、存在しないデータとして0データを使用する
ものである。
【0034】累積加算すべきデータの個数をNがN≠2
m のとき、同じレベルの加算に使用されるデータが2つ
存在せず、データが余る場合があり、このような場合に
は入力データ格納部及び加算結果格納部の少なくとも一
方にデータが格納されたままになり、加算手段から加算
結果データが出力されなくなる場合がある。この場合に
は、次のように0データを追加してデータを加算手段に
入力させることにより対処することができる。
【0035】入力データ抽出部で2つのデータが抽出で
きず入力データ格納部に1つのデータのみが格納されて
いる場合には、外部から入力データ抽出部に0データを
追加することにより、格納データ抽出部で入力データ格
納部に格納されていた1つのデータと外部から追加され
た0データとを抽出して加算手段に入力させることがで
きる。
【0036】同様に、加算結果抽出部で2つのデータが
抽出できず加算結果格納部に1つのデータのみが格納さ
れている場合には、外部から加算結果抽出部に0データ
を追加することにより、格納データ抽出部で加算結果格
納部に格納されていた1つのデータと外部から追加され
た0データとを抽出して加算手段に入力させることがで
きる。
【0037】また、加算のレベルが高い加算結果格納部
に1つのデータのみが格納されている場合には、外部か
ら加算結果抽出部に0データを2つずつ入力して、加算
のレベルがより低い加算結果格納部に2つの0データを
格納することを繰り返す。これにより、加算結果データ
が加算のレベルがより高い加算結果格納部にシフトされ
ていき、1つのデータのみが格納されている加算結果格
納部の加算レベルと同じレベルになったときに、格納デ
ータ抽出部で加算結果格納部に格納されていた1つのデ
ータとシフトされてきた0データとが抽出されて加算手
段に入力される。
【0038】上記では、加算手段に0データを入力する
場合に、入力データ抽出部または加算結果抽出部に外部
から直接0データを追加する場合について説明したが、
入力データが加算手段を介して加算結果抽出部に入力さ
れるので、入力データ抽出部に2つの0データを追加し
て加算手段から0データを出力させることで、加算結果
抽出部に外部から直接0データを追加することなく加算
手段を介して加算結果格納部に0データを追加するよう
にしてもよい。なお、この場合においても、入力データ
抽出部に2つずつ0データを追加することを繰り返して
上記のように加算のレベルを高くした0データを加算結
果格納部に格納するようにしてもよい。
【0039】上記のように、本発明においては、必要に
応じて加算手段の片方または両方の入力に0データを入
力することができるので、回路規模をあまり増加させる
ことなく、データ個数が2の累乗でない時にも余ったデ
ータから最終的な累積加算結果を求めることができるよ
うになる。
【0040】なお、抽出すべき2つのデータのいずれか
が存在しない状態が複数存在する場合には、加算のレベ
ルがより低いデータに対して0データを使用するのがよ
い。
【0041】第4の発明は、第2または第3の発明にお
いて、格納データ抽出部が、同じレベルの加算に使用さ
れる2つのデータとして加算のレベルがより低い2つの
データを抽出するようにしたものである。
【0042】本発明においては、入力データの累積加算
を行う時に、出現頻度が高い加算、すなわちレベルが低
い加算が優先して行われるので、よりレベルが高い加算
の加算結果を格納する格納部を設ける必要がなく、累積
加算結果を格納する加算結果格納部の回路規模を最小限
にすることができる。
【0043】また、第5の発明は、浮動小数点数で表さ
れたデータを累積加算する浮動小数点数累積加算装置で
あって、累積加算すべきデータが同時に入力されるよう
に並列配置されると共に、累積加算すべきデータ及び該
累積加算すべきデータの加算結果データを用いて累積加
算結果を出力する複数の累積加算手段と、前記累積加算
手段によって累積加算された複数の累積加算結果を加算
して1つの値として出力する累積結果加算手段と、を含
んで構成したものである。
【0044】本発明においては、複数個同時に入力され
てくるデータに対して同時に累積加算を行うようにして
いるので、入力時間と大差ない時間で累積加算結果を出
力することができる。
【0045】本発明の累積加算手段は、上記の第1〜第
4の発明で説明した累積加算装置で構成するのが好まし
い。
【0046】
【発明の実施の形態】以下、図面を参照して第5の発明
の実施の形態を詳細に説明する。この実施の形態は、累
積回路として第1〜第4の発明で説明した累積加算装置
を用い、2n個ずつ同時に入力されてくる入力データの
全てを累積加算するようにしたものである。
【0047】図1において、4001 、4011 、40
2 ,4012 、・・・、400n、401n は累積回
路、5は累積結果加算器、5001 、5011 、500
2 、5012 、・・・、500n 、501n はフリップ
フロップ、5101 、510 2 、・・・、510n は浮
動小数点数加算器、520はn個の浮動小数点数を加算
する浮動小数点数加算器、2101 、2111 、210
2 、2112 、・・・、210n 、211n は入力端
子、220は出力端子である。
【0048】累積加算すべきデータは、ラインフィルタ
等の入力手段から1クロックに1個ずつ入力端子210
1 、2111 、2102 、2112 、・・・、21
n 、211n の各々を介して同時に入力される。ただ
し、各入力端子から入力されてくるデータは同じ個数で
ある必要はなく、例えば、入力端子2101 から101
個のデータが、また他の入力端子から100個のデータ
が入力される場合でもよく、この場合には200n+1
個のデータの累積加算結果を求めて、出力端子220か
ら出力することになる。
【0049】この累積加算装置では、まず累積回路40
1 、4011 、4002 、401 2 、・・・、400
n 、401n で、それぞれ入力端子2101 、21
1 、2102 、2112 、・・・、210n 、211
n から入力されてくるデータの累積加算を計算し、2n
個の累積加算結果を累積結果加算回路5に出力する。
【0050】次に、累積結果加算回路5では、それぞれ
の累積加算結果をフリップフロップ5001 、50
1 、5002 、5012 、・・・、500n 、501
n に格納する。このとき、それぞれの累積回路に入力さ
れるデータの個数が異なる場合には、累積回路で累積加
算結果が求まるタイミングが異なるため、フリップフロ
ップ5001 、5011 、5002 、5012 、・・
・、500n 、501n はそれぞれの累積加算結果が求
められたタイミングでデータを取り込む。例えば、後述
するように、累積回路では図5に示すタイミング累積加
算結果が求められ、サイクル18で累積加算結果が出力
される。このとき、同図に示されている出力制御信号b
e3をフリップフロップのイネーブル信号として使用す
ることにより、累積加算結果が求められるタイミングで
データを取り込むことができる。
【0051】それぞれのフリップフロップに格納された
累積加算結果は、最も入力データ数が多い累積回路にお
いて累積加算結果が求められた後、すなわち全ての累積
回路において累積加算結果が求められた後、2つずつ浮
動小数点数加算器5101 、5102 、・・・、510
n によって足し合わされ、さらにn個の加算結果が浮動
小数点数加算器520によって足し合わされ最終的に1
つの累積加算結果が求められ、出力端子220より出力
される。
【0052】次に、累積回路について詳細に説明する。
この累積回路では、図3(b)に示すように、入力デー
タの加算手順を変えながら累積加算する。図ではa1〜
a7の7つのデータが順番に入力された時の加算手順を
例示しており、(a)が従来の累積加算における加算の
手順、(b)が本実施の形態の累積加算における加算の
手順である。また、加算の順番は、括弧中の数字によっ
て示している。
【0053】図3(a)に示す従来の累積加算では、前
述したように入力される順番で加算が行われるのに対し
て、(b)に示す本実施の形態の累積加算では、まず入
力されるデータが2つずつの組に分けられて加算され、
さらにその加算結果が2つずつの組に分けられて加算さ
れる。この操作が繰り返され、最終的な累積加算結果を
得るものである。ただし、入力されるデータの総数が2
の整数乗でない場合には、途中の加算が省略される場合
もある。この例ではa7はa5+a6の加算結果に直接
加算されている。
【0054】ここで、図3(b)の加算方法に対応し
て、加算の「レベル」を次のように定義する。図に示し
たように、a1+a2、a3+a4等の加算のように、
加算入力にともに加算結果が含まれていない場合(累積
加算すべきデータ同士の加算の場合)を「レベル0の加
算」、加算結果a1+a2に加算結果a3+a4を加算
する場合のように、被加算数にレベル0の加算結果が含
まれる場合を「レベル1の加算」、被加算数にレベル1
の加算結果が含まれている場合を「レベル2の加算」と
呼ぶことにし、以後、被加算数にレベルn−1の加算結
果が含まれている場合を「レベルnの加算」と呼ぶこと
にする。なお、図3(b)のa7とa5+a6との加算
のように、加算入力に含まれるデータが異なるレベルの
加算結果であるものは、これらの加算結果のうちレベル
数が大きい方を採用する。この場合は、レベル0の加算
結果であるa5+a6が含まれているので、レベル1の
加算となる。すなわち、累積加算すべきデータ同士の加
算をレベル0とし、加算入力に加算結果が含まれている
場合には加算のレベルが高い方を採用して加算のレベル
を決定する。そして、レベルが低い加算を優先して行
う。
【0055】図2に、累積回路の詳細な回路図を示す。
なお、ここでは、説明を簡単にするために最大16個の
浮動小数点数を累積加算する場合の回路について説明す
る。
【0056】図2に示すように、累積回路は、データ処
理を行うためのデータ処理回路1、及びデータ処理回路
1を制御するためのコントロール回路3で構成されてい
る。図において、100 、101 、110 、111 、1
0 、121 、130 、13 1 は浮動小数点数を格納す
るためのフリップフロップ、200 、201 、210
211 、220 、221 、230 、231 はバッファ、
40は浮動小数点数同士を加算するための加算手段とし
ての加算器、41、42はマルチプレクサである。
【0057】また、フリップフロップ100 と101
110 と111 、120 と121 、130 と131 は各
々2ワード分のシフトレジスタ30、31、32、33
を構成している。これらのシフトレジスタ30〜33
は、各々イネーブル信号fe0、fe1、fe2、fe
3によって動作が制御され、イネーブル状態の時には図
示していないクロック信号に同期してシフト動作を行い
ながら浮動小数点数データを格納し、ディスエーブル状
態の時にはそれまでの値を保持する。なお、シフトレジ
スタ30、31、32、33は、それぞれレベル0、レ
ベル1、レベル2、レベル3の加算を行うためのデータ
を保持する。従って、レベルnの加算データを保持して
いるシフトレジスタを、レベルnのシフトレジスタと呼
ぶこともある。
【0058】また、バッファ200 と201 、210
211 、220 と221 、230 と231 からなるバッ
ファ対は各々制御信号be0、be1、be2、be3
に従って動作し、これらの制御信号がイネーブル状態の
時には接続されているフリップフロップの出力を各々B
US(バス)0、BUS1に出力し、ディスエーブル状
態の時には出力はハイインピーダンス状態となる。
【0059】また、マルチプレクサ41、42は、制御
信号me0によって、その出力が切り替えられる。
【0060】フリップフロップのイネーブル信号fe
0、fe1、fe2、fe3、バッファの制御信号be
0、be1、be2、be3、マルチプレクサの制御信
号me0は、各々コントロール回路3によって生成され
る。なお、コントロール回路については後述する。
【0061】ここで、データ処理回路の加算器40以外
の部分はデータ加算順序変更手段に対応し、マルチプレ
クサ42及びイネーブル信号fe0を生成するコントロ
ール回路の部分は累積加算すべきデータから2つのデー
タを抽出する入力データ抽出部、シフトレジスタ30は
入力データ抽出部で抽出されたデータを格納する入力デ
ータ格納部、マルチプレクサ41及びイネーブル信号f
e0〜fe3を生成するコントロール回路の部分は加算
手段の加算結果データから同じレベルの加算を行った2
つのデータを抽出する加算結果抽出部、シフトレジスタ
31、32、33は加算結果抽出部で抽出されたデータ
を加算のレベル毎に各々格納する複数の加算結果格納
部、バッファ200 〜231 及び制御信号be0〜be
3を生成するコントロール回路の部分は入力データ格納
部及び複数の加算結果格納部から同じレベルの加算に使
用される2つのデータを抽出して加算手段に入力させる
格納データ抽出部、に各々対応している。
【0062】次に、図2の累積回路の動作の概略につい
て説明する。まずこの回路の基本動作について述べる。
シフトレジスタ30〜33のいずれか1つに2つの浮動
小数点数データが格納された場合、バッファ200 、2
1 〜230 、231 のうちそのシフトレジスタに接続
されているバッファを介して、BUS0、BUS1に2
つのデータが各々出力される。
【0063】出力された2つのデータは、BUS0、B
US1を介して加算器40に入力され、浮動小数点数に
対する加算が行われ加算結果データとして出力される。
この加算結果データは、BUSW及びマルチプレクサ4
1を介してシフトレジスタ31〜33の各入力に戻さ
れ、加算前の浮動小数点数データを保持していたシフト
レジスタの1つ上の加算レベルに対応するシフトレジス
タに書き込まれる。この累積回路は、このような基本動
作を繰り返すことによって浮動小数点数を累積加算す
る。
【0064】更に詳しく説明すると、入力データは入力
端子200からクロック信号に同期して1ワードずつ入
力され、マルチプレクサ42を介してシフトレジスタ3
0に格納される。シフトレジスタ30にデータが2つ格
納されると、前述の基本動作が行われて加算結果データ
がシフトレジスタ31に格納される。以後、入力データ
をシフトレジスタ30に2つずつ書き込んでいくことに
より、上位のレベルのシフトレジスタにも順番にデータ
が格納され、基本動作が自動的に繰り返されていく。こ
のとき、同時に2つ以上のシフトレジスタに2個のデー
タが格納された場合には、頻度の高い加算、すなわちレ
ベルが低い加算を優先的に行うように基本動作が実行さ
れ、レベルの高い加算を行うデータを格納したシフトレ
ジスタは加算器40が空くまでデータを保持する。
【0065】累積回路へのデータの入力が終了すると、
データの総数が2の整数乗である時には出力201から
累積加算結果が自動的に出力される。しかし、データの
総数が2の整数乗でない場合には、特定のシフトレジス
タがデータを1個だけ保持している状態で止まってしま
う。そこで、マルチプレクサ41、42を通してシフト
レジスタ30、31、32、33のうち適当なものに浮
動小数点数で表される”0”データを書き込む。止まっ
た時点でデータを1個だけ保持しているシフトレジスタ
に”0”が書き込まれることによってデータが追加され
ると、再度前述した基本動作が行われるので、最終的に
は累積加算結果が出力201から出力される。
【0066】この回路では、加算のレベル毎に浮動小数
点数のデータを保持するシフトレジスタを変更している
ので、加算は図3(b)に示すような順番で行われる。
また、レベル0の加算は2サイクルに1回ずつ行われる
ので、レベル1以上の加算は空いたサイクルに適切に配
分される。この結果、最後のデータが入力されてから累
積加算結果が出力されるまでの遅延時間は従来と大差な
いものとなる。
【0067】次に、a1〜a14の14個のデータを入
力して累積加算加算する場合を例にとって、図2の回路
によって加算が行われる時の動作を詳細に説明する。
【0068】ここで、図2の回路で、シフトレジスタ3
0〜33のイネーブル信号fe0〜fe3、バッファ2
0 、201 〜230 、231 の制御信号be0〜be
3は、各々ハイアクティブとする。従って、特定のクロ
ックサイクルでイネーブル信号fe0〜fe3のいずれ
かがハイレベルのときに、そのハイレベルのイネーブル
信号に対応するシフトレジスタは、そのサイクルの終わ
りでデータを取り込む。また、マルチプレクサ41は、
制御信号me0がローレベルの時にBUSWの加算結果
データを、ハイレベルの時には浮動小数点数”0”を、
それぞれシフトレジスタ31〜33に入力する。さらに
マルチプレクサ42は、制御信号me0がローレベルの
時に入力端子200からの入力データを、ハイレベルの
時には浮動小数点数”0”を、それぞれシフトレジスタ
30に入力する。また、加算器40は、BUS0、BU
S1から2つの浮動小数点数が入力されてくると、1ク
ロックサイクルよりも短い一定の遅延時間の後に浮動小
数点数で表される加算結果データをBUSWに出力す
る。
【0069】図5に、14個のデータを加算する時の動
作を図示する。図はそれぞれのデータや信号が時間に従
って変化する様子を表している。最上段の数字0,1,
2,・・・は各々クロックのサイクル番号、IDSはデ
ータが入力されていることを示すためにデータ入力期間
中ハイレベルになる入力データストローブ信号、入力デ
ータは入力端子200から入力されるデータ、加算デー
タは加算器40で加算されるデータを示している。な
お、入力データストローブ信号IDSは、図2の累積回
路には入力されず、後述するコントロール回路で使用さ
れる。また、入力データはa1〜a14のデータの添字
だけが示してある。また、加算データ中に記載されてい
る2個の数字は、加算されるデータの範囲を表してお
り、例えば1と4が示されている場合にはその加算でa
1〜a4の範囲の累積加算が求められることを表してい
る。さらに、加算データの下の括弧中に示した数字は加
算のレベルを表している。
【0070】また、c30、c31、c32、c33は
各々シフトレジスタ30、31、32、33の内部に保
持されているデータの数を表しており、シフトレジスタ
は最大2つのデータを記憶することが可能であるので、
c30〜c33は0〜2のいずれか1つの値をとる。ま
た、最下段に示されている出力データは、出力201か
ら出力される加算結果データを示している。
【0071】図6は、データa1〜a14が累積加算さ
れる時の加算の順番を示している。ここで、各加算記号
の下に示した数字は、図5のクロックのサイクル番号に
対応し、各々の加算がどのクロックサイクルで行われて
いるかを表している。また途中でaiからajまでの累
積加算結果が求まる時、この中間結果はsi,jと表し
て同図に示した。この中間結果は図5の加算データのう
ちiとjが記されているものに対応しており、そのクロ
ックサイクルでこの値が求められることを意味してい
る。
【0072】図5及び図6を参照しながら、データa1
〜a14が累積加算される時の図2の累積回路の動作に
ついて説明する。まず、入力データを入力端子200よ
り1サイクルにつき1個の割合で入力する。サイクル0
〜13の入力期間中は、制御信号me0はローレベルに
保持されている。従って、シフトレジスタ30にはマル
チプレクサ42を介して入力端子200からの入力デー
タが、またシフトレジスタ31〜33にはマルチプレク
サ41を介してBUSWの信号が、それぞれ供給され
る。また、入力の期間中、イネーブル信号fe0はハイ
レベルのままに保持されるので、入力データはシフトレ
ジスタに順次格納されていく。
【0073】このとき、まずサイクル2においてレベル
0の加算を行うためのa1、a2の2個の入力データが
シフトレジスタ30に格納された状態になるので、上述
した基本動作が行われる。すなわち、サイクル2で制御
信号be0がハイレベルに変化し、バッファ200 、2
1 を介して、シフトレジスタ30内部のフリップフロ
ップ100 、101 に保持されていた浮動小数点数a
2、a1がBUS0、BUS1に出力される。さらにこ
れらのデータは加算器40によって加算され、その加算
結果データはサイクル2の期間内にBUSWに出力され
る。また、制御信号be0がハイレベルに変化すると同
時に、加算のレベルが1つ上のシフトレジスタ31のイ
ネーブル信号fe1もハイレベルに変化する。これによ
り、BUSWに出力された加算結果データs12はシフ
トレジスタ31に書き込まれ、次のサイクル3でシフト
レジスタ31に加算結果データs12が保持されるよう
になる。またサイクル2において、シフトレジスタ30
から2つのデータが読み出されるが、またサイクル2の
終了時に浮動小数点数a3が書き込まれる。この結果、
サイクル3において、シフトレジスタ31に保持されて
いる、意味のあるデータの個数は1である。
【0074】その後同様にして、サイクル4においても
基本動作によりレベル0の加算が行われるので、浮動小
数点数a3とa4とが足し合わされ、シフトレジスタ3
1にその加算結果データs34が格納される。この結
果、サイクル5において、シフトレジスタ31には加算
結果データs12、s34の2つのデータが保持された
状態となる。そこで、サイクル5で基本動作が行われ、
これらのデータに対してレベル1の加算が行われる。こ
のとき、まず制御信号be1がハイレベルになり、レベ
ル0の加算と同様バッファ210 、211 を介して、シ
フトレジスタ31に格納されていた加算結果データs1
2、s34がBUS0、BUS1に出力され、加算器4
0で加算されて加算結果データs14がBUSWに出力
される。これと同時に1つ上のレベルのシフトレジスタ
32のイネーブル信号fe2がハイレベルに変化するの
で、サイクル5において加算結果s14がシフトレジス
タ32に記憶されサイクル6で保持される。この加算に
よって、シフトレジスタ31に保持されていた2つのデ
ータが読み出されるので、サイクル6においてシフトレ
ジスタ31が保持している、意味のあるデータの個数は
0になる。
【0075】その後、同様に基本動作が繰り返され、サ
イクル9において求められる加算結果データs58がシ
フトレジスタ32に記憶されサイクル10で格納される
ので、サイクル10においてシフトレジスタ32には加
算結果データs14、s58の2つのデータが保持され
た状態となる。ところがデータ入力も同時に行われてい
るので、同じサイクル10で、シフトレジスタ30にも
浮動小数点数a9とa10の2つのデータが保持された
状態になっている。ところが加算器40は1つしかない
ため、同一サイクルでは2つの加算を同時に行うことが
できない。そこで、どちらか一方の加算だけが行われ
る。このような場合には、前述のようにレベルの低いほ
うの加算操作が優先されるので、制御信号be2はロー
レベルを維持した状態で制御信号be0がハイレベルに
変化し、浮動小数点数a9とa10の加算が行われる。
その後、サイクル11において加算器40が使用可能と
なるので、シフトレジスタ32のデータに対して基本動
作が行われる。このとき、制御信号be2がハイレベル
に変化して加算器40で加算結果データs1,4とs
5,8の加算が行われると共に、1つ上のレベルのシフ
トレジスタ33のイネーブル信号fe3がハイレベルに
変化して加算結果データs1,8がシフトレジスタ33
に書き込まれ、次のサイクル12において、シフトレジ
スタ32に保持されている、意味のあるデータの個数が
0になる。
【0076】なお前述の通り、シフトレジスタ31〜3
3には、マルチプレクサ41を通してBUSWの信号が
供給されている。従って、イネーブル信号fe1〜fe
3が同時にハイレベルになるようなことがあると、同じ
データが複数のシフトレジスタに書き込まれてしまう。
しかし、ここで述べたように、制御信号be0〜be2
には優先順位がつけられており、常に1本だけがハイレ
ベルになる。さらに制御信号me0がローレベルの間
は、イネーブル信号fe1〜fe3は加算された結果を
シフトレジスタ31〜33に書き込むときにだけ使われ
るので、必ず制御信号be0〜be2と同時にハイレベ
ルになる。以上のことより、言うまでもなくイネーブル
信号fe1〜fe3が同時にハイレベルになることはな
い。
【0077】以上の操作が繰り返されていき、14個の
データが入力され終わると、サイクル13で最後の入力
データa14がシフトレジスタ30に書き込まれ、サイ
クル14で基本動作によって浮動小数点数a13とa1
4との加算結果データs13,14がシフトレジスタ3
1に書き込まれる。この結果、サイクル15において、
シフトレジスタ30にはデータが格納されていない状態
となり、シフトレジスタ31、32、33にはそれぞれ
加算結果データs13,14、s8,12、s1,8が
1個ずつ格納されている状態となる。データ入力終了
後、データを2個保持しているシフトレジスタがないと
基本動作が行われないので、それ以降の加算は継続され
ず、回路の動作が止まってしまう。
【0078】そこで、サイクル15で、マルチプレクサ
の制御信号me0信号が切り替えられてシフトレジスタ
に浮動小数点数の”0”データが追加され、加算が継続
される。制御信号me0はサイクル15において1サイ
クル期間だけハイレベルに変化され、マルチプレクサ4
1、42が切り替わるので、シフトレジスタ30、3
1、32、33に浮動小数点数データ”0”が供給され
る。さらに、それぞれのシフトレジスタのイネーブル信
号fe0〜fe3の1つがハイレベルになり、シフトレ
ジスタの1つにデータ”0”が書き込まれる。
【0079】このとき、”0”データが書き込まれるシ
フトレジスタは、データを1個だけ保持しているシフト
レジスタのうち、最も低いレベルのものが選択される。
ここでは、レベル1に対応するシフトレジスタ31が最
も低いレベルであるので、サイクル15でイネーブル信
号fe1がハイレベルに変化して、このシフトレジスタ
31にデータ”0”が書き込まれる。従って、シフトレ
ジスタ31はサイクル16において2個のデータを保持
するようになる。
【0080】一方、制御信号me0信号はサイクル16
で再度ローレベルに変化し、マルチプレクサ41によっ
て再びシフトレジスタ31〜33にBUSWの信号が供
給される。従ってサイクル16以降は、シフトレジスタ
31が保持している2個のデータに対して再び基本動作
が開始され、以後の加算が継続されていく。まず、信号
be1がハイレベルに変化し、BUS1にデータs1
3,14が、BUS0にはデータ”0”が出力され、こ
の加算結果データs13,14がBUSWに出力され
る。これと同時にイネ−ブル信号fe2がハイレベルに
変化してデータs13,14がシフトレジスタ32に書
き込まれる。次に、サイクル17においてシフトレジス
タ32が保持するデータs9,12、s13,14に対
して基本動作が行われ、加算結果であるデータs9,1
4がシフトレジスタ33に書き込まれる。さらに、サイ
クル18においてシフトレジスタ33が保持するデータ
s1,8、s9,14の2つのデータに対して基本動作
が行われ、最終的に累積加算結果s1,14が求められ
る。累積加算結果s1,14がサイクル18で出力端子
201から出力されると共に、同じサイクルで制御信号
be3がハイレベルに変化しているので、制御信号be
3を出力ストローブ信号として使用すれば、外部回路で
累積加算結果をラッチすることができる。
【0081】このように、サイクル15以降で浮動小数
点数のデータ”0”がシフトレジスタに追加されるの
で、最終的な累積加算結果が求められるようになる。な
お、この累積回路は、データ入力終了後、データを2個
保持しているシフトレジスタがない状態では、データを
1個だけ保持しているシフトレジスタのうち最も低いレ
ベルのものに”0”データが書き込まれるように動作す
るので、データの個数が14個以下の任意の場合でも正
常に動作する。
【0082】例えば、データの個数が12個の場合に
は、上の説明から明らかなように、シフトレジスタ3
2、33に1個ずつデータが格納された状態で止まる。
この場合には、自動的に最も低いレベルのシフトレジス
タ32に”0”データが書き込まれるので、以後基本動
作によってレベル2、3の加算が順次行われて累積加算
結果が求められ、出力201から出力される。
【0083】またデータの個数が13個の場合には、シ
フトレジスタ30、32、33に1個ずつデータが格納
された状態で止まる。この場合にはまず、自動的に最も
低いレベルのシフトレジスタ30に”0”データが書き
込まれ、レベル0の加算によって加算結果がシフトレジ
スタ31に書き込まれれる。この結果、シフトレジスタ
31、32、33に1個ずつデータが格納された状態で
再び止まる。その後再度最も低いレベルのシフトレジス
タ31に”0”データが格納されるので、その後はデー
タの個数が14個の時と同様にして累積加算結果が求め
られて、出力301から出力される。
【0084】また、データの個数が15個の場合には、
シフトレジスタ30、31、32、33全てに1個ずつ
データが格納されている状態で止まるので、最も低いレ
ベルのシフトレジスタ30に”0”データが格納され
て、レベル0、1、2、3の加算が順次行われて累積加
算結果が求められる。
【0085】さらに、データの個数が16個の場合に
は、2の整数乗個であるため、入力終了後レベル3の加
算までが自動的に行われ、”0”データの書き込みが行
われることなく、累積加算結果が出力される。
【0086】なお、上記ではマルチプレクサ41の切り
換えによってシフトレジスタ31、32、33に”0”
データを入力する場合について説明したが、マルチプレ
クサ42から”0”データを2つずつ入力することによ
ってシフトレジスタ31、32、33に”0”データを
入力するようにしてもよい。
【0087】以上説明したように、累積加算動作が行わ
れるが、サイクル10のように2つ以上のシフトレジス
タがデータを2つ格納している時にはレベルの低い加算
が優先されるため、レベルが高い加算に対応するシフト
レジスタは加算が1サイクル以上待たされることにな
る。入力データの数がこの例と異なっている場合、もし
もこの待ち時間の間に、高いレベルに対応するシフトレ
ジスタに対して次のデータの書き込みが行われると誤動
作が発生することになる。しかし、実際にはこの書き込
みの前に必ず加算が行われるので、このような誤動作は
発生しない。
【0088】このことを図7を参照して簡単に説明す
る。この図では、入力データの個数がN個の場合を例に
取り、上から下に向かって、レベルの低い加算から高い
加算へと順番に加算器を割当てていく時の様子を示して
いる。図ではあるレベルの加算に対して割当てを行った
時、ハッチングで示した部分が加算器がそのレベルの加
算に割当てられずに空いたタイミングとなる。従って、
図で1つ下にあるレベルの加算へは、この空いたタイミ
ングから割当てが行われる。
【0089】まず、レベル0の加算は2個の入力データ
に対して1回ずつ行われるため、2サイクルに1サイク
ルはレベル0の加算が行われない。従って、このN/2
サイクルがレベル1の加算への割当てに使用される。ま
たこのとき、レベル0の偶数回目の加算と奇数回目の加
算との間には必ず空きサイクルがあり、このサイクルが
レベル1の加算に割当てられるので、レベル1のシフト
レジスタにデータが2つ揃ってから次の書き込みまでの
間にレベル1の加算を完了することができる。また、レ
ベル1の加算は上記N/2サイクルの空きサイクルのう
ちN/4サイクルだけが使われるので、残りのN/4サ
イクルはレベル2の加算へ割当てられる。この時にも、
図から明らかなようにレベル1の加算の偶数回目の加算
と奇数回目の加算との間には必ず空きサイクルがあるの
で、このサイクルがレベル2の加算に割当てられる。こ
の結果、レベル2のシフトレジスタにデータが2つ揃っ
てから次の書き込みまでの間にレベル2の加算を完了す
ることができる。また、レベル2の加算回数はN/8回
であるので、残りのN/8サイクルが1つ上のレベルの
加算に割当てられる。以下さらに高いレベルに対して
も、同様にして加算器の割当てが行われるので、上で述
べたような誤動作は起こらない。
【0090】これと同時に、Nの数が大きい場合にも、
大きいレベルの加算に対するシフトレジスタを増やすこ
とで、データ入力が終了してから従来と大差ない時間で
加算結果を出力することができる。すなわち、上で述べ
たことより、レベル0の加算回数はN/2回であるか
ら、データ入力が行われるNサイクルの内のN/2サイ
クルだけが使用されるので、残りのN/2サイクルはレ
ベル1以上の加算に使用することができる。またレベル
1の加算回数はN/4回であるから、N/2サイクルの
うちN/4サイクルだけが使用されるので、残りのN/
4サイクルはレベル2以上の加算に使用することができ
る。このように、レベルが高くなるほど加算の回数は1
/2ずつになっていくので、すべてのレベルの加算はN
サイクルのうちに終わらせることができる。
【0091】次に、図2の累積回路でデータ処理回路を
制御するためのコントロール回路について説明する。コ
ントロール回路では、図2の累積回路で使用される制御
用の各信号が生成される。
【0092】前述のようにこの累積回路の動作はそれぞ
れのシフトレジスタが保持するデータの個数によって制
御される。従って、各シフトレジスタ毎に、データ数を
計数するためのカウンタを備えている。図8は、コント
ロール回路のうちこのカウンタ回路を含む部分を示した
回路図である。図において、300、301、302、
303は、それぞれシフトレジスタ30、31、32、
33が保持するデータを計数するカウンタである。従っ
て、これらのカウンタによる計数値はそれぞれ図5に示
したc30、c31、c32、c33に対応している。
また、310、311、312、313は各カウンタに
入力するCLEAR信号を生成するORゲート、320
はインバータである。
【0093】まず、カウンタ300〜303の動作につ
いて説明する。これらのカウンタは、図2の回路と同様
クロック信号に同期して動作する。なお、図ではクロッ
ク信号は省略してある。これらのカウンタは0〜2の範
囲の値を計数し、計数値が0、1、2の時には、それぞ
れCT0、CT1、CT2端子が1つだけハイレベルの
信号を出力し、あとの端子はローレベルの状態となる。
またこれらのカウンタにはUP端子及びCLEAR端子
が設けられ、計数入力UP、同期クリア入力CLEAR
の2つの信号が入力される。
【0094】あるサイクルでUP入力だけがハイレベル
の時は、カウンタに保持されている計数値がそのサイク
ルの終わりでカウントアップされ、次のサイクルでカウ
ントアップ後の値が保持される。従って、例えばCT0
がハイレベルを保持しているサイクルでUP入力がハイ
レベルになったときには、次のサイクルではCT1がハ
イレベルとなり、またCT1がハイレベルを保持してい
るサイクルでUP入力がハイレベルになったときには、
次のサイクルではCT2がハイレベルとなる。またこの
回路では、CT2がハイレベルの状態でUP入力だけが
ハイレベルになる場合はありえないので考えない。次に
CLEAR入力だけがハイレベルの時には、保持してい
る値にかかわらず、そのサイクルの終わりで計数値が0
に変化する。従って、次のサイクルでCT0がハイレベ
ルを保持する。また、あるサイクルでCLEAR入力、
UP入力が共にハイレベルの時には、保持している値に
かかわらず、そのサイクルの終わりで計数値が1に変化
する。従って、次のサイクルでCT1がハイレベルを保
持する。また、CLEAR入力、UP入力が共にローレ
ベルの時には、そのサイクルで保持されていた値が次の
サイクルでも保持される。ここで述べたカウンタ回路
は、2進カウント値を出力する通常のカウンタの出力に
デコーダを追加して構成すればよく、フリップフロップ
や論理ゲートの組合せで容易に実現することが可能であ
る。
【0095】また、図8に示されているRESB信号
は、ローアクティブのリセット信号である。このリセッ
ト信号はインバータ320で反転された後、ORゲート
310、311、312、313を通してカウンタ30
0、301、302、303のCLEAR入力に入力さ
れている。データ入力を開始する前には入力データスト
ローブ信号IDSをローレベルにした状態でRESB入
力を1サイクル以上の間ローレベルにするリセット期間
を設ける。このとき、後述する回路によって全カウンタ
のUP入力はローレベル、CLEAR入力はハイレベル
となるので、カウント値は0にクリアされ、全てのCT
0出力がハイレベルになる。その後RESB入力をハイ
レベルに保持した状態でデータ入力を開始する。
【0096】このようなカウンタによって、各シフトレ
ジスタが保持するデータ数が、図5のc30〜c33に
示した通りに計数されることを説明する。ここで、各シ
フトレジスタのイネーブル信号fe0〜fe3はカウン
タ300〜303のUPに入力されている。また、バッ
ファを制御して加算を実施する制御信号be0〜be3
は、ORゲート310〜313を介してカウンタ300
〜303のCLEARに入力されている。前述のように
累積加算動作中はRESB入力がハイレベルを保持する
ため、ORゲート310〜313のもう一方の入力であ
るRESBの反転信号はローレベルとなり、制御信号b
e0〜be3が直接CLEARに入力される。
【0097】シフトレジスタにデータの書き込みだけが
行われる時は、そのシフトレジスタに関連するイネーブ
ル信号fe0〜fe3がハイレベル、制御信号be0〜
be3はローレベルとなるので、カウンタのUP入力だ
けがハイレベルとなり、カウンタは1ずつカウントアッ
プし、シフトレジスタに格納されている値を計数する。
次に、シフトレジスタからの読み出しと加算操作だけが
行われる時は、前述のようにシフトレジスタにデータが
2個格納されている時であり、読み出しの結果データの
個数は0となる。このとき、イネーブル信号fe0〜f
e3がローレベル、制御信号be0〜be3はハイレベ
ルとなり、カウンタのCLEAR入力だけがハイレベル
となるので、カウンタの計数値は0となる。また、図5
のステップ2におけるシフトレジスタ30の動作のよう
に、シフトレジスタへの書き込みと、シフトレジスタか
らの読み出しおよび加算操作とが同時に行われる時に
は、この操作の結果データの個数は1となる。この時、
イネーブル信号fe0〜fe3、制御信号be0〜be
3共にハイレベルとなり、従ってカウンタのUP入力、
CLEAR入力は共にハイレベルとなるので、カウンタ
の計数値は1となる。さらに、シフトレジスタに対して
書き込みや読み出しが行われない場合は、イネーブル信
号及び制御信号共にローレベルとなり、従ってカウンタ
のUP入力、CLEAR入力もローレベルであるので、
カウンタはそれまでの値を保持する。
【0098】以上より、図8の回路によって、シフトレ
ジスタ30〜33に保持されているデータ数が正しく計
数される。
【0099】次に、図9は、マルチプレクサ41、42
に入力される制御信号me0を生成するための回路であ
る。図で331は4入力のORゲート、332はインバ
ータ、333は3入力のANDゲート、334は4入力
のNORゲートである。
【0100】累積加算が行われる時にこの回路が動作す
る様子を順番に説明する。前述のとおり最初のリセット
期間ではカウンタ300〜303のカウント値は全て0
になるのでカウンタからのCT10〜CT13信号は全
てローレベルになるからORゲート出力cto1はロー
レベルとなる。この結果ANDゲート333の出力はロ
ーレベルになる。
【0101】次にデータの入力が開始されると、入力デ
ータストローブ信号IDSはハイレベルに変化し、イン
バータ332出力idsiはローレベルとなるため、A
NDゲート333の出力はローレベルのまま維持され
る。
【0102】さらに、データの入力の終了後、データを
2つ保持しているシフトレジスタが残っていれば、さら
に加算が行われる。この間は、カウンタ300〜303
のうち必ず1つはCT2出力がハイレベルになっている
状態であるので、NORゲート出力ctn2はローレベ
ルであるため、ANDゲート333の出力はローレベル
を維持する。従って、以上の期間中は制御信号me0は
ローレベルのままとなる。この期間は、図5ではサイク
ル0〜14に相当する。
【0103】その後、データを2つ保持しているシフト
レジスタがなくなり、前述の通り加算動作が継続されな
い状態で止まる。この場合にはカウンタ300〜303
のCT2出力は全てローレベルであるため、NORゲー
ト出力ctn2はハイレベルになる。また、加算動作の
継続が必要な場合には、データを1つだけ保持している
シフトレジスタが少なくとも1つ存在するので、ORゲ
ート出力cto1もハイレベルである。さらに、データ
入力終了後入力データストローブ信号IDSはローレベ
ルであるので、インバータ出力idsiはハイレベルに
なっている。この結果、ANDゲート333の出力であ
る制御信号me0はハイレベルに変化する。このことに
より、前述の通りマルチプレクサ41、42が切り替わ
り、全てのシフトレジスタにデータ”0”が入力され、
適当なシフトレジスタにこのデータが書き込まれる。図
5では、この期間はサイクル15に相当する。
【0104】次のサイクルでは、このとき”0”データ
が書き込まれたシフトレジスタがデータを2つ保持する
ようになる。従って、CT20〜CT23のうちいずれ
かがハイレベルに変化し、NORゲート出力ctn2は
再度ローレベルになる。この結果、ANDゲート333
の出力である信号me0はローレベルに戻る。図5で
は、この期間はサイクル16に相当する。
【0105】以後、データを入力している時と同様に加
算が行われていく。加算が継続されている間は、必ずシ
フトレジスタのうちの1つがデータを2つ保持している
ので、NORゲート出力ctn2はローレベルとなり、
制御信号me0もローレベルを維持する。また、その後
データを2つ保持しているシフトレジスタがなくなり、
再度加算が中断された時も、シフトレジスタのうちどれ
かがデータを1つだけ保持している時は、上と同様の原
理により制御信号me0が1サイクルだけハイレベルに
なって”0”データの書き込みが行われるので、全ての
シフトレジスタにデータが保持されていない状態になる
まで加算が繰り返され、累積加算結果が出力端子201
から出力される。
【0106】以上のことにより、図9の回路によって、
制御信号me0が正しく生成される。
【0107】図10はイネーブル信号fe0〜fe3及
び制御信号be0〜be3を生成するためのコントロー
ル回路の回路図である。この図で340、341、34
2、343は各々イネーブル信号fe0、fe1、fe
2、fe3を生成するためのマルチプレクサ、344、
345、346、347、348、349はANDゲー
ト、350、353はインバータ、351、352、3
54、355はNORゲートである。
【0108】ここで、インバータ350は制御信号be
0、NORゲート351は制御信号be0,be1、N
ORゲート352は制御信号be0〜be2を各々入力
し、中間信号bcs0,bcs1,bcs2を生成す
る。中間信号bcs0は制御信号be0をインバータ3
50に入力して得られ、制御信号be0がローレベルの
時にハイレベルとなるので、レベル0の加算が行われる
時にはローレベルとなる。中間信号bcs1は、制御信
号be0,be1をNORゲート351に入力して得ら
れ、制御信号be0,be1が共にローレベルの時のみ
ハイレベルとなるので、レベル1以下の加算が行われる
時にはローレベルとなる。さらに、中間信号bcs2は
制御信号be0,be1,be2をNORゲート352
に入力して得られ、制御信号be0,be1,be2が
全てローレベルの時にのみハイレベルとなるので、レベ
ル2以下の加算が行われる時にはローレベルとなる。
【0109】さらに、インバータ353はイネーブル信
号fe0、NORゲート354はイネーブル信号fe
0,fe1、NORゲート355はイネーブル信号fe
0〜fe2を入力し、中間信号fcs0,fcs1,f
cs2を生成する。中間信号fcs0はイネーブル信号
fe0をインバータ353に入力して得られ、イネーブ
ル信号fe0がローレベルの時にハイレベルとなるの
で、レベル0の加算に対応するシフトレジスタ30に書
き込みが行われる時はローレベルである。中間信号fc
s1は、イネーブル信号fe0,fe1をNORゲート
354に入力して得られ、イネーブル信号fe0,fe
1が共にローレベルの時のみハイレベルとなるので、レ
ベル1以下の加算に対応するシフトレジスタ30、31
のいずれかに書き込みが行われる時はローレベルであ
る。さらに、中間信号fcs2はイネーブル信号fe
0,fe1,fe2をNORゲート355に入力して得
られ、イネーブル信号fe0,fe1,fe2が全てロ
ーレベルの時にのみハイレベルとなるので、レベル2以
下の加算に対応するシフトレジスタ30、31、32の
いずれかに書き込みが行われる時はローレベルである。
【0110】まず、図10のうち制御信号be0〜be
3を生成する回路の動作について説明する。
【0111】レベル0に対応するシフトレジスタ30に
データが2つ保持されている状態では、まずこのデータ
が読み出されて加算が起動される。このとき、シフトレ
ジスタ30の他にデータを2つ保持しているシフトレジ
スタが存在している場合でも、前述の通りレベルが低い
加算操作が優先して実行されるために、必ずシフトレジ
スタ30に対する読み出しと加算が優先的に行われる。
従って、制御信号be0としてはカウンタ300のCT
20信号がそのまま出力される。このCT20信号は、
シフトレジスタ30がデータを2つ保持していることを
示す信号なので、シフトレジスタ30にデータが2つ保
持されていればハイレベル、それ以外はローレベルとな
り、そのまま制御信号be0に使用することができる。
【0112】また、制御信号be1〜be3もシフトレ
ジスタ31〜33にデータが2つ揃ったときにハイレベ
ルになるが、同じサイクルで低いレベルのシフトレジス
タにもデータが2つ揃っている時には、前述のようにそ
のレベルの加算が優先して行われるので、このとき制御
信号be1〜be3はローレベルである必要がある。こ
のため、カウンタ出力CT21〜CT23と中間信号b
cs0〜2とを、それぞれANDゲート345、34
7、349に入力し、これらのANDゲートの出力を制
御信号be1〜be3としている。前述のように、中間
信号bcs0〜2はそれぞれレベル0、レベル1以下、
レベル2以下の加算が行われる時にはローレベル、それ
以外はハイレベルとなる。従って、これらの信号をAN
Dゲート345、347、349に入力することによっ
て、それぞれレベル1、2、3の加算を遅らせることが
できる。
【0113】すなわち、シフトレジスタ31〜33のう
ちの1つに着目すると、その着目したシフトレジスタよ
りも低いレベルの加算が行われない時には、中間信号b
cs0〜2はハイレベルとなっている。従って、制御信
号be1〜be3としては対応するカウンタのCT2信
号がそのまま出力される。この結果、そのシフトレジス
タにデータが2つ揃っている時には制御信号はハイレベ
ルとなって加算が起動され、揃ってない時には制御信号
はローレベルとなって加算が行われないので、前述した
通りの動作が行われる。
【0114】次に、そのシフトレジスタよりも低いレベ
ルの加算が行われる時には、中間信号bcs0〜2はロ
ーレベルとなるので、そのシフトレジスタにデータが2
つ揃った状態になっても制御信号はローレベルのままで
ある。またこのサイクルにおいては、図7で説明したよ
うに、そのシフトレジスタに新たなデータは書き込まれ
ないので、対応するカウンタのUP、CLEAR入力は
共にローレベルであり、CT2信号はその時の状態を維
持する。その後、低いレベルの加算が終了すると、中間
信号が再びハイレベルに変化するので、CT2信号が制
御信号be1〜be3として出力されるようになり、シ
フトレジスタの状態に応じて加算操作が行われるように
なる。
【0115】次に、図10のイネーブル信号fe0〜f
e3を生成する回路の動作について説明する。これらの
イネーブル信号はマルチプレクサ340〜343から出
力される。これらのマルチプレクサは制御信号me0に
よってコントロールされており、制御信号me0がロー
レベルの時には図の左側の入力が、またハイレベルの時
には図の右側の入力が、各々イネーブル信号fe0〜f
e3として出力される。従って、ここでは制御信号me
0がハイレベルの時とローレベルの時とに分けて説明す
る。
【0116】まず、制御信号me0がローレベルの時に
は、前述のようにシフトレジスタ30には入力端子20
0から入力されるデータ、またシフトレジスタ31〜3
3にはレベル0〜2の加算結果が各々格納される。従っ
て、イネーブル信号fe0として入力データストローブ
信号IDSをそのまま出力し、またイネーブル信号fe
1〜fe3としてレベル0〜2の加算を起動する制御信
号be0〜2を出力すればよい。これにより、マルチプ
レクサ340、341、342、343の左側の入力に
は、それぞれ入力データストローブ信号IDS、制御信
号be0、be1、be2が入力されている。またこの
時、上述したように加算は優先順位をつけて実行される
ため、制御信号be0、be1、be2は同じタイミン
グでハイレベルになることはなく、同じBUSWの信号
が入力されているマルチプレクサ341、342、34
3に書き込みが同時に発生することはない。
【0117】次に、制御信号me0がハイレベルの時に
は、前述のようにシフトレジスタ30〜33には”0”
データが入力され、データを1つだけ保持しかつ最も低
いレベルに対応するシフトレジスタにこの”0”データ
が書き込まれるので、イネーブル信号fe0〜fe3の
うち1つだけがハイレベルになる。この機能を実現する
ために、イネーブル信号fe0〜fe3は各シフトレジ
スタがデータを1つ保持していることを示すCT10〜
CT13信号を基にして生成するために、マルチプレク
サ340の右側の入力にCT10信号を入力すると共
に、マルチプレクサ341、342、343の右側の入
力に、CT11〜CT13信号と中間信号fcs0〜2
とを各々入力とするANDゲート344、346、34
8を接続している。前述のように、中間信号fcs0〜
fcs2は各々レベル0、レベル1以下、レベル2以下
のシフトレジスタに書き込みが行われる時にはローレベ
ルとなる。従って、シフトレジスタ31〜33がデータ
を1つだけ保持しており、CT11〜CT13信号がハ
イレベルになっていても、低いレベルのシフトレジスタ
に書き込みが行われている場合には、ANDゲート34
4、346、348によってイネーブル信号fe1〜f
e3はローレベルのまま維持される。このことにより、
この回路はデータを1つだけ保持しているシフトレジス
タのうち最も低いレベルにデータを書き込むように動作
する。
【0118】ここで、制御信号be0〜be3の生成に
は、図10に示した回路が使用されているので、例えば
制御信号be3は制御信号be0〜be2の出力に依存
する。この結果、制御信号be3は制御信号be0〜b
e2よりも大きい遅延時間を示し、例えば制御信号be
3がハイレベルになっている次のサイクルで制御信号b
e3がローレベル、制御信号be0ハイレベルに変化す
る時に、遅延時間の差で表される短い期間だけ制御信号
be3と制御信号be0が共にハイレベルとなり、BU
S0、BUS1上でデータのバッファの出力同士が衝突
することがある。このことを避けるためには、インバー
タ350、351、352に入力する制御信号be0〜
be2の代わりにCT20、CT21、CT22信号を
入力し、データを2つ保持しているシフトレジスタが存
在することを判定に使用しても良い。カウンタのデータ
はクロックに同期して変化するので、この遅延時間の差
を縮めることができる。
【0119】また、上記ではバッファ200 、201
230 、231 によって4つのデータ対のうちの1対だ
けを選び出してBUS0、BUS1に出力する例につい
て説明したが、マルチプレクサを使用し、制御信号be
0〜be3を適当にエンコードすることにより生成した
制御信号によって、マルチプレクサから適切なデータを
選択さし、加算器40に入力するようにすることもでき
る。この構成によって、バス上のデータの衝突の問題は
発生しなくなる。
【0120】また、上記実施の形態では最大3のレベル
の加算、すなわち最大16個の浮動小数点数を累積加算
するために、シフトレジスタを4個、2つのバッファで
構成されたバッファ対を4個、カウンタを4個設けた例
について説明したが、シフトレジスタ、バッファ対、カ
ウンタ等のの個数を増加させることによって、さらに大
きいレベルの加算まで行えるようになる。すなわち、最
大N個の浮動小数点数を累積加算する場合には、N=2
m のときm個、N≠2m のとき([log2 N]+1)
個(ただし、[ ]はガウスの記号を示す)のシフトレ
ジスタ、バッファ対、及びカウンタ等を設けるようにす
ればよい。
【0121】さらに、本実施の形態の累積回路では制御
信号me0によってマルチプレクサを切り替え、途中
で”0”データを適当に追加することによって最後まで
累積加算が行われるようにしているが、制御信号me0
をローレベルのままで入力データに”0”データを適当
に追加することによって入力データの個数を変えること
によっても累積加算を求めることができる。すなわち、
入力データに適当に”0”データを追加し、その個数を
2n個となるようにすることで最後まで累積加算が行わ
れるようにすることもできる。これによって、マルチプ
レクサ等を省略することができるので、回路規模を一層
簡単にすることができる。
【0122】以上説明したとおり、本実施の形態の累積
回路によって、図3(b)に示したような順番で入力デ
ータを累積加算することができるので、本実施の形態に
よって入力されてくるデータを全て累積加算することが
可能である。
【0123】
【発明の効果】以上説明したように第1及び第2の発明
によれば、同じレベルの加算に使用される2つのデータ
を抽出して加算することにより累積加算結果を得ている
ので、多数のデータの累積加算を小さい誤差で小さい回
路規模で行うことができると共に、最終的な累積加算結
果を従来と大差ない時間で求めることができる、という
効果が得られる。
【0124】第3の発明によれば、必要に応じて加算手
段の片方または両方の入力に0データを入力することが
できるので、回路規模を増加させることなく、データ個
数が2の累乗個でない時にも余ったデータから最終的な
累積加算結果を求めることができる、という効果が得ら
れる。
【0125】第4の発明によれば、入力データの累積加
算を行う時に、出現頻度が高い加算が優先して行われる
ので、累積加算結果を格納する加算結果格納部の回路規
模を最小限にすることができる、という効果が得られ
る。
【0126】また、第5及び第6の発明によれば、複数
個同時に入力されてくるデータに対して同時に累積加算
を行うようにしているので、入力時間と大差ない時間で
累積加算結果を出力することができる、という効果が得
られる
【図面の簡単な説明】
【図1】本発明の実施の形態を表すブロック図である。
【図2】本発明の実施の形態の累積回路を表すブロック
図である。
【図3】従来例と本発明の実施の形態の累積回路による
累積加算の順番を示す図である。
【図4】従来例と本発明の実施の形態の累積回路による
累積加算の相対誤差の比較結果を示した表である。
【図5】本発明の実施の形態の累積回路による累積加算
の実行タイミングを表す図である。
【図6】本発明の実施の形態の累積回路によって14個
のデータの加算を行った時の累積加算の順番を表す図で
ある。
【図7】本発明の実施の形態の累積回路によって累積加
算を行った場合の加算器の使用状況を表した図である。
【図8】本発明の実施の形態の累積回路のコントロール
回路のうち、カウンタ回路を含む部分の回路を表す図で
ある。
【図9】本発明の実施の形態の累積回路のコントロール
回路のうち、制御信号me0を生成する部分の回路を表
す図である。
【図10】本発明の実施の形態の累積回路コントロール
回路のうち、イネーブル信号fe0〜fe3、制御信号
be0〜be3を生成する部分の回路を表す図である。
【図11】本発明の従来例を示すブロック図である。
【符号の説明】
1 データ処理回路 3 コントロール回路 5 累積加算回路 100 、101 、110 、111 、120 、121 、1
0 、131 フリップフロップ 200 、201 、210 、211 、220 、221 、2
0 、231 バッファ 30、31、32、33 シフトレジスタ 40 浮動小数点数加算器 41、42 マルチプレクサ 200 入力端子 201 出力端子 2101 、2111 、2102 、2112 、・・・、2
10n 、211n 入力端子 220 出力端子 300、301、302、303 カウンタ 310、311、312、313 ORゲート 320 インバータ 331 ORゲート 332 インバータ 333 ANDゲート 334 NORゲート 340、341、342、343 マルチプレクサ 344、345、346、347、348、349
ANDゲート 350、353 インバータ 351、352、354、355 NORゲート 4001 、4011 、4002 、4012 、・・・、4
00n 、401n 累積回路 5001 、5011 、5002 、5012 、・・・、5
00n 、501n フリップフロップ 5101 、5102 、・・・、510n 浮動小数
点数加算器 520 浮動小数点数加算器
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年10月7日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】従来例と本発明の実施の形態の累積回路による
累積加算の相対誤差の比較結果を示した表である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮川 宣明 神奈川県足柄上郡中井町境430グリーンテ クなかい 富士ゼロックス株式会社内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】浮動小数点数で表されたデータを累積加算
    する浮動小数点数累積加算装置であって、 入力された2つのデータを加算し加算結果データとして
    出力する加算手段と、 累積加算すべきデータと前記加算手段の加算結果データ
    とを入力し、該累積加算すべきデータ及び該加算結果デ
    ータから同じレベルの加算に使用される2つのデータを
    抽出し、抽出した2つのデータを前記加算手段に入力さ
    せるデータ加算順序変更手段と、 を含む浮動小数点数累積加算装置。
  2. 【請求項2】前記データ加算順序変更手段は、 累積加算すべきデータから2つのデータを抽出する入力
    データ抽出部と、 前記入力データ抽出部で抽出されたデータを格納する入
    力データ格納部と、 前記加算手段の加算結果データから同じレベルの加算を
    行った2つのデータを抽出する加算結果抽出部と、 前記加算結果抽出部で抽出されたデータを加算のレベル
    毎に各々格納する複数の加算結果格納部と、 前記入力データ格納部及び前記複数の加算結果格納部か
    ら同じレベルの加算に使用される2つのデータを抽出
    し、抽出した2つのデータを前記加算手段に入力させる
    格納データ抽出部と、 を含む請求項1記載の浮動小数点数累積加算装置。
  3. 【請求項3】前記入力データ抽出部及び前記加算結果抽
    出部の少なくとも一方は、抽出すべき2つのデータの少
    なくとも1つが存在しない場合には、該存在しないデー
    タとして0データを使用する請求項2記載の浮動小数点
    数累積加算装置。
  4. 【請求項4】前記格納データ抽出部は、加算のレベルが
    より低い2つのデータを優先して抽出する請求項2また
    は3記載の浮動小数点数累積加算装置。
  5. 【請求項5】浮動小数点数で表されたデータを累積加算
    する浮動小数点数累積加算装置であって、 累積加算すべきデータが同時に入力されるように並列配
    置されると共に、累積加算すべきデータ及び該累積加算
    すべきデータの加算結果データを用いて累積加算し、累
    積加算結果を出力する複数の累積加算手段と、 前記累積加算手段によって累積加算された複数の累積加
    算結果を加算して1つの値として出力する累積結果加算
    手段と、 を含む浮動小数点数累積加算装置。
  6. 【請求項6】前記累積加算手段を請求項1〜4のいずれ
    か1項記載の累積加算装置で構成した請求項5の浮動小
    数点数累積加算装置。
JP8209836A 1996-08-08 1996-08-08 浮動小数点数累積加算装置 Pending JPH1055352A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8209836A JPH1055352A (ja) 1996-08-08 1996-08-08 浮動小数点数累積加算装置
US08/901,671 US6073155A (en) 1996-08-08 1997-07-28 Floating-point accumulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8209836A JPH1055352A (ja) 1996-08-08 1996-08-08 浮動小数点数累積加算装置

Publications (1)

Publication Number Publication Date
JPH1055352A true JPH1055352A (ja) 1998-02-24

Family

ID=16579430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8209836A Pending JPH1055352A (ja) 1996-08-08 1996-08-08 浮動小数点数累積加算装置

Country Status (2)

Country Link
US (1) US6073155A (ja)
JP (1) JPH1055352A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009038758A (ja) * 2007-08-03 2009-02-19 Mitsubishi Electric Corp 動的再構成可能演算装置および半導体装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277424B1 (en) * 1998-07-21 2007-10-02 Dowling Eric M Method and apparatus for co-socket telephony
TW407770U (en) * 1998-09-18 2000-10-01 Ind Tech Res Inst 50MHz 40-bit accumulator with trigger capability
JP4159699B2 (ja) * 1999-04-13 2008-10-01 大正製薬株式会社 並列処理方法および並列処理装置
US7212959B1 (en) * 2001-08-08 2007-05-01 Stephen Clark Purcell Method and apparatus for accumulating floating point values
US9817662B2 (en) * 2015-10-24 2017-11-14 Alan A Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof
US11023230B2 (en) * 2015-10-24 2021-06-01 Alan A. Jorgensen Apparatus for calculating and retaining a bound on error during floating-point operations and methods thereof
US10540143B2 (en) * 2015-10-24 2020-01-21 Alan A. Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0314809B1 (en) * 1987-05-14 1993-07-21 Fujitsu Limited Vector processor for processing recurrent equations at a high speed
JPH01169627A (ja) * 1987-12-25 1989-07-04 Toshiba Corp 高精度加算装置
JP2690932B2 (ja) * 1988-03-18 1997-12-17 株式会社日立製作所 ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム
JPH0743649B2 (ja) * 1988-10-18 1995-05-15 日本電気株式会社 演算回路
JP3237858B2 (ja) * 1991-01-30 2001-12-10 沖電気工業株式会社 演算装置
JPH04281524A (ja) * 1991-03-11 1992-10-07 Kawasaki Steel Corp 浮動小数点演算処理装置
JP3318753B2 (ja) * 1991-12-05 2002-08-26 ソニー株式会社 積和演算装置および積和演算方法
US5359548A (en) * 1992-04-15 1994-10-25 Fujitsu Limited Floating-point arithmetic system having multiple-input addition and subtraction means
JP2806171B2 (ja) * 1992-08-31 1998-09-30 日本電気株式会社 データ演算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009038758A (ja) * 2007-08-03 2009-02-19 Mitsubishi Electric Corp 動的再構成可能演算装置および半導体装置

Also Published As

Publication number Publication date
US6073155A (en) 2000-06-06

Similar Documents

Publication Publication Date Title
JP3188467B2 (ja) 最小値・最大値検索装置
US4320464A (en) Binary divider with carry-save adders
EP0717350A2 (en) High-speed division and square root calculation unit
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
KR0126626B1 (ko) 논리회로의 자동설계방법, 그 시스템 및 그 장치와 승산기
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
EP0416869B1 (en) Digital adder/accumulator
JPH1055352A (ja) 浮動小数点数累積加算装置
US4417315A (en) Method and apparatus for incrementing a digital word
KR970006408B1 (ko) 논리회로의 자동설계방법 및 그 장치와 승산기
JPH0568725B2 (ja)
US5214607A (en) Look-ahead FIFO byte count apparatus
JPH02294731A (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
JPH10307707A (ja) 倍数判定回路及びその判定方法
JP4011015B2 (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
CN116484927A (zh) 基于线性折线拟合的Sigmoid激活函数电路
EP0334768A2 (en) Logic circuit having carry select adders
EP0822481A1 (en) Constant divider
EP0356940B1 (en) Finite state machine
JP3595449B2 (ja) 累積加算回路
Peon et al. A VLSI implementation of an arithmetic coder for image compression
JPS5847462Y2 (ja) 乗算回路
CN113703717B (zh) 二进制浮点数乘法运算电路及其控制方法、计算装置
Quach Reducing the latency of floating-point arithmetic operations
JP2002175179A (ja) 整数除算方法および整数除算装置