背景技術(shù):
近些年,大幅度地提高了對(duì)高性能計(jì)算(hpc)的使用和興趣。歷史上,hpc通常與所謂的“超級(jí)計(jì)算機(jī)”相關(guān)聯(lián)。超級(jí)計(jì)算機(jī)主要由西摩克雷(seymourcray)在控制數(shù)據(jù)公司(cdc)、克雷研究公司(crayresearch)以及后來具有克雷的名字或由其首字母組成的圖案的公司在20世紀(jì)60年代提出,最初被研制,并且持續(xù)數(shù)十年。雖然20世紀(jì)70年代超級(jí)計(jì)算機(jī)僅使用少量處理器,然而在20世紀(jì)90年代開始出現(xiàn)具有數(shù)千個(gè)處理器,并且最近已經(jīng)實(shí)現(xiàn)了具有幾十萬“現(xiàn)成的(off-the-shelf)”處理器的大規(guī)模并行超級(jí)計(jì)算機(jī)。
存在很各種hpc架構(gòu),面向?qū)崿F(xiàn)以及研究?jī)烧?,以及具有各種級(jí)別的規(guī)模和性能。然而,共同的線程是大量計(jì)算單元(諸如,處理器和/或處理器核心)的互連從而以并行的方式協(xié)作地執(zhí)行任務(wù)。在最近的片上系統(tǒng)(soc)設(shè)計(jì)和提案中,使用二維(2d)陣列、圓環(huán)、環(huán)或其他配置在單個(gè)soc上實(shí)現(xiàn)數(shù)十個(gè)處理器核心等等。此外,研究者已經(jīng)提出了3dsoc,其中在3d陣列中對(duì)數(shù)百個(gè)或者甚至數(shù)千個(gè)處理器核心進(jìn)行互連。獨(dú)立的多核處理器和soc也可能密集地位于服務(wù)板上,其繼而經(jīng)由背板等通信地互連。另一通用方法為對(duì)服務(wù)器機(jī)架(例如,刀片服務(wù)器和模塊)中的典型地被配置2d陣列中作為計(jì)算節(jié)點(diǎn)的集群的計(jì)算單元進(jìn)行互連。
存在需要在各種服務(wù)器和/或計(jì)算節(jié)點(diǎn)的集合之間進(jìn)行精確同步的各種類型的處理任務(wù)。舉例來說,當(dāng)部署在集群中時(shí),計(jì)算節(jié)點(diǎn)典型地在它們自身之間發(fā)送消息,并且接收消息的順序是非常重要的。為此,存在可能用于確保消息以適當(dāng)?shù)捻樞蛱幚淼母鞣N排序模型,包括fifo(先入先出)、全排序以及因果排序。這些排序方案的每一個(gè)都需要額外的開銷,這導(dǎo)致了性能降低。舉例來說,fifo排序可能典型地需要使用fifo路由器,全排序需要通過中央實(shí)體發(fā)送消息,并且因果排序是典型地使用向量時(shí)鐘實(shí)現(xiàn)的。
理想地,最有效的排序方案會(huì)簡(jiǎn)單地包括使用絕對(duì)時(shí)間為每一個(gè)消息標(biāo)記時(shí)間戳。這會(huì)支持絕對(duì)排序,它對(duì)于很多hpc和其他過程來說是優(yōu)選的排序方案。然而,這固有地難以實(shí)現(xiàn),因?yàn)椴淮嬖谌缭趆pc環(huán)境中進(jìn)行共享的絕對(duì)時(shí)間的此類事物。更確切地,時(shí)間并不需要太絕對(duì),而是在每一個(gè)服務(wù)器上運(yùn)行的時(shí)鐘是同步的。
一種用于同步時(shí)鐘的方案由ieee1588標(biāo)準(zhǔn)定義。ieee1588提供了一種用于對(duì)經(jīng)由能夠多播的網(wǎng)絡(luò)(例如,以太網(wǎng))連接的時(shí)鐘進(jìn)行同步的標(biāo)準(zhǔn)協(xié)議。ieee1588被設(shè)計(jì)為在需要很少網(wǎng)絡(luò)帶寬開銷、處理功率以及管理設(shè)置的異構(gòu)網(wǎng)絡(luò)的時(shí)鐘當(dāng)中提供容錯(cuò)同步。ieee1588通過定義稱為精確時(shí)間協(xié)議或者ptp的協(xié)議來進(jìn)行提供。
時(shí)鐘的異構(gòu)網(wǎng)絡(luò)是包括不同特性的時(shí)鐘的網(wǎng)絡(luò),所述不同特性的時(shí)鐘諸如時(shí)鐘的時(shí)間源的來源,以及時(shí)鐘頻率的穩(wěn)定性。ptp協(xié)議提供了一種將所有參與時(shí)鐘同步至該網(wǎng)絡(luò)中的最高質(zhì)量時(shí)鐘的容錯(cuò)方法。ieee1588定義了時(shí)鐘特性的標(biāo)準(zhǔn)集組合針對(duì)每一個(gè)定義了數(shù)值范圍。通過運(yùn)行分布式算法,稱為最佳主時(shí)鐘算法(bmc),該網(wǎng)絡(luò)中的每一個(gè)時(shí)鐘識(shí)別出最高質(zhì)量的時(shí)鐘;其是具有最好特性集合的時(shí)鐘。
最高排位的時(shí)鐘被稱為“主(grandmaster)”時(shí)鐘,并使所有其他的“從(slave)”時(shí)鐘同步。如果“主”時(shí)鐘被從網(wǎng)絡(luò)中移除,或者如果它的特性以它不再是“最佳”時(shí)鐘的方式改變,那么bmc算法為參與時(shí)鐘提供了用于自動(dòng)地確定當(dāng)前“最佳”時(shí)鐘的方式,當(dāng)前“最佳”時(shí)鐘成為新的主時(shí)鐘。最佳主時(shí)鐘算法提供了確定該時(shí)鐘用作整個(gè)網(wǎng)絡(luò)的時(shí)間源的容錯(cuò)并且管理自由的方式。
從時(shí)鐘通過使用雙向多播通信同步至1588主時(shí)鐘。主時(shí)鐘周期性地發(fā)出稱為“同步”包的數(shù)據(jù)包,其包括當(dāng)該數(shù)據(jù)包離開主時(shí)鐘時(shí)的時(shí)間的時(shí)間戳。主時(shí)鐘還可以選擇性地,發(fā)出包括該“同步”包的時(shí)間戳的“跟蹤”包。使用單獨(dú)的“跟蹤”包允許主時(shí)鐘精確地在其中數(shù)據(jù)包的離開時(shí)間事先無法確切得知的網(wǎng)絡(luò)上對(duì)“同步”包標(biāo)記時(shí)間戳。舉例來說,以太網(wǎng)通信的沖突檢測(cè)和隨機(jī)退避機(jī)制防止知曉該數(shù)據(jù)包的準(zhǔn)確發(fā)送時(shí)間直到在沒有檢測(cè)到?jīng)_突的情況下在數(shù)據(jù)包被完全發(fā)送,此時(shí)不可能改變數(shù)據(jù)包的內(nèi)容。
雖然ieee1588和ptp為某些應(yīng)用提供了充足水平的時(shí)鐘同步(近似數(shù)十微秒),但仍不足精確到滿足很多hpc環(huán)境的需要。因此,實(shí)現(xiàn)一種比ieee1588好上數(shù)個(gè)數(shù)量級(jí)的維持時(shí)鐘同步的機(jī)制將是有利的。
附圖說明
通過參考下面的詳細(xì)描述并結(jié)合附圖,前述的各方面以及本發(fā)明隨之而來的很多優(yōu)點(diǎn)將變得更易于理解同時(shí)變得更好地理解,其中,除非另行指明,在附圖中不同視圖的類似的附圖標(biāo)記表示類似的部件。
圖1是示出了根據(jù)一個(gè)實(shí)施例的包括結(jié)構(gòu)架構(gòu)的各種組件和互連的系統(tǒng)的高層次視圖的示意圖;
圖2是描述根據(jù)一個(gè)實(shí)施例的通過結(jié)構(gòu)鏈路傳輸數(shù)據(jù)的各架構(gòu)層的示意圖;
圖3是示出了組成為一組的多個(gè)flit的示意圖;
圖4是示出了根據(jù)一個(gè)實(shí)施例的結(jié)構(gòu)數(shù)據(jù)包的結(jié)構(gòu)的示意圖;
圖5是示出了根據(jù)一個(gè)實(shí)施例的標(biāo)準(zhǔn)檢測(cè)ltp的數(shù)據(jù)結(jié)構(gòu)的圖;
圖6是示出了根據(jù)一個(gè)實(shí)施例的14位crcltp的數(shù)據(jù)結(jié)構(gòu)的圖;
圖7是示出了根據(jù)一個(gè)實(shí)施例的增強(qiáng)的檢測(cè)ltp的數(shù)據(jù)結(jié)構(gòu)的圖;
圖8是示出了根據(jù)一個(gè)實(shí)施例的標(biāo)準(zhǔn)檢測(cè)空ltp的數(shù)據(jù)結(jié)構(gòu)的圖;
圖9是示出了根據(jù)一個(gè)實(shí)施例的在使用4個(gè)通道的兩個(gè)鏈路端口之間的雙向數(shù)據(jù)傳輸?shù)氖纠氖疽鈭D;
圖10a是示出了根據(jù)一個(gè)實(shí)施例的其中實(shí)現(xiàn)了時(shí)間同步的結(jié)構(gòu)中的示例時(shí)鐘樹的示意圖;
圖10b是示出了在其中備份主時(shí)鐘節(jié)點(diǎn)代替原始主時(shí)鐘節(jié)點(diǎn)的對(duì)圖10a進(jìn)行展開的示意圖;
圖11a是被配置為使用接近交換機(jī)邊緣的環(huán)形母線對(duì)在上游時(shí)鐘端口和下游時(shí)鐘端口之間傳輸時(shí)鐘數(shù)據(jù)的交換機(jī)的示意圖;
圖11b是示出了根據(jù)一個(gè)實(shí)施例的時(shí)鐘端口的進(jìn)一步細(xì)節(jié)的示意圖;
圖12是示出了根據(jù)一個(gè)實(shí)施例的主時(shí)鐘高spcflit的格式的圖;
圖13是示出了根據(jù)一個(gè)實(shí)施例的主時(shí)鐘低spcflit的格式的圖;
圖14是示出了根據(jù)一個(gè)實(shí)施例的用于確定主節(jié)點(diǎn)時(shí)鐘和從節(jié)點(diǎn)上的本地時(shí)鐘之間的時(shí)鐘漂移的操作和邏輯的流程圖;
圖15是示出了根據(jù)一個(gè)實(shí)施例的用于計(jì)算時(shí)鐘樹路徑延遲的操作和邏輯的流程圖;以及
圖16是示出了用于在主時(shí)鐘和本地時(shí)鐘之間執(zhí)行時(shí)鐘同步的操作并進(jìn)一步示出了使用經(jīng)由圖14的流程圖確定的時(shí)鐘漂移的對(duì)同步的時(shí)鐘進(jìn)行更新的流程圖。
具體實(shí)施方式
用于實(shí)現(xiàn)百億億次級(jí)結(jié)構(gòu)的時(shí)間同步的方法和裝置的實(shí)施例在本文中進(jìn)行描述。在下面的描述中,提出了大量特定細(xì)節(jié)以提供對(duì)本發(fā)明的各實(shí)施例的徹底理解。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可在沒有特定細(xì)節(jié)中的一個(gè)或多個(gè)的情況下實(shí)施,或者與其他方法、組件、材料等一起實(shí)施。在其他實(shí)例中,公知的結(jié)構(gòu)、材料或操作并沒有具體示出或者描述以避免模糊本發(fā)明的各方面。
貫穿本說明書的對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用是指結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特性被包含在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說明書在多處出現(xiàn)的短語“在一個(gè)實(shí)施例中”或“在實(shí)施例中”并不必須所有都指相同的實(shí)施例。此外,在一個(gè)或多個(gè)實(shí)施例中,該特定特征、結(jié)構(gòu)或特性可能以任何適當(dāng)?shù)姆绞竭M(jìn)行組合。
為了清晰起見,在本文中,附圖中的獨(dú)立組件還可能通過附圖中它們的標(biāo)簽進(jìn)行引用,而不是通過特定的附圖標(biāo)記。此外,指示特定類型的組件(與特定組件相反)的附圖標(biāo)記可能被示出為后面跟著表示“典型的”的“(typ)”的附圖標(biāo)記。將理解,這些組件的配置將為典型的可能存在但為了簡(jiǎn)潔和清晰沒有在附圖中示出的相似組件,或否則沒有使用獨(dú)立的附圖標(biāo)記進(jìn)行標(biāo)示的相似組件。相反地,“(typ)”并不解釋為表示該組件、元素等典型地用于它的公開的功能、實(shí)現(xiàn)、目的等。
依據(jù)本文描述的各實(shí)施例的各方面,提供了一種促進(jìn)百億億次級(jí)結(jié)構(gòu)的非常精確的時(shí)間同步的機(jī)制。在示例性實(shí)施例中,該結(jié)構(gòu)支持鏈路層(第2層)固有的可靠性而無需在更高層的端對(duì)端確認(rèn),諸如由以太網(wǎng)的tcp所使用的。為了更好地理解如何實(shí)現(xiàn)該機(jī)制,首先討論百億億次級(jí)結(jié)構(gòu),然后為時(shí)間同步機(jī)制的詳細(xì)描述。
依據(jù)百億億次級(jí)結(jié)構(gòu)的各方面,提供了定義消息傳遞、交換、服務(wù)器互連網(wǎng)絡(luò)的架構(gòu)。該架構(gòu)跨越osi網(wǎng)絡(luò)模型第1層和第2層,利用第3層的ietf因特網(wǎng)協(xié)議,并包括該架構(gòu)的第4層的新的和利用的規(guī)范的組合。
該架構(gòu)可能被實(shí)施以互連cpu和包括邏輯消息傳遞配置的其他子系統(tǒng),或者通過正式的定義,諸如超級(jí)計(jì)算機(jī),或者簡(jiǎn)單地通過關(guān)聯(lián),諸如歸因于它們運(yùn)行的消息傳遞應(yīng)用而以某種協(xié)調(diào)的方式起作用的服務(wù)器的組或集群,正如通常為云計(jì)算的情況。該互連的組件被稱為節(jié)點(diǎn)。該架構(gòu)還可能被實(shí)施以將處理器節(jié)點(diǎn)與soc、多芯片模塊等互連。一種類型的節(jié)點(diǎn),稱為主機(jī),是其上執(zhí)行用戶模式的軟件的類型。在一個(gè)實(shí)施例中,主機(jī)包括單個(gè)超高速緩存一致的存儲(chǔ)器域,不考慮該一致的域中的核心或cpu的數(shù)量,并可以包括各種本地i/o和存儲(chǔ)子系統(tǒng)。主機(jī)運(yùn)行的軟件的類型可以定義更特定的功能,諸如用戶應(yīng)用節(jié)點(diǎn),或者存儲(chǔ)器或文件服務(wù)器,以及服務(wù)器以用于描述更具體的系統(tǒng)架構(gòu)。
在頂層,該架構(gòu)定義下述組件:
主機(jī)結(jié)構(gòu)接口(hfi);
連接;
交換機(jī);
網(wǎng)關(guān);以及
綜合管理模型。
主機(jī)結(jié)構(gòu)接口(hfi)最少由實(shí)現(xiàn)該架構(gòu)的物理層和鏈路層的邏輯組成,使得節(jié)點(diǎn)可附連至結(jié)構(gòu)并發(fā)送和接收數(shù)據(jù)包至其他服務(wù)器或設(shè)備。hfi包括用于操作系統(tǒng)和vmm(虛擬機(jī)管理器)支持的適當(dāng)?shù)挠布涌诤万?qū)動(dòng)器。hfi還可以包括用于執(zhí)行或加速傳輸協(xié)議的上層協(xié)議和/或卸載專用邏輯。hfi還包括響應(yīng)來自于網(wǎng)絡(luò)管理組件的消息的邏輯。每一個(gè)主機(jī)經(jīng)由hfi連接至該架構(gòu)結(jié)構(gòu)。
鏈路是將hfi連接至交換機(jī)、連接交換機(jī)至其他交換機(jī)或者連接交換機(jī)至網(wǎng)關(guān)的全雙工、點(diǎn)對(duì)點(diǎn)的互連。鏈路在電路板跡線、銅線電纜或者光纜中可能具有不同的物理配置。在一個(gè)實(shí)施例中phy(物理層)、電纜和連接器的實(shí)施策略的實(shí)現(xiàn)遵循以太網(wǎng)的那些實(shí)施策略,特別是100gbe(每秒100千兆比特以太網(wǎng)),諸如以ieee802.3bj-2014標(biāo)準(zhǔn)定義的以太網(wǎng)鏈路。該架構(gòu)是靈活的,支持可能超過100gbe帶寬的未來以太網(wǎng)或其他鏈路技術(shù)的使用。高端超級(jí)計(jì)算機(jī)產(chǎn)品可能使用專用(更高帶寬)phy,并且對(duì)于那些配置,與架構(gòu)產(chǎn)品的互操作性將基于與具有不同phy的端口的交換。
圖1顯示出根據(jù)一個(gè)實(shí)施例的示出了該架構(gòu)的各種組件和互連的系統(tǒng)100的高層次視圖。該架構(gòu)的中心特征是結(jié)構(gòu)102,它包括經(jīng)由該架構(gòu)的鏈路和交換機(jī)互連的hfi和網(wǎng)關(guān)的集合。如圖1所繪,結(jié)構(gòu)102組件包括多個(gè)hfi104(示出了一個(gè)),每一個(gè)hfi104由各自的分立的單個(gè)節(jié)點(diǎn)平臺(tái)106托管,由虛擬平臺(tái)110托管的hfi108、由多節(jié)點(diǎn)平臺(tái)116的各自節(jié)點(diǎn)1141和114n托管的hfi1121和112n、以及集成的單個(gè)節(jié)點(diǎn)平臺(tái)120的hfi1181和118n、高階交換機(jī)122、交換機(jī)124和126、結(jié)構(gòu)管理器128、網(wǎng)關(guān)130、鏈路132、134、1361、136n、138、1401、140n、142、144、148以及組合示出為云150的其他鏈路和交換機(jī)。
如上文討論的,交換機(jī)是第2層設(shè)備并用作結(jié)構(gòu)內(nèi)的數(shù)據(jù)包轉(zhuǎn)發(fā)機(jī)制。交換機(jī)由結(jié)構(gòu)管理軟件集中供應(yīng)和管理,并且每一個(gè)交換機(jī)包括管理代理以響應(yīng)管理事務(wù)。集中供應(yīng)表示轉(zhuǎn)發(fā)表由結(jié)構(gòu)管理軟件編程以實(shí)現(xiàn)特定結(jié)構(gòu)拓?fù)浜娃D(zhuǎn)發(fā)能力,例如,用于自適應(yīng)路由的替代路由。交換機(jī)負(fù)責(zé)執(zhí)行qos特征諸如自適應(yīng)路由和負(fù)載平衡,并還實(shí)現(xiàn)擁塞管理功能。
圖2描繪了用于通過該結(jié)構(gòu)鏈路傳輸數(shù)據(jù)的該架構(gòu)的層。該層包括物理(phy)層、鏈路傳輸子層、鏈路結(jié)構(gòu)子層以及傳輸層。在圖2的左邊是各層至osi參考模型的映射,其中phy層映射至第1層(phy層),鏈路傳輸子層和鏈路結(jié)構(gòu)子層一起映射至第2層(鏈路層),并且傳輸層映射至第4層(傳輸層)。
在該架構(gòu)中,在物理層中信號(hào)被組合在一起進(jìn)入端口,它用作、可被控制并被報(bào)告為單一體。端口包括一個(gè)或多個(gè)物理通道,其中每一個(gè)通道由以物理傳輸介質(zhì)實(shí)現(xiàn)的兩個(gè)差分線對(duì)或光纖組成,每一個(gè)用于通信的一個(gè)方向。包括端口的通道的數(shù)量是實(shí)現(xiàn)相關(guān)的;然而,該鏈路傳輸子層的架構(gòu)支持端口寬度的有限集合。特定端口寬度被支持為基礎(chǔ)端口寬度,以允許線纜和芯片設(shè)計(jì)的普通目標(biāo)。該端口寬度包括1x、4x、8x、12x、以及16x,其中“x”標(biāo)識(shí)物理通道的數(shù)量。在某些情況下,諸如有缺陷通道的檢測(cè),鏈路可以以減小的通道寬度運(yùn)行。
該鏈路傳輸子層用作物理層和鏈路結(jié)構(gòu)子層之間的接口。鏈路結(jié)構(gòu)數(shù)據(jù)包(在鏈路結(jié)構(gòu)子層處)被分段為64比特的流控制數(shù)字(flit,flit,或者flit,流控制數(shù)字的近似縮寫)。圖3示出了組成為束(bundle)302的多個(gè)flit300的示例。每一個(gè)flit300包括含有8字節(jié)數(shù)據(jù)的64個(gè)數(shù)據(jù)比特。
鏈路傳輸子層將多個(gè)通道形成為能夠以可靠的方式跨越該鏈路傳輸flit以及它們的相關(guān)聯(lián)的信用返回信息的組。這使用稱為鏈路傳輸數(shù)據(jù)包(ltp)的1056比特的束完成,鏈路傳輸數(shù)據(jù)包與鏈路結(jié)構(gòu)子層相關(guān)聯(lián)。圖3還描述了ltp的數(shù)據(jù)部分,它包括16個(gè)flit的數(shù)據(jù)。此外,ltp包括flit類型的信息、crc數(shù)據(jù)以及可選數(shù)據(jù)(未在圖3中示出)。在多幅附圖(例如,圖5-圖8)中示出了并在下文更進(jìn)一步詳細(xì)描述ltp的示例。
結(jié)構(gòu)數(shù)據(jù)包由64比特的flit和用于每一個(gè)flit的flit類型的比特組成。結(jié)構(gòu)數(shù)據(jù)包的第一數(shù)據(jù)flit被稱為頭(head)flit。結(jié)構(gòu)數(shù)據(jù)包的最后數(shù)據(jù)flit被稱為尾(tail)flit。在結(jié)構(gòu)數(shù)據(jù)包中的任意其他數(shù)據(jù)flit被稱為體(bodyflit)。結(jié)構(gòu)數(shù)據(jù)包400的示例在圖4中示出。
該flit類型比特被提供給每一個(gè)flit以區(qū)分體flit與其他flit類型。在一個(gè)實(shí)施例中,體flit被編碼為該flit類型比特設(shè)置為1,并包括64比特的數(shù)據(jù)。所有其他flit被標(biāo)記為該類型比特設(shè)置為0。頭flit被編碼為flit[63]設(shè)置為1。所有其他(非體)flit被編碼為flit[63]設(shè)置為0。尾flit被編碼為flit[62]設(shè)置為1。所有其他(非體/頭)flit被編碼為flit[62]設(shè)置為0。flit編碼被總結(jié)在下面的表1中。
表1
控制flit被總結(jié)在表2中。由鏈路傳輸層單獨(dú)使用的七個(gè)控制flit(lt控制flit)以空(null)ltp發(fā)送。剩余的控制flit被劃分為兩個(gè)組。結(jié)構(gòu)數(shù)據(jù)包(fp)flit包括頭壞數(shù)據(jù)包(headbadpkt)控制flit、體壞數(shù)據(jù)包(bodybadpkt)控制flit和尾壞數(shù)據(jù)包(tailbadpkt)控制flit以及正常數(shù)據(jù)包頭flit、體flit和尾flit。鏈路結(jié)構(gòu)(lf)命令flit包括空閑(idle)flit、vlmrkrflit和crdtretflit。fpflit和lf命令flit可以在可靠ltp中混合在一起以通過該鏈路傳輸。
表2
當(dāng)沒有要插入該數(shù)據(jù)流的結(jié)構(gòu)數(shù)據(jù)包flit時(shí)該鏈路結(jié)構(gòu)層使用空閑命令flit。如果該數(shù)據(jù)路徑的全部寬度包含空閑,那么該鏈路傳輸層將從被插入到輸入緩沖器的flit流中移除它們。如果該數(shù)據(jù)路徑包含空閑flit和非空閑flit兩者,那么該空閑將不被移除。實(shí)現(xiàn)這種方式用于鏈路傳輸層以向該鏈路遠(yuǎn)端的鏈路結(jié)構(gòu)層呈現(xiàn)相同的數(shù)據(jù)路徑組成。如果該鏈路傳輸層沒有從鏈路結(jié)構(gòu)層掛起的flit,則它將插入空閑因?yàn)樵糵lit通過該鏈路發(fā)送。原始flit是通過該鏈路首次發(fā)送的flit,與從包括重新發(fā)送的或重傳的flit的重傳緩沖器發(fā)送的那些相反。
鏈路傳輸數(shù)據(jù)包持有16個(gè)flit以通過該鏈路發(fā)送??煽縧tp被保持在重傳緩沖器中一段足夠長(zhǎng)的時(shí)間以保證重新發(fā)送請(qǐng)求的缺少指示它已經(jīng)被該鏈路對(duì)等(peer)成功接收。重傳緩沖器位置指針針對(duì)發(fā)送器(nxttxltp)和接收器(nxtrxltp)處的每一個(gè)ltp被維持,但并不作為ltp的一部分被交換。當(dāng)由接收器檢測(cè)到傳輸錯(cuò)誤時(shí),它發(fā)送retryreqltp至包含nxtrxltp重傳緩沖器位置指針的發(fā)送器。響應(yīng)于接收到retryreqltp,在重傳緩沖器中的ltp被以原始順序重新發(fā)送,開始為retryreqltp(對(duì)等nxtrxltp)并且結(jié)束為最后重傳緩沖器位置寫入(nxtwrltp-1)??誰tp并不保持在重傳緩沖器中并且并不被重新發(fā)送。
鏈路結(jié)構(gòu)命令flit可能與fpflit在ltp中混合;然而,lf命令flit不是結(jié)構(gòu)數(shù)據(jù)包的一部分。它們承載從位于鏈路一端的鏈路結(jié)構(gòu)子層至位于該鏈路另一端的鏈路結(jié)構(gòu)子層的控制信息。
在一個(gè)實(shí)施例中,存在三個(gè)ltp格式,包括標(biāo)準(zhǔn)檢測(cè)ltp、14比特crcltp,以及增強(qiáng)檢測(cè)ltp。標(biāo)準(zhǔn)檢測(cè)ltp的實(shí)施例在圖5中示出。除了16個(gè)flit每一個(gè)標(biāo)準(zhǔn)檢測(cè)ltp具有16比特的crc,它覆蓋了該ltp內(nèi)容。為了說明的目的,圖5中的flit被示出為65個(gè)比特,其中比特64是flit類型的比特。
14比特crcltp的實(shí)施例在圖6中示出。除了該16個(gè)flit,每一個(gè)14比特crcltp具有兩比特信用邊帶信道以及覆蓋ltp內(nèi)容的14比特crc。在ltp內(nèi)或者以特定lf命令flit或者以ltp信用邊帶信道來發(fā)送流控制信用。
除了標(biāo)準(zhǔn)檢測(cè)ltp,該鏈路還可以支持持有十六個(gè)flit并具有四個(gè)十二比特crc字段的可選的增強(qiáng)檢測(cè)ltp。圖7示出了增強(qiáng)的檢測(cè)ltp的實(shí)施例的格式。四個(gè)crc字段的每一個(gè)覆蓋所有十六個(gè)flit。如果四個(gè)crc中的任意一個(gè)是壞的,那么該ltp被重新發(fā)送。對(duì)于該四個(gè)12比特crc來說,存在兩個(gè)crc計(jì)算選項(xiàng)。第一個(gè)(48b重疊)使用四次重疊計(jì)算,其中每次計(jì)算覆蓋ltp內(nèi)的所有比特。第二個(gè)(每一個(gè)通道12b-16bcrc)使用四次非重疊計(jì)算,其中每次計(jì)算被限制為在四個(gè)通道的其中一個(gè)上流動(dòng)的所有比特。
如上文討論的,由鏈路傳輸層使用的lt控制flit在空ltp中發(fā)送??誰tp并不消耗重傳緩沖器中的空間并且并不被重新發(fā)送。它們使用上文表2中總結(jié)的鏈路傳輸lt控制flit的其中一個(gè)進(jìn)行區(qū)分。大多數(shù)空ltp類型以順序?qū)Φ姆绞桨l(fā)送以保證在無錯(cuò)的情況下兩個(gè)中的其中至少一個(gè)由該鏈路對(duì)等接收或者當(dāng)它們兩者都具有錯(cuò)誤時(shí)將自動(dòng)生成retrainretryreq。在圖8中示出了標(biāo)準(zhǔn)檢測(cè)空ltp的示例。
標(biāo)準(zhǔn)檢測(cè)空ltp包含單個(gè)區(qū)分控制flit,975個(gè)保留比特以及標(biāo)準(zhǔn)檢測(cè)十六個(gè)比特的crc字段。增強(qiáng)檢測(cè)空ltp包含單個(gè)區(qū)分控制flit,975個(gè)保留比特和增強(qiáng)的檢測(cè)四個(gè)12比特crc字段。當(dāng)使用14比特crc時(shí),在空ltp中忽略這兩個(gè)邊帶比特。
如上文所討論的,該架構(gòu)使用三層數(shù)據(jù)單元粒度以支持?jǐn)?shù)據(jù)傳輸:結(jié)構(gòu)數(shù)據(jù)包、flit和鏈路傳輸數(shù)據(jù)包。在鏈路傳輸層的發(fā)送單元是ltp。正如所描繪的,每一個(gè)ltp名義上為16flit長(zhǎng),并且如上文所述ltp的真實(shí)大小可能取決于使用的特定crc方案而改變,并且參考具有16flit長(zhǎng)度的ltp的使用對(duì)應(yīng)于包含在排除crc比特和該16比特65的該ltp中的64比特flit的數(shù)據(jù)的數(shù)量。
在圖9中示出了包括四個(gè)物理通道的鏈路的一個(gè)實(shí)施例的物理層(還稱為“phy”)結(jié)構(gòu)。該phy定義了鏈路互連的物理結(jié)構(gòu)并且負(fù)責(zé)處理兩個(gè)鏈路對(duì)等之間的特定鏈路上的信號(hào)的操作細(xì)節(jié),例如由組件a和b所描繪的。物理層管理信號(hào)線上的數(shù)據(jù)傳輸,包括在跨越該并行通道發(fā)送和接收信息的每一個(gè)比特中涉及的電平、時(shí)間方面以及邏輯事務(wù)。如圖9所示,每一個(gè)互連鏈路的物理連接由四個(gè)差分信號(hào)對(duì)900組成,包括每一個(gè)方向上的通道0-3。每一個(gè)端口支持由兩個(gè)單向鏈路組成的鏈路對(duì)以完成兩個(gè)對(duì)等組件之間的連接。這支持雙向同時(shí)業(yè)務(wù)。
具有鏈路端口的組件使用被定義為鏈路對(duì)等的單向點(diǎn)對(duì)點(diǎn)鏈路對(duì)來進(jìn)行通信,如圖9中所示。每一個(gè)端口包括發(fā)送(tx)鏈路接口和接收(rx)鏈路接口。對(duì)于示出的示例,組件a具有連接至組件brx端口904的tx端口902。同時(shí),組件b具有連接至組件brx端口908的tx端口904。一個(gè)單向鏈路從組件a發(fā)送至組件b,并且另一鏈路從組件b發(fā)送至組件a。該“發(fā)送”鏈路和“接收”鏈路相對(duì)于哪個(gè)組件端口在發(fā)送以及哪個(gè)在接收數(shù)據(jù)而定義。在圖9示出的配置中,組件a發(fā)送鏈路將數(shù)據(jù)從組件atx端口902發(fā)送至組件brx端口904。此相同的組件a發(fā)送鏈路是端口b接收鏈路。
如前面所述,用于在鏈路端口間傳輸數(shù)據(jù)的基礎(chǔ)單元是ltp。每一個(gè)ltp對(duì)于通過由發(fā)送端口以及位于鏈路對(duì)端的接收端口定義的特定鏈路在一個(gè)方向上的傳輸是特定的。ltp具有單個(gè)鏈路傳輸?shù)膲勖⑶襩tp通過從可用vl緩沖器拉取flit并組裝它們,每次16個(gè),成為各自的ltp而動(dòng)態(tài)生成。如ltp傳輸流910和912所描繪的,ltp被發(fā)送為flit流,其中單獨(dú)ltp的第一flit和最后flit由頭flit比特和尾flit比特描繪,如上文參考圖4所討論的。
如上文所討論的,該架構(gòu)定義一種數(shù)據(jù)包遞送機(jī)制,主要包括目的地-路由的結(jié)構(gòu)數(shù)據(jù)包,或fp,具有0字節(jié)至10240字節(jié)大小的第4層有效載荷大小。這為發(fā)送從簡(jiǎn)單ulp確認(rèn)至封裝的以太網(wǎng)巨型幀的一個(gè)范圍的消息提供了有效支持。結(jié)構(gòu)數(shù)據(jù)包表示上游至hfi或從hfi下游的載荷的邏輯單元。稱為結(jié)構(gòu)數(shù)據(jù)包是因?yàn)樗鼈兙哂性诮Y(jié)構(gòu)中的端至端的壽命。更特別地,結(jié)構(gòu)數(shù)據(jù)包的壽命是它在正如由fp的源和目的地地址所定義的結(jié)構(gòu)端點(diǎn)之間傳輸fp內(nèi)容所需的時(shí)間。fp的每一個(gè)傳輸路徑將包括跨越至少一個(gè)鏈路的傳輸,并可以包括當(dāng)該傳輸路徑穿過一個(gè)或多個(gè)交換機(jī)時(shí)跨越多個(gè)鏈路的傳輸。
結(jié)構(gòu)時(shí)間同步
依據(jù)本文描述的各實(shí)施例的進(jìn)一步方面,提供了一種用于以獲得其數(shù)量級(jí)比目前使用ieee1588獲得的更精確的極高精確等級(jí)的方式同步跨越結(jié)構(gòu)的時(shí)鐘的機(jī)制。該技術(shù)是固有可擴(kuò)展的,使得10000或100000個(gè)節(jié)點(diǎn)的時(shí)鐘能夠與單個(gè)主時(shí)鐘同步。此外,為了更進(jìn)一步的擴(kuò)展性可以實(shí)現(xiàn)多個(gè)主時(shí)鐘。
存在實(shí)施該時(shí)間同步機(jī)制的多個(gè)關(guān)鍵方面。首先是跨越鏈路的基于flit的信息傳輸以及在flit流中混合控制flit和數(shù)據(jù)包flit的能力。主時(shí)鐘被用于經(jīng)由使用特殊控制flit(spc)而不是作為結(jié)構(gòu)數(shù)據(jù)包來將主時(shí)間傳播至耦合到該結(jié)構(gòu)的多個(gè)終端節(jié)點(diǎn)(稱為從節(jié)點(diǎn))。這表示當(dāng)該主時(shí)間信息到達(dá)交換機(jī)的發(fā)送端口時(shí),它可以在下一8字節(jié)flit邊界處被立即注入該鏈路。無需等待直到當(dāng)前數(shù)據(jù)包已經(jīng)完成發(fā)送。這使通過該交換機(jī)的傳播延遲中的抖動(dòng)最小化。鏈路級(jí)在出現(xiàn)錯(cuò)誤時(shí)重試,如果該時(shí)間控制flit被重傳則會(huì)引入顯著的抖動(dòng)。為了避免這一情況,在一個(gè)實(shí)施例中,如果該時(shí)間控制flit由重傳事件被延遲,則被簡(jiǎn)單地丟棄,并且該協(xié)議對(duì)于丟失的時(shí)間更新是能適應(yīng)的。
在一個(gè)實(shí)施例中,主時(shí)間是64比特的值,而控制flit僅可承載48比特的載荷。該主時(shí)間因此被承載在兩個(gè)獨(dú)立的flit中,其中一個(gè)承載低40比特并且一個(gè)承載較高的(高)32比特,其中8個(gè)比特是重疊的。通過承載時(shí)間值的重疊部分,端點(diǎn)可確定獨(dú)立到達(dá)的并且其中任一個(gè)都可能在途中被丟棄的這兩個(gè)部分彼此間是否一致。這還可允許時(shí)間值的較高部分的被發(fā)送的頻率遠(yuǎn)小于時(shí)間值的較低部分。
不像傳統(tǒng)的交換機(jī),通過交換機(jī)對(duì)時(shí)間值的傳播使用獨(dú)立于用于傳播數(shù)據(jù)包的交叉開關(guān)和緩沖器的數(shù)據(jù)路徑。在一個(gè)實(shí)例中,該數(shù)據(jù)路徑是圍繞交換機(jī)芯片外圍的多個(gè)比特寬度的環(huán)形總線。作為交換機(jī)的時(shí)間源,或者作為時(shí)鐘樹中的交換機(jī)的上游端口的端口,當(dāng)時(shí)間控制flit到達(dá)該端口并將時(shí)間值注入該環(huán)形總線時(shí)將時(shí)間值從該時(shí)間控制flit中移除。是時(shí)鐘樹中的下游端口的端口當(dāng)時(shí)間值經(jīng)過時(shí)從該環(huán)形總線中拷貝時(shí)間值并且然后在flit界限處將相應(yīng)的時(shí)間控制flit注入該鏈路。當(dāng)該時(shí)間值返回至它的源端口時(shí),它被從該環(huán)中移除。這提供了從上游端口至每一個(gè)下游端口的具有固定、已知延遲的傳播路徑。
在該時(shí)鐘樹中的每一個(gè)目的節(jié)點(diǎn),當(dāng)時(shí)間值到達(dá)時(shí),該時(shí)間值被從控制flit中捕獲,并存儲(chǔ)在主時(shí)間高(mastertimehigh)和主時(shí)間低(mastertimelow)寄存器中。當(dāng)承載時(shí)間值的低位比特的flit到達(dá)時(shí),該節(jié)點(diǎn)還捕獲在本地時(shí)間寄存器中的本地時(shí)鐘的值。在該節(jié)點(diǎn)上執(zhí)行的軟件然后可以讀取這些寄存器。在一個(gè)實(shí)施例中,硬件確保在寄存器中的值在讀取多個(gè)寄存器的序列期間不發(fā)生改變,或者通過使用陰影復(fù)制,或者通過禁止讀取序列期間的更新。該整個(gè)64比特的主時(shí)間可根據(jù)該兩個(gè)主時(shí)間寄存器進(jìn)行重建,并且可通過來自主時(shí)鐘的已知的傳播延遲(它可被單獨(dú)計(jì)算)進(jìn)行調(diào)整。這為軟件提供了在捕獲本地時(shí)間時(shí)的真實(shí)的主時(shí)間值,提供了跨越該結(jié)構(gòu)的絕對(duì)時(shí)間同步。
圖10a和圖10b示出了根據(jù)一個(gè)實(shí)施例的在其中實(shí)現(xiàn)時(shí)間同步的示例性的時(shí)鐘樹1000。時(shí)鐘樹1000中的主要組件包括主時(shí)鐘節(jié)點(diǎn)1002、備份主時(shí)鐘節(jié)點(diǎn)1004、交換機(jī)1006、1008以及1010,以及從節(jié)點(diǎn)1012和1014。還描述了一個(gè)或多個(gè)結(jié)構(gòu)管理器128,注意示出了兩個(gè)從而圖示的結(jié)構(gòu)管理器和其他組件之間的通信鏈路并不交叉。一般來說,時(shí)鐘樹可以包括一個(gè)或多個(gè)備份主時(shí)鐘節(jié)點(diǎn)。
主節(jié)點(diǎn)和從節(jié)點(diǎn)的每一個(gè)包括各自的時(shí)鐘和hfi1016。主時(shí)鐘節(jié)點(diǎn)1002包括主時(shí)鐘1018,備份主時(shí)鐘節(jié)點(diǎn)1004包括主時(shí)鐘1020,從節(jié)點(diǎn)1012包括本地時(shí)鐘1022,并且從節(jié)點(diǎn)1014包括本地時(shí)鐘1024。從節(jié)點(diǎn)1012和1014的每一個(gè)進(jìn)一步包括主時(shí)鐘高(mastertimehigh)寄存器1026,主時(shí)鐘低(mastertimelow)寄存器1028,以及本地時(shí)鐘寄存器1030。
交換機(jī)1006、1008和1010的每一個(gè)被相似地配置并且包括多個(gè)結(jié)構(gòu)端口1032,它們的部分或全部可能被配置為時(shí)鐘端口1034。時(shí)鐘端口與結(jié)構(gòu)端口相似,具有額外的功能以促進(jìn)主時(shí)鐘數(shù)據(jù)的傳播,如下文所描述的。為了說明的目的,僅僅四個(gè)時(shí)鐘端口1034(以灰色顯示以與其他結(jié)構(gòu)端口區(qū)分);然而,將理解任意數(shù)量的結(jié)構(gòu)端口1032可以被配置為時(shí)鐘端口。在本文的附圖中該上游時(shí)鐘端口以灰色描述,而下游時(shí)鐘端口以黑色描述。
在圖11和圖11b中示出了交換機(jī)1006、1008以及1010的進(jìn)一步細(xì)節(jié)。每一個(gè)交換機(jī)包括環(huán)形總線1036和1038(在本文還稱為“環(huán)”)的對(duì)。如所示出的,數(shù)據(jù)通過環(huán)1036以順時(shí)針方向轉(zhuǎn)發(fā),并且通過環(huán)1038以逆時(shí)針方向轉(zhuǎn)發(fā)。每一個(gè)環(huán)1038都包括多個(gè)環(huán)停止節(jié)點(diǎn)1100,在每一個(gè)時(shí)鐘端口1034提供了一對(duì)該節(jié)點(diǎn)。
每一個(gè)端口1032和時(shí)鐘端口1034都包括rx端口1102和tx端口1104,它們每一個(gè)分別耦合到rx緩沖器1106和tx緩沖器1108。對(duì)于給定的端口,每一個(gè)rx緩沖器1106可選擇性地通過用于交叉開關(guān)互連1110的邏輯和電路耦合到另一個(gè)端口的每一個(gè)tx緩沖器。為了方便和簡(jiǎn)潔,rx緩沖器1106、tx緩沖器1108以及交叉開關(guān)互連1110的組合在圖10a和圖10b中被描述為交換機(jī)交叉開關(guān)和緩沖器1040。此外,每一個(gè)交換機(jī)包括轉(zhuǎn)發(fā)和路由表1111,它使得該交換機(jī)能夠執(zhí)行它的普通結(jié)構(gòu)數(shù)據(jù)包轉(zhuǎn)發(fā)和路由。
在一個(gè)實(shí)施例中,所有端口是可以被選擇性地配置為支持上游和下游時(shí)鐘端口功能的時(shí)鐘端口。在一個(gè)實(shí)施例中,時(shí)鐘端口1034包括時(shí)間控制flit提取邏輯1112和時(shí)間控制flit注入邏輯1114,它們每一個(gè)都可以在每一個(gè)時(shí)鐘端口由結(jié)構(gòu)管理器選擇性地使能以形成時(shí)鐘樹。時(shí)間控制flit提取邏輯1112被實(shí)施在上游時(shí)鐘端口的rx端口1102并被配置為從flit流1116識(shí)別和提取時(shí)間控制flit。該時(shí)間控制flit包括主時(shí)間高(mastertimehigh)spcflit1118和主時(shí)間低(mastertimelow)spcflit1120。如圖12所示,主時(shí)間高spcflit1118包括65比特的flit,其中最低四個(gè)字節(jié)(字節(jié)0-3)被用于存儲(chǔ)主時(shí)間高時(shí)鐘值的較高的32比特。如圖13所示,主時(shí)間低spcflit1120包括65比特的flit,其中該最低五個(gè)字節(jié)(字節(jié)0-4)用于存儲(chǔ)主時(shí)間低時(shí)鐘值的較低的40比特。因此,如果時(shí)間控制flit彼此間一致,則主時(shí)間高spcflit1118的字節(jié)0以及主時(shí)間低spcflit1120的字節(jié)4應(yīng)當(dāng)包含相同的值。
在一個(gè)實(shí)施例中,時(shí)間控制flit提取邏輯1112提取主時(shí)間低spcflit的40比特(主時(shí)間低數(shù)據(jù))或者主時(shí)間高spcflit的32比特(主時(shí)間高數(shù)據(jù))并將數(shù)據(jù)(分別)封裝在數(shù)據(jù)包中并在環(huán)1036和1038上發(fā)送該數(shù)據(jù)。在另一實(shí)施例中,主時(shí)間低spcflit或者主時(shí)間高spcflit自身被封裝在該數(shù)據(jù)包中并在環(huán)1036和1038上發(fā)送。在每一個(gè)環(huán)-停止周期中,數(shù)據(jù)前進(jìn)至下一環(huán)停止節(jié)點(diǎn),最終到達(dá)下游時(shí)鐘端口環(huán)停止節(jié)點(diǎn),在該點(diǎn),時(shí)間控制flit注入邏輯1114能夠從該環(huán)拷貝數(shù)據(jù),對(duì)40比特的主時(shí)間低數(shù)據(jù)或32比特的主時(shí)間高數(shù)據(jù)(如果可應(yīng)用的話)進(jìn)行解封裝,生成新的主時(shí)間低或主時(shí)間高spcflit,并將該新的flit注入當(dāng)前正被從與該時(shí)間控制flit注入邏輯相關(guān)的tx端口發(fā)出的flit流1118中。在封裝整個(gè)主時(shí)間低spcflit和主時(shí)間高spcflit的實(shí)施例中,flit被提取并注入該flit流中而無需生成新的主時(shí)間低spcflit和主時(shí)間高spcflit。如上文所討論的,這些時(shí)間控制flit可以在該flit流的下一8字節(jié)邊界處被立即注入。
該結(jié)構(gòu)交換機(jī)還可以實(shí)現(xiàn)本地時(shí)鐘1116或主時(shí)鐘1118。在一個(gè)實(shí)施例中,結(jié)構(gòu)交換機(jī)可以被配置為執(zhí)行主時(shí)鐘節(jié)點(diǎn)的功能,并且位于時(shí)鐘樹的根部。在這種情況下,該結(jié)構(gòu)交換機(jī)并不實(shí)現(xiàn)上游端口。當(dāng)該結(jié)構(gòu)交換機(jī)在包括單獨(dú)的主時(shí)鐘節(jié)點(diǎn)的結(jié)構(gòu)中操作時(shí),該交換機(jī)的本地時(shí)鐘1116可以以與從節(jié)點(diǎn)相似的方式被同步,正如上文所描述的。
圖11b示出了一對(duì)時(shí)鐘端口1134a和1134b的進(jìn)一步細(xì)節(jié),它們被結(jié)構(gòu)管理器分別配置為上游時(shí)鐘端口和下游時(shí)鐘端口。每一個(gè)接收端口1102包括rx輸入fifo緩沖器1120,其中來自flit流的flit被緩存。每一個(gè)ltp中的crc值被用于驗(yàn)證ltp中的所有flit是否都被無錯(cuò)地接收。如果不是,則使用一種使得該ltp被從發(fā)送方重新發(fā)送的可靠機(jī)制。在ltp已經(jīng)被驗(yàn)證為已經(jīng)被成功接收之后,它被從rx輸入fifo緩沖器1120推出進(jìn)入接收緩沖器1106,接收緩沖器1106進(jìn)一步被標(biāo)記為“(inq)”,指示該接收緩沖器用作輸入隊(duì)列。
此外,一旦ltp已經(jīng)被成功接收,則時(shí)間控制flit提取邏輯1112提取該主時(shí)間低spcflit和主時(shí)間高spcflit并將它們沿著旁路電路路徑轉(zhuǎn)發(fā),如轉(zhuǎn)發(fā)路徑1122所描述的。每一個(gè)接收端口1102被連接至環(huán)形總線1036和1038兩者。同時(shí),該結(jié)構(gòu)管理器選擇性地配置游時(shí)鐘端口的每一個(gè)tx端口1104這樣被耦合到該環(huán)形總線,從而引起當(dāng)數(shù)據(jù)從上游時(shí)鐘端口至下游時(shí)鐘路徑轉(zhuǎn)發(fā)時(shí)的最小延遲。在示出的示例中,tx端口1104b被選擇性地耦合到環(huán)形總線1038。如將觀察到的,一對(duì)環(huán)形總線的使用減少了上游rx和下游tx端口對(duì)的某些之間的旁路電路長(zhǎng)度(與僅使用單個(gè)環(huán)相比)。在接收到主時(shí)間低和主時(shí)間高數(shù)據(jù)(或者flit,如果flit被沿著該旁路電路路徑轉(zhuǎn)發(fā))時(shí),相應(yīng)的flit被插入tx端口1104上的tx輸出緩沖器1124,并且接下來在該結(jié)構(gòu)上向外發(fā)送至該時(shí)鐘樹的下一跳。
存在將對(duì)當(dāng)時(shí)間控制flit經(jīng)過交換機(jī)時(shí)更新該時(shí)間控制flit中的時(shí)間值的有用的實(shí)施方式。舉例來說,如果在通過該交換機(jī)傳播時(shí)間值中存在未預(yù)期的延遲,則一種實(shí)施方式能夠?qū)崿F(xiàn)該時(shí)間值增加該未預(yù)期延遲的量而不是傳遞未改變的時(shí)間值。舉例來說,如果發(fā)送端口在重試序列的中間,則該時(shí)間值能夠被更新并且然后在該重試完成后被發(fā)送。
進(jìn)一步參考圖14的流程圖1400,依據(jù)一個(gè)實(shí)施例的本地時(shí)鐘相對(duì)于時(shí)鐘樹1000的主時(shí)鐘1018的時(shí)鐘速率不匹配的確定被實(shí)施為如下。如外層循環(huán)所描述的,以循環(huán)的方式執(zhí)行下述操作,諸如定期的。在塊1402中,hfi1016或者主時(shí)鐘節(jié)點(diǎn)1002(未示出)中的某些其他組件讀取主時(shí)鐘1018并生成主時(shí)間高spcflit1118和主時(shí)間低spcflit1120并且將其注入至從hfi的發(fā)送(tx)端口輸出的flit流1116。如上文所述,該主時(shí)間高spcflit包含該主時(shí)間高數(shù)據(jù),它包括64比特時(shí)鐘數(shù)據(jù)的較高32比特并且該主時(shí)間低spcflit包含該64比特主時(shí)鐘數(shù)據(jù)的較低40比特(主時(shí)間低數(shù)據(jù))。同樣如上文所討論的,重疊的使用使得低時(shí)間高spcflit和主時(shí)間高spcflit兩者的相同的8個(gè)比特進(jìn)行比較以驗(yàn)證該時(shí)鐘數(shù)據(jù)是一致的。塊1202的結(jié)果是將該主時(shí)間高spcflit1118和主時(shí)間低spcflit1120注入flit流1116,flit流1116被發(fā)送到交換機(jī)1106上的上游時(shí)鐘端口1134a的接收端口,如圖10a所示。該主時(shí)間高spcflit和主時(shí)間低spcflit可以被注入該flit流,或者作為有序?qū)蛘咦⑷朐揻lit流的無序槽中。如上文所描述的,該主時(shí)間高數(shù)據(jù)的發(fā)送并不需要每次傳輸時(shí)鐘數(shù)據(jù),因?yàn)榇溯^高32比特值在短時(shí)間內(nèi)將不會(huì)改變。
在主時(shí)鐘節(jié)點(diǎn)和在下述路徑中的最后交換機(jī)之前的給定從節(jié)點(diǎn)之間的整個(gè)時(shí)鐘樹路徑中的每一個(gè)交換機(jī)處執(zhí)行塊1404和1406的操作,在這種情況下執(zhí)行塊1408而不是塊1406的操作。為了說明的目的,交換機(jī)的數(shù)量被描述為整數(shù)n,其中n可以為一個(gè)或多個(gè)交換機(jī)。如果僅有一個(gè)交換機(jī),則塊1406的操作被跳過并且并不循環(huán)回下一交換機(jī)。
在塊1404中,在由配置為上游時(shí)鐘接收端口(例如,圖10a和10b中的時(shí)鐘端口1134a的rx端口)的時(shí)鐘端口1134a的接收(rx)端口接收時(shí),時(shí)間控制flit(主時(shí)間高spcflit和主時(shí)間低spcflit)被識(shí)別,并且相應(yīng)的32比特主時(shí)間高數(shù)據(jù)和40比特主時(shí)間低數(shù)據(jù)被提取。該主時(shí)間高數(shù)據(jù)和主時(shí)間低數(shù)據(jù)(如果可應(yīng)用的話)然后被繞著每一個(gè)環(huán)1036和1038發(fā)送,接下來前進(jìn)至每一個(gè)環(huán)停止節(jié)點(diǎn)直到完成每一個(gè)環(huán)的遍歷??蛇x地,該主時(shí)間高spcflit和主時(shí)間低spcflit它們自身被繞著環(huán)1036和1038發(fā)送。如塊1406所示,對(duì)于沿著具有作為下一跳的交換機(jī)的時(shí)鐘樹路徑的每一個(gè)交換機(jī),主時(shí)間高spcflit和主時(shí)間低spcflit(如果可應(yīng)用的話)在被用于將該主時(shí)鐘數(shù)據(jù)發(fā)送至該時(shí)鐘樹中的下一交換機(jī)的下游時(shí)鐘端口的tx端口處被注入該flit流。相似的操作在塊1208中針對(duì)最后的交換機(jī)沿著該時(shí)鐘樹路徑至目的從節(jié)點(diǎn)而不是下一交換機(jī)執(zhí)行。在圖10a和圖10b中描述的相應(yīng)下游時(shí)鐘端口包括交換機(jī)1006的下游時(shí)鐘端口1134b,交換機(jī)1008的下游時(shí)鐘端口1134d和1134e,以及交換機(jī)1010的下游時(shí)鐘端口1134g。
繼續(xù)在塊1410處,在從節(jié)點(diǎn)的hfi接收到主時(shí)間高spcflit和主時(shí)間低spcflit時(shí),該主時(shí)間高數(shù)據(jù)和主時(shí)間低數(shù)據(jù)被提取并分別寫入主時(shí)間高寄存器1026和主時(shí)間低寄存器1028。在一個(gè)實(shí)施例中,這些寄存器的每一個(gè)可以存儲(chǔ)多個(gè)樣本主時(shí)間高數(shù)據(jù)和主時(shí)間低數(shù)據(jù)??蛇x地,每一個(gè)寄存器存儲(chǔ)單個(gè)樣本,當(dāng)所述單個(gè)樣本被存儲(chǔ)在該寄存器中時(shí)由軟件或固件讀取。結(jié)合至主時(shí)間低寄存器1028的寫入,如由從節(jié)點(diǎn)上的邏輯所檢測(cè)的,從節(jié)點(diǎn)處的本地時(shí)鐘的第一樣本(例如,從節(jié)點(diǎn)1012的本地時(shí)鐘1022和從節(jié)點(diǎn)1014的本地時(shí)鐘1024)被獲取并且相應(yīng)的本地時(shí)間樣本被存儲(chǔ)在本地時(shí)間寄存器1030中。結(jié)合至主時(shí)間低寄存器1028的后續(xù)寫入(它將在下一循環(huán)中發(fā)生),獲取本地時(shí)鐘的第二樣本,并且第一本地時(shí)鐘樣本和第二本地時(shí)鐘樣本之間的差被計(jì)算為δtslave1212。同時(shí),從主時(shí)間高寄存器1026和主時(shí)間低寄存器1028中讀取主時(shí)間高值和主時(shí)間低值的各自樣本以生成連續(xù)的主時(shí)鐘時(shí)間樣本以計(jì)算δtmaster1214??蛇x地,從第一主時(shí)間低值減去第二主時(shí)間低值來計(jì)算δtmaster1214。
然后針對(duì)樣本之間的給定時(shí)間段計(jì)算δtmaster和δtslave之間的差并除以δtslave以確定主時(shí)鐘和本地(從)時(shí)鐘之間的時(shí)鐘速率不匹配1216。舉例來說,在一個(gè)實(shí)施例中,流程圖1200的外層循環(huán)被定期重復(fù)為接近每秒10次,并且因此該時(shí)鐘速率不匹配將被測(cè)算為十分之一秒(或者使用周期性的任意時(shí)間段)。在一個(gè)實(shí)施例中,本地時(shí)間寄存器1030被配置為存儲(chǔ)多個(gè)本地時(shí)鐘樣本,并且主時(shí)鐘數(shù)據(jù)的連續(xù)接收之間的差別可被精確計(jì)算(低至本地時(shí)鐘的粒度等級(jí),例如,近似幾納秒)。
除了確定每一個(gè)從節(jié)點(diǎn)的時(shí)鐘相對(duì)于主節(jié)點(diǎn)的時(shí)鐘的時(shí)鐘速率不匹配之外,該從節(jié)點(diǎn)時(shí)鐘還與該主時(shí)鐘同步。用于實(shí)現(xiàn)此過程的一個(gè)實(shí)施例的各操作在圖15的流程圖1500中示出。如循環(huán)開始?jí)K1502以及相應(yīng)的外層循環(huán)所示,針對(duì)主時(shí)鐘樹中的每一個(gè)從節(jié)點(diǎn)執(zhí)行流程圖1500的各操作。
如在開始循環(huán)塊1504和塊1506中所描述的,計(jì)算時(shí)鐘樹路徑中的每一個(gè)結(jié)構(gòu)鏈路段的鏈路段延遲。在一個(gè)實(shí)施例中,通過測(cè)量通過給定鏈路段完成往返路徑的持續(xù)時(shí)間并且然后減去由在該鏈路的兩端的處理消耗的時(shí)間部分來完成。在一個(gè)實(shí)施例中,在起始結(jié)構(gòu)端口(例如,交換機(jī)上的下游時(shí)鐘端口)處計(jì)算主時(shí)鐘樹中的每一個(gè)行程(1eg)分段的延遲,并且獲得的計(jì)算結(jié)果被發(fā)送至一個(gè)或多個(gè)結(jié)構(gòu)管理器,它將該信息存儲(chǔ)在鏈路段延遲表等中,如在塊1512中所描述的。從主時(shí)鐘節(jié)點(diǎn)1002到從節(jié)點(diǎn)1012的主時(shí)鐘樹路徑的鏈路段的示例集合包括鏈路段1042、1044和1046,相應(yīng)的鏈路段延遲分別被描述為δt1、δt3以及δt5。從主時(shí)鐘節(jié)點(diǎn)1002至從節(jié)點(diǎn)1014的主時(shí)鐘樹路徑包括鏈路段1042、1044、1048以及1050,相應(yīng)的鏈路段延遲分別被描述為δt1、δt3、δt7以及δt9。
接下來,如開始循環(huán)塊1508和塊1510所描述的,在沿著主時(shí)鐘樹路徑的每一個(gè)交換機(jī)處計(jì)算交換機(jī)環(huán)形路徑延遲。這一計(jì)算可以以各種方式執(zhí)行,包括獲取交換機(jī)上的環(huán)形停止節(jié)點(diǎn)之間的延遲時(shí)間測(cè)量,以及使用用于設(shè)計(jì)交換機(jī)中的電路的建模工具來計(jì)算該延遲。一般來說,對(duì)于給定的交換機(jī)配置,這些測(cè)量在將該交換機(jī)安裝在該結(jié)構(gòu)中之前將僅需要被執(zhí)行一次(或者多次并取平均)。某些交換機(jī)可以被配置為在多于一個(gè)的環(huán)形時(shí)鐘頻率下操作,并且因此可能需要在每一個(gè)支持的環(huán)形時(shí)鐘頻率下測(cè)試。在確定環(huán)形路徑延遲計(jì)算(或者針對(duì)交換機(jī)的一組計(jì)算)時(shí),相應(yīng)的環(huán)形路徑和延遲數(shù)據(jù)被發(fā)送至一個(gè)或多個(gè)結(jié)構(gòu)管理器,它將該數(shù)據(jù)存儲(chǔ)在環(huán)形路徑延遲表等中,如塊1512所描述的。
在圖10a和圖10b中,示例性環(huán)形路徑和延遲測(cè)量被示出為針對(duì)交換機(jī)1006(環(huán)形路徑1052和延遲δt2)、交換機(jī)1008(環(huán)形路徑1054和1056以及延遲δt4和δt6)以及交換機(jī)1010(環(huán)形路徑1058和延遲δt8)。將針對(duì)每一個(gè)交換機(jī)中的其他環(huán)形路徑計(jì)算相似的延遲。如前面一樣,此信息被發(fā)送至結(jié)構(gòu)管理器(例如,結(jié)構(gòu)管理器128),它將該環(huán)形路徑延遲數(shù)據(jù)存儲(chǔ)在表格等中。
在塊1514中,計(jì)算從主節(jié)點(diǎn)至每一個(gè)從節(jié)點(diǎn)的給定時(shí)鐘樹路徑的鏈路段延遲和交換機(jī)環(huán)形路徑延遲的總合計(jì),如下所示:
總時(shí)鐘樹路徑延遲=∑δt(鏈路段)+∑δt(交換機(jī)環(huán)形路徑)(1)
該結(jié)構(gòu)管理器然后將該時(shí)鐘樹路徑延遲發(fā)送至每一個(gè)從節(jié)點(diǎn),如塊1516中所示。在一個(gè)實(shí)施例中,此信息在從節(jié)點(diǎn)上被存儲(chǔ)為時(shí)鐘偏差(clockoffset),或者在本地時(shí)間寄存器1030中或者在單獨(dú)的時(shí)鐘偏差寄存器1602中(參見圖16,為了清晰起見沒有在圖10a和圖10b中示出)。
圖16示出了描述在每一個(gè)從節(jié)點(diǎn)執(zhí)行用于同步它的本地時(shí)鐘與主時(shí)鐘的操作的圖1600。如前面一樣,該主時(shí)間高數(shù)據(jù)和主時(shí)間低數(shù)據(jù)在塊1210中被提取并且被寫至主時(shí)間高寄存器1026和主時(shí)間低寄存器1028。確定相應(yīng)的64比特主時(shí)鐘時(shí)間。在一個(gè)方面,該主時(shí)鐘時(shí)間在它在主時(shí)鐘被取樣的時(shí)刻被考慮為絕對(duì)時(shí)間值。然后將對(duì)應(yīng)于從主節(jié)點(diǎn)至從節(jié)點(diǎn)的該總時(shí)鐘樹路徑延遲的時(shí)鐘偏差值加到該主時(shí)鐘時(shí)間以獲得在從節(jié)點(diǎn)處的絕對(duì)時(shí)間。該從節(jié)點(diǎn)的本地時(shí)鐘然后被同步至主時(shí)鐘。給定已知的時(shí)鐘不匹配率,可以使用各種技術(shù)以同步該從時(shí)鐘至該主時(shí)鐘,諸如但不限于在ieee1588中描述的技術(shù)。
圖16示出了描述在每一個(gè)從節(jié)點(diǎn)處執(zhí)行用于同步它的本地時(shí)鐘與主時(shí)鐘的操作的圖1600。如前面一樣,該主時(shí)間高數(shù)據(jù)和主時(shí)間低數(shù)據(jù)在塊1210中被提取并寫至主時(shí)間高寄存器1026和主時(shí)間低寄存器1028。確定相應(yīng)的64比特主時(shí)鐘時(shí)間。在一個(gè)方面,該主時(shí)鐘時(shí)間在它在主時(shí)鐘被取樣的時(shí)刻被考慮為絕對(duì)時(shí)間值。然后將對(duì)應(yīng)于從主節(jié)點(diǎn)至從節(jié)點(diǎn)的該總時(shí)鐘樹路徑延遲的時(shí)鐘偏差值加上該主時(shí)鐘時(shí)間以獲得在從節(jié)點(diǎn)處的絕對(duì)時(shí)間。該從節(jié)點(diǎn)的本地時(shí)鐘然后被同步至該主時(shí)鐘。給定已知的時(shí)鐘不匹配率,可以使用各種技術(shù)以同步該從時(shí)鐘至該主時(shí)鐘,諸如但不限于在ieee1588中描述的技術(shù)。
在某些環(huán)境下,使用另一主時(shí)鐘節(jié)點(diǎn)代替當(dāng)前的主時(shí)鐘節(jié)點(diǎn)可能是必要的。舉例來說,此情況在圖10b中示出,其中主時(shí)鐘節(jié)點(diǎn)1002已經(jīng)故障(或者它不能夠支持主時(shí)鐘操作)并且已經(jīng)被主時(shí)鐘備份節(jié)點(diǎn)1004代替。(目前的)主時(shí)鐘節(jié)點(diǎn)1004的hfi經(jīng)由鏈路段1052連接至交換機(jī)1006的上游時(shí)鐘端口1134a,相應(yīng)的鏈路段延遲描述為δt10。
注意替換主時(shí)鐘節(jié)點(diǎn)不需要像前面的主時(shí)鐘節(jié)點(diǎn)那樣連接至相同的交換機(jī)。而是,主時(shí)鐘節(jié)點(diǎn)可以被連接至多個(gè)結(jié)構(gòu)交換機(jī)。此外,當(dāng)實(shí)現(xiàn)了新的主時(shí)鐘節(jié)點(diǎn)時(shí),從主時(shí)鐘節(jié)點(diǎn)至每一個(gè)從節(jié)點(diǎn)總延遲的時(shí)鐘樹路徑的延遲一般將被重新計(jì)算。
本文公開的實(shí)施例提供了超出現(xiàn)有技術(shù)的顯著改進(jìn)。舉例來說,該結(jié)構(gòu)時(shí)間同步機(jī)制和協(xié)議比僅僅軟件的解決方案提供了更高數(shù)量級(jí)的精確度。用于以太網(wǎng)的該ieee1588方法和用于pcie的ptm方法假定,主時(shí)鐘信息的傳播延遲基于該結(jié)構(gòu)中的擁塞的不同度,在每次發(fā)送該信息時(shí)都不同。這些協(xié)議試圖通過發(fā)送響應(yīng)和測(cè)量環(huán)形旅程延遲來測(cè)量真正的傳播延遲。這需要在交換機(jī)中復(fù)雜的邏輯,或者基于固件的協(xié)議控制器,以在每跳都實(shí)現(xiàn)該計(jì)算。
本文描述的該主時(shí)鐘同步協(xié)議使用交換機(jī)內(nèi)的專用旁路數(shù)據(jù)路徑以提供從主時(shí)間信息的源至作為定義的時(shí)鐘樹的一部分的所有下游交換機(jī)端口的已知的傳播延遲(等待時(shí)間)。此協(xié)議可傳遞更好的精確度因?yàn)閺囊粋€(gè)主時(shí)間樣本至另一個(gè)的傳播延遲的改變更少。
在下面被編號(hào)的條款中提出本文描述的主題的進(jìn)一步方面:
1、一種在環(huán)境中執(zhí)行的方法,所述環(huán)境包括經(jīng)由包括多個(gè)結(jié)構(gòu)交換機(jī)和多個(gè)結(jié)構(gòu)鏈路的結(jié)構(gòu)通信地耦合到多個(gè)從節(jié)點(diǎn)的主時(shí)鐘節(jié)點(diǎn),所述方法包括:
經(jīng)由具有固定延遲的時(shí)鐘樹路徑將由在主時(shí)鐘節(jié)點(diǎn)上操作的主時(shí)鐘生成的主時(shí)鐘時(shí)間數(shù)據(jù)轉(zhuǎn)發(fā)至多個(gè)從節(jié)點(diǎn)中的每一個(gè);
對(duì)于給定的從節(jié)點(diǎn),確定從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲;以及
使用由從節(jié)點(diǎn)接收的主時(shí)鐘時(shí)間數(shù)據(jù)以及確定的從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲來對(duì)從節(jié)點(diǎn)的本地時(shí)鐘和在主時(shí)鐘節(jié)點(diǎn)上操作的主時(shí)鐘進(jìn)行同步,
其中,對(duì)于從節(jié)點(diǎn)的至少一部分,從主時(shí)鐘節(jié)點(diǎn)至那些從節(jié)點(diǎn)的時(shí)鐘樹路徑遍歷多個(gè)結(jié)構(gòu)交換機(jī)。
2、條款1的方法,其中遍歷主時(shí)鐘節(jié)點(diǎn)和從節(jié)點(diǎn)之間的給定轉(zhuǎn)發(fā)路徑的多個(gè)結(jié)構(gòu)交換機(jī)的每一個(gè)包括:
多個(gè)端口,每一個(gè)包括操作地耦合到接收緩沖器的接收端口以及可操作的耦合到發(fā)送緩沖器的發(fā)送端口;
交換電路,其在操作期間,實(shí)現(xiàn)第一端口的接收緩沖器和第二端口的發(fā)送緩沖器之間的可選連接;
上游時(shí)鐘端口的接收端口和下游時(shí)鐘端口的發(fā)送端口之間的至少一個(gè)旁路電路路徑,其能夠?qū)崿F(xiàn)在該接收端口接收的數(shù)據(jù)沿著旁路電路路徑被轉(zhuǎn)發(fā)至該發(fā)送端口。
3、條款2的方法,其中該至少一個(gè)電路路徑包括接收端口和發(fā)送端口的至少一部分可操作地耦合到的環(huán)形總線。
4、條款2或3的方法,其中該至少一個(gè)電路路徑包括接收端口和發(fā)送端口的至少一部分可操作地耦合到的第一環(huán)形總線和第二環(huán)形總線,其中數(shù)據(jù)對(duì)于第一環(huán)形總線以順時(shí)針方向轉(zhuǎn)發(fā)并且數(shù)據(jù)對(duì)于第二環(huán)形總線以逆時(shí)針方向轉(zhuǎn)發(fā),并且其中該數(shù)據(jù)基于哪個(gè)環(huán)形總線導(dǎo)致最少延遲而沿著第一環(huán)形總線和第二環(huán)形總線的其中一個(gè)轉(zhuǎn)發(fā)。
5、在前條款的任一項(xiàng)的方法,其中主時(shí)鐘節(jié)點(diǎn)和從節(jié)點(diǎn)之間的時(shí)鐘樹路徑遍歷多個(gè)結(jié)構(gòu)交換機(jī)以及將該多個(gè)結(jié)構(gòu)交換機(jī)通信地鏈接的多個(gè)鏈路段,并且其中確定時(shí)鐘樹路徑的固定延遲包括:
確定該多個(gè)鏈路段的每一個(gè)的延遲;
確定在該多個(gè)結(jié)構(gòu)交換機(jī)的每一個(gè)內(nèi)的從上游時(shí)鐘端口至下游時(shí)鐘端口的交換機(jī)轉(zhuǎn)發(fā)延遲,其中該時(shí)鐘樹路徑包括耦合到該上游時(shí)鐘端口的第一鏈路段和耦合到該下游時(shí)鐘端口的第二鏈路段;以及
聚合該多個(gè)鏈路段的每一個(gè)的延遲和交換機(jī)轉(zhuǎn)發(fā)延遲。
6、在前條款的任一項(xiàng)的方法,其中使用流控制單元(flit)的流跨越該多個(gè)結(jié)構(gòu)鏈路傳輸數(shù)據(jù),并且其中該主時(shí)鐘時(shí)間數(shù)據(jù)被包含在沿著從主時(shí)鐘節(jié)點(diǎn)至該多個(gè)從節(jié)點(diǎn)的該時(shí)鐘樹路徑轉(zhuǎn)發(fā)的至少一個(gè)flit內(nèi)。
7、條款6的方法,其中該主時(shí)鐘時(shí)間數(shù)據(jù)包含在第一flit和第二flit中,第一flit包括該主時(shí)鐘時(shí)間數(shù)據(jù)的較高比特部分而第二flit包括該主時(shí)鐘時(shí)間數(shù)據(jù)的較低比特部分。
8、條款7的方法,其中第一flit中的主時(shí)鐘時(shí)間數(shù)據(jù)的較高比特部分的一部分與第二flit中的主時(shí)鐘時(shí)間數(shù)據(jù)的較低比特部分是重疊的,進(jìn)一步包括比較重疊部分中的主時(shí)鐘時(shí)間數(shù)據(jù)比特以確定該主時(shí)鐘時(shí)間數(shù)據(jù)的較高比特部分和較低比特部分是一致的。
9、條款6的方法,進(jìn)一步包括:
在結(jié)構(gòu)交換機(jī)的上游時(shí)鐘端口的接收端口處接收包括flit的流的flit流,該接收端口具有相關(guān)聯(lián)的接收緩沖器;
檢測(cè)該flit流中的第一多個(gè)flit包含與結(jié)構(gòu)數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù);
在接收端口的接收緩沖器中存儲(chǔ)第一多個(gè)flit;
檢測(cè)該flit流中的flit對(duì)應(yīng)于包含主時(shí)鐘時(shí)間數(shù)據(jù)的時(shí)間控制flit;
從該時(shí)間控制flit提取主時(shí)鐘時(shí)間數(shù)據(jù);
將該主時(shí)鐘時(shí)間數(shù)據(jù)沿著旁路電路路徑從該接收端口轉(zhuǎn)發(fā)至該結(jié)構(gòu)交換機(jī)中的下游時(shí)鐘端口;
將該主時(shí)鐘時(shí)間數(shù)據(jù)封裝在新的時(shí)間控制flit中,所述新的時(shí)間控制flit是在下游時(shí)鐘端口的發(fā)送端口處生成的;以及
將該新的時(shí)間控制flit注入到從該發(fā)送端口向結(jié)構(gòu)鏈路發(fā)出的flit流中;
10、條款6的方法,進(jìn)一步包括:
在結(jié)構(gòu)交換機(jī)的上游時(shí)鐘端口的接收端口處接收包括flit的流的flit流,該接收端口具有相關(guān)聯(lián)的接收緩沖器;
檢測(cè)該flit流中的flit對(duì)應(yīng)于包含主時(shí)鐘時(shí)間數(shù)據(jù)的時(shí)間控制flit;
將該時(shí)間控制flit從該接收端口轉(zhuǎn)發(fā)至該結(jié)構(gòu)交換機(jī)中的下游時(shí)鐘端口而并不將該時(shí)間控制flit緩存在與該接收端口相關(guān)聯(lián)的接收緩沖器中;以及
將該時(shí)間控制flit注入到從該下游時(shí)鐘端口的發(fā)送端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。
11、條款6的方法,其中,對(duì)于每一個(gè)從節(jié)點(diǎn),包括該主時(shí)鐘時(shí)間數(shù)據(jù)的該至少一個(gè)flit以確保轉(zhuǎn)發(fā)至從節(jié)點(diǎn)的主時(shí)鐘時(shí)間數(shù)據(jù)的數(shù)據(jù)完整性的方式沿著從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑被轉(zhuǎn)發(fā)。
12、在前條款的任一項(xiàng)的方法,進(jìn)一步包括確定主時(shí)鐘和從節(jié)點(diǎn)上的本地時(shí)鐘之間的時(shí)鐘速率不匹配。
13、條款12的方法,其中確定主時(shí)鐘和本地時(shí)鐘之間的時(shí)鐘速率不匹配包括:
在從節(jié)點(diǎn)接收第一主時(shí)鐘時(shí)間數(shù)據(jù);
在從節(jié)點(diǎn)存儲(chǔ)對(duì)應(yīng)于第一主時(shí)鐘時(shí)間數(shù)據(jù)的第一主時(shí)鐘時(shí)間樣本;
結(jié)合接收該第一主時(shí)鐘時(shí)間數(shù)據(jù),在從節(jié)點(diǎn)存儲(chǔ)該本地時(shí)鐘的第一樣本;
在從節(jié)點(diǎn)接收第二主時(shí)鐘時(shí)間數(shù)據(jù);
在從節(jié)點(diǎn)存儲(chǔ)該第二主時(shí)鐘時(shí)間數(shù)據(jù);
結(jié)合接收該第二主時(shí)鐘時(shí)間數(shù)據(jù),在從節(jié)點(diǎn)存儲(chǔ)該本地時(shí)鐘的第二樣本;
從第二主時(shí)鐘時(shí)間數(shù)據(jù)減去第一主時(shí)鐘時(shí)間數(shù)據(jù)以獲得主時(shí)鐘時(shí)間樣本差;
從本地時(shí)鐘的第二樣本減去第一樣本以獲得本地時(shí)鐘時(shí)間樣本差的時(shí)間差;以及
從主時(shí)鐘時(shí)間樣本差減去該本地時(shí)鐘時(shí)間樣本差并將該結(jié)果除以本地時(shí)鐘時(shí)間樣本差以獲得該時(shí)鐘速率不匹配。
14、在前條款的任一項(xiàng)的方法,進(jìn)一步包括:
使用新的主時(shí)鐘節(jié)點(diǎn)來代替主時(shí)鐘節(jié)點(diǎn);以及
經(jīng)由具有固定延遲的時(shí)鐘樹路徑將由在該新的主時(shí)鐘節(jié)點(diǎn)上操作的主時(shí)鐘生成的主時(shí)鐘時(shí)間數(shù)據(jù)轉(zhuǎn)發(fā)至多個(gè)從節(jié)點(diǎn)的每一個(gè);
對(duì)于給定的從節(jié)點(diǎn),確定從該新的主時(shí)鐘節(jié)點(diǎn)至該從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲;以及
使用由該從節(jié)點(diǎn)接收的主時(shí)鐘時(shí)間數(shù)據(jù)和確定的從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲來對(duì)該從節(jié)點(diǎn)的本地時(shí)鐘和在該新的主時(shí)鐘節(jié)點(diǎn)處的主時(shí)鐘進(jìn)行同步。
15、在前條款的任一項(xiàng)的方法,進(jìn)一步包括在結(jié)構(gòu)交換機(jī)中實(shí)現(xiàn)該主時(shí)鐘。
16、一種結(jié)構(gòu)交換機(jī),包括:
多個(gè)端口,每一個(gè)包括可操作地耦合到接收緩沖器的接收端口以及可操作地耦合到發(fā)送緩沖器的發(fā)送端口,至少一個(gè)端口包括上游時(shí)鐘端口并且至少一個(gè)端口包括下游時(shí)鐘端口;
交換電路,其在操作期間,實(shí)現(xiàn)第一端口的接收緩沖器和第二端口的發(fā)送緩沖器之間的可選連接;
上游時(shí)鐘端口的接收端口和下游時(shí)鐘端口的發(fā)送端口之間的至少一個(gè)旁路電路路徑,其以旁路掉接收端口的接收緩沖器以及發(fā)送端口的發(fā)送緩沖器的方式能夠?qū)崿F(xiàn)在上游時(shí)鐘端口的接收端口處接收的主時(shí)鐘時(shí)間數(shù)據(jù)被轉(zhuǎn)發(fā)至下游時(shí)鐘端口的發(fā)送端口。
17、條款16的結(jié)構(gòu)交換機(jī),其中該至少一個(gè)電路路徑包括具有多個(gè)環(huán)形節(jié)點(diǎn)停止的至少一個(gè)環(huán)形總線,所述至少一個(gè)環(huán)形總線包括可操作地耦合到至少一個(gè)上游時(shí)鐘端口的每一個(gè)和至少一個(gè)下游時(shí)鐘端口的每一個(gè)的各自的環(huán)形節(jié)點(diǎn)停止。
18、條款17的結(jié)構(gòu)交換機(jī),其中該結(jié)構(gòu)交換機(jī)被配置為在將數(shù)據(jù)在包括流控制單元(flit)流的flit的流中沿著結(jié)構(gòu)鏈路進(jìn)行傳輸?shù)慕Y(jié)構(gòu)中實(shí)現(xiàn),并且該結(jié)構(gòu)交換機(jī)進(jìn)一步被配置為:
在上游時(shí)鐘端口接收flit流;
在該flit流中檢測(cè)時(shí)間控制flit;
從該時(shí)間控制flit中提取主時(shí)鐘時(shí)間數(shù)據(jù);
將該主時(shí)鐘時(shí)間數(shù)據(jù)沿著第一環(huán)形總線轉(zhuǎn)發(fā);以及
在第一互連上的多個(gè)環(huán)形停止節(jié)點(diǎn)的每一個(gè)處;
將主時(shí)鐘時(shí)間數(shù)據(jù)的副本封裝在新的時(shí)間控制flit中;以及
將該新的時(shí)間控制flit注入從該環(huán)形停止節(jié)點(diǎn)耦合的下游時(shí)鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。
19、條款17或18的結(jié)構(gòu)交換機(jī),其中該結(jié)構(gòu)交換機(jī)被配置為在將數(shù)據(jù)在包括流控制單元(flit)流的flit的流中沿著結(jié)構(gòu)鏈路進(jìn)行傳輸?shù)慕Y(jié)構(gòu)中實(shí)現(xiàn),并且該結(jié)構(gòu)交換機(jī)進(jìn)一步被配置為:
在上游時(shí)鐘端口接收flit流;
在該flit流中檢測(cè)時(shí)間控制flit;
將該時(shí)間控制flit沿著第一環(huán)形總線轉(zhuǎn)發(fā);以及
在第一互連上的多個(gè)環(huán)形停止節(jié)點(diǎn)的每一個(gè)處;
將該時(shí)間控制flit的副本注入從該環(huán)形停止節(jié)點(diǎn)耦合的下游時(shí)鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。
20、條款17-19的任一項(xiàng)的結(jié)構(gòu)交換機(jī),其中該結(jié)構(gòu)交換機(jī)被配置為在將數(shù)據(jù)在包括流控制單元(flit)流的flit的流中沿著結(jié)構(gòu)鏈路進(jìn)行傳輸?shù)慕Y(jié)構(gòu)中實(shí)現(xiàn),其中該主時(shí)鐘時(shí)間數(shù)據(jù)被包含在第一flit和第二flit中,第一flit包括該主時(shí)鐘時(shí)間數(shù)據(jù)的較高比特部分并且第二flit包括該主時(shí)鐘時(shí)間數(shù)據(jù)的較低比特部分。
21、條款20的結(jié)構(gòu)交換機(jī),其中每一個(gè)上游時(shí)鐘端口被配置為檢測(cè)該flit流中的錯(cuò)誤并且該結(jié)構(gòu)交換機(jī)配置為防止將錯(cuò)誤的時(shí)間控制flit從上游時(shí)鐘端口轉(zhuǎn)發(fā)至下游時(shí)鐘端口。
22、條款16-21的任一項(xiàng)的結(jié)構(gòu)交換機(jī),其中該至少一個(gè)電路路徑包括第一環(huán)形總線和第二環(huán)形總線,每一個(gè)具有多個(gè)環(huán)形節(jié)點(diǎn)停止,其包括可操作地耦合到至少一個(gè)上游時(shí)鐘端口的每一個(gè)和至少一個(gè)下游時(shí)鐘端口的每一個(gè)的各自環(huán)形節(jié)點(diǎn)停止,其中數(shù)據(jù)沿著第一環(huán)形總線以順時(shí)針方向被轉(zhuǎn)發(fā)并且數(shù)據(jù)沿著第二環(huán)形總線以逆時(shí)針方向被轉(zhuǎn)發(fā)。
23、條款16-22的任一項(xiàng)的結(jié)構(gòu)交換機(jī),其中該多個(gè)端口的每一個(gè)選擇地可配置為操作為上游時(shí)鐘端口和下游時(shí)鐘端口,每次一個(gè)。
24、條款16-23的任一項(xiàng)的結(jié)構(gòu)交換機(jī),進(jìn)一步包括用于實(shí)現(xiàn)主時(shí)鐘的電路。
25、條款16-24的任一項(xiàng)的結(jié)構(gòu)交換機(jī),進(jìn)一步包括用于實(shí)現(xiàn)本地時(shí)鐘并將該本地時(shí)鐘同步至主時(shí)鐘的電路。
26、條款16-24的任一項(xiàng)的結(jié)構(gòu)交換機(jī),其中該結(jié)構(gòu)交換機(jī)被配置為在將數(shù)據(jù)在包括流控制單元(flit)流的flit的流中沿著結(jié)構(gòu)鏈路進(jìn)行傳輸?shù)慕Y(jié)構(gòu)中實(shí)現(xiàn),該結(jié)構(gòu)交換機(jī)進(jìn)一步包括:
在至少一個(gè)上游時(shí)鐘端口的每一個(gè)處的時(shí)間控制flit提取邏輯,其被配置為從包括主時(shí)鐘時(shí)間數(shù)據(jù)的接收的flit流提取時(shí)間控制flit并沿著在上游時(shí)鐘端口和至少一個(gè)下游時(shí)鐘端口之間的旁路電路路徑轉(zhuǎn)發(fā)包含在提取的時(shí)間控制flit中的主時(shí)間數(shù)據(jù)。
27、條款26的結(jié)構(gòu)交換機(jī),進(jìn)一步包括:
在至少一個(gè)下游時(shí)鐘端口的每一個(gè)處的時(shí)間控制flit注入邏輯,其被配置為接收沿著該旁路電路路徑從上游時(shí)鐘端口轉(zhuǎn)發(fā)的主時(shí)間數(shù)據(jù),生成新的時(shí)間控制flit,并將該新的時(shí)間控制flit注入至從該下游時(shí)鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。
28、條款16-24的任一項(xiàng)的結(jié)構(gòu)交換機(jī),其中該結(jié)構(gòu)交換機(jī)配置為在將數(shù)據(jù)在包括流控制單元(flit)流的flit的流中沿著結(jié)構(gòu)鏈路進(jìn)行傳輸?shù)慕Y(jié)構(gòu)中實(shí)現(xiàn),該結(jié)構(gòu)交換機(jī)進(jìn)一步包括:
位于至少一個(gè)上游時(shí)鐘端口的每一個(gè)處的時(shí)間控制flit提取邏輯,其被配置為從包括主時(shí)鐘時(shí)間數(shù)據(jù)的接收的flit流提取時(shí)間控制flit并沿著該上游時(shí)鐘端口和至少一個(gè)下游時(shí)鐘端口之間的旁路電路路徑轉(zhuǎn)發(fā)提取的時(shí)間控制flit。
29、條款28的結(jié)構(gòu)交換機(jī),進(jìn)一步包括:
位于至少一個(gè)下游時(shí)鐘端口的每一個(gè)處的時(shí)間控制flit注入邏輯,其被配置為接收沿著該旁路電路路徑從上游時(shí)鐘端口轉(zhuǎn)發(fā)的時(shí)間控制flit,并將該時(shí)間控制flit注入至從該下游時(shí)鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。
30、一種系統(tǒng),包括:
具有主時(shí)鐘并包括主機(jī)結(jié)構(gòu)接口(hfi)的主時(shí)鐘節(jié)點(diǎn);
多個(gè)從節(jié)點(diǎn),每一個(gè)包括本地時(shí)鐘并包括hfi;
多個(gè)結(jié)構(gòu)交換機(jī),每一個(gè)包括,
多個(gè)端口,每一個(gè)包括可操作地耦合到接收緩沖器的接收端口和可操作地耦合到發(fā)送緩沖器的發(fā)送端口,至少一個(gè)端口包括上游時(shí)鐘端口并且至少一個(gè)端口包括下游時(shí)鐘端口;
交換電路,其在操作期間,實(shí)現(xiàn)不同端口的接收緩沖器和發(fā)送緩沖器對(duì)之間的可選連接;
在該至少一個(gè)上游時(shí)鐘端口和該至少一個(gè)下游時(shí)鐘端口之間的至少一個(gè)旁路電路路徑;以及
該多個(gè)結(jié)構(gòu)交換機(jī)、該主時(shí)鐘節(jié)點(diǎn)以及該多個(gè)從節(jié)點(diǎn)上的多個(gè)結(jié)構(gòu)鏈路互連端口,
其中,在該系統(tǒng)的操作期間,該主時(shí)鐘節(jié)點(diǎn)生成經(jīng)由具有固定延遲的時(shí)鐘樹路徑而被轉(zhuǎn)發(fā)至從節(jié)點(diǎn)的每一個(gè)的主時(shí)鐘時(shí)間數(shù)據(jù),其中時(shí)鐘樹路徑遍歷至少一個(gè)結(jié)構(gòu)交換機(jī)和多個(gè)結(jié)構(gòu)鏈路每一個(gè)的旁路電路路徑。
31、條款30的系統(tǒng),其中每一個(gè)結(jié)構(gòu)交換機(jī)被配置為以旁路掉接收緩沖器、發(fā)送緩沖器以及交換電路的方式沿著至少一個(gè)旁路電路路徑轉(zhuǎn)發(fā)主時(shí)鐘時(shí)間數(shù)據(jù)。
32、條款31的系統(tǒng),其中該系統(tǒng)執(zhí)行用于促進(jìn)從節(jié)點(diǎn)上的本地時(shí)鐘與主時(shí)鐘的同步的操作,所述操作包括:
經(jīng)由具有固定延遲的各自時(shí)鐘樹路徑將由主時(shí)鐘生成的主時(shí)鐘時(shí)間數(shù)據(jù)轉(zhuǎn)發(fā)至該多個(gè)從節(jié)點(diǎn)的每一個(gè);
對(duì)于每一個(gè)從節(jié)點(diǎn),確定從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲;以及
使用由從節(jié)點(diǎn)接收的主時(shí)鐘時(shí)間數(shù)據(jù)和確定的從主時(shí)鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時(shí)鐘樹路徑的固定延遲來對(duì)該從節(jié)點(diǎn)的本地時(shí)鐘和在主時(shí)鐘節(jié)點(diǎn)上操作的主時(shí)鐘進(jìn)行同步,
33、條款32的系統(tǒng),其中該系統(tǒng)進(jìn)一步被配置為:
確定每一個(gè)從節(jié)點(diǎn)上的本地時(shí)鐘相對(duì)于主時(shí)鐘的時(shí)鐘速率不匹配;以及
使用針對(duì)每一個(gè)本地時(shí)鐘確定的時(shí)鐘速率不匹配來維持主時(shí)鐘和每一個(gè)本地時(shí)鐘之間的同步。
34、條款30-33的任一項(xiàng)的系統(tǒng),其中該系統(tǒng)進(jìn)一步被配置為確保轉(zhuǎn)發(fā)至每一個(gè)從節(jié)點(diǎn)的主時(shí)鐘時(shí)間數(shù)據(jù)的數(shù)據(jù)完整性。
雖然參考特定實(shí)施方式已經(jīng)描述了某些實(shí)施例,但是根據(jù)某些實(shí)施例其他實(shí)施方式也是可能的。此外,在附圖中示出的和/或在本文描述的元素或其他特征的布置和/或順序無需以示出和描述的特定方式來進(jìn)行布置。根據(jù)某些實(shí)施例很多其他布置是可能的。
在圖中示出的每一個(gè)系統(tǒng)中,在某些情況下的元素可能每一個(gè)具有相同的附圖標(biāo)記或不同的附圖標(biāo)記以暗示所表示的該元素可能不同和/或相似。然而,元素可以足夠靈活以具有不同的實(shí)施方式并與本文示出或描述的部分或全部系統(tǒng)協(xié)作。圖中示出的各種元素可能相同或不同。哪個(gè)元素被稱為第一元素以及哪個(gè)元素被稱為第二元素是任意的。
在說明書和權(quán)利要求書中,可以使用術(shù)語“耦合”和“連接”,以及它們的衍生詞。應(yīng)當(dāng)理解,這些術(shù)語并不意欲作為彼此的同義詞。而是,在特定實(shí)施例中,“連接”可以用于指示兩個(gè)或更多個(gè)元素彼此直接物理或電接觸?!榜詈稀笨梢员硎緝蓚€(gè)或更多個(gè)元素直接物理或電接觸。然而“耦合”也可以表示兩個(gè)或更多多個(gè)元素彼此并不直接接觸,但仍然彼此協(xié)作或交互。
實(shí)施例是本發(fā)明的實(shí)施方式或示例。說明書中對(duì)于“實(shí)施例”、“一個(gè)實(shí)施例”、“某些實(shí)施例”或“其他實(shí)施例”的引用表示與實(shí)施例相關(guān)描述的特定特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少某些實(shí)施例中,而并不必須在所有實(shí)施例中?!皩?shí)施例”、“一個(gè)實(shí)施例”或者“某些實(shí)施例”的各種出現(xiàn)并不必須全都指示相同的實(shí)施例。
并非本文描述和示出的所有組件、特征、結(jié)構(gòu)、特性等都需要包含在特定的一個(gè)或多個(gè)實(shí)施例中。舉例來說,如果說明書聲明了“可”、“可能”、“能”、“能夠”包括組件、特征、結(jié)構(gòu)或特性,那么并不需要包括該特定組件、特征、結(jié)構(gòu)或特性。如果說明書或權(quán)利要求涉及“一”或“一個(gè)”元素,那并不表示僅有一個(gè)該元素。如果說明書或權(quán)利要求涉及“額外的”元素,那并不排除存在多于一個(gè)的該額外元素。
在本文中并且一般地算法被認(rèn)為是引起期望結(jié)果的行為或操作的自相一致的序列。這些包括物理量的物理操縱。通常,但不是必須的,這些量采用能夠被存儲(chǔ)、傳輸、組合、比較以及其他操縱的電或磁信號(hào)的形式。它已經(jīng)被證明是方便的,主要由于習(xí)慣用法的原因,將這些信號(hào)稱為比特、值、元素、符號(hào)、字符、術(shù)語、數(shù)字等。然而,應(yīng)當(dāng)理解,全部這些和相似的術(shù)語將關(guān)聯(lián)于適當(dāng)?shù)奈锢砹坎H僅是應(yīng)用至這些量的便利標(biāo)簽。
如上文所討論的,可以通過相應(yīng)的軟件和/或固件組件和應(yīng)用(例如,由嵌入式處理器等執(zhí)行的軟件和/或固件)促進(jìn)本文各實(shí)施例的各種方面。因此,本發(fā)明的各實(shí)施例可以被用作或支持軟件程序、軟件模塊、固件和/或基于某種形式的處理器、處理核心或嵌入式邏輯執(zhí)行的分布式軟件、運(yùn)行在處理器或核心或否則基于或在計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)內(nèi)實(shí)施或?qū)崿F(xiàn)的虛擬機(jī)。計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)包括以由機(jī)器(例如,計(jì)算機(jī))可讀的形式存儲(chǔ)或傳輸信息的任意機(jī)制。例如,計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)包括以由計(jì)算機(jī)或計(jì)算機(jī)器(例如,計(jì)算設(shè)備,電子系統(tǒng)等)可訪問的方式提供(即,存儲(chǔ)和/或發(fā)送)信息的任意機(jī)制,諸如可記錄/不可記錄的介質(zhì)(例如,只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、磁盤存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、閃存設(shè)備等)。內(nèi)容可以是可直接執(zhí)行的(“對(duì)象”或“可執(zhí)行”形式)、源代碼或不同的代碼(“三角(delta)”或“插入(patch)”碼)。計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)還可以包括可從中下載內(nèi)容的存儲(chǔ)器或數(shù)據(jù)庫(kù)。該計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)還可以包括在銷售或交付時(shí)將內(nèi)容存儲(chǔ)于其上的設(shè)備或制品。因此,交付具有存儲(chǔ)的內(nèi)容的設(shè)備,或者提供通過通信介質(zhì)下載的內(nèi)容可以被理解為提供一種包括具有本文描述的這種內(nèi)容的計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)的制造物。
本文描述的上面稱為過程、服務(wù)器或工具的各種組件可以為用于執(zhí)行描述的各功能的單元。由本文描述的各種組件執(zhí)行的操作和功能可以經(jīng)由嵌入的硬件等,或者硬件或軟件的任意組合由運(yùn)行在處理元件上的軟件實(shí)施。這種組件可以被實(shí)現(xiàn)為軟件模塊、硬件模塊、專用硬件(例如,專用硬件、asic、dsp等)、嵌入式控制器、硬接線電路、硬件邏輯等??梢越?jīng)由包括計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)的制造物來提供軟件內(nèi)容(例如,數(shù)據(jù)、指令、配置信息等),所述計(jì)算機(jī)可讀或機(jī)器可讀非暫時(shí)性存儲(chǔ)介質(zhì)提供表示可被執(zhí)行的指令的內(nèi)容。該內(nèi)容可以引起計(jì)算機(jī)執(zhí)行本文描述的各種功能/操作。
如上文所使用的,加入了術(shù)語“至少一個(gè)”的項(xiàng)目的列表可以表示所列出的項(xiàng)目的任意組合。舉例來說,術(shù)語“a、b或c的至少一個(gè)”可表示a;b;c;a和b;a和c;b和c;或者a,b和c。
上文對(duì)本發(fā)明的所示各實(shí)施例的描述,包括在摘要中所描述的,并不意欲窮舉本發(fā)明或者將本發(fā)明限制為所公開的精確形式。雖然以說明為目的在本文描述了本發(fā)明的各特定實(shí)施例和示例,但在本發(fā)明的范圍內(nèi)可能有各種等價(jià)的修改,正如相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到的。
可以根據(jù)上文詳述的描述對(duì)本發(fā)明作出這些修改。在下述權(quán)利要求中使用的術(shù)語不應(yīng)當(dāng)被解釋為將本發(fā)明限制為在說明書和附圖中公開的特定實(shí)施例。而是,本發(fā)明的范圍將全部由下述權(quán)利要求確定,下述權(quán)利要求將依據(jù)權(quán)利范圍解讀的創(chuàng)建原則進(jìn)行解釋。