(57)【要約】【課題】  グラフィクスハードウェアの描画処理を高速化する。【解決手段】  ピクセルデータを用いて描画処理を行うグラフィクスエンジン１０と、グラフィクスエンジン１０に供給するピクセルデータを格納し、それらのピクセルデータのバースト転送が可能なフレームバッファ１４と、フレームバッファ１４との間で、フレームバッファ１４の記憶領域をタイル状に分割した寸法変更可能なタイル領域の単位でピクセルデータの入出力を行い、取得したピクセルデータをグラフィクスエンジン１０に供給するピクセルキャッシュ１１と、ピクセルキャッシュ１１がフレームバッファ１４にアクセスする際に出力するアドレスをフレームバッファ１４の物理アドレスに変換して、アクセスを仲介するメモリ制御装置１２を備え、メモリ制御装置１２は、タイル領域内のピクセルデータがフレームバッファ１４の同一ページ領域の範囲内に収まるようにアドレス変換する。【選択図】        図１
2006209651.tif 000002
【特許請求の範囲】
【請求項１】
ピクセルデータを用いて描画処理を行うグラフィクスエンジンと、
上記グラフィクスエンジンに供給するピクセルデータを格納し、それらのピクセルデータのバースト転送が可能な描画用メモリと、
上記描画用メモリとの間で、上記描画用メモリの記憶領域をタイル状に分割した寸法変更可能なタイル領域の単位でピクセルデータの入出力を行い、取得したピクセルデータを上記グラフィクスエンジンに供給するピクセルキャッシュと、
上記ピクセルキャッシュが上記描画用メモリにアクセスする際に出力するアドレスを上記描画用メモリの物理アドレスに変換して、アクセスを仲介するメモリ制御装置を備え、
上記メモリ制御装置は、上記タイル領域内のピクセルデータが上記描画用メモリの同一ページ領域の範囲内に収まるようにアドレス変換することを特徴とするグラフィクスハードウェア。
【請求項２】
ピクセルキャッシュは、あるタイル領域のピクセルデータを、上記ピクセルキャッシュ上の複数の記憶領域に重複して格納することを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項３】
ピクセルキャッシュは、タイル領域の寸法を、描画される図形の形状に基づいて決定することを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項４】
ピクセルキャッシュは、タイル領域の寸法を、上記タイル領域内の未使用記憶領域が最小となるように決定することを特徴とする請求項３記載のグラフィクスハードウェア。
【請求項５】
ピクセルキャッシュは、あるタイル領域のピクセルデータを取得した際に、隣接するタイル領域のピクセルデータも取得しておくことを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項６】
ピクセルキャッシュは、グラフィクスエンジンがアクセスしようとしているピクセルデータが上記ピクセルキャッシュに保持されておらず、上記描画用メモリとの間でピクセルデータを入れ換える際、
上記描画用メモリから新しいピクセルデータを取得した後に、上記描画用メモリへピクセルデータを退避することを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項７】
メモリ制御装置は、描画用メモリのページを、複数のタイル領域を含むページタイル領域に対応させるようにアドレス変換を行うことを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項８】
ピクセルキャッシュは、タイル領域の寸法を、ページタイル領域の寸法の約数になるように決定することを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項９】
メモリ制御装置は、タイル領域の構成最小領域であるブロックが、描画用メモリの一つのバンクの領域から構成され、隣り合うブロックは異なるバンクから構成されるようにアドレス変換を行うことを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項１０】
メモリ制御装置は、タイル領域の構成最小領域であるブロックの寸法を、描画用メモリのバースト転送データ量に最適化されるようにアドレス変換を行うことを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項１１】
グラフィクスエンジンは、同一タイル領域内のピクセルデータに連続してアクセスすることを特徴とする請求項１記載のグラフィクスハードウェア。
【請求項１２】
グラフィクスエンジンとピクセルキャッシュの間にバッファメモリを備え、上記グラフィクスエンジンから出力されたピクセルデータは、上記バッファメモリにおいて、タイル領域毎の順序に並び替えられることを特徴とする請求項１記載のグラフィクスハードウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、グラフィクスハードウェアに関するものである。
【背景技術】
【０００２】
描画処理を行うグラフィクスハードウェアにおいて、グラフィクスエンジンから描画用メモリ（以下、フレームバッファと記す。）へのピクセルデータの入出力が低速である場合、それが描画高速化のボトルネックになる。
ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のようにバースト転送が可能なメモリでは、バースト転送を用いて連続したデータを入出力することができる。１つのデータを入出力する場合も連続したデータをバースト転送にて入出力する場合も、データ転送までの待ち時間は同じであるため、バースト転送を用いてデータを連続して入出力するほうが効率的である。
そのため、グラフィクスハードウェアのフレームバッファとしてバースト転送可能なメモリを用いる場合があるが、その場合、グラフィクスハードウェア内部にピクセルデータ用のメモリ装置（以下、ピクセルキャッシュと記す。）を搭載するシステムが実現されている。ピクセルキャッシュ内には、フレームバッファとの間で連続して入出力するピクセルデータが数個保存される。グラフィクスエンジンは、ピクセルキャッシュとの間でピクセルデータの入出力を行い、ピクセルキャッシュはフレームバッファとの間でバースト転送によりピクセルデータの入出力を行う。
グラフィクスハードウェアにピクセルキャッシュを搭載した場合、グラフィクスエンジンが逐次的にフレームバッファへピクセルデータを入出力する場合に比べメモリ帯域幅が改善される。
しかし、ピクセルキャッシュがフレームバッファとの間でバースト転送によってピクセルデータの入出力を行う場合、グラフィクスハードウェアの描画処理のためには不要なピクセルデータが転送される場合が少なからず発生し、データ転送処理に無駄が生じるという問題がある。
そこで、例えば、特許文献１に開示された技術のように、ピクセルキャッシュとフレームバッファの間での無駄なピクセルデータの入出力を減少させるシステムが提案されている。具体的には、スクリーンをタイル状に分割した領域（タイル領域）の単位で、ピクセルキャッシュとフレームバッファはピクセルデータの入出力を行う。
一般に、グラフィクスエンジンがアクセスするピクセルデータには空間的局所性があるため、タイル領域の一部にアクセスがあった場合、同一タイル内へのアクセスが近いうちに発生する可能性が高い。そのため、特許文献１に開示された方法を用いれば、無駄なピクセルデータの入出力を減少させることが可能となる。
【０００３】
【特許文献１】特開２００１−２４９８４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された方法では、フレームバッファ左上からスキャンライン（フレームバッファ横方向連続アクセス）に沿って、ピクセルデータのタイル領域を確保している。このため、１タイル領域が異なるページにまたがる場合には、そのタイル領域のピクセルデータ入出力時にフレームバッファの非連続空間へのアクセスが発生し、ピクセルキャッシュとフレームバッファの間でのデータ入出力に遅延が生じることがある。
また、特許文献１に記載された方法では、タイル領域寸法を動的に変更可能としているが、この変更はグラフィクスエンジンの種類に基づいて行われる。しかし、一種類のグラフィクスエンジンが描画する図形がどれも同じ特徴を持っているとは限らない。よって、グラフィクスエンジンの種類だけでなく描画される図形からタイル領域の寸法を決定するほうがよい。
【０００５】
この発明は上記のような課題を解決するためになされたもので、グラフィクスハードウェアの描画処理を高速化することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るグラフィクスハードウェアは、ピクセルデータを用いて描画処理を行うグラフィクスエンジンと、グラフィクスエンジンに供給するピクセルデータを格納し、それらのピクセルデータのバースト転送が可能な描画用メモリと、描画用メモリとの間で、描画用メモリの記憶領域をタイル状に分割した寸法変更可能なタイル領域の単位でピクセルデータの入出力を行い、取得したピクセルデータをグラフィクスエンジンに供給するピクセルキャッシュと、ピクセルキャッシュが描画用メモリにアクセスする際に出力するアドレスを描画用メモリの物理アドレスに変換して、アクセスを仲介するメモリ制御装置を備え、メモリ制御装置は、タイル領域内のピクセルデータが描画用メモリの同一ページ領域の範囲内に収まるようにアドレス変換するものである。
【発明の効果】
【０００７】
この発明によれば、描画用メモリのタイル領域の寸法が変更されても、メモリ制御装置のアドレス変換機能により、描画用メモリの同一ページ領域の範囲内に１つのタイル領域のピクセルデータが格納されるようにしたので、描画用メモリへのアクセスの遅延が避けられ、グラフィクスハードウェアの描画処理を高速化することができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施の形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１による、グラフィクスハードウェア１００の構成を示すブロック図である。図に示すように、グラフィクスハードウェア１００は、グラフィクスエンジン１０、ピクセルキャッシュ１１、メモリ制御装置１２、メモリ（描画用メモリ）１３、表示装置１５、ＣＰＵ１６を備えている。
グラフィクスエンジン１０は、図形イメージのスクリーンへの出力やピクセルデータの入出力等の描画処理を行うエンジンであり、例えば、二次元の図形イメージを生成する二次元グラフィクスエンジンや三次元のイメージを生成する三次元グラフィクスエンジンやＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などの動画を生成するＭＰＥＧエンジンなどがある。なお、グラフィクスエンジン１０は複数搭載してもよい。
ピクセルキャッシュ１１は、例えば、ＳＲＡＭ等の高速なメモリである。
メモリ１３はバースト転送が可能なＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭ等のＤＲＡＭメモリであり、フレームバッファ（描画用メモリ）１４を含んでいる。
【０００９】
次に、動作について説明する。
まず、グラフィクスハードウェア１００の動作の概要について説明する。
メモリ１３の一部もしくは全領域は、フレームバッファ１４として利用され、フレームバッファ１４には、グラフィクスエンジン１０が描画処理に用いる全てのピクセルデータが保存されている。フレームバッファ１４の記憶領域は複数のタイル領域に分割されており、ピクセルデータは各タイル領域に格納されている。このタイル領域は、動的に寸法を変更することができる。
フレームバッファ１４とグラフィクスエンジン１０の間でのピクセルデータの入出力は、ピクセルキャッシュ１１を介して行われる。ピクセルキャッシュ１１はピクセルデータを一時保存するためのメモリであり、メモリ制御装置１２を経由してバースト転送によりフレームバッファ１４との間でピクセルデータの入出力を行う。
メモリ制御装置１２には、ＣＲＴや液晶ディスプレイなどの表示装置１５が接続されており、メモリ制御装置１２は、フレームバッファ１４のピクセルデータを読み出して表示装置１５に表示する機能を有する。また、メモリ制御装置１２にはＣＰＵ１６のようなメモリ１３にアクセス可能な装置が接続されている。メモリ制御装置１２に接続される装置がメモリ１３にアクセスする際、メモリ制御装置１２は、それらの装置から出力されるアドレスをメモリ１３の物理アドレスに変換するアドレス変換機能を有する。メモリ制御装置１２の機能により、メモリ１３はバースト転送によるデータの高速入出力が可能である。
【００１０】
次に、ピクセルキャッシュ１１とフレームバッファ１４の間でのデータ入出力動作について説明する。
図２は、ピクセルキャッシュ１１の構成を示す図である。ピクセルキャッシュ１１は、フレームバッファ１４のタイル領域に対応する複数のエントリを有する。各エントリは、制御フラグ２１、タイル領域の寸法を表すタイルサイズ２２、フレームバッファ１４のタイル領域内の先頭ピクセルのスクリーン位置（Ｘ−Ｙ座標）を表すタグアドレス２３、タイル領域内のピクセルデータ２４から構成される。制御フラグ２１は、ピクセルデータが変更されたことを表すダーティフラグとキャッシュエントリが有効であることを示すイネーブルフラグから構成される。ダーティフラグは１エントリ中のピクセルデータ２４を分割したブロックごとに管理するフラグである。保存できるピクセルデータ２４の量はどのエントリも同じであるが、タイルサイズ２２はエントリ間で異なっていてもよい。
【００１１】
図３は、ピクセルキャッシュ１１の各エントリのピクセルデータ２４とフレームバッファ１４の対応を示す図である。あるフレームバッファ１４のタイル領域に対応するエントリのピクセルデータ２４は、フレームバッファ１４上でタグアドレス２３を領域の左上とし、寸法がタイルサイズ２２の領域内に含まれるピクセルデータである。
また、タイル領域内のピクセルデータは、例えば図３に示すエントリ３に対応したタイル領域３３と、エントリＸに対応したタイル領域３４のように重複して格納されていても良い。
【００１２】
ピクセルキャッシュ１１に保存できるピクセルデータ２４の量には限界があるため、グラフィクスエンジン１０の処理において不要になったピクセルデータはピクセルキャッシュ１１からフレームバッファ１４へ転送し、新たに必要になったピクセルデータをフレームバッファ１４からピクセルキャッシュ１１へ転送する。この時、ピクセルデータは、タイル領域単位で入出力される。
【００１３】
ここで、フレームバッファ１４のタイル領域の寸法は変更可能であり、寸法を変更することによってピクセルキャッシュ１１とフレームバッファ１４の間のピクセルデータの入出力回数を減らすことが可能である。
図４は、フレームバッファ１４のタイル領域の分割例を示す図である。図中（ａ）に示すようにフレームバッファ１４を複数のタイル領域４１に分割した場合、図に示すような三角形を書くためには、網がけ部分のタイル領域へのアクセスが必要となり、ピクセルキャッシュ１１からフレームバッファ１４へ合計６回の書き込みアクセスが必要である。これは、グラフィクスエンジン１０がピクセルキャッシュ１１に対して三角形のピクセルデータを出力すると、ピクセルキャッシュ１１はタイル領域単位でフレームバッファ１４とピクセルデータの入出力を行うので、描画する図形が占めるタイル領域の数だけ、ピクセルキャッシュ１１とフレームバッファ１４の間でデータ入出力が発生するからである。
一方、図中（ｂ）に示すようにフレームバッファ１４を複数のタイル領域４２に分割した場合、同じ三角形を書くために必要なピクセルキャッシュ１１からフレームバッファ１４への書き込みアクセスの回数は３回でよい。なお、ａ、ｂどちらも１タイル領域内のピクセル数は同じである。描画する図形が矩形塗りつぶしの場合は、逆に図４の（ａ）のように分割した方がアクセス回数が減る場合も考えられる。
このように、描画する図形によって、フレームバッファ１４のタイル領域の寸法を変化させると、ピクセルキャッシュ１１とフレームバッファ１４の間のデータ入出力回数を減らすことができるので、描画を高速化できる。
【００１４】
ここで、タイル領域の寸法を変化させる方法について説明する。タイル領域の寸法変更方法の例としては以下の３つを上げることができる。
寸法変更方法１：グラフィクスエンジン１０がタイル寸法を指定する。
寸法変更方法２：グラフィクスハードウェア１００を制御するプログラムがタイル寸法を指定する。
寸法変更方法３：ピクセルキャッシュ１１がタイル寸法を決定する。
【００１５】
寸法変更方法１では、グラフィクスエンジン１０毎に予めタイル寸法を決めておき、アクセスがあったグラフィクスエンジン１０の種類に基づいてタイル寸法を決定する。
寸法変更方法２では、グラフィクスエンジン１０を制御する描画プログラム側でタイル寸法を指定する。描画プログラムは描画する図形を把握しているので、ピクセルキャッシュ１１のタイル寸法をその図形に適したタイル寸法に変更する。
寸法変更方法３では、ピクセルキャッシュ１１が、グラフィクスエンジン１０がアクセスするピクセルに基づいてタイル寸法を決定する。
【００１６】
以下、ピクセルキャッシュ１１がタイル寸法を決定する方法（寸法変更方法３）について説明する。上述したように、ピクセルキャッシュ１１は制御フラグ２１を有しており、その中にピクセルデータが変更されたことを表すダーティフラグがある。ピクセルキャッシュ１１は、ダーティフラグに基づいてタイル領域のうちどのピクセルがアクセスされたかを知ることができる。また同時に、アクセスされなかった未使用領域も検出し、その未使用領域をタイルの寸法決定に用いることができる。
ピクセルキャッシュ１１は、ピクセルキャッシュ１１のエントリ中、直近にアクセスされたエントリのダーティフラグに基づいてタイル寸法を決定する。具体的には、変化しうるタイル領域の寸法を予め決めておき、その中から未使用部分が一番少なくなる寸法を選択する。例えば、直近でアクセスされたピクセルキャッシュ１１のエントリのピクセルデータ２４が、図５に示す８×８ピクセルのタイル領域５０に対応している場合、タイル領域の左上を固定して、タイル領域寸法を変化させた時に未使用部分が一番少なくなるようなタイル領域寸法を決める。図５中のタイル領域５１は未使用部分を含むが、タイル領域５２は未使用部分がまったくないため、タイル領域寸法をタイル領域５２の寸法に変更する。なお、この例ではタイル領域の左上を固定しているが、右下や中心等の１ピクセルを固定してもよい。また、固定するピクセルは、未使用部分が最小になるように選択してもよい。
また、タイル領域の寸法と未使用部分の変更履歴を保存しておき、タイル領域の変更後、最も未使用部分が少なくなった組み合わせを選択するようにしてもよい。
【００１７】
また、未使用部分を検出してタイル領域の寸法を変更する際、隣接タイル領域の先読み（プリフェッチ）を行うことも可能である。例えば、図６に示すように、タイル領域６００の下半分が未使用である場合、上、右、左のタイル領域６０２，６０３，６０４が次にアクセスされる可能性が高い。アクセスされるであろうタイル領域をピクセルキャッシュ１１に先読みすれば、描画性能向上に効果的である。
【００１８】
図７は、実施の形態１による、ピクセルキャッシュ１１の動作のフローチャートである。
まず、ステップＳＴ６１では、グラフィクスエンジン１０からアクセスするピクセルのスクリーン位置を表すアドレスを取得する。
ステップＳＴ６２では、取得したアドレスに対応するピクセルがピクセルキャッシュ１１内に保存されたタイル領域に格納されているかを判定する。
格納されていると判定された場合には、ステップＳＴ６３に進み、グラフィクスエンジン１０からのアクセスが読み出し要求か、もしくは書き込み要求かを判定する。読み出し要求の場合ステップＳＴ６４に進み、ピクセルキャッシュ１１内の対応するピクセルデータをグラフィクスエンジン１０に転送する。書き込み要求の場合はステップＳＴ６５に進み、グラフィクスエンジン１０から転送されるデータでピクセルキャッシュ１１内のピクセルデータ２４を更新する。この際、タイル領域が複数重なった部分のピクセルに書き込みアクセスがあった場合には、そのピクセルを含むタイル領域に対応するエントリ全てを更新する。例えば、図３に示すタイル領域３３とタイル領域３４の重なった部分に書き込みアクセスがあった場合には、エントリ３とエントリＸの両方のピクセルデータ２４を更新する。
【００１９】
ステップＳＴ６２でグラフィクスエンジン１０によりアクセスされるピクセルが、ピクセルキャッシュ１１内に保存したタイル領域にないと判定された場合には、ステップＳＴ６６に進む。
ステップＳＴ６６では、上述した寸法変更方法によってタイル領域寸法を決定する。次に、ステップＳＴ６７では、フレームバッファ１４に退避させるピクセルキャッシュ１１のエントリを決定する。すなわち、新たに必要となったタイル領域のピクセルデータをフレームバッファ１４から読み出してピクセルキャッシュ１１に格納するため、１エントリ分のデータをピクセルキャッシュ１１からフレームバッファ１４に退避する必要がある。そのため、退避するエントリを決定する。退避するエントリの決定方法としては、一般的なＬＲＵ（ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ）法を用いてアクセスされてからの経過時間が一番長いエントリを退避するようにしてもよいが、グラフィクスエンジン１０がアクセスしたピクセルから一番離れたタイル領域に対応するエントリを退避するエントリに選択しても良い。グラフィクスエンジン１０がアクセスするピクセルには空間的局所性があるため、離れているタイル領域を再びアクセスする確率は低い。そのため、一番離れたタイル領域に対応するエントリをフレームバッファ１４に退避させてしまってもよいと考えられる。
次に、ステップＳＴ６８では、新しく決定したタイル領域をフレームバッファ１４から読み出す。ここで、ステップＳＴ６７で決定したエントリをフレームバッファ１４へ退避する処理（ステップＳＴ６９）は保留し、置き換えられる新しいタイル領域のピクセルデータの読み出しを先に行う。これは、ステップＳＴ６８が終了するまでグラフィクスエンジン１０からピクセルキャッシュ１１へのアクセスは待ち状態となるため、この待ち時間が減少するように、ステップＳＴ６９を後回しにしてステップＳＴ６８を先に実施している。ステップＳＴ６８を終了した後、ステップＳＴ６３に進み、グラフィクスエンジン１０のアクセスに応答すると同時に、ステップＳＴ６９を実行し、退避させるエントリのフレームバッファ１４への書き戻しを実行する。なお、上述した先読み（プリフェッチ）を実施する場合にはステップＳＴ６７に進む。
【００２０】
次に、メモリ制御装置１２のアドレス変換方法について説明する。以下の説明では、バースト転送可能なメモリの代表であるＳＤＲＡＭを用いて説明する。
図８はＳＤＲＡＭの構成を示す図である。ＳＤＲＡＭはロウアドレスとカラムアドレスの２つによりアドレスを指定する。ロウアドレスが同一のメモリ領域はページと呼ばれる。連続するアクセスが同じページに対して行われていれば、高速ページモードを使用して、カラムアドレスを指定しながらＲｅａｄ／Ｗｒｉｔｅを高速に実行することができる。ページが異なる場合は、アクセス間に遅延が生じる。
【００２１】
図９は、ＳＤＲＡＭのページをフレームバッファ１４に対応させた例を示す図である。図に示すように、スクリーン左上からタイル状にページ（ページタイル領域）を割り当てている。各タイル領域は、このページタイル領域に含まれる。ここで、ピクセルキャッシュ１１のエントリに対応するタイル領域の寸法が変更されても、メモリ制御装置１２がピクセルデータのフレームバッファ１４上での物理アドレスを変換することにより、ページタイル領域内からはみ出さないようにする。なお、このためには、ピクセルキャッシュ１１のエントリに対応するタイル領域が取り得る寸法の公倍数をページタイル領域の寸法に設定するとよい。例えば、図１０に示すように、ピクセルキャッシュ１１のエントリに対応するタイル領域の縦寸法が１，４，８，１６のいずれかに変更可能な場合、ページタイル領域の縦寸法を１６の倍数に設定すれば、タイル領域がページタイル領域をまたぐことは少なくなる。これにより、タイル領域の寸法が変化しても同一ページ内に収めることが可能となり、高速ページモードでアクセスすることができる。
【００２２】
また、ＳＤＲＡＭは複数のバンクから構成され、各バンクは独立に制御することができる。これをマルチバンクオペレーションと呼ぶ。これを利用してピクセルキャッシュ１１とフレームバッファ１４の間のアクセスを高速化するようなアドレス変換を実現する方法について説明する。
図１１は、図９に示すページタイル領域の１つを表した図である。図に示すように、ページタイル領域をさらにタイル状に分割し、その領域をブロックと呼ぶことにする。各ブロックを互い違いになるようＳＤＲＡＭのバンクに対応させる。図中Ａ，Ｂ，Ｃ，Ｄの各ブロックは、図８に示すＳＤＲＡＭのバンクＡ，Ｂ，Ｃ，Ｄに対応している。
ブロックの寸法は、バースト転送Ｘ回でアクセスできる最大ピクセル数に基づいて決定する。１回のバースト転送で入出力するピクセル数をＹとした場合、ブロック内のピクセル数は（Ｘ＊Ｙ）にする。ブロック寸法はブロックに含めることができるピクセル数から任意に決定する。なお、図１１に示すブロック内の番号はカラムアドレスを（バーストレングス＊Ｘ）で割った値である。
図に示すように、ピクセルキャッシュ１１のエントリに対応するタイル領域は、複数のブロックで構成してもよいし、１ブロックのみで構成しても良い。そのため、タイル領域はブロックの寸法の倍数になる。例えば、図１２に示すタイル領域１２０のように、横２ブロック、縦４ブロックで構成してもよいし、タイル領域１２１のように横４ブロック、縦４ブロックで構成してもよい。タイル領域がＺ個のブロックで構成されている場合、Ｚ回のバースト転送でピクセルデータの転送を行うことができる。
マルチバンクオペレーションでは、異なるバンクに対してはコマンドを独立して発行することができる。例えばバンクＡに対してＲｅａｄを行っている場合、Ｒｅａｄデータ出力が完了する前にバンクＢに対して他のコマンドを発行することができる。従って、ブロックを互い違いにバンクにマッピングすることで、マルチバンクオペレーションが利用できる機会を増やすことが可能になる。
【００２３】
以上のように、実施の形態１によれば、ピクセルキャッシュ１１によってフレームバッファ１４のタイル領域の寸法が変更されても、メモリ制御装置１２のアドレス変換機能により、メモリ１３の同一ページ領域の範囲内に１つのタイル領域のピクセルデータが格納されるようにしたので、フレームバッファ１４へのアクセスの遅延が避けられ、グラフィクスハードウェア１００の描画処理を高速化することができる。
また、ピクセルキャッシュ１１は、描画する図形により未使用部分が最小となるタイル領域を決定し、そのタイル領域の単位でフレームバッファ１４とのデータ入出力を行うようにしたので、メモリ１３へのアクセスが最適化され、高速動作可能なグラフィクスハードウエア１００が実現できる。
また、メモリ制御装置１２は、各タイル領域が、メモリ１３の複数のバンクの領域から構成されるようにピクセルキャッシュ１１から出力されたアドレスを変換するようにしたので、マルチバンクオペレーションが利用できる機会を増やし、フレームバッファ１４へのアクセスを高速化することができる。
【００２４】
実施の形態２．
実施の形態２では、グラフィクスエンジン１０からピクセルキャッシュ１１へのアクセスを効率化する。
グラフィクスエンジン１０がピクセルデータを取得する場合、１つのタイル領域へ連続アクセスする方が効率がよい。ここでのタイル領域とは、ピクセルキャッシュ１１のエントリに対応するタイル領域もしくはメモリ１３のページに対応したページタイル領域のいずれかである。タイル領域をまたぐ領域にアクセスすると、ピクセルキャッシュ１１において、エントリ内のピクセルデータ２４の書き換えが発生する可能性がある。書き換えが発生すると、フレームバッファ１４へのアクセスが発生し、グラフィクスエンジン１０の待ち時間が発生してしまう。特に、メモリ１３のページに対応したページタイル領域をまたぐ場合は待ち時間が長くなる。
そこで、グラフィクスエンジン１０が１つのタイル領域ごとにピクセルを順番に出力するように最適化する。例えば、図１３に示すように、三角形を描画するため場合には、タイル領域ごとにピクセルデータを順番に生成する。
これにより、グラフィクスエンジン１０からのタイル領域をまたぐアクセスが減少し、処理を高速化することができる。
【００２５】
実施の形態３．
図１４は、実施の形態３によるグラフィクスハードウェア２００の構成を示すブロック図である。図に示すように、グラフィクスハードウェア２００は、グラフィクスエンジン１０とピクセルキャッシュ１１の間に、一時的にピクセルデータを保持できるバッファメモリ１７を備えている。
実施の形態３では、グラフィクスエンジン１０から出力されたピクセルデータを、バッファメモリ１７でタイル領域に合わせた順序に並び替えてからピクセルキャッシュ１１に出力する。
例えば、図１５に示すように、三角形を描画する場合には、グラフィクスエンジン１０が水平方向の順番でピクセルデータを出力しても、バッファメモリ１７を経由することによりタイル領域ごとの順番に並び替えられている。
このように、実施の形態３によれば、バッファメモリ１７においてピクセルデータの順序を並べ替えることにより、タイル領域をまたぐアクセスが減少し、処理を高速化することができる。
【図面の簡単な説明】
【００２６】
【図１】この発明の実施の形態１による、グラフィクスハードウェアの構成を示すブロック図である。
【図２】この発明の実施の形態１による、ピクセルキャッシュの構成を示した図である。
【図３】この発明の実施の形態１による、ピクセルキャッシュのピクセルデータとフレームバッファの対応を示す図である。
【図４】フレームバッファのタイル領域の分割例を示す図である。
【図５】この発明の実施の形態１による、タイル領域の寸法変更方法を説明する図である。
【図６】この発明の実施の形態１による、タイル領域の先読みを説明する図である。
【図７】この発明の実施の形態１による、ピクセルキャッシュの動作のフローチャートである。
【図８】ＳＤＲＡＭの構成を示す図である。
【図９】この発明の実施の形態１による、ＳＤＲＡＭのページをフレームバッファに対応させた例を示す図である。
【図１０】この発明の実施の形態１による、ページタイル領域の割当方法を説明する図である。
【図１１】この発明の実施の形態１による、１つのページタイル領域の構成を表した図である。
【図１２】この発明の実施の形態１による、ページタイル領域の構成例を示す図である。
【図１３】この発明の実施の形態２による、グラフィクスエンジンによる、ピクセルキャッシュのタイル領域へのアクセス方法の最適化について説明する図である。
【図１４】この発明の実施の形態３による、グラフィクスハードウェアの構成を示すブロック図である。
【図１５】この発明の実施の形態３による、グラフィクスエンジンによる、ピクセルキャッシュのタイル領域へのアクセス方法の最適化について説明する図である。
【符号の説明】
【００２７】
１０  グラフィクスエンジン、１１  ピクセルキャッシュ、１２  メモリ制御装置、１３  メモリ（描画用メモリ）、１４  フレームバッファ（描画用メモリ）、１５  表示装置、１６  ＣＰＵ、１７  バッファメモリ、２１  制御フラグ、２２  タイルサイズ、２３  タグアドレス、２４  ピクセルデータ、１００，２００  グラフィクスハードウェア。
【図１】
2006209651.tif 000003
【図２】
2006209651.tif 000004
【図３】
2006209651.tif 000005
【図４】
2006209651.tif 000006
【図５】
2006209651.tif 000007
【図６】
2006209651.tif 000008
【図７】
2006209651.tif 000009
【図８】
2006209651.tif 000010
【図９】
2006209651.tif 000011
【図１０】
2006209651.tif 000012
【図１１】
2006209651.tif 000013
【図１２】
2006209651.tif 000014
【図１３】
2006209651.tif 000015
【図１４】
2006209651.tif 000016
【図１５】
2006209651.tif 000017