新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > SOC參數(shù)自動(dòng)配置設(shè)計(jì)方法與功耗優(yōu)化

SOC參數(shù)自動(dòng)配置設(shè)計(jì)方法與功耗優(yōu)化

作者: 時(shí)間:2012-10-29 來(lái)源:網(wǎng)絡(luò) 收藏

鄰域搜索算法

的性能相關(guān)性是優(yōu)化的主要難題。 首先需要一種數(shù)據(jù)結(jié)構(gòu)來(lái)表征性能相關(guān)性。 圖1 較好地表示了的性能相關(guān)性。 其中,參數(shù)用節(jié)點(diǎn)表示,而節(jié)點(diǎn)與節(jié)點(diǎn)間的連線表示兩參數(shù)的性能相關(guān)。節(jié)點(diǎn)和節(jié)點(diǎn)之間的連線是有方向性的,從A 到B 的邊表示參數(shù)B 與A 的性能相關(guān)。

圖1  功耗性能相關(guān)圖

隨著集成度的進(jìn)一步提高,參數(shù)個(gè)數(shù)增多,導(dǎo)致設(shè)計(jì)選擇空間急劇擴(kuò)大,完全地對(duì)每一個(gè)參數(shù)組合進(jìn)行評(píng)價(jià)是不可能的。 由于每次計(jì)算代價(jià)函數(shù)需要很長(zhǎng)的時(shí)間,一些進(jìn)化優(yōu)化算法,如遺傳算法不再適用。 鄰域搜索算法是一種解決優(yōu)化問(wèn)題的方法。 一般來(lái)說(shuō),鄰域搜索算法只能找到局部最優(yōu)解。但是與大多數(shù)優(yōu)化問(wèn)題不同, 的參數(shù)具有一定的方向性,系統(tǒng)設(shè)計(jì)師的經(jīng)驗(yàn)可以幫助設(shè)計(jì)師找到一種較優(yōu)化的參數(shù)組合, 參數(shù)優(yōu)化的主要目的是對(duì)系統(tǒng)性能進(jìn)行微調(diào),因此鄰域搜索算法可以滿足SOC 參數(shù)優(yōu)化的要求。

以一個(gè)數(shù)據(jù)采集系統(tǒng)為例來(lái)驗(yàn)證領(lǐng)域搜索算法的有效性,數(shù)據(jù)采集系統(tǒng)的參數(shù)如表1 所示。 在這個(gè)應(yīng)用中,系統(tǒng)從UART 接收數(shù)據(jù),利用DMA 運(yùn)送到內(nèi)存,軟件進(jìn)行32 點(diǎn)FIR 濾波處理。 UART 的接收速率是10kB/s ,參數(shù)的性能相關(guān)圖如圖1 所示。

首先建立功耗相關(guān)圖。在建圖過(guò)程中,可以利用參數(shù)的數(shù)值相關(guān)進(jìn)行參數(shù)歸并,比如MUL的選用和MAC的選用可以歸并為一個(gè)參數(shù);以及區(qū)分參數(shù)的層次性,比如ICache 的失配參數(shù)N 由參數(shù)A 、B 、C 的一個(gè)子圖組成。 接著設(shè)立代價(jià)函數(shù)f ( K) =系統(tǒng)功耗, K 是一個(gè)參數(shù)組合。 選擇初始解Kbest.f best=f(Kbest ) 。 然后進(jìn)行參數(shù)優(yōu)化,參數(shù)優(yōu)化的算法步驟如下。

1) 分析功耗相關(guān)圖的拓?fù)漤樞?,包括較低層次的子圖。 一般可以采用鄰接表作為實(shí)現(xiàn)上述算法的數(shù)據(jù)結(jié)構(gòu)。 首先從圖中選一個(gè)入度為0 的節(jié)點(diǎn)并將其輸出,然后從圖中刪掉此節(jié)點(diǎn)及其所有的邊。 反復(fù)執(zhí)行這兩步,直至剩下的圖中再也沒(méi)有入度為0 的節(jié)點(diǎn)。 剩下的就是單個(gè)節(jié)點(diǎn)或環(huán)路。 分析拓?fù)漤樞蚴?為了確定參數(shù)優(yōu)化的順序。 拓?fù)湫蛄械牡谝粋€(gè)節(jié)點(diǎn)就是第一個(gè)被優(yōu)化的參數(shù)。

表1  數(shù)據(jù)采集系統(tǒng)參數(shù)表

