JP2006520044A - データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム - Google Patents

データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム Download PDF

Info

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
selecting
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
Application number
JP2006506643A
Other languages
English (en)
Inventor
エインドーフェン ヨセフス ティ ジェイ ファン
マルティン ジェイ ルッテン
エヴェルト−ヤン ディ ポル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2006520044A publication Critical patent/JP2006520044A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, 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)を有する。

Description

本発明は、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理システムと、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境における使用のための半導体デバイスと、タスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境においてキャッシュメモリをインデックスするための方法とに関する。
特に高解像度ディジタルテレビジョン(high-definition digital TV)、時間シフト機能(time-shift functionality)を備えるセットトップボックス、3Dゲーム、ビデオ会議、MPEG−4アプリケーション等のようなデータフローアプリケーションのために備えられるデータ処理システムに対する設計労力は、このようなアプリケーションに対する増大する需要のために近年増大してきている。
ストリーム処理において、データのストリームについての連続命令(オペレーション)は異なるプロセッサによって実行される。例えば、第一のストリームは、画素の8×8ブロックのDCT(離散コサイン(余弦)変換(Discrete Cosine Transformation))係数のブロックの第二のストリームを生成するために第一のプロセッサによって処理される画像(イメージ)の画素(ピクセル)値(pixel value)から構成され得る。第二のプロセッサは、DCT係数の各々のブロックに対して選択されると共に圧縮される係数のブロックのストリームを生成するためにDCT係数のブロックを生成し得る。
データストリーム処理を実現するために複数のプロセッサがもたらされ、データオブジェクトのストリームからの次のデータオブジェクトからのデータが使用される度に、及び/又は当該ストリームにおける次のデータオブジェクトが生成される度に、各々は特定の命令(動作)を繰り返し実行し得る。ストリームは、あるプロセッサから他のプロセッサに伝送されるので、第一のプロセッサによって生成されるストリームは第二のプロセッサ等によって処理され得る。第一のプロセッサから第二のプロセッサにデータを伝送する一つのメカニズム(機構)は、第一のプロセッサによって生成されるデータブロックをメモリに書き込むことによる。ネットワークにおけるデータストリームはバッファされる。各々のバッファは、正確には一つのライタ(書き込み器(writer))と、一つ又はそれより多くのリーダ(読み出し器(reader))とを備えるFIFOとして実現される。このバッファリングのために、ライタ及びリーダは、チャネル上の個々の読み出し及び書き込み動作を相互に同期させる必要がない。通常のデータ処理システムは、それぞれ単一の用途専用の特定用途向けサブシステム(application specific subsystem)だけでなく完全にプログラム可能なプロセッサの混合体(mix)も含む。
このようなアーキテクチャの例が、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)が実現される。当該分散コプロセッサシェルは、マルチタスキング、ストリーム同期(シンクロナイゼーション)、及びデータ転送(伝送)等の多くのシステムレベルの問題を緩和するために使用される。自身の分散特性のために、シェルはそれが関連させられるコプロセッサの近くに実現され得る。各々のシェルにおいて、シェルに関連させられるコプロセッサ上にマップされるタスクに付随してストリームを処理するために必要とされる全てのデータはシェルのストリームテーブルに記憶される。
シェルは、メモリに書き込まれるとき又は読み出されるときにもたらされるデータアクセスレイテンシを低減させるためにキャッシュを有する。将来の処理ステップを実行するのに必要とされるデータはキャッシュ、すなわちメインメモリから分離させられていると共に、記憶されたデータを使用するプロセッサの近くにもたらされているより小さなメモリに記憶される。すなわち、キャッシュは中間記憶機能部(intermediate storage facility)として使用される。メモリアクセスレイテンシを低減させることによってプロセッサの処理速度は増加させられ得る。データ語(データワード)が、メインメモリからではなく自身のキャッシュからプロセッサによってアクセスされ得るだけの場合、平均アクセス時間(アクセスタイム)及びメインメモリアクセスの数はかなり低減させられるであろう。
共有メモリにおいて実現されるストリームバッファは、アドレスタグ(address tag)を記憶するのに制限された数のバンク(bank)及びキャッシュラインのような共有リソースに対して競合する。コプロセッサのタスクは入力/出力集約型(Input/Output intensive)になるため、タスク実行遅延をもたらし得るキャッシュリソースの競合(contention)を回避するために効率的なキャッシュ動作が必要とされる。
それ故に本発明の目的は、異なるストリームが、共有キャッシュリソースに対して競合するデータフローアプリケーションのために最適化される環境においてキャッシュ競合の発生を低減することにある。
本目的は、請求項1によるデータ処理システムと、請求項9によるタスク及びデータストリームを備えるデータフローアプリケーションを処理するために最適化されるデータ処理環境における使用のための半導体デバイスと、請求項10によるデータフローアプリケーションを処理するために最適化されるデータ処理環境においてキャッシュメモリをインデックスするための方法とによって解決される。
本発明は、各々のデータストリームに対してオーバラップしないキャッシュ位置を確保する概念に基づいている。それ故に各々のストリームに固有(特有)となるストリーム情報が、キャッシュメモリをインデックスするために使用される。この場合、当該ストリーム情報はストリーム識別体(符号)(stream information)によって表される。
特に共有キャッシュリソースに対して異なるストリームは競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理システムがもたらされる。明確なストリーム識別体(unambiguous stream identification)が前記データストリームの各々に関連させられる。前記データ処理システムは、ストリーミングデータを処理するための少なくとも一つのプロセッサ12と、複数のキャッシュブロックを有する少なくとも一つのキャッシュメモリ200であって、前記キャッシュメモリ200の一つは前記プロセッサ12の各々に関連させられる少なくとも一つのキャッシュメモリ200と、前記キャッシュメモリ200を制御するための少なくとも一つのキャッシュコントローラ300であって、前記キャッシュコントローラ300の一つは前記キャッシュメモリ200の各々に関連させられる少なくとも一つのキャッシュコントローラ300とを有する。前記キャッシュコントローラ300は、前記ストリーム識別体stream_idに応じて前記キャッシュメモリ200にデータストリームの要素(element)を記憶するための位置を選択するための選択手段350を有する。それ故に異なるストリームからのデータのキャッシュは効果的に切り離される。
本発明の更なる態様によれば、前記選択手段350は、前記ストリームの入力/出力アドレスのサブセットに応じて前記キャッシュメモリ200におけるキャッシュブロックの前記行内からキャッシュブロックのセットを選択するためのサブセット決定手段352を有する。
本発明の態様によれば、前記選択手段350は、キャッシュ行の数よりも小さくなる数に対して前記ストリーム識別体stream_idにハシュ関数を実行するためのハシュ関数手段(hashing function means)351を有する。
本発明の更なる態様によれば、前記ハシュ関数手段351はモジュロ演算(modulo operation)を実行するためのももである。異なるタスクに渡って利用可能なキャッシュ行を共有することによって、キャッシュメモリ200はより小さく具現化されることが可能であり、それによってシステム全体においてキャッシュメモリの費用は制限される。
本発明の更なる態様によれば、前記選択手段350は、前記データストリームに関連付けられるタスク識別体task_id及び/又はポート識別体port_idに応じて前記キャッシュメモリ200におけるデータストリームに対する位置を選択する。
本発明は、明確なストリーム識別体stream_idが前記データストリームの各々に関連させられ、異なるタスクが共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境における使用のための半導体デバイスにも関する。前記デバイスは、複数のキャッシュブロックを有するキャッシュメモリ200と、前記キャッシュメモリ200を制御するためのキャッシュコントローラ300とを有しており、前記キャッシュコントローラ300は前記キャッシュメモリ200に関連させられる。前記キャッシュコントローラ300は、前記ストリーム識別体stream_idに応じて前記キャッシュメモリ200におけるデータストリームの要素を記憶するための位置を選択するための選択手段350を有する。
更に本発明は、異なるストリームが共有キャッシュリソースに対して競合するタスク及びデータストリームを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境においてキャッシュメモリ200をインデックスするための方法にも関する。前記キャッシュメモリ200は、複数のキャッシュブロックを有している。明確なストリーム識別体stream_idは前記データストリームの各々に関連させられる。前記キャッシュメモリ200においてデータストリームの要素を記憶するための位置は、異なるstream_idの可能な数に比べて、前記キャッシュメモリにおけるより小さな数のサブセットを識別するために前記ストリーム識別体stream_idに応じて選択される。
本発明の更なる態様は従属請求項に記載される。
本発明のこれら及び他の態様は図面を参照して更に詳細に説明される。
図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を有している。
プロセッサ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)が可能になる一方で、システムアーキテクチャ全体においてシェルの再利用を容易にするために、シェルのアーキテクチャ全体は全てのプロセッサに対して均質であると共に汎用性がある。
シェル22a及び22bは、データ伝送のための読み出し/書き込みユニットと、同期ユニット(synchronisation unit)と、タスクスイッチングユニット(task switching unit)とを有している。当該三つのユニットはマスタ/スレーブ(master/slave)によって、関連するプロセッサと通信し、プロセッサはマスタとしての役割を果たす。従って、それぞれ三つのユニットは、プロセッサからの要求(リクエスト)によって初期化(イニシャライズ(initialise))させられる。好ましくは、引数(argument)値を渡すと共に、要求された値が返(戻)されるのを待つために、プロセッサと三つのユニットとの間の通信は要求肯定応答ハンドシェーク機構(request-acknowledge handshake mechanism)によって実現される。それ故に、前記通信は阻止(ブロック)される。すなわち、制御の各スレッド(thread)はそれらの完了を待つ。
シェル22a及び22bは、自身が関連させられるプロセッサ12a及び12bの近くに各々は実現され得るように分散させられる。各々のシェルは、自身のプロセッサ上にマップされるタスクに伴うストリームに対するコンフィギュレーションデータ(構成データ(configuration data))をローカルに(局所的に)含んでおり、当該データを適切に処理するように全ての制御論理をローカルに実現する。従って、ローカルストリームテーブルが、各々のストリーム、すなわち各々のアクセスポイントに対するフィールドの行を含むシェル22a及び22bで実現されてもよい。
更にシェル22は、プロセッサ12と通信ネットワーク31及びメモリ32との間のデータ伝送、すなわち読み出し動作及び書き込み動作のためのデータキャッシュを有している。シェル22におけるデータキャッシュの実現により、データバス幅の透明(トランスペアレント)な変換(transparent translation)、グローバル(広域)な相互接続部、すなわち通信ネットワーク31上のアライメント(調整(alignment))制限の解消、及びグローバルな相互接続部上のI/O動作の数の低減がもたらされる。
好ましくはシェル22は、読み出し及び書き込みインタフェース部においてキャッシュを有するが、これらのキャッシュはアプリケーション機能の視点から見えない。当該キャッシュは、プロセッサ読み出し及び書き込みポートを、通信ネットワーク3のグローバルな相互接続部から切り離すことにおいて重要な役割を果たす。これらのキャッシュは、速度、電力、及び面積に関するシステム特性に大きな影響を及ぼす。
図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)を参照されたい。
図2は、図1によるアーキテクチャの一部を示す。特にプロセッサ12b、シェル22b、バス31、及びメモリ32が示されている。シェル22bは、自身のデータ伝送ユニットの部分としてキャッシュコントローラ300及びキャッシュメモリ200を有する。キャッシュコントローラ300は、ストリームテーブル320及び選択手段350を有する。キャッシュメモリ200は異なるキャッシュブロック210に分割されてもよい。
読み出し及び書き込み動作、すなわちI/Oアクセスがコプロセッサ12b上のタスクによって実行されるとき、当該アクセスがどの特定のタスク及びポートからデータを要求しているのか、又は当該アクセスがどの特定のタスク及びポートに対してデータを要求しているのかを示すアドレスに隣接してtask_id及びport_idパラメータを当該アクセスは供給する。前記アドレスは、共有メモリにおいてストリームバッファにおける位置を示す。ストリームテーブル320は、アクセスポイント及び各々のストリームに対するフィールドの行を含んでいる。特にストリームテーブルは、現在処理されているタスクを示すタスク識別子task_id及びデータが受信されるポートを示すポート識別子port_idからもたらされるストリーム識別子stream_idでインデックスされる。port_idは各々のタスクに対してローカルな範囲(スコープ)を有している。
本発明の第一の実施例は、復号化から直接エントリが決定される直接アドレス復号化(ダイレクトアドレスデコーディング(direct address decoding))を含むインデックスするステップによるアドレッシングに向けられる。それ故に前記選択手段350は、前記キャッシュメモリ200におけるキャッシュブロックの行を選択するためにストリーム識別子stream_idを使用する。選択されたキャッシュ行内からの特定のキャッシュブロックは、コプロセッサによって供給される前記アドレス、すなわちI/Oアドレスの下位ビット(lower bit)を通じてインデックスされる。代わりにアドレスの上位ビットがインデックスのために使用されてもよい。本実施例によるキャッシュメモリ200の構成体は、直接マップ(direct-mapped)によりなされる。すなわちアドレス及びストリーム識別子の全ての組み合わせは単一のキャッシュ位置にのみマップされ得る。従って、行におけるキャッシュブロックの数は、2のべき乗(power of two)に制限される。すなわち、複数のアドレスビットを復号化することによって列が選択されると、これは常に列の2乗の数に展開されるであろう。
図3は本発明の第二の実施例によるキャッシュ構成体の概念図を示しており、当該キャッシュ構成体は直接マップによりもたらされる。図2からの選択手段は、ハシュ関数手段351及びサブセット決定手段352を有する。I/Oアドレスは前記サブセット決定手段352に入力される一方、stream_idは前記ハシュ関数手段351に入力される。好ましくはハシュ関数手段351は、ストリーム識別子stream_idを、前記キャッシュメモリのより小さな数のキャッシュ行に変換するためにキャッシュ行の数に渡ってモジュロ演算を実行する。サブセット決定手段352は、コプロセッサによって供給される前記アドレス、すなわちI/Oアドレスの下位ビットを通じて前記キャッシュメモリの特定のキャッシュ列を決定する。代わりにアドレスの上位ビットがインデックスのために使用されてもよい。ハシュ関数手段351によって決定されるキャッシュ行及び前記サブセット決定手段352によって決定されるキャッシュ列によれば、特定のキャッシュブロックがインデックスされ得る。アドレス上のタグマッチング(タグ照合(tag matching))によって実際のデータ語が位置されてもよい。
代案として、ストリーム識別子stream_idの代わりにポート識別子port_idがハシュ関数手段351の入力部として使用されてもよく、ハシュ関数、すなわちキャッシュ行の数に渡るモジュロ演算が、キャッシュ行を選択するためにport_idをより小さな数のキャッシュ行にもたらすようにポート識別子port_idについて実行される。このことは、異なるタスクに渡って利用可能なキャッシュ行を共有することによってシェル22におけるキャッシュメモリ200はより小さく具現化されることが可能であり、それによってシステム全体においてキャッシュメモリの費用は制限されるという利点を有している。従って一つのタスクが複数のタスクポートとキャッシュ行を共有していてもよい。しかしながらこのことは、第二のタスクポートからいくつかのデータが散発的しか読み出されない一方、全てのデータが一つのタスクポートから読み出される場合に有益であると共に経済的である。それ故に各々のタスクポートのためのキャッシュ行に対するハードウエアの費用は低減され得る。
更なる代案において、キャッシュ行を選択するためにタスク識別子task_idがハシュ関数手段351に対する入力部として使用される。
本発明の動作原理は図1に記載のアーキテクチャを参照して記載されているが、実際のデータはアドレス上でタグマッチングを通じて更に位置される一方、stream_idはキャッシュ行を選択し、アドレスの下位ビットはキャッシュブロックのセットを選択するより一般的なセット関連のキャッシュ構成体に本発明によるキャッシュインデックス方式が展開され得ることは明らかである。
本発明によるストリームを基礎とした処理システムのアーキテクチャの概略ブロック図である。 本発明によるキャッシュコントローラのブロック図である。 本発明の第二の実施例によるキャッシュ構成体の概念図である。

Claims (10)

  1. 異なるストリームが共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理システムであって、明確なストリーム識別体が前記データストリームの各々に関連させられるデータ処理システムにおいて、
    − ストリーミングデータを処理するための少なくとも一つのプロセッサと、
    − 複数のキャッシュブロックを有する少なくとも一つのキャッシュメモリであって、前記キャッシュメモリの一つは前記プロセッサの各々に関連させられる少なくとも一つのキャッシュメモリと、
    − 前記キャッシュメモリを制御するための少なくとも一つのキャッシュコントローラであって、前記キャッシュコントローラの一つは前記キャッシュメモリの各々に関連させられる少なくとも一つのキャッシュコントローラと
    を有し、
    前記キャッシュコントローラは
    − 前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するための選択手段
    を有するデータ処理システム。
  2. 前記選択手段は、前記ストリーム識別体に応じて前記キャッシュメモリにおけるキャッシュブロックのサブセットを選択するためにもたらされる
    請求項1に記載のシステム。
  3. − 前記ストリームの入力/出力アドレスのサブセットに応じて前記キャッシュメモリにおける前記キャッシュブロックのサブセット内からキャッシュブロックのセットを選択するためのサブセット決定手段
    を有する請求項2に記載のシステム。
  4. 前記サブセット決定手段は、前記ストリームの前記入力/出力アドレスの前記下位ビットに応じてキャッシュブロックを選択するためにもたらされる
    請求項3に記載のシステム。
  5. 前記サブセット決定手段は、前記入力/出力アドレスビットのサブセットにタグ照合することによって前記キャッシュブロックのセット内からキャッシュブロックを選択するためにもたらされる
    請求項3に記載のシステム。
  6. 前記選択手段は、
    − キャッシュ行の数よりも小さくなる数に対して前記ストリーム識別体にハシュ関数を実行するためのハシュ関数手段
    を有する請求項1に記載のシステム。
  7. 前記ハシュ関数手段はモジュロ演算を実行するためにもたらされる
    請求項6に記載のシステム。
  8. 前記選択手段は、前記データストリームに関連させられるタスク識別体及び/又はポート識別体に応じて前記キャッシュメモリにおけるデータストリームの要素に対する位置を選択するためにもたらされる
    請求項1に記載のシステム。
  9. 異なるストリームが共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境における使用のための半導体デバイスであって、明確なストリーム識別体が前記データストリームの各々に関連させられる半導体デバイスにおいて、
    − 複数のキャッシュブロックを有するキャッシュメモリと、
    − 前記キャッシュメモリに関連させられる、前記キャッシュメモリを制御するためのキャッシュコントローラと
    を有し、
    前記キャッシュコントローラは
    前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するための選択手段
    を有する半導体デバイス。
  10. 異なるストリームが共有キャッシュリソースに対して競合するデータストリーム及びタスクを備えるデータフローアプリケーションを処理するように最適化されるデータ処理環境においてキャッシュメモリをインデックスするための方法であって、
    前記キャッシュメモリは、複数のキャッシュブロックを有し、
    明確なストリーム識別体が、前記データストリームの各々に関連させられる
    方法において、
    − 前記ストリーム識別体に応じて前記キャッシュメモリにおけるデータストリームの要素を記憶するための位置を選択するステップ
    を有する方法。
JP2006506643A 2003-03-06 2004-02-25 データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム Pending JP2006520044A (ja)

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 (ja) 2006-08-31

Family

ID=32946918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006506643A Pending JP2006520044A (ja) 2003-03-06 2004-02-25 データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム

Country Status (8)

Country Link
US (1) US20070168615A1 (ja)
EP (1) EP1604286B1 (ja)
JP (1) JP2006520044A (ja)
KR (1) KR20050116811A (ja)
CN (1) CN100547567C (ja)
AT (1) ATE487182T1 (ja)
DE (1) DE602004029870D1 (ja)
WO (1) WO2004079488A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215805A (ja) * 2010-03-31 2011-10-27 Nec Corp 情報処理装置及びデータアクセス方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0563708B1 (en) 1992-03-19 2000-06-21 Fuji Photo Film Co., Ltd. Process for preparing a silver halide photographic emulsion
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 (fr) * 2010-04-09 2012-04-13 Commissariat Energie Atomique Memoire cache segmentee.
CN103729315B (zh) * 2012-10-15 2016-12-21 华为技术有限公司 一种地址压缩、解压缩的方法、压缩器和解压缩器
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
KR101967857B1 (ko) * 2017-09-12 2019-08-19 전자부품연구원 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62144257A (ja) * 1985-12-19 1987-06-27 Mitsubishi Electric Corp キヤツシユメモリ
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 (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH04100158A (ja) * 1990-08-18 1992-04-02 Pfu Ltd キャッシュ制御方式
JPH0571948U (ja) * 1992-03-04 1993-09-28 横河電機株式会社 キャッシュ制御装置
JPH06160828A (ja) * 1992-11-26 1994-06-07 Sharp Corp 平板の貼合せ方法
JPH10232834A (ja) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd キャッシュメモリを作動する方法およびコンピュータシステム
JP2000339220A (ja) * 1999-05-27 2000-12-08 Nippon Telegr & Teleph Corp <Ntt> キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム
JP2001282617A (ja) * 2000-03-27 2001-10-12 Internatl Business Mach Corp <Ibm> 共有されたキャッシュを動的に区分するための方法及びシステム
US6360299B1 (en) * 1999-06-30 2002-03-19 International Business Machines Corporation Extended cache state with prefetched stream ID information
JP2003006045A (ja) * 2001-05-17 2003-01-10 Fujitsu Ltd コンピュータシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62144257A (ja) * 1985-12-19 1987-06-27 Mitsubishi Electric Corp キヤツシユメモリ
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 (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH04100158A (ja) * 1990-08-18 1992-04-02 Pfu Ltd キャッシュ制御方式
JPH0571948U (ja) * 1992-03-04 1993-09-28 横河電機株式会社 キャッシュ制御装置
JPH06160828A (ja) * 1992-11-26 1994-06-07 Sharp Corp 平板の貼合せ方法
JPH10232834A (ja) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd キャッシュメモリを作動する方法およびコンピュータシステム
JP2000339220A (ja) * 1999-05-27 2000-12-08 Nippon Telegr & Teleph Corp <Ntt> キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム
US6360299B1 (en) * 1999-06-30 2002-03-19 International Business Machines Corporation Extended cache state with prefetched stream ID information
JP2001282617A (ja) * 2000-03-27 2001-10-12 Internatl Business Mach Corp <Ibm> 共有されたキャッシュを動的に区分するための方法及びシステム
JP2003006045A (ja) * 2001-05-17 2003-01-10 Fujitsu Ltd コンピュータシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215805A (ja) * 2010-03-31 2011-10-27 Nec Corp 情報処理装置及びデータアクセス方法

Also Published As

Publication number Publication date
EP1604286A2 (en) 2005-12-14
WO2004079488A3 (en) 2005-07-28
US20070168615A1 (en) 2007-07-19
ATE487182T1 (de) 2010-11-15
CN100547567C (zh) 2009-10-07
WO2004079488A2 (en) 2004-09-16
CN1757017A (zh) 2006-04-05
EP1604286B1 (en) 2010-11-03
DE602004029870D1 (de) 2010-12-16
KR20050116811A (ko) 2005-12-13

Similar Documents

Publication Publication Date Title
US7321958B2 (en) System and method for sharing memory by heterogeneous processors
JP4246204B2 (ja) マルチプロセッサシステムにおける共有メモリの管理のための方法及び装置
US7526608B2 (en) Methods and apparatus for providing a software implemented cache memory
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
CN101099140A (zh) 用于混合dma队列和dma表的方法和装置
CN1311348C (zh) 数据处理***
TWI666551B (zh) 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
KR20070089998A (ko) 외부 장치로부터 프로세서의 메모리로의 주소 번역을 위한방법 및 기구
CN1320458C (zh) 数据处理***
CN101099141A (zh) 在多处理器***中使用直接存储器存取传输来进行列表传输的方法及装置
KR20030074047A (ko) 멀티 프로세서 시스템
JP2006520044A (ja) データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム
US20220214979A1 (en) Dedicated cache-related block transfer in a memory system
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US20080091886A1 (en) Dynamic Path Determination To An Address Concentrator
US8478946B2 (en) Method and system for local data sharing
US10031784B2 (en) Interconnect system to support the execution of instruction sequences by a plurality of partitionable engines
JP2006286002A (ja) 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置
US10620958B1 (en) Crossbar between clients and a cache
CN114116533A (zh) 利用共享存储器存储数据的方法
CN116263752A (zh) 用于芯片间通信的处理单元、处理***及方法
Hilgenstock et al. Parallel DSP architecture for object-based video signal processing
JPH0934736A (ja) 動作切替えコントローラ

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