JP2006519432A - 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法 - Google Patents

複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法 Download PDF

Info

Publication number
JP2006519432A
JP2006519432A JP2006502598A JP2006502598A JP2006519432A JP 2006519432 A JP2006519432 A JP 2006519432A JP 2006502598 A JP2006502598 A JP 2006502598A JP 2006502598 A JP2006502598 A JP 2006502598A JP 2006519432 A JP2006519432 A JP 2006519432A
Authority
JP
Japan
Prior art keywords
data
processing
task
unique identifier
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.)
Withdrawn
Application number
JP2006502598A
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 JP2006519432A publication Critical patent/JP2006519432A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

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

Abstract

本発明は、複数の処理要素を有するデータ処理システムにおけるタスク管理に関する。そのために、データ・オブジェクトのストリームを処理するための少なくとも第1の処理要素と第2の処理要素とを備え、第1の処理要素が、データ・オブジェクトのストリームから第2の処理要素にデータ・オブジェクトを渡すように構成されているデータ処理システムが提供される。第1および第2の処理要素は、タスク群を備えるアプリケーションを並列実行するように構成され、かつ第1および第2の処理要素は、一意の識別子の受信に応答するように構成される。アプリケーションの再構成中にデータの完全性を保証するために、一意の識別子が、データ・ストリームに挿入され、1つの処理要素から別の処理要素に渡される。アプリケーション再構成は、対応する処理要素が一意の識別子を受信したときに行われ、その結果、データ空間内の一意の位置で、グローバル・アプリケーション制御が可能になる。

Description

