(57)【要約】  本開示は、ニューラルネットワークプロセッサのためのオンチップ通信システムと、処理デバイスと、オンチップ通信システムの動作方法とを提供する。本システムは、グローバル信号を生成するように構成されたクラスタマネージャと、クラスタマネージャと結合されたタイルアレイ内の複数のタイルユニットであって、それぞれが２つのコネクタと、２つのコネクタ間に接続された１つのノードとを含む複数のタイルユニットとを含み得る。
2021507384.tif 000002
【特許請求の範囲】
【請求項１】
人工ニューラルネットワークプロセッサのためのオンチップ通信システムであって、前記オンチップ通信システムは、
グローバル信号を生成するように構成されたクラスタマネージャ；
バス；及び
前記バスを介し前記クラスタマネージャと通信可能に結合された複数のタイルユニット
を含み、各タイルユニットは、第１の組のコネクタと、前記第１の組のコネクタの少なくとも２つのコネクタ間に接続された少なくとも１つのノードとを含み、前記少なくとも１つのノードは前記グローバル信号を取得するように構成される、オンチップ通信システム。
【請求項２】
前記ノードはさらに、前記バスを介し取得される前記グローバル信号に基づき、送信イネーブル信号、受信イネーブル信号、及びモード信号のうちの少なくとも１つを生成するように構成された制御ユニットを含む、請求項１に記載のオンチップ通信システム。
【請求項３】
前記ノードは、第１の端子を介し前記第１の組のコネクタの第１のコネクタへ、及び第２の端子を介し前記第１の組のコネクタの第２のコネクタへ通信可能に結合され、前記ノードはさらに、
前記第１の端子と前記第２の端子との間に接続されるとともに前記第１の端子と前記第２の端子との間でデータ信号を伝達するように構成されたバイパスバス；
前記第１の端子と前記第２の端子との間に接続されるとともに前記データ信号をバッファするように構成されたバッファバス；及び
前記ノードの前記構成に基づく前記モード信号に従って前記バイパスバス及び前記バッファバスのうちの１つを有効にするように構成された１つ又は複数のマルチプレクサを含む、請求項２に記載のオンチップ通信システム。
【請求項４】
前記ノードはさらに、前記データ信号に基づき１つ又は複数の操作を行うように構成された算術論理ユニット（ＡＬＵ）を含み、前記ＡＬＵは前記バイパスバス及び前記バッファバスと通信可能に結合される、請求項３に記載のオンチップ通信システム。
【請求項５】
前記ノードはさらに、前記バイパスバスと結合されるとともに前記送信イネーブル信号に従ってデータを前記バイパスバスへ送信するように構成された送信ユニット；及び前記バイパスバスと結合されるとともに前記受信イネーブル信号に従ってデータを前記バイパスバスから受信するように構成された受信ユニットを含む、請求項３又は４に記載のオンチップ通信システム。
【請求項６】
前記受信ユニットはさらに、前記受信イネーブル信号に従ってデータを前記バッファバスから受信するために前記バッファバスと結合される、請求項３〜５のいずれか一項に記載のオンチップ通信システム。
【請求項７】
前記制御ユニットはさらに、前記グローバル信号に基づく選択信号を生成するように構成され、前記選択信号は前記第１の組のコネクタの１つ又は複数のコネクタを構成する、請求項２〜６のいずれか一項に記載のオンチップ通信システム。
【請求項８】
前記第１の組のコネクタの前記１つ又は複数のコネクタはさらに、
前記ノードと第２の組のコネクタのコネクタとに通信可能に結合された第１のゲート；
前記ノードと第３の組のコネクタのコネクタとに通信可能に結合された第２のゲート；及び
前記第２も組のコネクタの前記コネクタと前記第３の組のコネクタの前記コネクタとに通信可能に結合された第３のゲートを含む、請求項７に記載のオンチップ通信システム。
【請求項９】
前記第１のゲートは前記選択信号がアサートされると有効にされるように構成され、
前記第２のゲートは前記選択信号がアサートされると有効にされるように構成され、
前記第３のゲートは前記選択信号がディスアサートされると有効にされるように構成される、請求項８に記載のオンチップ通信システム。
【請求項１０】
前記クラスタマネージャはさらに、
タスクを受信し；
前記タスクのためにタイルアレイの利用可能タイルユニットを判断し；
前記タイルアレイの利用可能タイルユニットに従って前記グローバル信号を生成し；
前記グローバル信号に基づき前記利用可能タイルユニットをリングトポロジーの状態に接続するように構成される、請求項７〜９のいずれか一項に記載のオンチップ通信システム。
【請求項１１】
前記利用可能タイルユニットは、
前記利用可能タイルユニットの位置情報を生成し；
前記位置情報に基づき前記選択信号を生成し；
前記選択信号に基づき、前記利用可能タイルユニットの前記コネクタ同士を接続することにより、前記リングトポロジーを確立するように構成される、請求項１０に記載のオンチップ通信システム。
【請求項１２】
前記クラスタマネージャはさらに、
重み行列に基づき前記リングトポロジーのノードの重み付けを生成し；
前記タスクを前記ノードのサブタスクに区分し；
前記重み付け及び前記サブタスクに基づき前記ノードの部分的結果を判断するように構成される、請求項１０又は１１に記載のオンチップ通信システム。
【請求項１３】
前記クラスタマネージャはさらに、前記タスクに基づき前記利用可能タイルユニットのノードの中からホームノードを判断するように構成される、請求項１０〜１２のいずれか一項に記載のオンチップ通信システム。
【請求項１４】
前記クラスタマネージャはさらに：
リダクション命令を前記リングトポロジーのノードへ送信し；
それぞれのノードリングが第１のノード及び第２のノードを含む複数のノードリングを生成するために前記リングトポロジーを再構成し；
前記部分的結果を前記第１のノードから前記第２のノードへ送信し； 
リダクション演算を前記第２のノードに対し行うように構成される、請求項１３に記載のオンチップ通信システム。
【請求項１５】
前記第２のノードは前記ノードリング内の他のノードより前記ホームノードに近い、請求項１４に記載のオンチップ通信システム。
【請求項１６】
互いに接続された２つのタイルユニットが前記タイルアレイのタイルを形成し、前記クラスタマネージャはさらに：
同報通信命令を前記利用可能タイルユニットの前記ノードへ送信し；
前記利用可能タイルユニットの前記ノードの位置情報を判断し；
前記ホームノードからデータを受信するために前記ホームノードを含むホームタイル列の非ホームノードを接続し；
前記ホームタイル列の各タイルと、当該タイルに対応する行内のタイルとを接続するように構成される、請求項１３〜１５のいずれか一項に記載のオンチップ通信システム。
【請求項１７】
第１の端子を介し第１の組のコネクタのうちの１つと、第２の端子を介し前記第１の組のコネクタの別の１つとに通信可能に結合された処理デバイスであって、
前記第１の端子と前記第２の端子との間に接続されるとともに前記第１の端子と前記第２の端子との間でデータ信号を伝達するように構成されたバイパスバス；
前記第１の端子と前記第２の端子との間に接続されるとともに前記データ信号をバッファするように構成されたバッファバス；及び
モード信号に従って前記バイパスバス及び前記バッファバスのうちの１つを有効にするように構成された１つ又は複数のマルチプレクサを含む処理デバイス。
【請求項１８】
前記データ信号に基づき１つ又は複数の操作を行うように構成された算術論理ユニット（ＡＬＵ）をさらに含み、前記ＡＬＵは前記バイパスバス及び前記バッファバスと通信可能に結合される、請求項１７に記載の処理デバイス。
【請求項１９】
前記バイパスバスと接続されるとともに送信イネーブル信号に従ってデータを前記バイパスバスへ送信するように構成された送信ユニット；及び
前記バイパスバスと接続されるとともに受信イネーブル信号に従ってデータを前記バイパスバスから受信するように構成された受信ユニットをさらに含む、請求項１８に記載の処理デバイス。
【請求項２０】
前記受信ユニットはさらに、前記受信イネーブル信号に従ってデータを前記バッファバスから受信するために前記バッファバスと接続される、請求項１９に記載の処理デバイス。
【請求項２１】
グローバル信号に基づき、前記送信イネーブル信号、前記受信イネーブル信号、及び前記モード信号を生成するように構成された制御ユニットをさらに含む、請求項１９又は２０に記載の処理デバイス。
【請求項２２】
前記第１の組のコネクタの各コネクタはさらに：
前記処理デバイスと、第２の組のコネクタのコネクタとに通信可能に結合された第１のゲート；
前記処理デバイスと、第３の組のコネクタのコネクタとに通信可能に結合された第２のゲート；及び
前記第２の組のコネクタの前記コネクタと、前記第３の組のコネクタの前記コネクタとに通信可能に結合された第３のゲートを含む、請求項１７〜２１のいずれか一項に記載の処理デバイス。
【請求項２３】
クラスタマネージャと、バスを介し前記クラスタマネージャと通信可能に結合されたタイルアレイ内の複数のタイルユニットとを含むオンチップ通信システムの動作方法であって、前記方法は、
タスクを受信することと；
前記クラスタマネージャと結合された前記タイルアレイの利用可能タイルユニットを判断することであって、各タイルユニットは、第１の組のコネクタと、前記第１の組のコネクタ間に接続された少なくとも１つのノードとを含む、判断することと；
前記タイルアレイの前記利用可能タイルユニットに従ってグローバル信号を生成することと；
前記グローバル信号に基づき前記利用可能タイルユニットをリングトポロジーの状態に接続することとを含む方法。
【請求項２４】
前記利用可能タイルユニットの位置情報を生成することと；
前記位置情報に基づき選択信号を生成することと；
前記選択信号に基づき、前記利用可能タイルユニットの前記コネクタ同士を接続することにより、前記リングトポロジーを確立することとをさらに含む、請求項２３に記載の方法。
【請求項２５】
重み行列に基づき前記リングトポロジーのノードの重み付けを生成することと；
前記タスクを前記ノードのサブタスクに区分することと；
前記重み付け及び前記サブタスクに基づき前記ノードの部分的結果を判断することとをさらに含む、請求項２４に記載の方法。
【請求項２６】
前記タスクに基づき前記利用可能タイルユニットのノードの中からホームノードを判断することをさらに含む、請求項２５に記載の方法。
【請求項２７】
リダクション命令を前記リングトポロジーのノードへ送信することと；
複数のノードリングを生成するために前記リングトポロジーを再構成することであって、各ノードリングは第１のノード及び第２のノードを含む、再構成することと；
前記部分的結果を前記第１のノードから前記第２のノードへ送信することと；
リダクション演算を前記第２のノードに対し行うこととをさらに含む、請求項２６に記載の方法。
【請求項２８】
前記第２のノードは前記ノードリング内の他のノードより前記ホームノードに近い、請求項２７に記載の方法。
【請求項２９】
互いに接続された２つのタイルユニットが前記タイルアレイのタイルを形成し、前記方法は、
同報通信命令を前記利用可能タイルユニットの前記ノードへ送信することと；
前記利用可能タイルユニットの前記ノードの位置情報を判断することと；
前記ホームノードからデータを受信するために前記ホームノードを含むホームタイル列の非ホームノードを接続することと；
前記ホームタイル列の各タイルと、当該タイルに対応する行内のタイルとを接続することとを含む、請求項２６〜２８のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[1]  本開示は参照のためその内容すべてを本明細書に援用する２０１７年１２月２２日出願の米国仮特許出願第６２／６１０，１２７号及び２０１８年５月１５日出願の米国特許出願第１５／９８０，６８５号からの優先権の利益を主張する。
【背景技術】
【０００２】
背景
[2]  画像認識、音声／スピーチ認識及び機械翻訳などのニューラルネットワークベース深層学習アプリケーションに関する指数関数的成長に伴い、市販品ＣＰＵ／ＧＰＵベースプラットホームはもはや、性能、電力効率及び経済的拡張可能性の観点で、ますます増加する計算要求を支援するための好適な計算基板ではない。ニューラルネットワークベース深層学習アプリケーションを加速するためにニューラルネットワークプロセッサを開発することは、確立されたチップメーカ、新興会社、及び大きなインターネット会社を含む多くの事業区分にわたり著しい牽引力を得てきた。
【０００３】
[3]  ニューラルネットワークプロセッサの従来の相互接続ファブリックは通常、ルータの上位に構築される。ルータは所与のファブリックトポロジー上の任意のタイプの通信を支援し得る。例えば、ルータは、すべてのタイプの通信のための機能モジュールと、入力及び出力パケットを一時的に保持するための多数のバッファとを含むように設計され得る。したがって、すべてのタイプの通信のための機能モジュール及び多数のバッファは著しいオンチップ資源を消費し、しかも、機能モジュール及びバッファの大部分はニューラルネットワーク処理に使用され得ない。さらに、従来の相互接続ファブリックは効果的な区画化及び分離を支援しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
開示の概要
[4]  本開示の実施形態はニューラルネットワークプロセッサのためのオンチップ通信システムを提供する。本システムは、グローバル信号を生成するように構成されたクラスタマネージャ、バス、及びバスを介しクラスタマネージャと通信可能に結合された複数のタイルユニットを含み、各タイルユニットは第１組のコネクタと、第１組のコネクタのコネクタ間に接続された少なくとも１つのノードとを含み、少なくとも１つのノードはグローバル信号を取得するように構成される。
【０００５】
[5]  本開示のいくつかの実施形態はさらに、第１の端子を介し第１の組のコネクタのうちの１つと、第２の端子を介し第１の組のコネクタの別の１つとに結合された処理デバイスを提供する。本処理デバイスは、第１の端子と第２の端子との間に接続されるとともに第１の端子と第２の端子との間でデータ信号を伝達するように構成されたバイパスバス、第１の端子と第２の端子との間に接続されるとともにデータ信号をバッファするように構成されたバッファバス、及びモード信号に従ってバイパスバス及びバッファバスのうちの１つを有効にするように構成された１つ又は複数のマルチプレクサを含み得る。
【０００６】
[6]  本開示のいくつかの実施形態はまた、オンチップ通信システムの動作方法を提供する。オンチップ通信システムは、クラスタマネージャと、バスを介しクラスタマネージャと通信可能に結合されたタイルアレイ内の複数のタイルユニットとを含み得る。本方法は、タスクを受信すること；クラスタマネージャと結合されたタイルアレイの利用可能タイルユニットを判断することであって、各タイルユニットは、第１の組のコネクタと、第１の組のコネクタ間に接続された少なくとも１つのノードとを含む、判断すること；タイルアレイの利用可能タイルユニットに従ってグローバル信号を生成すること；及びグローバル信号に基づき利用可能タイルユニットをリングトポロジーの状態に接続することを含み得る。
【０００７】
図面の簡単な説明
[7]  本開示のいくつかの実施形態及び様々な態様は以下の詳細な説明及び添付図面に示される。添付図面内に示される様々な特徴は原寸に比例して描かれていない。
【図面の簡単な説明】
【０００８】
【図１】[8]本開示の実施形態による例示的オンチップアーキテクチャを示す。
【図２】[9]本開示の実施形態による例示的オンチップ通信システムのブロック図を示す。
【図３Ａ】[10]本開示の実施形態による例示的タイルユニットのブロック図を示す。
【図３Ｂ】[11]本開示の実施形態によるオンチップ通信システムの例示的ノードのブロック図を示す。
【図３Ｃ】[12]本開示の実施形態によるオンチップ通信システムの例示的コネクタのブロック図を示す。
【図４】[13]本開示の実施形態による例示的リングトポロジーを示す。
【図５】[14]本開示の実施形態による例示的資源取得操作のフローチャートである。
【図６】[15]本開示の実施形態による例示的部分的計算操作のフローチャートを示す。
【図７】[16]本開示の実施形態によるオンチップ通信システムを使用する例示的リダクション演算を示す。
【図８】[17]本開示の実施形態による例示的な再構成されたリングトポロジーの概要図を示す。
【図９】[18]本開示の実施形態によるオンチップ通信システムを使用する例示的同報通信操作を示す。
【図１０Ａ】[19]本開示の実施形態によるホームタイル列の例示的接続の概要図を示す。
【図１０Ｂ】[20]本開示の実施形態によるタイル行の別の例示的接続の概要図を示す。
【発明を実施するための形態】
【０００９】
詳細な説明
[21]  本開示の特定の態様が以下にさらに詳細に説明される。参照により援用される用語及び／又は定義と矛盾する場合、本明細書において提供される用語及び定義が統制する。
【００１０】
[22]  本開示の実施形態はニューラルネットワークプロセッサのためのオンチップ通信システムを提供する。
【００１１】
[23]  開示される実施形態は、従来の解決策内に存在する欠点に対処する弾性ルータレス（elastic router-less）相互接続ファブリックを提供する。本明細書において説明される実施形態は、柔軟ルータレス（flexible routerless）オンチップ通信システム及びその作動機構を提供する。ノード全体にわたり連携制御を使用することにより、ニューラルネットワークプロセッサは、通信ファブリック内のルータを回避し、人工ニューラルネットワーク処理により必要とされる通信パターンを効率的に支援し得る。
【００１２】
[24]  図１は、本開示の実施形態による例示的オンチップアーキテクチャ１００を示す。図１に示すように、オンチップアーキテクチャ１００は、オンチップ通信システム１０２、オフチップメモリ１０４、メモリコントローラ１０６、直接メモリアクセス（ＤＭＡ：direct memory access）ユニット１０８、ジョイントテストアクショングループ（ＪＴＡＧ：Joint Test Action Group）／テストアクセスエンド（ＴＡＰ：Test Access End）コントローラ１１０、バス１１２、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ：peripheral component interconnect express）１１４などを含み得る。伝達されたデータに基づきオンチップ通信システム１０２がアルゴリズムの操作を行い得るということが理解される。
【００１３】
[25]  オンチップ通信システム１０２は、グローバルマネージャ１０２２及び複数のタイル１０２４を含み得る。グローバルマネージャ１０２２は、タイル１０２４と連携するために少なくとも１つのクラスタマネージャを含み得る。例えば、各クラスタマネージャは、タイルのアレイに関連付けられ得る。図１に示すように、グローバルマネージャ１０２２は、タイルの２つのアレイと連携するために２つのクラスタマネージャを含み得る。タイル１０２４は、グローバルマネージャ１０２２の制御下で、伝達されたデータに対し演算（例えばアルゴリズム計算）を行うように構成され得る。
【００１４】
[26]  オフチップメモリ１０４は、読み出し専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memory）などを含み得る。オフチップメモリ１０４は、１つ又は複数のプロセッサ内に集積化されたオンチップメモリと比較して、遅いアクセス速度で大量のデータを格納するように構成され得る。
【００１５】
[27]  メモリコントローラ１０６は、１つ又は複数のメモリデバイスを読み出し、書き込み、又はリフレッシュし得る。メモリデバイスはオンチップメモリ及びオフチップメモリを含み得る。例えば、メモリデバイスは、スタティックランダムアクセスメモリ（ＳＲＡＭ：static random-access memory）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ：programmable read-only memory）、読み出し専用メモリ（ＲＯＭ）、磁気メモリ、フラッシュメモリ、若しくは磁気又は光ディスクなどのいずれかのタイプの揮発性若しくは不揮発性メモリデバイス、又はそれらの組合せとして実現され得る。
【００１６】
[28]  ＤＭＡユニット１０８はメモリアドレスを生成し、メモリ読み出し又は書き込みサイクルを開始し得る。ＤＭＡユニット１０８は、１つ又は複数のプロセッサにより書き込まれ読み出され得るいくつかのハードウェアレジスタを含み得る。レジスタは、メモリアドレスレジスタ、バイトカウントレジスタ、及び１つ又は複数の制御レジスタを含み得る。これらのレジスタは、ソース、送付先、転送の方向（入力／出力（Ｉ／Ｏ）デバイスから読み出す又はＩ／Ｏデバイスへ書き込む）、転送ユニットのサイズ、及び／又は１回のバーストで転送すべきバイトの数のうちのいくつかの組合せを規定し得る。
【００１７】
[29]  ＪＴＡＧ／ＴＡＰコントローラ１１０は、システムアドレス及びデータバスへの直接外部アクセスを必要としない低オーバヘッドアクセスのためのシリアル通信インターフェース（例えばＪＴＡＧインターフェース）を実現する専用デバッグポートを規定し得る。ＪＴＡＧ／ＴＡＰコントローラ１１０はまた、様々な部分のチップ論理レベル及びデバイス能力を提示する一組のテストレジスタへアクセスするためのプロトコルを実装するオンチップテストアクセスインターフェース（例えばＴＡＰインターフェース）を規定し得る。
【００１８】
[30]  バス１１２は、イントラチップバス及びインターチップバスを含み得る。イントラチップバスは、オンチップ通信システム１０２、オフチップメモリ１０４、メモリコントローラ１０６、ＤＭＡユニット１０８、ＪＴＡＧ／ＴＡＰコントローラ１１０、及びＰＣＩｅインターフェース１１４などの、オンチップアーキテクチャ１００のすべての内部部品を互いに接続し得る。インターチップバスはチップ間の接続を提供し得る。
【００１９】
[31]  ＰＣＩｅインターフェース１１４は、複数のエンドポイントにわたる同時アクセスに関する固有制限無しに、任意の２つのエンドポイント間の全二重通信を支援し得る。
【００２０】
[32]  図２は、本開示の実施形態による例示的オンチップ通信システム１０２のブロック図を示す。
【００２１】
[33]  図２に示すように、オンチップ通信システム１０２は、クラスタマネージャ２０２及びタイルアレイ２０４を含み得る。
【００２２】
[34]  クラスタマネージャ２０２は、タイルアレイ２０４を編成するためのグローバル信号を生成するように構成され得る。クラスタマネージャ２０２は、グローバルバスを介しタイルユニットへ接続され得る。オンチップ通信システム１０２が２つ以上のクラスタマネージャを含み得るということが理解される。例えば、図２に示すように、支援される複数のタスクの数に基づき、２つのクラスタマネージャ２０２、２０６がオンチップ通信システム１０２上に設けられ得る。
【００２３】
[35]  各クラスタマネージャ（例えば２０２）は、グローバルバスを介しグローバル信号を送信し得る。グローバル信号は初期クラスタ区分セットアップ及び操作命令に使用され得る。各クラスタマネージャ（例えば２０２）は、タイルアレイ（例えば２０４）と関連付けられ得、１つ又は複数のタイルアレイはメッシュアレイを形成し得る。例えば、クラスタマネージャ２０２、２０６に関連付けられたタイルアレイが一緒に編成される場合は、４タイル×４タイルメッシュアレイが図２に示すように形成され得る。メッシュアレイはＮ行及びＭ列を含み得るということが理解される。ここで、Ｎ及びＭは任意の正の整数であり得る。
【００２４】
[36]  タイルアレイ２０４は、クラスタマネージャ２０２と通信可能に結合された複数のタイルユニットを含み得、２つのタイルユニットは、タイル２０４２などのタイルを形成し得る。図３Ａは、本開示の実施形態による例示的タイルユニット３００のブロック図を示す。
【００２５】
[37]  図３Ａに示すように、タイルユニット３００は、一組のコネクタのうちのコネクタ３０２及びコネクタ３０４へ通信可能に結合された少なくとも１つのノード３０６を含み得る。ノード３０６は、コネクタ３０２、３０４それぞれと接続される２つの端子を含み得る。各タイルは２つのタイルユニットを含むので、各タイル（タイル２０４２など）は、図２に示すように２つのノード及び４つのコネクタを含み得る。ノード３０６の詳細は以下にさらに説明される。
【００２６】
[38]  図３Ｂは、本開示の実施形態によるオンチップ通信システムの例示的ノード３０６のブロック図を示す。
【００２７】
[39]  ノード３０６は、第１の端子３３０を介しコネクタ３０２に、第２の端子３３２を介しコネクタ３０４に、及び第３の端子３３４を介しオンチップ通信システム１０２の残りの要素に通信可能に結合され得る。いくつかの実施形態では、第１の端子３３０及び第２の端子３３２は、データ信号を送受信するためにコネクタ３０２、３０４と接続され得、第３の端子３３４は、グローバルバスを介しグローバル信号を受信するためにクラスタマネージャ２０２と接続され得る。
【００２８】
[40]  ノード３０６はさらに、バイパスバス３１２、バッファバス３１４、及びマルチプレクサ３１６を含み得る。
【００２９】
[41]  バイパスバス３１２は、第１の端子３３０と第２の端子３３２との間に接続され得、第１の端子３３０と第２の端子３３２との間でデータ信号を伝達するように構成され得る。第１の端子３３０及び第２の端子３３２はオンチップ通信システム１０２の他のタイルユニットと接続され得るので、バイパスバス３１２は、オンチップ通信システム１０２の残りの要素へ又は単純にバイパスノード３０６へデータを同報通信するために使用され得る。
【００３０】
[42]  バッファバス３１４はまた、第１の端子３３０と第２の端子３３２との間に接続され得、データ信号をバッファするためにファースト・イン・ファースト・アウト（ＦＩＦＯ：First-In-First-Out）バッファを含み得る。ＦＩＦＯバッファはノード３０６により処理されるデータを格納するために使用され得る。
【００３１】
[43]  マルチプレクサ３１６は、モード信号に従ってバイパスバス３１２及びバッファバス３１４のうちの１つを有効にし得る。いくつかの実施形態では、マルチプレクサ３１６は２つの多重化デバイスを含み得る。例えば、図３Ｂに示すように、ノード３０６は、それぞれがバイパスバス３１２とバッファバス３１４との両方へ接続される２つの多重化デバイスを含み得る。マルチプレクサ３１６は、例えばバイパスバス３１２及びバッファバス３１４のうちの１つを有効にする機能を実現するために、４つの金属酸化膜半導体（ＭＯＳ）電界効果トランジスタ（ＦＥＴ）を含み得るということが理解される。したがって、マルチプレクサ３１６は様々なやり方で実現され得、したがって図３Ｂの例示的構造により制限されなくてもよい。マルチプレクサ３１６により、ノード３０６はバイパスモードとバッファモードとで切り替わり得る。
【００３２】
[44]  ノード３０６はさらに、データ信号に基づき１つ又は複数の操作を行うための算術論理ユニット（ＡＬＵ：arithmetic logic unit）３１８を含み得る。ＡＬＵユニット３１８は、バイパスバス３１２とバッファバス３１４との両方と通信可能に結合され得る。例えば、ＡＬＵユニット３１８は、バイパスバス３１２と接続された送信ユニット３２０を含み得、送信イネーブル信号（ＴＸ＿ＥＮ）に従ってデータをバイパスバス３１２へ送信するように構成され得る。ＡＬＵユニット３１８は、バイパスバス３１２と接続された受信ユニット３２２をさらに含み得、受信イネーブル信号（ＲＸ＿ＥＮ）に従ってデータをバイパスバス３１２から受信するように構成され得る。送信ユニット３２０は、バイパスバス３１２と接続されたレジスタと、レジスタとＡＬＵユニット３１８との間に接続されたスイッチとを含み得る。いくつかの実施形態では、スイッチは、送信イネーブル信号がオンである場合にＡＬＵユニット３１８がデータをレジスタへ送信することを許容し、送信イネーブル信号がオフである場合にＡＬＵユニット３１８がバイパスバス３１２からの影響を無くすことを許容する３ステートバッファであり得る。同様に、受信ユニット３２２もまた、バイパスバス３１２と接続されたレジスタと、レジスタとＡＬＵユニット３１８との間に接続されたスイッチとを含み得る。いくつかの実施形態では、スイッチは、受信イネーブル信号がオンの場合にＡＬＵユニット３１８がレジスタからのデータを受信することを許容し、受信イネーブル信号がオフである場合にＡＬＵユニット３１８が受信ユニット３２２からの影響を無くすことを許容する３ステートバッファであり得る。したがって、このようなスイッチが埋め込まれたコネクタは、ＡＬＵユニットとデータを送受信することと、ＡＬＵユニットをバイパスすることとを動的に切り替え得る。
【００３３】
[45]  ＡＬＵユニット３１８の受信ユニット３２２はまた、受信イネーブル信号に従ってバッファバス３１４からデータを受信するようにバッファバス３１４と接続され得るということが理解される。いくつかの実施形態では、ＡＬＵユニット３１８の送信ユニット３２０はまた、データをバッファバス３１４へ送信するためにバッファバス３１４と接続され得る。
【００３４】
[46]  送信ユニット３２０及び受信ユニット３２２と、バイパスバス３１２及びバッファバス３１４との接続は、明瞭性のために図３Ｂには示されない。
【００３５】
[47]  バイパスバス３１２又はバッファバス３１４の１つだけが有効にされ得るので、ＡＬＵユニット３１８は、バイパスバス３１２又はバッファバス３１４のいずれかからデータを受信し得る。いくつかの実施形態では、マルチプレクサ３１６がバッファバス３１４を有効にし、且つ受信イネーブル信号がオンであると、ＡＬＵユニット３１８は、ＦＩＦＯバッファからデータを受信し、次にこのデータを処理し得る。いくつかの実施形態では、マルチプレクサ３１６がバイパスバス３１２を有効にし、且つ受信イネーブル信号がオンであると、ＡＬＵユニット３１８は、バイパスバス３１２からデータを受信し、次にこのデータを処理し得る。
【００３６】
[48]  ノード３０６はさらに、第３の端子３３４を介し取得されるグローバル信号に従って、送信イネーブル信号、受信イネーブル信号、及びモード信号を生成するように構成された制御ユニット３２４を含み得る。いくつかの実施形態では、制御ユニット３２４はさらに、コネクタを構成するための選択（ＳＥＬ）信号を生成し得る。図３Ｂでは制御ユニット３２４はノード３０６の埋め込み部品であるが、制御ユニット３２４はまた３つ以上のノードにより共有される部品であり得る。
【００３７】
[49]  図３Ｃは、本開示の実施形態によるオンチップ通信システムの例示的コネクタ３０２のブロック図を示す。上に論述したように、タイルユニットは、少なくとも１つのノードと、２つの動的コネクタ（例えば３０２、３０４）とを含み得る。２つのコネクタ（例えば３０２、３０４）は互いに同一であり得る。したがって、１つの例示的コネクタ３０２だけが図３Ｃを参照してここでは説明されることになる。
【００３８】
[50]  コネクタ３０２は、４つの端子（３３１、３３３、３３５、３３７）と、端子３３１、３３３、端子３３３、３３５、及び端子３３３、３３７間の３つの接続部の開閉を制御する３つの転送ゲート（３３９、３４１、３４３）とを含み得る。
【００３９】
[51]  上に論述したように、１つのタイルは２つのタイルユニットを含み得る。いくつかの実施形態では、端子３３１、３３３は、同じタイル内の他のタイルユニットのコネクタとの接続のための内部端子であり得る。２つのタイルユニットを接続することにより、例えば、２つのタイルユニットの２つのノードは、コネクタを介し互いに接続され、２つのノードリングを形成し得る。端子３３５、３３７は別のタイルとの接続のための外部端子であり得る。少なくとも２つのタイルを接続することにより、マルチノードリングが形成され得る。したがって、少なくとも１つのタイルのコネクタの接続及び切断は、多様な操作のために様々なノードの間でデータを渡すように様々なノードリングを生成し得る。タイルの接続はリングトポロジーと呼ばれ得る。
【００４０】
[52]  コネクタの接続及び切断はゲートにより制御され得る。いくつかの実施形態では、ゲート３３９は、ノード３０６と、同じタイル内の別のタイルユニットの別の組のコネクタのコネクタ３０８と通信可能に結合され得る。ゲート３４１は、コネクタ３０８と、隣接タイル内のさらに別のタイルユニットのさらに別の組のコネクタのコネクタと通信可能に結合され得る。ゲート３４３は、ノード３０６と、さらに別の組のコネクタのコネクタと通信可能に結合され得る。ＳＥＬ信号が「１」に設定されると、ゲート３３９は有効にされ、端子３３１と端子３３３とを接続し、ゲート３４１は無効にされ、端子３３１と端子３３５とを切断し、ゲート３４３も無効にされ、端子３３３と端子３３７とを切断する。ＳＥＬ信号が「０」に設定されると、ゲート３３９は無効にされ、端子３３１と端子３３３とを切断し、ゲート３４１は有効にされ、端子３３１と端子３３５とを接続し、ゲート３４３も有効にされ、端子３３３と端子３３７とを切断する。
【００４１】
[53]  したがって、制御ユニット３２４により生成されたＳＥＬ信号を適用することにより、コネクタ（例えば３０２、３０４）は、同じタイル内の若しくは別のタイルからの別のコネクタと接続／切断する、及び／又はコネクタと結合されたノードと接続／切断するように構成され得る。したがって、タイルのリングトポロジーはＳＥＬ信号に従って形成され得る。
【００４２】
[54]  図４は、本開示の実施形態による例示的リングトポロジー４００を示す。上に論述したように、各クラスタマネージャ２０２は、複数のタイルを含むタイルアレイに関連付けられ得、１つ又は複数のタイルアレイはメッシュアレイを形成し得る。図４は２つのタイルアレイからなるメッシュアレイを示す。タイル４０１〜４１５を含む第１のタイルアレイは実線により示され、第２のタイルアレイは破線により示される。第１のタイルアレイと第２のタイルアレイは似ている又は同じであるので、タイル４０１〜４１５を含む第１のタイルアレイだけが以下のように説明されることになる。
【００４３】
[55]  図４において、メッシュアレイは３つのタイプのタイルを含み得る。第１のタイプはタイルアレイの境界におけるタイルを含み（例えばタイル４０１〜４１５）、第２のタイプはメッシュアレイの境界におけるタイルを含み（例えばタイル４０１〜４０９、４１５）、第３のタイプはタイルアレイの境界とメッシュアレイの境界との両方におけるタイルを含む（例えば４０１〜４０９、４１５）。
【００４４】
[56]  メッシュアレイは所与のチップに関して固定されるので、各ノードはＸ−Ｙ座標をハードコード化することによりその物理的位置を知らされ得る。しかし、割り振られたリング接続内の相対的位置は、クラスタマネージャにより割り振られた資源ビットマスク内のタイルの位置を定位することにより獲得され得る。
【００４５】
[57]  本開示のいくつかの実施形態では、オンチップタイル及びそれらの接続部はオンザフライで柔軟に再構成され得る。例えば、ＳＥＬ信号を制御することにより、１つのタイルは、隣のタイルへの接続部を開放又は切断し得る。これは、タイルアレイが効率的な部分的計算操作、同報通信、リダクション演算、及び資源取得操作を支援するように自身を動的に再構成することを許容する。例えば、図４に示すように、タイル４０１〜４１５は直列に連続的に接続される。
【００４６】
[58]  この再構成を支援するために、資源取得操作が行われ得る。図５は本開示の実施形態による例示的資源取得操作５００のフローチャートである。例えば、資源取得操作５００はオンチップ通信システム（例えばオンチップ通信システム１０２）により行われ得る。
【００４７】
[59]  工程５０２では、オンチップ通信システムは、オンチップアーキテクチャからタスクを受信し得る。いくつかの実施形態では、オンチップ通信システムのクラスタマネージャ（例えば図２のクラスタマネージャ２０２）がタスクを受信し得る。タスクはニューラル処理タスクであり得る。タイル数の観点での所与の資源必要要件を有する新規タスクがドライバから来ると、フリーのクラスタが識別され得、このタスクを受信し得る。フリーのクラスタマネージャが識別され得なければ、このタスクは排除され得る。
【００４８】
[60]  工程５０４では、オンチップ通信システム（例えばクラスタマネージャ）が、タスクのためのタイルアレイの利用可能タイルユニットを判断し得る。オンチップ通信システム１０２は複数のタスクを同時に処理し得るので、タイルアレイの一部分が以前のタスクにより既に占拠されてしまうということが起こり得る。利用可能タイルユニットの数がタスクにより要求される数より大きければ、タスクは受け入れられ得、そうでなければタスクは排除される。
【００４９】
[61]  タスクが受け入れられれば、工程５０６では、オンチップ通信システム（例えばクラスタマネージャ）が、タイルアレイの利用可能タイルユニットに従ってグローバル信号を生成し得る。例えば、グローバル信号は、タイルアレイの利用可能タイルユニットを指示する資源ビットマスクに照らして生成され得る。資源ビットマスクは、メッシュアレイ全体にわたる利用可能タイルユニットを記録するためにクラスタマネージャにより一括して管理され得る。タスクが終了すると、対応クラスタマネージャは、資源ビットマスク内の対応ビットを設定解除することにより資源を解放し得る。様々なクラスタマネージャからの資源ビットマスクに対する操作は、競合状態を回避するためにシリアライズされ得る。
【００５０】
[62]  工程５０８では、オンチップ通信システム（例えばクラスタマネージャ）は、グローバル信号に基づき利用可能タイルユニットをリングトポロジーの状態に接続し得る。いくつかの実施形態では、オンチップ通信システム１０２は、グローバル信号をタイルアレイの利用可能タイルユニットへ送信し得る。例えば、グローバル信号は、クラスタマネージャ２０２のクラスタ識別子（ＩＤ）を含み得、クラスタマネージャ２０２は、資源ビットマスクと共にグローバル信号をグローバルバスを介し利用可能タイルユニットへ送信し得る。利用可能タイルユニットがグローバル信号を受信した後、利用可能タイルユニットの各ノード内の制御ユニット３２４は、受信されたグローバル信号が制御ユニット３２４に属するかどうかを見るために、クラスタＩＤ及び資源ビットマスクをそれ自身のノードＩＤに対し照査し得る。受信されたグローバル信号が制御ユニット３２４に属する場合、制御ユニット３２４は、さらにメッシュアレイ内のその位置を判断し得る。この位置情報に基づき、制御ユニット３２４はさらに、各ノードに属する２つの隣接コネクタを構成するためにグローバル信号に基づきＳＥＬ信号を生成し得る。ＳＥＬ信号に従って、タイルは図４に示すようなリングトポロジー４００の状態に接続され得る。
【００５１】
[63]  さらに、前述の工程を使用して確立されたリングトポロジー４００により、クラスタマネージャ２０２はさらに、タスクに基づき利用可能タイルユニットのノードの中からホームノードを判断し得る。例えば、クラスタマネージャ２０２は、リングの中央に在るノードをホームノードとして判断し得る。ホームノードが中央ノードではないということも可能である。例えば、図４に示すように、タイル４０７の下位のノードがホームノード（ＨＮ：home node）である。
【００５２】
[64]  リングトポロジー４００の確立後、様々な操作がオンチップ通信システム１０２を使用して行われ得る。このような例示的操作は、部分的計算操作、リダクション演算、同報通信操作などを含み得る。これらの操作はさらに以下に説明される。
【００５３】
[65]  図６は本開示の実施形態による例示的部分的計算操作６００のフローチャートを示す。リングトポロジー４００が確立された後、リングトポロジー４００は、ニューラルネットワーク層の部分的計算操作６００に使用され得る。例えば、部分的計算操作６００はオンチップ通信システム１０２により行われ得る。
【００５４】
[66]  工程６０２では、オンチップ通信システムは、重み行列に基づきノードの重み付けを生成し得る。一般的に、ニューラルネットワークは層で編成され得る。各層はその入力に対し計算を行い、出力を生成し得る。層の出力は、さらなる処理のために次の層に渡され得る。例えば、前の層の出力が次の層の入力であり得る。計算を行うために、各層は重み付けを割り当てられ得、ニューラルネットワークの重み行列は、層へ割り当てられるすべての重み付けを含み得る。重み行列は、ニューラルネットワークの構造とタスクの性質とに従って生成され得る。例えば、重み行列は、リングトポロジー４００に従って区分化され得る。重み行列を区分化することにより、各ノードは、計算に必要な対応重み付けを取得し得る。
【００５５】
[67]  工程６０４では、オンチップ通信システムは、タスクをノードのサブタスクへ区分化し得る。各ノード（例えば図３Ａのノード３０６）は、バッファバスを活性化し、ＦＩＦＯバッファ内のサブタスクのデータを、計算のためにＡＬＵユニットにロードし得る。タスクを区分化するために、タスクは、一方向に一度にリングトポロジー４００に沿って１ノード移動され得る。方向は時計回りであってもよいし、反時計回りであってもよい。いくつかの実施形態では、タスクの移動中、各ノードは、前のノードに既に割り振られたデータを受信し得る。例えば、計算が２つの行列（例えば、重み行列及びタスクに関連付けられた行列）の乗算である場合、各ノードは、行列積内の要素を生成し得る。次式１を参照して、例えば、Ｘ１１〜Ｘ２３は重み付けを示すことができ、Ｙ１１〜Ｙ３２はデータを示すことができ、ノード３０６は、Ｚ２１の部分的結果を生成することができる。ノード３０６は、前のノードに既に割り振られた可能性のあるＺ１１のデータと同じデータ（すなわちＹ１１、Ｙ２１、Ｙ３１）を取得するということに注意すべきである。
【数１】
2021507384.tif 000003
【００５６】
[68]  重み付け及びサブタスクのデータに基づき、各ノードは、割り当てられた層出力の部分的結果を計算し得る。したがって、工程６０６では、オンチップ通信システムの各ノードは、重み付け及びサブタスクに基づきノードの部分的結果を判断し得る。この判断は計算を介し行われ得る。部分的結果を判断することにより、最終出力は、入力データの各区分がリングトポロジー４００全体にわたり横断された後に生成され得る。
【００５７】
[69]  図７は、本開示の実施形態によるオンチップ通信システム（例えば図２のオンチップ通信システム１０２）を使用する例示的リダクション演算７００を示す。
【００５８】
[70]  工程７０２では、リングトポロジー（例えば図４のリングトポロジー４００）が確立され、すべてのノードが自身の値を計算し終えた後、オンチップ通信システムは、リダクション命令をクラスタマネージャを介しノード（例えば図３Ａのノード３０６）へ送信し得る。いくつかの実施形態では、リダクション命令は、グローバルバスを介しノード３０６の制御ユニット３２４へクラスタＩＤと共に送信され得る。ノード３０６の制御ユニット３２４は、リダクション命令がノード３０６に関連付けられているかどうかを判断するために、リダクション命令とクラスタＩＤとを検証し得る。
【００５９】
[71]  工程７０４では、オンチップ通信システムは、複数のノードリングを生成するためにリングトポロジーを再構成し得る。いくつかの実施形態では、オンチップ通信システム１０２は、リングトポロジー４００内のタイルを互いに切断し、複数のノードリングを形成するためにタイルを再構成し得る。図８は、本開示の実施形態による例示的な再構成されたリングトポロジー８００の概要図を示す。図８に示すように、タイル４０１〜４１５の以前の接続（点線（例えば８０２）により示される）が切断される。各タイル内の２つのタイルユニットは、２ノードリングを形成するために接続される。１つのタイル内の２つのタイルユニットは、上位ノード及び下位ノードを含み得る。いくつかの実施形態では、接続は３個以上のタイルにわたって確立され得、再構成されたノードリングは３個以上のタイルを含み得る。例えば、図８に示すように、タイル４１３、４１５の４つのノードが４ノードリングを形成するために接続され得る。６ノードリングも同様に形成され得るということが理解される。したがって、ノードリングは、２ノードリング、４ノードリング、６ノードリングなどであり得る。
【００６０】
[72]  図７に戻って参照すると、工程７０６では、オンチップ通信システムは、各ノードリング内のバイパスバスを使用して部分的結果を第１のノードから第２のノードへ送信し得る。各ノードは計算を行って部分的結果を含み得るので、部分的リダクションは、部分的結果を生成するために第１及び第２のノードの格納データ（例えば重み付け）に対し行われ得る。これらの部分的結果はさらに、一括して処理され得る。いくつかの実施形態では、部分的結果は第２のノードへ送信され、一括して処理され得る。図８に示すように、部分的結果は、タイル４０１の上位ノードからタイル４０１の下位ノードへ送信され得る。データは下位ノードから上位ノードへ同様に送信され得るということが理解される。
【００６１】
[73]  いくつかの実施形態では、データは、第１のタイルの下位ノードから第２のタイルの下位ノードへ送信され得、第２のタイルの下位ノードは、ノードリング内の他のノードよりホームノードに近い。例えば、図８に示すように、タイル４０７の下位ノードはホームノードとして設定され得、したがって、データは、接続部８０４を介しタイル４１５の下位ノードからタイル４１３の下位ノードへ送信され得る。ノードリングがホームノードを含む場合は、データはホームノードへ送信され得るということが理解される。したがって、データをホームノードにより近いノードへ送信することにより、データは最終的にホームノードへ伝達され得る。
【００６２】
[74]  工程７０８では、オンチップ通信システムは、第２のノードに対しリダクション演算を行い得る。例えば、部分的結果を上位ノードから下位ノードへ送信することにより、下位ノードは部分的リダクションを下位ノードに対し行い得る。部分的リダクションはタイルアレイのすべてのタイルに対し並列に行われ得る。リングトポロジーの再構成を繰り返すことにより、ノード間のデータ送信、送信されたデータの操作、部分的リダクションのすべての部分的結果が、ホームノードにより収集され得、ホームノードは最終リダクションを行い得る。リングトポロジーの再構成はタスクに関連付けられ得る。いくつかの実施形態では、複数の２ノードリングが、部分的リダクション演算を並列に処理するために最初に形成され得る。例えば、各２ノードリングはタイル４０１〜４１５の２つのノードをそれぞれ含み得る。結果は上に論述したように複数の２ノードリングの下位ノード内に格納され得る。次に、複数の４ノードリングは、前の２ノードリング内の下位ノード内に格納される結果に対しリダクション演算をさらに行うように形成され得、結果はホームノードにより近いいくつかの下位ノード内に格納され得る。例えば、図８を参照すると、４ノードリングは、一対のタイル４０１、４０３、一対のタイル４０５、４０７、一対のタイル４０９、４１１及び一対のタイル４１３、４１５を含むリングを含み得る。次に、複数の６ノードリングが、４ノードリングにより生成される結果を送信し処理するために形成され得る。例えば、６ノードリングはタイル４０３、４０５、４０７のリングを含み得、したがって、前の４ノードリング（例えばタイル４０３の下位ノード）内に格納された結果はさらなる処理のためにホームノード（例えばタイル４０７の下位ノード）へ送信され得る。再構成はタイルアレイのタスク及びスケールへ適応化され得るということが理解される。
【００６３】
[75]  図９は、本開示の実施形態によるオンチップ通信システム（例えば図２の１０２のオンチップ通信システム）を使用する例示的同報通信操作９００を示す。例えば、図７を参照して上に論述したように、ホームノードは最終リダクション演算を行い得る。例えば、ホームノードのＡＬＵユニットが最終リダクションを行い得る。最終リダクションが行われた後、リダクション結果は、ホームノードの送信ユニット（例えば図３Ｂの送信ユニット３２０）内にロードされ得る。次に、オンチップ通信システムは最終結果を同報通信するために同報通信操作９００を行い得る。同報通信操作９００の前に、同報通信操作９００に関与するすべてのタイルの接続はリセットされ得るということが理解される。例えば、タイル間の接続は壊され得、各タイルのノードは２ノードリングの状態に接続され得る。
【００６４】
[76]  工程９０２では、オンチップ通信システムは、同報通信命令をノードへ送信し得る。いくつかの実施形態では、ホームノードが最終結果を送信ユニット３２０内にロードした後、同報通信命令がグローバルバスを介しクラスタＩＤと共にノードへ送信され得る。各ノードの制御ユニット３２４はクラスタＩＤに従って同報通信命令を検証し得る。したがって、各ノードは同報通信命令がクラスタＩＤに関連付けられているかどうかを判断し得る。
【００６５】
[77]  工程９０４では、オンチップ通信システムは、ノード（例えばノード３０６）の位置情報を判断し得る。ノードの位置情報は、同報通信操作９００の命令を生成するために使用され得る。例えば、同報通信操作９００は、同報通信操作９００のためのノードのコネクタ及びバス選択を制御する一系列の連携制御信号を含み得る。これらの制御信号は、ノード及びその隣接ノードの位置に従って隣接ノードのコネクタと接続又は切断するためにノードの各コネクタの動作シーケンスを含み得る。いくつかのノードだけが同報通信操作９００に利用可能であるので、いくつかの隣接ノードのコネクタは利用可能でない状態があり得る。したがって、ノード（例えば３０６）の位置情報は、メッシュアレイ内のメッシュアレイ位置情報及びリングトポロジー４００内の相対的位置を含み得る。
【００６６】
[78]  工程９０６では、オンチップ通信システムは、ホームノードからデータを受信するために、ホームノードを含むホームタイル列のタイル同士を接続し得る。タイルアレイはタイル列及びタイル行を含み得、ホームノードを含むタイル列はホームタイル列と呼ばれ得る。図１０Ａは、本開示の実施形態によるホームタイル列の例示的接続１０００の概要図を示す。図１０Ａに示すように、タイル４０７の下位ノードはホームノード（ＨＮ）であり、したがってホームタイル列はタイル４０７、４０９を含み得る。オンチップ通信システム１０２は、タイル４０７、４０９のノード（例えばタイル４０９のノード、タイル４０７の上位ノード）がホームノードからデータを受信し得るように、タイル４０７、４０９とホームノードとを接続し得る。タイルの非ホームノードだけがホームノードへ接続され得、データをホームノードから受信し得るということが理解される。
【００６７】
[79]  いくつかの実施形態では、ホームノード以外のノード（例えばタイル４０９のノード、タイル４０７の上位ノード）は、各ノードのバイパスバスがホームノードのバイパスバスへ接続され得るように、各ノードのバイパスバスを有効にし得る。ホームノードの送信ユニット内に格納されたデータは、受信イネーブル信号を適用し送信イネーブル信号を否定することにより、他のノードにより受信され得る。一方、ホームノードの送信イネーブル信号は有効にされ得る。したがって、ホームノード内に格納されたデータはホームノードのバイパスバス内にロードされ得、ホームノード以外のノードは、ロードされたバイパスバスから送信データを受信し得る。
【００６８】
[80]  工程９０８では、オンチップ通信システムは、ホームタイル列の各タイルと同タイルに対応する行内のタイルとを接続し得る。いくつかの実施形態では、工程９０８の前に、オンチップ通信システムはホームタイル列のノードを切断し得る。図１０Ｂは、本開示の実施形態によるタイル行の例示的接続１０１０の概要図を示す。上に論述したように、ホームタイル列はタイル４０７、４０９を含み得、タイル４０７、４０９は行１０１２、１０１４それぞれに対応し得る。行１０１２はタイル４０１〜４０７を含み得、行１０１４はタイル４０９〜４１５を含み得る。したがって、オンチップ通信システム１０２は、タイル４０１〜４０７を互いに接続し、タイル４０９〜４１５を互いに接続し得る。同様に、オンチップ通信システム１０２は、タイル列のタイル４０７、４０９内に格納されたデータがタイルの残りへ同報通信され得るように、これらのタイルのバイパスバスを有効にし得る。
【００６９】
[81]  同報通信操作９００のためにタイル行がタイル列の代わりに使用される可能性があり、逆も同様であるということが理解される。例えば、工程９０６では、ホームタイル列のタイルよりむしろホームタイル行のタイルが接続され得る。したがって、工程９０８では、タイル列のタイルが接続され得る。
【００７０】
[82]  開示された実施形態は、従来の解決策内に存在する欠点に対処する弾性ルータレス相互接続ファブリックを提供する。本明細書に説明される実施形態は柔軟なルータレスオンチップ通信システム及びその作動機構を提供する。ノード全体にわたる連携制御を使用することにより、本システムは、通信ファブリック内のルータを完全に回避し得、人工ニューラルネットワーク処理により必要とされるすべての通信パターンを効率的に支援し得る。
【００７１】
[83]  第１に、提案されたオンチップ通信システムはルータレスであり得、ルータにより引き起こされる非効率性を無くし得る。オンチップ通信システムのノード内のファースト・イン・ファースト・アウト（ＦＩＦＯ）バッファは、データが算術論理ユニット（ＡＬＵ）により直接使用され得る場所である。連携制御を使用することにより、オンチップ通信システムは、信用ベースフロー制御も、ルーティングテーブル検索も、仮想レーン管理も必要とせず、デッドロックフリーである。加えて、ルータ自体が存在しないので、データはバラバラにされヘッダ及びテイルと共にパケット内にカプセル化される必要はない。
【００７２】
[84]  第２に、オンチップ通信システム内のバイパスバスは、同報通信能力を提供するだけでなく、ノードがポイント・ツー・ポイントデータ転送のためにバイパスされることも許容する。したがって、本通信システムは、データが一度に１ホップで転送される必要がある従来のメッシュネットワークと比較して、より効率的であり且つ拡張可能である。
【００７３】
[85]  第３に、各タイル内の動的コネクタ及び中央集中型クラスタマネージャにより、オンチップ資源は効果的且つ柔軟に区分化され得る。したがって、マルチタスクが直接支援され得る。さらに、プロセッサがニューラルネットワークの様々な層を経由するので、各区分内で、実際のタイル使用は、計算要求変動に従って自然に拡大又は縮小され得る。これは、能動的区分内のそれらの非活性タイル上のクロックゲート／パワーゲートを使用して、効率をさらに改善する機会を提供する。
【００７４】
[86]  本開示の他の態様及び実施形態は、本明細書の考察と本明細書において開示された実施形態の実行から当業者にとって明白となる。
【００７５】
[87]  本明細書及びその中の例は例示的にすぎないと考えられ得、本開示の真の範囲と精神は以下の特許請求の範囲により指示されるということが意図されている。
【図１】
2021507384.tif 000004
【図２】
2021507384.tif 000005
【図３Ａ】
2021507384.tif 000006
【図３Ｂ】
2021507384.tif 000007
【図３Ｃ】
2021507384.tif 000008
【図４】
2021507384.tif 000009
【図５】
2021507384.tif 000010
【図６】
2021507384.tif 000011
【図７】
2021507384.tif 000012
【図８】
2021507384.tif 000013
【図９】
2021507384.tif 000014
【図１０Ａ】
2021507384.tif 000015
【図１０Ｂ】
2021507384.tif 000016
【国際調査報告】
2021507384.tif 000017
2021507384.tif 000018
2021507384.tif 000019