JP2000182072A - データ記録媒体、データプロセッサ及び描画情報演算方法 - Google Patents

データ記録媒体、データプロセッサ及び描画情報演算方法

Info

Publication number
JP2000182072A
JP2000182072A JP35260198A JP35260198A JP2000182072A JP 2000182072 A JP2000182072 A JP 2000182072A JP 35260198 A JP35260198 A JP 35260198A JP 35260198 A JP35260198 A JP 35260198A JP 2000182072 A JP2000182072 A JP 2000182072A
Authority
JP
Japan
Prior art keywords
data
polygon
floating
vertex
point
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.)
Withdrawn
Application number
JP35260198A
Other languages
English (en)
Inventor
Masahiro Uminaga
正博 海永
Koshi Yamada
孔司 山田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP35260198A priority Critical patent/JP2000182072A/ja
Publication of JP2000182072A publication Critical patent/JP2000182072A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 3次元形状を近似表現するためのポリゴンデ
ータのメモリロード量が少なく、しかも描画情報の生成
を高速化できるようにする。 【解決手段】 3次元形状を近似するための多数のポリ
ゴンのポリゴンデータは、頂点座標データ(x,y,
z)を浮動小数点数とし、頂点法線データ(nx,n
y,nz)を整数とする。頂点座標データのビット数
は、ポリゴンデータを読取るコンピュータが処理可能な
浮動小数点数のデータフォーマットに対して仮数の下位
側ビット数が少なくされ、その少なくされた部分に前記
頂点法線データを組込んだデータフォーマットを採用す
る。したがって、ポリゴンデータのデータ量削減が可能
になる。データ量削減によって、メモリから整数レジス
タや浮動小数点レジスタへのデータロード処理を軽減で
き、アフィン変換などを介する描画用データ生成処理の
高速化に寄与できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、3次元形状(3次
元物体)を近似する多数のポリゴン(3角形)のデータ
(ポリゴンデータ)を記録したデータ記録媒体、ポリゴ
ンデータを処理することができるデータプロセッサ、そ
して、ポリゴンデータを用いて3次元形状をフレームバ
ッファに描画するための描画情報を生成する方法に係
り、例えば、3次元グラフィック表示可能なゲーム機に
適用して有効な技術に関するものである。
【0002】
【従来の技術】3次元形状を表示スクリーンに描画する
場合の技術を概略的に説明する。3次元形状は、3角形
の面の集まりとして近似表現することができる。すなわ
ち、図2に例示されるように、3次元形状21の表面を
多数のポリゴン22で覆うことによって当該3次元形状
を近似表現することができる。個別のポリゴン22は、
3つの頂点情報の座標を与えれば、その位置と大きさが
確定する。3次元形状に色を付けて、しかも実世界と同
様に陰影を付けて描画しようとすれば、光源を考慮する
必要があり、光源からの光を受ける個々のポリゴンの面
に対して3原色の反射率、光線の入射角を考えることに
なる。
【0003】上記光源を太陽光のような平行光線とす
る。例えばグーロ法では、図3に例示されるように、ポ
リゴンの個別の頂点に仮想の法線(以下、頂点法線)2
5,26,27を割当てる。そして個々の頂点法線のベ
クトル(nx,ny,nz)と、光源28のベクトル
(lx,ly,lz)の内積を採る。この内積の値をそ
の頂点の明るさと考えることができる。ポリゴン22上
の面の各点には、3頂点の明るさを線形補間して明るさ
を割り当てることができる。これによって、ポリゴンの
面内の各点の明るさは滑らかに変化していく。これに対
して、フラット法では、ポリゴンの面全体に1つの明る
さを割り当てるようにするので、ポリゴンの境界線がは
っきりし、3次元形状は全体として角張って見える。
【0004】前記ポリゴンの集合として3次元形状を近
似する表現法として、図4に例示されるところの、3角
形列(ポリゴン列)法という表現法について説明する。
現在のポリゴンの面31は前のポリゴンの面32と2頂
点34、35を共有する。従って、現在の面31では新
しい頂点33を指定すれば、その3頂点が確定する。こ
のようにして、新しい面を決めていく方法が3角形列法
である。
【0005】この場合、ポリゴン毎にその面を指定する
データ構造として、図5のデータ構造を挙げることがで
きる。即ち、多数のポリゴンから構成される3次元モデ
ルを記述するための座標系で頂点の座標(x,y,z)
を特定し、また頂点毎に必要な頂点法線(nx,ny,
nz)を決める。さらに面の色や反射率等に係わる属性
情報を指定する必要があるが、それら属性情報はoth
ersとして図示されている。以上のデータで、1つの
頂点の情報が決まり、それらをポリゴンの配列に従って
並べることで、3角形列の情報が確定する。なお、3角
形列法において、最初の面の指定には1つの頂点情報だ
けでなく、別に2つの頂点情報が必要であることは言う
までもない。
【0006】次に、3次元形状の描画情報の演算方法を
説明する。図6においてM1〜M8の要素の集合はモデ
ル座標系における3次元モデル(3次元形状をポリゴン
の集合によって近似するモデル)である。前記要素M1
〜M8は夫々多数のポリゴンの集合から成り、個々の要
素M1〜M8は剛体とみなされる。動画表示などにおい
て、前記3次元モデルの要素M1〜M8に平行移動及び
回転移動を施して、スクリーン座標系に要素M1′〜M
8′を移動する。このとき、同一要素に含まれるポリゴ
ンには相互に同じ平行移動及び回転移動の操作が行われ
る。
【0007】図7には1つのポリゴンに着目して3次元
物体の描画情報の演算方法が示される。3次元モデルを
構成するポリゴン41は、ゲーム等の進行に代表される
ような表示状態の推移に合せて、表示スクリーン40の
向こう側(以後舞台と呼ぶ)の適当な位置42に配置さ
れる。この配置は数学的にはアフィン変換で表現でき
る。つまり、モデル座標系内の頂点Pの座標を(x,
y,z)とし、これに回転移動と平行移動とを施すアフ
ィン変換を行った舞台上の頂点P′の座標を(X,Y,
Z)とすると、頂点Pの座標(x,y,z)と頂点P′
の座標(X,Y,Z)との関係は、以下の数1の式で表
現できる。この式において、m00、m01、m02は
変換行列のx成分、m10、m11、m12は変換行列
のy成分、m20、m21、m22は変換行列のz成分
である。m03、m13、m23は平行移動のx、y、
z成分である。記号・は積を意味する。
【0008】
【数1】 X=m00・x+m01・y+m02・z+m03 Y=m10・x+m11・y+m12・z+m13 Z=m20・x+m21・y+m22・z+m23
【0009】上記行列式を使用すれば、舞台上の頂点
P′の座標は数2の式のように記述できる(tは転
置)。この式において、M=(mij)である。
【0010】
【数2】 (X,Y,Z)t=M・(x,y,z,1)t
【0011】前記数2の式より、ゲームの進行にあわせ
てアフィン変換のための行列Mを管理しておき、このM
を(x,y,z,1)tに作用させれば、舞台上の座標
(X,Y,Z)を得ることができる。例えば、図6にお
いて、モデル座標系のM1〜M8の3次元形状を舞台上
で変化させることを想定した場合、それぞれポリゴンの
集合である要素M1〜M8を剛体として、それぞれを単
位に上記変換を行うことになる。
【0012】次に、舞台上に持って来られた3次元形状
に対して、透視変換が必要になる。視点50から3次元
形状をスクリーン40に透視したときの透視図をスクリ
ーン40上に考えて座標を与える。頂点P′のスクリー
ン40上の対応点P″の座標を(u,v)とすると、透
視変換は数3の式で表現できる。α、βは透視変換の調
整値であり任意の定数とされる。
【0013】
【数3】u=X/Z+α v=Y/Z+β
【0014】また、明るさに係わる計算も必要である。
ここでは、頂点法線47の方向ベクトル(nx,ny,
nz)に対して舞台上にアフィン変換されたもの(N
X,NY,NZ)と光線43のベクトル(lx,ly,
lz)との内積の値bを計算すればよいものとする。こ
れは以下の数4の式で表現できる。
【0015】
【数4】 NX=m00・nx+m01・ny+m02・nz NY=m10・nx+m11・ny+m12・mz NZ=m20・nx+m21・ny+m22・nz b=NX・lx+MY・ly+NZ・lz
【0016】以上で計算された結果である(u,v,
Z),bを描画のハードウェアである描画プロセッサ等
に転送することにより、前記スクリーン40上に所要の
図形を表示できるように、描画プロセッサ等が所定のフ
レームバッファメモリに描画を行う。舞台上の奥行き情
報Zは複数の物体が重なっているとき、どの物体が前面
にあり、視点から見える(スクリーンに表示される)
か、を示すために必要とされる。
【0017】
【発明が解決しようとする課題】ここで、3次元モデル
を表現するために必要なデータ量(メモリ容量)と、描
画情報の演算時に必要となる3次元モデルデータの転送
容量(データレジスタへのロード量)を見積もってみ
る。
【0018】図5において、x,y,z,nx,ny,
nzを夫々4バイト浮動小数点数とし、属性情報(ot
hers)を4バイト整数とする。このとき、ポリゴン
の面当り(厳密には新頂点当り)28バイトのデータ必
要である。また転送容量は、ポリゴンの面毎に、順次に
新頂点のデータにアクセスしていけばよいので、ポリゴ
ンの面当り28バイトのデータとなる。この表現法(以
下直接表現法)は、3次元モデル表現のためのポリゴン
の面当りのメモリ容量が多い欠点がある。従って、メモ
リからデータプロセッサのレジスタに対するデータロー
ドにも時間がかかることになる。データプロセッサによ
るデータ処理速度に比べてメモリアクセス速度は一般的
に遅い。
【0019】図8には、図5のデータ構造の前記欠点を
補うためのデータ構造の一例として間接表現法によるデ
ータ構造が示される。ポリゴンの面毎に頂点情報へのイ
ンデックス(index)と属性情報(others)
とを格納し、頂点情報は別の場所に格納しておく(間接
表現法)。インデックス(index)と属性情報(o
thers)は面当り夫々4バイトとする。こうすれ
ば、ポリゴンの頂点は複数のポリゴン面で共有される性
質から、頂点情報のデータ個数が少なくて済む。そして
経験的に、面数の半分程度で済むことが知られている。
したがて、図8のモデル表現のメモリ容量は面当り20
(=8+(24)/2)バイトとなる。従ってモデル表
現のためのメモリ容量は。面当り28バイトから20バ
イトへと8バイト削減される。
【0020】しかし、メモリからデータプロセッサへロ
ードするデータ容量(転送容量)は、面当り、32(=
8+24)バイト必要になる。しかも、頂点情報へのア
クセスがランダムアクセスになってしまい、それにより
キャッシュミスが多発する可能性が高まるという新たな
欠点も生ずる。
【0021】現状のデータプロセッサでは、演算自体は
かなり速く行えるようになってきている。例えばある安
価なプロセッサにおいても、4×4行列と4要素のベク
トルとの行列ベクトル積命令(4バイト浮動小数点数計
算)が提供され、その命令を4クロックピッチで発行で
きる。しかし、外部のメモリとデータプロセッサ若しく
はCPUとのデータ転送レートは期待したようには速く
ならないのが常である。
【0022】以上、3次元形状を表示スクリーンに描画
するための、モデル表現法と描画情報計算方法の主な技
術についてを説明したが、それにより明らかなように、
3次元形状を表現するモデルデータの構造如何によっ
て、そのデータ量、そしてデータロードに要する処理時
間が相違される。
【0023】今後、3次元グラフィック処理では、より
リアルさが求められ、3次元物体を近似表現するために
ポリゴンの数を増やす傾向にある。従って、そういうも
のを描画するには、データプロセッサなどの演算処理能
力が強化されなければならないし、モデルを表現するた
めのメモリ容量が増大されなければならない。しかしな
がら、システムのハイエンド化によって対処するだけで
は限界があり、また、コストパフォーマンスの点で無駄
を生ずることにもなる。一方、家庭用ゲームシステムの
ようなデータ処理システムには低コストの要請が強い。
【0024】本発明の目的は、3次元形状を近似表現す
るためのデータのメモリ所要量が少なく、しかも描画情
報の生成を高速化できるポリゴンデータを記録したデー
タ記録媒体を提供することにある。
【0025】本発明の別の目的は、3次元形状を近似表
現するためのデータを利用した描画情報の生成を高速化
できるデータプロセッサを提供することにある。
【0026】本発明のその他の目的は、3次元形状を近
似表現するためのデータを利用した描画情報の生成を高
速化できる描画情報演算方法を提供することにある。
【0027】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0028】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0029】すなわち、本発明では、3次元形状を近似
表現するためのポリゴンデータのメモリ容量若しくはデ
ータ量を削減するために、描画に必要とされるデータの
精度に着目した。3次元モデルのポリゴンの頂点座標は
回転と平行移動に対応するアフィン変換を受ける。この
変換によって移動されるポリゴンはスクリーン座標上へ
の投影のために透視変換を受ける。透視変換された図形
の頂点は、当該図形が実際にフレームバッファに描画さ
れるときスクリーン上のピクセル位置を示す整数にされ
る。前記アフィン変換に着目すると、桁あふれの心配が
少ない浮動小数点数でポリゴンの頂点座標を表現するこ
とが好ましいと一般に言われているが、VGAやSVG
A程度のスクリーン上での表示精度を考慮すると、IE
EE754に準拠して浮動小数点数の仮数部を24ビッ
トある4バイト浮動小数点数で表現する必要のないこと
が本発明者によって見出された。また頂点法線は回転の
変換を受け、そして光線ベクトルと内積されて明るさに
関係する数値が得られる。そして最終的には、色の3原
色RGB(赤、緑、青)の強度になる。これらの値は人
間工学的に各々8ビットもあれば充分であるといわれて
いる。例えば、RGBの3原色は各々8ビットによって
16777216(=256*256*256)色のフ
ルカラー表現できる。
【0030】本発明者による以上の考察より、ポリゴン
データを、少なくとも、浮動小数点数で表現された頂点
座標データと、整数で表現された頂点法線データとによ
って表現するものである。
【0031】ポリゴンのモデル表現法として例えば、直
接上書き表現法というものを採用する。すなわち、頂点
座標(x,y,z)を例えば各3次元成分毎に4バイト
浮動小数点数で格納する。そして、頂点法線(nx,n
y,nz)の各成分を例えば各々を1バイトの整数に変
換し、これを、(x,y,z)の格納位置の「右端」の
バイトに上書きする。このように、ポリゴンの頂点の3
次元成分毎に、当該成分の前記頂点座標データの仮数部
の最下位ビットに続けて前記頂点法線データをマッピン
グする。そして最後に、ポリゴンの色などの属性データ
(other)を例えば4バイトで格納する。これによ
り、ポリゴンの面当り、例えば、16バイトのデータ量
(メモリ容量)となる。
【0032】前記アフィン変換などはコンピュータによ
る演算処理で行なわれるから、前記ポリゴンデータは、
コンピュータが理解できるデータ形式で記述されてい
る。そして、そのデータは、磁気ディスク、MO(マグ
ネトー・オプチカル・ディスク)、CD−ROM乃至フ
ロッピーディスクなどのデータ記録媒体(59)に格納
されて提供される。また、そのデータは、当該データに
アフィン変換等を施すプログラムと共に、データ記録媒
体に格納されて提供されても良い。
【0033】このように、ポリゴンデータの頂点座標デ
ータを浮動小数点数とし、頂点法線データを整数とす
る。そして、前記頂点座標データのビット数は、ポリゴ
ンデータを読取るコンピュータが処理可能な浮動小数点
数のデータフォーマットに対して仮数の下位側ビット数
が少なくされ、その少なくされた部分に前記頂点法線デ
ータを組込んだデータフォーマットを採用する。したが
って、ポリゴンデータのデータ量削減が可能になる。デ
ータ量削減によって、メモリから整数レジスタや浮動小
数点レジスタへのデータロード処理を軽減でき、アフィ
ン変換などを介する描画用データ生成処理の高速化に寄
与できる。
【0034】前記アフィン変換などに利用することがで
きるデータプロセッサ(1)は、例えば、複数個の整数
レジスタ(R0〜R15)を備え整数演算及び命令の実
行を制御する中央制御処理ユニット(3)と、複数個の
浮動小数点レジスタ(FR0〜FR15)を備え浮動小
数点演算を行う浮動小数点演算ユニット(2)と、キャ
ッシュメモリ(143)と、前記中央制御処理ユニット
及び浮動小数点演算ユニットを前記キャッシュメモリに
接続する内部バス(133〜136)と、を1個の半導
体チップに含み、浮動小数点数で表現された頂点座標デ
ータと整数で表現された頂点法線データとを頂点の各3
次元成分毎に複数バイトづつ有するポリゴンデータを用
いたグラフィック処理に利用可能である。前記中央制御
処理ユニットは、同一アドレスのポリゴンデータを前記
バスを介して前記キャッシュメモリから前記整数レジス
タと前記浮動小数点レジスタにロードし、整数レジスタ
にロードしたポリゴンデータから頂点法線データを切出
し、切出した頂点法線データを浮動小数点データに変換
して別の浮動小数点レジスタにロード可能にするもので
ある。
【0035】前記ポリゴンデータに上記データフォーマ
ットを採用する場合、前述の如く、データ量とレジスタ
へのデータロード時間は低減される。このとき、整数の
頂点法線データを浮動小数点演算で処理するならば、整
数から浮動小数点数への変換を行う必要が有る。このよ
うな変換処理を追加しても、高いデータ処理効率を実現
するには、前記中央制御処理ユニットがポリゴンデータ
を前記キャッシュメモリから前記整数レジスタにロード
し、整数レジスタにロードしたポリゴンデータから頂点
法線データを切出して、浮動小数点データに変換可能に
する処理を、前記浮動小数点演算ユニットによるアフィ
ン変換演算に並列化する等の、並列化の手法を採用する
ことが望ましい。
【0036】前記中央制御処理ユニットと前記浮動小数
点演算ユニットとの間の情報伝達に用いられる浮動小数
点通信レジスタを採用するとき、前記中央制御処理ユニ
ットは前記切出した頂点法線データを前記浮動小数点通
信レジスタにロードし、前記浮動小数点演算ユニットは
浮動小数点通信レジスタにロードされているデータを浮
動小数点データに変換して浮動小数点レジスタにロード
する。
【0037】前記浮動小数点演算ユニットは、浮動小数
点レジスタにロードされた頂点座標データと変換行列デ
ータとを用いてポリゴンに対するアフィン変換を行い、
前記浮動小数点レジスタにロードされた浮動小数点数の
頂点法線データと光線ベクトルデータとの内積によって
輝度計算を行う。
【0038】3次元形状を近似するための多数のポリゴ
ンのポリゴンデータを用いてデータプロセッサが描画情
報を演算する方法は、浮動小数点数で表現された頂点座
標データと整数で表現された頂点法線データとを有する
ポリゴンデータをバスを介してメモリから整数レジスタ
にロードする第1処理と、前記ポリゴンデータを前記バ
スを介して前記メモリから前記浮動小数点レジスタにロ
ードする第2処理と、前記整数レジスタにロードしたポ
リゴンデータから頂点法線データを切出す第3処理と、
切出した頂点法線データを浮動小数点データに変換して
別の浮動小数点レジスタにロードする第4処理と、浮動
小数点レジスタにロードされた頂点座標データと変換行
列データとを用いてポリゴンに対するアフィン変換を行
う第5処理と、前記浮動小数点レジスタにロードされた
浮動小数点の頂点法線データと光線ベクトルデータとの
内積によって輝度計算を行う第6処理と、前記アフィン
変換された位置と輝度計算された明るさ情報とを有する
ポリゴンのデータを描画情報としてメモリに格納する第
7処理と、を含む。これにより、3次元形状を近似表現
するためのデータを利用した描画情報の生成を高速化で
きる。
【0039】少なくとも前記第5処理を前記第1及び第
3処理に並行させることにより、描画情報の生成は更に
高速化される。
【0040】
【発明の実施の形態】《ポリゴンデータの構造》図1に
は本発明に係るポリゴンデータのデータ構造の一例が示
される。このデータ構造(データフォーマット)は直接
上書き法によって形成する。この手法では、先ず、ポリ
ゴンの頂点座標データ(x,y,z)を各々4バイト浮
動小数点数で格納し、そして、頂点法線データ(nx,
ny,nz)の各々を1バイトの整数に変換し、この整
数に変換された頂点法線データを前記4バイトの座標デ
ータ(x,y,z)の格納位置の「右端」の1バイトに
上書きする。ここで、右端といったのは、浮動小数点数
の仮数部のうち最も値の貢献度が低い部分のことであ
る。これによって形成されるデータフォーマットにおい
て、頂点座標データ(x,y,z)は3次元の各成分毎
に3バイトの浮動小数点数とされる。さらに、色などの
属性情報(others)が4バイト格納される。した
がって、3次元モデル表現のための容量は、ポリゴンの
面当り16バイトになる。3角形列法に応ずる3次元モ
デルデータは、前記16バイトのデータのリニアな配列
によって構成される。描画情報演算時のモデルデータア
クセスに要するデータ転送容量もポリゴンの面当り16
バイトとなる。
【0041】ここで、ポリゴンデータの構造を別の観点
から説明する。ポリゴンデータを読み込んで処理するデ
ータプロセッサの一例である後述のマイクロコンピュー
タ1との関係に着目する。前記頂点座標(x,y,z)
の各々のデータ(頂点座標データ)のビット数は、ポリ
ゴンデータを読取る前記マイクロコンピュータ1が処理
可能な浮動小数点数のデータフォーマットに対して、仮
数の下位側ビット数が1バイト少なくされ、その少なく
された部分に、対応する前記頂点法線データ(nx,n
y,nz)が組込まれたデータフォーマットを有してい
る。
【0042】《グラフィック処理システム》図9には前
記ポリゴンデータを用いて3次元グラフィックの描画用
情報の演算を行うデータ処理システム(グラフィック処
理システム)の概略が示される。データプロセッサの一
例であるマイクロコンピュータ1は主メモリ56から3
次元形状を近似するポリゴンデータを取り込み、3次元
形状の位置や姿勢に応じてアフィン変換等を施して描画
情報を演算する。その演算結果は主メモリ56に格納さ
れる。描画情報を主メモリ56に格納した後、マイクロ
コンピュータ1は描画ハードウエアとしての描画プロセ
ッサ55に描画コマンドを発行する。描画プロセッサ5
5はコマンドに応答して、フレームバッファメモリ54
に描画情報に応じた図形を描画する。
【0043】マイクロコンピュータ1は、代表的に示さ
れたキャッシュユニット4C、中央制御処理ユニット
(以下CPUとも記す)3、及び浮動小数点演算ユニッ
ト(以下FPUとも記す)2を有する。前記CPU3や
FPU2からのロード/ストア要求はキャッシュユニッ
ト4Cを介して行なわれる。キャッシュユニット4Cは
図示を省略するキャッシュメモリ及びキャッシュコント
ローラを有する。キャッシュメモリは、最近アクセスさ
れたメモリロケーション内容を保持する高速アクセス可
能な記憶媒体である。キャッシュユニット4Cは3次元
形状を近似するためのポリゴンデータを一度に全部格納
できるほど記憶容量は大きくない。したがって、主メモ
リ56とキャッシュユニット4Cとを接続するバス57
を介するデータの転送能力は処理性能上で大事である。
換言すれば、バス57によるデータ転送能力には限りが
あるという前提では、データ転送量それ自体を少なくす
ることがデータ処理性能を向上させる上で重要である。
【0044】前記3次元形状を近似するポリゴンデータ
は、特に制限されないが、CD−ROMディスクドライ
ブ装置58に装着されたCD−ROM59から主メモリ
56に読み込まれる。CD−ROMは、図1のデータ形
式の多数のポリゴンデータを前記マイクロコンピュータ
1等から成るコンピュータによって読取り可能に記録し
たデータ記録媒体の一例である。
【0045】《マイクロコンピュータ》図10には前記
マイクロコンピュータ1の更に詳細な一例が示される。
同図に示されるマイクロコンピュータ1は、特に制限さ
れないが、単結晶シリコンのようなの1個の半導体基板
に集積回路化されて構成される。このマイクロコンピュ
ータ1は浮動小数点演算に特化されたFPU2と共に、
整数演算を行うCPU3を備え、特に制限されないが、
16ビット固定長命令セットを備えた32ビットRIS
C(Reduced Instruction Set Computer:縮小命令セッ
トコンピュータ)アーキテクチャを有する。
【0046】図10において参照符号4で示されるもの
は、前記キャッシュユニット4Cを含むアドレス変換・
キャッシュユニットである。前記CPU3による命令ア
クセスとデータアクセスを並列化できるように、アドレ
ス変換・キャッシュユニット4は、命令用の命令アドレ
ス変換バッファ(命令TLBとも称する)140と、デ
ータ用のユニファイドアドレス変換バッファ(ユニファ
イドTLBとも称する)141を別々に持ち、また、命
令キャッシュメモリ142とデータキャッシュメモリ1
43も夫々個別化されている。キャッシュ・アドレス変
換バッファコントローラ(キャッシュTLBコントロー
ラとも称する)144はアドレス変換・キャッシュユニ
ット4を全体的に制御する。
【0047】図10において参照符号5で示されるもの
はバスステートコントローラ(バスコントローラ)であ
り、32ビットのデータバス150及び29ビットのア
ドレスバス151を介して前記アドレス変換・キャッシ
ュユニット4に接続されている。このバスステートコン
トローラ5にはデータバス154及びアドレスバス15
5を介してDMAC8が接続されている。
【0048】マイクロコンピュータ1において前記CP
U3及びDMAC8がバスマスタモジュールを構成す
る。マイクロコンピュータ1による外部アクセスは、6
4ビットのデータバス152及びアドレスバス153を
介して前記バスステートコントローラ5に接続された外
部バスインタフェース回路6で行う。外部バスインタフ
ェース回路6は外部データバス160及び外部アドレス
バス161に接続される。
【0049】マイクロコンピュータ1は、16ビットの
周辺データバス156及び周辺アドレスバス157に接
続された内蔵周辺回路として、クロックパルスジェネレ
ータ(CPGとも称する)170、割り込み制御回路1
71、シリアルコミュニケーションインタフェースコン
トローラ(SCI1,CSI2)172、リアルタイム
クロック回路173及びタイマ174を有する。それら
周辺回路は前記バスステートコントローラ5を介してC
PU3又はDMAC8によってアクセスされる。
【0050】前記バスステートコントローラ5は、CP
U3やDMAC8によるアクセス対象回路(アクセス対
象とされるアドレスエリア)に応じて、アクセスデータ
サイズ、アクセスタイム、ウェイトステートを決定し、
周辺バス156,157、そして外部バス160,16
1に対するバスアクセスを制御する。更にバスステート
コントローラ5は、キャッシュTLBコントローラ14
4、DMAC8及び外部からのバス使用要求の競合を調
停したりする。
【0051】前記CPU3は、実行ユニットと制御ユニ
ットによって構成される。前記実行ユニットは、特に制
限されないが、算術論理演算器(ALU)等の整数演算
器300、プログラムカウンタ(PC)、スタックポイ
ンタ(SP)、ステータスレジスタ(SR)のような専
用レジスタ及びワークエリアとして利用される汎用レジ
スタ(整数レジスタ)R0〜R15とから成る。前記制
御ユニットは、アプリケーションプログラムデータ若し
くはオペレション・システム・プログラムから供給され
るプログラム命令が順次に入力される命令レジスタと、
前記命令レジスタに格納された命令をデコードし、前記
実行ユニットに対する制御信号を発生する命令デーコー
ダとを含んで構成される。このCPU3は、命令をフェ
ッチするとき32ビットの命令アドレスバス130に命
令アドレスを出力し、命令データバス131に出力され
た命令をフェッチする。また、CPU3は、32ビット
のデータアドレスバス132にデータアドレスを出力
し、32ビットのデータバス133を介してデータのリ
ード(ロード)を行い、32ビットのデータバス134
を介してデータのライト(ストア)を行う。前記命令ア
ドレス及びデータアドレスは論理アドレスである。
【0052】前記FPU2は、特に制限されないが、浮
動小数点演算器(FMAC)200、ワークレジスタと
しての浮動小数点レジスタFR0〜FR15、浮動小数
点バックレジスタBR0〜BRn、CPU3とFPU2
との間の間の情報伝達に用いられる浮動小数点通信レジ
スタFPUL、及びステータスレジスタ等から成る実行
ユニットを有する。更にFPU2は制御ユニットとし
て、CPU3から切り出されたFPU命令を順次に入力
されるコマンドレジスタと、前記コマンドレジスタに格
納された浮動小数点命令をデコードし、前記浮動小数点
実行ユニットに対する制御信号を発生するコマンドデー
コーダとを有する。
【0053】前記FPU2は、特に制限されないが、デ
ータキャッシュメモリ142などをアクセスするための
メモリアドレシング能力を備えていない。CPU3がF
PU2に代わってデータをアクセスするためのアドレシ
ング動作を行う。これは、FPU2のメモリアドレシン
グ回路の必要性を取り除いてチップ面積を節約するため
である。FPU2へのデータのロードは32ビットのデ
ータバス133と32ビットのデータバス135を介し
て行い、FPU2からのデータのストアは64ビットの
データバス136を介して行う。FPU2からCPU3
へのデータ転送は前記64ビットデータバス136の下
位32ビットを用いて行われる。CPU3から前記浮動
小数点通信レジスタFPULへのデータロードはバス1
34を介して行なわれる。
【0054】CPU3はFPU2のためにデータフェッ
チを行なうだけでなく、FPU2のための浮動小数点命
令を含む全ての命令をフェッチする。CPU3がフェッ
チした浮動小数点命令は32ビットのデータバス134
を介してCPU3からFPU2にコマンドとして与えら
れる。
【0055】マイクロコンピュータ1は、特に制限され
ないが、32ビットの仮想アドレスで規定される仮想ア
ドレス空間と29ビットの物理アドレスで規定される物
理アドレス空間を扱う。仮想アドレスを物理アドレスに
変換するためのアドレス変換情報は仮想ページ番号とそ
れに対応される物理ページ番号を含んでいる。アドレス
変換テーブルは例えば前記主メモリ56などに形成され
る。図示を省略するアドレス変換テーブルのアドレス変
換情報のうち、最近利用されたものが前記命令TLB1
40とユニファイドTLB141に格納されることにな
る。その制御は、例えばマイクロコンピュータ1のオペ
レーティングシステムが行う。
【0056】前記データ用のユニファイドTLB141
はデータ及び命令のアドレス変換情報を最大64エント
リ格納する。このユニファイドTLB141は、データ
フェッチのためにCPU3がデータアドレスバス32に
出力する仮想アドレスの仮想ページ番号に応ずる物理ペ
ージ番号をアドレス変換情報から連想検索して、その仮
想アドレスを物理アドレスに変換する。
【0057】前記命令用の命令TLB140は命令専用
のアドレス変換情報を最大4エントリ格納する。特に命
令TLB140が保有するエントリは、ユニファイドT
LB141が保有する命令アドレスのアドレス変換情報
の一部とされる。すなわち、連想検索により命令TLB
140に目的とするアドレス変換情報がないことが分か
ると、そのアドレス変換情報はユニファイドTLB14
1から命令TLB140へ供給される。この命令TLB
140は、命令フェッチのためにCPU3が命令アドレ
スバス130に出力する仮想アドレスの仮想ページ番号
に応ずる物理ページ番号をアドレス変換情報から連想検
索する。検索の結果、目的とするアドレス変換情報があ
る場合(TLBヒット)、そのアドレス変換情報を用い
て、当該仮想アドレスを物理アドレスに変換する。前記
検索の結果、目的とするアドレス変換情報がない場合
(TLBミス)、前記ユニファイドTLB141から目
的とするアドレス変換情報を得るための動作をキャッシ
ュTLBコントローラ144が制御する。
【0058】前記データキャッシュメモリ143は、デ
ータフェッチに際してユニファイドTLB141で変換
された物理アドレスを受け取り、これに基づいてキャッ
シュエントリの連想検索を行う。検索結果がリードヒッ
トであれば、ヒットに係るキャッシュラインからその物
理アドレスに応ずるデータがデータバス133又は13
5に出力される。検索結果がリードミスであれば、ミス
に係るデータを含む1キャッシュライン分のデータがバ
スステートコントローラ5を介して前記主メモリ56等
から読み込まれて、キャッシュフィルが行われる。これ
によってキャッシュミスに係るデータが前記バス133
又は135に読出される。検索結果がライトヒットした
場合、キャッシュ動作モードがコピーバックモードなら
ばヒットしたエントリにデータを書き込み、当該エント
リのダーティービットをセットする。セット状態のダー
ティービットにより前記主メモリ56等のデータとの不
整合状態が分かり、前記キャッシュフィル動作で当該ダ
ーティーなキャッシュエントリがキャッシュメモリから
追い出されるとき、前記主メモリ56等への書き戻しが
行われる。ライトスルーモードではヒットしたエントリ
にデータを書き込むと共に前記主メモリ56等へのデー
タの書込みも併せて行われる。検索結果がライトミスで
ある場合、コピーバックモードならキャッシュフィルを
行うと共にダーティービットをセットしてタグアドレス
を更新し、フィルを行ったキャッシュラインにデータを
書き込む。ライトスルーモードの場合には前記主メモリ
56等に対してのみ書込みを行う。
【0059】前記命令キャッシュメモリ142は、命令
フェッチに際して命令TLB140で変換された物理ア
ドレスを受け取り、これに基づいてキャッシュエントリ
の連想検索を行う。検索結果がリードヒットであれば、
ヒットに係るキャッシュラインからその物理アドレスに
応ずる命令が命令データバス131に出力される。検索
結果がリードミスであれば、ミスに係る命令を含む1キ
ャッシュライン分のデータがバスステートコントローラ
5を介して前記主メモリ56等から読み込まれて、キャ
ッシュフィルが行われる。これによってミスに係る命令
が命令データバス31を介してCPU3に与えられる。
【0060】前記マイクロコンピュータ1の命令セット
には各種演算命令やデータ転送命令などが含まれてい
る。マイクロコンピュータ1が実行すべきプログラムは
主メモリ56に格納されているが、命令キャッシュメモ
リ142へのプリフェッチ動作を介することにより、高
い確率でCPU3は命令キャッシュメモリ142から命
令をフェッチすることができる。
【0061】マイクロコンピュータ1の命令として、例
えば、以下の命令を挙げることができる。
【0062】(1)ftrv: 行列とベクトルの積命
令(浮動小数点で演算)、 (2)add,sub:加算命令、減算命令(整数で演
算)、 (3)fadd,fsub,fmul,fdiv: 加
減乗除命令(浮動小数点で演算)、 (4)fmac:乗算と加算(浮動小数点で演算)、 (5)fconv:整数と浮動小数点数間の変換命令
(レジスタFPULの内容を浮動小数点数に変換)、 (6)mov.l:整数のロード/ストア/転送命令、 (7)fmov:浮動小数点数のロード/ストア命令、 (8)exts.b:整数の切り出し命令であり、1バ
イト整数を切り出して4バイト整数化、 (9)lds:汎用レジスタの内容をレジスタFPUL
へ転送。
【0063】前記命令ftrvについては、機能をさら
に詳しく説明する。命令ftrvの演算機能は図11の
式で表現できる。ここで、FRnは前記浮動小数点レジ
スタFR0〜FR15である。図11において、FRn
のnは0,4,8,12が可能である。FRnもBRn
も共に浮動小数点数を格納するレジスタであるが、浮動
小数点レジスタFRnは前方にあり普通の浮動小数点演
算で指定され、バックレジスタBRは後方にあり、ft
rv命令では暗黙に指定され、全体で4×4の行列を表
わすものとみなされる。
【0064】3次元空間の位置をアフィン変換するので
あれば、この命令は運用上の微調整が必要となる。即
ち、入力の(FRn,FRn+1,FRn+2,FRn
+3)は(x,y,z,1)に対応しなければならな
い。また出力の(FRn,FRn+1,FRn+2,F
Rn+3)は(X,Y,Z,*)に対応しなければなら
ない。ここで“*”は,無視(don't care)を
意味し、従ってBR3,BR7,BR11,BR15の
内容は、演算結果に関係なくなる。
【0065】BR3,BR7,BR11,BR15を使
用しないのは勿体ないということになる。そこで、図7
を参照するに、舞台上の太陽光のベクトル43の方向を
モデル座標系におけるベクトルの方向に逆変換しておい
てレジスタBR3,BR7,BR11に格納しておき、
これとモデル座標系の法線ベクトル47との内積を演算
すれば、法線ベクトルに対しても一々アフィン変換を行
わなくても済む。ベクトル43のモデル座標系への逆変
換にアフィン変換が必要であるが、舞台上の1種類の太
陽光ベクトル43に対して唯1回演算を行えばよい。舞
台の座標上で明るさの演算を行う場合には、個々の法線
ベクトルに対してアフィン変換を行わなければならず、
その演算量は前者に比べて格段に大きくなる。上記手法
を更に詳述する。図7を参照するに、舞台上の太陽光の
ベクトル43の方向をモデル座標系におけるベクトルの
方向に逆変換しておいてレジスタBR3,BR7,BR
11に格納しておき、更にレジスタBR15には環境光
(物体に光が直接当らなくてもそれなりに見えるという
状況に対応する明るさの加算値)に係わる値をセットし
ておき、そして(FR8,FR9,FR10,FR1
1)に(nx,ny,nz,1)を格納した状態でFT
RV命令(FTRV FR8)を起動する。これによ
り、浮動小数点レジスタFR7に明るさに係わる値br
ightを得ることができる。座標変換では図12に示
されるように変換行列の上から3行を有意として用い
る。輝度計算では、図13に示されるように変換行列の
下から1行を有意として用いる。
【0066】《描画情報演算処理》次に、ポリゴンデー
タを用いて描画情報を演算する手順について説明する。
演算には前記マイクロコンピュータ1を実装した図9の
データ処理システムを用いる。
【0067】先ず、ループ処理の初期化として、以下の
処理を予め行っておく。(1)アフィン変換を定義する
行列を後方レジスタにロードする。ロード先はBR0〜
BR2,BR4〜BR6,BR8〜BR10,BR12
〜BR14である。
【0068】(2)舞台上の太陽光をモデル座表系に逆
変換し(図7のベクトル46)、後方レジスタにロード
する。前記環境光もロードする。ロード先はBR3,B
R7,BR11,BR15である。前記逆変換は、ベク
トル43に対して頂点座標のアフィン変換とは逆方向の
アフィン変換によって求めることができる。
【0069】(3)透し変換の調整値α,βをレジスタ
にFR14,FR15にロードする。
【0070】(4)各種ベースレジスタの初期設定を行
う。具体的には図1のポリゴンデータの配列の先頭アド
レスをレジスタR13,R14にロードする。さらに出
力配列の先頭アドレス+16をレジスタR12にロード
する。
【0071】さて、ループ内では以下の(A)〜(F)
の処理を行う。なおループ制御用の命令系列は図示を省
いてある。
【0072】(A)データ(x,nx),(y,n
y),(z,nz)を命令fmovによりFPU2の浮
動小数点レジスタにロードする。ロード先は、例えばレ
ジスタFR0〜FR3である。また、nx,ny,nz
部分を無視してx,y,zとする。さらに値“1”をレ
ジスタFR3にロードする。具体的な命令系列は、 fmov @R13+,FR0 fmov @R13+,FR1 fmov @R13+,FR2 fmov #1.0,FR3 add #4,R13 とすることができる。
【0073】(B)データ(x,nx),(y,n
y),(z,nz)を命令mov.lによりCPU3の
整数レジスタR0〜R2に32ビット単位でロードす
る。ロードされた整数レジスタR0〜R2から、命令e
xts.bでバイトデータnx,ny,nzを切り出し
て4バイトに拡張する。拡張されたデータは、命令ld
sによって前記通信レジスタFPULにロードされ、命
令fconvによって浮動小数点に変換されて例えば浮
動小数点レジスタFR8〜FR10にロードされる。更
に、値“1”をレジスタFR11にロードする。前記属
性情報(others)はレジスタR3にロードしてお
く。具体的な命令系列は、 mov.l @R14+,R0 mov.l @R14+,R1 mov.l @R14+,R2 mov.l @R14+,R3 exts.b R0,R0 exts.b R1,R1 exts.b R2,R2 lds R0,FPUL fconv FPUL,FR8 lds R1,FPUL fconv FPUL,FR9 lds R2,FPUL fconv FPUL,FR10 とすることができる。
【0074】(C)変換行列(matrix)とデータ
(x,y,z,1)とを掛けて舞台上の座標(X,Y,
Z,*)を得る。即ち、図12のような座標変換を行
う。具体的な命令系列は、 ftrv FR0 である。
【0075】(D)変換行列(matrix)とデータ
(nx,ny,nz,1)とを掛けて、光線と頂点法線
の内積(*,*,*,bright)を得る。即ち、図
13の輝度計算を行う。具体的な命令系列は、 fmov #1.0,FR11 ftrv FR8 である。
【0076】(E)透視変換でスクリーン上の座標
(u,v)を得る。u=X/Z+α、v=Y/Z+βの演
算による。具体的な命令系列は、 fmov #1.0,FR3 fdiv FR2,FR3 fmov FR15,FR13 fmac FR1,FR3,FR13 fmov FR14,FR12 fmac FR0,FR3,FR12 である。
【0077】(F)得られた情報をメモリにストアす
る。具体的な命令系列は、 mov.l R3,@−R12 fmov FR2,@−R12 fmov FR13,@−R12 fmov FR12,@−R12 add #32,R12 である。
【0078】以上を記載順に配置して命令を実行させれ
ば、描画情報の1頂点分の計算が完了する。そしてこれ
を繰り返し計算することで、三角形列の描画情報を計算
することができる。
【0079】以上演算手法に対しては高速化の余地が有
る。即ち、図14の手法を採用する。図14は、上に挙
げた処理グループ間のデータフロー上の依存関係を示し
ている。ここでの依存関係とは、一方がデータを生成
し、他方がその生成されたデータを演算に用いるという
関係のことで、データが生成されて初めて利用できると
いう意味の処理の順番を規定している。図14の手順で
は処理グループ(B)が性能上のボトルネックになると
考えられる。何故ならば、処理グループ(B)内では実
行すべき命令数が多く、このグループ内の命令系列は並
列処理が難しいからである。例えば、以下の命令系列 lds R0,FPUL fconv FPUL,FR8 は、ldsで生成してレジスタFPULにロードした値
をその後の命令fconvが使用しなければならない。
このとき、途中に別の命令ldsや別の命令fconv
が挿入される訳にはいかない。これはリソースであるレ
ジスタFPULが競合してしまうからである。
【0080】以上の考察より、ソフトウェアパイプライ
ニングという手法を導入する。この手法はデータフロー
の依存関係から発生する待ち時間を解消するための手法
である。本来のループでは、個別の回に、ある頂点に係
わるロードと同じ頂点に係わる計算を行う。これに対し
て、個別の回に、次回の頂点に係わるロードなどと今回
の頂点に係わる計算を行おうとするものである。図15
にはその内容が示されている。
【0081】先ず、処理(A0)と処理(A4)などの
違いを説明する。処理(A0)は(x,y,z,1)を
浮動小数点レジスタFR0〜FR3に設定する。一方処
理(A4)は(x,y,z,1)を浮動小数点レジスタ
FR4〜FR7に設定する。
【0082】処理(E0)はFR0〜FR2を入力とし
て透視変換を行い、処理(E4)は浮動小数点レジスタ
FR4〜FR6を入力として透視変換を行う。処理(D
0)と処理(D4)は全く同じに明るさを計算する。2
つを識別するために(D0),(D4)と区別した。処
理(B0)と処理(B4)は全く同じく(nx,ny,
nz,1)を浮動小数点レジスタFR8〜FRbに設定
する。2つを識別するために(B0),(B4)と区別
した。処理(F0)と(F4)は計算された値のスト
ア。2つを識別するために(F0),(F4)と区別し
た。
【0083】図15の処理の手順を説明する。まず10
1で処理(A0)により(x,y,z,1)を浮動小数
点レジスタFR0〜FR3に設定する。一方、処理(B
0)で(nx,ny,nz,1 )を一旦整数レジスタ
R0〜R2を経由して浮動小数点レジスタFR8〜FR
bに設定する。
【0084】次にループ処理102に進入する。処理
(C0)、処理(E0)でアフィン変換と透視変換を行
う。一方、処理(D0)で明るさの計算を行う。そして
処理(F0)で、計算された情報のストアを行う。一方
において処理(A4)で次の頂点の(x,y,z,1)
を浮動小数点レジスタFR4〜FR7に設定する。この
処理(A4)は処理(A0),(E0),(D0)とは
使用するレジスタが異なるので、(A0),(E0),
(D0)とは並列処理が可能である。また、処理(B
4)において(nx,ny,nz,1 )を一旦整数レ
ジスタR0〜R2を経由して浮動小数点レジスタFR8
〜FRbに設定する。この処理(B4)は処理(A
0),(E0)とは使用するレジスタが異なるので、
(A0),(E0)と並列処理可能である。
【0085】次に処理(C4)、処理(E4)でアフィ
ン変換と透視変換を行う。一方、処理(D4)で明るさ
の計算を行う。そして処理(F4)で、計算された情報
のストアを行う。一方において処理(A0)で次の頂点
の(x,y,z,1)を浮動小数点レジスタFR4〜F
R7に設定する。この処理(A0)は処理(A4),
(E4),(D4)とは使用するレジスタが異なるの
で、(A4),(E4),(D4)とは並列処理が可能
である点に注目のこと。また、処理(B0)において
(nx,ny,nz,1 )を一旦整数レジスタR0〜
R2を経由して浮動小数点レジスタFR8〜FRbに設
定する。この処理(B0)は処理(A4),(E4)と
は使用するレジスタが異なるので、(A4),(E4)
と並列処理可能である。以上をループ処理で繰り返し行
う。
【0086】最後の頂点については、処理103かそれ
に同等な処理で行う。103では、最後の頂点情報が浮
動小数点レジスタFR0〜FR3に設定されていた場合
に対応する。103内の、処理(C0)、処理(E0)
でアフィン変換と透視変換を行う。一方、処理(D0)
で明るさの計算を行う。そして処理(F0)で、計算さ
れた情報のストアを行う。
【0087】以上のような手順で、描画情報を計算でき
る。既に触れていることだが、ループ処理102内には
かなりの程度の並列性が期待できる。
【0088】さて、ループ処理102については、具体
的にどういう命令系列で実現できるかを示す。図16は
図15のループ処理102の丁度上半分に対応したアセ
ンブリコードであるが、並列性を導入するために命令の
実行順を図15のものとは大幅に変更(命令スケジュー
リングという)している。しかし機能としては同じであ
り、詳細な説明は省略する。
【0089】次に、パイプライン処理の状況を見て見
る。図17は図16のアセンブリコードのパイプライン
処理の状況を示している。想定するプロセッサの動きを
シミュレートするツールによる表示である。cntの欄
は命令数、cyclの欄はサイクル数を表わし、0から
始めているので35命令を23サイクルで実行するであ
ろうことを示している。したがってかなり高速に動作す
ることになる。図17の右側の記載は対応する命令が実
行開始される時刻をサイクル数で標記してある。そし
て、図17において、Eは整数系パイプラインの実行ス
テージ、Fは浮動小数点系パイプラインの実行ステー
ジ、Aはキャッシュアクセス、Sはレジスタへの書き込
みを意味する。命令フェッチステージとデコードステー
ジは図示を省略してあるが、E,Fステージの前に挿入
されているものと理解されたい。記号−は実行ステージ
が複数サイクルに跨っている状態を意味し、記号=はキ
ャッシュアクセスせずにデータを次のSステージにスル
ーする状態を示している。
【0090】なお、この場合キャッシュミスは発生して
ないものとしている。キャッシュミスの発生を抑えるに
はプリフェッチ命令をループ処理102内の適当な位置
に挿入すればいいので、キャッシュミスが発生しないと
いう想定は(少なくとも本発明の場合)妥当なものであ
る。
【0091】以上説明したデータフォーマットのポリゴ
ンデータを採用することによって得られる作用効果を具
体的に説明する。説明に当り、頂点当りの演算サイクル
と数とデータ供給サイクル数を考えてみる。32バイト
データのプリフェッチが20サイクル、出力のストアが
10サイクルとして、所要サイクル数は以下のようにな
る。
【0092】(1)図5の直接表現法では、演算サイク
ルは図17に示すのと同様で23(サイクル/頂点)で
ある。データ供給サイクルは30(=20+10)(サ
イクル/頂点)である。つまり、データ供給(プリフェ
ッチとストア)が性能を支配し、所要サイクルは30サ
イクル/頂点になる。なお、演算サイクルは、整数から
浮動小数点数への変換が不要で23サイクル以下にでき
るかもしれないが、データ供給が性能を支配しているの
でこの値は意味をもたないと考えられる。
【0093】(2)図8の間接表現法の場合、演算サイ
クルは余分な間接参照が必要で、25サイクル/頂点程
度である。データ供給サイクルは30サイクル/頂点以
上((1)より多い)である。つまり、データ供給(プ
リフェッチとストア)が性能を支配し、所要サイクルは
30サイクル/頂点以上になる。尚、演算サイクルは、
整数から浮動小数点数への変換が不要で25サイクル以
下にできるかもしれないが、データ供給が性能を支配し
ているのでこの値も意味をもたないと考えられる。
【0094】(3)本発明に係る図1のデータフォーマ
ットでは、 演算サイクルは23サイクル/頂点であ
る。データ供給サイクルは20サイクル/頂点。プリフ
ェッチが2頂点に1回でよく、20=20/2+10と
なる。所要サイクルは23サイクル/頂点である。演算
のサイクルとデータ供給のサイクルのクロック数がバラ
ンスされる。さらに、3次元形状表現の所要サイズが最
小という効果もある。つまり、図1のデータフォーマッ
トによれば、頂点あたりの所要サイクルが最小となり、
3次元物体を表現するための所要サイズが最小になる。
3次元物体を表現するためのサイズは、直接表現法では
28バイト/頂点、間接表現法では20バイト/頂点、
本発明に係るデータフォーマットでは16バイト/頂点
である。
【0095】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0096】例えば、データフォーマットは図1に限定
されない。例えば、頂点座標データの各成分を4バイ
ト、頂点法線データの各成分を1バイトとし、図18の
ようなデータフォーマットを採用することも可能であ
る。また、頂点座標データ及び頂点法線データのバイト
数は3バイト、1バイトに限定されず、ポリゴンデータ
の用途に応じて適宜変更可能である。VGAやSVGA
などの表示画面に対する3次元グラフィックでは3バイ
ト、1バイトが最適である。また、マイクロコンピュー
タの構成、そして整数演算命令や浮動小数点命令の種類
や内容については、上記説明に限定されず、変更可能で
ある。また、データプロセッサは、マイクロコンピュー
タはもとより、マイクロプロセッサ、シングルチップマ
クロコンピュータなどと称される各種データ処理用LS
Iに適用することができる。マイクロプロセッサと共に
DRAMやフラッシュメモリなどを搭載したシステムL
SIにも適用できることは言うまでもない。ゲーム機だ
けでなく、3次元表示を行う種々のデータ処理システム
に広く適用することができる。
【0097】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0098】すなわち、ポリゴンデータの頂点座標デー
タを浮動小数点数とし、頂点法線データを整数とする。
例えば、前記頂点座標データのビット数は、ポリゴンデ
ータを読取るコンピュータが処理可能な浮動小数点数の
データフォーマットに対して仮数の下位側ビット数が少
なくされ、その少なくされた部分に前記頂点法線データ
を組込んだデータフォーマットを採用する。これによ
り、ポリゴンデータのデータ量削減が可能になる。デー
タ量削減によって、メモリから整数レジスタや浮動小数
点レジスタへのデータロード処理を軽減でき、アフィン
変換などを介する描画用データ生成処理の高速化に寄与
できる。
【0099】中央制御処理ユニットがポリゴンデータを
前記キャッシュメモリから前記整数レジスタにロード
し、整数レジスタにロードしたポリゴンデータから頂点
法線データを切出して、浮動小数点データに変換可能に
する処理を、前記浮動小数点演算ユニットによるアフィ
ン変換演算に並列化する等の、並列化の手法を採用する
ことにより、整数の頂点法線データを浮動小数点演算で
処理する場合に、整数から浮動小数点数への変換処理を
追加しても、高いデータ処理効率を実現でき、描画用デ
ータの生成を更に高速化できる。
【図面の簡単な説明】
【図1】本発明に係るポリゴンデータ列の一例を示すデ
ータフォーマット図である。
【図2】3次元形状をポリゴン列としての3角形列で近
似表現する手法を示す概念図である。
【図3】グーロ法の説明図である。
【図4】3角形列法の説明図である。
【図5】直説法によるポリゴンデータ列の一例を示すデ
ータフォーマット図である。
【図6】3次元モデルを用いた描画情報の生成を全体的
に示した概略図である。
【図7】一つのポリゴンを代表として描画情報を生成す
る手順を詳細に示した説明図である。
【図8】間接法によるポリゴンデータ列の一例を示すデ
ータフォーマット図である。
【図9】グラフィック処理システムの一例を示すブロッ
ク図である。
【図10】マイクロコンピュータの一例を示すブロック
図である。
【図11】命令ftrvの機能を示す説明図である。
【図12】座標変換処理において有意とされるバックレ
ジスタの説明図である。
【図13】輝度計算処理で有意とされるバックレジスタ
の説明図である。
【図14】描画情報の演算フローの基本形式の一例を示
すフローチャートである。
【図15】CPUとFPUの処理の並列化に着目した描
画情報演算フローの一例を示すフローチャートである。
【図16】描画情報を演算するための処理内容の一例を
アセンブリコードで示す説明図である。
【図17】図16のプログラムコードのパイプライン実
行状況を例示する説明図である。
【図18】本発明に係るポリゴンデータ列の別の例を示
すデータフォーマット図である。
【符号の説明】
1 マイクロコンピュータ 2 FPU 3 CPU 4 アドレス変換・キャッシュユニット 4C キャッシュユニット 55 描画プロセッサ 56 主メモリ 58 ディスクドライブ装置 59 データ記録媒体 R0〜R15 整数レジスタ FR0〜FR15、BR0〜BR15 浮動小数点レジ
スタ 133〜136 データバス 143 データキャッシュメモリ 22 ポリゴン 21 3次元形状 25〜27 頂点法線 28 光源 33〜35 頂点 x、y、z 頂点座標データ nx,ny,nz 頂点法線データ others 属性情報
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B022 BA01 BA02 CA01 CA03 FA01 5B050 BA07 BA09 BA18 EA28 5B080 AA13 BA04 BA08 5E501 AA17 AC16 AC36 BA01 FA15 FA27

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータによるグラフィック処理の
    対象とされ3次元形状を近似するための多数のポリゴン
    のポリゴンデータをコンピュータが読取り可能に記録し
    たデータ記録媒体であって、 前記ポリゴンデータは浮動小数点数で表現された頂点座
    標データと、整数で表現された頂点法線データとを有
    し、 コンピュータによって読み取られるポリゴンデータはそ
    のポリゴンとの間で頂点を共有する別のポリゴンのポリ
    ゴンデータと協働でポリゴンを定義するものであること
    を特徴とするデータ記録媒体。
  2. 【請求項2】 n(nは整数)バイトのデータを並列処
    理可能なコンピュータによるグラフィック処理の対象と
    され3次元形状を近似するための多数のポリゴンのポリ
    ゴンデータをコンピュータが読取り可能に記録したデー
    タ記録媒体であって、 前記ポリゴンデータは夫々3次元成分から成る1つの頂
    点座標データと1つの頂点法線データとを有し、 前記頂点座標データは3次元の各成分毎に浮動小数点数
    で表現されたm(mは整数)バイトのデータを有し、 前記法線データは3次元の各成分毎に整数で表現された
    n−mバイトのデータを有し、 コンピュータによって読み取られるポリゴンデータはそ
    のポリゴンとの間で頂点を共有する別のポリゴンのポリ
    ゴンデータと協働でポリゴンを定義するものであること
    を特徴とするデータ記録媒体。
  3. 【請求項3】 前記頂点座標データのビット数は、ポリ
    ゴンデータを読取るコンピュータが処理可能な浮動小数
    点数のデータフォーマットに対して仮数の下位側ビット
    数が少なくされ、その少なくされた部分に前記頂点法線
    データを組込んだデータフォーマットを有するものであ
    ることを特徴とする請求項1又は2記載のデータ記録媒
    体。
  4. 【請求項4】 前記mは3バイトであり、前記nは4バ
    イトであることを特徴とする請求項2記載のデータ記録
    媒体。
  5. 【請求項5】 前記ポリゴンデータは更に、少なくとも
    ポリゴンの色を指定する表示属性情報を有するものであ
    ることを特徴とする請求項2乃至4の何れか1項記載の
    データ記録媒体。
  6. 【請求項6】 複数個の整数レジスタを備え整数演算及
    び命令の実行を制御する中央制御処理ユニットと、 複数個の浮動小数点レジスタを備え浮動小数点演算を行
    う浮動小数点演算ユニットと、 キャッシュメモリと、 前記中央制御処理ユニット及び浮動小数点演算ユニット
    を前記キャッシュメモリに接続する内部バスと、を1個
    の半導体チップに含み、 浮動小数点数で表現された頂点座標データと整数で表現
    された頂点法線データとを頂点の各3次元成分毎に複数
    バイトづつ有するポリゴンデータを用いたグラフィック
    処理に利用可能なデータプロセッサであって、 前記中央制御処理ユニットは、同一アドレスのポリゴン
    データを前記バスを介して前記キャッシュメモリから前
    記整数レジスタと前記浮動小数点レジスタにロードし、
    整数レジスタにロードしたポリゴンデータから頂点法線
    データを切出し、切出した頂点法線データを浮動小数点
    データに変換して別の浮動小数点レジスタにロード可能
    にするものであることを特徴とするデータプロセッサ。
  7. 【請求項7】 前記頂点座標データのビット数は、デー
    タプロセッサが処理可能な浮動小数点数のデータフォー
    マットに対して仮数の下位側ビット数が少なくされ、そ
    の少なくされた部分に前記頂点法線データを組込んだデ
    ータフォーマットを有するものであることを特徴とする
    請求項1又は2記載のデータプロセッサ。
  8. 【請求項8】 前記整数レジスタ、浮動小数点レジス
    タ、内部バスは夫々nバイトであり、前記1つのポリゴ
    ンデータは、3次元の各成分毎に、mバイトの頂点座標
    データとn−mバイトの頂点法線データとを有し、前記
    中央制御処理ユニットはnバイト単位でデータをフェッ
    チすることができるものであることを特徴とする請求項
    6又は7記載のデータプロセッサ。
  9. 【請求項9】 前記中央制御処理ユニットと前記浮動小
    数点演算ユニットとの間の情報伝達に用いられる浮動小
    数点通信レジスタを有し、 前記中央制御処理ユニットは前記切出した頂点法線デー
    タを前記浮動小数点通信レジスタにロードし、前記浮動
    小数点演算ユニットは浮動小数点通信レジスタにロード
    されているデータを浮動小数点データに変換して浮動小
    数点レジスタにロードするものであることを特徴とする
    請求項7又は8記載のデータプロセッサ。
  10. 【請求項10】 前記浮動小数点演算ユニットは、浮動
    小数点レジスタにロードされた頂点座標データと変換行
    列データとを用いてポリゴンに対するアフィン変換を行
    い、前記浮動小数点レジスタにロードされた浮動小数点
    数の頂点法線データと光線ベクトルデータとの内積によ
    って輝度計算を行うものであることを特徴とする請求項
    8又は9記載のデータプロセッサ。
  11. 【請求項11】 前記中央制御処理ユニットと前記浮動
    小数点演算ユニットとは並列動作されるものであること
    を特徴とする請求項9又は10記載のデータプロセッ
    サ。
  12. 【請求項12】 3次元形状を近似するための多数のポ
    リゴンのポリゴンデータを用いてデータプロセッサが描
    画情報を演算する方法であて、 浮動小数点数で表現された頂点座標データと整数で表現
    された頂点法線データとを有するポリゴンデータをバス
    を介してメモリから整数レジスタにロードする第1処理
    と、 前記ポリゴンデータを前記バスを介して前記メモリから
    前記浮動小数点レジスタにロードする第2処理と、 前記整数レジスタにロードしたポリゴンデータから頂点
    法線データを切出す第3処理と、 切出した頂点法線データを浮動小数点データに変換して
    別の浮動小数点レジスタにロードする第4処理と、 浮動小数点レジスタにロードされた頂点座標データと変
    換行列データとを用いてポリゴンに対するアフィン変換
    を行う第5処理と、 前記浮動小数点レジスタにロードされた浮動小数点の頂
    点法線データと光線ベクトルデータとの内積によって輝
    度計算を行う第6処理と、 前記アフィン変換された位置と前記輝度計算された明る
    さ情報とを有するポリゴンのデータを描画情報としてメ
    モリに格納する第7処理と、を含むことを特徴とする描
    画情報演算方法。
  13. 【請求項13】 前記頂点座標データのビット数は、前
    記データプロセッサが処理可能な浮動小数点数のデータ
    フォーマットに対して仮数の下位側ビット数が少なくさ
    れ、その少なくされた部分に前記頂点法線データを組込
    んだデータフォーマットを有するものであることを特徴
    とする請求項12記載の描画情報演算方法。
  14. 【請求項14】 少なくとも前記第5処理を前記第1及
    び第3処理に並行させることを特徴とする請求項11又
    は12記載の描画情報演算方法。
JP35260198A 1998-12-11 1998-12-11 データ記録媒体、データプロセッサ及び描画情報演算方法 Withdrawn JP2000182072A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35260198A JP2000182072A (ja) 1998-12-11 1998-12-11 データ記録媒体、データプロセッサ及び描画情報演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35260198A JP2000182072A (ja) 1998-12-11 1998-12-11 データ記録媒体、データプロセッサ及び描画情報演算方法

Publications (1)

Publication Number Publication Date
JP2000182072A true JP2000182072A (ja) 2000-06-30

Family

ID=18425165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35260198A Withdrawn JP2000182072A (ja) 1998-12-11 1998-12-11 データ記録媒体、データプロセッサ及び描画情報演算方法

Country Status (1)

Country Link
JP (1) JP2000182072A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245212A (ja) * 2008-03-31 2009-10-22 Hitachi Ltd 組み込み制御装置
JP2009545825A (ja) * 2006-08-03 2009-12-24 クゥアルコム・インコーポレイテッド 拡張型頂点キャッシュを備えたグラフィック処理装置
CN112950753A (zh) * 2019-12-11 2021-06-11 腾讯科技(深圳)有限公司 虚拟植物显示方法、装置、设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009545825A (ja) * 2006-08-03 2009-12-24 クゥアルコム・インコーポレイテッド 拡張型頂点キャッシュを備えたグラフィック処理装置
JP4938850B2 (ja) * 2006-08-03 2012-05-23 クゥアルコム・インコーポレイテッド 拡張型頂点キャッシュを備えたグラフィック処理装置
JP2009245212A (ja) * 2008-03-31 2009-10-22 Hitachi Ltd 組み込み制御装置
JP4629750B2 (ja) * 2008-03-31 2011-02-09 日立オートモティブシステムズ株式会社 組み込み制御装置
US8484266B2 (en) 2008-03-31 2013-07-09 Hitachi, Ltd. Embedded control system with floating-point conversion
CN112950753A (zh) * 2019-12-11 2021-06-11 腾讯科技(深圳)有限公司 虚拟植物显示方法、装置、设备及存储介质
CN112950753B (zh) * 2019-12-11 2023-09-26 腾讯科技(深圳)有限公司 虚拟植物显示方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10796400B2 (en) Graphics processing architecture employing a unified shader
JP7416393B2 (ja) テンソル並べ替えエンジンのための装置および方法
US6788303B2 (en) Vector instruction set
US6807620B1 (en) Game system with graphics processor
US5973705A (en) Geometry pipeline implemented on a SIMD machine
TWI490782B (zh) 來源運算元收集器快取的方法和裝置
TWI437507B (zh) 具有多線程執行單元之繪圖處理裝置及其記憶體存取方法
US20100122067A1 (en) Across-thread out-of-order instruction dispatch in a multithreaded microprocessor
US20040008201A1 (en) Method and system for providing a flexible and efficient processor for use in graphics processing
WO2009101119A1 (en) A processor
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
US9734545B2 (en) Software methods in a GPU
US11900502B2 (en) Compiler assisted register file write reduction
US20180121202A1 (en) Simd channel utilization under divergent control flow
US9633409B2 (en) GPU predication
JP2000182072A (ja) データ記録媒体、データプロセッサ及び描画情報演算方法
US6016149A (en) Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
JP3128799B2 (ja) データ処理装置、データ処理システム及びアウトラインフォントデータ発生方法
US6885375B2 (en) Stalling pipelines in large designs
CA2298337C (en) Game system with graphics processor
Kohn et al. The i860 TM 64-bit supercomputing microprocessor
Anido et al. MIGS: A Multiprocessor Image Generation System Using RISC-like Microprocessors
JPH06242945A (ja) データ処理装置
JPH03252783A (ja) データ処理装置
Miranker Ein Überblick über die Architektur des Supercomputers Titan-III

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060307