(57)【要約】【課題】メモリアクセス効率を高めたグラフィックス描画装置を提供する。【解決手段】グラフィックス描画装置は、複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータが与えられ、複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力するスパン選択部と、スパン選択部が出力する一連のスパンデータの各スパンに対して各画素のデータを生成する画素データ生成部と、スパン選択部が出力する一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを纏めてアクセスするメモリアクセス部とを含む。【選択図】図２
2010086008.tif 000002
【特許請求の範囲】
【請求項１】
描画領域における第１描画位置を含む第１図形データを取り込み、前記描画領域において第１描画位置とは異なる第２描画位置を含む第２図形データを、前記第１図形データよりも後に取り込むデータ取得部と、
前記第１描画位置及び前記第２描画位置の前記描画領域における第１方向に対する位置を検出する検出部と、
前記第１方向において、前記第１描画位置及び前記第２描画位置が等しい場合に、前記第１描画位置の描画情報及び前記第２描画位置の描画情報をメモリに連続して格納させる制御部と
を有することを特徴とする半導体装置。
【請求項２】
複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータが与えられ、前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力するスパン選択部と、
前記スパン選択部が出力する前記一連のスパンデータの各スパンに対して各画素のデータを生成する画素データ生成部と、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを纏めてアクセスするメモリアクセス部と
を含むことを特徴とする半導体装置。
【請求項３】
前記複数のポリゴン形状の各々について、あるスパンのデータに対してＹ方向への変化分を加算することにより次のスパンのデータを生成するＹ方向デジタル変分処理部を更に含み、前記スパン選択部は、前記Ｙ方向デジタル変分処理部が生成するスパンのデータを用いることにより、複数の異なるＹ座標値に対して順次前記一連のスパンデータを出力することを特徴とする請求項２記載のグラフィクス描画装置。
【請求項４】
前記複数個のポリゴン形状のデータにおいて各ポリゴン形状のデータはＹ座標値を含み、前記Ｙ座標値の大きさが順番に並ぶように前記複数個のポリゴン形状のデータを並べ替えるソート処理部を更に含み、前記スパン選択部は前記ソート処理部により並べ替えられた前記複数個のポリゴン形状のデータに基づいて前記一連のスパンデータを出力することを特徴とする請求項２又は３記載の半導体装置。
【請求項５】
前記メモリアクセス部は、前記スパンに沿った方向に並ぶ各画素を連続メモリアドレスに格納することを特徴とする請求項２乃至４いずれか一項記載の半導体装置。
【請求項６】
前記メモリアクセス部は、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータをメモリから纏めて読み出すメモリ読出し部と、
前記画素データ生成部が生成する各画素のデータに応じた描画データをメモリに纏めて書き込むメモリ書込み部と
を含むことを特徴とする請求項２乃至５いずれか一項記載の半導体装置。
【請求項７】
前記スパン選択部が出力する前記一連のスパンデータに基づいて先頭メモリアドレスとアクセス長とを計算するアドレス計算部を更に含み、前記メモリアクセス部は、前記先頭メモリアドレスから前記アクセス長に対応する複数のメモリアドレスを纏めてアクセスすることを特徴とする請求項２記載の半導体装置。
【請求項８】
メモリコントローラと、
前記メモリコントローラを介して描画データを外部メモリに書き込む制御装置と、
前記メモリコントローラを介して前記描画データを前記外部メモリから読み込み、ディスプレイ装置に前記描画データを表示するための制御をする表示制御装置と
を含み、前記制御装置は、
複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータが与えられ、前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力するスパン選択部と、
前記スパン選択部が出力する前記一連のスパンデータの各スパンに対して各画素のデータを生成する画素データ生成部と、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータを格納する前記外部メモリのアドレスを纏めてアクセスするメモリアクセス部と
を含むことを特徴とするグラフィクスコントローラ。
【請求項９】
前記複数個のポリゴン形状のデータにおいて各ポリゴン形状のデータはＹ座標値を含み、前記Ｙ座標値の大きさが順番に並ぶように前記複数個のポリゴン形状のデータを並べ替えるソート処理部を更に含み、前記スパン選択部は前記ソート処理部により並べ替えられた前記複数個のポリゴン形状のデータに基づいて前記一連のスパンデータを出力することを特徴とする請求項８記載のグラフィクスコントローラ。
【請求項１０】
ａ）複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータを受け取り、
ｂ）前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして選択し、
ｃ）前記選択された一連のスパンデータの各スパンに対して各画素のデータを生成し、
ｄ）前記選択された一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを纏めてアクセスする
各段階を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に画像処理に関し、詳しくは３次元データに基づいて２次元の描画データを生成する描画情報の処理に関する。
【背景技術】
【０００２】
３次元グラフィクスでは、グラフィクス・エンジンが、３次元データとして与えられた立体オブジェクトを所定の視点から見たときに見えるべき２次元画像を計算し、その画素毎のデータをメモリに書き込むことにより２次元画像データを生成する。次にディスプレイ・エンジンが、メモリに格納された２次元画像データを描画データとして読出し、読み出した描画データをディスプレイ装置に表示する。ここでメモリに格納されている描画データは、一般に画素の色及び明るさを数値で表したものである。例えば１画素のデータが３２ビットの場合、上位８ビットがＲ（赤）の輝度、次の８ビットがＧ（緑）の輝度、次の８ビットがＢ（青）の輝度、下位８ビットがアルファ値を示す。ここでアルファ値とは、メモリから読み出した元画像に対して新たに計算した書込み画像を重ね合わせる際の重みであり、半透明画像等を描画するときに用いられる。
【０００３】
上記のようなグラフィックス描画装置において一般的に用いられるＤＲＡＭには、連続するアドレスのメモリアクセスは高速だが、不連続なアドレスのメモリアクセスは低速であるという特徴がある。ＤＲＡＭにはページと呼ばれる処理単位が存在し、同一ページ内のアクセスは高速に実行可能であるが、異なるページにアクセスする場合にはページミスが発生する。ページミスが発生すると、新たなワード線を立ち上げてメモリセルからセンスアンプへのデータ読出し処理を実行する必要があり、ＤＲＡＭ内部でのこの読出し処理が終わってから、メモリ外部への新たなページのデータ読出しが可能になる。
【０００４】
通常は描画平面のコーナーの座標（Ｘ，Ｙ）＝（０，０）に対応する画素をメモリ領域内の開始アドレスに割り当て、同一Ｙ座標上でＸ座標値が増加する方向に並ぶ各画素をメモリ内の連続アドレスに割り当てる。Ｘ座標値を増加していき描画平面の端（Ｘ＝Ｘｍａｘ）まで到達するとＸ座標値は０に戻り、Ｙ座標値が１変化する（Ｙ座標値が増加するか減少するかは描画装置の仕様に応じて決まる）。このとき、（Ｘｍａｘ，Ｙｎ）の画素と（０，Ｙｎ＋１）の画素とは、メモリ領域内の連続するアドレスとなるように配置される。
【０００５】
このアドレス配置の利点としては、描画する画素の座標からメモリ上のアドレスが簡単な演算で求められること、及び表示の際にはメモリの連続アドレスからデータを読み出せばよいので表示装置にとってメモリアクセスの効率が良いことが挙げられる。なお通常、表示装置はスクリーン左上から右下に向けて順次走査を行う。また上記のアドレス配置の欠点としては、描画データは三角形の集合体として三角形毎に描画されるので、描画時に不連続なアドレスへのメモリアクセスが大量に発生し、メモリアクセス効率が大きく低下することが挙げられる。
【特許文献１】特開平１０−３３４２５２号公報
【特許文献２】特開平１０−１８８００４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上を鑑みると、不連続アクセス時に効率が低下するメモリを使用するグラフィックス描画装置において、描画処理時におけるメモリアクセス効率を高め、描画性能を向上することが望まれる。
【課題を解決するための手段】
【０００７】
本発明の一つの側面によれば、半導体装置は、描画領域における第１描画位置を含む第１図形データを取り込み、前記描画領域において第１描画位置とは異なる第２描画位置を含む第２図形データを、前記第１図形データよりも後に取り込むデータ取得部と、前記第１描画位置及び前記第２描画位置の前記描画領域における第１方向に対する位置を検出する検出部と、前記第１方向において、前記第１描画位置及び前記第２描画位置が等しい場合に、前記第１描画位置の描画情報及び前記第２描画位置の描画情報をメモリに連続して格納させる制御部とを有する。
【発明の効果】
【０００８】
本願開示の少なくとも１つの実施例によれば、同一のＹ座標のスパンに対して纏めてメモリアクセスするので、あるスパンから次のスパンに移動する際にページミス等が発生する頻度が減り、メモリアクセスの効率が向上する。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１０】
図１は、グラフィクス描画システムの構成の一例を示す図である。図１に示すグラフィクス描画システムは、グラフィクスコントローラ１０、ＤＲＡＭチップ１１、及びディスプレイ装置１２を含む。グラフィクスコントローラ１０は、メモリコントローラ１５、グラフィクス描画装置であるグラフィクス・エンジン１６、及びディスプレイ表示装置であるディスプレイ・エンジン１７を含む。グラフィクス・エンジン１６は、ＤＲＡＭチップ１１に格納される立体オブジェクトの３次元データに基づいて、その立体オブジェクトを所定の視点から見たときに見えるべき２次元画像を計算し、その画素毎のデータを２次元の描画データとして生成する。このグラフィクス・エンジン１６が生成した描画データは、メモリコントローラ１５を介してＤＲＡＭチップ１１に書き込まれる。ディスプレイ・エンジン１７は、メモリコントローラ１５を介して描画データをＤＲＡＭチップ１１から読み込み、ディスプレイ装置１２の表示画面に描画データを表示する。
【００１１】
図２は、グラフィクス描画装置であるグラフィクス・エンジン１６の構成の一例を示す図である。グラフィクス・エンジン１６は、ジオメトリ処理部２１とラスタ処理部２２とを含む。ジオメトリ処理部２１は、メモリコントローラ１５から読み込んだ立体オブジェクトの３次元データに基づいて、そのオブジェクトの位置・姿勢に応じて拡大・回転等の幾何学的な演算処理を行う。一般に立体オブジェクトは、多数のポリゴンの集合体として表現されている。ジオメトリ処理部２１では、幾何学的な演算処理としてポリゴン単位での座標変換を実行するとともに、光源計算等の演算処理も実行する。この際、最も単純なポリゴンとして三角形を用いるのが一般的である。ジオメトリ処理部２１は、幾何学的な演算処理及び光源処理等により、所望の視点から見たオブジェクトの２次元画像を構成する複数の三角形のデータを計算すると、この複数の三角形のデータをラスタ処理部２２に供給する。
【００１２】
ラスタ処理部２２は、オブジェクトを構成する各面の各画素を塗りつぶすラスタライズ処理により、２次元の描画データを生成する。ラスタライズ処理では、各三角形の頂点毎に求めた画像パラメータに基づいて、三角形内部に含まれる各画素の画像パラメータを補間により求める。画像パラメータには、ＲＧＢ各色の輝度、奥行き方向の距離を表すＺ値、テクスチャ表示のためのテクスチャ座標値、アルファブレンディングのためのアルファ値等が含まれる。
【００１３】
ラスタ処理部２２は、トライアングル・セットアップ部３１、トライアングル・ソータ部３２、トライアングル・データ・バッファ３３、ＹＤＤＡ処理部３４、スパンデータ分離部３５、ＸＤＤＡ処理部３６、メモリ読出し部３７、ピクセル処理実行部３８、及びメモリ書込み部３９を含む。トライアングル・セットアップ部３１は、ジオメトリ処理部２１から各三角形の各頂点の座標値及び各頂点における各画像パラメータの値を順次受け取る。トライアングル・セットアップ部３１は、受け取った各三角形の各頂点の座標値及び各頂点における各画像パラメータの値に基づいて、ラスタライズ処理に適した三角形データを生成する。
【００１４】
図３は、トライアングル・セットアップ部３１が生成する三角形データの一例を示す図である。図３に示されるように、トライアングル・セットアップ部３１が生成する三角形データは、三角形の最上部の頂点の座標（Ｘｓ，Ｙｓ）を座標初期値として含む。また更に三角形データは、この座標（Ｘｓ，Ｙｓ）における各画像パラメータの値を画像パラメータ初期値として含む。更に三角形データは、左辺４１に沿ったＸ座標及び各画像パラメータの傾き（変化分）、右辺４２に沿ったＸ座標及び各画像パラメータの傾き（変化分）、右下辺４３に沿ったＸ座標及び各画像パラメータの傾き（変化分）を含む。また更に三角形データは、各スパンに沿った各画像パラメータの傾き（変化分）を含む。ここでスパンとは、左エッジと右エッジとの間のラスタ走査方向（Ｘ方向）に沿った画素一列のことである。また更に三角形データは、三角形の上半分の高さを示すデータ及び下半分の高さを示すデータを含む。
【００１５】
なお図３では、三角形の各頂点と画素位置を表す水平方向の直線とがずれているが、これは、本来実数で表現される三角形の頂点座標がマトリクス配列である画素の座標に完全には一致しないからである。また図３には、左側に１つの辺があり右側に２つの辺がある例を示してあるが、左側に２つの辺があり右側に１つの辺が有る場合にも、同様に三角形データが生成される。
【００１６】
図２を再び参照し、トライアングル・ソータ部３２は、トライアングル・セットアップ部３１が生成する三角形データのＹ座標値（Ｙｓ）の大きさが順番に並ぶように、所定個数の三角形のデータを並べ替える。例えば、８つの三角形のデータに対して、このように順番を並べ替えるソート処理を実行する。例えばジオメトリ処理部２１が、ｎ個の三角形のデータを順次出力したとする。この場合、トライアングル・セットアップ部３１は、ジオメトリ処理部２１から受け取った順番通りに、１番目〜ｎ番目の三角形のデータを順次出力する。トライアングル・ソータ部３２は、まず１番目〜８番目の三角形のデータについて、三角形データのＹ座標値（Ｙｓ）の大きさが順番に並ぶように８個の三角形のデータを並べ替える。次に、９番目〜１６番目の三角形のデータについて、三角形データのＹ座標値（Ｙｓ）の大きさが順番に並ぶように８個の三角形のデータを並べ替える。更に、１７番目〜２４番目の三角形のデータについて、三角形データのＹ座標値（Ｙｓ）の大きさが順番に並ぶように８個の三角形のデータを並べ替える。以下同様である。このようにしてトライアングル・ソータ部３２は、所定個数毎（上記例では８個毎）に、三角形のデータをＹ座標値に従って並べ替える。この並べ替えは、トライアングル・データ・バッファ３３に対するデータ格納時に行なわれる。
【００１７】
図４は、トライアングル・ソータ部３２及びトライアングル・データ・バッファ３３の構成の一例を示す図である。この構成例では、トライアングル・ソータ部３２はＹ座標比較部３２Ａを含む。またトライアングル・データ・バッファ３３はデータバッファ３３Ａを含む。Ｙ座標比較部３２Ａは、トライアングル・セットアップ部３１から供給される三角形データ（図中のトライアングル・データ）を、各三角形毎にデータバッファ３３Ａに格納する。ここで三角形データは、座標、色、テクスチャ座標値等についての初期値及び傾き値を含む。図４に示す例では、データバッファ３３Ａは８個の三角形のデータを格納する構成となっている。
【００１８】
Ｙ座標比較部３２Ａは、トライアングル・セットアップ部３１から１つの三角形のデータを新たに受け取ると、その三角形のデータのＹ座標（図３のＹｓ）を、既にデータバッファ３３Ａに格納されている全ての三角形のデータのＹ座標と比較する。Ｙ座標比較部３２Ａは、この比較結果に応じて、Ｙ座標の小さい順に順番を示す番号を各三角形のデータに割り当てる。この際、Ｙ座標比較部３２Ａは、既にデータバッファ３３Ａに格納されている各三角形のデータについては、その順番を示す番号を適宜書き直す。また新たに受け取った１つの三角形のデータについては、その順番を示す番号と共に三角形のデータをデータバッファ３３Ａの空いている場所に格納する。図４に示す例では、データバッファ３３Ａに４つの三角形のデータが格納された状態が示されている。この状態から、その後順次受け取る４つの三角形のデータに対して上記の処理を繰り返し、最終的には８つの三角形のデータがデータバッファ３３Ａに格納される。格納すべき所定の個数（この例では８個）の三角形のデータが格納されると、データバッファ３３Ａは、ＹＤＤＡ処理部３４（図２参照）に通知信号を発行する。
【００１９】
ＹＤＤＡ処理部３４は、データバッファ３３Ａから上記順番を示す番号が小さい順に三角形のデータを読出し、その番号順に新たにトライアングル・データ・バッファ３３に三角形のデータを格納する。この際、トライアングル・データ・バッファ３３には、データバッファ３３Ａとは別の三角形８個分のバッファ領域が設けられており、このバッファ領域に三角形のデータを番号順に書き込んでよい。
【００２０】
図５は、ＹＤＤＡ処理部３４及びトライアングル・データ・バッファ３３の構成の一例を示す図である。この構成例では、ＹＤＤＡ処理部３４はスパン選択部３４−１及びＹＤＤＡ加算部３４−２を含む。またトライアングル・データ・バッファ３３はデータバッファ３３Ｂを含む。データバッファ３３Ｂには、データバッファ３３Ａから読み出した８つの三角形のデータが、順番を示す番号が小さい順に上から順番に格納されている。この際、図５に示されるように、最上部のスパンに関するデータが他の三角形データとは分離されて、カレント・スパン・データとして格納される。このカレント・スパン・データは、カレント・スパン（初期状態では最上部のスパン）の開始画素座標、終了画素座標、及び各画像パラメータの初期値と傾き値（変化分）とを含む。
【００２１】
スパン選択部３４−１は、Ｙ座標が最も小さい三角形（即ちデータバッファ３３Ｂの最上部のエントリ）のカレント・スパンを描画対象として選択し、選択したカレント・スパンのスパンデータをスパンデータ分離部３５（図２参照）に供給する。また更にスパン選択部３４−１は、選択したカレント・スパンと同一のＹ座標値を有するカレント・スパンをデータバッファ３３Ｂから検索する。同一のＹ座標値を有するカレント・スパンを見つけると、スパン選択部３４−１は、見つけたカレント・スパンのスパンデータをスパンデータ分離部３５（図２参照）に供給する。ＹＤＤＡ処理部３４は、見つけた全てのカレント・スパンについて、そのスパンデータをスパンデータ分離部３５（図２参照）に供給する。このようにしてスパン選択部３４−１は、データバッファ３３Ｂの格納データとして８つの三角形のデータが与えられると、これら８個の三角形のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力する。ここで、纏めて一連のスパンデータとして出力するとは、一連のスパンデータの間に他のスパンのデータを挿入することなく出力することである。
【００２２】
なお選択カレント・スパンと同一のＹ座標値を有するカレント・スパンが見つからない場合には、スパン選択部３４−１が出力する一連のスパンデータは、選択カレント・スパンのスパンデータのみを含むことになる。図６は、スパンデータの一例を示す図である。図６には三角形が３個のみ存在する例が示される。マトリクス上に並べられた丸印は画素の配列を表す。この例において、スパン５１が選択されたカレント・スパンであるとすると、この選択カレント・スパンと同一のＹ座標のスパンは存在しないので、スパン選択部３４−１はスパン５１のスパンデータのみを一連のスパンデータとして出力する。次にスパン５２がカレント・スパンとして選択されると、スパン５３がスパン５２と同一のＹ座標を有するので、スパン選択部３４−１はスパン５２のスパンデータとスパン５３のスパンデータとを一連のスパンデータとして出力する。
【００２３】
図５を再び参照し、ＹＤＤＡ加算部３４−２は、Ｙ方向デジタル変分処理（Y-Direction Digital Differential Analysis：ＹＤＤＡ）を実行する。具体的には、ＹＤＤＡ加算部３４−２は、あるスパンのデータに対してＹ方向への変化分を加算することにより次のスパンのデータを生成する。即ち、三角形データに含まれるＹ方向に対するＸ座標の変化分を、カレント・スパンの開始画素座標及び終了画素座標にそれぞれ加算することにより、次のスパン（Ｙ座標値が１画素分下にあるスパン）の開始画素座標及び終了画素座標を求める。また三角形データに含まれるＹ方向に対する各画像パラメータの変化分を、カレント・スパンの各画像パラメータの初期値にそれぞれ加算することにより、次のスパンの各画像パラメータの初期値を求める。ＹＤＤＡ加算部３４−２が求めた次のスパンのデータは、新たなカレント・スパン・データとしてデータバッファ３３Ｂに書き込まれる。このＹＤＤＡ加算部３４−２によるカレント・スパン・データの更新は、スパン選択部３４−１によりスパンデータ分離部３５に送られた各カレント・スパン・データに対して実行される。
【００２４】
スパン選択部３４−１は、見つけた全てのカレント・スパンのデータをスパンデータ分離部３５に供給すると、最初にカレント・スパンを選択したデータバッファ３３Ｂのエントリに戻る。この時点で、既にカレント・スパン・データは次のＹ座標値に対するスパンのデータに更新されているので、スパン選択部３４−１は、次のカレント・スパンを描画対象として選択し、選択したカレント・スパンのスパンデータをスパンデータ分離部３５に供給する。以降、上記と同様の処理を繰り返す。
【００２５】
上記に説明したように、スパン選択部３４−１により選択カレント・スパンと同一のＹ座標値を有するカレント・スパンをデータバッファ３３Ｂから検索するが、この際、三角形データはＹ座標の順番に並んでいるので、検索を効率的に実行することができる。即ち、選択カレント・スパンのＹ座標値と比較した場合、上からｎ番目のエントリの三角形データのＹ座標値は小さいが、上からｎ＋１番目のエントリの三角形データのＹ座標値は大きいとする。この場合、ｎ＋１番目以降のエントリの三角形データには選択カレント・スパンと同一のＹ座標値のスパンは含まれるはずがないので、検索対象からｎ＋１番目以降のエントリをはずすことができる。このようにして、前述のトライアングル・ソータ部３２によるソート処理により、効率的な検索処理を実行することができる。
【００２６】
図２を再び参照し、ＹＤＤＡ処理部３４が出力する一連のスパンデータは、スパンデータ分離部３５に供給される。スパンデータ分離部３５は、この一連のスパンデータに基づいて、メモリ読出しのためのメモリアドレスを計算しメモリ読出し部３７に供給する。また更にスパンデータ分離部３５は、一連のスパンデータをＸＤＤＡ処理部３６に供給することにより、ＸＤＤＡ処理部３６によるＸ方向デジタル変分処理（X-Direction Digital Differential Analysis：ＸＤＤＡ）を実行させる。
【００２７】
図７は、スパンデータ分離部３５の構成の一例を示す図である。図７において、スパンデータ分離部３５は、データ分離部３５−１及びアドレス計算部３５−２を含む。データ分離部３５−１は、ＹＤＤＡ処理部３４から供給された一連のスパンデータから、Ｘ座標及びＹ座標に関する座標データを分離し、分離した座標データをアドレス計算部３５−２に供給する。アドレス計算部３５−２は、供給された座標データに基づいて、一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを求める。この際、アドレス計算部３５−２は、ラスタ走査方向に沿った各画素を格納するメモリアドレスが連続メモリアドレスとなるように、メモリアドレスを計算する。またその際、一連のスパンデータのうちで連続する画素については、先頭メモリアドレスとアクセス長とを計算する。
【００２８】
図２を再び参照し、メモリ読出し部３７は、スパンデータ分離部３５から供給されたメモリアドレスをアクセスし、ＤＲＡＭチップ１１（図１参照）から画像データを読み出す。この際、同一のＹ座標を有するスパンの各画素については、纏めてメモリアクセスを行なうので、ページミスを発生することなく効率的なデータ読出しを実行することができる。メモリから読み出した画素データは、後述するようにＸＤＤＡ処理部３６により生成された各スパンの画素データと合成される。この際、例えばＺ値に基づいて隠線処理を行なったり、アルファ値に基づいてアルファブレンディング等を実行したりする。
【００２９】
図８は、三角形のスパンデータについての効率的なメモリアクセスを説明するための図である。図８において、三角形６１は７つのスパン６１−１乃至６１−７を含む。同様に、三角形６２は７つのスパン６２−１乃至６２−７を含む。また三角形６３は４つのスパン６３−１乃至６３−４を含み、三角形６４は３つのスパン６４−１乃至６４−３を含む。従来の通常のグラフィクス描画装置では、各三角形毎に描画処理が実行される。例えば、７つのスパン６１−１乃至６１−７を順に描画して三角形６１を完成させてから、次の三角形６２にうつり、三角形６２の７つのスパン６２−１乃至６２−７を順に描画する。このようにして、順番に各三角形６１乃至６４を描画していく。従って、描画データをメモリから読み出す場合、また描画データをメモリに書き込む場合、各三角形毎のメモリアクセスとなる。具体的には、三角形６１の７つのスパン６１−１乃至６１−７の画素データに対して順にメモリアクセスしてから、次の三角形６２にうつり、三角形６２の７つのスパン６２−１乃至６２−７の画素データに対して順にメモリアクセスする。この際、各スパンは異なるＹ座標を有するので、次のスパンに移動する度にメモリアクセス時にページミスが発生する。
【００３０】
図９は、メモリアクセス時のページミスの発生する様子を示す図である。（ａ）に示す従来例のメモリアクセスの場合には、例えば三角形６１のスパン６１−１に対するバーストアクセス７１が実行されると、次には三角形６１のスパン６１−２に対するバーストアクセス７１が実行される。その後、三角形６１のスパン６１−３に対するバーストアクセス７３、及び三角形６１のスパン６１−４に対するバーストアクセス７４が、順次実行されることになる。この場合、図９（ａ）に示すようにあるバーストアクセスを実行した後に次のバーストアクセスを実行しようとすると、Ｙ座標が移動することによりメモリのワードアドレスが移動してページミスが発生する。従って、各バーストアクセス７１乃至７４の間は、ページミスに起因する新たなデータ読出し処理が必要になる。
【００３１】
図２に示すグラフィクス・エンジン１６においては、複数個の三角形のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして、これら一連のスパンデータを１つの纏まりとして描画処理を実行する。即ち、図８の例においてまず最初に、４つの三角形６１、６２、６３、６４のそれぞれの最上部のスパン６１−１、６２−１、６３−１、６４−１を順に描画する。次に、４つの三角形６１、６２、６３、６４のそれぞれの２番目のスパン６１−２、６２−２、６３−２、６４−２を順に描画する。このようにして、同一のＹ座標のスパンを纏めて描画して、順次次のＹ座標に移動していく。従って、描画データをメモリから読み出す場合、また描画データをメモリに書き込む場合、各Ｙ座標毎のメモリアクセスとなる。同一Ｙ座標の一連のスパンについてメモリアクセスする際には、あるスパンから次のスパンに移動してもページミスが発生しない。
【００３２】
図９（ｂ）に示すグラフィクス・エンジン１６によるメモリアクセスの場合には、例えば三角形６１のスパン６１−１に対するバーストアクセス８１が実行されると、次には三角形６２のスパン６２−１に対するバーストアクセス８２が実行される。その後、三角形６３のスパン６３−１に対するバーストアクセス８３、及び三角形６４のスパン６４−１に対するバーストアクセス８４が、順次実行されることになる。この場合、図９（ｂ）に示すようにあるバーストアクセスを実行した後に次のバーストアクセスを実行する際、Ｙ座標が移動せずに同一のワードアドレスへのアクセスが続くために、ページミスが発生しない。従って、各バーストアクセス８１乃至８４の間は、ページミスに起因する新たなデータ読出し処理が実行されることなく、効率的で高速なメモリアクセスが可能となる。
【００３３】
なお上記説明において、一連のスパンデータについてのメモリアクセスは、図８の例において左から右に順番に実行されていた。即ち例えば、スパン６１−１、６２−１、６３−１、及び６４−１の順番にメモリアクセスされていた。しかしこの順番は、任意であってよい。例えば、スパン６１−２、６２−１、６３−４、及び６４−３等の順番にメモリアクセスしてもよい。この場合であっても、同一のＹ座標（同一のワードアドレス）に対して連続にメモリアクセスされるので、ページミスが発生することなく、効率的で高速なメモリアクセスが可能となる。また上記説明において、各スパンについてのメモリアクセスは、各スパン毎のバーストアクセスとして実行されていた。しかし複数の連続するスパンを纏めて、１回のバーストアクセスにより読み出してもよい。即ち例えば、スパン６１−１、６２−１、６３−１の３つのスパンはＸ方向に連続しているので、これら３つのスパンに対して、開始アドレスとバースト長とを指定することにより、１回のバーストアクセスでデータの読出し又は書込みを実行するようにしてよい。なおここでバーストアクセスとは、メモリに対して開始アドレスとバースト長とを指定することによりメモリ内部で個々のアドレスを自動的に生成して、開始アドレスから順にバースト長で指定される個数のデータを読出し又は書込みできるアクセス方式である。
【００３４】
図２を再び参照し、メモリ読出し部３７が読み出した一連のスパンデータに対応する画素データは、ピクセル処理実行部３８に供給される。またＸＤＤＡ処理部３６は、スパンデータ分離部３５からの一連のスパンデータに含まれる各々のスパンのデータに基づいて、各スパンに対するＸ方向デジタル変分処理（X-Direction Digital Differential Analysis：ＸＤＤＡ）を実行する。即ちＸＤＤＡ処理部３６は、あるスパンの開始点における画像パラメータ初期値に対して、各画像パラメータのＸ方向に沿った傾き値（変化分）を順次加算することにより、スパン上の各画素位置における各画素パラメータの値を生成する。
【００３５】
図１０は、ＹＤＤＡ処理及びＸＤＤＡ処理について説明するための図である。図１０に示されるように三角形９１の最上部の頂点９２において、各画像パラメータの初期値が与えられている。左側のエッジに沿った各画像パラメータのＹ方向に対する傾き値（変化分）を頂点９２での初期値に順次加算していくことにより、左側のエッジに沿った各点での各画像パラメータの値を求めることができる。また同様に、右側のエッジに沿った各画像パラメータのＹ方向に対する傾き値（変化分）を頂点９２での初期値に順次加算していくことにより、右側のエッジに沿った各点での各画像パラメータの値を求めることができる。このエッジに沿った値を求める処理がＹＤＤＡ処理である。
【００３６】
ＹＤＤＡ処理により、着目スパンの開始点９３での各画像パラメータの初期値と、その着目スパンの終了点９４での各画像パラメータの終了値とが分かる。各画像パラメータの終了値と開始値とに基づいて、当該スパン上のＸ方向（ラスタ走査方向）に対する各画像パラメータの傾き値（変化分）を求めることができる。スパンに沿った各画像パラメータのＸ方向に対する傾き値（変化分）を開始点９３での初期値に順次加算していくことにより、スパンに沿った各点での各画像パラメータの値を求めることができる。このスパンに沿った値を求める処理がＸＤＤＡ処理である。
【００３７】
図２のＸＤＤＡ処理部３６は、スパンデータ分離部３５からの一連のスパンデータに含まれる各々のスパンに対して、上記のＸＤＤＡ処理を実行する。これにより、一連のスパンデータに含まれる各々のスパン上の各画素の値（ＲＤＧ各色の輝度値、テクスチャ座標値、Ｚ値、アルファ値等）が求められる。ピクセル処理実行部３８は、一連のスパンデータに含まれる各々のスパン上の各画素に対して、メモリ読出し部３７から供給される読出しデータとＸＤＤＡ処理部３６が生成したデータとを合成して、新たな画素データを生成する。例えば、Ｚ値に基づいて隠線処理を行なったり、アルファ値に基づいてアルファブレンディング等を実行したりする。
【００３８】
ピクセル処理実行部３８は、一連のスパンデータに含まれる各々のスパン上の各画素に対して新たに生成した画素データを、新たな描画データとしてメモリ書込み部３９に供給する。メモリ書込み部３９は、新たな描画データを、メモリコントローラ１５を介してＤＲＡＭチップ１１（図１参照）に書き込む。書き込むアドレスは、スパンデータ分離部３５のアドレス計算部３５−２が生成したアドレスであり、メモリ読出し部３７が読み出した元の画素データを新たな画素データで上書きすることになる。このメモリ書込み部３９による書込みアクセスにおいても、図８及び図９を参照して説明したように、同一のＹ座標（同一のワードアドレス）に対するアクセスが連続するので、効率的で高速なメモリアクセスを実現することができる。
【００３９】
なお、グラフィックス情報を演算して表示装置へ表示する場合に、演算の速度よりもメモリアクセスの速度が表示速度を制限していることがある。すなわち、メモリアクセスの速度が表示速度に与える影響が大きい場合がある。このような場合に、上述したようにメモリアクセス効率が高めることは、表示速度の向上に効果的に作用する。
【００４０】
なお上記の説明において、メモリはＤＲＡＭであるとして説明したが、メモリはＤＲＡＭに限定されるものではない。即ち、連続したアドレスに対しては高速なアクセスが可能であるが離れたアドレスに対してはアクセス速度が低下するようなメモリであれば、図２の構成を採用することにより、メモリアクセスを効率化するという効果が得られる。そのようなメモリであれば、ＳＲＡＭであっても、不揮発性メモリであってもよい。またメモリがキャッシュシステムにより階層化されている場合には、図２の構成を採用することにより、キャッシュミスが発生することのない効率的なメモリアクセスを実現することができる。
【００４１】
また上記の説明において、描画対象のデータは三角形の集合として表現されものとしたが、描画の単位は三角形でなく任意のポリゴン形状であってよい。即ち、図２のグラフィクス・エンジン１６において、複数個の任意のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとしても、上記説明した構成例と同様の効果が得られることは明らかである。
【００４２】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００４３】
以下に、本発明の諸態様を付記としてまとめる。
（付記１）
描画領域における第１描画位置を含む第１図形データを取り込み、前記描画領域において第１描画位置とは異なる第２描画位置を含む第２図形データを、前記第１図形データよりも後に取り込むデータ取得部と、
前記第１描画位置及び前記第２描画位置の前記描画領域における第１方向に対する位置を検出する検出部と、
前記第１方向において、前記第１描画位置及び前記第２描画位置が等しい場合に、前記第１描画位置の描画情報及び前記第２描画位置の描画情報をメモリに連続して格納させる制御部と
を有することを特徴とする半導体装置。
（付記２）
複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータが与えられ、前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力するスパン選択部と、
前記スパン選択部が出力する前記一連のスパンデータの各スパンに対して各画素のデータを生成する画素データ生成部と、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを纏めてアクセスするメモリアクセス部と
を含むことを特徴とする半導体装置。
（付記３）
前記複数のポリゴン形状の各々について、あるスパンのデータに対してＹ方向への変化分を加算することにより次のスパンのデータを生成するＹ方向デジタル変分処理部を更に含み、前記スパン選択部は、前記Ｙ方向デジタル変分処理部が生成するスパンのデータを用いることにより、複数の異なるＹ座標値に対して順次前記一連のスパンデータを出力することを特徴とする付記２記載のグラフィクス描画装置。
（付記４）
前記複数個のポリゴン形状のデータにおいて各ポリゴン形状のデータはＹ座標値を含み、前記Ｙ座標値の大きさが順番に並ぶように前記複数個のポリゴン形状のデータを並べ替えるソート処理部を更に含み、前記スパン選択部は前記ソート処理部により並べ替えられた前記複数個のポリゴン形状のデータに基づいて前記一連のスパンデータを出力することを特徴とする付記２又は３記載の半導体装置。
（付記５）
前記メモリアクセス部は、前記スパンに沿った方向に並ぶ各画素を連続メモリアドレスに格納することを特徴とする付記２乃至４いずれか一項記載の半導体装置。
（付記６）
前記メモリアクセス部は、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータをメモリから纏めて読み出すメモリ読出し部と、
前記画素データ生成部が生成する各画素のデータに応じた描画データをメモリに纏めて書き込むメモリ書込み部と
を含むことを特徴とする付記２乃至５いずれか一項記載の半導体装置。
（付記７）
前記スパン選択部が出力する前記一連のスパンデータに基づいて先頭メモリアドレスとアクセス長とを計算するアドレス計算部を更に含み、前記メモリアクセス部は、前記先頭メモリアドレスから前記アクセス長に対応する複数のメモリアドレスを纏めてアクセスすることを特徴とする付記２記載の半導体装置。
（付記８）
メモリコントローラと、
前記メモリコントローラを介して描画データを外部メモリに書き込む制御装置と、
前記メモリコントローラを介して前記描画データを前記外部メモリから読み込み、ディスプレイ装置に前記描画データを表示するための制御をする表示制御装置と
を含み、前記制御装置は、
複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータが与えられ、前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして出力するスパン選択部と、
前記スパン選択部が出力する前記一連のスパンデータの各スパンに対して各画素のデータを生成する画素データ生成部と、
前記スパン選択部が出力する前記一連のスパンデータに対応する各画素のデータを格納する前記外部メモリのアドレスを纏めてアクセスするメモリアクセス部と
を含むことを特徴とするグラフィクスコントローラ。
（付記９）
前記複数個のポリゴン形状のデータにおいて各ポリゴン形状のデータはＹ座標値を含み、前記Ｙ座標値の大きさが順番に並ぶように前記複数個のポリゴン形状のデータを並べ替えるソート処理部を更に含み、前記スパン選択部は前記ソート処理部により並べ替えられた前記複数個のポリゴン形状のデータに基づいて前記一連のスパンデータを出力することを特徴とする付記８記載のグラフィクスコントローラ。
（付記１０）
ａ）複数のＹ座標値にそれぞれ対応する複数のスパンのデータを各々が含む複数個のポリゴン形状のデータを受け取り、
ｂ）前記複数個のポリゴン形状のスパンのデータのうちで同一のＹ座標値を有するスパンのデータを纏めて一連のスパンデータとして選択し、
ｃ）前記選択された一連のスパンデータの各スパンに対して各画素のデータを生成し、
ｄ）前記選択された一連のスパンデータに対応する各画素のデータを格納するメモリアドレスを纏めてアクセスする
各段階を含むことを特徴とする情報処理方法。
（付記１１）
前記複数個のポリゴン形状のデータにおいて各ポリゴン形状のデータはＹ座標値を含み、前記Ｙ座標値の大きさが順番に並ぶように前記複数個のポリゴン形状のデータを並べ替える段階ｅ）を更に含み、前記段階ｂ）は、前記段階ｅ）により並べ替えられた前記複数個のポリゴン形状のデータに基づいて前記一連のスパンデータを選択することを特徴とする付記１０記載の情報処理方法。
【図面の簡単な説明】
【００４４】
【図１】グラフィクス描画システムの構成の一例を示す図である。
【図２】グラフィクス描画装置であるグラフィクス・エンジンの構成の一例を示す図である。
【図３】トライアングル・セットアップ部が生成する三角形データの一例を示す図である。
【図４】トライアングル・ソータ部及びトライアングル・データ・バッファの構成の一例を示す図である。
【図５】ＹＤＤＡ処理部及びトライアングル・データ・バッファの構成の一例を示す図である。
【図６】スパンデータの一例を示す図である。
【図７】スパンデータ分離部の構成の一例を示す図である。
【図８】三角形のスパンデータについての効率的なメモリアクセスを説明するための図である。
【図９】メモリアクセス時のページミスの発生する様子を示す図である。
【図１０】ＹＤＤＡ処理及びＸＤＤＡ処理について説明するための図である。
【符号の説明】
【００４５】
１０  グラフィクスコントローラ
１１  ＤＲＡＭチップ
１２  ディスプレイ装置
１５  メモリコントローラ
１６  グラフィクス・エンジン
１７  ディスプレイ・エンジン
２１  ジオメトリ処理部
２２  ラスタ処理部
３１  トライアングル・セットアップ部
３２  トライアングル・ソータ部
３３  トライアングル・データ・バッファ
３４  ＹＤＤＡ処理部
３５  スパンデータ分離部
３６  ＸＤＤＡ処理部
３７  メモリ読出し部
３８  ピクセル処理実行部
３９  メモリ書込み部
【図１】
2010086008.tif 000003
【図２】
2010086008.tif 000004
【図３】
2010086008.tif 000005
【図４】
2010086008.tif 000006
【図５】
2010086008.tif 000007
【図６】
2010086008.tif 000008
【図７】
2010086008.tif 000009
【図８】
2010086008.tif 000010
【図９】
2010086008.tif 000011
【図１０】
2010086008.tif 000012