黃 奔,彭 力,吳海宏(.江南大學(xué),江蘇無錫4;.中國電子科技集團(tuán)公司第58研究所,江蘇無錫4035)
?
高速SRAM編譯器時序算法
黃奔1,彭力2,吳海宏2
(1.江南大學(xué),江蘇無錫214122;2.中國電子科技集團(tuán)公司第58研究所,江蘇無錫214035)
介紹了一種通用嵌入式存儲器(SRAM)編譯器時序建模的方法。通過對存儲器關(guān)鍵路徑延時分析,時序模型采用分段拓展的建模方式,用Rows、Columns來對SRAM進(jìn)行分段,分別討論各段對時序的影響。采用雙線性插值法對模型進(jìn)一步優(yōu)化,較大程度上提高了模型的精度。最后與ARM公司0.13 μm工藝的存儲編譯器進(jìn)行了驗(yàn)證和對比。結(jié)果表明,該模型能夠較為精確地描述存儲編譯器時序。
存儲編譯器;SRAM IP;時序建模;雙線性插值
隨著納米工藝時代的到來,嵌入式存儲器在SOC中所占據(jù)的比例日益增加。作為嵌入模塊中應(yīng)用最普及的一種,嵌入式存儲器基于自身的功能特性,以及相同面積下相比于組合邏輯塊功耗更低的優(yōu)點(diǎn),在深亞微米片上系統(tǒng)設(shè)計(jì)中被廣泛使用。其應(yīng)用的廣泛程度已經(jīng)與標(biāo)準(zhǔn)單元和輸入輸出單元相當(dāng)。而SOC芯片的速度受存儲器訪問時間的制約,工作頻率越高,芯片的處理能力越強(qiáng)。通過對時序的分析,我們可以對工程的綜合、映射、布局布線等關(guān)鍵環(huán)節(jié)進(jìn)行控制,減少邏輯和布線延遲,從而盡可能提高工作頻率,因此明確時序在SOC設(shè)計(jì)中是至關(guān)重要的。時序性能的主要指標(biāo)是存取時間,存取時間表示從開始一次存儲器操作到完成該操作所需要的時間,通常指讀時間和寫時間二者中的最大值,本文主要以存取時間為例來進(jìn)行建模分析。
編譯器時序建模的難點(diǎn)在于找到一種具有代表性的模型,能夠較為精準(zhǔn)地描述SRAM IP核時序。Tomohisa Wada等人描述了一個片上緩存存儲器的存取時間模型,通過RC等模型分析給出每一種延時模塊的解析方程,最后各部分累加得到總的存取時間,但是復(fù)雜度相對較高,具有解析模型帶有的通用性差、不靈活的缺點(diǎn)[1]。劉一杰采用擬合公式即時序等式同時選取具有代表性尺寸存儲器測量的方式建立時序模型,但是該時序模型得到的參數(shù)值相對于仿真值誤差較大[2]。本文綜合上述方法并結(jié)合實(shí)際的仿真情況,首先通過版圖參數(shù)的提取搭建關(guān)鍵路徑,對具有代表性的存儲器進(jìn)行準(zhǔn)確的模擬仿真,然后采用雙線性插值的方法推算其他未仿真過尺寸的存儲器。本文提出的設(shè)計(jì)方法使編譯器在保持一定精度的條件下,通用靈活性強(qiáng),設(shè)計(jì)復(fù)雜度較之前的工作大大降低。
文章中描述了針對納米工藝下嵌入式存儲編譯器高效準(zhǔn)確的時序模型。先在第二節(jié)介紹時序建模的理論依據(jù),包括對本文提出方法以及其關(guān)鍵概念的介紹,初步提出存儲編譯器時序模型并且對該模型的不足之處進(jìn)行分析。第三節(jié)針對模型的不足進(jìn)行進(jìn)一步優(yōu)化,采用雙線性插值法提高精度。在第四節(jié)中將通過模型計(jì)算得到的存取時間與ARM公司編譯器導(dǎo)出的數(shù)值進(jìn)行驗(yàn)證對比。對該模型的總結(jié)將在最后一節(jié)列出。
2.1存儲器關(guān)鍵路徑延時分析
在通常的設(shè)計(jì)中都采用關(guān)鍵路徑來代替整個電路進(jìn)行仿真,以便提高設(shè)計(jì)效率,減少仿真時間。分析SRAM的讀寫工作過程可以知道其有兩條主要路徑,分別是數(shù)據(jù)寫入路徑和數(shù)據(jù)讀出路徑,其中寫操作關(guān)鍵路徑上的地址線和字線間的路徑存在相應(yīng)的寫延時,讀操作關(guān)鍵路徑上的位線和數(shù)據(jù)輸出之間的路徑存在相應(yīng)的讀延時。對圖1所示存儲器關(guān)鍵路徑進(jìn)行分析,我們可以將存儲器的延時分解成譯碼期間所需要的延時、字線選擇需要的字線延時、位線選擇需要的位線延時和存儲器固有延時。其中譯碼期間所需要的延時和存儲陣列單元選擇所需要的延時與存儲器尺寸有關(guān),存儲器固有延時與工藝和電路結(jié)構(gòu)有關(guān),而與存儲器尺寸無關(guān),為本身具有的延時。
2.2時序模型基本原理
在存儲器中,譯碼器與存儲單元陣列直接相連,譯碼器單元的幾何尺寸隨存儲器內(nèi)核尺寸變化而相應(yīng)改變。譯碼器和存儲陣列占據(jù)存儲器大部分面積,并且譯碼器和存儲陣列面積隨存儲器容量變化而變化。當(dāng)存儲器容量增大時,譯碼器和存儲陣列面積增大,字線和位線的長度也隨之增加,其對應(yīng)的負(fù)載電容變大。
圖1 關(guān)鍵路徑
接收到地址信號后,譯碼器需要對字線和位線譯碼,即所謂的行譯碼和列譯碼,而行譯碼延時和列譯碼延時與譯碼驅(qū)動的負(fù)載電容成正比,負(fù)載電容來源于字線和位線,可以近似認(rèn)為字線譯碼延時正比于字線行數(shù),位線譯碼延時正比于位線列數(shù)。同理,存儲陣列單元選擇中字線選擇需要的字線延時與掛在字線上存儲單元的字線電容有關(guān),同列數(shù)成正比,位線選擇需要的位線延時與掛在位線上存儲單元的位線電容有關(guān),同行數(shù)成正比。存儲器固有延時包括數(shù)據(jù)總線驅(qū)動延時和數(shù)據(jù)輸出驅(qū)動延時,存儲器固有延時與存儲器尺寸無關(guān),可以將其視為常量。綜上,我們可以得出存取時間ta的關(guān)系式:
ta=aRows+bColumns+c(1)
其中a、b、c為常數(shù),只需分別取3組仿真值,通過待定系數(shù)法,即可以求出a、b、c的值。但是這種方法也有它的缺點(diǎn):一是誤差較大,通常在6%左右;二是由于隨機(jī)采樣三組數(shù)據(jù)計(jì)算得出的a、b、c,會造成a、b、c值隨采樣數(shù)據(jù)不同而不同,使誤差進(jìn)一步擴(kuò)大。
3.1編譯器時序模型分解
通過研究發(fā)現(xiàn),當(dāng)words和mux固定不變時,存取時間ta隨bits的變化關(guān)系如圖2所示,從圖中可以看出ta與bits近似成線性關(guān)系。
當(dāng)bits和mux固定不變時,存取時間ta隨words的變化關(guān)系如圖3所示,即ta與words近似成線性關(guān)系。
而在上節(jié)中提到存取時間ta的關(guān)系式(1),我們可以將其進(jìn)一步拆分。(1)式中Rows和Columns分別對應(yīng)為:
將(2)和(3)式分別代入(1)式中,我們可以得到存取時間ta新的關(guān)系式:
圖2 mux和words固定,存取時間ta隨bits的變化關(guān)系
圖3 bits和mux固定,存取時間ta隨words的變化關(guān)系
在一款存儲編譯器里面,mux的取值往往是有限的,例如ARM公司支持0.13 μm工藝的編譯器其mux的取值分別為8、16、32。這樣我們可以把mux=8、mux=16和mux=32作為三種情況來分析,這樣做的好處是固定了mux值,減少變量,使模型進(jìn)一步簡化。當(dāng)固定mux值后,模型可以進(jìn)一步簡化為:
對式(5)固定words時,ta與bits成線性關(guān)系,固定bits時,ta與words成線性關(guān)系。即此時ta與words、bits成雙線性關(guān)系,我們可以采用雙線性插值法來優(yōu)化模型。
3.2編譯器時序模型優(yōu)化
雙線性插值是有兩個變量的插值函數(shù)的線性插值擴(kuò)展,其核心思想是在兩個方向分別進(jìn)行一次線性插值。假設(shè)已知函數(shù)f在如圖4四個點(diǎn)的值,那么我們可以計(jì)算出這四個點(diǎn)圍成的圖形內(nèi)任意一點(diǎn)的值P= (x,y)。
圖4 雙線性插值
首先在x方向進(jìn)行線性插值,得到:
其中R1=(x,y1)。
其中R2=(x,y2)。
然后在y方向進(jìn)行線性插值,得到:
這樣就得到想要的結(jié)果:
由式(13)可知,在已知圍成矩形的四個坐標(biāo)值及其對應(yīng)存取時間的條件下,只要知道在這四個點(diǎn)范圍內(nèi)某點(diǎn)的words和bits值,就可以計(jì)算出相應(yīng)的ta值。通過用連續(xù)的坐標(biāo)矩形來描述整個編譯器容量,雙線性插值法就將問題轉(zhuǎn)化成劃分多少個坐標(biāo)矩形,而劃分的坐標(biāo)矩形數(shù)越多,計(jì)算得到的ta值也越精準(zhǔn),誤差也越小。
以ARM公司存儲編譯器為例,當(dāng)mux=8時,其字深words從256變化到4096,位長bits從2變化到128,我們劃分坐標(biāo)矩形時可以按2n來采樣,字深選擇256、512、1024、2048、4096,位長選擇2、4、8、16、32、64、128,這些采樣點(diǎn)稱之為基點(diǎn),通過這35個基點(diǎn)將整個存儲容量劃分為35個坐標(biāo)矩形,而仿真時只需對這35個采樣基點(diǎn)對應(yīng)尺寸的存儲器進(jìn)行仿真,而不必仿真每個尺寸的存儲器,節(jié)約了時間,極大降低了設(shè)計(jì)復(fù)雜度。
4.1模型驗(yàn)證
在本節(jié)中,將論文模型計(jì)算得出的存取時間與ARM公司編譯器對應(yīng)存取時間進(jìn)行了驗(yàn)證和對比?;舅枷胧窃谳斎霔l件一致的情況下,分別通過論文模型和ARM編譯器模型計(jì)算得到存取時間,然后比較二者差異,如果差異較小,則認(rèn)為論文模型是具有實(shí)際意義的。該款A(yù)RM公司編譯器是ARM公司的Artisan系列IP,是為中芯國際(SMIC)提供的一款基于SMIC 0.13 μm工藝的物理IP,對于這款編譯器的時序功耗模型我們認(rèn)為有一定借鑒意義。
具體方法如下:按2n選取ARM公司編譯器字深和位寬上一些值對應(yīng)的存取時間作為基點(diǎn),然后按照上文方法建立模型,計(jì)算出這些基點(diǎn)圍成區(qū)域內(nèi)一些尺寸的存取時間,再與ARM公司編譯器該尺寸存取時間的值進(jìn)行對比。ARM公司編譯器的規(guī)格參數(shù)如表1所示。
表1 ARMArtisan基于SMIC 0.13 μm工藝編譯器平臺參數(shù)
4.2驗(yàn)證對比結(jié)果分析
表2、表3和表4分別列出在列選mux=8、mux=16、mux=32的情況下,隨機(jī)選取不同字深words和位寬bits,由模型計(jì)算出對應(yīng)尺寸的存取時間ta1和ARM公司0.13 μm工藝存儲編譯器導(dǎo)出的存取時間ta2,并列出二者的誤差。從誤差分析可以看出由模型計(jì)算出的一些存取時間與ARM公司編譯器導(dǎo)出的存取時間是非常接近的,這說明本文采用的建模方法與ARM公司編譯器的建模方法十分類似,該建模方法通過ARM公司編譯器得到了驗(yàn)證,實(shí)踐證明該方法能夠較為精確地描述存取時間時序情況。
表2 列選mux=8時,不同尺寸下模型計(jì)算得出的存取時間與ARM公司0.13 μm工藝編譯器存取時間對比
表3 列選mux=16時,不同尺寸下模型計(jì)算得出的存取時間與ARM公司0.13 μm工藝編譯器存取時間對比
表4 列選mux=32時,不同尺寸下模型計(jì)算得出的存取時間與ARM公司0.13 μm工藝編譯器存取時間對比
測量單個存儲器時序,我們可以通過提取版圖參數(shù)、搭建關(guān)鍵路徑的方式對存儲器網(wǎng)表進(jìn)行準(zhǔn)確的模擬仿真。對于存儲編譯器,不可能對所有尺寸的存儲器進(jìn)行模擬仿真,這里選取有代表性的尺寸測量,然后用雙線性插值法推算其他未測量過的尺寸的時序。本文介紹了一種存儲編譯器時序建模的方法,對其理論和方法進(jìn)行了重點(diǎn)分析,最后與ARM公司編譯器進(jìn)行驗(yàn)證和對比。在保證一定精度的前提下,該方法能有效降低存儲編譯器設(shè)計(jì)復(fù)雜度,減少設(shè)計(jì)周期。因此,這種相對靈活的建模方法能夠適應(yīng)當(dāng)今SOC設(shè)計(jì)的需求。
[1]H B Bakoglu.Circuits,Interconnections,and Packaging for VLSI[M].Reading MA:Addison-Wesley Publishing Co,1990:56-62.
[2]劉一杰.嵌入式存儲編譯器設(shè)計(jì) [D].上海:復(fù)旦大學(xué),2006.
[3]ZHANG K.Embedded memories for nano_scale VLSIs [M].New York:Springer,2009:42-49.
[4]NIKI Y,KAWASUMI A,SUZUKI A,et al.A digitized replica bitline delay technique for random variation tolerant timing generation of SRAM sense amplifiers[J].IEEE J Sol Sta Circ,2011,40(11):2545-2551.
[5]VENKATRAMAN R,CASTAGNETTI R,KOBOZEVA O,et al.The design,analysis and development of highly manufacturable 6-T SRAM bitcells for SOC applications[J]. IEEE Trans Elec Dev,2005,52(2):218-226.
[6]YANG B D,KIM L-S.A low-power SRAM using hierarchical bit line and local sense amplifiers[J].IEEE J Sol Sta Circ,2005,40(6):1366-1376.
[7]XU Y,GAO Z Q,HE X Q.A flexible embedded SRAM IP compiler[C].IEEE Int Symp Circ Syst,New Orleans,LA, USA.2007:3756-3759.
[8]Z Zhao-Yong et al.A 90 nm CMOS embedded low power SRAM compiler[C].IEEE 8th International Conference,2009:625-628.
High-Speed SRAM Compiler Timing Algorithm
HUANG Ben1,PENG Li2,WU Haihong2
(1.Jiangnan University,Wuxi 214122,China;2.China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214035,China)
The paper introduces a method of SRAM compiler timing modelling.By analyzing the delay of the critical path,timing model adopts segmented expansion method to discuss the impact of segments on timing. The bilinear interpolation method further optimizes the timing model,thereby greatly improving the accuracy. The compiler is then compared with the ARM 0.13 μm memory compiler.The results show that the model is capable of accurate description of the timing.
memory compiler;SRAM IP;timing;bilinear interpolation
TN402
A
1681-1070(2016)07-0022-04
2016-3-21
黃奔(1989—),男,湖北咸寧人,江南大學(xué)集成電路工程研究生,現(xiàn)在無錫中科芯模擬部門從事存儲編譯器電路設(shè)計(jì)工作。