相關(guān)申請的交叉引用
本申請要求2014年12月17日提交的題為“pipelinedhybridpacket/circuit-switchednetwork-on-chip”的美國非臨時專利申請?zhí)?4/574,189的權(quán)益和優(yōu)先權(quán),所述美國非臨時專利申請被通過引用整體地并入本文中。
本公開一般地涉及計算機開發(fā)領(lǐng)域,并且更具體地涉及流水線化(pipelined)混合分組/電路交換片上網(wǎng)絡(luò)(noc)。
背景技術(shù):
隨著在多核處理器中核和知識產(chǎn)權(quán)(ip)塊的數(shù)目增加,用于核之間的管芯上通信的片上網(wǎng)絡(luò)(noc)在使能可擴展性能中是重要的。在這樣的實例中,組件之間的通信變成關(guān)鍵功率和性能限制器。noc使得能夠高效地共享片上布線資源,用于與路由器的通信以控制和仲裁通信組件之間的數(shù)據(jù)的流動。混合分組/電路交換noc使能分組交換的高的吞吐量和利用,其中能量效率接近電路交換數(shù)據(jù)傳播。
附圖說明
圖1圖示了根據(jù)某些實施例的包括多核處理器的示例計算系統(tǒng)的框圖。
圖2圖示了根據(jù)某些實施例的包括包含多個路由器的片上網(wǎng)絡(luò)(noc)系統(tǒng)的處理器的框圖。
圖3a圖示了根據(jù)某些實施例的用于同步混合分組/電路交換noc的示例系統(tǒng)中的示例通信。
圖3b圖示了根據(jù)某些實施例的用于同步混合分組/電路交換noc的具有流水線化電路交換控制和數(shù)據(jù)信道的示例系統(tǒng)。
圖4a圖示了根據(jù)某些實施例的用于源同步混合分組/電路交換noc的示例系統(tǒng)中的示例通信。
圖4b圖示了根據(jù)某些實施例的用于源同步混合分組/電路交換noc的具有流水線化電路交換控制和數(shù)據(jù)信道的示例系統(tǒng)。
圖5a圖示了根據(jù)某些實施例的noc中的流水線級的示例配置。
圖5b圖示了根據(jù)某些實施例的noc中的流水線級的另一個示例配置。
圖6圖示了根據(jù)某些實施例的用于在流水線化同步混合分組/電路交換noc中通信的示例方法。
圖7圖示了根據(jù)某些實施例的用于在流水線化源同步混合分組/電路交換noc中通信的示例方法。
圖8圖示了根據(jù)某些實施例的示例計算系統(tǒng)的另一個框圖。
在各種圖中同樣的參考號碼和名稱指示同樣的元件。
具體實施方式
在下面的描述中,闡述了許多特定細節(jié),諸如特定類型的處理器和系統(tǒng)配置、特定硬件結(jié)構(gòu)、特定架構(gòu)和微架構(gòu)細節(jié)、特定寄存器配置、特定指令類型、特定系統(tǒng)組件、特定測量/高度、特定處理器流水線級和操作等的示例,以便提供對本公開的透徹理解。然而,將對本領(lǐng)域技術(shù)人員顯而易見的是:不需要采用這些特定細節(jié)來實踐本公開。在其它實例中,沒有詳細描述公知的組件或方法,諸如特定和替代處理器架構(gòu)、用于所描述的算法的特定邏輯電路/代碼、特定固件代碼、特定互連操作、特定邏輯配置、特定制造技術(shù)和材料、特定編譯器實現(xiàn)、用代碼的算法的特定表達、特定掉電和門控技術(shù)/邏輯以及計算機系統(tǒng)的其它特定操作細節(jié),以便避免不必要地模糊本公開。
雖然可以參考諸如在計算平臺或微處理器中的特定集成電路中的能量節(jié)約和能量效率來描述下面的實施例,但是其它實施例可適用于其它類型的集成電路和邏輯器件。本文中描述的實施例的類似技術(shù)和教導(dǎo)可應(yīng)用于也可能得益于更好的能量效率和能量節(jié)約的其它類型的電路或半導(dǎo)體器件。例如,公開的實施例不限于臺式計算機系統(tǒng)或ultrabookstm,而且可以用在其它設(shè)備中,諸如服務(wù)器計算機系統(tǒng)、手持設(shè)備、平板電腦、其它薄筆記本電腦、片上系統(tǒng)(soc)設(shè)備和嵌入式應(yīng)用。手持設(shè)備的一些示例包括蜂窩電話、因特網(wǎng)協(xié)議設(shè)備、數(shù)碼相機、個人數(shù)字助理(pda)和手持pc。嵌入式應(yīng)用典型地包括微控制器、數(shù)字信號處理器(dsp)、片上系統(tǒng)、網(wǎng)絡(luò)計算機(netpc)、機頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(wan)交換機或者可以執(zhí)行以下教導(dǎo)的功能和操作的任何其它系統(tǒng)。此外,本文中描述的裝置、方法和系統(tǒng)不限于物理計算設(shè)備,而且可能涉及用于能量節(jié)約和效率的軟件優(yōu)化。如將在以下描述中容易地變得顯而易見的,本文中描述的方法、裝置和系統(tǒng)的實施例(無論是關(guān)于硬件、固件、軟件還是其組合)對與性能考慮平衡的“綠色技術(shù)”未來至關(guān)重要。
隨著計算系統(tǒng)進步,其中的組件變得更加復(fù)雜。因此,在組件之間耦合和通信的互連架構(gòu)也在復(fù)雜性方面增加,以確保滿足最佳組件操作的帶寬要求。此外,不同的市場部分需要互連架構(gòu)的不同方面,以適應(yīng)市場的需求。例如,服務(wù)器要求較高的性能,而移動生態(tài)系統(tǒng)有時能夠為了功率節(jié)省而犧牲整體性能。然而,大多數(shù)構(gòu)造(fabric)的單一目的是在最大的功率節(jié)省的情況下提供最高的可能性能。以下討論許多互連,其將可能得益于本文中描述的公開的各方面。
參考圖1,描繪了包括多核處理器的計算系統(tǒng)的框圖的實施例。處理器100包括任何處理器或處理設(shè)備,諸如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器、手持處理器、應(yīng)用處理器、協(xié)處理器、片上系統(tǒng)(soc)或執(zhí)行代碼的其它設(shè)備。在一個實施例中,處理器100包括至少兩個核——核101和102,其可包括不對稱核或?qū)ΨQ核(圖示的實施例)。然而,處理器100可包括可能對稱或不對稱的任何數(shù)目的處理元件。
在一個實施例中,處理元件指的是支持軟件線程的硬件或邏輯。硬件處理元件的示例包括:線程單元、線程槽(slot)、線程、過程單元、上下文(context)、上下文單元、邏輯處理器、硬件線程、核和/或任何其它元件,其能夠為處理器保持諸如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)之類的狀態(tài)。換言之,在一個實施例中,處理元件指的是能夠獨立地與代碼相關(guān)聯(lián)的任何硬件,諸如軟件線程、操作系統(tǒng)、應(yīng)用或其它代碼。物理處理器(或處理器插座)典型地指的是集成電路,其可能包括任何數(shù)目的其它處理元件,諸如核或硬件線程。
核常常指的是位于能夠維持獨立的架構(gòu)狀態(tài)的集成電路上的邏輯,其中每個獨立地維持的架構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相關(guān)聯(lián)。與核形成對照,硬件線程典型地指的是位于能夠維持獨立的架構(gòu)狀態(tài)的集成電路上的任何邏輯,其中獨立地維持的架構(gòu)狀態(tài)共享對執(zhí)行資源的訪問。如可以看到的,當(dāng)某些資源被共享并且其它資源專用于架構(gòu)狀態(tài)時,硬件線程與核的命名之間的線重疊。然而,常常操作系統(tǒng)將核和硬件線程視為單獨的邏輯處理器,其中操作系統(tǒng)能夠在每個邏輯處理器上單獨地調(diào)度操作。
如圖1中所圖示的物理處理器100包括兩個核——核101和102。這里,核101和102被認為是對稱核,即具有相同配置、功能單元和/或邏輯的核。在另一個實施例中,核101包括無序處理器核,而核102包括有序處理器核。然而,核101和102可單獨地選自任何類型的核,諸如原生(native)核、經(jīng)軟件管理的核、適配成執(zhí)行原生指令集架構(gòu)(isa)的核、適配成執(zhí)行經(jīng)翻譯的指令集架構(gòu)(isa)的核、共同設(shè)計的核或其它已知的核。在異構(gòu)核環(huán)境(即非對稱核)中,諸如二進制翻譯之類的某個形式的翻譯可用于在一個或兩個核上調(diào)度或執(zhí)行代碼。然而為了推動討論,以下進一步詳細描述在核101中圖示的功能單元,因為核102中的單元在所描繪的實施例中以類似的方式操作。
如所描繪的,核101包括兩個硬件線程101a和101b,其也可被稱為硬件線程槽101a和101b。因此,在一個實施例中,諸如操作系統(tǒng)之類的軟件實體可能將處理器100視為四個分離的處理器,即能夠同時執(zhí)行四個軟件線程的四個邏輯處理器或處理元件。如上面所提到的,第一線程與架構(gòu)狀態(tài)寄存器101a相關(guān)聯(lián),第二線程與架構(gòu)狀態(tài)寄存器101b相關(guān)聯(lián),第三線程可與架構(gòu)狀態(tài)寄存器102a相關(guān)聯(lián),并且第四線程可與架構(gòu)狀態(tài)寄存器102b相關(guān)聯(lián)。這里,架構(gòu)狀態(tài)寄存器(101a、101b、102a和102b)中的每個可被稱為如上面描述的處理元件、線程槽或線程單元。如所圖示的,在架構(gòu)狀態(tài)寄存器101b中復(fù)制架構(gòu)狀態(tài)寄存器101a,因此單獨的架構(gòu)狀態(tài)/上下文能夠被存儲以用于邏輯處理器101a和邏輯處理器101b。在核101中,也可復(fù)制其它較小的資源以用于線程101a和101b,所述資源諸如在分配器和重新命名塊130中的指令指針和重命名邏輯??赏ㄟ^分區(qū)共享一些資源,諸如重排序/引退單元135中的重排序緩沖器、iltb120、加載/存儲緩沖器和隊列??赡芡耆蚕砥渌Y源,諸如通用內(nèi)部寄存器、(一個或多個)頁表基址寄存器、低級數(shù)據(jù)高速緩存和數(shù)據(jù)-tlb115、(一個或多個)執(zhí)行單元140以及無序單元135的部分。
處理器100常常包括可被完全共享、通過分區(qū)共享或由處理元件專用/專用于處理元件的其它資源。在圖1中,圖示了具有處理器的說明性邏輯單元/資源的純粹示例性處理器的實施例。注意:處理器可包括或省略這些功能單元中的任何,以及包括未描繪的任何其它已知的功能單元、邏輯或固件。如所圖示的,核101包括簡化的、代表性的無序(ooo)處理器核。但是,可在不同的實施例中使用有序處理器。ooo核包括預(yù)測將執(zhí)行/采取的分支的分支目標(biāo)緩沖器120,以及存儲針對指令的地址翻譯條目的指令翻譯緩沖器(i-tlb)120。
核101進一步包括耦合到取出單元120以解碼取出的元素的解碼模塊125。在一個實施例中,取出邏輯包括分別與線程槽101a、101b相關(guān)聯(lián)的單獨的定序器。通常核101與第一isa相關(guān)聯(lián),第一isa定義/指定在處理器100上可執(zhí)行的指令。是第一isa的部分的機器代碼指令常常包括指令的一部分(被稱為操作碼),該部分引用/指定將執(zhí)行的指令或操作。解碼邏輯125包括電路,該電路從其操作碼識別這些指令并在流水線中傳遞解碼的指令以用于如由第一isa定義的處理。例如,如以下更詳細地討論的,在一個實施例中,解碼器125包括被設(shè)計或適配成識別諸如事務(wù)性指令之類的特定指令的邏輯。由于由解碼器125識別,架構(gòu)或核101采取特定的預(yù)定義動作以執(zhí)行與適當(dāng)?shù)闹噶钕嚓P(guān)聯(lián)的任務(wù)。重要的是注意:可響應(yīng)于單個或多個指令來執(zhí)行本文中描述的任務(wù)、塊、操作和方法中的任何;其中的一些可以是新的或舊的指令。注意:在一個實施例中,解碼器126識別相同的isa(或其子集)。替代地,在異構(gòu)核環(huán)境中,解碼器126識別第二isa(或者第一isa的子集或者不同的isa)。
在一個示例中,分配器和重命名塊130包括用以保留資源的分配器,所述資源諸如用以存儲指令處理結(jié)果的寄存器文件。然而,線程101a和101b可能能夠無序執(zhí)行,其中分配器和重命名塊130還保留其它資源,諸如用以跟蹤指令結(jié)果的重排序緩沖器。單元130還可包括寄存器重命名器,以將程序/指令參考寄存器重命名成處理器100內(nèi)部的其它寄存器。重排序/引退單元135包括諸如以上提及的重排序緩沖器、加載緩沖器和存儲緩沖器之類的組件,以支持無序執(zhí)行以及無序執(zhí)行的指令的稍后有序引退。
在一個實施例中,(一個或多個)調(diào)度器和執(zhí)行單元塊140包括調(diào)度器單元,以調(diào)度執(zhí)行單元上的指令/操作。例如,在具有可用浮點執(zhí)行單元的執(zhí)行單元的端口上調(diào)度浮點指令。還包括與執(zhí)行單元相關(guān)聯(lián)的寄存器文件以存儲信息指令處理結(jié)果。示例性執(zhí)行單元包括浮點執(zhí)行單元、整數(shù)執(zhí)行單元、跳轉(zhuǎn)執(zhí)行單元、加載執(zhí)行單元、存儲執(zhí)行單元和其它已知的執(zhí)行單元。
較低級數(shù)據(jù)高速緩存和數(shù)據(jù)翻譯緩沖器(d-tlb)150耦合到(一個或多個)執(zhí)行單元140。數(shù)據(jù)高速緩存將存儲最近使用/操作的元素,諸如數(shù)據(jù)操作數(shù),其可能被以存儲器一致性狀態(tài)保持。d-tlb將存儲最近的虛擬/線性到物理的地址翻譯。作為特定示例,處理器可包括頁表結(jié)構(gòu)以將物理存儲器分解成多個虛擬頁面。
這里,核101和102共享對較高級或較遠離的高速緩存的訪問,諸如與片上接口110相關(guān)聯(lián)的二級高速緩存。注意:較高級或較遠離指的是增加或變得進一步遠離(一個或多個)執(zhí)行單元的高速緩存級。在一個實施例中,較高級高速緩存是最后一級數(shù)據(jù)高速緩存——處理器100上的存儲器層級中的最后一個高速緩存——諸如第二或第三級數(shù)據(jù)高速緩存。然而,較高級高速緩存不被如此限制,因為它可與指令高速緩存相關(guān)聯(lián)或包括指令高速緩存。跟蹤高速緩存——一個類型的指令高速緩存——反而可耦合在解碼器125之后以存儲最近解碼的跟蹤。這里,指令可能指的是可解碼成許多微指令(微操作)的宏指令(即由解碼器識別的通用指令)。
在所描繪的配置中,處理器100還包括片上接口模塊110。歷史上,以下更詳細描述的存儲器控??制器已被包括在處理器100外部的計算系統(tǒng)中。在該場景中,片上接口11將與處理器100外部的設(shè)備通信,所述設(shè)備諸如系統(tǒng)存儲器175、芯片組(常常包括存儲器控??制器集線器以連接到存儲器175,以及i/o控制器集線器以連接外圍設(shè)備)、存儲器控制器集線器、北橋或其它集成電路。并且在該場景中,總線105可包括任何已知的互連,諸如多點總線、點到點互連、串行互連、并行總線、相干(例如高速緩存相干)總線、分層協(xié)議架構(gòu)、差分總線和gtl總線。
存儲器175可專用于處理器100或與系統(tǒng)中的其它設(shè)備共享。存儲器175的類型的常見示例包括dram、sram、非易失性存儲器(nv存儲器)和其它已知的存儲設(shè)備。注意:設(shè)備180可包括圖形加速器、耦合到存儲器控制器集線器的處理器或卡、耦合到i/o控制器集線器的數(shù)據(jù)貯存器、無線收發(fā)器、閃存設(shè)備、音頻控制器、網(wǎng)絡(luò)控制器或其它已知的設(shè)備。
然而最近,隨著更多的邏輯或設(shè)備集成在諸如soc之類的單個管芯上,這些設(shè)備中的每個可合并在處理器上。例如在一個實施例中,存儲器控制器集線器在與處理器100相同的封裝和/或管芯上。這里,核的一部分(核上部分)110包括用于與諸如存儲器175或圖形設(shè)備180之類的其它設(shè)備對接的一個或多個控制器。包括互連和用于與這樣的設(shè)備對接的控制器的配置常常被稱為核上(或非核配置)。作為示例,片上接口110包括用于片上通信的環(huán)形互連以及用于片外通信的高速串行點對點鏈路105。然而,在soc環(huán)境中,甚至更多設(shè)備,諸如網(wǎng)絡(luò)接口、協(xié)處理器、存儲器175、圖形處理器180和任何其它已知的計算機設(shè)備/接口,可集成在單個管芯或集成電路上,以給小的形狀因子提供高功能和低功率消耗。
在一個實施例中,處理器100能夠執(zhí)行編譯器、優(yōu)化和/或翻譯器代碼177,以編譯、翻譯和/或優(yōu)化應(yīng)用代碼176來支持本文中描述的裝置和方法或與其對接。編譯器常常包括將源文本/代碼翻譯成目標(biāo)文本/代碼的程序或程序集。通常,在多個階段或多遍中完成用編譯器編譯程序/應(yīng)用代碼,以將高級編程語言代碼變換成低級機器或匯編語言代碼。然而,單遍編譯器仍可用于簡單編譯。編譯器可利用任何已知的編譯技術(shù)并執(zhí)行任何已知的編譯器操作,諸如詞法分析、預(yù)處理、解析、語義分析、代碼生成、代碼變換和代碼優(yōu)化。
較大的編譯器常常包括多個階段,但最經(jīng)常的是這些階段被包括在兩個一般階段內(nèi):(1)前端,即一般其中可發(fā)生語法處理、語義處理和一些變換/優(yōu)化,以及(2)后端,即一般其中發(fā)生分析、變換、優(yōu)化和代碼生成。一些編譯器指的是說明編譯器的前端和后端之間的描述模糊的中間。因此,對編譯器的插入、關(guān)聯(lián)、生成或其它操作的引用可發(fā)生在前述階段或遍的任何以及編譯器的任何其它已知的階段或遍中。作為說明性示例,編譯器可能在編譯的一個或多個階段中插入操作、調(diào)用、功能等,諸如在編譯的前端階段中插入調(diào)用/操作以及然后在變換階段將調(diào)用/操作變換成較低級代碼。注意:在動態(tài)編譯期間,編譯器代碼或動態(tài)優(yōu)化代碼可插入這樣的操作/調(diào)用,以及在運行時間期間優(yōu)化用于執(zhí)行的代碼。作為特定的說明性示例,可在運行時間期間動態(tài)優(yōu)化二進制代碼(已編譯的代碼)。這里,程序代碼可包括動態(tài)優(yōu)化代碼、二進制代碼或其組合。
類似于編譯器,諸如二進制翻譯器之類的翻譯器或者靜態(tài)地或者動態(tài)地翻譯代碼以優(yōu)化和/或翻譯代碼。因此,對代碼、應(yīng)用代碼、程序代碼或其它軟件環(huán)境的執(zhí)行的引用可能指的是:(1)(一個或多個)編譯器程序、優(yōu)化代碼優(yōu)化器或翻譯器或者動態(tài)地或者靜態(tài)地的執(zhí)行,以編譯程序代碼,以維持軟件結(jié)構(gòu),以執(zhí)行其它操作,以優(yōu)化代碼,或以翻譯代碼;(2)包括操作/調(diào)用的主程序代碼的執(zhí)行,所述主程序代碼諸如已經(jīng)被優(yōu)化/編譯的應(yīng)用程序代碼;(3)與主程序代碼相關(guān)聯(lián)的諸如庫之類的其它程序代碼的執(zhí)行,以維持軟件結(jié)構(gòu),以執(zhí)行其它軟件相關(guān)操作,或以優(yōu)化代碼;或者(4)其組合。
圖2圖示了根據(jù)某些實施例的包括包含多個路由器204的noc系統(tǒng)的處理器200的框圖。處理器200可包括任何處理器或處理設(shè)備,諸如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器、手持處理器、應(yīng)用處理器、協(xié)處理器、soc或用以執(zhí)行代碼的其它設(shè)備。在特定實施例中,在單個管芯上實現(xiàn)處理器200。
在所描繪的實施例中,處理器200包括布置在網(wǎng)格網(wǎng)絡(luò)中并利用雙向鏈路彼此耦合的多個網(wǎng)絡(luò)元件202。然而,根據(jù)本公開的各種實施例的noc可應(yīng)用于任何合適的網(wǎng)絡(luò)拓撲(例如分層網(wǎng)絡(luò)或環(huán)形網(wǎng)絡(luò))、大小、總線寬度和過程。每個網(wǎng)絡(luò)元件202包括路由器204。路由器204可在諸如分組交換網(wǎng)絡(luò)和/或電路交換網(wǎng)絡(luò)之類的網(wǎng)絡(luò)中與彼此通信地鏈接,從而使能連接到路由器的noc的組件(諸如核、存儲元件或其它邏輯塊)之間的通信。在所描繪的實施例中,每個路由器204可通信地耦合到其自己的核208(或其它邏輯塊)。如本文所使用的,對核的引用也可適用于使用不同的邏輯塊來代替核??的其它實施例。例如,各種邏輯塊可包括硬件加速器(例如,圖形加速器、多媒體加速器或視頻編碼/解碼加速器)、i/o塊、存儲器控制器或其它合適的固定功能邏輯。處理器200可包括可以對稱或不對稱的任何數(shù)目的處理元件。例如,處理器200的核208可包括不對稱核或?qū)ΨQ核。處理器200可包括作為分組交換網(wǎng)絡(luò)和電路交換網(wǎng)絡(luò)中的任一個或兩者操作以提供管芯內(nèi)通信的邏輯。
在特定實施例中,可在各種路由器204之間使用分組交換網(wǎng)絡(luò)的資源傳送分組。也就是說,分組交換網(wǎng)絡(luò)可提供路由器(及其關(guān)聯(lián)的核)之間的通信。分組可包括控制部分和數(shù)據(jù)部分。控制部分可包括分組的目的地地址,并且數(shù)據(jù)部分可包含將在芯片100上傳送的特定數(shù)據(jù)。例如,控制部分可包括對應(yīng)于網(wǎng)絡(luò)元件或者管芯的核中的一個的目的地地址。分組交換網(wǎng)絡(luò)可包括緩沖,因為不保證從源到目的地的專用路徑,并且因此如果兩個或更多個分組需要遍歷(traverse)相同的鏈路或互連,則可能需要臨時停止分組。作為示例,隨著分組從源行進到目的地,可在各自的路由器的每個處(例如通過觸發(fā)器)緩沖分組。分組可由路由器204接收、傳輸和處理。分組交換網(wǎng)絡(luò)可在鄰近路由器之間使用點對點通信??稍诼酚善髦g基于諸如4ghz時鐘之類的分組時鐘來傳送分組的控制部分??稍诼酚善髦g基于諸如4ghz時鐘之類的類似時鐘來傳送分組的數(shù)據(jù)部分。
在實施例中,處理器200的路由器可被不同地提供在兩個網(wǎng)絡(luò)中,或者在兩個網(wǎng)絡(luò)中通信,所述兩個網(wǎng)絡(luò)諸如分組交換網(wǎng)絡(luò)和電路交換網(wǎng)絡(luò)。這樣的通信方法可被稱作混合分組/電路交換網(wǎng)絡(luò)。在這樣的實施例中,可使用分組交換網(wǎng)絡(luò)和電路交換網(wǎng)絡(luò)的資源在各種路由器204之間不同地傳送分組。為了傳輸單個數(shù)據(jù)分組,電路交換網(wǎng)絡(luò)可分配整個路徑,而分組交換網(wǎng)絡(luò)可僅分配單個段(或互連)。在一些實施例中,分組交換網(wǎng)絡(luò)可用于保留電路交換網(wǎng)絡(luò)的資源,用于路由器204之間的數(shù)據(jù)的傳輸。
路由器204可包括多個端口組,以不同地耦合到鄰接的網(wǎng)絡(luò)元件202并且與鄰接的網(wǎng)絡(luò)元件202通信。例如,可通過這些端口組傳送電路交換和分組交換信號。例如,可根據(jù)鄰接的網(wǎng)絡(luò)元件的方向和/或與這樣的元件的業(yè)務(wù)交流(exchange)的方向來邏輯上劃分路由器204的端口組。例如,路由器204可包括具有輸入(“輸入(in)”)和輸出(“輸出(out)”)端口的北端口組,其被配置成(分別)從位于關(guān)于路由器204的“北”方向上的網(wǎng)絡(luò)元件202接收通信并向其發(fā)送通信。另外或替代地,路由器204可包括類似的端口組,以與位于南、西、東或其它方向的網(wǎng)絡(luò)元件對接。在所描繪的實施例中,路由器204被配置用于x第一、y第二路由,其中??數(shù)據(jù)首先在東/西方向上、并且然后在北/南方向上移動。在其它實施例中,可使用任何合適的路由方案。
在各種實施例中,路由器204進一步包括另一個端口組,該端口組包括被配置成(分別)從網(wǎng)絡(luò)的另一個代理接收并向其發(fā)送通信的輸入端口和輸出端口。在所描繪的實施例中,該端口組被示出在路由器204的中心處。在一個實施例中,這些端口用于與鄰近于路由器204、與路由器204通信或以其它方式與路由器204相關(guān)聯(lián)的邏輯的通信,該邏輯諸如“本地”核208的處理器邏輯。這里,該端口組將被稱為“核端口組”,但是在一些實現(xiàn)中它可與不同于核的邏輯對接。在另一個實施例中,該端口組用于與網(wǎng)絡(luò)元件的通信,該網(wǎng)絡(luò)元件在比路由器204的網(wǎng)絡(luò)層級高的網(wǎng)絡(luò)層級的下一級中。在一個實施例中,東和西方向鏈路在一個金屬層上,北和南方向鏈路在第二金屬層上,并且核鏈路在第三金屬層上。在實施例中,路由器204包括縱橫交換和仲裁邏輯,以提供端口間通信的路徑,諸如圖2中所示出的路徑。每個網(wǎng)絡(luò)元件中的邏輯(例如核208)可具有唯一的時鐘和/或電壓,或者可與noc的一個或多個其它組件共享時鐘和/或電壓。
純分組交換網(wǎng)絡(luò)在每個路由器中具有至少一級(stage)觸發(fā)器,導(dǎo)致顯著的功率和延遲開銷來實現(xiàn)高吞吐量。混合分組/電路交換noc將電路交換的能量效率與分組交換的較高的資源利用組合。由于源與目的地之間的數(shù)據(jù)存儲電路的消除,這些混合網(wǎng)絡(luò)內(nèi)的電路交換數(shù)據(jù)傳送是能量高效的。然而,在長距離數(shù)據(jù)傳送期間保留的電路交換信道可阻止其它傳送達長時間段,導(dǎo)致低于最佳吞吐量。本公開的各種實施例將流水線級添加到混合分組/電路交換框架內(nèi)的電路交換noc??稍诹魉€級處翻轉(zhuǎn)(flop)電路交換數(shù)據(jù)。當(dāng)數(shù)據(jù)到達流水線觸發(fā)器時,電路交換信道可接收電路交換確認信號??绱蟮膎oc放置若干信用-1流水線級用最小能量開銷將長距離傳送分解成若干短傳送。流水線級的小心放置可以以最小的能量開銷提供顯著的性能改進。流水線化級可用在同步和源同步noc兩者中。同步和源同步實現(xiàn)兩者可以用多個流水線化路由器擴展到(scaleto)較大的網(wǎng)絡(luò)。
圖3a圖示了根據(jù)某些實施例的用于同步混合分組/電路交換noc的示例系統(tǒng)300中的示例通信。同步noc可利用明確的時鐘和電平敏感的控制信號。同步分組交換noc可包括基于全局時鐘與其鄰居通信的路由器。因此,同步noc中的所有路由器以相同的頻率操作??稍谥T如處理器200之類的處理器的noc中執(zhí)行所描繪的通信。所描繪的每個路由器可具有本文中關(guān)于路由器204所描述的任何合適的特性。
在實施例中,通信包括用以配置電路交換路徑的分組交換保留請求304的交流。源邏輯308(例如,核208)可將保留請求發(fā)送到目的地邏輯312(例如,不同的核208)。保留請求304可能在其去目的地途中經(jīng)過n+1個路由器,并且保留請求304在每個路由器處被翻轉(zhuǎn)??苫谥T如2ghz時鐘之類的分組時鐘316在路由器之間傳送保留請求304。保留分組304可經(jīng)由noc的分組交換部分來傳送,并且可隨著保留分組從源向目的地行進而保留用于源邏輯308與目的地邏輯312之間的數(shù)據(jù)通信的資源。
保留分組304可包括促進電路交換信道的保留的任何合適的信息。作為示例,保留分組可包括與目的地邏輯312相關(guān)聯(lián)的地址以及可選的邊帶分組數(shù)據(jù)。當(dāng)資源可用時,基于目的地地址向下游轉(zhuǎn)發(fā)保留分組。例如,基于由給定路由器中的方向解碼器執(zhí)行的確定性路由方法(例如,x-第一、y-第二路由或表查找)或其它路由協(xié)議,沿著從源邏輯308到目的地邏輯312的路徑上轉(zhuǎn)發(fā)保留分組。在實施例中,唯一的地址可與每個核208或其它邏輯塊(并且因此在核與路由器之間存在1:1映射的情況下與路由器204)相關(guān)聯(lián)。繼而,該本地地址可用于生成對每個路由器而言本地的方向信息,以標(biāo)識用于發(fā)送信息的路由器的適當(dāng)端口。因此,目的地地址可連同路由器204的本地地址一起用于確定向哪個方向轉(zhuǎn)發(fā)傳入分組。電路使能信號可用于確定傳入分組是否正在保留電路交換路徑。如果電路使能信號未被斷言,則沒有電路交換路徑被建立,并且分組僅攜帶邊帶分組數(shù)據(jù)。
在保留分組304到達目的地邏輯312之后,電路交換確認信號320被從目的地邏輯312發(fā)送到源邏輯308。雖然未示出,但是在一些實施例(諸如利用隊列槽來存儲與保留請求相關(guān)聯(lián)的信息的那些實施例)中,也可在從目的地邏輯312向源邏輯308發(fā)送確認信號320的同時從源邏輯308向目的地邏輯312發(fā)送確認信號。確認信號320證實由保留請求304保留的電路交換路徑的配置。確認信號320在耦合到目的地邏輯312的路由器(路由器n)處、并且然后再次在耦合到源邏輯308的路由器(路由器0)處被翻轉(zhuǎn),但是以其它方式穿過網(wǎng)絡(luò)的各種路由器而不被存儲。如路由器1中所描繪的,確認信號320可穿過在路由器n和路由器0之間中的每個路由器處的多路復(fù)用邏輯328?;陧憫?yīng)于保留請求304生成的方向信息來配置在每個路由器處的多路復(fù)用邏輯328。多路復(fù)用邏輯328可動作以將路由器的輸入端口耦合到路由器的正確輸出端口,以允許確認信號320行進從目的地邏輯312到源邏輯308的正確路徑。
確認信號320由電路時鐘324鐘控。為了提高數(shù)據(jù)吞吐量,可使用不同的時鐘來同步網(wǎng)絡(luò)的分組交換和電路交換部分。分組交換請求可在分組時鐘316的每個周期內(nèi)在鄰近路由器之間行進,而電路交換數(shù)據(jù)可在電路時鐘324的單個周期中跨整個網(wǎng)絡(luò)行進。相應(yīng)地,網(wǎng)絡(luò)的分組交換部分可用比網(wǎng)絡(luò)的電路交換部分高的頻率時鐘操作。在特定實施例中,分組時鐘316以2ghz的頻率操作,而電路時鐘324以500mhz的頻率操作,但是任何合適的頻率可用于這些時鐘。
在確認信號320由源邏輯308接收之后,電路交換數(shù)據(jù)332被從源邏輯308發(fā)送到目的地邏輯312。數(shù)據(jù)332在耦合到源邏輯308的路由器(路由器0)處、并且然后再次在耦合到目的地邏輯312的路由器(路由器n)處被翻轉(zhuǎn),但是以其它方式穿過網(wǎng)絡(luò)的各種路由器而不被存儲。如路由器1中所描繪的,數(shù)據(jù)332可穿過在路由器0和路由器n之間中的每個路由器處的多路復(fù)用邏輯336?;陧憫?yīng)于保留請求304生成的方向信息來配置在每個路由器處的多路復(fù)用邏輯336。多路復(fù)用邏輯336可動作以將路由器的輸入端口耦合到路由器的正確輸出端口,以允許數(shù)據(jù)332行進從源邏輯308到目的地邏輯312的正確路徑。數(shù)據(jù)332的傳輸由電路時鐘324鐘控。
在各種實施例中,電路交換數(shù)據(jù)傳輸可正與針對一個或多個未來傳輸?shù)拇_認的交流同時發(fā)生和/或與針對要配置的電路交換路徑的一個或多個分組交換請求的交流同時發(fā)生。相應(yīng)地,參與電路交換交流的路由器可通過確定和存儲用于未來數(shù)據(jù)傳輸?shù)穆酚煞较蚨鵀槲磥黼娐方粨Q路徑配置作準(zhǔn)備。
圖3b圖示了根據(jù)某些實施例的用于同步混合分組/電路交換noc的具有流水線化電路交換控制和數(shù)據(jù)信道的示例系統(tǒng)350。在所描繪的實施例中,在路由器n處的電路交換信道的中間插入流水線級。如在非流水線化系統(tǒng)中,分組交換請求304從源邏輯308傳播到目的地邏輯312,沿著路徑保留電路交換信道。然而,在流水線化實施例中,請求分組一經(jīng)過該點,電路交換確認信號320a就從中間的流水線邊界向后傳播到源邏輯308。確認信號可(例如經(jīng)由觸發(fā)器340)存儲在路由器n處,并且然后再次存儲在路由器0處,同時穿過任何其它中間路由器的多路復(fù)用邏輯328而不被存儲。雖然未示出,但是在一些實施例(諸如利用隊列槽來存儲與保留請求相關(guān)聯(lián)的信息的那些實施例)中,也可在從流水線級向源邏輯308發(fā)送確認信號320a的同時從源邏輯308向流水線級(例如路由器n)發(fā)送確認信號。當(dāng)確認信號320a已經(jīng)到達源邏輯308時,電路交換數(shù)據(jù)信號332a可被傳輸?shù)街虚g流水線級(一旦用于源邏輯308與流水線級之間的電路交換信道的資源是可用的),其中它被存儲在一組觸發(fā)器348中,同時等要要接收的附加電路交換確認信號320b。當(dāng)請求分組304到達目的地邏輯312時,附加確認信號320b從目的地邏輯312向后傳播到流水線級,其中來自路由器n+1的多路復(fù)用邏輯344的控制信號使得觸發(fā)器組348提供一旦電路交換信道資源可用就要沿著路徑的第二半傳輸?shù)侥康牡剡壿?12的電路交換數(shù)據(jù)信號332b(其具有與332a相同的內(nèi)容,但是在時間上稍后被發(fā)送)。雖然未示出,但是在一些實施例(諸如利用隊列槽來存儲與保留請求相關(guān)聯(lián)的信息的那些實施例)中,也可在發(fā)送確認信號320b的同時從流水線級向目的地邏輯312發(fā)送確認信號。然而,如果流水線級還沒有接收到電路交換數(shù)據(jù)332a,則從流水線級發(fā)送的確認可被推遲,直到數(shù)據(jù)332a在流水線級處被接收。在這樣的實施例中,電路時鐘324周期可能縮短到原始的一半,提高了網(wǎng)絡(luò)吞吐量。雖然描繪的實施例示出了單個流水線級,但是任何合適數(shù)目的流水線級可用在noc中,并且可被放在任何合適的位置。
圖4a圖示了根據(jù)某些實施例的用于源同步混合分組/電路交換noc的示例系統(tǒng)400中的示例通信。在源同步noc中,連同數(shù)據(jù)一起轉(zhuǎn)發(fā)的控制信號轉(zhuǎn)變充當(dāng)時鐘信號,因此消除對完全同步時鐘的需要。例如,在實施例中,實現(xiàn)兩個前向控制信號(流信號和尾信號),兩者都指定數(shù)據(jù)傳送。流信號指示電路數(shù)據(jù)與(作為附加段的)隨后的更多數(shù)據(jù)的傳送,并且因此為(一個或多個段的)完整的電路數(shù)據(jù)傳送保持電路信道打開,并且尾信號指示電路數(shù)據(jù)傳送的結(jié)束。通過在每個路由器處去除對同步fifo的需要,源同步技術(shù)促進多時鐘設(shè)計(其中與不同的路由器相關(guān)聯(lián)的核可以不同的頻率操作)。
在實施例中,通信包括交流分組交換保留請求404以配置電路交換路徑。源邏輯408(例如,核208)可將保留請求發(fā)送到目的地邏輯412(例如,不同的核208)。保留請求404可能在其去目的地的途中經(jīng)過n+1個路由器,并且保留請求404在每個路由器處被翻轉(zhuǎn)。保留分組404可經(jīng)由noc的分組交換部分來傳送,并且可隨著保留分組從源行進到目的地而保留用于源邏輯408與目的地邏輯412之間的數(shù)據(jù)通信的資源。
保留分組404可包括促進電路交換信道的保留的任何合適的信息。作為示例,保留分組可包括與目的地邏輯412相關(guān)聯(lián)的地址以及可選的邊帶分組數(shù)據(jù)。當(dāng)資源可用時,基于目的地地址向下游轉(zhuǎn)發(fā)保留分組。例如,基于由給定路由器中的方向解碼器執(zhí)行的確定性路由方法(例如,x-第一、y第二路由或表查找)或其它路由協(xié)議,沿著從源邏輯408到目的地邏輯412的路徑上轉(zhuǎn)發(fā)保留分組。在實施例中,唯一的地址可與每個核208或其它邏輯塊(并且因此在核與路由器之間存在1:1映射的情況下與路由器204)相關(guān)聯(lián)。繼而,該本地地址可用于生成對每個路由器而言本地的方向信息,以標(biāo)識用于發(fā)送信息的路由器的適當(dāng)端口。因此,目的地地址可連同路由器204的本地地址一起用于確定向哪個方向轉(zhuǎn)發(fā)傳入分組。電路使能信號可用于確定傳入分組是否保留電路交換路徑。如果電路使能信號未被斷言,則沒有電路交換路徑被建立,并且分組僅攜帶邊帶分組數(shù)據(jù)。
在保留分組404到達目的地邏輯412之后,電路交換數(shù)據(jù)432被從源邏輯408發(fā)送到目的地邏輯412。在一些實施例中,電路交換數(shù)據(jù)的傳送可在保留請求到達流水線級之前開始,但是電路交換信道僅被配置直到已經(jīng)處理分組交換請求的最后一個路由器。因此,直到在分組交換請求已經(jīng)到達流水線級之后,將才在流水線級處接收電路交換數(shù)據(jù)。數(shù)據(jù)432在源邏輯408處、并且然后再次在目的地邏輯412處被翻轉(zhuǎn),但是穿過網(wǎng)絡(luò)的各種路由器而不被存儲。如路由器0中所描繪的,數(shù)據(jù)432可穿過每個路由器處的多路復(fù)用邏輯436?;陧憫?yīng)于保留請求404生成的方向信息來配置在每個路由器處的多路復(fù)用邏輯436。多路復(fù)用邏輯436可動作以將路由器的輸入端口耦合到路由器的正確輸出端口,以允許數(shù)據(jù)432行進從源邏輯408到目的地邏輯412的正確路徑。
在電路交換數(shù)據(jù)432到達目的地邏輯412之后,電路交換確認信號420被從目的地邏輯412發(fā)送到源邏輯408。確認信號420證實電路交換數(shù)據(jù)的段的接收。在一些實施例中,可發(fā)送兩個不同的確認信號(一個響應(yīng)于流信號,并且一個響應(yīng)于尾信號),其中尾確認信號指示數(shù)據(jù)傳送的結(jié)束。確認信號420在目的地邏輯412處、并且然后再次在源邏輯408處被翻轉(zhuǎn),但是穿過網(wǎng)絡(luò)的各種路由器而不被存儲。如路由器0中所描繪的,確認信號420可穿過每個路由器處的多路復(fù)用邏輯428?;陧憫?yīng)于保留請求404生成的方向信息來配置在每個路由器處的多路復(fù)用邏輯428。多路復(fù)用邏輯428可動作以將路由器的輸入端口耦合到路由器的正確輸出端口,以允許確認信號420行進從目的地邏輯412到源邏輯408的正確路徑。在最終確認信號420從目的地邏輯412向源邏輯408行進時,其隨著其穿過每個路由器而拆除電路交換信道。
在各種實施例中,系統(tǒng)400中的電路交換數(shù)據(jù)傳輸可與針對要配置的電路交換路徑的一個或多個分組交換請求的交流同時發(fā)生。相應(yīng)地,參與電路交換交流的路由器可通過為未來數(shù)據(jù)傳輸確定和存儲路由方向而為未來電路交換路徑配置作準(zhǔn)備。
圖4b圖示了根據(jù)某些實施例的用于源同步混合分組/電路交換noc的具有流水線化電路交換控制和數(shù)據(jù)信道的示例系統(tǒng)450。在所描繪的實施例中,在路由器n處的電路交換信道的中間插入流水線級。如在非流水線化系統(tǒng)中,分組交換請求304從源邏輯308傳播到目的地邏輯312,沿著路徑保留電路交換信道。然而,在流水線化實施例中,如果資源可用于在源邏輯308與流水線邊界之間形成電路交換信道,則電路交換數(shù)據(jù)432a可在請求分組經(jīng)過流水線邊界之后開始源邏輯308到(在路由器n處的)中間的流水線邊界之間傳播。在一些情況下,電路交換數(shù)據(jù)432a的傳送可能被利用傳送數(shù)據(jù)432a所需的資源的一個或多個其它電路交換數(shù)據(jù)傳送延遲,在該情況下,一旦其它傳送完成,就將傳送電路交換數(shù)據(jù)432a。數(shù)據(jù)432a穿過在直到路由器n的每個路由器處的多路復(fù)用邏輯436而不被存儲,并且然后(例如經(jīng)由觸發(fā)器448)存儲在路由器n處。當(dāng)在路由器n處接收數(shù)據(jù)432a時,它觸發(fā)將電路交換確認信號420a從路由器n的觸發(fā)器440發(fā)送到源邏輯408。如果電路交換確認信號420a是尾確認信號,則隨著它朝著源傳播,它可拆除路由器n與源邏輯408之間的電路交換信道。否則,確認信號420a可觸發(fā)將流中的下一個電路交換數(shù)據(jù)從源邏輯408發(fā)送到路由器n。
數(shù)據(jù)432a被保持在路由器n處,直到請求分組404到達目的地邏輯412。在請求分組到達目的地邏輯412之后(一旦用于源邏輯308與流水線級之間的電路交換信道的資源可用),在(路由器n處的)中間的流水線邊界到目的地邏輯412之間傳播電路交換數(shù)據(jù)432b(其具有與432a相同的內(nèi)容,但是在時間上稍后被發(fā)送)。數(shù)據(jù)432b穿過路由器n與目的地邏輯之間的每個路由器處的多路復(fù)用邏輯436而不被存儲,直到其在目的地邏輯412處被翻轉(zhuǎn)。在目的地邏輯412處接收數(shù)據(jù)432b之后,電路交換確認信號420b被從目的地邏輯412的觸發(fā)器發(fā)送到路由器n處的流水線邊界。如果電路交換確認信號420b是尾確認信號,則隨著它朝著路由器n傳播,它可拆除目的地邏輯412與路由器n之間的電路交換信道。否則,確認信號420a可觸發(fā)將流中的下一個電路交換數(shù)據(jù)從路由器n發(fā)送到目的地邏輯412。該特定實施例針對僅在流水線路由器n中的觸發(fā)器的低功耗開銷而加倍信道的吞吐量。雖然描繪的實施例示出單個流水線級,但是任何合適數(shù)目的流水線級可用在noc中,并且可被放在任何合適的位置。
圖5a圖示了根據(jù)某些實施例的noc中的流水線級的示例配置。在所描繪的實施例中,包括一個或多個流水線化級(即,保持電路交換數(shù)據(jù)和控制信號的存儲元件)的路由器用黑色來描繪,而沒有流水線化級的路由器用白色來描繪。路由器可包括每個與路由器的端口相關(guān)聯(lián)的一個或多個流水線級。例如,路由器可包括在路由器的一個端口處的或者以其它方式與路由器的一個端口相關(guān)聯(lián)的流水線級,在路由器的另一個端口處的或者以其它方式與路由器的另一個端口相關(guān)聯(lián)的另一個流水線級,等等。在實施例中,具有流水線化級的路由器盡可能近地位于系統(tǒng)的水平中心和垂直中心。在特定實施例中,水平運行的流水線化路由器可流水線化輸送通過路由器向北和/或向南行進的電路交換數(shù)據(jù),但是不流水線化輸送通過路由器向東或向西運行的數(shù)據(jù)(以便避免流水線化輸送多次跨線運行的數(shù)據(jù))。類似地,垂直運行的流水線化路由器可流水線化輸送通過路由器向東和/或向西運行的電路交換數(shù)據(jù),但不流水線化輸送通過路由器向北或向南運行的數(shù)據(jù)。在所描繪的實施例中,水平運行的頂行的流水線化路由器可每個在路由器的南輸出端口中包括流水線級,而水平運行的底行的流水線化路由器可每個在路由器的北輸出端口中包括流水線級。以類似的方式,垂直運行的左列的流水線化路由器可每個在路由器的東輸出端口中包括流水線級,而垂直運行的右列的流水線化路由器可每個在路由器的西輸出端口中包括流水線級。使用與圖5a中所示出的類似的技術(shù),通過在8x8邊界處使用電路交換流水線化,大型16x16noc可以被劃分成四個8x8等效的noc。在特定實施例中,流水線級可被放在邊界處的路由器之間而不是路由器內(nèi)。
圖5b圖示了根據(jù)某些實施例的noc中的流水線級的另一個示例配置。在所示出的實施例中,流水線化路由器被放在跨noc的對角線中,其中對角線由三個路由器分離。在其它實施例中,對角線之間的距離可以是任何其它合適的數(shù)目的路由器。這樣的實施例確保電路交換數(shù)據(jù)在被流水線化輸送之前不比特定數(shù)目的跳行進得多(在該情況下,數(shù)據(jù)可在被流水線化輸送之前最大行進四跳)。在該實施例中,路由器可流水線化輸送通過路由器在任何方向上行進的數(shù)據(jù)。
圖5a和5b僅是noc中的流水線級的配置的示例。其它實施例可包括位于noc的任何合適位置處的流水線級。在各種實施例中,流水線級的位置是靜態(tài)的。在其它實施例中,流水線級的位置可以是動態(tài)的。例如,位于遍及noc(例如在每個路由器、每個其它路由器等中)的流水線級可具有可以打開或關(guān)閉流水線級(如果流水線級關(guān)閉,則數(shù)據(jù)可穿過路由器而不被存儲)的控制邏輯。在一些實施例中,noc可包括用以確定流水線級的最佳布置的邏輯,并且可與用于各種流水線級的控制邏輯通信,以選擇性地打開或關(guān)閉特定流水線級以實現(xiàn)最佳配置。在特定實施例中,保留分組可包括關(guān)于與保留相關(guān)聯(lián)的電路交換數(shù)據(jù)的流水線化輸送應(yīng)當(dāng)發(fā)生在何處的信息。例如,保留分組可指示電路交換數(shù)據(jù)在其應(yīng)當(dāng)被流水線化輸送之前可行進多少跳,或者保留分組可指示應(yīng)當(dāng)在其處流水線化輸送電路交換數(shù)據(jù)的特定路由器。作為另一個示例,保留分組可包括由noc的邏輯選擇的路徑,該路徑確保至少一個靜態(tài)或動態(tài)流水線級被遍歷。
圖6圖示了根據(jù)某些實施例的用于在流水線化同步混合分組/電路交換noc中通信的示例方法600。在步驟602處,將分組交換保留請求從源邏輯轉(zhuǎn)發(fā)到流水線級。保留請求可在其從源到目的地的途中穿過任何合適的數(shù)目的路由器,并且可在每個路由器處被翻轉(zhuǎn)。在保留請求到達流水線級之后,在步驟604處,將指示信道準(zhǔn)備用于電路交換數(shù)據(jù)的電路交換確認信號從流水線級發(fā)送到源邏輯。同時,在步驟610處,保留請求繼續(xù)朝著目的地邏輯。
在步驟606處,在接收確認信號之后,源邏輯將電路交換數(shù)據(jù)發(fā)送到流水線級。在步驟608處,將電路交換數(shù)據(jù)存儲在流水線級處,并且流水線級等待確認信號。在步驟612處,從目的地向流水線級發(fā)送電路交換確認。然后在步驟614處將電路交換數(shù)據(jù)從流水線級發(fā)送到目的地邏輯。
方法600可用于在任何數(shù)目的流水線級之間傳送電路交換數(shù)據(jù)。例如,如果流水線級是第一流水線級,并且目的地用第二流水線級替換,則方法將相同。保留分組將傳播直到第一流水線級,確認將被向后發(fā)送到源,并且數(shù)據(jù)將被發(fā)送到第一流水線級并被存儲。在保留請求被傳播到第二流水線級之后,確認將被向后發(fā)送到第一流水線級,并且數(shù)據(jù)將被從第一流水線級發(fā)送到第二流水線級。可針對任何數(shù)目的流水線級重復(fù)該方法,直到最后一個流水線級將數(shù)據(jù)發(fā)送到目的地邏輯。
在適當(dāng)情況下,可組合、修改或刪除圖6中圖示的步驟中的一些,并且還可將附加步驟添加到流程圖。另外,可以在不脫離特定實施例的范圍的情況下以任何合適的順序執(zhí)行步驟。
圖7圖示了根據(jù)某些實施例的用于在流水線化源同步混合分組/電路交換noc中通信的示例方法700。在步驟702處,將分組交換保留請求從源邏輯轉(zhuǎn)發(fā)到流水線級。保留請求可在其從源到目的地的途中穿過任何合適的數(shù)目的路由器,并且可在每個路由器處被翻轉(zhuǎn)。在保留請求到達流水線級之后,在步驟704處將電路交換數(shù)據(jù)從源邏輯發(fā)送到流水線級。在一些實施例中,電路交換數(shù)據(jù)的傳送可在保留請求到達流水線級之前開始,但是信道僅被配置直到已經(jīng)處理分組交換請求的最后一個路由器。因此,直到分組交換請求已經(jīng)到達流水線級之后才將在流水線級處接收電路交換數(shù)據(jù)。同時,在步驟710處,保留請求繼續(xù)朝著目的地邏輯。
在步驟706處,電路交換數(shù)據(jù)存儲在流水線級處,并且流水線級等待來自目的地邏輯的確認信號。在步驟708處,在接收數(shù)據(jù)之后,流水線級向源邏輯發(fā)送電路交換確認信號。在步驟712處,將電路交換確認信號從目的地邏輯發(fā)送到流水線級。然后在步驟714處將電路交換數(shù)據(jù)從流水線級發(fā)送到目的地邏輯。
方法700可用于通過任何合適數(shù)目的流水線級傳送電路交換數(shù)據(jù)。例如,如果流水線級是第一流水線級并且目的地用第二流水線級替換,則方法將相同。保留分組將傳播直到第一流水線級,數(shù)據(jù)將被從源發(fā)送到將存儲它的第一流水線級,并且確認將被向后發(fā)送到源。在保留請求被傳播到第二流水線級之后,數(shù)據(jù)將被從第一流水線級發(fā)送到第二流水線級并被存儲,并且確認將被向后發(fā)送到第一流水線級??舍槍θ魏螖?shù)目的流水線級重復(fù)該方法,直到最后一個流水線級將數(shù)據(jù)發(fā)送到目的地邏輯。
在適當(dāng)?shù)那闆r下,可組合、修改或刪除圖7中圖示的步驟中的一些,并且還可將附加步驟添加到流程圖。另外,可以在不脫離特定實施例的范圍的情況下以任何合適的順序執(zhí)行步驟。
圖8圖示了根據(jù)一個實施例的示例計算系統(tǒng)的框圖的另一個實施例。在該圖中,描繪了根據(jù)本公開的片上系統(tǒng)(soc)設(shè)計的實施例。作為特定的說明性示例,soc800被包括在用戶裝備(ue)中。在一個實施例中,ue指的是將由最終用戶用于通信的任何設(shè)備,諸如手持電話、智能電話、平板電腦、超薄筆記本電腦、具有寬帶適配器的筆記本電腦或者任何其它類似的通信設(shè)備。常常ue連接到基站或節(jié)點,該基站或節(jié)點事實上可能對應(yīng)于gsm網(wǎng)絡(luò)中的移動站(ms)。
這里,soc800包括2個核——806和807。類似于以上討論,核806和807可符合指令集架構(gòu),諸如基于intel?architecturecore?的處理器、advancedmicrodevice公司(amd)處理器、基于mlps的處理器、基于arm的處理器設(shè)計,或其客戶,以及它們的被許可者或采用者。核806和807耦合到與總線接口單元809和l2高速緩存810相關(guān)聯(lián)的高速緩存控制808以與系統(tǒng)800的其它部分通信。互連810包括可能實現(xiàn)所描述的公開的一個或多個方面的片上互連,諸如iosf、amba或以上討論的其它互連。
接口810提供通信信道給其它組件,諸如訂戶身份模塊(sim)830以與sim卡對接,引導(dǎo)rom835以保持用于由核806和807執(zhí)行以初始化和引導(dǎo)soc800的引導(dǎo)代碼,sdram控制器840以與外部存儲器(例如dram860)對接,閃存控制器845以與非易失性存儲器(例如閃存865)對接,外圍控制q1650(例如串行外設(shè)接口)以與外圍設(shè)備對接,視頻編解碼器820和視頻接口825以顯示和接收輸入(例如觸摸使能的輸入),gpu815以執(zhí)行圖形相關(guān)的計算等。這些接口中的任何可合并本文中描述的本公開的方面。
另外,該系統(tǒng)圖示了用于通信的外圍設(shè)備,諸如藍牙模塊870、3g調(diào)制解調(diào)器875、gps885和wifi885。注意:如以上所陳述的,ue包括用于通信的無線電設(shè)備。因此,不全部需要這些外圍通信模塊。然而,在ue中,將包括用于外部通信的某個形式的無線電設(shè)備。
設(shè)計可經(jīng)歷各種階段,從創(chuàng)建到仿真到制造。表示設(shè)計的數(shù)據(jù)可以以許多方式來表示設(shè)計。首先,如在仿真中有用的,硬件可使用硬件描述語言(hdl)或另一個功能描述語言來表示。另外,可在設(shè)計過程的一些階段產(chǎn)生具有邏輯和/或晶體管門的電路級模型。此外,大多數(shù)設(shè)計在一些階段達到表示硬件模型中的各種設(shè)備的物理放置的數(shù)據(jù)的級別。在使用常規(guī)半導(dǎo)體制造技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是為用于產(chǎn)生集成電路的掩模指定在不同掩模層上存在或不存在各種特征的數(shù)據(jù)。在一些實現(xiàn)中,可以以諸如圖形數(shù)據(jù)系統(tǒng)ii(gdsii)、開放的藝術(shù)品系統(tǒng)互換標(biāo)準(zhǔn)(oasis)或類似格式之類的數(shù)據(jù)庫文件格式存儲這樣的數(shù)據(jù)。
在一些實現(xiàn)中,除了其它示例之外,基于軟件的硬件模型以及hdl和其它功能描述語言對象還可以包括寄存器傳送語言(rtl)文件。這樣的對象可以是機器可解析的,使得設(shè)計工具可以接受hdl對象(或模型),針對所描述的硬件的屬性解析hdl對象,并且從對象確定物理電路和/或片上布局。設(shè)計工具的輸出可以用于制造物理器件。例如,除了將被實現(xiàn)以便實現(xiàn)hdl對象中建模的系統(tǒng)的其它屬性之外,設(shè)計工具還可以從hdl對象確定各種硬件和/或固件元件的配置,諸如總線寬度、寄存器(包括大小和類型)、存儲器塊、物理鏈接路徑、構(gòu)造拓撲。設(shè)計工具可以包括用于確定片上系統(tǒng)(soc)和其它硬件設(shè)備的拓撲和構(gòu)造配置的工具。在一些實例中,hdl對象可以用作用于開發(fā)模型和設(shè)計文件的基礎(chǔ),該模型和設(shè)計文件可以由制造裝備以制造所描述的硬件使用。實際上,hdl對象本身可以被提供作為輸入來制造系統(tǒng)軟件以引起所描述的硬件。
在設(shè)計的任何表示中,數(shù)據(jù)可存儲在任何形式的機器可讀介質(zhì)中。存儲器或者諸如盤之類的磁或光貯存器可以是機器可讀介質(zhì),以存儲經(jīng)由調(diào)制或以其它方式生成的光或電波傳輸?shù)男畔韨鬏斶@樣的信息。當(dāng)傳輸指示或攜帶代碼或設(shè)計的電載波到執(zhí)行電信號的復(fù)制、緩沖或重傳的程度時,進行新的復(fù)制。因此,通信提供者或網(wǎng)絡(luò)提供者可至少臨時在有形的機器可讀介質(zhì)上存儲體現(xiàn)本公開的實施例的技術(shù)的物品,諸如被編碼到載波中的信息。
如本文中使用的模塊指的是硬件、軟件和/或固件的任何組合。作為示例,模塊包括與非暫時性介質(zhì)相關(guān)聯(lián)的諸如微控制器之類的硬件,以存儲被適配成由微控制器執(zhí)行的代碼。因此,在一個實施例中,對模塊的引用指的是硬件,該硬件被具體地配置成識別和/或執(zhí)行將在非暫時性介質(zhì)上保持的代碼。此外,在另一個實施例中,模塊的使用指的是包括代碼的非暫時性介質(zhì),該代碼被具體地適配成由微控制器執(zhí)行以執(zhí)行預(yù)定操作。并且如可以推斷的,在又一個實施例中,術(shù)語模塊(在該示例中)可指的是微控制器和非暫時性介質(zhì)的組合。被圖示為通常分離的模塊邊界常常變化并且可能重疊。例如,第一和第二模塊可共享硬件、軟件、固件或其組合,同時可能保留一些獨立的硬件、軟件或固件。在一個實施例中,術(shù)語邏輯的使用包括諸如晶體管、寄存器之類的硬件,或者諸如可編程邏輯器件之類的其它硬件。
在一個實施例中,短語“以”或“被配置成”的使用指的是布置、放在一起、制造、提供以銷售、引入和/或設(shè)計裝置、硬件、邏輯或元件以執(zhí)行指定的或確定的任務(wù)。在該示例中,不正在操作的裝置或其元件仍然“被配置成”執(zhí)行指定的任務(wù),如果它被設(shè)計、耦合和/或互連以執(zhí)行所述指定的任務(wù)的話。作為純說明性示例,邏輯門在操作期間可提供0或1。但是“被配置成”向時鐘提供使能信號的邏輯門不包括可提供1或者0的每個可能的邏輯門。相反,邏輯門是以某個方式耦合的門,該方式為在操作期間1或0輸出將使能時鐘。再一次注意:術(shù)語“被配置成”的使用不要求操作,而是相反集中于裝置、硬件和/或元件的潛伏狀態(tài)上,其中在潛伏狀態(tài)中,裝置、硬件和/或元件被設(shè)計成當(dāng)裝置、硬件和/或元件正在操作時執(zhí)行特定任務(wù)。
此外,在一個實施例中,短語“能夠/以”和或“可操作以”的使用指的是以這樣的方式設(shè)計的一些裝置、邏輯、硬件和/或元件,以使得能夠以指定的方式使用裝置、邏輯、硬件和/或元件。如以上注意的,在一個實施例中,以、能夠以或可操作以的使用指的是裝置、邏輯、硬件和/或元件的潛伏狀態(tài),其中裝置、邏輯、硬件和/或元件不是正在操作,而是被以這樣的方式設(shè)計以使得能夠以指定的方式使用裝置。
如本文中使用的值包括數(shù)、狀態(tài)、邏輯狀態(tài)或二進制邏輯狀態(tài)的任何已知的表示。常常邏輯級、邏輯值(logicvalue)或邏輯值(logicalvalue)的使用也被稱為僅表示二進制邏輯狀態(tài)的1和0。例如,1指的是高邏輯電平,并且0指的是低邏輯電平。在一個實施例中,諸如晶體管或閃存單元之類的存儲單元可能能夠保持單個邏輯值或多個邏輯值。然而,已經(jīng)在計算機系統(tǒng)中使用了值的其它表示。例如十進制數(shù)10也可被表示為二進制值1010和十六進制字母a。因此,值包括能夠被保持在計算機系統(tǒng)中的信息的任何表示。
此外,狀態(tài)可由值或值的部分表示。作為示例,諸如邏輯1之類的第一值可表示默認或初始狀態(tài),而諸如邏輯0之類的第二值可表示非默認狀態(tài)。另外,在一個實施例中,術(shù)語復(fù)位和設(shè)置分別指的是默認和更新的值或狀態(tài)。例如,默認值可能包括高的合乎邏輯的值,即復(fù)位,而更新的值可能包括低的合乎邏輯的值,即設(shè)置。注意:值的任何組合可用于表示任何數(shù)目的狀態(tài)。
以上闡述的方法、硬件、軟件、固件或代碼的實施例可經(jīng)由存儲在由處理元件可執(zhí)行的機器可訪問、機器可讀、計算機可訪問或計算機可讀介質(zhì)上的指令或代碼來實現(xiàn)。非暫時性機器可訪問/可讀介質(zhì)包括提供(即,存儲和/或傳輸)以由諸如計算機或電子系統(tǒng)之類的機器可讀的形式的信息的任何機構(gòu)。例如,非暫時性機器可訪問介質(zhì)包括隨機存取存儲器(ram),諸如靜態(tài)ram(sram)或動態(tài)ram(dram);rom;磁或光存儲介質(zhì);閃存設(shè)備;電存儲設(shè)備;光存儲設(shè)備;聲學(xué)存儲設(shè)備;用于保持從暫時性(傳播的)信號(例如載波、紅外信號、數(shù)字信號)接收的信息的其它形式的存儲設(shè)備;等等,它們將與可從其接收信息的非暫時性介質(zhì)區(qū)分開。
用于程序邏輯以執(zhí)行本公開的實施例的指令可被存儲在系統(tǒng)中的諸如dram、高速緩存、閃存或其它貯存器之類的存儲器內(nèi)。此外,指令可以經(jīng)由網(wǎng)絡(luò)或借助于其它計算機可讀介質(zhì)來分發(fā)。因此,機器可讀介質(zhì)可包括用于存儲或傳輸以由機器(例如,計算機)可讀的形式的信息的任何機構(gòu),但不限于軟盤、光盤、壓縮盤、只讀存儲器(cd-rom)和磁光盤、只讀存儲器(rom)、隨機存取存儲器(ram)、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、磁或光卡、閃存或者在通過因特網(wǎng)、經(jīng)由電、光、聲學(xué)或其它形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)的信息傳輸中使用的有形的機器可讀貯存器。相應(yīng)地,計算機可讀介質(zhì)包括適于存儲或傳輸以由機器(例如,計算機)可讀的形式的電子指令或信息的任何類型的有形的機器可讀介質(zhì)。
一個或多個實施例可提供裝置、系統(tǒng)、機器可讀貯存器、機器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如,路由器)、方法和非暫時性機器可讀介質(zhì)(包括表示結(jié)構(gòu)的信息,該結(jié)構(gòu)在被制造時將被配置)以接收來自片上網(wǎng)絡(luò)的另一個路由器的分組交換請求,該分組交換請求將在源邏輯處被生成,該分組交換請求標(biāo)識目的地邏輯;通過第一電路交換信道接收與分組交換請求相關(guān)聯(lián)的電路交換數(shù)據(jù);存儲與分組交換請求相關(guān)聯(lián)的電路交換數(shù)據(jù);以及朝著在分組交換請求中標(biāo)識的目的地邏輯發(fā)送存儲的電路交換數(shù)據(jù)。
在至少一個示例中,裝置是處理器。
在至少一個示例中,路由器將向源邏輯發(fā)送電路交換確認信號。
在至少一個示例中,源邏輯接收到電路交換確認信號將觸發(fā)電路交換數(shù)據(jù)到路由器的傳輸。
在至少一個示例中,電路交換確認信號將在路由器接收到電路交換數(shù)據(jù)之后被發(fā)送。
在至少一個示例中,路由器將使電路交換數(shù)據(jù)存儲在一組觸發(fā)器中。
在至少一個示例中,路由器將在分組交換請求到達目的地邏輯之后將存儲的電路交換數(shù)據(jù)發(fā)送到目的地邏輯。
在至少一個示例中,路由器將在分組交換請求到達片上網(wǎng)絡(luò)的第二路由器之后將存儲的電路交換數(shù)據(jù)發(fā)送到第二路由器以存儲在第二路由器處。
在至少一個示例中,路由器將被選擇性地配置成存儲電路交換數(shù)據(jù)或者朝著目的地邏輯轉(zhuǎn)發(fā)電路交換數(shù)據(jù)而不存儲電路交換數(shù)據(jù)。
一個或多個實施例可以提供裝置、系統(tǒng)、機器可讀貯存器、機器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如,路由器)、方法和非暫時性機器可讀介質(zhì)(包括表示結(jié)構(gòu)的信息,該結(jié)構(gòu)在被制造時將被配置)以包括輸入端口,用以接收來自片上網(wǎng)絡(luò)的第一路由器的分組交換請求,該分組交換請求將由片上網(wǎng)絡(luò)的源邏輯生成,并且接收與分組交換請求相關(guān)聯(lián)的電路交換數(shù)據(jù);存儲元件,用以存儲電路交換數(shù)據(jù);以及輸出端口,用以朝著在分組交換請求中標(biāo)識的目的地邏輯發(fā)送電路交換數(shù)據(jù)。
在至少一個示例中,輸入端口將通過在源邏輯與裝置之間形成的電路交換信道來接收電路交換數(shù)據(jù)。
在至少一個示例中,輸出端口將通過在裝置與目的地邏輯之間形成的電路交換信道來發(fā)送電路交換數(shù)據(jù)。
在至少一個示例中,輸出端口將接收與電路交換數(shù)據(jù)相關(guān)聯(lián)的電路交換確認信號,該電路交換確認信號將通過在裝置與目的地邏輯之間形成的電路交換信道來接收。
在至少一個示例中,將通過在裝置與第二路由器之間形成的電路交換信道來將電路交換數(shù)據(jù)發(fā)送到片上網(wǎng)絡(luò)的第二路由器,其中電路交換數(shù)據(jù)將由第二路由器存儲。
一個或多個實施例可以提供裝置、系統(tǒng)、機器可讀貯存器、機器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如,路由器)、方法和非暫時性機器可讀介質(zhì)(包括表示結(jié)構(gòu)的信息,該結(jié)構(gòu)在被制造時將被配置)以在片上網(wǎng)絡(luò)的第一路由器處接收來自片上網(wǎng)絡(luò)的第二路由器的分組交換請求,該分組交換請求將由片上網(wǎng)絡(luò)的源邏輯生成;在第一路由器處存儲電路交換數(shù)據(jù);以及將電路交換數(shù)據(jù)從第一路由器朝著在分組交換請求中標(biāo)識的目的地邏輯發(fā)送。
在至少一個示例中,電路交換數(shù)據(jù)將通過在源邏輯與第一路由器之間形成的電路交換信道來接收。
在至少一個示例中,電路交換數(shù)據(jù)將通過在第一路由器與目的地邏輯之間形成的電路交換信道來發(fā)送。
在至少一個示例中,通過在裝置與目的地邏輯之間形成的電路交換信道來接收與電路交換數(shù)據(jù)相關(guān)聯(lián)的電路交換確認信號。
在至少一個示例中,朝著目的地邏輯發(fā)送電路交換數(shù)據(jù)包括通過在第一路由器與第二路由器之間形成的電路交換信道將電路交換數(shù)據(jù)發(fā)送到片上網(wǎng)絡(luò)的第二路由器,其中電路交換數(shù)據(jù)將由第二路由器存儲。
在至少一個示例中,第一路由器將存儲電路交換數(shù)據(jù)或者朝著目的地邏輯轉(zhuǎn)發(fā)電路交換數(shù)據(jù)而不存儲電路交換數(shù)據(jù)。
一個或多個實施例可以提供裝置、系統(tǒng)、機器可讀貯存器、機器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如,路由器)、方法和非暫時性機器可讀介質(zhì)(包括表示結(jié)構(gòu)的信息,該結(jié)構(gòu)在被制造時將被配置)以包括多個核;與所述多個核相關(guān)聯(lián)的多個路由器,所述多個路由器實現(xiàn)片上網(wǎng)絡(luò)。路由器將接收來自片上網(wǎng)絡(luò)的另一個路由器的分組交換請求,該分組交換請求將在所述多個核中的源核處被生成,該分組交換請求標(biāo)識多個核中的目的地核;通過第一電路交換信道接收與分組交換請求相關(guān)聯(lián)的電路交換數(shù)據(jù);存儲與分組交換請求相關(guān)聯(lián)的電路交換數(shù)據(jù);以及朝著在分組交換請求中標(biāo)識的目的地核發(fā)送存儲的電路交換數(shù)據(jù)。
貫穿本說明書對“一個實施例”或“實施例”的引用意味著結(jié)合實施例描述的特定特征、結(jié)構(gòu)或特性被包括在本公開的至少一個實施例中。因此,短語“在一個實施例中”或“在實施例中”貫穿本說明書在各種地方中的出現(xiàn)不一定都指的是相同實施例。此外,在一個或多個實施例中,可以以任何合適的方式組合特定特征、結(jié)構(gòu)或特性。
在前述說明書中,已經(jīng)參考特定示例性實施例給出了詳細描述。然而,將明顯的是:可在不脫離如在所附權(quán)利要求中闡述的本公開的更寬廣的精神和范圍的情況下對其進行各種修改和改變。相應(yīng)地,在說明性意義而不是限制性意義上看待說明書和附圖。此外,實施例和其它示例性語言的前述使用不一定指的是相同的實施例或相同的示例,而是可能指的是不同的和有區(qū)別的實施例并且可能指的是相同的實施例。