亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

剖分信息收集系統(tǒng)及其收集方法

文檔序號:6587624閱讀:295來源:國知局
專利名稱:剖分信息收集系統(tǒng)及其收集方法
技術(shù)領(lǐng)域
本發(fā)明涉及的是一種計算機(jī)優(yōu)化處理技術(shù)領(lǐng)域的系統(tǒng)及方法,具體是一種剖分信息收集系統(tǒng)及其收集方法。
背景技術(shù)
Profile(程序概要)信息是通過profiling(剖分)過程來收集的,剖分過程就是對正在運行的程序收集特定的指令和數(shù)據(jù),然后統(tǒng)計成剖分信息,這些統(tǒng)計好的剖分信息輸入給程序作為代碼優(yōu)化之用??偟膩碚f,優(yōu)化工作之所以可以依賴剖分過程工作,是因為程序的運行是具有可預(yù)測性的,程序的特點就決定了它過去的運行行為往往能影響程序?qū)磉\行的行為,所以可以指導(dǎo)程序的優(yōu)化。
傳統(tǒng)上,代碼的剖分過程被用作為提供反饋信息給編譯程序的一種方法。編譯器首先分解源程序得到控制流圖,分析程序的各個方面然后插入探測器收集剖分信息。所謂探測器就是在內(nèi)存中把程序執(zhí)行的信息記錄到剖分日志中的一段短代碼序列,比如探測器可以安置在一些跳轉(zhuǎn)指令(如BRANCH分支指令)處記錄下跳轉(zhuǎn)指令的輸出結(jié)果。剖分日志可以離線分析后把結(jié)果返回給編譯器,編譯器使用這些信息產(chǎn)生優(yōu)化代碼。當(dāng)使用這種傳統(tǒng)的方式時,程序可以被完整的分析,剖分探測器也可以根據(jù)程序的結(jié)構(gòu)放置到最佳的位置,但這種剖分收集方法并不適合于動態(tài)優(yōu)化過程,和這種傳統(tǒng)的靜態(tài)優(yōu)化方法不同,程序動態(tài)優(yōu)化開始時程序結(jié)構(gòu)自身的結(jié)構(gòu)并不清楚,因為不可能在程序中到處插入探測器,這就意味著優(yōu)化工作必須以部分已經(jīng)執(zhí)行的程序的統(tǒng)計信息為基礎(chǔ)。
收集剖分信息有多種方法,但常用下面兩種方法來收集剖分信息第一種是通過探測(instrumentation)的方式,基于探測的剖分信息收集主要是針對特定的和程序有關(guān)的活動或者計算該活動中所占的比例,比如一個目標(biāo)基本塊被執(zhí)行的次數(shù)或一個條件跳轉(zhuǎn)指令執(zhí)行和沒有執(zhí)行次數(shù)之間的對比,而且這些活動是可以同時被記錄的,記錄的實行可以通過在代碼中插入探測指令來收集數(shù)據(jù)。第二種是通過樣本收集,使用這種方式收集剖分信息的程序在運行中可以不需要對程序進(jìn)行任何修改,只需要在固定的或任意的時間間隔中,通過中斷的方式來捕捉和程序有關(guān)的活動,比如程序的跳轉(zhuǎn)指令執(zhí)行時程序計數(shù)器的值,然后通過分析工具來分析收集到的信息就可以發(fā)現(xiàn)程序中存在的熱區(qū)。這種方法中收集到的剖分信息具有不準(zhǔn)確性的特點。因為這兩種方法各有特點和使用場合,因此使用這兩種方法收集剖分信息時,常常要權(quán)衡一下兩者的利弊。使用探測方法可以在一個相對較短的時間內(nèi)收集到一定數(shù)量的剖分信息,但由于通常借助于軟件實現(xiàn),所以當(dāng)收集剖分信息時會減慢程序的運行速度;樣本收集只會輕微地減慢程序的運行,但由于收集剖分信息是在程序的中斷間隙,所以通常需要更長的時間??偟膩碚f,動態(tài)優(yōu)化系統(tǒng)常常使用探測方法來收集剖分,因為它可以使得整個優(yōu)化過程由慢到快,把輕度優(yōu)化的代碼優(yōu)化成高度優(yōu)化的代碼;樣本收集方法對那些需要運行較長時間程序,或者已經(jīng)有過初步優(yōu)化但仍需要進(jìn)一步優(yōu)化的程序非常有效。
在收集剖分信息的時候,要權(quán)衡由此帶來的開銷。對于使用傳統(tǒng)的靜態(tài)離線優(yōu)化方法,只需要一次開銷。但對于使用動態(tài)優(yōu)化方法來說,每運行一次就需要一次開銷,因為剖分信息是在程序的執(zhí)行過程中收集的。傳統(tǒng)的探測方式要在程序中插入一組短的探測代碼序列,在動態(tài)二進(jìn)制翻譯過程中,這段代碼會被多次的執(zhí)行,對動態(tài)二進(jìn)制翻譯器的整體性能有很大影響。
經(jīng)過對現(xiàn)有文獻(xiàn)的檢索發(fā)現(xiàn),Anderson等人在"Proceedings of the 16th ACMSymposium on Operating Systems Principles"("第16屆計算機(jī)操作系統(tǒng)原貝lJ研討會"),1997年10月,P357-390撰文"Continuous Profiling: Where Have ALL theCycles Gone "("連續(xù)的剖分所有的時鐘周期都到哪里去了"),該文中總結(jié)了很多種剖分系統(tǒng)的性能、開銷和應(yīng)用場景和準(zhǔn)確級別,其中九個使用純軟件收集剖分信息的系統(tǒng)導(dǎo)致的開銷都大于整個系統(tǒng)開銷的20%。這些系統(tǒng)可以在時鐘周期級別和指令級別收集剖分信息并且都有較高的準(zhǔn)確性。還有五個系統(tǒng)使用抽樣方法收集剖分信息導(dǎo)致的開銷小于20%。但是由于收集剖分信息是在程序的中斷間隙,所以通常需要更長的時間。同時,它們的準(zhǔn)確性也得不到保證。 一般來說,對塊或邊剖分和路徑剖分,使用探測代碼來得到剖分信息會分別導(dǎo)致30%和40%的開銷。在Itanium (安騰)處理器上,對SPECint95 (95版整形基準(zhǔn)測試程序)基準(zhǔn)程序,Intel (英特爾)研究人員的實驗顯示基于目標(biāo)基本塊剖分的開銷范圍從14%到42% 。
但是該現(xiàn)有技術(shù)中,使用探測方法收集剖分信息的系統(tǒng)雖然可以保證一定的準(zhǔn)確性,但是由于添加的探測代碼而導(dǎo)致的很高的開銷不可避免。而使用抽樣的方法收集剖分信息的系統(tǒng)雖然導(dǎo)致的開銷很小,但是這些系統(tǒng)需要很長的時間和具有不準(zhǔn)確性的特點。

