專利名稱::應(yīng)用程序的跟蹤記錄壓縮方案的生成方法及其裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及異構(gòu)多核體系結(jié)構(gòu)上的應(yīng)用程序調(diào)試,具體地說(shuō),涉;sjt在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行應(yīng)用程序時(shí)生成的跟蹤記錄進(jìn)行壓縮的方法、裝置以及包括該壓縮裝置的異構(gòu)多核體系結(jié)構(gòu)。
背景技術(shù):
:異構(gòu)多核體系結(jié)構(gòu)在密集型計(jì)算、圖形處理方面有明顯的優(yōu)勢(shì),一般地,異構(gòu)多核體系結(jié)構(gòu)至少包括一個(gè)主處理器和多個(gè)加速器(也稱為"協(xié)處理器"),其中主處理器主要用于分配任務(wù)和協(xié)同加速器,加速器用于執(zhí)行例如浮點(diǎn)運(yùn)算等的具體計(jì)算處理。異構(gòu)多核體系結(jié)構(gòu)的一個(gè)例子是由索尼、東芝和IBM公司聯(lián)合開(kāi)發(fā)的CellBroadbandEngine(簡(jiǎn)稱為CellBE),其以IBM公司所研發(fā)的64位元POWERTM處理機(jī)為核心(PPE),結(jié)合8個(gè)互相協(xié)作的處理機(jī)單元(SPEs)而構(gòu)成。對(duì)于在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行的應(yīng)用程序來(lái)說(shuō),正確性和性能是關(guān)鍵。因此,在應(yīng)用程序的開(kāi)發(fā)過(guò)程中,應(yīng)用程序的性能調(diào)試是必不可少的。在利用性能調(diào)試工具調(diào)試應(yīng)用程序的期間,會(huì)產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)以跟蹤記錄的形式從加速器傳送到主處理器中的主存儲(chǔ)器,然后由性能調(diào)試工具基于跟蹤記錄來(lái)分析應(yīng)用程序的執(zhí)行。通常,跟蹤記錄通過(guò)直接存儲(chǔ)器存取(DMA)方式從加速器傳送到主處理器。例如,在上述的CellBE中,每當(dāng)SPE生成128字節(jié)的跟蹤記錄時(shí),該跟蹤記錄就通過(guò)DMA轉(zhuǎn)儲(chǔ)到PPE中。然而,跟蹤記錄的傳送會(huì)帶來(lái)巨大的開(kāi)銷,并嚴(yán)重影響應(yīng)用程序的行為。隨著跟蹤記錄數(shù)量的增加,開(kāi)銷呈指數(shù)性增加。因此,需要對(duì)跟蹤記錄進(jìn)行壓縮。在現(xiàn)有技術(shù)中已經(jīng)公開(kāi)了一些對(duì)跟蹤記錄進(jìn)行壓縮的技術(shù),例如,美國(guó)專利US7,058,859"TraceReportingMethodandSystem(i^記錄方法和系統(tǒng))"、美國(guó)專利US6,918,065"MethodforCompressingandDecompressingTraceInformation(壓縮和解壓縮J^信息的方法)"、美國(guó)專利US7,209,058"TraceReceiverDataCompression(J^i宗接收機(jī)數(shù)據(jù)壓縮)"、美國(guó)專利US7,308,681"ControlFlowBasedCompressionofExecutionTraces(基于控制流的執(zhí)行跟蹤的壓縮)"、美國(guó)專利申請(qǐng)US20070294590"CompressionSchemetoReducetheBandwidthRequirementsforContinuousTraceStreamEncodingofSystemPerformance(對(duì)于系統(tǒng)性能的連續(xù)跟蹤流編碼的降低帶寬要求的壓縮方案)"等。上述的技術(shù)方案均是解決重復(fù)的事件跟蹤記錄的壓縮,因此,可壓縮的跟蹤記錄必須完全相同。然而,完全相同的跟蹤記錄在所有記錄中的比例較小。對(duì)于異構(gòu)多核體系結(jié)構(gòu),其加速器的本地存儲(chǔ)器的大小有限,例如CellBE的各加速器的本地存儲(chǔ)器的大小只有256K。而通常的快速傅里葉變換(FFT)運(yùn)算的應(yīng)用程序所需要的空間約為244K,矩陣乘法運(yùn)算的應(yīng)用程序所需要的空間約為231K,高度并行計(jì)算基準(zhǔn)測(cè)試(Linpack)的應(yīng)用程序所需要的空間約為229K,這樣,加速器的本地存儲(chǔ)器的可用空間平均僅為約16K。然而,傳統(tǒng)的在線壓縮方法,例如zip和gzip,其代碼大小分別為77K和64K,因此,這樣的壓縮方法不適用于異構(gòu)多核體系結(jié)構(gòu)。
發(fā)明內(nèi)容本發(fā)明正是鑒于上述的技術(shù)問(wèn)題而提出的,其目的在于提供一種壓縮應(yīng)用程序的跟蹤記錄的方法和裝置,其適用于異構(gòu)多核體系結(jié)構(gòu),并且能夠大大縮短所有跟蹤記錄的傳送時(shí)間。此外,本發(fā)明還提出了一種異構(gòu)多核體系結(jié)構(gòu)。根據(jù)本發(fā)明的第一個(gè)方面,提供一種應(yīng)用程序的跟蹤記錄壓縮方案的生成方法,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述方法包括在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行所述應(yīng)用程序的至少-一部分;收集并分析跟蹤記錄,所述跟蹤記錄由所述多個(gè)加速器生成并包括事件標(biāo)識(shí)符和數(shù)據(jù);以及根據(jù)所述分析的結(jié)果,生成所述應(yīng)用程序的跟蹤記錄壓縮方案。根據(jù)本發(fā)明的第二個(gè)方面,提供一種壓縮應(yīng)用程序的跟蹤記錄的方法,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述方法包括在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行部分或者整個(gè)所述應(yīng)用程序;以及根據(jù)上述應(yīng)用程序的跟蹤記錄壓縮方案的生成方法所生成的跟蹤記錄壓縮方案,壓縮由所述多個(gè)加速器生成的i^J宗記錄。根據(jù)本發(fā)明的第三個(gè)方面,提供一種應(yīng)用程序的跟蹤記錄壓縮方案生成裝置,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述跟蹤記錄壓縮方案生成裝置包括收集與分析部件,用于收集并分析在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行所述應(yīng)用程序的至少一部分時(shí)由所述多個(gè)加速器生成的跟蹤記錄,其中,所述跟蹤記錄包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù);壓縮方案生成部件,用于根據(jù)所述收集與分析部件的分析結(jié)果,生成所述應(yīng)用程序的跟蹤記錄壓縮方案。根據(jù)本發(fā)明的第四個(gè)方面,提供一種壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述裝置包括如上述應(yīng)用程序的跟蹤記錄壓縮方案生成裝置;壓縮部件,用于當(dāng)在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行整個(gè)所述應(yīng)用程序時(shí),4艮據(jù)所述跟蹤記錄壓縮方案生成裝置所生成的跟蹤記錄壓縮方案,壓縮由所述多個(gè)加速器所生成的跟蹤記錄。根據(jù)本發(fā)明的笫五個(gè)方面,提供一種異構(gòu)多核體系結(jié)構(gòu),包括主處理器和多個(gè)加速器,用于運(yùn)行應(yīng)用程序,其中所述多個(gè)加速器生成跟蹤記錄,所述跟蹤記錄包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù);以及根據(jù)上述壓縮應(yīng)用程序的跟蹤記錄的裝置,用于對(duì)由所述多個(gè)加速器生成的跟蹤記錄進(jìn)行壓縮;其中,所述主處理器在從所述壓縮應(yīng)用程序的跟蹤記錄的裝置接收到跟蹤記錄和各個(gè)加速器的跟蹤記錄壓縮方案時(shí),判斷所接收的跟蹤記錄中包含的事件標(biāo)識(shí)符是否是所述跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符,并在判斷結(jié)果是肯定時(shí),對(duì)所接收的跟蹤記錄進(jìn)行解壓縮。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的方法的流程圖2是圖1所示的實(shí)施例中收集并分析多個(gè)跟蹤記錄的步驟的流程圖;圖3是圖1所示的實(shí)施例中生成應(yīng)用程序的跟蹤記錄壓縮方案的步驟的流程圖4是圖1所示的實(shí)施例中壓縮跟蹤記錄的步驟的流程圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置的方框圖6是圖5所示的實(shí)施例中收集與分析部件的方框圖7是圖5所示的實(shí)施例中壓縮方案生成部件的方框圖8是圖5所示的實(shí)施例中壓縮部件的方框圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例的異構(gòu)多核體系結(jié)構(gòu)的方框圖。具體實(shí)施例方式相信通過(guò)以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例的詳細(xì)描述,本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)將變得更加明顯。本發(fā)明的發(fā)明人通過(guò)研究發(fā)現(xiàn),在同一個(gè)事件的跟蹤記錄之間存在相似性。一般地,跟蹤記錄包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù),下面給出同一個(gè)事件的幾個(gè)跟蹤記錄的例子。跟蹤記錄1:OOOObOO170502000000MM000000000fff3250OOOOblO000005678aacdd28000005678aac巡0000b20000000001000labc000000000000555b0000b30000000001026c39800000007Offf10c80000b4000000000100131b400000030ffffffff0000b5000000000f7fd04卯ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001跟蹤記錄2:OOOO副170502000000001800000000Offf3250OOOOblO000005678肌ce32f000005678肌ce8510000b20000000001000l狄4000000000000OOlf0000b30000000001026c39800000008Offf10c80000b4000000000100131c400000030ffffffff0000b5000000000f7fd0490ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001跟蹤記錄3:OOOObOO170502000000OOla00000000Offf3250OOOOblO000005678a狄e87e000005678肌ced7d0000b20000000001000lb10000000000000OOlf0000b30000000001026c3980000OOOaOfff10c80000b40000000001001319000000030ffffffff0000b5000000000f7fd0490ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001其中,第1列表示地址,"1705"是事件標(biāo)識(shí)符??梢钥闯觯?個(gè)跟蹤記錄中跟蹤數(shù)據(jù)的大部分是相同的,只有用下劃線標(biāo)記的部分不同。這樣,跟蹤記錄的相似性為跟蹤記錄的壓縮提供了可能。另外,發(fā)明人還發(fā)現(xiàn)在對(duì)某個(gè)應(yīng)用程序生成的跟蹤記錄中,少數(shù)事件的跟蹤記錄的個(gè)數(shù)占全部跟蹤記錄的個(gè)數(shù)的卯%或以上,這樣的事件可稱為高頻事件。例如,對(duì)于某個(gè)FFT運(yùn)算的應(yīng)用程序,總的跟蹤記錄個(gè)數(shù)為777373個(gè),其中事件標(biāo)識(shí)符為1209的事件—ALF—ACCEL_DTL_ENTRY—ADD_ENTRY的^J宗記錄是384911個(gè),事件標(biāo)識(shí)符為1309的事件—ALF_ACCEL_DTL_ENTRY_ADD—EXIT的躍J宗記錄是384908個(gè),這兩個(gè)事件的跟蹤記錄的個(gè)數(shù)就達(dá)到了總數(shù)的99%?;谏鲜龅膬蓚€(gè)發(fā)現(xiàn),提出了本發(fā)明的壓縮應(yīng)用程序的跟蹤記錄的方法及裝置。下面參照附圖,對(duì)本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)說(shuō)明。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的方法的流程圖。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在本實(shí)施例和隨后的實(shí)施例中,應(yīng)用程序是指進(jìn)行了插裝的應(yīng)用程序,由此,在運(yùn)行應(yīng)用程序時(shí)能夠生成跟蹤記錄。如圖1所示,在本實(shí)施例中,應(yīng)用程序的跟蹤記錄的壓縮包括兩個(gè)階段。首先,在第一階段,在步驟SIO,在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行應(yīng)用程序的至少一部分。如前所述,該異構(gòu)多個(gè)體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,通過(guò)主處理器的分配,多個(gè)加速器協(xié)同執(zhí)行這部分應(yīng)用程序。所運(yùn)行的應(yīng)用程序的一部分可以由用戶指定,優(yōu)選地,所運(yùn)行的該部分應(yīng)用程序是該應(yīng)用程序的典型應(yīng)用。多個(gè)加速器在執(zhí)行應(yīng)用程序時(shí),相應(yīng)地生成該應(yīng)用程序的跟蹤記錄(步驟S15)。在步驟S20,收集并分析所生成的跟蹤記錄,以得出跟蹤記錄的分布和特點(diǎn)。圖2進(jìn)一步示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的收集并分析所生成的跟蹤記錄的步驟S20的流程圖。如圖2所示,在步驟S201,從多個(gè)加速器中收集由各個(gè)加速器生成的跟蹤記錄,以進(jìn)行分析。然后,在步驟S205,根據(jù)所收集的跟蹤記錄中的特殊字段定義的加速器的編號(hào),對(duì)跟蹤記錄進(jìn)行分類。每個(gè)加速器對(duì)應(yīng)一個(gè)跟蹤記錄的類別,在每個(gè)類別中計(jì)算每個(gè)事件的對(duì)應(yīng)跟蹤記錄的個(gè)數(shù)(步驟S210),然后,在步驟S215,根據(jù)所計(jì)算的跟蹤記錄的個(gè)數(shù),確定應(yīng)用程序的高頻事件標(biāo)識(shí)符,其中,包含高頻事件標(biāo)識(shí)符的跟蹤記錄的個(gè)數(shù)總和與所收集的跟蹤記錄的個(gè)數(shù)總和的比值大于等于預(yù)定的閾值。優(yōu)選地,預(yù)定的閾值是90%或以上。在步驟S220,獲取在步驟S215中確定的高頻事件標(biāo)識(shí)符的每一個(gè)的跟蹤記M式,作為執(zhí)行壓縮的基礎(chǔ)。然后,在步驟S225,獲取每個(gè)加速器的可用空間,以確定每個(gè)加速器實(shí)際可裝載多少個(gè)跟蹤記M式。由于不同的加速器#不同的任務(wù),使得各個(gè)加速器中的高頻事件也可能不同,綜合每個(gè)加速器的可用空間信息、高頻事件標(biāo)識(shí)符、高頻事件標(biāo)識(shí)符的跟蹤記錄的特點(diǎn),建立針對(duì)每個(gè)加速器的跟蹤記泉漠式,即加速器與跟蹤記^式的映射(步驟S230)。當(dāng)獲取某個(gè)高頻事件標(biāo)識(shí)符的跟蹤記M式時(shí),比較包含該高頻事件標(biāo)識(shí)符的所有跟蹤記錄,從而確定這些跟蹤記錄所包含的跟蹤數(shù)據(jù)中不同的部分。從包含該高頻事件標(biāo)識(shí)符的所有跟蹤記錄中選擇任意一個(gè)跟蹤記錄,作為該高頻事件標(biāo)識(shí)符的跟蹤記錄模式,并對(duì)該跟蹤記泉漠式的跟蹤數(shù)據(jù)中與通過(guò)比較而確定的不同的部分對(duì)應(yīng)的部分進(jìn)行標(biāo)記。按照這種方式,獲得所有高頻事件標(biāo)識(shí)符的跟蹤記錄模式。通過(guò)執(zhí)行上述的跟蹤記錄分析的步驟,可以得到跟蹤記錄的分布和特征,包括高頻事件標(biāo)識(shí)符及其與各個(gè)加速器的映射,高頻事件標(biāo)識(shí)符的跟蹤記錄模式,以及各個(gè)加速器的可用空間。然后,在步驟S30,根據(jù)通過(guò)步驟S20得到的分析結(jié)果,生成應(yīng)用程序的跟蹤記錄壓縮方案。圖3進(jìn)一步示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的生成應(yīng)用程序的跟蹤記錄壓縮方案的步驟S30的流程圖。如圖3所示,在步驟S301,根據(jù)在步驟S225獲取的每個(gè)加速器的可用空間,計(jì)算每個(gè)加速器可裝載的跟蹤記M式的個(gè)數(shù)。由于加速器的本地存儲(chǔ)器的空間有限,因此,加速器實(shí)際可裝載的跟蹤記錄模式的個(gè)數(shù)與該加速器所映射的跟蹤記錄模式的個(gè)數(shù)并不一定相同。加速器的本地存儲(chǔ)器剩余空間,可以通過(guò)多核處理器平臺(tái)軟件開(kāi)發(fā)包的工具來(lái)獲得,如在Cell.BE平臺(tái)上,!^件開(kāi)發(fā)包自帶spu-size工具可以得到每個(gè)加速器的本地剩余可用空間。在步驟S305,根據(jù)在步驟S230所建立的加速器與跟蹤記錄模式的映射并根據(jù)在步驟S301所計(jì)算的各個(gè)加速器可裝栽的跟蹤記泉漠式的個(gè)數(shù),確定每個(gè)加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記錄模式。當(dāng)加速器可裝栽的跟蹤記錄模式的個(gè)數(shù)大于等于該加速器所映射的跟蹤記;^式的個(gè)數(shù)時(shí),該加速器可裝載的跟蹤記錄模式即是該加速器所映射的全部跟蹤記錄模式;當(dāng)加速器可裝載的跟蹤記錄模式的個(gè)數(shù)小于該加速器所映射的記錄模式的個(gè)數(shù)時(shí),則選擇相應(yīng)數(shù)量的跟蹤記錄的個(gè)數(shù)多的高頻事件標(biāo)識(shí)符的跟蹤記M式。此處相應(yīng)數(shù)量指小于或等于最多可裝載的跟蹤記^式個(gè)數(shù)。然后,在步驟S310,對(duì)于每個(gè)加速器,生成該加速器的跟蹤記錄壓縮方案,其包括在步驟S305中確定的該加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記泉漠式以^M目應(yīng)的高頻事件標(biāo)識(shí)符。所生成的各加速器的跟蹤記錄壓縮方案,構(gòu)成應(yīng)用程序的跟蹤記錄壓縮方案,并被傳送到對(duì)應(yīng)的加速器和主處理器中(步驟S315)。至此,第一階段結(jié)束。在第一階段中,通it^"跟蹤記錄的分析,得到了應(yīng)用程序的跟蹤記錄壓縮方案。本領(lǐng)域技術(shù)人員了解,第一階段作為跟蹤記錄壓縮方案生成方法,可以單獨(dú)地使用。并非必須與第二階段的運(yùn)用跟蹤記錄壓縮方案在時(shí)間上無(wú)間隔地使用。而且由上述第二階段的方法生成的跟蹤記錄壓縮方案,可以由下述第二階段的方法重復(fù)多次使用。在第二階段,首先,各加速器裝載所接收的各自的跟蹤記錄壓縮方案。然后,在步驟S40,在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行部分或者整個(gè)應(yīng)用程序,并在步驟S50,多個(gè)加速器各自生成相應(yīng)的跟蹤記錄。然后,在步驟S60,根據(jù)所裝載的跟蹤記錄壓縮方案,對(duì)所生成的跟蹤記錄進(jìn)行壓縮。上述第二階段實(shí)質(zhì)上涉及j吏用上述第一階段的跟蹤記錄壓縮方案生成方法所生成的跟蹤記錄壓縮方案對(duì)跟蹤記錄進(jìn)行壓縮。第二階段的壓縮方法可以單獨(dú)重復(fù)多次使用(例如在程序測(cè)試過(guò)程中,就可以重復(fù)利用上述第一階段的跟蹤記錄壓縮方案生成方法所生成的跟蹤記錄壓縮方案對(duì)跟蹤記錄進(jìn)行壓縮)圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮跟蹤記錄的步驟S60的流程圖。如圖4所示,當(dāng)某個(gè)加速器生成一個(gè)跟蹤記錄時(shí),判斷該跟蹤記錄中的事件標(biāo)識(shí)符是否是該加速器的跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符(步驟S601)。如果該事件標(biāo)識(shí)符是高頻事件標(biāo)識(shí)符,則在步驟S605,根據(jù)該事件標(biāo)識(shí)符的跟蹤記^式,對(duì)該跟蹤記錄進(jìn)行壓縮。根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)對(duì)跟蹤記錄進(jìn)行壓縮時(shí),首先,對(duì)該跟蹤記錄中與跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和跟蹤記錄模式中所標(biāo)記的部分進(jìn)行差分計(jì)算,然后,記錄這些進(jìn)行了差分計(jì)算的部分的位置和相應(yīng)的差分值,以形成被壓縮的跟蹤記錄,這種壓縮方式可稱為"直接差分壓縮方式"??蛇x地,,本發(fā)明的另一個(gè)實(shí)施例,當(dāng)對(duì)跟蹤記錄進(jìn)行壓縮時(shí),首先,對(duì)該跟蹤記錄中與跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和跟蹤記錄模式中所標(biāo)記的部分進(jìn)行差分計(jì)算,然后,記錄這些進(jìn)行了差分計(jì)算的部分的差分值,以形成被壓縮的跟蹤記錄。這種壓縮方式可稱為"增強(qiáng)差分壓縮方式"。可選地,根據(jù)本發(fā)明的再一個(gè)實(shí)施例,當(dāng)對(duì)跟蹤記錄進(jìn)行壓縮時(shí),首先,將該跟蹤記錄中的每個(gè)字節(jié)與跟蹤記^^式中的對(duì)應(yīng)字節(jié)進(jìn)行差分計(jì)算,并記錄與該跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分的差分值,以構(gòu)成被壓縮的跟蹤記錄的一部分。然后,判斷除了與所標(biāo)記的部分對(duì)應(yīng)的部分以外的字節(jié)的差分值是否為零,并在差分值不為零時(shí),記錄對(duì)應(yīng)字節(jié)的位置和差分值,構(gòu)成被壓縮的跟蹤記錄的另一部分。如果差分值為零,則忽略該差分值.這種壓縮方式可稱為"混合差分壓縮方式"。下面通過(guò)一個(gè)例子具體說(shuō)明上述的三種壓縮方式。在該例子中,跟蹤記錄的大小為128字節(jié),并且有32個(gè)字節(jié)的數(shù)據(jù)發(fā)生變化。假設(shè)跟蹤記錄模式為<formula>formulaseeoriginaldocumentpage17</formula>其中,1705是事件標(biāo)識(shí)符,用顏色標(biāo)記的部分是數(shù)據(jù)發(fā)生變化的部分。所生成的跟蹤記錄為模式A<table>tableseeoriginaldocumentpage17</column></row><table>其中,用顏色標(biāo)記的部分是與模式A中所標(biāo)記的部分對(duì)應(yīng)的部分。當(dāng)采用直接差分壓縮方式對(duì)跟蹤記錄進(jìn)行壓縮時(shí),得到如下的被壓縮的跟蹤記錄,其中單數(shù)列記錄了進(jìn)行差分計(jì)算的部分的位置,偶數(shù)列記錄了對(duì)應(yīng)的差分值可以看出,采用這種壓縮方式得到的跟蹤記錄只有64字節(jié),壓縮率達(dá)到50%。當(dāng)釆用增強(qiáng)差分壓縮方式對(duì)跟蹤記錄進(jìn)行壓縮時(shí),得到如下的被壓縮的記錄,其中僅記錄了差分值可以看出,采用這種壓縮方式得到的跟蹤記錄只有32字節(jié),壓縮率達(dá)到75%。如果跟蹤記錄中某個(gè)未被標(biāo)記的字節(jié)發(fā)生了變化,則可以采用混合差分壓縮方式進(jìn)行壓縮,這樣可以確保通過(guò)解壓縮得到正確的跟蹤記錄。在對(duì)所生成的跟蹤記錄進(jìn)行了壓縮后,在步驟S610,緩存被壓縮的跟010702"0023013001310138013901024103兆0347035001510156025702036303680167017001"01860487060031p4.9402<35p1關(guān)100怖0418蹤記錄,直到所緩存的被壓縮的跟蹤記錄的大小達(dá)到原始的跟蹤記錄的大小時(shí),將被壓縮的跟蹤記錄傳送到主處理器(步驟S615)。在上面的例子中,原始的跟蹤記錄的大小為128字節(jié),對(duì)于采用直接差分壓縮方式壓縮的跟蹤記錄,在緩存了2個(gè)被壓縮的跟蹤記錄后,通過(guò)DMA方式進(jìn)行傳送;而對(duì)于采用增強(qiáng)差分壓縮方式壓縮的跟蹤記錄,則在緩存了4個(gè)祐A縮的跟蹤記錄后,通過(guò)DMA方式傳送。在上述的實(shí)施例中,跟蹤記錄模式是固定的,然而,也可以使用自適應(yīng)的跟蹤記M式。在才艮據(jù)本發(fā)明的另一個(gè)實(shí)施例中,在所生成的跟蹤記錄4皮壓縮后,用該壓縮前的跟蹤記錄更新對(duì)應(yīng)的跟蹤記錄模式,然后,將更新后的跟蹤記錄壓縮方案從相應(yīng)的加速器傳送到主處理器。如果在步驟S601中判斷為所生成的跟蹤記錄中包含的事件標(biāo)識(shí)符不是高頻事件標(biāo)識(shí)符,則在步驟S620,對(duì)該跟蹤記錄不進(jìn)行壓縮,而是直接將該跟蹤記錄傳送到主處理器。通過(guò)上述步驟,在應(yīng)用程序運(yùn)行過(guò)程中生成的包含高頻事件標(biāo)識(shí)符的跟蹤記錄經(jīng)過(guò)壓縮后傳送到主處理器。當(dāng)應(yīng)用程序運(yùn)行結(jié)束后,所有的跟蹤記錄和各加速器的跟蹤記錄壓縮方案都已傳送到主處理器。主處理器判斷所接收的跟蹤記錄所包含的事件標(biāo)識(shí)符是否是跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符,如果是,則根據(jù)相應(yīng)的跟蹤記錄壓縮方案,對(duì)該跟蹤記錄進(jìn)行解壓縮,以得到原始的跟蹤記錄。解壓縮后的跟蹤記錄被提供給后面的分析器進(jìn)行進(jìn)一步的處理。如果跟蹤記錄中的事件標(biāo)識(shí)符不是高頻事件標(biāo)識(shí)符,則將該跟蹤記錄直接提供給分析器。通過(guò)以上描述可以看出,本實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的方法能夠適用于異構(gòu)多核體系結(jié)構(gòu),通過(guò)使用與跟蹤記斜目似的跟蹤記錄模式,不僅能夠壓縮完全相同的跟蹤記錄,而且能夠壓縮部分相同的跟蹤記錄,進(jìn)一步地,通it^j"高頻事件的跟蹤記錄進(jìn)行壓縮,能夠大大縮短跟蹤記錄傳送的時(shí)間,減少對(duì)應(yīng)用程序行為的影響。在同一個(gè)發(fā)明構(gòu)思下,圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置的方框圖。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)描述,其中與前面實(shí)施例相同的部分,適當(dāng)省略其說(shuō)明。與前面實(shí)施例相同,在本實(shí)施例中,應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,該異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器。如圖5所示,本實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置500包括收集與分析部件501,其收集并分析在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行應(yīng)用程序的至少一部分時(shí)由多個(gè)加速器所生成的跟蹤記錄;壓縮方案生成部件502,其根據(jù)收集與分析部件501的分析結(jié)果,生成該應(yīng)用程序的跟蹤記錄壓縮方案;以及壓縮部件503,其當(dāng)在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行部分或者整個(gè)應(yīng)用程序時(shí),根據(jù)該應(yīng)用程序的跟蹤記錄壓縮方案,壓縮由多個(gè)加速器生成的跟蹤記錄。在本實(shí)施例中,當(dāng)應(yīng)用程序的一部分在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行時(shí),各個(gè)加速器生成相應(yīng)的跟蹤記錄,這些跟蹤記錄被收集與分析部件501收集并進(jìn)4亍分析,以獲:得跟蹤記錄的分布和特征。圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的收集與分析部件501的方框圖。參照?qǐng)D6,收集與分析部件501包括收集單元5011,其從多個(gè)加速器中收集所生成的跟蹤記錄;分類單元5012,其才艮據(jù)所收集的跟蹤記錄中的特殊字段定義的加速器的編號(hào),對(duì)跟蹤記錄進(jìn)行分類;計(jì)數(shù)單元5013,其將每個(gè)加速器對(duì)應(yīng)一個(gè)跟蹤記錄的類別,并在每個(gè)類別中計(jì)算每個(gè)事件的對(duì)應(yīng)跟蹤記錄的個(gè)數(shù);高頻事件標(biāo)識(shí)符確定單元5014,其確定應(yīng)用程序的高頻事件標(biāo)識(shí)符,其中,包含這些高頻事件標(biāo)識(shí)符的跟蹤記錄的個(gè)數(shù)總和與所收集的跟蹤記錄的個(gè)數(shù)總和的比值大于等于預(yù)定的閾值;跟蹤記錄模式獲取單元5015,其獲取高頻事件標(biāo)識(shí)符的每一個(gè)的跟蹤記^^式;可用空間獲取單元5016,其獲取每個(gè)加速器的可用空間,以確定每個(gè)加速器實(shí)際可裝栽多少個(gè)跟蹤記錄模式;以及加速器-跟蹤記錄模式映射建立單元5017,其建立針對(duì)每個(gè)加速器的跟蹤記影漠式,即加速器與跟蹤記錄模式的映射。當(dāng)利用跟蹤記錄模式獲取單元5015獲取高頻事件標(biāo)識(shí)符的跟蹤記錄模式時(shí),首先,在跟蹤記泉漠式獲取單元5015的比較單元中,對(duì)于每一個(gè)事件標(biāo)識(shí)符的所有跟蹤記錄,以確定這些跟蹤記錄的跟蹤數(shù)據(jù)中不同的部分。然后,選擇單元從包含該高頻事件標(biāo)識(shí)符的所有跟蹤記錄中選擇任意一個(gè)跟蹤記錄,作為該高頻事件標(biāo)識(shí)符的跟蹤記泉漠式,并通過(guò)標(biāo)記單元對(duì)跟蹤記錄模式的跟蹤數(shù)據(jù)中與在比較單元中確定的不同的部分對(duì)應(yīng)的部分進(jìn)行標(biāo)記。這樣,利用收集與分析部件501,可以獲得包括高頻事件標(biāo)識(shí)符、高頻事件標(biāo)識(shí)符的跟蹤記錄模式及其與加速器的映射、以及各加速器的可用空間的跟蹤記錄的分布和特征。收集與分析部件501的分析結(jié)果被提供給壓縮方案生成部件502,以生成應(yīng)用程序的跟蹤記錄壓縮方案。圖7示出了才艮據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮方案生成部件502的方框圖。如圖7所示,壓縮方案生成部件502包括計(jì)算單元5021,其相^據(jù)由可用空間獲取單元5016獲取的每個(gè)加速器的可用空間,計(jì)算每個(gè)加速器可裝載的跟蹤記恭漠式的個(gè)數(shù);跟蹤記泉漠式確定單元5022,其根據(jù)由加速器-跟蹤記^漠式映射建立單元5017建立的映射和由計(jì)算單元5021計(jì)算的跟蹤記錄模式的個(gè)數(shù),確定每個(gè)加速器可裝栽的高頻事件標(biāo)識(shí)符的跟蹤記M式;加速器壓縮方案生成單元5023,其對(duì)于每個(gè)加速器,生成該加速器的跟蹤記錄壓縮方案,該跟蹤記錄壓縮方案包括在跟蹤記^i式確定單元5022中確定的該加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記錄模式和相應(yīng)的高頻事件標(biāo)識(shí)符;以及第一傳送單元5024,其將各個(gè)加速器的跟蹤記錄壓縮方案?jìng)魉偷綄?duì)應(yīng)的加速器和主處理器中。本領(lǐng)域4支術(shù)人員了解,上述收集與分才斤部件501和壓縮方案生成部件502可以獨(dú)立構(gòu)成應(yīng)用程序的跟蹤記錄壓縮方案生成裝置504。這樣,在壓縮方案生成部件502中生成的各加速器的跟蹤記錄壓縮方案,構(gòu)成應(yīng)用程序的跟蹤記錄壓縮方案,并被傳送到各自的加速器中。當(dāng)應(yīng)用程序再次在異構(gòu)多核體系結(jié)構(gòu)中運(yùn)行時(shí),各個(gè)加速器生成相應(yīng)的跟蹤記錄。這些跟蹤記錄在壓縮部件503中進(jìn)行壓縮。圖8示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的壓縮部件503的方框圖。21如圖8所示,壓縮部件503包括第一判斷單元5031,其判斷所生成的跟蹤記錄中的事件標(biāo)識(shí)符是否是相應(yīng)的加速器的跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符;壓縮單元5032,其在所述第一判斷單元5031判斷為該事件標(biāo)識(shí)符是高頻事件標(biāo)識(shí)符時(shí),根據(jù)該跟蹤記錄壓縮方案中該事件標(biāo)識(shí)符的跟蹤記錄模式,對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮;緩存單元5033,其用于緩存被壓縮單元5032壓縮后的跟蹤記錄;以及第二傳送單元5034,其在所述緩存單元5033所緩存的被壓縮的跟蹤記錄的大小達(dá)到原始的跟蹤記錄的大小時(shí),將所緩存的跟蹤記錄傳送到主處理器,并在所述第一判斷單元5031判斷為該事件標(biāo)識(shí)符不是高頻事件標(biāo)識(shí)符時(shí),將包含該事件標(biāo)識(shí)符的跟蹤記錄傳送到主處理器。才艮據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)利用壓縮單元5032對(duì)某個(gè)加速器生成的一個(gè)跟蹤記錄進(jìn)行壓縮時(shí),壓縮單元5032中的差分計(jì)算單元對(duì)該跟蹤記錄中與跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和該跟蹤記錄模式中所標(biāo)記的部分進(jìn)行差分計(jì)算,并通過(guò)記錄單元記錄進(jìn)行了差分計(jì)算的部分的位置和相應(yīng)的差分值,以形成被壓縮的跟蹤記錄??蛇x地,根據(jù)本發(fā)明的另一個(gè)實(shí)施例,當(dāng)利用壓縮單元5032對(duì)某個(gè)加速器生成的一個(gè)跟蹤記錄進(jìn)行壓縮時(shí),壓縮單元5032中的差分計(jì)算單元對(duì)該跟蹤記錄中與跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和該跟蹤記^S式中所標(biāo)記的部分進(jìn)行差分計(jì)算,并通過(guò)記錄單元記錄進(jìn)行了差分計(jì)算的部分的差分值,以形成被壓縮的跟蹤記錄??蛇x地,根據(jù)本發(fā)明的再一個(gè)實(shí)施例,當(dāng)利用壓縮單元5032對(duì)某個(gè)加速器生成的一個(gè)跟蹤記錄進(jìn)行壓縮時(shí),壓縮單元5032中的差分計(jì)算單元將該跟蹤記錄中的每個(gè)字節(jié)與跟蹤記M式中的對(duì)應(yīng)字節(jié)進(jìn)行差分計(jì)算,并通過(guò)第二判斷單元判斷除了與該跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分以外的字節(jié)的差分值是否為零,然后由記錄單元記錄與該跟蹤記M式中所標(biāo)記的部分對(duì)應(yīng)的部分的差分值,并在第二判斷單元判斷為差分值不為零時(shí),記錄對(duì)應(yīng)字節(jié)的位置和差分值,以形成,皮壓縮的跟蹤記錄。這樣,壓縮單元5032能夠?qū)λ傻母櫽涗浿邪哳l事件標(biāo)識(shí)符的J^記錄進(jìn)行壓縮。在上述的實(shí)施例中,J峰記^S式是固定的,也可以使用自適應(yīng)的跟蹤記^漠式。根據(jù)本發(fā)明的另一個(gè)實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置還可以包括更新部件,其在所生成的跟蹤記錄被壓縮后,將對(duì)應(yīng)的跟蹤記錄模式更新為該壓縮前的跟蹤記錄;其中,更新后的跟蹤記錄壓縮方案從相應(yīng)的加速器傳送到主處理器。應(yīng)當(dāng)指出,本實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置500在操作上可以實(shí)現(xiàn)如圖1所示的壓縮應(yīng)用程序的跟蹤記錄的方法。在同一個(gè)發(fā)明構(gòu)思下,圖9是才艮據(jù)本發(fā)明的一個(gè)實(shí)施例的異構(gòu)多核體系結(jié)構(gòu)的方框圖。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)描述,其中與前面實(shí)施例相同的部分,適當(dāng)省略其說(shuō)明。如圖9所示,本實(shí)施例的異構(gòu)多核體系結(jié)構(gòu)900包括主處理器901和多個(gè)加速器,例如,三個(gè)加速器902、903、904,在其上能夠運(yùn)行應(yīng)用程序,其中多個(gè)加速器卯2、903、卯4生成相應(yīng)的記錄;以及如圖5所示的實(shí)施例的壓縮應(yīng)用程序的跟蹤記錄的裝置500,其對(duì)由多個(gè)加速器902、903、卯4生成的跟蹤記錄進(jìn)行壓縮。當(dāng)主處理器901從壓縮應(yīng)用程序的跟蹤記錄的裝置500接收到跟蹤記錄和各個(gè)加速器的跟蹤記錄壓縮方案時(shí),判斷所接收的跟蹤記錄所包含的事件標(biāo)識(shí)符是否是跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符,并在判斷結(jié)果是肯定時(shí),對(duì)所接收的跟蹤記錄進(jìn)行解壓縮,解壓縮后的跟蹤記錄被提供給分析器以進(jìn)行進(jìn)一步的處理;當(dāng)判斷結(jié)果是否定時(shí),主處理器卯l直接將跟蹤記錄提供給分析器。應(yīng)當(dāng)指出,上述實(shí)施例中的壓縮應(yīng)用程序的跟蹤記錄的裝置、異構(gòu)多核體系結(jié)構(gòu)及其各個(gè)組成部分可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。以上雖然通過(guò)一些示例性的實(shí)施例詳細(xì)描述了本發(fā)明的壓縮應(yīng)用程序的跟蹤記錄的方法和裝置以及異構(gòu)多核體系結(jié)構(gòu),但是以上這些實(shí)施例并不是窮舉的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實(shí)施例,本發(fā)明的范圍僅由所附的權(quán)利要求限定。權(quán)利要求1.一種應(yīng)用程序的跟蹤記錄壓縮方案的生成方法,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述方法包括在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行所述應(yīng)用程序的至少一部分;收集并分析跟蹤記錄,所述跟蹤記錄由所述多個(gè)加速器生成并包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù);以及根據(jù)所述分析的結(jié)果,生成所述應(yīng)用程序的跟蹤記錄壓縮方案。2.根據(jù)權(quán)利要求l所述的方法,其中,所述收集并分析跟蹤記錄的步驟包括從所述多個(gè)加速器中收集所生成的跟蹤記錄;根據(jù)所收集的跟蹤記錄中的加速器的編號(hào),對(duì)所述跟蹤記錄進(jìn)行分類;將每個(gè)加速器對(duì)應(yīng)一個(gè)跟蹤記錄的類別,在每個(gè)類別中計(jì)算每個(gè)事件的對(duì)應(yīng)躍應(yīng)記錄的個(gè)數(shù);確定所述應(yīng)用程序的高頻事件標(biāo)識(shí)符,其中,包含所述高頻事件標(biāo)識(shí)符的跟蹤記錄的個(gè)數(shù)總和與所收集的跟蹤記錄的個(gè)數(shù)總和的比值大于等于預(yù)定的閾值;獲取所述高頻事件標(biāo)識(shí)符的每一個(gè)的跟蹤記M式。3.根據(jù)權(quán)利要求2所述的方法,其中,所述收集并分析跟蹤記錄的步驟還包括獲取每個(gè)加速器的可用空間;以及建立針對(duì)每個(gè)加速器的跟蹤記錄模式,即加速器與跟蹤記^^式的映射。4.根據(jù)權(quán)利要求3所述的方法,其中,所述生成所述應(yīng)用程序的跟蹤記錄壓縮方案的步驟包括根據(jù)所獲取的每個(gè)加速器的可用空間,計(jì)算每個(gè)加速器可裝載的跟蹤記錄模式的個(gè)數(shù);根據(jù)所述加速器與踏應(yīng)記錄模式的映射和所計(jì)算的跟蹤記錄模式的個(gè)數(shù),確定每個(gè)加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記M式;對(duì)于每個(gè)加速器,生成該加速器的跟蹤記錄壓縮方案,其包括所確定的該加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記錄模式和相應(yīng)的高頻事件標(biāo)識(shí)符。5.根據(jù)權(quán)利要求4所述的方法,其中,所述生成所述應(yīng)用程序的JM宗記錄壓縮方案的步g包括將各個(gè)加速器的跟蹤記錄壓縮方案?jìng)魉偷綄?duì)應(yīng)的加速器和所述主處理器。6.根據(jù)權(quán)利要求2至5任意一項(xiàng)所述的方法,其中,所述獲取所述高頻事件標(biāo)識(shí)符的每一個(gè)的跟蹤記^式的步驟包括對(duì)于每一個(gè)所述高頻事件標(biāo)識(shí)符,比較包含該高頻事件標(biāo)識(shí)符的所有跟蹤記錄,以確定這些跟蹤記錄的跟蹤數(shù)據(jù)中不同的部分;選擇包含該高頻事件標(biāo)識(shí)符的任意一個(gè)跟蹤記錄,作為該高頻事件標(biāo)識(shí)符的跟蹤記影漠式;以及對(duì)所述跟蹤記錄模式的跟蹤數(shù)據(jù)中與所述不同的部分對(duì)應(yīng)的部分進(jìn)行標(biāo)記。7.—種壓縮應(yīng)用禾呈序的跟蹤記錄的方法,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述方法包括在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行部分或者整個(gè)所述應(yīng)用程序;以及根據(jù)權(quán)利要求1-6所述的應(yīng)用程序的跟蹤記錄壓縮方案的生成方法所生成的跟蹤記錄壓縮方案,壓縮由所述多個(gè)加速器生成的跟蹤記錄。8.根據(jù)權(quán)利要求7所述的方法,其中,所述壓縮所生成的跟蹤記錄的步驟包括判斷所生成的跟蹤記錄中的事件標(biāo)識(shí)符是否是相應(yīng)的加速器的跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符;如果該事件標(biāo)識(shí)符是高頻事件標(biāo)識(shí)符,則根據(jù)該跟蹤記錄壓縮方案中該事件標(biāo)識(shí)符的跟蹤記泉漠式,對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮;緩存被壓縮的跟蹤記錄;當(dāng)所續(xù)_存的被壓縮的跟蹤記錄的大小達(dá)到原始的多艮蹤記錄的大小時(shí),將其傳送到所述主處理器。9.根據(jù)權(quán)利要求8所述的方法,其中,所述壓縮所生成的跟蹤記錄的步驟還包括如果該事件標(biāo)識(shí)符不是高頻事件標(biāo)識(shí)符,則將包含該事件標(biāo)識(shí)符的跟蹤記錄傳送到所述主處理器。10.根據(jù)權(quán)利要求8所述的方法,其中,所述對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮的步驟包括對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄中與該事件標(biāo)識(shí)符的跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和所述所標(biāo)記的部分進(jìn)行差分計(jì)算;以及記錄進(jìn)行了差分計(jì)算的部分的位置和相應(yīng)的差分值,以形成所述被壓縮的跟蹤記錄。11.根據(jù)權(quán)利要求8所述的方法,其中,所述對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮的步驟包括對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄中與該事件標(biāo)識(shí)符的跟蹤記彖漠式中所標(biāo)記的部分對(duì)應(yīng)的部分和所述所標(biāo)記的部分進(jìn)行差分計(jì)算;以及記錄進(jìn)行了差分計(jì)算的部分的差分值,以形成所述被壓縮的跟蹤記錄。12.根據(jù)權(quán)利要求8所述的方法,其中,所述對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮的步驟包括對(duì)于包含該事件標(biāo)識(shí)符的跟蹤記錄中的每個(gè)字節(jié),將其與該事件標(biāo)識(shí)符的跟蹤記M式中的對(duì)應(yīng)字節(jié)進(jìn)行差分計(jì)算;記錄與該事件標(biāo)識(shí)符的跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分的差分值,以構(gòu)成所述被壓縮的跟蹤記錄的一部分;判斷除了與上述所標(biāo)記的部分對(duì)應(yīng)的部分以外的字節(jié)的差分值是否為零;以及如果所述差分值不為零,則記錄對(duì)應(yīng)字節(jié)的位置和差分值,以構(gòu)成所述4皮壓縮的跟蹤記錄的另一部分。13.根據(jù)權(quán)利要求8至12任意一項(xiàng)所述的方法,還包括將所述跟蹤記錄壓縮方案中高頻事件標(biāo)識(shí)符的跟蹤記泉漠式更新為所生成的未被壓縮的包含該高頻事件標(biāo)識(shí)符的跟蹤記錄;以及將更新后的跟蹤記錄壓縮方案?jìng)魉偷剿鲋魈幚砥鳌?4.根據(jù)權(quán)利要求8至12任意一項(xiàng)所述的方法,還包括所述主處理器判斷所接收的跟蹤記錄中包含的事件標(biāo)識(shí)符是否是所述,記錄壓縮方案中的高頻事件標(biāo)識(shí)符;以及如果是,則對(duì)所接收的跟蹤記錄進(jìn)行解壓縮。15.—種應(yīng)用程序的跟蹤記錄壓縮方案生成裝置,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述i^p5J宗記錄壓縮方案生成裝置包括收集與分析部件,用于收集并分析在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行所述應(yīng)用程序的至少一部分時(shí)由所述多個(gè)加速器生成的跟蹤記錄,其中,所述跟蹤記錄包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù);壓縮方案生成部件,用于才艮據(jù)所述收集與分析部件的分析結(jié)果,生成所述應(yīng)用程序的跟蹤記錄壓縮方案。16.根據(jù)權(quán)利要求15所述的裝置,其中,所述收集與分析部件包括收集單元,用于從所述多個(gè)加速器中收集所生成的跟蹤記錄;分類單元,用于才艮據(jù)所收集的跟蹤記錄中的加速器的編號(hào),對(duì)所述跟蹤記錄進(jìn)行分類;計(jì)數(shù)單元,用于將每個(gè)加速器對(duì)應(yīng)一個(gè)跟蹤記錄的類別,并在每個(gè)類別中計(jì)算每個(gè)事件的對(duì)應(yīng)跟蹤記錄的個(gè)數(shù);高頻事件標(biāo)識(shí)符確定單元,用于確定所述應(yīng)用程序的高頻事件標(biāo)識(shí)符,其中,包含所述高頻事件標(biāo)識(shí)符的跟蹤記錄的個(gè)數(shù)總和與所收集的跟蹤記錄的個(gè)數(shù)總和的比值大于等于預(yù)定的閾值;跟蹤記錄模式獲取單元,用于獲取所述高頻事件標(biāo)識(shí)符的每一個(gè)的跟蹤記絲式。17.根據(jù)權(quán)利要求16所述的裝置,其中,所述收集與分析部件還包括可用空間獲取單元,用于獲取每個(gè)所#速器的可用空間;以及加速器-跟蹤記f^式映射建立單元,其建立針對(duì)每個(gè)加速器的跟蹤記^^式,即加速器與跟蹤記M式的映射。18.根據(jù)權(quán)利要求15所述的裝置,其中,所述壓縮方案生成部件包括計(jì)算單元,用于根據(jù)所獲取的每個(gè)加速器的可用空間,計(jì)算每個(gè)加速器可裝載的跟蹤記^式的個(gè)數(shù);跟蹤記錄模式確定單元,用于根據(jù)所述映射和由所述計(jì)算單元計(jì)算的記錄模式的個(gè)數(shù),確定每個(gè)加速器可裝載的高頻事件標(biāo)識(shí)符的跟蹤記錄模式;加速器壓縮方案生成單元,用于對(duì)于每個(gè)加速器,生成該加速器的跟蹤記錄壓縮方案,其包括所確定的該加速器可裝栽的高頻事件標(biāo)識(shí)符的跟蹤記恭漠式和相應(yīng)的高頻事件標(biāo)識(shí)符。19.根據(jù)權(quán)利要求18所述的裝置,其中,所述壓縮方案生成部件包括第一傳送單元,用于將各個(gè)加速器的跟蹤記錄壓縮方案?jìng)魉偷綄?duì)應(yīng)的加速器和所述主處理器。20.根據(jù)權(quán)利要求16至19任意一項(xiàng)所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述跟蹤記錄模式獲取單元包括比較單元,用于對(duì)于每一個(gè)所述高頻事件標(biāo)識(shí)符,比較包含該高頻事件標(biāo)識(shí)符的所有跟蹤記錄,以確定這些跟蹤記錄的,數(shù)據(jù)中不同的部分;選擇單元,用于選擇包含該高頻事件標(biāo)識(shí)符的任意一個(gè)跟蹤記錄,作為該高頻事件標(biāo)識(shí)符的跟蹤記泉漠式;以及標(biāo)記單元,用于對(duì)所述跟蹤記錄模式的跟蹤數(shù)據(jù)中與所述不同的部分對(duì)應(yīng)的部分進(jìn)行標(biāo)記。21.—種壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述裝置包括如權(quán)利要求15-20任一項(xiàng)所述的應(yīng)用程序的跟蹤記錄壓縮方案生成裝置;壓縮部件,用于當(dāng)在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行整個(gè)所述應(yīng)用程序時(shí),根據(jù)所述跟蹤記錄壓縮方案生成裝置所生成的跟蹤記錄壓縮方案,壓縮由所述多個(gè)加速器所生成的跟蹤記錄。22.根據(jù)權(quán)利要求13所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述壓縮部件包括笫一判斷單元,用于判斷所生成的跟蹤記錄中的事件標(biāo)識(shí)符是否是相應(yīng)的加速器的跟蹤記錄壓縮方案中的高頻事件標(biāo)識(shí)符;壓縮單元,用于在所述第一判斷單元判斷為該事件標(biāo)識(shí)符是高頻事件標(biāo)識(shí)符時(shí),根據(jù)該跟蹤記錄壓縮方案中該事件標(biāo)識(shí)符的跟蹤記影漠式,對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄進(jìn)行壓縮;緩存單元,用于緩存被壓縮的跟蹤記錄;以及第二傳送單元,用于在所述緩存單元所緩存的被壓縮的跟蹤記錄的大小達(dá)到原始的跟蹤記錄的大小時(shí),將所緩存的跟蹤記錄傳送到所述主處理器,并在所述第一判斷單元判斷為該事件標(biāo)識(shí)符不是高頻事件標(biāo)識(shí)符時(shí),將包含該事件標(biāo)識(shí)符的跟蹤記錄傳送到所述主處理器。23.根據(jù)權(quán)利要求22所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述壓縮單元包括差分計(jì)算單元,用于對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄中與該事件標(biāo)識(shí)符的跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分和所述所標(biāo)記的部分進(jìn)行差分計(jì)算;以及記錄單元,用于記錄進(jìn)行了差分計(jì)算的部分的位置和相應(yīng)的差分值,以形成所述被壓縮的踏J宗記錄。24.根據(jù)權(quán)利要求23所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述壓縮單元包括差分計(jì)算單元,用于對(duì)包含該事件標(biāo)識(shí)符的跟蹤記錄中與該事件標(biāo)識(shí)符的跟蹤記^S式中所標(biāo)記的部分對(duì)應(yīng)的部分和所述所標(biāo)記的部分進(jìn)行差分計(jì)算;以及記錄單元,用于記錄進(jìn)行了差分計(jì)算的部分的差分值,以形成所述被壓縮的跟蹤記錄。25.根據(jù)權(quán)利要求23所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,其中,所述壓縮單元包括差分計(jì)算單元,用于對(duì)于包含該事件標(biāo)識(shí)符的跟蹤記錄中的每個(gè)字節(jié),將其與該事件標(biāo)識(shí)符的跟蹤記錄模式中的對(duì)應(yīng)字節(jié)進(jìn)行差分計(jì)算;第二判斷單元,用于判斷除了與該事件標(biāo)識(shí)符的跟蹤記錄模式中所標(biāo)記的部分對(duì)應(yīng)的部分以外的字節(jié)的差分值是否為零;以及記錄單元,用于記錄與該事件標(biāo)識(shí)符的跟蹤記恭漠式中所標(biāo)記的部分對(duì)應(yīng)的部分的差分值,并在所述第二判斷單元判斷為所述差分值不為零時(shí),記錄對(duì)應(yīng)字節(jié)的位置和差分值,以形成所述,皮壓縮的跟蹤記錄。26.根據(jù)權(quán)利要求22至25任意一項(xiàng)所述的壓縮應(yīng)用程序的跟蹤記錄的裝置,還包括更新部件,用于將所述跟蹤記錄壓縮方案中高頻事件標(biāo)識(shí)符的跟蹤記^式更新為所生成的未被壓縮的包含該高頻事件標(biāo)識(shí)符的跟蹤記錄;其中,更新后的跟蹤記錄壓縮方案4皮傳送到所述主處理器。全文摘要本發(fā)明涉及一種應(yīng)用程序的跟蹤記錄壓縮方案的生成方法,其中,所述應(yīng)用程序在異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行,所述異構(gòu)多核體系結(jié)構(gòu)包括主處理器和多個(gè)加速器,所述方法包括在所述異構(gòu)多核體系結(jié)構(gòu)上運(yùn)行所述應(yīng)用程序的至少一部分;收集并分析跟蹤記錄,所述跟蹤記錄由所述多個(gè)加速器生成并包括事件標(biāo)識(shí)符和跟蹤數(shù)據(jù);以及根據(jù)所述分析的結(jié)果,生成所述應(yīng)用程序的跟蹤記錄壓縮方案。該方法能夠適用于異構(gòu)多核體系結(jié)構(gòu),通過(guò)使用與跟蹤記錄相似的跟蹤記錄模式,既能壓縮完全相同的跟蹤記錄,又能壓縮部分相同的跟蹤記錄,通過(guò)對(duì)高頻事件的跟蹤記錄進(jìn)行壓縮,能夠縮短跟蹤記錄傳送的時(shí)間,減少對(duì)應(yīng)用程序行為的影響。本發(fā)明還公開(kāi)了一種應(yīng)用程序的跟蹤記錄壓縮方案的生成裝置、一種壓縮應(yīng)用程序的跟蹤記錄的方法、一種壓縮應(yīng)用程序的跟蹤記錄的裝置和一種異構(gòu)多核體系結(jié)構(gòu)。文檔編號(hào)G06F11/36GK101615157SQ20081012925公開(kāi)日2009年12月30日申請(qǐng)日期2008年6月26日優(yōu)先權(quán)日2008年6月26日發(fā)明者寬?cǎi)T,嚴(yán)李,楊雨?yáng)|,鯤王申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司