JP2005513610A - 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段 - Google Patents

複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段 Download PDF

Info

Publication number
JP2005513610A
JP2005513610A JP2003553407A JP2003553407A JP2005513610A JP 2005513610 A JP2005513610 A JP 2005513610A JP 2003553407 A JP2003553407 A JP 2003553407A JP 2003553407 A JP2003553407 A JP 2003553407A JP 2005513610 A JP2005513610 A JP 2005513610A
Authority
JP
Japan
Prior art keywords
processor
communication
communication means
data
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003553407A
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 JP2005513610A publication Critical patent/JP2005513610A/ja
Pending 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Advance Control (AREA)

Abstract

本発明は、データ処理システムにおいて、各プロセッサ毎に通信手段を導入することにより、通信ハードウェア、例えばバスおよびメモリと、演算ハードウェア、例えばプロセッサとを効果的に分離するという考えに基づいている。このような分離を導入することにより、プロセッサは、通信手段が各プロセッサのための通信サポートを行なっている間、その特定の機能のタスクを行なうことに集中することができる。したがって、データ処理システムには、演算層と、通信サポート層と、通信ネットワーク層とが設けられている。演算層は、データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを備えている。第1のプロセッサは、多くのデータオブジェクトを1つのストリームから第2のプロセッサへと送り、その後、第2のプロセッサは、データオブジェクトを処理することができる。通信ネットワーク層は、メモリと、第1のプロセッサおよび第2のプロセッサをメモリに接続するための通信ネットワークとを有している。通信サポート層は、演算層と通信ネットワーク層との間に設けられ、演算層の各第2のプロセッサ毎に1つの通信手段を備えている。第2のプロセッサのそれぞれの通信手段は、通信ネットワーク層の通信ネットワークを介した前記第2のプロセッサとメモリとの間の通信を制御する。

Description

本発明は、複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムの通信手段に関する。
高性能のための異種マルチプロセッサアーキテクチャ、例えば高精細度MPEGデコーディングのためのデータ依存媒体処理は知られている。一方向のデータストリームによってのみ情報を交換する一組の同時実行タスクとして媒体処理アプリケーションを指定することができる。G.Kahnは、スエーデンのストックホルムで1974年8月5日から10日に行なわれたIFIP会議74の議事録「パラレルプログラミングのための簡単な言語のセマンティック」(北オランダ社、1974、471頁から475頁)で、既にそのようなアプリケーションの形式モデルを1974年に導入し、その後、1977年、情報処理77、B.Gilchhirst(Ed.)、「パラレルプログラミングのコルーチンおよびネットワーク」(北オランダ社、1977、993頁から998頁)で、KahnおよびMacQueenによって動作説明がなされた。この形式モデルは現在、Kahn Process Networkと、一般に呼ばれている。
アプリケーションは、同時に実行可能な一組のタスクとして知られている。一方向のデータストリームによりタスク間で情報を変更できるだけである。タスクは、所定のデータストリームに関する読み取りおよび書き込み処理により、確定的にのみ通信しなければならない。データストリームは、FIFO動作に基づいてバッファリングされる。バッファリングにより、1つのストリームで通信する2つのタスクは、個々の読み取りプロセスまたは書き込みプロセスに関して同期する必要がない。
ストリーム処理においては、異なるプロセッサにより、データストリームに関して連続的に操作が行なわれる。例えば、第1のストリームは、8×8ピクセルブロックのDCT(離散コサイン変換)係数のブロックの第2のストリームを形成するために第1のプロセッサによって処理される画像のピクセル値から成っていても良い。第2のプロセッサは、各DCT係数ブロック毎に選択され且つ圧縮された係数のブロックのストリームを形成するために、DCT係数のブロックを処理しても良い。
図1は、従来から周知のプロセッサに対するアプリケーションのマッピングの図を示している。データストリーム処理を実現するために、多数のプロセッサが設けられており、各プロセッサは、データオブジェクトストリームから次のデータオブジェクトからのデータを使用する度に、および/または、そのようなストリーム内の次のデータオブジェクトを形成する度に、特定の操作を繰り返して行なうことができる。ストリームが一方のプロセッサから他方のプロセッサへと送られ、これにより、第1のプロセッサによって形成されたストリームを第2のプロセッサ等により処理することができる。データを第1のプロセッサから第2のプロセッサへと送る1つの機構は、第1のプロセッサによって形成されたデータブロックをメモリ内に書き込むことによって成される。
ネットワーク内のデータストリームはバッファリングされる。各バッファは、たった1つのライターおよび1または複数のリーダを伴うFIFOとして実現される。このバッファリングにより、ライターおよびリーダは、個々の読み取り動作および書き込み動作をチャンネル上で互いに同期させる必要がなくなる。利用できるデータが不十分なチャンネルからの読み取りにより、読み取りタスクが行き詰まる。プロセッサは、単に低度にプログラム可能な専用のハードウェア機能ユニットであっても良い。全てのプロセッサは、並行に実行するとともに、それら自身の制御スレッドを実行する。同時に、これらのプロセッサは、各タスクが1つのプロセッサに対してマッピングされるKahn型アプリケーションを実行する。プロセッサはマルチタスクを可能にする。すなわち、複数のKahnタスクを1つのプロセッサ上にマッピングすることができる。
したがって、本発明の目的は、Kahn型データ処理システムの動作を向上させることである。
この目的は、請求項1に係るデータ処理システムおよび、請求項24に係るデータ処理方法によって解決される。
本発明は、データ処理システムにおいて、各プロセッサ毎に通信手段を導入することにより、通信ハードウェア、例えばバスおよびメモリと、演算ハードウェア、例えばプロセッサとを効果的に分離するという考えに基づいている。このような分離を導入することにより、プロセッサは、通信手段が各プロセッサのための通信サポートを行なっている間、その特定の機能のタスクを行なうことに集中することができる。
したがって、データ処理システムには、演算層と、通信サポート層と、通信ネットワーク層とが設けられている。演算層は、データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを備えている。第1のプロセッサは、多くのデータオブジェクトを1つのストリームから第2のプロセッサへと送り、その後、第2のプロセッサは、データオブジェクトを処理することができる。通信ネットワーク層は、メモリと、第1のプロセッサおよび第2のプロセッサを前記メモリに接続するための通信ネットワークとを有している。通信サポート層は、演算層と通信ネットワーク層との間に設けられ、演算層の各第2のプロセッサ毎に1つの通信手段を備えている。第2のプロセッサのそれぞれの通信手段は、通信ネットワーク層内の通信ネットワークを介した第2のプロセッサとメモリとの間の通信を制御する。
第2のプロセッサのうちの1つと通信ネットワーク層との間の通信手段の導入は、通信実施態様およびメモリ実施態様の抽出を行なうことにより、明確に規定されたシステムレベル抽出層を与える。また、局所的な義務を伴う分散組織が実現されることにより、システムの拡張性が高まる。
本発明の更なる実施形態において、通信手段は、通信ネットワーク層のメモリからの関連する第2のプロセッサの読み取りおよびメモリ内への関連する第2のプロセッサの書き込みを可能にする読み取り/書き込みユニットと、関連する第2のプロセッサの読み取り/書き込みの同期をとり、および/または、メモリアクセスのプロセッサ間同期を行なう同期ユニットと、および/または、付加されたプロセッサに関連するタスクのスケジュールを組んで、第2のプロセッサによって扱われる一組のタスクを管理しおよび/またはタスク間通信チャンネルを管理するタスクスケジューリングユニットとを備えている。したがって、別個のユニットを設けることにより、通信手段によって、読み取り/書き込み、読み取り/書き込みの同期、タスク切換えを独立に制御することができ、大きな自由度をもって異なるアプリケーションを実施することができる。
本発明の更なる実施形態において、通信ユニットは、複数の流入ストリームおよび流出ストリームを扱うことができ、および/または、タスク毎に複数のストリームを扱うことができる。これは、更なる処理のために、第2のプロセッサによって処理される1つのタスクによって形成されるデータストリームを幾つかの他のタスクへと転送でき、あるいは、その逆を行なうことができるというポジティブな効果をもたらす。
本発明の他の実施形態において、通信手段は、同じ機能を実施して、付加されたプロセッサとは関係なく、付加された第2のプロセッサとメモリとの間の通信を制御することができる。したがって、主に、第2のプロセッサの構成の強い影響を避ける通信手段によって実施されるその特定の機能に関して、通信手段の設計を最適化することができる。
本発明の更なる実施形態において、第2のプロセッサとこれらに関連する通信手段との間の通信がマスター/スレーブ通信であり、第2のプロセッサがマスターとして機能する。
本発明の更なる実施形態において、通信サポート層の通信手段は、関連する第2のプロセッサへと向かう適合可能な第1のタスクレベルインタフェースと、通信ネットワークおよびメモリへと向かう第2のシステムレベルインタフェースとを備えている。この場合、第1および第2のインタフェースは、同時に或いは非同時に動作する。適合可能な第1のタスクレベルインタフェースを設けると、システムアーキテクチャ全体で通信手段を簡単に再利用できるとともに、特定の第2のプロセッサのための特定のアプリケーションにおける選定およびパラメータ化が可能になる。
本発明の更なる実施形態において、第2のプロセッサのうちの少なくとも1つのプロセッサがプログラム可能であり、第2のプロセッサのうちの少なくとも1つのプロセッサの通信手段の第1のタスクレベルインタフェースが少なくとも部分的にプログラム可能であり、通信手段の機能の一部がプログラム可能である。
また、本発明は、データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを備え、データオブジェクトをデータオブジェクトのストリームから第2のプロセッサへと送るために第1のプロセッサが設けられ、データオブジェクトを記憶して検索するための少なくとも1つのメモリと、各第2のプロセッサ毎に設けられた1つの通信手段とを備えたデータ処理システムでデータを処理する方法であって、第1および前記第2のプロセッサへの共有アクセスが与えられる方法において、第2のプロセッサのそれぞれの通信手段が、第2のプロセッサとメモリとの間の通信を制御するステップを含んでいる方法に関する。
更に、本発明は、データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを有する演算層であって、データオブジェクトをデータオブジェクトのストリームから第2のプロセッサへと送るために第1のプロセッサが設けられている演算層と、通信ネットワークとメモリとを有する通信ネットワーク層と、演算層と通信ネットワーク層との間に設けられた通信サポート層とを備えたデータ処理システムの通信手段に関する。通信手段は、第2のプロセッサと通信ネットワークとの間で動作可能に実施されるようになっており、第2のプロセッサに関連付けられるとともに、通信ネットワーク層の通信ネットワークを介した第2のプロセッサとメモリとの間の通信を制御する。
本発明の更なる実施形態は、従属請求項に記載されている。
図面を参照しながら、本発明のこれらの態様および他の態様について詳細に説明する。
図2は、データオブジェクトのストリームを処理するための本発明の好ましい実施形態に係る処理システムを示している。このシステムは、異なる層、すなわち、演算層1と、通信サポート層2と、通信ネットワーク層3とに分割することができる。演算層1は、CPU11と、2つのプロセッサ12a、12bとを有している。これは、単なる一例であり、これ以上の数のプロセッサがシステム中に含まれていても良いことは言うまでもない。通信サポート層2は、CPU11に対応付けられたシェル21と、プロセッサ12a、12bに対応付けられたシェル22a、22bとをそれぞれ備えている。通信ネットワーク層3は、通信ネットワーク31とメモリ32とを備えている。
プロセッサ12a、12bは、それぞれが限られた範囲のストリーム処理を行なうように専門化された専用のプロセッサであることが好ましい。各プロセッサは、ストリームの連続するデータオブジェクトに対して同じ処理操作を繰り返して適用するべく設けられている。プロセッサ12a、12bはそれぞれ、異なるタスクまたは機能、例えば可変長デコーディング、ランレングスデコーディング、動き補償、画像スケーリングを実行しても良く、あるいは、DCT変換を実行しても良い。各プロセッサ12a、12bは、動作時、1または複数のデータストリーム上で操作を実行する。操作は、例えば、ストリームの受信、他のストリームの形成、または、新たなストリームを形成することなくストリームを受信すること、あるいは、ストリームを受信することなくストリームを形成すること、または、受信したストリームを変更すること、を含んでいても良い。プロセッサ12a、12bは、他のプロセッサ12b、12aまたはCPU11によって形成されたデータストリームを処理することができ、あるいは、それ自身で形成したストリームであっても処理することができる。ストリームは、メモリ32を介してプロセッサ12a、12b間で転送される一連のデータオブジェクトを含んでいる。
シェル22a、22bは、通信層である通信ネットワーク層へと向かう第1のインタフェースを備えている。この層は、全てのシェルにおいて一様であり、すなわち包括的である。また、シェル22a、22bは、シェル22a、22bがそれぞれ対応付けられたプロセッサ12a、12bへと向かう第2のインタフェースを備えている。第2のインタフェースは、タスクレベルインタフェースであり、プロセッサ12a、12bの特定の要求を扱うことができるように、対応するプロセッサ12a、12bに向けてカスタマイズされる。したがって、シェル22a、22bは、プロセッサ固有のインタフェースを第2のインタフェースとして有しているが、シェルの全体のアーキテクチャは、全てのプロセッサにおいて包括的であり且つ一様である。これにより、システムアーキテクチャ全体においてシェルの再利用が容易になるとともに、特定のアプリケーションにおける選定およびパラメータ化が可能になる。
シェル22a、22bは、データ伝送用の読み取り/書き込みユニットと、同期ユニットと、タスク切換えユニットとを備えている。これらの3つのユニットは、マスター/スレーブを基本として、関連するプロセッサと通信を行なう。この場合、プロセッサがマスターとして機能する。したがって、3つの各ユニットは、プロセッサからの要求によって初期化される。プロセッサと3つのユニットとの間の通信は、引数値を渡し且つ要求された値を待って戻すために、要求−応答ハンドシェイク機構によって行なわれることが好ましい。したがって、通信はブロック化しており、すなわち、制御の各スレッドはその終了を待つ。
読み取り/書き込みユニットは、2つの異なる操作、すなわち、プロセッサ12a、12bがメモリからデータオブジェクトを読み取ることができるようにする読み取り操作と、プロセッサ12a、12bがメモリにデータオブジェクトを書き込むことができるようにする書き込み操作とを実行することが好ましい。各タスクは、データストリームのための添付ポイントに対応する所定の一組のポートを有している。これらの操作における引数は、ポート「port_id」、読み取り/書き込みが行なわれるべきオフセット「offset」、データオブジェクトの可変長「n_bytes」のそれぞれのIDである。ポートは、「port_id」引数によって選択される。この引数は、現在のタスクだけのための局所範囲を有する負でない小さい数である。
同期ユニットは、空のFIFOからの読み取り時または満杯のFIFOへの書き込み時の局部的なブロック化状態を取り扱うために同期する2つの操作を実行する。第1の操作、すなわち、ゲットスペース操作は、FIFOとして実行されるメモリ内のスペースを要求することであり、第2の操作、すなわち、プットスペース操作は、FIFO内のスペースを解放するための要求である。これらの操作の引数は、「port_id」および「n_bytes」可変長である。
ゲットスペース操作およびプットスペース操作は、線形テープまたは同期化のFIFO命令上で行なわれる。一方、操作によって取得されたウインドウの内側では、ランダムアクセス読み取り/書き込き動作がサポートされる。
タスク切換えユニットは、ゲットタスク操作として、プロセッサのタスク切換えを実行する。これらの操作における引数は、「blocked」、「error」、「task_info」である。
引数「blocked」は、入力ポートまたは出力ポートでのゲットスペース呼び出しが「偽(フォールス)」を戻したために、最後の処理ステップをうまく終了できなかった場合に、「真(トゥルー)」に設定されるブール値である。したがって、タスクスケジューリングユニットは、ブロックされたポートにおいて新たな「space」メッセージが到達しなければこのタスクのスケジュールを組み直さない方が良いことを直ちに知らされる。この引数値は、スケジューリングの向上をもたらす唯一のアドバイスになると考えられるが、決して機能性に影響を与えるものではない。引数「error」は、最後の処理ステップ中に致命的なエラーがコプロセッサ内で生じた場合に「真」に設定されるブール値である。MPEGデコードからの例は、例えば、未知の可変長コードまたは不正なモーションベクトルの出現である。もしそうであれば、シェルは、タスクテーブルイネーブルフラグをクリアして、更なるスケジューリングを防止するとともに、システム状態を修復するためにメインCPUに対して割込みが送られる。CPUがソフトウェアを通じてやりとりするまで、現在のタスクのスケジュールを組むことは全くない。
前述した操作は、プロセッサからの読み取り呼び出し(read calls)、書き込み呼び出し(write calls)、ゲットスペース呼び出し(getspace calls)、プットスペース呼び出し(putspace calls)、あるいは、ゲットタスク呼び出し(gettask calls)によって開始される。
図3は、読み取り処理、書き込み処理、および、その対応する同期操作の説明図を示している。プロセッサの観点からは、データストリームは、現在のアクセスポイントを有するデータの無限のテープのように見える。プロセッサから発行されるゲットスペース呼び出しは、図3aに小さい矢印で示されるように、現在のアクセスポイントよりも前の特定のデータスペースへのアクセスのための許可を求める。この許可が認められると、プロセッサは、要求されたスペース内すなわち図3bの枠で囲まれたウインドウ内で、n_bytes引数によって示される可変長データおよびoffset引数によって示されるランダムアクセス位置を使用して、読み取りおよび書き込み作業を行なうことができる。
許可が認められない場合、読み出しは、「偽」を戻す。1または複数のゲットスペース読み出し −及び随意的に、幾つかの読み取り/書き込み作業 −この後、プロセッサは、処理すなわちデータスペースのある部分で終了するか否かを決定し、プットスペース呼び出しを発行することができる。この呼び出しは、アクセスポイントを、所定のバイト数だけ、すなわち、図3dのn_bytes2だけ、先に進める。この場合、サイズは、前回認められたスペースに制約される。
図4は、循環FIFOメモリを示している。データストリームを通信するには、好ましくは限られた一定のサイズを有しているFIFOバッファが必要である。好ましくは、FIFOバッファが予めメモリ内に割り当てられ、FIFOがリニアなメモリアドレス範囲(アドレスレンジ)で適切に作動するように、循環アドレッシング機構が適用される。
図4の中心の回転矢印50は、プロセッサからのゲットスペース呼び出しが、読み取り/書き込みのために認められたウインドウを確認する方向を示している。この方向は、プットスペース呼び出しがアクセスポイントを前方に移動させる方向と同じ方向である。小さな矢印51、52は、タスクA、Bの現在のアクセスポイントを示している。この例において、Aは、ライターであり、したがって、適当なデータを後に残す。これに対し、Bは、リーダであり、空きスペース(または、無意味ながらくた)を後に残す。各アクセスポイントの前方にある斜線領域(A1、B1)は、ゲットスペース操作によって取得されたアクセスウインドウを示している。
タスクA、Bは、異なる速度で進んでも良く、および/または、マルチタスクに起因して、ある時間の間だけサービスされなくても良い。シェル22a、22bは、A、Bが実行されているプロセッサ12a、12bに対し、A、Bのアクセスポイントがその各々の順序付けを維持し得るような情報、更に厳密には、認められたアクセスウインドウが決して重なり合わないようにする情報を提供する。シェル22a、22bによって提供された情報を使用して、全体的な機能が正確になされるようにすることは、プロセッサ12a、12bの役割である。例えば、シェル22a、22bは、時として、例えばバッファ内で利用できるスペースが不足していることに起因するプロセッサ「偽」からのゲットスペース要求に応答しても良い。この場合、プロセッサは、拒絶されたアクセス要求に基づいて、バッファへのアクセスを止めなければならない。
シェル22a、22bは、それぞれが関連するプロセッサ12a、12bに近接して実行され得るように分配される。各シェルは、そのプロセッサ上にマッピングされたタスクと共に入り込むストリームのためのコンフィギュレーションデータを局所的に含んでいるとともに、全ての制御論理を局所的に実行して、このデータを適切に取り扱う。したがって、各ストリーム毎すなわち各アクセスポイント毎にフィールドの列を含む局所ストリームテーブルがシェル22a、22bで実行される。
図4の配置を取り扱うため、タスクA、Bのそれぞれのプロセッサシェル22a、22bのストリームテーブルは、それ自身のアクセスポイントからこのバッファ内の他のアクセスポイントへの(おそらく、ペシミスティックな)距離と、このバッファ内の他のアクセスポイトのポートおよびタスクと共に遠隔シェルを示すIDとを含む「space」フィールドを保持するそのようなラインの1つを含んでいる。また、局所ストリームテーブルは、前述のアドレスインクリメントをサポートするために、現在のアクセスポイントに対応するメモリアドレスと、バッファベースアドレスおよびバッファサイズのためのコーディングとを含んでいても良い。
これらのストリームテーブルは、各シェル22内のレジスタファイルのような、小さな複数のメモリ中にマッピングされたメモリであることが好ましい。したがって、ゲットスペース呼び出しは、要求されたサイズと局所的に記憶された利用可能なスペースとを比較することにより、直ちに且つ局所的に応答され得る。プットスペース呼び出し時、この局所スペースフィールドが、指示された大きさだけ減少されるとともに、前回のアクセスポイントを保持してそのスペース値を増加する他のシェルに対して、プットスペースメッセージが送信される。それに伴って、遠隔ソースからのそのようなプットメッセージの受信時、シェル22は、局所フィールドを増加させる。シェル間でのメッセージの送信には時間がかかるため、両方のスペースフィールドが全体のバッファサイズまで合計する必要はないがペシミスティックな値を一時的に含んでいても良い場合も生じ得る。しかしながら、これは、同期化の安全性を妨害しない。例外的な状況下では、複数のメッセージが現在のところ送信先への途中にあり、それらのメッセージが不適切にサービスされるが、その場合であっても、同期化が正確さを保っているような場合も起こり得る。
図5は、各シェルで局所スペース値を更新し且つ「プットスペース」メッセージを送信する機構を示している。この構成において、プロセッサ12a、12bからのゲットスペース要求、すなわち、ゲットスペース呼び出しは、要求されたサイズと局所的に記憶されたスペース情報とを比較することにより、対応するシェル22a、22b内で直ちに且つ局所的に応答され得る。プットスペース呼び出し時、局所シェル22a、22bは、指示された大きさだけそのスペースフィールドを減少させるとともに、プットスペースメッセージを遠隔シェルに対して送る。遠隔シェル、すなわち、他のプロセッサのシェルは、他のアクセスポイントを保持するとともに、そこでスペース値を増加させる。それに伴って、局所シェルは、そのようなプットスペースメッセージを遠隔ソースから受信する時に、そのスペースフィールドを増加させる。
アクセスポイントに属するスペースフィールドは、2つのソースによって変更される。すなわち、スペースフィールドは、局所的なプットスペース呼び出し時に減少し、プットスペースメッセージ受信時に増加する。そのような増加または減少が原子動作として実行されない場合には、それにより、誤った結果がもたらされる可能性がある。そのような場合には、別個の局所スペースフィールドおよび遠隔スペースフィールドが使用されても良い。この場合、これらの各スペースフィールドは、1つのソースだけによって更新される。これらの値は、局所的なゲットスペース呼び出し時に差し引きされる。シェル22は、常に、それ自身の局所テーブルの更新を管理するとともに、これらを原子的な方法で行なう。これは、明らかに、その外的な機能性に現われない単なるシェルの実行の問題である。
ゲットスペース呼び出しが「偽」を戻す場合には、プロセッサは、対応方法を自由に決定する。可能性としては、a)プロセッサは、より小さなn_bytes引数を用いてゲットスペース呼び出しを発行しても良く、b)プロセッサは、一瞬待った後、再び試みても良く、c)プロセッサは、現在のタスクを中止し、このプロセッサの他のタスクが進行できるようにしても良い。
これにより、タスク切換えの決定を、より多くのデータの期待到達時間と、内部累積状態および対応する状態節約コストの大きさとに依存させることができる。プログラム不可能な専用のハードウェアプロセッサの場合、この決定は、アーキテクチャ設計プロセスの一部である。
シェル22の実行および操作は、読み取りポートと書き込みポートとの間に違いを生じさせないが、特定の具体化によってこれらの違いが生じる場合がある。シェル22によって実行される操作は、FIFOバッファのサイズ、メモリ内でのその位置、メモリバウンド循環FIFOにおけるアドレス上の任意のラップアラウンド機構、キャッシュ方法、キャッシュコヒーレンス、グローバルI/Oアライメント規制、データバス幅、メモリアライメント規制、通信ネットワーク構造、メモリ編成等の実行態様を効果的に隠す。
シェル22a、22bは、未フォーマットの一連のバイトで操作する。ライターによって使用される同期パケットサイズと、データのストリームを通信するリーダとの間で任意の相関をとる必要はない。データ内容の意味解釈は、プロセッサに委ねられる。タスクは、それが他のタスクのいずれに対して通信しているか、また、これらのタスクがいずれのプロセッサ上にマッピングされているのかといったようなアプリケーショングラフ発生構造を認識していない。
シェル22の高性能な実行において、読み取り呼び出し、書き込み呼び出し、ゲットスペース呼び出し、プットスペース呼び出しは、シェル22a、22bの読み取り/書き込みユニットおよび同期ユニットにより、同時に発行されても良い。シェル22の異なるポートに作用する呼び出しは、互いの順序付けに関する制約を全く有しておらず、一方、シェル22の同じポートに作用する呼び出しは、呼び出し側タスクまたはプロセッサにしたがって順序付けられなければならない。そのような場合、ソフトウェアの実行においてはファンクションコールから戻すことにより、また、ハードウェアの実行においては、承認信号を与えることにより、前回の呼び出しが戻った時に、プロセッサからの次の呼び出しを開始することができる。
読み取り呼び出しにおけるサイズ引数(size argument)すなわちn_bytesのゼロ値は、メモリからシェルキャッシュへのデータの先取りを行なうため、port_ID−およびoffset−引数によって示される記憶場所に蓄えることができる。そのような操作は、シェルによって行なわれる自動先取りのために使用できる。同様に、書き込み呼び出しにおけるゼロ値は、自動キャッシュフラッシュ要求のために蓄えることができるが、自動キャッシュフラッシングは、シェルの責務である。
随意的に、5つの全ての操作は、付加的な最後のtask_ID引数を受け入れる。これは、通常、先のゲットタスク呼び出しからの結果値として得られる小さい正の数である。この引数におけるゼロ値は、タスク固有ではないがプロセッサ制御に関連する呼び出しのために蓄えられる。
好ましい実施形態において、データストリームを通信するためのセットアップは、1つのライターおよび1つのリーダが限られたサイズのFIFOバッファに接続されるストリームである。そのようなストリームは、限られた一定のサイズを有するFIFOバッファを必要とする。このFIFOバッファは、メモリ内に予め割り当てられており、そのリニアなアドレスレンジでFIFOが適切に作動するように、循環アドレッシング機構が適用される。
しかしながら、図2および図6に基づく更なる実施形態において、1つのタスクによって形成されるデータストリームは、異なる入力ポートを有する2つ以上の異なる消費者によって消費される。そのような状況は、タームフォーキングによって説明することができる。しかしながら、我々は、マルチタスクハードウェアプロセッサおよびCPU上で実行するソフトウェアタスクの両方において、タスクの実施を再利用したい。これは、その基本的な機能に対応して所定数のポートを有するタスクによって実施され、アプリケーション構成によって生じるフォーキングのその任意の必要性は、シェルによって決定される。
ストリームフォーキングは、2つの別個の正常なストリームバッファを維持することにより、また、全ての書き込み操作およびプットスペース操作を2倍にすることにより、また、2倍にされたゲットスペースチェックの結果値に関してAND−演算を行なうことにより、シェル22により明らかに実施することができる。これは、2倍の書き込み帯域幅とおそらく更に多くのバッファスペースとをコストが含んでいるため、実施されないことが好ましい。その代わり、2つ以上のリーダおよび1つのライターが同じFIFOバッファを共有するような実施を行なうことが好ましい。
図6は、1つのライターおよび複数のリーダを伴うFIFOバッファの例図を示している。同期機構は、AとCとの間の一対の賢明な順序付けの次に、AとBとの間で正常な一対の賢明な順序付けを確保しなければならない。しかしながら、この場合、BおよびCは、例えばこれらが純粋なリーダであるとすると、互いの制約を有していない。これは、利用可能なスペースのトラックを各リーダ毎に個別に維持する(AからB、AからC)ことによって書き込み操作を行なうプロセッサに関連付けられたシェルで行なわれる。ライターが局所的なゲットスペース呼び出しを行なうと、そのn_bytes引数は、これらのスペース値のそれぞれと比較される。これは、次のラインへの変更を示すために1つの余分なフィールドまたは列によって接続されるフォーキング(forking)のため前記ストリームテーブルの余分なラインを使用することによって実施される。
これにより、フォーキングが使用されない場合の大部分において、オーバーヘッドが非常に僅かになるとともに、2方向へのフォーキングだけが制限されない。フォーキングがライターによってのみ実施され、リーダがこの状況を認識しないことが好ましい。
図2および図7に基づく更なる実施形態において、データストリームは、テープモデルにしたがって3つのステーションストリームとして実現される。各ステーションは、通過するデータストリームの幾つかの更新を行なう。3つのステーションストリームの1つの適用例は、1つがライターであり、中間がウォッチドッグであり、最後がリーダである。そのような例において、第2のタスクは、データが殆ど変更無く通過できるようにしつつ、通過するデータを見て、おそらく、その幾つかを検査することが好ましい。比較的稀に、ストリーム中の幾つかの項目を変更することを決定することができる。これは、プロセッサによる配置済みバッファ更新によって効果的に行なうことができ、これにより、一方のバッファから他方のバッファへとストリーム内容全体をコピーすることを避けることができる。実際には、これは、ハードウェアプロセッサ12が通信を行なうとともに、僅かに異なるストリームフォーマットへと適応するように、あるいは、デバッギングのため、ストリームを修正してハードウェアの欠陥を補正するためにメインCPU11が介入する場合に有用となる場合がある。そのようなセットアップは、メモリのトラフィックおよびプロセッサの負担を減らすために、メモリ中の1つのストリームバッファを共有する3つの全てのプロセッサを用いて達成することができる。タスクBは、実際には、フルデータストリームを読み取ったり或いは書き込んだりしない。
図7は、3つのステーションストリームのための限られたメモリバッファの実施例を示している。この三方バッファの適切な意味論は、A、B、Cの互いの厳格な順序付けを維持し且つウインドウを重なり合わせないことを含んでいる。このようにして、三方バッファは、図4に示される二方バッファから拡張される。そのような多方循環FIFOは、前述したシェルの操作により、また、好ましい実施形態で説明したプットスペースメッセージを用いた分散実施スタイルにより、直接にサポートされる。1つのFIFOにおいて、3つのステーションに制限はない。1つのステーションが有用なデータを消費し且つ生成するインプレース処置は、たった2つのステーションを用いて適用できる。この場合、両方のタスクがインプレース処理を行なって互いにデータを交換し、バッファ内に空きスペースは残らない。
図2に基づく更なる実施形態においては、バッファへの1つのアクセスについて説明する。そのような1つのアクセスバッファは、たった1つのポートを備えている。この例において、タスク間またはプロセッサ間でのデータ交換は行なわれない。その代わり、局所的に使用するためのシェルの標準的な通信操作が単に適用される。シェルのセットアップは、1つのアクセスポイントが付加された標準的なバッファメモリから成る。ここで、タスクは、ローカルスクラッチパッドまたはキャッシュとしてバッファを使用することができる。アーキテクチャの観点から、これは、幾つかの目的のための大きなメモリとタスクとを組み合わせて使用できるなどといった利点、例えば、ソフトウェア構造化可能なメモリサイズを使用できるといった利点を有することができる。スクラッチパッドとしての使用以外に、このセットアップのタスク固有のアルゴリズムに役立つメモリは、マルチタスクプロセッサでのタスク状態を記憶して検索するために適用できる。この場合、状態スワッピングのための読み取り/書き込み操作を行なうことは、タスク機能コードそれ自体の一部ではないが、プロセッサ制御コードの一部である。バッファは他のタスクと通信するために使用されないため、通常、このバッファでプットスペース操作およびゲットスペース操作を行なう必要はない。
図2および図8に基づく更なる実施形態において、好ましい実施形態に係るシェル22は、データ伝送、すなわち、プロセッサ12と通信ネットワーク31とメモリ32との間での読み取り操作および書き込み操作のためのデータキャッシュを更に備えている。シェル22内でデータキャッシュを実施することにより、データバス幅のトランスペアレントな変換を行なうことができ、また、グローバルな相互接続すなわち通信ネットワーク31でのアライメント制限の解決、グローバルな相互接続におけるI/O操作の数の減少を図ることができる。
シェル22は、読み取り・書き込みインタフェースにキャッシュを備えていることが好ましいが、これらのキャッシュは、アプリケーション機能の観点からは分からない。ここで、プットスペース操作およびゲットスペース操作の使用のメカニズムは、キャッシュコヒーレンスを明確に制御するために使用される。キャッシュは、プロセッサ読み取り・書き込みポートを通信ネットワーク3のグローバルな相互接続から切り離す際に重要な役割を担っている。これらのキャッシュは、速度、出力、領域に関するシステム性能に対して重大な影響を及ぼす。
タスクポートに認められるストリームデータのアクセスウインドウは、秘密に保たれる。その結果、この領域での読み取り・書き込み操作が保存され、第1の側では、この操作は、中間のプロセッサ間通信を必要としない。アクセスウインドウは、循環FIFO内の前任者から新たな記憶空間を得るローカルゲットスペース要求により拡張される。そのような拡張に対応するために、キャッシュのある部分にタグが付けられる場合には、キャッシュのそのような部分以外の拡張が無効を必要とするという点で、データ読み取り時にタスクが挿入されても良い。その後、読み取り操作がこの場所で起こると、キャッシュミスが生じ、新しい有効なデータがキャッシュ内にロードされる。精巧なシェルの実施形態では、ゲットスペースを使用して、先取り要求を発し、キャッシュミスによる不利益を減らすことができる。アクセスウインドウは、循環FIFO内の後継者に新たな記憶空間を残すローカルプットスペース要求によって縮小される。そのような縮小の特定の部分がたまたまキャッシュ内にあって、その部分が書き込まれると、すなわち、この部分が汚れて役に立たないと、キャッシュのそのような部分は、ローカルデータを他のプロセッサに利用可能にするために一気に消去される。キャッシュ消去が完了し且つメモリ操作の安全な順序付けを確保できるまで、他のプロセッサに対するプットスペースメッセージの送出が先送りにされる。
大きなシステムアーキテクチャでの実施において、ローカルゲットスペースイベントおよびプットスペースイベントだけを使用して、キャッシュコヒーレンスを明確に制御することは、バススヌーピング等の他の一般のキャッシュコヒーレンス機構と比較して、比較的簡単である。また、それは、例えばキャッシュライトスルーアーキテクチャのように通信オーバーヘッドを与えない。
ゲットスペース操作およびプットスペース操作は、バイト粒度を操作するために規定される。キャッシュの主な役割は、プロセッサにおけるデータ転送アライメント制限およびグローバルな相互接続データ転送サイズを隠すことである。データ転送サイズは、前記アライメントで16バイトに設定されることが好ましい。これに対し、2バイト程度の僅かな同期データ量が積極的に使用されても良い。したがって、異なるプロセッサのキャッシュ内に同じメモリワードまたは転送単位を同時に記憶することができ、各キャッシュ内においてバイト粒度(granularity)で無効な情報が扱われる。
図8は、3つの異なる状況におけるキャッシュ内データの有効性の読み取りおよび管理を示している。この図において、各状況は、読み取り要求が空きキャッシュで起きることによりキャッシュミスが生じることを前提としている。図8aは、認められたウインドウ810内に完全に含まれるメモリ転送単位800すなわちワードのフェッチを引き起こす読み取り要求を示している。このワード全体は、メモリ内で明らかに有効であり、有効(無効)測定は必要とされない。
図8bにおいて、フェッチされたワード801は、プロセッサによって取得されたスペース811を部分的に超えて延びているが、利用可能であるとしてシェル内で局所的に管理されているスペース内にとどまっている。ゲットスペース引数だけが使用される場合、このワードは、部分的に公然と無効になり、ゲットスペースウインドウが拡張されると、再読み取りされる必要がある。しかしながら、利用可能なスペースの実際の値がチェックされると、ワード全体を有効としてマークすることができる。
図8cにおいて、フェッチされたワード802は、保存されることが知られていないスペース820内へと部分的に延びているとともに、幾つかの他のプロセッサによって書き込まれるようになる。ここで、ワードのこの領域がキャッシュにロードされる際には、この領域を無効として必ずマークしなければならない。ワードのこの部分がその後にアクセスされる場合には、一般に未知の部分もこのワードにおいて現在のアクセスポイントの左側で延びている可能性があるため、ワードを再読み取りする必要がある。
また、1つの読み取り要求は、2つの連続するワード間の境界を横切るため、あるいは、プロセッサの読み取りインタフェースがメモリワードよりも幅広いため、複数のメモリワードをカバーし得る。図8は、要求されたバッファスペースに比べて比較的大きいメモリワードを示している。実際に、要求されたウインドウは、多くの場合、非常に大きいが、極端な場合には、循環通信バッファ全体も1つのメモリワード程度に小さくなり得る。
キャッシュコヒーレンス制御においては、ゲットスペースすなわち読み取り操作と無効(有効)マークとの間、および、プットスペースすなわち書き込み操作と汚れたマークおよびキャッシュフラッシュとの間に、厳密な関係がある。「Kahn」型において、ポートの適用は、入力または出力の専用の方向を有していた。幾つかの実施の問題を単純化する分離された読み取りキャッシュおよび書き込みキャッシュが使用されることが好ましい。多くのストリームに関して、プロセッサは、循環アドレス空間を通じてリニアに機能し、読み取りキャッシュが随意的に先取りをサポートし、書き込みキャッシュが随意的にプレフラッシングをサポートし、次のワードへの2つの読み取りアクセス移動内で、予期される今後の使用のために先のワードのキャッシュ場所を利用可能にすることができる。読み取りおよび書き込みデータ経路の別個の実施では、例えばパイプライン型プロセッサの実施形態において並行に生じるプロセッサからの読み取りおよび書き込み要求が更に簡単にサポートされる。
また、プロセッサは、バイト粒度でデータを書き込むとともに、キャッシュは、キャッシュ内のビット毎に汚れたビットを管理する。キャッシュフラッシュのプットスペース要求時、キャッシュからその共有メモリへのこれらのワードは、この要求によって示されるアドレスレンジと重なり合う。アクセスウインドウの外側のバイト位置にメモリが決して書き込まれないようにするため、バス書き込み要求において、書き込みマスクのため、汚れた(dirty)ビットが使用される。
図2に基づく他の実施形態において、シェル22a内の同期ユニットは、他のシェル22b内の他の同期ユニットに接続される。同期ユニットにより、1つのプロセッサは、処理されたストリームにおける有効なデータがメモリの記憶場所に書き込まれる前に、この記憶場所にアクセスしない。同様に、プロセッサ12aがメモリ32内の有用なデータを上書きしないように、同期インタフェースが使用される。同期ユニットは、同期メッセージネットワークを介して通信を行なう。これらのユニットは、同期信号が1つのプロセッサから次のプロセッサへと通り過ぎ或いはこれらの信号が任意の次のプロセッサで必要とされない場合にブロックされて上書きされるリングの一部を形成する。同時に、これらの同期ユニットは、同期チャンネルも形成する。同期ユニットは、データオブジェクトの12aからプロセッサ12bへと転送するために使用される記憶空間についての情報を維持する。
従来技術に係るプロセッサに対するアプリケーションのマッピングを示す図である。 ストリームに基づく処理システムのアーキテクチャの概略ブロック図である。 図2のシステムの同期操作およびI/O操作を示す図である。 循環FIFOメモリを示す図である。 図2に係る各シェルの局所スペース値を更新する機構を示す図である。 1つのライターおよび複数のリーダを伴うFIFOバッファを示す図である。 3つのステーションストリームにおける有限メモリバッファの実施態様を示す図である。 キャッシュ内の有効データ読み取って管理する図である。
符号の説明
11 CPU
12a、12b プロセッサ
22a、22b シェル
31 通信ネットワーク
32 メモリ
800 メモリ転送単位
801、802 ワード
810 ウインドウ
811、820 スペース

Claims (29)

  1. データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを有する演算層であって、データオブジェクトをデータオブジェクトのストリームから前記第2のプロセッサへと送るために前記第1のプロセッサが設けられている演算層と、
    通信ネットワークとメモリとを有する通信ネットワーク層と、
    前記第2の各プロセッサ毎に1つの通信手段を有する通信サポート層であって、前記演算層と前記通信ネットワーク層との間に設けられている通信サポート層と、
    を備え、
    前記第2のプロセッサのそれぞれの通信手段は、通信ネットワーク層の前記通信ネットワークを介した前記第2のプロセッサと前記メモリとの間の通信を制御する、データ処理システム。
  2. 前記第2のプロセッサは、第1および第2のタスクのインターリーブ処理が可能なマルチタスクを行うプロセッサであり、前記第1および第2のタスクは、データオブジェクトの第1および第2のストリームをそれぞれ処理する、請求項1に記載のデータ処理システム。
  3. 前記通信ユニットは、複数の流入ストリームおよび流出ストリームを扱うように、および/または、タスク毎に複数のストリームを扱うように設けられている、請求項2に記載のデータ処理システム。
  4. 前記各通信手段は、
    通信ネットワーク層の前記メモリからの対応する前記第2のプロセッサの読み取りおよび前記メモリ内への対応する前記第2のプロセッサの書き込みを可能にする読み取り/書き込みユニットと、
    関連する前記第2のプロセッサの読み取り/書き込みの同期をとり、および/または、メモリアクセスのプロセッサ間同期を行なう同期ユニットと、および/または、
    付加されたプロセッサに関連するタスクのスケジュールを組んで、前記第2のプロセッサによって扱われる一組のタスクを管理しおよび/またはタスク間通信チャンネルを管理するタスクスケジューリングユニットと、
    を備えている、請求項1に記載のデータ処理システム。
  5. 前記通信手段は、同じ機能を実施して、前記付加されたプロセッサから独立して、前記付加された第2のプロセッサと前記メモリとの間の通信を制御するために設けられている、請求項1に記載のデータ処理システム。
  6. 前記通信手段は、メモリレンジ内に伝送されたデータをマッピングするための機能を提供する、請求項1に記載のデータ処理システム。
  7. 前記第2のプロセッサとこれらに関連する通信手段との間の通信がマスター/スレーブ通信であり、前記第2のプロセッサがマスターとして機能する、請求項1に記載のデータ処理システム。
  8. 前記第2のプロセッサは、所定の範囲のストリーム処理タスクを行なう特定の機能の専用プロセッサである、請求項1に記載のデータ処理システム。
  9. 前記通信サポート層内の前記通信手段は、前記演算層内の前記関連する第2のプロセッサへと向かう適合可能な第1のタスクレベルインタフェースと、前記通信ネットワークおよび前記メモリへと向かう第2のシステムレベルインタフェースとを備え、
    前記第1および第2のインタフェースが同時に或いは非同時に動作する、請求項1に記載のデータ処理システム。
  10. 前記第2のプロセッサのうちの少なくとも1つのプロセッサがプログラム可能であり、
    前記第2のプロセッサのうちの少なくとも1つの前記プロセッサの通信手段の第1のタスクレベルインタフェースが少なくとも部分的にプログラム可能であり、
    前記通信手段の機能の一部がプログラム可能である、請求項1に記載のデータ処理システム。
  11. 前記通信手段は、前記データ処理システム内の他の通信手段を直接用いて制御情報および/または同期情報を交換するための付加的なインタフェースを備えている、請求項1または9に記載のデータ処理システム。
  12. 前記通信手段は、トークンリング構造内のそれらの付加的なインタフェースを介して接続されている、請求項11に記載のデータ処理システム。
  13. 前記通信手段は、送信する前記第2のプロセッサに知らせることなく、受信する複数の第2のプロセッサへの出力ストリームのマルチキャスティングを扱うために設けられている、請求項1に記載のデータ処理システム。
  14. 前記通信手段は、通信ネットワークの実施態様を、関連する第2のプロセッサに対して隠すために設けられている、請求項1に記載のデータ処理システム。
  15. データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを有する演算層であって、データオブジェクトをデータオブジェクトのストリームから第2のプロセッサへと送るために前記第1のプロセッサが設けられている演算層と、通信ネットワークとメモリとを有する通信ネットワーク層と、前記演算層と前記通信ネットワーク層との間に設けられた通信サポート層とを備えたデータ処理システムの通信手段であって、
    第2のプロセッサに関連付けられるとともに、通信ネットワーク層内の前記通信ネットワークを介した前記第2のプロセッサと前記メモリとの間の通信を制御する、通信手段。
  16. 前記通信ユニットは、複数の流入ストリームおよび流出ストリームを扱うように、および/または、タスク毎に複数のストリームを扱うように設けられている、請求項15に記載の通信手段。
  17. 通信ネットワーク層内の前記メモリからの関連する前記第2のプロセッサの読み取りおよび前記メモリ内への関連する前記第2のプロセッサの書き込みを可能にする読み取り/書き込みユニットと、
    関連する前記第2のプロセッサの読み取り/書き込みの同期をとり、および/または、メモリアクセスのプロセッサ間同期を行なう同期ユニットと、および/または、
    付加されたプロセッサに関連するタスクのスケジュールを組んで、前記第2のプロセッサによって扱われる一組のタスクを管理しおよび/またはタスク間通信チャンネルを管理するタスクスケジューリングユニットと、
    を更に備えている、請求項15に記載の通信手段。
  18. 前記通信手段と前記第2のプロセッサとの間の通信がマスター/スレーブ通信であり、前記第2のプロセッサがマスターとして機能する、請求項15に記載の通信手段。
  19. 前記演算層の前記関連する第2のプロセッサへと向かう適合可能な第1のタスクレベルインタフェースと、前記通信ネットワークおよび前記メモリへと向かう第2のシステムレベルインタフェースとを更に備え、
    前記第1および第2のインタフェースが同時に或いは非同時に動作する、請求項15に記載の通信手段。
  20. 第1のタスクレベルインタフェースが少なくとも部分的にプログラム可能であり、
    前記通信手段の機能の一部がプログラム可能である、請求項15に記載の通信手段。
  21. 前記データ処理システムの他の通信手段を直接用いて制御情報および/または同期情報を交換するための付加的なインタフェースを更に備えている、請求項15に記載の通信手段。
  22. 前記通信手段は、送信するその第2のプロセッサに知らせることなく、受信する複数の第2のプロセッサへの出力ストリームのマルチキャスティングを扱うために設けられている、請求項15に記載の通信手段。
  23. 前記通信手段は、通信ネットワークの実施態様を、関連する第2のプロセッサに対して隠すために設けられている、請求項15に記載の通信手段。
  24. データオブジェクトのストリームを処理するための第1のプロセッサと少なくとも1つの第2のプロセッサとを備え、データオブジェクトをデータオブジェクトのストリームから第2のプロセッサへと送るために前記第1のプロセッサが設けられ、データオブジェクトを記憶して検索するための少なくとも1つのメモリと、前記各第2のプロセッサ毎に設けられた1つの通信手段とを備えたデータ処理システムでデータを処理する方法であって、前記第1および前記第2のプロセッサへの共有アクセスが与えられる方法において、
    前記第2のプロセッサのそれぞれの通信手段が、前記第2のプロセッサと前記メモリとの間の通信を制御するステップを含んでいる、方法。
  25. 前記通信ユニットは、複数の流入ストリームおよび流出ストリームを扱い、および/または、タスク毎に複数のストリームを扱う、請求項24に記載のデータを処理する方法。
  26. 通信を制御する前記ステップは、
    通信ネットワーク層の前記メモリからの関連する前記第2のプロセッサの読み取りおよび前記メモリ内への関連する前記第2のプロセッサの書き込みを可能にするステップと、
    関連する前記第2のプロセッサの読み取り/書き込みの同期をとり、および/または、メモリアクセスのプロセッサ間同期を行なうステップと、および/または、
    付加されたプロセッサに関連するタスクのスケジュールを組んで、前記第2のプロセッサによって扱われる一組のタスクを管理しおよび/またはタスク間通信チャンネルを管理するステップと、
    を含んでいる、請求項24に記載のデータを処理する方法。
  27. 前記第2のプロセッサとこれらに関連する通信手段との間の通信がマスター/スレーブ通信であり、前記第2のプロセッサがマスターとして機能する、請求項24に記載のデータを処理する方法。
  28. 前記通信手段は、送信するその第2のプロセッサに知らせることなく、受信する複数の第2のプロセッサへの出力ストリームのマルチキャスティングを扱う、請求項24に記載のデータを処理する方法。
  29. 前記通信手段は、通信ネットワークの実施態様を、関連する第2のプロセッサに対して隠す、請求項24に記載のデータを処理する方法。
