一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法
【專利摘要】本發(fā)明公開了一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法。其技術方案是:先使用多線程分析工具對多線程任務進行路徑分析,得到多線程任務的執(zhí)行流;再對多線程任務的執(zhí)行流進行分析,根據(jù)所有線程執(zhí)行流之間的關系,找到多線程任務的執(zhí)行流中最長的執(zhí)行流,該最長的執(zhí)行流即為關鍵路徑;然后對于處于關鍵路徑上的消息,標記為關鍵消息;在片上路由器進行消息轉發(fā)時,如果發(fā)現(xiàn)消息緩沖器中存在關鍵消息,則優(yōu)先轉發(fā)關鍵消息;如果消息緩沖器中沒有關鍵消息,則轉發(fā)一般的消息。本發(fā)明提高了關鍵路徑的執(zhí)行效率,減少整個多線程任務的執(zhí)行時間。
【專利說明】一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法
【技術領域】
[0001]本發(fā)明涉及片上網(wǎng)絡路由優(yōu)化【技術領域】,特別是涉及一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法。
【背景技術】
[0002]根據(jù)摩爾定律,微處理器的速度以及單片集成度每18個月就會翻一番。半導體工業(yè)在近幾十年的發(fā)展中一直在追隨著摩爾定律的節(jié)奏,微處理器的頻率也不斷攀升。隨著通用處理器的主頻突破4GHz,人們發(fā)現(xiàn)單一提升主頻的做法已經(jīng)不能再有效地提高性能,反而卻帶來了功耗的急劇上漲,高頻率的道路逐漸走到了盡頭。
[0003]于是對于計算機處理器的研究開始轉向多處理核心的方向。早期的對稱多處理器(SMP, Symmetric Mult1-Processor)多是采用在同一計算機上匯集一組CPU的方式,它們之間共享內(nèi)存子系統(tǒng)以及總線結構。之后由于納米級制造工藝的引入,SMP開始轉變?yōu)閱涡酒嗵幚砥?Chip Multiprocessor, CMP),即在同一芯片上集成多個處理核心,形成了現(xiàn)在我們所說的多核處理器。多核處理器之間直接共享緩存以及總線結構,大大地降低了線延遲,顯著提高了通訊效率。
[0004]多核處理器的各處理核執(zhí)行的程序之間有時需要進行數(shù)據(jù)共享與同步,因此其硬件結構必須支持核間通信。高效的通信機制是多核處理器高性能的重要保障。目前片上高效通信機制通常有兩種:基于共享總線的cache結構,基于片上網(wǎng)絡的互連結構?;诠蚕砜偩€的cache結構是指每個處理核擁有共享的二級或三級cache,用于保存比較常用的數(shù)據(jù),并通過總線進行通信。這種系統(tǒng)的優(yōu)點是結構簡單,通信速度快;缺點是可擴展性差。
[0005]共享總線顯然無法滿足大規(guī)模系統(tǒng)的需要。把互連網(wǎng)絡用于片上系統(tǒng)設計,解決片上組件之間的通訊問題,這就是片上網(wǎng)絡。片上網(wǎng)絡(NoC,Network On Chip)技術以其支持同時訪問、可靠性高、可重用性高等特點被認為是更加理想的大規(guī)模CMP互連技術。片上網(wǎng)絡克服了總線結構可擴展性差的缺點,為10億晶體管時代提供了一種可行的片上系統(tǒng)通訊機制。片上網(wǎng)絡除了可以連接更多的IP組件,與總線結構相比,還有可重用性等特點。
[0006]在片上系統(tǒng)設計中,可重用性是一個重要的設計原則??芍赜眯栽O計可以節(jié)省設計成本,提高設計的可靠性,縮短產(chǎn)品的上市周期。在基于總線的片上系統(tǒng)設計中,各個IP組件是重用的,但通訊結構卻無法重用。每個設計都需要重新設計通訊結構。在片上網(wǎng)絡中,除了各個組件是可重用的,片上通訊結構以及片上的通訊服務也是可重用的。設計新的系統(tǒng)時,在原有的系統(tǒng)上添加路由器和新的功能部件就可以了,以前的設計得到了重用,大大加快了設計的進度。同時,片上網(wǎng)絡還具有低功耗的特點,它采用全局異步和局部同步設計,端到端的通訊方式,只有參與通訊的組件是激活的,避免了總線結構中采用廣播方式進行通訊所造成的系統(tǒng)的功耗浪費,因此大大降低了系統(tǒng)的功耗。
[0007]在片上網(wǎng)絡中,由于處理器核的數(shù)量多,采用了片上路由器來進行數(shù)據(jù)的轉發(fā),并以相應的路由方法來提高路由的效率。在一般的路由方法中,往往是將片上網(wǎng)絡上的效率放在第一位。盡管隨著片上網(wǎng)絡的不斷發(fā)展,效率、功耗等都在成為考慮的要素,更多的是考慮片上網(wǎng)絡其網(wǎng)絡的屬性,但未從多線程任務執(zhí)行流的角度來分析關鍵路徑,并進行相關的優(yōu)化。
【發(fā)明內(nèi)容】
[0008]本發(fā)明旨在克服現(xiàn)有技術缺陷,目的在于提供一種能縮短多線程任務的執(zhí)行時間的靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法。
[0009]為實現(xiàn)上述目的,本發(fā)明采用的技術方案的具體步驟是:
步驟一、對多線程任務進行路徑分析
使用多線程分析工具對多線程任務進行路徑分析,得到多線程任務的執(zhí)行流。
[0010]步驟二、獲取多線程任務中的關鍵路徑
如果所有執(zhí)行流中均未發(fā)生暫停的執(zhí)行流,則最長的未發(fā)生暫停的執(zhí)行流即為關鍵路徑。
[0011]如果存在一個或多個發(fā)生了暫停的執(zhí)行流,則關鍵路徑的獲取方法是:
對于具有n個線程的多線程任務,n個線程對應n個執(zhí)行流,對應的喚醒時刻為t0,tl,…,tp,其中:t0〈tl〈“*〈tp ;在喚醒時刻to,對n個線程執(zhí)行流進行比較,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的開始執(zhí)行流;在喚醒時刻tl,t2,…,tp,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的執(zhí)行流,從而確定整個多線程任務的關鍵路徑。
[0012]步驟三、標記關鍵消息
對于處于關鍵路徑上的消息,標記為關鍵消息。
[0013]步驟四、關鍵消息優(yōu)先的路由
在片上路由器進行消息轉發(fā)時,如果消息緩沖器中存在有關鍵消息,則優(yōu)先轉發(fā)關鍵消息;如果消息緩沖器中未存在有關鍵消息,則轉發(fā)一般的消息。
[0014]所述多線程分析工具為Parallel Studio或為Visual Studio。
[0015]本發(fā)明與現(xiàn)有技術相比,具有如下有益效果:
本發(fā)明是一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法,其主要功能是對多線程任務進行靜態(tài)的分析,獲取多線程執(zhí)行流,從而獲取關鍵路徑;通過對關鍵消息進行標記,在片上網(wǎng)絡路由器進行轉發(fā)時,優(yōu)先轉發(fā)關鍵消息。故具有如下兩個特點:
(I)高效性。本發(fā)明通過分析多線程執(zhí)行流獲得關鍵路徑,標記了關鍵消息,片上路由器對關鍵消息的優(yōu)先轉發(fā),能夠盡可能的縮短關鍵路徑的執(zhí)行時間,從而縮短整個多線程任務的運行時間。
[0016](2)實用性。本方法以離線方式進行多線程任務的分析,盡可能地減少運行時的計算任務,避免了在線計算對整個多線程任務產(chǎn)生的影響,從而具有更強的實用性。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明的一種優(yōu)化過程的示意框圖;
圖2是本發(fā)明的一種多線程任務執(zhí)行流的示意圖。【具體實施方式】
[0018]下面結合附圖和【具體實施方式】對本發(fā)明作進一步的描述,并非對其保護范圍的限制。
[0019]實施例1
一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法。如圖1所示,所述片上網(wǎng)絡路由優(yōu)化方法的具體步驟是:
步驟一、對多線程任務進行路徑分析
利用多線程分析工具對多線程任務進行路徑分析,得到多線程任務的執(zhí)行流。
[0020]對于片上網(wǎng)絡來說,處理器核的數(shù)量大,故采用網(wǎng)絡連線的方式來連接多個處理器核。對于運行在片上網(wǎng)絡上的任務,采用并行化處理。并行化處理的方式是以多線程方式,即任務被并行化,形成多線程任務。對于一個多線程任務,執(zhí)行流為所述多線程任務所擁有的所有線程的執(zhí)行時間。對于一個線程Ti來說,當線程Ti結束時,相應的執(zhí)行流則終止;當線程Ti處于等待狀態(tài)時,相應的執(zhí)行流暫停;當多個線程同時執(zhí)行時,系統(tǒng)中則有兩個或兩個以上的執(zhí)行流。完成多線程任務的路徑,即為多線程任務中的執(zhí)行流。通過多線程分析工具,例如Parallel Studio或Visual Studio工具,可以對多線程任務的執(zhí)行流進行分析,從而得到多線程任務的路徑。
[0021]對具有三個線程的多線程任務,分析結果如圖2所示:在多線程任務開始后,有三條執(zhí)行流。由于需要等待來自線程I的喚醒消息,線程2和線程3在對應的時刻5和時刻20暫停。在時刻20,線程I喚醒線程2 ;在時刻35,線程I喚醒線程3。在時刻40,線程2由于需要等待來自線程3的喚醒消息而暫停;直到時刻75,線程3喚醒線程2。最終,線程I在時刻45終止,線程2在時 刻100終止,而線程3在時刻90終止。
[0022]步驟二、獲取多線程任務中的關鍵路徑
對多線程任務的執(zhí)行流進行分析,根據(jù)所有線程執(zhí)行流之間的關系,找到多線程任務的執(zhí)行流中最長的執(zhí)行流,該最長的執(zhí)行流即為關鍵路徑。
[0023]如果所有執(zhí)行流中均未發(fā)生暫停的執(zhí)行流,則最長的未發(fā)生暫停的執(zhí)行流即為關鍵路徑。
[0024]如果存在一個或多個發(fā)生了暫停的執(zhí)行流,則關鍵路徑的獲取采用如下方法:
對于具有n個線程的多線程任務,n個線程對應n個執(zhí)行流,對應的喚醒時刻為t0,tl,…,tp;其中:tO〈tl〈*“〈tp。在喚醒時刻t0,對n個線程執(zhí)行流進行比較,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的開始執(zhí)行流;在喚醒時刻tl,t2,…,tp,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的執(zhí)行流。從而確定整個多線程任務的關鍵路徑。
[0025]對于圖2中的多線程任務,線程1、線程2和線程3同時開始各自對應的執(zhí)行流,由于線程2的執(zhí)行流和線程3的執(zhí)行流分別在對應的時刻5和時刻20暫停,因此選擇線程I的執(zhí)行流為關鍵路徑的開始。在第30時刻,線程I喚醒線程3,而線程I的執(zhí)行流在時刻45即終止,其關鍵路徑從線程I的執(zhí)行流轉到線程3的執(zhí)行流;在時刻75,關鍵路徑轉至線程2的執(zhí)行流,于時刻100結束。
[0026]從圖2可以看出,關鍵路徑的長短決定了多線程任務的執(zhí)行時間。如果由于來自線程I的喚醒消息在片上網(wǎng)絡中被阻塞,線程3的執(zhí)行流的喚醒就會被延遲,關鍵路徑的執(zhí)行時間延長,整個多線程任務的執(zhí)行之間也會被延長。
[0027]步驟三、標記關鍵消息
對于處于關鍵路徑上的消息,標記為關鍵消息。
[0028]對于多線程任務的關鍵路徑,在關鍵路徑上共有m次在不同線程的執(zhí)行流之間的關鍵路徑的轉移,從線程Ti的執(zhí)行流到線程Tj的執(zhí)行流的轉移記為Trans (Ti,Tj),對應的喚醒消息記為Mij,所有的喚醒消息的集合記為M。
[0029]對于圖2中的關鍵路徑,第一次在三個線程的執(zhí)行流之間的關鍵路徑的轉移,是從線程I的執(zhí)行流轉移到線程3的執(zhí)行流,記為Trans(Tl,T3),喚醒消息為M13 ;第二次在三個線程的執(zhí)行流之間的關鍵路徑的轉移,是從線程3的執(zhí)行流轉移到線程2的執(zhí)行流,記為Trans (T3,T2),喚醒消息為M32。
[0030]步驟四、關鍵消息優(yōu)先的路由
在片上路由器進行消息轉發(fā)時,對消息緩沖器中的消息進行判斷,如果消息緩沖器中存在有關鍵消息,則優(yōu)先轉發(fā)關鍵消息;如果消息緩沖器中未存在有關鍵消息,則轉發(fā)一般的消息。
[0031]本【具體實施方式】是一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法,其主要功能是對多線程任務進行靜態(tài)的分析,獲取多線程執(zhí)行流,從而獲取關鍵路徑;通過對關鍵消息進行標記,在片上網(wǎng)絡路由器進行轉發(fā)時,優(yōu)先轉發(fā)關鍵消息。故具有如下兩個特點:
(I)高效性。本【具體實施方式】通過分析多線程執(zhí)行流獲得關鍵路徑,標記了關鍵消息,片上路由器對關鍵消息的優(yōu)先轉發(fā),能夠盡可能的縮短關鍵路徑的執(zhí)行時間,從而縮短整個多線程任務的運行時間。
[0032](2)實用性。本方法以離線方式進行多線程任務的分析,盡可能地減少運行時的計算任務,避免了在線計算對整個多線程任務產(chǎn)生的影響,從而具有更強的實用性。
【權利要求】
1.一種靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法,其特征在于所述方法的具體步驟是: 步驟一、對多線程任務進行路徑分析 使用多線程分析工具對多線程任務進行路徑分析,得到多線程任務的執(zhí)行流; 步驟二、獲取多線程任務中的關鍵路徑 如果所有執(zhí)行流中均未發(fā)生暫停的執(zhí)行流,則最長的未發(fā)生暫停的執(zhí)行流即為關鍵路徑; 如果存在一個或多個發(fā)生了暫停的執(zhí)行流,則關鍵路徑的獲取方法是: 對于具有n個線程的多線程任務,n個線程對應n個執(zhí)行流,對應的喚醒時刻為tO,tl,…,tp,其中:tO〈tl〈“*〈tp ;在喚醒時刻tO,對n個線程執(zhí)行流進行比較,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的開始執(zhí)行流;在喚醒時刻tl,t2,…,tp,選擇未發(fā)生暫停的最長執(zhí)行流作為多線程任務關鍵路徑的執(zhí)行流,從而確定整個多線程任務的關鍵路徑; 步驟三、標記關鍵消息 對于處于關鍵路徑上的消息,標記為關鍵消息; 步驟四、關鍵消息優(yōu)先的路由 在片上路由器進行消息轉發(fā)時,如果消息緩沖器中存在有關鍵消息,則優(yōu)先轉發(fā)關鍵消息;如果消息緩沖器中未存在有關鍵消息,則轉發(fā)一般的消息。
2.根據(jù)權利要求1所述靜態(tài)的關鍵路徑優(yōu)先的片上網(wǎng)絡路由優(yōu)化方法,其特征在于所述多線程分析工具為Parallel Studio或為Visual Studio。
【文檔編號】H04L12/701GK103634207SQ201310686004
【公開日】2014年3月12日 申請日期:2013年12月16日 優(yōu)先權日:2013年12月16日
【發(fā)明者】胡威, 鄒代坤, 胡雷, 張凱, 郭宏, 徐景, 張若凡, 李偉強, 江若成, 譚練 申請人:武漢科技大學