(57)【特許請求の範囲】
【請求項１】
並列に接続され、それぞれ、係数レジスタと、乗算器と、加減算器とを有する第１、第２および第３積和演算回路と、前記第３積和演算回路の加減算器の出力が入力される割算器とを有するマトリクス演算器を備え、当該マトリクス演算器は内部バスに直接接続されている中央演算処理装置。
【請求項２】
前記割算器は、割算の際に使用されるスカラー値をストアするレジスタを有し、前記第３積和演算回路の加減算器の出力と当該ストアされたスカラー値とに基づいて割算を実行する、請求項１記載の中央演算処理装置。
【請求項３】
前記マトリクス演算器は入出力レジスタをさらに備え、当該入出力レジスタ、前記係数レジスタおよび前記割算器のレジスタは前記内部バスに直接接続されている、請求項２記載の中央演算処理装置。
【請求項４】
前記マトリクス演算器は、前記中央演算処理装置からの命令を受信して解読する制御部をさらに備え、当該制御部は、前記中央演算処理装置に接続されたインストラクションキャッシュからコプロセッサ命令を直接受け取る、請求項１、２または３記載の中央演算処理装置。
【請求項５】
前記マトリクス演算回路にポリゴンの座標変換のための幾何演算を専門に実行させるとともに、その他の演算を並行に計算するように構成された請求項１乃至４いずれか１項記載の中央演算処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、例えば、グラフィックコンピュータ、特殊効果装置、ゲーム機などのコンピュータを利用した画像生成装置のように高速に画像を生成し、操作する必要がある装置に使用して好適な中央演算処理装置（以下、ＣＰＵという）に関する。
【０００２】
【従来の技術】
例えばグラフィックコンピュータにより画像を生成（描画）する場合には、図５に示すような処理手順で画像描画処理をする。
【０００３】
すなわち、コンピュータグラフィックスでは、描画しようとする物体は小さな基本図形（ポリゴン（多角形））に分割され、そのポリゴンの形、位置、向き、色、模様などが画像を決めるポリゴンデータとして与えられる。ポリゴンの形、位置、向きは、その頂点の座標で決まる。
【０００４】
画像描画処理としては、先ず、ステップＳ１において、例えばメモリや記録媒体に蓄えられている描画データを読み込み、ステップＳ２において、その描画データからポリゴンデータのみを抽出する。
【０００５】
次に、ステップＳ３において所定の入力手段から入力された視点位置の情報を元に、当該視点に正対するスクリーンを仮想して、各ポリゴンの頂点座標を、そのスクリーン上の座標に変換する。この頂点座標の座標変換は、視点を基準にした物体の向きに変換のための３次元座標変換ＯＰ１と、上記のスクリーンに対して視点からの物体までの距離に応じた透視変換（２次元座標変換）ＯＰ２とを行う。３次元座標変換ＯＰ１は、座標変換マトリクスを用いて行い、透視変換ＯＰ２は、頂点の奥行き情報（Ｚ情報）を用いた割算演算を行うものである。
【０００６】
そして、得られた変換後の頂点データを、ステップＳ４でメモリから取り出し、ステップＳ５でその座標に従ってビデオＲＡＭ上にポリゴンの描画を行う。
【０００７】
図５の処理を高速に行う装置としては、従来、図６や図７に示すような構成の画像処理システムを使用している。
【０００８】
図６のシステムにおいては、メインバス１に対して、ＣＰＵ２と、メインメモリ３とが接続されている。そして、ＣＰＵ２に対してローカルバスを介してジェオメトリプロセッサ４が接続され、このジェオメトリプロセッサ４に対してローカルバスを介してラスタープロセッサ５が接続される。そして、ラスタープロセッサ５に対してビデオＲＡＭ６が接続される。
【０００９】
また、図７のシステムにおいては、メインバス１に対して、ＣＰＵ２、メインメモリ３、ジェオメトリプロセッサ７、ラスタープロセッサ８が接続され、ラスタープロセッサ８に対してビデオＲＡＭ９が接続される。
【００１０】
図６及び図７のシステムにおいて、ＣＰＵ２はシステム全体のコントロールを行う。ジェオメトリプロセッサ４、７は、前述のステップＳ３の座標変換のための幾何演算を行う。ラスタープロセッサ５、８は、前述のステップＳ５のビデオＲＡＭ６、９への描画を行う。
【００１１】
【発明が解決しようとする課題】
以上の図６及び図７のシステムでは、ＣＰＵ２が幾何演算やビデオＲＡＭへの描画を行う必要がないので、負担が軽くなり、処理速度を高速にできるが、次のような欠点がある。
【００１２】
図６のシステム構成は、ステップＳ３の幾何演算以降がパイプライン処理により実行されるので、処理速度が速いが、ＣＰＵ２とジェオメトリプロセッサ４、ジェオメトリプロセッサ４とラスタープロセッサ５が、それぞれ独立のローカルバスを介して接続される構成であるため、ハードウエアの規模が大きくなる欠点がある。
【００１３】
また、図７のシステム構成では、すべての情報がメインバス１を通るため、ＣＰＵ２のメインメモリ３へのアクセスが妨害され、処理速度がそれだけ遅くなってしまう。
【００１４】
この発明は、上記の点に鑑み、例えば、小型で、描画機能の高いグラフィック機器を製作する場合に、ハードウエアを増大させることなく、描画速度を高めることが可能なＣＰＵを提供することを目的とする。
【００１５】
【課題を解決するための手段】
（１）上記課題に対応した本発明の中央演算処理装置は、並列に接続され、それぞれ、係数レジスタと、乗算器と、加減算器とを有する第１、第２および第３積和演算回路と、前記第３積和演算回路の加減算器の出力が入力される割算器とを有するマトリクス演算器を備え、当該マトリクス演算器は内部バスに直接接続されている、ことを特徴とする。
（２）上記中央演算処理装置において、前記割算器は、割算の際に使用されるスカラー値をストアするレジスタを有し、前記第３積和演算回路の加減算器の出力と当該ストアされたスカラー値とに基づいて割算を実行する、ように構成することもできる。
（３）また、前記マトリクス演算器は入出力レジスタをさらに備え、当該入出力レジスタ、前記係数レジスタおよび前記割算器のレジスタは前記内部バスに直接接続される、ようにしてもよい。
（４）さらに、前記マトリクス演算器が、前記中央演算処理装置からの命令を受信して解読する制御部をさらに備え、当該制御部が、前記中央演算処理装置に接続されたインストラクションキャッシュからコプロセッサ命令を直接受け取ることもできる。
（５）またさらに、中央演算処理装置が、前記マトリクス演算回路にポリゴンの座標変換のための幾何演算を専門に実行させるとともに、その他の演算を並行に計算するように構成することもできる。
【００１６】
【作用】
上記の構成のこの発明によるＣＰＵを使用して、上述の画像処理システムを構成する場合には、ジェオメトリプロセッサの機能は、ＣＰＵの専用演算部１００で実行される。したがって、その分、メインバスを通るデータが少なくなり、図６のようなパイプライン構成を採用しなくても、高速の処理が可能になる。
【００１７】
【実施例】
以下、この発明によるＣＰＵの一実施例を図を参照しながら説明する。
【００１８】
図２は、この発明によるＣＰＵ１２を使用した画像処理システムの構成例である。このシステムでは、メインバス１１に対してＣＰＵ１２と、メインメモリ１３と、ラスタープロセッサ１４とが接続される。ジェオメトリプロセッサの機能部分は、この場合、ＣＰＵ１２に専用演算部としてマトリクス演算器１００を設けて、ＣＰＵ１２が行う。
【００１９】
この例の場合、ＣＰＵ１２においては、ＣＰＵ部２２が接続される内部バス２１に対してマトリクス演算器１００が接続される。マトリクス演算器１００は、この例のポリゴンデータの座標変換などの処理のためには、ｎ×ｍ＝３×３の行列と、ｍ＝３次のベクトルとの乗算機能と、ｎ＝３次のベクトルとｎ＝３次のベクトルとの加減算機能と、ｎ＝３次のベクトルとｎ＝３次のベクトルとの項別乗算機能と、ｎ＝３次のベクトルとスカラー値との乗算機能と、スカラー値間の割算機能とを専用に実行する。
【００２０】
図１は、この発明によるＣＰＵ１２の一実施例の構成を示すブロック図である。ＣＰＵ１２では、外部バスであるメインバス１１に対してバスインターフェイスユニット２４を介して内部バス２１が接続される。内部バス２１に対しては、ＣＰＵ部２２と、キャッシュメモリ２３が接続される。さらに、内部バス２１に対してマトリクス演算器１００が接続される。
【００２１】
マトリクス演算器１００は、入出力レジスタ３０と、３個の積和演算回路３１、３２、３３と、割算器３４とを備えている。また、図示しなかったが、マトリクス演算器１００は、ＣＰＵ部２２からの命令を受信して解読し、レジスタや各回路に制御信号や制御クロックを供給する制御部を備える。
【００２２】
３個の積和演算回路３１、３２、３３のそれぞれは、係数レジスタ４１、４２、４３と、乗算器５１、５２、５３と、加減算器６１、６２、６３と、レジスタ７１、７２、７３とからなっている。７４は、割算の際に使用されるスカラー値をストアするレジスタである。
【００２３】
係数レジスタ４１、４２、４３は、乗算器５１、５２、５３に係数をそれぞれ出力すると共に、加減算器６１、６２、６３に対してレジスタ７１、７２、７３を介して係数を出力する。乗算器５１、５２、５３の出力は加減算器６１、６２、６３に供給される。加減算器６１、６２、６３の出力は、レジスタ７１、７２、７３に供給されると共に、入出力レジスタ３０に供給される。さらに、加減算器６３の出力は、割算器３４に供給される。
【００２４】
この例の場合、３個の積和演算回路が設けられるのは、画像描画処理のための座標変換や透視変換のために、ｘ，ｙ，ｚの３座標が必要であるので、その３座標についての演算を並列に行うためである。また、描画する物体の色は、３原色データで決められるからである。
【００２５】
以上の構成のＣＰＵ１２においては、入出力レジスタ３０と、各係数レジスタ４１、４２、４３及びレジスタ７４は内部バス２１に接続され、外部バスを経由せずに高速に読み書きできる。また、入出力レジスタ３０は、必要なデータを積和演算回路３１、３２、３３及び割算器３４に送り、そして、演算結果を出力データとして受信し、その演算結果は、内部バス２１を介してＣＰＵ部２２に送出する。
【００２６】
この場合、この発明によるＣＰＵ１２の構成は、マトリクス演算器１００に対する命令の与え方の違いにより、図３あるいは図４のような構成とすることができる。すなわち、図３の例は、マトリクス演算器１００をコプロセッサとして接続する場合の例で、マトリクス演算器１００は、インストラクションキャッシュ２３Ｉから、直接、コプロセッサ命令を受け取り、実行する。データは、データキャッシュ２３Ｄから内部バス２１のデータバス２１Ｄを介して受け取る。
【００２７】
図４の例は、マトリクス演算器１００をＣＰＵ１２の内部バス２１上にメモリマップした場合の例で、この場合は、インストラクションレジスタに命令を書き込むことにより、演算が実行される。つまり、内部バス２１のアドレスバス２１Ａ及びデータバス２１Ｄにより、ＣＰＵ部２２から命令がマトリクス演算器１００に書き込まれる。
【００２８】
図３及び図４の構成のいづれの場合も、外部バス１１にデータを出力することなく、演算時にＣＰＵ部２２とマトリクス演算器１００とを並列に駆動することができる。したがって、マトリクス演算器１００で演算が行われているときであっても、ＣＰＵ部２２は、内部バス２１を用いて、他の演算を並行して計算することができる。
【００２９】
上述の画像処理装置においては、マトリクス演算器１００は、前述した３次元座標変換ＯＰ１及び透視変換ＯＰ２とを行う。３次元座標変換ＯＰ１は、数１として示す次式のようなもので、３×３の行列と３次のベクトルの乗算と、その乗算結果と、３次のベクトルとの加算からなる。
【００３０】
【数１】
0003618109.tif 000002
数１で、［Ｍ１１，Ｍ１２，Ｍ１３，Ｍ２１，Ｍ２２，Ｍ２３，Ｍ３１，Ｍ３２，Ｍ３３  ］は座標変換マトリクスである。［Ｂ１，Ｂ２，Ｂ３］は頂点座標である。［Ｃ１，Ｃ２，Ｃ３］は平行移動ベクトルである。また、［Ａ１，Ａ２，Ａ３］は、座標変換後の頂点座標である。
【００３１】
また、透視変換ＯＰ２は、数２として示す次式のようなものである。
【００３２】
【数２】
0003618109.tif 000003
数２で、［Ｏ１，Ｏ２，Ｏ３］はオフセット値、［Ｓ１，Ｓ２，Ｓ３］は、座標変換後の頂点座標（［Ａ１，Ａ２，Ａ３］）に相当する。Ｈは視点から透視変換のスクリーンまでの距離である。［Ｄ１，Ｄ２，Ｄ３］は透視変換後の頂点座標である。
【００３３】
上記の座標変換及び透視変換を行う場合には、係数レジスタ４１には、乗算器５１用として係数（Ｍ１１，Ｍ１２，Ｍ１３  ）が、加減算器６１用として係数（Ｃ１，Ｏ１  ）が設定され、係数レジスタ４２には、乗算器５２用として係数（Ｍ２１，Ｍ２２，Ｍ２３  ）が、加減算器６２用として係数（Ｃ２，Ｏ２  ）が設定され、係数レジスタ４３には、乗算器５３用として係数（Ｍ３１，Ｍ３２，Ｍ３３  ）が、加減算器６３用として係数（Ｃ３，Ｏ３  ）が設定される。そして、レジスタ７４には、スカラー値Ｈが設定され、割算器３４の一方の入力として供給されると共に、割算器３４の他方の入力としては、加減算器６３で求められた値Ａ３が入力される。
【００３４】
そして、入出力レジスタ３０には、ポリゴンの頂点座標［Ｂ１，Ｂ２，Ｂ３］が入力値として設定され、また、演算結果の［Ａ１，Ａ２，Ａ３］、［Ｄ１，Ｄ２，Ｄ３］が出力値として設定される。
【００３５】
以上の設定により、数１及び数２の演算式の各行についての演算を、それぞれの積和演算回路３１、３２、３３が担当し、演算を並列に実行する。
【００３６】
コンピュータグラフィックスでは、大気による光の減衰、いわゆるフォグ効果を考慮して、視点から物体までの距離を使って物体の明るさと大気の明るさをブレンディングし、遠くのものほどぼんやり見えるようにして、現実の風景に近似するようにすることがある。この際の物体の色を決定する演算も、マトリクス演算器１００を用いて、同様に行うことができる。
【００３７】
この場合にも、数１と全く同じ演算がおこなわれる。この場合には、数１において、［Ｍ１１，Ｍ１２，Ｍ１３，Ｍ２１，Ｍ２２，Ｍ２３，Ｍ３１，Ｍ３２，Ｍ３３  ］は光源の性質を表すマトリクスであり、［Ｂ１，Ｂ２，Ｂ３］は光源の方向、つまり光源ベクトルである。［Ｃ１，Ｃ２，Ｃ３］は周囲光ベクトルである。そして、［Ａ１，Ａ２，Ａ３］は、光源効果を表す。この光源効果を用いて物体の色［Ｄ１，Ｄ２，Ｄ３］を、数３として示す次式により求めることができる。
【００３８】
【数３】
0003618109.tif 000004
この数３において、［Ｅ１，Ｅ２，Ｅ３］は物体の元の色、［Ｆ１，Ｆ２，Ｆ３］はフォグの色、［Ｄ１，Ｄ２，Ｄ３］は求める物体の色である。Ｐはスカラー値である。このフォグ効果を考慮した物体の色の演算の場合には、各積和演算回路３１、３２、３３は、赤Ｒ、緑Ｇ、青Ｂの色データを演算することになる。
【００３９】
そして、この場合には、係数レジスタ３１〜３３は、マトリクスと加算ベクトルの係数を
0003618109.tif 000005
のように保持する。そして、入出力レジスタ３０には、光源ベクトル［Ｂ１，Ｂ２，Ｂ３］が入力値として設定され、また、演算結果の［Ａ１，Ａ２，Ａ３］、［Ｄ１，Ｄ２，Ｄ３］が出力値として設定される。
【００４０】
【発明の効果】
以上説明したように、この発明によれば、ＣＰＵ内にマトリクス演算部をハードウエアとして内蔵しているので、幾何演算をそのマトリクス演算部に実行させることにより、ＣＰＵの負荷を減らして、メインバス上でＣＰＵ自身の計算機能を妨害しないようにすることができる。
【００４１】
したがって、このＣＰＵを使用すれば、図２のように、メインバスに対してラスタープロセッサを接続する構成であっても、メインバス上のデータの輻輳を少なくでき、高速処理が可能になる。このため、この発明のＣＰＵを用いることにより小型で描画機能の高いグラフィック機器を作ることができる。
【図面の簡単な説明】
【図１】この発明によるＣＰＵの一実施例のブロック図である。
【図２】この発明の一実施例のＣＰＵを用いた画像処理システムの構成例を示す図である。
【図３】この発明によるＣＰＵの一実施例の要部の構成例を示す図である。
【図４】この発明によるＣＰＵの他の実施例の要部の構成例を示す図である。
【図５】画像描画処理手順の流れを示す図である。
【図６】従来の画像処理システムの構成例を示す図である。
【図７】従来の画像処理システムの他の構成例を示す図である。
【符号の説明】
１１  メインバス
１２  ＣＰＵ
１３  メインメモリ
１４  ラスタープロセッサ
１５  ビデオＲＡＭ
２１  ＣＰＵ内部バス
３０  入出力レジスタ
３１〜３３  積和演算回路
３４  割算器
１００  マトリクス演算器
【図１】
0003618109.tif 000006
【図２】
0003618109.tif 000007
【図３】
0003618109.tif 000008
【図４】
0003618109.tif 000009
【図５】
0003618109.tif 000010
【図６】
0003618109.tif 000011
【図７】
0003618109.tif 000012