- 相關(guān)推薦
淺析計算機體系結構模擬技術(shù)現狀挑戰與展望論文
1 引言

計算機系統日益復雜,其研制難度不斷增加,開(kāi)發(fā)風(fēng)險不斷加大,研制周期越來(lái)越長(cháng),體系結構模擬技術(shù)在計算機體系結構研究和系統設計中的作用愈加顯著(zhù). 通過(guò)對計算機系統的建模、仿真及評估,科研人員可以驗證新型體系結構設計;將該技術(shù)導入產(chǎn)品設計則可優(yōu)化系統方案、降低開(kāi)發(fā)風(fēng)險并提升開(kāi)發(fā)效率.
作為一種系統評估手段,體系結構模擬器運行在宿主機上,通過(guò)加載測試程序來(lái)驗證新的設計方案,發(fā)現其中潛在的缺陷,從而改進(jìn)設計并有效控制風(fēng)險. 體系結構模擬器通常使用軟件方式對部分或全部計算機系統硬件建模,對體系結構的指令集架構、處理器、存儲系統、網(wǎng)絡(luò )傳輸拓撲結構等進(jìn)行模擬,驗證系統的功能和性能. 體系結構模擬器已成為系統研究和設計開(kāi)發(fā)中不可或缺的工具.
早期體系結構模擬采用分析驗證技術(shù),如數據驅動(dòng)驗證,即跟蹤收集性能測試程序在目標計算機上運行所產(chǎn)生的數據信息,通過(guò)分析該數據信息來(lái)評估體系結構的性能.這是一種后驗證方法,不利于在項目早期開(kāi)展系統架構分析和風(fēng)險評估. 為在項目早期論證系統設計方案,在數據驅動(dòng)驗證的基礎上又提出了模型分析技術(shù),該技術(shù)使用數學(xué)工具對計算機系統各部件間的接口進(jìn)行建模,通過(guò)評估資源利用率和相應時(shí)序特性來(lái)驗證目標系統的性能. 模型分析技術(shù)可在體系結構設計初期發(fā)現影響系統性能指標的關(guān)鍵因素,從而指導方案設計和改進(jìn). 但由于模型建立及求解過(guò)程復雜,為了簡(jiǎn)化模型,必須將部分細節特征抽象化,導致模型分析結果精度低,測試結果不能準確反應真實(shí)系統特性. 軟件模擬技術(shù)則可以較好的解決這一問(wèn)題.模擬器使用軟件的方式模
擬真實(shí)硬件的功能及時(shí)序特性. 軟件模擬技術(shù)可模擬程序執行的全過(guò)程,獲得程序運行過(guò)程中系統的動(dòng)態(tài)行為及特性. 然而,軟件模擬技術(shù)在表現出較高精度和靈活性的同時(shí),也存在模擬速度過(guò)慢的問(wèn)題. 為了提高模擬速度,軟件模擬與硬件加速相結合的技術(shù)即混合模擬技術(shù)應運而生. 混合模擬技術(shù)將體系結構中的部分或全部部件用FPGA 或硬件仿真器( emulator) 實(shí)現,從而提高模擬性能.
2 模擬精度
模擬器精度主要受三個(gè)方面因素影響:
1) 系統建模精確程度;
2) 輸入參數擬合程度;
3) 指令執行時(shí)序的精確程度.
模型要精確的匹配真實(shí)系統設計,需開(kāi)發(fā)者準確的理解建模任務(wù),并正確的開(kāi)發(fā)出相應模型; 在此基礎上,要針對系統具體行為設計輸入參數集. 為了實(shí)現性能模型的簡(jiǎn)潔和快速執行,開(kāi)發(fā)者往往將一些細節特征抽象化,導致系統時(shí)序出現偏差,降低模擬精度. 在實(shí)際應用中,還存在其它因素影響模擬精度,如緩存控制指令的精確性、I /O 系統模擬的準確性等.
2. 1 蹤跡驅動(dòng)模擬技術(shù)
早期的體系結構模擬器主要采用蹤跡驅動(dòng)( trace-driven)、數學(xué)建模分析等方法. 蹤跡驅動(dòng)技術(shù)收集指令在已有計算機系統中執行所產(chǎn)生的蹤跡數據,并將這些信息作為輸入驅動(dòng)模擬器運行. 這種技術(shù)的優(yōu)點(diǎn)在于可僅對系統的局部進(jìn)行細致模擬而無(wú)需關(guān)注系統的其它部分,從而降低了開(kāi)發(fā)復雜度并提升了執行速度. 缺點(diǎn)是蹤跡本身過(guò)濾了系統的動(dòng)態(tài)信息,如分支預測錯誤等,因而無(wú)法觀(guān)察系統的動(dòng)態(tài)特征,并且蹤跡一般是基于特定參數的固定序列,因此無(wú)法代表不同參數對應的多種執行情況. 典型的軌跡驅動(dòng)模擬器包括磁盤(pán)系統模擬器DiskSim、Cache 模擬器Dinero等. 數學(xué)建模分析方法通過(guò)建立數學(xué)模型來(lái)描述目標系統特征,由于不能精確的獲得性能數據,因此這種方法的誤差較大.
2. 2 執行驅動(dòng)模擬技術(shù)
執行驅動(dòng)( execution-driven) 模擬技術(shù)建立目標系統的功能和性能模型,通過(guò)應用程序的執行獲取性能數據,從而獲得較高的模擬精度,執行驅動(dòng)的模擬器使用目標程序的二進(jìn)制代碼作為輸入來(lái)驅動(dòng)模擬過(guò)程. 在模擬過(guò)程中,模擬器模擬指令的動(dòng)態(tài)執行( 如分支預測等) 過(guò)程,從而在不需要目標系統硬件的情況下獲得更接近真實(shí)目標系統運行的結果,并能夠精確的模擬不同部件對系統性能的影響. 相對于蹤跡驅動(dòng)等技術(shù),執行驅動(dòng)減小了存儲空間的開(kāi)銷(xiāo),模擬器的輸入數據量只與程序的靜態(tài)指令數成比例,動(dòng)態(tài)指令則在模擬過(guò)程中由模擬器生成,一定程度上會(huì )影響執行速度. 采用執行驅動(dòng)的模擬器可以運行完整的操作系統和應用程序,是實(shí)現全系統模擬的一種常用方法. 執行驅動(dòng)技術(shù)已經(jīng)成為體系結構模擬的主流技術(shù),典型的應用有SimpleScalar、SimOS、Proteus等.
3 模擬速度
模擬速度是衡量模擬器性能的重要指標. 精確的性能模擬是非常耗時(shí)的過(guò)程,特別是隨著(zhù)系統中處理器核心數的迅猛增長(cháng),模擬大規模計算機系統所需要的時(shí)間會(huì )變得難以接受. 以200KIPS 的模擬執行速度模擬單核1 秒運行需要數小時(shí),而模擬千核系統的1 秒運行需要耗時(shí)一年以上,這顯然不能滿(mǎn)足現代體系結構的研究與設計需求. 模擬加速一直以來(lái)都是模擬技術(shù)研究領(lǐng)域重點(diǎn)關(guān)注的問(wèn)題. 典型的加速方法包括動(dòng)態(tài)二進(jìn)制翻譯( DBT) 、穿線(xiàn)碼加速、采樣加速、同構加速、并行模擬加速、硬件加速等.
3. 1 動(dòng)態(tài)二進(jìn)制翻譯
動(dòng)態(tài)二進(jìn)制翻譯( DBT) 將某個(gè)指令集上可執行的二進(jìn)制代碼翻譯到宿主機指令集執行. 二進(jìn)制翻譯最初采用解釋執行,它對源處理器代碼中的每條指令實(shí)時(shí)解釋執行,系統不保存解釋后的代碼,翻譯一條便執行一條指令. 解釋器相對容易開(kāi)發(fā),但對代碼執行不做任何優(yōu)化,執行效率低. 靜態(tài)翻譯技術(shù)解決了這一問(wèn)題,它在源處理器代碼執行之前對其進(jìn)行翻譯,有足夠的時(shí)間對翻譯后的代碼做完整細致的優(yōu)化,并且一次翻譯的結果可以多次使用,避免了多次解釋操作帶來(lái)的時(shí)間開(kāi)銷(xiāo). 但是,靜態(tài)翻譯無(wú)法很好的解決代碼自修改、間接過(guò)程調用、間接跳轉等問(wèn)題.
動(dòng)態(tài)翻譯是一種實(shí)時(shí)編譯技術(shù),即在程序運行過(guò)程中對執行到的片斷進(jìn)行翻譯,解決了靜態(tài)翻譯存在的問(wèn)題. 程序運行時(shí),DBT 翻譯器在其本地地址空間開(kāi)始執行指令、逐行解碼,遇到系統調用指令則采用翻譯器自身的調用函數進(jìn)行替換,在調用點(diǎn)接替操作系統內核的職能. 當程序中有頻繁重復的指令片段時(shí),DBT 將直接執行已經(jīng)翻譯好的相應代碼,從而省去了重新編譯的過(guò)程. 高速緩存中放置翻譯后程序片斷的位置稱(chēng)為翻譯緩存,當該緩存填滿(mǎn)時(shí),DBT 采用兩種方式處理: 清空翻譯緩存區域、重新加載; 或者增加緩存區的大小. 如果程序的一個(gè)運行指令集合超出翻譯緩存空間,則第一種方法將會(huì )失效; 而第二種方法會(huì )降低cache 的利用率,因為大多情況下需要一次翻譯的片斷長(cháng)度有限; 具體策略根據需求進(jìn)行選擇. 動(dòng)態(tài)二進(jìn)制翻譯可以解決代碼自修改問(wèn)題,利用執行時(shí)的動(dòng)態(tài)信息去發(fā)掘優(yōu)化機會(huì ),對用戶(hù)能做到完全透明. 將DBT 應用于體系結構模擬器,編譯器可以選擇只翻譯那些頻繁執行的程序和用戶(hù)需要詳細模擬的程序,這樣既能提高cache 利用率,也能讓編譯器更好的優(yōu)化目標代碼,有效提高模擬速度.
3. 2 采樣技術(shù)
采樣技術(shù)是通過(guò)減少模擬運行的指令數來(lái)達到模擬加速的目的,具體分為隨機采樣、周期采樣和統計采樣. 隨機采樣是指隨機選擇一些程序片斷進(jìn)行模擬運行,將模擬結果以某種方式合并起來(lái),用于代表整個(gè)測試程序的運行. 隨機采樣的片斷長(cháng)度一般是固定值,采樣片斷之間的距離則是隨機的,可以通過(guò)反復重新采樣后求模擬結果的平均值,使其盡可能的接近整個(gè)程序的運行結果. 周期采樣是在程序中周期性的選擇片斷進(jìn)行模擬運行,用戶(hù)可以靈活的設置周期長(cháng)短和間隔大小. 統計采樣是基于統計學(xué)的方法推測出測試程序的特征,通過(guò)測量變化差異使采樣片斷能夠反映出程序的變化,從而確保采樣集是代表整個(gè)程序的最小采樣集. 采用該類(lèi)技術(shù)的模擬器有SimPoint、SMARTS等.
采樣技術(shù)的關(guān)鍵在于程序片段的選取. 隨機采樣不確定性較大,該方式測試結果與整個(gè)程序結果之間存在偏差,反復采樣取平均方法可以提升準確度,但驗證過(guò)程耗時(shí). 周期采樣同樣難以選擇合適的采樣頻率和片斷長(cháng)度以使取得的采樣集是最小集合. 統計采樣技術(shù)需要通過(guò)合適的方法找到最佳采樣集. SMARTS 模擬器就是采用基于統計的采樣方法,采樣片斷是周期性采樣,長(cháng)度基本固定但允許有輕微的變化以對齊時(shí)鐘周期邊界. 為保證片斷執行時(shí)宿主機的cache 以及分支預測器等處于正確的狀態(tài),SMARTS 在詳細執行片斷程序之前先粗略的模擬片斷之間的代碼以完成Cache 及分支預測器等部件的初始化. 模擬過(guò)程分為功能模擬和詳細模擬階段,功能模擬執行間隔代碼,這個(gè)階段模擬器忽略許多內部狀態(tài)的記錄,程序快速向前推進(jìn),為下一階段的詳細模擬建立正確的部件狀態(tài); 詳細模擬階段則精確執行程序片斷. FFX + WUY + Run Z 也是一種基于統計的采樣方法,FFX( Fast-ForwardX) 是指測試程序運行開(kāi)始后快速執行X 百萬(wàn)條指令,粗略模擬; WU Y 指詳細模擬之后的Y 百萬(wàn)條指令,以便建立起符合詳細模擬情況的運行環(huán)境,但該階段的模擬結果并不作為整個(gè)模擬結果的參照; 接下來(lái)的Z 百萬(wàn)條才是模擬器真正詳細執行的程序段. 該方法可極大的減少模擬運行時(shí)間,但Z 百萬(wàn)條指令往往不能代表整個(gè)程序的執行結果,從而導致模擬誤差.
4 可用性
對于體系結構模擬技術(shù),可用性包括兩個(gè)方面: 一方面模擬器應能適應各種系統應用場(chǎng)景,如: 單核單任務(wù)、單核多任務(wù)與多核多任務(wù)等; 另一方面,加載到模擬器的測試程序可用度高,支持多個(gè)平臺和多種編譯器,使模擬器能夠發(fā)揮最大的驗證功效.
4. 1 用戶(hù)級虛擬化
隨著(zhù)計算機系統處理器核數的迅猛增長(cháng),千核系統成為現實(shí),給模擬器技術(shù)帶來(lái)了巨大挑戰. 由于千核系統規模龐大,能加載的測試程序類(lèi)型有限,無(wú)法全面的評估千核系統特性,進(jìn)而影響了千核系統的研究、開(kāi)發(fā). 為解決該問(wèn)題,需要新的技術(shù)使模擬器能夠加載更廣泛的測試程序.Daniel 等人使用輕量用戶(hù)級虛擬化技術(shù)( lightweight userlevel virtualization) 構建了ZSim 模擬器,實(shí)現千核系統測試程序的靈活加載. 用戶(hù)級虛擬化技術(shù)使用動(dòng)態(tài)二進(jìn)制翻譯給用戶(hù)進(jìn)程提供虛擬系統視圖來(lái)支持多程序并發(fā)執行,并支持運行管理及客戶(hù)-服務(wù)器類(lèi)型負載. 常規的用戶(hù)級模擬器通常不能模擬此類(lèi)程序.為實(shí)現千核系統的模擬,模擬器利用了宿主機上的多個(gè)處理器,突破了傳統模擬器僅能在單處理器上運行的局限. 為適應多處理器并行架構,ZSim 每個(gè)進(jìn)程利用共享內存段作為一個(gè)全局堆,所有的仿真狀態(tài)都存儲在全局堆中. 通過(guò)調整共享堆和庫代碼段的映射地址,實(shí)現跨進(jìn)程無(wú)縫信息傳遞. 盡管線(xiàn)程來(lái)自不同的處理器,ZSim 也可被視為一個(gè)簡(jiǎn)單的多線(xiàn)程應用,并可使用輪換調度算法( round-robin) 來(lái)創(chuàng )建任意數量的線(xiàn)程. 為避免模擬器操作系統出現死鎖現象,ZSim 舍棄傳統模擬器使用的修改測試程序的辦法,而是識別出阻塞的系統調用的子集,通過(guò)調整內部同步點(diǎn)使得線(xiàn)程加入和退出來(lái)避免死鎖. 為擺脫程序運行依賴(lài)精確的時(shí)間,模擬器虛擬化了rdtsc( 讀時(shí)間戳計數器) 指令、只有少數內核接口、睡眠處理和超時(shí)處理調用返回時(shí)間信息,使得宿主機與模擬器的時(shí)間相互獨立. 通過(guò)引入上述技術(shù),ZSim 實(shí)現了多種類(lèi)型測試程序的加載運行、如客戶(hù)端-服務(wù)器類(lèi)程序,并可模擬完整的千核系統.
4. 2 優(yōu)化測試程序
優(yōu)化測試程序是通過(guò)精簡(jiǎn)基準測試程序集,使模擬測試更具有針對性,以提高模擬的效率. 對于基準測試程序集,其初衷是將一些基準測試程序集中化、規范化,以有效評測系統在各種應用場(chǎng)景下的性能. 該程序集可以彌補基準測試程序個(gè)體的不足. 但也存在以下幾個(gè)問(wèn)題:
1) 缺少可信度,基準程序的運行往往與實(shí)際程序運行存在差異;
2) 每個(gè)程序有不同的運行條件,用戶(hù)為改善測試程序的性能常使用專(zhuān)用標記,但這些標記又容易引起許多程序的不合法轉換或降低其他程序的性能;
3) 完整程序集的運行時(shí)間長(cháng). 由于研究側重點(diǎn)不同,研究者往往采用精簡(jiǎn)代碼的方式來(lái)獲得更好的系統性能測試結果. 以SPEC CPU2000 為例,它是SPEC 中面向處理器的基準測試程序集,為處理器研發(fā)人員廣泛使用,其包含多組性能測試程序,能測試多處理器計算機系統的整數運算性能和浮點(diǎn)數運算性能. 其中,整數運算基準程序以C 語(yǔ)言開(kāi)發(fā)為主,浮點(diǎn)運算基準程序主要用Fortran 語(yǔ)言開(kāi)發(fā),用于各種CPU 的性能評價(jià). 為了優(yōu)化基準測試程序,眾多處理器研究者致力于研究如何精簡(jiǎn)代碼使得模擬評估處理器過(guò)程更為高效,所做的工作包括減少代碼運行、減少輸入的數據等.
Timothy 等人通過(guò)分析測試程序的基礎模塊分布( Basic Block Distribution) ,試圖運行一些程序片斷去代替整個(gè)程序的運行. 他認為不同的基礎模塊能唯一標識不同的指令執行階段,基礎模塊的周期運行反映了計算機系統各個(gè)構件的周期運行,如IPC、分支命中率、緩存命中率、預測值、預測地址、重排序緩存占用等. 由于基本塊的頻度信息可以使用工具快速收集,因此該方法提供了一種尋找程序模擬點(diǎn)及周期性特征的實(shí)用方法. KleinOsowski 等人在SPECCPU2000 的基礎上開(kāi)發(fā)了MinneSPEC 測試程序,該程序精簡(jiǎn)了模擬輸入的參數集,但保留原數據集內部函數的運行權重分布,包括初始化、主要計算功能和復位功能等,極大的降低了模擬運行時(shí)間. 但是,MinneSPEC 測試程序所模擬出的結果與原測試指令集有較大差異,取得的優(yōu)化效果有限. Erez 等人通過(guò)選擇執行部分程序來(lái)代表完整的程序執行,使用統計驅動(dòng)算法生成模擬點(diǎn)集合,并使用檢驗算法去選定代碼執行初期的模擬點(diǎn). 該方法的難點(diǎn)在于如何給出一個(gè)指標以選擇合適的模擬點(diǎn),該指標基于程序基本塊的分布,通過(guò)研究它們的塊矢量差分布情況來(lái)決定運行的代碼.
5模擬器技術(shù)面臨的挑戰
現有的計算機體系結構模擬器在精度、速度、可用性和易用性等方面均存在不同程度的不足. 一直以來(lái),研究人員不斷努力改進(jìn)模擬技術(shù). 如蹤跡驅動(dòng)的較大誤差使得執行驅動(dòng)技術(shù)得到重視和發(fā)展,基準測試程序的漫長(cháng)運行時(shí)間促使人們對采樣技術(shù)進(jìn)行研究,計算機系統規模的日漸龐大推進(jìn)了并行模擬技術(shù)的發(fā)展. 隨著(zhù)計算機系統逐步進(jìn)入千核時(shí)代,模擬技術(shù)又迎來(lái)了新的重大挑戰.
體系結構模擬器面臨的首要挑戰是系統建模復雜度急劇增加. 因功耗和散熱等因素的限制已不能繼續采用提升單一處理器頻率的方式提升系統性能,計算機系統多采用多核、多處理器方式構建. 即使每個(gè)處理器、核心均在較低的頻率、功耗下運行,其系統整體性能依然大幅超越單核處理器系統.Intel 的實(shí)驗結果表明,單核處理器每提高20% 的時(shí)鐘頻率,僅能提升13%的性能,但增加73% 的功耗; 而當增加第二個(gè)核心時(shí),可在降低20% 時(shí)鐘頻率的同時(shí)提高73% 的性能. 對于通用CPU,在上個(gè)世紀90 年代末, IBM、惠普、SUN 等服務(wù)器廠(chǎng)商就相繼推出了多核服務(wù)器CPU. 2006 年, Intel 推出了雙核處理器,接下來(lái)陸續推出了面向服務(wù)器、工作站和個(gè)人電腦的4 核、8 核處理器. 2014 年2 月, Intel 又發(fā)布具有15 核心的至強通用處理器,基于該處理器構建的64 路分布式共享內存系統已經(jīng)接近1000 核心. 對于眾核處理器,2007 年Tilera公司發(fā)布的嵌入式處理器TILE64 包含了64 個(gè)核心,在2010年Supercomputer 會(huì )議上Intel 公布了單芯片48 核的云處理器架構,并聲稱(chēng)其理論上可達到1000 個(gè)核心,而GPU 已經(jīng)具有數千核心.
計算機系統已經(jīng)步入千核時(shí)代,但現有的體系結構模擬器大都不能勝任千核系統模擬,如單線(xiàn)程運行的Gem5、Flexus、MARSS 等模擬器雖然理論上可以模擬千核系統,但其在可用資源、模擬速度等方面均不能滿(mǎn)足千核系統的模擬需求. Hypersim 能較好的模擬HPP 高性能計算機體系結構,但只針對集群系統,適用范圍有限; ZSim 采用多處理器并行化方法提高了千核系統模擬的速度,相比單線(xiàn)程模擬器取得了顯著(zhù)的進(jìn)步,但由于采取了較多的精簡(jiǎn)策略,影響了其模擬精度.體系結構模擬器面臨的第二個(gè)挑戰是模擬速度與精度難以兼顧. 現有的模擬加速技術(shù)如采樣技術(shù)、動(dòng)態(tài)二進(jìn)制翻譯等均是以犧牲模擬精度為代價(jià). 模擬器執行全部的基準測試程序集能夠獲得完整的系統特征數據,但耗時(shí)巨大,執行部分測試程序或者程序的部分代碼能加快模擬速度,但影響測試結果的精度,故體系結構模擬需要在精度和速度間權衡. 即使以大幅損失精度為代價(jià),現有模擬器的模擬速度依然無(wú)法滿(mǎn)足千核系統的模擬需求. 硬件加速方案是一種選擇,但軟硬件混合模擬器的開(kāi)發(fā)難度大、周期長(cháng),因此硬件加速還不能成為主流的模擬器技術(shù).
模擬器技術(shù)面臨的第三個(gè)挑戰是對異構多核系統支持不足. 一些計算密集型應用如圖形處理、氣候模擬、分子動(dòng)力學(xué)計算等對系統處理性能要求高,通用處理器系統無(wú)法滿(mǎn)足其需求,而GPU 擁有超強的浮點(diǎn)處理、矢量計算能力,特別適合大規模、低耦合度并行計算任務(wù). 相比于通用處理器,GPU 在圖形處理、氣候模擬、分子動(dòng)力學(xué)計算等應用處理上有百倍甚至上千倍的性能提升. 因此采用CPU + GPU 并行模式,占用系統絕大部分性能的密集型計算將由GPU 執行,而少量控制型任務(wù)( 如運行操作系統、處理數據交互等) 將由CPU 執行.根據Amdahl 定律,采用GPU 加速密集型計算任務(wù)處理措施后,系統可以獲得較好的加速比,CPU + GPU 模式在高性能計算中獲得了廣泛應用. 但是當前,面向CPU + GPU 異構系統的模擬研究極為有限.
大多數模擬器雖然集成了多種處理器模型,但在模擬時(shí)只能使用單一處理器模型,尚缺乏對異構多核系統并行模擬的支持. LIN 等人構造的異構多核架構模擬器雖然實(shí)現了在多個(gè)SimpleScalar 進(jìn)程中運行不同處理器模型,但其系統結構與真實(shí)異構系統存在較大差異,不能精確的模擬異構系統.
6 研究展望
為了更好支持未來(lái)計算機系統的研究和設計,體系結構模擬技術(shù)需要從4個(gè)方面取得更多的創(chuàng )新和突破. 針對歸納4A 理論示意圖Fig. 1 4A theory schematic diagram的模擬器4 個(gè)特征,本文提出4A 理論( accuracy,acceleration, availabilityand adaptability ) ,即未來(lái)體系結構模擬技術(shù)需在精度、速度、可用性、易用性4 個(gè)方面均取得重大突破,理想的模擬器將會(huì )是這4 類(lèi)技術(shù)發(fā)展的交集.基于4A理論,本文認為如下幾個(gè)研究方向需要重點(diǎn)關(guān)注:
6. 1 基準測試程序集優(yōu)化
基準測試程序優(yōu)化是一種提升模擬效率的重要方法. 基準測試程序應能準確、高效的測試目標系統,同時(shí)具備一定的靈活性,允許用戶(hù)對源代碼進(jìn)行修改. 基準測試程序集需要面向多種類(lèi)型應用,盡可能覆蓋各個(gè)應用場(chǎng)景.
6. 2 模型組件化
體系結構性能模擬要求建立精確的時(shí)序模型,各部件模型之間需要頻繁的通信和同步,成為并行模擬器設計的難點(diǎn).若將并行模擬器中通信和同步功能分別獨立實(shí)現,各部件模塊內部進(jìn)行功能模擬,通過(guò)調用統一接口模型進(jìn)行交互,則可使設計者更專(zhuān)注于部件模塊的建模與設計,而較少考慮它們之間的通信和同步問(wèn)題.
6. 3 大規模并行模擬
當前大規模計算機系統能夠提供大容量?jì)却、IO 帶寬和強大的計算能力,現有絕大部分模擬器還基于單線(xiàn)程運行,無(wú)法充分利用大規模計算機系統提供的資源. 并行化模擬技術(shù)尚未成熟,仍然需要深入的研究和探索.
6. 4 異構系統模擬
異構多處理器架構在解決科學(xué)計算、圖形處理、加解密等高性能計算問(wèn)題中已經(jīng)發(fā)揮出巨大的作用,但異構模擬技術(shù)研究相對滯后,模擬器支持有限,異構模擬技術(shù)是未來(lái)體系結構模擬技術(shù)重要發(fā)展方向之一.
6. 5 硬件加速技術(shù)
FPGA 或者硬件仿真器( emulator,如cadence 公司的Palladium等) 加速技術(shù)已經(jīng)得到普遍應用,利用上述技術(shù)可實(shí)現單個(gè)部件或者全系統的模擬,不僅大大加快了模擬器的速度,而且提高了基準測試程序的執行效率. 但是隨著(zhù)計算機系統規模越來(lái)越大,單片FPGA 或單臺硬件仿真器無(wú)法容納全系統甚至主要部件邏輯,而采用多片FPGA 或多臺硬件仿真器加速方案依然存在諸多協(xié)同、交互難題,故硬件加速技術(shù)仍需要進(jìn)一步發(fā)展.
7 結束語(yǔ)
計算機系統已步入千核時(shí)代,規模龐大、結構復雜、開(kāi)發(fā)周期長(cháng)、風(fēng)險高,迫切需要計算機體系結構模擬技術(shù)提供強有力的支撐. 本文首先按照精度、速度、可用性和易用性4 個(gè)方面的特征對計算機體系結構模擬技術(shù)現狀進(jìn)行了分析和歸納,并總結其不足之處. 隨后論述了大規模計算機系統模擬面臨的若干挑戰,并提出了未來(lái)理想模擬器應是精度、速度、可用性及易用性技術(shù)發(fā)展交集的4A 理論,據此對體系結構模擬技術(shù)未來(lái)發(fā)展進(jìn)行展望.
【淺析計算機體系結構模擬技術(shù)現狀挑戰與展望論文】相關(guān)文章:
08-17
03-26
03-21
03-21
03-21
03-22
07-10
03-22
03-22