陳衛衛
(西安航空職業技術學院,西安 710089)
目前,高性能的計算機發展正在不斷尋找新的模式,計算機的體系結構也面臨著全面改革。網絡化可動態的計算機體系結構能夠打破傳統計算機中CPU與內存的布局,合理的將CPU、硬盤、內存分離開來,然后將相同類別的部件組在一起。Cache根據計算模式與運行模式的不同需求,以最有效的資源組合方式來實現最適應的體系結構。Cache主要通過模擬器來實現,這種結構具有許多全新的特點,Cache模擬器可以為系統的運行提供硬件模擬與驗證,為系統的操作提供穩定平臺,屬于一個全系統、可伸縮、可并行的模擬器。
(1) 加強對Cache基本概念、組織結構以及基本原理的正確理解;
(2) 掌握Cache容量、相關度、塊大小對性能的影響。
計算機系統性能受存儲器性能影響,它是核心部件之一,存儲器一般是通過結構分層保持價格與容量之間的平衡,從而提升速度。需要在存儲層之間采取相應的機制,來對各層次之間的高速流轉進行實現。對于計算機存儲結構初學者來講,這些方法的出現顯然給學習者增加了難度。Cache模擬器的設計與應用主要是以圖形動畫的形式來分析比較難懂的存儲結構而進行簡單化的,通過用戶交互的方式表現出來。
在計算機CPU與主存之間設置緩沖存儲器,目的是為了提高計算機速度,減小CPU與主存的速度差距,Cache屬于計算機系統中不可缺少的部件之一,對提高計算機系統性能有著重要意義。計算機體系結構Cache模擬器的設計原理主要體現在局部性原理。一個計算機程序引用的數據項向最近引用過的數據項有所傾向,這種現象稱之為局部性原理。該原理屬于計算機系統結構設計的重要基礎。Cache模擬器設計原理主要是把存儲器中訪問較高的內容存放在Cache中,CPU對數據進行讀取時會首先在Cache中查找,如果Cache中存在需要查找的內容,就會直接讀取,然后同時送往Cache和CPU。
計算機體系結構模擬器用戶交互功能接口主要劃分為系統、配置、操作、窗口以及幫助五大類。其主框架,如圖1所示。
1) 系統菜單:其功能是對模擬器進行選擇后將文件完成輸入加載的過程。用戶輸入通過對指令文件處理和轉換,

圖1 模擬器主結構框架
通過此接口,可以滿足模擬器系統對多種指令格式的要求。
2) 配置菜單:在配置菜單中主要顯示系統參數和模擬器參數。系統參數會對接入體系的所有模擬器產生影響,該參數菜單用戶可以進行更改。模擬器參數,會根據系統菜單中所選擇的模擬器來決定是否顯示出來供用戶選擇修改。
3) 操作菜單:操作菜單主要是控制模擬器的顯示,菜單項的內容主要是根據用戶在系統菜單中選擇的模擬器變換。
4) 窗口菜單:窗口菜單會隨著模擬器的不同而進行變換,在向用戶顯示具體模擬器操作時,此菜單會顯示用戶需要的信息。
5) 幫助菜單:在幫助菜單中有各模擬器的使用說明,供用戶查閱。
1) 映像規則
一般情況下,主存的容量會遠大于Cache的容量,所有需要用過映像規則來解決一個塊從主存調入Cache如何放置的問題。映像規則主要分為以下3種。
(1) 全相聯映像:主存中的每一個塊都可以放置到Cache的任意位置。
(2) 直接映像:主存中的塊只能放到Cache中的固定位置。
(3) 組相聯映像:主存中的每一塊可以被放置在Cache中唯一組中的任意位置。
2) 查找方法
當CPU訪問 Cache時,需要確定Cache中的被訪問塊和正確的放置位置。通過目錄搜索的方法會隨著映射方法的不同而改變。通過公式計算的方法對直接映象法塊進行查取,組相聯與全相聯都要通過對部分的Cache塊進行搜索,所以這種方法的實現大多會采取硬件加速的方法。
3) 替換算法
由于主存中的塊會比Cache中的塊多,所以從主存中調入一個塊到Cache中時,就會顯示出該塊所有塊的占用情況,必須要騰出某一個塊,來容納新的塊。
4) 寫策略
在系統運作中的寫操作要比讀操作復雜得多。寫操作分為將主存中的內存塊導入到Cache與寫入Cache兩部分,所以會多出一個寫的步驟,寫操作會花費更多的時間,而且會產生新的問題。根據存儲層次的要求,Cache內容應該屬于主存部分內容的一個副本。
Cache模擬器的模擬過程主要分為兩大模塊,其前端是訪問請求模塊,后端是模擬執行模塊,如圖2所示。
根據前端生產訪問所提出的請求方式的不同,采用execution-driven模擬器作為系統承載平臺。模擬器可以對指令集構架進行實現,并且在模擬器上對程序執行,適時的產生訪問請求來驅動后端,當目標系統的程序運行結束之后,會產生相應的統計信息,這種模擬方法的精度較高,信息統計相對比較充分,實現靈活性模擬。

圖2 Cache模擬器模擬過程
在Cache模擬器設計完成之后,需要研究模擬器的正確使用,下面通過目錄法來對Cache模擬器的使用進行分析。
系統啟動之后,在系統菜單中對Cache模擬器子菜單項進行選擇。如果當前系統正處于其他模擬器狀態,那么要對背景圖進行切換,重新對Cache模擬器初始化,然后再對子菜單項進行選擇。在對話框中選擇目錄法,系統會根據目錄法的相關組件重新初始化,背景圖也會重新描繪。從而可以了解到界面上方有4個文本輸入框以及下拉框??梢栽谖谋究蛑休斎朐L問地址,在下拉框中選擇操作類型,然后開始該訪問在相應的CPU上執行。
Cache模擬器的執行方式大致分為分步執行與連續執行。分步執行主要是已經劃分好的動畫步驟單元按照用戶的指令進行一步一步的執行。連續執行是指模擬器一次性的完成指令的全過程,然后呈現給用戶。
當指令發出之后,模擬器會對指令進行處理,生成動畫操作,根據用戶的選擇,通過不同的動畫執行方式來與用戶之間進行交互。模擬器的執行過程,如圖3所示。

圖3 模擬器執行界面
一旦模擬器進入到執行狀態,會拒絕其他指令的輸入,在界面中的輸入框、下拉框以及按鈕都會被禁止,每一步動畫都會配有相應的說明,用戶可以通過說明來了解相應指令的執行狀況。通過消息通知功能,用戶可以對Cache目錄法的工作原理更好地掌握。在運行的過程中,選擇窗口菜單中的狀態圖菜單,會出現以下界面,如圖4所示。
時刻向用戶顯示Cache的變化狀態,能夠幫助學生更好的理解對狀態圖的描述。
菜單窗口中的信息統計子菜單,會對已經完成的運行指令進行統計,統計信息,如圖4所示。

圖4 多Cache模擬器狀態圖(目錄法)
Cache模擬器的設計采用模塊化與層次化的設計思路,

圖5 Cache模擬器統計信息
每個模塊都是一個相對獨立的系統,更加便于系統進行升級與維護,該模擬器的設計具有良好的靈活性與重構能力,能夠同時配置多個系統,用戶可以進行資源的申請、釋放以及調整。Cache模擬器對體系結構的支持還比較有限,不能夠模擬大規模的系統,隨著科學與技術的發展,該模擬器會得到進一步的升級與完善。