欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

百億億次級結(jié)構(gòu)時間同步的制作方法

文檔序號:11589575閱讀:370來源:國知局
百億億次級結(jié)構(gòu)時間同步的制造方法與工藝



背景技術(shù):

近些年,大幅度地提高了對高性能計算(hpc)的使用和興趣。歷史上,hpc通常與所謂的“超級計算機(jī)”相關(guān)聯(lián)。超級計算機(jī)主要由西摩克雷(seymourcray)在控制數(shù)據(jù)公司(cdc)、克雷研究公司(crayresearch)以及后來具有克雷的名字或由其首字母組成的圖案的公司在20世紀(jì)60年代提出,最初被研制,并且持續(xù)數(shù)十年。雖然20世紀(jì)70年代超級計算機(jī)僅使用少量處理器,然而在20世紀(jì)90年代開始出現(xiàn)具有數(shù)千個處理器,并且最近已經(jīng)實(shí)現(xiàn)了具有幾十萬“現(xiàn)成的(off-the-shelf)”處理器的大規(guī)模并行超級計算機(jī)。

存在很各種hpc架構(gòu),面向?qū)崿F(xiàn)以及研究兩者,以及具有各種級別的規(guī)模和性能。然而,共同的線程是大量計算單元(諸如,處理器和/或處理器核心)的互連從而以并行的方式協(xié)作地執(zhí)行任務(wù)。在最近的片上系統(tǒng)(soc)設(shè)計和提案中,使用二維(2d)陣列、圓環(huán)、環(huán)或其他配置在單個soc上實(shí)現(xiàn)數(shù)十個處理器核心等等。此外,研究者已經(jīng)提出了3dsoc,其中在3d陣列中對數(shù)百個或者甚至數(shù)千個處理器核心進(jìn)行互連。獨(dú)立的多核處理器和soc也可能密集地位于服務(wù)板上,其繼而經(jīng)由背板等通信地互連。另一通用方法為對服務(wù)器機(jī)架(例如,刀片服務(wù)器和模塊)中的典型地被配置2d陣列中作為計算節(jié)點(diǎn)的集群的計算單元進(jìn)行互連。

存在需要在各種服務(wù)器和/或計算節(jié)點(diǎn)的集合之間進(jìn)行精確同步的各種類型的處理任務(wù)。舉例來說,當(dāng)部署在集群中時,計算節(jié)點(diǎn)典型地在它們自身之間發(fā)送消息,并且接收消息的順序是非常重要的。為此,存在可能用于確保消息以適當(dāng)?shù)捻樞蛱幚淼母鞣N排序模型,包括fifo(先入先出)、全排序以及因果排序。這些排序方案的每一個都需要額外的開銷,這導(dǎo)致了性能降低。舉例來說,fifo排序可能典型地需要使用fifo路由器,全排序需要通過中央實(shí)體發(fā)送消息,并且因果排序是典型地使用向量時鐘實(shí)現(xiàn)的。

理想地,最有效的排序方案會簡單地包括使用絕對時間為每一個消息標(biāo)記時間戳。這會支持絕對排序,它對于很多hpc和其他過程來說是優(yōu)選的排序方案。然而,這固有地難以實(shí)現(xiàn),因為不存在如在hpc環(huán)境中進(jìn)行共享的絕對時間的此類事物。更確切地,時間并不需要太絕對,而是在每一個服務(wù)器上運(yùn)行的時鐘是同步的。

一種用于同步時鐘的方案由ieee1588標(biāo)準(zhǔn)定義。ieee1588提供了一種用于對經(jīng)由能夠多播的網(wǎng)絡(luò)(例如,以太網(wǎng))連接的時鐘進(jìn)行同步的標(biāo)準(zhǔn)協(xié)議。ieee1588被設(shè)計為在需要很少網(wǎng)絡(luò)帶寬開銷、處理功率以及管理設(shè)置的異構(gòu)網(wǎng)絡(luò)的時鐘當(dāng)中提供容錯同步。ieee1588通過定義稱為精確時間協(xié)議或者ptp的協(xié)議來進(jìn)行提供。

時鐘的異構(gòu)網(wǎng)絡(luò)是包括不同特性的時鐘的網(wǎng)絡(luò),所述不同特性的時鐘諸如時鐘的時間源的來源,以及時鐘頻率的穩(wěn)定性。ptp協(xié)議提供了一種將所有參與時鐘同步至該網(wǎng)絡(luò)中的最高質(zhì)量時鐘的容錯方法。ieee1588定義了時鐘特性的標(biāo)準(zhǔn)集組合針對每一個定義了數(shù)值范圍。通過運(yùn)行分布式算法,稱為最佳主時鐘算法(bmc),該網(wǎng)絡(luò)中的每一個時鐘識別出最高質(zhì)量的時鐘;其是具有最好特性集合的時鐘。

最高排位的時鐘被稱為“主(grandmaster)”時鐘,并使所有其他的“從(slave)”時鐘同步。如果“主”時鐘被從網(wǎng)絡(luò)中移除,或者如果它的特性以它不再是“最佳”時鐘的方式改變,那么bmc算法為參與時鐘提供了用于自動地確定當(dāng)前“最佳”時鐘的方式,當(dāng)前“最佳”時鐘成為新的主時鐘。最佳主時鐘算法提供了確定該時鐘用作整個網(wǎng)絡(luò)的時間源的容錯并且管理自由的方式。

從時鐘通過使用雙向多播通信同步至1588主時鐘。主時鐘周期性地發(fā)出稱為“同步”包的數(shù)據(jù)包,其包括當(dāng)該數(shù)據(jù)包離開主時鐘時的時間的時間戳。主時鐘還可以選擇性地,發(fā)出包括該“同步”包的時間戳的“跟蹤”包。使用單獨(dú)的“跟蹤”包允許主時鐘精確地在其中數(shù)據(jù)包的離開時間事先無法確切得知的網(wǎng)絡(luò)上對“同步”包標(biāo)記時間戳。舉例來說,以太網(wǎng)通信的沖突檢測和隨機(jī)退避機(jī)制防止知曉該數(shù)據(jù)包的準(zhǔn)確發(fā)送時間直到在沒有檢測到?jīng)_突的情況下在數(shù)據(jù)包被完全發(fā)送,此時不可能改變數(shù)據(jù)包的內(nèi)容。

雖然ieee1588和ptp為某些應(yīng)用提供了充足水平的時鐘同步(近似數(shù)十微秒),但仍不足精確到滿足很多hpc環(huán)境的需要。因此,實(shí)現(xiàn)一種比ieee1588好上數(shù)個數(shù)量級的維持時鐘同步的機(jī)制將是有利的。

附圖說明

通過參考下面的詳細(xì)描述并結(jié)合附圖,前述的各方面以及本發(fā)明隨之而來的很多優(yōu)點(diǎn)將變得更易于理解同時變得更好地理解,其中,除非另行指明,在附圖中不同視圖的類似的附圖標(biāo)記表示類似的部件。

圖1是示出了根據(jù)一個實(shí)施例的包括結(jié)構(gòu)架構(gòu)的各種組件和互連的系統(tǒng)的高層次視圖的示意圖;

圖2是描述根據(jù)一個實(shí)施例的通過結(jié)構(gòu)鏈路傳輸數(shù)據(jù)的各架構(gòu)層的示意圖;

圖3是示出了組成為一組的多個flit的示意圖;

圖4是示出了根據(jù)一個實(shí)施例的結(jié)構(gòu)數(shù)據(jù)包的結(jié)構(gòu)的示意圖;

圖5是示出了根據(jù)一個實(shí)施例的標(biāo)準(zhǔn)檢測ltp的數(shù)據(jù)結(jié)構(gòu)的圖;

圖6是示出了根據(jù)一個實(shí)施例的14位crcltp的數(shù)據(jù)結(jié)構(gòu)的圖;

圖7是示出了根據(jù)一個實(shí)施例的增強(qiáng)的檢測ltp的數(shù)據(jù)結(jié)構(gòu)的圖;

圖8是示出了根據(jù)一個實(shí)施例的標(biāo)準(zhǔn)檢測空ltp的數(shù)據(jù)結(jié)構(gòu)的圖;

圖9是示出了根據(jù)一個實(shí)施例的在使用4個通道的兩個鏈路端口之間的雙向數(shù)據(jù)傳輸?shù)氖纠氖疽鈭D;

圖10a是示出了根據(jù)一個實(shí)施例的其中實(shí)現(xiàn)了時間同步的結(jié)構(gòu)中的示例時鐘樹的示意圖;

圖10b是示出了在其中備份主時鐘節(jié)點(diǎn)代替原始主時鐘節(jié)點(diǎn)的對圖10a進(jìn)行展開的示意圖;

圖11a是被配置為使用接近交換機(jī)邊緣的環(huán)形母線對在上游時鐘端口和下游時鐘端口之間傳輸時鐘數(shù)據(jù)的交換機(jī)的示意圖;

圖11b是示出了根據(jù)一個實(shí)施例的時鐘端口的進(jìn)一步細(xì)節(jié)的示意圖;

圖12是示出了根據(jù)一個實(shí)施例的主時鐘高spcflit的格式的圖;

圖13是示出了根據(jù)一個實(shí)施例的主時鐘低spcflit的格式的圖;

圖14是示出了根據(jù)一個實(shí)施例的用于確定主節(jié)點(diǎn)時鐘和從節(jié)點(diǎn)上的本地時鐘之間的時鐘漂移的操作和邏輯的流程圖;

圖15是示出了根據(jù)一個實(shí)施例的用于計算時鐘樹路徑延遲的操作和邏輯的流程圖;以及

