IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧 ▶ クンルンシン テクノロジー (ベイジン) カンパニー リミテッドの特許一覧

特許7317727複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体
<>
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図1A
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図1B
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図2
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図3
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図4
  • 特許-複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-21
(45)【発行日】2023-07-31
(54)【発明の名称】複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体
(51)【国際特許分類】
   G06F 13/14 20060101AFI20230724BHJP
   G06F 13/38 20060101ALI20230724BHJP
   G06F 15/173 20060101ALI20230724BHJP
【FI】
G06F13/14 330E
G06F13/14 330B
G06F13/38 340
G06F15/173 685S
【請求項の数】 17
【外国語出願】
(21)【出願番号】P 2020002569
(22)【出願日】2020-01-10
(65)【公開番号】P2021005356
(43)【公開日】2021-01-14
【審査請求日】2020-08-27
【審判番号】
【審判請求日】2022-08-01
(31)【優先権主張番号】201910554661.1
(32)【優先日】2019-06-25
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(73)【特許権者】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Kunlunxin Technology (Beijing) Company Limited
【住所又は居所原語表記】CW Section, F/4, Building 1, No.10, Shangdi 10th Street, Haidian District, 100101, Beijing, China
(74)【代理人】
【識別番号】100099623
【弁理士】
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【弁理士】
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【弁理士】
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【弁理士】
【氏名又は名称】田中 祐
(72)【発明者】
【氏名】レン,シァンルン
(72)【発明者】
【氏名】ヂュ,フェァフェイ
(72)【発明者】
【氏名】チェン,チンシュ
(72)【発明者】
【氏名】ヂャオ,ヂービャオ
(72)【発明者】
【氏名】ゴン,シァオヂャン
【合議体】
【審判長】須田 勝巳
【審判官】中村 信也
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2020-98470(JP,A)
【文献】中国特許出願公開第109376116(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F13/14
G06F13/38
G06F15/173
(57)【特許請求の範囲】
【請求項1】
複数のチップ間の通信をサポートする方法であって、前記複数のチップは、それぞれのチップ間通信用のチップ間通信インターフェースを介して他のチップと接続され、各チップはいずれもそれぞれの管理インターフェースを介してホストと直接通信を行い、前記方法は、
識別情報確定モジュールが、前記ホストによって管理されている前記複数のチップの識別情報を確定するステップと、
チップ指示モジュールが、前記複数のチップのうちの一つまたは複数のチップに、前記一つまたは複数のチップの前記チップ間通信インターフェースに接続される他のチップの識別情報を取得させるように指示するステップと、
接続関係確定モジュールが、前記一つまたは複数のチップの前記管理インターフェースを介して、前記他のチップの識別情報を取得して、前記複数のチップ間の物理接続関係を確定するステップと、
接続マトリクス構築モジュールが、前記複数のチップ間の物理接続関係を表す接続マトリクスを構築するステップであって、前記接続マトリクスには少なくとも前記複数のチップの前記チップ間通信インターフェースの状態情報が含まれる、ステップと、を含む方法。
【請求項2】
前記複数のチップのうちの前記一つまたは複数のチップに、前記他のチップの識別情報を取得させるステップは、
前記複数のチップの状態情報読取りモジュールが、前記一つまたは複数のチップのチップ間通信インターフェースの状態情報を取得するステップと、
前記複数のチップのテストデータ送信モジュールが、前記状態情報がアクティブとなることに応答して、前記一つまたは複数のチップのチップ間通信インターフェースから、前記複数のチップのうちの、前記チップ間通信インターフェースと接続される他のチップにテストデータを送信するステップと、
前記複数のチップの応答データ受信モジュールが、前記テストデータの、前記他のチップの識別情報を含む応答データを受信するステップと、を含む、請求項1に記載の方法。
【請求項3】
前記他のチップに前記テストデータを送信するステップは、
前記複数のチップのアドレス範囲設定モジュールが、前記一つまたは複数のチップのチップ間通信インターフェースに対して所定アドレス範囲を設定するステップと、
前記複数のチップの送信サブモジュールが、前記他のチップにおける前記所定アドレス範囲内にあるアドレスに前記テストデータを送信するステップと、を含む、請求項2に記載の方法。
【請求項4】
接続関係記憶モジュールが、確定された前記各チップ間の接続関係を接続マトリクスに記憶するステップ、をさらに含み、
前記接続マトリクスは、帯域幅情報をさらに含む、請求項1に記載の方法。
【請求項5】
第一故障検知モジュールが、前記一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知するステップと、
修復モジュールが、検知した前記接続故障が修復可能となることに応答して、前記接続故障を修復するステップであって、前記修復の結果を修復結果報告モジュールが報告する、ステップと、をさらに含む、請求項1に記載の方法。
【請求項6】
第二故障検知モジュールが、前記一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知するステップと、
作業切り替えモジュールが、検知した前記接続故障が修復不可能となることに応答して、前記一つまたは複数のチップのチップ間通信インターフェースで伝送される作業を別のチップ間通信インターフェースに切り替えるステップと、
接続故障報告モジュールが前記接続故障を報告するステップと、をさらに含む、請求項1に記載の方法。
【請求項7】
前記ホストは中央処理装置CPUであり、そして前記複数のチップはシステムレベルチップSoCである、請求項1に記載の方法。
【請求項8】
複数のチップの間の通信をサポートする装置であって、前記複数のチップは、それぞれのチップ間通信用のチップ間通信インターフェースを介して他のチップと接続され、各チップはいずれもそれぞれの管理インターフェースを介してホストと直接通信し、前記装置は、
前記ホストによって管理されている前記複数のチップの識別情報を確定する識別情報確定モジュールと、
前記複数のチップのうちの一つまたは複数のチップに、前記一つまたは複数のチップの前記チップ間通信インターフェースに接続される他のチップの識別情報を取得させるチップ指示モジュールと、
前記一つまたは複数のチップの前記管理インターフェースを介して、前記他のチップの識別情報を取得して、前記複数のチップ間の物理接続関係を確定する接続関係確定モジュールと、
前記複数のチップ間の物理接続関係を表す接続マトリクスを構築する接続マトリクス構築モジュールであって、前記接続マトリクスには少なくとも前記複数のチップの前記チップ間通信インターフェースの状態情報が含まれる、接続マトリクス構築モジュールと、を備える装置。
【請求項9】
前記複数のチップは、
前記一つまたは複数のチップのチップ間通信インターフェースの状態情報を取得する状態情報読取りモジュールと、
前記状態情報がアクティブとなることに応答して、前記一つまたは複数のチップのチップ間通信インターフェースから、前記複数のチップのうちの、該チップ間通信インターフェースと接続される他のチップにテストデータを送信するテストデータ送信モジュールと、
前記テストデータの、前記他のチップの識別情報を含む応答データを受信する応答データ受信モジュールを備える、請求項8に記載の装置。
【請求項10】
前記複数のチップの前記テストデータ送信モジュールは、
前記一つまたは複数のチップのチップ間通信インターフェースに対して所定アドレス範囲を設定するアドレス範囲設定モジュールと、
前記他のチップにおける所定アドレス範囲内にあるアドレスに前記テストデータを送信する送信サブモジュールと、を含む、請求項9に記載の装置。
【請求項11】
確定された前記各チップ間の接続関係を前記接続マトリクスに記憶する接続関係記憶モジュールをさらに含み、
前記接続マトリクスは、帯域幅情報をさらに含む、請求項8に記載の装置。
【請求項12】
前記一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知する第一故障検知モジュールと、
検知した前記接続故障が修復可能となることに応答して、前記接続故障を修復する修復モジュールと、
前記修復の結果を報告する修復結果報告モジュールと、をさらに含む、請求項8に記載の装置。
【請求項13】
前記一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知する第二故障検知モジュールと、
検知した前記接続故障が修復不可能となることに応答して、前記一つまたは複数のチップのチップ間通信インターフェースで伝送される作業を別のチップ間通信インターフェースに切り替える作業切り替えモジュールと、
前記接続故障を報告する接続故障報告モジュールとをさらに含む、請求項8に記載の装置。
【請求項14】
前記ホストは中央処理装置CPUであり、そして前記複数のチップはシステムレベルチップSoCである、請求項8に記載の装置。
【請求項15】
電子デバイスであって、
一つまたは複数のプロセッサーと、
一つまたは複数のプログラムを記憶する記憶装置と、を備え、
前記一つまたは複数のプログラムが一つまたは複数のプロセッサーによって実行されると、前記一つまたは複数のプロセッサーはホストとして請求項1~7のいずれか1項に記載の方法を実現する電子デバイス。
【請求項16】
コンピュータが読み取り可能記憶媒体であって、
コンピュータプログラムが記憶されており、
前記プログラムがプロセッサーによって実行されると、前記プロセッサーはホストとして請求項1~7のいずれか1項に記載の方法を実現するコンピュータが読み取り可能記憶媒体。
【請求項17】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサーによって実行されると、前記プロセッサーはホストとして請求項1~7のいずれか1項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施例は、コンピュータ分野に係り、具体的に、多数のチップの間の通信をサポートする方法、装置、電子デバイスおよびコンピューター読取り可能記憶媒体に関する。
【背景技術】
【0002】
コンピュータ技術の発展につれて、人工知能応用が演算能力への需要が高くなっていく。技術と消費電力などの制限のため、一つのチップ(例えば人工知能チップ、GPUなど)の演算能力はもう処理速度への要求を満たさなくなる。そこで、人工知能応用の需要を満たすように、複数のチップを互いに接続してチップのネットワークを組み立てる必要がある。したがって、高帯域幅かつ低遅延を図るために、チップ間の通信(即ちチップ間通信)を最適化しなければならない。
【0003】
また、人工知能応用のそれぞれの演算子及びアルゴリズムによって、帯域幅と遅延需要も違うようになっている。それぞれのネットトポロジー構造も異なった帯域幅と遅延を有する。それぞれのネットワークトポロジー、特に動的トポロジー変更をどのようにサポートするかは、チップ間通信のチャレンジの一つとなっている。
【発明の概要】
【0004】
本願の実施例により、複数のチップ間の通信をサポートする方案を提供している。
【0005】
本願の第一態様では、複数チップ間の通信をサポートする方法を提供している。該方法は、ホストで管理されている複数のチップの識別情報を確定するステップと、複数のチップはそれぞれのチップ間通信用のチップ間通信インターフェースによって接続されているステップとを含んでよい。該方法は、複数のチップのうちの一つまたは複数のチップに、一つまたは複数のチップのチップ間通信インターフェースに接続される他のチップの識別情報を取得させるステップも含んでよい。該方法は、一つまたは複数のチップのホストと通信するための管理インターフェースによって、他のチップの識別情報を取得して、複数のチップ間の接続関係を確定するステップをさらに含んでよい。
【0006】
本願の第二態様では、複数チップ間の通信をサポートする装置であって、ホストで管理されている複数のチップの識別情報を確定する識別情報確定モジュールであって、前記複数のチップは、それぞれのチップ間通信用のチップ間通信インターフェースによって接続されている識別情報確定モジュールと、複数のチップのうちの一つまたは複数のチップに、前記一つまたは複数のチップのチップ間通信インターフェースに接続される他のチップの識別情報を取得させるチップ指示モジュールと、前記一つまたは複数のチップの、ホストと通信するための管理インターフェースによって、前記他のチップの識別情報を取得して、前記複数のチップ間の接続関係を確定する接続関係確定モジュールと、を備える装置を提供する。
【0007】
本願の第三態様では、一つまたは複数のプロセッサーと、一つまたは複数のプログラムを記憶する記憶装置とを備えるデバイスを提供しており、一つまたは複数のプログラムが一つまたは複数のプロセッサーによって実行されると、一つまたは複数のプロセッサーに本願の第一態様の方法を実現させている。
【0008】
本願の第四態様では、コンピュータが読み取り可能な記憶媒体を提供している。この記憶媒体にコンピュータプログラムが記憶され、該プログラムがプロセッサーによって実行されると、本願の第一態様の方法が実現されている。
【0009】
なお、発明概要に記載される内容は、本開示の実施例の肝心または重要な特徴を限定するためではなく、本開示の範囲を制限するものでもないことは理解すべきである。本開示の他の特徴は下記の記載で理解しやすくなっている。
図面及び下記の詳細な説明によって、本開示の各実施例の上記特徴及び他の特徴、メリットと態様はより明らかになっている。図面において、同様または似ている符号が同様または似ている素子を示す。
【図面の簡単な説明】
【0010】
図1A】本開示の複数の実施例による例示チップのインターフェース配置を示す概略図である。
図1B】本開示の複数の実施例において実現可能な例示チップネットワークを示す概略図である。
図2】本開示の実施例による複数のチップ間の通信をサポートするプロセスを示すフローチャートである。
図3】本開示の実施例による接続される他のチップの識別情報を取得するためのプロセスを示すフローチャートである。
図4】本開示の実施例による複数のチップ間の通信をサポートする装置を示す概略ブロック図である。
図5】本開示の複数の実施例を実施可能なコンピュータデバイスを示すブロック図である。
【発明を実施するための形態】
【0011】
以下は図面を参照して本開示の実施例をより詳細に説明する。図面に本開示の幾つかの実施例が示されているが、理解すべき点として、次のことがある。本開示はそれぞれの形式で実現することができ、そして、ここで記載される実施例に制限されるものと解釈すべきではなく、逆に、これらの実施例は、本開示をより徹底的かつ完全に理解するためのものである。理解すべき点として、次のことがある。本開示の図面及び実施例が例示的な役割を果たしており、本開示の保護範囲を制限するためのものではない。
【0012】
本開示の実施例の記載において、「備える」及び類似した用語は開放性的に含むと解釈すべき、即ち「備えるが制限されるものではない」。「基づく」は「少なくとも部分的に基づく」と解釈すべきである。「一つの実施例」または「該実施例」は「少なくとも一つの実施例」と解釈すべきである。「第一」、「第二」は異なったものまたは同じなものを指してよい。以下は他の明確な定義と示唆される定義を含むかもしれない。
【0013】
上述したように、迅速・高効率かつ低コストでチップネットワークの接続関係を取得するための複数のチップ間の通信をサポートする方法が望まれている。したがって、チップネットワークのトポロジー構造に対する動的変更をサポートして、さらに、帯域幅を大きくしかつ遅延を低くするために、必要に応じてトポロジー構造を変える。従来のチップネットワークにおけるチップ間通信技術は主にチップネットワークの固定トポロジー構造に用いられるので、チップネットワークのトポロジー構造は柔軟なものではなく、また帯域幅が足りない問題が常にある。
【0014】
本開示の実施例によれば、複数のチップ間の通信をサポートする方案が提出されている。該方案では、中央処理装置(CPU)などのホストが管理されている例えば人工知能チップの複数のチップを列挙して、これらのチップに番号を付けることができる。それから、CPUはそれぞれ接続認識操作を実行するよう各チップを指示する。例示として、チップは各ポートの状態情報を読み可能にされており、状態情報がアクティブな場合、所定のアドレス範囲を設定し、かつ該アドレス範囲内の特定アドレスにテストデータを送信し、また戻ってきた応答データを待つ。この応答データを受信してから、該ポートと通信する他のチップの番号を該応答データから取得する。CPUは各チップで集められた接続情報をまとめて、任意チップネットワークの物理接続情報を得ることができる。任意のチップネットワークの物理接続情報を取得した後、業務需要に応じて各チップ間の論理的接続関係を動的に配置して、所望のトポロジー構造を得ることができる。
【0015】
本開示の複数の実施例におけるチップネットワークのトポロジー構造及びその構築プロセスをより詳しく記載するために、まずチップネットワークを簡単に説明する必要がある。図1Aは本開示の複数の実施例による例示チップ100のインターフェース配置を示す概略図である。図1Aに示される通り、チップ100は複数のインターフェースを含み、例えば管理インターフェース110及びチップ間通信インターフェースC0、C1、C2とC3。管理インターフェース110はチップ100を管理するもの、例えばCPUのホストと通信するためのものであり、通常、ホストの配置情報の受信とチップ100の接続情報の送信に用いられている。例示として、管理インターフェース110はPCIeインターフェースであってよい。また、チップ間通信インターフェースC0、C1、C2とC3はいずれもホストに管理されている他のチップとのチップ間通信に用いられている。例示として、チップ間通信インターフェースC0、C1、C2とC3はCCIX(キャッシュコヒーレンシ相互接続プロトコル)インターフェースであってよい。
【0016】
チップネットワークは、複数のチップがチップ間通信インターフェースの間の直接な物理的接続によって構成したネットワークである。図1Bは本開示の複数の実施例において実現可能な例示チップネットワーク100’を示す概略図である。図1Bに示される通り、ボックスごとに一つのチップを表している。各チップはチップネットワーク100’での唯一のチップ識別情報を有しており、例えば、各チップの参考番号101、102、103、104、105、106、107と108でそれぞれのチップの識別情報を表してよい。理解すべきことは、識別情報の具体的な例示は概略的であり、制限のためのものではなく、そしてチップごとの識別情報は、数字で表されるように制限されるものではない。
【0017】
チップネットワーク100’におけるいずれのチップは一つまたは複数の他のチップと直接な物理接続をもつことができる。説明すべきことは、チップネットワーク100’は一つの基板に集積されている複数のチップからなることができ、チップでコントロールされているデバイス内の複数のチップがデータ伝送路を通じて接続されて構成されてもよい。そのため、一つの基板に集積されている二つのチップのリード(例えば図1におけるチップ間通信インターフェースC0、C1、C2とC3)は直接に接続されており、或いは、二つのデバイスのチップのインターフェース(例えば図1におけるチップ間通信インターフェースC0、C1、C2とC3)はデータ伝送路で接続されている。つまり、二つのチップ間の接続が、二者の間に対応したインターフェースで接続することだと理解してよい。例えば、チップ101からチップ102に情報を送信する場合、具体的には、チップ101はそれ自身の、チップ102と接続するインターフェースC1を介して、チップ102に情報を送信する、ということになる。
【0018】
なお、チップ間通信技術の詳細を強調するために、本開示の図1Bには、チップごとの管理インターフェース110と例えばCPUのホストとの通信プロセスが示されていないことは理解すべきである。例示として、チップ101、102、103と104は例えばPCIeインターフェースの管理インターフェース110を介して、PCIeスイッチモジュール(示されない。)と通信することができ、ひいてはPCIeスイッチモジュールによってホストと通信する。ほぼ同じく、チップ105、106、107と108は例えばPCIeインターフェースの管理インターフェース110を介して、別のPCIeスイッチモジュール(示されない。)と通信することもでき、ひいては別のPCIeスイッチモジュールによってホストと通信する。代替的または付加的には、チップ101、102、103、104、105、106、107と108はそれぞれの管理インターフェース110を介して、ホストと直接に通信することもできる。
【0019】
上記の技術案におけるチップ100とチップネットワーク100’は例示に用いられるものだけであり、本発明を限定するものではない。理解すべき点として、チップの配置、特にチップインターフェースの配置はさまざまであってよいため、チップネットワークのトポロジー構造はより複雑になってもよい。そこで、本開示の保護範囲から外れない限り、チップ100とチップネットワーク100’に対していろいろな変更を行ってもよい。上記技術案のメカニズムをより明確に解釈するために、以下は図2を参照しながら、複数のチップ間の接続関係を確定するプロセスをより詳しく説明する。
【0020】
図2は本開示の実施例による複数のチップ間の通信をサポートするプロセス200を示すフローチャートである。説明の便宜上、図1A図1Bを参照しながらプロセス200を説明する。
【0021】
210では、ホストで管理されている複数のチップの識別情報を確定することができ、この複数のチップは、それぞれのチップ間通信に用いられるチップ間通信インターフェースで接続されている。例示として、ホストはその管理した全てのチップを列挙してこれらチップの識別情報を確定することができ、例えば、図1Bにおけるチップ101、102、103、104、105、106、107と108、そしてこれらのチップはそれぞれのチップ間通信インターフェースC0、C1、C2とC3によって接続されてよく、すでにチップネットワーク100’を形成している。
【0022】
220では、各チップのうちの一つまたは複数のチップが、該一つまたは複数のチップのチップ間通信インターフェースと接続した他のチップの識別情報を得るように、これらのチップに認識指示を出すことが可能である。例示として、全てのチップがその接続した他のチップの識別情報を得る操作を実行するように、ホストはその管理した全てのチップに指示を発送することができる。代替的または付加的に、ホストはその管理した作動状態にあるチップだけに前記認識指示を発送してもよい。例えば人工知能チップのチップネットワークの特殊性のため、各チップ間の接続関係は通常極めて複雑となり、各チップを通じて、チップ間通信インターフェースから着手して、テスト信号の送信と応答信号の受信によって、チップネットワークの詳細な接続関係を高効率に得ることができる。この認識操作は各チップのチップ間通信インターフェースから起こされるので、該チップ間通信インターフェースに接続したチップの具体的なインターフェースを検知しなくてもよい(該インターフェースも同じ認識操作を行うからである。)。
【0023】
幾つかの実施例において、もっと完全かつ自動化的な情報伝送プロセスを用いて接続した他のチップの識別情報を取得してよい。図3は本開示の実施例による接続される他のチップの識別情報を取得するためのプロセス300を示すフローチャートである。
【0024】
310では、一つまたは複数のチップでそのチップ間通信インターフェースの状態情報を得ることができる。例示として、各チップ内のマイクロコントロールユニットMCUはチップ間通信インターフェースC0、C1、C2とC3の状態を読み取ることが可能である。
【0025】
320では、状態情報がアクティブかどうかを判断できる。説明すべき点として、チップ間通信インターフェースがアクティブ状態であれば、該チップ間通信インターフェースが他のチップのチップ間通信インターフェースと物理的に接続されることが表されており、しかし、チップ間通信インターフェースが非アクティブ状態であれば、該チップ間通信インターフェースが他のチップのチップ間通信インターフェースと物理的に接続されないことが表されている。該チップ間通信インターフェースが非アクティブ状態であれば、このインターフェースに対して操作を行わいとする。該チップ間通信インターフェースがアクティブ状態であれば、330へ進む。
【0026】
330では、該チップ間通信インターフェースが該チップ間通信インターフェースと接続した他のチップへテストデータを送信する。幾つかの実施例において、まず該チップ間通信インターフェースに対して所定のアドレス範囲(例えば、BAR0アドレス)を配置し、それから、他のチップにおけるこの所定アドレス範囲内にあるアドレスにテストデータを送信する。例示として、該アドレスにHelloデータパケットを発送してよい。即ち、まず書き込みストア命令を発送し、かつ書き込まれたデータは特定のデータであり、例えば0xa1a1、それから該アドレスに読み取りストア命令を送信する。
【0027】
340では、読み取りストア命令を特定のアドレスに発送したので、この時のチップは返信を待つようになり、ひいては前記テストデータの応答データを受信する。例示として、該応答データはACKパケットであり、かつ該応答データは接続関係をもつ他のチップの識別情報を含んでいる。
【0028】
一つのチップがそれと接続される他のチップの識別情報を取得するプロセス300を詳細に説明した後に、図2に戻って、複数のチップ間の接続関係を確定するプロセス200を検討し続ける。各チップがそれ自身と接続される他のチップの識別情報を取得するように指示した後、プロセス200から230へ進む。
【0029】
230では、該一つまたは複数のチップのホストと通信するための管理インターフェース110を介して前記他のチップの識別情報を取得して、複数のチップ間の接続関係を確定してよい。例示として、各チップが接続認識の操作を終わらせた後、認識操作の完了をホストに通知するために中断情報をホストに送信してよい。それから、ホストは各チップの例えばPCIeの管理インタフェース110によって各チップで取得した接続情報を読み取ることができる。さらに、ホストはその管理される各チップ間の物理的な接続関係を確定できる。こうして、例えばCPUのホストはその管理される各チップ間の物理的な接続関係を確定できる。
【0030】
幾つかの実施例において、ホストは確定された各チップ間の接続関係を接続マトリクスに記憶してよい。例示として、図1Bに示される通り、チップ101は接続認識操作を介して次のことが確定できる。即ち、チップ間通信インターフェースC0がチップ106に接続され、チップ間通信インターフェースC1がチップ102に接続され、チップ間通信インターフェースC2がチップ104に接続され、チップ間通信インターフェースC3がチップ103に接続されている。同様に、チップ102は接続認識操作を介して次のことが確定できる。即ち、チップ間通信インターフェースC0がチップ104に接続され、チップ間通信インターフェースC1がチップ105に接続され、チップ間通信インターフェースC2がチップ103に接続され、チップ間通信インターフェースC3がチップ101に接続されている。チップ103は接続認識操作を介して次のことが確定できる。即ち、チップ間通信インターフェースC0がチップ102に接続され、チップ間通信インターフェースC1がチップ108に接続され、チップ間通信インターフェースC2がチップ101に接続され、チップ間通信インターフェースC3がチップ104に接続されている。
これによって類推して、表1に示したマトリクスを構築することができる。
【表1】
【0031】
表1では、最上部の行はチップごとの四つのチップ間通信インターフェースの番号であり、一番左側の列は各チップの識別情報(ID)であり、その他のデータは各チップの相応なインターフェースと接続した対応チップの識別情報である。表1のような接続マトリクスを構築することにより、ホストは各チップの物理的接続関係を容易に得ることができる。代替的にまたは付加的に、この接続マトリクスはこれらチップのそれ自身のチップ間通信インターフェースの状態情報と帯域幅情報の少なくとも一つをさらに含んでいる。例えばCPUのホストは各種情報を含んだ接続マトリクスを確定してメンテナンスすることによって、その管理した各チップ間の接続状況をより詳しく把握して、次のチップネットワークトポロジーの動的配置を便利にさせることができる。
【0032】
幾つかの実施例において、該一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知することもできる。例示として、検知した接続故障が修復可能であれば、該接続故障を修復し、かつ修復の結果を報告する。検知した接続故障が修復できなければ、該一つまたは複数のチップのチップ間通信インターフェースで伝送される作業を別のチップ間通信インターフェースに切り替え、かつこの接続故障を報告する。こうして、各チップの間に接続故障が発生しても、修復あるいは直接に作業を移すことによって、チップネットワークに続いて作動させることができ、そして、ホストに報告することによって、ホストがそのメンテメンスされる接続マトリクスへの更新を便利にさせることもできる。
【0033】
幾つかの実施例において、確定したチップの数に基づいて複数のチップの接続関係を列挙し、かつ、列挙した接続関係のうち、ユーザーが指定した接続関係に基づいてこれらのチップを配置することもできる。例示として、前記接続マトリクスに記録される各チップ間の物理的接続関係に基づいて実現可能な全ての論理的接続方式を列挙してよい。例えば、上記表1の物理的接続関係により、少なくともチップの二つの論理的接続方式を列挙することができ、即ち、101<->104<->103<->102<->105<->108<->107<->106<->101と、101<->102<->104<->107<->105<->106<->108<->103<->101である。さらに、その中から一つの論理的接続方式を選んで具体的な演算作業を実行する。
【0034】
本開示の前記実施例では、ホストは中央処理装置CPUであってよく、そしてチップはシステムレベルチップSoCであってよい。
【0035】
従来の技術に比べて、本開示の方案は各チップのチップ間通信インターフェースでそれと接続したチップを確定することよって、CPU側で該チップネットワークの物理的接続マトリクスを構築かつメンテナンスすることができる。こうして、チップネットワーク接続の故障検知及びチップネットワークトポロジーの動的配置を便利にさせる。また、各チップの論理的接続トポロジーの柔軟な配置を実現可能にされるため、必要に応じてトポロジー構造におけるチップ個数及び接続方式を変えることができ、したがって該チップネットワークの帯域幅を高くしかつ遅延を低くすることができる。
【0036】
上記の内容は、例示場面におけるチップ間の接続関係の例示を検討したものである。しかし、理解すべき点として、これらの場面の記載はただ例示の方式で本開示の実施例を説明するだけである。必要に応じて、異なる或いはほぼ同じな場面では、異なる策略を選ぶことができる。さらに留意すべき点として、本開示の技術案は実質的に人工知能チップ分野の応用に限らず、本開示の技術案は、大量の業務をマルチチップで協働して処理すべくその他の分野に応用されても、上記内容に言及される各種メリットを持っている。
【0037】
図4は本開示の実施例による複数のチップ間の通信をサポートする装置を示す概略ブロック図である。図4に示される通り、装置400は、ホストで管理されている複数のチップの識別情報を確定する識別情報確定モジュール410と、該複数のチップはチップ間通信に用いられるそれぞれのチップ間通信インターフェースによって接続されていることと、該複数のチップのうちの一つまたは複数のチップに、一つまたは複数のチップのチップ間通信インターフェースに接続される他のチップの識別情報を取得させるチップ指示モジュール420と、該一つまたは複数のチップのホストと通信するための管理インターフェース110によって、他のチップの識別情報を取得して、該複数のチップ間の接続関係を確定する接続関係確定モジュール430とを備える。
【0038】
幾つかの実施例において、チップ指示モジュール420は、該一つまたは複数のチップのチップ間通信インターフェースの状態情報を取得する状態情報読取りモジュールと、状態情報がアクティブとなるに応じて、該一つまたは複数のチップのチップ間通信インターフェースから、複数のチップのうちの、該チップ間通信インターフェースと接続される他のチップにテストデータを送信するテストデータ送信モジュールと、テストデータの、前記他のチップの識別情報を含む応答データを受信する応答データ受信モジュールとをさらに含んでよい。
【0039】
幾つかの実施例において、テストデータ送信モジュールは、該一つまたは複数のチップのチップ間通信インターフェースに対して所定アドレス範囲を設定するアドレス範囲設定モジュールと、他のチップにおける所定アドレス範囲内にあるアドレスにテストデータを送信する送信サブモジュールとをさらに含んでよい。
【0040】
幾つかの実施例において、装置400は、確定された各チップ間の接続関係を接続マトリクスに記憶する接続関係記憶モジュールをさらに含んでよい。接続マトリクスは、複数のチップのそれぞれのチップ間通信インターフェースの状態情報と帯域幅情報の少なくとも一つをさらに含んでよい。
【0041】
幾つかの実施例において、装置400は、該一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知する第一故障検知モジュールと、検知した接続故障が修復可能となるに応じて、該接続故障を修復する修復モジュールと、修復の結果を報告する修復結果報告モジュールとをさらに含んでよい。
【0042】
幾つかの実施例において、装置400は、該一つまたは複数のチップのチップ間通信インターフェースによって接続故障を検知する第二故障検知モジュールと、検知した接続故障が修復不可能となるに応じて、一つまたは複数のチップのチップ間通信インターフェースで伝送される作業を付加チップ間通信インターフェースに切り替える作業切り替えモジュールと、接続故障を報告する接続故障報告モジュールとをさらに含んでよい。
【0043】
幾つかの実施例において、装置400は、確定した複数のチップの数に基づいて複数のチップの接続関係を列挙する接続関係列挙モジュールと、列挙した接続関係のうち、ユーザーが指定した接続関係に基づいて複数のチップを配置するチップ配置モジュールとをさらに備えてよい。
【0044】
幾つかの実施例において、前記ホストは中央処理装置CPUであってよく、そして前記複数のチップはシステムレベルチップSoCであってよい。
【0045】
図5は本開示の実施例を実施可能な例示デバイス500を示す概略ブロック図である。デバイス500は、読み取り専用メモリ(ROM)に記憶されるコンピュータープログラム指示或いは記憶ユニット508からランダムアクセスメモリ(RAM)に読み込まれるコンピュータープログラム指示に基づいて、各種の適切な動作と処理を行う中央処理ユニット(CPU)501を備えている。RAM503では、デバイス500の操作に必要な各種のプログラムとデータを記憶してよい。CPU501、ROM502及びRAM503はバス504で互いに接続されている。入力/出力(I/o)インターフェース505もバス504に接続されている。
【0046】
デバイス500の複数の部材はI/oインターフェース505に接続されており、キーボード、マウスなどの入力ユニット506と、各種類型のディスプレイ、スピーカーなどの出力ユニット507と、磁気ディスク、ディスクなどの記憶ユニット508と、ランカード、モデム、無線通信トランシーバーなどの通信ユニット509とを備えている。通信ユニット509は、デバイス500がインターネットのようなコンピュータネットワークおよび/または各種の電信ネットワークを介してその他のデバイスと情報/データを交換するのを許可する。
【0047】
処理ユニット501は上記内容に記載される各方法と処理を実行する。例えばプロセス200または300である。例えば、幾つかの実施例において、プロセス200または300はコンピューターソフトウェアプログラムとして実現可能であり、それはデバイスで読取り可能な媒体、例えば記憶ユニット508に有形的に含まれている。幾つかの実施例では、コンピュータープログラムの一部或いは全部は、ROM502および/または通信ユニット509を介してデバイス500に読み込まれおよび/または取り付けられている。コンピュータープログラムがRAM503に読み込まれてCPU501で実行されるとき、上記内容に記載されるプロセス300の一つまたは複数のステップを実行してよい。代替的に、CPU501は他のいずれの適切な方式(例えば、ファームウェア)によってプロセス200または300を実行するように配置されてよい。
【0048】
上記内容に記載される機能は少なくとも部分的に一つまたは複数のハードウェア論理部材で実行されてよい。例えば、制限的なものではおらず、使用してよい例示類型のハードウェア論理部材はフィールドプラグラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)などを含んでいる。
【0049】
本開示の方法を実施するためのプログラムコードは、一つまたは複数のプログラミング言語の任意の組み合わせで書かれてよい。これらのプログラムコードは通用コンピューター、専用コンピューターまたは他のプログラマブルデータ処理装置のプロセッサやコントローラーに提供されてよく、プログラムコードはプロセッサやコントローラーに実行されると、フローチャートと/又はブロック図に規定される機能/操作が施されるようにしている。プログラムコードは完全でマシンに実行され、部分的にマシンで実行され、独立なソフトウェアパッケージとして部分的にマシンで実行されかつ部分的にリモートマシンで実行され、或いは、完全にリモートマシンやサーバで実行されてよい。
【0050】
本開示では、マシン読み取り可能媒体は有形的なものであってよく、指示実行システム、装置またはデバイスが使用し、或いは、指示実行システム、装置またはデバイスと組み合わせて使用するためのプログラムを含または記憶することができる。マシン読み取り可能媒体はマシン読み取り可能信号媒体やマシン読み取り可能記憶媒体であってよい。マシン読み取り可能媒体は、電子的、磁気的、光学的、電磁的、赤外線の、半導体システム、装置またはデバイス、或いは前記内容の任意の適切な組み合わせを含んでいてよいが、これらに限るものではない。マシン読み取り可能記憶媒体のさらなる具体的な例示としては、一つまたは複数のラインによる電気的な接続、携帯用コンピューターディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバー、携帯用コンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶デバイス、磁気記憶デバイス、または前記内容の任意の適切な組み合わせが挙げられている。
【0051】
なお、各操作を特定の順序で記載しているが、次のように理解すべきである。即ち、このように操作して示された特定の順序または順序で実行すると要求し、或いは、所望の結果を果たすために図面で示される全ての操作を実行すべくと要求する。一定の環境の下で、マルチ任務と並行処理はメリットがあるかもしれない。同じように、上記論述で若干の具体的な実現詳細が含まれているが、本開示の範囲に対する制限と解釈すべきではない。単独な実施例に記載される特徴は、組み合わせて一つの実現に実現されてよい。逆に、一つの実現に記載れる各種特徴は、単独で或いは任意の適切なサブ組み合わせの方式で複数の実現に実現されていてもよい。
【0052】
構造的特徴および/または方法論理動作に特定した記載で本主題を記述しているが、添付した特許請求の範囲に限定される主題は、必ずしも上記内容に記載される特定の特徴や動作とは限らないと理解すべきである。逆に、上記内容に記載される特定の特徴と動作はただ特許請求の範囲を実現するための例示形式にすぎない。
図1A
図1B
図2
図3
図4
図5