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

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

▶ テスラ モーターズ,インコーポレーテッドの特許一覧

特表2024-532145オンチップネットワークのための通信遅延の緩和
<>
  • 特表-オンチップネットワークのための通信遅延の緩和 図1
  • 特表-オンチップネットワークのための通信遅延の緩和 図2
  • 特表-オンチップネットワークのための通信遅延の緩和 図3
  • 特表-オンチップネットワークのための通信遅延の緩和 図4
  • 特表-オンチップネットワークのための通信遅延の緩和 図5
  • 特表-オンチップネットワークのための通信遅延の緩和 図6
  • 特表-オンチップネットワークのための通信遅延の緩和 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-05
(54)【発明の名称】オンチップネットワークのための通信遅延の緩和
(51)【国際特許分類】
   G06F 15/173 20060101AFI20240829BHJP
   G06F 13/38 20060101ALI20240829BHJP
【FI】
G06F15/173 660B
G06F15/173 685A
G06F13/38 340Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024509298
(86)(22)【出願日】2022-08-16
(85)【翻訳文提出日】2024-04-10
(86)【国際出願番号】 US2022040497
(87)【国際公開番号】W WO2023023080
(87)【国際公開日】2023-02-23
(31)【優先権主張番号】63/235,018
(32)【優先日】2021-08-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】510192916
【氏名又は名称】テスラ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ウィリアムズ,ダグラス アール.
【テーマコード(参考)】
5B045
【Fターム(参考)】
5B045BB01
5B045BB11
(57)【要約】
本出願は、コンピューティングノードのアレイにおける遅延を低減するためのシステムおよび方法に関する。いくつかの実施形態では、データをルーティングする方法は、コンピューティングノードのアレイの第1のコンピューティングノードから第1のバイパス信号および第2のバイパス信号を出力することを含むことができ、第1のバイパス信号は、第2のコンピューティングノードを介してパケットデータをルーティングすることを示し、第2のバイパス信号は、第3のコンピューティングノードにおいてパケットデータをターンさせることを示す。パケットは、単一のクロックサイクルで第1のバイパス信号に基づいて第2のノードを介してルーティングされ得、パケットは、単一のクロックサイクルで第2のコンピューティングノードから第3のコンピューティングノードにルーティングされ得る。第2のコンピューティングノードは、パケットデータを受信するよりも速いルートによって第1のバイパス信号を受信する。
【選択図】図5
【特許請求の範囲】
【請求項1】
コンピューティングシステムにおいてパケットをルーティングする方法であって、
コンピューティングノードのアレイの第1のコンピューティングノードから第1のバイパス信号および第2のバイパス信号を出力するステップであって、前記第1のバイパス信号が、コンピューティングノードの前記アレイの第2のコンピューティングノードを介してパケットをルーティングすることを示し、前記第2のバイパス信号が、コンピューティングノードの前記アレイの第3のコンピューティングノードにおいて前記パケットをターンさせることを示す、ステップと、
前記第1のコンピューティングノードからの前記第1のバイパス信号に基づいて前記第2のコンピューティングノードを介して前記パケットをルーティングするステップであって、前記パケットが、単一のクロックサイクルで前記第1のコンピューティングノードから前記第2のコンピューティングノードを介してルーティングされ、前記第2のコンピューティングノードが、前記第2のコンピューティングノードが前記パケットを受信するよりも速いルートによって前記第1のバイパス信号を受信する、ステップと、
前記第2のバイパス信号に基づいて前記第3のコンピューティングノード内の前記パケットをターンさせるステップであって、前記第2のコンピューティングノードから、前記第3のコンピューティングノードによって前記パケットが受信される、ステップとを含む、方法。
【請求項2】
前記第3のコンピューティングノードが、前記第3のコンピューティングノードが前記パケットを受信するよりも速いルートによって、前記第2のバイパス信号に基づく第3のバイパス信号を受信する、請求項1に記載の方法。
【請求項3】
前記パケットが、2クロックサイクルで前記第3のコンピューティングノードまでルーティングされる、請求項1に記載の方法。
【請求項4】
前記パケットがヘッダ部およびデータ部を含み、前記データ部の1サイクル前に前記ヘッダ部がルーティングされる、請求項1に記載の方法。
【請求項5】
前記第2のコンピューティングノードを介して前記パケットをルーティングするステップが、
第1のクロックサイクルで前記ヘッダ部をルーティングするステップと、
第2のクロックサイクルで前記データ部をルーティングするステップとを含む、請求項4に記載の方法。
【請求項6】
前記第2のコンピューティングノードを介して前記パケットをルーティングするステップが、
前記第2のコンピューティングノードの状態要素に前記第1のバイパス信号を格納するステップと、
前記第1のバイパス信号に少なくとも部分的に基づいて、前記第1のコンピューティングノードから前記第2のコンピューティングノードに前記ヘッダをルーティングするステップと、
前記第1のコンピューティングノードから前記第2のコンピューティングノードに前記ヘッダをルーティングした後に、前記第1のバイパス信号に少なくとも部分的に基づいて、前記第1のコンピューティングノードから前記第2のコンピューティングノードに前記データ部をルーティングするステップとを含む、請求項4に記載の方法。
【請求項7】
前記パケットが複数のサブパケットを含み、各サブパケットがヘッダおよびデータ部を含み、前記第2のコンピューティングノードを介して前記パケットをルーティングする前記ステップが、
前記第1のコンピューティングノードから前記第2のコンピューティングノードに前記複数のサブパケットをルーティングするステップと、
前記複数のサブパケットの各々の各ヘッダの少なくとも一部を比較するステップとを含む、請求項1に記載の方法。
【請求項8】
前記比較するステップに基づいてヘッダ不整合が存在することを判定するステップと、
前記判定に応答してエラー信号を提供するステップと、をさらに含む、請求項7に記載の方法。
【請求項9】
前記第2のコンピューティングノードを介して前記パケットをルーティングするステップが、前記第2のコンピューティングノードから出るのを待っている1つまたは複数の他のパケット、および前記パケットの宛先キューの利用可能な容量にさらに基づく、請求項1に記載の方法。
【請求項10】
前記第2のコンピューティングノードから第3のバイパス信号を出力するステップであって、前記第3のバイパス信号が、コンピューティングノードの前記アレイの第4のコンピューティングノードまで別のパケットをルーティングすることを示す、ステップをさらに含む、請求項1に記載の方法。
【請求項11】
前記パケットが前記第2のコンピューティングノードをバイパスすることができることを前記第1のバイパス信号が示す場合、前記第1のコンピューティングノードから前記第2のコンピューティングノードに前記パケットをルーティングするステップが、前記第2のコンピューティングノードで前記パケットがターンできない接続上で前記パケットをルーティングするステップを含む、請求項1に記載の方法。
【請求項12】
第1のコンピューティングノードと、第2のコンピューティングノードと、を含むコンピューティングシステムであって、
前記第1および第2のコンピューティングノードが、コンピューティングノードアレイに含まれ、
前記第1のコンピューティングノードが、前記第2のコンピューティングノードへの第1のルート上でバイパス信号をルーティングするように、また第2のルート上で前記第2のコンピューティングノードにパケットデータをルーティングするように構成され、前記第1のルートが前記第2のルートよりも速く、前記バイパス信号が前記第2のコンピューティングノードにおいて前記パケットデータをターンさせるかどうかを示す、コンピューティングシステム。
【請求項13】
前記第1、第2、および第3のコンピューティングノードが、前記コンピューティングノードアレイの同じ行または列に含まれ、前記第1のコンピューティングノードが、前記第3のコンピューティングノードで前記パケットデータをターンさせるかどうかを示す第2のバイパス信号を出力するように構成される、第3のコンピューティングノードをさらに含む、請求項12に記載のコンピューティングシステム。
【請求項14】
前記第3のコンピューティングノードが前記パケットをターンさせて2クロックサイクルで前記パケットを出力するように構成される、請求項13に記載のコンピューティングシステム。
【請求項15】
前記パケットがヘッダおよびデータ部を含み、前記第2のコンピューティングノードが、前記データ部を前記第3のコンピューティングノードにルーティングする前の少なくとも1クロックサイクルにおいて前記ヘッダを前記第3のコンピューティングノードにルーティングするように構成される、請求項13に記載のコンピューティングシステム。
【請求項16】
前記パケットが複数のサブパケットを含み、各サブパケットがヘッダおよびデータ部を含み、前記第2のコンピューティングノードが、前記各サブパケットのヘッダの少なくとも一部を比較するように構成される、請求項13に記載のコンピューティングシステム。
【請求項17】
前記コンピューティングシステムが、単一のクロックサイクルにおいて前記第1のコンピューティングノードと前記第3のコンピューティングノードとの間の経路で前記第2のコンピューティングノードを介して前記パケットをルーティングするように構成される、請求項13に記載のコンピューティングシステム。
【請求項18】
前記コンピューティングシステムが、ニューラルネットワーク訓練を実行するように構成される、請求項12に記載のコンピューティングシステム。
【請求項19】
ウェハ上のシステムが前記コンピューティングノードアレイを備える、請求項12に記載のコンピューティングシステム。
【請求項20】
前記コンピューティングシステムが、前記第2のコンピューティングノードから出るのを待っているいくつかの他のパケットのうちの1つ、または前記パケットの宛先キューの利用可能な容量に少なくとも部分的に基づいて前記第1のルートを判定するように構成される、請求項12に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2021年8月19日に出願された「COMMUNICATION LATENCY MITIGATION FOR ON-CHIP NETWORKS」と題する米国仮出願第63/235,018号の利益を主張し、その開示は、その全体があらゆる目的のために参照により本明細書に組み込まれる。
【0002】
本開示は、電子アセンブリおよび電子アセンブリ内の通信に関する。
【背景技術】
【0003】
高性能コンピューティングシステムは、多くの用途にとって重要である。しかしながら、従来のコンピューティングシステム設計は、オンチップネットワークにおいて著しい通信遅延に遭遇し、性能の低下につながる可能性がある。
【発明の概要】
【0004】
特許請求の範囲に記載された技術革新はそれぞれいくつかの態様を有し、そのうちの1つだけがその望ましい属性を単独で担うものではない。特許請求の範囲を限定することなく、本開示のいくつかの顕著な特徴をここで簡単に説明する。
【0005】
いくつかの態様では、本明細書に記載の技術は、コンピューティングシステムにおいてパケットをルーティングする方法に関し、当該方法は、コンピューティングノードのアレイの第1のコンピューティングノードから第1のバイパス信号および第2のバイパス信号を出力するステップであって、第1のバイパス信号が、コンピューティングノードのアレイの第2のコンピューティングノードを介してパケットをルーティングすることを示し、第2のバイパス信号が、コンピューティングノードのアレイの第3のコンピューティングノードにおいてパケットをターンさせることを示す、ステップと、第1のコンピューティングノードからの第1のバイパス信号に基づいて第2のコンピューティングノードを介してパケットをルーティングするステップであって、パケットが、単一のクロックサイクルで第1のコンピューティングノードから第2のコンピューティングノードを介してルーティングされ、第2のコンピューティングノードが、第2のコンピューティングノードがパケットを受信するよりも速いルートによって第1のバイパス信号を受信する、ステップと、第2のバイパス信号に基づいて第3のコンピューティングノード内のパケットをターンさせるステップであって、第2のコンピューティングノードから、第3のコンピューティングノードによってパケットが受信される、ステップとを含む。
【0006】
いくつかの態様では、本明細書に記載の技術は、第3のコンピューティングノードが、第3のコンピューティングノードがパケットを受信するよりも速いルートによって、第2のバイパス信号に基づく第3のバイパス信号を受信する方法に関する。
【0007】
いくつかの態様では、本明細書に記載された技術は、パケットが2クロックサイクルで第3のコンピューティングノードまでルーティングされる方法に関する。
【0008】
いくつかの態様では、本明細書に記載された技術は、パケットがヘッダ部およびデータ部を含み、データ部の1サイクル前にヘッダ部がルーティングされる、方法に関する。
【0009】
いくつかの態様では、本明細書に記載の技術は、第2のコンピューティングノードを介してパケットをルーティングするステップが、第1のクロックサイクルでヘッダ部をルーティングするステップと、第2のクロックサイクルでデータ部をルーティングするステップと、を含む方法に関する。
【0010】
いくつかの態様では、本明細書に記載の技術は、第2のコンピューティングノードを介してパケットをルーティングするステップが、第2のコンピューティングノードの状態要素に第1のバイパス信号を記憶するステップと、第1のバイパス信号に少なくとも部分的に基づいて、第1のコンピューティングノードから第2のコンピューティングノードにヘッダをルーティングするステップと、第1のコンピューティングノードから第2のコンピューティングノードにヘッダをルーティングした後に、第1のバイパス信号に少なくとも部分的に基づいて、第1のコンピューティングノードから第2のコンピューティングノードにデータ部をルーティングするステップと、を含む方法に関する。
【0011】
いくつかの態様では、本明細書に記載の技術は、パケットが複数のサブパケットを含み、各サブパケットがヘッダおよびデータ部を含み、第2のコンピューティングノードを介してパケットをルーティングする前記ステップが、第1のコンピューティングノードから第2のコンピューティングノードに複数のサブパケットをルーティングするステップと、複数のサブパケットの各々の各ヘッダの少なくとも一部を比較するステップとを含む、方法に関する。
【0012】
いくつかの態様では、本明細書に記載された技術は、前記比較することに基づいて、ヘッダ不整合が存在することを判定するステップと、前記判定に応答してエラー信号を提供するステップとをさらに含む、方法に関する。
【0013】
いくつかの態様では、本明細書に記載の技術は、第2のコンピューティングノードを介してパケットをルーティングすることが、第2のコンピューティングノードから出るのを待っている1つまたは複数の他のパケット、およびパケットの宛先キューの利用可能な容量にさらに基づく方法に関する。
【0014】
いくつかの態様では、本明細書に記載の技術は、第2のコンピューティングノードから第3のバイパス信号を出力するステップであって、第3のバイパス信号が、コンピューティングノードのアレイの第4のコンピューティングノードまで別のパケットをルーティングすることを示す、ステップをさらに含む方法に関する。
【0015】
いくつかの態様では、本明細書に記載の技術は、パケットが第2のコンピューティングノードをバイパスすることができることを第1のバイパス信号が示す場合、第1のコンピューティングノードから第2のコンピューティングノードにパケットをルーティングするステップが、第2のコンピューティングノードでパケットがターンできない接続上でパケットをルーティングするステップを含む、方法に関する。
【0016】
いくつかの態様では、本明細書に記載の技術は、第1のコンピューティングノードおよび第2のコンピューティングノードを含むコンピューティングシステムであって、第1および第2のコンピューティングノードが、コンピューティングノードアレイに含まれ、第1のコンピューティングノードが、第2のコンピューティングノードへの第1のルート上でバイパス信号をルーティングするように、また第2のルート上で第2のコンピューティングノードにパケットデータをルーティングするように構成され、第1のルートが第2のルートよりも速く、バイパス信号が、第2のコンピューティングノードにおいてパケットデータをターンさせるかどうかを示す、コンピューティングシステムに関する。
【0017】
いくつかの態様では、本明細書に記載の技術は、第3のコンピューティングノードをさらに含むコンピューティングシステムであって、第1、第2、および第3のコンピューティングノードが、コンピューティングノードアレイの同じ行または列に含まれ、第1のコンピューティングノードが、第3のコンピューティングノードでパケットデータをターンさせるかどうかを示す第2のバイパス信号を出力するように構成される、コンピューティングシステムに関する。
【0018】
いくつかの態様では、本明細書に記載の技術は、第3のコンピューティングノードがパケットをターンさせて2クロックサイクルでパケットを出力するように構成されたコンピューティングシステムに関する。
【0019】
いくつかの態様では、本明細書に記載の技術は、パケットがヘッダおよびデータ部を含み、第2のコンピューティングノードが、データ部を第3のコンピューティングノードにルーティングする前の少なくとも1クロックサイクルにおいてヘッダを第3のコンピューティングノードにルーティングするように構成される、コンピューティングシステムに関する。
【0020】
いくつかの態様では、本明細書に記載された技術は、パケットが複数のサブパケットを含み、各サブパケットがヘッダおよびデータ部を含み、第2のコンピューティングノードが、各サブパケットのヘッダの少なくとも一部を比較するように構成される、コンピューティングシステムに関する。
【0021】
いくつかの態様では、本明細書に記載の技術は、コンピューティングシステムが、単一のクロックサイクルにおいて第1のコンピューティングノードと第3のコンピューティングノードとの間の経路で第2のコンピューティングノードを介してパケットをルーティングするように構成される、コンピューティングシステムに関する。
【0022】
いくつかの態様では、本明細書に記載の技術は、ニューラルネットワークトレーニングを実行するようにコンピューティングシステムが構成される、コンピューティングシステムに関する。
【0023】
いくつかの態様では、本明細書に記載の技術は、ウェハ上のシステムがコンピューティングノードアレイを含むコンピューティングシステムに関する。
【0024】
いくつかの態様では、本明細書に記載の技術は、コンピューティングシステムが、第2のコンピューティングノードから出るのを待っているいくつかの他のパケットのうちの1つ、またはパケットの宛先キューの利用可能な容量に少なくとも部分的に基づいて第1のルートを判定するように構成される、コンピューティングシステムに関する。
【図面の簡単な説明】
【0025】
本開示は、本開示を例示することを意図しているが、本開示を限定することを意図していない特定の実施形態の図面を参照して本明細書で説明される。添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本明細書に開示される概念を例示する目的のためのものであり、縮尺通りではない場合があることを理解されたい。
【0026】
図1】コンピューティングノードの例示的なアレイを示す図である。
【0027】
図2】いくつかの実施形態によるコンピューティングノードおよびパケットルーティングの概略図の一例を示す図である。
【0028】
図3】いくつかの実施形態によるパケットルーティングの一例を示す図である。
【0029】
図4】いくつかの実施形態によるバイパスルーティングを有するコンピューティングノードの図である。
【0030】
図5】いくつかの実施形態による、アレイ内のコンピューティングノードをバイパスするためにバイパスおよびバイパスネクスト信号を使用するルーティングの一例を示す図である。
【0031】
図6】いくつかの実施形態によるパケットルーティングの一例を示す図である。
【0032】
図7】いくつかの実施形態によるサブパケット処理およびパリティチェックの例示的な図である。
【発明を実施するための形態】
【0033】
特定の実施形態の以下の説明は、特定の実施形態の様々な説明を提示する。しかしながら、本明細書に記載された技術革新は、例えば、特許請求の範囲によって定義および包含されるように、多数の異なる方法で具現化され得る。この説明では、図面を参照するが、同様の参照番号は同一または機能的に同様の要素を示すことができる。図面に示されている要素は、必ずしも縮尺通りに描かれていないことが理解されよう。さらに、特定の実施形態は、図面に示されているよりも多くの要素および/または図面に示されている要素のサブセットを含むことができることが理解されよう。さらに、いくつかの実施形態は、2つ以上の図面からの特徴の任意の適切な組み合わせを組み込むことができる。
【0034】
図1は、高性能コンピューティングシステムおよび/または高い計算密度が望まれる他の設定で使用され得るコンピューティングノードの例示的なアレイを示す。図1に示すように、アレイ100は、グリッドまたは他のパターンで配置された複数のコンピューティングノード102を含むことができる。コンピューティングノード102は、行および列に配置され得る。任意の適切な数のコンピューティングノード102をアレイ100に含めることができる。例えば、コンピューティングノードアレイは、特定のアプリケーションにおいて100個程度のコンピューティングノード102を含むことができる。アレイ100は、アレイ100のコンピューティングノード102間の通信を可能にするために使用され得るルーティングライン104を含むことができる。アレイ100は、単一の集積回路ダイ上に実装され得る。コンピューティングノード102は、計算、記憶、制御、通信、または監視機能のうちの1つまたは複数を提供するように構成された任意の適切な回路とすることができる。コンピューティングノード102は、中央処理装置(CPU)、グラフィックス処理装置、特定用途向け集積回路(ASIC)、システムオンチップ(SOC)、または他のダイに含めることができる。
【0035】
アレイ100のコンピューティングノード102は、分散コンピューティング機能を実装するために互いにインターフェースすることができる。いくつかの実施形態では、アレイ100の各コンピューティングノードは、計算、記憶、ルーティング判定、外部通信などのうちの1つまたは複数を含むことができるコンピューティング操作を実行することができる。いくつかの実施形態では、複数のコンピューティングノード102の各コンピューティングノードは、同じ設計のインスタンスとすることができる。しかしながら、いくつかの実施形態では、アレイは、異なるルーティング能力、異なるコンピューティング能力(例えば、コンピューティング能力を含まない)、異なるメモリ量(例えば、スタティックランダムアクセスメモリ(SRAM))、異なるセンサ(例えば、温度、電圧など)などの異なる能力を有する2つ以上のタイプのノードを含むことができる。特定の用途では、アレイ100は、ウェハ上のシステム上に実装され得る。
【0036】
例えば図1に示すようなマルチコンピューティングノードネットワークでは、コンピューティングノード間の通信遅延は、システム性能に大きな影響を及ぼす可能性がある。コンピューティングノードは、共通のダイ上にあってもよく、したがって、本開示の態様は、ダイ上通信のための比較的低い通信遅延を達成することができる。本明細書に記載の実施形態は、コンピューティングノードごとに単一サイクルの遅延でオンチップネットワークを横切ってデータパケットが移動することを可能にするコンピューティングノード間の通信を容易にすることができる。例えば、パケットが単一のクロックサイクルでコンピューティングノードを横切って移動できるように、コンピューティングノードの最大サイズを選択または判定することができる。典型的なネットワークでは、各ダイは、約2ギガヘルツ(GHz)の周波数、例えば、1GHz、1.5GHz、2GHz、2.5GHz、3GHz、またはこれらの周波数間の任意の周波数で、または特定のダイに応じてさらに多く動作することができる。典型的なコンピューティングノードサイズは、約1mm、約1cmなどであり得る。約2GHzの周波数では、パケットは、単一のサイクルで移動を完了するために、0.5ナノ秒以下で1つのコンピューティングノードから次のコンピューティングノードに移動する。
【0037】
パケットがコンピューティングノードを横切って移動するとき、パケットを真っ直ぐにルーティングするか、パケットをターンさせるか、またはパケットがその宛先に到達したかに関して、ネットワークルーティング判定を行うことができる。システムが、コンピューティングノードからのパケットのルーティング経路に関するルーティング決定を行う前に、パケットがコンピューティングノードに到達するのを待つ場合、システムは、単一のサイクル内でパケットの受信およびルーティング決定の両方を達成することができない可能性がある。より具体的には、単一のサイクルを使用してパケットを転送し、パケットをその宛先に到達するために次にどこにルーティングするかを判定することは、コンピューティングノードサイズを所望よりも小さくすることなく単一のサイクルで達成することが困難であり得る。したがって、そのような手法は非効率的であり、パケット通信遅延が大きくなる可能性がある。
【0038】
本開示の実施形態は、パケットルーティングによる非効率性に対処することができる。いくつかの用途では、オンチップネットワークの幅、高さ、またはその両方は、パケットが平均的なグローバルワイヤ上を移動するのにかかる時間に少なくとも部分的に基づいて選択することができ、グローバルワイヤはコンピューティングノード間で信号をルーティングすることができる。いくつかの実施形態では、システムは、臨界信号を搬送するために使用することができるいくつかのより広いおよび/またはより太いワイヤを含むことができる。例えば、より広いまたはより太いワイヤは、有効ビット、パケットがどの仮想チャネルを移動しているかを示すフィールドなどを搬送することができる。いくつかの実施形態では、ワイヤ間の結合を低減するために、より広いまたはより太いワイヤ間により大きな空間を設けることができる。より太いまたはより広いワイヤは、場合によっては、通常のワイヤよりも迅速に情報を転送することができる。しかしながら、このようなワイヤは限られた数しか利用できない場合がある。そのようなワイヤは、通常のワイヤよりもかなり大きな空間、例えば通常のワイヤ約3本分、約4本分、または約5本分の空間を占め得る。いくつかの実施形態では、パケットがコンピューティングノードアレイに入ると、処理ルーチンは、パケットがどのコンピューティングノード行およびコンピューティングノード列に入るべきかを判定するためにルーティングテーブルで検索を行うことができる。より広いまたはより太いワイヤは、より狭いワイヤよりも上位レベルの金属層内にあり得る。ダイ内を移動しているパケットの場合、行/列識別子フィールドなどをルーティングテーブルなしで直接使用して、パケットがターンする場所を判定することができる。いくつかの実施形態では、処理ルーチンは、パケットがターン後に異なるコンピューティングノードで終了するか、またはダイの端から外れ続けるかを判定することができる。
【0039】
いくつかの実施形態では、個々のコンピューティングノードについて、処理ルーチンは、パケットが2つのネットワークホップ分離れたコンピューティングノードでターンするべきかどうかを判定(例えば、復号)することができる。例えば、パケットが水平に移動していて列15でターンするべきである場合、システムは、パケットが列13のコンピューティングノードにあるときにこのターンを判定するように構成することができる。この判定は、バイパス適格信号を生成するために使用することができる。バイパス適格信号は、復号バイパス適格判定およびコンピューティングノードにわたるパケットの転送が単一のクロックサイクルで実行され得るように、より速いルート(例えば、より太いおよび/またはより広いワイヤ)を介して通信され得る。例えば、処理ルーチンは、各コンピューティングノードでバイパス適格性判定を実行することができ、その結果、判定は、パケットが正しい位置でターンすることを可能にするために適時に行われ得る。
【0040】
いくつかの実施形態では、バイパス適格信号は、パケットが隣接するコンピューティングノードを離れるにつれて、より広いまたはより太いワイヤ上で搬送され得る。例えば、上記の例を引き続き参照すると、バイパス適格信号は、パケットがコンピューティングノード14を離れるにつれて、より広いまたはより太いワイヤで搬送され得る。したがって、制御信号は、列15においてパケットの前に到達することができ、パケットのデータをステアリングするために使用され得る。
【0041】
いくつかの実施形態では、パケットは、コンピューティングノードのバイパスに関連する2つのインジケータ(例えば、ターンせずにコンピューティングノードを通ってルーティングするかどうか)を有することができる。「バイパス」(BYP)信号は、パケットが次のコンピューティングノードをバイパスすることを許可されているかどうかを示すことができ、「バイパスネクスト」(BYP_NEXT)信号は、パケットが2ホップ離れたコンピューティングノードをバイパスすることを許可されているかどうかを示すことができる。パケットが次のコンピューティングノードに到達すると、BYP_NEXT値は新しいBYP値になることができ、新しいBYP_NEXT値を判定することができる。次の2つのコンピューティングノードをバイパスしてルーティングするかどうか(例えば、パケットが次のコンピューティングノードでターンするか、次のコンピューティングノードの後のコンピューティングノードでターンするか)を判定することにより、無駄なサイクルを削減しながら、ルートを判定してパケットを送信するのに十分な時間が確保される。原則として、異なる数の操作を使用することができる。例えば、バイパス信号は、3ホップ離れたところ、4ホップ離れたところなどで判定され得る。いくつかの実施形態では、制御信号は、データが通常の低速ワイヤ上を移動する間に、高速ワイヤ上で搬送され得る。そのような制御信号をルーティングするための高速ワイヤは、パケットデータをルーティングするための低速ワイヤよりも上位レベルの金属層に実装され得る。例えば、現代のプロセスに従って製造された半導体デバイスは、複数の金属層、例えば、10層、15層、または他のいくつかの層を含むことができる。低位の金属層は、典型的には、高密度に対応するために、より上位の金属層よりも狭く、薄くすることができ、典型的には、比較的短い範囲にわたって信号を搬送する。スタック内で上位の層は、一般に、グローバル通信ならびに電力および/またはクロック信号の効率的な分配をサポートするために、より太い/より広いワイヤを有する。いくつかの実施形態では、上位の1つまたは2つの層を使用してバイパス信号を搬送することができ、次の1つまたは2つの層を使用してノード間でパケットの大部分を搬送することができる。
【0042】
事前に判定する操作の数は、通常のワイヤと比較した高速ワイヤの速度、利用可能な高速ワイヤの数などに少なくとも部分的に基づくことができる。例えば、より多くのホップを事前に判定することにより、計算を実行するためのより多くの時間を可能にすることができる。したがって、例えば、パケットは、宛先ノードアドレスに基づいて静的にルーティングされるのではなく、輻輳に基づいて適応的にルーティングされ得る。しかしながら、1つまたは複数のノードをバイパスすることを事前に判定することは、高速ワイヤにさらなる要求を課す可能性があり、容量が制約される可能性がある。
【0043】
図2は、いくつかの実施形態によるコンピューティングノードおよびパケットルーティングの例示的な概略図である。図2に示すように、パケットは、コンピューティングノードN-2から、N-1を介して通過する、コンピューティングノードNにルーティングされ得る。各コンピューティングノードN、N-1、N-2は、ルーティング情報、パケット情報、またはその両方を記憶するために使用され得る状態要素(例えば、フリップフロップ)202A~202Fを含むことができる。各コンピューティングノードN、N-1、N-2は、1つまたは複数のマルチプレクサ201A~201Fを含むことができ、1つまたは複数のマルチプレクサ201A~201Fは、ルーティング情報に基づいて、パケットを転送するように指示するか、またはパケットをターンさせるために使用され得る。パケットを順方向にルーティングすることにより、パケットはコンピューティングノードのアレイの行または列に沿って継続することができる。パケットをターンさせることは、パケットがコンピューティングノードによって受信される方向に対して直交方向にパケットを伝播させることを含む(例えば、パケットは、アレイの行に沿ったルートによって受信され得、アレイの列に沿ったルート上で出力され得る)。図2に示すように、パケットは、左から右および/または上から下に移動することができる。しかしながら、右から左および/または下から上への移動は、追加のステートマシン、マルチプレクサなどで可能にすることができる。図2は、それぞれのマルチプレクサ201A~201Fの前に来る状態要素202A~202Fを示しているが、例えば図4に示すように、本明細書に開示された原理および利点に従って他の構成が可能であることが理解されよう。したがって、いくつかの実施形態では、状態要素は、マルチプレクサ201A~201Fの後にデータを取り込むことができる。
【0044】
各コンピューティングノードN-2、N-1、Nは、バイパス信号BYPを受信および/または生成することができる。バイパス信号BYPは、パケットを行または列に沿って順方向にルーティングし続けるかどうかを示す。コンピューティングノードのバイパスロジック205A、205B、205Cは、バイパス信号BYPに少なくとも部分的に基づいて、パケットを順方向にルーティングするかどうかを判定することができる。バイパスロジック205A、205B、または205Cがパケットを順方向にルーティングすることを判定すると、それぞれのマルチプレクサ201A、201B、または201Cの選択信号をアサートしてパケットを選択することができる。これにより、パケットがコンピューティングノードによって受信されたのと同じ行または列に沿って伝播することが可能になる。バイパスロジック205A、205B、または205Cがパケットをターンさせることを判定すると、パケットは、それぞれの状態要素202D、202E、または202Fによって記憶され得る。そして、パケットは、後続のクロックサイクルでそれぞれのマルチプレクサ201D、201E、201Fに対する選択信号をアサートすることによって選択され得、コンピューティングノードがパケットを受信したルートに垂直なルート上で、コンピューティングノードの外側にパケットを伝播させることができる。
【0045】
図3は、いくつかの実施形態によるパケットルーティングの一例を示す図である。パケットデータは、コンピューティングノード301Aにおいて、値BYPおよび値BYP_NEXTと関連付けられ得る。BYPは、301Bにおいてパケットデータがバイパスできるかどうかを判定することができ、BYP_NEXTは、コンピューティングノード301Cにおいてパケットデータがバイパスできるかどうかを示すことができる。コンピューティングノード301Bでは、BYP_NEXTの値をBYPに割り当てることができ、新しいBYP_NEXT値を設定することができ、これは、パケットデータがコンピューティングノード301Cでバイパスすることができるかどうかを示す。同様に、コンピューティングノード301Cでは、BYPはBYP_NEXTの値をとることができ、パケットデータがコンピューティングノード301Dをバイパスすることができるかどうかを示す新しいBYP_NEXT値を設定することができる。いくつかの実施形態では、バイパスが許容されるかどうか(例えば、1ホップまたは2ホップ離れたコンピューティングノードでパケットがターンを有するかどうか)を判定するために、BYPおよび/またはBYP_NEXT値をマルチプレクサに提供することができる。コンピューティングノードのバイパスロジックは、BYP信号およびBYP_NEXT信号を生成および/または処理することができる。バイパス(BYP)およびバイパスネクスト(BYP_NEXT)信号は、アクティブハイ信号とすることができる。あるいは、これらの信号のいずれかまたは両方を論理的に反転させ、それに応じて処理することができる。
【0046】
図4は、いくつかの実施形態による、バイパスを用いたコンピューティングノードの概略図である。図4に示すように、コンピューティングノードN-2、N-1、およびNは、信号を水平にルーティングするかどうかを判定するために使用されるマルチプレクサ401A~401Cを有することができ、例えばルーティング情報(例えば、バイパス信号)および/または他の情報を記憶するために使用され得る状態要素402A~402Cを有することができる。バイパス(BYP)、バイパスネクスト(BYP_NEXT)、ヘッダ、および他の信号は、コンピューティングノードN-2においてマルチプレクサ401Aに提供することができる。
【0047】
コンピューティングノードN-2のBYP_NEXT値は、コンピューティングノードN-1のBYP値になり得る。コンピューティングノードN-1のBYP_NEXT値は、例えば、現在のコンピューティングノード(例えば、N-2)を、パケットがターンするコンピューティングノード(例えば、N)と比較することによって判定することができる。ターンするコンピューティングノード(例えば、N)が現在のコンピューティングノード(例えば、N-2)から2ホップ離れている場合、コンピューティングノードN-1のBYP_NEXT値は、コンピューティングノードNでターンすることを示す値(例えば、0の値)に設定することができる。そうでなければ、ノードN-1のBYP_NEXTは、コンピューティングノードNにおいてターンすることなくパケットを順方向にルーティングすることを示す値(例えば、1の値)に設定することができる。したがって、例えば、コンピューティングノードN-2への着信パケットがコンピューティングノードNにおいてターンするべきである場合、BYP_NEXTおよびBYPの両方を、ノードN-2をバイパスおよびノードN-1をバイパスしてもよいことを示す値に最初に設定することができる。ノードN-2を計算した後、BYPは、ノードN-1をバイパスすることができることを示す、コンピューティングノードN-1のBYP_NEXTの以前の値(例えば、1)をとることができる。新しいBYP_NEXTは、計算され得、コンピューティングノードNでターンするパケットの現在の例では、0に設定され得る。パケットがノードN-1にあるとき、BYP値は、BYP_NEXTの以前の値(例えば、0)に設定され得、コンピューティングノードNにおいてパケットをターンさせること、およびパケットがコンピューティングノードNをバイパスすることができないことを示す。
【0048】
図5は、いくつかの実施形態による、バイパス(BYP)およびバイパスネクスト(BYP_NEXT)値を使用するルーティングの一例を示す図である。BYP信号およびBYP_NEXT信号は、図5ではアクティブハイ信号である。図5に示すように、コンピューティングノード501aは、値BYP=1およびBYP_NEXT=1を受信することができ、コンピューティングノード501aおよび501bに対してバイパスが許容されること(例えば、パケットが501aまたは501bのいずれかでターンしないこと)を示す。コンピューティングノード501aの後、BYP=1(すなわち、BYP_NEXTの前の値)およびBYP_NEXT=0であり、コンピューティングノード501bについてはバイパスが許容されるが、501cについては許容されないことを示す。すなわち、バイパス信号に関連するパケットはコンピューティングノード501cでターンし、したがって501cはバイパスされるべきではない。むしろ、バイパス信号は、ターンしてコンピューティングノード501dへと通過することができる。いくつかの実施形態では、パケットデータは、パケットヘッダの1コンピューティングノード(例えば、1ホップ)後ろに続くことができる。バイパス信号は、パケットヘッダと共にルーティングされ得、パケットデータと共に使用するために状態要素によって記憶され得る。
【0049】
図6は、いくつかの実施形態によるパケットルーティングの一例を示す図である。図6に示すように、コンピューティングノードを介してパケットのヘッダ部およびデータ部の両方をルーティングするために、制御信号が生成および使用され得る。いくつかの実施形態では、図6に示すような構成を使用して、パケットのヘッダおよびデータ部を別々にルーティングすることができる。例えば、ヘッダを1サイクルでルーティングすることができ、制御信号を段階的に展開して、ヘッダの1サイクル後にデータをルーティングすることができる。制御信号はバイパス信号とすることができる。バイパス信号は、1つのサイクルでヘッダをルーティングするために使用され得、パケットデータをルーティングするためにバイパス信号が次のサイクルで使用されることができるように、状態要素によって記憶され得る。
【0050】
図6に示すように、制御ロジック602を使用して、ヘッダ回路604を使用してヘッダをステアリングすることができる。制御ロジック602は、データ回路606を使用してデータをルーティングするために、次のサイクル(例えば、ヘッダがステアリングされた直後のサイクル)で記憶および使用されるバイパス信号および/または1つまたは複数の制御信号を生成することができる。例えば、状態要素605は、バイパス信号および/または他の制御信号を記憶することができる。いくつかの実施形態では、ヘッダ回路604および/またはデータ回路606は、制御信号、パケットビット、および/またはパケットをステアリングするための他の情報を格納するための1つまたは複数のバッファを含むことができる。
【0051】
いくつかの実施形態では、システムは、他のトラフィックがコンピューティングノードを出ることをさらに可能にしながら、特定のコンピューティングノードをバイパスする資格があるパケットに優先度を与えることができるバイパス制御メカニズムを有することができる。いくつかの実施形態では、パケットがコンピューティングノードをバイパスするかどうかは、パケットがバイパスする資格があるかどうか(例えば、BYPがyesであるかどうか)以上のものに依存し得る。例えば、バイパスは、待機しているパケットの数(例えば、前のサイクルでバイパスまたは終了しなかった、到着パケットの前のパケット、コンピューティングノードでターンするのを待っているパケットなど)、キューが満杯またはほぼ満杯であるかどうかなどに依存し得る。例えば、パケットがルーティングする宛先または中間キューが満杯またはほぼ満杯である場合、パケットを高速化する利点はほとんどまたはまったくない可能性があり、代わりに他のパケットをルーティングするためにリソースが使用される可能性がある。
【0052】
いくつかの実施形態では、パケットは、より小さい(例えば、約20ビットの)ヘッダ部およびより大きい(例えば、約200ビット、約400ビット、約800ビットなどの)データ部を有することができる。ヘッダ部は、ネットワークを通るパケットの経路を制御するために使用され得る。いくつかの実施形態では、ヘッダは、本明細書に記載のメカニズムを使用してネットワークを介して進むことができ、パケットの残り(例えば、データ)は、ヘッダの1サイクル後に続くことができる。いくつかの実施形態では、ヘッダを制御するのと同じ信号をフリップフロップなどの状態要素に記憶することができ、次のサイクルでは、パケットの残りを制御するために展開することができる。
【0053】
いくつかの実施形態では、パケットは他のパケットと比較して大きくすることができる。例えば、パケットは、比較的大量のデータを搬送するデータパケットとすることができる。いくつかの実施形態では、処理ルーチンは、パケットを複数のより小さいパケット、例えば2パケット、3パケット、4パケットなどに分割することができる。処理ルーチンは、ヘッダを複製し、ヘッダの各コピーとともにデータの一部(例えば、2パケットでは半分、4パケットでは1/4など)を送信することができる。いくつかの実施形態では、処理ルーチンは、ヘッダがロックステップにおいてシステムを通って移動するように構成され得、したがって、データへの展開は常に単一のクロックサイクル内で発生することもできる。いくつかの実施形態では、処理ルーチンは、データのすべてのコピーがロックステップのままであることを検証するためにパリティチェックを実行することができる。
【0054】
図7は、いくつかの実施形態によるパリティチェックの例示的な図である。パケットは、各々がヘッダ708A~708Dを有する4つのサブパケット706A~706Dに分割され得る。ヘッダ708A~708Dの各々の少なくとも一部は、互いに同一であり得る。4つのサブパケット706A~706Dはそれぞれ、より大きなパケットのデータのサブセットを搬送することができる。パケットは、第1のコンピューティングノード702から第2のコンピューティングノード704に移動することができる。4つのパケットが第2のコンピューティングノード704に到達した後、比較器714Bにおいてヘッダ712A~721Dをチェックするようにシステムを構成することができる。いくつかの実施形態では、ヘッダ708A~708Cは、前のコンピューティングノードから到着した後、および/またはコンピューティングノード702を離れてコンピューティングノード704に移動する前に、比較器714Aにおいてチェックされ得る。伝送がエラーなしで行われた場合、サブパケット710A~710Dの少なくとも一部はサブパケット706A~706Dと同一でなければならず、ヘッダ712A~712Dの少なくとも一部はヘッダ708A~708Dと同一でなければならない。さらに、ヘッダ712A~712Dの各々の少なくとも一部は、すべて互いに同一でなければならない。伝送のために大きなパケットを分割することに加えて、いくつかの実施形態では、さらに小さなパケットを分割することができ、チェック714Bは、パケットがネットワークを介して正しく搬送されていることを保証するのに役立つ完全性チェックとして機能することができる。
【0055】
ヘッダ712A~712Dに予期しない違いがある場合、これは、第1のコンピューティングノード702から第2のコンピューティングノード704へのパケットの伝送における問題を示し得る。いくつかの実施形態では、システムは、エラー信号を提供し、再起動し、および/または他の動作を行うように構成され得る。いくつかの実施形態では、ヘッダ712A~712Dに予期しない不一致がある場合、システムは、1つまたは複数の動作パラメータを調整するように構成され得る。例えば、システムは、動作周波数を低減し、動作電圧を増加させることなどができる。
【0056】
いくつかの実施形態では、パケットがターンするとき、パケットをターンさせるのに1クロックサイクル余分にかかる可能性がある。これは、例えば、ネットワークの水平部分およびネットワークの垂直部分のフリップフロップおよびロジックがダイ上の同じ(または隣接する)物理的位置に存在しないことが多いために起こり得る。したがって、いくつかの実施形態では、パケットをターンさせることは2クロックサイクルを要する可能性があるが、パケットは単一のクロックサイクルでコンピューティングノードを通って真っ直ぐにルーティングされ得る。したがって、送信元から宛先へパケットをルーティングするためにかかるターン数を最小限に抑えることが有利であり得る。
【0057】
本明細書のシステムおよび方法は、ニューラルネットワーク処理、ニューラルネットワーク訓練、機械学習、人工知能などのような、高性能コンピューティングおよび/または計算集約型用途のための様々な処理システムで使用され得る。いくつかの用途では、本明細書に記載のシステムおよび方法は、車両(例えば、自動車)、他の自律型車両機能、および/または先進運転支援システム(ADAS)機能のためのオートパイロットシステムのデータを生成する際に使用することができる。
【0058】
前述の明細書では、システムおよびプロセスは、その特定の実施形態を参照して説明されている。しかしながら、本明細書に開示された実施形態のより広い精神および範囲から逸脱することなく、様々な修正および変更を行うことができることは明らかであろう。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。
【0059】
実際、システムおよびプロセスは、特定の実施形態および例の文脈で開示されているが、システムおよびプロセスの様々な実施形態は、具体的に開示された実施形態を超えて、他の代替の実施形態および/またはシステムおよびプロセスの使用ならびにその明白な修正および等価物に及ぶことが当業者によって理解されよう。さらに、システムおよびプロセスの実施形態のいくつかの変形例が詳細に示され説明されているが、本開示の範囲内にある他の修正は、本開示に基づいて当業者には容易に明らかになるであろう。また、実施形態の特定の特徴および態様の様々な組み合わせまたは部分的な組み合わせが行われてもよく、依然として本開示の範囲内に含まれることが考えられる。開示されたシステムおよびプロセスの実施形態の様々な態様を形成するために、開示された実施形態の様々な特徴および態様を互いに組み合わせるか、または置き換えることができることを理解されたい。本明細書に開示される方法は、列挙された順序で実行される必要はない。したがって、本明細書に開示されるシステムおよびプロセスの範囲は、上述の特定の実施形態によって限定されるべきではないことが意図される。
【0060】
本開示のシステムおよび方法は各々、いくつかの革新的な態様を有し、そのうちの1つだけが本明細書に開示された望ましい属性に対して単独で担うまたは必要とされるものではないことが理解されよう。上述した様々な特徴およびプロセスは、互いに独立して使用されてもよく、または様々な方法で組み合わされてもよい。すべての可能な組み合わせおよび部分的な組み合わせは、本開示の範囲内に入ることが意図されている。
【0061】
別個の実施形態の文脈で本明細書に記載される特定の特徴はまた、単一の実施形態において組み合わせて実施されてもよい。逆に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切な部分的な組み合わせで実装されてもよい。さらに、特徴は、特定の組み合わせで作用するものとして上述され、最初にそのように特許請求されてもよいが、特許請求される組み合わせからの1つまたは複数の特徴は、場合によっては、組み合わせから削除されてもよく、特許請求される組み合わせは、部分的な組み合わせまたは部分的な組み合わせの変形に向けられてもよい。単一の特徴または特徴のグループは、あらゆる実施形態に必要または不可欠ではない。
【0062】
本明細書で使用される条件付き言語、とりわけ、「できる(can)」、「できる(could)」、「してもよい(might)」、「してもよい(may)」、「例えば(for example)」などは、特に明記しない限り、または使用される文脈内で他の意味で理解されない限り、一般に、特定の実施形態が特定の特徴、要素および/またはステップを含むが、他の実施形態は含まないことを伝えることを意図していることも理解されよう。したがって、そのような条件付き言語は、一般に、特徴、要素および/またはステップが1つまたは複数の実施形態に何らかの形で必要とされること、または1つまたは複数の実施形態が、作成者の入力またはプロンプトの有無にかかわらず、これらの特徴、要素および/またはステップが任意の特定の実施形態に含まれるか、または実行されるべきかを決定するための論理を必然的に含むことを意味することを意図するものではない。「備える(comprising)」、「含む(including)」、「有する(having)」などの用語は同義語であり、包括的に、オープンエンド方式で使用され、追加の要素、特徴、動作、操作などを排除しない。さらに、「または(or)」という用語は、包括的な意味で(排他的な意味ではなく)使用され、例えば、要素のリストを接続するために使用される場合、「または(or)」という用語は、リスト内の要素の1つ、いくつか、またはすべてを意味する。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」、「an」、および「the」は、特に指定されない限り、「1つまたは複数(one or more)」または「少なくとも1つ(at least one)」を意味すると解釈されるべきである。同様に、操作は特定の順序で図面に示されているが、望ましい結果を達成するために、そのような操作は、示されている特定の順序で、または連続した順序で実行される必要はなく、または示されているすべての操作が実行されることが認識されるべきである。さらに、図面は、フローチャートの形式で1つまたは複数の例示的なプロセスを概略的に示すことができる。しかしながら、図示されていない他の操作は、概略的に示されている例示的な方法およびプロセスに組み込まれてもよい。例えば、1つまたは複数の追加の操作を、図示の操作のいずれかの前、後、同時に、またはその間に実行することができる。さらに、操作は、他の実施形態では再配置されても並べ替えられてもよい。特定の状況では、マルチタスク処理および並列処理が有利であり得る。さらに、上述の実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に一緒に統合されてもよく、または複数のソフトウェア製品にパッケージ化されてもよいことを理解されたい。さらに、他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載された動作は、異なる順序で実行されてもよく、依然として望ましい結果を達成することができる。
【0063】
さらに、本明細書に記載の方法および装置は、様々な修正および代替形態の影響を受けやすい可能性があるが、その具体例は図面に示されており、本明細書で詳細に説明される。しかしながら、実施形態は、開示された特定の形態または方法に限定されるべきではなく、逆に、実施形態は、記載された様々な実施形態および添付の特許請求の範囲の精神および範囲内に入るすべての修正、等価物、および代替物を包含するべきであることを理解されたい。さらに、実装または実施形態に関連する、任意の特定の特徴、態様、方法、特性、性質、品質、属性、要素などの本明細書の開示は、本明細書に記載の他のすべての実装または実施形態で使用することができる。本明細書に開示される方法は、列挙された順序で実行される必要はない。本明細書に開示される方法は、開業医によって行われる特定の動作を含むことができる。しかしながら、方法は、明示的または暗示的に、それらの動作の任意の第三者命令を含むこともできる。本明細書に開示される範囲はまた、任意のおよびすべての重複、部分範囲、およびそれらの組み合わせを包含する。「まで(up to)」、「少なくとも(at least)」、「より大きい(greater than)」、「未満(less than)」、「間(between)」などの言語は、列挙された数字を含む。「約(about)」または「およそ(approximately)」などの用語が先行する数字は、列挙された数字を含み、状況に基づいて(例えば、例えば、±5%、±10%、±15%などの状況下で合理的に可能な限り正確に)解釈されるべきである。例えば、「約3.5mm」は、「3.5mm」を含む。「実質的に(substantially)」などの用語が先行する語句は、列挙された語句を含み、状況に基づいて(例えば、状況下で合理的に可能な限り)解釈されるべきである。例えば、「実質的に一定(substantially constant)」は、「一定(constant)」を含む。特に明記しない限り、すべての測定は、温度および圧力を含む標準条件で行われる。
【0064】
本明細書で使用される場合、項目のリストに関して「のうちの少なくとも1つ」を指す語句は、単一の部材を含む、それらの項目の任意の組み合わせを指す。例として、「A、B、またはCのうちの少なくとも1つ」は、次のもの、すなわち、A、B、C、AおよびB、AおよびC、BおよびC、ならびにA、BおよびCを包含することが意図される。「X、Y、およびZのうちの少なくとも1つ」などの連言語は、特に明記しない限り、アイテム、用語などがX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために一般に使用される文脈で別途理解される。したがって、そのような連言語は、一般に、特定の実施形態がそれぞれ存在するためにXのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つを必要とすることを意味することを意図していない。本明細書で提供される見出しは、存在する場合、便宜上のものに過ぎず、本明細書に開示される装置および方法の範囲または意味に必ずしも影響しない。
【0065】
したがって、特許請求の範囲は、本明細書に示される実施形態に限定されることを意図するものではなく、本明細書に開示される本開示、原理、および新規な特徴と一致する最も広い範囲が与えられるべきである。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】