第6章存儲系統(tǒng)設(shè)計(jì)_第1頁
第6章存儲系統(tǒng)設(shè)計(jì)_第2頁
第6章存儲系統(tǒng)設(shè)計(jì)_第3頁
第6章存儲系統(tǒng)設(shè)計(jì)_第4頁
第6章存儲系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩231頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章

存儲系統(tǒng)設(shè)計(jì)計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)2第6章存儲系統(tǒng)設(shè)計(jì)6.1存儲系統(tǒng)的組成6.2并行存儲系統(tǒng)6.3Cache存儲系統(tǒng)6.4虛擬存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)36.1存儲系統(tǒng)組成存儲器是計(jì)算機(jī)系統(tǒng)的核心部件之一,其容量、速度和價(jià)格是必須要考慮的因素。主要目標(biāo): 在盡可能低的價(jià)格下,提供盡可能高的速度及盡可能大的存儲容量。

計(jì)算機(jī)組成與體系結(jié)構(gòu)高速度、低價(jià)格、大容量!46.1存儲系統(tǒng)組成

存儲系統(tǒng)是由幾個(gè)

容量、速度和價(jià)格

各不相同的存儲器構(gòu)成的系統(tǒng)。計(jì)算機(jī)組成與體系結(jié)構(gòu)56.1存儲系統(tǒng)組成6.1.1存儲器分類和存儲系統(tǒng)定義早期馮·諾依曼型計(jì)算機(jī)硬件系統(tǒng)以運(yùn)算器為中心,而現(xiàn)代計(jì)算機(jī)硬件系統(tǒng)都以存儲器為中心。在計(jì)算機(jī)運(yùn)行過程中,存儲器是各種信息存儲和交換的中心,存放指令、操作數(shù)和運(yùn)算結(jié)果。計(jì)算機(jī)組成與體系結(jié)構(gòu)66.1存儲系統(tǒng)組成存儲器分類在一臺計(jì)算機(jī)中,通常有多種存儲器。按用途分:主存儲器、Cache、通用寄存器、磁盤存儲器、磁帶存儲器、光盤存儲器等。材料工藝:ECL、TTL、MOS、磁表面、激光、RAM、SRAM、DRAM等。訪問方式:直接譯碼、先進(jìn)先出、隨機(jī)訪問、相聯(lián)訪問、塊傳送、文件組等。計(jì)算機(jī)組成與體系結(jié)構(gòu)76.1存儲系統(tǒng)組成存儲器主存儲器:存放正在運(yùn)行的程序與數(shù)據(jù)。輔助存儲器:存放等待運(yùn)行的程序與數(shù)據(jù)。通用寄存器組:存放最經(jīng)常用到的數(shù)據(jù)。計(jì)算機(jī)組成與體系結(jié)構(gòu)存儲系統(tǒng)和存儲器是兩個(gè)不同的概念!6.1存儲系統(tǒng)組成但上述要求是相互矛盾的容量越大,因延遲增加而使速度降低容量越大,存儲體總體價(jià)格就越高速度越高,價(jià)格將越高計(jì)算機(jī)組成與體系結(jié)構(gòu)81.容量、速度和價(jià)格的矛盾大容量希望能放得下所有軟件高速度盡量和CPU的速度相匹配低價(jià)格系統(tǒng)價(jià)格中較小而合理的比例96.1存儲系統(tǒng)組成2.容量、速度和價(jià)格分析容量SM=W*l*m,其中:W——存儲體的字長(位或字節(jié))(設(shè)計(jì))l——每個(gè)存儲體的字?jǐn)?shù)(工藝)m——并行工作的存儲體個(gè)數(shù)(設(shè)計(jì))可以看出,它即與存儲器器件有關(guān),也與設(shè)計(jì)有關(guān)。計(jì)算機(jī)組成與體系結(jié)構(gòu)W位地址寄存器字?jǐn)?shù)讀出寄存器單體單字存儲器106.1存儲系統(tǒng)組成速度可以用訪問時(shí)間Ta、存儲周期Tm和頻寬Bm表示。Ta:存儲器從接到訪存讀申請,到數(shù)據(jù)被讀到數(shù)據(jù)總線上所需要的時(shí)間,它是啟動一個(gè)訪存讀操作后,CPU必須等待的時(shí)間,是確定CPU與存儲器時(shí)間關(guān)系的一個(gè)重要指標(biāo)。計(jì)算機(jī)組成與體系結(jié)構(gòu)116.1存儲系統(tǒng)組成速度(續(xù))Tm:連續(xù)啟動一個(gè)存儲體所需要的時(shí)間,即存儲器進(jìn)行一次存/取所需要的時(shí)間,一般它總比TA大。Bm:表示存儲器可以提供的數(shù)據(jù)傳輸率,用每秒鐘傳送的位數(shù)或字節(jié)數(shù)表示。分為最大(極限)頻寬和實(shí)際頻寬。最大(極限)頻寬是存儲器連續(xù)訪問時(shí)所能提供的頻寬。計(jì)算機(jī)組成與體系結(jié)構(gòu)126.1存儲系統(tǒng)組成速度(續(xù))單體存儲器:

Bm=W/Tm多體存儲器:

Bm=m×W/Tm可以看出:它即與存儲器器件有關(guān),也與設(shè)計(jì)有關(guān)。計(jì)算機(jī)組成與體系結(jié)構(gòu)136.1存儲系統(tǒng)組成價(jià)格可以用總價(jià)格C或位價(jià)格c表示價(jià)格c=C/SM=C/(W×l×m) 可以看出:它即與存儲器器件有關(guān),也與設(shè)計(jì)有關(guān)。計(jì)算機(jī)組成與體系結(jié)構(gòu)146.1存儲系統(tǒng)組成

3.解決矛盾的措施為滿足系統(tǒng)對存儲器的性能要求,可以采取以下措施:(1)改進(jìn)工藝和技術(shù),降低成本、提高速度問題:只采用一種工藝的單一存儲器無法同時(shí)滿足上述三個(gè)方面的要求。計(jì)算機(jī)組成與體系結(jié)構(gòu)156.1存儲系統(tǒng)組成(2)構(gòu)成并行主存系統(tǒng)采用單一存儲器,但在組成上引入并行和重疊技術(shù),構(gòu)成并行主存系統(tǒng),即多體交叉存儲器,在位價(jià)格基本不變的情況下,使主存的頻寬得到較大的提高。問題:提高頻寬的能力是有限的m越多,負(fù)載變重,延時(shí)增加系統(tǒng)效率不是很高,因?yàn)橹噶畹淖x取不是順序的,轉(zhuǎn)移指令使存儲系統(tǒng)效率下降。計(jì)算機(jī)組成與體系結(jié)構(gòu)166.1存儲系統(tǒng)組成(2)構(gòu)成并行主存系統(tǒng)(續(xù))計(jì)算機(jī)組成與體系結(jié)構(gòu)CPUIOP總線控制M0M1M2M3地址寄存器0地址寄存器1地址寄存器2地址寄存器3主存控制部件多體單字交叉存儲器176.1存儲系統(tǒng)組成(3)使用存儲器系統(tǒng)用不同工藝的多種存儲器組成存儲器系統(tǒng),使信息以各種方式分布于不同的存儲器上。例如:至少有主存和輔存兩種存儲器主存:價(jià)格高、速度快、容量小,存放程序的活躍部分。輔存:價(jià)格低、速度慢、容量大,存放暫時(shí)不用的部分。計(jì)算機(jī)組成與體系結(jié)構(gòu)186.1存儲系統(tǒng)組成(3)使用存儲器系統(tǒng)(續(xù))問題:主存速度仍不能滿足CPU的要求例如,在上世紀(jì)70年代,合理成本、足夠容量的主存的存儲周期比CPU節(jié)拍寬度大一個(gè)數(shù)量級(4)存儲層次(存儲體系)計(jì)算機(jī)組成與體系結(jié)構(gòu)196.1存儲系統(tǒng)組成為了解決單一種類存儲器的價(jià)格、容量及速度之間的矛盾,計(jì)算機(jī)系統(tǒng)的存儲系統(tǒng)總是利用多種不同的存儲器構(gòu)成。如何組織這些不同的存儲器呢?存儲層次!計(jì)算機(jī)組成與體系結(jié)構(gòu)206.1存儲系統(tǒng)組成存儲系統(tǒng)定義:兩個(gè)或兩個(gè)以上速度、容量和價(jià)格各不相同的存儲器用硬件、軟件、或軟件與硬件相結(jié)合的方法連接起來成為一個(gè)存儲系統(tǒng)。對應(yīng)用程序員透明。從應(yīng)用程序員看,它是一個(gè)存儲器。這個(gè)存儲器的速度接近速度最快的那個(gè)存儲器,存儲容量與容量最大的那個(gè)存儲器相等,單位容量的價(jià)格接近最便宜的那個(gè)存儲器。計(jì)算機(jī)組成與體系結(jié)構(gòu)216.1存儲系統(tǒng)組成

多級存儲層次