本発明は、データ・オブジェクトのストリームを処理するための少なくとも第1の処理要素と第2の処理要素とを備えるデータ処理システムであって、第1の処理要素が、データ・オブジェクトのストリームから第2の処理要素にデータ・オブジェクトを渡すように構成され、第1および第2の処理要素が、アプリケーションを実行するように構成され、アプリケーションがタスク群を備え、第1および第2の処理要素が、一意の識別子の受信に応答するように構成されているデータ処理システムに関する。
本発明は、さらに、データ処理システムを制御する方法であって、データ処理システムが、データ・オブジェクトのストリームを処理するための少なくとも第1の処理要素と第2の処理要素とを備え、第1の処理要素が、データ・オブジェクトのストリームから第2の処理要素にデータ・オブジェクトを渡すように構成され、第1および第2の処理要素がアプリケーションを実行するように構成され、アプリケーションがタスク群を備え、制御方法が第1および第2の処理要素の1つによって一意の識別子を認識するステップを含む制御方法に関する。
高性能のデータ依存メディア処理、例えば高精度MPEG復号化のための複数処理要素アーキテクチャが知られている。メディア処理アプリケーションは、同時実行タスク群と規定することができ、このタスク群は、一方向のデータ・ストリームによってのみ情報を交換する。G.Kahnが、1974年に、「The Semantics of a Simple Language for Parallel Programming」,Proc.of the IFIP congress 1974,August 5-10,Stockholm Sweden,North-Holland publ.Co,1974,pp.471-475で、そのようなアプリケーションの形式モデルを発表しており、その後、1977年に、KahnおよびMacQueenが、「Co-routines and Networks of Parallel Programming」,Information Processing 77,B.Gilchhirst(Ed),North-Holland publ.,1977,pp.993-998で動作説明をしている。この形式モデルは、一般に、カーン・プロセス・ネットワーク(Kahn Process Network)と呼ばれる。
アプリケーションは、同時実行可能なタスク群として知られている。情報は、一方向のデータ・ストリームによってのみ、タスク間で交換することができる。タスクは、事前定義されたデータ・ストリームに関する読取りおよび書込み動作によって決定論的にのみ通信すべきである。データ・ストリームは、FIFO動作に基づいてバッファされる。バッファリングにより、ストリームを通して通信する2つのタスクが、個々の読取りまたは書込み動作を同期する必要がない。
ストリーム処理中、様々な処理要素によって、データ・ストリームの連続操作が行われる。例えば、第1のストリームが画像の画素値からなる場合があり、この値が、第1の処理要素によって処理されて、8×8画素ブロックの離散コサイン変換(DCT)係数のブロックの第2のストリームが生成される。第2の処理要素は、DCT係数のブロックを処理して、DCT係数の各ブロックに関して、選択され圧縮された係数のブロックのストリームを生成することができる。
図1に、従来技術で知られている複数処理要素アーキテクチャへのアプリケーションのマッピングの例を示す。データ・ストリーム処理を実現するために、複数の処理要素(Proc1、Proc2、Proc3)が提供され、それぞれが、毎回、データ・オブジェクトのストリームからの次のデータ・オブジェクトからのデータを使用して、かつ/またはそのようなストリーム内で次のデータ・オブジェクトを生成して、特定の操作を繰り返し行うことが可能である。ストリームは、1つの処理要素から別の処理要素に渡り、したがって、第1の処理要素によって生成されたストリームを、第2の処理要素などによって処理することができる。第1の処理要素から第2の処理要素にデータを渡す1つの機構は、第1の処理要素によって生成されたデータ・ブロックをメモリに書き込むことによるものである。
ネットワーク内のデータ・ストリームはバッファされる。各バッファは、厳密には1つの書込み側と1つまたは複数の読取り側とを有するFIFOとして実現される。このバッファリングにより、書込み側および読取り側は、チャネル上での個々の読取りおよび書込み動作を相互に同期する必要がない。利用可能なデータが十分でない状態のチャネルからの読取りは、読取りタスクを機能停止させる。処理要素は、ほんのわずかに(only weakly)プログラム可能な専用ハードウェア機能ユニットにすることができる。全ての処理要素が並列に走り、それ自体の制御スレッドを実行する。それと共に、処理要素は、カーンスタイルのアプリケーションを実行し、各タスクが単一の処理要素上にマップされる。処理要素は、マルチタスクを可能にする。すなわち、複数のタスクを単一の処理要素上にマップすることができる。
アプリケーション全体の状態および進行は、時間および空間的に分散されるので、アプリケーション管理は、アプリケーション進行を解析し、かつデバッグするアプリケーション再構成の問題に直面する。特に、タスクを動的にスケジュールするマルチタスク処理要素では、グローバル・アプリケーションを制御するのが困難である。アプリケーション・モード変更を求める非要求イベントが発生する可能性がある。アプリケーション全体の進行の解析は、データ依存処理およびリアルタイム要求を伴うシステムでは継続的な問題である。さらに、マルチタスク処理要素を備えるマルチプロセッサ・システム上でのアプリケーションのデバッグは、タスク毎にブレークポイントを設定できることを必要とする。モード変更のために実行中のタスクに立ち入るには、タスク・ブレークポイントを設定するのに必要なものと同等の手段を必要とする。
米国特許第6457116号が、処理要素のネットワーク内で処理要素の局所制御を提供するための装置を説明している。処理要素は、複数の相互接続構造によって完全なアレイとして接合される。各相互接続構造が独立のネットワークを形成し、しかしそれらのネットワークは、処理要素の入力スイッチでつながっている。ネットワーク構造は、単一の送信元と、個々の処理要素を書き込むことができる複数の受信側とを備えるHツリー・ネットワーク構造である。この構成ネットワークは、処理要素の構成メモリをプログラムし、さらに構成データを通信する機構である。構成ネットワークは、受信側が、同じクロック・サイクル中に同報通信を受信するように構成される。処理要素は、複数の構成メモリ・コンテキストを記憶するように構成され、選択された構成メモリ・コンテキストが処理要素を制御する。処理要素のネットワーク化アレイ内の各処理要素が、割り当てられた物理的な識別を有する。制御データと、構成データと、アドレス・マスクと、宛先識別とを備えるデータが、アレイの処理要素の少なくとも1つに伝送される。伝送されたアドレス・マスクは、物理的な識別および宛先識別に適用される。マスクされた物理的な識別とマスクされた宛先識別とが比較され、それらが合致する場合、伝送されたデータに応答して複数の処理要素の少なくとも1つが操作される。操作は、処理要素の機能を制御するために複数の構成メモリ・コンテキストの1つを選択することを含む。米国特許第6108760号が、処理要素のネットワーク内での位置独立再構成のための同等の装置を説明している。操作は、少なくとも1つの構成メモリ・コンテキストを用いて処理要素をプログラムすることを含む。
従来技術データ処理システムの欠点は、再構成が特定の時点で行われることである。例えば、処理要素のパイプライン化ネットワークの場合、特定の時点での再構成は、パイプライン化ネットワーク内部のデータ完全性をもはや保証することができないことを意味する。
本発明の目的は、カーンスタイルのデータ処理システムでのグローバル・アプリケーション制御のための包括的な解決策を提供することである。
この目的は、上述したようなデータ処理システムであって、データ・オブジェクトのストリームが、さらに一意の識別子を備えること、および第1の処理要素が、さらに一意の識別子を第2の処理要素に渡すように構成されていることを特徴とするデータ処理システムを用いて実現される。
順序付けられたデータ・ストリーム内の要素として、データ処理システム内で1つの処理要素から別の処理要素に一意の識別子を渡すことにより、単一時点の場合とは対照的に、データ空間内の一意の位置でグローバル・アプリケーション制御が可能になる。例えば、パイプライン処理を維持し、かつデータ・オブジェクトのストリーム内のデータの完全性を維持しながら、アプリケーション再構成または個別タスク再構成を行うことができる。その結果、アプリケーションの実行の終了および再始動を回避することができるので、データ処理システムの全体の性能が高まる。
本発明によるデータ処理システムの一実施形態は、少なくとも1つの処理要素が、一意の識別子をデータ・オブジェクトのストリームに挿入するように構成されていることを特徴とする。アプリケーションが再構成できる状態になっている場合、またはブレークポイントを導入すべき場合、既存の処理要素の1つが、任意の追加の手段を必要とせずに、一意の識別子をデータ・ストリームに挿入することが可能である。
本発明によるデータ処理システムの一実施形態は、タスク群の少なくとも1つのタスクが、プログラム可能な識別子を有するように構成され、第1および第2の処理要素の対応する処理要素が、プログラム可能な識別子を一意の識別子と比較するように構成されていることを特徴とする。プログラム可能な識別子の目的は、データ・ストリームを介して送られる特定の一意の識別子に対する応答を可能にすることである。一意の識別子への応答はタスク毎にプログラムされ、それにより、各タスクが個別の様式で応答することができる。このようにすると、プログラム可能な識別子は、マルチタスク処理要素の場合に、再構成すべきタスクの選択を可能にする。実行中のタスクに関するプログラム可能な識別子と一意の識別子とが合致する場合、それは、タスクが再構成できる状態になっていることを意味する。比較は、これら2つの識別子が同じ値を有するときに、または例えば、プログラム可能な識別子が、常に合致を強制する保留値を有するときに、合致の結果を与える。
本発明によるデータ処理システムの一実施形態は、第1および第2の処理要素の少なくとも1つの処理要素が、プログラム可能な識別子と一意の識別子との合致の際に、タスク群の対応するタスクを休止するように構成されていることを特徴とする。この実施形態の利点は、1つまたは複数のタスクの実行が、データ空間内のよく定義された点で中断されることである。後の時点で、再構成に関わるタスクがさらにその時点で当該の実行パスにない状態で、アプリケーションの再構成を行うことができる。
本発明によるデータ処理システムの一実施形態は、第1および第2の処理要素の少なくとも1つの処理要素が、プログラム可能な識別子と一意の識別子との合致の際に、割込み信号を生成するように構成されていることを特徴とする。割込み信号を生成することによって、対応する処理要素は、タスクが再構成できる状態になっていることを合図することができ、またはその割込み信号を使用して、タスク実行の進行を決定することができる。
本発明によるデータ処理システムの一実施形態は、データ処理システムが、さらに制御処理要素を備え、制御処理要素が、割込み信号に応答してアプリケーションを再構成するように構成されていることを特徴とする。タスク再構成に必要とされる情報は、一意の識別子に関係せず、一意の識別子の転送および合致の機構をタスク機能から独立させることができる。その結果、この機構は、再使用可能なハードウェアまたはソフトウェア構成要素で実施することができる。
本発明によるデータ処理システムの一実施形態は、データ・オブジェクトのストリームが、データ・オブジェクトを記憶するように構成された複数のパケットと、一意の識別子を記憶するように構成された専用のパケットとを備えることを特徴とする。処理要素は、例えばパケット・ヘッダに基づいて専用のパケットを識別し、データ・オブジェクトのストリームを乱すことなく、これらのパケットを変更せずに転送する。
本発明によれば、データ処理システムを制御する方法が、さらに、一意の識別子をデータ・オブジェクトのストリームに挿入するステップと、一意の識別子を第1の処理要素から第2の処理要素に渡すステップとを含む。この方法は、データ処理システム上を走るアプリケーションのデータ完全性を維持しながら、ランタイム再構成を可能する。再構成に加えて、一意の識別子を使用して、デバッグ・ブレークポイントを定義し、かつアプリケーション待ち時間を求めることもできる。
データ処理システムおよびデータ処理システムを制御する方法のさらなる実施形態は、添付された特許請求の範囲に記載されている。
図2に、本発明によるデータ・オブジェクトのストリームを処理するための処理システムを示す。このシステムは、中央処理装置CPUと、3つのコプロセッサProcA、ProcB、およびProcCと、メモリMEMと、シェルSP、SA、SB、およびSCと、通信網CNとを備える。シェルSP、SA、SB、およびSCは、それぞれ、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCに関連付けられている。通信網CNは、シェルSP、SA、SB、およびSCとメモリMEMとを結合する。プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、それらの対応するシェルSP、SA、SB、およびSCに、それぞれインタフェースIP、IA、IB、およびICを介して結合される。別の実施形態では、異なる数のプロセッサおよび/またはコプロセッサをシステム内に含めることができる。メモリMEMは、例えばオンチップ・メモリにすることができる。プロセッサCPUは、プログラム可能なメディア・プロセッサにすることができ、コプロセッサProcA、ProcB、およびProcCは、好ましくは専用プロセッサであり、それぞれが、限られた範囲のストリーム処理を行うように特殊化されている。各コプロレッサProcA、ProcB、およびProcCは、1つのストリームの連続するデータ・オブジェクトに対して同じ処理操作を繰り返し行うように構成されている。コプロセッサProcA、ProcB、およびProcCは、それぞれ異なるタスクまたは機能、例えば可変長復号化、ランレングス復号化、動き補償、イメージ・スケーリング、またはDCT変換を行うことができる。動作中、各コプロセッサProcA、ProcB、およびProcCは、1つまたは複数のデータ・ストリームに対して操作を実行する。この操作は、例えば、ストリームを受信して別のストリームを生成すること、新たなストリームを生成せずにストリームを受信すること、ストリームを受信せずにストリームを生成すること、または受信したストリームを修正することを含む場合がある。プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、他のコプロセッサProcA、ProcB、およびProcCによって、またはプロセッサCPUによって生成されたデータ・ストリームを処理することができ、あるいは、それ自体が生成したストリームを処理することもできる。ストリームは一連のデータ・オブジェクトを備え、データ・オブジェクトは、通信網CNおよびメモリMEMを介して、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCから転送され、かつそれらへ転送される。インタフェースIP、IA、IB、およびICは、プロセッサ・インタフェースであり、これらは、関連付けられたプロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCに合わせてカスタマイズされて、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCの特定の要求を取り扱うことができるようになっている。したがって、シェルSP、SA、SB、およびSCは、プロセッサ(コプロセッサ)特定インタフェースを有し、しかしシェルSP、SA、SB、およびSCのアーキテクチャ全体は一般的なものであり、全てのプロセッサ(コプロセッサ)に対して一様であり、したがってシステム・アーキテクチャ全体の中でのシェルの再使用が容易であり、それと同時に特定のアプリケーションのためのパラメータ化および採用が可能である。別の実施形態では、システムは、複数の接続と、複数のデータ記憶用の特殊化バッファとを用いて、プロセッサ(コプロセッサ)、シェル、およびメモリの間のより専用化されたアプリケーション特定相互接続構造を有することができる。さらに別の実施形態では、システムは、データ・オブジェクトのストリームを処理するための複数のプログラム可能なプロセッサを備えることができ、そのようなシステムでは、シェルの機能は、ソフトウェアの形で実施することができる。
シェルSP、SA、SB、およびSCは、データ移送用の読取り/書込みユニットと、同期ユニットと、タスク切替えユニットとを備える。シェルSP、SA、SB、およびSCは、関連付けられたプロセッサ(コプロセッサ)とマスタ/スレーブ・ベースで通信し、その際、プロセッサ(コプロセッサ)がマスタとして働く。したがって、シェルSP、SA、SB、およびSCは、対応するプロセッサ(コプロセッサ)からの要求によって初期設定される。好ましくは、対応するプロセッサ(コプロセッサ)とシェルSP、SA、SB、およびSCとの通信は、引数値を引き渡して、要求された値が返されるのを待つように、要求応答ハンドシェーク機構によって実施される。したがって、通信がブロッキングする。すなわち、当該の制御スレッドがその完了を待つ。シェルSP、SA、SB、およびSCの機能は、ソフトウェアおよび/またはハードウェアの形で実施することができる。
読取り/書込みユニットは、好ましくは、2つの異なる操作、すなわち、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCがメモリMEMからデータ・オブジェクトを読み取ることができるようにする読取り操作と、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCがメモリMEMにデータ・オブジェクトを書き込むことができるようにする書込み操作とを実施する。
同期ユニットは、同期のための2つの操作を実施し、それぞれ、空のFIFOから読み取る、または満杯のFIFOに書き込む試みが生じる局所的なブロッキング状態に対処する。
図2によるシステム・アーキテクチャは、マルチタスクをサポートし、これは、複数のアプリケーション・タスクを、単一のプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcC上にマップすることができることを意味する。マルチタスク・サポートは、ある範囲のアプリケーションを構成し、かつデータ処理システム内の異なる場所で同じハードウェアプロセッサを再適用することができるようにアーキテクチャの柔軟性を実現するのに重要である。マルチタスクは、適切なアプリケーション進行を得るためにどの時点でどのタスクをプロセッサ(コプロセッサ)が実行しなければならないかを決定するプロセスとして、タスク切替えユニットを必要とすることを意味する。好ましくは、固定コンパイル時間スケジュールとは対照的に、ランタイムでタスク・スケジューリングが行われる。
プロセッサCPUは、データ処理システムを制御するための制御プロセッサを備える。データ・オブジェクトのストリームは、データを保持する複数のデータ・パケットを備える。効率の良いデータのパケット化のために、データ・ストリーム上で可変長パケットが使用される。
図3に、上述したストリーム・ベースの処理システム上にマップされた例示アプリケーションの概略ブロック図を示す。アプリケーションは、タスクTA、TB1、TB2、TC、およびTPの組として実行され、これらのタスクは、データ・ストリームDS_Q、DS_R、DS_S、およびDS_Tを含むデータ・ストリームを介して通信する。タスクTAは、コプロセッサProcAによって実行され、タスクTB1およびTB2は、コプロセッサProcBによって実行され、タスクTCは、コプロセッサProcCによって実行され、タスクTPは、プロセッサCPUによって実行される。代替実施形態では、アプリケーションが、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcC上への異なるマッピングを伴う異なるタスク群からなる場合がある。データ・ストリームDS_Q、DS_R、DS_S、およびDS_Tは、それぞれFIFOバッファBQ、BR、BS、およびBTを含むので、バッファされたデータ・ストリームである。FIFOバッファBQ、BR、BS、およびBTは、メモリMEM内に物理的に割り振られる。
アプリケーションの実行中、タスクを、図3に示されるアプリケーション・グラフに動的に追加しなければならない、またはアプリケーション・グラフから動的に除去しなければならない場合がある。FIFOバッファBQ、BR、BS、およびBTに記憶されたデータの不整合性の問題をもたらさずにこの操作を行うために、データ空間内の特定の位置でタスク再構成が行われる。この再構成を行うことができるように、いわゆる位置IDの形での一意の識別子がデータ・ストリームに挿入され、この位置IDは、専用のパケットに記憶される。データ・パケットおよび位置IDパケットのための一様なパケット・ヘッダが、パケット・タイプおよびそのペイロード・サイズに関する情報を含む。位置IDパケットは、それらの一意のパケット・タイプによって他のパケットから見分けることができる。シェルSP、SA、SB、およびSCは、対応するプロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcC上にマップされた各タスクのためのプログラム可能フィールドを備えるタスク・テーブルを含む。プログラム可能フィールドは、プログラム位置IDを記憶するために使用される。プログラム位置IDは、メモリ・マップドIO(MMIO)レジスタを用いて実現することができる。
プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、受信データ・ストリームを分析し、位置IDパケットを認識することが可能である。位置IDパケットを認識すると、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、位置IDパケットを、その出力データ・ストリームに転送する。位置IDパケットを受信すると、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCはさらに、パケットからのペイロード、すなわち位置IDを、現在実行されている対応するタスクの識別子、すなわちタスクIDと共に、対応するインタフェースIP、IA、IB、およびICを介して、対応するシェルSP、SA、SB、およびSCに渡す。プロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCから位置IDおよびタスクIDを受信すると、対応するシェルSP、SA、SB、およびSCは、該タスクIDを有するタスクに関して、受信された位置IDをプログラム位置IDと比較する。合致すると、シェルSP、SA、SB、およびSCは、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCに信号を送信することによって該タスクのさらなる処理を一時停止し、また制御プロセッサに割込み信号を送信する。
その後、制御プロセッサは、ソフトウェア制御の下で、局所的なタスク状態を解析または再構成することができる。再構成の後、制御プロセッサは、シェルSP、SA、SB、およびSCに、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCによる該タスクの再開を手配するように命令する。
プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、位置IDパケットを生成し、それらをデータ・オブジェクトのストリームに挿入することが可能である。典型的には、これらの位置IDパケットは、事前定義された位置、例えばMPEGフレームの末尾でのみデータ・ストリームに挿入される。プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、プロセッサ(コプロセッサ)からの新たなタスクを求める要求を受けて、制御プロセッサによって、または間接的には対応するシェルSP、SA、SB、およびSCによって、そのような位置IDパケットをデータ・ストリームに挿入するように命令される。
図4に、シェルSP、SA、SB、およびSCをより詳細に示す。シェルSPは、タスク・テーブル401を備え、シェルSAは、タスク・テーブル403を備え、シェルSBは、タスク・テーブル405を備え、シェルSCは、タスク・テーブル407を備える。タスク・テーブル401は、タスクTPのためのプログラム可能フィールド409を備え、タスク・テーブル403は、タスクTAのためのプログラム可能フィールド411を備え、タスク・テーブル405は、それぞれタスクTB_1およびTB_2のためのプログラム可能フィールド413および415を備え、タスク・テーブル407は、タスクTCのためのプログラム可能フィールド417を備える。タスク・テーブル401、403、405、および407は、図4には示されていない、対応するプロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcC上で走る異なるタスクのためのより多くのプログラム可能フィールドを備えることができる。図4はまた、位置IDパケット419を備えるデータ・ストリームDS_Q、DS_R、DS_S、およびDS_Tを示す。位置IDパケット419は、パケット・ヘッダPHを備える。また、データ・ストリームDS_Q、DS_R、DS_S、およびDS_Tは、位置IDパケット419の前後両方に、図4には示されていない複数のデータ・パケットを備える。また、データ・ストリームDS_Q、DS_R、DS_S、およびDS_Tは、図4には示されていない、より多くの位置IDパケットを備えることができる。
再び図2、3、および4を参照すると、制御プロセッサは、タスクTP、TA、TB1、TB2、およびTCの組からのタスクTPの動的な除去を含意するアプリケーション再構成を行って、タスクTAをタスクTB2に接続するという決定をすることができる。制御プロセッサは、それぞれタスクTP、TA、およびTB2のプログラム可能フィールド409、411、および415で、対応するタスク・テーブル401、403、および405に位置IDを書き込むことによって、シェルSP、SA、およびSB内に位置ID PLID_1をプログラムする。制御プロセッサは、コプロセッサProcAに、位置IDと、該位置IDを含む位置IDパケットを生成すべきときに関する情報とをシェルSAのタスク・テーブル内のタスクTA用の専用レジスタに記憶することによって、位置IDパケットを生成するように命令する。シェルSAに記憶された前記情報に基づいて、位置ID LID_1を含む位置IDパケット419が、タスクTAの制御下で、コプロセッサProcAによってデータ・ストリームDS_QおよびDS_Rに挿入される。タスクTAは、位置ID LID_1を作成することによって認識したことを合図し、コプロセッサProcAに、そのタスクIDおよび位置ID LID_1をインタフェースIAを介してシェルSAに送信するように命令する。受信されたタスクTAのタスクIDを使用して、シェルSAは、タスクTAに関して、受信された位置ID LID_1をプログラム位置ID PLID_1と比較して、これらの合致を判断する。シェルSAは、コプロセッサProcAによるタスクTAのさらなる処理を停止して、制御プロセッサに割込み信号を送信する。タスクTPは、パケット・ヘッダPHに記憶されているパケットのタイプに関する情報から、その入力データ・ストリームDS_R内の位置IDパケット419を認識して、プロセッサCPUに、位置IDパケット419をその出力データ・ストリームDS_Sに転送するように命令する。また、タスクTPは、プロセッサCPUに、認識された位置ID LID_1をそのタスクIDと共に、インタフェースIPを介してシェルSPに渡すように命令する。受信されたタスクTPのタスクIDを使用して、シェルSPは、タスクTPに関して、受信された位置ID LID_1をプログラム位置ID PLID_1と比較して、これらの合致を判断する。シェルSPは、プロセッサCPUによるタスクTPのさらなる処理を停止して、制御プロセッサに割込み信号を送信する。タスクTB2は、パケット・ヘッダPHに記憶されているパケットのタイプに関する情報から、その入力データ・ストリームDS_S内の位置IDパケット419を認識して、プロセッサProcBに、位置IDパケット419をその出力データ・ストリームDS_Tに転送するように命令する。また、タスクTB2は、コプロセッサProcBに、認識された位置ID LID_1を、そのタスクIDと共にインタフェースIBを介してシェルTBに渡すように命令する。受信されたタスクIDを使用して、シェルTBは、タスクTB2に関して、受信された位置ID LID_1をプログラム位置ID PLID_1と比較して、これらの合致を判断する。シェルSBは、プロセッサProcBによるタスクTB2のさらなる処理を停止して、制御プロセッサに割込み信号を送信する。また、タスクTB1およびタスクTCは、パケット・ヘッダPHに記憶されているパケットのタイプに関する情報から、当該の入力データ・ストリーム内の位置IDパケット419を認識する。タスクTB1およびタスクTCは、それらの対応するコプロセッサTBおよびTCに、位置IDパケット419をそれぞれの出力データ・ストリームに転送するように命令し、また、認識された位置ID LID_1が、対応するタスクIDと共に、対応するシェルSBおよびSCに送信される。シェルSBおよびSCは、対応して受信されたタスクIDに関して、プログラム位置IDが存在しないことを検出し、この点ではさらなる動作を行わない。別の実施形態では、別のプログラム位置IDが、所与のタスクのためのシェルSP、SA、SB、およびSCのタスク・テーブル内に存在する場合があり、この場合、そのタスクに対応する受信位置IDは、全てのプログラム位置IDと比較されて、合致が存在するかどうか検査される。タスクTA、TP、およびTB2が、データ・ストリーム内の同じ位置で処理を停止したので、FIFOバッファBRおよびBSは空である。制御プロセッサは、アプリケーション・グラフからタスクTPを除去し、タスクTAとTB2を、例えばFIFOバッファBR、およびフリー・データ・ストリームDS_S、ならびにFIFOバッファBSを使用してデータ・ストリームDS_Rを介して再接続する。制御プロセッサは、対応するシェルSAおよびSBに情報を書き込むことによって、タスクTAおよびTB2を再始動するように命令する。
位置IDの概念は、マルチプロセッサ・システムでのアプリケーション・グラフのデータ完全性を維持しながら、ランタイム・アプリケーション再構成を可能にする。その結果、アプリケーションの実行の終了および再始動が必要なくなり、データ処理システムの全体の性能が高まる。アプリケーション再構成は、例えば、1つまたは複数のタスクのパラメータの変更、バッファのサイズまたはそれらのメモリ内での位置の修正、タスク相互接続構造の修正、プロセッサ(コプロセッサ)へのマッピングまたはタスクの修正、より多くのタスクまたはバッファのインスタンス生成および接続、タスクまたはバッファの除去および切断を伴う場合がある。マルチタスクプロセッサでは、プロセッサは、再構成を行いながら、他のタスクの処理を継続することができる。受信された任意の位置IDに合致するように、または1つにも合致しないように、2つの特別なプログラム可能位置ID値が確保される。
別の実施形態では、位置IDの概念は、マルチタスク処理要素を有するマルチプロセッサ・システム上で、アプリケーション全体の進行を解析するために、またはアプリケーションをデバッグするために使用することができる。位置IDは、データ処理中に一意の位置でタスク毎にデバッグ・ブレークポイントを設定することを可能にし、または位置IDを用いてアプリケーション待ち時間を求めることができる。アプリケーション全体の進行を解析する場合、アクティブ・タスクを休止する必要はなく、例えば、割込み信号の生成のみで十分である。この割込み信号を使用して、進行を決定することができる。
タスク再構成のために必要とされる情報は、位置IDパケットの一部ではなく、そのため、位置IDパケットを転送し、位置IDとプログラム位置IDとを合致させ、かつ制御プロセッサに割込みを合図する機構を、タスク機能から独立させることができる。その結果、前記機構の実施は、再使用可能なハードウェアまたはソフトウェア構成要素によって行うことができる。
別の実施形態では、プロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCが、それらの対応するシェルSP、SA、SB、およびSCに、遭遇した位置IDの値、ならびにその位置IDとプログラム位置IDとの合致の結果を記憶するように構成されている。別の実施形態では、プロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCが、それらの対応するシェルSP、SA、SB、およびSCに、位置IDとプログラム位置IDとの合致の結果のみを記憶するように構成されている。割込み信号を受信するのではなく、制御プロセッサ自体が、後の時点で、例えばポーリング機構によって合致の結果を調査する。さらに別の実施形態では、プロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCが、遭遇した位置IDの値のみを記憶するように構成されている。記憶された位置ID値は、この位置IDが、対応するプロセッサ(コプロセッサ)にデータ・ストリームを介してすでに渡っているかどうかを示す。
シェルSP、SA、SB、およびSCのタスク切替えユニットは、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcC上で実行するタスクを選択する役割をする。インタフェースIP、IA、IB、およびICが、それぞれプロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCによって検出された位置IDの受信および合致のための機構を実施する。前記機構の実施は、いわゆるレポート・インタフェースによって行うことができる。プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、レポート(task_id、report_type、report_id)を呼び出すことによって、対応するインタフェースIP、IA、IB、およびICを介してシェルSP、SA、SB、およびSCのタスク切替えユニットにメッセージをレポートすることができる。task_idは、レポート要求がそこから発行されるアクティブ・タスクのタスクIDに対応し、report_typeは、エラー状態または有効な位置IDを示し、report_idは、位置IDを含む。対応するシェルSP、SA、SB、およびSC内のタスク・テーブル401、403、405、および407は、さらに、図4には示されていない各タスク毎の5つのプログラム可能フィールドを備え、それぞれ、許可フラグ(Enable flag)、位置使用不可フラグ(LocationDisable flag)、割込み許可フラグ(InterruptEnable flag)、レポート・タイプ(ReportType)、およびレポートID(ReportID)を記憶する。位置使用不可フラグがセットされている場合、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcCからの有効なreport_typeを有するレポート要求の際、report_idがプログラム位置IDに合致するときに、アクティブ・タスクが使用不可にされる。このとき、位置使用不可フラグがセットされていない場合には、対応するタスクを使用不可にすべきでない。タスクに関して許可フラグがセットされている場合、そのタスクは、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcC上で実行することができる。タスクに関して許可フラグがセットされていない限り、そのタスクは、対応するプロセッサCPU、またはコプロセッサProcA、ProcB、およびProcC上で実行することができない。図5に、タスクの実行を使用不可にするための流れ図を示す。レポート要求の際、タスク切替えユニットは、report_type引数がエラー状態を示すかどうか判定する(501)。report_type引数がエラー状態を示す場合、report_id引数が、task_idを使用して、選択されたタスクのタスク・テーブル項目のレポートIDフィールドにエラー識別子として記憶される。さらに、report_type引数がレポート・タイプ・フィールドに記憶され、タスク・テーブル内の対応する許可フラグをリセットすることによってアクティブ・タスクが使用不可にされ、割込み信号が生成される(505)。report_type引数が有効である場合、report_id引数が、正しいタスク・テーブル項目を選択するためにtask_idを使用して、タスク・テーブルのレポートIDフィールドに受信位置IDとして記憶され、report_typeが、同様にtask_idを使用して、選択されたタスクのタスク・テーブル項目のレポート・タイプ・フィールドに、有効な識別子として記憶される(503)。タスク切替えユニットは、有効なreport_typeを受信したとき、受信されたreport_idを、タスク・テーブルのプログラム可能フィールドに記憶されたプログラム位置IDと比較して(503)、合致するかどうか判定する(507)。これらが合致しない場合、さらなる動作は行われない(509)。受信されたreport_idがプログラム位置IDに合致し、かつ位置使用不可フラグが設定されていない場合(509)、対応するタスクが処理を継続する。これは、タスクの進行をランタイムで判断するのに有用となる場合がある。位置使用不可フラグが設定されている場合(511)、タスク・テーブル内の許可フラグをリセットすることで、対応するタスクを使用不可にする(513)。さらに、どちらの場合でも、対応するタスクの割込み許可フラグが設定されている場合(515)、割込み信号が生成される(517)。割込み許可フラグが設定されていない場合、さらなる動作は行われない(519)。2つのプログラム位置ID値が特別な意味をもつ。すなわち、最初が全てゼロに設定されている場合、プログラム位置IDはreport_idに合致せず、最初が全て1に設定されている場合、プログラム位置IDは全てのreport_idに合致する。
いくつかの実施形態では、プロセッサCPU、ならびにコプロセッサProcA、ProcB、およびProcCは、位置IDパケットを、それらの全ての出力データ・ストリームに転送しない。アプリケーション・グラフ全体を通るデータ・パケットの流れの中での位置IDパケットの意図は、各タスクが、その対応するSP、SA、SB、およびSC内で、位置ID値をそのプログラム位置ID値と突き合わせて一度検査して、タスク再構成を可能にすることである。いくつかの場合には、アプリケーション・グラフがサイクルを含み、このとき、これらの位置IDパケットがアプリケーション・グラフ内部で周回するのを回避すべきである。アプリケーション・グラフ中での位置IDパケットの継続的な循環は、当業者には明らかなように、タスク群の全ての出力データ・ストリームに位置IDパケットを転送しないことによって回避することができる。
上述した実施形態は、本発明を限定するものではなく、例示するものであり、添付された特許請求の範囲の範囲から逸脱することなく、当業者が多くの代替実施形態を設計することができることに留意されたい。特許請求の範囲において、括弧内に記された任意の参照符号は、特許請求の範囲の限定とは解釈されないものとする。用語「備える」は、特許請求の範囲内に列挙したもの以外の要素またはステップの存在を除外しない。要素の前に付いた用語「1つの」は、複数の該要素の存在を除外しない。複数の手段を列挙する装置の請求項では、これらの手段のいくつかを、ハードウェアの同一の要素によって実施することができる。単に、いくつかの手段が互いに異なる従属請求項に記載されているということは、これらの手段の組合せを効果的に使用することができないことを示すものではない。
従来技術によるデータ処理システム上へのアプリケーションのマッピングの例を示す図である。 ストリーム・ベースの処理システムのアーキテクチャの概略ブロック図である。 図2に示されるストリーム・ベースの処理システム上にマップされたアプリケーションの概略ブロック図である。 図2によるストリーム・ベースの処理システムに関する、シェル内にプログラムされ、データ・ストリームに挿入された位置IDの概略ブロック図である。 図2によるストリーム・ベースの処理システムに関する、タスクの実行を使用不可にするための流れ図である。