發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提供一種剖分信息收集系統(tǒng)及其收集方法,以很小的開銷收集準(zhǔn)確的剖分信息。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的
本發(fā)明涉及剖分信息收集系統(tǒng),包括內(nèi)存映像加載模塊、査找模塊、目標(biāo)緩存模塊、中間指令目標(biāo)基本塊模塊、目標(biāo)指令目標(biāo)基本塊模塊、鏈接目標(biāo)基本塊模塊、上下文切換模塊、優(yōu)化模塊、計數(shù)器映射表、先進(jìn)先出緩沖區(qū)模塊和剖分模塊,其中內(nèi)存映像加載模塊與査找模塊相連接以傳輸可執(zhí)行二進(jìn)制源程序中目標(biāo)基本塊的起始地址信息,査找模塊與上下文切換模塊和中間指令目標(biāo)基本塊模塊相連接以傳輸翻譯判斷信息,中間指令塊模塊與目標(biāo)指令目標(biāo)基本塊模塊相連接以傳輸目標(biāo)基本塊信息,目標(biāo)指令目標(biāo)基本塊模塊分別與鏈接目標(biāo)基本塊模塊和先進(jìn)先出緩沖區(qū)模塊相連接以傳輸目標(biāo)基本塊首地址信息,鏈接目標(biāo)基本塊模塊與上下文切換模塊相連接以傳輸首地址鏈信息,上下文切換模塊與目標(biāo)緩存模塊相連接以傳輸目標(biāo)存儲地址信息,優(yōu)化模塊與目標(biāo)緩存和計數(shù)器映射表相連接傳輸待優(yōu)化處理信息,先進(jìn)先出緩沖區(qū)模塊與剖分模塊相連接以傳輸源程序計數(shù)器值信息,剖分模塊與計數(shù)器映射表相連接以傳輸源程序計數(shù)器值信息。
所述的翻譯判斷信息中存儲一位判斷值,該判斷值代表了與源程序計數(shù)器值對應(yīng)的目標(biāo)指令目標(biāo)基本塊是否已經(jīng)翻譯的信息
所述的鏈接目標(biāo)基本塊模塊收到目標(biāo)基本塊首地址信息后將目標(biāo)基本塊首地址信息中的首地址鏈接生成首地址鏈信息。
本發(fā)明涉及上述剖分信息收集系統(tǒng)的收集方法,包括以下步驟
第一步、對源體系結(jié)構(gòu)可執(zhí)行程序進(jìn)行內(nèi)存映像加載處理,然后以目標(biāo)基本塊為單位劃分加載后的源體系結(jié)構(gòu)可執(zhí)行程序,生成目標(biāo)基本塊,在每個目標(biāo)基本塊的最后兩條指令之間插入一條目標(biāo)體系結(jié)構(gòu)精簡指令級微處理器的存儲指令;
所述的目標(biāo)基本塊是指以一條跳轉(zhuǎn)指令指向地址的指令為開始,以下一條跳轉(zhuǎn)指令為結(jié)束的一段源體系結(jié)構(gòu)可執(zhí)行程序的代碼。
第二步、分配一塊內(nèi)存區(qū)域存放一個計數(shù)器映射表,通過動態(tài)二進(jìn)制翻譯器傳遞所述計數(shù)器映射表的首地址值至先進(jìn)先出緩沖區(qū)模塊,通過先進(jìn)先出緩沖區(qū)模塊捕獲該計數(shù)器映射表的首地址,然后通過剖分模塊從先進(jìn)先出緩沖區(qū)模塊中取到此計數(shù)器映射表的首地址;
所述的計數(shù)器映射表包括源體系結(jié)構(gòu)程序計數(shù)器和傳統(tǒng)計數(shù)器,其中源體系結(jié)構(gòu)程序計數(shù)器項是存放每個目標(biāo)基本塊的源體系結(jié)構(gòu)程序計數(shù)器首地址值的項,傳統(tǒng)計數(shù)器項存放的是對應(yīng)源體系結(jié)構(gòu)程序計數(shù)器值的計數(shù)器值。第三步、依次運行每一個目標(biāo)基本塊及其對應(yīng)的儲存指令,此存儲指令觸發(fā)先進(jìn)先出緩沖區(qū)模塊,把每個目標(biāo)基本塊的源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器首地址值存儲在先進(jìn)先出緩沖區(qū)模塊中,剖分模塊從緩沖區(qū)模塊中取出所述源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器值作為剖分模塊的輸入;
第四步、剖分模塊從先進(jìn)先出緩沖區(qū)模塊中獲得所述源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器值,把此計數(shù)器值存入剖分模塊里的比較模塊中的第一寄存器中,同時,根據(jù)哈希函數(shù)從本地內(nèi)存的計數(shù)器映射表裝載源體系結(jié)構(gòu)程序計數(shù)器值存入剖分模塊里的比較模塊中第二寄存器中,然后對第一寄存器和第二寄存器中的值進(jìn)行沖突比較;
所述的本地內(nèi)存是指通用計算機(jī)上用以存儲先進(jìn)先出緩沖區(qū)模塊和剖分模塊的物理內(nèi)存。
所述的沖突比較是指當(dāng)比較的結(jié)果相等,就更新本地內(nèi)存的計數(shù)器值;當(dāng)比較的結(jié)果不相等,再判斷是否有沖突發(fā)生當(dāng)發(fā)生沖突,則進(jìn)行沖突處理;當(dāng)沒發(fā)生沖突,把源體系結(jié)構(gòu)程序計數(shù)器值寫入相應(yīng)的本地內(nèi)存中去并更新對應(yīng)的計數(shù)器值;
所述的沖突處理是指把第一寄存器中的值寫入到第二寄存器對應(yīng)的本地內(nèi)存中的下一個后16位值不相等的內(nèi)存地址中;
所述的更新是指如果是第一次更新,則把l寫入相應(yīng)的寄存器映射表的計數(shù)器項中,如果不是第一次更新,則對原寄存器映射表的計數(shù)器項的值加l。
本發(fā)明改進(jìn)了傳統(tǒng)收集剖分信息的方法,與現(xiàn)有技術(shù)相比通過在源可執(zhí)行程序中的各個目標(biāo)基本塊中插入一條目標(biāo)體系機(jī)構(gòu)的存儲指令和維護(hù)一張計數(shù)器映射表來收集剖分信
息,使用兩個硬件模塊來組成該系統(tǒng)的硬件部分,以較少硬件開銷的軟硬件協(xié)同設(shè)計方法來完成整個剖分系統(tǒng)的剖分信息的收集工作,從而可以以較小的系統(tǒng)開銷完整地收集到準(zhǔn)確的剖分信息,從而大大提高了整個系統(tǒng)的性能。