JP2003553407A 2001-12-14 2002-12-05 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段 Pending JP2005513610A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01204883 2001-12-14
PCT/IB2002/005168 WO2003052586A2 (en) 2001-12-14 2002-12-05 Data processing system having multiple processors

Publications (1)

Publication Number Publication Date
JP2005513610A true JP2005513610A (ja) 2005-05-12

Family

ID=8181430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003553407A Pending JP2005513610A (ja) 2001-12-14 2002-12-05 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段

Country Status (7)

Country Link
US (1) US7653736B2 (ja)
EP (1) EP1459177A2 (ja)
JP (1) JP2005513610A (ja)
KR (1) KR100960413B1 (ja)
CN (1) CN1295609C (ja)
AU (1) AU2002343180A1 (ja)
WO (1) WO2003052586A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7492714B1 (en) * 2003-02-04 2009-02-17 Pmc-Sierra, Inc. Method and apparatus for packet grooming and aggregation
US8130841B2 (en) * 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
US20070283131A1 (en) * 2006-01-30 2007-12-06 Ati Technologies Inc. Processing of high priority data elements in systems comprising a host processor and a co-processor
JP2009278507A (ja) * 2008-05-16 2009-11-26 Nec Electronics Corp ホスト装置およびスケジューリング方法
US8937622B2 (en) 2010-09-20 2015-01-20 Qualcomm Incorporated Inter-processor communication techniques in a multiple-processor computing platform
US8813018B1 (en) * 2012-10-05 2014-08-19 Altera Corporation Method and apparatus for automatically configuring memory size
US9329671B2 (en) * 2013-01-29 2016-05-03 Nvidia Corporation Power-efficient inter processor communication scheduling
JP6369286B2 (ja) 2014-10-23 2018-08-08 富士通株式会社 プロセス間通信プログラム、解放要求方法、および並列演算装置
US11397677B2 (en) 2020-04-30 2022-07-26 Hewlett Packard Enterprise Development Lp System and method for tracking persistent flushes
CN112015692A (zh) * 2020-07-21 2020-12-01 华东理工大学 一种面向Simulink自动生成多线程代码的核间通信优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61151773A (ja) * 1984-12-26 1986-07-10 Hitachi Ltd 並列処理計算機
JPH0855075A (ja) * 1994-07-29 1996-02-27 Internatl Business Mach Corp <Ibm> 対等サブシステム間のデータストリーミング機能を効率的に処理するコンピュータシステム
JPH08227402A (ja) * 1994-11-04 1996-09-03 Canon Inf Syst Inc 共用メモリのバス競合の削減方法
JPH08241186A (ja) * 1995-03-07 1996-09-17 Fujitsu Ltd バッファメモリ管理ユニット及びバッファメモリ管理方法
JP2001051958A (ja) * 1999-07-08 2001-02-23 Texas Instr Inc <Ti> 多重プロセッサ多成分アーキテクチャのための統一メモリ管理システム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60136442A (ja) * 1983-12-26 1985-07-19 Hitachi Ltd パケツト交換デ−タ伝送システム
US4816993A (en) * 1984-12-24 1989-03-28 Hitachi, Ltd. Parallel processing computer including interconnected operation units
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
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
EP0543512B1 (en) * 1991-11-19 1999-10-06 International Business Machines Corporation Multiprocessor system
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
US6304891B1 (en) * 1992-09-30 2001-10-16 Apple Computer, Inc. Execution control for processor tasks
US5790881A (en) * 1995-02-07 1998-08-04 Sigma Designs, Inc. Computer system including coprocessor devices simulating memory interfaces
DE69610548T2 (de) * 1995-07-21 2001-06-07 Koninkl Philips Electronics Nv Multi-media-prozessorarchitektur mit hoher leistungsdichte
US5826081A (en) * 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
US6377992B1 (en) * 1996-10-23 2002-04-23 PLAZA FERNáNDEZ JOSé FABIáN Method and system for integration of several physical media for data communications between two computing systems in a manner transparent to layer #3 and above of the ISO OSI model
FR2767939B1 (fr) * 1997-09-04 2001-11-02 Bull Sa Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur
JP3481136B2 (ja) * 1998-05-29 2003-12-22 シャープ株式会社 文字フォント生成方法およびそのための装置ならびに文字フォント生成プログラムを記録したコンピュータで読取可能な記録媒体
US6438678B1 (en) * 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
JP3397144B2 (ja) * 1998-09-29 2003-04-14 日本電気株式会社 パケット処理装置とパケット処理方法とパケット交換機
EP1061439A1 (en) * 1999-06-15 2000-12-20 Hewlett-Packard Company Memory and instructions in computer architecture containing processor and coprocessor
IL130796A (en) * 1999-07-05 2003-07-06 Brightcom Technologies Ltd Packet processor
US6760337B1 (en) * 1999-08-17 2004-07-06 Conexant Systems, Inc. Integrated circuit that processes communication packets with scheduler circuitry having multiple priority levels
US6484224B1 (en) * 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US20030236861A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Network content delivery system with peer to peer processing components
US6854053B2 (en) * 2000-10-25 2005-02-08 Signet Scientific Company Method for identifying and communicating with a plurality of slaves in a master-slave system
US20020159458A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for reserved addressing in a communications network
AU2002329567A1 (en) * 2001-10-12 2003-04-28 Koninklijke Philips Electronics N.V. Scheme for dynamic process network reconfiguration
US7299487B1 (en) * 2001-12-04 2007-11-20 Unisys Corporation Control program, for a co-processor in a video-on-demand system, which uses transmission control lists to send video data packets with respective subgroups of internet protocol headers
US6938132B1 (en) * 2002-04-04 2005-08-30 Applied Micro Circuits Corporation Memory co-processor for a multi-tasking system
US7801555B2 (en) * 2005-07-22 2010-09-21 Qualcomm Incorporated User operation of a wireless device capable of communicating with multiple networks
US9137179B2 (en) * 2006-07-26 2015-09-15 Hewlett-Packard Development Company, L.P. Memory-mapped buffers for network interface controllers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61151773A (ja) * 1984-12-26 1986-07-10 Hitachi Ltd 並列処理計算機
JPH0855075A (ja) * 1994-07-29 1996-02-27 Internatl Business Mach Corp <Ibm> 対等サブシステム間のデータストリーミング機能を効率的に処理するコンピュータシステム
JPH08227402A (ja) * 1994-11-04 1996-09-03 Canon Inf Syst Inc 共用メモリのバス競合の削減方法
JPH08241186A (ja) * 1995-03-07 1996-09-17 Fujitsu Ltd バッファメモリ管理ユニット及びバッファメモリ管理方法
JP2001051958A (ja) * 1999-07-08 2001-02-23 Texas Instr Inc <Ti> 多重プロセッサ多成分アーキテクチャのための統一メモリ管理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
O. P. GANGWAL ET AL., A SCALABLE AND FLEXIBLE DATA SYNCHRONIZATION SCHEME FOR EMBEDDED HW-SW SHARED-MEMORY SYSTEMS, JPN6008032085, October 2001 (2001-10-01), CA, pages 1 - 6, ISSN: 0001102871 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上

