亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于流水化和滑動窗口結(jié)構(gòu)的低功耗指令Cache設(shè)計

        2016-01-08 05:31:26李偉,肖建青
        計算機工程與科學(xué) 2015年6期

        基于流水化和滑動窗口結(jié)構(gòu)的低功耗指令Cache設(shè)計*

        李偉,肖建青

        (西安微電子技術(shù)研究所,陜西 西安 710065)

        摘要:嵌入式處理器中Cache的應(yīng)用極大地提高了處理器的性能,同時Cache,尤其是指令Cache功耗占據(jù)了處理器很大一部分功耗,關(guān)閉不必要的tag SRAM和data SRAM的訪問,可以極大地降低功耗。提出了一種流水化的指令Cache訪問機制,關(guān)閉不必要的data SRAM的訪問;并且通過記錄指令Cache行的信息和預(yù)測下一行的Cache形成一個Cache行滑動窗口,關(guān)閉不必要的tag SRAM訪問。所提出的方法沒有性能損失,在SMIC 90 nm工藝下進行功耗分析,其指令訪問的功耗降低50%。

        關(guān)鍵詞:指令Cache;低功耗 ;流水化;滑動窗口;CPU

        中圖分類號:TP303 文獻標志碼:A

        doi:10.3969/j.issn.1007-130X.2015.06.001

        收稿日期:*2014-05-02;修回日期:2014-09-01

        基金項目:國家863計劃資助項目(2011AA120201)

        作者簡介:

        通信地址:710065 陝西省西安市太白南路198號研究生部

        Address:Graduate Department,198 Taibai Rd South,Xi’an 710065,Shaanxi,P.R.China

        Low power instruction cache design based on pipeline and sliding window structure

        LI Wei,XIAO Jian-qing

        (Xi’an Microelectronic Technology Institute,Xi’an 710065,China)

        Abstract:While the application of cache significantly improves the performance of the embedded processors, the cache, especially the I-cache, also consumes a large proportion of power. Reducing unnecessary accesses to the tag SRAM and the data SRAM can lower the power consumption. In this paper we design a pipeline I-Cache access mechanism that can deny the unnecessary access to the data SRAM. We also present a slide window of the cache lines by recording the information of the current introduction cache line and by predicting the information of the next cache line to reduce the unnecessary access to the tag SRAM. In the SMIC 90nm, the proposed method can achieve a 50% power reduction of the I-Cache without any performance degradation.

        Key words:I-cache;low power;pipeline;slide window;CPU

        1引言

        在現(xiàn)代嵌入式處理器中,Cache的功耗占很大一部分比例,例如strong-arm110的Cache功耗占處理器功耗的43%[1]。在嵌入式應(yīng)用中l(wèi)oad/store指令的比例一般不超過25%[2],并且數(shù)據(jù)沒有明顯的局部性特點,數(shù)據(jù)Cache大都采用直接映射,因此其所占功耗較小。指令一般具有顯著的局部性特點,為了提高指令Cache的命中率,一般指令Cache都采用多路組相連的Cache結(jié)構(gòu),功耗較大,因此降低指令Cache的功耗一直是嵌入式處理器設(shè)計的重點。

        在嵌入式應(yīng)用環(huán)境中,功耗可以說是設(shè)計的第一要素。隨著功耗問題的日益明顯,Cache的低功耗設(shè)計方法也層出不窮。指令Cache分階段訪問就是將tag位和data位的訪問分為兩個階段,只有在tag位命中的情況下,才去訪問data位,以減小指令Cache的訪問功耗[3],但是該方法引入了一個時鐘周期的延遲,降低了指令Cache的性能。為了消除分階段訪問帶來的延遲,文獻[4]提出了一種路預(yù)測的方法,通過直接訪問預(yù)測命中路的指令,以減小訪問的功耗。但是,功耗的降低與預(yù)測的準確率相關(guān),當準確率較低時,不僅沒有降低功耗,同樣會造成性能的損失。文獻[5]提出了基于預(yù)測機制的Filter Buffer技術(shù),通過預(yù)測將要訪問的指令是在指令Cache中還是在Filter Buffer中來降低指令Cache的訪問次數(shù)。文獻[6]提出了一種基于分支折合的低功耗設(shè)計方法,充分利用指令緩沖隊列中執(zhí)行過的指令來減小指令Cache訪問功耗。以上兩種技術(shù)分別增加了額外的存儲結(jié)構(gòu),發(fā)掘程序中的短循環(huán)體,以降低訪問功耗,一方面額外的存儲結(jié)構(gòu)會帶來額外的功耗消耗;另一方面如果發(fā)掘算法不合理或緩沖隊列的深度不合適,反而會額外增加指令Cache的功耗。文獻[7~9]提出了基于特定算法的動態(tài)可重構(gòu)的指令Cache設(shè)計,通過動態(tài)改變指令Cache的容量和組相聯(lián)數(shù)達到減小訪問次數(shù)和功耗的目的。由于指令的動態(tài)功耗與存儲體訪問寬度關(guān)聯(lián)較大,與容量關(guān)聯(lián)度較小,因此動態(tài)功耗下降有限,此外容量的動態(tài)調(diào)整滯后于實際的程序需要,因此對指令Cache的性能有一定的影響。

        本文對LEON3處理器的指令Cache進行分析后,充分發(fā)掘利用指令Cache訪問時已經(jīng)讀出的tag信息,減小tag訪問的次數(shù);此外,采用了基于雙時鐘沿流水化分階段訪問的結(jié)構(gòu),減小數(shù)據(jù)區(qū)域訪問的次數(shù),在增加很小的硬件代價的基礎(chǔ)上,大幅度降低了指令Cache的動態(tài)功耗。

        2滑動窗口的原理分析

        通過對指令Cache行的執(zhí)行情況進行分析,可以將指令流歸納為四種情況,如圖1所示。

        Figure 1 Four types of instruction flow 圖1 四種類型的指令流

        第一類為指令流在同一Cache行。如當前指令為指令a,當不發(fā)生跳轉(zhuǎn)時將執(zhí)行指令b,如果發(fā)生跳轉(zhuǎn)時,跳轉(zhuǎn)到本行指令c。無論哪種情況其相繼執(zhí)行的指令都在同一Cache行中。對于某一Cache行的多條指令,共享tag標志位。

        第二類為相鄰的Cache行。如指令b為當前指令最后一行,如果不發(fā)生跳轉(zhuǎn),將要執(zhí)行下一Cache行的第一條指令,如果發(fā)生跳轉(zhuǎn),其跳轉(zhuǎn)的目標指令為下一行的指令b。也就是說將要執(zhí)行的指令在相鄰的下一個Cache行中。在第一類指令發(fā)生的空隙,tag SRAM處于空閑,如果利用空閑周期,預(yù)先讀出同一路下一個Cache的tag標志位和有效位,在指令發(fā)生Cache行切換時,預(yù)先比較預(yù)測的Cache行是否命中,如果命中就可以關(guān)閉tag SRAM,其余路的比較器也可以不參與比較,這樣便可以有效地降低功耗。事實上由于指令的局部性特征比較明顯,預(yù)測的成功率很高。

        第三類是在第i行Cache發(fā)生跳轉(zhuǎn),跳轉(zhuǎn)到最近執(zhí)行過的Cache行。對于此類指令可以記錄最近執(zhí)行過的多個Cache行的信息,當指令發(fā)生跳轉(zhuǎn)時,首先比較記錄中的Cache行是否命中,同樣,如果命中便可以降低tag SRAM的功耗。

        第四類是發(fā)生跳轉(zhuǎn)指令,其跳轉(zhuǎn)地址不在以上三類的記錄信息內(nèi),對于此類指令流沒有規(guī)律可循,因此不做處理。

        因此,本文通過設(shè)置一個滑動的寄存器窗口來記錄預(yù)測的Cache行信息、當前Cache行的信息和最近訪問Cache行的信息,用于提前比較指令Cache是否命中,如果命中,可以有效地降低指令Cache的功耗,如果不命中,也不會帶來額外的性能損失。其原理示意圖如圖2所示,圖中采用了四路組相聯(lián)Cache,每一Cache指令字為4,滑動窗口深度為3。滑動窗口由三個字段組成:(1)set字段用于保存有效指令所在的Cache組號;(2)tag字段用于記錄tag信息,用于命中判斷;(3)valid字段用于記錄對應(yīng)指令是否有效。不失一般性,假設(shè)剛剛執(zhí)行過和正在執(zhí)行的指令均來自第一路Cache,當執(zhí)行到第i行指令Cache時,首先將當前Cache行tag、valid等信息保存到記錄窗口中,此后同一行Cache的指令通過滑動窗口進行命中判斷。利用Cache tag SRAM訪問的空閑時間段,將同一路Cache的下一行信息保存到記錄窗口中。當Cache行發(fā)生變化時,首先判斷記錄窗口記錄的tag信息是否命中,如果命中發(fā)生窗口滑動,將下一行信息保存為當前信息,當前信息保存為歷史信息。如果沒有命中,首先將當前信息保存為歷史信息,重新記錄當前Cache信息和預(yù)取下一Cache行信息。事實上,通過設(shè)置set字段保存有效的Cache組號,Cache的跳轉(zhuǎn)可以是不同組的Cache行??紤]到順序執(zhí)行的指令序列占總指令的很大一部分比例,記錄窗口只是預(yù)取同一路的下一Cache信息,而不做復(fù)雜的預(yù)測。

        Figure 2 Schematic of instruction cache sliding window 圖2 指令Cache滑動窗口原理示意圖

        3基于流水化和滑動窗口結(jié)構(gòu)的低功耗指令Cache設(shè)計

        3.1滑動窗口的低功耗設(shè)計

        滑動窗口的狀態(tài)控制有四種狀態(tài),如圖3所示。

        Figure 3 Schematic diagram of the sliding window 圖3 滑動窗口狀態(tài)示意圖

        (1)記錄狀態(tài),記錄當前Cache行的tag位和valid位;

        (2)同一Cache行狀態(tài),預(yù)取下一行指令的tag、valid位;

        (3)不同Cache行狀態(tài),當相繼兩條指令不在同一Cache行時,需要更新當前Cache行和歷史Cache行的tag、valid位;

        (4)寫tag更新狀態(tài),當Cache不命中時,需要重新寫Cache行,此時如果需要更新的Cache行在窗口內(nèi),需要更新其有效值。

        狀態(tài)遷移條件有八種,分別是:c1記錄當前Cache行信息,并且下一條指令在同一Cache內(nèi);c2當前指令不在同一Cache內(nèi);c3更新記錄窗口后,跳轉(zhuǎn)到同一Cache行狀態(tài);c6記錄狀態(tài)時發(fā)生跳轉(zhuǎn),當前指令與記錄指令不在同一Cache內(nèi);c4、c7和c8為Cache指令不命中,需要跳轉(zhuǎn)到寫tag更新狀態(tài),更新相應(yīng)的標志位;c5狀態(tài)為寫更新后跳轉(zhuǎn)到記錄狀態(tài)得新開始記錄。

        指令Cache 的滑動窗口由三類寄存器組構(gòu)成:current寄存器用于記錄當前行tag、set、valid信息;next寄存器用于記錄預(yù)測行tag、set、valid信息;history寄存器用于記錄最近執(zhí)行過的Cache行信息?;瑒哟翱诘拿信袛噙^程如圖4所示。首先將NPC中tag值與記錄窗口中的所有tag字段進行比較,當均不相同時表示記錄窗口缺失,需要打開四路tag區(qū)域進行tag位的讀取,并隨后更新記錄窗口。當命中時,通過set字段的組號生成Data SRAM的片選信號并保存到Data_Enable寄存器中,用于指示指令所在的區(qū)域,并根據(jù)NPC的地址偏移量來選擇有效位,如果有效位valid_x有效,表示指令字有效可以關(guān)閉tag SRAM;如果valid_x無效,表示指令字在Cache中缺失,按指令字缺失做處理,當指令字重新從主存中取回時,更新相應(yīng)的標志位。

        3.2分段流水化的低功耗設(shè)計

        為了進一步減小指令Cache數(shù)據(jù)區(qū)域的訪問次數(shù),降低功耗,在本文的指令Cache設(shè)計中,將取指令操作分為了三個流水階段,分階段比較和輸出,減小data SRAM的訪問次數(shù)。在寄存器和SRAM全部采用時鐘上升沿采樣時,取tag標志位信息、tag位輸出比較并根據(jù)結(jié)果使能data SRAM和指令輸出將分別對應(yīng)處理器流水的W(寫回)、F(取指)和D(譯碼)。在這種情況下,SRAM輸出的時延將壓縮譯碼階段電路的譯碼時間,對譯碼電路本就緊張的時序造成影響。因此,本文對data SRAM的控制信號采用了下降沿采樣的設(shè)計方法,將3個時鐘周期壓縮為2.5個時鐘周期或2個時鐘周期。其電路結(jié)構(gòu)如圖5所示。

        Figure 4 Hit judgment of the sliding window 圖4 滑動窗口命中判斷

        Figure 5 Scheme of instruction cache with pipeline 圖5 流水化操作電路結(jié)構(gòu)圖

        在W流水級,根據(jù)NPC值將使能信號和地址信號輸入到四路tag SRAM中,同時進行記錄窗口的預(yù)判,并將預(yù)判結(jié)果保存到寄存器中。

        在F流水級,如果記錄窗口命中,通過多路選擇器和latch進行操作數(shù)隔離,減小索引和PC比較的功耗,如果沒有命中,使用PC地址和tag SRAM輸出的索引進行命中判斷,將命中的結(jié)果保存到D_set寄存器中。在時鐘的下降沿,data SRAM采樣控制和地址信號,并將數(shù)據(jù)輸出。當時鐘頻率較低時,使用寄存器保存指令輸出結(jié)果,當時鐘頻率較高時,寄存器的建立時間無法保障,采用鎖存器保存輸出結(jié)果,鎖存器在高電平時透明,在低電平時將數(shù)據(jù)鎖存,保證譯碼階段指令的持續(xù)輸出。對于使用鎖存器保存指令的結(jié)構(gòu),同時需要設(shè)置額外的一個寄存器用于保存指令字,保證流水由于數(shù)據(jù)相關(guān)停頓時,譯碼器的指令字來自指令寄存器,從而可以最大限度地減小指令Cache的訪問。在本文的設(shè)計中,時鐘的頻率為200 MHz,完全可以滿足使用寄存器保存指令的時序要求。

        通過流水化的指令Cache設(shè)計,可以將分段訪問Cache技術(shù)帶來的額外時鐘消耗完成隱藏到流水線中。同時,利用分段訪問組相聯(lián)Cache原理,根據(jù)tag的比較結(jié)果選擇有效的數(shù)據(jù)區(qū)域進行訪問,減少了訪問Cache數(shù)據(jù)區(qū)域的次數(shù),有效地降低了Cache的功耗。

        4實驗及結(jié)果分析

        4.1訪問量分析

        我們使用Power Stone Benchmarks[10]嵌入式功耗測試向量對改進前后的LEON3指令Cache tag、data區(qū)域的訪問次數(shù)進行了統(tǒng)計,發(fā)現(xiàn)next和current寄存器的設(shè)置可以有效地降低tag SRAM訪問的次數(shù),而history的數(shù)量對減少tag SRAM訪問次數(shù)的貢獻較小,在設(shè)置1、2、4個history寄存器時,平均訪問減少3.583%、3.589%、3.589%。因此,本文的歷史寄存器數(shù)量設(shè)置為1。最終的統(tǒng)計結(jié)果如表1所示。

        Table 1 Number of access to the tag SRAM before

        通過以上的統(tǒng)計信息可以看出,采用滑動記錄窗口的技術(shù),可以有效地降低tag SRAM的訪問次數(shù),訪問次數(shù)減小為初始設(shè)計的39%,而處理器總的執(zhí)行周期沒有任何變化。

        對選取的Power Stone測試向量進行了指令Cache數(shù)據(jù)區(qū)域訪問的統(tǒng)計,統(tǒng)計結(jié)果如表2所示。

        Table 2 Number of access to the data SRAM before

        通過以上統(tǒng)計結(jié)果可以看出,采用基于分段訪問的流水結(jié)構(gòu)的Cache訪問,極大地減少了對指令Cache數(shù)據(jù)區(qū)域的訪問次數(shù),data SRAM的訪問次數(shù)下降為優(yōu)化前的27%。

        4.2功耗分析

        指令Cache的tag SRAM和data SRAM采用TSMC 90 nm工藝的Memory Compiler生產(chǎn),指令Cache控制器同樣采用TSMC 90 nm工藝在Synopsys DC工具綜合生產(chǎn)。基于時鐘周期的仿真采用Power Stone Benchmarks測試程序集,功耗分析采用Synopsys PTPX工具進行分析。tag SRAM和data SRAM的功耗對比圖如圖6和圖7所示。

        Figure 6 Power comparison of each set tag SRAM with and without the sliding record window 圖6 采用滑動記錄窗口技術(shù)前后 指令Cache各路tag功耗對比

        Figure 7 Power comparison of each set data SRAM with and without the technique of phased access and pipeline 圖7 采用分階段訪問和流水化技術(shù)前后 每路data SRAM功耗對比

        從圖6可以看出,通過采用流水化分階段訪問技術(shù),指令Cache的data SRAM區(qū)域功耗得到了有效的控制,平均功耗下降至原始設(shè)計功耗的40%。從圖7可以看出,通過采用滑動記錄窗口技術(shù),指令Cache的tag SRAM區(qū)域的訪問功耗大幅下降,平均減少到原始設(shè)計的60%。

        Figure 8 Total power comparison of instruction cache 圖8 指令Cache的總功耗對比

        從圖8的功耗仿真結(jié)果可以看出,采用流水化指令Cache以后,其指令Cache的功耗減少了約40%,同時采用流水化設(shè)計和滑動窗口設(shè)計后指令Cache的功耗減少了約60%。因此,極大地降低了指令Cache的功耗。

        5結(jié)束語

        本文首先研究分析了現(xiàn)有的降低指令Cache的設(shè)計方法和技術(shù),并結(jié)合具體項目中的Cache結(jié)構(gòu),設(shè)計一種滑動記錄窗口的流水結(jié)構(gòu)指令Cache,用于降低指令Cache的動態(tài)功耗。該技術(shù)通過將指令Cache的訪問分為三級流水結(jié)構(gòu),將指令Cache的tag位讀取、tag位的比較和指令的讀取分為三個階段完成。由于只有在tag位命中后才進行指令的讀取,有效地降低了指令Cache的指令區(qū)域的訪問量,有效地降低了功耗。同時,基于指令訪問顯著的空間局部性特點,通過設(shè)置滑動記錄窗口記錄當前的和最近訪問過的tag標志位,在讀取指令Cache的tag標志位之前首先比較記錄窗口的tag標志位,只有不命中時,才讀取指令Cache的tag標志位,有效地降低了tag位的比較和tag區(qū)域的訪問次數(shù),可以有效地降低功耗。

        參考文獻:

        [1]Montenaro J,Loe T H,Witek R T,et al. A 160MHz 32b 0.5W CMOS RISC microprocessor[J]. IEEE ISSCC,1996,31(11):1703-1714.

        [2]Guthaus M R,Ringenberg J S,Ernst D,et al. Mibench:A free,commercially representative embeded benchmark suite[C]//Proc of IEEE 4th Annual Workshop on Workload Characterization,2001:3-14.

        [3]Megalingam R K,Deepu K B,Joseph I P,et al. Phased set associative cache design for reduced power consumption[C]//Proc of International Conference on Computer Science and Information Technology,2009:551-556.

        [4]Raveendran B K,Sudarshan T S B,Patil A,et al. Predictive placement scheme in set-associative cache for energy efficient embedded systems [C]//Proc of International Conference on Signal Processing,Communications and Networking,2008:152-157.

        [5]Ali K,Aboelaze M,Datta S. Energy efficient I-Cache using multiple line buffers with prediction[J]. Computer&Digtial Techniques,2008,2(5):355-362.

        [6]Meng Jian-yi,Yan Xiao-lang,Ge Hai-tong,et al.Instruction recycling based low power branch folding[J].Journal of Zhejiang University (Engineering Science),2010,44(4):632-638. (in Chinese)

        [7]HSU P H,Chien S Y. Reconfigurable cache memory architecture for integral image and integral histogram applications[C] //Proc of International Conference on Signal Processing Systems,2011:151-156.

        [8]Alipour M,Moshari K,Bagheri M R,et al. Performance per power optimum cache architecture for embedded applications,a design space exploration[C]//Proc of the 2nd IEEE International Conference on Networked Embedded Systems for Enterprise Application,2011:1-6.

        [9]Ren Xiao-xi, Liu Qing. Study of dynamically reconfigurable algorithm for lowpower cache[J].Application Research of Computers,2013,30(20):414-416.(in Chinese)

        [10]Scott J,Lee L H,Arends J,et al. Design the low-power M CORE architecture[C]//Proc of IEEE Power Driven Microarchitecture Workshop,1998:145-150.

        參考文獻:附中文

        [6]孟建熠,嚴曉浪,葛海通,等. 基于指令回收的低功耗循環(huán)分支折合技術(shù)[J]. 浙江大學(xué)學(xué)報(工學(xué)版),2010,44(4):632-638.

        [9]任小西,劉清. 一種低功耗動態(tài)可重構(gòu)cache算法的研究[J]. 計算機應(yīng)用研究,2013,30(20):414-416.

        李偉(1980-),男,山西晉中人,博士生,研究方向為SoC低功耗設(shè)計。E-mail:David_lw@foxmail.com

        LI Wei,born in 1980,PhD candidate,his research interest includes low power design of SoC.

        久久国产精品99精品国产987| 日韩精品资源在线观看免费| 中文字幕亚洲一二三区| 全亚洲高清视频在线观看| 久久精品中文少妇内射| 久久99精品国产麻豆不卡| 亚洲精品国产成人AV| 精品久久久久中文字幕APP| 日本精品人妻在线观看| 国产精品成人av大片| 大肉大捧一进一出好爽视频动漫| 中文字幕在线亚洲日韩6页| 日本黄页网站免费大全| 亚洲阿v天堂网2021| 国产在线精彩自拍视频| 精品成人av人一区二区三区| 久久国产精品一区二区三区| 人人妻人人澡人人爽人人精品97| 国产一级片毛片| 中文字幕第一页在线无码一区二区| 国产人妻久久精品二区三区老狼 | 粉嫩国产av一区二区三区 | 久久久久亚洲精品无码网址| 在线播放国产女同闺蜜| 一区二区三区不卡免费av| 蜜桃免费一区二区三区| 国产永久免费高清在线| 国产极品美女高潮抽搐免费网站| 国内精品久久久久久久亚洲| 国产毛片精品av一区二区| 国产一区二区三区av天堂| 久久青青草原精品国产app| 国产亚洲日韩欧美一区二区三区| 一区二区久久不射av| 一区二区日本影院在线观看| 国产高清人肉av在线一区二区| 国产精品无码制服丝袜| 午夜性色一区二区三区不卡视频| 熟妇人妻中文字幕无码老熟妇| 久草视频华人在线观看| av免费在线播放观看|