圖l是本系統(tǒng)的總體框架圖。
圖2是PowerPC體系結(jié)構(gòu)的存儲指令。
圖3是剖分模塊邏輯示意圖。
圖4是計數(shù)器映射表。
具體實施例方式
下面對本發(fā)明的實施例作詳細(xì)說明,本實施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實施,給出了詳細(xì)的實施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實施例。剖分信息收集系統(tǒng)的總體結(jié)構(gòu)分為兩部分如圖1所示本實施例包括包括內(nèi)存映像加載模塊、査找模塊、目標(biāo)緩存模塊、中間指令目標(biāo)基本塊模塊、目標(biāo)指令目標(biāo)基本塊模塊、鏈接目標(biāo)基本塊模塊、上下文切換模塊、優(yōu)化模塊、計數(shù)器映射表、先進(jìn)先出緩沖區(qū)模塊和剖分模塊,其中內(nèi)存映像加載模塊與査找模塊相連接以傳輸可執(zhí)行二進(jìn)制源程序中目標(biāo)基本塊的起始地址信息,査找模塊與上下文切換模塊和中間指令目標(biāo)基本塊模塊相連接以傳輸翻譯判斷信息,中間指令塊模塊與目標(biāo)指令目標(biāo)基本塊模塊相連接以傳輸目標(biāo)基本塊信息,目標(biāo)指令目標(biāo)基本塊模塊分別與鏈接目標(biāo)基本塊模塊和先進(jìn)先出緩沖區(qū)模塊相連接以傳輸目標(biāo)基本塊首地址信息,鏈接目標(biāo)基本塊模塊與上下文切換模塊相連接以傳輸首地址鏈信息,上下文切換模塊與目標(biāo)緩存模塊相連接以傳輸目標(biāo)存儲地址信息,優(yōu)化模塊與目標(biāo)緩存和計數(shù)器映射表相連接傳輸待優(yōu)化處理信息,先進(jìn)先出緩沖區(qū)模塊與剖分模塊相連接以傳輸源程序計數(shù)器值信息,剖分模塊與計數(shù)器映射表相連接以傳輸源程序計數(shù)器值信息。
所述的翻譯判斷信息中存儲一位判斷值,該判斷值代表了與源程序計數(shù)器值對應(yīng)的目標(biāo)指令目標(biāo)基本塊是否已經(jīng)翻譯的信息
所述的鏈接目標(biāo)基本塊模塊收到目標(biāo)基本塊首地址信息后將目標(biāo)基本塊首地址信息中的首地址鏈接生成首地址鏈信息。
如圖2、圖3和圖4所示,本實施例通過以下步驟得以實現(xiàn)
1)加載MIPS體系結(jié)構(gòu)(前端體系結(jié)構(gòu),有MIPS公司開發(fā)的精簡指令級微處理器)的可執(zhí)行程序到CrossBit的進(jìn)程空間里,獲得此可執(zhí)行程序的入口地址。然后,以目標(biāo)基本塊為單位劃分程序, 一個目標(biāo)基本塊通常以一條跳轉(zhuǎn)指令或系統(tǒng)調(diào)用指令所指向地址的指令為開始,以下一條跳轉(zhuǎn)指令為結(jié)束。完成目標(biāo)基本塊的劃分之后,在每個目標(biāo)基本塊中插入一條目標(biāo)體系結(jié)構(gòu)的存儲指令,儲存指令的格式如圖2所示。其中,源寄存器域的值為裝載每個目標(biāo)基本塊首地址源體系結(jié)構(gòu)程序計數(shù)器值的本地寄存器號,地址寄存器域的值為裝載有緩沖區(qū)模塊首地址值的寄存器號,偏移量的值為零。具體在目標(biāo)基本塊的什么位置插入儲存指令是由CrossBit在獲得了裝載有目標(biāo)基本塊的首地址源體系結(jié)構(gòu)程序計數(shù)器值的寄存器號后確定的,此儲存指令插入到含有目標(biāo)基本塊的首地址源體系結(jié)構(gòu)程序計數(shù)器值的寄存器號的指令之后的第一條指令位置處。此寄存器號通過CrossBit里的寄存器分配來滿足。
2) 在CrossBit中,分配一塊內(nèi)存區(qū)域存放一個計數(shù)器映射表,計數(shù)器映射表如圖4所示,計數(shù)器映射表包含有源體系結(jié)構(gòu)程序計數(shù)器和傳統(tǒng)計數(shù)器兩項,源體系結(jié)構(gòu)程序計數(shù)器項是存放每個目標(biāo)基本塊首地址源體系結(jié)構(gòu)程序計數(shù)器值的項,傳統(tǒng)計數(shù)器項存放的是計數(shù)器值。在翻譯目標(biāo)基本塊之前,在CrossBit中嵌入一小段匯編代碼序列來傳遞計數(shù)器映射表的首地址值,該段代碼只執(zhí)行一次,該小段匯編代碼的最后一條是目標(biāo)體系結(jié)構(gòu)的儲存指令,其中源寄存器域的值為計數(shù)器映射表的首地址。
其中傳統(tǒng)計數(shù)器mt—baseaddr變量存放了計數(shù)器映射表的首地址值,F(xiàn)IFO—baseaddr變量存放了FIF0緩沖區(qū)的首地址。這段嵌入?yún)R編代碼為——asm——(
":lwz %%r9, %0\n\t,,
":stw %%r9, %l\n\t"
:,,m,, (mt—baseaddr) ,"m,, (FIFO—baseaddr)
)
通過剖分模塊獲得此計數(shù)器映射表的首地址值,剖分模塊如圖3所示,剖分模塊第一次從緩沖區(qū)模塊取到的值就是計數(shù)器映射表的首地址,在剖分模塊內(nèi)保存此值到一個寄存器里,從而可以保證接下來的源體系結(jié)構(gòu)程序計數(shù)器值的査找操作。
3) 當(dāng)程序執(zhí)行到插入的儲存指令時,此指令觸發(fā)緩沖區(qū)模塊,把每個目標(biāo)基本塊的首地址源體系結(jié)構(gòu)程序計數(shù)器值存儲在緩沖區(qū)模塊中,此緩沖區(qū)模塊的大小設(shè)為4K個入口,每個入口為32bit (位)大小。剖分模塊從緩沖區(qū)模塊中取出此源體系結(jié)構(gòu)程序計數(shù)器值,存放在第一寄存器中,根據(jù)一個取每個源體系結(jié)構(gòu)程序計數(shù)器值的后16位的哈希函數(shù)值加上計數(shù)器映射表首地址的值來査找計數(shù)器映射表中對應(yīng)的源體系結(jié)構(gòu)程序計數(shù)器值是否與從緩沖區(qū)模塊中取到的源體系結(jié)構(gòu)程序計數(shù)器值相等;如果相等,則更新第二寄存器中值對應(yīng)的寄存器映射表中的計數(shù)器值;如果不相等,再比較第一寄存器和第二寄存器中的源體系結(jié)構(gòu)程序計數(shù)器值的后16值(大端中的第16位到第31位),如果后16位值不相等,則沒有沖突發(fā)生,把此第一寄存器中的源體系結(jié)構(gòu)程序計數(shù)器值寫入計數(shù)器映射表的相應(yīng)表項中,并設(shè)置相應(yīng)計數(shù)器的值為l,如果比較的兩源體系結(jié)構(gòu)程序計數(shù)器值的后16位相等,則沖突發(fā)生,寫入到本地內(nèi)存中的下一后16值不相等的內(nèi)存中。因為收集到的剖分信息一般作為超級塊和路徑跟蹤的生成條件,且超級塊和路徑跟蹤都是在一個很小的區(qū)域內(nèi),因此發(fā)生沖突的概率很小,而每個相鄰的目標(biāo)基本塊首地址源體系結(jié)構(gòu)程序計數(shù)器值之間有幾條到幾十條的指令間隔,所以可以把有沖突的源體系結(jié)構(gòu)程序計數(shù)器值寫入到上述沖突地址的下一個地址中。
4)程序執(zhí)行過程中,當(dāng)一個目標(biāo)基本塊的剖分信息收集完畢后,將計數(shù)器映射表中的對應(yīng)目標(biāo)基本塊的計數(shù)器值和設(shè)定的閾值相比較,如果比閾值小則跳到后面目標(biāo)基本塊繼續(xù)執(zhí)行,如果變量超過閾值,則生成相應(yīng)的超級塊或路徑跟蹤,從而集中進(jìn)行程序的動態(tài)優(yōu)化。
本實施例通過剖分模塊來更新目標(biāo)基本塊的執(zhí)行次數(shù),剖分收集系統(tǒng)的軟件部分利用該信息調(diào)整目標(biāo)基本塊的位置,把執(zhí)行頻度超過閾值的目標(biāo)基本塊連接起來構(gòu)成超級塊或生成路徑tracing (跟蹤),從而可以利用剖分系統(tǒng)來加速整個系統(tǒng)的的運行,以較少硬件開銷的軟硬件協(xié)同設(shè)計方法來完成整個剖分系統(tǒng)的剖分信息的收集工作,從而可以以較小的系統(tǒng)開銷完整地收集到準(zhǔn)確的剖分信息,從而大大提高了整個系統(tǒng)的性能。
1權(quán)利要求
1.一種剖分信息收集系統(tǒng),其特征在于,包括內(nèi)存映像加載模塊、查找模塊、目標(biāo)緩存模塊、中間指令目標(biāo)基本塊模塊、目標(biāo)指令目標(biāo)基本塊模塊、鏈接目標(biāo)基本塊模塊、上下文切換模塊、優(yōu)化模塊、計數(shù)器映射表、先進(jìn)先出緩沖區(qū)模塊和剖分模塊,其中內(nèi)存映像加載模塊與查找模塊相連接以傳輸可執(zhí)行二進(jìn)制源程序中目標(biāo)基本塊的起始地址信息,查找模塊與上下文切換模塊和中間指令目標(biāo)基本塊模塊相連接以傳輸翻譯判斷信息,中間指令塊模塊與目標(biāo)指令目標(biāo)基本塊模塊相連接以傳輸目標(biāo)基本塊信息,目標(biāo)指令目標(biāo)基本塊模塊分別與鏈接目標(biāo)基本塊模塊和先進(jìn)先出緩沖區(qū)模塊相連接以傳輸目標(biāo)基本塊首地址信息,鏈接目標(biāo)基本塊模塊與上下文切換模塊相連接以傳輸首地址鏈信息,上下文切換模塊與目標(biāo)緩存模塊相連接以傳輸目標(biāo)存儲地址信息,優(yōu)化模塊與目標(biāo)緩存和計數(shù)器映射表相連接傳輸待優(yōu)化處理信息,先進(jìn)先出緩沖區(qū)模塊與剖分模塊相連接以傳輸源程序計數(shù)器值信息,剖分模塊與計數(shù)器映射表相連接以傳輸源程序計數(shù)器值信息。
2. 根據(jù)權(quán)利要求l所述的剖分信息收集系統(tǒng),其特征是,所述的翻譯判斷信息中存儲一位判斷值,該判斷值代表了與源程序計數(shù)器值對應(yīng)的目標(biāo)指令目標(biāo)基本塊是否已經(jīng)翻譯的信息。
3. 根據(jù)權(quán)利要求l所述的剖分信息收集系統(tǒng),其特征是,所述的鏈接目標(biāo)基本塊模塊收到目標(biāo)基本塊首地址信息后將目標(biāo)基本塊首地址信息中的首地址鏈接生成首地址鏈信息。
4. 一種根據(jù)權(quán)利要求1至3中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征在于,包括以下步驟第一步、對源體系結(jié)構(gòu)可執(zhí)行程序進(jìn)行內(nèi)存映像加載處理,然后以目標(biāo)基本塊為單位劃分加載后的源體系結(jié)構(gòu)可執(zhí)行程序,生成目標(biāo)基本塊,在每個目標(biāo)基本塊的最后兩條指令之間插入一條目標(biāo)體系結(jié)構(gòu)精簡指令級微處理器的存儲指令;第二步、分配一塊內(nèi)存區(qū)域存放一個計數(shù)器映射表,通過動態(tài)二進(jìn)制翻譯器傳遞所述計數(shù)器映射表的首地址值至先進(jìn)先出緩沖區(qū)模塊,通過先進(jìn)先出緩沖區(qū)模塊捕獲該計數(shù)器映射表的首地址,然后通過剖分模塊從先進(jìn)先出緩沖區(qū)模塊中取到此計數(shù)器映射表的首地址;第三步、依次運行每一個目標(biāo)基本塊及其對應(yīng)的儲存指令,此存儲指令觸發(fā)先進(jìn)先出緩沖區(qū)模塊,把每個目標(biāo)基本塊的源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器首地址值存儲在先進(jìn)先出緩沖區(qū)模塊中,剖分模塊從緩沖區(qū)模塊中取出所述源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器值作為剖分模塊的輸入;第四步、剖分模塊從先進(jìn)先出緩沖區(qū)模塊中獲得所述源體系結(jié)構(gòu)可執(zhí)行程序的計數(shù)器值,把此計數(shù)器值存入剖分模塊里的比較模塊中的第一寄存器中,同時,根據(jù)哈希函數(shù)從本地內(nèi)存的計數(shù)器映射表裝載源體系結(jié)構(gòu)程序計數(shù)器值存入剖分模塊里的比較模塊中第二寄存器中,然后對第一寄存器和第二寄存器中的值進(jìn)行沖突比較。
5.根據(jù)權(quán)利要求4中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的目標(biāo)基本塊是指以一條跳轉(zhuǎn)指令指向地址的指令為開始,以下一條跳轉(zhuǎn)指令為結(jié)束的一段源體系結(jié)構(gòu)可執(zhí)行程序的代碼。
6.根據(jù)權(quán)利要求4中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的計數(shù)器映射表包括源體系結(jié)構(gòu)程序計數(shù)器和傳統(tǒng)計數(shù)器,其中源體系結(jié)構(gòu)程序計數(shù)器項是存放每個目標(biāo)基本塊的源體系結(jié)構(gòu)程序計數(shù)器首地址值的項,傳統(tǒng)計數(shù)器項存放的是對應(yīng)源體系結(jié)構(gòu)程序計數(shù)器值的計數(shù)器值。
7.根據(jù)權(quán)利要求4中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的本地內(nèi)存是指通用計算機(jī)上用以存儲先進(jìn)先出緩沖區(qū)模塊和剖分模塊的物理內(nèi)存。
8.根據(jù)權(quán)利要求4中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的沖突比較是指當(dāng)比較的結(jié)果相等,就更新本地內(nèi)存的計數(shù)器值;當(dāng)比較的結(jié)果不相等,再判斷是否有沖突發(fā)生當(dāng)發(fā)生沖突,則進(jìn)行沖突處理;當(dāng)沒發(fā)生沖突,把源體系結(jié)構(gòu)程序計數(shù)器值寫入相應(yīng)的本地內(nèi)存中去并更新對應(yīng)的計數(shù)器值。
9.根據(jù)權(quán)利要求8中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的沖突處理是指把第一寄存器中的值寫入到第二寄存器對應(yīng)的本地內(nèi)存中的下一個后16位值不相等的內(nèi)存地址中。
10.根據(jù)權(quán)利要求8中任一所述的剖分信息收集系統(tǒng)的收集方法,其特征是,所述的更新是指如果是第一次更新,則把l寫入相應(yīng)的寄存器映射表的計數(shù)器。項中,如果不是第一次更新,則對原寄存器映射表的計數(shù)器項的值加l。
全文摘要
一種計算機(jī)優(yōu)化處理技術(shù)領(lǐng)域的剖分信息收集系統(tǒng)及其收集方法,包括內(nèi)存映像加載模塊、查找模塊、目標(biāo)緩存模塊、中間指令目標(biāo)基本塊模塊、目標(biāo)指令目標(biāo)基本塊模塊、鏈接目標(biāo)基本塊模塊、上下文切換模塊、優(yōu)化模塊、計數(shù)器映射表、先進(jìn)先出緩沖區(qū)模塊和剖分模塊。本發(fā)明改進(jìn)了傳統(tǒng)收集剖分信息的方法,與現(xiàn)有技術(shù)相比通過在源可執(zhí)行程序中的各個目標(biāo)基本塊中插入一條目標(biāo)體系機(jī)構(gòu)的存儲指令和維護(hù)一張計數(shù)器映射表來收集剖分信息,使用兩個硬件模塊來組成該系統(tǒng)的硬件部分,以較少硬件開銷的軟硬件協(xié)同設(shè)計方法來完成整個剖分系統(tǒng)的剖分信息的收集工作,從而可以以較小的系統(tǒng)開銷完整地收集到準(zhǔn)確的剖分信息,從而大大提高了整個系統(tǒng)的性能。
文檔編號G06F9/45GK101673214SQ20091030876
公開日2010年3月17日 申請日期2009年10月26日 優(yōu)先權(quán)日2009年10月26日
發(fā)明者博 劉, 楊輝兵, 梁阿磊, 管海兵 申請人:上海交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1