Also Published As

Publication number Publication date
US20050021807A1 (en) 2005-01-27
KR20040065258A (ko) 2004-07-21
US7653736B2 (en) 2010-01-26
EP1459177A2 (en) 2004-09-22
KR100960413B1 (ko) 2010-05-28
WO2003052586A3 (en) 2004-06-03
WO2003052586A2 (en) 2003-06-26
AU2002343180A8 (en) 2003-06-30
AU2002343180A1 (en) 2003-06-30
CN1605064A (zh) 2005-04-06
CN1295609C (zh) 2007-01-17

Similar Documents

Publication Publication Date Title
EP1459178B1 (en) Data processing system
JP2005513610A (ja) 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段
US11151033B1 (en) Cache coherency in multiprocessor system
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US20050015637A1 (en) Data processing system
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US6728839B1 (en) Attribute based memory pre-fetching technique
US7240164B2 (en) Folding for a multi-threaded network processor
US20190236017A1 (en) Method and system for efficient communication and command system for deferred operation
US20030056020A1 (en) Hardware message buffer for supporting inter-processor communication
US6904465B2 (en) Low latency inter-reference ordering in a multiple processor system employing a multiple-level inter-node switch
US8769547B2 (en) Reduced data transfer during processor context switching
US20050015372A1 (en) Method for data processing in a multi-processor data processing system and a corresponding data processing system
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US20040177224A1 (en) Local memory with ownership that is transferrable between neighboring processors
US5774712A (en) Instruction dispatch unit and method for mapping a sending order of operations to a receiving order
Ostheimer Parallel Functional Computation on STAR: DUST—
JPH04127351A (ja) データ処理装置及びデータ処理方法
Hiraki et al. Complementary hybrid architecture with two different processing elements with different grain size
Nikhil Digital Equipment Corp.
Kavadias et al. Network Interface Design for Explicit Communication in Chip Multiprocessors
Metz Interface design and system impact analysis of a message-handling processor for fine-grain multithreading
JPH02197961A (ja) 情報処理装置
JPH03163627A (ja) 命令処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080613

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081009

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090421