陳虹
摘要:隨著現(xiàn)代經(jīng)濟(jì)的發(fā)展和生活水平的提高,人們對于計算機(jī)的性能要求越來越高,計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)也日益興起,在軟件開發(fā)中擔(dān)任著非常重要的角色。該文首先介紹了計算題體系結(jié)構(gòu)軟件模擬技術(shù)的產(chǎn)生背景,接著簡要介紹了該技術(shù)的流程,分析了當(dāng)前該技術(shù)發(fā)展所面臨的問題,然后給出問題解決的策略,最后提出還需不斷深入研究該技術(shù)以提高計算機(jī)的性能。
關(guān)鍵詞:計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù);問題;解決策略
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)08-1952-02
1 概述
當(dāng)前,人們對于計算機(jī)性能提出越來越高的要求,這使得計算機(jī)系統(tǒng)變得更加復(fù)雜,摩爾定律才能描述處理器的復(fù)雜程度增長.截止到現(xiàn)在,單片的處理器已經(jīng)含有10億多個晶體管,而制造如此復(fù)雜的計算機(jī)系統(tǒng)需要付出高昂的資金成本和時間成本.一般情況下,生產(chǎn)一款處理器經(jīng)過設(shè)計體系結(jié)構(gòu)、設(shè)計驗證與評估、邏輯的設(shè)計與驗證等多道階段,其中每個階段都需要多次重復(fù)制造以保證處理器的質(zhì)量。生產(chǎn)一款處理器在時間上一般需要花費4至7年,有時候甚至需要更長時間,同時整個過程的資金投入也是非常巨大的。在批量生產(chǎn)某款處理器之前,首先需要制造出若干該款處理器,并對其評估測試,不斷地發(fā)現(xiàn)缺陷并修改,直至設(shè)計出符合要求的處理器。雖然這種方法科學(xué),但其并不現(xiàn)實,因為新處理器哪怕生產(chǎn)一個,也需要較高的成本和較長的周期。所以研究人員為了克服這個局限開發(fā)出了能夠精確到時鐘的體系結(jié)構(gòu)軟件模擬技術(shù)。
2 計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)的概述
計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)的主要作用就是采用軟件技術(shù)模擬在系統(tǒng)結(jié)構(gòu)級別中計算機(jī)某些系統(tǒng)硬件的性能和功能特征。采用計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)驗證和評估體系結(jié)構(gòu)設(shè)計成為計算機(jī)系統(tǒng)制造和設(shè)計中必不可少的環(huán)節(jié)。在設(shè)計處理器的過程中,物力與人力資源中大約超過百分之六十都用在了對新處理器的驗證與評估中。我們都知道開發(fā)軟件與開發(fā)復(fù)雜程度相同的硬件相比,其開發(fā)成本較低和開發(fā)周期更短,并且與硬件相比軟件更容易修改,其靈活性更強(qiáng),因此如果運用計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)進(jìn)行驗證與評估不僅可以大大縮短計算機(jī)系統(tǒng)的開發(fā)周期還能夠大幅度降低開發(fā)成本。所以,計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)能夠在短時間內(nèi)驗證評估許多體系結(jié)構(gòu)的設(shè)計方案,在眾多方案中選擇出最優(yōu)的方案。
3 軟件模擬技術(shù)開發(fā)面臨的問題
3.1 計算機(jī)體系結(jié)構(gòu)軟件模擬器的開發(fā)難度較大
計算機(jī)系統(tǒng)是非常復(fù)雜的,要想把所有門電路或者晶體管等各個方面的特征都通過軟件進(jìn)行模擬是不現(xiàn)實的。對計算機(jī)系統(tǒng)按照層次來抽象是對系統(tǒng)復(fù)雜程度進(jìn)行簡化的常用方法,計算機(jī)體系結(jié)構(gòu)是將計算機(jī)系統(tǒng)根據(jù)結(jié)構(gòu)層次進(jìn)行簡化而來的。但是,根據(jù)結(jié)構(gòu)層次簡化出來的計算機(jī)系統(tǒng)仍然非常復(fù)雜,這使得開發(fā)其模擬器也十分困難。還有目前主要還是運用C或者C++編程語言來開發(fā)體系結(jié)構(gòu)的軟件模擬器,采用這些串行結(jié)構(gòu)化的語言固有機(jī)制,比如函數(shù)或者類對計算機(jī)系統(tǒng)的部件行為和功能進(jìn)行模擬,是非常容易出錯并且耗時的過程。所以,開發(fā)計算機(jī)體系結(jié)構(gòu)軟件模擬器一般都還是在現(xiàn)存模擬器的基礎(chǔ)上進(jìn)行改進(jìn)或者二次開發(fā)以適應(yīng)開發(fā)者的要求,如果從0開始進(jìn)行開發(fā)是非常不容易的。實際上,改進(jìn)或者二次開發(fā)現(xiàn)存模擬器的方法仍然具有較大的難度,因為人們還是經(jīng)常懷疑模擬器的結(jié)果。所以還需要反復(fù)驗證模擬器本身,以增強(qiáng)模擬器評估體系結(jié)構(gòu)設(shè)計的可信度。這無疑在側(cè)面加大了模擬器的開發(fā)難度。
3.2 模擬器在評估新設(shè)計時運行時間較長
作為在宿主機(jī)上的一個運行程序,模擬器在對計算機(jī)系統(tǒng)詳細(xì)模擬的時候,這個運行程度需要在時鐘周期的級別上記錄動態(tài)指令運行出來的所有結(jié)果和處理器狀態(tài),比如分支預(yù)測器狀態(tài)、Cache和內(nèi)存行為和寄存器狀態(tài)燈,這些都有巨大的數(shù)據(jù)量,嚴(yán)重降低了詳細(xì)模擬的運行速度。像比較成功的SMARTS軟件模擬器運行速度達(dá)到了9 MIPS,跟宿主機(jī)的硬件相比而言它的運行速度大約慢了4個數(shù)量級。隨著處理器的性能日益提高,國際組織SPEC為對通用處理器性能進(jìn)行評估而不斷發(fā)布新標(biāo)準(zhǔn)程序包以測試性能。在這些標(biāo)準(zhǔn)化性能的測試程序包含有多個極大負(fù)載的性能測試程序,從多個角度對處理器性能進(jìn)行測評。為了保證模擬結(jié)果更加可信,在模擬器中運行標(biāo)準(zhǔn)化性能的測試程序包是很自然的方法。對硬件來講運行這么慢的模擬速度也是一個負(fù)載極大的測試程序,必定有非常長的運行時間。依據(jù)不同的模擬目的,參考使用輸入?yún)?shù)的情況下其運行時間有可能也要幾年甚至幾十年,另外在體系結(jié)構(gòu)層次中有較多參數(shù)可以配置,像Cache大小等,況且這些參數(shù)并不是獨立地影響整個系統(tǒng),,所以每次修改某個參數(shù)時,還需要重新從頭開始運行模擬測試程序,查找其對系統(tǒng)的影響。要想得到一個很好的計算機(jī)體系結(jié)構(gòu),模擬運行需要很長的時間。
3.3 模擬器運行結(jié)果的精度很低
開發(fā)模擬器的過程主要分為理解目標(biāo)體系結(jié)構(gòu)、針對該結(jié)構(gòu)設(shè)計模擬器和實現(xiàn)模擬器的三個步驟,在以上三個步驟中可能存在著很多錯誤。在第一步中,要正確分析模擬器的需求,這也是在軟件開發(fā)的過程中需要重點關(guān)注的現(xiàn)象,常犯的錯誤就是未能正確分析其需求。在第二步中,雖然對計算機(jī)體系結(jié)構(gòu)目標(biāo)能夠正確理解,但還是經(jīng)常因為忽略了計算題體系結(jié)構(gòu)設(shè)計中的一些細(xì)節(jié)而導(dǎo)致了錯誤。在實現(xiàn)模擬器時,對模擬器進(jìn)行編碼是非常容易出現(xiàn)錯誤的。另外,由于模擬器運行模擬的時間較長,開發(fā)人員往往只是執(zhí)行測試程序中的部分指令來代替整體的效果,這樣也嚴(yán)重降低了模擬器運行結(jié)果的精度。導(dǎo)致模擬結(jié)果的精度較差的重要原因就是選取運行的指令不恰當(dāng)。所以當(dāng)前在國際上研究的熱點指向了如何在標(biāo)準(zhǔn)化性能測試的程序中選取部分指令來運行。
4 軟件模擬技術(shù)開發(fā)面臨問題的解決策略
針對以上三種問題,目前學(xué)者已經(jīng)對其解決策略進(jìn)行了大量的研究,我認(rèn)為主要還是從以下兩個策略進(jìn)行改進(jìn):
4.1 減少性能測試程序中的輸入?yún)?shù)
對性能測試程序中的參數(shù)集進(jìn)行科學(xué)地修改以減少模擬器運行性能測試程序時的運行時間。這種方法仍然運行測試程序中的一切指令,只是采用較少的輸入?yún)?shù)來運行模擬,并將其模擬運行的結(jié)果來代替原本輸入?yún)?shù)集運行的結(jié)果。這種方法在一定程度上可以提高提高模擬器運行的精度。
4.2 減少運行模擬指令的數(shù)量
在采用標(biāo)準(zhǔn)化性能的測試程序中,科學(xué)地選取一部分模擬指令對其運行,用這一部分模擬指令的運行結(jié)果替代原本運行的結(jié)果。提高模擬精度和運行速度的關(guān)鍵就在于如何科學(xué)選取用于運行的部分指令,通常有兩種方法:直接截取連續(xù)指令和采用統(tǒng)計方法抽樣選取指令。這兩種方法相比而言,第一種方法操作起來比較簡單,但是其模擬精度降低,第二種方法運行統(tǒng)計方法進(jìn)行抽樣,操作起來可能比較復(fù)雜,但是其精度有所提高。
5 小結(jié)
作為現(xiàn)代計算機(jī)的系統(tǒng)設(shè)計和處理器中的必須工具,計算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)成為了系統(tǒng)設(shè)計的質(zhì)量水平和處理器制造水平的直接影響因素,這也是該技術(shù)成為目前研究熱點的重要原因。我認(rèn)為還需要有更多的專業(yè)人員從事研究該技術(shù)的工作中來,只有這樣才能有效加快我國計算機(jī)技術(shù)的發(fā)展,提升其在國際上的競爭力。
參考文獻(xiàn):
[1] 李經(jīng)松,陳朝暉.軟件總線體系結(jié)構(gòu)的研究與應(yīng)用[J].空間控制技術(shù)與應(yīng)用,2012(4).
[2] 閆建紅,彭新光.可信計算軟件構(gòu)架的檢測研究[J].計算機(jī)測量與控制,2011(11).
[3] 黃志鋼,陶旭東,潘振杰.一種異構(gòu)多核處理器體系結(jié)構(gòu)的軟件仿真[J].沈陽理工大學(xué)學(xué)報,2010(6).
[4] 李明,雒江濤,劉思榮.一種信令數(shù)據(jù)仿真測試儀的軟件體系結(jié)構(gòu)研究與設(shè)計[J].現(xiàn)代電信科技,2011(3).
[5] 劉云翔,陳艷,袁鑫鑫.基于粗集的信息融合系統(tǒng)評價指標(biāo)體系優(yōu)化研究與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2011(9).