Cache控制器設計試驗_第1頁
Cache控制器設計試驗_第2頁
Cache控制器設計試驗_第3頁
Cache控制器設計試驗_第4頁
Cache控制器設計試驗_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

實驗3Cache控制器設計1.實驗目的(1)掌握Cache控制器的原理及其設計方法。⑵熟悉FPGA應用設計及EDA軟件的使用。⑶熟悉Vivado軟件的使用及FPGA應用設計。2.實驗原理Cache是介于CPU和主存之間的小容量存儲器,包括管理在內(nèi)的全部功能由硬件實現(xiàn),對程序員是透明的,在一定程度上解決了CPU和主存之間的速度差異。與主存容量相比,Cache的容量很小,它保存的內(nèi)容只是內(nèi)存內(nèi)容的一個子集,且Cache與主存的數(shù)據(jù)交互以塊為單位。把主存中的塊放到Cache中時必須把主存地址映射到Cache中,即確定位置的對應關系,并采用硬件實現(xiàn),以便CPU給出的訪存地址能夠自動變換成Cache地址。由于程序訪問的局部性,使得主存的平均讀出時間接近Cache的讀出時間,大大提高了CPU的訪存效率。地址映射方式有全相聯(lián)方式、直接相聯(lián)方式、組相聯(lián)方式,本實驗采用的是直接方式,這種變換方式簡單而直接,硬件實現(xiàn)很簡單,訪問速度也比較快,但是塊的沖突率比較高。其主要原則是:主存中一塊只能映象到Cache的一個特定的塊中。假設主存的塊號為B,Cache的塊號為b,則它們之間的映象關系可以表示為:b=BmodCb其中,Cb是Cache的塊容量。設主存的塊容量為Mb,區(qū)容量為Me,則直接映象方法的關系如圖3.19所示。把主存按Cache的大小分成區(qū),一般主存容量為Cache容量的整數(shù)倍,主存每一個分區(qū)內(nèi)的塊數(shù)與Cache的總塊數(shù)相等。直接映象方式只能把主存各個區(qū)中相對塊號相同的那些塊映象到Cache中同一塊號的那個特定塊中。例如,主存的塊0只能映象到Cache的塊0中,主存的塊1只能映象到Cache的塊1中,同樣,主存區(qū)1中的塊Cb(在區(qū)1中的相對塊號是0)也只能映象到Cache的塊0中。根據(jù)上面給出的地址映象規(guī)則,整個Cache地址與主存地址的低位部分是完全相同的。

圖"工-1直蝴聯(lián)映象方式直接映象方式口"凹皿文伏乩底如國■L〃|力、,±1十工凹月L十皿小節(jié)Dmcache地址中的塊號b是完全相同的。同樣,主存地址中的塊內(nèi)地址W與Cache地址中的塊內(nèi)地址w也是完全相同的,主存地址比Cache地址長出來的部分稱為區(qū)號E。在程序執(zhí)行過程中,當要訪問Cache時,為了實現(xiàn)主存塊號到Cache塊號的變換,需要有一個存放主存區(qū)號的小容量存儲器,這個存儲器的容量與Cache的塊數(shù)相等,字長為主存地址中區(qū)號E的長度,另外再加一個有效位。在主存地址到Cache地址的變換過程中,首先用主存地址中的塊號去訪問區(qū)號存儲器(按地址訪問)。把讀出來的區(qū)號與主存地址中的區(qū)號E進行比較,根據(jù)比較結果和與區(qū)號在同一存儲字中的有效位情況作出處理。如果區(qū)號比較結果相等,有效位為1則Cache命中,表示要訪問的那一塊已經(jīng)裝入到Cache中了,這時Cache地址(與主存地址的低位部分完全相同)是正確的。用這個Cache地址去訪問Cache,把讀出來的數(shù)據(jù)送往CPU。其他情況均為Cache沒有命中,或稱為Cache失效,表示要訪問的那個塊還沒有裝入到Cache中,這時,要用主存地址去訪問主存儲器,把讀出來的一個字送往CPU,同時,把包括被訪問字在內(nèi)的一塊都從主存儲器中讀出來,送往Cache的相應塊。Cache和CPU以及存儲器的連接如圖3所示,本實驗要在FPGA中實現(xiàn)Cache及其地址變換邏輯(也叫Cache控制器),采用直接相聯(lián)地址變換,只考慮CPU從Cache讀數(shù)據(jù),不考慮CPU寫回數(shù)據(jù)的情況。Cache控制器頂層模塊如圖4所示,主存地址為AA0,8位,區(qū)號E取3位,這樣Cache地址還剩5位,所以Cache容量為32個單元,塊號B取3位,那么Cache分為8塊,塊內(nèi)地址W取2位,則每塊為4個單元。圖4中,WCT為寫Cache塊表信號,CLR為系統(tǒng)總清零信號,A A為CPU訪問內(nèi)存的地址,M為Cache失效信號,CA4CA0為Cache地址,MD MD0為主存送Cache的數(shù)據(jù),D D為Cache送CPU數(shù)據(jù),T2為系統(tǒng)時鐘,RD為CPU訪問內(nèi)存讀信號,LA1和LA0為塊內(nèi)地址。ace

3.實驗內(nèi)容(1)在Vivado軟件中,使用D觸發(fā)器作為存儲一個二進制代碼的存儲單元,設計一個8位的存儲單元模塊,按照基于硬件描述語言的設計流程輸入該電路,進行編譯、仿真驗證后生成存儲單元模塊供上層設計調(diào)用。⑵根據(jù)對實驗原理的描述,使用這個8位的存儲單元構成一個32*8位的Cache存儲體,并在Vivado軟件中實現(xiàn)該電路,進行編譯、仿真驗證后生成Cache存儲體模塊供上層調(diào)用。(3)參照上面兩步,在Vivado軟件中實現(xiàn)一個4位的存儲單元模塊;然后使用這個4位存儲單元構成一個8*4位的區(qū)表存儲器,用來存放區(qū)號和有效位。由圖2可知,還需要實現(xiàn)一個區(qū)號比較器,如果主存地址的區(qū)號E和區(qū)表中相應單元中的區(qū)號相等,且有效位為1,則Cache命中,否則Cache失效,標志位為M,M為0時表示Cache失效。最后,編譯、仿真驗證后生成區(qū)表存儲器模塊供上層調(diào)用。(4)當Cache命中時,就將Cache存儲體中相應單元的數(shù)據(jù)送往CPU,這個過程比較簡單;當Cache失效時,需要將主存中相應塊中的數(shù)據(jù)讀出寫入Cache中,這樣Cache控制器就要產(chǎn)生訪問主存儲器的地址和主存儲器的讀信號,由于每塊占4個單元,所以需要連續(xù)訪問4次主存,這就需要一個低地址發(fā)生器。在Vivado軟件中,按照基于VerilogHDL的設計流程輸入一個2位計數(shù)器,用于產(chǎn)生低2位地址00~11,進行編譯、仿真驗證后生成低地址發(fā)生器模塊供上層調(diào)用。⑸將產(chǎn)生的低2位地址和CPU給出的高6位地址組合起來,形成訪問主存儲器的地址,M可以作為主存的讀信號。這樣在時鐘T2的控制下,就可以將主存中相應的塊寫入Cache的相應塊中,最后再修改區(qū)表。在Vivado軟件中,參照圖4給出的Cache存儲器頂層模塊,按照基

溫馨提示

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

評論

0/150

提交評論