一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù)的制作方法
【專利摘要】本發(fā)明公布了一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),其特征在于:包括三個(gè)流程:執(zhí)行前初始設(shè)置階段、執(zhí)行過程階段和執(zhí)行后新初始設(shè)置階段;執(zhí)行前初始設(shè)置階段:嵌入式全數(shù)字仿真軟件在運(yùn)行目標(biāo)應(yīng)用程序之前,緩沖區(qū)具有默認(rèn)設(shè)置功能,設(shè)置默認(rèn)設(shè)置;執(zhí)行過程階段:執(zhí)行過程是一個(gè)緩沖區(qū)不斷調(diào)整的動態(tài)過程,即步驟為:執(zhí)行、性能反饋、更新設(shè)置、執(zhí)行;循環(huán)經(jīng)過N次迭代,最終完成執(zhí)行過程,同時(shí)實(shí)現(xiàn)緩沖區(qū)的合理設(shè)置;本發(fā)明在各種處理器仿真軟件中廣泛使用,包括解釋執(zhí)行、二進(jìn)制翻譯等,針對取指、譯碼和運(yùn)行結(jié)果,都可以進(jìn)行緩存,利用程序的局部性進(jìn)行復(fù)用,能夠顯著提高數(shù)字化仿真的性能。
【專利說明】一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)仿真【技術(shù)領(lǐng)域】,具體地說,涉及一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù)。
【背景技術(shù)】
[0002]嵌入式計(jì)算機(jī)系統(tǒng)數(shù)字化仿真技術(shù)在軟件開發(fā)和測試工作中廣泛引用,在硬件設(shè)備不具備或資源受限情況下,能夠快速構(gòu)件純軟件模擬的虛擬設(shè)備,使得開發(fā)人員提前進(jìn)行軟件開發(fā)測試;此外,由于計(jì)算機(jī)系統(tǒng)數(shù)字化仿真能夠?qū)⑦\(yùn)行過程的所有信息顯示和記錄,相對于硬件具有更好的可觀察性。數(shù)字化仿真廣泛使用的主要阻礙是仿真速度,由于硬件是高速并行執(zhí)行,目前微處理器的執(zhí)行頻率可以達(dá)到數(shù)GHz以上,而數(shù)字化仿真則采用軟件方法串行的執(zhí)行過程,通常硬件一個(gè)時(shí)鐘節(jié)拍執(zhí)行完成的指令,軟件仿真開銷則要高一個(gè)或兩個(gè)數(shù)量級。
[0003]數(shù)字仿真的核心是指令集,即仿真目標(biāo)處理器每一條指令都必須通過軟件的方式重新實(shí)現(xiàn),尤其是為達(dá)到時(shí)鐘精確的微結(jié)構(gòu)仿真,取指、譯碼、讀操作系統(tǒng)、執(zhí)行、訪存和寫回寄存器等流水操作都是主要的性能損耗,因?yàn)槊恳粭l指令都需要經(jīng)歷這些過程。
[0004]根據(jù)統(tǒng)計(jì)經(jīng)驗(yàn),軟件運(yùn)行具有時(shí)間局部性和空間局部性??臻g局部性是指后續(xù)執(zhí)行所使用代碼和數(shù)據(jù)很大可能位于當(dāng)前代碼和數(shù)據(jù)附近,時(shí)間局部性是指當(dāng)前執(zhí)行所使用的代碼和數(shù)據(jù)很大可能將被立即重復(fù)使用。嵌入式系統(tǒng)全數(shù)字仿真工具需要模擬所有的處理器指令集,為充分利用時(shí)間局部性,將已經(jīng)執(zhí)行結(jié)束的指令譯碼信息進(jìn)行保存,能夠避免重復(fù)操作,實(shí)踐證明,譯碼緩沖能夠顯著提高仿真性能。但是譯碼緩沖區(qū)大小設(shè)置卻沒有好的設(shè)置方式,不同應(yīng)用領(lǐng)域差異顯著。作為通用的數(shù)字化仿真工具,在面臨不合適大小的緩沖區(qū)時(shí),可能造成無法利用局部性執(zhí)行信息等后果,造成仿真性能下降。
【發(fā)明內(nèi)容】
[0005]為解決【背景技術(shù)】中的問題,本發(fā)明提供了一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),滿足不同類型的應(yīng)用需求,使得數(shù)字化仿真工具能夠作為通用產(chǎn)品,提出指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),實(shí)現(xiàn)資源利用和性能優(yōu)化的最佳權(quán)衡。
[0006]本發(fā)明的技術(shù)方案是:
[0007]—種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),其特征在于:包括三個(gè)流程:執(zhí)行前初始設(shè)置階段、執(zhí)行過程階段和執(zhí)行后新初始設(shè)置階段;
[0008]執(zhí)行前初始設(shè)置階段:嵌入式全數(shù)字仿真軟件在運(yùn)行目標(biāo)應(yīng)用程序之前,緩沖區(qū)具有默認(rèn)設(shè)置功能,設(shè)置默認(rèn)設(shè)置;
[0009]執(zhí)行過程階段:執(zhí)行過程是一個(gè)緩沖區(qū)不斷調(diào)整的動態(tài)過程,即步驟為:執(zhí)行、性能反饋、更新設(shè)置、執(zhí)行;循環(huán)經(jīng)過N (N為大于I的整數(shù))次迭代,最終完成執(zhí)行過程,同時(shí)實(shí)現(xiàn)緩沖區(qū)的合理設(shè)置;
[0010]執(zhí)行后新初始設(shè)置階段:在整個(gè)應(yīng)用運(yùn)行結(jié)束后,根據(jù)執(zhí)行過程對緩沖區(qū)設(shè)置信息,形成針對該應(yīng)用的新初始設(shè)置,在下一次運(yùn)行該應(yīng)用時(shí)能夠基于新設(shè)置運(yùn)行,實(shí)現(xiàn)資源和性能的平衡。
[0011]在執(zhí)行過程階段中,緩沖區(qū)動態(tài)調(diào)整的粒度可以在指令級,根據(jù)當(dāng)前性能統(tǒng)計(jì)結(jié)果信息,增減緩沖區(qū)資源,性能統(tǒng)計(jì)的結(jié)果可以是單周期內(nèi)執(zhí)行的指令數(shù)。
[0012]由于采用了上述技術(shù)方案,與現(xiàn)有技術(shù)相比較,本發(fā)明在各種處理器仿真軟件中廣泛使用,包括解釋執(zhí)行、二進(jìn)制翻譯等,針對取指、譯碼和運(yùn)行結(jié)果,都可以進(jìn)行緩存,利用程序的局部性進(jìn)行復(fù)用,能夠顯著提高數(shù)字化仿真的性能。
[0013]指令集緩沖區(qū)合理設(shè)置維問題,滿足不同類型的應(yīng)用需求,使得數(shù)字化仿真工具能夠作為通用產(chǎn)品,提出本發(fā)明實(shí)現(xiàn)資源利用和性能優(yōu)化的最佳權(quán)衡。
【專利附圖】
【附圖說明】
[0014]圖1為本發(fā)明一種實(shí)施例的指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù)示意圖;
[0015]圖2為本發(fā)明一種實(shí)施例的指令級動態(tài)自適應(yīng)方法示意圖;
[0016]圖3為本發(fā)明一種實(shí)施例的任務(wù)級動態(tài)自適應(yīng)方法示意圖;
[0017]圖4為本發(fā)明一種實(shí)施例的應(yīng)用信息制導(dǎo)動態(tài)自適應(yīng)示意圖。
【具體實(shí)施方式】
[0018]實(shí)施例
[0019]如圖1所示,一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),其特征在于:包括三個(gè)流程:執(zhí)行前初始設(shè)置階段、執(zhí)行過程階段和執(zhí)行后新初始設(shè)置階段。
[0020]執(zhí)行前初始設(shè)置階段:嵌入式全數(shù)字仿真軟件在運(yùn)行目標(biāo)應(yīng)用程序之前,緩沖區(qū)具有默認(rèn)設(shè)置功能,設(shè)置默認(rèn)設(shè)置。
[0021]執(zhí)行過程階段:執(zhí)行過程是一個(gè)緩沖區(qū)不斷調(diào)整的動態(tài)過程,即步驟為:執(zhí)行、性能反饋、更新設(shè)置、執(zhí)行;循環(huán)經(jīng)過N (N為大于I的整數(shù))次迭代,最終完成執(zhí)行過程,同時(shí)實(shí)現(xiàn)緩沖區(qū)的合理設(shè)置。
[0022]執(zhí)行后新初始設(shè)置階段:在整個(gè)應(yīng)用運(yùn)行結(jié)束后,根據(jù)執(zhí)行過程對緩沖區(qū)設(shè)置信息,形成針對該應(yīng)用的新初始設(shè)置,在下一次運(yùn)行該應(yīng)用時(shí)能夠基于新設(shè)置運(yùn)行,實(shí)現(xiàn)資源和性能的平衡。
[0023]在執(zhí)行過程階段中,緩沖區(qū)動態(tài)調(diào)整的粒度可以在指令級,根據(jù)當(dāng)前性能統(tǒng)計(jì)結(jié)果信息,增減緩沖區(qū)資源,性能統(tǒng)計(jì)的結(jié)果可以是單周期內(nèi)執(zhí)行的指令數(shù)。
[0024]針對緩沖區(qū)動態(tài)自適應(yīng)過程,執(zhí)行過程的反饋回路和更新設(shè)置具有不同的實(shí)現(xiàn)層次,包括指令級和任務(wù)級,同時(shí)也可以是應(yīng)用信息制導(dǎo)的動態(tài)自適應(yīng)方式,本節(jié)針對不同的實(shí)現(xiàn)方式分別闡述。
[0025]方法一:指令級動態(tài)自適應(yīng)
[0026]根據(jù)基本原理,緩沖區(qū)動態(tài)調(diào)整的粒度可以在指令級,如圖2所示,每執(zhí)行1000000條指令,根據(jù)當(dāng)前性能統(tǒng)計(jì)結(jié)果信息,增減緩沖區(qū)資源;性能統(tǒng)計(jì)的結(jié)果可以是單周期內(nèi)執(zhí)行的指令數(shù)。
[0027]方法二:任務(wù)級動態(tài)自適應(yīng)
[0028]如圖3所示,對于較大的應(yīng)用可以采用指令級動態(tài)自適應(yīng)的方法,但是針對較小的應(yīng)用,運(yùn)行過程比較單一,可以執(zhí)行完整任務(wù)后,根據(jù)性能結(jié)果增減緩沖區(qū)資源分配,經(jīng)過多個(gè)回合迭代可以實(shí)現(xiàn)最優(yōu)的初始資源設(shè)置。
[0029]方法三:信息制導(dǎo)動態(tài)自適應(yīng)
[0030]方法一和方法二都是自動識別緩沖區(qū)對仿真運(yùn)行性能的過程,如果全數(shù)字仿真軟使用者對目標(biāo)軟件的特征十分熟悉,可以在程序運(yùn)行之前對程序進(jìn)行分階段進(jìn)行資源分配制導(dǎo),如圖4所示。
[0031]制導(dǎo)信息范例如下:
[0032]10000時(shí)鐘周期,256指令緩沖區(qū)
[0033]300000時(shí)鐘周期,1024指令緩沖區(qū)
[0034]500000時(shí)鐘周期,512指令緩沖區(qū)
[0035]......[0036]上述示例應(yīng)用程序制導(dǎo)信息通知全數(shù)字仿真軟件,在運(yùn)行10000時(shí)鐘周期時(shí),將緩沖區(qū)更新為256,而300000時(shí)鐘周期時(shí),將指令緩沖區(qū)增加至1024,而在500000時(shí)鐘周期時(shí),將緩沖區(qū)減少至512。
[0037]由于采用了上述技術(shù)方案,與現(xiàn)有技術(shù)相比較,本發(fā)明在各種處理器仿真軟件中廣泛使用,包括解釋執(zhí)行、二進(jìn)制翻譯等,針對取指、譯碼和運(yùn)行結(jié)果,都可以進(jìn)行緩存,利用程序的局部性進(jìn)行復(fù)用,能夠顯著提高數(shù)字化仿真的性能。
[0038]本發(fā)明不局限于上述的優(yōu)選實(shí)施方式,任何人應(yīng)該得知在本發(fā)明的啟示下做出的變化,凡是與本發(fā)明具有相同或者相近似的技術(shù)方案,均屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),其特征在于:包括三個(gè)流程:執(zhí)行前初始設(shè)置階段、執(zhí)行過程階段和執(zhí)行后新初始設(shè)置階段; 執(zhí)行前初始設(shè)置階段:嵌入式全數(shù)字仿真軟件在運(yùn)行目標(biāo)應(yīng)用程序之前,緩沖區(qū)具有默認(rèn)設(shè)置功能,設(shè)置默認(rèn)設(shè)置; 執(zhí)行過程階段:執(zhí)行過程是一個(gè)緩沖區(qū)不斷調(diào)整的動態(tài)過程,即步驟為:執(zhí)行、性能反饋、更新設(shè)置、執(zhí)行;循環(huán)經(jīng)過N (N為大于I的整數(shù))次迭代,最終完成執(zhí)行過程,同時(shí)實(shí)現(xiàn)緩沖區(qū)的合理設(shè)置; 執(zhí)行后新初始設(shè)置階段:在整個(gè)應(yīng)用運(yùn)行結(jié)束后,根據(jù)執(zhí)行過程對緩沖區(qū)設(shè)置信息,形成針對該應(yīng)用的新初始設(shè)置,在下一次運(yùn)行該應(yīng)用時(shí)能夠基于新設(shè)置運(yùn)行,實(shí)現(xiàn)資源和性能的平衡。
2.根據(jù)權(quán)利要求1中所述的指令集仿真緩沖區(qū)動態(tài)自適應(yīng)技術(shù),其特征在于:在執(zhí)行過程階段中,緩沖區(qū)動態(tài)調(diào)整的粒度可以在指令級,根據(jù)當(dāng)前性能統(tǒng)計(jì)結(jié)果信息,增減緩沖區(qū)資源,性能統(tǒng)計(jì)的結(jié)果可以是單周期內(nèi)執(zhí)行的指令數(shù)。
【文檔編號】G06F9/38GK103870248SQ201410080738
【公開日】2014年6月18日 申請日期:2014年3月6日 優(yōu)先權(quán)日:2014年3月6日
【發(fā)明者】任永青, 魏明, 周啟平, 吳華亮, 程勝 申請人:北京神舟航天軟件科技有限公司