圖16是示出了用于在主時鐘和本地時鐘之間執(zhí)行時鐘同步的操作并進(jìn)一步示出了使用經(jīng)由圖14的流程圖確定的時鐘漂移的對同步的時鐘進(jìn)行更新的流程圖。

具體實(shí)施方式

用于實(shí)現(xiàn)百億億次級結(jié)構(gòu)的時間同步的方法和裝置的實(shí)施例在本文中進(jìn)行描述。在下面的描述中,提出了大量特定細(xì)節(jié)以提供對本發(fā)明的各實(shí)施例的徹底理解。然而,本領(lǐng)域技術(shù)人員將認(rèn)識到,本發(fā)明可在沒有特定細(xì)節(jié)中的一個或多個的情況下實(shí)施,或者與其他方法、組件、材料等一起實(shí)施。在其他實(shí)例中,公知的結(jié)構(gòu)、材料或操作并沒有具體示出或者描述以避免模糊本發(fā)明的各方面。

貫穿本說明書的對“一個實(shí)施例”或“實(shí)施例”的引用是指結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特性被包含在本發(fā)明的至少一個實(shí)施例中。因此,貫穿本說明書在多處出現(xiàn)的短語“在一個實(shí)施例中”或“在實(shí)施例中”并不必須所有都指相同的實(shí)施例。此外,在一個或多個實(shí)施例中,該特定特征、結(jié)構(gòu)或特性可能以任何適當(dāng)?shù)姆绞竭M(jìn)行組合。

為了清晰起見,在本文中,附圖中的獨(dú)立組件還可能通過附圖中它們的標(biāo)簽進(jìn)行引用,而不是通過特定的附圖標(biāo)記。此外,指示特定類型的組件(與特定組件相反)的附圖標(biāo)記可能被示出為后面跟著表示“典型的”的“(typ)”的附圖標(biāo)記。將理解,這些組件的配置將為典型的可能存在但為了簡潔和清晰沒有在附圖中示出的相似組件,或否則沒有使用獨(dú)立的附圖標(biāo)記進(jìn)行標(biāo)示的相似組件。相反地,“(typ)”并不解釋為表示該組件、元素等典型地用于它的公開的功能、實(shí)現(xiàn)、目的等。

依據(jù)本文描述的各實(shí)施例的各方面,提供了一種促進(jìn)百億億次級結(jié)構(gòu)的非常精確的時間同步的機(jī)制。在示例性實(shí)施例中,該結(jié)構(gòu)支持鏈路層(第2層)固有的可靠性而無需在更高層的端對端確認(rèn),諸如由以太網(wǎng)的tcp所使用的。為了更好地理解如何實(shí)現(xiàn)該機(jī)制,首先討論百億億次級結(jié)構(gòu),然后為時間同步機(jī)制的詳細(xì)描述。

依據(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ī),或者簡單地通過關(guān)聯(lián),諸如歸因于它們運(yùn)行的消息傳遞應(yīng)用而以某種協(xié)調(diào)的方式起作用的服務(wù)器的組或集群,正如通常為云計算的情況。該互連的組件被稱為節(jié)點(diǎn)。該架構(gòu)還可能被實(shí)施以將處理器節(jié)點(diǎn)與soc、多芯片模塊等互連。一種類型的節(jié)點(diǎn),稱為主機(jī),是其上執(zhí)行用戶模式的軟件的類型。在一個實(shí)施例中,主機(jī)包括單個超高速緩存一致的存儲器域,不考慮該一致的域中的核心或cpu的數(shù)量,并可以包括各種本地i/o和存儲子系統(tǒng)。主機(jī)運(yùn)行的軟件的類型可以定義更特定的功能,諸如用戶應(yīng)用節(jié)點(diǎn),或者存儲器或文件服務(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ū)動器。hfi還可以包括用于執(zhí)行或加速傳輸協(xié)議的上層協(xié)議和/或卸載專用邏輯。hfi還包括響應(yīng)來自于網(wǎng)絡(luò)管理組件的消息的邏輯。每一個主機(jī)經(jīng)由hfi連接至該架構(gòu)結(jié)構(gòu)。

鏈路是將hfi連接至交換機(jī)、連接交換機(jī)至其他交換機(jī)或者連接交換機(jī)至網(wǎng)關(guān)的全雙工、點(diǎn)對點(diǎn)的互連。鏈路在電路板跡線、銅線電纜或者光纜中可能具有不同的物理配置。在一個實(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ī)產(chǎn)品可能使用專用(更高帶寬)phy,并且對于那些配置,與架構(gòu)產(chǎn)品的互操作性將基于與具有不同phy的端口的交換。

圖1顯示出根據(jù)一個實(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組件包括多個hfi104(示出了一個),每一個hfi104由各自的分立的單個節(jié)點(diǎn)平臺106托管,由虛擬平臺110托管的hfi108、由多節(jié)點(diǎn)平臺116的各自節(jié)點(diǎn)1141和114n托管的hfi1121和112n、以及集成的單個節(jié)點(diǎn)平臺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)和管理,并且每一個交換機(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)中,在物理層中信號被組合在一起進(jìn)入端口,它用作、可被控制并被報告為單一體。端口包括一個或多個物理通道,其中每一個通道由以物理傳輸介質(zhì)實(shí)現(xiàn)的兩個差分線對或光纖組成,每一個用于通信的一個方向。包括端口的通道的數(shù)量是實(shí)現(xiàn)相關(guān)的;然而,該鏈路傳輸子層的架構(gòu)支持端口寬度的有限集合。特定端口寬度被支持為基礎(chǔ)端口寬度,以允許線纜和芯片設(shè)計的普通目標(biāo)。該端口寬度包括1x、4x、8x、12x、以及16x,其中“x”標(biāo)識物理通道的數(shù)量。在某些情況下,諸如有缺陷通道的檢測,鏈路可以以減小的通道寬度運(yùn)行。

該鏈路傳輸子層用作物理層和鏈路結(jié)構(gòu)子層之間的接口。鏈路結(jié)構(gòu)數(shù)據(jù)包(在鏈路結(jié)構(gòu)子層處)被分段為64比特的流控制數(shù)字(flit,flit,或者flit,流控制數(shù)字的近似縮寫)。圖3示出了組成為束(bundle)302的多個flit300的示例。每一個flit300包括含有8字節(jié)數(shù)據(jù)的64個數(shù)據(jù)比特。

鏈路傳輸子層將多個通道形成為能夠以可靠的方式跨越該鏈路傳輸flit以及它們的相關(guān)聯(lián)的信用返回信息的組。這使用稱為鏈路傳輸數(shù)據(jù)包(ltp)的1056比特的束完成,鏈路傳輸數(shù)據(jù)包與鏈路結(jié)構(gòu)子層相關(guān)聯(lián)。圖3還描述了ltp的數(shù)據(jù)部分,它包括16個flit的數(shù)據(jù)。此外,ltp包括flit類型的信息、crc數(shù)據(jù)以及可選數(shù)據(jù)(未在圖3中示出)。在多幅附圖(例如,圖5-圖8)中示出了并在下文更進(jìn)一步詳細(xì)描述ltp的示例。

結(jié)構(gòu)數(shù)據(jù)包由64比特的flit和用于每一個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類型比特被提供給每一個flit以區(qū)分體flit與其他flit類型。在一個實(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ú)使用的七個控制flit(lt控制flit)以空(null)ltp發(fā)送。剩余的控制flit被劃分為兩個組。結(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時該鏈路結(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,則它將插入空閑因為原始flit通過該鏈路發(fā)送。原始flit是通過該鏈路首次發(fā)送的flit,與從包括重新發(fā)送的或重傳的flit的重傳緩沖器發(fā)送的那些相反。

鏈路傳輸數(shù)據(jù)包持有16個flit以通過該鏈路發(fā)送??煽縧tp被保持在重傳緩沖器中一段足夠長的時間以保證重新發(fā)送請求的缺少指示它已經(jīng)被該鏈路對等(peer)成功接收。重傳緩沖器位置指針針對發(fā)送器(nxttxltp)和接收器(nxtrxltp)處的每一個ltp被維持,但并不作為ltp的一部分被交換。當(dāng)由接收器檢測到傳輸錯誤時,它發(fā)送retryreqltp至包含nxtrxltp重傳緩沖器位置指針的發(fā)送器。響應(yīng)于接收到retryreqltp,在重傳緩沖器中的ltp被以原始順序重新發(fā)送,開始為retryreqltp(對等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)子層的控制信息。

在一個實(shí)施例中,存在三個ltp格式,包括標(biāo)準(zhǔn)檢測ltp、14比特crcltp,以及增強(qiáng)檢測ltp。標(biāo)準(zhǔn)檢測ltp的實(shí)施例在圖5中示出。除了16個flit每一個標(biāo)準(zhǔn)檢測ltp具有16比特的crc,它覆蓋了該ltp內(nèi)容。為了說明的目的,圖5中的flit被示出為65個比特,其中比特64是flit類型的比特。

14比特crcltp的實(shí)施例在圖6中示出。除了該16個flit,每一個14比特crcltp具有兩比特信用邊帶信道以及覆蓋ltp內(nèi)容的14比特crc。在ltp內(nèi)或者以特定lf命令flit或者以ltp信用邊帶信道來發(fā)送流控制信用。

除了標(biāo)準(zhǔn)檢測ltp,該鏈路還可以支持持有十六個flit并具有四個十二比特crc字段的可選的增強(qiáng)檢測ltp。圖7示出了增強(qiáng)的檢測ltp的實(shí)施例的格式。四個crc字段的每一個覆蓋所有十六個flit。如果四個crc中的任意一個是壞的,那么該ltp被重新發(fā)送。對于該四個12比特crc來說,存在兩個crc計算選項。第一個(48b重疊)使用四次重疊計算,其中每次計算覆蓋ltp內(nèi)的所有比特。第二個(每一個通道12b-16bcrc)使用四次非重疊計算,其中每次計算被限制為在四個通道的其中一個上流動的所有比特。

如上文討論的,由鏈路傳輸層使用的lt控制flit在空ltp中發(fā)送。空ltp并不消耗重傳緩沖器中的空間并且并不被重新發(fā)送。它們使用上文表2中總結(jié)的鏈路傳輸lt控制flit的其中一個進(jìn)行區(qū)分。大多數(shù)空ltp類型以順序?qū)Φ姆绞桨l(fā)送以保證在無錯的情況下兩個中的其中至少一個由該鏈路對等接收或者當(dāng)它們兩者都具有錯誤時將自動生成retrainretryreq。在圖8中示出了標(biāo)準(zhǔn)檢測空ltp的示例。

標(biāo)準(zhǔn)檢測空ltp包含單個區(qū)分控制flit,975個保留比特以及標(biāo)準(zhǔn)檢測十六個比特的crc字段。增強(qiáng)檢測空ltp包含單個區(qū)分控制flit,975個保留比特和增強(qiáng)的檢測四個12比特crc字段。當(dāng)使用14比特crc時,在空ltp中忽略這兩個邊帶比特。

如上文所討論的,該架構(gòu)使用三層數(shù)據(jù)單元粒度以支持?jǐn)?shù)據(jù)傳輸:結(jié)構(gòu)數(shù)據(jù)包、flit和鏈路傳輸數(shù)據(jù)包。在鏈路傳輸層的發(fā)送單元是ltp。正如所描繪的,每一個ltp名義上為16flit長,并且如上文所述ltp的真實(shí)大小可能取決于使用的特定crc方案而改變,并且參考具有16flit長度的ltp的使用對應(yīng)于包含在排除crc比特和該16比特65的該ltp中的64比特flit的數(shù)據(jù)的數(shù)量。

