999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于流水化和滑動窗口結構的低功耗指令Cache設計

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

基于流水化和滑動窗口結構的低功耗指令Cache設計*

李偉,肖建青

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

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

關鍵詞:指令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引言

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

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

本文對LEON3處理器的指令Cache進行分析后,充分發掘利用指令Cache訪問時已經讀出的tag信息,減小tag訪問的次數;此外,采用了基于雙時鐘沿流水化分階段訪問的結構,減小數據區域訪問的次數,在增加很小的硬件代價的基礎上,大幅度降低了指令Cache的動態功耗。

2滑動窗口的原理分析

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

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

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

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

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

第四類是發生跳轉指令,其跳轉地址不在以上三類的記錄信息內,對于此類指令流沒有規律可循,因此不做處理。

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

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

3基于流水化和滑動窗口結構的低功耗指令Cache設計

3.1滑動窗口的低功耗設計

滑動窗口的狀態控制有四種狀態,如圖3所示。

Figure 3 Schematic diagram of the sliding window 圖3 滑動窗口狀態示意圖

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

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

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

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

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

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

3.2分段流水化的低功耗設計

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

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

Figure 5 Scheme of instruction cache with pipeline 圖5 流水化操作電路結構圖

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

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

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

4實驗及結果分析

4.1訪問量分析

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

Table 1 Number of access to the tag SRAM before

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

對選取的Power Stone測試向量進行了指令Cache數據區域訪問的統計,統計結果如表2所示。

Table 2 Number of access to the data SRAM before

通過以上統計結果可以看出,采用基于分段訪問的流水結構的Cache訪問,極大地減少了對指令Cache數據區域的訪問次數,data SRAM的訪問次數下降為優化前的27%。

4.2功耗分析

指令Cache的tag SRAM和data SRAM采用TSMC 90 nm工藝的Memory Compiler生產,指令Cache控制器同樣采用TSMC 90 nm工藝在Synopsys DC工具綜合生產。基于時鐘周期的仿真采用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 采用滑動記錄窗口技術前后 指令Cache各路tag功耗對比

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

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

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

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

5結束語

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

參考文獻:

[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]孟建熠,嚴曉浪,葛海通,等. 基于指令回收的低功耗循環分支折合技術[J]. 浙江大學學報(工學版),2010,44(4):632-638.

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

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

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

主站蜘蛛池模板: 在线国产资源| 毛片基地视频| 97综合久久| 九色91在线视频| 国内精品自在自线视频香蕉| 国产婬乱a一级毛片多女| 亚洲成网777777国产精品| 色偷偷av男人的天堂不卡| 国内视频精品| 亚洲欧美日韩动漫| 免费看美女毛片| 成人年鲁鲁在线观看视频| 波多野结衣无码视频在线观看| 99精品热视频这里只有精品7| 国禁国产you女视频网站| 无码人中文字幕| 国产尤物在线播放| 极品av一区二区| 国产成人综合日韩精品无码首页| 毛片大全免费观看| 亚洲高清国产拍精品26u| 亚洲日本一本dvd高清| 成人免费视频一区二区三区| 最新亚洲av女人的天堂| 天天激情综合| 亚洲狼网站狼狼鲁亚洲下载| 亚洲成人黄色网址| 无码免费试看| 亚洲国产中文在线二区三区免| 亚洲九九视频| 老色鬼欧美精品| 黄色网页在线播放| 中文无码精品A∨在线观看不卡 | 一级毛片基地| 无码AV高清毛片中国一级毛片| 国产精品视频导航| 精品三级网站| 国产欧美另类| 欧洲在线免费视频| 亚洲床戏一区| 伊人色综合久久天天| 国产一区二区人大臿蕉香蕉| www.国产福利| 蝴蝶伊人久久中文娱乐网| 99九九成人免费视频精品| av手机版在线播放| a在线亚洲男人的天堂试看| 污网站免费在线观看| 亚洲国产精品美女| 在线观看无码a∨| av在线5g无码天天| 朝桐光一区二区| 2020久久国产综合精品swag| 精品伊人久久大香线蕉网站| 国产香蕉97碰碰视频VA碰碰看| 国产另类乱子伦精品免费女| 亚洲综合香蕉| 日日拍夜夜嗷嗷叫国产| 草草影院国产第一页| 国产97视频在线| 国产人妖视频一区在线观看| 免费高清毛片| 亚洲永久视频| 久99久热只有精品国产15| 97视频在线精品国自产拍| 高h视频在线| 免费在线不卡视频| 成年人国产网站| 91青青草视频在线观看的| 国产最新无码专区在线| 中文字幕人成乱码熟女免费| 成人午夜亚洲影视在线观看| 无码精油按摩潮喷在线播放| 丰满的少妇人妻无码区| 欧美亚洲国产精品第一页| 毛片久久网站小视频| 国产丝袜第一页| 欧美日本激情| 丁香五月婷婷激情基地| 99视频在线观看免费| 亚洲婷婷在线视频| 国产在线视频导航|