JP4322119B2 - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP4322119B2
JP4322119B2 JP2003553408A JP2003553408A JP4322119B2 JP 4322119 B2 JP4322119 B2 JP 4322119B2 JP 2003553408 A JP2003553408 A JP 2003553408A JP 2003553408 A JP2003553408 A JP 2003553408A JP 4322119 B2 JP4322119 B2 JP 4322119B2
Authority
JP
Japan
Prior art keywords
processor
data
memory
management unit
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003553408A
Other languages
English (en)
Other versions
JP2005513611A (ja
Inventor
アイントホーフェン ヨセフス ティー ジェイ ファン
エヴェルト ジェイ ポル
マルテイン ジェイ ルッテン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of JP2005513611A publication Critical patent/JP2005513611A/ja
Application granted granted Critical
Publication of JP4322119B2 publication Critical patent/JP4322119B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Description

本発明は、複数のプロセッサを持つデータ処理システムに関する。
高いパフォーマンスの、データに依存したメディア処理、例えば高品位のMPEG復号化に対するヘテロジェネアスなマルチプロセッサのアーキテクチャが知られている。メディア処理アプリケーションは、データの単一方向の流れ(ストリーム)により単独で情報を交換するタスクを同時に実行するセットとして特定できる。斯様なアプリケーションの正式なモデルは、G. Kahnが既に1974年に”The Semantics of a Simple Language for Parallel Programming”Proc. Of the IFIP congress 74, August 5-10, Stockholm, Sweden, North-Holland publ. Co, 1974, pp.471-475により紹介し、Kahn及びMacQueenにより1977年に”Co-routines and Networks of Parallel Programming”, Information Processing 77, B. Gilchhirst (Ed.), orth-Holland publ., 1977, pp993-998で動作説明された。この正式なモデルは、Kahn Process Networkと一般に呼ばれている。
同時に実行できるタスクのセットとしてのアプリケーションが知られている。情報は、データの単一方向の流れによりタスク間で交換できるだけである。タスクは、既定のデータストリームに関する読取及び書き込みプロセスにより決定論的にのみ通信するべきである。データストリームは、FIFOの振る舞いを基にしてバッファされる。バッファのおかげで、ストリームを通じての2つのタスクの通信は個別の読取及び書き込みプロセスで同期をとる必要はない。
ストリーム処理において、データのストリーム上での連続する動作は、異なるプロセッサにより実施される。例えば、第1のストリームはイメージのピクセル値からなってもよく、第1プロセッサによりピクセルの8x8ブロックのDCT(離散余弦変換)係数のブロックの第2のストリームを作るために処理されてもよい。第2プロセッサは、DCT係数の各ブロックに対して選択され圧縮された係数のブロックのストリームを作るためにDCT係数のブロックを処理する。
図1は、従来から既知のプロセッサにアプリケーションをマッピングした図を示す。データストリーム処理を実現するために、多くのプロセッサが提供され、各々は繰返し特定の動作を実施でき、毎回データオブジェクトのストリームからの次のデータオブジェクトからのデータを使用及び/又は斯様なストリームに次のデータオブジェクトを作っている。ストリームはあるプロセッサから次のプロセッサへ通り、第1プロセッサにより作られたストリームは第2プロセッサにより処理される、以下同様である。第1プロセッサから第2プロセッサへデータを通す一つの機構は、第1プロセッサにより作られたデータブロックをメモリに書き込むことである。
ネットワーク内のデータストリームはバッファされる。各バッファは、正確に一つの書き込み器及び一つ以上の読出し器を伴ってFIFOとして実現される。このバッファリングのため、これら書き込み器及び読出し器は、チャネル上で個別の読出し及び書き込み動作で相互に同期を取る必要はない。利用可能だが不充分なデータを持つチャネルからの読み出しは、読出しタスクを立ち往生させてしまう。コプロセッサは、プアなプログラム可能なだけであるハードウェア機能ユニットに専念できる。全てのコプロセッサはパラレルに走り、コントロールのこれら自身のスレッドを実行する。これらコプロセッサはKahnスタイルのアプリケーションを実行し、各タスクは単一のコプロセッサへマッピングされる。コプロセッサはマルチタスクを許容し、すなわちマルチのKahnタスクが単一のコプロセッサへマッピングできる。
従って、本発明の目的は、Kahnスタイルのデータ処理システムの動作を改善することである。
この目的は、請求項1に記載のデータ処理システムにより解決される。本発明によるデータ処理において、分配管理は、メモリの使用について維持され、当該メモリを通じてプロセッサはデータストリームと互いに通信する。一方で、書き込みプロセッサの管理ユニットは他のプロセッサによる読み出しのためのデータオブジェクトを記憶するために空いているメモリのセクションを規定する情報を維持する。他方で、第2プロセッサの管理ユニットはデータオブジェクトに対する完全なデータを第1プロセッサが既に書き込んでしまったメモリのセクションを規定する情報を維持する。このことは、書き込みプロセッサが、読み出しプロセッサでまだ必要である古いデータオブジェクトを重ね書きするかどうかを、書き込む各データオブジェクトに対して第2プロセッサでチェックする必要がないという利点を持つ。同様にして、読み出しプロセッサは、既に有効であるかどうかを各データオブジェクトに対して書き込みプロセッサでチェックする必要がない。その代わり、プロセッサの各々は、メモリアクセスが許容されるかどうかを管理ユニットでチェックする。このことは、ローカルな通信を要求するだけである。管理ユニットに情報を維持するために、グローバルな通信が必要であることは本当であるが、このことは一度にデータオブジェクトのグループに対して起こることができる。
管理ユニットへの更新メッセージは、請求項2で規定されたプッシュモードか又は請求項3で述べられたプルモードで起こることもできる。プルモードにおいては、読み出しプロセッサは、データオブジェクトがどのくらい書き込みプロセッサにより書き込まれたかを要求する。書き込みプロセッサは、書き込まれたデータオブジェクトの数を示すメッセージによりその要求に応答する。同様にして、書き込みプロセッサは、どのくらいデータオブジェクトが読み出されたかを要求し、その際に読み出しプロセッサは、この数を示すメッセージで応答する。したがって、二つのメッセージは、管理ユニットの情報を更新するため要求される。
請求項2に記載のプッシュモードでは、書き込みプロセッサは、読出しプロセッサの管理ユニットに多くのデータオブジェクトが利用可能になったというメッセージを送る。同様にして、読出しプロセッサは、書き込みプロセッサに多くのデータオブジェクトが読み出されたというメッセージを送り、これらデータオブジェクトにより占められたメモリスペースは新しいデータオブジェクトを書き込むために開放される。よって、プッシュモードは、一つのメッセージだけが管理ユニットの情報を更新するために要求されるという利益を持つ。
実施例では、本発明によるデータ処理システムのプロセッサは、各個別のアクセスに対してそれ自身のセクションにあるかどうか、すなわちアクセスが許容されるかどうかを検証する。例えば、読出しプロセッサは、それ自身のセクションにあるかどうか読み出したい各データオブジェクトに対して検証してもよい。しかしながら、より好ましい実施例は、請求項4に記載されている。この実施例では、プロセッサは一度にデータオブジェクトのグループに対する検証をする能力を持つ。このようにして、一旦タスクが始まると、データの全ブロックが処理されてしまうまでもはや中断されないだろうことを保証できる。このことは、DCTのようなデータの全ブロックを一度に処理しなければならない動作に対して特に有利である。このようにして、非常に多くのステート情報がタスクの中断の間保存されなければならないことが防止される。
請求項5の実施例は、第2プロセッサが特定のタスクで継続するには不充分なデータオブジェクトを持つとき、その処理能力が他のタスクを実施するために使用できるという利益を持つ。
請求項6の実施例では、第2プロセッサが、可変長復号化、ランレングス復号化、動き補償、イメージスケーリングのようなストリーム処理タスクの範囲を実施するか又はDCT変換を実施する機能的に特別な専用のコプロセッサである。
プロセッサは、メモリの割当てられたセクションをシーケンシャルにアクセスする必要はない。好ましくは、プロセッサは、請求項7に記載の管理ユニットにより規定されたメモリ内のセクション内の位置にランダム的にアクセスできる読出し及び/又は書き込み動作を実施する。請求項8に記載の発明では、第1タスクのデータオブジェクトのグループの処理が中断されるとき、前記第1タスクのデータオブジェクトの前記グループの他の処理が、一時的に妨げられ、前記第1タスクのデータオブジェクトの前記グループの処理が中断されるとき、第2タスクのデータオブジェクトの処理が実施される
本発明のこれら及び他の特徴は、図を参照して詳細に説明される。
図2は、本発明による処理システムを示す。当該システムは、メモリ10、複数のプロセッサ11a、11b、11c及びアービタ16を含む。各プロセッサ11a、11b、11cは、計算ユニット12a、12b、12c及び管理ユニット18a、18b、18cを有する。これら3つのプロセッサ11a、11b、11cは例示として示されただけであり、実際にはいろんな数のプロセッサが用いられてよい。プロセッサ11a、11b、11cは、アドレスバス14及びデータバス13を介してメモリ10へ接続されている。プロセッサ11a、11b、11cは、アービタ16に接続され、トークンリングのような通信ネットワーク19を介して互いに結合された管理ユニット18a−cを有する同期チャネルを介して互いに接続されている。
好ましくは、プロセッサ11a、11b、11cは、ストリーム処理タスクの限られた範囲を効果的に実施するように各々特定化された専用プロセッサであろう。すなわち、各プロセッサは、データバス13を介して受信した連続するデータオブジェクトへ繰返し同じ処理動作を付与する。プロセッサ11a、11b、11cは、可変長復号化、ランレングス復号化、動き補償、イメージスケーリング又はDCT変換を実施するような種々のタスク又は機能を各々実施してもよい。また、トライメディア(TriMedia)又はMIPSプロセッサのようなプログラム可能なプロセッサも含んでもよい。
動作時、各プロセッサ11a、11b、11cは、1つ又はそれ以上のデータストリームでの動作を実施する。動作は、例えばストリームを受信して他のストリームを生成したり、新しいストリームを生成することなくストリームを受信したり、ストリームを受信することなくストリームを生成したり、又は受信ストリームを変形することを含む。プロセッサ11a、11b、11cは、これらプロセッサの中の他のプロセッサにより生成されたデータストリーム、又は当該プロセッサ自身で生成したストリームをさえ処理できる。ストリームは、メモリ10を介してプロセッサ11a、11b、11cから転送された又はプロセッサ11a、11b、11cへ転送されるデータオブジェクトの連続を有する。
データオブジェクトからのデータを読み出したり又は書き込むために、プロセッサ11a、11b、11cはストリームに割当てられたメモリ10の一部をアクセスする。
図3は、読出し、書き込み及びこれらに関連した同期動作の処理を表したものである。コプロセッサの観点から、データストリームは、アクセスの現在のポイントを持つデータの無限のテープのように見える。コプロセッサ(計算ユニット)から発せられるgetspaceコールは、図3a内の小さな矢印により示されるようにアクセスの現在のポイントに先んじたあるデータスペースへのアクセスのための許可を求める。この許可が認められたら、コプロセッサは要求されたスペース、すなわち図3bのフレーム窓内の読出し動作及び書き込み動作を、n_bytes引数により示されるような可変長データを使用して、offset引数により示されるような任意のアクセス位置で実施できる。
許可が認められない場合、コールは失敗(false)をリターンする。1つ又はそれ以上のgetspaceがコールした後で、また時には幾つかの読出し/書き込み動作の後で、コプロセッサは、データスペースのいくらかの部分で処理が終了したかどうかを決定し、putspaceコールを発する。このコールはアクセスのポイントをある数のバイト、すなわち図3dではn_bytes2前に進め、当該サイズは以前に認められたスペース(スペース)により束縛される。
図4は、論理的に連続なアドレスを持つ一連のメモリ位置を含むメモリ10の論理メモリスペース20を示す。図5は、2つのプロセッサ11aと11bとがメモリ10を介してどのようにデータオブジェクトを交換するかを示す。メモリスペース20は、異なるストリームに割当てられた副スペース21、22、23を含む。例示として、低い境界アドレスLBと高い境界アドレスHBとにより境界付けられる副スペース22が、図4に詳細に示されている。この副スペース22では、セクションA2−A1によっても示されたアドレスA2とアドレスA1との間のメモリ位置は、読出しプロセッサ11bに利用可能な、有効なデータを含む。副スペースの高い境界HBとアドレスA1との間のメモリ位置、同様にアドレスA2と副スペースの低い境界LBとの間のメモリ位置は、セクションA1−A2により示され、新しいデータを書き込むために書き込みプロセッサ11aに利用可能である。例示として、プロセッサ11bは、プロセッサ11aにより生成されたストリームへ割当てられたメモリ位置に記憶されたデータオブジェクトをアクセスするとする。
上述の例では、ストリームのためのデータは、論理的に最高のアドレスHBに到達する度論理的に最低のアドレスLBで始まり、サイクリックに一連のメモリ位置に書き込まれる。このことが、低めの境界LBと高めの境界HBとが互いに隣接している図5のメモリ副スペースの周期的表示により示されている。
管理ユニット18bは、処理されたストリームに対する有効なデータがメモリ位置22へ書き込まれてしまう前に、プロセッサ11bがメモリ位置22にアクセスしないことを保証する。同様に、管理ユニット18aは、プロセッサ11aがメモリ10の有益なデータを重ね書きしないことを保証するためにここでは使用される。図2に示される実施例では、管理ユニット18a及び18bは、リング18a、b、cの一部を形成し、ここにおいて同期信号がプロセッサ11a−cの一つから次のプロセッサへ通されるか、これらの同期信号がどの次のプロセッサ11a−cでも必要とされないときブロックされるか重ね書きされる。管理ユニット18a、18b、18cは一緒に同期チャネルを形成する。管理ユニット18aは、プロセッサ11aからプロセッサ11bへのデータオブジェクトのストリームを転送するために用いられるメモリスペースについての情報を維持する。示された実施例では、管理ユニット18aは、プロセッサ11aにより書き込まれることができるセクションA1−A2のアドレス範囲の始まりのA1を表す値A1を記憶する。そのセクションのサイズを表す値S1も記憶する。しかしながら、前記アドレス範囲は、それらの境界により示されてもよく、又は上限境界A2と値S1とにより示されてもよい。同様にして、管理ユニット18bは、プロセッサ11bに対して有効なデータを含むセクションA2−A1の始まりA2を表す値A2を記憶する。そのセクションのサイズを表す値S2も記憶する。プロセッサ11aがプロセッサ11bに対するデータを生成し始めるとき、後のプロセッサ11bに対して有効なデータはまだ利用可能ではないので、セクションA2−A1のサイズS2はゼロに初期化されるべきである。プロセッサ11aがメモリ副スペース22へのデータ書き込みを始める前に、第1命令C1(getspace)によりこのスペース内にセクションを要求する。この命令のパラメータは、クレームされているサイズnである。複数のメモリ副スペースが利用可能ならば、副スペースを識別するためのパラメータも含む。副スペースは、この副スペースを介して転送されるストリームの識別子により識別されてもよい。クレームされたサイズnがセクションに対して管理ユニット18aにより記憶されたサイズS1以下である限り、管理ユニット18aはこの要求を認める。このときプロセッサ11aは、アクセスを要求されたメモリ副スペースのセクションA1−A2のサイズnで部分A1−A2‘へデータオブジェクトを書くことができる。
要求された数nが示された数S1を超えてしまうならば、生成プロセッサ11aは示されたストリームの処理を中断する。このとき生成プロセッサ11aは生成中の他のストリームに対する処理を採用してもよいし、生成プロセッサ11aは、一緒に処理を休止してもよい。要求された数が示された数を超えたならば、生成プロセッサ11aは、後で再び新しいデータを持つメモリ位置の要求された数を示す命令を、生成プロセッサ11aが、要求された数が受信しているプロセッサ11aにより示された位置を越えない事象を検出するまで、実行するだろう。この事象の検出後、生成プロセッサ11aは処理を継続する。
同期をとるために、データストリームを生成する生成プロセッサ11a−cは、データストリームの内容が有効になった後で、その位置のデータストリームの内容が有効になるメモリ10内の位置の数の指標を送信する。この例では、プロセッサ11aがスペースmを占有するデータオブジェクトを書き込んだならば、第2プロセッサ11bにより他の処理に利用可能なデータオブジェクトを示す第2命令C2(putspace)を与える。この命令のパラメータmは、開放されたメモリ副スペース22内のセクションの対応するサイズを示す。他のパラメータがメモリ副スペースを示すために含まれてもよい。この命令を受信すると、管理ユニット18aは、利用可能なサイズS1をmだけ減少し、アドレスA1をmだけ増やす。
Figure 0004322119
ここで、
Figure 0004322119
は加算モジュロHB−LBである。
管理ユニット18aは、更にメッセージMをプロセッサ11bの管理ユニット18bへ送信する。このメッセージを受信すると、管理ユニット18bはA2−A1のサイズS2をmだけ増やす。受信プロセッサ、ここでは11bが新しいデータが必要とされるストリームの処理の段に到達するとき、新しいデータを持ったメモリ位置kの要求された数を示す命令C1(k)を送信する。命令の後、受信プロセッサ11bの計算ユニット12bは、この要求された数が生成プロセッサ11aにより示された位置を越えて達しないことを管理ユニット18bからの応答が示すならば、処理を継続する。
要求された数kが示された数S2を超えて到達するならば、受信プロセッサ11bは、示されたストリームの処理を中断する。受信プロセッサ11bは、処理している他のストリームの処理に取りかかるか、又は受信プロセッサは完全に処理を休止する。要求された数kが示された数S2を超えて到達する場合、要求された数kが生成プロセッサ11aにより示された位置A1を超えて到達しない事象が受信プロセッサ11bに記録されてしまうまで、受信プロセッサ11bは、後で再び新しいデータを持つメモリ位置の要求された数を示す命令を実行するだろう。この事象を記録すると、受信プロセッサ11bは、ストリーム処理を再び始める。
上述の例では、論理的に最高のアドレスHBに到達する度に論理的に最低のアドレスLBで始めて、ストリームに対するデータがサイクリックに一連のメモリ位置に書き込まれる。このことは、生成プロセッサ11aが受信プロセッサに追いつき、受信プロセッサによりまだ必要とされるデータを重ね書きする可能性を生じさせる。生成プロセッサ11a−cが斯様なデータを重ね書きすることを防止することを所望するとき、受信プロセッサ11a−cがメモリの位置からの内容を処理することを止めた後で、毎回もはや必要はないメモリ内のメモリ位置の数の指標を送信する。このことは、生成プロセッサ11aにより用いられる同じ命令C2(putdata)により実現できる。この命令は、もはや必要ではないメモリ位置m‘の数を含む。加えて、ストリームの識別子、及び又は一つより多いストリームが処理されるならばメモリ副スペースを含む。この命令を受信すると、管理ユニット18bはm’でサイズS2を減少させ、m‘のメモリ副スペースのサイズに対するモジュロでアドレスA2を増大させる。管理ユニット18bもまた、生成プロセッサ11aの管理ユニット18aへメッセージM’を送信する。このメッセージを受信すると、生成プロセッサ11aの管理ユニット18aはサイズS1を増大させる。
このことは、ストリームからのデータが、多数の種々のストリームに対して図4で示された現在の初期位置24a−cまで重ね書きできることを意味する。指標が、生成プロセッサ11a−cに記録される。生成プロセッサ11a−cは、生成されたストリームからメモリ内の多くの新しい位置へデータを書き込むために必要である処理の段へ到達するとき、生成プロセッサ11a−cは、新しいデータに対して必要とされるメモリ位置の要求される数を示す命令を実行する。命令の後、生成プロセッサ11a−cにより記録された指標が、受信プロセッサ11a−cにより示された位置を超えてこの要求された数が到達しないことを示すならば、生成プロセッサ11a−cは処理を続ける。
好ましくは、重ね書きされてもよい位置の数と有効な内容を持つ位置の数とが、多くの標準位置に関して示されていて、ストリーム内の多くのデータオブジェクトに関して示されているわけではない。このことは、データストリームを生成したり受信したりするプロセッサが、同じブロックサイズを持つ位置の再利用性又は有効性を示す必要がないという効果を持つ。利点は、生成プロセッサ及び受信プロセッサ11a−c各々が他のプロセッサ11a−cのブロックサイズを知ることなく設計できるということである。小さなブロックサイズで動作するプロセッサ11a−cは、大きなブロックサイズで動作するプロセッサを待つ必要はない。
メモリ位置の指標は、幾つかの態様で実施される。一つの態様は、有効である又は重ね書きされてもよい追加のメモリ位置の数を示すことである。他の解決の仕方は、最後の有効な又は重ね書きできる位置のアドレスを送信することである。
好ましくは、プロセッサ11a−cの少なくとも一つは、種々のストリームで交替的に動作できる。各受信したストリームに対して、プロセッサ11a−cはメモリ内の位置についての情報をローカルに保持し、その位置までデータは有効であり、各生成されたストリームに対して、メモリ内の位置についての情報を保持し、その位置まで新しいデータは書き込まれる。
管理ユニット18a、b、cの動作及び実施は、特別なインスタンス化がこれらの区別を作るかもしれないが、読み出しポートと書き込みポートとの間の区別を作る必要はない。管理ユニット18a、18b、18cにより実行された動作は、FIFOバッファ22のサイズ、メモリ20内の位置、メモリバウンドサイクリックFIFOに対するアドレスについてのラップアラウンド(wrap-around)メカニズム、キャッシングストラテジ、キャッシュコヒーレンス性、汎用I/Oアライメント制限、データバス幅、メモリアライメント制限、通信ネットワーク構造及びメモリオーガナイゼーションのような実施の態様を効果的に隠す。
好ましくは、管理ユニット18a−cは、フォーマットされていないシーケンスのバイトで動作する。データのストリームを通信させる書き込み器11a及び読出し器11bにより用いられる同期パケットサイズ間の相関は必要ない。データ内容の意味解釈は、コプロセッサ、すなわち計算ユニット12a、12bにまかされる。タスクは、通信している他のタスク及びこれらのタスクがマッピングされているコプロセッサ又は同じコプロセッサでマッピングされる他のタスクのような、アプリケーショングラフインデンス構造を知る必要はない。
管理ユニット18a−cの高いパフォーマンスの実施において、読出しコール、書き込みコール、getspaceコール、putspaceコールが、管理ユニット18a−cに含まれる同期ユニット及び読出し/書き込みユニットを介してパラレルに発することができる。管理ユニット18a−cの異なる部分でのコール動作は、相互のオーダー束縛を持たず、一方で管理ユニット18a−cの同一の部分でのコール動作は、コーラータスク又はコプロセッサにしたがってオーダーされなければならない。斯様な場合に対して、ファンクションコールからのリターンによるソフトウェアの実施で、アクノリッジ信号を供給することによりハードウェアの実施で、以前のコールがリターンされたとき、コプロセッサからの次のコールが起動できる。
読出しコールにおけるサイズ引数、即ちn_bytesのゼロ値が、メモリから管理ユニットのキャッシュへport_ID引数及びoffset引数により示される位置でデータのプリフェッチを実施するためにリザーブできる。斯様な動作は、管理ユニットにより実施された自動プリフェッチのために使用できる。同様に、書き込みコールのゼロ値は、自動キャッシュフラッシュが管理ユニットの責任であるけれども、キャッシュフラッシュ要求のためにリザーブできる。
オプション的に、全ての五つの動作は追加の最後のlast_ID引数を受ける。これは通常、より早めのgettaskコールからの結果値として得られる小さな正の数である。Gettaskコールで、コプロセッサ(計算ユニット)は、例えば不充分なデータオブジェクトしか利用可能でないので計算ユニットが現在のタスクで処理できない場合、その管理ユニットに新しいタスクを割当てることを要求できる。このgettaskコールの際、管理ユニットは、新しいタスクの識別子をリターンする。読出し、書き込み、putspace及びgetspace動作におけるこの引数に対するゼロ値は、タスクに特定されないがコプロセッサ制御に関係するコールに対してリザーブされる。
好ましい実施例において、データストリームと通信するためのセットアップ(set-up)は、有限サイズ(finite-size)のFIFOバッファに接続された一つの読出し器及び一つの書き込み器でのストリームのことである。斯様なストリームは、有限且つ一定のサイズを持つFIFOバッファを必要とする。サイクリックなアドレス機構が適当なFIFOの振る舞いに対して適用されるということが、メモリにおいて及びそのリニアアドレスレンジにおいて予備的に割当てられるだろう。
しかしながら、図2及び図6に基づいた他の実施例においては、一つのタスクにより作られるデータストリームは、異なる入力ポートを持つ二つ又はそれ以上の異なる消費者により消費されるべきものである。斯様な状況は、タームフォーキングにより記述できる。しかしながら、マルチタスク処理のハードウェアコプロセッサと同様にCPUで動作するソフトウェアタスクの両方に対してタスクの実行を再使用することを我々は望んでいる。これは、基本機能に対応して、固定数のポートを持つタスクを通じて実行される。アプリケーションコンフィギュレーションにより生じるフォーキングのための必要性は、管理ユニットにより解決されるべきである。
明らかにフォーキングは、ただ二つの別個の通常のストリームバッファを保持することにより、書き込み及びputspace動作全てを2回繰り返すことにより、及び2回繰り返されたgetspaceチェックの結果値でAND演算を実施することにより、管理ユニット18a−cにより実施できる。好ましくは、ダブルの書き込み帯域幅及びおそらく更なるバッファスペースを含んでコストがかかるので、これは実行されない。その代わり、好ましくは同じFIFOバッファを共有する1つの書き込み器及び二つ又はそれ以上の読出し器で実行される。
図6は、単一の書き込み器及び複数の読出し器を持つFIFOバッファの図を示す。同期機構は、BとCとが互いの束縛を持たない、例えばこれらが純粋に読出し器と仮定すると、AとCとの間の対の順の次に、AとBとの間の通常の対の順を保証しなければならない。このことは、各読出し器に対して別個に利用可能なスペースのトラックを保持することにより(AからB及びAからC)、書き込み動作を実施するコプロセッサに関連して管理ユニットで実行される。書き込み器が、ローカルgetspaceコールを実施するとき、そのn_bytes引数は、これらのスペース値の各々と比較される。これは、次のラインへの変更を示す列又は一つのエクストラのフィールドにより接続されたフォーキングのための前記ストリームテーブルにエクストラのラインを使用することにより実施される。
これは、フォーキングがほとんど使用されず、同時に二方向のみのフォーキングに限定されない、主要な場合においてほんの僅かのオーバヘッドを提供することになる。好ましくは、フォーキングは、書き込み器により実施されるのみである。読出し器は、この状況を知る必要はない。
図2及び図7に基づく他の実施例において、データストリームはテープモデルによると、三つのステーションストリームとして実現される。各ステーションは、通過するデータストリームの幾つかの更新を実施する。三つのステーションストリームのアプリケーション例は、一つの書き込み器であり、中間(intermediate)のウォッチドッグ及びファイナルの読出し器である。このような例において、第2タスクは好ましくは通過するデータを監視し、しばらく検査して多くの場合データが変形なしに通過することを許可する。相対的にはめったにないことであるが、ストリーム内の2、3の項目を変更することを決定できるだろう。これは、あるバッファから他のバッファへ全ストリーム内容をコピーすることを避けるために、プロセッサによりある地点でのバッファの更新によって効果的に達成できる。実際、このことは、ハードウェアコプロセッサが通信し、メインのCPUが、若干異なるストリームフォーマットへの適応をなすか又は単にデバッグの理由のためにハードウェアの不備を補正するようにストリームを修正するために介在するときに便利であろう。斯様なセットアップは、メモリトラフィック及びプロセッサのワークロードを低減するために、メモリの単一ストリームバッファを共有する全ての三つのプロセッサで達成できたであろう。タスクBは、全てのデータストリームを実際には読み出したり、又は書き込んだりしないだろう。
図7は、三つのステーションストリームに対する有限メモリバッファ実行を表す。この三方向バッファの適切なセマンティックスは、互いに関してA、B及びCの厳格なオーダーを維持しウィンドウが重ならないことを保証することを含む。このようにして、三方向バッファは、図4及び図5に示された二方向バッファからの拡張である。斯様な多方向のサイクリックFIFOは、上述の管理ユニットの動作によって、同様に好ましい実施例の中で説明されたputspaceメッセージで分配された実行スタイルにより、直接的にサポートされる。単一のFIFOの三つのステーションにだけ限定はされない。一つのステーションが有効なデータを消費し作るIn-place処理は、たった二つのステーションでも適用可能である。この場合、互いにデータを交換するためにin-place処理をどちらのタスクも実施するので、空きのスペースはバッファに残っていない。
図2に基づく他の実施例では、バッファへの単一のアクセスが説明される。斯様な単一アクセスバッファは、単一ポートだけを有する。この実施例では、タスク間又はプロセッサ間のデータ交換は実施されないだろう。代わりに、これはローカルな使用のための管理ユニットの標準通信動作の単なるアプリケーションである。管理ユニットのセットアップは、メモリに付けられた単一のアクセスポイントを持つ標準バッファメモリからなる。タスクは今、ローカルなスクラッチパッド(scratchpad)又はキャッシュとしてバッファを使用できる。構成上の観点から、これは、幾つかの目的及びタスク、例えばソフトウェア構成可能なメモリサイズの使用のための比較的大きなメモリの組み合わされた使用のような利点を持つことができる。とりわけ、このセットアップのタスクに特別なアルゴリズムに役立つスクラッチパッドメモリとしての使用は、マルチのタスクを行うコプロセッサでのタスク状態を記憶し、取り出すために良く適用できる。この場合、状態スワッピングのための読出し/書き込み動作を実施することは、タスク機能コード自身の一部ではなく、コプロセッサ制御コードの一部である。バッファが他のタスクと通信するために使用されないので、このバッファについてput space及びgetspace動作を実施する必要は通常ない。
図2及び図8に基づく他の実施例では、好ましい実施例による管理ユニット18a−cは更に、データ送信、すなわちコプロセッサ12とメモリ20との間の読出し動作及び書き込み動作のためのデータキャッシュを有する。管理ユニット18a−cのデータキャッシュの実施は、データバス幅のトランスペアレント変換、グローバルな相互接続すなわちデータバス13上の整列制限の解決策、グローバルな相互接続上のI/O動作の数の減少を提供する。
好ましくは、管理ユニット18a−cは、キャッシュをそれぞれ持つ別個の読出し書き込みインタフェースを有するが、これらのキャッシュはアプリケーション機能の観点から見えることはない。ここで、put space及びgetspace動作のメカニズムは、明らかにキャッシュコヒーレンスを制御するために使用される。キャッシュは、通信ネットワーク(データバス)13のグローバルな相互接続から、コプロセッサの読出し及び書き込みポートを分断する重要な役割を演じる。これらのキャッシュは、スピード、パワー及びエリアに関するシステムパフォーマンスに大きな影響を持つ。
タスクポートに認容されたストリームデータのウィンドウのアクセスは、プライベートであることを保証する。結果として、このエリアの読出し及び書き込み動作はセーブされ、第1段階では、中間イントラプロセッサ通信を必要としない。アクセスウィンドウは、サイクリックFIFOの前のものから新しいメモリスペースを得るローカルgetspaceリクエストにより拡張される。キャッシュの幾らかの部分がこのような拡張に対応するためにタグを付けられ、タスクが当該拡張内のデータを読み出すことに興味を持つならば、そのときキャッシュのこのような部分は無効化を必要とする。それから後で読出し動作がこの位置で起こるならば、キャッシュミスが起こり、新鮮な有効データがキャッシュにロードされる。管理ユニットの丹念な実施は、キャッシュミスの制裁を低減するために予備フェッチリクエストを発するようにgetspaceを使用できた。アクセスウィンドウは、サイクリックFIFOの後継器へ新しいメモリスペースを残すローカルputspaceリクエストにより縮む。このような縮みの幾つかの部分がたまたまキャッシュ内にあり、その部分が書き込まれてしまったならば、そのときキャッシュのそのような部分は、他のプロセッサへ利用可能なローカルデータを作るために、フラッシュされる必要がある。Putspaceメッセージを他のコプロセッサへ送り出すことは、キャッシュのフラッシュが完了し、メモリ位置の安全なオーダーが保証できるまで延期されなければならない。
明瞭なキャッシュコヒーレンス制御のためのローカルなgetspace及びputspace事象だけを使用することは、バススヌーピングのような他の一般的キャッシュコヒーレントメカニズムと比較して大きなシステムアーキテクチャにおける実施を相対的に容易にする。また、例えばキャッシュライトスルーアーキテクチャのような通信オーバヘッドを提供しない。
getspace及びputspace動作は、バイトグラニュラリティで動作するように規定される。キャッシュの主要な責任は、コプロセッサに対するデータ転送整列制限及びグローバルな相互接続データ転送サイズを隠すことである。好ましくは、データ転送サイズは、同じ整列で16バイトに設定され、一方2バイトと同じ小ささの同期のとれたデータ量は動的に用いられてもよい。したがって、同一のメモリワード又は転送されたユニットは、異なるコプロセッサのキャッシュに同時に記憶されることができ、無効な情報がバイトグラニュラリティで各キャッシュで扱われる。
図8は、図2に示された処理システムでの使用のための管理ユニット18及びプロセッサ12の組合せを示す。詳細に示された管理ユニット18は、制御器181、ストリーム情報を有する第1テーブル(ストリームテーブル)182、及びタスク情報を有する第2テーブル(タスクテーブル)183を有する。管理ユニット18はまた、プロセッサ12のためのキャッシュ184を有する。同期インタフェース18におけるキャッシュ184の存在は簡便なデザインのキャッシュを考慮し、キャッシュ制御を単純にしている。加えて、指令キャッシュのような一つ又はそれ以上のキャッシュがプロセッサ12にあってもよい。
制御器181は、タイプC1、C2の命令を受けるために対応するプロセッサ、すなわちプロセッサ12aと命令バスIinを介して結合される。フィードバックラインFBは、例えばバッファスペースのためのリクエストを認容してもらうために、前記プロセッサへのフィードバックを与えるのに役立つ。前記制御器は、リング内の先行する管理ユニットからのメッセージを受けるためにメッセージ入力ラインMinを持ち、また、後続の管理ユニットへメッセージを送るためにメッセージ出力ラインMoutを持つ。管理ユニットがその後続の管理ユニットへ送ってもよいメッセージの例は、バッファメモリの一部が開放されたということである。制御器181は、ストリームテーブル182のアドレス及びタスクテーブル183のアドレスを選択するためにアドレスバスSTA及びTTAをそれぞれ持つ。更に、これらのテーブルからの読出し、テーブルへの書き込みのためにデータバスSTD及びTTDをそれぞれ持つ。
管理ユニット18は、他のプロセッサ(図3には示されていない)からの同期情報を送受信し、少なくとも受信した情報を記憶する。管理ユニット18は更に、ローカルにプロセッサ12においてデータストリームからのデータの写しを記憶するのに役立つキャッシュメモリ184を有する。キャッシュメモリ184は、ローカルアドレスバス185及びローカルデータバス186を介してプロセッサ12と結合されている。原則として、プロセッサ12は、図1の処理システムのメモリ10での位置への参照となるアドレスでもってキャッシュメモリ184をアドレスする。キャッシュメモリ184がアドレスされたデータの内容の有効な写しを含むならば、プロセッサ12は前記写しを含むキャッシュメモリ184での位置をアクセスし、メモリ10(図1)はアクセスされない。好ましくは、プロセッサ12は、あるタイプの動作、例えばMPEGデコーディングを非常に効率よく実施するように設計された特別なプロセッサコアである。システム内の種々のプロセッサのプロセッサコアは、種々の特別な部分を持つ。同期インタフェース18及びそのキャッシュメモリ184は、全ての種々のプロセッサに対して同一でもよく、ただキャッシュメモリサイズがプロセッサ12の要求に応じておそらく適応するようになっているだろう。
好ましくは、管理ユニット18は、メモリ10からキャッシュメモリ184へプリフェッチすること及び/又はそのキャッシュメモリ184からメモリ10へ書き戻すことを管理するのに使用される。管理ユニット18は、メモリ10があるメモリ位置までの有効なデータを含んでいるという信号を受信するとき、好ましくは管理ユニット18の制御器181はその位置までメモリ10からのデータをプリフェッチするようにキャッシュメモリ184に通知する。管理ユニット18の制御器181は、データがプリフェッチされたときを検出する。プロセッサ12が新しいデータをアクセスすることを要求するならば、管理ユニット18は、利用可能な位置であるという信号を管理ユニット18が受信し、キャッシュメモリ184がこれらの位置に対するデータをプリフェッチした後でのみ、新しい位置からのデータを読み出すことをプロセッサ12に許可するだろう。同様に、プロセッサ12がメモリのポイントまでの位置への書き込みを終了したことを管理ユニット18へ通知するとき、管理ユニット18は、キャッシュメモリ184が通知されたポイントまでデータをメモリ10へ書き戻させる。管理ユニット18は、書き戻しが終了するときを検出し、書き戻しが終了するときにだけ同期メッセージネットワークを介して終了した位置の数についての情報を送信する。
このように、データオブジェクトのストリームに対するメモリへのアクセスの予測可能性は、キャッシュ管理を改善することに用いられる。
同様に、管理ユニット18は、プロセッサ12がメモリの位置までストリーム読み出しを終了したという、プロセッサコア12からの信号に対して、キャッシュの交換に先ず利用可能なものとしてその位置までのメモリ位置に対して使用されるキャッシュ位置をマーキングすることにより、応答する。プロセッサ12は、メモリの位置までストリームに対するデータを書き込もうとすることを管理ユニット18へ通知するとき、管理ユニット18は、関わったメモリ位置へマッピングするキャッシュメモリ位置を割当てることにより応答する。
示されている実施例では、同期インタフェース間の同期メッセージネットワークは、トークンリングネットワークである。このことは、相対的に少ない数の接続でコンパイルできるという利点を持つ。更に、トークンリング自体の構造はスケーラブルなので、ノードがインタフェースデザイン上ほとんど影響を及ぼすことなく付加又は削除できる。しかしながら、他の実施例では、通信ネットワークは、同期の待ち時間を最小にするために、例えばバスをベースにしたネットワーク又はスイッチされるマトリクスネットワークのように異なる態様で実施されてもよい。
実施例においては、第1テーブル182はプロセッサにより処理される複数のストリームに対する以下の情報を有する:データが書き込まれるか読み出されるべきメモリ10の位置をポイントするアドレス、通信しているプロセッサ間のデータのストリームをバッファするために利用可能なメモリ内のメモリセクションのサイズを示すバリューサイズ、管理ユニットに結合されたプロセッサへ結合されたプロセッサに利用可能なそのセクションの部分のサイズを示すバリュースペース、このストリームを読出し又は書き込むプロセッサ及びストリームを識別するグローバル識別子gsid。
実施例では、第2テーブル183は、実施されるタスクについての下記の情報を有する:前記タスクのために処理される一つ又はそれ以上のストリームの識別子、各タスクに対して利用可能なバジェット、タスクがイネーブル又はディスイネーブルであることを示すタスクイネーブルフラグ、タスクが走る用意をしているか否かを示すタスクランニングフラグである。好ましくは、テーブル183は各タスクに対して、ストリームの、例えばタスクの第1ストリームの一つの識別子だけを有する。好ましくは、識別子はストリームテーブルへのインデックスである。管理ユニット18は、前記インデックス及びポート番号pを加えることにより、他のストリームに対して対応するidを容易に計算する。ポート番号は、管理ユニットに結合されたプロセッサにより与えられる命令のパラメータとして通過できる。
図9は、三つの異なる状況においてキャッシュのデータの有効性の管理及び読出しを示す。この図において、各々の状況は、読出しリクエストが空のキャッシュ184で起こり、キャッシュミスとなるとする。概略的に図の左半分では、プロセッサ11のキャッシュ184及び計算ユニット12が示されている。右半分は、概略的に読出しリクエストRが起こったときに関わるキャッシュの部分184を示す。キャッシュのためのデータがフェッチされるメモリ10の部分も示される。
図9Aは、認められたウィンドウW内に完全に含まれるワードである、キャッシュ184内のメモリ転送ユニットMTUをフェッチすることを導く読出しリクエストRを示す。明らかにこの全体のワードMTUはメモリで有効であり、特別な有効(無効)測定が要求されない。
図9Bでは、読出しリクエストRは、コプロセッサにより得られたスペースWを部分的に越えて延在し、それ以外は利用可能なものとして管理ユニット18内でローカルに管理される、ワードMTUがメモリ10からキャッシュ184へフェッチされるという結果を持つ。Getspace引数だけが使用されるならば、このワードMTUは部分的に無効であると宣言されるようになるだろうし、getspaceウィンドウWが一旦拡張されると、再読み出しされる必要があるだろう。しかしながら、利用可能なスペースW2の実際の値がチェックされるならば、全ワードが有効としてマークできる。
図9Cでは、読出しリクエストRは、メモリ10からキャッシュ184へフェッチされるワードMTUが、セーブされるべきと知られていない、幾つかの他のプロセッサにより依然書き込まれるようになるかもしれないスペースSへ部分的に拡張されるという効果を持っている。キャッシュ184へロードされるとき、無効なものとしてワードMTUの対応するエリアS‘をマークすることは、必須である。ワードのこの部分S’が後でアクセスされるならば、ワードMTUは再読み出しされる必要がある。
更に、信号読出しリクエスト(図9CのR‘参照)は1より多いメモリワードをカバーできる。なぜならば、2つの連続するワード間の境界を交差するからである。これは、コプロセッサ12の読出しインタフェースがメモリワードより広い場合も、起こるであろう。図9A−Cは、要求されたバッファスペースWと比較して相対的に大きなメモリワードを示す。実際、要求されたウィンドウWは、ときにはかなり大きいが、極端な場合、全サイクリックな通信バッファは、単一のメモリワードと同じくらい小さくできるだろう。
キャッシュコヒーレンス制御において、getspace,読出し動作及び(無効)有効マーク間と同様にputspace、書き込み動作、ダーティな(汚染された)マーク及びキャッシュフラッシュ間の堅い関係がある。’Kahn’スタイルのアプリケーションにおいてポートは、専用の方向、すなわち入力又は出力の何れかを持つ。好ましくは、幾つかの実施発行を簡略化する別個の読出しキャッシュ及び書き込みキャッシュが用いられる。多くのストリームに対して、コプロセッサはサイクリックなアドレススペースを通じてリニアに働き、読出しキャッシュはオプション的にプリフェッチをサポートし、書き込みキャッシュはオプション的にプリフラッシュをサポートし、次のワードへの二つの読出しアクセス動き内で、以前のワードのキャッシュ位置が期待される将来の使用に利用できる。読出しデータパス及び書き込みデータパスの別個の実施が、例えばパイプライン形式のプロセッサの実施で、パラレルに発生するコプロセッサからの読出しリクエスト及び書き込みリクエストを更に容易にサポートする。
また、コプロセッサはバイトグラニュアリティでデータを書き込み、キャッシュは当該キャッシュ内でバイト当りのダーティビットを管理する。putspaceの際に、キャッシュのリクエストが、このリクエストにより示されたアドレス範囲で重なるキャッシュから共有メモリへのワードをフラッシュする。アクセスウィンドウの外のバイト位置でメモリが決して書き込まれないことを保証する、バス書き込みリクエストにおける書き込みマスクのために、ダーティビットが使用できる。
図1は、アプリケーションを従来のプロセッサへマッピングしている図である。 図2は、ストリームに基づいた処理システムのアーキテクチャの概略的ブロック図である。 図3は、図2のシステムにおけるI/O動作及び同期動作を示す。 図4は、共有メモリの概略図である。 図5は、図4のメモリを使用する図2の書く管理ユニットにおけるローカルスペース値を更新する仕組みを示す。 図6は、複数の読出し器と単一の書き込み器を持つFIFOバッファの概略図である。 図7は、3つのステーションストリームに対する有限メモリバッファの実行を示す。 図8は、処理システムの一部を形成するプロセッサを詳細に示す。 図9Aは、キャッシュにおけるデータの有効性を読み出して管理する説明図の一つである。 図9Bは、キャッシュにおけるデータの有効性を読み出して管理する説明図の一つである。 図9Cは、キャッシュにおけるデータの有効性を読み出して管理する説明図の一つである。

Claims (10)

  1. メモリと、
    データオブジェクトのストリームを処理する、当該メモリに接続された少なくとも第1及び第2プロセッサであって、前記第1プロセッサが前記メモリ内の論理的に連続する位置に前記データオブジェクトを記憶することにより前記ストリームからの連続するデータオブジェクトを前記第2プロセッサへ送り、前記各プロセッサは管理ユニット及び計算ユニットを有し、前記管理ユニットは、前記プロセッサがデータストリームを相互に伝達するために用いるメモリの分散使用を管理し、
    前記第1プロセッサの前記管理ユニットは、他のプロセッサによる読み出しのためデータオブジェクトを記憶するために、空いている前記メモリのセクションを規定する情報を維持し、
    前記第2プロセッサの前記管理ユニットは、前記データオブジェクトに対して前記第1プロセッサのデータの書き込みが完了した前記メモリのセクションを規定する情報を維持する
    該第1及び第2プロセッサと、
    前記管理ユニットどうしを接続するプロセッサ同期チャネルと
    を有するデータ処理システムであって、
    前記管理ユニットの各々が他のプロセッサの前記管理ユニット内の情報を更新するために前記プロセッサ同期チャネルを介して前記他のプロセッサの前記管理ユニットへメッセージを通知し、前記プロセッサの各々はアクセスする必要がある位置が当該プロセッサの管理ユニットにより規定された前記セクションの外にあるとき、データオブジェクトの前記ストリームを処理することを停止する、データ処理システム。
  2. 前記第1プロセッサの前記管理ユニットが前記メモリ内のある量のデータオブジェクトを利用可能にするメッセージを送り、前記第2プロセッサの前記管理ユニットがある量のデータオブジェクトをもはやアクセスする必要がないというメッセージを送ることを特徴とする、請求項1に記載のデータ処理システム。
  3. 前記第1プロセッサの前記管理ユニットが、データオブジェクトを書き込むためのメモリの量を要求するメッセージを送り、前記第2プロセッサの前記管理ユニットが新しいデータを含むメモリの量を要求するメッセージを送ることを特徴とする、請求項1に記載のデータ処理システム。
  4. 第1プロセッサの前記計算ユニットは、ある量のメモリが新しいデータオブジェクトを書くために当該プロセッサのセクションで利用可能かどうかを示すための命令を当該プロセッサの管理ユニットへ発し、第2プロセッサの前記計算ユニットは、ある量のデータオブジェクトが前記第2プロセッサのセクションに利用可能かどうかを示すための命令を当該プロセッサの管理ユニットへ発することを特徴とする、請求項2に記載のデータ処理システム。
  5. 前記第2プロセッサが、マルチタスクプロセッサであり、少なくとも第1及び第2タスクのインターリーブ処理ができ、前記少なくとも第1及び第2タスクはデータオブジェクトのストリームを処理する、請求項1に記載のデータ処理システム。
  6. 前記第2プロセッサは、ストリーム処理タスクのある範囲を処理するために機能的に特定した専用コプロセッサである、請求項1に記載のデータ処理システム。
  7. 前記プロセッサは、当該プロセッサの管理ユニットにより規定された前記メモリの前記セクション内の位置にランダムにアクセスできる読出し及び/又は書き込み動作を実施する、請求項1に記載のデータ処理システム。
  8. 第1タスクのデータオブジェクトのグループの処理が中断されるとき、前記第1タスクのデータオブジェクトの前記グループの他の処理が、一時的に妨げられ、前記第1タスクのデータオブジェクトの前記グループの処理が中断されるとき、第2タスクのデータオブジェクトの処理が実施される、請求項5に記載のデータ処理システム。
  9. 計算ユニットからのスクラッチパッドのデータが前記メモリに一時的に記憶される、請求項1に記載のデータ処理システム。
  10. 前記第1プロセッサの前記管理ユニットは、前記第1プロセッサのためのキャッシュを備え、および/または、
    前記第2プロセッサの前記管理ユニットは、前記第2プロセッサのためのキャッシュを備えることを特徴とする、
    請求項1〜のいずれか1項に記載のデータ処理システム。
JP2003553408A 2001-12-14 2002-12-05 データ処理システム Expired - Fee Related JP4322119B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01204886 2001-12-14
PCT/IB2002/005173 WO2003052587A2 (en) 2001-12-14 2002-12-05 Data processing system

Publications (2)

Publication Number Publication Date
JP2005513611A JP2005513611A (ja) 2005-05-12
JP4322119B2 true JP4322119B2 (ja) 2009-08-26

Family

ID=8181433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003553408A Expired - Fee Related JP4322119B2 (ja) 2001-12-14 2002-12-05 データ処理システム

Country Status (8)

Country Link
US (1) US7356670B2 (ja)
EP (1) EP1459178B1 (ja)
JP (1) JP4322119B2 (ja)
CN (1) CN1311348C (ja)
AT (1) ATE388438T1 (ja)
AU (1) AU2002351136A1 (ja)
DE (1) DE60225473T2 (ja)
WO (1) WO2003052587A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1398786B1 (en) * 2002-09-12 2010-04-07 STMicroelectronics Asia Pacific Pte Ltd. Pseudo bidimensional randomly accessible memory
US20060050155A1 (en) * 2004-09-02 2006-03-09 Ing Stephen S Video camera sharing
US7484131B2 (en) * 2005-09-13 2009-01-27 International Business Machines Corporation System and method for recovering from a hang condition in a data processing system
US8130841B2 (en) * 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
CN100395731C (zh) * 2006-02-23 2008-06-18 华为技术有限公司 处理器及其数据操作方法
JP2007241612A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd マルチマスタシステム
CN101479704B (zh) * 2006-03-27 2013-09-04 相干逻辑公司 为多处理器系统设计程序
JP4304676B2 (ja) * 2006-10-31 2009-07-29 日本電気株式会社 データ転送装置、データ転送方法、及びコンピュータ装置
EP1956484B1 (en) * 2007-02-07 2011-10-19 Robert Bosch Gmbh Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory
JP4903092B2 (ja) 2007-07-05 2012-03-21 株式会社リコー 画像処理装置、画像処理制御方法、及び画像処理制御プログラム
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US7873701B2 (en) * 2007-11-27 2011-01-18 International Business Machines Corporation Network on chip with partitions
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8555292B2 (en) * 2008-06-27 2013-10-08 Microsoft Corporation Synchronizing communication over shared memory
US8019873B2 (en) * 2008-09-30 2011-09-13 Microsoft Corporation Mesh platform utility computing portal
EP2526494B1 (en) 2010-01-21 2020-01-15 SVIRAL, Inc. A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
CN103154925B (zh) 2010-10-15 2016-08-24 相干逻辑公司 多处理器系统中的通信禁用
JP6222079B2 (ja) * 2012-02-28 2017-11-01 日本電気株式会社 計算機システム、その処理方法、及びプログラム
CN108241484B (zh) * 2016-12-26 2021-10-15 上海寒武纪信息科技有限公司 基于高带宽存储器的神经网络计算装置和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
JP2992394B2 (ja) * 1992-01-21 1999-12-20 株式会社日立製作所 マルチプロセッサシステム
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5568614A (en) * 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
JPH08241186A (ja) * 1995-03-07 1996-09-17 Fujitsu Ltd バッファメモリ管理ユニット及びバッファメモリ管理方法
US5832262A (en) * 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
DE69825710T2 (de) * 1997-11-28 2005-07-14 Matsushita Electric Industrial Co., Ltd., Kadoma Audio-Video Dekodierungssystem

Also Published As

Publication number Publication date
DE60225473D1 (de) 2008-04-17
EP1459178B1 (en) 2008-03-05
EP1459178A2 (en) 2004-09-22
US20050183091A1 (en) 2005-08-18
WO2003052587A2 (en) 2003-06-26
WO2003052587A3 (en) 2004-03-25
AU2002351136A1 (en) 2003-06-30
ATE388438T1 (de) 2008-03-15
AU2002351136A8 (en) 2003-06-30
JP2005513611A (ja) 2005-05-12
DE60225473T2 (de) 2009-03-26
US7356670B2 (en) 2008-04-08
CN1605066A (zh) 2005-04-06
CN1311348C (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
JP4322119B2 (ja) データ処理システム
JP2005521124A (ja) データ処理システム
US6526481B1 (en) Adaptive cache coherence protocols
CN101770397B (zh) 扩展高速缓存一致性协议以支持本地缓冲的数据的设备、处理器、系统和方法
US8578097B2 (en) Scatter-gather intelligent memory architecture for unstructured streaming data on multiprocessor systems
US8205067B2 (en) Context switching and synchronization
US7784037B2 (en) Compiler implemented software cache method in which non-aliased explicitly fetched data are excluded
US20120284485A1 (en) Operating system virtual memory management for hardware transactional memory
KR100266314B1 (ko) 다중프로세서의 코히어런스 오버헤드 감소를 위한 자기-무효화 장치 및 방법
KR100960413B1 (ko) 데이터 처리 시스템, 통신 수단 및 데이터 처리 방법
US8930636B2 (en) Relaxed coherency between different caches
US20100131720A1 (en) Management of ownership control and data movement in shared-memory systems
CN1470019A (zh) 用于在一个分布式存储器、高速缓存相干的多处理器系统中把有序的输入/输出事务流水线处理到相干存储器的方法和装置
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
KR20050116810A (ko) 데이터 처리 시스템, 프리패치 방법 및 반도체 수단
JP2000047887A (ja) 投機的マルチスレッド処理方法および投機的マルチスレッド処理装置
US20120151153A1 (en) Programmable Controller
JP2005528671A (ja) 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム
JP2000132456A (ja) 並列計算機のキャッシュメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051202

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080122

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090428

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: 20090526

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090602

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: 20120612

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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