相關(guān)申請的交叉參考
此申請要求2014年12月22日提交的題為“combinedguaranteedthroughputandbesteffortnetwork-on-chip(組合保證吞吐量和盡力而為的片上網(wǎng)絡(luò))”的美國非臨時(shí)專利申請第14/579,303號的優(yōu)先權(quán)和利益,該申請通過參考以其全部內(nèi)容結(jié)合于本文中。
政府利益聲明
此發(fā)明在由美國能源部授予的合同號b600738下在美國政府支持下進(jìn)行。美國政府在此發(fā)明中具有某些權(quán)利。
本公開一般涉及計(jì)算機(jī)開發(fā)領(lǐng)域,并且更確切地說,涉及組合保證吞吐量和盡力而為的片上網(wǎng)絡(luò)(noc)。
背景技術(shù):
用于核之間管芯上通信的片上網(wǎng)絡(luò)(noc),在隨著多核處理器中核以及知識(shí)產(chǎn)權(quán)(ip)塊的數(shù)量增大時(shí)實(shí)現(xiàn)可縮放性能方面,是重要的。在此類實(shí)例中,組件之間的通信變成關(guān)鍵能力和性能限制因素。noc允許有效共享片上連線資源,以便與路由器通信來控制和仲裁通信組件之間的數(shù)據(jù)流?;旌戏纸M/電路交換的noc允許具有接近電路交換數(shù)據(jù)傳播的能量效率的分組交換的利用和高吞吐量。
片上互連是在noc上運(yùn)行的應(yīng)用的關(guān)鍵性能和能力限制因素。許多應(yīng)用,諸如媒體流播和在線游戲,都要求對等待時(shí)間和保證最小吞吐量限制以實(shí)現(xiàn)高服務(wù)質(zhì)量。noc應(yīng)該傳達(dá)具有低面積和能量開銷的這些性能要求。
附圖說明
圖1例證了按照某些實(shí)施例的包含多核處理器的示例計(jì)算系統(tǒng)的框圖。
圖2例證了按照某些實(shí)施例的包括包含多個(gè)路由器的片上網(wǎng)絡(luò)(noc)系統(tǒng)的處理器的框圖。
圖3例證了按照某些實(shí)施例的同步混合分組/電路交換noc的示例系統(tǒng)中的示例通信。
圖4例證了按照某些實(shí)施例的例證使用順序地址解碼和分組仲裁的路由器的示例輸入(in(入))端口和輸出(out(出))端口的框圖。
圖5例證了按照某些實(shí)施例的執(zhí)行組合的保證吞吐量和盡力而為數(shù)據(jù)發(fā)送的noc路由器的out端口的示例部分。
圖6例證了按照某些實(shí)施例的執(zhí)行組合的保證吞吐量和盡力而為數(shù)據(jù)發(fā)送的noc路由器的out端口的另一示例部分。
圖7例證了按照某些實(shí)施例的用于執(zhí)行組合的保證吞吐量和盡力而為數(shù)據(jù)發(fā)送的示例方法。
圖8例證了按照某些實(shí)施例用于執(zhí)行組合的保證吞吐量和盡力而為noc中的動(dòng)態(tài)槽重新分配的示例通信流程。
圖9例證了按照某些實(shí)施例的用于執(zhí)行組合的保證吞吐量和盡力而為noc中動(dòng)態(tài)槽重新分配的示例方法。
圖10例證了按照某些實(shí)施例的用于示例計(jì)算系統(tǒng)的另一框圖。
各種附圖中的相似附圖標(biāo)記和命名指示相似元件。
具體實(shí)施方式
在如下描述中,闡述了眾多特定細(xì)節(jié),諸如特定類型的處理器和系統(tǒng)配置、特定硬件結(jié)構(gòu)、特定架構(gòu)和微架構(gòu)細(xì)節(jié)、特定寄存器配置、特定指令類型、特定系統(tǒng)組件、特定測量/高度、特定處理器流水線階段和操作等的示例,以便提供本公開的透徹理解。然而,對于本領(lǐng)域技術(shù)人員將明顯的是,不需要采用這些特定細(xì)節(jié)來實(shí)施本公開。在其它實(shí)例中,未詳細(xì)描述眾所周知的組件和方法,諸如特定和備選處理器架構(gòu)、用于所描述算法的特定邏輯電路/代碼、特定固件代碼、特定互連操作、特定邏輯配置、特定制造技術(shù)和材料、特定編譯器實(shí)現(xiàn)、使用代碼的算法的特定表述、特定掉電和門控技術(shù)/邏輯以及計(jì)算機(jī)系統(tǒng)的其它特定操作細(xì)節(jié),以便避免不必要地使本公開模糊不清。
盡管可參考特定集成電路中的能量節(jié)約和能量效率描述如下實(shí)施例,諸如在計(jì)算平臺(tái)或微處理器中,但其它實(shí)施例可應(yīng)用于其它類型集成電路和邏輯器件。本文描述的實(shí)施例的類似技術(shù)和教導(dǎo)可應(yīng)用于其它類型的電路或半導(dǎo)體器件,它們也可受益于更好的能量效率和能量節(jié)約。例如,所公開的實(shí)施例不限于臺(tái)式計(jì)算機(jī)系統(tǒng)或ultrabookstm,但還可用在其它裝置中,諸如服務(wù)器計(jì)算機(jī)系統(tǒng)、手持裝置、平板電腦、其它薄筆記本、片上系統(tǒng)(soc)裝置、以及嵌入式應(yīng)用。手持裝置的一些示例包含蜂窩電話、因特網(wǎng)協(xié)議裝置、數(shù)字相機(jī)、個(gè)人數(shù)字助理(pda)和手持pc。嵌入式應(yīng)用通常包含微控制器、數(shù)字信號處理器(dsp)、片上系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)(netpc)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(wan)交換機(jī)或可執(zhí)行下面教導(dǎo)的功能和操作的任何其它系統(tǒng)。而且,本文描述的設(shè)備、方法和系統(tǒng)不限于物理計(jì)算裝置,而是可涉及用于節(jié)能和效率的軟件優(yōu)化。如在以下描述中將變得容易明白的,本文描述的方法、設(shè)備和系統(tǒng)的實(shí)施例(不管是關(guān)于硬件、固件、軟件還是它們的組合)對將來與性能考慮平衡的“綠色技術(shù)”都是至關(guān)重要的。
隨著計(jì)算系統(tǒng)進(jìn)步,本文的組件變得更復(fù)雜了。結(jié)果,在組件之間通信和耦合的互連架構(gòu)在復(fù)雜性上也增加了,以確保滿足用于最優(yōu)組件操作的帶寬要求。更進(jìn)一步,不同市場分割要求互連架構(gòu)的不同方面,以適合市場的需要。例如,服務(wù)器要求更高性能,而移動(dòng)生態(tài)系統(tǒng)有時(shí)能夠?yàn)榱斯?jié)能而犧牲總體性能。然而,大多數(shù)構(gòu)造的突出目的是提供具有最大節(jié)能的最高可能性能。下面,論述若干互連,其將潛在地受益于本文描述的公開的各方面。
參考圖1,描繪了包含多核處理器的計(jì)算系統(tǒng)的框圖的實(shí)施例。處理器100包含任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器、手持處理器、應(yīng)用處理器、協(xié)處理器、片上系統(tǒng)(soc)或執(zhí)行代碼的其它裝置。在一個(gè)實(shí)施例中,處理器100包含至少兩個(gè)核,即核101和核102,它們可包含不對稱核或?qū)ΨQ核(所例證的實(shí)施例)。然而,處理器100可包含任何數(shù)量的處理元件,它們可以是對稱的或不對稱的。
在一個(gè)實(shí)施例中,處理元件指的是支持軟件線程的硬件或邏輯。硬件處理元件的示例包含:線程單元、線程槽、線程、處理單元、上下文、上下文單元、邏輯處理器、硬件線程、核和/或任何其它元件,其能夠存有處理器的狀態(tài),諸如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)。換言之,處理元件在一個(gè)實(shí)施例中指的是能夠與代碼(諸如軟件線程、操作系統(tǒng)、應(yīng)用或其它代碼)獨(dú)立關(guān)聯(lián)的任何硬件。物理處理器(或處理器插槽)通常指的是集成電路,其潛在地包含任何數(shù)量的其它處理元件,諸如核或硬件線程。
核經(jīng)常指的是位于集成電路上能夠維持獨(dú)立架構(gòu)狀態(tài)的邏輯,其中每個(gè)獨(dú)立維持的架構(gòu)狀態(tài)都與至少一些專用執(zhí)行資源關(guān)聯(lián)。與核相比,硬件線程通常指的是位于集成電路上能夠維持獨(dú)立架構(gòu)狀態(tài)的任何邏輯,其中獨(dú)立維持的架構(gòu)狀態(tài)共享對執(zhí)行資源的訪問。如可看到的,當(dāng)某些資源被共享并且其它資源專用于架構(gòu)狀態(tài)時(shí),核與硬件線程的命名之間的線交疊。不過,核和硬件線程被操作系統(tǒng)視為單獨(dú)邏輯處理器,其中操作系統(tǒng)能夠在每個(gè)邏輯處理器上單獨(dú)調(diào)度操作。
如圖1所例證的,物理處理器100包含兩個(gè)核,即核101和102。在此,核101和102被視為對稱核,即,具有相同配置、功能單元和/或邏輯的核。在另一實(shí)施例中,核101包含無序處理器核,而核102包含有序處理器核。然而,核101和102可單獨(dú)選自任何類型核,諸如原生核、軟件管理核、適合于執(zhí)行原生指令集架構(gòu)(isa)的核、適合于執(zhí)行翻譯的指令集架構(gòu)(isa)的核、協(xié)同設(shè)計(jì)的核或其它已知核。在異質(zhì)核環(huán)境(即不對稱核)中,可利用某一形式的翻譯,諸如二進(jìn)制翻譯,在一個(gè)核或兩個(gè)核上調(diào)度或執(zhí)行代碼。然而為了進(jìn)一步論述,下面更詳細(xì)描述在核101中例證的功能單元,因?yàn)楹?02中的單元在描繪的實(shí)施例中以類似方式操作。
如所描繪的,核101包含兩個(gè)硬件線程101a和101b,它們還可被稱為硬件線程槽101a和101b。因此,軟件實(shí)體(諸如操作系統(tǒng))在一個(gè)實(shí)施例中潛在地將處理器100視為四個(gè)單獨(dú)處理器,即,能夠同時(shí)執(zhí)行四個(gè)軟件線程的四個(gè)邏輯處理器或處理元件。如上面所提及的,第一線程與架構(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è)架構(gòu)狀態(tài)寄存器(101a、101b、102a和102b)可被稱為處理元件、線程槽或線程單元,如上面所描述的。如所例證的,在架構(gòu)狀態(tài)寄存器101b中復(fù)制架構(gòu)狀態(tài)寄存器101a,因此各個(gè)架構(gòu)狀態(tài)/上下文能夠被存儲(chǔ)用于邏輯處理器101a和邏輯處理器101b。在核101中,對于線程101a和101b,也可復(fù)制其它較小資源,諸如分配器和重命名塊130中的重命名邏輯和指令指針??赏ㄟ^分區(qū)共享一些資源,諸如重新排序/退出單元135中的重新排序緩沖器、iltb120、加載/存儲(chǔ)緩沖器、以及隊(duì)列。其它資源,諸如通用內(nèi)部寄存器、頁表基礎(chǔ)寄存器、低級數(shù)據(jù)高速緩存、以及數(shù)據(jù)tlb115、執(zhí)行單元140和部分無序單元135,潛在地完全共享。
處理器100經(jīng)常包含其它資源,它們可被完全共享、通過分區(qū)共享或者由處理元件專用/專用于處理元件。在圖1中,例證了具有處理器的例證性邏輯單元/資源的純示范性處理器的實(shí)施例。要指出,處理器可包含或省略這些功能單元中的任何單元,以及包含未描繪的任何其它已知功能單元、邏輯或固件。如所例證的,核101包含簡化的代表性無序(ooo)處理器核。但是在不同實(shí)施例中可利用有序處理器。ooo核包含預(yù)測要執(zhí)行/采取的分支的分支目標(biāo)緩沖器120以及存儲(chǔ)用于指令的地址翻譯條目的指令翻譯緩沖器(i-tlb)120。
核101進(jìn)一步包含耦合到提取單元120以解碼提取的元素的解碼模塊125。提取邏輯在一個(gè)實(shí)施例中包含分別與線程槽101a、101b關(guān)聯(lián)的各個(gè)定序器。通常,核101與第一isa關(guān)聯(lián),第一isa定義/規(guī)定在處理器100上可執(zhí)行的指令。作為第一isa的一部分的機(jī)器代碼指令經(jīng)常包含一部分指令(稱為操作碼),其參考/規(guī)定要執(zhí)行的指令或操作。解碼邏輯125包含從它們的操作碼中識(shí)別這些指令并在流水線中傳遞解碼指令以便如第一isa所定義那樣進(jìn)行處理的電路。例如,如下面更詳細(xì)描述的,解碼器125在一個(gè)實(shí)施例中包含設(shè)計(jì)成或適合于識(shí)別特定指令諸如事務(wù)性指令的邏輯。作為解碼器125識(shí)別的結(jié)果,架構(gòu)或核101采取特定的預(yù)先定義的動(dòng)作以執(zhí)行與適當(dāng)指令關(guān)聯(lián)的任務(wù)。重要的是,要指出,本文描述的任務(wù)、塊、操作和方法中的任一個(gè)都可響應(yīng)于單個(gè)或多個(gè)指令而執(zhí)行;其中一些可以是新指令或老指令。要指出,解碼器126在一個(gè)實(shí)施例中識(shí)別相同isa(或者其子集)。備選地,在異質(zhì)核環(huán)境中,解碼器126識(shí)別第二isa(或者第一isa的子集或者截然不同的isa)。
在一個(gè)示例中,分配器和重命名塊130包含預(yù)留資源的分配器,諸如存儲(chǔ)指令處理結(jié)果的寄存器堆。然而,線程101a和101b潛在地能夠無序執(zhí)行,其中分配器和重命名器塊130還預(yù)留其它資源,諸如重排序緩沖器,以跟蹤指令結(jié)果。單元130還可包含寄存器重命名器以將程序/指令參考寄存器重命名成處理器100內(nèi)部的其它寄存器。重新排序/退出單元135包含部件諸如上面提到的重新排序緩沖器、載荷緩沖器和存儲(chǔ)緩沖器,以支持無序執(zhí)行以及后來的無序執(zhí)行的指令的有序退出。
在一個(gè)實(shí)施例中,調(diào)度器和執(zhí)行單元塊140包含調(diào)度器單元以調(diào)度執(zhí)行單元上的指令/操作。例如,在具有可用浮點(diǎn)執(zhí)行單元的執(zhí)行單元端口上調(diào)度浮點(diǎn)指令。還包含與執(zhí)行單元相關(guān)聯(lián)的寄存器堆以存儲(chǔ)信息指令處理結(jié)果。示范執(zhí)行單元包含浮點(diǎn)執(zhí)行單元、整數(shù)執(zhí)行單元、跳執(zhí)行單元、載荷執(zhí)行單元、存儲(chǔ)執(zhí)行單元和其它已知執(zhí)行單元。
較低級數(shù)據(jù)高速緩存和數(shù)據(jù)翻譯緩沖器(d-tlb)150耦合到執(zhí)行單元140。數(shù)據(jù)高速緩存要存儲(chǔ)近來使用/操作的單元,諸如數(shù)據(jù)操作數(shù),它們潛在地保持在存儲(chǔ)器一致性狀態(tài)中。d-tlb要存儲(chǔ)近來對物理地址翻譯的虛擬/線性。作為特定示例,處理器可包含頁表結(jié)構(gòu)以將物理存儲(chǔ)器分成多個(gè)虛擬頁。
在此,核101和102共享對較高級或更高級高速緩存(諸如與片上接口110關(guān)聯(lián)的第二級高速緩存)的訪問。要指出,較高級或更高級指的是增大或從執(zhí)行單元得到進(jìn)一步方式的高速緩存級。在一個(gè)實(shí)施例中,較高級高速緩存是最后一級數(shù)據(jù)高速緩存(處理器100上的存儲(chǔ)器層級中的最后一個(gè)高速緩存),諸如第二級或第三級數(shù)據(jù)高速緩存。然而,較高級高速緩存不受如此限制,因?yàn)樗膳c指令高速緩存關(guān)聯(lián)或包含指令高速緩存。跡高速緩存(一種類型的指令高速緩存),相反可耦合在解碼器125后面以存儲(chǔ)最近解碼的跡。在此,指令潛在地指的是宏指令(即,由解碼器識(shí)別的通用指令),其可被解碼成若干微指令(微操作)。
在描繪的配置中,處理器100還包含片上接口模塊110。歷史上,在下面更詳細(xì)描述的存儲(chǔ)器控制器已經(jīng)被包含在處理器100外部的計(jì)算系統(tǒng)中。在此情形下,片上接口11與處理器100外部的裝置(諸如系統(tǒng)存儲(chǔ)器175、芯片集(經(jīng)常包含連接到存儲(chǔ)器175的存儲(chǔ)器控制器集線器以及連接外圍裝置的i/o控制器集線器)、存儲(chǔ)器控制器集線器、北橋或其它集成電路)通信。并且在此情形下,總線105可包含任何已知互連,諸如多點(diǎn)總線、點(diǎn)對點(diǎn)互連、串行互連、并行總線、一致性(例如高速緩存一致性)總線、分層協(xié)議架構(gòu)、差分總線和gtl總線。
存儲(chǔ)器175可專用于處理器100,或與系統(tǒng)中的其它裝置共享。存儲(chǔ)器175的類型的公共示例包含dram、sram、非易失性存儲(chǔ)器(nv存儲(chǔ)器)以及其它已知存儲(chǔ)裝置。要指出,裝置180可包含圖形加速器、耦合到存儲(chǔ)器控制器集線器的卡或處理器、耦合到i/o控制器集線器的數(shù)據(jù)存儲(chǔ)裝置、無線收發(fā)器、閃存裝置、音頻控制器、網(wǎng)絡(luò)控制器或其它已知裝置。
然而,近來,當(dāng)更多的邏輯和器件被集成在單個(gè)管芯(諸如soc)上時(shí),這些器件中的每個(gè)都可結(jié)合在處理器100上。例如,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器集線器在與處理器100相同的封裝和/或管芯上。在此,核的部分(核上部分)110包含用于與諸如存儲(chǔ)器175或圖形裝置180的其它裝置對接的一個(gè)或多個(gè)控制器。包含用于與此類裝置對接的控制器和互連的配置經(jīng)常被稱為核上(或非核)配置。作為示例,片上接口110包含用于片上通信的環(huán)形互連以及用于片下通信的高速串行點(diǎn)對點(diǎn)鏈路105。然而,在soc環(huán)境中,甚至更多的裝置,諸如網(wǎng)絡(luò)接口、協(xié)處理器、存儲(chǔ)器175、圖形處理器180以及任何其它已知的計(jì)算機(jī)裝置/接口可被集成在單個(gè)管芯或集成電路上,以提供具有高功能性和低功耗的小形狀因子。
在一個(gè)實(shí)施例中,處理器100能夠執(zhí)行編譯器、優(yōu)化和/或翻譯器代碼177,以編譯、翻譯和/或優(yōu)化應(yīng)用代碼176以支持本文描述的設(shè)備和方法,或與之對接。編譯器經(jīng)常包含將源文本/代碼翻譯成目標(biāo)文本/代碼的程序或一組程序。通常,用編譯器編譯程序/應(yīng)用代碼在多階段和多遍進(jìn)行,以將高級編程語言代碼變換成低級機(jī)器或匯編語言代碼。然而,對于簡單編譯,仍可利用單遍編譯器。編譯器可利用任何已知編譯技術(shù),并執(zhí)行任何已知編譯器操作,諸如詞法分析、預(yù)先處理、解析、語義分析、代碼生成、代碼變換、以及代碼優(yōu)化。
較大編譯器經(jīng)常包含多階段,但最經(jīng)常的是,這些階段被包含在兩個(gè)一般階段內(nèi):(1)前端,即,一般在句法處理、語義處理和一些變換/優(yōu)化可發(fā)生的情況下,以及(2)后端,即,一般在分析、變換、優(yōu)化和代碼生成發(fā)生的情況下。一些編譯器指的是中間的,其例證了編譯器的前端與后端之間的刻畫的模糊。結(jié)果,對插入、關(guān)聯(lián)、生成或編譯器的其它操作的提及可發(fā)生在任何上面提到的階段或遍,以及編譯器的任何其它已知階段或遍。作為例證性示例,編譯器潛在地將操作、調(diào)用、函數(shù)等插入在編譯的一個(gè)或多個(gè)階段中,諸如將調(diào)用/操作插入在編譯的前端階段中,并且然后在變換階段期間將調(diào)用/操作變換成較低級代碼。要指出,在動(dòng)態(tài)編譯期間,編譯器代碼或動(dòng)態(tài)優(yōu)化代碼可插入此類操作/調(diào)用,以及優(yōu)化用于在運(yùn)行時(shí)間期間執(zhí)行的代碼。作為特定例證性示例,二進(jìn)制代碼(已經(jīng)是編譯的代碼)可在運(yùn)行時(shí)間期間動(dòng)態(tài)優(yōu)化。在此,程序代碼可包含動(dòng)態(tài)優(yōu)化代碼、二進(jìn)制代碼或其組合。
類似于編譯器,翻譯器(諸如二進(jìn)制翻譯器)靜態(tài)或動(dòng)態(tài)翻譯代碼,以優(yōu)化和/或翻譯代碼。因此,對執(zhí)行代碼、應(yīng)用代碼、程序代碼或其它軟件環(huán)境的提及可指的是:(1)動(dòng)態(tài)或者靜態(tài)地執(zhí)行編譯器程序、優(yōu)化代碼優(yōu)化器或翻譯器,以編譯程序代碼,維持軟件結(jié)構(gòu),執(zhí)行其它操作,優(yōu)化代碼,或者翻譯代碼;(2)執(zhí)行包含操作/調(diào)用的主程序代碼,諸如已經(jīng)被優(yōu)化/編譯的應(yīng)用代碼;(3)執(zhí)行其它程序代碼,諸如與維持軟件結(jié)構(gòu)的主程序代碼關(guān)聯(lián)的庫,以執(zhí)行其它軟件相關(guān)應(yīng)用,或優(yōu)化代碼;或者(4)它們的組合。
圖2例證了按照某些實(shí)施例包括包含多個(gè)路由器204的noc系統(tǒng)的處理器200的框圖。處理器200可包含任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器、手持處理器、應(yīng)用處理器、協(xié)處理器、soc或執(zhí)行代碼的其它裝置。在具體實(shí)施例中,處理器200在單個(gè)管芯上實(shí)現(xiàn)。
在描繪的實(shí)施例中,處理器200包含布置在網(wǎng)格網(wǎng)絡(luò)中并彼此用雙向鏈路耦合的多個(gè)網(wǎng)絡(luò)元件202。然而,按照本公開的各種實(shí)施例的noc可適用于任何適合的網(wǎng)絡(luò)拓?fù)洌ɡ绶謱泳W(wǎng)絡(luò)或環(huán)形網(wǎng)絡(luò))、大小、總線帶寬和處理器。每個(gè)網(wǎng)絡(luò)元件202包含路由器204。路由器204可以用通信方式在網(wǎng)絡(luò)(諸如分組交換網(wǎng)和/或電路交換網(wǎng))中彼此鏈接,從而實(shí)現(xiàn)連接到路由器的noc的組件(諸如核、存儲(chǔ)元件或其它邏輯塊)之間的通信。在描繪的實(shí)施例中,每個(gè)路由器204可以用通信方式耦合到它自己的核208(或其它邏輯塊)。如本文所使用的,對核的提及也可適用于使用不同邏輯塊代替核的其它實(shí)施例。例如,各種邏輯塊可包括硬件加速器(例如圖形加速器、多媒體加速器或視頻編碼/解碼加速器)、i/o塊、存儲(chǔ)器控制器或其它適合的固定功能邏輯。處理器200可包含任何數(shù)量的處理元件,它們可以是對稱的或不對稱的。例如,處理器200的核208可包含不對稱核或?qū)ΨQ核。處理器200可包含操作為分組交換網(wǎng)和電路交換網(wǎng)中任一個(gè)或二者以提供管芯內(nèi)通信的邏輯。
在具體實(shí)施例中,可在各種路由器204之間使用分組交換網(wǎng)的資源傳遞分組。也就是,分組交換網(wǎng)可提供路由器(以及它們關(guān)聯(lián)的核)之間的通信。分組可包含控制部分和數(shù)據(jù)部分??刂撇糠挚砂纸M的目的地地址,并且數(shù)據(jù)部分可含有在管芯100上傳遞的特定數(shù)據(jù)。例如,控制部分可包含與管芯的網(wǎng)絡(luò)元件或核之一對應(yīng)的目的地地址。分組交換網(wǎng)可包含緩沖,因?yàn)閷S寐窂讲淮_信從源到目的地,并且因此,如果兩個(gè)或更多分組需要穿過同一鏈路或互連,則分組可能需要暫時(shí)停止。作為示例,當(dāng)分組從源行進(jìn)到目的地時(shí),可在每一個(gè)相應(yīng)路由器處對分組進(jìn)行緩沖(例如通過觸發(fā)器)。分組可由路由器204接收、發(fā)送和處理。分組交換網(wǎng)可在相鄰路由器之間使用點(diǎn)對點(diǎn)通信。分組的控制部分可在路由器之間基于具有任何適合的頻率的分組時(shí)鐘(諸如4ghz時(shí)鐘)傳送。分組的數(shù)據(jù)部分可在路由器之間基于類似時(shí)鐘(諸如4ghz時(shí)鐘)傳送。
在一實(shí)施例中,處理器200的路由器可以用各種方式提供在兩個(gè)網(wǎng)絡(luò)(諸如分組交換網(wǎng)和電路交換網(wǎng))中,或者與兩個(gè)網(wǎng)絡(luò)通信。此類通信方法可以稱為混合分組/電路交換網(wǎng)。在此類實(shí)施例中,可在各種路由器204之間使用分組交換網(wǎng)和電路交換網(wǎng)的資源以各種方式傳遞分組。為了發(fā)送單個(gè)數(shù)據(jù)分組,電路交換網(wǎng)可分配整個(gè)路徑,而分組交換網(wǎng)可僅分配單段(或互連)。在一些實(shí)施例中,可利用分組交換網(wǎng)預(yù)留用于路由器204之間數(shù)據(jù)發(fā)送的電路交換網(wǎng)的資源。
路由器204可包含多個(gè)端口集,其以各種方式耦合到毗鄰網(wǎng)絡(luò)元件202并與之通信。例如,電路交換和分組交換信號可通過這些端口集通信。路由器204的端口集例如可根據(jù)毗鄰網(wǎng)絡(luò)元件的方向和/或與此類元件的業(yè)務(wù)互換的方向進(jìn)行邏輯劃分。例如,路由器204可包含北端口集,其輸入("in")和輸出("out")端口配置成(分別)從位于相對于路由器204“北”方向的網(wǎng)絡(luò)元件202接收通信,并向其發(fā)送通信。附加地或備選地,路由器204可包含類似端口集,以與位于南、西、東或其它方向的網(wǎng)絡(luò)元件對接。在描繪的實(shí)施例中,路由器204配置用于x第一、y第二路由,其中數(shù)據(jù)首先在東/西方向移動(dòng),并且然后在南/北方向移動(dòng)。在其它實(shí)施例中,可以使用任何適合的路由方案。
在各種實(shí)施例中,路由器204進(jìn)一步包括另一端口集,其包括配置成(分別)從網(wǎng)絡(luò)的另一代理接收通信并向其發(fā)送通信的輸入端口和輸出端口。在描繪的實(shí)施例中,這個(gè)端口集被顯示在路由器204的中心。在一個(gè)實(shí)施例中,這些端口用于與和路由器204鄰近、通信或以其它方式關(guān)聯(lián)的邏輯(諸如“邏輯”核208的處理器邏輯)通信。本文中,這個(gè)端口集將被稱為“核端口集”,盡管在一些實(shí)現(xiàn)中它可與不同于核的邏輯對接。在另一實(shí)施例中,這個(gè)端口集用于與在高于路由器204的網(wǎng)絡(luò)層級的下一級中的網(wǎng)絡(luò)元件通信。在一個(gè)實(shí)施例中,東和西方向鏈路在一個(gè)金屬層上,北和南方向鏈路在第二金屬層上,并且核鏈路在第三金屬層上。在一實(shí)施例中,路由器204包含交叉開關(guān)和仲裁邏輯以提供端口間通信的路徑,諸如圖2所示。每個(gè)網(wǎng)絡(luò)元件中的邏輯(諸如核208)可具有唯一時(shí)鐘和/或電壓,或者可與noc的一個(gè)或多個(gè)其它組件共享時(shí)鐘和/或電壓。
圖3例證了按照某些實(shí)施例的同步混合分組/電路交換noc的示例系統(tǒng)300中的示例通信。同步noc可利用顯式時(shí)鐘和級敏感控制信號。同步分組交換noc可包括基于全局時(shí)鐘與它們的鄰居通信的路由器。從而,同步noc中的所有路由器都操作在同一頻率。所描繪的通信可在處理器(諸如處理器200)的noc中執(zhí)行。所描繪的每個(gè)路由器可具有本文相對于路由器204描述的任何適合的特性。
在一實(shí)施例中,通信包含調(diào)換分組交換預(yù)留請求304以配置電路交換通路。源邏輯308(例如核208)可將預(yù)留請求發(fā)送到目的地邏輯312(例如不同核208)。預(yù)留請求304可在其到目的地的路上穿過n+1個(gè)路由器,并且預(yù)留請求304在每個(gè)路由器處翻轉(zhuǎn)。預(yù)留請求304可在路由器之間基于分組時(shí)鐘316(諸如2ghz時(shí)鐘或4ghz時(shí)鐘)傳送。請求分組304可經(jīng)由noc的分組交換部分傳遞,并且當(dāng)請求分組從源行進(jìn)到目的地時(shí),可預(yù)留用于源邏輯308與目的地邏輯312之間的數(shù)據(jù)通信的資源。請求分組304可包含促進(jìn)電路交換信道預(yù)留的任何適合的信息。作為示例,請求分組可包含與目的地邏輯關(guān)聯(lián)的地址。當(dāng)資源可用時(shí),基于目的地地址向下游轉(zhuǎn)發(fā)請求分組。例如,基于確定性路由方法(例如x第一、y第二路由或查找表)或方向解碼器在給定路由器中執(zhí)行的其它路由協(xié)議,請求分組沿從源邏輯308到目的地邏輯312的路徑轉(zhuǎn)發(fā)。在一實(shí)施例中,唯一地址可與每個(gè)核208或其它邏輯塊(在核與路由器之間存在1:1映射的情況下從而還有路由器204)關(guān)聯(lián)。反過來,可使用這個(gè)局部地址生成對每個(gè)路由器局部的方向信息,以標(biāo)識(shí)用于發(fā)送信息的路由器的適當(dāng)端口。從而,可使用目的地地址連同路由器204的局部地址來確定向哪個(gè)方向轉(zhuǎn)發(fā)入局分組。
在請求分組304到達(dá)目的地邏輯312之后,電路交換確認(rèn)信號320從目的地邏輯312發(fā)送到源邏輯308。盡管未示出,但在各種實(shí)施例(諸如利用隊(duì)列槽存儲(chǔ)與預(yù)留請求關(guān)聯(lián)的信息的實(shí)施例)中,確認(rèn)信號也可從源邏輯308發(fā)送到目的地邏輯312,同時(shí)確認(rèn)信號320從目的地邏輯312發(fā)送到源邏輯308。確認(rèn)信號320證實(shí)由預(yù)留請求304預(yù)留的電路交換路徑的配置。在各種實(shí)施例中,當(dāng)每個(gè)路由器從源和目的地都接收到確認(rèn)信號時(shí),那個(gè)路由器知道該路徑準(zhǔn)備好了電路交換數(shù)據(jù)發(fā)送。確認(rèn)信號320在耦合到目的地邏輯312的路由器(路由器n)處翻轉(zhuǎn),并且然后在耦合到源邏輯308的路由器(路由器0)處再次翻轉(zhuǎn),但以別的方式通過網(wǎng)絡(luò)的各種路由器,無需被存儲(chǔ)。如在路由器1中所描繪的,確認(rèn)信號320可通過在路由器n與路由器0之間的每個(gè)路由器處的多路復(fù)用邏輯328。在每個(gè)路由器處的多路復(fù)用邏輯328基于響應(yīng)于預(yù)留請求304生成的方向信息配置。多路復(fù)用邏輯328可用于將路由器的輸入端口耦合到路由器的正確輸出端口,以允許確認(rèn)信號320穿過從目的地邏輯312到源邏輯308的正確路徑。
確認(rèn)信號320由電路時(shí)鐘324進(jìn)行時(shí)鐘控制。為了改進(jìn)數(shù)據(jù)吞吐量,可使用不同時(shí)鐘來同步網(wǎng)絡(luò)的分組交換和電路交換部分。分組交換請求可在分組時(shí)鐘316的每個(gè)循環(huán)中在相鄰路由器之間行進(jìn),而電路交換數(shù)據(jù)可在電路時(shí)鐘324的單個(gè)循環(huán)中跨整個(gè)網(wǎng)絡(luò)行進(jìn)。因而,網(wǎng)絡(luò)的分組交換部分可用比網(wǎng)絡(luò)的電路交換部分更高的頻率時(shí)鐘操作。在具體實(shí)施例中,分組時(shí)鐘316操作在2ghz頻率,而電路時(shí)鐘324操作在500mhz頻率,不過對于這些時(shí)鐘可使用任何適合的頻率。例如,在另一實(shí)施例中,分組時(shí)鐘316操作在4ghz頻率,而電路時(shí)鐘324操作在1ghz頻率。
在源邏輯308接收到確認(rèn)信號320之后,電路交換數(shù)據(jù)332從源邏輯308發(fā)送到目的地邏輯312。數(shù)據(jù)332在耦合到源邏輯308的路由器(路由器0)處翻轉(zhuǎn),并且然后在耦合到目的地邏輯312的路由器(路由器n)處再次翻轉(zhuǎn),但以別的方式通過網(wǎng)絡(luò)的各種路由器,無需被存儲(chǔ)。如在路由器1中所描繪的,數(shù)據(jù)332可通過在路由器0與路由器n之間的每個(gè)路由器處的多路復(fù)用邏輯336。在每個(gè)路由器處的多路復(fù)用邏輯336基于響應(yīng)于預(yù)留請求304生成的方向信息配置。多路復(fù)用邏輯336可用于將路由器的輸入端口耦合到路由器的正確輸出端口,以允許數(shù)據(jù)332穿過從源邏輯308到目的地邏輯312的正確路徑。數(shù)據(jù)332的發(fā)送由電路時(shí)鐘324進(jìn)行時(shí)鐘控制。
在各種實(shí)施例中,電路交換數(shù)據(jù)發(fā)送可與一個(gè)或多個(gè)將來發(fā)送的確認(rèn)的調(diào)換同時(shí)發(fā)生,和/或與要配置的電路交換路徑的一個(gè)或多個(gè)分組交換請求的調(diào)換同時(shí)發(fā)生。因而,參與電路交換調(diào)換的路由器可通過確定并存儲(chǔ)用于將來數(shù)據(jù)發(fā)送的路由方向來準(zhǔn)備將來電路交換路徑配置。
圖4例證了按照某些實(shí)施例的例證使用順序地址解碼和分組仲裁的路由器204a的示例in端口410和out端口450的框圖。路由器204a可具有上面相對于路由器204描述的任何適合的特性。盡管僅描繪了單個(gè)in端口和單個(gè)out端口,但路由器204a可具有任何適合數(shù)量的端口集。在下面的描述中,將假定路由器204a具有5個(gè)端口集(包含核的一個(gè)端口集)。
在一實(shí)施例中,路由器204a包含包括接收發(fā)送到路由器204a的分組交換通信的部分的in端口410以及包括發(fā)送自路由器204a的分組交換信息的部分的out端口450。in端口410和out端口450可進(jìn)一步包括調(diào)換電路交換信息的相應(yīng)其它部分(未示出)。例如,端口的電路交換路由部分可包含配置相應(yīng)電路交換路徑的至少一部分的配置邏輯。在各種實(shí)施例中,此類配置在路由器204a接收沿該電路交換路徑傳遞的數(shù)據(jù)之前執(zhí)行。
fn端口410除了別的可能組件之外可包含促進(jìn)分組路由的各種組件,諸如觸發(fā)器412、鎖存器集414、多路分解器邏輯420、方向邏輯425以及或門430。fn端口410經(jīng)由輸入端405從核或另一路由器接收請求分組304。分組304可包含任何適合的信息。如上所述,請求分組可包含與目的地邏輯關(guān)聯(lián)的地址。例如,在所描繪的實(shí)施例中,分組304包含6位目的地地址。作為一個(gè)示例,目的地地址可包含指示沿網(wǎng)絡(luò)網(wǎng)格的x軸的位置的三位地址值和指示沿網(wǎng)格的y軸的位置的另三位地址值。
請求分組還可包含有效位和三位(或其它適合大小的)隊(duì)列槽。有效位可指示分組304是否有效。例如,當(dāng)新分組到達(dá)時(shí),有效位可被斷言。在分組已經(jīng)由適當(dāng)?shù)膐ut端口轉(zhuǎn)發(fā)之后,有效位可被取消斷言,使得分組(其仍可由鎖存器414存儲(chǔ))不被再次錯(cuò)誤地轉(zhuǎn)發(fā),并且out端口可轉(zhuǎn)發(fā)下一有效分組。
隊(duì)列槽位可指示寄存器堆中要存儲(chǔ)有關(guān)分組的信息(例如與分組關(guān)聯(lián)的方向)的位置。在所描繪的實(shí)施例中,寄存器堆可具有8個(gè)位置,并且因此隊(duì)列槽由三位標(biāo)識(shí),不過可使用任何適合的大小。在其它實(shí)施例中,分組304還可包含一個(gè)或多個(gè)邊帶使能位,它們指示分組304是否包含要作為邊帶通信的一部分發(fā)送的數(shù)據(jù)。分組304還可包含攜帶邊帶數(shù)據(jù)的位。從而,盡管分組304被顯示為具有10位,但分組304可具有任何適合數(shù)量的位。
當(dāng)鎖存器未由來自觸發(fā)器412的保持信號關(guān)閉時(shí),分組304進(jìn)入輸入端,并通過鎖存器414。分組被傳到多路分解器邏輯420。多路分解器邏輯420操作以將分組多路分解到路由器204a的多個(gè)out端口中的任何端口。在一些實(shí)施例中,退出多路分解器的信號集的數(shù)量等于out端口數(shù)減去1(因?yàn)橥ㄟ^端口集的in端口到來的分組不會(huì)被發(fā)送到該端口集的out端口)。多路分解器邏輯420的輸出由方向邏輯425設(shè)置,方向邏輯425充當(dāng)?shù)刂方獯a器。方向邏輯425適合于基于分組中的信息(例如目的地地址)和/或其它適合的信息(諸如路由器204a的地址)來確定與分組304關(guān)聯(lián)的方向。這個(gè)方向可指示分組304應(yīng)該被路由到的路由器204a的哪個(gè)out端口。例如,方向邏輯425可評估分組304的目的地地址和路由器204a的地址,確定用于將分組304引導(dǎo)到正確out端口的多路分解器邏輯420的路徑,并且然后選擇那個(gè)路徑,使得分組304被轉(zhuǎn)發(fā)到正確的out端口,而來自多路分解器邏輯420的其它路徑保持不斷言。
如所描繪的,in端口還可包含接收保持信號的路徑。例如,in端口可包含到其它端口集的每個(gè)out端口的一個(gè)路徑,以從相應(yīng)端口接收保持信號。保持信號提供流程控制。當(dāng)從任何out端口接收到保持信號時(shí),或門430的輸出被斷言,并且這個(gè)值在分組時(shí)鐘316的下一循環(huán)翻轉(zhuǎn)。這關(guān)閉鎖存器以免接受附加分組304,直到保持信號被清除。這個(gè)信號將在下面結(jié)合out端口進(jìn)一步說明。
out端口450除了其它可能組件之外可包含促進(jìn)分組路由的各種組件,諸如保持多路分解器邏輯460、優(yōu)先級邏輯480、多路復(fù)用器邏輯485和觸發(fā)器490。out端口450接收多個(gè)輸入(每個(gè)操作以從路由器204a的相應(yīng)輸入端口傳輸分組304)。多路復(fù)用器邏輯485操作以將輸入多路復(fù)用到單個(gè)輸出,其通過觸發(fā)器490提供到輸出端455。在描繪的實(shí)施例中,在分組時(shí)鐘316的循環(huán)中,多路復(fù)用器邏輯485可從一到四個(gè)不同分組的任何地方接收(每個(gè)分組從路由器204a的不同輸入端口接收),并選擇要通過out端口450的輸出端455傳遞的一個(gè)分組。
優(yōu)先級邏輯480通過從in端口(例如使用循環(huán)賽技術(shù))選擇其中一個(gè)有效分組(例如具有被斷言的有效位的分組)充當(dāng)分組仲裁器,并經(jīng)由保持多路分解器邏輯460向未選擇的in端口發(fā)送保持信號。優(yōu)先級邏輯480向多路復(fù)用器邏輯485發(fā)送表示選擇的分組的信號,使多路復(fù)用器邏輯485能夠?qū)⑦x擇的分組傳到觸發(fā)器490。當(dāng)out端口接收的保持信號未被斷言時(shí),基于分組時(shí)鐘316翻轉(zhuǎn)分組。
優(yōu)先級邏輯480還向寄存器堆發(fā)送與選擇的分組關(guān)聯(lián)的方向數(shù)據(jù)465。方向數(shù)據(jù)可規(guī)定分組304來自哪個(gè)方向。例如,方向數(shù)據(jù)465可以是從中接收分組304的in端口的指示。在具體實(shí)施例中,方向數(shù)據(jù)可由兩位值表示,從而能夠標(biāo)識(shí)從中接收分組的四個(gè)端口中的任一個(gè)。選擇的分組的隊(duì)列槽位470也被傳到寄存器堆,并被用作地址以將方向數(shù)據(jù)465存儲(chǔ)在由隊(duì)列槽位479規(guī)定的寄存器堆的位置中。如果分組304請求的隊(duì)列槽已經(jīng)滿了,則優(yōu)先級邏輯可斷言保持信號,從而阻止分組繼續(xù)。在一實(shí)施例中,當(dāng)優(yōu)先級邏輯480確定分組304僅僅用于邊帶數(shù)據(jù)通信(也就是,不打算設(shè)立電路交換信道)時(shí),可有選擇地阻止或修改方向數(shù)據(jù)465的寫入。在此類實(shí)施例中,輸出470的提供也可被有選擇地阻止或以其它方式更改。
寫到寄存器堆中的方向數(shù)據(jù)用于促進(jìn)電路交換路徑的設(shè)立。每個(gè)路由器中的每個(gè)端口可包含類似寄存器堆。當(dāng)用于建立電路交換信道的適當(dāng)時(shí)間已經(jīng)達(dá)到時(shí),可以選擇包含與電路交換信道關(guān)聯(lián)的方向信息的各種端口中的每個(gè)端口的隊(duì)列槽(在各種實(shí)施例中,它可以是每一個(gè)端口中的相同隊(duì)列槽),并且方向信息用于配置從源到目的地的路由器中的多路復(fù)用器和多路分解器。在完成通過電路交換信道的數(shù)據(jù)傳送時(shí),選擇寄存器堆中的不同隊(duì)列槽以設(shè)立另外的電路交換信道。
在本公開的各種實(shí)施例中,寄存器堆的隊(duì)列槽可促進(jìn)執(zhí)行組合的保證吞吐量和盡力而為(gt+be)數(shù)據(jù)發(fā)送的noc。典型的noc基于沒有吞吐量或等待時(shí)間保證的網(wǎng)絡(luò)資源可用性遞送盡力而為(be)業(yè)務(wù)。然而,許多應(yīng)用,諸如媒體流播和在線游戲,都要求對等待時(shí)間和保證最小吞吐量的限制以實(shí)現(xiàn)高服務(wù)質(zhì)量。
noc可通過為特定傳送預(yù)留帶寬來提供保證吞吐量(gt)。這消除了該傳送的沖突,并且遞送最小保證吞吐量以及保證低等待時(shí)間。然而,預(yù)留noc資源阻止其它業(yè)務(wù)使用那些資源,導(dǎo)致低網(wǎng)絡(luò)利用和降低的總吞吐量。另一種方法是過度供應(yīng)benoc以滿足性能要求。be流程控制基于網(wǎng)絡(luò)資源可用性發(fā)送傳送,并且具有簡單的硬件實(shí)現(xiàn)。然而,be網(wǎng)絡(luò)沒有等待時(shí)間和吞吐量保證。過度供應(yīng)為接近最壞情況的情形提供了足夠的帶寬,其中網(wǎng)絡(luò)資源對于較輕業(yè)務(wù)浪費(fèi)了。相反,平均情況的設(shè)計(jì)使得對立業(yè)務(wù)具有不可接受的最壞情況的等待時(shí)間。
本公開的各種實(shí)施例提供了組合的gt+benoc。gt+be數(shù)據(jù)傳送在混合的分組/電路交換noc上執(zhí)行。當(dāng)通過網(wǎng)絡(luò)中繼請求時(shí),在每個(gè)路由器處在一個(gè)或多個(gè)循環(huán)內(nèi)對請求進(jìn)行分組交換并存儲(chǔ)。通過預(yù)留從源到目的地的完整信道對數(shù)據(jù)進(jìn)行電路交換,無需路由內(nèi)的數(shù)據(jù)存儲(chǔ)。gt+benoc在時(shí)間復(fù)用的電路交換信道上預(yù)留帶寬,以在能量有效信道上以固定的低等待時(shí)間通過noc提供gt。分布式算法通過在不同時(shí)隙內(nèi)重新嘗試沖突傳送來解決gt資源中的沖突。noc支持非等待時(shí)間關(guān)鍵傳送的be業(yè)務(wù),以更好地利用網(wǎng)絡(luò)資源并增加總吞吐量。通過在一個(gè)noc上組合gt和be業(yè)務(wù),等待時(shí)間敏感的應(yīng)用可接收gt,同時(shí)不太關(guān)鍵的任務(wù)可使用be傳送來使用未預(yù)留的和空閑預(yù)留的資源。這改進(jìn)了等待時(shí)間敏感的和實(shí)時(shí)的應(yīng)用(諸如在線游戲和媒體流播)的服務(wù)質(zhì)量。而且,電路交換技術(shù)通過路由內(nèi)數(shù)據(jù)存儲(chǔ)移除并消除反復(fù)發(fā)生的信道設(shè)立和取消分配成本,改進(jìn)了能量效率。
圖5例證了按照某些實(shí)施例執(zhí)行組合的gt+be數(shù)據(jù)發(fā)送的noc路由器204a的out端口450的示例部分。在所描繪的實(shí)施例中,out端口450包括be/gt選擇器502、公平指針506、be指針510、gt指針514、be有效寄存器堆518、gt有效寄存器堆522、be隊(duì)列槽寄存器堆526、gt隊(duì)列槽寄存器堆530和多路復(fù)用器邏輯534。
請求分組304通過將有效位和方向存儲(chǔ)在每個(gè)路由器端口中的對應(yīng)隊(duì)列槽中,可在信道上預(yù)留時(shí)隙。通過區(qū)分電路交換數(shù)據(jù)信道上的時(shí)隙來實(shí)現(xiàn)gt+be傳送。隊(duì)列槽被專用于be或gt業(yè)務(wù),其中源核控制業(yè)務(wù)類型,并且指配隊(duì)列槽以調(diào)度數(shù)據(jù)傳送。gt信道確保對于生產(chǎn)商/消費(fèi)者工作載荷滿足最小帶寬要求。而且,電路交換數(shù)據(jù)傳送使用端對端信道預(yù)留來為gt傳送提供保證的固定且低的等待時(shí)間。
當(dāng)在out端口接收到預(yù)留請求分組304時(shí),與請求分組關(guān)聯(lián)的信息(例如規(guī)定從哪個(gè)in端口接收請求分組的方向信息)可被存儲(chǔ)在out端口的隊(duì)列槽中。在具體實(shí)施例中,be隊(duì)列槽寄存器堆526和gt隊(duì)列槽寄存器堆530的每個(gè)隊(duì)列槽對應(yīng)于唯一標(biāo)識(shí)符。請求分組304可通過規(guī)定在be隊(duì)列槽寄存器堆526或gt隊(duì)列槽寄存器堆530中的隊(duì)列槽的標(biāo)識(shí)符,來指示關(guān)聯(lián)的數(shù)據(jù)傳送是be傳送還是gt傳送。在備選實(shí)施例中,請求分組304除了隊(duì)列槽標(biāo)識(shí)符之外,還可包含規(guī)定該傳送是gt傳送還是be傳送的位。
be/gt選擇器502操作以控制be傳送與gt傳送的比率。每當(dāng)out端口450自由傳送數(shù)據(jù)時(shí),be/gt選擇器502就規(guī)定應(yīng)該進(jìn)行be傳送還是gt傳送。be/gt選擇器502可規(guī)定be傳送與gt傳送之間的任何適合的比率。例如,be/gt選擇器502可規(guī)定,應(yīng)該對于每兩個(gè)be傳送發(fā)生一個(gè)gt傳送。在各種實(shí)施例中,be/gt選擇器502的比率可編程。在一些實(shí)施例中,noc包含控制邏輯以基于在路由器和/或noc中監(jiān)測的業(yè)務(wù)模式來設(shè)置比率。在一個(gè)實(shí)施例中,noc的所有路由器的be/gt選擇器502使用相同比率。
當(dāng)選擇be傳送時(shí),檢查be有效寄存器堆518以查看由be指針510指示的條目是否指示be隊(duì)列槽寄存器堆526的對應(yīng)隊(duì)列槽是否有效。如果be有效寄存器堆518指示該條目無效,則依次檢查每個(gè)條目,直到發(fā)現(xiàn)有效條目。be隊(duì)列槽寄存器堆526的對應(yīng)隊(duì)列槽中的信息(例如方向信息)用于控制多路復(fù)用器邏輯534。多路復(fù)用器邏輯534可表示適合于傳遞控制和/或數(shù)據(jù)信號的邏輯。例如,多路復(fù)用器邏輯534可從路由器204a的每個(gè)in端口接收確認(rèn)信號和電路交換數(shù)據(jù),并選擇其中要發(fā)送到不同路由器204b(其可具有路由器204a的任何特性)的對應(yīng)in端口410的一組信號。在每個(gè)be傳送結(jié)束時(shí),可使be指針510遞增。用于控制多路復(fù)用邏輯534的be隊(duì)列槽可被自動(dòng)清除(例如,一旦選擇該槽則可清除它,并且端口已經(jīng)從源和目的地接收到確認(rèn)信號),以允許隨后be業(yè)務(wù)繼續(xù)進(jìn)行。
當(dāng)選擇gt傳送時(shí),檢查gt有效寄存器堆522以查看由gt指針514指示的條目是否指示gt隊(duì)列槽寄存器堆530的對應(yīng)隊(duì)列槽是否有效。如果gt有效寄存器堆522指示該條目有效,則gt隊(duì)列槽寄存器堆530的對應(yīng)隊(duì)列槽中的信息(例如方向信息)用于控制多路復(fù)用器邏輯534。在每個(gè)gt傳送之后,可使gt指針514遞增。在清除該槽之前,用于控制多路復(fù)用器邏輯534的gt隊(duì)列槽可能需要來自源和/或目的地的一個(gè)或多個(gè)顯式清除信號。
當(dāng)由gt指針514指示的gt有效寄存器堆522的條目指示對應(yīng)隊(duì)列槽無效時(shí),不執(zhí)行g(shù)t傳送。相反,檢查be有效寄存器堆518以查看由公平指針506指示的條目是否指示be隊(duì)列槽寄存器堆526的對應(yīng)隊(duì)列槽是否有效。如果be有效寄存器堆518指示該條目無效,則依次檢查每個(gè)條目,直到發(fā)現(xiàn)有效條目。例如,在所描繪的實(shí)施例中,公平指針506指向寄存器526的頂端槽。然而,這個(gè)槽(和下一槽)被指示為無效。因而,選擇寄存器堆526的be2槽。be隊(duì)列槽寄存器堆526的這個(gè)隊(duì)列槽中的信息(例如方向信息)則用于控制多路復(fù)用器邏輯534。當(dāng)一個(gè)或多個(gè)具體gt隊(duì)列槽在延長的一段時(shí)間內(nèi)保持空時(shí),公平指針506幫助避免支持寄存器526的一個(gè)或多個(gè)隊(duì)列槽。在各種實(shí)施例中,公平指針506是可選的。
noc的路由器的各種端口中的公平指針506、be指針510和gt指針514可全局彼此同步。也就是,公平指針506可全都指向它們的相應(yīng)be隊(duì)列槽寄存器堆的相同be隊(duì)列槽,be指針510可全都指向它們的相應(yīng)be隊(duì)列槽寄存器堆的相同be隊(duì)列槽,并且gt指針514可全都指向它們的相應(yīng)gt隊(duì)列槽寄存器堆的相同gt隊(duì)列槽。這些全局指針可為隊(duì)列槽提供循環(huán)賽服務(wù)。
be傳送可被說成根據(jù)盡力而為通信方案通信,其中未提供有關(guān)等待時(shí)間或吞吐量的保證。gt傳送可被說成根據(jù)保證吞吐量通信方案通信,其中通過將預(yù)留資源用于gt傳送來確保gt傳送的最小吞吐量。
圖6例證了按照某些實(shí)施例執(zhí)行組合的gt+be數(shù)據(jù)發(fā)送的noc路由器的out端口450的另一示例部分。在所描繪的實(shí)施例中,be/gt選擇器502和指針被實(shí)現(xiàn)為基于移位寄存器的計(jì)數(shù)器。be/gt選擇器502的寄存器中的“1”指示gt傳送應(yīng)該發(fā)生,而“0”指示be傳送應(yīng)該發(fā)生。因而,在例證中實(shí)現(xiàn)了4:1的be/gt比率。公平指針506和gt指針514可由be/gt選擇器502實(shí)現(xiàn),并且從而每當(dāng)be/gt選擇器的輸出指示gt傳送時(shí)可遞增。be/gt選擇器502的反相輸出被饋送到與門626,其使be指針能夠由電路時(shí)鐘324時(shí)鐘控制。從而,當(dāng)be/gt選擇器502指示be傳送時(shí),每個(gè)電路時(shí)鐘循環(huán)中be指針510都遞增。
多路復(fù)用器邏輯602基于be/gt選擇器502指示gt傳送還是be傳送來選擇公平指針506或be指針510。槽選擇邏輯610從相關(guān)指針位置開始確定寄存器堆526的下一有效隊(duì)列槽,并且如果en輸入信號活動(dòng)(指示選擇的gt隊(duì)列槽無效,或者be/gt選擇器502已經(jīng)指示be傳送被取代)則選擇這個(gè)隊(duì)列槽。如果be/gt選擇器指示gt傳送,并且gt指針選擇有效gt隊(duì)列槽,則gt傳送要發(fā)送。
來自選擇的隊(duì)列槽的方向信息通過或門614傳遞,以配置多路復(fù)用邏輯618和多路分解邏輯622以傳遞確認(rèn)信號。在每個(gè)時(shí)隙期間,這些srcack和destack信號嘗試分別在前向方向和反向方向穿過網(wǎng)絡(luò)。在任何核或路由器都存在這兩個(gè)確認(rèn)指示從源到目的地的完整信道。這個(gè)事件指示在下一時(shí)鐘循環(huán)期間沿信道的電路交換數(shù)據(jù)傳送。因而,方向信息在被傳遞到用于配置電路交換信道的方向的控制邏輯之前,通過觸發(fā)器606延遲。
接收的確認(rèn)信號可用于清除隊(duì)列槽。當(dāng)已經(jīng)接收到destack(來自目的地的確認(rèn)信號)和srcack(來自源的確認(rèn)信號)時(shí),清除信號630變得活動(dòng)。響應(yīng)于be傳送,清除信號630可清除當(dāng)前用于傳送數(shù)據(jù)的be隊(duì)列槽。來自源核的單獨(dú)srcclr信號可用于清除gt隊(duì)列槽。發(fā)送電路交換數(shù)據(jù)的核可跟蹤每個(gè)電路傳送流有多長,并且在最后一次傳送上,可發(fā)送srcclr信號以代替srcack信號。
圖7例證了按照某些實(shí)施例用于執(zhí)行組合的gt+be數(shù)據(jù)發(fā)送的示例方法。在步驟702,建立be/gt比率。這個(gè)比率定義路由器的端口對于由端口執(zhí)行的每個(gè)gt傳送將執(zhí)行多少be傳送。be/gt比率可用任何適合的方式建立。在一個(gè)實(shí)施例中,對應(yīng)于gt傳送的位在存儲(chǔ)元件中可被設(shè)置成高,而對應(yīng)于be傳送的位被設(shè)置成低(或反之亦然)。
在步驟704,確定下一傳送應(yīng)該是be傳送還是gt傳送。這可用任何適合的方式確定。例如,可讀取由與存儲(chǔ)元件關(guān)聯(lián)的指針指示的存儲(chǔ)元件(上面提到)的位置中的位,并且如果所得到的位是高,則確定要執(zhí)行g(shù)t傳送,而如果位是低,則確定要執(zhí)行be傳送(或反之亦然)。
如果在步驟704確定要執(zhí)行be傳送,則確定在由be指針指示的位置的be隊(duì)列槽是否有效。例如,隊(duì)列槽可與指示隊(duì)列槽是否有效的位關(guān)聯(lián)。如果隊(duì)列槽有效,則方法移動(dòng)到步驟710。如果隊(duì)列槽無效,則在步驟708找到下一有效的be隊(duì)列槽。在步驟710,提供來自be隊(duì)列槽的方向信息以配置電路交換信道。此類配置可涉及對于控制和/或數(shù)據(jù)信號配置多路復(fù)用邏輯或多路分解邏輯。在步驟712,使用所建立的電路交換信道傳送數(shù)據(jù)。盡管未示出,但該方法可在步驟712之后返回到步驟704。
如果在步驟704確定傳送將是gt傳送,則在步驟714確定在由gt指針指示的位置的gt隊(duì)列槽是否有效。如果gt隊(duì)列槽有效,則在步驟716提供來自gt隊(duì)列槽的方向信息以配置電路交換信道,并在步驟712使用電路交換信道傳送數(shù)據(jù)。如果gt隊(duì)列槽無效,則在步驟718,可以確定在由公平指針指示的位置的be隊(duì)列槽是否有效。如果be隊(duì)列槽無效,則在步驟720找到下一有效的be隊(duì)列槽。在步驟722,提供來自be隊(duì)列槽的方向信息以配置電路交換信道,并在步驟712使用電路交換信道傳送數(shù)據(jù)。
在圖7中例證的其中一些步驟可視情況而被重復(fù)、組合、修改或刪除,并且附加步驟也可被添加到流程圖。此外,步驟可按任何適合的次序執(zhí)行,不脫離具體實(shí)施例的范圍。
圖8例證了按照某些實(shí)施例用于執(zhí)行組合的gt+benoc中的動(dòng)態(tài)槽重新分配(dsr)的示例通信流程。dsr解決了gt資源中的沖突。由于gt隊(duì)列槽選擇的控制分布在核中,因此核可以同時(shí)請求相同信道資源。此外,由于gt資源預(yù)留任意長的時(shí)間量,無需附加技術(shù),因此資源沖突可導(dǎo)致無法忍受的長的信道設(shè)立延遲或網(wǎng)絡(luò)死鎖。一些解決方案可依賴于用戶避免gt沖突。然而,這個(gè)技術(shù)是勞動(dòng)密集的,受限于具體noc架構(gòu),并且需要noc應(yīng)用的全局知識(shí)。這阻止應(yīng)用從一個(gè)noc進(jìn)入具有不同拓?fù)浠蜿?duì)列槽數(shù)的另一noc。它還排除了應(yīng)用之間的隱私,例如在運(yùn)行多個(gè)虛擬機(jī)的noc中。
dsr徹底地搜索準(zhǔn)予所有g(shù)t請求的解決方案。用這種方式,它發(fā)現(xiàn)一種解決方案,只要在網(wǎng)絡(luò)內(nèi)的任何鏈路中都不超過gt帶寬就行。當(dāng)核請求已經(jīng)被保持的gt信道時(shí),之前的擁有者放棄對新請求的控制權(quán),并在不同的時(shí)隙中重試。這阻止任何次優(yōu)指配的gt傳送產(chǎn)生死鎖。例如,如果第一gt傳送已經(jīng)預(yù)留了端口的gt隊(duì)列槽,并且端口接收到對于該槽的另一gt請求,則對于第一gt傳送的預(yù)留從gt隊(duì)列槽中移除,并且第二gt請求被放置在隊(duì)列槽中。通知第一gt傳送的源,并且第一gt傳送可再次嘗試預(yù)留gt隊(duì)列槽(在隨后時(shí)間和/或在不同gt隊(duì)列槽上)。
在所描繪的實(shí)施例中,在框1,發(fā)生路由器204c與204f之間的第一gt傳送802。第一gt傳送802在沿路徑的每一個(gè)路由器中占用gt隊(duì)列槽0。對于gt隊(duì)列槽0的gt預(yù)留請求806與服務(wù)于gt傳送802的現(xiàn)有信道沖突。沒有dsr,請求806可能絕不可能被準(zhǔn)予,并且可能產(chǎn)生死鎖。在框2,將清除信號808(例如destclr信號)從沖突點(diǎn)發(fā)送到gt傳送802的源核,指令源結(jié)束該傳送。源核可使用預(yù)先確定的超時(shí)周期來解決對gt信道的依賴性。在框3,源核在導(dǎo)致每個(gè)路由器處的鏈路拆卸的信道上向所有路由器發(fā)送清除信號(例如srcclr信號)。在框4,在gt隊(duì)列槽1上重試gt傳送802,并且為gt傳送802成功建立電路交換信道。gt預(yù)留請求將數(shù)據(jù)存儲(chǔ)在gt隊(duì)列槽0中,并使用gt隊(duì)列槽0建立與gt預(yù)留請求關(guān)聯(lián)的gt傳送810。
圖9例證了按照某些實(shí)施例的用于執(zhí)行組合的gt+benoc中dsr的示例方法。在步驟902,接收指示第一gt隊(duì)列槽的第一預(yù)留請求分組。與第一預(yù)留分組關(guān)聯(lián)的方向信息可被存儲(chǔ)在第一gt隊(duì)列槽中。在步驟904,建立與第一預(yù)留分組關(guān)聯(lián)的電路交換信道??墒褂么鎯?chǔ)在第一gt隊(duì)列槽中的方向信息建立電路交換信道。
在步驟906,接收指示第一gt隊(duì)列槽的第二預(yù)留請求分組。預(yù)留請求分組可與不同于與接收的第一預(yù)留請求分組關(guān)聯(lián)的gt傳送的gt傳送關(guān)聯(lián)。gt傳送可以具有或者可以不具有不同的源和/或目的地。在步驟906,與第一預(yù)留請求關(guān)聯(lián)的電路交換信道被拆卸。這可涉及,沿從與電路交換信道關(guān)聯(lián)的gt傳送的源到目的地的路徑向路由器發(fā)送一個(gè)或多個(gè)清除信號。
在步驟910,建立與第二預(yù)留請求關(guān)聯(lián)的電路交換信道。這個(gè)信道可使用來自已經(jīng)被存儲(chǔ)在第一gt隊(duì)列中的第二預(yù)留請求的方向信息代替之前為第一預(yù)留請求存儲(chǔ)在那里的信息來建立。
在步驟912,接收指示第二gt隊(duì)列槽的預(yù)留請求分組。這個(gè)預(yù)留請求分組可與和第一預(yù)留請求分組關(guān)聯(lián)的同一gt傳送關(guān)聯(lián)。來自這個(gè)請求分組的方向信息可被寫到第二gt隊(duì)列槽。在步驟914,除了其它信息,還使用來自第二gt槽的方向信息重建第一電路交換信道。
在圖9中例證的其中一些步驟可視情況被重復(fù)、組合、修改或刪除,并且附加步驟也可被添加到流程圖。此外,步驟可按任何適合的次序執(zhí)行,不脫離具體實(shí)施例的范圍。
在各種實(shí)施例中,總網(wǎng)絡(luò)吞吐量可用4個(gè)be隊(duì)列槽和4個(gè)gt隊(duì)列槽最大化。使用較少的gt槽可提供比處理元件請求的更少的gt信道。增加gt槽的數(shù)量增加了業(yè)務(wù)靈活性,但增加了硬件要求,并通過在較大數(shù)量的槽之間劃分總gt帶寬,向每個(gè)傳送分配了更小帶寬。
圖10例證了按照一個(gè)實(shí)施例用于示例計(jì)算系統(tǒng)的框圖的另一實(shí)施例。在此圖中,描繪了按照本公開的片上系統(tǒng)(soc)設(shè)計(jì)的實(shí)施例。作為特定例證性示例,soc1000包含在用戶設(shè)備(ue)中。在一個(gè)實(shí)施例中,ue指的是由最終用戶用于通信的任何裝置,諸如手持電話、智能電話、平板、超薄筆記本、具有寬帶適配器的筆記本或任何其它類似通信裝置。經(jīng)常,ue連接到基站或節(jié)點(diǎn),其潛在地實(shí)質(zhì)上對應(yīng)于gsm網(wǎng)絡(luò)中的移動(dòng)臺(tái)(ms)。
在此,soc1000包含2個(gè)核,即1006和1007。類似于以上論述,核1006和1007可符合指令集架構(gòu),諸如基于intel?架構(gòu)coretm的處理器、高級微裝置公司(amd)處理器、基于mips的處理器、基于arm的處理器設(shè)計(jì)或其顧客、以及它們的被許可方或采納方。核1006和1007耦合到高速緩存控制器1008,其與總線接口單元1009和l2高速緩存1010關(guān)聯(lián),以與系統(tǒng)1000的其它部分通信?;ミB1010包含片上互連,諸如iosf、amba或上面討論的其它互連,其潛在地實(shí)現(xiàn)了所描述公開的一個(gè)或多個(gè)方面。
接口1010提供了到其它組件的通信信道,諸如與sim卡對接的訂戶身份模塊(sim)1030、保持引導(dǎo)代碼以便由核1006和1007執(zhí)行以初始化和引導(dǎo)soc1000的引導(dǎo)rom1035、與外部存儲(chǔ)器(例如dram1060)對接的sdram控制器1040、與非易失性存儲(chǔ)器(例如閃存1065)對接的閃存控制器1045、與外圍裝置對接的外圍控制器q1650(例如串行外圍接口)、顯示和接收輸入(例如啟用觸摸的輸入)的視頻編解碼器1020和視頻接口1025、執(zhí)行圖形相關(guān)計(jì)算的gpu1015等。這些接口中的任何接口都可結(jié)合本文描述的公開的各方面。
此外,系統(tǒng)例證了用于通信的外圍裝置,諸如藍(lán)牙模塊1070、3g調(diào)制解調(diào)器1075、gps1085和wifi1085。如上所述指出的,ue包含用于通信的無線電。因此,這些外圍通信模塊不全都需要。然而,在ue中,要包含用于外部通信的某種形式的無線電。
設(shè)計(jì)從創(chuàng)建到模擬到制作可經(jīng)過各種階段。表示設(shè)計(jì)的數(shù)據(jù)可用若干方式表示該設(shè)計(jì)。首先,這在仿真上是有用的,硬件可使用硬件描述語言(hdl)或另一功能描述語言表示。附加地,在設(shè)計(jì)過程的某些階段,可產(chǎn)生具有邏輯和/或晶體管門的電路級模型。更進(jìn)一步說,大多數(shù)設(shè)計(jì)在某一階段達(dá)到用硬件模型表示各種裝置的物理布局的數(shù)據(jù)級。在使用常規(guī)半導(dǎo)體制作技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是規(guī)定在用于產(chǎn)生集成電路的掩膜的不同掩膜層上各種特征的存在或缺乏的數(shù)據(jù)。在一些實(shí)現(xiàn)中,此類數(shù)據(jù)可以按數(shù)據(jù)庫文件格式存儲(chǔ),諸如圖形數(shù)據(jù)系統(tǒng)ii(gdsii)、開放藝術(shù)品系統(tǒng)互換標(biāo)準(zhǔn)(oasis)或類似格式。
在一些實(shí)現(xiàn)中,基于軟件的硬件模型以及hdl和其它功能描述語言對象可包含寄存器傳送語言(rtl)文件,以及其它示例。此類對象可以是機(jī)器可解析的,使得設(shè)計(jì)工具可接受hdl對象(或模型),對于所描述硬件的屬性解析hdl對象,并根據(jù)對象確定物理電路和/或片上布局。設(shè)計(jì)工具的輸出可用于制造物理裝置。比如,設(shè)計(jì)工具可根據(jù)hdl對象確定各種硬件和/或固件元件的配置,諸如總線寬度、寄存器(包含大小和類型)、存儲(chǔ)器塊、物理鏈路路徑、構(gòu)造拓?fù)?,以及將被?shí)現(xiàn)以便實(shí)現(xiàn)在hdl對象中建模的系統(tǒng)的其它屬性。設(shè)計(jì)工具可包含用于確定片上系統(tǒng)(soc)以及其它硬件裝置的拓?fù)浜蜆?gòu)造配置的工具。在一些實(shí)例中,hdl對象可被用作用于開發(fā)可由制造設(shè)備用于制造所描述硬件的模型和設(shè)計(jì)文件的基礎(chǔ)。實(shí)際上,hdl對象本身可被提供為制造系統(tǒng)軟件的輸入以引起所描述的硬件。
在設(shè)計(jì)的任何表示中,數(shù)據(jù)可被存儲(chǔ)在任何形式的機(jī)器可讀介質(zhì)中。存儲(chǔ)器或者磁或光存儲(chǔ)裝置諸如盤可以是機(jī)器可讀介質(zhì),以存儲(chǔ)經(jīng)由調(diào)制的或以別的方式生成的光波或電波發(fā)送的信息以發(fā)送此類信息。當(dāng)指示或攜帶代碼或設(shè)計(jì)的電載波被發(fā)送到執(zhí)行電信號的拷貝、緩沖、重發(fā)的程度時(shí),進(jìn)行新拷貝。從而,通信供應(yīng)商或網(wǎng)絡(luò)供應(yīng)商可在有形機(jī)器可讀介質(zhì)上至少暫時(shí)存儲(chǔ)實(shí)施本公開實(shí)施例的技術(shù)的制品,諸如編碼到載波中的信息。
本文所使用的模塊指的是硬件、軟件和/或固件的任何組合。作為示例,模塊包含與非暫態(tài)介質(zhì)關(guān)聯(lián)的硬件(諸如微控制器),以存儲(chǔ)適合于由微控制器執(zhí)行的代碼。因此,在一個(gè)實(shí)施例中,提到模塊指的是硬件,其專門配置成識(shí)別和/或執(zhí)行在非暫態(tài)介質(zhì)上保持的代碼。更進(jìn)一步說,在另一實(shí)施例中,使用模塊指的是包含代碼的非暫態(tài)介質(zhì),其特別適合于由微控制器執(zhí)行以執(zhí)行預(yù)定操作。并且可以推斷,在又一實(shí)施例中,術(shù)語模塊(在此示例中)可指的是微控制器和非暫態(tài)介質(zhì)的組合。被例證為單獨(dú)的常見的模塊邊界通常改變并潛在地交疊。例如,第一和第二模塊可以共享硬件、軟件、固件或它們的組合,不過潛在地保留一些獨(dú)立的硬件、軟件或固件。在一個(gè)實(shí)施例中,術(shù)語邏輯的使用包含硬件,諸如晶體管、寄存器或其它硬件,諸如可編程邏輯器件。
使用短語“以”或“配置成”在一個(gè)實(shí)施例中指的是布置、放在一起、制造、提供銷售、進(jìn)口和/或設(shè)計(jì)設(shè)備、硬件、邏輯或元件以執(zhí)行指定或確定任務(wù)。在此示例中,不操作的設(shè)備或其元件仍“配置成”執(zhí)行指定任務(wù),如果它被設(shè)計(jì)、耦合和/或互連以執(zhí)行所述指定任務(wù)的話。作為純例證性示例,邏輯門可在操作期間提供0或1。但“配置成”向時(shí)鐘提供使能信號的邏輯門不包含可提供1或0的每個(gè)潛在邏輯門。相反,邏輯門是以某種方式耦合的,在操作期間1或0輸出啟動(dòng)時(shí)鐘。再次指出,使用術(shù)語“配置成”不需要操作,而是相反聚焦在設(shè)備、硬件和/或元件的潛伏狀態(tài),其中在潛伏狀態(tài),設(shè)備、硬件和/或元件設(shè)計(jì)成當(dāng)設(shè)備、硬件和/或元件操作時(shí)執(zhí)行具體任務(wù)。
更進(jìn)一步說,使用短語“能夠/以”和/或“可操作以”在一個(gè)實(shí)施例中指的是以此類方式設(shè)計(jì)的某一設(shè)備、邏輯、硬件和/或元件,以允許以規(guī)定方式使用設(shè)備、邏輯、硬件和/或元件。如上面指出的,使用“以”、“能夠”或“可操作以”在一個(gè)實(shí)施例中指的是設(shè)備、邏輯、硬件和/或元件的潛伏狀態(tài),其中設(shè)備、邏輯、硬件和/或元件不操作,但以此類方式設(shè)計(jì)成允許以規(guī)定方式使用設(shè)備。
本文所使用的“值”包含數(shù)字、狀態(tài)、邏輯狀態(tài)或二進(jìn)制邏輯狀態(tài)的任何已知表示。經(jīng)常,邏輯電平、邏輯值或邏輯上的值的使用也被稱為1和0,其簡單地表示二進(jìn)制邏輯狀態(tài)。例如,1指的是高邏輯電平,而0指的是低邏輯電平。在一個(gè)實(shí)施例中,存儲(chǔ)單元,諸如晶體管或閃存單元,能夠保持單個(gè)邏輯值或多個(gè)邏輯值。然而,已經(jīng)使用了計(jì)算機(jī)系統(tǒng)中的值的其它表示。例如,十進(jìn)制數(shù)10也可表示為二進(jìn)制值1010和十六進(jìn)制字母a。因此,值包含能夠在計(jì)算機(jī)系統(tǒng)中保持的信息的任何表示。
而且,狀態(tài)可由值或值的部分來表示。作為示例,第一值,諸如邏輯1,可表示默認(rèn)或初始狀態(tài),而第二值,諸如邏輯0,可表示非默認(rèn)狀態(tài)。此外,術(shù)語“重置”和“設(shè)置”在一個(gè)實(shí)施例中分別指的是默認(rèn)和更新的值或狀態(tài)。例如,默認(rèn)值潛在地包含高邏輯值,即重置,而更新的值潛在地包含低邏輯值,即設(shè)置。要指出,可利用值的任何組合來表示任何數(shù)量的狀態(tài)。
上面闡述的方法、硬件、軟件、固件或代碼的實(shí)施例可經(jīng)由存儲(chǔ)在機(jī)器可訪問、機(jī)器可讀、計(jì)算機(jī)可訪問或計(jì)算機(jī)可讀介質(zhì)上的可由處理元件執(zhí)行的指令或代碼實(shí)現(xiàn)。非暫態(tài)機(jī)器可訪問/可讀介質(zhì)包含提供(即存儲(chǔ)和/或發(fā)送)機(jī)器(諸如計(jì)算機(jī)或電子系統(tǒng))可讀形式的信息的任何機(jī)構(gòu)。例如,非暫態(tài)機(jī)器可訪問介質(zhì)包含隨機(jī)存取存儲(chǔ)器(ram),諸如靜態(tài)ram(sram)或動(dòng)態(tài)ram(dram);rom;磁或光存儲(chǔ)介質(zhì);閃存裝置;電存儲(chǔ)裝置;光存儲(chǔ)裝置;聲存儲(chǔ)裝置;用于保持從暫態(tài)(傳播)信號(例如載波、紅外信號、數(shù)字信號)接收的信息的其它形式存儲(chǔ)裝置等,它們有別于可從其接收信息的非暫態(tài)介質(zhì)。
用于對邏輯編程以執(zhí)行本公開實(shí)施例的指令可被存儲(chǔ)在系統(tǒng)中的存儲(chǔ)器內(nèi),諸如dram、高速緩存、閃存或其它存儲(chǔ)裝置內(nèi)。更進(jìn)一步說,指令可經(jīng)由網(wǎng)絡(luò)或通過其它計(jì)算機(jī)可讀介質(zhì)分布。從而,機(jī)器可讀介質(zhì)可包含用于存儲(chǔ)或發(fā)送機(jī)器(例如計(jì)算機(jī))可讀形式的信息的任何機(jī)構(gòu),但不限于軟盤、光盤、壓縮盤只讀存儲(chǔ)器(cd-rom)和磁光盤、只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、可擦除可編程只讀存儲(chǔ)器(eprom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、磁卡或光卡、閃存或在因特網(wǎng)上經(jīng)由電、光、聲或其它形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)發(fā)送信息時(shí)使用的有形機(jī)器可讀存儲(chǔ)裝置。相應(yīng)地,計(jì)算機(jī)可讀介質(zhì)包含適合于存儲(chǔ)或發(fā)送機(jī)器(例如計(jì)算機(jī))可讀形式的電子指令或信息的任何類型的有形機(jī)器可讀介質(zhì)。
一個(gè)或多個(gè)實(shí)施例可提供一種設(shè)備、系統(tǒng)、機(jī)器可讀存儲(chǔ)裝置、機(jī)器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如片上網(wǎng)絡(luò)的路由器)、方法和非暫態(tài)機(jī)器可讀介質(zhì)(包含表示結(jié)構(gòu)的信息,結(jié)構(gòu)當(dāng)制造時(shí)配置成)包括:端口,接收多個(gè)預(yù)留請求分組;至少一個(gè)保證吞吐量隊(duì)列槽和至少一個(gè)盡力而為隊(duì)列槽,隊(duì)列槽存儲(chǔ)與所述多個(gè)預(yù)留請求分組中的預(yù)留請求分組關(guān)聯(lián)的信息;選擇器,基于比率在所述至少一個(gè)保證吞吐量隊(duì)列槽與所述至少一個(gè)盡力而為隊(duì)列槽之間進(jìn)行選擇;以及信道配置邏輯,基于存儲(chǔ)在按照所述選擇器的選擇標(biāo)識(shí)的隊(duì)列槽中的信息建立電路交換信道。
在至少一個(gè)示例中,路由器要為與存儲(chǔ)在保證吞吐量隊(duì)列槽中的信息關(guān)聯(lián)的電路交換數(shù)據(jù)傳送提供保證吞吐量。
在至少一個(gè)示例中,路由器要為與存儲(chǔ)在盡力而為隊(duì)列槽中的信息關(guān)聯(lián)的電路交換數(shù)據(jù)傳送提供盡力而為遞送。
在至少一個(gè)示例中,多個(gè)預(yù)留請求分組中的預(yù)留請求分組要標(biāo)識(shí)至少一個(gè)保證吞吐量隊(duì)列槽或至少一個(gè)盡力而為隊(duì)列槽中的隊(duì)列槽,其中與預(yù)留請求分組關(guān)聯(lián)的信息要被存儲(chǔ)在標(biāo)識(shí)的隊(duì)列槽中。
在至少一個(gè)示例中,與預(yù)留請求分組關(guān)聯(lián)的信息包括標(biāo)識(shí)路由器的不同端口的方向信息。
在至少一個(gè)示例中,路由器進(jìn)一步包括如下邏輯:確定多個(gè)預(yù)留請求分組中的預(yù)留請求分組標(biāo)識(shí)被占用的盡力而為隊(duì)列槽,并延遲處理該預(yù)留請求分組。
在至少一個(gè)示例中,路由器進(jìn)一步包括如下邏輯:確定多個(gè)預(yù)留請求分組中的第一預(yù)留請求分組標(biāo)識(shí)用與多個(gè)預(yù)留請求分組中的第二預(yù)留請求分組關(guān)聯(lián)的信息占用的第一保證吞吐量隊(duì)列槽;以及用與所述第一預(yù)留請求分組關(guān)聯(lián)的信息改寫所述第一保證吞吐量隊(duì)列槽中的所述信息。
在至少一個(gè)示例中,所述邏輯要進(jìn)一步向與所述第二預(yù)留請求分組關(guān)聯(lián)的電路交換傳送的源發(fā)送清除信號。
在至少一個(gè)示例中,所述端口要接收始發(fā)自源的預(yù)留請求分組,預(yù)留請求分組響應(yīng)于所述清除信號而發(fā)送,預(yù)留請求分組標(biāo)識(shí)至少一個(gè)保證吞吐量隊(duì)列槽的不同保證吞吐量隊(duì)列槽。
在至少一個(gè)示例中,基于存儲(chǔ)在保證吞吐量隊(duì)列槽中的信息的電路交換信道和基于存儲(chǔ)在盡力而為隊(duì)列槽中的信息的電路交換信道要在不同時(shí)間在所述路由器的同一鏈路上發(fā)送數(shù)據(jù)。
在至少一個(gè)示例中,選擇器包括具有要指示至少一個(gè)保證吞吐量隊(duì)列槽的隊(duì)列槽還是至少一個(gè)盡力而為隊(duì)列槽的隊(duì)列槽要用于建立電路交換信道的輸出的移位寄存器。
在至少一個(gè)示例中,當(dāng)按照選擇器的選擇標(biāo)識(shí)的保證吞吐量隊(duì)列槽無效時(shí),要使用盡力而為隊(duì)列槽建立電路交換信道。
一個(gè)或多個(gè)實(shí)施例可提供一種設(shè)備、系統(tǒng)、機(jī)器可讀存儲(chǔ)裝置、機(jī)器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如路由器端口)、方法和非暫態(tài)機(jī)器可讀介質(zhì)(包含表示結(jié)構(gòu)的信息,結(jié)構(gòu)當(dāng)制造時(shí)配置成):接收第一分組交換預(yù)留請求;根據(jù)盡力而為通信方案將與所述第一分組交換預(yù)留請求關(guān)聯(lián)的數(shù)據(jù)通過第一電路交換信道傳遞;接收第二分組交換預(yù)留請求;以及根據(jù)保證吞吐量通信方案將與所述第二分組交換預(yù)留請求關(guān)聯(lián)的數(shù)據(jù)通過第二電路交換信道傳遞。
在至少一個(gè)示例中,路由器端口要進(jìn)一步在不同時(shí)間使用路由器端口的同一鏈路傳遞與第一分組交換預(yù)留請求關(guān)聯(lián)的數(shù)據(jù)和與第二分組交換預(yù)留請求關(guān)聯(lián)的數(shù)據(jù)。
在至少一個(gè)示例中,路由器端口要進(jìn)一步基于路由器端口存儲(chǔ)的比率在盡力而為數(shù)據(jù)傳送與保證吞吐量數(shù)據(jù)傳送之間進(jìn)行選擇。
在至少一個(gè)示例中,當(dāng)接收到第三分組交換預(yù)留請求時(shí),路由器端口要進(jìn)一步終止與第二分組交換預(yù)留請求關(guān)聯(lián)的數(shù)據(jù)傳送,第三分組交換預(yù)留請求將請求要使用由與第二分組交換預(yù)留請求關(guān)聯(lián)的所述數(shù)據(jù)傳送使用的至少一個(gè)資源的保證吞吐量傳送。
一個(gè)或多個(gè)實(shí)施例可提供一種設(shè)備、系統(tǒng)、機(jī)器可讀存儲(chǔ)裝置、機(jī)器可讀介質(zhì)、基于硬件和/或軟件的邏輯(例如路由器端口)、方法和非暫態(tài)機(jī)器可讀介質(zhì)(包含表示結(jié)構(gòu)的信息,結(jié)構(gòu)當(dāng)制造時(shí)配置成):包括多個(gè)核,每個(gè)核都與片上網(wǎng)絡(luò)的路由器關(guān)聯(lián)。路由器包括多個(gè)端口集。端口集包括輸出端口。輸出端口包括:邏輯,接收多個(gè)預(yù)留請求分組;至少一個(gè)保證吞吐量隊(duì)列槽和至少一個(gè)盡力而為隊(duì)列槽,隊(duì)列槽存儲(chǔ)與所述多個(gè)預(yù)留請求分組中的預(yù)留請求分組關(guān)聯(lián)的信息;選擇器,基于在所述片上網(wǎng)絡(luò)的所述選擇器之間共用的比率,在所述至少一個(gè)保證吞吐量隊(duì)列槽與所述至少一個(gè)盡力而為隊(duì)列槽之間進(jìn)行選擇;以及信道配置邏輯,基于存儲(chǔ)在要按照所述選擇器的選擇來標(biāo)識(shí)的隊(duì)列槽中的信息,建立電路交換信道。
此說明書通篇提到“一個(gè)實(shí)施例”或“實(shí)施例”是指結(jié)合該實(shí)施例描述的具體特征、結(jié)構(gòu)或特性可包含在本公開的至少一個(gè)實(shí)施例中。從而,在此說明書通篇各處出現(xiàn)的短語“在一個(gè)實(shí)施例中”或“在實(shí)施例中”不一定全都指的是同一實(shí)施例。而且,在一個(gè)或多個(gè)實(shí)施例中,可以任何適合的方式組合具體特征、結(jié)構(gòu)或特性。
在前述說明書中,已經(jīng)參考特定示范實(shí)施例給出了詳細(xì)描述。然而,將顯而易見的是,在不脫離所附權(quán)利要求書中闡述的本公開的更廣泛的精神和范圍的前提下,可對其進(jìn)行各種修改和改變。說明書和附圖相應(yīng)地被視為例證性意義,而非限制性意義。更進(jìn)一步說,前面使用實(shí)施例以及其它示范語言不一定指的是相同實(shí)施例或相同示例,而是可指的是不同實(shí)施例或截然不同實(shí)施例,以及潛在地相同實(shí)施例。