JP3352887B2 - クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法 - Google Patents

クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法

Info

Publication number
JP3352887B2
JP3352887B2 JP23800396A JP23800396A JP3352887B2 JP 3352887 B2 JP3352887 B2 JP 3352887B2 JP 23800396 A JP23800396 A JP 23800396A JP 23800396 A JP23800396 A JP 23800396A JP 3352887 B2 JP3352887 B2 JP 3352887B2
Authority
JP
Japan
Prior art keywords
clamp
output
value
division
divisor
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
JP23800396A
Other languages
English (en)
Other versions
JPH1083279A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP23800396A priority Critical patent/JP3352887B2/ja
Priority to US08/923,926 priority patent/US5928318A/en
Publication of JPH1083279A publication Critical patent/JPH1083279A/ja
Application granted granted Critical
Publication of JP3352887B2 publication Critical patent/JP3352887B2/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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、除算結果が所定
の範囲外である場合に除算結果を所定の値にクランプす
るクランプ機能を備えたクランプ付除算器、このクラン
プ付除算器を備えた情報処理装置及び除算処理における
クランプ方法に関する。
【0002】
【従来の技術】近年、マルチメディア時代に入り、リア
ルタイムに画像データを処理する必要性が益々重要とな
って来ており、高速な演算処理が必要不可欠となってき
ている。例えば高速な演算処理が要求される画像処理に
おいては輝度計算処理が必要になるが、この処理に代表
されるように演算結果がしきい値を越える場合には、演
算結果を所定の最大値もしくは最小値にクランプする必
要がある。
【0003】ここで、クランプ処理を必要とする除算演
算に着目すると、従来の手法としては、先ず除算処理を
実行し、その商がしきい値を越えるような場合には、除
算で得られた結果ではなく、所定の最大値もしくは最小
値に商をクランプして、これを最終的な演算結果として
いた。
【0004】このような手法を用い、除算処理のアルゴ
リズムの一つとして従来から知られているニュートンラ
プソン法を用いた除算処理においてクランプ処理を行う
従来のクランプ付除算器としては、例えば図5に示すも
のがある。
【0005】ここで、この除算器について説明する前
に、ニュートンラプソン法のアルゴリズムについて説明
する。
【0006】このアルゴリズムは、a/bの除算演算を
行う場合は、以下に示す手順を実行して除算処理を行う
ものである。
【0007】1.bを何倍かして、bが1≦b<2の範
囲の値になるようにする。そして、1/bの最初の近似
値(これをX0 とする)を表検索によって求める。 2.Xi+1 =Xi (2−Xi b)の計算を繰り返し実行
する。この反復を十分正確な値(これをXn とする)が
得られるまで続ける。 3.aXn を計算し、1.で何倍かしたのと逆の操作を
行う。 以上のアルゴリズムを以下で引用する時は、「アルゴリ
ズムニュートン」と呼ぶ。
【0008】次に、図5に戻って、図5に示す除算器に
おいて上記アルゴリズムを用いた除算処理を、パイプラ
イン処理に沿って説明する。
【0009】まず、第1サイクル目において、レジスタ
50に除数の値をセットし、レジスタ51に被除数の値
をセットする。
【0010】次に、第2サイクル目で除数の値を1以上
2未満に規格化するため、プライオリティエンコーダ6
0にレジスタ50の出力b1を入力し、エンコード結果
b2を出力として得る。そして、レジスタ50の出力b
1、プライオリティエンコーダ60の出力b2をバレル
シフタ61に入力することにより、シフト結果b3が出
力される。同時にバレルシフタ61の出力b3がレジス
タ52に取り込まれる。
【0011】第3サイクル目では、レジスタ52の出力
b4をROM62に入力することにより、アクセス値b
5が出力され、同時にROM62の出力b5がレジスタ
53に取り込まれる。なお、ROM62の出力b5の値
は、除数の逆数の近似値に相当する。以上の第2、第3
サイクルが上述したアルゴリズムニュートンの1.に相
当する。なお、後述する実施形態では丸め処理が含まれ
る。
【0012】第4サイクル目では、セレクタ70により
レジスタ53の出力b6とレジスタ54の出力b7のう
ちレジスタ53の出力b6の値が選択され、セレクタ7
0の出力b8として出力される。また、セレクタ71に
よりレジスタ51の出力b9とレジスタ52の出力b4
のうちレジスタ52の出力b4の値が選択され、セレク
タ71の出力10として出力される。さらに、セレクタ
72により「2」の値を示すb11、丸め処理のために
加算される値b12のうち値b11が選択され、セレク
タ72の出力b13として出力される。
【0013】そして、セレクタ70の出力b8、セレク
タ71の出力b10、セレクタ72の出力b13が、加
減算器と乗算器を備えた演算器のMAC(Multiple Acc
umulator)63に入力される。セレクタ70の出力b
8、セレクタ71の出力b10は乗算項であり、セレク
タ72の出力b13は加算項である。MAC63の演算
結果b14が出力され、レジスタ54に取り込まれる。
ここでは、MAC63により(2−b8×b10)の演
算が行われる。
【0014】次に、第5サイクル目で、セレクタ70に
よりレジスタ53の出力b6とレジスタ54の出力b7
のうちレジスタ54の出力b7の値が選択され、セレク
タ出力b8として出力される。また、セレクタ71によ
りレジスタ51の出力b9とレジスタ52の出力b4の
うちレジスタ52の出力b4の値が選択され、セレクタ
出力b10として出力される。さらに、セレクタ72に
より「2」の値を示すb11、丸め処理のために加算さ
れる値b12のうち、加算値b12が選択され、セレク
タ出力b13として出力される。
【0015】そして、セレクタ出力b8、セレクタ出力
b10、セレクタ出力b13がMAC63に入力され
る。MAC63の演算結果b14が出力され、レジスタ
54に取り込まれる。ここでは、MAC63により(b
8×b10)の演算が行われ、同時に丸め処理が行われ
る。第4サイクル、第5サイクルにおいては、第3サイ
クルで求めた除数の逆数値の精度を上げるための処理が
行なわれたことになる。以上の第4、第5サイクルがア
ルゴリズムニュートンの2.に相当する。なお、後述す
る実施形態では丸め処理が含まれる。
【0016】第6サイクル以降、除数の逆数値が所望の
精度に到達するまで第4サイクルならびに第5サイクル
で行なった処理が繰り返されることになる。
【0017】この処理が終了すると、得られた除数の逆
数値と被除数値を乗算するため、セレクタ70によりレ
ジスタ53の出力b6とレジスタ54の出力b7のうち
レジスタ54の出力b7が選択され、セレクタ出力b8
として出力される。また、セレクタ71によりレジスタ
51の出力b9とレジスタ52の出力b4のうちレジス
タ51の出力b9が選択され、セレクタ出力b10とし
て出力される。さらに、セレクタ72により「2」の値
を示すb11、丸め処理のために加算される値b12の
うち、加算値b12が選択され、セレクタ出力b13と
て出力される。
【0018】そして、セレクタ出力b8、セレクタ出力
b10、セレクタ出力b13がMAC63に入力され
る。MAC63の演算結果b14が出力され、レジスタ
54に取り込まれる。
【0019】次のサイクルでバレルシフタ64にレジス
タ54の出力b7、レジスタ55の出力b15を入力し
て、第2サイクルでシフトした方向と逆方向に同じ数だ
けシフトすることにより、シフト出力値b16が求ま
り、この値が除算処理の商となる。以上のサイクルがア
ルゴリズムニュートンの3.に相当する。なお、後述す
る実施形態では丸め処理が含まれる。プライオリティエ
ンコーダ60の出力b2をレジスタ55に取りこむタイ
ミングは、前サイクルまでに行えばよい。
【0020】最後に、バレルシフタ64の出力b16を
クランプ回路65に入力し、クランプ処理の判定に従っ
て、最大のクランプ値、最少のクランプ値もしくは除算
結果のいずれかがクランプ回路65の出力b17として
出力される。
【0021】
【発明が解決しようとする課題】以上説明したように、
図5に示す従来の除算回路では、クランプ処理は除算処
理の結果が得られた後行われていた。すなわち、クラン
プ処理は除算結果が求められるまで行うことができなか
った。このため、クランプ処理の判定がなされて最終的
な除算結果(クランプ回路65の出力)が得られるまで
に時間がかかり、高速な除算処理を行う上での障害とな
っていた。また、クランプ処理は専用のクランプ回路に
よって行われていたので、回路構成が大型化していた。
【0022】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、クランプ処理
を行うための回路構成を縮小化し、かつクランプ処理を
伴う除算処理の演算時間を短縮したクランプ付除算器及
び除算処理におけるクランプ方法を提供することにあ
る。
【0023】
【課題を解決するための手段】上記課題を解決するため
に、請求項1記載の発明は、除算結果が2m (mは整
数)の上限クランプ値以上又は2n (nは整数)の下限
クランプ値以下である場合には、除算結果を上限クラン
プ値又は下限クランプ値にクランプするクランンプ付除
算器において、除算結果が上限クランプ値以上であるか
否かを判定する場合は、除数又は被除数をmビット下位
側又は上位側にシフトし、除算結果が下限クランプ値以
下であるか否かを判定する場合には、除数又は被除数を
nビット上位側又は下位側にシフトするビットシフト回
路と、除数又は被除数から前記ビットシフト回路によっ
てシフトされた被除数又は除数を減算し、減算結果に基
づいて除算結果を上限クランプ値又は下限クランプ値に
クランプするか否かを商を求める前に判定するMAC演
算器と、前記MAC演算器によるクランプ判定結果に基
づいて、上限クランプ値又は下限クランプ値を除算結果
として出力する出力回路とを有して構成される。
【0024】請求項2記載の発明は、請求項1記載のク
ランプ付除算器において、前記上限クランプ値を「1」
以下に設定し、被除数を除数と同様にシフトして被除数
を除数と同様に規格化し、シフトされた被除数と除数の
逆数値を前記MAC演算器により乗算して商を求めてな
る。
【0025】請求項3記載の発明は、請求項1又は2記
載の前記クランプ付除算器において、前記MAC演算器
は、乗算器と加減算器を備えて商を算出する演算を行う
ことを特徴とする。
【0026】請求項4記載の発明は、請求項1,2又は
3記載の前記クランプ付除算器と、前記クランプ付除算
器によりクランプを行う旨判定された場合には、その判
定結果を受けて、前記クランプ付除算器にクランプの判
定を行った除算処理の中止を指示する手段と、前記判定
結果を受けて、クランプの判定を行った除算処理の後続
に除算命令がある場合には、前記クランプ付除算器に前
記除算命令の開始を指示する手段とを有して構成され
る。
【0027】請求項5記載の発明は、ニュートンラプソ
ン法のアルゴリズムを用いて除算処理を行い、除算結果
が2m (mは整数)の上限クランプ値以上又は2n (n
は整数)の下限クランプ値以下である場合には、除算結
果を上限クランプ値又は下限クランプ値にクランプする
除算処理におけるクランプ方法において、除算結果が上
限クランプ値以上であるか否かを判定する場合は、除数
又は被除数をmビット下位側又は上位側にシフトし、除
算結果が下限クランプ値以下であるか否かを判定する場
合には、除数又は被除数をnビット上位側又は下位側に
シフトし、商を算出するMAC演算器により、除数又は
被除数から前記ビットシフト回路によってシフトされた
被除数又は除数を減算し、減算結果に基づいて除算結果
を上限クランプ値又は下限クランプ値にクランプするか
否かを商を求める前に判定することを特徴とする。
【0028】
【発明の実施の形態】以下、図面を用いてこの発明の実
施形態を説明する。
【0029】図1は請求項1又は4記載の発明の一実施
形態に係るクランプ付除算器の構成を示す図である。
【0030】図1において、除算器は、除数の値を1以
上2未満に規格化するプライオリティエンコーダ20
と、プライオリティエンコーダ20のエンコード結果と
除数を入力してシフトするバレルシフタ21と、除数の
逆数の近似値が格納されているROM22と、加減算器
と乗算器を備え、除算演算、除数の逆数値を求めるため
の演算ならびにクランプ処理を行うための演算を行う演
算器のMAC23と、除算結果を求めるためのシフト処
理を行うバレルシフタ24と、クランプ処理を行うため
に被除数をビットシフトするビットシフト回路25を備
えている。
【0031】また、除算器は、除数がセットされるレジ
スタ10と、被除数がセットされるレジスタ11と、バ
レルシフタ21の出力を保持するレジスタ12と、RO
M22の出力を保持するレジスタ13と、MAC23の
出力又は最大(上限)クランプ値あるいは最小(下限)
クランプ値を保持するレジスタ14と、プライオリティ
エンコーダ20の出力を保持するレジスタ15を備えて
いる。
【0032】さらに、除算器は、レジスタ13の出力又
はレジスタ14の出力を選択してMAC23に出力する
セレクタ30と、レジスタ12の出力又はレジスタ11
の出力を選択してMAC23に出力するセレクタ31
と、レジスタ10の出力又は「2」の値a11あるいは
丸め処理のために加算される値a12を選択してMAC
23に出力するセレクタ32と、MAC23の出力又は
最大クランプ値a16あるいは最小クランプ値a17を
選択してレジスタ14に出力するセレクタ33を備えて
構成されている。
【0033】MAC23は、図2に示すように、乗算器
231と加減算器232を備えて構成されている。乗算
器231は、セレクタ30の出力a8とセレクタ31の
出力a10を入力して両者の積を算出し、演算結果c1
をセレクタ233に出力する。セレクタ233は、乗算
器231の出力c1又はセレクタ32の出力a13を選
択し、セレクタ32の出力c2として加減算器232に
出力する。加減算器232は、ビットシフト回路25の
出力a14とセレクタ233の出力c2を入力し、両者
の加算又は減算を行い、演算結果をMAC23の出力a
15とする。
【0034】上記構成における除算処理では、クランプ
値の最大値を2m 、クランプ値の最小値を2n (m、n
は整数)と限定しているので、最大値にクランプするか
否かの判定は、被除数をA、除数をBとすると、A/B
≧2m であるか否かを判定することである。すなわち、
(2-m×A−B)≧0を判定すればよい。
【0035】一方、ハードウェア上では、2進数表現で
表されているので2-mを掛けることは、mが正数であれ
ばmビット下位方向にシフトし、mが負数であれば−m
ビット上位方向にシフトするのと等価である。したがっ
て、このシフト処理はビットシフト回路25で行われ、
その後MAC回路23で減算処理を行い、減算結果が正
であればクランプすると判定できる。また、最小値にク
ランプするか否かの判定は、A/B≦2n であるか否か
の判定であり、(2-n×A−B)≦0を判定すればよ
い。以下、最大値のクランプ判定と同様であり、減算結
果が負であればクランプすると判定できる。
【0036】なお、クランプ処理の判定において、(A
−2m ×B)の減算結果が負であれば最大値にクランプ
し、(A−2n ×B)の減算結果が正であれば最小値に
クランプするようにしてもよい。このような場合には、
レジスタ11にセットされた被除数に代えてレジスタ1
0にセットされた除数をビットシフト回路25に入力
し、レジスタ10にセットされた除数に代えてレジスタ
11にセットされた被除数をセレクタ32に入力するよ
うにすればよい。
【0037】次に、このような構成において、除算処理
ならびにクランプ処理の動作を説明する。なお、この実
施形態においては、前述した従来例と同様にニュートン
ラプソン法のアルゴリズムを用いてパイプライン処理に
より除算処理を行っており、パイプライン処理のサイク
ルに沿って動作を説明する。
【0038】まず、第1サイクル目において、レジスタ
10に除数の値を、レジスタ11に被除数の値をセット
する。
【0039】続いて、第2サイクル目では、除数の値を
1以上2未満に規格化するため、プライオリティエンコ
ーダ20にレジスタ10の出力a1を入力し、エンコー
ド結果a2を出力として得る。そして、レジスタ10の
出力a1、プライオリティエンコーダの出力a2をバレ
ルシフタ21に入力することにより、シフト結果a3が
出力される。同時に、バレルシフタ21の出力a3がレ
ジスタ12に取り込まれる。また、同時にセレクタ32
によりレジスタ10の出力a1、「2」の値であるa1
1、丸め処理において加算するための値a12のうちか
らレジスタ10の出力a1が選択され、セレクタ32の
出力a13がMAC23に出力される。
【0040】また、レジスタ11の出力a9がビットシ
フト回路25に入力され、最大値のクランプ処理に必要
な値として、シフト出力a14がMAC23に出力され
る。
【0041】なお、クランプ値を2m (mは整数)とす
ると、mが正数であれば、ビットシフト回路25の出力
a14はレジスタ11の出力(被除数)a9をmビット
下位にシフトした値である。mが負数であれば、ビット
シフト回路25の出力a14はレジスタ11の出力(被
除数)a9を−mビット上位にシフトした値である。そ
して、セレクタ32の出力a13、ビットシフト回路2
5の出力a14がMAC23に入力され、(a13−a
14)の演算がなされる。演算結果a15が出力され、
この値が正であれば商が最大のクランプ値を越えている
ということが判定される。この場合には、以下の除算処
理を直ちに中止し、セレクタ33によりMACの出力a
15、最大のクランプ値a16、最小のクランプ値a1
7のうちから最大のクランプ値a16を選択し、セレク
タ33の出力a18とする。そして、セレクタ33の出
力a18がレジスタ14に取り込まれ、これが除算処理
の最終結果となる。
【0042】さらに、後続に除算命令がある場合は、図
3に示すようにウェイト状態から直ちに実行を開始する
ことが可能となる。すなわち、第2、第3サイクルで除
算値がクランプ値を越えないと判定された場合には、後
続の除算命令は第5サイクルから実行が開始され、第2
サイクルで除算値がクランプ値を越えると判定された場
合には、後続の除算命令は第3サイクルから実行が開始
され、第3サイクルで除算値がクランプ値を越えると判
定された場合には、後続の除算命令は第4サイクルから
実行が開始される。なお、図3において、クロックサイ
クル1〜5はこの実施形態のサイクルに対応し、クロッ
クサイクル6はバレルシフタ24を通過するサイクルを
示す。
【0043】一方、前述したようにMAC23の出力a
15(演算結果)が得られて、MAC23の出力a15
が負であれば、クランプされないと判定され、後の除算
命令を続行することになる。
【0044】次に、第3サイクル目では、レジスタ12
の出力a4をROM22に入力することによりROM2
2の出力a5がレジスタ13に出力され、同時にROM
22の出力a5がレジスタ13に取り込まれる。なお、
ROM22の出力a5の値は除数の逆数の近似値に相当
する。同時に、セレクタ32によりレジスタ10の出力
a1、「2」の値であるa11、丸め処理のために加算
する値a12のうちからレジスタ10の出力a1が選択
され、セレクタ32の出力a13がMAC23に出力さ
れる。
【0045】また、レジスタ11の出力a9がビットシ
フト回路25に入力され、最小値のクランプ処理に必要
な値として、ビットシフト回路25の出力a14がMA
C23に出力される。なお、クランプ値を2n (nは整
数)とすると、nが正数であれば、ビットシフト回路2
5の出力a14はレジスタ11の出力a9をnビット下
位方向にシフトした値である。nが負数であれば、ビッ
トシフト回路25の出力a14はレジスタ11の出力a
9を−nビット下位方向にシフトした値である。セレク
タ32の出力a13、ビットシフト回路25の出力a1
4がMAC23に入力され、(a13−a14)の演算
がなされる、そして、MAC23の出力a15が出力さ
れ、これが負であれば商が最小のクランプ値を満たして
いないということが判定される。この場合には、以下の
除算の処理を直ちに中止し、セレクタ33によりMAC
23の出力a15、最大のクランプa16、最小クラン
プ値a17のうちから最小クランプ値a17を選択し、
セレクタ33の出力a18とする。そして、セレクタ3
3の出力a18がレジスタ14に取り込まれ、これが除
算の最終結果となる。
【0046】さらに、後続に除算命令がある場合は、前
述したと同様に図3に示すようにウェイト状態から直ち
に実行を開始することになる。
【0047】一方、MAC23の出力a15が正であれ
ば、クランプされないと判定され、後の除算命令を続行
処理することになる。
【0048】なお、第2サイクルにおいて、最大値のク
ランプ処理、第3サイクルで最小値のクランプ処理を行
ったが、順序が逆であってもかまわない。また、場合に
よっては一方のクランプ処理を省略するようにしてもよ
い。次のサイクル(第4サイクル)から本来の除算処理
でMAC23が使用されることになるが、その前のサイ
クル(この実施形態では第2、第3サイクル)において
MAC23を用いてクランプ処理を行うことが重要であ
る。
【0049】次に、第4サイクル目では、セレクタ30
によりレジスタ13の出力a6とレジスタ14の出力a
7のうちレジスタ13の出力a6が選択されセレクタ3
0の出力a8としてMAC23に出力される。また、セ
レクタ31によりレジスタ11の出力a9とレジスタ1
2の出力a4のうちレジスタ12の出力a4が選択さ
れ、セレクタ31の出力a10としてMAC23に出力
される。さらに、セレクタ32によりレジスタ10の出
力a1、「2」の値を示すa11、丸め処理のために加
算される値a12のうち「2」の値を示すa11が選択
され、セレクタ32の出力a13としてMAC23に出
力される。そして、セレクタ30の出力a8、セレクタ
31の出力a10、セレクタ32の出力a13がMAC
23に入力される。セレクタ30の出力a8、セレクタ
31の出力a10は乗算項であり、セレクタ32の出力
a13は加算項である。MAC23の出力a15がレジ
スタ14に出力されて、レジスタ14に取り込まれる。
ここでは、(2−a8×a10)の演算が行われる。
【0050】次に、第5サイクル目では、セレクタ30
によりレジスタ13の出力a6とレジスタ14の出力a
7のうちレジスタ14の出力a7が選択され、セレクタ
30の出力a8としてMAC23に出力される。また、
セレクタ31によりレジスタ11の出力a9とレジスタ
12の出力a4のうちレジスタ12の出力a4が選択さ
れ、セレクタ31の出力a10としてMAC23に出力
される。さらに、セレクタ33によりレジスタ10の出
力a1、「2」の値を示すa11、丸め処理のために加
算される値a12のうち加算値a12が選択され、セレ
クタ33の出力a13としてMAC23に出力される。
そして、セレクタ30の出力a8、セレクタ231の出
力a10、セレクタ32の出力a13がMAC23に入
力される。MAC23の出力a15がレジスタ14に出
力され、レジスタ14に取り込まれる。ここでは、(a
8×a10)の演算が行われ、同時に丸め処理が行なわ
れる。
【0051】上記第4サイクル、第5サイクルにおいて
は、第3サイクルで求めた除数の逆数値の精度を上げる
ための処理が行われたことになる。第6サイクル以降、
除数の逆数値が所望の精度に到達するまで上記第5サイ
クルで行った処理を繰り返し行うことになる。
【0052】この処理が終了すると、得られた除数の逆
数値と被除数を乗算するため、セレクタ30によりレジ
スタ13の出力a6とレジスタ14の出力a7のうちレ
ジスタ14の出力a7が選択されセレクタ30の出力a
8としてMAC23に出力される。また、セレクタ31
によりレジスタ11の出力a9とレジスタ12の出力a
4のうちレジスタ11の出力a9が選択され、セレクタ
31の出力a10としてMAC23に出力される。さら
に、セレクタ32によりレジスタ10の出力a1、
「2」の値を示すa11、丸め処理のために加算される
値a12のうち、加算値a12が選択され、セレクタの
出力a13としてMAC23に出力される。そして、セ
レクタ30の出力a8、セレクタ31の出力a10、セ
レクタ32の出力a13がMAC23に入力される。M
AC23の出力a15がレジスタ14に出力されて、レ
ジスタ14に取り込まれる。
【0053】次のサイクルでは、バレルシフタ24にレ
ジスタ14の出力a7とレジスタ15の出力a19を入
力することにより、第2サイクルでシフトした方向と逆
方向に同じ数だけレジスタ14の出力a7をシフトする
ことにより、バレルシフタ24の出力a20が得られ
る。これが除算処理の結果となる。
【0054】このように、上記実施形態においては、ク
ランプ処理を行うために、専用のクランプ回路を設ける
必要がなく、また、商を求めるために用いるMAC23
をパイプライン処理の空き時間を利用してクランプ判定
を行うため、回路規模を従来に比べて縮小化してクラン
プ処理を行うことができる。さらに、商に対してクラン
プ処理をするのではなく、商を求めるのに先立ってクラ
ンプ判定を行いクランプ処理を実行するため、クランプ
処理を含めた除算処理の処理時間を短縮することができ
る。
【0055】また、除算演算はレイテンシィの長い演算
であるので、除算演算が連続する場合には、先行の演算
が終了するまで待たされることになる。しかし、上記実
施形態においては、商が求まるよりも早い段階でクラン
プ処理を行うのでクランプする必要があると判定される
場合は、直ちに実行中の除算は最終的な値がクランプ値
と決まるので、商を求める処理を直ちに中止して演算を
終了させることができ、後続の除算命令又は他の処理を
直ちに始めることができる。
【0056】このような場合には、このクランプ付除算
器を備えた情報処理装置に、クランプ付除算器によりク
ランプを行う旨が判定された時にその判定結果を受けて
クランプ付除算器にクランプの判定を行った除算処理の
中止を指示する手段と、判定結果を受けてクランプの判
定を行った除算処理の後続に除算命令がある場合にはク
ランプ付除算器に後続の除算命令の開始を指示する手段
を設けるようにすれば、上記動作を実現することができ
る。これにより、全体のスループットが向上し処理全体
の実行時間の短縮化が達成できる。
【0057】図4は請求項2記載の発明の一実施形態に
係るクランプ付除算器及び除算処理におけるクランプ方
法を実現する構成を示す図である。
【0058】図4に示す実施形態の特徴とするところ
は、図1に示す構成に比べて、レジスタ10の出力a1
をバレルシフタ21に直接入力する代わりにレジスタ1
0の出力a1又はレジスタ11の出力a9をセレクタ3
4により選択してセレクタ34の出力a19としてバレ
ルシフタ21に出力し、セレクタ31に代えてバレルシ
フタ21の出力a3又はレジスタ12の出力a4をセレ
クタ35により選択してセレクタ35の出力a10とし
てMAC23に出力し、レジスタ11の出力a9(被除
数)に対しもバレルシフタ21に入力できるようにする
ことより、最終サイクルで除数の逆数と被除数をかける
処理において、予め被除数にシフトした値をMAC23
に入力することが可能となるようにしたことにあり、他
の動作は図1に示す実施形態と同様である。
【0059】この実施形態では、クランプ値の最大値を
「1」に限定することにより、除算処理の最終段で行わ
れるシフト処理の代わりに予め被除数も除数と同じビッ
トだけシフトすることが可能となるので実現できる。こ
れは、被除数がビットあふれする場合には、必ず最大値
にクランプされると判定できるからである。
【0060】具体的には、例えば除数を「0011」、
被除数を「0110」とすれば、除数に対するシフト量
は2ビットである。したがって、本方式ではシフト後は
被除数は「1000」となり、ビットあふれが生じて除
算処理が不可能となる。しかしながら、このようなビッ
トあふれが生じる場合は、必ず被除数が除数よりも大き
い場合である。すなわち、除算結果が「1」以上になる
場合である。ゆえに、クランプ値の最大値を「1」と限
定するようにすれば、被除数がビットあふれする場合に
は必ずクランプ処理で検出されるので正常な処理が可能
となる。
【0061】したがって、この実施形態においては、前
述した実施形態において得られる効果に加えて、クラン
プ値の最大値を「1」以下に限定するようにしたので、
ニュートンラプソン法において最終段で行なわれるシフ
ト動作を省略することができ、除算処理をより短縮する
ことができる。
【0062】
【発明の効果】以上説明したように、請求項1又は4記
載の発明によれば、商に対してクランプ処理を行うので
はなく、商が求まるよりも早い段階でクランプ処理を行
うようにしたので、除算処理の時間を短縮することがで
きる。また、商を求めるために用いられるMAC演算器
を利用にしてクランプ処理の判定を行うようにしたの
で、専用のクランプ回路を設ける必要がなくなり、構成
の小型化を図ることができる。
【0063】請求項2記載の発明によれば、上限クラン
プ値を「1」以下に限定することにより、ニュートンラ
プソン法で除数と被除数を乗算した後に実行されるシフ
ト演算を省略することが可能となり、除算時間の短縮な
らびに構成の小型化を図ることができる。
【0064】請求項3記載の発明によれば、クランプす
る必要があると判定された場合には除算処理が直ちに終
了し、後続の除算命令を直ちに開始することが可能とな
り、連続した除算処理全体のスループットが向上し処理
全体の実行時間の短縮化が達成できる。
【図面の簡単な説明】
【図1】請求項1又は4記載の発明の一実施形態に係る
クランプ付除算器及び除算処理におけるクランプ方法を
実現する構成を示す図である。
【図2】図1に示すMACの構成を示す図である。
【図3】クランプ判定処理による後続の除算命令の実行
タイミングを示す図である。
【図4】請求項2記載の発明の一実施形態に係るクラン
プ付除算器及び除算処理におけるクランプ方法を実現す
る構成を示す図である。
【図5】従来のクランプ付除算器の構成を示す図であ
る。
【符号の説明】
10,11,12,13,14,15,50,51,5
2,53,54,55レジスタ 20,60 プライオリティエンコーダ 21,24,61,64 バレルシフタ 22,62 ROM 23,63 MAC 25 ビットシフト回路 30,31,32,33,34,35,70,71,7
2,233 セレクタ 65 クランプ回路 231 乗算器 232 加減算器
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 G06T 1/00

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 除算結果が2m (mは整数)の上限クラ
    ンプ値以上又は2n(nは整数)の下限クランプ値以下
    である場合には、除算結果を上限クランプ値又は下限ク
    ランプ値にクランプするクランンプ付除算器において、 除算結果が上限クランプ値以上であるか否かを判定する
    場合は、除数又は被除数をmビット下位側又は上位側に
    シフトし、除算結果が下限クランプ値以下であるか否か
    を判定する場合には、除数又は被除数をnビット上位側
    又は下位側にシフトするビットシフト回路と、 除数又は被除数から前記ビットシフト回路によってシフ
    トされた被除数又は除数を減算し、減算結果に基づいて
    除算結果を上限クランプ値又は下限クランプ値にクラン
    プするか否かを商を求める前に判定するMAC演算器
    と、 前記MAC演算器によるクランプ判定結果に基づいて、
    上限クランプ値又は下限クランプ値を除算結果として出
    力する出力回路とを有することを特徴とするクランプ付
    除算器。
  2. 【請求項2】 前記上限クランプ値を「1」以下に設定
    し、被除数を除数と同様にシフトして被除数を除数と同
    様に規格化し、シフトされた被除数と除数の逆数値を前
    記MAC演算器により乗算して商を求めることを特徴と
    する請求項1記載のクランプ付除算器。
  3. 【請求項3】 前記MAC演算器は、乗算器と加減算器
    を備えて商を算出する演算を行うことを特徴とする請求
    項1又は2記載のクランプ付除算器。
  4. 【請求項4】 請求項1,2又は3記載の前記クランプ
    付除算器と、 前記クランプ付除算器によりクランプを行う旨判定され
    た場合には、その判定結果を受けて、前記クランプ付除
    算器にクランプの判定を行った除算処理の中止を指示す
    る手段と、 前記判定結果を受けて、クランプの判定を行った除算処
    理の後続に除算命令がある場合には、前記クランプ付除
    算器に前記除算命令の開始を指示する手段とを有するこ
    とを特徴とするクランプ付除算器を備えた情報処理装
    置。
  5. 【請求項5】 ニュートンラプソン法のアルゴリズムを
    用いて除算処理を行い、除算結果が2m (mは整数)の
    上限クランプ値以上又は2n (nは整数)の下限クラン
    プ値以下である場合には、除算結果を上限クランプ値又
    は下限クランプ値にクランプする除算処理におけるクラ
    ンプ方法において、 除算結果が上限クランプ値以上であるか否かを判定する
    場合は、除数又は被除数をmビット下位側又は上位側に
    シフトし、 除算結果が下限クランプ値以下であるか否かを判定する
    場合には、除数又は被除数をnビット上位側又は下位側
    にシフトし、 商を算出するMAC演算器により、除数又は被除数から
    前記ビットシフト回路によってシフトされた被除数又は
    除数を減算し、 減算結果に基づいて除算結果を上限クランプ値又は下限
    クランプ値にクランプするか否かを商を求める前に判定
    することを特徴とする除算処理におけるクランプ方法。