Claims (18)

  1. データ・オブジェクトのストリームを処理するための少なくとも第1の処理要素と第2の処理要素とを備えるデータ処理システムであって、前記第1の処理要素が、前記データ・オブジェクトのストリームから前記第2の処理要素にデータ・オブジェクトを渡すように構成され、
    前記第1および第2の処理要素が、アプリケーションを実行するように構成され、前記アプリケーションがタスク群を備え、
    前記第1および第2の処理要素の少なくとも1つが、一意の識別子の受信に応答するように構成され、
    前記データ・オブジェクトのストリームが、さらに前記一意の識別子を備えること、および
    前記第1の処理要素が、さらに前記一意の識別子を前記第2の処理要素に渡すように構成されていること
    を特徴とするデータ処理システム。
  2. 前記処理要素の少なくとも1つが、前記一意の識別子を前記データ・オブジェクトのストリームに挿入するように構成されていることを特徴とする請求項1に記載のデータ処理システム。
  3. 前記タスク群の少なくとも1つのタスクが、プログラム可能な識別子を有するように構成され、前記第1および第2の処理要素の対応する処理要素が、前記プログラム可能な識別子を前記一意の識別子と比較するように構成されていることを特徴とする請求項1に記載のデータ処理システム。
  4. 前記第1および第2の処理要素の少なくとも1つの処理要素が、前記プログラム可能な識別子と前記一意の識別子との合致の際に、前記タスク群の対応するタスクを休止するように構成されていることを特徴とする請求項3に記載のデータ処理システム。
  5. 前記第1および第2の処理要素の少なくとも1つの処理要素が、前記プログラム可能な識別子と前記一意の識別子との合致の際に、割込み信号を生成するように構成されていることを特徴とする請求項3に記載のデータ処理システム。
  6. 前記第1および第2の処理要素の少なくとも1つの処理要素が、前記一意の識別子を記憶するように構成されていることを特徴とする請求項3に記載のデータ処理システム。
  7. 前記第1および第2の処理要素の少なくとも1つの処理要素が、前記プログラム可能な識別子と前記一意の識別子との比較の結果を記憶するように構成されていることを特徴とする請求項3に記載のデータ処理システム。
  8. さらに制御処理要素を備え、前記制御処理要素が、前記割込み信号に応答して前記アプリケーションを再構成するように構成されていることを特徴とする請求項5に記載のデータ処理システム。
  9. 前記データ・オブジェクトのストリームが、
    データ・オブジェクトを記憶するように構成された複数のパケットと、
    前記一意の識別子を記憶するように構成された専用のパケットと
    を備えることを特徴とする請求項1に記載のデータ処理システム。
  10. データ処理システムを制御する方法であって、前記データ処理システムが、データ・オブジェクトのストリームを処理するための少なくとも第1の処理要素と第2の処理要素とを備え、前記第1の処理要素が、前記データ・オブジェクトのストリームから前記第2の処理要素にデータ・オブジェクトを渡すように構成され、前記第1および第2の処理要素が、アプリケーションを実行するように構成され、前記アプリケーションがタスク群を備え、前記制御方法が、
    前記第1および第2の処理要素の少なくとも1つによって一意の識別子を認識するステップを含み、
    さらに、
    前記一意の識別子を前記データ・オブジェクトのストリームに挿入するステップと、
    前記一意の識別子を前記第1の処理要素から前記第2の処理要素に渡すステップと
    を含むことを特徴とするデータ処理システムを制御する方法。
  11. 前記一意の識別子を前記データ・オブジェクトのストリームに挿入する前記ステップが、前記処理要素の少なくとも1つによって行われることを特徴とする請求項10に記載のデータ処理システムを制御する方法。
  12. さらに、
    前記タスク群の少なくとも1つのタスクにおいて識別子をプログラムするステップと、
    前記第1および第2の処理要素の対応する処理要素によって、前記一意の識別子を前記プログラムされた識別子と比較するステップと
    を含むことを特徴とする請求項10に記載のデータ処理システムを制御する方法。
  13. さらに、
    前記タスクの前記プログラム可能な識別子と前記一意の識別子との合致の際に、前記第1および第2の処理要素の対応する処理要素によって、前記タスク群のタスクを休止するステップ
    を含むことを特徴とする請求項12に記載のデータ処理システムを制御する方法。
  14. さらに、
    前記複数のタスクのうち対応するタスクの前記プログラム可能な識別子と前記一意の識別子との合致の際に、前記第1および第2の処理要素の1つの処理要素によって、割込み信号を生成するステップ
    を含むことを特徴とする請求項12に記載のデータ処理システムを制御する方法。
  15. さらに、
    前記複数のタスクのうち対応するタスクに関して、前記第1および第2の処理要素の1つの処理要素によって、前記一意の識別子を記憶するステップ
    を含むことを特徴とする請求項12に記載のデータ処理システムを制御する方法。
  16. さらに、
    前記複数のタスクのうち対応するタスクに関して、前記第1および第2の処理要素の1つの処理要素によって、前記プログラム可能な識別子と前記一意の識別子との比較の結果を記憶するステップ
    を含むことを特徴とする請求項12に記載のデータ処理システムを制御する方法。
  17. 前記データ処理システムが、さらに制御処理要素を備えること、および前記方法が、さらに、
    前記割込み信号に応答して、前記制御処理要素によって前記アプリケーションを再構成するステップ
    を含むことを特徴とする請求項14に記載のデータ処理システムを制御する方法。
  18. 前記データ・オブジェクトのストリームが
    データ・オブジェクトを記憶するように構成された複数のパケットと、
    前記一意の識別子を記憶するように構成された専用のパケットと
    を備えることを特徴とする請求項10に記載のデータ処理システムを制御する方法。
