[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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
Application number
JP6148008A
Other languages
English (en)
Other versions
JP3583474B2 (ja
Inventor
Hiroyuki Makino
博之 牧野
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 JP14800894A priority Critical patent/JP3583474B2/ja
Priority to US08/460,948 priority patent/US5666301A/en
Publication of JPH0816365A publication Critical patent/JPH0816365A/ja
Application granted granted Critical
Publication of JP3583474B2 publication Critical patent/JP3583474B2/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/487Multiplying; Dividing
    • G06F7/4876Multiplying

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

(57)【要約】 【目的】 高速で輝度計算を行なうことができる乗算装
置を提供する。 【構成】 それぞれが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

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は乗算装置に関し、特に
三次元コンピュータグラフィックスを中心としたコンピ
ュータグラフィックス技術における数値計算を高速処理
できる乗算装置に関する。
【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 Processin
g with the 88110 RISC MICROPROCESSOR”, digest of
papers, COMPCON '92, pp.169-174, 1992 に開示されて
いる。同文献によれば、punpk、pmulおよびp
packという命令を使用可能とすることによってこの
機能を実現している。
【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データ
の乗算を直接ハードウェアで行なう手段と、乗算結果を
入力された輝度値データと同じフォーマットで出力する
手段とを含む。
【0018】請求項2に係る乗算装置は、請求項1の乗
算装置の第1のデータがN個の成分で規定され、各成分
はそれぞれn1ビットで表わされ、第2データはm1ビ
ットで表わされ、演算手段はさらに、第1データを各々
がn1ビットを有するN個の成分に分割する手段と、第
2データからn1ビットを有する仮数部を抽出する手段
とを含む乗算準備手段と、N個のn1×n1ビットの乗
算器とを含む。
【0019】請求項3に係る乗算装置においては、請求
項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ビットの仮数
部との乗算を行なう。
【0020】請求項4に係る乗算装置においては、請求
項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ビットのデータとの乗算を行なう。
【0021】請求項5に係る乗算装置においては、請求
項4の乗算装置の第2データおよび第3データはm1ビ
ットより大きいm2ビットで表わされ、それによって第
2および第3データから仮数部を抽出する手段はn3ビ
ットの仮数部を抽出し、第2データ準備手段は上記選択
に応じて第2の乗算であれば下位にm3ビットの仮数部
を有し、上位に(n1×(2N−1)−n3)ビットの
“0”を有するn1×(2N−1)ビットデータを準備
し、乗算器は上記選択に応じて準備されたn1×(2N
−1)ビットデータと第2データから抽出されたm3ビ
ットデータとの乗算を行なう。
【0022】請求項6に係る乗算装置においては、請求
項5の乗算装置がさらに、外部から与えられる信号に応
答してm1ビットで表わされる第4データとm1ビット
より大きいm2ビットで表わされる第5データおよびm
1ビットで表わされる第6データとm2ビットで表わさ
れる第7データとからそれぞれがm1またはm2ビット
で表わされる第2および第3データを選択する手段を含
む。乗算装置においては、外部から与えられる信号に応
じて第2および第3データがm1ビットであればn3ビ
ットデータをn2ビットデータに切換える手段をさらに
含む。
【0023】
【作用】請求項1に係る乗算装置においては、輝度値デ
ータと浮動小数点データとを直接ハードウェアで演算す
る。
【0024】請求項2に係る乗算装置においては、請求
項1の乗算手段がN個のn1×n1ビットの乗算器で構
成される。
【0025】請求項3に係る乗算装置においては、各々
がn1ビットで表わされたN個の成分のそれぞれのデー
タの間に(N−1)個のn1ビットの“0”データを書
込むことによってn×(2N−1)ビットデータをハー
ドウェアで準備し、それを第2データから抽出されたn
1ビットの仮数部と乗算するため乗算器を1個とするこ
とができる。
【0026】請求項4に係る乗算装置においては、第1
データである輝度値データと第2データである浮動小数
点データの演算だけでなく、第2データと第3データと
の演算すなわち、浮動小数点データ同士の演算が選択的
に可能になる。
【0027】請求項5に係る乗算装置においては、m1
ビットより大きいm2ビットで表わされるたとえば倍精
度のようなデータを用いて演算が行なわれるため、浮動
小数点乗算の精度が向上する。
【0028】請求項6に係る乗算装置においては、第2
データおよび第3データとしてはm1ビットのデータま
たはm1ビットより大きいm2ビットのデータを選択的
に用いて乗算が行なわれるため、単精度だけでなくたと
えば倍精度のデータを用いた浮動小数点乗算が選択的に
可能になる。
【0029】
【実施例】
(1) 第1実施例 以下この発明の実施例を図面を参照して説明する。図1
はこの発明が適用される乗算装置が組込まれた高速の数
値演算処理を行なうためのマイクロプロセッサのブロッ
ク図である。
【0030】図1を参照して、グラフィックス処理を高
速に実行するマイクロプロセッサ100は、整数演算な
どを実行するRISC型CPUコア101と、CPUコ
ア101に接続され、本願発明に係る乗算装置を制御す
る浮動小数点演算制御部102と、外部データの入出力
や、外部への制御信号の出力を行なうバス制御部103
と、命令をストアする命令キャッシュ104と、外部ア
ドレスに接続されメモリの管理を行なうメモリ管理ユニ
ット105と、データをストアするデータキャッシュ1
06とを含む。
【0031】外部から与えられたデータはバス制御部1
03を介して命令キャッシュ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ビットのデータをシフタ1
6〜19へ出力する。
【0035】ここで係数2がIEEE規格に準拠してい
る場合には、最上位の“1”が省略された表現となって
いるため、この8×8ビット乗算器12〜15の入力の
一方は係数2の仮数部上位7ビットとその上位に“1”
を付加した8ビットとなる。
【0036】シフタ16〜19は、8×8ビット乗算器
12〜15の出力の16ビットデータを浮動小数点デー
タで表わされる係数2の値によって左右方向シフトして
整数部を8ビットのデータとして出力する働きを有す
る。ただし、浮動小数点データで表わされる係数2がI
EEE規格に準拠している場合には、指数部にはバイア
ス値“01111111”(=127)が付加された値
となっているため、まず指数部からこのバイアス値を引
かなければならない。これは、IEEE規格において
は、8ビットの指数部が−128〜+127を表わすの
に、負の表現を避けるために127を加えた表現をとる
ように定められているためである。これによって表現上
は指数部は−1〜+254となる。このうち−1は∞や
非数等の例外を表わすために用いられるため、数値とし
ての意味をもつのは0〜254となり、負の表現が避け
られる。したがって実際の値を求めるには指数部の値か
ら127を差し引かなければならない。
【0037】次に例を挙げて説明する。いま輝度値1の
成分を“00001010”とし、浮動小数点データで
表わされる係数2のバイアスを差し引かれた指数部を
“00000010”、最上位に“1”を付加した8ビ
ットの仮数部を“1.0000001”とする。輝度値
と仮数部との積の結果は“00001010.0001
0100”となるが、指数部は十進数で“2”を表わし
ているため左方向へ2ビットシフトして“000010
1000.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においては、5
6ビットデータ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〜1
9から出力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】請求項2に係る乗算装置においては、乗算
器がN個のn×nビット乗算器で構成されるため、簡単
な構成で輝度値データと浮動小数点データの乗算が可能
な乗算装置が提供できる。
【0059】請求項3に係る発明においては、特別なハ
ードウェアの追加を要することなく乗算器を1個とする
ことができるため、簡単な構成で高速な輝度計算が可能
な乗算装置が提供できる。
【0060】請求項4においては、輝度計算および浮動
小数点乗算とが選択的に実施できるため、通常の浮動小
数点演算だけでなく輝度の演算も容易に行なうことがで
き、グラフィックス計算に適した乗算装置を得ることが
できる。
【0061】請求項5に係る乗算装置においては、処理
される浮動小数点データのビット数が上げられるため、
浮動小数点乗算の精度が向上する。その結果、精度の高
い輝度値データや浮動小数点データの乗算が可能な乗算
装置が提供できる。
【0062】請求項6に係る乗算装置においては、ビッ
ト数の異なる浮動小数点データと輝度値データを用いて
その乗算が容易に行なわれるため、たとえば単精度およ
び倍精度の浮動小数点乗算機能に加えて、輝度値と単精
度浮動小数点データとの乗算および輝度値と倍精度浮動
小数点データとの乗算を少ないハードウェアの追加で実
行することができる乗算装置が提供できる。
【図面の簡単な説明】
【図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選択信号、2
3 浮動小数点データ、24 選択/フォーマット変換
装置、25 56ビットデータ、30 56×24ビッ
ト乗算器、31 丸め回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 輝度値を表わす第1データを入力する第
    1データ入力手段と、 浮動小数点データで表わされる第2データを入力する第
    2データ入力手段と、 前記第1および第2データの演算を直接ハードウェアで
    行なう演算手段と、 前記演算手段の演算結果を前記入力された輝度値データ
    と同じフォーマットで出力する手段とを含む、乗算装
    置。
  2. 【請求項2】 前記第1のデータはN個の成分で規定さ
    れ、前記各成分はそれぞれn1ビットで表わされ、前記
    第2データはm1ビットで表わされ、 前記演算手段はさらに、前記第1データを各々が前記n
    1ビットを有するN個の成分に分離する手段と、前記第
    2データから前記n1ビットを有する仮数部を抽出する
    手段とを含む乗算準備手段と、前記N個のn1×n1ビ
    ット乗算器とを含む、請求項1に記載の乗算装置。
  3. 【請求項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. 【請求項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. 【請求項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. 【請求項6】 前記装置はさらに、 外部から与えられる信号に応答して前記m1ビットで表
    わされる第4データと前記m1ビットより大きいm2ビ
    ットで表わされる第5データおよび前記m1ビットで表
    わされる第6データと前記m2ビットで表わされる第7
    データとからそれぞれが前記m1またはm2ビットで表
    わされる前記第2および第3データを選択する手段を含
    み、外部から与えられる信号に応じて、前記第2および
    第3データがm1ビットである場合には、n3ビットデ
    ータをn2ビットデータに切換える手段とを含む、請求
    項5に記載の乗算装置。
JP14800894A 1994-05-29 1994-06-29 乗算装置 Expired - Fee Related JP3583474B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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