張書政 趙振宇 馮超超
(國防科技大學(xué)計(jì)算機(jī)學(xué)院 長沙 410073)
在摩爾定律[1]的驅(qū)動(dòng)下,集成電路集成度和技術(shù)節(jié)點(diǎn)飛速發(fā)展,十余年來集成晶體管數(shù)量從數(shù)百萬發(fā)展到了數(shù)十億[2]。這使得設(shè)計(jì)人員和計(jì)算資源無法跟上芯片復(fù)雜度快速上升的趨勢,導(dǎo)致了芯片設(shè)計(jì)成本和周期的增加,高效的設(shè)計(jì)方法是應(yīng)對這個(gè)局面的關(guān)鍵。機(jī)器學(xué)習(xí)如今在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,其能學(xué)習(xí)數(shù)據(jù)規(guī)律建立模型從而快速推斷結(jié)果[4]。將機(jī)器學(xué)習(xí)應(yīng)用于物理設(shè)計(jì)中可以挖掘設(shè)計(jì)規(guī)律,且基于推斷的求解可以越過EDA工具在物理設(shè)計(jì)NP 難問題上漫長的求解過程[5],從而加速芯片設(shè)計(jì)。國內(nèi)外很多學(xué)者在此方面有了成功的研究,包括布線結(jié)果預(yù)測[6~7],時(shí)鐘樹綜合結(jié)果預(yù)測[8],光刻熱點(diǎn)檢測等[9~10]等。而在時(shí)序驅(qū)動(dòng)的物理設(shè)計(jì)中,靜態(tài)時(shí)序分析(STA)的結(jié)果決定了設(shè)計(jì)是否合格,在設(shè)計(jì)的修改和優(yōu)化中會反復(fù)進(jìn)行求解,本文研究基于機(jī)器學(xué)習(xí)的高效STA分析方法。
在數(shù)字電路中,靜態(tài)時(shí)序分析需要使用描述各個(gè)單元時(shí)序信息的時(shí)序庫文件,它定義了單元在不同工藝、電壓、溫度(PVT)下從輸入端口到輸出端口信號的傳播延時(shí)。傳統(tǒng)方法最常用的Corner 為最佳、最快(fast,fast),最差、最慢(worst,worst)和典型(typical,normal)三種[11],這是由于運(yùn)行時(shí)間成本,往往一個(gè)設(shè)計(jì)無法跑遍所有的Corner,一些混合Corner無法詳細(xì)地進(jìn)行分析,只能用臨界情況來進(jìn)行分析,這使得設(shè)計(jì)出現(xiàn)了很多設(shè)計(jì)裕量,浪費(fèi)設(shè)計(jì)性能和資源。高效的多Corner 分析方法可以獲得性能和運(yùn)行時(shí)間的共同優(yōu)化。
時(shí)序庫中的Corner 是在不同PVT 下進(jìn)行仿真得出來的,一些Corner之間存在部分PVT相同的情況,故存在著相關(guān)性,如表1 所示,編號第2、6、9 的Corner 間只有溫度不同,其必然存在很高的相關(guān)性。相關(guān)文獻(xiàn)[12]也表明了Corner 角之間的相關(guān)性。
表1 本工作Corner具體參數(shù)(Process均為16nm,Voltage均為0.6V)
為了發(fā)掘Corner時(shí)序結(jié)果之間具體的關(guān)系,可以將其建模為y=f(x),其中,x 和y 分別為一些Corner 的集合,f 為這些Corner 的相關(guān)關(guān)系,為了發(fā)掘具體關(guān)系,本文分別采用了線性和非線性兩種機(jī)器學(xué)習(xí)算法,建立從1~n 個(gè)已知Corner 結(jié)果預(yù)測n+1~N 個(gè)未知Corner 結(jié)果的模型,其中n 為已知Corner數(shù),N為總Corner數(shù)。根據(jù)實(shí)驗(yàn)來確定不同Corner之間的關(guān)系并選取合適的n值,實(shí)現(xiàn)已知Corner對剩余未知Corner的快速預(yù)測。
本文只研究保持時(shí)間,建立時(shí)間研究方法相同。基于已有的14 個(gè)Corner(表1),針對118 萬單元規(guī)模的芯片取每個(gè)Corner 布線后時(shí)序結(jié)果的前10000 條最差時(shí)序路徑,之后取并集,將得出的26985 條時(shí)序路徑進(jìn)行所有Corner 結(jié)果的獲取,在2.27GHz主頻的Intel Xeon服務(wù)器上,單Corner靜態(tài)時(shí)序分析運(yùn)行時(shí)間約為1h。
3.2.1 多Corner互信息分析結(jié)果
為了顯示各個(gè)Corner 時(shí)序結(jié)果之間的關(guān)聯(lián)程度,采用互信息的計(jì)算方法?;バ畔⒖梢粤炕亩攘扛鞣N不同信息相關(guān)性,時(shí)序結(jié)果是連續(xù)量,其互信息公式如下[13]:
其中,p(x,y)是X 和Y 的聯(lián)合概率密度函數(shù),p(x)和p(y)分別為X 和Y 的邊緣概率密度函數(shù)。之后利用公式將互信息縮放至0~1之間:
縮放后I′(X;Y)越靠近1,說明X 和Y的相關(guān)性越大。14 個(gè)Corner的互信息結(jié)果如圖1 所示,淺色代表相關(guān)性高,可以看出,1~10 存在廣泛的相關(guān)性,而11~14存在彼此之間的高相關(guān)。
圖1 不同Corner 之間互信息熱度圖
3.2.2 基于嵌入式算法的Corner選擇
由于本文是利用Corner 時(shí)序結(jié)果之間的相關(guān)性來通過一部分已知Corner 的時(shí)序結(jié)果來預(yù)測另一部分未知Corner 的時(shí)序結(jié)果,如何選取“已知”Corner 集合是一個(gè)比較重要的問題,下文把已知Corner 集合稱為訓(xùn)練集,待預(yù)測的“未知”Corner 集合稱之為目標(biāo)集。
選取合適的訓(xùn)練集是典型的特征選擇問題。本文采用了嵌入式的特征選擇方法,即將特征選擇過程與機(jī)器學(xué)習(xí)模型訓(xùn)練過程融合為一體,同時(shí)完成。此過程采用兩種機(jī)器學(xué)習(xí)算法:基于線性關(guān)系的嶺回歸(Ridge)和偏非線性關(guān)系的決策樹(Decision Tree)算法[14]。
實(shí)驗(yàn)具體流程如圖2 所示,首先選取互信息累加和最高的Corner 為第一目標(biāo)Corner,建立初始的13 個(gè)Corner 預(yù)測1 個(gè)目標(biāo)Corner 的模型?;バ畔⒗奂雍妥罡弑砻髟揅orner 和其他Corner 關(guān)聯(lián)性較高,建模容易獲得理想的結(jié)果。而后進(jìn)行模型的訓(xùn)練和Corner 選擇過程,特征重要性排序最低的Corner 意味著其在在訓(xùn)練集中作用很小,即與目標(biāo)集中的Corner 項(xiàng)相關(guān)性很低或者在模型中可以在被其他Corner項(xiàng)表示,將其加入目標(biāo)集。
圖2 Corner選擇流程
3.2.3 模型結(jié)果及分析
基于總數(shù)據(jù)集中26985 條路徑,進(jìn)行5 折交叉驗(yàn)證[15],以得到模型的平均表現(xiàn),以平均絕對誤差(MAE)作為評估指標(biāo)。分別對訓(xùn)練集Corner 數(shù)從13 到1(目標(biāo)集Corner數(shù)從1~13)進(jìn)行了建模,結(jié)果如圖3所示。
圖3 兩種機(jī)器學(xué)習(xí)算法上不同Corner數(shù)量對應(yīng)的平均絕對誤差
顯然,嶺回歸的算法表現(xiàn)更好,在利用7 個(gè)Corner 預(yù)測余下7 個(gè)Corner 時(shí),能達(dá)到平均2.07ps(1.76%)的誤差,優(yōu)于決策樹算法利用13 個(gè)Corner預(yù)測1 個(gè)Corner 的2.33ps,可見應(yīng)采取線性模型來發(fā)掘Corner 時(shí)序結(jié)果之間的關(guān)系。模型訓(xùn)練和預(yù)測的時(shí)間小于1min,遠(yuǎn)小于商業(yè)STA 工具所需的1h。
模型的穩(wěn)健性由模型的精度和有效性反映,具體檢驗(yàn)?zāi)P驮诓煌?xùn)練集百分比下使用已知Corner 預(yù)測未知Corner 的表現(xiàn),首先劃分訓(xùn)練集和測試集,使訓(xùn)練集分別占比70%,60%,30%,10%,5%,1%。之后針對不同的已知Corner數(shù)量,在訓(xùn)練集上進(jìn)行模型訓(xùn)練并預(yù)測未知Corner。結(jié)果以精度損失百分比作為評判,定義為:
其中X為當(dāng)前訓(xùn)練集百分比下相應(yīng)Corner的MAE,Y為在基準(zhǔn)訓(xùn)練集百分比下相應(yīng)Corner的MAE。
圖4 模型在不同訓(xùn)練集百分比下在相應(yīng)Corner選取策略上的表現(xiàn)
結(jié)果如圖6 所示,顯然,當(dāng)訓(xùn)練集百分比從70%下降到1%時(shí),其精度損失不大,具體數(shù)值不會超過0.15ps。這表明該建模方法具有很強(qiáng)的穩(wěn)健性,具有使用極少量(1%)的訓(xùn)練數(shù)據(jù)進(jìn)行高精度預(yù)測的能力。與相關(guān)研究[16]對比,我們可以在可接受的精度損失下,采用更少的數(shù)據(jù)進(jìn)行有效的預(yù)測,具備更好的應(yīng)用價(jià)值。
不同設(shè)計(jì),以及不同階段的STA,具有不同的誤差閾值,基于模型的高穩(wěn)健性,可以針對不同的情況提取少量數(shù)據(jù)進(jìn)行訓(xùn)練而后預(yù)測,本工作模型訓(xùn)練后會給出Corner 的具體選擇策略和對應(yīng)的誤差值,據(jù)此可以實(shí)現(xiàn)約束驅(qū)動(dòng)的Corner 選擇,從而很好地對未知Corner 進(jìn)行預(yù)測,節(jié)省大量的時(shí)間。在本文的具體實(shí)驗(yàn)中,基于設(shè)計(jì)所處的布線后時(shí)序分析階段,前期采用極少量數(shù)據(jù)進(jìn)行建模,之后選取高精度的預(yù)測策略:采用9 個(gè)Corner 的數(shù)據(jù)預(yù)測未知5 個(gè)Corner 的數(shù)據(jù),可以在小于1ps 的平均絕對誤差下,獲得1.56x的時(shí)間效率提升。
隨著工藝不斷進(jìn)步和芯片功能需求的不斷上升,芯片復(fù)雜度將越來越高,由于物理設(shè)計(jì)本身的重要性和耗時(shí)性,對物理設(shè)計(jì)進(jìn)行加速優(yōu)化已經(jīng)成為當(dāng)今的熱點(diǎn)之一。機(jī)器學(xué)習(xí)模型可以從歷史數(shù)據(jù)學(xué)習(xí)設(shè)計(jì)經(jīng)驗(yàn),并具有快速精準(zhǔn)推斷結(jié)果的能力,可以減少設(shè)計(jì)重復(fù)率,縮短芯片物理設(shè)計(jì)周期。本文主要從STA的特點(diǎn)出發(fā),利用機(jī)器學(xué)習(xí)發(fā)掘了多Corner時(shí)序結(jié)果的線性相關(guān)性,并建立部分已知Corner預(yù)測余下未知Corner的模型,其結(jié)果精度高,在大部分設(shè)計(jì)的誤差接收范圍內(nèi)。同時(shí)基于模型的強(qiáng)穩(wěn)健性,可以通過極少的數(shù)據(jù)進(jìn)行高效準(zhǔn)確的預(yù)測,從而達(dá)成約束驅(qū)動(dòng)的Corner 選取,有效地減少多Corner下的STA 分析時(shí)間,顯著加速整個(gè)設(shè)計(jì)流程。