TW202328987A - 多晶片光電網路 - Google Patents

多晶片光電網路 Download PDF

Info

Publication number
TW202328987A
TW202328987A TW111122925A TW111122925A TW202328987A TW 202328987 A TW202328987 A TW 202328987A TW 111122925 A TW111122925 A TW 111122925A TW 111122925 A TW111122925 A TW 111122925A TW 202328987 A TW202328987 A TW 202328987A
Authority
TW
Taiwan
Prior art keywords
photonic
circuit
optical
processing element
channel
Prior art date
Application number
TW111122925A
Other languages
English (en)
Inventor
飛利浦 溫特伯頓
馬丁努斯 柏斯
Original Assignee
美商天空人工智能股份有限公司
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 美商天空人工智能股份有限公司 filed Critical 美商天空人工智能股份有限公司
Publication of TW202328987A publication Critical patent/TW202328987A/zh

Links

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/10Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type
    • G02B6/12Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type of the integrated circuit kind
    • G02B6/12004Combinations of two or more optical elements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/10Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type
    • G02B6/12Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type of the integrated circuit kind
    • G02B6/12002Three-dimensional structures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/42Coupling light guides with opto-electronic elements
    • G02B6/43Arrangements comprising a plurality of opto-electronic elements and associated optical interconnections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
    • G06N3/0675Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/26Optical coupling means
    • G02B6/30Optical coupling means for use between fibre and thin-film device
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/26Optical coupling means
    • G02B6/34Optical coupling means utilising prism or grating

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Optics & Photonics (AREA)
  • Mathematical Optimization (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Optical Communication System (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Multi Processors (AREA)

Abstract

各種實施例提供包含多個電路封裝之運算系統,每一電路封裝包括一電子積體電路,其具有多個處理元件及將該等處理元件連接至一光電網路中之晶片內雙向光子通道,其中晶片間雙向光子通道跨越該多個電路封裝之該等光電網路將該等處理元件連接至一較大光電網路中。

Description

多晶片光電網路
諸如機器學習(ML)及深度學習(DL)等人工智慧(AI)運算之需求之增長速度超過了可用處理能力之增長速度。此不斷上升之需求及AI模型日益生長之複雜性推動了將諸多晶片連接至一系統中之需要,其中晶片可以低延時及高速度在彼此之間發送資料。在一目前已知方法中,使用串列化器/解串列化器(SerDes)區塊來進行晶片之間的連接,該串列化器/解串列化器區塊將並行訊息轉換成可經由晶片之間的電互連或光纖發送之串列位元串流。在此類系統中,在晶片上通信與晶片外通信之間進行一區分。晶片上之運算元件經由金屬互連傳達封包,而送往另一晶片之訊息(例如,封包)經由晶片級互連移動至SerDes之介面之位點,其中資料被轉換成一位元串流並被傳輸。在接收方向上,位元到達一光纖或電互連上,被組編成字詞,且然後經由晶片內部之金屬互連傳輸至目的地處理器或記憶體。將晶片內之資料移動至SerDes且接著自SerDes移動至系統中之其他晶片兩者皆消耗了顯著能量。此外,ML模型之目前已知之硬體實施方案在ML模型之執行期間廣泛使用之乘法累加(MAC)運算時係相對低效的。
相關申請案
本申請案主張於2021年6月18日提出申請之美國臨時申請案第63/212,353號之優先權權益,該美國臨時申請案以其全文引用方式併入本文中。
以下闡述含有與本發明中之實施方案有關之特定資訊。本申請案中之圖式及其隨附詳細闡述僅僅針對例示性實施方案。除非另有陳述,否則圖式當中之類似或對應元件可用類似或對應元件符號表示。而且,本申請案中之圖式及圖解說明一般而言並不按比例繪製且並不意欲對應於實際相關尺寸。
本發明提供由一或多個電路封裝(例如,SIP)實施之運算系統,其達成經降低功率消耗及/或經提高處理速度。根據各種實施例,藉由最大化每一電路封裝中之資料局部性並在需要資料移動時減少能量損耗來減少特定而言資料移動所消耗之功率。繼而可藉由在電子域中短距離地移動資料來實現功率高效之資料移動,同時在電子域中之阻力及/或資料可在電子域中移動之速度導致使用現有電子技術無法克服之頻寬限制的情況下,利用光子通道來進行資料移動。因此,在某些實施例中,每一電路封裝包含一電子積體電路(EIC),該電子積體電路包括藉由雙向光子通道(例如,在封裝之一單獨層或晶片中之一PIC中實施)連接成一混合光電(electronic-photonic)(或光電(electro-photonic))晶片上網路(NoC)之多個電路區塊(以下稱為「處理元件」)。多個此類NoC可藉由各別電路封裝之間的晶片間雙向光子通道(例如,由光纖實施)連接成一更大光電網路,以在不會導致顯著功率損耗的情況下將運算系統按比例縮放至任意大小。進一步所揭示之實施例提供用於MAC操作之功率高效效能之一新穎電路設計(本文中亦稱為一「點積引擎」)以及導致額外功率節省之一新穎時序方案。
雖然所闡述運算系統及其各種新穎態樣一般而言適用於一寬泛範圍之處理任務,但該等所闡述運算系統及其各種新穎態樣尤其適合於實施ML模型,特定而言ANN。當應用於ANN時,如本文中所闡述之一電路封裝及經互連電路封裝之系統亦分別稱為一「ML處理器」及「ML加速器」。神經網路一般而言包含一或多層人工神經元,該等人工神經元依據一組輸入啟動之加權總和(對應於MAC運算)來運算神經元輸出啟動。對於一給定神經網路,節點與層之間的啟動流係固定的。此外,一旦神經網路之訓練完成,則加權加總中之神經元權重以及與運算啟動相關之任何其他參數同樣係固定的。因此,如本文中所闡述之一NoC自身有助於藉由將神經節點指派給處理元件、將與節點相關聯之固定權重預載入至各別處理元件之記憶體中以及基於預定啟動流來組態處理元件之間的資料路由來實施一神經網路。使用所揭示點積引擎可高效地執行加權加總,歸因於其對ANN之適用性,本文中亦稱為一「數位神經網路(DNN)」。
依據對實例性實施例之以下闡述,所揭示運算系統及基礎概念之各種有益態樣及特徵之前述高階概述將變得更加清楚。
圖1A係根據某些實施例的示意性地圖解說明一實例性電路封裝SIP 100之組件之一圖式。SIP 100可例如充當一ML處理器。SIP 100包含一EIC 101 (諸如(例如)一數位及混合信號特殊應用積體電路(ASIC))及一PIC 102。EIC 101及PIC 102形成於SIP之不同層中(本文中分別為「電子電路層」及「光子電路層」),一個層堆疊在另一層上方,如下文參考圖1C進一步所圖解說明。一或多個PIC 102接收來自一或多個雷射光源之光,該等雷射光源可整合至PIC 102自身中,或者在SIP 100內或外部與PIC分開實施,並經由合適光學耦合器耦合至PIC 102中。光學耦合器及雷射源自圖1A省略但展示於例如圖1B、圖1C及圖5A至圖6B中。
EIC 101包含多個處理元件104,該等處理元件經由利用PIC 102中之光學波導實施之雙向光子通道彼此通信。處理元件104可(儘管其無需在所有實施例中)係在設計上等同(或至少實質上類似)之電子電路,且如所展示,可形成以一矩形網格配置之相同大小之「磚塊(tile)」。(在下文中,同義使用字詞「處理元件」及「磚塊」。)  在所繪示實例中,EIC 101具有16個此類處理元件或磚塊106,其配置在一個4×4陣列中,但磚塊之數目及配置一般而言可發生變化。磚塊之形狀及將其配置之網格皆不必是矩形的;舉例而言,傾斜四邊形、三角形或六邊形形狀及網格原則上亦係可能的。此外,儘管拼鋪可提供對可用晶片上有效面積之高效使用,但無需在所有實施例中大小相等且規則地配置處理元件104。
EIC 101中之每一處理元件104包含充當處理引擎之一或多個電路區塊。舉例而言,在圖1A及圖2中所展示之實施方案中,每一處理元件104包含一點積引擎或DNN 106及一張量引擎108。DNN 106可以經降低每MAC能量執行快速MAC運算,以執行一迴旋函數或一點積函數,例如,如在神經網路中所常規使用。下文參考圖4來提供一實例性DNN 106之細節。張量引擎108可用於執行其他非MAC運算,例如,實施如應用於一神經網路中之加權總和之非線性啟動函數。下文參考圖3闡述一實例性張量引擎108。
如圖1A及圖2中進一步所展示,每一處理元件104包含一訊息路由器110。訊息路由器110與PIC 102中之光子通道介接,以促進處理元件104之間的資料流動。此外,處理元件104各自可具有例如包含一階靜態隨機存取記憶體(L1SRAM) 112及二階靜態隨機存取記憶體(L2SRAM) 114之一記憶體系統。L1SRAM 112係選用的,並且若被包含在內,則可充當每一處理元件104之高速暫存記憶體。L2SRAM 114可用作每一處理元件104之主要記憶體,且可儲存由DNN 106及張量引擎108 (諸如一機器學習模型之權重,在實體上緊密接近於DNN 106及張量引擎108)使用之某些固定運算元。L2SRAM 114亦可儲存在執行機器學習模型或其他運算中所使用之任何中間結果。
EIC 101可進一步包含選用元件,諸如一高速周邊組件互連(PCIE)介面122、一進階RISC機器(ARM)核心124、一影像處理器126及/或可支援動態隨機存取記憶體(DRAM)、非揮發性隨機存取記憶體(NVRAM)、靜態隨機存取記憶體(SRAM)或另一類型之記憶體之一外部記憶體控制器128。PCIE介面122一般而言使得能夠在EIC 101與一外部組件之間進行電互連。舉例而言,可經由PCIE介面122自諸如一DRAM之一外部組件接收儲存在L2SRAM中之權重。同樣地,ARM核心124可與SIP 100外部之一記憶體裝置介接,且可處理影像資料或執行其他運算任務。影像處理器126可處理自一記憶體裝置或另一處理器接收之影像,其中影像可源自一相機。記憶體控制器128可與可包含於SIP 100中之一高頻寬記憶體(HBM)通信,且繼而與SIP 100外部之一DRAM介接。在某些實例中,EIC 101包含用於不同類型之記憶體之多個記憶體控制器。
圖1B係根據某些實施例的示意性地圖解說明圖1A之SIP 100內之一實例性光電網路(或NoC) 130之一圖式。每一處理元件104且更特定而言每一處理元件104中之訊息路由器110充當網路130中之一節點131。經由雙向光子通道建立此等節點131之間的連接,每一通道在一個端處與一個處理元件之訊息路由器介接,且在另一端處與另一處理元件之訊息路由器介接。(下文將參考圖5A及圖5B進一步闡述光子通道之實體實施方案以及通道與訊息路由器之間的介面。)  不共用一雙向光子通道的直接連接其之任何兩個處理元件104之間的訊息傳遞可藉由沿著經由光電網路130內之一或多個中間節點131之一路徑之多個「跳躍」來實現;自一個節點至下一節點之每一此種跳躍皆涉及將訊息自電子域轉換至光子域中且接著往回轉換至電子域中。如此,網路130係一混合光電網路。
在圖1B中,規則網格中之每一對緊密毗鄰之處理元件(或磚塊) 104藉由一光子通道進行連接,從而產生光電網路130之一矩形網狀拓撲。然而,例如,由於省略若干對毗鄰處理元件之間的連接及/或在非毗鄰處理元件之間添加直接連接而導致之其他網路拓撲亦係可能的。此外,即使在一單個EIC 101中在兩個維度上對處理元件104進行實體配置,光子通道亦可被共同組態以建立拓撲三維光電網路。
如圖1B中進一步所展示,除了將處理元件104互連以外,PIC 102中之光子通道亦可將處理元件104 (例如,沿著經拼鋪配置之周邊)連接至EIC 101之其他元件,諸如連接至PCIE介面122、ARM核心124、影像處理器126及/或記憶體控制器128。另一選擇係,EIC之某些電子元件可進行電互連。舉例而言,PCIE介面122可電連接至光電NoC內之處理元件104中之一者,該PCIE介面122可充當與所有其他處理元件104通信之入口點。根據本文中所闡述之各種實施例,採用了電信號路由及光子信號路由兩者。可以將藉由下文論述變得顯而易見之一方式及原因在電(或電子)路徑與光子路徑之間分配信號路由任務。
PIC 102亦可包含用於例如經由光纖進行晶片外光學連接之一或多個光學耦合結構。可藉由數種方式進行光纖連接;用於光纖連接之實例性光學耦合結構包含位於光柵耦合器或邊緣耦合器之上的光纖附接單元(FAU)。圖1B展示兩個FAU 132;一個FAU可用於將光學功率自一外部雷射源供應給PIC 102,以驅動PIC 102中之光子,而另一FAU可促進至另一SIP中之另一光電網路之晶片至晶片互連,用於傳輸及接收通信。雖然圖1B中展示了兩個FAU 132,但在不同實例中可使用其他數目之FAU。
圖1C係根據某些實施例的圖解說明一側視圖中圖1A及圖1B之SIP 100之一實例性結構性實施方案之一圖式。在此實例中,EIC (例如,ASIC) 101及PIC 102形成於單獨半導體晶片中(通常矽晶片,儘管可設想使用其他半導體材料)。PIC 102直接安置在基板140上,展示為用於隨後安裝至一印刷電路板(PCB)之焊料凸塊。將PIC 102連接至光纖133之EIC 101及FAU 132安置在PIC 102之頂部上並光學地連接至PIC 102。視情況,如所展示,SIP 100可進一步包含放置在PIC 102的毗鄰於EIC 101之頂部上之一記憶體晶片142。
如熟習此項技術者將理解,SIP 100之所繪示結構僅僅係用以裝配及封裝各種組件之數種可能方式中之一種。在替代實施例中,EIC 101可例如安置在基板上,其中PIC 102放置在EIC 101之頂部上。原則上,作為將電子電路層及光子電路層實施為單獨晶片之一替代方案,亦有可能在一單個半導體晶片之不同層中形成EIC 101及PIC 102。此外,光子電路層可在多個子層中具有多個PIC,例如,以減少波導交叉。而且,可將圖1C中所繪示之結構修改為包含連接至一單個PIC 102之多個EIC 101,且經由PIC 102中之光子通道彼此連接。
EIC 101及PIC 102可使用標凖晶圓製作製程來製造,包含例如光微影圖案化、蝕刻、離子植入等。此外,在某些實施例中,使用了異質材料平臺及整合程序。舉例而言,可使用III-V族半導體組件來實施各種主動光子組件,諸如光子通道中所使用之雷射光源及/或光學調變器及光電偵測器。
可在SIP 100中實施或外部地實施雷射光源。當外部地實施時,可例如使用如圖1C中所展示之一FAU 132下面之PIC中之一光柵耦合器或者另一選擇係使用一邊緣耦合器來光學地進行至SIP 100之一連接。為了在SIP 100中實施雷射,一個選項係使用含有可與PIC 102共同封裝及邊緣耦合之數個雷射之一中介層。另一選擇係,可使用異質或同質整合將雷射直接整合至PIC 102中。同質整合允許直接在其中形成PIC 102之波導之矽基板中實施雷射,並允許諸如(例如)磷化銦(InP)之不同材料之雷射以及諸如量子點雷射之架構。PIC 102上雷射之異質裝配允許III-V族半導體或其他材料精確附接至PIC 102上並光學地耦合至PIC 102上所實施之一波導。
可對各自包含其自身之光電網路130之數個SIP 100進行互連以產生提供一更大光電網路之一單個系統。舉例而言,可對被組態為ML處理器之多個SIP進行互連以形成一更大ML加速器。數個SIP或ML處理器內之光子通道連同光學連接、雷射光源、被動光學組件及PCB上之外部光纖一起形成多SIP系統或多ML處理器加速器之光子網狀架構,該等光學連接、雷射光源、被動光學組件及外部光纖可與其他光子元件一起用於各種組合及組態中。
圖2A係根據某些實施例的圖解說明包含圖1A及圖1B之SIP 100之一訊息路由器110之一實例性電子處理元件104之一圖式。圖2A特定而言提供了關於訊息路由器110及其與PIC 102之一雙向光子通道介接之更多細節。每一雙向光子通道包含每一方向上之單向光子鏈路,每一單向鏈路使用PIC 102中之一光學波導來實施。
在一項實施方案中,含有封包資料之一訊息經由PIC 102之一光子通道到達,並在PIC 102與路由器110之間的光學轉電(OE)介面處被接收。OE介面可例如由PIC 102中之一光電偵測器(例如,光電二極體)結合路由器110中之相關電子電路系統200實施以將光學信號轉換成一電子信號,該相關電子電路系統可包含例如一跨阻抗放大器(TIA)、用於正規化信號位準之選用增益控制以及用於提取位元串流之裁剪器。然後,該訊息可以電子形式緩衝於諸如「先進先出」(FIFO)暫存器202之一暫存器中。
電子訊息路由器110包含檢查訊息報頭中(或者,在替代實施例中,訊息有效負載中)所含有之一位址並判定應將訊息路由至哪個埠及哪個目的地之電路系統。舉例而言,若目的地係光電網路內之另一處理元件或磚塊,則可經由路由器110與PIC 102之間的一電轉光學(EO)介面將訊息路由至彼目的地磚塊,其中將訊息往回轉換至光學域中,以便經由另一光子通道進行傳輸。舉例而言,可使用PIC 102內之一光學調變器結合路由器中之相關聯驅動電路系統(本文中亦稱為「調變器驅動器」) 204來實施EO介面;適用調變器技術之非限制性實例包含電子吸收調變器(EAM)、馬赫-任德(Mach-Zehnder)調變器、環式調變器及量子侷限史塔克(Stark)效應電子吸收調變器(QCCE EAM)。另一方面,若電子訊息路由器110判定訊息之目的地係其中駐留有路由器110自身之磚塊記憶體(例如,L1SRAM 112或L2SRAM 114)、DNN 106或張量引擎108,則將訊息路由至局部埠206。
訊息路由器110與一給定雙向光子通道之鏈路(在兩個方向上)之間的OE介面之EIC側部分200及EO介面之EIC側部分204在本文中統稱為路由器110之一「光子通道介面」,諸如與PIC側光電二極體相關聯之TIA及其他電路系統(統稱為200)以及與PIC側光學調變器相關聯之驅動器電路系統。雖然圖2A僅圖解說明一個光子通道介面,但每一路由器110一般而言包含多個此類介面,以耦合至多個各別光子通道。
圖2B係根據某些實施例的圖解說明一光電網路(諸如,例如圖1B中所展示之網路130)中之訊息路由器110及光子通道210之一實例性組態之一圖式。在此實例中,路由器110 (根據圖1B,如路由器110係其之一部分之處理元件或磚塊104)配置在一個二維四邊形(更具體而言,矩形)陣列或網格中,並且在任一維度上(例如,在圖2B中水平地或垂直地)彼此緊挨之任何兩個磚塊之路由器110藉由一雙向通道210進行連接。因此,陣列之內部中之每一路由器110包含至四個各別雙向光子通道210之四個光子通道介面212,一者用於可稱為「北」、「東」、「南」及「西」之四個方向中之每一者。沿著陣列之周邊,路由器110僅需具有兩個(在拐角處)或三個(在拐角之間的邊緣處)光子通道介面212。然而,如所展示,沿著周邊之路由器110亦可視情況配備有四個光子通道介面,例如,作為對所有磚塊104使用相同電路設計之一結果,此簡化了製造。而且,在某些實施例中,沿著陣列之周邊之光子通道介面214可用於建立至其他SIP之晶片間連接。
電子訊息路由器110可用於使用各種定址方案將訊息路由至目的地位址。不管定址方案如何,與經由EIC 101上之電互連相反,可經由PIC 102中之光子通道(在沿著路徑之每一路由器處具有光學轉電轉換與電轉光學轉換)主要或專門經由光電網路將訊息自磚塊傳遞至磚塊。在一項實施方案中,一帶符號5位元封包資料(例如,自訊息之標頭或者另一選擇係自訊息之有效負載提取)提供了在水平方向(東/西)上至一目的地磚塊之一相對位置(或距離),而另一帶符號5位元封包資料提供了在垂直方向(南/西)上至目的地磚塊之相對位置(或距離)。當然,亦可使用不同大小(位元數目)之封包資料,此取決於例如磚塊之數目及位址空間之所得大小。隨著訊息橫穿不同磚塊中之路由器110,水平座標或垂直座標中之任一者對於每一跳躍遞減,此取決於沿著哪個維度傳遞訊息。當將方向提供給目的地磚塊之兩個5位元封包資料皆變為零時,訊息已到達目的地磚塊處並被轉發至彼磚塊中之路由器之局部埠206以進行處理。在某些情形中,該等訊息用於在磚塊之間攜載讀取及寫入記憶體異動。
雖然在磚塊之間攜載資料之路徑係例如由PIC 102上之光學波導實施之光子路徑,但可以電子形式提供路徑設置封包資料,以供訊息路由器110使用。而且,即使對於同一磚塊之訊息路由,路徑設置封包資料亦可用於判定可係光子路徑或電路徑中之任一者之路徑。因此,各種實施例採用了一混合方法,其中在一混合光電晶片上網路(EP-NoC)架構中使用電子元件及光子元件兩者來判定目的地、設置遞送路徑以及將訊息遞送至目的地。
具有如上文所闡述之光電網路(諸如神經網路)之SIP自身有助於ML模型之高效執行。一神經網路包含一般而言組織成包含一輸入層、一或多個隱藏層及一輸出層之層之複數個節點(本文中亦稱為一「神經節點」,以將其與光電網路之節點區分開)。在隱藏層及輸出層中,每一神經節點係一運算單元,該運算單元具有來自另一節點(例如,前一層)之一組權重及一輸入啟動作為輸入,且實施根據ML模型以一預定方式組合權重及啟動從而產生一輸出啟動之一傳遞函數。
資料以一判定方式在一ML模型之節點之間流動。此外,與節點相關聯之權重(其係模型之可調整參數)一般而言在模型訓練期間進行判定,且當經訓練模型對輸入進行操作以產生輸出時,在推斷計算期間保持固定。如本文中所闡述,當在一ML處理器或ML加速器上執行一ML模型時,此等特性允許藉由將ML模型經由神經節點至處理元件104之固定指派映射至光電網路上以及將相關聯預定權重預載入至處理元件或磚塊104之記憶體中來最小化資料移動。一般而言,當ML模型分佈在ML處理器100或ML加速器之多個磚塊104上時,每一磚塊104可執行多個神經節點、一個神經節點或者已被平行化並分佈在數個磚塊104之上的一神經節點之一部分。在某些實例中,ML模型之每一層由數個磚塊104實施,其中每一磚塊104實施一或多個神經節點。
在某些實施例中,在ML處理器100或ML加速器之一推斷操作之初始化期間,僅將權重載入至所指派磚塊104之記憶體(例如,L2SRAM 114)中一次,並且此後不將權重自磚塊移動至磚塊。可經由PCIE 122自ML處理器100外部之一裝置(例如,記憶體)載入權重。在一項實施方案中,PCIE 122經由最靠近PCIE 122之一磚塊104對ML處理器之光電網路130進行存取,且然後沿著經由光電網路之一(例如,預定)路徑將至其各別目的地磚塊104之每一權重自磚塊光子地傳遞至磚塊。在其他實施方案中,在ML處理器100之初始化期間,利用存在於磚塊104之間的EIC 101上之電子連接而非坐落於PIC 102上之光子通道將權重傳遞至每一目的地磚塊104。不管經由PCIE介面122提供之權重之傳遞是主要以光子方式還是電子方式完成,皆僅執行至每一L2SRAM 114中之傳遞及載入一次。如此,由於權重在每一磚塊104之L2SRAM 114中保持固定,因此節省了顯著功率。
一旦藉由將與神經節點相關聯之權重儲存至指派給神經節點之各別磚塊104之L2SRAM 114中來將ML模型預載入至ML處理器中,便可藉由在神經節點之間串流化啟動並使用儲存在L2SRAM 114中之權重對經串流化啟動執行運算來執行ML模型。將啟動串流輸入至分配給ML模型中之神經節點之所有磚塊104。此等磚塊104內之處理引擎(例如,DNN 106及張量引擎108)對輸入啟動及所預載入權重進行操作,以運算神經節點之輸出啟動。舉例而言,DNN 106可執行MAC運算,並且張量引擎108可實施對MAC運算之結果進行操作之非線性啟動函數,但每一磚塊104中之一或多個處理引擎之間的運算之其他分佈亦係可能的。然後,將在一磚塊104中為一給定神經節點產生之輸出啟動發送至磚塊104,該磚塊104實施ML模型中之下一(些)節點(例如,在神經網路之下一層內)作為其輸入啟動。在同一磚塊104中實施之神經節點之間流動之啟動經由彼磚塊之記憶體交換,而經由光子網狀架構發送在磚塊104之間移動之啟動。在每一神經節點由光電網路之一個各別磚塊104實施之實施例中,磚塊網路拓撲將緊密地鏡射ML模型(或ML圖形拓撲)。
隨著啟動經由光電網路自起源磚塊串流化至目的磚塊,例如根據在ML模型之初始化期間設置之一路徑,每一輸出啟動之目的地磚塊之位址一般由彼啟動之起源磚塊之電子訊息路由器110判定。該位址可作為封包資料提供為攜載輸出啟動作為有效負載之訊息之一部分。在一項實施方案中,位址係在訊息之標頭中,而在另一實施方案中,位址被編碼至訊息自身中(作為有效負載之一部分)。訊息中所含有之位址被沿著藉由光電網路之路徑之訊息路由器用來將輸出啟動路由至目的地磚塊。在某些實施例中,如上文所闡述,採用了一相對定址方案。
在典型ML模型中,權重之數目遠大於啟動之數目。對於當前ML工作負載,權重之數目與啟動之數目之比率通常在大約20比1至大約60比1之範圍內。因此,即使將啟動自一個磚塊串流化至另一磚塊,保持權重靜止亦節省了大量能量。此外,在某些有益實施例中,L2SRAM 114在實體上佈置成緊密接近於DNN 106及張量引擎108,此減小了權重在每一磚塊內局部地行進之互連距離,因此減小了與相關互連長度相關聯之電容,並減小了與此種互連電容相關聯之能量損耗。另外,依據上文闡述,顯而易見地,自一個磚塊中之起源節點串流化至另一磚塊中之目的地節點之啟動例如在相對較長距離內主要橫穿經過由PIC 102提供之光學路徑,而在同一磚塊中串流化之啟動例如在相對較短距離內使用由EIC 101提供之電路徑。以此方式,事實上消除了長距離資料移動對電互連之依賴,此顯著降低了與電互連電容相關聯之能量耗費。換言之,藉由將啟動自一個磚塊光子地串流化至另一磚塊,可達成顯著功率節省。總之,使用如本文中所闡述之ML處理器或ML加速器,資料移動被部分地最小化(在加權之情形中),且部分地依賴於經由光子連接之功率高效之磚塊至磚塊資料傳遞(在啟動之情形中)。除了提供功率節省之益處以外,使用光子網狀架構進行資料傳遞亦可減少延時並提供更高頻寬。
圖3係根據某些實施例的圖解說明如可用於如圖2A中所展示之一電子處理元件104內之一實例性張量引擎108之一圖式。每一張量引擎108可經指派以執行例如由充當ML處理器之SIP 100實施之一特定機器學習模型之推斷計算之一部分。ML處理器100之不同處理元件104中之張量引擎108可並行或依序執行機器學習任務。可在一或多個張量引擎108中執行ML處理器之ML運算,從而形成張量引擎之間的一資料流動。
在不背離本申請案之範疇的情況下,可使用張量引擎108之各種實施方案。在一項實例中,如圖3中所展示,張量引擎108包含一指令定序器300、一暫存器庫302、多工器304、Ra暫存器306、Rb暫存器308、算術邏輯單元(ALU) 310、加法器312及Rg暫存器314。張量引擎108使用指令定序器300以此項技術中已知之一方式執行暫存器寫入、累加及暫存器讀取操作。舉例而言,張量引擎108可將兩個值寫入至Ra暫存器306及Rb暫存器308,在ALU 310之輔助下對該兩個值進行累加,並將結果保存在Rg暫存器314中。此後,兩個以上值被寫入至Ra暫存器306及Rb暫存器308中,在ALU 310之輔助下被累加,自ALU 310被讀取,且被添加至Rg暫存器314中之先前內容並被寫入至Rg暫存器314中。此例程可再次重複例如多達32次以自張量引擎108之每一輸出暫存器產生一個32位元輸出。
在某些實施例中,張量引擎108係使用可經專門設計用於執行機器學習演算法之一指令集之一單指令多資料(SIMD)處理器。雖然可以電子方式或光子方式完成不同張量引擎108之間的資料移動,但在一較佳實施方案中,以光子方式執行不同處理元件104中之張量引擎108之間的資料移動,而以電子方式執行同一張量引擎108內之資料移動。張量引擎包含至訊息路由器110之局部埠206之一介面,此允許該張量引擎與PIC 102通信。
圖4係根據某些實施例的圖解說明如可用於如圖2A中所展示之一電子處理元件104內之一實例性DNN 106之一圖式。儘管針對SIP 100之DNN 106闡述了圖4之實例性DNN,但對於某些實施例,所圖解說明DNN可形成在其他環境中實施之硬體之一部分(例如,作為其他類型之處理器之一組件)。如本文中所使用,一DNN亦可稱為一神經運算引擎(NCE)或一點積引擎。取決於該等實施例,一DNN可由經組態以基於至少兩個向量來產生(例如,運算)一或多個點積(例如,點積值)之一硬體電路之一或多個部分實施。舉例而言,至少兩個向量可由一組權重值及運算元值(例如,啟動值)建構。
現參考圖4,展示了坐落於SIP (例如,ML處理器) 100之EIC 101中之DNN 106之一部分之一實施例。DNN 106本質上係乘法器與加法器之一組合樹,該組合樹在於任何操作期間皆不鎖存資料的情況下在硬體中運算一組權重與運算元(例如,來自前一節點之啟動)之點積。如此,DNN 106具有極少暫存器,且藉由專門僅進行某些預定例程而不執行暫存器傳遞操作及不鎖存資料來耗費顯著更少功率。在DNN 106中,自L2SRAM 114獲取經預載入權重,並且一DNN定序器400將權重(例如,權重值)及運算元(例如,運算元值)提供給組合樹之頂部。舉例而言,將權重W1、W2、W3及W4提供給樹之頂部,如圖4中所展示。亦將運算元(例如,來自前一節點之啟動) X1、X2、X3及X4提供給樹之頂部。
在某些實施例中,每一權重W1、W2、W3及W4以及每一運算元X1、X2、X3及X4由8個位元組成。權重W1、W2、W3及W4分別與運算元X1、X2、X3及X4相乘。每一運算之結果係一個16位元乘積。如圖4中所展示,將兩個16位元乘積相加以形成一個17位元總和。在下一層級處,將兩個17位元乘積相加以形成一個18位元總和,依此類推地進行其他層級加法。然後,將所計算點積添加至一個32位累加器中,使得可在使精度不損失的情況下累加一點積序列。可建構組合樹之一管線式實施方案,以在資料流動經過組合樹時對其進行重新計時。在某些實施例中,使用了七個管線級。如上文所陳述,DNN 106在點積計算期間節省了大量功率。為了進行比較,在使用7 nm之CMOS Fin-FET的情況下,由圖3中之張量引擎108執行之一單個點積計算可花費大約250毫微微-焦耳(250 fJ)之能量。相比而言,由圖4中之DNN 106執行之一單個點積計算可僅花費大約130毫微微-焦耳(130 fJ)之能量。
將關於圖12圖解說明及闡述DNN之更多有關各種實施例。
圖5A係根據某些實施例的圖解說明一側視圖中一光電網路之光子組件及電子組件之一實例性實施方案之一圖式。將EIC (例如ASIC) 101展示為坐落於PIC 102之上。指示了EIC 101內之多個磚塊(處理元件) 104A、104B、104C及104D連同使用下面PIC 102中之波導500AB、500BC、500CD實施之毗鄰對磚塊之間的光學鏈路一起。亦展示了與磚塊相關聯之EO介面組件及OE介面組件以及其間之光學鏈路。如所展示,EO介面組件包含分別坐落於EIC磚塊104A、104B、104C中之調變器驅動器502A、502B、502C連同直接坐落於各別調變器驅動器502A、502B、502C下方之PIC 102中之調變器(例如,EAM) 504A、504B、504C一起。OE介面組件包含分別坐落於EIC磚塊104B、104C、104D中之TIA 506B、506C、506D以及直接坐落於各別TIA 506 B、506C、506D下方之PIC 102中之光電偵測器(PD) 508B、508C、508D。光學波導500AB、500BC、500CD各自將與一個磚塊相關聯之一光學調變器504A、504B、504C和與一毗鄰磚塊相關聯之一光電偵測器508B、508C、508D相連接,藉此在PIC 102中提供光學鏈路以用於ML處理器100內各別對磚塊之間的晶片內通信。
避免EO介面及OE介面之PIC側組件與EIC側組件之間的橫向位移(例如,藉由將調變器驅動器直接放置在調變器上方,並且將TIA直接放置在光電偵測器上方)最小化了每一介面中組件之間的距離;在某些實施例中,將調變器與其相關聯驅動器之間以及光電偵測器與其相關聯TIA之間的距離最小化,使得電域與光學域之間的信號轉換速度被最大化,且反之亦然。通常,間距小於200 µm,儘管間距可取決於實施例之性質、OE介面組件及EO介面組件之組態、系統之需求及架構、系統之溫度及諸如此類而發生變化。在一項實施例中,緊密相關聯之PIC側及EIC側組件之放置對於PIC側組件具有有益熱性質。由於EIC側係一散熱片,其可朝向PIC側組件輻射熱,此又歸因於所添加熱而導致PIC側上組件之熱穩定性增加。最小化PIC側組件與EIC側組件之間的距離繼而最小化光學域與電域之間的信號轉換之功率消耗,此對於如本文中所闡述之一混合光電網路之上的資料移動之總功率效率係至關重要的。而且,在某些實例中,當EIC中之組件(諸如一調變器驅動器或其他功能性區塊)產生熱時,此係有益的,該等組件直接放置在PIC上之EAM上方或與EAM緊密相關聯。在此場景中,自EIC側輻射之熱可提高EAM之操作溫度,或者另外以一經增強方式促進熱穩定性,及/或使EAM更靠近於峰值效率或更靠近於一最佳操作範圍。
圖5A中亦展示了如可用於建立SIP (或ML處理器)100與其他裝置之間的光纖連接之光學耦合結構。可使用邊緣耦合件將一光纖耦合至PIC 102。另一選擇係,如圖5A中所繪示,光纖133可經由一FAU 132附接至PIC 102,並且光可使用形成於FAU 132正下方之PIC 102中之一光柵耦合器520在FAU 132與PIC 102之間進行耦合。光纖133可連接至一晶片外雷射光源,或者連接至另一SIP (ML處理器)的提供給PIC 102之光學輸入之FAU。經由光柵耦合器520接收之光然後可經由光學波導供應給PIC 102中之調變器506A、506B、506C。在圖5A之橫截面圖中,僅至EAM 506A之一波導522係可見的,但在圖5B之俯視圖中,可看到光柵耦合器520與所有EAM (包含EAM 506B及506C)之間的光學連接。
圖5B係根據某些實施例的圖解說明俯視圖中圖5A之實例性光電網路之一PIC 102之一圖式。EIC 101之磚塊相對於PIC 102之位置由虛線指示。對於每一對毗鄰磚塊(無論其是水平地毗鄰還是垂直地毗鄰),PIC 102提供各自包含一光學調變器(定義光子鏈路之輸入端)、一光電偵測器(定義光子鏈路之輸出端)以及將調變器直接連接至光電偵測器之一波導的兩個單向光子鏈路。舉例而言,波導500AB將與磚塊104A相關聯之調變器504A連接至與磚塊104B相關聯之光電偵測器508B。將任何給定對磚塊之間的兩個光子鏈路定向在相反方向上,並據此共同形成一雙向光子通道。注意,雖然在圖1B中僅展示每一方向上之一個單向光子鏈路,但一光子通道一般而言可包含每一方向上之多個鏈路(例如,一起形成接合群組)以增加跨越通道傳遞資料之頻寬。在一磚塊內(或者更具體而言,磚塊內之一路由器),至PIC中之某一雙向光子通道之一光子通道介面包含用於彼雙向通道之每一傳出光子鏈路之一光學驅動器(路由器在鏈路之輸入端處與其介接)以及用於雙向光子通道之每一傳入光子鏈路之一TIA (及相關聯電路系統)(路由器在鏈路之輸出端處與其介接)。
PIC 102自一雷射光源接收一光學載波信號。在某些實施例(未展示)中,光源整合在PIC中。在其他實施例中,光源在PIC外部實施並將光提供給PIC,例如經由邊緣耦合或者經由連接至PIC中之一FAU 132及一光柵耦合器之光纖。一或多個光學輸入波導將載波信號自FAU 132及光柵耦合器或者至PIC之任何其他輸入點導引至雙向光子通道之光學調變器,其中載波信號經調變以將各別訊息賦予至光學信號上以經由光子通道進行傳輸。在某些實施例中,如所展示,由一光學分裂器530在多個光學輸入波導之間劃分載波信號,例如,對於EIC中之每一列磚塊,指向北、東、西、南之光子鏈路各一個波導。沿著每一輸入波導,額外分裂器可連續地將光分支,以輸入至不同調變器。舉例而言,如所繪示,波導532將載波信號提供給磚塊104A中之分裂器534A,其中光在至彼磚塊之調變器504A之一光學路徑與導引光通過波導532之延續到達磚塊104B中之分裂器534B之另一光學路徑之間進行分裂。沿著一條光學路徑將載波光自磚塊104B中之分裂器534B提供給磚塊104B之調變器504B,並且沿著另一光學路徑經由波導532之又一延續將載波光提供給磚塊104C中之調變器504C。
如圖5A及圖5B中所展示,在一項實施方案中,藉由採用PIC 102中的放置在EIC 101上其各別調變器驅動器及TIA正下方之調變器(例如EAM)及光電偵測器,使用PIC 102中之光子通道來執行所有或大部分磚塊至磚塊之通信,例如自一第一磚塊之一第一節點至一第二磚塊之一第二節點之啟動之串流化。調變器及PD例如藉由PIC 102中之波導進行光學連接。因此,在一項實施方案中,所有或大部分磚塊至磚塊之通信並非在EIC 101內以電方式執行,而是使用由PIC 102提供之光子網狀架構以光學方式執行。
如上文所陳述,如本文中所闡述之多個SIP之光電網路可經由PIC上之光學耦合器以及不同SIP之光學耦合器之間的一光學傳輸媒體連接至一更大光電網路中。傳輸媒體可係諸如一多光纖終端推進式(MTP)帶狀光纖連接(長達20米)之一光纖。其他傳輸媒體亦係可能的,諸如積體光學波導(例如,在經組態以提供SIP之間的一光學互連結構之一單獨PIC中)或自由空間傳輸(例如,採用成像光學器件將光自一個PIC之一輸出耦合至另一PIC之一輸入)。在使用一光柵耦合器來捕獲光之情形中,光柵耦合器可經組態以致使光以與光纖之角度相關聯之一預定義角度離開PIC,以便最小化光之損耗。在其他實施例中,各種類型之波導係可能的,包含諸如一中階梯光柵及其他光柵等繞射光柵。在此一多封裝系統內之所有EIC之磚塊之間的訊息可經由由PIC實施之光子網狀架構以及其之間的光學互連來交換,而不管是在晶片上/晶片內(意味著在一單個SIP內)還是在晶片外/晶片間(意味著一個SIP中之一磚塊至另一SIP中之一磚塊)發送一訊息。根據本文中所闡述之各種實施例,晶片上通信與晶片間光通信可有所不同,然而,由於晶片上通信通常使用單波長光來執行,而較大系統中不同SIP (例如,ML加速器中之不同ML處理器)之間的晶片間通信通常使用分波多工(WDM)來執行,因此此用於減少不同晶片(例如,不同ML處理器)之間所需之光纖連接之數目。注意,在某些實施例中,多個波長亦被發送用於晶片上光學通信,並且相反地,單波長通信原則上亦可用於晶片外通信。
圖6A係根據某些實施例的圖解說明連接一SIP內之兩個處理元件之一實例性光子鏈路群組之一圖式。對於晶片內光通信,可係一晶片上或晶片外雷射光源之一光引擎600輸出單一波長λa1下之載波光。一分裂器樹602可在通向與不同磚塊及光子通道相關聯之調變器之多個光學路徑604 (僅展示一個)之間劃分波長為λa1之光。沿著此等路徑604中之每一者,光可在與同一方向上的對應於自SIP中之一個磚塊至另一磚塊之一單向光子通道之一群組單向光子鏈路相關聯之一群組調變器610、612、614、616之間進行進一步分裂,將該群組調變器610、612、614、616接合在一起以形成一接合群組;SIP之同一對磚塊之間的兩個此類單向光子通道形成一晶片內雙向光子通道。調變器610、612、614、616 (例如,EAM)調變具有單一波長λa1之光,並經由各別波導620、622、624、626將所調變光傳輸至坐落於同一晶片之一不同磚塊中之光電偵測器630、632、634、636。
圖6B係根據某些實施例的圖解說明使用晶片間光學通信之WDM之兩個SIP 100A、100B之一實例性系統之一圖式。在所繪示實例中,SIP 100A、100B之PIC經由第一PIC中之一光柵耦合器640、一第一光纖641、一光纖連接器642、一第二光纖643及第二PIC中之一光柵耦合器645進行連接。在第一SIP 100A中,可係一晶片上或晶片外雷射光源之一光引擎650將諸如如所展示之四個波長λb1、λb2、λb3、λb4之多個波長(例如,在2與16個波長之間)之光提供給PIC。一分裂器樹602 (例如,類似於圖6A之分裂器樹)可在多個光學路徑652 (僅展示一個)之間劃分多個波長下之光,從而通向SIP 100A之不同磚塊及/或與磚塊內之不同光子通道介面相關聯之光學調變器。舉例而言,可將波長λb1、λb2、λb3、λb4下之載波光提供給與諸如圖2B中所展示之介面214等多個周邊光子通道介面相關聯之光學調變器。
沿著此等路徑652中之每一者,解多工器654在不同各別調變器(例如,EAM) 662、664、666、668之間分離波長λb1、λb2、λb3、λb4。調變器662、664、666、668調變波長λb1、λb2、λb3、λb4下之載波光,並在光學鏈路672A、674A、676A、678A上將具有各別波長λb1、λb2、λb3、λb4之經調變光學信號提供給一WDM多工器680。在一單個波導上將WDM多工器680之經多工輸出(其含有各自在一單獨波長λb1、λb2、λb3、λb4上被編碼之四個資料串流)提供給光柵耦合器640,其中將經多工經調變光學信號晶片外地耦合至光纖641。
在光纖連接器642處,將經多工經調變光學信號自光纖641耦合至一第二光纖643中。第二光纖643經由光柵耦合器645將經多工經調變光學信號耦合至第二SIP 100B之PIC中。在某些其他實施方案邊緣中,經耦合光纖可用來代替FAU及光柵耦合器或者作為FAU及光柵耦合器之補充。在SIP 100B中,一解多工器682然後對經多工經調變光學信號進行解多工,從而輸出具有波長λb1、λb2、λb3、λb4之四個單獨經調變信號。經由各別光學波導672B、674B、676B、678B將此等四個信號提供給SIP 100B中之光電二極體692、694、696、698。總而言之,以下各項在不同SIP之磚塊之間形成一單向光子通道:SIP 100A之PIC中之調變器662、664、666、668、波導672A、674A、676A、678A、多工器680及光柵耦合器640;SIP 100A、100B之間的光纖連接(641、642、643);以及SIP 100B之PIC中之光柵耦合器645、解多工器682、波導672B、674B、676B、678B及光電偵測器692、694、696、698;SIP之同一對磚塊之間的兩個此類單向光子通道形成一晶片間雙向光子通道。
儘管上文所論述之實施方案係針對在一個方向上展示四個光鏈路之一光子通道以及接收四個不同波長之一WDM多工器,但在其他實施方案中,可使用兩個或更多個光學鏈路以及接收兩個或更多個不同波長之一WDM多工器。因此,解多工器將輸出對應於此等替代實施方案之兩個或更多個不同波長。
例如,如上文所闡述,使用晶片內及晶片間光子通道一般而言包含每方向一或多個鏈路,一或多個SIP之EIC中之處理元件(磚塊)可連接至光電網路中。所得網路拓撲一般而言取決於經由一相關聯光子通道直接連接之若干對磚塊之選擇;下文參考圖7至圖9闡述各種實例性拓撲。注意,雖然本發明一般而言係關於雙向光子通道,如與單向光子通道相比,該等雙向光子通道會導致網路結構為實施ML及其他運算模型提供更大靈活性,但原則上亦可利用單向光子通道來形成光電網路,並且此類網路可保留本文中所論述之諸多益處(例如,歸因於光子資料在更長距離內傳遞之功率節省)。
圖7係根據某些實施例的圖解說明具有一四邊形網狀拓撲之一實例性光電網路700之一圖式。亦展示圖1B中所繪示之SIP 100之此拓撲。在所繪示實例中,網路包含16個磚塊104 (構成網路節點),該等磚塊以一個四邊形(例如,如所展示,矩形)網格配置並藉由光子通道702進行互連,使得每一磚塊之輸出可作為輸入提供給其緊密毗鄰磚塊中之任一者。在替代實施方案中,例如,基於特定應用之需求,可支援其他網路拓撲來提供更豐富或更稀疏之連接性。舉例而言,可添加額外光子通道以跳過網路節點並提供給非毗鄰節點之直接路徑,亦即,矩形網狀中兩個或更多個跳躍之外的節點。
圖8係根據某些實施例的圖解說明具有一纏繞式環形網狀拓撲之一實例性光電網路800之一圖式。如圖7中之網路700那般,網路800包含以一矩形網格配置之16個磚塊104。在此拓撲中,磚塊104之間的光子通道802、804經組態以使得可經由光子通道802將每一磚塊104之輸出作為輸入提供給其緊密毗鄰磚塊中之任一者(在圖7之網狀拓撲中亦係該情形),並且此外,沿著陣列之周邊之每一磚塊可經由一光子通道804將其輸出直接提供給網格之相對邊緣上之一磚塊,亦即,對於沿垂直邊緣配置之磚塊為同一列中之遠磚塊並且對於沿著水平邊緣配置之磚塊為同一行中之遠磚塊。所得纏繞式環形具有顯著減少在網路之相對側上之磚塊之間通信所需的磚塊至磚塊跳躍之數目之有益效應。舉例而言,在沒有光子通道804的情況下,自網路之左邊緣上之一磚塊發送至右邊緣上之一磚塊之一訊息將橫穿網路中之一整列磚塊。
在某些實施例中,藉由將晶片之邊緣處之光學鏈路組合至與一光纖附接單元咬合之一光柵耦合器中或者另一選擇係組合至一邊緣耦合器中來實體地實施纏繞式環形拓撲,以便提供用於裝配成一帶狀光纖之一光纖陣列之連接。帶狀光纖可經設計以允許使用片塊(patch)光纖來建構光學鏈路之任意拓撲。片塊光纖允許來自PIC之一個側之連接纏繞起來並形成纏繞式環形。另一選擇係,除了使用光纖之外,亦有可能實施將相對邊緣上之磚塊連接為PIC內之光學波導之光子通道804。視情況,為了避免光子通道804之間的波導交叉,可在與連接同一行之相對端上之磚塊之波導分離之一層中實施連接同一列之相對端上之磚塊之波導。
圖9係根據某些實施例的圖解說明具有一可延伸纏繞式環形網狀拓撲之一實例性光電網路900之一圖式。在此情形中,將各自在其EIC中包含一矩形網格中之十六個磚塊104之四個SIP 100 (例如,實施具有四個ML處理器之一ML加速器)自身配置在一個2×2網格中,從而導致一個8×8網格中之六十四個磚塊104之一總體配置。如所展示,在此組態中,在同一SIP 100內或在兩個毗鄰SIP 100中彼此緊密毗鄰之磚塊104藉由光子通道進行連接(例如,藉由用於晶片內光子通道902之PIC中之波導以及藉由用於晶片間光子通道904之光纖來實施)。而且,類似於圖8中之拓撲,將沿著8×8網格之周邊之磚塊104互連(藉由晶片間光子通道906)為一纏繞式環形,使得位於8×8網格之一邊緣處之一個SIP 100中之每一磚塊104之輸出可作為輸入提供給網格之相對邊緣上之另一SIP 100之磚塊。有益地,晶片間光子通道904、906將所有SIP 100之磚塊104無縫地整合至更大光電網路900中。如將瞭解,連接至一單個更大網路中之SIP 100之數目可不同於所繪示之四個,且可在不導致大量能量損耗的情況下直接增加,從而利用長距離光子通信之能量效率之優點。此外,可延伸纏繞式環形拓撲減少了將以其他方式在網格之遠端上之磚塊之間通信所需之磚塊至磚塊之跳躍之數目。
圖7至圖9圖解說明可能的網路拓撲之各種非限制性實例。為了提供又一實例,光子通道亦可經組態以將一或多個SIP內及/或跨越一或多個SIP之磚塊共同連接成一個三維立方體網格拓撲。在此一實施例中,磚塊仍可被佈置在一單個平面中(亦即,係幾何上二維的),但鑒於網路節點之間的連接而以一個三維網路拓撲為特徵。注意,圖8及圖9中所繪示之纏繞式環形網路亦係幾何上二維及拓撲上三維組態之實例。
注意,根據本文中所闡述之各種實施例,在一ML加速器系統中,可使用數種技術來支援使用光子足夠之ML模型之功率高效執行。對於ML模型,通信之模式及排程在編譯時皆係已知的,此為編譯器引導之光子網狀架構最佳化提供了機會。例如,可基於載入至ML處理器或加速器中之ML模型來關閉光子網狀架構中不使用之光子通道及光學鏈路以節省功率。舉例而言,由八條鏈路(每一方向上四條)組成之一雙向光子通道可提供比一給定模型需求多之頻寬。動態接合可用於根據ML模型之需求、基於由編譯器開發之一排程來選擇性地啟動及解除啟動一通道中之光學鏈路,因此進一步減少了功率消耗。實施此演算法之一先決條件係EO及OE介面能夠在幾個位元時間內進入靜止狀態並重啟,此係藉由在開機時使用一協商協定自每一通道選擇一主鏈路來實現的。一通道之主鏈接決不會關閉。主鏈路上之傳輸時脈用作所有從鏈路上之傳輸時脈。在接收器處,主鏈路對傳入位元串流執行時脈資料復原並重構傳輸器時脈。然後,將接收時脈散佈給通道中之其他從鏈路。由於存在傳輸器與接收器之主鏈路與從鏈路之間傳輸之延遲,所以必須慮及每一接收鏈路中之時脈偏斜,此係藉由在通道之建立期間執行一通道對準階段來實現的。
光子網狀架構之可組態性及其動態接合能力可進一步用於提供容錯能力以校正由低產組件引起之製造缺陷。調變器(例如,EAM)及光電二極體可能具有製造缺陷,此導致其永久有缺陷。當將ML加速器初始化時,對光子網狀架構中之每一通道進行設置及校準以使其準備好攜載資料。在正常操作中,將一通道中之鏈路接合在一起以形成作為一單個邏輯通道執行之一群組。在通道建立程序期間,可自接合群組省略並停用無功能鏈路。通道建立程序由每一通道之埠邏輯中之一狀態機協調。
通道建立狀態機分階段繼續進行。在一第一階段中,選擇一主鏈路。一傳輸器旋轉穿過通道中之每一鏈路,從而傳輸一鏈路建立成框型樣。當一接收通道成功地接收鏈路建立圖案時,其將其建立鏈路轉換為一「主發現」成框型樣。當一通道接收「一主發現」成框型樣時,對應傳輸器將停止旋轉穿過鏈路,並等待數個「主發現」成框型樣來指示主選擇係穩定的。若通道停止接收「主發現」,則其將還原使用鏈路建立成框型樣。當在兩個方向上皆建立了一主鏈接時,接合可繼續進行。對於當前並非一主鏈路之每一鏈路,系統傳輸一「準備好接合」成框型樣。當接收器正確解碼一「準備好接合」成框型樣時,其經由主鏈路傳輸一經接合成框型樣並將接收通道添加至接合群組。該程序繼續進行,直至所有非主鏈路皆被摒棄或添加至接合群組為止。在完成接合程序時,僅完全起作用之彼等鏈路才會被包含於接合群組中。
圖10係圖解說明用於一處理器內之時脈信號分佈之習用技術之一圖式。用於一處理器內之時脈信號分佈之習用技術耗費了大量能量。通常自將一時脈信號散佈給區域時脈網路之根時脈網路開始以階層式構建時脈樹。一典型拓撲係圖10中所展示之「H樹網路」,其中在等長路徑上連續劃分時脈分段以將時脈信號散佈給處理器之各區域。當時脈信號跨越處理器之進行長距離傳播時,緩衝器1044用於使時脈信號再生。經由H樹之路徑在長度上匹配,以維持H樹網路之臂之間的均勻時脈偏斜。然後,在各區域內,存在又一位準之階層式時脈分裂,以將區域位準之時脈信號連接至局部電路1046。由於時脈路徑必須在長度上匹配且亦在再生緩沖器1044中消耗大量功率,因此根時脈網路經常提出路由挑戰。
圖11係根據某些實施例的圖解說明使用一光子網狀架構來散佈一時脈信號(諸如根時脈信號)之一實例之一圖式。對於某些實施例,本文中所闡述之一光子網狀架構用於在一ML處理器(例如,100)內攜載一時脈信號,諸如由ML處理器之ASIC (或其他EIC,例如,101)使用之根時脈網路之一時脈信號。現參考圖11,由於主鏈路總是在通道1112、1114、1116及1118上進行傳輸,因此接收磚塊可使用藉由第一主鏈路1130進行選擇來建立磚塊(例如,104)之時脈源。藉由使用時脈資料復原(CDR)電路1120,自通道1112、1114、1116及1118上之傳入資料串流提取時脈信號,並將其饋送至產生一低抖動時脈信號1126之一抖動衰減PLL 1124,該時脈信號1126接著用於磚塊中所有其他通道1132、1134、1136及1138上之傳輸器並被分割及用作張量處理器、DNN及訊息路由器之數位時脈信號1140。
因此,每一磚塊建立其自身時脈域,並且磚塊之間的電連接使用同步時序。此配置相對於一數位全域時脈網路具有數個益處:其藉由消除處理器中典型之根時脈網路來節省功率;其降低了必須在一處理器周圍及數個處理器之間進行路由之時脈網路之複雜性;以及其歸因於同步全域時脈轉變而減少了數位邏輯中之電流尖峰。某些實施例之新穎時脈信號分佈機制在ML處理器之間以及在一單個ML處理器之磚塊內延伸。
儘管本文中使用各種實施例來闡述發明概念,但熟習此項技術者可在不背離本申請案之範疇的情況下設想此等概念之其他實施例。舉例而言,在一種方法中,DNN自身可係一PNN (光子神經網路),其中使用光子學來實施神經網路層(舉例而言,使用光學分束器及光學波導來執行MAC功能,並且其中對中間輸出信號進行光學組合以用於一光學輸出)。而且,可使用除了光連接以外另有的電連接或者代替光連接之電連接來實施光子網路及/或光子網狀架構之各部分,舉例而言,作為備用連接或者供在ML加速器之測試期間或初始化期間使用。
總之,根據本發明概念之各種實施例,本ML加速器包含一新穎混合光電(electronic-photonic)(或光電(electro-photonic)) NoC及一新穎DNN,以及用於執行ML模型之一整體獨特架構及一新穎時序方案。當前揭示之ML加速器藉由降低資料移動之功率消耗以及降低MAC運算中之能量消耗來導致功率消耗顯著降低同時處理速度提高。藉由最大化每一ML處理器中之資料局部性(例如,藉由減少資料移動)並進一步藉由在需要資料移動時減少能量損耗來實現減少資料移動之功率消耗。而且,本發明ML加速器中之新穎時序方案導致額外功率節省。
對於某些實施例,本文中所闡述之時脈信號分佈係針對諸如一SIP之一電路封裝實施的。舉例而言,電路封裝可包括ASIC (例如,101),該ASIC包括包含光子通道介面之複數個處理元件(例如,複數個磚塊)。另外,電路封裝可包括連接複數個處理元件以形成一光電網路(例如,網路130)之至少一部分之複數個光子通道。根據複數個光子通道之各種實施例,子多個光子通道(例如,通道1112、1114、1116、1118、1132、1134、1136、1138)連接至複數個處理元件中之一個別處理元件(例如,磚塊104)。
為了促進一實施例之時脈信號分佈,一個別處理元件可為該個別處理元件自子複數個光子通道選擇(例如,經由第一主鏈路1130)一主光子通道(例如,通道1112、1114、1116、1118中之一者)。對於某些實施例,個別處理元件在個別處理元件之開機時間期間選擇主光子通道(例如,使用一協商協定)。
個別處理元件可為該個別處理元件自子複數個光子通道選擇一組從光子通道(例如,通道1132、1134、1136、1138)。對於某些實施例,個別處理元件在個別處理元件之開機時間期間選擇一組從光子通道(例如,使用一協商協定)。另外,對於某些實施例,個別處理元件對主光子通道執行一通道對準操作,該通道對準操作經組態以調整個別處理元件之一或多個設置來補償時脈偏斜。
個別處理元件可自所選擇主光子通道提取一所接收時脈信號。對於某些實施例,個別處理元件藉由對經由主光子通道接收之一傳入位元串流執行時脈資料復原(例如,藉由CDR電路1120)來自主光子通道提取所接收時脈信號。
個別處理元件可基於所接收時脈信號來產生由個別處理元件(例如,磚塊104)用來對個別處理元件執行一或多個局部操作之一局部時脈信號(例如,數位時脈信號1140)。對個別處理元件之一局部操作可由個別處理元件(例如,磚塊104)之一張量處理器(例如,108)、一DNN (例如,106)或一訊息路由器(例如,110)中之至少一者執行。因此,個別處理元件可包括一張量處理器(例如,108),並且該張量處理器可基於局部時脈信號來進行操作。個別處理元件可包括包含光子通道介面之一訊息路由器,並且該訊息路由器可基於局部時脈信號進行操作。該個別處理元件可包括用於運算至少兩個向量之間的一點積(例如,DNN 106)之一硬體電路,並且該硬體電路可基於局部時脈信號來進行操作。
對於某些實施例,個別處理元件(例如,磚塊104)包括一抖動衰減鎖相迴路(PLL)(例如,1124),其中個別處理元件使用抖動衰減PLL基於所接收時脈信號來產生一低抖動時脈信號。個別處理元件可藉由基於低抖動時脈信號產生局部時脈信號來基於所接收時脈信號產生局部時脈信號。
最終,個別處理元件可經由一組從光子通道(例如,通道1132、1134、1136、1138)將一散佈式時脈信號傳輸至連接至個別處理元件之一組複數個處理元件,其中散佈式時脈信號係基於所接收時脈信號(例如,CDR電路20之輸出)而產生的。舉例而言,個別處理元件可藉由將一或多個傳出位元串流傳輸至一組處理元件來傳輸散佈式時脈信號,其中一或多個傳出位元串流係基於散佈式時脈信號而產生的。以此方式,接收傳出位元串流(經由一組從通道)之一或多個處理元件然後可自傳出位元串流獨立地提取散佈式時脈信號。
對於某些實施例,個別處理元件連接至(複數個處理元件中之)一第二處理元件,該第二處理元件經組態以與個別處理元件類似之方式進行操作。舉例而言,第二處理元件可經由(個別處理元件之)一組從光子通道中之一各別光子通道連接至個別處理元件。第二處理元件可選擇個別光子通道作為第二處理元件之一第二主光子通道。第二處理元件可為第二處理元件自連接至第二處理元件之一第二子複數個光子通道選擇一第二組從光子通道。第二處理元件可自第二主光子通道(例如,自由第二處理元件經由第二主光子通道接收之傳出位元串流)提取一第二所接收時脈信號。第二處理元件可基於第二所接收時脈信號來產生一第二局部時脈信號,第二處理元件使用該第二局部時脈信號對第二處理元件執行一或多個局部操作。此後,第二處理元件可經由第二組從光子通道將一第二散佈式時脈信號傳輸至連接至第二處理元件之一第二組複數個處理元件,其中第二散佈式時脈信號係基於第二所接收時脈信號而產生的。
圖12係根據某些實施例的圖解說明一DNN之一實例性架構1200之一圖式。如所展示,架構1200包括複數個記憶體裝置,該等記憶體裝置包含64個SRAM記憶體庫1210-1至1210-64 (下文統稱為SRAM記憶體庫1210)、一交換器網狀架構1220 (例如,SRAM網狀架構)、一控制器1230及一點積單元陣列1240,其中每一點積單元包括包含FMA單元1250之複數個經融合多重累加(FMA)單元。
架構1200可在每運算最小額外負擔下執行運算密集型功能,諸如迴旋及矩陣乘法(通常在一ML模型之內部迴路中使用)。與諸如用於執行ML圖形之暫存器傳遞機器等傳統技術相比,架構1200可藉由移除與通用可程式化性相關聯之額外負擔來以極少額外負擔最佳地執行特定運算密集型功能。架構1200可提供與饋送交換器網狀架構1220之SRAM記憶體庫1210之緊密相關聯,此可在數學單元之間交換值的同時最小化資料至數學單元(例如,點積單元1240之陣列)之移動。以此方式,架構1200可提供近記憶體運算架構,與習用技術相比,該近記憶體運算架構亦節省了功率消耗。
根據某些實施例,架構1200表示DNN之一硬體電路,其中該硬體電路包括一組合樹(例如,如圖4中所圖解說明)及一定序器(例如,400)。組合樹可使用多重累加(MAC)單元基於在組合樹之一頂部層級處接收之輸入值來產生一或多個點積值,並且一定序器1211可經組態以重新配置自一組記憶體裝置1210接收之輸入向量在交換器網狀架構1220中之位置。以此方式,某些實施例可控制作為輸入向量提供給頂部層級(例如,二維點積陣列1240中之最左行)之權重值及運算元值之次序。組合樹可包括經組態以維持流動經過組合樹之值之時脈對準之暫存器。在圖12中,相對於連接至點積單元陣列1240之時脈1280來維持值之時脈對準。如所展示,點積單元陣列1240之每一FMA連接至時脈1280。
定序器1211操作地耦合至將組合樹操作地耦合至諸如局部SRAM記憶體裝置之一組記憶體裝置1210之交換器網狀架構1220或記憶體裝置,該等記憶體裝置在此實例中展示為各自提供一個32位元向量之64個記憶體庫。該組記憶體裝置可包括SRAM記憶體庫1210或任何其他合適局部記憶體。組合樹可包括一點積單元陣列,諸如點積單元陣列1240。陣列之每一點積單元之輸入形成接收輸入值(例如,32位元向量)之組合樹之頂部層級。
點積單元陣列1240可經組態以接收輸入值(例如,輸入向量1260)並基於如由組合樹之頂部層級接收之輸入值來產生一或多個點積值,其中一單個點積單元可包括MAC單元中之兩者或更多者。點積單元之一單個MAC單元具有至少一個累加器。在某些實施例中,多個累加器經組態以隨著值流動經過單個MAC單元而累加由單個MAC單元產生之部分點積值。MAC單元可包括至少一個FMA單元,諸如FMA 1250。
對於某些實施例,定序器1211經組態以將向量自一組記憶體裝置1210提供給交換器網狀架構1220。在某些實施例中,權重值及運算元值(例如,啟動值)由交換器網狀架構1220根據一控制器(例如,控制器邏輯)作為一輸入向量序列提供給頂部層級,該控制器控制定序器1211、時脈、一張量引擎或與ASIC相關聯之另一組件之一操作或組態。舉例而言,控制器1230可以硬體、韌體、軟體或所有此等之一組合來實施定序器1211,其中提供給點積單元陣列1240之輸入向量(例如,1260)之序列由控制器1230判定。取決於實施例,定序器1211可基於一組參數來判定提供給頂部層級之輸入向量之序列,其中該組參數包括一步幅值、一膨脹值或一內核大小值(例如,其可由控制器1230接收或處理)中之至少一者。
定序器1211可經組態以藉由在一單個或多個時脈週期期間讀取自該組記憶體裝置(例如,SRAM記憶體庫1210)讀取之複數個權重值及複數個運算元值來產生(輸入向量之序列之)一個別輸入向量,其中個別輸入向量包括複數個權重值及複數個運算元值。根據各種實施例,定序器在一第一時間讀取複數個權重值及複數個運算元值,並且在定序器讀取期間沒有記憶體庫衝突發生,此乃因其置換了將輸入提供給點積引擎1240之交換器網狀架構1220中之輸入向量。另外,在該組記憶體裝置包括記憶體庫的情況下,定序器可在單個時脈週期期間自記憶體庫中之每一者進行讀取,儘管其他基於時脈之方案亦係可能的。對於某些實施例,由定序器對該組記憶體裝置之每一連續讀取導致自該組記憶體裝置讀取在前一時脈週期期間不由定序器讀取之新權重值及新運算元值。具體而言,交換器網狀架構1220可在輸入資料被置換的情況下準確地讀取權重值及運算元值(例如,啟動值)一次,因此不存在庫衝突。藉由僅讀取個別權重值及運算元值一次,減少了自該組記憶體裝置對個別權重值及運算元值進行存取之次數。
點積單元陣列1240可包括資料路徑,該資料路徑致使至少兩個權重值在陣列之毗鄰列之間進行調換且沿著陣列之行向下傳播權重值。另外,一點積單元之一單個MAC單元可以操作地耦合至該點積單元之至少兩個毗鄰MAC單元,使得由該單個MAC單元產生之一輸出值作為一輸入值被共用給該至少兩個毗鄰MAC單元中之每一者。
最終,在輸入向量之所有序列皆已被輸入至組合樹之頂部層級之後,一邏輯(例如,控制器1230)可致使為權重值及運算元值產生一組最終點積值。舉例而言,由邏輯產生之一組最終點積值可由儲存在組合樹之MAC單元之累加器中之值建構。另外,該邏輯經組態以將該組最終點積值儲存至該組記憶體裝置1210。另一選擇係,系統可經程式化以進行判定性執行並在一給定數目之運算週期後自動將累加器之值寫回至記憶體。以此方式,所儲存之該組最終點積值可用於為點積單元陣列建構另一輸入向量。
在操作期間,一或多個權重值及一或多個運算元值(例如,啟動值)可儲存在SRAM記憶體庫1210上。對於某些實施例,SRAM記憶體庫1210包括64個庫之32位元組寬SRAM記憶體。SRAM記憶體庫1210可饋送交換器網狀架構1220之一輸入。交換器網狀架構1220可使用一定序器1211來重新組織(自SRAM記憶體庫1210)讀取之資料,使得每一連續記憶體讀取致使一新權重值或運算元值被遞送至點積單元陣列1240,用於執行一運算功能(例如,迴旋或矩陣乘法)。交換器網狀架構1220可根據正在進行之一操作(例如,迴旋或矩陣乘法)之一或多個參數以及當前正在執行之運算之步驟來置換自SRAM記憶體庫1210讀取之資料(舉例而言,使用控制器、定序器或兩者之一組合)。因此,一參數可驅動將運算元值(例如,啟動值)應用於權重值之一次序。舉例而言,一個二維(2D)迴旋運算之一參數可包括一步幅、一膨脹或一內核大小。交換器網狀架構1220之一輸出可利用自交換器網狀架構1220讀取之權重值及運算元值來驅動點積單元陣列1240之一輸入。當自SRAM記憶體庫1210讀取值時,交換器網狀架構1220之一管線被值填滿,並且值開始自交換器網狀架構1220按時脈輸出至點積單元陣列1240中。
對於某些實施例,在每一時脈週期期間,權重值及運算元值(例如,啟動值)被交換器網狀架構1220作為一組向量讀取,經由交換器網狀架構1220傳送至點積單元陣列1240,並在該組向量經由交換器網狀架構1220傳送時被置換。對於迴旋運算,自SRAM記憶體庫1210讀取之一組向量可被組織為通道向量之片塊(例如,8×8片塊)。對於某些實施例,當自SRAM記憶體庫1210讀取時,交換器網狀架構1220藉由置換記憶體中之片塊來避免庫衝突。以此方式,交換器網狀架構1220能夠在每個時脈週期自所有SRAM記憶體庫1210進行讀取。
對於某些實施例,點積單元陣列1240之每一點積單元係32個FMA單元深。另外,對於某些實施例,點積單元陣列1240包括64列×32行之點積單元。在運算期間,點積單元陣列1240可在每一時脈週期中執行65536次FMA運算。如所展示,對於某些實施例,點積單元陣列1240中之每一FMA單元(例如,FMA單元1250)包括一累加器1252。在此實例中,該累加器被展示為經組態以當權重值及運算元值(例如,啟動值)流動經過FMA單元時累加部分乘積值之一對累加器(ACC0及ACC1)。在其他實施方案中,可使用其他累加器方案。舉例而言,一FMA單元可接收兩個8位元值作為輸入並產生32位元點積值(儲存在FMA單元之累加器1252中)。在各種實施例中,當經由FMA單元將值串流化時,一FMA之輸出累加器保持靜止。藉由保持輸出累加器靜止,各種實施例避免了大量能量消耗,此乃因無需算術邏輯單元以及與每一FMA週期及由一FMA單元進行之每一計算相關聯之記憶體讀取及寫入操作。舉例而言,FMA之能量消耗可係130 fJ。
對於某些實施例,點積單元陣列1240之每一層級包含毗鄰FMA單元之間的一組連接以及點積值之間的毗鄰FMA單元之間的一組連接,此可准許權重值在FMA之間混洗。權重值之混洗可由諸如迴旋參數或矩陣乘法維數等一或多個參數控制(例如,經由控制器1230)。在各種實施例中,點積單元陣列1240係組合的,此使得點積單元陣列1240能夠減少或避免在點積單元陣列1240內之運算之每一階段將資料鎖存在暫存器中之能量成本。對於某些實施例,點積單元陣列1240包括用於保持點積單元陣列1240中之資料流動與驅動點積單元陣列1240之一時脈信號對準的一組管線暫存器(例如,小數目之管線暫存器)。另外,對於某些實施例,點積單元陣列1240包括准許在點積單元陣列1240之列之間調換權重值並准許經由點積單元陣列1240之行向下傳播權重值的一組資料路徑,此促進了在運算元值經由點積單元陣列1240而串流化時將正確權重值提供給每一運算元值(例如,啟動值)。在所有權重值及運算元值已經由點積單元陣列1240進行傳送之後,可認為點積單元陣列1240對權重值及運算元值之運算已完成,並且點積單元陣列1240中每一FMA單元之累加器中之所得值組成一組最終點積值。此等最終點積值可被寫回至(例如,儲存) SRAM記憶體庫1210,並且隨後,彼等所儲存值中之一或多者可在一未來後續運算期間被點積單元陣列1240用作至點積單元陣列1240之輸入。
圖13係根據某些實施例的圖解說明用於操作一DNN之一實例性方法1300之一流程圖。將理解,本文中所闡述之實例性方法可由一獨立DNN或者由包含一DNN (例如,DNN 106)之一裝置(例如,ML處理器100)執行。另外,本文中所闡述之實例性方法可以儲存在一機器可讀媒體上之可執行指令之形式或者以可致使一DNN根據方法1300進行操作之電子電路系統(例如,邏輯)之形式來實施。舉例而言,圖13之方法1300之操作可由可執行指令表示,當由一DNN之一控制器執行時,該可執行指令致使DNN根據方法1300來進行執行。取決於實施例,本文中所闡述之一實例性方法之一操作可以不同方式進行重複或者涉及未展示之介入操作。儘管可以一定次序繪示及闡述實例性方法之操作,但執行操作(包含並行執行某些操作)之次序可在實施例當中發生變化。
現參考圖13,在操作1302處,一DNN之一定序器自操作地耦合至定序器之一組記憶體裝置讀取一第一複數個權重值及一第一複數個運算元值。在操作1304處,在DNN之一組合樹之一頂部層級處接收來自定序器之一第一輸入向量,其中第一輸入向量包括在操作1302處讀取之第一複數個權重值及第一複數個運算元值。在操作1306期間,組合樹處理第一輸入向量,其中組合樹經組態以使用MAC單元基於經由頂部層級接收之值來產生一或多個點積值。在操作1308處,定序器自一組記憶體裝置讀取一第二複數個權重值及一第二複數個運算元值。在操作1310處,在一組合樹之頂部層級處自定序器接收一第二輸入向量,其中第二輸入向量包括第二複數個權重值及第二複數個運算元值。在操作1312期間,組合樹處理第二輸入向量,其中第一輸入向量及第二輸入向量係待由組合樹之頂部層級接收之一輸入向量序列之一部分。在組合樹之頂部層級已接收到一輸入向量序列之後,在操作1314處,DNN由儲存在組合樹之MAC單元之累加器中之值建構一組最終點積值。
此可取決於累加器之大小而包括多個步驟。在某些實施例中,累加器保存32個位元。一旦充足輸入向量流動經過點積陣列以填充累加器,例如在組合樹之頂部層級處(或在點積陣列中之其他地方),則在操作1316處,可將組合樹之MAC個單元之累加器中之值(例如,滿的點積單元陣列之一行之累加器)寫回至操作1302中所使用之一組記憶體裝置。此後,該程序可視情況重複。因此,累加器輸出可被一項實施例用作至另一處理週期之輸入,藉此避免使用處理或儲存由組合樹之一列或行進行之任何計算之中間或最終結果所需的一算術邏輯單元或任何記憶體進行存取。
圖14係根據某些實施例的圖解說明使用一光電網路進行時脈信號分佈之一實例性方法1400之一流程圖。將理解,本文中所闡述之實例性方法可由一ML處理器(例如,100)之一個別處理元件(例如,磚塊104)執行。另外,本文中所闡述之實例性方法可以儲存在一機器可讀媒體上之可執行指令之形式或者以可致使個別處理元件根據方法1400來進行操作之電子電路系統(例如,邏輯)之形式來實施。取決於實施例,本文中所闡述之一實例性方法之一操作可以不同方式重複或者涉及未展示之介入操作。儘管可以一定次序繪示及闡述實例性方法之操作,但執行操作(包含並行執行某些操作)之次序可在實施例當中發生變化。
現參考圖14,在操作1402處,一ML處理器之一個別處理元件對主光子通道執行一通道對準操作,其中通道對準操作經組態以調整個別處理元件之一或多個設置以補償時脈偏斜。在操作1404處,個別處理元件自複數個光子通道選擇一主光子通道,其中主光子通道係為個別處理元件而選擇的。對於某些實施例,複數個處理元件係一電路封裝之一ASIC之一部分,並且複數個處理元件藉由複數個光子通道連接在一起以形成電路封裝內之一光電網路之至少一部分。在操作1406期間,個別處理元件自複數個光子通道選擇一組從光子通道,其中一組從光子通道係為個別處理元件而選擇的。在操作1408處,個別處理元件自主光子通道提取一所接收時脈信號。基於(在操作1408處提取之)所接收時脈信號,個別處理元件產生由個別處理元件使用之一局部時脈信號以對個別處理元件執行一或多個局部操作。基於(在操作1410處產生之)所接收時脈信號,在操作1412處,個別處理元件產生一散佈式時脈信號。在操作1414處,個別處理元件經由一組從光子通道將一散佈式時脈信號傳輸至連接至各別處理元件之一組複數個處理元件。對於各種實施例,操作1414包括使用個別處理元件之光子通道介面將散佈式時脈信號自一電形式變換成一光學形式。散佈式時脈信號適合於跨越一組從光子通道來進行傳輸。另外,對於某些實施例,操作1414包括在一組複數個處理元件處將散佈式時脈信號自光學形式變換成電形式,其中散佈式時脈信號適合於由一組複數個處理元件用作相關聯局部時脈信號。
圖15係根據某些實施例的圖解說明用於在一光電網路(例如,SIP 100之網路130)內傳遞一訊息之一實例性方法1500之一流程圖。在操作1502處,在網路之處理元件104中之一者(本文中亦稱為「第一處理元件」或「源磚塊」)處產生一訊息。該訊息係包括一系列1及0之一個二進制資訊封包。資料的包括在封包中之一部分可視情況包含來自一磚塊之局部記憶體之資料,諸如一權重或啟動。此通常稱為封包之有效負載。資料的包括在封包中之另一部分係一標頭,該標頭可包含與一目的地磚塊相關聯之路由資訊,諸如一位址。另一選擇係,亦可能提供路由資訊作為有效負載之一部分,例如,在與攜載資料(例如,權重或啟動)之有效負載之一第二部分分離之一第一部分中。因此,封包中之路由資訊可規定網路之另一處理元件(本文中亦稱為「第二處理元件」或「目的地磚塊」)作為訊息之目的地。基於路由資訊,可判定經由網路自源磚塊至目的磚塊之一路徑。除非源磚塊及目的磚塊經由網路之雙向光子通道進行直接連接,否則路徑在自源磚塊至目的磚塊之路由上包含一或多個中間處理元件(本文中亦稱為「第三處理元件」或「中間磚塊」)。在某些實施例中,路徑由源磚塊及中間磚塊之路由器共同判定(藉由在沿著自源至目的地之路由之每一跳躍修改封包之路由資訊中(例如,標頭中)之至少一個值)。舉例而言,在鑒於相對於當前磚塊之一相對位置或距離來規定目的磚塊之位址之實施例中,每一訊息路由器可將訊息路由至網路內之毗鄰磚塊,該毗鄰磚塊例如在兩個尺寸中之一者上減小了彼距離且相應地更新封包資料。
因此,在操作1504處(在其第一次執行期間),源磚塊之一路由器(在一第一迭代中)判定沿著至目的地磚塊之路徑之下一磚塊,並且將源磚塊內之訊息路由至將源磚塊連接至彼下一磚塊之一雙向光子通道。在源磚塊與彼雙向光子通道之間之介面處,在操作1506處,例如藉由操作源磚塊之一調變器驅動器致使光子通道之一相關聯調變器根據該訊息調變一光學信號來將該訊息賦予至該光學信號上。在操作1508處,將攜載訊息之經調變光學信號傳輸至下一磚塊。在操作1510處,例如,藉由利用光子通道之端處之一光電偵測器量測光學信號,在光子通道與下一磚塊之間的一介面處將光學信號轉換回一電子信號。在某些實施例中,在抵達下一磚塊之EIC處之後,旋即在操作1511處修改封包之路由資訊,以反映封包已在複數個維度中之一個維度上朝向目的地移動了一個步階。此後,下一磚塊之訊息路由器具有帶有路由資訊之一封包,該封包之欄位已經修改以指示朝向一目的地磚塊之複數個不同維度中剩餘之當前步階數目。
在操作1512處,判定在操作1510處接收訊息之磚塊是目的地還是一中間磚塊。若磚塊係一中間磚塊(例如,在一項實施例中,封包之標頭中之路由資訊欄位係非零),則方法1500往回循環至操作1504,其中中間磚塊(在第二及任何後續執行期間)判定沿著至目的地之路徑之下一磚塊。然後,將該訊息賦予至光信號上(在操作1506處)以傳輸至下一磚塊(在操作1508處),並且在光學信號轉換之後自所得電子信號提取該訊息(在操作1510處)。方法1500經由操作1504至1512進行迭代,直至其抵達目的地磚塊為止。一旦目的地磚塊之路由器判定該訊息係在其目的地處,則在操作1514處(例如,若封包中具有路由資訊之兩個欄位皆係零),將該訊息(或其有效負載,諸如,例如自源磚塊串流化之一啟動)路由至目的地磚塊內之一局部埠,例如,用於傳輸至目的地磚塊之一處理引擎或記憶體。
圖16係根據某些實施例的圖解說明在一ML處理器上實施一ANN之一實例性方法1600之一流程圖。ANN包含複數個神經節點,具有相關聯預定權重以及節點之間的一預定啟動流。ML處理器(例如,由圖1A及圖1B之SIP 100實施)包含一光電網路,該光電網路包括由雙向光子通道連接之複數個處理元件(例如,104),每一處理元件包括一或多個處理區塊、通信地耦合至一或多個處理區塊之記憶體以及包含兩個或更多個光子通道介面之一訊息路由器。該方法涉及在操作1602處接收以機器可讀形式將包含ANN之一表示的輸入至ML處理器之光電網路的資料,該ANN包含權重。可例如經由一PCIE、ARM核心、一般用途處理器或者電子地或光學地耦合至光電網路之ML處理器之其他系統來建立至ML處理器之一連接。舉例而言,操作1602可包含經由張量流動將資料提供給一編譯器,該編譯器將該資料自人類可讀形式變換為機器可讀形式。
在操作1604處,基於神經節點與處理元件之間的一指派,將ANN之權重載入至光電網路之處理元件中。可在編譯時間判定該指派(例如,在於操作1602處連接至光電網路之前)。在另一實施例中,ANN之權重由一排程器載入至光電網路之處理元件之局部記憶體中,該排程器在編譯之後但在推斷或模型之執行之前進行操作。在某些實施例中,將每一神經節點指派給處理元件中之一者,其中每一處理元件可實施一或多個神經節點。在其他實施例中,將一或多個神經節點各自指派給共同實施該節點之多個處理元件。將與每一神經節點相關聯之權重載入至經指派以實施彼神經節點之一或多個處理元件之記憶體中,舉例而言,在將碼編譯之後但在硬體進行執行之前。
在操作1606處,基於節點至處理元件之指派,結合ANN內之節點之間的預定啟動流,對處理元件(更具體而言,例如其訊息路由器)進行組態。該組態可涉及例如以電子形式或經由光子傳輸之訊息將路徑設置封包資料提供給路由器。作為組態之一結果,在每一處理元件處運算之輸出啟動將被路由至實施ANN中的接收此等啟動作為輸入之神經節點之各別處理元件。該組態使得由處理元件中之不同處理元件實施之神經節點之間的啟動經由雙向光子通道在處理元件之間進行光學傳遞,而由一共用處理元件實施之神經節點之間的啟動在處理元件內進行電子傳遞。在操作1608處,ML處理器經操作以實施ANN之節點,舉例而言藉由執行碼並在處理引擎中對相關聯權重及輸入啟動執行運算,以及根據由經組態路由器做出之路由決策在處理元件之間將啟動串流化。
以下編號之實例係說明性實施例而並不意欲係限制性的。
1. 一種電路封裝,其包括:一電子積體電路,其包括複數個處理元件,每一處理元件包括包含光子通道介面之一訊息路由器;及複數個雙向光子通道,其將該等處理元件連接至一光電網路中,每一雙向光子通道在一第一端處與該等處理元件中之一第一處理元件之該訊息路由器之一光子通道介面介接,且在一第二端處與該等處理元件中之一第二處理元件之該訊息路由器之一光子通道介面介接,並經組態以在該第一處理元件及該第二處理元件之該等訊息路由器之間光學地傳遞一封包。
2. 如實例1之電路封裝,其中每一雙向光子通道包括兩個方向上之一或多個單向光子鏈路。
3. 如實例2之電路封裝,其中每一雙向光子通道包括兩個方向上之多個單向光子鏈路,並且其中將每一方向上之該多個單向光子鏈路接合在一起。
4. 如實例2或實例3之電路封裝,其中每一單向光子鏈路包括在一輸入端處之一光學調變器、在一輸出端處之一光電偵測器以及將該光學調變器連接至該光電偵測器之一光學波導,並且其中每一光子通道介面包括:用於每一單向光子鏈路之一調變器驅動器,該調變器驅動器在該輸入端處與該單向光子鏈路介接;及用於每一單向光子鏈路之一跨阻抗放大器,該跨阻抗放大器在該輸出端處與該單向光子鏈路介接。
5. 如實例4之電路封裝,其中該等光學調變器係電子吸收調變器(EAM)。
6. 如實例4之電路封裝,其中該等光學調變器包括一環式調變器、馬赫-任德調變器、量子侷限史塔克效應(QCSE)電子吸收調變器中之至少一者。
7. 如實例4至6中任一項之電路封裝,其中在一電子電路層中實施該電子電路,並且在一光子電路層中實施該複數個雙向光子通道。
8. 如實例7之電路封裝,其中在一第一半導體晶片中實施該電子電路層,並且在一第二半導體晶片中實施該光子電路層。
9. 如實例7或實例8之電路封裝,其中將每一調變器驅動器直接放置在與該調變器驅動器相關聯之該光學調變器上方或下方,並且將每一跨阻抗放大器直接放置在與該跨阻抗放大器相關聯之該光電偵測器上方或下方。
10. 如實例8之電路封裝,其中該等光學調變器與其相關聯調變器驅動器之間的距離以及該等光電偵測器與其相關聯跨阻抗放大器之間的距離小於200 µm。
11. 如實例8至10中任一項之電路封裝,其進一步包括在該半導體晶片之該光子電路層中將由一或多個雷射光源提供之光學載波信號供應給該等光子鏈路之該等光學調變器之光學輸入波導,該等光學載波信號由該等光學調變器根據由該等相關聯調變器驅動器施加之驅動信號調變,以產生攜載該封包之經調變光學信號。
12. 如實例11之電路封裝,其進一步包括整合至該電路封裝中之該一或多個雷射光源。
13. 如實例12之電路封裝,其中該一或多個雷射光源在該光子電路層中之一或多個光子積體電路(PIC)中與該等光學輸入波導進行整合。
14. 如實例12之電路封裝,其中該一或多個雷射光源在與該等半導體晶片共同封裝之一中介層中實施,並與包含該等光學輸入波導之該光子電路層中之一或多個PIC進行邊緣耦合。
15. 如實例11之電路封裝,其中該一或多個雷射光源在該電路封裝外部實施,並經由一或多個光纖光學地耦合至該電路封裝中之一或多個PIC。
16. 如實例15之電路封裝,其中該一或多個光纖經由位於在該等PIC中實施之光柵耦合器之上的一或多個附接單元(FAU)耦合至該一或多個PIC。
17. 如實例15之電路封裝,其中該一或多個光纖邊緣耦合至該一或多個PIC。
18. 如實例15至17中任一項之電路封裝,其進一步包括在該半導體晶片之該光子電路層中各自在該等輸入光學波導中之多個輸入光學波導之間將自該一或多個雷射光源中之一相關聯雷射光源接收之一輸入光學載波信號分裂的一或多個光學分裂器。
19. 如實例1至18中任一項之電路封裝,其中該電子積體電路係一特殊應用積體電路(ASIC)。
20. 如實例19之電路封裝,其中該ASIC包括數位及混合信號電子電路。
21. 如實例19之電路封裝,其中每一處理元件進一步包括實施用於運算向量之間的點積之乘法器與加法器之一組合樹之一點積引擎。
22. 如實例21之電路封裝,其中每一處理元件進一步包括用於獲得及處理作為該點積引擎之輸出運算之向量之一張量引擎。
23. 如實例21或實例22之電路封裝,其中每一處理元件進一步包括一記憶體系統。
24. 如實例19至23中任一項之電路封裝,其進一步包括一高速周邊組件互連(PCIE)介面、一進階RISC機器核心、一影像處理器或一外部記憶體控制器中之至少一者。
25. 如實例19至24中任一項之電路封裝,其進一步包括高頻寬記憶體(HBM),該ASIC進一步包括將該等處理元件通信地耦合至該HBM之一RAM控制器。
26. 如實例1至25中任一項之電路封裝,其中該等處理元件之該等訊息路由器經組態以路由在一封包之一部分中具有路由資訊之該封包,其中藉由使用該路由資訊來判定穿過該光電網路之一路徑。
27. 如實例26之電路封裝,其中每一處理元件之該訊息路由器經組態以基於在其光自通道介面中之一者上接收之該封包中之該路由資訊來判定該封包之一目的地,並且若該目的地係該處理元件內之該局部記憶體或一處理引擎,則將該封包路由至一局部埠,或者若該目的地並非該處理元件內之該局部記憶體或處理引擎,則將該封包路由至該等光子通道介面中之另一者。
28. 如實例26或實例27之電路封裝,其中將該等處理元件配置在一規則網格中,且其中該封包中之該路由資訊規定了沿著該網格至作為該封包之該目的地之一處理元件的第一維度及第二維度中之相對位置。
29. 如實例28之電路封裝,其中每一雙向光子通道在該第一維度或該第二維度中之一者中連接該網格中之一對緊密毗鄰之處理元件,且其中每一處理元件之該訊息路由器經組態以當將該封包路由至沿著該第一維度之一緊密毗鄰之處理元件時,使與該第一維度中之該相對位置相關聯之該路由資訊中之一值遞減,並且當將該封包路由至沿著該第二維度之一緊密毗鄰之處理元件時,使與該第二維度中之該相對位置相關聯之該路由資訊中之一值遞減。
30. 如實例26至29中任一項之電路封裝,其中該複數個雙向光子通道經組態以將該等處理元件連接至具有定義至少兩個維度之一網格拓撲之一光電網路中,其中該封包中之該路由資訊規定相對於作為該封包之該目的地之一處理元件的該至少兩個維度中之座標,且其中當沿著該至少兩個維度中之一者將該封包路由至一拓撲上緊密毗鄰之處理元件時,每一處理元件之該訊息路由器藉由使與該至少兩個維度中之一者相關聯之一值遞減來修改該封包中之該路由資訊。
31. 如實例1至30中任一項之電路封裝,其中將該電子電路組態為磚塊的各自對應於該等處理元件中之一者之一配置。
32. 如實例31之電路封裝,其中該等磚塊係以一矩形網格配置之矩形磚塊。
33. 如實例32之電路封裝,其中該複數個雙向光子通道經組態以直接連接該矩形網格中之每一對緊密毗鄰之磚塊,以產生光電網路之一個四邊形網狀拓撲。
34. 如實例33之電路封裝,其中該複數個雙向光子通道經組態以進一步直接連接該矩形網格中之一或多對非毗鄰磚塊。
35. 如實例33至35中任一項之電路封裝,其進一步包括雙向光子通道,該等雙向光子通道經組態以直接連接該矩形網格之相對邊緣上之若干對磚塊,以產生該光電網路之一纏繞式環形網狀拓撲。
36. 如實例1至35中任一項之電路封裝,其中該等雙向光子通道經組態以將該等處理元件連接至具有一立方體網格拓撲之一光電網路中。
37. 一種方法,其包括:在一光電子網路之一第一電子處理元件處,產生具有一標頭及一有效負載之一電子封包,該標頭或該有效負載之一部分包括與該光電網路之一目的地電子處理元件相關聯之路由資訊;基於該路由資訊,判定自該第一電子處理元件經由該光電網路之一或多個中間電子處理元件至該目的地電子處理元件之一路徑,其中該第一處理元件、該目的地處理元件及該中間處理元件經由相關聯光子通道進行連接;在該第一處理元件處,將該封包路由至經由該等光子通道中之一者連接至沿著該路徑之一第一中間處理元件之一埠,並且將該封包自一電子信號變換至一光學信號以傳輸至該第一中間處理元件;在該一或多個中間處理元件中之每一者處,將該光學信號往回變換成該一電子信號,將該電子信號路由至經由該等光子通道中之一者連接至該等中間處理元件及該等目的地處理元件當中作為沿著該路徑之下一處理元件之一處理元件之一埠,並且將該電子信號變換成一光學信號以傳輸至作為沿著該路徑之下一處理元件之該處理元件;以及在該目的地處理元件處,將該光學信號轉換回一電子信號。
38. 如實例37之方法,其中將每一電子信號變換成一光學信號包括操作該各別電子處理元件之一調變器驅動器,以致使該光子通道之一相關聯調變器根據該封包來調變該光學信號,且其中將該光學信號往回變換成一電子信號包括由該光子通道之一光電偵測器量測該光學信號。
39. 如實例37或實例38之方法,其中該第一電子處理元件、該中間電子處理元件及該目的地電子處理元件中之每一者包括一路由器,且其中穿過該光電網路之該路徑由該第一電子處理元件、該中間電子處理元件及該目的地電子處理元件之該等路由器共同判定。
40. 如實例39之方法,其中該路由資訊依據在該第一維度及該第二維度中相對於該目的地電子處理元件之相對位置來規定該目的地,該方法進一步包括回應於該封包自該第一電子處理元件或該中間電子處理元件中之任一者至沿著該路徑之該下一電子處理元件之傳輸來修改該封包中之該路由資訊。
41. 如實例39或實例40之方法,其中該第一電子處理元件、該中間電子處理元件及該目的地電子處理元件之該等路由器各自包括一局部埠及與多個光子通道相關聯之埠,該等多個光子通道將該各別電子處理元件連接至該光電網路內之多個其他電子處理元件,其中該第一電子處理元件、該中間電子處理元件及該目的地電子處理元件之該等路由器各自將該封包引導至與連接至作為沿著該路徑之下一電子處理元件之該電子處理元件之該光子通道相關聯之該埠,且其中該目的地電子處理元件之該路由器將該封包引導至其局部埠。
42. 一種系統,其包括:一第一電路封裝及一第二電路封裝,其各自包括:一電子積體電路(EIC),該電子積體電路包括能夠傳輸及接收一訊息之複數個處理元件及複數個訊息路由器;及複數個晶片內雙向光子通道,其將該等訊息路由器連接至可對該訊息進行操作之一晶片內光電網路;以及複數個晶片間雙向光子通道,其將該第一電路封裝及該第二電路封裝之該等訊息路由器連接至一晶片間光電網路,該晶片間光電網路可將該訊息自該第一電路封裝中之一EIC傳輸至該第二電路封裝中之一EIC。
43. 如實例42之系統,其中每一電路封裝包含其中實施該EIC之一電子電路層以及其中實施該晶片內雙向光子通道之一光子電路層。
44. 如實例43之系統,其中每一電路封裝包含實施該電子電路層之一第一半導體晶片以及實施該光子電路層之一第二半導體晶片。
45. 如實例42至44中任一項之系統,其中使用該等電路封裝中之每一者之一光子積體電路(PIC)中之光學波導來實施該電路封裝之該複數個晶片內雙向光子通道。
46. 如實例42至45中任一項之系統,其中該晶片內雙向光子通道各自包括每一方向上之一或多個光子鏈路,在該PIC中,每一光子鏈路包括該光子鏈路之一輸入端處之一光學調變器、在所述該光子鏈路之一輸出端處之一光電偵測器以及將該光學調變器連接至該光電偵測器之一光學波導。
47. 如實例46之系統,其中該等訊息路由器包括各自用於與該等雙向光子通道中之一者介接之光子電路介面,每一光子電路介面包括:用於每一光子鏈路之一調變器驅動器,該調變器驅動器在該光子鏈路之該輸入端處與該光子鏈路介接;以及用於每一光子鏈路之一跨阻抗放大器,該跨阻抗放大器在該光子鏈路之該輸出端處與該光子鏈路介接。
48. 如實例46或實例47之系統,其中利用光纖來實施該複數個晶片間雙向光子通道。
49. 如實例48之系統,其中該第一電路封裝及該第二電路封裝各自包括用於經由該光纖將該第一電路封裝之該光電網路耦合至該第二電路封裝之該光電網路之一或多個光學耦合結構。
50. 如實例49之系統,其中該光學耦合器包括該等PIC中之邊緣耦合器。
51. 如實例49或實例50之系統,其中該等光學耦合結構包含位於該等PIC中之光柵耦合器之上的光纖附接單元(FAU)。
52. 如實例48至51中任一項之系統,其中該等晶片間雙向光子通道經組態以傳輸經多工光學信號。
53. 如實例52之系統,其中該等晶片間雙向光子通道各自包括每一方向上之方向性光子通道,一第一電路封裝之一第一PIC與一第二電路封裝之一第二PIC之間的每一方向性光子通道包括:在該第一PIC中,多個光學調變器,其用以產生多個各別波長下之經調變光學信號;一多工器,其用以將該多個波長下之該等經調變光學信號組合成一單個經多工光學信號;及一光學耦合結構,其用以將該經多工光學信號耦合至該光纖中;以及在該第二PIC中,一光學耦合結構,其用以將來自該光纖之該經多工光學信號耦合至該第二PIC中的;一解多工器,其用以將該經多工光學信號解多工成該多個波長下之經調變光學信號;及多個各別光電偵測器,其用以量測該多個波長下之該等經調變光學信號。
54. 如實例42至53中任一項之系統,其進一步包括用於將一光學載波信號供應給該等晶片內雙向光子通道之調變器之至少一個單波長光源以及至少一個多波長光源,用於將多個波長下之光學載波信號供應給該等晶片間雙向光子通道之調變器群組。
55. 如實例54之系統,其中該至少一個單波長光源及該至少一個多波長光源包括整合至該等電路封裝中之光源。
56. 如實例54之系統,其中該至少一個單波長光源及該至少一個多波長光源包括在該等電路封裝外部提供之光源,且經由一或多個光纖光學地耦合至該等電路封裝中之一或多個PIC。
57. 如實例42至56中任一項之系統,其進一步包括具有與複數個相關聯處理元件相關聯之一EIC之複數個額外電路封裝,將該第一電路封裝、該第二電路封裝及該等額外電路封裝配置成一個四邊形網格。
58. 如實例57之系統,其中該晶片內雙向光子通道及該晶片間雙向光子通道中之每一者連接該四邊形網格中之一對緊密毗鄰之處理元件,以產生該晶片間光電網路之一個四邊形網狀拓撲。
59. 如實例58之系統,其中該複數個晶片間雙向光子通道進一步經組態以直接連接該四邊形網格之相對邊緣上之若干對處理元件,以形成具有一可延伸纏繞式環形網狀拓撲之一光電網路。
60. 如實例42至59中任一項之系統,其中該訊息路由器經組態以經由該晶片間光電網路及該晶片內光電網路來路由該等訊息,其中當將該訊息自一第一處理元件發送至不經由一雙向光通道與該第一處理元件直接連接之一第二處理元件時,電子器件沿著經由一或多個第三處理元件之一路徑被路由至該第二處理元件,其中該訊息在該等第三處理元件中之每一者處自該光學域轉換位該電子域,並在與該各別第三處理元件相關聯之一訊息路由器處轉換回光學域。
61. 如實例60之系統,其中該等訊息路由器經組態以部分地基於每一訊息的與路由資訊相關聯之一部分來為該訊息判定穿過該光電網路之一路徑。
62. 一種實施一人工神經網路(ANN)之處理裝置,該人工神經網路包括具有相關聯的若干組權重之複數個神經節點,該處理裝置包括:一光電網路,其包括藉由雙向光子通道連接之複數個電子處理元件,每一處理元件包括一或多個處理引擎、通信地耦合至該一或多個處理引擎之記憶體以及與該等雙向光子通道中之兩者或更多者介接並通信地耦合至該記憶體之一訊息路由器,其中:該ANN之每一神經節點由該等處理元件中之一或多者實施;將與每一神經節點相關聯之該組權重儲存在實施彼神經節點之該一或多個處理元件之該記憶體中;基於該等神經節點之間的一預定啟動流,該等訊息路由器經組態以在該ANN之執行期間將實施該等各別神經節點之該等處理元件之間的複數個啟動串流化;且每一處理元件內之該一或多個處理引擎經組態以,對於由該處理元件實施之每一神經節點,對儲存在該處理元件之該記憶體中之相關聯的一組權重及串流化至該處理元件之彼節點之輸入啟動執行運算,以在該ANN之該執行期間為該節點產生一輸出啟動。
63. 如實例62之處理裝置,其中每一處理元件實施該等神經節點中之一或多者。
64. 如實例62或實例63之處理裝置,其中該等神經節點中之至少一者由該等處理元件中之多者聯合實施。
65. 如實例62至64中任一項之處理裝置,其中由同一處理元件實施之神經節點之間的啟動經由該處理元件之該記憶體來進行交換,且其中由不同處理元件實施之神經節點之間的啟動經由雙向光子通道中之相關聯雙向光子通道來進行交換。
66. 如實例62至65中任一項之處理裝置,其中該一或多個處理引擎包括一點積引擎,該點積引擎實施經組態以執行乘法累加(MAC)運算之乘法器與加法器之一組合樹。
67. 如實例66之處理裝置,其中該一或多個處理引擎進一步包括經組態以運算非線性啟動之一張量引擎。
68. 如實例62至67中任一項之處理裝置,其中該複數個電子處理元件在各自包括該等電子處理元件中之多者之一或多個電子積體電路(EIC)上實施,且其中將該等電子處理元件與每一EIC連接之該等雙向光子通道被實施為與該EIC堆疊之一相關聯光子積體電路(PIC)中之光學波導。
69. 如實例68之處理裝置,其中將每一EIC及其相關聯PIC作為一系統級封裝(SIP)封裝在一起。
70. 如實例68或實例69之處理裝置,其中在多個EIC上實施該複數個電子處理元件,且其中利用光纖來實施連接該多個EIC中不同EIC上之電子處理元件之該等雙向光子通道。
71. 如實例68至70中任一項之處理裝置,其中將該複數個電子處理元件配置在一個四邊形網格中,且其中該等雙向光子通道經共同組態以連接該網格中之若干緊密毗鄰之處理元件,以產生該光電網路之一個四邊形網狀拓撲。
72. 一種實施包括具有相關聯預定權重之複數個神經節點之一人工神經網路(ANN)之方法,該方法包括:連接至包括由雙向光子通道連接至複數個處理元件之一光電網路,每一處理元件包括一或多個處理引擎、通信地耦合至該一或多個處理引擎之記憶體以及包括兩個或更多個光子通道介面及至該記憶體之一通信耦合件之一訊息路由器;基於該等神經節點與該等處理元件之間的一指派,在運行時間之前將與每一神經節點相關聯之該預定權重載入至經指派以實施該神經節點之一或多個處理元件之該記憶體中;基於該等指派及該ANN內之該等神經節點之間的一預定啟動流,在運行時間使用該等訊息路由器在由該等處理單元實施之該等神經節點之間路由該等啟動,其中在由該等處理單元當中的不同源元件及目的地元件實施之節點之間路由之啟動在該源元件處及在沿著自該源元件至該目的地元件之一路徑的任何中間處理單元處進行變換,自一電形式變換為一光學形式,以便經由該等雙向光子通道進行傳輸,並且在該目的地元件及沿著該路徑之任何中間處理元件處,自一光學形式變換為一電形式。
73. 如實例72之方法,其中該等權重經由一PCIE介面自該光電網路外部之記憶體載入至該等處理元件之該記憶體中。
74. 如實例72或73之方法,其中由一共用處理元件實施之神經節點之間的啟動在該處理元件內以電子方式傳遞。
75. 如實例72至74中任一項之方法,其中在編譯時間判定該等神經節點與該等處理元件之間的該指派。
76. 如實例72至75中任一項之方法,其進一步包括操作該光電網路以:根據由該等所組態路由器做出之路由決策,在該等處理元件之間將啟動串流化;及對於每一節點,使用經指派以實施該節點之該一或多個處理元件之該一或多個處理引擎對串流化至該節點至該等相關聯權重及輸入啟動執行運算。
77. 如實例72至76中任一項之方法,其進一步包括基於該啟動流選擇性地啟動該等雙向光通道內之光子鏈路以降低功率消耗。
78. 如實例77之方法,其中每一雙向光子通道包括多個光子鏈路,且其中每一通道中之該等鏈路中之一者保持作用以充當一主鏈路。
79. 如實例72至78中任一項之方法,其中每一雙向光子通道包括每一方向上之多個光子鏈路,該方法進一步包括,在該光電網路之初始化期間,在該等雙向光子通道中之至少某些之上建立一邏輯通道,其中在一雙向光子通道之上建立一邏輯通道包括將該雙向光子通道內之每一方向上之光子鏈路接合在一起,以形成一鏈路接合群組。
80. 如實例79之方法,其中自該等接合群組省略無功能光子鏈路。
81. 如實例79或實例80之方法,其中基於與實施該ANN相關聯之頻寬要求來判定該接合群組中之光子鏈路之一數目。
82. 一種硬體電路,其包括:一組合樹,其具有複數個列及複數個行,該組合樹使用複數個硬體單元基於在該組合樹之一第一行處接收之輸入值產生一或多個點積值;一第一記憶體裝置,其用於儲存該等輸入值;一定序器,其經組態以自該第一記憶體裝置獲得該等輸入值並在一交換器網狀架構中重新組織該等輸入值;一時脈,其經組態以控制將該等經重新組織輸入值之一部分自該交換器網狀架構提供給該組合樹之該第一行之一時間;及複數個硬體單元,其中每一硬體單元包括經組態以累加該一或多個點積值之一累加器,其中在由該時脈定義之一或多個後續時間週期期間,將該等經重新組織輸入值之額外部分提供給與該第一行相關聯之硬體單元之累加器,且其中在由該時脈控制之一或多個額外時間週期期間,將與該第一行中之該等硬體單元之該等累加器中之每一者相關聯之一值寫入至該第一記憶體裝置。
83. 如實例82之硬體電路,其中該等硬體單元包括至少一個經融合多重累加(FMA)單元。
84. 如實例82至84中任一項之硬體電路,其中該組合樹包括一點積單元陣列,該點積單元陣列經組態以接收該等輸入值並基於由該第一行接收之該等輸入值來產生該一或多個點積值,該陣列之一單個點積單元包括該等硬體單元中之兩者或更多者。
85. 如實例84之硬體電路,其進一步包括一控制電路,該點積單元陣列包括資料路徑,該控制電路經組態以使用該等資料路徑來致使至少兩個權重值在該陣列之兩個相鄰行之間進行調換,或者將一權重值自該陣列之一第一列傳播至該陣列之一第二列。
86. 如實例82至85中任一項之硬體電路,其中該定序器包含將該組合樹操作地耦合至該第一記憶體裝置之一交換器網狀架構。
87. 如實例82至86中任一項之硬體電路,其中該定序器基於一組參數來判定提供給該第一行之一輸入向量序列,該組參數包括一步幅值、一膨脹值或一內核大小值中之至少一者。
88. 如實例82至87中任一項之硬體電路,其中該定序器經組態以藉由在一或多個時脈週期期間讀取自該第一記憶體裝置讀取之複數個權重值及複數個運算元值來產生該輸入向量序列之一個別輸入向量,該個別輸入向量包括該複數個該等權重值及該複數個該等運算元值。
89. 如實例88之硬體電路,其中該第一記憶體裝置包括記憶體庫,且其中選擇由該定序器在該一或多個時脈週期期間讀取之該複數個權重值及該複數個運算元值用於該讀取,使得:在自該記憶體庫進行接收之後,由該交換器網狀架構中之該定序器對該複數個權重值及該複數個運算元值進行置換,且由該定序器在一單通中讀取該等權重值及該等運算元值中之每一者。
90. 如實例88之硬體電路,其中該第一記憶體裝置包括記憶體庫,且其中選擇由該定序器在一或多個時脈週期期間讀取之該複數個權重值及該複數個運算元值用於該讀取,使得:在自該記憶體庫進行接收之後,由該交換器網狀架構中之該定序器對該複數個權重值及該複數個運算元值進行置換,且由該定序器在一單通中讀取該等權重值及該等運算元值中之每一者;並且自該等記憶體庫中之每一者讀取資料,其中該等記憶體庫之一列數目實質上等同於該組合樹之該第一行中之一列數目。
91. 如實例88之硬體電路,其中由該定序器對該第一記憶體裝置之每一連續讀取導致在前一時脈週期期間該定序器沒有自該第一記憶體裝置讀取新權重值及新運算元值。
92. 如實例82至91中任一項之硬體電路,其中一單個硬體單元操作地耦合至至少兩個毗鄰硬體單元,使得由該單個硬體單元產生值一輸出值作為一輸入值被共用給該至少兩個毗鄰硬體單元中之每一者。
93. 如實例82至92中任一項之硬體電路,其中該累加器包括經組態以當值流動經過一單個硬體單元時累加由該單個硬體單元產生之部分點積值之複數個累加器。
94. 如實例82至93中任一項之硬體電路,其中該組合樹包括與該等硬體單元相關聯之暫存器,該暫存器經組態以維持流動經過該等硬體單元之值之時脈對準。
95. 如實例82至94中任一項之硬體電路,其包括經組態以在已將一輸入向量序列之所有輸入至該組合樹之後為該等輸入值產生由儲存在該組合樹之該等硬體單元之累加器中之值建構的該組最終點積值之邏輯。
96. 如實例95之硬體電路,其中該邏輯經組態以將該組最終點積值儲存至該第一記憶體裝置。
97. 如實例82至96中任一項之硬體電路,其中該等輸入值包括至少一個權重值及至少一個運算元值。
98. 如實例82至97中任一項之硬體電路,其中該硬體電路係一光子積體電路(PIC)之一部分。
99. 一種方法,其包括:由一定序器自操作地耦合至該定序器之一組記憶體裝置讀取一第一複數個權重值及一第一複數個運算元值;在一組合樹之一第一行處,自該定序器接收複數個第一輸入向量,該等第一複數個輸入向量包括該第一複數個權重值及該第一複數個運算元值;由該組合樹之該第一行處之數學單元處理該第一複數個輸入向量,該等數學單元與該等輸入向量中之每一者相關聯,該等數學單元中之每一者具有至少一個累加器,該組合樹經組態以基於由該組合樹之該第一行處之該等數學單元接收之值在該等數學單元中之每一者之一累加器中產生一點積值;由該定序器自該組記憶體裝置讀取一第二複數個權重值及一第二複數個運算元值;在該組合樹之該第一行處,自該定序器接收一第二複數個輸入向量,該第二複數個輸入向量包括該第二複數個權重值及該第二複數個運算元值;由該組合樹之該第一行處之該等數學單元處理該第二複數個輸入向量,該第一複數個輸入向量及該第二複數個輸入向量係將由該組合樹之該第一行中之該等數學單元接收之一輸入向量序列之一部分;及在該組合樹之該第一行已接收到所有該輸入向量序列並由相關聯數學單元處理之後,藉由自駐留在該組合樹之該第一行之每一列中至該等數學單元中之每一者之每一累加器擷取一值來提供一組最終點積值。
100. 如實例99之方法,其中該至少一個累加器包括該等數學單元中之每一者中之複數個累加器,該複數個累加器經組態以當值流動經過該個別數學單元時累加由個別數學單元產生之部分點積值。
101. 一種硬體電路,其包括:一點積單元陣列,其被組織為一組合樹,該組合樹基於由該點積單元陣列作為輸入接收之權重值及啟動值來產生點積值,該點積單元陣列包括64列×32行之點積單元,每一點積單元經組態以接收兩個8位元值作為輸入且具有累加器;及一交換器網狀架構,其將該陣列操作地耦合至一組記憶體裝置,該組記憶體裝置儲存複數個權重值及複數個啟動值,該交換器網狀架構經組態以在包括一或多個時脈週期之一第一時脈序列期間提供64個輸入向量作為對該陣列之一第一行之輸入,其中一或多個額外時脈序列致使該交換器網狀架構將額外的複數組64個輸入向量提供給該陣列之該第一行,且其中當該陣列之該第一行中之該等累加器中之每一者具有32個位元時,將來自每一累加器之每一值寫回至該組記憶體裝置中。
102. 如實例101之硬體電路,其中該等點積單元包括複數個FMA單元。
103. 如實例101或實例102之硬體電路,其中該等點積單元經組態以接收一個32位元組輸入。
104. 如實例101至103中任一項之硬體電路,其中該組記憶體裝置包括64個庫之32位元組寬之記憶體裝置。
105. 一種電路封裝包括:一特殊應用積體電路(ASIC),其包括包含光子通道介面之複數個處理元件;及複數個光子通道,其經由該等光子通道介面連接該複數個處理元件以形成一光電網路之至少一部分,子複數個該複數個光子通道連接至該複數個處理元件之一個別處理元件,該個別處理元件經組態以:為該等個別處理元件自該子複數個光子通道選擇一主光子通道;為該個別處理元件自該子複數個光子通道選擇一組從光子通道;自該主光子通道提取一接收時脈信號;基於該所接收時脈信號,產生由該個別處理元件使用之一局部時脈信號,以對該個別處理元件執行一或多個局部操作;且經由該組從光子通道將一散佈式時脈信號傳輸至連接至該個別處理元件之一組該複數個處理元件,該傳輸該散佈式時脈信號包括使用該個別處理元件之該光子通道介面將該散佈式時脈信號自一電形式變換為一光學形式,該傳輸該散佈式時脈信號進一步包括在該組該複數個處理元件處將該散佈式時脈信號自該光學形式變換為該電形式,該散佈式時脈信號適合於跨越該組從光子通道進行傳輸,且適合於由該組該複數個處理元件用作相關聯局部時脈信號,該散佈式時脈信號係基於該所接收時脈信號而產生的。
106. 如實例105之電路封裝,其中該個別處理元件包括一抖動衰減鎖相迴路(PLL),其中該個別處理元件使用該抖動衰減PLL基於該所接收時脈信號來產生一低抖動時脈信號,且其中基於該所接收時脈信號之該局部時脈信號之該產生包括基於該低抖動時脈信號來產生該局部時脈信號。
107. 如實例105或106之電路封裝,其中該個別處理元件在該個別處理元件之開機時間期間選擇該主光子通道。
108. 如實例105至107中任一項之電路封裝,其中該個別處理元件在該個別處理元件之開機時間期間選擇該組從光子通道。
109. 如實例105至108中任一項之電路封裝,其中該個別處理元件經組態以:對該主光子通道執行一通道對準操作,該通道對準操作經組態以調整該個別處理元件之一或多個設置以補償時脈偏斜。
110. 如實例105至109中任一項之電路封裝,其中該個別處理元件藉由對經由該主光子通道接收之一傳入位元串流執行時脈資料復原來自該主光子通道提取該所接收時脈信號。
111. 如實例105至110中任一項之電路封裝,其中該個別處理元件藉由將一或多個傳出位元串流傳輸至該組處理元件來將該散佈式時脈信號傳輸至該組處理元件,該一或多個傳出位元串流係基於該散佈式時脈信號而產生的。
112. 如實例105至111中任一項之電路封裝,其中該個別處理元件包括一張量處理器及一DNN,其中該張量處理器及該DNN中之每一者經組態以基於該局部時脈信號來進行操作,且其中能夠使用該局部時脈信號在該DNN與該張量處理器之間傳遞一封包。
113. 如實例105至112中任一項之電路封裝,其中該個別處理元件包括包含該光子通道介面之一訊息路由器,該訊息路由器經組態以基於該局部時脈信號來進行操作。
114. 如實例105至113中任一項之電路封裝,其中該個別處理元件包括用於運算至少兩個向量之間的一或多個點積之一硬體電路,該硬體電路經組態以基於該局部時脈信號來進行操作。
115. 如實例105至114中任一項之電路封裝,其中該個別處理元件係一第一處理元件,該子複數個光子通道係一第一子複數個光子通道,該主光子通道係一第一主光子通道,該組從光子通道係一第一組從光子通道,該所接收時脈信號係一第一接收時脈信號,該局部時脈信號係一第一局部時脈信號,且該散佈式時脈信號係一第一散佈式時脈信號;且其中一第二子複數個該複數個光子通道連接至一第二處理元件,該第二處理元件包含於連接至該第一處理元件之該組處理元件中,該第二子複數個該複數個光子通道包含將該第一處理元件連接至該第二處理元件之該組從光子通道之一個別光子通道,該第二處理元件經組態以:為該第二處理元件自該個別光子通道選擇一第二主光子通道;為該第二處理元件自該第二子複數個光子通道選擇一第二組從光子通道;自該第二主光子通道提取一第二所接收時脈信號;基於該第二所接收時脈信號,產生由該第二處理元件使用之一第二局部時脈信號以對該第二處理元件執行一或多個局部操作;且經由該第二組從光子通道將一第二散佈式時脈信號傳輸至連接至該第二處理元件之一第二組該複數個處理元件,該傳輸該第二散佈式時脈信號包括使用該個別處理元件之該光子通道介面將該第二散佈式時脈信號自該電形式變換為該光學形式,該傳輸該第二散佈式時脈信號進一步包括在該第二組該複數個處理元件處將該第二散佈式時脈信號自該光學形式變換為該電形式,該第二散佈式時脈信號適合於跨越該第二組從光子通道進行傳輸並被該第二組該複數個處理元件用作相關聯局部時脈信號,該第二散佈式時脈信號係基於該第二所接收時脈信號而產生的。
116. 如實例115之電路封裝,其中該第一處理元件包括一第一組組件,該第二處理元件包括一第二組組件,該第一組組件包括一第一張量處理器、包含一光子通道介面之一第一訊息路由器或用於運算至少兩個向量之間的一或多個第一點積之一第一硬體電路中之至少一者,該第二組組件包括一第二張量處理器、包含一光子通道介面之一第二訊息路由器或用於運算至少兩個向量之間的一或多個第二點積之一第二硬體電路中之至少一者,該第一組組件經組態以基於該第一局部時脈信號來進行操作,並且該第二組組件經組態以基於該第二局部時脈信號來進行操作。
117. 一種方法包括:由複數個處理元件中之一個別處理元件自複數個光子通道選擇一主光子通道,該主光子通道係為該個別處理元件而選擇的,該複數個處理元件係一電路封裝之一特殊應用積體電路(ASIC)之一部分,該複數個處理元件藉由複數個光子通道連接在一起以形成該電路封裝內之一光電網路之至少一部分;由該個別處理元件自該複數個光子通道選擇一組從光子通道,該組從光子通道係為該個別處理元件而選擇的;由該個別處理元件以一數位格式自該主光子通道提取一所接收時脈信號;基於該數位格式中之該所接收時脈信號,由該個別處理元件產生由該個別處理元件使用之一局部時脈信號,以使用該ASIC之一數位部分對該個別處理元件執行一或多個局部操作;及由該個別處理元件並經由該組從光子通道將一散佈式時脈信號傳輸至連接至該個別處理元件之一組該複數個處理元件,該散佈式時脈信號係基於該數位格式中之該所接收時脈信號而產生的,該傳輸包括:將該散佈式時脈信號自一數位格式變換為一光學格式;跨越該組從光子通道路由該光學格式中之該散佈式時脈信號;在該組該複數個處理元件之光子介面處接收該光學格式中之該散佈式時脈信號;及在該組該複數個處理元件中使用相關聯光子通道介面將該散佈式時脈信號變換為該數位格式。
118. 如實例117之方法,其中該個別處理元件包括一抖動衰減鎖相迴路(PLL),其中該個別處理元件使用該抖動衰減PLL基於該所接收時脈信號來產生一低抖動時脈信號,且其中基於該所接收時脈信號之該局部時脈信號之該產生包括基於該低抖動時脈信號來產生該局部時脈信號。
119. 如實例117或實例118之方法,其中在該個別處理元件之開機時間期間執行對該主光子通道之該選擇。
120. 如實例117至119中任一項之方法,其中在該個別處理元件之開機時間期間對該組從光子通道之該選擇。
121. 如實例117至120中任一實例之方法,其包括:由該個別處理元件對該主光子通道執行一通道對準操作,該通道對準操作經組態以調整對該個別處理元件之一或多個設置以補償時脈偏斜。
122. 如實例117至121中任一項之方法,其中自該主光子通道對該所接收時脈信號之該提取包括對經由該主光子通道接收之一傳入位元串流執行時脈資料復原。
123. 如實例117至122中任一項之方法,其中該散佈式時脈信號至該組處理元件之該傳輸包括將一或多個傳出位元串流傳輸至該組處理元件,該一或多個傳出位元串流係基於該散佈式時脈信號而產生的。
124. 如實例117至123中任一項之方法,其中該個別處理元件包括一組組件,該組組件包括一張量處理器、包含光子通道介面之一訊息路由器或用於運算至少兩個向量之間的一點積之一硬體電路中之至少一者,該組組件經組態以基於該局部時脈信號來進行操作。
依據以上闡述,很明顯,在不背離本申請案中所闡述之概念之範疇的情況下,可使用各種技術來實施彼等概念。而且,雖然已具體參考某些實施方案來闡述該等概念,但熟習此項技術者將認識到,在不背離彼等概念之範疇的情況下,可在形式及細節上做出改變。如此,所闡述實施方案在所有方面皆被認為係說明性而非限制性的。亦應理解,本申請案不限於本文中所闡述之特定實施方案,而是在不背離本發明之範疇的情況下,諸多重新配置、修改及替換皆係可能的。
100: 系統級封裝/機器學習處理器/實例性電路封裝系統級封裝 100A: 系統級封裝 100B: 系統級封裝/第二系統級封裝 101: 電子積體電路 102: 光子積體電路 104: 磚塊/處理元件/目的地磚塊/所指派磚塊/電子處理元件/實例性電子處理元件 104A – 104D: 磚塊/處理元件/電子積體電路磚塊 106: 磚塊/處理元件/點積引擎/數位神經網路/實例性數位神經網路 108: 張量引擎/實例性張量引擎/張量處理器 110: 路由器/訊息路由器/電子訊息路由器 112: 一階靜態隨機存取記憶體 114: 二階靜態隨機存取記憶體 122: 高速周邊組件互連/高速周邊組件互連(PCIE)介面 124: 進階RISC機器(ARM)核心 126: 影像處理器 128: 記憶體控制器/外部記憶體控制器 130: 網路/光電網路/晶片上網路/實例性光電網路 131: 節點/中間節點 132: 光纖附接單元 133: 光纖 140: 基板 142: 記憶體晶片 200: 電路系統/相關電子電路系統/光學轉電介面之電子積體電路側部分 202: 「先進先出」(FIFO)暫存器 204: 相關聯驅動電路系統/電轉光學介面之電子積體電路側部分 206: 局部埠 210: 光子通道/雙向通道/雙向光子通道 212: 光子通道介面 214: 介面/光子通道介面 300: 指令定序器 302: 暫存器庫 304: 多工器 306: Ra暫存器 308: Rb暫存器 310: 算術邏輯單元 312: 加法器 314: Rg暫存器 400: 定序器/數位神經網路定序器 500AB: 波導/光學波導 500BC: 波導/光學波導 500CD: 波導/光學波導 502A – 502C: 調變器驅動器 504A – 504C: 調變器/光學調變器 506B – 506D: 調變器/跨阻抗放大器/電子吸收調變器 508B – 508D: 光電偵測器 520: 光柵耦合器 522: 波導 530: 光學分裂器 532: 波導 534A: 分裂器 534B: 分裂器 600: 光引擎 602: 分裂器樹 604: 路徑/光學路徑 610: 調變器 612: 調變器 614: 調變器 616: 調變器 620: 波導 622: 波導 624: 波導 626: 波導 630: 光電偵測器 632: 光電偵測器 634: 光電偵測器 636: 光電偵測器 640: 光柵耦合器 641: 光纖/第一光纖/光纖連接 642: 光纖連接/光纖連接器 643: 第二光纖/光纖連接 645: 光柵耦合器 650: 光引擎 652: 路徑/光學路徑 654: 解多工器 662: 調變器 664: 調變器 666: 調變器 668: 調變器 672A: 波導/光學鏈路 672B: 波導/光學波導 674A: 波導/光學鏈路 674B: 波導/光學波導 676A: 波導/光學鏈路 676B: 波導/光學波導 678A: 波導/光學鏈路 678B: 波導/光學波導 680: 多工器/分波多工多工器 682: 解多工器 692: 光電二極體/光電偵測器 694: 光電二極體/光電偵測器 696: 光電二極體/光電偵測器 698: 光電二極體/光電偵測器 700: 網路/實例性光電網路 702: 光子通道 800: 網路/實例性光電網路 802: 光子通道 804: 光子通道 900: 更大光電網路/實例性光電網路 902: 晶片內光子通道 904: 晶片間光子通道 906: 晶片間光子通道 1044: 緩衝器 1046: 局部電路 1112: 通道 1114: 通道 1116: 通道 1118: 通道 1120: 時脈資料復原(CDR)電路 1124: 抖動衰減鎖相迴路(PLL) 1126: 時脈信號/低抖動時脈信號 1130: 第一主鏈路 1132: 通道/光子通道/從光子通道 1134: 通道/光子通道/從光子通道 1136: 通道/光子通道/從光子通道 1138: 通道/光子通道/從光子通道 1140: 數位時脈信號 1200: 架構/實例性架構 1210-1 – 1210-64: 靜態隨機存取記憶體庫 1211: 定序器 1220: 交換器網狀架構 1230: 控制器 1240: 點積引擎/點積單元陣列/二維點積陣列 1250: 經融合多重累加/經融合多重累加單元 1252: 累加器 1260: 輸入向量 1280: 時脈 1300: 方法/實例性方法 1302: 操作 1304: 操作 1306: 操作 1308: 操作 1310: 操作 1312: 操作 1314: 操作 1316: 操作 1400: 方法/實例性方法 1402: 操作 1404: 操作 1406: 操作 1408: 操作 1410: 操作 1412: 操作 1414: 操作 1500: 方法/實例性方法 1502: 操作 1504: 操作 1506: 操作 1508: 操作 1510: 操作 1511: 操作 1512: 操作 1514: 操作 1600: 實例性方法 1602: 操作 1604: 操作 1606: 操作 1608: 操作 W1 – W4: 權重 X1 – X4: 運算元 λa1 – λa4: 波長 λb1 – λb4: 波長/單獨波長
各種附圖僅僅圖解說明目前所公開之標的物之各種實施例且不應被認為限制其範疇。
圖1A係根據某些實施例的示意性地圖解說明一實例性系統級封裝(SIP)之組件之一圖式。
圖1B係根據某些實施例的示意性地圖解說明圖1A之SIP內之一實例性光電網路之一圖式。
圖1C係根據某些實施例的圖解說明一側視圖中圖1A及圖1B之SIP之一實例性結構性實施方案之一圖式。
圖2A係根據某些實施例的圖解說明圖1A及1B之SIP的包含一訊息路由器之一實例性電子處理元件之一圖式。
圖2B係根據某些實施例的圖解說明一光電網路中之訊息路由器及光子通道之一實例性組態之一圖式。
圖3係根據某些實施例的圖解說明如可用於如圖2A中所展示之一電子處理元件內之一實例性張量引擎之一圖式。
圖4係根據某些實施例的圖解說明如可用於如圖2A中所展示之一電子處理元件內之一實例性數位神經網路(DNN)之一圖式。
圖5A係根據某些實施例的圖解說明一側視圖中一光電網路之光子組件及電子組件之一實例性實施方案之一圖式。
圖5B係根據某些實施例的圖解說明俯視圖中圖5A之實例性光電網路之一光子積體電路(PIC)之一圖式。
圖6A係根據某些實施例的圖解說明連接一SIP內之兩個處理元件之一實例性光子鏈路群組之一圖式。
圖6B係根據某些實施例的圖解說明將分波多工(WDM)用於晶片間光學通信之兩個SIP之一實例性系統之一圖式。
圖7係根據某些實施例的圖解說明具有一個四邊形網狀拓撲之一實例性光電網路之一圖式。
圖8係根據某些實施例的圖解說明具有一纏繞式環形網狀拓撲之一實例性光電網路之一圖式。
圖9係根據某些實施例的圖解說明具有一可延伸纏繞式環形網狀拓撲之一實例性光電網路之一圖式。
圖10係圖解說明用於一處理器內之時脈分佈之習用技術之一圖式。
圖11係根據某些實施例的圖解說明使用一光子網狀架構來攜載根時脈信號之一實例之一圖式。
圖12係根據某些實施例的圖解說明一DNN之一實例架構之一圖式。
圖13係根據某些實施例的圖解說明用於操作一DNN之一實例性方法之一流程圖。
圖14係根據某些實施例的圖解說明使用一光電網路進行時脈信號分佈之一實例性方法之一流程圖。
圖15係根據某些實施例的圖解說明用於在一光電網路內傳遞一訊息之一實例性方法之一流程圖。
圖16係根據某些實施例的圖解說明在一ML處理器上實施一人工神經網路(ANN)之一實例性方法之一流程圖。
100A:系統級封裝
100B:系統級封裝/第二系統級封裝
602:分裂器樹
640:光柵耦合器
641:光纖/第一光纖/光纖連接
642:光纖連接/光纖連接器
643:第二光纖/光纖連接
645:光柵耦合器
650:光引擎
652:路徑/光學路徑
654:解多工器
662:調變器
664:調變器
666:調變器
668:調變器
672A:波導/光學鏈路
672B:波導/光學波導
674A:波導/光學鏈路
674B:波導/光學波導
676A:波導/光學鏈路
676B:波導/光學波導
678A:波導/光學鏈路
678B:波導/光學波導
680:多工器/分波多工多工器
682:解多工器
692:光電二極體/光電偵測器
694:光電二極體/光電偵測器
696:光電二極體/光電偵測器
698:光電二極體/光電偵測器
λb1:波長/單獨波長
λb2:波長/單獨波長
λb3:波長/單獨波長
λb4:波長/單獨波長

Claims (20)

  1. 一種系統,其包括: 一第一電路封裝及一第二電路封裝,其各自包括 一電子積體電路(EIC),其包括複數個處理元件以及能夠傳輸及接收一訊息之複數個訊息路由器,及 複數個晶片內雙向光子通道,其將該等訊息路由器連接至可對該訊息進行操作之一晶片內光電網路中;以及 複數個晶片間雙向光子通道,其將該第一電路封裝及該第二電路封裝之該等訊息路由器連接至可將該訊息自該第一電路封裝中之一EIC傳輸至該第二電路封裝中之一EIC之一晶片間光電網路中。
  2. 如請求項1之系統,其中每一電路封裝包含在其中實施該EIC之一電子電路層以及在其中實施該等晶片內雙向光子通道之一光子電路層。
  3. 如請求項2之系統,其中每一電路封裝包含實施該電子電路層之一第一半導體晶片以及實施該光子電路層之一第二半導體晶片。
  4. 如請求項1之系統,其中使用該等電路封裝中之每一者之一光子積體電路(PIC)中之光學波導來實施該電路封裝之該複數個晶片內雙向光子通道。
  5. 如請求項1之系統,其中該等晶片內雙向光子通道各自包括每一方向上之一或多個光子鏈路,每一光子鏈路在該PIC中包括該光子鏈路之一輸入端處之一光學調變器、該光子鏈路之一輸出端處之一光電偵測器以及將該光學調變器連接至該光電偵測器之一光學波導。
  6. 如請求項5之系統,其中該等訊息路由器包含各自用於與該等雙向光子通道中之一者介接之光子電路介面,每一光子電路介面包括針對每一光子鏈路該光子電路介面利用來在該光子鏈路之該輸入端處進行介接之一調變器驅動器以及針對每一光子鏈路該光子電路介面利用來在該光子鏈路之該輸出端處進行介接之一跨阻抗放大器。
  7. 如請求項5之系統,其中利用光纖來實施該複數個晶片間雙向光子通道。
  8. 如請求項7之系統,其中該第一電路封裝及該第二電路封裝各自包含用於經由該光纖將該第一電路封裝之該光電網路耦合至該第二電路封裝之該光電網路之一或多個光學耦合結構。
  9. 如請求項8之系統,其中該等光學耦合結構包含該等PIC中之邊緣耦合器。
  10. 如請求項8之系統,其中該等光學耦合結構包含位於該等PIC中之光柵耦合器之上的光纖附接單元(FAU)。
  11. 如請求項7之系統,其中該等晶片間雙向光子通道經組態以傳輸經多工光學信號。
  12. 如請求項11之系統,其中該等晶片間雙向光子通道各自包括每一方向上之方向性光子通道,介於一第一電路封裝之一第一PIC與一第二電路封裝之一第二PIC之間的每一方向性光子通道包括: 在該第一PIC中,多個光學調變器,其用以形成多個各別波長下之經調變光學信號;一多工器,其用以將該多個波長下之該等經調變光學信號組合成一單個經多工光學信號;及一光學耦合結構,其用以將該經多工光學信號耦合至該光纖中;及 在該第二PIC中,一光學耦合結構,其用以將該經多工光學信號自該光纖耦合至該第二PIC中;一解多工器,其用以將該經多工光學信號解多工成該多個波長下之經調變光學信號;及多個各別光電偵測器,其用以量測該多個波長下之該等經調變光學信號。
  13. 如請求項1之系統,其進一步包括:至少一個單波長光源,其用於將一光學載波信號供應給該等晶片內雙向光子通道之調變器;及至少一個多波長光源,其用於將多個波長下之光學載波信號供應給該等晶片間雙向光子通道之調變器群組。
  14. 如請求項13之系統,其中該至少一個單波長光源及該至少一個多波長光源包括整合至該等電路封裝中之光源。
  15. 如請求項13之系統,其中該至少一個單波長光源及該至少一個多波長光源包括外部地提供給該等電路封裝並經由一或多個光纖光學地耦合至該等電路封裝中之一或多個PIC之光源。
  16. 如請求項1之系統,其進一步包括具有帶有複數個相關聯處理元件之一相關聯EIC之複數個額外電路封裝,該第一電路封裝、該第二電路封裝及該等額外電路封裝配置在一個四邊形網格中。
  17. 如請求項16之系統,其中該晶片內雙向光子通道及該晶片間雙向光子通道中之每一者對該四邊形網格中之一對緊密毗鄰之處理元件進行連接以產生該晶片間光電網路之一個四邊形網狀拓撲。
  18. 如請求項17之系統,其中該複數個晶片間雙向光子通道進一步經組態以對該四邊形網格之相對邊緣上之若干對處理元件進行直接連接以形成具有一可延伸纏繞式環形網狀拓撲之一光電網路。
  19. 如請求項1之系統,其中該等訊息路由器經組態以經由該晶片間光電網路及該晶片內光電網路來路由該等訊息,其中當經由一雙向光子通道將該訊息自一第一處理元件發送至與該第一處理元件不直接連接之一第二處理元件時,沿著經由一或多個第三處理元件之一路徑將電子路由至該第二處理元件,其中在該等第三處理元件中之每一者處將該訊息自一光學域轉換為一電子域並在與該各別第三處理元件相關聯之一訊息路由器處轉換回該光學域。
  20. 如請求項19之系統,其中該等訊息路由器經組態以部分地基於每一訊息的與路由資訊相關聯之一部分來判定對於該訊息穿過該光電網路之一路徑。
TW111122925A 2021-06-18 2022-06-20 多晶片光電網路 TW202328987A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163212353P 2021-06-18 2021-06-18
US63/212,353 2021-06-18

Publications (1)

Publication Number Publication Date
TW202328987A true TW202328987A (zh) 2023-07-16

Family

ID=84489247

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111122925A TW202328987A (zh) 2021-06-18 2022-06-20 多晶片光電網路

Country Status (7)

Country Link
US (6) US20220405566A1 (zh)
EP (2) EP4281906A2 (zh)
JP (1) JP2024515703A (zh)
KR (1) KR20240054223A (zh)
CN (1) CN117063185A (zh)
TW (1) TW202328987A (zh)
WO (1) WO2022266676A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321840A1 (en) * 2021-03-30 2022-10-06 Shenzhen Antu Autonomous Driving Technologies Ltd. Method for transmitting high bandwidth camera data through serdes links

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995448B1 (en) 2018-02-08 2024-05-28 Marvell Asia Pte Ltd Method and apparatus for performing machine learning operations in parallel on machine learning hardware
US10997510B1 (en) 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US11726383B2 (en) * 2020-10-14 2023-08-15 California Institute Of Technology Modular hybrid optical phased arrays
CN112992695A (zh) * 2021-04-23 2021-06-18 南京光智元科技有限公司 光子半导体装置及其制造方法
US11835777B2 (en) 2022-03-18 2023-12-05 Celestial Ai Inc. Optical multi-die interconnect bridge (OMIB)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035972A1 (en) * 1995-05-08 1996-11-14 Testdesign Corporation Optical fiber interface for integrated circuit test system
GB9617907D0 (en) * 1996-08-28 1996-10-09 British Telecomm Communications network
US6744552B2 (en) * 1998-04-02 2004-06-01 Michael Scalora Photonic signal frequency up and down-conversion using a photonic band gap structure
US6850515B2 (en) * 2001-01-30 2005-02-01 The Regents Of The University Of California Optical layer multicasting using a single sub-carrier header and a multicast switch with active header insertion via light circulation
US7570844B2 (en) * 2005-01-18 2009-08-04 Doron Handelman Photonic integrated circuit device and elements thereof
US9383516B2 (en) * 2014-09-02 2016-07-05 Huawei Technologies Co., Ltd. System and method for optical input/output arrays
US11373088B2 (en) * 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321840A1 (en) * 2021-03-30 2022-10-06 Shenzhen Antu Autonomous Driving Technologies Ltd. Method for transmitting high bandwidth camera data through serdes links
US11902706B2 (en) * 2021-03-30 2024-02-13 Shenzhen Antu Autonmous Driving Technologies Ltd. Method for transmitting high bandwidth camera data through SerDes links

Also Published As

Publication number Publication date
US20240111091A1 (en) 2024-04-04
WO2022266676A3 (en) 2023-01-26
EP4336859A2 (en) 2024-03-13
US20220405562A1 (en) 2022-12-22
EP4281906A2 (en) 2023-11-29
WO2022266676A2 (en) 2022-12-22
US20220404544A1 (en) 2022-12-22
EP4336859A3 (en) 2024-06-05
JP2024515703A (ja) 2024-04-10
US20220405566A1 (en) 2022-12-22
US20220405056A1 (en) 2022-12-22
US20220404545A1 (en) 2022-12-22
KR20240054223A (ko) 2024-04-25
CN117063185A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
TW202328987A (zh) 多晶片光電網路
US20230358957A1 (en) Photonic communication platform
US8320761B2 (en) Broadband and wavelength-selective bidirectional 3-way optical splitter
US20100266295A1 (en) Optical-signal-path routing in a multi-chip system
US7865084B2 (en) Multi-chip systems with optical bypass
Ramini et al. Engineering a bandwidth-scalable optical layer for a 3d multi-core processor with awareness of layout constraints
TWI821997B (zh) 光子半導體裝置及其製造方法
Cheng et al. Optical interconnection networks for high-performance systems
US20230308188A1 (en) Photonic communication platform and related circuits
Xu et al. Silicon nanophotonics for future multicore architectures: opportunities and challenges
Sunny et al. Machine learning accelerators in 2.5 d chiplet platforms with silicon photonics
Ishikawa et al. Optically interconnected parallel computing systems
O'Connor et al. Wavelength division multiplexed photonic layer on cmos
Wen et al. Silicon photonic memory interconnect for many-core architectures
Siokis et al. Laying out interconnects on optical printed circuit boards
Zhu High Performance Silicon Photonic Interconnected Systems
Reinbrecht et al. PHiCIT: improving hierarchical networks-on-chip through 3D silicon photonics integration
Carmean et al. Photonic-integrated circuits and optical fabrics for heterogeneous computing systems
US20230297237A1 (en) Photonic memory fabric for system memory interconnection
CN113900276A (zh) 光电计算平台
Ahn et al. CMOS nanophotonics: technology, system implications, and a CMP case study
Terzenidis et al. Optics for Disaggregating Data Centers and Disintegrating Computing
CN117151183A (zh) 一种用于深度学习的芯粒互联系统
Fey et al. Parallel architectures for optoelectronic VLSI processing
Desai Design and analysis of energy-efficient hierarchical electro-photonic network-on-chip architectures