JP2005209206A - マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ - Google Patents
マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ Download PDFInfo
- Publication number
- JP2005209206A JP2005209206A JP2005013610A JP2005013610A JP2005209206A JP 2005209206 A JP2005209206 A JP 2005209206A JP 2005013610 A JP2005013610 A JP 2005013610A JP 2005013610 A JP2005013610 A JP 2005013610A JP 2005209206 A JP2005209206 A JP 2005209206A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- function
- entrusting
- execution
- emi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012546 transfer Methods 0.000 title claims description 13
- 230000006870 function Effects 0.000 claims description 96
- 230000015654 memory Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Abstract
【課題】委託先プロセッサにより命令された関数の実行に必要なデータに委託先プロセッサがアクセスする時間を減少させる。
【解決手段】関数の実行を要求する委託側プロセッサから、関数識別子と該関数に関連した実行パラメータとに基づいて前記関数を実行する委託先プロセッサにデータを転送する方法であって、前記識別子及び前記パラメータは前記委託側プロセッサにより供給されるものである形の方法において、前記委託側プロセッサが前記委託先プロセッサの内部レジスタバンクにアクセスし、前記レジスタに前記委託先プロセッサによる別の関数の実行と同時に、実行すべき関数に関連したパラメータを格納する。
【選択図】図2
【解決手段】関数の実行を要求する委託側プロセッサから、関数識別子と該関数に関連した実行パラメータとに基づいて前記関数を実行する委託先プロセッサにデータを転送する方法であって、前記識別子及び前記パラメータは前記委託側プロセッサにより供給されるものである形の方法において、前記委託側プロセッサが前記委託先プロセッサの内部レジスタバンクにアクセスし、前記レジスタに前記委託先プロセッサによる別の関数の実行と同時に、実行すべき関数に関連したパラメータを格納する。
【選択図】図2
Description
本発明は、マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、特にマルチメディアデータの処理のためにこの方法を実施するプロセッサに関する。
マルチプロセッサシステムは複数のプロセッサとこれらのプロセッサ間のデータ転送手段とを有している。マルチプロセッサシステムの公知の例によれば、添付した図1に示されているように、委託側プロセッサとして知られるプロセッサ100が、例えばプログラム全体の実行を加速するために、委託先プロセッサとして知られる第2のプロセッサ102により実行される関数を用いてプログラムを実行する。
この種のマルチプロセッサシステムでは、各プロセッサは、それぞれの関数を形成している命令の実行に必要な内部レジスタを含んでいる。一般的には、このレジスタセットはプログラムカウンタ、スタックポインタ、状態レジスタ、及びデータ処理のためのワークレジスタを含んでいる。
さらに、委託側プロセッサ100は、委託先プロセッサ102による関数実行のためのプロシージャをこの実行に必要なデータベース110を構築することにより実施する。このベース110は委託側プロセッサ100と委託先プロセッサ102との間に配置されており、ベースは通信バス104を介して委託先プロセッサ102に接続されている。
他の変更形態によれば、バス104は委託側プロセッサ100の内部にあり及び/又は複数の委託側プロセッサ(図示せず)をベース110と委託先プロセッサ102とに接続する。
さらに、ベース110は、
−委託側プロセッサ100と委託先プロセッサ102とにより共用される、スタティックランダムアクセスメモリ、すなわち、SRAMタイプのバッファメモリ、ディスク、又はフラッシュメモリ、
−到着順に、すなわち、FIFO(‘First In First Out’)でデータを処理する通信装置、
−シリアル通信装置のような他の通信手段
などのような異なる電子部品を用いて形成することができる。
−委託側プロセッサ100と委託先プロセッサ102とにより共用される、スタティックランダムアクセスメモリ、すなわち、SRAMタイプのバッファメモリ、ディスク、又はフラッシュメモリ、
−到着順に、すなわち、FIFO(‘First In First Out’)でデータを処理する通信装置、
−シリアル通信装置のような他の通信手段
などのような異なる電子部品を用いて形成することができる。
委託先プロセッサ102はデータベース110にアクセスして、実行すべき関数を識別するための例えばアドレス又は記号を取り出す。このアドレス又は記号は委託先プロセッサ102の内部関数デコーダ106により処理される。内部関数デコーダ106は、委託先プロセッサ102が実行することのできるすべての関数を格納している外部メモリ108により呼び出された関数を識別することができる。
続いて、委託先プロセッサ102はベース110を調べて、呼び出された関数の実行に必要なパラメータを取得する。そして、これらのパラメータは内部メモリ112に保存される。
最後に、呼び出された関数がこのメモリ内で実行され、結果が提供される。
従来技術によるマルチプロセッサシステムが、標準的な電子部品−プロセッサ、バス、データベース−つまり、マルチプロセッサシステムでの使用のために変更を必要としない電子部品を使用するという利点を有していることは明らかである。言い換えれば、マルチプロセッサシステムはシステムに含まれているプロセッサに固有の処理能力を組み合わせることができる。
しかしながら、公知のマルチプロセッサシステムは膨大な数のデータアクセス動作を要するという不都合を有していることが知られている。例えば、委託側プロセッサ100と委託先プロセッサ102との間のデータ転送は特に以下のステップを含んでいる:
−委託先プロセッサ102による関数の実行に必要なパラメータを委託側プロセッサ100によりベース110に転送するステップ、
−委託先プロセッサ102による関数実行に対する要求を委託側プロセッサ100によりベース110に転送するステップ、
−実施すべき関数実行の要求の有無を決定するために委託先プロセッサ102によりベース110にアクセスするステップ。
−委託先プロセッサ102による関数の実行に必要なパラメータを委託側プロセッサ100によりベース110に転送するステップ、
−委託先プロセッサ102による関数実行に対する要求を委託側プロセッサ100によりベース110に転送するステップ、
−実施すべき関数実行の要求の有無を決定するために委託先プロセッサ102によりベース110にアクセスするステップ。
続いて、委託先プロセッサ102がベース110内に、例えば、この関数に固有の記号又はメモリ108に保存されている関数のうちの1つのアドレスの形でそのような実行要求を発見した場合、委託先プロセッサ102はこの関数を実行する。
この目的のために、この関数の実行が開始されるときに、委託先プロセッサ102は再びベース110を調べて、委託側プロセッサ100により以前に送信されたパラメータにアクセスしなければならない。
この不利点が示唆することは、委託側プロセッサ100と委託先プロセッサ102との間で転送されるデータへの膨大な数のアクセス命令(書込み又は読出し)が含まれているため、実行プログラムが複雑で長いということである。
例えば、マルチプロセッサシステムによるマルチメディアデータ(画像、オーディオ、ビデオ)の処理は、しばしばリアルタイムで実施されるため、非常に高速の実行を必要とするアプリケーションである。
このケースでは、委託側プロセッサ100は、委託先プロセッサ102による関数の実行を可能にするために、他の要素の中でも特に、処理すべきピクセル及びこのピクセルに関連した値の処理パラメータ(例えば、明るさ及び色)に対応するメモリアドレスを含んだデータベース110を構築する。
したがって、ビデオ用途では、関数実行時間の推定10%〜15%がデータ検索のために要求される。この検索時間は以下では計算の観点から「非効率時間」又は「オーバーヘッド」と呼ばれる。
本発明の課題は、委託先プロセッサにより命令された関数の実行に必要なデータに委託先プロセッサがアクセスする時間を減少させることにより、上記の不利点のうちの少なくとも1つを克服することである。
上記課題は、関数の実行を要求する委託側プロセッサから、関数識別子と該関数に関連した実行パラメータとに基づいて前記関数を実行する委託先プロセッサにデータを転送する方法であって、前記識別子及び前記パラメータは前記委託側プロセッサにより供給されるものである形の方法において、前記委託側プロセッサが前記委託先プロセッサの内部レジスタバンクにアクセスし、前記委託先プロセッサによる別の関数の実行と同時に、前記レジスタに実行すべき関数に関連したパラメータを格納するようにすることで解決される。
本発明は、関数の実行を要求する委託側プロセッサから、関数識別子と該関数に関連した実行パラメータとに基づいて関数を実行する委託先プロセッサにデータを転送する方法に関する。本方法では、識別子及びパラメータは委託側プロセッサにより供給され、委託側プロセッサは委託先プロセッサの内部レジスタバンクにアクセスし、委託先プロセッサによる別の関数の実行と同時に、レジスタに実行すべき関数に関連したパラメータを格納する。
したがって、本発明により、マルチプロセッサシステムによるプログラム実行速度が上がる。実際、委託先プロセッサが委託側プロセッサにより要求された関数の実行を開始するとき、委託先プロセッサは、すでに内部レジスタバンクに置かれているこの関数に関連したパラメータへの直接アクセスを有している。
言い換えると、関数実行のために読み出される外部パラメータに関連した「オーバーヘッド」がもはや存在しない。
それゆえ、委託側プロセッサと委託先プロセッサを呼び出す関数及びプログラムは、委託先プロセッサにより実行される関数に関連したパラメータの参照に関する命令が存在しないため、より短く、より速く構築されうる。
1つの実施形態では、委託側プロセッサは、データ格納のためにこの委託側プロセッサのみに割り当てられた内部レジスタにアクセスする。
ある実施形態によれば、委託先プロセッサの内部コントローラが、レジスタバンクのレジスタ、すなわちメモリスペースの、委託側プロセッサへの割り当てを指令する。
1つの実施形態では、メモリスペースの割り当てに先行して、委託側プロセッサは、関数実行に必要なパラメータを格納するためのメモリスペースの割り当てを委託先プロセッサコントローラに要求する。
1つの実施形態によれば、コントローラがメモリスペースを委託側プロセッサに割り当てる際に、このコントローラは委託側プロセッサに割り当てられたメモリスペース識別子を送り、続いてこのプロセッサが関数の実行に必要なパラメータを割り当てられたメモリスペースに転送する。
1つの実施形態では、委託側プロセッサは要求された関数を識別するデータを、FIFOランダムアクセスメモリのような、委託側プロセッサと委託先プロセッサとの間にある中間手段に転送する。
1つの実施形態によれば、委託先プロセッサの内部レジスタバンクは以下の特性のうちの少なくとも1つを備えたレジスタサブセットを有している。
−各レジスタサブセットは独自の書込み及び読出しポートを有する、
−各レジスタサブセットは同数のレジスタを有し、また委託先プロセッサにより実行されうるすべての関数を実行するために委託先プロセッサの動作に必要なすべてのレジスタを含んでいる、
−各サブセットは委託側プロセッサ又は委託先プロセッサと通信することができる。
−各レジスタサブセットは同数のレジスタを有し、また委託先プロセッサにより実行されうるすべての関数を実行するために委託先プロセッサの動作に必要なすべてのレジスタを含んでいる、
−各サブセットは委託側プロセッサ又は委託先プロセッサと通信することができる。
1つの実施形態では、パラメータは、委託先プロセッサ又は委託側プロセッサにより実行される異なるデータ処理動作に必要なワークレジスタを含んだレジスタに格納される。
本発明はまた委託先プロセッサによる関数の実行を要求することのできる少なくとも1つの委託側プロセッサを含んだマルチプロセッサシステムにも関する。このマルチプロセッサシステムでは、委託先プロセッサは関数を関数識別子と該関数に関連した実行パラメータとに基づいて実行し、識別子及びパラメータは委託側プロセッサにより供給され、このマルチプロセッサシステムは、上記実施形態のうちの少なくともに1つによる方法に従って、委託側プロセッサが委託先プロセッサの内部レジスタにアクセスし、委託先プロセッサによる別の関数の実行と同時に、前記内部レジスタ内に実行すべき関数に関連したパラメータを格納することができるようにする手段を含んでいる。
1つの実施形態では、マルチプロセッサシステムは、同一の委託先プロセッサに接続された複数の委託側マイクロプロセッサを有している。
本発明はまた関数識別子と該関数に関連した実行パラメータとに基づいて関数を実行することのできる委託先プロセッサにも関する。この委託先プロセッサでは、識別子及びパラメータは委託側プロセッサにより供給され、委託先プロセッサは、上記実施形態のうちの少なくとも1つによる方法に従って、委託側プロセッサが委託先プロセッサの内部レジスタバンクにアクセスし、委託先プロセッサによる別の関数の実行と同時に、実行すべき関数に関連したパラメータを格納することができるようにする手段を含んでいる。
本発明の他の特徴及び利点は、図面の参照とともに、記述的ではあるが非限定的な以下の記述から明らかになる。
本発明の有利な実施形態において、委託先プロセッサ202(図2)は内部レジスタバンク216を有しており、この内部レジスタバンク216には、この委託先プロセッサ(202)の命令により、書込みモードにおいては書込みポート220を介して、読出しモードにおいては読出しポート218を介してアクセスすることができる。
このレジスタバンク216はまた、
−委託側プロセッサ200の内部又は外部にあり、かつ他のプロセッサ(図示せず)とも接続しうる通信バス204、
−委託先プロセッサ202の内部にあり、バス204上でデータを受信及び送信するインタフェース210
を使用して、委託側プロセッサ200により書込みモードにおいて書込みポート212を介して、読出しモードにおいては読出しポート214を介してアクセスすることもできる。
−委託側プロセッサ200の内部又は外部にあり、かつ他のプロセッサ(図示せず)とも接続しうる通信バス204、
−委託先プロセッサ202の内部にあり、バス204上でデータを受信及び送信するインタフェース210
を使用して、委託側プロセッサ200により書込みモードにおいて書込みポート212を介して、読出しモードにおいては読出しポート214を介してアクセスすることもできる。
バンク216は委託先プロセッサ202の内部にあるコントローラ222により制御される。このコントローラ222は、委託先プロセッサ202と委託側プロセッサ200がバンク216内で並列に動作することができるように、明確に識別されたバンク216内のメモリスペースをこれら2つのプロセッサに割り当てる。
この有利な実施形態では、レジスタバンク216はメモリスペースEM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304を有しており、各メモリスペースは、委託先プロセッサが各メモリスペース内のすべての関数を実行することができるようにする独立したレジスタセットである。
特に画像処理分野において使用されるプロセッサの現在の転送速度の容量に合わせた実際的な実施例では、バンク216は、それぞれ16のレジスタを有する4つの部分から成っており、したがって64のレジスタから構成されている。
したがって、委託先プロセッサと委託側プロセッサはつねにコントローラ222を用いて異なるメモリスペースで動作する。コントローラ222はメモリスペースをトークンリングバッファ順に割り当てることにより割り当ての衝突を防ぐ。
図3のダイヤグラムが示しているように、委託先プロセッサ202は、委託側プロセッサ200が別の関数の実行に必要なパラメータを読出し及び書込みポート308を介してメモリスペース302 EMiに書き込んでいる間に、書込み及び読出しポート306を介してメモリスペース300 EMjで関数を実行している。
このように本発明の利点の1つは、関数の実行に必要なパラメータがすでに委託側プロセッサ200によりレジスタバンク261に格納されているので、委託先プロセッサ202はこれらのパラメータに直接アクセスを有するということである。
言い換えると、委託先プロセッサ202は外部ベース内のこれらのパラメータにアクセスする必要がなく、データ参照時間が著しく減少する。
FIFOベース217は、実行すべき関数を表すデータを委託先プロセッサ202に転送するために委託側プロセッサ200により使用される。
実際、委託側プロセッサ200と委託先プロセッサ202は、例えば、実行すべき関数の記号的表現によって、又は委託先プロセッサ202の外部にあるメモリ208内の関数の明示アドレスによって、実行すべき関数を表すデータを解釈することができる。この場合、これらのデータは委託先プロセッサ202の復号化手段206を用いて復号される。
したがって、委託先プロセッサ202は新たな関数を引き受けるときに関数を実行する。この場合、プロセッサ202はFIFOベース217にアクセスする。FIFOベース217は、実行すべき関数を決定し、それと同時に、この関数に割り当てられる新しいメモリスペースが新たな関数の実行に必要なパラメータが格納されているメモリスペースに相当するように、レジスタバンク261内のメモリスペース割り当てを変更する。
本発明のこの有利な実施形態では、委託側プロセッサ200が委託先プロセッサ202による関数の実行を要求すると、データ転送方法が以下の2つのステップで実施される(図2及び3):
−第1のステップに従い、委託側プロセッサ200は、委託先プロセッサ202に実行してもらいたい関数の実施に必要なパラメータを送信し、委託先プロセッサ202における計算動作にまったく割り込むことなくこの関数が実行されるように要求する。
−第1のステップに従い、委託側プロセッサ200は、委託先プロセッサ202に実行してもらいたい関数の実施に必要なパラメータを送信し、委託先プロセッサ202における計算動作にまったく割り込むことなくこの関数が実行されるように要求する。
そうするために、委託側プロセッサ200は、委託先プロセッサ202のインタフェース210から委託先プロセッサ202のレジスタバンク216内のメモリスペースの割り当てを要求し、データバス204からの応答を待つ。
インタフェース210はバンク216内のメモリスペースの割り当てを要求するメッセージ224をコントローラ222に転送する。
そのような割り当てが可能である場合には、コントローラは委託側プロセッサ200に割り当てられたメモリスペース識別子、例えばEMi 302を転送する。
この識別子を用いて、委託側プロセッサ200はこの関数の実行に必要なパラメータをインタフェース210と書込み及び読出しポート212/214とを介して割り当てられたメモリスペースEMi 302に書き込む。
つぎに、プロセッサ200はFIFOベース217に実行すべき関数を表すデータを転送する。このデータは、例えば、前記関数の記号的表現であるか又はメモリ208からのアドレスである。
−第2のステップに従い、委託先プロセッサ202が委託側プロセッサ200により要求された新しい関数を実行できる状態になると、委託先プロセッサ202は、委託側プロセッサ200が関数の実行を即座に開始することができるように、この新しい関数に割り当てられたメモリスペース、すなわちEMi 302に書き込まれたパラメータを用いて、委託側プロセッサ200により要求された関数を形成する命令列の開始点に定位する。
本発明のこの有利な実施形態においては、メモリスペースはコントローラ222により以下のようにして割り当てられることに指摘しておきたい。
委託先プロセッサ202がイネーブルされている場合、委託側プロセッサ200にも委託先プロセッサ202にもメモリスペースは割り当てられない。
委託側プロセッサ200がメモリスペースの初めての割り当てを要求すると、第1のメモリスペースEM0 310が割り当てられる。そして、EMi 302メモリスペースが割り当てられた後に、委託側プロセッサ200が新たなメモリスペース割り当てを要求した場合、コントローラはそれにメモリスペース303{EM(i+1) modulo n}を割り当てる。ここで、nは整数である。ただし、この新たなメモリスペース{EM(i+1)又はEM0}が既に委託先プロセッサ202により使用されている場合は除く。
後者のケースでは、委託側プロセッサ200はこの新しいメモリスペース{EM(i+1)又はi=n+1の場合にはEM0}が使用可能になるまで待つ。
本発明は多くの変更形態を許容する。特に、ある変更形態では、複数の委託側プロセッサ200が同時に例えばプロセッサ202の内部レジスタにアクセスする。
Claims (11)
- 関数の実行を要求する委託側プロセッサ(200)から、関数識別子と該関数に関連した実行パラメータとに基づいて関数を実行する委託先プロセッサ(202)にデータを転送する方法であって、前記識別子及び前記パラメータは前記委託側プロセッサにより供給されるものである形の方法において、
前記委託側プロセッサ(200)は前記委託先プロセッサ(202)の内部レジスタバンク(216)(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)にアクセスし、前記委託先プロセッサによる別の関数の実行と同時に、前記レジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)に実行すべき関数に関連したパラメータを格納する、ことを特徴とする方法。 - 前記委託側プロセッサ(200)はデータ格納のために専ら該委託側プロセッサに割り当てられた内部レジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)にアクセスする、請求項1に記載の方法。
- 前記委託側プロセッサ(202)の内部コントローラ(222)は前記レジスタバンクのレジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)の前記委託側プロセッサ(200)への割り当てを命令する、請求項1又は2に記載の方法。
- メモリスペースの割り当てに先行して、前記委託側プロセッサ(200)は、関数の実行に必要なパラメータを格納するために、前記委託先プロセッサ(202)のコントローラ(222)にメモリスペース(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)の割り当てを要求する、請求項3に記載の方法。
- 前記コントローラ(222)がメモリスペース(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)を前記委託側プロセッサ(200)に割り当てる際、前記コントローラ(222)は割り当てられたメモリスペース識別子(226)を前記委託側プロセッサ(200)に送り、前記委託側プロセッサは関数実行のためのパラメータを割り当てられたメモリスペースに転送する、請求項4に記載の方法。
- 前記委託側プロセッサ(200)は、例えばFIFOランダムアクセスメモリのような、前記委託先プロセッサ(202)と前記委託側プロセッサ(200)との間に配置された手段(217)の中にある要求された関数を識別するデータを転送する、請求項1から5のいずれか1項に記載の方法。
- 前記委託先プロセッサ(202)の内部レジスタバンク(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)はレジスタサブセットを包んだメモリであり、前記レジスタサブセットは以下の特性、すなわち、
−各レジスタサブセットは独自の書込み及び読出しポートを有する、
−各レジスタサブセットは同数のレジスタを有し、また前記委託先プロセッサにより実行されうるすべての関数の実行のために前記委託先プロセッサの動作に必要なすべてのレジスタを含んでいる、
−各サブセットは前記委託側プロセッサ又は前記委託先プロセッサと通信することができる、のうちの少なくとも1つを備えている、請求項1から6のいずれか1項に記載の方法。 - 前記委託先プロセッサ又は前記委託側プロセッサにより実行される種々のデータ処理動作に必要なワークレジスタを含んだレジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)に前記パラメータを格納する、請求項1から7のいずれか1項に記載の方法。
- 委託先プロセッサ(202)による関数実行を要求することのできる少なくとも1つの委託側プロセッサ(200)を含んだマルチプロセッサシステムであって、前記委託先プロセッサは前記関数を関数識別子と該関数に関連した実行パラメータとに基づいて実行し、前記識別子及び前記パラメータは前記委託側プロセッサ(200)により供給されるものである形式のマルチプロセッサシステムにおいて、
前記マルチプロセッサシステムは、請求項1から8のうちの少なくとも1項に記載の方法に従って、前記委託側プロセッサ(200)が前記委託先プロセッサ(202)の内部レジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)のバンク(216)にアクセスし、別の関数の実行と同時に、該内部レジスタ(EM0 310,EM1 311,…EMj 300,EM(j+1) 301,…,EMi 302,…EMn 304)内に実行すべき関数に関連したパラメータを格納するよう前記委託先プロセッサ(202)をイネーブルする手段を含んでいる、ことを特徴とするマルチプロセッサシステム。 - 複数の委託側マイクロプロセッサが同一の委託先マイクロプロセッサと接続されている、請求項9に記載のマルチプロセッサシステム。
- 関数識別子と該関数に関連した実行パラメータとに基づいて関数を実行することのできる委託先プロセッサ(202)であって、前記識別子及び前記パラメータが委託側プロセッサ(200)により供給されるものである形式の委託先プロセッサ(200)において、
前記委託先プロセッサは、請求項1から8のいずれか1項に記載の方法に従って、前記委託側プロセッサ(200)が前記委託先プロセッサの内部レジスタバンク(216)にアクセスし、前記委託先プロセッサによる別の関数の実行と同時に、実行すべき関数に関連したパラメータを格納することができるようにする手段を含んでいる、ことを特徴とする委託先プロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0400528A FR2865291A1 (fr) | 2004-01-21 | 2004-01-21 | Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005209206A true JP2005209206A (ja) | 2005-08-04 |
Family
ID=34630653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005013610A Pending JP2005209206A (ja) | 2004-01-21 | 2005-01-21 | マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050172104A1 (ja) |
EP (1) | EP1557755A1 (ja) |
JP (1) | JP2005209206A (ja) |
KR (1) | KR20050076702A (ja) |
CN (1) | CN1645351A (ja) |
FR (1) | FR2865291A1 (ja) |
MX (1) | MXPA05000788A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013504130A (ja) * | 2009-09-03 | 2013-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 汎用使用のための処理ユニット内部メモリ |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100759110B1 (ko) * | 2006-10-26 | 2007-09-19 | 이상만 | 플로워용 방진장치 |
US7865697B2 (en) * | 2008-02-27 | 2011-01-04 | International Business Machines Corporation | Apparatus for and method of processor to processor communication for coprocessor functionality activation |
CN102539864B (zh) * | 2010-12-31 | 2016-01-20 | 北京普源精电科技有限公司 | 数字示波器及信号测量方法 |
CN102693210B (zh) * | 2011-03-21 | 2017-03-01 | 中兴通讯股份有限公司 | 一种处理器间传递参数的方法及装置 |
US8880811B2 (en) * | 2011-06-27 | 2014-11-04 | Intel Mobile Communications GmbH | Data processing device and data processing arrangement for accelerating buffer synchronization |
WO2019234686A1 (fr) * | 2018-06-06 | 2019-12-12 | Enrico Maim | Système transactionnel sécurisé dans une architecture p2p |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4648034A (en) * | 1984-08-27 | 1987-03-03 | Zilog, Inc. | Busy signal interface between master and slave processors in a computer system |
US5038282A (en) * | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US5388841A (en) * | 1992-01-30 | 1995-02-14 | A/N Inc. | External memory system having programmable graphics processor for use in a video game system or the like |
US6134653A (en) * | 1998-04-22 | 2000-10-17 | Transwitch Corp. | RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit |
US6397240B1 (en) * | 1999-02-18 | 2002-05-28 | Agere Systems Guardian Corp. | Programmable accelerator for a programmable processor system |
JP3327283B2 (ja) * | 2000-03-10 | 2002-09-24 | ヤマハ株式会社 | ディジタルシグナルプロセッサ |
US6822959B2 (en) * | 2000-07-31 | 2004-11-23 | Mindspeed Technologies, Inc. | Enhancing performance by pre-fetching and caching data directly in a communication processor's register set |
US6957326B1 (en) * | 2001-06-28 | 2005-10-18 | Turin Networks | Methods and apparatuses for executing threads |
-
2004
- 2004-01-21 FR FR0400528A patent/FR2865291A1/fr active Pending
-
2005
- 2005-01-17 EP EP05100230A patent/EP1557755A1/en not_active Withdrawn
- 2005-01-18 CN CNA2005100045304A patent/CN1645351A/zh active Pending
- 2005-01-19 MX MXPA05000788A patent/MXPA05000788A/es not_active Application Discontinuation
- 2005-01-19 US US11/038,303 patent/US20050172104A1/en not_active Abandoned
- 2005-01-20 KR KR1020050005397A patent/KR20050076702A/ko not_active Application Discontinuation
- 2005-01-21 JP JP2005013610A patent/JP2005209206A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013504130A (ja) * | 2009-09-03 | 2013-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 汎用使用のための処理ユニット内部メモリ |
Also Published As
Publication number | Publication date |
---|---|
MXPA05000788A (es) | 2005-08-29 |
CN1645351A (zh) | 2005-07-27 |
US20050172104A1 (en) | 2005-08-04 |
EP1557755A1 (en) | 2005-07-27 |
KR20050076702A (ko) | 2005-07-26 |
FR2865291A1 (fr) | 2005-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7921151B2 (en) | Managing a plurality of processors as devices | |
US7653908B2 (en) | Grouping processors and assigning shared memory space to a group in a heterogeneous computer environment | |
US7478390B2 (en) | Task queue management of virtual devices using a plurality of processors | |
US8151275B2 (en) | Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS | |
US6631462B1 (en) | Memory shared between processing threads | |
US8549521B2 (en) | Virtual devices using a plurality of processors | |
US8091078B2 (en) | Dynamically partitioning processing across a plurality of heterogeneous processors | |
US7516456B2 (en) | Asymmetric heterogeneous multi-threaded operating system | |
US7748006B2 (en) | Loading software on a plurality of processors | |
US7617376B2 (en) | Method and apparatus for accessing a memory | |
JP4489399B2 (ja) | プロセッサでのデータ処理方法及びデータ処理システム | |
US20050081182A1 (en) | System and method for balancing computational load across a plurality of processors | |
US20040068607A1 (en) | Locking memory locations | |
KR102212269B1 (ko) | I/o 패킷 압축을 위한 레지스터 파일 | |
US20050071828A1 (en) | System and method for compiling source code for multi-processor environments | |
US10049035B1 (en) | Stream memory management unit (SMMU) | |
JP2005209206A (ja) | マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
WO2020213397A1 (ja) | プロセッサおよびレジスタの継承方法 | |
JP2008276322A (ja) | 情報処理装置、情報処理システムおよび情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081114 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090430 |