在圖9中示出了包括四個物理通道的鏈路的一個實(shí)施例的物理層(還稱為“phy”)結(jié)構(gòu)。該phy定義了鏈路互連的物理結(jié)構(gòu)并且負(fù)責(zé)處理兩個鏈路對等之間的特定鏈路上的信號的操作細(xì)節(jié),例如由組件a和b所描繪的。物理層管理信號線上的數(shù)據(jù)傳輸,包括在跨越該并行通道發(fā)送和接收信息的每一個比特中涉及的電平、時間方面以及邏輯事務(wù)。如圖9所示,每一個互連鏈路的物理連接由四個差分信號對900組成,包括每一個方向上的通道0-3。每一個端口支持由兩個單向鏈路組成的鏈路對以完成兩個對等組件之間的連接。這支持雙向同時業(yè)務(wù)。

具有鏈路端口的組件使用被定義為鏈路對等的單向點(diǎn)對點(diǎn)鏈路對來進(jìn)行通信,如圖9中所示。每一個端口包括發(fā)送(tx)鏈路接口和接收(rx)鏈路接口。對于示出的示例,組件a具有連接至組件brx端口904的tx端口902。同時,組件b具有連接至組件brx端口908的tx端口904。一個單向鏈路從組件a發(fā)送至組件b,并且另一鏈路從組件b發(fā)送至組件a。該“發(fā)送”鏈路和“接收”鏈路相對于哪個組件端口在發(fā)送以及哪個在接收數(shù)據(jù)而定義。在圖9示出的配置中,組件a發(fā)送鏈路將數(shù)據(jù)從組件atx端口902發(fā)送至組件brx端口904。此相同的組件a發(fā)送鏈路是端口b接收鏈路。

如前面所述,用于在鏈路端口間傳輸數(shù)據(jù)的基礎(chǔ)單元是ltp。每一個ltp對于通過由發(fā)送端口以及位于鏈路對端的接收端口定義的特定鏈路在一個方向上的傳輸是特定的。ltp具有單個鏈路傳輸?shù)膲勖?,并且ltp通過從可用vl緩沖器拉取flit并組裝它們,每次16個,成為各自的ltp而動態(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ā)送從簡單ulp確認(rèn)至封裝的以太網(wǎng)巨型幀的一個范圍的消息提供了有效支持。結(jié)構(gòu)數(shù)據(jù)包表示上游至hfi或從hfi下游的載荷的邏輯單元。稱為結(jié)構(gòu)數(shù)據(jù)包是因為它們具有在結(jié)構(gòu)中的端至端的壽命。更特別地,結(jié)構(gòu)數(shù)據(jù)包的壽命是它在正如由fp的源和目的地地址所定義的結(jié)構(gòu)端點(diǎn)之間傳輸fp內(nèi)容所需的時間。fp的每一個傳輸路徑將包括跨越至少一個鏈路的傳輸,并可以包括當(dāng)該傳輸路徑穿過一個或多個交換機(jī)時跨越多個鏈路的傳輸。

結(jié)構(gòu)時間同步

依據(jù)本文描述的各實(shí)施例的進(jìn)一步方面,提供了一種用于以獲得其數(shù)量級比目前使用ieee1588獲得的更精確的極高精確等級的方式同步跨越結(jié)構(gòu)的時鐘的機(jī)制。該技術(shù)是固有可擴(kuò)展的,使得10000或100000個節(jié)點(diǎn)的時鐘能夠與單個主時鐘同步。此外,為了更進(jìn)一步的擴(kuò)展性可以實(shí)現(xiàn)多個主時鐘。

存在實(shí)施該時間同步機(jī)制的多個關(guān)鍵方面。首先是跨越鏈路的基于flit的信息傳輸以及在flit流中混合控制flit和數(shù)據(jù)包flit的能力。主時鐘被用于經(jīng)由使用特殊控制flit(spc)而不是作為結(jié)構(gòu)數(shù)據(jù)包來將主時間傳播至耦合到該結(jié)構(gòu)的多個終端節(jié)點(diǎn)(稱為從節(jié)點(diǎn))。這表示當(dāng)該主時間信息到達(dá)交換機(jī)的發(fā)送端口時,它可以在下一8字節(jié)flit邊界處被立即注入該鏈路。無需等待直到當(dāng)前數(shù)據(jù)包已經(jīng)完成發(fā)送。這使通過該交換機(jī)的傳播延遲中的抖動最小化。鏈路級在出現(xiàn)錯誤時重試,如果該時間控制flit被重傳則會引入顯著的抖動。為了避免這一情況,在一個實(shí)施例中,如果該時間控制flit由重傳事件被延遲,則被簡單地丟棄,并且該協(xié)議對于丟失的時間更新是能適應(yīng)的。

在一個實(shí)施例中,主時間是64比特的值,而控制flit僅可承載48比特的載荷。該主時間因此被承載在兩個獨(dú)立的flit中,其中一個承載低40比特并且一個承載較高的(高)32比特,其中8個比特是重疊的。通過承載時間值的重疊部分,端點(diǎn)可確定獨(dú)立到達(dá)的并且其中任一個都可能在途中被丟棄的這兩個部分彼此間是否一致。這還可允許時間值的較高部分的被發(fā)送的頻率遠(yuǎn)小于時間值的較低部分。

不像傳統(tǒng)的交換機(jī),通過交換機(jī)對時間值的傳播使用獨(dú)立于用于傳播數(shù)據(jù)包的交叉開關(guān)和緩沖器的數(shù)據(jù)路徑。在一個實(shí)例中,該數(shù)據(jù)路徑是圍繞交換機(jī)芯片外圍的多個比特寬度的環(huán)形總線。作為交換機(jī)的時間源,或者作為時鐘樹中的交換機(jī)的上游端口的端口,當(dāng)時間控制flit到達(dá)該端口并將時間值注入該環(huán)形總線時將時間值從該時間控制flit中移除。是時鐘樹中的下游端口的端口當(dāng)時間值經(jīng)過時從該環(huán)形總線中拷貝時間值并且然后在flit界限處將相應(yīng)的時間控制flit注入該鏈路。當(dāng)該時間值返回至它的源端口時,它被從該環(huán)中移除。這提供了從上游端口至每一個下游端口的具有固定、已知延遲的傳播路徑。

在該時鐘樹中的每一個目的節(jié)點(diǎn),當(dāng)時間值到達(dá)時,該時間值被從控制flit中捕獲,并存儲在主時間高(mastertimehigh)和主時間低(mastertimelow)寄存器中。當(dāng)承載時間值的低位比特的flit到達(dá)時,該節(jié)點(diǎn)還捕獲在本地時間寄存器中的本地時鐘的值。在該節(jié)點(diǎn)上執(zhí)行的軟件然后可以讀取這些寄存器。在一個實(shí)施例中,硬件確保在寄存器中的值在讀取多個寄存器的序列期間不發(fā)生改變,或者通過使用陰影復(fù)制,或者通過禁止讀取序列期間的更新。該整個64比特的主時間可根據(jù)該兩個主時間寄存器進(jìn)行重建,并且可通過來自主時鐘的已知的傳播延遲(它可被單獨(dú)計算)進(jìn)行調(diào)整。這為軟件提供了在捕獲本地時間時的真實(shí)的主時間值,提供了跨越該結(jié)構(gòu)的絕對時間同步。

圖10a和圖10b示出了根據(jù)一個實(shí)施例的在其中實(shí)現(xiàn)時間同步的示例性的時鐘樹1000。時鐘樹1000中的主要組件包括主時鐘節(jié)點(diǎn)1002、備份主時鐘節(jié)點(diǎn)1004、交換機(jī)1006、1008以及1010,以及從節(jié)點(diǎn)1012和1014。還描述了一個或多個結(jié)構(gòu)管理器128,注意示出了兩個從而圖示的結(jié)構(gòu)管理器和其他組件之間的通信鏈路并不交叉。一般來說,時鐘樹可以包括一個或多個備份主時鐘節(jié)點(diǎn)。

主節(jié)點(diǎn)和從節(jié)點(diǎn)的每一個包括各自的時鐘和hfi1016。主時鐘節(jié)點(diǎn)1002包括主時鐘1018,備份主時鐘節(jié)點(diǎn)1004包括主時鐘1020,從節(jié)點(diǎn)1012包括本地時鐘1022,并且從節(jié)點(diǎn)1014包括本地時鐘1024。從節(jié)點(diǎn)1012和1014的每一個進(jìn)一步包括主時鐘高(mastertimehigh)寄存器1026,主時鐘低(mastertimelow)寄存器1028,以及本地時鐘寄存器1030。

交換機(jī)1006、1008和1010的每一個被相似地配置并且包括多個結(jié)構(gòu)端口1032,它們的部分或全部可能被配置為時鐘端口1034。時鐘端口與結(jié)構(gòu)端口相似,具有額外的功能以促進(jìn)主時鐘數(shù)據(jù)的傳播,如下文所描述的。為了說明的目的,僅僅四個時鐘端口1034(以灰色顯示以與其他結(jié)構(gòu)端口區(qū)分);然而,將理解任意數(shù)量的結(jié)構(gòu)端口1032可以被配置為時鐘端口。在本文的附圖中該上游時鐘端口以灰色描述,而下游時鐘端口以黑色描述。

在圖11和圖11b中示出了交換機(jī)1006、1008以及1010的進(jìn)一步細(xì)節(jié)。每一個交換機(jī)包括環(huán)形總線1036和1038(在本文還稱為“環(huán)”)的對。如所示出的,數(shù)據(jù)通過環(huán)1036以順時針方向轉(zhuǎn)發(fā),并且通過環(huán)1038以逆時針方向轉(zhuǎn)發(fā)。每一個環(huán)1038都包括多個環(huán)停止節(jié)點(diǎn)1100,在每一個時鐘端口1034提供了一對該節(jié)點(diǎn)。

每一個端口1032和時鐘端口1034都包括rx端口1102和tx端口1104,它們每一個分別耦合到rx緩沖器1106和tx緩沖器1108。對于給定的端口,每一個rx緩沖器1106可選擇性地通過用于交叉開關(guān)互連1110的邏輯和電路耦合到另一個端口的每一個tx緩沖器。為了方便和簡潔,rx緩沖器1106、tx緩沖器1108以及交叉開關(guān)互連1110的組合在圖10a和圖10b中被描述為交換機(jī)交叉開關(guān)和緩沖器1040。此外,每一個交換機(jī)包括轉(zhuǎn)發(fā)和路由表1111,它使得該交換機(jī)能夠執(zhí)行它的普通結(jié)構(gòu)數(shù)據(jù)包轉(zhuǎn)發(fā)和路由。

在一個實(shí)施例中,所有端口是可以被選擇性地配置為支持上游和下游時鐘端口功能的時鐘端口。在一個實(shí)施例中,時鐘端口1034包括時間控制flit提取邏輯1112和時間控制flit注入邏輯1114,它們每一個都可以在每一個時鐘端口由結(jié)構(gòu)管理器選擇性地使能以形成時鐘樹。時間控制flit提取邏輯1112被實(shí)施在上游時鐘端口的rx端口1102并被配置為從flit流1116識別和提取時間控制flit。該時間控制flit包括主時間高(mastertimehigh)spcflit1118和主時間低(mastertimelow)spcflit1120。如圖12所示,主時間高spcflit1118包括65比特的flit,其中最低四個字節(jié)(字節(jié)0-3)被用于存儲主時間高時鐘值的較高的32比特。如圖13所示,主時間低spcflit1120包括65比特的flit,其中該最低五個字節(jié)(字節(jié)0-4)用于存儲主時間低時鐘值的較低的40比特。因此,如果時間控制flit彼此間一致,則主時間高spcflit1118的字節(jié)0以及主時間低spcflit1120的字節(jié)4應(yīng)當(dāng)包含相同的值。

在一個實(shí)施例中,時間控制flit提取邏輯1112提取主時間低spcflit的40比特(主時間低數(shù)據(jù))或者主時間高spcflit的32比特(主時間高數(shù)據(jù))并將數(shù)據(jù)(分別)封裝在數(shù)據(jù)包中并在環(huán)1036和1038上發(fā)送該數(shù)據(jù)。在另一實(shí)施例中,主時間低spcflit或者主時間高spcflit自身被封裝在該數(shù)據(jù)包中并在環(huán)1036和1038上發(fā)送。在每一個環(huán)-停止周期中,數(shù)據(jù)前進(jìn)至下一環(huán)停止節(jié)點(diǎn),最終到達(dá)下游時鐘端口環(huán)停止節(jié)點(diǎn),在該點(diǎn),時間控制flit注入邏輯1114能夠從該環(huán)拷貝數(shù)據(jù),對40比特的主時間低數(shù)據(jù)或32比特的主時間高數(shù)據(jù)(如果可應(yīng)用的話)進(jìn)行解封裝,生成新的主時間低或主時間高spcflit,并將該新的flit注入當(dāng)前正被從與該時間控制flit注入邏輯相關(guān)的tx端口發(fā)出的flit流1118中。在封裝整個主時間低spcflit和主時間高spcflit的實(shí)施例中,flit被提取并注入該flit流中而無需生成新的主時間低spcflit和主時間高spcflit。如上文所討論的,這些時間控制flit可以在該flit流的下一8字節(jié)邊界處被立即注入。

該結(jié)構(gòu)交換機(jī)還可以實(shí)現(xiàn)本地時鐘1116或主時鐘1118。在一個實(shí)施例中,結(jié)構(gòu)交換機(jī)可以被配置為執(zhí)行主時鐘節(jié)點(diǎn)的功能,并且位于時鐘樹的根部。在這種情況下,該結(jié)構(gòu)交換機(jī)并不實(shí)現(xiàn)上游端口。當(dāng)該結(jié)構(gòu)交換機(jī)在包括單獨(dú)的主時鐘節(jié)點(diǎn)的結(jié)構(gòu)中操作時,該交換機(jī)的本地時鐘1116可以以與從節(jié)點(diǎn)相似的方式被同步,正如上文所描述的。

圖11b示出了一對時鐘端口1134a和1134b的進(jìn)一步細(xì)節(jié),它們被結(jié)構(gòu)管理器分別配置為上游時鐘端口和下游時鐘端口。每一個接收端口1102包括rx輸入fifo緩沖器1120,其中來自flit流的flit被緩存。每一個ltp中的crc值被用于驗證ltp中的所有flit是否都被無錯地接收。如果不是,則使用一種使得該ltp被從發(fā)送方重新發(fā)送的可靠機(jī)制。在ltp已經(jīng)被驗證為已經(jīng)被成功接收之后,它被從rx輸入fifo緩沖器1120推出進(jìn)入接收緩沖器1106,接收緩沖器1106進(jìn)一步被標(biāo)記為“(inq)”,指示該接收緩沖器用作輸入隊列。

此外,一旦ltp已經(jīng)被成功接收,則時間控制flit提取邏輯1112提取該主時間低spcflit和主時間高spcflit并將它們沿著旁路電路路徑轉(zhuǎn)發(fā),如轉(zhuǎn)發(fā)路徑1122所描述的。每一個接收端口1102被連接至環(huán)形總線1036和1038兩者。同時,該結(jié)構(gòu)管理器選擇性地配置游時鐘端口的每一個tx端口1104這樣被耦合到該環(huán)形總線,從而引起當(dāng)數(shù)據(jù)從上游時鐘端口至下游時鐘路徑轉(zhuǎn)發(fā)時的最小延遲。在示出的示例中,tx端口1104b被選擇性地耦合到環(huán)形總線1038。如將觀察到的,一對環(huán)形總線的使用減少了上游rx和下游tx端口對的某些之間的旁路電路長度(與僅使用單個環(huán)相比)。在接收到主時間低和主時間高數(shù)據(jù)(或者flit,如果flit被沿著該旁路電路路徑轉(zhuǎn)發(fā))時,相應(yīng)的flit被插入tx端口1104上的tx輸出緩沖器1124,并且接下來在該結(jié)構(gòu)上向外發(fā)送至該時鐘樹的下一跳。

存在將對當(dāng)時間控制flit經(jīng)過交換機(jī)時更新該時間控制flit中的時間值的有用的實(shí)施方式。舉例來說,如果在通過該交換機(jī)傳播時間值中存在未預(yù)期的延遲,則一種實(shí)施方式能夠?qū)崿F(xiàn)該時間值增加該未預(yù)期延遲的量而不是傳遞未改變的時間值。舉例來說,如果發(fā)送端口在重試序列的中間,則該時間值能夠被更新并且然后在該重試完成后被發(fā)送。

進(jìn)一步參考圖14的流程圖1400,依據(jù)一個實(shí)施例的本地時鐘相對于時鐘樹1000的主時鐘1018的時鐘速率不匹配的確定被實(shí)施為如下。如外層循環(huán)所描述的,以循環(huán)的方式執(zhí)行下述操作,諸如定期的。在塊1402中,hfi1016或者主時鐘節(jié)點(diǎn)1002(未示出)中的某些其他組件讀取主時鐘1018并生成主時間高spcflit1118和主時間低spcflit1120并且將其注入至從hfi的發(fā)送(tx)端口輸出的flit流1116。如上文所述,該主時間高spcflit包含該主時間高數(shù)據(jù),它包括64比特時鐘數(shù)據(jù)的較高32比特并且該主時間低spcflit包含該64比特主時鐘數(shù)據(jù)的較低40比特(主時間低數(shù)據(jù))。同樣如上文所討論的,重疊的使用使得低時間高spcflit和主時間高spcflit兩者的相同的8個比特進(jìn)行比較以驗證該時鐘數(shù)據(jù)是一致的。塊1202的結(jié)果是將該主時間高spcflit1118和主時間低spcflit1120注入flit流1116,flit流1116被發(fā)送到交換機(jī)1106上的上游時鐘端口1134a的接收端口,如圖10a所示。該主時間高spcflit和主時間低spcflit可以被注入該flit流,或者作為有序?qū)蛘咦⑷朐揻lit流的無序槽中。如上文所描述的,該主時間高數(shù)據(jù)的發(fā)送并不需要每次傳輸時鐘數(shù)據(jù),因為此較高32比特值在短時間內(nèi)將不會改變。

在主時鐘節(jié)點(diǎn)和在下述路徑中的最后交換機(jī)之前的給定從節(jié)點(diǎn)之間的整個時鐘樹路徑中的每一個交換機(jī)處執(zhí)行塊1404和1406的操作,在這種情況下執(zhí)行塊1408而不是塊1406的操作。為了說明的目的,交換機(jī)的數(shù)量被描述為整數(shù)n,其中n可以為一個或多個交換機(jī)。如果僅有一個交換機(jī),則塊1406的操作被跳過并且并不循環(huán)回下一交換機(jī)。

在塊1404中,在由配置為上游時鐘接收端口(例如,圖10a和10b中的時鐘端口1134a的rx端口)的時鐘端口1134a的接收(rx)端口接收時,時間控制flit(主時間高spcflit和主時間低spcflit)被識別,并且相應(yīng)的32比特主時間高數(shù)據(jù)和40比特主時間低數(shù)據(jù)被提取。該主時間高數(shù)據(jù)和主時間低數(shù)據(jù)(如果可應(yīng)用的話)然后被繞著每一個環(huán)1036和1038發(fā)送,接下來前進(jìn)至每一個環(huán)停止節(jié)點(diǎn)直到完成每一個環(huán)的遍歷。可選地,該主時間高spcflit和主時間低spcflit它們自身被繞著環(huán)1036和1038發(fā)送。如塊1406所示,對于沿著具有作為下一跳的交換機(jī)的時鐘樹路徑的每一個交換機(jī),主時間高spcflit和主時間低spcflit(如果可應(yīng)用的話)在被用于將該主時鐘數(shù)據(jù)發(fā)送至該時鐘樹中的下一交換機(jī)的下游時鐘端口的tx端口處被注入該flit流。相似的操作在塊1208中針對最后的交換機(jī)沿著該時鐘樹路徑至目的從節(jié)點(diǎn)而不是下一交換機(jī)執(zhí)行。在圖10a和圖10b中描述的相應(yīng)下游時鐘端口包括交換機(jī)1006的下游時鐘端口1134b,交換機(jī)1008的下游時鐘端口1134d和1134e,以及交換機(jī)1010的下游時鐘端口1134g。

繼續(xù)在塊1410處,在從節(jié)點(diǎn)的hfi接收到主時間高spcflit和主時間低spcflit時,該主時間高數(shù)據(jù)和主時間低數(shù)據(jù)被提取并分別寫入主時間高寄存器1026和主時間低寄存器1028。在一個實(shí)施例中,這些寄存器的每一個可以存儲多個樣本主時間高數(shù)據(jù)和主時間低數(shù)據(jù)。可選地,每一個寄存器存儲單個樣本,當(dāng)所述單個樣本被存儲在該寄存器中時由軟件或固件讀取。結(jié)合至主時間低寄存器1028的寫入,如由從節(jié)點(diǎn)上的邏輯所檢測的,從節(jié)點(diǎn)處的本地時鐘的第一樣本(例如,從節(jié)點(diǎn)1012的本地時鐘1022和從節(jié)點(diǎn)1014的本地時鐘1024)被獲取并且相應(yīng)的本地時間樣本被存儲在本地時間寄存器1030中。結(jié)合至主時間低寄存器1028的后續(xù)寫入(它將在下一循環(huán)中發(fā)生),獲取本地時鐘的第二樣本,并且第一本地時鐘樣本和第二本地時鐘樣本之間的差被計算為δtslave1212。同時,從主時間高寄存器1026和主時間低寄存器1028中讀取主時間高值和主時間低值的各自樣本以生成連續(xù)的主時鐘時間樣本以計算δtmaster1214。可選地,從第一主時間低值減去第二主時間低值來計算δtmaster1214。

然后針對樣本之間的給定時間段計算δtmaster和δtslave之間的差并除以δtslave以確定主時鐘和本地(從)時鐘之間的時鐘速率不匹配1216。舉例來說,在一個實(shí)施例中,流程圖1200的外層循環(huán)被定期重復(fù)為接近每秒10次,并且因此該時鐘速率不匹配將被測算為十分之一秒(或者使用周期性的任意時間段)。在一個實(shí)施例中,本地時間寄存器1030被配置為存儲多個本地時鐘樣本,并且主時鐘數(shù)據(jù)的連續(xù)接收之間的差別可被精確計算(低至本地時鐘的粒度等級,例如,近似幾納秒)。

除了確定每一個從節(jié)點(diǎn)的時鐘相對于主節(jié)點(diǎn)的時鐘的時鐘速率不匹配之外,該從節(jié)點(diǎn)時鐘還與該主時鐘同步。用于實(shí)現(xiàn)此過程的一個實(shí)施例的各操作在圖15的流程圖1500中示出。如循環(huán)開始塊1502以及相應(yīng)的外層循環(huán)所示,針對主時鐘樹中的每一個從節(jié)點(diǎn)執(zhí)行流程圖1500的各操作。

如在開始循環(huán)塊1504和塊1506中所描述的,計算時鐘樹路徑中的每一個結(jié)構(gòu)鏈路段的鏈路段延遲。在一個實(shí)施例中,通過測量通過給定鏈路段完成往返路徑的持續(xù)時間并且然后減去由在該鏈路的兩端的處理消耗的時間部分來完成。在一個實(shí)施例中,在起始結(jié)構(gòu)端口(例如,交換機(jī)上的下游時鐘端口)處計算主時鐘樹中的每一個行程(1eg)分段的延遲,并且獲得的計算結(jié)果被發(fā)送至一個或多個結(jié)構(gòu)管理器,它將該信息存儲在鏈路段延遲表等中,如在塊1512中所描述的。從主時鐘節(jié)點(diǎn)1002到從節(jié)點(diǎn)1012的主時鐘樹路徑的鏈路段的示例集合包括鏈路段1042、1044和1046,相應(yīng)的鏈路段延遲分別被描述為δt1、δt3以及δt5。從主時鐘節(jié)點(diǎn)1002至從節(jié)點(diǎn)1014的主時鐘樹路徑包括鏈路段1042、1044、1048以及1050,相應(yīng)的鏈路段延遲分別被描述為δt1、δt3、δt7以及δt9。

接下來,如開始循環(huán)塊1508和塊1510所描述的,在沿著主時鐘樹路徑的每一個交換機(jī)處計算交換機(jī)環(huán)形路徑延遲。這一計算可以以各種方式執(zhí)行,包括獲取交換機(jī)上的環(huán)形停止節(jié)點(diǎn)之間的延遲時間測量,以及使用用于設(shè)計交換機(jī)中的電路的建模工具來計算該延遲。一般來說,對于給定的交換機(jī)配置,這些測量在將該交換機(jī)安裝在該結(jié)構(gòu)中之前將僅需要被執(zhí)行一次(或者多次并取平均)。某些交換機(jī)可以被配置為在多于一個的環(huán)形時鐘頻率下操作,并且因此可能需要在每一個支持的環(huán)形時鐘頻率下測試。在確定環(huán)形路徑延遲計算(或者針對交換機(jī)的一組計算)時,相應(yīng)的環(huán)形路徑和延遲數(shù)據(jù)被發(fā)送至一個或多個結(jié)構(gòu)管理器,它將該數(shù)據(jù)存儲在環(huán)形路徑延遲表等中,如塊1512所描述的。

在圖10a和圖10b中,示例性環(huán)形路徑和延遲測量被示出為針對交換機(jī)1006(環(huán)形路徑1052和延遲δt2)、交換機(jī)1008(環(huán)形路徑1054和1056以及延遲δt4和δt6)以及交換機(jī)1010(環(huán)形路徑1058和延遲δt8)。將針對每一個交換機(jī)中的其他環(huán)形路徑計算相似的延遲。如前面一樣,此信息被發(fā)送至結(jié)構(gòu)管理器(例如,結(jié)構(gòu)管理器128),它將該環(huán)形路徑延遲數(shù)據(jù)存儲在表格等中。

在塊1514中,計算從主節(jié)點(diǎn)至每一個從節(jié)點(diǎn)的給定時鐘樹路徑的鏈路段延遲和交換機(jī)環(huán)形路徑延遲的總合計,如下所示:

總時鐘樹路徑延遲=∑δt(鏈路段)+∑δt(交換機(jī)環(huán)形路徑)(1)

該結(jié)構(gòu)管理器然后將該時鐘樹路徑延遲發(fā)送至每一個從節(jié)點(diǎn),如塊1516中所示。在一個實(shí)施例中,此信息在從節(jié)點(diǎn)上被存儲為時鐘偏差(clockoffset),或者在本地時間寄存器1030中或者在單獨(dú)的時鐘偏差寄存器1602中(參見圖16,為了清晰起見沒有在圖10a和圖10b中示出)。

圖16示出了描述在每一個從節(jié)點(diǎn)執(zhí)行用于同步它的本地時鐘與主時鐘的操作的圖1600。如前面一樣,該主時間高數(shù)據(jù)和主時間低數(shù)據(jù)在塊1210中被提取并且被寫至主時間高寄存器1026和主時間低寄存器1028。確定相應(yīng)的64比特主時鐘時間。在一個方面,該主時鐘時間在它在主時鐘被取樣的時刻被考慮為絕對時間值。然后將對應(yīng)于從主節(jié)點(diǎn)至從節(jié)點(diǎn)的該總時鐘樹路徑延遲的時鐘偏差值加到該主時鐘時間以獲得在從節(jié)點(diǎn)處的絕對時間。該從節(jié)點(diǎn)的本地時鐘然后被同步至主時鐘。給定已知的時鐘不匹配率,可以使用各種技術(shù)以同步該從時鐘至該主時鐘,諸如但不限于在ieee1588中描述的技術(shù)。

圖16示出了描述在每一個從節(jié)點(diǎn)處執(zhí)行用于同步它的本地時鐘與主時鐘的操作的圖1600。如前面一樣,該主時間高數(shù)據(jù)和主時間低數(shù)據(jù)在塊1210中被提取并寫至主時間高寄存器1026和主時間低寄存器1028。確定相應(yīng)的64比特主時鐘時間。在一個方面,該主時鐘時間在它在主時鐘被取樣的時刻被考慮為絕對時間值。然后將對應(yīng)于從主節(jié)點(diǎn)至從節(jié)點(diǎn)的該總時鐘樹路徑延遲的時鐘偏差值加上該主時鐘時間以獲得在從節(jié)點(diǎn)處的絕對時間。該從節(jié)點(diǎn)的本地時鐘然后被同步至該主時鐘。給定已知的時鐘不匹配率,可以使用各種技術(shù)以同步該從時鐘至該主時鐘,諸如但不限于在ieee1588中描述的技術(shù)。

在某些環(huán)境下,使用另一主時鐘節(jié)點(diǎn)代替當(dāng)前的主時鐘節(jié)點(diǎn)可能是必要的。舉例來說,此情況在圖10b中示出,其中主時鐘節(jié)點(diǎn)1002已經(jīng)故障(或者它不能夠支持主時鐘操作)并且已經(jīng)被主時鐘備份節(jié)點(diǎn)1004代替。(目前的)主時鐘節(jié)點(diǎn)1004的hfi經(jīng)由鏈路段1052連接至交換機(jī)1006的上游時鐘端口1134a,相應(yīng)的鏈路段延遲描述為δt10。

注意替換主時鐘節(jié)點(diǎn)不需要像前面的主時鐘節(jié)點(diǎn)那樣連接至相同的交換機(jī)。而是,主時鐘節(jié)點(diǎn)可以被連接至多個結(jié)構(gòu)交換機(jī)。此外,當(dāng)實(shí)現(xiàn)了新的主時鐘節(jié)點(diǎn)時,從主時鐘節(jié)點(diǎn)至每一個從節(jié)點(diǎn)總延遲的時鐘樹路徑的延遲一般將被重新計算。

本文公開的實(shí)施例提供了超出現(xiàn)有技術(shù)的顯著改進(jìn)。舉例來說,該結(jié)構(gòu)時間同步機(jī)制和協(xié)議比僅僅軟件的解決方案提供了更高數(shù)量級的精確度。用于以太網(wǎng)的該ieee1588方法和用于pcie的ptm方法假定,主時鐘信息的傳播延遲基于該結(jié)構(gòu)中的擁塞的不同度,在每次發(fā)送該信息時都不同。這些協(xié)議試圖通過發(fā)送響應(yīng)和測量環(huán)形旅程延遲來測量真正的傳播延遲。這需要在交換機(jī)中復(fù)雜的邏輯,或者基于固件的協(xié)議控制器,以在每跳都實(shí)現(xiàn)該計算。

本文描述的該主時鐘同步協(xié)議使用交換機(jī)內(nèi)的專用旁路數(shù)據(jù)路徑以提供從主時間信息的源至作為定義的時鐘樹的一部分的所有下游交換機(jī)端口的已知的傳播延遲(等待時間)。此協(xié)議可傳遞更好的精確度因為從一個主時間樣本至另一個的傳播延遲的改變更少。

在下面被編號的條款中提出本文描述的主題的進(jìn)一步方面:

1、一種在環(huán)境中執(zhí)行的方法,所述環(huán)境包括經(jīng)由包括多個結(jié)構(gòu)交換機(jī)和多個結(jié)構(gòu)鏈路的結(jié)構(gòu)通信地耦合到多個從節(jié)點(diǎn)的主時鐘節(jié)點(diǎn),所述方法包括:

經(jīng)由具有固定延遲的時鐘樹路徑將由在主時鐘節(jié)點(diǎn)上操作的主時鐘生成的主時鐘時間數(shù)據(jù)轉(zhuǎn)發(fā)至多個從節(jié)點(diǎn)中的每一個;

對于給定的從節(jié)點(diǎn),確定從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑的固定延遲;以及

使用由從節(jié)點(diǎn)接收的主時鐘時間數(shù)據(jù)以及確定的從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑的固定延遲來對從節(jié)點(diǎn)的本地時鐘和在主時鐘節(jié)點(diǎn)上操作的主時鐘進(jìn)行同步,

其中,對于從節(jié)點(diǎn)的至少一部分,從主時鐘節(jié)點(diǎn)至那些從節(jié)點(diǎn)的時鐘樹路徑遍歷多個結(jié)構(gòu)交換機(jī)。

2、條款1的方法,其中遍歷主時鐘節(jié)點(diǎn)和從節(jié)點(diǎn)之間的給定轉(zhuǎn)發(fā)路徑的多個結(jié)構(gòu)交換機(jī)的每一個包括:

多個端口,每一個包括操作地耦合到接收緩沖器的接收端口以及可操作的耦合到發(fā)送緩沖器的發(fā)送端口;

交換電路,其在操作期間,實(shí)現(xiàn)第一端口的接收緩沖器和第二端口的發(fā)送緩沖器之間的可選連接;

上游時鐘端口的接收端口和下游時鐘端口的發(fā)送端口之間的至少一個旁路電路路徑,其能夠?qū)崿F(xiàn)在該接收端口接收的數(shù)據(jù)沿著旁路電路路徑被轉(zhuǎn)發(fā)至該發(fā)送端口。

3、條款2的方法,其中該至少一個電路路徑包括接收端口和發(fā)送端口的至少一部分可操作地耦合到的環(huán)形總線。

4、條款2或3的方法,其中該至少一個電路路徑包括接收端口和發(fā)送端口的至少一部分可操作地耦合到的第一環(huán)形總線和第二環(huán)形總線,其中數(shù)據(jù)對于第一環(huán)形總線以順時針方向轉(zhuǎn)發(fā)并且數(shù)據(jù)對于第二環(huán)形總線以逆時針方向轉(zhuǎn)發(fā),并且其中該數(shù)據(jù)基于哪個環(huán)形總線導(dǎo)致最少延遲而沿著第一環(huán)形總線和第二環(huán)形總線的其中一個轉(zhuǎn)發(fā)。

5、在前條款的任一項的方法,其中主時鐘節(jié)點(diǎn)和從節(jié)點(diǎn)之間的時鐘樹路徑遍歷多個結(jié)構(gòu)交換機(jī)以及將該多個結(jié)構(gòu)交換機(jī)通信地鏈接的多個鏈路段,并且其中確定時鐘樹路徑的固定延遲包括:

確定該多個鏈路段的每一個的延遲;

確定在該多個結(jié)構(gòu)交換機(jī)的每一個內(nèi)的從上游時鐘端口至下游時鐘端口的交換機(jī)轉(zhuǎn)發(fā)延遲,其中該時鐘樹路徑包括耦合到該上游時鐘端口的第一鏈路段和耦合到該下游時鐘端口的第二鏈路段;以及

聚合該多個鏈路段的每一個的延遲和交換機(jī)轉(zhuǎn)發(fā)延遲。

6、在前條款的任一項的方法,其中使用流控制單元(flit)的流跨越該多個結(jié)構(gòu)鏈路傳輸數(shù)據(jù),并且其中該主時鐘時間數(shù)據(jù)被包含在沿著從主時鐘節(jié)點(diǎn)至該多個從節(jié)點(diǎn)的該時鐘樹路徑轉(zhuǎn)發(fā)的至少一個flit內(nèi)。

7、條款6的方法,其中該主時鐘時間數(shù)據(jù)包含在第一flit和第二flit中,第一flit包括該主時鐘時間數(shù)據(jù)的較高比特部分而第二flit包括該主時鐘時間數(shù)據(jù)的較低比特部分。

8、條款7的方法,其中第一flit中的主時鐘時間數(shù)據(jù)的較高比特部分的一部分與第二flit中的主時鐘時間數(shù)據(jù)的較低比特部分是重疊的,進(jìn)一步包括比較重疊部分中的主時鐘時間數(shù)據(jù)比特以確定該主時鐘時間數(shù)據(jù)的較高比特部分和較低比特部分是一致的。

9、條款6的方法,進(jìn)一步包括:

在結(jié)構(gòu)交換機(jī)的上游時鐘端口的接收端口處接收包括flit的流的flit流,該接收端口具有相關(guān)聯(lián)的接收緩沖器;

檢測該flit流中的第一多個flit包含與結(jié)構(gòu)數(shù)據(jù)包對應(yīng)的數(shù)據(jù);

在接收端口的接收緩沖器中存儲第一多個flit;

檢測該flit流中的flit對應(yīng)于包含主時鐘時間數(shù)據(jù)的時間控制flit;

從該時間控制flit提取主時鐘時間數(shù)據(jù);

將該主時鐘時間數(shù)據(jù)沿著旁路電路路徑從該接收端口轉(zhuǎn)發(fā)至該結(jié)構(gòu)交換機(jī)中的下游時鐘端口;

將該主時鐘時間數(shù)據(jù)封裝在新的時間控制flit中,所述新的時間控制flit是在下游時鐘端口的發(fā)送端口處生成的;以及

將該新的時間控制flit注入到從該發(fā)送端口向結(jié)構(gòu)鏈路發(fā)出的flit流中;

10、條款6的方法,進(jìn)一步包括:

在結(jié)構(gòu)交換機(jī)的上游時鐘端口的接收端口處接收包括flit的流的flit流,該接收端口具有相關(guān)聯(lián)的接收緩沖器;

檢測該flit流中的flit對應(yīng)于包含主時鐘時間數(shù)據(jù)的時間控制flit;

將該時間控制flit從該接收端口轉(zhuǎn)發(fā)至該結(jié)構(gòu)交換機(jī)中的下游時鐘端口而并不將該時間控制flit緩存在與該接收端口相關(guān)聯(lián)的接收緩沖器中;以及

將該時間控制flit注入到從該下游時鐘端口的發(fā)送端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。

11、條款6的方法,其中,對于每一個從節(jié)點(diǎn),包括該主時鐘時間數(shù)據(jù)的該至少一個flit以確保轉(zhuǎn)發(fā)至從節(jié)點(diǎn)的主時鐘時間數(shù)據(jù)的數(shù)據(jù)完整性的方式沿著從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑被轉(zhuǎn)發(fā)。

12、在前條款的任一項的方法,進(jìn)一步包括確定主時鐘和從節(jié)點(diǎn)上的本地時鐘之間的時鐘速率不匹配。

13、條款12的方法,其中確定主時鐘和本地時鐘之間的時鐘速率不匹配包括:

在從節(jié)點(diǎn)接收第一主時鐘時間數(shù)據(jù);

在從節(jié)點(diǎn)存儲對應(yīng)于第一主時鐘時間數(shù)據(jù)的第一主時鐘時間樣本;

結(jié)合接收該第一主時鐘時間數(shù)據(jù),在從節(jié)點(diǎn)存儲該本地時鐘的第一樣本;

在從節(jié)點(diǎn)接收第二主時鐘時間數(shù)據(jù);

在從節(jié)點(diǎn)存儲該第二主時鐘時間數(shù)據(jù);

結(jié)合接收該第二主時鐘時間數(shù)據(jù),在從節(jié)點(diǎn)存儲該本地時鐘的第二樣本;

從第二主時鐘時間數(shù)據(jù)減去第一主時鐘時間數(shù)據(jù)以獲得主時鐘時間樣本差;

從本地時鐘的第二樣本減去第一樣本以獲得本地時鐘時間樣本差的時間差;以及

從主時鐘時間樣本差減去該本地時鐘時間樣本差并將該結(jié)果除以本地時鐘時間樣本差以獲得該時鐘速率不匹配。

14、在前條款的任一項的方法,進(jìn)一步包括:

使用新的主時鐘節(jié)點(diǎn)來代替主時鐘節(jié)點(diǎn);以及

經(jīng)由具有固定延遲的時鐘樹路徑將由在該新的主時鐘節(jié)點(diǎn)上操作的主時鐘生成的主時鐘時間數(shù)據(jù)轉(zhuǎn)發(fā)至多個從節(jié)點(diǎn)的每一個;

對于給定的從節(jié)點(diǎn),確定從該新的主時鐘節(jié)點(diǎn)至該從節(jié)點(diǎn)的時鐘樹路徑的固定延遲;以及

使用由該從節(jié)點(diǎn)接收的主時鐘時間數(shù)據(jù)和確定的從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑的固定延遲來對該從節(jié)點(diǎn)的本地時鐘和在該新的主時鐘節(jié)點(diǎn)處的主時鐘進(jìn)行同步。

15、在前條款的任一項的方法,進(jìn)一步包括在結(jié)構(gòu)交換機(jī)中實(shí)現(xiàn)該主時鐘。

16、一種結(jié)構(gòu)交換機(jī),包括:

多個端口,每一個包括可操作地耦合到接收緩沖器的接收端口以及可操作地耦合到發(fā)送緩沖器的發(fā)送端口,至少一個端口包括上游時鐘端口并且至少一個端口包括下游時鐘端口;

交換電路,其在操作期間,實(shí)現(xiàn)第一端口的接收緩沖器和第二端口的發(fā)送緩沖器之間的可選連接;

上游時鐘端口的接收端口和下游時鐘端口的發(fā)送端口之間的至少一個旁路電路路徑,其以旁路掉接收端口的接收緩沖器以及發(fā)送端口的發(fā)送緩沖器的方式能夠?qū)崿F(xiàn)在上游時鐘端口的接收端口處接收的主時鐘時間數(shù)據(jù)被轉(zhuǎn)發(fā)至下游時鐘端口的發(fā)送端口。

17、條款16的結(jié)構(gòu)交換機(jī),其中該至少一個電路路徑包括具有多個環(huán)形節(jié)點(diǎn)停止的至少一個環(huán)形總線,所述至少一個環(huán)形總線包括可操作地耦合到至少一個上游時鐘端口的每一個和至少一個下游時鐘端口的每一個的各自的環(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)一步被配置為:

在上游時鐘端口接收flit流;

在該flit流中檢測時間控制flit;

從該時間控制flit中提取主時鐘時間數(shù)據(jù);

將該主時鐘時間數(shù)據(jù)沿著第一環(huán)形總線轉(zhuǎn)發(fā);以及

在第一互連上的多個環(huán)形停止節(jié)點(diǎn)的每一個處;

將主時鐘時間數(shù)據(jù)的副本封裝在新的時間控制flit中;以及

將該新的時間控制flit注入從該環(huán)形停止節(jié)點(diǎn)耦合的下游時鐘端口向結(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)一步被配置為:

在上游時鐘端口接收flit流;

在該flit流中檢測時間控制flit;

將該時間控制flit沿著第一環(huán)形總線轉(zhuǎn)發(fā);以及

在第一互連上的多個環(huán)形停止節(jié)點(diǎn)的每一個處;

將該時間控制flit的副本注入從該環(huán)形停止節(jié)點(diǎn)耦合的下游時鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。

20、條款17-19的任一項的結(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ù)據(jù)被包含在第一flit和第二flit中,第一flit包括該主時鐘時間數(shù)據(jù)的較高比特部分并且第二flit包括該主時鐘時間數(shù)據(jù)的較低比特部分。

21、條款20的結(jié)構(gòu)交換機(jī),其中每一個上游時鐘端口被配置為檢測該flit流中的錯誤并且該結(jié)構(gòu)交換機(jī)配置為防止將錯誤的時間控制flit從上游時鐘端口轉(zhuǎn)發(fā)至下游時鐘端口。

22、條款16-21的任一項的結(jié)構(gòu)交換機(jī),其中該至少一個電路路徑包括第一環(huán)形總線和第二環(huán)形總線,每一個具有多個環(huán)形節(jié)點(diǎn)停止,其包括可操作地耦合到至少一個上游時鐘端口的每一個和至少一個下游時鐘端口的每一個的各自環(huán)形節(jié)點(diǎn)停止,其中數(shù)據(jù)沿著第一環(huán)形總線以順時針方向被轉(zhuǎn)發(fā)并且數(shù)據(jù)沿著第二環(huán)形總線以逆時針方向被轉(zhuǎn)發(fā)。

23、條款16-22的任一項的結(jié)構(gòu)交換機(jī),其中該多個端口的每一個選擇地可配置為操作為上游時鐘端口和下游時鐘端口,每次一個。

24、條款16-23的任一項的結(jié)構(gòu)交換機(jī),進(jìn)一步包括用于實(shí)現(xiàn)主時鐘的電路。

25、條款16-24的任一項的結(jié)構(gòu)交換機(jī),進(jìn)一步包括用于實(shí)現(xiàn)本地時鐘并將該本地時鐘同步至主時鐘的電路。

26、條款16-24的任一項的結(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)一步包括:

在至少一個上游時鐘端口的每一個處的時間控制flit提取邏輯,其被配置為從包括主時鐘時間數(shù)據(jù)的接收的flit流提取時間控制flit并沿著在上游時鐘端口和至少一個下游時鐘端口之間的旁路電路路徑轉(zhuǎn)發(fā)包含在提取的時間控制flit中的主時間數(shù)據(jù)。

27、條款26的結(jié)構(gòu)交換機(jī),進(jìn)一步包括:

在至少一個下游時鐘端口的每一個處的時間控制flit注入邏輯,其被配置為接收沿著該旁路電路路徑從上游時鐘端口轉(zhuǎn)發(fā)的主時間數(shù)據(jù),生成新的時間控制flit,并將該新的時間控制flit注入至從該下游時鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。

28、條款16-24的任一項的結(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)一步包括:

位于至少一個上游時鐘端口的每一個處的時間控制flit提取邏輯,其被配置為從包括主時鐘時間數(shù)據(jù)的接收的flit流提取時間控制flit并沿著該上游時鐘端口和至少一個下游時鐘端口之間的旁路電路路徑轉(zhuǎn)發(fā)提取的時間控制flit。

29、條款28的結(jié)構(gòu)交換機(jī),進(jìn)一步包括:

位于至少一個下游時鐘端口的每一個處的時間控制flit注入邏輯,其被配置為接收沿著該旁路電路路徑從上游時鐘端口轉(zhuǎn)發(fā)的時間控制flit,并將該時間控制flit注入至從該下游時鐘端口向結(jié)構(gòu)鏈路發(fā)出的flit流中。

30、一種系統(tǒng),包括:

具有主時鐘并包括主機(jī)結(jié)構(gòu)接口(hfi)的主時鐘節(jié)點(diǎn);

多個從節(jié)點(diǎn),每一個包括本地時鐘并包括hfi;

多個結(jié)構(gòu)交換機(jī),每一個包括,

多個端口,每一個包括可操作地耦合到接收緩沖器的接收端口和可操作地耦合到發(fā)送緩沖器的發(fā)送端口,至少一個端口包括上游時鐘端口并且至少一個端口包括下游時鐘端口;

交換電路,其在操作期間,實(shí)現(xiàn)不同端口的接收緩沖器和發(fā)送緩沖器對之間的可選連接;

在該至少一個上游時鐘端口和該至少一個下游時鐘端口之間的至少一個旁路電路路徑;以及

該多個結(jié)構(gòu)交換機(jī)、該主時鐘節(jié)點(diǎn)以及該多個從節(jié)點(diǎn)上的多個結(jié)構(gòu)鏈路互連端口,

其中,在該系統(tǒng)的操作期間,該主時鐘節(jié)點(diǎn)生成經(jīng)由具有固定延遲的時鐘樹路徑而被轉(zhuǎn)發(fā)至從節(jié)點(diǎn)的每一個的主時鐘時間數(shù)據(jù),其中時鐘樹路徑遍歷至少一個結(jié)構(gòu)交換機(jī)和多個結(jié)構(gòu)鏈路每一個的旁路電路路徑。

31、條款30的系統(tǒng),其中每一個結(jié)構(gòu)交換機(jī)被配置為以旁路掉接收緩沖器、發(fā)送緩沖器以及交換電路的方式沿著至少一個旁路電路路徑轉(zhuǎn)發(fā)主時鐘時間數(shù)據(jù)。

32、條款31的系統(tǒng),其中該系統(tǒng)執(zhí)行用于促進(jìn)從節(jié)點(diǎn)上的本地時鐘與主時鐘的同步的操作,所述操作包括:

經(jīng)由具有固定延遲的各自時鐘樹路徑將由主時鐘生成的主時鐘時間數(shù)據(jù)轉(zhuǎn)發(fā)至該多個從節(jié)點(diǎn)的每一個;

對于每一個從節(jié)點(diǎn),確定從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑的固定延遲;以及

使用由從節(jié)點(diǎn)接收的主時鐘時間數(shù)據(jù)和確定的從主時鐘節(jié)點(diǎn)至從節(jié)點(diǎn)的時鐘樹路徑的固定延遲來對該從節(jié)點(diǎn)的本地時鐘和在主時鐘節(jié)點(diǎn)上操作的主時鐘進(jìn)行同步,

33、條款32的系統(tǒng),其中該系統(tǒng)進(jìn)一步被配置為:

確定每一個從節(jié)點(diǎn)上的本地時鐘相對于主時鐘的時鐘速率不匹配;以及

使用針對每一個本地時鐘確定的時鐘速率不匹配來維持主時鐘和每一個本地時鐘之間的同步。

34、條款30-33的任一項的系統(tǒng),其中該系統(tǒng)進(jìn)一步被配置為確保轉(zhuǎn)發(fā)至每一個從節(jié)點(diǎn)的主時鐘時間數(shù)據(jù)的數(shù)據(jù)完整性。

雖然參考特定實(shí)施方式已經(jīng)描述了某些實(shí)施例,但是根據(jù)某些實(shí)施例其他實(shí)施方式也是可能的。此外,在附圖中示出的和/或在本文描述的元素或其他特征的布置和/或順序無需以示出和描述的特定方式來進(jìn)行布置。根據(jù)某些實(shí)施例很多其他布置是可能的。

在圖中示出的每一個系統(tǒng)中,在某些情況下的元素可能每一個具有相同的附圖標(biāo)記或不同的附圖標(biāo)記以暗示所表示的該元素可能不同和/或相似。然而,元素可以足夠靈活以具有不同的實(shí)施方式并與本文示出或描述的部分或全部系統(tǒng)協(xié)作。圖中示出的各種元素可能相同或不同。哪個元素被稱為第一元素以及哪個元素被稱為第二元素是任意的。

在說明書和權(quán)利要求書中,可以使用術(shù)語“耦合”和“連接”,以及它們的衍生詞。應(yīng)當(dāng)理解,這些術(shù)語并不意欲作為彼此的同義詞。而是,在特定實(shí)施例中,“連接”可以用于指示兩個或更多個元素彼此直接物理或電接觸?!榜詈稀笨梢员硎緝蓚€或更多個元素直接物理或電接觸。然而“耦合”也可以表示兩個或更多多個元素彼此并不直接接觸,但仍然彼此協(xié)作或交互。

實(shí)施例是本發(fā)明的實(shí)施方式或示例。說明書中對于“實(shí)施例”、“一個實(shí)施例”、“某些實(shí)施例”或“其他實(shí)施例”的引用表示與實(shí)施例相關(guān)描述的特定特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少某些實(shí)施例中,而并不必須在所有實(shí)施例中?!皩?shí)施例”、“一個實(shí)施例”或者“某些實(shí)施例”的各種出現(xiàn)并不必須全都指示相同的實(shí)施例。

并非本文描述和示出的所有組件、特征、結(jié)構(gòu)、特性等都需要包含在特定的一個或多個實(shí)施例中。舉例來說,如果說明書聲明了“可”、“可能”、“能”、“能夠”包括組件、特征、結(jié)構(gòu)或特性,那么并不需要包括該特定組件、特征、結(jié)構(gòu)或特性。如果說明書或權(quán)利要求涉及“一”或“一個”元素,那并不表示僅有一個該元素。如果說明書或權(quán)利要求涉及“額外的”元素,那并不排除存在多于一個的該額外元素。

在本文中并且一般地算法被認(rèn)為是引起期望結(jié)果的行為或操作的自相一致的序列。這些包括物理量的物理操縱。通常,但不是必須的,這些量采用能夠被存儲、傳輸、組合、比較以及其他操縱的電或磁信號的形式。它已經(jīng)被證明是方便的,主要由于習(xí)慣用法的原因,將這些信號稱為比特、值、元素、符號、字符、術(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ī)器可讀非暫時性存儲介質(zhì)內(nèi)實(shí)施或?qū)崿F(xiàn)的虛擬機(jī)。計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)包括以由機(jī)器(例如,計算機(jī))可讀的形式存儲或傳輸信息的任意機(jī)制。例如,計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)包括以由計算機(jī)或計算機(jī)器(例如,計算設(shè)備,電子系統(tǒng)等)可訪問的方式提供(即,存儲和/或發(fā)送)信息的任意機(jī)制,諸如可記錄/不可記錄的介質(zhì)(例如,只讀存儲器(rom)、隨機(jī)存取存儲器(ram)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備等)。內(nèi)容可以是可直接執(zhí)行的(“對象”或“可執(zhí)行”形式)、源代碼或不同的代碼(“三角(delta)”或“插入(patch)”碼)。計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)還可以包括可從中下載內(nèi)容的存儲器或數(shù)據(jù)庫。該計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)還可以包括在銷售或交付時將內(nèi)容存儲于其上的設(shè)備或制品。因此,交付具有存儲的內(nèi)容的設(shè)備,或者提供通過通信介質(zhì)下載的內(nèi)容可以被理解為提供一種包括具有本文描述的這種內(nèi)容的計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)的制造物。

本文描述的上面稱為過程、服務(wù)器或工具的各種組件可以為用于執(zhí)行描述的各功能的單元。由本文描述的各種組件執(zhí)行的操作和功能可以經(jīng)由嵌入的硬件等,或者硬件或軟件的任意組合由運(yùn)行在處理元件上的軟件實(shí)施。這種組件可以被實(shí)現(xiàn)為軟件模塊、硬件模塊、專用硬件(例如,專用硬件、asic、dsp等)、嵌入式控制器、硬接線電路、硬件邏輯等。可以經(jīng)由包括計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)的制造物來提供軟件內(nèi)容(例如,數(shù)據(jù)、指令、配置信息等),所述計算機(jī)可讀或機(jī)器可讀非暫時性存儲介質(zhì)提供表示可被執(zhí)行的指令的內(nèi)容。該內(nèi)容可以引起計算機(jī)執(zhí)行本文描述的各種功能/操作。

如上文所使用的,加入了術(shù)語“至少一個”的項目的列表可以表示所列出的項目的任意組合。舉例來說,術(shù)語“a、b或c的至少一個”可表示a;b;c;a和b;a和c;b和c;或者a,b和c。

上文對本發(fā)明的所示各實(shí)施例的描述,包括在摘要中所描述的,并不意欲窮舉本發(fā)明或者將本發(fā)明限制為所公開的精確形式。雖然以說明為目的在本文描述了本發(fā)明的各特定實(shí)施例和示例,但在本發(fā)明的范圍內(nèi)可能有各種等價的修改,正如相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到的。

可以根據(jù)上文詳述的描述對本發(fā)明作出這些修改。在下述權(quán)利要求中使用的術(shù)語不應(yīng)當(dāng)被解釋為將本發(fā)明限制為在說明書和附圖中公開的特定實(shí)施例。而是,本發(fā)明的范圍將全部由下述權(quán)利要求確定,下述權(quán)利要求將依據(jù)權(quán)利范圍解讀的創(chuàng)建原則進(jìn)行解釋。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
巴林右旗| 醴陵市| 麻栗坡县| 诏安县| 永年县| 绥宁县| 静海县| 比如县| 湘西| 容城县| 祥云县| 始兴县| 新河县| 忻城县| 涞源县| 五常市| 双牌县| 化隆| 买车| 安吉县| 美姑县| 叶城县| 桐城市| 邹平县| 兴城市| 沙坪坝区| 九龙县| 浦江县| 什邡市| 桑植县| 皮山县| 呼玛县| 龙泉市| 东辽县| 汽车| 济南市| 德令哈市| 广安市| 虎林市| 东城区| 星子县|