(57)【特許請求の範囲】
【請求項１】
電子装置内のグラフィック処理を加速させるシステムにおいて、
表示装置上に表示すべきピクセルデータをラスタースキャン態様で格納するメモリ装置、
前記メモリ装置を制御し、前記メモリ装置と共にフレームバッファを構成しているメモリ制御器、
前記メモリ制御器に接続されている中央処理装置、
前記メモリ制御器にタイルキャッシュを介して接続されており且つラインドローイングを行うことが可能なグラフィックスエンジン、
を有しており、前記タイルキャッシュが複数行複数列に配列されているピクセルデータからなる少なくとも１個のタイルを包含しており、前記行の数及び前記列の数が前記グラフィックスエンジンによって行われるグラフィック操作に依存して前記グラフィックエンジンによって動的に変化される形態とされており、前記グラフィックスエンジンによってアクセスすべきピクセル位置が前記タイル内に存在している場合には、前記タイル内に格納されている対応するピクセルデータが前記グラフィックスエンジンへ供給されることを特徴とするシステム。
【請求項２】
請求項１において、前記複数行が前記タイルの高さに対応しており且つ前記複数列が前記タイルの幅に対応していることを特徴とするシステム。
【請求項３】
請求項１又は２において、前記複数行が４乃至８の範囲内であることを特徴とするシステム。
【請求項４】
請求項１乃至３の内のいずれか１項において、前記タイルキャッシュが少なくとも１個のＳＲＡＭから構成されていることを特徴とするシステム。
【請求項５】
請求項１乃至４の内のいずれか１項において、前記メモリ装置が、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、グラフィックスＤＲＡＭ、ダブルレートＳＤＲＡＭ、仮想チャンネルＤＲＡＭの内の少なくとも１個から構成されていることを特徴とするシステム。
【請求項６】
請求項１乃至５の内のいずれか１項において、前記メモリ制御器に接続されているＭＰＥＧデコーダを有していることを特徴とするシステム。
【請求項７】
請求項１乃至６の内のいずれか１項において、前記メモリ制御器に接続されているＣＲＴ制御器を有していることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大略、グラフィックス処理の性能を向上させる方法及び装置に関するものであって、更に詳細には、二次元グラフィックス処理を行う技術に関するものである。
【０００２】
【従来の技術】
ラインドローイング、ポリゴンレンダリング等の多くのグラフィック処理（操作）の場合に、速度性能に関する主要なボトルネックのうちの１つはフレームバッファの帯域幅である。フレームバッファの帯域幅は統合メモリアーキテクチャ（ＵＭＡ）を使用するシステム・オン・チップ（ＳＯＣ）装置の場合に更に重要である。ＵＭＡシステムにおいては、同一のメモリが、例えば中央処理装置（ＣＰＵ）、グラフィックスアクセリレータ、ＭＰＥＧデコーダ、ＣＲＴ制御器等の多くのエージェントとの間で共用される。同一のメモリを共用する幾つかのエージェントが存在しているので、該メモリに対する大きなアクセスレイテンシー即ち待ち時間が発生する。メモリに対する典型的なアクセス待ち時間は１５クロックサイクル又はそれ以上である。
【０００３】
シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）で実現されるメモリシステムは、あるエージェントが大量の逐次的なピクセルデータを要求する場合に、最初のピクセルデータ待ち時間は通常のＤＲＡＭメモリのものと同一であるかもしれないが、その後のピクセルデータはクロックサイクル毎に転送することが可能である（ピクセルデータがメモリの同一頁内に位置している場合）という利点を有している。然しながら、グラフィックスアクセリレータは、ピクセルデータのアクセスがそれ程シーケンシャルなものではないラインドローイングを含む殆どのドローイング操作に対して直接的にこの特徴を使用することが可能なものではない。
【０００４】
図１は従来のＵＭＡシステム１００を示しており、ＳＤＲＡＭ制御器１１０がＳＤＲＡＭメモリ１２０Ａと例えばＣＰＵ１３０、ＭＰＥＧデコーダ１４０、グラフィックスエンジン１５０、ＣＲＴ制御器１６０等の幾つかのエージェントとの間に電気的に結合されている。フレームバッファ１２５はＳＤＲＡＭ制御器１１０とＳＤＲＡＭメモリ１２０Ａの一部との結合を有している。ＵＭＡシステム１００によって暗示されるように、グラフィックスシステムにおいて動作している各エージェントはＳＤＲＡＭ制御器１１０を介してＳＤＲＡＭ１２０Ａと通信を行う。各エージェントはＳＤＲＡＭ制御器１１０と直接的に通信を行うので、各エージェントはそれがフレームバッファ１２５内のメモリコンフィギュレーション即ちメモリ形態に対して最適化されているか否かに拘わらずに、フレームバッファ１２５によって画定されるメモリコンフィギュレーション（形態）で動作せねばならない。
【０００５】
理解すべきことであるが、フレームバッファ１２５はビジュアルディスプレイ用のピクセルデータを格納するためのメモリである。ビジュアルディスプレイ上の画像を操作するために、ピクセルデータは、例えば、ＣＰＵ１３０によってフレームバッファ１２５へ書込み、且つビジュアルディスプレイ上でそのピクセルデータを表示するためにＣＲＴ制御器１６０によって読取ることが可能である。例えば、ビジュアルディスプレイを完全に白色とさせるためには、フレームバッファ１２５内の各メモリ要素は白色に対応するピクセルデータを書込むことが可能である。又、三角形又は四角形等のグラフィック要素をドローイング即ち描画すべき場合には、グラフィックスエンジン１５０がフレームバッファ１２５に対してピクセルデータを書込んで異なるグラフィック要素を作成又は取扱うことが可能である。
【０００６】
ウインドウズタイプのプログラムにおける殆どのオペレーションは矩形である。矩形は各スキャンラインに対して高度にシーケンシャルな要素（例えば、ピクセル１０，１１，．．．，２０）であるので、スタンダードのスキャンラインでコンフィギュア即ち形態特定されたメモリはスタンダードのウインドウズオペレーションに対して適切なものである。然しながら、例えばコンピュータ補助設計（ＣＡＤ）システム及びマップディスプレイシステム等の非水平又は非垂直のラインを使用するシステムにおいては、ピクセルデータへのアクセスはフレームバッファ１２５においてシーケンシャル即ち逐次的なものではなく、従って問題を発生するか又はシステム性能を劣化させる。
【０００７】
システム性能問題は通常ＳＤＲＡＭメモリを使用して構成されるフレームバッファ１２５に関連している。ＳＤＲＡＭメモリは、典型的に、第一メモリ位置（例えば、ピクセル１０）ヘアクセスするためにある待ち時間即ちアクセス時間を有しているが、次のメモリ位置（例えば、ピクセル１１）ヘアクセスするのにそれ程時間がかかるものではない。このことは直線（即ち、水平又は垂直）を形成する場合に適切なものであるが、真っ直ぐでないライン（即ち非水平又は非垂直）はフレームバッファ１２５内のメモリコンフィギュレーション（形態）がスキャンラインフォーマットに配列されているということに起因して作成又は処理するのにかなりの時間がかかる。
【０００８】
図２は当該技術分野において公知のごとくビジュアルディスプレイ上に表示されたピクセルデータに対してスキャンラインコンフィギュレーション即ち形態を有しているＳＤＲＡＭ１２０Ｂに対するメモリ構成を表している。例えば、ＳＤＲＡＭ１２０Ｂは７６８個の行と１０２４個の列からなるピクセルの画像を持ったビジュアルディスプレイを表し、その場合に第一スキャンラインは左上角部におけるピクセルＰ1,1２００と、右上角部におけるピクセルＰ1,1024２１０とを有しており、且つ最後のスキャンラインは左下角部におけるピクセルＰ768,1２２０と右下角部におけるピクセルＰ768,1024２３０とを有している。図２は従来のスキャンラインでコンフィギュア即ち形態特定したフレームバッファ１２５を表しており、ＣＲＴ制御器１６０等のエージェントはフレームバッファ１２５からのピクセルデータをビジュアルディスプレイへ表示させるために最適化されている。然しながら、グラフィックスエンジン１５０の性能は、フレームバッファ１２５における従来のスキャンラインコンフィギュレーション（形態）によって著しく低下される（即ち、クロックサイクルが増加される）。
【０００９】
ラインドローイング即ちライン描画を含む多くのグラフィックス操作のアクセスパターンは高度の参照の二次元局所性を示す。このようなアクセスパターンに対してメモリ帯域幅を改善する１つのアプローチは、フレームバッファ１２５内においてタイル型メモリコンフィギュレーション（形態）を使用することであった。このタイル型メモリ形態においては、フレームバッファ１２５内のピクセルデータは従来の形態、即ち逐次的に１つのスキャンラインから別のスキャンライン（１個のタイルのピクセルが１個のＤＲＡＭ頁に合うものと仮定））ではなくタイル型形態で格納する。参照の二次元局所性のために、単一のタイルの内側に該当する連続したアクセスの可能性は非常に高い。グラフィックス操作からのアクセスが単一のタイル内に該当する限り、１個のタイルがＤＲＡＭの複数個の頁にわたって分散している従来のスキャンライン又は非タイル型メモリ形態と比較して、フレームバッファ１２５メモリ内のタイル型メモリ形態に対して頁ミスが発生することはない。
【００１０】
図３は固定した寸法のタイルの形態に特定したフレームバッファ１２０Ｃを示している。第一タイルＴ０  ３００は左上角部にあるものとして示されており、最後のタイルＴ３８３  ３１０はフレームバッファ１２０Ｃの右下角部にあるものとして示されている。この固定したタイル寸法を有しているフレームバッファ１２５はグラフィックスエンジン１５０に対するグラフィックス操作に対するフレームバッファアクセス時間を著しく改善するものであるが、フレームバッファ１２５の固定したタイル化は、フレーム１２５が従来のスキャンライン形態にあることを予定する多数のその他のエージェントがフレームバッファ１２５へアクセスを行うＵＭＡシステムに対しては適切なものではない。例えば、ＣＲＴ制御器１６０等のあるエージェントの性能が実時間システムに対して臨界的なものであることを理解することが重要である。何故ならば、ユーザは、ＣＲＴ制御器１６０の性能が劣化した場合にビジュアルディスプレイ上で視覚的効果を見るからである。フレームバッファ１２５をタイル型の形態とすることによって、ＣＲＴ制御器１６０が従来のスキャンライン形態に対して最適化されている場合に、ＣＲＴ制御器１６０の性能において劣化が発生する。
【００１１】
更に、多くの人気のあるビデオゲーム等の既存のソフトウエアプロダクトはフレームバッファ１２５へ直接的にアクセスする。これらのソフトウエアプログラムはフレームバッファ１２５内のタイル型形態に気づくものではないので、それらのフレームバッファ１２５へのアクセスは適切に動作するものではなく、従ってこれらのソフトウエアプログラムは、スキャンラインアドレスをタイル型アドレスへ変換するための別個のアドレス変換インターフェースが付け加えられない限り、タイル型フレームバッファ１２５を有するシステム上で稼動させることは不可能である。フレームバッファ１２５のタイル化は、ビットマップ画像をタイル型形態を有するフレームバッファ１２５でグラフィックス操作のために使用することが可能であるように、ビットマップ画像等の多くのウインドウズピクセルデータ構造をタイル型フォーマットヘ変換する必要性のために、ＣＰＵ１３０に対して付加的なオーバーヘッドを有している。
【００１２】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、グラフィックス操作を加速させるシステム及び方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本システムは電子装置内のグラフィックス操作（演算）を加速させるためのメモリ装置を有している。該メモリ装置へ及びそれから送信されるピクセルデータを制御するためにメモリ制御器を使用する。キャッシュメモリが該メモリ制御器へ電気的に結合されており、且つ該メモリ制御器と選択した使用可能な寸法を持ったピクセルデータの量を交換するために選択した使用可能な寸法へコンフィギャラブル即ち形態特定することが可能である。該メモリ装置は、好適には、ＳＤＲＡＭである。グラフィックスエンジンが該キャッシュメモリへ電気的に結合しており、該キャッシュメモリは通常タイル型形態で二次元画像を形成するピクセルデータを格納する。該キャッシュメモリは、又、複数個の使用可能なメモリ区域又はタイルを有することが可能である。
【００１４】
本発明は、又、電子装置内のグラフィックス操作（演算）を加速する方法を提供している。本方法は、ピクセルに関連するデータへアクセスする要求を受取る。該ピクセルがどの擬似タイルに位置されるかに関しての決定がなされる。該擬似タイルはメモリ装置から選択的に検索され且つタイル形態でキャッシュメモリ内に格納される。要求されたピクセルデータが少なくとも１個のタイルを有しているキャッシュメモリから供給される。
【００１５】
【発明の実施の形態】
再度図１を参照すると、自動車用の地図表示システムを包含するコンピュータ及びディスプレイ装置等の電子装置において動作する統合メモリアーキテクチャシステムは、ＣＰＵ１３０、ＭＰＥＧデコーダ１４０、グラフィックスエンジン１５０、単一フレームバッファ１２５へアクセスするＣＲＴ制御器１６０等の多数のエージェントを有している。これらのエージェンの幾つかはフレームバッファ１２５がビジュアルディスプレイ上にピクセルを表示するスキャンラインの形態にある（即ち、７６８×１０２４）ことによって影響を受けるものではなく又最適化されているものであるが、グラフィックス処理（操作）の性能は劣っている。その性能が劣っているグラフィックス処理（操作）は高度の空間的局所性（例えば、二次元空間的局所性）及びスキャンラインフォーマットを有しているメモリ形態においては存在することのないグラフィックス処理の逐次性に起因している。フレームバッファとグラフィックスエンジンとの間でインターフェースさせたタイル型キャッシュメモリを設けることによって、グラフィックスエンジンの性能は著しく向上される。何故ならば、タイル型キャッシュメモリはグラフィックスエンジン１５０が処理するためのピクセルの空間的局所性を有しているからである。簡単に説明すると、タイルキャッシュメモリのタイル形態がグラフィックスエンジンの性能を改善している。
【００１６】
図４は本発明に基づくＵＭＡシステム４００を示している。図１からのコンポーネント１１０−１６０の全てがＵＭＡシステム４００に存在しており、タイルキャシュ４１０Ａが付加されている。タイルキャッシュ４１０Ａはグラフィックスエンジン１５０を電気的にフレームバッファ１２５と結合させている。グラフィックスエンジン１５０は、好適には、二次元（２Ｄ）グラフィックスエンジンであるが、ピクセルデータを変更するためにタイルキャッシュ４１０Ａ内のピクセルデータへアクセスする任意のハードウエア又はソフトウエアとすることが可能である。殆どハードウエアであるタイルキャッシュ４１０Ａはスタチックランダムアクセスメモリ（ＳＲＡＭ）を有している。本発明は、好適には、フレームバッファ１２５においてＳＤＲＡＭを使用するものであるが、グラフィックスＤＲＡＭ（ＧＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ−ＳＤＲＡＭ）、仮想チャンネルＤＲＡＭ（ＶＣ−ＤＲＡＭ）等のその他のタイプのメモリをフレームバッファ１２５において使用することも可能である。
【００１７】
フレームバッファ１２５とグラフィックスエンジン１５０との間にタイルキャッシュ４１０Ａを組込むことによって、グラフィックスエンジン１５０の観点からは、フレームバッファ１２５はビジュアルディスプレイ（即ち、スクリーン）を形成する多数の矩形状領域を表すタイル（即ち、擬似タイル）の形態とされているように見える。擬似タイル化はグラフィックスエンジンに対してフレームバッファがタイルフォーマットの形態とされている印象を与えるが、実際には、グラフィックスエンジンによって観察されるキャッシュメモリはタイルフォーマットの形態とされており且つフレームバッファはスキャンラインフォーマットにある。理解すべきことであるが、「擬似タイル」という用語は、フレームバッファ内に格納されているピクセルデータの形態のことを言及する場合に使用され、且つ「タイル」という用語はキャッシュメモリ内に格納されているピクセルデータの形態のことを言及する場合に使用される。
【００１８】
タイルキャッシュ４１０Ａは小型（例えば、１Ｋバイト）ＳＲＡＭを使用し、それはリセットの後空の状態とされる。グラフィックスエンジン１５０が与えられた座標（例えば、Ｘ，Ｙ）にあるピクセルデータを要求すると、グラフィックスエンジンは、最初に、その座標と関連する擬似タイルはどれであるかを計算する。前述した如く、擬似タイル化はフレームバッファ１２５をしてグラフィックスエンジン１５０に対してタイル形態にあるように見えるようにさせるが、そうでない場合には、フレームバッファ１２５はＵＭＡシステム４００のその他のコンポーネントに関して従来のスキャンライン形態にあるように見え且つ動作する。本発明に基づくタイルは、例えばビジュアルディスプレイ上の近接したピクセル等のある要素の局所性を表すタイルキャッシュ４１０Ａ内のコンフィギュレーション即ち形態である。
【００１９】
図５はタイルキャッシュ４１０Ａ内のピクセルデータへアクセスする方法の代表的なフローチャート５００である。本方法は、ステップ５０５において開始し且つステップ５１０において、アクセスすべきピクセル位置が受取られる。ステップ５１５において、そのピクセル位置が属するフレームバッファ１２５内の擬似タイルがどれであるかを決定するための計算が行われる。
【００２０】
ステップ５２０において、そのピクセル位置が、存在する場合に、タイルキャッシュ４１０Ａ内に現在格納されているタイル内に現在包含されているか否かを決定するための判別が行われる。そのピクセル位置がタイルキャッシュ内に格納されているタイル内に現在存在している場合には、フレームバッファ１２５へアクセスする必要性なしに、そのタイルからステップ５２５においてそのピクセルデータがグラフィックスエンジンへ供給される。ステップ５２０において、要求されたピクセル位置におけるピクセルデータがアップデートされる。次いで、本方法は、ステップ５４０において終了する。
【００２１】
そのピクセル位置がタイルキャッシュ４１０Ａ内に格納されている擬似タイル内に現在存在していない場合には、本方法は、ステップ５４５において、タイルキャッシュ４１０Ａが１個を超えるタイルを包含しているか否かを決定する。１つを超えるタイルを包含しているタイルキャッシュ４１０Ａの詳細について図８を参照して以下に説明する。タイルキャッシュが１つを超えるタイルを包含するものでない場合には、ステップ５５０において、タイルキャッシュ４１０Ａ内に格納されているタイル内のピクセルデータが修正されたか否かを決定する。そのタイル内のピクセルデータが修正されている場合には、ステップ５５５において、タイルキャッシュ４１０Ａ内に格納されているタイル内のピクセルデータがフレームバッファ１２０Ａへ書き戻される。ステップ５６０において、受取ったピクセル位置を包含しているフレームバッファ１２５からの擬似タイルがタイルキャッシュ４１０Ａ内に読込まれる。次いで、そのピクセルデータはステップ５２５においてグラフィックスエンジン１５０へ供給され、且つ受取ったピクセル位置におけるピクセルデータがステップ５３０においてアップデートされる。次いで、この手順はステップ５４０において終了する。タイルキャッシュ４１０Ａ内のタイル内のピクセルデータが修正されていない場合には、本手順はステップ５５５をスキップし且つ要求されたピクセル位置を包含するフレームバッファ１２５からの新たな擬似タイルがタイルキャッシュ４１０Ａ内に読込まれ、その際にタイルキャッシュ４１０Ａ内に格納されている前のタイルへ上書きする。
【００２２】
ステップ５４５において、タイルキャッシュが１つを超えるタイルを包含していることが判明した場合には、最も最近にアクセスされたものではないタイルキャッシュ４１０Ａ内に格納されているタイル内のピクセルデータが修正されたか否かを決定する。最も最近にアクセスされたものではないタイル内のピクセルデータが修正されている場合には、ステップ５５５において、最も最近にアクセスされたものではないタイル内のピクセルデータはタイルキャッシュ４１０Ａからフレームバッファ１２５へ書き戻される。ステップ５６０において、要求されたピクセル位置を包含するフレームバッファ１２５からの擬似タイルが、フレームバッファ１２５へ書き戻されたタイルの位置においてタイルキャッシュ４１０Ａ内へ読込まれる。そうでない場合には、最も最近にアクセスされたものでない擬似タイル内のピクセルデータが修正されていない場合には、本手順はステップ５５５をスキップし且つ要求されたピクセル位置を包含するフレームバッファ１２５からの擬似タイルが、最も最近にアクセスされたものでない擬似タイルが存在しているタイルキャッシュ４１０Ａ内に読込まれる。そのピクセルデータはステップ５２５においてグラフィックスエンジンへ供給され、且つ該ピクセルデータはステップ５３０において要求されたピクセル位置においてアップデートされる。ステップ５４０において、本手順は終了する。
【００２３】
理解すべきことであるが、擬似タイル分のピクセルデータを検索し且つそれをタイルキャッシュ４１０Ａ内へ配置させることの目的は、関連するピクセルの局所性を増加させることである。関連するピクセルの局所性を増加させることによって、グラフィックスエンジン１５０に対するアクセス時間が減少される。何故ならば、アクセスされた前のピクセルから隣りのピクセルへアクセスする可能性が増大しているからである。換言すると、前のピクセルに対して隣りのピクセルへアクセスする可能性が増加しており、従って最小の１５クロックサイクルアクセス時間は各隣りのピクセルに対して単一クロックアクセス時間へ減少される。タイルキャッシュ４１０Ａを充填するために、タイルキャッシュ４１０Ａにおいて前に格納されていない特定のピクセルへのアクセスが存在する場合には、タイルキャッシュ４１０Ａがその特定のピクセル（即ち、擬似タイル）の周りのデータを読取る。理解すべきことであるが、その他のシステムコンポーネントはタイルキャッシュ４１０Ａの付加によって影響されることはない。何故ならば、それらはフレームバッファ１２５へスタンダートのデータフォーマット（即ち、スキャンラインフォーマット）でアクセスすることが可能であり、即ちこれらその他のシステムコンポーネントはフレームバッファ自身をタイル化する場合のように悪影響を受けるものではないことを意味している。
【００２４】
図書館に格納されている大量の本を考慮することによって、アクセスされたピクセルに対して周りの位置にあるピクセルデータを読取ることの目的を類推することが可能である。誰かが大量の本のうちＶ巻を要求したとすると、図書館員は、思慮深い人であったならば、Ｖ巻に加えて、ＩＶ及びＶＩ巻をも検索する。何故ならば、ＩＶ巻又はＶＩ巻のいずれかが次に要求される蓋然性は例えばＸＶＩＩ巻等のＶ巻から更に離れたものよりも一層高いからである。従って、グラフィックスエンジン１５０が特定のピクセルを要求する場合には、その特定のピクセルがどの擬似タイルに属するものであるかの決定が行われ、且つ擬似タイルの全体がフレームバッファ１２５からタイルキャッシュ４１０Ａへ読込まれる。この擬似タイル形態は、動的にプログラムすることが可能である（即ち、擬似タイルの高さ及び幅はタイルキャッシュ４１０Ａによって受取られ且つその高さ×幅の量のピクセルデータがタイルキャッシュ内に読込まれる）。
【００２５】
ＳＤＲＡＭ１２０Ａ形態に依存して、ＳＤＲＡＭの各頁は２Ｋ乃至８Ｋバイトの間のデータを包含している。従って、これらの頁は２個又は４個のバンクのメモリにわたって分布されている（ＳＤＲＡＭ１２０Ａの形態に依存して）。ＳＤＲＡＭ１２０Ａは少なくとも１つのスキャンラインがＳＤＲＡＭの１つの頁に合うように選択される。
【００２６】
タイルキャッシュ４１０Ａ内のタイルの１つの行が充填されると、その行のピクセルデータが属するスキャンラインとしての頁ミスは存在しない。何故ならば、そのピクセルデータは単一の頁内に格納されるからである。タイルの次の行が充填されると、頁ミスの可能性が存在する。現在の行に対するピクセルデータへアクセスしている間に、次の行がＳＤＲＡＭ１２０Ａの同一の頁に該当するか否かを計算することが可能である。次の行が同一の頁に該当する場合には、次の行はクロックのペナルティなしでアクセスすることが可能である。然しながら、次の行が別の頁に該当する場合には、以下に説明するような特別の動作を取ることが必要となる。注意すべきことであるが、ＳＤＲＡＭバンク１２０Ａ内のメモリバンクの数（即ち、２又は４）に拘わらずに、タイルの次の行に対しての頁ミスが存在する場合には、次の行は現在の行とは異なるメモリバンクに該当するはずである。
【００２７】
ＳＤＲＡＭメモリの場合には、ミスした頁が現在のピクセルデータが供給されているものとは異なるメモリバンクに該当する場合に頁ミスを隠すための公知の技術が存在している。この技術では現在のピクセルデータ転送フェーズを次の頁行アドレス選択とオーバーラップさせる。この技術は「バンクインターリーブを伴うシームレス読取（ｓｅａｍｌｅｓｓ  ｒｅａｄ  ｗｉｔｈ  ｂａｎｋ  ｉｎｔｅｒｌｅａｖｉｎｇ）」と  呼ばれる。実際に、フレームバッファ１２５からタイルキャッシュ４１０Ａへデータを転送するためにこの技術が使用される場合には殆どペナルティは存在しない。
【００２８】
バンクインターリーブを伴うシームレス読取技術は、最後のデータがＳＤＲＡＭ１２０Ａによって出力される前にメモリバンクを不活性化させることを可能とし、そのことは書込動作の場合には存在しない。従って、書込動作は行を不活性化する動作と関連する待ち時間を隠す上で読取動作ほど効果的なものではない。この書込動作問題はタイルキャッシュ４１０Ａの動作に影響を与えるものではない。何故ならば、ＳＤＲＡＭ制御器１１０は、通常、それがピクセルデータをＳＤＲＡＭ１２０Ａへ書込む前に書込データを回収するためにバッファを使用しているからである。従って、タイルキャッシュ４１０Ａは、書込動作が実際にＳＤＲＡＭ１２０Ａ上で終了するまで延期されることはない。換言すると、タイルキャッシュ４１０Ａを使用して、ピクセルデータは固定したタイル寸法を有するフレームバッファ１２５の場合におけるのと同一の速度でフレームバッファ１２５からアクセスされる。
【００２９】
どうしてタイルキャッシュを使用するのであるかという疑問が湧くかも知れない。その答えは、バンクインターリーブを伴うシームレス読取プロセスを使用するために、アクセスパターンが既知でなければならない。然しながら、定義上、グラフィックス動作の場合にはランダムアクセスという性質のためにアクセスパターンを知ることは不可能である。好適なことであるが、タイルキャッシュ充填を実施する場合には、システムは既に知られているパターンをアクセスする。
【００３０】
理解すべきことであるが、フレームバッファ１２５は通常のスキャンライン順のままであるが、タイルキャッシュ４１０Ａはタイル型形態にある。タイルキャッシュ４１０ＡはＳＲＡＭであるので、アクセスに対するペナルティが発生することはなく、グラフィックスエンジン１５０はサイクル時間におけるペナルティを受けること無しに任意の順番でタイルキャッシュ４１０Ａ内の任意のピクセルデータへアクセスすることが可能であることを意味している。
【００３１】
フレームバッファ１２５での固定タイル技術の上にタイルキャッシュ４１０Ａでの擬似タイルキャッシュ技術を使用することの付加的な利点は、タイル形態又は寸法を現在のグラフィックスオペレーション（操作）の特性に依存して動的に変化させることが可能であるという点である。図６に示したように、擬似タイル６００は４×１６擬似タイル寸法として形態特定されており、それは水平又はほぼ水平のラインドローイング即ち線画となる。図７は１６×４擬似タイル寸法を有する形態とされており、それは垂直又はほぼ垂直のラインドローイングとなる。タイル寸法の動的変化（即ち、不規則的な寸法変化）を可能とすることは、最大のタイルヒットとさせる（即ち、現在のタイルキャッシュ内のピクセルデータへのアクセス）。このような動的なタイル化は、擬似タイルがフレームバッファ１２５の内容を変化させるものではないために可能なものである。タイル寸法は、タイルキャッシュ４１０Ａからピクセルデータを読取るか又はその中にピクセルデータを書込みながら、動的に離散的なインスタンス即ち時刻において変化させることが可能である。
【００３２】
図８は、各々が選択した使用可能な寸法を有している２個のタイル８００及び８１０を具備しているタイルキャッシュ４１０ＡＤを示している。理解すべきことであるが、各タイル８００及び８１０は、グラフィックスエンジン１５０によって所望されるグラフィックス演算に依存して異なる形状を有するタイルとすることが可能である。
【００３３】
ライン８２０がタイル８００とタイル８１０との間を横断して示されている。多くのグラフィックス操作はタイルスラッシングとなるアクセスパターンを有している。タイルスラッシングは、１つのピクセルが第一タイルにおいてアクセスされ、次いで次のピクセルが第二タイルに位置している場合に発生する現象である。このことは、単一のタイルキャッシュのみを有している場合においては、タイルキャッシュ４１０Ａをしてそのデータ内容をフレームバッファ１２５と交換、即ち読取及び書込することを行わせ、従ってタイルキャッシュ４００は第一タイル及び第二タイル内に位置しているピクセルを交互にアクセスすることが可能である。然しながら、図８に示したように、２タイルキャッシュを使用することによって、グラフィックスエンジン１５０は第一タイル８００及び第二タイル８１０における両方のデータへアクセスすることが可能であり、従って、タイルスラッシングが発生することはない。
【００３４】
タイルスラッシングが発生する典型的な状況は、アンチエイリアシングを使用するグラフィックス演算を実施する場合である。アンチエイリアシングは、ラインがより滑らかなものに見えるようにするために少なくとも部分的に付加的なピクセルをターンオンさせてライン上の「段差」を充填することによりビジュアルディスプレイ上での水平でないか又は垂直でないラインを平滑化させる技術である。ライン８２０を描画する場合には、ピクセルＰ１−Ｐ５等がアクセスされる。然しながら、ピクセルＰ１，Ｐ３，Ｐ５はタイル８００内に位置しており、且つピクセルＰ２，Ｐ４はタイル８１０内に位置しており、従って、タイルキャッシュ４１０Ａが単一タイルキャッシュである場合には、タイルスラッシングが発生し且つ帯域幅が減少される。
【００３５】
注意すべきことであるが、タイルアクセスミスが発生すると（即ち、タイルがタイル８００又はタイル８１０内に現在存在していない）、最も最近使用されたものでないタイルがフレームバッファ１２５からの新たな擬似タイルと置換される。タイルキャッシュ４１０Ａ内で２つのタイルを使用するこの技術は、単一のタイルのみを有するタイルキャッシュ４１０Ａと比較して、メモリ帯域幅において６０％乃至７０％の改善が得られる。
【００３６】
図９−１１はタイル化なし、固定タイル化、及び単一及び二重タイルキャッシュを包含する動的タイル化の種々の形態を使用した統計を示すためにシミュレーションによって得られた結果を表の形で示している。図９はラインドローイングに対しアンチエイリアシングを使用しない場合のシミュレーション結果を示している。図１０はデスティネーション読取なしでのラインドローイングに対するアンチエイリアシングを使用したシミュレーション結果を示している。図１１はデスティネーション読取有りでのアンチエイリアシングを使用したシミュレーション結果を示している。シミュレーションを使用することによって得られた結果によって示されるように、フレームバッファ１２５の擬似タイル化は、グラフィックス操作を完了するために使用されるメモリサイクルの数を減少させることによってメモリ帯域幅を著しく増大させている。二重タイルキャッシュを維持することは、タイルスラッシングを除去することによってメモリの性能を更に向上させている（ほぼ２倍）。更に、フレームバッファ１２５とインターフェースするその他のエージェントは影響を受けることはない。何故ならば、フレームバッファ１２５については何等特別のデータの並べ替えが行われないからである。
【００３７】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  グラフィックス操作を取扱うための従来の統合型メモリアーキテクチャのブロック図。
【図２】  ピクセルでのビジュアルディスプレイの従来のスキャンライン形態でのメモリ表現を示した概略図。
【図３】  ピクセルでのビジュアルディスプレイの従来のタイル型形態でのメモリ表現を示した概略図。
【図４】  グラフィックスエンジンとメモリ装置との間に電気的に結合されたタイルキャッシュメモリでのグラフィックス操作を取扱う統合型メモリアーキテクチャの本発明に基づく１実施例を示した概略ブロック図。
【図５】  本発明に基づくタイルキャッシュメモリ内でのピクセルデータへアクセスする方法のフローチャート。
【図６】  ４×１６ピクセルマトリックスタイルを有するタイルキャッシュメモリを示した概略図。
【図７】  １６×４ピクセルメモリタイルを有するタイルキャッシュメモリを示した概略図。
【図８】  グラフィックラインが２つのタイル内に含まれるピクセルを横断して延在している２つのタイルを含むタイルキャッシュメモリを示した概略図。
【図９】  アンチエイリアシングを使用しておらず従来のフレームバッファタイル化技術と比較した本発明の性能を示した表。
【図１０】  デスティネーション読取なしでアンチエイリアシングを使用した場合の従来のフレームバッファタイル化技術と比較した本発明の性能を示した表。
【図１１】  デスティネーション読取有りでアンチエイリアシングを使用した場合の従来のフレームバッファタイル化技術と比較した本発明の性能を示した表。
【符号の説明】
１２５  フレームバッファ
１３０  ＣＰＵ
１４０  ＭＰＥＧデコーダ
１５０  グラフィックスエンジン
１６０  ＣＲＴ制御器
４００  ＵＭＡシステム
４１０Ａ  タイルキャッシュ
【図１】
0005031139.tif 000002
【図２】
0005031139.tif 000003
【図３】
0005031139.tif 000004
【図４】
0005031139.tif 000005
【図５】
0005031139.tif 000006
【図６】
0005031139.tif 000007
【図７】
0005031139.tif 000008
【図８】
0005031139.tif 000009
【図９】
0005031139.tif 000010
【図１０】
0005031139.tif 000011
【図１１】
0005031139.tif 000012