JP2001175880A - 浮動小数点加算器 - Google Patents

浮動小数点加算器

Info

Publication number
JP2001175880A
JP2001175880A JP35887199A JP35887199A JP2001175880A JP 2001175880 A JP2001175880 A JP 2001175880A JP 35887199 A JP35887199 A JP 35887199A JP 35887199 A JP35887199 A JP 35887199A JP 2001175880 A JP2001175880 A JP 2001175880A
Authority
JP
Japan
Prior art keywords
floating
data
mantissa
unit
exponent
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.)
Granted
Application number
JP35887199A
Other languages
English (en)
Other versions
JP2001175880A5 (ja
JP4439060B2 (ja
Inventor
Yoshitsugu Inoue
喜嗣 井上
Hiroyuki Kawai
浩行 河合
Junko Obara
淳子 小原
Streitenberger Robert
ストライテンベルガー ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP35887199A priority Critical patent/JP4439060B2/ja
Priority to US09/620,472 priority patent/US6581087B1/en
Publication of JP2001175880A publication Critical patent/JP2001175880A/ja
Publication of JP2001175880A5 publication Critical patent/JP2001175880A5/ja
Application granted granted Critical
Publication of JP4439060B2 publication Critical patent/JP4439060B2/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/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)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 クリップコード生成を高速に行なう浮動小数
点加算器を提供する。 【解決手段】 与えられる2つの浮動小数点データの加
算および減算を行なう浮動小数点加算器において、仮数
部の桁合わせ処理の前処理で行なわれる2データの指数
比較および仮数比較の結果と2データの符号とに基づい
て、クリップ座標に対応するデータと与えられた他方の
データとの大小関係をそれぞれコード化する。加減算結
果による零フラグおよび加減算結果符号を用いてクリッ
プコードを生成せず、前処理で求められる指数および仮
数比較部の比較結果を用いて、クリップコードを生成す
るので、回路規模を増大させることなく、高速にクリッ
プコードを生成することが可能である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、浮動小数点データ
の大小比較演算を行なう浮動小数点加算器に関し、より
特定的にはグラフィックス処理におけるクリッピング処
理に有効に用いられる浮動小数点加算器に関する。
【0002】
【従来の技術】コンピュータグラフィックスでは、射影
変換におけるビューボリューム内や2次元グラフィック
スでの表示ウィンドウ内に表示対象の座標が存在するか
否かの判定を行なうクリップ処理が行なわれる。クリッ
プ処理については、たとえば、J.D.Foleyら著、「Compu
ter Graphics: Principles and Practice」、1992
年、第271頁―第278頁、Addison-Wesley Publish
ing Companyに記載されている。
【0003】クリップ処理には、表示対象の座標とクリ
ップ処理の基準となる座標との大小を比較する比較演算
が必要である。
【0004】一般に、コンピュータグラフィックスの座
標には、浮動小数点データが用いられ、座標の大小判定
は浮動小数点データを加減算することによって行なわれ
る。浮動小数点データの加算や減算は、原著K.Wan
d,監訳 堀越,「コンピュータの高速演算方式」,第
295頁−第299頁,1980年,近代科学社、およ
びJohn L.Hennessy and David A.Patterson 著、「Comp
uter Architecture AQuantitative Approach」第A-1
6頁−第A−20頁、1990年、Morgan Kaufmann Pu
blishers, Inc.にあるような処理フローによって行なわ
れる。
【0005】本明細書においては、第1、第2のデータ
値の加算を行なう演算装置の他に第1のデータ値から第
2のデータ値の減算を行なうことができる演算装置も加
算器と呼ぶことにする。
【0006】従来は、表示対象の座標が表示ウィンドウ
内に存在するか否かの指標であるクリップコードを浮動
小数点加算器を用いて発生していた。
【0007】図11は、従来におけるクリップコードの
発生を説明するためのブロック図である。
【0008】図11を参照して、従来は、クリップコー
ドCODEを浮動小数点加算器501とコード発生部5
02によって発生していた。
【0009】浮動小数点加算器501は、演算の種類等
を表わす命令FUNCおよび浮動小数点データX、Wを
受ける前処理部510と、浮動小数点データX、Wの桁
合せを行なう桁合せ部11と、桁合せがされた浮動小数
点データX、Wの仮数部の加算や減算を行なう仮数演算
部12と、仮数演算部12の演算した結果を正規化する
正規化部13と、正規化部13の出力に応じてフラグF
LAGと演算結果RESとを出力する後処理部14とを
含む。
【0010】コード発生部502は、浮動小数点加算器
501が出力するフラグFLAGに含まれる零フラグや
符号フラグの論理演算を別途行ないクリップコードCO
DEを生成する。
【0011】図12は、図11に示した前処理部510
の構成を示すブロック図である。図12を参照して、前
処理部510は、命令FUNCおよび2つの浮動小数点
データX、Wが入力され特殊入力フラグSIFを生成す
る入力値検証部20と、2つの浮動小数点データX、W
のそれぞれの指数部eX、eW同士を比較する指数比較部
21と、浮動小数点データX、Wのそれぞれの仮数部f
X、fW同士を比較する仮数比較部22と、命令FUN
C、浮動小数点データX、W、指数比較部21の出力お
よび仮数比較部22の出力を受けて選択信号SELを発
生する選択信号生成器24とを含む。選択信号SEL
は、浮動小数点データX、Wのうちどちらを桁合せのた
めにシフトするかを選択するための信号である。
【0012】指数比較部21は、指数部eX、eWの比較
を行ないeX>eWであるときには、フラグF(eX
W)を1にする。指数部eXと指数部eWが一致したと
きには、フラグF(eX==eW)を1にする。
【0013】仮数比較部22は、仮数部fX、fWの比較
を行ない、fX>fWであるときにはフラグF(fX
W)を1にする。
【0014】ここで、クリップ処理が行なわれるときに
は、浮動小数点データXは表示対象の座標を表わし、浮
動小数点データWはクリップウィンドウの座標を表わし
ている。
【0015】たとえば、ビューボリュームを形成する最
大の座標値である浮動小数点データWよりも浮動小数点
データXが大きい場合には、表示対象はビューボリュー
ムの外にある。この場合にクリップコードCODEは1
となるが、このクリップコードCODEを生成するに
は、まずX−Wの浮動小数点減算を行なう。
【0016】その演算結果の零フラグをZ、符号フラグ
をNとすると、図11に示したコード発生部502は、
ZとNのNORを演算してX>Wであることを知り、ク
リップコードCODEとして“1”を生成する。
【0017】他にクリップ処理を行なう方法としては、
米国特許5,157,764のように専用のハードウェ
アを準備する方法がある。
【0018】
【発明が解決しようとする課題】従来のクリップコード
生成方法では、図11、図12に示したように、浮動小
数点の減算処理を行ない、その後に演算フラグを用いて
クリップコードを生成するので、クリップコード生成ま
での処理時間が長いという問題点があった。一方、専用
のハードウェアを用いる方法では、ハードウェア資源が
大きくなってしまうという問題点があった。
【0019】本発明の目的は、クリップコード生成を回
路規模の増大を抑えつつ高速に実行することが可能な浮
動小数点加算器を提供することである。
【0020】
【課題を解決するための手段】請求項1に記載の浮動小
数点加算器は、第1、第2の浮動小数点データを受け
て、指数部比較結果と仮数部比較結果とクリップコード
とを出力する前処理部を備え、前処理部は、第1、第2
の浮動小数点データの指数部同士を比較して指数部比較
結果を出力する指数比較部と、第1、第2の浮動小数点
データの仮数部同士を比較して仮数部比較結果を出力す
る仮数比較部と、第1の浮動小数点データとクリップウ
インドウに対応する参照データとの大小関係に応じたク
リップコードを出力するクリップコード生成部とを含
み、仮数部比較結果および指数部比較結果に応じて、第
1、第2の浮動小数点データの仮数部の桁合せを行なう
桁合せ部と、桁合せ部により桁合せされた第1、第2の
浮動小数点データの仮数部の加算を行なう演算部と、演
算部の演算結果を受けて正規化を行なう正規化部とをさ
らに備える。
【0021】請求項2に記載の浮動小数点加算器は、請
求項1に記載の浮動小数点加算器の構成において、クリ
ップコード生成部は、指数部比較結果と仮数部比較結果
とに応じて、クリップコードを出力する。
【0022】請求項3に記載の浮動小数点加算器は、請
求項2に記載の浮動小数点加算器の構成に加えて、指数
部比較結果は、第1の浮動小数点データの指数部が第2
の浮動小数点データの指数部より大きいことを示す第1
の信号と、第1、第2の浮動小数点データの指数部が一
致したことを示す第2の信号とを含み、仮数部比較結果
は、第1の浮動小数点データの仮数部が第2の浮動小数
点データの仮数部より大きいことを示す第3の信号を含
み、参照データは、第1、第2および第3の信号を含
み、クリップコード生成部は、第2、第3の信号の論理
積を演算し、かつ、論理積と第1の信号の論理和を出力
する論理演算部を含む。
【0023】請求項4に記載の浮動小数点加算器は、請
求項3に記載の浮動小数点加算器の構成に加えて、クリ
ップコード生成部は、第1の浮動小数点データの符号ビ
ットが正の数を表わす場合に論理演算部の出力に応じて
第1のクリップコードを出力し、符号ビットが負の数を
表わす場合に論理演算部の出力に応じて第2のクリップ
コードを出力するゲート部をさらに含む。
【0024】請求項5に記載の浮動小数点加算器は、請
求項2に記載の浮動小数点加算器の構成に加えて、与え
られる命令に応じて、第2の浮動小数点データを下限値
とするクリップウインドウに対する第1のクリップコー
ドと、第2の浮動小数点データを上限値とするクリップ
ウインドウに対する第2のクリップコードのいずれかを
出力し、前処理部は、命令が第2の浮動小数点データを
下限値とするクリップウインドウに対するクリップコー
ドの出力を指示する場合には、第1、第2の浮動小数点
データの指数部をそれぞれ第1の指数部データ、第2の
指数部データとして出力し、第1、第2の浮動小数点デ
ータの仮数部をそれぞれ第1の仮数部データ、第2の仮
数部データとして出力し、命令が第2の浮動小数点デー
タを上限値とするクリップウインドウに対するクリップ
コードの出力を指示する場合には、第1、第2の浮動小
数点データの指数部をそれぞれ第2の指数部データ、第
1の指数部データとして出力し、第1、第2の浮動小数
点データの仮数部をそれぞれ第2の仮数部データ、第1
の仮数部データとして出力するデータ入換部をさらに含
み、指数部比較結果は、第1の指数部データが第2の指
数部データより大きいことを示す第1の信号と、第1、
第2の指数部データが一致したことを示す第2の信号と
を含み、仮数部比較結果は、第1の仮数部データが第2
の仮数部データより大きいことを示す第3の信号を含
み、参照データは、第1、第2および第3の信号を含
み、クリップコード生成部は、第2、第3の信号の論理
積を演算し、かつ、論理積と第1の信号の論理和を出力
する論理演算部を含む。
【0025】請求項6に記載の浮動小数点加算器は、請
求項5に記載の浮動小数点加算器の構成に加えて、デー
タ入換部は、命令を受けてデコードするデコーダと、第
1、第2の浮動小数点データの指数部を受けて、デコー
ダの出力に応じていずれか一方を選択し、第1の指数部
データとして出力する第1の選択回路と、第1、第2の
浮動小数点データの指数部を受けて、デコーダの出力に
応じて第1の選択回路と相補な選択を行ない第2の指数
部データとして出力する第2の選択回路と、第1、第2
の浮動小数点データの仮数部を受けて、デコーダの出力
に応じていずれか一方を選択し、第1の仮数部データと
して出力する第3の選択回路と、第1、第2の浮動小数
点データの仮数部を受けて、デコーダの出力に応じて第
3の選択回路と相補な選択を行ない第2の仮数部データ
として出力する第4の選択回路とを含む。
【0026】請求項7に記載の浮動小数点加算器は、請
求項2に記載の浮動小数点加算器の構成に加えて、演算
部は、与えられる命令に応じて、桁合せ部により桁合せ
された第1、第2の浮動小数点データの仮数部のいずれ
か一方から第1、第2の浮動小数点データの仮数部の他
方を引く減算を行なう。
【0027】請求項8に記載の浮動小数点加算器は、請
求項1に記載の浮動小数点加算器の構成に加えて、参照
データは、1と−1とを含み、前処理部は、第1の浮動
小数点データが0と一致しないことを検証する入力値検
証部をさらに含み、クリップコード生成部は、第1の浮
動小数点データの指数部および入力値検証部の出力を受
けて第1の浮動小数点データの絶対値が1より大きいこ
とを検出する論理演算部を含む。
【0028】請求項9に記載の浮動小数点加算器は、請
求項8に記載の浮動小数点加算器の構成に加えて、クリ
ップコード生成部は、第1の浮動小数点データの符号ビ
ットが正の数を表わす場合に論理演算部の出力に応じて
第1のクリップコードを出力し、符号ビットが負の数を
表わす場合に論理演算部の出力に応じて第2のクリップ
コードを出力するゲート部をさらに含む。
【0029】請求項10に記載の浮動小数点加算器は、
与えられる命令に応じて、第1の浮動小数点データに対
するクリップコード発生と、第1、第2の浮動小数点デ
ータを入力とする演算のいずれかを行なう浮動小数点加
算器であって、第1、第2の浮動小数点データを受け
て、第1の指数部比較結果と第1の仮数部比較結果とク
リップコードとを出力する前処理部を備え、前処理部
は、第1、第2の浮動小数点データとクリップウインド
ウの一方の境界に対応する第1の境界データとを受け
て、命令が演算であるときは、第1、第2の浮動小数点
データをそれぞれ第1、第2の入力データとして選択
し、命令がクリップコード発生であるときは、第1の浮
動小数点データと第1の境界データとをそれぞれ第1、
第2の入力データとして選択する第1のデータ入換部
と、第1、第2の入力データの指数部同士を比較して第
1の指数部比較結果を出力する第1の指数比較部と、第
1、第2の入力データの仮数部同士を比較して第1の仮
数部比較結果を出力する第1の仮数比較部と、第1の浮
動小数点データとクリップウインドウの他方の境界に対
応する第2の境界データの指数部同士を比較して第2の
指数部比較結果を出力する第2の指数比較部と、第1の
浮動小数点データと第2の境界データの仮数部同士を比
較して第2の仮数部比較結果を出力する第2の仮数比較
部と、第1、第2の指数部比較結果、第1、第2の仮数
部比較結果に応じてクリップコードを出力するクリップ
コード生成部とを含み、第1の仮数部比較結果および第
1の指数部比較結果に応じて、第1、第2の浮動小数点
データの仮数部の桁合せを行なう桁合せ部と、桁合せ部
により桁合せされた第1、第2の浮動小数点データの仮
数部を用いた演算を行なう演算部と、演算部の演算結果
を受けて正規化を行なう正規化部とをさらに備える。
【0030】請求項11に記載の浮動小数点加算器は、
請求項10に記載の浮動小数点加算器の構成に加えて、
命令は、加算命令と、減算命令とを含み、演算部は、命
令に応じて、第1、第2の浮動小数点データの仮数部を
用いた演算を行なう。
【0031】請求項12に記載の浮動小数点加算器は、
複数の座標軸にそれぞれ対応した複数の処理回路を備
え、各処理回路は、座標軸に対応する第1、第2の浮動
小数点データを受けて、指数部比較結果と仮数部比較結
果とクリップコードとを出力する前処理部を含み、前処
理部は、第1、第2の浮動小数点データの指数部同士を
比較して指数部比較結果を出力する指数比較部と、第
1、第2の浮動小数点データの仮数部同士を比較して仮
数部比較結果を出力する仮数比較部と、第1の浮動小数
点データとクリップウインドウに対応する参照データと
の大小関係に応じたクリップコードを出力するクリップ
コード生成部とを有し、仮数部比較結果および指数部比
較結果に応じて、第1、第2の浮動小数点データの仮数
部の桁合せを行なう桁合せ部と、桁合せ部により桁合せ
された第1、第2の浮動小数点データの仮数部を用いた
演算を行なう演算部と、演算部の演算結果を受けて正規
化を行なう正規化部とをさらに含む。
【0032】
【発明の実施の形態】以下において、本発明の実施の形
態について図面を参照して詳しく説明する。なお、図中
同一符号は同一または相当部分を示す。また、本実施の
形態においては、浮動小数点の標準形式であるIEEE
標準(ANSI/IEEE Std.754-1985 "IEEEStandard for Bin
ary Floating Point Arithmetic", Newyork:ANSI/IEEE,
1985)の単精度浮動小数点表現形式を例として説明して
いる。
【0033】[実施の形態1]図1は、実施の形態1の
浮動小数点加算器1の構成を示すブロック図である。
【0034】図1を参照して、浮動小数点加算器1は、
命令FUNCおよび2つの浮動小数点データX、Wを受
け2つの浮動小数点データの前処理を行なうとともにク
リップコードCODEを出力する前処理部10と、前処
理部10の出力に応じて浮動小数点データX、Wの桁合
せを行なう桁合せ部11と、桁合せが行なわれた浮動小
数点データX、Wの加算や減算を行なう仮数演算部12
と、仮数演算部12の演算結果を受けて正規化を行なう
正規化部13と、正規化部13の出力を受けて後処理を
行ない演算フラグFLAGおよび演算結果RESを出力
する後処理部14とを含む。
【0035】図2は、図1における前処理部10の構成
を示すブロック図である。図2を参照して、前処理部1
0は、命令FUNCおよび2つの浮動小数点データX、
Wが入力され特殊入力フラグSIFを生成する入力値検
証部20と、2つの浮動小数点データX、Wのそれぞれ
の指数部eX、eW同士を比較する指数比較部21と、浮
動小数点データX、Wのそれぞれの仮数部fX、fW同士
を比較する仮数比較部22と、命令FUNC、浮動小数
点データX、W、指数比較部21の出力および仮数比較
部22の出力を受けて選択信号SELを発生する選択信
号生成器24とを含む。選択信号SELは、浮動小数点
データX、Wのうちどちらを桁合せのためにシフトする
かを選択するための信号である。
【0036】指数比較部21は、指数部eX、eWの比較
を行ないeX>eWであるときには、フラグF(eX
W)を1にする。指数部eXと指数部eWが一致したと
きには、フラグF(eX==eW)を1にする。
【0037】仮数比較部22は、仮数部fX、fWの比較
を行ない、fX>fWであるときにはフラグF(fX
W)を1にする。
【0038】前処理部10は、さらに、浮動小数点デー
タXの符号ビットsXおよびフラグF(eX>eW)、F
(eX==eW)、F(fX>fW)を受けてクリップコー
ドCODE(X<−W)、CODE(X>W)を出力す
るクリップコード生成器23aを含む。
【0039】図3は、図2におけるクリップコード生成
器23aの構成を示す回路図である。
【0040】図3を参照して、クリップコード生成器2
3aは、フラグF(eX>eW)を受けて反転するインバ
ータ31と、フラグF(eX==eW)、F(fX>fW
を受けるNAND回路30と、インバータ31の出力お
よびNAND回路30の出力を受けるNAND回路32
と、符号ビットsXとNAND回路32の出力とを受け
てクリップコードCODE(X<−W)を出力するAN
D回路33と、符号ビットsXを受けて反転するインバ
ータ34と、インバータ34の出力およびNAND回路
32の出力を受けてクリップコードCODE(X>W)
を出力するAND回路35とを含む。
【0041】以下、簡単に動作を説明する。図2、図3
を参照して、浮動小数点加算器に与えられた命令FUN
C、浮動小数点データX、Wは前処理部10にまず入力
され、入力値検証部20において入力値が浮動小数点表
現における特殊な数値を表わす形態でないかがチェック
される。たとえば、IEEE標準の浮動小数点表現で
は、入力された数値の指数部、仮数部が全ビット0の場
合には数値0を表わし、あるいは、指数部の全ビットが
1で仮数部の全ビットが0の場合は∞を表わすが、入力
値検証部20では、このような特殊な入力値が与えられ
ていないかの検証を行なう。
【0042】指数比較部21は、浮動小数点データX、
Wのそれぞれの指数部eX、eWの比較を行なう。また、
仮数比較部22は、浮動小数点データX、Wのそれぞれ
の仮数部fX、fWの比較を行なう。
【0043】指数比較部21からは、指数部eXが指数
部eWより大きい場合に1となるフラグF(eX>eW
と指数部eXと指数部eWが等しい場合に1となるフラグ
F(e X==eW)とが出力される。指数比較部21から
は、さらに、指数部eX、eWの差が桁合せシフト値SV
として出力される。桁合せシフト値SVは、図1に示し
た加算や減算における次の処理を行なう桁合せ部11に
与えられ、桁合せのためのシフト値として使われる。
【0044】仮数比較部22は、仮数部fXがfWより大
きい場合に1となるフラグF(fX>fW)を選択信号生
成器24およびクリップコード生成器23aに対して出
力する。
【0045】選択信号生成器24は、命令FUNC、浮
動小数点データX、Wのそれぞれの符号ビットsX、sW
および指数比較部、仮数比較部が出力するフラグを受け
て、シフトすべき浮動小数点データが浮動小数点データ
X、Wのいずれであるかを判定して、加算や減算におけ
る次処理を行なう図1に示した桁合せ部11に出力す
る。
【0046】たとえば、浮動小数点データX、Wの両方
が正の数で加算を行なう場合には、eX>eWであるとき
には、浮動小数点データXの指数部を基準として以後の
処理を進めるために、選択信号生成器24は、被シフト
入力として仮数部fWを選択する。
【0047】また、浮動小数点データX、Wのいずれも
が正の数で、X−Wの減算を行なう場合に、eXがeW
等しいときには、選択信号生成器24は、桁合せシフト
がシフト値0なのでシフト処理は行なわない。しかし、
仮数部減算結果が負の数とならないように、仮数比較部
22の比較結果に基づいてfX<fWであれば浮動小数点
データWを基準とした減算−(W−X)を行なうよう
に、選択信号生成器24は加算や減算における次段以後
を制御する。
【0048】クリップコード生成器23aでは、命令F
UNCにかかわらず常に浮動小数点データX、Wに応じ
てクリップコードが発生される。クリップコード生成器
23aにはフラグF(eX>eW)、フラグF(eX==
W)、フラグF(fX>fW)および浮動小数点データ
Xの符号ビットsXが与えられる。浮動小数点データW
(ただしW>0)をクリップ座標とする場合クリップコ
ード生成器23aはクリップコードCODE(X<−
W)、CODE(X>W)を出力する。
【0049】CODE(X<−W)はX<−Wの場合に
1となるクリップコードであり、CODE(X>W)
は、X>Wの場合に1となるクリップコードである。こ
れらのクリップコードは同時に生成され、次の式
(1)、(2)で与えられる。
【0050】 CODE(X<−W)=sX・{(eX>eW)+(eX==eW)・(fX>fW )}…(1) CODE(X<W)=(!sX)・{(eX>eW)+(eX==eW)・(fX> fW)}…(2) 但し符号ビットsXは浮動小数点データXが正の数の場
合に0になり、また!は反転を表わしており、(A==
B)はAとBが一致したときに論理値“1”となること
を表わしている。
【0051】以上説明したように、実施の形態1の浮動
小数点加算器は、通常の浮動小数点演算に必要な指数部
比較結果フラグおよび仮数部比較結果フラグを用いるこ
とにより、小規模の回路追加で、絶対値の等しい正負両
側のクリップ座標に対するクリップコードを高速に生成
することができる。
【0052】[実施の形態2]図4は、実施の形態2の
浮動小数点加算器において用いられる前処理部10bの
構成を示すブロック図である。
【0053】図4を参照して、前処理部10bは、クリ
ップコード生成器23aに代えてクリップコード生成器
23bを含み、入力値検証部20に代えて入力値検証部
20bを含む点が図2に示した前処理部10と異なる。
他の構成は、前処理部10と同様であるので説明は繰返
さない。
【0054】入力値検証部20bは、図2に示した入力
値検証部20と同様の機能を有しているが、その過程で
生成される浮動小数点データXの仮数部が0でない場合
に1となるフラグF(fX≠0)をクリップコード生成
器23bに出力する機能が付加されている。
【0055】図5は、図4におけるクリップコード生成
器23bの構成を示す回路図である。
【0056】図5を参照して、クリップコード生成器2
3bは、指数部のビットeX<0>〜eX<6>およびフラグ
F(fX≠0)を受けるNAND回路40と、指数部の
ビットeX<7>を受けて反転するインバータ41と、イ
ンバータ41の出力およびNAND回路40の出力を受
けるNAND回路42と、符号ビットsXおよびNAN
D回路42の出力を受けてクリップコードCODE(X
<−1)を出力するAND回路43と、符号ビットsX
を受けて反転するインバータ44と、インバータ44の
出力およびNAND回路42の出力を受けてクリップコ
ードCODE(X>1)を出力するAND回路45とを
含む。
【0057】クリップコード生成器23bは、供給され
た数値の符号ビットsXおよび指数部eXおよび入力値検
証部20aからのフラグとの間で論理演算を行なう。こ
こでは、単精度浮動小数点データを扱う場合を例として
示し、指数部eXは8ビットで表わしており、eX<7>は
そのMSB(最上位ビット)、eX<0>はLSB(最下
位ビット)を表わしている。
【0058】なお、クリップ座標を±Wに設定したり、
“±1”に固定したりするのは3次元のグラフィックス
処理において一般によく用いられる手法である。
【0059】実施の形態2で示した発明においては、ク
リップ座標は固定された“±1”であり、クリップコー
ド生成器23bは、浮動小数点加算器の入力データであ
る浮動小数点データXと“+1”および“−1”との大
小関係を検証してコード化を行なう。
【0060】IEEE標準の単精度浮動小数点数値表現
における“1”は、指数部が2進数表現で“01111
111”かつ仮数部が“0”の場合であるので、符号を
考慮すると、浮動小数点加算器の入力である浮動小数点
データXが“+1”よりも大きくなる場合に1となるク
リップコードCODE(X>1)は次の論理式で与えら
れる。
【0061】 CODE(X>1)=(!sX)・{eX<7>+(eX<6:0>==11111 11)・(fX≠0)}…(3) また、浮動小数点データXが“−1”よりも小さい場合
に“1”となるクリップコードCODE(X<−1)
は、次の論理式で与えられる。
【0062】 CODE(X<−1)=sX・{eX<7>+(eX<6:0>==1111111 )・(fX≠0)}…(4) 式(3)、(4)を論理ゲートによって実現したのが図
5で示したクリップコード生成器である。
【0063】なお、実施の形態2の場合においても、命
令FUNCによらず入力された浮動小数点データX、W
に基づきクリップコードを常に生成する。このクリップ
コードは、たとえば射影変換を行なう他の演算部によっ
て使用するかしないかが判断される。
【0064】以上説明したように、実施の形態2の浮動
小数点加算器は、浮動小数点の加算や減算に必要な入力
値検証部において生成される入力値の仮数部検証結果を
流用してクリップコードを発生するため、回路規模の増
加を抑えつつ、クリップ座標が“±1”の場合に対する
クリップコードを高速に生成することができる。
【0065】[実施の形態3]図6は、実施の形態3に
おいて用いられる前処理部10cの構成を示すブロック
図である。
【0066】図6を参照して、前処理部10cは、図2
に示した前処理部10の構成においてクリップコード生
成器23aに代えて23cを含み、さらに、入力入換部
50を含む。
【0067】指数比較部21は、指数部eX、eWに代え
て入力入換部50が出力する指数部e1X、e1Wを受け
る。仮数比較部22は、仮数部fX、fWに代えて仮数部
f1 X、f1Wを受ける。
【0068】入力入換部50は、命令FUNCおよび符
号ビットsXを受けるデコーダ51と、デコーダ51の
出力に応じて指数部eXと指数部eWのいずれか一方を指
数部e1Xとして出力するセレクタ52と、デコーダ5
1の出力に応じて指数部eW、eXのいずれか一方を指数
部e1Wとして出力するセレクタ53と、デコーダ51
の出力に応じて仮数部fX、fWのいずれか一方を仮数部
f1Xとして出力するセレクタ54と、デコーダ51の
出力に応じて仮数部fW、fXのいずれか一方を仮数部f
Wとして出力するセレクタ55とを含む。
【0069】他の構成は、図2に示した前処理部10と
同様であるため説明は繰返さない。図7は、図6におけ
るクリップコード生成器23cの構成を示す回路図であ
る。
【0070】図7を参照して、クリップコード生成器2
3cは、図6に示した指数比較部21が出力するフラグ
F(e1X>e1W)を受けて反転するインバータ60
と、フラグF(e1X==e1W)とフラグF(f1X
f1W)とを受けるNAND回路61と、インバータ6
0の出力とNAND回路61の出力とを受けるNAND
回路62と、浮動小数点データWの符号ビットsWを受
けて反転するインバータ63と、浮動小数点データXの
符号ビットsXを受けて反転するインバータ64と、符
号ビットsXとインバータ63の出力を受けるNAND
回路65と、インバータ64の出力と符号ビットsW
を受けるNAND回路66と、NAND回路65、66
の出力を受けるAND回路67と、NAND回路62の
出力およびAND回路67の出力を受けるNAND回路
68とを含む。
【0071】クリップコード生成器23cは、さらに、
NAND回路65、68の出力を受けるNAND回路6
9と、NAND回路66、68の出力を受けるNAND
回路70と、命令FUNCを受けてクリップウィンドウ
座標の最小値に対するクリップ処理を行なう命令である
ことを検出して信号CLIPMINを出力するクリップ
検出部71と、命令FUNCを受けてクリップウィンド
ウ座標の最大値に対するクリップ処理を行なうことを検
出して信号CLIPMAXを出力するクリップ検出部7
2と、NAND回路69の出力および信号CLIPMI
Nを受けるNAND回路73と、NAND回路70の出
力と信号CLIPMAXを受けるNAND回路74と、
NAND回路73、74の出力を受けてクリップコード
CODE(X>Xmax,X<Xmin)を出力するN
AND回路75とを含む。
【0072】図6、図7を参照して簡単に動作を説明す
ると、クリップコード生成器23cは、供給された命令
FUNC、符号ビットsX、sWおよび比較結果フラグと
の間で論理演算を行ない、命令に応じたクリップコード
を出力する。
【0073】デコーダ51では、命令FUNCが加算命
令あるいは減算命令の場合には、指数比較部21および
仮数比較部22に対して図2、図4で示したクリップコ
ード生成器23a、23bと同様の入力になるようにe
X、e1W、f1X、f1WとしてそれぞれeX、eW、f
X、fWが選択される。
【0074】一方、命令FUNCがクリップ座標の下限
側に対するクリップコード生成である場合には、符号ビ
ットsXが“0”の場合、すなわち、入力された浮動小
数点データXが正の数の場合に、指数比較部21および
仮数比較部22への入力データの入換が起こる。この場
合には、e1X、e1W、f1X、f1Wとしてそれぞれe
W、eX、fW、fXが選択される。
【0075】同様に、命令FUNCがクリップ座標の上
限側に対するクリップコード生成である場合には、符号
ビットsXが“1”の場合、すなわち、入力された浮動
小数点データXが負の数の場合に、指数比較部21およ
び仮数比較部22への入力データの入換が起こる。
【0076】与えられた命令FUNCがクリップ座標の
下限側に対するクリップコード生成である場合には、ク
リップコード生成器23cは、Xがクリップ下限値より
も小さい場合に1となるクリップコードCODE(X>
Xmax,X<Xmin)を次の論理式を表現する論理
回路により生成する。
【0077】 CODE(X>Xmax,X<Xmin)=sX・(!sW)+(sX==sW) ・{(e1X>e1W)+(e1X==e1W)・(f1X>f1W)}…(5) 一方、与えられた命令FUNCがクリップ座標の上限側
に対するクリップコード生成である場合には、クリップ
コード生成器23cは、入力された浮動小数点データX
がクリップ上限値よりも大きい場合に1となるクリップ
コードCODE(X>XMax,X<Xmin)を次の
論理式を表現する論理回路により生成する。
【0078】 CODE(X>Xmax,X<Xmin)=(!sX)・sW+(sX==sW) ・{(e1X>e1W)+(e1X==e1W)・(f1X>f1W)}…(6) 以上説明したように、実施の形態3の浮動小数点加算器
では、加算器としての機能ブロックを流用してクリップ
コード生成のために必要なハードウェアの負荷を最低限
に抑えた上で、任意のクリッピング座標に対するクリッ
プコードを命令に応じて高速に出力することが可能とな
る。
【0079】[実施の形態4]図8は、実施の形態4に
おいて用いられる前処理部10dの構成を示すブロック
図である。
【0080】図8を参照して、前処理部10dは、図2
で示した前処理部10の構成においてクリップコード生
成器23aに代えてクリップコード生成器23dを含
み、さらに、入力入換部91、92と、指数比較部21
dと、仮数比較部22dとを含む。
【0081】入力入換部91は、符号ビットsXに応じ
て指数部eXとクリップ処理時に与えられる下限値デー
タXminの指数部eXminのいずれかを選択出力するセ
レクタ94と、符号ビットsXに応じて指数部eXmin
Xのいずれか一方を出力するセレクタ95と、符号ビ
ットsXに応じて仮数部fXとクリップ座標下限値Xmi
nの仮数部fXminのいずれか一方を出力するセレクタ9
6と、仮数部fXmin、fXのいずれか一方を符号ビット
Xに応じて出力するセレクタ97とを含む。
【0082】入力入換部91は、さらに、命令FUNC
を受けてデコードするデコーダ93と、デコーダ93の
出力に応じて指数部eXとセレクタ94の出力のいずれ
か一方を指数部e1Xとして出力するセレクタ98と、
デコーダ93の出力に応じて指数部eWとセレクタ95
の出力のいずれか一方を指数部e1Wとして出力するセ
レクタ99と、デコーダ93の出力に応じて仮数部fX
とセレクタ96の出力のいずれか一方を仮数部f1X
して出力するセレクタ100と、デコーダ93の出力に
応じて仮数部fWとセレクタ97の出力のいずれか一方
を仮数部f1Wとして出力するセレクタ101とを含
む。
【0083】入力入換部91はこのようにして選択され
た指数部e1X、e1Wを指数比較部21に対して出力
し、仮数部f1X、f1Wを仮数比較部22に対して出力
する。
【0084】入力入換部92は、符号ビットsXに応じ
てクリップ座標の上限値Xmaxの指数部eXmaxと指数
部eXのいずれか一方を指数部e2Xとして出力するセレ
クタ121と、符号ビットsXに応じて指数部eXと指数
部eXmaxのいずれか一方を指数部e2Wとして出力する
セレクタ122と、符号ビットsXに応じてクリップ座
標の上限値Xmaxの仮数部fXmaxと仮数部fXのいず
れか一方を仮数部f2Xとして出力するセレクタ123
と、符号ビットsXに応じて仮数部fX、fXmaxのいずれ
か一方を仮数部f2Wとして出力するセレクタ124と
を含む。
【0085】指数比較部21dは、指数部e2X、e2W
を受けてフラグF(e2X>e2W)とフラグF(e2X
==e2W)を出力する。
【0086】仮数比較部22dは、仮数部f2X、f2W
を受けてフラグF(f2X>f2W)を出力する。
【0087】図9は、図8に示したクリップコード生成
器23dの構成を示す回路図である。
【0088】図9を参照して、クリップコード生成器2
3dは、フラグF(e1X>e1W)を受けて反転するイ
ンバータ130と、フラグF(e1X==e1W)、フラ
グF(f1X>f1W)を受けるNAND回路131と、
インバータ130の出力およびNAND回路131の出
力を受けるNAND回路132と、クリップ座標の下限
値Xminの符号ビットsXminを受けて反転するインバ
ータ134と、符号ビットsXを受けて反転するインバ
ータ133と、インバータ133の出力および符号ビッ
トsXminを受けるNAND回路135と、インバータ1
34の出力および符号ビットsXを受けるNAND回路
136と、NAND回路135、136の出力を受ける
AND回路137と、NAND回路132の出力および
AND回路137の出力を受けるNAND回路138
と、NAND回路136、138の出力を受けてクリッ
プコードCODE(X<Xmin)を出力するNAND
回路139とを含む。
【0089】クリップコード生成器23dは、さらに、
フラグF(e2X>e2W)を受けて反転するインバータ
150と、フラグF(e2X==e2W)およびフラグF
(f2X>f2W)を受けるNAND回路151と、イン
バータ150の出力およびNAND回路151の出力を
受けるNAND回路152と、クリップ座標の上限値X
maxの符号ビットsXmaxを受けて反転するインバータ
153と、符号ビットsXを受けて反転するインバータ
154と、インバータ153の出力および符号ビットs
Xを受けるNAND回路155と、インバータ154の
出力および符号ビットsXmaxを受けるNAND回路15
6と、NAND回路155、156の出力を受けるAN
D回路157と、NAND回路152の出力およびAN
D回路157の出力を受けるNAND回路158と、N
AND回路156、158の出力を受けてクリップコー
ドCODE(X>Xmax)を出力するNAND回路1
59とを含む。
【0090】次に、図8、図9を参照して簡単に動作を
説明する。命令FUNCが加減算命令の場合には、指数
比較部21、仮数比較部22には図2で示した指数比較
部21、仮数比較部22と同様な入力が与えられるよう
にe1X、e1W、f1X、f1WにはそれぞれeX、eW
X、fWがそれぞれ選択される。
【0091】一方、命令FUNCがクリップコード生成
命令の場合には、別途外部より入力されるクリップ座標
下限値Xminが、入力される浮動小数点データXとそ
れぞれ独立して並列的に指数比較部21、仮数比較部2
2で比較されるように入力入換部91によって選択が行
なわれる。また、別途外部より入力されるクリップ座標
上限値Xmaxが、入力される浮動小数点データXとそ
れぞれ独立して並列的に指数比較部21d、仮数比較部
22dで比較されるように入力入換部92によって選択
が行なわれる。
【0092】クリップコード命令において、入力された
浮動小数点データXの符号ビットs Xが“1”、すなわ
ち浮動小数点データXが負の数の場合には、指数比較部
21および仮数比較部22への入力には入換が起こる。
このときには、入力入換部91は、e1X、e1W、f1
X、f1WとしてそれぞれeXmin、eX、fXmin、fXを選
択する。
【0093】それ以外の場合には、入力入換部91は、
e1X、e1W、f1X、f1WとしてそれぞれeX、e
Xmin、fX、fXminを選択する。
【0094】指数比較部21d、仮数比較部22dへの
入力は、浮動小数点データXの符号ビットsX
“0”、すなわち、浮動小数点データXが正の場合に入
換が起こる。このときには、入力入換部92は、e
X、e2W、f2X、f2WとしてそれぞれeXmax
X、fXmax、fXを選択する。
【0095】それ以外の場合には、入力入換部92は、
e2X、e2W、f2X、f2WとしてそれぞれeX、e
Xmax、fX、fXmaxを選択する。
【0096】e1Xとe1Wとの比較結果フラグF(e1
X>e1W)、フラグF(e1X==e1W)と、e2X
e2Wとの比較結果フラグF(e2X>e2W)、フラグ
F(e2X==e2W)と、f1Xとf1Wとの結果フラグ
F(f1X>f1W)と、f2 Xとf2Wとの比較結果フラ
グF(f2X>f2W)と、符号ビットsX、sXmin、s
Xmaxがクリップコード生成器23dに与えられる。
【0097】クリップコード生成器23dは、入力され
た浮動小数点データXがクリップ下限値Xminよりも
小さい場合に“1”となるクリップコードCODE(X
<Xmin)を次の論理式を実現する論理回路により生
成する。
【0098】 CODE(X<Xmin)=sX・(!sXmin)+(sx==sXmin)・{(e 1X>e1W)+(e1X==e1W)・(f1X>f1W)}…(7) また、同時に、クリップ座標の上限側に対するクリップ
コードについても、入力された浮動小数点データXがク
リップ上限値よりも大きい場合に1となるようなクリッ
プコードCODE(X>Xmax)が次の論理式を実現
する論理回路により生成される。
【0099】 CODE(X>Xmax)=(!sX)・sXmax+(sX==sXmax)・{(e 2X>e2W)+(e2X==e2W)・(f2X>f2W)}…(8) 以上のような構成にすることにより、任意のクリッピン
グ座標の上限および下限に対するクリップコードを同時
に求めることができるため、任意のクリッビングウイン
ドウに対するクリップコードをさらに高速に出力するこ
とが可能となる。
【0100】[実施の形態5]図10は、実施の形態5
に係る浮動小数点加算器分を説明するためのブロック図
である。
【0101】図10を参照して、浮動小数点加算器1
は、図1に示したように浮動小数点加算器の前処理部に
おいて、入力された2つの浮動小数点データを比較して
クリップコードを生成するものであり、これが3つ並列
に配置されている。各浮動小数点加算器には、同じ命令
FUNCが与えられ、3組の異なる入力数値対の加算や
減算およびクリップコード生成を行なう。
【0102】クリップコード生成の場合、x、y、zの
各座標軸におけるクリップ座標絶対値をWX、WY
Z、クリップ判定される座標値をX、Y、Zとする
と、XとWX、YとWY、ZとWZの各比較によるクリッ
プコードが同時に生成される。
【0103】このようにして、複数のクリップ座標軸に
対するクリップコード生成を高速に実行することができ
る。
【0104】今回開示された実施の形態はすべての点で
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
【0105】
【発明の効果】請求項1に記載の浮動小数点加算器は、
浮動小数点の加算や減算を行なうための機能ブロックを
流用してクリップコード生成のために必要なハードウェ
ア負荷を最低限に抑えることができる。
【0106】請求項2〜4に記載の浮動小数点加算器
は、請求項1に記載の浮動小数点加算器の奏する効果に
加えて、原点に対して対称なビューボリュームの正側お
よび負側の境界面との間のクリップコードを同時に生成
することができるために、回路規模の増大を抑えつつ、
かつ高速なクリップコード生成が可能となる。
【0107】請求項5〜7に記載の浮動小数点加算器
は、請求項1に記載の浮動小数点加算器の奏する効果に
加えて、任意のクリッピング座標に達するクリップコー
ドを命令に応じて高速に出力することが可能となる。
【0108】請求項8、9に記載の浮動小数点加算器
は、請求項1に記載の浮動小数点加算器の奏する効果に
加えて、クリップ座標が“±1”の場合のクリップコー
ドを同時に生成することができるために、回路規模の増
大を抑えつつ、かつ、高速なクリップコード生成が可能
となる。
【0109】請求項10、11に記載の浮動小数点加算
器は、浮動小数点の加算や減算を行なうための機能ブロ
ックを流用して、任意のクリッピングウインドウに対し
てクリップ上限値、下限値についてのクリップコード同
時に高速に生成することができる。
【0110】請求項12に記載の浮動小数点加算器は、
浮動小数点データの加算や減算を行なうための機能ブロ
ックを流用して、複数のクリップ座標軸に対するクリッ
プコード生成を高速に実行することができる。
【図面の簡単な説明】
【図1】 実施の形態1の浮動小数点加算器1の構成を
示すブロック図である。
【図2】 図1における前処理部10の構成を示すブロ
ック図である。
【図3】 図2におけるクリップコード生成器23aの
構成を示す回路図である。
【図4】 実施の形態2の浮動小数点加算器において用
いられる前処理部10bの構成を示すブロック図であ
る。
【図5】 図4におけるクリップコード生成器23bの
構成を示す回路図である。
【図6】 実施の形態3において用いられる前処理部1
0cの構成を示すブロック図である。
【図7】 図6におけるクリップコード生成器23cの
構成を示す回路図である。
【図8】 実施の形態4において用いられる前処理部1
0dの構成を示すブロック図である。
【図9】 図8に示したクリップコード生成器23dの
構成を示す回路図である。
【図10】 実施の形態5に係る浮動小数点加算器分を
説明するためのブロック図である。
【図11】 従来におけるクリップコードの発生を説明
するためのブロック図である。
【図12】 図11に示した前処理部510の構成を示
すブロック図である。
【符号の説明】
1 浮動小数点加算器、10,10b,10c,10d
前処理部、11 桁合せ部、12 仮数演算部、13
正規化部、14 後処理部、20,20b,20a
入力値検証部、21,21d 指数比較部、22,22
d 仮数比較部、23a,23b,23c クリップコ
ード生成器、24 選択信号生成器、50 入力入換
部、51,93 デコーダ、52,53,54,55,
94,95,96,97,98,99,100,10
1,121,122,123,124セレクタ、71,
72 クリップ検出部、91,92 入力入換部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小原 淳子 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 (72)発明者 ロバート ストライテンベルガー 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 Fターム(参考) 5B016 AA01 BA02 BB06 CA01 CB02 CD01 JA10 5B080 BA03

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 第1、第2の浮動小数点データを受け
    て、指数部比較結果と仮数部比較結果とクリップコード
    とを出力する前処理部を備え、 前記前処理部は、 前記第1、第2の浮動小数点データの指数部同士を比較
    して前記指数部比較結果を出力する指数比較部と、 前記第1、第2の浮動小数点データの仮数部同士を比較
    して前記仮数部比較結果を出力する仮数比較部と、 前記第1の浮動小数点データとクリップウインドウに対
    応する参照データとの大小関係に応じた前記クリップコ
    ードを出力するクリップコード生成部とを含み、 前記仮数部比較結果および前記指数部比較結果に応じ
    て、前記第1、第2の浮動小数点データの仮数部の桁合
    せを行なう桁合せ部と、 前記桁合せ部により桁合せされた前記第1、第2の浮動
    小数点データの仮数部の加算を行なう演算部と、 前記演算部の演算結果を受けて正規化を行なう正規化部
    とをさらに備える、浮動小数点加算器。
  2. 【請求項2】 前記クリップコード生成部は、前記指数
    部比較結果と前記仮数部比較結果とに応じて、前記クリ
    ップコードを出力する、請求項1に記載の浮動小数点加
    算器。
  3. 【請求項3】 前記指数部比較結果は、 前記第1の浮動小数点データの指数部が前記第2の浮動
    小数点データの指数部より大きいことを示す第1の信号
    と、 前記第1、第2の浮動小数点データの指数部が一致した
    ことを示す第2の信号とを含み、 前記仮数部比較結果は、 前記第1の浮動小数点データの仮数部が前記第2の浮動
    小数点データの仮数部より大きいことを示す第3の信号
    を含み、 前記参照データは、 前記第1、第2および第3の信号を含み、 前記クリップコード生成部は、 前記第2、第3の信号の論理積を演算し、かつ、前記論
    理積と前記第1の信号の論理和を出力する論理演算部を
    含む、請求項2に記載の浮動小数点加算器。
  4. 【請求項4】 前記クリップコード生成部は、 前記第1の浮動小数点データの符号ビットが正の数を表
    わす場合に前記論理演算部の出力に応じて第1のクリッ
    プコードを出力し、前記符号ビットが負の数を表わす場
    合に前記論理演算部の出力に応じて第2のクリップコー
    ドを出力するゲート部をさらに含む、請求項3に記載の
    浮動小数点加算器。
  5. 【請求項5】 前記浮動小数点加算器は、与えられる命
    令に応じて、前記第2の浮動小数点データを下限値とす
    るクリップウインドウに対する第1のクリップコード
    と、前記第2の浮動小数点データを上限値とするクリッ
    プウインドウに対する第2のクリップコードのいずれか
    を出力し、 前記前処理部は、 前記命令が前記第2の浮動小数点データを下限値とする
    クリップウインドウに対するクリップコードの出力を指
    示する場合には、前記第1、第2の浮動小数点データの
    指数部をそれぞれ第1の指数部データ、第2の指数部デ
    ータとして出力し、前記第1、第2の浮動小数点データ
    の仮数部をそれぞれ第1の仮数部データ、第2の仮数部
    データとして出力し、前記命令が前記第2の浮動小数点
    データを上限値とするクリップウインドウに対するクリ
    ップコードの出力を指示する場合には、前記第1、第2
    の浮動小数点データの指数部をそれぞれ前記第2の指数
    部データ、前記第1の指数部データとして出力し、前記
    第1、第2の浮動小数点データの仮数部をそれぞれ前記
    第2の仮数部データ、前記第1の仮数部データとして出
    力するデータ入換部をさらに含み、 前記指数部比較結果は、 前記第1の指数部データが前記第2の指数部データより
    大きいことを示す第1の信号と、 前記第1、第2の指数部データが一致したことを示す第
    2の信号とを含み、 前記仮数部比較結果は、 前記第1の仮数部データが前記第2の仮数部データより
    大きいことを示す第3の信号を含み、 前記参照データは、 前記第1、第2および第3の信号を含み、 前記クリップコード生成部は、 前記第2、第3の信号の論理積を演算し、かつ、前記論
    理積と前記第1の信号の論理和を出力する論理演算部を
    含む、請求項2に記載の浮動小数点加算器。
  6. 【請求項6】 前記データ入換部は、 前記命令を受けてデコードするデコーダと、 前記第1、第2の浮動小数点データの指数部を受けて、
    前記デコーダの出力に応じていずれか一方を選択し、前
    記第1の指数部データとして出力する第1の選択回路
    と、 前記第1、第2の浮動小数点データの指数部を受けて、
    前記デコーダの出力に応じて前記第1の選択回路と相補
    な選択を行ない前記第2の指数部データとして出力する
    第2の選択回路と、 前記第1、第2の浮動小数点データの仮数部を受けて、
    前記デコーダの出力に応じていずれか一方を選択し、前
    記第1の仮数部データとして出力する第3の選択回路
    と、 前記第1、第2の浮動小数点データの仮数部を受けて、
    前記デコーダの出力に応じて前記第3の選択回路と相補
    な選択を行ない前記第2の仮数部データとして出力する
    第4の選択回路とを含む、請求項5に記載の浮動小数点
    加算器。
  7. 【請求項7】 前記演算部は、与えられる命令に応じ
    て、前記桁合せ部により桁合せされた前記第1、第2の
    浮動小数点データの仮数部のいずれか一方から前記第
    1、第2の浮動小数点データの仮数部の他方を引く減算
    を行なう、請求項2に記載の浮動小数点加算器。
  8. 【請求項8】 前記参照データは、 1と−1とを含み、 前記前処理部は、 前記第1の浮動小数点データが0と一致しないことを検
    証する入力値検証部をさらに含み、 前記クリップコード生成部は、 前記第1の浮動小数点データの指数部および前記入力値
    検証部の出力を受けて前記第1の浮動小数点データの絶
    対値が1より大きいことを検出する論理演算部を含む、
    請求項1に記載の浮動小数点加算器。
  9. 【請求項9】 前記クリップコード生成部は、 前記第1の浮動小数点データの符号ビットが正の数を表
    わす場合に前記論理演算部の出力に応じて第1のクリッ
    プコードを出力し、前記符号ビットが負の数を表わす場
    合に前記論理演算部の出力に応じて第2のクリップコー
    ドを出力するゲート部をさらに含む、請求項8に記載の
    浮動小数点加算器。
  10. 【請求項10】 与えられる命令に応じて、第1の浮動
    小数点データに対するクリップコード発生と、前記第
    1、第2の浮動小数点データを入力とする演算のいずれ
    かを行なう浮動小数点加算器であって、 第1、第2の浮動小数点データを受けて、第1の指数部
    比較結果と第1の仮数部比較結果とクリップコードとを
    出力する前処理部を備え、 前記前処理部は、 前記第1、第2の浮動小数点データとクリップウインド
    ウの一方の境界に対応する第1の境界データとを受け
    て、前記命令が前記演算であるときは、前記第1、第2
    の浮動小数点データをそれぞれ第1、第2の入力データ
    として選択し、前記命令が前記クリップコード発生であ
    るときは、前記第1の浮動小数点データと前記第1の境
    界データとをそれぞれ前記第1、第2の入力データとし
    て選択する第1のデータ入換部と、 前記第1、第2の入力データの指数部同士を比較して前
    記第1の指数部比較結果を出力する第1の指数比較部
    と、 前記第1、第2の入力データの仮数部同士を比較して前
    記第1の仮数部比較結果を出力する第1の仮数比較部
    と、 前記第1の浮動小数点データとクリップウインドウの他
    方の境界に対応する第2の境界データの指数部同士を比
    較して第2の指数部比較結果を出力する第2の指数比較
    部と、 前記第1の浮動小数点データと前記第2の境界データの
    仮数部同士を比較して第2の仮数部比較結果を出力する
    第2の仮数比較部と、 前記第1、第2の指数部比較結果、前記第1、第2の仮
    数部比較結果に応じて前記クリップコードを出力するク
    リップコード生成部とを含み、 前記第1の仮数部比較結果および前記第1の指数部比較
    結果に応じて、前記第1、第2の浮動小数点データの仮
    数部の桁合せを行なう桁合せ部と、 前記桁合せ部により桁合せされた前記第1、第2の浮動
    小数点データの仮数部を用いた演算を行なう演算部と、 前記演算部の演算結果を受けて正規化を行なう正規化部
    とをさらに備える、浮動小数点加算器。
  11. 【請求項11】 前記命令は、 加算命令と、 減算命令とを含み、 前記演算部は、前記命令に応じて、前記第1、第2の浮
    動小数点データの仮数部を用いた演算を行なう、請求項
    10に記載の浮動小数点加算器。
  12. 【請求項12】 複数の座標軸にそれぞれ対応した複数
    の処理回路を備え、 各前記処理回路は、 前記座標軸に対応する第1、第2の浮動小数点データを
    受けて、指数部比較結果と仮数部比較結果とクリップコ
    ードとを出力する前処理部を含み、 前記前処理部は、 前記第1、第2の浮動小数点データの指数部同士を比較
    して前記指数部比較結果を出力する指数比較部と、 前記第1、第2の浮動小数点データの仮数部同士を比較
    して前記仮数部比較結果を出力する仮数比較部と、 前記第1の浮動小数点データとクリップウインドウに対
    応する参照データとの大小関係に応じた前記クリップコ
    ードを出力するクリップコード生成部とを有し、 前記仮数部比較結果および前記指数部比較結果に応じ
    て、前記第1、第2の浮動小数点データの仮数部の桁合
    せを行なう桁合せ部と、 前記桁合せ部により桁合せされた前記第1、第2の浮動
    小数点データの仮数部を用いた演算を行なう演算部と、 前記演算部の演算結果を受けて正規化を行なう正規化部
    とをさらに含む、浮動小数点加算器。
JP35887199A 1999-12-17 1999-12-17 浮動小数点加算器 Expired - Fee Related JP4439060B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP35887199A JP4439060B2 (ja) 1999-12-17 1999-12-17 浮動小数点加算器
US09/620,472 US6581087B1 (en) 1999-12-17 2000-07-20 Floating point adder capable of rapid clip-code generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35887199A JP4439060B2 (ja) 1999-12-17 1999-12-17 浮動小数点加算器

Publications (3)

Publication Number Publication Date
JP2001175880A true JP2001175880A (ja) 2001-06-29
JP2001175880A5 JP2001175880A5 (ja) 2007-02-08
JP4439060B2 JP4439060B2 (ja) 2010-03-24

Family

ID=18461538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35887199A Expired - Fee Related JP4439060B2 (ja) 1999-12-17 1999-12-17 浮動小数点加算器

Country Status (2)

Country Link
US (1) US6581087B1 (ja)
JP (1) JP4439060B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US8024393B2 (en) 1999-07-30 2011-09-20 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
CN111199133A (zh) * 2019-12-27 2020-05-26 成都锐成芯微科技股份有限公司 一种自动布线绕线的方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7599974B2 (en) * 2004-03-22 2009-10-06 Arm Limited Data processing apparatus and method for comparing floating point operands

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664618B2 (ja) 1986-02-07 1994-08-22 松下電器産業株式会社 クリツピング回路
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
US5157764A (en) 1989-01-13 1992-10-20 Sun Microsystems, Inc. Apparatus and method for using a test window in a graphics subsystem which incorporates hardware to perform clipping of images
EP0680020B1 (en) 1994-04-28 2003-02-05 Sun Microsystems, Inc. Apparatus and method for direct calculation of clip region outcodes
JP3203180B2 (ja) * 1996-03-27 2001-08-27 三菱電機株式会社 幾何学演算装置
JPH09330419A (ja) 1996-06-07 1997-12-22 Nippon Steel Corp 図形領域判別装置
US6175851B1 (en) * 1998-02-06 2001-01-16 S3 Incorporated Fast adder/subtractor for signed floating point numbers
US6401108B1 (en) * 1999-03-31 2002-06-04 International Business Machines Corp. Floating point compare apparatus and methods therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US7724261B2 (en) 1999-07-30 2010-05-25 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US8024393B2 (en) 1999-07-30 2011-09-20 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
CN111199133A (zh) * 2019-12-27 2020-05-26 成都锐成芯微科技股份有限公司 一种自动布线绕线的方法
CN111199133B (zh) * 2019-12-27 2023-09-15 成都锐成芯微科技股份有限公司 一种自动布线绕线的方法

Also Published As

Publication number Publication date
US6581087B1 (en) 2003-06-17
JP4439060B2 (ja) 2010-03-24

Similar Documents

Publication Publication Date Title
CN107769791B (zh) 用于定点到浮点的转换的装置和方法及2的负幂检测器
US5027308A (en) Circuit for adding/subtracting two floating point operands
US5148386A (en) Adder-subtracter for signed absolute values
JP4388543B2 (ja) 3項入力の浮動小数点加減算器
US5010508A (en) Prenormalization for a floating-point adder
JPH02500551A (ja) 浮動小数点正規化予測のための装置及び方法
JP3313560B2 (ja) 浮動小数点演算処理装置
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
CN111752526A (zh) 浮点相加
US7143126B2 (en) Method and apparatus for implementing power of two floating point estimation
CN111936965A (zh) 随机舍入逻辑
Takagi et al. A hardware algorithm for integer division
US6542915B1 (en) Floating point pipeline with a leading zeros anticipator circuit
GB2265741A (en) Computation of sticky-bit in parallel with multiplication
US7552165B2 (en) Method and system to implement an improved floating point adder with integrated adding and rounding
JP6290886B2 (ja) 装飾構成に基づくモーダル区間計算
JP7285966B2 (ja) 多入力浮動小数点加算器
JP2001175880A (ja) 浮動小数点加算器
US7401107B2 (en) Data processing apparatus and method for converting a fixed point number to a floating point number
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
JP2018097864A (ja) リーディングゼロ予想
JPH0511980A (ja) 桁あふれ検出方式とその回路
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
Nguyen et al. A combined IEEE half and single precision floating point multipliers for deep learning

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091021

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100105

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

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

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

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

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