(57)【要約】或る実施形態では、ディスプレイパイプは、ディスプレイパイプが表示のために読み出そうとしている画像に対応する１つ又はそれ以上の翻訳ユニットを含んでいる。それぞれの翻訳ユニットは、画像データのフェッチに先行して翻訳をプリフェッチするように構成されており、ディスプレイパイプでの翻訳ミスが（少なくとも大抵の場合は）防止される。翻訳ユニットは、翻訳を先入れ先出し（ＦＩＦＯ）式に維持しており、ディスプレイパイプフェッチハードウェアは、所与の単数又は複数の翻訳がもはや要らなくなったら翻訳ユニットに通知する。翻訳ユニットは識別された翻訳を無効にし、直近にプリフェッチされた仮想ページに連なる仮想ページについての追加の翻訳をプリフェッチすることになる。
2013543195.tif 000002
【特許請求の範囲】
【請求項１】
翻訳ユニットにおいて、
複数のエントリを備えるメモリであって、それぞれのエントリが画像データのソースバッファ内の異なった仮想ページについての翻訳を格納するように構成されている、メモリと、
前記メモリへ連結されている制御回路であって、前記ソースバッファ内の処理の完了した１つ又はそれ以上の仮想ページを識別する指示を受信するように連結されていて、前記指示によって指し示されている前記１つ又はそれ以上の仮想ページについての前記翻訳を前記メモリから廃棄して前記ソースバッファ内の他の仮想ページについての追加の翻訳をプリフェッチするように構成されている、制御回路において、前記他の仮想ページは、ソースバッファ内の第２の仮想ページに隣接している第１の仮想ページを含んでおり、前記第２の仮想ページについての翻訳は、前記メモリ内に格納されている前記翻訳のうちの直近にフェッチされた翻訳である、制御回路と、を備えている翻訳ユニット。
【請求項２】
前記制御回路は、処理が前記ソースバッファからの前記画像データの処理を始めようとしていることを指し示すスタート指示を受信するように連結されており、前記翻訳ユニットは、前記スタート指示に応えて前記メモリの翻訳をクリアするように構成されている、請求項１に記載の翻訳ユニット。
【請求項３】
前記制御回路は、前記ソースバッファから或る数の連続した仮想ページについての翻訳をプリフェッチするように構成されており、前記数は、前記メモリ内の前記複数のエントリの数に等しい、請求項２に記載の翻訳ユニット。
【請求項４】
前記数は、前記ソースバッファの１行中の仮想ページの数の二倍である、請求項３に記載の翻訳ユニット。
【請求項５】
ディスプレイパイプにおいて、
複数の画像処理パイプラインであって、そのそれぞれが、当該画像処理パイプラインのための画像データをフェッチするように構成されているフェッチ／メモリ管理ユニットを含んでおり、前記フェッチ／メモリ管理ユニットは、前記画像データのアドレスを翻訳するのに複数の翻訳をプリフェッチするように構成されており、前記複数の翻訳は、フェッチされようとしている画像内の少なくとも２行分のタイルを翻訳している、複数の画像処理パイプラインと、
前記複数の画像処理パイプラインへ連結されているホストインターフェースであって、前記複数の翻訳についてのプリフェッチオペレーション及び前記画像データについてのフェッチオペレーションをメモリへ送信するように構成されている、ホストインターフェースと、を備えているディスプレイパイプ。
【請求項６】
前記複数の画像処理パイプラインは、静止画像をフェッチするように構成されている少なくとも１つのユーザーインターフェースユニットを含んでいる、請求項５に記載のディスプレイパイプ。
【請求項７】
前記複数の画像処理パイプラインは、映像シーケンスのフレームをフェッチするように構成されている少なくとも１つの映像パイプラインを含んでいる、請求項６に記載のディスプレイパイプ。
【請求項８】
前記少なくとも１つの映像パイプラインは、複数のフェッチ／メモリ管理ユニットであって、そのそれぞれが異なった像平面に対応している、複数のフェッチ／メモリ管理ユニットを含んでいる、請求項７に記載のディスプレイパイプ。
【請求項９】
装置において、
メモリコントローラへインターフェースするように構成されているポートインターフェースユニットと、
画像プロセッサと、
前記画像プロセッサへ連結されていて当該画像プロセッサについて最近使用された翻訳をキャッシュするように構成されている翻訳ユニットであって、前記画像プロセッサからのメモリオペレーションを受信して前記メモリオペレーションでの仮想アドレスを翻訳するように連結されていて、前記メモリオペレーションを前記翻訳されたアドレスと共に前記ポートインターフェースユニットへ送信するように構成されている、翻訳ユニットと、
ディスプレイのための画像データをフェッチするように前記ポートインターフェースユニットへ連結されているディスプレイパイプであって、前記ディスプレイパイプは画像データを格納する複数の仮想ページについての翻訳をプリフェッチするように構成されている１つ又はそれ以上のストリーミング式翻訳ユニットを含んでおり、前記ストリーミング式翻訳ユニットは、前記ディスプレイパイプが処理を完了した仮想ページの翻訳を廃棄して１つ又はそれ以上の追加の翻訳をプリフェッチするように構成されており、前記ディスプレイパイプは、前記画像データを求めるフェッチ要求及び翻訳データを読み出す要求を送信するように前記ポートインターフェースへ連結されている、ディスプレイパイプと、を備えている装置。
【請求項１０】
前記翻訳ユニットは、当該翻訳ユニット内のミスに応えて、前記ミスに対する翻訳をフェッチして当該翻訳をキャッシュするように構成されている、請求項９に記載の装置。
【請求項１１】
前記追加の翻訳は、前記ストリーミング式翻訳ユニット内の直近にプリフェッチされた翻訳に連続している、請求項９に記載の装置。
【請求項１２】
所与のストリーミング式翻訳ユニットによってプリフェッチされる前記複数の仮想ページは、処理されようとしているソース画像内の少なくとも２行分の仮想ページを含んでいる、請求項９に記載の装置。
【請求項１３】
前記画像データは、画像データのタイルとして配列されており、前記複数の仮想ページのそれぞれの仮想ページはタイル１つを格納している、請求項９に記載の装置。
【請求項１４】
方法において、
複数の翻訳を、表示のための画像データを処理するように構成されているディスプレイパイプへプリフェッチする段階であって、前記複数の翻訳は前記画像データを含んでいるソースバッファ内の仮想ページについてである、翻訳をディスプレイパイプへプリフェッチする段階と、
前記複数の翻訳の１つ又はそれ以上に関して処理が完了しているという指示を受信する段階と、
１つ又はそれ以上の追加の翻訳をプリフェッチする段階であって、前記追加の翻訳の第１の翻訳は、メモリ内ページ表の中で前記複数の翻訳のうちの直近にフェッチされた翻訳に隣接している、追加の翻訳をプリフェッチする段階と、を備えている方法。
【請求項１５】
前記１つ又はそれ以上の追加の翻訳は、少なくとも２つの翻訳であり、前記少なくとも２つの翻訳は前記メモリ内ページ表の中で連続している、請求項１４に記載の方法。
【請求項１６】
前記複数の翻訳は、前記メモリ内ページ表の中で連続している、請求項１５に記載の方法。
【請求項１７】
前記複数の翻訳の数は、少なくとも、前記ソースバッファ内の２行分の仮想ページをプリフェッチするのに十分である、請求項１４に記載の方法。
【請求項１８】
前記ディスプレイパイプが前記ソースバッファの処理を始めようとしていることを指し示すスタート指示を受信する段階と、
前記スタート指示に応えて、前記ディスプレイパイプ内の翻訳ユニットから翻訳をクリアし、前記複数の翻訳をプリフェッチする段階と、を更に備えている、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想メモリシステムの分野に関係している。
【背景技術】
【０００２】
仮想メモリシステムは、様々な理由から、コンピューティングシステムに実装されている。仮想メモリは、例えば、小さい物理メモリを実装していながらに、より大きな仮想メモリ空間をソフトウェアプロセスに利用できるようにするために使用することができる。ディスクドライブの様な不揮発性メモリは、現在使用中でない仮想メモリ空間からのデータを格納することになる。仮想メモリは、同じシステム上で実行している異なったソフトウェアプロセスを隔離して、１つのプロセスが別のプロセスに帰属しているデータにアクセスできないようにするのに使用することができる。仮想メモリは、制御ソフトウェア（例えば、オペレーティングシステム、ハイパーバイザの様な仮想マシンモニタ（ＶＭＭ）、又は他の特権を有するソフトウェア、など）が、物理メモリ内のデータを配置換えできるようにするのにも使用することができ、その間もプロセスには仮想メモリ空間内でアドレス指定されている連なったメモリであるように見えている。こうして、物理メモリ空間内のどこでも利用できるメモリへデータを配置換えさせることができる。物理メモリはプロセス間で共用されているので、データを物理メモリ内で配置換えすることができることにより、制御ソフトウェアに掛かる負担が軽減される。
【０００３】
典型的に、制御ソフトウェアは、仮想アドレスから、仮想アドレスについて割り当てられているメモリ場所の物理アドレスへの翻訳を用意する。翻訳情報は、メモリ内の１つ又はそれ以上のページ表に格納され、システム内の翻訳ハードウェアが、仮想アドレスを物理アドレスへ翻訳するために翻訳情報をキャッシュする。翻訳はページ単位で遂行される。即ち、仮想メモリシステム内のページバウンダリへ整列した１ブロック分の仮想アドレスは、全て、同じ翻訳によってメモリ内の物理ページへ翻訳される。ページサイズは様々であろう（例えば、４キロバイト、８キロバイト、又は場合によってはそれよりなおいっそう大きく、メガバイトにもなろう）。一部のシステムは、所与の時点で全てのページが選択されたサイズとなるようにプログラム可能に選択できるか又は異なったページサイズが同時にサポートされるようにページ単位で変えられるかのどちらかのやり方で、可変ページサイズをサポートしている。所与の仮想ページに対して物理ページアドレスを指定している翻訳情報のことを、当該仮想ページについての翻訳と呼んでいる。翻訳は、物理ページを識別する物理ページ番号を含んでおり、有効ビット、キャッシュ属性、など、の様な様々な属性ビットを含んでいることもある。仮想ページは仮想アドレス空間内のページ式に整列したページサイズのブロックであり、同様に物理ページは物理アドレス空間内のページ式に整列したページサイズのブロックである。
【０００４】
翻訳をキャッシュすることで、仮想アドレスを使用してメモリにアクセスするプロセスはスピードアップされる（キャッシュされた翻訳を通して物理アドレスへ翻訳）。とはいえ、キャッシュは有限であり、よってたまにはミスもあり、すると翻訳をメモリから翻訳ハードウェアへフェッチさせる必要が出てくる。様々な実装では、ハードウェアがミスのあった翻訳をメモリから読み出すか又はソフトウェアが翻訳をハードウェアへロードする。何れにしても、翻訳ミスが起こるとメモリアクセスの待ち時間が増える。
【発明の概要】
【０００５】
或る実施形態では、ディスプレイパイプは、ディスプレイパイプが表示のために読み出そうとしている画像に対応する１つ又はそれ以上の翻訳ユニットを含んでいる。それぞれの翻訳ユニットは、画像データのフェッチに先んじて翻訳をプリフェッチするように構成されており、ディスプレイパイプでの翻訳ミスが（少なくとも大抵の場合は）防止される。翻訳ユニットは、翻訳を先入れ先出し（ＦＩＦＯ）式に維持しており、ディスプレイパイプフェッチハードウェアは、所与の単数又は複数の翻訳がもはや要らなくなったら翻訳ユニットに通知する。翻訳ユニットは識別された翻訳を無効にし、直近にプリフェッチされた仮想ページに連なる仮想ページについての追加の翻訳をプリフェッチすることになる。
【０００６】
或る実施形態では、上述のプリフェッチ式翻訳ユニットを組み入れることで、より複雑な翻訳ユニットを、ディスプレイパイプが使用しているメモリに対し同じポートを共用している画像プロセッサへ専従させることが可能になる。ディスプレイパイプからの競合が、より複雑な翻訳ユニットから排除されるために、より複雑な翻訳ユニットでは画像プロセッサからのよりランダムなメモリアクセス要求がよりヒットし易くなり、画像プロセッサにとってもミス率が下がることになる。
【０００７】
次に続く詳細な説明では添付図面を参照しており、図面についてこれより簡単に説明する。
【図面の簡単な説明】
【０００８】
【図１】集積回路の１つの実施形態のブロック線図である。
【図２】図１に示されているディスプレイパイプの１つの実施形態のブロック線図である。
【図３】ソースバッファの１つの実施形態のブロック線図である。
【図４】ディスプレイパイプ内のメモリ管理ユニット（ＭＭＵ）で有効になっている翻訳の一例のブロック線図である。
【図５】図２に示されているフェッチ／ＭＭＵユニットの１つの実施形態のブロック線図である。
【図６】図５に示されているフェッチコントロールユニットの１つの実施形態のオペレーションを説明するフローチャートである。
【図７】図５に示されているフェッチコントロールユニットの１つの実施形態の追加のオペレーションを説明するフローチャートである。
【図８】図５に示されている翻訳コントロールユニットの１つの実施形態のオペレーションを説明するフローチャートである。
【図９】メモリが格納している翻訳表及びソースバッファのタイルの１つの実施形態のブロック線図である。
【図１０】システムの１つの実施形態のブロック線図である。
【発明を実施するための形態】
【０００９】
本発明には、様々な修正及び代わりの形態の余地があるが、本発明の特定の実施形態を例として図面に示し、ここで詳細に説明してゆく。とはいえ、図面及びそれに対する詳細な説明は本発明を開示されている特定の形態へ限定しようとするものではなく、それどころか、付随の特許請求の範囲によって定義されている本発明の精神及び範囲内に入る全ての修正、等価物、及び代替を対象として含もうとするものであることを理解されたい。ここに使用されている見出しは、編集目的であり、記述の範囲を限定するために使用されることを意図していない。本出願全体を通しての使用に際し、英語の「ｍａｙ」という語の対訳である「〜してもよい、〜かもしれない、〜できるであろう」は、必須の意味（即ち、せねばならないを意味する）というよりむしろ許容の意味（即ち、可能性があることを意味する）に使用されている。同様に、英語の「ｉｎｃｌｕｄｅ」、「ｉｎｃｌｕｄｉｎｇ」、及び「ｉｎｃｌｕｄｅｓ」という語の対訳である「〜を含む、〜を含める」は、〜に限定される、ではなく、〜を含んでいる、という意味である。
【００１０】
各種ユニット、回路、又は他の構成要素が、単数又は複数のタスクを遂行する「ように構成されている」と記述されていることがあるかもしれない。その様な文脈では、「〜するように構成されている」は、概して、オペレーション中に単数又は複数のタスクを遂行する「回路構成を有している」ことを意味する、構造の広義的な叙述である。そいうものとして、ユニット／回路／構成要素は、ユニット／回路／構成要素が現在オンになっていなくとも、タスクを遂行するように構成されているといえる。一般に、「〜するように構成されている」に対応する構造を形成している回路構成は、オペレーションを実施するハードウェア回路を含んでいよう。同様に、各種ユニット／回路／構成要素が、記述の便宜上、単数又は複数のタスクを遂行する、という様に記述されていることがあるかもしれない。その様な記述は、「〜するように構成されている」という語句を含んでいるものと解釈されねばならない。ユニット／回路／構成要素が１つ又はそれ以上のタスクを遂行するように構成されているという叙述は、当該ユニット／回路／構成要素について３５Ｕ．Ｓ．Ｃ．第１１２条、第６項の解釈を行使しないつもりであることを明示しておく。
【００１１】
これより図１を参照すると、システム５の１つの実施形態のブロック線図が示されている。図１の実施形態では、システム５は、外部メモリ１２Ａ−１２Ｂへ連結されている集積回路（ＩＣ）１０を含んでいる。図示の実施形態では、集積回路１０は、１つ又はそれ以上のプロセッサ１６とレベル２（Ｌ２）キャッシュ１８とを含む中央プロセッサユニット（ＣＰＵ）ブロック１４を含んでいる。他の実施形態は、Ｌ２キャッシュ１８を含んでいないものもあれば、追加のキャッシュレベルを含んでいるものもあろう。加えて、２つより多くのプロセッサ１６を含んでいる実施形態、及びプロセッサ１６を１つしか含んでいない実施形態も考えられる。集積回路１０は、更に、１つ又はそれ以上の非リアルタイム（ＮＲＴ）周辺デバイス２０のセット、及び１つ又はそれ以上のリアルタイム（ＲＴ）周辺デバイス２２のセットを含んでいる。図示の実施形態では、ＲＴ周辺デバイスは、画像プロセッサ２４と、１つ又はそれ以上のディスプレイパイプ２６と、翻訳ユニット４６と、ポートアービタ２８と、を含んでいる。他の実施形態では、より多い又は少ない画像プロセッサ２４、より多い又は少ないディスプレイパイプ２６、及び／又は所望に応じ幾つもの追加のリアルタイム周辺デバイス、を含んでいてもよい。画像プロセッサ２４は、システム５内の１つ又はそれ以上のカメラから画像データを受信するように連結されていてもよい。同様に、ディスプレイパイプ２６は、システム内の１つ又はそれ以上のディスプレイを制御する１つ又はそれ以上のディスプレイコントローラ（図示せず）へ連結されていてもよい。画像プロセッサ２４は翻訳ユニット４６へ連結されていて、翻訳ユニット４６は更にポートアービタ２８へ連結されていてもよい。ポートアービタ２８は、その上、ディスプレイパイプ２６へ連結されていてもよい。図示の実施形態では、ＣＰＵブロック１４は、１つ又はそれ以上の周辺デバイス３２及び／又は１つ又はそれ以上の周辺デバイスインターフェースコントローラ３４へ連結されていてもよいとされるブリッジ／ダイレクトメモリアクセス（ＤＭＡ）コントローラ３０へ連結されている。周辺デバイス３２及び周辺デバイスインターフェースコントローラ３４の数は、様々な実施形態では、ゼロから任意の所望数まで異なっていてもよい。図１に示されているシステム５は、更に、Ｇ０  ３８Ａ及びＧ１  ３８Ｂの様な１つ又はそれ以上のグラフィックコントローラを備えるグラフィックユニット３６を含んでいる。グラフィックユニット当たりのグラフィックコントローラの数及びグラフィックユニットの数は、他の実施形態では、異なっていてもよい。図１に示されている様に、システム５は、１つ又はそれ以上のメモリ物理的インターフェース回路（ＰＨＹ）４２Ａ−４２Ｂへ連結されているメモリコントローラ４０を含んでいる。メモリＰＨＹ４２Ａ−４２Ｂは、集積回路１０のピン上でメモリ１２Ａ−１２Ｂへ通信するように構成されている。メモリコントローラ４０は、更に、ポート４４Ａ-４４Ｅのセットを含んでいる。ポート４４Ａ−４４Ｂは、グラフィックコントローラ３８Ａ−３８Ｂへそれぞれ連結されている。ＣＰＵブロック１４は、ポート４４Ｃへ連結されている。ＮＲＴ���辺デバイス２０及びＲＴ周辺デバイス２２は、ポート４４Ｄ-４４Ｅへそれぞれ連結されている。メモリコントローラ４０に含まれるポートの数は、メモリコントローラの数同様に、他の実施形態では異なっていてもよい。メモリＰＨＹ４２Ａ−４２Ｂ及び対応するメモリ１２Ａ−１２Ｂの数は、他の実施形態では、１つであってもよいし、又は２つより多くてもよい。
【００１２】
１つの実施形態では、それぞれのポート４４Ａ−４４Ｅには特定のトラフィック型式が関連付けられていてもよい。例えば、１つの実施形態では、トラフィック型式は、ＲＴトラフィック、ＮＲＴトラフィック、及びグラフィックトラフィックを含んでいてもよい。他の実施形態は、以上のトラフィック型式に加えて、代えて、又はそれらのサブセットに加えて、他のトラフィック型式を含んでいてもよい。それぞれのトラフィック型式は、（例えば、要件及び挙動の観点で）特性を異にし、メモリコントローラは、特性に基づいてより高い性能が提供されるように、それらトラフィック形式に異なった対処の仕方をしていてもよい。例えば、ＲＴトラフィックは、それぞれのメモリオペレーションが特定の時間量内で果たされることを要件とする。オペレーションの待ち時間が特定の時間量を超過すれば、ＲＴ周辺デバイスにオペレーションエラーが起こる可能性がある。例えば、画像プロセッサ２４内で画像データが失われるかもしれないし、又はディスプレイパイプ２６の連結先のディスプレイ上に映し出される画像が視覚的に歪みを来すかもしれない。ＲＴトラフィックは、例えば等時性を特徴としている。他方、グラフィックトラフィックは、比較的高い帯域であるが、待ち時間に敏感というわけではない。プロセッサ１６からの様なＮＲＴトラフィックは、性能上の理由から、待ち時間にやや敏感ではあるが、高待ち時間でも生き残る。即ち、ＮＲＴトラフィックは、概して、何れの待ち時間でも、ＮＲＴトラフィックを生成するデバイスにオペレーションエラーを引き起こすことなく果たされることであろう。同様に、待ち時間にあまり敏感ではないが帯域の高いグラフィックトラフィックは、概して、何れの待ち時間でも果たされることであろう。他のＮＲＴトラフィックには音声トラフィックが含まれ、音声トラフィックは、比較的低帯域であり、概して妥当な待ち時間なら果たされることであろう。殆どの周辺デバイスのトラフィックもまたＮＲＴである（例えば、磁気式、光学式、又はソリッドステートのストレージ、の様なストレージデバイスへのトラフィック）。異なったトラフィック型式と関連付けられているポート４４Ａ−４４Ｅが提供されていることにより、メモリコントローラ４０は、異なったトラフィック型式に並列して曝されることになる。
【００１３】
上述の様に、ＲＴ周辺デバイス２２は、画像プロセッサ２４とディスプレイパイプ２６とを含んでいてもよい。ディスプレイパイプ２６は、１つ又はそれ以上の画像フレームをフェッチし、それらフレームをブレンドしてディスプレイ画像を作成する回路構成を含んでいてもよい。ディスプレイパイプ２６は、更に、１つ又はそれ以上の映像パイプラインを含んでいて、映像フレームが（比較的）静的な画像フレームとブレンドされて、映像フレームレートで表示されるフレームが作成されてもよい。ディスプレイパイプ２６の結果は、ディスプレイ画面に表示させる画素のストリームということになろう。ディスプレイ画面に表示させるために画素値がディスプレイコントローラへ送信される。画像プロセッサ２４は、カメラデータを受信し、データを画像へ加工してメモリに格納させていてもよい。
【００１４】
ディスプレイパイプ２６と画像プロセッサ２４はどちらも、仮想空間で動作しており、よって翻訳を使用して、メモリオペレーションがメモリを書き込み又は読み出しするための物理アドレスを生成するものである。画像プロセッサ２４は、幾分ランダムなメモリアクセスパターンを有しており、よって翻訳については翻訳ユニット４６に頼ることになろう。翻訳ユニット４６は、それぞれの翻訳を、翻訳が他のキャッシュされている翻訳に対してどれほど頻繁に使用されているかに基づく或る期間に亘ってキャッシュするトランスレーションルックアサイドバッファ（ＴＬＢ）を採用していてもよい。例えば、ＴＬＢは、セットアソシエイティブ構造又は完全アソシエイティブ構造を採用していてもよく、ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ（最も長く使用されていないの意）（ＬＲＵ）型アルゴリズムを使用して、セット内の（又は完全アソシエイティブ構成ならＴＬＢに亘る）翻訳の間で翻訳使用の新近性を順位付けするようにしていてもよい。ＬＲＵ型アルゴリズムには、例えば、真ＬＲＵ、擬似ＬＲＵ、ｍｏｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ（直近に使用されているの意）（ＭＲＵ）、など、が含められる。加えて、ＴＬＢでの容量ミスの影響を低減するのに、相当大きなＴＬＢが実装されていてもよい。
【００１５】
他方、ディスプレイパイプ２６のアクセスパターンはかなり規則的である。例えば、それぞれのソース画像の画像データは、仮想アドレス空間内の連続したメモリ場所に格納されることになる。よって、ディスプレイパイプは、ソース画像データの処理を或る仮想ページから開始すると、次の仮想ページは当該仮想ページに連続しているという具合である。即ち、仮想ページ番号は番号順になっており、画像データがフェッチされるごとに１つずつページが繰り上がるか又は繰り下がる。同様に、翻訳は、メモリ内の所与のページ表内で互いに連続している（例えば、ページ表内の連続したエントリは、互いに番号が１つ大きい又は小さい仮想ページ番号を翻訳している）。幾つかの実施形態では２つ以上のページ表が使用されていることがあり、従ってページ表の最後のエントリは次のページ表の最初のエントリへ連続していないということもあろうが、殆どの翻訳はページ表内で連続したものとなっている。別の見方をすると、画像データを格納している仮想ページは、仮想アドレス空間内で互いに隣り合っているといえる。即ち、仮想アドレス空間内では隣接する仮想ページの間には介在するページが無いということである。
【００１６】
ディスプレイパイプ２６は、ディスプレイパイプの画像データ読み出しに先んじて、翻訳をプリフェッチする翻訳ユニットを実装していてもよい。プリフェッチは、ソース画像の処理が始まろうとするときに開始され、翻訳ユニットは、翻訳ユニット内の翻訳メモリを満たすのに十分な連続した翻訳をプリフェッチすることになる。ディスプレイパイプ内のフェッチ回路構成は、仮想ページでのデータの処理が完了すると翻訳ユニットに通知し、翻訳ユニットは対応する翻訳を無効にし、追加の翻訳をプリフェッチすることになる。こうして、最初のプリフェッチングが完了したら、ディスプレイパイプ２６が当該仮想ページからフェッチを始めながら、それぞれの仮想ページについての翻訳が次々と翻訳ユニット内で利用できるようになってゆく。加えて、翻訳ユニット４６についてディスプレイパイプ２６からの競合は、プリフェッチ式翻訳ユニットのおかげで排除される。ディスプレイパイプ内の翻訳ユニットは、連なる仮想ページのセットについて翻訳をフェッチするので、それらを「ストリーミング式翻訳ユニット」と呼んでもよい。
【００１７】
一般的に、ディスプレイパイプ２６は、比較的静的なフレームをフェッチするように構成されている１つ又はそれ以上のユーザーインターフェースユニットを含んでいてもよい。即ち、静的フレームのソース画像は、映像シーケンスの部分ではない。静的フレームは、変化はしても、映像シーケンスに対応する映像フレームレートに従って変化するわけではない。ディスプレイパイプ２６は、更に、映像フレームをフェッチするように構成された１つ又はそれ以上の映像パイプラインを含んでいてもよい。これらの様々なパイプライン（例えば、ユーザーインターフェースユニット及び映像パイプライン）を総じて「画像処理パイプライン」と呼んでもよい。
【００１８】
メモリコントローラ４０へ戻り、概して、ポートは、１つ又はそれ以上のソースと通信するためのメモリコントローラ４０側の通信ポイントということになろう。幾つかの場合には、ポートは或るソース専用とされていてもよい（例えば、ポート４４Ａ−４４Ｂは、グラフィックコントローラ３８Ａ−３８Ｂそれぞれの専用とされていてもよい）。他の場合には、ポートは複数のソースの間で共有されていてもよい（例えば、プロセッサ１６はＣＰＵポート４４Ｃを共有し、ＮＲＴ周辺デバイス２０はＮＲＴポート４４Ｄを共有し、ディスプレイパイプ２６や画像プロセッサ２４の様なＲＴ周辺デバイス２２はＲＴポート４４Ｅを共有していてもよい）。ポートは、１つ又はそれ以上のソースと通信するために単一のインターフェースへ連結されていてもよい。こうして、ソースがインターフェースを共有している場合、インターフェースのソース側にはソース同士の間で選択を行うためにアービタがあってもよい。例えば、Ｌ２キャッシュ１８は、メモリコントローラ４０に対しＣＰＵポート４４Ｃのためのアービタの役目を果たしていてもよい。ポートアービタ２８は、ＲＴポート４４Ｅのためのアービタの役目を果たし、同様のポートアービタ（図示せず）がＮＲＴポート４４Ｄのためのアービタとなっていてもよい。ポート上の単一ソース又はポート上のソースの組合せは、エージェントと呼ぶこともできる。それぞれのポート４４Ａ−４４Ｅは、各自のエージェントと通信するようにインターフェースへ連結されている。インターフェースは、何れの型式の通信媒体（例えば、バス、ポイント・ツー・ポイント相互接続、など）であってもよく、何れのプロトコルを実装していてもよい。幾つかの実施形態では、ポート４４Ａ−４４Ｅはどれも同じインターフェース及びプロトコルを実装していてもよい。他の実施形態では、異なったポートは異なったインターフェース及び／又はプトロコルを実装していてもよい。更に他の実施形態では、メモリコントローラ４０にはポートが１つしかなくてもよい。
【００１９】
或る実施形態では、それぞれのソースは、当該ソースによって送信されるそれぞれのメモリオペレーションにサービスの質（ＱｏＳ）パラメータを割り当てていてもよい。ＱｏＳパラメータは、メモリオペレーションについて要求されるサービスレベルを識別するものである。高レベルのサービスを要求するＱｏＳパラメータ値を有するメモリオペレーションには、低レベルのサービスを要求するメモリオペレーションに勝る優先順位が与えられることになる。それぞれのメモリオペレーションは、フローＩＤ（ＦＩＤ）を含んでいてもよい。ＦＩＤは、メモリオペレーションフローの部分であるメモリオペレーションを識別するものである。或るフローのメモリオペレーション同士は、概して、関連しているが、一方で異なったフローからのメモリオペレーションは、たとえ同じソース由来であっても、関連していない。ＦＩＤの一部分（例えばソースフィールド）はソースを識別していて、ＦＩＤの残部はフロー（例えばフローフィールド）を識別していてもよい。従って、ＦＩＤはトランザクションＩＤと同様であり、幾つかのソースは単純にトランザクションＩＤをＦＩＤとして送信していてもよい。その様な場合、トランザクションＩＤのソースフィールドはＦＩＤのソースフィールドということになり、トランザクションＩＤの（同じソース由来のトランザクション同士の間でトランザクションを識別している）シーケンス番号はＦＩＤのフローフィールドということになろう。幾つかの実施形態では、異なったトラフィック型式は、ＱｏＳパラメータの異なった定義を有しているかもしれない。即ち、異なったトラフィック型式は、異なったＱｏＳパラメータセットを有していてもよい。
【００２０】
メモリコントローラ４０は、それぞれのポート４４Ａ-４４Ｅで受信されたＱｏＳパラメータを処理するように構成されていて、相対的なＱｏＳパラメータ値を使用して、ポートで受信されたメモリオペレーションを、当該ポート由来の他のメモリオペレーション並びに他のポートで受信された他のメモリオペレーションに関して、スケジュールするようになっていてもよい。より厳密には、メモリコントローラ４０は、異なったＱｏＳパラメータセットから引き出されたＱｏＳパラメータ（例えば、ＲＴのＱｏＳパラメータ及びＮＲＴのＱｏＳパラメータ）を比較するように構成されていてもよく、ＱｏＳパラメータに基づいてスケジュールの決定を下すように構成されていてもよい。
【００２１】
幾つかの実施形態では、メモリコントローラ４０は、メモリオペレーションを保留するためにＱｏＳレベルをアップグレードするように構成されていてもよい。様々なアップグレードメカニズムがサポートされることであろう。例えば、メモリコントローラ４０は、或るフローのメモリオペレーションを、同じフロー由来のメモリオペレーションであってより高いＱｏＳレベルを特定しているＱｏＳパラメータを有する別のメモリオペレーションの受信に応えて保留するために、ＱｏＳレベルをアップグレードするように構成されていてもよい。このＱｏＳアップグレードの形式は、帯域内アップグレードと呼ばれており、というのも、通常のメモリオペレーション送信方法を使用して送信されたＱｏＳパラメータが、同じフロー内のメモリオペレーションについて暗黙のアップグレード要求としての役目も果たすからである。メモリコントローラ４０は、新たに受信されたメモリオペレーションがより高いＱｏＳレベルを特定しているということで、同じフロー由来ではなくて同じポート又は同じソース由来の保留中のメモリオペレーションをプッシュするように構成されていてもよい。別の例として、メモリコントローラ４０は、１つ又はそれ以上のエージェントからの側帯インターフェースへ連結するように構成されていて、側帯インターフェースでのアップグレード要求の受信に応えてＱｏＳレベルをアップグレードするようになっていてもよい。別の例では、メモリコントローラ４０は、保留中のメモリオペレーションの相対的な古さを追跡するように構成されていてもよい。メモリコントローラ４０は、或る特定の古さにある古いメモリオペレーションのＱｏＳレベルをアップグレードするように構成されていてもよい。アップグレードが起こる古さは、古いメモリオペレーションの現在のＱｏＳパラメータに依存していてもよい。
【００２２】
メモリコントローラ４０は、ポートで受信されたそれぞれのメモリオペレーションによってアドレス指定されているメモリチャネルを求めるように構成されていて、またメモリオペレーションをメモリ１２Ａ−１２Ｂへ対応するチャネルで送信するように構成されていてもよい。チャネルの数及びアドレス対チャネルのマッピングは、様々な実施形態で異なっていてもよく、メモリコントローラ内でプログラム可能であってもよい。メモリコントローラは、同じチャネルへマップされているメモリオペレーションのＱｏＳパラメータを使用して、チャネルへ送り込まれるメモリオペレーションの順番を決めることになろう。
【００２３】
プロセッサ１６は、何れの命令セットアーキテクチャを実装していてもよく、当該命令セットアーキテクチャに定義されている命令を実行するように構成されていてもよい。プロセッサ１６は、スケーラ、スーパースケーラ、パイプライン式、スーパーパイプライン式、順不同、順繰り、推論的、非推論的、など、又はそれらの組合せ、を含む何れかのマイクロアーキテクチャを採用していてもよい。プロセッサ１６は、回路構成を含んでいてもよく、随意的にはマイクロコーディング技法を実装していてもよい。プロセッサ１６は、１つ又はそれ以上のレベル１キャッシュを含んでいてもよく、而してキャッシュ１８はＬ２キャッシュである。他の実施形態は、プロセッサ１６に複数のキャッシュレベルを含んでいることもあり、するとキャッシュ１８は階層内で次に下のレベルとなる。キャッシュ１８は、何れのサイズまた何れの構成（セット・アソシエイティブ型、ダイレクトマップ型、など）を採用していてもよい。
【００２４】
グラフィックコントローラ３８Ａ−３８Ｂは、何れのグラフィック処理回路構成であってもよい。概して、グラフィックコントローラ３８Ａ−３８Ｂは、表示させるべきオブジェクトをフレームバッファへレンダするように構成されていてもよい。グラフィックコントローラ３８Ａ−３８Ｂは、グフィックオペレーションの一部又は全部及び／又は特定のグラフィックオペレーションのハードウェアアクセラレーションを遂行するグラフィックソフトウェアを実行することのできるグラフィックプロセッサを含んでいてもよい。ハードウェアアクセラレーションの量及びソフトウェア実装は、実施形態により様々であろう。
【００２５】
ＮＲＴ周辺デバイス２０は、何れの非リアルタイム周辺デバイスを含んでいてもよく、それらは、性能上及び／又は帯域上の理由から、メモリ１２Ａ−１２Ｂへの独立したアクセスが提供されている。即ち、ＮＲＴ周辺デバイス２０によるアクセスは、ＣＰＵブロック１４から独立しており、ＣＰＵブロックのメモリオペレーションと並行して進行する。周辺デバイス３２及び／又は周辺デバイスインターフェースコントローラ３４によって制御されている周辺デバイスインターフェースへ連結されている周辺デバイスの様な他の周辺デバイスもまた非リアルタイム周辺デバイスであるが、メモリへの独立したアクセスは要件とされない。ＮＲＴ周辺デバイス２０の様々な実施形態には、映像エンコーダ及びデコーダ、スケーラ／ローテータ回路構成、画像圧縮／圧縮解凍回路構成、など、が含まれよう。
【００２６】
ブリッジ／ＤＭＡコントローラ３０は、（単数又は複数の）周辺デバイス３２及び（単数又は複数の）周辺デバイスインターフェースコントローラ３４をメモリ空間へブリッジする回路構成を備えていてもよい。図示の実施形態では、ブリッジ／ＤＭＡコントローラ３０は、周辺デバイス／周辺デバイスインターフェースコントローラからのメモリオペレーションをＣＰＵブロック１４を通してメモリコントローラ４０へブリッジすることができる。ＣＰＵブロック１４は、更に、ブリッジされたメモリオペレーションとプロセッサ１６／Ｌ２キャッシュ１８からのメモリオペレーションの間のコヒーレンスを維持することもできる。Ｌ２キャッシュ１８は、更に、ブリッジされたメモリオペレーションとプロセッサ１６からのメモリオペレーションとの調停をして、ＣＰＵインターフェース上をＣＰＵポート４４Ｃへ送信させる。ブリッジ／ＤＭＡコントローラ３０は、更に、周辺デバイス３２及び周辺デバイスインターフェースコントローラ３４に代わってＤＭＡオペレーションを提供してデータブロックをメモリへ及びメモリから転送させてもよい。より厳密には、ＤＭＡコントローラは、メモリ１２Ａ−１２Ｂへの又はメモリ１２Ａ−１２Ｂからのメモリコンコントローラ４０経由の転送を、周辺デバイス３２及び周辺デバイスインターフェースコントローラ３４に成り変わって遂行するように構成されていてもよい。ＤＭＡコントローラは、ＤＭＡオペレーションを遂行するように、プロセッサ１６によってプログラム可能であってもよい。例えば、ＤＭＡコントローラは、記述子によりプログラム可能であってもよい。記述子は、メモリ１２Ａ−１２Ｂに格納されているデータ構造であってＤＭＡ転送（例えば、ソースアドレス及び宛先アドレス、サイズ、など）を記述するデータ構造である。代わりに、ＤＭＡコントローラは、ＤＭＡコントローラ内のレジスタ（図示せず）によりプログラム可能であってもよい。
【００２７】
周辺デバイス３２には、何れの所望の入力／出力デバイスも又は集積回路１０上に含まれている他のハードウェアデバイスも含めることができる。例えば、周辺デバイス３２は、イーサネット（登録商標）ＭＡＣの様な１つ又はそれ以上のネットワークキングメディアアクセスコントローラ（ＭＡＣ）又はワイヤレスファイデリティ（ＷｉＦｉ）コントローラの様なネットワーク化周辺デバイスを含んでいてもよい。周辺デバイス３２には、様々な音声処理デバイスを含む音声ユニットが含まれていてもよい。周辺デバイス３２には、１つ又はそれ以上のデジタル信号プロセッサが含まれていてもよい。周辺デバイス３２は、タイマー、オンチップ秘密メモリ、暗号化エンジン、など、又はそれらの何らかの組合せ、の様な何れの他の所望の機能を含んでいてもよい。
【００２８】
周辺デバイスインターフェースコントローラ３４は、任意の型式の周辺デバイスインターフェースのための何れのコントローラを含んでいてもよい。例えば、周辺デバイスインターフェースコントローラには、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）コントローラ、フラッシュメモリインターフェース、汎用入力／出力（Ｉ／Ｏ）ピン、など、を含めることができる。
【００２９】
メモリ１２Ａ−１２Ｂは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、など）ＳＤＲＡＭ（ｍＤＤ３などの様なＳＤＲＡＭのモバイルバージョン及び／又はＬＰＤＤＲ２などの様なＳＤＲＡＭの低パワーバージョンを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、など、の様な何れの型式のメモリであってもよい。１つ又はそれ以上のメモリデバイスは、回路板へ連結されて、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、など、の様なメモリモジュールを形成していてもよい。代わりに、デバイスは、チップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成の集積回路が搭載されていてもよい
【００３０】
メモリＰＨＹ４２Ａ−４２Ｂは、メモリ１２Ａ−１２Ｂへの低レベルの物理的インターフェースに対処していてもよい。例えば、メモリＰＨＹ４２Ａ−４２Ｂは、シンクロナスＤＲＡＭメモリ、など、への正しいクロッキングのための信号のタイミングに責任を負っていてもよい。１つの実施形態では、メモリＰＨＹ４２Ａ−４２Ｂは、集積回路１０内で供給されるクロックをロックするように構成されていてもよく、メモリ１２によって使用されるクロックを生成するように構成されていてもよい。
【００３１】
他の実施形態は、図１に示されている構成要素及び／又は他の構成要素のサブセット又は上位セットを含め、構成要素の他の組合せを含んでいてもよいことを指摘しておく。所与の構成要素の１つのインスタンスが図１に示されているが、他の実施形態は、所与の構成要素の１つ又はそれ以上のインスタンスを含んでいてもよい。同様に、この詳細な説明全体を通して、所与の構成要素のインスタンスについては、たとえ１つのインスタンスしか示されていなくても１つ又はそれ以上のインスタンスが含まれていてもよく、及び／又は、たとえ複数のインスタンスが示されていてもインスタンスを１つしか含んでいない実施形態が使用されてもよい。
【００３２】
次に図２を参照すると、ディスプレイパイプ２６の１つの実施形態のブロック線図が示されている。複数のディスプレイ（図示されていないディスプレイコントローラによって制御されるか又は対応するディスプレイパイプ２６によって直接制御されている）へ連結するためにディスプレイパイプ２６の複数のインスタンスが設けられていてもよい。図２に示されている様に、ディスプレイパイプ２６は、１つ又はそれ以上のユーザーインターフェース（ＵＩ）ユニットを含んでいてもよく、この事例ではＵＩ０  ５０Ａ及びＵＩ０  ５０Ｂの２つのインターフェースが示されている。更に、映像ユニット５２の様な１つ又はそれ以上の映像ユニットがブレンドユニット５４と共に含まれていてもよい。更にホストインターフェースユニット（ホストＩ／Ｆ）６４が含まれていてもよい。それぞれのユーザーインターフェースユニット５０Ａ−５０Ｂは、バッファ５６とスケーラ５８とフェッチ／翻訳ユニット（フェッチ／ＴＵ）６０のインスタンスを含んでいてもよい。バッファ５６は、ホストインターフェースユニット６４からの画像データを受信し、データをスケーラ５８へ提供する、ように連結されていてもよい。スケーラ５８は、画素をブレンドのためのアルファ値と共にブレンドユニット５４へ出力するように構成されていてもよい。フェッチ／ＴＵ６０は、ホストインターフェースユニット６４からの翻訳データを受信してメモリオペレーションをポートアービタ２８（及び最終的にはメモリコントローラ４０）への送信に向けてホストインターフェースユニット６４へ提供するように連結されていてもよい。映像ユニット５２は、映像パイプ６２及び１つ又はそれ以上のフェッチ／ＴＵ６０を含んでいてもよい。例えば、映像ユニット５２は、映像シーケンス中のそれぞれの像平面についてフェッチ／ＴＵ６０を含んでいてもよい。様々な像平面がビデオ画像を描くことであろう。例えば、像平面は色平面（例えば、赤、緑、青、又はＹ、Ｃｒ、Ｃｂ）であってもよい。映像ユニット５２の（単数又は複数の）フェッチ／ＴＵ６０は、メモリオペレーションをホストインターフェースユニット６４へ提供し翻訳データをホストインターフェース６４から受信するように連結されていてもよい。映像パイプ６２は、ビデオ画像をホストインターフェースユニット６４から受信するように連結されていてもよい。
【００３３】
フェッチ／ＴＵ６０のそれぞれは、対応する画像処理パイプライン５０Ａ-５０Ｂ又は５２のためのソース画像データをフェッチするように構成されていてもよい。ソース画像は仮想的にアドレス指定されるものであり、フェッチ／ＴＵ６０はメモリオペレーションにデータを読み出させるために仮想アドレスを物理アドレスへ翻訳する翻訳ユニットを含んでいてもよい。フェッチ／ＴＵ６０は、更に、表示させるソース画像の初期化に応えて、及びソース画像の１つ又はそれ以上の仮想ページｐｆ中のデータの処理の完了に応えて、メモリから翻訳をプリフェッチするメモリ読み出しオペレーションを生成するように構成されていてもよい。翻訳読み出しオペレーションと画像データフェッチ読み出しオペレーションはどちらも、フェッチ／ＴＵ６０によって、ホストインターフェースユニット６４へ送信され、するとホストインターフェースユニット６４がそれらオペレーションをポートアービタ２８へ送信する。読み出しオペレーションでデータが返されると、ホストインターフェースユニット６４は受信側パイプライン５０Ａ-５０Ｂ又は５２のためにデータをタグ付けし、データが翻訳データであるか又は画像データであるかを指し示すようにしてもよい。次いで、受信側ユニットは、適宜、フェッチ／ＴＵ６０又は画像処理パイプラインのデータを捕獲する。
【００３４】
概して、画像データは、表示させるソース画像を記述するものである。或る実施形態では、ユーザーインターフェース画像用の画像データは、画素データとブレンドのためのアルファ値を含んでいる。画素データは、それぞれの画素の色を記述するものである。画素データは、バッファ５６に格納されてもよく、随意的にはスケーラ５８によってスケーリングされてもよい。スケール係数は、ユーザーインターフェースユニット５０Ａ−５０Ｂへプログラムされていてもよいし、画像データ中に提供されていてもよい。スケーリングされた画素は、出力画素としてブレンドユニット５４へアルファ値と共に提供されることになろう。或る実施形態では、ユーザーインターフェースユニット５０Ａ−５０Ｂは、ソース画像のプログラム可能なアクエィブ領域をサポートしていてもよい。アクティブ領域は、表示させるソース画像の一部の部分のみを定義していてもよい。或る実施形態では、ユーザーインターフェースユニット５０Ａ−５０Ｂは、アクティブ領域内のデータのみをフェッチするように構成されていてもよい。アクティブ領域外では、アルファ値０のダミーデータが画素データとして渡されることになろう。
【００３５】
１つの実施形態では、映像パイプ６２は、メモリからのフェッチされた映像フレームデータ／情報であってＹＣｂＣｒフォーマットであってもよいとされる映像フレームデータ／情報を受信すると、データへランダムノイズを挿入（ディザー）し、随意的にはデータを垂直方向及び水平方向の一方又は両方の方向へスケーリングし、ユーザーインターフェースユニット５０Ａ−５０Ｂからの他の画像データとのブレンドに向けてデータをＲＧＢ色空間へ変換することになる。
【００３６】
ブレンドユニット５４は、ユーザーインターフェースユニット５０Ａ−５０Ｂ及び映像ユニット５２から画素のフレームを受信し、それらを一層ずつ重ね合わせてブレンドするように構成されていてもよい。その結果最終的に得られた画素が、出力ＦＩＦＯの待ち行列に入れられ、ディスプレイコントローラによってフェッチされることになる。ブレンドユニット５４の最下層は背景色であると定義してもよい。層１が層０とブレンドされる。次の層である層２がブレンド済みの層０及び層１とブレンドされ、以下その様にブレンドされてゆき、終には層全てがブレンドされる。
【００３７】
図３は、ディスプレイパイプ２６のための仮想アドレス空間内のソースバッファ７０を示しているブロック線図である。ソースバッファ７０は、ソースベースアドレス７２による仮想アドレス空間に配置されている。図示の実施形態では、ソースバッファ７０は、画像タイル７４のセットとして配列されている。他の実施形態では、ソースバッファ７０は、走査線に配列されていてもよいし、走査線配列とタイル配列の間で選択するようプログラム可能であってもよい。タイル配列では、タイル内の画素が連続した仮想メモリ場所に格納された末に、次のタイルへ移る。次のタイルは水平方向に隣接している次のタイルであり、終にはソースバッファ７０の幅の終わり（例えば図３ではタイルＮ−１）に至ると、次のタイルは次のタイル行の最初のタイル（例えば図３ではタイルＮ）ということになる。走査線配列では、ソースバッファ７０の幅に亘る一行の画素が連続したメモリ場所へ格納された末に次の行に移る。タイル配列は、例えば画像が圧縮される場合又は圧縮された画像から圧縮解凍される場合に使用される。多くの圧縮アルゴリズムは、例えばタイル同士を比較して１つのタイルと次のタイルの間の差を格納することによって動作している。
【００３８】
図３に示されている様なタイル配列では、１つ又はそれ以上のタイルはそれぞれの仮想ページに格納されることになろう。タイルのサイズは、タイル幅（ＴＷ）とタイル高さ（ＴＨ）に関して測定される。或る実施形態では、タイル幅はバイトで測定され、タイル高さは画素行で測定される。１つの例では、タイル幅は２５６バイト、タイル高さは１６行とされているが、他の例では、一方又は両方についてより大きなサイズ及びより小さいサイズが使用されてもよい。例として、それぞれのタイルが１つの４キロバイトページであり、するとそれぞれのタイルは、仮想ページサイズが４キロバイトなら、１つの翻訳に相当する。他の実施形態では、仮想ページは複数のタイルを含んでいることもあれば、１つのタイルが複数のページに亘って広がっていることもあろう。
【００３９】
ソースバッファ７０内に、スケール領域７６が定義されていることもある。スケール領域７６は、表示させるソース画像としてもよい。ソースバッファ７０は、システム内でサポートされている最大サイズの画像であってもよいが、画像は最大より小さい又は最大に等しい何れのサイズであってもよい。スケール領域は、ソース画像が、以上に論じられている様に画像処理パイプラインのスケーラによってスケーリングされることからその様に呼ばれている。ソースベースアドレス７２が画像処理パイプラインへプログラムされ、同様にスケール領域７６の場所及びサイズもプログラムされる。
【００４０】
図３に示されている様に、ソースバッファ７０の幅に及んでいるタイルの数をＮとし、ここにＮは整数とする。例えば、或る実施形態では、ソースバッファ７０は、４キロバイトの幅であるとして、タイル幅が２５６バイトなら、Ｎは１６ということになる。他の実施形態では、他の幅が使用されていてもよい。
【００４１】
図４は、スケール領域７６のフェッチングが開始されたときのソースバッファ７０とスケール領域７６を示している。フェッチ／ＴＵ６０は、フェッチされるスケール領域７６の第１の画素を含んでいるタイルから初めて、最初の２Ｎ分の翻訳をプリフェッチすることになる。図４の例では、開始タイルはタイル２Ｎ＋１であり、従って最初の２Ｎ分のタイルの最終タイル（及び翻訳）はタイル４Ｎである。これらのタイルは、初めにプリフェッチされる翻訳を示すために図４に線点で描かれている。図４は、更に、処理のもっと後の時点、即ち１つ目のタイル行が完了した後の、ソースバッファ７０とスケール領域７６を示している（矢印８０）。この時点で、フェッチ／ＴＵ６０は、タイル２Ｎ＋１から３Ｎ−１までの範囲内の画素のフェッチングを完了している。その結果、これらの翻訳はタイル３Ｎについての翻訳共々無効にされてしまっている。従って、タイル４Ｎ＋１からタイル５Ｎまでの新たな翻訳がプリフェッチされたところである。
【００４２】
フェッチ／ＴＵ６０は、フェッチ／ＴＵ６０のフェッチとタイルとの間の不一致を許容するために、２Ｎ分の翻訳（ここにＮはソースバッファ７０の幅に亘るタイルの数である）をプリフェッチするように構成されているものである。例えば、或る実施形態では、フェッチ／ＴＵ６０は、ソースバッファ７０から一度に５ライン分をフェッチするように構成されていてもよい。その結果、何れの所与の時点でも、フェッチは同時にタイル２行を含んでいることであろう。現在の行の最後のタイルが完全にフェッチされてしまうと、当該行の翻訳は廃棄され、次の２行についての翻訳が翻訳のプリフェッチングを介して利用可能（又は概ね利用可能）になる。こうして、多くの場合、画像データフェッチは翻訳ミスを一切被らないことであろう。
【００４３】
図４の例では、各行の最初のタイルは使用されていないことを指摘しておく。即ち、画像処理パイプラインは、スケール領域７６内のデータだけをフェッチするものとされる。従って、各行の最初のタイルについての翻訳は必要でない。一般的に、ソースバッファ７０及びスケール領域７６の定義に依っては、それぞれの行に、必要でない翻訳が１つ又はそれ以上あるかもしれない。幾つかの実施形態では、フェッチ／ＴＵ６０は、使用されることのないタイルについての翻訳のフェッチングを回避するようになっていてもよい。他の実施形態では、フェッチ／ＴＵ６０は、単純に、１つ１つの翻訳をフェッチしている（不使用翻訳をフェッチするための追加の帯域量が比較的小さいため）。
【００４４】
図５は、フェッチ／ＴＵ６０の１つの実施形態のブロック線図である。図５の実施形態では、フェッチ／ＴＵ６０は、翻訳ユニット９０（翻訳コントロールユニット９０Ａ及び翻訳バッファメモリ９０Ｂを含む）と、フェッチコントロールユニット９２と、構成レジスタ９４のセットと、を含んでいる。フェッチコントロールユニット９２及び翻訳コントロールユニット９０Ａは、構成レジスタ９４へ連結されていてもよい。フェッチコントロールユニット９２は、更に、ホストインターフェースユニット６４及び翻訳コントロールユニット９０Ａへ連結されていてもよい。翻訳コントロールユニット９０Ａは、翻訳バッファメモリ９０Ｂへ連結され、翻訳コントロールユニット９０Ａ及び翻訳バッファメモリ９０Ｂはホストインターフェースユニット６４からデータを受信するように連結されていてもよい。
【００４５】
概して、フェッチコントロールユニット９２は、画像データフェッチメモリオペレーションを求める要求及び翻訳データフェッチオペレーションを求める要求を（翻訳コントロールユニット９０Ａになり代わって）生成するように構成されている。他の実施形態では、フェッチコントロールユニット９０Ａは、翻訳データフェッチ要求を、ホストインターフェースユニット６４への別個の接続を介して送信していてもよい。フェッチコントロールユニット９２は、画像データをフェッチすると、仮想ページアドレス（図５のＶＡ）を翻訳コントロールユニット９０Ａへ送信するように構成されていてもよい。翻訳コントロールユニット９０Ａは、対応するエントリを翻訳バッファメモリ９０Ｂから読み出す（図５のＲｅａｄ  Ａ）ように構成されていてもよく、メモリは対応するエントリから物理アドレス及び有効ビットを返す（図５のＲｅａｄ  ＰＡ、Ｖ）ようになっていてもよい。翻訳コントロールユニット９０Ａは、翻訳が有効であることをチェックし、翻訳が有効でない場合にはページフォールト（ＰＦ）を、或いは翻訳が有効である場合には物理アドレス（ＰＡ）を、フェッチコントロールユニット９２へ返すようになっていてもよい。他の実施形態では、更に、許可制御の様な追加の翻訳属性がチェックされていてもよく、翻訳が有効でないか又は属性がアクセスを許可しない場合には、ページフォールトが合図されるようになっていてもよい。
【００４６】
加えて、フェッチコントロールユニット９２が新たなソース画像のフェッチを開始しようとするとき、フェッチコントロールユニット９２は、開始仮想アドレスを送信するように構成されていて、新たなソース画像のスタート（図５のＳｔａｒｔ）を合図するようになっていてもよい。新たなソース画像のスタートに応えて、翻訳コントロールユニット９０Ａは、翻訳バッファ９０Ｂをクリアにし、開始仮想アドレスの翻訳から始まる翻訳についてプリフェッチを開始する、ように構成されていてもよい。フェッチコントロールユニット９２は、更に、所与の仮想ページからのデータのフェッチングが完了したことを指し示すフリー指示（図５のＦｒｅｅ）を送信するように構成されていてもよい。翻訳コントロールユニット９０Ａは、翻訳バッファメモリ９０Ｂ内の対応する翻訳を無効にし、直近にフェッチされた仮想アドレスに連続する追加の翻訳をプリフェッチする、ように構成されていてもよい。翻訳コントロールユニット９０Ａは、翻訳がプリフェッチされた直近の仮想アドレスを格納して（ＭｓｔＲｃｎｔＶＡレジスタ９６）、追加の翻訳プリフェッチを生成するように構成されていてもよい。１つの実施形態では、フリー指示は、最も古いものを先に一度に１つずつ翻訳を解放するようアサートされる信号であってもよい。別の実施形態では、フリー指示は、フリーにする最も古い翻訳の数のカウントであってもよい。更に他の実施形態では、解放させるページの仮想アドレスが供給されてもよい。
【００４７】
翻訳コントロールユニット９０Ａは、１つの実施形態では、翻訳バッファメモリ９０Ｂを先入れ先出し（ＦＩＦＯ）バッファとして管理するように構成されていてもよい。従って、メモリ９０Ｂに対する先頭及び末尾のポインタが（例えばレジスタ９８内に）維持されていてもよい。翻訳コントロールユニット９０Ａは、メモリ９０Ｂを満たすプリフェッチ（図５のＰｒｅｆ）を生成するように構成されていてもよい。ホストインターフェースユニット６４によってプリフェッチデータが返されたとき、翻訳コントロールユニット９０Ａは書き込みアドレス（図５のＷｒｉｔｅ  Ａ）を生成して翻訳バッファメモリ９０Ｂを更新するように構成されていてもよい。
【００４８】
翻訳バッファメモリ９０Ｂは、概して、エントリのセットへ配列されている何れの型式のメモリ（例えば、ランダムアクセスメモリ、レジスタ又はフロップのセット、など）を備えていてもよい。それぞれのエントリは、翻訳（例えば、図示の実施形態でのＰＡ及び有効ビット、他の実施形態での実施可能な他の属性）を格納するものである。従って、翻訳バッファ９０Ｂは、或る実施形態では、２Ｎ分のエントリを含んでいる。幾つかの実施形態では、エントリには翻訳の仮想ページ番号も保存され、フェッチコントロールユニット９２からの仮想アドレスは、ヒットを検知するべくメモリ９０Ｂと対照されてゆく（又は、ヒットすると期待されるエントリが読み出され、仮想アドレスがエントリからの仮想ページと比較されるようになっていてもよい）。
【００４９】
構成レジスタ９４は、様々なプログラム可能な値をフェッチ／ＴＵユニット６０に格納することができる。レジスタ９４には、例えば、ソースベースアドレス７２（仮想アドレス）が格納されてもよい。レジスタ９４には、同様に１つ又はそれ以上のページ表ベースアドレス（物理アドレス）が格納されてもよい。それぞれのページ表ベースアドレスは、メモリ内のページ表を位置指定している。例えば、図５の実施形態では、ページ表ベースゼロ（ＰＴＢａｓｅ０）、ＰＴＢａｓｅ１、及びＰＴＢａｓｅ２の、３つのページ表ベースアドレスがサポートされている。フェッチ／ＴＵ６０によってサポートされるページ表の数は、ソースバッファ７０の最大サポートサイズに基づくことであろう。それぞれのページ表は、例えばサイズを１ページとし、特定の数の翻訳を格納するものとしてもよい。そうすると、最大実施可能ソースバッファ７０によってカバーされるページ数をページ表１つに格納される翻訳の数で割ったものが、フェッチ／ＴＵ６０によってサポートされるページ表の数ということになる。他の実施形態は、ページ表ベースアドレスの最大数より少ないページ表をサポートしており、レジスタ９４はソース画像が処理されると更新されるようになっていてもよい。
【００５０】
翻訳コントロールユニット９０Ａは、翻訳データが提供されようとしているという指示と併せてホストインターフェース６４によって供給される翻訳データの有効ビット（Ｄａｔａ  Ｖ）を受信するように連結されていてもよい。翻訳コントロールユニット９０Ａは、翻訳が提供されようとしていることを検知し、応えて翻訳メモリ９０Ｂを更新することになろう。
【００５１】
図６は、フェッチコントロールユニット９２の１つの実施形態の或る特定のオペレーションを説明するフローチャートである。理解し易くするために、図６ではブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、フェッチコントロールユニット９２の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び／又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。フェッチコントロールユニット９２は、図６に示されているオペレーションを実施するように構成されていてもよい。
【００５２】
フェッチコントロールユニット９２が、スケール領域７６内の開始仮想アドレスをフェッチしようと準備している（例えば、ソース画像の最初の画素／タイル−判定ブロック１００、「イエス」の行程）場合、フェッチコントロールユニット９２は、翻訳コントロールユニット９０Ａへスタートを合図する（ブロック１０２）ように構成されていてもよい。フェッチコントロールユニット９２は、翻訳に向けて開始仮想アドレスを翻訳コントロールユニット９０Ａへ送信する（ブロック１０４）ように構成されていてもよい。仮想アドレスが開始仮想アドレスでない（判定ブロック１００、「ノー」の行程）場合には、スタートは合図されないが、なおも仮想アドレスは翻訳のために送信される（ブロック１０４）ことになる。
【００５３】
翻訳がページフォールトを生じさせた（仮想アドレスに応えた翻訳コントロールユニット９０Ａによってフェッチコントロールユニット９２へ合図される−判定ブロック１０６、「イエス」の行程）場合、フェッチコントロールユニット９２は、割り込みをプロセッサ１６のうちの１つへ送る（ブロック１０８）ように構成されていて、データのフェッチングを停止させてもよい。フェッチコントロールユニット９２は、翻訳が成功しなかった仮想アドレスを格納するレジスタを含んでいてもよい。代わりに、翻訳コントロールユニット９０Ａは、前記レジスタを含んでいてもよいし、或いはレジスタ９６内の直近ＶＡをフォールトを生じさせている仮想アドレスで上書きするように構成されていてもよい。
【００５４】
翻訳が、ページフォールトを生じさせていない（判定ブロック１０６、「ノー」の行程）場合、フェッチコントロールユニット９２は、翻訳コントロールユニット９０Ａから物理アドレス（ＰＡ）を受信することであり、ＰＡを使用してフェッチ要求を送信する(ブロック１１０)ように構成されていてもよい。幾つかの実施形態では、フェッチコントロールユニット９２は、翻訳からのＰＡを保持するように構成されていて、物理ページ内でフェッチコントロールユニット９２がページの終わりにたどりつくまでフェッチを生成することになる。他の実施形態では、フェッチコントロールユニット９２は、物理ページ内のフェッチの度毎に再度翻訳を読み出すようになっていてもよい。
【００５５】
フェッチコントロールユニット９２は、フェッチが物理ページの終わりにたどり着いたときにそれを検知する（判定ブロック１１２、「イエス」の行程）ように構成されていて、翻訳コントロールユニット９０Ａへフリーを合図し（ブロック１１４）、翻訳コントロールユニット９０Ａに対応する翻訳を無効にさせ新たな翻訳をプリフェッチさせるようにしてもよい。別の実施形態では、フェッチコントロールユニット９２は、複数のフリーページを溜めこんだ末に複数ページについてフリーを合図するようになっていてもよい。更に別の実施形態では、翻訳コントロールユニット９０Ａは、別の翻訳プリフェッチ要求を出すのに先立って複数のフリーを溜めるようになっていてもよい。フェッチコントロールユニット９２は、更に、翻訳及びフェッチ生成のために別のＶＡを発行する（ブロック１０４）ように構成されていてもよい。
【００５６】
スケール領域７６のフェッチングが完了していない（判定ブロック１１６、「ノー」の行程）場合、フェッチコントロールユニット９２は、ＰＡからの追加のフェッチ（ブロック１１０）を生成するように構成されていてもよい。
【００５７】
図７は、フェッチコントロールユニット９２の１つの実施形態の或る特定の追加のオペレーションを説明するフローチャートである。理解し易くするために、図７ではブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、フェッチコントロールユニット９２の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び／又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。フェッチコントロールユニット９２は、図７に示されているオペレーションを実施するように構成されていてもよい。翻訳プリフェッチ要求を受信したこと（判定ブロック１２０、「イエス」の行程）に応えて、フェッチコントロールユニット９２は、１つ又はそれ以上のページ表エントリを読み出すページ表読み出し要求を送信する（ブロック１２２）ように構成されていてもよい。ページ表エントリは、翻訳コントロールユニット９０Ａによってプリフェッチされた直近の仮想アドレスに連続した次の仮想ページに対応するページ表エントリを含むものである。追加のページ表エントリも同様に読み出される。１つの実施形態では、連続した仮想アドレスは、ページ表の連続したページ表エントリをアドレス指定している。従って、一度に複数のページ表エントリをプリフェッチすると、近い将来に翻訳ユニット９０によって必要とされるであろう複数の翻訳がプリフェッチされることになる。
【００５８】
次に図８を参照すると、翻訳コントロールユニット９０Ａの１つの実施形態の或る特定のオペレーションを説明するフローチャートが示されている。理解し易くするために、図８ではブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、翻訳コントロールユニット９０Ａの組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び／又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。翻訳コントロールユニット９０Ａは、図８に示されているオペレーションを実施するように構成されていてもよい。
【００５９】
翻訳コントロールユニット９０Ａがフェッチコントロールユニット９２からフリー指示を受信した（判定ブロック１３０、「イエス」の行程)場合、翻訳コントロールユニット９０Ａは、翻訳バッファ９０Ｂ内の１つ又はそれ以上の翻訳を無効にする（ブロック１３２）ように構成されていてもよい。例えば、或る実施形態では、翻訳コントロールユニット９０Ａは、翻訳バッファ９０ＢをＦＩＦＯとして管理するように構成されていてもよい。その様な実施形態では、バッファ内の最も古い翻訳はＦＩＦＯの末尾ポインタのところにあろう。翻訳コントロールユニット９０Ａは、翻訳がプリフェッチされた直近の仮想ページに隣接している（又は連続している）仮想ページについての翻訳プリフェッチ要求を生成する（ブロック１３４）ように構成されていてもよい。以上に論じられている様に、直近の仮想アドレスはレジスタ９６内にあるとされている。どれ程多くのページがフリーになるかに依って、１つ又はそれ以上のプリフェッチが生成されることであろう。一般的に、翻訳コントロールユニット９０Ａは、翻訳バッファ９０Ｂを満たすのに十分な翻訳をプリフェッチするように構成されていてもよい。翻訳コントロールユニット９０Ａは、更に、レジスタ９６内の直近の仮想アドレスを更新する（ブロック１３６）ように構成されていてもよい。或る実施形態では、翻訳コントロールユニット９０Ａは、複数の翻訳プリフェッチが発せられる態勢が整うまで、翻訳プリフェッチ要求を出すのを遅らせるように構成されていてもよい。
【００６０】
フェッチコントロールユニット９２からのスタート指示を仮想アドレスと共に受信したこと（判定ブロック１３８、「イエス」の行程）に応えて、翻訳コントロールユニット９０Ａは、翻訳バッファ９０Ｂをクリアし、当該仮想アドレスから始まる２Ｎ分の翻訳（ここに、Ｎは１行中のタイルの数又は行中の画素の数）をプリフェッチする（ブロック１４０）、ように構成されていてもよい。翻訳コントロールユニット９０Ａは、更に、直近ＶＡレジスタ９６を、２Ｎ分の翻訳の最後の翻訳に対するＶＡで更新する（ブロック１４２）ように構成されていてもよい。
【００６１】
そうではなく、スタート指示が提供されていない翻訳要求（判定ブロック１３８、「ノー」の行程）に応えて、翻訳コントロールユニット９０Ａは、翻訳バッファからＶＡについて対応する翻訳を読み出す（ブロック１４４）ように構成されていてもよい。翻訳が有効である（判定ブロック１４６、「イエス」の行程）場合、翻訳コントロールユニット９０Ａは、対応する翻訳からのＰＡをフェッチコントロールユニット９２へ供給する（ブロック１４８）ように構成されていてもよい。翻訳が有効でない（判定ブロック１４６、「ノー」の行程）場合、翻訳コントロールユニット９０Ａは、フェッチコントロールユニット９２へページフォールトを合図する（ブロック１５０）ように構成されていてもよい。
【００６２】
幾つかの実施形態では、翻訳ユニット９０によって使用されている翻訳は、有効ビットに加えて１つ又はそれ以上の保護／制御属性を含んでいてもよいことを指摘しておく。例えば、その様な属性には、読み出し許可及び書き込み許可が含められる。読み出し許可が提供されなければ、翻訳は読み出しを許可されないようになっていてもよい。許可は、特権レベルに基づいていてもよい。任意の属性セットが提供され、チェックされてもよい。チェックに合格したら、ＰＡが供給されることであろう。チェックに不合格なら、ページフォールトが合図されることであろう。
【００６３】
次に図９を参照すると、メモリ１２（図１の実施形態のメモリ１２Ａ-１２Ｂに及んでいてもよい）の１つの実施形態のブロック線図が示されている。メモリ１２は、様々なページ表１６０Ａ−１６０Ｃを格納していて、それらページ表のそれぞれは各ページ表ベースアドレス（図９では、ＰＴＢａｓｅ０、ＰＴＢａｓｅ１、及びＰＴＢａｓｅ２）によって位置指定されていてもよい。それぞれのページ表１６０Ａ−１６０Ｂは、翻訳エントリのセットを含んでいて、それら翻訳エントリのそれぞれは、この実施形態ではメモリ１２内のタイルを位置指定している。こうして、物理アドレスＰＡ０はタイル０  １６２Ａを位置指定し、ＰＡ２はタイル１  １６２Ｂを位置指定している、という具合である。ソースバッファ７０内のページ（例えばこの実施形態ではタイル）の連続したＶＡは、所与のページ表１６０Ａ−１６０Ｃ内の連続した翻訳によって翻訳されることになる。ページ表１６０Ａ−１６０Ｂの最後の翻訳がフェッチされたら、次の連続した翻訳は、次のページ表１６０Ｂ−１６０Ｃのそれぞれ最初の翻訳ということになる。
【００６４】
次に図１０を参照すると、システム３５０の１つの実施形態のブロック線図が示されている。図示の実施形態では、システム３５０は、外部メモリ１２（例えば図１のメモリ１２Ａ−１２Ｂ）へ連結されている集積回路１０の少なくとも１つのインスタンスを含んでいる。集積回路１０は、１つ又はそれ以上の周辺デバイス３５４及び外部メモリ１２へ連結されている。集積回路１０への供給電圧並びにメモリ１２及び／又は周辺デバイス３５４への１つ又はそれ以上の供給電圧を供給する電源３５６も提供されている。幾つかの実施形態では、集積回路１０のインスタンスが２つ以上含まれていてもよい（また同様に２つ以上の外部メモリ１２が含まれていてもよい）。
【００６５】
周辺デバイス３５４は、システム３５０の型式に依存して、何れの所望の回路構成を含んでいてもよい。例えば、１つの実施形態では、システム３５０は、モバイルデバイス（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、など）であってもよく、周辺デバイス３５４には、ｗｉｆｉ、ブルートゥース、セルラー、全地球測位システム、など、の様な、様々な型式のワイヤレス通信用のデバイスを含めることができる。周辺デバイス３５４には、ＲＡＭストレージ、ソリッドステートストレージ、又はディスクストレージ、を含め、追加のストレージも含まれる。周辺デバイス３５４には、タッチディスプレイスクリーンやマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力デバイス、マイクロフォン、スピーカ、など、の様なユーザーインターフェースデバイスを含めることができる。他の実施形態では、システム３５０は、何れかの型式のコンピューティングシステム（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、など）であってもよい。
【００６６】
以上の開示がくまなく理解されたからには、当業者には数多くの変型及び修正が自明となることであろう。付随の特許請求の範囲は、その様な変型及び修正全てを網羅すると解釈されるべきものとする。
【符号の説明】
【００６７】
５  システム
１０  集積回路（ＩＣ）
１２Ａ−１２Ｂ  メモリ
１４  中央プロセッサユニット（ＣＰＵ）ブロック
１６  プロセッサ
１８  レベル２（Ｌ２）キャッシュ
２０  非リアルタイム（ＮＲＴ）周辺デバイス
２２  リアルタイム（ＲＴ）周辺デバイス
２４  画像プロセッサ
２６  ディスプレイパイプ
２８  ポートアービタ
３０  ブリッジ／ダイレクトメモリアクセス（ＤＭＡ）コントローラ
３２  周辺デバイス
３４  周辺デバイスインターフェースコントローラ
３６  グラフィックユニット
３８Ａ−３８Ｅ  グラフィックコントローラ
４０  メモリコントローラ
４２Ａ−４２Ｂ  メモリ物理的インターフェース回路（ＰＨＹ）
４４Ａ−４４Ｅ  ポート
４６  翻訳ユニット
５０Ａ−５０Ｂ  ユーザーインターフェースユニット
５２  映像ユニット
５４  ブレンドユニット
５６  バッファ
５８  スケーラ
６０  フェッチ／翻訳ユニット（フェッチ／ＴＵ）
６２  映像パイプ
６４  ホストインターフェースユニット
７０  ソースバッファ
７２  ソースベースアドレス
７４  画像タイル
７６  スケール領域
９０  翻訳ユニット
９０Ａ  翻訳コントロールユニット
９０Ｂ  翻訳バッファメモリ
９２  フェッチコントロールユニット
９４  構成レジスタ
９６  直近仮想アドレスレジスタ
９８  レジスタ
１６０Ａ、１６０Ｂ、１６０Ｃ  ページ表
１６２Ａ、１６２Ｂ  タイル
３５０  システム
３５４  周辺デバイス
３５６  電源
ＴＷ  タイル幅
ＴＨ  タイル高さ
【図１】
2013543195.tif 000003
【図２】
2013543195.tif 000004
【図３】
2013543195.tif 000005
【図４】
2013543195.tif 000006
【図５】
2013543195.tif 000007
【図６】
2013543195.tif 000008
【図７】
2013543195.tif 000009
【図８】
2013543195.tif 000010
【図９】
2013543195.tif 000011
【図１０】
2013543195.tif 000012
【手続補正書】
【提出日】平成25年7月17日(2013.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のエントリを備えるメモリであって、それぞれのエントリが画像データのソースバッファに対応する異なった仮想ページについての翻訳を格納するように構成されている、メモリと、
前記メモリへ連結されている制御回路であって、メモリを翻訳の先入れ先出しバッファ（ＦＩＦＯ）として維持するように構成されていて、前記ソースバッファに対応する１つ又はそれ以上の仮想ページからのデータフェッチングが完了したことの指示を受信するように連結されていて、前記指示に応えて対応する１つ又はそれ以上の最も古い翻訳を前記メモリから廃棄して前記ソースバッファに対応する他の仮想ページについての追加の翻訳をプリフェッチするように構成されている、制御回路において、前記他の仮想ページは、２番目の仮想ページに隣接している１番目の仮想ページを含んでおり、前記２番目の仮想ページについての翻訳は、前記メモリ内に格納されている前記翻訳のうちの直近にフェッチされた翻訳である、制御回路と、を備えている翻訳ユニット。
【請求項２】
前記制御回路は、前記ソースバッファからの画像データの処理が始まろうとしていることを指し示すスタート指示を受信するように連結されており、前記翻訳ユニットは、前記スタート指示に応えて前記翻訳のメモリをクリアにするように構成されている、請求項１に記載の翻訳ユニット。
【請求項３】
前記制御回路は、前記ソースバッファから或る数の連続した仮想ページについての翻訳をプリフェッチするように構成されており、前記数は、前記メモリ内の前記複数のエントリの数に等しい、請求項２に記載の翻訳ユニット。
【請求項４】
前記数は、前記ソースバッファの一行中の仮想ページの数の二倍である、請求項３に記載の翻訳ユニット。
【請求項５】
複数の画像処理パイプラインであって、そのそれぞれが、当該画像処理パイプラインのための画像データをフェッチするように構成されているフェッチ／メモリ管理ユニットを含んでおり、前記フェッチ／メモリ管理ユニットは、請求項１に記載の翻訳ユニットを備えている、複数の画像処理パイプラインと、
前記複数の画像処理パイプラインへ連結されているホストインターフェースであって、前記複数の翻訳についてのプリフェッチオペレーション及びメモリへの前記画像データについてのフェッチオペレーションを送信するように構成されている、ホストインターフェースと、を備えているディスプレイパイプ。
【請求項６】
前記複数の画像処理パイプラインは、静止画像をフェッチするように構成されている少なくとも１つのユーザーインターフェースユニットを含んでいる、請求項５に記載のディスプレイパイプ。
【請求項７】
前記複数の画像処理パイプラインは、映像シーケンスのフレームをフェッチするように構成されている少なくとも１つの映像パイプラインを含んでいる、請求項６に記載のディスプレイパイプ。
【請求項８】
前記少なくとも１つの映像パイプラインは、複数のフェッチ／メモリ管理ユニットであって、そのそれぞれが異なった像平面に対応している、複数のフェッチ／メモリ管理ユニットを含んでいる、請求項７に記載のディスプレイパイプ。
【請求項９】
メモリコントローラへインターフェースするように構成されているポートインターフェースユニットと、
画像プロセッサと、
前記画像プロセッサへ連結されていて当該画像プロセッサについて最近使用された翻訳をキャッシュするように構成されている翻訳ユニットであって、前記画像プロセッサからのメモリオペレーションを受信して前記メモリオペレーションでの仮想アドレスを翻訳するように連結されていて、前記メモリオペレーションを前記翻訳されたアドレスと共に前記ポートインターフェースユニットへ送信するように構成されている、翻訳ユニットと、
請求項５に記載のディスプレイパイプと、を備えている装置。
【請求項１０】
前記翻訳ユニットは、当該翻訳ユニット内のミスに応えて、前記ミスに対する翻訳をフェッチして当該翻訳をキャッシュするように構成されている、請求項９に記載の装置。
【請求項１１】
前記追加の翻訳は、前記ストリーミング式翻訳ユニット内の直近にプリフェッチされた翻訳に連続している、請求項９に記載の装置。
【請求項１２】
所与のストリーミング式翻訳ユニットによってプリフェッチされる前記複数の仮想ページは、処理されようとしているソース画像内の少なくとも２行分の仮想ページを含んでいる、請求項９に記載の装置。
【請求項１３】
前記画像データは、画像データのタイルとして配列されており、前記複数の仮想ページのそれぞれの仮想ページはタイル１つを格納している、請求項９に記載の装置。
【請求項１４】
複数の翻訳を、表示のための画像データを処理するように構成されているディスプレイパイプ内のメモリへプリフェッチする段階であって、前記複数の翻訳は前記画像データを含んでいるソースバッファに対応する仮想ページについての翻訳であり、前記メモリは翻訳の先入れ先出しバッファ（ＦＩＦＯ）を維持している、翻訳をディスプレイパイプ内のメモリへプリフェッチする段階と、
前記複数の翻訳の１つ又はそれ以上であって当該複数の翻訳の中で最も古い翻訳に対応する１つ又はそれ以上の仮想ページに関し、データフェッチングが完了しているという指示を受信する段階と、
前記指示に応えて、前記複数の翻訳のうちの最も古い１つ又はそれ以上の翻訳を破棄する段階と、
前記指示に応えて、１つ又はそれ以上の追加の翻訳をプリフェッチする段階であって、前記追加の翻訳の１番目の翻訳は、メモリ内ページ表中の前記複数の翻訳のうちの直近にフェッチされた翻訳に隣接している、追加の翻訳をプリフェッチする段階と、を備えている方法。
【請求項１５】
前記１つ又はそれ以上の追加の翻訳は、少なくとも２つの翻訳であり、前記少なくとも２つの翻訳は前記メモリ内ページ表の中で連続している、請求項１４に記載の方法。
【請求項１６】
前記複数の翻訳は、前記メモリ内ページ表の中で連続している、請求項１５に記載の方法。
【請求項１７】
前記複数の翻訳の数は、少なくとも、前記ソースバッファ内の２行分の仮想ページをプリフェッチするのに十分である、請求項１４に記載の方法。
【請求項１８】
前記ディスプレイパイプが前記ソースバッファの処理を始めようとしていることを指し示すスタート指示を受信する段階と、
前記スタート指示に応えて、前記ディスプレイパイプ内の翻訳ユニットから翻訳をクリアし、前記複数の翻訳をプリフェッチする段階と、を更に備えている、請求項１４に記載の方法。
【国際調査報告】
2013543195.tif 000013