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