一種片上系統(tǒng)的啟發(fā)式多電壓分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種片上系統(tǒng)的自動化設(shè)計方法,具體是一種片上系統(tǒng)的啟發(fā)式多電 壓分配方法。
【背景技術(shù)】
[0002] 片上系統(tǒng)(system-on-a-chip,SoC)由多個電路宏模塊組成,電路宏模塊之間采 用互連線連接。單電壓技術(shù)要求所有電路宏模塊在該電壓下均能正常工作,但其中某些電 路宏模塊是非關(guān)鍵模塊,即位于非關(guān)鍵路徑或運行頻率較低。因此多電壓技術(shù)將其中一部 分非關(guān)鍵模塊的工作電壓降低,在確保SoC滿足性能約束的前提下有效降低功耗,成為當 前低功耗SoC設(shè)計的主流方法。
[0003] 多電壓分配即為每個電路宏模塊分配一個工作電壓,使得時序約束滿足的前提下 盡可能優(yōu)化功耗。同時,多電壓分配作為多電壓布局規(guī)劃協(xié)同優(yōu)化的關(guān)鍵步驟,求解質(zhì)量和 速度均是考量的重要因素。現(xiàn)有的研宄一般采用確定性求解方法,例如整數(shù)線性規(guī)劃來完 成多電壓分配,雖然求解質(zhì)量得到保證,但往往耗費了較多CPU時間,因此求解速度偏慢。 特別是隨著SoC規(guī)模增大,整數(shù)線性規(guī)劃需要更多的約束,造成求解時間非線性上升。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)的不足,提供一種片上系統(tǒng)的多電 壓分配方法,該方法基于給定的電路宏模塊的"延遲-功耗"信息,首先將所有電路宏模塊 的工作電壓置為低電壓,此時的時序約束肯定不滿足,需要在接下來的算法迭代中選取若 干電路宏模塊升高其工作電壓,直到時序約束滿足后輸出當前解。為了確定哪些電路宏模 塊需要升高工作電壓,通過計算電路宏模塊的扇入/扇出延遲裕量,并將電路宏模塊按照 拓撲排序繪制扇入/扇出延遲裕量曲線。在曲線中搜尋波峰和波谷,波峰位置對應(yīng)的電路 宏模塊表明其為非關(guān)鍵模塊的可能性大,因此鎖定其當前電壓狀態(tài),不允許升高工作電壓; 而對于波谷對應(yīng)的電路宏模塊,其為關(guān)鍵模塊的可能性大,因此被保存進隊列進行處理。從 隊列中取出電路宏模塊處理時,首先搜尋經(jīng)過該電路宏模塊的關(guān)鍵路徑,保存關(guān)鍵路徑上 所有的電路宏模塊,若其工作在低電壓且不處于鎖定狀態(tài),則按照成本函數(shù)在這些電路宏 模塊中選取需要升高電壓的電路宏模塊,并置其工作電壓為高電壓。為了避免時序約束滿 足后仍有電路宏模塊升高電壓造成功耗損失,定義標志位判定當前已滿足時序約束的互連 線數(shù)目和總的互連線數(shù)目的比值。在時序約束接近滿足時,每次迭代僅取出一個電路宏模 塊進行處理,否則每次迭代取出存進隊列中的所有電路宏模塊進行處理。
[0005] 本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種片上系統(tǒng)的啟發(fā)式多電壓分 配方法,包括以下步驟:
[0006] 步驟①:片上系統(tǒng)由多個電路宏模塊組成,電路宏模塊之間采用互連線進行連接, 互連線數(shù)目為NwiMS,定義WRsladt (u,v)是連接電路宏模塊sbu和sbv的互連線的線延遲裕量, 計算公式如下:
[0007] WRslack (u,v) =trv-duv-tau (1)
[0008] 其中trv為電路宏模塊sbv的要求到達時間,duv為連接電路宏模塊sbu和sb^勺 互連線的延遲,tau為電路宏模塊sbu的到達時間;計算機讀入和分析用戶提供的片上系統(tǒng) 布局信息、時延約束信息、電路宏模塊的坐標信息及工作在高電壓和低電壓時的"時延-功 耗"信息;定義Flag是真假標志位,當Flag=FALSE表示假,當Flag=TRUE表示真,令 Flag=FALSE;
[0009] 步驟②:定義片上系統(tǒng)中所包含的電路宏模塊集合為B,對于每一個電路宏模塊 sbiGB,令其工作電壓為低電壓;
[0010] 步驟③:對片上系統(tǒng)進行靜態(tài)時序分析,計算所有互連線的線延遲裕量,并計算線 延遲裕量大于等于0的互連線數(shù)目Nlegal;
[0011] 步驟④:定義電路宏模塊sb"^ 1個扇入電路宏模塊,即{sbml,sbm2,L,sbml},則電 路宏模塊扇入延遲裕量計算公式如下:
[0012]
【主權(quán)項】
1. 一種片上系統(tǒng)的啟發(fā)式多電壓分配方法,其特征在于包括以下步驟: 步驟①:片上系統(tǒng)由多個電路宏模塊組成,電路宏模塊之間采用互連線進行連接,互連 線數(shù)目為Nwiras,定義WRslad5(u,V)是連接電路宏模塊sbu和互連線的線延遲裕量,計算 公式如下: WRsiack(u, v) = trv-duv-tau (I) 其中trv為電路宏模塊sb v的要求到達時間,duv為連接電路宏模塊sb u和sb ¥的互連線 的延遲,tau為電路宏模塊sb u的到達時間;計算機讀入和分析用戶提供的片上系統(tǒng)布局信 息、時延約束信息、電路宏模塊的坐標信息及工作在高電壓和低電壓時的"時延-功耗"信 息;定義Flag是真假標志位,當Flag = FALSE表示假,當Flag = TRUE表示真,令Flag = FALSE ; 步驟②:定義片上系統(tǒng)中所包含的電路宏模塊集合為B,對于每一個電路宏模塊 SbiG B,令其工作電壓為低電壓; 步驟③:對片上系統(tǒng)進行靜態(tài)時序分析,計算所有互連線的線延遲裕量,并計算線延遲 裕量大于等于〇的互連線數(shù)目Nlegal; 步驟④:定義電路宏模塊81\1有1個扇入電路宏模塊,即{sb ml,sbm2,…,sbml},則電路 宏模塊8\的扇入延遲裕量計算公式如下:
定義電路宏模塊81^有1^個扇出電路宏模塊,即{sbnl,sbn2,…,sb nk},則電路宏模塊 扇出延遲裕量計算公式如下:
分別計算電路宏模塊的扇入/扇出延遲裕量值,將電路宏模塊按照拓撲排序,分別繪 制扇入/扇出延遲裕量曲線; 步驟⑤:在扇入/扇出延遲裕量曲線中尋找曲線的波峰和波谷,并分別將波峰和波谷 所對應(yīng)的電路宏模塊存進集合P和Q ; 步驟⑥:遍歷所有電路宏模塊,對于每一個電路宏模塊Sbi,如果Sbi e P,令Sb i為鎖定 狀態(tài);如果SbiE Q,且不處于鎖定狀態(tài),將電路宏模塊存入隊列U ; 步驟⑦:計算線延遲裕量大于等于O的互連線占總互連線的比率ratio = Nlegal/Nwiras; 定義PER G (〇, 1)是預(yù)定義的浮點小數(shù),如果ratio>PER,則令Flag = TRUE ;如果Flag = TRUE,則從隊列U中選取唯一一個電路宏模塊進行處理;如果Flag = FALSE,則將隊列U中 所有電路宏模塊進行處理;對于需要處理的電路宏模塊Sbi,首先搜索經(jīng)過需要處理的電路 宏模塊Sb i的關(guān)鍵路徑,對于關(guān)鍵路徑上的所有電路宏模塊,如果其當前工作在低電壓,且 不處于鎖定狀態(tài),按照如下公式計算成本:
其中A slack和Apower分別表示需要處理的電路宏模塊工作電壓從低電壓到 高電壓時所引起的延遲裕量增量和功耗增量,weight e (0, 1)表示用戶定義的浮點小數(shù), 用來反映需要處理的電路宏模塊權(quán)重;成本最小的電路宏模塊被選取,令其工作在高 電壓; 步驟⑧:如果當前時序約束已滿足,則算法終止,輸出當前電壓分配結(jié)果;否則重復(fù)步 驟③~⑧。
【專利摘要】本發(fā)明公開了一種片上系統(tǒng)的啟發(fā)式多電壓分配方法,優(yōu)點在于提出的方法基于啟發(fā)式算法,兼顧了求解結(jié)果的質(zhì)量和求解速度。其首先將所有電路宏模塊的工作電壓置為低電壓,然后根據(jù)電路宏模塊的扇入/扇出延遲裕量信息,繪制扇入/扇出延遲裕量曲線,通過搜尋曲線中的波峰和波谷,在算法迭代中選定若干電路宏模塊升高其工作電壓,當片上系統(tǒng)的時序約束得到滿足后,算法終止并輸出當前多電壓分配結(jié)果。相比于傳統(tǒng)的整數(shù)線性規(guī)劃多電壓分配方法,本發(fā)明方法以較小的求解質(zhì)量代價,能有效加快多電壓分配速度,豐富了片上系統(tǒng)多電壓分配的自動設(shè)計優(yōu)化方法,又降低了設(shè)計成本。通過實例驗證,本發(fā)明方法得到的CPU求解時間得到有效降低。
【IPC分類】G06F9-50
【公開號】CN104820620
【申請?zhí)枴緾N201510172475
【發(fā)明人】儲著飛, 夏銀水, 王倫耀, 王健
【申請人】寧波大學(xué)
【公開日】2015年8月5日
【申請日】2015年4月14日