JP2006502598A 2003-02-27 2004-02-18 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法 Withdrawn JP2006519432A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100484 2003-02-27
PCT/IB2004/050124 WO2004077206A2 (en) 2003-02-27 2004-02-18 Data processing system having a plurality of processing elements, a method of controlling a data processing system having a plurality of processing elements

Publications (1)

Publication Number Publication Date
JP2006519432A true JP2006519432A (ja) 2006-08-24

Family

ID=32921611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006502598A Withdrawn JP2006519432A (ja) 2003-02-27 2004-02-18 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法

Country Status (8)

Country Link
US (1) US20060290776A1 (ja)
EP (1) EP1609038B1 (ja)
JP (1) JP2006519432A (ja)
KR (1) KR20050113194A (ja)
CN (1) CN100442240C (ja)
AT (1) ATE498865T1 (ja)
DE (1) DE602004031409D1 (ja)
WO (1) WO2004077206A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
JP2010509691A (ja) * 2006-11-13 2010-03-25 エクセジー・インコーポレイテツド コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム
JP5707409B2 (ja) * 2010-09-08 2015-04-30 株式会社日立製作所 計算機

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392524B2 (en) * 2004-04-06 2008-06-24 International Business Machines Corporation Method, system, and storage medium for managing computer processing functions
US8130841B2 (en) * 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
TWI344793B (en) * 2006-07-24 2011-07-01 Ind Tech Res Inst Power aware method and apparatus of video decoder on a multi-core platform
US8761188B1 (en) * 2007-05-01 2014-06-24 Altera Corporation Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs
US8255908B2 (en) * 2007-12-19 2012-08-28 Nokia Corporation Managing tasks in a distributed system
CN101860752B (zh) * 2010-05-07 2012-02-01 浙江大学 一种针对嵌入式多核系统的视频编码流水化并行方法
CN101969402B (zh) * 2010-10-18 2012-05-23 浪潮集团山东通用软件有限公司 基于并行处理的数据交换方法
CA2959389A1 (en) 2014-09-02 2016-03-10 Ab Initio Technology Llc Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections
CN105515849B (zh) * 2015-12-02 2019-10-15 深圳市紫光同创电子有限公司 可编程器件、标识信息、编程数据流的配置方法及装置
CN105550570A (zh) * 2015-12-02 2016-05-04 深圳市同创国芯电子有限公司 一种应用于可编程器件的加密、解密方法及装置
CN105550541B (zh) * 2015-12-02 2019-09-06 深圳市国微电子有限公司 可编程器件、标识信息、编程数据流的配置方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
FR2682202B1 (fr) * 1991-10-03 1994-03-11 Sextant Avionique Procede et dispositif pour la gestion temps reel d'un systeme comprenant au moins un processeur apte a gerer plusieurs fonctions.
US5519877A (en) * 1993-01-12 1996-05-21 Matsushita Electric Industrial Co., Ltd. Apparatus for synchronizing parallel processing among a plurality of processors
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
WO1997001934A1 (en) * 1995-06-29 1997-01-16 Thomson Multimedia S.A. System for encoding and decoding layered compressed video data
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6243735B1 (en) * 1997-09-01 2001-06-05 Matsushita Electric Industrial Co., Ltd. Microcontroller, data processing system and task switching control method
US6349378B1 (en) * 1999-03-31 2002-02-19 U.S. Philips Corporation Data processing using various data processors

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010509691A (ja) * 2006-11-13 2010-03-25 エクセジー・インコーポレイテツド コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
JP5707409B2 (ja) * 2010-09-08 2015-04-30 株式会社日立製作所 計算機

