JP2010532509A - プロセッサ間通信のためのシステム、プロセッサ、装置および方法 - Google Patents

プロセッサ間通信のためのシステム、プロセッサ、装置および方法 Download PDF

Info

Publication number
JP2010532509A
JP2010532509A JP2010513947A JP2010513947A JP2010532509A JP 2010532509 A JP2010532509 A JP 2010532509A JP 2010513947 A JP2010513947 A JP 2010513947A JP 2010513947 A JP2010513947 A JP 2010513947A JP 2010532509 A JP2010532509 A JP 2010532509A
Authority
JP
Japan
Prior art keywords
processor
buffer
pointer
index
size
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.)
Granted
Application number
JP2010513947A
Other languages
English (en)
Other versions
JP5498378B2 (ja
Inventor
オーベルグ、パトリック
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2010532509A publication Critical patent/JP2010532509A/ja
Application granted granted Critical
Publication of JP5498378B2 publication Critical patent/JP5498378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Abstract

マルチプロセッサシステムは、データメッセージを送信する送信用プロセッサと、データメッセージを受信する受信用プロセッサと、受信用プロセッサと関連付けられたメモリユニットと、を含む。マルチプロセッサシステムは、送信用プロセッサと関連付けられたサイズインデックステーブルを有し、送信用プロセッサは、サイズインデックステーブルのインデックスに、データメッセージのペイロード部分のサイズをマッピングし、サイズ、インデックス、およびペイロード部分を含むデータメッセージを、受信用プロセッサに送信する。マルチプロセッサシステムは、受信用プロセッサと関連付けられたマッピング回路も有する。マッピング回路は、送信用プロセッサから受信されたデータメッセージに含まれるインデックスを、ポインタにマッピングし、ポインタはメモリユニットのバッファと関連付けられている。受信用プロセッサは、受信されたデータメッセージのペイロード部分を、ポインタによって示されるバッファに書き込む。マルチプロセッサシステム内に含まれる受信用プロセッサ、マルチプロセッサシステムおよび/または受信用プロセッサを含む電子装置も、プロセッサにおいてデータメッセージを受信する方法と同様に記載される。
【選択図】図5

Description

本発明は、デジタルプロセッサ分野に関し、特に、マルチプロセッサシステム内でのデジタルプロセッサ間での通信に関する。
プロセッサ間の通信は、マルチプロセッサにおいて頻繁に利用されている。マルチプロセッサシステムは、例えば、特定用途向け集積回路(ASIC:application−specific integrated circuit)のような単一チップ上に存在してもよい。代替的に、マルチプロセッサシステムは、電子装置内の異なるチップ上に存在するプロセッサ、または、場合によっては地理的に離れている別々の装置内に存在するプロセッサによって構成されてもよい。マルチプロセッサシステムのプロセッサは、標準的な民生プロセッサであってもよく、または、特定のタスクまたは条件のために特別に設計された特別な用途向けのプロセッサであってもよい。
マルチプロセッサシステムの各プロセッサは、各プロセッサ上で動作するオペレーティングシステムを有してもよい。オペレーティングシステムのコアは、各オペレーティングシステム上で動作するアプリケーションに分かるように通信する必要がある。プロセッサ間の通信は、例えば、マルチプロセッサシステム内のプロセッサのうちの第1プロセッサと関連付けられたメモリユニットから、マルチプロセッサシステム内のプロセッサのうちの弟2プロセッサと関連付けられたメモリユニットへと送信される必要があるデータメッセージを含んでもよい。データメッセージを送信するために必要なことは、例えば、第2プロセッサと関連付けられたスレッドによって、このスレッドが第1プロセッサ上のサービスを利用している場合に、開始されてもよい。
一般的に言えば、送信されるデータメッセージは、ペイロード部分、すなわち、通信される必要があるデータを含んでいる。ペイロード部分は特定のサイズを有し、例えば、バイト数で表されてもよい。ペイロード部分のサイズは、通信される必要がある異なるメッセージ間で異なっていてもよい。サイズが異なることもあり、かつ、データメッセージを受信する予定のプロセッサが、全ての可能性のあるサイズのメッセージの受信をサポートする必要があるため、受信されたデータメッセージを格納するための受信用プロセッサと関連付けられたメモリユニット内に、予め割り当てられた、固定サイズのバッファを有することは有利ではないこともある。これは、このようなソリューションが一般的に、大量のいわゆるスラック、すなわち、メモリユニットに渡って広がる未使用のメモリをもたらすからである。
従って、受信用プロセッサ(または受信用プロセッサのサブシステム)は、メッセージのペイロード部分の受信前に適切なサイズのバッファを割り当てられるように、メッセージの大きさに関する情報を取得する必要がある。この情報は、ペイロード部分の送信前に送信用プロセッサによって送信されてもよい。サイズ情報の受信により、受信用プロセッサ内で割り込み信号が生成されてもよい。その後、割り込み信号に応じて、受信用プロセッサはサイズを認識し、受信用プロセッサと関連付けられたメモリユニット内で適切なサイズのバッファを割り当てる。幾つかの実現において、バッファが割り当てられている場合には、第2割り込み信号が受信用プロセッサ内で生成される。
バッファが割り当てられている場合には、ペイロードは受信可能であり、割り当てられたバッファに格納可能である。例えばペイロードは、第2割り込み信号に応じて、または、第1割り込み信号に応じた手続きの実行の一部として受信可能であり、格納可能である。バッファへのデータメッセージのペイロード部分の格納が完了した場合には、更に別の割り込み信号が受信用プロセッサ内で生成されてもよい。この割り込み信号は、受信用プロセッサの中央処理ユニット(CPU:central processing unit)に、データメッセージが受信され、格納されていることを報知することを目的としている。この全手続きは、マルチプロセッサシステムのプロセッサ間で通信される必要がある各データメッセージのために繰り返される必要がある。
マルチプロセッサシステムのプロセッサ内の高頻度な割り込み信号は、多くの状況において深刻な不利益となる。各割り込み信号について、入力、実行、終了操作のような複数の工程が、割り込み信号が例えばキー入力または外部ハードウェア要求のようなかなり簡単な割り込み要求を伝える場合にも、この特定のプロセッサ上で動作するオペレーティングシステムによって実行される必要がある。割り込み信号が、例えばネスト型の割り込み(nested interrupt)のような、より複雑な割り込み要求を伝える場合には、オペレーティングシステムによって実行するための、より多くのステップが存在することもある。
従って、割り込み信号の頻度は、例えば、マルチプロセッサシステム内のプロセッサの性能に大きな影響を与える可能性がある。割り込み信号の頻度を下げることによって、プロセッサ上で動作するオペレーティングシステムにより行なわれるタスクの全実行時間が短縮されることもある。特に、マルチプロセッサシステムが単一チップ上に存在する場合には、メッセージ転送が非常に速い速度で実行されるべきであることが予想される可能性がある。従って、プロセッサ間のメッセージ転送のために必要な割り込みの数を低減することが、全マルチプロセッサシステムで有利であろうことが予想されるが、このような場合には特に望ましいであろう。
マルチプロセッサシステムにおいて遭遇する他の問題は、メモリユニット内の特定の位置のための意図されたデータが、メモリユニット内または他のメモリユニット内の他の不適切な、または誤った位置に書き込まれる可能性がある場合である。このようなイベントは、例えば、ハッキング、ウィルスまたは出来の悪いコードによるものである可能性がある。さらに、ハッキングまたはウィルス攻撃が、メモリユニット内に自身のデータを書き込む可能性がある。このような全ケースにおいて、後続の読み込みアクセスが、結果として、意図したものと全く異なるデータをもたらす可能性がある。
幾つかのマルチプロセッサシステムの更なる不利益は、共有メモリプロトコルのような、メモリポインタが異なるプロセッサ間で交換されるプロトコルが利用される場合である。このようなソリューションにおいては、例えば、ウィルスまたはハッカーが接続に侵入し、ポインタを読み出し、データをダウンロードするため、またはコードをダウンロードし受信用プロセッサで動作させるために、ポインタにより示されるメモリアドレスを利用する可能性があるという危険性がある。代替的に、ウィルスまたはハッカーがポインタを変更する可能性があり、これによって、意図されるデータが誤ったメモリ位置に書き込まれる。
従って、受信用プロセッサ内で出来る限り少ない割り込み信号を生成し、受信用プロセッサと関連付けられたメモリユニット内で出来る限り少ないスラックを生成する一方で、マルチプロセッサシステム内のプロセッサ間でデータメッセージを通信する必要性がある。
本発明の課題は、上記の不利益の少なくとも幾つかを未然に防ぎ、マルチプロセッサシステム内のプロセッサ間でデータメッセージを通信するための改善されたシステム、プロセッサ、装置および方法を提供することである。
本発明の第1の観点によれば、このことは、データメッセージを送信する送信用プロセッサと、上記データメッセージを受信する受信用プロセッサと、上記受信用プロセッサと関連付けられたメモリユニットと、を含むマルチプロセッサシステムによって達成される。マルチプロセッサシステムは、上記送信用プロセッサと関連付けられたサイズインデックステーブルを有し、上記送信用プロセッサは、上記サイズインデックステーブルのインデックスに、上記データメッセージのペイロード部分のサイズをマッピングし、上記サイズ、上記インデックス、および上記ペイロード部分を含む上記データメッセージを、上記受信用プロセッサに送信する。マルチプロセッサシステムは、上記受信用プロセッサと関連付けられたマッピング回路も有する。上記マッピング回路は、上記送信用プロセッサから受信された上記データメッセージに含まれる上記インデックスを、ポインタにマッピングし、上記ポインタは上記メモリユニットのバッファと関連付けられている。上記受信用プロセッサは、上記受信されたデータメッセージの上記ペイロード部分を、上記ポインタによって示される上記バッファに書き込む。
上記受信用プロセッサはさらに、システムの起動時に上記サイズインデックステーブルをセットアップしてもよい。
マルチプロセッサシステムは、上記受信用プロセッサと関連付けられたダイレクトメモリアクセスコントローラをさらに含み、周辺部からメモリへの少なくとも1つの転送と、メモリからメモリへの少なくとも1つの転送とを含む分散チェーンを実行してもよい。
マルチプロセッサシステムは、上記送信用プロセッサと上記受信用プロセッサとに関連付けられたデータリンクをさらに含んでもよい。上記送信用プロセッサは、上記データリンクと関連づけられた出力バッファを含み、上記受信用プロセッサは、上記データリンクと関連づけられた入力バッファを含んでもよい。
上記マッピング回路は、ポインタを格納するためのポインタ配列と、インデックスレジスタと、ポインタレジスタと、を含んでもよい。
上記受信用プロセッサはさらに、システムの起動時に上記ポインタ配列をセットアップしてもよい。
上記ダイレクトメモリアクセスコントローラは、上記メモリユニットのバッファを割り当て、上記メモリユニットのバッファが割り当てられている場合には上記ポインタ配列を更新してもよい。
上記受信用プロセッサの上記入力バッファは、上記サイズ、上記インデックス、および上記ペイロード部分を含む上記データメッセージを受信してもよい。上記ダイレクトメモリアクセスコントローラはさらに、上記入力バッファから上記サイズを読み出し、上記入力バッファから上記インデックスを読み出し、上記インデックスレジスタに上記インデックスを書き込み、上記ポインタレジスタから、上記メモリユニットの上記バッファと関連付けられた上記ポインタを読み出し、上記入力バッファから上記ペイロード部分を読み出し、上記ポインタによって示される上記バッファに上記ペイロード部分を書き込んでもよい。
上記ダイレクトメモリアクセスコントローラはさらに、上記ペイロード部分が上記バッファに書き込まれている場合に割り込み信号を生成してもよい。
上記ダイレクトメモリアクセスコントローラはさらに、システムスタックの上位レイヤに上記バッファを通知し、上記送信用プロセッサへと確認メッセージを送ってもよい。
上記バッファは第1バッファであってもよく、上記ダイレクトメモリアクセスコントローラはさらに、上記メモリユニットの第2バッファを割り当て、上記第2バッファは上記第1バッファと同じサイズを有しており、上記第2バッファと関連付けられたポインタで、上記ポインタ配列を更新してもよい。
上記メモリユニットは第1メモリユニットであってもよく、上記マルチプロセッサシステムは、上記送信用プロセッサと関連付けられた第2メモリユニットをさらに含んでもよい。上記第2メモリユニットは、上記サイズインデックステーブルを格納してもよい。
本発明の第2の観点によれば、プロセッサは、マルチプロセッサシステムに含まれる。上記プロセッサは、ペイロード部分、上記ペイロード部分のサイズ、およびインデックスを含むデータメッセージを受信する受信用プロセッサである。上記マルチプロセッサシステムは、上記データメッセージを送信する送信用プロセッサと、上記受信用プロセッサと関連付けられたメモリユニットとをさらに含む。上記プロセッサは、上記送信用プロセッサから受信された上記データメッセージに含まれる上記インデックスを、ポインタにマッピングするマッピング回路を有し、上記ポインタは上記メモリユニットのバッファと関連付けられている。上記受信用プロセッサは、上記受信されたデータメッセージの上記ペイロード部分を、上記ポインタによって示される上記バッファに書き込む。
さらに、第2の観点に従ったプロセッサは、第1の観点に従った実施形態の様々な特徴に対応する特徴を有してもよい。
本発明の第3の観点によれば、電子装置は、第1の観点に従ったマルチプロセッサシステムと、第2の観点に従ったプロセッサと、の少なくとも1つを含む。
上記電子装置は、携帯型または手持ち型の移動無線通信機器、移動無線端末、携帯電話、ポケットベル、発信機、電子手帳、スマートフォン、コンピュータ、組込み型ドライブ、携帯型ゲーム機、時計、基地局、または、基地局コントローラであってもよい。
本発明の第4の観点によれば、プロセッサにおいてデータメッセージを受信する方法において、上記データメッセージは、サイズ、インデックス、およびペイロード部分を含み、上記方法は、上記プロセッサの入力バッファから上記サイズを読み出す工程と、上記入力バッファから上記インデックスを読み出す工程と、ポインタへと上記インデックスをマッピングする工程と、上記入力バッファから上記ペイロード部分を読み出す工程と、上記プロセッサと関連付けられたメモリのバッファに、上記ペイロード部分を書き込む工程であって、上記バッファは上記ポインタにより示される、上記書き込み工程と、を含む。
上記ポインタは、ポインタ配列内に含まれてもよい。
ポインタに上記インデックスをマッピングする上記工程は、インデックスレジスタに上記インデックスを書き込む工程と、上記ポインタに上記インデックスをマッピングする工程と、ポインタレジスタに上記ポインタを書き込む工程と、上記ポインタレジスタから上記ポインタを読み出す工程と、を含んでもよい。
さらに、第4の観点に従った方法は、第1の観点に従った実施形態の様々な特徴に対応する特徴を有してもよい。
本発明のさらなる実施形態は、従属請求項に定義されている。
本発明の実施形態の効果の1つは、プロセッサが他のプロセッサからデータメッセージを受信する場合にプロセッサ内で生成される割り込み信号の数が低減されることである。さらに正確には、データメッセージの受信と関連付けられた割り込み信号の数は、少なくとも半減されうる。さらに、幾つかの実現に比べて3分の1でありうる。
本発明の実施形態の更なる効果は、非合法の、および/または望まれないメモリ利用を防止する内蔵型のセキュリティの仕組みが存在しうるということである。
本発明の実施形態の他の効果は、マルチプロセッサシステムのプロセッサ間でメモリポインタが送信されないことであり、このことがウィルスのような望まれないコードに対するセキュリティを向上させる。
本発明の実施形態の更に別の効果は、割り込み信号の数の低減を可能にするために、本発明の実施形態に従ってメモリ・バッファが予め割り当てられているとしても、スラック(slack)と呼ばれる、メモリユニットに渡って広がる未使用のメモリの量が未だに非常に低いレベルに保たれうるということである。
本明細書で利用される場合「含む/含んでいる」(“comprises/comprising”)という語は、述べられている特徴、整数、ステップ、または構成要素の存在を特定するために利用されるが、1つまたは複数の他の特徴、整数、ステップ、または構成要素、またその集合の存在を排除するものではないことが強調される。
本発明の更なる目的、特徴、および効果は、添付の図面を参照して、本発明の実施形態の以下の詳細な記載から明らかとなろう。
マルチプロセッサシステムの2つのオペレーションシステム間での通信を説明する図である。 本発明の幾つかの実施形態に従ったマルチプロセッサシステムを説明するブロック図である。 本発明の幾つかの実施形態に従ったサイズインデックステーブルを説明するブロック図である。 本発明の幾つかの実施形態に従ったマルチプロセッサシステムの2つのプロセッサ間で送信されるデータメッセージを説明する図である。 本発明の幾つかの実施形態に従ったインデックスポインタ・マッピング回路を説明するブロック図である。 本発明の幾つかの実施形態に従ったポインタ配列において体系化された、メモリユニットのバッファとバッファのポインタとの間の関連付けを説明するブロック図である。 本発明の幾つかの実施形態に従ったマルチプロセッサシステムのプロセッサにおいてデータメッセージを受信する方法を説明する流れ図である。 本発明の幾つかの実施形態に従ったダイレクトメモリアクセス・分散チェーンの操作を説明する図である。 本発明の幾つかの実施形態に従ったマルチプロセッサシステム、またはマルチプロセッサシステムの一部を含むことが可能な移動端末の正面図である。
以下では、データメッセージがマルチプロセッサシステムの2つのプロセッサ間で通信される本発明の実施形態を記載することにする。図1は、このようなマルチプロセッサシステムの2つのオペレーションシステム間での通信を説明するものである。図1では、メッセージ150が、マルチプロセッサシステムの第1プロセッサ上で動作する第1オペレーティングシステム(OS:operating system)110によって、マルチプロセッサシステムの第2プロセッサ上で動作する第2オペレーティングシステム(OS)120へと通信されている。第1オペレーティングシステムは、第1プロセッサと関連付けられたメモリユニット130の位置131から、データメッセージ150のペイロードを取り出し、それを第2オペレーティングシステム120へと通信する。第2オペレーティングシステム120は、データメッセージ150を受信し、ペイロードを、第2プロセッサと関連付けられたメモリユニット140の位置141に格納する。
図2は、本発明の例示的な実施形態に従ったマルチプロセッサシステム200のブロック図を示している。図1の第1オペレーティングシステム110、第2オペレーティングシステム120は、例えば、プロセッサ210、220上それぞれで動作してもよい。以下の記載を簡単にするために、プロセッサ210を送信用プロセッサと、プロセッサ220を受信用プロセッサと呼ぶことにする。しかし、当然のことながら、本発明の実施形態では、マルチプロセッサシステムのプロセッサは、送信用プロセッサと受信用プロセッサの双方としてふるまってもよい。さらに、本発明の実施形態に従ったマルチプロセッサシステムは、2つ以上のプロセッサを含んでもよく、本明細書に記載される実施形態は、マルチプロセッサシステム内の全てのプロセッサの対に適用されてもよいものと理解される。
送信用プロセッサおよび受信用プロセッサのそれぞれは、中央処理ユニット(CPU)211、221を含んでいる。ダイレクトメモリアクセス(DMA:direct memory access)コントローラ250、および、所定のインタフェース280は、送信用プロセッサ210と関連付けられている。インタフェース280は、例えば、ファーストイン、ファーストアウト(FIFO:first−in first−out)のシフトレジスタのような、関連付けられたキュー281を有する。さらに、送信用プロセッサ210は、関連付けられたメモリユニット130を有し、このメモリユニット130へのアクセスは、ダイレクトメモリアクセスコントローラ250により制御される。同様に、受信用プロセッサ220は、関連付けられたダイレクトメモリアクセス(DMA)コントローラ260と、それへのアクセスがダイレクトメモリアクセスコントローラ260により制御される、関連付けられたメモリユニット140と、関連付けられた所定のインタフェース290と、を有し、インタフェース290は、例えば、ファーストイン、ファーストアウト(FIFO)のシフトレジスタのような関連付けられたキュー291を有する。受信用プロセッサと関連付けられたダイレクトメモリアクセスコントローラ260は、分散チェーン(scatter chain)を実行することが可能であり、その際には、周辺部からメモリへの転送と、メモリからメモリへの転送とが同じ分散チェーン内で結び付けられうる。インタフェース280、290は、データリンク270を通じて接続されており、このデータリンク270は直列リンクバスであってもよいが、これに限定されない。データリンク270は、リンクハンドラ(図示せず)によって管理されてもよい。
図3Aは、本発明の実施形態に従ったサイズインデックステーブル(size−index table)300を示している。サイズインデックステーブル300は、サイズ330の配列310と、インデックス340の対応する配列320と、を含む。テーブルでは、各サイズ330は対応するインデックス340を有し、各インデックス340は対応するサイズ330を有する。当然のことながら、本発明で使用される場合には「配列」(array)および「テーブル」(table)という語は広義に解釈される。例えば、「テーブル」は、単にサイズのベクトルを含んでもよい。その場合には、インデックスは、ベクトルにおける各サイズの位置と同一である。さらに、サイズインデックステーブルのサイズおよびインデックスは、例えば、別のハードウェアユニットとして、プロセッサに不可欠なハードウェア回路として、または、メモリユニット内に格納されたソフトウェアデータとして具現されてもよい。
ここで、図2および図3Aを参照することにする。本発明の実施形態において、サイズインデックステーブル300は、送信用プロセッサ210と関連付けられてもよい。例として、サイズインデックステーブル300は、受信用プロセッサ220により、システムの起動時にセットアップされてもよい。サイズインデックステーブルは、受信用プロセッサ220のソフトウェアによって、セットアップされてもよい。このセットアップの手続きにおいて、受信用プロセッサ220は、サイズインデックステーブル300を作成するために、受信用プロセッサ220と関連付けられたメモリユニット140のために適切な複数のバッファサイズ330を決定し、これらサイズを配列において配置し、インデックス340を各サイズと関連付ける。その後、受信用プロセッサ220は、テーブル300を送信用プロセッサ210に通信し、この送信用プロセッサ210は、例えば、メモリユニット130にテーブルを格納する。代替的に、サイズインデックステーブルは、所定のものであってもよく、従って例えば、専用のハードウェアにハードコードされていても(hard−coded)よい。本発明の幾つかの実施形態において、受信用プロセッサ220は、例えばメモリユニット140内にサイズインデックステーブル300の複写も保持する。
図3Bは、図2の送信用プロセッサ210と、図2の受信用プロセッサ220との間で送信されるデータメッセージ350を説明するものである。図3Bに加えて、再び図2および図3Aを参照しながら、本発明の実施形態についてさらに詳しく述べることにする。メッセージのペイロード353が送信用プロセッサ210から受信用プロセッサ220に通信される場合に、送信用プロセッサ210は、サイズインデックステーブル300を用いて、メッセージ350をインデックス352と関連付ける。関連付けは、メッセージ350のペイロード部分353のサイズ351を、対応するインデックス352、340に対してマッピングし、メッセージ350にインデックスを挿入することによって行なわれる。その場合、データメッセージ350は、図3Bに示されるように、ペイロード353に加えて、サイズ351とインデックス352を含んでもよい。
サイズインデックステーブル300におけるサイズ330は、送信用プロセッサ210と受信用プロセッサ220との間で通信されるメッセージ350のペイロード部分353の全可能なサイズ351を処理できるべきである。通信されるメッセージ350のペイロード部分353が、サイズインデックステーブル300内のエントリのサイズ330に直接的に対応しないサイズ351を有する場合に、サイズインデックステーブル300内のより大きなサイズ330、例えば、メッセージ350のペイロード部分353のサイズ351よりも大きい、サイズインデックステーブル300内の最小サイズ330に対応するインデックス340が選択される。従って、例えばマルチプロセッサシステムのプロセッサ間で通信されるメッセージのペイロード部分が、1〜16ビットの間のいずれかであってよい場合に、サイズインデックステーブルは、少なくとも1つのエントリを有する必要があり、但し、関連付けられたサイズは16ビット以上である。例えば、サイズインデックスは、サイズ4、6、8、および16ビットを含むことが可能であることもあり、対応するインデックスは、0、1、2、および3である。送信されるメッセージが7バイトのサイズのペイロード部分を有する場合に、サイズインデックステーブル内の、8バイトのサイズに対応するエントリ(7バイト以上であるテーブル内の最小サイズ)が選択され、ペイロードサイズがインデックス2にマッピングされる。
サイズとインデックスとの間のマッピングが行なわれている場合には、所定のインタフェース280、290によって予め定められてように、メッセージがデータリンク270を介して送信される。図3Bに示されるように、ペイロード部分353には、ペイロード部分のサイズ351、および、関連付けられたインデックス352が伴う。図3Bに示されるフォーマットは単なる例であり、本発明の幾つかの実施形態において、メッセージ部分が他の順序で現れてもよいことに注意されたい。例えば、インデックス部分とサイズ部分とが入れ替えられてもよい。本発明の幾つかの実施形態において、メッセージは追加的な部分を含んでもよい。
メッセージ350、または、メッセージ350の少なくとも一部が受信用プロセッサ220の入力キュー291に送信されている場合に、受信用プロセッサのダイレクトメモリアクセスコントローラ260は、サイズ351およびインデックス352をキューから読み出す。これらメッセージ部分を読み出す順番は、メッセージのフォーマット、および、キューがどのように管理されているかに依存する。どのような場合にも、インデックス352は、メモリユニット140内の予め割り当たられたバッファと関連付けられたポインタにマッピングされる。その後、ダイレクトメモリアクセスコントローラ260は、入力キュー291からメッセージのペイロード部分353を読み出し、このペイロード部分を、ポインタに示されるように、予め割り当てられたバッファに書き込む。これらの読み出し手続きおよび書き込み手続きにおいて読み出され、書き込まれるデータの量は、入力キューから事前に読み出されたサイズ351により定められる。
ここで、図2、図4Aおよび図4Bを参照しながら、ポインタへのインデックス352のマッピングについてより詳細に記載することにする。図4Aは、本発明の例示的な実施形態に従ったインデックスポインタ・マッピング回路400を説明するものである。このマッピング回路は、受信用プロセッサのサブシステムからのみ、読み出しおよび/または書き込みのためにアクセス可能であってもよい。マッピング回路400は、受信用プロセッサ220と関連付けられた別のハードウェア・ブロックとして実現されてもよく、または、受信用プロセッサ220の不可欠な部分であってもよい。マッピング回路400は、インデックスポインタテーブル430を含み、インデックスポインタテーブル430は、インデックス440の配列495と、ポインタ450の対応する配列490を含む。テーブルにおいて、各インデックス440は対応するポインタ450を有し、各ポインタ450は対応するインデックス440を有する。以前に記載されたサイズインデックステーブルに関しては、当然のことながら、本明細書で使用される場合に「配列」(“array”)および「テーブル」(“table”)という語は広義に解釈される。例えば、「テーブル」は、単にポインタのベクトルを含んでもよい。その場合、インデックスは、ベクトルにおける各ポインタの位置と同一である。さらに、インデックスポインタテーブルのインデックスおよびポインタは、例えば、別のハードウェアユニットとして、プロセッサに不可欠なハードウェア回路として、または、メモリユニット内に格納されたソフトウェアデータとして具現されてもよい。
図4Aに示される実施形態において、マッピング回路はさらに、インデックスレジスタ410と、ポインタレジスタ420とを含む。受信用プロセッサ220のダイレクトメモリアクセスコントローラ260が入力キュー291からインデックスを読み出している場合には、インデックスは、マッピング回路400のインデックスレジスタ410に書き込まれる。マッピング回路は、インデックスレジスタ410内のインデックスに対応するポインタを検出し、このポインタをマッピング回路400のポインタレジスタ420に書き込むように構成され、但し、ポインタは、ダイレクトメモリアクセスコントローラ260により読み出されてもよい。マッピング回路は、ポインタレジスタ420からポインタが読み出し可能であるまでは更なるメッセージアクセスが行なわれないように、インデックスレジスタ410に対する書き込みをハンドシェーク(handshake)してもよい。
ハンドシェークは例えば、インデックスレジスタ410にインデックスを書き込んだ後に、ポインタレジスタ420から即座に読み出すことをダイレクトメモリアクセスコントローラ260に許可されないように、遂行されてもよい。代わりに、ダイレクトメモリアクセスコントローラ260は、ポインタレジスタ420から読み出すことを許可されるまで待つ必要がある。マッピング回路400は、ポインタレジスタ420が更新され、読み出される準備が整うまで、例えば、書き込み操作に対する自身の応答を遅らせてもよい。代替的に、ポインタレジスタ420が更新され、読み出される準備が整っている場合には、マッピング回路400は、書き込み操作に対して即座に応答し、その後、ダイレクトメモリアクセスコントローラ260のための別の標識を作成してもよい。
以前に説明したように、ポインタレジスタ420から読み出されるポインタは、受信されたデータメッセージのペイロード部分が書き込まれるべき、メモリユニット140のバッファと関連付けられている。ポインタと関連付けられた、予め割り当てられたバッファのサイズは、サイズインデックステーブル内で、インデックスポインタテーブル内のポインタと同じインデックスと関連付けられているサイズに対応する。
図4Bは、ポインタ配列490内のバッファポインタ450と、メモリユニット140の予め割り当てられた、例示的なバッファ460、470、480との間の関連付けを説明するものである。ポインタ450は、図4Bに示されるように、バッファ460、470、480へのダイレクトポインタ(すなわち、メモリアドレス)であってもよいが、ポインタ450は、バッファ460、470、480を間接的に定めてもよいことに注意されたい。例えば、ポインタ450は、レジスタユニットのレジスタ、または、バッファ位置とは異なるメモリ位置を指し示してもよい。その場合、レジスタまたはメモリ位置は、反対に、バッファ460、470、480のメモリアドレスを含む。このソリューションは、例えば、バッファのメモリアドレスが、レジスタアドレス、またはバッファ位置とは異なるメモリ位置のアドレスよりも長い場合に有利である可能性がある。このように、マッピング回路400にポインタ配列490を格納するために必要なローカルメモリの量を最小限にすることが可能である。
メッセージのペイロード部分がメモリユニット140の識別されたバッファ460、470、480に書き込まれている場合に、割り込み信号が、受信用プロセッサ内で生成されてもよい。この割り込み信号は、受信用プロセッサのCPUに、データメッセージが受信され格納されていることを報知することを目的とする。従って、マルチプロセッサシステムのプロセッサ間でのメッセージ通信との関連で生成される割り込み信号の数は、本発明の実施形態を実施する際に、メッセージごとに1つの割り込み信号に低減される。割り込み信号は、例えば、受信用プロセッサと関連付けられたシステムスタックの上位レイヤにバッファを通知し、メモリユニット140内の新しいバッファ460、470、480を割り当て、新しいバッファは上位レイヤへと正に通知されたバッファと同じサイズを有しており、ポインタ配列490内の適切なエントリに新しいバッファと関連付けられたポインタ450を書き込み、送信用プロセッサが他の目的のために送信用バッファを開放できるように送信用プロセッサに確認メッセージを送信する、といったタスクの実行を開始してもよい。
図2、図3A、および図4Aを再び参照するが、バッファ460、470、480は、受信用プロセッサ220において、システムの起動時に、サイズインデックステーブル300をセットアップしそれを送信用プロセッサ210に通信することに場合によっては関連して、割り当てられてもよい。サイズインデックステーブルにおける各サイズについて、この特別なサイズの対応するバッファ460、470、480が割り当てられる。各バッファと関連付けられて、ポインタ450がポインタ配列490に格納される。ポインタ配列490は、システムの起動時にセットアップされてもよい。ポインタ配列は、受信用プロセッサ220のソフトウェアによってセットアップされてもよい。その場合、メッセージがバッファ460、470、480のうちの1つに書き込まれる度に、同じサイズの新しいバッファが割り当てられてもよく、ポインタ配列490の対応するエントリが、新しいバッファと関連付けられたポインタで更新されてもよい。ポインタ450がレジスタまたはメモリを指し示し、このレジスタまたはメモリ位置が反対にバッファ460、470、480のメモリアドレスを含む代替的な実現のために、ポインタ配列490の対応するエントリは、新しいバッファが割り当てられている場合には更新される必要はない。代わりに、レジスタユニットまたはメモリ位置の対応するエントリが、新しいバッファのアドレスで更新されてもよい。
本発明の実施形態に従ってバッファを予め割り当て、更新する手続きは、メモリユニット140内に不必要なスラックをもたらすことなく実行されることに注意されたい。このことは、予め割り当てられたバッファを備える他のシステムとは対象的である。このソフトウェア層において不可能ではないにしても、これらのバッファの寿命を予測することが非常に困難なのでこの特徴は重要である。本発明の実施形態によれば、異なるサイズの複数のバッファを使用することによって、不必要なスラックを防止することが可能である。しかし、許容可能なスラックの量と、サイズインデックステーブル300内のエントリ数(従って、ポインタ配列490内のエントリ数)との間には、トレードオフ(trade−off)があるであろう。
他のメッセージ送信のソリューションは、割り当てられたバッファへのポインタが送信用プロセッサへと送信される技術を利用することも可能である。このことは、ウィルスまたはハッカーが、バッファへのデータまたはコードをダウンロードするきっかけとなる。さらに、ポインタは、ウィルスまたはハッカーによって、または不完全に設計されたコードによって変更される可能性もある。ポインタが変更されている場合、意図されるデータが、場合によっては他のデータを上書きして、メモリ内のどこかに止まっている可能性がある。このように、意図されるデータは追跡不可能なこともあり、上書きされたデータが失われることもある。従って、本発明の実施形態に従ったソリューションが、このような非合法な、または望まれないメモリ利用を防止することが可能な内蔵型のセキュリティの仕組みを有することは注意に値する。これらの実施形態は、メッセージ送信と関連付けられたポインタの送信を回避し、これによって、例えばウィルスやハッカーが、受信用プロセッサにおいてコードをダウンロードし、動作させることがより困難になる。代わりに、本実施形態に従ってバッファのインデックスが送信される。
図5には、本発明の幾つかの実施形態に従ってマルチプロセッサシステムのプロセッサにおいてデータメッセージを送信する方法を示す流れ図500が示されている。本方法は、例えば、図2の受信用プロセッサ220のようなプロセッサにおいて実行されてもよく、図2のダイレクトメモリアクセスコントローラ260は、ダイレクトメモリアクセス・分散チェーンの操作の一部として本方法を実行する役目を果たしてもよい。本方法は510において開始し、ステップ510では、受信されたデータメッセージのペイロード部分のサイズが、図2のFIFOレジスタ291のような、プロセッサの入力キューから読み出される。メッセージに含まれるインデックスは、ステップ520において入力キューから読み出され、ステップ530においてポインタにマッピングされる。
マッピングの手続きは、ステップ531におけるインデックスレジスタへのインデックスの書き込み、ステップ532におけるポインタへのマッピング、ステップ533におけるポインタレジスタへのポインタの書き込み、および、ステップ534におけるポインタレジスタからのポインタの読み出しによって行なわれてもよい。先に述べたように、ポインタへのインデックスのマッピングは、ポインタの配列からの、インデックスに対応するエントリの読み出しによって実現されてもよい。ポインタの配列、インデックスレジスタ、およびポインタレジスタは、図4Aにおけるマッピング回路400として具現されてもよく、ポインタ532へのインデックスのマッピング、ポインタレジスタ533へのポインタの書き込みは、ダイレクトメモリアクセス・分散チェーンによってではなく、マッピング回路のハードウェアによって、行なわれてもよい。
インデックスがポインタにマッピングされている場合には、本方法はステップ540に進み、ステップ540では、ペイロードの転送が、ステップ510において入力キューから読み出されたサイズと、ステップ530において読み出されたポインタを用いて行なわれる。ペイロードの転送は、ステップ541において開始してもよく、ステップ541では、データメッセージのペイロードが入力キューから読み出される。ステップ542において、ペイロードの転送は、ステップ530において読み出されたポインタにより示されるように、バッファにペイロードを書き込むことによって進められてもよい。本方法のステップ541および542は、第1データがステップ542においてバッファに書き込まれ、その一方で第2データがステップ541において入力バッファから読み出されるように、パイプライン方式で実行される(pipeline)。
ペイロードの転送が完了している場合には、本方法は、本発明の幾つかの実施形態に従ってステップ550へと進み、ステップ550では、割り込み要求が実行される。割り込み要求は、ステップ551、552、553、および554のうちの1つ、または幾つかを含んでもよい。ステップ551において、ステップ542において書き込まれたバッファが、システムスタックの上位レイヤに通知される。ステップ542で書き込まれたバッファと同じサイズの新しいバッファが、ステップ552において割り当てられる。ステップ553において、ポインタの配列が、新規に割り当てられたバッファと関連付けられたポインタで更新される。最後に、ステップ554において、メッセージが完全に受信され格納されたことを伝えるために、確認メッセージが送信される。
図6は、本発明の幾つかの実施形態に従ったダイレクトメモリアクセス・分散チェーン600の操作を説明するものである。分散チェーンリンク(scatter chain link)610、620、630、および640は、図5において説明された本方法のステップ510、520、530、および540に対応してもよい。
例示的な分散チェーン600のリンク610では、実サイズ(X)が入力バッファ291(SRC:RX FIFO)から読み出され、リンク620では、インデックスが入力バッファ291(SRC:RX FIFO)から読み出される。リンク620では、読み出されたインデックスはまた、インデックスレジスタ410(DST:インデックスレジスタ)に書き込まれる。例示的な分散チェーン600のリンク630において、バッファポインタが、ポインタレジスタ420(SRC:ポインタレジスタ)から読み出される。例示的な分散チェーンのリンク640は、読み出された実サイズおよびバッファポインタそれぞれによってリンク640を更新するリンク610および630によって変更されることに注意されたい。このことは、矢印611および631により示されている。その後、ペイロードの転送がリンク640において行なわれ、リンク640では、サイズXのペイロードデータが入力バッファ291(SRC:RX FIFO)から読み出され、バッファポインタにより示されるように、バッファに書き込まれる。
図6から分かるように、この例示的な分散チェーンにおける最初の4つの分散リンクが、ペイロードの転送をセットアップすることになっている。本例示的な実施形態において、ソースポインタおよび実サイズは、直列リンク270を介して送信用プロセッサ210から来る。しかし、受信用バッファへのポインタは、ポインタレジスタ420から来る。バッファポインタは、マッピング回路400によって、送信用プロセッサによりストリームに付けられたインデックスに基づいて選択される。リンク640においてペイロード転送が完了した後に、ダイレクトメモリアクセス割り込み要求(IRQ)650が実行される。先に説明したように、この割り込み要求は、上位レイヤにバッファを通知し、同じサイズの新しいバッファを割り当て、従ってポインタ配列を更新し、送信用プロセッサに確認メッセージを送信してもよい。
本発明の記載された実施形態とその均等物は、デジタル信号プロセッサ(DSP:digital signal processor)、中央処理ユニット(CPU)、コプロセッサユニットのような、マルチプロセッサシステムと関連付けられた、もしくはマルチプロセッサシステムに不可欠な汎用回路によって、または、例えば特定用途向け集積回路(ASIC)もしくは他の集積回路(IC)のような特殊回路によって、実行されてもよい。このような全形態は、本発明の範囲内にあるように構想されている。本発明は、本発明の実施形態のいずれかに従ったマルチプロセッサシステム、またはマルチプロセッサシステムの一部を含む電子装置において具現されてもよい。電子装置は、例えば、携帯型または手持ち型の移動無線通信機器、移動無線端末、携帯電話、ポケットベル、発信機、電子手帳、スマートフォン、コンピュータ、組込み型ドライブ、携帯型ゲーム機、または(腕)時計であってもよい。電子装置は、代替的に、通信システムにおける基地局、または基地局コントローラであってもよい。マルチプロセッサシステムのプロセッサは、単一の電子機器内に、かつ単一チップ上に存在にしてもよく、または、場合によっては地理的に離れている別々の装置内に存在してもよい。
図7は、上記のようなマルチプロセッサシステムの少なくとも一部を含む例示的な電子装置としての、携帯電話700を説明するものである。携帯電話700が、正面図で示されている。この例示的な携帯電話700は、装置の筐体に取り付けられたアンテナ701を含む。代替的に、携帯電話700は、装置の筐体内に取り付けられた内部アンテナを有してもよい。携帯電話700はさらに、携帯電話700を操作するためのマンマシン・インタフェース(man−machine interface)を共に提供する、表示部704と、キーパッド705と、スピーカー702と、マイクロホン706と、を含んでもよい。
携帯電話700は、無線基地局への無線リンクを介して移動通信ネットワークに接続するように適合される。従って、携帯電話700のユーザは、音声通話、データ通話、映像通話、およびファックス送信のような、従来の回線交換通信サービスと同様に、電子メッセージ、インターネット閲覧、電子商取引などのようなパケットに基づくサービスを利用することが可能である。この目的を達成するために、携帯電話は、例えば、移動通信のためのグローバルシステム(GSM:Global System for Mobile communications)、汎用パケット無線サービス(GPRS:General Packet Radio Service)、EDGE(Enhanced Data rate for GSM
Evolution)、ユニバーサル移動通信システム(UMTS:Universal Mobile Telecommunications System)、またはUMTS LTE(UMTS Long Term Evolution)のような移動通信規格に則している。
様々な実施形態を参照しながら本発明を解説してきた。しかし、当業者には、本発明の範囲に依然として収まる、記載された実施形態に対する数多くの変形が明らかであろう。例えば、本明細書に記載される方法の実施形態は、ある一定の順序に従って実行される本方法のステップを通じて、本方法を記載している。しかし、これらのイベントのシーケンスが、本発明の範囲から逸脱することなく、他の順序で行なわれることも可能であることが認識される。さらに、幾つかの方法のステップは、連続して行なわれるように記載されているが、並行して行なわれてもよい。同様に、本発明の実施形態の記載では、特定のユニットへの機能ブロックの配分は、決して、本発明を制限するものではないことに注意されたい。反対に、これらの配分は単なる例である。1つのユニットとして本明細書に記載される機能ブロックは、2つ以上のユニットに分けられてもよい。同様に、2つ以上のユニットとして実現されるものとして本明細書に記載されている機能ブロックは、本発明の範囲を逸脱することなく、単一ユニットとして実現されてもよい。
従って、当然のことながら、記載される実施形態の限定は、単に例示することを目的としており、決して制限を目的とするものではない。反対に、本発明は、添付の特許請求の範囲と、その全妥当な均等物によってのみ制限されるものと解釈される。

Claims (33)

  1. データメッセージ(150、350)を送信する送信用プロセッサ(210)と、
    前記データメッセージを受信する受信用プロセッサ(220)と、
    前記受信用プロセッサと関連付けられたメモリユニット(140)と、
    を含むマルチプロセッサシステムにおいて、
    前記送信用プロセッサと関連付けられたサイズインデックステーブル(300)と、
    前記データメッセージのペイロード部分(353)のサイズ(351)を、前記サイズインデックステーブルのインデックス(352、340)にマッピングし、前記サイズ、前記インデックス、前記ペイロード部分を含む前記データメッセージを、前記受信用プロセッサに送信する前記送信用プロセッサと、
    前記受信用プロセッサと関連付けられたマッピング回路(400)であって、前記マッピング回路は、前記送信用プロセッサから受信された前記データメッセージに含まれる前記インデックス(352、340、440)を、ポインタ(450)にマッピングし、前記ポインタは、前記メモリユニットのバッファ(460、470、480)と関連づけられている、前記マッピング回路(400)と、
    前記受信されたデータメッセージの前記ペイロード部分を、前記ポインタによって示される前記バッファに書き込む前記受信用プロセッサと、
    を特徴とする、マルチプロセッサシステム。
  2. 前記受信用プロセッサ(220)はさらに、システムの起動時に前記サイズインデックステーブル(300)をセットアップする、請求項1に記載のマルチプロセッサシステム。
  3. 前記受信用プロセッサと関連付けられたダイレクトメモリアクセスコントローラ(260)をさらに含み、周辺部からメモリへの少なくとも1つの転送と、メモリからメモリへの少なくとも1つの転送とを含む分散チェーンを実行する、請求項1または請求項2のいずれか1項に記載のマルチプロセッサシステム。
  4. 前記送信用プロセッサ(210)と前記受信用プロセッサ(220)とに関連付けられたデータリンク(270)をさらに含むマルチプロセッサシステムであって、前記送信用プロセッサは、前記データリンクと関連づけられた出力バッファ(281)を含み、前記受信用プロセッサは、前記データリンクと関連づけられた入力バッファ(291)を含む、請求項3に記載のマルチプロセッサシステム。
  5. 前記マッピング回路は、ポインタを格納するためのポインタ配列(490)と、インデックスレジスタ(410)と、ポインタレジスタ(420)とを含む、請求項4に記載のマルチプロセッサシステム。
  6. 前記受信用プロセッサ(220)はさらに、システムの起動時に前記ポインタ配列をセットアップする、請求項5に記載のマルチプロセッサシステム。
  7. 前記ダイレクトメモリアクセスコントローラ(260)は、前記メモリユニットのバッファ(460、470、480)を割り当て、前記メモリユニットのバッファが割り当てられている場合には前記ポインタ配列(490)を更新する、請求項5または請求項6のいずれか1項に記載のマルチプロセッサシステム。
  8. 前記受信用プロセッサ(220)の前記入力バッファ(291)は、前記サイズ(351)、前記インデックス(352、340)、および前記ペイロード部分(353)を含む前記データメッセージ(150、350)を受信し、
    前記ダイレクトメモリアクセスコントローラ(260)は、
    前記入力バッファから前記サイズを読み出し、
    前記入力バッファから前記インデックスを読み出し、
    前記インデックスレジスタ(410)に前記インデックスを書き込み、
    前記ポインタレジスタ(420)から、前記メモリユニット(140)の前記バッファ(460、470、480)と関連付けられた前記ポインタ(450)を読み出し、
    前記入力バッファから前記ペイロード部分を読み出し、
    前記ポインタによって示される前記バッファに前記ペイロード部分を書き込む、請求項5〜請求項7のいずれか1項に記載のマルチプロセッサシステム。
  9. 前記ダイレクトメモリアクセスコントローラ(260)はさらに、前記ペイロード部分が前記バッファに書き込まれている場合に割り込み信号を生成する、請求項8に記載のマルチプロセッサシステム。
  10. 前記ダイレクトメモリアクセスコントローラ(260)はさらに、システムスタックの上位レイヤに前記バッファを通知し、前記送信用プロセッサへと確認メッセージを送る、請求項8または請求項9のいずれか1項に記載のマルチプロセッサシステム。
  11. 前記バッファ(460、470、480)は第1バッファであり、
    前記ダイレクトメモリアクセスコントローラ(260)はさらに、
    前記メモリユニット(140)の第2バッファ(460、470、480)を割り当て、前記第2バッファは前記第1バッファと同じサイズを有しており、
    前記第2バッファと関連付けられたポインタで、前記ポインタ配列(490)を更新する、請求項8〜請求項10のいずれか1項に記載のマルチプロセッサシステム。
  12. 前記メモリユニット(140)は第1メモリユニットであり、前記マルチプロセッサシステムは、前記送信用プロセッサ(210)と関連付けられた第2メモリユニット(130)をさらに含み、前記第2メモリユニットは、前記サイズインデックステーブル(300)を格納する、請求項1〜請求項11のいずれか1項に記載のマルチプロセッサシステム。
  13. マルチプロセッサシステム(200)に含まれるプロセッサであって、前記プロセッサは、ペイロード部分(353)、前記ペイロード部分のサイズ(351)、およびインデックス(352)を含むデータメッセージ(150、350)を受信する受信用プロセッサ(220)であり、前記マルチプロセッサシステムは、前記データメッセージを送信する送信用プロセッサ(210)と、前記受信用プロセッサと関連付けられたメモリユニット(140)とをさらに含む、前記プロセッサにおいて、
    前記プロセッサは、
    前記送信用プロセッサから受信された前記データメッセージに含まれる前記インデックス(352、340、440)を、ポインタ(450)にマッピングするマッピング回路(400)であって、前記ポインタは、前記メモリユニットのバッファ(460、470、480)と関連付けられている、前記マッピング回路(400)と、
    前記受信されたデータメッセージの前記ペイロード部分を、前記ポインタによって示される前記バッファに書き込む前記受信用プロセッサと、
    を特徴とする、プロセッサ。
  14. さらにシステムの起動時にサイズインデックステーブル(300)をセットアップする、請求項13に記載のプロセッサ。
  15. 周辺部からメモリへの少なくとも1つの転送と、メモリからメモリへの少なくとも1つの転送とを含む分散チェーンを実行するダイレクトメモリアクセスコントローラ(260)をさらに含む、請求項13または請求項14のいずれか1項に記載のプロセッサ。
  16. データリンク(270)と関連付けられた入力バッファ(291)をさらに含む、請求項15に記載のプロセッサ。
  17. 前記マッピング回路は、ポインタを格納するためのポインタ配列(490)と、インデックスレジスタ(410)と、ポインタレジスタ(420)とを含む、請求項16に記載のプロセッサ。
  18. さらにシステムの起動時に前記ポインタ配列をセットアップする、請求項17に記載のプロセッサ。
  19. 前記ダイレクトメモリアクセスコントローラ(260)は、前記メモリユニットのバッファ(460、470、480)を割り当て、前記メモリユニットのバッファが割り当てられている場合には前記ポインタ配列(490)を更新する、請求項17または請求項18のいずれか1項に記載のプロセッサ。
  20. 前記入力バッファ(291)は、前記サイズ(351)、前記インデックス(352)、および前記ペイロード部分(353)を含む前記データメッセージ(150、350)を受信し、
    前記ダイレクトメモリアクセスコントローラ(260)はさらに、
    前記入力バッファから前記サイズを読み出し、
    前記入力バッファから前記インデックスを読み出し、
    前記インデックスレジスタ(410)に前記インデックスを書き込み、
    前記ポインタレジスタ(420)から、前記メモリユニット(140)の前記バッファ(460、470、480)と関連付けられた前記ポインタ(450)を読み出し、
    前記入力バッファから前記ペイロード部分を読み出し、
    前記ポインタによって示される前記バッファに前記ペイロード部分を書き込む、請求項17〜請求項19のいずれか1項に記載のプロセッサ。
  21. 前記ダイレクトメモリアクセスコントローラ(260)はさらに、前記ペイロード部分が前記バッファに書き込まれている場合に割り込み信号を生成する、請求項20に記載のプロセッサ。
  22. 前記ダイレクトメモリアクセスコントローラ(260)はさらに、システムスタックの上位レイヤに前記バッファを通知し、前記送信用プロセッサへと確認メッセージを送る、請求項20または請求項21のいずれか1項に記載のプロセッサ。
  23. 前記バッファ(460、470、480)は第1バッファであり、
    前記ダイレクトメモリアクセスコントローラ(260)はさらに、
    前記メモリユニット(140)の第2バッファ(460、470、480)を割り当て、前記第2バッファは前記第1バッファと同じサイズを有しており、
    前記第2バッファと関連付けられたポインタで、前記ポインタ配列(490)を更新する、請求項20〜請求項22のいずれか1項に記載のプロセッサ。
  24. 請求項1〜請求項12のいずれか1項に記載のマルチプロセッサシステムと、
    請求項13〜請求項23のいずれか1項に記載のプロセッサと、
    の少なくとも1つを含む電子装置。
  25. 前記電子装置は、携帯型または手持ち型の移動無線通信機器、移動無線端末、携帯電話(700)、ポケットベル、発信機、電子手帳、スマートフォン、コンピュータ、組込み型ドライブ、携帯型ゲーム機、時計、基地局、または、基地局コントローラである、請求項24に記載の電子装置。
  26. プロセッサ(220)においてデータメッセージ(150、350)を受信する方法において、前記データメッセージは、サイズ(351)、インデックス(352)、およびペイロード部分(353)を含み、
    前記方法は、
    前記プロセッサの入力バッファ(291)から前記サイズを読み出す工程と(510)、
    前記入力バッファから前記インデックスを読み出す工程と(520)、
    ポインタ(450)へと前記インデックスをマッピングする工程と(530)、
    前記入力バッファから前記ペイロード部分を読み出す工程と(541)、
    前記プロセッサと関連付けられたメモリ(140)のバッファ(460、470、480)に、前記ペイロード部分を書き込む工程であって(542)、前記バッファは前記ポインタにより示される、前記書き込み工程と(542)、
    を含む、方法。
  27. システムの起動時にサイズインデックステーブル(300)をセットアップする工程をさらに含み、前記データメッセージ(150、350)の前記ペイロード部分(353)の前記サイズ(351)は、前記サイズインデックステーブル内のインデックス(340)と関連付けられている、請求項26に記載の方法。
  28. 前記ポインタ(450)は、ポインタ配列(490)に含まれる、請求項26または請求項27のいずれか1項に記載の方法。
  29. システムの起動時に前記ポインタ配列(490)をセットアップする工程をさらに含む、請求項28に記載の方法。
  30. 前記ペイロード部分(353)が前記バッファ(460、470、480)に書き込まれている場合に割り込み信号を生成する工程をさらに含む、請求項26〜請求項29のいずれか1項に記載の方法。
  31. システムスタックの上位レイヤに前記バッファを通知する工程と(551)、
    前記データメッセージが受信されていることを示す確認メッセージを送信する工程(554)と、
    をさらに含む、請求項26〜請求項30のいずれか1項に記載の方法。
  32. 前記バッファ(460、470、480)は第1バッファであり、
    前記方法は、
    前記メモリ(140)の第2バッファ(460、470、480)を割り当てる工程(552)であって、前記第2バッファは前記弟1バッファと同じ大きさを有する、前記割り当て工程と(552)、
    前記第2バッファと関連付けられたポインタで前記ポインタ配列(490)を更新する工程と(553)、
    をさらに含む、請求項26〜請求項31のいずれか1項に記載の方法。
  33. ポインタに前記インデックスをマッピングする前記工程は、
    インデックスレジスタ(410)に前記インデックス(352)を書き込む工程(531)と、
    前記ポインタ(450)に前記インデックスをマッピングする工程と(532)、
    ポインタレジスタ(420)に前記ポインタを書き込む工程と(533)、
    前記ポインタレジスタから前記ポインタを読み出す工程と(534)、
    を含む、請求項26〜請求項32のいずれか1項に記載の方法。
JP2010513947A 2007-07-06 2008-06-27 プロセッサ間通信のためのシステム、プロセッサ、装置および方法 Active JP5498378B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US94841207P 2007-07-06 2007-07-06
EP07111967.1 2007-07-06
US60/948,412 2007-07-06
EP07111967.1A EP2017741B1 (en) 2007-07-06 2007-07-06 System,processor,apparatus and method for inter-processor communication
PCT/EP2008/058329 WO2009007262A1 (en) 2007-07-06 2008-06-27 System, processor, apparatus and method for inter-processor communication

Publications (2)

Publication Number Publication Date
JP2010532509A true JP2010532509A (ja) 2010-10-07
JP5498378B2 JP5498378B2 (ja) 2014-05-21

Family

ID=39512570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010513947A Active JP5498378B2 (ja) 2007-07-06 2008-06-27 プロセッサ間通信のためのシステム、プロセッサ、装置および方法

Country Status (4)

Country Link
US (1) US8544024B2 (ja)
EP (1) EP2017741B1 (ja)
JP (1) JP5498378B2 (ja)
WO (1) WO2009007262A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473094B (zh) * 2009-07-16 2014-12-10 飞思卡尔半导体公司 数据管理单元、数据访问单元、网络元件、网络和用于更新数据结构的方法
US8706804B2 (en) * 2011-12-13 2014-04-22 Sap Ag Modeled chaining of service calls
US9378072B2 (en) * 2014-05-30 2016-06-28 GM Global Technology Operations LLC Mechanisms and apparatus for embedded controller reconfigurable inter-processor communications
DE102016106939B4 (de) 2015-04-17 2024-05-02 Suunto Oy Eingebettetes Rechengerät
EP3190730A1 (en) * 2016-01-06 2017-07-12 Nxp B.V. Received path delay mechanism

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088777A (en) * 1997-11-12 2000-07-11 Ericsson Messaging Systems, Inc. Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages
US6208650B1 (en) * 1997-12-30 2001-03-27 Paradyne Corporation Circuit for performing high-speed, low latency frame relay switching with support for fragmentation and reassembly and channel multiplexing
US20020085551A1 (en) * 2000-11-14 2002-07-04 Altima Communications, Inc. Linked network switch configuration
JP2002209234A (ja) * 2001-01-11 2002-07-26 Fujitsu Ltd 通信システム
US20040042490A1 (en) * 2002-02-04 2004-03-04 Henderson Alex E. State record processing
JP2005328119A (ja) * 2004-05-12 2005-11-24 Nec Electronics Corp 通信メッセージ変換装置、通信方法及び通信システム
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7718420B2 (en) * 2006-10-10 2010-05-18 Postech Academy-Industry Foundation Microfluidic biochip for blood typing based on agglutination reaction

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088777A (en) * 1997-11-12 2000-07-11 Ericsson Messaging Systems, Inc. Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages
US6208650B1 (en) * 1997-12-30 2001-03-27 Paradyne Corporation Circuit for performing high-speed, low latency frame relay switching with support for fragmentation and reassembly and channel multiplexing
US20020085551A1 (en) * 2000-11-14 2002-07-04 Altima Communications, Inc. Linked network switch configuration
JP2002209234A (ja) * 2001-01-11 2002-07-26 Fujitsu Ltd 通信システム
US20040042490A1 (en) * 2002-02-04 2004-03-04 Henderson Alex E. State record processing
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
JP2005328119A (ja) * 2004-05-12 2005-11-24 Nec Electronics Corp 通信メッセージ変換装置、通信方法及び通信システム

Also Published As

Publication number Publication date
JP5498378B2 (ja) 2014-05-21
EP2017741B1 (en) 2017-11-22
US8544024B2 (en) 2013-09-24
WO2009007262A1 (en) 2009-01-15
US20110173635A1 (en) 2011-07-14
EP2017741A1 (en) 2009-01-21

Similar Documents

Publication Publication Date Title
US7107044B1 (en) Virtualization of hardware user-interface using a shared mailbox between two processors in a feature phone
US20190327190A1 (en) Technologies for scalable packet reception and transmission
JP5498378B2 (ja) プロセッサ間通信のためのシステム、プロセッサ、装置および方法
TW201841530A (zh) 經由匯流排上的額外副資料線來發送資料的系統和方法
US11016769B1 (en) Method and apparatus for processing information
WO2019141157A1 (zh) 一种核间数据传输的装置和方法
US11736149B2 (en) Data transmission method for Bluetooth card reader and electronic device
US20140237144A1 (en) Method to emulate message signaled interrupts with interrupt data
CN112698959A (zh) 一种多核通信方法和装置
CN114945009A (zh) PCIe总线连接的设备间进行通信的方法、设备及系统
US9384154B2 (en) Method to emulate message signaled interrupts with multiple interrupt vectors
US11671382B2 (en) Technologies for coordinating access to data packets in a memory
US20200348989A1 (en) Methods and apparatus for multiplexing data flows via a single data structure
US6535942B1 (en) Method for reducing processor interrupt load
US20240070263A1 (en) Security defending method and electronic apparatus
CN114969851A (zh) 一种基于fpga的数据处理方法、装置、设备及介质
CN114490459A (zh) 数据传输方法、装置、设备、接收机和存储介质
WO2019127468A1 (zh) 分组应用使用同一密钥共享数据
WO2023226787A1 (zh) 通信方法、系统、装置和电子设备
CN102752223B (zh) 并行系统间数据传输方法及其系统
CN114296641B (zh) 增量文件传输方法、装置、电子设备及可读存储介质
CN116089110B (zh) 控制进程交互的方法及相关装置
US20060104227A1 (en) Data communication methods and systems
CN103856474A (zh) 用于网络数据处理的方法和装置
CN114238188A (zh) 基于dma和fifo接收串口不定长数据的方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140307

R150 Certificate of patent or registration of utility model

Ref document number: 5498378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250