本發(fā)明主要涉及到微處理器的片上網(wǎng)絡(luò)領(lǐng)域,特指一種基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法。
背景技術(shù):
隨著集成電路制造工藝遵循摩爾定律的快速發(fā)展,片上集成度的指數(shù)增長,微處理器等復雜的集成電路芯片的功耗越來越大,已經(jīng)接近封裝和散熱的極限,不但帶來生產(chǎn)和運維成本的增加,而且給芯片的穩(wěn)定性帶來巨大挑戰(zhàn)。三維片上網(wǎng)絡(luò)(3D-NoC)技術(shù)減小了全局互連線的長度并且以更低的功耗提供了更大的帶寬。然而由于互連線的縮短以及流量的增加產(chǎn)生了大量的熱量,為了減小面積、延遲等,眾核的排列更為緊密,由于塊堆疊以及更大功耗密度導致散熱更加的困難,從而導致更高的功耗密度,因此會導致更嚴重的溫度問題。同時,更長的熱消散路徑以及不同層之間的熱導不同,導致即使一個流量分配平衡的網(wǎng)絡(luò),溫度的分配也是不平衡的。溫度問題會影響系統(tǒng)性能,增加漏流功耗,這些反過來又作用于溫度,進一步導致更加嚴重的溫度問題,因此大部分的微處理器的廠商將對CPU主存的競爭轉(zhuǎn)向?qū)φw體系結(jié)構(gòu)的研究,做到性能和功耗的均衡。
在三維片上網(wǎng)絡(luò)(NoC)體系結(jié)構(gòu)中,不同的互連模塊通過路由節(jié)點連接,一個三維Mesh 拓撲結(jié)構(gòu)的NoC,每個節(jié)點都嵌入一個路由器負責與相鄰節(jié)點連接,每個路由器有東(E)、南(S)、西(W)、北(N)、上(UP)、下(DOWN)和本地(LO)七個端口,每個端口帶有相應(yīng)的輸入緩沖區(qū),其中本地端口與處理節(jié)點相連。在NoC 設(shè)計中,緩沖區(qū)大小直接影響數(shù)據(jù)包的傳輸延時,因此對存在嚴重資源限制的NoC的緩沖區(qū)資源做出合理的分配是NoC 研究的熱點之一。
為了解決溫度問題,一些在時間和空間上對溫度進行管理的方法被普遍的提出和應(yīng)用,其中最主要的是動態(tài)溫度管理和溫度感知自適應(yīng)路由。對于采用動態(tài)溫度管理的方法,會極大的降低網(wǎng)絡(luò)的有效性并導致較低的吞吐率,使規(guī)則的拓撲結(jié)構(gòu)將會變的不規(guī)則,流量將會被擁塞在扼殺節(jié)點處,增大傳輸延時,極大影響了整個系統(tǒng)的性能和吞吐率;對于一些路由調(diào)節(jié)算法,以前大部分的工作只考慮了溫度問題或是只考慮了流量問題,傳統(tǒng)的選擇策略基于溫度問題進行路徑的選擇會導致局部的擁塞問題,造成流量的極大不均衡并由此導致溫度的不平衡,基于流量信息進行路徑的選擇導致未察覺潛在的熱點,造成巨大的性能影響。
綜上所述,將動態(tài)溫度管理方法和自適應(yīng)路由算法相結(jié)合將會成為解決大規(guī)模3D-NoC問題的很好的方法。在這一方面,當前最新的技術(shù)是一種簡單的動態(tài)緩沖區(qū)擁塞感知路由技術(shù),這種技術(shù)根據(jù)相鄰路由間的溫度增長率的比值來進行緩沖區(qū)的動態(tài)調(diào)控,在路由方面采用環(huán)形擁塞感知路由和垂直路由相結(jié)合的路由選擇算法,在選擇策略方面采用一種基于緩沖區(qū)利用率大小的方法來進行路徑選擇。
但是上述方法仍然存在著一些問題,例如該技術(shù)采用的根據(jù)溫度增長率比值對緩沖區(qū)進行的調(diào)控不是很精確,僅考慮溫度的增長率會忽略溫度基數(shù)的問題,造成錯誤的調(diào)控;同時因為采用相鄰路由間的溫度增長率的比較,結(jié)合溫度增長率自身的特點會導致及其頻繁的調(diào)控,也會造成大量的功耗。該技術(shù)采用的垂直路由方法將大量的傳輸集中在底層,這樣雖然有降低溫度的可能性,但是會造成大量的擁塞,同時增加傳輸延遲。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種原理簡單、易實現(xiàn)、功耗較低、準確度和靈活性高的基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
一種基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法,其步驟為:
S1:計算溫度等級;獲得當前節(jié)點的溫度,預(yù)測得到下一時刻的溫度值,并得到當前溫度的變化速度,進一步得到經(jīng)過t時間的溫度值;將溫度分為若干個等級,當t時間后的溫度值達到某等級時,給定溫度等級指示值;
S2:將溫度等級指示值作為分級指示信號送入與當前節(jié)點相連的周邊路由節(jié)點,根據(jù)分級指示信號對緩沖區(qū)大小進行調(diào)節(jié)。
作為本發(fā)明的進一步改進:所述步驟S1的具體步驟為:
S101:得到當前的溫度Tnow,預(yù)測得到下一時間的溫度Tpre,時間間隔為tk,由此計算出溫度的變化速度為(Tpre-Tnow)/tk;
S102:結(jié)合當前的溫度與給定的時間段t,計算t時刻后的溫度Tt=Tnow+t*( Tpre-Tnow) /tk;
S103:將溫度分為幾個等級,當溫度達到等級要求時,給定溫度等級指示值,用于下一階段緩沖區(qū)調(diào)控。
作為本發(fā)明的進一步改進:所述步驟S2中,當溫度增加達到設(shè)定等級時,將相應(yīng)緩沖區(qū)調(diào)??;當溫度減小又低于設(shè)定等級時,將相應(yīng)緩沖區(qū)調(diào)大,以達到緩沖區(qū)的階梯控制。
作為本發(fā)明的進一步改進:所述步驟S2中,在節(jié)點之間進行溫度等級信號的傳輸;當?shù)玫搅讼鄳?yīng)的溫度等級信號后,每個節(jié)點與各個方向相鄰節(jié)點均由一個溫度等級指示信號線連接,用來傳輸溫度等級信號。
作為本發(fā)明的進一步改進:所述節(jié)點將一個方向上的溫度等級指示信號通過temp_level端口經(jīng)過信號線temp_level_to_d傳輸給下個路由對應(yīng)方向的temp_level_neighbor端口,其中d代指方向;每個路由通過每個方向上的temp_level_neighbor端口的信號值對每個方向上的緩沖區(qū)大小進行調(diào)節(jié)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:本發(fā)明的基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法,可以極為方便的得到當前節(jié)點的溫度等級,根據(jù)溫度等級,對其周邊路由相對于其方向上的緩沖區(qū)進行調(diào)整,具有調(diào)節(jié)方便,功耗低,溫控效果好的優(yōu)點,最終能夠準確的控制緩沖區(qū)的大小,減少頻繁而無用的調(diào)控,降低調(diào)控所產(chǎn)生的總功耗,并且增加了調(diào)控的力度與靈活性。
附圖說明
圖1是本發(fā)明方法的整體流程示意圖。
圖2是本發(fā)明在具體應(yīng)用實例中溫度等級的計算流程圖。
圖3是本發(fā)明在具體應(yīng)用實例中進行緩沖區(qū)調(diào)節(jié)的流程示意圖。
圖4是本發(fā)明在具體應(yīng)用實例中路由緩沖區(qū)的原理示意圖。
具體實施方式
以下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進一步詳細說明。
本發(fā)明所提及的“緩沖區(qū)”是指路由的輸入緩沖區(qū),用來緩存進入路由的飛片,等待路由計算、開關(guān)分配等一系列后續(xù)的操作。目前提出的大多數(shù)片上路由的緩沖區(qū)管理使用的是FIFO策略,使用簡單的蟲孔片上路由器結(jié)構(gòu),以飛片作為最小的流控單元進行傳輸控制,本發(fā)明正是基于上述的結(jié)構(gòu)及功能提出了本調(diào)節(jié)方法。
如圖1所示,本發(fā)明的基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法,步驟為:
S1:計算溫度等級;
采用傳感器獲得當前節(jié)點的溫度,并根據(jù)預(yù)測算法得到下一時刻的溫度值,根據(jù)計算得到當前溫度的變化速度(溫度變化率),進一步得到經(jīng)過t時間的溫度值;將溫度分為幾個等級,當t時間后的溫度值達到某等級時,給定溫度等級指示值,以便于下一階段緩沖區(qū)調(diào)控。
即:如圖2所示,利用傳感器得到當前的溫度Tnow,使用簡單的預(yù)測方法得到下一時間的溫度Tpre,時間間隔為tk,由此計算出溫度的變化速度為(Tpre-Tnow)/tk;結(jié)合當前的溫度與給定的時間段t,計算t時刻后的溫度Tt=Tnow+t*( Tpre-Tnow) /tk;同時通過一系列的研究與實驗,將溫度分為幾個等級,當溫度達到等級要求時,給定溫度等級指示值,以便于下一階段緩沖區(qū)調(diào)控。
S2:將溫度等級指示值(分級指示信號)送入與當前節(jié)點相連的周邊路由節(jié)點,根據(jù)溫度等級指示值(分級指示信號)對緩沖區(qū)大小進行調(diào)節(jié)。
當溫度增加達到某些等級時,按照要求將緩沖區(qū)調(diào)??;當溫度減小又低于某些等級時,按照要求將緩沖區(qū)調(diào)大,以達到緩沖區(qū)的階梯控制,致使更少的包穿過過熱路由;而堆積在過熱路由的入棧緩沖區(qū)部分,同時因為熱是由包的流動而產(chǎn)生的,并不會因為包的堆積而使其過熱,因此這樣做并不會加重過熱路由的負擔,還可以達到將過熱路由同時變?yōu)閾砣酚傻淖饔?,以方便之后的路由選擇。
在上述過程中,需要在節(jié)點之間傳輸溫度等級信號;即,當?shù)玫搅讼鄳?yīng)的溫度等級后,每個節(jié)點與各個方向相鄰節(jié)點均由一個溫度等級指示信號線連接,用來傳輸溫度等級信號。對于每個方向上,如圖3所示,將該方向上的溫度等級指示信號通過temp_level端口經(jīng)過信號線temp_level_to_d(d代指方向)傳輸給下個路由對應(yīng)方向的temp_level_neighbor端口,每個路由通過每個方向上的temp_level_neighbor端口的信號值對每個方向上的緩沖區(qū)大小進行調(diào)節(jié)。
在具體應(yīng)用時,每個路由器有七個端口及相應(yīng)的輸入緩沖區(qū),但此處不考慮本地端口,垂直方向上采用一個路由算法,在下面也會介紹,此處只考慮東西南北四個端口,如圖4所示,一個路由節(jié)點與其周邊節(jié)點相連的關(guān)系,取A-H為例,在進行傳輸時,如果21不為滿,則可以將飛片入棧,根據(jù)一系列的規(guī)則與計算得到輸出的方向,同時,等待可以傳輸該飛片時按照先進先出的規(guī)則進行傳輸。當?shù)玫焦?jié)點A的t時刻溫度大于溫度極限1時,對于H路由,北方向上的temp_level_neighbor信號就為T1,因此北方向上的緩沖區(qū)21按照T1大小進行改變,為max_buffer_size-2*T1,以達到更少的包穿過A,控制A的溫度,并且將包擁塞在A部分,將過熱區(qū)變?yōu)閾砣麉^(qū),這樣當繞過擁塞區(qū)的時候,就同時也繞過了過熱區(qū)域,如果溫度仍然增高,預(yù)測t時刻溫度到達T2時,將緩沖區(qū)改為max_buffer_size-2*T2,同理繼續(xù)增高則緩沖區(qū)繼續(xù)減小,如果t時刻溫度降低導致低于某些值時,將緩沖區(qū)的值進行相對于減小的增加,其他方向上與A方向原理相同。
單純的根據(jù)溫度大小進行判斷會存在溫度高而變化率低或溫度低而變化率高等情況,而單純的根據(jù)變化率則會存在雖然變化率很大,但因為溫度基數(shù)低而導致的溫度不高或雖然變化率很小,但因為溫度基數(shù)高而導致的溫度過高問題。本發(fā)明的基于溫度等級的超前階梯式緩沖區(qū)調(diào)節(jié)方法,采用結(jié)合當前溫度與當前溫度變化速度的方法,根據(jù)一定的計算得出的溫度等級作為調(diào)控的依據(jù),而不是簡單的溫度大小或溫度變化率大小進行調(diào)控,這可以有效的避免上述問題造成的錯誤或多余調(diào)控,增加調(diào)控的準確性。
同時溫度是實時變化的,采用某一節(jié)點自身的一些參數(shù)進行計算控制而不是與周圍節(jié)點的比較關(guān)系進行控制,這可以使溫控不受周圍環(huán)境溫度影響,防止了周圍溫度過高,造成本節(jié)點相對溫度低而產(chǎn)生的過熱節(jié)點未調(diào)控情況,導致的燒毀或溫度不平衡;或者周圍溫度過低,造成本節(jié)點相對溫度高而產(chǎn)生的過低節(jié)點被調(diào)控,導致多余的調(diào)控和資源的浪費。此外比較進行控制將會產(chǎn)生頻繁的比值變化,需要進行頻繁的調(diào)控,而采用當溫度高于或低于某一定值時進行階梯式調(diào)控的方法,可以準確的控制緩沖區(qū)的大小,減少頻繁而無用的調(diào)控,降低調(diào)控所產(chǎn)生的總功耗,并且增加了調(diào)控的力度與靈活性。
以上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應(yīng)視為本發(fā)明的保護范圍。