JP6475625B2 - コア間通信装置及び方法 - Google Patents

コア間通信装置及び方法 Download PDF

Info

Publication number
JP6475625B2
JP6475625B2 JP2015535970A JP2015535970A JP6475625B2 JP 6475625 B2 JP6475625 B2 JP 6475625B2 JP 2015535970 A JP2015535970 A JP 2015535970A JP 2015535970 A JP2015535970 A JP 2015535970A JP 6475625 B2 JP6475625 B2 JP 6475625B2
Authority
JP
Japan
Prior art keywords
message
core
post module
module
inter
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.)
Active
Application number
JP2015535970A
Other languages
English (en)
Other versions
JP2015536490A (ja
Inventor
▲鵬▼ 王
▲鵬▼ 王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Publication of JP2015536490A publication Critical patent/JP2015536490A/ja
Application granted granted Critical
Publication of JP6475625B2 publication Critical patent/JP6475625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、高性能チップを設計する分野に関し、具体的に、コア間通信装置及び方法に関する。
マルチコアプロセッサが各技術分野に汎用されることによって、それの強大な並列演算力、低電力消費、高集積度などのメリットが市場の認可を得ることになっている。マルチコアプロセッサの顕著な特徴は、同一のジョブを複数のカーネルスレッド又はプロセスに分離して並行して運転することであって、このような並行性によって、性能を大幅に向上させることができる。しかし、マルチコアプロセッサの性能が向上されると共に、コア間通信ジョブの頻度が高く、マルチコア通信を複雑に管理しなければならない等の一連の問題をもたらし、且つ、同一のチップに集積されるコアがますます多くなっているので、これらの問題がさらに目立つことになっている。よって、高速且つ効率的なコア間通信装置及び方法は、マルチコアプロセッサチップのキーポイントとなっている。
関連技術において、通常、共通メモリに基づいてコア間通信を実現する。例えば、特許番号がCN200510087321である特許「嵌め込み式リアルタイム操作システムにおけるマルチコアプロセッサのコア間通信方法及び装置」において、共通メモリによってコア間通信に必要な共通メッセージプールとメッセージデータルートを実現している。当該方法によると、操作システムのソフトウェアがメッセージキューを構成し、コア間通信のルートを確立する操作を行わなければならないので、非常に複雑である。そして、マルチコアの共通メッセージメモリへのアクセスの一致性を実現するため、スピンロックリソースを利用して単独にロックを要請してリリースする等の同期操作を行わなければならなく、このような複雑なソフトウェアによる交換ステップによって、コア間通信の効率を大幅に低下させ、同時に、コア数量が顕著に増加される場合、信頼性も低下する。また、メッセージの分離操作と中断通知メカニズムによって効率を低下させてしまう。そして、共通メモリに基づく方法によると、コア間メッセージが必ずデータと同一の帯域幅を利用するので、通信のリアルタイム性でも確実ではない。
共通メモリに基づくコア間通信メカニズムに存在する複雑で高遅延の問題を解決するための改善方法が開示されている。例えば、特許番号がUS20080988459である特許「Method and System for Generating and Delivering Inter-Processor Interrupts in a Multi-CORE Processor and in Certain Shared Memory Multi-Processor Systems」において、ソフトウェアにより1組の専用の割り込みマスクレジスタ(Interrupt Mask Register、IMRと略称)を操作して共通の記憶領域を指定し、指定された共通メモリ領域に対する書き込み操作を行う時、コア間の中断の発生を自動にトリガーする。しかし、そのメッセージは共通の記憶領域のサーキュラーバッファに記憶され、依然としてソフトウェアが実現するデータ構造によってサーキュラーバッファアクセスを行わなければならい。メッセージの通知による中断はIMRによって発生する。そして、IMRレジスタを予め設置しなければならなく、且つ、レジスタの操作とメッセージの操作の分離、ソフトウェアによる交換ステップが多い等の要因で、コア間通信の遅延が大きく、ソフトウェアのプログラミングが複雑であって、高性能のマルチコア通信の需要を満たすことができない。同時に、当該特許によると、コア間通信の確実性を保証するために相互排他する操作を導入してリソースの消費及び複雑度が高まる問題は解決することができない。
上記した従来のコア間通信技術における通信効率が低く、リアルタイム性に欠けている問題以外に、従来のコア間通信技術によると、コア数量が顕著に増加される場合、さらに多いハードウェアリソースとさらに複雑なソフトウェア処理ステップが必要であって、異種マルチコアシステムにおいて、コアの周波数、インターフェース構造、データ構造に対する支援差異も従来のコア間通信方法におけるソフトウェアの複雑性を大幅に増大し、異種コア通信プロセスの互換性と確実性が不足である。即ち、従来のコア間通信技術は、コア異種及びコア数量が増加される状況での応用において拡張可能性及び柔軟性に欠けている。
よって、関連技術におけるコア間通信装置及び方法には、複雑で、リアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題が存在している。
本発明は、少なくとも関連技術におけるコア間通信装置及び方法に存在している複雑で、リアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題を解決することができるコア間通信装置及び方法を提供することをその目的とする。
本発明の一態様によると、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続されて、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備えるコア間通信装置を提供する。
該コア間通信装置が複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、前記複数の読み取り/書き込みアクセス要求に対して調停を行って、前記複数の読み取り/書き込みアクセス要求を順に直列出力する調停モジュールをさらに備えることが好ましい。
前記ポストモジュールは、バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するように構成されたバスインターフェースユニットを含むことが好ましい。
前記バスインターフェースユニットは、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成された第1の相互排他ユニット、及び/又は、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された第2の相互排他ユニット、を備えることが好ましい。
前記バスインターフェースユニットは、前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするように構成されたトリガーサブユニットを含むことが好ましい。
前記ポストモジュールは、メッセージアクセスアドレスに応じて、前記メッセージを記憶するように構成された記憶ユニットを含むことが好ましい。
前記ポストモジュールは、中断要求を介して、前記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニットを含むことが好ましい。
本発明の他の一態様によると、ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信し、前記ポストモジュールが、メッセージ受信コアに中断要求を送信し、前記メッセージ受信コアは前記中断要求に基づいて前記メッセージを読み取るコア間通信方法を提供する。
該方法は、複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、前記複数の読み取り/書き込みアクセス要求に対して調停を行って、前記複数の読み取り/書き込みアクセス要求を順に直列出力することが好ましい。
複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、バスエラー・フィードバックレジスタを多重化することで、メッセージの読み取り/書き込みの相互排他を実現することが好ましい。
バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するステップは、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現することが好ましい。
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーすることが好ましい。
前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、前記ポストモジュールが前記メッセージ送信コアに第1の応答メッセージを送信し、前記メッセージ送信コアは、前記第1の応答メッセージに基づいて、前記ポストモジュールへのメッセージの書き込みに成功したと確定し、及び/又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記ポストモジュールが前記メッセージ受信コアに第2の応答メッセージを送信し、ここで、前記メッセージ受信コアが、前記第2の応答メッセージに基づいて、メッセージの読み取りに成功したと確定することが好ましい。
前記メッセージ受信コアが前記メッセージを読み取った後、前記ポストモジュールが、前記中断要求を削除することが好ましい。
本発明の他の一態様によると、ポストモジュールに設けられ、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信するように構成された受信ユニットと、前記ポストモジュールに設けられ、メッセージ受信コアに中断要求を送信するように構成された送信ユニットと、を備え、前記メッセージ受信コアは、前記中断要求に基づいて、前記メッセージを読み取るコア間通信装置を提供する。
本発明によると、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続され、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備えることによって、従来技術におけるコア間通信装置及び方法に存在する複雑でリアルタイム性が悪く、マルチコアを応用する際に拡張可能性に欠けている問題を解決し、コア間通信の複雑度を顕著に低下させ、通信遅延を減少し、優れた拡張可能性及び縮小可能性の効果を実現することができる。
ここで説明する図面は、本発明を理解させるためのものであり、本発明の一部を構成し、本発明における実施例と共に本発明を解釈し、本発明を不当に限定するのではない。
本発明の実施例に係わるコア間通信装置の構造を示すブロック図である。 本発明の実施例に係わるコア間通信装置の好適な構造を示すブロック図である。 本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の1である。 本発明の実施例に係わるコア間通信装置におけるポストモジュール12中のバスインターフェースユニット32の好適な構造を示すブロック図である。 は、本発明の実施例に係わるコア間通信装置におけるバスインターフェースユニット32の好適な構造を示すブロック図である。 本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の2である。 本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の3である。 本発明の実施例に係わるコア間通信方法を示すフローチャートである。 本発明の実施例に係わるコア間通信装置の構造を示すブロック図である。 本発明の実施例に係わるマルチコアチップのコア間通信装置の構造を示すブロック図である。 本発明の実施例に係わるコア間通信方法を示すフローチャートである。 本発明の実施例に係わるコア間通信装置におけるポストモジュールの構造を示すブロック図である。 本発明の実施例に係わるコア間通信装置におけるバスアダプタモジュールの構造を示すブロック図である。 本発明の実施例に係わるコア間通信装置における調停モジュールの構造を示すブロック図である。
以下、図面を参照しつつ実施例を結合して本発明の実施例を詳細に説明する。ここで、衝突しない限り、本願の実施例及び実施例中の特徴を互いに結合することができる。
本実施例においてコア間通信装置を提供し、図1は本発明の実施例に係わるコア間通信装置の構造を示すブロック図であり、図1に示すように、該コア間通信装置は、ポストモジュール12と、バスアダプタモジュール14と、を含み、以下、該装置を説明する。
ポストモジュール12は、メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、メッセージ受信コアに該メッセージを読み取ることを通知するように構成されている。バスアダプタモジュール14は、上記ポストモジュール12に接続され、ポストモジュールと通信を行うメッセージ受信コア及びメッセージ送信コアとの間に位置し、ポストモジュールとメッセージ受信コア及びメッセージ送信コアの読み取り/書き込みインターフェースを提供する。
上記コア間通信装置によると、ポストモジュールと、メッセージ受信コアとメッセージ送信コアとの間に接続されるバスアダプタモジュールとを含む構造を有することで、関連技術における共通メモリを用いる方式、又は、専用の中断協力共通メモリを用いる方式において数多いソフトウェアの交換が必要であるのでコア間通信ステップが複雑であって効率が低く柔軟性に欠けている問題が存在していることに比べ、ポストモジュールとバスアダプタモジュールからなる簡単なコア間通信装置を構成して、コア間通信装置自体がメッセージの読み取り/書き込みアクセス及びメッセージの読み取り/書き込みアクセスへの応答をフィードバックすることで、コア間通信の複雑度を大幅に低下させ、通信遅延を効率的に低減し、モジュールを追加するだけで実現することができ、拡張可能性及び縮小可能性を実現できる。
図2は、本発明の実施例に係わるコア間通信装置の好適な構造を示すブロック図であり、図2に示すように、該装置は図1に示す全てのモジュールを含む以外、調停モジュール22をさらに含み、該調停モジュール22はポストモジュール12とバスアダプタモジュール14との間に接続されて、複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した時、所定のルールに従って、上記複数の読み取り/書き込みアクセス要求に調停を行って、該複数の読み取り/書き込みアクセス要求を順に直列出力するように構成される。
図3は、本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の1であり、図3に示すように、該ポストモジュール12はバスインターフェースユニット32を含み、該バスインターフェースユニット32はバスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現するように構成される。
図4は、本発明の実施例に係わるコア間通信装置におけるポストモジュール12中のバスインターフェースユニット32の好適な構造を示すブロック図であり、図4に示すように、該バスインターフェースユニット32は第1の相互排他ユニット42及び/又は第2の相互排他ユニット44を含み、以下、該好適なバスインターフェースユニットを説明する。
第1の相互排他ユニット42は、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、複数のメッセージ送信コアによる該ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成され、及び/又は、第2の相互排他ユニット44はバスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、メッセージ送信コアによる該ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる該ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された。
図5は、本発明の実施例に係わるコア間通信装置におけるバスインターフェースユニット32の好適な構造を示すブロック図であり、図5に示すように、該バスインターフェースユニット32はトリガーサブユニット52を含み、該トリガーサブユニット52は、メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、バスエラー・フィードバックレジスタの状態変更をトリガーするように構成された。
図6は、本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の2であり、図6に示すように、該ポストモジュール12は記憶ユニット62を含み、該記憶ユニット62はメッセージアクセスアドレスに応じて、上記メッセージを記憶するように構成された。
図7は、本発明の実施例に係わるコア間通信装置におけるポストモジュール12の好適な構造を示すブロック図の3であり、図7に示すように、該ポストモジュール12は、中断要求を介して、上記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニット72を含む。
本実施例においてさらにコア間通信方法を提供し、図8は本発明の実施例に係わるコア間通信方法を示すフローチャートで、図8に示すように、以下のステップを含む。
ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信する(ステップS802)。
該ポストモジュールが、メッセージ受信コアに中断要求を送信し、該メッセージ受信コアは、上記中断要求に基づいて上記メッセージを読み取る(ステップS804)。
上記ステップによると、ポストモジュールとバスアダプタモジュールの組合せによってコア間通信を実現し、関連技術における共通メモリを用いる方式、又は、専用の中断協力共通メモリを用いる方式において数多いソフトウェアの交換が必要であるのでコア間通信ステップが複雑であって効率が低く柔軟性に欠けている問題が存在していることに比べ、プロセスが簡単であると共に、メッセージの読み取り/書き込みアクセス自体によってコア間通信を実現することができるので、コア間通信の複雑度を大幅に低下させ、コア間通信の効率をある程度効率的に向上させることができる。
複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、所定のルールに従って、該複数の読み取り/書き込みアクセス要求に調停を行って、上記複数の読み取り/書き込みアクセス要求を順に直列出力することが好ましい。ここで、上記複数のコアは複数のメッセージ送信コアであることが可能で、そして、複数のメッセージ受信コアであることも可能で、両方の混合であることも可能である。読み取り/書き込みアクセスを行う前、先ず読み取り/書き込みアクセス要求に調停処理を行うことでコア間通信の混乱を回避し、そして、該調停モジュールは、具体的なコア間通信を行う複数のコアの数量毎に応じて柔軟に選択することができ、例えば、通信を行うコアの数量が少ない場合は利用しなく、コアの数量が多いときに一つ又は複数の調停モジュールを用いて処理を行うことができる。
複数のコアが同時にポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発する場合、バスエラー・フィードバックレジスタを多重化することでメッセージの読み取り/書き込みの相互排他を実現する。コア間通信を行っているバスエラー・フィードバックレジスタによってメッセージの読み取り/書き込みの相互排他を実現することによって、従来技術において相互排他機能を実現するために他の相互排他装置や他の相互排他操作ステップを追加する場合に比べ、コア間通信装置と外部構造との交換を減少し、リソースの消費を効率的に減少することができる。
ここで、コア間通信中に発生しやすい異常状況について、バスエラー・フィードバックレジスタを多重化するとメッセージの読み取り/書き込みの相互排他を良好に実現することができ、例えば、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、複数のメッセージ送信コアによるポストモジュールへのメッセージの書き込みの相互排他を実現することができ、又は、例えば、バスエラー・フィードバックレジスタを多重化することで相互排他のロックの機能を実現して、メッセージ送信コアによるポストモジュールへのメッセージの書き込みとメッセージ受信コアによるポストモジュールからのメッセージの読み取りとの相互排他を実現することもできる。また、両方を結合することも可能であることは言うまでもない。操作の際に、メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、バスエラー・フィードバックレジスタの状態の変更をトリガーすることで、ポストモジュールの読み取り/書き込み状態を変更し、メッセージの紛失を回避し、読み取り/書き込みの順次性を実現し、読み取り/書き込みメッセージの確実性を保証することができる。
メッセージ送信コアがポストモジュールにメッセージを書き込んだ後、ポストモジュールがメッセージ送信コアに第1の応答メッセージを送信し、該メッセージ送信コアは上記第1の応答メッセージに基づいて、ポストモジュールへのメッセージの書き込みに成功したと判定し、及び/又は、メッセージ受信コアがポストモジュールからメッセージを読み取った後、ポストモジュールがメッセージ受信コアに第2の応答メッセージを送信し、メッセージ受信コアが該第2の応答メッセージに基づいて、メッセージの読み取りに成功したと判定することが好ましい。メッセージ受信コアがメッセージを読み取ったと判定した後、ポストモジュールは中断要求を自動的に削除する。従って、継続して新しいメッセージを書き込む時、新しい中断要求を発生することができ、読み取り/書き込みメッセージの対応性を保証できると共に、受信コアが中断要求を削除する操作ステップを行う必要がなくなる。
本実施例においてさらに、コア間通信装置を提供し、該装置は上記実施例及び好適な実施形態を実現するもので、既に説明した部分の説明は省略する。以下の説明で利用される用語「モジュール」は所定の機能を実現できるソフトウェア及び/又はハードウェアの組み合わせである。以下の実施例で説明する装置をハードウェアで実現することが好ましいが、ソフトウェア又はソフトウェアとハードウェアの組み合わせて実現することも可能である。
図9は、本発明の実施例に係わるコア間通信装置の構造を示すブロック図であり、図9に示すように、該装置はポストモジュール90に設けられ、受信ユニット92と、送信ユニット94とを含み、以下詳しく説明する。
受信ユニット92は、バスアダプタモジュールを介して、メッセージ送信コアから送信されるメッセージを受信するように構成され、送信ユニット94は上記受信ユニット92に接続されて、メッセージ受信コアに中断要求を送信するように構成され、該メッセージ受信コアは上記中断要求に基づいて、上記メッセージを読み取る。
関連技術におけるコア間通信装置の複雑度が高く、リアルタイム性に欠けて、マルチコアを応答する際に拡張可能性に欠けている等の問題を解決することができる。本実施例において、新規のコア間通信装置ICN(Inter−core Communication Network、ICNと略称)を提供し(説明の便宜を図るため、コア間通信装置をICNと略称する)、該コア間通信装置ICNは、のポストモジュール(Postbox)(上記ポストモジュール12と同一なものである)と、バスアダプタモジュール(Bus Adapter、BAと略称)(上記バスアダプタモジュール14と同一なものである)と、調停モジュール(Arbiter)(上記調停モジュール22と同一なものである)という3類を任意数量含む。ICNは、レイヤ構造によってコア数量の増加及び異種コアの状況に応用されることができ、図10は本発明の実施例に係わるマルチコアチップのコア間通信装置の構造を示すブロック図であり、図10に示すように、該構造は、ポストモジュールと、バスアダプタモジュールと、調停モジュールと、を含み、以下、該装置を説明する。
(1)ポストモジュール(Postbox)
受信コアが読み取るように、メッセージをある位置に一時的に保存しなければならなく、また、受信コアにメッセージが到来することを通知することができる確実なメカニズムが必要であって、本実施例において提供するICNは、複数のPostboxモジュールを含む。上記要求を満たすため、該ポストモジュールは、相互排他する読み取り/書き込みメッセージ、メッセージの記憶、中断要求の発生通知の機能を提供する。
ポストモジュールの上記機能を実現するため、Postboxモジュールは、該ポストモジュールに複数のバスインターフェースユニット(Bus Interface Unit、BIUと略称)と、複数のメッセージ記憶ユニット(RegFiles)と、複数の中断発生ユニット(IntGen)と、を含む。以下、ポストモジュールに含まれた各ユニットを説明する。
BIUユニット:メッセージの読み取り/書き込みの相互排他アクセス機能を実現するように構成される。該BIUユニットは、一つのメッセージ受信コアがメッセージを読み取る通路と、複数のメッセージ送信コアがメッセージを書き込む通路を提供する。BIUユニットは、バスエラー(Error)フィードバックレジスタを多重化することでロックを実現して、同一のリソース(即ち、以下で説明するRegFiles)の相互排他アクセス機能を実現する。
RegFilesユニット:複数のユニットにメッセージ記憶レジスタ空間を提供する。各Postboxは、メッセージ送信通路数に対応する量のメッセージ記憶レジスタを有する。同時に、応用の需要に応じて決めた通信量に応じて、さらに多いメッセージレジスタを設けることもでき、異なるメッセージレジスタはアドレスに基づいて区別する。
IntGenユニット:メッセージが到来した時、中断要求を発生して受信コアに通知するように構成された。受信コアが当該メッセージを読み取ったことを検出した後、中断要求を自動的に削除する。このように、従来のコア間通信方式におけるメッセージの読み取りのために中断削除レジスタを設ける操作を行う必要がなくなる。ここで、各中断線を一つ又は1組のRegFilesユニットにバンドルして、受信コアが中断要求番号に応じて特定のISR(中断サービスプログラム)に入って、対応するRegFiles中のメッセージを読み取ることができる。
ここで、本実施例のコア間通信装置中のPostboxは、関連技術において具備していない相互排他アクセス保護機能を具備する。
従来のマルチコア通信方式において、マルチコアが同一のコア間通信リソースを占用する時、相互排他のロック又はスピンロックによって相互排他操作を行わなければならい。これに対し、Postboxは、バスErrorフィードバックレジスタを多重化することでロックレジスタを実現して相互排他アクセス機能を完成し、該操作は以下のように実現される:
BIUが、Error情報フィードバックレジスタを多重化することでロックレジスタを実現する。ロックレジスタが0であると、ロックがリリース状態であることを表し、ロックレジスタが1であると、ロックが占用状態であることを表す。正常な状況において、送信コアがPostbox RegFilesを書き込んだ後、ロックレジスタは自動的に1になる。その後、Postboxが中断を発生し、受信コアに通知すると、受信コアはPostbox RegFiles読み取り操作を行って、ロックレジスタは自動的に0になる。
第1種の異常が発生した場合、即ち、受信コアがPostbox RegFiles読み取り操作を行う前、他の送信コアがRegFilesに書き込み操作を行おうとする場合、この時にRegFiles中のメッセージが修正されていると、前のメッセージを紛失してしまう。しかし、本実施例におけるPostbox中のロックレジスタは1で、ロックが占用状態であることを表すので、送信メッセージの書き込み操作が成功せず、即ち、Postbox RegFilesの情報が修正されていない。同時に、ロックレジスタ情報1は、Error応答情報として、送信コアに返送されて、異常操作を行ったことを通知する。コアは異常処理ステップに移行し、即ち、複数のコマンド周期を待機してからアクセスを開始する。受信コアが正常なPostbox RegFiles読み取り操作を行った後、ロックレジスタが0にり、即ち、ロックがリリースされ、他の送信コアが正常の書き込み操作を行うことができる。
第2種の異常が発生した場合、即ち、受信コアがメッセージを読み取る時に他のコアがメッセージの書き込み操作を行う場合、BIUは強制的に読み取ってから書き込む順で行わせ、つまり、先ず前のメッセージの読み取りを行ってから新しいメッセージの書き込みを行うことで、コア間通信の確実性を保証することができる。
(2)バスアダプタモジュール(BA、Bus Adapter):
通信を行うコア間のバスプロトコルが異なる恐れがあり、コアがアクセスしようとするPostboxが多いので、本実施例におけるICNは、一つのコア読み取り/書き込みインターフェースと、複数のPostbox読み取り/書き込みインターフェースを有する複数のBAモジュールを含み、該BAモジュールによって以下の二つの機能を実現する:
A、異なるコアインターフェースバスプロトコルをICN内部のデータ読み取り/書き込みプロトコルに対応させる。
B、バスアクセスのPostboxアドレスに基づいて、アドレスろ過を行って、即ち、唯一のターゲットPostboxの内部インターフェースのみに有効データ及び有効制御信号が現れるようにする。
このように、BAモジュールによって外部の複雑なバスプロトコルをマスクし、内部で簡単で高速なデータ読み取り/書き込みプロトコルのみを用いることができ、コア間通信装置のハードウェア遅延を顕著に低下させる。
(3)調停モジュール(Arbiter):
Clusterの内部に複数のコアが存在し、且つ同時に一つのPostboxへメッセージの読み取り/書き込みアクセスを発する場合、衝突が発生してしまう。従って、本実施例中のICNは、複数のメッセージ入力インターフェースと一つのメッセージ出力インターフェースを有する複数のArbiterモジュールを含み、以下の機能を提供する:複数のデータ通路の読み取り/書き込みアクセス要求に、特定の原則に従って調停を行って、即ち、同時に達したメッセージ読み取り/書き込みアクセス要求を直列化する。
ここで、Arbiterは、同時に調停モジュールに到達したメッセージ読み取り/書き込みアクセスに順番に調停を行い、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセスを順に直列出力する。又は、同時に該調停モジュールに到達したメッセージ読み取り/書き込みアクセスに優先レベルに基づく調停を行うことができ、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセス要求を優先レベルの高い方から低い方へ順に直列出力する。
本実施例においてさらにコア間通信方法を提供し、図11は本発明の実施例に係わるコア間通信方法を示すフローチャートであり、図11に示すように、該方法は以下のステップを含む。
メッセージ送信コアが、BAを介して、メッセージの書き込み操作を行って、また、BAから返送された情報に基づいて、メッセージの送信に成功したか否かを判定する(ステップS1102)。各コアが行うメッセージの書込み操作は同期するものではなく、独立して行われていて、互いに影響しない。BAから返送されるError Response情報が無効であると、メッセージの送信に成功し、そうでないと、Postboxが占用されたことを表し、メッセージの書き込みに成功していない。この時、送信コアは、メッセージの送信に成功するまで、幾つかの周期後にメッセージの書込み操作を再び行うことができる。
送信コアが送信したメッセージは、Arbiterを経て、又はArbiterを経ずに特定のアドレスを有するPostboxに送信され、Postboxで中断要求(int)を発生してメッセージ受信コアに送信する(ステップS1104)。
受信コアが、中断を受信して、メッセージ読み取り操作を行う(ステップS1106)。
受信コアのメッセージ読み取り操作要求信号はICNに送信されて、中断要求を発生したポストモジュール(Postbox)まで送信され、また、送信されたメッセージを読み取って、Postboxの中断要求は自動的に削減される(ステップS1108)。
本発明に提供される実施例及び好適な実施形態は元々相互排他機能を有している。即ち、コア間通信を行う前、別途にロックの要請及びロックのリリース操作を行う必要がなく、相互排他を完全に、ICN自体の読み取り/書き込みアクセスとERRORによる返送メカニズムによって実現することで、コア間通信の複雑性を顕著に低下させ、通信遅延を低減できる。そして、如何なる初期化ステップも行う必要がなく、ICNの電源を入れた後に直ちに正常な動作を行うことができる。また、メッセージ読み取り/書き込み要求がICNに送信された後、ICNによって完全管理して、自動化管理を実現できると共に、リソースを大幅に節約できる。
分布式構造を用いることによって、通信量を特定の領域の帯域幅に制限して他の通信領域に影響を与えることがなく、各調停モジュールの調停オーバーヘッドを低下させ、マルチコア全体の統計通信遅延を低下させることができる。
コア数量が顕著に増加される時、対応する数量の3類のモジュールと対応する接続線のみを追加すればよく、また、接続方式も需要に応じて柔軟に行うことができ、ICNの既存の構造特徴及びソフトウェア操作ステップに影響を与えることがないので、優れた拡張可能性及び縮小可能性を有する。
以下、図10を結合して本発明の実施例をさらに具体的に説明する。ここで、マルチコアが実施例に示すCPU(中央処理装置)とDSP(デジタル信号処理装置)に限定されないことは言うまでもない。
ICNは全体的に3級構造でマルチコア(合計で10個のコア)と異種コア(6DSP+4ARM)の応用の需要を満たす。ICNは全体的に、15個のPostboxと、10個のBAと、4個のArbiterとを含み、その構造は図10に示すとおりである。3個のDSPによって一つのClusterを構成する。2個のCPUによって一つのClusterを構成し、そのデータ量は少なく、データ通路は調停器を通過しない。このように、ICNは、コアの数量及び通信量に応じて、3類のデバイスの数量及び接続方式を選択することができ(例えば、本実施例において、調停器を経ずに、直接にPostboxに接続される)、ICNの全体構造の特徴及び通信フローに影響を与えることがなく、拡張可能性及び縮小可能性が優れている。
担当する機能領域に応じて、PostboxはLocal Postbox(ローカルポスト)とCross Postbox(交差ポスト)とに分けられる。具体的に、本実施例において、DSP cluster(群)内部とDSP cluster(群)内部とのコア間通信を担当する10個のlocal Postboxと、DSP clusterとCPU clusterとの間のコア間通信を担当する一つのlocal Postboxと、DSP cluster間のコア間通信を担当する一つのCross Postbox及び/又はCPU cluster間のコア間通信を担当する一つのCross Postboxと、を含む。このように、分布式構造によると、通信量を特定の領域の帯域幅に制限して、他の通信領域に如何なる影響を与えることがなく、また、各調停モジュールの調停オーバーヘッドを顕著に低減し、マルチコア全体の帯域幅の効率を顕著に増大し、マルチコア全体の通信遅延を低減する。同時に、コアの数量が顕著に増加される場合、一つのコアが受信するコア間通信中断要求が過量になる恐れがあるので、この時、複数のPostboxの中断要求を通過させるか、又は論理的に合併すると、コアに到達するコア間中断要求の数量を低減させ、ICNの拡張可能性を向上させることができる。
ここで、ICNに含まれる3類のモジュールは具体的に以下のように実施される:
(1)ポストモジュール(Postbox)
受信コアが読み取るように、メッセージをある位置に一時的に保存しなければならなく、また、受信コアにメッセージが到来したことを通知することのできる確実なメカニズムが必要であるので、本発明のICNは、複数のPostboxモジュールを含む。また、以下の機能を提供する:
メッセージの記憶
相互排他する読み取り/書き込みメッセージ
中断要求の発生通知
図12は、本発明の実施例に係わるコア間通信装置におけるポストモジュールの構造を示すブロック図であり、図12に示すように、該ポストモジュール(Postbox)は、複数のBIUユニットと、複数のRegFilesユニットと、複数のIntGenユニットとを含み。以下、各機能ユニットを説明する:
BIUユニット:
メッセージの読み取り/書き込みの相互排他アクセス機能を実現する。ここで、BUS0は該Postboxに所属される受信コアのメッセージ読み取り通路であって、BUS1〜nは、送信コアのメッセージ書き込み通路である。BIUユニットは、バスErrorフィードバックレジスタを多重化することで一つのロックを実現して同一のRegFilesユニットの相互排他アクセス機能を実現する。
RegFilesユニット:
複数のユニットにメッセージ記憶レジスタ空間を提供する。各Postboxは、メッセージ送信通路に対応する量のメッセージ記憶レジスタを有する。同時に、応用の需要に応じて決めた通信量に応じて、さらに多いメッセージレジスタを設けることもでき、異なるメッセージレジスタはアドレスに基づいて区別する。
IntGenユニット:
メッセージが到来した時、中断要求を発生して受信コアに通知するように構成される。受信コアがメッセージを読み取ったことを検出した後、中断要求を自動的に削除する。このように、従来のコア間通信方式におけるメッセージの読み取りのために中断削除レジスタを設ける操作を行う必要がなくなる。ここで、各中断線を一つ又は1組のRegFilesユニットにバンドルして、受信コアが中断要求番号に応じて特定のISR(中断サービスプログラム)に入って、対応するRegFiles中のメッセージを読み取ることができる
ここで、本コア間通信装置中のPostboxは、他の技術案では具備していない相互排他アクセス保護機能を具備している。
従来のマルチコア通信方式において、マルチコアが同一のコア間通信リソースを占用する時、相互排他のロック又はスピンロックによって相互排他操作を行わなければならい。これに対し、Postboxは、バスErrorフィードバックレジスタを多重化することでロックレジスタを実現して相互排他アクセス機能を完成し、該操作は以下のように実現される:
BIUが、Error情報フィードバックレジスタを多重化することでロックレジスタを実現する。ロックレジスタが0であると、ロックがリリース状態であることを表し、ロックレジスタが1であると、ロックが占用状態であることを表す。正常な状況において、送信コアがPostbox RegFilesを書き込んだ後、ロックレジスタは自動的に1になる。その後、Postboxに中断が発生し、受信コアに通知すると、受信コアはPostbox RegFiles読み取り操作を行って、ロックレジスタは自動的に0になる。
第1種の異常が発生した場合、即ち、受信コアがPostbox RegFiles読み取り操作を行う前、他の送信コアがRegFilesに書き込み操作を行おうとする場合、この時にRegFiles中のメッセージが修正されていると、前のメッセージを紛失してしまう。しかし、本実施例におけるPostbox中のロックレジスタは1で、ロックが占用状態であることを表すので、送信メッセージの書き込み操作に成功していなく、即ち、Postbox RegFilesの情報が修正されていない。同時に、ロックレジスタ情報1は、Error応答情報として、送信コアに返送されて、異常操作を行ったことを通知する。コアは異常処理ステップに移行し、即ち、複数のコマンド周期を待機してからアクセスを開始する。受信コアが正常なPostbox RegFiles読み取り操作を行った後、ロックレジスタが0になって、即ち、ロックがリリースされ、他の送信コアが正常の書き込み操作を行うことができる。
第2種の異常が発生した場合、即ち、受信コアがメッセージを読み取る時に他のコアがメッセージの書き込み操作を行う場合、BIUは強制的に読み取ってから書き込む順で行わせ、つまり、先ずメッセージの読み取りが行ってから新しいメッセージの書き込みを行うことで、コア間通信の確実性を保証することができる。
実現する場合、ロックレジスタがError情報を発生するレジスタであって、つまり、別途の相互排他のロック、信号量のような相互排他機能ユニット等を追加する必要がなく、ロック要請操作に成功するとメッセージの送信操作に成功したことに相当し、ロックのリリースに成功するとメッセージの読み取りに成功したことに相当し、メッセージのロック要請に失敗するとバスがError応答をフィードバックし、つまり、相互排他処理メカニズムとバス共用の読み取り/書き込みメカニズムとが一致し、別の相互排他操作周期を追加する必要がなく、プログラミングの複雑性及び通信遅延を顕著に低下させる。従って、上記実施例及び好適な実施形態に係わる装置及び方法によると、コア間通信におけるリソースの相互排他アクセス保護を実現することができる。
(2)バスアダプタモジュール(BA、BUS Adapter):
通信を行うコア間のバスプロトコルが異なる恐れがあり、コアがアクセスしようとするPostboxが多いので、本実施例におけるICNは、一つのコア読み取り/書き込みインターフェースと、複数のPostbox読み取り/書き込みインターフェースという3類を有するのBAモジュールを複数含み、該BAモジュールによって以下の二つの機能を実現する:
A、異なるコアインターフェースバスプロトコルをICN内部のデータ読み取り/書き込みプロトコルに対応させる。
B、バスアクセスのPostboxアドレスに基づいて、アドレスろ過を行って、即ち、唯一のターゲットPostboxの内部インターフェースのみに有効データ及び有効制御信号が現れるようにする。
このように、BAモジュールによって外部の複雑なバスプロトコルをマスクし、内部で簡単で高速なデータ読み取り/書き込みプロトコルのみを用いることができ、コア間通信装置のハードウェア遅延を顕著に低減できる。
本実施例において、内部と外部においていずれも簡単な補強外付けバス(Advanced Peripheral BUS、APBと略称)プロトコルを用いていて、図13は本発明の実施例に係わるコア間通信装置におけるバスアダプタモジュールの構造を示すブロック図であり、図13に示すように、BAは、APBのアクセスアドレスとPostboxのレジスタアドレスが対応するか否かに基づいて、異なるAPB選択信号を出力することによって、異なるメッセージ通路を選択する。該APBインターフェースを介して読み取りや書き込みを行うことができ、コアはAPBインターフェースを介して、Postboxにメッセージの読み取り/書き込み操作を行う。
(3)調停モジュール(Arbiter):
一つのClusterの内部に複数のコアが存在し、且つ同時に一つのPostboxへメッセージの読み取り/書き込みアクセスを発する場合、衝突が発生してしまう。従って、本発明の前記ICNは複数のArbiterモジュールを含み、図14は本発明の実施例に係わるコア間通信装置における調停モジュールの構造を示すブロック図であり、図14に示すように、該調停モジュールは、複数のメッセージ入力インターフェースと、一つのメッセージ出力インターフェースとを含む。以下の機能を提供する:複数のデータ通路の読み取り/書き込みアクセス要求に、特定の原則に従って調停を行って、即ち、同時に達したメッセージ読み取り/書き込みアクセス要求を直列化する。
ここで、Arbiterは、同時に調停モジュールに到達したメッセージ読み取り/書き込みアクセスに順番に調停を行い、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセスを順に直列出力する。つまり、メッセージ読み取り/書き込み要求のある異なるデータ通路に順番に行って、一回に一つの要求のあるデータ通路のみを通過させ、読み取り/書き込みアクセスを完成した後、次のメッセージ読み取り/書き込み要求のあるデータ通路を通過させ、全ての通路のメッセージ読み取り/書き込み要求を処理するまで、類似して行う。
同時に、モジュールの動作モードに応じて、前記調停モジュールに同時に到達したメッセージ読み取り/書き込みアクセスに優先レベルに基づく調停を行うことができ、即ち、複数の同時に到達したメッセージ読み取り/書き込みアクセス要求を優先レベルの高い方から低い方の順で行うことができる。
本コア間通信装置を応用したコア間通信方法は以下のステップを含む:メッセージ送信待ちコアが、BAを介して、メッセージの書き込み操作を行って、また、BAから返送された情報に基づいて、メッセージの送信に成功したか否かを判定する。各コアが行うメッセージの書込み操作は同期するものではなく、独立して行われて、互いに影響しない。BAから返送されるError Response情報が無効であると、メッセージの送信に成功し、そうでないと、Postboxが占用されたことを表し、メッセージの書き込みに成功していない。この時、送信コアは、メッセージの送信に成功するまで、複数の周期後にメッセージの書込み操作を再び行うことができる。
複数の送信コアの送信メッセージは、Arbiterを経て、又はArbiterを経ずに特定のアドレスを有するPostboxに送信され、Postboxで中断要求を発生してメッセージ受信コアに送信する。通信を行うコアの数量が少ない時、メッセージの読み取り/書き込みをArbiterを経ずに行うこともできる。
受信コアが、中断を受信して、メッセージ読み取り操作を行う。
受信コアのメッセージ読み取り操作要求信号はICNに送信されて、中断要求を発生したPostboxまで送信され、また、送信されたメッセージを読み取って、Postboxの中断要求は自動的に削減される(即ち、メッセージを読み取った後、対応する中断要求は自動的に削除される)。
以下、三つの例で本発明の上述したコア間通信方法を説明する。
A:通常のアプリでCLUSTER内部のメッセージの通信を行う。
1、メッセージ送信コアDSP2が、ターゲットコアDSP0に所属されるPostbox0にメッセージを送信する。
2、Postbox0が中断要求を発生してDSP0に送信する。
3、DSP0がISRに入って、Postbox中のメッセージを読み取る。
B:通常のアプリで、同時にCLUSTER間のメッセージの通信とCLUSTER内部のメッセージの通信を行う。
1、DSP cluster0内部のメッセージ送信コアDSP2が、ターゲットコアDSP0に所属されるPostbox0にメッセージを送信する。DSP cluster 1のメッセージ送信コアDSP3と4に、DSP cluster0 DSP0に送信すべきメッセージがある。従って、先ず、DSP cluster1内部のArbiter2による調停を経て、送信コアDSP3が調停権を取得したとすると、まず、メッセージをDSP CLUSTER0のPostboxに書き込み、その後、送信コアDSP4が調停権を取得して、メッセージをDSP CLUSTER0のPostboxに書き込む。
2、DSP CLUSTER0内部のPostbox0とDSP CLUSTER0のPostboxが同時に、中断要求を発生する。
3、DSP0コアがISRに入って、ソフトウェアによって設定された優先レベルに従って、まず内部のPostbox0のメッセージを読み取って、その後DSP CLUSTER0のPostbox中のメッセージを読み取る。
C、相互排他保護メカニズムが効力を発生する際のCLUSTER間のコア間通信を行う。
1、CPU CORE0が、BA6を介して、CPU&DSP Cross Postboxにメッセージを送信する。
2、CPU&DSP Cross Postboxが、中断要求を発生してDSP5に送信し、DSP5は優先レベルのより高い業務があるので該中断を処理ていなく、即ち、メッセージの読み取りを行っていない。
3、CPU CORE0が、BA6を介して、CPU&DSP Cross Postboxに他のメッセージを送信し、その後ERROR情報が返送されたので、通信リソースのロックがリリースされたことを表し、該メッセージの送信に成功していない。CPU CORE0は待機周期を経て、メッセージ送信操作を再び開始する。
4、DSP5は優先レベルの高い業務を処理した後、一番目のメッセージを取得する。
5、CPU CORE0は二番目のメッセージを成功に送信し、即ち、返送したERROR情報は無効である。その後、CPU CORE0は二番目のメッセージを成功に読み取る。このように、コア間通信を行う場合、別途の相互排他保護メカニズムを必要とせずに確実なコア間通信を行うことができる。
ここで、実際のコア間通信において、以上の三つの状況またはさらに複雑な通信状況が存在する可能性がある。
また、本発明の実施例のコア間通信装置に含まれる上記三つのモジュール及びその接続関係は、関連技術に存在する技術課題を解決するためのキーポイントである。本発明の実施例のコア間通信方法も、従来技術と明らかな相違点を有するものである。上記実施例及び好適な実施形態は元々相互排他機能を有する。即ち、コア間通信を行う前、他のロックの要請やロックのリリース操作を行う必要がなく、相互排他機能は、完全に、ICN自体の読み取り/書き込みアクセスとERROR返送メカニズムによって実現できる。また、実施する際、如何なる初期化ステップを行う必要がなく、ICNの電源を入れた後直ちに正常な動作を行うことができる。メッセージ読み取り/書き込み要求がICNに送信された後、ICNによって完全に自己管理して、コア間通信の複雑性を顕著に低下させ、通信遅延を低減する。該コア間通信装置は分布式構造を用いて、一部の通信量を特定の領域の帯域幅に制限して、他の通信領域に影響を与えることがなく、各調停モジュールの調停オーバーヘッドを顕著に低減して、マルチコア全体の合計通信遅延を顕著に低減する。コアの数量が顕著に増加される場合、上記実施例及び好適な実施形態によると、対応する数量の3類のモジュールと対応する接続線のみを追加すればよく、同時に、接続方式も応用の需要に応じて柔軟に選択することができ、ICNの既存構造特徴及びソフトウェア操作ステップに影響を与えることがなく、優れた拡張可能性及び縮小可能性を有する。
当業者にとって、上記の本発明の各ブロック又は各ステップは共通の計算装置によって実現することができ、単独の計算装置に集中させることができれば、複数の計算装置から構成されたネットワークに分布させることもでき、さらに計算装置が実行可能なプログラムのコードによって実現することもできるので、それらを記憶装置に記憶させて計算装置によって実行することができ、又は夫々集積回路ブロックに製作し、又はそれらにおける複数のブロック又はステップを単独の集積回路ブロックに製作して実現することができることは明らかなことである。このように、本発明は如何なる特定のハードウェアとソフトウェアの結合にも限定されない。
以上は、本発明の好適な実施例に過ぎず、本発明を限定するものではない。当業者であれば本発明に様々な修正や変形が可能である。本発明の精神や原則内での如何なる修正、置換、改良などは本発明の保護範囲内に含まれる。
12 ポストモジュール
14 バスアダプタモジュール
22 調停モジュール
32 バスインターフェースユニット
42 第1の相互排他ユニット
44 第2の相互排他ユニット
52 トリガーサブユニット
62 記憶ユニット
72 通知ユニット
90 ポストモジュール
92 受信ユニット
94 送信ユニット

Claims (7)

  1. メッセージ送信コアからメッセージ受信コアに送信されたメッセージを記憶し、前記メッセージ受信コアに前記メッセージを読み取ることを通知するように構成されたポストモジュールと、
    通信を行う前記メッセージ受信コア及びメッセージ送信コアと前記ポストモジュールとの間に接続され、前記ポストモジュールと前記メッセージ受信コア及び前記メッセージ送信コアの読み取り/書き込みインターフェースを提供するように構成されたバスアダプタモジュールと、を備え、
    前記ポストモジュールは、
    バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現するように構成されたバスインターフェースユニットを含み、
    前記バスインターフェースユニットは、
    前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現するように構成された第1の相互排他ユニット、及び/又は、
    前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現するように構成された第2の相互排他ユニット、を備え、
    前記バスインターフェースユニットは、
    前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするように構成されたトリガーサブユニットを含コア間通信装置。
  2. 前記ポストモジュールは、
    メッセージアクセスアドレスに応じて、前記メッセージを記憶するように構成された記憶ユニットを含む請求項1に記載のコア間通信装置。
  3. 前記ポストモジュールは、
    割込要求を介して、前記メッセージ受信コアにメッセージを受信することを通知するように構成された通知ユニットを含む請求項1に記載のコア間通信装置。
  4. ポストモジュールが、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信し、
    前記ポストモジュールが、メッセージ受信コアに割込要求を送信し、
    前記メッセージ受信コアは前記割込要求に基づいて前記メッセージを読み取り、
    複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、前記ポストモジュールがバスエラー・フィードバックレジスタを利用することで、メッセージの読み取り/書き込みの相互排他を実現し、
    バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現するステップは、
    前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現し、
    前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするコア間通信方法。
  5. 前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、前記ポストモジュールが前記メッセージ送信コアに第1の応答メッセージを送信し、前記メッセージ送信コアは、前記第1の応答メッセージに基づいて、前記ポストモジュールへのメッセージの書き込みに成功したと確定し、及び/又は、
    前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記ポストモジュールが前記メッセージ受信コアに第2の応答メッセージを送信し、前記メッセージ受信コアは、前記第2の応答メッセージに基づいて、メッセージの読み取りに成功したと確定する請求項4に記載のコア間通信方法。
  6. 前記メッセージ受信コアが前記メッセージを読み取った後、
    前記ポストモジュールが、前記割込要求を削除する請求項4に記載のコア間通信方法。
  7. ポストモジュールに設けられ、バスアダプタモジュールを介して、メッセージ送信コアから送信されたメッセージを受信するように構成された受信ユニットと、
    前記ポストモジュールに設けられ、メッセージ受信コアに割込要求を送信するように構成された送信ユニットと、を備え、
    前記メッセージ受信コアは、前記割込要求に基づいて、前記メッセージを読み取り、
    複数のコアが、同時に前記ポストモジュールに、メッセージの読み取り/書き込みを要求するための読み取り/書き込みアクセス要求を発した場合、バスエラー・フィードバックレジスタを利用することで、メッセージの読み取り/書き込みの相互排他を実現し、
    前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、複数のメッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みの相互排他を実現し、及び/又は、前記バスエラー・フィードバックレジスタを利用することで相互排他のロックの機能を実現し、メッセージ送信コアによる前記ポストモジュールへのメッセージの書き込みとメッセージ受信コアによる前記ポストモジュールからのメッセージの読み取りとの相互排他を実現する方式で、バスエラー・フィードバックレジスタを利用することでメッセージの読み取り/書き込みの相互排他を実現し、
    前記メッセージ送信コアが前記ポストモジュールにメッセージを書き込んだ後、又は、前記メッセージ受信コアが前記ポストモジュールからメッセージを読み取った後、前記バスエラー・フィードバックレジスタの状態変更をトリガーするコア間通信装置。
JP2015535970A 2012-10-12 2013-10-08 コア間通信装置及び方法 Active JP6475625B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210389118.9A CN103729329B (zh) 2012-10-12 2012-10-12 核间通信装置及方法
CN201210389118.9 2012-10-12
PCT/CN2013/084831 WO2014056420A1 (zh) 2012-10-12 2013-10-08 核间通信装置及方法

Publications (2)

Publication Number Publication Date
JP2015536490A JP2015536490A (ja) 2015-12-21
JP6475625B2 true JP6475625B2 (ja) 2019-02-27

Family

ID=50453409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015535970A Active JP6475625B2 (ja) 2012-10-12 2013-10-08 コア間通信装置及び方法

Country Status (6)

Country Link
US (1) US9639409B2 (ja)
EP (1) EP2908252B1 (ja)
JP (1) JP6475625B2 (ja)
KR (1) KR101951072B1 (ja)
CN (1) CN103729329B (ja)
WO (1) WO2014056420A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法
CN105991413B (zh) * 2015-02-13 2018-11-16 展讯通信(上海)有限公司 用户终端及其amp系统下消息邮箱故障的处理方法及装置
CN106372029A (zh) * 2016-09-06 2017-02-01 北方电子研究院安徽有限公司 一种基于中断的点对点片内通信模块
CN106407016B (zh) * 2016-10-19 2021-06-25 腾讯科技(深圳)有限公司 一种多线程争抢资源的模拟方法及装置
CN108521351B (zh) * 2018-03-21 2021-02-05 东软集团股份有限公司 会话流量统计方法、处理器核心、存储介质、电子设备
CN109582633B (zh) * 2018-12-04 2021-09-07 艾体威尔电子技术(北京)有限公司 一种pos机中双cpu的通讯方法
CN110597643B (zh) * 2019-08-30 2022-08-12 Oppo广东移动通信有限公司 核间通信方法、处理器以及电子设备
CN111026697A (zh) * 2019-11-21 2020-04-17 Oppo广东移动通信有限公司 核间通信方法、系统、电子器件以及电子设备
CN111475202A (zh) * 2020-03-31 2020-07-31 北京经纬恒润科技有限公司 基于异构多处理系统的核间通信方法及系统
CN113495794B (zh) * 2020-04-03 2022-09-09 武汉斗鱼鱼乐网络科技有限公司 一种Android系统的模块桥接方法、装置、电子设备及存储介质
CN112000608B (zh) * 2020-09-02 2021-10-01 展讯通信(上海)有限公司 系统级芯片及其中核间通信的方法、智能穿戴设备
CN112579488B (zh) * 2020-12-05 2023-02-24 西安翔腾微电子科技有限公司 一种支持动态缓冲区分配的消息存储电路及方法
CN112882987A (zh) * 2021-03-12 2021-06-01 北京小米移动软件有限公司 多核通信方法、装置、电子设备及存储介质
US11948021B2 (en) 2021-03-26 2024-04-02 Black Sesame Technologies Inc. Method for inter-core communication, processor, inter-core communication system and computer readable storage medium
CN113110950B (zh) * 2021-05-18 2023-05-26 南方电网科学研究院有限责任公司 处理器及通信方法、存储介质及计算设备
CN113220541B (zh) * 2021-06-10 2021-09-07 北京全路通信信号研究设计院集团有限公司 一种多核处理器的内存巡检方法及系统
CN116541336A (zh) * 2023-07-04 2023-08-04 南方电网数字电网研究院有限公司 多核芯片、协处理器的软件运行方法
CN117234761B (zh) * 2023-11-16 2024-02-02 苏州萨沙迈半导体有限公司 多核系统、芯片和车辆处理器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2148459C (en) * 1993-10-08 2000-01-11 Paul Clarke Message transmission across a network
US20020116595A1 (en) * 1996-01-11 2002-08-22 Morton Steven G. Digital signal processor integrated circuit
US5901326A (en) * 1996-11-26 1999-05-04 International Business Machines Corporation Memory bus address snooper logic for determining memory activity without performing memory accesses
US6456628B1 (en) * 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network
KR20000018869A (ko) * 1998-09-03 2000-04-06 서평원 교환기에서 프로세서간의 통신 시스템 및 방법
TW200508878A (en) * 2003-08-20 2005-03-01 Icp Electronics Inc Bus interface extender and method thereof
GB2409302B (en) * 2003-12-18 2006-11-22 Advanced Risc Mach Ltd Data communication mechanism
GB2409303B (en) * 2003-12-18 2006-10-18 Advanced Risc Mach Ltd Inter-processor communication mechanism
KR20080005502A (ko) 2005-03-22 2008-01-14 피바, 인크. 공개-액세스 네트워크의 사용자를 접속시키는 것을포함하는 네트워크 운영 및 정보 처리에 대한 시스템 및방법
US7606254B1 (en) * 2006-03-02 2009-10-20 Rockwell Collins, Inc. Evaluatable high-assurance guard for security applications
GB2447688B (en) * 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
US8131944B2 (en) * 2008-05-30 2012-03-06 Intel Corporation Using criticality information to route cache coherency communications
CN102394732B (zh) * 2011-09-06 2013-09-18 中国人民解放军国防科学技术大学 一种多微包并行处理结构

Also Published As

Publication number Publication date
KR20150067332A (ko) 2015-06-17
US9639409B2 (en) 2017-05-02
KR101951072B1 (ko) 2019-04-22
EP2908252A4 (en) 2016-11-23
US20150261586A1 (en) 2015-09-17
EP2908252B1 (en) 2019-07-10
CN103729329A (zh) 2014-04-16
WO2014056420A1 (zh) 2014-04-17
JP2015536490A (ja) 2015-12-21
EP2908252A1 (en) 2015-08-19
CN103729329B (zh) 2018-01-19

Similar Documents

Publication Publication Date Title
JP6475625B2 (ja) コア間通信装置及び方法
US10997093B2 (en) NVME data processing method and NVME device
US5282272A (en) Interrupt distribution scheme for a computer bus
US8850081B2 (en) Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US7788334B2 (en) Multiple node remote messaging
US7802025B2 (en) DMA engine for repeating communication patterns
CN109933438B (zh) 高速共享内存数据收发系统
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
JP2008509493A (ja) プロセッサメモリシステム
CN101840390B (zh) 适用于多处理器系统的硬件同步电路结构及其实现方法
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
JP2007079789A (ja) 計算機システム及びイベント処理方法
WO2014173364A1 (zh) 共享资源访问方法和装置
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
JP2007219816A (ja) マルチプロセッサシステム
WO2013097098A1 (zh) 数据处理方法、图形处理器gpu及第一节点设备
WO2013177854A1 (zh) 一种多核处理器的核间通信装置及方法
US20230137609A1 (en) Data synchronization method and apparatus
US20080189719A1 (en) Operation processor apparatus
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
CN114116595A (zh) 数据传输的方法和系统
CN111045974A (zh) 一种基于交换结构的多处理器数据交互方法
US9959173B2 (en) Node, arithmetic processing device, and arithmetic processing method
EP4195060A1 (en) Data transmission method and system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160531

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20160531

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160923

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181220

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: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190201

R150 Certificate of patent or registration of utility model

Ref document number: 6475625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250