Also Published As

Publication number Publication date
US20060290776A1 (en) 2006-12-28
CN1833226A (zh) 2006-09-13
DE602004031409D1 (de) 2011-03-31
WO2004077206A3 (en) 2006-03-09
WO2004077206A2 (en) 2004-09-10
KR20050113194A (ko) 2005-12-01
EP1609038A2 (en) 2005-12-28
EP1609038B1 (en) 2011-02-16
CN100442240C (zh) 2008-12-10
ATE498865T1 (de) 2011-03-15

Similar Documents

Publication Publication Date Title
US6832367B1 (en) Method and system for recording and replaying the execution of distributed java programs
JP6243935B2 (ja) コンテキスト切替方法及び装置
KR100267091B1 (ko) 비대칭싱글-칩이중멀티프로세서의정합및동기화
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US7376952B2 (en) Optimizing critical section microblocks by controlling thread execution
US6944850B2 (en) Hop method for stepping parallel hardware threads
US7080386B2 (en) Architecture with digital signal processor plug-ins for general purpose processor media frameworks
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
JP2006519432A (ja) 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法
US20050149693A1 (en) Methods and apparatus for dual-use coprocessing/debug interface
US20100125717A1 (en) Synchronization Controller For Multiple Multi-Threaded Processors
KR100538727B1 (ko) 멀티 프로세서 시스템
JP2004533691A (ja) データを処理するための方法
US7743376B2 (en) Method and apparatus for managing tasks in a multiprocessor system
JPH11338734A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US8607199B2 (en) Techniques for debugging code during runtime
US8001266B1 (en) Configuring a multi-processor system
CN111527485A (zh) 存储器网络处理器
JP2000010818A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
JP2000132529A (ja) 並列処理装置、並列処理方法および記録媒体
JP5382736B2 (ja) トークンプロトコル
US20030202522A1 (en) System for concurrent distributed processing in multiple finite state machines
JP2004503864A (ja) ダイナミックマルチストリーミングプロセッサでメモリ操作の原子性を実現するための方法と装置
JP2005528671A (ja) 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム
US20030074389A1 (en) Scheme for dynamic process network reconfiguration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070216

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080619

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090930