兩個(gè)典型分支:虛擬存儲系統(tǒng)Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)226.1存儲系統(tǒng)組成虛擬存儲系統(tǒng)解決容量問題主存-輔存存儲層次(二級存儲層次)主存輔存輔助軟硬件從整體上看,速度接近主存,容量是輔存的。主存-輔存存儲層次計(jì)算機(jī)組成與體系結(jié)構(gòu)236.1存儲系統(tǒng)組成解決容量問題(續(xù))利用了I/O處理可與CPU并行操作的能力;借助操作系統(tǒng)(OS)、硬件等實(shí)現(xiàn)地址變換和程序定位,實(shí)現(xiàn)主存和輔存之間的數(shù)據(jù)傳送,使主存、輔存構(gòu)成了一個(gè)完整的整體。對應(yīng)用程序員是透明;主存-輔存存儲層次的不斷發(fā)展和完善,就形成了虛擬存儲器。計(jì)算機(jī)組成與體系結(jié)構(gòu)246.1存儲系統(tǒng)組成Cache存儲系統(tǒng)解決速度問題Cache-主存存儲層次(二級存儲層次)高速緩存Cache主存輔助硬件從CPU看,速度是Cache的,容量是主存的。CPUCache-主存存儲層次計(jì)算機(jī)組成與體系結(jié)構(gòu)256.1存儲系統(tǒng)組成解決速度問題(續(xù))在CPU和主存之間增加一級速度快、容量小、位價(jià)格較高的高速緩沖存儲器(Cache)借助于輔助硬件實(shí)現(xiàn)Cache和主存之間的傳送,使Cache和主存構(gòu)成一個(gè)整體從CPU看,速度接近Cache的速度,容量是主存的容量,每位價(jià)格接近于主存的價(jià)格。對應(yīng)用程序員和系統(tǒng)程序員都是透明的。計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成Cache-主存層次,又稱Cache存儲系統(tǒng),由Cache和主存儲器構(gòu)成。其主要目的是提高存儲器速度,彌補(bǔ)主存速度的不足。主存-輔存層次,又稱虛擬存儲系統(tǒng),由主存儲器和聯(lián)機(jī)的輔存(磁盤存儲器)構(gòu)成。其主要目的是擴(kuò)大存儲器容量,彌補(bǔ)主存容量的不足。計(jì)算機(jī)組成與體系結(jié)構(gòu)266.1存儲系統(tǒng)組成多級存儲層次

二級存儲層次可以擴(kuò)展到多級存儲層次計(jì)算機(jī)組成與體系結(jié)構(gòu)27M1(T1,S1,C1)M2(T2,S2,C2)Mn(Tn,Sn,Cn)CPU多級存儲層次286.1存儲系統(tǒng)組成多級存儲層次(續(xù))從CPU看是一個(gè)整體,速度接近于M1,容量是Mn的,位價(jià)格接近于MnT≈min(T1,T2,…,Tn),用存儲周期表示

S≈max(S1,S2,…,Sn),用MB或GB表示

C≈min(C1,C2,…,Cn),用每位的價(jià)格表示計(jì)算機(jī)組成與體系結(jié)構(gòu)296.1存儲系統(tǒng)組成6.1.2存儲系統(tǒng)層次結(jié)構(gòu)計(jì)算機(jī)中多個(gè)層次的存儲器,由通用寄存器堆→指令或數(shù)據(jù)緩沖器→Cache→主存儲器→聯(lián)機(jī)外部存儲器→脫機(jī)外部存儲器組成。計(jì)算機(jī)組成與體系結(jié)構(gòu)306.1存儲系統(tǒng)組成計(jì)算機(jī)中的存儲層次結(jié)構(gòu)訪問速度越來越快每位價(jià)格越來越便宜存儲容量越來越大CPU

內(nèi)部通用寄存器堆指令和數(shù)據(jù)緩沖Cache(SRAM)主存儲器(DRAM)聯(lián)機(jī)外部存儲器脫機(jī)外部存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)31各級存儲器的主要性能特性(1/2)存儲器層次通用寄存器緩沖棧Cache存儲周期<10ns<10ns10-60ns存儲容量<512B<512B8K-2MB價(jià)格$c/KB1200803.2訪問方式直接譯碼先進(jìn)先出相聯(lián)訪問材料工藝ECLECLSRAM分配管理編譯器分配硬件調(diào)度硬件調(diào)度帶寬MB/s400-8000400-1200200-8006.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)32各級存儲器的主要性能特性(2/2)存儲器層次磁盤存儲器主存儲器存儲周期10-30ms60-300ns存儲容量1G-1TB32M-1GB價(jià)格$c/KB0.010.36訪問方式塊訪問隨機(jī)訪問材料工藝磁表面DRAM分配管理系統(tǒng)/用戶操作系統(tǒng)帶寬MB/s10-10080-160脫機(jī)存儲器2-20min5G-10TB0.0001文件組磁、光等系統(tǒng)/用戶0.2-0.6336.1存儲系統(tǒng)組成多級存儲層次CPU與主存儲器的速度差距越來越大1955年,第一臺大型機(jī)IBM704,CPU和主存儲器的工作周期均為12微秒,目前,CPU的工作速度提高了4個(gè)數(shù)量級以上,主存儲器的工作速度僅提高兩個(gè)數(shù)量級。今后,CPU與主存儲器的速度差距會更大。

研究存儲系統(tǒng)的目的就是要找出解決這一問題的辦法。計(jì)算機(jī)組成與體系結(jié)構(gòu)346.1存儲系統(tǒng)組成多級存儲層次的兩個(gè)原則:原則1:一致性原則同一信息可以處于不同層次的存儲器中。同一信息在不同層次存儲器中的值應(yīng)保持相同。原則2:包含原則高層次存儲器中的信息包含在低層次存儲器中的信息中,即:

信息高層∈信息低層計(jì)算機(jī)組成與體系結(jié)構(gòu)356.1存儲系統(tǒng)組成不同存儲層次之間的數(shù)據(jù)傳送把哪些數(shù)據(jù)從Mn傳送到M1?把數(shù)據(jù)放在M1的什么地方?如果能預(yù)判出下步要訪問的程序塊,并提前將它們?nèi)〉組1中,就可以使存儲系統(tǒng)有效工作。能否預(yù)判?程序局部性=預(yù)判的基礎(chǔ)(后面6.3.1定義)計(jì)算機(jī)組成與體系結(jié)構(gòu)366.1存儲系統(tǒng)組成6.1.3存儲體系的性能參數(shù)有以下三個(gè):每位價(jià)格c命中率H等效訪問時(shí)間TA下面以二級存儲層次為例來分析計(jì)算機(jī)組成與體系結(jié)構(gòu)376.1存儲系統(tǒng)組成二級存儲層次C,SM,TAC1,SM1,TA1C2,SM2,TA2M1M2計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)38每位價(jià)格c為使c接近于c2,應(yīng)使SM1<<SM26.1存儲系統(tǒng)組成存儲系統(tǒng)的容量要求:

存儲系統(tǒng)的容量等于M2存儲器的容量。

提供盡可能大、能隨機(jī)訪問的地址空間。方法有兩種:

只對M2存儲器進(jìn)行編址,M1存儲器只在內(nèi)部編址。

另外設(shè)計(jì)一個(gè)容量很大的邏輯地址空間。計(jì)算機(jī)組成與體系結(jié)構(gòu)396.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)40命中率HCPU產(chǎn)生的邏輯地址能在M1中訪問到的概率。命中率H可由實(shí)驗(yàn)或模擬方法獲得。若邏輯地址流在M1中訪問到的次數(shù)為R1,在M2中的訪問次數(shù)為R2,則:顯然,不命中率(失效率)=1-H6.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)41等效訪問時(shí)間TA假設(shè)M1訪問和M2訪問是同時(shí)啟動假設(shè)M1訪問和M2訪問不是同時(shí)啟動希望TA接近T1為好。訪問效率e=T1/TA,越接近1越好。

6.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)42二級存儲層次的訪問效率存儲系統(tǒng)的訪問效率主要與命中率和兩級存儲器的速度之比有關(guān)。速度差不要太大命中率越高越好影響命中率的因素很多,例如:程序的地址流地址預(yù)判算法M1的容量等6.1存儲系統(tǒng)組成■例6-1:假設(shè)某計(jì)算機(jī)的存儲系統(tǒng)由Cache和主存組成。某程序執(zhí)行過程中訪存1000次,其中訪問Cache失效(未命中)50次,則Cache的命中率是多少?解:程序訪存次數(shù)N1+N2=1000次,其中訪問Cache的次數(shù)N1為訪存次數(shù)減去失效次數(shù)。H==95%計(jì)算機(jī)組成與體系結(jié)構(gòu)436.1存儲系統(tǒng)組成■例6-2:CPU執(zhí)行一段程序時(shí),Cache完成存取的次數(shù)為5000次,主存完成存取的次數(shù)為200次。已知Cache存儲周期TC為40ns,主存存取周期TM為160ns。分別求:(1)Cache的命中率H;(2)等效訪問時(shí)間TA;(3)Cache-主存系統(tǒng)的訪問效率e。解:(1)H=≈96%(2)TA=H×T1+(1-H)×T2=0.96×40ns+(1-0.96)×160ns=44.8ns(3)e==40/44.8=89.3%計(jì)算機(jī)組成與體系結(jié)構(gòu)44