JP23800396A 1996-09-09 1996-09-09 クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法 Expired - Fee Related JP3352887B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23800396A JP3352887B2 (ja) 1996-09-09 1996-09-09 クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法
US08/923,926 US5928318A (en) 1996-09-09 1997-09-05 Clamping divider, processor having clamping divider, and method for clamping in division

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23800396A JP3352887B2 (ja) 1996-09-09 1996-09-09 クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法

Publications (2)

Publication Number Publication Date
JPH1083279A JPH1083279A (ja) 1998-03-31
JP3352887B2 true JP3352887B2 (ja) 2002-12-03

Family

ID=17023698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23800396A Expired - Fee Related JP3352887B2 (ja) 1996-09-09 1996-09-09 クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法

Country Status (2)

Country Link
US (1) US5928318A (ja)
JP (1) JP3352887B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298085B1 (en) 1997-10-23 2001-10-02 Sony Corporation Source encoding using shuffling of data to provide robust error recovery in a burst error-environment
US6282684B1 (en) 1997-10-23 2001-08-28 Sony Corporation Apparatus and method for recovery of data in a lossy transmission environment
US6581170B1 (en) 1997-10-23 2003-06-17 Sony Corporation Source coding to provide for robust error recovery during transmission losses
US6260054B1 (en) * 1998-10-29 2001-07-10 Neomagic Corp. Reciprocal generator using piece-wise-linear segments of varying width with floating-point format
US6621936B1 (en) 1999-02-12 2003-09-16 Sony Corporation Method and apparatus for spatial class reduction
US6418548B1 (en) 1999-02-12 2002-07-09 Sony Corporation Method and apparatus for preprocessing for peripheral erroneous data
US6519369B1 (en) 1999-02-12 2003-02-11 Sony Corporation Method and apparatus for filter tap expansion
US6591398B1 (en) 1999-02-12 2003-07-08 Sony Corporation Multiple processing system
US6535148B1 (en) * 1999-02-12 2003-03-18 Sony Corporation Method and apparatus for truncated decoding
US6549672B1 (en) 1999-06-29 2003-04-15 Sony Corporation Method and apparatus for recovery of encoded data using central value
US6493842B1 (en) 1999-06-29 2002-12-10 Sony Corporation Time-varying randomization for data synchronization and implicit information transmission
US6473876B1 (en) 1999-06-29 2002-10-29 Sony Corporation Method and apparatus for encoding of bitstreams using rotation
US6539517B1 (en) 1999-11-09 2003-03-25 Sony Corporation Data transformation for explicit transmission of control information
US6754371B1 (en) 1999-12-07 2004-06-22 Sony Corporation Method and apparatus for past and future motion classification
US6598065B1 (en) * 1999-12-23 2003-07-22 Intel Corporation Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
KR100456035B1 (ko) * 2002-10-11 2004-11-08 주식회사 모티스 나눗셈 장치
US7539720B2 (en) * 2004-12-15 2009-05-26 Sun Microsystems, Inc. Low latency integer divider and integration with floating point divider and method
US8015228B2 (en) 2005-02-16 2011-09-06 Arm Limited Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value
US7747667B2 (en) 2005-02-16 2010-06-29 Arm Limited Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation
WO2008069390A1 (en) * 2006-12-07 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method for generating mean value
KR100901478B1 (ko) * 2006-12-07 2009-06-08 한국전자통신연구원 나눗셈기의 평균값 출력 장치 및 출력 방법
US8452831B2 (en) * 2009-03-31 2013-05-28 Oracle America, Inc. Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations
US9086890B2 (en) 2012-01-06 2015-07-21 Oracle International Corporation Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated
JP2016062404A (ja) * 2014-09-19 2016-04-25 サンケン電気株式会社 演算処理方法及び演算処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999801A (en) * 1988-07-15 1991-03-12 Fujitsu Limited Floating point operation unit in division and square root operations
US5046038A (en) * 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5307303A (en) * 1989-07-07 1994-04-26 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
DE69231051T2 (de) * 1991-09-05 2001-01-18 Cyrix Corp Verfahren und Anordnung zur vorteilierten Division
JP3609512B2 (ja) * 1994-12-15 2005-01-12 株式会社東芝 演算器

