黃 奔,彭 力,吳海宏(.江南大學(xué),江蘇無(wú)錫4;.中國(guó)電子科技集團(tuán)公司第58研究所,江蘇無(wú)錫4035)
?
高速SRAM編譯器時(shí)序算法
黃奔1,彭力2,吳海宏2
(1.江南大學(xué),江蘇無(wú)錫214122;2.中國(guó)電子科技集團(tuán)公司第58研究所,江蘇無(wú)錫214035)
介紹了一種通用嵌入式存儲(chǔ)器(SRAM)編譯器時(shí)序建模的方法。通過(guò)對(duì)存儲(chǔ)器關(guān)鍵路徑延時(shí)分析,時(shí)序模型采用分段拓展的建模方式,用Rows、Columns來(lái)對(duì)SRAM進(jìn)行分段,分別討論各段對(duì)時(shí)序的影響。采用雙線性插值法對(duì)模型進(jìn)一步優(yōu)化,較大程度上提高了模型的精度。最后與ARM公司0.13 μm工藝的存儲(chǔ)編譯器進(jìn)行了驗(yàn)證和對(duì)比。結(jié)果表明,該模型能夠較為精確地描述存儲(chǔ)編譯器時(shí)序。
存儲(chǔ)編譯器;SRAM IP;時(shí)序建模;雙線性插值
隨著納米工藝時(shí)代的到來(lái),嵌入式存儲(chǔ)器在SOC中所占據(jù)的比例日益增加。作為嵌入模塊中應(yīng)用最普及的一種,嵌入式存儲(chǔ)器基于自身的功能特性,以及相同面積下相比于組合邏輯塊功耗更低的優(yōu)點(diǎn),在深亞微米片上系統(tǒng)設(shè)計(jì)中被廣泛使用。其應(yīng)用的廣泛程度已經(jīng)與標(biāo)準(zhǔn)單元和輸入輸出單元相當(dāng)。而SOC芯片的速度受存儲(chǔ)器訪問(wèn)時(shí)間的制約,工作頻率越高,芯片的處理能力越強(qiáng)。通過(guò)對(duì)時(shí)序的分析,我們可以對(duì)工程的綜合、映射、布局布線等關(guān)鍵環(huán)節(jié)進(jìn)行控制,減少邏輯和布線延遲,從而盡可能提高工作頻率,因此明確時(shí)序在SOC設(shè)計(jì)中是至關(guān)重要的。時(shí)序性能的主要指標(biāo)是存取時(shí)間,存取時(shí)間表示從開始一次存儲(chǔ)器操作到完成該操作所需要的時(shí)間,通常指讀時(shí)間和寫時(shí)間二者中的最大值,本文主要以存取時(shí)間為例來(lái)進(jìn)行建模分析。
編譯器時(shí)序建模的難點(diǎn)在于找到一種具有代表性的模型,能夠較為精準(zhǔn)地描述SRAM IP核時(shí)序。Tomohisa Wada等人描述了一個(gè)片上緩存存儲(chǔ)器的存取時(shí)間模型,通過(guò)RC等模型分析給出每一種延時(shí)模塊的解析方程,最后各部分累加得到總的存取時(shí)間,但是復(fù)雜度相對(duì)較高,具有解析模型帶有的通用性差、不靈活的缺點(diǎn)[1]。劉一杰采用擬合公式即時(shí)序等式同時(shí)選取具有代表性尺寸存儲(chǔ)器測(cè)量的方式建立時(shí)序模型,但是該時(shí)序模型得到的參數(shù)值相對(duì)于仿真值誤差較大[2]。本文綜合上述方法并結(jié)合實(shí)際的仿真情況,首先通過(guò)版圖參數(shù)的提取搭建關(guān)鍵路徑,對(duì)具有代表性的存儲(chǔ)器進(jìn)行準(zhǔn)確的模擬仿真,然后采用雙線性插值的方法推算其他未仿真過(guò)尺寸的存儲(chǔ)器。本文提出的設(shè)計(jì)方法使編譯器在保持一定精度的條件下,通用靈活性強(qiáng),設(shè)計(jì)復(fù)雜度較之前的工作大大降低。
文章中描述了針對(duì)納米工藝下嵌入式存儲(chǔ)編譯器高效準(zhǔn)確的時(shí)序模型。先在第二節(jié)介紹時(shí)序建模的理論依據(jù),包括對(duì)本文提出方法以及其關(guān)鍵概念的介紹,初步提出存儲(chǔ)編譯器時(shí)序模型并且對(duì)該模型的不足之處進(jìn)行分析。第三節(jié)針對(duì)模型的不足進(jìn)行進(jìn)一步優(yōu)化,采用雙線性插值法提高精度。在第四節(jié)中將通過(guò)模型計(jì)算得到的存取時(shí)間與ARM公司編譯器導(dǎo)出的數(shù)值進(jìn)行驗(yàn)證對(duì)比。對(duì)該模型的總結(jié)將在最后一節(jié)列出。
2.1存儲(chǔ)器關(guān)鍵路徑延時(shí)分析
在通常的設(shè)計(jì)中都采用關(guān)鍵路徑來(lái)代替整個(gè)電路進(jìn)行仿真,以便提高設(shè)計(jì)效率,減少仿真時(shí)間。分析SRAM的讀寫工作過(guò)程可以知道其有兩條主要路徑,分別是數(shù)據(jù)寫入路徑和數(shù)據(jù)讀出路徑,其中寫操作關(guān)鍵路徑上的地址線和字線間的路徑存在相應(yīng)的寫延時(shí),讀操作關(guān)鍵路徑上的位線和數(shù)據(jù)輸出之間的路徑存在相應(yīng)的讀延時(shí)。對(duì)圖1所示存儲(chǔ)器關(guān)鍵路徑進(jìn)行分析,我們可以將存儲(chǔ)器的延時(shí)分解成譯碼期間所需要的延時(shí)、字線選擇需要的字線延時(shí)、位線選擇需要的位線延時(shí)和存儲(chǔ)器固有延時(shí)。其中譯碼期間所需要的延時(shí)和存儲(chǔ)陣列單元選擇所需要的延時(shí)與存儲(chǔ)器尺寸有關(guān),存儲(chǔ)器固有延時(shí)與工藝和電路結(jié)構(gòu)有關(guān),而與存儲(chǔ)器尺寸無(wú)關(guān),為本身具有的延時(shí)。
2.2時(shí)序模型基本原理
在存儲(chǔ)器中,譯碼器與存儲(chǔ)單元陣列直接相連,譯碼器單元的幾何尺寸隨存儲(chǔ)器內(nèi)核尺寸變化而相應(yīng)改變。譯碼器和存儲(chǔ)陣列占據(jù)存儲(chǔ)器大部分面積,并且譯碼器和存儲(chǔ)陣列面積隨存儲(chǔ)器容量變化而變化。當(dāng)存儲(chǔ)器容量增大時(shí),譯碼器和存儲(chǔ)陣列面積增大,字線和位線的長(zhǎng)度也隨之增加,其對(duì)應(yīng)的負(fù)載電容變大。
圖1 關(guān)鍵路徑
接收到地址信號(hào)后,譯碼器需要對(duì)字線和位線譯碼,即所謂的行譯碼和列譯碼,而行譯碼延時(shí)和列譯碼延時(shí)與譯碼驅(qū)動(dòng)的負(fù)載電容成正比,負(fù)載電容來(lái)源于字線和位線,可以近似認(rèn)為字線譯碼延時(shí)正比于字線行數(shù),位線譯碼延時(shí)正比于位線列數(shù)。同理,存儲(chǔ)陣列單元選擇中字線選擇需要的字線延時(shí)與掛在字線上存儲(chǔ)單元的字線電容有關(guān),同列數(shù)成正比,位線選擇需要的位線延時(shí)與掛在位線上存儲(chǔ)單元的位線電容有關(guān),同行數(shù)成正比。存儲(chǔ)器固有延時(shí)包括數(shù)據(jù)總線驅(qū)動(dòng)延時(shí)和數(shù)據(jù)輸出驅(qū)動(dòng)延時(shí),存儲(chǔ)器固有延時(shí)與存儲(chǔ)器尺寸無(wú)關(guān),可以將其視為常量。綜上,我們可以得出存取時(shí)間ta的關(guān)系式:
ta=aRows+bColumns+c(1)
其中a、b、c為常數(shù),只需分別取3組仿真值,通過(guò)待定系數(shù)法,即可以求出a、b、c的值。但是這種方法也有它的缺點(diǎn):一是誤差較大,通常在6%左右;二是由于隨機(jī)采樣三組數(shù)據(jù)計(jì)算得出的a、b、c,會(huì)造成a、b、c值隨采樣數(shù)據(jù)不同而不同,使誤差進(jìn)一步擴(kuò)大。
3.1編譯器時(shí)序模型分解
通過(guò)研究發(fā)現(xiàn),當(dāng)words和mux固定不變時(shí),存取時(shí)間ta隨bits的變化關(guān)系如圖2所示,從圖中可以看出ta與bits近似成線性關(guān)系。
當(dāng)bits和mux固定不變時(shí),存取時(shí)間ta隨words的變化關(guān)系如圖3所示,即ta與words近似成線性關(guān)系。
而在上節(jié)中提到存取時(shí)間ta的關(guān)系式(1),我們可以將其進(jìn)一步拆分。(1)式中Rows和Columns分別對(duì)應(yīng)為:
將(2)和(3)式分別代入(1)式中,我們可以得到存取時(shí)間ta新的關(guān)系式:
圖2 mux和words固定,存取時(shí)間ta隨bits的變化關(guān)系
圖3 bits和mux固定,存取時(shí)間ta隨words的變化關(guān)系
在一款存儲(chǔ)編譯器里面,mux的取值往往是有限的,例如ARM公司支持0.13 μm工藝的編譯器其mux的取值分別為8、16、32。這樣我們可以把mux=8、mux=16和mux=32作為三種情況來(lái)分析,這樣做的好處是固定了mux值,減少變量,使模型進(jìn)一步簡(jiǎn)化。當(dāng)固定mux值后,模型可以進(jìn)一步簡(jiǎn)化為:
對(duì)式(5)固定words時(shí),ta與bits成線性關(guān)系,固定bits時(shí),ta與words成線性關(guān)系。即此時(shí)ta與words、bits成雙線性關(guān)系,我們可以采用雙線性插值法來(lái)優(yōu)化模型。
3.2編譯器時(shí)序模型優(yōu)化
雙線性插值是有兩個(gè)變量的插值函數(shù)的線性插值擴(kuò)展,其核心思想是在兩個(gè)方向分別進(jìn)行一次線性插值。假設(shè)已知函數(shù)f在如圖4四個(gè)點(diǎn)的值,那么我們可以計(jì)算出這四個(gè)點(diǎn)圍成的圖形內(nèi)任意一點(diǎn)的值P= (x,y)。
圖4 雙線性插值
首先在x方向進(jìn)行線性插值,得到:
其中R1=(x,y1)。
其中R2=(x,y2)。
然后在y方向進(jìn)行線性插值,得到:
這樣就得到想要的結(jié)果:
由式(13)可知,在已知圍成矩形的四個(gè)坐標(biāo)值及其對(duì)應(yīng)存取時(shí)間的條件下,只要知道在這四個(gè)點(diǎn)范圍內(nèi)某點(diǎn)的words和bits值,就可以計(jì)算出相應(yīng)的ta值。通過(guò)用連續(xù)的坐標(biāo)矩形來(lái)描述整個(gè)編譯器容量,雙線性插值法就將問(wèn)題轉(zhuǎn)化成劃分多少個(gè)坐標(biāo)矩形,而劃分的坐標(biāo)矩形數(shù)越多,計(jì)算得到的ta值也越精準(zhǔn),誤差也越小。
以ARM公司存儲(chǔ)編譯器為例,當(dāng)mux=8時(shí),其字深words從256變化到4096,位長(zhǎng)bits從2變化到128,我們劃分坐標(biāo)矩形時(shí)可以按2n來(lái)采樣,字深選擇256、512、1024、2048、4096,位長(zhǎng)選擇2、4、8、16、32、64、128,這些采樣點(diǎn)稱之為基點(diǎn),通過(guò)這35個(gè)基點(diǎn)將整個(gè)存儲(chǔ)容量劃分為35個(gè)坐標(biāo)矩形,而仿真時(shí)只需對(duì)這35個(gè)采樣基點(diǎn)對(duì)應(yīng)尺寸的存儲(chǔ)器進(jìn)行仿真,而不必仿真每個(gè)尺寸的存儲(chǔ)器,節(jié)約了時(shí)間,極大降低了設(shè)計(jì)復(fù)雜度。
4.1模型驗(yàn)證
在本節(jié)中,將論文模型計(jì)算得出的存取時(shí)間與ARM公司編譯器對(duì)應(yīng)存取時(shí)間進(jìn)行了驗(yàn)證和對(duì)比?;舅枷胧窃谳斎霔l件一致的情況下,分別通過(guò)論文模型和ARM編譯器模型計(jì)算得到存取時(shí)間,然后比較二者差異,如果差異較小,則認(rèn)為論文模型是具有實(shí)際意義的。該款A(yù)RM公司編譯器是ARM公司的Artisan系列IP,是為中芯國(guó)際(SMIC)提供的一款基于SMIC 0.13 μm工藝的物理IP,對(duì)于這款編譯器的時(shí)序功耗模型我們認(rèn)為有一定借鑒意義。
具體方法如下:按2n選取ARM公司編譯器字深和位寬上一些值對(duì)應(yīng)的存取時(shí)間作為基點(diǎn),然后按照上文方法建立模型,計(jì)算出這些基點(diǎn)圍成區(qū)域內(nèi)一些尺寸的存取時(shí)間,再與ARM公司編譯器該尺寸存取時(shí)間的值進(jìn)行對(duì)比。ARM公司編譯器的規(guī)格參數(shù)如表1所示。
表1 ARMArtisan基于SMIC 0.13 μm工藝編譯器平臺(tái)參數(shù)
4.2驗(yàn)證對(duì)比結(jié)果分析
表2、表3和表4分別列出在列選mux=8、mux=16、mux=32的情況下,隨機(jī)選取不同字深words和位寬bits,由模型計(jì)算出對(duì)應(yīng)尺寸的存取時(shí)間ta1和ARM公司0.13 μm工藝存儲(chǔ)編譯器導(dǎo)出的存取時(shí)間ta2,并列出二者的誤差。從誤差分析可以看出由模型計(jì)算出的一些存取時(shí)間與ARM公司編譯器導(dǎo)出的存取時(shí)間是非常接近的,這說(shuō)明本文采用的建模方法與ARM公司編譯器的建模方法十分類似,該建模方法通過(guò)ARM公司編譯器得到了驗(yàn)證,實(shí)踐證明該方法能夠較為精確地描述存取時(shí)間時(shí)序情況。
表2 列選mux=8時(shí),不同尺寸下模型計(jì)算得出的存取時(shí)間與ARM公司0.13 μm工藝編譯器存取時(shí)間對(duì)比
表3 列選mux=16時(shí),不同尺寸下模型計(jì)算得出的存取時(shí)間與ARM公司0.13 μm工藝編譯器存取時(shí)間對(duì)比
表4 列選mux=32時(shí),不同尺寸下模型計(jì)算得出的存取時(shí)間與ARM公司0.13 μm工藝編譯器存取時(shí)間對(duì)比
測(cè)量單個(gè)存儲(chǔ)器時(shí)序,我們可以通過(guò)提取版圖參數(shù)、搭建關(guān)鍵路徑的方式對(duì)存儲(chǔ)器網(wǎng)表進(jìn)行準(zhǔn)確的模擬仿真。對(duì)于存儲(chǔ)編譯器,不可能對(duì)所有尺寸的存儲(chǔ)器進(jìn)行模擬仿真,這里選取有代表性的尺寸測(cè)量,然后用雙線性插值法推算其他未測(cè)量過(guò)的尺寸的時(shí)序。本文介紹了一種存儲(chǔ)編譯器時(shí)序建模的方法,對(duì)其理論和方法進(jìn)行了重點(diǎn)分析,最后與ARM公司編譯器進(jìn)行驗(yàn)證和對(duì)比。在保證一定精度的前提下,該方法能有效降低存儲(chǔ)編譯器設(shè)計(jì)復(fù)雜度,減少設(shè)計(jì)周期。因此,這種相對(duì)靈活的建模方法能夠適應(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]劉一杰.嵌入式存儲(chǔ)編譯器設(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)在無(wú)錫中科芯模擬部門從事存儲(chǔ)編譯器電路設(shè)計(jì)工作。