(57)【要約】【課題】キャッシュ効率を向上させ描画速度の速い画像描画装置を提供する。【解決手段】画面の横方向の直線状の絵を書くために、横方向一直線状にテクセルを取得する場合を考える。このとき、１６ｘ１６ブロックのテクセルに割り振るキャッシュアドレスは、横方向の組のテクセルをグループとし、グループの横側に隣接するグループは、異なるキャッシュアドレス領域が割り当てられたグループとなるようにする。【選択図】図８
2010198156.tif 000002
【特許請求の範囲】
【請求項１】
複数のテクセルからなるテクスチャを貼り付けることにより画像を描画する画像描画装置において、
テクスチャを格納するメモリと、
貼り付けに使用されるテクスチャを、複数のテクスチャ領域に分割してキャッシュマッピングアドレスを割り当て、格納するキャッシュと、
分割されたテクスチャ領域の境界に隣接するテクスチャ領域は、異なるキャッシュマッピングアドレスが割り当てられたテクスチャ領域となるように、テクセル座標をキャッシュマッピングアドレスに変換する変換回路と、
該キャッシュからテクセルを取得し表示装置の座標系で描画を行う描画回路と、
を備えることを特徴とする画像描画装置。
【請求項２】
前記テクスチャ領域は、１６x１６テクセルのブロックを横方向に分割した領域であることを特徴とする請求項１に記載の画像描画装置。
【請求項３】
前記テクスチャ領域は、１６x１６テクセルのブロックを、横方向に２テクセルずつ組にした領域であることを特徴とする請求項１に記載の画像描画装置。
【請求項４】
前記変換回路は、前記テクセル座標の下位ビット信号を伝播する信号線と、
前記テクセル座標の前記キャッシュマッピングアドレスへの変換方法に応じて、下位ビット同士のXORを演算するXOR回路と、
からなることを特徴とする請求項１に記載の画像描画装置。
【請求項５】
複数のテクセルからなるテクスチャを貼り付けることにより画像を描画する画像描画方法において、
テクスチャを格納し、
分割されたテクスチャ領域の境界に隣接するテクスチャ領域は、異なるキャッシュマッピングアドレスが割り当てられたテクスチャ領域となるように、テクセル座標をキャッシュマッピングアドレスに変換し、
貼り付けに使用されるテクスチャを、複数のテクスチャ領域に分割してキャッシュマッピングアドレスを割り当て、格納し、
該キャッシュからテクセルを取得し表示装置の座標系で描画を行う、
ことを特徴とする画像描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像描画装置に関する。
【背景技術】
【０００２】
従来、コンピュータグラフィックスなどの画像描画装置では、描画対象の物体にテクスチャを貼り付けるように描画することで、より写実的な描画を行う。
図１は、テクスチャの描画処理のイメージを説明する図である。
【０００３】
描画対象には、表示装置の座標系が設定される。表示装置の表示単位は画素で、表示装置座標で画素の位置を示すように設定される。一方、テクスチャは、描画対象に貼り付ける画像データであり、画像データを構成する基本単位をテクセルという。テクセルは、テクスチャにローカルに設定されたテクセル座標によって指定される。図１の場合は、ｘ−ｙ座標が表示装置座標であり、例えば、ｘ、ｙが整数値のときに画素の左下端の位置を示すように設定される。一方、ｕ−ｖ座標は、テクセル座標であり、テクスチャにローカルに設定された座標系で、例えば、ｕ、ｖが整数値のときにテクセルの左下端の位置を示すように設定される。テクスチャは、拡大、縮小、回転などの操作を受けた後、描画対象に貼り付けられる。テクスチャを描画対象に貼り付ける場合には、テクセル座標を表示装置座標に変換して、テクセルのデータを画素に転写することによって行われる。
【０００４】
図２は、画像描画装置のブロック構成図である。
CPU１１から発行された描画コマンドは、コマンド解釈部１４により解釈され、頂点処理部１５において、描画の基本単位である三角形の頂点の座標が生成される。ラスタライザー１６では、頂点座標が指定された三角形を表示装置に表示するために、対応する部分のテクスチャのデータの取得を行う。ラスタライザー１６では、テクセル座標が生成され、キャッシュ内テクセル有無判定部１７、テクセル座標−メモリアドレス変換部１８、テクセル座標−キャッシュマッピングアドレス変換部１９に渡される。キャッシュ内テクセル有無判定部１７は、キャッシュ２２内に、テクセル座標で指定されたテクセルが存在するか否かを判定する。テクセル座標−メモリアドレス変換部１８では、テクセル座標で示されるテクセルの情報が格納されているメモリ２１内のアドレスを計算する。テクセル座標−キャッシュマッピングアドレス変換部１９では、テクセル座標から、このテクセル座標で示されるテクセルが格納されているキャッシュ２２内のアドレスを計算する。アドレス出力部２０は、キャッシュ内テクセル有無判定部１７の判定結果が、キャッシュ２２内に該当するテクセルが存在しないという判定であった場合に、テクセル座標−メモリアドレス変換部１８からのメモリアドレスをメモリ２１に出力し、テクセルを読み出させる。また、キャッシュ内テクセル有無判定部１７からは、当該テクセルがキャッシュ２２に無い場合には書き込み指示、当該テクセルがキャッシュ２２にある場合には読み出し指示が出力され、キャッシュ２２に与えられる。テクセル座標−キャッシュマッピングアドレス変換部１９からのアドレスは、キャッシュ２２に与えられて、当該テクセルの読出しに使われる。このように、キャッシュ２２に、必要なテクセルがある場合には、キャッシュ２２からテクセルを読出し、無い場合には、メモリ２１からキャッシュ２２にテクセルを転送した後、キャッシュ２２からテクセルを読み出すようにする。
【０００５】
読み出されたテクセルは、ピクセル処理部２３に渡され、ピクセル処理部２３において、貼り付けるべき表示装置座標が計算され、ピクセルデータとして使用される。ピクセルデータと表示装置座標は、メモリアドレス変換部２４に渡され、表示メモリへの書き込みアドレスと、書き込みデータが生成される。表示メモリ１２の生成された書き込みアドレスに書き込みデータが書き込まれ、表示装置１３によって表示される。
【０００６】
テクスチャは、容量の大きいメモリに格納され、必要なときに取り出し使用される。容量の大きいメモリ２１は、画像描画装置の集積回路１０とは分離されている。メモリ２１と集積回路１０との通信は、集積回路１０の内部動作よりも遅い速度であるため、メモリ２１と集積回路１０との通信を減らすことが望まれる。そのために集積回路１０内にテクスチャを保持するためのキャッシュ２２を設ける。このときキャッシュ２２の容量は、メモリの容量に比べ小さい容量となる。キャッシュのマッピング方式は、フルアソシアティブマッピングがもっともキャッシュ効率がよいが、コストが高いためダイレクトマッピングもしくは、その中間的なNウェイセットアソシアティブマッピングが使用される。
【０００７】
図３は、２ウェイセットアソシエイティブマッピングを説明する図である。
一般に、Nウェイセットアソシエイティブマッピングでは、キャッシュをN個のウェイに分割するが、ここでは、２ウェイセットアソシエイティブマッピングについて説明する。図３では、キャッシュにウェイ０とウェイ１が設けられている。FIFO方式のキャッシュの場合、外部メモリからデータを転送するときには、２つのウェイを交互に利用する。１回目の転送では、ウェイ０にデータを転送し、２回目の転送では、ウェイ１にデータを転送する。３回目の転送では、FIFO方式であるので、古いほうのデータであるウェイ０のデータを上書きするよう、データをウェイ０に転送する。４回目の転送では、ウェイ１にデータを転送する。
【０００８】
テクスチャ内のテクセル位置を表すテクセル座標をマッピングのためのキャッシュマッピングアドレスに変換する。変換はテクセル座標がマッピング位置を示す方法（例えば、特許文献１参照）が低コストであり使用されている。なお、画像描画装置を使用するときは、予めテクセル座標をメモリアドレスに変換し、テクスチャをメモリに格納する。
【０００９】
図４は、u座標方向４テクセルとv座標方向４テクセルの計１６テクセルをマッピング可能なダイレクトマッピングのキャッシュの例を示す図である。
テクスチャを１ワード１テクセルのキャッシュへマッピングする例である。図４の場合、ワード０からワード１５の１６ワードが格納可能となっている。１ワード１テクセルなので、１６テクセルの格納が可能である。図４の上の図は、テクスチャがテクセルからなっている様子を示しており、テクセル０からテクセル１５までが、１６x１６のブロックに示されている。この１６x１６のブロックのテクセルを、１６ワードのキャッシュに、テクセル番号が０から順に、格納する。この１６x１６のブロックに含まれていないテクセルをキャッシュに格納する場合には、所望のテクセルを含む１６x１６ブロックを指定して、１６テクセル分キャッシュに読み込む。すなわち、図４上に記載されているように、テクスチャをテクセル０〜１５の１６x１６ブロックに分割し、このブロック単位で、キャッシュに読み込むようにする。
【００１０】
図５は、図４の例におけるテクセル座標からキャッシュマッピングアドレスへの変換回路の回路図である。
図５の回路では、テクセル座標ｕとｖの下位２ビット分の２本の信号線を使用する。テクセル座標uの最下位の信号線の信号は、キャッシュマッピングアドレスの最下位ビットであるアドレス[０]とする。テクセル座標uの２番目の信号線の信号は、キャッシュマッピングアドレスの下から２番目のビットであるアドレス[１]とする。テクセル座標vの最下位の信号線の信号は、キャッシュマッピングアドレスの下から３番目のアドレス[２]とする。テクセル座標vの２番目の信号線の信号は、キャッシュマッピングアドレスの下から４番目のアドレス[３]とする。
【００１１】
図６は、図５の回路の動作を図示したものである。
キャッシュメモリが、テクセル座標(０,０)〜(３,３)の矩形を格納するとする。その場合の順番は、
テクセル座標(０,０)をアドレス０に格納
テクセル座標(１,０)をアドレス１に格納
テクセル座標(２,０)をアドレス２に格納
テクセル座標(３,０)をアドレス３に格納
・・・
テクセル座標(３,３)をアドレス１５に格納
となり、これを式で表すと、
アドレス=v*４+uとなる。
【００１２】
この式の意味は、テクセル座標vのビットを２ビット分高位にシフトし、uと加算するということである。したがって、キャッシュマッピングアドレスは、上位２ビットがvで、下位２ビットがuとなる４ビットの値となる。
【００１３】
また、特許文献２には、ピクセル座標をメモリ座標に変換する技術が開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特表２００２−５０４２５１号公報
【特許文献２】特開平３−２９２５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
図７は、従来の問題点を説明する図である。
今、取得したいテクスチャが横方向の一直線上にあるとする。この場合、（１）のブロックをキャッシュへ読み込んで、テクスチャ０〜３をピクセル処理部に送り、次に、（２）のブロック、その次に（３）のブロックをキャッシュへ読み込み、テクスチャ０〜３をピクセル処理部に送る。したがって、使用するのは、常にテクスチャ０〜３のみであり、キャッシュのワード０〜３しか使われない。
【００１６】
すなわち、実際描画する場合に必要とするテクセルはテクスチャ内に一直線上にあり、メモリから取得しキャッシュへマッピングした場合、キャッシュの一部分しか使用されず、（１）のブロックから、（２）、（３）のブロックというように頻繁に上書きが発生し、描画速度が遅いという問題を生じていた。
【００１７】
本発明の課題は、キャッシュ効率を向上させ描画速度の速い画像描画装置を提供することである。
【課題を解決するための手段】
【００１８】
本発明の画像描画装置は、複数のテクセルからなるテクスチャを貼り付けることにより画像を描画する画像描画装置において、テクスチャを格納するメモリと、貼り付けに使用されるテクスチャを、複数のテクスチャ領域に分割してキャッシュマッピングアドレスを割り当て、格納するキャッシュと、分割されたテクスチャ領域の境界に隣接するテクスチャ領域は、異なるキャッシュマッピングアドレスが割り当てられたテクスチャ領域となるように、テクセル座標をキャッシュマッピングアドレスに変換する変換回路と、該キャッシュからテクセルを取得し表示装置の座標系で描画を行う描画回路とを備える。
【発明の効果】
【００１９】
本発明によれば、キャッシュ効率を向上させ描画速度の速い画像描画装置を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】テクスチャの描画処理のイメージを説明する図である。
【図２】画像描画装置のブロック構成図である。
【図３】２ウェイセットアソシエイティブマッピングを説明する図である。
【図４】u座標方向４テクセルとv座標方向４テクセルの計１６テクセルをマッピング可能なダイレクトマッピングのキャッシュの例を示す図である。
【図５】図４の例におけるテクセル座標からキャッシュマッピングアドレスへの変換回路の回路図である。
【図６】図５の回路の動作を示す図である。
【図７】従来の問題点を説明する図である。
【図８】本発明のテクセル座標とキャッシュマッピングアドレスの変換を示した図である。
【図９】本発明の実施形態のキャッシュマッピングアドレス変換の回路図である。
【図１０】本発明の他の実施形態を説明する図である。
【図１１】図１０の実施形態のキャッシュマッピングアドレス変換の回路図である。
【発明を実施するための形態】
【００２１】
本発明の画像描画装置は、テクスチャをマッピングするメモリと、複数の領域に分割されたキャッシュと、テクセル座標をキャッシュマッピングアドレスへ変換時に複数に分割されたキャッシュ領域の境界（左右の接辺のある部分）は必ず異なる領域となる変換回路とキャッシュからテクセルを取得し画像描画を行う回路を特徴とするものである。
【００２２】
図８は、本発明のテクセル座標とキャッシュマッピングアドレスの変換を示した図である。
図８では、u座標方向４テクセルとv座標方向４テクセルの計１６テクセルをマッピング可能なダイレクトマッピングのキャッシュの例を示している。テクスチャ内の数値はキャッシュのマッピング位置を示している。テクスチャを複数の領域に分割するためキャッシュマッピングの０，１，２，３をグループA、４，５，６，７をグループB、８，９，１０，１１をグループC、１２，１３，１４，１５をグループDと定義する。テクセルのキャッシュマッピングは、グループAの境界（接辺）にグループB,C,Dのいずれかを配置することとする。グループBの境界（接辺）にグループA,C,Dのいずれかを配置することとする。グループCの境界（接辺）にグループA,B,Dのいずれかを配置することとする。グループDの境界（接辺）にグループA,B,Cのいずれかを配置することとする。図８は、この条件に一致するように配置した例である。
【００２３】
図８のように、取得したいテクスチャが、横方向の一直線であるとする。キャッシュにテクスチャを読み込む場合、１６x１６のブロック単位で読み込むのではなく、取得したいテクスチャを直接読み込むようにする。取得したい直線上には、テクスチャ０〜３、テクスチャ８〜１１が配列され、以後、この繰り返しとなる例が示されている。１６x１６のブロックのテクスチャ０〜１５に、キャッシュのワード０〜１５が割り当てられているが、このブロックを読み込むのではなく、テクスチャ０〜３とその左隣のテクスチャ８〜１１を読み込むようにする。このようにしても、テクスチャ０〜３が割り当てられるキャッシュのアドレス位置は、ワード０〜３であり、テクスチャ８〜１１には、ワード８〜１１が割り当てられるので、キャッシュ内で、同じワードに２つのデータを書き込むようなことは起こらない。従来の場合は、横方向の直線を読み込もうとした場合、１６x１６のブロックごとに、同じワードがテクスチャに割り当てられていた。したがって、図７のように、ワード０〜３が不要に上書きされないように、テクスチャ０〜３を順次、前の処理が終わってから読み込む必要があった。しかし、図８のように、テクスチャに割り振るキャッシュのワードを隣り合う１６x１６ブロックの間で切り替えることにより、ブロックをまたいで、テクスチャを読み込むことが出来るようになる。これにより、キャッシュの格納領域もより使用率が高まる。図８では、２つの１６x１６ブロックごとに、同じキャッシュアドレスの割り当てが繰り返されるようになっているが、３つのブロックごと、あるいは、４つのブロックにわたって、隣接するテクスチャグループが異なるようにすることにより、よりキャッシュの使用率が高まると共に、メモリからテクスチャを読み込みキャッシュへ上書きを行う頻度を少なくすることが出来る。
【００２４】
図８は、u座標方向４テクセルとv座標方向４テクセルの計１６テクセルをマッピング可能なダイレクトマッピングのキャッシュの例を示したものであるがキャッシュの容量によってu座標方向、v座標方向ともにテクセル数を増やすことが可能である。
【００２５】
また、テクスチャ内の数値は１テクセルに割り当てているが、キャッシュ容量が大きい場合、テクスチャ内の数値は複数テクセルに割り当てることもできる。例えば、キャッシュマッピング位置０には４テクセルマッピングするということが可能である。
【００２６】
更に、上記実施形態は、ダイレクトマッピングの例であるが、Nウェイセットアソシアティブにおいても１つのウェイ内ではダイレクトマッピングであるため、上記実施形態を適用可能である。
【００２７】
図９は、本発明の実施形態のキャッシュマッピングアドレス変換の回路図である。
図９の回路においては、図８のキャッシュマッピングを実現する。テクセル座標uは、下位３ビット、すなわち、最下位ビットu[０]、下から２番目のビットu[１]、下から３番目のビットu[２]を使用する。テクセル座標vは、下位２ビット、すなわち、最下位ビットv[０]、下から２番目のビットv[１]を使用する。u[０]と、u[１]は、そのまま、キャッシュマッピングアドレスの下位２ビット、すなわち、アドレス[０]、アドレス[１]とする。すなわち、テクセルが横方向に４つ並んでいる場合には、連続したキャッシュマッピングアドレスとする意味である。テクセル座標v[０]は、そのまま、キャッシュマッピングアドレスの３ビット目、アドレス[２]とする。これは、テクセルが、２列上下に並んでいる場合には、そのままマッピングする意味である。テクセル座標uの３ビット目、u[２]と、テクセル座標vの２ビット目、v[１]は、XOR回路３０に入力される。これは、テクセル座標vが１変化する、すなわち、テクセル座標vが０、１の場合と、２、３の場合とで、キャッシュマッピングアドレスのアドレス[３]を切り替える意味である。同様に、テクセル座標u[２]が変化する、すなわち、テクセル座標が、８個変化するごとに、キャッシュマッピングアドレス[３]を切り替える意味である。すなわち、u[２]が同じ場合には、v[１]が１変化する、すなわち、上に４つ行くと、アドレス[３]が元に戻る、すなわち、キャッシュマッピングのアドレスが元に戻ることを意味する。テクセル座標u[３]が変化すると、すなわち、横に８個進むと、キャッシュマッピングアドレスが元に戻ることを意味する。
以上により、図８のテクセル座標−キャッシュマッピングアドレス変換が実現される。
【００２８】
図１０は、本発明の他の実施形態を説明する図である。
他の実施形態として、以下のようなものが考えられる。すなわち、テクスチャを複数の領域に分割するためキャッシュマッピングの０,１をグループA、２,３をグループB、４,５をグループC、６,７をグループD、８,９をグループE、１０,１１をグループF、１２,１３をグループG、１４,１５をグループHと定義する。テクセルのキャッシュマッピングは、グループAの境界（接辺）にグループB,C,D,E,F,G,Hのいずれかを配置することとする。グループBの境界（接辺）にグループA,C,D,E,F,G,Hのいずれかを配置することとする。グループCの境界（接辺）にグループA,B,D,E,F,G,Hのいずれかを配置することとする。グループDの境界（接辺）にグループA,B,C,E,F,G,Hのいずれかを配置することとする。グループEの境界（接辺）にグループA,B,C,D,F,G,Hのいずれかを配置することとする。グループFの境界（接辺）にグループA,B,C,D,E,G,Hのいずれかを配置することとする。グループGの境界（接辺）にグループA,B,C,D,E,F,Hのいずれかを配置することとする。グループHの境界（接辺）にグループA,B,C,D,E,F,Gのいずれかを配置することとする。図１０は、この条件に一致するように配置した例である。
【００２９】
図１０の場合においては、テクセルを２つずつ組にして、キャッシュに格納する。１つの組の横には、同じキャッシュマッピングアドレスを持たない組を配置するようにする。図１０の取得したいテクスチャ上には、テクセル０,１、テクセル６,７、テクセル４,５、テクセル２,３が配列され、これが、横方向に繰り返すようになっている。したがって、これらのテクセルを格納するキャッシュ領域は、ワード０,１、ワード６,７、ワード４,５、ワード２,３であり、互いに重なっていないので、一度にキャッシュに読み込むことが出来ると共に、ワード０〜７をすべて使っているので、キャッシュ容量の使用率も向上する。
【００３０】
図１１は、図１０の実施形態のキャッシュマッピングアドレス変換の回路図である。
テクセル座標uは、u[０]、u[１]、u[２]の下位３ビットを使用する。テクセル座標vは、v[０]、v[１]の下位２ビットを使用する。u[０]、u[１]は、そのままキャッシュマッピングアドレス、アドレス[０]、アドレス[１]とする。v[０]は、アドレス[３]とする。これは、v[０]が３変化する、すなわち、上方向に２個移動すると、アドレスが元に戻ることを意味する。v[１]とu[１]は、XOR回路３１に入力される。XOR回路３１の出力は、u[２]と共に、XOR回路３２に入力される。すなわち、XOR回路３１のアドレスの切り替えと、XOR回路３２のアドレスの切り替えとのANDの切り替えが起きることを意味している。XOR回路３１では、v[１]が変化する、すなわち、上方向に４つ進むか、u[１]が変化する、すなわち、横方向に４つ進むかすると、アドレスの切り替えが起きることを意味している。XOR回路３２では、XOR回路３１の切り替えのほかに、u[２]が変化する、すなわち、横方向に８つ進むと、切り替えが起きることを意味する。すなわち、XOR回路３１と３２の組み合わせで、上方向に４つ進むか、横方向に４つ進むか、横方向に８つ進むか、のいずれかが発生すると、アドレスの切り替えが起きるようになっている。
【００３１】
本発明の実施形態では、テクスチャ内の一直線上のテクセルは、キャッシュマッピングの重複が発生する前にマッピングアドレスを別のキャッシュ領域へ割り当てる。
また、テクスチャのテクセルがマッピングされたメモリからテクセルを取得し、テクスチャ内の一直線上のテクセルは重複なくキャッシュへマッピングすることができることでキャッシュ効率がよく、速度の遅いメモリ間通信が低減され高速な画像描画を可能とする。
【符号の説明】
【００３２】
１０      画像描画装置（集積回路）
１１      ＣＰＵ
１２      表示メモリ
１３      表示装置
１４      コマンド解釈部
１５      頂点処理部
１６      ラスタライザー
１７      キャッシュ内テクセル有無判定部
１８      テクセル座標−メモリアドレス変換部
１９      テクセル座標−キャッシュマッピングアドレス変換部
２０      アドレス出力部
２１      メモリ
２２      キャッシュ
２３      ピクセル処理部
２４      メモリアドレス変換部
３０〜３２      XOR回路
【図１】
2010198156.tif 000003
【図２】
2010198156.tif 000004
【図３】
2010198156.tif 000005
【図４】
2010198156.tif 000006
【図５】
2010198156.tif 000007
【図６】
2010198156.tif 000008
【図７】
2010198156.tif 000009
【図８】
2010198156.tif 000010
【図９】
2010198156.tif 000011
【図１０】
2010198156.tif 000012
【図１１】
2010198156.tif 000013