JPH10207694A - ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム - Google Patents
ディジタルべき乗演算装置及びそれを用いたグラフィックスシステムInfo
- Publication number
- JPH10207694A JPH10207694A JP724097A JP724097A JPH10207694A JP H10207694 A JPH10207694 A JP H10207694A JP 724097 A JP724097 A JP 724097A JP 724097 A JP724097 A JP 724097A JP H10207694 A JPH10207694 A JP H10207694A
- Authority
- JP
- Japan
- Prior art keywords
- logarithmic
- exponent
- calculation unit
- value
- input value
- 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
Landscapes
- Image Generation (AREA)
Abstract
算を行うことができ、テーブルの容量を小さく抑えるこ
とのできる方式、及びその装置を提供することを目的と
する。 【解決手段】2のべきを底とする対数関数、及び指数関
数の値を保持する対数テーブル、及び指数テーブルと乗
算器、更に対数関数の定義域が前記対数テーブルの入力
値域に含まれない場合に該入力値を適当な整数Lだけシ
フトする対数シフト部,対数テーブルで参照した値にシ
フト数を足す対数加算部,指数関数の定義域が前記指数
テーブルの入力値域に含まれない場合に該入力値から適
当な整数Lを引く指数減算部,指数テーブルで参照した
値を減算量だけシフトする指数シフト部を有することに
より達成される。
Description
まれる処理を実行する情報処理装置に関する。
Nに対してXN を求めるべき乗計算については、技術評
論社より平成3年2月25日に発行された奥村晴彦著、
「C言語による最新アルゴリズム事典」のp105−1
06,p162−163、及びp304に記されている
ように、対数関数及び、指数関数をべき級数展開もしく
は、連分数展開することで、対数及び、指数をループ計
算によって求める手法を用い、ソフトウェア的にXの対
数を計算し、その結果にNを乗算し、最後にこの乗算結
果の指数を計算するといった方法が取られていた。
タル数値データX,Nから直接アドレスを生成してべき
乗テーブル(ROM,RAM)を参照する方法が取られ
ていた。
では、前者の場合、ループ計算が発生し処理の高速化が
難しく、後者の場合、テーブルの入力がX及びNの2つ
であるためテーブルの入力値の階調数はXの階調数とN
の階調数の積となりテーブルの容量が大きくなるという
問題があった。
の小さいテーブルを参照して高速にべき乗計算を行い得
るべき乗演算装置とそれを用いたグラフィックスシステ
ムを提供することにある。
Xに対する対数値を対数テーブルを用いて出力する対数
算出部と、対数算出部の出力とべき乗する値Nを乗算す
る乗算器と、この乗算器の出力に対する指数値を指数テ
ーブルを用いて出力する指数算出部とからディジタルべ
き乗演算装置を構成し、前記対数算出部により算出され
る対数の底と、前記指数算出部により算出される指数の
底を同一の値にしたことにある。
本発明では、前記対数算出部に、その入力値が前記対数
テーブルの入力値域に含まれない場合に前記対数算出部
の入力値に適当な整数Lに対し2L を乗算する対数シフ
ト部と、前記乗算結果を前記対数テーブルの入力とし対
数テーブル参照後、参照値にLを加算して前記対数算出
部の出力とする対数加算部を設けたものである。
記指数テーブルの入力値域に含まれない場合に前記指数
算出部の入力から適当な整数Mを減算する指数減算部
と、該減算結果を前記指数テーブルの入力とし指数テー
ブル参照後、該参照値に2-Mを乗算して前記指数算出部
の出力とする指数シフト部を設けたものである。
は、RAM,ROMだけに留まらず、入力値に対する対
数関数,指数関数の値を一定時間内に算出する回路一般
を指すものである。
べき乗計算を行う際、対数テーブル参照によってaを底
とする対数logaXを求め、乗算器でlogaX×N
を計算し、指数テーブル参照によってaのlogaX×
NべきalogaX×N=XN を算出する。本発明では
ループ計算を行わないため、高速計算が可能である。ま
た、対数テーブルと指数テーブルとの2つにテーブルを
分割することで、各テーブルの入力を1つにできて、テ
ーブルの容量を減らすことができる。
に、前記対数算出部の入力値が前記対数テーブルの入力
値域に含まれない場合に該入力値に適当な整数Lに対し
2L を乗算し、該乗算結果を前記対数テーブルの入力と
し対数テーブル参照後、該参照値にLを加算して前記対
数算出部の出力とし、前記指数算出部の入力値が前記指
数テーブルの入力値域に含まれない場合に該入力値から
適当な整数Mを減算し、該減算結果を前記指数テーブル
の入力とし指数テーブル参照後、該参照値に2-Mを乗算
して前記指数算出部の出力とする。これによって、前記
対数算出部,指数算出部の入力値が前記対数,指数テー
ブルの入力値域に含まれない場合もべき乗計算できる。
従って、前記対数,指数テーブルの入力値域を制限する
ことができ、テーブルの容量を減らすことができる。
を用いて説明する。図8に本発明に基づくディジタルべ
き乗演算装置を用いた一実施例であるグラフィックス・
システムの構成を示す。本システムはアプリケーション
ソフト等を実行するCPU(1000),主メモリMM
(3000)等を制御するメモリ・コントローラMC
(2000),システムバスを制御するシステムバス・コ
ントローラ(4000),システムバス・コントローラ
から受け取ったデータを、座標変換等を行うジオメトリ
プロセッサ(5000)に送り、またジオメトリプロセ
ッサから帰ってきたデータに対しFI変換,パック,光
源計算等の処理を施すGPIF(0000),GPIF
(0000)から送られたデータを画素情報展開するレ
ンダリングプロセッサ(6000),レンダリングプロ
セッサ(6000)が生成した画素情報を記憶するフレ
ームメモリ(7000)、及びフレームメモリ(700
0)の内容を表示するCRT(8000)からなる。
る。CPU(1000)はアップリケーションを実行
し、グラフィックス・コマンドと描画する図形の頂点座
標,法線ベクトル,テクスチャ・データ,材質の各反射
係数,光源の各反射光用の色等のデータを発行し、MC
(2000)とシステムバス・コントローラ(4000)
を介してGPIF(0000)に出力する。GPIF
(0000)はシステムバス・コントローラ(400
0)から送られた前記コマンドとデータをGPIF入力
手段(100)に保持する。
IF入力手段(100)に保持しているコマンドとデー
タを読み、前記コマンドとデータに従い座標変換等の幾
何計算を行い、頂点座標,法線ベクトル,テクスチャ・
データ等を算出してGPIF(0000)に送る。
ッサ(5000)から送られたデータに対し、前記コマ
ンドとデータに従い必要ならばFI変換,パックを施
し、頂点毎の色を計算する光源計算を行い、連続三角形
描画コマンド,頂点座標,色,テクスチャ・データをレ
ンダリングプロセッサ(6000)に出力する。
記コマンドとデータから内挿補間により図形の内部の画
素を生成し、CRT(8000)に表示する内容をビッ
トマップ形式でフレームメモリ(7000)に書き込
み、画像をCRT(8000)に表示する。
ついて詳細に説明する。
・コントローラ(4000)から送られたコマンドとデ
ータを保持するバッファであるGPIF入力手段(10
0)と、前記コマンドとデータを読み幾何計算を行うジ
オメトリプロセッサ(5000)から送られたデータを保
持するバッファであるLBuf(200)と、前記コマ
ンドとデータをLBuf(200)からコマンド解釈手
段(600)及びFI変換手段(400)に出力するた
めのレジスタであるBufSW(300)と、前記コマ
ンドを解釈するコマンド解釈手段(600)と、前記コ
マンドに従い必要ならデータのFI変換を行うFI変換
手段(400)と、前記コマンドに従い必要なら前記F
I変換後のデータのパック処理を行うパック手段(50
0)と、前記FI変換,パック処理後の光源計算に必要
な光源データを保持する光源テーブル(700)と、光源
テーブル(700)の保持する光源データを基に光源計
算を行い色を算出する光源計算手段(000)と、ジオ
メトリプロセッサ(5000),パック手段(500)及
び光源計算手段(000)から送られたコマンドとデー
タの順序を制御する制御手段(800)と、前記コマン
ドとデータを保持するバッファであるCBuf(90
0)と、前記コマンドとデータをレンダリングプロセッ
サ(6000)に出力するためのレジスタであるBuf
FL(950)から構成される。
手段(000)の詳細を図9に示す。
要なパラメータが固定小数点数で保持されている。この
パラメータは光源に非依存なものと光源に依存して値の
変化するものとがある。光源テーブル(700)は光源
に非依存なパラメータの値をそれぞれ1個ずつ、光源に
依存して値の変化するパラメータの値をそれぞれ8個ず
つ(8光源分)保持している。もし、光源数が9個以上
ある場合は既に計算に使われた値から順に新たな光源の
値に一つずつ更新される。
ような書き込み制御を行うために、8個の値のうち、現
在何番目の値を計算中であるかを示すリードポインタ,
RPNTレジスタが用意されており、RPNT以降の値はロ
ックされ、更新が延期される。
ーフウェイベクトルの内積を計算するHN内積算出部
(010)と、該内積のSM乗を計算するべき乗算出部
(00)と、法線ベクトルと光源ベクトルの内積を計算
するLN内積算出部(020)と、べき乗算出部(0
0)とLN内積算出部(020)の出力を用いて各頂点
毎の色を算出する色算出部(030)から構成される。
(Nx,Ny,Nz)とハーフウェイベクトル(Hx,
Hy,Hz)の内積を計算し結果13bit をべき乗算出
部(00)に出力する。
(010)の出力を材質の鏡面指数SM(1から128
までの整数)乗して結果8bit を色算出部(030)に
出力する。
(Nx,Ny,Nz)と光源ベクトル(Lx,Ly,L
z)の内積を計算し結果を色算出部(030)に出力す
る。色算出部(030)はRGBの3色をそれぞれ独立に
計算するため、同様のリソースを3セット有している。
例えばRについては、環境反射光のR成分LcaR,拡
散反射光のR成分LcdR,鏡面反射光のR成分Lcs
R,環境反射係数のR成分KaR,拡散反射係数のR成
分KdR,鏡面反射係数のR成分KsR,放射反射光と
全体の環境反射光のR成分の和KR,減衰係数とスポッ
ト光源効果の積AtSp,べき乗算出部(00)の出
力、及びLN内積算出部(020)の出力を入力とし、
頂点の色のR成分8bit を出力する。
す。説明の都合上、入力はX、及びNとし、出力はXN
とする。つまり、X、及びNは上述の説明に於けるHN
内積算出部(010)の出力、及び材質の鏡面指数SM
に対応する。Xは13bit の固定小数点数で範囲は0〜
1、Nは8bit の固定小数点数で範囲は0〜128、X
N は8bit の固定小数点数で範囲は0〜1である。
15bit の固定小数点数で算出する対数算出部(1
0),該対数算出部(10)の出力とNを乗算し、10
bit の固定小数点数を出力する乗算器(20),該乗算
器(20)の出力に対する指数関数の値を8bit の固定
小数点数で算出する指数算出部(30)からなる。
部(30)をそのままテーブルにしてしまうと、対数テ
ーブルは入力レンジが0〜1で13bit 、出力レンジが
0〜8(厳密には8は含まない)で15bit 、指数テー
ブルは入力レンジが0〜8(厳密には8は含まない)で
10bit 、出力レンジが0〜1で8bit となり、メモリ
容量換算でそれぞれ、122,880bit ,8,192bi
t と膨大な容量になってしまう。
つまり入出力レンジを制限し、対数算出部(10)及び
指数算出部(30)を以下のように構成することによ
り、それぞれのテーブルの容量の大幅な低減(メモリ容
量換算で24,576bit,768bit )と、縮退以前と同
様の精度での計算が可能となる。
退した対数テーブル(12)の入力レンジに入るまでK
ビット左シフト(2K を乗算)し、3bit のシフト量K
と11bit のシフト結果を出力する対数シフト部(1
1)と、該シフト結果に対する対数関数の値を12bit
の固定小数点数として出力する縮退した対数テーブル
(12)と、該対数テーブル(12)の出力にKを加算
して、15bit の固定小数点数を出力する対数加算部
(13)からなる。
縮退した指数テーブル(32)の入力レンジに入るまで
Mを減じ、3bit の減算量と7bit の減算結果を出力す
る指数減算部(31)と、該減算結果に対する指数関数
の値を6bit の固定小数点数として出力する縮退した指
数テーブル(32)と、該指数テーブル(32)の出力を
Mビット右シフトする指数シフト部(33)から構成さ
れる。
力Pxに対して出力Pyを算出する際(この操作を白貫
矢印で表している)の動作を示す。図2のグラフは底を
2-1=0.5 とする定義域0〜1(厳密には0は含まな
い)、値域0〜8(厳密には8は含まない)の対数関数
の一部を表わしたものである。ここで、定義域とは入力
値xの変域を意味し、値域とはxの変動に伴う出力値y
の変域を意味する。
は含まない)、値域0〜1(厳密には1は含まない)の
部分である。対数テーブル(12)はこの範囲の対数関
数を保持している。つまり、グラフ全体の定義域が0〜
1であるのに対して、対数テーブル(12)が保持して
いる範囲の定義域は0.5〜1 と1/2に、またグラフ
全体の値域が0〜8であるのに対して、対数テーブル
(12)が保持している範囲の値域は0〜1と1/8に
縮対している。
0.25 は含まない)、値域1〜2(厳密には2は含ま
ない)の部分であり、対数関数の性質より領域1は領域
0に対しxを2-1倍し、yに1を加えたものである。一
般的に領域K(Kは0から7までの整数)は定義域2
-K-1〜2-K(厳密には2-K-1は含まない)、値域K〜K
+1(厳密にはK+1は含まない)の部分であり、対数
関数の性質より領域Kは領域0に対しxを2-K倍し、y
にKを加えたものである。対数シフト部(11)はPx
がどの領域Kの定義域に含まれているかによって、Px
を2K 倍(K左シフト)し、領域0の定義域までシフト
する。簡単のためPxは領域1の定義域に含まれている
ものとし、Pxを21 倍(1シフト)した結果をQxと
する(この操作を矢印(1)で表している)。Qxは対
数テーブル(12)の入力値域に含まれているので、対
数テーブル(12)を参照してQyを得る(この操作を
矢印(2)で表している)。最後に対数加算部(13)
はQyにシフト量の1を足してPyを算出する(この操
作を矢印(3)で表している)。
を示す。対数シフト部(11)は領域Kの定義域内の入
力値が領域0の定義域に入るまで左シフトさせ、そのと
きのシフト量とシフト結果を出力する。
3bit の固定小数点数で表わすと0.001000000001〜0.01
0000000000であるが、この定義域にある値0.0010100111
01を領域0の定義域0.100000000001〜1.000000000000ま
で左シフトさせる場合のシフト量は、この値0.00101001
1101から0.000000000001を引いた0.001010011100の最上
位にある1が上位から2桁目に来るまで左シフトさせた
際のシフト量と一致する。この場合シフト量は2であ
る。ここで、0.000000000001を引くのは0.010000000000
のように領域内の最大値も例外なく扱うためである。こ
のような場合は0.000000000001を引かずに最上位にある
1が上位から2桁目に来るまでシフトさせると0.100000
000000となり領域0の定義域に含まれなくなる。
には0.5は含まない)13bit であるが、0.5即ち1
3bit の固定小数点数0.100000000001を引いて定義域
を0〜0.5(厳密には0.5は含まない)としておくこ
とで上位2bit は必ず00となる。このことを利用し
て、前記対数テーブル(12)の入力を13bit から、
必ず00となる上位2bit を取り去り下位の11bit と
することで、入力ビット数を2bit 節約できる。従っ
て、シフト結果から13bit の固定小数点数0.10000000
0001を引いて上位2bit を取り去った11bit の値を対
数テーブル(12)への出力とする。
理由は7bit 左シフトしても領域0の定義域に含まれな
い値は2-8より小さく、8bit 精度のべき乗結果には現
われてこないためである。このような場合、13bit の
固定小数点数0.100000000001を引くと0未満になるた
め、0クランプして出力値は0.000000000000とする。
0.000000000001を引いた値は0.001001110011である。こ
の値の最上位にある1は2bit 左シフトすれば上位から
2桁目に来るので、シフト量は2である。従って、入力
値0.001001110100を2bit 左シフトした0.100111010000
がシフト結果となる。出力値はシフト結果0.1001110100
00から0.100000000001を引いた0.000111001111である。
0.000000000001を引いた値は0.000000011111である。こ
の値の最上位にある1は7ビット左シフトすれば上位か
ら2桁目に来るので、シフト量は7である。従って、入
力値0.000000100000を7ビット左シフトした1.00000000
0000がシフト結果となる。出力値はシフト結果1.000000
000000から0.100000000001を引いた0.011111111111であ
る。
0.000000000001を引いた値は0.000000000100である。こ
の値の最上位にある1は7ビット左シフトしても上位か
ら2桁目に来ることはないので、シフト量は最大の7で
ある。従って、入力値0.000000000101を7ビット左シフ
トした0.001010000000がシフト結果となる。シフト結果
1.000000000000から0.100000000001を引くと0未満とな
るので0クランプして出力値は0.000000000000となる。
1)の回路図を図4に示す。
値から13bit の固定小数点数0.000000000001を引いた
値を用いてシフト量を決定するため入力直後にこの引き
算を行う。図4の最上段には該引き算結果の上位8bit
と入力値を並べている。シフトに関する論理は大きく3
段に分かれている。まず、1段目ではNOR1が該引き
算結果の上位8bit のうち、上位5bit のNORをとり
この値の0,1に応じて該引き算結果の上位8bit 及び
入力値を4bit 左シフトするか否かを決定する。
算結果の上位5bit が全て0であり、4bit 左シフトす
る余地があることを意味しているため、該引き算結果の
上位8bit 及び入力値を4bit 左シフトする。また、シ
フト量の最上位を1とする。これは4bit 左シフトした
ことを示す。
算結果の上位5bit の中に1が含まれていて、4bit 左
シフトはできないことを意味しているため、該引き算結
果の上位8bit 及び入力値は左シフトしない。また、シ
フト量の最上位を0とする。これは4bit は左シフトで
きなかったことを示す。
の1段目におけるシフト結果の上位3bit のNORをと
り、この値の0,1に応じて該引き算結果及び入力値の
1段目におけるシフト結果を更に2bit 左シフトするか
否かを決定する。
算結果の1段目におけるシフト結果の上位3bit が全て
0であり、2bit 左シフトする余地があることを意味し
ているため、該引き算結果及び入力値の1段目における
シフト結果を2bit 左シフトする。また、シフト量の第
2桁目を1とする。これは2bit 左シフトしたことを示
す。
算結果の1段目におけるシフト結果の上位3bit の中に
1が含まれていて、2bit 左シフトはできないことを意
味しているため、該引き算結果及び入力値の1段目にお
けるシフト結果は左シフトしない。また、シフト量の第
2桁目を0とする。これは2bit 左シフトできなかった
ことを示す。
の2段目におけるシフト結果の上位2bit のNORをと
り、この値の0,1に応じて該引き算結果及び入力値の
2段目におけるシフト結果を更に1bit 左シフトするか
否かを決定する。
算結果の2段目におけるシフト結果の上位2bit が全て
0であり、1bit 左シフトする余地があることを意味し
ているため、該引き算結果及び入力値の2段目における
シフト結果を1bit 左シフトする。また、シフト量の最
下位を1とする。これは1bit 左シフトしたことを示
す。
算結果の2段目におけるシフト結果の上位2bit の中に
1が含まれていて、1bit 左シフトはできないことを意
味しているため、該引き算結果及び入力値の2段目にお
けるシフト結果は左シフトしない。また、シフト量の最
下位を0とする。これは1bit 左シフトできなかったこ
とを示す。
が、対数テーブルへの出力値は入力値の3段目における
シフト結果から13bit の固定小数点数0.100000000001
を引き算し更に0クランプした値となる。
る。対数テーブル(12)の入力は上述のように入力値
域0〜0.5(厳密には0.5は含まない)の11bit の
固定小数点数である。また、対数テーブル(12)の出
力は入力値に13bit の固定小数点数0.100000000001を
足した値に於ける対数関数の値を12bit の固定小数点
数で表わしたものであり、出力値域は0〜1(厳密には
1は含まない)である。
作り、入力値をアドレスに変換して参照するように構成
することもできるが、ここでは、出力論理値を入力論理
値の論理式で表現して論理式に対応する回路で対数テー
ブル(12)を構成する。
0,a1,…,a10とし、対数テーブル(12)の出
力の各bit をb0,b1,…,b11とすると、各b
0,b1,…,b11はa0,a1,…,a10の積和
の論理式で表わすことができる。更に、この積和の各項
を主項とする方法として、クイーンの方法や、コンセン
サス法が著名である。クイーンの方法や、コンセンサス
法については丸善株式会社が昭和57年6月30日に発
行した後藤 宗弘 著、電気・電子学生のための計算機
工学p40〜45に示されている。
する回路で対数テーブル(12)を構成することができ
る。
m のCMOSで約4kゲートを要した。
る。対数加算部(13)の入力は対数シフト部(11)
で算出したシフト量と対数テーブル(12)の出力であ
る。対数加算部(13)は対数テーブル(12)の出力
値に該シフト量を加算して出力する。
は含まない)であり、シフト量は整数であるから、対数
加算部(13)の出力はテーブルの出力値12bit の上
位にシフト量の3bit を付け足した15bitの固定小数
点数である。
る。該乗算器(20)の入力は前記対数算出部(10)
の出力と、Nである。
0)の出力15bitとN8bitを乗算して出力値域は0〜
8(厳密には8は含まない)の10bit の固定小数点数
として出力する。
最大出力値にクランプする。その理由は、2-1の8以上
のべきは2-8より小さく、8bit 精度のべき乗結果には
現われてこないためである。
力Pxに対して出力Pyを算出する際(この操作を白貫
矢印で表している)の動作を示す。図5のグラフは底を
2-1=0.5 とする定義域0〜8(厳密には8は含まな
い)、値域0〜1(厳密には0は含まない)の指数関数
の一部を表わしたものである。領域0は定義域0〜1
(厳密には1は含まない)、値域0.5〜1(厳密には
0.5は含まない)の部分であり、指数テーブル(3
2)はこの範囲の指数関数を保持している。つまり、グ
ラフ全体の定義域が0〜8であるのに対して、指数テー
ブル(32)が保持している範囲の定義域は0〜1と1
/8に、またグラフ全体の値域が0〜1であるのに対し
て、指数テーブル(32)が保持している範囲の値域は
0.5〜1 と1/2に縮退している。
ない)、値域0.25〜0.5(厳密には0.25 は含ま
ない)の部分であり、指数関数の性質より領域1は領域
0に対しxに1を加え、yを2-1倍したものである。
数)は定義域M〜M+1(厳密にはM+1は含まな
い)、値域2-M-1〜2-M(厳密には2-M-1は含まない)
の部分であり、指数関数の性質より領域Mは領域0に対
しxにMを加え、yを2-M倍したものである。
定義域に含まれているかによって、PxからMを減算
し、領域0の定義域までスライドする。簡単のためPx
は領域1の定義域に含まれているものとし、Pxから1
減算した結果をQxとする(この操作を矢印(1)で表
している)。Qxは指数テーブル(32)の入力値域に
含まれているので、指数テーブル(32)を参照してQ
yを得る(この操作を矢印(2)で表している)。最後
に指数シフト部(33)はQyに減算量の1だけ右シフ
ト(2-1を乗算)してPyを算出する(この操作を矢印
(3)で表している)。
1)の入力は入力値域0〜8(厳密には8は含まない)
の10bit の固定小数点数である。上述のように、指数
減算部(31)はその入力値がどの領域Mの定義域に含
まれているかによって、PxからMを減算し、領域0の
定義域までスライドするが、Mは入力値の上位3bitで
あり、入力値からMを引いた値は入力値の下位7bit で
ある。
る。指数テーブル(32)の入力は指数減算部(31)
の出力であり、入力値域0〜1(厳密には1は含まな
い)の7bit の固定小数点数である。また、領域0の値
域は0.5〜1(厳密には0.5は含まない)であるが、
y方向に−0.5平行移動して値域0〜0.5(厳密には
0.5 は含まない)とすることで、指数テーブル(3
2)の出力の上位2bit が00となり、出力bit 数を2
bit 減らすことが出来る。
力値に於ける指数関数の値を8bitの固定小数点数で表
わしたものから0.5即ち8bitの固定小数点数0.100000
1 を引いた6bitの固定小数点数とし、このとき出力レ
ンジは0〜0.5(厳密には0.5は含まない)である。
(12)と同様、RAMやROMで作り、入力値をアド
レスに変換して参照するように構成することもできる
が、ここでは、出力論理値を入力論理値の論理式で表現
して論理式に対応する回路で指数テーブル(32)を構
成する。実際に論理合成してみた結果、0.35μm の
CMOSで約1kゲートを要した。
の動作を説明する。指数シフト部(33)の入力は減算
部の出力である減算数と指数テーブル(32)の出力で
ある。上述したように、指数テーブル(32)の出力は
入力値に於ける指数関数の値を8bit の固定小数点数で
表わしたものから0.5 即ち8bit の固定小数点数0.10
00001を引いた6bitの固定小数点数であるから、指数シ
フト部(33)は逆に指数テーブル(32)の出力に
0.5即ち8bitの固定小数点数0.1000001 を足して、値
域を0.5〜1(厳密には0.5は含まない)に戻す必要
がある。次にその値を減算量だけ右シフトして出力す
る。
力0.01011 に8bit の固定小数点数0.1000001を足し
て、減算量2だけ右シフトすると、出力値0.0010011を
得る。但し、右シフトで上位bit が空いたところには0
が入る。
力1.01101 に8bit の固定小数点数0.1000001を足し
て、減算量5だけ右シフトすると、出力値0.0000011を
得る。
3)の回路図を図7に示す。指数シフト部の入力は指数
減算部からの出力である減算量3bit と指数テーブル
(32)からの出力6bit である。指数テーブル(3
2)からの出力に対しては入力直後に8bitの固定小数
点数0.1000001を足し算しておく。該足し算結果は8bit
の固定小数点数である。
る。まず、1段目では減算数の最下位が1のとき、該足
し算結果を1bit 右シフトし、減算数の最下位が0のと
き、該足し算結果を右シフトしない。
き、該足し算結果の1段目におけるシフト結果を2bit
右シフトし、減算数の2桁目が0のとき、該足し算結果
の1段目におけるシフト結果を右シフトしない。
とき、該足し算結果の2段目におけるシフト結果を4bi
t 右シフトし、減算数の最上位が0のとき、該足し算結
果の2段目におけるシフト結果を右シフトしない。
μm のCMOSに実装した場合、約7.5k ゲートを
要し、約35nsecで演算が完了する。これによって、光
源計算をGPIF(0000)チップの中に埋め込むこ
とが可能となり、ボトルネックになっているジオメトリ
プロセッサ(5000)の処理を軽減することができた
結果、システムとして約2倍性能を向上することができ
た。
ディジタルべき乗演算装置はテーブル参照によって演算
を行うため、ループ計算より高速に演算結果を得ること
ができる。
つにテーブルを分割することで、各テーブルの入力を1
つにできて、テーブルの容量を減らすことができる。
テーブルの入力値域に含まれない場合に該入力値に適当
な整数Lに対し2L を乗算し、該乗算結果を前記対数テ
ーブルの入力とし対数テーブル参照後、該参照値にLを
加算することで更に対数テーブルの容量を減らすことが
でき、前記指数算出部の入力値が前記指数テーブルの入
力値域に含まれない場合に該入力値から適当な整数Mを
減算し、該減算結果を前記指数テーブルの入力とし指数
テーブル参照後、該参照値に2-Mを乗算することで指数
テーブルの容量を減らすことができる。
図。
図。
フト部、12…対数テーブル、13…対数加算部、20
…乗算器、30…指数算出部、31…指数減算部、32
…指数テーブル、33…指数シフト部、000…光源計
算手段、010…HN内積算出部、020…LN内積算
出部、030…色算出部、100…GPIF入力手段、20
0…LBuf、300…BufSW、400…FI変換
手段、500…パック手段、600…コマンド解釈手
段、700…光源テーブル、800…制御手段、900…
CBuf、950…BufFL、0000…GPIF、
1000…CPU、2000…MC、3000…MM、
4000…システムバス・コントローラ、5000…ジ
オメトリプロセッサ、6000…レンダリングプロセッ
サ、7000…フレームメモリ、8000…CRT。
Claims (9)
- 【請求項1】入力値Xに対してXの対数値を出力する対
数算出部と、 該対数算出部の出力とべき乗する値Nを乗算する乗算器
と、 該乗算器の出力に対して指数値を出力する指数算出部と
からなり、XN を算出するディジタルべき乗演算装置で
あって、 前記対数算出部は対数テーブルを用いて対数を算出し、 前記指数算出部は指数テーブルを用いて指数を算出し、 前記対数算出部により算出される対数の底と、前記指数
算出部により算出される指数の底は同一の値であること
を特徴とするディジタルべき乗演算装置。 - 【請求項2】請求項1において、 前記対数関数の底及び前記指数関数の底は2K (Kは0
以外の整数)であり、 前記対数算出部は、 入力値域が正規化された前記対数テーブルと、 前記対数算出部への入力値が前記対数テーブルの入力値
域に入るよう、当該入力値に2L (Lは整数)を乗算し
て、前記対数テーブルに出力する対数シフト部と、 前記対数テーブルの出力にLを加算して前記対数算出部
の出力とする対数加算部を有することを特徴とするディ
ジタルべき上演算装置。 - 【請求項3】請求項2において、前記対数シフト部は、
前記入力値をLビット左へシフトすることを特徴とする
ディジタルべき乗演算装置。 - 【請求項4】請求項1において、 前記対数関数の底及び前記指数関数の底は2K (Kは0
以外の整数)であり、 前記指数算出部は、 入力値域が正規化された前記指数テーブルと、 前記乗算器からの出力値が前記指数テーブルの入力値域
に入るよう、当該入力値からM(Mは整数)を減算し、
前記指数テーブルに出力する指数減算部と、 前記指数テーブルの出力値に2-Mを乗算して前記指数算
出部の出力とする指数シフト部を有することを特徴とす
るディジタルべき乗演算装置。 - 【請求項5】請求項4において、前記指数シフト部は、
前記指数テーブルの出力値をMビット右へシフトするこ
とを特徴とするディジタルべき乗演算装置。 - 【請求項6】光源計算を行う光源計算部と、光源計算結
果に基づいて表示すべき図形データを画素情報に展開す
るレンダリングプロセッサと、メモリと、メモリに記憶
された画素情報を表示する表示装置を有するグラフィッ
クスシステムにおいて、 前記光源計算部は、少なくとも、入力値Xに対する対数
値を対数テーブルを用いて出力する対数算出部と、前記
対数算出部の出力とべき乗する値Nを乗算する乗算器
と、前記乗算器の出力に対する指数値を指数テーブルを
用いて出力する指数算出部を備えたことを特徴とするグ
ラフィックスシステム。 - 【請求項7】請求項6において、前記対数算出部により
算出される対数の底と、前記指数算出部により算出され
る指数の底は同一の値であることを特徴とするグラフィ
ックスシステム。 - 【請求項8】請求項6において、 前記対数関数の底及び前記指数関数の底は2K (Kは0
以外の整数)であり、 前記対数算出部は、 入力値域が正規化された前記対数テーブルと、 前記対数算出部への入力値が前記対数テーブルの入力値
域に入るよう、当該入力値に2L (Lは整数)を乗算し
て、前記対数テーブルに出力する対数シフト部と、 前記対数テーブルの出力にLを加算して前記対数算出部
の出力とする対数加算部を有することを特徴とするグラ
フィックスシステム。 - 【請求項9】請求項6において、 前記対数関数の底及び前記指数関数の底は2K (Kは0
以外の整数)であり、前記指数算出部は、 入力値域が正規化された前記指数テーブルと、 前記乗算器からの出力値が前記指数テーブルの入力値域
に入るよう、当該入力値からM(Mは整数)を減算し、
前記指数テーブルに出力する指数減算部と、 前記指数テーブルの出力値に2-Mを乗算して前記指数算
出部の出力とする指数シフト部を有することを特徴とす
るグラフィックスシステム。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP00724097A JP3884809B2 (ja) | 1997-01-20 | 1997-01-20 | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム |
| CA002418916A CA2418916C (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
| CA002227531A CA2227531C (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
| US09/009,588 US6049343A (en) | 1997-01-20 | 1998-01-20 | Graphics processing unit and graphics processing system |
| US10/391,235 US20030163502A1 (en) | 1997-01-20 | 2003-03-19 | Graphics processing unit and graphics processing system |
| US11/484,812 US20060250397A1 (en) | 1997-01-20 | 2006-07-12 | Graphics processing unit and graphics processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP00724097A JP3884809B2 (ja) | 1997-01-20 | 1997-01-20 | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004094007A Division JP2004259290A (ja) | 2004-03-29 | 2004-03-29 | グラフィックスシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10207694A true JPH10207694A (ja) | 1998-08-07 |
| JP3884809B2 JP3884809B2 (ja) | 2007-02-21 |
Family
ID=11660487
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP00724097A Expired - Fee Related JP3884809B2 (ja) | 1997-01-20 | 1997-01-20 | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3884809B2 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2351577A (en) * | 1999-03-01 | 2001-01-03 | Canon Kk | Apparatus and method for performing data computations |
| US6480873B1 (en) | 1999-06-23 | 2002-11-12 | Mitsubishi Denki Kabushiki Kaisha | Power operation device |
| US6996591B2 (en) * | 2000-12-27 | 2006-02-07 | Intel Corporation | System and method to efficiently approximate the term 2x |
| US7583129B2 (en) | 2003-05-27 | 2009-09-01 | Infineon Technologies Ag | Integrated circuit and method for operating the integrated circuit |
| JP2010517435A (ja) * | 2007-01-25 | 2010-05-20 | クォルコム・メムズ・テクノロジーズ・インコーポレーテッド | 対数ルックアップテーブルを用いた任意の冪乗関数 |
-
1997
- 1997-01-20 JP JP00724097A patent/JP3884809B2/ja not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2351577A (en) * | 1999-03-01 | 2001-01-03 | Canon Kk | Apparatus and method for performing data computations |
| GB2351577B (en) * | 1999-03-01 | 2003-10-08 | Canon Kk | Specular lighting value calculation in three-dimensional computer graphics |
| US6480873B1 (en) | 1999-06-23 | 2002-11-12 | Mitsubishi Denki Kabushiki Kaisha | Power operation device |
| US6996591B2 (en) * | 2000-12-27 | 2006-02-07 | Intel Corporation | System and method to efficiently approximate the term 2x |
| US7583129B2 (en) | 2003-05-27 | 2009-09-01 | Infineon Technologies Ag | Integrated circuit and method for operating the integrated circuit |
| JP2010517435A (ja) * | 2007-01-25 | 2010-05-20 | クォルコム・メムズ・テクノロジーズ・インコーポレーテッド | 対数ルックアップテーブルを用いた任意の冪乗関数 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3884809B2 (ja) | 2007-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6049343A (en) | Graphics processing unit and graphics processing system | |
| KR100278565B1 (ko) | 그래픽 데이터 계산 수행 방법 및 그에 이용되는 데이터 프로세서 | |
| US6417858B1 (en) | Processor for geometry transformations and lighting calculations | |
| US5734806A (en) | Method and apparatus for determining graphical object visibility | |
| US7755634B1 (en) | System, method and computer program product for branching during programmable vertex processing | |
| JPH05307610A (ja) | テクスチャマッピング方法およびその装置 | |
| US20040189651A1 (en) | Programmable graphics system and method using flexible, high-precision data formats | |
| US6219062B1 (en) | Three-dimensional graphic display device | |
| JPS63198174A (ja) | 図形処理装置 | |
| JP3058017B2 (ja) | グラフィックス画素データを変換するための装置および方法 | |
| US8264492B1 (en) | System, method and article of manufacture for a programmable processing model with instruction set | |
| JP2670875B2 (ja) | 適応前進差分および整数算術を用いてパラメトリツク関数を表示する装置および整数算術を用いて実現する方法 | |
| US6681237B1 (en) | Exponentiation circuit for graphics adapter | |
| JPH10207694A (ja) | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム | |
| JPH0869538A (ja) | アウトコードを用いてクリップチェックを実行する方法および装置 | |
| JPH0310380A (ja) | 画像変換回路 | |
| JP2001101441A (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体 | |
| JP2004259290A (ja) | グラフィックスシステム | |
| CA2418916C (en) | Graphics processing unit and graphics processing system | |
| JP3547277B2 (ja) | グラフィックス処理装置 | |
| JPH11328438A (ja) | 高効率浮動小数点zバッファリングの方法および装置 | |
| JPH11242585A (ja) | 除算回路およびグラフィック演算装置 | |
| JPH0721155A (ja) | 中央演算処理装置 | |
| JPH09305789A (ja) | 演算方法およびグラフィックス表示装置 | |
| JPH10116358A (ja) | スペキュラ・ライティングを計算する装置と方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040127 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040329 |
|
| A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040615 |
|
| A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Effective date: 20041119 Free format text: JAPANESE INTERMEDIATE CODE: A912 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060427 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061017 |
|
| A61 | First payment of annual fees (during grant procedure) |
Effective date: 20061120 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 4 Free format text: PAYMENT UNTIL: 20101124 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 4 Free format text: PAYMENT UNTIL: 20101124 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 5 Free format text: PAYMENT UNTIL: 20111124 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131124 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |