專利名稱::一種在處理器中添加旁路來優(yōu)化片上網(wǎng)絡架構的方法
技術領域:
:本發(fā)明涉及處理器核內(nèi)部結構和片上網(wǎng)絡架構,尤其是涉及一種在處理器中添加旁路來優(yōu)化片上網(wǎng)絡架構的方法。
背景技術:
:片上設計有四個完全獨立的方面計算,存儲,通信,I/O。隨著處理器的處理能力不斷增強和數(shù)據(jù)密集的應用程序的不斷出現(xiàn),片上系統(tǒng)(SOC-SystemOnChip)面臨著通信方面的挑戰(zhàn)。這種挑戰(zhàn)引起越來越多的關注并引出了片上網(wǎng)絡(NOC-NetworkOnChip)的概念。片上網(wǎng)絡不是片內(nèi)通信的新的選擇,它是一種概念,是提供一種統(tǒng)一的片上通信的解決方案。片上網(wǎng)絡有點像宏觀網(wǎng)絡,可以隨著結點的增加而有效的擴展,其中結點包括數(shù)據(jù)處理部分,比如核,RAM等。片上網(wǎng)絡的架構與傳統(tǒng)的總線網(wǎng)絡相比有很多優(yōu)點1)更好的可擴展性。因為片上網(wǎng)絡的設計可以更好的重用模塊,而且擴展后也沒性能的損失。2)更寬的帶寬和更高的吞吐量。3)具有更好的性能。雖然片上網(wǎng)絡有上述的優(yōu)點,但片上網(wǎng)絡的設計也面臨重大約束和挑戰(zhàn)芯片面積約束,能耗負擔,延時等,各各因素在設計的時候又相互影響,當要增加通信的帶寬的時候,需要更多面積,但同時由于芯片面積的約束,又必須減少核的數(shù)量。在提高吞吐量的時候,必須在性能和能耗,性能與芯片面積約束之間考慮平衡。為了解決芯片面積約束,很多方法提出解決,和弱化其帶來的設計方面的瓶頸,比如提出新的路由器架構-核內(nèi)路由,有效節(jié)約了面積,又不會影響性能。能耗往往和性能聯(lián)系在一起,在原初的多核處理器的鏈接網(wǎng)絡更多注重性能,當網(wǎng)絡的設計用于大量的應用程序的時候,低能耗的問題就成了關注的焦點。隨著需求更寬的帶寬的時候,能耗也會顯著的增加。隨著電路級別的技術提高,高效低能耗的鏈路研究提出,基于此提出了新的能耗優(yōu)化架構。片上網(wǎng)絡的延時包括網(wǎng)絡傳輸,接收數(shù)據(jù)包存入緩沖區(qū)域的時間(包括等待的時間)和發(fā)送數(shù)據(jù)包的決策和等待時間,為了很好的解決延時,或者盡可能的降低延時時間,先前的技術往往關注與片上網(wǎng)絡的組成模塊,虛通道,接收和發(fā)送的決策控制,以及路由的策略,新的路由的架構。采取好的路由策略可以很好降低延時,提高性能;蟲洞路由的提出,不僅滿足低延時的需求,又滿足合適路由緩沖存儲區(qū)域的需求。在片上網(wǎng)絡傳輸中往往會出現(xiàn)死鎖的情況,這將會引起大量的延時,甚至影響整個片上網(wǎng)絡不能工作。于此出現(xiàn)了虛通道,以及動態(tài)虛通路規(guī)則等來解決死鎖,滿足低延時的需求。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種在處理器中添加旁路來優(yōu)化片上網(wǎng)絡架構的方法。本發(fā)明解決其技術問題采用的技術方案如下1)預測下一條指令是否對共享的內(nèi)存進行讀寫在處理器核內(nèi)添加預測模塊,根據(jù)指令寄存器和PC的值來預測下一條指令是否對共享的內(nèi)存、寄存器進行讀寫,并向多路開關器發(fā)送控制信號;2)選擇發(fā)送數(shù)據(jù)到附加的鎖存器在處理器核的ALU模塊后加入多路開關器,多路開關器輸入端口連接處理器的執(zhí)行周期所得到的結果,輸入端口分別連接數(shù)據(jù)存儲器和附加的旁路;實現(xiàn)執(zhí)行完的結果存儲到數(shù)據(jù)存儲器或者添加的鎖存器;當從預測模塊得到控制信號,那么多路開關器可以選擇的發(fā)送數(shù)據(jù)到附加的鎖存器,特別是處理器產(chǎn)生的中間結果包括鎖,互斥變量,單變量,數(shù)組,實現(xiàn)了原本只能存儲在本地的臨時寄存器的中間結果可以發(fā)送給片上網(wǎng)絡上的其他節(jié)點,同時節(jié)約了把數(shù)據(jù)存入到內(nèi)存的時間;3)發(fā)送數(shù)據(jù)到處理器LlCache與片上網(wǎng)絡共享的SendBuffer:第一、把LlCache部分劃分為3個部分發(fā)送數(shù)據(jù)到片上網(wǎng)絡的緩沖區(qū),路由表,和存儲處理器本身的數(shù)據(jù),也分別簡稱為SendBuffer,RouterTable,SMP;第二、把片上網(wǎng)絡的路由器的Buffer部分,分為存儲轉發(fā)數(shù)據(jù)包的Buffer和存儲本地的數(shù)據(jù)包的Buffer,然后把LlCache的SendBuffer與片上網(wǎng)絡的路由器共享,當作路由器的存儲本地的數(shù)據(jù)包的Buffer,從而減少了片上網(wǎng)絡的路由器Buffer的大小,實現(xiàn)了片上網(wǎng)絡的能耗的降低;第三、將鎖存器與SendBuffer連接,當時鐘的上升沿到達時,鎖存器就把數(shù)據(jù)發(fā)送到LICache的SendBuffer中,并等待處理器的發(fā)送指令,來把數(shù)據(jù)注入到片上網(wǎng)絡;4)數(shù)據(jù)注入到片上網(wǎng)絡當處理器執(zhí)行發(fā)送指令的時候,處理器首先把要發(fā)送數(shù)據(jù)的目的地址發(fā)送到LICache的RouterTable,然后把LICache的SendBuffer中的數(shù)據(jù)和RouterTable中的目的地址送到網(wǎng)絡接口封裝成數(shù)據(jù)包,再發(fā)送到片上網(wǎng)絡的路由器,注入到片上網(wǎng)絡,避免了處理器從內(nèi)存讀取數(shù)據(jù)再發(fā)送數(shù)據(jù)的過程,節(jié)約一個以上的時鐘周期,實現(xiàn)對片上系統(tǒng)的發(fā)送數(shù)據(jù)的優(yōu)化。本發(fā)明具有的有益效果是不僅可以使映射到各節(jié)點的處理器核對片上網(wǎng)絡的更好的支持,而且可以擴展處理器核的功能。1)本發(fā)明改進的處理器,可以和片上網(wǎng)絡的路由器共享LICache部分,并且通過附加的模塊,可以避免重復讀寫內(nèi)存,節(jié)約10個左右的時鐘周期,如果是存入寄存器,則會節(jié)約l-2個時鐘周期。這對于片上網(wǎng)絡結構來說,不僅可以降低對低延時的過分要求,而且可以不需要大量增加路由的Buffer部分,來降低延時,這樣就可以避免由于Buffer增加而帶來的能耗增加。2)本發(fā)明擴展的處理器的功能。處理器不僅可以傳輸處理完的結果,而且傳輸處理中的臨時保存的中間結果,對于其他節(jié)點處理器來說,它們可以得到更多的數(shù)據(jù),整個片上網(wǎng)絡的處理的功能得到擴展。對于具有更深程度的數(shù)據(jù)依賴的線程來說,各個線程之間可以進行大量的數(shù)據(jù)處理與傳輸,執(zhí)行的效率更高。圖1是處理器核改進和片上系統(tǒng)整合架構示意圖;圖2是發(fā)送數(shù)據(jù)流程圖。具體實施例方式下面結合附圖和實施例對本發(fā)明作進一步說明。處理器核改進和片上系統(tǒng)整合架構可以分為3個模塊改進的處理器模塊,片上網(wǎng)絡的路由器模塊,片上網(wǎng)絡的其他模塊。由于本方法是從處理器的角度進行優(yōu)化,和片上網(wǎng)絡的其他模塊沒有聯(lián)系,所以只討論下面前兩個模塊。改進的處理器模塊把處理器分成兩個部分處理器部分和添加的模塊部分。處理器模塊在圖1中包括IF(取指令模塊),ID(指令解析/讀寄存器周期),EXE(執(zhí)行周期),MEM(寫回存儲器),WB(寫回周期),LICache模塊。添加的模塊主要有Forecaster(預測模塊),Register(鎖存器模塊),包括旁路和連接的導線。在處理器部分,如圖1所示主要在執(zhí)行周期與寫回存儲器之間添加了多路選擇器,多路選擇器的控制信號來自添加模塊部分的預測模塊。添加的模塊部分主要由Bypass(旁路),鎖存器,預測模塊。其中的預測模塊,需要到指令存儲器取下一條指令進行分析,用來控制多路選擇器。片上網(wǎng)絡的路由器模塊,可以把路由器的本地Buffer(緩沖存儲區(qū))部分與處理器的LlCash部分共享,這一部分Buffer(緩沖存儲區(qū))又可以分為SendBuffer(發(fā)送數(shù)據(jù)緩沖區(qū))用于存儲發(fā)送數(shù)據(jù),Routerstable(路由表)用于存儲發(fā)送的目的地址。其他路由部分包括矩陣交叉開關,網(wǎng)絡接口等等。至于片上網(wǎng)絡的其他模塊,主要與路由器進行數(shù)據(jù)的交換。下面主要選取經(jīng)典的五級流水的來介紹一下本方法的工作流程如圖2所示,如果是其他的流水其工作流程與五級流水相類似(1)首先,IF(取指令模塊)開始執(zhí)行,取指令階段由PC(指令指針計數(shù)器)到指令存儲器根據(jù)PC的指針取到指令送到下一個模塊ID(譯碼/讀取寄存器)。這需要花費一個時鐘周期。同時預測模塊可以根據(jù)PC所指的指令是不是進行運算的,并且排除分支,跳轉,中斷等指令,并從指令寄存器中取出實際要執(zhí)行的下兩條指令到預測模塊,并對其指令迸行分析,看是不是對內(nèi)存或寄存器的寫并是否要發(fā)送到其他節(jié)點。分析完后發(fā)送控制信號到多路開關器。(2)隨后的一個時鐘周期,ID模塊開始執(zhí)行,解析指令并同時對寄存器進行讀操作。(3)然后EXE模塊開始執(zhí)行,但其運算完后,把結果送入到多路開關器,如果運算的結果是要送到其他節(jié)點的,就通過旁路送到添加的鎖存器保存,接著可以繼續(xù)執(zhí)行下條指令,否則就存入數(shù)據(jù)存儲器或者寫回到寄存器。(4)每一個時鐘周期,鎖存器的數(shù)據(jù)也送到SendBuffer中,當處理器執(zhí)行完發(fā)送的指令時,就把目的地址送入到RouterTable中,這時可以把數(shù)據(jù)和地址同過網(wǎng)絡接口,生成Packet(數(shù)據(jù)包)送入路由器矩陣交叉開關。最后,由路由器的路由計算,矩陣交叉開關分配,把數(shù)據(jù)注入到網(wǎng)絡發(fā)送給其他節(jié)點。權利要求1.一種在處理器中添加旁路來優(yōu)化片上網(wǎng)絡架構的方法,其特征在于1)預測下一條指令是否對共享的內(nèi)存進行讀寫在處理器核內(nèi)添加預測模塊,根據(jù)指令寄存器和PC的值來預測下一條指令是否對共享的內(nèi)存、寄存器進行讀寫,并向多路開關器發(fā)送控制信號;2)選擇發(fā)送數(shù)據(jù)到附加的鎖存器在處理器核的ALU模塊后加入多路開關器,多路開關器輸入端口連接處理器的執(zhí)行周期所得到的結果,輸入端口分別連接數(shù)據(jù)存儲器和附加的旁路;實現(xiàn)執(zhí)行完的結果存儲到數(shù)據(jù)存儲器或者添加的鎖存器;當從預測模塊得到控制信號,那么多路開關器可以選擇的發(fā)送數(shù)據(jù)到附加的鎖存器,特別是處理器產(chǎn)生的中間結果包括鎖,互斥變量,單變量,數(shù)組,實現(xiàn)了原本只能存儲在本地的臨時寄存器的中間結果可以發(fā)送給片上網(wǎng)絡上的其他節(jié)點,同時節(jié)約了把數(shù)據(jù)存入到內(nèi)存的時間;3)發(fā)送數(shù)據(jù)到處理器L1Cache與片上網(wǎng)絡共享的SendBuffer第一、把L1Cache部分劃分為3個部分發(fā)送數(shù)據(jù)到片上網(wǎng)絡的緩沖區(qū),路由表,和存儲處理器本身的數(shù)據(jù),也分別簡稱為SendBuffer,RouterTable,SMP;第二、把片上網(wǎng)絡的路由器的Buffer部分,分為存儲轉發(fā)數(shù)據(jù)包的Buffer和存儲本地的數(shù)據(jù)包的Buffer,然后把L1Cache的SendBuffer與片上網(wǎng)絡的路由器共享,當作路由器的存儲本地的數(shù)據(jù)包的Buffer,從而減少了片上網(wǎng)絡的路由器Buffer的大小,實現(xiàn)了片上網(wǎng)絡的能耗的降低;第三、將鎖存器與SendBuffer連接,當時鐘的上升沿到達時,鎖存器就把數(shù)據(jù)發(fā)送到L1Cache的SendBuffer中,并等待處理器的發(fā)送指令,來把數(shù)據(jù)注入到片上網(wǎng)絡;4)數(shù)據(jù)注入到片上網(wǎng)絡當處理器執(zhí)行發(fā)送指令的時候,處理器首先把要發(fā)送數(shù)據(jù)的目的地址發(fā)送到L1Cache的RouterTable,然后把L1Cache的SendBuffer中的數(shù)據(jù)和RouterTable中的目的地址送到網(wǎng)絡接口封裝成數(shù)據(jù)包,再發(fā)送到片上網(wǎng)絡的路由器,注入到片上網(wǎng)絡,避免了處理器從內(nèi)存讀取數(shù)據(jù)再發(fā)送數(shù)據(jù)的過程,節(jié)約一個以上的時鐘周期,實現(xiàn)對片上系統(tǒng)的發(fā)送數(shù)據(jù)的優(yōu)化。全文摘要本發(fā)明公開了一種在處理器中添加旁路來優(yōu)化片上網(wǎng)絡架構的方法。本發(fā)明的方法是通過在處理器核中添加旁路并增加輔助的模塊從而支持低延時的片上網(wǎng)絡的架構。本方法實現(xiàn)了處理器不僅可以傳輸處理完的結果,而且傳輸處理中的臨時保存的中間結果,對于其他節(jié)點處理器來說,它們可以得到更多的數(shù)據(jù),整個片上網(wǎng)絡的處理的功能得到擴展。對于具有更深程度的數(shù)據(jù)依賴的線程來說,各個線程之間可以進行大量的數(shù)據(jù)處理與傳輸,執(zhí)行的效率更高。本方法通過對處理器的改進,使其更好支持片上網(wǎng)絡的架構,更好的發(fā)揮片上網(wǎng)絡優(yōu)勢。文檔編號H04L12/56GK101534251SQ20091009764公開日2009年9月16日申請日期2009年4月13日優(yōu)先權日2009年4月13日發(fā)明者汪達舟,超王,繆良華,劍陳,陳天洲申請人:浙江大學