![計算機系統(tǒng)結(jié)構(gòu)chap5-2015-0513_第1頁](http://file4.renrendoc.com/view/a0da7d5b2e07af090e5f60471bfdd9ca/a0da7d5b2e07af090e5f60471bfdd9ca1.gif)
![計算機系統(tǒng)結(jié)構(gòu)chap5-2015-0513_第2頁](http://file4.renrendoc.com/view/a0da7d5b2e07af090e5f60471bfdd9ca/a0da7d5b2e07af090e5f60471bfdd9ca2.gif)
![計算機系統(tǒng)結(jié)構(gòu)chap5-2015-0513_第3頁](http://file4.renrendoc.com/view/a0da7d5b2e07af090e5f60471bfdd9ca/a0da7d5b2e07af090e5f60471bfdd9ca3.gif)
![計算機系統(tǒng)結(jié)構(gòu)chap5-2015-0513_第4頁](http://file4.renrendoc.com/view/a0da7d5b2e07af090e5f60471bfdd9ca/a0da7d5b2e07af090e5f60471bfdd9ca4.gif)
![計算機系統(tǒng)結(jié)構(gòu)chap5-2015-0513_第5頁](http://file4.renrendoc.com/view/a0da7d5b2e07af090e5f60471bfdd9ca/a0da7d5b2e07af090e5f60471bfdd9ca5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第五章存儲層次Copyright?2012,ElsevierInc.Allrightsreserved.Introduction程序員希望存儲器容量無限大,延遲無限小越小的硬件速度越快,造價越高解決方法:存儲系統(tǒng)的層次化結(jié)構(gòu)越小越快的存儲器,速度越接近處理器時間局部性(temporallocality)和空間局部性(spatiallocality)保證了最近訪問的內(nèi)容可以在較小存儲器中找到Temporallocality:最近訪問過的內(nèi)容很可能在不久的將來再次被訪問。Spatiallocality:地址鄰近的內(nèi)容可能在一定時間內(nèi)被連續(xù)訪問。Introduction5.1.1從單級存儲器到多級存儲器從用戶的角度來看,存儲器的三個主要指標是:
容量,速度,價格(每位價格)5.1存儲器的層次結(jié)構(gòu)2.人們對這三個指標的期望:5.1存儲器的層次結(jié)構(gòu)速度快價格高容量大價格低容量大速度慢5.1存儲器的層次結(jié)構(gòu)3.這三個指標相互矛盾:4.解決方法:
采用多種存儲器技術,構(gòu)成存儲層次目標:高速度、低價格(成本)、大容量5.1存儲器的層次結(jié)構(gòu)達到目標的依據(jù):指令和數(shù)據(jù)訪問的局部性原理5.1存儲器的層次結(jié)構(gòu)Copyright?2012,ElsevierInc.Allrightsreserved.MemoryHierarchyIntroduction5.1.2存儲層次的性能參數(shù)C,S,TA設:
S──容量
TA──訪問時間
C──每位價格下面僅考慮由M1和M2構(gòu)成的兩級存儲層次:
M1
的參數(shù):S1,TA1,C1M2
的參數(shù):S2,TA2,C21.每位價格CC=─────如果S1<<S2,CC2C1S1+C2S2S1+S25.1存儲器的層次結(jié)構(gòu)5.1存儲器的層次結(jié)構(gòu)Cache命中當處理器在Cache中找到要訪問的數(shù)據(jù)項時,稱為Cache命中Cache缺失當處理器在Cache中找不到要訪問的數(shù)據(jù)項時,稱為Cache缺失2.M1的命中率H和失效率F
命中率H:CPU訪問存儲系統(tǒng)時,在M1中找到所需信息的概率。
H=N1/(N1+N2)
N1
──訪問M1的次數(shù)
N2──訪問M2的次數(shù)失效率F
:
CPU訪問存儲系統(tǒng)時,在M1中找不到 所需信息的概率。
F=1-H5.1存儲器的層次結(jié)構(gòu)3.平均訪問時間TA5.1存儲器的層次結(jié)構(gòu)由于
TA=HTA1+(1-H)(TA1+TM)于是
TA=TA1+(1-H)TM
或
TA=TA1+F
TM
TA1
──命中時間
TM
──失效開銷5.1存儲器的層次結(jié)構(gòu)5.1.3“Cache-主存”和“主存-輔存”層次5.1存儲器的層次結(jié)構(gòu)
一般來說:
“Cache-主存”層次:彌補主存速度的不足
“主存-輔存”層次:彌補主存容量的不足1.“Cache-主存”層次5.1存儲器的層次結(jié)構(gòu)主存與CPU的速度差距35%55%7%5.1存儲器的層次結(jié)構(gòu)“Cache-主存”層次的實現(xiàn):主要借助于輔助硬件。5.1存儲器的層次結(jié)構(gòu)2.“主存-輔存”層次
“主存-輔存”層次的實現(xiàn):主要借助于輔助軟硬件。5.1存儲器的層次結(jié)構(gòu)存儲層次CPU對第二級的
訪問方式比較項目目的存儲管理實現(xiàn)
訪問速度的比值
(第一級和第二級)典型的塊(頁)大小失效時CPU是否切換“Cache-主存”層次“主存-輔存”層次為了彌補主存速度的不足為了彌補主存容量的不足主要由專用硬件實現(xiàn)主要由軟件實現(xiàn)幾比一幾百比一幾十個字節(jié)幾百到幾千個字節(jié)可直接訪問均通過第一級不切換切換到其他進程兩者的比較“Cache-主存”與“主存-輔存”5.1存儲器的層次結(jié)構(gòu)5.1.4存儲層次的四個問題當把一個塊調(diào)入高一層(靠近CPU)存儲器時,
可以放在哪些位置上?
(映象規(guī)則)當所要訪問的塊在高一層存儲器中時,如何
找到該塊?
(查找算法)3.
當發(fā)生失效時,應替換哪一塊?
(替換算法)4.
當進行寫訪問時,應進行哪些操作?
(寫策略)1.
2.5.1存儲器的層次結(jié)構(gòu)5.2Cache基本知識5.2.1映象規(guī)則1.全相聯(lián)映象
全相聯(lián):主存中的任一塊可以被放置到
Cache中的任意一個位置。特點:
空間利用率最高,沖突概率最低,
實現(xiàn)最復雜。5.2Cache基本知識實際:Cache常包含幾百個塊,主存常包含幾百萬個塊。5.2Cache基本知識2.直接映象:直接映象:主存中的每一塊只能被放置到
Cache中唯一的一個位置。特點:
空間利用率最低,沖突概率最
高,實現(xiàn)最簡單。例如:對于主存的第
i塊,若它映象到Cache的
第j塊,則:
j=imod(M)
(M
為Cache的塊數(shù))
5.2Cache基本知識(循環(huán)分配)5.2Cache基本知識組相聯(lián):主存中的每一塊可以被放置到Cache
中唯一的一個組中的任何一個位置。
設M=2m,則當表示為二進制數(shù)時,j實際上就是
i的低m位:3.組相聯(lián)映象:m位j5.2Cache基本知識主存塊地址
i:5.2Cache基本知識組相聯(lián)是直接映象和全相聯(lián)的一種折衷5.2Cache基本知識組的選擇常采用位選擇算法
若主存第i塊映象到第k組,則:
k=imod(G)(G為Cache的組數(shù))
設G=2g,則當表示為二進制數(shù)時,k實際
上就是i
的低g
位。g
位k主存塊地址
i:5.2Cache基本知識◆上述的j
(直接映象)和k
(組相聯(lián))通
常稱為索引◆標志字段:給出塊地址,通過比較來判斷是否發(fā)生命中◆塊內(nèi)偏移:用于從塊中選出需要的數(shù)據(jù)相聯(lián)度一定是越大越好?◆絕大多數(shù)計算機的Cache:n≤4◆n路組相聯(lián):每組中有n
個塊(n=M/G
)
n稱為相聯(lián)度。
相聯(lián)度越高,Cache空間的利用率就越高,
塊沖突概率就越低,失效率也就越低。
全相聯(lián)直接映象組相聯(lián)n
(路數(shù))G
(組數(shù))MM111<n<M1<G<M5.2Cache基本知識5.2.2查找方法所要解決的問題:如何確定Cache中是否有所要訪問的塊?若有的話如何確定其位置?
5.2Cache基本知識目錄表的結(jié)構(gòu):標志字段:給出塊地址,通過比較來判斷是否發(fā)生命中有效位:用于確定塊中是否包含有效信息5.2Cache基本知識查找范圍:候選位置所對應的目錄表項5.2Cache基本知識并行查找與順序查找5.2Cache基本知識提高性能的重要思想:主候選位置(MRU塊)5.2Cache基本知識并行查找的實現(xiàn)方法:
▲
相聯(lián)存儲器
▲
單體多字存儲器+比較器5.2Cache基本知識直接映象Cache的查找過程5.2Cache基本知識舉例:4路組相聯(lián)并行標識比較5.2Cache基本知識4路相聯(lián)Cache的查找過程5.2Cache基本知識5.2.3替換算法所要解決的問題:當新調(diào)入一塊,而Cache
又已被占滿時,替換哪一塊?2.FIFO(先進先出)3.LRU(最近最少使用)1.隨機法5.2Cache基本知識5.2Cache基本知識2.FIFO(先進先出)將最早進入Cache的塊作為替換塊。3.LRU(最近最少使用)優(yōu)點:失效率低利用歷史信息來預測未來使用情況,被替換的塊是最長時間內(nèi)沒有被訪問Cache的塊。需要記錄塊的訪問次數(shù)。利用局部性原理推論。
隨機法
優(yōu)點:硬件實現(xiàn)簡單為了均勻地分配,候選塊將被隨機選擇。系統(tǒng)產(chǎn)生偽隨機數(shù)塊號。LRU和隨機法的失效率的比較
(VAX地址流,塊大小16字節(jié))5.2Cache基本知識5.2.4寫策略1.“寫”操作所占的比例
Load指令:26%
Store指令:10%
“寫”在所有訪存操作中所占的比例:
10%/(100%+26%+10%)≈7%
“寫”在訪問數(shù)據(jù)Cache操作中所占的比例:
10%/(26%+10%)≈28%5.2Cache基本知識“讀”操作可以在標志位讀和比較的同時進行;“寫”操作必須在確認是命中后才可進行(當標志位有效且地址命中時,塊才能被修改)“寫”操作有可能導致Cache和主存內(nèi)容的不一致5.2Cache基本知識5.2Cache基本知識4.兩種寫策略
◆
寫直達
執(zhí)行“寫”操作時,不僅寫入Cache,而且
也寫入下一級存儲器。
◆
寫回法
執(zhí)行“寫”操作時,只寫入Cache。僅當
Cache中相應的塊被替換時,才寫回主存。
(設置“污染位”/“重寫位”/“臟位”,dirtybit)問題:當發(fā)生缺失需要替換時,干凈的塊是否需寫回?5.2Cache基本知識5.兩種寫策略的比較◆寫直達的優(yōu)點:
易于實現(xiàn),一致性好。◆寫回法的優(yōu)點:
寫操作速度快,對存儲器的速度要求較低;(對同一塊中的多次寫操作僅需要對下層存儲器一次操作,因此所需存儲帶寬較?。├脤懟胤p少訪問的通信量,寫直達保證存儲器層次結(jié)構(gòu)中Cache和低層存儲器數(shù)據(jù)的一致性。5.2Cache基本知識6.寫緩存技術(用于減少寫停頓的優(yōu)化策略)8.寫策略與調(diào)塊
寫回法──
按寫分配寫直達──
不按寫分配7.“寫”操作時的調(diào)塊
◆
按寫分配(寫時取)
寫失效時,先把所寫單元所在的塊調(diào)入
Cache,再行寫入。
◆
不按寫分配(繞寫法)
寫失效時,直接寫入下一級存儲器而不調(diào)塊。5.2Cache基本知識5.2.5Cache舉例例子:DEC的AlphaAXP21064中的內(nèi)部數(shù)據(jù)Cache。1.簡介
容量:8KB
塊大?。?2B
塊數(shù):256
調(diào)塊:不按寫分配映象規(guī)則:直接映象“寫”策略:寫直達寫緩沖器大?。?個塊5.2Cache基本知識2.結(jié)構(gòu)圖5.2Cache基本知識5.2Cache基本知識5.2Cache基本知識3.失效情況下的操作讀失效:
Cache向CPU發(fā)出一個暫停信號,通知它等 待,并從下一級存儲器中讀取32個字節(jié), 填入對應的Cache塊。寫失效:
CPU不對Cache進行操作。5.2Cache基本知識4.寫緩沖的結(jié)構(gòu)5.2Cache基本知識寫合并:
當把數(shù)據(jù)寫入寫緩沖器時,判斷本次所寫
入單元的塊地址是否與寫緩沖器中某個有效塊
的地址相同,若是,則把新數(shù)據(jù)與該塊合并。5.2Cache基本知識5.混合Cache與分離Cache訪存操作:
指令訪問(讀指令)
數(shù)據(jù)訪問(讀寫數(shù)據(jù))分離Cache:
指令Cache+數(shù)據(jù)Cache混合(一體)Cache:
單一的Cache優(yōu)缺點:
(1)
實現(xiàn)成本
(2)
結(jié)構(gòu)沖突例:當執(zhí)行一條load或store指令時,處理器會同時請求一個數(shù)據(jù)字和一個指令字。
5.2Cache基本知識16KB容量1KB2KB4KB8KB32KB指令Cache3.06%表5-4失效率的比較64KB128KB數(shù)據(jù)Cache混合Cache2.26%1.78%1.10%0.64%0.39%0.15%0.02%24.61%20.57%15.94%10.19%6.47%4.82%3.77%2.88%13.34%9.78%7.24%4.57%2.87%1.99%1.36%0.95%5.2Cache基本知識6.分離Cache與混合Cache平均失效率的比較前提:指令Cache容量+數(shù)據(jù)Cache容量
=混合Cache容量
5.2Cache基本知識分離Cache平均失效率的計算:訪問指令Cache的百分比×指令Cache的失效率+訪問數(shù)據(jù)Cache的百分比×數(shù)據(jù)Cache的失效率訪問指令Cache的百分比:
100%/(100%+26%+10%)≈74%
訪問數(shù)據(jù)Cache的百分比:
(26%+10%)/(100%+26%+10%)≈26%5.2Cache基本知識5.2.6性能分析2.平均存儲器訪問時間
平均訪問時間=命中時間+失效率×失效開銷3.CPU時間CPU時間=(CPU執(zhí)行周期數(shù)+存儲器停頓周期數(shù))
×時鐘周期時間1.失效率(缺失率)5.2Cache基本知識例
假設Cache的命中時間為1個時鐘周期,失效開銷為50
個時鐘周期,在混合Cache中一次load或store操作訪問Cache的命中時間都要增加一個時鐘周期(因為混合Cache只有一個端口,無法同時滿足兩個請求。按照前一章中有關流水線的術語,混合Cache會導致結(jié)構(gòu)沖突),根據(jù)表5-4所列的失效率,試問指令Cache和數(shù)據(jù)Cache容量均為16KB
的分離Cache和容量為32KB的混合Cache相比,哪種Cache的失效率更低?又假設采用寫直達策略,且有一個寫緩沖器,并且忽略寫緩沖器引起的等待。請問上述兩種情況下平均訪存時間各是多少?5.2Cache基本知識解:
如前所述,約74%的訪存為取指令。因此,
分離Cache的總體失效率為:
(74%×0.64%)+(26%×6.47%)=2.16%
根據(jù)表5-4,容量為32KB的混合Cache的失效率略低一些,只有1.99%.另外:平均訪存時間公式可以分為指令訪問和數(shù)據(jù)
訪問兩部分:5.2Cache基本知識平均訪存時間=指令所占的百分比×
(指令命中時間+指令失效率×失效開銷)+
數(shù)據(jù)所占的百分比×
(數(shù)據(jù)命中時間+數(shù)據(jù)失效率×失效開銷)所以根據(jù)表5-4,兩種結(jié)構(gòu)的平均訪存時間分別為:平均訪存時間分離=74%×(1+0.64%×50)+
26%×(1+6.47%×50)
=(74%×1.32)+(26%×4.235)
=2.05.2Cache基本知識平均訪存時間混合=74%×(1+1.99%×50)
+26%×(1+1+1.99%×50)
=(74%×1.995)+(26%×2.995)
=1.476+0.779=2.263.CPU時間
在考慮存儲器對系統(tǒng)性能影響時,可以將系統(tǒng)性能描述為:
CPU時間=(CPU執(zhí)行周期數(shù)+存儲器停頓周期數(shù))
×時鐘周期時間5.2Cache基本知識其中,存儲器停頓周期數(shù)=
“讀”的次數(shù)×讀失效率×讀失效開銷
+“寫”的次數(shù)×寫失效率×寫失效開銷如果讀、寫失效率以及讀、寫失效開銷相差不大,
存儲器停頓周期數(shù)=訪存次數(shù)×失效率×失效開銷于是
CPU時間=IC×[CPIexe+訪存次數(shù)/指令數(shù)×
失效率×失效開銷]×時鐘周期時間5.2Cache基本知識例我們用一個和AlphaAXP類似的機器作為第一個例子。假設Cache失效開銷為50
個時鐘周期,當不考慮存儲器停頓時,所有指令的執(zhí)行時間都是2.0
個時鐘周期,Cache的失效率為2%,平均每條指令訪存1.33
次。試通過CPI分析Cache對性能的影響。5.2Cache基本知識解:考慮Cache的失效后,性能為,CPU時間有cache=IC×(2.0+(1.33×2%×50))
×時鐘周期時間
=IC×3.33×時鐘周期時間實際CPI:3.333.33/2.0=1.67(倍)CPU時間增加為原來的1.67
倍。但若不采用Cache,則:
CPI=2.0+50×1.33=68.55.2Cache基本知識例考慮兩種不同組織結(jié)構(gòu)的Cache:直接映象Cache和兩路組相聯(lián)Cache,試問它們對CPU的性能有何影響?分析時用以下假設:(1)理想Cache(命中率為100%)情況下CPI為2.0,時鐘周期為2ns,平均每條指令訪存1.3次。(2)兩種Cache的容量均為64KB,塊大小32字節(jié)(3)對于組相聯(lián)Cache,CPU的時鐘周期增加到原來的1.1倍(4)失效開銷都是70ns(5)命中時間為1個時鐘周期,64KB直接映象Cache的失效率為1.4%,64KB兩路組相聯(lián)Cache的失效率為1.0%5.2Cache基本知識解:(1)平均訪存時間=命中時間+失效率×失效開銷平均訪存時間直接
=1.0×2+(1.4%×70)=2.98ns平均訪存時間組相聯(lián)=1.0×2×1.10+(1.0%×70)=2.90ns(2)CPU時間=IC×[CPIexe+訪存次數(shù)/指令數(shù)×
失效率×失效開銷]×時鐘周期時間
5.2Cache基本知識CPU時間直接
=IC×(2.0×2+1.3×1.4%×70) =5.27×IC(ns)
CPU時間組相聯(lián)=IC×(2.0×2×1.1+1.3×1.0%×70) =5.31×IC(ns)5.2Cache基本知識平均訪存時間=命中時間+失效率×失效開銷可以從三個方面改進Cache的性能:(1)降低失效率(2)減少失效開銷
(3)減少Cache命中時間下面介紹15
種Cache優(yōu)化技術5.2.7改進Cache性能5.2Cache基本知識(1)強制性失效(Compulsorymiss)
當?shù)谝淮卧L問一個塊時,該塊不在Cache中,需從下一級存儲器中調(diào)入Cache,這就是強制性失效。
(冷啟動失效,首次訪問失效。)(2)容量失效(Capacitymiss)
如果程序執(zhí)行時所需的塊不能全部調(diào)入Cache中,則當某些塊被替換后,若又重新被訪問,就會發(fā)生失效。這種失效稱為容量失效。5.3降低Cache失效率的方法1.三種失效(3C)(3)沖突失效(Conflictmiss)
在組相聯(lián)或直接映象Cache中,若太多的塊映象到同一組(塊)中,則會出現(xiàn)該組中某個塊被別的塊替換(即使別的組或塊有空閑位置),然后又被重新訪問的情況。這就是發(fā)生了沖突失效。
(碰撞失效,干擾失效)5.3降低Cache失效率的方法2.三種失效所占的比例(SPEC92)5.3降低Cache失效率的方法5.3降低Cache失效率的方法可以看出:(1)
相聯(lián)度越高,沖突失效就越少;(2)
強制性失效和容量失效不受相聯(lián)度的影響;(3)
強制性失效不受Cache容量的影響,但容
量失效卻隨著容量的增加而減少;(4)
表中的數(shù)據(jù)符合2:1的Cache經(jīng)驗規(guī)則,即
大小為N的直接映象Cache的失效率約等于
大小為N/2的兩路組相聯(lián)Cache的失效率。5.3降低Cache失效率的方法強制性失效:增加塊大小,預取
(本身很少)容量失效:增加容量
(抖動現(xiàn)象)沖突失效:提高相聯(lián)度
(理想情況:全相聯(lián))3.減少三種失效的方法4.許多降低失效率的方法會增加命中時間或失效開銷5.3降低Cache失效率的方法5.3.1增加Cache塊大小增加塊容量會降低強制失效率更大的塊可能會導致沖突失效率如果Cache容量較小時會增加容量失效率5.3降低Cache失效率的方法2.增加塊大小會增加失效開銷1.失效率與塊大小的關系
(1)對于給定的Cache容量,當塊大小增加
失效率開始是下降,后來反而上升了;
(2)Cache容量越大,使失效率達到最低的
塊大小就越大。3.例題5.3降低Cache失效率的方法例假定存儲系統(tǒng)在延遲40個時鐘周期后,每2
個時鐘周期能送出16
個字節(jié)。即:經(jīng)過42
個時鐘周期,它可提供16
個字節(jié);經(jīng)過44
個時鐘周期,可提供32
個字節(jié);依此類推。試問對于表5-6中列出的各種容量的Cache,在塊大小分別為多少時,平均訪存時間最???解:平均訪存時間為:
平均訪存時間=命中時間+失效率×失效開銷5.3降低Cache失效率的方法
假設命中時間與塊大小無關,為1個時鐘,那么對于一個塊大小為16字節(jié),容量為1KB的Cache來說:
平均訪存時間=1+(15.05%×42)=7.321個時鐘周期
而對于塊大小為256B的大小為256KB的Cache來說,平均訪存時間為:
平均訪存時間=1+(0.49%×72)=1.353個時鐘周期
表5.7列出了在這兩種極端情況之間的各種塊大小和各種Cache容量的平均訪存時間。5.3降低Cache失效率的方法塊大?。ㄗ止?jié))失效開銷(時鐘周期)Cache容量(字節(jié))1K4K16K64K256K16427.3214.5992.6551.8571.45832446.8704.1862.2631.5941.30864487.6054.3602.2671.5091.2451285610.3185.3572.5511.5711.2742567216.8477.8473.3691.8281.3535.3.2提高相聯(lián)度1.采用相聯(lián)度超過8的方法實際意義不大
8路組相聯(lián)和相同容量的全相聯(lián)Cache在降低失效率方面同樣有效2.2:1Cache經(jīng)驗規(guī)則
容量為N
的直接映象Cache失效率
≈容量為N/2的兩路組相聯(lián)Cache失效率5.3降低Cache失效率的方法5.3.2提高相聯(lián)度3.提高相聯(lián)度是以增加命中時間為代價
例如:
TTL或ECL板級Cache,兩路組相聯(lián):
增加10%定制的CMOSCache,兩路組相聯(lián):
增加2%5.3降低Cache失效率的方法4.例題
假定提高相聯(lián)度會按下列比例增大處理器
時鐘周期:
時鐘周期2路=1.10×時鐘周期1路
時鐘周期4路=1.12×時鐘周期1路時鐘周期8路=1.14×時鐘周期1路
假定命中時間為1個時鐘,失效開銷為50個時鐘周期,而且假設不必將失效開銷取整。使用表5-5中的失效率,試問當Cache為多大時,以下不等式成立?5.3降低Cache失效率的方法平均訪存時間8路
<平均訪存時間4路平均訪存時間4路
<平均訪存時間2路平均訪存時間2路
<平均訪存時間1路解:
在各種相聯(lián)度的情況下,平均訪存時間分別為:
平均訪存時間8路=命中時間8路+失效率8路×失效開銷8路
=1.14+失效率8路×50
平均訪存時間4路
=1.12+失效率4路×50
平均訪存時間2路
=1.10+失效率2路×50
平均訪存時間1路
=1.00+失效率1路×505.3降低Cache失效率的方法
在每種情況下的失效開銷相同,都是50個時鐘周期。把相應的失效率代入上式,即可得平均訪存時間。
例如,1KB的直接映象Cache的平均訪存時間為:
平均訪存時間1路=1.00+(0.133×50)
=7.65容量為128KB的8路組相聯(lián)Cache的平均訪存時間為:
平均訪存時間8路=1.14+(0.006×50)
=1.445.3降低Cache失效率的方法Cache容量(K字節(jié))相聯(lián)度(路)124817.656.606.225.4425.904.904.624.0944.603.953.573.1983.303.002.872.59162.44322.001.801.771.79641.701.601.571.591281.501.451.421.441.基本思想
在Cache和它從下一級存儲器調(diào)數(shù)據(jù)的通路之間設置一個全相聯(lián)的小Cache,用于存放被替換出去的塊(稱為Victim),以備重用。5.3.3VictimCache5.3降低Cache失效率的方法5.3降低Cache失效率的方法
對于減小沖突失效很有效,特別是對于小容量的直接映象數(shù)據(jù)Cache,作用尤其明顯。例如,項數(shù)為4的VictimCache:
使4KBCache的沖突失效減少20%~90%2.作用5.3降低Cache失效率的方法1.直接映象vs組相聯(lián)5.3.4偽相聯(lián)Cache(列相聯(lián))2.偽相聯(lián)Cache優(yōu)點缺點直接映象組相聯(lián)命中時間小命中時間大失效率高失效率低取直接映象及組相聯(lián)兩者的優(yōu)點:
命中時間小,失效率低5.3降低Cache失效率的方法(1)基本思想及工作原理
在邏輯上把直接映象Cache的空間上下平分為兩個區(qū)。對于任何一次訪問,偽相聯(lián)Cache先按直接映象Cache的方式去處理。若命中,則其訪問過程與直接映象Cache的情況一樣。若不命中,則再到另一區(qū)相應的位置去查找。若找到,則發(fā)生了偽命中,否則就只好訪問下一級存儲器。(2)快速命中與慢速命中
要保證絕大多數(shù)命中都是快速命中。5.3降低Cache失效率的方法3.例題例5.6
假設當在按直接映象找到的位置處沒有發(fā)現(xiàn)匹配、而在另一個位置才找到數(shù)據(jù)(偽命中)需要2個額外的周期。仍用上個例子中的數(shù)據(jù),問:當Cache容量分別為2KB和128KB時,直接映象、兩路組相聯(lián)和偽相聯(lián)這三種組織結(jié)構(gòu)中,哪一種速度最快?5.3降低Cache失效率的方法首先考慮標準的平均訪存時間公式:
平均訪存時間偽相聯(lián)
=命中時間偽相聯(lián)+失效率偽相聯(lián)×失效開銷偽相聯(lián)由于:
失效率偽相聯(lián)=失效率2路
命中時間偽相聯(lián)=命中時間1路+偽命中率偽相聯(lián)×2;
偽命中率偽相聯(lián)=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)
=失效率1路-失效率2路解:5.3降低Cache失效率的方法故:
平均訪存時間偽相聯(lián)
=命中時間1路+(失效率1路-失效率2路)×2
+失效率2路×失效開銷1路將表5-5中的數(shù)據(jù)代入上面的公式,得:
平均訪存時間偽相聯(lián),2KB
=1+(0.098-0.076)×2+(0.076×50)
=4.844
平均訪存時間偽相聯(lián),128KB
=1+(0.010-0.007)×2+(0.007×50)
=1.3565.3降低Cache失效率的方法根據(jù)上一個例子中的表5-8,對于2KBCache,
可得:
平均訪存時間1路=5.90個時鐘平均訪存時間2路=4.90個時鐘對于128KB的Cache有,可得:
平均訪存時間1路=1.50個時鐘平均訪存時間2路=1.45個時鐘可見,對于這兩種Cache容量,偽相聯(lián)Cache
都是速度最快的。缺點:多種命中時間5.3降低Cache失效率的方法5.3.5硬件預取技術依據(jù):空間局部性思想:在Cache訪問失效時,不但從內(nèi)存中取入對應的塊,而且將它的鄰近塊(通常為后繼塊)取入一個速度快于主存的緩沖器中,這樣當對后繼塊的訪問發(fā)生時,可通過訪問該緩沖器進行塊替換。1.指令和數(shù)據(jù)都可以預取2.預取內(nèi)容既可放入Cache,也可放在外緩沖器(速度快于主存)中
例如:指令流緩沖器5.3降低Cache失效率的方法3.預取效果
(1)Jouppi的研究結(jié)果
◆指令預?。?4KB,直接映象Cache,塊大?。?6字節(jié))5.3降低Cache失效率的方法1個塊的指令流緩沖器:捕獲15%~25%的失效4個塊的指令流緩沖器:捕獲50%16個塊的指令流緩沖器:捕獲72%◆數(shù)據(jù)預?。?4KB,直接映象Cache)
1個數(shù)據(jù)流緩沖器:捕獲25%的失效還可以采用多個數(shù)據(jù)流緩沖器(2)Palacharla和Kessler的研究結(jié)果
流緩沖器:既能預取指令又能預取數(shù)據(jù)對于兩個64KB四路組相聯(lián)Cache來說:
8個流緩沖器能捕獲50%~70%的失效。5.3降低Cache失效率的方法4.例題例5.7
AlphaAXP21064采用指令預取技術,其實際
失效率是多少?假設從預取緩沖器中找到所需指令(并進行替換)需多花1個時鐘周期。5.3降低Cache失效率的方法假設:
預取命中率=25%
命中時間=1個時鐘周期失效開銷=50個時鐘周期5.3降低Cache失效率的方法由表5-4可知,
8KB指令Cache的失效率=1.10%
平均訪存時間預取=1+(1.10%×25%×1)+
(1.10%×(1-25%)×50)
=1+0.00275+0.4125=1.415
由公式:
平均訪問時間=命中時間+失效率×失效開銷解:
平均訪存時間預取
=命中時間+失效率×預取命中率×1
+失效率×(1-預取命中率)×失效開銷可得相應的失效率為:失效率=(平均訪問時間-命中時間)/失效開銷
=(1.451-1)/50=0.83%8KBCache
帶預取的
8kBCache失效率1.10%0.83%16KBCache0.64%關鍵:預取應建立在存儲器的空閑頻帶5.3降低Cache失效率的方法5.3.6由編譯器控制的預取1.預取的類型
◆寄存器預?。喊褦?shù)據(jù)取到寄存器中◆Cache預取:只將數(shù)據(jù)取到Cache中◆故障性預?。侯A取時,若出現(xiàn)虛地址故障或違反訪問權(quán)限,就會發(fā)生異常?!舴枪收闲灶A取:預取時,若出現(xiàn)虛地址故障或違反訪問權(quán)限,并不會導致異常,只是轉(zhuǎn)變?yōu)椤安活A取”。由編譯器加入預取指令,在數(shù)據(jù)被用到之前發(fā)出預取請求。5.3降低Cache失效率的方法4.例題2.在預取數(shù)據(jù)的同時,處理器應能繼續(xù)執(zhí)行
只有這樣,預取才有意義。非阻塞Cache(非鎖定Cache)——指Cache在等待預取數(shù)據(jù)返回時,還能繼續(xù)提供指令和數(shù)據(jù).3.循環(huán)是預取優(yōu)化的主要對象
失效開銷小時:循環(huán)體展開1~2次失效開銷大時:循環(huán)體展開許多次5.3降低Cache失效率的方法例5.8
對于下面的程序,判斷哪些訪問可能會導致數(shù)據(jù)Cache失效。然后,加入預取指令以減少失效。最后,計算所執(zhí)行的預取指令的條數(shù)以及通過預取避免的失效次數(shù)。假定:
(1)我們用的是一個容量為8KB、塊大小為16B的直接映象Cache,它采用寫回法并且按寫分配。
(2)a、b分別為3×100(3行100列)和101×3的雙精度浮點數(shù)組,每個元素都是8個字節(jié)。當程序開始執(zhí)行時,這些數(shù)據(jù)都不在Cache內(nèi)。5.3降低Cache失效率的方法for(i=0;i<3;i=i+1)for(j=0;j<100;j=j+1)a[i][j]=b[j][0]×b[j+1][0];解:(1)計算過程(2)失效情況
數(shù)組a數(shù)組b
總的失效次數(shù)=251次
(3)改進后的程序(設預取的開銷比較大,需提
前7次循環(huán)進行)5.3降低Cache失效率的方法5.3降低Cache失效率的方法for(j=0,j<100;j=j+1){prefetch(b[j+7][0]);
/*
預取7次循環(huán)后所需的b(j,0)*/prefetch(a[0][j+7]);
/*
預取7次循環(huán)后所需的a(0,j)*/a[0][j]=b[j][0]*b[j+1][0]}for(i=1;i<3;i=i+1)for(j=0;j<100;j=j+1){prefetch(a[i][j+7]);
/*
預取7次循環(huán)后所需的a(i,j)*/a[i][j]=b[j][0]*b[j+1][0];}5.3降低Cache失效率的方法失效情況
總的失效次數(shù)=(7+4)+4+4=19次避免的失效次數(shù)
=251-19=232次5.3降低Cache失效率的方法例5.9
在以下條件下,計算例5.8中所節(jié)約的時間:
(1)忽略指令Cache失效,并假設數(shù)據(jù)Cache無沖突失效和容量失效。
(2)假設預取可以被重疊或與Cache失效重疊執(zhí)行,從而能以最大的存儲帶寬傳送數(shù)據(jù)。
(3)不考慮Cache失效時,修改前的循環(huán)每7個時鐘周期循環(huán)一次。修改后的程序中,第一個預取循環(huán)每9個時鐘周期循環(huán)一次,而第二個預取循環(huán)每8個時鐘周期循環(huán)一次(包括外層for循環(huán)的開銷)。
(4)一次失效需50個時鐘周期。5.3降低Cache失效率的方法解:
修改前:
循環(huán)時間=300×7=2100
總失效開銷=251×50=12550
總運行時間=2100+12550=146505.3降低Cache失效率的方法
修改后:
循環(huán)時間=100×9+200×8=2500
總失效時間=19×50=950
總運行時間=2500+950=3450
加速比=14650/3450=編譯器優(yōu)化2KBCache:降低50%8KBCache:降低75%1.基本思想
在編譯時,對程序中的指令和數(shù)據(jù)進行重新組織,以降低Cache失效率。2.McFaring發(fā)現(xiàn):通過對指令進行重新排序,可有效地降低指令Cache的失效率。(例如:轉(zhuǎn)移校正)5.3降低Cache失效率的方法3.數(shù)據(jù)對存儲位置的限制比指令的少,因此更便于優(yōu)化。通過把數(shù)據(jù)重新組織,使得在一塊數(shù)據(jù)被從Cache替換出去之前,能最大限度利用其中的數(shù)據(jù)(訪問次數(shù)最多)(1)數(shù)據(jù)合并//提高空間局部性
舉例:
/*修改前*/intval[SIZE];intkey[SIZE];5.3降低Cache失效率的方法(2)內(nèi)外循環(huán)交換//提高空間局部性舉例:
/*修改前*/以100個字為步長跳躍式訪問存儲器for(j=0;j<100;j=j+1)for(i=0;i<5000;i=i+1)x[i][j]=2*x[i][j];
/*修改后*/structmerge{intval;intkey;};structmergemerged_array[size];5.3降低Cache失效率的方法(3)循環(huán)融合//提高時間局部性舉例:
/*修改前*/for(i=0;i<N;i=i+1)for(j=0;j<N;j=j+1)a[i][j]=1/b[i][j]*c[i][j];/*修改后*/在訪問了一個Cache塊中的所有字后才去訪問下一個Cache塊for(i=0;i<100;i=i+1)for(j=0;j<5000;j=j+1)x[i][j]=2*x[i][j];5.3降低Cache失效率的方法
/*修改后*/for(i=0;i<N;i=i+1)for(j=0;j<N;j=j+1){
a[i][j]=1/b[i][j]*c[i][j];d[i][j]=a[i][j]+c[i][j];}for(i=0;i<N;i=i+1)for(j=0;j<N;j=j+1)d[i][j]=a[i][j]+c[i][j];5.3降低Cache失效率的方法
舉例:
/*
修改前*/for(i=0;i<N;i=i+1)for(j=0;j<N;j=j+1){r=0;for(k=0;k<N;k=k+1){r=r+y[i][k]*z[k][j];
}x[i][j]=r;
}5.3降低Cache失效率的方法(4)分塊//提高時間局部性把對數(shù)組的整行或整列訪問改為按塊進行。最壞情況下失效次數(shù):2N3+N2/*修改后*/B為分塊因子for(jj=0;jj<N;jj=jj+B)for(kk=0;kk<N;kk=kk+B)for(i=0;i<N;i=i+1)for(j=jj;j<min(jj+B-1,N);j=j+1){r=0;for(k=kk;k<min(kk+B-1,N);k=k+1){
r=r+y[i][k]*z[k][j];}x[i][j]=x[i][j]+r;}失效次數(shù):2N3/B+N25.3降低Cache失效率的方法最壞情況下失效次數(shù):2N3/B+N25.4.1讓讀失效優(yōu)先于寫5.4減少Cache失效開銷1.因為Cache中的寫緩沖器中可能包含讀缺失時所需的更新數(shù)據(jù),導致寫緩沖器對存儲器訪問的復雜化2.解決問題的方法(讀失效的處理)
◆推遲對讀失效的處理,直到寫緩沖器為空
(缺點:讀失效的開銷增加,如50%)
◆檢查寫緩沖器中的內(nèi)容,如果沒有沖突且存儲器可訪問,就讓讀缺失繼續(xù)。3.在寫回法Cache中,如采用寫緩沖器,也可以采用類似方法(檢查寫緩沖器中的內(nèi)容)5.4.2子塊放置技術1.為減少標識位的消耗,可采用增加塊大小的方法,但這會增加失效開銷,故應采用子塊放置技術。2.子塊放置技術:把Cache塊進一步劃分為更小的塊(子塊),并給每個子塊賦予一位有效位,用于指明該子塊中的數(shù)據(jù)是否有效。
Cache與下一級存儲器之間以子塊為單位傳送數(shù)據(jù)。但標識仍以塊為單位。5.4減少Cache失效開銷3.舉例
(圖示)5.4減少Cache失效開銷5.4.3請求字處理技術1.請求字
從下一級存儲器調(diào)入Cache的塊中,只有一個字是立即需要的。這個字稱為請求字(又稱關鍵字)。2.應盡早把請求字發(fā)送給CPU◆盡早重啟動:調(diào)塊時,從塊的起始位置開始讀起。一旦請求字到達,就立即發(fā)送給CPU,讓CPU繼續(xù)執(zhí)行。◆請求字優(yōu)先:調(diào)塊時,從請求字所在的位置讀起。這樣,第一個讀出的字便是請求字。將之立即發(fā)送給CPU。使得CPU在裝入塊的其他字的同時能夠繼續(xù)執(zhí)行。5.4減少Cache失效開銷3.這種技術在以下情況下效果不大:◆Cache塊較小◆下一條指令正好訪問同一Cache塊的另一部分。5.4減少Cache失效開銷5.4.4非阻塞Cache技術1.非阻塞Cache:Cache失效時仍允許CPU進行
其它的命中訪問。即允許“失效下命中”2.進一步提高性能:“多重失效下命中”,
“失效下失效”
(存儲器必須能夠處理多個失效)3.重疊失效個數(shù)對平均訪問時間的影響5.4減少Cache失效開銷8KB的數(shù)據(jù)Cache在當前缺失數(shù)量變化時,Cache缺失所需的平均時鐘周期數(shù)非阻塞Cache平均存儲器等待時間與阻塞Cache的比值12浮點程序76%51%6439%整數(shù)程序81%78%78%重疊失效個數(shù)5.4減少Cache失效開銷
對于圖5.18所描述的Cache,在兩路組相聯(lián)和
“一次失效下命中”這兩種措施中,哪一種對浮
點程序更重要?對整數(shù)程序的情況如何?
假設8KB數(shù)據(jù)Cache的平均失效率為:
對于浮點程序,直接映象Cache為11.4%,兩路
組相聯(lián)Cache為10.7%;
對于整數(shù)程序,直接映象Cache為7.4%,兩路
組相聯(lián)Cache為6.0%。
并且假設平均存儲器等待時間是失效率和失效開銷的積,失效開銷為16個時鐘周期。例5.115.4減少Cache失效開銷對于浮點程序,平均存儲器等待時間為:失效率直接映象×失效開銷=11.4%×16=1.82
失效率兩路組相聯(lián)×失效開銷=10.7%×16=1.711.71/1.82=0.94>76%
對于整數(shù)程序,平均存儲器等待時間為:失效率直接映象×失效開銷=7.4%×16=1.18
失效率兩路組相聯(lián)×失效開銷=6.0%×16=0.960.96/1.18=0.81=81%結(jié)論:對浮點運算采用“一次失效下命中”的直接映象措施比采用“兩路組相聯(lián)”技術更有效.對整數(shù)運算兩種策略有相同性能。解:5.4減少Cache失效開銷5.4.5兩級Cache1.應把Cache做得更快?還是更大?
答案:二者兼顧,再增加一級Cache◆第一級Cache(L1)小而快◆第二級Cache(L2)容量大2.性能分析平均存儲器訪問時間
=命中時間L1+失效率L1×失效開銷L1
=命中時間L1+失效率L1×
(命中時間L2+失效率L2×失效開銷L2)5.4減少Cache失效開銷3.局部失效率與全局失效率局部失效率=該級Cache的失效次數(shù)/到達
該級Cache的訪問次數(shù)例如:上述式子中的失效率L1,失效率L2全局失效率=該級Cache的失效次數(shù)/CPU
發(fā)出的訪存的總次數(shù)
全局失效率L2=失效率L1×失效率L2全局失效率L1=失效率L1
局部失效率一般不能反映對提高系統(tǒng)實際運行性能所發(fā)揮的作用,因此評價第二級Cache時,一般使用全局失效率這個指標。5.4減少Cache失效開銷4.當?shù)诙塁ache比第一級Cache大得多時,兩
級Cache的全局失效率和第二級Cache相同的
單級Cache的失效率非常接近。5.4減少Cache失效開銷5.第二級Cache的參數(shù)
第二級Cache不會影響CPU的時鐘頻率,僅影響一級Cache的缺失代價,因此其設計有更大的考慮空間。
兩個問題:
◆能否降低CPI中的平均訪存時間部分?
◆成本是多少?
(1)容量
第二級Cache的容量一般比第一級的大許多,如512KB(如果第二級Cache的容量僅大一點,局部缺失率會很高)5.4減少Cache失效開銷(2)相聯(lián)度
第二級Cache可采用較高的相聯(lián)度或偽相聯(lián)方法例5.12
給出有關第二級Cache的以下數(shù)據(jù):⑴兩路組相聯(lián)使命中時間增加10%×CPU時鐘周期⑵對于直接映象,命中時間L2=10個時鐘周期⑶對于直接映象,局部失效率L2=25%⑷對于兩路組相聯(lián),局部失效率L2=20%⑸失效開銷L2=50個時鐘周期試問第二級Cache的相聯(lián)度對第一級Cache失效開銷的影響如何?5.4減少Cache失效開銷解:
對于一個直接映象的第二級Cache來說,第一級Cache的失效開銷為:失效開銷直接映象,L1
=10+25%×50=22.5個時鐘周期
對于兩路組相聯(lián)第二級Cache來說,命中時間增加了10%(0.1)個時鐘周期,故第一級Cache的失效開銷為:失效開銷兩路組相聯(lián),L1
=10.1+20%×50=20.1個時鐘周期
故對于第二級Cache來說,兩路組相聯(lián)優(yōu)于直接映象。5.4減少Cache失效開銷(3)塊大小第二級Cache可采用較大的塊,
如64、128、256字節(jié)。
為減少平均訪存時間,可以讓容量較小的第一級Cache采用較小的塊,而讓容量較大的第二級Cache采用較大的塊。(4)多級包容性
一級Cache的數(shù)據(jù)總是包含在二級Cache中
優(yōu)點:數(shù)據(jù)一致性僅檢查二級Cache確定
缺點:不同級別Cache的塊大小不同5.4減少Cache失效開銷5.5減少命中時間2.應使Cache足夠小,以便可以與CPU一起放
在同一塊芯片上。
命中時間直接影響到處理器的時鐘頻率。在
當今的許多計算機中,往往是Cache的訪問時間
限制了處理器的時鐘頻率。1.硬件越簡單,速度就越快;5.5.1容量小、結(jié)構(gòu)簡單的Cache1.虛擬Cache
訪問Cache的索引以及Cache中的標識都是虛擬地址(一部分)。
虛擬地址是訪問硬盤上的虛擬存儲器的地址。2.并非人人都采用虛擬Cache原因一:不同進程虛地址空間的相同。5.5.2虛擬Cache5.5減少命中時間3.解決方法:(1)進程切換時清空虛擬Cache。(2)在地址標識中增加PID字段(進程標識符)。三種情況下失效率的比較:
單進程,PIDs,清空
PIDs與單進程相比:+0.3%~+0.6%
PIDs與清空相比:-0.6%~-4.3%5.5減少命中時間4.原因二:同義和別名(不同虛地址對應相同實地址情況)
可能導致同一數(shù)據(jù)在虛擬Cache中存在兩個副本。
解決方法:(1)反別名法——用硬件來保證每一個Cache塊對應唯一實地址(物理地址)。(2)頁著色——Sun公司的UNIX系統(tǒng)要求所有有別名的地址最后18位相同,而直接映象Cache的索引來自于這最后18位(Cache容量不超過218字節(jié)),這使得所有別名映象到同一Cache塊位置。5.5減少命中時間5.根據(jù)頁內(nèi)位移(這部分虛實地址相同)進行Cache索引(同時進行虛實地址轉(zhuǎn)換),用實地址判斷是否命中。優(yōu)點:兼得虛擬Cache和物理Cache的好處(Cache索引和虛實地址轉(zhuǎn)換同時進行)局限性:Cache容量受到限制
直接映象:Cache容量≤頁大小組相聯(lián)映象:Cache容量≤頁大小×相聯(lián)度5.5減少命中時間5.5.3將寫操作流水化以加快寫命中讀寫命中一般包含兩步:(1)判斷是否命中。(2)(如果命中)對Cache進行讀寫。對讀操作:兩步可并行進行。對寫操作:兩步必須串行進行。解決方法:將寫操作的兩步操作流水化.5.5減少命中時間優(yōu)化技術失效率失效開銷命中時間硬件復雜度評價增加塊大小+-
0實現(xiàn)容易;RS/6000550采用了128字節(jié)提高相聯(lián)度+
-1MIPSR10000為4路組相聯(lián)VictimCache+
2HP7200中采用了類似的技術偽相聯(lián)Cache+
2已應用于MIPSR10000的第二級Cache硬件預取指令和數(shù)據(jù)+
2數(shù)據(jù)預取比較困難;僅被幾臺機器采用,如:Alpha21064編譯器控制的預取+
3需采用非阻塞cache;有幾種機器支持它用編譯技術減少Cache失效次數(shù)+
0向軟件提出了新要求;有些機器提供了編譯器選項使讀失效優(yōu)先級高于寫
+
1在單處理機上實現(xiàn)容易,被廣泛使用子塊調(diào)入
+
1主要用于減少標識的數(shù)目盡早重啟動和關鍵字優(yōu)先
+
2已應用于MIPSR10000和IBM620非阻塞Cache
+
3已應用于Alpha21064和R10000中第二級Cache
+
2硬件代價大;兩級Cache的塊大小不同時實現(xiàn)困難;被廣泛采用容量小且結(jié)構(gòu)簡單的Cache-
+0實現(xiàn)容易,被廣泛使用虛擬Cache
+2對于小容量Cache來說實現(xiàn)容易,已應用于Alpha21064流水化寫
+1已應用于Alpha210645.6.1存儲器技術1.主存的主要性能指標:延遲和帶寬2.以往:
Cache主要關心存儲器延遲(直接影響了Cache失效開銷),I/O主要關心存儲器帶寬現(xiàn)在:Cache關心兩者(由于二級Cache使用較大的塊)5.6主存1.存儲器延遲的參數(shù):訪問時間,存儲周期2.地址線復用:行選通(RAS)和列選通(CAS)5.6.1存儲器技術存儲器延遲的參數(shù):訪問時間,存儲周期訪問時間:從發(fā)出讀請求到返回被請求數(shù)據(jù)之間的時間。存儲周期:連續(xù)兩次存儲器請求所需要的最小時間間隔。注:通常,由于必須在地址線穩(wěn)定后才能進行下一次存儲器訪問,所以存儲周期大于訪問時間。地址線復用(多路復用):在行選通(RAS)方式下傳送前一半地址,而后在列選通(CAS)方式下傳送后一半地址。5.6主存3.DRAM(存儲器)與SRAM(Cache)DRAM:DynamicRandomAccessMemory,即動態(tài)隨機訪問存儲器,最為常見的系統(tǒng)內(nèi)存。DRAM只能將數(shù)據(jù)保持很短的時間。為了保持數(shù)據(jù),DRAM使用電容存儲,所以必須隔一段時間刷新(refresh)一次,如果存儲單元沒有被刷新,存儲的信息就會丟失。(關機就會丟失數(shù)據(jù))SRAM:StaticRandomAccessMemory,靜態(tài)隨機訪問存儲器,它是一種具有靜止存取功能的內(nèi)存,速度快,不需要刷新電路即能保存它內(nèi)部存儲的數(shù)據(jù)。但集成度低,功耗較大,相同的容量體積較大,而且價格較高,少量用于關鍵性系統(tǒng)以提高效率。容量:4~8:1存儲周期:8~16:1價格:1:8~165.6主存年份芯片容量行選通(RAS)最慢的DRAM最快的DRAM列選通
(CAS)周期時間19801983198619891992199564K位256K位1M位4M位16M位64M位180ns150ns120ns100ns80ns65ns150ns120ns100ns80ns60ns50ns75ns50ns25ns20ns15ns10ns250ns220ns190ns165ns120ns90ns4.Amdahl經(jīng)驗規(guī)則
為了保持系統(tǒng)平衡,存儲容量和性能應隨CPU速度的提高而線性增加。5.各代DRAM的典型時間參數(shù):5.6.2提高主存性能的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司車輛借用管理協(xié)議
- 2025年企業(yè)并購雙方股權(quán)策劃合同樣本
- 2025年產(chǎn)品銷售代表合同范本
- 2025年多功能會議室租賃合同樣本
- 2025年企業(yè)人力資源部門員工雇傭協(xié)議
- 2025年個人租賃協(xié)議范本
- 2025年熱固化油墨項目規(guī)劃申請報告
- 2025年應用軟件設計服務項目立項申請報告模范
- 2025年電力系統(tǒng)安全策劃生產(chǎn)責任協(xié)議書
- 2025年金融機構(gòu)信用借貸合同范文
- 配套課件-前廳客房服務與管理
- AQ6111-2023個體防護裝備安全管理規(guī)范
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- 中國紅十字會救護員培訓理論考試試題及答案
- 兒童體液平衡及液體療法課件
- 2023版押品考試題庫必考點含答案
- 最新《工會基礎知識》試題庫及答案1000題【完美打印版】
- 農(nóng)光互補光伏電站項目土建主要施工方案
- 涂料化學 氟硅樹脂
- 叉形件加工設計與分析論文
- 慢性阻塞性肺疾病急性加重期的護理(共3頁)
評論
0/150
提交評論