(57)【特許請求の範囲】
【請求項１】
メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、
通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続され、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備え、
前記ポストモジュールは、
バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現するように構成されたバスインターフェースユニットを含み、
前記バスインターフェースユニットは、
前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成された第１の相互排他ユニット、及び/又は、
前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された第２の相互排他ユニット、を備え、
前記バスインターフェースユニットは、
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするように構成されたトリガーサブユニットを含むコア間通信装置。
【請求項２】
前記ポストモジュールは、
メッセージアクセスアドレスに応じて、前記メッセージを記憶するように構成された記憶ユニットを含む請求項１に記載のコア間通信装置。
【請求項３】
前記ポストモジュールは、
割込要求を介して、前記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニットを含む請求項１に記載のコア間通信装置。
【請求項４】
ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信し、
前記ポストモジュールが、メッセージ受信コアに割込要求を送信し、
前記メッセージ受信コアは前記割込要求に基づいて前記メッセージを読み取り、
複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、前記ポストモジュールがバスエラー・フィードバックレジスタを利用することで、メッセージの読み取り/書き込みの相互排他を実現し、
バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現するステップは、
前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現し、
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするコア間通信方法。
【請求項５】
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、前記ポストモジュールが前記メッセージ送信コアに第１の応答メッセージを送信し、前記メッセージ送信コアは、前記第１の応答メッセージに基づいて、前記ポストモジュールへのメッセージの書き込みに成功したと確定し、及び/又は、
前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記ポストモジュールが前記メッセージ受信コアに第２の応答メッセージを送信し、前記メッセージ受信コアは、前記第２の応答メッセージに基づいて、メッセージの読み取りに成功したと確定する請求項４に記載のコア間通信方法。
【請求項６】
前記メッセージ受信コアが前記メッセージを読み取った後、
前記ポストモジュールが、前記割込要求を削除する請求項４に記載のコア間通信方法。
【請求項７】
ポストモジュールに設けられ、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信するように構成された受信ユニットと、
前記ポストモジュールに設けられ、メッセージ受信コアに割込要求を送信するように構成された送信ユニットと、を備え、
前記メッセージ受信コアは、前記割込要求に基づいて、前記メッセージを読み取り、
複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、バスエラー・フィードバックレジスタを利用することで、メッセージの読み取り/書き込みの相互排他を実現し、
前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現する方式で、バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現し、
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするコア間通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高性能チップを設計する分野に関し、具体的に、コア間通信装置及び方法に関する。
【背景技術】
【０００２】
マルチコアプロセッサが各技術分野に汎用されることによって、それの強大な並列演算力、低電力消費、高集積度などのメリットが市場の認可を得ることになっている。マルチコアプロセッサの顕著な特徴は、同一のジョブを複数のカーネルスレッド又はプロセスに分離して並行して運転することであって、このような並行性によって、性能を大幅に向上させることができる。しかし、マルチコアプロセッサの性能が向上されると共に、コア間通信ジョブの頻度が高く、マルチコア通信を複雑に管理しなければならない等の一連の問題をもたらし、且つ、同一のチップに集積されるコアがますます多くなっているので、これらの問題がさらに目立つことになっている。よって、高速且つ効率的なコア間通信装置及び方法は、マルチコアプロセッサチップのキーポイントとなっている。
【０００３】
関連技術において、通常、共通メモリに基づいてコア間通信を実現する。例えば、特許番号がＣＮ２００５１００８７３２１である特許「嵌め込み式リアルタイム操作システムにおけるマルチコアプロセッサのコア間通信方法及び装置」において、共通メモリによってコア間通信に必要な共通メッセージプールとメッセージデータルートを実現している。当該方法によると、操作システムのソフトウェアがメッセージキューを構成し、コア間通信のルートを確立する操作を行わなければならないので、非常に複雑である。そして、マルチコアの共通メッセージメモリへのアクセスの一致性を実現するため、スピンロックリソースを利用して単独にロックを要請してリリースする等の同期操作を行わなければならなく、このような複雑なソフトウェアによる交換ステップによって、コア間通信の効率を大幅に低下させ、同時に、コア数量が顕著に増加される場合、信頼性も低下する。また、メッセージの分離操作と中断通知メカニズムによって効率を低下させてしまう。そして、共通メモリに基づく方法によると、コア間メッセージが必ずデータと同一の帯域幅を利用するので、通信のリアルタイム性でも確実ではない。
【０００４】
共通メモリに基づくコア間通信メカニズムに存在する複雑で高遅延の問題を解決するための改善方法が開示されている。例えば、特許番号がＵＳ２００８０９８８４５９である特許「Method  and  System  for  Generating  and  Delivering  Inter-Processor  Interrupts  in  a  Multi-CORE  Processor  and  in  Certain  Shared  Memory  Multi-Processor  Systems」において、ソフトウェアにより１組の専用の割り込みマスクレジスタ（Ｉｎｔｅｒｒｕｐｔ  Ｍａｓｋ  Ｒｅｇｉｓｔｅｒ、ＩＭＲと略称）を操作して共通の記憶領域を指定し、指定された共通メモリ領域に対する書き込み操作を行う時、コア間の中断の発生を自動にトリガーする。しかし、そのメッセージは共通の記憶領域のサーキュラーバッファに記憶され、依然としてソフトウェアが実現するデータ構造によってサーキュラーバッファアクセスを行わなければならい。メッセージの通知による中断はＩＭＲによって発生する。そして、ＩＭＲレジスタを予め設置しなければならなく、且つ、レジスタの操作とメッセージの操作の分離、ソフトウェアによる交換ステップが多い等の要因で、コア間通信の遅延が大きく、ソフトウェアのプログラミングが複雑であって、高性能のマルチコア通信の需要を満たすことができない。同時に、当該特許によると、コア間通信の確実性を保証するために相互排他する操作を導入してリソースの消費及び複雑度が高まる問題は解決することができない。
【０００５】
上記した従来のコア間通信技術における通信効率が低く、リアルタイム性に欠けている問題以外に、従来のコア間通信技術によると、コア数量が顕著に増加される場合、さらに多いハードウェアリソースとさらに複雑なソフトウェア処理ステップが必要であって、異種マルチコアシステムにおいて、コアの周波数、インターフェース構造、データ構造に対する支援差異も従来のコア間通信方法におけるソフトウェアの複雑性を大幅に増大し、異種コア通信プロセスの互換性と確実性が不足である。即ち、従来のコア間通信技術は、コア異種及びコア数量が増加される状況での応用において拡張可能性及び柔軟性に欠けている。
よって、関連技術におけるコア間通信装置及び方法には、複雑で、リアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題が存在している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、少なくとも関連技術におけるコア間通信装置及び方法に存在している複雑で、リアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題を解決することができるコア間通信装置及び方法を提供することをその目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によると、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続されて、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備えるコア間通信装置を提供する。
【０００８】
該コア間通信装置が複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、前記複数の読み取り/書き込みアクセス要求に対して調停を行って、前記複数の読み取り/書き込みアクセス要求を順に直列出力する調停モジュールをさらに備えることが好ましい。
【０００９】
前記ポストモジュールは、バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するように構成されたバスインターフェースユニットを含むことが好ましい。
【００１０】
前記バスインターフェースユニットは、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成された第１の相互排他ユニット、及び/又は、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された第２の相互排他ユニット、を備えることが好ましい。
【００１１】
前記バスインターフェースユニットは、前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするように構成されたトリガーサブユニットを含むことが好ましい。
【００１２】
前記ポストモジュールは、メッセージアクセスアドレスに応じて、前記メッセージを記憶するように構成された記憶ユニットを含むことが好ましい。
【００１３】
前記ポストモジュールは、中断要求を介して、前記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニットを含むことが好ましい。
【００１４】
本発明の他の一態様によると、ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信し、前記ポストモジュールが、メッセージ受信コアに中断要求を送信し、前記メッセージ受信コアは前記中断要求に基づいて前記メッセージを読み取るコア間通信方法を提供する。
【００１５】
該方法は、複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、前記複数の読み取り/書き込みアクセス要求に対して調停を行って、前記複数の読み取り/書き込みアクセス要求を順に直列出力することが好ましい。
【００１６】
複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、バスエラー・フィードバックレジスタを多重化することで、メッセージの読み取り/書き込みの相互排他を実現することが好ましい。
【００１７】
バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するステップは、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現することが好ましい。
【００１８】
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーすることが好ましい。
【００１９】
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、前記ポストモジュールが前記メッセージ送信コアに第１の応答メッセージを送信し、前記メッセージ送信コアは、前記第１の応答メッセージに基づいて、前記ポストモジュールへのメッセージの書き込みに成功したと確定し、及び/又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記ポストモジュールが前記メッセージ受信コアに第２の応答メッセージを送信し、ここで、前記メッセージ受信コアが、前記第２の応答メッセージに基づいて、メッセージの読み取りに成功したと確定することが好ましい。
【００２０】
前記メッセージ受信コアが前記メッセージを読み取った後、前記ポストモジュールが、前記中断要求を削除することが好ましい。
【００２１】
本発明の他の一態様によると、ポストモジュールに設けられ、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信するように構成された受信ユニットと、前記ポストモジュールに設けられ、メッセージ受信コアに中断要求を送信するように構成された送信ユニットと、を備え、前記メッセージ受信コアは、前記中断要求に基づいて、前記メッセージを読み取るコア間通信装置を提供する。
【発明の効果】
【００２２】
本発明によると、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続され、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備えることによって、従来技術におけるコア間通信装置及び方法に存在する複雑でリアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題を解決し、コア間通信の複雑度を顕著に低下させ、通信遅延を減少し、優れた拡張可能性及び縮小可能性の効果を実現することができる。
【図面の簡単な説明】
【００２３】
ここで説明する図面は、本発明を理解させるためのものであり、本発明の一部を構成し、本発明における実施例と共に本発明を解釈し、本発明を不当に限定するのではない。
【図１】本発明の実施例に係わるコア間通信装置の構造を示すブロック図である。
【図２】本発明の実施例に係わるコア間通信装置の好適な構造を示すブロック図である。
【図３】本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の１である。
【図４】本発明の実施例に係わるコア間通信装置におけるポストモジュール１２中のバスインターフェースユニット３２の好適な構造を示すブロック図である。
【図５】は、本発明の実施例に係わるコア間通信装置におけるバスインターフェースユニット３２の好適な構造を示すブロック図である。
【図６】本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の２である。
【図７】本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の３である。
【図８】本発明の実施例に係わるコア間通信方法を示すフローチャートである。
【図９】本発明の実施例に係わるコア間通信装置の構造を示すブロック図である。
【図１０】本発明の実施例に係わるマルチコアチップのコア間通信装置の構造を示すブロック図である。
【図１１】本発明の実施例に係わるコア間通信方法を示すフローチャートである。
【図１２】本発明の実施例に係わるコア間通信装置におけるポストモジュールの構造を示すブロック図である。
【図１３】本発明の実施例に係わるコア間通信装置におけるバスアダプタモジュールの構造を示すブロック図である。
【図１４】本発明の実施例に係わるコア間通信装置における調停モジュールの構造を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照しつつ実施例を結合して本発明の実施例を詳細に説明する。ここで、衝突しない限り、本願の実施例及び実施例中の特徴を互いに結合することができる。
本実施例においてコア間通信装置を提供し、図１は本発明の実施例に係わるコア間通信装置の構造を示すブロック図であり、図１に示すように、該コア間通信装置は、ポストモジュール１２と、バスアダプタモジュール１４と、を含み、以下、該装置を説明する。
ポストモジュール１２は、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、メッセージ受信コアに該メッセージを読み取ることを通知するように構成されている。バスアダプタモジュール１４は、上記ポストモジュール１２に接続され、ポストモジュールと通信を行うメッセージ受信コア及びメッセージ送信コアとの間に位置し、ポストモジュールとメッセージ受信コア及びメッセージ送信コアの読み取り/書き込みインターフェースを提供する。
【００２５】
上記コア間通信装置によると、ポストモジュールと、メッセージ受信コアとメッセージ送信コアとの間に接続されるバスアダプタモジュールとを含む構造を有することで、関連技術における共通メモリを用いる方式、又は、専用の中断協力共通メモリを用いる方式において数多いソフトウェアの交換が必要であるのでコア間通信ステップが複雑であって効率が低く柔軟性に欠けている問題が存在していることに比べ、ポストモジュールとバスアダプタモジュールからなる簡単なコア間通信装置を構成して、コア間通信装置自体がメッセージの読み取り/書き込みアクセス及びメッセージの読み取り/書き込みアクセスへの応答をフィードバックすることで、コア間通信の複雑度を大幅に低下させ、通信遅延を効率的に低減し、モジュールを追加するだけで実現することができ、拡張可能性及び縮小可能性を実現できる。
【００２６】
図２は、本発明の実施例に係わるコア間通信装置の好適な構造を示すブロック図であり、図２に示すように、該装置は図１に示す全てのモジュールを含む以外、調停モジュール２２をさらに含み、該調停モジュール２２はポストモジュール１２とバスアダプタモジュール１４との間に接続されて、複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した時、所定のルールに従って、上記複数の読み取り/書き込みアクセス要求に調停を行って、該複数の読み取り/書き込みアクセス要求を順に直列出力するように構成される。
【００２７】
図３は、本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の１であり、図３に示すように、該ポストモジュール１２はバスインターフェースユニット３２を含み、該バスインターフェースユニット３２はバスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するように構成される。
【００２８】
図４は、本発明の実施例に係わるコア間通信装置におけるポストモジュール１２中のバスインターフェースユニット３２の好適な構造を示すブロック図であり、図４に示すように、該バスインターフェースユニット３２は第１の相互排他ユニット４２及び/又は第２の相互排他ユニット４４を含み、以下、該好適なバスインターフェースユニットを説明する。
第１の相互排他ユニット４２は、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、複数のメッセージ送信コアによる該ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成され、及び/又は、第２の相互排他ユニット４４はバスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、メッセージ送信コアによる該ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる該ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された。
【００２９】
図５は、本発明の実施例に係わるコア間通信装置におけるバスインターフェースユニット３２の好適な構造を示すブロック図であり、図５に示すように、該バスインターフェースユニット３２はトリガーサブユニット５２を含み、該トリガーサブユニット５２は、メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、バスエラー・フィードバックレジスタの状態変更をトリガーするように構成された。
【００３０】
図６は、本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の２であり、図６に示すように、該ポストモジュール１２は記憶ユニット６２を含み、該記憶ユニット６２はメッセージアクセスアドレスに応じて、上記メッセージを記憶するように構成された。
【００３１】
図７は、本発明の実施例に係わるコア間通信装置におけるポストモジュール１２の好適な構造を示すブロック図の３であり、図７に示すように、該ポストモジュール１２は、中断要求を介して、上記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニット７２を含む。
【００３２】
本実施例においてさらにコア間通信方法を提供し、図８は本発明の実施例に係わるコア間通信方法を示すフローチャートで、図８に示すように、以下のステップを含む。
ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信する（ステップＳ８０２）。
該ポストモジュールが、メッセージ受信コアに中断要求を送信し、該メッセージ受信コアは、上記中断要求に基づいて上記メッセージを読み取る（ステップＳ８０４）。
【００３３】
上記ステップによると、ポストモジュールとバスアダプタモジュールの組合せによってコア間通信を実現し、関連技術における共通メモリを用いる方式、又は、専用の中断協力共通メモリを用いる方式において数多いソフトウェアの交換が必要であるのでコア間通信ステップが複雑であって効率が低く柔軟性に欠けている問題が存在していることに比べ、プロセスが簡単であると共に、メッセージの読み取り/書き込みアクセス自体によってコア間通信を実現することができるので、コア間通信の複雑度を大幅に低下させ、コア間通信の効率をある程度効率的に向上させることができる。
【００３４】
複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、該複数の読み取り/書き込みアクセス要求に調停を行って、上記複数の読み取り/書き込みアクセス要求を順に直列出力することが好ましい。ここで、上記複数のコアは複数のメッセージ送信コアであることが可能で、そして、複数のメッセージ受信コアであることも可能で、両方の混合であることも可能である。読み取り/書き込みアクセスを行う前、先ず読み取り/書き込みアクセス要求に調停処理を行うことでコア間通信の混乱を回避し、そして、該調停モジュールは、具体的なコア間通信を行う複数のコアの数量毎に応じて柔軟に選択することができ、例えば、通信を行うコアの数量が少ない場合は利用しなく、コアの数量が多いときに一つ又は複数の調停モジュールを用いて処理を行うことができる。
【００３５】
複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発する場合、バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現する。コア間通信を行っているバスエラー・フィードバックレジスタによってメッセージの読み取り/書き込みの相互排他を実現することによって、従来技術において相互排他機能を実現するために他の相互排他装置や他の相互排他操作ステップを追加する場合に比べ、コア間通信装置と外部構造との交換を減少し、リソースの消費を効率的に減少することができる。
【００３６】
ここで、コア間通信中に発生しやすい異常状況について、バスエラー・フィードバックレジスタを多重化するとメッセージの読み取り/書き込みの相互排他を良好に実現することができ、例えば、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、複数のメッセージ送信コアによるポストモジュールへのメッセージの書き込みの相互排他を実現することができ、又は、例えば、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、メッセージ送信コアによるポストモジュールへのメッセージの書き込みとメッセージ受信コアによるポストモジュールからのメッセージの読み取りとの相互排他を実現することもできる。また、両方を結合することも可能であることは言うまでもない。操作の際に、メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、バスエラー・フィードバックレジスタの状態の変更をトリガーすることで、ポストモジュールの読み取り/書き込み状態を変更し、メッセージの紛失を回避し、読み取り/書き込みの順次性を実現し、読み取り/書き込みメッセージの確実性を保証することができる。
【００３７】
メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、ポストモジュールがメッセージ送信コアに第１の応答メッセージを送信し、該メッセージ送信コアは上記第１の応答メッセージに基づいて、ポストモジュールへのメッセージの書き込みに成功したと判定し、及び/又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、ポストモジュールがメッセージ受信コアに第２の応答メッセージを送信し、メッセージ受信コアが該第２の応答メッセージに基づいて、メッセージの読み取りに成功したと判定することが好ましい。メッセージ受信コアがメッセージを読み取ったと判定した後、ポストモジュールは中断要求を自動的に削除する。従って、継続して新しいメッセージを書き込む時、新しい中断要求を発生することができ、読み取り/書き込みメッセージの対応性を保証できると共に、受信コアが中断要求を削除する操作ステップを行う必要がなくなる。
【００３８】
本実施例においてさらに、コア間通信装置を提供し、該装置は上記実施例及び好適な実施形態を実現するもので、既に説明した部分の説明は省略する。以下の説明で利用される用語「モジュール」は所定の機能を実現できるソフトウェア及び/又はハードウェアの組み合わせである。以下の実施例で説明する装置をハードウェアで実現することが好ましいが、ソフトウェア又はソフトウェアとハードウェアの組み合わせて実現することも可能である。
【００３９】
図９は、本発明の実施例に係わるコア間通信装置の構造を示すブロック図であり、図９に示すように、該装置はポストモジュール９０に設けられ、受信ユニット９２と、送信ユニット９４とを含み、以下詳しく説明する。
受信ユニット９２は、バスアダプタモジュールを介して、メッセージ送信コアから送信されるメッセージを受信するように構成され、送信ユニット９４は上記受信ユニット９２に接続されて、メッセージ受信コアに中断要求を送信するように構成され、該メッセージ受信コアは上記中断要求に基づいて、上記メッセージを読み取る。
【００４０】
関連技術におけるコア間通信装置の複雑度が高く、リアルタイム性に欠けて、マルチコアを応答する際に拡張可能性に欠けている等の問題を解決することができる。本実施例において、新規のコア間通信装置ＩＣＮ（Ｉｎｔｅｒ−ｃｏｒｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｎｅｔｗｏｒｋ、ＩＣＮと略称）を提供し（説明の便宜を図るため、コア間通信装置をＩＣＮと略称する）、該コア間通信装置ＩＣＮは、のポストモジュール（Ｐｏｓｔｂｏｘ）（上記ポストモジュール１２と同一なものである）と、バスアダプタモジュール（Ｂｕｓ  Ａｄａｐｔｅｒ、ＢＡと略称）（上記バスアダプタモジュール１４と同一なものである）と、調停モジュール（Ａｒｂｉｔｅｒ）（上記調停モジュール２２と同一なものである）という３類を任意数量含む。ＩＣＮは、レイヤ構造によってコア数量の増加及び異種コアの状況に応用されることができ、図１０は本発明の実施例に係わるマルチコアチップのコア間通信装置の構造を示すブロック図であり、図１０に示すように、該構造は、ポストモジュールと、バスアダプタモジュールと、調停モジュールと、を含み、以下、該装置を説明する。
【００４１】
（１）ポストモジュール（Ｐｏｓｔｂｏｘ）
受信コアが読み取るように、メッセージをある位置に一時的に保存しなければならなく、また、受信コアにメッセージが到来することを通知することができる確実なメカニズムが必要であって、本実施例において提供するＩＣＮは、複数のＰｏｓｔｂｏｘモジュールを含む。上記要求を満たすため、該ポストモジュールは、相互排他する読み取り/書き込みメッセージ、メッセージの記憶、中断要求の発生通知の機能を提供する。
ポストモジュールの上記機能を実現するため、Ｐｏｓｔｂｏｘモジュールは、該ポストモジュールに複数のバスインターフェースユニット（Ｂｕｓ  Ｉｎｔｅｒｆａｃｅ  Ｕｎｉｔ、ＢＩＵと略称）と、複数のメッセージ記憶ユニット（ＲｅｇＦｉｌｅｓ）と、複数の中断発生ユニット（ＩｎｔＧｅｎ）と、を含む。以下、ポストモジュールに含まれた各ユニットを説明する。
【００４２】
ＢＩＵユニット：メッセージの読み取り/書き込みの相互排他アクセス機能を実現するように構成される。該ＢＩＵユニットは、一つのメッセージ受信コアがメッセージを読み取る通路と、複数のメッセージ送信コアがメッセージを書き込む通路を提供する。ＢＩＵユニットは、バスエラー（Ｅｒｒｏｒ）フィードバックレジスタを多重化することでロックを実現して、同一のリソース（即ち、以下で説明するＲｅｇＦｉｌｅｓ）の相互排他アクセス機能を実現する。
【００４３】
ＲｅｇＦｉｌｅｓユニット：複数のユニットにメッセージ記憶レジスタ空間を提供する。各Ｐｏｓｔｂｏｘは、メッセージ送信通路数に対応する量のメッセージ記憶レジスタを有する。同時に、応用の需要に応じて決めた通信量に応じて、さらに多いメッセージレジスタを設けることもでき、異なるメッセージレジスタはアドレスに基づいて区別する。
【００４４】
ＩｎｔＧｅｎユニット：メッセージが到来した時、中断要求を発生して受信コアに通知するように構成された。受信コアが当該メッセージを読み取ったことを検出した後、中断要求を自動的に削除する。このように、従来のコア間通信方式におけるメッセージの読み取りのために中断削除レジスタを設ける操作を行う必要がなくなる。ここで、各中断線を一つ又は１組のＲｅｇＦｉｌｅｓユニットにバンドルして、受信コアが中断要求番号に応じて特定のＩＳＲ（中断サービスプログラム）に入って、対応するＲｅｇＦｉｌｅｓ中のメッセージを読み取ることができる。
ここで、本実施例のコア間通信装置中のＰｏｓｔｂｏｘは、関連技術において具備していない相互排他アクセス保護機能を具備する。
【００４５】
従来のマルチコア通信方式において、マルチコアが同一のコア間通信リソースを占用する時、相互排他のロック又はスピンロックによって相互排他操作を行わなければならい。これに対し、Ｐｏｓｔｂｏｘは、バスＥｒｒｏｒフィードバックレジスタを多重化することでロックレジスタを実現して相互排他アクセス機能を完成し、該操作は以下のように実現される：
ＢＩＵが、Ｅｒｒｏｒ情報フィードバックレジスタを多重化することでロックレジスタを実現する。ロックレジスタが０であると、ロックがリリース状態であることを表し、ロックレジスタが１であると、ロックが占用状態であることを表す。正常な状況において、送信コアがＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓを書き込んだ後、ロックレジスタは自動的に１になる。その後、Ｐｏｓｔｂｏｘが中断を発生し、受信コアに通知すると、受信コアはＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行って、ロックレジスタは自動的に０になる。
【００４６】
第１種の異常が発生した場合、即ち、受信コアがＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行う前、他の送信コアがＲｅｇＦｉｌｅｓに書き込み操作を行おうとする場合、この時にＲｅｇＦｉｌｅｓ中のメッセージが修正されていると、前のメッセージを紛失してしまう。しかし、本実施例におけるＰｏｓｔｂｏｘ中のロックレジスタは１で、ロックが占用状態であることを表すので、送信メッセージの書き込み操作が成功せず、即ち、Ｐｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓの情報が修正されていない。同時に、ロックレジスタ情報１は、Ｅｒｒｏｒ応答情報として、送信コアに返送されて、異常操作を行ったことを通知する。コアは異常処理ステップに移行し、即ち、複数のコマンド周期を待機してからアクセスを開始する。受信コアが正常なＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行った後、ロックレジスタが０にり、即ち、ロックがリリースされ、他の送信コアが正常の書き込み操作を行うことができる。
【００４７】
第２種の異常が発生した場合、即ち、受信コアがメッセージを読み取る時に他のコアがメッセージの書き込み操作を行う場合、ＢＩＵは強制的に読み取ってから書き込む順で行わせ、つまり、先ず前のメッセージの読み取りを行ってから新しいメッセージの書き込みを行うことで、コア間通信の確実性を保証することができる。
【００４８】
（２）バスアダプタモジュール（ＢＡ、Ｂｕｓ  Ａｄａｐｔｅｒ）：
通信を行うコア間のバスプロトコルが異なる恐れがあり、コアがアクセスしようとするＰｏｓｔｂｏｘが多いので、本実施例におけるＩＣＮは、一つのコア読み取り/書き込みインターフェースと、複数のＰｏｓｔｂｏｘ読み取り/書き込みインターフェースを有する複数のＢＡモジュールを含み、該ＢＡモジュールによって以下の二つの機能を実現する：
Ａ、異なるコアインターフェースバスプロトコルをＩＣＮ内部のデータ読み取り/書き込みプロトコルに対応させる。
Ｂ、バスアクセスのＰｏｓｔｂｏｘアドレスに基づいて、アドレスろ過を行って、即ち、唯一のターゲットＰｏｓｔｂｏｘの内部インターフェースのみに有効データ及び有効制御信号が現れるようにする。
このように、ＢＡモジュールによって外部の複雑なバスプロトコルをマスクし、内部で簡単で高速なデータ読み取り/書き込みプロトコルのみを用いることができ、コア間通信装置のハードウェア遅延を顕著に低下させる。
【００４９】
（３）調停モジュール（Ａｒｂｉｔｅｒ）：
Ｃｌｕｓｔｅｒの内部に複数のコアが存在し、且つ同時に一つのＰｏｓｔｂｏｘへメッセージの読み取り/書き込みアクセスを発する場合、衝突が発生してしまう。従って、本実施例中のＩＣＮは、複数のメッセージ入力インターフェースと一つのメッセージ出力インターフェースを有する複数のＡｒｂｉｔｅｒモジュールを含み、以下の機能を提供する：複数のデータ通路の読み取り/書き込みアクセス要求に、特定の原則に従って調停を行って、即ち、同時に達したメッセージ読み取り/書き込みアクセス要求を直列化する。
【００５０】
ここで、Ａｒｂｉｔｅｒは、同時に調停モジュールに到達したメッセージ読み取り/書き込みアクセスに順番に調停を行い、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセスを順に直列出力する。又は、同時に該調停モジュールに到達したメッセージ読み取り/書き込みアクセスに優先レベルに基づく調停を行うことができ、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセス要求を優先レベルの高い方から低い方へ順に直列出力する。
【００５１】
本実施例においてさらにコア間通信方法を提供し、図１１は本発明の実施例に係わるコア間通信方法を示すフローチャートであり、図１１に示すように、該方法は以下のステップを含む。
メッセージ送信コアが、ＢＡを介して、メッセージの書き込み操作を行って、また、ＢＡから返送された情報に基づいて、メッセージの送信に成功したか否かを判定する（ステップＳ１１０２）。各コアが行うメッセージの書込み操作は同期するものではなく、独立して行われていて、互いに影響しない。ＢＡから返送されるＥｒｒｏｒ  Ｒｅｓｐｏｎｓｅ情報が無効であると、メッセージの送信に成功し、そうでないと、Ｐｏｓｔｂｏｘが占用されたことを表し、メッセージの書き込みに成功していない。この時、送信コアは、メッセージの送信に成功するまで、幾つかの周期後にメッセージの書込み操作を再び行うことができる。
送信コアが送信したメッセージは、Ａｒｂｉｔｅｒを経て、又はＡｒｂｉｔｅｒを経ずに特定のアドレスを有するＰｏｓｔｂｏｘに送信され、Ｐｏｓｔｂｏｘで中断要求（ｉｎｔ）を発生してメッセージ受信コアに送信する（ステップＳ１１０４）。
【００５２】
受信コアが、中断を受信して、メッセージ読み取り操作を行う（ステップＳ１１０６）。
受信コアのメッセージ読み取り操作要求信号はＩＣＮに送信されて、中断要求を発生したポストモジュール（Ｐｏｓｔｂｏｘ）まで送信され、また、送信されたメッセージを読み取って、Ｐｏｓｔｂｏｘの中断要求は自動的に削減される（ステップＳ１１０８）。
【００５３】
本発明に提供される実施例及び好適な実施形態は元々相互排他機能を有している。即ち、コア間通信を行う前、別途にロックの要請及びロックのリリース操作を行う必要がなく、相互排他を完全に、ＩＣＮ自体の読み取り/書き込みアクセスとＥＲＲＯＲによる返送メカニズムによって実現することで、コア間通信の複雑性を顕著に低下させ、通信遅延を低減できる。そして、如何なる初期化ステップも行う必要がなく、ＩＣＮの電源を入れた後に直ちに正常な動作を行うことができる。また、メッセージ読み取り/書き込み要求がＩＣＮに送信された後、ＩＣＮによって完全管理して、自動化管理を実現できると共に、リソースを大幅に節約できる。
【００５４】
分布式構造を用いることによって、通信量を特定の領域の帯域幅に制限して他の通信領域に影響を与えることがなく、各調停モジュールの調停オーバーヘッドを低下させ、マルチコア全体の統計通信遅延を低下させることができる。
【００５５】
コア数量が顕著に増加される時、対応する数量の３類のモジュールと対応する接続線のみを追加すればよく、また、接続方式も需要に応じて柔軟に行うことができ、ＩＣＮの既存の構造特徴及びソフトウェア操作ステップに影響を与えることがないので、優れた拡張可能性及び縮小可能性を有する。
【００５６】
以下、図１０を結合して本発明の実施例をさらに具体的に説明する。ここで、マルチコアが実施例に示すＣＰＵ（中央処理装置）とＤＳＰ（デジタル信号処理装置）に限定されないことは言うまでもない。
ＩＣＮは全体的に３級構造でマルチコア（合計で１０個のコア）と異種コア（６ＤＳＰ+４ＡＲＭ）の応用の需要を満たす。ＩＣＮは全体的に、１５個のＰｏｓｔｂｏｘと、１０個のＢＡと、４個のＡｒｂｉｔｅｒとを含み、その構造は図１０に示すとおりである。３個のＤＳＰによって一つのＣｌｕｓｔｅｒを構成する。２個のＣＰＵによって一つのＣｌｕｓｔｅｒを構成し、そのデータ量は少なく、データ通路は調停器を通過しない。このように、ＩＣＮは、コアの数量及び通信量に応じて、３類のデバイスの数量及び接続方式を選択することができ（例えば、本実施例において、調停器を経ずに、直接にＰｏｓｔｂｏｘに接続される）、ＩＣＮの全体構造の特徴及び通信フローに影響を与えることがなく、拡張可能性及び縮小可能性が優れている。
【００５７】
担当する機能領域に応じて、ＰｏｓｔｂｏｘはＬｏｃａｌ  Ｐｏｓｔｂｏｘ（ローカルポスト）とＣｒｏｓｓ  Ｐｏｓｔｂｏｘ（交差ポスト）とに分けられる。具体的に、本実施例において、ＤＳＰ  ｃｌｕｓｔｅｒ（群）内部とＤＳＰ  ｃｌｕｓｔｅｒ（群）内部とのコア間通信を担当する１０個のlocal  Ｐｏｓｔｂｏｘと、ＤＳＰ  ｃｌｕｓｔｅｒとＣＰＵ  ｃｌｕｓｔｅｒとの間のコア間通信を担当する一つのｌｏｃａｌ  Ｐｏｓｔｂｏｘと、ＤＳＰ  ｃｌｕｓｔｅｒ間のコア間通信を担当する一つのＣｒｏｓｓ  Ｐｏｓｔｂｏｘ及び/又はＣＰＵ  ｃｌｕｓｔｅｒ間のコア間通信を担当する一つのＣｒｏｓｓ  Ｐｏｓｔｂｏｘと、を含む。このように、分布式構造によると、通信量を特定の領域の帯域幅に制限して、他の通信領域に如何なる影響を与えることがなく、また、各調停モジュールの調停オーバーヘッドを顕著に低減し、マルチコア全体の帯域幅の効率を顕著に増大し、マルチコア全体の通信遅延を低減する。同時に、コアの数量が顕著に増加される場合、一つのコアが受信するコア間通信中断要求が過量になる恐れがあるので、この時、複数のＰｏｓｔｂｏｘの中断要求を通過させるか、又は論理的に合併すると、コアに到達するコア間中断要求の数量を低減させ、ＩＣＮの拡張可能性を向上させることができる。
【００５８】
ここで、ＩＣＮに含まれる３類のモジュールは具体的に以下のように実施される：
（１）ポストモジュール（Ｐｏｓｔｂｏｘ）
受信コアが読み取るように、メッセージをある位置に一時的に保存しなければならなく、また、受信コアにメッセージが到来したことを通知することのできる確実なメカニズムが必要であるので、本発明のＩＣＮは、複数のＰｏｓｔｂｏｘモジュールを含む。また、以下の機能を提供する：
メッセージの記憶
相互排他する読み取り/書き込みメッセージ
中断要求の発生通知
【００５９】
図１２は、本発明の実施例に係わるコア間通信装置におけるポストモジュールの構造を示すブロック図であり、図１２に示すように、該ポストモジュール（Ｐｏｓｔｂｏｘ）は、複数のＢＩＵユニットと、複数のＲｅｇＦｉｌｅｓユニットと、複数のＩｎｔＧｅｎユニットとを含み。以下、各機能ユニットを説明する：
ＢＩＵユニット：
メッセージの読み取り/書き込みの相互排他アクセス機能を実現する。ここで、ＢＵＳ０は該Ｐｏｓｔｂｏｘに所属される受信コアのメッセージ読み取り通路であって、ＢＵＳ１〜nは、送信コアのメッセージ書き込み通路である。ＢＩＵユニットは、バスＥｒｒｏｒフィードバックレジスタを多重化することで一つのロックを実現して同一のＲｅｇＦｉｌｅｓユニットの相互排他アクセス機能を実現する。
【００６０】
ＲｅｇＦｉｌｅｓユニット：
複数のユニットにメッセージ記憶レジスタ空間を提供する。各Ｐｏｓｔｂｏｘは、メッセージ送信通路に対応する量のメッセージ記憶レジスタを有する。同時に、応用の需要に応じて決めた通信量に応じて、さらに多いメッセージレジスタを設けることもでき、異なるメッセージレジスタはアドレスに基づいて区別する。
【００６１】
ＩｎｔＧｅｎユニット：
メッセージが到来した時、中断要求を発生して受信コアに通知するように構成される。受信コアがメッセージを読み取ったことを検出した後、中断要求を自動的に削除する。このように、従来のコア間通信方式におけるメッセージの読み取りのために中断削除レジスタを設ける操作を行う必要がなくなる。ここで、各中断線を一つ又は１組のＲｅｇＦｉｌｅｓユニットにバンドルして、受信コアが中断要求番号に応じて特定のＩＳＲ（中断サービスプログラム）に入って、対応するＲｅｇＦｉｌｅｓ中のメッセージを読み取ることができる
ここで、本コア間通信装置中のＰｏｓｔｂｏｘは、他の技術案では具備していない相互排他アクセス保護機能を具備している。
【００６２】
従来のマルチコア通信方式において、マルチコアが同一のコア間通信リソースを占用する時、相互排他のロック又はスピンロックによって相互排他操作を行わなければならい。これに対し、Ｐｏｓｔｂｏｘは、バスＥｒｒｏｒフィードバックレジスタを多重化することでロックレジスタを実現して相互排他アクセス機能を完成し、該操作は以下のように実現される：
ＢＩＵが、Ｅｒｒｏｒ情報フィードバックレジスタを多重化することでロックレジスタを実現する。ロックレジスタが０であると、ロックがリリース状態であることを表し、ロックレジスタが１であると、ロックが占用状態であることを表す。正常な状況において、送信コアがＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓを書き込んだ後、ロックレジスタは自動的に１になる。その後、Ｐｏｓｔｂｏｘに中断が発生し、受信コアに通知すると、受信コアはＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行って、ロックレジスタは自動的に０になる。
【００６３】
第１種の異常が発生した場合、即ち、受信コアがＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行う前、他の送信コアがＲｅｇＦｉｌｅｓに書き込み操作を行おうとする場合、この時にＲｅｇＦｉｌｅｓ中のメッセージが修正されていると、前のメッセージを紛失してしまう。しかし、本実施例におけるＰｏｓｔｂｏｘ中のロックレジスタは１で、ロックが占用状態であることを表すので、送信メッセージの書き込み操作に成功していなく、即ち、Ｐｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓの情報が修正されていない。同時に、ロックレジスタ情報１は、Ｅｒｒｏｒ応答情報として、送信コアに返送されて、異常操作を行ったことを通知する。コアは異常処理ステップに移行し、即ち、複数のコマンド周期を待機してからアクセスを開始する。受信コアが正常なＰｏｓｔｂｏｘ  ＲｅｇＦｉｌｅｓ読み取り操作を行った後、ロックレジスタが０になって、即ち、ロックがリリースされ、他の送信コアが正常の書き込み操作を行うことができる。
【００６４】
第２種の異常が発生した場合、即ち、受信コアがメッセージを読み取る時に他のコアがメッセージの書き込み操作を行う場合、ＢＩＵは強制的に読み取ってから書き込む順で行わせ、つまり、先ずメッセージの読み取りが行ってから新しいメッセージの書き込みを行うことで、コア間通信の確実性を保証することができる。
【００６５】
実現する場合、ロックレジスタがＥｒｒｏｒ情報を発生するレジスタであって、つまり、別途の相互排他のロック、信号量のような相互排他機能ユニット等を追加する必要がなく、ロック要請操作に成功するとメッセージの送信操作に成功したことに相当し、ロックのリリースに成功するとメッセージの読み取りに成功したことに相当し、メッセージのロック要請に失敗するとバスがＥｒｒｏｒ応答をフィードバックし、つまり、相互排他処理メカニズムとバス共用の読み取り/書き込みメカニズムとが一致し、別の相互排他操作周期を追加する必要がなく、プログラミングの複雑性及び通信遅延を顕著に低下させる。従って、上記実施例及び好適な実施形態に係わる装置及び方法によると、コア間通信におけるリソースの相互排他アクセス保護を実現することができる。
【００６６】
（２）バスアダプタモジュール（ＢＡ、ＢＵＳ  Ａｄａｐｔｅｒ）：
通信を行うコア間のバスプロトコルが異なる恐れがあり、コアがアクセスしようとするＰｏｓｔｂｏｘが多いので、本実施例におけるＩＣＮは、一つのコア読み取り/書き込みインターフェースと、複数のＰｏｓｔｂｏｘ読み取り/書き込みインターフェースという3類を有するのＢＡモジュールを複数含み、該ＢＡモジュールによって以下の二つの機能を実現する：
Ａ、異なるコアインターフェースバスプロトコルをＩＣＮ内部のデータ読み取り/書き込みプロトコルに対応させる。
Ｂ、バスアクセスのＰｏｓｔｂｏｘアドレスに基づいて、アドレスろ過を行って、即ち、唯一のターゲットＰｏｓｔｂｏｘの内部インターフェースのみに有効データ及び有効制御信号が現れるようにする。
このように、ＢＡモジュールによって外部の複雑なバスプロトコルをマスクし、内部で簡単で高速なデータ読み取り/書き込みプロトコルのみを用いることができ、コア間通信装置のハードウェア遅延を顕著に低減できる。
【００６７】
本実施例において、内部と外部においていずれも簡単な補強外付けバス（Ａｄｖａｎｃｅｄ  Ｐｅｒｉｐｈｅｒａｌ  ＢＵＳ、ＡＰＢと略称）プロトコルを用いていて、図１３は本発明の実施例に係わるコア間通信装置におけるバスアダプタモジュールの構造を示すブロック図であり、図１３に示すように、ＢＡは、ＡＰＢのアクセスアドレスとＰｏｓｔｂｏｘのレジスタアドレスが対応するか否かに基づいて、異なるＡＰＢ選択信号を出力することによって、異なるメッセージ通路を選択する。該ＡＰＢインターフェースを介して読み取りや書き込みを行うことができ、コアはＡＰＢインターフェースを介して、Ｐｏｓｔｂｏｘにメッセージの読み取り/書き込み操作を行う。
【００６８】
（３）調停モジュール（Ａｒｂｉｔｅｒ）:
一つのＣｌｕｓｔｅｒの内部に複数のコアが存在し、且つ同時に一つのＰｏｓｔｂｏｘへメッセージの読み取り/書き込みアクセスを発する場合、衝突が発生してしまう。従って、本発明の前記ＩＣＮは複数のＡｒｂｉｔｅｒモジュールを含み、図１４は本発明の実施例に係わるコア間通信装置における調停モジュールの構造を示すブロック図であり、図１４に示すように、該調停モジュールは、複数のメッセージ入力インターフェースと、一つのメッセージ出力インターフェースとを含む。以下の機能を提供する：複数のデータ通路の読み取り/書き込みアクセス要求に、特定の原則に従って調停を行って、即ち、同時に達したメッセージ読み取り/書き込みアクセス要求を直列化する。
【００６９】
ここで、Ａｒｂｉｔｅｒは、同時に調停モジュールに到達したメッセージ読み取り/書き込みアクセスに順番に調停を行い、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセスを順に直列出力する。つまり、メッセージ読み取り/書き込み要求のある異なるデータ通路に順番に行って、一回に一つの要求のあるデータ通路のみを通過させ、読み取り/書き込みアクセスを完成した後、次のメッセージ読み取り/書き込み要求のあるデータ通路を通過させ、全ての通路のメッセージ読み取り/書き込み要求を処理するまで、類似して行う。
【００７０】
同時に、モジュールの動作モードに応じて、前記調停モジュールに同時に到達したメッセージ読み取り/書き込みアクセスに優先レベルに基づく調停を行うことができ、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセス要求を優先レベルの高い方から低い方の順で行うことができる。
【００７１】
本コア間通信装置を応用したコア間通信方法は以下のステップを含む：メッセージ送信待ちコアが、ＢＡを介して、メッセージの書き込み操作を行って、また、ＢＡから返送された情報に基づいて、メッセージの送信に成功したか否かを判定する。各コアが行うメッセージの書込み操作は同期するものではなく、独立して行われて、互いに影響しない。ＢＡから返送されるＥｒｒｏｒ  Ｒｅｓｐｏｎｓｅ情報が無効であると、メッセージの送信に成功し、そうでないと、Ｐｏｓｔｂｏｘが占用されたことを表し、メッセージの書き込みに成功していない。この時、送信コアは、メッセージの送信に成功するまで、複数の周期後にメッセージの書込み操作を再び行うことができる。
【００７２】
複数の送信コアの送信メッセージは、Ａｒｂｉｔｅｒを経て、又はＡｒｂｉｔｅｒを経ずに特定のアドレスを有するＰｏｓｔｂｏｘに送信され、Ｐｏｓｔｂｏｘで中断要求を発生してメッセージ受信コアに送信する。通信を行うコアの数量が少ない時、メッセージの読み取り/書き込みをＡｒｂｉｔｅｒを経ずに行うこともできる。
受信コアが、中断を受信して、メッセージ読み取り操作を行う。
【００７３】
受信コアのメッセージ読み取り操作要求信号はＩＣＮに送信されて、中断要求を発生したＰｏｓｔｂｏｘまで送信され、また、送信されたメッセージを読み取って、Ｐｏｓｔｂｏｘの中断要求は自動的に削減される（即ち、メッセージを読み取った後、対応する中断要求は自動的に削除される）。
【００７４】
以下、三つの例で本発明の上述したコア間通信方法を説明する。
Ａ：通常のアプリでＣＬＵＳＴＥＲ内部のメッセージの通信を行う。
１、メッセージ送信コアＤＳＰ２が、ターゲットコアＤＳＰ０に所属されるＰｏｓｔｂｏｘ０にメッセージを送信する。
２、Ｐｏｓｔｂｏｘ０が中断要求を発生してＤＳＰ０に送信する。
３、ＤＳＰ０がＩＳＲに入って、Ｐｏｓｔｂｏｘ中のメッセージを読み取る。
【００７５】
Ｂ：通常のアプリで、同時にＣＬＵＳＴＥＲ間のメッセージの通信とＣＬＵＳＴＥＲ内部のメッセージの通信を行う。
１、ＤＳＰ  ｃｌｕｓｔｅｒ０内部のメッセージ送信コアＤＳＰ２が、ターゲットコアＤＳＰ０に所属されるＰｏｓｔｂｏｘ０にメッセージを送信する。ＤＳＰ  ｃｌｕｓｔｅｒ  １のメッセージ送信コアＤＳＰ３と４に、ＤＳＰ  ｃｌｕｓｔｅｒ０  ＤＳＰ０に送信すべきメッセージがある。従って、先ず、ＤＳＰ  ｃｌｕｓｔｅｒ１内部のＡｒｂｉｔｅｒ２による調停を経て、送信コアＤＳＰ３が調停権を取得したとすると、まず、メッセージをＤＳＰ  ＣＬＵＳＴＥＲ０のＰｏｓｔｂｏｘに書き込み、その後、送信コアＤＳＰ４が調停権を取得して、メッセージをＤＳＰ  ＣＬＵＳＴＥＲ０のＰｏｓｔｂｏｘに書き込む。
２、ＤＳＰ  ＣＬＵＳＴＥＲ０内部のＰｏｓｔｂｏｘ０とＤＳＰ  ＣＬＵＳＴＥＲ０のＰｏｓｔｂｏｘが同時に、中断要求を発生する。
３、ＤＳＰ０コアがＩＳＲに入って、ソフトウェアによって設定された優先レベルに従って、まず内部のＰｏｓｔｂｏｘ０のメッセージを読み取って、その後ＤＳＰ  ＣＬＵＳＴＥＲ０のＰｏｓｔｂｏｘ中のメッセージを読み取る。
【００７６】
Ｃ、相互排他保護メカニズムが効力を発生する際のＣＬＵＳＴＥＲ間のコア間通信を行う。
１、ＣＰＵ  ＣＯＲＥ０が、ＢＡ６を介して、ＣＰＵ&ＤＳＰ  Ｃｒｏｓｓ  Ｐｏｓｔｂｏｘにメッセージを送信する。
２、ＣＰＵ&ＤＳＰ  Ｃｒｏｓｓ  Ｐｏｓｔｂｏｘが、中断要求を発生してＤＳＰ５に送信し、ＤＳＰ５は優先レベルのより高い業務があるので該中断を処理ていなく、即ち、メッセージの読み取りを行っていない。
３、ＣＰＵ  ＣＯＲＥ０が、ＢＡ６を介して、ＣＰＵ&ＤＳＰ  Ｃｒｏｓｓ  Ｐｏｓｔｂｏｘに他のメッセージを送信し、その後ＥＲＲＯＲ情報が返送されたので、通信リソースのロックがリリースされたことを表し、該メッセージの送信に成功していない。ＣＰＵ  ＣＯＲＥ０は待機周期を経て、メッセージ送信操作を再び開始する。
４、ＤＳＰ５は優先レベルの高い業務を処理した後、一番目のメッセージを取得する。
５、ＣＰＵ  ＣＯＲＥ０は二番目のメッセージを成功に送信し、即ち、返送したＥＲＲＯＲ情報は無効である。その後、ＣＰＵ  ＣＯＲＥ０は二番目のメッセージを成功に読み取る。このように、コア間通信を行う場合、別途の相互排他保護メカニズムを必要とせずに確実なコア間通信を行うことができる。
ここで、実際のコア間通信において、以上の三つの状況またはさらに複雑な通信状況が存在する可能性がある。
【００７７】
また、本発明の実施例のコア間通信装置に含まれる上記三つのモジュール及びその接続関係は、関連技術に存在する技術課題を解決するためのキーポイントである。本発明の実施例のコア間通信方法も、従来技術と明らかな相違点を有するものである。上記実施例及び好適な実施形態は元々相互排他機能を有する。即ち、コア間通信を行う前、他のロックの要請やロックのリリース操作を行う必要がなく、相互排他機能は、完全に、ＩＣＮ自体の読み取り/書き込みアクセスとＥＲＲＯＲ返送メカニズムによって実現できる。また、実施する際、如何なる初期化ステップを行う必要がなく、ＩＣＮの電源を入れた後直ちに正常な動作を行うことができる。メッセージ読み取り/書き込み要求がＩＣＮに送信された後、ＩＣＮによって完全に自己管理して、コア間通信の複雑性を顕著に低下させ、通信遅延を低減する。該コア間通信装置は分布式構造を用いて、一部の通信量を特定の領域の帯域幅に制限して、他の通信領域に影響を与えることがなく、各調停モジュールの調停オーバーヘッドを顕著に低減して、マルチコア全体の合計通信遅延を顕著に低減する。コアの数量が顕著に増加される場合、上記実施例及び好適な実施形態によると、対応する数量の３類のモジュールと対応する接続線のみを追加すればよく、同時に、接続方式も応用の需要に応じて柔軟に選択することができ、ＩＣＮの既存構造特徴及びソフトウェア操作ステップに影響を与えることがなく、優れた拡張可能性及び縮小可能性を有する。
【００７８】
当業者にとって、上記の本発明の各ブロック又は各ステップは共通の計算装置によって実現することができ、単独の計算装置に集中させることができれば、複数の計算装置から構成されたネットワークに分布させることもでき、さらに計算装置が実行可能なプログラムのコードによって実現することもできるので、それらを記憶装置に記憶させて計算装置によって実行することができ、又は夫々集積回路ブロックに製作し、又はそれらにおける複数のブロック又はステップを単独の集積回路ブロックに製作して実現することができることは明らかなことである。このように、本発明は如何なる特定のハードウェアとソフトウェアの結合にも限定されない。
【００７９】
以上は、本発明の好適な実施例に過ぎず、本発明を限定するものではない。当業者であれば本発明に様々な修正や変形が可能である。本発明の精神や原則内での如何なる修正、置換、改良などは本発明の保護範囲内に含まれる。
【符号の説明】
【００８０】
１２  ポストモジュール
１４  バスアダプタモジュール
２２  調停モジュール
３２  バスインターフェースユニット
４２  第１の相互排他ユニット
４４  第２の相互排他ユニット
５２  トリガーサブユニット
６２  記憶ユニット
７２  通知ユニット
９０  ポストモジュール
９２  受信ユニット
９４  送信ユニット
【図１】
0006475625.tif 000002
【図２】
0006475625.tif 000003
【図３】
0006475625.tif 000004
【図４】
0006475625.tif 000005
【図５】
0006475625.tif 000006
【図６】
0006475625.tif 000007
【図７】
0006475625.tif 000008
【図８】
0006475625.tif 000009
【図９】
0006475625.tif 000010
【図１０】
0006475625.tif 000011
【図１１】
0006475625.tif 000012
【図１２】
0006475625.tif 000013
【図１３】
0006475625.tif 000014
【図１４】
0006475625.tif 000015