TWI786073B - 排列環狀網路及傳輸資料的方法 - Google Patents
排列環狀網路及傳輸資料的方法 Download PDFInfo
- Publication number
- TWI786073B TWI786073B TW106140090A TW106140090A TWI786073B TW I786073 B TWI786073 B TW I786073B TW 106140090 A TW106140090 A TW 106140090A TW 106140090 A TW106140090 A TW 106140090A TW I786073 B TWI786073 B TW I786073B
- Authority
- TW
- Taiwan
- Prior art keywords
- communication
- communication nodes
- data transmission
- source synchronous
- ring network
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000006854 communication Effects 0.000 claims abstract description 315
- 238000004891 communication Methods 0.000 claims abstract description 315
- 230000005540 biological transmission Effects 0.000 claims description 115
- 238000012546 transfer Methods 0.000 claims description 64
- 230000001360 synchronised effect Effects 0.000 claims description 57
- 230000002457 bidirectional effect Effects 0.000 claims description 40
- 238000010586 diagram Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 14
- 230000004044 response Effects 0.000 description 13
- 235000008694 Humulus lupulus Nutrition 0.000 description 8
- 230000001934 delay Effects 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000011295 pitch Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/422—Synchronisation for ring networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/08—Intermediate station arrangements, e.g. for branching, for tapping-off
- H04J3/085—Intermediate station arrangements, e.g. for branching, for tapping-off for ring networks, e.g. SDH/SONET rings, self-healing rings, meashed SDH/SONET networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4637—Interconnected ring systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L2012/421—Interconnected ring systems
Abstract
一種排列環狀網路包括複數個雙向來源同步環狀網路,其各具有複數個資料傳輸站與複數個通訊節點。每一個通訊節點都耦接至各該複數個雙向來源同步環狀網路中的其中一個資料傳輸站。
Description
本申請案主張2017年11月17日所申請之美國專利申請第15/816,374號、名稱為「排列環狀網路」的優先權,其係主張2016年11月23日所申請之美國臨時申請案第62/425,798號優先權,且係藉由引用形式而併入本文。
本發明與具有複數個環的排列環狀網路有關,其提供了可擴展、高頻寬、低潛時的點對點晶載通訊解決方案。
晶載通訊系統有擴展的問題,而且晶片間通訊節點數以及對於晶片上資料頻寬之需求也總是在增加。高速串行/解串行(SERDES)通訊協定趨向於提供每引腳為每秒100Gb的操作頻寬。因此,具有1000個引腳(pin)的晶片會需要高達每秒100兆位元的晶片輸入/輸出(I/O)頻寬。需要提供晶載通訊頻寬來支持這些規格。需要這種頻寬的系統的實例包括用於機架規模資料中心的交換結構、神經網路、GPU計算系統、系統層級場可編程閘極陣列(FPGAs)、晶片上系統(SoC)之多核心系統、以及用於高性能多核心及多庫最終層級快取之相干式記憶體匯流排。
晶載通訊之物理限制包括晶載佈線長度,其對於延遲與操作頻率而言至為關鍵。長的佈線會使性能嚴重衰減,因頻率對於網路頻寬而言具有第
一級效應。高扇出(fan-out)節點係藉由產生位置和路由壅塞、並且對網路增加閘道和線路延遲而進一步降低頻寬。
晶載通訊網路典型地係實施作為回應於一共同時鐘訊號而操作之同步系統。時鐘分配對於建置大規模高頻寬的晶載網路而言帶來重大障礙。更具體地,時鐘偏斜將限制網路的操作頻率,而所需要的時鐘功率會對網路帶來限制。
此外,在典型的通訊網路拓樸中存在關於放大通訊節點數及維持高操作頻率之挑戰。
典型的通訊網路拓樸包括:(1)全網式拓樸,(2)交叉型拓樸,以及(3)環形網路拓樸。對於這些網路拓樸中的每一種而言,系統的延遲和操作頻率將因互連的線路長度增加而嚴重衰減。此外,高扇出節點將導致位置與路由壅塞,其將進一步降低系統的速度和功率性能。
在全網式拓樸中,頻寬可定義為數值N*(N-1)/2,其中N是網路中的節點數。然而,全網式拓樸系統的扇出係隨節點數(N)增加而增加。
在交叉型拓樸中,所需要的多工器數量會隨網路中節點數(N)的增加而增加,其縮放因子為N**2。此外,每一多工器之輸出數會隨節點數N增加而增加,其縮放因子為N。
在環狀網路拓樸中,流通量並不隨節點數(N)增加而縮放。然而,節點的扇出會不被希望地隨節點數(N)增加而增加,其縮放因子為Log(N)。
因為這些網路拓樸是利用晶載互連(其並非完美線路)而實施,這些網路的延遲和操作頻率將隨線路長度增加而嚴重衰減。此外,高扇出節點將導致位置和路由壅塞,其將降低網路的速度和功率性能。
就一方面而言,因為與摩爾定律(Moore’s law)關聯的縮放及新的計算範例的出現增加了晶載通訊節點的數量,所以會需要有更多的晶載頻
寬。然而,當使用傳統的網路拓樸時,增加晶載節點數將會因線路長度及路由壅塞的增加而降低系統頻寬。因此,一種晶載頻寬縮放「牆」有效地限制了晶載通訊網路的成長。
因此,會需要有能夠克服晶載頻寬縮放牆的改良網路拓樸。進一步還需要使這種通訊網路能夠簡易縮放,能夠於數以千計或以上的晶載通訊節點之間提供通訊。進一步還需要使這種通訊網路能夠以高頻寬操作,這提供高達每秒千兆(peta)位元的晶載通訊頻寬。進一步還需要使這種通訊網路具有低潛時(例如,低於100ns之潛時)。
因此,本發明提供了一種排列環狀網路,其包括複數個通訊節點與複數個雙向來源同步環狀網路,其每一個都具有複數個資料傳輸站。每一個通訊節點都耦接到每一個該雙向來源同步環狀網路中的其中一個資料傳輸站。用以於環狀網路上傳送資料的來源同步技術消除了時鐘分配的挑戰。雙向來源同步環狀網路的數量可經選擇,以提供在各種通訊節點之間進行通訊所需的頻寬。在這種方式中,本發明之排列環狀網路可簡易縮放。
鑑於如附說明與圖式,將可更完整理解本發明。
100、500、900:排列環狀網路
101、102、103:雙向來源同步環狀網路
120、130、1201、1211:站邏輯
121、1205、1215、1220、1225、1234、1301、1303:延遲線路
122、1202、1212、1225:多工器
141:時鐘訊號線路
141D:時鐘訊號線路結構
142:訊息匯流排
142D:訊息匯流排結構
200、600、1000:互連矩陣
300、700、1100:路由表
400、800:頻寬估算表
1203、1213、1231:接收FIFO
1204、1214、1232:傳送FIFO
1210:協商邏輯
1230:通訊節點邏輯
1235:通訊節點時鐘生成器
1236:同步器電路
1301:對資料傳輸站(CN-DTS)時鐘生成電路
1310:協商電路
A0-A7、B0-B7、C0-C7:資料傳輸站
CKA:主時鐘訊號
CKAOUT、CKAIN:時鐘訊號
D141和D142:延遲
MSG_AOUT、MSG_AIN:訊息
N0-N7:通訊節點
第1A圖是根據本發明一個具體實施例之一排列環狀網路的方塊圖,其包括八個通訊節點和三個雙向來源同步環狀網路。
第1B圖是一方塊圖,其根據本發明一個具體實施例說明第1A圖所示排列環狀網路的其中一個通訊連結。
第1C圖是一波形圖,其根據本發明一個具體實施例說明第1B圖之各種訊號的來源同步時序。
第2圖是一互連矩陣,其根據本發明一個具體實施例定義了第1A圖所示排列環狀網路的三個環狀網路的通訊節點和資料傳輸站之間的連接。
第3圖是一路由表,其根據本發明一個具體實施例定義了通過第1A圖所示排列環狀網路的通訊節點之間的訊務流量。
第4圖係一頻寬估算表,其根據本發明一個具體實施例定義了第3圖所示路由表之相鄰資料傳輸站之間的頻寬。
第5圖係根據本發明一個具體實施例之一排列環狀網路的方塊圖,該排列環狀網路包括八個通訊節點和三個雙向來源同步環狀網路。
第6圖是一互連矩陣,其係根據本發明一個具體實施例定義了在第5圖之排列環狀網路的三個環狀網路的通訊節點和資料傳輸站之間的連接。
第7圖是一路由表,其係根據本發明一個具體實施例定義了通過第5圖之排列環狀網路之通訊節點之間的訊務流量。
第8圖是一頻寬估算表,其係根據本發明一個具體實施例定義了第7圖所示路由表之相鄰資料傳輸站之間的頻寬。
第9圖為根據本發明一替代具體實施例之一排列環狀網路的方塊圖,該排列環狀網路包括八個通訊節點和四個雙向來源同步環狀網路。
第10圖是一互連矩陣,其係根據本發明一個具體實施例定義了第9圖所示排列環狀網路的四個環狀網路的通訊節點和資料傳輸站之間的連接。
第11圖是一路由表,其係根據本發明一個具體實施例定義了通過第9圖所示排列環狀網路之通訊節點之間的通訊流量。
第12圖是一方塊圖,其根據本發明一個具體實施例說明一通訊節點與一相應的資料傳輸站。
第13圖是一方塊圖,其根據本發明一替代具體實施例說明一通訊節點與一相應的資料傳輸站。
一般而言,本發明提供了一種排列環狀網路架構,其包括在複數個網路節點之間共享之複數個雙向來源同步通訊環。來源同步技術是用以緩解時鐘分配挑戰,其中一傳送節點發送時鐘與資料至一接收節點。該接收節點利用所接收的時鐘來閂鎖資料。時鐘扇出受限於資料匯流排寬度的大小。時鐘偏斜(skew)是由時鐘和相對應資料之間的延遲關係所設定。注意來源同步技術將僅以點對點互連(例如:環狀網路)方式作用。許多晶載互連資源是實施點對點網路所需;然而,摩爾定律預測了隨著處理技術的演進,金屬層的數量將向上放大、金屬間距將減少、而且每一單位面積上將有更多線路為可用,藉此提供了實施點對點網路所需之晶載互連資源。
雙向來源同步環狀網路提供了本發明排列環狀網路架構之建構區塊。雙向環狀網路是一種簡單的點對點網路,其提供了1之扇出(亦即,網路的每一個節點之每一個方向中有1個輸入與1個輸出)。然
而,雙向來源同步環狀網路具有基本的性能限制,在此其係稱為「跳躍損耗(hopping loss)」。跳躍損耗會在訊息需要於位於一環狀網路上的一傳送節點和一接收節點之間的節點上「跳躍」時發生。如下文更詳細說明者,藉由使相鄰節點之間的可用路徑達最大化,可使本發明之排列環狀網路中的跳躍損耗達最小化或消除。藉由使用來源同步發訊技術,可於排列環狀網路上進行高速、低偏斜和低功率的通訊。在特別的具體實施例中,本發明之排列環狀網路可賦能大約一千個晶載通訊節點、以及每秒千兆位元的晶載通訊頻寬。排列環狀網路提供了功率效率以及針對廣大的網路尺寸範圍、晶載資源限制、頻寬需求和應用特定最佳化之解決方案。
第1A圖是根據本發明一個具體實施例之排列環狀網路100的方塊圖。在該具體實施例中,排列環狀網路100包括八個通訊節點N0-N7,以及三個雙向來源同步環狀網路101、102和103,其各被製造於同一積體電路晶片上。如下文將更詳細說明,環狀網路101-103中每一個都作用為一通訊通道。雖然該排列環狀網路100包括八個通訊節N0-N7與三個通訊通道101-103,但應理解在其他具體實施例中也可以使用其他數量的通訊節點和通道。一般而言,在晶片上的通訊節點的數量是由數值N來表示,而雙向環狀網路的數量是由數值M所表示。通訊通道的數量(M)係經選擇以於通訊網路的頻寬和通訊網路的面積-功率限制之間提供適當折衷。進行此選擇之基礎係如下文進一步詳細說明。
每一個通訊通道101-103都包括複數個資料傳輸站,其係由雙向連結(互連)所連接。更具體而言,通訊通道101包括資料傳輸站A0-A7,通訊通道102包括資料傳輸站B0-B7,而通訊通道103包括資料傳輸站C0-C7。通訊通道101的雙向連結係以實線繪示,其將資料傳輸
站A0-A7連接為一環。通訊通道102的雙向連結係以虛線表示,其將資料傳輸站B0-B7連接為一環。通訊通道103的雙向連結是以點虛線表示,其將資料傳輸站C0-C7連接為一環。該雙向連結允許在順時針與逆時針兩個方向上同時傳送資料/時鐘訊號。
一般而言,資料傳輸站A0-A7、B0-B7及C0-C7之每一個提供了一介面,其使得資料可於通訊節點N0-N7和通訊通道101-103之間轉移。資料傳輸站A0-A7、B0-B7和C0-C7,以及通訊節點N0-N7的結構和操作細節係於下文中更詳細提供。
一般而言,每一個通訊通道101-103係被耦接,以接收一主時鐘訊號。因此,在第1A圖的示例中,通訊通道101、102與103係耦接以分別接收主時鐘訊號CKA、CKB和CKC。在該具體實施例中,資料傳輸站A0、B0和C0係耦接以分別接收主時鐘訊號CKA、CKB和CKC。然而,在其他具體實施例中,通訊通道101、102和103中的其他資料傳輸站可耦接以分別接收主時鐘訊號CKA、CKB與CKC。雖然描述的是三個別的主時鐘訊號CKA、CKB與CKC,但可理解每一個主時鐘訊號CKA、CKB與CKC每一個可得自一單獨的主時鐘訊號。在該具體實施例中,每一個主時鐘訊號CKA、CKB與CKC具有相同的頻率。
傳統的時鐘生成電路(例如相位鎖定迴圈電路)可用以產生主時鐘訊號CKA、CKB與CKC。在該具體實施例中,主時鐘訊號可具有大約5GHz或以上的頻率。然而,應理解在其他具體實施例中,主時鐘訊號可具有其他頻率。主時鐘訊號的頻率和電壓可根據環狀網路架構的頻寬需求與功率最佳化而縮放。在該具體實施例中,資料傳輸站A0、B0和C0分別接收主時鐘訊號CKA、CKB和CKC。其他資料傳輸站中的每一個係自其相鄰的鄰近者接收其時鐘訊號。亦即,主時鐘號
CKA、CKB與CKC係有效率地分別依序傳送至通訊通道101、102與103的每一個資料傳輸站。
每一個通訊通道101、102與103都分別針對其相對應的主時鐘訊號CKA、CKB與CKC以來源同步方式運作。第1B圖是一方塊圖,其說明了在通訊通道101中的資料傳輸站A0與資料傳輸站A1之間的其中一個通訊連結,其中此通訊連結允許以來源同步方式根據主時鐘訊號CKA而從資料傳輸節點A0內的站邏輯120傳送訊息MSG_A至資料傳輸節點A1內的站邏輯130。應理解也存在有相同的通訊連結用於根據主時鐘訊號CKA以來源同步方式從資料傳輸站A1傳送訊息至資料傳輸站A0(亦即,提供了雙向通訊)。進一步應理解在每一個通訊通道101-103中的資料傳輸站的每一相鄰對都具有類似的雙向來源同步通訊連結。
第1B圖說明了用於從資料傳輸站A0至資料傳輸站A1之訊息與時鐘訊號傳送的資料傳輸站A0與A1的相關部分,包括站邏輯120、延遲線路121、多工器122、時鐘訊號線路141、訊息匯流排142以及站邏輯130。第1C圖為波形圖,其根據本發明一個具體實施例說明了第1B圖之各種訊號的來源同步時序。
一般而言,資料傳輸站A0可於兩個路徑上傳送輸出訊息。在第一路徑中,站邏輯120所接收的訊息MSG_A(例如,來自相鄰的資料傳輸站A7)被轉發到資料傳輸站A1。在這種情況中,站邏輯130將訊息MSG_A轉發至多工器122。多工器122係受控制以路由此訊息作為輸出訊息MSG_AIN。站邏輯120和多工器122引入關於主時鐘訊號CKA之一延遲DA0。
在第二路徑中,由耦接至資料傳輸站A0的通訊節點(例如,通訊節點N1)所提供的訊息係由多工器122而路由。多工器122係受控
制以路由此一訊息作為輸出訊息MSG_AIN。通訊節點和多工器122將關於主時鐘訊號CKA之延遲DA0引入該訊息中。第1C圖說明了存在於主時鐘訊號CKA和傳送的訊息MSG_AIN之間的延遲DA0。
因為傳送的訊息MSG_0AIN係關於主時鐘訊號CKA而延遲,故使用延遲線路121來對主時鐘訊號CKA添加一延遲D121,藉此產生資料傳輸站A0的傳送時鐘訊號CKAIN。延遲線路121所引入之延遲D121係經選擇以確保時鐘訊號CKAIN具有相對於從資料傳輸站A0傳送之訊息MSG_AIN之適當設定和保持時間。在一個具體實施例中,延遲線路121的延遲D121係等化為上述節點延遲DA0。亦即,傳送訊息MSG_AIN係利用資料傳輸站A0(和相關聯的通訊節點)的已知內部延遲而同步至傳送時鐘訊息CKAIN。
注意用以實施資料傳輸站A0和A1之間的時鐘訊號線路141和訊息匯流排142之結構141D和142D會呈現顯著延遲(例如緩衝器延遲)。時鐘訊號線路結構141D和訊息匯流排結構142D所引入的延遲係分別表示為延遲D141和D142。因此,由資料傳輸站A0所接收之時鐘訊號CKAOUT相對於資料傳輸站A0所傳送之時鐘訊號CKAIN係延遲了D141。同樣地,資料傳輸站A1所接收之訊息MSG_AOUT相對於資料傳輸站A0所傳送之訊息MSG_AIN係延遲了D142。此關係係示於第1C圖中。為了維持資料傳輸站A0所建立之所需設定和保持時間(當產生CKAIN和MSG_AIN時),延遲D141和D142必須相同。因此非常重要的是,用以實施時鐘訊號線路結構141D和訊息匯流排結構142D的線路與緩衝器是要經高度等化及平衡的,以使設定與保持時間損耗達最小化。亦即,時鐘路徑結構141D和訊息匯流排結構142D應於資料傳輸站A0和A1之間提供實質上相同的傳輸特性,使得在接收的資料傳輸站A1處可藉由接收
時鐘訊號CKAOUT和接收訊息MSG_AOUT維持傳送時鐘訊號CKAIN和傳送訊息MSG_AIN的相對相位。
根據上述示例,時鐘路徑141和訊息匯流排142運作為一波管線系統,其中在訊息匯流排142上傳送的訊息是以來源同步方式利用時鐘路徑141上傳送的時鐘訊號而被閂鎖至接收節點中。在這種方式中,訊息是以主時鐘訊號CKA的頻率從資料傳輸站A0傳送到資料傳輸站A1,其允許資料從資料傳輸站A0快速轉移到資料傳輸站A1。在正常運作期間,在每一個資料傳輸站A0-A7、B0-B7和C0-C7內的站邏輯係回應於一對應的接收時鐘訊號而閂鎖傳入的訊息。
因為實施了點對點來源同步通訊,時鐘訊號線路結構141D和訊息匯流排結構142D的線路與緩衝器延遲D141和D142將不會使通訊通道101-103的操作頻率衰減。根據一個具體實施例,主時鐘訊號CKA、CKB和CKC的頻率會高於用以運作通訊節點N0-N7之區域時鐘訊號的頻率。
因為資料傳輸站的站邏輯具有相對簡單的設計,故可在相對高的頻率下執行排列環狀網路上的訊息傳送。通訊節點N0-N7一般包括較為複雜的設計,且可在比主時鐘訊號CKA、CKB和CKC的頻率更慢的頻率下運作。亦即,當通訊節點N0-N7在主時鐘訊號CKA、CKB和CKC的頻率下接收來自排列環狀網路的訊息時,通訊節點N0-N7並不需要以主時鐘訊號CKA、CKB和CKC的頻率來回應。
注意通訊通道101-103的環形配置使得由資料傳輸站A0、B0和C0(例如,接收主時鐘訊號CKA、CKB和CKC的資料傳輸站)所接收的訊息必須分別被重新同步至主時鐘訊號CKA、CKB和CKC。舉例而言,從資料傳輸站A7傳輸到傳送到資料傳輸站A0的訊息係同步至
資料傳輸站A7內主時鐘訊號CKA的一延遲版本。因此,在資料傳輸站A0內需要時鐘域交叉同步化(亦即,接收自資料傳輸站A7的訊息必須與資料傳輸站A0內的主時鐘訊號CKA重新同步)。在一個具體實施例中,重新同步化電路(未示)係藉由回應於接收自資料傳輸站A7的傳入時鐘訊號將該傳入時鐘訊號閂鎖至一第一正反器中而執行此同步化操作。在該第一正反器的輸出處所提供之訊息接著被閂鎖至一第二正反器中以回應該主時鐘訊號CKA。第二正反器提供了經同步化的訊息MSG_A,其係提供至站邏輯120。此經同步化的訊息MSG_A係回應於主時鐘訊號CKA而儲存於站邏輯120中。
現轉參排列環狀網路100的拓樸,每一個通訊節點N0-N7係耦接至三個通訊通道101-103的每一個中資料傳輸站A0-A7、B0-B7及C0-C7的唯一一個。舉例而言,通訊節點N0係連接至通訊通道101中的資料傳輸站A1、通訊通道102中的資料傳輸站B0以及通訊通道103中的資料傳輸站C0。下表1定義了根據該具體實施例之在通訊節點N0-N7和資料傳輸站A0-A7、B0-B7、C0-C7每一個之間的連接。注意在通訊節點N1-N7和資料傳輸站A0-A7、B0-B7、C0-C7之間的實體連接並未特別繪示於第1A圖中以求清晰。
第2圖重新排序了表1的資料,以提供三個通訊通道101-103的互連矩陣200,其中互連矩陣200係由每一個通訊通道101-103中的資料傳輸站加以排序。此互連矩陣200使得容易確定在每一個通訊通道101-103上的通訊節點N0-N7之間的跳躍數量。注意通訊節點N0-N7係耦接至三個通訊通道101-103中具有不同相對位置的資料傳輸站。如下文將更詳細說明者,此配置允許通訊節點之間的訊息多樣化以及有效的路由。
第3圖是一路由表300,其根據本發明具體實施例而定義了通過排列環狀網路100於通訊節點N0-N7之間的訊務流量。舉例而言,通訊節點N0和N1是利用通訊通道101上資料傳輸站A0和A1之間的路徑通訊。沿此路徑的跳躍數係由橫越通訊通道101的區段數所定義。因為資料傳輸站A0和A1在通訊通道101上是彼此相鄰的(亦即,在資料傳輸站A0和A1之間存在一個區段),因此在節點N0和N1之間的通訊路徑是由一個跳躍(1H)所組成。
如路由表300所述,在節點N0-N7之間的大部分通訊路徑之大部分都包括唯一的一個跳躍之通訊路徑。然而,因為存在有三個通訊通道101-103所提供的24個唯一通訊區段、以及28個唯一通訊節點對,因此排列環狀網路100無法於每一對通訊節點對之間提供唯一的一個跳躍之通訊路徑。因此,路由表300針對通訊節點對之其中四個(亦即,節點對N0和N7;節點對N1和N2;節點對N3和N5;節點對N4和N6)提供了兩個跳躍(2H)之通訊路徑。舉例而言,節點N0和N7係利用三
個不同的兩個跳躍路徑而通訊,包括在通訊通道101上資料傳輸站A7、A0和A1之間的一第一路徑,在通訊通道102上資料傳輸站B0、B1和B2之間的一第二路徑,以及在通訊通道103上資料傳輸站C6、C7和C0之間的一第三路徑。
在資料傳輸站A0-A7、B0-B7和C0-C7之間的通訊將在來源同步網路所允許的最高頻率下運作。此頻率並不會隨通訊節點數和通訊通道數放大而降低。要理解每一個通訊通道101-103都包括用於初始化、協商、流量控制和錯誤處理之規定。在一個具體實施例中,這些規定可利用良好建立的技術來提供。
第4圖是一頻寬估算表400,其定義了排列環狀網路100的路由表300之相鄰資料傳輸站之間的頻寬。因此,根據路由表300,在資料傳輸站A0和A1之間的連結可被用以於通訊節點N0和N1之間、通訊節點N0和N7之間,以及通訊節點N1和N2之間傳送資料。
在該示例中,有四對通訊節點利用三個2-hop(兩個跳躍)之路徑進行通訊。更具體而言,通訊節點N0和N7利用三個2-hop路徑A7-A0-A1、C6-C7-C0以及B0-B1-B2進行通訊;通訊節點N1和N2利用三個2-hop路徑A0-A1-A2、C3-C4-C5和B4-B5-B6進行通訊;通訊節點N3和N5利用三個2-hop路徑A3-A4-A5、C7-C0-C1和B3-B4-B5進行通訊;而通訊節點N4和N6利用三個2-hop路徑A4-A5-A6、C2-C3-C4和B7-B0-B1進行通訊。在該示例中,利用三個2-hop路徑的通訊節點對被視為是較低容量對,其不需要如其他通訊節點對般之大頻寬。在本示例中,使用三個2-hop路徑分配給每個通訊節點對之間的通訊之頻寬係(任意地)限制為相鄰資料傳輸站之間的連結的可用頻寬的60%(例
如,分配到節點N0和N7之間通訊的頻寬係限制為由資料傳輸站A0和A1之間的連結所提供之頻寬的60%)。
以通訊節點N0和N7為例,節點N0和N7之間有三條2-hop路徑,(即A7-A0-A1、C6-C7-C0和B0-B1-B2)。如果分配的頻寬在這三條2-hop路徑中平均分配,則這個分配的頻寬會佔每個相關連結的可用頻寬的20%(60%/3)。
考慮所有12個上述2-hop路徑,分配給節點N0-N7、N1-N2、N3-N5和N4-N6之間通訊的頻寬佔以下資料傳輸站A1-A2、A3-A4、A5-A6、A0-A7、B1-B2、B3-B4、B5-B6、B0-B7、C0-C1、C2-C3、C4-C5和C6-C7之間連結上的頻寬的20%。這會留下可用於這些連結所提供之1-hop路徑所耦接的通訊節點之這些連結之80%的頻寬。舉例而言,在資料傳輸站A1和A2之間連結的頻寬的80%會被分配到通訊節點N0和N2之間的1-hop連接,而在資料傳輸站A1和A2之間的連結的頻寬的20%會被分配到通訊節點N1和N2之間的2-hop連接。
同樣地,考慮所有12個上述2-hop路徑,分配給節點N0-N7、N1-N2、N3-N5和N4-N6之間通訊的頻寬佔了下述資料傳輸站之間連結頻寬的40%:A0-A1、A4-A5、B0-B1、B4-B5、C3-C4與C0-C7。這留下可用於這些連結所提供之1-hop路徑所耦接的通訊節點之這些連結60%的頻寬。舉例而言,在資料傳輸站A0和A1之間連結的頻寬的60%會被分配到通訊節點N0和N1之間的1-hop連接,而在資料傳輸站A0和A1之間的連結的頻寬的20%會被分配到通訊節點N0和N7之間的2-hop連接,而且資料傳輸站A0和A1之間的連結的頻寬的20%會被分配到通訊節點N1和N2之間的2-hop連接。
注意資料傳輸站之間有一些連結並未被用於任何上述12個2-hop路徑。在這些實例中,未被用於該2-hop路徑的連結之頻寬的100%都可用於連接相關聯之通訊節點。在本發明示例中,資料傳輸站A2-A3、A6-A7、B2-B3、B6-B7、C1-C2以及C5-C6之間的連結的頻寬的100%都可用於在通訊節點對N2-N3、N6-N7、N3-N7、N2-N6、N3-N6和N2-N7之間分別提供1-hop連接。
注意表400顯示了根據上述說明之相鄰資料傳輸站之間可用的1-hop頻寬。在第1圖至第4圖的示例中,每一個通訊通道101-103的總1-hop頻寬是6.6,其比簡單雙向環狀網路(其具有對應的1-hop頻寬為2)有超過3倍(3x)之提升。因此,在排列環狀網路100中使用三個通訊通道會導致比三個簡單雙向環狀網路更提升了3.3倍(3.3x)頻寬。注意頻寬提升會隨通訊通道的數量增加而變得更為顯著。
在第1圖至第4圖的示例中,每一對通訊節點之間的1-hop頻寬是不相等的。因此,在排列環狀網路中,各個通訊節點的放置應加以選擇以與各通訊節點的通訊需求匹配。在第1圖至第4圖的示例中,需要將具有較高頻寬需求的通訊節點對置位在節點位置N2-N3、N6-N7、N3-N7、N2-N6、N3-N6以及N2-N7處。因此,通訊節點的通訊圖形(communication patterns)對於排列環狀網路100的設計而言是重要的考量。換言之,節點的通訊圖形對於互連矩陣300的最佳化而言是重要的考量。
如上述說明,排列環狀網路100的一些通訊路徑需要兩個跳躍(2-hops),其導致了基本性的上述性能限制,這在本文中稱之為「跳躍損耗」。如上述說明,排列環狀網路100於通訊節點N0-N7之間提供了24對1-hop連結以及28個可能的唯一連接。因為無法為每一個可能的
通訊節點對都提供唯一的1-hop連接,所以存在跳躍損耗(因為有些連接必須為多跳躍連接)。為了使總1-hop頻寬達最大化,互連矩陣200和路由表300係以下列條件予以最佳化:(1)使唯一單跳躍連接的數量達最大化,以及(2)對於剩餘的多跳躍連接對而言,將路徑多樣性最大化、以及將每一個跳躍路徑中的跳躍數最小化。
互連矩陣200和路由表300是由網路大小以及通訊節點N0-N7的特定應用頻寬需求所確定。舉例而言,在具有受限面積或功率預算的網路中,提供的通道數量大部分都不足以完全消除「跳躍損耗」,因此互連矩陣和路由表係經設計以使所有通訊節點之間的總頻寬達最大化。若網路要求通訊節點對的子集合必須具有零跳躍損耗以避免顯著的性能衰減,則該互連矩陣係設計以滿足這個約束。給定足夠的通訊通道,即可建構出具有廣播能力的無封鎖、容許錯誤之通訊。實施這種設計的各種方式係詳細說明如下文。
以下係連接第5圖至第8圖來更詳細說明一特定例示方式,其中一排列環狀網路可被設計以用於通訊節點之特別集合。
第5圖係說明一排列環狀網路500之一方塊圖,其包括由通訊通道101-103連接的八個通訊節點CPU_0、CPU_1、CPU_2、CPU_3、MB_0、MB_1、MB_2,以及MB_3,通訊通道101-103係包括資料傳輸站A0-A7、B0-B7及C0-C7。通訊通道101-103和資料傳輸站A0-A7、B0-B7以及C0-C7係已說明如上述。每一個通訊節點CPU_0、CPU_1、CPU_2以及CPU_3係一晶載處理器,而每一個通訊節點MB_0、MB_1、MB_2與MB_3係一晶載記憶體庫,其中每一個處理器CPU_0、CPU_1、CPU_2以及CPU_3係可存取每一個記憶體庫MB_0、MB_1、MB_2及
MB_3、以及每一個其他處理器(例如處理器CPU_0可存取處理器CPU_1、CPU_2及CPU_3中的每一個)。
第6圖係一互連矩陣,其指定了在通訊節點CPU_0、CPU_1、CPU_2、CPU_3、MB_0、MB_1、MB_2及MB_3與資料傳輸站A0-A7、B0-B7及C0-C7之間的連接。第7圖是一路由表700,其指定用以連結各種通訊節點對的資料傳輸站,以及每一個連結中所包含的跳躍數。第8圖係一頻寬估算表800,其定義了在排列環狀網路500的路由表700之相鄰資料傳輸站之間的頻寬。
互連矩陣600和路由表700係根據通訊節點CPU_0、CPU_1、CPU_2、CPU_3、MB_0、MB_1、MB_2及MB_3、以及資料傳輸站A0-A7、B0-B7和C0-C7的特定需求而加以選擇。
通訊通道102和103(包括資料傳輸站B0-B7和C0-C7)係用於處理器CPU_0、CPU_1、CPU_2、CPU_3與記憶體庫MB_0、MB_1、MB_2、MB_3之間的通訊。更具體而言,利用通訊通道102和103,每一個處理器CPU_0、CPU_1、CPU_2和CPU_3對每一個記憶體庫MB_0、MB_1、MB_2與MB_3都具有一個唯一的1-hop連接。因此1-hop連結的完整頻寬可用於處理器CPU_0、CPU_1、CPU_2、CPU_3與記憶體庫MB_0、MB_1、MB_2、MB_3之間的通訊(參見頻寬估算表800)。在記憶體庫MB_0、MB_1、MB_2、MB_3之間則沒有通訊連結(因為在該示例中,記憶體庫MB_0、MB_1、MB_2、MB_3並不需要彼此通訊)。
通訊通道101(包括資料傳輸站A0-A7)係用於處理器CPU_0、CPU_1、CPU_2、CPU_3之間的通訊,以及其他記憶體互連功能,包括協商、同步化、快取監聽、廣播和多播。如第8圖所述,處
理器CPU_0至CPU_3之間的可用頻寬係小於處理器CPU_0至CPU_3和記憶體庫MB_0至MB_3之間的可用頻寬。然而,在該實例中,處理器CPU_0、CPU_1、CPU_2及CPU_3之間的通訊可容許通訊通道101上出現的跳躍損耗。
以下結合第9圖至第11圖來更詳細說明可經設計以用於通訊節點之特別集合的排列環狀網路的另一具體方式實例。第9圖是一方塊圖,其說明了包括由四個通訊通道101-104所連接之八個通訊節點N0-N7之排列環狀網路900,其包括資料傳輸站A0-A7、B0-B7、C0-C7及D0-D7。通訊通道101-103與資料傳輸站A0-A7、B0-B7及C0-C7已說明如上述,而額外的通訊通道104和資料傳輸站D0-D7是類似的。通訊通道104的加入使可用的1-hop連結的總數量增加達32個,因此在通訊節點N0-N7之間的28個可能連結中的每一個都可利用一1-hop連結來實施。因此,跳躍損耗可於排列環狀網路900中完全消除(亦即,每一個通訊節點都可直接與每一個其他通訊節點通訊),藉此產生一完全無封鎖的網路。在該具體實施例中,排列環狀網路係製造於一單一積體電路晶片上。
第10圖係一互連矩陣1000,其指定了在通訊節點N0-N7與資料傳輸站A0-A7、B0-B7、C0-C7和D0-D7之間的連接。第11圖是一路由表1100,其指定了用以連結各個通訊節點對的資料傳輸站、以及在每一個連結中所包含的跳躍數量。注意這些連結中的每一個都具有一估算頻寬為1.0(亦即,在相鄰的資料傳輸站之間的可用頻寬的100%)。
在第9圖至第11圖的具體實施例中,在每一個通訊節點N0-N7與通訊通道101-104之間存在四對連接。排列環狀網路900的頻寬係由此配置所限制。亦即,排列環狀網路900的峰值頻寬是由通訊節點
N0-N7和通訊通道101-104之間的互連所限制。因此,雖然排列環狀網路900的峰值頻寬可支援彼此之間同時通訊的所有節點N0-N7的頻寬需求,但可能沒有足夠的頻寬將訊息從通訊節點N0-N7傳輸到通訊通道101-104。在這種例子中,通訊通道101-104將具有額外(未使用)的頻寬。這種額外的頻寬有數個優點,包括:(1)在通訊節點處較少壅塞(例如,在每一個通訊節點處有四對導線(與七對導線相比),其否則會需要允許一通訊節點同時與七個其他通訊節點進行通訊),(2)每一對通訊節點可經由其他通道而進行通訊,因此排列環狀網路900提供了路徑多樣性(以及因而提供了錯誤容許能力)(亦即,因為排列環狀網路900具有過剩的頻寬,因此每一個來源通訊節點都可視情況使用其指定通道以外的通道來對一目標通訊節點進行通訊)。當然,這將會招致一些不必要的跳躍損耗。然而,排列環狀網路900的額外頻寬可以吸收一些有限量的跳躍損耗),以及(3)排列環狀網路900的通訊通道101-104可利用排列環狀網路900的額外頻寬來提供其他重要通訊功能(例如廣播和多播)。
如上所述,每一個資料傳輸站在一通訊節點和一對應通訊通道之間轉移資料(或在該對應通訊通道上相鄰的資料傳輸站之間轉發資料)。現將利用包括資料傳輸站A1、通訊節點N0與通訊通道101的一特別實例來更詳細說明資料傳輸站、通訊節點及通訊通道的操作。應理解其他資料傳輸站係以類似於資料傳輸站A1的方式操作(而且其他通訊節點是以類似於通訊節點N0的方式操作)。
第12圖是一簡化方塊圖,其說明了根據本發明一個具體實施例之通訊節點N0與資料傳輸站A1。
資料傳輸站A1包括站邏輯1201、多工器1202、接收FIFO 1203、傳送FIFO 1204以及延遲線路1205,其專用於通訊通道101上順時針方向之訊息(例如,M1_IN和M1_OUT)和順時針方向之時鐘訊號(例如,CK1_IN和CK1_OUT)的傳播。資料傳輸站A1進一步包括了站邏輯1211、多工器1212、接收FIFO 1213、傳送FIFO 1214以及延遲線路1215,其係專用於通訊通道101上逆時針方向之訊息(例如,M2_IN和M2_OUT)以及逆時針方向之時鐘訊號(例如CK2_IN和CK2_OUT)之傳播。協商邏輯1210、延遲線路1220和多工器1225是用以考慮同時以順時鐘方向和逆時鐘方向接收之訊息間衝突、以及對通訊節點N0傳送訊息/時鐘訊號。
通訊節點N0包括通訊節點邏輯1230、接收FIFO 1231、傳送FIFO 1232、延遲線路1234、通訊節點時鐘生成器1235以及同步器電路1236。一般而言,通訊節點時鐘生成器1235產生一區域時鐘訊號CK_N0,其係用以控制通訊節點N0內的大部分運作。舉例而言,通訊節點邏輯1230控制通訊節點N0的運作,包括回應於該區域時鐘訊號CK_N0而從接收FIFO 1231讀取訊息、以及對傳送FIFO 1232寫入訊息。
現將更詳細說明「順時鐘方向」之資料傳輸電路。注意「逆時鐘方向」之資料傳輸電路是以類似的方式運作。
有兩組來源同步互連匯流排與資料傳輸站A1相關聯。在順時鐘方向中,從相鄰的資料傳輸站A2接收一傳入的訊息M1_IN和來源同步時鐘訊號CK1_IN,並且對相鄰的資料傳輸站A0傳送一發出的訊息M1_OUT與來源同步時鐘訊號CK1_OUT。在逆時鐘方向中,從相鄰的資料傳輸站A0接收一傳入的訊息M2_IN以及來源同步時鐘訊號CK2_IN,並且對相鄰的資料傳輸站A2傳送一發出的訊息M2_OUT及來
源同步時鐘訊號CK2_OUT。這些時鐘訊號CK1_IN和CK2_IN兩者都得自對應通訊通道101的主時鐘訊號CKA。
當訊息M1_IN抵達於資料傳輸站A1時,它會被站邏輯電路1201回應於來源時鐘訊號CK1_IN而閂鎖。站邏輯1201確定該接收訊息M1_IN是否是目標為(定址於)資料傳輸站A1。若是,則站邏輯1201將該接收訊息M1_IN寫入接收FIFO 1203(例如,藉由啟動一對應寫入致能訊號WE1)。以類似的方式,站邏輯1211將目標為資料傳輸站A1之逆時鐘方向訊息M2_IN寫入接收FIFO 1213(例如,藉由啟動一對應寫入賦能訊號WE2)。當訊息被儲存在接收FIFOs 1203與1213時,站邏輯電路1201和1211通知協商電路1210。作為回應,協商電路1210控制來自接收FIFOs 1203與1213的讀取操作,並且控制多工器1225以路由訊息M1_IN或M2_IN作為對通訊節點N0的接收FIFO 1231之訊息M_IN。協商電路1210所實施的讀取操作係回應於來源時鐘訊號CK1_IN或CK2_IN之中任意選擇的一個而執行。在該實例中,協商電路1210係利用來源時鐘訊號CK1_IN而自接收FIFOs 1203與1213執行讀取操作。協商電路1210利用傳統協商政策來控制這些訊息M1_IN和M2_IN的讀出,其指定只要在FIFO 1203或1213任一者中出現訊息,即總是由協商電路1210讀出訊息。在這種方式中,儲存於接收FIFO 1203與1213中的訊息係利用一預先定義的協商政策而被依序發送至通訊節點N0。
協商電路1210也控制多工器1225以將用於自接收FIFOs 1203和1213讀取訊息的來源時鐘訊號(例如在本實例中的來源時鐘訊號CK1_IN)路由至延遲線路1220,其延遲該接收時鐘訊號,以產生輸
入時鐘訊號CK_IN。延遲線路1220所引入的延遲係經選擇以使設定和保持時間相對於訊息M_IN而達最大化。
訊息M_IN是以來源同步方式寫入,其中訊息M_IN係回應於輸入時鐘訊號CK_IN而被閂鎖到接收FIFO 1231中。回應於區域時鐘訊號CK_N0,訊息M_IN被依序讀出接收FIFO 1231而至控制節點邏輯1230。
若該接收訊息M1_IN並非目標為資料傳輸站A1(亦即,訊息在資料傳輸站A1上「跳躍」),則站邏輯1201係控制多工器1202將該接收訊息路由至資料傳輸站A0作為輸出訊息M1_OUT。延遲線路1205引入對來源時鐘訊號CK1_IN之延遲,以生成輸出時鐘訊號CK1_OUT,其也被路由到資料傳輸站A0。延遲線路1205引入了一延遲,其係經選擇而使得訊息M1_OUT相對於輸出時鐘訊號CK1_OUT而具有適當的設定和保持時間(以結合第1B圖及第1C圖所述之上述方式)。
通訊節點N0也可產生傳送到資料傳輸站A1的訊息。在一個具體實施例中,通訊節點邏輯1230生成一訊息M_N0,其被寫入至區域時鐘訊號CK_N0的時鐘域中的傳送FIFO 1232中。於輸入時鐘訊號CK_IN的時鐘域中從傳送FIFO 1232讀取出這個訊息M_N0。注意協商電路1210總是使多工器1225路由選擇的來源時鐘訊號CK1_IN以生成輸入時鐘訊號CK_IN,即使是在沒有接收到訊息M1_IN或M2_IN時。從傳送FIFO 1232所讀取的訊息M_N0被提供至資料傳輸站A1中的傳送FIFOs 1204與1214。通訊節點邏輯1230對同步器電路1236提供寫入賦能訊號W3和W4,同步器電路1236將這些寫入賦能訊號W3和W4與輸入時鐘訊號CK_IN同步化,藉此分別產生同步化寫入賦能訊號WE3和
WE4。這些寫入賦能訊號WE3和WE4係分別提供至傳送FIFOs 1204與1214,其中該寫入賦能訊號WE3和WE4允許通訊節點N0對傳送FIFOs 1204或1214中所需者寫入訊息M_N0。訊息M_N0是利用一輸出時鐘訊號CK_OUT而以來源同步方式寫入所選擇的傳送FIFO 1204或1214,該輸出時鐘訊號CK_OUT係用以自傳送FIFO 1232讀取訊息M_N0的輸入時鐘訊號CK_IN之一延遲版本。在該實例中,延遲線路1234對該輸入時鐘訊號CK_IN引入一適當延遲以生成該輸出時鐘訊號CK_OUT,因此關於自傳送FIFO 1232所讀取之訊息M_N0的設定和保持時間係可被最大化。
假設訊息M_N0是儲存在傳送FIFO 1204中。在這個情形中,站邏輯1201啟動一讀取賦能訊號RE1,其使訊息M_N0可被讀出到多工器1202。站邏輯1201控制多工器1202於通訊通道101上路由此一訊息M_N0作為輸出訊息M1_OUT。注意站邏輯1201確保此一輸出訊息M1_OUT具有與對應輸出時鐘訊號CK1_OUT之適當相位關係。亦即,輸出訊息M1_OUT被路由而使得此一訊息的設定和保持時間可相對於輸出時鐘訊號CK1_OUT而達最大化。
站邏輯1211是以類似於從傳送FIFO 1214讀取訊息(利用讀取賦能訊號RE2)、以及通過多工器1212路由這些訊息作為輸出訊息M2_OUT的方式操作。
第12圖的具體實施例有利地使實施本發明之排列環狀網路所需要的時鐘生成器的數量達最小化。
第13圖是一簡化方塊圖,其描述了根據本發明一替代具體實施例的通訊節點N0和資料傳輸站A1。第12圖和第13圖中的相似元件是以相似元件符號來標示。因此,第13圖中的資料傳輸站A1包括專用
於順時鐘方向訊息傳播之站邏輯1201、多工器1202、接收FIFO 1203、傳送FIFO 1204以及延遲線路1205,以及專用於逆時鐘方向訊息傳播之站邏輯1211、多工器1212、接收FIFO 1213、傳送FIFO 1214與延遲線路1215。通訊節點N0包括通訊節點邏輯1230、接收FIFO 1231、傳送FIFO 1232以及通訊節點時鐘生成器1235和同步化電路1236,其係已結合第12圖而說明如上述。
一般而言,第13圖的通訊節點N0包括對資料傳輸站(CN-DTS)時鐘生成電路1301(其生成一區域時鐘訊號CK_CD)之一通訊節點,其係用以控制通訊節點N0和資料傳輸站A1之間的資料轉移。(這與第12圖中利用來自通訊通道101的時鐘訊號CK1_IN與CK2_IN來控制通訊節點N0與資料傳輸站A1之間資料轉移的具體實施例相反)。
因此,在第13圖的具體實施例中,CK_CD訊號是用以自通訊節點N0的傳送FIFO 1232讀取訊息M_N0到資料傳輸站A1中的傳送FIFOs 1204與1214。延遲線路1302對CK_CD時鐘訊號引入一延遲,從而生成一延遲輸出時鐘訊號CK_OUT,其被提供至資料傳輸站A1中的傳送FIFOs 1204與1214。延遲線路1302所引入\的延遲係經選擇,以使關於訊息M_N0的設定和保持時間達最大化。同步化電路1236將通訊節點邏輯1230所提供的寫入賦能訊號W3和W4與時鐘訊號CK_CD同步,從而分別提供寫入賦能訊號WE3和WE4,其係分別提供至資料傳輸站A1的傳送FIFOs 1204與1214。訊息M_N0被以來源同步方式、分別回應於寫入賦能訊號WE3與WE4以及輸出時鐘訊號CK_OUT而被閂鎖至傳送FIFOs 1204與1214中。雖然在沒有訊息M_N0被傳送時傳送FIFOs 1204和1214不需要CK_CD時鐘訊號,但是此一CK_CD時鐘訊號會被連
續傳送到資料傳輸站A1,因為資料傳輸站A1利用此一CK_CD時鐘訊號進行從資料傳輸站A1到通訊節點N0的訊息來源同步轉移(下文將更詳細說明)。
自通訊通道101所接收、且儲存於資料傳輸站A1之接收FIFOs 1203與1213的訊息M1_IN和M2_IN係由協商電路1310讀出至多工器1225。協商電路1310利用傳統協商政策來控制這些訊息M1_IN與M2_IN的讀出,其指定只要在FIFO 1203或1213任一中有存在訊息,訊息將總是由協商電路1310讀出。
協商電路1310控制多工器1225選擇性地將所擷取的訊息M1_IN與M2_IN路由到通訊節點N0的接收FIFO 1230作為輸入訊息M_IN。在第13圖的具體實施例中,協商電路1310接收通訊節點N0所提供的CK_CD時鐘訊號(並且在CK_CD時鐘訊號域中運作)。因此,訊息係回應於CK_CD時鐘訊號而被讀出接收FIFOs 1203與1213。在資料傳輸站A1內的延遲線路1303對該CK_CD時鐘訊號引入一延遲,藉此提供輸入時鐘訊號CK_IN,其係用於以來源同步方式將多工器1225提供的訊息M_IN轉移到通訊節點N0的接收FIFO 1231。延遲線路1303所引入的延遲係經選擇以使此來源同步轉移的設定和保持時間達最大化。
根據本發明的一個具體實施例,CK_CD時鐘訊號的頻率係經選擇以使通訊節點N0與資料傳輸站A1之間的頻寬需求達最佳化。CK_CD時鐘訊號可具有頻率通訊節點域時鐘訊號CK_N0、以及通訊通道101的時鐘訊號CK1_IN、CK2_IN的頻率之外的頻率。此外,CK_CD時鐘訊號的頻率在每一個通訊節點N0-N7內會有不同。舉例而言,在上述結合第1圖至第4圖所述的具體實施例(其係實施了八個通訊節點N0-N7以及三個通訊通道101-103)中,通訊節點N4和N5僅可經由資料
傳輸站A4-A5、以全頻寬的60%進行通訊。在此例中,CK_CD時鐘訊號的頻率可被設定為通訊通道的頻率的60%(例如,CK1_IN或CK2_IN的60%),而且仍提供所需的資料轉移容量。
在第9圖至第11圖的具體實施例(其實施了八個通訊節點N0-N7以及四個通訊通道101-104)中,藉由將每一個通訊節點N0-N7中的CK_CD時鐘訊號的頻率設定為比通訊通道101-104的頻率更快的頻率,即可利用排列環狀網路800的額外頻率。在這種方式中,第13圖的具體實施例提供了可最佳化排列環狀網路之操作頻率之良好彈性。
本發明之排列環狀網路架構在通訊節點數量(N)與通訊通道數量(M)兩者上皆可縮放。資料傳輸站的操作頻率將不會因縮放排列環狀網路架構而減慢。此外,加大通訊通道數量(M)將對排列環狀網路架構的總頻寬提供高度非線性的提升。
本發明之排列環狀網路架構可用以實施高頻寬切換晶片,為晶片上多核心系統提供互連,為圖形處理器單元(GPU)晶片提供互連,為系統等級FPGA提供互連,或實施高性能多核心多庫最終層級快閃記憶體之一致性記憶體匯流排(coherence memory bus)。
本發明雖已結合數個具體實施例加以說明,應理解本發明並不限於所揭具體實施例,而是可有熟習該領域技藝之人所顯知的各種修飾例。因此,本發明係僅由下述申請專利範圍所限。
100:排列環狀網路
101、102、103:雙向來源同步環狀網路
A0-A7、B0-B7、C0-C7:資料傳輸站
N0-N7:通訊節點
Claims (19)
- 一種排列環狀網路,包括:複數個雙向來源同步環狀網路,每一個具有連接成一環的複數個資料傳輸站;複數個通訊節點,其中該等通訊節點中每一個都耦接至該複數個雙向來源同步環狀網路之每一個中的該等資料傳輸站的其中之一,其中該等通訊節點中每一個都傳送複數個訊息至該等雙向來源同步環狀網路中每一個之一資料傳輸站,以及其中該等訊息以一來源同步方式於該等雙向來源同步環狀網路的該等資料傳輸站之間被傳送;以及一路由表,其定義該等雙向來源同步環狀網路上供該等通訊節點的每一可能對之間通訊用之通訊路徑,其中該路由表指定通過包括該等資料傳輸站的其中恰兩個之該等雙向來源同步環狀網路上的路徑而通訊的該等通訊節點之該等可能對中的一第一群組,以及通過包括超過兩個的該等資料傳輸站之該等雙向來源同步環狀網路上的路徑而通訊的該等通訊節點中的該等可能對之一第二群組。
- 如申請專利範圍第1項所述之排列環狀網路,其中一唯一一對相鄰的資料傳輸站於該第一群組的該通訊節點的每一對之間提供一通訊路徑。
- 如申請專利範圍第1項所述之排列環狀網路,其中該等雙向來源同步環狀網路於一第一時鐘域中操作,而且該等通訊節點中至少其一係於一第二時鐘域中操作,該第二時鐘域與該第一時鐘域不同。
- 如申請專利範圍第1項所述之排列環狀網路,其中該第一群組包括需要第一通訊頻寬之該等通訊節點的多個對,且該第二群組包括需要第二通訊頻寬之該等通訊節點的多個對,其中該等第一通訊頻 寬大於該等第二通訊頻寬。
- 如申請專利範圍第1項所述之排列環狀網路,其中該路由表指定通過該等雙向來源同步環狀網路之一單個上的路徑而通訊的該等通訊節點的該等可能對的一群組,以及通過該等雙向來源同步環狀網路之全部上的路徑而通訊的該等通訊節點的該等可能對中一群組。
- 如申請專利範圍第1項所述之排列環狀網路,其中該排列環狀網路包括至少三個雙向來源同步環狀網路。
- 如申請專利範圍第1項所述之排列環狀網路,其中該等資料傳輸站與該等通訊節點之間的通訊是以一來源同步方式執行。
- 如申請專利範圍第1項所述之排列環狀網路,其中該等資料傳輸站與該等通訊節點係製造於一單一積體電路晶片上。
- 如申請專利範圍第1項所述之排列環狀網路,其中該等通訊節點是耦接至具有在該等雙向來源同步環狀網路中不同相對位置的資料傳輸站。
- 一種在一積體電路晶片上複數個通訊節點之間傳輸資料的方法,包括:從該等通訊節點傳送訊息至複數個雙向來源同步環狀網路,其中該等雙向來源同步環狀網路中每一個都包括連接成一環的複數個資料傳輸站,而且該等通訊節點中每一個都傳送訊息至該等雙向來源同步環狀網路中每一個之一資料傳輸站;以一來源同步方式於該等雙向來源同步環狀網路的該等資料傳輸站之間傳送該等訊息;指定通過包括該等資料傳輸站的其中恰兩個之該等雙向來源同步環狀網路上的路徑而通訊的該等通訊節點的多個對的一第一群組;以及 指定通過包括超過兩個的該等資料傳輸站之該等雙向來源同步環狀網路上的路徑而通訊的該等通訊節點的多個對的一第二群組。
- 如申請專利範圍第10項所述之方法,其中鄰近資料傳輸站的一唯一一對提供該第一群組的該等通訊節點的每一對之間的一通訊路徑。
- 如申請專利範圍第10項所述之方法,更包括:於一第一時鐘域中操作該等雙向來源同步環狀網路;以及於一第二時鐘域中操作該等通訊節點中至少一個,該第二時鐘域與該第一時鐘域不同。
- 如申請專利範圍第10項所述之方法,更包括維持一路由表,該路由表定義該等雙向來源同步環狀網路上供該等通訊節點的每一可能對之間通訊用之通訊路徑。
- 如申請專利範圍第10項所述之方法,其中該第一群組包括需要第一通訊頻寬之該等通訊節點的多個對,且該第二群組包括需要第二通訊頻寬之該等通訊節點的多個對,其中該等第一通訊頻寬大於該等第二通訊頻寬。
- 如申請專利範圍第10項所述之方法,更包括:指定通過該等雙向來源同步環狀網路之一單個上的路徑而通訊的該等通訊節點的多個對的一群組;以及指定通過該等雙向來源同步環狀網路之全部上的路徑而通訊的該等通訊節點的多個對的一群組。
- 如申請專利範圍第10項所述之方法,其中該等雙向來源同步環狀網路包括至少三個雙向來源同步環狀網路。
- 如申請專利範圍第10項所述之方法,更包括以一來源同步方式執行該等資料傳輸站與該等通訊節點之間的通訊。
- 如申請專利範圍第10項所述之方法,其中該等資料傳輸站與該等通 訊節點被製造於一單一積體電路晶片上。
- 如申請專利範圍第10項所述之方法,其中該等通訊節點是耦接至具有在該等雙向來源同步環狀網路中不同相對位置的資料傳輸站。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662425798P | 2016-11-23 | 2016-11-23 | |
US62/425,798 | 2016-11-23 | ||
US15/816,374 US11196587B2 (en) | 2016-11-23 | 2017-11-17 | Permutated ring network |
US15/816,374 | 2017-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201828764A TW201828764A (zh) | 2018-08-01 |
TWI786073B true TWI786073B (zh) | 2022-12-11 |
Family
ID=62144518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140090A TWI786073B (zh) | 2016-11-23 | 2017-11-20 | 排列環狀網路及傳輸資料的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11196587B2 (zh) |
EP (1) | EP3545424B1 (zh) |
JP (1) | JP7019709B2 (zh) |
KR (1) | KR102214880B1 (zh) |
CN (1) | CN110199502B (zh) |
CA (1) | CA3044675C (zh) |
ES (1) | ES2932256T3 (zh) |
TW (1) | TWI786073B (zh) |
WO (1) | WO2018098087A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
US11537687B2 (en) | 2018-11-19 | 2022-12-27 | Groq, Inc. | Spatial locality transform of matrices |
US11115147B2 (en) | 2019-01-09 | 2021-09-07 | Groq, Inc. | Multichip fault management |
US10691632B1 (en) | 2019-03-14 | 2020-06-23 | DeGirum Corporation | Permutated ring network interconnected computing architecture |
WO2020240833A1 (ja) * | 2019-05-31 | 2020-12-03 | 三菱電機株式会社 | 冗長ネットワーク装置、冗長ネットワーク方法、冗長ネットワークプログラム、及び、送信経路冗長化システム |
CN114070662A (zh) * | 2020-07-31 | 2022-02-18 | 上海国际货币经纪有限责任公司 | 消息总线系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002044111A (ja) * | 2000-02-29 | 2002-02-08 | Texas Instr Inc <Ti> | 最少の待ち時間を持つクロックドメイン間の通信インタフェース |
US20030067871A1 (en) * | 2001-10-10 | 2003-04-10 | Alcatel | Method for propagating the fault information in a RPR network and corresponding RPR packet |
US6992975B1 (en) * | 2000-08-15 | 2006-01-31 | Cisco Technology, Inc. | Multiple ring support within a single network element |
US7212490B1 (en) * | 2001-07-06 | 2007-05-01 | Cisco Technology, Inc. | Dynamic load balancing for dual ring topology networks |
US7710878B1 (en) * | 2003-01-10 | 2010-05-04 | Verizon Laboratories Inc. | Method and system for allocating traffic demands in a ring network |
US20100188972A1 (en) * | 2009-01-27 | 2010-07-29 | Knapp David J | Fault tolerant network utilizing bi-directional point-to-point communications links between nodes |
US20100262788A1 (en) * | 2005-09-07 | 2010-10-14 | Benjamin Tsien | Pre-coherence channel |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4501021A (en) | 1982-05-03 | 1985-02-19 | General Signal Corporation | Fiber optic data highway |
JPH06332852A (ja) | 1993-05-20 | 1994-12-02 | Hitachi Ltd | データ転送システム |
US5535213A (en) | 1994-12-14 | 1996-07-09 | International Business Machines Corporation | Ring configurator for system interconnection using fully covered rings |
WO1998036533A1 (en) | 1997-02-17 | 1998-08-20 | Communication & Control Electronics Limited | Local communication system |
JP3001455B2 (ja) | 1997-04-24 | 2000-01-24 | 甲府日本電気株式会社 | データ転送装置 |
US6657969B1 (en) | 1999-06-29 | 2003-12-02 | Cisco Technology, Inc. | Generation of synchronous transport signal data used for network protection operation |
US7509403B1 (en) | 2000-09-28 | 2009-03-24 | Alcatel-Lucent Usa Inc. | Method and apparatus for SONET/SDH ring load balancing |
US7356030B2 (en) | 2000-11-17 | 2008-04-08 | Foundry Networks, Inc. | Network switch cross point |
JP2004193686A (ja) | 2002-12-06 | 2004-07-08 | Nec Access Technica Ltd | カメラ付き携帯端末 |
US20070255874A1 (en) | 2006-04-28 | 2007-11-01 | Jennings Kevin F | System and method for target device access arbitration using queuing devices |
US20100268977A1 (en) | 2009-04-17 | 2010-10-21 | Himax Media Solutions, Inc. | Method and apparatus for accessing memory units |
US8713277B2 (en) | 2010-06-01 | 2014-04-29 | Apple Inc. | Critical word forwarding with adaptive prediction |
EP2395404B2 (en) * | 2010-06-09 | 2021-02-24 | ABB Power Grids Switzerland AG | Secure clock synchronization |
WO2013187862A1 (en) | 2012-06-11 | 2013-12-19 | Intel Corporation | A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM |
US9552619B2 (en) | 2012-08-08 | 2017-01-24 | Megachips Corporation | Image processing apparatus and image processing interface circuit |
US9292456B2 (en) | 2013-09-16 | 2016-03-22 | Freescale Semiconductor, Inc. | System and method for data synchronization across digital device interfaces |
CN103715766B (zh) | 2013-12-18 | 2015-12-30 | 南京国电南自电网自动化有限公司 | 一种环网分布式母线保护同步方法 |
US11321263B2 (en) | 2014-12-17 | 2022-05-03 | Intel Corporation | High bandwidth core to network-on-chip interface |
US9787571B2 (en) | 2014-12-22 | 2017-10-10 | Intel Corporation | Link delay based routing apparatus for a network-on-chip |
EP3287799B1 (en) | 2015-04-16 | 2022-11-02 | Renesas Electronics Corporation | Semiconductor device and scan test method |
US20180173534A1 (en) | 2016-12-20 | 2018-06-21 | Intel Corporation | Branch Predictor with Branch Resolution Code Injection |
US10459866B1 (en) * | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
-
2017
- 2017-11-17 US US15/816,374 patent/US11196587B2/en active Active
- 2017-11-20 TW TW106140090A patent/TWI786073B/zh active
- 2017-11-20 JP JP2019547589A patent/JP7019709B2/ja active Active
- 2017-11-20 CA CA3044675A patent/CA3044675C/en active Active
- 2017-11-20 EP EP17874768.9A patent/EP3545424B1/en active Active
- 2017-11-20 CN CN201780081847.9A patent/CN110199502B/zh active Active
- 2017-11-20 KR KR1020197017873A patent/KR102214880B1/ko active IP Right Grant
- 2017-11-20 ES ES17874768T patent/ES2932256T3/es active Active
- 2017-11-20 WO PCT/US2017/062632 patent/WO2018098087A1/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002044111A (ja) * | 2000-02-29 | 2002-02-08 | Texas Instr Inc <Ti> | 最少の待ち時間を持つクロックドメイン間の通信インタフェース |
US6992975B1 (en) * | 2000-08-15 | 2006-01-31 | Cisco Technology, Inc. | Multiple ring support within a single network element |
US7212490B1 (en) * | 2001-07-06 | 2007-05-01 | Cisco Technology, Inc. | Dynamic load balancing for dual ring topology networks |
US20030067871A1 (en) * | 2001-10-10 | 2003-04-10 | Alcatel | Method for propagating the fault information in a RPR network and corresponding RPR packet |
US7710878B1 (en) * | 2003-01-10 | 2010-05-04 | Verizon Laboratories Inc. | Method and system for allocating traffic demands in a ring network |
US20100262788A1 (en) * | 2005-09-07 | 2010-10-14 | Benjamin Tsien | Pre-coherence channel |
US20100188972A1 (en) * | 2009-01-27 | 2010-07-29 | Knapp David J | Fault tolerant network utilizing bi-directional point-to-point communications links between nodes |
Also Published As
Publication number | Publication date |
---|---|
US11196587B2 (en) | 2021-12-07 |
EP3545424B1 (en) | 2022-10-19 |
WO2018098087A1 (en) | 2018-05-31 |
CA3044675A1 (en) | 2018-05-31 |
TW201828764A (zh) | 2018-08-01 |
ES2932256T3 (es) | 2023-01-17 |
EP3545424A4 (en) | 2020-07-22 |
KR20190085540A (ko) | 2019-07-18 |
JP7019709B2 (ja) | 2022-02-15 |
TW202324975A (zh) | 2023-06-16 |
KR102214880B1 (ko) | 2021-02-09 |
EP3545424A1 (en) | 2019-10-02 |
US20180145850A1 (en) | 2018-05-24 |
CA3044675C (en) | 2023-08-29 |
CN110199502A (zh) | 2019-09-03 |
CN110199502B (zh) | 2021-11-12 |
JP2019536399A (ja) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI786073B (zh) | 排列環狀網路及傳輸資料的方法 | |
US10027433B2 (en) | Multiple clock domains in NoC | |
EP3545653B1 (en) | Distributed control synchronized ring network architecture | |
TWI759585B (zh) | 異步多時鐘域資料流接合及再同步系統及方法 | |
US8503482B2 (en) | Interconnects using self-timed time-division multiplexed bus | |
US7426632B2 (en) | Clock distribution for interconnect structures | |
TWI834374B (zh) | 排列環狀網路 | |
US10691632B1 (en) | Permutated ring network interconnected computing architecture | |
Shamim et al. | Energy-efficient wireless interconnection framework for multichip systems with in-package memory stacks | |
Ahmed et al. | An Asymmetric, Energy Efficient One-to-Many Traffic-Aware Wireless Network-in-Package Interconnection Architecture for Multichip Systems | |
Jain | Asynchronous Bypass Channels Improving Performance for Multi-synchronous Network-on-chips |