下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高速緩沖存儲(chǔ)器Cache的原理、設(shè)計(jì)及實(shí)現(xiàn)前言 雖然CPU主頻的提升會(huì)帶動(dòng)系統(tǒng)性能的改善,但系統(tǒng)性能的提高不僅僅取決于CPU,還與系統(tǒng)架構(gòu)、指令結(jié)構(gòu)、信息在各個(gè)部件之間的傳送速度及存儲(chǔ)部件的存取速度等因素 有關(guān),特別是與 CPU/內(nèi)存之間的存取速度有關(guān)。若CPU工作速度較高,但內(nèi)存存取速度較低,則造成CPU等待,降低處理速度,浪費(fèi)CPU的能力。如500MHz的Pm, 一次指令執(zhí)行時(shí)間為2ns,與其相配的內(nèi)存(SDRAM)存取時(shí)間為10ns ,比前者慢5倍,CPU和PC的性能怎么發(fā)揮 出來(lái)?如何減少CPU與內(nèi)存之間的速度差異?有4種辦法:一種是在基本總線周期中插入等待,這樣會(huì)浪費(fèi)CPU的能力。另
2、一種方法是采用存取時(shí)間較快的SRAM作存儲(chǔ)器,這樣雖然解決了CPU與存儲(chǔ)器間速度不匹配的問題,但卻大幅提升了系統(tǒng)成本。第3種方法是在慢速的 DRAM和快速CPU之間插入一速度較快、容量較小的SRAM,起到緩沖作用;使 CPU既可以以較快速度存取SRAM中的數(shù)據(jù),又不使系統(tǒng)成本上升過(guò)高,這就是 Cache法。還有一種方法,采用新 型存儲(chǔ)器。目前,一般采用第3種方法。它是PC系統(tǒng)在不大增加成本的前提下,使性能提升的一個(gè)非常有效的技術(shù)。本文簡(jiǎn)介了 Cache的概念、原理、結(jié)構(gòu)設(shè)計(jì)以及在 PC及CPU中的實(shí)現(xiàn)。 Cache的工 作原理 Cache的工作原理是基于程序訪問的局部性。對(duì)大量典型程序運(yùn)行情況
3、的分析結(jié)果表明,在一個(gè)較短的時(shí)間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器邏輯地址空間的很小范圍內(nèi)。指令地址的分布本來(lái)就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次。因此,對(duì)這些地址的訪問就自然地具有時(shí)間上集中分布的傾向。數(shù)據(jù)分布的這種集中傾向不如指令明 顯,但對(duì)數(shù)組的存儲(chǔ)和訪問以及工作單元的選擇都可以使存儲(chǔ)器地址相對(duì)集中。這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問,而對(duì)此范圍以外的地址則訪問甚少的現(xiàn)象,就稱為程序訪問的局部性。根據(jù)程序的局部性原理,可以在主存和CPU通用寄存器之間設(shè)置一個(gè)高速的容量相對(duì)較小的存儲(chǔ)器,把正在執(zhí)行的指令地址附近的一部分指令或數(shù)據(jù)從主存調(diào)入這個(gè)存儲(chǔ)器,供CPU在一段時(shí)間
4、內(nèi)使用。這對(duì)提高程序的運(yùn)行速度有很大的作用。這個(gè)介于主存和CPU之間的高速小容量存儲(chǔ)器稱作高速緩沖存儲(chǔ)器(Cache) o系統(tǒng)正是依據(jù)此原理,不斷地將與當(dāng)前指令集相關(guān)聯(lián)的一個(gè)不太大的后繼指令集從內(nèi)存讀到Cache,然后再與CPU高速傳送,從而達(dá)到速度匹配。CPU對(duì)存儲(chǔ)器進(jìn)行數(shù)據(jù)請(qǐng)求時(shí),通常先訪問 Cache。由于局部性原理不能保證所請(qǐng)求的數(shù)據(jù) 百分之百地在 Cache中,這里便存在一個(gè)命中率。即 CPU在任一時(shí)刻從 Cache中可靠獲取數(shù)據(jù) 的幾率。命中率越高,正確獲取數(shù)據(jù)的可靠性就越大。一般來(lái)說(shuō),Cache的存儲(chǔ)容量比主存的容量小得多,但不能太小,太小會(huì)使命中率太低;也沒有必要過(guò)大,過(guò)大不僅
5、會(huì)增加成本,而且當(dāng) 容量超過(guò)一定值后,命中率隨容量的增加將不會(huì)有明顯地增長(zhǎng)。只要Cache的空間與主存空間在一定范圍內(nèi)保持適當(dāng)比例的映射關(guān)系,Cache的命中率還是相當(dāng)高的。一般規(guī)定Cache與內(nèi)存的空間比為 4: 1000,即128kB Cache可映射 32MB內(nèi)存;256kB Cache可映射 64MB內(nèi)存。 在這種情況下,命中率都在90%以上。至于沒有命中的數(shù)據(jù),CPU只好直接從內(nèi)存獲取。獲取的同時(shí),也把它拷進(jìn) Cache ,以備下次訪問。Cache的基本結(jié)構(gòu)Cache通常由相聯(lián)存儲(chǔ)器實(shí)現(xiàn)。相聯(lián)存儲(chǔ)器的每一個(gè)存儲(chǔ)塊都具有額外的存儲(chǔ)信息,稱為標(biāo)簽 (Tag)。當(dāng)訪問相聯(lián)存儲(chǔ)器時(shí),將地址和
6、每一個(gè)標(biāo)簽同時(shí)進(jìn)行比較, 從而對(duì)標(biāo)簽相同的存儲(chǔ)塊進(jìn)行訪問。Cache的3種基本結(jié)構(gòu)如下:全相聯(lián)Cache 在全相聯(lián)Cache中,存儲(chǔ)的塊與塊之間,以及存儲(chǔ)順序或保存的存儲(chǔ)器地址之間沒有直接的關(guān)系。 程序可以訪問很多的子程序、堆棧和段,而它們是位于主存儲(chǔ)器的不同部位上。因此,Cache保存著很多互不相關(guān)的數(shù)據(jù)塊,Cache必須對(duì)每個(gè)塊和塊自身的地址加以存儲(chǔ)。當(dāng)請(qǐng)求數(shù)據(jù)時(shí),Cache控制器要把請(qǐng)求地址同所有地址加以比較,進(jìn)行確認(rèn)。這種 Cache結(jié)構(gòu)的主要優(yōu)點(diǎn)是, 它能夠在給定的時(shí)間內(nèi)去存儲(chǔ)主存器中的不同的塊,命中率高;缺點(diǎn)是每一次請(qǐng)求數(shù)據(jù)同Cache中的地址進(jìn)行比較需要相當(dāng)?shù)臅r(shí)間,速度較慢。表1
7、 pc中部分已實(shí)現(xiàn)的cache技術(shù)系統(tǒng)l0l1cachel2cachel3cachecache主存儲(chǔ)器8088無(wú)無(wú)無(wú)無(wú)無(wú)dram80286無(wú)無(wú)無(wú)無(wú)無(wú)dram80386dx無(wú)外部sram無(wú)無(wú)sramdram80486dx無(wú)內(nèi)部8kb外部sram無(wú)sramdrampentium無(wú)內(nèi)部 8kb+8kb外部sram無(wú)sramdramPPro無(wú)內(nèi)部 8kb+8kb內(nèi)部封裝256kb或512kb無(wú)sramdrammmx無(wú)內(nèi)部 16kb+16kb外部sram無(wú)sramdramp n /p m無(wú)內(nèi)部 16kb+16kb卡上圭排1 512kb1mb無(wú)sramdram外部k6- m內(nèi)部 32kb+32kb芯片背上
8、封裝256kb1mbsramdram直接映像Cache直接映像Cache不同于全相聯(lián) Cache ,地址僅需比較一次。在直接映像Cache中,由于每個(gè)主存儲(chǔ)器的塊在Cache中僅存在一個(gè)位置,因而把地址的比較次數(shù)減少為一次。其做法是,為 Cache中的每個(gè)塊位置分配一個(gè)索引字段,用Tag字段區(qū)分存放在Cache位置上的不同的塊。單路直接映像把主存儲(chǔ)器分成若干頁(yè),主存儲(chǔ)器的每一頁(yè)與Cache存儲(chǔ)器的大小相同,匹配的主存儲(chǔ)器的偏移量可以直接映像為Cache偏移量。Cache的Tag存儲(chǔ)器(偏移量)保存著主存儲(chǔ)器的頁(yè)地址(頁(yè)號(hào))。以上可以看出,直接映像Cache優(yōu)于全相聯(lián) Cache,能進(jìn)行快速查找
9、,其缺點(diǎn)是當(dāng)主存儲(chǔ)器的組之間做頻繁調(diào)用時(shí),Cache控制器必須做多次轉(zhuǎn)換。組相聯(lián)Cache組相聯(lián)Cache是介于全相聯(lián) Cache和直接映像Cache之間的一種結(jié)構(gòu)。這種類型的Cache使用了幾組直接映像的塊,對(duì)于某一個(gè)給定的索引號(hào),可以允許有幾個(gè)塊位 置,因而可以增加命中率和系統(tǒng)效率。Cache與DRAM存取的一致性在CPU與主存之間增加了 Cache之后,便存在數(shù)據(jù)在CPU和Cache及主存之間如何存取的問題。讀寫各有2種方式。貫穿讀出式(Look Through)該方式將Cache隔在CPU與主存之間,CPU對(duì)主存的所有數(shù)據(jù)請(qǐng)求都首先送到Cache ,由Cache自行在自身查找。如果命中
10、,則切斷 CPU對(duì)主存的請(qǐng)求,并將數(shù)據(jù)送出;不命中,則將數(shù)據(jù)請(qǐng)求傳給主存。該方法的優(yōu)點(diǎn)是降低了CPU對(duì)主存的請(qǐng)求次數(shù),缺點(diǎn)是延遲了CPU對(duì)主存的訪問時(shí)間。旁路讀出式(Look Aside) 在這種方式中,CPU發(fā)出數(shù)據(jù)請(qǐng)求時(shí),并不是單通道地穿過(guò)Cache ,而是向Cache和主存同時(shí)發(fā)出請(qǐng)求。由于 Cache速度更快,如果命中,則 Cache在將數(shù)據(jù)回送給 CPU的同時(shí),還來(lái)得及中 斷CPU對(duì)主存的請(qǐng)求;不命中,則 Cache不做任何動(dòng)作,由 CPU直接訪問主存。它的優(yōu)點(diǎn)是沒 有時(shí)間延遲,缺點(diǎn)是每次CPU對(duì)主存的訪問都存在,這樣,就占用了一部分總線時(shí)間。寫穿式(Write Through)任一
11、從CPU發(fā)出的寫信號(hào)送到Cache的同時(shí),也寫入主存,以保證主存的數(shù)據(jù)能同步地更新。它的優(yōu)點(diǎn)是操作簡(jiǎn)單,但由于主存的慢速,降低了系統(tǒng)的寫速度并占用了總線的時(shí)間?;貙懯?Copy Back)為了克服貫穿式中每次數(shù)據(jù)寫入時(shí)都要訪問主存,從而導(dǎo)致系統(tǒng)寫速度降低并占用總線時(shí)間的弊病,盡量減少對(duì)主存的訪問次數(shù),又有了回寫式。它是這樣工作的:數(shù)據(jù)一般只寫到Cache,這樣有可能出現(xiàn) Cache中的數(shù)據(jù)得到更新而主存中的數(shù)據(jù)不變(數(shù)據(jù)陳舊)的情況。但此時(shí)可在 Cache中設(shè)一標(biāo)志地址及數(shù)據(jù)陳舊的信息,只 有當(dāng)Cache中的數(shù)據(jù)被再次更改時(shí),才將原更新的數(shù)據(jù)寫入主存相應(yīng)的單元中,然后再接受再次更新的數(shù)據(jù)。這樣
12、保證了Cache和主存中的數(shù)據(jù)不致產(chǎn)生沖突。Cache的分級(jí)體系設(shè)計(jì)微處理器性能由如下幾種因素估算:性能=k(f x 1/CPI -(1 H)x N) 式中:k為比例常數(shù),f為工作頻率,CPI為執(zhí)行每條指令需要的周期數(shù),H為Cache的命中率,N為存儲(chǔ)周期數(shù)。雖然,為了提高處理器的性能,應(yīng)提高工作頻率,減少執(zhí)行每條指令需要的周期數(shù),提高Cache的命中率。同時(shí)分發(fā)多條指令和采用亂序控制,可以減少CPI值;采用轉(zhuǎn)移預(yù)測(cè)和增加Cache容量,可以提高H值。為了減少存儲(chǔ)周期數(shù)N,可采用高速的總線接口和不分塊的C ache方案。以前提高處理器的性能,主要靠提高工作頻率和提高指令級(jí)的并行度,今后則主要靠
13、提高Cache的命中率。設(shè)計(jì)出無(wú)阻塞 Cache分級(jí)結(jié)構(gòu)。Cache分級(jí)結(jié)構(gòu)的主要優(yōu)勢(shì)在于,對(duì)于一個(gè)典型的一級(jí)緩存系統(tǒng)的80%的內(nèi)存申請(qǐng)都發(fā)生在 CPU內(nèi)部,只有20%的內(nèi)存申請(qǐng)是與外部?jī)?nèi)存打交道。而這20 %的外部?jī)?nèi)存申請(qǐng)中的80 %又與二級(jí)緩存打交道。因此,只有 4%的內(nèi)存申請(qǐng)定向到 DRAM中。 Cache分級(jí)結(jié)構(gòu)的不足在于高速緩存組數(shù)目受限,需要占用線路板空間和一些支持邏輯電路,會(huì)使成本增加。綜合比較結(jié)果還是采用分級(jí)Cache。 L1 Cache的設(shè)計(jì)有在片一級(jí)分離和統(tǒng)一設(shè)計(jì)兩種方案。Intel、AMD、原DEC等公司將L1 Cache設(shè)計(jì)成指令Cache與數(shù)據(jù)Cache分離型。因?yàn)檫@
14、種雙路高速緩存結(jié)構(gòu)減少了爭(zhēng)用高速緩存所造成的沖突,改進(jìn)了處理器效能, 以便數(shù)據(jù)訪問和指令調(diào)用在同一時(shí)鐘周期內(nèi)進(jìn)行。但是,僅依靠增加在片一級(jí) Cache的容量,并不能使微處理器性能隨之成正比例地提高,還需設(shè)置二級(jí) Cache o 在L1 Cache結(jié)構(gòu)方面,一般采用回寫式靜態(tài)隨機(jī)存儲(chǔ)器( SRAM)。目前,L1 Cac he容量有加大的趨勢(shì)。L2 Cache的設(shè)計(jì)分芯片內(nèi)置和外置兩種設(shè)計(jì)。如AMD K63內(nèi)置的256kB L2 Cache與CPU同步工作。外置 L2 Cache , 一般都要使二級(jí) Cache與CPU實(shí) 現(xiàn)緊密耦合,并且與在片一級(jí)Cache形成無(wú)阻塞階層結(jié)構(gòu)。同時(shí)還要采用分離的前臺(tái)總線(外部I/O總線)和后臺(tái)總線(二級(jí)Cache總線)模式。顯然,將來(lái)隨著半導(dǎo)體集成工藝的提高,如果 CP U與二級(jí)Cache集成在單芯片上,則 CPU與二級(jí)Cache的耦合效果可能更佳。由于L2 Cache內(nèi)置,因此,還可以在原主板上再外置大容量緩存1MB2MB,它被稱為L(zhǎng)3 Cache。PC中的Ca
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 存量住房回購(gòu)協(xié)議
- 信用卡分期付款協(xié)議
- 國(guó)內(nèi)沿海集裝箱貨運(yùn)代理合作條款
- 廣告公司拍攝合同
- 2024年房屋買賣合同協(xié)議書樣本
- 2024年圖文廣告設(shè)計(jì)制作合同
- 學(xué)生貸款合同格式
- 石油化工工程承攬合同
- 保潔服務(wù)合同范文全書
- 蘇教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)《認(rèn)識(shí)幾分之一》公開課課件
- 校園應(yīng)急事件處理流程【3篇】
- 第5.1課+展示國(guó)家工程了解工匠奉獻(xiàn)-【中職專用】高二語(yǔ)文高效課堂(高教版2023·職業(yè)模塊)
- 了解患者護(hù)理中的安全防護(hù)要點(diǎn)
- 項(xiàng)目計(jì)劃書項(xiàng)目人力資源分配
- 人教部編八年級(jí)歷史上基礎(chǔ)知識(shí)填空
- 【多旋翼無(wú)人機(jī)的組裝與調(diào)試分析6000字(論文)】
- 灑水車司機(jī)崗位作業(yè)規(guī)程
- 2016年考研英語(yǔ)真題及解析答案
- 傷口造口護(hù)理新進(jìn)展課件
- +山東省棗莊市滕州市善國(guó)中學(xué)等校聯(lián)考2023-2024學(xué)年七年級(jí)+上學(xué)期期中數(shù)學(xué)試卷
- 神經(jīng)重癥腸內(nèi)營(yíng)養(yǎng)病歷分享
評(píng)論
0/150
提交評(píng)論