亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于具有不同處理器頻率的自適應(yīng)跟蹤的方法及設(shè)備的制作方法

文檔序號:6560356閱讀:204來源:國知局
專利名稱:用于具有不同處理器頻率的自適應(yīng)跟蹤的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及改進的數(shù)據(jù)處理系統(tǒng),并且尤其涉及處理數(shù)據(jù)的方法及設(shè)備。更具體地,本發(fā)明涉及用于產(chǎn)生及定序跟蹤記錄(tracerecord)的計算機實現(xiàn)的方法、設(shè)備以及計算機可用的程序代碼。
背景技術(shù)
為了降低發(fā)熱及功耗,數(shù)據(jù)處理系統(tǒng)可改變一個或多個處理器的頻率。可選地,相同數(shù)據(jù)處理系統(tǒng)中的不同處理器可有不同的固定頻率。動態(tài)頻率改變可由各種原因引起。例如,過熱或過高功耗的檢測可引起一個或多個處理器中的頻率降低。此外,期望在例如膝上計算機的便攜式數(shù)據(jù)處理系統(tǒng)中減少功耗是基于使用來改變頻率的另一個原因。其他情況也可引起處理器頻率的變化。例如,處理器頻率的改變可基于有關(guān)應(yīng)用程序的信息。例如,人們知道具有大量高速緩存命中失誤的應(yīng)用程序可引起處理器頻率的降低以減小功率,因為這樣可使那些高速緩存命中失誤造成的等待對總體性能的影響最小。
數(shù)據(jù)處理系統(tǒng)的操作期間處理器中的頻率變化增加了跟蹤事件時的難度。通常,分立的處理器緩沖器被用來記錄跟蹤事件(traceevent)。跟蹤記錄包含關(guān)于跟蹤期間發(fā)生的事件的信息或數(shù)據(jù)。存儲在緩沖器中的跟蹤記錄被稱為蹤跡(trace)。數(shù)據(jù)處理系統(tǒng)的性能通過利用軟件性能工具、跟蹤設(shè)備或跟蹤系統(tǒng)來識別。一個已知的軟件性能工具是跟蹤工具。跟蹤工具可被用于多于一種的技術(shù),以提供表明執(zhí)行程序的執(zhí)行流的跟蹤信息。蹤跡可包含關(guān)于代碼的執(zhí)行的數(shù)據(jù)。例如,蹤跡可包含有關(guān)代碼的執(zhí)行期間所產(chǎn)生的事件的跟蹤記錄。蹤跡可包括例如進程標(biāo)識符、線程標(biāo)識符以及程序計數(shù)器的信息。蹤跡中的信息可基于要執(zhí)行的具體剖析(profile)或分析而發(fā)生變化。記錄是有關(guān)事件的信息的單元。對于一些應(yīng)用程序,跟蹤記錄的正確定序?qū)α私獗环治龅捻椖縼碚f是重要的。該定序?qū)斫鉁?zhǔn)確的事件流尤其重要,例如,對問題確定可能是必要的。完成定序的一種方法是利用時間戳。
當(dāng)處理器的頻率變化時,使得利用時間戳的跟蹤記錄的定序變得困難。通常,這些時間戳以及記錄的定序以基于處理器的頻率產(chǎn)生的周期信息為基礎(chǔ)。
因此,如果一個處理器的頻率變化,與針對其他處理器產(chǎn)生的跟蹤記錄相比,通常分配給跟蹤記錄的時間戳相對于當(dāng)該處理器的頻率仍為以前的不同頻率時所產(chǎn)生的其他跟蹤記錄變得不準(zhǔn)確。該不準(zhǔn)確性對于蹤跡或具體處理器內(nèi)的跟蹤記錄的順序不會產(chǎn)生問題。問題發(fā)生在從來自不同的處理器的不同的蹤跡合并跟蹤記錄的時候。隨著頻率的變化,當(dāng)為了分析而合并這些記錄時,可發(fā)生來自不同蹤跡的跟蹤記錄的不正確定序。進一步地,如果不同處理器具有不同頻率,用于識別期間出現(xiàn)不同狀態(tài)的時間的周期使用也可產(chǎn)生誤導(dǎo)。

發(fā)明內(nèi)容
本發(fā)明的各方面提供了用于管理跟蹤記錄的計算機實現(xiàn)的方法、設(shè)備以及計算機可用的程序代碼。針對一組處理器產(chǎn)生一組蹤跡。針對該處理器組內(nèi)的每個處理器產(chǎn)生該蹤跡組中的蹤跡。響應(yīng)于處理器組內(nèi)的處理器中的頻率變化,頻率變化的記錄被存儲在蹤跡組中。通過利用頻率變化的記錄確定記錄的實時順序,合并跟蹤記錄。


