JP3595449B2 - 累積加算回路 - Google Patents
累積加算回路 Download PDFInfo
- Publication number
- JP3595449B2 JP3595449B2 JP15617398A JP15617398A JP3595449B2 JP 3595449 B2 JP3595449 B2 JP 3595449B2 JP 15617398 A JP15617398 A JP 15617398A JP 15617398 A JP15617398 A JP 15617398A JP 3595449 B2 JP3595449 B2 JP 3595449B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- output data
- output
- control signal
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
- G06F7/5095—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明はディジタルシステムにおける、累積加算回路に関する。
【0002】
【従来の技術】
ディジタル信号処理システムにおいては、一般に入力されたディジタル信号を畳み込み積分によりフイルタリング等の処理を行う。この畳み込み積分は、積和演算により実行されるものであり、大量の演算をより高速及び高精度に実行する事が望まれる。累積加算回路は複数のディジタルデータを加算する為の用途に加えて上述の積和演算における処理速度及び演算精度の向上に寄与するものである。
【0003】
図7に第1の従来の技術として一般的な累積加算回路を示す。本構成は、kビットの入力データをLSB方向にビットシフトして(m−n)ビットのデータとして出力する為のシフタ701と、(m−n)ビットの入力データと現在の累積加算結果である累積加算データを加算してmビットの累積加算データを新たに出力する為の加算器703と、累積加算データを一時的に格納する為のRAM705とから成る。
【0004】
図7を参照して、kビットの複数の正のデータを累積加算し、そのデータをRAM705に保持しながらa回累積加算してmビットの累積加算値を得る場合、オーバーフローを起こすことなく、情報の切り捨てを無くす為には、n−1<log(a)≦nとして(logの底は2)m=k+nである必要がある。この場合、nが大きくなるほどmが大きくなり、値を保持するのに必要なRAM705の容量が増大する。
【0005】
次に、図8に第2の従来技術として特開平9−62653の図34に提供されている、積和演算装置内部における累積加算回路を示す。図8を参照して、本構成は累積加算器の出力データにおいて下位8ビットの演算の為に設けられた第1の加算器801と、累積加算器の出力データにおいて中位8ビットの演算の為に設けられた第2の加算器803と、累積加算器の出力データにおいて上位8ビットの演算の為に設けられた第3の加算器805と、累積加算結果を一時的に格納する為のレジスタ809と、第3の入力端子814からの信号に基づいて累積加算回路の出力データを出力する為のマルチプレクサ807とから成る。
【0006】
上記累積加算回路の動作について示す。図8を参照して、データ変換器818により第2の入力端子813からの8ビットデータは桁移動情報を与える桁移動情報データ816として変換される。バレルシフタ811は桁移動情報データ816に基づいて第1の入力端子812からの信号を桁移動して16ビットデータを出力する。これにより乗算処理が実行される。次に累積加算処理はバレルシフタ811からの16ビットデータの下位8ビットデータを第1の加算器801に入力し、上位8ビットデータを第2の加算器803に入力することから始まる。
【0007】
第1の加算器801は、バレルシフタ811からの下位8ビットデータとマルチプレクサ807から入力される24ビットのデータにおける下位8ビットデータとを加算して加算結果のデータを累積加算器の下位8ビットデータとしてレジスタ809に出力する一方、下位キャリー(桁上げ)信号をレジスタ809に出力する。ここで、第1の加算器801は加算結果のデータに桁あふれが生じた場合にはビット状態が“0”である下位キャリー信号をレジスタ809に出力する。
【0008】
第2の加算器803は、入力されるキャリー信号に基づいて、バレルシフタ811から入力される16ビットのデータの上位8ビットデータとマルチプレクサ807から入力される24ビットのデータにおける中位8ビットデータとを加算して加算結果のデータを累積加算器の中位8ビットデータとしてレジスタ809に出力する一方、中位キャリー信号をレジスタ809に出力する。ここで、第2の加算器803は入力されるキャリー信号のビット状態が“1”の場合には、入力される16ビットの入力データの上位8ビットデータとマルチプレクサ807から入力される24ビットのデータの中位8ビットの加算データの最下位桁に更に1を加算して加算結果のデータとしてレジスタ809に出力し、キャリー信号のビット状態が“0”の場合には、上位8ビットデータとマルチプレクサ807から入力される24ビットのデータにおける中位8ビットデータとの加算データをレジスタ809に出力する。又第2の加算器803は、加算結果のデータに桁あふれが生じた場合にはビット状態が“1”である中位キャリー信号をレジスタ809に出力し、加算結果のデータに桁あふれが生じていない場合にはビット状態が“0”である中位キャリー信号をレジスタ809に出力する。
【0009】
第3の加算器805は、入力されるキャリー信号に基づいて、キャリー信号のビット状態が“1”の場合には、マルチプレクサ807から入力される24ビットのデータにおける上位8ビットのデータの最下位桁に1を加算して加算結果のデータとしてレジスタ809に出力し、当該キャリー信号のビット状態が“0”の場合には、マルチプレクサ807から入力されるデータをそのまま加算結果のデータとしてレジスタ809に出力する。ここで、第3の加算器805の一方の入力端子は接地され、当該入力端子には常に0のデータが入力される。レジスタ809は、第1の加算器801から入力される加算結果のデータと、下位キャリー信号と、第2の加算器803から入力される加算結果のデータと、中位キャリー信号と、第3の加算器805から入力される加算結果のデータとをクロックの1周期分の時間だけ保持してマルチプレクサ807に出力する。
【0010】
マルチプレクサ807は、第3の入力端子814を介して入力される信号とレジスタ809から入力されるデータとを切り替えて出力する。即ちマルチプレクサ807は、第1番目のクロック信号に応答して第3の入力端子814を介して入力される0である入力データを選択的に第1の加算器801の他方の入力端子と、第2の加算器803のキャリー入力端子と、第2の加算器803の他方の入力端子と、第3の加算器805のキャリー入力端子と、第3の加算器805の他方の入力端子とに出力する。又マルチプレクサ807は、第2番目以降のクロック信号に応答して、レジスタ809から入力される各データを第1、第2及び第3の加算器に以下のように入力する。マルチプレクサ807は、第1の加算器801から出力される加算結果のデータを第1の加算器801の他方の入力端子に入力し、第1の加算器801から出力される下位キャリー信号を第2の加算器803のキャリー入力端子に入力し、第2の加算器803から出力される加算結果のデータを第2の加算器803の他方の入力端子に入力し、第2の加算器803から出力される中位キャリー信号を第3の加算器805のキャリー入力端子に入力し、第3の加算器805から出力される加算結果のデータを第3の加算器805の他方の入力端子に入力する。
【0011】
以上の累積加算回路は、3つの8ビット加算器とレジスタとを備えることにより24ビットの加算器を構成し、第1の加算器801の下位キャリー信号と第2の加算器803の中位キャリー信号とを各々レジスタでクロックの1周期分の時間だけ保持した後、即ち次のクロックの加算時に上位側の加算器に伝播されるように構成している。これによって、1回の加算におけるキャリー伝播が短くなることで、累積加算時間を短くできるという特徴を有する。
【0012】
【発明が解決しようとする課題】
図7に示した第1の従来の技術においては、RAMの容量(データ語長)に制約がある場合にはm<k+nとなり、オーバーフローを防ぐ為に、加算前に各データの情報を切り捨てる必要が生じる。これは予め各入力データの下位ビットを切り捨てて(m−n)ビットにして加算するものであるが、この方法では(k+n−m)が大きい場合には精度の低下が大きくなる。
【0013】
一方、図8に示した第2の従来の技術においては、積和演算器内部にデータ変換器及びバレルシフタを用いる事で累積加算器におけるオーバーフローを防いでいるが、これは乗算処理の為の機能に含まれるものであり、累積加算回路がその内部機能として有するものではない。
【0014】
本発明の目的は上述した問題点を解決し、累積加算値の保持に必要なRAMの容量を増大させることなく精度の低下を減少させた累積加算回路を提供することにある。
【0015】
【課題を解決するための手段】
上記課題を解決する為に本発明の累積加算回路は、入力データと、累積加算結果である現累積加算データとを受け、第1のビットシフト制御信号に応答して前記入力データをビットシフトし、第2のビットシフト制御信号に応答して前記現累積加算データをビットシフトし、ビットシフトされた前記入力データとビットシフトされた前記現累積加算データとから次累積加算データを発生し、又次累積加算データの一部のデータを出力する為の累積加算部と、
現累積加算データの一部のデータを受け、前記現累積加算データの一部のデータに応答して前記第1のビットシフト制御信号と、前記第2のビットシフト制御信号とを発生する為のシフトビットサーチ部とを具備することを特徴とする。
【0016】
又前記累積加算部が、前記入力データ及び前記現累積加算データを各々受け、これらを保持して第1の出力データ及び第2の出力データとを各々出力する為のデータ保持手段と、
前記第1の出力データを受け、前記第1のビットシフト制御信号に応答して前記第1の出力データをLSB(Least Significant Bit)方向へビットシフトして第1のシフト出力データを出力し、又前記第2の出力データを受け、前記第2のビットシフト制御信号に応答して前記第2の出力データをLSB方向へビットシフトして第2のシフト出力データを出力する為のデータシフト手段と、
前記第1のシフト出力データと前記第2のシフト出力データを各々受け、これらを加算して前記次累積加算データ及び前記次累積加算データの一部のデータを出力する為のデータ加算手段とを具備することを特徴とする。
【0017】
更に前記シフトビットサーチ部が、前記現累積加算データの一部のデータを受け、前記現累積加算データの一部のデータの変化に応答して第3の出力データを出力する為のデータサーチ手段と、
前記第3の出力データを受け、前記第1のビットシフト制御信号と前記第2のビットシフト制御信号とを発生する為の制御データ発生手段とを具備することを特徴とする。
【0018】
更に前記データ加算手段が、前記第1のシフト出力データと前記第2のシフト出力データとを加算して前記次累積加算データを出力する為の第1の加算器と、前記次累積加算データを格納する為のRAMとを具備することを特徴とする。
【0019】
更に前記データ加算手段が、前記第1のシフト出力データと前記第2のシフト出力データとを加算して前記次累積加算データを出力する為の前記第1の加算器を具備することを特徴とする。
【0020】
更に前記データサーチ手段が、論理和演算回路と、
前記論理和演算回路の出力データである論理和出力データを受け、前記論理和出力データを保持し前記第3の出力データを出力する為の第3のフリップフロップ回路から成り、
前記論理和演算回路に前記現累積加算データの一部のデータと前記第3の出力データが入力されることを特徴とする。
【0021】
更に前記データサーチ手段が、前記現累積加算データの一部のデータを受け、論理積出力データを出力する為の論理積演算回路と、
前記論理和演算回路と、
前記論理和演算回路の出力である前記論理和出力データを受け、前記論理和出力データを保持し前記第3の出力データを出力する為の前記第3のフリップフロップ回路から成り、前記論理和演算回路に前記現累積加算データの一部のデータと前記第3の出力データが入力されることを特徴とする。
【0022】
更に前記データ保持手段が、前記入力データを受けて前記第1の出力データを出力する為の第1のフリップフロップ回路と、
前記現累積加算データを受けて前記第2の出力データを出力する為の第2のフリップフロップ回路とを具備することを特徴とする。
【0023】
更に前記データシフト手段が、前記第1の出力データを受け、前記第1のビットシフト制御信号に基づいて前記第1のシフト出力データを出力する為の第1のシフタと、前記第2の出力データを受け、前記第2のビットシフト制御信号に基づいて前記第2のシフト出力データを出力する為の第2のシフタとを具備することを特徴とする。
【0024】
更に前記制御データ発生手段が、前記第3の出力データを受け、前記第2のビットシフト制御信号を出力する為の第4のフリップフロップ回路と、第2の加算器と、前記第2の加算器の出力データであるシフトビットデータを受け、前記第1のビットシフト制御信号を出力する為の第5のフリップフロップ回路とから成り、前記第2の加算器に前記第3の出力データと前記第1のビットシフト制御信号が入力されることを特徴とする。
【0025】
【発明の実施の形態】
次に本発明の累積加算回路について、添付図面を参照して以下に詳細を説明する。図1に本発明の累積加算回路の実施の形態をブロック図により示す。尚本図に示すブロック図の概念は後述する第1、第2及び第3の実施の形態における構成を包含するものである。図1を参照して、本構成は累積加算部101とシフトビットサーチ部103とから成る。累積加算部101は入力データ105と、現在の累積加算結果である累積加算データ(現累積加算データ)107とを受け、第1のビットシフト制御信号111に応答して前記入力データ105をビットシフトし、第2のビットシフト制御信号113に応答して現累積加算データ107をビットシフトし、ビットシフトされた前記入力データ105とビットシフトされた現累積加算データ107とから次累積加算データ(図示せず)を発生して、又次累積加算データ一部のデータ(図示せず)を出力する。ビットシフトサーチ部103は現累積加算データの一部のデータ109を受け、前記現累積加算データの一部のデータ109に応答して第1のビットシフト制御信号111と、前記第2のビットシフト制御信号113とを発生する。
【0026】
即ち本発明は、シフトビットサーチ部103が累積加算データ107の変化(トランザクション)を現累積加算データの一部のデータ109を用いて参照しながら入力データ105に対するビットシフト情報である第1のビットシフト制御信号111と、現累積加算データ107に対するビットシフト情報である第2のビットシフト制御信号113を発生し、又累積加算部101は新たに算出される次累積加算データの格納に際してオーバーフローを避ける為に第1のビットシフト制御信号111及び第2のビットシフト制御信号113に応答して、入力データ105及び現累積加算データ107を各々LSB(Least Significant Bit)方向にビットシフトし、シフト後の各データを累積加算するというものである。以下具体的に各実施の形態について示す。
【0027】
最初に本発明の第一の実施の形態に係る累積加算回路について説明する。図2に累積加算回路の構成を示す。図2を参照して、本構成は累積加算部201とシフトビットサーチ部203から成り、累積加算部201はデータ保持手段251と、データシフト手段253及びデータ加算手段255から成る。シフトビットサーチ部203はデータサーチ手段257及び制御データ発生手段259とから成る。
【0028】
累積加算部201において、データ保持手段251は入力データ(kビット)205を受けて第1の出力データ(kビット)237を出力する為の第1のフリップフロップ回路215と、現累積加算データ(mビット)207を受けて第2の出力データ(mビット)239を出力する為の第2のフリップフロップ回路217からなる。データシフト手段253は第1の出力データ237を受け、第1のビットシフト制御信号211の情報に基づいて第1の出力データ237をLSB方向へビットシフトして第1のシフト出力データ(最大m−1ビット)241を出力する為の第1のシフタ219と、第2の出力データ239を受け、前記第2のビットシフト制御信号213の情報に基づいて第2のシフト出力データ(m−1ビット)243を出力する為の第2のシフタ221から成る。データ加算手段255は第1のシフト出力データ241と第2のシフト出力データ243とを加算して新たな次累積加算データ(mビット)(図示せず)を出力する為の第1の加算器223と、次累積加算データを一時的に蓄積する為のRAM(データ語長mビット)225とから成る。
【0029】
又シフトビットサーチ部203において、データサーチ手段257は論理和演算回路227と、この出力データである論理和出力データ245を受け、論理和出力データ245を保持し第3の出力データ247を出力する為の第3のフリップフロップ回路229から成る。又論理和演算回路227は現累積加算データのMSB(Most Significant Bit)データ209と第3の出力データ247を入力としている。制御データ発生手段259は第3の出力データ247を受け、第2のビットシフト制御信号213を出力する為の第4のフリップフロップ回路231と、第2の加算器233と、この出力データであるシフトビットデータ249を受け、第1のビットシフト制御信号211を出力する為の第5のフリップフロップ回路235とから成る。又第2の加算器233は第3の出力データ247と第1のビットシフト制御信号211を入力としている。
【0030】
図2及び図3を参照して、本発明の動作を説明する。図3は、本発明に係る入力信号の形態を表すタイミングチャートである。本発明は、図3のタイミングチャートに示す順序で入力されるkビットのa個×fの正のデータDをb(1≦b≦f)の各々についてa(1≦i≦a)個加算した累積加算値ΣD(b,i)が次式に基づいて、f個算出される。
ΣD(b,i)=D(b,1)+D(b,2)+D(b,3)+...+D(b,a)
図2に示す回路では、第1のフリップフロップ回路215に取り込まれた入力データが、第5のフリップフロップ回路235に保持された指数だけ第1のシフタ219によりLSB方向にビットシフトされ、第1のシフト出力データ241に変換される。RAM225から読み込まれた現累積加算データ207は、第2のフリップフロップ回路217に取り込まれ、第4のフリップフロップ回路231に保持された値だけ第2のシフタ221によりLSB方向にビットシフトされ、第2のシフト出力データ243に変換される。第1のシフト出力データ241及び第2のシフト出力データ241は、第1の加算器223にて加算され、次累積加算データとして新たにRAM225に書き込まれる。第1のシフタ219及び第2のシフタ221によるビットシフトは、オーバーフローを防ぎ、桁を合わせる働きをする。
【0031】
指数のインクリメントが必要であるか否かを調べる為に、論理和演算回路227と第3のフリップフロップ回路229は、iが一定である間の現累積加算データ207のMSBをサーチし、1回以上1になると第3のフリップフロップ回路229の値は1に設定される。iのインクリメント時、第4のフリップフロップ回路231は、第3のフリップフロップ回路229から第3の出力データ247を取り込み、第5のフリップフロップ回路235の値に第3の出力データ247の値が加算される。第5のフリップフロップ回路235と第4のフリップフロップ回路231に保持された値は、各々第1のシフタ219及び第2のシフタ221でシフトする桁数となる。ここで第1のシフタ219及び第2のシフタ221でのシフトにおいてアンダーフローする桁は切り捨て、値の無い上位の桁は0とする。又第5のフリップフロップ回路235に保持された指数は、fの値によらず1個であり、fが大きい値になっても累積加算器の回路規模が変化することはない。即ち、指数を保持するためにフリップフロップ回路をf個用意する必要が無い。
【0032】
次に、本発明の第一の実施の形態に係る累積加算回路の動作について説明する。図2及び図4に示すタイミングチャートを参照して、
S(b,i1)=D(b,1)+D(b,2)+...+D(b,i1)
の演算動作の過程を説明する。始めに、第5のフリップフロップ回路235が示す指数の値だけLSB方向にビットシフトさせることを考慮して指数の値の初期値を設定する。k<mの場合は指数の初期値は0で、第1のシフタ219の出力はkビット(≦m−1)である。k≧mの場合は指数の初期値はk−m+1で、第1のシフタ219の出力はm−1ビットである。従ってkの値に依らず第1のシフタ219の出力は最大(m−1)ビットとなる。
【0033】
入力データ205がD(b,i1)の時、第1のクロック信号261の立ち上がりによりD(b,i1)が第1のフリップフロップ回路215に取り込まれる。このとき、第1のシフタ219において、第5のフリップフロップ回路235に保持された指数f5(i1−1)だけ第1の出力データ237がLSB方向にビットシフトされる。又、同じく第1のクロック信号261の立ち上がりによりRAM225から同じ添字bでi=i1−1番までの累積加算値S(b,i1−1)が第2のフリップフロップ回路217に読み込まれる。このとき、第2のシフタ221において、第4のフリップフロップ回路231に保持されたf4(i1−1)の値だけLSB方向にビットシフトされる。但し、i=i1の時は第2のフリップフロップ回路217及び第4のフリップフロップ回路231の値は0を示し、LSB方向にビットシフトした結果も0を示す。第1のシフタ219及び第2のシフタ221の出力を第1の加算器223にて加算し、その結果S(b,i1)は、新たな累積加算データとしてRAM225に書き込まれる。
【0034】
第3のフリップフロップ回路229の初期値は0に設定されており、リセット信号265によりiが変化する毎に0になる。i=i1になってからi1+1になるまでは第3のフリップフロップ回路229が保持する値と、第1の加算器223の加算結果のMSBの論理和を論理和演算回路227で求める。この処理によりMSBが1回以上1になると、第3のフリップフロップ回路229の値は1になる。第4のフリップフロップ回路231は、第2のクロック信号263の立ち上がりで第3のフリップフロップ回路229の値を取り込む。i=i1になってからi1+1になるまでにMSBが1回以上1になると、第4のフリップフロップ回路231の値は1になり、全て0の場合は0になる。第4のフリップフロップ回路231の値f4(i1)はi=i1+1の時に第2のシフタ221のシフト量となる。第5のフリップフロップ回路235は、第2のクロック信号263の立ち上がりで保持している値と、第3のフリップフロップ回路229の出力との加算値を取り込む。第5のフリップフロップ回路235の値f5(i1)は、S(b,i1)に対する指数であり、i=i1+1に変化した時の第1のシフタ219におけるシフト量となる。
【0035】
更に図4を参照して、i=i1+1の時の処理について説明する。f4(i1)が0の場合、第2のシフタ221のシフト量は0でシフトされない。この場合f5(i1)=f5(i1−1)であり、i=i1+1の時の第1のシフタ219におけるシフト量はi=i1の時から変化しないので第1のシフタ219及び第2のシフタ221の出力の指数は一致する。又、RAM225から読み込む累積加算データのMSBは全て0なので第2のシフタ221の出力はm−1ビットでよい。f4(i1)が1の場合は第2のシフタ221のシフト量は1となる。この場合はf5(i1)=f5(i1−1)+1であり、i=i1+1の時の第1のシフタ219のシフト量はi=i1の時から1増加する。従って、第1のシフタ219及び第2のシフタ221の出力の指数は一致する。又、第2のシフタ221でLSB方向に1ビットシフトする為の第2のシフタ221の出力はm−1ビットでよい。以上から第2のシフタ221の出力はm−1ビットとなる。本章の最初に述べたように第1のシフタ219の出力もm−1ビットなので第1の加算器223の出力はmビットでオーバーフローすることはない。
【0036】
f4(i1)が0の場合はi=i1+1の時にシフト量をインクリメントしなくても第1の加算器223の加算結果はオーバーフローしないので、シフト量を増やさないでRAM225に加算結果である累積加算データを保持できる。シフト量を増やさない分RAM225に精度のよい累積加算データを保持することができる。f4(i1)が1の場合は、i=i1+1の時にシフト量をインクリメントしないと第1の加算器223の出力がオーバーフローする可能性があるためビットシフトする。
【0037】
以上により入力データとRAMから読み込んだ累積加算データから値の指数を合わせ、オーバーフローを防ぎながら切り捨てるデータ(情報)を減少させた累積加算を行うことができる。尚、RAMに保持された累積加算データは指数の分だけ右シフトされているが、シフトされていない値が必要な場合はフリップフロップ回路に保持されている指数の値だけ左シフトすればよい。
【0038】
次に、本発明の第二の実施の形態に係る累積加算回路について説明する。図5に累積加算回路の構成を示す。図5を参照して、本構成は累積加算データの格納の為にRAMを使用せず、第2のフリップフロップ回路517で現累積加算データ507を保持する。本図ではf=1の例を挙げているが、累積加算データを保持する為のフリップフロップ回路を複数設けて随時切り替えることによりf>1の場合にも適用できる。本第二の実施の形態における利点はLSIの外部にRAMが不要となり、使用するLSIの個数を減らすことができる点である。fが大きくなると累積加算データを保持する為のフリップフロップ回路が多くなる為本実施の形態はfが比較的小さい場合に有用である。
【0039】
更に、本発明の第三の実施の形態に係る累積加算回路について説明する。図6に累積加算回路の構成を示す。図6を参照して、本構成は図2に示した第一の実施の形態における構成に加え、論理積演算回路628を論理和演算回路627の前に挿入している。これはk<mの場合に適用が可能で切り捨てる情報を第1の実施の形態より減らすことができる。但し、k=m−1の場合には第1の実施の形態と等価である。本実施の形態では現累積加算データ607のMSBの1ビットだけでなく、上位k−mビットを参照することにより次回加算時にオーバーフローを起こす条件をより限定している。
【0040】
【発明の効果】
本発明の累積加算回路により、オーバーフローを起こす可能性のない時に切り捨てる桁を減少させて、RAMを有効に用いることにより精度の低下を減少させた累積加算を行うことができる。又本発明の累積加算回路は累積加算すべき入力データの数に依存せず、その回路規模は不変である。
【0041】
例として、8ビットの入力データ(k=8)を各々1000個(a=1000)加算して16ビットの累積加算値(m=16)をRAMに保持して累積加算値を得る場合、第1の従来の技術において示した累積加算回路では全ての入力データに対して下位2ビットを切り捨てて6ビットにしなければオーバーフローを防ぐことができないが、本発明の累積加算回路は累積加算値のMSBの一つが1になるまで切り捨てを行うことなく累積加算を行うことができる。最も早く切り捨てを行う必要が生じる場合、即ち図3に示した特定のbにおける入力データが常に最大値を取る場合においても最初の129個(i≦129)の累積加算では切り捨てを行う必要はない。特定のbにおける入力データが常に最大値もしくは最大値に近い値をとる、ということがなければ切り捨てを行う必要が生じるのはより後になり、より精度の低下を抑えることができる。特に第3の実施の形態に係る累積加算回路を用いた場合、最も早く切り捨てを行う必要が生じる場合でも257個の累積加算までは切り捨てを行う必要がなく、本実施の形態はm−kが大きい場合には特に有効である。
【図面の簡単な説明】
【図1】図1は本発明の実施の形態を説明する為のブロック図である。
【図2】図2は本発明の第一の実施の形態を説明する為の構成図である。
【図3】図3は図2に示した構成の処理を説明する為の入力データのタイミングチャートである。
【図4】図4は図3においてiがインクリメントする時の図2に示す構成のタイミングチャートである。
【図5】図5は本発明の第二の実施の形態を説明する為の構成図である。
【図6】図6は本発明の第三の実施の形態を説明する為の構成図である。
【図7】図7は第一の従来の技術を説明する為の構成図である。
【図8】図8は第二の従来の技術を説明する為の構成図である
【符号の説明】
101: 累積加算部
103: シフトビットサーチ部
105: 入力データ
107: 現累積加算データ
109: 現累積加算データの一部のデータ
111: 第1のビットシフト制御信号
113: 第2のビットシフト制御信号
201: 累積加算部
203: シフトビットサーチ部
205: 入力データ
207: 現累積加算データ
209: 現累積加算データのMSBデータ
211: 第1のビットシフト制御信号
213: 第2のビットシフト制御信号
215: 第1のフリップフロップ回路
217: 第2のフリップフロップ回路
219: 第1のシフタ
221: 第2のシフタ
223: 第1の加算器
225: RAM
227: 論理和演算回路
229: 第3のフリップフロップ回路
231: 第4のフリップフロップ回路
233: 第2の加算器
235: 第5のフリップフロップ回路
237: 第1の出力データ
239: 第2の出力データ
241: 第1のシフト出力データ
243: 第2のシフト出力データ
245: 論理和出力データ
247: 第3の出力データ
249: シフトビットデータ
251: データ保持手段
253: データシフト手段
255: データ加算手段
257: データサーチ手段
259: 制御データ発生手段
261: 第1のクロック信号
263: 第2のクロック信号
265: リセット信号
501: 累積加算部
503: シフトビットサーチ部
505: 入力データ
507: 現累積加算データ
509: 現累積加算データのMSBデータ
511: 第1のビットシフト制御信号
513: 第2のビットシフト制御信号
515: 第1のフリップフロップ回路
517: 第2のフリップフロップ回路
519: 第1のシフタ
521: 第2のシフタ
523: 第1の加算器
527: 論理和演算回路
529: 第3のフリップフロップ回路
531: 第4のフリップフロップ回路
533: 第2の加算器
535: 第5のフリップフロップ回路
537: 第1の出力データ
539: 第2の出力データ
541: 第1のシフト出力データ
543: 第2のシフト出力データ
545: 論理和出力データ
547: 第3の出力データ
549: シフトビットデータ
551: データ保持手段
553: データシフト手段
555: データ加算手段
557: データサーチ手段
559: 制御データ発生手段
561: 第1のクロック信号
563: 第2のクロック信号
565: リセット信号
601: 累積加算部
603: シフトビットサーチ部
605: 入力データ
607: 現累積加算データ
609: 現累積加算データの上位(m−k)ビットデータ
611: 第1のビットシフト制御信号
613: 第2のビットシフト制御信号
615: 第1のフリップフロップ回路
617: 第2のフリップフロップ回路
619: 第1のシフタ
621: 第2のシフタ
623: 第1の加算器
625: RAM
627: 論理和演算回路
628: 論理積演算回路
629: 第3のフリップフロップ回路
631: 第4のフリップフロップ回路
633: 第2の加算器
635: 第5のフリップフロップ回路
637: 第1の出力データ
639: 第2の出力データ
641: 第1のシフト出力データ
643: 第2のシフト出力データ
645: 論理和出力データ
646: 論理積出力データ
647: 第3の出力データ
649: シフトビットデータ
651: データ保持手段
653: データシフト手段
655: データ加算手段
657: データサーチ手段
659: 制御データ発生手段
661: 第1のクロック信号
663: 第2のクロック信号
665: リセット信号
701: シフタ
703: 加算器
705: RAM
801: 第1の加算器
803: 第2の加算器
805: 第3の加算器
807: マルチプレクサ
809: レジスタ
811: バレルシフタ
812: 第1の入力端子
813: 第2の入力端子
814: 第3の入力端子
815: 出力端子
816: 桁移動情報データ
817: 累積加算回路
818: データ変換器
Claims (13)
- 入力データと、累積加算結果である現累積加算データとを受け、第1のビットシフト制御信号に応答して前記入力データをビットシフトし、第2のビットシフト制御信号に応答して前記現累積加算データをビットシフトし、ビットシフトされた前記入力データとビットシフトされた前記現累積加算データとから次累積加算データを発生し、又次累積加算データの一部のデータを出力する為の累積加算部と、
現累積加算データの一部のデータを受け、前記現累積加算データの一部のデータに応答して前記第1のビットシフト制御信号と、前記第2のビットシフト制御信号とを発生する為のシフトビットサーチ部とを具備することを特徴とする累積加算回路。 - 前記累積加算部が、前記入力データ及び前記現累積加算データを各々受け、これらを保持して第1の出力データ及び第2の出力データとを各々出力する為のデータ保持手段と、
前記第1の出力データを受け、前記第1のビットシフト制御信号に応答して前記第1の出力データをLSB(Least Significant Bit)方向へビットシフトして第1のシフト出力データを出力し、又前記第2の出力データを受け、前記第2のビットシフト制御信号に応答して前記第2の出力データをLSB方向へビットシフトして第2のシフト出力データを出力する為のデータシフト手段と、
前記第1のシフト出力データと前記第2のシフト出力データを各々受け、これらを加算して前記次累積加算データ及び前記次累積加算データの一部のデータを出力する為のデータ加算手段とを具備することを特徴とする請求項1記載の累積加算回路。 - 前記シフトビットサーチ部が、前記現累積加算データの一部のデータを受け、前記現累積加算データの一部のデータの変化に応答して第3の出力データを出力する為のデータサーチ手段と、
前記第3の出力データを受け、前記第1のビットシフト制御信号と前記第2のビットシフト制御信号とを発生する為の制御データ発生手段とを具備することを特徴とする請求項1記載の累積加算回路。 - 前記データ加算手段が、前記第1のシフト出力データと前記第2のシフト出力データとを加算して前記次累積加算データを出力する為の第1の加算器と、
前記次累積加算データを格納する為のRAMとを具備することを特徴とする請求項2記載の累積加算回路。 - 前記データ加算手段が、前記第1のシフト出力データと前記第2のシフト出力データとを加算して前記次累積加算データを出力する為の前記第1の加算器を具備することを特徴とする請求項2記載の累積加算回路。
- 前記データサーチ手段が、論理和演算回路と、
前記論理和演算回路の出力データである論理和出力データを受け、前記論理和出力データを保持し前記第3の出力データを出力する為の第3のフリップフロップ回路から成り、
前記論理和演算回路に前記現累積加算データの一部のデータと前記第3の出力データが入力されることを特徴とする請求項3記載の累積加算回路。 - 前記データサーチ手段が、前記現累積加算データの一部のデータを受け、論理積出力データを出力する為の論理積演算回路と、
前記論理和演算回路と、
前記論理和演算回路の出力である前記論理和出力データを受け、前記論理和出力データを保持し前記第3の出力データを出力する為の前記第3のフリップフロップ回路から成り、前記論理和演算回路に前記現累積加算データの一部のデータと前記第3の出力データが入力されることを特徴とする請求項3記載の累積加算回路。 - 前記データ保持手段が、前記入力データを受けて前記第1の出力データを出力する為の第1のフリップフロップ回路と、
前記現累積加算データを受けて前記第2の出力データを出力する為の第2のフリップフロップ回路とを具備することを特徴とする請求項2記載の累積加算回路。 - 前記データシフト手段が、前記第1の出力データを受け、前記第1のビットシフト制御信号に基づいて前記第1のシフト出力データを出力する為の第1のシフタと、前記第2の出力データを受け、前記第2のビットシフト制御信号に基づいて前記第2のシフト出力データを出力する為の第2のシフタとを具備することを特徴とする請求項2記載の累積加算回路。
- 前記制御データ発生手段が、前記第3の出力データを受け、前記第2のビットシフト制御信号を出力する為の第4のフリップフロップ回路と、第2の加算器と、前記第2の加算器の出力データであるシフトビットデータを受け、前記第1のビットシフト制御信号を出力する為の第5のフリップフロップ回路とから成り、前記第2の加算器に前記第3の出力データと前記第1のビットシフト制御信号が入力されることを特徴とする請求項3記載の累積加算回路。
- 現累積加算データの一部のデータに基づいて第1のビットシフト制御信号と、第2のビットシフト制御信号とを発生する制御信号発生ステップと、
前記第1のビットシフト制御信号に応答して入力データをビットシフトするステップと、又前記第2のビットシフト制御信号に応答して前記現累積加算データをビットシフトするビットシフトステップと、
ビットシフトされた前記入力データとビットシフトされた前記現累積加算データとから次累積加算データを発生する累積加算ステップとから成ることを特徴とする累積加算方法。 - 前記制御信号発生ステップが、
前記現累積加算データの一部のデータの変化に基づいて第3の出力データを出力するステップと、
前記第3の出力データを受け、前記第1のビットシフト制御信号と前記第2のビットシフト制御信号とを発生するステップとから成ることを特徴とする請求項11記載の累積加算方法。 - 前記ビットシフトステップが、
前記入力データ及び前記現累積加算データを各々受け、これらを保持して第1の出力データ及び第2の出力データとを各々出力するステップと、
前記第1の出力データを前記第1のビットシフト制御信号に基づいてLSB(Least Significant Bit)方向へビットシフトして第1のシフト出力データを出力し、又前記第2の出力データを前記第2のビットシフト制御信号に基づいて、LSB方向へビットシフトして第2のシフト出力データを出力するステップとから成り、
前記累積加算ステップが、
前記第1のシフト出力データと前記第2のシフト出力データとを各々受け、これらを加算して前記次累積加算データを出力するステップとから成ることを特徴とする請求項11記載の累積加算方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15617398A JP3595449B2 (ja) | 1998-06-04 | 1998-06-04 | 累積加算回路 |
DE19923278A DE19923278B4 (de) | 1998-06-04 | 1999-05-20 | Summierschaltkreis |
US09/323,941 US6360242B1 (en) | 1998-06-04 | 1999-06-02 | Summing circuit with high precision |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15617398A JP3595449B2 (ja) | 1998-06-04 | 1998-06-04 | 累積加算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11353157A JPH11353157A (ja) | 1999-12-24 |
JP3595449B2 true JP3595449B2 (ja) | 2004-12-02 |
Family
ID=15621958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15617398A Expired - Fee Related JP3595449B2 (ja) | 1998-06-04 | 1998-06-04 | 累積加算回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6360242B1 (ja) |
JP (1) | JP3595449B2 (ja) |
DE (1) | DE19923278B4 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850990B1 (en) * | 1999-07-14 | 2005-02-01 | Landesk Software Limited | Transfer of synchronized data from 16-bit code to a 32-bit process |
DE102009036682A1 (de) * | 2009-08-07 | 2011-02-17 | Weber Maschinenbau Gmbh Breidenbach | Aufschneiden von Lebensmittelprodukten |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216624A (ja) * | 1992-02-03 | 1993-08-27 | Mitsubishi Electric Corp | 演算装置 |
GB2274181B (en) * | 1993-01-09 | 1997-04-02 | Digital Equipment Int | Summation unit |
JPH0962653A (ja) | 1995-08-29 | 1997-03-07 | Mitsubishi Electric Corp | 積和演算装置、積和演算器集積回路装置及び累積加算器 |
US5777918A (en) * | 1995-12-22 | 1998-07-07 | International Business Machines Corporation | Fast multiple operands adder/subtracter based on shifting |
-
1998
- 1998-06-04 JP JP15617398A patent/JP3595449B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-20 DE DE19923278A patent/DE19923278B4/de not_active Expired - Fee Related
- 1999-06-02 US US09/323,941 patent/US6360242B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11353157A (ja) | 1999-12-24 |
US6360242B1 (en) | 2002-03-19 |
DE19923278A1 (de) | 1999-12-23 |
DE19923278B4 (de) | 2004-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3110288B2 (ja) | 指数対数変換回路 | |
JPH05216624A (ja) | 演算装置 | |
EP0021283A1 (en) | Digital data apparatus | |
US20030236651A1 (en) | Floating point number storage method and floating point arithmetic device | |
EP1752870B1 (en) | Multiplier | |
EP0416869B1 (en) | Digital adder/accumulator | |
JP3003467B2 (ja) | 演算装置 | |
JP3595449B2 (ja) | 累積加算回路 | |
US5400271A (en) | Apparatus for and method of calculating sum of products | |
JPH07234778A (ja) | 演算回路 | |
US5777916A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the montgomery method | |
JPH0831029B2 (ja) | 除算用近似逆数生成装置 | |
JPH0566921A (ja) | データシフト回路 | |
JP3778489B2 (ja) | プロセッサ、演算装置及び演算方法 | |
US5777907A (en) | Processor for selectively performing multiplication/division | |
JPH0981541A (ja) | 累算器 | |
Peon et al. | A VLSI implementation of an arithmetic coder for image compression | |
JP4163967B2 (ja) | 浮動小数点演算装置 | |
CN114895868B (zh) | 基于两位商计算的除法运算单元及除法器 | |
JP2000010763A (ja) | 除算回路 | |
JP2795253B2 (ja) | 除算器 | |
JPH0831024B2 (ja) | 演算プロセッサ | |
EP0780759A1 (en) | Elimination of math overflow flag generation delay in an alu | |
JP3074958B2 (ja) | 加算機能付きシリアル乗算器 | |
JP2821406B2 (ja) | 積和演算器およびこれを用いたディジタルフィルタ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010802 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040903 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090910 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |