陳衛(wèi)衛(wèi)
(西安航空職業(yè)技術(shù)學(xué)院,西安 710089)
目前,高性能的計算機(jī)發(fā)展正在不斷尋找新的模式,計算機(jī)的體系結(jié)構(gòu)也面臨著全面改革。網(wǎng)絡(luò)化可動態(tài)的計算機(jī)體系結(jié)構(gòu)能夠打破傳統(tǒng)計算機(jī)中CPU與內(nèi)存的布局,合理的將CPU、硬盤、內(nèi)存分離開來,然后將相同類別的部件組在一起。Cache根據(jù)計算模式與運行模式的不同需求,以最有效的資源組合方式來實現(xiàn)最適應(yīng)的體系結(jié)構(gòu)。Cache主要通過模擬器來實現(xiàn),這種結(jié)構(gòu)具有許多全新的特點,Cache模擬器可以為系統(tǒng)的運行提供硬件模擬與驗證,為系統(tǒng)的操作提供穩(wěn)定平臺,屬于一個全系統(tǒng)、可伸縮、可并行的模擬器。
(1) 加強(qiáng)對Cache基本概念、組織結(jié)構(gòu)以及基本原理的正確理解;
(2) 掌握Cache容量、相關(guān)度、塊大小對性能的影響。
計算機(jī)系統(tǒng)性能受存儲器性能影響,它是核心部件之一,存儲器一般是通過結(jié)構(gòu)分層保持價格與容量之間的平衡,從而提升速度。需要在存儲層之間采取相應(yīng)的機(jī)制,來對各層次之間的高速流轉(zhuǎn)進(jìn)行實現(xiàn)。對于計算機(jī)存儲結(jié)構(gòu)初學(xué)者來講,這些方法的出現(xiàn)顯然給學(xué)習(xí)者增加了難度。Cache模擬器的設(shè)計與應(yīng)用主要是以圖形動畫的形式來分析比較難懂的存儲結(jié)構(gòu)而進(jìn)行簡單化的,通過用戶交互的方式表現(xiàn)出來。
在計算機(jī)CPU與主存之間設(shè)置緩沖存儲器,目的是為了提高計算機(jī)速度,減小CPU與主存的速度差距,Cache屬于計算機(jī)系統(tǒng)中不可缺少的部件之一,對提高計算機(jī)系統(tǒng)性能有著重要意義。計算機(jī)體系結(jié)構(gòu)Cache模擬器的設(shè)計原理主要體現(xiàn)在局部性原理。一個計算機(jī)程序引用的數(shù)據(jù)項向最近引用過的數(shù)據(jù)項有所傾向,這種現(xiàn)象稱之為局部性原理。該原理屬于計算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計的重要基礎(chǔ)。Cache模擬器設(shè)計原理主要是把存儲器中訪問較高的內(nèi)容存放在Cache中,CPU對數(shù)據(jù)進(jìn)行讀取時會首先在Cache中查找,如果Cache中存在需要查找的內(nèi)容,就會直接讀取,然后同時送往Cache和CPU。
計算機(jī)體系結(jié)構(gòu)模擬器用戶交互功能接口主要劃分為系統(tǒng)、配置、操作、窗口以及幫助五大類。其主框架,如圖1所示。
1) 系統(tǒng)菜單:其功能是對模擬器進(jìn)行選擇后將文件完成輸入加載的過程。用戶輸入通過對指令文件處理和轉(zhuǎn)換,
圖1 模擬器主結(jié)構(gòu)框架
通過此接口,可以滿足模擬器系統(tǒng)對多種指令格式的要求。
2) 配置菜單:在配置菜單中主要顯示系統(tǒng)參數(shù)和模擬器參數(shù)。系統(tǒng)參數(shù)會對接入體系的所有模擬器產(chǎn)生影響,該參數(shù)菜單用戶可以進(jìn)行更改。模擬器參數(shù),會根據(jù)系統(tǒng)菜單中所選擇的模擬器來決定是否顯示出來供用戶選擇修改。
3) 操作菜單:操作菜單主要是控制模擬器的顯示,菜單項的內(nèi)容主要是根據(jù)用戶在系統(tǒng)菜單中選擇的模擬器變換。
4) 窗口菜單:窗口菜單會隨著模擬器的不同而進(jìn)行變換,在向用戶顯示具體模擬器操作時,此菜單會顯示用戶需要的信息。
5) 幫助菜單:在幫助菜單中有各模擬器的使用說明,供用戶查閱。
1) 映像規(guī)則
一般情況下,主存的容量會遠(yuǎn)大于Cache的容量,所有需要用過映像規(guī)則來解決一個塊從主存調(diào)入Cache如何放置的問題。映像規(guī)則主要分為以下3種。
(1) 全相聯(lián)映像:主存中的每一個塊都可以放置到Cache的任意位置。
(2) 直接映像:主存中的塊只能放到Cache中的固定位置。
(3) 組相聯(lián)映像:主存中的每一塊可以被放置在Cache中唯一組中的任意位置。
2) 查找方法
當(dāng)CPU訪問 Cache時,需要確定Cache中的被訪問塊和正確的放置位置。通過目錄搜索的方法會隨著映射方法的不同而改變。通過公式計算的方法對直接映象法塊進(jìn)行查取,組相聯(lián)與全相聯(lián)都要通過對部分的Cache塊進(jìn)行搜索,所以這種方法的實現(xiàn)大多會采取硬件加速的方法。
3) 替換算法
由于主存中的塊會比Cache中的塊多,所以從主存中調(diào)入一個塊到Cache中時,就會顯示出該塊所有塊的占用情況,必須要騰出某一個塊,來容納新的塊。
4) 寫策略
在系統(tǒng)運作中的寫操作要比讀操作復(fù)雜得多。寫操作分為將主存中的內(nèi)存塊導(dǎo)入到Cache與寫入Cache兩部分,所以會多出一個寫的步驟,寫操作會花費更多的時間,而且會產(chǎn)生新的問題。根據(jù)存儲層次的要求,Cache內(nèi)容應(yīng)該屬于主存部分內(nèi)容的一個副本。
Cache模擬器的模擬過程主要分為兩大模塊,其前端是訪問請求模塊,后端是模擬執(zhí)行模塊,如圖2所示。
根據(jù)前端生產(chǎn)訪問所提出的請求方式的不同,采用execution-driven模擬器作為系統(tǒng)承載平臺。模擬器可以對指令集構(gòu)架進(jìn)行實現(xiàn),并且在模擬器上對程序執(zhí)行,適時的產(chǎn)生訪問請求來驅(qū)動后端,當(dāng)目標(biāo)系統(tǒng)的程序運行結(jié)束之后,會產(chǎn)生相應(yīng)的統(tǒng)計信息,這種模擬方法的精度較高,信息統(tǒng)計相對比較充分,實現(xiàn)靈活性模擬。
圖2 Cache模擬器模擬過程
在Cache模擬器設(shè)計完成之后,需要研究模擬器的正確使用,下面通過目錄法來對Cache模擬器的使用進(jìn)行分析。
系統(tǒng)啟動之后,在系統(tǒng)菜單中對Cache模擬器子菜單項進(jìn)行選擇。如果當(dāng)前系統(tǒng)正處于其他模擬器狀態(tài),那么要對背景圖進(jìn)行切換,重新對Cache模擬器初始化,然后再對子菜單項進(jìn)行選擇。在對話框中選擇目錄法,系統(tǒng)會根據(jù)目錄法的相關(guān)組件重新初始化,背景圖也會重新描繪。從而可以了解到界面上方有4個文本輸入框以及下拉框。可以在文本框中輸入訪問地址,在下拉框中選擇操作類型,然后開始該訪問在相應(yīng)的CPU上執(zhí)行。
Cache模擬器的執(zhí)行方式大致分為分步執(zhí)行與連續(xù)執(zhí)行。分步執(zhí)行主要是已經(jīng)劃分好的動畫步驟單元按照用戶的指令進(jìn)行一步一步的執(zhí)行。連續(xù)執(zhí)行是指模擬器一次性的完成指令的全過程,然后呈現(xiàn)給用戶。
當(dāng)指令發(fā)出之后,模擬器會對指令進(jìn)行處理,生成動畫操作,根據(jù)用戶的選擇,通過不同的動畫執(zhí)行方式來與用戶之間進(jìn)行交互。模擬器的執(zhí)行過程,如圖3所示。
圖3 模擬器執(zhí)行界面
一旦模擬器進(jìn)入到執(zhí)行狀態(tài),會拒絕其他指令的輸入,在界面中的輸入框、下拉框以及按鈕都會被禁止,每一步動畫都會配有相應(yīng)的說明,用戶可以通過說明來了解相應(yīng)指令的執(zhí)行狀況。通過消息通知功能,用戶可以對Cache目錄法的工作原理更好地掌握。在運行的過程中,選擇窗口菜單中的狀態(tài)圖菜單,會出現(xiàn)以下界面,如圖4所示。
時刻向用戶顯示Cache的變化狀態(tài),能夠幫助學(xué)生更好的理解對狀態(tài)圖的描述。
菜單窗口中的信息統(tǒng)計子菜單,會對已經(jīng)完成的運行指令進(jìn)行統(tǒng)計,統(tǒng)計信息,如圖4所示。
圖4 多Cache模擬器狀態(tài)圖(目錄法)
Cache模擬器的設(shè)計采用模塊化與層次化的設(shè)計思路,
圖5 Cache模擬器統(tǒng)計信息
每個模塊都是一個相對獨立的系統(tǒng),更加便于系統(tǒng)進(jìn)行升級與維護(hù),該模擬器的設(shè)計具有良好的靈活性與重構(gòu)能力,能夠同時配置多個系統(tǒng),用戶可以進(jìn)行資源的申請、釋放以及調(diào)整。Cache模擬器對體系結(jié)構(gòu)的支持還比較有限,不能夠模擬大規(guī)模的系統(tǒng),隨著科學(xué)與技術(shù)的發(fā)展,該模擬器會得到進(jìn)一步的升級與完善。