專利名稱:產(chǎn)生用于數(shù)據(jù)處理裝置的跟蹤流的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于產(chǎn)生指示數(shù)據(jù)處理裝置被監(jiān)控電路的活動(dòng)的跟蹤 流的技術(shù)。
背景技術(shù):
跟蹤數(shù)據(jù)處理系統(tǒng)的活動(dòng)由此產(chǎn)生包括代表系統(tǒng)內(nèi)逐步活動(dòng)的數(shù) 據(jù)的跟蹤元素流在系統(tǒng)開發(fā)中是十分有用的工具。然而,隨著一般向 更深嵌入的處理器核發(fā)展,經(jīng)由外部可存取引腳跟蹤處理器核或其他 芯片上設(shè)備的活動(dòng)變得更加困難。因此,除了用于捕獲和分析跟蹤數(shù) 據(jù)的芯片外跟蹤機(jī)制,大量增加的跟蹤功能被布置在芯片上。這種芯片上跟蹤機(jī)制的示例是英國(guó)劍橋的ARM有限公司提供的與其各種 ARM處理器相關(guān)的嵌入式跟蹤宏單元(ETM)。這種跟蹤機(jī)制產(chǎn)生提供跟蹤元素的實(shí)時(shí)跟蹤流,所述跟蹤元素代 表設(shè)計(jì)為被跟蹤的數(shù)據(jù)處理裝置的活動(dòng)。這種跟蹤流然后可以被分析 以用于各種目的,例如,用于幫助數(shù)據(jù)處理裝置執(zhí)行的處理指令序列 的調(diào)試、用于執(zhí)行仿形操作以判斷數(shù)據(jù)處理裝置上執(zhí)行的特定程序代 碼的性能等。典型地,跟蹤機(jī)制產(chǎn)生的跟蹤元素流在被輸出以用于后續(xù)分析之 前被緩沖。這種跟蹤緩沖器能夠存儲(chǔ)有限數(shù)目的信息且需要具有有限 帶寬的專用數(shù)據(jù)總線,被緩沖的元素能夠通過(guò)該專用數(shù)據(jù)總線接收。 跟蹤緩沖器一般被布置為以巻繞方式存儲(chǔ)信息,即, 一旦跟蹤緩沖器 滿,新的數(shù)據(jù)典型地被布置為重寫其中存儲(chǔ)的最老的數(shù)據(jù)。已經(jīng)發(fā)現(xiàn), 專用數(shù)據(jù)總線的帶寬限制了信息可以存儲(chǔ)在跟蹤緩沖器中的速度。典型地,提供跟蹤分析工具,當(dāng)需要時(shí),例如一旦完成跟蹤,該 跟蹤分析工具從跟蹤緩沖器接收跟蹤元素的跟蹤流。跟蹤分析工具然后用于基于接收的跟蹤元素重新構(gòu)建被跟蹤設(shè)備的活動(dòng)。當(dāng)諸如處理 器核這樣的設(shè)備在功率和復(fù)雜性方面增加時(shí),很清楚,跟蹤這種設(shè)備 的活動(dòng)所需的信息量將增加,且相應(yīng)地,潛在地存在需要被跟蹤的非
常大量的跟蹤元素。然而,存在這樣的問(wèn)題,即,存在有限的總線帶寬,跟蹤邏輯能 夠通過(guò)該總線帶寬輸出跟蹤元素,且用于緩沖這種跟蹤元素的任意跟 蹤緩沖器將具有有限的尺寸。因此,能夠產(chǎn)生的跟蹤元素的量受限??赡芟M櫟脑O(shè)備的活動(dòng)包括但不限于處理器核執(zhí)行的指令 (稱作指令跟蹤)以及這些指令做出的存儲(chǔ)器存取(稱為數(shù)據(jù)跟蹤)。這些活動(dòng)可以被單獨(dú)地跟蹤或一起跟蹤,使得數(shù)據(jù)跟蹤可以與指令跟 蹤相關(guān)。數(shù)據(jù)跟蹤本身包括兩個(gè)部分存儲(chǔ)器地址和數(shù)據(jù)值,(分別) 稱為數(shù)據(jù)地址和數(shù)據(jù)值跟蹤。此外,現(xiàn)有跟蹤ETM協(xié)議允許數(shù)據(jù)地址 和數(shù)據(jù)值跟蹤單獨(dú)或同時(shí)生效。為了減小需要在跟蹤流中輸出的跟蹤數(shù)據(jù)量,已知在跟蹤流中輸 出之前使跟蹤元素經(jīng)歷壓縮技術(shù)。具體而言,跟蹤元素序列可以經(jīng)過(guò) 編碼操作以產(chǎn)生其位組合格式代表跟蹤元素序列的包,所述包然后在跟蹤流中輸出。將典型地定義壓縮機(jī)制,提供可用于編碼跟蹤元素的 大量不同的編碼格式。例如,每個(gè)包輸出將典型地包括報(bào)頭部分和可 選的有效載荷部分??紤]報(bào)頭,它們典型地具有字節(jié)信息的形式,且 相應(yīng)地存在256種可能的報(bào)頭編碼。這些編碼中的某一些可以與一種 編碼格式相關(guān),而這些編碼中的另一些可以與不同的編碼格式相關(guān)。 并且,可以為有效載荷部分提供其他編碼格式。這些不同的編碼格式 可用于編碼需要被編碼成包的不同種類的跟蹤元素,但是這些不同的 編碼格式在位組合格式編碼空間將不重疊,使得每個(gè)包能夠被用于分 析跟蹤流的跟蹤分析工具唯一地識(shí)別。舉例而言,現(xiàn)有ETM協(xié)議產(chǎn)生指示指令是否被執(zhí)行的被稱為原 子的跟蹤元素,E原子指示指令已經(jīng)被執(zhí)行且N原子指示指令尚未被 執(zhí)行。這些原子序列可以壓縮成被稱作p報(bào)頭的包中,p報(bào)頭包括一個(gè) 字節(jié)大小的報(bào)頭且沒有有效載荷。可以提供為特定E和N原子序列產(chǎn) 生p報(bào)頭的一個(gè)或多個(gè)編碼格式,但是每個(gè)這種編碼格式將相對(duì)于用 于p報(bào)頭的任意其他編碼格式占用非重疊位組合格式編碼空間,且實(shí) 際上,關(guān)于用于不同類型的報(bào)頭的任意其他編碼格式,例如用于識(shí)別 給出關(guān)于分支指令信息的包的分支報(bào)頭、用于識(shí)別包含數(shù)據(jù)地址或數(shù) 據(jù)值信息的包的數(shù)據(jù)地址或數(shù)據(jù)值報(bào)頭等。與任意特定跟蹤電路結(jié)合使用的壓縮方案將典型地在設(shè)計(jì)時(shí)間上
固定,具有基于需要壓縮的跟蹤元素的期望組合格式選擇的壓縮方案 中提供的特定編碼格式。因此,舉例而言,考慮較早提及的p報(bào)頭,用于從E和N原子序列產(chǎn)生這些p報(bào)頭的編碼格式典型地使用游程編 碼方案,其中,編碼朝向長(zhǎng)的E原子序列歪斜,因?yàn)橐话鉋比N原子 更常見。除了能夠選擇性地實(shí)現(xiàn)指令跟蹤、數(shù)據(jù)地址跟蹤和數(shù)據(jù)值跟蹤, 當(dāng)前的跟蹤電路還能夠支持不同的跟蹤操作模式。例如,考慮較早提 及的ETM產(chǎn)品,可以提供非循環(huán)精確跟蹤操作模式和循環(huán)精確跟蹤操 作模式。為了從非循環(huán)精確跟蹤操作模式切換到循環(huán)精確跟蹤操作模 式,或相反,任意當(dāng)前跟蹤活動(dòng)停止,且跟蹤電路中的大量控制寄存 器被更新以定義新的跟蹤操作模式。作為更新處理的一部分,壓縮方 案可以改變,以提供為新的跟蹤操作模式更好優(yōu)化的壓縮方案。例如, 考慮循環(huán)精確跟蹤操作模式,在每個(gè)時(shí)鐘循環(huán)產(chǎn)生被稱作W原子的附 加原子以提供循環(huán)精確計(jì)時(shí)信息,且相應(yīng)地循環(huán)精確跟蹤操作模式中 用于p報(bào)頭的編碼格式典型地不同于用在非循環(huán)精確跟蹤模式中的編 碼格式以反映除了 E和N原子之外在p報(bào)頭中編碼W原子的序列的需 要。然而,此外,考慮需要壓縮的跟蹤元素的期望組合格式,為循環(huán) 精確跟蹤操作模式而發(fā)展的任意壓縮方案將典型地在設(shè)計(jì)時(shí)間固定。然而,在任意特定的跟蹤操作模式中,當(dāng)應(yīng)用為該跟蹤操作模式 設(shè)置的預(yù)定壓縮方案時(shí)可能出現(xiàn)效率問(wèn)題。例如,當(dāng)活動(dòng)被跟蹤的監(jiān) 控電路的復(fù)雜度和能力增加時(shí),在執(zhí)行的代碼序列中可能存在顯著的 變化。同樣考慮p報(bào)頭的主題,ARMThumb-2指令集提供"ifthen,,指 令,該指令可以顯著改變產(chǎn)生的N原子的頻率,且不利地影響為p報(bào) 頭設(shè)置的任意編碼格式的效率。作為另一示例,跟蹤電路可以被調(diào)適 從而不是跟蹤所有的指令,而是僅跟蹤諸如分支指令之類的特定類型 的指令。僅當(dāng)跟蹤分支指令時(shí),可以發(fā)生更高的N原子分布,同樣, 負(fù)面地影響壓縮效率。如前所述,產(chǎn)生的跟蹤量是明顯的問(wèn)題,且壓縮方案提供的編碼 中的任意低效將增加跟蹤流的容量,且因此需要更多的區(qū)域來(lái)用于芯 片上緩沖,更多的硬件用于芯片外捕獲和/或更多的引腳用于芯片外實(shí) 時(shí)跟蹤捕獲。因此,希望提供改善的技術(shù)以在跟蹤流的輸出之前壓縮 跟蹤元素。發(fā)明內(nèi)容從第一方面看,本發(fā)明提供跟蹤電路,用于產(chǎn)生指示數(shù)據(jù)處理裝 置被監(jiān)控電路的活動(dòng)的跟蹤流,該被監(jiān)控電路產(chǎn)生指示所述活動(dòng)的數(shù)據(jù)元素,且該跟蹤電路包括跟蹤元素發(fā)生電路,響應(yīng)于至少一些由 被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素,產(chǎn)生代表那些至少一些數(shù)據(jù)元素的跟蹤 元素,產(chǎn)生的跟蹤元素與選擇的跟蹤電路的跟蹤操作模式有關(guān);以及 壓縮電路,用于向跟蹤元素序列應(yīng)用編碼操作以產(chǎn)生其位組合格式代 表跟蹤元素序列的包,使得該包在跟蹤流中輸出,應(yīng)用的編碼操作依 賴于與所述壓縮電路相關(guān)的當(dāng)前壓縮方案;同時(shí)在選擇的跟蹤操作模 式中,該壓縮電路響應(yīng)于壓縮變化激勵(lì)以將當(dāng)前的壓縮方案從第一壓 縮方案變化為第二壓縮方案,該第二壓縮方案的位組合格式編碼空間 覆蓋該第一壓縮方案的位組合格式編碼空間,使得在壓縮方案改變之 后,在所選跟蹤操作模式中根據(jù)第二壓縮方案產(chǎn)生任意其他包。根據(jù)本發(fā)明,壓縮電路被布置以響應(yīng)于壓縮變化激勵(lì),以在跟蹤 電路仍處于所選的跟蹤操作模式中時(shí)改變當(dāng)前壓縮方案。具體而言, 壓縮變化激勵(lì)導(dǎo)致當(dāng)前壓縮方案從第一壓縮方案變化到第二壓縮方 案,該第二壓縮方案中的位組合格式編碼空間重疊所述第一壓縮方案 的位組合格式編碼空間。即使跟蹤電路仍處于所選的跟蹤操作模式, 這一點(diǎn)仍然發(fā)生,且相應(yīng)地,跟蹤電路實(shí)際產(chǎn)生的跟蹤元素的類型沒 有變化。壓縮方案改變之后,在所選跟蹤操作模式中根據(jù)第二壓縮方 案產(chǎn)生任意其他包。通過(guò)使用本發(fā)明,由于在跟蹤操作模式中改變使用的壓縮方案的 能力,仍在相同的跟蹤操作模式中,與跟蹤流中的包的特定位組合格 式相關(guān)的意義可以改變。例如,注意到^支監(jiān)控電路輸出的跟蹤元素的 特定組合格式,通過(guò)調(diào)適壓縮電路應(yīng)用的壓縮方案,這樣能夠?qū)崿F(xiàn)壓 縮效率中的顯著改善。在一些實(shí)施例中,從第一壓縮方案到第二壓縮方案的切換可以在 不停止跟蹤電路的跟蹤操作的條件下發(fā)生,而在其他實(shí)施例中,跟蹤 電路的跟蹤活動(dòng)將在壓縮方案的改變發(fā)生時(shí)臨時(shí)停止。假設(shè)數(shù)據(jù)元素給出足夠的信息以用于從其產(chǎn)生的所需的跟蹤流, 跟蹤電路接收的數(shù)據(jù)元素可以具有各種形式。而且,數(shù)據(jù)元素可以從
被監(jiān)控電路(此處也稱為被跟蹤設(shè)備)傳輸?shù)礁欕娐罚蛘邆溥x地, 可以通過(guò)跟蹤電路從被跟蹤設(shè)備取回。作為示例,數(shù)據(jù)元素可以包括 指令地址值、數(shù)據(jù)地址值或數(shù)據(jù)值。跟蹤元素發(fā)生電路產(chǎn)生的跟蹤元 素然后典型地被布置以包含足夠的信息,從而使得這些數(shù)據(jù)元素,或 至少這些數(shù)據(jù)元素指示的被監(jiān)控電路的基本活動(dòng),能夠在稍后通過(guò)分 析跟蹤流的跟蹤分析邏輯判斷。存在4艮多可以產(chǎn)生壓縮變化激勵(lì)的方法。在一個(gè)實(shí)施例中,跟蹤 電路還包括壓縮方案選擇電路,用于應(yīng)用預(yù)定的標(biāo)準(zhǔn)來(lái)判斷何時(shí)改變 當(dāng)前的壓縮方案且基于所述判斷導(dǎo)致產(chǎn)生壓縮變化激勵(lì)。因此,在這 些實(shí)施例中,基于壓縮方案選擇電路進(jìn)行的分析,通過(guò)跟蹤電路內(nèi)部 地產(chǎn)生壓縮變化激勵(lì)。存在壓縮方案選擇電路可以判斷何時(shí)改變當(dāng)前壓縮方案的很多不 同方法。例如,可以從被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素比較不同壓縮方案 產(chǎn)生的跟蹤數(shù)據(jù)的容量,且然后基于該分析選擇被認(rèn)為是最有效的壓 縮方案。備選地,或附加地,可以響應(yīng)于被監(jiān)控電路的活動(dòng)的一個(gè)或 多個(gè)屬性,諸如指示被監(jiān)控電路內(nèi)執(zhí)行的當(dāng)前線程的線程識(shí)別寄存器 中保存的值,或被監(jiān)控電路存取的存儲(chǔ)器地址區(qū)域的指示,以判斷何 時(shí)切換壓縮方案。作為示例,從這些信息,可以判斷被監(jiān)控電路正運(yùn) 行哪些應(yīng)用,且壓縮方案選擇電路可以將不同的壓縮方案與不同的應(yīng) 用關(guān)聯(lián)。作為壓縮方案選擇電路怎樣判斷何時(shí)改變當(dāng)前壓縮方案的另一示 例,可以響應(yīng)從被監(jiān)控電路接收的提示信號(hào),這可以考慮何時(shí)判斷改 變壓縮方案的時(shí)間。因此,當(dāng)被監(jiān)控電路進(jìn)行的活動(dòng)正明顯變化時(shí), 被監(jiān)控電路可以輸出提示信號(hào),這種提示信號(hào)要么明確地識(shí)別被監(jiān)控 電路相信將是最合適的向前運(yùn)動(dòng)的壓縮方案,或至少指示壓縮方案選 擇電路現(xiàn)在是合適的時(shí)間來(lái)重新評(píng)估使用的壓縮方案。壓縮方案選擇電路操作的方式可以根據(jù)跟蹤電路的壓縮電路的構(gòu) 造而變化。在一個(gè)實(shí)施例中,壓縮電路包括多個(gè)壓縮元件,每個(gè)壓縮元件實(shí)施不同的壓縮方案,且能夠進(jìn)行所述編碼操作;所述壓縮方案 選擇電路被布置為產(chǎn)生選擇信號(hào)以選擇所述壓縮元件之一為其壓縮方 案為當(dāng)前壓縮方案的壓縮元件,使得所選的壓縮元件產(chǎn)生跟蹤流中包 括的包;且壓縮方案選擇電路被布置為通過(guò)變更選擇信號(hào)產(chǎn)生所述壓
縮變化激勵(lì)。根據(jù)上述實(shí)施例,壓縮電路能夠支持壓縮電路內(nèi)設(shè)置的多個(gè)壓縮 元件規(guī)定的預(yù)定數(shù)目的不同壓縮方案,且壓縮方案選擇電路產(chǎn)生選擇 信號(hào)以指示在任意特定時(shí)間點(diǎn)哪個(gè)壓縮元件將用于產(chǎn)生跟蹤流中包括 的包。應(yīng)當(dāng)意識(shí)到壓縮電路中的壓縮元件可以是完全分離的物理電路, 或備選地,壓縮元件可以彼此共享至少一些邏輯(且在一些實(shí)施例中 可以共享組成這些壓縮元件的邏輯的很大一部分)。作為示例,不同的 壓縮元件可以提供不同的編碼格式以用于編碼P報(bào)頭,其中一個(gè)壓縮 元件提供的編碼格式具有與另一壓縮元件提供的編碼格式重疊的位組 合格式編碼空間。然而,當(dāng)編碼不同于p報(bào)頭的報(bào)頭時(shí),或者當(dāng)編碼 與報(bào)頭相關(guān)的有效載荷數(shù)據(jù)時(shí),這些壓縮元件可以都采用相同的編碼 格式,且相應(yīng)地,可以共享一些邏輯以用于進(jìn)行這種非p報(bào)頭編碼。在一個(gè)實(shí)施例中,至少在測(cè)試操作周期中,每個(gè)壓縮元件被布置 為進(jìn)行編碼操作,產(chǎn)生的包被壓縮方案選擇電路接收,該壓縮方案選件中的哪一個(gè)。壓縮元件被布置為對(duì)相同的源數(shù)據(jù),即跟蹤元件產(chǎn)生 電路產(chǎn)生的跟蹤元素并行地進(jìn)行其相應(yīng)的編碼操作,或者備選地,每 個(gè)壓縮元件可以被順序地選擇以進(jìn)行編碼操作預(yù)定時(shí)間周期,生成包 然后被壓縮方案選擇電路分析。測(cè)試操作周期可以周期地進(jìn)行,從而 在周期的基礎(chǔ)上重新評(píng)估最佳壓縮方案,或者備選地,測(cè)試操作周期 可以被壓縮方案選擇電路接收的某種信息觸發(fā),例如,被監(jiān)控電路執(zhí) 行的一些活動(dòng)的指示、提示信號(hào)等觸發(fā)。在備選實(shí)施例中,壓縮方案 選擇電路可以被布置為在跟蹤流的產(chǎn)生過(guò)程中連續(xù)地進(jìn)行分析操作, 從而使得在任意時(shí)間點(diǎn)發(fā)生壓縮方案的切換,其中壓縮方案選擇電路 判斷需要改變當(dāng)前壓縮方案以提高壓縮效率。作為提供具有多個(gè)壓縮元件的壓縮電路的備選,壓縮電路可以被 布置為可重配置電路。在這種實(shí)施例中,當(dāng)被發(fā)送時(shí),壓縮變化激勵(lì) 包括用于重新配置可重配置電路的信息,從而實(shí)施第二壓縮方案。這 種方法提供了關(guān)于壓縮方案選擇的進(jìn)一步的靈活性。在一個(gè)特定實(shí)施例中,壓縮電路包括雙重可重配置電路,使得被 配置成實(shí)施第一壓縮方案的可重配置電路之一被布置為在接收壓縮變
化激勵(lì)之后繼續(xù)操作,同時(shí)另一可重配置電路根據(jù)壓縮變化激勵(lì)被重 配置,在這種重配置之后,該另一可重配置電路用于根據(jù)第二壓縮方 案產(chǎn)生后續(xù)包。通過(guò)這種方法,跟蹤數(shù)據(jù)的產(chǎn)生不需要被壓縮方案的 變化中斷, 一旦另一可重配置電路被配置,則發(fā)生壓縮方案的切換。可重配置電路可以具有各種形式,但是在一個(gè)實(shí)施例中,它是可 編程邏輯設(shè)備且壓縮變化激勵(lì)存儲(chǔ)在用于重編程該可編程邏輯設(shè)備的 存儲(chǔ)設(shè)備中。在一個(gè)特定實(shí)施例中,可編程邏輯設(shè)備可以是現(xiàn)場(chǎng)可編程門陣列(FPGA )設(shè)備且壓縮變化激勵(lì)可以存儲(chǔ)在用于重編程FPGA 設(shè)備的閃存設(shè)備中。壓縮變化激勵(lì)可以以各種方式提供到壓縮電路。在一個(gè)實(shí)施例中, 跟蹤電路還包括控制寄存器,該控制寄存器具有用于存儲(chǔ)壓縮變化激 勵(lì)的壓縮指定字段,壓縮電路參考控制寄存器的壓縮指定字段以判斷 何時(shí)改變當(dāng)前壓縮方案。然后,存儲(chǔ)在壓縮指定字段中的特定值或多 個(gè)值指示在任意時(shí)間點(diǎn)壓縮電路應(yīng)用哪個(gè)壓縮方案。為了使得跟蹤分析工具正確地解釋跟蹤流中的各個(gè)包,跟蹤分析 工具需要知道壓縮方案何時(shí)變化。存在跟蹤分析工具可以評(píng)價(jià)這種變 化的很多方法,且實(shí)際上,在一些實(shí)施例中,跟蹤分析工具的用戶可 以促成壓縮方案中的變化且因此將知道何時(shí)發(fā)生變化。在一個(gè)實(shí)施例 中,在當(dāng)前壓縮方案變化時(shí),壓縮電路被布置為在跟蹤流中輸出變化 信號(hào)以指示已經(jīng)做出了變化,使得用于分析跟蹤流的跟蹤分析裝置可 以判斷壓縮方案何時(shí)變化,從而正確地解釋跟蹤流中的包。變化信號(hào) 將提供足夠的信息以使得該跟蹤分析工具能夠結(jié)合跟蹤流中的變化信 號(hào)之后的包判斷已經(jīng)使用了哪種壓縮方案。從笫二方面看,本發(fā)明提供一種數(shù)據(jù)處理裝置,包括用于產(chǎn)生 指示被監(jiān)控電路的活動(dòng)的數(shù)據(jù)元素的被監(jiān)控電路;以及根據(jù)本發(fā)明的 第一方面,用于產(chǎn)生指示所述被監(jiān)控電路的所述活動(dòng)的跟蹤流的跟蹤 電路。從第三方面看,本發(fā)明提供一種跟蹤分析裝置,用于分析根據(jù)本 發(fā)明的笫一方面的跟蹤電路產(chǎn)生的跟蹤流,該跟蹤分析裝置包括包 解壓縮邏輯,用于解碼跟蹤流中的包,以判斷每個(gè)所述包代表的跟蹤 元素序列;以及壓縮方案選擇邏輯,用于接收跟蹤流和包解壓縮邏輯 判斷的跟蹤元素,且應(yīng)用預(yù)定標(biāo)準(zhǔn)以判斷何時(shí)改變當(dāng)前的壓縮方案,
且基于所述判斷產(chǎn)生壓縮變化激勵(lì)。代替跟蹤電路中的壓縮方案選擇電路,跟蹤分析裝置中的壓縮方 案選擇邏輯可以被設(shè)置,且執(zhí)行壓縮方案選擇電路執(zhí)行的類似的分析, 以判斷何時(shí)改變壓縮方案。在備選實(shí)施例中,跟蹤分析裝置可以包括 壓縮方案選擇邏輯且跟蹤電路可以附加地包括壓縮方案選擇電路,且 在這種實(shí)施例中,典型地必須提供一些仲裁機(jī)制以在這些元件指示的 沖突變化之間進(jìn)行仲裁。僅僅是舉例,跟蹤分析裝置中的壓縮方案選 擇邏輯可以在這種示例中提供關(guān)于跟蹤電路中的壓縮方案選擇電路采 用的活動(dòng)的第二級(jí)別的回顧。例如,壓縮方案選擇邏輯將被布置,使 得在一些情況中不僅干預(yù)壓縮方案選擇電路做出的判斷,且在壓縮方 案選擇邏輯確實(shí)發(fā)送壓縮變化激勵(lì)的情況下,任意方案將給予該壓縮 變化激勵(lì)優(yōu)選權(quán)作為壓縮方案選擇邏輯的輸出。在一個(gè)實(shí)施例中,跟蹤邏輯的壓縮電路支持預(yù)定數(shù)目的壓縮方案; 所述壓縮方案選擇邏輯被布置以產(chǎn)生選擇信號(hào)來(lái)識(shí)別哪個(gè)壓縮方案是 當(dāng)前的壓縮方案;且所述壓縮方案選擇邏輯被布置為通過(guò)變更選擇信 號(hào)產(chǎn)生所述壓縮變化激勵(lì)。在備選實(shí)施例中,壓縮變化激勵(lì)包括定義第二壓縮方案將用作當(dāng) 前壓縮方案的信息。例如這種實(shí)施例可用于跟蹤電路中的壓縮電路可 重配置的情況。在一個(gè)實(shí)施例中,當(dāng)應(yīng)用所述預(yù)定標(biāo)準(zhǔn)以判斷是否改變當(dāng)前壓縮 方案時(shí),壓縮方案選擇邏輯參考程序圖像。跟蹤分析裝置通常設(shè)置有 程序圖像的復(fù)本以使得它從跟蹤流中提供的跟蹤元素重構(gòu)被監(jiān)控電路 執(zhí)行的實(shí)際的指令序列。壓縮方案選擇邏輯可以被布置為參考程序圖 像,例如,使得當(dāng)它根據(jù)識(shí)別跟蹤流的一部分的分析識(shí)別壓縮方案中 的變化可能有價(jià)值時(shí),則它可以學(xué)習(xí)程序圖像以核查跟蹤元素的類似 形式可能在代碼的其他部分中被觀察,以由此確認(rèn)這種變化是有價(jià)值 的。從第四方面看,本發(fā)明提供一種改變用于產(chǎn)生指示數(shù)據(jù)處理裝置 被監(jiān)控電路活動(dòng)的跟蹤流的由跟蹤電路應(yīng)用的壓縮方案的方法,被監(jiān) 控電路產(chǎn)生指示所述活動(dòng)的數(shù)據(jù)元素,且該方法包括以下步驟響應(yīng) 于至少一些由被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素,產(chǎn)生代表那些至少一些數(shù)據(jù)元素的跟蹤元素,產(chǎn)生的跟蹤元素與選擇的跟蹤電路的跟蹤操作模 式有關(guān);以及對(duì)跟蹤元素序列應(yīng)用編碼操作以產(chǎn)生其位組合格式代表 跟蹤元素序列的包,且在跟蹤流中輸出該包,應(yīng)用的編碼操作與當(dāng)前 壓縮方案有關(guān);同時(shí)在所選的跟蹤操作模式中,響應(yīng)于壓縮變化激勵(lì), 將當(dāng)前壓縮方案從第一壓縮方案變化為第二壓縮方案,第二壓縮方案 的位組合格式編碼空間重疊第一壓縮方案的位組合格式編碼空間,使 得在壓縮方案改變之后,在所選跟蹤操作模式中根據(jù)第二壓縮方案產(chǎn) 生任意其他包。從第五方面看,本發(fā)明提供一種包括計(jì)算機(jī)程序的計(jì)算機(jī)程序產(chǎn) 品,通過(guò)執(zhí)行以下步驟,該計(jì)算機(jī)程序使得計(jì)算機(jī)分析根據(jù)本發(fā)明的 第四方面產(chǎn)生的跟蹤元素流解碼跟蹤流中的包,以判斷每個(gè)所述包 代表的跟蹤元素序列;以及參考跟蹤流和從跟蹤流的包解碼的跟蹤元 素,應(yīng)用預(yù)定標(biāo)準(zhǔn)來(lái)判斷何時(shí)改變當(dāng)前壓縮方案,且基于所述判斷產(chǎn) 生壓縮變化激勵(lì)。
參考如附圖中所述的實(shí)施例,僅通過(guò)舉例的方式描述本發(fā)明,附 圖中圖l是根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖;圖2是示出根據(jù)一個(gè)實(shí)施例的圖l被監(jiān)控電路的示例的框圖;圖3是更詳細(xì)地示出根據(jù)一個(gè)實(shí)施例的圖1的芯片上跟蹤模塊的框圖;圖4是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的圖3的跟蹤發(fā)生器的框圖; 圖5是示出根據(jù)本發(fā)明的備選實(shí)施例的圖3的跟蹤發(fā)生器的框圖; 圖6是示出根據(jù)本發(fā)明又一備選實(shí)施例的圖3的跟蹤發(fā)生器的框圖;圖7是示出根據(jù)本發(fā)明又一備選實(shí)施例的圖3的跟蹤發(fā)生器的框圖;圖8是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的圖1的跟蹤分析器的圖示; 圖9是示意性示出根據(jù)本發(fā)明一個(gè)實(shí)施例的圖1的跟蹤模塊20產(chǎn)生的跟蹤流中包的供應(yīng)的圖示;圖IO是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的圖4的壓縮電路和壓縮分析電路操作的流程圖11和12是示出根據(jù)本發(fā)明兩個(gè)備選實(shí)施例的圖8的跟蹤分析 器的包解壓縮邏輯和壓縮分析邏輯操作的流程圖;圖13是示意性示出當(dāng)切換壓縮方案時(shí)可以實(shí)現(xiàn)的壓縮效率的圖示;圖14示出了怎樣根據(jù)本發(fā)明一個(gè)實(shí)施例中使用的不同壓縮方案 解釋特定位組合格式。
具體實(shí)施方式
圖1示意性地示出了提供被監(jiān)控電路IO、跟蹤模塊20、跟蹤緩沖 器30和跟蹤分析器40的數(shù)據(jù)處理系統(tǒng)。同時(shí)圖1示出了提供跟蹤緩 沖器30的數(shù)據(jù)處理系統(tǒng),在備選實(shí)施例中,跟蹤模塊20可以將其輸 出直接通過(guò)跟蹤分析器40,而不經(jīng)由跟蹤緩沖器。產(chǎn)生跟蹤模塊20接收的數(shù)據(jù)元素流的被監(jiān)控電路10可以具有各 種形式,且例如可以是處理器核、直接存儲(chǔ)器存取(DMA)引擎、數(shù) 據(jù)引擎/加速器等。備選地,被監(jiān)控電路10可以由通過(guò)總線耦合的多個(gè) 設(shè)備組成,且數(shù)據(jù)元素可以在它們經(jīng)過(guò)總線時(shí)被跟蹤模塊20監(jiān)控。在一個(gè)實(shí)施例中可以通過(guò)運(yùn)行適當(dāng)軟件的通用目的計(jì)算機(jī)形成的 跟蹤分析器40耦合到跟蹤模塊20和跟蹤緩沖器30。典型地嵌入在芯 片上的跟蹤模塊20被布置為從邏輯10接收數(shù)據(jù)元素且根據(jù)它來(lái)產(chǎn)生 提供存儲(chǔ)在跟蹤緩沖器30 (可以在芯片上或芯片外提供)中的跟蹤元 素的跟蹤流。典型地芯片外嵌入的跟蹤分析器40然后用于分析該跟蹤 流以得出指示被跟蹤的被監(jiān)控電路10的活動(dòng)的信息。具體而言,通過(guò) 跟蹤流的分析,可以判斷被監(jiān)控電路10的詳細(xì)活動(dòng)。跟蹤分析器40連接到跟蹤模塊20以使得跟蹤模塊的一些特征能 夠被跟蹤分析器的用戶控制。另外,在一些實(shí)施例中,跟蹤模塊20產(chǎn) 生的跟蹤流可以直接提供到跟蹤分析器40而不用在跟蹤緩沖器30中 緩沖。圖2是圖1的被監(jiān)控電路10的示例的框圖。在該示例中,被監(jiān)控 電路10包括通過(guò)總線15連接的兩個(gè)設(shè)備(11, 12)??偩€經(jīng)由連接105 鏈接到跟蹤模塊20,該邏輯產(chǎn)生的數(shù)據(jù)元素經(jīng)過(guò)該連接105。圖3是根據(jù)一個(gè)實(shí)施例的跟蹤模塊20的框圖。跟蹤模塊20被布 置為在路徑105上接收指示被跟蹤的被監(jiān)控電路的狀態(tài)或操作的數(shù)據(jù) 元素。同步邏輯IOO被布置為將輸入信號(hào)轉(zhuǎn)換成更適于在跟蹤模塊20 中使用的內(nèi)部信號(hào)版本。這些內(nèi)部版本然后被發(fā)送到控制邏輯110和 跟蹤發(fā)生邏輯120,盡管應(yīng)當(dāng)意識(shí)到控制邏輯11和跟蹤發(fā)生邏輯120 將不必接收相同的信號(hào)?;镜?,控制邏輯110需要接收與可觸發(fā)事 件相關(guān)的數(shù)據(jù),例如,指令地址、數(shù)據(jù)值、寄存器存取等,使得它能 夠判斷跟蹤是否被激勵(lì)以及將跟蹤什么類型的數(shù)據(jù)元素。控制邏輯110 然后發(fā)送合適的控制信號(hào)到跟蹤發(fā)生邏輯120以使得跟蹤發(fā)生邏輯120 產(chǎn)生需要的跟蹤元素。根據(jù)控制邏輯110發(fā)送的控制信號(hào),跟蹤發(fā)生邏 輯120經(jīng)由同步邏輯IOO接收需要被跟蹤的任意數(shù)據(jù)。根據(jù)本發(fā)明的實(shí)施例,設(shè)置用于配置控制邏輯110的操作的控制 寄存器140,這些控制寄存器140可以從跟蹤分析器40設(shè)置。可以提 供很多控制寄存器,它們基本引導(dǎo)跟蹤發(fā)生邏輯操作的兩個(gè)元素-"何 時(shí)"產(chǎn)生跟蹤元素,例如何時(shí)存取特定范圍的地址,以及"什么"用于產(chǎn) 生這些跟蹤元素,例如數(shù)據(jù)地址和/或特定轉(zhuǎn)換的數(shù)據(jù)值,且典型地關(guān) 于轉(zhuǎn)換的補(bǔ)充信息諸如是否是讀或?qū)懖僮鳌⑹欠癖绘i定、安全信息等??刂七壿?10發(fā)送的控制信號(hào)觸發(fā)滿足"何時(shí),,條件,根據(jù)從控制 邏輯接收相關(guān)的"什么"信號(hào),跟蹤發(fā)生邏輯120產(chǎn)生指示它從同步邏 輯100接收的數(shù)據(jù)元素的所需跟蹤元素。這些產(chǎn)生的跟蹤元素然后典 型地經(jīng)歷壓縮操作且然后被輸出到FIFO 130。從這里,跟蹤流然后被 輸出到跟蹤緩沖器30,或在備選實(shí)施例中,被直接輸出到跟蹤分析器 40。下面將提供根據(jù)本發(fā)明各個(gè)不同實(shí)施例的跟蹤發(fā)生器120進(jìn)行的 壓縮操作的更多細(xì)節(jié),但是一般而言,本發(fā)明實(shí)施例的跟蹤發(fā)生器設(shè) 置有用于向跟蹤元素序列應(yīng)用編碼操作的壓縮電路,以產(chǎn)生跟蹤流中 輸出的包,應(yīng)用的所述編碼操作依賴于與壓縮電路相關(guān)的當(dāng)前壓縮方 案。跟蹤發(fā)生器120響應(yīng)于壓縮變化激勵(lì)以將當(dāng)前壓縮方案從第一壓 縮方案改變到第二壓縮方案,該第二壓縮方案的位組合格式編碼空間 重疊第一壓縮方案的位組合格式編碼空間,使得在壓縮方案變化之后, 在相同的跟蹤操作模式中根據(jù)第二壓縮方案產(chǎn)生任意其他包。壓縮變 化激勵(lì)可以通過(guò)某種壓縮分析電路在跟蹤模塊20內(nèi)部產(chǎn)生,或者備選 地可以從外部源提供,諸如從基于其中進(jìn)行的壓縮分析的跟蹤分析工 具40提供。 在本發(fā)明的一個(gè)實(shí)施例中,在跟蹤模塊20中提供兩種不同的跟蹤 操作模式,稱為非循環(huán)精確跟蹤操作模式和循環(huán)精確跟蹤操作模式。 在任一操作模式中,可以輸出包括指令跟蹤和/或數(shù)據(jù)跟蹤的跟蹤流且 壓縮電路與提供編碼格式的壓縮方案有關(guān),用于編碼需要在跟蹤流中 輸出的各種跟蹤元素。在特定的壓縮方案中,支持的各種編碼格式在 位組合格式編碼空間中不重疊,使得跟蹤分析工具可以從任意特定位 組合格式唯一地識(shí)別該位組合格式代表的跟蹤元素。直到現(xiàn)在,對(duì)于 所選的跟蹤操作模式,跟蹤模塊20的壓縮電路應(yīng)用的壓縮方案是預(yù)定 和固定的。雖然這種方法在很多情況下的運(yùn)行可以令人滿意,但是對(duì) 于在一些情況下足夠顯著變化的被監(jiān)控電路的活動(dòng),折中壓縮效率變 成越來(lái)越平常的事。因?yàn)楦檾?shù)據(jù)量在包括芯片上跟蹤機(jī)制的現(xiàn)代系 統(tǒng)中是顯著的問(wèn)題,在仍處于特定跟蹤操作模式時(shí),即在產(chǎn)生相同基 本類型的跟蹤元素時(shí),提供用于變更壓縮方案機(jī)制的本發(fā)明的實(shí)施例 可以給予壓縮效率的明顯改善,由此減小產(chǎn)生的跟蹤數(shù)據(jù)總量。下面 將更詳細(xì)描述本發(fā)明的特定實(shí)施例。圖4示出了根據(jù)本發(fā)明特定實(shí)施例的圖3的跟蹤發(fā)生器120,其中 跟蹤發(fā)生器中的壓縮電路由多個(gè)壓縮電路210、 220、 230組成。如圖4 所示,具有關(guān)于產(chǎn)生的跟蹤元素的被監(jiān)控電路所產(chǎn)生的任意數(shù)據(jù)元素 在跟蹤發(fā)生器120內(nèi)從同步電路100轉(zhuǎn)發(fā)到跟蹤元素發(fā)生電路200,該 跟蹤元素發(fā)生器然后以已知的方式產(chǎn)生跟蹤元素流。該跟蹤元素流然 后被提供到壓縮電路,在圖4所示的實(shí)施例中,該壓縮電路由n個(gè)壓 縮電路210、 220和230組成。這些壓縮電路被布置為采用不同的壓縮 方案且在任意特定時(shí)間點(diǎn)經(jīng)由多路復(fù)用器240選擇來(lái)自于這些壓縮電 路之一的輸出,以產(chǎn)生從跟蹤發(fā)生器120輸出到FIFO 130的包跟蹤流。 盡管在一個(gè)實(shí)施例中所有的壓縮電路將并行運(yùn)行,典型地是僅多個(gè)壓 縮電路中的一個(gè)壓縮電路將正常操作從而避免不必要功耗的情況。在跟蹤發(fā)生器120中還提供壓縮分析電路250,至少在測(cè)試操作周 期,該分析電路250可以接收來(lái)自各個(gè)壓縮電路的輸出且比較它們, 以判斷哪個(gè)壓縮電路產(chǎn)生最有效的壓縮。在這種測(cè)試操作周期中,壓 縮電路210、 220和230可以被布置為對(duì)跟蹤元素發(fā)生器200產(chǎn)生的相 同的原始跟蹤元素流進(jìn)行并行地操作,這些電路的輸出被路由回壓縮 分析電路250。在該周期中,壓縮電路之一可以被選擇為其輸出實(shí)際形 成跟蹤流的活動(dòng)壓縮電路,多路復(fù)用器240選擇該壓縮電路的輸出。 作為備選,在測(cè)試操作周期中,壓縮電路210、 220和230中的每一個(gè) 壓縮電路可以依次被選擇以壓縮預(yù)定時(shí)間,再次在壓縮分析電路250 中比較結(jié)果。當(dāng)壓縮電路中的每一個(gè)壓縮電路已經(jīng)用了一段時(shí)間時(shí), 壓縮分析電路250然后可以比較從各個(gè)壓縮電路獲得的結(jié)果且基于該 結(jié)果選擇用于跟蹤發(fā)生器120產(chǎn)生的未來(lái)包的更合適的壓縮電路。應(yīng)當(dāng)理解,基于各個(gè)壓縮電路產(chǎn)生的結(jié)果在壓縮分析電路中進(jìn)行 的實(shí)際比較可以具有各種形式。不過(guò),在一個(gè)實(shí)施例中,壓縮分析電 路為每個(gè)壓縮電路保留跟蹤數(shù)據(jù)計(jì)數(shù),該跟蹤數(shù)據(jù)計(jì)數(shù)識(shí)別各個(gè)壓縮電路輸出的壓縮跟蹤數(shù)據(jù)的字節(jié)數(shù),使得壓縮分析電路然后能夠選擇 在測(cè)試操作周期中產(chǎn)生最少輸出跟蹤數(shù)據(jù)字節(jié)數(shù)的壓縮電路。一旦壓縮分析電路已經(jīng)進(jìn)行分析,它就輸出信號(hào)以識(shí)別壓縮電路, 該壓縮電路被選擇以執(zhí)行跟蹤元素發(fā)生器200輸出的連續(xù)跟蹤元素的 壓縮。該輸出可以直接轉(zhuǎn)發(fā)到相關(guān)壓縮電路和/或多路復(fù)用器240,或 備選地,如圖4所示可以采用存儲(chǔ)在(多個(gè))控制寄存器140的編碼 選擇字段255 (此處也稱為壓縮指定字段)內(nèi)的選擇信號(hào)的形式。同時(shí) 這種編碼選擇字段255可以設(shè)置在控制寄存器140中,應(yīng)當(dāng)意識(shí)到不 需要該字段物理上是控制寄存器140之一,而是選擇信號(hào)可以存儲(chǔ)在 能夠存取跟蹤發(fā)生器120的任意合適存儲(chǔ)地點(diǎn)中。圖5示出了本發(fā)明的備選實(shí)施例,其中壓縮分析電路250可以接 收用于實(shí)現(xiàn)合適壓縮電路選擇的附加信息。實(shí)際上,在本實(shí)施例中, 壓縮分析電路250被稱為壓縮方案選擇電路250,因?yàn)榭蛇x地,它可以 被該附加信息直接驅(qū)動(dòng),而不使用任意特定壓縮電路輸出的結(jié)果。然 而,如虛線所述,壓縮電路的輸出返回壓縮方案選擇電路250,在一個(gè) 實(shí)施例中,當(dāng)判斷選擇合適的壓縮電路時(shí),壓縮方案選擇電路仍然參 考各個(gè)壓縮電路獲得的壓縮結(jié)果。然而,如圖5所示,壓縮方案選擇電路250還通過(guò)路徑265接收 附加信號(hào),且具體而言,接收被監(jiān)控電路產(chǎn)生(或者實(shí)際上,數(shù)據(jù)處 理系統(tǒng)內(nèi)的任意其他合適的電路)的壓縮提示信號(hào),該壓縮提示信號(hào) 用于在任意特定時(shí)間點(diǎn)在選擇合適壓縮電路中輔助壓縮方案選擇電 路。作為示例,壓縮提示可以被監(jiān)控電路插入到被監(jiān)控電路輸出的數(shù) 據(jù)元素中,以識(shí)別可能在合適的壓縮方案中做出改變的活動(dòng)中的變化。
這些壓縮提示可以被壓縮方案選擇電路250使用以觸發(fā)測(cè)試操作周期 的重新評(píng)估性能,壓縮方案選擇電路250然后以參考圖4早先描述的 方式使用各個(gè)壓縮電路輸出的結(jié)果,以判斷選擇了哪個(gè)壓縮電路。然 而,備選地,例如基于壓縮電路理解它正進(jìn)行什么活動(dòng)以及由此需要 被跟蹤的活動(dòng)的一般形式,壓縮提示可以有效地識(shí)別被認(rèn)為是適用于 未來(lái)跟蹤包的那個(gè)壓縮方案。除了特定壓縮提示,壓縮方案電路250還可以例如通過(guò)參考從被 監(jiān)控電路輸出的一些數(shù)據(jù)元素,尋求分析被監(jiān)控電路的活動(dòng)的特定屬 性。例如,壓縮方案選擇電路250可以監(jiān)控"線程"識(shí)別寄存器(也稱 為"語(yǔ)境"識(shí)別寄存器),以判斷任意特定時(shí)間點(diǎn)運(yùn)行的應(yīng)用,且基于該 信息執(zhí)行一些關(guān)于壓縮方案的改變是否合適的分析。作為示例,壓縮 方案選擇電路250可以設(shè)置有指示當(dāng)運(yùn)行特定應(yīng)用時(shí)可以應(yīng)用第一壓 縮方案、且當(dāng)運(yùn)行不同應(yīng)用時(shí)可以應(yīng)用第二壓縮方案的信息,壓縮方 案選擇電路250能夠從線程識(shí)別寄存器的分析中判斷運(yùn)行了哪個(gè)應(yīng)用 且相應(yīng)地將使用哪個(gè)壓縮方案。在一些實(shí)施例中,例如,當(dāng)監(jiān)控為嵌 入控制或運(yùn)行實(shí)時(shí)操作系統(tǒng)(RTOS)而設(shè)計(jì)的處理器時(shí),類似的分析 將通過(guò)分析哪個(gè)存儲(chǔ)器地址被存取而執(zhí)行,以判斷運(yùn)行了哪個(gè)應(yīng)用。當(dāng)使用圖4的實(shí)施例時(shí),壓縮方案選擇電路250的結(jié)果可以直接 輸出到相關(guān)壓縮電路和/或多路復(fù)用器240,或者被存儲(chǔ)在適當(dāng)?shù)目刂?寄存器140中設(shè)置的編碼選擇字段255中。圖6示出了跟蹤發(fā)生器的備選實(shí)施例,其中壓縮分析電路250被 省略,而是外部離線地進(jìn)行這種壓縮分析。作為示例,基于從跟蹤模 塊20的跟蹤發(fā)生器120隨時(shí)間接收的跟蹤流,這種壓縮分析可以在跟 蹤分析器工具中進(jìn)行。選擇信號(hào)然后可被產(chǎn)生且經(jīng)過(guò)路徑275路由到 編碼選擇字段255,以由此控制壓縮電路210、 220和230的未來(lái)選擇。雖然為了便于理解,圖4至6中示出的各種壓縮電路以物理分離 的電路示出,但是應(yīng)當(dāng)意識(shí)到在一些實(shí)施例中,這些電路可以彼此共 享邏輯的很大一部分。具體而言,盡管每個(gè)壓縮電路代表可以使用的 不同壓縮方案,但是任意特定壓縮方案內(nèi)提供的大量編碼格式可以與 其他壓縮方案共享。例如,在一個(gè)實(shí)施例中,第一壓縮方案可以提供 用于p報(bào)頭的一個(gè)或多個(gè)編碼格式,該編碼格式占用第二壓縮方案中 提供的用于p報(bào)頭的一些不同編碼格式的重疊位組合格式編碼空間。
然而,在兩個(gè)壓縮方案之間,用于編碼其他報(bào)頭或與報(bào)頭相關(guān)的有效 載荷部分的其他編碼方案可以不改變,且因此用于實(shí)施這兩種不同壓 縮方案的壓縮電路將實(shí)際彼此共享邏輯的很大一部分。圖7示出了跟蹤發(fā)生器120的備選實(shí)施例,其中不是提供預(yù)定數(shù) 目的壓縮電路和相應(yīng)地預(yù)定數(shù)目的可能壓縮方案,而是提供可重配置 壓縮電路300,在一個(gè)實(shí)施例中,該可重配置壓縮電路300可以具有現(xiàn) 場(chǎng)可編程門陣列(FPGA)設(shè)備的形式??芍嘏渲脡嚎s電路300可以通 過(guò)路徑330從定義存儲(chǔ)在諸如閃存310的存儲(chǔ)器設(shè)備中信息的壓縮方 案重新編程。該信息將典型地通過(guò)用于在時(shí)間周期上分析跟蹤發(fā)生器 120產(chǎn)生的跟蹤流的外部壓縮分析工具產(chǎn)生,且假設(shè)隨著時(shí)間的推移將 出現(xiàn)相似的跟蹤元素形式,基于該信息發(fā)展合適的壓縮方案,該壓縮 方案將實(shí)現(xiàn)用于在跟蹤模塊處于相同跟蹤操作模式中產(chǎn)生的跟蹤流的 未來(lái)包的壓縮效率的改善。因此,在這種實(shí)施例中,不是僅在預(yù)定數(shù) 目的預(yù)定壓縮方案之間進(jìn)行選擇,這種方法使得更優(yōu)化的壓縮方案被 發(fā)展且根據(jù)發(fā)展的壓縮方案重新編程可重配置壓縮電路。給定需要進(jìn)行這種分析和發(fā)展特定壓縮方案的時(shí)間,典型地期望 分析將在芯片外進(jìn)行,例如在跟蹤分析器中進(jìn)行。不過(guò),在一些實(shí)施 例中,這種分析可以仍在跟蹤發(fā)生器120內(nèi)、在芯片上進(jìn)行,可重配 置壓縮電路300然后基于定義內(nèi)部產(chǎn)生的信息的壓縮來(lái)重新編程。圖8示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例可以在跟蹤分析器40中設(shè)置 的邏輯。首先,跟蹤流被包解壓縮邏輯400接收,基于用于產(chǎn)生跟蹤 流包的壓縮方案的理解,該包解壓縮邏輯400然后解壓縮包成組成的 跟蹤元素。解釋邏輯410然后使用該跟蹤元素來(lái)構(gòu)建關(guān)于這些跟蹤元 素指示的被監(jiān)控電路中進(jìn)行的活動(dòng)的執(zhí)行信息。為了進(jìn)行這種分析, 解釋邏輯410典型地參考程序圖像420,該程序圖像420提供被監(jiān)控電 路執(zhí)行的程序代碼的復(fù)本。分析430然后進(jìn)行任意所需的其他分析, 例如,以幫助處理指令序列的調(diào)試,用于執(zhí)行仿形操作以判斷特定程 序代碼的性能等。組件400、 410、 420和430可以設(shè)置在標(biāo)準(zhǔn)跟蹤分析 器工具40中。根據(jù)本發(fā)明的一個(gè)實(shí)施例,跟蹤分析器工具40可以另外包括壓縮 分析邏輯440以進(jìn)行跟蹤模塊20內(nèi)的壓縮電路應(yīng)用的壓縮效率的分 析。為了進(jìn)行這種分析,壓縮分析邏輯440接收輸入到跟蹤分析器工
具40的跟蹤流以及包解壓縮邏輯400解壓縮的跟蹤元素流。在一個(gè)實(shí) 施例中,壓縮分析邏輯440然后可以使用編碼數(shù)據(jù)庫(kù)450中很多已知 的壓縮方案對(duì)于相同的跟蹤元素序列進(jìn)行各種不同壓縮,且基于此判 斷這些壓縮方案中的任意一個(gè)是否將給于比從跟蹤模塊20接收的跟蹤 流中實(shí)現(xiàn)的壓縮更高效的壓縮。如果如此,這些壓縮方案中的一個(gè)壓 縮方案被選擇,且編碼選擇信號(hào)通過(guò)路徑445輸出以控制跟蹤模塊20 的跟蹤發(fā)生器120內(nèi)的未來(lái)壓縮。例如,該信息可以被路由到控制寄 存器140的編碼選擇字段255以控制哪個(gè)壓縮電路被選擇用于跟蹤元 素的未來(lái)壓縮。在備選實(shí)施例中,如果跟蹤發(fā)生器120包括可重配置壓縮電路 300,壓縮分析邏輯440可以尋求得出特定的壓縮方案,該壓縮方案目 標(biāo)在于基于包解壓縮邏輯400解壓縮的跟蹤元素的一些子集的分析, 提供更優(yōu)化的壓縮,判斷的壓縮方案的定義然后通過(guò)路徑445輸出且 用于重新編程跟蹤發(fā)生器120的可重配置壓縮電路。然而,進(jìn)行壓縮分析,壓縮分析邏輯440還可存取程序圖像420, 使得當(dāng)被監(jiān)控電路執(zhí)行程序圖像中設(shè)置的代碼時(shí),壓縮分析邏輯440 可以判斷分析的跟蹤元素部分是否將代表期望的一般活動(dòng)。這可以用 作這種情況的核查點(diǎn),其中通過(guò)確保參考程序圖像做出核查以尋求判 斷這種變化是否傾向于給出壓縮效率中的長(zhǎng)期節(jié)省,壓縮分析邏輯440 判斷另一壓縮方案可能更加適合。如上所述,跟蹤模塊20中的跟蹤發(fā)生器120產(chǎn)生包括多個(gè)包的跟 蹤流。圖9示出了這種跟蹤流的部分的示例,且用于解釋該包可以具 有不同的尺寸且包含不同的元素。在一個(gè)實(shí)施例中,每個(gè)包包含報(bào)頭 500、 510、 515,在一個(gè)特定實(shí)施例中,這些報(bào)頭由一個(gè)字節(jié)的信息組 成。包可以單獨(dú)地由報(bào)頭組成,諸如前面提到的p報(bào)頭示例,其中報(bào) 頭編碼產(chǎn)生的原子序列以表達(dá)被監(jiān)控電路的執(zhí)行活動(dòng),或者備選地可 以被可選的有效載荷部分505、 520跟隨。有效載荷部分的大小可以改 變。在一個(gè)實(shí)施例中,如相關(guān)報(bào)頭部分的內(nèi)容判斷的,有效栽荷的大 小可以依賴于跟蹤的信息的類型。備選地,用于特定跟蹤信息條的有 效載荷大小可以改變,在跟蹤流中提供一些同步信息以識(shí)別任意特定 有效栽荷部分的長(zhǎng)度或結(jié)尾。任意特定壓縮方案中設(shè)置的處理報(bào)頭和各種可選有效載荷的壓縮
格式可以具有各種形式,但是特定壓縮方案中提供的各種編碼格式將 不重疊,使得任意特定數(shù)據(jù)塊可以通過(guò)跟蹤分析器唯一地解碼以識(shí)別 其中代表的跟蹤元件。因此,舉例而言,盡管存在用于由一個(gè)字節(jié)數(shù)據(jù)組成的報(bào)頭的256種可能編碼,但是僅這些編碼的一部分將可用于 編碼p報(bào)頭,該編碼空間的其他部分用于編碼其他類型的報(bào)頭。為了 增加任意特定壓縮方案內(nèi)可用的編碼格式的數(shù)量,必須增加可用位組 合格式的總尺寸,但這將增加總跟蹤帶寬.根據(jù)本發(fā)明的實(shí)施例,如稍早討論的,提供一種機(jī)制,該機(jī)制能 夠使得用于特定跟蹤操作模式的壓縮方案變化,使得多個(gè)壓縮方案可 以用于特定跟蹤操作模式,每個(gè)這種壓縮方案的位組合格式編碼空間 重疊這些壓縮方案中另一個(gè)壓縮方案的位組合格式編碼空間。在任意 特定時(shí)間點(diǎn),僅這些編碼方案之一被使用且被識(shí)別為當(dāng)前編碼方案, 但是響應(yīng)于壓縮變化激勵(lì),壓縮方案可以切換到不同壓縮方案,此后 出現(xiàn)在跟蹤流中的特定位組合格式可以具有與不同壓縮方案相關(guān)的跟 蹤流中較早出現(xiàn)的相應(yīng)位組合格式不同的意義。圖IO是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的圖4中壓縮電路210、 220、 230和壓縮分析電路250中可以執(zhí)行的步驟的流程圖。在步驟600,進(jìn) 入壓縮分析電路的測(cè)試模式,此時(shí)為每個(gè)壓縮電路保存的跟蹤數(shù)據(jù)計(jì) 數(shù)復(fù)位。在步驟605,處理等待從跟蹤元素發(fā)生器200接收跟蹤元素序 列,此后在步驟610、 620和630,每一個(gè)壓縮電路210、 220、 230使 用相關(guān)的壓縮方案壓縮該跟蹤元素序列。每個(gè)壓縮電路產(chǎn)生的結(jié)果然 后轉(zhuǎn)發(fā)到壓縮分析電路250,在步驟612、 622、 632,該壓縮分析電路 250使得為每個(gè)壓縮電路維持的相關(guān)跟蹤數(shù)據(jù)計(jì)數(shù)增加這些壓縮電路 產(chǎn)生的跟蹤數(shù)據(jù)量。在圖10的示例中,假設(shè)每個(gè)壓縮電路能夠在測(cè)試操作模式中并行地操作,但是稍早提及的,在備選實(shí)施例中,每個(gè)壓 縮電路可以依次使用特定時(shí)間周期,在該特定時(shí)間周期產(chǎn)生跟蹤元素。 應(yīng)當(dāng)意識(shí)到在后面一個(gè)實(shí)施例中,壓縮分析電路將仍為各種壓縮電路 維持單獨(dú)的跟蹤數(shù)據(jù)計(jì)數(shù)。在步驟640,判斷測(cè)試周期是否結(jié)束,且如果為否,處理返回步 驟605。然而, 一旦測(cè)試周期結(jié)束,參考基于從各個(gè)壓縮電路的輸出維 持的跟蹤數(shù)據(jù)計(jì)數(shù)信息,壓縮分析電路250在步驟645選擇最合適的 壓縮方案。
此后,在步驟650,判斷當(dāng)前選擇的壓縮方案,即,實(shí)際產(chǎn)生跟 蹤流中輸出的包的那個(gè)壓縮方案是否是在步驟645被選擇為最合適方 案的那個(gè)方案。如果如此,不需要其他行為且測(cè)試模式在步驟660退 出。然而,如果當(dāng)前方案不是最佳方案,則在步驟655,發(fā)射壓縮變化 激勵(lì),在圖4的示例中,它具有存儲(chǔ)在控制寄存器140的編碼選擇字 段255中的選擇信號(hào)的形式,以控制哪個(gè)壓縮電路用于產(chǎn)生被包括在 跟蹤流中的后續(xù)包。圖ll是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖8中示出的跟蹤分析器 40的包解壓縮邏輯400和壓縮分析邏輯440可以執(zhí)行的步驟序列的流 程圖。在步驟700,跟蹤流部分被選擇以進(jìn)行分析,此后在步驟705, 包解壓縮邏輯400用于將跟蹤流解壓縮成相關(guān)跟蹤元素。此后,在步 驟710,使用編碼數(shù)據(jù)庫(kù)450中識(shí)別的所有其他可用壓縮方案重新壓縮 這些跟蹤元素。此后在步驟715,基于為提供的跟蹤元素產(chǎn)生最少量跟 蹤數(shù)據(jù)的方案,選擇最有效的方案。此后,在步驟720,壓縮變化激勵(lì) 通過(guò)路徑445發(fā)射,且在本實(shí)施例中,可以具有路由到控制寄存器140 的編碼選擇字段255的選擇信號(hào)的形式,如稍早圖6中示出。圖12示出了根據(jù)本發(fā)明的備選實(shí)施例的包解壓縮邏輯400和壓縮 分析邏輯440可以執(zhí)行的備選步驟序列。在步驟750,跟蹤流的部分被 選擇以分析,此后在步驟755,使用包解壓縮邏輯400解壓縮該部分以 識(shí)別相關(guān)跟蹤元素。此后,在步驟760,分析跟蹤元素以識(shí)別可壓縮特 征。例如,這可以涉及識(shí)別游程長(zhǎng)度編碼或用于識(shí)別合適壓縮特性的 其他已知技術(shù)壓縮的相同形式的跟蹤元素序列。此后,在步驟765,基于步驟760識(shí)別的壓縮特征設(shè)計(jì)新的壓縮方 案,此后在步驟770,發(fā)射壓縮變化激勵(lì)。在這種情況下,壓縮變化激 勵(lì)將需要定義新的壓縮方案。這種實(shí)施例可以用在跟蹤模塊20中的壓縮電路能夠重配置的情 況。例如,如果壓縮電路包括FPGA設(shè)備,可以基于壓縮變化激勵(lì)重 新編程FPGA。因此,在步驟775,基于壓縮變化激勵(lì)重新配置跟蹤發(fā) 生電路,使得然后根據(jù)新識(shí)別的壓縮方案進(jìn)行壓縮。圖13是示意性示出當(dāng)提供本發(fā)明的實(shí)施例的機(jī)制以在仍處于相 同跟蹤操作模式中實(shí)現(xiàn)壓縮方案的變化時(shí)可以獲得的壓縮效率的改 善。圖13基于下面的考慮。 考慮兩字節(jié)編碼協(xié)議,如下 協(xié)議1:格式l: 10EEEEEO (依次編碼0-31個(gè)E原子) 格式2: 11NNNNNO (依次編碼0-31個(gè)N原子)協(xié)議2:格式l: 11FFFFF0 (編碼5個(gè)原子,每個(gè)原子是E或N原子) 格式2: 101FFFF0 (編碼4個(gè)原子,每個(gè)原子是E或N原子) 格式3: 1001FFF0 (編碼3個(gè)原子,每個(gè)原子是E或N原子) 格式4: 10001FFO (編碼2個(gè)原子,每個(gè)原子是E或N原子) 格式5: 100001FO (編碼1個(gè)原子,每個(gè)原子是E或N原子) 如果需要編碼原子流ENENEN,則使用協(xié)議1需要6個(gè)跟蹤字節(jié), 如果壓縮方案切換到協(xié)議2則僅需要2個(gè)跟蹤字節(jié)和變化消息 OPPPPPPP,其中P編碼所選協(xié)議號(hào)。具體而言,如圖13所示,使用協(xié)議l,每個(gè)E或N原子需要被單 獨(dú)的字節(jié)編碼,因?yàn)閰f(xié)議1具有兩個(gè)不同的編碼格式,這兩個(gè)編碼格 式被設(shè)計(jì)以優(yōu)化長(zhǎng)序列的E或N原子的壓縮,因?yàn)槭褂酶袷?中的"E" 指示的位位置可以用于指定在序列中一個(gè)接一個(gè)出現(xiàn)的E原子的數(shù) 目,且類似地,使用格式2,使用N指示的位位置可用于識(shí)別特定序 列中出現(xiàn)的N原子的數(shù)目。因此,協(xié)議1將不適合壓縮被單獨(dú)的N原 子跟隨的單獨(dú)的E原子。與此相反,協(xié)議2能夠編碼任意類型的1個(gè)、 2個(gè)、3個(gè)、4個(gè)或5個(gè)原子的編碼序列,因?yàn)镕識(shí)別的每個(gè)位位置可 用于識(shí)別E原子(通過(guò)設(shè)置位位置為1)或N原子(通過(guò)設(shè)置位位置 為0)。因此,協(xié)議1的格式1可用于經(jīng)由單字節(jié)編碼0至31個(gè)E原子序 列,且類似地,協(xié)i5Cl的格式2可用于經(jīng)由單字節(jié)編碼0至31個(gè)N原 子序列。盡管當(dāng)編碼大序列的E或N原子時(shí),這可以給出明顯的壓縮 效率,然而很清楚,對(duì)于上面討論的每個(gè)E原子被N原子跟隨的特定 原子序列,它卻并不十分有效,而是,假設(shè)期望類似的序列發(fā)生足夠 的時(shí)間周期以做出值得的切換,經(jīng)由圖13中所示的協(xié)議交換字節(jié)0X02 的選擇壓縮方案2更好。圖14是示出在跟蹤流的不同部分中相同位組合格式怎樣依賴于 壓縮方案可以表示其他意義的圖示。圖14基于下面的考慮。 考慮兩種字節(jié)編碼協(xié)議,如下 協(xié)議1:格式l: 1EEEEEE0 (依次編碼0-63個(gè)E原子) 格式2: 1NNNNNN1 (依次編碼0誦63個(gè)N原子)協(xié)議2:格式l: 1EEEENN0 (編碼(M5個(gè)E原子,接著是0至3個(gè)N原子)格式2: 1NNNNEE1 (編碼0-15個(gè)N原子,接著是0至3個(gè)E原子)且變化消息為OPPPPPPP,其中P編碼所選協(xié)i義號(hào)。因此,在經(jīng)由跟蹤流中出現(xiàn)的變化消息OxOl的協(xié)議l的選擇之后, 下面圖14中示出的兩字節(jié)信息用于編碼兩個(gè)E原子,接著是8個(gè)N原 子。如果由于某種原因,判斷此時(shí)壓縮方案的變化是合適的,且具體 而言如變化消息0x02所識(shí)別的,選擇壓縮協(xié)議2,則可以看出,后面 兩個(gè)字節(jié)可以實(shí)際具有和采用協(xié)議1時(shí)使用的兩個(gè)字節(jié)完全相同的兩 個(gè)位組合格式,但是現(xiàn)在編碼兩個(gè)N原子,且接著另外兩個(gè)N原子, 第一字節(jié)使用格式1且第二字節(jié)使用協(xié)議2的格式2。從上述本發(fā)明實(shí)施例的討論應(yīng)當(dāng)理解,這種實(shí)施例使得壓縮方案 中的變化能夠仍在特定跟蹤操作模式中發(fā)生。存在很多帶來(lái)這種變化 的方式。在一個(gè)實(shí)施例中,跟蹤電路可以動(dòng)態(tài)地調(diào)適壓縮方案為所選 集之一。為此,可以同時(shí)比較多個(gè)技術(shù),選擇被認(rèn)知為提供最佳壓縮 的一個(gè)壓縮方案,或者備選地,通過(guò)小的測(cè)試片段可以嘗試多個(gè)不同 的技術(shù)且然后決定被認(rèn)知為提供最佳壓縮的一個(gè)壓縮方案。如上面討 論的,在備選實(shí)施例中,跟蹤分析工具可用于分析跟蹤輸出且判斷最 佳壓縮技術(shù),且然后產(chǎn)生用于切換跟蹤電路應(yīng)用的壓縮方案的選擇信 號(hào)。備選地,跟蹤分析工具可以分析跟蹤輸出且判斷更優(yōu)選的壓縮方 案,且然后重新編程跟蹤電流中的可配置壓縮電路,從而采用該壓縮 方案以用于跟蹤電路產(chǎn)生的未來(lái)包。在一個(gè)實(shí)施例中,跟蹤電路可以被布置以指示哪個(gè)壓縮方案被跟 蹤流中包括的變化壓縮字節(jié)使用,使得負(fù)責(zé)解壓縮跟蹤流的邏輯可以 動(dòng)態(tài)地調(diào)適到新的壓縮方案。這種方法在壓縮方案發(fā)生變化時(shí)執(zhí)行解 壓縮的跟蹤分析工具不被直接控制的情況是尤其有利的。因?yàn)楦鶕?jù)本發(fā)明的實(shí)施例,多種意義可以在相同的位組合格式上 重疊,位組合格式的總尺寸可以明顯小于一個(gè)壓縮協(xié)議中支持所有這 些意義的情況,因此,這比通過(guò)使用不同壓縮方案直接實(shí)現(xiàn)的減小更 顯著減小總跟蹤帶寬。通過(guò)實(shí)現(xiàn)較低的跟蹤信息帶寬,可以實(shí)現(xiàn)較少 芯片上存儲(chǔ)、較少芯片外存儲(chǔ)以及較少的用于發(fā)射芯片外跟蹤的引腳 的需求。雖然在本發(fā)明的實(shí)施例的上述描述中,示例集中于p報(bào)頭的壓縮, 但是本發(fā)明的實(shí)施例的概念也可以應(yīng)用于跟蹤壓縮的任意其他領(lǐng)域, 諸如數(shù)據(jù)值和地址以及其他包格式的壓縮。除了進(jìn)行不同壓縮方案的分析,根據(jù)本發(fā)明的實(shí)施例,其他機(jī)制 可用于操縱壓縮方案的選擇。例如,如稍早提及的,基于下面已知的 代碼,可以使用程序代碼以提示跟蹤電路將使用什么壓縮方案。這種 提示例如將通過(guò)編譯器插入到代碼中。而且,在一些實(shí)施例中,上述壓縮方案切換機(jī)制將用于粗略地關(guān) 閉一些壓縮技術(shù)。對(duì)于一些壓縮技術(shù),解壓縮算法的時(shí)間和空間復(fù)雜 度可能使其不能集成基于硬件的解壓縮或者集成能夠執(zhí)行足夠操作次 數(shù)以執(zhí)行軟件中算法的處理器以滿足系統(tǒng)的性能需求。壓縮方案切換 機(jī)制將用于粗略地使得一些壓縮技術(shù)失效,以減小時(shí)間復(fù)雜度或空間 復(fù)雜度或解壓縮算法。因此,例如,如果存在一些芯片上提供的自診 斷軟件,該軟件具有用于解碼芯片上捕獲的蹤跡的跟蹤模塊,但是芯 片上處理器不夠強(qiáng)大到足以在充足的時(shí)間內(nèi)完成解碼,則壓縮將失效, 以有利于進(jìn)行必要解碼的芯片上軟件。這種機(jī)制同樣應(yīng)用于可用于解 碼蹤跡的芯片上硬件,例如用于校驗(yàn)和目的或用于實(shí)時(shí)跟蹤分析。盡管此處已經(jīng)描述了特定實(shí)施例,但應(yīng)當(dāng)理解本發(fā)明不限于此且 可以在本發(fā)明的范圍內(nèi)做出很多修改和添加。例如,使用獨(dú)立權(quán)利要 求的特征將得出下面相關(guān)權(quán)利要求的特征的各種組合,而不偏離本發(fā) 明的范圍。
權(quán)利要求
1. 跟蹤電路,用于產(chǎn)生指示數(shù)據(jù)處理裝置被監(jiān)控電路的活動(dòng)的跟蹤流,該被監(jiān)控電路產(chǎn)生指示所述活動(dòng)的數(shù)據(jù)元素,且該跟蹤電路包括跟蹤元素發(fā)生電路,響應(yīng)于至少一些由被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素,產(chǎn)生代表那些至少一些數(shù)據(jù)元素的跟蹤元素,產(chǎn)生的跟蹤元素與選擇的跟蹤電路的跟蹤操作模式有關(guān);以及壓縮電路,用于向跟蹤元素序列應(yīng)用編碼操作以產(chǎn)生其位組合格式代表跟蹤元素序列的包,使得該包在跟蹤流中輸出,應(yīng)用的編碼操作依賴于與所述壓縮電路相關(guān)的當(dāng)前壓縮方案;同時(shí)在選擇的跟蹤操作模式中,該壓縮電路響應(yīng)于壓縮變化激勵(lì)以將當(dāng)前的壓縮方案從第一壓縮方案變化為第二壓縮方案,該第二壓縮方案的位組合格式編碼空間覆蓋該第一壓縮方案的位組合格式編碼空間,使得在壓縮方案改變之后,在所選跟蹤操作模式中根據(jù)第二壓縮方案產(chǎn)生任意其他包。
2. 根據(jù)權(quán)利要求1所述的跟蹤電路,還包括 壓縮方案選擇電路,用于應(yīng)用預(yù)先確定的標(biāo)準(zhǔn)以判斷何時(shí)改變當(dāng)前壓縮方案,且基于所述判斷使得所述壓縮變化激勵(lì)被產(chǎn)生。
3. 根據(jù)權(quán)利要求2所述的跟蹤電路,其中所述壓縮電路包括多個(gè)壓縮元件,每個(gè)壓縮元件實(shí)施不同的壓縮 方案且能夠進(jìn)行所述編碼操作;所述壓縮方案選擇電路被布置為產(chǎn)生選擇信號(hào)以選擇所述壓縮元 素之一作為其壓縮方案是當(dāng)前壓縮方案的壓縮元件,使得該選擇的壓 縮元件產(chǎn)生用于被跟蹤流包括的包;并且該壓縮方案選擇電路被布置為通過(guò)變更選擇信號(hào)產(chǎn)生所述壓縮變 化激勵(lì)。
4. 根據(jù)權(quán)利要求3所述的跟蹤電路,其中至少在測(cè)試操作周期中, 所述壓縮元件的每一個(gè)被布置為進(jìn)行編碼操作,產(chǎn)生的包被壓縮方案 選擇電路接收,壓縮方案選擇電路對(duì)產(chǎn)生的包進(jìn)行分析操作以判斷經(jīng) 由選擇信號(hào)選擇所述壓縮元件中的哪一個(gè)壓縮元件。
5. 根據(jù)權(quán)利要求1所述的跟蹤電路,其中壓縮電路是可重配置電 路,且當(dāng)被發(fā)送時(shí),壓縮變化激勵(lì)包括用于重新配置該可重配置電路 的信息,從而實(shí)施第二壓縮方案。
6. 根據(jù)權(quán)利要求5所述的跟蹤電路,其中壓縮電路包括雙重可重 配置電路,使得被配置成實(shí)施所述第一壓縮方案的可重配置電路中之 一被布置為在接收壓縮變化激勵(lì)之后繼續(xù)操作,同時(shí)另一可重配置電 路根據(jù)所述壓縮變化激勵(lì)重新配置,在這種重新配置之后,另一可重 配置電路用于根據(jù)第二壓縮方案產(chǎn)生后續(xù)包。
7. 根據(jù)權(quán)利要求5所述的跟蹤電路,其中可重配置電路是可編程 邏輯設(shè)備,且壓縮變化激勵(lì)存儲(chǔ)在用于重編程可編程邏輯設(shè)備的存儲(chǔ) 設(shè)備中。
8. 根據(jù)權(quán)利要求2所述的跟蹤電路,其中被監(jiān)控電路輸出提示信 號(hào),且這些提示信號(hào)被路由到壓縮方案選擇電路,以用于當(dāng)判斷是否 改變當(dāng)前壓縮方案時(shí)參考。
9. 根據(jù)權(quán)利要求2所述的跟蹤電路,其中當(dāng)判斷是否改變當(dāng)前壓 縮方案時(shí),壓縮方案選擇電路響應(yīng)于被監(jiān)控電路活動(dòng)的一個(gè)或多個(gè)屬 性。
10. 根據(jù)權(quán)利要求9所述的跟蹤電路,其中所述一個(gè)或多個(gè)屬性之 一是指示被監(jiān)控電路內(nèi)執(zhí)行的當(dāng)前線程的線程識(shí)別寄存器中保存的 值。
11. 根據(jù)權(quán)利要求9所述的跟蹤電路,其中所述一個(gè)或多個(gè)屬性之 一是由被監(jiān)控電路存取的存儲(chǔ)器地址區(qū)域。
12. 根據(jù)權(quán)利要求1所述的跟蹤電路,還包括控制寄存器,該控制寄存器具有用于存儲(chǔ)壓縮變化激勵(lì)的壓縮指 定字段,壓縮電路參考控制寄存器的壓縮指定字段,以判斷何時(shí)改變 當(dāng)前壓縮方案。
13. 根據(jù)權(quán)利要求1所述的跟蹤電路,其中當(dāng)當(dāng)前壓縮方案變化時(shí), 壓縮電路被布置為在跟蹤流中輸出變化信號(hào),以指示已經(jīng)做出了變化, 使得用于分析跟蹤流的跟蹤分析裝置可以判斷壓縮方案何時(shí)變化,從 而正確地解釋跟蹤流中的包。
14. 一種數(shù)據(jù)處理裝置,包括被監(jiān)控電路,用于產(chǎn)生指示被監(jiān)控電路活動(dòng)的數(shù)據(jù)元素;以及 根據(jù)權(quán)利要求1所述的跟蹤電路,用于產(chǎn)生指示所述被監(jiān)控電路 活動(dòng)的跟蹤流。
15. —種跟蹤分析裝置,用于分析根據(jù)權(quán)利要求1所述的跟蹤電 路產(chǎn)生的跟蹤流,該跟蹤分析裝置包括包解壓縮邏輯,用于解碼跟蹤流中的包,以判斷每個(gè)所述包代表 的跟蹤元素序列;以及壓縮方案選擇邏輯,用于接收跟蹤流和包解壓縮邏輯判斷的跟蹤 元素,且應(yīng)用預(yù)定的標(biāo)準(zhǔn)來(lái)判斷何時(shí)改變當(dāng)前壓縮方案,且基于所述 判斷產(chǎn)生所述壓縮變化激勵(lì)。
16. 根據(jù)權(quán)利要求15所述的跟蹤分析裝置,其中 跟蹤邏輯的所述壓縮電路支持預(yù)定數(shù)目的壓縮方案; 所述壓縮方案選擇邏輯被布置為產(chǎn)生選擇信號(hào)來(lái)識(shí)別哪個(gè)壓縮方案是當(dāng)前的壓縮方案;并且所述壓縮方案選擇邏輯被布置為通過(guò)變更選擇信號(hào)產(chǎn)生所述壓縮 變化激勵(lì)。
17. 根據(jù)權(quán)利要求15所述的跟蹤分析裝置,其中壓縮變化激勵(lì)包 括定義將用作當(dāng)前壓縮方案的第二壓縮方案的信息。
18. 根據(jù)權(quán)利要求15所述的跟蹤分析裝置,其中當(dāng)應(yīng)用所述預(yù)定 標(biāo)準(zhǔn)以判斷是否改變當(dāng)前壓縮方案時(shí),壓縮方案選擇邏輯參考程序圖 像。
19. 一種改變用于產(chǎn)生指示數(shù)據(jù)處理裝置被監(jiān)控電路活動(dòng)的跟蹤 流的由跟蹤電路應(yīng)用的壓縮方案的方法,被監(jiān)控電路產(chǎn)生指示所述活 動(dòng)的數(shù)據(jù)元素,且該方法包括以下步驟響應(yīng)于至少一些由被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素,產(chǎn)生代表那些至 少一些數(shù)據(jù)元素的跟蹤元素,產(chǎn)生的跟蹤元素與選擇的跟蹤電路的跟 蹤操作模式有關(guān);以及對(duì)跟蹤元素序列應(yīng)用編碼操作以產(chǎn)生其位組合格式代表跟蹤元素 序列的包,且在跟蹤流中輸出該包,應(yīng)用的編碼操作與當(dāng)前壓縮方案有關(guān);同時(shí)在所選的跟蹤操作模式中,響應(yīng)于壓縮變化激勵(lì),將當(dāng)前壓 縮方案從第一壓縮方案變化為第二壓縮方案,第二壓縮方案的位組合 格式編碼空間重疊第一壓縮方案的位組合格式編碼空間,使得在壓縮 方案改變之后,在所選跟蹤操作模式中根據(jù)笫二壓縮方案產(chǎn)生任意其 他包。
20. —種包括計(jì)算機(jī)程序的計(jì)算機(jī)程序產(chǎn)品,通過(guò)執(zhí)行以下步驟, 該計(jì)算機(jī)程序使得計(jì)算機(jī)分析根據(jù)權(quán)利要求19所述的方法產(chǎn)生的跟蹤 元素流解碼跟蹤流中的包,以判斷每個(gè)所述包代表的跟蹤元素序列;以及參考跟蹤流和從跟蹤流的包解碼的跟蹤元素,應(yīng)用預(yù)定標(biāo)準(zhǔn)來(lái)判 斷何時(shí)改變當(dāng)前壓縮方案,且基于所述判斷產(chǎn)生壓縮變化激勵(lì)。
全文摘要
產(chǎn)生用于數(shù)據(jù)處理裝置的跟蹤流的技術(shù)。提供跟蹤電路和操作這種跟蹤電路的方法,用于產(chǎn)生指示數(shù)據(jù)處理裝置被監(jiān)控電路的活動(dòng)的跟蹤流。該被監(jiān)控電路產(chǎn)生指示這些活動(dòng)的數(shù)據(jù)元素,且該跟蹤電路包括跟蹤元素發(fā)生電路,響應(yīng)于至少一些被監(jiān)控電路產(chǎn)生的數(shù)據(jù)元素,產(chǎn)生代表這些數(shù)據(jù)元素的跟蹤元素,產(chǎn)生的跟蹤元素與選擇的跟蹤電路的跟蹤操作模式有關(guān)。壓縮電路然后被布置為向跟蹤元素序列應(yīng)用編碼操作以產(chǎn)生位組合格式代表跟蹤元素序列的包,且使得該包在跟蹤流中輸出,應(yīng)用的編碼操作依賴于與壓縮電路相關(guān)的當(dāng)前壓縮方案。同時(shí)在選擇的跟蹤操作模式中,該壓縮電路響應(yīng)于壓縮變化激勵(lì)以將當(dāng)前的壓縮方案從第一壓縮方案變化為第二壓縮方案,該第二壓縮方案的位組合格式編碼空間覆蓋該第一壓縮方案的位組合格式編碼空間,使得在壓縮方案改變之后,在所選跟蹤操作模式中根據(jù)該第二壓縮方案產(chǎn)生任意其他包。已經(jīng)發(fā)現(xiàn)這種方法提供改善的壓縮效率由此減小產(chǎn)生的跟蹤數(shù)據(jù)量。
文檔編號(hào)G06F11/36GK101398782SQ20081016812
公開日2009年4月1日 申請(qǐng)日期2008年9月28日 優(yōu)先權(quán)日2007年9月28日
發(fā)明者J·M·霍爾利, P·R·戈奇 申請(qǐng)人:Arm有限公司