JP3497852B1 - 演算方法および演算回路 - Google Patents

演算方法および演算回路

Info

Publication number
JP3497852B1
JP3497852B1 JP2002166018A JP2002166018A JP3497852B1 JP 3497852 B1 JP3497852 B1 JP 3497852B1 JP 2002166018 A JP2002166018 A JP 2002166018A JP 2002166018 A JP2002166018 A JP 2002166018A JP 3497852 B1 JP3497852 B1 JP 3497852B1
Authority
JP
Japan
Prior art keywords
accumulator
value
down counter
arithmetic unit
data bus
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
Application number
JP2002166018A
Other languages
English (en)
Other versions
JP2004013519A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2002166018A priority Critical patent/JP3497852B1/ja
Priority to US10/367,691 priority patent/US7089277B2/en
Publication of JP2004013519A publication Critical patent/JP2004013519A/ja
Application granted granted Critical
Publication of JP3497852B1 publication Critical patent/JP3497852B1/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/607Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

【要約】 【課題】 プロセッサ上のレジスタのダイナミックレン
ジを拡大する演算方法および演算回路を提供する。 【解決手段】 演算方法において、演算器4とアキュム
レータ1とによりプロセッサの演算を実行する手順と、
制御回路により演算器4のキャリー信号と演算器4への
データバス2からの入力データの符号信号に規則的に応
じてアップダウンカウンタ5の内容をアキュムレータ1
の内容と組み合わせて正しい値になるように制御する制
御信号をアップダウンカウンタ5に出力する手順と、ア
キュムレータ1によりアキュムレータ1の値をデータバ
ス2と演算器4に出力する手順と、アップダウンカウン
タ5によりアキュムレータ1の許容範囲を超えた正しい
値の上位部分の値を有するアップダウンカウンタ5の値
をデータバス2に出力する手順と、からなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサの演算
回路に関し、特にハードウエアの増加を最小に抑え、コ
ストを増加させることなくプロセッサの演算のダイナミ
ックレンジを増大させる演算回路および演算方法に関す
る。
【0002】
【従来の技術】プロセッサ上のデータ演算は、レジス
タ、データバス及びメモリアレイを使用して実行され
る。大部分のプロセッサはアキュムレータと呼ばれる1
個以上のレジスタを有する。アキュムレータ・レジスタ
(以下、「アキュムレータ」という。)は、プロセッサ
の算術及び論理演算を実行する装置である。
【0003】演算時、データはプロセッサのメモリから
読み出され、アキュムレータに記憶される。それから、
加算(ADD)や減算(SUBTRACT)指令に基づ
く演算がアキュムレータを用いて実行される。これらの
演算後に、結果がアキュムレータに記憶される。このと
き、メモリの内容は変化しないままである。
【0004】
【発明が解決しようとする課題】DSP(DSP:Di
gita1 Signal Processor)など
多くのプロセッサでは、信号処理計算などで累積演算
(以下、「累算」という。)を行う場合、レジスタでの
オーバーフローの問題がある。
【0005】状態評価器やカルマン・フィルタに用いら
れているような多くの被制御アルゴリズムで、アキュム
レータの累算された結果がレジスタの範囲を超えて、レ
ジスタ・オーバーフローを発生する場合がある。例え
ば、32ビット・アキュムレータは32ビット・レジス
タの最大正値又は最大負値を超える結果を有する場合が
ある。このオーバーフローを収容するため、現在のビッ
ト・サイズを越えてレジスタを拡張し、そのダイナミッ
クレンジを拡大することも可能である。
【0006】しかしながら、アキュムレータの元のビッ
ト・サイズに対して書かれた命令とコードは、この新た
なダイナミックレンジにしたアキュムレータのビット・
サイズとは適合しない。従って、両者で同じ数値演算は
保持されず、レジスタのキヤリとオーバーフロー・フラ
ッグに対する効果はダイナミックレンジを拡張した場合
としなかった場合で異なる。
【0007】レジスタの範囲を物理的に拡張する代わり
に浮動小数点演算を実装してもよいが、これらの演算は
更なる命令とソフトウェア・コードを必要とする。さら
に、以上の解決方法は全て、より多くのシリコン、即ち
ハードウエアを必要とし、プロセッサ上に実装するため
に費用がかかる。
【0008】以上のことから、より多くのシリコンを必
要とせず、又はコストを増大せずに、プロセッサ上のレ
ジスタのダイナミックレンジを拡大する方法の必要性が
認められる。
【0009】関連技術を示す特開2000−35875
号公報では、以上の問題を解決する方法として、アキュ
ムレータにアップダウンカウンタ(特開2000−35
875号公報では「オーバーフロー・カウンタ」)を設
ける方法を開示している。「オーバ−フロー・カウン
タ」はアキュムレータのオーバーフロー信号をカウント
するレジスタであり、累算の途中の結果がアキュムレー
タの使用ビット数内の正しい値を表す許容範囲内に収ま
っていないときに前記許容範囲内の所定値以外の値を有
するように機能する。特開2000−35875号公報
は、この「オーバーフロー・カウンタ」を設けること
で、従来大量に必要であった半導体集積回路のゲート量
すなわちシリコン量を増加させることなく、アキュムレ
ータのダイナミックレンジの拡大を実現している。
【0010】しかしながら、特開2000−35875
号公報による方法では以下の問題がある。
【0011】累計演算が終了した時点での最終演算結
果の正当性の問題:累計演算が終了した時の結果が、ア
キュムレータの使用ビット数の許容範囲に収まっている
場合は正しい値を得られるが、アキュムレータの前記許
容範囲に収まっていない場合、即ち、正のオーバーフロ
ーまたは負のオーバーフローが発生した場合、アキュム
レータの演算範囲を前記許容範囲内の正の最大値または
負の最大値に蝕和させる処理をするため、正しい値が得
られない。
【0012】具体的にはアキュムレータが16ビットの
場合、累算の結果が−215より小さいときは−215に、
累算の結果が215−1より大きいときは215−1として
演算結果を飽和させる。このため、真の(16ビット以
上の)データを得ることができない。
【0013】図9を用いて詳細に説明する。
【0014】図9に示すように、累算スタートからの実
際の累積演算の経過が実線のとおりの場合、アキュムレ
ータの内容はアキュムレータの許容範囲を推移し、一旦
オーバーフローを経由してアキュムレータの許容範囲に
戻ってくる。その後、再度オーバーフローに進み累算を
終了する。
【0015】従来の演算回路の動作は、図9において、
累算値が215−1より大きいときは215−1として演算
結果を飽和させる。その後、累算値が減少を始めると、
アキュムレータの内容がP点から減少を始め、実線に倣
って鎖線のように減少する。その後、実線の演算経過に
倣って同様に動作する。この結果、この従来の演算回路
はオーバーフローが発生すると、最終累算値が実際の累
算値と違ったものになる欠点があった。
【0016】上記特開2000−35875号公報の例
の場合はアキュムレータの累算値が215−1より小さい
ときは従来の演算回路と同じであるが、アキュムレータ
の累算値が215−1以上となった場合も正しい値を保持
し続ける点が異なっている。しかし、累算終了時に累算
結果がアキュムレータの許容範囲を超えていた場合(図
9のA点)、演算結果は飽和されて出力する(図9のC
点)。この結果、正しい値と出力値にはA−Cの差が発
生し、正しい値が得られない欠点が存在した。
【0017】複数の変数を同時に演算する場合の問
題:独立した複数の変数に対して交互に演算を行う必要
がある場合、特開2000−35875号公報による方
法では毎回、アキュムレータの拡張部分が入っているカ
ウンタの値(「オーバーフロー・カウンタ」の値)を待
避する必要がある。この待避のための操作がオーバヘッ
ドとなり高速に演算ができない問題がある。
【0018】このような問題の発生する累算には、複素
数の累算がある。複素数の累算では実数側の変数と虚数
側の2つの変数を独立に交互に行う必要がある。例え
ば、実数側の変数の演算から虚数側の変数の演算に切り
替えるとき、実数側の値を保持していたカウンタの内容
を退避する処理が必要となり、この処理のためにオーバ
ーヘッドが生じる。
【0019】本発明の目的は、従来のレジスタ演算に付
随する上記欠点と問題を実質的に除去又は減少させるた
めに、プロセッサ上のレジスタのダイナミックレンジを
拡大する演算方法およびそのための演算回路を提供する
ことである。
【0020】
【課題を解決するための手段】本発明は、上記目的を達
成するために、 (1) 演算方法において、演算器とアキュムレータと
により プロセッサの演算を実行する手順と、制御回路
により 前記演算器のキヤリー信号と前記演算器へのデ
ータバスからの入力データの符 号信号とに規則的に応
じてアップダウンカウンタの内容を前記アキュムレータ
の内容と組み合わせて正しい値になるように制御する制
御信号を前記アップダウンカウンタに出力する手順と、
前記アキュムレータにより 前記アキュムレータの値を
前記データバスと前記演算器に出力する手順と、前記ア
ップダウンカウンタにより 前記アキュムレータの内容
と組み合わせて正しい値となるように制御信号に基づい
て制御する 前記アップダウンカウンタの値を前記デー
タバスに出力する手順と、からなることを特徴とする。 (2) 演算回路において、演算器の演算結果を記憶
し、記憶した内容をデータバスと前記演算器に出力する
アキュムレータと、前記アキュムレータの内容と前記デ
ータバスからのデータの内容を演算する前記演算器と、
前記演算器のキャリー信号と前記演算器への前記データ
バスからの前記データの符号信号とに規則的に応じてア
ップダウンカウンタの内容を前記アキュムレータの内容
と組み合わせて正しい値になるように制御する制御信号
を前記アップダウンカウンタに出力する制御回路と、前
記制御回路から出力される制御信号によって自らの内容
を正しい値の上位部分の値にさせ、その内容を前記アキ
ュムレータの許容範囲の値と組み合わせて正しい値とな
る値として前記データバスに出力するアップダウンカウ
ンタと、からなることを特徴とする。 (3) 演算方法において、演算器とアキュムレータと
により プロセッサの演算を実行する手順と、制御回路
により 前記演算器のオーバーフロー信号と前記演算器
の演算結果の符号信号に規則的に応じて 、アップダウ
ンカウンタの内容をオーバーフロー回数値とする手順
と、前記アキュムレータにより 前記アキュムレータの
値をデータバスと前記演算器に出力する手順と、補正回
路により 前記アップダウンカウンタの値を補正時の前
記アキュムレータの値の前記符号信号に規則的に応じて
その内容を前記アキュムレータの内容と組み合わせて正
しい値になるように補正し、補正した内容を前記データ
バスに出力する手順と、前記アップダウンカウンタによ
り制御回路から出力される制御信号によって自らの内容
をオーバーフローの回数にさせ、その内容を前記アキュ
ムレ一夕の許容範囲を超えたオーバーフローの回数値と
して前記データバスまたは前記補正回路に出力する手順
と、からなることを特徴とする。
【0021】(4) 演算回路において、演算器の演算
結果を記憶し、記憶した内容をデータバスと前記演算器
に出力するアキュムレータと、前記アキュムレータの内
容と前記データバスからのデータの内容を演算する前記
演算器と、前記演算器のオーバーフロー信号と前記演算
器の演算結果の符号信号に規則的に応じてアップダウン
カウンタの内容をオーバーフローの回数になるように制
御信号を前記アップダウンカウンタに出力する制御回路
と、前記制御回路から出力される制御信号によって自ら
の内容を前記オーバーフローの回数値にさせ、その内容
を前記データバスまたは補正回路に出力する前記アップ
ダウンカウンタと、前記アップダウンカウンタの値を補
正時の前記アキュムレータの値の符号信号に従って、内
容を前記アキュムレータの内容と組み合わせて正しい値
になるように補正し、補正した内容を前記データバスに
出力する前記補正回路と、からなることを特徴とする。
【0022】(5) 演算方法において、プロセッサに
より複数のアップダウンカウンタ及び複数のアキュムレ
ータを重複しないで組として選択する手順と、演算器と
前記アキュムレータとにより前記プロセッサの演算を実
行する手順と、制御回路により前記演算器のキヤリー信
号と前記演算器へのデータバスからの入力データの符号
信号に規則的に応じて前記アップダウンカウンタの内容
を前記アキュムレータの内容と組み合わせて正しい値に
なるように制御する制御信号を前記アップダウンカウン
タに出力する手順と、前記アキュムレータにより前記ア
キュムレータの値を前記データバスと前記演算器に出力
する手順と、前記アップダウンカウンタにより前記アキ
ュムレータの内容と組み合わせて正しい値となるように
制御信号に基づいて制御する前記アップダウンカウンタ
の値を前記データバスに出力する手順と、からなること
を特徴とする。
【0023】(6) 演算回路において、重複しないで
複数の内の1つのアップダウンカウンタと組となり、演
算器の演算結果を記憶し、記憶した内容をデータバスと
前記演算器に選択的に出力する複数のアキュムレータ
と、前記アキュムレータの内容と前記データバスからの
データの内容を演算する前記演算器と、前記演算器のキ
ヤリー信号と前記演算器の前記データバスからの前記デ
ータの符号信号に規則的に応じて前記アップダウンカウ
ンタの内容を前記アキュムレータの内容と組み合わせて
正しい値になるように制御する制御信号を前記アップダ
ウンカウンタに出力する制御回路と、前記アキュムレー
タと組となり、前記制御回路から出力される制御信号に
よって自らの内容を前記正しい値の上位部分の値にさ
せ、その内容を前記アキュムレータの許容範囲の値と組
み合わせて正しい値となる値として前記データバスに選
択的に出力する複数の前記アップダウンカウンタと、か
らなることを特激とする演算回路。
【0024】(7) 演算方法において、プロセッサに
より 複数のアップダウンカウンタ及び複数のアキュム
レータを重複しないで組として選択する手順と、演算器
と前記アキュムレータとにより 前記プロセッサの演算
を実行する手順と、制御回路により前記演算器のオーバ
ーフロー信号と前記演算器の演算結果の符号信号とに規
則的に応じて、前記アップダウンカウンタの内容をオー
バーフロー回数値とする手順と、前記アキュムレータに
より複数のアキュムレ一夕の値をデータバスおよび前記
演算器に出力する手順と、前記アップダウンカウンタに
より制御回路から出力される制御信号で自らの内容をオ
ーバーフローの回数にさせ、その内容を前記アキュムレ
ータの許容範囲を超えたオーバーフローの回数値として
前記データバスまたは補正回路に出力する手順と、前記
補正回路により前記アップダウンカウンタの値を補正時
の前記アキュムレータの値の符号信号に規則的に応じて
その内容を前記アキュムレータの内容と組み合わせて正
しい値になるように補正し、その補正した内容を前記デ
ータバスに出力する手順と、からなることを特徴とす
る。
【0025】(8) 演算回路において、重複しないで
複数の内の1つのアップダウンカウンタと組となり、演
算器の演算結果を記憶し、記憶した内容をデータバスと
前記演算器に出力するアキュムレータと、前記アキュム
レータの内容と前記データバスからのデータの内容を演
算する前記演算器と、前記演算器のオーバーフロー信号
と前記演算器の演算結果の符号信号に規則的に応じて前
記アップダウンカウンタの内容をオーバーフローの画数
値になるように制御信号を前記アップダウンカウンタに
出力する制御回路と、前記アキュムレータと組となり、
前記制御回路から出力される制御信号によって自らの内
容を前記オーバーフローの回数値にさせ、その内容を補
正回路または前記データバスに出力する複数の前記アッ
プダウンカウンタと、前記アップダウンカウンタの値を
補正時の前記アキュムレータの値の符号信号にしたがっ
てその内容を前記アキュムレータの内容と組み合わせて
正しい値になるように補正し、補正した内容を前記デー
タバスに出力する補正回路と、からなることを特徴とす
る。 (9) 上記(1)、(3)、(5)および(7)のい
ずれか1項記載の演算方法において、前記制御信号を、
前記演算器のキヤリー信号と前記演算器への前記データ
バスからの入力データの符号信号に規則的に応じて前記
アップダウンカウンタの内容を+1、無変化および−1
のいずれか1つにする前記制御信号としたことを特徴と
する。 (10) 上記(2)、(4)、(6)および(8)の
いずれか1項記載の演算回路において、前記制御信号
を、前記演算器のキャリー信号と前記演算器への前記デ
ータバスからの入力データの符号信号に規則的に応じて
前記アップダウンカウンタの内容を+1、無変化および
−1のいずれか1つにする制御信号としたことを特徴と
する。
【0026】
【発明の実施の形態】以下、本発明の実施の形態を図を
参照して詳細に説明する。
【0027】まず、本発明のダイナミックレンジを拡大
する手法について説明する。
【0028】累算がアキュムレータの使用ビット数によ
り決まる許容範囲を超えてオーバーフローが発生したと
き、アップダウンカウンタには、アキュムレータの許容
範囲を越えた累算値の上位部分に相当する正しい値が入
っている。また、アキュムレータにはこのアキュムレー
タの使用ビット数により決まる値、即ち、許容範囲内の
累算値の下位部分に相当する値が入っている。したがっ
て累算結果がアキュムレータの許容範囲を越えた場合で
も、これら2つのレジスタの値から、最終的な累算値の
正しい値を得ることができるようになっている。
【0029】また、累算の結果、一旦オーバーフローに
なっても、そのオーバーフローの間中正しい値を持って
いる。そのため、オーバーフローの状態で演算が終了し
ても、正しい値を出力することができるので、先の特開
2000−35875号公報に示された方法のような誤
った値を出す不都合が生じない。
【0030】(第1実施例)図1は本発明の第1実施例
を示す図である。
【0031】この説明ではアキュムレータ、データバ
ス、メモリ、演算器のビット幅を16ビットとして説明
する。また、アップダウンカウンタのビット幅を8ビッ
トとする。即ち、この例では本来16ビット幅のアキュ
ムレータに対して8ビット分ダイナミックレンジを拡大
している。
【0032】接続及び各構成部品を説明する。
【0033】以下の説明では、図中の同じ機能を持つ部
品に対しては全て同じ番号を用いている。例えば、第1
実施例の説明での演算器4と第2実施例の説明での演算
器4は同一の機能を持つ。
【0034】データバス2はアキュムレータ1、メモリ
3、演算器4、アップダウンカウンタ5、制御回路6に
接続されている。アキュムレータの「内容」、データバ
スからのデータの「内容」、アップダウンカウンタの
「内容」と用いられている「内容」は、各ビットが値を
有する一連のビットからなるデータをいう。
【0035】演算器4はメモリ3からデータバス2を介
して転送されたデータとアキュムレータ1の値を入力し
て、16ビットの演算を行い、演算結果をアキュムレー
タ1に出力する。また演算器4は、演算のキャリー信号
9を制御回路6に出力する。演算器4は一般的なALU
である。この演算器4の機能は必ずしも以下に限定され
ないが、加算、減算などの演算が可能である。この実施
例では加算演算を例として説明する。
【0036】アキュムレータ1はデータバス2以外に演
算器4に直接接続され、演算器4からの16ビットの演
算結果を格納し、アキュムレータ1の値を演算器4に入
力する。またアキュムレータ1の値は、データバス2を
介してメモリ3に転送することも可能である。
【0037】制御回路6はアップダウンカウンタ5を制
御する。制御回路6の入力は2つある。1つは、演算器
4のデータバス2から接続されている側のデータ入力7
の最上位ビット即ち符号ビット8で、もう1つは演算器
4のキャリー信号9である。制御回路6はこれら2つの
入力からアップダウンカウンタ5の値の変動を制御す
る。具体的には、アップダウンカウンタ5の値を無変化
もしくは+1(1加算する。以下、同じ)、−1(1減
算する。以下、同じ)させる。
【0038】アップダウンカウンタ5は制御回路6から
の制御信号により値を無変化、+1、−1にする。
【0039】次に、第1実施例の動作を説明する。
【0040】図5は第1実施例の動作フロー図である。
【0041】メモリ3に累算すべき複数のデータが入っ
ている状態から、第1実施例の動作は以下のように行わ
れる。
【0042】(1)初期化:ステップS500におい
て、アップダウンカウンタ5の内容、アキュムレータ1
の内容を初期値に初期化する。この説明ではこの初期値
を0とする。
【0043】(2)演算:ステップS501において、
累算の演算を行う。このステップS501は累算すべき
データがなくなるまで行われる。なお、ステップS50
1では以下のステップS503〜S506の4つのステ
ップを実行する。
【0044】(2.1)ステップS503において、メ
モリ3から累算すべきデータをデータバス2に転送す
る。
【0045】(2.2)ステップS504において、ア
キュムレータ1の値とステップS503において、メモ
リ3から転送したデータを演算器4で加算する。この加
算の結果、アキュムレータ1の値は以下のように更新さ
れる。
【0046】アキュムレータ1の値+メモリ3の値→ア
キュムレータ1の値(更新後) このとき演算器4では加算演算のキャリーが発生する場
合がある。その値は、キャリー信号9として制御回路6
に出力される。
【0047】(2.3)ステップS505では、制御回
路6によってアップダウンカウンタ5を制御する。制御
回路6は、ステップS504で演算器4から出力された
キャリー信号9と、ステップS503においてメモリ3
から転送したデータの符号ビットの値すなわち演算器4
のデータ入力7の符号ビット8から表1の制御論理で動
作する。
【0048】アップダウンカウンタ5はこの制御論理で
動作し、値を更新する。アップダウンカウンタ5の値は
累算値の上位部分に相当する値である。即ち、 累算値
がアキュムレータ1の前記許容範囲(例では16進数の
7FFF〜8000)を正の方向に超えている場合は超
えた分の正の値を示し、逆に許容範囲を負の方向に超え
ている場合は、負の値を示している。アップダウンカウ
ンタ5の値が0と等しい場合は累算値はアキュムレータ
1の許容範囲にある。
【0049】
【表1】
【0050】オーバーフロー時のアップダウンカウンタ
の設定は、例えば、カウンタを2ビット、アキュムレー
タを4ビットで例示すると、以下のようになる。 アキュムレータの内容が最大値の状態 →オーバーフ
ロー発生時 負のオーバーフロー 00 1000 → 11
1000 正のオーバーフロー 00 0111 → 01
0111 (2.4)ステップS506では、累算の演算を終了す
るかどうかを判断する。累算すべきデータがまだある場
合(NO)は、ステップS503に再び戻って累算の演
算を続行する。累算すべきデータがもうない場合(YE
S)は、累算の演算を終了する。
【0051】(3)結果出力:ステップS502におい
て、累積演算の結果をデータバス2に出力する。累積演
算の結果、アキュムレータ1にはアキュムレータの使用
ビットの値、即ち、許容範囲内の累算値の下位部分(累
算値の全ビットの内の下位ビット部分)に相当する値が
入っている。一方、アップダウンカウンタ5には、アキ
ュムレータ1の前記許容範囲を超えた、累算値の上位部
分(前記下位ビット部分とで前記累算値の全ビットを構
成する部分)に相当する値が入っている。この累算値は
前記上位部分と前記下位部分で全ビットが構成される。
アキュムレータ1とアップダウンカウンタ5の値をデー
タバス2に出力する。
【0052】以上のように第1実施例によれば、ステッ
プS505での操作によって、アップダウンカウンタ5
には、アキュムレータ1の前記許容範囲を越えた累算値
の前記上位部分に相当する正しい値が入っている。ま
た、アキュムレータ1にはこのアキュムレータ1の前記
許容範囲内の累算値の前記下位部分に相当する値が入っ
ている。したがって累算結果がアキュムレータ1の許容
範囲を越えた場合でも、これら2つのレジスタの値か
ら、最終的な累算値の範囲全体での正しい値を得ること
ができる。
【0053】また、このアキュムレータ1とアップダウ
ンカウンタ5はデータバス2に接続されているので、デ
ータバス2に接続されているレジスタやメモリなどの他
の部分に転送したり、他の部分から参照することができ
る。例えば、アキュムレータ1とアップダウンカウンタ
5の値をデータバス2を介してメモリ3に転送すること
も可能である。
【0054】第1実施例では、アキュムレータ1が16
ビットでアップダウンカウンタ5は8ビットであるの
で、最高で24ビットの累積演算結果を正しい値で得る
ことができる。つまり、8ビットのアップダウンカウン
タ5が本来16ビット幅のアキュムレータ1に対して2
4ビットのダイナミックレンジを提供していることと等
価である。
【0055】このように、累加算演算などで演算器4の
演算結果がアキュムレータ1の許容範囲を超える場合
は、アップダウンカウンタ5は自分のビット範囲におい
てアキュムレータ1に対して必要なだけのダイナミック
レンジの拡大を可能とする。一方、累加算演算以外の一
般的な演算で、演算器4の演算結果がアキュムレータ1
の許容観囲を超えない場合においては、アキュムレータ
1は本来の16ビットのレジスタとして問題なく動作す
る。
【0056】すなわち、アップダウンカウンタ5または
制御回路6は、アキュムレータ1に何の影響も与えない
からである。この場合、プロセッサはアップダウンカウ
ンタ5または制御回路6などの第1実施例による拡張部
分を一切使用することなく、16ビットのアキュムレー
タ1を必要とする一般的な命令を実行することが可能で
ある。
【0057】(第2実施例)
【0058】図2は本発明の第2実施例を示す図であ
る。
【0059】この実施例では、第1実施例と同じよう
に、アキュムレータ、データバス、メモリ、演算器のビ
ット幅を16ビットとして説明する。また、アップダウ
ンカウンタのビット幅を8ビットとする。即ち、この例
では本来16ビット幅のアキュムレータに対して8ビッ
トダイナミックレンジを拡大している。
【0060】次に、接続及び各構成部品の動作を説明す
る。
【0061】データバス2は、演算器4,メモリ3、ア
キュムレータ1、アップダウンカウンタ5、補正回路1
0に接続されている。
【0062】演算器4はメモリ3からデータバス2を介
して転送されたデータとアキュムレータ1の値を入力し
て、16ビットの演算を行い、演算結果をアキュムレー
タ1に出力する。また演算器4は、演算結果のオーバー
フロー信号11と演算結果の符号信号12を制御回路1
6に出力する。演算器4は一般的なALUである。この
演算器4の機能は必ずしも以下に限定されないが、加
算、減算などの演算が可能である。この実施例では加算
演算を行う。
【0063】アキュムレータ1はデータバス2以外に演
算器4に直接接続されている。このアキュムレータ1は
演算器4からの16ビットの演算結果を格納する。ま
た、前述の通り、このアキュムレータ1の値は演算器4
の入力として用いられる。更に、アキュムレータ1の値
は、データバス2を介してメモリ3に転送することも可
能である。
【0064】制御回路16はアップダウンカウンタ5を
制御する。制御回路16の入力は2つある。1つは演算
器4のオーバーフロー信号11で、もう1つは演算結果
の符号信号12である。制御回路16はこれら2つの入
力からアップダウンカウンタ5の値の変更を制御する。
具体的には、アップダウンカウンタ5の値を無変化もし
くは+1、−1させる。
【0065】アップダウンカウンタ5は制御回路16か
らの信号により値を+1、−1、無変化に変更する。
【0066】補正回路10はアキュムレータ1の出力信
号の符号ビット13によってアップダウンカウンタ値を
補正する。
【0067】即ち、アップダウンカウンタ5には、累算
結果がアキュムレータ1の許容範囲を越えた場台発生し
たオーバーフローの回数が入っている。このカウンタ値
は累算値の上記上位部分とは異なるため、累算値の上位
部分の本当の値を得るためには補正が必要となる。カウ
ンタ値を補正し、累算値の上位部分の本当の値を得るた
めの操作を補正回路10で実現する。
【0068】次に、第2実施例の動作を説明する。
【0069】図6は第2実施例の動作フロー図である。
【0070】メモリ3に累算すべき複数のデータが入っ
ている。
【0071】第2実施例の動作は以下のように行われ
る。
【0072】(1)初期化:ステップS600におい
て、アップダウンカウンタ5、アキュムレータ1を初期
値に初期化する。第2実施例ではこの初期値を0とす
る。
【0073】(2)演算:ステップS601において、
累算の演算を行う。このステップS601は累算すべき
データがなくなるまで行われる。なお、ステップS60
1では以下のステップS603〜S606の4つのステ
ップを実行する。
【0074】(2.1)ステップS603において、メ
モリ3から累算すべきデータをデータバス2に転送す
る。
【0075】(2.2)ステップS604において、ア
キュムレータ1の値とステップS603においてメモリ
3から転送したデータを演算器4で加算演算する。演算
の結果、アキュムレータ1の値は以下のように更新され
る。
【0076】アキュムレータ1の値+メモリ3の値→ア
キュムレータ1の値(更新後)この時、演算器4では加
算演算のオーバーフローが発生する場合がある。その値
は、オーバーフロー信号11として制御回路16に出力
される。また、演算器4の演算結果の符号信号12も制
御回路16に出力される。
【0077】(2.3)ステップS605では、制御回
路16によってアップダウンカウンタ5を制御する。制
御回路16は、ステップS602で演算器4から出力さ
れたオーバーフロー信号11と演算結果の符号信号12
から表2の制御論理で動作する。
【0078】
【表2】
【0079】アップダウンカウンタ5はこの制御論理で
動作し、値を更新する。アップダウンカウンタ5に入っ
ている値は正のオーバーフローが発生したとき+1し、
負のオーバーフローが発生したとき一1した値である。
この値は累算値がアキュムレータ1の許容範囲(例では
16進数の7FFF〜8000)を正の方向に越えてい
る場合は正の値を示し、逆に許容範囲を負の方向に超え
ている場合は、負の値を示している。アップダウンカウ
ンタ5の値が0と等しい場合は累算値はアキュムレータ
1の許容範囲にある。 (2.4)ステップS606では、累算の演算を終了す
るかどうかを判断する。累算すべきデータがまだある場
合(NO)は、ステップS603に再び戻って累算の演
算を続行する。累算すべきデータがもうない場合(YE
S)は、累算の演算を終了する。 (3)結果出力:ステップS602において、補正回路
10によってアップダウンカウンタ5の値の補正を行
い、累積演算の結果をデータバス2に出力する。
【0080】ステップS602はステップS607とス
テップS608を含む。ステップS607とステップS
608は並列に行う。
【0081】(3.1)ステップS607において、補
正回路10によってアップダウンカウンタ5の値を補正
しデータバス2に出力する。累算結果がアキュムレータ
1の許容範囲を越えた場合、アップダウンカウンタ5に
は、発生したオーバーフローの回数が入っている。この
カウンタ値はアキュムレータ1の許容範囲を超えた累算
値の上位部分とは異なるため、累算値の上位部分の正し
い値を得るためには補正が必要となる。カウンタ値を補
正し、累算値の上位部分の正しい値を得るための操作を
補正回路10で実現する。補正回路10は表3の論理で
動作する。
【0082】
【表3】
【0083】補正したアップダウンカウンタ5の値はデ
ータバス2に出力する。
【0084】(3.2)ステップS608では、アキュ
ムレータ1の値をデータバス2に出力する。
【0085】以上のように第2実施例によれば、ステッ
プS607において補正回路10で補正されたアップダ
ウンカウンタ5の値は、アキュムレータ1の許容範囲を
越えた累算値の上位部分に相当する正しい値になってい
る。また、アキュムレータ1にはこのアキュムレータ1
の使用ビットの許容範囲内の値、即ち、累算値の下位部
分に相当する値が入っている。累算値の全ビットは、前
記上位部分と前記下位部分のビットからなる。したがっ
て累算結果がアキュムレータ1の許容範囲を越えた場合
でも、これら2つのレジスタの値から、最終的な累算値
の正しい値を得ることができる。
【0086】また、このアキュムレータ1とアップダウ
ンカウンタ5はデータバス2に接続されているので、デ
ータバス2に接続されているレジスタやメモリなどの他
の部分に転送したり、他の部分から参照することができ
る。例えば、アキュムレータ1とアップダウンカウンタ
5の値をデータバス2を介してメモリ3に転送すること
も可能である。
【0087】アップダウンカウンタ5には発生したオー
バーフローの回数が入っているので、本当の値が必要の
とき、アップダウンカウンタ5の値を補正回路10で変
換してデータバス2へ送り出す。割り込み処理に対処し
て退避するときなど、本当の値に戻さなくてよいときは
アップダウンカウンタ5の内容をデータバス2を介して
そのままメモリ3へ転送し、またそこからアップダウン
カウンタ5へ戻す。
【0088】第2実施例では、アキュムレータ1が16
ビットでアップダウンカウンタ5は8ビットであるの
で、最高で24ビットの累積結果を正しい値で得ること
ができる。つまり、8ビットのアップダウンカウンタ5
が本来16ビット幅のアキュムレータ1に対して24ビ
ットのダイナミックレンジを提供していることと等価で
ある。
【0089】このように、累加算演算などで演算器4の
演算結果がアキュムレータ1の許容範囲を超える場合
は、アップダウンカウンタ5は自分のビット範囲におい
てアキュムレータ1に対して必要なだけのダイナミック
レンジを拡大する。
【0090】一方、累加算演算以外の一般的な演算で、
演算器4の演算結果がアキュムレータ1の許容範囲を超
えない場合においては、アキュムレータ1は本来の16
ビットのレジスタとして問題なく動作する。なぜなら
ば、アップダウンカウンタ5または制御回路16または
補正回路10は、アキュムレータ1に何の影響も与えな
いからである。この場合、プロセッサはアップダウンカ
ウンタ5、制御回路16、補正回路10などの第2実施
例による拡張部分を一切使用せず、16ビットのアキュ
ムレータ1を必要とする一般的な演算を実行可能であ
る。
【0091】(第3実施例)図3は、本発明の第3実施
例を示す図である。これは第1実施例で示されるダイナ
ミックレンジを拡大する装置を複数の変数に対応できる
ようにしたものである。
【0092】第3実施例では、複素数の累算を念頭にお
いて、2変数の累算を例として説明する。なお、アキュ
ムレータ数、アップダウンカウンタ数を増やすことで、
これより多数の複数の変数に対応させることも当然可能
である。
【0093】この説明では、第1実施例と同じように、
アキュムレータ、データバス、メモリ、演算器のビット
幅を16ビットとして説明する。また、アップダウンカ
ウンタのビット幅を8ビットとする。即ち、この例では
本来16ビット幅のアキュムレータに対して8ビットの
ダイナミックレンジを拡大している。
【0094】接続及び各構成部品の動作を説明する。
【0095】データバス2は、メモリ3、セレクタを介
したアキュムレータ1Aおよびアキュムレータ1B、直
接およびセレクタを介したアップダウンカウンタ5Aお
よびアップダウンカウンタ5B、演算器4、制御回路6
に接続されている。
【0096】演算器4はメモリ3からデータバス2を介
して転送されたデータとアキュムレータ1A又はアキュ
ムレータ1Bの値を入力として、16ビットの演算を行
い、演算結果を演算器4の入力の値として用いたアキュ
ムレータに出力する。また演算器4は、演算のキャリー
信号9を制御回路6に出力する。演算器4は一般的なA
LUである。この演算器4の機能は必ずしも以下に限定
されないが、加算、減算などの演算が可能である。この
実施例では加算演算を行う。
【0097】アキュムレータ1A、アキュムレータ1B
及びアップダウンカウンタ5A、アップダウンカウンタ
5Bは、アキュムレータ及びアップダウンカウンタの組
で1組として選択制御される(この例ではアキュムレー
タ1A及びアップダウンカウンタ5Aで1つの組、アキ
ュムレータ1B及びアップダウンカウンタ5Bで別の組
を構成する。)。アキュムレータ及びアップダウンカウ
ンタの組は、ソフトに基づくプロセッサの設定によりど
ちらかが選択されようになっている。
【0098】アキュムレータ1A、アキュムレータ1B
はデータバス2以外に演算器4にも直接接続されてい
る。これらのアキュムレータのうち、演算を行う変数の
組のアキュムレータは演算器4からの16ビットの演算
結果を格納する。アキュムレータの値は演算器4の入力
として用いられる。また、この値をデータバス2を介し
てメモリ3に転送することも可能である。
【0099】制御回路6はアップダウンカウンタ5A、
アップダウンカウンタ5Bを制御する。制御回路6の入
力は2つある。1つは、演算器4のデータバス2から接
続されている側の入力7の最上位ビット即ち符号ビット
8で、もう1つは演算器4のキャリー信号9である。制
御回路6はこれら2つの入力からアップダウンカウンタ
5A、アップダウンカウンタ5Bの値の変更を制御す
る。具体的には、これらのアップダウンカウンタの値を
無変化もしくは+1、−1させる。
【0100】アップダウンカウンタ5A、アップダウン
カウンタ5Bは制御回路6からの信号により値を+1、
一1、無変化に変更する。
【0101】次に、第3実施例の動作を説明する。2変
数の累算の典型的な例として複素数の累算を考える。図
7に第3実施例の動作フローを図示する。
【0102】メモリ3には累算すべき複数の複素数デー
タが入っている。その複素数データを実数、虚数に分け
て累算する。
【0103】第3の実施例の動作は以下のように行われ
る。
【0104】(1)初期化:ステップS700におい
て、2つのアップダウンカウンタ5Aおよび5B、2つ
のアキュムレータ1Aおよび1Bを初期値に初期化す
る。この説明ではこの初期値を0とする。
【0105】(2)演算:ステップS701において累
算の演算を行う。このステップS701は累算すべきデ
ータがなくなるまで行われる。なお、ステップS701
では以下のステップS703〜S707の5つのステッ
プを実行する。
【0106】(2.1)ステップS703において、演
算を行う変数のアキュムレータとアップダウンカウンタ
の組を選択する。
【0107】(2.2)ステップS704において、メ
モリ3から選択された変数の累算すべきデータをデータ
バス2に転送する。
【0108】(2.3)ステップS705において、選
択されたアキュムレータの値とステップS704におい
てメモリ3から転送したデータを演算器4で加算する。
【0109】(2.3.1)実数側が選択されていると
き、アップダウンカウンタ5A及びアキュムレータ1A
の組み合わせが選択される。アキュムレータ1Aの値は
以下のように更新される。
【0110】アキュムレータ1Aの値+メモリ3の値→
アキュムレータ1Aの値(更新後) このとき演算器4では加算演算のキャリーが発生する場
合がある。その値は、キャリー信号9として制御回路6
に出力される。
【0111】(2.3.2)虚数側が選択されていると
き、アップダウンカウンタ5B及びアキュムレータ1B
の組み合わせが選択される。アキュムレータ1Bの値は
以下のように更新される。
【0112】アキュムレータ1Bの値+メモリ3の値→
アキュムレータ1Bの値(更新後) このとき演算器4では加算演算のキャリーが発生する場
合がある。その値は、キャリー信号9として制御回路6
に出力される。
【0113】(2.4)ステップS706では、制御回
路6によってアップダウンカウンタを制御する。制御す
るアップダウンカウンタは、実数側が選択されていれば
アップダウンカウンタ5A、虚数側が選択されていれば
アップダウンカウンタ5Bである。制御回路6は、ステ
ップS702で演算器4から出力されたキャリー信号9
と、ステップS704においてメモリ3から転送された
データの符号ビットの値すなわち演算器4のデータ入力
7の符号ビット8から表4の制御論理で動作する。
【0114】
【表4】
【0115】アップダウンカウンタはこの制御論理で動
作し、値を更新する。アップダウンカウンタ5A、アッ
プダウンカウンタ5Bの値はそれぞれ対応する変数の累
算値の上位部分に相当する値である。
【0116】累算値がアキュムレータの許容範囲(例で
は16進数の7FFF〜8000)を正の方向に超えて
いる場合は正の値を示し、逆に許容範囲を負の方向に超
えている場合は、負の値を示している。アップダウンカ
ウンタの値が0と等しい場合は累算値はアキュムレータ
の許容範囲にある。
【0117】(2.5)ステップS707では、累算の
演算を終了するかどうかを判断する。累算すべきデータ
がまだある場合(NO)は、ステップS703に再び戻
って累算の演算を続行する。累算すべきデータがもうな
い場合(YES)、累算の演算を終了する。
【0118】(3)結果出力:ステップS702におい
て累積演算の結果をデータバス2に出力する。
【0119】累積演算の結果、それぞれのアキュムレー
タには許容範囲内の累算値の下位部分に相当する値が入
っている。一方、それぞれのアップダウンカウンタには
アキュムレータの許容範囲を超えた累算値の上位部分の
正しい値が入っている。データは、アップダウンカウン
タ5A及びアキュムレータ1Aに実数データが、アップ
ダウンカウンタ5B及びアキュムレータ1Bに虚数デー
タが入っている。2つのアキュムレータの値と2つのア
ップダウンカウンタの値をデータバス2に出力する。
【0120】以上のように第3実施例によれば、ステッ
プS706の操作により、アップダウンカウンタ(アッ
プダウンカウンタ5A、アップダウンカウンタ5B)に
はアキュムレータ(アキュムレータ1A、アキュムレー
タ1B)の許容範囲を越えた累算値の上位部分に相当す
る値が入っている。したがって実数、虚数の累算結果が
これらのアキュムレータの許容範囲を越えた場合でも、
これらのレジスタの値から、最終的な累算値の範囲全体
での正しい値を得ることができる。
【0121】また、これらのアキュムレータとアップダ
ウンカウンタはデータバス2に接続されているので、デ
ータバス2に接続されているレジスタやメモリ、などの
他の部分に転送したり、他の部分から参照することがで
きる。例えば、アキュムレータ1Aとアップダウンカウ
ンタ5Aの値をデータバス2を介してメモリ3に転送す
ることも可能である。
【0122】第3実施例では、第1実施例と同じよう
に、2つのアキュムレータが16ビットで、対応するそ
れぞれのアップダウンカウンタは8ビットであるので、
最高で24ビットの累積結果を正しい値で得ることがで
き、これは24ビットのダイナミックレンジを提供して
いることと等価である。
【0123】このように、累加算演算などで演算器4の
演算結果がアキュムレータ1A、アキュムレータ1Bの
許容観囲を超える場合は、対応するアップダウンカウン
タが自分のビット範囲においてアキュムレータに対して
必要なだけのダイナミックレンジを拡大する。一方、累
加算演算以外の一般的な演算で、演算器4の演算結果が
これらのアキュムレータの許容範囲を超えない場合にお
いては、これらのアキュムレータは本来の16ビットの
レジスタとして問題なく動作する。
【0124】すなわち、これらのアップダウンカウンタ
5A、アップダウンカウンタ5Bおよび又制御回路6
は、これらのアキュムレータ1A、アキュムレータ1B
に何の影響も与えないからである。この場合、プロセッ
サはアップダウンカウンタ5A、アップダウンカウンタ
5Bまたは制御回路6などの第3の実施例による拡張部
分を一切使用せず、16ビットのアキュムレータを必要
とする一般的な演算を実行可能である。
【0125】アップダウンカウンタ5A、アップダウン
カウンタ5Bの内容は、第1実施例の場合と同様に正し
い値が入っている。
【0126】以上のように、第3実施例では第1実施例
と同じ効果を得ることができる。
【0127】また第3実施例では、2つのアキュムレー
タとそれに対応するアップダウンカウンタの組を選択す
ることによって、演算対象の変数(実数、虚数)を切り
替えることができる。このアキュムレータとそれに対応
したアップダウンカウンタの組は、演算の対象となる変
数の数(複素数の累算の場合は2)だけあるので、演算
を行う対象の変数を変更する際に、レジスタ値を退避す
る必要がない。このため、レジスタ値の退避を行う方法
に比べて、退避の際に生じるオーバーヘッドが全くな
い。複素数の累算のように、複数の変数を交互に演算す
る必要のある場合、演算を行う対象の変数を切り替える
機会が多い。例えば、複素数の累算の場合は、少なくと
も累算する複素数の数だけある。したがって、このレジ
スタ値の退避のためのオーバーヘッドをなくすことによ
り演算が高速化される。また、この変数の切り替えのた
めの操作は短時間で行うことができる。
【0128】セレクタはアップダウンカウンタ5A、ア
ップダウンカウンタ5Bのいづれか一方の出力だけを取
り出せるように切り換える機能を有する。
【0129】(第4実施例)
【0130】図4は本発明の第4実施例を示す図であ
る。
【0131】これは第2実施例で示されるダイナミック
レンジを拡大する装置を複数の変数に対応できるように
したものである。
【0132】第4実施例では、複素数の累算を念頭にお
いた例として2変数の累算を説明する。なお、アキュム
レータ数、アップダウンカウンタ数を増やすことで、こ
れより多数の複数の変数に対応させることも簡単に可能
である。
【0133】この説明では、第1実施例と同じように、
アキュムレータ、データバス、メモリ、演算器のビット
幅を16ビットとして説明する。また、アップダウンカ
ウンタのビット幅を8ビットとする。即ち、この例では
本来16ビット幅のアキュムレータに対して8ビットの
ダイナミックレンジを拡大している。
【0134】接続及び各構成部品の動作を説明する。
【0135】データバス2は、メモリ3、セレクタを介
したアキュムレータ1A又はアキュムレータ1B、直接
又はセレクタを介したアップダウンカウンタ5A、アッ
プダウンカウンタ5B、演算器4、補正回路10、に接
続されている。
【0136】演算器4は16ビットの演算を行い演算結
果とオーバーフロー信号11、演算結果の符号信号12
を出力する。演算器4は一般的なALUである。この実
施例では加算演算を行う。
【0137】アキュムレータ1A、アキュムレータ1B
及びアップダウンカウンタ5A、アップダウンカウンタ
5Bは、アキュムレータ及びアップダウンカウンタの組
で1組として選択制御される(この例ではアキュムレー
タ1A及びアップダウンカウンタ5Aで1つの組、アキ
ュムレータ1B及びアップダウンカウンタ5Bで別の組
を構成する。)。アキュムレータ及びアップダウンカウ
ンタの組はどちらかが選択されようになっている。
【0138】アキュムレータ1A、アキュムレータ1B
はデータバス2以外に演算器4にもセレクタを介して接
続されている。これらのアキュムレータのうち、演算を
行う変数の組のアキュムレータは演算器4からの16ビ
ットの演算結果を格納する。アキュムレータの値は演算
器4の入力として用いられる。また、この値をデータバ
ス2を介してメモリ3に転送することも可能である。
【0139】制御回路16はアップダウンカウンタ5
A、アップダウンカウンタ5Bを制御する。制御回路1
6の入力は2つある。1つは演算器4のオーバーフロー
信号11で、もう1つは演算結果の符号信号12であ
る。制御回路16はこれら2つの入力によりこれらのア
ップダウンカウンタの値の変動を制御する。具体的に
は、これらのアップダウンカウンタの値を無変化もしく
は+1、−1させる。
【0140】アップダウンカウンタ5A、アップダウン
カウンタ5Bは制御回路16からの信号により値を+
1、−1、無変化にする。補正回路10はアキュムレー
タ1A、アキュムレータ1Bのうち選択されたアキュム
レータの符号ビット13によってアップダウンカウンタ
値を修正する。
【0141】第4実施例の動作を説明する。2変数の累
算の典型的な例として複素数の累算を考える。
【0142】図8は第4実施例の動作フロー図である。
【0143】メモリ3に累算すべき複数の複素数データ
が入っている。その複素数データを実数、虚数に分けて
累算する。
【0144】第4実施例の動作は以下のように行われ
る。
【0145】(1)初期化:ステップS800におい
て、2つのアップダウンカウンタ、2つのアキュムレー
タを初期値に初期化する。この説明ではこの初期値を0
とする。
【0146】(2)演算:ステップS801において、
累算の演算を行う。このステップS801は累算すべき
データがなくなるまで行われる。なお、ステップS80
1では以下のステップS803〜S807の5つのステ
ップを実行する。
【0147】(2.1)ステップS803において演算
を行う変数の組のアキュムレータとアップダウンカウン
タを選択する。
【0148】(2.2)ステップS804において、メ
モリ3から選択された変数の累算すべきデータをデータ
バス2に転送する。
【0149】(2.3)ステップS805において、選
択されたアキュムレータの値とステップS704におい
てメモリ3から転送したデータを演算器4で加算する。
【0150】(2.3.1)実数側を選択されていると
き、アップダウンカウンタ5A及びアキュムレータ1A
の組み合わせが選択される。アキュムレータ1Aの値は
以下のように更新される。
【0151】アキュムレータ1Aの値+メモリ3の値→
アキュムレータ1Aの値(更新後) この時、演算器4では加算演算のオーバーフローが発生
する場合がある。その値は、オーバーフロー信号11と
して制御回路16に出力される。また、演算器4の演算
結果の符号信号12も制御回路16に出力される。
【0152】(2.3.2)虚数側を選択されていると
き、アップダウンカウンタ5B及びアキュムレータ1B
の組み合わせが選択される。アキュムレータ1Bの値は
以下のように更新される。
【0153】アキュムレータ1Bの値+メモリ3の値→
アキュムレータ1Bの値(更新後) この時、演算器4では加算演算のオーバーフローが発生
する場合がある。その値は、オーバーフロー信号11と
して制御回路16に出力される。また、演算器4の演算
結果の符号信号12も制御回路16に出力される。
【0154】(2.4)ステップS806では、制御回
路16によってアップダウンカウンタを制御する。制御
するアップダウンカウンタは、実数側が選択されていれ
ばアップダウンカウンタ5A、虚数側が選択されていれ
ばアップダウンカウンタ5Bである。制御回路16は、
ステップS802で演算器4から出力されたオーバーフ
ロー信号11と演算結果の符号信号12から表5の制御
論理で動作する。
【0155】
【表5】
【0156】2つのアップダウンカウンタはこの制御論
理で動作し、値を更新する。
【0157】これらのアップダウンカウンタに入ってい
る値は対応するアキュムレータが正のオーバーフローが
発生したとき+1し、負のオーバーフローが発生したと
き−1した値である。これらの値は、累算値がアキュム
レータの許容範囲(例では16進数の7FFF〜800
0)を正の方向に超えている場合は正の値を示し、逆に
許容観囲を負の方向に超えている場合は、負の値を示し
ている。アップダウンカウンタの値が0と等しい場合は
累算値はアキュムレータの許容範囲にある。
【0158】(2.6)ステップS807では、累算の
演算を終了するかどうかを判断する。累算すべきデータ
がまだある場合(NO)は、ステップS803に再び戻
って累算の演算を続行する。累算すべきデータがもうな
い場合(YES)、累算の演算を終了する。
【0159】(3)結果出力:ステップS802におい
て累積演算の結果をデータバス2に出力する。
【0160】ステップS802はステップS808とス
テップS809を含む。ステップS808とステップS
809は並列に行う。
【0161】(3.1)ステップS808においてアッ
プダウンカウンタの値を補正回路10により補正しデー
タバス2に出力する。
【0162】(3.1.1)実数側が選択されていると
き、アップダウンカウンタ5A及びアキュムレータ1A
の組み合わせが選択される。アップダウンカウンタ5A
には、累算結果がアキュムレータ1Aの許容範囲を越え
た場合発生したオーバーフローの回数が入っている。こ
のカウンタ値は累算値の上位部分とは異なるため累算値
の上位部分の本当の値を得るためには補正が必要とな
る。カウンタ値を補正し、累算値の上位部分の本当の値
を得るための操作を補正回路10で実現する。このとき
に使用されるアキュムレータ符号はアキュムレータ1A
の符号を使用する。
【0163】(3.1.2)虚数側が選択されていると
き、する。アップダウンカウンタ5B及びアキュムレー
タ1Bの組み合わせが選択される。アップダウンカウン
タ5Bには、累算結果がアキュムレータ1Bの許容範囲
を越えた場合発生したオーバーフローの回数が入ってい
る。このカウンタ値は累算値の上位部分とは異なるため
累算値の上位部分の正しい値を得るためには補正が必要
となる。カウンタ値を補正し、累算値の上位部分の正し
い値を得るための操作を補正回路10で実現する。この
ときに使用されるアキュムレータ符号はアキュムレータ
1Bの符号を使用する。
【0164】補正回路10は表6の論理で動作する。
【0165】
【表6】
【0166】補正した2つのアップダウンカウンタの値
をデータバス2に出力する。
【0167】(3.2)ステップS809において2つ
のアキュムレータの値をデータバス2に出力する。
【0168】データは、アキュムレータ1に実数データ
が、アキュムレータ1Bに虚数データが入っている。2
つのアキュムレータの値をデータバス2に出力する。
【0169】以上のように第4実施例によれば、ステッ
プS806の操作により、アップダウンカウンタ(アッ
プダウンカウンタ5A、アップダウンカウンタ5B)に
はアキュムレータ(アキュムレータ1A、アキュムレー
タ1B)の許容範囲を越えたオーバーフローの回数、即
ち、累算値の上位部分に対応する回数の値が入ってい
る。したがって実数、虚数の累算結果がこれらのアキュ
ムレータ1の許容範囲を越えた場合でも、これらのレジ
スタの値から、最終的な累算値の範囲全体での正しい値
を得ることができる。
【0170】また、これらのアキュムレータとアップダ
ウンカウンタはデータバス2に接続されているので、デ
ータバス2に接続されているレジスタやメモリなどの他
の部分に転送したり、他の部分から参照することができ
る。例えば、アキュムレータ1Aとアップダウンカウン
タ5Aの値をデータバス2を介してメモリ3に転送する
ことも可能である。
【0171】第4実施例では、第1実施例と同じよう
に、2つのアキュムレータが16ビットで、対応するそ
れぞれのアップダウンカウンタは8ビットであるので、
最高で24ビットの累積結果を正しい値で得ることがで
き、これは24ビットのダイナミックレンジを提供して
いることと等価である。
【0172】このように、累加算演算などで演算器4の
演算結果がアキュムレータ1A、アキュムレータ1Bの
許容範囲を超える場合は、対応するアップダウンカウン
タはアキュムレータに対して必要なだけのダイナミック
レンジを拡大する。一方、累加算演算以外の一般的な演
算で、演算器4の演算結果がこれらのアキュムレータの
許容範囲を超えない場合においては、これらのアキュム
レータは本来の16ビットのレジスタとして問題なく動
作する。
【0173】すなわち、これらのアップダウンカウンタ
5A、アップダウンカウンタ5B、制御回路16、補正
回路10は、これらのアキュムレータに何の影響も与え
ないからである。この場合、プロセッサはアップダウン
カウンタ5A、アップダウンカウンタ5B又は制御回路
16、補正回路10などの第4の実施例による拡張部分
を一切使用せず、16ビットのアキュムレータのみを用
いる一般的な演算を行う。
【0174】以上のように、第4実施例では第2実施例
と同じ効果を得ることができる。
【0175】また第4実施例では、2つのアキュムレー
タとそれに対応するアップダウンカウンタの組を選択す
ることによって、演算対象の変数(実数、虚数)を切り
替えることができる。このアキュムレータとそれに対応
したアップダウンカウンタの組は、演算の対象となる変
数の数(複素数の累算の場合は2)だけあるので、演算
を行う対象の変数を変更する際に、レジスタ値を退避す
る必要がない。このため、レジスタ値の退避を行う方法
に比べて、退避の際に生じるオーバーヘッドが全くな
い。
【0176】すなわち、複素数の累算のように、複数の
変数を交互に演算する必要のある場合、演算を行う対象
の変数を切り替える機会が多い。例えば、複素数の累算
の場合は、少なくとも累算する複素数の数だけある。し
たがって、このレジスタ値の退避のためのオーバーヘッ
ドをなくすことにより演算が高速化される。また、この
変数の切り替えのための操作は短時間で行うことができ
る。
【0177】これは第3実施例と同じ効果である。
【0178】(利用形態)第1実施例、第2実施例、第
3実施例、第4実施例では、アップダウンカウンタの値
とアキュムレータの符号ビットの値を調べることで特開
2000−35875号公報による方法に示されるアキ
ュムレータの飽和動作と同じ動作を実現することも可能
である。
【0179】
【発明の効果】以上、詳細に説明したように、本発明に
よれば次のような効果を奏する。
【0180】累加算演算などで演算器の演算結果がアキ
ュムレータの許容範囲を超える場合は、アップダウンカ
ウンタはアキュムレータに対して必要なだけのダイナミ
ックレンジを拡大する。一方、累加算演算以外の一般的
な演算で、演算器の演算結果がアキュムレータの許容観
囲を超えない場合においては、アキュムレータは本来の
16ビットのレジスタとして問題なく動作する。
【0181】2つのアキュムレータとそれに対応するア
ップダウンカウンタの組を選択することによって、演算
対象の変数(実数、虚数)を切り替えることができる。
このアキュムレータとそれに対応したアップダウンカウ
ンタの組は、演算の対象となる変数の数(複素数の累算
の場合は2)だけあるので、演算を行う対象の変数を変
更する際に、レジスタ値を退避する必要がない。このた
め、レジスタ値の退避を行う方法に比べて、退避の際に
生じるオーバーヘッドが全くない。
【0182】すなわち、複素数の累算のように、複数の
変数を交互に演算する必要のある場合、演算を行う対象
の変数を切り替える機会が多い。例えば、複素数の累算
の場合は、少なくとも累算する複素数の数だけある。し
たがって、このレジスタ値の退避のためのオーバーヘッ
ドをなくすことにより演算が高速化される。また、この
変数の切り替えのための操作は短時間で行うことができ
る。
【0183】アップダウンカウンタの値を補正回路を介
すれば正しい値に変換でき、補正回路を介さなければ処
理速度が速くできる。
【図面の簡単な説明】
【図1】本発明の第1実施例を示す図である。
【図2】本発明の第2実施例を示す図である。
【図3】本発明の第3実施例を示す図である。
【図4】本発明の第4実施例を示す図である。
【図5】本発明の第1実施例の動作フローを示す図であ
る。
【図6】本発明の第2実施例の動作フローを示す図であ
る。
【図7】本発明の第3実施例の動作フローを示す図であ
る。
【図8】本発明の第4実施例の動作フローを示す図であ
る。
【図9】本発明の解決原理を示す図である。
【符号の説明】
1、1A、1B アキュムレータ 2 データバス 3 メモリ 4 演算器 5、5A、5B アップダウンカウンタ 6、16 制御回路 7 データ入力 8、13 符号ビット 9 キャリー信号 10 補正回路 11 オーバーフロー信号 12 符号信号
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/00 G06F 7/38

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 演算方法において、演算器とアキュムレ
    ータとによりプロセッサの演算を実行する手順と、制御
    回路により前記演算器のキヤリー信号と前記演算器への
    データバスからの入力データの符号信号とに規則的に応
    じてアップダウンカウンタの内容を前記アキュムレータ
    の内容と組み合わせて正しい値になるように制御する制
    御信号を前記アップダウンカウンタに出力する手順と、
    前記アキュムレータにより前記アキュムレータの値を前
    記データバスと前記演算器に出力する手順と、前記アッ
    プダウンカウンタにより前記アキュムレータの内容と組
    み合わせて正しい値となるように制御信号に基づいて制
    御する前記アップダウンカウンタの値を前記データバス
    に出力する手順と、からなることを特徴とする演算方
    法。
  2. 【請求項2】 演算器の演算結果を記憶し、記憶した内
    容をデータバスと前記演算器に出力するアキュムレータ
    と、前記アキュムレータの内容と前記データバスからの
    データの内容を演算する前記演算器と、前記演算器のキ
    ャリー信号と前記演算器への前記データバスからの前記
    データの符号信号とに規則的に応じてアップダウンカウ
    ンタの内容を前記アキュムレータの内容と組み合わせて
    正しい値になるように制御する制御信号を前記アップダ
    ウンカウンタに出力する制御回路と、前記制御回路から
    出力される制御信号によって自らの内容を正しい値の上
    位部分の値にさせ、その内容を前記アキュムレータの許
    容範囲の値と組み合わせて正しい値となる値として前記
    データバスに出力するアップダウンカウンタと、からな
    ることを特徴とする演算回路。
  3. 【請求項3】 演算器とアキュムレータとによりプロセ
    ッサの演算を実行する手順と、制御回路により前記演算
    器のオーバーフロー信号と前記演算器の演算結果の符号
    信号に規則的に応じて、アップダウンカウンタの内容を
    オーバーフロー回数値とする手順と、前記アキュムレー
    タにより前記アキュムレータの値をデータバスと前記演
    算器に出力する手順と、補正回路により前記アップダウ
    ンカウンタの値を補正時の前記アキュムレータの値の前
    記符号信号に規則的に応じてその内容を前記アキュムレ
    ータの内容と組み合わせて正しい値になるように補正
    し、補正した内容を前記データバスに出力する手順と、
    前記アップダウンカウンタにより制御回路から出力され
    る制御信号によって自らの内容をオーバーフローの回数
    にさせ、その内容を前記アキュムレータの許容範囲を超
    えたオーバーフローの回数値として前記データバスまた
    は前記補正回路に出力する手順と、からなることを特徴
    とする演算方法。
  4. 【請求項4】 演算器の演算結果を記憶し、記憶した内
    容をデータバスと前記演算器に出力するアキュムレータ
    と、前記アキュムレータの内容と前記データバスからの
    データの内容を演算する前記演算器と、前記演算器のオ
    ーバーフロー信号と前記演算器の演算結果の符号信号に
    規則的に応じてアップダウンカウンタの内容をオーバー
    フローの回数になるように制御信号を前記アップダウン
    カウンタに出力する制御回路と、前記制御回路から出力
    される制御信号によって自らの内容を前記オーバーフロ
    ーの回数値にさせ、その内容を前記データバスまたは補
    正回路に出力する前記アップダウンカウンタと、前記ア
    ップダウンカウンタの値を補正時の前記アキュムレータ
    の値の符号信号に従って、内容を前記アキュムレータの
    内容と組み合わせて正しい値になるように補正し、補正
    した内容を前記データバスに出力する前記補正回路と、
    からなることを特徴とする演算回路。
  5. 【請求項5】 プロセッサにより複数のアップダウンカ
    ウンタ及び複数のアキュムレータを重複しないで組とし
    て選択する手順と、演算器と前記アキュムレータとによ
    り前記プロセッサの演算を実行する手順と、制御回路に
    より前記演算器のキヤリー信号と前記演算器へのデータ
    バスからの入力データの符号信号に規則的に応じて前記
    アップダウンカウンタの内容を前記アキュムレータの内
    容と組み合わせて正しい値になるように制御する制御信
    号を前記アップダウンカウンタに出力する手順と、前記
    アキュムレータにより前記アキュムレータの値を前記デ
    ータバスと前記演算器に出力する手順と、前記アップダ
    ウンカウンタにより前記アキュムレータの内容と組み合
    わせて正しい値となるように制御信号に基づいて制御す
    る前記アップダウンカウンタの値を前記データバスに出
    力する手順と、からなることを特徴とする演算方法。
  6. 【請求項6】 重複しないで複数の内の1つのアップダ
    ウンカウンタと組となり、演算器の演算結果を記憶し、
    記憶した内容をデータバスと前記演算器に選択的に出力
    する複数のアキュムレータと、前記アキュムレータの内
    容と前記データバスからのデータの内容を演算する前記
    演算器と、前記演算器のキヤリー信号と前記演算器の前
    記データバスからの前記データの符号信号に規則的に応
    じて前記アップダウンカウンタの内容を前記アキュムレ
    ータの内容と組み合わせて正しい値になるように制御す
    る制御信号を前記アップダウンカウンタに出力する制御
    回路と、前記アキュムレータと組となり、前記制御回路
    から出力される制御信号によって自らの内容を前記正し
    い値の上位部分の値にさせ、その内容を前記アキュムレ
    ータの許容範囲の値と組み合わせて正しい値となる値と
    して前記データバスに選択的に出力する複数の前記アッ
    プダウンカウンタと、からなることを特激とする演算回
    路。
  7. 【請求項7】 プロセッサにより複数のアップダウンカ
    ウンタ及び複数のアキュムレータを重複しないで組とし
    て選択する手順と、演算器と前記アキュムレータとによ
    り 前記プロセッサの演算を実行する手順と、制御回路
    により前記演算器のオーバーフロー信号と前記演算器の
    演算結果の符号信号とに規則的に応じて、前記アップダ
    ウンカウンタの内容をオーバーフロー回数値とする手順
    と、前記アキュムレータにより 複数のアキュムレータ
    の値をデータバスおよび前記演算器に出力する手順と、
    前記アップダウンカウンタにより制御回路から出力され
    る制御信号で自らの内容をオーバーフローの回数にさ
    せ、その内容を前記アキュムレータの許容範囲を超えた
    オーバーフローの回数値として前記データバスまたは補
    正回路に出力する手順と、前記補正回路により前記アッ
    プダウンカウンタの値を補正時の前記アキュムレータの
    値の符号信号に規則的に応じてその内容を前記アキュム
    レータの内容と組み合わせて正しい値になるように補正
    し、その補正した内容を前記データバスに出力する手順
    と、からなることを特徴とする演算方法。
  8. 【請求項8】 重複しないで複数の内の1つのアップダ
    ウンカウンタと組となり、演算器の演算結果を記憶し、
    記憶した内容をデータバスと前記演算器に出力するアキ
    ュムレータと、前記アキュムレータの内容と前記データ
    バスからのデータの内容を演算する前記演算器と、前記
    演算器のオーバーフロー信号と前記演算器の演算結果の
    符号信号に規則的に応じて前記アップダウンカウンタの
    内容をオーバーフローの画数値になるように制御信号を
    前記アップダウンカウンタに出力する制御回路と、前記
    アキュムレータと組となり、前記制御回路から出力され
    る制御信号によって自らの内容を前記オーバーフローの
    回数値にさせ、その内容を補正回路または前記データバ
    スに出力する複数の前記アップダウンカウンタと、前記
    アップダウンカウンタの値を補正時の前記アキュムレー
    タの値の符号信号にしたがってその内容を前記アキュム
    レータの内容と組み合わせて正しい値になるように補正
    し、補正した内容を前記データバスに出力する補正回路
    と、からなることを特徴とする演算回路。
  9. 【請求項9】 請求項1、3、5および7のいずれか1
    項記載の演算方法において、前記制御信号を、前記演算
    器のキヤリー信号と前記演算器への前記データバスから
    の入力データの符号信号に規則的に応じて前記アップダ
    ウンカウンタの内容を+1、無変化および−1のいずれ
    か1つにする前記制御信号としたことを特徴とする演算
    方法。
  10. 【請求項10】 請求項2、4、6および8のいずれか
    1項記載の演算回路において、前記制御信号を、前記演
    算器のキャリー信号と前記演算器への前記データバスか
    らの入力データの符号信号に規則的に応じて前記アップ
    ダウンカウンタの内容を+1、無変化および−1のいず
    れか1つにする制御信号としたことを特徴とする演算回
    路。
