Cache控制器設(shè)計(jì)實(shí)驗(yàn)_第1頁
Cache控制器設(shè)計(jì)實(shí)驗(yàn)_第2頁
Cache控制器設(shè)計(jì)實(shí)驗(yàn)_第3頁
Cache控制器設(shè)計(jì)實(shí)驗(yàn)_第4頁
Cache控制器設(shè)計(jì)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)3 Cache 控制器設(shè)計(jì)1實(shí)驗(yàn)?zāi)康?1) 掌握Cache 控制器的原理及其設(shè)計(jì)方法。(2) 熟悉FPGA應(yīng)用設(shè)計(jì)及EDA 軟件的使用。(3) 熟悉Vivado軟件的使用及FPGA應(yīng)用設(shè)計(jì)。2實(shí)驗(yàn)原理Cache是介于CPU和主存之間的小容量存儲器,包括管理在內(nèi)的全部功能由硬件實(shí)現(xiàn),對程序員是透明的,在一定程度上解決了CPU和主存之間的速度差異。與主存容量相比,Cache的容量很小,它保存的內(nèi)容只是內(nèi)存內(nèi)容的一個(gè)子集,且Cache與主存的數(shù)據(jù)交互以塊為單位。把主存中的塊放到Cache中時(shí)必須把主存地址映射到Cache中,即確定位置的對應(yīng)關(guān)系,并采用硬件實(shí)現(xiàn),以便CPU給出的訪存地址能夠自動(dòng)變

2、換成Cache地址。由于程序訪問的局部性,使得主存的平均讀出時(shí)間接近Cache的讀出時(shí)間,大大提高了CPU的訪存效率。地址映射方式有全相聯(lián)方式、直接相聯(lián)方式、組相聯(lián)方式,本實(shí)驗(yàn)采用的是直接方式,這種變換方式簡單而直接,硬件實(shí)現(xiàn)很簡單,訪問速度也比較快,但是塊的沖突率比較高。其主要原則是:主存中一塊只能映象到Cache的一個(gè)特定的塊中。假設(shè)主存的塊號為B,Cache的塊號為b,則它們之間的映象關(guān)系可以表示為:b = B mod Cb其中,Cb是Cache的塊容量。設(shè)主存的塊容量為Mb,區(qū)容量為Me,則直接映象方法的關(guān)系如圖3.19所示。把主存按Cache的大小分成區(qū),一般主存容量為Cache容量

3、的整數(shù)倍,主存每一個(gè)分區(qū)內(nèi)的塊數(shù)與Cache的總塊數(shù)相等。直接映象方式只能把主存各個(gè)區(qū)中相對塊號相同的那些塊映象到Cache中同一塊號的那個(gè)特定塊中。例如,主存的塊0只能映象到Cache 的塊0中,主存的塊1只能映象到Cache的塊1中,同樣,主存區(qū)1中的塊Cb(在區(qū)1中的相對塊號是0)也只能映象到Cache 的塊0中。根據(jù)上面給出的地址映象規(guī)則,整個(gè)Cache 地址與主存地址的低位部分是完全相同的。圖1直接相聯(lián)映像方式直接映象方式的地址變換過程如圖1所示,主存地址中的塊號B與Cache地址中的塊號b 是完全相同的。同樣,主存地址中的塊內(nèi)地址W與Cache地址中的塊內(nèi)地址w也是完全相同的,主存

4、地址比Cache地址長出來的部分稱為區(qū)號E。圖2直接相聯(lián)地址變換在程序執(zhí)行過程中,當(dāng)要訪問Cache時(shí),為了實(shí)現(xiàn)主存塊號到Cache塊號的變換,需要有一個(gè)存放主存區(qū)號的小容量存儲器,這個(gè)存儲器的容量與Cache的塊數(shù)相等,字長為主存地址中區(qū)號E 的長度,另外再加一個(gè)有效位。在主存地址到Cache地址的變換過程中,首先用主存地址中的塊號去訪問區(qū)號存儲器(按地址訪問)。把讀出來的區(qū)號與主存地址中的區(qū)號E進(jìn)行比較,根據(jù)比較結(jié)果和與區(qū)號在同一存儲字中的有效位情況作出處理。如果區(qū)號比較結(jié)果相等,有效位為1,則Cache 命中,表示要訪問的那一塊已經(jīng)裝入到Cache中了,這時(shí)Cache地址(與主存地址的低

5、位部分完全相同)是正確的。用這個(gè)Cache地址去訪問Cache,把讀出來的數(shù)據(jù)送往CPU。其他情況均為Cache沒有命中,或稱為Cache失效,表示要訪問的那個(gè)塊還沒有裝入到Cache中,這時(shí),要用主存地址去訪問主存儲器,把讀出來的一個(gè)字送往CPU,同時(shí),把包括被訪問字在內(nèi)的一塊都從主存儲器中讀出來,送往Cache的相應(yīng)塊。Cache和CPU以及存儲器的連接如圖3所示,本實(shí)驗(yàn)要在FPGA中實(shí)現(xiàn)Cache及其地址變換邏輯(也叫Cache控制器),采用直接相聯(lián)地址變換,只考慮CPU從Cache讀數(shù)據(jù),不考慮CPU寫回?cái)?shù)據(jù)的情況。Cache控制器頂層模塊如圖4所示,主存地址為A7A0,共8位,區(qū)號E

6、取3位,這樣Cache地址還剩5位,所以Cache容量為32個(gè)單元,塊號B取3位,那么Cache分為8塊,塊內(nèi)地址W取2位,則每塊為4個(gè)單元。圖4中,WCT為寫Cache塊表信號,CLR為系統(tǒng)總清零信號,A7A0為CPU訪問內(nèi)存的地址,M為Cache失效信號,CA4CA0為Cache地址,MD7MD0 為主存送Cache的數(shù)據(jù),D7D0為Cache送CPU數(shù)據(jù),T2為系統(tǒng)時(shí)鐘,RD為CPU訪問內(nèi)存讀信號,LA1和LA0為塊內(nèi)地址。圖3Cache 系統(tǒng)圖圖4 Cache 控制器頂層模塊圖3實(shí)驗(yàn)內(nèi)容(1)在Vivado軟件中,使用D觸發(fā)器作為存儲一個(gè)二進(jìn)制代碼的存儲單元,設(shè)計(jì)一個(gè)8位的存儲單元模塊

7、,按照基于硬件描述語言的設(shè)計(jì)流程輸入該電路,進(jìn)行編譯、仿真驗(yàn)證后生成存儲單元模塊供上層設(shè)計(jì)調(diào)用。(2)根據(jù)對實(shí)驗(yàn)原理的描述,使用這個(gè)8位的存儲單元構(gòu)成一個(gè)32*8位的Cache存儲體,并在Vivado軟件中實(shí)現(xiàn)該電路,進(jìn)行編譯、仿真驗(yàn)證后生成Cache存儲體模塊供上層調(diào)用。(3)參照上面兩步,在Vivado軟件中實(shí)現(xiàn)一個(gè)4位的存儲單元模塊;然后使用這個(gè)位存儲單元構(gòu)成一個(gè)8*4位的區(qū)表存儲器,用來存放區(qū)號和有效位。由圖2可知,還需要實(shí)現(xiàn)一個(gè)區(qū)號比較器,如果主存地址的區(qū)號和區(qū)表中相應(yīng)單元中的區(qū)號相等,且有效位為,則Cache命中,否則Cache失效,標(biāo)志位為M,M為0時(shí)表示Cache失效。最后,編

8、譯、仿真驗(yàn)證后生成區(qū)表存儲器模塊供上層調(diào)用。(4)當(dāng)Cache命中時(shí),就將Cache存儲體中相應(yīng)單元的數(shù)據(jù)送往CPU,這個(gè)過程比較簡單;當(dāng)Cache失效時(shí),需要將主存中相應(yīng)塊中的數(shù)據(jù)讀出寫入Cache中,這樣Cache控制器就要產(chǎn)生訪問主存儲器的地址和主存儲器的讀信號,由于每塊占4個(gè)單元,所以需要連續(xù)訪問4次主存,這就需要一個(gè)低地址發(fā)生器。在Vivado軟件中,按照基于VerilogHDL的設(shè)計(jì)流程輸入一個(gè)2位計(jì)數(shù)器,用于產(chǎn)生低2位地址0011,進(jìn)行編譯、仿真驗(yàn)證后生成低地址發(fā)生器模塊供上層調(diào)用。(5)將產(chǎn)生的低2位地址和CPU給出的高6位地址組合起來,形成訪問主存儲器的地址,M可以作為主存的讀信號。這樣在時(shí)鐘T2的控制下,就可以將主存中相應(yīng)的塊寫入Cache的相應(yīng)塊中,最后再修改區(qū)表。在Vivado軟件中,參照圖4給出的Cache存儲器頂層模塊,按照基于Ver

溫馨提示

  • 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

提交評論