JP2010501951A - 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法 - Google Patents
管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法 Download PDFInfo
- Publication number
- JP2010501951A JP2010501951A JP2009526132A JP2009526132A JP2010501951A JP 2010501951 A JP2010501951 A JP 2010501951A JP 2009526132 A JP2009526132 A JP 2009526132A JP 2009526132 A JP2009526132 A JP 2009526132A JP 2010501951 A JP2010501951 A JP 2010501951A
- Authority
- JP
- Japan
- Prior art keywords
- subbuffer
- buffer
- processor
- read
- module
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 20
- 239000000872 buffer Substances 0.000 claims abstract description 95
- 230000004913 activation Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 239000013256 coordination polymer Substances 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 6
- 239000000758 substrate Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
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)
Abstract
共有メモリ(SM)を介したインタープロセッサ通信のための管理モジュール(AM)、生産者プロセッサ(PP)及び消費者プロセッサ(CP)、その構成、及び方法。上記モジュール(AM)は、各々が読出しサブバッファ(WSB)と書込みサブバッファ(WSB)とアイドルサブバッファ(ISB)とトリプルバッファ(B0〜Bm)のステートを格納し(10)、管理する(11)手段と、少なくとも1つの生産者プロセッサ(PP)及び少なくとも1つの消費者プロセッサ(CP)と通信する(20)手段とを備える。上記管理手段(11)は、生産者プロセッサアクセス又は消費者プロセッサアクセスにそれぞれ応じて、トリプルバッファ(B0〜Bm)から目標読出しサブバッファ(RSB)又は書込みサブバッファ(WSB)を定めるものである。
【選択図】図3
【選択図】図3
Description
本発明は、請求項1、4、5、7及び10にそれぞれ記載の、管理モジュールと、生産者及び消費者プロセッサと、その構成と、共有メモリを介したインタープロセッサ通信方法とに関する。
インタープロセッサ通信のタスクは、大抵、図1に示すような共通共有メモリ手法が解決する。
N個のプロセッサP0〜Pnが、インターフェース40、50を介した同一のメモリSMへのアクセスを有し、m個の共有バッファB0〜Bmを通してデータを交換可能である。システムパフォーマンスを保存するためには、以下の条件を満たさなければならない。
はじめは、全部のプロセッサは完全に非同期である。すなわち、バッファからの読出し操作及びバッファへの書込み操作はいつでも可能である。加えて、バッファサイズに制限はなく、アトミックな読出し及び書込み操作は不可能である。最終的に、ブロッキング機構は不可能である。すなわち、プロセッサは互いが読出し又は書込み操作を完了するのを待機できなかった。
このような状況を鑑み、データ一貫性を与えることが、先行技術の解決手段における主要な課題である。いくつかの刊行物は、このような課題に取り組み、問題を解決してきた。J.・チェン(J.Chen)並びにA.・バーンズ(A.Burns)による「マルチプロセッサリアルタイムシステム用3スロット非同期リーダ/ライタ機構.1997年1月ヨーク大学コンピュータサイエンス学部技術報告書YCS‐286(A Three‐Slot Asynchronous Reader/Writer Mechanism for Multiprocessor Real‐Time Systems.Technical Report YCS‐286,Department of Computer Science,University of York,Jan.1997)」において導入されたトリプルバッファリング手法が適当な解決手段の1つである。この解決手段は以下の制限のもとでのユースケースをカバーする。
第1に、各バッファは2つのプロセッサに割り当てられ、その1つは専用生産者PPであってバッファBxへの書込みしか行わず、他方は専用消費者CPであってバッファBxからの読出ししか行わない。第2に、最新の一貫性のあるデータセットが重要である。未使用データセットの上書きは重大ではない。基本原理は図2から分かるであろう。
共有メモリSMの各バッファBxは、3つのサブバッファSB0〜SB2のみからなり、その各々はデータセット全体をホスト(host)する。あるサブバッファ(目下SB1)が、書込みサブバッファWSBとして生産者に予約され、目下新しいデータで満たされる。結果的に、コンテンツは一貫性がなく、読出しに適さない。あるサブバッファ(目下SB0)が、読出しサブバッファRSBとして消費者に予約され、目下読み出される。コンテンツは一貫性があり、書込みから保護されていなければならない。第3のサブバッファ(目下SB3)はアイドルであり、すなわちアイドルサブバッファISBであり、生産者が新しい書込み用データセットを有するといつでも書込みサブバッファWSBになる。生産者が新しいデータセットを一時的にダンプする(dump)場合、消費者が新しい読出し用データセットを要求すると、アイドルサブバッファISBは読出しサブバッファRSBとなる。
このように、サブバッファS0〜S2を管理するには顕著な量の管理オーバヘッドが必要である。これは、プロセッサPP及びCP自体が適当なソフトウェアを用いて行うことが可能である。しかし、上述のJ.・チェン並びにA.・バーンズの報告書によれば、比較及び交換命令(compare‐and‐swap instruction)が依然として必要であり、かかる命令はプロセッサによってサポートされなければならない。
独国特許出願公開第4420123号明細書が、マイクロコンピュータ用バンク切替装置を開示しており、当該装置は、アドレス妥当性信号に応じてバンクを切り替えて、切り替え中にサイクルを待機することを回避する。
独国特許出願公開第10003006号明細書が、信号処理及び格納構成及び方法を開示しており、ここではフィルタリング係数及び入力/出力値のデータ伝送がコントローラによって制御されている。
プロセッサの管理の重荷が低く、同様に高速且つ単純で効率が良く、経済的に実施可能なインタープロセッサ通信を提供することが本発明の目的である。
このような目的を解決するのは、各々が読出しサブバッファと書込みサブバッファとアイドルサブバッファとを有するトリプルバッファのステートを格納し、管理する手段と、少なくとも1つの生産者プロセッサ及び少なくとも1つの消費者プロセッサと通信する手段を備える管理モジュールであり、上記管理手段は、生産者プロセッサアクセスに応じて目標書込みサブバッファを定め、上記格納手段からアイドルサブバッファIDを調べ出し、新しい書込みサブバッファとなるべきこのアイドルサブバッファIDを適当な生産者プロセッサへ上記通信手段を介して配信し、目下の割当てにしたがって上記サブバッファの各ステートを更新するものであり、上記管理手段は、さらに、消費者処理アクセスに応じて目標読出しサブバッファを定め、上記アイドルサブバッファのコンテンツが上記読出しサブバッファのコンテンツより新しいかどうかを検査し、より新しくない場合、新しい読出しサブバッファになるべきこの読出しサブバッファIDを適当な消費者プロセッサへ前記通信手段を介して返信し、さもなければ、アイドルサブバッファIDを調べ出し、新しい読出しサブバッファになるべきこのアイドルサブバッファIDを適当な消費者プロセッサへ上記通信手段を介して配信するものである。
本発明のモジュールについての要点の1つは、サブバッファは独立に処理されることであり、それにより、ほぼ全部の管理オーバーヘッドと、比較及び交換命令のような特別な要求とから生産者を解放する。残るオーバーヘッドは、特定のバッファに対する次の書込み/読出しサブバッファを取り出すための、管理モジュールへの単一のアクセスである。最も一般的な場合、インターフェースは標準プロセッサローカルバスであり、アドレスとデータと制御線とのみからなる。このように、はじめて、プロセッサ間の高速且つ単純で効率の良い通信が実現できる。さらに、管理モジュールはプロセッサ全部がアクセス可能な1つのハードウェアであるため、このようなモジュールに対する実施コストは削減される。
上記管理モジュールの好ましい実施形態は請求項2及び3に記載されており、請求項2及び3は、消費者プロセッサの視点からの効果的なバッファアクセスに関する。
第1の観点において、上記格納手段はFIFO(First‐In‐First‐Out)スタックを備え、上記管理手段は、上記バッファを、新しいデータセットの到着ごとに上記FIFOスタックに自身のIDを問い合わせるように構成し、適当な消費者プロセッサへ上記通信手段を介して割込み要求を送信するものである。このように、消費者プロセッサは、関係のバッファをポーリングせずとも、正しい読出しサブバッファを決定後、どのバッファが更新され、共有メモリからデータセットを読み出し可能であるか、をすぐに認識する。
しかしながら、処理するバッファの量が非常に小さい場合、すなわちデータバス幅よりも小さい場合、レジスタ手法がより効果的である。
したがって、第2の観点において、上記格納手段は少なくとも1つのレジスタを備え、上記管理手段は、上記バッファの各々を、新しいデータセットが到達するたびに上記レジスタにバッファ関連ビットを設定するように構成し、適当な消費者プロセッサへ上記通信手段を介して割込み要求を送信するものである。レジスタコンテンツを評価することによって、消費者プロセッサは、FIFOを連続的に空にするのではなく、単一の読出しアクセスで全部のペンディングバッファを得る。
本発明の目的は、上記管理モジュールとの通信のための生産者プロセッサによっても解決され、この生産者プロセッサは、共有メモリと通信する第1の手段と、上記モジュールと通信する第2の手段とを備え、上記プロセッサは、第2の通信手段を介して上記モジュールから書込みサブバッファを要求し、上記第2の通信手段を介して上記モジュールから目下の書込みサブバッファIDを受信し、上記第1の通信手段を介してこの書込みサブバッファへデータセットを送信するものである。
同様に、本発明の目的は、上記管理モジュールとの通信のための消費者プロセッサによっても解決され、この消費者プロセッサは、共有メモリと通信する第1の手段と、上記モジュールと通信する第2の手段とを備え、上記プロセッサは、第2の通信手段を介して上記モジュールから読出しサブバッファを要求し、第2の通信手段を介して上記モジュールから目下の読出しサブバッファIDを受信し、上記第1の通信手段を介してこの読出しサブバッファからデータセットを読み出すものである。
本発明の両プロセッサについての要点の1つは、その動作挙動及びインターフェースへの周辺変化のみが、両プロセッサの通信を高速で効率良くするのに必要である。これが本発明について実施コストを削減する。
上記消費プロセッサの好ましい実施形態は、請求項6に記載されている。
したがって、上記消費者プロセッサは、上記モジュールの割込み要求に応じて上記第2の通信手段を介して上記モジュールから読出しサブバッファを要求するものである。要求は、FIFOスタックへ向けられる場合又はレジスタへ向けられる場合があり、レジスタは上述の管理モジュールに設けることができる。このように、消費者プロセッサは、どのバッファが更新されたか、データセットを遅延なく読み出し可能であるかをすぐに認識する。
本発明の目的は、さらに、共有メモリを介したインタープロセッサ通信を管理する構成によって解決され、この構成は上記本発明の管理モジュールを備え、かかるモジュールは、上述の少なくとも1つの本発明の生産者プロセッサ及び少なくとも1つの消費者プロセッサに接続される。
本発明の構成についての要点の1つは、その構造は単純であり、したがって簡単且つ経済的にそれぞれの基板に一体化可能である。
上記構成の好ましい実施形態は、請求項8及び9に記載される。
第1の観点において、アービトレーション手段が、同時プロセッサアクセスをスケジューリングするために、上記プロセッサと上記管理モジュールとの間の通信パスに設けられる。効果として、複数のプロセッサ間の通信は、ただ1つの管理モジュールで管理可能である。このように、構成の効率は単純且つ経済的な方法で改善される。
好ましくは、第2の観点において、上記アービトレーション手段は上記管理モジュールと一体化される。結果的に、部品が基板上に集積され、その数が削減され、必要な空間が節約されることとなり、コストも削減される。
本発明の目的は、最後に、共有メモリを介したインタープロセッサ通信のためのトリプルバッファのステートを管理する方法によって解決され、各バッファは、読出しサブバッファと書込みサブバッファとアイドルサブバッファとを有し、上記方法は、目標バッファが定められ、アイドルサブバッファIDが調べ出され、このアイドルサブバッファIDは適当な生産者プロセッサへ配信され、新しい書込みサブバッファとなり、上記サブバッファの各ステートが目下の割当てにしたがって更新される生産者プロセッサアクセスステップと、目標バッファが定められ、アイドルサブバッファのコンテンツが上記読出しサブバッファのステートより新しいかどうか検査され、より新しくない場合、この読出しサブバッファIDは新しい読出しサブバッファとなるべく、適当な消費者プロセッサへ上記通信手段を介して返信され、さもなければ、アイドルサブバッファIDが調べ出され、新しい読出しサブバッファとなるべく、適当な消費者プロセッサへ配信される消費者プロセッサアクセスステップとを含む。
本発明の方法についての要点の1つは、要求される情報を収集するには最小限のステップ数が必要である、ということである。このように、プロセッサについて、管理の重荷なく、それぞれのサブバッファへの効率的なアクセスが可能となる。当該方法は、1つのハードウェアへ実施し、1つのハードウェアに維持することが簡単なため、安価な実現も提供する。
上記の方法の好ましい実施形態は、請求項11〜13に記載される。
第1の観点において、したがって、当該方法は、各バッファのステートがリセット可能であり、バッファ固有の構成が可能である、管理アクセスステップを含む。これは、共有メモリアクセスの所定の開始構成及びリセットを可能とし、同様にさらなる加速のために開く。
好ましくは、第2の観点において、管理アクセスステップは、生産者プロセッサアクセスごとに上記バッファに対する割込み起動を含む。このように、消費者プロセッサは、上述のようにどのバッファが更新されたかすぐに認知する。
第3の観点において、管理アクセスステップは、生産者プロセッサアクセスごとにバッファIDの伝搬を含む。これは、関係バッファをポーリングすることなく、目下の設定にしたがった消費者プロセッサの早いアクセスを可能とする。
以下で、例を用いて本発明を詳細に説明することにする。均等な効果を有する均等な部分には、同一の参照番号を与えてある。
図1及び2は、周知の共通共有メモリ手法とトリプルバッファリングの基本原理とをそれぞれ示している。このような最新技術は、本願の上述の導入部分ですでに説明した。
図3は、本発明によるトリプルバッファSB0〜SB2用管理モジュールAMを示しており、かかる管理モジュールAMは、共有メモリSMを介した生産者プロセッサPPと消費者プロセッサとの通信を管理する。管理モジュールAMには格納手段10が設けられ、この場合格納手段10は、バッファBxごとに書込み、読み出し及びアイドルサブバッファIdを維持するステートテーブルである。格納手段10は、管理手段11によって管理され、そしてインターフェース20を介して外部と通じる。複数のプロセッサからモジュールAMへの同時アクセスがアービトレーション30によって達成され、アービトレーション30は、モジュールAMのインターフェース20をプロセッサPP、CPのインターフェース41、51に接続する通信パスに位置する。このようなアービトレーション手段30は、基板上に必要な部品数を削減するために、管理モジュールAMと一体化される場合もある。プロセッサPP、CPには、共有メモリSMを介して通信するためのインターフェース40、50がさらに設けられ、インターフェース40、50は、トリプルバッファBxを備え、その各々はサブバッファSB0〜SB2を備えており、後者は、交互に読出しサブバッファRSB、書込みサブバッファWSB又はアイドルサブバッファISBである。
モジュールは生産者アクセス(生産者エリアへの書込みアクセス)をサポートし、管理モジュールAMは、アドレスオフセットにしたがって目標バッファBxを定め、このバッファBxに対するアイドルサブバッファISBをステートテーブル10で調べ、このサブバッファId(以下ではインデックスとも呼ぶ)を読出し値として生産者プロセッサPPへ配信し、ステートテーブル10を更新する。ここで、生産者プロセッサPPは、共有メモリSM内のこのサブバッファWSBを、その新しいデータセットをダンプするのみに使用可能である。
さらに、消費者アクセス(消費者エリアへの読出しアクセス)において、管理者も樹^るAMは、アドレスオフセットにしたがって目標バッファBxを定め、最後の消費者アクセス以降に新しいデータがダンプされたかどうか検査する。新しいデータセットが使用可能ではない場合、適当なフラグが読出し値として消費者プロセッサCPへ返信される。さもなければ、モジュールAMは、このバッファBxに対する最新で一貫性のあるデータセットを維持するアイドルサブバッファISBを調べ、このサブバッファインデックスを読出し値として消費者へ配信し、ステートテーブルを更新する。ここで、消費者プロセッサCPは共有メモリSM内のこのサブバッファを、最新のデータセットを読み出すのみに使用可能である。
最後に、管理アクセス(消費者/生産者エリアへの書込みアクセス)において、各バッファBxのステートはリセット可能であり、後述の割込み起動のように、バッファ固有の構成が可能である。
図4は、4096個のトリプルバッファを管理する図3の管理モジュールAMのサンプルアドレスマップを示す。読出し/書込みバッファB0〜B4095は、共有メモリSMの16ビットの消費者エリアCA又は生産者エリアPAをそれぞれ構成する。
生産者プロセッサの視点から、このサポートは、効果的なソフトウェアフローを得るに十分である。生産者プロセッサPPは、目下の書込みサブバッファWSBへ新しいデータセットをダンプするたびに、この書込みサブバッファWSBを確認し、次のデータセットに対する次の書込みサブバッファWSBを得るために管理モジュールAMを起動する。両者は、管理モジュールAMへの追加読出しアクセスをただ1つしか有さない。
消費者プロセッサの視点から、当の各バッファBxは、新しいデータの到着についてポーリングされなければならない。ゆえに、本発明によれば、追加の割込み機構が、ポーリングなしの効果的なソフトウェアフローに開発された。このような機構を以下で説明する。
図5は、図3の管理モジュールAMに設けられる割込み機構を示す。データセットが生産者プロセッサPPにダンプされるたびに、各バッファBxはそのIDをFIFO Fへ待ち行列化するようにできる。FIFO Fがエントリを含むとすぐに、割込み要求I0〜Inが適当な消費者プロセッサCPへ送信される。FIFO Fエントリを評価することによって、消費者プロセッサCPは、どのバッファBxが更新されたかすぐに認知し、目下の読出しサブバッファRSBを決定後、共有メモリSMからデータセットを読出し可能である。
しかしながら処理するバッファBxの量が非常に小さい場合、すなわちデータバス幅よりも小さい場合、レジスタ手法がより効果的である。次に各バッファBxは、データセットが生産者にダンプされるたびにレジスタRに特定のビットを設定するようにされる。あるビットが設定されるとすぐに、割込み要求が適当な消費者プロセッサCPへ送信される。レジスタコンテンツを評価することによって、消費者プロセッサCPは、FIFO Fを連続的に空にするのではなく、単一の読出しアクセスで全部のペンディングバッファBxを得る。
FIFO手法及びレジスタ手法の両方において、各生産者アクセスに関し、バッファBxの伝搬は、FIFOスタックF及び/又はレジスタRにおける各バッファBxの配置構成手段12に向けて行われる。したがって、加速の方法の両方は、どちらが少なくとも効果があるように構成されようとも、管理モジュールAMに組み込まれてもよい。
例でも分かるように、本発明の管理モジュールAMは、それぞれのプロセッサPP、CPから、バッファBxを管理するという重荷を取り除くため、高速且つ単純であり、同時に効果的なプロセッサ通信が低コストで可能となる。プロセッサ及び共有メモリの周知の環境内でのモジュールAMの追加的配置は、その利点を考慮して、許容されるものである。
Claims (13)
- 共有メモリ(SM)を介したインタープロセッサ通信のための管理モジュール(AM)であって、
各々が読出しサブバッファ(WSB)と書込みサブバッファ(WSB)とアイドルサブバッファ(ISB)とを有するトリプルバッファ(B0〜Bm)のステートを格納し(10)、管理する(11)手段と、
少なくとも1つの生産者プロセッサ(PP)及び少なくとも1つの消費者プロセッサ(CP)と通信する(20)手段と、
を備え、
前記管理手段(11)は、生産者プロセッサアクセスに応じて目標バッファ(B0〜Bm)を定め、前記格納手段(10)からアイドルサブバッファIDを調べ出し、新しい書込みサブバッファ(WSB)となるべき当該アイドルサブバッファIDを適当な生産者プロセッサ(PP)へ前記通信手段(20)を介して配信し、目下の割当てにしたがって前記サブバッファ(RSB、WSB、ISB)の各ステートを更新するものであり、
前記管理手段(11)は、さらに、消費者プロセッサアクセスに応じて目標バッファ(B0〜Bm)を定め、前記アイドルサブバッファ(ISB)のコンテンツが前記読出しサブバッファ(RSB)のコンテンツより新しいかどうかを検査し、より新しくない場合、新しい読出しサブバッファ(RSB)となるべき当該読出しサブバッファIDを適当な消費者プロセッサ(CP)へ前記通信手段(20)を介して返信し、さもなければ、アイドルサブバッファIDを調べ出し、新しい読出しサブバッファ(RSB)となるべき当該アイドルサブバッファIDを適当な消費者プロセッサ(CP)へ前記通信手段(20)を介して配信するものである、管理モジュール(AM)。 - 前記格納手段(10)はFIFOスタック(F)を備え、前記管理手段(10)は、書込みサブバッファ(WSB)が変わった場合に前記バッファ(B0〜Bm)のIDを前記FIFOスタック(F)へ待ち行列化するように前記バッファ(B0〜Bm)の各々を構成し、適当な消費者プロセッサ(CP)へ前記通信手段(20)を介して割込み要求(I0〜In)を送信する、請求項1に記載の管理モジュール(AM)。
- 前記格納手段(10)は少なくとも1つのレジスタ(R0〜Ri)を備え、前記管理手段(11)は、前記書込みサブバッファ(WSB)が変わった場合に前記レジスタ(R0〜Ri)においてバッファ関連ビットを設定するよう前記バッファ(B0〜Bm)を構成し、適当な消費者プロセッサ(CP)へ前記通信手段(20)を介して割込み要求(I0〜In)を送信する、請求項1又は2に記載の管理モジュール(AM)。
- 請求項1〜3のいずれか1項に記載の管理モジュール(AM)との通信のための生産者プロセッサ(PP)であって、
共有メモリ(SM)と通信する第1の手段(40)と、
前記モジュール(AM)と通信する第2の手段(41)と
を備え、
前記プロセッサ(PP)は、前記第2の通信手段(41)を介して前記モジュール(AM)から書込みサブバッファ(WSB)を要求し、前記第2の通信手段(41)を介して前記モジュール(AM)から目下の書込みサブバッファIDを受信し、前記第1の通信手段(40)を介して当該書込みサブバッファ(WSB)へデータセットを送信する、生産者プロセッサ(PP)。 - 請求項1〜3のいずれか1項に記載の管理モジュール(AM)との通信のための消費者プロセッサ(CP)であって、
共有メモリ(SM)と通信する第1の手段(50)と、
前記モジュール(AM)と通信する第2の手段(51)と
を備え、
前記プロセッサ(CP)は、前記第2の通信手段(51)を介して前記モジュール(AM)から読出しサブバッファ(RSB)を要求し、前記第2の通信手段(51)を介して前記モジュール(AM)から目下の読出しサブバッファIDを受信し、前記第1の通信手段(50)から当該読出しサブバッファ(RSB)からデータセットを読み出す、消費者プロセッサ(CP)。 - 前記プロセッサ(CP)は、前記モジュール(AM)の割込み要求(I0〜In)に応じて、前記第2の通信手段(51)を介して前記モジュール(AM)から読出しサブバッファ(RSB)を要求する、請求項5に記載の消費者プロセッサ(CP)。
- 共有メモリ(SM)を介したインタープロセッサ通信を管理する構成であって、請求項1〜3のいずれか1項に記載の管理モジュール(AM)を備え、前記モジュール(AM)は、請求項4〜6のいずれか1項に記載の少なくとも1つの生産者プロセッサ(PP)及び少なくとも1つの消費者プロセッサ(CP)に接続される、構成。
- アービトレーション手段(30)が、同時プロセッサアクセスをスケジューリングするために、前記プロセッサと前記管理モジュール(AM)との間の通信パスに設けられる、請求項7に記載の構成。
- 前記アービトレーション手段(30)は、前記管理モジュール(AM)と一体化される、請求項8に記載の構成。
- 共有メモリを介したインタープロセッサ通信のためのトリプルバッファ(B0〜Bm)のステートを管理する方法であって、各バッファ(B0〜Bm)は読出しサブバッファ(RSB)と書込みサブバッファ(RSB)とアイドルサブバッファ(ISB)とを有し、前記方法は、
目標バッファ(B0〜Bm)が定められ、アイドルサブバッファIDが調べ出され、当該アイドルサブバッファIDは適当な生産者プロセッサ(PP)へ配信され、新しい書込みサブバッファ(WSB)となり、前記サブバッファ(RSB、WSB、ISB)の各ステートが目下の割当てにしたがって更新される、生産者プロセッサアクセスステップと、
目標バッファ(B0〜Bm)が定められ、アイドルサブバッファ(ISB)のコンテンツが前記読出しサブバッファ(RSB)のステートより新しいかどうか検査され、より新しくない場合、当該読出しサブバッファIDは新しい読出しサブバッファ(RSB)となるべく、適当な消費者プロセッサ(CP)へ前記通信手段(20)を介して返信され、さもなければ、アイドルサブバッファIDが調べ出され、新しい読出しサブバッファ(RSB)となるべく、適当な消費者プロセッサ(CP)へ配信される、消費者プロセッサアクセスステップと
を含む。 - 各バッファ(B0〜Bm)のステートがリセット可能であり、バッファ固有の構成が可能である、管理アクセスステップをさらに含む、請求項10に記載の方法。
- 管理アクセスステップは、生産者プロセッサアクセスごとの前記バッファ(B0〜Bm)に対する割込み起動を含む、請求項10又は11に記載の方法。
- 管理アクセスステップは、生産者プロセッサアクセスごとのバッファIDの伝搬を含む、請求項10〜12のいずれか1項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07101907A EP1956484B1 (en) | 2007-02-07 | 2007-02-07 | Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory |
PCT/EP2007/060087 WO2008095548A1 (en) | 2007-02-07 | 2007-09-24 | Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010501951A true JP2010501951A (ja) | 2010-01-21 |
Family
ID=38372380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009526132A Pending JP2010501951A (ja) | 2007-02-07 | 2007-09-24 | 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20100242051A1 (ja) |
EP (1) | EP1956484B1 (ja) |
JP (1) | JP2010501951A (ja) |
CN (1) | CN101601016A (ja) |
AT (1) | ATE529808T1 (ja) |
WO (1) | WO2008095548A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019065302A1 (ja) * | 2017-09-27 | 2019-04-04 | 日立オートモティブシステムズ株式会社 | 車載マルチコア制御用データ伝達装置および電子制御装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8723877B2 (en) | 2010-05-20 | 2014-05-13 | Apple Inc. | Subbuffer objects |
WO2012069830A1 (en) * | 2010-11-24 | 2012-05-31 | Tte Systems Ltd | A method and system for identifying the end of a task and for notifying a hardware scheduler thereof |
KR102029806B1 (ko) * | 2012-11-27 | 2019-10-08 | 삼성전자주식회사 | 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치 |
US9176872B2 (en) * | 2013-02-25 | 2015-11-03 | Barco N.V. | Wait-free algorithm for inter-core, inter-process, or inter-task communication |
US20160026436A1 (en) * | 2014-07-24 | 2016-01-28 | Qualcomm Incorporated | Dynamic Multi-processing In Multi-core Processors |
US10037301B2 (en) * | 2015-03-04 | 2018-07-31 | Xilinx, Inc. | Circuits and methods for inter-processor communication |
DE102015214424A1 (de) | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Kommunizieren zwischen virtuellen Maschinen |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01119841A (ja) * | 1987-05-21 | 1989-05-11 | British Aerospace Plc <Baf> | 調歩同期伝送装置及び方法 |
JPH02310664A (ja) * | 1989-05-26 | 1990-12-26 | Hitachi Ltd | 共有メモリを用いた通信方式 |
JP2005513611A (ja) * | 2001-12-14 | 2005-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179665A (en) * | 1987-06-24 | 1993-01-12 | Westinghouse Electric Corp. | Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory |
JPH11120156A (ja) * | 1997-10-17 | 1999-04-30 | Nec Corp | マルチプロセッサシステムにおけるデータ通信方式 |
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
DE10003006A1 (de) * | 2000-01-25 | 2001-07-26 | Bosch Gmbh Robert | Anordnung und Verfahren zur Signalverarbeitung und Speicherung |
JP3706008B2 (ja) * | 2000-08-01 | 2005-10-12 | 富士通株式会社 | プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 |
JP4536361B2 (ja) * | 2003-11-28 | 2010-09-01 | 株式会社日立製作所 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
-
2007
- 2007-02-07 EP EP07101907A patent/EP1956484B1/en active Active
- 2007-02-07 AT AT07101907T patent/ATE529808T1/de not_active IP Right Cessation
- 2007-09-24 WO PCT/EP2007/060087 patent/WO2008095548A1/en active Application Filing
- 2007-09-24 US US12/303,923 patent/US20100242051A1/en not_active Abandoned
- 2007-09-24 JP JP2009526132A patent/JP2010501951A/ja active Pending
- 2007-09-24 CN CNA2007800509490A patent/CN101601016A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01119841A (ja) * | 1987-05-21 | 1989-05-11 | British Aerospace Plc <Baf> | 調歩同期伝送装置及び方法 |
JPH02310664A (ja) * | 1989-05-26 | 1990-12-26 | Hitachi Ltd | 共有メモリを用いた通信方式 |
JP2005513611A (ja) * | 2001-12-14 | 2005-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019065302A1 (ja) * | 2017-09-27 | 2019-04-04 | 日立オートモティブシステムズ株式会社 | 車載マルチコア制御用データ伝達装置および電子制御装置 |
US11836547B2 (en) | 2017-09-27 | 2023-12-05 | Hitachi Astemo, Ltd. | Data transmission device including shared memory having exclusive bank memories for writing and reading |
Also Published As
Publication number | Publication date |
---|---|
US20100242051A1 (en) | 2010-09-23 |
EP1956484A1 (en) | 2008-08-13 |
EP1956484B1 (en) | 2011-10-19 |
WO2008095548A1 (en) | 2008-08-14 |
CN101601016A (zh) | 2009-12-09 |
ATE529808T1 (de) | 2011-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7818388B2 (en) | Data processing system, method and interconnect fabric supporting multiple planes of processing nodes | |
CN102414671B (zh) | 对于不同源的分级内存仲裁技术 | |
JP3937365B2 (ja) | データ処理システムにおけるメモリリクエスト再順序付け法 | |
JP2010501951A (ja) | 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法 | |
US6631462B1 (en) | Memory shared between processing threads | |
US5854906A (en) | Method and apparatus for fast-forwarding slave request in a packet-switched computer system | |
US8307053B1 (en) | Partitioned packet processing in a multiprocessor environment | |
US8139592B2 (en) | Ticket-based operation tracking | |
US7213087B1 (en) | Mechanism to control the allocation of an N-source shared buffer | |
US7234004B2 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
US7380102B2 (en) | Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response | |
US6754739B1 (en) | Computer resource management and allocation system | |
JPS58225432A (ja) | 要求バツフア装置 | |
US8102855B2 (en) | Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope | |
US20150006825A9 (en) | Method and Apparatus for Memory Write Performance Optimization in Architectures with Out-of-Order Read/Request-for-Ownership Response | |
US5446844A (en) | Peripheral memory interface controller as a cache for a large data processing system | |
US6546465B1 (en) | Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol | |
US7809004B2 (en) | Data processing system and processing unit having an address-based launch governor | |
JP2005508549A (ja) | アンキャッシュ素子のための帯域幅の向上 | |
EP1704487B1 (en) | Dmac issue mechanism via streaming id method | |
GB2389206A (en) | Cache control using queues to buffer requests and data | |
GB2352145A (en) | Prevention of bottlenecking in data transfers | |
US6308147B1 (en) | Data structure synthesis in hardware using memory transaction translation techniques | |
JP3274634B2 (ja) | リード制御装置 | |
KR19990071122A (ko) | 다중 프로세서 회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110809 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120110 |