JP2006520044A - Data processing system with cache optimized for processing data flow applications - Google Patents
Data processing system with cache optimized for processing data flow applications Download PDFInfo
- Publication number
- JP2006520044A JP2006520044A JP2006506643A JP2006506643A JP2006520044A JP 2006520044 A JP2006520044 A JP 2006520044A JP 2006506643 A JP2006506643 A JP 2006506643A JP 2006506643 A JP2006506643 A JP 2006506643A JP 2006520044 A JP2006520044 A JP 2006520044A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- stream
- data
- cache memory
- identifier
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 67
- 230000006870 function Effects 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 11
- 239000004065 semiconductor Substances 0.000 claims description 5
- 230000004044 response Effects 0.000 claims 3
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
オーバラップしないキャッシュ位置が各々のデータストリームに対して確保される。それ故に各々のストリームに固有となるストリーム情報が、キャッシュメモリをインデックスするために使用される。この場合、当該ストリーム情報はストリーム識別体によって表される。特に異なるストリームは共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するために最適化されるデータ処理システムがもたらされる。明確なストリーム識別体が前記データストリームの各々に関連させられる。前記データ処理システムは、ストリーミングデータを処理するための少なくとも一つのプロセッサ(12)と、複数のキャッシュブロックを有する少なくとも一つのキャッシュメモリ(200)であって、前記キャッシュメモリ(200)の一つは前記プロセッサ(12)の各々に関連させられる少なくとも一つのキャッシュメモリ(200)と、前記キャッシュメモリ(200)を制御するための少なくとも一つのキャッシュコントローラ(300)であって、前記キャッシュコントローラ(300)の一つは前記キャッシュメモリ(200)の各々に関連させられる少なくとも一つのキャッシュコントローラ(300)とを有する。前記キャッシュコントローラ(300)は、前記ストリーム識別体(stream_id)に応じて前記キャッシュメモリ(200)におけるデータストリームの要素を記憶するための位置を選択するための選択手段(350)を有する。A non-overlapping cache location is reserved for each data stream. Therefore, stream information unique to each stream is used to index the cache memory. In this case, the stream information is represented by a stream identifier. In particular, a data processing system is provided that is optimized for processing data flow applications with different streams competing for shared cache resources and data streams and tasks. A distinct stream identifier is associated with each of the data streams. The data processing system includes at least one processor (12) for processing streaming data and at least one cache memory (200) having a plurality of cache blocks, one of the cache memories (200) being At least one cache memory (200) associated with each of said processors (12) and at least one cache controller (300) for controlling said cache memory (200), said cache controller (300) One has at least one cache controller (300) associated with each of the cache memories (200). The cache controller (300) has selection means (350) for selecting a position for storing the element of the data stream in the cache memory (200) according to the stream identifier (stream_id).
Description
本発明は、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理システムと、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境における使用のための半導体デバイスと、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境においてキャッシュメモリをインデックスするための方法とに関する。 The present invention relates to a data processing system that is optimized to process a data flow application comprising tasks and data streams, and to use in a data processing environment that is optimized to process data flow applications comprising tasks and data streams. And a method for indexing a cache memory in a data processing environment optimized for processing data flow applications comprising tasks and data streams.
特に高解像度ディジタルテレビジョン(high-definition digital TV)、時間シフト機能(time-shift functionality)を備えるセットトップボックス、3Dゲーム、ビデオ会議、MPEG−4アプリケーション等のようなデータフローアプリケーションのために備えられるデータ処理システムに対する設計労力は、このようなアプリケーションに対する増大する需要のために近年増大してきている。 Especially for data flow applications such as high-definition digital TV, set-top boxes with time-shift functionality, 3D games, video conferencing, MPEG-4 applications, etc. The design effort for a given data processing system has increased in recent years due to the increasing demand for such applications.
ストリーム処理において、データのストリームについての連続命令(オペレーション)は異なるプロセッサによって実行される。例えば、第一のストリームは、画素の8×8ブロックのDCT(離散コサイン(余弦)変換(Discrete Cosine Transformation))係数のブロックの第二のストリームを生成するために第一のプロセッサによって処理される画像(イメージ)の画素(ピクセル)値(pixel value)から構成され得る。第二のプロセッサは、DCT係数の各々のブロックに対して選択されると共に圧縮される係数のブロックのストリームを生成するためにDCT係数のブロックを生成し得る。 In stream processing, consecutive instructions (operations) on a stream of data are executed by different processors. For example, the first stream is processed by the first processor to generate a second stream of blocks of DCT (Discrete Cosine Transformation) coefficients of an 8 × 8 block of pixels. It can be composed of pixel values of an image. The second processor may generate a block of DCT coefficients to generate a stream of blocks of coefficients that are selected and compressed for each block of DCT coefficients.
データストリーム処理を実現するために複数のプロセッサがもたらされ、データオブジェクトのストリームからの次のデータオブジェクトからのデータが使用される度に、及び/又は当該ストリームにおける次のデータオブジェクトが生成される度に、各々は特定の命令(動作)を繰り返し実行し得る。ストリームは、あるプロセッサから他のプロセッサに伝送されるので、第一のプロセッサによって生成されるストリームは第二のプロセッサ等によって処理され得る。第一のプロセッサから第二のプロセッサにデータを伝送する一つのメカニズム(機構)は、第一のプロセッサによって生成されるデータブロックをメモリに書き込むことによる。ネットワークにおけるデータストリームはバッファされる。各々のバッファは、正確には一つのライタ(書き込み器(writer))と、一つ又はそれより多くのリーダ(読み出し器(reader))とを備えるFIFOとして実現される。このバッファリングのために、ライタ及びリーダは、チャネル上の個々の読み出し及び書き込み動作を相互に同期させる必要がない。通常のデータ処理システムは、それぞれ単一の用途専用の特定用途向けサブシステム(application specific subsystem)だけでなく完全にプログラム可能なプロセッサの混合体(mix)も含む。 Multiple processors are provided to implement data stream processing, each time data from the next data object from the data object stream is used and / or the next data object in the stream is generated. Each time, each can repeatedly execute a particular instruction (action). Since the stream is transmitted from one processor to another, the stream generated by the first processor can be processed by the second processor or the like. One mechanism for transmitting data from the first processor to the second processor is by writing a data block generated by the first processor into memory. Data streams in the network are buffered. Each buffer is implemented as a FIFO with exactly one writer (writer) and one or more readers (readers). Because of this buffering, the writer and reader do not need to synchronize individual read and write operations on the channel with each other. A typical data processing system includes a fully programmable mix of processors, as well as an application specific subsystem, each dedicated to a single application.
このようなアーキテクチャの例が、Rutten氏他の“エクリプス:フレキシブルメディア処理のためのヘテロマルチプロセッサアーキテクチャ(IEEE コンピュータの設計及びテスト:エンベデッドシステム、第39乃至50頁、2002年7乃至8月)(“Eclipse: A Heterogeneous Multiprocessor Architecture for Flexible Media Processing”, IEEE Design and Test of Computers: Embedded Systems, pp. 39 − 50, July − August 2002)に示されている。必要とされる処理アプリケーションは、カーン(Kahn)プロセスネットワーク、すなわち一方向データストリーム(unidirectional data stream)によってデータを交換する並列(同時)実行タスク(concurrently executing task)のセットとして特定される。各々のアプリケーションタスクは特定のプログラム可能なプロセッサ又は専用プロセッサの一つの上にマップ(map)される。専用プロセッサは、弱く(薄く)しかプログラムされ得ないコプロセッサ(補助プロセッサ(coprocessor))によって実現される。各々のコプロセッサは、時分割(time-shared)によって複数のネットワーク又は単一のカーンネットワークからの複数のタスクを実行し得る。例えばメディア(媒体)処理アプリケーションのストリーミング特性は、参照の高い局所性(ローカリティ(locality))、すなわち隣接するデータのメモリアドレスに対する連続した参照(レファレンス)をもたらす。更にコプロセッサと通信ネットワークとの間、すなわちバスとメインメモリとの間に分散コプロセッサシェル(distributed coprocessor shell)が実現される。当該分散コプロセッサシェルは、マルチタスキング、ストリーム同期(シンクロナイゼーション)、及びデータ転送(伝送)等の多くのシステムレベルの問題を緩和するために使用される。自身の分散特性のために、シェルはそれが関連させられるコプロセッサの近くに実現され得る。各々のシェルにおいて、シェルに関連させられるコプロセッサ上にマップされるタスクに付随してストリームを処理するために必要とされる全てのデータはシェルのストリームテーブルに記憶される。 An example of such an architecture is described by Rutten et al., “Eclipse: Heterogeneous Multiprocessor Architecture for Flexible Media Processing (IEEE Computer Design and Test: Embedded Systems, pages 39-50, July-August 2002) ( “Eclipse: A Heterogeneous Multiprocessor Architecture for Flexible Media Processing”, IEEE Design and Test of Computers: Embedded Systems, pp. 39-50, July-August 2002). Kahn) process network, ie identified as a set of concurrently executing tasks that exchange data by means of a unidirectional data stream, each application task being a specific programmable processor or Above one of the dedicated processors A dedicated processor is implemented by a coprocessor (coprocessor) that can only be programmed weakly (thinly), each coprocessor being time-shared. Can perform multiple tasks from a single network or a single Khan network, for example, the streaming characteristics of a media processing application can be based on the high locality of reference, ie the memory address of adjacent data Provides a continuous reference, and a distributed coprocessor shell is realized between the coprocessor and the communication network, ie between the bus and the main memory. Tasking, stream synchronization (synchronization) Used to alleviate many system-level problems such as data transmission (transmission), etc. Because of its distributed nature, the shell can be implemented near the coprocessor with which it is associated. In each shell, all data needed to process the stream associated with a task mapped on the coprocessor associated with the shell is stored in the shell's stream table.
シェルは、メモリに書き込まれるとき又は読み出されるときにもたらされるデータアクセスレイテンシを低減させるためにキャッシュを有する。将来の処理ステップを実行するのに必要とされるデータはキャッシュ、すなわちメインメモリから分離させられていると共に、記憶されたデータを使用するプロセッサの近くにもたらされているより小さなメモリに記憶される。すなわち、キャッシュは中間記憶機能部(intermediate storage facility)として使用される。メモリアクセスレイテンシを低減させることによってプロセッサの処理速度は増加させられ得る。データ語(データワード)が、メインメモリからではなく自身のキャッシュからプロセッサによってアクセスされ得るだけの場合、平均アクセス時間(アクセスタイム)及びメインメモリアクセスの数はかなり低減させられるであろう。 The shell has a cache to reduce the data access latency introduced when it is written to or read from memory. The data needed to perform future processing steps is separated from the cache, i.e. main memory, and stored in a smaller memory that is brought close to the processor using the stored data. The That is, the cache is used as an intermediate storage facility. By reducing the memory access latency, the processing speed of the processor can be increased. If a data word (data word) can only be accessed by the processor from its own cache rather than from main memory, the average access time (access time) and the number of main memory accesses will be significantly reduced.
共有メモリにおいて実現されるストリームバッファは、アドレスタグ(address tag)を記憶するのに制限された数のバンク(bank)及びキャッシュラインのような共有リソースに対して競合する。コプロセッサのタスクは入力/出力集約型(Input/Output intensive)になるため、タスク実行遅延をもたらし得るキャッシュリソースの競合(contention)を回避するために効率的なキャッシュ動作が必要とされる。 Stream buffers implemented in shared memory compete for shared resources such as a limited number of banks and cache lines to store address tags. As coprocessor tasks become input / output intensive, efficient cache operations are required to avoid cache resource contention that can result in task execution delays.
それ故に本発明の目的は、異なるストリームが、共有キャッシュリソースに対して競合するデータフローアプリケーションのために最適化される環境においてキャッシュ競合の発生を低減することにある。 It is therefore an object of the present invention to reduce the occurrence of cache contention in an environment where different streams are optimized for data flow applications that compete for shared cache resources.
本目的は、請求項1によるデータ処理システムと、請求項9によるタスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境における使用のための半導体デバイスと、請求項10によるデータフローアプリケーションを処理するために最適化されるデータ処理環境においてキャッシュメモリをインデックスするための方法とによって解決される。 This object is directed to a data processing system according to claim 1 and a semiconductor device for use in a data processing environment optimized to process dataflow applications comprising tasks and data streams according to claim 9. And a method for indexing a cache memory in a data processing environment that is optimized for processing data flow applications.
本発明は、各々のデータストリームに対してオーバラップしないキャッシュ位置を確保する概念に基づいている。それ故に各々のストリームに固有(特有)となるストリーム情報が、キャッシュメモリをインデックスするために使用される。この場合、当該ストリーム情報はストリーム識別体(符号)(stream information)によって表される。 The present invention is based on the concept of ensuring a non-overlapping cache location for each data stream. Therefore, stream information that is unique to each stream is used to index the cache memory. In this case, the stream information is represented by a stream identifier (code).
特に共有キャッシュリソースに対して異なるストリームは競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理システムがもたらされる。明確なストリーム識別体(unambiguous stream identification)が前記データストリームの各々に関連させられる。前記データ処理システムは、ストリーミングデータを処理するための少なくとも一つのプロセッサ12と、複数のキャッシュブロックを有する少なくとも一つのキャッシュメモリ200であって、前記キャッシュメモリ200の一つは前記プロセッサ12の各々に関連させられる少なくとも一つのキャッシュメモリ200と、前記キャッシュメモリ200を制御するための少なくとも一つのキャッシュコントローラ300であって、前記キャッシュコントローラ300の一つは前記キャッシュメモリ200の各々に関連させられる少なくとも一つのキャッシュコントローラ300とを有する。前記キャッシュコントローラ300は、前記ストリーム識別体stream_idに応じて前記キャッシュメモリ200にデータストリームの要素(element)を記憶するための位置を選択するための選択手段350を有する。それ故に異なるストリームからのデータのキャッシュは効果的に切り離される。
In particular, a data processing system is provided that is optimized to process data flow applications with different data streams and tasks that compete against shared cache resources. An unambiguous stream identification is associated with each of the data streams. The data processing system includes at least one processor 12 for processing streaming data and at least one
本発明の更なる態様によれば、前記選択手段350は、前記ストリームの入力/出力アドレスのサブセットに応じて前記キャッシュメモリ200におけるキャッシュブロックの前記行内からキャッシュブロックのセットを選択するためのサブセット決定手段352を有する。
According to a further aspect of the present invention, the selection means 350 determines a subset for selecting a set of cache blocks from within the row of cache blocks in the
本発明の態様によれば、前記選択手段350は、キャッシュ行の数よりも小さくなる数に対して前記ストリーム識別体stream_idにハシュ関数を実行するためのハシュ関数手段(hashing function means)351を有する。 According to an aspect of the present invention, the selection means 350 has a hashing function means 351 for performing a hash function on the stream identifier stream_id for a number smaller than the number of cache lines. .
本発明の更なる態様によれば、前記ハシュ関数手段351はモジュロ演算(modulo operation)を実行するためのももである。異なるタスクに渡って利用可能なキャッシュ行を共有することによって、キャッシュメモリ200はより小さく具現化されることが可能であり、それによってシステム全体においてキャッシュメモリの費用は制限される。
According to a further aspect of the invention, the hash function means 351 is for performing a modulo operation. By sharing available cache lines across different tasks, the
本発明の更なる態様によれば、前記選択手段350は、前記データストリームに関連付けられるタスク識別体task_id及び/又はポート識別体port_idに応じて前記キャッシュメモリ200におけるデータストリームに対する位置を選択する。
According to a further aspect of the present invention, the selecting means 350 selects a position for the data stream in the
本発明は、明確なストリーム識別体stream_idが前記データストリームの各々に関連させられ、異なるタスクが共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境における使用のための半導体デバイスにも関する。前記デバイスは、複数のキャッシュブロックを有するキャッシュメモリ200と、前記キャッシュメモリ200を制御するためのキャッシュコントローラ300とを有しており、前記キャッシュコントローラ300は前記キャッシュメモリ200に関連させられる。前記キャッシュコントローラ300は、前記ストリーム識別体stream_idに応じて前記キャッシュメモリ200におけるデータストリームの要素を記憶するための位置を選択するための選択手段350を有する。
The present invention is optimized to handle data flow applications comprising data streams and tasks in which distinct stream identifiers stream_id are associated with each of the data streams and different tasks compete for shared cache resources. It also relates to semiconductor devices for use in data processing environments. The device includes a
更に本発明は、異なるストリームが共有キャッシュリソースに対して競合するタスク及びデータストリームを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境においてキャッシュメモリ200をインデックスするための方法にも関する。前記キャッシュメモリ200は、複数のキャッシュブロックを有している。明確なストリーム識別体stream_idは前記データストリームの各々に関連させられる。前記キャッシュメモリ200においてデータストリームの要素を記憶するための位置は、異なるstream_idの可能な数に比べて、前記キャッシュメモリにおけるより小さな数のサブセットを識別するために前記ストリーム識別体stream_idに応じて選択される。
The present invention further relates to a method for indexing
本発明の更なる態様は従属請求項に記載される。 Further aspects of the invention are set out in the dependent claims.
本発明のこれら及び他の態様は図面を参照して更に詳細に説明される。 These and other aspects of the invention are described in further detail with reference to the drawings.
図1は、本発明の好ましい実施例によるデータオブジェクト(実体)(data object)のストリームを処理するための処理システムを示す。前記システムは、異なる層、すなわち計算(演算)層(computation layer)1と、通信サポート層(communication support layer)2と、通信ネットワーク層(communication network layer)3とに分割され得る。計算層1はCPU11と、二つのプロセッサ又はプロセッサ12a及び12bとを含む。これはただの例示であり、明らかなことに更に多くのプロセッサがシステムに含まれてもよい。通信サポート層2は、CPU11に関連するシェル21と、プロセッサ12a及び12bに関連するシェル22a及び22bとをそれぞれ有している。通信ネットワーク層3は、通信ネットワーク31及びメモリ32を有している。
FIG. 1 illustrates a processing system for processing a stream of data objects according to a preferred embodiment of the present invention. The system can be divided into different layers: a computation (computation) layer 1, a communication support layer 2, and a communication network layer 3. The calculation layer 1 includes a
プロセッサ12a及び12bは好ましくは専用プロセッサであり、各々は、限定された範囲のストリーム処理機能(関数)を実行するように特化されている。各々のプロセッサは、同じ処理命令をストリームの連続したデータオブジェクトに繰り返しもたらすように構成される。プロセッサ12a及び12bは各々、異なるタスク又は機能、例えば有効長デコーディング(variable length decoding)、実行長デコーディング(run-length decoding)、動き補償(motion compensation)、若しくは画像スケーリング(image scaling)を実行してもよく、又はDCT変換を実行してもよい。動作において、各々のプロセッサ12a及び12bは一つ又はそれより多くのデータストリーム上で命令を実行する。命令は、例えばストリームを受信するステップ及び他のストリームを生成するステップ、又は新たなストリームを生成することなくストリームを受信するステップ若しくはストリームを受信することなくストリームを生成するステップ又は受信ストリームを修正するステップを含んでいてもよい。プロセッサ12a及び12bは、他のプロセッサ12b及び12a若しくはCPU11によって生成されるデータストリーム、又はそれら自身で生成されたストリームさえも処理し得る。ストリームは、前記メモリ32を介してプロセッサ12a及び12bから転送されると共にプロセッサ12a及び12bに転送される一連のデータオブジェクトを有している。
シェル22a及び22bは、通信層になる、通信ネットワーク層に対する第一のインタフェース部を有している。当該層は全てのシェルに対して汎用性があると共に均質である。更にシェル22a及び22bは、シェル22a及び22bがそれぞれ関連させられているプロセッサ12a及び12bに対する第二のインタフェース部を有している。第二のインタフェース部は、タスクレベルインタフェース部(task-level interface)であり、前記プロセッサ12a及び12bの特定の要求(要望)に対処することを可能にするために、関連するプロセッサ12a及び12bに対してカスタマイズ(仕様変更(customise))される。従って、シェル22a及び22bはプロセッサ特定インタフェース部(processor-specific interface)を第二のインタフェース部として有するが、特定用途の採用及びパラメータ化(parameterisation)が可能になる一方で、システムアーキテクチャ全体においてシェルの再利用を容易にするために、シェルのアーキテクチャ全体は全てのプロセッサに対して均質であると共に汎用性がある。
The
シェル22a及び22bは、データ伝送のための読み出し/書き込みユニットと、同期ユニット(synchronisation unit)と、タスクスイッチングユニット(task switching unit)とを有している。当該三つのユニットはマスタ/スレーブ(master/slave)によって、関連するプロセッサと通信し、プロセッサはマスタとしての役割を果たす。従って、それぞれ三つのユニットは、プロセッサからの要求(リクエスト)によって初期化(イニシャライズ(initialise))させられる。好ましくは、引数(argument)値を渡すと共に、要求された値が返(戻)されるのを待つために、プロセッサと三つのユニットとの間の通信は要求肯定応答ハンドシェーク機構(request-acknowledge handshake mechanism)によって実現される。それ故に、前記通信は阻止(ブロック)される。すなわち、制御の各スレッド(thread)はそれらの完了を待つ。
The
シェル22a及び22bは、自身が関連させられるプロセッサ12a及び12bの近くに各々は実現され得るように分散させられる。各々のシェルは、自身のプロセッサ上にマップされるタスクに伴うストリームに対するコンフィギュレーションデータ(構成データ(configuration data))をローカルに(局所的に)含んでおり、当該データを適切に処理するように全ての制御論理をローカルに実現する。従って、ローカルストリームテーブルが、各々のストリーム、すなわち各々のアクセスポイントに対するフィールドの行を含むシェル22a及び22bで実現されてもよい。
The
更にシェル22は、プロセッサ12と通信ネットワーク31及びメモリ32との間のデータ伝送、すなわち読み出し動作及び書き込み動作のためのデータキャッシュを有している。シェル22におけるデータキャッシュの実現により、データバス幅の透明(トランスペアレント)な変換(transparent translation)、グローバル(広域)な相互接続部、すなわち通信ネットワーク31上のアライメント(調整(alignment))制限の解消、及びグローバルな相互接続部上のI/O動作の数の低減がもたらされる。
Further, the shell 22 has a data cache for data transmission between the processor 12 and the
好ましくはシェル22は、読み出し及び書き込みインタフェース部においてキャッシュを有するが、これらのキャッシュはアプリケーション機能の視点から見えない。当該キャッシュは、プロセッサ読み出し及び書き込みポートを、通信ネットワーク3のグローバルな相互接続部から切り離すことにおいて重要な役割を果たす。これらのキャッシュは、速度、電力、及び面積に関するシステム特性に大きな影響を及ぼす。 Preferably, the shell 22 has caches at the read and write interface, but these caches are not visible from the application function perspective. The cache plays an important role in disconnecting the processor read and write ports from the global interconnection of the communication network 3. These caches have a significant impact on system characteristics regarding speed, power, and area.
図1によるアーキテクチャに関する更なる詳細な説明については、Rutten氏他の“エクリプス:フレキシブルメディア処理のためのヘテロマルチプロセッサアーキテクチャ(IEEE コンピュータの設計及びテスト:エンベデッドシステム、第39乃至50頁、2002年7乃至8月)(“Eclipse: A Heterogeneous Multiprocessor Architecture for Flexible Media Processing”, IEEE Design and Test of Computers: Embedded Systems, pp. 39 − 50, July − August 2002)を参照されたい。 For a more detailed description of the architecture according to FIG. 1, see Rutten et al., “Eclipse: Heterogeneous Multiprocessor Architecture for Flexible Media Processing (IEEE Computer Design and Test: Embedded Systems, pages 39-50, 2002 7). To August) ("Eclipse: A Heterogeneous Multiprocessor Architecture for Flexible Media Processing", IEEE Design and Test of Computers: Embedded Systems, pp. 39-50, July-August 2002).
図2は、図1によるアーキテクチャの一部を示す。特にプロセッサ12b、シェル22b、バス31、及びメモリ32が示されている。シェル22bは、自身のデータ伝送ユニットの部分としてキャッシュコントローラ300及びキャッシュメモリ200を有する。キャッシュコントローラ300は、ストリームテーブル320及び選択手段350を有する。キャッシュメモリ200は異なるキャッシュブロック210に分割されてもよい。
FIG. 2 shows a part of the architecture according to FIG. In particular, the
読み出し及び書き込み動作、すなわちI/Oアクセスがコプロセッサ12b上のタスクによって実行されるとき、当該アクセスがどの特定のタスク及びポートからデータを要求しているのか、又は当該アクセスがどの特定のタスク及びポートに対してデータを要求しているのかを示すアドレスに隣接してtask_id及びport_idパラメータを当該アクセスは供給する。前記アドレスは、共有メモリにおいてストリームバッファにおける位置を示す。ストリームテーブル320は、アクセスポイント及び各々のストリームに対するフィールドの行を含んでいる。特にストリームテーブルは、現在処理されているタスクを示すタスク識別子task_id及びデータが受信されるポートを示すポート識別子port_idからもたらされるストリーム識別子stream_idでインデックスされる。port_idは各々のタスクに対してローカルな範囲(スコープ)を有している。
When a read and write operation, i.e., an I / O access, is performed by a task on the
本発明の第一の実施例は、復号化から直接エントリが決定される直接アドレス復号化(ダイレクトアドレスデコーディング(direct address decoding))を含むインデックスするステップによるアドレッシングに向けられる。それ故に前記選択手段350は、前記キャッシュメモリ200におけるキャッシュブロックの行を選択するためにストリーム識別子stream_idを使用する。選択されたキャッシュ行内からの特定のキャッシュブロックは、コプロセッサによって供給される前記アドレス、すなわちI/Oアドレスの下位ビット(lower bit)を通じてインデックスされる。代わりにアドレスの上位ビットがインデックスのために使用されてもよい。本実施例によるキャッシュメモリ200の構成体は、直接マップ(direct-mapped)によりなされる。すなわちアドレス及びストリーム識別子の全ての組み合わせは単一のキャッシュ位置にのみマップされ得る。従って、行におけるキャッシュブロックの数は、2のべき乗(power of two)に制限される。すなわち、複数のアドレスビットを復号化することによって列が選択されると、これは常に列の2乗の数に展開されるであろう。
The first embodiment of the invention is directed to addressing with an indexing step that includes direct address decoding (direct address decoding) in which direct entries are determined from decoding. Therefore, the
図3は本発明の第二の実施例によるキャッシュ構成体の概念図を示しており、当該キャッシュ構成体は直接マップによりもたらされる。図2からの選択手段は、ハシュ関数手段351及びサブセット決定手段352を有する。I/Oアドレスは前記サブセット決定手段352に入力される一方、stream_idは前記ハシュ関数手段351に入力される。好ましくはハシュ関数手段351は、ストリーム識別子stream_idを、前記キャッシュメモリのより小さな数のキャッシュ行に変換するためにキャッシュ行の数に渡ってモジュロ演算を実行する。サブセット決定手段352は、コプロセッサによって供給される前記アドレス、すなわちI/Oアドレスの下位ビットを通じて前記キャッシュメモリの特定のキャッシュ列を決定する。代わりにアドレスの上位ビットがインデックスのために使用されてもよい。ハシュ関数手段351によって決定されるキャッシュ行及び前記サブセット決定手段352によって決定されるキャッシュ列によれば、特定のキャッシュブロックがインデックスされ得る。アドレス上のタグマッチング(タグ照合(tag matching))によって実際のデータ語が位置されてもよい。
FIG. 3 shows a conceptual diagram of a cache structure according to a second embodiment of the present invention, which is provided by a direct map. The selection means from FIG. 2 has a hash function means 351 and a subset determination means 352. The I / O address is input to the
代案として、ストリーム識別子stream_idの代わりにポート識別子port_idがハシュ関数手段351の入力部として使用されてもよく、ハシュ関数、すなわちキャッシュ行の数に渡るモジュロ演算が、キャッシュ行を選択するためにport_idをより小さな数のキャッシュ行にもたらすようにポート識別子port_idについて実行される。このことは、異なるタスクに渡って利用可能なキャッシュ行を共有することによってシェル22におけるキャッシュメモリ200はより小さく具現化されることが可能であり、それによってシステム全体においてキャッシュメモリの費用は制限されるという利点を有している。従って一つのタスクが複数のタスクポートとキャッシュ行を共有していてもよい。しかしながらこのことは、第二のタスクポートからいくつかのデータが散発的しか読み出されない一方、全てのデータが一つのタスクポートから読み出される場合に有益であると共に経済的である。それ故に各々のタスクポートのためのキャッシュ行に対するハードウエアの費用は低減され得る。
As an alternative, instead of the stream identifier stream_id, the port identifier port_id may be used as the input of the hash function means 351, and the hash function, ie the modulo operation over the number of cache lines, sets the port_id to select the cache line. Performed on port identifier port_id to result in a smaller number of cache lines. This means that by sharing available cache lines across different tasks, the
更なる代案において、キャッシュ行を選択するためにタスク識別子task_idがハシュ関数手段351に対する入力部として使用される。 In a further alternative, the task identifier task_id is used as an input to the hash function means 351 to select a cache line.
本発明の動作原理は図1に記載のアーキテクチャを参照して記載されているが、実際のデータはアドレス上でタグマッチングを通じて更に位置される一方、stream_idはキャッシュ行を選択し、アドレスの下位ビットはキャッシュブロックのセットを選択するより一般的なセット関連のキャッシュ構成体に本発明によるキャッシュインデックス方式が展開され得ることは明らかである。 The operating principle of the present invention has been described with reference to the architecture described in FIG. 1, but the actual data is further located through tag matching on the address, while the stream_id selects the cache line and the lower bits of the address It is clear that the cache indexing scheme according to the present invention can be extended to more general set-related cache constructs that select a set of cache blocks.
Claims (10)
− ストリーミングデータを処理するための少なくとも一つのプロセッサと、
− 複数のキャッシュブロックを有する少なくとも一つのキャッシュメモリであって、前記キャッシュメモリの一つは前記プロセッサの各々に関連させられる少なくとも一つのキャッシュメモリと、
− 前記キャッシュメモリを制御するための少なくとも一つのキャッシュコントローラであって、前記キャッシュコントローラの一つは前記キャッシュメモリの各々に関連させられる少なくとも一つのキャッシュコントローラと
を有し、
前記キャッシュコントローラは
− 前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するための選択手段
を有するデータ処理システム。 A data processing system that is optimized to process data flow applications comprising data streams and tasks in which different streams compete for shared cache resources, with distinct stream identifiers associated with each of the data streams. Data processing system
-At least one processor for processing the streaming data;
At least one cache memory having a plurality of cache blocks, wherein one of the cache memories is associated with each of the processors;
At least one cache controller for controlling the cache memory, wherein one of the cache controllers has at least one cache controller associated with each of the cache memories;
The cache controller-a data processing system comprising selection means for selecting a location for storing elements of the data stream in the cache memory according to the stream identifier;
請求項1に記載のシステム。 The system of claim 1, wherein the selection means is provided to select a subset of cache blocks in the cache memory in response to the stream identifier.
を有する請求項2に記載のシステム。 The system according to claim 2, comprising subset determining means for selecting a set of cache blocks from among the subset of cache blocks in the cache memory according to a subset of input / output addresses of the stream.
請求項3に記載のシステム。 4. The system of claim 3, wherein the subset determining means is provided for selecting a cache block in response to the low order bits of the input / output address of the stream.
請求項3に記載のシステム。 4. The system of claim 3, wherein the subset determining means is provided for selecting a cache block from within the set of cache blocks by tag matching the subset of input / output address bits.
− キャッシュ行の数よりも小さくなる数に対して前記ストリーム識別体にハシュ関数を実行するためのハシュ関数手段
を有する請求項1に記載のシステム。 The selection means includes
The system according to claim 1, comprising hash function means for performing a hash function on the stream identifier for a number smaller than the number of cache lines.
請求項6に記載のシステム。 The system of claim 6, wherein the hash function means is provided to perform a modulo operation.
請求項1に記載のシステム。 The system of claim 1, wherein the selection means is provided for selecting a position for an element of the data stream in the cache memory in response to a task identifier and / or a port identifier associated with the data stream.
− 複数のキャッシュブロックを有するキャッシュメモリと、
− 前記キャッシュメモリに関連させられる、前記キャッシュメモリを制御するためのキャッシュコントローラと
を有し、
前記キャッシュコントローラは
前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するための選択手段
を有する半導体デバイス。 A semiconductor device for use in a data processing environment where different streams are optimized to process data flow applications comprising data streams and tasks competing for shared cache resources, the distinct stream identifier being said In a semiconductor device associated with each of the data streams,
A cache memory having a plurality of cache blocks;
A cache controller associated with the cache memory for controlling the cache memory;
The said cache controller is a semiconductor device which has a selection means for selecting the position for memorize | storing the element of the data stream in the said cache memory according to the said stream identification body.
前記キャッシュメモリは、複数のキャッシュブロックを有し、
明確なストリーム識別体が、前記データストリームの各々に関連させられる
方法において、
− 前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するステップ
を有する方法。 A method for indexing cache memory in a data processing environment that is optimized to process data flow applications comprising data streams and tasks with different streams competing for shared cache resources, comprising:
The cache memory has a plurality of cache blocks,
In a method in which a distinct stream identifier is associated with each of the data streams:
-Selecting a location for storing an element of a data stream in the cache memory according to the stream identifier.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03100555 | 2003-03-06 | ||
PCT/IB2004/050150 WO2004079488A2 (en) | 2003-03-06 | 2004-02-25 | Data processing system with cache optimised for processing dataflow applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006520044A true JP2006520044A (en) | 2006-08-31 |
Family
ID=32946918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006506643A Pending JP2006520044A (en) | 2003-03-06 | 2004-02-25 | Data processing system with cache optimized for processing data flow applications |
Country Status (8)
Country | Link |
---|---|
US (1) | US20070168615A1 (en) |
EP (1) | EP1604286B1 (en) |
JP (1) | JP2006520044A (en) |
KR (1) | KR20050116811A (en) |
CN (1) | CN100547567C (en) |
AT (1) | ATE487182T1 (en) |
DE (1) | DE602004029870D1 (en) |
WO (1) | WO2004079488A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011215805A (en) * | 2010-03-31 | 2011-10-27 | Nec Corp | Information processing apparatus and data access method |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5525460A (en) | 1992-03-19 | 1996-06-11 | Fuji Photo Film Co., Ltd. | Silver halide photographic emulsion and light-sensitive material using the same |
US7111124B2 (en) * | 2002-03-12 | 2006-09-19 | Intel Corporation | Set partitioning for cache memories |
US7523319B2 (en) * | 2005-11-16 | 2009-04-21 | Lenovo (Singapore) Pte. Ltd. | System and method for tracking changed LBAs on disk drive |
US8130841B2 (en) * | 2005-12-29 | 2012-03-06 | Harris Corporation | Method and apparatus for compression of a video signal |
US7876328B2 (en) * | 2007-02-08 | 2011-01-25 | Via Technologies, Inc. | Managing multiple contexts in a decentralized graphics processing unit |
US9076239B2 (en) * | 2009-04-30 | 2015-07-07 | Stmicroelectronics S.R.L. | Method and systems for thumbnail generation, and corresponding computer program product |
FR2958765B1 (en) * | 2010-04-09 | 2012-04-13 | Commissariat Energie Atomique | SEGMENTED CACHE MEMORY. |
CN103729315B (en) * | 2012-10-15 | 2016-12-21 | 华为技术有限公司 | A kind of address compression, the method for decompression, compressor and decompressor |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
KR101967857B1 (en) * | 2017-09-12 | 2019-08-19 | 전자부품연구원 | Processing in memory device with multiple cache and memory accessing method thereof |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62144257A (en) * | 1985-12-19 | 1987-06-27 | Mitsubishi Electric Corp | Cache memory |
JPS6466760A (en) * | 1987-09-08 | 1989-03-13 | Fujitsu Ltd | Disk cache control system |
JPS6466761A (en) * | 1987-09-08 | 1989-03-13 | Fujitsu Ltd | Disk cache control system |
JPH03235144A (en) * | 1990-02-13 | 1991-10-21 | Sanyo Electric Co Ltd | Cache memory controller |
JPH04100158A (en) * | 1990-08-18 | 1992-04-02 | Pfu Ltd | Cache control system |
JPH0571948U (en) * | 1992-03-04 | 1993-09-28 | 横河電機株式会社 | Cache controller |
JPH06160828A (en) * | 1992-11-26 | 1994-06-07 | Sharp Corp | Method for sticking flat plate |
JPH10232834A (en) * | 1997-01-30 | 1998-09-02 | Sgs Thomson Microelectron Ltd | Method for operating cache memory and computer system |
JP2000339220A (en) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Cache block reserving method and computer system with cache block reserving function |
JP2001282617A (en) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | Method and system for dynamically sectioning shared cache |
US6360299B1 (en) * | 1999-06-30 | 2002-03-19 | International Business Machines Corporation | Extended cache state with prefetched stream ID information |
JP2003006045A (en) * | 2001-05-17 | 2003-01-10 | Fujitsu Ltd | Computer system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511212A (en) * | 1993-06-10 | 1996-04-23 | Rockoff; Todd E. | Multi-clock SIMD computer and instruction-cache-enhancement thereof |
TW501011B (en) * | 1998-05-08 | 2002-09-01 | Koninkl Philips Electronics Nv | Data processing circuit with cache memory |
US6389513B1 (en) * | 1998-05-13 | 2002-05-14 | International Business Machines Corporation | Disk block cache management for a distributed shared memory computer system |
US6567900B1 (en) * | 2000-08-31 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Efficient address interleaving with simultaneous multiple locality options |
US6487643B1 (en) * | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6965982B2 (en) * | 2001-06-29 | 2005-11-15 | International Business Machines Corporation | Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread |
US6883084B1 (en) * | 2001-07-25 | 2005-04-19 | University Of New Mexico | Reconfigurable data path processor |
US6820170B1 (en) * | 2002-06-24 | 2004-11-16 | Applied Micro Circuits Corporation | Context based cache indexing |
-
2004
- 2004-02-25 WO PCT/IB2004/050150 patent/WO2004079488A2/en active Application Filing
- 2004-02-25 US US10/547,595 patent/US20070168615A1/en not_active Abandoned
- 2004-02-25 KR KR1020057016628A patent/KR20050116811A/en not_active Application Discontinuation
- 2004-02-25 CN CNB200480005890XA patent/CN100547567C/en not_active Expired - Fee Related
- 2004-02-25 EP EP04714406A patent/EP1604286B1/en not_active Expired - Lifetime
- 2004-02-25 JP JP2006506643A patent/JP2006520044A/en active Pending
- 2004-02-25 AT AT04714406T patent/ATE487182T1/en not_active IP Right Cessation
- 2004-02-25 DE DE602004029870T patent/DE602004029870D1/en not_active Expired - Lifetime
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62144257A (en) * | 1985-12-19 | 1987-06-27 | Mitsubishi Electric Corp | Cache memory |
JPS6466760A (en) * | 1987-09-08 | 1989-03-13 | Fujitsu Ltd | Disk cache control system |
JPS6466761A (en) * | 1987-09-08 | 1989-03-13 | Fujitsu Ltd | Disk cache control system |
JPH03235144A (en) * | 1990-02-13 | 1991-10-21 | Sanyo Electric Co Ltd | Cache memory controller |
JPH04100158A (en) * | 1990-08-18 | 1992-04-02 | Pfu Ltd | Cache control system |
JPH0571948U (en) * | 1992-03-04 | 1993-09-28 | 横河電機株式会社 | Cache controller |
JPH06160828A (en) * | 1992-11-26 | 1994-06-07 | Sharp Corp | Method for sticking flat plate |
JPH10232834A (en) * | 1997-01-30 | 1998-09-02 | Sgs Thomson Microelectron Ltd | Method for operating cache memory and computer system |
JP2000339220A (en) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Cache block reserving method and computer system with cache block reserving function |
US6360299B1 (en) * | 1999-06-30 | 2002-03-19 | International Business Machines Corporation | Extended cache state with prefetched stream ID information |
JP2001282617A (en) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | Method and system for dynamically sectioning shared cache |
JP2003006045A (en) * | 2001-05-17 | 2003-01-10 | Fujitsu Ltd | Computer system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011215805A (en) * | 2010-03-31 | 2011-10-27 | Nec Corp | Information processing apparatus and data access method |
Also Published As
Publication number | Publication date |
---|---|
EP1604286B1 (en) | 2010-11-03 |
WO2004079488A3 (en) | 2005-07-28 |
EP1604286A2 (en) | 2005-12-14 |
CN1757017A (en) | 2006-04-05 |
KR20050116811A (en) | 2005-12-13 |
ATE487182T1 (en) | 2010-11-15 |
DE602004029870D1 (en) | 2010-12-16 |
CN100547567C (en) | 2009-10-07 |
US20070168615A1 (en) | 2007-07-19 |
WO2004079488A2 (en) | 2004-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7321958B2 (en) | System and method for sharing memory by heterogeneous processors | |
Rixner et al. | Memory access scheduling | |
JP4246204B2 (en) | Method and apparatus for management of shared memory in a multiprocessor system | |
US20050268048A1 (en) | System and method for using a plurality of heterogeneous processors in a common computer system | |
US9063876B2 (en) | System and method for simultaneously storing and read data from a memory system | |
KR100538727B1 (en) | Multi-processor system | |
US10372454B2 (en) | Allocation of a segmented interconnect to support the execution of instruction sequences by a plurality of engines | |
CN101099140A (en) | Methods and apparatus for hybrid dma queue and dma table | |
CN1311348C (en) | Data processing system | |
CN1320458C (en) | Data processing system | |
JP2006520044A (en) | Data processing system with cache optimized for processing data flow applications | |
KR20230041593A (en) | Scalable address decoding scheme for cxl type-2 devices with programmable interleave granularity | |
JP2006520045A (en) | Data processing system having prefetch means | |
US10031784B2 (en) | Interconnect system to support the execution of instruction sequences by a plurality of partitionable engines | |
US8478946B2 (en) | Method and system for local data sharing | |
JP4583327B2 (en) | Method, system, and apparatus for performing consistency management in a distributed multiprocessor system | |
CN114116533B (en) | Method for storing data by using shared memory | |
US10620958B1 (en) | Crossbar between clients and a cache | |
TWI854206B (en) | Integrated circuit and computer-implemented method performed using the same | |
CN116263752A (en) | Processing unit, processing system and method for inter-chip communication | |
Hilgenstock et al. | Parallel DSP architecture for object-based video signal processing | |
JPH0934736A (en) | Operation switching controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070223 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070223 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100914 |