(57)【特許請求の範囲】
【請求項１】
第１、第２の浮動小数点データを受けて、指数部比較結果と仮数部比較結果とクリップコードとを出力する前処理部を備え、
前記前処理部は、
前記第１、第２の浮動小数点データの指数部同士を比較して前記指数部比較結果を出力する指数比較部と、
前記第１、第２の浮動小数点データの仮数部同士を比較して前記仮数部比較結果を出力する仮数比較部と、
前記第１の浮動小数点データとクリップウインドウに対応する参照データとの大小関係に応じた前記クリップコードを出力するクリップコード生成部とを含み、
前記仮数部比較結果および前記指数部比較結果に応じて、前記第１、第２の浮動小数点データの仮数部の桁合せを行なう桁合せ部と、
前記桁合せ部により桁合せされた前記第１、第２の浮動小数点データの仮数部の加算を行なう演算部と、
前記演算部の演算結果を受けて正規化を行なう正規化部とをさらに備え、
前記クリップコード生成部は、前記指数部比較結果と前記仮数部比較結果とに応じて、前記クリップコードを出力し、
前記指数部比較結果は、
前記第１の浮動小数点データの指数部が前記第２の浮動小数点データの指数部より大きいことを示す第１の信号と、
前記第１、第２の浮動小数点データの指数部が一致したことを示す第２の信号とを含み、
前記仮数部比較結果は、
前記第１の浮動小数点データの仮数部が前記第２の浮動小数点データの仮数部より大きいことを示す第３の信号を含み、
前記参照データは、
前記第１、第２および第３の信号を含み、
前記クリップコード生成部は、
前記第２、第３の信号の論理積を演算し、かつ、前記論理積と前記第１の信号の論理和を出力する論理演算部を含む、浮動小数点加算器。
【請求項２】
前記クリップコード生成部は、
前記第１の浮動小数点データの符号ビットが正の数を表わす場合に前記論理演算部の出力に応じて第１のクリップコードを出力し、前記符号ビットが負の数を表わす場合に前記論理演算部の出力に応じて第２のクリップコードを出力するゲート部をさらに含む、請求項１に記載の浮動小数点加算器。
【請求項３】
浮動小数点加算器であって、
第１、第２の浮動小数点データを受けて、指数部比較結果と仮数部比較結果とクリップコードとを出力する前処理部を備え、
前記前処理部は、
前記第１、第２の浮動小数点データの指数部同士を比較して前記指数部比較結果を出力する指数比較部と、
前記第１、第２の浮動小数点データの仮数部同士を比較して前記仮数部比較結果を出力する仮数比較部と、
前記第１の浮動小数点データとクリップウインドウに対応する参照データとの大小関係に応じた前記クリップコードを出力するクリップコード生成部とを含み、
前記仮数部比較結果および前記指数部比較結果に応じて、前記第１、第２の浮動小数点データの仮数部の桁合せを行なう桁合せ部と、
前記桁合せ部により桁合せされた前記第１、第２の浮動小数点データの仮数部の加算を行なう演算部と、
前記演算部の演算結果を受けて正規化を行なう正規化部とをさらに備え、
前記クリップコード生成部は、前記指数部比較結果と前記仮数部比較結果とに応じて、前記クリップコードを出力し、
前記浮動小数点加算器は、与えられる命令に応じて、前記第２の浮動小数点データを下限値とするクリップウインドウに対する第１のクリップコードと、前記第２の浮動小数点データを上限値とするクリップウインドウに対する第２のクリップコードのいずれかを出力し、
前記前処理部は、
前記命令が前記第２の浮動小数点データを下限値とするクリップウインドウに対するクリップコードの出力を指示する場合には、前記第１、第２の浮動小数点データの指数部をそれぞれ第１の指数部データ、第２の指数部データとして出力し、前記第１、第２の浮動小数点データの仮数部をそれぞれ第１の仮数部データ、第２の仮数部データとして出力し、前記命令が前記第２の浮動小数点データを上限値とするクリップウインドウに対するクリップコードの出力を指示する場合には、前記第１、第２の浮動小数点データの指数部をそれぞれ前記第２の指数部データ、前記第１の指数部データとして出力し、前記第１、第２の浮動小数点データの仮数部をそれぞれ前記第２の仮数部データ、前記第１の仮数部データとして出力するデータ入換部をさらに含み、
前記指数部比較結果は、
前記第１の指数部データが前記第２の指数部データより大きいことを示す第１の信号と、
前記第１、第２の指数部データが一致したことを示す第２の信号とを含み、
前記仮数部比較結果は、
前記第１の仮数部データが前記第２の仮数部データより大きいことを示す第３の信号を含み、
前記参照データは、
前記第１、第２および第３の信号を含み、
前記クリップコード生成部は、
前記第２、第３の信号の論理積を演算し、かつ、前記論理積と前記第１の信号の論理和を出力する論理演算部を含む、浮動小数点加算器。
【請求項４】
前記データ入換部は、
前記命令を受けてデコードするデコーダと、
前記第１、第２の浮動小数点データの指数部を受けて、前記デコーダの出力に応じていずれか一方を選択し、前記第１の指数部データとして出力する第１の選択回路と、
前記第１、第２の浮動小数点データの指数部を受けて、前記デコーダの出力に応じて前記第１の選択回路と相補な選択を行ない前記第２の指数部データとして出力する第２の選択回路と、
前記第１、第２の浮動小数点データの仮数部を受けて、前記デコーダの出力に応じていずれか一方を選択し、前記第１の仮数部データとして出力する第３の選択回路と、
前記第１、第２の浮動小数点データの仮数部を受けて、前記デコーダの出力に応じて前記第３の選択回路と相補な選択を行ない前記第２の仮数部データとして出力する第４の選択回路とを含む、請求項３に記載の浮動小数点加算器。
【請求項５】
第１、第２の浮動小数点データを受けて、指数部比較結果と仮数部比較結果とクリップコードとを出力する前処理部を備え、
前記前処理部は、
前記第１、第２の浮動小数点データの指数部同士を比較して前記指数部比較結果を出力する指数比較部と、
前記第１、第２の浮動小数点データの仮数部同士を比較して前記仮数部比較結果を出力する仮数比較部と、
前記第１の浮動小数点データとクリップウインドウに対応する参照データとの大小関係に応じた前記クリップコードを出力するクリップコード生成部とを含み、
前記仮数部比較結果および前記指数部比較結果に応じて、前記第１、第２の浮動小数点データの仮数部の桁合せを行なう桁合せ部と、
前記桁合せ部により桁合せされた前記第１、第２の浮動小数点データの仮数部の加算を行なう演算部と、
前記演算部の演算結果を受けて正規化を行なう正規化部とをさらに備え、
前記参照データは、
１と−１とを含み、
前記前処理部は、
前記第１の浮動小数点データが０と一致しないことを検証する入力値検証部をさらに含み、
前記クリップコード生成部は、
前記第１の浮動小数点データの指数部および前記入力値検証部の出力を受けて前記第１の浮動小数点データの絶対値が１より大きいことを検出する論理演算部を含む、浮動小数点加算器。
【請求項６】
前記クリップコード生成部は、
前記第１の浮動小数点データの符号ビットが正の数を表わす場合に前記論理演算部の出力に応じて第１のクリップコードを出力し、前記符号ビットが負の数を表わす場合に前記論理演算部の出力に応じて第２のクリップコードを出力するゲート部をさらに含む、請求項５に記載の浮動小数点加算器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、浮動小数点データの大小比較演算を行なう浮動小数点加算器に関し、より特定的にはグラフィックス処理におけるクリッピング処理に有効に用いられる浮動小数点加算器に関する。
【０００２】
【従来の技術】
コンピュータグラフィックスでは、射影変換におけるビューボリューム内や２次元グラフィックスでの表示ウィンドウ内に表示対象の座標が存在するか否かの判定を行なうクリップ処理が行なわれる。クリップ処理については、たとえば、J.D.Foleyら著、「Computer Graphics: Principles and Practice」、１９９２年、第２７１頁―第２７８頁、Addison-Wesley Publishing Companyに記載されている。
【０００３】
クリップ処理には、表示対象の座標とクリップ処理の基準となる座標との大小を比較する比較演算が必要である。
【０００４】
一般に、コンピュータグラフィックスの座標には、浮動小数点データが用いられ、座標の大小判定は浮動小数点データを加減算することによって行なわれる。浮動小数点データの加算や減算は、原著Ｋ．Ｗａｎｄ，監訳  堀越，「コンピュータの高速演算方式」，第２９５頁−第２９９頁，１９８０年，近代科学社、およびJohn L.Hennessy and David A.Patterson 著、「Computer Architecture A Quantitative Approach」第Ａ-１６頁−第Ａ−２０頁、１９９０年、Morgan Kaufmann Publishers, Inc.にあるような処理フローによって行なわれる。
【０００５】
本明細書においては、第１、第２のデータ値の加算を行なう演算装置の他に第１のデータ値から第２のデータ値の減算を行なうことができる演算装置も加算器と呼ぶことにする。
【０００６】
従来は、表示対象の座標が表示ウィンドウ内に存在するか否かの指標であるクリップコードを浮動小数点加算器を用いて発生していた。
【０００７】
図１１は、従来におけるクリップコードの発生を説明するためのブロック図である。
【０００８】
図１１を参照して、従来は、クリップコードＣＯＤＥを浮動小数点加算器５０１とコード発生部５０２によって発生していた。
【０００９】
浮動小数点加算器５０１は、演算の種類等を表わす命令ＦＵＮＣおよび浮動小数点データＸ、Ｗを受ける前処理部５１０と、浮動小数点データＸ、Ｗの桁合せを行なう桁合せ部１１と、桁合せがされた浮動小数点データＸ、Ｗの仮数部の加算や減算を行なう仮数演算部１２と、仮数演算部１２の演算した結果を正規化する正規化部１３と、正規化部１３の出力に応じてフラグＦＬＡＧと演算結果ＲＥＳとを出力する後処理部１４とを含む。
【００１０】
コード発生部５０２は、浮動小数点加算器５０１が出力するフラグＦＬＡＧに含まれる零フラグや符号フラグの論理演算を別途行ないクリップコードＣＯＤＥを生成する。
【００１１】
図１２は、図１１に示した前処理部５１０の構成を示すブロック図である。
図１２を参照して、前処理部５１０は、命令ＦＵＮＣおよび２つの浮動小数点データＸ、Ｗが入力され特殊入力フラグＳＩＦを生成する入力値検証部２０と、２つの浮動小数点データＸ、Ｗのそれぞれの指数部ｅX、ｅW同士を比較する指数比較部２１と、浮動小数点データＸ、Ｗのそれぞれの仮数部ｆX、ｆW同士を比較する仮数比較部２２と、命令ＦＵＮＣ、浮動小数点データＸ、Ｗ、指数比較部２１の出力および仮数比較部２２の出力を受けて選択信号ＳＥＬを発生する選択信号生成器２４とを含む。選択信号ＳＥＬは、浮動小数点データＸ、Ｗのうちどちらを桁合せのためにシフトするかを選択するための信号である。
【００１２】
指数比較部２１は、指数部ｅX、ｅWの比較を行ないｅX＞ｅWであるときには、フラグＦ（ｅX＞ｅW）を１にする。指数部ｅXと指数部ｅWが一致したときには、フラグＦ（ｅX＝＝ｅW）を１にする。
【００１３】
仮数比較部２２は、仮数部ｆX、ｆWの比較を行ない、ｆX＞ｆWであるときにはフラグＦ（ｆX＞ｆW）を１にする。
【００１４】
ここで、クリップ処理が行なわれるときには、浮動小数点データＸは表示対象の座標を表わし、浮動小数点データＷはクリップウィンドウの座標を表わしている。
【００１５】
たとえば、ビューボリュームを形成する最大の座標値である浮動小数点データＷよりも浮動小数点データＸが大きい場合には、表示対象はビューボリュームの外にある。この場合にクリップコードＣＯＤＥは１となるが、このクリップコードＣＯＤＥを生成するには、まずＸ−Ｗの浮動小数点減算を行なう。
【００１６】
その演算結果の零フラグをＺ、符号フラグをＮとすると、図１１に示したコード発生部５０２は、ＺとＮのＮＯＲを演算してＸ＞Ｗであることを知り、クリップコードＣＯＤＥとして“１”を生成する。
【００１７】
他にクリップ処理を行なう方法としては、米国特許５，１５７，７６４のように専用のハードウェアを準備する方法がある。
【００１８】
【発明が解決しようとする課題】
従来のクリップコード生成方法では、図１１、図１２に示したように、浮動小数点の減算処理を行ない、その後に演算フラグを用いてクリップコードを生成するので、クリップコード生成までの処理時間が長いという問題点があった。一方、専用のハードウェアを用いる方法では、ハードウェア資源が大きくなってしまうという問題点があった。
【００１９】
本発明の目的は、クリップコード生成を回路規模の増大を抑えつつ高速に実行することが可能な浮動小数点加算器を提供することである。
【００２０】
【課題を解決するための手段】
この発明の浮動小数点加算器は、第１、第２の浮動小数点データを受けて、指数部比較結果と仮数部比較結果とクリップコードとを出力する前処理部を備え、前処理部は、第１、第２の浮動小数点データの指数部同士を比較して指数部比較結果を出力する指数比較部と、第１、第２の浮動小数点データの仮数部同士を比較して仮数部比較結果を出力する仮数比較部と、第１の浮動小数点データとクリップウインドウに対応する参照データとの大小関係に応じたクリップコードを出力するクリップコード生成部とを含み、仮数部比較結果および指数部比較結果に応じて、第１、第２の浮動小数点データの仮数部の桁合せを行なう桁合せ部と、桁合せ部により桁合せされた第１、第２の浮動小数点データの仮数部の加算を行なう演算部と、演算部の演算結果を受けて正規化を行なう正規化部とをさらに備える。
【００２１】
好ましくは、クリップコード生成部は、指数部比較結果と仮数部比較結果とに応じて、クリップコードを出力する。
【００２２】
より好ましくは、指数部比較結果は、第１の浮動小数点データの指数部が第２の浮動小数点データの指数部より大きいことを示す第１の信号と、第１、第２の浮動小数点データの指数部が一致したことを示す第２の信号とを含み、仮数部比較結果は、第１の浮動小数点データの仮数部が第２の浮動小数点データの仮数部より大きいことを示す第３の信号を含み、参照データは、第１、第２および第３の信号を含み、クリップコード生成部は、第２、第３の信号の論理積を演算し、かつ、論理積と第１の信号の論理和を出力する論理演算部を含む。
【００２３】
さらに好ましくは、クリップコード生成部は、第１の浮動小数点データの符号ビットが正の数を表わす場合に論理演算部の出力に応じて第１のクリップコードを出力し、符号ビットが負の数を表わす場合に論理演算部の出力に応じて第２のクリップコードを出力するゲート部をさらに含む。
【００２４】
より好ましくは、浮動小数点加算器は、与えられる命令に応じて、第２の浮動小数点データを下限値とするクリップウインドウに対する第１のクリップコードと、第２の浮動小数点データを上限値とするクリップウインドウに対する第２のクリップコードのいずれかを出力し、前処理部は、命令が第２の浮動小数点データを下限値とするクリップウインドウに対するクリップコードの出力を指示する場合には、第１、第２の浮動小数点データの指数部をそれぞれ第１の指数部データ、第２の指数部データとして出力し、第１、第２の浮動小数点データの仮数部をそれぞれ第１の仮数部データ、第２の仮数部データとして出力し、命令が第２の浮動小数点データを上限値とするクリップウインドウに対するクリップコードの出力を指示する場合には、第１、第２の浮動小数点データの指数部をそれぞれ第２の指数部データ、第１の指数部データとして出力し、第１、第２の浮動小数点データの仮数部をそれぞれ第２の仮数部データ、第１の仮数部データとして出力するデータ入換部をさらに含み、指数部比較結果は、第１の指数部データが第２の指数部データより大きいことを示す第１の信号と、第１、第２の指数部データが一致したことを示す第２の信号とを含み、仮数部比較結果は、第１の仮数部データが第２の仮数部データより大きいことを示す第３の信号を含み、参照データは、第１、第２および第３の信号を含み、クリップコード生成部は、第２、第３の信号の論理積を演算し、かつ、論理積と第１の信号の論理和を出力する論理演算部を含む。
【００２５】
さらに好ましくは、データ入換部は、命令を受けてデコードするデコーダと、第１、第２の浮動小数点データの指数部を受けて、デコーダの出力に応じていずれか一方を選択し、第１の指数部データとして出力する第１の選択回路と、第１、第２の浮動小数点データの指数部を受けて、デコーダの出力に応じて第１の選択回路と相補な選択を行ない第２の指数部データとして出力する第２の選択回路と、第１、第２の浮動小数点データの仮数部を受けて、デコーダの出力に応じていずれか一方を選択し、第１の仮数部データとして出力する第３の選択回路と、第１、第２の浮動小数点データの仮数部を受けて、デコーダの出力に応じて第３の選択回路と相補な選択を行ない第２の仮数部データとして出力する第４の選択回路とを含む。
【００２７】
好ましくは、参照データは、１と−１とを含み、前処理部は、第１の浮動小数点データが０と一致しないことを検証する入力値検証部をさらに含み、クリップコード生成部は、第１の浮動小数点データの指数部および入力値検証部の出力を受けて第１の浮動小数点データの絶対値が１より大きいことを検出する論理演算部を含む。
【００２８】
より好ましくは、クリップコード生成部は、第１の浮動小数点データの符号ビットが正の数を表わす場合に論理演算部の出力に応じて第１のクリップコードを出力し、符号ビットが負の数を表わす場合に論理演算部の出力に応じて第２のクリップコードを出力するゲート部をさらに含む。
【００３２】
【発明の実施の形態】
以下において、本発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。また、本実施の形態においては、浮動小数点の標準形式であるＩＥＥＥ標準（ANSI/IEEE Std.754-1985 "IEEE Standard for Binary Floating Point Arithmetic", Newyork:ANSI/IEEE,1985）の単精度浮動小数点表現形式を例として説明している。
【００３３】
［実施の形態１］
図１は、実施の形態１の浮動小数点加算器１の構成を示すブロック図である。
【００３４】
図１を参照して、浮動小数点加算器１は、命令ＦＵＮＣおよび２つの浮動小数点データＸ、Ｗを受け２つの浮動小数点データの前処理を行なうとともにクリップコードＣＯＤＥを出力する前処理部１０と、前処理部１０の出力に応じて浮動小数点データＸ、Ｗの桁合せを行なう桁合せ部１１と、桁合せが行なわれた浮動小数点データＸ、Ｗの加算や減算を行なう仮数演算部１２と、仮数演算部１２の演算結果を受けて正規化を行なう正規化部１３と、正規化部１３の出力を受けて後処理を行ない演算フラグＦＬＡＧおよび演算結果ＲＥＳを出力する後処理部１４とを含む。
【００３５】
図２は、図１における前処理部１０の構成を示すブロック図である。
図２を参照して、前処理部１０は、命令ＦＵＮＣおよび２つの浮動小数点データＸ、Ｗが入力され特殊入力フラグＳＩＦを生成する入力値検証部２０と、２つの浮動小数点データＸ、Ｗのそれぞれの指数部ｅX、ｅW同士を比較する指数比較部２１と、浮動小数点データＸ、Ｗのそれぞれの仮数部ｆX、ｆW同士を比較する仮数比較部２２と、命令ＦＵＮＣ、浮動小数点データＸ、Ｗ、指数比較部２１の出力および仮数比較部２２の出力を受けて選択信号ＳＥＬを発生する選択信号生成器２４とを含む。選択信号ＳＥＬは、浮動小数点データＸ、Ｗのうちどちらを桁合せのためにシフトするかを選択するための信号である。
【００３６】
指数比較部２１は、指数部ｅX、ｅWの比較を行ないｅX＞ｅWであるときには、フラグＦ（ｅX＞ｅW）を１にする。指数部ｅXと指数部ｅWが一致したときには、フラグＦ（ｅX＝＝ｅW）を１にする。
【００３７】
仮数比較部２２は、仮数部ｆX、ｆWの比較を行ない、ｆX＞ｆWであるときにはフラグＦ（ｆX＞ｆW）を１にする。
【００３８】
前処理部１０は、さらに、浮動小数点データＸの符号ビットｓXおよびフラグＦ（ｅX＞ｅW）、Ｆ（ｅX＝＝ｅW）、Ｆ（ｆX＞ｆW）を受けてクリップコードＣＯＤＥ（Ｘ＜−Ｗ）、ＣＯＤＥ（Ｘ＞Ｗ）を出力するクリップコード生成器２３ａを含む。
【００３９】
図３は、図２におけるクリップコード生成器２３ａの構成を示す回路図である。
【００４０】
図３を参照して、クリップコード生成器２３ａは、フラグＦ（ｅX＞ｅW）を受けて反転するインバータ３１と、フラグＦ（ｅX＝＝ｅW）、Ｆ（ｆX＞ｆW）を受けるＮＡＮＤ回路３０と、インバータ３１の出力およびＮＡＮＤ回路３０の出力を受けるＮＡＮＤ回路３２と、符号ビットｓXとＮＡＮＤ回路３２の出力とを受けてクリップコードＣＯＤＥ（Ｘ＜−Ｗ）を出力するＡＮＤ回路３３と、符号ビットｓXを受けて反転するインバータ３４と、インバータ３４の出力およびＮＡＮＤ回路３２の出力を受けてクリップコードＣＯＤＥ（Ｘ＞Ｗ）を出力するＡＮＤ回路３５とを含む。
【００４１】
以下、簡単に動作を説明する。
図２、図３を参照して、浮動小数点加算器に与えられた命令ＦＵＮＣ、浮動小数点データＸ、Ｗは前処理部１０にまず入力され、入力値検証部２０において入力値が浮動小数点表現における特殊な数値を表わす形態でないかがチェックされる。たとえば、ＩＥＥＥ標準の浮動小数点表現では、入力された数値の指数部、仮数部が全ビット０の場合には数値０を表わし、あるいは、指数部の全ビットが１で仮数部の全ビットが０の場合は∞を表わすが、入力値検証部２０では、このような特殊な入力値が与えられていないかの検証を行なう。
【００４２】
指数比較部２１は、浮動小数点データＸ、Ｗのそれぞれの指数部ｅX、ｅWの比較を行なう。また、仮数比較部２２は、浮動小数点データＸ、Ｗのそれぞれの仮数部ｆX、ｆWの比較を行なう。
【００４３】
指数比較部２１からは、指数部ｅXが指数部ｅWより大きい場合に１となるフラグＦ（ｅX＞ｅW）と指数部ｅXと指数部ｅWが等しい場合に１となるフラグＦ（ｅX＝＝ｅW）とが出力される。指数比較部２１からは、さらに、指数部ｅX、ｅWの差が桁合せシフト値ＳＶとして出力される。桁合せシフト値ＳＶは、図１に示した加算や減算における次の処理を行なう桁合せ部１１に与えられ、桁合せのためのシフト値として使われる。
【００４４】
仮数比較部２２は、仮数部ｆXがｆWより大きい場合に１となるフラグＦ（ｆX＞ｆW）を選択信号生成器２４およびクリップコード生成器２３ａに対して出力する。
【００４５】
選択信号生成器２４は、命令ＦＵＮＣ、浮動小数点データＸ、Ｗのそれぞれの符号ビットｓX、ｓWおよび指数比較部、仮数比較部が出力するフラグを受けて、シフトすべき浮動小数点データが浮動小数点データＸ、Ｗのいずれであるかを判定して、加算や減算における次処理を行なう図１に示した桁合せ部１１に出力する。
【００４６】
たとえば、浮動小数点データＸ、Ｗの両方が正の数で加算を行なう場合には、ｅX＞ｅWであるときには、浮動小数点データＸの指数部を基準として以後の処理を進めるために、選択信号生成器２４は、被シフト入力として仮数部ｆWを選択する。
【００４７】
また、浮動小数点データＸ、Ｗのいずれもが正の数で、Ｘ−Ｗの減算を行なう場合に、ｅXがｅWに等しいときには、選択信号生成器２４は、桁合せシフトがシフト値０なのでシフト処理は行なわない。しかし、仮数部減算結果が負の数とならないように、仮数比較部２２の比較結果に基づいてｆX＜ｆWであれば浮動小数点データＷを基準とした減算−（Ｗ−Ｘ）を行なうように、選択信号生成器２４は加算や減算における次段以後を制御する。
【００４８】
クリップコード生成器２３ａでは、命令ＦＵＮＣにかかわらず常に浮動小数点データＸ、Ｗに応じてクリップコードが発生される。クリップコード生成器２３ａにはフラグＦ（ｅX＞ｅW）、フラグＦ（ｅX＝＝ｅW）、フラグＦ（ｆX＞ｆW）および浮動小数点データＸの符号ビットｓXが与えられる。浮動小数点データＷ（ただしＷ＞０）をクリップ座標とする場合クリップコード生成器２３ａはクリップコードＣＯＤＥ（Ｘ＜−Ｗ）、ＣＯＤＥ（Ｘ＞Ｗ）を出力する。
【００４９】
ＣＯＤＥ（Ｘ＜−Ｗ）はＸ＜−Ｗの場合に１となるクリップコードであり、ＣＯＤＥ（Ｘ＞Ｗ）は、Ｘ＞Ｗの場合に１となるクリップコードである。これらのクリップコードは同時に生成され、次の式（１）、（２）で与えられる。
【００５０】
ＣＯＤＥ（Ｘ＜−Ｗ）＝ｓX・｛（ｅX＞ｅW）＋（ｅX＝＝ｅW）・（ｆX＞ｆW）｝…（１）
ＣＯＤＥ（Ｘ＜Ｗ）＝（！ｓX）・｛（ｅX＞ｅW）＋（ｅX＝＝ｅW）・（ｆX＞ｆW）｝…（２）
但し符号ビットｓXは浮動小数点データＸが正の数の場合に０になり、また！は反転を表わしており、（Ａ＝＝Ｂ）はＡとＢが一致したときに論理値“１”となることを表わしている。
【００５１】
以上説明したように、実施の形態１の浮動小数点加算器は、通常の浮動小数点演算に必要な指数部比較結果フラグおよび仮数部比較結果フラグを用いることにより、小規模の回路追加で、絶対値の等しい正負両側のクリップ座標に対するクリップコードを高速に生成することができる。
【００５２】
［実施の形態２］
図４は、実施の形態２の浮動小数点加算器において用いられる前処理部１０ｂの構成を示すブロック図である。
【００５３】
図４を参照して、前処理部１０ｂは、クリップコード生成器２３ａに代えてクリップコード生成器２３ｂを含み、入力値検証部２０に代えて入力値検証部２０ｂを含む点が図２に示した前処理部１０と異なる。他の構成は、前処理部１０と同様であるので説明は繰返さない。
【００５４】
入力値検証部２０ｂは、図２に示した入力値検証部２０と同様の機能を有しているが、その過程で生成される浮動小数点データＸの仮数部が０でない場合に１となるフラグＦ（ｆX≠０）をクリップコード生成器２３ｂに出力する機能が付加されている。
【００５５】
図５は、図４におけるクリップコード生成器２３ｂの構成を示す回路図である。
【００５６】
図５を参照して、クリップコード生成器２３ｂは、指数部のビットｅX<０>〜ｅX<６>およびフラグＦ（ｆX≠０）を受けるＮＡＮＤ回路４０と、指数部のビットｅX<７>を受けて反転するインバータ４１と、インバータ４１の出力およびＮＡＮＤ回路４０の出力を受けるＮＡＮＤ回路４２と、符号ビットｓXおよびＮＡＮＤ回路４２の出力を受けてクリップコードＣＯＤＥ（Ｘ＜−１）を出力するＡＮＤ回路４３と、符号ビットｓXを受けて反転するインバータ４４と、インバータ４４の出力およびＮＡＮＤ回路４２の出力を受けてクリップコードＣＯＤＥ（Ｘ＞１）を出力するＡＮＤ回路４５とを含む。
【００５７】
クリップコード生成器２３ｂは、供給された数値の符号ビットｓXおよび指数部ｅXおよび入力値検証部２０ａからのフラグとの間で論理演算を行なう。ここでは、単精度浮動小数点データを扱う場合を例として示し、指数部ｅXは８ビットで表わしており、ｅX<７>はそのＭＳＢ（最上位ビット）、ｅX<０>はＬＳＢ（最下位ビット）を表わしている。
【００５８】
なお、クリップ座標を±Ｗに設定したり、“±１”に固定したりするのは３次元のグラフィックス処理において一般によく用いられる手法である。
【００５９】
実施の形態２で示した発明においては、クリップ座標は固定された“±１”であり、クリップコード生成器２３ｂは、浮動小数点加算器の入力データである浮動小数点データＸと“＋１”および“−１”との大小関係を検証してコード化を行なう。
【００６０】
ＩＥＥＥ標準の単精度浮動小数点数値表現における“１”は、指数部が２進数表現で“０１１１１１１１”かつ仮数部が“０”の場合であるので、符号を考慮すると、浮動小数点加算器の入力である浮動小数点データＸが“＋１”よりも大きくなる場合に１となるクリップコードＣＯＤＥ（Ｘ＞１）は次の論理式で与えられる。
【００６１】
ＣＯＤＥ（Ｘ＞１）＝（！ｓX）・｛ｅX<７>＋（ｅX<６：０>＝＝１１１１１１１）・（ｆX≠０）｝…（３）
また、浮動小数点データＸが“−１”よりも小さい場合に“１”となるクリップコードＣＯＤＥ（Ｘ＜−１）は、次の論理式で与えられる。
【００６２】
ＣＯＤＥ（Ｘ＜−１）＝ｓX・｛ｅX<７>＋（ｅX<６：０>＝＝１１１１１１１）・（ｆX≠０）｝…（４）
式（３）、（４）を論理ゲートによって実現したのが図５で示したクリップコード生成器である。
【００６３】
なお、実施の形態２の場合においても、命令ＦＵＮＣによらず入力された浮動小数点データＸ、Ｗに基づきクリップコードを常に生成する。このクリップコードは、たとえば射影変換を行なう他の演算部によって使用するかしないかが判断される。
【００６４】
以上説明したように、実施の形態２の浮動小数点加算器は、浮動小数点の加算や減算に必要な入力値検証部において生成される入力値の仮数部検証結果を流用してクリップコードを発生するため、回路規模の増加を抑えつつ、クリップ座標が“±１”の場合に対するクリップコードを高速に生成することができる。
【００６５】
［実施の形態３］
図６は、実施の形態３において用いられる前処理部１０ｃの構成を示すブロック図である。
【００６６】
図６を参照して、前処理部１０ｃは、図２に示した前処理部１０の構成においてクリップコード生成器２３ａに代えて２３ｃを含み、さらに、入力入換部５０を含む。
【００６７】
指数比較部２１は、指数部ｅX、ｅWに代えて入力入換部５０が出力する指数部ｅ１X、ｅ１Wを受ける。仮数比較部２２は、仮数部ｆX、ｆWに代えて仮数部ｆ１X、ｆ１Wを受ける。
【００６８】
入力入換部５０は、命令ＦＵＮＣおよび符号ビットｓXを受けるデコーダ５１と、デコーダ５１の出力に応じて指数部ｅXと指数部ｅWのいずれか一方を指数部ｅ１Xとして出力するセレクタ５２と、デコーダ５１の出力に応じて指数部ｅW、ｅXのいずれか一方を指数部ｅ１Wとして出力するセレクタ５３と、デコーダ５１の出力に応じて仮数部ｆX、ｆWのいずれか一方を仮数部ｆ１Xとして出力するセレクタ５４と、デコーダ５１の出力に応じて仮数部ｆW、ｆXのいずれか一方を仮数部ｆ１Wとして出力するセレクタ５５とを含む。
【００６９】
他の構成は、図２に示した前処理部１０と同様であるため説明は繰返さない。
図７は、図６におけるクリップコード生成器２３ｃの構成を示す回路図である。
【００７０】
図７を参照して、クリップコード生成器２３ｃは、図６に示した指数比較部２１が出力するフラグＦ（ｅ１X＞ｅ１W）を受けて反転するインバータ６０と、フラグＦ（ｅ１X＝＝ｅ１W）とフラグＦ（ｆ１X＞ｆ１W）とを受けるＮＡＮＤ回路６１と、インバータ６０の出力とＮＡＮＤ回路６１の出力とを受けるＮＡＮＤ回路６２と、浮動小数点データＷの符号ビットｓWを受けて反転するインバータ６３と、浮動小数点データＸの符号ビットｓXを受けて反転するインバータ６４と、符号ビットｓXとインバータ６３の出力を受けるＮＡＮＤ回路６５と、インバータ６４の出力と符号ビットｓWとを受けるＮＡＮＤ回路６６と、ＮＡＮＤ回路６５、６６の出力を受けるＡＮＤ回路６７と、ＮＡＮＤ回路６２の出力およびＡＮＤ回路６７の出力を受けるＮＡＮＤ回路６８とを含む。
【００７１】
クリップコード生成器２３ｃは、さらに、ＮＡＮＤ回路６５、６８の出力を受けるＮＡＮＤ回路６９と、ＮＡＮＤ回路６６、６８の出力を受けるＮＡＮＤ回路７０と、命令ＦＵＮＣを受けてクリップウィンドウ座標の最小値に対するクリップ処理を行なう命令であることを検出して信号ＣＬＩＰＭＩＮを出力するクリップ検出部７１と、命令ＦＵＮＣを受けてクリップウィンドウ座標の最大値に対するクリップ処理を行なうことを検出して信号ＣＬＩＰＭＡＸを出力するクリップ検出部７２と、ＮＡＮＤ回路６９の出力および信号ＣＬＩＰＭＩＮを受けるＮＡＮＤ回路７３と、ＮＡＮＤ回路７０の出力と信号ＣＬＩＰＭＡＸを受けるＮＡＮＤ回路７４と、ＮＡＮＤ回路７３、７４の出力を受けてクリップコードＣＯＤＥ（Ｘ＞Ｘｍａｘ，Ｘ＜Ｘｍｉｎ）を出力するＮＡＮＤ回路７５とを含む。
【００７２】
図６、図７を参照して簡単に動作を説明すると、クリップコード生成器２３ｃは、供給された命令ＦＵＮＣ、符号ビットｓX、ｓWおよび比較結果フラグとの間で論理演算を行ない、命令に応じたクリップコードを出力する。
【００７３】
デコーダ５１では、命令ＦＵＮＣが加算命令あるいは減算命令の場合には、指数比較部２１および仮数比較部２２に対して図２、図４で示したクリップコード生成器２３ａ、２３ｂと同様の入力になるようにｅ１X、ｅ１W、ｆ１X、ｆ１WとしてそれぞれｅX、ｅW、ｆX、ｆWが選択される。
【００７４】
一方、命令ＦＵＮＣがクリップ座標の下限側に対するクリップコード生成である場合には、符号ビットｓXが“０”の場合、すなわち、入力された浮動小数点データＸが正の数の場合に、指数比較部２１および仮数比較部２２への入力データの入換が起こる。この場合には、ｅ１X、ｅ１W、ｆ１X、ｆ１WとしてそれぞれｅW、ｅX、ｆW、ｆXが選択される。
【００７５】
同様に、命令ＦＵＮＣがクリップ座標の上限側に対するクリップコード生成である場合には、符号ビットｓXが“１”の場合、すなわち、入力された浮動小数点データＸが負の数の場合に、指数比較部２１および仮数比較部２２への入力データの入換が起こる。
【００７６】
与えられた命令ＦＵＮＣがクリップ座標の下限側に対するクリップコード生成である場合には、クリップコード生成器２３ｃは、Ｘがクリップ下限値よりも小さい場合に１となるクリップコードＣＯＤＥ（Ｘ＞Ｘｍａｘ，Ｘ＜Ｘｍｉｎ）を次の論理式を表現する論理回路により生成する。
【００７７】
ＣＯＤＥ（Ｘ＞Ｘｍａｘ，Ｘ＜Ｘｍｉｎ）＝ｓX・（！ｓW）＋（ｓX＝＝ｓW）・｛（ｅ１X＞ｅ１W）＋（ｅ１X＝＝ｅ１W）・（ｆ１X＞ｆ１W）｝…（５）
一方、与えられた命令ＦＵＮＣがクリップ座標の上限側に対するクリップコード生成である場合には、クリップコード生成器２３ｃは、入力された浮動小数点データＸがクリップ上限値よりも大きい場合に１となるクリップコードＣＯＤＥ（Ｘ＞ＸＭａｘ，Ｘ＜Ｘｍｉｎ）を次の論理式を表現する論理回路により生成する。
【００７８】
ＣＯＤＥ（Ｘ＞Ｘｍａｘ，Ｘ＜Ｘｍｉｎ）＝（！ｓX）・ｓW＋（ｓX＝＝ｓW）・｛（ｅ１X＞ｅ１W）＋（ｅ１X＝＝ｅ１W）・（ｆ１X＞ｆ１W）｝…（６）
以上説明したように、実施の形態３の浮動小数点加算器では、加算器としての機能ブロックを流用してクリップコード生成のために必要なハードウェアの負荷を最低限に抑えた上で、任意のクリッピング座標に対するクリップコードを命令に応じて高速に出力することが可能となる。
【００７９】
［実施の形態４］
図８は、実施の形態４において用いられる前処理部１０ｄの構成を示すブロック図である。
【００８０】
図８を参照して、前処理部１０ｄは、図２で示した前処理部１０の構成においてクリップコード生成器２３ａに代えてクリップコード生成器２３ｄを含み、さらに、入力入換部９１、９２と、指数比較部２１ｄと、仮数比較部２２ｄとを含む。
【００８１】
入力入換部９１は、符号ビットｓXに応じて指数部ｅXとクリップ処理時に与えられる下限値データＸｍｉｎの指数部ｅXminのいずれかを選択出力するセレクタ９４と、符号ビットｓXに応じて指数部ｅXmin、ｅXのいずれか一方を出力するセレクタ９５と、符号ビットｓXに応じて仮数部ｆXとクリップ座標下限値Ｘｍｉｎの仮数部ｆXminのいずれか一方を出力するセレクタ９６と、仮数部ｆXmin、ｆXのいずれか一方を符号ビットｓXに応じて出力するセレクタ９７とを含む。
【００８２】
入力入換部９１は、さらに、命令ＦＵＮＣを受けてデコードするデコーダ９３と、デコーダ９３の出力に応じて指数部ｅXとセレクタ９４の出力のいずれか一方を指数部ｅ１Xとして出力するセレクタ９８と、デコーダ９３の出力に応じて指数部ｅWとセレクタ９５の出力のいずれか一方を指数部ｅ１Wとして出力するセレクタ９９と、デコーダ９３の出力に応じて仮数部ｆXとセレクタ９６の出力のいずれか一方を仮数部ｆ１Xとして出力するセレクタ１００と、デコーダ９３の出力に応じて仮数部ｆWとセレクタ９７の出力のいずれか一方を仮数部ｆ１Wとして出力するセレクタ１０１とを含む。
【００８３】
入力入換部９１はこのようにして選択された指数部ｅ１X、ｅ１Wを指数比較部２１に対して出力し、仮数部ｆ１X、ｆ１Wを仮数比較部２２に対して出力する。
【００８４】
入力入換部９２は、符号ビットｓXに応じてクリップ座標の上限値Ｘｍａｘの指数部ｅXmaxと指数部ｅXのいずれか一方を指数部ｅ２Xとして出力するセレクタ１２１と、符号ビットｓXに応じて指数部ｅXと指数部ｅXmaxのいずれか一方を指数部ｅ２Wとして出力するセレクタ１２２と、符号ビットｓXに応じてクリップ座標の上限値Ｘｍａｘの仮数部ｆXmaxと仮数部ｆXのいずれか一方を仮数部ｆ２Xとして出力するセレクタ１２３と、符号ビットｓXに応じて仮数部ｆX、ｆXmaxのいずれか一方を仮数部ｆ２Wとして出力するセレクタ１２４とを含む。
【００８５】
指数比較部２１ｄは、指数部ｅ２X、ｅ２Wを受けてフラグＦ（ｅ２X＞ｅ２W）とフラグＦ（ｅ２X＝＝ｅ２W）を出力する。
【００８６】
仮数比較部２２ｄは、仮数部ｆ２X、ｆ２Wを受けてフラグＦ（ｆ２X＞ｆ２W）を出力する。
【００８７】
図９は、図８に示したクリップコード生成器２３ｄの構成を示す回路図である。
【００８８】
図９を参照して、クリップコード生成器２３ｄは、フラグＦ（ｅ１X＞ｅ１W）を受けて反転するインバータ１３０と、フラグＦ（ｅ１X＝＝ｅ１W）、フラグＦ（ｆ１X＞ｆ１W）を受けるＮＡＮＤ回路１３１と、インバータ１３０の出力およびＮＡＮＤ回路１３１の出力を受けるＮＡＮＤ回路１３２と、クリップ座標の下限値Ｘｍｉｎの符号ビットｓXminを受けて反転するインバータ１３４と、符号ビットｓXを受けて反転するインバータ１３３と、インバータ１３３の出力および符号ビットｓXminを受けるＮＡＮＤ回路１３５と、インバータ１３４の出力および符号ビットｓXを受けるＮＡＮＤ回路１３６と、ＮＡＮＤ回路１３５、１３６の出力を受けるＡＮＤ回路１３７と、ＮＡＮＤ回路１３２の出力およびＡＮＤ回路１３７の出力を受けるＮＡＮＤ回路１３８と、ＮＡＮＤ回路１３６、１３８の出力を受けてクリップコードＣＯＤＥ（Ｘ＜Ｘｍｉｎ）を出力するＮＡＮＤ回路１３９とを含む。
【００８９】
クリップコード生成器２３ｄは、さらに、フラグＦ（ｅ２X＞ｅ２W）を受けて反転するインバータ１５０と、フラグＦ（ｅ２X＝＝ｅ２W）およびフラグＦ（ｆ２X＞ｆ２W）を受けるＮＡＮＤ回路１５１と、インバータ１５０の出力およびＮＡＮＤ回路１５１の出力を受けるＮＡＮＤ回路１５２と、クリップ座標の上限値Ｘｍａｘの符号ビットｓXmaxを受けて反転するインバータ１５３と、符号ビットｓXを受けて反転するインバータ１５４と、インバータ１５３の出力および符号ビットｓXを受けるＮＡＮＤ回路１５５と、インバータ１５４の出力および符号ビットｓXmaxを受けるＮＡＮＤ回路１５６と、ＮＡＮＤ回路１５５、１５６の出力を受けるＡＮＤ回路１５７と、ＮＡＮＤ回路１５２の出力およびＡＮＤ回路１５７の出力を受けるＮＡＮＤ回路１５８と、ＮＡＮＤ回路１５６、１５８の出力を受けてクリップコードＣＯＤＥ（Ｘ＞Ｘｍａｘ）を出力するＮＡＮＤ回路１５９とを含む。
【００９０】
次に、図８、図９を参照して簡単に動作を説明する。命令ＦＵＮＣが加減算命令の場合には、指数比較部２１、仮数比較部２２には図２で示した指数比較部２１、仮数比較部２２と同様な入力が与えられるようにｅ１X、ｅ１W、ｆ１X、ｆ１WにはそれぞれｅX、ｅW、ｆX、ｆWがそれぞれ選択される。
【００９１】
一方、命令ＦＵＮＣがクリップコード生成命令の場合には、別途外部より入力されるクリップ座標下限値Ｘｍｉｎが、入力される浮動小数点データＸとそれぞれ独立して並列的に指数比較部２１、仮数比較部２２で比較されるように入力入換部９１によって選択が行なわれる。また、別途外部より入力されるクリップ座標上限値Ｘｍａｘが、入力される浮動小数点データＸとそれぞれ独立して並列的に指数比較部２１ｄ、仮数比較部２２ｄで比較されるように入力入換部９２によって選択が行なわれる。
【００９２】
クリップコード命令において、入力された浮動小数点データＸの符号ビットｓXが“１”、すなわち浮動小数点データＸが負の数の場合には、指数比較部２１および仮数比較部２２への入力には入換が起こる。このときには、入力入換部９１は、ｅ１X、ｅ１W、ｆ１X、ｆ１WとしてそれぞれｅXmin、ｅX、ｆXmin、ｆXを選択する。
【００９３】
それ以外の場合には、入力入換部９１は、ｅ１X、ｅ１W、ｆ１X、ｆ１WとしてそれぞれｅX、ｅXmin、ｆX、ｆXminを選択する。
【００９４】
指数比較部２１ｄ、仮数比較部２２ｄへの入力は、浮動小数点データＸの符号ビットｓXが“０”、すなわち、浮動小数点データＸが正の場合に入換が起こる。このときには、入力入換部９２は、ｅ２X、ｅ２W、ｆ２X、ｆ２WとしてそれぞれｅXmax、ｅX、ｆXmax、ｆXを選択する。
【００９５】
それ以外の場合には、入力入換部９２は、ｅ２X、ｅ２W、ｆ２X、ｆ２WとしてそれぞれｅX、ｅXmax、ｆX、ｆXmaxを選択する。
【００９６】
ｅ１Xとｅ１Wとの比較結果フラグＦ（ｅ１X＞ｅ１W）、フラグＦ（ｅ１X＝＝ｅ１W）と、ｅ２Xとｅ２Wとの比較結果フラグＦ（ｅ２X＞ｅ２W）、フラグＦ（ｅ２X＝＝ｅ２W）と、ｆ１Xとｆ１Wとの結果フラグＦ（ｆ１X＞ｆ１W）と、ｆ２Xとｆ２Wとの比較結果フラグＦ（ｆ２X＞ｆ２W）と、符号ビットｓX、ｓXmin、ｓXmaxがクリップコード生成器２３ｄに与えられる。
【００９７】
クリップコード生成器２３ｄは、入力された浮動小数点データＸがクリップ下限値Ｘｍｉｎよりも小さい場合に“１”となるクリップコードＣＯＤＥ（Ｘ＜Ｘｍｉｎ）を次の論理式を実現する論理回路により生成する。
【００９８】
ＣＯＤＥ（Ｘ＜Ｘｍｉｎ）＝ｓX・（！ｓXmin）＋（ｓx＝＝ｓXmin）・｛（ｅ１X＞ｅ１W）＋（ｅ１X＝＝ｅ１W）・（ｆ１X＞ｆ１W）｝…（７）
また、同時に、クリップ座標の上限側に対するクリップコードについても、入力された浮動小数点データＸがクリップ上限値よりも大きい場合に１となるようなクリップコードＣＯＤＥ（Ｘ＞Ｘｍａｘ）が次の論理式を実現する論理回路により生成される。
【００９９】
ＣＯＤＥ（Ｘ＞Ｘｍａｘ）＝（！ｓX）・ｓXmax＋（ｓX＝＝ｓXmax）・｛（ｅ２X＞ｅ２W）＋（ｅ２X＝＝ｅ２W）・（ｆ２X＞ｆ２W）｝…（８）
以上のような構成にすることにより、任意のクリッピング座標の上限および下限に対するクリップコードを同時に求めることができるため、任意のクリッビングウインドウに対するクリップコードをさらに高速に出力することが可能となる。
【０１００】
［実施の形態５］
図１０は、実施の形態５に係る浮動小数点加算器を説明するためのブロック図である。
【０１０１】
図１０を参照して、浮動小数点加算器１は、図１に示したように浮動小数点加算器の前処理部において、入力された２つの浮動小数点データを比較してクリップコードを生成するものであり、これが３つ並列に配置されている。各浮動小数点加算器には、同じ命令ＦＵＮＣが与えられ、３組の異なる入力数値対の加算や減算およびクリップコード生成を行なう。
【０１０２】
クリップコード生成の場合、ｘ、ｙ、ｚの各座標軸におけるクリップ座標絶対値をＷX、ＷY、ＷZ、クリップ判定される座標値をＸ、Ｙ、Ｚとすると、ＸとＷX、ＹとＷY、ＺとＷZの各比較によるクリップコードが同時に生成される。
【０１０３】
このようにして、複数のクリップ座標軸に対するクリップコード生成を高速に実行することができる。
【０１０４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１０５】
【発明の効果】
本発明の浮動小数点加算器は、浮動小数点の加算や減算を行なうための機能ブロックを流用してクリップコード生成のために必要なハードウェア負荷を最低限に抑えることができる。
【０１０６】
好ましくは、原点に対して対称なビューボリュームの正側および負側の境界面との間のクリップコードを同時に生成することができるために、回路規模の増大を抑えつつ、かつ高速なクリップコード生成が可能となる場合がある。
【０１０７】
好ましくは、任意のクリッピング座標に達するクリップコードを命令に応じて高速に出力することが可能となる場合がある。
【０１０８】
好ましくは、クリップ座標が“±１”の場合のクリップコードを同時に生成することができるために、回路規模の増大を抑えつつ、かつ、高速なクリップコード生成が可能となる場合がある。
【図面の簡単な説明】
【図１】  実施の形態１の浮動小数点加算器１の構成を示すブロック図である。
【図２】  図１における前処理部１０の構成を示すブロック図である。
【図３】  図２におけるクリップコード生成器２３ａの構成を示す回路図である。
【図４】  実施の形態２の浮動小数点加算器において用いられる前処理部１０ｂの構成を示すブロック図である。
【図５】  図４におけるクリップコード生成器２３ｂの構成を示す回路図である。
【図６】  実施の形態３において用いられる前処理部１０ｃの構成を示すブロック図である。
【図７】  図６におけるクリップコード生成器２３ｃの構成を示す回路図である。
【図８】  実施の形態４において用いられる前処理部１０ｄの構成を示すブロック図である。
【図９】  図８に示したクリップコード生成器２３ｄの構成を示す回路図である。
【図１０】  実施の形態５に係る浮動小数点加算器を説明するためのブロック図であ
る。
【図１１】  従来におけるクリップコードの発生を説明するためのブロック図である。
【図１２】  図１１に示した前処理部５１０の構成を示すブロック図である。
【符号の説明】
１  浮動小数点加算器、１０，１０ｂ，１０ｃ，１０ｄ  前処理部、１１  桁合せ部、１２  仮数演算部、１３  正規化部、１４  後処理部、２０，２０ｂ，２０ａ  入力値検証部、２１，２１ｄ  指数比較部、２２，２２ｄ  仮数比較部、２３ａ，２３ｂ，２３ｃ  クリップコード生成器、２４  選択信号生成器、５０  入力入換部、５１，９３  デコーダ、５２，５３，５４，５５，９４，９５，９６，９７，９８，９９，１００，１０１，１２１，１２２，１２３，１２４セレクタ、７１，７２  クリップ検出部、９１，９２  入力入換部。
【図１】
0004439060.tif 000002
【図２】
0004439060.tif 000003
【図３】
0004439060.tif 000004
【図４】
0004439060.tif 000005
【図５】
0004439060.tif 000006
【図６】
0004439060.tif 000007
【図７】
0004439060.tif 000008
【図８】
0004439060.tif 000009
【図９】
0004439060.tif 000010
【図１０】
0004439060.tif 000011
【図１１】
0004439060.tif 000012
【図１２】
0004439060.tif 000013