2) 鄰域映射定義為取當(dāng)前優(yōu)化節(jié)點(diǎn)的最近可選值。 仿真得到功耗f ( K) 。 如果f ( K) f best ,則Kbest = K , f best = f ( K) ;否則退回原來(lái)的值。 重復(fù)步驟2) ,直到最近的可選值都被仿真過(guò)。

3) 選擇下一個(gè)優(yōu)化的節(jié)點(diǎn),一般選擇拓?fù)湫蛄械南乱粋€(gè)參數(shù),但是在環(huán)路中,如果一個(gè)參數(shù)發(fā)生改變,則需要重新遍歷一遍環(huán)路,這時(shí)應(yīng)取環(huán)路上的節(jié)點(diǎn)。 如果該節(jié)點(diǎn)包含較低層次的子圖,則選取子圖中的節(jié)點(diǎn)。 重復(fù)步驟2) 。

實(shí)驗(yàn)結(jié)果

在進(jìn)行優(yōu)化實(shí)驗(yàn)前, 需要建立IP的功耗模型。 門級(jí)電路的功耗估計(jì)已經(jīng)比較成熟了。 因?yàn)殚T電路的結(jié)構(gòu)比較簡(jiǎn)單,可以比較容易地測(cè)量靜態(tài)功耗,并根據(jù)標(biāo)準(zhǔn)單元的輸入建立動(dòng)態(tài)功耗的查詢表。 但是門電路的功耗分析可能需要較大的運(yùn)算量,而且門電路方法一般用于設(shè)計(jì)的后期,這時(shí)軟硬件劃分、硬件微結(jié)構(gòu)設(shè)計(jì)、寄存器傳輸級(jí)(RTL)設(shè)計(jì)、綜合都已經(jīng)完成了。 這種方法無(wú)法對(duì)系統(tǒng)設(shè)計(jì)提供幫助或參考,這對(duì)系統(tǒng)設(shè)計(jì)師來(lái)說(shuō)是很大的擔(dān)心,也可能對(duì)設(shè)計(jì)周期產(chǎn)生影響。 當(dāng)前功耗建模的方向主要是在RTL 或行為級(jí)領(lǐng)域。功耗常常與狀態(tài)相關(guān)。 對(duì)于狀態(tài)機(jī)電路來(lái)說(shuō),由于硬件模塊一般有幾個(gè)狀態(tài),在不同狀態(tài)下,每個(gè)時(shí)鐘周期上消耗的能量是不同的,可以利用IP 的狀態(tài)機(jī)建模。 狀態(tài)功耗模型并不一定和IP 核的電路狀態(tài)機(jī)完全一致,它還可以考慮電路中的一些組合邏輯輸出和關(guān)鍵輸入信號(hào)如門控時(shí)鐘信號(hào)等,只要這些信號(hào)的組合可以表示一個(gè)特殊的功耗狀態(tài)即可。本文采用常用的狀態(tài)功耗建模方法,利用TSMC0。18 工藝的門電路仿真數(shù)據(jù)對(duì)Cache 、GPR、各運(yùn)算單元、DMA 和UART 進(jìn)行建模。

在軟硬件仿真平臺(tái)上,對(duì)這個(gè)數(shù)據(jù)采集系統(tǒng)進(jìn)行仿真。 由于應(yīng)用程序較短以及采樣速率不是很高,在實(shí)驗(yàn)中,共經(jīng)過(guò)了28 個(gè)參數(shù)組合的仿真,得到的優(yōu)化解如表2 所示。 如果對(duì)整個(gè)設(shè)計(jì)空間進(jìn)行仿真則需要1.92×107 次仿真。

表2  對(duì)參數(shù)進(jìn)行鄰域搜索優(yōu)化的結(jié)果

結(jié) 語(yǔ)

原有的硬件描述語(yǔ)言難以適應(yīng)參數(shù)化設(shè)計(jì)的要求,Eperl 和Vperl 提供了硬件描述語(yǔ)言的擴(kuò)展。 利用參數(shù)配置環(huán)境嵌入Eperl 和Vperl ,可以生成對(duì)應(yīng)特定參數(shù)配置的SOC 硬件語(yǔ)言描述。 參數(shù)優(yōu)化建立在參數(shù)配置環(huán)境的基礎(chǔ)上。 在分析SOC參數(shù)屬性基礎(chǔ)上提出的領(lǐng)域搜索算法可以大大減少SOC優(yōu)化周期。 該設(shè)計(jì)環(huán)境已應(yīng)用于一款嵌入式RISC處理器CK520和基于它的SOC開(kāi)發(fā),并取得了滿意的效果。


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