Also Published As

Publication number Publication date
JPH1083279A (ja) 1998-03-31
US5928318A (en) 1999-07-27

Similar Documents

Publication Publication Date Title
JP3352887B2 (ja) クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法
JPH0477932B2 (ja)
JP2001222410A (ja) 除算器
JPH0540605A (ja) 浮動小数点乗算装置
JP3064405B2 (ja) 複素数の演算処理方式
JPH0511980A (ja) 桁あふれ検出方式とその回路
KR100309520B1 (ko) 라운드오프기능을갖는승산방법및승산회로
JPS62197868A (ja) パイプライン構成の直線近似変換回路
JP2807170B2 (ja) 演算装置
JP3122622B2 (ja) 除算装置
JPS59116852A (ja) 高速除算装置
JP2608090B2 (ja) 高基数非回復型除算装置
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3229057B2 (ja) 例外処理装置
JPH0414173A (ja) 固定小数点演算器
JP3530418B2 (ja) 乗算装置
JP2761145B2 (ja) 開平演算装置
JP2903529B2 (ja) ベクトル演算方式
JPS60171535A (ja) 除算装置
JP2003029960A (ja) 浮動小数点加算器のショートパスにおける丸めステップの排除
JPH1040073A (ja) ディジタル信号処理装置
JP2995721B2 (ja) 除算装置および除算方法
JP2001092639A (ja) 除算・開平演算装置
JPS6129020B2 (ja)
JPH01274234A (ja) 除算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070920

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees