JP5071977B2 - キャッシュメモリーを管理するシステムと方法 - Google Patents

キャッシュメモリーを管理するシステムと方法 Download PDF

Info

Publication number
JP5071977B2
JP5071977B2 JP2007521441A JP2007521441A JP5071977B2 JP 5071977 B2 JP5071977 B2 JP 5071977B2 JP 2007521441 A JP2007521441 A JP 2007521441A JP 2007521441 A JP2007521441 A JP 2007521441A JP 5071977 B2 JP5071977 B2 JP 5071977B2
Authority
JP
Japan
Prior art keywords
data
cache
pcm
scm
external memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007521441A
Other languages
English (en)
Other versions
JP2008507028A (ja
Inventor
クリストファー ケンドラー、フレデリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008507028A publication Critical patent/JP2008507028A/ja
Application granted granted Critical
Publication of JP5071977B2 publication Critical patent/JP5071977B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ディジタルデータ処理、特に、ディジタル画像データ処理におけるキャッシュメモリーの構造と管理に関する。
新しいコンピュータシステムが発明されて以来、より早い処理と高速なシステムを求める競争が常に存在した。クロックの速度を潜在的に高めるより高速なプロセッサが作成されてきた。データと命令の分量が急激に増加したのも自然なことである。コンピュータシステムにおいては、ますます大きい記憶容量を持つデータや命令を記憶するROM(読み出し専用メモリー)やバーストベースのメモリー、たとえば、DRAMなどの記憶デバイスが存在する。構造的には、大きいメモリー空間は深化しており、このため、メモリー中のデータや命令にアクセスするプロセッサの速度が遅くなっている。この問題によって、より効率的なメモリー管理と、キャッシュメモリーおよびキャッシュメモリー構造の創造とに対する必要性が生じている。キャッシュメモリーは、一般には、プロセッサの内部またはこれに近接したところにある浅く広い記憶デバイスであって、これによって、プロセッサはデータにアクセスしたりデータの内容を変更したりしやすくなる。キャッシュメモリー管理の哲学は、使用頻度の高い、すなわち、近い将来においてプロセッサが使用する確率が最も高いデータと命令のコピーを、最速でアクセス可能な記憶デバイスの内部に保存しておくというものである。これによって、外部メモリーにある場合よりも何倍も速くプロセッサはデータや命令にアクセスできる。しかしながら、キャッシュメモリーや外部メモリー内の内容を変更するというような動作においては調和を保つように注意が必要である。このような、ハードウエア機能とソフトウエア機能とに関する問題点のため、キャッシュメモリー構造とその管理のための技術が創造されてきた。
すでに述べたように、キャッシュメモリーは、プロセッサが次にアクセスする可能性が最も高いデータとアドレスポインタとのコピーを保持しておくものである。外部メモリーは、一般的には、キャパシタにデータを保存しておくものであり、データが失われることを防止するためにキャパシタに電荷を補充するリフレッシュサイクルを必要とする。しかしながら、一般的なキャッシュメモリーでは1ビットを表すのに8個のトラジスタを用い、これによって、リフレッシュサイクルを不要としている。したがって、キャッシュメモリーは、単位サイズあたりの記憶空間が外部メモリーと比べてはるかに少ない。このため、キャッシュメモリーは、収容可能なデータ量が外部メモリーよりはるかに少ない。その結果、キャッシュ動作を最適化するためには、データと命令を注意深く選別しなければならない。
キャッシュメモリー動作を最適にするさまざまなポリシーとプロトコルが用いられている。これらの内で最もよく知られているのが、直接マッピング方式、フルアソシアティブ方式、およびセットアソシアティブ方式である。これらのプロトコルは、当業者には周知である。これらのプロトコルは、データ処理、Webベースのアプリケーションなどを含む演算という一般的な目的に適っている。ポメレーン(Pomerene)に対して発行されている米国特許第4,295,193号には、マルチ命令ワードにコンパイルされている命令を同時並行に実行する演算マシンが提示されている。これは、キャッシュメモリー、アドレスゼネレータ、命令レジスタおよびパイプライン方式を示唆する最も初期の特許のうちの一つである。マツオ(Matsuo)に対して発行されている米国特許第4,796,175号には、メインメモリーと命令キャッシュとから命令をプリフェッチする形態を持つ命令キュー機能付きのマイクロプロセッサが提示されている。スティルズ(Stiles)に対して発行されている米国特許第6,067,616号には、フルアソシアティブ方式の広く浅い第1レベルのBCP(分岐予測キャッシュ)と、部分的予測情報を持つ深く狭い直接マッピングされた第2レベルのBCPから成るハイブリッド型キャッシュ構造を持つ分岐予測キャッシュ(BCP)スキームが提示されている。フランク(Frank)に対して発行された米国特許第6,654,856号には、アドレス的に円形構造のキャッシュメモリーに重点が置かれているコンピュータシステムにおけるキャッシュ管理システムが提示されている。
リアオ(Liao)に対して発行された米国特許第6,681,296号には、制御装置とキャッシュを持つマイクロプロセッサが提示されているが、このキャッシュは、ロック部分とノーマル部分で区分されたキャッシュ構成とするか単独のキャッシュ構成とするか選択可能となっている。アルミリ(Arimilli)に対して発行された米国特許第6,721,856号には、プロセッサアクセスシーケンスを包含しているプロセッサが異なればそれに対するサブエントリも異なるライン毎のコヒーレンシ状態とシステムコントローラ情報とを持つキャッシュが提示されている。米国特許第6,629,188号には、第1と第2の複数の記憶空間を持つキャッシュメモリーが開示されている。米国特許第6,295,582号には、データコヒーレンシを有し、実質的な順次読み出しコマンドと書き込みコマンドがデッドロックする事態を回避するキャッシュシステムが開示されている。米国特許第6,339,428号には、圧縮された(compressed)テクスチャ情報がテクスチャ操作のために受信・圧縮解除(解凍)される(decompressed)ビオデグラフィックス分野におけるキャッシュ装置が開示されている。米国特許第6,353,438号には、複数タイルのテクスチャ画像データを持ち、データを直接にキャッシュにマッピングするキャッシュ編成が開示されている。
上記の発明はそのおのおのが、ある長所を提供する。効率的なキャッシュ構造とポリシーは、手元にある特定の応用物に強く依存する。ディジタルビデオ応用分野では、ディジタル画像をリアルタイムでしかも高品質で処理することは、この分野における大きな挑戦のうちの1つである。具体的には、非線形の座標変換を同時に実行しながら、詳細な二次元画像処理を必要とする。したがって、データのコヒーレンシを保った状態で迅速にアクセスするという固有の長所を持つ特殊化した専用のシステムが必要とされる。そのため、この応用のために、キャッシュ構造とキャッシュ管理ポリシーとを最適化することが必要である。
米国特許第4,295,193号 米国特許第4,796,175号 米国特許第6,067,616号 米国特許第6,654,856号 米国特許第6,681,296号 米国特許第6,721,856号 米国特許第6,629,188号 米国特許第6,295,582号 米国特許第6,339,428号 米国特許第6,353,438号
本発明はその1態様においては、
(a)アクセスされて処理されるデータが記憶される外部メモリーと、
(b)制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット(PU1)と、
(c)データを処理する複数のプロセッサユニット(PU2)と、
から成るセッティングにおいて、ディジタルデータ処理、特に、ディジタル画像処理におけるキャッシュメモリーを管理方法とキャッシュメモリー構造を提供する。
本方法は、
(i)おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する、より大きい記憶容量を持つより深い二次キャッシュメモリー(SCM)と、
(ii)おのおのが前記PU2がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、より小さい記憶容量を持つより迅速でより広い一次キャッシュメモリー(PCM)と、
(iii)制御ステージと制御キューを含んでおり、これで、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する制御ロジックと、
というキャッシュ構造を用いて、PU1からアドレスシーケンスと制御パラメータを受信したら、外部メモリー中のデータを処理し、また、PU2が迅速にアクセスして処理できるようにデータを準備する。
本方法は、
(a)外部メモリー中のどのデータブロックを処理するかを、PU2中での処理動作のトポロジと構造とに基づいて識別するステップと、
(b)十分大きいSCM制御キューをステップ(a)の結果に基づいて生成して、PCM中にデータが存在するかどうか判定し、これで、SCMが外部メモリー中のデータにPU2による処理で必要とされるより十分早期にアクセスするようにするステップと、
(c)前記SCMの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記PU2からの外部メモリーデータ編成を隠匿して(隠して)、前記PU2中でのデータ処理の速度を増加させるステップと、
(d)十分大きいPCM制御キューをステップ(a)と(b)の結果に基づいて生成して、データが前記PU2によって必要とされる以前に、抽出されたデータを前記PCM中に記憶するステップと、
(e)前記PU2中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する。
別の態様で、本発明は、上述の方法に基づいたキャッシュシステムを提供する。
本発明の実施形態のさまざまな態様と長所との更なる詳細を、添付図面を参照して以下に説明する。
次に、添付図面と模範的な実施例にしたがって、本発明を詳細に説明する。本発明は、キャッシュの構造と管理に関する。以下の説明に出てくる実施例は、同時座標変換(simultaneous coordinate transformation)を伴う画像処理の例である。しかしながら、当業者は、本発明の範囲は、この特定の例に制限されないことを理解するであろう。本発明は、複数のプロセッサがデータと制御パラメータを外部メモリーと任意の形式を持つ他のプロセッサとからフェッチ(fetch)してこようとするいかなるタイプのディジタルデータ処理にも関連する。特に、本書で説明する2次元(2D)画像変換の例は、本発明の範囲から逸脱することなくどのような2D画像変換に入れ替えることが可能であることは自明である。したがって、以下の説明で、データとは画像画素データを意味する。入力データの構造とトポロジに関連する制御パラメータを発行する複数のプロセッサとは、ジオメトリエンジンのことを意味する。加えて、動作用のデータを処理する複数のプロセッサとは、フィルタエンジンのことであり、それに対応する動作とはフィルタリング動作のことである。
図1に、本発明にしたがって構築された、同時座標変換機能を持つ、ディジタル画像データ処理用に設計された、演算装置中のキャッシュシステム100の設定の例を図示する。キャッシュシステム100は、2セットのプロセッサとインタフェースしている。この実施例において、第1の複数のプロセッサは、ジオメトリエンジン300を構成しており、第2の複数のプロセッサはフィルタエンジン500を構成している。これら2つのエンジンに加えて、キャッシュシステム100は、アクセスレイテンシを持つどのようなメモリーでもありえる外部メモリー700とインタフェースしている。キャッシュシステム100は、座標変換パラメータとフィルタフットプリントパラメータとを含む制御パラメータをジオメトリエンジン300から受信する。同時に、本システムは、画素データを外部メモリー700から受信する。キャッシュシステム100は、フィルタエンジン500の機能停止を最小にとどめながらもフィルタリングプロセスを最適化するように、これらのデータをフィルタエンジン500に対して提供する。
2次元(2D)データ処理、特に、ディジタル画像データ処理においては、総合的なフィルタリング機能またはサンプリング機能が必要とされる。以下において、2D画像処理を特に例として取り上げ、したがって、「画素」という語は、任意の2Dデータのうちの特定の場合として用いる。2Dディジタル画像処理においては、おのおのの出力画素が、多くの入力画素からの情報に基づいて形成される。最初に、出力画素座標を、入力画素座標に対してマッピングする。これは座標変換であって、通常は、画像ワープ技法によって電子的に実施される。いったん中心の入力画素が決まると、出力画素仕様、すなわち、構成色の強度と、サンプリングフォーマットやブレンド機能などの他の情報とを生成するためにフィルタリング機能またはサンプリング機能が必要となる。それに対してサンプリングが実行される中心入力画素の周りのすべての画素を含む領域は、フィルタフットプリントと呼ばれる。フィルタフットプリントのサイズと形状は、出力画像の品質に影響することは技術上公知である。
キャッシュシステム100の機能は、専用のアーキテクチャとプリフェッチロジックを用いて、十分なランダムアクセス画素データと制御パラメータをフィルタエンジン500に提供し、これにより、機能停止を最小に抑えながら、このエンジンがどのクロック速度においても処理すべきデータを有しているようにすることである。最適化されたサイズを持つ読み出し要求キューによって、キャッシュシステム100は、画素データがフェッチされる元の外部メモリー700に固有のメモリー読み出しレイテンシのほとんどを隠匿することが可能となる。メモリー読み出しレイテンシのこの隠匿動作は、フィルタの動作に優先する。このレイテンシが適切に隠匿されないと、フィルタエンジン500のスループットは最大とならない。許容される機能停止時間は、設計上のパラメータである。ハードウエアコストとのトレードオフとして必要とされるスループットを達成するようにさまざまなパラメータを調節する必要がある。
加えて、キャッシュシステム100からは、ジオメトリエンジン300から読み出されるフィルタフットプリントパラメータと座標変換のための制御経路が提供されている。キャッシュシステム100によって、一方では外部メモリー700からの画素データと他方ではジオメトリエンジン300からの制御パラメータとが、フィルタエンジン500の入力部に到達した時点で同期が取られることを保証する。
本明細書中でで、われわれは、イタリックで量を表示する慣習法を採用し(たとえば64バイト)、これによって、参照番号(たとえば、フィルタエンジン500)と区別されるようにする。
図2は、キャッシュシステム100の詳細な構造の例を示す図である。おのおのの出力画素に対して、キャッシュシステム100は、ジオメトリエンジン300からある制御パラメータを受信する。このようなパラメータには、マッピングされた入力画素の座標と、UおよびVと、フィルタフットプリントの形状、回転量およびサイズを定義する制御パラメータなどの追加の制御パラメータとが含まれる。同時に、キャッシュシステム100は、外部メモリー700からのフィルタフットプリントに含まれるがそのおのおのに対する画素データを受信する。このようなデータには、色空間内の構成色、たとえば、RGBもしくはYCrCbの強度レベルと、サンプリングフォーマット、たとえば、4:4:4もしくは4:2:2と、ブレンド機能、すなわち、αありかα無しかということとが含まれる。
キャッシュシステム100の構造は、入力画像をm×n個の画素分のサイズを持つブロックに分割することに関連している。図3に、n=8でm=4である入力画像画素ブロック構造の例を示す。入力画像330は、ある数の画素、たとえば、1024×1024個の画素をブロックに分割したものを含んでいる。おのおのの入力画素ブロック332は、m×n個の入力画素334を含んでいる。ブロックの構造は一般に、さまざまなフィルタリングスキームにおいてフットプリントの形状とサイズの関数である。
キャッシュシステム100は、m×n個の入力画素ブロック332に関連するデータをフェッチして、フィルタエンジン500が使用可能なデータブロックを生成する。このため、本システムは、どのブロックがフットプリントの内部に入るか、また、このようなブロック内のどの画素がフィルタリングのために含まれるべきであるかを判定しなければならない。キャッシュシステム100の構造は、入力ブロックデータ構造に適合するように拡張可能となっている。また、一般に、キャッシュシステム100の構造は、フィルタエンジン500の動作の性質と構造の関数であることに注意すべきである。画像処理という特殊な場合では、この動作の構造とトポロジは部分的にはフィルタフットプリントによって定義される。
ここで図2に示す例を参照すると、キャッシュシステム100は、浅く広くそして容量の少ない一次キャッシュ110と、深く容量の大きい二次キャッシュ120と、ブロック包含ステージ150と、ブロックデータ生成ステージ130と、一次キャッシュ制御ステージ170と、二次キャッシュ制御ステージ190とを備えている。また、多くのキューもあるが、これについては後述する。画素データは、最初に外部メモリー700から二次キャッシュ120に読み込まれる。次に、これらのデータは、ブロック生成ステージ130によって再フォーマッティングされて、解凍されて、フィルタエンジン500によって用いられるようにする。これらの再フォーマッティングされたデータはキューに組み込まれて、適当な時点に一次キャッシュ110中に置かれる、ここでは、フィルタエンジン500によって即座にアクセス可能となる。以下に、データの経路と制御ロジック構造をそれぞれ説明する。
ここで図5に示す例を参照すると、二次キャッシュ120は、外部メモリー700から生データを読み出す大容量記憶デバイスである。外部メモリー700中の画素データは、任意のフォーマット、一般に、フィルタエンジン500中で処理するにはあまり適していないフォーマットで記憶されており、たとえば、特殊な例では、データは、順次に、すなわち、走査線の順序で記憶されている。二次キャッシュ120は、割り込みを最小に抑えて効率的にこれらのデータを読み込むように設計されている。
二次キャッシュ中のおのおののラインは、外部メモリー700からのb2バイトのデータのバーストを収容するように設計されている。この理由によって、二次キャッシュ120中のおのおののラインのサイズは、外部メモリー700の構造と読み出し要件とにしたがって決まる。このようなデータが記憶される二次キャッシュ120中のラインの数は、また、二次キャッシュのミスカウントを軽減するように最適化された設計パラメータでもある。二次キャッシュ120は、さらにそのうえ、一次キャッシュ110を更新して、フィルタエンジン500の機能停止を最小化するに十分な読み出しスループットを可能とするようにバンキングされている。これらの設計パラメータは、中心入力画素をサンプリングするためには多くの隣接画素が必要とされるため、フィルタエンジン500による画素処理用に十分なデータを記憶するために決定的に重要である。
したがって、二次キャッシュ120は、外部メモリー700からデータを同時に読み出すために互いに独立したアクセスラインを持つバンクをある数だけ有するように設計されている。図5の図示例に示すように、二次キャッシュ120は多くのバンク122を有しているが、そのおのおのが、ある数のライン124を持っている。二次キャッシュのラインはそのおのおのが、外部メモリー700から読み出された1データバーストのデータを含んでいる。これらのデータは、最終的にはフィルタエンジン500によって読み出される必要がある。このため、二次キャッシュのバンクの数は、データのスループットの関数として設計されている。m×n個の入力ブロックからなる構造で、データを読み出すために必要とされるクロックサイクルの数がNcである場合、二次キャッシュ120中ではn/Nc個のバンクが必要とされる。データを二次キャッシュのバンクに分配するには、1つの特殊な実施例では、最下位ビット(LSB)UとVの組み合わせが用いられる。これによって、デコーディングロジックの複雑さが軽減され、これで、領域が節約されて更新動作がはるかに高速となる。おのおののバンクを2j個のパーティションに分割するには、j個のLSBが用いられる。二次キャッシュバンク1つ当たり2j本のラインがあるとすると、二次キャッシュのアーキテクチャは、2j/2jのセットアソシアティブ方式となる。その設計は二次キャッシュ120の適切な置き換えポリシーとあいまって、キャッシュロジックに沿って後述するように、分割を簡略で効率的なものとし、これで、データが二次キャッシュ120全体にわたって分布される。
いったんデータが外部メモリー700から二次キャッシュ120に読み込まれると、これらのデータは、フィルタエンジン500にとって使用可能なフォーマットに変換する必要がある。ブロック生成ステージ130は、二次キャッシュ120からデータを読み出し、これらのデータを、m×n個の入力画素のブロックからのすべてのデータを含むブロックに準備する。上述したように、ブロック生成ステージ130は、クロックサイクル毎に、二次キャッシュ120の持つn/Nc個のラインを読み出す。これによって、Nc個のクロックサイクル毎に、1つの入力画素ブロックに関連するすべてのデータが同時に読み出されることが保証される。データのパッキングフォーマットと読み出しスループットによっては、入力画素ブロックを生成するには二次キャッシュ120から複数回の読み出し動作が必要とされる。これらのデータを読み出すことに加えて、ブロック生成ステージ130は、これらのデータを再フォーマッティングして、フィルタエンジン500が容易に使用できるようなフォーマットに解凍する。したがって、ブロック生成ステージ130は、さまざまな圧縮スキームで圧縮可能なオリジナルの画素データフォーマットを隠匿する。これによって、フィルタエンジン500は、外部メモリー700中の画素データのフォーマットを解明して、オリジナルのフォーマッティング済みデータをフィルタリング動作で使用可能なブロックにアンパックする責務から開放される。これらのブロックデータは最終的には一次キャッシュ110に記憶され、そこからフィルタエンジン500によって読み出される。
ここで図4の例を参照すると、一次キャッシュ110は、フィルタエンジン500中でのデータアクセス速度を最適化するように設計されている。したがって、複数のアクセスラインに対して浅いが広い構造となっている。一次キャッシュ110は、ある数のバンクに分割されており、おのおのの一次キャッシュバンク112は、フィルタエンジン500によって互いに独立にそして同時に読み出される。一次キャッシュバンクの数は、フィルタリング性能を最適化するように、経験に基づいたデータとシミュレーションにしたがって決定される。おのおのの一次キャッシュバンク112は、ある数の一次キャッシュラインを含んでいる。おのおのの一次キャッシュライン114は、入力データの完全なm×n個のブロックからのデータを含んでいる。したがって、一次キャッシュバンクがb1個あれば、フィルタエンジン500は、b1個の入力ブロックを含むデータをサイクル毎に適切なフォーマットで読み出す。これは非常に重要であるが、それは、サンプリングするためには、入力画素の周りの入力ブロックが多数必要であり、多数の入力ブロックがフィルタエンジン500に提供されないと、このエンジンは機能停止するからである。機能停止の期間と頻度によって、スループット性能が決まる。
データをさまざまな一次キャッシュバンクに分配するために、入力画素座標のLSBであるUとVを用いる。一次キャッシュ110内部にある一次バンク112はそのおのおのが、ある数のパーティションにさらに分割されている。上述したように、ある数のLSBを用いて、データをさまざまな一次キャッシュバンクに分配する。入力画素のUとVのアドレスの残余ビット中のさらなるLSBをまた用いて、おのおのの一次キャッシュバンク中のデータを分配する。一次キャッシュバンク1つ当たり、そして、2f個のライン毎に、おのおののバンクを区分するために用いられるg個のLSBが用いられ、この分割によって、2f/2g個のセットアソシアティブアーキテクチャとなる。
後述するように、この設計をまた、一次キャッシュ110の適切な置き換えポリシーと共に用いて、最適なスループットが達成される。このアーキテクチャは簡単にそして自然に拡張可能であるが、それは、入力データの分量が多くなると、アドレスUとアドレスV中で利用可能なビットの数が増えるからである。
フィルタエンジン500により必要とされる際に、使用可能なフォーマットのデータが存在することを保証するために、プリフェッチロジック構造が設計される。図6に、キャッシュ制御ロジック400を示す。このロジック構造は、外部メモリー700から二次キャッシュ120がデータを読み出す動作と、ブロック生成ステージ130でデータを読み出して再フォーマッティングする動作と、一次キャッシュ110にデータブロックを記憶する動作を制御する。
ステップ402で、サンプリングのためにデータブロックが必要であるかどうかが、ジオメトリエンジン300から受信された制御パラメータに基づいて判定される。いったんデータが識別されると、ステップ410で、これらのデータが一次キャッシュの内部に存在するかどうか判定される。存在すれば、ステップ412で一次制御キューに対してエントリが書き込まれ、ステップ414でこれらのデータのアドレスがフィルタエンジン414に送られる。データが一次キャッシュ中に存在しなければ、ステップ415で、後述される採用された置き換えポリシーにしたがって、どの一次キャッシュラインを置き換えるべきか判定される。次に、ステップ416で、この一次キャッシュラインのアドレスが一次制御キューに書き込まれて、ステップ418でフィルタエンジンに送られる。次に、これらのデータが二次キャッシュに存在するかどうかステップ420で判定される。データがそこにも存在しなければ、ステップ422で、どの二次キャッシュラインを置き換えるべきか判定される。次に、読み出し要求が外部メモリーに送られて、後でステップ426で二次キャッシュに読み込まれるデータをフェッチする。データが二次キャッシュ中に存在すれば、ステップ428で、エントリが二次キャッシュ制御キューに書き込まれる。
データが外部メモリーからフェッチされた後で二次キャッシュがヒットしようと二次キャッシュがミスしようとどちらの場合でも、ステップ440で、ブロック生成用に二次キャッシュのデータが読み出される。この場合、データは複数の二次キャッシュバンクから読み出されて、ステップ442で、再フォーマッティングされて解凍される。この段階で、ステップ450で、適切なフォーマットを持つ入力データのブロックがキューとして送られて、一次キャッシュ中に記憶される。ステップ452で、これらのデータは一次キャッシュバンク中に記憶される。
一次キャッシュ110の更新動作は、関連の制御データが一次制御キュー212と画素制御キュー218から読み出されると発生する。これによって、キャッシュコヒーレンシが一次キャッシュ100内部で保持されることが保証される。この時点で、一次キャッシュからのデータが制御パラメータコヒーレンシと共に、ステップ510でフィルタエンジン入力部に到達する。
プリフェッチロジックは、フィルタエンジン500中の読み出しレイテンシを隠匿するように設計されている。この制御ロジック構造がないと、データのスループットが最適化されず、また、フィルタエンジン500の機能停止する割合が増す。キューのサイズが十分であり、記憶サイズが最適であり、データが準備されており、置き換えポリシーがインテリジェントであれば、キャッシュシステム100は、フィルタエンジン500より前を走行することによって読み出しレイテンシのほとんどを隠匿する。
再度図2を参照して、キャッシュ制御ロジック400のハードウエア実施例を以下に説明する。ブロック包含ステージ150は、この制御ロジックの開始点である。おのおのの出力画素に対して、このロジックは、マッピングされた入力画素の座標とフィルタフットプリントの形状と共に制御パラメータをジオメトリエンジン300から受信する。入力画素座標と、UおよびVと、フットプリント形状と、他の制御パラメータとに基づいて、ブロック包含ロジックは、おのおのの出力画素を処理するためにはどの入力ブロックが必要であるか、また、おのおののブロック中のどの画素がサンプリング用に必要であるかを判定する。
ブロック包含ステージ150は、本発明の一例では、隣接するブロックの座標位置をフットプリントのジオメトリと比較して、サンプリングに必要な画素のブロックを包含する。このブロック包含ロジックは、そのブロックアドレス内で少なくとも最下位ビット(LSB)1Uまたは1Vがおのおの異なるk個のブロックをクロックサイクル毎に生成する。これによって、LSBのk個の組み合わせが、ブロック包含ロジックによって生成されたブロックのおのおののセットに存在することが保証される。この制約を用いて、一次キャッシュバンク間にブロックを分配する。クロックサイクル毎の生成ブロック数kは、フットプリントのサイズの関数であり、ブロックのトポロジは、フットプリントの形状の関数である。これらのパラメータは、注意深いシミュレーションと実験によって、フィルタエンジン500中でのデータ処理に関して、キャッシュシステム110の設計の際に考慮すべきものである。ブロック包含ステージ150で生成される画素制御キュー218は、フィルタエンジン500が実際の画素データより前にスケーリングパラメータを生成することを許容するより以前にフィルタエンジン500に送られる。
一次キャッシュ制御ステージ170は、一次キャッシュ110中ではデータの取り扱いのための制御ロジックを提供する。ブロック包含ステージ150によって決定されたおのおのの入力ブロックに対して、一次キャッシュ制御装置170は、このブロックが一次キャッシュ110中に存在するかどうかチェックする。データが存在すれば、これはキャッシュヒットと呼ばれる。存在しなければ、キャッシュミスが登録されて、ミスフラグが二次キャッシュ制御装置190に送られる。一次キャッシュ制御ステージ170は、エントリを一次制御キュー212に書き込んで、一次キャッシュ110の内部のデータのアドレスと、一次キャッシュのヒットがあったかミスがあったかとを示す。一次制御キュー212がフィルタエンジン500によってFIFO方式で読み出される。キャッシュミスフラグがこのようなエントリのうちの1つで上げられると、フィルタエンジン500は読み出し要求をブロックキュー214に送り、するとこのキューが一次キャッシュ110を更新する。
データブロックが一次キャッシュ110に存在しない場合、アドレスUもしくはアドレスVがチェックされたどのブロックとも整合しない場合または関連の有効ビットが設定されていない場合に発生する一次キャッシュミスの場合、この事象は一次キャッシュミスと呼ばれる。二次キャッシュステージ190における制御ロジックは、一次キャッシュミスフラグを受信すると、一次キャッシュに書き込まれるm×n個のブロックを生成するためにどの処置を(ステップを)とるべきか決定する。二次キャッシュ制御ステージ190は、最初に、二次キャッシュ120中にデータが存在するかどうか判定する。これによって、二次キャッシュヒットとなったり、二次キャッシュミスとなったりする。二次キャッシュミスが発生すると、二次キャッシュ制御装置190は読み出し要求を外部メモリー700に送って、行方不明データを外部メモリー700から二次キャッシュ120中にフェッチして、二次制御キュー216にエントリを書き込む。二次キャッシュヒットが発生すると、二次キャッシュ制御ステージ190は、読み出し要求を送出しないで、単にエントリを二次制御キュー216に書き込み、ここで、エントリはブロック生成ステージ130によってFIFO方式で読み出される。
おのおののキューエントリを受信すると、ブロック生成ステージ130は、入力ブロック全体に関連する生データを二次キャッシュ120から読み出す。次に、これらのデータは、フィルタエンジン500が容易に使用可能なフォーマットにブロック生成ステージ130中で再フォーマッティングされる。データパッキングするモードによっては、一次キャッシュライン114を生成するために、複数の二次キャッシュラインが必要とされる。1つの入力ブロックに関連するすべてのデータを取得して、これらのデータを再フォーマッティングしたら、ブロック生成ステージ130は、ブロックキュー214にエントリを書き込む。したがって、おのおののブロックキューエントリは、この入力ブロック全体からのデータをすべて適切なフォーマットで包含している。次に、ブロックキューエントリは一次キャッシュ110によって受信され、ここで、フィルタエンジン500が容易にアクセスされるように記憶される。したがって、ブロックキュー214によって、二次キャッシュ120は、フィルタエンジン500より前を走行することが許容される。
キャッシュシステム100の機能は、専用のプリフェッチロジックに加えて、画素データと制御パラメータのコヒーレンシしだいであることに注意すべきである。二次キャッシュ制御ステージ190からの要求がないかぎり、いかなるデータも二次キャッシュ120によって読み出されることはない。いったんそのデータが二次キャッシュ内に入ると、二次制御キュー216に対するエントリだけが、これらのデータがブロック生成ステージ130でのブロック生成にとって必要であるかどうかを決定する。データのブロックは、いったん生成されると、フィルタエンジン500から読み出し要求された場合にだけ、キューに組み込まれて一次キャッシュに記憶されるが、このエンジン500自身は、一次制御キュー212へのエントリによって教唆される。そのうえ、フィルタエンジンは、データと制御パラメータ双方が2つの互いに独立したキューから到来するのを待って、しかる後に、そのデータを処理する。
フィルタフットプリントとキャッシュ記憶空間の相対的なサイズによっては、フットプリントをサブフットプリント部分に分割し、また、おのおののサブフットプリント部分中のデータを処理する必要がある。この対策は、動的にサイズ付けされるフットプリント用のキャッシュシステム100の設計で予見される。いったんおのおののサブフットプリントに関連するデータがキャッシュされると、フィルタエンジンはこれらのデータを順次に処理する。
キャッシュシステム100にメモリー読み出しレイテンシを隠匿することを許容するデータプリフェッチ動作の効果を理解するに際しては、本発明の一例では、読み出しレイテンシが128クロックサイクル台にあるかどうかを基準として評価されてきた。十分大きいキューを提供することによって、ほとんどすべてのレイテンシが隠匿される。本発明におけるキューのサイズは、本システムで見受けられるメモリー読み出しレイテンシに適合するように調整することが可能であり、したがって、システム仕様に基づいた拡張可能な設計パラメータである。
いったんキャッシュロジック構造によって、あるブロックのデータを二次キャッシュ120によって読み出すべきであるまたは一次キャッシュ110に記憶するために準備すべきであると判定されると、置き換えポリシーが必要とされる。1つの既存の一次キャッシュライン114または複数の二次キャッシュライン124を置き換えなければならない。本発明の一例では、キャッシュ置き換えポリシーは距離ベースのポリシーである。入力ブロックアドレスUとVによれば、一次キャッシュ制御ステージ170と二次キャッシュ制御ステージ190は、中心入力画素UとVの座標を、キャッシュライン中の既存のブロックデータの座標と比較する。次に、中心入力画素からの最大の距離を持つエントリが置き換えられる。このポリシーは、中心画素への距離が近いほど、サンプリングの計算のために必要とされる確率が高いという事実から派生している。
本発明の別の例では、キャッシュ置き換えポリシーは、最低使用頻度(LRU)ベースのポリシーである。この後者の例では、一次キャッシュ制御ステージ170と二次キャッシュ制御ステージ190は、最低使用頻度のキャッシュラインを置き換えようとする。
キャッシュシステム100の設計には、本システムを拡張可能なものとするためのいくつかの尺度を持っている。二次キャッシュラインのサイズは、外部メモリー700とブロック生成レートからメモリー読み出しサイズ、たとえば、バーストサイズまで拡張可能である。二次キャッシュラインの数は、必要とされるキャッシュ効率に基づいて拡張可能である。二次キャッシュバンクの数は、入力ブロックデータ構造と二次キャッシュからのアクセス毎のクロックサイクル数とに基づいて拡張可能である。二次キャッシュ120の拡張は、サイズ要件とキャッシュシステム効率、すなわち、再読み出しされる入力ディジタルデータの分量に基づいている。
ブロック包含ステージ150中でクロックサイクル毎に生成されるブロックの数は、フィルタリングアルゴリズムならびにフットプリントサイズおよび必要とされるスループットに基づいて拡張可能である。入力画素LSBであるUとVに基づいた一次キャッシュ110と二次キャッシュ120の位置付けは、キャッシュのサイズにも適応可能である。これは、特定のパーティショニング目的で用いられるビットの数によって実施される。一次キャッシュラインのサイズは、入力ブロックのサイズに基づいて拡張可能である。一次キャッシュバンクの数は、フィルタリングのスループットに基づいて拡張可能である。さまざまなキューのサイズもまた、メモリーレイテンシ対必要スループットの関係に依存する拡張可能パラメータである。このようなサイズは、シミュレーションと経験的なデータに基づいて決定される。
このような設計パラメータはすべて経費と性能とのトレードオフとして注意深く考慮しなければならない。したがって、注意深いシミュレーションと実験は、本発明を特に実施する目的で実行されて、当面の特殊な場合のキャッシュソリューションを最適化する。
本発明のある特徴を本書に図示して説明したが、いまや、多くの修正例、置換例、変更例および等価例が当業者には思い当たるであろう。したがって、添付クレームは、本発明の真の精神に入るようなすべての修正例と変更例をカバーすることを意図するものであることを理解すべきである。
本発明にしたがって構築されたキャッシュシステムの全体的なスキームを示す図である。 本発明にしたがって構築されたキャッシュシステムの詳細な構造を示す図である。 キャッシュされる入力データのブロック構造の例を示す図である。 本発明にしたがって構築された一次キャッシュシステムの一般的構造を示す図である。 本発明にしたがって構築された二次キャッシュシステムの一般的構造を示す図である。 本発明にしたがって構築されたキャッシュシステムのフローのロジックを示す図である。

Claims (32)

  1. データ処理におけるキャッシュの構造と管理の方法であり、
    (a)アクセスされて処理されるデータが記憶される外部メモリーと、
    (b)制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット(PU1)と、
    (c)データを処理する複数のプロセッサユニット(PU2)と、
    (d)前記PU1からアドレスシーケンスと制御パラメータを受信したら、前記外部メモリー中のデータにアクセスし、また、前記PU2によるアクセスと処理とのためにデータを準備するキャッシュシステムと、
    から成る装置において、該キャッシュシステムは、
    (i)おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する、二次キャッシュメモリー(SCM)と、
    (ii)おのおのが前記PU2がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、一次キャッシュメモリー(PCM)であって、前記二次キャッシュメモリより、より小さい記憶容量でより迅速でより広い当該一次キャッシュメモリと、
    (iii)制御ステージと制御キューを含む制御ロジックであって、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する当該制御ロジックと、
    を備え、
    前記方法は、
    前記キャッシュシステムの前記制御ロジック上で実行し、
    キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿し、
    (a)外部メモリー中のどのデータブロックを処理するかを、前記PU2中での処理動作のトポロジと構造とに基づいて識別するステップと、
    (b)SCM制御キューをステップ(a)の結果に基づいて生成して、前記PCM中にデータが存在するかどうか判定し、これで、前記SCMが前記外部メモリー中のデータに前記PU2による処理のためアクセスするようにするステップと、
    (c)前記SCMの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記PU2からの外部メモリーデータ編成を隠匿して、前記PU2中でのデータ処理の速度を増加させるステップと、
    (d)PCM制御キューをステップ(a)と(b)の結果に基づいて生成して、データが前記PU2によって必要とされる以前に、抽出されたデータを前記PCM中に記憶するステップと、
    (e)前記PU2中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
    を備える前記方法。
  2. SCMバンクの数と、SCMバンク1つ当たりのラインの数と、SCMラインサイズを決定することにより、前記SCMを、入力ブロックデータ構造と、前記外部メモリーからの読み出しフォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項1に記載の方法。
  3. PCMバンクの数と、PCMバンク1つ当たりのラインの数と、PCMラインのサイズを決定することにより、前記PCM構造を、出力データ構造と、フォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項2に記載の方法。
  4. キャッシュシステムへのマッピングを更に含み、当該キャッシュシステムへのマッピングは、アドレスシーケンスに基づいた直接マッピングである、請求項3に記載の方法。
  5. キャッシュシステムへのマッピングを更に含み、当該キャッシュシステムへのマッピングは、
    (a)アドレスシーケンスに基づいた直接マッピングと、
    (b)処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーを適用することと、
    の2段階で実行される、請求項3に記載の方法。
  6. キャッシュシステムへのマッピングを更に含み、当該キャッシュシステムへのマッピングは、
    (a)アドレスシーケンスに基づいた直接マッピングと、
    (b)最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーを適用することと、
    の2段階で実行される、請求項3に記載の方法。
  7. アクセスされるデータの分量に基づいて前記PCMサイズをスケーリングするステップをさらに含む請求項3に記載の方法。
  8. アクセスされるデータの分量に基づいて前記SCMサイズをスケーリングするステップをさらに含む請求項3に記載の方法。
  9. キャッシュ更新頻度に基づいて前記PCMサイズをスケーリングするステップをさらに含む請求項3に記載の方法。
  10. 再読み出し係数に基づいて前記SCMサイズをスケーリングするステップをさらに含む請求項3に記載の方法。
  11. 入力データブロックをサブブロックに分割して、おのおののサブブロックからのデータを順次にキャッシングして、前記PU2中で処理するステップをさらに含む、請求項3に記載の方法。
  12. 前記PU2スループット要件に基づいてPCM出力幅とバンクの数とをスケーリングするステップをさらに含む、請求項3に記載の方法。
  13. 入力データブロックサイズに基づいて前記PCMラインサイズをスケーリングするステップをさらに含む、請求項3に記載の方法。
  14. 前記外部メモリーバーストサイズに基づいて前記SCMラインサイズをスケーリングするステップをさらに含む、請求項3に記載の方法。
  15. PCM更新の必要レートに基づいて前記SCMバンクの数をスケーリングするステップをさらに含む、請求項3に記載の方法。
  16. 入力データブロックのメモリーアドレスの最下位ビットに基づいて前記PCMと前記SCM中にデータを配分するステップをさらに含む、請求項3に記載の方法。
  17. データ処理における2次元画像処理のためのキャッシュシステムであり、
    (a)アクセスされて処理されるデータが記憶される外部メモリーと、
    (b)制御コマンドを発行し、制御パラメータと、前記外部メモリー中の処理予定データのメモリーアドレスとを生成する複数のプロセッサユニット(PU1)と、
    (c)データを処理する複数のプロセッサユニット(PU2)と、
    から成る装置において、前記キャッシュシステムは、
    (i)おのおのが前記外部メモリーからデータを読み出すための記憶ラインを複数個有する複数のバンクを有する二次キャッシュメモリー(SCM)と、
    (ii)おのおのが前記PU2がそこからデータを読み出す記憶ラインを複数個有する複数のバンクを有する、一次キャッシュメモリー(PCM)であって、前記二次キャッシュメモリより、より小さい記憶容量でより迅速でより広い当該一次キャッシュメモリと、
    (iii)制御ステージと制御キューを含む制御ロジックであって、プリフェッチ機能とキャッシュのコヒーレンシ性を提供する当該制御ロジックと、
    を備え、
    前記キャッシュシステムは、前記PU1からアドレスシーケンスと制御パラメータを受信したら、前記外部メモリー中のデータにアクセスし、また、前記PU2が迅速にアクセスして処理できるようにデータを準備し、
    前記システムは、
    (a)外部メモリー中のどのデータブロックを処理するかを、前記PU2中での処理動作のトポロジと構造とに基づいて識別するステップと、
    (b)SCM制御キューをステップ(a)の結果に基づいて生成して、前記PCM中にデータが存在するかどうか判定し、これで、前記SCMが前記外部メモリー中のデータに前記PU2による処理のためアクセスするようにするステップと、
    (c)前記SCMの複数のバンクからの入力データのブロックを事前設定された数のクロックサイクルで同時に読み出して、前記キャッシュデータ編成から前記外部メモリーデータ編成を、データを解凍して再フォーマッティングすることによって抽出し、これによって、前記PU2からの外部メモリーデータ編成を隠匿して、前記PU2中でのデータ処理の速度を増加させるステップと、
    (d)PCM制御キューをステップ(a)と(b)の結果に基づいて生成して、データが前記PU2によって必要とされる以前に、抽出されたデータを前記PCM中に記憶するステップと、
    (e)前記PU2中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
    によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する、前記システム。
  18. SCMバンクの数と、SCMバンク1つ当たりのラインの数と、SCMラインサイズを含む前記SCM構造を、入力ブロックデータ構造と、前記外部メモリーからの読み出しフォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項17に記載のシステム。
  19. PCMバンクの数と、PCMバンク1つ当たりのラインの数と、PCMラインのサイズを含む前記PCM構造を、出力データ構造と、フォーマットと、必要とされるスループットに基づいて最適化するステップをさらに含む、請求項18に記載のシステム。
  20. キャッシュシステムへのマッピングがアドレスシーケンスに基づいた直接マッピングである、請求項19に記載のシステム。
  21. キャッシュシステムへのマッピングが、
    (a)アドレスシーケンスに基づいた直接マッピングと、
    (b)処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーと、
    の2段階で実行される、請求項19に記載のシステム。
  22. キャッシュシステムへのマッピングが、
    (a)アドレスシーケンスに基づいた直接マッピングと、
    (b)最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーと、
    の2段階で実行される、請求項19に記載のシステム。
  23. アクセスされるデータの分量に基づいて前記PCMサイズをスケーリングするようにさらになっている請求項19に記載のシステム。
  24. アクセスされるデータの分量に基づいて前記SCMサイズをスケーリングするようにさらになっている請求項19に記載のシステム。
  25. キャッシュ更新頻度に基づいて前記PCMラインサイズをスケーリングするようにさらになっている請求項19に記載のシステム。
  26. 再読み出し係数に基づいて前記SCMサイズをスケーリングするようにさらになっている請求項19に記載のシステム。
  27. 入力データブロックをサブブロックに分割して、おのおののサブブロックからのデータを順次にキャッシングして、前記PU2中で処理されるようにさらになっている、請求項19に記載のシステム。
  28. 前記PU2スループット要件に基づいてPCM出力幅とバンクの数とをスケーリングするようにさらになっている、請求項19に記載のシステム。
  29. 入力データブロックサイズに基づいて前記PCMラインサイズをスケーリングするようになっている、請求項19に記載のシステム。
  30. 前記外部メモリーバーストサイズに基づいて前記SCMラインサイズをスケーリングするようになっている、請求項19に記載のシステム。
  31. PCM更新の必要レートに基づいて前記SCMバンクの数をスケーリングするようになっている、請求項19に記載のシステム。
  32. 入力データブロックのメモリーアドレスの最下位ビットに基づいて前記PCMと前記SCM中にデータを配分するようになっている、請求項19に記載のシステム。
JP2007521441A 2004-07-14 2004-07-14 キャッシュメモリーを管理するシステムと方法 Expired - Fee Related JP5071977B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2004/022878 WO2006019374A1 (en) 2004-07-14 2004-07-14 Cache memory management system and method

Publications (2)

Publication Number Publication Date
JP2008507028A JP2008507028A (ja) 2008-03-06
JP5071977B2 true JP5071977B2 (ja) 2012-11-14

Family

ID=35907684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007521441A Expired - Fee Related JP5071977B2 (ja) 2004-07-14 2004-07-14 キャッシュメモリーを管理するシステムと方法

Country Status (5)

Country Link
EP (1) EP1769360A4 (ja)
JP (1) JP5071977B2 (ja)
KR (1) KR101158949B1 (ja)
CN (1) CN100533403C (ja)
WO (1) WO2006019374A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806164B2 (en) 2011-03-04 2014-08-12 Micron Technology, Inc. Apparatus, electronic devices and methods associated with an operative transition from a first interface to a second interface
US9001138B2 (en) * 2011-08-29 2015-04-07 Intel Corporation 2-D gather instruction and a 2-D cache
EP2959715B1 (en) * 2013-02-22 2016-10-05 Telefonaktiebolaget LM Ericsson (publ) Media distribution network with media burst transmission capabilities
US10181176B2 (en) * 2016-03-04 2019-01-15 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
CN107153617B (zh) * 2016-03-04 2023-04-07 三星电子株式会社 用于利用缓冲器高效访问纹理数据的高速缓存体系结构
US11042962B2 (en) 2016-04-18 2021-06-22 Avago Technologies International Sales Pte. Limited Hardware optimisation for generating 360° images
US10209887B2 (en) * 2016-12-20 2019-02-19 Texas Instruments Incorporated Streaming engine with fetch ahead hysteresis
JP2020004247A (ja) * 2018-06-29 2020-01-09 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
CN110569204B (zh) * 2019-07-23 2023-01-20 广东工业大学 基于fpga和ddr3 sdram的可配置图像数据缓存系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410649A (en) 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
JPH1083347A (ja) * 1996-09-06 1998-03-31 Fujitsu Ltd キャッシュメモリ装置
JPH10116191A (ja) * 1996-10-14 1998-05-06 Hitachi Ltd 圧縮命令用バッファを備えたプロセッサ
JP3104643B2 (ja) * 1997-05-07 2000-10-30 株式会社セガ・エンタープライゼス 画像処理装置及び画像処理方法
DE69815482T2 (de) * 1997-12-24 2004-04-29 Texas Instruments Inc., Dallas Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
JP3365293B2 (ja) * 1998-02-12 2003-01-08 株式会社日立製作所 Dram,ロジック混載lsiを使ったキャッシュメモリ及びそれを用いたグラフィックスシステム
US6560674B1 (en) * 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer
US6957305B2 (en) * 2002-08-29 2005-10-18 International Business Machines Corporation Data streaming mechanism in a microprocessor

Also Published As

Publication number Publication date
WO2006019374A1 (en) 2006-02-23
EP1769360A1 (en) 2007-04-04
JP2008507028A (ja) 2008-03-06
CN100533403C (zh) 2009-08-26
CN1961295A (zh) 2007-05-09
KR101158949B1 (ko) 2012-07-06
EP1769360A4 (en) 2008-08-06
KR20070038955A (ko) 2007-04-11

Similar Documents

Publication Publication Date Title
US8627041B2 (en) Efficient line and page organization for compression status bit caching
US20110072235A1 (en) Efficient memory translator with variable size cache line coverage
US9952977B2 (en) Cache operations and policies for a multi-threaded client
US8566607B2 (en) Cryptography methods and apparatus used with a processor
JP4451717B2 (ja) 情報処理装置および情報処理方法
US6650333B1 (en) Multi-pool texture memory management
US8949541B2 (en) Techniques for evicting dirty data from a cache using a notification sorter and count thresholds
EP2042996A1 (en) Multi-media processor cache with cache line locking and unlocking
JPH08328958A (ja) 命令キャッシュ、キャッシュメモリ装置及びその方法
US10032246B2 (en) Approach to caching decoded texture data with variable dimensions
US8595437B1 (en) Compression status bit cache with deterministic isochronous latency
US8060700B1 (en) System, method and frame buffer logic for evicting dirty data from a cache using counters and data types
US9798543B2 (en) Fast mapping table register file allocation algorithm for SIMT processors
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US20160353122A1 (en) Variable-rate texture compression using fixed-rate codes
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
JP5071977B2 (ja) キャッシュメモリーを管理するシステムと方法
JP2014115851A (ja) データ処理装置及びその制御方法
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
JP2010073029A (ja) 命令キャッシュシステム
US9934145B2 (en) Organizing memory to optimize memory accesses of compressed data
US6683615B1 (en) Doubly-virtualized texture memory
US10402323B2 (en) Organizing memory to optimize memory accesses of compressed data
US7589738B2 (en) Cache memory management system and method
US8862823B1 (en) Compression status caching

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110304

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120717

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120816

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees