JP3583474B2 - 乗算装置 - Google Patents
乗算装置 Download PDFInfo
- Publication number
- JP3583474B2 JP3583474B2 JP14800894A JP14800894A JP3583474B2 JP 3583474 B2 JP3583474 B2 JP 3583474B2 JP 14800894 A JP14800894 A JP 14800894A JP 14800894 A JP14800894 A JP 14800894A JP 3583474 B2 JP3583474 B2 JP 3583474B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- bit
- multiplication
- represented
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000284 extract Substances 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 238000000034 method Methods 0.000 description 10
- 239000003086 colorant Substances 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Image Generation (AREA)
Description
【産業上の利用分野】
この発明は乗算装置に関し、特に三次元コンピュータグラフィックスを中心としたコンピュータグラフィックス技術における数値計算を高速処理できる乗算装置に関する。
【0002】
【従来の技術】
近年、コンピュータの高性能化に伴い、コンピュータグラフィックス技術が急速に発展している。コンピュータグラフィックスは、各種科学技術計算結果の可視化や、人工現実感等を達成する上で必要な技術で、その実現には極めて高速の数値演算処理が必要とされる。
【0003】
コンピュータグラフィックスにおいて質の高い画面を得ようとする場合、画面上に現れる全光線を追跡するレイトレーシング法や、グーロウシェイディング法、フォンシェーディング法などの各種シェーディング法が用いられる。いずれの方式においても計算の途中において物体の各点での輝度を決定するために次のような計算が行なわれる。
【0004】
【数1】
【0005】
ここで、Iは物体各点での光線の輝度であり、Iiをこの点に入射する光線の輝度値であり、Xiは光線の角度や光源からの距離、および反射率や透過率で決まる係数値である。通常、輝度値Iiは整数値で表わされ、係数Xiは計算の精度を上げるために浮動小数点データで計算される。したがって、式(1)の計算を行なうためには整数と浮動小数点データとの乗算が必要となる。しかしながら、従来はこの計算を直接行なう機能を有するハードウェアはなく、次に示すような方法が用いられていた。
【0006】
図8は従来の整数と浮動小数点データとの乗算を行なう場合の機能ブロック図である。これはデータ長を32ビットとした場合の一例を示している。図8を参照して、乗算部5には、32ビットの整数で表わされた輝度値データ1が入力される。輝度値データ1は通常3原色(R:赤、G:緑、B:青)と透明度を表わす値αの各8ビットのデータから構成されている。なおここでは透明度データαが通常の3原色以外に用いられたが、輝度値データは通常の3原色を含んでおれば他のデータはこの透明度に限らない。
【0007】
乗算部5にはもう一方のデータとして浮動小数点データで表わされた係数2が入力される。ここで係数2はIEEE規格に準拠する32ビットの単精度浮動小数点データである。すなわち、最上位ビットが符号ビットであり、次の8ビットが指数部であり、下位23ビットが仮数部を表わす。この係数2は浮動小数点データを固定小数点データに変換するための固定小数点化装置3へ入力され、その結果固定小数点データ4が得られる。固定小数点データ4は固定ビット長の整数部と小数部とからなり、この固定小数点データ4が乗算部5へ入力され、先の輝度値データ1と乗算される。乗算部5で乗算された結果は再び輝度値のフォーマットに変換するフォーマット変換部6で変換され、最終的に輝度値データ7が得られる。
【0008】
固定小数点化装置3は浮動小数点データ2に対して指数部の値に従って仮数部をシフトさせることによって固定小数点データ4を得る。乗算部5は輝度値データ1の4つのデータの要素のそれぞれと固定小数点データ4とを別々に乗算する。フォーマット変換部6は、乗算部5の乗算結果の整数部を8桁分ずつ取出して並べる。従来は上記した固定小数点化装置3、乗算部5およびフォーマット変換部6の各部分には専用のハードウェアがほとんどなく、上記のような演算はALUや乗算器等の汎用の演算器だけを用いて主にソフトウェアで処理が行なわれていた。このために計算にはデータを1バイトずつ個別に取出して処理したり、シフトあるいはマージしたりする操作が必要で、多数の処理ステップを踏むために計算時間が長くかかるという問題点があった。
【0009】
このような問題点を改善するために、乗算部5およびフォーマット変換部6を専用ハードウェア化した例もある。この例がたとえば“Graphics Processing with the 88110 RISC MICROPROCESSOR”, digest of papers, COMPCON ’92, pp.169−174, 1992 に開示されている。同文献によれば、punpk、pmulおよびppackという命令を使用可能とすることによってこの機能を実現している。
【0010】
図9(A)、(B)および(C)は同文献に示されたこの機能を達成する方法を説明するための図である。図9(A)、(B)および(C)を参照して、命令punpkによって(A)に示すようにそれぞれが8ビットの透明度データα,RGBデータを含む32ビットデータから64ビットデータにデータを拡張する。これにpmulで8ビットのデータAxを乗ずることによって(B)に示すように各輝度値の乗算を実現することができる。また、(C)に示すようにppack命令によって拡張されたデータの各上位8ビットずつを取出して、もとの32ビットの輝度データのフォーマットにすることができる。
【0011】
【発明が解決しようとする課題】
従来のソフトウェアによる処理の問題点を改善するめたの専用ハードウェアは上記のように構成されていた。この方式によれば、64ビットの乗算器があれば通常の3原色プラスたとえば透明度のような4つの輝度要素を並列に乗算できるメリットがあり、計算時間を短縮することができるというメリットがある。しかしながら、この方法においても、浮動小数点データである係数2から固定小数点データ4へのデータ変換が必要であり、またppack,punpkなどの命令の実行が必要なために、複数の計算ステップを要し、やはり計算時間が長くかかってしまうという問題点があった。
【0012】
この発明は上記のような問題点を解消するためになされたもので、以下のような内容を目的とする。
【0013】
(1) 高速で輝度計算を行なうことができる乗算装置を提供する。
(2) 簡単な構成で輝度値データと浮動小数点データの乗算が可能な乗算装置を提供する。
【0014】
(3) 簡単な構成で高速な輝度計算が可能な乗算装置を提供する。
(4) 通常の浮動小数点演算だけでなく、輝度の演算も容易に行なうことができ、グラフィックス計算に適した乗算装置を提供する。
【0015】
(5) 精度の高い輝度値データや浮動小数点データの乗算が可能な乗算装置を提供する。
【0016】
(6) 単精度および倍精度浮動小数点乗算機能に加えて、輝度値と単精度浮動小数点データとの乗算および輝度値と倍精度浮動小数点データとの乗算を少ないハードウェアの追加で実行できる乗算装置を提供する。
【0017】
【課題を解決するための手段】
請求項1に係る乗算装置は、輝度値を表わす第1データを入力する第1データ入力手段と、浮動小数点データで表わされる第2データを入力する第2データ入力手段と、第1および第2データの乗算を直接ハードウェアで行なう手段と、乗算結果を入力された輝度値データと同じフォーマットで出力する手段とを備える。第1のデータがN個の成分で規定され、各成分はそれぞれn1ビットで表わされ、第2データはm1ビットで表わされ、演算手段は、第1データを各々がn1ビットを有するN個の成分に分割する手段と第2データからn1ビットを有する仮数部を抽出する手段とを含む乗算準備手段と、N個のn1×n1ビットの乗算器とを含む。
【0019】
請求項2に係る乗算装置は、輝度値を表わす第1データを入力する第1データ入力手段と、浮動小数点データで表わされる第2データを入力する第2データ入力手段と、第1および第2データの乗算を直接ハードウェアで行なう手段と、乗算結果を入力された輝度値データと同じフォーマットで出力する手段とを備える。乗算装置において、第1のデータはN個の成分で規定され、各成分はそれぞれn1ビットで表わされ、第2データはm1ビットで表わされ、演算手段は乗算準備手段と乗算器とを含み、乗算準備手段は第1データを各々がn1ビットを有するN個の成分に分離する手段と、第2データからn1ビットを有する仮数部を抽出する手段とを含み、乗算器は、各々がn1ビットで表わされたN個の成分のそれぞれのデータの間に(N−1)個のn1ビットの“0”を書込んだn1×(2N−1)ビットのデータをハードウェアで準備する第1データ準備手段および準備されたn1×(2N−1)ビットのデータと前記第2データから抽出されたn1ビットの仮数部との乗算を行なう。
【0020】
請求項3に係る乗算装置においては、請求項2の乗算装置がさらにm1ビットの浮動小数点で表わされる第3データを入力する第3データ入力手段と第3データからn2ビットを有する仮数部を抽出する手段とを含む。第2データから仮数部を抽出する手段はn1ビットではなく、n2ビットを有する仮数部を抽出する。乗算準備手段はさらに、外部からの信号に応答して第1データと第2データとの第1の乗算から第2データと第3データとの第2の乗算のいずれかを選択する選択手段と、選択に応じて第1の乗算であれば第1データ準備手段からのデータを準備し、第2の乗算であれば、下位にn2ビットの仮数部を有し、上位に(n1×(2N−1)−n2)ビットの“0”を有するn1×(2N−1)ビットデータを準備する第2データ準備手段からのデータを準備する手段とを含み、乗算器は上記選択に応じて第1または第2データ準備手段の準備したn1×(2N−1)ビットデータと第2データから抽出されたn2ビットのデータとの乗算を行なう。
【0021】
請求項4に係る乗算装置においては、請求項3の乗算装置の第2データおよび第3データはm1ビットより大きいm2ビットで表わされ、それによって第2および第3データから仮数部を抽出する手段はn3ビットの仮数部を抽出し、第2データ準備手段は上記選択に応じて第2の乗算であれば下位にm3ビットの仮数部を有し、上位に(n1×(2N−1)−n3)ビットの“0”を有するn1×(2N−1)ビットデータを準備し、乗算器は上記選択に応じて準備されたn1×(2N−1)ビットデータと第2データから抽出されたm3ビットデータとの乗算を行なう。
【0022】
請求項5に係る乗算装置においては、請求項4の乗算装置がさらに、外部から与えられる信号に応答してm1ビットで表わされる第4データとm1ビットより大きいm2ビットで表わされる第5データおよびm1ビットで表わされる第6データとm2ビットで表わされる第7データとからそれぞれがm1またはm2ビットで表わされる第2および第3データを選択する手段を含む。乗算装置においては、外部から与えられる信号に応じて第2および第3データがm1ビットであればn3ビットデータをn2ビットデータに切換える手段をさらに含む。
【0023】
【作用】
請求項1に係る乗算装置においては、輝度値データと浮動小数点データとを直接ハードウェアで演算する。
【0024】
請求項1に係る乗算装置においては、乗算手段がN個のn1×n1ビットの乗算器で構成される。
【0025】
請求項2に係る乗算装置においては、各々がn1ビットで表わされたN個の成分のそれぞれのデータの間に(N−1)個のn1ビットの“0”データを書込むことによってn×(2N−1)ビットデータをハードウェアで準備し、それを第2データから抽出されたn1ビットの仮数部と乗算するため乗算器を1個とすることができる。
【0026】
請求項3に係る乗算装置においては、第1データである輝度値データと第2データである浮動小数点データの演算だけでなく、第2データと第3データとの演算すなわち、浮動小数点データ同士の演算が選択的に可能になる。
【0027】
請求項4に係る乗算装置においては、m1ビットより大きいm2ビットで表わされるたとえば倍精度のようなデータを用いて演算が行なわれるため、浮動小数点乗算の精度が向上する。
【0028】
請求項5に係る乗算装置においては、第2データおよび第3データとしてはm1ビットのデータまたはm1ビットより大きいm2ビットのデータを選択的に用いて乗算が行なわれるため、単精度だけでなくたとえば倍精度のデータを用いた浮動小数点乗算が選択的に可能になる。
【0029】
【実施例】
(1) 第1実施例
以下この発明の実施例を図面を参照して説明する。図1はこの発明が適用される乗算装置が組込まれた高速の数値演算処理を行なうためのマイクロプロセッサのブロック図である。
【0030】
図1を参照して、グラフィックス処理を高速に実行するマイクロプロセッサ100は、整数演算などを実行するRISC型CPUコア101と、CPUコア101に接続され、本願発明に係る乗算装置を制御する浮動小数点演算制御部102と、外部データの入出力や、外部への制御信号の出力を行なうバス制御部103と、命令をストアする命令キャッシュ104と、外部アドレスに接続されメモリの管理を行なうメモリ管理ユニット105と、データをストアするデータキャッシュ106とを含む。
【0031】
外部から与えられたデータはバス制御部103を介して命令キャッシュ104やデータキャッシュ106に送られる。命令キャッシュ104にストアされたコア命令はCPUコア101に与えられる。
【0032】
浮動小数点演算制御部102は、乗算装置11に入力される輝度値データ1、浮動小数点データ2を出力する。乗算装置11での演算結果は出力値3として出力され、浮動小数点演算制御部102に送られる。浮動小数点演算制御部102からは、乗算装置11に対して乗算内容を制御する乗算命令が出力される。
【0033】
図2は図1に示したこの発明に係る乗算装置11のブロック図であり、従来の図8に対応する。図2を参照して乗算装置11に入力される輝度値データ1、浮動小数点データで表わされる係数2および乗算装置11から出力される出力データとなる輝度値データ7は従来例と同じである。乗算装置11は従来の図8に示した固定小数点化装置3、乗算部5およびフォーマット変換部6の機能をすべてハードウェアとして一体化したものである。
【0034】
図3は図1に示した乗算装置11の構成を示すブロック図である。図3を参照して、乗算装置11は4つの8×8ビット乗算器12〜15と、それぞれの8×8ビット乗算器12〜15に接続された4つのシフタ16〜19とを含む。8×8ビット乗算器12〜15のそれぞれは輝度値データ1から透明度を表わす値α、R、G、Bのそれぞれの8ビットのデータが入力され、浮動小数点データで表わされる係数2からはその仮数部から上位8ビットがそれぞれ入力される。8×8ビット乗算器12〜15は輝度値の各値(8ビット)と浮動小数点データで表わされる係数2の仮数部の上位8ビットとの積を計算しそれぞれ16ビットのデータをシフタ16〜19へ出力する。
【0035】
ここで係数2がIEEE規格に準拠している場合には、最上位の“1”が省略された表現となっているため、この8×8ビット乗算器12〜15の入力の一方は係数2の仮数部上位7ビットとその上位に“1”を付加した8ビットとなる。
【0036】
シフタ16〜19は、8×8ビット乗算器12〜15の出力の16ビットデータを浮動小数点データで表わされる係数2の値によって左右方向シフトして整数部を8ビットのデータとして出力する働きを有する。ただし、浮動小数点データで表わされる係数2がIEEE規格に準拠している場合には、指数部にはバイアス値“01111111”(=127)が付加された値となっているため、まず指数部からこのバイアス値を引かなければならない。これは、IEEE規格においては、8ビットの指数部が−128〜+127を表わすのに、負の表現を避けるために127を加えた表現をとるように定められているためである。これによって表現上は指数部は−1〜+254となる。このうち−1は∞や非数等の例外を表わすために用いられるため、数値としての意味をもつのは0〜254となり、負の表現が避けられる。したがって実際の値を求めるには指数部の値から127を差し引かなければならない。
【0037】
次に例を挙げて説明する。いま輝度値1の成分を“00001010”とし、浮動小数点データで表わされる係数2のバイアスを差し引かれた指数部を“00000010”、最上位に“1”を付加した8ビットの仮数部を“1.0000001”とする。輝度値と仮数部との積の結果は“00001010.00010100”となるが、指数部は十進数で“2”を表わしているため左方向へ2ビットシフトして“0000101000.010100”となるので、整数部の8ビットとして“00101000”が出力される。この8ビットデータを4成分繋ぎ合わせることによって32ビットの輝度値7を得ることができる。
【0038】
このように、この発明の第1実施例によれば、乗算装置11を8×8ビット乗算器4個とシフタ4個で構成したため、簡単な構成で所望の機能を達成することができる。従来のように多数のステップをソフトウェアで制御することなく浮動小数点データを直接入力して処理することができるので、プログラミングが容易で極めて高速なグラフィックス演算を実現することができる。
【0039】
(2) 第2実施例
図4はこの発明の第2実施例に係る乗算装置を示すブロック図である。図4を参照して、第2実施例においては、第1実施例における4個の8×8ビット乗算器12〜15を1つに纏め、56×8ビット乗算器21としている。それぞれが8ビットで表わされる4つの成分からなる輝度値データ1は56×8ビット乗算器21に入力される前に56ビットデータ20に変換される。この変換においては、まず輝度値データ1の各成分の間に8ビットの0データすなわち“00000000”を挿入することによって56ビットデータ20が作成される。これはハードウェア的にはR,G,B,αのそれぞれを表わすデータ部分の間を接地することによって極めて簡単に達成される。
【0040】
56×8ビット乗算器21においては、56ビットデータ20と浮動小数点データで表わされた係数2の上部8ビットデータとが第1実施例と同様に乗算される。輝度値データの各々の成分は8ビットで表わされ、それが係数2から得られた上位8ビットのデータと乗算されても予め各成分の上位に8ビットの0が準備されているため各成分の乗算結果が混じり合うことはない。56×8ビット乗算器21での乗算結果は16ビットずつに区切られてそれぞれシフタ16〜19に出力され、シフタ16〜19からそれぞれの上位8ビットが出力されて輝度値データ7が得られる。
【0041】
以上のようにこの発明の第2実施例においては、輝度値データの間に8ビットの0データを入れるだけで乗算器を1個にすることができる。56ビットデータ20に生成は56×8ビット乗算器21の入力の必要箇所に“0”入力を与えるだけで実現できるので、特別なハードウェアは不要である。これによって乗算器を1個とすることができ、浮動小数点データで表わされる係数2の仮数部の入力を1箇所に纏めることができるので、配線が容易化され、レイアウト効率が向上する。
【0042】
(3) 第3実施例
図5はこの発明の第3実施例の内容を示す模式図である。第3実施例においては、本発明の乗算器を浮動小数点乗算器に適用している。
【0043】
図5を参照して、第3実施例においては第2実施例とを比べて係数2以外の浮動小数点データで表わされた係数23が入力される。輝度値データ1と浮動小数点データで表わされた係数23とは輝度値データあるいは浮動小数点データの選択ならびにフォーマット変換を行なう選択/フォーマット変換装置24に入力される。選択/フォーマット変換装置24の選択は図1に示した浮動小数点演算制御部102から与えられる選択信号22の値によって行なわれる。選択/フォーマット変換装置24において輝度値データ1が選択された場合はこれを各成分ごとに8ビットずつ切離し、それぞれの間に8ビットの0データすなわち“00000000”を挿入することによって第2実施例と同様の56ビットデータ25を得る。また、浮動小数点データで表わされた係数23が選択された場合は、この仮数部の先頭に1を付加しさらにその上位に32ビットの0データを付加することによって56ビットの仮数データ25を得る。ここでは仮に、選択信号22が“1”のときに輝度値データ1を、“0”のときに浮動小数点データで表わされた係数23を選択するものとする。
【0044】
56ビットデータ25は次に56×24ビット乗算器30に入力される。56×24ビット乗算器30には56ビットデータ25以外に、浮動小数点データで表わされた係数2の仮数部の上位に“1”を付加された24ビットデータも入力され、ここで56ビットデータ25との乗算が行なわれる。
【0045】
第3実施例における乗算装置11は排他的論理和を算出するXOR回路26を含む。浮動小数点データで表わされた係数2および係数23の符号ビットを入力とし、両者が一致すれば“0”、異なれば“1”をそれぞれ符号ビットデータ28として出力する。符号ビットデータ28は浮動小数点乗算の答えの符号ビットとなる。
【0046】
乗算装置11はさらに浮動小数点データで表わされた係数2および係数23の指数部の和を計算し指数部データ29として出力する加算器27を含む。ただし、バイアス値も加算されるため、加算器27は加算結果からバイアス値を差し引く機能も備えている必要がある。また、輝度計算の際には浮動小数点データ2の指数部からバイアス値を引いた値を29に出力する必要があるが、これはたとえば浮動小数点データ23の指数部を0とすることによって容易に実現できる。このようにして出力29には、浮動小数点乗算の場合は答の指数部となる指数データが出力され、輝度計算の場合は浮動小数点データ2の指数部からバイアス値を引いた値が出力される。
【0047】
56×24ビット乗算器30からの出力はその出力結果に対して丸めを行なう丸め回路31と、シフタ16〜19に出力される。丸め回路31の行なう丸め方法としては、たとえばIEEE規格では、最近似値への丸め、0方向の丸め、プラス∞方向の丸めおよびマイナス∞方向の丸めの4種類があり、それぞれ必要に応じて選ばれる。丸めの結果は後に説明する選択/フォーマット変換回路37に出力される。シフタ16〜19は上記実施例と同様のシフタで、それぞれ56×24ビット乗算器30の出力の最下位から16ビットずつが入力され、加算器27の出力である指数部データ29の値に基づいて先の実施例と同様にシフトが行なわれ、それぞれ8ビットのデータ33〜36が出力される。
【0048】
丸め回路31からの出力、シフタ16〜19から出力33〜36、XOR回路26の出力データである符号ビットデータ28および加算器27の出力である指数部データ29は選択/フォーマット変換装置37に入力される。選択/フォーマット変換装置37は第2実施例における選択/フォーマット変換装置24と同様に選択信号22の値によって輝度値あるいは浮動小数点データを出力する。選択信号22が“1”のときは輝度値の各成分33〜36から輝度値データを出力し、選択信号22が“0”のときは符号ビットデータ28を符号ビットとし、指数部データ29を指数部とし、丸め回路31からの出力データ32を仮数部とする浮動小数点データを出力部45に出力する。
【0049】
以上のように第3実施例においては、選択信号22が“1”のときは第1実施例および第2実施例と同様の輝度値の演算が実行され、選択信号22が“0”のときは通常の浮動小数点乗算が実行される。これによって通常の浮動小数点演算だけでなく、輝度の演算も容易に行なうことができ、グラフィックス計算に適した乗算器を得ることができる。
【0050】
(4) 第4実施例
図6はこの発明の第4実施例に係る乗算装置の内容を示すブロック図である。第4実施例においては、この発明に係る乗算装置を倍精度浮動小数点乗算器に適用している。図6を参照して、乗算装置11に入力される浮動小数点データ38および39はいずれも1ビットの符号ビット、11ビットの指数部および52ビットの仮数部を持つ64ビットのデータとなる。これに伴い、56ビットデータ46は選択/フォーマット変換装置24によって輝度値データ1が選択された場合は第3実施例の場合と同様であるが、浮動小数点データが選択された場合は浮動小数点データ39の仮数部52ビットの上位に“1”とさらにその上位に3ビットの“0”が付加されたデータとなる。また、浮動小数点データ38の仮数部の上位にも“1”が付加されて53ビットのデータが入力するので乗算器50は56×53ビット乗算器となる。
【0051】
56×53ビット乗算器50からの出力データがシフト16〜19および丸め回路31によって処理され、選択/フォーマット変換装置37を経て出力データ45が得られるまでの構成および動作は第3実施例の場合と同様である。
【0052】
なお、出力データ45は、選択信号22によって輝度値が選択された場合は32ビットの輝度値データとなり、浮動小数点データが選択された場合は入力の浮動小数点データ38および39と同様の64ビット浮動小数点データとなる。
【0053】
以上のようにこの発明の第4実施例においては、入力されるデータを倍精度の浮動小数点データとすることによって浮動小数点乗算の精度が向上するだけでなく、通常の浮動小数点乗算器が53×53ビットの構成を必要とするのに対して、ここではそれよりもほとんどハードウェア量の増加しない56×53ビット構成でグラフィックス演算機能を付加することができるので、極めて効率よくグラフィックス演算機能の付加を実現することができる。
【0054】
(5) 第5実施例
図7はこの発明の第5実施例を示す乗算装置のブロック図である。第5実施例においては、乗算装置を単精度、倍精度兼用の浮動小数点乗算器に適用している。言い換えると本願発明の第3実施例と第4実施例とを組合わせたような実施例となっている。
【0055】
図7を参照して第5実施例においては、単精度浮動小数点データ23および倍精度浮動小数点データ38が入力されそのいずれかを選択するセレクタ41と、単精度浮動小数点データ23と倍精度浮動小数点データ39とが入力されそのいずれかを選択するセレクタ40とが設けられる。セレクタ40,41の選択は図1に示した浮動小数点演算制御部102から出力される選択信号42によって行なわれる。選択信号42の選択に応じてセレクタ40,41は入力された単精度および倍精度浮動小数点データのうちのいずれかを選択して浮動小数点データ43,44を準備する。乗算装置11には輝度値データ1、浮動小数点データ43,44が入力されて処理されるが、その装置の構成および動作は上記した第3実施例および第4実施例と同様であるのでその説明は省略する。
【0056】
以上のように第5実施例においては、単精度および倍精度の浮動小数点乗算機能に加えて、輝度値と単精度浮動小数点データとの乗算および輝度値と倍精度浮動小数点データとの乗算を少ないハードウェアの追加で実行することができ、多くの機能を実現することができる。
【0057】
【発明の効果】
以上のように請求項1に係る発明によれば、輝度値データと浮動小数点データとを直接ハードウェアで演算することが可能であるため、極めて高速な輝度計算が可能な乗算装置が提供できる。
【0058】
請求項1に係る乗算装置においては、乗算器がN個のn×nビット乗算器で構成されるため、簡単な構成で輝度値データと浮動小数点データの乗算が可能な乗算装置が提供できる。
【0059】
請求項2に係る発明においては、特別なハードウェアの追加を要することなく乗算器を1個とすることができるため、簡単な構成で高速な輝度計算が可能な乗算装置が提供できる。
【0060】
請求項3においては、輝度計算および浮動小数点乗算とが選択的に実施できるため、通常の浮動小数点演算だけでなく輝度の演算も容易に行なうことができ、グラフィックス計算に適した乗算装置を得ることができる。
【0061】
請求項4に係る乗算装置においては、処理される浮動小数点データのビット数が上げられるため、浮動小数点乗算の精度が向上する。その結果、精度の高い輝度値データや浮動小数点データの乗算が可能な乗算装置が提供できる。
【0062】
請求項5に係る乗算装置においては、ビット数の異なる浮動小数点データと輝度値データを用いてその乗算が容易に行なわれるため、たとえば単精度および倍精度の浮動小数点乗算機能に加えて、輝度値と単精度浮動小数点データとの乗算および輝度値と倍精度浮動小数点データとの乗算を少ないハードウェアの追加で実行することができる乗算装置が提供できる。
【図面の簡単な説明】
【図1】この発明が適用される乗算装置が組込まれたマイクロプロセッサの構成を示すブロック図である。
【図2】この発明に係る乗算装置を示すブロック図である。
【図3】この発明の第1実施例に係る乗算装置の内容を示すブロック図である。
【図4】この発明の第2実施例に係る乗算装置の内容を示すブロック図である。
【図5】この発明の第3実施例に係る乗算装置の内部を示すブロック図である。
【図6】この発明の第4実施例に係る乗算装置の内容を示すブロック図である。
【図7】この発明の第5実施例に係る乗算装置の内容を示すブロック図である。
【図8】従来の輝度値の乗算を行なう方法を説明するための機能ブロック図である。
【図9】従来の輝度値の乗算を行なう方法を説明するための図である。
【符号の説明】
1 輝度値データ、2 係数、11 乗算装置、12〜15 8×8ビット乗算器、16〜19 シフタ、20 56ビットデータ、21 乗算器、22選択信号、23 浮動小数点データ、24 選択/フォーマット変換装置、25 56ビットデータ、30 56×24ビット乗算器、31 丸め回路。
Claims (5)
- 輝度値を表わす第1データを入力する第1データ入力手段と、
浮動小数点データで表わされる第2データを入力する第2データ入力手段と、
前記第1および第2データの演算を直接ハードウェアで行なう演算手段と、
前記演算手段の演算結果を前記入力された輝度値データと同じフォーマットで出力する手段とを備え、
前記第1のデータはN個の成分で規定され、前記各成分はそれぞれn1ビットで表わされ、前記第2データはm1ビットで表わされ、
前記演算手段は、前記第1データを各々が前記n1ビットを有するN個の成分に分離する手段と前記第2データから前記n1ビットを有する仮数部を抽出する手段とを含む乗算準備手段と、前記N個のn1×n1ビット乗算器とを含む、乗算装置。 - 輝度値を表わす第1データを入力する第1データ入力手段と、
浮動小数点データで表わされる第2データを入力する第2データ入力手段と、
前記第1および第2データの演算を直接ハードウェアで行なう演算手段と、
前記演算手段の演算結果を前記入力された輝度値データと同じフォーマットで出力する手段とを備え、
前記第1のデータはN個の成分で規定され、前記各成分はそれぞれn1ビットで表わされ、前記第2データはm1ビットで表わされ、
前記演算手段は乗算準備手段と乗算器とをさらに含み、
前記乗算準備手段は、前記第1データを各々がn1ビットを有するN個の成分に分離する手段と、前記第2データから前記n1ビットを有する仮数部を抽出する手段とを含み、
前記乗算器は、各々がn1ビットで表わされた前記N個の成分のそれぞれのデータの間に(N−1)個のn1ビットの“0”を書込んだn1×(2N−1)ビットのデータをハードウェアで準備する第1データ準備手段および前記準備されたn1×(2N−1)ビットのデータと前記第2データから抽出されたn1ビットの仮数部との乗算を行なう、乗算装置。 - 前記装置はさらに、m1ビットの浮動小数点データで表わされる第3データを入力する第3データ入力手段と、前記第3データからn2ビットを有する仮数部を抽出する手段とを備え、
前記第2データから仮数部を抽出する手段はn1ビットではなく、n2ビットを有する仮数部を抽出し、
前記乗算準備手段はさらに、
外部からの信号に応答して前記第1データと第2データとの第1の乗算か、前記第2データと第3データとの第2の乗算のいずれかを選択する選択手段と、
前記選択に応じて前記第1の乗算であれば、前記第1データ準備手段からのデータを準備し、前記第2の乗算であれば、下位にn2ビットの仮数部を有し、上位に(n1×(2N−1)−n2)ビットの“0”を有するn1×(2N−1)ビットデータを準備する第2データ準備手段からのデータを準備する手段とを含み、
前記乗算器は、前記選択に応じて前記第1または第2データ準備手段の準備した前記n1×(2N−1)ビットデータと前記第2データから抽出されたn2ビットのデータとの乗算を行なう、請求項2に記載の乗算装置。 - 前記第2データおよび第3データは、前記m1ビットより大きいm2ビットで表わされ、それによって前記第2および第3データから仮数部を抽出する手段はn3ビットの仮数部を抽出し、
前記第2データ準備手段は、前記選択に応じて、前記第2の乗算であれば下位にn3ビットの仮数部を有し、上位に(n1×(2N−1)−n3)ビットの“0”を有するn1×(2N−1)ビットデータを準備し、
前記乗算器は前記選択に応じて前記準備されたn1×(2N−1)ビットデータと前記第2データから抽出されたn3ビットデータとの乗算を行なう、請求項3に記載の乗算装置。 - 前記装置はさらに、
外部から与えられる信号に応答して前記m1ビットで表わされる第4データと前記m1ビットより大きいm2ビットで表わされる第5データおよび前記m1ビットで表わされる第6データと前記m2ビットで表わされる第7データとからそれぞれが前記m1またはm2ビットで表わされる前記第2および第3データを選択する手段と、外部から与えられる信号に応じて、前記第2および第3データがm1ビットである場合には、n3ビットデータをn2ビットデータに切換える手段とを備える、請求項4に記載の乗算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14800894A JP3583474B2 (ja) | 1994-06-29 | 1994-06-29 | 乗算装置 |
US08/460,948 US5666301A (en) | 1994-05-29 | 1995-06-05 | Multiplier carrying out numeric calculation at high speed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14800894A JP3583474B2 (ja) | 1994-06-29 | 1994-06-29 | 乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0816365A JPH0816365A (ja) | 1996-01-19 |
JP3583474B2 true JP3583474B2 (ja) | 2004-11-04 |
Family
ID=15443050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14800894A Expired - Fee Related JP3583474B2 (ja) | 1994-05-29 | 1994-06-29 | 乗算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5666301A (ja) |
JP (1) | JP3583474B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07294992A (ja) * | 1994-04-27 | 1995-11-10 | Nikon Corp | 振れ補正機能を有する撮影装置 |
JP2888206B2 (ja) * | 1996-08-30 | 1999-05-10 | 日本電気株式会社 | データ処理装置 |
GB2317248B (en) * | 1996-09-02 | 2001-08-15 | Siemens Plc | Floating point number data processing means |
US5973705A (en) * | 1997-04-24 | 1999-10-26 | International Business Machines Corporation | Geometry pipeline implemented on a SIMD machine |
GB2355087B (en) * | 1999-10-08 | 2003-12-17 | Mitel Corp | Method & apparatus for calculating energy in A-law or Á-law encoded speech signals |
US6993549B2 (en) * | 2001-05-25 | 2006-01-31 | Sun Microsystems, Inc. | System and method for performing gloating point operations involving extended exponents |
US7069289B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point unit for detecting and representing inexact computations without flags or traps |
US7003540B2 (en) * | 2001-05-25 | 2006-02-21 | Sun Microsystems, Inc. | Floating point multiplier for delimited operands |
US7831652B2 (en) * | 2001-05-25 | 2010-11-09 | Oracle America, Inc. | Floating point multiplier with embedded status information |
US7016928B2 (en) * | 2001-05-25 | 2006-03-21 | Sun Microsystems, Inc. | Floating point status information testing circuit |
US7444367B2 (en) * | 2001-05-25 | 2008-10-28 | Sun Microsystems, Inc. | Floating point status information accumulation circuit |
US6976050B2 (en) * | 2001-05-25 | 2005-12-13 | Sun Microsystems, Inc. | System and method for extracting the high part of a floating point operand |
US7069288B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point system with improved support of interval arithmetic |
US7363337B2 (en) * | 2001-05-25 | 2008-04-22 | Sun Microsystems, Inc. | Floating point divider with embedded status information |
US7191202B2 (en) * | 2001-05-25 | 2007-03-13 | Sun Microsystems, Inc. | Comparator unit for comparing values of floating point operands |
US7430576B2 (en) * | 2001-05-25 | 2008-09-30 | Sun Microsystems, Inc. | Floating point square root provider with embedded status information |
US7366749B2 (en) * | 2001-05-25 | 2008-04-29 | Sun Microsystems, Inc. | Floating point adder with embedded status information |
US6970898B2 (en) * | 2001-05-25 | 2005-11-29 | Sun Microsystems, Inc. | System and method for forcing floating point status information to selected values |
US7228324B2 (en) * | 2001-05-25 | 2007-06-05 | Sun Microsystems, Inc. | Circuit for selectively providing maximum or minimum of a pair of floating point operands |
US7395297B2 (en) * | 2001-05-25 | 2008-07-01 | Sun Microsystems, Inc. | Floating point system that represents status flag information within a floating point operand |
US7613762B2 (en) * | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
US6961744B2 (en) * | 2001-05-25 | 2005-11-01 | Sun Microsystems, Inc. | System and method for generating an integer part of a logarithm of a floating point operand |
US7133890B2 (en) | 2001-05-25 | 2006-11-07 | Sun Microsystems, Inc. | Total order comparator unit for comparing values of two floating point operands |
US7219117B2 (en) * | 2002-12-17 | 2007-05-15 | Sun Microsystems, Inc. | Methods and systems for computing floating-point intervals |
US7236999B2 (en) * | 2002-12-17 | 2007-06-26 | Sun Microsystems, Inc. | Methods and systems for computing the quotient of floating-point intervals |
JP5853177B2 (ja) * | 2011-04-08 | 2016-02-09 | パナソニックIpマネジメント株式会社 | データ処理装置、及びデータ処理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US4953119A (en) * | 1989-01-27 | 1990-08-28 | Hughes Aircraft Company | Multiplier circuit with selectively interconnected pipelined multipliers for selectively multiplication of fixed and floating point numbers |
JPH04127364A (ja) * | 1990-09-19 | 1992-04-28 | Nec Corp | 積和算器 |
US5268854A (en) * | 1990-11-13 | 1993-12-07 | Kabushiki Kaisha Toshiba | Microprocessor with a function for three-dimensional graphic processing |
-
1994
- 1994-06-29 JP JP14800894A patent/JP3583474B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-05 US US08/460,948 patent/US5666301A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0816365A (ja) | 1996-01-19 |
US5666301A (en) | 1997-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3583474B2 (ja) | 乗算装置 | |
KR102447636B1 (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
US6014684A (en) | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication | |
US6099158A (en) | Apparatus and methods for execution of computer instructions | |
TWI402766B (zh) | 繪圖處理器 | |
US5991785A (en) | Determining an extremum value and its index in an array using a dual-accumulation processor | |
US5442577A (en) | Sign-extension of immediate constants in an alu | |
JPH0713742A (ja) | 乗算装置 | |
KR19990013698A (ko) | 연산방법 및 연산장치 | |
JPH0773227A (ja) | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 | |
TW202319909A (zh) | 用於將輸入集相乘之硬體電路及方法,以及非暫時性機器可讀儲存裝置 | |
US5574672A (en) | Combination multiplier/shifter | |
US5195051A (en) | Computation of sign bit and sign extension in the partial products in a floating point multiplier unit | |
KR970006408B1 (ko) | 논리회로의 자동설계방법 및 그 장치와 승산기 | |
US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
GB2376773A (en) | Display and/or precision operations of numerical values in binary systems | |
GB2549153A (en) | Apparatus and method for supporting a conversion instruction | |
US4823300A (en) | Performing binary multiplication using minimal path algorithm | |
JP3579087B2 (ja) | 演算器およびマイクロプロセッサ | |
JP2000081966A (ja) | 演算装置 | |
JP2765516B2 (ja) | 積和演算器 | |
JP3462054B2 (ja) | 並列加減算回路 | |
US5724275A (en) | Fast multi-operand bit pattern detection method and circuit | |
JP2734438B2 (ja) | 乗算装置 | |
JPS5932038A (ja) | 浮動小数点加算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
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: 20040720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040729 |
|
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: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |