對相關申請的交叉引用
本申請要求享有2014年12月22日提交的題為“linkdelaybasedroutingapparatusforanetwork-on-chip”的美國非臨時專利申請號14/579,845的益處和優先權,其以其整體通過引用并入本文。
本公開一般地涉及計算機開發的領域,并且更具體地,涉及用于片上網絡(noc)的基于鏈路延遲的路由器裝置。
背景技術:
隨著多核處理器中的核以及知識產權(ip)塊的數目的增加,用于核之間的管芯上通信的片上網絡(noc)在使得能夠實現可縮放性能方面是重要的。在這樣的實例中,組件之間的通信成為關鍵的功率和性能限制者。noc使得能夠實現用于與路由器的通信的片上布線資源的高效共享以控制和仲裁通信組件之間的數據流。混合分組/電路交換noc使得能夠實現以逼近電路交換數據傳播的能量效率的分組交換的高吞吐量和利用。noc的路由器之間的各種鏈路由于由工藝/電壓/溫度(pvt)變化和老化所導致的效應而可能具有不同的延遲。
附圖說明
圖1圖示了針對依照某些實施例的包括多核處理器的示例計算系統的框圖。
圖2圖示了依照某些實施例的包括包含多個路由器的片上網絡(noc)系統的處理器的框圖。
圖3圖示了依照某些實施例的包括包含多個路由器、可調諧復制電路(trc)和trc控制器的noc系統的處理器的框圖。
圖4圖示了依照某些實施例的示例trc。
圖5圖示了依照某些實施例的用于從trc獲得延遲信息的示例方法。
圖6圖示了依照某些實施例的用于基于trc延遲信息而對分組進行路由的示例方法。
圖7圖示了針對依照某些實施例的示例計算系統的另一框圖。
在各種圖中,相同的參考標號和指定指示相同的元件。
具體實施方式
在以下描述中,闡述眾多具體細節,諸如具體類型的處理器和系統配置、具體硬件結構、具體架構和微架構細節、具體寄存器配置、具體指令類型、具體系統組件、具體測量/高度、具體處理器流水線級和操作等的示例,以便提供本公開的透徹理解。然而,對本領域技術人員將明顯的是,這些具體細節不需要用于實踐本公開。在其它實例中,尚未詳細描述公知的組件或方法,諸如具體和可替換的處理器架構、用于所描述的算法的具體邏輯電路/代碼、具體固件代碼、具體互連操作、具體邏輯配置、具體制造技術和材料、具體編譯器實現、在代碼中的算法的具體表達、具體掉電和門控技術/邏輯以及計算機系統的其它具體操作細節,以便避免使本公開不必要地模糊。
盡管可以參照具體集成電路中(諸如在計算平臺或微處理器中)的能量節約和能量效率來描述以下實施例,但是其它實施例適用于其它類型的集成電路和邏輯設備。本文所描述的實施例的類似技術和教導可以應用于也可以從更好的能量效率和能量節約受益的其它類型的電路或半導體設備。例如,所公開的實施例不限于臺式計算機系統或ultrabooktm,而是也可以使用在其它設備中,諸如服務器計算機系統、手持設備、平板電腦、其它薄筆記本電腦、片上系統(soc)設備和嵌入式應用。手持設備的一些示例包括蜂窩電話、因特網協議設備、數碼相機、個人數字助理(pda)和手持pc。嵌入式應用典型地包括微控制器、數字信號處理器(dsp)、片上系統、網絡計算機(netpc)、機頂盒、網絡中心、廣域網(wan)交換機或可以執行以下教導的功能和操作的任何其它系統。而且,本文所描述的裝置、方法和系統不限于物理計算設備,而是還可以涉及用于能量節約和效率的軟件優化。如將在以下的描述中容易變得明顯的,本文所描述的方法、裝置和系統的實施例(無論參照硬件、固件、軟件還是其組合)對與性能考慮平衡的“綠色技術”將來是至關重要的。
隨著計算系統的前進,其中的組件正在變得更加復雜。作為結果,在組件之間進行耦合和通信的互連架構在復雜度方面也日益增加以確保滿足針對最優組件操作的帶寬要求。另外,不同的市場細分要求互連架構的不同方面以適應市場的需要。例如,服務器要求更高的性能,而移動生態系統有時能夠為功率節省而犧牲總體性能。然而,大多數結構的唯一目的是以最大功率節省來提供最高的可能性能。以下,討論數個互連,其將潛在地受益于本文所描述的公開的各方面。
參照圖1,描繪了針對包括多核處理器的計算系統的框圖的實施例。處理器100包括任何處理器或處理設備,諸如微處理器、嵌入式處理器、數字信號處理器(dsp)、網絡處理器、手持處理器、應用處理器、協處理器、片上系統(soc)或執行代碼的其它設備。在一個實施例中,處理器100包括至少兩個核——核101和102,其可以包括非對稱核或對稱核(所圖示的實施例)。然而,處理器100可以包括任何數目的處理元件,其可以是對稱的或非對稱的。
在一個實施例中,處理元件是指支持軟件線程的硬件或邏輯。硬件處理元件的示例包括:線程單元、線程槽(slot)、線程、過程單元、上下文、上下文單元、邏輯處理器、硬件線程、核和/或任何其它元件,其能夠保持針對處理器的狀態,諸如執行狀態或架構狀態。換言之,在一個實施例中,處理元件是指能夠與代碼獨立相關聯的任何硬件,所述代碼諸如軟件線程、操作系統、應用或其它代碼。物理處理器(或處理器插槽)典型地是指集成電路,其潛在地包括任何數目的其它處理元件,諸如核或硬件線程。
核通常是指位于集成電路上的能夠維持獨立架構狀態的邏輯,其中每一個被獨立維持的架構狀態與至少一些專用執行資源相關聯。與核相比,硬件線程典型地是指位于集成電路上的能夠維持獨立架構狀態的任何邏輯,其中被獨立維持的架構狀態共享對執行資源的訪問。如可以看到的,當某些資源被共享并且其它資源專用于架構狀態時,核與硬件線程的命名之間的界限重疊。而通常,核與硬件線程被操作系統視為單獨的邏輯處理器,其中操作系統能夠單獨地調度每一個邏輯處理器上的操作。
如圖1中所圖示的物理處理器100包括兩個核——核101和102。在此,核101和102被視為對稱的核,即具有相同配置、功能單元和/或邏輯的核。在另一實施例中,核101包括亂序處理器核,而核102包括有序處理器核。然而,核101和102可以從任何類型的核單獨選擇,諸如原生核、軟件管理的核、適配成執行原生指令集架構(isa)的核、適配成執行經轉換的指令集架構(isa)的核、共同設計的核或其它已知核。在異構核環境(即非對稱核)中,某種形式的轉換(諸如二進制轉換)可以用于調度或執行一個或兩個核上的代碼。再進一步地討論,以下進一步詳細地描述核101中圖示的功能單元,因為核102中的單元在所描繪的實施例中以類似方式操作。
如所描繪的,核101包括兩個硬件線程101a和101b,其還可以稱為硬件線程槽101a和101b。因此,在一個實施例中,軟件實體(諸如操作系統)潛在地將處理器100視為四個分離的處理器,即能夠同時執行四個軟件線程的四個邏輯處理器或處理元件。如以上略有提到的,第一線程與架構狀態寄存器101a相關聯,第二線程與架構狀態寄存器101b相關聯,第三線程可以與架構狀態寄存器102a相關聯,并且第四線程可以與架構狀態寄存器102b相關聯。在此,架構狀態寄存器(101a、101b、102a和102b)中的每一個可以稱為處理元件、線程槽或線程單元,如以上所描述的。如所圖示的,架構狀態寄存器101a復制在架構狀態寄存器101b中,因此單獨的架構狀態/上下文能夠針對邏輯處理器101a和邏輯處理器101b而存儲。在核101中,其它較小的資源,諸如分配器和重命名器塊130中的重命名邏輯和指令指針也可以針對線程101a和101b進行復制。諸如重排序器/退役單元135中的重排序緩沖器、iltb120、加載/存儲緩沖器和隊列之類的一些資源可以通過分區而共享。潛在地完全共享其它資源,諸如通用內部寄存器、(多個)頁表基址寄存器、低級數據高速緩存和數據tlb115、(多個)執行單元140和亂序單元135的部分。
處理器100通常包括其它資源,其可以被完全共享、通過分區共享或由處理元件專用/專用于處理元件。在圖1中,圖示了具有處理器的說明性邏輯單元/資源的純粹示例性的處理器的實施例。要指出的是,處理器可以包括或省略這些功能單元中的任何一個,以及包括未描繪的任何其它已知的功能單元、邏輯或固件。如所圖示的,核101包括簡化的、代表性的亂序(ooo)處理器核。但是在不同實施例中可以利用有序處理器。ooo核包括分支目標緩沖器120以預測要執行/采取的分支以及指令轉換緩沖器(i-tlb)120以存儲用于指令的地址轉換條目。
核101還包括耦合到取出單元120的解碼模塊125以解碼所取出的元件。在一個實施例中,取出邏輯包括分別與線程槽101a、101b相關聯的單獨的定序器。通常,核101與第一isa相關聯,其定義/指定在處理器100上可執行的指令。通常作為第一isa的部分的機器代碼指令包括指令的部分(稱為操作碼),其參考/指定要執行的指令或操作。解碼邏輯125包括從其操作碼識別這些指令并且在流水線中傳遞經解碼的指令以用于如由第一isa定義的處理的電路。例如,如以下更加詳細地討論的,在一個實施例中,解碼器125包括設計或適配成識別具體指令(諸如事務指令)的邏輯。作為通過解碼器125的識別的結果,架構或核101采取具體、預定義的動作以執行與適當的指令相關聯的任務。重要的是要指出,本文所描述的任何任務、塊、操作和方法可以響應于單個或多個指令而執行;其中的一些可以是新的或舊的指令。要指出的是,在一個實施例中,解碼器126識別相同的isa(或其子集)。可替換地,在異構核環境中,解碼器126識別第二isa(第一isa的子集或不同的isa)。
在一個示例中,分配器和重命名器塊130包括保留資源(諸如存儲指令處理結果的寄存器文件)的分配器。然而,線程101a和101b潛在地能夠進行亂序執行,其中分配器和重命名器塊130還保留其它資源,諸如重排序緩沖器以追蹤指令結果。單元130還可以包括寄存器重命名器以將程序/指令參考寄存器重命名到處理器100內部的其它寄存器。重排序器/退役單元135包括組件,諸如以上提到的重排序器緩沖器、加載緩沖器和存儲緩沖器,以支持亂序執行和亂序執行的指令的稍后的有序退役。
在一個實施例中,調度器和(多個)執行單元塊140包括調度執行單元上的指令/操作的調度器單元。例如,在具有可用浮點執行單元的執行單元的端口上調度浮點指令。還包括與執行單元相關聯的寄存器文件以存儲信息指令處理結果。示例性執行單元包括浮點執行單元、整數執行單元、跳轉執行單元、加載執行單元、存儲執行單元和其它已知的執行單元。
較低級數據高速緩存和數據轉換緩沖器(d-tlb)150耦合到(多個)執行單元140。數據高速緩存要存儲最近在元件上使用/操作的,諸如數據操作數,其潛在地保持在存儲器一致性狀態中。d-tlb要存儲最近的虛擬/線性到物理地址轉換。作為具體示例,處理器可以包括頁表結構以將物理存儲器分割成多個虛擬頁面。
在此,核101和102共享對較高級或較遠離的高速緩存的訪問,諸如與片上接口110相關聯的第二級高速緩存。要指出的是,較高級或較遠離是指增加或變得更加遠離(多個)執行單元的高速緩存級。在一個實施例中,較高級高速緩存是最后一級數據高速緩存——處理器100上的存儲器層級中的最后的高速緩存——諸如第二或第三級數據高速緩存。然而,較高級高速緩存不因此受限,因為其可以與指令高速緩存相關聯或包括指令高速緩存。追蹤高速緩存——指令高速緩存的類型——替代性地可以耦合在解碼器125之后以存儲最近解碼的追蹤。在此,指令潛在地是指宏指令(即由解碼器識別的一般指令),其可以解碼成數個微指令(微操作)。
在所描繪的配置中,處理器100還包括片上接口模塊110。在歷史上,以下更加詳細地描述的存儲器控制器已經被包括在處理器100外部的計算系統中。在該場景中,片上接口11要與處理器100外部的設備通信,諸如系統存儲器175、芯片組(通常包括連接到存儲器175的存儲器控制器中心和連接外圍設備的i/o控制器中心)、存儲器控制器中心、北橋或其它集成電路。并且在該場景中,總線105可以包括任何已知的互連,諸如多跳總線、點對點互連、串行互連、并行總線、一致性(例如高速緩存一致性)總線、分層協議架構、差分總線和gtl總線。
存儲器175可以專用于處理器100或者與系統中的其它設備共享。存儲器175的類型的常見示例包括dram、sram、非易失性存儲器(nv存儲器)和其它已知的存儲設備。要指出的是,設備180可以包括耦合到存儲器控制器中心的圖形加速器、處理器或卡、耦合到i/o控制器中心的數據存儲裝置、無線收發器、閃存設備、音頻控制器、網絡控制器或其它已知設備。
然而最近,隨著更多的邏輯和設備集成在單個管芯(諸如soc)上,這些設備中的每一個可以合并在處理器100上。例如在一個實施例中,存儲器控制器中心在與處理器100相同的封裝和/或管芯上。在此,核的部分(核上部分)110包括用于與其他設備(諸如存儲器175或圖形設備180)對接的一個或多個控制器。包括用于與這樣的設備對接的互連和控制器的配置通常稱為核上(或非核配置)。作為示例,片上接口110包括用于片上通信的環形互連和用于片外通信的高速串行點對點鏈路105。然而,在soc環境中,甚至更多的設備(諸如網絡接口、協處理器、存儲器175、圖形處理器180和任何其它已知的計算機設備/接口)可以集成在單個管芯或集成電路上以提供具有高功能性和低功率消耗的小形狀因子。
在一個實施例中,處理器100能夠執行編譯器、優化和/或轉換器代碼177以編譯、轉換和/或優化應用代碼176以支持本文所描述的裝置和方法或與其對接。編譯器通常包括程序或程序集合以將源文本/代碼轉換成目標文本/代碼。通常,利用編譯器編譯程序/應用代碼在多個階段和多遍中完成以將高級編程語言代碼變換成低級機器或匯編語言代碼。然而,單遍編譯器仍舊可以用于簡單的編譯。編譯器可以利用任何已知的編譯技術并且執行任何已知的編譯器操作,諸如詞匯分析、預處理、解析、語義分析、代碼生成、代碼變換和代碼優化。
較大的編譯器通常包括多個階段,但是最通常的,這些階段被包括在兩個一般階段內:(1)前端,即一般地其中可以發生語法處理、語義處理和某種變換/優化,以及(2)后端,即一般地其中發生分析、變換、優化和代碼生成。一些編譯器是指中部,其說明了編譯器的前端和后端之間的描繪的模糊性。作為結果,對編譯器的插入、關聯、生成或其它操作的引用可以發生在任何前述階段或遍以及編譯器的任何其它已知階段或遍中。作為說明性示例,編譯器潛在地在編譯的一個或多個階段中插入操作、調用、函數等,諸如在編譯的前端階段中插入調用/操作以及然后在變換階段期間將調用/操作變換成較低級代碼。要指出的是,在動態編譯期間,編譯器代碼或動態優化代碼可以插入這樣的操作/調用,以及優化用于在運行時期間執行的代碼。作為具體說明性示例,二進制代碼(已經編譯的代碼)可以在運行時期間被動態地優化。在此,程序代碼可以包括動態優化代碼、二進制代碼或其組合。
類似于編譯器,轉換器(諸如二進制轉換器)靜態地或動態地轉換代碼以優化和/或轉換代碼。因此,對代碼、應用代碼、程序代碼或其它軟件環境的執行的引用可以是指:(1)(多個)編譯器程序、優化代碼優化器或轉換器動態或靜態地執行,以編譯程序代碼、維持軟件結構、執行其它操作、優化代碼或轉換代碼;(2)包括操作/調用的主程序代碼的執行,諸如已經被優化/編譯的應用代碼;(3)與主程序代碼相關聯的其它程序代碼(諸如庫)的執行以維持軟件結構、執行其它軟件相關操作或優化代碼;或(4)其組合。
圖2圖示了依照某些實施例的包括包含多個路由器204的noc系統的處理器200的框圖。處理器200可以包括任何處理器或處理設備,諸如微處理器、嵌入式處理器、數字信號處理器(dsp)、網絡處理器、手持處理器、應用處理器、協處理器、soc或執行代碼的其它設備。在特定實施例中,處理器200實現在單個管芯上。
在所描繪的實施例中,處理器200包括多個網絡元件202,其布置在網格網絡中并且利用雙向鏈路耦合到彼此。然而,依照本公開的各種實施例的noc可以應用于任何合適的網絡拓撲(例如分層級網絡或環形網絡)、大小、總線寬度和過程。每一個網絡元件202包括路由器204。路由器204可以在網絡(諸如分組交換網絡和/或電路交換網絡)中與彼此通信鏈接,因而使得能夠實現連接到路由器的noc的組件(諸如核、存儲元件或其它邏輯塊)之間的通信。在所描繪的實施例中,每一個路由器204可以通信耦合到其自身的核208(或其它邏輯塊)。如本文所使用的,對核的引用還可以應用于其中使用不同的邏輯塊來代替核的其它實施例。例如,各種邏輯塊可以包括硬件加速器(例如圖形加速器、多媒體加速器或視頻編碼/解碼加速器)、i/o塊、存儲器控制器或其它合適的固定功能邏輯。處理器200可以包括任何數目的處理元件,其可以是對稱或非對稱的。例如,處理器200的核208可以包括非對稱核或對稱核。處理器200可以包括操作為分組交換網絡和電路交換網絡中的任一個或二者的邏輯以提供管芯內通信。
在特定實施例中,分組可以使用分組交換網絡的資源而在各種路由器204之間傳送。也就是說,分組交換網絡可以提供路由器(及其相關聯的核)之間的通信。分組可以包括控制部分和數據部分。控制部分可以包括分組的目的地地址,并且數據部分可以包含要在管芯100上傳送的具體數據。例如,控制部分可以包括對應于管芯的網絡元件或核中的一個的目的地地址。分組交換網絡可以包括緩沖,因為不保證從源到目的地的專用路徑,并且因此如果兩個或更多分組需要穿過相同的鏈路或互連,則分組可能需要被臨時停止。作為示例,分組可以在分組從源行進到目的地時在每一個相應路由器處緩沖(例如通過觸發器)。分組可以由路由器204接收、傳輸和處理。分組交換網絡可以使用相鄰路由器之間的點對點通信。分組的控制部分可以經由分組時鐘(諸如4ghz時鐘)在路由器之間傳遞。分組的數據部分可以基于類似時鐘(諸如4ghz時鐘)在路由器之間傳遞。
在實施例中,處理器200的路由器可以不同地提供在兩個網絡中或者在兩個網絡中通信,所述兩個網絡諸如分組交換網絡和電路交換網絡。這樣的通信方案可以稱為混合分組/電路交換網絡。在這樣的實施例中,分組可以使用分組交換網絡和電路交換網絡的資源在各種路由器204之間不同地通信。為了傳輸單個數據分組,電路交換網絡可能分配整個路徑,而分組交換網絡可能僅分配單個區段(segment)(或互連)。在一些實施例中,分組交換網絡可以用于保留電路交換網絡的資源以用于路由器204之間的數據傳輸。
路由器204可以包括多個端口集合以不同地耦合到鄰接的網絡元件202并且與其通信。例如,電路交換和分組交換信號可以通過這些端口集合傳送。路由器204的端口集合可以例如根據鄰接的網絡元件的方向和/或與這樣的元件的業務交換的方向而進行邏輯劃分。例如,路由器204可以包括北端口集合,其具有被配置成(分別)從位于關于路由器204的“北”方向上的網絡元件202接收通信并且向其發送通信的輸入(“in”)和輸出(“out”)端口。此外或可替換地,路由器204可以包括類似端口集合以與位于南、西、東或其它方向的網絡元件對接。在所描繪的實施例中,路由器204被配置用于x第一、y第二路由,其中數據首先在東/西方向上移動,并且然后在北/南方向上移動。在其它實施例中,可以使用任何合適的路由方案。
在各種實施例中,路由器204還包括另一端口集合,其包括被配置成(分別)從網絡的另一代理接收通信和向其發送通信的輸入端口和輸出端口。在所描繪的實施例中,該端口集合在路由器204的中心處示出。在一個實施例中,這些端口用于與鄰近于路由器204、與路由器204通信或以其它方式與路由器204相關聯的邏輯的通信,所述邏輯諸如“本地”核208的處理器邏輯。在本文中,該端口集合將成為“核端口集合”,不過在一些實現方式中其可以與除了核之外的邏輯對接。在另一實施例中,該端口集合用于與處于高于路由器204的級別的網絡層級的下一級別中的網絡元件的通信。在一個實施例中,東和西方向鏈路在一個金屬層上,北和南方向鏈路在第二金屬層上,并且核鏈路在第三金屬層上。在實施例中,路由器204包括縱橫開關和仲裁邏輯以提供端口間通信的路徑,諸如圖2中所示的。每一個網絡元件中的邏輯(諸如核208)可以具有唯一時鐘和/或電壓,或者可以與noc的一個或多個其它組件共享時鐘和/或電壓。
通過來自noc的壽命內的過程/電壓/溫度(pvt)和老化引致的降級的管芯內變化,在大程度上掌控noc設計(諸如網狀和較高維度拓撲)中的管芯上數據通信鏈路的性能和能量效率。傳統上,通過將最差情況安全帶構建到鏈路的電壓-頻率設置中來計及這些變化的性能影響。這些變化的影響在按比例縮小工藝(scaledprocess)技術中、在較低操作電壓處并且在更大數目的核在相同管芯上集成的情況下正在變得更加嚴重。
諸如電壓下降、溫度和老化之類的動態變化將自身表明為電路的關鍵路徑上的定時錯誤。在標稱條件下,當不存在最差情況變化時,存在使數據沿每一個關鍵路徑傳播并且鎖存(latch)到接收狀態元件中的充足時間,并且沒有發生錯誤。然而,在存在動態變化下,關鍵路徑延遲增加,從而造成鎖存到接收鎖存器或觸發器中的不正確數據。
當前的noc路由算法不計及noc壽命期間的運行時和制造后(post-manufacturing)的鏈路延遲的靜態和動態pvt變化的影響。路由算法可以假定最差情況條件在所有時間跨noc而均勻存在。本公開的各種實施例包括用于分組交換、電路交換和混合noc結構的智能路由裝置。在一些實施例中,智能路由裝置利用由于工藝變化所致的針對每一個節點對的鏈路性能的制造后靜態映射。該裝置利用每鏈路或鏈路組的可調諧復制電路(trc),其在測試時間處被校準以追蹤由于電壓和溫度改變所致的相應鏈路或鏈路組的rc延遲變化。這些trc可以用于本地供給噪聲和溫度變化的運行時感測和映射并且用于追蹤鄰近節點之間的鏈路延遲上的對應影響。執行trc(其經歷與它們仿真的鏈路相同的電壓-溫度應力)的周期性測試以計及處理器壽命內的老化引致的鏈路延遲改變。從校準和測試trc獲得的信息被提供以供路由算法使用。該算法可以使用啟發法以使用最近可用pvt變化和老化映射信息來優化noc業務的路由以改進noc的性能、吞吐量、能量效率、等待時間、錯誤率和/或其它操作特性。
圖3圖示了依照某些實施例的包括包含多個路由器204、trc302和trc控制器306的noc系統的處理器300的框圖。處理器300可以具有本文關于處理器200描述的任何合適的特性。在所描繪的實施例中,trc被放置在靠近每一個鏈路。例如,trc302a與路由器204a和204b之間的鏈路相關聯,trc302b與路由器204b和204c之間的鏈路相關聯,trc302c與路由器204c和204d之間的鏈路相關聯,并且trc302d與路由器204d和204a之間的鏈路相關聯。如本文所使用的,鏈路可以包括路由器之間的互連以及位于路由器內的邏輯和互連。例如,路由器204a和204b之間的鏈路的關鍵路徑可以包括位于路由器204a和204b中的任一個或二者中的邏輯或互連加上路由器之間的互連。在特定實施例中,通過鏈路的關鍵路徑可以包括方向邏輯(其確定要向哪個路由器轉發數據)和優先級邏輯(其在多個競爭請求之間進行選擇以轉發數據)中的一個或多個。在其它實施例中,鏈路的關鍵路徑可以包括附加或其它的邏輯。如本文所使用的,鏈路可以是指noc中的分組交換路徑的區段或電路交換路徑的區段。
每一個trc302追蹤與其相關聯的鏈路的pvt變化和老化降級。在其它實施例中,單個trc302可以與位于靠近彼此的多個鏈路相關聯。例如,處理器可以包括每區一個trc302,其中區可以包括任何合適數目的鏈路,諸如四個、八個、十六個或其它數目的鏈路。在這樣的實施例中,單個trc302可以用于追蹤與其相關聯的區中的每一個鏈路的pvt變化和老化降級。為了追蹤其相關聯的鏈路的延遲,每一個trc302耦合到trc控制器306,所述trc控制器306與trc302通信以實行trc的校準和測試。如所描繪的每一個trc的部分可以包括對承載trc與trc控制器306之間的控制信號和測試結果必要的互連。
在所描繪的實施例中,trc插入跨處理器的水平和豎直線中,其中每一條線包括多個trc,所述多個trc均位于兩個路由器之間。然而,trc可以以任何合適的幾何結構放置。圖3中所示的各種元件不一定按照比例繪制。例如,每一個trc不必橫跨從一個路由器到另一路由器的長度,并且trc控制器不必橫跨芯片的整個長度。
圖4圖示了依照某些實施例的示例trc302。trc302使用與其相關聯的鏈路相同的電壓供給和時鐘以便準確地追蹤鏈路處的延遲變化。trc可以包括實施可調節延遲的邏輯的任何合適的組合。在所描繪的實施例中,trc302包括觸發器406、錯誤檢測邏輯430和觸發器406與錯誤檢測邏輯之間的延遲部分。觸發器406使用和與trc302仿真的鏈路相關聯的關鍵路徑中的邏輯相同的時鐘來計時。觸發器406可以對與trc的延遲部分的輸出處的數據相比的數據計時。在特定實施例中,觸發器406包括每一個時鐘循環交替其輸出的反轉(toggle)觸發器。在其它實施例中,任何合適的數據生成邏輯可以用于向trc的延遲部分提供數據。
trc302的延遲部分包括集體可操作以通過trc實施可變延遲的各種邏輯組件。例如,在所描繪的實施例中,trc包括反相器414、nand門418、nor門422和重復互連426。trc可以包括任何其它合適的邏輯組件,諸如多層柵極、傳輸門或其它邏輯組件。
trc302的延遲部分的各種延遲組件和復用器可以通過調諧和校準位402來控制。作為示例,調諧和校準位402可以使得能夠實現組件中的一個或多個或改變組件中的一個或多個的操作特性(例如組件或p-n偏斜(skew)的大小)以調節通過trc的區段的延遲。各種復用器410可以通過位402來控制以在trc的每個級處傳遞多個區段(每一個具有其自身的延遲)中的一個。在各種實施例中,調諧和校準位402可以由trc的邏輯或由trc控制器306來控制。
將最后的復用器410c的輸出饋送至錯誤檢測邏輯430,錯誤檢測邏輯430通過用于對觸發器406和與trc302追蹤的鏈路(或鏈路組)相關聯的邏輯計時的相同時鐘來計時。錯誤檢測邏輯430可操作成確定由觸發器406計時的數據是否匹配在錯誤檢測邏輯430處計時的數據。如果數據不匹配,則檢測到錯誤,其指示通過trc的延遲長于時鐘的循環。在特定實施例中,錯誤檢測邏輯430可以對所接收的數據計時第一次和此后不久的第二次。如果結果不同,則可以確定通過trc的延遲粗略地等于時鐘周期(實際上延遲略微更短)。
盡管在圖3中示出trc的特定實施例,但是可以使用任何其它合適的trc。例如,在一些實施例中,可以使用包括在相關聯的鏈路的關鍵路徑中使用的邏輯的trc。在特定實施例中,trc的一個設計可以用于實現跨處理器300的每一個trc。在其它實施例中,可以使用多個不同的trc。
圖5圖示了依照某些實施例的用于從trc獲得延遲信息的示例方法。在步驟502處,將trc嵌入在noc中。例如,trc可以被包括在用于noc的設計中并且可以在noc上放置成接近于trc要追蹤的鏈路。例如,trc可以放置成接近noc中的每一個鏈路,如圖3中所描繪的。作為另一示例,trc可以放置在noc的區中并且可以用于表示該區中的多個鏈路。trc可以使用與它們和其相關聯的鏈路相同的過程來制造并且因而經歷類似的pvt變化。
在步驟504處,執行trc的硅后校準。該步驟可以在芯片被制造之后的任何合適的時間處執行,但是一般在芯片的壽命早期(諸如當處理器首次上電時)執行。校準可以牽涉通過trc控制器306設置trc的一個或多個操作特性和然后通過各種trc延遲設置循環并且監視錯誤檢測邏輯430的輸出以確定特定trc延遲設置處的延遲特性。然后調節trc的一個或多個操作特性并且重復該過程。可以在校準期間調節任何合適的操作特性,諸如電壓、頻率、溫度或其它操作特性。在特定實施例中,針對每一對若干不同的電壓和頻率設定點而測試各種延遲設定點。
在各種實施例中,在設置特定操作特性組之后,調節trc的延遲部分并且監視錯誤檢測邏輯430以確定通過trc的延遲是小于時鐘周期還是大于時鐘周期(基于錯誤是否由錯誤檢測邏輯430檢測到)。再次調節trc的任何部分并且觀察結果。對于操作特性的每一個集合,通過trc的延遲可以被調節和測試任何合適的次數。此外或可替換地,在校準期間,可以監視通過trc的延遲以確定通過trc的延遲加上一個或多個固定延遲裕度小于時鐘周期還是大于時鐘周期。可以使用任何合適的裕度,諸如自適應電壓/頻率響應期間的最大可能讀取延遲改變、一個時鐘循環中的最大可能讀取延遲改變或其它合適的延遲裕度。這些延遲裕度可以使用任何合適的電路實現。
校準的各種結果可以由noc存儲,例如由trc控制器306存儲。在一個實施例中,對于trc的操作特性的每一個集合和延遲設置,記錄一個或多個結果,諸如在延遲中導致的特定延遲設置小于時鐘周期還是大于時鐘周期,延遲加上第一裕度小于時鐘周期還是大于時鐘周期,延遲加上第一裕度加上第二裕度小于時鐘周期還是大于時鐘周期,和/或其它合適的結果。在其它實施例中,僅存儲這些結果的子集。例如,如果第一延遲設置導致小于時鐘周期的延遲,但是下一最長延遲設置導致多于時鐘周期的延遲,則第一延遲設置可以被視為匹配時鐘周期并且可以被存儲。類似地,如果第一延遲設置導致小于時鐘周期減去一個或多個延遲裕度的延遲,但是下一最長延遲設置導致多于時鐘周期減去所述一個或多個延遲裕度的延遲,則第一延遲設置可以視為匹配時鐘周期減去所述一個或多個裕度并且可以被存儲。
校準可以針對處理器300上的每一個trc302而執行。在一些實施例中,跨整個處理器300使用相同的操作特性集合以校準trc。在其它實施例中,在校準期間使用的操作特性設定點可以基于預期本地條件而定制。
校準的結果可以指示鏈路之中的相對延遲。例如,對于操作特性的給定集合,如果被配置到在錯誤開始發生的點處的第一trc的延遲部分中的延遲量長于被配置到錯誤發生的點處的第二trc的延遲部分中的延遲量,則確定與第一trc相關聯的鏈路具有短于與第二trc相關聯的鏈路的延遲。
在trc的校準完成之后,來自校準結果的延遲信息可以用于在步驟506處優化noc上的路由。該步驟將關于圖6更詳細地描述。在步驟508處,確定是否需要對延遲信息的更新。如果不需要更新,則noc可以使用該延遲信息繼續優化路由。noc可以使用任何合適的方法以用于確定是否需要更新。例如,noc可以被配置成周期性地執行更新,諸如每小時一次、每天一次、每月一次、其它合適的間隔或在某個事件時,諸如當處理器通電時。作為另一示例,如果在一個或多個鏈路上檢測到錯誤,則noc可以確定需要更新。如果在步驟508處確定需要對延遲信息的更新,則可以在步驟510處測試trc以便追蹤老化引致的延遲降級。可以使用trc的任何合適測試。例如,可以執行與以上關于校準所描述的類似的過程。在一些實施例中,測試過程可以使用校準結果作為用于測試的起始點,使得測試可能不需要循環通過如校準過程那么多的延遲設置。測試的結果指示通過與trc相關聯的鏈路的延遲是否已經由于由老化導致的應力而增加(以及增加到什么程度)。一旦測試完成,在步驟506處再次使用經更新的結果以優化noc中的路由。
圖5中圖示的步驟中的一些可以被重復、組合、修改或刪除,其中還可以向流程圖添加適當的和附加的步驟。此外,步驟可以在不脫離特定實施例的范圍的情況下以任何合適的次序執行。
圖6圖示了依照某些實施例的用于基于trc延遲信息而對分組進行路由的示例方法。盡管該示例聚焦于保留請求分組,但是本文所描述的步驟可以應用于任何合適類型的分組或電路交換數據的路由。在步驟602處,在路由器的端口處接收保留請求分組。請求分組可以進入路由器的輸入端口。在混合源同步noc實現方式中,請求分組建立位于網絡元件202處的源邏輯與位于不同的網絡元件處的目的地邏輯之間的電路交換信道。為了開始數據傳遞,源邏輯朝向目的地邏輯發送保留分組。該保留分組可以經由noc的分組交換部分進行傳送,并且可以在保留分組從源行進到目的地時保留用于源邏輯與目的地邏輯之間的電路交換數據通信的資源。
保留分組可以包括促進電路交換信道的保留的任何合適的信息。作為示例,保留分組可以包括與目的地相關聯的地址和可選的邊帶分組數據。在實施例中,唯一的地址可以與每一個核208或其它邏輯塊(以及因而在其中存在核與路由器之間的1:1映射的情況下的路由器204)相關聯。在步驟604處,確定分組的目的地地址。
在步驟606處,訪問trc延遲信息。例如,可以獲得trc延遲信息的子集,其是從trc的校準或稍后的測試獲得的。在一些實施例中,訪問與鏈路相關聯的trc延遲信息,所述鏈路位于從接收分組的路由器到與目的地地址相關聯的路由器的各種可能路由中。這樣的延遲信息可以指示通過鏈路的相對延遲。例如,延遲信息可以指示特定鏈路具有比另一鏈路更高的延遲裕度。作為另一示例,延遲信息可以指示特定鏈路比另一鏈路較少可能經歷錯誤。在各種實施例中,被訪問的trc延遲信息的子集基于位于從路由器到目的地的各種可能路由中的鏈路的當前或預期操作特性(例如電壓和/或頻率)。
在步驟608處,基于trc延遲信息而選擇去到目的地邏輯的路徑的一個或多個鏈路。例如,接收分組的每一個路由器(除了最終路由器之外)可以選擇分組應當被發送到的下一路由器和去到該路由器的相關聯的鏈路。在特定實施例中,每一個路由器可以訪問路由表或利用具有實現在邏輯中的各種路由規則的專用電路以確定分組應當被發送到的下一路由器。作為另一示例,可以實現源結構化路由,其中直接從源邏輯接收分組的路由器可以選擇整個路徑(即分組應當行進通過而去到目的地邏輯的鏈路)。在特定實施例中,路由器的方向邏輯確定路徑的所述一個或多個鏈路。
可以基于任何合適的目的來確定路徑的一個或多個鏈路。例如,在路由器處執行以選擇路徑的路由算法可以被配置成優化noc的整合帶寬、等待時間、能量效率、錯誤率或其它合適的性能度量。在一些實施例中,路徑的一個或多個鏈路還可以被選擇成避免可能導致錯誤或具有低延遲裕度(如通過相關聯的trc的測試所指示的)的鏈路。在步驟608處選擇一個或多個鏈路之后,在步驟610處經由在步驟608處選擇的鏈路向下一路由器發送保留請求。如果資源不可用于立即轉發保留請求,則保持保留請求直至資源變得可用為止。
圖6中圖示的步驟中的一些可以在適當的情況下被重復、組合、修改或刪除,并且還可以向流程圖添加附加的步驟。此外,步驟可以在不脫離特定實施例的范圍的情況下以任何合適的次序執行。
圖7圖示了針對依照一個實施例的示例計算系統的框圖的另一實施例。在該圖中,描繪了依照本公開的片上系統(soc)設計的實施例。作為具體說明性示例,soc700被包括在用戶設備(ue)中。在一個實施例中,ue是指由最終用戶用于通信的任何設備,諸如手持電話、智能電話、平板電腦、超薄筆記本電腦、具有寬帶適配器的筆記本電腦或任何其它類似的通信設備。通常ue連接到基站或節點,該基站或節點潛在地在本質上對應于gsm網絡中的移動站(ms)。
在此,soc700包括2個核——706和707。類似于以上的討論,核706和707可以遵守指令集架構,諸如基于intel?architecturecoretm的處理器、advancedmicrodevice公司(amd)處理器、基于mips的處理器、基于arm的處理器設計或其客戶,以及其被許可者或采納者。核706和707耦合到與總線接口單元709和l2高速緩存710相關聯的高速緩存控制708以與系統700的其它部分通信。互連710包括片上互連,諸如iosf、amba或以上討論的其它互連,其潛在地實現所描述的公開內容的一個或多個方面。
接口710提供去到其它組件的通信信道,諸如訂戶身份模塊(sim)730以與sim卡對接、引導rom735以保持引導代碼以供核706和707執行以初始化和引導soc700、sdram控制器740以與外部存儲器(例如dram760)對接、閃速控制器745以與非易失性存儲器(例如閃存765)對接、外設控制q1650(例如串行外圍接口)以與外設對接、視頻編解碼器720和視頻接口725以顯示和接收輸入(例如支持觸摸的輸入)、gpu715以執行圖形相關計算等。這些接口中的任何一個可以合并本文所描述的公開的各方面。
此外,系統圖示了用于通信的外設,諸如藍牙模塊770、3g調制解調器775、gps785和wifi785。如以上陳述的那樣要指出的是,ue包括用于通信的無線電設備。作為結果,這些外設通信模塊并非全部都是必需的。然而,在ue中要包括用于外部通信的某種形式的無線電設備。
設計可能經歷各種階段,從創建到模擬到制造。表示設計的數據可以以數個方式表示該設計。第一,如在模擬中有用的,硬件可以使用硬件描述語言(hdl)或另一功能描述語言來表示。此外,具有邏輯和/或晶體管門的電路級模型可以在設計過程的一些階段處產生。另外,大多數設計在某個階段處達到表示硬件模型中的各種設備的物理放置的數據級別。在其中使用常規的半導體制造技術的情況中,表示硬件模型的數據可以是指定針對用于產生集成電路的掩模的不同掩模層上的各種特征的存在或不存在的數據。在一些實現方式中,這樣的數據可以以數據庫文件格式來存儲,諸如圖形數據系統ii(gdsii)、開放原圖系統互換標準(oasis)或類似格式。
在一些實現方式中,除其它示例之外,基于軟件的硬件模型和hdl以及其它功能描述語言對象尤其可以包括寄存器傳輸語言(rtl)文件。這樣的對象可以是機器可解析的,使得設計工具可以接受hdl對象(或模型),針對所描述的硬件的屬性而解析hdl對象,并且從對象確定物理電路和/或片上布局。設計工具的輸出可以用于制造物理設備。例如,設計工具可以從hdl對象確定各種硬件和/或固件元件的配置,除將被實現以便實現在hdl對象中建模的系統的其它屬性之外,尤其諸如總線寬度、寄存器(包括大小和類型)、存儲器塊、物理鏈路路徑、結構拓撲。設計工具可以包括用于確定片上系統(soc)和其它硬件設備的拓撲和結構配置的工具。在一些實例中,hdl對象可以用作用于開發模型和設計文件的基礎,所述模型和設計文件可以由制造裝備用于制造所描述的硬件。實際上,hdl對象自身可以作為數據被提供到制造系統軟件以導致所描述的硬件。
在設計的任何表示中,數據可以被存儲在任何形式的機器可讀介質中。存儲器或磁性或光學存儲裝置(諸如盤)可以是存儲信息的機器可讀介質,該信息經由被調制或以其它方式生成以傳輸這樣的信息的光學或電學波來傳輸。當傳輸指示或承載代碼或設計的電學載波時,在執行電學信號的拷貝、緩沖或重傳的程度上,制作新的副本。因此,通信提供者或網絡提供者可以在有形、機器可讀介質上至少臨時地存儲制品,諸如被編碼到載波中、體現本公開的實施例的技術的信息。
如本文所使用的模塊是指硬件、軟件和/或固件的任何組合。作為示例,模塊包括硬件,諸如微控制器,其與存儲適配成由微控制器執行的代碼的非暫時性介質相關聯。因此,在一個實施例中,對模塊的引用是指硬件,其被具體地配置成識別和/或執行要在非暫時性介質上保持的代碼。另外,在另一實施例中,模塊的使用是指包括代碼的非暫時性介質,代碼被具體地適配成由微控制器執行以實行預定操作。并且如可以推斷出的,在又一實施例中,術語模塊(在該示例中)可以是指微控制器和非暫時性介質的組合。通常,被圖示為分離的模塊邊界經常變化并且潛在地重疊。例如,第一和第二模塊可以共享硬件、軟件、固件或其組合,而同時潛在地保留一些獨立的硬件、軟件或固件。在一個實施例中,術語邏輯的使用包括硬件,諸如晶體管、寄存器或其它硬件,諸如可編程邏輯設備。
在一個實施例中,短語“以(to)”或“被配置成(configuredto)”的使用是指布置、放置在一起、制造、銷售要約、導入和/或設計裝置、硬件、邏輯或元件以執行指定或確定的任務。在該示例中,沒有正在進行操作的裝置或其元件仍舊“被配置成”執行指定任務,如果其被設計、耦合和/或互連成執行所述指定任務的話。作為純粹說明性的示例,邏輯門可以在操作期間提供0或1。但是“被配置成”向時鐘提供使能信號的邏輯門不包括可以提供1或0的每一個潛在邏輯門。而是,邏輯門是以某種方式耦合的一個,其在操作期間1或0輸出啟用時鐘。要再一次指出的是,術語“被配置成”的使用不要求操作,而是聚焦于裝置、硬件和/或元件的潛伏狀態,其中在潛伏狀態中,裝置、硬件和/或元件被設計成當裝置、硬件和/或元件正在操作時執行特定任務。
另外,在一個實施例中,短語“能夠(capableof)/能夠以(to)”和或“可操作成(operableto)”的使用是指以使得能夠實現裝置、邏輯、硬件和/或元件以指定方式的使用的這樣的方式設計的某個裝置、邏輯、硬件和/或元件。如以上所指出的那樣,在一個實施例中,以、能夠以或可操作成的使用是指裝置、邏輯、硬件和/或元件的潛伏狀態,其中裝置、邏輯、硬件和/或元件沒有進行操作,但是以這樣的方式設計成使得能夠實現裝置以指定方式的使用。
如本文所使用的值包括數字、狀態、邏輯狀態或二進制邏輯狀態的任何已知表示。通常,邏輯電平、邏輯值或邏輯性值的使用還稱為1和0,其簡單地表示二進制邏輯狀態。例如,1是指高邏輯電平并且0是指低邏輯電平。在一個實施例中,存儲單元(諸如晶體管或閃存單元)可以能夠保持單個邏輯值或多個邏輯值。然而,已經使用計算機系統中的值的其它表示。例如,十進制數十還可以表示為二進制值1010和十六進制字母a。因此,值包括能夠在計算機系統中保持的信息的任何表示。
而且,狀態可以通過值或值的部分來表示。作為示例,第一值(諸如邏輯一)可以表示默認或初始狀態,而第二值(諸如邏輯零)可以表示非默認狀態。此外,在一個實施例中,術語復位和置位分別是指默認和經更新的值或狀態。例如,默認值潛在地包括高邏輯值,即復位,而經更新的值潛在地包括低邏輯值,即置位。要指出的是,值的任何組合可以用于表示任何數目的狀態。
以上闡述的方法、硬件、軟件、固件或代碼的實施例可以經由由處理元件可執行的指令或代碼來實現,所述指令或代碼被存儲在機器可訪問、機器可讀、計算機可訪問或計算機可讀介質上。非暫時性機器可訪問/可讀介質包括以可由機器(諸如計算機或電子系統)可讀的形式提供(即存儲和/或傳輸)信息的任何機構。例如,非暫時性機器可訪問介質包括隨機存取存儲器(ram),諸如靜態ram(sram)或動態ram(dram);rom;磁性或光學存儲介質;閃速存儲器設備;電學存儲設備;光學存儲設備;聲學存儲設備;其它形式的存儲設備,其用于保持從暫時性(傳播)信號(例如載波、紅外信號、數字信號)接收的信息;等,所述暫時性信號要從可以從其接收信息的非暫時性介質區分開。
用于編程邏輯以執行本公開的實施例的指令可以被存儲在系統中的存儲器內,諸如dram、高速緩存、閃速存儲器或其它存儲裝置。另外,指令可以經由網絡或通過其它計算機可讀介質的方式分發。因此機器可讀介質可以包括用于以由機器(例如計算機)可讀的形式存儲或傳輸信息的任何機構,但是不限于軟盤、光盤、壓縮盤、只讀存儲器(cd-rom)和磁光盤、只讀存儲器(rom)、隨機存取存儲器(ram)、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、磁卡或光卡、閃速存儲器,或使用在通過因特網經由電學、光學、聲學或其它形式的傳播信號(例如載波、紅外信號、數字信號等)傳輸信息中的有形、機器可讀存儲裝置。相應地,計算機可讀介質包括適合于以由機器(例如計算機)可讀的形式存儲或傳輸電子指令或信息的任何類型的有形機器可讀介質。
一個或多個實施例可以提供一種裝置、系統、機器可讀存儲裝置、機器可讀介質、基于硬件和/或軟件的邏輯、方法和非暫時性機器可讀介質(包括表示結構的信息,所述結構在被制造時配置)以包括至少一個可調諧復制電路,可調節復制電路與一個或多個鏈路相關聯,以及片上網絡的路由器。所述路由器要訪問與所述至少一個可調諧復制電路中的一個或多個相關聯的延遲信息并且基于延遲信息在片上網絡中對數據進行路由。
在至少一個示例中,所述裝置是處理器。
在至少一個示例中,所述數據要包括分組數據。
在至少一個示例中,所述數據要包括針對電路交換信道的基于分組的保留請求。
在至少一個示例中,所述路由器還要通過利用將片上網絡的帶寬考慮在內的路由算法來基于延遲信息而對數據進行路由。
在至少一個示例中,所述路由器還要通過利用將片上網絡的等待時間考慮在內的路由算法來基于延遲信息而對數據進行路由。
在至少一個示例中,所述路由器還要通過利用將片上網絡的能量效率考慮在內的路由算法來基于延遲信息而對數據進行路由。
在至少一個示例中,所述路由器要通過選擇用于數據的下一鏈路來對數據進行路由。
在至少一個示例中,所述路由器要通過選擇去到數據的目的地的多個鏈路來對數據進行路由。
在至少一個示例中,所述可調諧復制電路要追蹤與可調諧復制電路相關聯的所述一個或多個鏈路的老化相關延遲。
在至少一個示例中,周期性地測試通過可調諧復制電路的延遲以追蹤通過與可調諧復制電路相關聯的所述一個或多個鏈路的延遲。
在至少一個示例中,還包括可調諧復制電路控制器以從所述至少一個可調諧復制電路獲得延遲信息。
在至少一個示例中,可調諧復制電路包括多個延遲組件,所述多個延遲組件要提供通過可調諧復制電路的可調節延遲。
一個或多個實施例可以提供一種裝置、系統、機器可讀存儲裝置、機器可讀介質、基于硬件和/或軟件的邏輯(例如片上網絡的路由器)、方法和非暫時性機器可讀介質(包括表示結構的信息,所述結構在被制造時配置)以接收與片上網絡的多個鏈路相關聯的延遲信息并且基于延遲信息而確定數據路徑的至少一個鏈路。
在至少一個示例中,所述延遲信息是從多個可調諧復制電路獲得的,可調諧復制電路追蹤通過所述多個鏈路中的一個或多個的延遲。
在至少一個示例中,所述延遲信息指示所述多個鏈路之間的相對延遲。
在至少一個示例中,所述至少一個鏈路包括從片上網絡的路由器到片上網絡的另一路由器的鏈路。
在至少一個示例中,所述至少一個鏈路包括從片上網絡的路由器到耦合至要被路由的數據的目的地的路由器的多個鏈路。
在至少一個示例中,要周期性地更新與所述多個鏈路相關聯的延遲信息。
一個或多個實施例可以提供一種裝置、系統、機器可讀存儲裝置、機器可讀介質、基于硬件和/或軟件的邏輯、方法和非暫時性機器可讀介質(包括表示結構的信息,所述結構在被制造時配置)以包括多個核,核要與片上網絡的路由器相關聯,以及多個鏈路,鏈路將片上網絡的路由器耦合到片上網絡的另一路由器;多個可調諧復制電路,可調諧復制電路要與所述多個鏈路中的一個或多個相關聯;以及可調諧復制電路控制器,其從所述多個可調諧復制電路收集延遲信息。片上網絡的路由器要接收數據并且基于由可調諧復制電路控制器收集的延遲信息的至少一部分而確定通過其發送數據的鏈路中的一個或多個。
遍及本說明書對“一個實施例”或“實施例”的引用意味著,結合實施例描述的特定特征、結構或特性被包括在本公開的至少一個實施例中。因此,短語“在一個實施例中”或“在實施例中”在遍及本說明書的各種地方中的出現不一定都是指相同的實施例。另外,特定特征、結構或特性可以以任何合適的方式組合在一個或多個實施例中。
在前述說明書中,已經參照具體示例性實施例給出了詳細描述。然而,將明顯的是,可以在不脫離如在隨附權利要求中闡述的本公開的更寬泛的精神和范圍的情況下對其作出各種修改和改變。說明書和附圖相應地要以說明性含義而不是約束性含義來對待。另外,實施例和其它示例性語言的前述使用不一定是指相同的實施例或相同的示例,而是可以是指不同且有區別的實施例,以及潛在地相同的實施例。