摘要:研究了深亞微米和3D條件下的cache訪問延遲的設(shè)計(jì)和模擬技術(shù).對不同容量、不同關(guān)聯(lián)度、不同技術(shù)的cache進(jìn)行了模擬.實(shí)驗(yàn)結(jié)果顯示,深亞微米條件下,互聯(lián)網(wǎng)絡(luò)成為影響cache訪問延遲的重要因素,40 nm工藝下它可占cache總訪問延遲的61.1%;tag比較器的延遲對cache訪問延遲的影響可達(dá)9.5%.但后者并未得到已有模型的重視.鑒于此,對已有的cache訪問延遲模型進(jìn)行了改進(jìn).基于3D條件下多核處理器最后一級(jí)大容量cache(L3C)的容量不斷增長的趨勢,eDRAM在功耗和面積上的優(yōu)勢使其更具吸引力.模擬結(jié)果顯示,在容量為1 MB, 4 MB及大于16 MB的L3C設(shè)計(jì)下,相同容量的eDRAM cache延遲比SRAM cache小,差值為8.1%(1 MB)至53.5%(512 MB).實(shí)驗(yàn)結(jié)果顯示,未來3D多核處理器設(shè)計(jì)中eDRAM是設(shè)計(jì)L3C的更佳選擇.
關(guān)鍵詞:cache;深亞微米;3D;訪問延遲;eDRAM
中圖分類號(hào):TP333.1 文獻(xiàn)標(biāo)識(shí)碼:A
Key Techniques of Design and Simulation of Cache Access
Time in Deep Sub-micron and 3-Dimension Era
FU Xiang, TANG Yu-xing, XU Wei-xia
(College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China)
Abstract: This paper studied the key techniques of designing and simulating cache access time in deep sub-micron and 3-dimension era, and simulated the cache with different capacity, associativity and storage technology. The results show that, in 40nm technology, the interconnect network is a main source of the access time (up to 61.1%); the tag comparator can affect the cache access time for about 9.5%. This paper improved the existing cache access time model in which tag comparator gets insufficient attention. Based on the growing trend of the large last level cache (L3C) capacity in multi-core processors, the advantages of eDRAM on power and area make it more attractive. The simulation shows that, for L3C with large capacities (1MB, 4MB and larger than 16MB), the access time of the eDRAM cache is less than the SRAM cache for 8.1% (1MB) to 53.5% (512MB), supporting that eDRAM is a better choice for LLC in future 3D multi-core processors.
Key words: cache; deep-submicron; 3-dimension; access time; eDRAM
自20世紀(jì)70年代發(fā)明DRAM存儲(chǔ)器以來,DRAM存儲(chǔ)器的發(fā)展一直受價(jià)格驅(qū)動(dòng),而邏輯器件的發(fā)展一直受速度驅(qū)動(dòng),二者之間的速度鴻溝日益變大[1].計(jì)算機(jī)體系結(jié)構(gòu)工程師通過在處理器核與主存儲(chǔ)間增加多級(jí)容量較小但速度較快的高速緩沖存儲(chǔ)器(cache)來緩解處理器核訪存的速度問題.
半導(dǎo)體制造工藝水平不斷進(jìn)步,已進(jìn)入深亞微米時(shí)代,如今22 nm工藝已得到廣泛應(yīng)用,16 nm工藝呼之欲出.在這種條件下,器件尺寸進(jìn)一步縮小,器件延遲進(jìn)一步下降,但靜態(tài)漏流變得更大,片上互連的延遲和功耗對整個(gè)cache的影響越來越大[2].cache訪問延遲表現(xiàn)出與以往不同的特點(diǎn).
3D技術(shù)的出現(xiàn)為cache的設(shè)計(jì)帶來了新的機(jī)遇和挑戰(zhàn).單核處理器主頻的提升、并行度的開發(fā)已受到很大的制約,多核處理器已替代單核處理器成為主流.多核處理器更高的存儲(chǔ)要求使得片上SRAM cache容量更大、層次更多,這使得cache的訪問延遲問題和功耗問題更加突出.三維集成電路(3D IC)正是在這種需求下應(yīng)運(yùn)而生的.Die間3D堆疊可使片上全局互連變短,增加可利用帶寬,降低互聯(lián)功耗、提高集成度[2].Die間堆疊也使得在更大面積上實(shí)現(xiàn)更多層次、更大容量的cache成為可能.最后一級(jí)大容量cache(Large Last Level Cache, L3C)的訪問延遲設(shè)計(jì)和模擬成為一個(gè)突出問題.
本項(xiàng)目首先研究了深亞微米條件下cache訪問延遲的特點(diǎn).項(xiàng)目組針對深亞微米條件下不同容量、不同關(guān)聯(lián)度的cache訪問延遲,利用CACTI 6.5進(jìn)行了探索.實(shí)驗(yàn)結(jié)果顯示,互聯(lián)網(wǎng)絡(luò)的延遲是影響cache訪問延遲的重要因素,64 KB直接映射cache中,互聯(lián)網(wǎng)絡(luò)延遲占訪問總延遲的61.1%;64 KB 2路組關(guān)聯(lián)cache中,互聯(lián)網(wǎng)絡(luò)延遲占訪問總延遲的44.8%.另一方面,實(shí)驗(yàn)發(fā)現(xiàn),tag比較器對cache訪問總延遲的影響可達(dá)9.5%,但它沒有得到已有cache延遲模型的重視.項(xiàng)目組修改了CACTI 6.5的cache訪問延遲模型,將tag比較器的延遲納入考慮,提高了建模精確度.我們還給出了采用新的延遲模型,深亞微米工藝下cache訪問延遲隨容量、關(guān)聯(lián)度的變化趨勢.
針對深亞微米和3D條件下的L3C設(shè)計(jì)問題,項(xiàng)目組比較了大容量條件下的SRAM cache與eDRAM cache,發(fā)現(xiàn)采用eDRAM 技術(shù)可有效地減小cache內(nèi)互聯(lián)延遲,從而減小cache訪問延遲.結(jié)合eDRAM相比于SRAM在功耗、面積等方面的優(yōu)勢,項(xiàng)目組認(rèn)為,eDRAM是深亞微米時(shí)代,未來3D多核處理器設(shè)計(jì)中L3C的更佳選擇.
本文內(nèi)容組織如下.第1節(jié)介紹cache的訪問延遲模型及通用的模擬方法;第2節(jié)研究深亞微米條件下cache的訪問延遲設(shè)計(jì)目標(biāo),以64 KB直接映射與2路組關(guān)聯(lián)cache為例深入分析了cache訪問延遲的特點(diǎn),并給出改進(jìn)后的深亞微米cache設(shè)計(jì)模型;第3節(jié)通過分析比較SRAM與eDRAM技術(shù),指出eDRAM cache是3D背景下L3C的一種可行方案;第4節(jié)為總結(jié).
1 Cache的延遲模型及其模擬方法
在1.1節(jié)介紹cache的結(jié)構(gòu)模型,可知cache由數(shù)據(jù)陣列和tag陣列組成以及陣列的內(nèi)部結(jié)構(gòu).1.2節(jié)詳細(xì)討論陣列的延遲模型.在1.3節(jié)中我們得到cache的訪問延遲模型.1.4節(jié)介紹目前通用的cache設(shè)計(jì)模擬方法.
1.1 Cache的結(jié)構(gòu)模型
一般具體實(shí)現(xiàn)cache時(shí),數(shù)據(jù)和tag分別存放在數(shù)據(jù)陣列和tag陣列中.數(shù)據(jù)陣列和tag陣列的結(jié)構(gòu)類似.下面以陣列統(tǒng)稱數(shù)據(jù)陣列和tag陣列,僅在必要時(shí)進(jìn)行區(qū)分.
陣列(array)由多個(gè)可被同時(shí)訪問的體(bank)組成.體通過H-樹網(wǎng)絡(luò)[圖1(a)]結(jié)合在一起構(gòu)成陣列.體內(nèi)包含多個(gè)相同的簇(mat),對體進(jìn)行訪問時(shí),多個(gè)簇被同時(shí)激活,共同為這次訪問提供一個(gè)完整的字.簇通過H-樹網(wǎng)絡(luò)[圖1(b)]結(jié)合在一起構(gòu)成體.為便于流水,H-樹網(wǎng)絡(luò)在實(shí)現(xiàn)時(shí)分為請求網(wǎng)絡(luò)(request network)和響應(yīng)網(wǎng)絡(luò)(reply network).請求網(wǎng)絡(luò)將地址和輸入數(shù)據(jù)從數(shù)據(jù)陣列輸入端口傳輸?shù)礁鱾€(gè)簇,響應(yīng)網(wǎng)絡(luò)將待輸出數(shù)據(jù)從各個(gè)簇傳輸?shù)綌?shù)據(jù)陣列輸出端口.
每個(gè)簇是一個(gè)單元結(jié)構(gòu),它由存儲(chǔ)單元陣列、位線外圍電路及譯碼邏輯3部分組成.數(shù)據(jù)陣列的簇的位線外圍電路包括預(yù)充電和等壓電路、位線選擇器、敏感放大器、敏感放大選擇器、子陣列輸出驅(qū)動(dòng)等.tag陣列的簇的位線外圍電路還包括tag比較器.譯碼邏輯包括行譯碼邏輯、列譯碼邏輯和敏感放大譯碼邏輯3部分,實(shí)現(xiàn)時(shí),為控制扇入扇出數(shù),每個(gè)譯碼邏輯都分為預(yù)譯碼邏輯和譯碼邏輯兩段.簇的組織結(jié)構(gòu)如圖2所示.
其中Trow-decoder-path是行譯碼路徑的延遲,它包括行預(yù)譯碼器對地址譯碼的延遲Trow-predec, 譯碼器對預(yù)譯碼信號(hào)譯碼的延遲Trow-dec-driver, 存儲(chǔ)單元對位線放電建立電壓差的延遲Tbitline和敏感放大器對經(jīng)過列選擇器選擇后的電壓差快速放大的延遲Tsenseamp.tag陣列中,行譯碼路徑延遲還包括tag比較器將存儲(chǔ)數(shù)據(jù)與輸入地址的tag部分進(jìn)行比較產(chǎn)生命中信號(hào)輸出和路選擇信號(hào)的延遲Ttag-comparator.所以對數(shù)據(jù)陣列而言,行譯碼路徑延遲為:
Tdata-arr-row-decoder-path=Trow-predec+Trow-dec-driver+
1.3 Cache延遲模型
當(dāng)處理器核心向cache發(fā)出一次數(shù)據(jù)訪問請求時(shí),地址被同時(shí)發(fā)往數(shù)據(jù)陣列和tag陣列.地址在tag陣列中經(jīng)請求網(wǎng)絡(luò)傳至譯碼器譯碼后,激活對應(yīng)的字線,保存在陣列中的tag信息經(jīng)過位線選擇、敏感放大、敏感放大選擇之后與輸入地址的tag部分進(jìn)行比較,產(chǎn)生路選擇信號(hào).路選擇信號(hào)經(jīng)響應(yīng)網(wǎng)絡(luò)輸出tag陣列,再經(jīng)數(shù)據(jù)陣列的請求網(wǎng)絡(luò)傳給可能保存了待訪問數(shù)據(jù)的簇.另一方面,地址在數(shù)據(jù)陣列中經(jīng)請求網(wǎng)絡(luò)傳到譯碼器譯碼后,激活對應(yīng)的字線,保存在陣列中的數(shù)據(jù)經(jīng)位線選擇、敏感放大到達(dá)敏感放大選擇器.路選擇信號(hào)與敏感放大選擇信號(hào)按位與,得到敏感放大選擇器的控制信號(hào),選擇對應(yīng)的數(shù)據(jù)輸出,輸出數(shù)據(jù)最后經(jīng)數(shù)據(jù)陣列的響應(yīng)網(wǎng)絡(luò)返回至數(shù)據(jù)陣列邊緣.
所以,cache的訪問延遲為:
Tcache-access=max (Ttag-arr-access+Tdata-arr-request-network+
Tdata-arr-senseamp-mux-decode,Tdata-arr-request-network+
Tdata-arr-mat)+Tdata-arr-reply-network.
1.4 目前流行的通用cache設(shè)計(jì)模擬方法
目前已有多種CAD工具可用于建模cache的訪問延遲.CACTI是其中一款性能優(yōu)良的存儲(chǔ)器模擬器[2].它最早由美國西部研究實(shí)驗(yàn)室(Western Research Laboratory, WRL)于1993年發(fā)布, CACTI至今已發(fā)布6個(gè)主要版本,每個(gè)版本都隨著技術(shù)、工藝的進(jìn)步而不斷改進(jìn),最新版本為CACTI 6.5.CACTI 6.5支持90~32 nm工藝,可對片上SRAM, DRAM cache及DRAM存儲(chǔ)器的訪問延遲、動(dòng)態(tài)功耗、靜態(tài)功耗、周期和面積等建模.其精確度受到研究人員的高度贊譽(yù),在學(xué)術(shù)研究領(lǐng)域得到了廣泛應(yīng)用.
CACTI 6.5的設(shè)計(jì)空間探索方法是一種經(jīng)典的方法.它根據(jù)給定的cache參數(shù),遍歷cache結(jié)構(gòu)參數(shù)可能的取值,并計(jì)算每組參數(shù)下cache的訪問延遲Taccess, 動(dòng)態(tài)功耗Pdyn, 靜態(tài)功耗Pleak, 訪問周期Tcycle和面積A.從而可知對于給定cache參數(shù)的cache,它可能的最小訪問延遲Tmin_access, 最小動(dòng)態(tài)功耗Pmin_dyn, 最小靜態(tài)功耗Pmin_leak, 最小周期Tmin_cycle和最小面積Amin.然后,根據(jù)用戶指定的設(shè)計(jì)目標(biāo)({WT_acc: WP_dyn:W P_leak: W T_cycle: WA})計(jì)算每組結(jié)構(gòu)參數(shù)下的開銷cost:
2 深亞微米cache設(shè)計(jì)分析
從第2節(jié)可知,不同的cache設(shè)計(jì)目標(biāo)會(huì)選擇不同的最優(yōu)cache結(jié)構(gòu),從而產(chǎn)生不同的訪問延遲.所以選擇合理、恰當(dāng)?shù)腸ache設(shè)計(jì)目標(biāo)對于深亞微米條件下cache的訪問延遲分析和cache設(shè)計(jì)指導(dǎo)具有重要意義.
項(xiàng)目組利用CACTI 6.5對采用45 nm工藝制造的POWER7處理器的L1和L2 cache進(jìn)行了小容量cache的設(shè)計(jì)目標(biāo)的擬合,對POWER7 L3 cache進(jìn)行了大容量cache設(shè)計(jì)目標(biāo)的擬合.
POWER7是IBM公司于2010年發(fā)布的一款面向服務(wù)器應(yīng)用的高性能多核多線程處理器.它采用45 nm工藝制造,主頻可在2.4 GHz到4.25 GHz間動(dòng)態(tài)調(diào)整.它具有8個(gè)核心,每核最大支持4路同時(shí)多線程,每核具有32 KB L1 I-cache + 32 KB L1 D-cache和256 KB L2 cache.L3 cache采用eDRAM技術(shù)制造,每個(gè)核有一個(gè)局部L3 4 MB cache,8個(gè)局部cache組成總共32 MB的共享L3 cache.
2.1 深亞微米cache設(shè)計(jì)目標(biāo)
2.1.1 小容量cache
小容量cache的設(shè)計(jì)目標(biāo)的擬合采用POWER7的L1 D-cache和L2 cache進(jìn)行.L1 D-cache容量為32 KB,塊大小為128 B,8路組關(guān)聯(lián),最多支持同時(shí)兩次讀或一次寫,訪問延遲為0.5 ns.L2 cache為數(shù)據(jù)、指令統(tǒng)一cache,容量256 KB,8路組關(guān)聯(lián),塊大小128 B,2個(gè)讀端口,1個(gè)寫端口,訪問延遲為2.0 ns.通過遍歷從{10:0:0:0:0}到{30:30:30: 30:30}的設(shè)計(jì)目標(biāo),項(xiàng)目組發(fā)現(xiàn),采用權(quán)重{30:0:0:10:0}對Power7的L1 cache和L2 cache進(jìn)行模擬,得到結(jié)果L1 cache的訪問延遲為0.486 ns,與實(shí)際延遲的誤差為2.7%;L2 cache的訪問延遲為2.15 ns,與實(shí)際延遲的誤差為7.5%.因?yàn)椴捎脵?quán)重{30:0:0:10:0}對POWER7 L1和L2 cache進(jìn)行擬合,誤差不超過8%,所以可認(rèn)為,設(shè)計(jì)目標(biāo){30:0:0:10:0}可有效地表示POWER7處理器中L1 cache和L2 cache的設(shè)計(jì)目標(biāo).
設(shè)計(jì)目標(biāo){30:0:0:10:0}中非零項(xiàng)30對應(yīng)訪問延遲的權(quán)重,它表明在實(shí)際處理器的L1和L2 cache的設(shè)計(jì)中,訪問延遲是最重要的因素.非零項(xiàng)10對應(yīng)cache流水線化后的周期,它表明在實(shí)際處理器的L1和L2 cache設(shè)計(jì)中,cache操作周期是另一個(gè)重要因素,因?yàn)樗鼤?huì)影響到cache同時(shí)處理的最大訪問請求數(shù)目,而能夠同時(shí)處理的最大訪問請求數(shù)對多線程處理器隱藏延時(shí)具有重要意義.
2.1.2 大容量cache
大容量cache的設(shè)計(jì)目標(biāo)通過對POWER7處理器的L3 eDRAM cache的擬合得到.POWER7 L3 eDRAM cache的容量為32 MB,分為8個(gè)體,采用45 nm工藝實(shí)現(xiàn),其訪問延遲約為6 ns.POWRE7中,L3 cache面積占芯片面積不足15%,而POWER7芯片的面積為567 mm2[14],可推測L3 cache的面積為85 mm2左右.通過遍歷從{10:0:0:0:0}到{30:30:30: 30:30}的權(quán)重,項(xiàng)目組發(fā)現(xiàn),采用設(shè)計(jì)目標(biāo){10:0:0:0:10}對Power7的L3 cache進(jìn)行模擬,得到cache面積約為80 mm2,誤差約為6.3%,得到cache訪問延遲約為5.45 ns,誤差約為9.2%.
設(shè)計(jì){10:0:0:0:10}目標(biāo)表明,當(dāng)采用eDRAM實(shí)現(xiàn)L3C時(shí),訪問延遲仍然是一個(gè)重要的因素,與此同時(shí),面積也是同等重要的因素.
2.2 cache訪問延遲分析
對cache的訪問延遲分析通過對多個(gè)小容量的cache的模擬進(jìn)行.項(xiàng)目組利用CACTI 6.5,采用權(quán)重為{30∶0∶0∶10∶0}的設(shè)計(jì)目標(biāo),對40 nm工藝下16 KB, 32 KB, 64 KB, 128 KB和256 KB五種容量的直接映射、2路組關(guān)聯(lián)、4路組關(guān)聯(lián)、8路組關(guān)聯(lián)和16路組關(guān)聯(lián)的單體1讀寫端口cache的訪問延遲進(jìn)行模擬.模擬結(jié)果如圖3所示.從圖中可知,一般結(jié)論“cache容量越大,速度越慢;關(guān)聯(lián)度越高,速度越慢”仍保持成立.值得注意的是:32 KB直接映射cache比2路組關(guān)聯(lián)cache的訪問延遲要大,64 KB直接映射cache比2路組關(guān)聯(lián)和4路組關(guān)聯(lián)cache的訪問延遲要大.這個(gè)現(xiàn)象引起了我們的興趣,我們對此展開了研究,在此基礎(chǔ)上分析cache的訪問延遲特性.下文如不再說明,cache的容量默認(rèn)為64 KB.
CACTI 6.5計(jì)算得到直接映射cache和2路組關(guān)聯(lián)cache的部分參數(shù)如表1所示.直接映射cache的訪問延遲為0.485 ns,2路組關(guān)聯(lián)cache的訪問延遲為0.463 ns.前者比后者大約0.022 ns,即4.63%.直接映射cache的訪問周期(0.283 ns)比2路組關(guān)聯(lián)cache的訪問周期(0.345 ns)小約18.0%.
直接映射cache和2路組關(guān)聯(lián)cache各部分延遲如表2所示.結(jié)合公式(8),從表中可以看出,直接映射cache和2路組關(guān)聯(lián)cache的關(guān)鍵路徑是相同的:tag陣列–>數(shù)據(jù)陣列請求網(wǎng)絡(luò)–>數(shù)據(jù)陣列敏感放大譯碼路徑–>數(shù)據(jù)陣列響應(yīng)網(wǎng)絡(luò).關(guān)鍵路徑中,直接映射cache的tag陣列、數(shù)據(jù)陣列的請求網(wǎng)絡(luò)和響應(yīng)網(wǎng)絡(luò)的延遲要大于2路組關(guān)聯(lián)cache,直接映射cache的敏感放大譯碼路徑的延遲要小于2路組關(guān)聯(lián)cache.下面分析數(shù)據(jù)陣列的網(wǎng)絡(luò)延遲和tag陣列的延遲.
2.2.1 數(shù)據(jù)陣列的網(wǎng)絡(luò)延遲
根據(jù)表2可知直接映射cache的數(shù)據(jù)陣列的請求網(wǎng)絡(luò)的延遲約為2路組關(guān)聯(lián)cache的2倍,直接映射cache的數(shù)據(jù)陣列的響應(yīng)網(wǎng)絡(luò)的延遲比2路組關(guān)聯(lián)cache大約0.5倍.數(shù)據(jù)陣列的請求網(wǎng)絡(luò)和響應(yīng)網(wǎng)絡(luò)的延遲占整個(gè)cache訪問延遲的比例,直接映射cache為48.96%,2路組關(guān)聯(lián)cache為32.47%.對數(shù)據(jù)陣列的網(wǎng)絡(luò)延遲進(jìn)行分解如圖4所示.由于陣列只有1個(gè)體,不存在陣列與體之間的網(wǎng)絡(luò).因此請求網(wǎng)絡(luò)中的Tarr-edge-to-bank-edge和響應(yīng)網(wǎng)絡(luò)中的Tbank-edge-to-arr-edge均為0.請求網(wǎng)絡(luò)中直接映射cache的Tbank-edge-to-mat是2路組關(guān)聯(lián)cache的2倍.這是由于cache的物理布局引起的.
從表1可知,2路組關(guān)聯(lián)cache的寬和高分別比直接映射cache的寬和高小.根據(jù)直接映射cache和2路組關(guān)聯(lián)cache的最優(yōu)結(jié)構(gòu)知二者的數(shù)據(jù)陣列的物理布局如圖5所示.直接映射cache的數(shù)據(jù)陣列中共有4個(gè)子體,每個(gè)子體中有1個(gè)簇,其組織結(jié)構(gòu)如圖5(a)所示.地址從體邊緣被路由至簇時(shí)需要經(jīng)過V0和V1兩個(gè)中繼器的轉(zhuǎn)發(fā).2路組關(guān)聯(lián)cache的數(shù)據(jù)陣列中共有2個(gè)子體,每個(gè)子體中包含1個(gè)簇,其組織結(jié)構(gòu)如圖5(b)所示.地址從體邊緣被路由簇時(shí)需要經(jīng)過V1節(jié)點(diǎn)對應(yīng)的中繼器的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)次數(shù)只是直接映射cache的一半.因此直接映射cache的請求網(wǎng)絡(luò)延遲約為2路組關(guān)聯(lián)cache的請求網(wǎng)絡(luò)延遲的2倍.
2.2.2 Tag陣列的延遲
直接映射cache的tag陣列延遲僅比2路組關(guān)聯(lián)cache的tag陣列延遲大約0.71%.將tag陣列中各部分延遲分量列表如表3所示.從表中可知如下信息.
直接映射cache和2路組關(guān)聯(lián)cache的tag陣列的關(guān)鍵路徑均為:請求網(wǎng)絡(luò)–>行譯碼路徑–>響應(yīng)網(wǎng)絡(luò).
兩個(gè)cache的tag陣列請求網(wǎng)絡(luò)延遲都為0,這是因?yàn)閠ag陣列只包含1個(gè)體,每個(gè)體內(nèi)僅有1個(gè)簇,事實(shí)上不需要H-樹網(wǎng)絡(luò).直接映射cache的響應(yīng)網(wǎng)絡(luò)延遲比2路組關(guān)聯(lián)cache僅大了約2.9%,這是由于2路組關(guān)聯(lián)cache的tag陣列小于直接映射cache的tag陣列,從而導(dǎo)致2路組關(guān)聯(lián)cache的tag陣列中簇的輸出導(dǎo)線更短.
兩個(gè)cache的tag陣列中,簇內(nèi)延遲等于行譯碼路徑的延遲.根據(jù)公式(5b)可知,tag陣列的行譯碼路徑延遲包含字線預(yù)譯碼延遲、字線譯碼延遲、位線延遲、敏感放大器延遲和tag比較器延遲等.行譯碼路徑各分量延遲如表4所示.根據(jù)表4計(jì)算可得,二者的行譯碼路徑延遲應(yīng)該是0.222 532 ns,而非程序運(yùn)行結(jié)果給出的0.178 271 ns.二者差值正好是tag比較器的延遲0.044 261 ns.通過進(jìn)一步分析程序,項(xiàng)目組發(fā)現(xiàn)CACTI 6.5并沒有將tag比較器的延遲納入行譯碼路徑延遲.
2.2.3 H-樹網(wǎng)絡(luò)延遲
從前文分析可知,對于直接映射cache和2路組關(guān)聯(lián)cache,其數(shù)據(jù)陣列和tag陣列的請求網(wǎng)絡(luò)和響應(yīng)網(wǎng)絡(luò)都在cache訪問延遲的關(guān)鍵路徑上.根據(jù)公式(1)可得cache中互聯(lián)網(wǎng)絡(luò)的總延遲為:
TH-tree-network=Ttag-arr-request-network+Ttag-arr-reply-network+
Tdata-arr-reply-network+Tdata-arr-request-network.
所以直接映射cache中,互聯(lián)網(wǎng)絡(luò)總延遲TDM-H-tree-network為0.296 ns,它占直接映射cache訪問總延遲的61.1%.2路組關(guān)聯(lián)cache中,互聯(lián)網(wǎng)絡(luò)總延遲T2-way-H-tree-network為0.208 ns,它占2路組關(guān)聯(lián)cache的訪問總延遲的44.8%.直接映射cache的網(wǎng)絡(luò)延遲比2路組關(guān)聯(lián)cache的網(wǎng)絡(luò)延遲大了約0.09 ns,在cache訪問總延遲中所占的比重也大了約16.3%.所以,互聯(lián)網(wǎng)絡(luò)的延遲是cache訪問延遲中一個(gè)重要分量,可以對cache總訪問延遲的大小產(chǎn)生很大的影響.
2.3 改進(jìn)后的深亞微米cache設(shè)計(jì)模擬
通過前文分析可知,對于40 nm工藝,tag比較器的延遲約為0.044 ns,而2路組關(guān)聯(lián)cache的訪問延遲約為0.463 ns,tag比較器對訪問延遲的影響可達(dá)約9.5%.因此,在深亞微米工藝下,tag比較器對cache訪問延遲的影響是不可忽略的一個(gè)因素.
本文對CACTI 6.5中tag陣列的訪問延遲的計(jì)算函數(shù)進(jìn)行了修正,在tag陣列的訪問延遲中加上了tag比較器的延遲.之后,采用設(shè)計(jì)目標(biāo){30:0:0:10:0}重新計(jì)算不同容量、不同關(guān)聯(lián)度cache的訪問延遲的變化特性,結(jié)果如圖6所示.
從圖6中可以看出,改進(jìn)cache的訪問延遲模型之后,得到的結(jié)果與結(jié)論“cache容量越大,速度越慢;關(guān)聯(lián)度越高,速度越慢”是一致的. 同時(shí),64 KB cache直接映射的訪問延遲比2路組關(guān)聯(lián)訪問延遲小,但32 KB cache的直接映射仍比2路組關(guān)聯(lián)速度要慢,通過分析具體數(shù)據(jù)得知,這是由于32 KB直接映射cache的響應(yīng)網(wǎng)絡(luò)的延遲比2路組關(guān)聯(lián)cache大引起的.
3 深亞微米和3D背景下的L3C設(shè)計(jì)
多核處理器的發(fā)展對cache性能提出了更高的要求.3D技術(shù)可將采用DRAM工藝或其他工藝制造的存儲(chǔ)器Die堆疊在邏輯Die上,使得利用單獨(dú)一個(gè)或多個(gè)Die來制造cache成為可能,如圖7 [15]所示.3D堆疊的Die與Die之間通過硅通孔(Through Silicon Via, TSV)技術(shù)相連,一方面使得核與低層次cache之間的有效互連線變短,從而延遲、功耗得到降低;另一方面可有效地增加cache與核之間的通信帶寬,從而提高cache的吞吐率.因此,在3D背景下,可將最后一級(jí)cache或兩級(jí)cache采用SRAM技術(shù)或eDRAM技術(shù)在單獨(dú)的一個(gè)Die上實(shí)現(xiàn),使容量達(dá)百M(fèi)B級(jí).從第3節(jié)的分析可知,深亞微米時(shí)代,網(wǎng)絡(luò)延遲是大容量cache延遲中至關(guān)重要的分量,若能降低L3C中的網(wǎng)絡(luò)延遲,則可提高L3C的性能.eDRAM技術(shù)的使用可達(dá)成這個(gè)目的.
嵌入式DRAM(embedded DRAM, eDRAM)是采用邏輯工藝兼容技術(shù)將DRAM嵌入到芯片上的技術(shù).eDRAM擁有比SRAM更高的密度,使得它可以在同樣的面積下實(shí)現(xiàn)更大的容量.由于其物理尺寸更小,因此它具有更低的cache內(nèi)互連網(wǎng)絡(luò)延遲[1].通過實(shí)驗(yàn),項(xiàng)目組發(fā)現(xiàn),采用eDRAM技術(shù)實(shí)現(xiàn)L3C可有效地減小cache內(nèi)互聯(lián)網(wǎng)絡(luò)的延遲,在性能、面積、功耗方面比SRAM技術(shù)更具有優(yōu)勢.
本文利用根據(jù)擬合POWER7 L3 cache得到的設(shè)計(jì)目標(biāo)及相關(guān)參數(shù)對不同容量的eDRAM cache與SRAM cache進(jìn)行了比較.
3.1 訪問延遲比較
圖8比較了不同容量下eDRAM cache與SRAM cache的訪問延遲及數(shù)據(jù)陣列內(nèi)部互聯(lián)網(wǎng)絡(luò)的延遲.可以看出,當(dāng)cache容量比較小時(shí),SRAM cache的延遲比eDRAM cache的延遲小(128 KB, 256 KB, 512 KB).128 KB時(shí),eDRAM cache的延遲(1.590 ns)約為SRAM cache的延遲(1.097 ns)的1.45倍.從圖9中可以看出,雖然SRAM cache的H-樹網(wǎng)絡(luò)延遲要大于eDRAM,但SRAM的字線、位線延遲要明顯小于eDRAM.由于eDRAM cache與SRAM cache的實(shí)現(xiàn)工藝不同,使得eDRAM字線驅(qū)動(dòng)器的導(dǎo)通電阻要比SRAM大,使得字線上的時(shí)間常數(shù)更大,其結(jié)果是eDRAM cache的字線延遲大于SRAM cache的字線延遲.另一方面,eDRAM單元采用1T1C結(jié)構(gòu)實(shí)現(xiàn),它的響應(yīng)速度比采用6T的SRAM單元慢,所以eDRAM的位線延遲要大于SRAM的位線延遲.由于eDRAM的字線和位線延遲約為SRAM的兩倍,所以128 KB的eDRAM cache訪問延遲要比128 KB的SRAM cache訪問延遲大45%.
隨著cache容量增加,SRAM cache和eDRAM cache的延遲都在增加,但SRAM cache的延遲增加幅度整體上大于eDRAM cache延遲增加的幅度.從16 MB開始,SRAM cache的延遲開始大于eDRAM cache的延遲.到1 GB時(shí),SRAM cache的延遲(33.2 ns)約為eDRAM cache的延遲(16.8 ns)的2倍.由于SRAM單元的面積比eDRAM單元的面積大,所以隨著容量增加, SRAM cache的物理尺寸比eDRAM增加更迅速,圖10給出兩種cache在不同容量下的面積比較.圖8的折線給出不同容量下eDRAM與SRAM cache的數(shù)據(jù)陣列內(nèi)部互聯(lián)延遲的比較.更大的物理尺寸使得SRAM cache內(nèi)互聯(lián)導(dǎo)線更長,互聯(lián)延遲比eDRAM cache更大.所以,雖然eDRAM的字線位線延遲要大于SRAM,但當(dāng)容量超過16 MB時(shí),eDRAM cache的總訪問延遲要小于SRAM cache.
值得注意的是,cache容量在1 MB到8 MB之間時(shí),eDRAM cache延遲與SRAM cache的延遲比較呈現(xiàn)波動(dòng)態(tài)勢.這是由于容量增加時(shí),eDRAM cache和SRAM cache的互聯(lián)網(wǎng)絡(luò)延遲的變化與字線、位線延遲的變化競爭而導(dǎo)致的結(jié)果.
3.2 面積比較
圖10給出了不同容量下eDRAM與SRAM面積比較的結(jié)果.SRAM cache面積始終比eDRAM cache的面積大.128 KB SRAM cache的尺寸為1.93 mm× 2.06 mm,面積3.98 mm2,它約為同容量eDRAM cache面積(0.93 mm×1.26 mm=1.17 mm2)的3.4倍.隨著容量的增加,eDRAM的面積增加率幾何平均為1.73,而SRAM的面積增加率幾何平均為1.92.這最終使得在1 GB條件下,SRAM cache的面積(18650 mm2)約為eDRAM cache的面積(1 459 mm2)的12.8倍.
從尺寸上來看,1 GB SRAM cache達(dá)到了179.794 mm×103.734 mm,即使工藝進(jìn)步三代到16 nm,并且對應(yīng)的面積會(huì)縮減為原來的1/8,最終達(dá)到2 331 mm2,其尺寸則約為48 mm×48 mm,這種尺寸的Die使其在商業(yè)生產(chǎn)中不具可行性.相比之下,1 GB eDRAM的尺寸要小很多,約為28.1 mm×51.9 mm,若工藝進(jìn)步兩代,達(dá)到22 nm,則其尺寸可縮小到500 mm2以下,僅從面積約束角度而言,這樣的Die是可行的.
SRAM面積比eDRAM面積大的主要原因是SRAM單元采用6管結(jié)構(gòu)實(shí)現(xiàn),而eDRAM采用1管1電容結(jié)構(gòu)實(shí)現(xiàn).若特征尺寸為F,則SRAM單元的面積約為120~200F2,而eDRAM單元的面積約為20~50F2.這導(dǎo)致eDRAM cache與SRAM cache的面積呈現(xiàn)很大差異.
3.3 功耗比較
3.3.1 動(dòng)態(tài)功耗
不同容量下,eDRAM cache與SRAM cache的動(dòng)態(tài)功耗如圖11所示.eDRAM的動(dòng)態(tài)功耗始終比SRAM小.128 KB時(shí),SRAM的動(dòng)態(tài)功耗(0.42 nJ)約為eDRAM動(dòng)態(tài)功耗(0.22 nJ)的1.90倍.隨著cache容量增加,SRAM cache動(dòng)態(tài)功耗增加率約為1.43,eDRAM cache的動(dòng)態(tài)功耗增加率約為1.39.當(dāng)cache容量增加至1 GB時(shí), SRAM cache的動(dòng)態(tài)功耗增至45.9 nJ,是128 KB SRAM cache的動(dòng)態(tài)功耗的約110倍,是同容量的eDRAM cache的動(dòng)態(tài)功耗(16.6 nJ)的約2.76倍.
3.3.2 靜態(tài)功耗
不同容量下,eDRAM cache與SRAM cache的靜態(tài)功耗如圖12所示.eDRAM的靜態(tài)功耗始終比SRAM小.128 KB時(shí),SRAM的靜態(tài)功耗(101.6 mW)約為eDRAM靜態(tài)功耗(39.0 mW)的2.60倍.隨著cache容量增加,SRAM cache靜態(tài)功耗增加率約為1.83,而eDRAM cache的靜態(tài)功耗增加率約為1.55.當(dāng)cache容量增加至1 GB時(shí), SRAM cache的靜態(tài)功耗增至258 W,是128 KB SRAM cache的靜態(tài)功耗的約2 544倍,是同容量eDRAM cache的靜態(tài)功耗(11 W)的約21.8倍.
隨著工藝水平的進(jìn)步,邏輯器件的靜態(tài)漏流會(huì)進(jìn)一步增大.若以單片靜態(tài)功耗100 W為界,則當(dāng)cache的容量大于等于256 MB時(shí),SRAM cache就已不具可行性.僅從功耗角度來看,僅消耗11 W靜態(tài)功耗的1 GB的eDRAM仍然具有可行性.
3.4 總 結(jié)
通過使用CACTI 6.5比較大容量下的eDRAM cache與SRAM cache的訪問延遲、面積、動(dòng)態(tài)/靜態(tài)功耗,可以發(fā)現(xiàn),當(dāng)容量大于16 MB時(shí),采用eDRAM技術(shù)實(shí)現(xiàn)L3C比SRAM技術(shù)在訪問延遲、面積、靜態(tài)功耗、動(dòng)態(tài)功耗方面都更具有優(yōu)勢.eDRAM 技術(shù)可在滿足面積、功耗約束的條件下,有效地提高cache的容量和性能,是未來深亞微米和3D背景下多核處理器L3C設(shè)計(jì)的一個(gè)更好選擇.
雖然CACTI 6.5有其自身的局限性,但利用CACTI 6.5研究比較eDRAM與SRAM cache的訪問延遲特性具有一定的參考價(jià)值.在工程實(shí)踐中,可采用HSpice對器件進(jìn)行模擬,用Apach的RedHawk等EDA工具結(jié)合器件工藝庫與邏輯設(shè)計(jì)進(jìn)行更精確的模擬.
4 結(jié) 論
深亞微米工藝下,互聯(lián)網(wǎng)絡(luò)延遲是cache延遲的主要分量;3D堆疊技術(shù)的使用使得更大容量的片上cache成為可能.對于采用40 nm工藝制造的cache,互聯(lián)網(wǎng)絡(luò)延遲可占cache總訪問延遲的61.1%.tag比較器的延遲在深亞微米條件下是不可忽略的一個(gè)因素,它對cache總訪問延遲的影響可達(dá)9.5%;本文修改了CACTI 6.5,將tag比較器的延遲納入行譯碼路徑的延遲中,使它可以更準(zhǔn)確地模擬深亞微米條件下cache訪問延遲.利用新的模型,本文得到了關(guān)于不同容量不同關(guān)聯(lián)度對cache訪問延遲影響的結(jié)果.最后,本文針對深亞微米和3D堆疊背景下的L3C設(shè)計(jì)展開討論,比較了大容量eDRAM cache與SRAM cache,認(rèn)為eDRAM cache是未來3D背景下L3C的一個(gè)可行且有效的解決方案.
參考文獻(xiàn)
[1] MATICK R E, SCHUSTER S E. Logic-based eDRAM origins and rationale for use[J]. IBM Journal of Research and Development, 2005, 49(1): 145-165.
[2] WU X, LI J, ZHANG L, et al. Design exploration of hybrid caches with disparate memory technologies[J]. ACM Transactions on Architecture and Code Optimization, 2010, 7(3):15.
[3] HENNESSY J, PATTERSON D. Computer architecture: a quantitative approach[M]. 5th ed. Beijing: China Machine Press, 2011.
[4] WILTON S J E, JOUPPI N P. An enhanced access and cycle time model for on-chip caches[R]. Palo Alto, California: Western Research Laboratory, 1994.
[5] REINMAN G, JOUPPI N P. CACTI 2.0: an integrated cache timing and power model[R]. Palo Alto, California: Western Research Laboratory, 2000.
[6] SHIVAKUMAR P, JOUPPI N P. CACTI 3.0: an integrated cache timing, power, and area model[R]. Palo Alto, California: Western Research Laboratory, 2001.
[7] TARJAN D, THOZIYOOR S, JOUPPI N. CACTI 4.0[R]. Palo Alto, CA: Hewlett-Packard Development Company, L P, 2006.
[8] THOZIYOOR S, MURALIMANOHAR N, AHN J, et al. CACTI 5.1[R]. Palo Alto, CA: Hewlett-Packard Development Company, L P, 2008.
[9] MURALIMANOHAR N, BALASUBRAMONIAN R, JOUPPI N. CACTI 6.0: A Tool to Model Large Caches[R]. Palo Alto, CA: Hewlett-Packard Development Company, L P, 2009.
[10]任靜, 唐遇星, 徐煒遐. 微處理器Cache體系結(jié)構(gòu)級(jí)功耗模型研究[C]//張民選. 第十五屆計(jì)算機(jī)工程與工藝年會(huì)暨第一屆微處理器技術(shù)論壇論文集A輯. 長沙:國防科技大學(xué)出版社, 2011: 75-81.
REN Jing, TANG Yu-xing, XU Wei-xia. Research on architecture-level cache power model of microprcessors[C] //ZHANG Min-xuan. Proceedings of the 15th CCF Annual Conference on Computer Engineering and Technology. Changsha: National University of Defense Technology Press, 2011:75-81.(In Chinese)
[11]JACOB B, NG S, WANG D. Memory systems cache, DRAM, disk[M]. San Francisco, CA: Morgan Kaufmann Publishers, 2008.
[12]WANG, G, RADENS C, SAFRAN J, et al.Embedded memory considerations in SOI[C]//Proceedings of 2010 IEEE International SOI Conference. New York: IEEE, 2010.
[13]CHANG M, ROSENFELD P, LU S, et al. Technology comparison for large last-level caches(L3Cs): low-leakage SRAM, low write-energy STT-RAM, and refresh-optimized eDRAM[C] //Proceedings of the 19th IEEE International Symposium on High-Performance Computer Architecture. New York: IEEE, 2013.
[14]SINHAROY B, KALLA R, STARKE W, et al. IBM POWRE7 multicore server processor[J]. IBM Journal of Research and Development, 2011, 55(3):191-219.
[15]FICK D, DRESLINSKI R, GIRIDHAR B, et al. Centip3De: a 3930DMIPS/W configurable near-threshold 3D stacked system with 64 ARM cortex-M3 cores[C]//IEEE International Solid-State Circuits Conference. New York: IEEE, 2012:190-192.