6.1存儲系統(tǒng)組成■例6-3:假設(shè)T2=5T1,在命中率H為0.9和0.99兩種情況下,分別計(jì)算存儲系統(tǒng)的訪問效率。 解: 當(dāng)H=0.9時(shí),e1=1/(0.9+5(1

0.9))=0.72 當(dāng)H=0.99時(shí),e2=1/(0.99+5(1

0.99))=0.96計(jì)算機(jī)組成與體系結(jié)構(gòu)456.1存儲系統(tǒng)組成提高存儲系統(tǒng)速度的兩條途徑:一是提高命中率H。

二是兩個(gè)存儲器的速度不要相差太大。

其中第二條有時(shí)做不到(如虛擬存儲系統(tǒng)),主要依靠提高命中率。計(jì)算機(jī)組成與體系結(jié)構(gòu)466.1存儲系統(tǒng)組成計(jì)算機(jī)組成與體系結(jié)構(gòu)47■例6-4:在虛擬存儲系統(tǒng)中,兩級存儲器的速度相差特別懸殊T2=105T1。如果要使訪問效率e=0.9,問需要有多高的命中率? 解:根據(jù)公式可得

H=0.999999能獲得如此高的命中率嗎?6.1存儲系統(tǒng)組成提高命中率的方法:程序局部性原理不命中時(shí),將M2中相鄰的幾個(gè)單元中的數(shù)據(jù)一起取出送入M1。48預(yù)取后的命中率:其中:H–原來的命中率n–數(shù)據(jù)塊大小×數(shù)據(jù)重復(fù)使用次數(shù)不命中率降低n倍計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成證明:

采用預(yù)取技術(shù)之后,不命中率降低n倍:

也可以采用另外一種證明方法:在原有命中率計(jì)算公式中,把訪問次數(shù)擴(kuò)大到n倍,這時(shí),由于采用了預(yù)取技術(shù),命中次數(shù)為:nN1+(n

1)N2,不命中次數(shù)仍為N2,因此新的命中率為:49計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成例6-5:在一個(gè)Cache存儲系統(tǒng)中,當(dāng)Cache的塊大小為一個(gè)字時(shí),命中率H=0.8;假設(shè)數(shù)據(jù)的重復(fù)利用率為5,計(jì)算塊大小為4個(gè)字時(shí),Cache存儲系統(tǒng)的命中率是多少?假設(shè)T2=5T1,分別計(jì)算訪問效率。50計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成例6-5:解n=4

5=20,采用預(yù)取技術(shù)后,命中率提高到:Cache塊為1個(gè)字大時(shí),H=0.8,訪問效率為:Cache塊為4個(gè)字大時(shí),H=0.99,訪問效率為:51計(jì)算機(jī)組成與體系結(jié)構(gòu)6.1存儲系統(tǒng)組成例6-6:在一個(gè)虛擬存儲系統(tǒng)中,T2=105T1,原來的命中率只有0.8,如果訪問磁盤存儲器的數(shù)據(jù)塊大小為4K字,并要求訪問效率不低于0.9,計(jì)算數(shù)據(jù)在主存儲器中的重復(fù)利用率至少為多少?解:假設(shè)數(shù)據(jù)在主存儲器中的重復(fù)利用率為m,則:解方程組得m=44,即數(shù)據(jù)在主存儲器中的重復(fù)利用率至少為44次。52計(jì)算機(jī)組成與體系結(jié)構(gòu)53第6章存儲系統(tǒng)設(shè)計(jì)6.1存儲系統(tǒng)的組成6.2并行存儲系統(tǒng)6.3Cache存儲系統(tǒng)6.4虛擬存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)546.2并行存儲系統(tǒng)常規(guī)的主存是單體單字存儲器,只包含一個(gè)存儲體。在高速的計(jì)算機(jī)中,普遍采用并行存儲系統(tǒng),即在一個(gè)存取周期內(nèi)可以并行讀出多個(gè)字,依靠整體信息吞吐率的提高,以解決CPU與主存之間的速度匹配問題。計(jì)算機(jī)組成與體系結(jié)構(gòu)556.2并行存儲系統(tǒng)6.2.1交叉訪問存儲器特點(diǎn):在一個(gè)存儲周期內(nèi)可以訪問到多個(gè)數(shù)據(jù),從而提高主存頻寬。類型:單體多字多體單字交叉存儲器多體多字交叉存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)566.2并行存儲系統(tǒng)單體單字存儲器有一個(gè)字長為W位的存儲器,一次可以訪問一個(gè)存儲器字。若存儲器字長與CPU字長相等,其最大頻寬為:BM=W/TMW位地址寄存器字?jǐn)?shù)讀出寄存器單體單字存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)576.2并行存儲系統(tǒng)提高存儲系統(tǒng)性能的途徑:并行要提高頻寬,只有設(shè)法提高存儲器字長W才行。有三種方案:單體多字存儲器多體單字交叉存儲器多體多字交叉存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)586.2并行存儲系統(tǒng)W位W位W位W位字?jǐn)?shù)/4地址寄存器單字長寄存器W位單體多字存儲器單體多字存儲器增加存儲器的字長(m倍),這樣在一個(gè)主存周期內(nèi)就可以讀出多個(gè)CPU字。其最大頻寬為:BM=m×W/TM計(jì)算機(jī)組成與體系結(jié)構(gòu)缺點(diǎn):需要位數(shù)足夠多的寄存器;多次訪問總線。596.2并行存儲系統(tǒng)多體單字存儲器由多個(gè)容量較小、字長較短的相同存儲器芯片組成。每個(gè)芯片都有自己的地址譯碼、讀/寫驅(qū)動等外圍電路。每個(gè)存儲體字長都是一個(gè)CPU字的寬度,讓多個(gè)(m個(gè))字長為W位的存儲體并行工作,一次可以訪問多個(gè)存儲器字。其最大頻寬為:BM=m×W/TM計(jì)算機(jī)組成與體系結(jié)構(gòu)606.2并行存儲系統(tǒng)CPUIOP總線控制M0M1M2M3地址寄存器0地址寄存器1地址寄存器2地址寄存器3主存控制部件多體單字交叉存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)616.2并行存儲系統(tǒng)優(yōu)點(diǎn):實(shí)際頻寬比單體多字方式高,但總價(jià)格和器件的數(shù)量相差不多。并行訪問不同存儲體。缺點(diǎn):訪問沖突大

取指沖突讀操作數(shù)沖突寫數(shù)據(jù)沖突讀寫沖突計(jì)算機(jī)組成與體系結(jié)構(gòu)626.2并行存儲系統(tǒng)為減少分體沖突,CPU字在主存中可按模m交叉編址。分為:高位交叉實(shí)現(xiàn)方法:用地址碼的高位部分區(qū)分存儲體號主要目的:擴(kuò)大存儲器容量低位交叉實(shí)現(xiàn)方法:用地址碼的低位部分區(qū)分存儲體號主要目的:提高存儲器訪問速度計(jì)算機(jī)組成與體系結(jié)構(gòu)636.2并行存儲系統(tǒng)MBR存儲體0MARMBR存儲體n-1MARMBR存儲體1MAR……譯碼器(高位)存儲器地址寄存器(低位)……高位交叉訪問存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)646.2并行存儲系統(tǒng)低位交叉訪問存儲器MBR存儲體0MARMBR存儲體n-1MARMBR存儲體1MAR……存儲器地址寄存器(高位)譯碼器(低位)……計(jì)算機(jī)組成與體系結(jié)構(gòu)6.2并行存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)65891011121314150123456724……3116…19…2332……3940……4748……5556……63主存儲器數(shù)據(jù)寄存器體內(nèi)地址(3位)模塊地址(3位)低位交叉訪問存儲器-8個(gè)存儲體666.2并行存儲系統(tǒng)低位交叉訪問存儲器計(jì)算機(jī)組成與體系結(jié)構(gòu)同時(shí)給出多個(gè)地址,同時(shí)訪問不同存儲體;分時(shí)使用總線。適合流水線處理。676.2并行存儲系統(tǒng)多體多字存儲器將多體單字存取與單體多字存取結(jié)合,進(jìn)一步提高了頻寬。將上述能并行讀出多個(gè)CPU字的主存系統(tǒng)稱為并行存儲系統(tǒng)。計(jì)算機(jī)組成與體系結(jié)構(gòu)686.2并行存儲系統(tǒng)

6.2.2雙端口存儲器■雙口RAM是指同一個(gè)存儲器具有兩組相互獨(dú)立的讀寫控制電路,是一種高速工作的存儲器。它有兩個(gè)獨(dú)立的端口,分別具有各自的地址線、數(shù)據(jù)線和控制線,可以對存儲器中任何位置上的數(shù)據(jù)進(jìn)行獨(dú)立的存取操作。

計(jì)算機(jī)組成與體系結(jié)構(gòu)696.2并行存儲系統(tǒng)

■雙口RAM的核心部分是用于數(shù)據(jù)存儲的存儲器陣列,可為左、右兩個(gè)端口所共用。當(dāng)兩個(gè)端口的地址不相同時(shí),在兩個(gè)端口上進(jìn)行讀寫操作,一定不會發(fā)生沖突。當(dāng)任一端口被選中驅(qū)動時(shí),就可對整個(gè)存儲器進(jìn)行存取,每一個(gè)端口都有自己的片選控制和輸出驅(qū)動控制。計(jì)算機(jī)組成與體系結(jié)構(gòu)706.2并行存儲系統(tǒng)

■當(dāng)兩個(gè)端口同時(shí)存取存儲器的同一存儲單元時(shí),就會因數(shù)據(jù)沖突造成數(shù)據(jù)存儲或讀取錯(cuò)誤。兩個(gè)端口對同一主存操作有4種情況: ①兩個(gè)端口不同時(shí)對同一地址單元存取數(shù)據(jù);

②兩個(gè)端口同時(shí)對同一地址單元讀出數(shù)據(jù); ③兩個(gè)端口同時(shí)對同一地址單元寫入數(shù)據(jù); ④兩個(gè)端口同時(shí)對同一地址單元,一個(gè)寫入數(shù)據(jù),另一個(gè)讀出數(shù)據(jù)。

計(jì)算機(jī)組成與體系結(jié)構(gòu)716.2并行存儲系統(tǒng)

■在第①、第②種情況時(shí),兩個(gè)端口的存取不會出現(xiàn)錯(cuò)誤,第③種情況會出現(xiàn)寫入錯(cuò)誤,第④種情況會出現(xiàn)讀出錯(cuò)誤。為避免第③、④種錯(cuò)誤情況的出現(xiàn),雙口RAM設(shè)計(jì)有硬件“

”功能輸出,其工作原理如下:當(dāng)左、右端口不對同一地址單元存取時(shí),=H,=H,可正常存儲。計(jì)算機(jī)組成與體系結(jié)構(gòu)6.2并行存儲系統(tǒng)■當(dāng)左、右端口對同一地址單元存取時(shí),有一個(gè)端口的=L,禁止數(shù)據(jù)的存取。此時(shí),兩個(gè)端口中,哪個(gè)存取請求信號出現(xiàn)在前,則其對應(yīng)的=H,允許存取;哪個(gè)存取請求信號出現(xiàn)在后,則其對應(yīng)的=L,禁止其寫入數(shù)據(jù)。計(jì)算機(jī)組成與體系結(jié)構(gòu)726.2并行存儲系統(tǒng)■需要注意的是,兩端口間的存取請求信號出現(xiàn)時(shí)間要相差在5ns以上,否則仲裁邏輯無法判定哪一個(gè)端口的存取請求信號在前;在無法判定哪個(gè)端口先出現(xiàn)存取請求信號時(shí),兩根控制線不會同時(shí)為低電平。這樣,就能保證對應(yīng)于=H的端口能進(jìn)行正常存取,對應(yīng)于=L的端口不存取,從而避免雙端口存取出現(xiàn)錯(cuò)誤。計(jì)算機(jī)組成與體系結(jié)構(gòu)7374第6章存儲系統(tǒng)設(shè)計(jì)6.1存儲系統(tǒng)的組成6.2并行存儲系統(tǒng)6.3Cache存儲系統(tǒng)6.4虛擬存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)756.3Cache存儲系統(tǒng)高速緩沖存儲器(Cache)與主存一起構(gòu)成Cache存儲系統(tǒng)。在Cache存儲系統(tǒng)中,Cache塊的大小一般只有十幾到幾十字節(jié),Cache存儲器一旦發(fā)生塊失效時(shí),程序是不能切換的,CPU此時(shí)只能等待著從主存中將所需的塊調(diào)入Cache。所以,Cache存儲系統(tǒng)的地址映像和變換、替換算法都全部采用硬件來實(shí)現(xiàn)。計(jì)算機(jī)組成與體系結(jié)構(gòu)766.3Cache存儲系統(tǒng)6.3.1程序局部性定義:程序在執(zhí)行時(shí)所用到的指令和數(shù)據(jù)的地址分布不是隨機(jī)的,而是相對簇聚的。它包括時(shí)間局部性和空間局部性。時(shí)間局部性最近的未來要用到的信息可能就是當(dāng)前正在使用的信息——這是由程序的循環(huán)造成的??臻g局部性最近的未來要用到的信息可能就是當(dāng)前信息的相鄰信息——這是由程序的順序執(zhí)行造成的。計(jì)算機(jī)組成與體系結(jié)構(gòu)776.3Cache存儲系統(tǒng)基于局部性,可以得出如下結(jié)論:M1不必存放整個(gè)程序,只需存放近期使用過的塊或頁即可(時(shí)間局部性)。調(diào)入時(shí),一并把數(shù)據(jù)所在的塊或頁一起調(diào)入(空間局部性)。預(yù)判的準(zhǔn)確性是存儲層次設(shè)計(jì)好壞的主要標(biāo)志,很大程度上,取決于所使用的算法和地址映像與變換方式。計(jì)算機(jī)組成與體系結(jié)構(gòu)6.3Cache存儲系統(tǒng)6.3.2高速緩沖存儲器高速緩沖存儲器(Cache)是一種小容量存儲器,由快速的SRAM組成,直接制作在CPU芯片內(nèi),訪問速度可以與CPU的速度相匹配。Cache用來存放當(dāng)前最急需處理的程序和數(shù)據(jù)。計(jì)算機(jī)組成與體系結(jié)構(gòu)786.3Cache存儲系統(tǒng)CPU-主存瓶頸高速計(jì)算機(jī)的性能通常受到主存帶寬和響應(yīng)時(shí)間的限制。響應(yīng)時(shí)間(Latency):一次訪存所需要的時(shí)間。

主存訪存時(shí)間>>處理器機(jī)器周期帶寬(bandwidth):單位時(shí)間內(nèi)的訪存次數(shù)。

假設(shè)每條指令需要一個(gè)機(jī)器周期,一條指令需要訪問主存m次,意味著每個(gè)機(jī)器周期需要訪存m次。主存CPU計(jì)算機(jī)組成與體系結(jié)構(gòu)796.3Cache存儲系統(tǒng)解決速度問題方法:.在CPU和主存之間設(shè)置速度快、容量小的高速緩沖存儲器(Cache)。依據(jù)程序局部性原理,將未來要用到的指令或數(shù)據(jù)從低速主存預(yù)取到高速cache中,從而減少平均響應(yīng)時(shí)間,提高平均訪問速度。主存CPU主存地址數(shù)據(jù)Cache主存地址數(shù)據(jù)計(jì)算機(jī)組成與體系結(jié)構(gòu)806.3Cache存儲系統(tǒng)6.3.3Cache存儲系統(tǒng)基本結(jié)構(gòu)在Cache存儲系統(tǒng)中,Cache和主存都被分成若干個(gè)大小相等的塊,每塊由若干字節(jié)組成。由于Cache的容量遠(yuǎn)小于主存的容量,所以Cache中的塊數(shù)要遠(yuǎn)少于主存中的塊數(shù),它保存的信息只是主存中最急需執(zhí)行的若干塊的副本。如果Cache命中,把主存地址變換成Cache地址,直接訪問Cache。如果Cache失效(不命中),用主存地址訪問主存,從主存中讀出一個(gè)字送往CPU,同時(shí),把包括該字在內(nèi)的一整塊都裝入Cache。6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)82主存地址100中的數(shù)據(jù)副本主存地址101中的數(shù)據(jù)副本1004086848616數(shù)據(jù)字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)字節(jié)…………塊(block)行(line)地址標(biāo)記Cache中緩存數(shù)據(jù)的基本結(jié)構(gòu)主存CPU主存地址數(shù)據(jù)Cache主存地址數(shù)據(jù)6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)83Cache基本結(jié)構(gòu)主存/Cache

地址變換機(jī)構(gòu)Cache地址Cache替換機(jī)構(gòu)替換塊裝入塊Cache已滿Cache未滿未命中命中數(shù)據(jù)送CPU主存地址,來自CPUCacheCPU儲器主存6.3Cache存儲系統(tǒng)Cache工作原理:寫入計(jì)算機(jī)組成與體系結(jié)構(gòu)84將CPU給出的主存地址變換為Cache地址,搜索Cache在Cache中找到(命中)在Cache中未找到(未命中)寫主存(與Cache無關(guān))寫Cache,寫主存(存在一致性問題)6.3Cache存儲系統(tǒng)Cache特點(diǎn)■Cache與CPU采用相同工藝;■地址映象、變換、替換、調(diào)度等由專門的硬件實(shí)現(xiàn);■Cache靠近CPU或就放在CPU中,以減少與CPU之間的傳輸延遲;■Cache—主存之間的信息交換對所有程序員都透明;Cache訪問主存的優(yōu)先級高于其他系統(tǒng)訪問主存的優(yōu)先級;■除了Cache和CPU有直接的通路外,主存和CPU也有直接的通路,可以實(shí)現(xiàn)讀直達(dá)和寫直達(dá);計(jì)算機(jī)組成與體系結(jié)構(gòu)856.3Cache存儲系統(tǒng)6.3.4地址映像和變換Cache系統(tǒng)須解決三個(gè)問題:1.定位問題將主存中的數(shù)據(jù)裝入cache的哪個(gè)位置;如何知道主存中的數(shù)據(jù)已經(jīng)裝入cache(即是否命中);如果命中,如何形成Cache地址并訪問主存。2.替換問題若未命中或失效,需將數(shù)據(jù)從主存調(diào)入Cache;若Cache滿,則按何種算法將Cache中的數(shù)據(jù)替換出去。3.數(shù)據(jù)一致性問題如何保證Cache內(nèi)容與主存內(nèi)容的一致。計(jì)算機(jī)組成與體系結(jié)構(gòu)866.3Cache存儲系統(tǒng)地址映像是把存放在主存中的程序按照某種規(guī)則裝入到Cache中,并建立主存地址與Cache地址之間的對應(yīng)關(guān)系。地址變換是當(dāng)程序已經(jīng)裝入到Cache之后,在實(shí)際運(yùn)行過程中,把主存地址變換成Cache地址。計(jì)算機(jī)組成與體系結(jié)構(gòu)876.3Cache存儲系統(tǒng)為便于進(jìn)行地址的映象和變換,也便于替換和管理,把Cache和主存等分成相同大小的塊,這樣,Cache—主存地址映像就演變?yōu)橹鞔嬷械膲K如何與Cache中的塊相對應(yīng)。計(jì)算機(jī)組成與體系結(jié)構(gòu)886.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)89當(dāng)Cache和主存的字節(jié)數(shù),以及塊數(shù)和塊內(nèi)字節(jié)數(shù)都是2的冪次時(shí),地址好劃分。塊號b塊內(nèi)地址w塊號B塊內(nèi)地址WCache地址結(jié)構(gòu)塊0塊1塊2塊3Cache01234567891011121314151011101010011000111111101101110000110010000100000111011001010100地址124125126127主存0123456789101112131415……塊30塊31塊0塊1塊2塊3地址11111110001111000000000000010000010000001100100000000100…………主存地址結(jié)構(gòu)6.3Cache存儲系統(tǒng)可以采用的地址映像方法有很多。選擇依據(jù):地址變換的硬件要容易實(shí)現(xiàn);地址變換的速度要快;主存空間利用率要高;發(fā)生塊沖突的概率要小。塊沖突:主存中的塊要調(diào)入Cache中的某個(gè)位置,但該位置已經(jīng)被其他主存塊所占用。計(jì)算機(jī)組成與體系結(jié)構(gòu)906.3Cache存儲系統(tǒng)在Cache—主存存儲層次,典型的地址映像與變換方法主要有: 1.全相聯(lián)映像和變換 2.直接映像和變換 3.組相聯(lián)映像和變換計(jì)算機(jī)組成與體系結(jié)構(gòu)916.3Cache存儲系統(tǒng)(1)全相聯(lián)映像和變換映像規(guī)則:主存中的任意一塊都可以裝入到Cache中的任意一個(gè)塊位置。主存Cache0123塊號01234567塊號計(jì)算機(jī)組成與體系結(jié)構(gòu)926.3Cache存儲系統(tǒng)地址變換:采用相聯(lián)存儲器構(gòu)成的目錄表,以硬件方式實(shí)現(xiàn)。主存地址Cache地址Cache…塊b…m塊相聯(lián)比較=(命中)=?塊內(nèi)地址W塊號B塊內(nèi)地址w塊號b每塊一個(gè)表項(xiàng)目錄表(按內(nèi)容訪問)有效位1主存塊號…B…m行計(jì)算機(jī)組成與體系結(jié)構(gòu)93問題1:目錄表大???問題2:比較什么?6.3Cache存儲系統(tǒng)優(yōu)點(diǎn):塊沖突概率最低;Cache空間利用率最高。缺點(diǎn):需要一個(gè)相聯(lián)存儲器,其代價(jià)很高。相聯(lián)比較所花費(fèi)的時(shí)間將影響Cache的訪問速度。計(jì)算機(jī)組成與體系結(jié)構(gòu)946.3Cache存儲系統(tǒng)(2)直接映像及其變換映像規(guī)則:主存中的每一塊只能裝入到Cache內(nèi)唯一一個(gè)指定的塊位置。為便于地址變換,設(shè):Cache塊號b=(主存塊號B)mod(Cache塊數(shù))則:0=0|4mod4,1=1|5mod4,2=2|6mod4,3=3|7mod46.3Cache存儲系統(tǒng)主存Cache0123塊號01234567塊號一個(gè)Cache塊對應(yīng)多個(gè)主存塊計(jì)算機(jī)組成與體系結(jié)構(gòu)966.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)97塊內(nèi)地址主存地址Cache地址主存塊號Bk位塊內(nèi)地址塊號b區(qū)號區(qū)內(nèi)塊號意味著,只要從主存地址中取出低位部分,即可形成Cache的地址。地址變換:若Cache塊號b=(主存塊號B)mod(Cache塊數(shù)),設(shè)Cache塊數(shù)=2k,當(dāng)表示為二進(jìn)制數(shù)時(shí),Cache塊號b與主存塊號B的低k位完全相同。6.3Cache存儲系統(tǒng)地址變換:設(shè)置一個(gè)按地址訪問的區(qū)表存儲器(稱之為區(qū)號表),存放Cache中每一塊目前被主存中哪個(gè)區(qū)的對應(yīng)塊所占用。主存地址=(命中)Cache地址塊號b塊內(nèi)地址區(qū)號E(tag)塊內(nèi)地址區(qū)內(nèi)塊號(line)Cache…塊b…m塊=?每塊一個(gè)表項(xiàng)區(qū)號表(按地址訪問)有效位1區(qū)號…E…m行計(jì)算機(jī)組成與體系結(jié)構(gòu)986.3Cache存儲系統(tǒng)優(yōu)點(diǎn):硬件實(shí)現(xiàn)很簡單,不需要相聯(lián)訪問存儲器;訪問速度也比較快,實(shí)際上不做地址變換。缺點(diǎn):塊沖突概率很高。提高Cache速度的一種方法:把區(qū)號存儲器與Cache合并成一個(gè)存儲器。計(jì)算機(jī)組成與體系結(jié)構(gòu)996.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)100主存地址=(命中)Cache地址塊號b塊內(nèi)地址區(qū)號E塊內(nèi)地址區(qū)內(nèi)塊號m塊=?區(qū)號表(按地址訪問)有效位1區(qū)號…E…m行數(shù)據(jù)0…D0…數(shù)據(jù)1…D1……………數(shù)據(jù)W-1…DW-1…1/W送CPU…6.3Cache存儲系統(tǒng)(3)組相聯(lián)映像及其變換組相聯(lián)映像將主存和Cache按同樣大小劃分成塊,Cache空間等分成大小相同的組,組里有若干個(gè)塊。讓主存中的任何一塊只能被放置到Cache中唯一的一個(gè)指定組,然后用全相聯(lián)映像裝入Cache中對應(yīng)組的任何一塊位置上,即組間采取直接映像,而組內(nèi)采取全相聯(lián)映像。計(jì)算機(jī)組成與體系結(jié)構(gòu)1016.3Cache存儲系統(tǒng)組相聯(lián)實(shí)際上是全相聯(lián)映像和直接映像的折衷方案。當(dāng)組內(nèi)塊數(shù)S=Cache塊數(shù)時(shí),組相聯(lián)就變成了全相聯(lián);當(dāng)組內(nèi)塊數(shù)S=1時(shí),組相聯(lián)變成了直接映像;S越大,沖突越少,地址變換就越復(fù)雜;S越小,沖突越多,地址變換就越容易。計(jì)算機(jī)組成與體系結(jié)構(gòu)1026.3Cache存儲系統(tǒng)假設(shè)Cache空間分成Cg組(Cg=2g),每組為Gb塊(Gb=2b)。主存地址分為三部分:標(biāo)記、組號、塊內(nèi)地址;Cache地址分為三部分:組號、組內(nèi)塊號、塊內(nèi)地址。主存地址的組號由G來表示,它的寬度Cache地址的組號g是一致的。計(jì)算機(jī)組成與體系結(jié)構(gòu)1036.3Cache存儲系統(tǒng)Cache地址組內(nèi)塊號b塊內(nèi)地址組號g主存地址

組號G塊內(nèi)地址標(biāo)記T計(jì)算機(jī)組成與體系結(jié)構(gòu)1046.3Cache存儲系統(tǒng)組相聯(lián)映象方式Cache分組(set),而主存不再分組。主存除了分塊之外,還按照Cache的組(set)容量(個(gè)數(shù))分區(qū)。主存每個(gè)分區(qū)中的塊容量與Cache中的組容量相等。計(jì)算機(jī)組成與體系結(jié)構(gòu)105主存主存每個(gè)分區(qū)中的塊容量與Cache中的組容量相等。Cache01010101組set0組set1組set2組set301234567映射:Cache組號=主存區(qū)內(nèi)塊號=主存塊號mod組數(shù);組內(nèi)任意0123456789101112131415區(qū)0區(qū)1區(qū)2區(qū)30123012301230123計(jì)算機(jī)組成與體系結(jié)構(gòu)1066.3Cache存儲系統(tǒng)映像規(guī)則:主存塊到Cache組set之間采用直接映像方式(即1個(gè)主存塊只能映像到1個(gè)Cache組);在對應(yīng)的組內(nèi)部采用全相聯(lián)映像方式(即1個(gè)主存塊可以放入指定Cache組內(nèi)任何1個(gè)塊位置—組內(nèi)隨便放)。107計(jì)算機(jī)組成與體系結(jié)構(gòu)6.3Cache存儲系統(tǒng)將Cache分成G組(G=2g),每個(gè)組S塊(S=2s):將主存按同樣大小劃分成塊,并分為E個(gè)分區(qū)(E=2e):108Cache地址組內(nèi)塊號(s位)塊內(nèi)地址組號(g位)主存地址塊內(nèi)地址組號(g位)區(qū)號(e位)(或稱Tag)組內(nèi)塊數(shù)S稱為相聯(lián)度。每組有S塊的組相聯(lián)稱為S路組相聯(lián)。計(jì)算機(jī)組成與體系結(jié)構(gòu)主存0123456789101112131415主存塊9可以放入Cache組1的塊0和塊1中。Set1

=9

Mod4Cache01010101組0組1組2組301234567計(jì)算機(jī)組成與體系結(jié)構(gòu)1096.3Cache存儲系統(tǒng)地址變換:根據(jù)區(qū)內(nèi)塊號按地址訪問塊表,取得目錄表地址,按內(nèi)容(區(qū)號)訪問目錄表。塊表共G=2g行按地址訪問組內(nèi)塊號…區(qū)號…主存塊號區(qū)號組k目錄表共S=2s行按內(nèi)容訪問塊表計(jì)算機(jī)組成與體系結(jié)構(gòu)1106.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)111主存地址=(命中)Cache地址=?塊表(按地址訪問)…目錄表…塊號(s位)塊內(nèi)地址組號(g位)塊內(nèi)地址組號(g位)區(qū)號(e位)相聯(lián)比較01010101組0組1組2組3區(qū)號組內(nèi)塊號…………01234567區(qū)內(nèi)塊號=Cache組號6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)112通過“單體多字存儲器”來并行查詢。組號g6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)113012345670123Cache012345678911111111110123456789222222222201234567893301主存塊號組號全相聯(lián)2路組相聯(lián)直接相聯(lián)主存塊12可以裝入Cache中的任意位置組0中的任意位置只能是塊4位置6.3Cache存儲系統(tǒng)■例6-7:某計(jì)算機(jī)的Cache共有16塊,采用2路組相聯(lián)映像方式(即每組2塊)。每個(gè)主存塊大小為32字節(jié),按字節(jié)編址。主存129號單元所在主存塊應(yīng)裝入到的Cache組號是多少?解:由于每個(gè)主存塊大小為32字節(jié),按字節(jié)編址。根據(jù)計(jì)算主存塊號的公式,主存塊號===4,所以主存129號單元所在的主存塊應(yīng)為第4塊。若Cache共有16塊,采用2路組相聯(lián)映像方式,可分為8組。根據(jù)組相聯(lián)映像的映像關(guān)系,主存第4塊轉(zhuǎn)入Cache第4組。計(jì)算機(jī)組成與體系結(jié)構(gòu)1146.3Cache存儲系統(tǒng)優(yōu)點(diǎn):塊沖突概率比直接映像低得多;Cache空間利用率也比直接映像提高;塊失效率明顯降低。缺點(diǎn):實(shí)現(xiàn)難度和造價(jià)要比直接映像方式高。計(jì)算機(jī)組成與體系結(jié)構(gòu)1156.3Cache存儲系統(tǒng)6.3.5Cache替換算法塊失效是該塊未裝入Cache,需要從主存中調(diào)塊。塊沖突(塊爭用)是兩個(gè)以上的主存塊想要進(jìn)入Cache中同一個(gè)塊位置的現(xiàn)象。塊失效時(shí)不一定發(fā)生塊沖突,但塊沖突一定是由塊失效引起的。當(dāng)塊失效后,需要從主存將一個(gè)主存塊調(diào)入Cache,而此時(shí)Cache已滿,就會發(fā)生塊沖突。只有騰出Cache中某個(gè)塊后才能接納由主存調(diào)入的新塊,選擇Cache中哪個(gè)塊作為被替換的塊,就是替換算法要解決的問題。計(jì)算機(jī)組成與體系結(jié)構(gòu)1166.3Cache存儲系統(tǒng)在Cache存儲器中,通常容量遠(yuǎn)小于主存容量。問題:如果已滿,同時(shí)發(fā)生Cache失效,此時(shí),只有強(qiáng)制騰出Cache中的某個(gè)塊,以存放由主存調(diào)入的新塊。根據(jù)何種算法、應(yīng)將哪個(gè)Cache塊替換出去?計(jì)算機(jī)組成與體系結(jié)構(gòu)117ACBDCA裝入換出Cache主存6.3Cache存儲系統(tǒng)確定替換算法的原則:是否有高命中率是否易于實(shí)現(xiàn),硬件成本是否低計(jì)算機(jī)組成與體系結(jié)構(gòu)1186.3Cache存儲系統(tǒng)

典型替換算法:隨機(jī)(RAND)算法用隨機(jī)數(shù)產(chǎn)生器來形成被替換頁的頁號。先進(jìn)先出(FIFO)算法選最早裝入Cache的塊作為被替換的塊。近期最少使用(LFU)算法選擇近期最少訪問的塊作為被替換的塊。近期最久未使用(LRU)算法(最常用)LFU的變形;選擇近期最久未被訪問過的塊作為被替換的塊。為保持較高的命中率,絕大多數(shù)替換算法是根據(jù)程序過去的行為預(yù)測其未來的行為,從而確定被替換的塊。在Cache存儲系統(tǒng)中,實(shí)際上有可能采用的只有FIFO和LRU兩種算法。計(jì)算機(jī)組成與體系結(jié)構(gòu)1196.3Cache存儲系統(tǒng)1.隨機(jī)(RAND)算法用隨機(jī)數(shù)產(chǎn)生器來形成被替換塊的塊號。優(yōu)點(diǎn):簡單、易于實(shí)現(xiàn)缺點(diǎn):命中率很低因?yàn)闆]有利用Cache使用的“歷史”,反映不了程序的局部性計(jì)算機(jī)組成與體系結(jié)構(gòu)1206.3Cache存儲系統(tǒng)2.先進(jìn)先出(FIFO)算法選最早裝入Cache的塊作為被替換的塊。優(yōu)點(diǎn):簡單、易于實(shí)現(xiàn)在Cache塊表中為每個(gè)實(shí)塊設(shè)置一個(gè)計(jì)數(shù)器字段。調(diào)入新塊時(shí),新裝入塊的計(jì)數(shù)器為0,其他塊則加1。替換計(jì)數(shù)器值最大的那個(gè)塊缺點(diǎn):不能正確反映程序局部性。最先調(diào)入的可能是最經(jīng)常使用的計(jì)算機(jī)組成與體系結(jié)構(gòu)1216.3Cache存儲系統(tǒng)3.近期最少使用(LFU)算法LeastFrequentlyUsed選擇近期最少訪問的塊作為被替換的塊。優(yōu)點(diǎn):比較正確地反映了程序的局部性缺點(diǎn):實(shí)現(xiàn)比較困難需要為每個(gè)塊配置一個(gè)很長的計(jì)數(shù)字段計(jì)算機(jī)組成與體系結(jié)構(gòu)1226.3Cache存儲系統(tǒng)4.近期最久未使用(LRU)算法LeastRecentlyUsedLFU的變形選擇近期最久未被訪問過的塊作為被替換的塊。該算法將LFU中的“多”和“少”簡化成“有”和“無”,實(shí)現(xiàn)方便。計(jì)算機(jī)組成與體系結(jié)構(gòu)1236.3Cache存儲系統(tǒng)5.優(yōu)化替換(OPT)算法LRU和FIFO都是根據(jù)塊使用的“歷史”情況來估計(jì)未來的塊使用情況。如果能根據(jù)未來的塊使用情況,將未來的近期內(nèi)不用的塊替換出去,則命中率一定很高。OPT就是這樣一種算法。計(jì)算機(jī)組成與體系結(jié)構(gòu)1246.3Cache存儲系統(tǒng)5.優(yōu)化替換(OPT)算法(續(xù))在時(shí)刻t找出主存中每個(gè)塊將要用到的時(shí)刻ti。選擇ti-t最大的塊進(jìn)行替換。但其實(shí)現(xiàn)是不現(xiàn)實(shí)的需要讓程序運(yùn)行兩次。第一次是得到塊地址流,獲得使用信息;第二次是正常執(zhí)行。所以,該替換算法只是一個(gè)理想化的算法,可以作為評價(jià)其他替換算法的標(biāo)準(zhǔn)。計(jì)算機(jī)組成與體系結(jié)構(gòu)1256.3Cache存儲系統(tǒng)替換算法一般是通過用典型的塊地址流模擬其替換過程,再根據(jù)所得到的命中率的高低來評價(jià)其好壞的。當(dāng)然影響命中率的因素除了替換算法外,還因地址流、塊大小、Cache容量等不同而不同。計(jì)算機(jī)組成與體系結(jié)構(gòu)1266.3Cache存儲系統(tǒng)■例6-8:設(shè)有一個(gè)程序,有1至5共5塊,執(zhí)行時(shí)的塊地址流(即執(zhí)行時(shí)依次用到的程序塊的塊號)為:

2,3,2,1,5,2,4,5,3,2,5,2假設(shè)分配給這個(gè)程序的Cache存儲器共有3個(gè)塊。分析FIFO、LRU、OPT塊替換算法對這3塊Cache的使用情況,包括調(diào)入、替換和命中率等。計(jì)算機(jī)組成與體系結(jié)構(gòu)1276.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)128圖6-173種替換算法對同一塊地址流的替換過程6.3Cache存儲系統(tǒng)■例6-8補(bǔ)充:一個(gè)程序共有5個(gè)塊組成,程序執(zhí)行過程中的塊地址流如下:

1,2,1,5,4,1,3,4,2,4假設(shè)分配給這個(gè)程序的Cache存儲器共有3個(gè)塊。分析FIFO、LRU、OPT塊替換算法對這3塊Cache的使用情況,包括調(diào)入、替換和命中率等。(注:與書中塊地址流不同,帶動畫)計(jì)算機(jī)組成與體系結(jié)構(gòu)1296.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)1301215413424程序塊地址流1調(diào)入12調(diào)入12命中125調(diào)入425替換415替換413替換243替換FIFOCache塊使用情況21替換313命中41調(diào)入12調(diào)入12命中125調(diào)入145替換145命中143替換243命中LRUCache塊使用情況24替換343命中1FIFO命中率=2/10LRU命中率=4/106.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)1311215413424程序頁地址流1調(diào)入12調(diào)入12命中125調(diào)入124替換124命中324替換324命中OPT主存頁面使用情況32命中424命中3OPT命中率=5/106.3Cache存儲系統(tǒng)由上圖可見,F(xiàn)IFO的命中率最低,而LRU的命中率非常接近于OPT。命中率也與頁地址流有關(guān)。例如一個(gè)循環(huán)程序,當(dāng)所需頁數(shù)大于分配給它的頁數(shù)時(shí),無論FIFO還是LRU的命中率都明顯低于OPT?!黾永阂粋€(gè)循環(huán)程序,依次使用1、2、3、4四個(gè)塊,分配給這個(gè)程序的Cache塊數(shù)為3個(gè)。請分析FIFO、LRU、OPT塊替換算法對Cache塊的使用調(diào)度情況。計(jì)算機(jī)組成與體系結(jié)構(gòu)1326.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)1331234123412程序塊地址流1調(diào)入12調(diào)入123調(diào)入423替換413替換412替換312替換241替換FIFOCache塊使用情況34替換142替換3LRUCache塊使用情況FIFO命中率=0/10LRU命中率=0/101調(diào)入12調(diào)入123調(diào)入423替換413替換412替換312替換241替換34替換142替換36.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)1341234123412程序塊地址流1調(diào)入12調(diào)入123調(diào)入124替換124命中124命中134替換234替換OPTCache塊使用情況13命中434命中1FIFO命中率=4/106.3Cache存儲系統(tǒng)

從上述兩個(gè)例子中可以看到:FIFO命中率最低。對某種塊地址流,LRU算法也可能和FIFO算法一樣糟,例如,對于循環(huán)程序,會發(fā)生所不希望的連續(xù)塊失效——顛簸現(xiàn)象。顛簸:下次就要使用的塊本次被替換出去而發(fā)生的連續(xù)塊失效的現(xiàn)象。計(jì)算機(jī)組成與體系結(jié)構(gòu)1356.3Cache存儲系統(tǒng)命中率與塊地址流有關(guān),也與分配給該道程序的Cache塊數(shù)有關(guān)。通常,隨著Cache塊數(shù)的增加,主存塊進(jìn)入Cache的機(jī)會就越多,命中率就可能越高。問題:會提高嗎?對于LRU算法,命中率隨著Cache塊數(shù)的增加而增加對于FIFO算法,命中率可能隨著Cache塊數(shù)的增加,反而下降計(jì)算機(jī)組成與體系結(jié)構(gòu)1366.3Cache存儲系統(tǒng)堆棧型替換算法定義: 對任意一個(gè)程序的塊地址流作兩次Cache塊數(shù)分配,分別分配m個(gè)Cache塊和n個(gè)Cache塊,并且有m≤n。如果在任何時(shí)刻t,Cache塊集合Bt都滿足關(guān)系: Bt(m)

Bt(n) 則這類算法稱為堆棧型替換算法計(jì)算機(jī)組成與體系結(jié)構(gòu)1376.3Cache存儲系統(tǒng)堆棧型替換算法的命中率隨分配的Cache塊數(shù)的增加而單調(diào)上升,至少不會下降。可以證明:LRU是堆棧型替換算法OPT是堆棧型替換算法FIFO不是堆棧型替換算法計(jì)算機(jī)組成與體系結(jié)構(gòu)1386.3Cache存儲系統(tǒng)可以利用堆棧實(shí)現(xiàn)堆棧型替換算法堆棧容量:2b過程:檢查要訪問的Cache塊號是否在堆棧中?是:將該塊調(diào)置棧頂,并把該項(xiàng)上面的項(xiàng)下推一行,該項(xiàng)下面的不動否:新塊壓入堆棧,彈出棧底計(jì)算機(jī)組成與體系結(jié)構(gòu)1396.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)140…被訪問的塊近期最近訪問的塊近期最久未訪問的塊將被替換的塊43152647要訪問的塊4已在Cache時(shí)的情況6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)141…被訪問的塊近期最近訪問的塊近期最久未訪問的塊將被替換的塊4315267要訪問的塊8不在主存時(shí)的情況86.3Cache存儲系統(tǒng)結(jié)果:棧頂恒為近期最近訪問過的頁號。棧底恒為近期最久沒有訪問過的頁號。堆棧要求:有相聯(lián)比較功能全下推或部分下推功能從中間抽走一項(xiàng)的功能利用堆棧處理技術(shù)的分析模型可以對堆棧型替換算法命中率及應(yīng)該分配的Cache塊數(shù)進(jìn)行評估。計(jì)算機(jī)組成與體系結(jié)構(gòu)1426.3Cache存儲系統(tǒng)■例6-9:一個(gè)程序共有5個(gè)塊組成,程序執(zhí)行過程中的塊地址流如下:

1,2,1,5,4,1,3,4,2,4假設(shè)分配給這個(gè)程序的Cache存儲器共有3個(gè)塊。采用堆棧法的LRU塊替換算法對這3塊Cache的使用情況,包括調(diào)入、替換和命中率等。計(jì)算機(jī)組成與體系結(jié)構(gòu)1436.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)1441215413424程序塊地址流1調(diào)入21調(diào)入12命中512調(diào)入451替換145命中314替換423命中LRUCache塊使用情況24替換331命中4LRU命中率=4/106.3Cache存儲系統(tǒng)Cache替換算法與實(shí)現(xiàn)Cache通常使用組相聯(lián)或直接映像,而不采用全相聯(lián)映像。當(dāng)所要訪問的塊不在Cache中時(shí),則發(fā)生塊失效。當(dāng)所能裝入的Cache塊都已被裝滿時(shí),則出現(xiàn)塊沖突,必須進(jìn)行塊替換。替換算法:確定被替換的主存塊。計(jì)算機(jī)組成與體系結(jié)構(gòu)1456.3Cache存儲系統(tǒng)實(shí)現(xiàn):全部用硬件兩種方法:堆棧法:使用硬堆棧比較對法:使用邏輯電路、觸發(fā)器等146計(jì)算機(jī)組成與體系結(jié)構(gòu)6.3Cache存儲系統(tǒng)比較對法用觸發(fā)器(硬聯(lián)邏輯)實(shí)現(xiàn)。基本思路:讓各個(gè)塊成對組合,用一個(gè)觸發(fā)器的狀態(tài)來表示該比較對內(nèi)兩塊訪問的遠(yuǎn)近次序,再經(jīng)門電路就可找到LRU塊。計(jì)算機(jī)組成與體系結(jié)構(gòu)1476.3Cache存儲系統(tǒng)例如:有A、B、C三塊,之間的組合共有

組合:AB、AC、BC各對內(nèi)塊的訪問順序分別用兩態(tài)“觸發(fā)器”

表示。TAB為“1”:表示A比B更近被訪問過;TAB為“0”,表示B比A更近被訪問過。計(jì)算機(jī)組成與體系結(jié)構(gòu)1486.3Cache存儲系統(tǒng)如果C為最久未被訪問過的塊,三個(gè)塊的排列順序有兩種可能:

塊A、塊B、塊C

塊B、塊A、塊C根據(jù)邏輯關(guān)系,很容易寫出塊C最久沒有被訪問過表達(dá)式:計(jì)算機(jī)組成與體系結(jié)構(gòu)1496.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)150

用比較對法實(shí)現(xiàn)LRU算法

3個(gè)塊時(shí):3個(gè)觸發(fā)器,3個(gè)與門,每個(gè)與門需要兩個(gè)輸入端。6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)151

比較對觸發(fā)器數(shù)、門數(shù)、門的輸入端數(shù)與塊數(shù)的關(guān)系當(dāng)每組的塊容量為8塊或8塊以上時(shí),所要的觸發(fā)器個(gè)數(shù)及與門輸入端個(gè)數(shù)很多,硬件實(shí)現(xiàn)的成本很高。隨著每組中的塊容量增加,所需要的觸發(fā)器的個(gè)數(shù)及與門的個(gè)數(shù)成平方關(guān)系增加。6.3Cache存儲系統(tǒng)6.3.6Cache更新策略Cache-主存存儲層次對所有程序員透明Cache內(nèi)容是主存內(nèi)容的一小部分副本但Cache內(nèi)容有可能與主存內(nèi)容不一致:CPU更新(寫)了Cache而未更新主存;I/O更新了主存而未更新Cache;152計(jì)算機(jī)組成與體系結(jié)構(gòu)6.3Cache存儲系統(tǒng)1.Cache透明性分析計(jì)算機(jī)組成與體系結(jié)構(gòu)153CPUX’I/OXCache主存儲器CPUX’I/OXCache主存儲器(a)CPU寫Cache(b)I/O寫主存Cache與主存不一致的兩種情況6.3Cache存儲系統(tǒng)必須解決Cache的一致性問題解決問題的關(guān)鍵:寫Cache時(shí)如何更新主存的內(nèi)容。“寫”操作所占的比例Load指令:26%Store指令:9%“寫”在訪問Cache操作中所占的比例:9%/(26%+9%)≈25%計(jì)算機(jī)組成與體系結(jié)構(gòu)1546.3Cache存儲系統(tǒng)大概率事件優(yōu)先原則:優(yōu)化Cache讀操作Amdahl定律:不可忽視“寫”速度“寫”問題讀出標(biāo)識,確認(rèn)命中后,對Cache寫(串行操作)Cache與主存內(nèi)容的一致性問題寫策略就是要解決:何時(shí)更新主存問題計(jì)算機(jī)組成與體系結(jié)構(gòu)1556.3Cache存儲系統(tǒng)Cache一致性算法:2種寫策略寫直達(dá)法(Write-through)CPU在執(zhí)行寫操作時(shí),利用直接通路,把數(shù)據(jù)同時(shí)寫入Cache和主存寫回法(Write-Back)也稱為抵觸修改法CPU數(shù)據(jù)只寫入Cache,不寫入主存為每個(gè)Cache塊設(shè)置“修改位”僅當(dāng)替換時(shí),才把修改過的Cache塊寫回到主存計(jì)算機(jī)組成與體系結(jié)構(gòu)1566.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)157CPUCacheRAMCache控制器主存RAM主存控制器外設(shè)I/O控制器系統(tǒng)總線寫直達(dá)法:數(shù)據(jù)同時(shí)寫入Cache和主存6.3Cache存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)158CPUCacheRAMCache控制器主存RAM主存控制器外設(shè)I/O控制器系統(tǒng)總線寫回法:數(shù)據(jù)只寫入Cache,替換時(shí)才寫入主存替換時(shí)6.3Cache存儲系統(tǒng)寫直達(dá)法寫回法可靠性好于寫回法塊替換前仍存在一致性問題與主存的通信量少于寫直達(dá)法達(dá)10多倍控制復(fù)雜性比寫回法簡單硬件實(shí)現(xiàn)代價(jià)比寫直達(dá)法低得多計(jì)算機(jī)組成與體系結(jié)構(gòu)159兩種“寫”策略的比較6.3Cache存儲系統(tǒng)與主存的通信量例如:寫操作占總訪存次數(shù)的20%,Cache命中率為99%,每塊4個(gè)字。當(dāng)Cache發(fā)生塊替換時(shí),有30%塊需要寫回主存,其余的因未被修改過而不必寫回主存。則對于WT法,寫主存次數(shù)占總訪存次數(shù)的20%。而WB法為(1

99%)

30%

4=1.2%。因此,WB法與主存的通信量要比WT法少10多倍。計(jì)算機(jī)組成與體系結(jié)構(gòu)1606.3Cache存儲系統(tǒng)“寫”調(diào)塊“寫”操作必須在確認(rèn)是命中后才可進(jìn)行當(dāng)出現(xiàn)寫不命中時(shí),是否需要將主存塊調(diào)入Cache?兩種方法:不按寫分配法:在寫Cache不命中時(shí),把所要寫的字直接寫入主存,不調(diào)塊;按寫分配法:在寫Cache不命中時(shí),寫入主存,并把單元所在塊調(diào)入Cache;計(jì)算機(jī)組成與體系結(jié)構(gòu)1616.3Cache存儲系統(tǒng)寫策略與調(diào)塊一般:寫直達(dá)法──不按寫分配寫回法──按寫分配單處理機(jī)系統(tǒng)大多采用寫回法共享主存的多處理機(jī)為保證各處理機(jī)經(jīng)主存交換信息時(shí)不出錯(cuò),較多采用寫直達(dá)法多Cache一致性算法計(jì)算機(jī)組成與體系結(jié)構(gòu)1626.3Cache存儲系統(tǒng)“寫”緩沖器寫回法和寫直達(dá)法都需要少量緩沖器寫回法中存放將要寫回的塊,不必等待寫回主存后才進(jìn)行Cache取寫直達(dá)法中存放要寫回主存的內(nèi)容,減少CPU等待寫主存的時(shí)間緩沖器對Cache-主存透明計(jì)算機(jī)組成與體系結(jié)構(gòu)1636.3Cache存儲系統(tǒng)兩種寫策略寫直達(dá)法(Writethrough)優(yōu)點(diǎn):易于實(shí)現(xiàn),容易保持不同層次間的一致性缺點(diǎn):速度較慢寫回法優(yōu)點(diǎn):速度快,減少訪存次數(shù)缺點(diǎn):一致性問題計(jì)算機(jī)組成與體系結(jié)構(gòu)1646.3Cache存儲系統(tǒng)2.Cache的預(yù)取算法Cache的命中率對機(jī)器的性能影響很大如何預(yù)取提高Cache的命中率?命中率與很多因素有關(guān):預(yù)取算法塊大小預(yù)取開銷等計(jì)算機(jī)組成與體系結(jié)構(gòu)1656.3Cache存儲系統(tǒng)預(yù)取算法有如下幾種:按需取:在出現(xiàn)Cache不命中時(shí),把一個(gè)塊取到Cache中來恒預(yù)取:無論Cache是否命中,都把下一塊取到Cache中不命中預(yù)取:當(dāng)Cache不命中,把本塊和下一塊一起取到Cache中主要考慮因素:命中率的提高;Cache與主存之間通信量的增加。計(jì)算機(jī)組成與體系結(jié)構(gòu)166167第6章存儲系統(tǒng)設(shè)計(jì)6.1存儲系統(tǒng)的組成6.2并行存儲系統(tǒng)6.3Cache存儲系統(tǒng)6.4虛擬存儲系統(tǒng)計(jì)算機(jī)組成與體系結(jié)構(gòu)6.4虛擬存儲系統(tǒng)虛擬存儲系統(tǒng)由主存儲器(DRAM)和聯(lián)機(jī)工作的輔助存儲器(磁盤存儲器)共同組成。主存使用DRAM,容量小,速度快;磁盤容量大,價(jià)格低。應(yīng)用程序員將其看成是一個(gè)存儲器,可使用很大的虛擬空間。與前述的Cache存儲系統(tǒng)相似,虛擬存儲系統(tǒng)也必須考慮交換塊的大小、地址映像、替換問題、寫一致性問題等。計(jì)算機(jī)組成與體系結(jié)構(gòu)1686.4虛擬存儲系統(tǒng)Cache與虛擬存儲系統(tǒng)的區(qū)別計(jì)算機(jī)組成與體系結(jié)構(gòu)169存儲層次CPU對第二級的

訪問方式比較項(xiàng)目目的存儲管理實(shí)現(xiàn)

訪問速度的比值

(第一級和第二級)典型的塊(頁)大小失效時(shí)CPU是否切換Cache存儲系統(tǒng)虛擬存儲系統(tǒng)彌補(bǔ)主存速度的彌補(bǔ)主存容量的不足由專用硬件實(shí)現(xiàn)軟件、硬件實(shí)現(xiàn)幾比一幾百比一幾十個(gè)字節(jié)幾百到幾千個(gè)字節(jié)可直接訪問均通過第一級不切換切換到其他進(jìn)程透明性對所有程序員透明僅對應(yīng)用程序員透明6.4虛擬存儲系統(tǒng)虛擬存儲器是一個(gè)大容量存儲器的邏輯模型,它指的是主存–輔存層次;它借助于磁盤等外部存儲器擴(kuò)大主存容量,以透明的方式給用戶提供了一個(gè)比實(shí)際主存空間大得多的程序空間,允許應(yīng)用程序員使用比實(shí)際主存空間大得多的程序空間(虛擬存儲空間)來訪問主存。計(jì)算機(jī)組成與體系結(jié)構(gòu)1706.4虛擬存儲系統(tǒng)主要解決容量問題:容量和價(jià)格是外(輔)存的,速度是主存的。允許應(yīng)用程序員使用比實(shí)際主存空間大得多的程序空間(虛存空間)來訪問主存。在系統(tǒng)軟件和輔助硬件的管理下,就象擁有一個(gè)單一的、可直接訪問的大容量主存儲器。CPU邏輯地址數(shù)據(jù)主存外(輔)存磁盤輔助軟硬件地址數(shù)據(jù)虛擬存儲器計(jì)算機(jī)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論