JPH0816365A - 乗算装置 - Google Patents
乗算装置Info
- Publication number
- JPH0816365A JPH0816365A JP6148008A JP14800894A JPH0816365A JP H0816365 A JPH0816365 A JP H0816365A JP 6148008 A JP6148008 A JP 6148008A JP 14800894 A JP14800894 A JP 14800894A JP H0816365 A JPH0816365 A JP H0816365A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- bits
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000000034 method Methods 0.000 description 10
- 239000003086 colorant Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 1
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)
Abstract
置を提供する。 【構成】 それぞれが8ビットを有するRGBデータと
透明度を表わす8ビットのデータαとからなる輝度値デ
ータ1と浮動小数点データで表わされる係数2とが直接
乗算装置11に入力される。乗算装置11は輝度値デー
タ1を構成するそれぞれの成分ごとの8ビットデータと
係数2の仮数の上位8ビットデータとの乗算を行なう4
つの8×8ビット乗算器12〜15を含み、それぞれの
乗算器12〜15からの出力はそれぞれに設けられたシ
フタ16〜19によってシフトされ、各成分ごとの8ビ
ットデータが出力され輝度値データ1と同じデータフォ
ーマットの輝度値データ7が乗算装置11から出力れさ
る。
Description
三次元コンピュータグラフィックスを中心としたコンピ
ュータグラフィックス技術における数値計算を高速処理
できる乗算装置に関する。
コンピュータグラフィックス技術が急速に発展してい
る。コンピュータグラフィックスは、各種科学技術計算
結果の可視化や、人工現実感等を達成する上で必要な技
術で、その実現には極めて高速の数値演算処理が必要と
される。
高い画面を得ようとする場合、画面上に現れる全光線を
追跡するレイトレーシング法や、グーロウシェイディン
グ法、フォンシェーディング法などの各種シェーディン
グ法が用いられる。いずれの方式においても計算の途中
において物体の各点での輝度を決定するために次のよう
な計算が行なわれる。
り、Iiをこの点に入射する光線の輝度値であり、Xi
は光線の角度や光源からの距離、および反射率や透過率
で決まる係数値である。通常、輝度値Iiは整数値で表
わされ、係数Xiは計算の精度を上げるために浮動小数
点データで計算される。したがって、式(1)の計算を
行なうためには整数と浮動小数点データとの乗算が必要
となる。しかしながら、従来はこの計算を直接行なう機
能を有するハードウェアはなく、次に示すような方法が
用いられていた。
乗算を行なう場合の機能ブロック図である。これはデー
タ長を32ビットとした場合の一例を示している。図8
を参照して、乗算部5には、32ビットの整数で表わさ
れた輝度値データ1が入力される。輝度値データ1は通
常3原色(R:赤、G:緑、B:青)と透明度を表わす
値αの各8ビットのデータから構成されている。なおこ
こでは透明度データαが通常の3原色以外に用いられた
が、輝度値データは通常の3原色を含んでおれば他のデ
ータはこの透明度に限らない。
小数点データで表わされた係数2が入力される。ここで
係数2はIEEE規格に準拠する32ビットの単精度浮
動小数点データである。すなわち、最上位ビットが符号
ビットであり、次の8ビットが指数部であり、下位23
ビットが仮数部を表わす。この係数2は浮動小数点デー
タを固定小数点データに変換するための固定小数点化装
置3へ入力され、その結果固定小数点データ4が得られ
る。固定小数点データ4は固定ビット長の整数部と小数
部とからなり、この固定小数点データ4が乗算部5へ入
力され、先の輝度値データ1と乗算される。乗算部5で
乗算された結果は再び輝度値のフォーマットに変換する
フォーマット変換部6で変換され、最終的に輝度値デー
タ7が得られる。
に対して指数部の値に従って仮数部をシフトさせること
によって固定小数点データ4を得る。乗算部5は輝度値
データ1の4つのデータの要素のそれぞれと固定小数点
データ4とを別々に乗算する。フォーマット変換部6
は、乗算部5の乗算結果の整数部を8桁分ずつ取出して
並べる。従来は上記した固定小数点化装置3、乗算部5
およびフォーマット変換部6の各部分には専用のハード
ウェアがほとんどなく、上記のような演算はALUや乗
算器等の汎用の演算器だけを用いて主にソフトウェアで
処理が行なわれていた。このために計算にはデータを1
バイトずつ個別に取出して処理したり、シフトあるいは
マージしたりする操作が必要で、多数の処理ステップを
踏むために計算時間が長くかかるという問題点があっ
た。
部5およびフォーマット変換部6を専用ハードウェア化
した例もある。この例がたとえば“Graphics Processin
g with the 88110 RISC MICROPROCESSOR”, digest of
papers, COMPCON '92, pp.169-174, 1992 に開示されて
いる。同文献によれば、punpk、pmulおよびp
packという命令を使用可能とすることによってこの
機能を実現している。
に示されたこの機能を達成する方法を説明するための図
である。図9(A)、(B)および(C)を参照して、
命令punpkによって(A)に示すようにそれぞれが
8ビットの透明度データα,RGBデータを含む32ビ
ットデータから64ビットデータにデータを拡張する。
これにpmulで8ビットのデータAxを乗ずることに
よって(B)に示すように各輝度値の乗算を実現するこ
とができる。また、(C)に示すようにppack命令
によって拡張されたデータの各上位8ビットずつを取出
して、もとの32ビットの輝度データのフォーマットに
することができる。
よる処理の問題点を改善するめたの専用ハードウェアは
上記のように構成されていた。この方式によれば、64
ビットの乗算器があれば通常の3原色プラスたとえば透
明度のような4つの輝度要素を並列に乗算できるメリッ
トがあり、計算時間を短縮することができるというメリ
ットがある。しかしながら、この方法においても、浮動
小数点データである係数2から固定小数点データ4への
データ変換が必要であり、またppack,punpk
などの命令の実行が必要なために、複数の計算ステップ
を要し、やはり計算時間が長くかかってしまうという問
題点があった。
ためになされたもので、以下のような内容を目的とす
る。
きる乗算装置を提供する。 (2) 簡単な構成で輝度値データと浮動小数点データ
の乗算が可能な乗算装置を提供する。
能な乗算装置を提供する。 (4) 通常の浮動小数点演算だけでなく、輝度の演算
も容易に行なうことができ、グラフィックス計算に適し
た乗算装置を提供する。
数点データの乗算が可能な乗算装置を提供する。
算機能に加えて、輝度値と単精度浮動小数点データとの
乗算および輝度値と倍精度浮動小数点データとの乗算を
少ないハードウェアの追加で実行できる乗算装置を提供
する。
は、輝度値を表わす第1データを入力する第1データ入
力手段と、浮動小数点データで表わされる第2データを
入力する第2データ入力手段と、第1および第2データ
の乗算を直接ハードウェアで行なう手段と、乗算結果を
入力された輝度値データと同じフォーマットで出力する
手段とを含む。
算装置の第1のデータがN個の成分で規定され、各成分
はそれぞれn1ビットで表わされ、第2データはm1ビ
ットで表わされ、演算手段はさらに、第1データを各々
がn1ビットを有するN個の成分に分割する手段と、第
2データからn1ビットを有する仮数部を抽出する手段
とを含む乗算準備手段と、N個のn1×n1ビットの乗
算器とを含む。
項1に係る乗算装置において、第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ビットの仮数
部との乗算を行なう。
項3の乗算装置がさらに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ビットのデータとの乗算を行なう。
項4の乗算装置の第2データおよび第3データはm1ビ
ットより大きいm2ビットで表わされ、それによって第
2および第3データから仮数部を抽出する手段はn3ビ
ットの仮数部を抽出し、第2データ準備手段は上記選択
に応じて第2の乗算であれば下位にm3ビットの仮数部
を有し、上位に(n1×(2N−1)−n3)ビットの
“0”を有するn1×(2N−1)ビットデータを準備
し、乗算器は上記選択に応じて準備されたn1×(2N
−1)ビットデータと第2データから抽出されたm3ビ
ットデータとの乗算を行なう。
項5の乗算装置がさらに、外部から与えられる信号に応
答してm1ビットで表わされる第4データとm1ビット
より大きいm2ビットで表わされる第5データおよびm
1ビットで表わされる第6データとm2ビットで表わさ
れる第7データとからそれぞれがm1またはm2ビット
で表わされる第2および第3データを選択する手段を含
む。乗算装置においては、外部から与えられる信号に応
じて第2および第3データがm1ビットであればn3ビ
ットデータをn2ビットデータに切換える手段をさらに
含む。
ータと浮動小数点データとを直接ハードウェアで演算す
る。
項1の乗算手段がN個のn1×n1ビットの乗算器で構
成される。
がn1ビットで表わされたN個の成分のそれぞれのデー
タの間に(N−1)個のn1ビットの“0”データを書
込むことによってn×(2N−1)ビットデータをハー
ドウェアで準備し、それを第2データから抽出されたn
1ビットの仮数部と乗算するため乗算器を1個とするこ
とができる。
データである輝度値データと第2データである浮動小数
点データの演算だけでなく、第2データと第3データと
の演算すなわち、浮動小数点データ同士の演算が選択的
に可能になる。
ビットより大きいm2ビットで表わされるたとえば倍精
度のようなデータを用いて演算が行なわれるため、浮動
小数点乗算の精度が向上する。
データおよび第3データとしてはm1ビットのデータま
たはm1ビットより大きいm2ビットのデータを選択的
に用いて乗算が行なわれるため、単精度だけでなくたと
えば倍精度のデータを用いた浮動小数点乗算が選択的に
可能になる。
はこの発明が適用される乗算装置が組込まれた高速の数
値演算処理を行なうためのマイクロプロセッサのブロッ
ク図である。
速に実行するマイクロプロセッサ100は、整数演算な
どを実行するRISC型CPUコア101と、CPUコ
ア101に接続され、本願発明に係る乗算装置を制御す
る浮動小数点演算制御部102と、外部データの入出力
や、外部への制御信号の出力を行なうバス制御部103
と、命令をストアする命令キャッシュ104と、外部ア
ドレスに接続されメモリの管理を行なうメモリ管理ユニ
ット105と、データをストアするデータキャッシュ1
06とを含む。
03を介して命令キャッシュ104やデータキャッシュ
106に送られる。命令キャッシュ104にストアされ
たコア命令はCPUコア101に与えられる。
11に入力される輝度値データ1、浮動小数点データ2
を出力する。乗算装置11での演算結果は出力値3とし
て出力され、浮動小数点演算制御部102に送られる。
浮動小数点演算制御部102からは、乗算装置11に対
して乗算内容を制御する乗算命令が出力される。
置11のブロック図であり、従来の図8に対応する。図
2を参照して乗算装置11に入力される輝度値データ
1、浮動小数点データで表わされる係数2および乗算装
置11から出力される出力データとなる輝度値データ7
は従来例と同じである。乗算装置11は従来の図8に示
した固定小数点化装置3、乗算部5およびフォーマット
変換部6の機能をすべてハードウェアとして一体化した
ものである。
示すブロック図である。図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ビットのデータをシフタ1
6〜19へ出力する。
る場合には、最上位の“1”が省略された表現となって
いるため、この8×8ビット乗算器12〜15の入力の
一方は係数2の仮数部上位7ビットとその上位に“1”
を付加した8ビットとなる。
12〜15の出力の16ビットデータを浮動小数点デー
タで表わされる係数2の値によって左右方向シフトして
整数部を8ビットのデータとして出力する働きを有す
る。ただし、浮動小数点データで表わされる係数2がI
EEE規格に準拠している場合には、指数部にはバイア
ス値“01111111”(=127)が付加された値
となっているため、まず指数部からこのバイアス値を引
かなければならない。これは、IEEE規格において
は、8ビットの指数部が−128〜+127を表わすの
に、負の表現を避けるために127を加えた表現をとる
ように定められているためである。これによって表現上
は指数部は−1〜+254となる。このうち−1は∞や
非数等の例外を表わすために用いられるため、数値とし
ての意味をもつのは0〜254となり、負の表現が避け
られる。したがって実際の値を求めるには指数部の値か
ら127を差し引かなければならない。
成分を“00001010”とし、浮動小数点データで
表わされる係数2のバイアスを差し引かれた指数部を
“00000010”、最上位に“1”を付加した8ビ
ットの仮数部を“1.0000001”とする。輝度値
と仮数部との積の結果は“00001010.0001
0100”となるが、指数部は十進数で“2”を表わし
ているため左方向へ2ビットシフトして“000010
1000.010100”となるので、整数部の8ビッ
トとして“00101000”が出力される。この8ビ
ットデータを4成分繋ぎ合わせることによって32ビッ
トの輝度値7を得ることができる。
ば、乗算装置11を8×8ビット乗算器4個とシフタ4
個で構成したため、簡単な構成で所望の機能を達成する
ことができる。従来のように多数のステップをソフトウ
ェアで制御することなく浮動小数点データを直接入力し
て処理することができるので、プログラミングが容易で
極めて高速なグラフィックス演算を実現することができ
る。
ック図である。図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,αのそれぞれを表
わすデータ部分の間を接地することによって極めて簡単
に達成される。
6ビットデータ20と浮動小数点データで表わされた係
数2の上部8ビットデータとが第1実施例と同様に乗算
される。輝度値データの各々の成分は8ビットで表わさ
れ、それが係数2から得られた上位8ビットのデータと
乗算されても予め各成分の上位に8ビットの0が準備さ
れているため各成分の乗算結果が混じり合うことはな
い。56×8ビット乗算器21での乗算結果は16ビッ
トずつに区切られてそれぞれシフタ16〜19に出力さ
れ、シフタ16〜19からそれぞれの上位8ビットが出
力されて輝度値データ7が得られる。
ては、輝度値データの間に8ビットの0データを入れる
だけで乗算器を1個にすることができる。56ビットデ
ータ20に生成は56×8ビット乗算器21の入力の必
要箇所に“0”入力を与えるだけで実現できるので、特
別なハードウェアは不要である。これによって乗算器を
1個とすることができ、浮動小数点データで表わされる
係数2の仮数部の入力を1箇所に纏めることができるの
で、配線が容易化され、レイアウト効率が向上する。
る。第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を選択するものとする。
ット乗算器30に入力される。56×24ビット乗算器
30には56ビットデータ25以外に、浮動小数点デー
タで表わされた係数2の仮数部の上位に“1”を付加さ
れた24ビットデータも入力され、ここで56ビットデ
ータ25との乗算が行なわれる。
論理和を算出するXOR回路26を含む。浮動小数点デ
ータで表わされた係数2および係数23の符号ビットを
入力とし、両者が一致すれば“0”、異なれば“1”を
それぞれ符号ビットデータ28として出力する。符号ビ
ットデータ28は浮動小数点乗算の答えの符号ビットと
なる。
表わされた係数2および係数23の指数部の和を計算し
指数部データ29として出力する加算器27を含む。た
だし、バイアス値も加算されるため、加算器27は加算
結果からバイアス値を差し引く機能も備えている必要が
ある。また、輝度計算の際には浮動小数点データ2の指
数部からバイアス値を引いた値を29に出力する必要が
あるが、これはたとえば浮動小数点データ23の指数部
を0とすることによって容易に実現できる。このように
して出力29には、浮動小数点乗算の場合は答の指数部
となる指数データが出力され、輝度計算の場合は浮動小
数点データ2の指数部からバイアス値を引いた値が出力
される。
その出力結果に対して丸めを行なう丸め回路31と、シ
フタ16〜19に出力される。丸め回路31の行なう丸
め方法としては、たとえばIEEE規格では、最近似値
への丸め、0方向の丸め、プラス∞方向の丸めおよびマ
イナス∞方向の丸めの4種類があり、それぞれ必要に応
じて選ばれる。丸めの結果は後に説明する選択/フォー
マット変換回路37に出力される。シフタ16〜19は
上記実施例と同様のシフタで、それぞれ56×24ビッ
ト乗算器30の出力の最下位から16ビットずつが入力
され、加算器27の出力である指数部データ29の値に
基づいて先の実施例と同様にシフトが行なわれ、それぞ
れ8ビットのデータ33〜36が出力される。
9から出力33〜36、XOR回路26の出力データで
ある符号ビットデータ28および加算器27の出力であ
る指数部データ29は選択/フォーマット変換装置37
に入力される。選択/フォーマット変換装置37は第2
実施例における選択/フォーマット変換装置24と同様
に選択信号22の値によって輝度値あるいは浮動小数点
データを出力する。選択信号22が“1”のときは輝度
値の各成分33〜36から輝度値データを出力し、選択
信号22が“0”のときは符号ビットデータ28を符号
ビットとし、指数部データ29を指数部とし、丸め回路
31からの出力データ32を仮数部とする浮動小数点デ
ータを出力部45に出力する。
信号22が“1”のときは第1実施例および第2実施例
と同様の輝度値の演算が実行され、選択信号22が
“0”のときは通常の浮動小数点乗算が実行される。こ
れによって通常の浮動小数点演算だけでなく、輝度の演
算も容易に行なうことができ、グラフィックス計算に適
した乗算器を得ることができる。
すブロック図である。第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ビット乗算器とな
る。
ータがシフト16〜19および丸め回路31によって処
理され、選択/フォーマット変換装置37を経て出力デ
ータ45が得られるまでの構成および動作は第3実施例
の場合と同様である。
よって輝度値が選択された場合は32ビットの輝度値デ
ータとなり、浮動小数点データが選択された場合は入力
の浮動小数点データ38および39と同様の64ビット
浮動小数点データとなる。
ては、入力されるデータを倍精度の浮動小数点データと
することによって浮動小数点乗算の精度が向上するだけ
でなく、通常の浮動小数点乗算器が53×53ビットの
構成を必要とするのに対して、ここではそれよりもほと
んどハードウェア量の増加しない56×53ビット構成
でグラフィックス演算機能を付加することができるの
で、極めて効率よくグラフィックス演算機能の付加を実
現することができる。
図である。第5実施例においては、乗算装置を単精度、
倍精度兼用の浮動小数点乗算器に適用している。言い換
えると本願発明の第3実施例と第4実施例とを組合わせ
たような実施例となっている。
精度浮動小数点データ23および倍精度浮動小数点デー
タ38が入力されそのいずれかを選択するセレクタ41
と、単精度浮動小数点データ23と倍精度浮動小数点デ
ータ39とが入力されそのいずれかを選択するセレクタ
40とが設けられる。セレクタ40,41の選択は図1
に示した浮動小数点演算制御部102から出力される選
択信号42によって行なわれる。選択信号42の選択に
応じてセレクタ40,41は入力された単精度および倍
精度浮動小数点データのうちのいずれかを選択して浮動
小数点データ43,44を準備する。乗算装置11には
輝度値データ1、浮動小数点データ43,44が入力さ
れて処理されるが、その装置の構成および動作は上記し
た第3実施例および第4実施例と同様であるのでその説
明は省略する。
度および倍精度の浮動小数点乗算機能に加えて、輝度値
と単精度浮動小数点データとの乗算および輝度値と倍精
度浮動小数点データとの乗算を少ないハードウェアの追
加で実行することができ、多くの機能を実現することが
できる。
ば、輝度値データと浮動小数点データとを直接ハードウ
ェアで演算することが可能であるため、極めて高速な輝
度計算が可能な乗算装置が提供できる。
器がN個のn×nビット乗算器で構成されるため、簡単
な構成で輝度値データと浮動小数点データの乗算が可能
な乗算装置が提供できる。
ードウェアの追加を要することなく乗算器を1個とする
ことができるため、簡単な構成で高速な輝度計算が可能
な乗算装置が提供できる。
小数点乗算とが選択的に実施できるため、通常の浮動小
数点演算だけでなく輝度の演算も容易に行なうことがで
き、グラフィックス計算に適した乗算装置を得ることが
できる。
される浮動小数点データのビット数が上げられるため、
浮動小数点乗算の精度が向上する。その結果、精度の高
い輝度値データや浮動小数点データの乗算が可能な乗算
装置が提供できる。
ト数の異なる浮動小数点データと輝度値データを用いて
その乗算が容易に行なわれるため、たとえば単精度およ
び倍精度の浮動小数点乗算機能に加えて、輝度値と単精
度浮動小数点データとの乗算および輝度値と倍精度浮動
小数点データとの乗算を少ないハードウェアの追加で実
行することができる乗算装置が提供できる。
マイクロプロセッサの構成を示すブロック図である。
ある。
を示すブロック図である。
を示すブロック図である。
を示すブロック図である。
を示すブロック図である。
を示すブロック図である。
ための機能ブロック図である。
ための図である。
15 8×8ビット乗算器、16〜19 シフタ、20
56ビットデータ、21 乗算器、22選択信号、2
3 浮動小数点データ、24 選択/フォーマット変換
装置、25 56ビットデータ、30 56×24ビッ
ト乗算器、31 丸め回路。
Claims (6)
- 【請求項1】 輝度値を表わす第1データを入力する第
1データ入力手段と、 浮動小数点データで表わされる第2データを入力する第
2データ入力手段と、 前記第1および第2データの演算を直接ハードウェアで
行なう演算手段と、 前記演算手段の演算結果を前記入力された輝度値データ
と同じフォーマットで出力する手段とを含む、乗算装
置。 - 【請求項2】 前記第1のデータはN個の成分で規定さ
れ、前記各成分はそれぞれn1ビットで表わされ、前記
第2データはm1ビットで表わされ、 前記演算手段はさらに、前記第1データを各々が前記n
1ビットを有するN個の成分に分離する手段と、前記第
2データから前記n1ビットを有する仮数部を抽出する
手段とを含む乗算準備手段と、前記N個のn1×n1ビ
ット乗算器とを含む、請求項1に記載の乗算装置。 - 【請求項3】 前記第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ビットの仮数部との
乗算を行なう、請求項1に記載の乗算装置。 - 【請求項4】 前記装置はさらに、m1ビットの浮動小
数点データで表わされる第3データを入力する第3デー
タ入力手段と、前記第3データからn2ビットを有する
仮数部を抽出する手段とを含み、 前記第2データから仮数部を抽出する手段はn1ビット
ではなく、n2ビットを有する仮数部を抽出し、 前記乗算準備手段はさらに、 外部からの信号に応答して前記第1データと第2データ
との第1の乗算か、前記第2データと第3データとの第
2の乗算のいずれかを選択する選択手段と、 前記選択に応じて前記第1の乗算であれば、前記第1デ
ータ準備手段からのデータを準備し、前記第2の乗算で
あれば、下位にn2ビットの仮数部を有し、上位に(n
1×(2N−1)−n2)ビットの“0”を有するn1
×(2N−1)ビットデータを準備する第2データ準備
手段からのデータを準備する手段とを含み、 前記乗算器は、前記選択に応じて前記第1または第2デ
ータ準備手段の準備した前記n1×(2N−1)ビット
データと前記第2データから抽出されたn2ビットのデ
ータとの乗算を行なう、請求項3に記載の乗算装置。 - 【請求項5】 前記第2データおよび第3データは、前
記m1ビットより大きいm2ビットで表わされ、それに
よって前記第2および第3データから仮数部を抽出する
手段はn3ビットの仮数部を抽出し、 前記第2データ準備手段は、前記選択に応じて、前記第
2の乗算であれば下位にn3ビットの仮数部を有し、上
位に(n1×(2N−1)−n3)ビットの“0”を有
するn1×(2N−1)ビットデータを準備し、 前記乗算器は前記選択に応じて前記準備されたn1×
(2N−1)ビットデータと前記第2データから抽出さ
れたn3ビットデータとの乗算を行なう、請求項4に記
載の乗算装置。 - 【請求項6】 前記装置はさらに、 外部から与えられる信号に応答して前記m1ビットで表
わされる第4データと前記m1ビットより大きいm2ビ
ットで表わされる第5データおよび前記m1ビットで表
わされる第6データと前記m2ビットで表わされる第7
データとからそれぞれが前記m1またはm2ビットで表
わされる前記第2および第3データを選択する手段を含
み、外部から与えられる信号に応じて、前記第2および
第3データがm1ビットである場合には、n3ビットデ
ータをn2ビットデータに切換える手段とを含む、請求
項5に記載の乗算装置。
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 true JPH0816365A (ja) | 1996-01-19 |
JP3583474B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752092A (en) * | 1994-04-27 | 1998-05-12 | Nikon Corporation | Control unit for a vibration compensation device for use in an optical imaging system |
JP5853177B2 (ja) * | 2011-04-08 | 2016-02-09 | パナソニックIpマネジメント株式会社 | データ処理装置、及びデータ処理方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7366749B2 (en) * | 2001-05-25 | 2008-04-29 | Sun Microsystems, Inc. | Floating point adder with embedded status information |
US7831652B2 (en) * | 2001-05-25 | 2010-11-09 | Oracle America, Inc. | Floating point multiplier 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 |
US7069289B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point unit for detecting and representing inexact computations without flags or traps |
US7069288B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point system with improved support of interval arithmetic |
US7430576B2 (en) * | 2001-05-25 | 2008-09-30 | Sun Microsystems, Inc. | Floating point square root provider with embedded status information |
US7363337B2 (en) * | 2001-05-25 | 2008-04-22 | Sun Microsystems, Inc. | Floating point divider with embedded status information |
US7016928B2 (en) * | 2001-05-25 | 2006-03-21 | Sun Microsystems, Inc. | Floating point status information testing circuit |
US7191202B2 (en) * | 2001-05-25 | 2007-03-13 | Sun Microsystems, Inc. | Comparator unit for comparing values of floating point operands |
US7613762B2 (en) * | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
US6976050B2 (en) * | 2001-05-25 | 2005-12-13 | Sun Microsystems, Inc. | System and method for extracting the high part 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 |
US7444367B2 (en) * | 2001-05-25 | 2008-10-28 | Sun Microsystems, Inc. | Floating point status information accumulation circuit |
US6993549B2 (en) * | 2001-05-25 | 2006-01-31 | Sun Microsystems, Inc. | System and method for performing gloating point operations involving extended exponents |
US7003540B2 (en) * | 2001-05-25 | 2006-02-21 | Sun Microsystems, Inc. | Floating point multiplier for delimited 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 |
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 |
US6970898B2 (en) * | 2001-05-25 | 2005-11-29 | Sun Microsystems, Inc. | System and method for forcing floating point status information to selected values |
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 |
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
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752092A (en) * | 1994-04-27 | 1998-05-12 | Nikon Corporation | Control unit for a vibration compensation device for use in an optical imaging system |
JP5853177B2 (ja) * | 2011-04-08 | 2016-02-09 | パナソニックIpマネジメント株式会社 | データ処理装置、及びデータ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US5666301A (en) | 1997-09-09 |
JP3583474B2 (ja) | 2004-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3583474B2 (ja) | 乗算装置 | |
US6370559B1 (en) | Method and apparatus for performing N bit by 2*N−1 bit signed multiplications | |
TWI402766B (zh) | 繪圖處理器 | |
JP2610095B2 (ja) | イメージ表示装置及び方法 | |
US5844830A (en) | Executing computer instrucrions by circuits having different latencies | |
US5506799A (en) | Booth array multiplying circuit having carry correction | |
US5442577A (en) | Sign-extension of immediate constants in an alu | |
CN110955406A (zh) | 浮点动态范围扩展 | |
JP2000506646A (ja) | ブレンド論理を使用して色空間変換を行う方法および装置 | |
JP2000259394A (ja) | 浮動小数点乗算器 | |
KR19990013698A (ko) | 연산방법 및 연산장치 | |
US7890558B2 (en) | Apparatus and method for precision binary numbers and numerical operations | |
US4916531A (en) | Color video processing circuitry | |
US5574672A (en) | Combination multiplier/shifter | |
US7647368B2 (en) | Data processing apparatus and method for performing data processing operations on floating point data elements | |
US4823300A (en) | Performing binary multiplication using minimal path algorithm | |
EP0326006A2 (en) | Format converting circuit for numeric data | |
JP3579087B2 (ja) | 演算器およびマイクロプロセッサ | |
JPH086789A (ja) | 複数命令を同時に進行させる方法及びそのためのプロセッサ | |
JP3462054B2 (ja) | 並列加減算回路 | |
JP2765516B2 (ja) | 積和演算器 | |
US7237000B2 (en) | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly | |
JPH02205923A (ja) | 演算プロセッサ | |
JP3201097B2 (ja) | 乗算器における乗算処方方法 | |
JP3247759B2 (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 |