(57)【要約】  第１のプロセッサ（１０２）と第２のプロセッサ（１０４）との間においてメッセージを転送する方法に関する。この方法は、第１のプロセッサ、即ち、マスタ・プロセッサ（１０２）に対し、空きメッセージ・バッファを要求する工程（１０６）を含む。第１のプロセッサ（１０２）は空きメッセージ・バッファ・ポインタを送信する（１０８）。第２のプロセッサは空きメッセージ・バッファ・ポインタを用い、共有メモリ（１１２）内の割り当てられたメモリの位置を特定する。続いて、第２のプロセッサ（１０４）は割り当てられたメモリ領域にメッセージを読み込み、そのメッセージを送信する（１１０）。メッセージの受信後、第１のプロセッサ（１０２）は共有メモリ（１１２）において発見された割り当てられたメモリ領域を、将来使用可能であるように解放する。この共有メモリ方式を用いる無線通信デバイス等の電子デバイスも開示する。
2007503053.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、
第１のプロセッサに接続された第２のプロセッサと、
第１のプロセッサ及び第２のプロセッサに接続された共有メモリと、
第１のプロセッサは共有メモリを管理するとともに、第２のプロセッサが第１のプロセッサに対しメッセージを送信することが必要なとき第２のプロセッサに対しメッセージ・バッファを割り当てることと、
第１のプロセッサは第２のプロセッサに割り当てたメッセージ・バッファのメッセージ・バッファ・ポインタを第２のプロセッサに対し送信することとからなる電子デバイス。
【請求項２】
第２のプロセッサから空きバッファ要求を受信することに応答し、第１のプロセッサは第２のプロセッサに対しメッセージ・バッファ・ポインタを送信することを含む請求項１に記載の電子デバイス。
【請求項３】
メッセージ・バッファ・ポインタを受信した後、第２のプロセッサはメッセージ・バッファをメッセージにより満たすことを含む請求項２に記載の電子デバイス。
【請求項４】
メッセージ・バッファをメッセージにより満たした後、第２のプロセッサは第１のプロセッサにメッセージ・バッファ・ポインタを送信することを含む請求項３に記載の電子デバイス。
【請求項５】
メッセージ・バッファ・ポインタを受信した後、第１のプロセッサはメッセージ・バッファからメッセージを読み取ることを含む請求項４に記載の電子デバイス。
【請求項６】
第２のプロセッサに対し割り当てられた複数のバッファは共有メモリに存在することを含む請求項１に記載の電子デバイス。
【請求項７】
第２のプロセッサに対し割り当てられた複数のバッファは、第１のプロセッサに要求する必要なく第２のプロセッサにより用いられることを含む請求項６に記載の電子デバイス。
【請求項８】
共有メモリの管理が割り当てられた第１のプロセッサと、第２のプロセッサとの間における共有メモリを用いるプロセッサ間通信方法であって、
（ａ）第２のプロセッサが第１のプロセッサに対しメッセージを送信することが必要なとき、共有メモリの空きメッセージ・バッファを要求する第２のプロセッサからの要求を送信する工程と、
（ｂ）工程（ａ）にて送信された要求に応答して、第１のプロセッサから第２のプロセッサに対しメッセージ・バッファ・ポインタを送信する工程と、
（ｃ）第２のプロセッサがメッセージ・バッファ・ポインタを用いて、共有メモリにおいてメッセージが読み込まれる空きメッセージ・バッファの位置を特定する工程と、
（ｄ）空きメッセージ・バッファにメッセージを読み込む工程とからなる方法。
【請求項９】
（ｅ）メッセージ・バッファ・ポインタを第１のプロセッサに対し送信して返す工程を含む請求項８に記載の方法。
【請求項１０】
（ｆ）工程（ｅ）に応答して、第１のプロセッサがメッセージを読み取る工程を含む請求項９に記載の方法。
【請求項１１】
（ｇ）工程（ｆ）が実行されると、空きメッセージ・バッファを解放する工程を含む請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子工学の分野に関する。より詳細には、本発明は共有メモリを用いるプロセッサ間通信（ＩＰＣ）方法及び装置に関する。
【背景技術】
【０００２】
電子システムにおいて２つ以上のプロセッサ間でメッセージを交換するために用いられる、メモリを共有するための従来技術では、通常、それらのプロセッサは自身の「伝送メモリ」（一方のプロセッサが他方のプロセッサへ伝送するデータを読み込むために用いるメモリ）に関与する必要がある。各プロセッサは、他のプロセッサに対し送信するメッセージを記憶するために用いられる、メッセージ・メモリの割当及び開放に関与する。それらの従来技術では、それら２つ以上のプロセッサ間で共有されるＩＰＣメモリは静的に区分されており、各プロセッサに対し所定量の共有メモリが割り当てられることが必要である。このため、プロセッサ間のメッセージ伝送が非対称である場合（例えば、一方のプロセッサが他方のプロセッサより多くのメッセージを送信する等）、利用可能な全共有メモリが最適には利用されない。事前割当メモリ方式を用いると、１つのプロセッサの共有メモリ割当の利用は少なく、第２のプロセッサの共有メモリ割当はメッセージ伝送の必要を満たすには充分でない場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、従来技術においては、２つ以上のプロセッサ間におけるメモリの共有を改良する方法及び装置が必要である。
【課題を解決するための手段】
【０００４】
一部の従来技術のＩＰＣ通信による上述の問題を克服するため、２つ以上のプロセッサの「伝送」メモリを合同し、１つのメモリ空間とする。このメモリ空間は、システムのプロセッサのうちの１つにより管理される。
【発明を実施するための最良の形態】
【０００５】
図１には、第１の（「マスタ」）プロセッサ（プロセッサ１）１０２と、第２のプロセッサ（プロセッサ２）１０４との間におけるメッセージの転送を示す。第１のプロセッサ１０２は、メモリの必要が生じると、プロセッサ１０２，１０４にメモリを割り当てる。プロセッサ１０２，１０４は、マイクロプロセッサ、マイクロコントローラ、又はデジタル信号プロセッサ（ＤＳＰ）等、任意の種類のプロセッサからなる。
【０００６】
第２のプロセッサ１０４は、第１のプロセッサ１０２に対しメッセージを送信することが必要なとき、工程１０６に示すように、第１のプロセッサ１０２に対しＩＰＣ空きメッセージ・バッファ要求メッセージを送信する。第１のプロセッサ１０２は第２のプロセッサ１０４に対し、ＩＰＣ空きメッセージ・バッファ・ポインタを送信することにより応答する（工程１０８）。この空きメッセージ・バッファ・ポインタにより、第２のプロセッサ１０４が共有メモリ１１２にアクセスするときに必要なメモリ・アドレス情報が提供される。このポインタにより、共有メモリ１１２においてメッセージの読込を開始することが必要な場所が、第２のプロセッサ１０４に通知される。共有メモリ１１２はランダム・アクセス・メモリ（ＲＡＭ）又は当業者に公知の任意の他の種類の読取可能／書込可能メモリからなる。
【０００７】
第２のプロセッサ１０４は、共有メモリ１１２において発見された割り当てられたメッセージ・バッファ１１４を満たし、工程１１０にて、メッセージ・ポインタを第１のプロセッサ１０２に送信する。これにより、第１のプロセッサ１０２がデータを読み取り（消費し）、先に割り当てられたメッセージ・バッファ１１４を開放することが可能となる。一実施形態では、工程１１０には、単にメッセージ・バッファ・ポインタを第１のプロセッサ１０２に対し送信することが含まれる。代替の一実施形態では、第２のプロセッサ１０４が第１のプロセッサ１０２に対し別の種類のメッセージを送信することが可能である。このメッセージにより、第１のプロセッサ１０２は、いずれのメッセージ・バッファ（この例ではＩＰＣメッセージ・バッファ１１４）が第２のプロセッサ１０４に対し割り当てられたかを認識する。
【０００８】
本発明の代替の一実施形態では、第２のプロセッサ１０４が第１のプロセッサ１０２に対しメッセージ・バッファを要求することによる待ち時間を減少するため、第２のプロセッサ１０４が小さな１組のバッファ１１６を常時利用可能であるようにする。バッファ１１６は即座に用いられるように準備され、第２のプロセッサ１０４が第１のプロセッサ１１２に対しバッファ１１６を要求する必要はない。割り当てられたバッファ１１６から第２のプロセッサ１０４による使用のためにバッファが取り除かれると、第２のプロセッサ１０４は第１のプロセッサ１０２に対しメッセージを送信する。第１のプロセッサ１０２はメッセージを受信すると、自動的にバッファを復帰させる。
【０００９】
図２には、本発明による無線通信デバイス２００等の電子デバイスを示す。第１のプロセッサ（プロセッサ１）２０２は第２のプロセッサ（プロセッサ２）２０４に接続されており、両プロセッサは共有メモリ２０６に接続されている。公知の送受信機部２０８により、メッセージの無線周波数伝送が行われる。ユーザ制御部（例えば、キーパッド）２１０及びディスプレイ２１２により、無線通信デバイス２００のユーザに対するインタフェースが提供される。
【００１０】
本発明の別の実施形態では、第１のプロセッサ２０２により送信されるメモリ・バッファ・ポインタを第２のプロセッサ２０４に記憶するために、ワンワード・メールボックス（ｏｎｅ  ｗｏｒｄ  ｍａｉｌｂｏｘ）２１８等のメールボックス・バッファが用いられる。同様のメールボックス、メールボックス２１６が、第１のプロセッサ２０２に見出される。
【００１１】
メールボックス２１６，２１８は、第１のプロセッサ２０２と第２のプロセッサ２０４との間において、ポインタ及び短いコマンドを交換するために用いられる。これに代えて、割り込み線２１４を用いて、第１のプロセッサ２０２が第２のプロセッサ２０４に対し割り込みを送信することが可能である。割り込みの受信に応答して、第２のプロセッサ２０４は共有メモリの所定の位置を読み取り、共有メモリ２０６において発見されたメッセージ・バッファに対するアドレス・ポインタの位置を特定する。
【００１２】
図３には、第１のプロセッサ２０２が第２のプロセッサ２０４に対しメッセージを送信するときに実行される工程のフローチャートを示す。この例では、第１のプロセッサ２０２が、共有メモリ２０６に対するメモリ割当を担うマスタ・プロセッサである。工程３０２にて、第１のプロセッサ（プロセッサ１）２０２は、第２のプロセッサ２０４に対する転送（伝送）が必要なメッセージに対し、共有メモリ２０６のメモリを割り当てる。工程３０４にて、第１のプロセッサ２０２は割り当てたメモリ領域にメッセージを読み込む。工程３０６にて、第１のプロセッサ２０２は第２のプロセッサ２０４に対しポインタを送信する。工程３０８にて、第２のプロセッサ２０４は共有メモリ２０６からメッセージを受信する。第２のプロセッサ２０４によりメッセージが消費された後、工程３１０にて、第２のプロセッサ２０４は第１のプロセッサ２０２に対しメッセージ・ポインタを送信し（メールボックス２１６又は割り込み線２１４を用いて）、メッセージ空間が解放され得ることを示す。最後に、工程３１２にて、第１のプロセッサ２０２は共有メモリ２０６において割り当てたメモリを解放する。割り当てたメモリの解放は、第２のプロセッサ２０４により実行され得る。例えば、第２のプロセッサ２０４がメッセージを受信したというメッセージを第１のプロセッサ２０２に対し送信することにより、割り当てたメモリの解放が実行され得る。
【００１３】
図４には、第２のプロセッサ２０４が第１のプロセッサ２０２に対しメッセージの伝送のためのメモリ空間を要求するときに実行される工程のフローチャートを示す。工程４０２にて、第２のプロセッサ２０４は第１のプロセッサ２０２に対しメモリ割当の要求を送信する。工程４０４にて、第１のプロセッサ２０２は要求されたメモリを割り当て、第２のプロセッサ２０４に対しポインタを送信する。工程４０６にて、第２のプロセッサ２０４は割り当てられたメモリ領域にメッセージを読み込み、第１のプロセッサ２０２に対しポインタを送信して返す。最後に、工程４０８にて、第１のプロセッサ２０２は割り当てたメモリ領域からメッセージを読み出し、メッセージを読み出した後、割り当てたメモリを解放してメモリ・プールへ返す。
【００１４】
本発明により、プロセッサ間のメッセージ転送中のメモリ利用を最適化してオーバヘッドを最小化する共有メモリ方式の実装が可能となる。本発明の共有メモリ方式においては、従来技術に共通するメモリの静的割当を除くことにより、効率的なメモリ割当方法及びシステムが提供される。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるマルチプロセッサのメモリ共有方法の図。
【図２】本発明の一実施形態による無線通信デバイスのブロック図。
【図３】本発明の一実施形態により第２のプロセッサに対しメッセージを転送する第１の（「マスタ」）プロセッサが実行する工程のフローチャート。
【図４】本発明の一実施形態により第１のプロセッサに対しメッセージを送信する第２の（「非マスタ」）プロセッサが実行する工程のフローチャート。
【図１】
2007503053.tif 000003
【図２】
2007503053.tif 000004
【図３】
2007503053.tif 000005
【図４】
2007503053.tif 000006
【国際調査報告】
2007503053.tif 000007