JP2002166018A 2002-06-06 2002-06-06 演算方法および演算回路 Expired - Fee Related JP3497852B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002166018A JP3497852B1 (ja) 2002-06-06 2002-06-06 演算方法および演算回路
US10/367,691 US7089277B2 (en) 2002-06-06 2003-02-19 Computation circuit having dynamic range extension function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002166018A JP3497852B1 (ja) 2002-06-06 2002-06-06 演算方法および演算回路

Publications (2)

Publication Number Publication Date
JP2004013519A JP2004013519A (ja) 2004-01-15
JP3497852B1 true JP3497852B1 (ja) 2004-02-16

Family

ID=29706706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002166018A Expired - Fee Related JP3497852B1 (ja) 2002-06-06 2002-06-06 演算方法および演算回路

Country Status (2)

Country Link
US (1) US7089277B2 (ja)
JP (1) JP3497852B1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2891654A1 (fr) * 2005-10-05 2007-04-06 Proton World Int Nv Compteur d'evenements
JP4696989B2 (ja) * 2006-03-20 2011-06-08 ヤマハ株式会社 信号処理方法及び信号処理装置
JP2008102715A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 演算装置
JP5115307B2 (ja) * 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 半導体集積回路
JP2010160622A (ja) * 2009-01-07 2010-07-22 Toshiba Corp シミュレータ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5674774A (en) * 1979-11-22 1981-06-20 Nec Corp Arithmetic circuit with overflow detector
JPS6054070A (ja) * 1983-09-02 1985-03-28 Nec Corp 演算装置
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
US6243731B1 (en) * 1998-03-20 2001-06-05 Texas Instruments Incorporated Apparatus and method for extending register dynamic range
US7013321B2 (en) * 2001-11-21 2006-03-14 Sun Microsystems, Inc. Methods and apparatus for performing parallel integer multiply accumulate operations

