(57)【要約】  ２次元データ処理、特に、座標変換を同時に実行する２次元画像処理のためのキャッシュメモリー方法とそれに対応するシステムを開示する。本方法は、データを同時にアクセスする複数のバンクをおのおのが持っている広く高速な一次キャッシュメモリー（ＰＣＭ）と深い二次キャッシュメモリー（ＳＣＭ）を用いる。専用のプリフェッチロジックを用いて、外部プロセッサシステム（ＰＵ１）から制御パラメータを受信すると、外部メモリーから画素データを獲得して、二次制御キューに基づいてそのデータをＰＣＭ中に記憶する。次に、このデータは特定のブロックサイズと特定のフォーマットで準備され、次に、最適化されたサイズのプリフェッチ一次制御キューに基づいてＰＣＭに記憶される。次に、この準備されたデータは、別の外部プロセッサシステム（ＰＵ２）によって読み出されて処理される。このキャッシュ制御ロジックによって、ＰＵ２の入力部のところでのデータと制御パラメータのコヒーレンシが保証される。
2008507028.tif 000002
【特許請求の範囲】
【請求項１】
データ処理、特に、座標変換を同時に実行する２次元画像処理におけるキャッシュの構造と管理の方法であり、
（ａ）アクセスされて処理されるデータが記憶される外部メモリーと、
（ｂ）制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット（ＰＵ１）と、
（ｃ）データを処理する複数のプロセッサユニット（ＰＵ２）と、
から成る装置において、前記方法はキャッシュシステムを用い、該キャッシュシステムは、
（ｉ）おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する、より大きい記憶容量を持つより深い二次キャッシュメモリー（ＳＣＭ）と、
（ｉｉ）おのおのが前記ＰＵ２がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、より小さい記憶容量を持つより迅速でより広い一次キャッシュメモリー（ＰＣＭ）と、
（ｉｉｉ）制御ステージと制御キューを含んでおり、これで、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する制御ロジックと、
を備え、前記ＰＵ１からアドレスシーケンスと制御パラメータを受信したら、前記外部メモリー中のデータにアクセスし、また、前記ＰＵ２が迅速にアクセスして処理できるようにデータを準備し、
前記方法は、
（ａ）外部メモリー中のどのデータブロックを処理するかを、前記ＰＵ２中での処理動作のトポロジと構造とに基づいて識別するステップと、
（ｂ）十分大きいＳＣＭ制御キューをステップ（ａ）の結果に基づいて生成して、前記ＰＣＭ中にデータが存在するかどうか判定し、これで、前記ＳＣＭが前記外部メモリー中のデータに前記ＰＵ２による処理で必要とされるより十分早期にアクセスするようにするステップと、
（ｃ）前記ＳＣＭの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記ＰＵ２からの外部メモリーデータ編成を隠匿して、前記ＰＵ２中でのデータ処理の速度を増加させるステップと、
（ｄ）十分大きいＰＣＭ制御キューをステップ（ａ）と（ｂ）の結果に基づいて生成して、データが前記ＰＵ２によって必要とされる以前に、抽出されたデータを前記ＰＣＭ中に記憶するステップと、
（ｅ）前記ＰＵ２中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する前記方法。
【請求項２】
ＳＣＭバンクの数と、ＳＣＭバンク１つ当たりのラインの数と、ＳＣＭラインサイズをむ前記ＳＣＭ構造を、入力ブロックデータ構造と、前記外部メモリーからの読み出しフォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ＰＣＭバンクの数と、ＰＣＭバンク１つ当たりのラインの数と、ＰＣＭラインのサイズを含む前記ＰＣＭ構造を、出力データ構造と、フォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項２に記載の方法。
【請求項４】
キャッシュシステムへのマッピングがアドレスシーケンスに基づいた直接マッピングである、請求項３に記載の方法。
【請求項５】
キャッシュシステムへのマッピングが、
（ａ）アドレスシーケンスに基づいた直接マッピングと、
（ｂ）処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーと、
の２段階で実行される、請求項３に記載の方法。
【請求項６】
キャッシュシステムへのマッピングが、
（ａ）アドレスシーケンスに基づいた直接マッピングと、
（ｂ）最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーと、
の２段階で実行される、請求項３に記載の方法。
【請求項７】
アクセスされるデータの分量に基づいて前記ＰＣＭサイズをスケーリングするステップをさらに含む請求項３に記載の方法。
【請求項８】
アクセスされるデータの分量に基づいて前記ＳＣＭサイズをスケーリングするステップをさらに含む請求項３に記載の方法。
【請求項９】
キャッシュ更新頻度に基づいて前記ＰＣＭサイズをスケーリングするステップをさらに含む請求項３に記載の方法。
【請求項１０】
再読み出し係数に基づいて前記ＳＣＭサイズをスケーリングするステップをさらに含む請求項３に記載の方法。
【請求項１１】
入力データブロックをサブブロックに分割して、おのおののサブブロックからのデータを順次にキャッシングして、前記ＰＵ２中で処理するステップをさらに含む、請求項３に記載の方法。
【請求項１２】
制御キューとデータキューの深さをスケーリングしてスループットを最適化するステップをさらに含む、請求項３に記載の方法。
【請求項１３】
前記ＰＵ２スループット要件に基づいて前記ＰＣＭ出力幅とバンクの数とをスケーリングするステップをさらに含む、請求項３に記載の方法。
【請求項１４】
入力データブロックサイズに基づいて前記ＰＣＭラインサイズをスケーリングするステップをさらに含む、請求項３に記載の方法。
【請求項１５】
前記外部メモリーバーストサイズに基づいて前記ＳＣＭラインサイズをスケーリングするステップをさらに含む、請求項３に記載の方法。
【請求項１６】
前記ＰＣＭ更新の必要レートに基づいて前記ＳＣＭバンクの数をスケーリングするステップをさらに含む、請求項３に記載の方法。
【請求項１７】
入力データブロックのメモリーアドレスの最下位ビットに基づいて前記ＰＣＭと前記ＳＣＭ中にデータを配分するステップをさらに含む、請求項３に記載の方法。
【請求項１８】
データ処理、特に、座標変換を同時に実行する２次元画像処理におけるキャッシュシステムであり、
（ａ）アクセスされて処理されるデータが記憶される外部メモリーと、
（ｂ）制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット（ＰＵ１）と、
（ｃ）データを処理する複数のプロセッサユニット（ＰＵ２）と、
から成る装置において、前記システムは、
（ｉ）おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する、より大きい記憶容量を持つより深い二次キャッシュメモリー（ＳＣＭ）と、
（ｉｉ）おのおのが前記ＰＵ２がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、より小さい記憶容量を持つより迅速でより広い一次キャッシュメモリー（ＰＣＭ）と、
（ｉｉｉ）制御ステージと制御キューを含んでおり、これで、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する制御ロジックと、
を更に備え、前記ＰＵ１からアドレスシーケンスと制御パラメータを受信したら、前記外部メモリー中のデータにアクセスし、また、前記ＰＵ２が迅速にアクセスして処理できるようにデータを準備し、
前記システムは、
（ａ）外部メモリー中のどのデータブロックを処理するかを、前記ＰＵ２中での処理動作のトポロジと構造とに基づいて識別するステップと、
（ｂ）十分大きいＳＣＭ制御キューをステップ（ａ）の結果に基づいて生成して、前記ＰＣＭ中にデータが存在するかどうか判定し、これで、前記ＳＣＭが前記外部メモリー中のデータに前記ＰＵ２による処理で必要とされるより十分早期にアクセスするようにするステップと、
（ｃ）前記ＳＣＭの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記ＰＵ２からの外部メモリーデータ編成を隠匿して、前記ＰＵ２中でのデータ処理の速度を増加させるステップと、
（ｄ）十分大きいＰＣＭ制御キューをステップ（ａ）と（ｂ）の結果に基づいて生成して、データが前記ＰＵ２によって必要とされる以前に、抽出されたデータを前記ＰＣＭ中に記憶するステップと、
（ｅ）前記ＰＵ２中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿するようになっている前記システム。
【請求項１９】
ＳＣＭバンクの数と、ＳＣＭバンク１つ当たりのラインの数と、ＳＣＭラインサイズを含む前記ＳＣＭ構造を、入力ブロックデータ構造と、前記外部メモリーからの読み出しフォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項１８に記載のシステム。
【請求項２０】
ＰＣＭバンクの数と、ＰＣＭバンク１つ当たりのラインの数と、ＰＣＭラインのサイズを含む前記ＰＣＭ構造を、出力データ構造と、フォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項１９に記載のシステム。
【請求項２１】
キャッシュシステムへのマッピングがアドレスシーケンスに基づいた直接マッピングである、請求項２０に記載のシステム。
【請求項２２】
キャッシュシステムへのマッピングが、
（ａ）アドレスシーケンスに基づいた直接マッピングと、
（ｂ）処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーと、
の２段階で実行される、請求項２０に記載のシステム。
【請求項２３】
キャッシュシステムへのマッピングが、
（ａ）アドレスシーケンスに基づいた直接マッピングと、
（ｂ）最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーと、
の２段階で実行される、請求項２０に記載のシステム。
【請求項２４】
アクセスされるデータの分量に基づいて前記ＰＣＭサイズをスケーリングするようにさらになっている請求項２０に記載のシステム。
【請求項２５】
アクセスされるデータの分量に基づいて前記ＳＣＭサイズをスケーリングするようにさらになっている請求項２０に記載のシステム。
【請求項２６】
キャッシュ更新頻度に基づいて前記ＰＣＭラインサイズをスケーリングするようにさらになっている請求項２０に記載のシステム。
【請求項２７】
再読み出し係数に基づいて前記ＳＣＭサイズをスケーリングするようにさらになっている請求項２０に記載のシステム。
【請求項２８】
入力データブロックをサブブロックに分割して、おのおののサブブロックからのデータを順次にキャッシングして、前記ＰＵ２中で処理されるようにさらになっている、請求項２０に記載のシステム。
【請求項２９】
制御キューとデータキューの深さをスケーリングしてスループットを最適化するようにさらになっている、請求項２０に記載のシステム。
【請求項３０】
前記ＰＵ２スループット要件に基づいて前記ＰＣＭ出力幅とバンクの数とをスケーリングするようにさらになっている、請求項２０に記載のシステム。
【請求項３１】
入力データブロックサイズに基づいて前記ＰＣＭラインサイズをスケーリングするようになっている、請求項２０に記載のシステム。
【請求項３２】
前記外部メモリーバーストサイズに基づいて前記ＳＣＭラインサイズをスケーリングするようになっている、請求項２０に記載のシステム。
【請求項３３】
前記ＰＣＭ更新の必要レートに基づいて前記ＳＣＭバンクの数をスケーリングするようになっている、請求項２０に記載のシステム。
【請求項３４】
入力データブロックのメモリーアドレスの最下位ビットに基づいて前記ＰＣＭと前記ＳＣＭ中にデータを配分するようになっている、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルデータ処理、特に、ディジタル画像データ処理におけるキャッシュメモリーの構造と管理に関する。
【背景技術】
【０００２】
新しいコンピュータシステムが発明されて以来、より早い処理と高速なシステムを求める競争が常に存在した。クロックの速度を潜在的に高めるより高速なプロセッサが作成されてきた。データと命令の分量が急激に増加したのも自然なことである。コンピュータシステムにおいては、ますます大きい記憶容量を持つデータや命令を記憶するＲＯＭ（読み出し専用メモリー）やバーストベースのメモリー、たとえば、ＤＲＡＭなどの記憶デバイスが存在する。構造的には、大きいメモリー空間は深化しており、このため、メモリー中のデータや命令にアクセスするプロセッサの速度が遅くなっている。この問題によって、より効率的なメモリー管理と、キャッシュメモリーおよびキャッシュメモリー構造の創造とに対する必要性が生じている。キャッシュメモリーは、一般には、プロセッサの内部またはこれに近接したところにある浅く広い記憶デバイスであって、これによって、プロセッサはデータにアクセスしたりデータの内容を変更したりしやすくなる。キャッシュメモリー管理の哲学は、使用頻度の高い、すなわち、近い将来においてプロセッサが使用する確率が最も高いデータと命令のコピーを、最速でアクセス可能な記憶デバイスの内部に保存しておくというものである。これによって、外部メモリーにある場合よりも何倍も速くプロセッサはデータや命令にアクセスできる。しかしながら、キャッシュメモリーや外部メモリー内の内容を変更するというような動作においては調和を保つように注意が必要である。このような、ハードウエア機能とソフトウエア機能とに関する問題点のため、キャッシュメモリー構造とその管理のための技術が創造されてきた。
【０００３】
すでに述べたように、キャッシュメモリーは、プロセッサが次にアクセスする可能性が最も高いデータとアドレスポインタとのコピーを保持しておくものである。外部メモリーは、一般的には、キャパシタにデータを保存しておくものであり、データが失われることを防止するためにキャパシタに電荷を補充するリフレッシュサイクルを必要とする。しかしながら、一般的なキャッシュメモリーでは１ビットを表すのに８個のトラジスタを用い、これによって、リフレッシュサイクルを不要としている。したがって、キャッシュメモリーは、単位サイズあたりの記憶空間が外部メモリーと比べてはるかに少ない。このため、キャッシュメモリーは、収容可能なデータ量が外部メモリーよりはるかに少ない。その結果、キャッシュ動作を最適化するためには、データと命令を注意深く選別しなければならない。
【０００４】
キャッシュメモリー動作を最適にするさまざまなポリシーとプロトコルが用いられている。これらの内で最もよく知られているのが、直接マッピング方式、フルアソシアティブ方式、およびセットアソシアティブ方式である。これらのプロトコルは、当業者には周知である。これらのプロトコルは、データ処理、Ｗｅｂベースのアプリケーションなどを含む演算という一般的な目的に適っている。ポメレーン（Ｐｏｍｅｒｅｎｅ）に対して発行されている米国特許第４，２９５，１９３号には、マルチ命令ワードにコンパイルされている命令を同時並行に実行する演算マシンが提示されている。これは、キャッシュメモリー、アドレスゼネレータ、命令レジスタおよびパイプライン方式を示唆する最も初期の特許のうちの一つである。マツオ（Ｍａｔｓｕｏ）に対して発行されている米国特許第４，７９６，１７５号には、メインメモリーと命令キャッシュとから命令をプリフェッチする形態を持つ命令キュー機能付きのマイクロプロセッサが提示されている。スティルズ（Ｓｔｉｌｅｓ）に対して発行されている米国特許第６，０６７，６１６号には、フルアソシアティブ方式の広く浅い第１レベルのＢＣＰ（分岐予測キャッシュ）と、部分的予測情報を持つ深く狭い直接マッピングされた第２レベルのＢＣＰから成るハイブリッド型キャッシュ構造を持つ分岐予測キャッシュ（ＢＣＰ）スキームが提示されている。フランク（Ｆｒａｎｋ）に対して発行された米国特許第６，６５４，８５６号には、アドレス的に円形構造のキャッシュメモリーに重点が置かれているコンピュータシステムにおけるキャッシュ管理システムが提示されている。
【０００５】
リアオ（Ｌｉａｏ）に対して発行された米国特許第６，６８１，２９６号には、制御装置とキャッシュを持つマイクロプロセッサが提示されているが、このキャッシュは、ロック部分とノーマル部分で区分されたキャッシュ構成とするか単独のキャッシュ構成とするか選択可能となっている。アルミリ（Ａｒｉｍｉｌｌｉ）に対して発行された米国特許第６，７２１，８５６号には、プロセッサアクセスシーケンスを包含しているプロセッサが異なればそれに対するサブエントリも異なるライン毎のコヒーレンシ状態とシステムコントローラ情報とを持つキャッシュが提示されている。米国特許第６，６２９，１８８号には、第１と第２の複数の記憶空間を持つキャッシュメモリーが開示されている。米国特許第６，２９５，５８２号には、データコヒーレンシを有し、実質的な順次読み出しコマンドと書き込みコマンドがデッドロックする事態を回避するキャッシュシステムが開示されている。米国特許第６，３３９，４２８号には、圧縮された（ｃｏｍｐｒｅｓｓｅｄ）テクスチャ情報がテクスチャ操作のために受信・圧縮解除（解凍）される（ｄｅｃｏｍｐｒｅｓｓｅｄ）ビオデグラフィックス分野におけるキャッシュ装置が開示されている。米国特許第６，３５３，４３８号には、複数タイルのテクスチャ画像データを持ち、データを直接にキャッシュにマッピングするキャッシュ編成が開示されている。
【０００６】
上記の発明はそのおのおのが、ある長所を提供する。効率的なキャッシュ構造とポリシーは、手元にある特定の応用物に強く依存する。ディジタルビデオ応用分野では、ディジタル画像をリアルタイムでしかも高品質で処理することは、この分野における大きな挑戦のうちの１つである。具体的には、非線形の座標変換を同時に実行しながら、詳細な二次元画像処理を必要とする。したがって、データのコヒーレンシを保った状態で迅速にアクセスするという固有の長所を持つ特殊化した専用のシステムが必要とされる。そのため、この応用のために、キャッシュ構造とキャッシュ管理ポリシーとを最適化することが必要である。
【特許文献１】米国特許第４，２９５，１９３号
【特許文献２】米国特許第４，７９６，１７５号
【特許文献３】米国特許第６，０６７，６１６号
【特許文献４】米国特許第６，６５４，８５６号
【特許文献５】米国特許第６，６８１，２９６号
【特許文献６】米国特許第６，７２１，８５６号
【特許文献７】米国特許第６，６２９，１８８号
【特許文献８】米国特許第６，２９５，５８２号
【特許文献９】米国特許第６，３３９，４２８号
【特許文献１０】米国特許第６，３５３，４３８号
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明はその１態様においては、
（ａ）アクセスされて処理されるデータが記憶される外部メモリーと、
（ｂ）制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット（ＰＵ１）と、
（ｃ）データを処理する複数のプロセッサユニット（ＰＵ２）と、
から成るセッティングにおいて、ディジタルデータ処理、特に、ディジタル画像処理におけるキャッシュメモリーを管理方法とキャッシュメモリー構造を提供する。
本方法は、
（ｉ）おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する、より大きい記憶容量を持つより深い二次キャッシュメモリー（ＳＣＭ）と、
（ｉｉ）おのおのが前記ＰＵ２がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、より小さい記憶容量を持つより迅速でより広い一次キャッシュメモリー（ＰＣＭ）と、
（ｉｉｉ）制御ステージと制御キューを含んでおり、これで、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する制御ロジックと、
というキャッシュ構造を用いて、ＰＵ１からアドレスシーケンスと制御パラメータを受信したら、外部メモリー中のデータを処理し、また、ＰＵ２が迅速にアクセスして処理できるようにデータを準備する。
本方法は、
（ａ）外部メモリー中のどのデータブロックを処理するかを、ＰＵ２中での処理動作のトポロジと構造とに基づいて識別するステップと、
（ｂ）十分大きいＳＣＭ制御キューをステップ（ａ）の結果に基づいて生成して、ＰＣＭ中にデータが存在するかどうか判定し、これで、ＳＣＭが外部メモリー中のデータにＰＵ２による処理で必要とされるより十分早期にアクセスするようにするステップと、
（ｃ）前記ＳＣＭの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記ＰＵ２からの外部メモリーデータ編成を隠匿して（隠して）、前記ＰＵ２中でのデータ処理の速度を増加させるステップと、
（ｄ）十分大きいＰＣＭ制御キューをステップ（ａ）と（ｂ）の結果に基づいて生成して、データが前記ＰＵ２によって必要とされる以前に、抽出されたデータを前記ＰＣＭ中に記憶するステップと、
（ｅ）前記ＰＵ２中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する。
【０００８】
別の態様で、本発明は、上述の方法に基づいたキャッシュシステムを提供する。
【０００９】
本発明の実施形態のさまざまな態様と長所との更なる詳細を、添付図面を参照して以下に説明する。
【発明を実施するための最良の形態】
【００１０】
次に、添付図面と模範的な実施例にしたがって、本発明を詳細に説明する。本発明は、キャッシュの構造と管理に関する。以下の説明に出てくる実施例は、同時座標変換（ｓｉｍｕｌｔａｎｅｏｕｓ  ｃｏｏｒｄｉｎａｔｅ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ）を伴う画像処理の例である。しかしながら、当業者は、本発明の範囲は、この特定の例に制限されないことを理解するであろう。本発明は、複数のプロセッサがデータと制御パラメータを外部メモリーと任意の形式を持つ他のプロセッサとからフェッチ（ｆｅｔｃｈ）してこようとするいかなるタイプのディジタルデータ処理にも関連する。特に、本書で説明する２次元（２Ｄ）画像変換の例は、本発明の範囲から逸脱することなくどのような２Ｄ画像変換に入れ替えることが可能であることは自明である。したがって、以下の説明で、データとは画像画素データを意味する。入力データの構造とトポロジに関連する制御パラメータを発行する複数のプロセッサとは、ジオメトリエンジンのことを意味する。加えて、動作用のデータを処理する複数のプロセッサとは、フィルタエンジンのことであり、それに対応する動作とはフィルタリング動作のことである。
【００１１】
図１に、本発明にしたがって構築された、同時座標変換機能を持つ、ディジタル画像データ処理用に設計された、演算装置中のキャッシュシステム１００の設定の例を図示する。キャッシュシステム１００は、２セットのプロセッサとインタフェースしている。この実施例において、第１の複数のプロセッサは、ジオメトリエンジン３００を構成しており、第２の複数のプロセッサはフィルタエンジン５００を構成している。これら２つのエンジンに加えて、キャッシュシステム１００は、アクセスレイテンシを持つどのようなメモリーでもありえる外部メモリー７００とインタフェースしている。キャッシュシステム１００は、座標変換パラメータとフィルタフットプリントパラメータとを含む制御パラメータをジオメトリエンジン３００から受信する。同時に、本システムは、画素データを外部メモリー７００から受信する。キャッシュシステム１００は、フィルタエンジン５００の機能停止を最小にとどめながらもフィルタリングプロセスを最適化するように、これらのデータをフィルタエンジン５００に対して提供する。
【００１２】
２次元（２Ｄ）データ処理、特に、ディジタル画像データ処理においては、総合的なフィルタリング機能またはサンプリング機能が必要とされる。以下において、２Ｄ画像処理を特に例として取り上げ、したがって、「画素」という語は、任意の２Ｄデータのうちの特定の場合として用いる。２Ｄディジタル画像処理においては、おのおのの出力画素が、多くの入力画素からの情報に基づいて形成される。最初に、出力画素座標を、入力画素座標に対してマッピングする。これは座標変換であって、通常は、画像ワープ技法によって電子的に実施される。いったん中心の入力画素が決まると、出力画素仕様、すなわち、構成色の強度と、サンプリングフォーマットやブレンド機能などの他の情報とを生成するためにフィルタリング機能またはサンプリング機能が必要となる。それに対してサンプリングが実行される中心入力画素の周りのすべての画素を含む領域は、フィルタフットプリントと呼ばれる。フィルタフットプリントのサイズと形状は、出力画像の品質に影響することは技術上公知である。
【００１３】
キャッシュシステム１００の機能は、専用のアーキテクチャとプリフェッチロジックを用いて、十分なランダムアクセス画素データと制御パラメータをフィルタエンジン５００に提供し、これにより、機能停止を最小に抑えながら、このエンジンがどのクロック速度においても処理すべきデータを有しているようにすることである。最適化されたサイズを持つ読み出し要求キューによって、キャッシュシステム１００は、画素データがフェッチされる元の外部メモリー７００に固有のメモリー読み出しレイテンシのほとんどを隠匿することが可能となる。メモリー読み出しレイテンシのこの隠匿動作は、フィルタの動作に優先する。このレイテンシが適切に隠匿されないと、フィルタエンジン５００のスループットは最大とならない。許容される機能停止時間は、設計上のパラメータである。ハードウエアコストとのトレードオフとして必要とされるスループットを達成するようにさまざまなパラメータを調節する必要がある。
【００１４】
加えて、キャッシュシステム１００からは、ジオメトリエンジン３００から読み出されるフィルタフットプリントパラメータと座標変換のための制御経路が提供されている。キャッシュシステム１００によって、一方では外部メモリー７００からの画素データと他方ではジオメトリエンジン３００からの制御パラメータとが、フィルタエンジン５００の入力部に到達した時点で同期が取られることを保証する。
【００１５】
本明細書中でで、われわれは、イタリックで量を表示する慣習法を採用し（たとえば６４バイト）、これによって、参照番号（たとえば、フィルタエンジン５００）と区別されるようにする。
【００１６】
図２は、キャッシュシステム１００の詳細な構造の例を示す図である。おのおのの出力画素に対して、キャッシュシステム１００は、ジオメトリエンジン３００からある制御パラメータを受信する。このようなパラメータには、マッピングされた入力画素の座標と、ＵおよびＶと、フィルタフットプリントの形状、回転量およびサイズを定義する制御パラメータなどの追加の制御パラメータとが含まれる。同時に、キャッシュシステム１００は、外部メモリー７００からのフィルタフットプリントに含まれるがそのおのおのに対する画素データを受信する。このようなデータには、色空間内の構成色、たとえば、ＲＧＢもしくはＹＣｒＣｂの強度レベルと、サンプリングフォーマット、たとえば、４：４：４もしくは４：２：２と、ブレンド機能、すなわち、αありかα無しかということとが含まれる。
【００１７】
キャッシュシステム１００の構造は、入力画像をｍ×ｎ個の画素分のサイズを持つブロックに分割することに関連している。図３に、ｎ＝８でｍ＝４である入力画像画素ブロック構造の例を示す。入力画像３３０は、ある数の画素、たとえば、１０２４×１０２４個の画素をブロックに分割したものを含んでいる。おのおのの入力画素ブロック３３２は、ｍ×ｎ個の入力画素３３４を含んでいる。ブロックの構造は一般に、さまざまなフィルタリングスキームにおいてフットプリントの形状とサイズの関数である。
【００１８】
キャッシュシステム１００は、ｍ×ｎ個の入力画素ブロック３３２に関連するデータをフェッチして、フィルタエンジン５００が使用可能なデータブロックを生成する。このため、本システムは、どのブロックがフットプリントの内部に入るか、また、このようなブロック内のどの画素がフィルタリングのために含まれるべきであるかを判定しなければならない。キャッシュシステム１００の構造は、入力ブロックデータ構造に適合するように拡張可能となっている。また、一般に、キャッシュシステム１００の構造は、フィルタエンジン５００の動作の性質と構造の関数であることに注意すべきである。画像処理という特殊な場合では、この動作の構造とトポロジは部分的にはフィルタフットプリントによって定義される。
【００１９】
ここで図２に示す例を参照すると、キャッシュシステム１００は、浅く広くそして容量の少ない一次キャッシュ１１０と、深く容量の大きい二次キャッシュ１２０と、ブロック包含ステージ１５０と、ブロックデータ生成ステージ１３０と、一次キャッシュ制御ステージ１７０と、二次キャッシュ制御ステージ１９０とを備えている。また、多くのキューもあるが、これについては後述する。画素データは、最初に外部メモリー７００から二次キャッシュ１２０に読み込まれる。次に、これらのデータは、ブロック生成ステージ１３０によって再フォーマッティングされて、解凍されて、フィルタエンジン５００によって用いられるようにする。これらの再フォーマッティングされたデータはキューに組み込まれて、適当な時点に一次キャッシュ１１０中に置かれる、ここでは、フィルタエンジン５００によって即座にアクセス可能となる。以下に、データの経路と制御ロジック構造をそれぞれ説明する。
【００２０】
ここで図５に示す例を参照すると、二次キャッシュ１２０は、外部メモリー７００から生データを読み出す大容量記憶デバイスである。外部メモリー７００中の画素データは、任意のフォーマット、一般に、フィルタエンジン５００中で処理するにはあまり適していないフォーマットで記憶されており、たとえば、特殊な例では、データは、順次に、すなわち、走査線の順序で記憶されている。二次キャッシュ１２０は、割り込みを最小に抑えて効率的にこれらのデータを読み込むように設計されている。
【００２１】
二次キャッシュ中のおのおののラインは、外部メモリー７００からのｂ2バイトのデータのバーストを収容するように設計されている。この理由によって、二次キャッシュ１２０中のおのおののラインのサイズは、外部メモリー７００の構造と読み出し要件とにしたがって決まる。このようなデータが記憶される二次キャッシュ１２０中のラインの数は、また、二次キャッシュのミスカウントを軽減するように最適化された設計パラメータでもある。二次キャッシュ１２０は、さらにそのうえ、一次キャッシュ１１０を更新して、フィルタエンジン５００の機能停止を最小化するに十分な読み出しスループットを可能とするようにバンキングされている。これらの設計パラメータは、中心入力画素をサンプリングするためには多くの隣接画素が必要とされるため、フィルタエンジン５００による画素処理用に十分なデータを記憶するために決定的に重要である。
【００２２】
したがって、二次キャッシュ１２０は、外部メモリー７００からデータを同時に読み出すために互いに独立したアクセスラインを持つバンクをある数だけ有するように設計されている。図５の図示例に示すように、二次キャッシュ１２０は多くのバンク１２２を有しているが、そのおのおのが、ある数のライン１２４を持っている。二次キャッシュのラインはそのおのおのが、外部メモリー７００から読み出された１データバーストのデータを含んでいる。これらのデータは、最終的にはフィルタエンジン５００によって読み出される必要がある。このため、二次キャッシュのバンクの数は、データのスループットの関数として設計されている。ｍ×ｎ個の入力ブロックからなる構造で、データを読み出すために必要とされるクロックサイクルの数がＮｃである場合、二次キャッシュ１２０中ではｎ／Ｎｃ個のバンクが必要とされる。データを二次キャッシュのバンクに分配するには、１つの特殊な実施例では、最下位ビット（ＬＳＢ）ＵとＶの組み合わせが用いられる。これによって、デコーディングロジックの複雑さが軽減され、これで、領域が節約されて更新動作がはるかに高速となる。おのおののバンクを２j個のパーティションに分割するには、ｊ個のＬＳＢが用いられる。二次キャッシュバンク１つ当たり２j本のラインがあるとすると、二次キャッシュのアーキテクチャは、２j／２jのセットアソシアティブ方式となる。その設計は二次キャッシュ１２０の適切な置き換えポリシーとあいまって、キャッシュロジックに沿って後述するように、分割を簡略で効率的なものとし、これで、データが二次キャッシュ１２０全体にわたって分布される。
【００２３】
いったんデータが外部メモリー７００から二次キャッシュ１２０に読み込まれると、これらのデータは、フィルタエンジン５００にとって使用可能なフォーマットに変換する必要がある。ブロック生成ステージ１３０は、二次キャッシュ１２０からデータを読み出し、これらのデータを、ｍ×ｎ個の入力画素のブロックからのすべてのデータを含むブロックに準備する。上述したように、ブロック生成ステージ１３０は、クロックサイクル毎に、二次キャッシュ１２０の持つｎ／Ｎｃ個のラインを読み出す。これによって、Ｎｃ個のクロックサイクル毎に、１つの入力画素ブロックに関連するすべてのデータが同時に読み出されることが保証される。データのパッキングフォーマットと読み出しスループットによっては、入力画素ブロックを生成するには二次キャッシュ１２０から複数回の読み出し動作が必要とされる。これらのデータを読み出すことに加えて、ブロック生成ステージ１３０は、これらのデータを再フォーマッティングして、フィルタエンジン５００が容易に使用できるようなフォーマットに解凍する。したがって、ブロック生成ステージ１３０は、さまざまな圧縮スキームで圧縮可能なオリジナルの画素データフォーマットを隠匿する。これによって、フィルタエンジン５００は、外部メモリー７００中の画素データのフォーマットを解明して、オリジナルのフォーマッティング済みデータをフィルタリング動作で使用可能なブロックにアンパックする責務から開放される。これらのブロックデータは最終的には一次キャッシュ１１０に記憶され、そこからフィルタエンジン５００によって読み出される。
【００２４】
ここで図４の例を参照すると、一次キャッシュ１１０は、フィルタエンジン５００中でのデータアクセス速度を最適化するように設計されている。したがって、複数のアクセスラインに対して浅いが広い構造となっている。一次キャッシュ１１０は、ある数のバンクに分割されており、おのおのの一次キャッシュバンク１１２は、フィルタエンジン５００によって互いに独立にそして同時に読み出される。一次キャッシュバンクの数は、フィルタリング性能を最適化するように、経験に基づいたデータとシミュレーションにしたがって決定される。おのおのの一次キャッシュバンク１１２は、ある数の一次キャッシュラインを含んでいる。おのおのの一次キャッシュライン１１４は、入力データの完全なｍ×ｎ個のブロックからのデータを含んでいる。したがって、一次キャッシュバンクがｂ1個あれば、フィルタエンジン５００は、ｂ1個の入力ブロックを含むデータをサイクル毎に適切なフォーマットで読み出す。これは非常に重要であるが、それは、サンプリングするためには、入力画素の周りの入力ブロックが多数必要であり、多数の入力ブロックがフィルタエンジン５００に提供されないと、このエンジンは機能停止するからである。機能停止の期間と頻度によって、スループット性能が決まる。
【００２５】
データをさまざまな一次キャッシュバンクに分配するために、入力画素座標のＬＳＢであるＵとＶを用いる。一次キャッシュ１１０内部にある一次バンク１１２はそのおのおのが、ある数のパーティションにさらに分割されている。上述したように、ある数のＬＳＢを用いて、データをさまざまな一次キャッシュバンクに分配する。入力画素のＵとＶのアドレスの残余ビット中のさらなるＬＳＢをまた用いて、おのおのの一次キャッシュバンク中のデータを分配する。一次キャッシュバンク１つ当たり、そして、２f個のライン毎に、おのおののバンクを区分するために用いられるｇ個のＬＳＢが用いられ、この分割によって、２f／２g個のセットアソシアティブアーキテクチャとなる。
【００２６】
後述するように、この設計をまた、一次キャッシュ１１０の適切な置き換えポリシーと共に用いて、最適なスループットが達成される。このアーキテクチャは簡単にそして自然に拡張可能であるが、それは、入力データの分量が多くなると、アドレスＵとアドレスＶ中で利用可能なビットの数が増えるからである。
【００２７】
フィルタエンジン５００により必要とされる際に、使用可能なフォーマットのデータが存在することを保証するために、プリフェッチロジック構造が設計される。図６に、キャッシュ制御ロジック４００を示す。このロジック構造は、外部メモリー７００から二次キャッシュ１２０がデータを読み出す動作と、ブロック生成ステージ１３０でデータを読み出して再フォーマッティングする動作と、一次キャッシュ１１０にデータブロックを記憶する動作を制御する。
【００２８】
ステップ４０２で、サンプリングのためにデータブロックが必要であるかどうかが、ジオメトリエンジン３００から受信された制御パラメータに基づいて判定される。いったんデータが識別されると、ステップ４１０で、これらのデータが一次キャッシュの内部に存在するかどうか判定される。存在すれば、ステップ４１２で一次制御キューに対してエントリが書き込まれ、ステップ４１４でこれらのデータのアドレスがフィルタエンジン４１４に送られる。データが一次キャッシュ中に存在しなければ、ステップ４１５で、後述される採用された置き換えポリシーにしたがって、どの一次キャッシュラインを置き換えるべきか判定される。次に、ステップ４１６で、この一次キャッシュラインのアドレスが一次制御キューに書き込まれて、ステップ４１８でフィルタエンジンに送られる。次に、これらのデータが二次キャッシュに存在するかどうかステップ４２０で判定される。データがそこにも存在しなければ、ステップ４２２で、どの二次キャッシュラインを置き換えるべきか判定される。次に、読み出し要求が外部メモリーに送られて、後でステップ４２６で二次キャッシュに読み込まれるデータをフェッチする。データが二次キャッシュ中に存在すれば、ステップ４２８で、エントリが二次キャッシュ制御キューに書き込まれる。
【００２９】
データが外部メモリーからフェッチされた後で二次キャッシュがヒットしようと二次キャッシュがミスしようとどちらの場合でも、ステップ４４０で、ブロック生成用に二次キャッシュのデータが読み出される。この場合、データは複数の二次キャッシュバンクから読み出されて、ステップ４４２で、再フォーマッティングされて解凍される。この段階で、ステップ４５０で、適切なフォーマットを持つ入力データのブロックがキューとして送られて、一次キャッシュ中に記憶される。ステップ４５２で、これらのデータは一次キャッシュバンク中に記憶される。
【００３０】
一次キャッシュ１１０の更新動作は、関連の制御データが一次制御キュー２１２と画素制御キュー２１８から読み出されると発生する。これによって、キャッシュコヒーレンシが一次キャッシュ１００内部で保持されることが保証される。この時点で、一次キャッシュからのデータが制御パラメータコヒーレンシと共に、ステップ５１０でフィルタエンジン入力部に到達する。
【００３１】
プリフェッチロジックは、フィルタエンジン５００中の読み出しレイテンシを隠匿するように設計されている。この制御ロジック構造がないと、データのスループットが最適化されず、また、フィルタエンジン５００の機能停止する割合が増す。キューのサイズが十分であり、記憶サイズが最適であり、データが準備されており、置き換えポリシーがインテリジェントであれば、キャッシュシステム１００は、フィルタエンジン５００より前を走行することによって読み出しレイテンシのほとんどを隠匿する。
【００３２】
再度図２を参照して、キャッシュ制御ロジック４００のハードウエア実施例を以下に説明する。ブロック包含ステージ１５０は、この制御ロジックの開始点である。おのおのの出力画素に対して、このロジックは、マッピングされた入力画素の座標とフィルタフットプリントの形状と共に制御パラメータをジオメトリエンジン３００から受信する。入力画素座標と、ＵおよびＶと、フットプリント形状と、他の制御パラメータとに基づいて、ブロック包含ロジックは、おのおのの出力画素を処理するためにはどの入力ブロックが必要であるか、また、おのおののブロック中のどの画素がサンプリング用に必要であるかを判定する。
【００３３】
ブロック包含ステージ１５０は、本発明の一例では、隣接するブロックの座標位置をフットプリントのジオメトリと比較して、サンプリングに必要な画素のブロックを包含する。このブロック包含ロジックは、そのブロックアドレス内で少なくとも最下位ビット（ＬＳＢ）１Ｕまたは１Ｖがおのおの異なるｋ個のブロックをクロックサイクル毎に生成する。これによって、ＬＳＢのｋ個の組み合わせが、ブロック包含ロジックによって生成されたブロックのおのおののセットに存在することが保証される。この制約を用いて、一次キャッシュバンク間にブロックを分配する。クロックサイクル毎の生成ブロック数ｋは、フットプリントのサイズの関数であり、ブロックのトポロジは、フットプリントの形状の関数である。これらのパラメータは、注意深いシミュレーションと実験によって、フィルタエンジン５００中でのデータ処理に関して、キャッシュシステム１１０の設計の際に考慮すべきものである。ブロック包含ステージ１５０で生成される画素制御キュー２１８は、フィルタエンジン５００が実際の画素データより前にスケーリングパラメータを生成することを許容するより以前にフィルタエンジン５００に送られる。
【００３４】
一次キャッシュ制御ステージ１７０は、一次キャッシュ１１０中ではデータの取り扱いのための制御ロジックを提供する。ブロック包含ステージ１５０によって決定されたおのおのの入力ブロックに対して、一次キャッシュ制御装置１７０は、このブロックが一次キャッシュ１１０中に存在するかどうかチェックする。データが存在すれば、これはキャッシュヒットと呼ばれる。存在しなければ、キャッシュミスが登録されて、ミスフラグが二次キャッシュ制御装置１９０に送られる。一次キャッシュ制御ステージ１７０は、エントリを一次制御キュー２１２に書き込んで、一次キャッシュ１１０の内部のデータのアドレスと、一次キャッシュのヒットがあったかミスがあったかとを示す。一次制御キュー２１２がフィルタエンジン５００によってＦＩＦＯ方式で読み出される。キャッシュミスフラグがこのようなエントリのうちの１つで上げられると、フィルタエンジン５００は読み出し要求をブロックキュー２１４に送り、するとこのキューが一次キャッシュ１１０を更新する。
【００３５】
データブロックが一次キャッシュ１１０に存在しない場合、アドレスＵもしくはアドレスＶがチェックされたどのブロックとも整合しない場合または関連の有効ビットが設定されていない場合に発生する一次キャッシュミスの場合、この事象は一次キャッシュミスと呼ばれる。二次キャッシュステージ１９０における制御ロジックは、一次キャッシュミスフラグを受信すると、一次キャッシュに書き込まれるｍ×ｎ個のブロックを生成するためにどの処置を（ステップを）とるべきか決定する。二次キャッシュ制御ステージ１９０は、最初に、二次キャッシュ１２０中にデータが存在するかどうか判定する。これによって、二次キャッシュヒットとなったり、二次キャッシュミスとなったりする。二次キャッシュミスが発生すると、二次キャッシュ制御装置１９０は読み出し要求を外部メモリー７００に送って、行方不明データを外部メモリー７００から二次キャッシュ１２０中にフェッチして、二次制御キュー２１６にエントリを書き込む。二次キャッシュヒットが発生すると、二次キャッシュ制御ステージ１９０は、読み出し要求を送出しないで、単にエントリを二次制御キュー２１６に書き込み、ここで、エントリはブロック生成ステージ１３０によってＦＩＦＯ方式で読み出される。
【００３６】
おのおののキューエントリを受信すると、ブロック生成ステージ１３０は、入力ブロック全体に関連する生データを二次キャッシュ１２０から読み出す。次に、これらのデータは、フィルタエンジン５００が容易に使用可能なフォーマットにブロック生成ステージ１３０中で再フォーマッティングされる。データパッキングするモードによっては、一次キャッシュライン１１４を生成するために、複数の二次キャッシュラインが必要とされる。１つの入力ブロックに関連するすべてのデータを取得して、これらのデータを再フォーマッティングしたら、ブロック生成ステージ１３０は、ブロックキュー２１４にエントリを書き込む。したがって、おのおののブロックキューエントリは、この入力ブロック全体からのデータをすべて適切なフォーマットで包含している。次に、ブロックキューエントリは一次キャッシュ１１０によって受信され、ここで、フィルタエンジン５００が容易にアクセスされるように記憶される。したがって、ブロックキュー２１４によって、二次キャッシュ１２０は、フィルタエンジン５００より前を走行することが許容される。
【００３７】
キャッシュシステム１００の機能は、専用のプリフェッチロジックに加えて、画素データと制御パラメータのコヒーレンシしだいであることに注意すべきである。二次キャッシュ制御ステージ１９０からの要求がないかぎり、いかなるデータも二次キャッシュ１２０によって読み出されることはない。いったんそのデータが二次キャッシュ内に入ると、二次制御キュー２１６に対するエントリだけが、これらのデータがブロック生成ステージ１３０でのブロック生成にとって必要であるかどうかを決定する。データのブロックは、いったん生成されると、フィルタエンジン５００から読み出し要求された場合にだけ、キューに組み込まれて一次キャッシュに記憶されるが、このエンジン５００自身は、一次制御キュー２１２へのエントリによって教唆される。そのうえ、フィルタエンジンは、データと制御パラメータ双方が２つの互いに独立したキューから到来するのを待って、しかる後に、そのデータを処理する。
【００３８】
フィルタフットプリントとキャッシュ記憶空間の相対的なサイズによっては、フットプリントをサブフットプリント部分に分割し、また、おのおののサブフットプリント部分中のデータを処理する必要がある。この対策は、動的にサイズ付けされるフットプリント用のキャッシュシステム１００の設計で予見される。いったんおのおののサブフットプリントに関連するデータがキャッシュされると、フィルタエンジンはこれらのデータを順次に処理する。
【００３９】
キャッシュシステム１００にメモリー読み出しレイテンシを隠匿することを許容するデータプリフェッチ動作の効果を理解するに際しては、本発明の一例では、読み出しレイテンシが１２８クロックサイクル台にあるかどうかを基準として評価されてきた。十分大きいキューを提供することによって、ほとんどすべてのレイテンシが隠匿される。本発明におけるキューのサイズは、本システムで見受けられるメモリー読み出しレイテンシに適合するように調整することが可能であり、したがって、システム仕様に基づいた拡張可能な設計パラメータである。
【００４０】
いったんキャッシュロジック構造によって、あるブロックのデータを二次キャッシュ１２０によって読み出すべきであるまたは一次キャッシュ１１０に記憶するために準備すべきであると判定されると、置き換えポリシーが必要とされる。１つの既存の一次キャッシュライン１１４または複数の二次キャッシュライン１２４を置き換えなければならない。本発明の一例では、キャッシュ置き換えポリシーは距離ベースのポリシーである。入力ブロックアドレスＵとＶによれば、一次キャッシュ制御ステージ１７０と二次キャッシュ制御ステージ１９０は、中心入力画素ＵとＶの座標を、キャッシュライン中の既存のブロックデータの座標と比較する。次に、中心入力画素からの最大の距離を持つエントリが置き換えられる。このポリシーは、中心画素への距離が近いほど、サンプリングの計算のために必要とされる確率が高いという事実から派生している。
【００４１】
本発明の別の例では、キャッシュ置き換えポリシーは、最低使用頻度（ＬＲＵ）ベースのポリシーである。この後者の例では、一次キャッシュ制御ステージ１７０と二次キャッシュ制御ステージ１９０は、最低使用頻度のキャッシュラインを置き換えようとする。
【００４２】
キャッシュシステム１００の設計には、本システムを拡張可能なものとするためのいくつかの尺度を持っている。二次キャッシュラインのサイズは、外部メモリー７００とブロック生成レートからメモリー読み出しサイズ、たとえば、バーストサイズまで拡張可能である。二次キャッシュラインの数は、必要とされるキャッシュ効率に基づいて拡張可能である。二次キャッシュバンクの数は、入力ブロックデータ構造と二次キャッシュからのアクセス毎のクロックサイクル数とに基づいて拡張可能である。二次キャッシュ１２０の拡張は、サイズ要件とキャッシュシステム効率、すなわち、再読み出しされる入力ディジタルデータの分量に基づいている。
【００４３】
ブロック包含ステージ１５０中でクロックサイクル毎に生成されるブロックの数は、フィルタリングアルゴリズムならびにフットプリントサイズおよび必要とされるスループットに基づいて拡張可能である。入力画素ＬＳＢであるＵとＶに基づいた一次キャッシュ１１０と二次キャッシュ１２０の位置付けは、キャッシュのサイズにも適応可能である。これは、特定のパーティショニング目的で用いられるビットの数によって実施される。一次キャッシュラインのサイズは、入力ブロックのサイズに基づいて拡張可能である。一次キャッシュバンクの数は、フィルタリングのスループットに基づいて拡張可能である。さまざまなキューのサイズもまた、メモリーレイテンシ対必要スループットの関係に依存する拡張可能パラメータである。このようなサイズは、シミュレーションと経験的なデータに基づいて決定される。
【００４４】
このような設計パラメータはすべて経費と性能とのトレードオフとして注意深く考慮しなければならない。したがって、注意深いシミュレーションと実験は、本発明を特に実施する目的で実行されて、当面の特殊な場合のキャッシュソリューションを最適化する。
【００４５】
本発明のある特徴を本書に図示して説明したが、いまや、多くの修正例、置換例、変更例および等価例が当業者には思い当たるであろう。したがって、添付クレームは、本発明の真の精神に入るようなすべての修正例と変更例をカバーすることを意図するものであることを理解すべきである。
【図面の簡単な説明】
【００４６】
【図１】本発明にしたがって構築されたキャッシュシステムの全体的なスキームを示す図である。
【図２】本発明にしたがって構築されたキャッシュシステムの詳細な構造を示す図である。
【図３】キャッシュされる入力データのブロック構造の例を示す図である。
【図４】本発明にしたがって構築された一次キャッシュシステムの一般的構造を示す図である。
【図５】本発明にしたがって構築された二次キャッシュシステムの一般的構造を示す図である。
【図６】本発明にしたがって構築されたキャッシュシステムのフローのロジックを示す図である。
【図１】
2008507028.tif 000003
【図２】
2008507028.tif 000004
【図３】
2008507028.tif 000005
【図４】
2008507028.tif 000006
【図５】
2008507028.tif 000007
【図６】
2008507028.tif 000008
【国際調査報告】
2008507028.tif 000009