本發(fā)明的被認為是新穎的特性在所附權(quán)利要求中闡明。然而,本發(fā)明本身以及使用的優(yōu)選方式,其進一步的目的和優(yōu)點,通過參考以下結(jié)合附圖對說明性實施例的詳細說明,將能夠很好地理解,其中圖1是其中可實現(xiàn)本發(fā)明的各方面的數(shù)據(jù)處理系統(tǒng)的圖示;圖2是其中可實現(xiàn)本發(fā)明的各方面的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3的圖例根據(jù)本發(fā)明的說明性實施例圖解了用于產(chǎn)生及合并蹤跡的部件;
圖4是根據(jù)本發(fā)明的說明性實施例的示例性蹤跡;圖5的圖例根據(jù)本發(fā)明的說明性實施例圖解了頻率變化記錄;圖6的圖例根據(jù)本發(fā)明的說明性實施例示出了用于同時讀取處理器上的經(jīng)過時間的偽碼;以及圖7是根據(jù)本發(fā)明的說明性實施例用于合并來自蹤跡的記錄的過程的流程圖。
具體實施例方式
現(xiàn)在參考附圖并且特別參考圖1,其中示出了本發(fā)明的方面可在其中得以實現(xiàn)的數(shù)據(jù)處理系統(tǒng)的圖示。描述了計算機100,其包括系統(tǒng)單元102、視頻顯示終端104、鍵盤106、可包括軟驅(qū)以及其他類型的永久及可移動的存儲介質(zhì)的存儲設(shè)備108、以及鼠標(biāo)110。個人計算機100可包括附加的輸入設(shè)備,例如操縱桿、觸摸板、觸摸屏、軌跡球、麥克風(fēng)等等。利用任何合適的計算機,例如IBM eServer計算機或IntelliStation計算機(其為位于紐約Armonk的國際商業(yè)機器公司的產(chǎn)品),可以實現(xiàn)計算機100。雖然所描述圖示顯示為計算機,但是本發(fā)明的其他實施例可在例如網(wǎng)絡(luò)計算機的其他類型數(shù)據(jù)處理系統(tǒng)中實現(xiàn)。優(yōu)選地,計算機100也包括圖形用戶接口(GUI),其可利用駐留在計算機可讀介質(zhì)中、在計算機100內(nèi)操作的系統(tǒng)軟件來實現(xiàn)。
現(xiàn)在參考圖2,示出了本發(fā)明的方面可在其中實現(xiàn)的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是計算機的例子,例如圖1中的計算機100,實現(xiàn)本發(fā)明的過程的代碼或指令可位于其中。在所描述的例子中,數(shù)據(jù)處理系統(tǒng)200采用了包括北橋和存儲器控制器集線器(MCH)202以及南橋和輸入/輸出(I/O)控制器集線器(ICH)204的集線器結(jié)構(gòu)。處理器206、主存儲器208以及圖形處理器210被連接到北橋和存儲器控制器集線器202。圖形處理器210可通過例如加速圖形端口(AGP)連接到MCH。
在所描述的例子中,局域網(wǎng)(LAN)適配器212連接到南橋及I/O控制器集線器204上,而音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲器(ROM)224、硬盤驅(qū)動器(HDD)226、CD-ROM驅(qū)動器230、通用串行總線(USB)端口及其他通信端口232以及PCI/PCIe設(shè)備234通過總線238及總線240連接到南橋及I/O控制器集線器204。PCI/PCIe設(shè)備可包括例如用于筆記本計算機的以太網(wǎng)適配器、內(nèi)插卡及PC卡。PCI使用卡總線控制器,而PCIe不用。只讀存儲器224可以是例如快擦寫二進制輸入/輸出系統(tǒng)(BIOS)。硬盤驅(qū)動器226及CD-ROM驅(qū)動器230可利用例如集成驅(qū)動電子設(shè)備(IDE)或串行高級技術(shù)附連(SATA)接口。超級I/O(SIO)設(shè)備236可被連接到南橋及I/O控制器集線器204。
附圖2中,操作系統(tǒng)在處理器206上運行并協(xié)調(diào)和提供數(shù)據(jù)處理系統(tǒng)200內(nèi)的各種部件的控制。操作系統(tǒng)可以是市場上可買到的操作系統(tǒng),例如微軟公司W(wǎng)indows XP(Microsoft及Windows在美國、其他國家或兩者中都是微軟公司的注冊商標(biāo))。例如JavaTM編程系統(tǒng)的面向?qū)ο缶幊滔到y(tǒng)可與操作系統(tǒng)結(jié)合運行,并從Java程序或在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的應(yīng)用程序提供對操作系統(tǒng)的調(diào)用(Java在美國、其他國家或兩者中都是Sun微系統(tǒng)公司的注冊商標(biāo))。
操作系統(tǒng)、面向?qū)ο缶幊滔到y(tǒng)以及應(yīng)用程序或程序的指令位于例如硬盤驅(qū)動器226的存儲設(shè)備上,并且可被裝載到主存儲器208中以便由處理器206執(zhí)行。本發(fā)明的過程由處理器206利用計算機實現(xiàn)的指令來執(zhí)行,該指令可位于存儲器,例如主存儲器208、只讀存儲器224中,或位于一個或多個外部設(shè)備中。
本領(lǐng)域普通技術(shù)人員將理解,圖1-2中的硬件可以因?qū)崿F(xiàn)而不同。其他的內(nèi)部硬件或外部設(shè)備,例如快擦寫存儲器、等效非易失性存儲器或CD-ROM驅(qū)動器等可用于補充或代替圖1-2中所描述的硬件。此外,本發(fā)明的過程可被應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
在一些說明性的例子中,數(shù)據(jù)處理系統(tǒng)200可以是個人數(shù)字助理(PDA),其配有快擦寫存儲器以提供用于存儲操作系統(tǒng)文件及/或用戶產(chǎn)生的數(shù)據(jù)的非易失性存儲器。總線系統(tǒng)可由一個或多個總線組成,例如系統(tǒng)總線、I/O總線以及PCI總線。當(dāng)然,總線系統(tǒng)可利用任何類型的通信網(wǎng)絡(luò)或結(jié)構(gòu)來實現(xiàn),所述通信網(wǎng)絡(luò)或結(jié)構(gòu)提供連接到該網(wǎng)絡(luò)或結(jié)構(gòu)的不同部件或設(shè)備之間的數(shù)據(jù)傳送。通信單元可包括一個或多個用于發(fā)送及接收數(shù)據(jù)的設(shè)備,例如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。存儲器可以是例如主存儲器208或例如在北橋和存儲器控制器集線器202中出現(xiàn)的高速緩沖存儲器。處理單元可包括一個或多個處理器或CPU。圖1-2中所描述的例子及上面所描述的例子不旨在暗示任何結(jié)構(gòu)限制。例如,數(shù)據(jù)處理系統(tǒng)200也可以是除采用PDA形式之外的平板計算機、便攜式計算機或電話設(shè)備。
本發(fā)明的各方面提供了當(dāng)在跟蹤期間出現(xiàn)不同處理器頻率時進行自適應(yīng)跟蹤的計算機實現(xiàn)的方法、設(shè)備以及計算機可用的程序代碼。在說明性實施例中,在為一組處理器產(chǎn)生蹤跡的同時,產(chǎn)生記錄以標(biāo)識處理器頻率的改變。在這些例子中,當(dāng)這些頻率變化發(fā)生時,頻率變化記錄被放到蹤跡中。在這些例子中,當(dāng)跟蹤完成時,不同處理器記錄的蹤跡按照基于所選擇的蹤跡的記錄定序被合并。
在這些例子中,處理器之一的蹤跡被選為基蹤跡并被用于合并來自其他處理器的蹤跡的跟蹤記錄。蹤跡的頻率變化記錄被識別。從先前事件到當(dāng)前事件經(jīng)過的時間被識別。發(fā)生在任何蹤跡中的第一中斷被識別為當(dāng)前事件。在這個例子中,蹤跡的開始是先前事件。事件可以是蹤跡的開始、蹤跡的結(jié)束、或表明蹤跡結(jié)束的處理器頻率改變的中斷的出現(xiàn)。特別地,利用基蹤跡識別事件之間的經(jīng)過時間。頻率變化記錄是標(biāo)識表明處理器頻率已改變的中斷的出現(xiàn)的記錄。
之后,識別從先前事件直到新事件出現(xiàn)的點之間每個蹤跡的周期。在該例子中,先前事件為蹤跡的開始,而新的或當(dāng)前事件為標(biāo)識處理器頻率變化的第一頻率變化記錄。利用該蹤跡中的周期數(shù)及相對基蹤跡的經(jīng)過時間計算每個蹤跡的真實頻率。此后,針對記錄以及直到事件出現(xiàn)或合并的點的記錄調(diào)節(jié)時間戳。針對出現(xiàn)的每個事件執(zhí)行該過程,以便以考慮不同處理器頻率的方式合并來自不同蹤跡的所有跟蹤記錄。
現(xiàn)在轉(zhuǎn)到圖3,其中根據(jù)本發(fā)明的說明性實施例描述了圖解用于產(chǎn)生并合并蹤跡的部件的示意圖。在該例子中,處理器300及處理器302執(zhí)行代碼304。中斷306及308分別由處理器300及302產(chǎn)生。這些中斷由內(nèi)核310接收并且跟蹤記錄被存儲在跟蹤緩沖區(qū)312及314內(nèi)。在這些例子中,每個處理器被分配了單獨的跟蹤緩沖區(qū)。因此,中斷306產(chǎn)生被存儲在處理器300的跟蹤緩沖區(qū)312內(nèi)的蹤跡316中的數(shù)據(jù)。中斷308導(dǎo)致跟蹤記錄或其他數(shù)據(jù)被存儲在處理器302的跟蹤緩沖區(qū)314內(nèi)的蹤跡318中。
在這些例子中,中斷306以及中斷308可以是周期性出現(xiàn)以產(chǎn)生跟蹤記錄的中斷。中斷306以及中斷308也可以由于頻率變化而產(chǎn)生。我們稱這些頻率變化中斷記錄為頻率變化記錄。在這些說明性例子中,這些頻率變化記錄也被存儲在跟蹤緩沖區(qū)312以及蹤跡316內(nèi)。
在跟蹤已完成后,跟蹤緩沖區(qū)312和蹤跡316,以及跟蹤緩沖區(qū)314和蹤跡318由性能工具320合并成單個蹤跡。在這些說明性例子中,這些蹤跡的合并要求不同跟蹤記錄的時間戳準(zhǔn)確,以便以正確順序合并跟蹤記錄。不準(zhǔn)確可導(dǎo)致由性能工具320分析的跟蹤記錄的不正確順序。
性能工具320利用存儲在跟蹤緩沖區(qū)312和蹤跡316、以及跟蹤緩沖區(qū)314和蹤跡318內(nèi)的頻率變化記錄來識別當(dāng)處理器300和302之間的頻率變化時處理器的正確時間。在這些例子中,性能工具320可被用于時間分布(profile)性能分析。通常,當(dāng)響應(yīng)中斷的產(chǎn)生而檢測到第一事件時,具有一些其它格式的記錄或數(shù)據(jù)被放入跟蹤緩沖區(qū)312或蹤跡316中。該蹤跡也包括用于合并和定序跟蹤緩沖區(qū)312和蹤跡316內(nèi)的記錄的時間戳。
性能工具320可利用定時器分析程序(timer profiler)來實現(xiàn)。這類工具的例子是tprof工具,通常隨來自國際商業(yè)機器公司的高級交互執(zhí)行(AIX)操作系統(tǒng)一起交付。這類程序得到由產(chǎn)生中斷的定時器引發(fā)的樣本。當(dāng)定時器的到達定時時,tprof工具識別被執(zhí)行的當(dāng)前指令。tprof工具是用于系統(tǒng)性能分析的跟蹤工具。這類工具提供了包含下面步驟的采樣技術(shù)根據(jù)時間周期性地中斷系統(tǒng);確定被中斷的代碼的地址以及進程標(biāo)識符和線程標(biāo)識符;在軟件跟蹤緩沖區(qū)中記錄跟蹤記錄;然后返回到被中斷的代碼。
在典型使用中,當(dāng)運行有關(guān)應(yīng)用程序的同時,tprof跟蹤工具周期性地喚醒并確切地記錄在代碼中應(yīng)用程序正在執(zhí)行的位置。例如,應(yīng)用程序正在執(zhí)行的位置是存儲器地址。tprof工具被用來產(chǎn)生有關(guān)應(yīng)用程序正在哪里花費時間的分布,以告知那些分析跟蹤信息的人們應(yīng)在何處嘗試改進應(yīng)用程序的性能。當(dāng)然,基于具體的實現(xiàn),性能工具320可利用任何類型的性能工具來實現(xiàn)。這類性能工具也可被用來收集并分析蹤跡。在應(yīng)用程序tprof正運行期間,例如JIT化(JITed)代碼(即,即時編譯的)的模塊或代碼可被裝載、卸載或覆蓋。為產(chǎn)生正確的符號信息,有關(guān)裝載或卸載的信息可被記錄在一個或多個跟蹤緩沖區(qū)中。為使符號信息正確,重要的是將所裝載模塊的信息的定序用于確定適用于tprof樣本跟蹤記錄的符號信息。
當(dāng)跟蹤完成時,性能工具320選擇蹤跡之一,例如蹤跡316作為基蹤跡。性能工具320在蹤跡316及蹤跡318內(nèi)識別所有頻率變化記錄。性能工具320在這兩個蹤跡中選擇第一頻率變化記錄。從蹤跡開始到頻率變化記錄的發(fā)生點所經(jīng)過的時間的量被識別。這兩點,即蹤跡的開始和頻率變化記錄,在這些例子中被稱為事件。這些記錄被用來識別處理器302的直到該點的正確頻率。利用蹤跡318中直到中斷的出現(xiàn)時已發(fā)生的周期的數(shù)量來識別該頻率。周期的數(shù)量及經(jīng)過的時間被用來識別該時刻處理器302的真實頻率。在蹤跡318中調(diào)節(jié)時間戳。因此,直到兩個蹤跡的第一中斷點的記錄已被同步,并且可與處于正確順序的記錄合并。
然后識別下一個頻率變化記錄。在該說明性的例子中,該頻率變化記錄可出現(xiàn)在任一蹤跡中。自上一事件(先前的頻率變化記錄)到該當(dāng)前事件(當(dāng)前頻率變化記錄)的所有記錄利用相同的過程被合并。同樣,基蹤跡,即蹤跡316中的自上一頻率變化記錄到當(dāng)前頻率變化記錄所經(jīng)過的時間的量被識別。針對蹤跡318,自上一頻率變化記錄到當(dāng)前頻率變化記錄發(fā)生的周期被識別。然后,利用周期及經(jīng)過的時間識別蹤跡318的真實頻率。該組記錄的時間戳被調(diào)節(jié)并且記錄被合并在一起。
用這樣的方式,本發(fā)明的不同方面考慮了可發(fā)生在不同處理器中的頻率變化。圖3中所說明的例子僅示出了兩個處理器。本發(fā)明的不同方面可被應(yīng)用于兩個以外的其他數(shù)量的處理器。在這些例子中,當(dāng)處理器的頻率即將為零時,產(chǎn)生頻率變化記錄??蛇x地,可以不記錄表明頻率即將變成零的跟蹤記錄;然而,在這種情況下,當(dāng)頻率改變?yōu)榉橇阒禃r,必須產(chǎn)生頻率變化跟蹤記錄。不論是哪種情況,當(dāng)處理器有非零頻率時,表明新頻率的跟蹤記錄可被記錄。
現(xiàn)在轉(zhuǎn)到圖4,根據(jù)本發(fā)明的說明性實施例描述了示例性蹤跡。在該例子中,描述了蹤跡400及蹤跡402。這些是例如圖3中的蹤跡316及318的蹤跡。蹤跡400包括跟蹤記錄404、406、408、410及412。蹤跡402包括跟蹤記錄414、416、418、420及422。這些跟蹤記錄組的每個可包含一個或多個跟蹤記錄。每當(dāng)發(fā)生處理器頻率產(chǎn)生變化的中斷時,產(chǎn)生頻率變化記錄并將其放入每個蹤跡內(nèi)。因此,即使針對與蹤跡400相關(guān)聯(lián)的處理器產(chǎn)生頻率變化,相同的頻率變化記錄也出現(xiàn)在蹤跡400及蹤跡402中。頻率變化記錄424位于跟蹤記錄404和406之間,以及跟蹤記錄414及416之間。頻率變化記錄426位于跟蹤記錄406和408之間。頻率變化記錄428位于跟蹤記錄408和410之間,以及跟蹤記錄418和420之間。頻率變化記錄430位于跟蹤記錄410和412之間,以及跟蹤記錄420和422之間。
當(dāng)頻率變化針對為其產(chǎn)生蹤跡400的處理器發(fā)生時,產(chǎn)生這些頻率變化記錄。
舉例來說,例如性能工具320的性能工具識別出現(xiàn)于蹤跡中的所有頻率記錄。在這些例子中,頻率變化記錄為頻率變化記錄424、426、428及430。一個蹤跡被選為基蹤跡。在該例子中,基蹤跡為蹤跡402。任何蹤跡中所產(chǎn)生的第一個中斷被識別。在該例子中,頻率變化記錄424是蹤跡400及402內(nèi)的第一頻率變化記錄。從蹤跡開始到頻率變化記錄424已發(fā)生的經(jīng)過時間被識別。該經(jīng)過時間為蹤跡402的正確經(jīng)過時間。
在這些例子中,頻率變化記錄包含在產(chǎn)生頻率變化記錄424時所有處理器的頻率及周期計數(shù)。通過與基蹤跡相關(guān)的處理器的周期計數(shù)除以頻率,從而確定時間。通過取兩個時間之間的差,確定經(jīng)過的時間。舉例來說,在頻率變化426處,蹤跡402中的跟蹤記錄具有周期時間Cy2,而蹤跡400中具有周期時間Cx2。類似地,在頻率變化424處,蹤跡402中具有周期時間Cy1,而蹤跡400中具有周期時間Cx1。對于蹤跡402,頻率變化424及426之間經(jīng)過的時間為(Cy2-Cy1)/424中的頻率。在蹤跡400中,使用424及426之間相同的經(jīng)過時間,但通過(Cx2-Cx1)除以經(jīng)過時間來確定頻率。當(dāng)計算蹤跡402中的記錄的時間時,開始時間可被初始化為表示該處理器上的蹤跡的開始的Cx1個周期除以這個基處理器的頻率。當(dāng)計算蹤跡400中的記錄的時間時,頻率變化記錄424處的開始時間將被初始化為與402中的跟蹤記錄424的開始時間相同。蹤跡400及402中開始周期之間的差被用來補償蹤跡400中的周期值。對于跟蹤記錄406中的每個跟蹤記錄,相對402中的記錄424的偏移被加到跟蹤記錄中的周期值上,并除以計算出的頻率以確定經(jīng)過的時間。由蹤跡402計算的經(jīng)過時間被用于每個記錄,以確定正確的定序。頻率變化可由硬件來指示,并且僅通過發(fā)生該頻率變化的處理器上的硬件來進行。然而,中斷處理程序利用處理器間中斷(IPI)機制來使得記錄被寫在其他處理器上。可選地,操作系統(tǒng)可啟動頻率變化,并且其將使用IPI機制來導(dǎo)致對全部處理器的通知。
接著,識別從蹤跡400的開始到頻率變化記錄424已發(fā)生的周期數(shù)。蹤跡400的真實頻率通過將與蹤跡400相關(guān)的處理器的周期數(shù)除以與基蹤跡相關(guān)的處理器的經(jīng)過時間來識別。將跟蹤記錄404與跟蹤記錄414合并。這些跟蹤記錄是已被記錄直到基蹤跡的經(jīng)過時間的跟蹤記錄的數(shù)量。
然后,性能工具識別下一個頻率變化記錄,在這個例子中其為頻率變化記錄424。針對蹤跡400識別自上一個頻率變化記錄,即頻率變化記錄424直到當(dāng)前頻率變化記錄,即頻率變化記錄426發(fā)生的周期數(shù)。識別自上次中斷以來經(jīng)過的時間的量。利用基蹤跡(在該例子中為蹤跡402)識別經(jīng)過的時間量的。通過獲取從上次頻率變化記錄到當(dāng)前頻率變化記錄的周期計數(shù)來識別該經(jīng)過時間。周期計數(shù)除以處理器的頻率。
以類似的方式,蹤跡400的真實頻率通過除與蹤跡400有關(guān)處理器的上一個頻率變化記錄與當(dāng)前頻率變化記錄之間的周期計數(shù)來識別。真實頻率被用來用調(diào)節(jié)的時間戳調(diào)整跟蹤記錄406中的時間戳,跟蹤記錄406與跟蹤記錄416被合并并且被以正確順序放置。跟蹤記錄的定序相對于跟蹤記錄406和跟蹤記錄416。跟蹤記錄406內(nèi)的每個跟蹤記錄的定序已經(jīng)是正確的。以類似的方式,跟蹤記錄416內(nèi)的每個跟蹤記錄的順序是正確的。正確定序是針對來自不同的蹤跡的跟蹤記錄的合并的。
處理蹤跡400及蹤跡402中遇到的下一個頻率變化記錄為頻率變化收集記錄428。跟蹤記錄408為自上次頻率變化記錄及當(dāng)前頻率變化記錄之間的時間以來的跟蹤記錄。通過獲取從上次中斷到當(dāng)前中斷的周期計數(shù)并將該周期計數(shù)除以經(jīng)過時間,來調(diào)節(jié)這些跟蹤記錄。再次,從蹤跡402識別經(jīng)過的時間。自從上次頻率變化記錄以來發(fā)生的周期數(shù)除以頻率以獲取經(jīng)過的時間。處理器的實際頻率通過將針對蹤跡400所獲取的周期計數(shù)除以經(jīng)過的時間來識別。該頻率被用來調(diào)整跟蹤記錄408中的時間戳。此后,利用該調(diào)整的時間,跟蹤記錄408與跟蹤記錄418合并。
當(dāng)遇到頻率變化記錄430時,針對跟蹤記錄410及420執(zhí)行類似的過程。在蹤跡的結(jié)尾,自頻率變化記錄430到蹤跡的結(jié)尾執(zhí)行相同的過程。用這樣的方式,通過使其它蹤跡的時間與基蹤跡同步,蹤跡400及蹤跡402內(nèi)的跟蹤記錄以正確順序合并。
在這些例子中,一組記錄的經(jīng)過時間的識別與真實頻率的識別響應(yīng)事件而進行。在這些例子中,這些事件為蹤跡的開始、頻率變化記錄以及蹤跡的結(jié)束。圖4中僅圖解兩個蹤跡以清楚地解釋說明性例子中的不同過程及特性。當(dāng)然,相同的過程可被應(yīng)用于大于兩個的蹤跡組。在這些例子中,每個周期時間戳被轉(zhuǎn)換成時間值,例如從蹤跡的開始所經(jīng)過的時間。跟蹤記錄通過其計算的時間值被合并。檢查每個蹤跡以確定具有最接近正被處理的當(dāng)前記錄的時間值的下一個記錄。
現(xiàn)在參考圖5,根據(jù)本發(fā)明的說明性實施例,描述了圖解頻率變化記錄的示意圖。頻率變化記錄500是跟蹤記錄的例子,例如圖4中的頻率變化記錄424。在該例子中,頻率變化記錄500包含處理器標(biāo)識502、頻率504及周期計數(shù)506。這些字段是針對一個具體處理器的。處理器標(biāo)識可以是隱含的,尤其是如果每個處理器都獲得中斷。此外,頻率變化記錄500也包含處理器標(biāo)識508、頻率510以及周期計數(shù)512。這些字段是針對出現(xiàn)的另一個處理器的。頻率變化記錄500包含出現(xiàn)在數(shù)據(jù)處理系統(tǒng)中的每個處理器的處理器標(biāo)識、頻率以及周期計數(shù)。
現(xiàn)在轉(zhuǎn)到圖6,根據(jù)本發(fā)明的說明性實施例,描述了用于同時讀取處理器上的經(jīng)過時間的偽代碼的示意圖。在該例子中,代碼600是用于給數(shù)據(jù)處理系統(tǒng)內(nèi)的處理器發(fā)出處理器間中斷的過程的代碼的例子。該過程可在系統(tǒng)內(nèi)核、內(nèi)核擴展或設(shè)備驅(qū)動程序中實現(xiàn)。從該過程中獲得的信息被用來產(chǎn)生例如上面所描述的那些的頻率變化記錄。
現(xiàn)在轉(zhuǎn)到圖7,根據(jù)本發(fā)明的說明性實施例描述了用于合并來自蹤跡的記錄的過程的流程圖。圖7中的所圖解的過程用例如圖3中的性能工具320的性能工具來實現(xiàn)。
過程在開始時從跟蹤緩沖區(qū)中檢索蹤跡(步驟700)。這些跟蹤緩沖區(qū)可以是例如圖3中的跟蹤緩沖區(qū)312及跟蹤緩沖區(qū)314。此后,過程選擇了一個蹤跡作為基蹤跡(步驟702)。該基蹤跡被用來識別用于計算這些例子中真實頻率的經(jīng)過時間。此后,過程識別蹤跡中的全部頻率變化記錄(步驟704)。這些頻率變化記錄為標(biāo)識處理器中的頻率變化的記錄。該過程選擇最近未處理的頻率變化記錄來進行處理(步驟706)。
然后,該過程利用基蹤跡確定經(jīng)過的時間(步驟708)。利用從上次事件到當(dāng)前中斷已發(fā)生的周期數(shù)來識別經(jīng)過的時間。針對基蹤跡,經(jīng)過的時間乘以處理器的頻率。上一個事件可以是例如另一個頻率變化記錄或當(dāng)跟蹤開始時的時間。
接下來,針對頻率變化記錄之間的每個蹤跡,過程識別經(jīng)過的周期(步驟710)。利用所識別的周期及經(jīng)過的時間,過程計算每個蹤跡的真實頻率(步驟712)。通過將經(jīng)過的周期除以經(jīng)過的時間,計算真實頻率。利用該值調(diào)節(jié)每個蹤跡中的記錄組的時間戳(步驟714)。跟蹤記錄組為自上次頻率變化記錄直到正被處理的當(dāng)前頻率變化記錄所發(fā)生的那些跟蹤記錄。然后合并跟蹤記錄組(步驟716)。該步驟包括合并來自時間戳已被調(diào)節(jié)的不同蹤跡的跟蹤記錄。
接下來,確定蹤跡中是否存在附加的未被處理的頻率變化記錄要進行處理(步驟718)。如果出現(xiàn)附加的未被處理的頻率變化記錄,則過程回到步驟706以選擇下一個未被處理的頻率變化記錄。否則,過程終止。舉例來說,蹤跡的開始與結(jié)束的處理按類似于未被處理的頻率變化記錄的出現(xiàn)的方式進行處理。利用如圖7中所說明的本發(fā)明的過程處理該情況。
在其中沒有處理器漂移并且出現(xiàn)確切頻率的例子中,針對處理器P1及處理器P2說明如下處理器P1于1000周期處開始跟蹤,具有100000周期/秒的頻率,下一個記錄R1于3000周期處,R2于4000周期處,R3于9000周期處,以及結(jié)束跟蹤于10000周期處,以及處理器P2開始跟蹤于500周期處,具有50000周期/秒的頻率,下一個記錄R1于1000周期處,R2于2000周期處,結(jié)束跟蹤于5000周期處。
基的增量計算如下10000周期-1000周期=9000周期,9000/100000=0.09經(jīng)過時間。對于3000處的記錄P1R1,調(diào)整時間為3000/100000=0.03;4000處的P1R2,調(diào)整時間為4000/100000=0.04;9000處的P1R3,調(diào)整時間為9000/100000=0.09。
處理器P2的增量計算如下5000周期-500周期=4500周期,4500/50000為0.09經(jīng)過時間。對于P2R1在1000處的記錄,經(jīng)過的時間為100/50000=.05,對于P2R2在2000處的記錄,經(jīng)過的時間為2000/50000=0.10。因此記錄被合并如下P1R1、P1R2、P2R1、P1R2,之后為P1R3。
在其中處理器漂移并且出現(xiàn)不確切頻率的另一個例子中,描述了利用本發(fā)明的不同方面的記錄處理。下面針對處理器P1及處理器P2進行說明處理器P11100周期處開始跟蹤,具有100000周期/秒的頻率,在3000周期處的下一個記錄R1,4000周期處的R2,以及9000周期處的R3,并且在10000周期處結(jié)束跟蹤,以及處理器P22000周期處開始跟蹤,具有200000周期/秒的頻率,2100周期處的下一個記錄R1,8300周期處的R2,以及18000周期處的R3,并且在20500周期處結(jié)束跟蹤?;脑隽坑嬎闳缦?0000周期-1100周期=8900周期,8900/110000=.089經(jīng)過時間。對于3000處的記錄P1R1,所調(diào)整的時間為(3000周期-1100周期)/100000周期=0.019,對于4000處的P1R2,所調(diào)整的時間為(4000周期-1100周期)/100000周期=0.029,對于9000處的P1R3,所調(diào)整的時間為(9000-1100)/100000=0.079。處理器P2的增量計算如下利用來自處理器P1的經(jīng)過的基時間,20500-2000=18500增量周期。出現(xiàn)0.089秒的經(jīng)過時間,將增量周期除以時間來計算頻率=18500/0.089=207865.1685Hz,對于2000周期處P2R1上的記錄,經(jīng)過的時間為(2100-2000)/207865=0.000481,或?qū)τ?300處P2R2上的記錄,經(jīng)過的時間為(8300周期-2000周期)/207865周期=0.030,對于18000周期處P2R3上的記錄,經(jīng)過的時間為(18000周期-2000周期)/207865周期=0.0769。因此,記錄被合并如下P2R1、P1R1、P1R2、P2R2,P2R3,之后為P1R3。在該例子中,對于每個蹤跡,開始時間被調(diào)整至零。
用這樣的方式,本發(fā)明的方面提供了具有不同處理器頻率的自適應(yīng)跟蹤。換言之,本發(fā)明的方面可以考慮蹤跡的產(chǎn)生期間處理器頻率的任何變化。不同的說明性例子允許來自不同蹤跡的跟蹤記錄被合并,以使不同的跟蹤記錄處于正確順序。通過利用頻率變化記錄來考慮處理器頻率的變化,以調(diào)節(jié)事件之間所產(chǎn)生的記錄組的時間戳。
本發(fā)明可以采用完全硬件實施例、完全軟件實施例或硬件和軟件部件兩者都包含的實施例的形式。在最優(yōu)實施例中,本發(fā)明被以軟件方式實現(xiàn),其包括但不局限于固件、常駐軟件、微代碼等等。
更進一步地,本發(fā)明可以采取從計算機可用的或計算機可讀的介質(zhì)可訪問的計算機程序產(chǎn)品的形式,計算機可用的或計算機可讀的介質(zhì)提供程序代碼以便由計算機或任何指令執(zhí)行系統(tǒng)使用或相結(jié)合。對于該描述的目的,計算機可用的或計算機可讀的介質(zhì)可以是任何設(shè)備,其可以包含、存儲、通信、傳播或傳送程序以便由指令執(zhí)行系統(tǒng)、設(shè)備或設(shè)備使用或與之相結(jié)合。
介質(zhì)可以是電子的、磁性的、光學(xué)的、電磁的、紅外線的或半導(dǎo)體系統(tǒng)(或設(shè)備或設(shè)備)或傳播介質(zhì)。計算機可讀的介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移動的計算機軟盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤以及CD-ROM。CD-ROM的當(dāng)前例子包括光盤-只讀存儲器(CD-ROM)、光盤-讀/寫(CD-R/W)以及DVD。
適用于存儲及/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括直接或通過系統(tǒng)總線間接地連接到存儲部件的至少一個處理器。存儲部件可包括程序代碼的實際執(zhí)行期間所采用的本地存儲器、大容量存儲器以及高速緩沖存儲器,其提供至少一些程序代碼的暫時存儲器以減小執(zhí)行期間代碼必須被從大容量存儲器取回的次數(shù)。
輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、定位設(shè)備等等)可被或者直接或者通過插入I/O控制器來連接到系統(tǒng)。
網(wǎng)絡(luò)適配器也可被連接到該系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過插進私人或公共網(wǎng)絡(luò)而變?yōu)檫B接到其他數(shù)據(jù)處理系統(tǒng)或遠程打印機或存儲設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器以及以太網(wǎng)卡只是網(wǎng)絡(luò)適配器的若干當(dāng)前可用的類型。
為圖解及描述的目的已給出本發(fā)明的描述,而并不意指完全或局限于所揭示的形式的發(fā)明。許多修改及變化對于本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。選擇并描述實施例以便最好地解釋本發(fā)明的原理、實際應(yīng)用、以及為使本領(lǐng)域其他普通技術(shù)人員能夠理解具有按照適于預(yù)計具體使用的各種修改的各種實施例的本發(fā)明。
權(quán)利要求
1.一種用于管理跟蹤記錄的計算機實現(xiàn)的方法,該計算機實現(xiàn)的方法包括針對一組處理器產(chǎn)生一組蹤跡,其中針對該組處理器內(nèi)的每個處理器產(chǎn)生該組蹤跡中的蹤跡,響應(yīng)于該組處理器內(nèi)的處理器中的頻率變化,在該組蹤跡中存儲頻率變化的記錄;以及通過利用頻率變化的記錄確定記錄的正確順序,組合該組蹤跡中的跟蹤記錄。
2.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中記錄包括該組處理器中的處理器的標(biāo)識、頻率變化的頻率以及自該處理器的上一次頻率變化以來的若干周期的周期計數(shù)。
3.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中組合步驟包括選擇該組蹤跡內(nèi)的基蹤跡;識別該組蹤跡中頻率變化的記錄;利用基蹤跡確定從先前事件直到頻率變化的記錄所經(jīng)過的時間;在先前事件與頻率變化的記錄之間識別發(fā)生在該組蹤跡的第二蹤跡中的周期;利用該周期與經(jīng)過的時間計算第二蹤跡的真實頻率;以及針對第二蹤跡內(nèi)的每個跟蹤記錄調(diào)節(jié)時間戳。
4.根據(jù)權(quán)利要求3的計算機實現(xiàn)的方法,進一步地包括合并基蹤跡和第二蹤跡中在該事件與頻率變化的記錄之間的全部跟蹤記錄。
5.根據(jù)權(quán)利要求3的計算機實現(xiàn)的方法,進一步地包括針對該組蹤跡中每個頻率變化記錄執(zhí)行確定步驟、識別步驟、計算步驟以及調(diào)節(jié)步驟。
6.根據(jù)權(quán)利要求5的計算機實現(xiàn)的方法,進一步地包括針對該組蹤跡中每個蹤跡執(zhí)行確定步驟、識別步驟、計算步驟以及調(diào)節(jié)步驟。
7.根據(jù)權(quán)利要求3的計算機實現(xiàn)的方法,其中先前事件是從頻率變化之一以及蹤跡的開始中選出來的。
8.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中頻率變化的記錄響應(yīng)于來自處理器的指示發(fā)生頻率變化的中斷。
9.一個數(shù)據(jù)處理系統(tǒng),包括總線;連接到總線的通信單元;連接到總線的存儲器,其中存儲設(shè)備包括計算機可用的程序代碼;以及連接到總線的處理器單元,其中處理器單元執(zhí)行計算機可用的程序代碼以產(chǎn)生一組處理器的一組蹤跡,其中針對該組處理器內(nèi)的每個處理器產(chǎn)生該組蹤跡中的蹤跡;響應(yīng)于該組處理器內(nèi)的處理器的頻率變化,將頻率變化的記錄存儲在該組蹤跡中;以及通過利用頻率變化的記錄確定記錄的正確順序,組合該組蹤跡中的跟蹤記錄。
10.根據(jù)權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),其中記錄包括該組處理器中的處理器的標(biāo)識、頻率變化的頻率以及自處理器的最后頻率變化以來的若干周期的周期計數(shù)。
11.根據(jù)權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),其中在執(zhí)行計算機可用的程序代碼以通過利用頻率變化的記錄確定記錄的正確順序以組合該組蹤跡中的跟蹤記錄時,處理器進一步執(zhí)行計算機可用的程序代碼以在該組蹤跡內(nèi)選擇基蹤跡;識別該組蹤跡中頻率變化的記錄;利用基蹤跡確定從先前事件直到頻率變化的記錄的經(jīng)過時間;識別在先前事件與頻率變化的記錄之間發(fā)生在該組蹤跡的第二蹤跡中的周期;利用周期與經(jīng)過的時間計算第二蹤跡的真實頻率;以及在第二蹤跡內(nèi)調(diào)節(jié)每個跟蹤記錄的時間戳。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中處理器單元進一步執(zhí)行計算機可用的程序代碼以合并基蹤跡和第二蹤跡中在該事件與頻率變化的記錄之間的全部跟蹤記錄。
13.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中處理器單元進一步地執(zhí)行計算機可用的程序代碼,并且其中事件是從頻率變化之一以及蹤跡的開始中選出來的。
14.根據(jù)權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),其中處理器單元進一步地執(zhí)行計算機可用的程序代碼,并且其中頻率變化的記錄響應(yīng)于來自處理器的指示發(fā)生頻率變化的中斷。
15.一種計算機程序產(chǎn)品,包括具有管理跟蹤記錄的計算機可用的程序代碼的計算機介質(zhì),所述計算機程序產(chǎn)品包括執(zhí)行權(quán)利要求1-8的任何一個中的步驟的計算機可用的程序代碼。
全文摘要
公開了用于具有不同處理器頻率的自適應(yīng)跟蹤的方法及設(shè)備。用于管理跟蹤記錄的一種方法、設(shè)備以及計算機可用的程序代碼。針對處理器組產(chǎn)生蹤跡組。針對該處理器組內(nèi)的每個處理器在該蹤跡組中產(chǎn)生一個蹤跡。響應(yīng)于該處理器組內(nèi)的一個處理器中的頻率變化,頻率變化的記錄被存儲在蹤跡組中。通過利用頻率變化的記錄確定記錄的正確順序,跟蹤記錄被組合在蹤跡組中。
文檔編號G06F11/34GK1924825SQ200610107528
公開日2007年3月7日 申請日期2006年7月20日 優(yōu)先權(quán)日2005年8月30日
發(fā)明者弗蘭克·E.·萊維內(nèi), 羅伯特·J.·厄奎哈特, 艾尼奧·M.·皮內(nèi)達, 小吉米·E·德威特 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1