JP2008507028A - System and method for managing cache memory - Google Patents
System and method for managing cache memory Download PDFInfo
- Publication number
- JP2008507028A JP2008507028A JP2007521441A JP2007521441A JP2008507028A JP 2008507028 A JP2008507028 A JP 2008507028A JP 2007521441 A JP2007521441 A JP 2007521441A JP 2007521441 A JP2007521441 A JP 2007521441A JP 2008507028 A JP2008507028 A JP 2008507028A
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
Abstract
2次元データ処理、特に、座標変換を同時に実行する2次元画像処理のためのキャッシュメモリー方法とそれに対応するシステムを開示する。本方法は、データを同時にアクセスする複数のバンクをおのおのが持っている広く高速な一次キャッシュメモリー(PCM)と深い二次キャッシュメモリー(SCM)を用いる。専用のプリフェッチロジックを用いて、外部プロセッサシステム(PU1)から制御パラメータを受信すると、外部メモリーから画素データを獲得して、二次制御キューに基づいてそのデータをPCM中に記憶する。
次に、このデータは特定のブロックサイズと特定のフォーマットで準備され、次に、最適化されたサイズのプリフェッチ一次制御キューに基づいてPCMに記憶される。次に、この準備されたデータは、別の外部プロセッサシステム(PU2)によって読み出されて処理される。このキャッシュ制御ロジックによって、PU2の入力部のところでのデータと制御パラメータのコヒーレンシが保証される。A cache memory method and a corresponding system for two-dimensional data processing, particularly two-dimensional image processing for performing coordinate transformation simultaneously, are disclosed. The method uses a wide and fast primary cache memory (PCM) and a deep secondary cache memory (SCM), each having multiple banks that simultaneously access data. When control parameters are received from the external processor system (PU1) using a dedicated prefetch logic, the pixel data is acquired from the external memory and stored in the PCM based on the secondary control queue.
This data is then prepared in a specific block size and a specific format and then stored in the PCM based on an optimized size prefetch primary control queue. Next, this prepared data is read and processed by another external processor system (PU2). This cache control logic ensures coherency of data and control parameters at the input of PU2.
Description
本発明は、ディジタルデータ処理、特に、ディジタル画像データ処理におけるキャッシュメモリーの構造と管理に関する。 The present invention relates to the structure and management of a cache memory in digital data processing, particularly digital image data processing.
新しいコンピュータシステムが発明されて以来、より早い処理と高速なシステムを求める競争が常に存在した。クロックの速度を潜在的に高めるより高速なプロセッサが作成されてきた。データと命令の分量が急激に増加したのも自然なことである。コンピュータシステムにおいては、ますます大きい記憶容量を持つデータや命令を記憶するROM(読み出し専用メモリー)やバーストベースのメモリー、たとえば、DRAMなどの記憶デバイスが存在する。構造的には、大きいメモリー空間は深化しており、このため、メモリー中のデータや命令にアクセスするプロセッサの速度が遅くなっている。この問題によって、より効率的なメモリー管理と、キャッシュメモリーおよびキャッシュメモリー構造の創造とに対する必要性が生じている。キャッシュメモリーは、一般には、プロセッサの内部またはこれに近接したところにある浅く広い記憶デバイスであって、これによって、プロセッサはデータにアクセスしたりデータの内容を変更したりしやすくなる。キャッシュメモリー管理の哲学は、使用頻度の高い、すなわち、近い将来においてプロセッサが使用する確率が最も高いデータと命令のコピーを、最速でアクセス可能な記憶デバイスの内部に保存しておくというものである。これによって、外部メモリーにある場合よりも何倍も速くプロセッサはデータや命令にアクセスできる。しかしながら、キャッシュメモリーや外部メモリー内の内容を変更するというような動作においては調和を保つように注意が必要である。このような、ハードウエア機能とソフトウエア機能とに関する問題点のため、キャッシュメモリー構造とその管理のための技術が創造されてきた。 Since the invention of new computer systems, there has always been a competition for faster processing and faster systems. Faster processors have been created that potentially increase the speed of the clock. It is natural that the amount of data and instructions has increased rapidly. In a computer system, there are storage devices such as a ROM (Read Only Memory) for storing data and instructions having a larger storage capacity and a burst-based memory, for example, a DRAM. Structurally, large memory spaces are deepening, which slows down the speed of processors accessing data and instructions in memory. This problem creates a need for more efficient memory management and the creation of cache memory and cache memory structures. A cache memory is generally a shallow and wide storage device within or close to the processor that makes it easier for the processor to access and modify the contents of the data. The cache memory management philosophy is to keep a copy of data and instructions that are used frequently, that is, most likely to be used by the processor in the near future, in the fastest accessible storage device. . This allows the processor to access data and instructions many times faster than in external memory. However, care must be taken to maintain harmony in operations such as changing the contents of cache memory or external memory. Due to such problems related to hardware functions and software functions, cache memory structures and techniques for managing them have been created.
すでに述べたように、キャッシュメモリーは、プロセッサが次にアクセスする可能性が最も高いデータとアドレスポインタとのコピーを保持しておくものである。外部メモリーは、一般的には、キャパシタにデータを保存しておくものであり、データが失われることを防止するためにキャパシタに電荷を補充するリフレッシュサイクルを必要とする。しかしながら、一般的なキャッシュメモリーでは1ビットを表すのに8個のトラジスタを用い、これによって、リフレッシュサイクルを不要としている。したがって、キャッシュメモリーは、単位サイズあたりの記憶空間が外部メモリーと比べてはるかに少ない。このため、キャッシュメモリーは、収容可能なデータ量が外部メモリーよりはるかに少ない。その結果、キャッシュ動作を最適化するためには、データと命令を注意深く選別しなければならない。 As already mentioned, the cache memory holds a copy of the data and the address pointer that are most likely to be accessed next by the processor. The external memory generally stores data in the capacitor, and requires a refresh cycle for replenishing the capacitor with charge in order to prevent the data from being lost. However, a general cache memory uses 8 transistors to represent 1 bit, thereby eliminating the need for a refresh cycle. Therefore, the cache memory has much less storage space per unit size than the external memory. For this reason, cache memory has much less data capacity than external memory. As a result, data and instructions must be carefully screened to optimize cache operation.
キャッシュメモリー動作を最適にするさまざまなポリシーとプロトコルが用いられている。これらの内で最もよく知られているのが、直接マッピング方式、フルアソシアティブ方式、およびセットアソシアティブ方式である。これらのプロトコルは、当業者には周知である。これらのプロトコルは、データ処理、Webベースのアプリケーションなどを含む演算という一般的な目的に適っている。ポメレーン(Pomerene)に対して発行されている米国特許第4,295,193号には、マルチ命令ワードにコンパイルされている命令を同時並行に実行する演算マシンが提示されている。これは、キャッシュメモリー、アドレスゼネレータ、命令レジスタおよびパイプライン方式を示唆する最も初期の特許のうちの一つである。マツオ(Matsuo)に対して発行されている米国特許第4,796,175号には、メインメモリーと命令キャッシュとから命令をプリフェッチする形態を持つ命令キュー機能付きのマイクロプロセッサが提示されている。スティルズ(Stiles)に対して発行されている米国特許第6,067,616号には、フルアソシアティブ方式の広く浅い第1レベルのBCP(分岐予測キャッシュ)と、部分的予測情報を持つ深く狭い直接マッピングされた第2レベルのBCPから成るハイブリッド型キャッシュ構造を持つ分岐予測キャッシュ(BCP)スキームが提示されている。フランク(Frank)に対して発行された米国特許第6,654,856号には、アドレス的に円形構造のキャッシュメモリーに重点が置かれているコンピュータシステムにおけるキャッシュ管理システムが提示されている。 Various policies and protocols are used to optimize cache memory behavior. The most well-known of these are the direct mapping method, the full associative method, and the set associative method. These protocols are well known to those skilled in the art. These protocols are suitable for the general purpose of operations involving data processing, web-based applications, and the like. U.S. Pat. No. 4,295,193, issued to Pomerene, presents a computing machine that executes instructions compiled into multi-instruction words concurrently. This is one of the earliest patents suggesting cache memory, address generators, instruction registers, and pipelining. U.S. Pat. No. 4,796,175 issued to Matsuo presents a microprocessor with an instruction queue function that has a form for prefetching instructions from a main memory and an instruction cache. US Pat. No. 6,067,616 issued to Stills includes a fully associative wide and shallow first level BCP (branch prediction cache) and a deep narrow direct with partial prediction information. A branch prediction cache (BCP) scheme with a hybrid cache structure of mapped second level BCPs is presented. U.S. Pat. No. 6,654,856 issued to Frank presents a cache management system in a computer system with an emphasis on addressable circular cache memory.
リアオ(Liao)に対して発行された米国特許第6,681,296号には、制御装置とキャッシュを持つマイクロプロセッサが提示されているが、このキャッシュは、ロック部分とノーマル部分で区分されたキャッシュ構成とするか単独のキャッシュ構成とするか選択可能となっている。アルミリ(Arimilli)に対して発行された米国特許第6,721,856号には、プロセッサアクセスシーケンスを包含しているプロセッサが異なればそれに対するサブエントリも異なるライン毎のコヒーレンシ状態とシステムコントローラ情報とを持つキャッシュが提示されている。米国特許第6,629,188号には、第1と第2の複数の記憶空間を持つキャッシュメモリーが開示されている。米国特許第6,295,582号には、データコヒーレンシを有し、実質的な順次読み出しコマンドと書き込みコマンドがデッドロックする事態を回避するキャッシュシステムが開示されている。米国特許第6,339,428号には、圧縮された(compressed)テクスチャ情報がテクスチャ操作のために受信・圧縮解除(解凍)される(decompressed)ビオデグラフィックス分野におけるキャッシュ装置が開示されている。米国特許第6,353,438号には、複数タイルのテクスチャ画像データを持ち、データを直接にキャッシュにマッピングするキャッシュ編成が開示されている。 US Pat. No. 6,681,296 issued to Liao presents a microprocessor with a control unit and a cache, which is divided into a lock part and a normal part. A cache configuration or a single cache configuration can be selected. U.S. Pat. No. 6,721,856 issued to Arimili describes the coherency state and system controller information for each line with different processor subsequence entries for different processors. A cache with is presented. U.S. Pat. No. 6,629,188 discloses a cache memory having first and second storage spaces. U.S. Pat. No. 6,295,582 discloses a cache system that has data coherency and avoids deadlock between substantially sequential read and write commands. U.S. Pat. No. 6,339,428 discloses a caching device in the field of video graphics where compressed texture information is received and decompressed for texture manipulation. Yes. US Pat. No. 6,353,438 discloses a cache organization that has multiple tiles of texture image data and maps the data directly to the cache.
上記の発明はそのおのおのが、ある長所を提供する。効率的なキャッシュ構造とポリシーは、手元にある特定の応用物に強く依存する。ディジタルビデオ応用分野では、ディジタル画像をリアルタイムでしかも高品質で処理することは、この分野における大きな挑戦のうちの1つである。具体的には、非線形の座標変換を同時に実行しながら、詳細な二次元画像処理を必要とする。したがって、データのコヒーレンシを保った状態で迅速にアクセスするという固有の長所を持つ特殊化した専用のシステムが必要とされる。そのため、この応用のために、キャッシュ構造とキャッシュ管理ポリシーとを最適化することが必要である。
本発明はその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中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する。
In one aspect of the present invention,
(A) an external memory for storing data to be accessed and processed;
(B) a plurality of processor units (PU1) that issue control commands and generate control parameters and memory addresses of processing-scheduled data in the external memory;
(C) a plurality of processor units (PU2) for processing data;
In a setting comprising: a cache memory management method and a cache memory structure in digital data processing, particularly digital image processing.
This method
(I) a deeper secondary cache memory (SCM) having a larger storage capacity, each having a plurality of banks having a plurality of storage lines for reading data from the external memory;
(Ii) a faster and wider primary cache memory (PCM) with smaller storage capacity, each having a plurality of banks with a plurality of storage lines from which the PU 2 reads data;
(Iii) control logic including a control stage and a control queue, which provides prefetch functionality and cache coherency;
When the address sequence and control parameters are received from PU1, the data in the external memory is processed, and the data is prepared so that PU2 can quickly access and process it.
This method
(A) identifying which data block in the external memory is to be processed based on the topology and structure of the processing operation in the PU 2;
(B) A sufficiently large SCM control queue is generated based on the result of step (a) to determine whether data is present in the PCM, and the SCM is required for processing by the PU 2 on the data in the external memory. Steps to ensure access early enough to be
(C) simultaneously reading blocks of input data from a plurality of banks of the SCM in a predetermined number of clock cycles and decompressing and reformatting the external memory data organization from the cache data organization. And thereby concealing (hiding) the external memory data organization from the PU2 to increase the speed of data processing in the PU2, and
(D) generating a sufficiently large PCM control queue based on the results of steps (a) and (b) and storing the extracted data in the PCM before the data is needed by the PU 2 When,
(E) Synchronizing the timing at which data arrives in the PU 2 and the timing at which control parameters arrive to achieve cache coherency;
To achieve cache coherency and conceal memory read latency.
別の態様で、本発明は、上述の方法に基づいたキャッシュシステムを提供する。 In another aspect, the present invention provides a cache system based on the method described above.
本発明の実施形態のさまざまな態様と長所との更なる詳細を、添付図面を参照して以下に説明する。 Further details of various aspects and advantages of embodiments of the present invention are set forth below with reference to the accompanying drawings.
次に、添付図面と模範的な実施例にしたがって、本発明を詳細に説明する。本発明は、キャッシュの構造と管理に関する。以下の説明に出てくる実施例は、同時座標変換(simultaneous coordinate transformation)を伴う画像処理の例である。しかしながら、当業者は、本発明の範囲は、この特定の例に制限されないことを理解するであろう。本発明は、複数のプロセッサがデータと制御パラメータを外部メモリーと任意の形式を持つ他のプロセッサとからフェッチ(fetch)してこようとするいかなるタイプのディジタルデータ処理にも関連する。特に、本書で説明する2次元(2D)画像変換の例は、本発明の範囲から逸脱することなくどのような2D画像変換に入れ替えることが可能であることは自明である。したがって、以下の説明で、データとは画像画素データを意味する。入力データの構造とトポロジに関連する制御パラメータを発行する複数のプロセッサとは、ジオメトリエンジンのことを意味する。加えて、動作用のデータを処理する複数のプロセッサとは、フィルタエンジンのことであり、それに対応する動作とはフィルタリング動作のことである。 The present invention will now be described in detail with reference to the accompanying drawings and exemplary embodiments. The present invention relates to cache structure and management. The embodiment described in the following description is an example of image processing that involves simultaneous coordinate transformation. However, those skilled in the art will understand that the scope of the present invention is not limited to this particular example. The present invention relates to any type of digital data processing in which multiple processors attempt to fetch data and control parameters from external memory and other processors of any format. In particular, it is obvious that the two-dimensional (2D) image conversion example described in this document can be replaced with any 2D image conversion without departing from the scope of the present invention. Therefore, in the following description, data means image pixel data. A plurality of processors that issue control parameters related to the structure and topology of input data refers to a geometry engine. In addition, the plurality of processors that process the operation data are filter engines, and the corresponding operation is a filtering operation.
図1に、本発明にしたがって構築された、同時座標変換機能を持つ、ディジタル画像データ処理用に設計された、演算装置中のキャッシュシステム100の設定の例を図示する。キャッシュシステム100は、2セットのプロセッサとインタフェースしている。この実施例において、第1の複数のプロセッサは、ジオメトリエンジン300を構成しており、第2の複数のプロセッサはフィルタエンジン500を構成している。これら2つのエンジンに加えて、キャッシュシステム100は、アクセスレイテンシを持つどのようなメモリーでもありえる外部メモリー700とインタフェースしている。キャッシュシステム100は、座標変換パラメータとフィルタフットプリントパラメータとを含む制御パラメータをジオメトリエンジン300から受信する。同時に、本システムは、画素データを外部メモリー700から受信する。キャッシュシステム100は、フィルタエンジン500の機能停止を最小にとどめながらもフィルタリングプロセスを最適化するように、これらのデータをフィルタエンジン500に対して提供する。
FIG. 1 illustrates an example of the setting of a cache system 100 in a computing device designed according to the present invention and designed for digital image data processing with a simultaneous coordinate transformation function. Cache system 100 interfaces with two sets of processors. In this embodiment, the first plurality of processors constitutes the geometry engine 300, and the second plurality of processors constitutes the
2次元(2D)データ処理、特に、ディジタル画像データ処理においては、総合的なフィルタリング機能またはサンプリング機能が必要とされる。以下において、2D画像処理を特に例として取り上げ、したがって、「画素」という語は、任意の2Dデータのうちの特定の場合として用いる。2Dディジタル画像処理においては、おのおのの出力画素が、多くの入力画素からの情報に基づいて形成される。最初に、出力画素座標を、入力画素座標に対してマッピングする。これは座標変換であって、通常は、画像ワープ技法によって電子的に実施される。いったん中心の入力画素が決まると、出力画素仕様、すなわち、構成色の強度と、サンプリングフォーマットやブレンド機能などの他の情報とを生成するためにフィルタリング機能またはサンプリング機能が必要となる。それに対してサンプリングが実行される中心入力画素の周りのすべての画素を含む領域は、フィルタフットプリントと呼ばれる。フィルタフットプリントのサイズと形状は、出力画像の品質に影響することは技術上公知である。 In two-dimensional (2D) data processing, particularly digital image data processing, a comprehensive filtering function or sampling function is required. In the following, 2D image processing will be taken as a particular example, so the term “pixel” is used as a specific case of arbitrary 2D data. In 2D digital image processing, each output pixel is formed based on information from many input pixels. First, output pixel coordinates are mapped to input pixel coordinates. This is a coordinate transformation, usually performed electronically by image warping techniques. Once the central input pixel is determined, a filtering or sampling function is required to generate the output pixel specification, ie, the intensity of the constituent colors, and other information such as the sampling format and blend function. On the other hand, the area containing all the pixels around the central input pixel on which sampling is performed is called the filter footprint. It is well known in the art that the size and shape of the filter footprint affects the quality of the output image.
キャッシュシステム100の機能は、専用のアーキテクチャとプリフェッチロジックを用いて、十分なランダムアクセス画素データと制御パラメータをフィルタエンジン500に提供し、これにより、機能停止を最小に抑えながら、このエンジンがどのクロック速度においても処理すべきデータを有しているようにすることである。最適化されたサイズを持つ読み出し要求キューによって、キャッシュシステム100は、画素データがフェッチされる元の外部メモリー700に固有のメモリー読み出しレイテンシのほとんどを隠匿することが可能となる。メモリー読み出しレイテンシのこの隠匿動作は、フィルタの動作に優先する。このレイテンシが適切に隠匿されないと、フィルタエンジン500のスループットは最大とならない。許容される機能停止時間は、設計上のパラメータである。ハードウエアコストとのトレードオフとして必要とされるスループットを達成するようにさまざまなパラメータを調節する必要がある。
The functionality of the cache system 100 uses a dedicated architecture and prefetch logic to provide sufficient random access pixel data and control parameters to the
加えて、キャッシュシステム100からは、ジオメトリエンジン300から読み出されるフィルタフットプリントパラメータと座標変換のための制御経路が提供されている。キャッシュシステム100によって、一方では外部メモリー700からの画素データと他方ではジオメトリエンジン300からの制御パラメータとが、フィルタエンジン500の入力部に到達した時点で同期が取られることを保証する。
In addition, the cache system 100 provides a filter footprint parameter read from the geometry engine 300 and a control path for coordinate conversion. The cache system 100 ensures that pixel data from the
本明細書中でで、われわれは、イタリックで量を表示する慣習法を採用し(たとえば64バイト)、これによって、参照番号(たとえば、フィルタエンジン500)と区別されるようにする。 Herein, we adopt a convention of displaying quantities in italics (eg, 64 bytes) so that they are distinguished from reference numbers (eg, filter engine 500).
図2は、キャッシュシステム100の詳細な構造の例を示す図である。おのおのの出力画素に対して、キャッシュシステム100は、ジオメトリエンジン300からある制御パラメータを受信する。このようなパラメータには、マッピングされた入力画素の座標と、UおよびVと、フィルタフットプリントの形状、回転量およびサイズを定義する制御パラメータなどの追加の制御パラメータとが含まれる。同時に、キャッシュシステム100は、外部メモリー700からのフィルタフットプリントに含まれるがそのおのおのに対する画素データを受信する。このようなデータには、色空間内の構成色、たとえば、RGBもしくはYCrCbの強度レベルと、サンプリングフォーマット、たとえば、4:4:4もしくは4:2:2と、ブレンド機能、すなわち、αありかα無しかということとが含まれる。
FIG. 2 is a diagram illustrating an example of a detailed structure of the cache system 100. For each output pixel, the cache system 100 receives certain control parameters from the geometry engine 300. Such parameters include the coordinates of the mapped input pixels, U and V, and additional control parameters such as control parameters that define the shape, rotation amount and size of the filter footprint. At the same time, the cache system 100 receives pixel data for each of the filter footprints from the
キャッシュシステム100の構造は、入力画像をm×n個の画素分のサイズを持つブロックに分割することに関連している。図3に、n=8でm=4である入力画像画素ブロック構造の例を示す。入力画像330は、ある数の画素、たとえば、1024×1024個の画素をブロックに分割したものを含んでいる。おのおのの入力画素ブロック332は、m×n個の入力画素334を含んでいる。ブロックの構造は一般に、さまざまなフィルタリングスキームにおいてフットプリントの形状とサイズの関数である。
The structure of the cache system 100 is related to dividing an input image into blocks having a size of m × n pixels. FIG. 3 shows an example of an input image pixel block structure in which n = 8 and m = 4. The input image 330 includes a certain number of pixels, for example, 1024 × 1024 pixels divided into blocks. Each input pixel block 332 includes m × n
キャッシュシステム100は、m×n個の入力画素ブロック332に関連するデータをフェッチして、フィルタエンジン500が使用可能なデータブロックを生成する。このため、本システムは、どのブロックがフットプリントの内部に入るか、また、このようなブロック内のどの画素がフィルタリングのために含まれるべきであるかを判定しなければならない。キャッシュシステム100の構造は、入力ブロックデータ構造に適合するように拡張可能となっている。また、一般に、キャッシュシステム100の構造は、フィルタエンジン500の動作の性質と構造の関数であることに注意すべきである。画像処理という特殊な場合では、この動作の構造とトポロジは部分的にはフィルタフットプリントによって定義される。
The cache system 100 fetches data associated with the m × n input pixel blocks 332 to generate a data block that can be used by the
ここで図2に示す例を参照すると、キャッシュシステム100は、浅く広くそして容量の少ない一次キャッシュ110と、深く容量の大きい二次キャッシュ120と、ブロック包含ステージ150と、ブロックデータ生成ステージ130と、一次キャッシュ制御ステージ170と、二次キャッシュ制御ステージ190とを備えている。また、多くのキューもあるが、これについては後述する。画素データは、最初に外部メモリー700から二次キャッシュ120に読み込まれる。次に、これらのデータは、ブロック生成ステージ130によって再フォーマッティングされて、解凍されて、フィルタエンジン500によって用いられるようにする。これらの再フォーマッティングされたデータはキューに組み込まれて、適当な時点に一次キャッシュ110中に置かれる、ここでは、フィルタエンジン500によって即座にアクセス可能となる。以下に、データの経路と制御ロジック構造をそれぞれ説明する。
Referring now to the example shown in FIG. 2, the cache system 100 includes a shallow, wide and low capacity
ここで図5に示す例を参照すると、二次キャッシュ120は、外部メモリー700から生データを読み出す大容量記憶デバイスである。外部メモリー700中の画素データは、任意のフォーマット、一般に、フィルタエンジン500中で処理するにはあまり適していないフォーマットで記憶されており、たとえば、特殊な例では、データは、順次に、すなわち、走査線の順序で記憶されている。二次キャッシュ120は、割り込みを最小に抑えて効率的にこれらのデータを読み込むように設計されている。
Referring now to the example shown in FIG. 5, the
二次キャッシュ中のおのおののラインは、外部メモリー700からのb2バイトのデータのバーストを収容するように設計されている。この理由によって、二次キャッシュ120中のおのおののラインのサイズは、外部メモリー700の構造と読み出し要件とにしたがって決まる。このようなデータが記憶される二次キャッシュ120中のラインの数は、また、二次キャッシュのミスカウントを軽減するように最適化された設計パラメータでもある。二次キャッシュ120は、さらにそのうえ、一次キャッシュ110を更新して、フィルタエンジン500の機能停止を最小化するに十分な読み出しスループットを可能とするようにバンキングされている。これらの設計パラメータは、中心入力画素をサンプリングするためには多くの隣接画素が必要とされるため、フィルタエンジン500による画素処理用に十分なデータを記憶するために決定的に重要である。
Each line in the secondary cache is designed to accommodate a b 2 byte burst of data from the
したがって、二次キャッシュ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全体にわたって分布される。
Therefore, the
いったんデータが外部メモリー700から二次キャッシュ120に読み込まれると、これらのデータは、フィルタエンジン500にとって使用可能なフォーマットに変換する必要がある。ブロック生成ステージ130は、二次キャッシュ120からデータを読み出し、これらのデータを、m×n個の入力画素のブロックからのすべてのデータを含むブロックに準備する。上述したように、ブロック生成ステージ130は、クロックサイクル毎に、二次キャッシュ120の持つn/Nc個のラインを読み出す。これによって、Nc個のクロックサイクル毎に、1つの入力画素ブロックに関連するすべてのデータが同時に読み出されることが保証される。データのパッキングフォーマットと読み出しスループットによっては、入力画素ブロックを生成するには二次キャッシュ120から複数回の読み出し動作が必要とされる。これらのデータを読み出すことに加えて、ブロック生成ステージ130は、これらのデータを再フォーマッティングして、フィルタエンジン500が容易に使用できるようなフォーマットに解凍する。したがって、ブロック生成ステージ130は、さまざまな圧縮スキームで圧縮可能なオリジナルの画素データフォーマットを隠匿する。これによって、フィルタエンジン500は、外部メモリー700中の画素データのフォーマットを解明して、オリジナルのフォーマッティング済みデータをフィルタリング動作で使用可能なブロックにアンパックする責務から開放される。これらのブロックデータは最終的には一次キャッシュ110に記憶され、そこからフィルタエンジン500によって読み出される。
Once the data is read from the
ここで図4の例を参照すると、一次キャッシュ110は、フィルタエンジン500中でのデータアクセス速度を最適化するように設計されている。したがって、複数のアクセスラインに対して浅いが広い構造となっている。一次キャッシュ110は、ある数のバンクに分割されており、おのおのの一次キャッシュバンク112は、フィルタエンジン500によって互いに独立にそして同時に読み出される。一次キャッシュバンクの数は、フィルタリング性能を最適化するように、経験に基づいたデータとシミュレーションにしたがって決定される。おのおのの一次キャッシュバンク112は、ある数の一次キャッシュラインを含んでいる。おのおのの一次キャッシュライン114は、入力データの完全なm×n個のブロックからのデータを含んでいる。したがって、一次キャッシュバンクがb1個あれば、フィルタエンジン500は、b1個の入力ブロックを含むデータをサイクル毎に適切なフォーマットで読み出す。これは非常に重要であるが、それは、サンプリングするためには、入力画素の周りの入力ブロックが多数必要であり、多数の入力ブロックがフィルタエンジン500に提供されないと、このエンジンは機能停止するからである。機能停止の期間と頻度によって、スループット性能が決まる。
Referring now to the example of FIG. 4, the
データをさまざまな一次キャッシュバンクに分配するために、入力画素座標のLSBであるUとVを用いる。一次キャッシュ110内部にある一次バンク112はそのおのおのが、ある数のパーティションにさらに分割されている。上述したように、ある数のLSBを用いて、データをさまざまな一次キャッシュバンクに分配する。入力画素のUとVのアドレスの残余ビット中のさらなるLSBをまた用いて、おのおのの一次キャッシュバンク中のデータを分配する。一次キャッシュバンク1つ当たり、そして、2f個のライン毎に、おのおののバンクを区分するために用いられるg個のLSBが用いられ、この分割によって、2f/2g個のセットアソシアティブアーキテクチャとなる。
In order to distribute the data to the various primary cache banks, the input pixel coordinate LSBs U and V are used. Each primary bank 112 within the
後述するように、この設計をまた、一次キャッシュ110の適切な置き換えポリシーと共に用いて、最適なスループットが達成される。このアーキテクチャは簡単にそして自然に拡張可能であるが、それは、入力データの分量が多くなると、アドレスUとアドレスV中で利用可能なビットの数が増えるからである。
As described below, this design is also used with an appropriate replacement policy for the
フィルタエンジン500により必要とされる際に、使用可能なフォーマットのデータが存在することを保証するために、プリフェッチロジック構造が設計される。図6に、キャッシュ制御ロジック400を示す。このロジック構造は、外部メモリー700から二次キャッシュ120がデータを読み出す動作と、ブロック生成ステージ130でデータを読み出して再フォーマッティングする動作と、一次キャッシュ110にデータブロックを記憶する動作を制御する。
The prefetch logic structure is designed to ensure that there is data in a usable format as needed by the
ステップ402で、サンプリングのためにデータブロックが必要であるかどうかが、ジオメトリエンジン300から受信された制御パラメータに基づいて判定される。いったんデータが識別されると、ステップ410で、これらのデータが一次キャッシュの内部に存在するかどうか判定される。存在すれば、ステップ412で一次制御キューに対してエントリが書き込まれ、ステップ414でこれらのデータのアドレスがフィルタエンジン414に送られる。データが一次キャッシュ中に存在しなければ、ステップ415で、後述される採用された置き換えポリシーにしたがって、どの一次キャッシュラインを置き換えるべきか判定される。次に、ステップ416で、この一次キャッシュラインのアドレスが一次制御キューに書き込まれて、ステップ418でフィルタエンジンに送られる。次に、これらのデータが二次キャッシュに存在するかどうかステップ420で判定される。データがそこにも存在しなければ、ステップ422で、どの二次キャッシュラインを置き換えるべきか判定される。次に、読み出し要求が外部メモリーに送られて、後でステップ426で二次キャッシュに読み込まれるデータをフェッチする。データが二次キャッシュ中に存在すれば、ステップ428で、エントリが二次キャッシュ制御キューに書き込まれる。
At
データが外部メモリーからフェッチされた後で二次キャッシュがヒットしようと二次キャッシュがミスしようとどちらの場合でも、ステップ440で、ブロック生成用に二次キャッシュのデータが読み出される。この場合、データは複数の二次キャッシュバンクから読み出されて、ステップ442で、再フォーマッティングされて解凍される。この段階で、ステップ450で、適切なフォーマットを持つ入力データのブロックがキューとして送られて、一次キャッシュ中に記憶される。ステップ452で、これらのデータは一次キャッシュバンク中に記憶される。
Whether the secondary cache hits or the secondary cache misses after data is fetched from external memory, at
一次キャッシュ110の更新動作は、関連の制御データが一次制御キュー212と画素制御キュー218から読み出されると発生する。これによって、キャッシュコヒーレンシが一次キャッシュ100内部で保持されることが保証される。この時点で、一次キャッシュからのデータが制御パラメータコヒーレンシと共に、ステップ510でフィルタエンジン入力部に到達する。
The update operation of the
プリフェッチロジックは、フィルタエンジン500中の読み出しレイテンシを隠匿するように設計されている。この制御ロジック構造がないと、データのスループットが最適化されず、また、フィルタエンジン500の機能停止する割合が増す。キューのサイズが十分であり、記憶サイズが最適であり、データが準備されており、置き換えポリシーがインテリジェントであれば、キャッシュシステム100は、フィルタエンジン500より前を走行することによって読み出しレイテンシのほとんどを隠匿する。
The prefetch logic is designed to conceal the read latency in the
再度図2を参照して、キャッシュ制御ロジック400のハードウエア実施例を以下に説明する。ブロック包含ステージ150は、この制御ロジックの開始点である。おのおのの出力画素に対して、このロジックは、マッピングされた入力画素の座標とフィルタフットプリントの形状と共に制御パラメータをジオメトリエンジン300から受信する。入力画素座標と、UおよびVと、フットプリント形状と、他の制御パラメータとに基づいて、ブロック包含ロジックは、おのおのの出力画素を処理するためにはどの入力ブロックが必要であるか、また、おのおののブロック中のどの画素がサンプリング用に必要であるかを判定する。
Referring again to FIG. 2, a hardware embodiment of the
ブロック包含ステージ150は、本発明の一例では、隣接するブロックの座標位置をフットプリントのジオメトリと比較して、サンプリングに必要な画素のブロックを包含する。このブロック包含ロジックは、そのブロックアドレス内で少なくとも最下位ビット(LSB)1Uまたは1Vがおのおの異なるk個のブロックをクロックサイクル毎に生成する。これによって、LSBのk個の組み合わせが、ブロック包含ロジックによって生成されたブロックのおのおののセットに存在することが保証される。この制約を用いて、一次キャッシュバンク間にブロックを分配する。クロックサイクル毎の生成ブロック数kは、フットプリントのサイズの関数であり、ブロックのトポロジは、フットプリントの形状の関数である。これらのパラメータは、注意深いシミュレーションと実験によって、フィルタエンジン500中でのデータ処理に関して、キャッシュシステム110の設計の際に考慮すべきものである。ブロック包含ステージ150で生成される画素制御キュー218は、フィルタエンジン500が実際の画素データより前にスケーリングパラメータを生成することを許容するより以前にフィルタエンジン500に送られる。
The block inclusion stage 150, in one example of the present invention, includes blocks of pixels necessary for sampling by comparing the coordinate positions of adjacent blocks with the footprint geometry. The block inclusion logic generates k blocks each having at least the least significant bit (LSB) 1U or 1V different in the block address every clock cycle. This ensures that there are k combinations of LSBs in each set of blocks generated by the block containment logic. Using this constraint, blocks are distributed among the primary cache banks. The number of generated blocks k per clock cycle is a function of the footprint size, and the block topology is a function of the footprint shape. These parameters should be considered when designing the
一次キャッシュ制御ステージ170は、一次キャッシュ110中ではデータの取り扱いのための制御ロジックを提供する。ブロック包含ステージ150によって決定されたおのおのの入力ブロックに対して、一次キャッシュ制御装置170は、このブロックが一次キャッシュ110中に存在するかどうかチェックする。データが存在すれば、これはキャッシュヒットと呼ばれる。存在しなければ、キャッシュミスが登録されて、ミスフラグが二次キャッシュ制御装置190に送られる。一次キャッシュ制御ステージ170は、エントリを一次制御キュー212に書き込んで、一次キャッシュ110の内部のデータのアドレスと、一次キャッシュのヒットがあったかミスがあったかとを示す。一次制御キュー212がフィルタエンジン500によってFIFO方式で読み出される。キャッシュミスフラグがこのようなエントリのうちの1つで上げられると、フィルタエンジン500は読み出し要求をブロックキュー214に送り、するとこのキューが一次キャッシュ110を更新する。
The primary
データブロックが一次キャッシュ110に存在しない場合、アドレスUもしくはアドレスVがチェックされたどのブロックとも整合しない場合または関連の有効ビットが設定されていない場合に発生する一次キャッシュミスの場合、この事象は一次キャッシュミスと呼ばれる。二次キャッシュステージ190における制御ロジックは、一次キャッシュミスフラグを受信すると、一次キャッシュに書き込まれるm×n個のブロックを生成するためにどの処置を(ステップを)とるべきか決定する。二次キャッシュ制御ステージ190は、最初に、二次キャッシュ120中にデータが存在するかどうか判定する。これによって、二次キャッシュヒットとなったり、二次キャッシュミスとなったりする。二次キャッシュミスが発生すると、二次キャッシュ制御装置190は読み出し要求を外部メモリー700に送って、行方不明データを外部メモリー700から二次キャッシュ120中にフェッチして、二次制御キュー216にエントリを書き込む。二次キャッシュヒットが発生すると、二次キャッシュ制御ステージ190は、読み出し要求を送出しないで、単にエントリを二次制御キュー216に書き込み、ここで、エントリはブロック生成ステージ130によってFIFO方式で読み出される。
In the case of a primary cache miss that occurs if the data block does not exist in the
おのおののキューエントリを受信すると、ブロック生成ステージ130は、入力ブロック全体に関連する生データを二次キャッシュ120から読み出す。次に、これらのデータは、フィルタエンジン500が容易に使用可能なフォーマットにブロック生成ステージ130中で再フォーマッティングされる。データパッキングするモードによっては、一次キャッシュライン114を生成するために、複数の二次キャッシュラインが必要とされる。1つの入力ブロックに関連するすべてのデータを取得して、これらのデータを再フォーマッティングしたら、ブロック生成ステージ130は、ブロックキュー214にエントリを書き込む。したがって、おのおののブロックキューエントリは、この入力ブロック全体からのデータをすべて適切なフォーマットで包含している。次に、ブロックキューエントリは一次キャッシュ110によって受信され、ここで、フィルタエンジン500が容易にアクセスされるように記憶される。したがって、ブロックキュー214によって、二次キャッシュ120は、フィルタエンジン500より前を走行することが許容される。
Upon receipt of each queue entry, the block generation stage 130 reads raw data associated with the entire input block from the
キャッシュシステム100の機能は、専用のプリフェッチロジックに加えて、画素データと制御パラメータのコヒーレンシしだいであることに注意すべきである。二次キャッシュ制御ステージ190からの要求がないかぎり、いかなるデータも二次キャッシュ120によって読み出されることはない。いったんそのデータが二次キャッシュ内に入ると、二次制御キュー216に対するエントリだけが、これらのデータがブロック生成ステージ130でのブロック生成にとって必要であるかどうかを決定する。データのブロックは、いったん生成されると、フィルタエンジン500から読み出し要求された場合にだけ、キューに組み込まれて一次キャッシュに記憶されるが、このエンジン500自身は、一次制御キュー212へのエントリによって教唆される。そのうえ、フィルタエンジンは、データと制御パラメータ双方が2つの互いに独立したキューから到来するのを待って、しかる後に、そのデータを処理する。
It should be noted that the function of the cache system 100 depends on pixel data and control parameter coherency in addition to dedicated prefetch logic. No data is read by the
フィルタフットプリントとキャッシュ記憶空間の相対的なサイズによっては、フットプリントをサブフットプリント部分に分割し、また、おのおののサブフットプリント部分中のデータを処理する必要がある。この対策は、動的にサイズ付けされるフットプリント用のキャッシュシステム100の設計で予見される。いったんおのおののサブフットプリントに関連するデータがキャッシュされると、フィルタエンジンはこれらのデータを順次に処理する。 Depending on the relative size of the filter footprint and the cache storage space, it may be necessary to divide the footprint into sub-footprint parts and process the data in each sub-footprint part. This measure is foreseen in the design of a cache system 100 for a dynamically sized footprint. Once the data associated with each sub-footprint is cached, the filter engine processes these data sequentially.
キャッシュシステム100にメモリー読み出しレイテンシを隠匿することを許容するデータプリフェッチ動作の効果を理解するに際しては、本発明の一例では、読み出しレイテンシが128クロックサイクル台にあるかどうかを基準として評価されてきた。十分大きいキューを提供することによって、ほとんどすべてのレイテンシが隠匿される。本発明におけるキューのサイズは、本システムで見受けられるメモリー読み出しレイテンシに適合するように調整することが可能であり、したがって、システム仕様に基づいた拡張可能な設計パラメータである。 In understanding the effect of data prefetch operation that allows the cache system 100 to conceal the memory read latency, an example of the present invention has been evaluated based on whether the read latency is in the 128 clock cycle range. By providing a sufficiently large queue, almost all latency is concealed. The size of the queue in the present invention can be adjusted to match the memory read latency found in the present system and is therefore an extensible design parameter based on system specifications.
いったんキャッシュロジック構造によって、あるブロックのデータを二次キャッシュ120によって読み出すべきであるまたは一次キャッシュ110に記憶するために準備すべきであると判定されると、置き換えポリシーが必要とされる。1つの既存の一次キャッシュライン114または複数の二次キャッシュライン124を置き換えなければならない。本発明の一例では、キャッシュ置き換えポリシーは距離ベースのポリシーである。入力ブロックアドレスUとVによれば、一次キャッシュ制御ステージ170と二次キャッシュ制御ステージ190は、中心入力画素UとVの座標を、キャッシュライン中の既存のブロックデータの座標と比較する。次に、中心入力画素からの最大の距離を持つエントリが置き換えられる。このポリシーは、中心画素への距離が近いほど、サンプリングの計算のために必要とされる確率が高いという事実から派生している。
Once the cache logic structure determines that a block of data should be read by the
本発明の別の例では、キャッシュ置き換えポリシーは、最低使用頻度(LRU)ベースのポリシーである。この後者の例では、一次キャッシュ制御ステージ170と二次キャッシュ制御ステージ190は、最低使用頻度のキャッシュラインを置き換えようとする。
In another example of the present invention, the cache replacement policy is a least recently used (LRU) based policy. In this latter example, primary
キャッシュシステム100の設計には、本システムを拡張可能なものとするためのいくつかの尺度を持っている。二次キャッシュラインのサイズは、外部メモリー700とブロック生成レートからメモリー読み出しサイズ、たとえば、バーストサイズまで拡張可能である。二次キャッシュラインの数は、必要とされるキャッシュ効率に基づいて拡張可能である。二次キャッシュバンクの数は、入力ブロックデータ構造と二次キャッシュからのアクセス毎のクロックサイクル数とに基づいて拡張可能である。二次キャッシュ120の拡張は、サイズ要件とキャッシュシステム効率、すなわち、再読み出しされる入力ディジタルデータの分量に基づいている。
The design of the cache system 100 has several measures to make the system extensible. The size of the secondary cache line can be expanded from the
ブロック包含ステージ150中でクロックサイクル毎に生成されるブロックの数は、フィルタリングアルゴリズムならびにフットプリントサイズおよび必要とされるスループットに基づいて拡張可能である。入力画素LSBであるUとVに基づいた一次キャッシュ110と二次キャッシュ120の位置付けは、キャッシュのサイズにも適応可能である。これは、特定のパーティショニング目的で用いられるビットの数によって実施される。一次キャッシュラインのサイズは、入力ブロックのサイズに基づいて拡張可能である。一次キャッシュバンクの数は、フィルタリングのスループットに基づいて拡張可能である。さまざまなキューのサイズもまた、メモリーレイテンシ対必要スループットの関係に依存する拡張可能パラメータである。このようなサイズは、シミュレーションと経験的なデータに基づいて決定される。
The number of blocks generated per clock cycle in the block inclusion stage 150 is scalable based on the filtering algorithm and footprint size and required throughput. The positioning of the
このような設計パラメータはすべて経費と性能とのトレードオフとして注意深く考慮しなければならない。したがって、注意深いシミュレーションと実験は、本発明を特に実施する目的で実行されて、当面の特殊な場合のキャッシュソリューションを最適化する。 All such design parameters must be carefully considered as a trade-off between cost and performance. Careful simulations and experiments are therefore carried out specifically for the purpose of implementing the present invention to optimize the special case cache solution for the time being.
本発明のある特徴を本書に図示して説明したが、いまや、多くの修正例、置換例、変更例および等価例が当業者には思い当たるであろう。したがって、添付クレームは、本発明の真の精神に入るようなすべての修正例と変更例をカバーすることを意図するものであることを理解すべきである。 While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. Accordingly, it is to be understood that the appended claims are intended to cover all modifications and changes that fall within the true spirit of the invention.
Claims (34)
(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中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿する前記方法。 A cache structure and management method in data processing, in particular, two-dimensional image processing in which coordinate transformation is performed simultaneously;
(A) an external memory for storing data to be accessed and processed;
(B) a plurality of processor units (PU1) that issue control commands and generate control parameters and memory addresses of processing-scheduled data in the external memory;
(C) a plurality of processor units (PU2) for processing data;
The method uses a cache system, the cache system comprising:
(I) a deeper secondary cache memory (SCM) having a larger storage capacity, each having a plurality of banks having a plurality of storage lines for reading data from the external memory;
(Ii) a faster and wider primary cache memory (PCM) with smaller storage capacity, each having a plurality of banks with a plurality of storage lines from which the PU 2 reads data;
(Iii) control logic including a control stage and a control queue, which provides prefetch functionality and cache coherency;
And when the address sequence and control parameters are received from the PU1, access the data in the external memory, and prepare the data so that the PU2 can quickly access and process it,
The method
(A) identifying which data block in the external memory is to be processed based on the topology and structure of the processing operation in the PU 2;
(B) A sufficiently large SCM control queue is generated based on the result of step (a) to determine whether data is present in the PCM, so that the SCM adds the PU2 to the data in the external memory. To ensure access early enough to be required for processing by
(C) simultaneously reading blocks of input data from a plurality of banks of the SCM in a predetermined number of clock cycles and decompressing and reformatting the external memory data organization from the cache data organization. And thereby concealing external memory data organization from the PU2 to increase the speed of data processing in the PU2, and
(D) generating a sufficiently large PCM control queue based on the results of steps (a) and (b) and storing the extracted data in the PCM before the data is needed by the PU 2 When,
(E) Synchronizing the timing at which data arrives in the PU 2 and the timing at which control parameters arrive to achieve cache coherency;
To achieve cache coherency and conceal memory read latency.
(a)アドレスシーケンスに基づいた直接マッピングと、
(b)処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーと、
の2段階で実行される、請求項3に記載の方法。 Mapping to the cache system
(A) direct mapping based on address sequence;
(B) a distance-based replacement policy in which data associated with an input block that is remote from the data block being processed is replaced;
4. The method of claim 3, wherein the method is performed in two stages.
(a)アドレスシーケンスに基づいた直接マッピングと、
(b)最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーと、
の2段階で実行される、請求項3に記載の方法。 Mapping to the cache system
(A) direct mapping based on address sequence;
(B) a least recently used replacement policy in which data associated with the least recently used input block is replaced;
4. The method of claim 3, wherein the method is performed in two stages.
(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中でデータが到来するタイミングと制御パラメータが到来するタイミングの同期を取って、キャッシュコヒーレンシを達成するステップと、
によって、キャッシュコヒーレンシを達成し、また、メモリーの読み出しレイテンシを隠匿するようになっている前記システム。 A cache system for data processing, particularly two-dimensional image processing that simultaneously performs coordinate transformation;
(A) an external memory for storing data to be accessed and processed;
(B) a plurality of processor units (PU1) that issue control commands and generate control parameters and memory addresses of processing-scheduled data in the external memory;
(C) a plurality of processor units (PU2) for processing data;
An apparatus comprising:
(I) a deeper secondary cache memory (SCM) having a larger storage capacity, each having a plurality of banks having a plurality of storage lines for reading data from the external memory;
(Ii) a faster and wider primary cache memory (PCM) with smaller storage capacity, each having a plurality of banks with a plurality of storage lines from which the PU 2 reads data;
(Iii) control logic including a control stage and a control queue, which provides prefetch functionality and cache coherency;
And when the address sequence and control parameters are received from the PU1, the data in the external memory is accessed, and the data is prepared so that the PU2 can quickly access and process the data,
The system
(A) identifying which data block in the external memory is to be processed based on the topology and structure of the processing operation in the PU 2;
(B) A sufficiently large SCM control queue is generated based on the result of step (a) to determine whether data is present in the PCM, so that the SCM adds the PU2 to the data in the external memory. To ensure access early enough to be required for processing by
(C) simultaneously reading blocks of input data from a plurality of banks of the SCM in a predetermined number of clock cycles to decompress and reformat the external memory data organization from the cache data organization. And thereby concealing external memory data organization from the PU2 to increase the speed of data processing in the PU2, and
(D) generating a sufficiently large PCM control queue based on the results of steps (a) and (b) and storing the extracted data in the PCM before the data is needed by the PU 2 When,
(E) Synchronizing the timing at which data arrives in the PU 2 and the timing at which control parameters arrive to achieve cache coherency;
To achieve cache coherency and conceal memory read latency.
(a)アドレスシーケンスに基づいた直接マッピングと、
(b)処理中のデータブロックからもっとも遠隔にある入力ブロックに関連するデータが置き換えられる、距離ベースの置き換えポリシーと、
の2段階で実行される、請求項20に記載のシステム。 Mapping to the cache system
(A) direct mapping based on address sequence;
(B) a distance-based replacement policy in which data associated with an input block that is remote from the data block being processed is replaced;
21. The system of claim 20, wherein the system is performed in two stages.
(a)アドレスシーケンスに基づいた直接マッピングと、
(b)最低使用頻度の入力ブロックに関連するデータが置き換えられる、最低使用頻度ベースの置き換えポリシーと、
の2段階で実行される、請求項20に記載のシステム。 Mapping to the cache system
(A) direct mapping based on address sequence;
(B) a least recently used replacement policy in which data associated with the least recently used input block is replaced;
21. The system of claim 20, wherein the system is performed in two stages.
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 true JP2008507028A (en) | 2008-03-06 |
JP5071977B2 JP5071977B2 (en) | 2012-11-14 |
Family
ID=35907684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007521441A Expired - Fee Related JP5071977B2 (en) | 2004-07-14 | 2004-07-14 | System and method for managing cache memory |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1769360A4 (en) |
JP (1) | JP5071977B2 (en) |
KR (1) | KR101158949B1 (en) |
CN (1) | CN100533403C (en) |
WO (1) | WO2006019374A1 (en) |
Families Citing this family (9)
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 |
CN105393583B (en) * | 2013-02-22 | 2019-07-05 | 瑞典爱立信有限公司 | Media distributing network with media bursts transfer capability |
US10181176B2 (en) * | 2016-03-04 | 2019-01-15 | Samsung Electronics Co., Ltd. | Efficient low-power texture cache architecture |
CN107153617B (en) * | 2016-03-04 | 2023-04-07 | 三星电子株式会社 | Cache architecture for efficient access to texture data using buffers |
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 (en) * | 2018-06-29 | 2020-01-09 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
CN110569204B (en) * | 2019-07-23 | 2023-01-20 | 广东工业大学 | Configurable image data caching system based on FPGA and DDR3SDRAM |
Citations (10)
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 (en) * | 1996-09-06 | 1998-03-31 | Fujitsu Ltd | Cache memory device |
JPH10116191A (en) * | 1996-10-14 | 1998-05-06 | Hitachi Ltd | Processor equipped with buffer for compressed instruction |
JPH10307925A (en) * | 1997-05-07 | 1998-11-17 | Sega Enterp Ltd | Image processing device and method |
JPH11232470A (en) * | 1998-02-12 | 1999-08-27 | Hitachi Ltd | Cache memory using dram and lsi consolidated with logic circuit and graphic system using the memory |
JPH11288386A (en) * | 1997-12-24 | 1999-10-19 | Texas Instr Inc <Ti> | Computer system |
WO2001020460A1 (en) * | 1999-09-17 | 2001-03-22 | S3 Incorporated | Synchronized two-level graphics processing cache |
JP2002527821A (en) * | 1998-10-14 | 2002-08-27 | 株式会社日立製作所 | Data cache system |
US20040044847A1 (en) * | 2002-08-29 | 2004-03-04 | International Business Machines Corporation | Data streaming mechanism in a microprocessor |
US6812929B2 (en) * | 2002-03-11 | 2004-11-02 | Sun Microsystems, Inc. | System and method for prefetching data from a frame buffer |
-
2004
- 2004-07-14 CN CNB2004800427711A patent/CN100533403C/en not_active Expired - Fee Related
- 2004-07-14 WO PCT/US2004/022878 patent/WO2006019374A1/en not_active Application Discontinuation
- 2004-07-14 KR KR1020067023350A patent/KR101158949B1/en active IP Right Grant
- 2004-07-14 JP JP2007521441A patent/JP5071977B2/en not_active Expired - Fee Related
- 2004-07-14 EP EP04757053A patent/EP1769360A4/en not_active Withdrawn
Patent Citations (10)
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 (en) * | 1996-09-06 | 1998-03-31 | Fujitsu Ltd | Cache memory device |
JPH10116191A (en) * | 1996-10-14 | 1998-05-06 | Hitachi Ltd | Processor equipped with buffer for compressed instruction |
JPH10307925A (en) * | 1997-05-07 | 1998-11-17 | Sega Enterp Ltd | Image processing device and method |
JPH11288386A (en) * | 1997-12-24 | 1999-10-19 | Texas Instr Inc <Ti> | Computer system |
JPH11232470A (en) * | 1998-02-12 | 1999-08-27 | Hitachi Ltd | Cache memory using dram and lsi consolidated with logic circuit and graphic system using the memory |
JP2002527821A (en) * | 1998-10-14 | 2002-08-27 | 株式会社日立製作所 | Data cache system |
WO2001020460A1 (en) * | 1999-09-17 | 2001-03-22 | S3 Incorporated | 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 |
US20040044847A1 (en) * | 2002-08-29 | 2004-03-04 | International Business Machines Corporation | Data streaming mechanism in a microprocessor |
Also Published As
Publication number | Publication date |
---|---|
EP1769360A4 (en) | 2008-08-06 |
EP1769360A1 (en) | 2007-04-04 |
KR20070038955A (en) | 2007-04-11 |
CN100533403C (en) | 2009-08-26 |
JP5071977B2 (en) | 2012-11-14 |
CN1961295A (en) | 2007-05-09 |
WO2006019374A1 (en) | 2006-02-23 |
KR101158949B1 (en) | 2012-07-06 |
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 | |
US10515011B2 (en) | Compression status bit cache and backing store | |
CN106462495B (en) | Memory Controller and processor-based system and method | |
CN106462496B (en) | Bandwidth of memory compression is provided in the system based on central processing unit CPU using Memory Controller CMC is compressed | |
KR20170103649A (en) | Method and apparatus for accessing texture data using buffers | |
US6650333B1 (en) | Multi-pool texture memory management | |
US10032246B2 (en) | Approach to caching decoded texture data with variable dimensions | |
US8595437B1 (en) | Compression status bit cache with deterministic isochronous latency | |
JPH08328958A (en) | Instruction cache as well as apparatus and method for cache memory | |
US20160353122A1 (en) | Variable-rate texture compression using fixed-rate codes | |
WO2009042959A1 (en) | Multi-media processor cache with cache line locking and unlocking | |
US9798543B2 (en) | Fast mapping table register file allocation algorithm for SIMT processors | |
JP4218820B2 (en) | Cache system including direct mapped cache and full associative buffer, its control method and recording medium | |
JP5071977B2 (en) | System and method for managing cache memory | |
EP1721298A2 (en) | Embedded system with 3d graphics core and local pixel buffer | |
JP2010073029A (en) | Instruction cache system | |
JP2014115851A (en) | Data processing device and method of controlling the same | |
US9934145B2 (en) | Organizing memory to optimize memory accesses of compressed data | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US6314490B1 (en) | Method and apparatus for memory addressing | |
JP2010097557A (en) | Set associative cache apparatus and cache method | |
US8656093B1 (en) | Supporting late DRAM bank hits | |
US7589738B2 (en) | Cache memory management system and method | |
US10402323B2 (en) | Organizing memory to optimize memory accesses of compressed data |
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 |