Also Published As

Publication number Publication date
US20030229660A1 (en) 2003-12-11
US7089277B2 (en) 2006-08-08
JP2004013519A (ja) 2004-01-15

Similar Documents

Publication Publication Date Title
EP0656582B1 (en) Parallel adding and averaging circuit and method
JPH05216624A (ja) 演算装置
JP3845009B2 (ja) 積和演算装置、及び積和演算方法
JP3497852B1 (ja) 演算方法および演算回路
JPS62191926A (ja) 演算装置
JPH09198231A (ja) 演算処理装置
US20050278407A1 (en) Addressing type of asynchronous divider
JP4015411B2 (ja) 演算装置及びその演算装置を用いた情報処理装置
JP2001109613A (ja) 演算装置
JPH07146777A (ja) 演算装置
JP2003084972A (ja) 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JP2664750B2 (ja) 演算装置及び演算処理方法
JP3213982B2 (ja) 除算回路
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3541776B2 (ja) マイクロコンピュータ
KR200156144Y1 (ko) 절대값 계산 회로
JPH0553759A (ja) 固定小数点演算ユニツト
JP4142143B2 (ja) データ補正装置
KR100196426B1 (ko) 제산 회로 및 그의 구동 방법
JP2989830B2 (ja) ベクトル処理方法
KR19990061571A (ko) 디지털 신호 처리기의 연산장치
JPS6274150A (ja) 直線補間器用増分デ−タ転送装置
JPH04369726A (ja) 演算制御回路
EP2333674A1 (en) Alu with efficient saturated arithmetic support

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031118

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060906

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20070123

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

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

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: 20101128

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

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: 20121128

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees