TWI433035B - 按比例調整指令間隔以識別用於代表性指令追蹤的收集點 - Google Patents

按比例調整指令間隔以識別用於代表性指令追蹤的收集點 Download PDF

Info

Publication number
TWI433035B
TWI433035B TW097120603A TW97120603A TWI433035B TW I433035 B TWI433035 B TW I433035B TW 097120603 A TW097120603 A TW 097120603A TW 97120603 A TW97120603 A TW 97120603A TW I433035 B TWI433035 B TW I433035B
Authority
TW
Taiwan
Prior art keywords
instructions
stage
instruction
interval
intervals
Prior art date
Application number
TW097120603A
Other languages
English (en)
Other versions
TW200910208A (en
Inventor
Robert H Bell Jr
Wen-Tzer T Chen
Richard J Eickemeyer
Venkat R Indukuru
Pattabi M Seshadri
Madhavi G Valluri
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200910208A publication Critical patent/TW200910208A/zh
Application granted granted Critical
Publication of TWI433035B publication Critical patent/TWI433035B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

按比例調整指令間隔以識別用於代表性指令追蹤的收集點
本申請案大體係關於指令追蹤。更明確地說,本申請案係針對按比例調整來自追蹤階段之指令間隔以識別用於代表性指令追蹤之收集點。
現代軟體工作負荷可具有由用於單一資料集之數兆指令組成的動態指令路徑長度。舉例而言,程式464.h264ref(其係為最近現代視訊壓縮標準(為H.264/AVC(高級視訊編碼))之參考實施的電腦程式)當在正使用單一資料集之處理器上執行至完成時可具有超過3.2兆個動態指令。
追蹤驅動之效能模擬器用以評估未來處理器之設計改變及項目工作負荷效能。此等模擬器在現代機器上常常每秒可執行約一千個指令。因此,對於具有一兆動態指令之程式,模擬可能花費約3.1年來完成。然而,先前研究已展示,工作負荷中之動態指令常常展現執行之階段,亦即與正由程式執行之基本區塊強烈相關之指令之重複序列。藉由建立僅來自主要程式階段之代表性追蹤,可顯著減少必須被模擬之指令之數目。
一些已知系統使用藉由使用統計分析技術獲取之粗粒相或精粒指令塊以發現按比例代表來自程式之動態執行之大得多的數目之指令之機器執行特性的小數目之指令。此等已知系統之輸出為指示最佳地代表程式之執行的程式執行 或程式追蹤部分(諸如階段或指令塊)的一組開始及結束指令索引對。在許多狀況下,所有階段為相同長度,且總效能藉由將每一階段之效能結果與階段在完全程式執行中之出現頻率相乘來獲取。此外,不可自用於模擬器上之同時執行之所有輸入資料集來獲取階段。
然而,此等已知系統未能解決:使用特定數目之指令來代表程式、包括來自每一輸入資料集之階段、一次包括所有資料集,及所有此等諸者使得在追蹤中精確地代表所有資料集之所有程式階段,此等對於模擬器系統中之有效且精確之追蹤驅動的程式執行係重要的。
說明性實施例提供來自一程式及所有其輸入資料集之動態執行的一小組代表性指令之收集。將一程式執行追蹤分解為指令之間隔,接著基於指派至該等間隔中之每一者之權重及一指令預算來選擇、排序並按比例調整該等間隔。該等間隔經選擇以代表該指令預算內之工作負荷。在一些狀況下,可使用硬體效能監視器計數器對於代表性評估該等所選擇之指令,此可能要求來自該等選定間隔中之每一者的經按比例調整指令被捨入。然而,該等經按比例調整指令之捨入可能導致錯誤,諸如相對於該指令預算之總體指令欠缺或超出。藉由調整一或多個間隔中之指令之數目來校正此等錯誤。此外,亦可基於該等所選擇之間隔而包括暖機指令(warm-up instruction)。暖機指令為可需要用以暖機處理器之局部性結構(諸如快取記憶體及分支預測器) 之額外指令。指令之代表性追蹤(若須要則包括暖機指令)接著由模擬器收集並使用以模擬程式之執行。
說明性實施例提供識別指令以獲取代表性追蹤。說明性實施例針對一組階段中之每一階段計算一階段指令預算。該階段指令預算可基於與每一階段相關聯之權重及整體指令預算。說明性實施例識別一起始索引及一結束索引用於每一階段中之一組間隔內之指令以滿足彼階段之階段指令預算,從而形成一組間隔索引。說明性實施例判定該組間隔索引內之指令是否滿足該整體指令預算。說明性實施例回應於滿足該整體指令預算而輸出該組間隔索引作為用於該等代表性追蹤之收集點。
說明性實施例判定一組暖機指令是否應與該等指令一起包括於該整體指令預算中,且回應於應包括暖機指令之指示,說明性實施例將該起始索引調整預定數目個指令或將其調整至該組間隔中之先前間隔之結束。
在識別用於每一階段中之該組間隔內之指令的起始索引及結束索引時,一說明性實施例判定該組間隔內之最具代表性的間隔中之若干指令是否等於階段指令預算。此說明性實施例回應於該最具代表性的間隔內之該等指令等於該階段指令預算而將該最具代表性的間隔之開始識別為該起始索引,且將該最具代表性的間隔之結束識別為該結束索引。
在識別用於每一階段中之該組間隔內之指令的起始索引及結束索引時,另一說明性實施例判定該組間隔內之最具 代表性的間隔中之若干指令是否大於該階段指令預算。此說明性實施例回應於該最具代表性的間隔內之該等指令大於該階段指令預算而將該最具代表性的間隔之開始識別為該起始索引,且將該最具代表性的間隔按比例調整至指令之數目等於該階段指令預算的點,其中該點為該結束索引。
在識別用於每一階段中之該組間隔內之指令的起始索引及結束索引時,又一說明性實施例判定該組間隔內之一個以上最具代表性的間隔中之若干指令是否等於該階段指令預算。此說明性實施例回應於該一個以上最具代表性的間隔內之該等指令等於該階段指令預算而將該一個以上最具代表性的間隔之開始識別為該起始索引,且將該一個以上最具代表性的間隔之結束識別為該結束索引。
在識別用於每一階段中之該組間隔內之指令的起始索引及結束索引時,另一說明性實施例判定該組間隔內之一個以上最具代表性的間隔中之若干指令是否大於該階段指令預算。此說明性實施例回應於該一個以上最具代表性的間隔內之該等指令大於該階段指令預算而將該一個以上最具代表性的間隔之開始識別為該起始索引,且將該一個以上最具代表性的間隔按比例調整至指令之數目等於該階段指令預算之點,其中該點為該結束索引。
說明性實施例回應於未能滿足該整體指令預算而判定該組間隔索引內之指令之總和是否小於該整體指令預算,且回應於該組間隔索引內之該等指令之總和小於該整體指令 預算而增加該組階段中之一個階段之一個間隔內的指令以滿足該指令預算。
說明性實施例回應於未能滿足該整體指令預算而判定該組間隔索引內之指令之總和是否小於該整體指令預算,且回應於該組間隔索引內之該等指令之總和大於該整體指令預算而減少該組階段中之一個階段之一個間隔內的指令以滿足該指令預算。
在其他說明性實施例中,提供一電腦程式產品,該電腦程式產品包含具有電腦可讀程式之電腦可用媒體。該等電腦可讀媒體在執行於計算器件上時使該計算器件執行以上關於該方法說明性實施例而闡述之操作中的各者及其組合。
在又一說明性實施例中,提供一系統。該系統可包含處理器及耦接至該處理器之記憶體。該記憶體可包含在由該處理器執行時使該處理器執行以上關於該方法說明性實施例而闡述之操作中的各者及其組合的指令。
本發明之此等及其他特徵及優點將描述於本發明之例示性實施例的以下詳細描述中,或將鑒於本發明之例示性實施例的以下詳細描述而對於一般熟習此項技術者變得顯而易見。
本發明以及本發明之較佳使用模式及其他目的及優點將在結合所附圖式理解時參考說明性實施例之以下詳細描述而得以最佳理解。
現代軟體模擬可能要求代表性追蹤滿足某種標準,諸如1)單一追蹤必須代表程式或工作負荷之所有輸入資料集,2)追蹤必須足夠長以代表用於輸入資料集之執行的所有階段,及3)追蹤(包括暖機指令)必須在一合理時間量內執行於效能模擬器中以允許效能設計研究及預測之快速返回(turnaround)。該時間量一般在一天或兩天之內,此意謂追蹤必須依據所有階段上之指令而為特定長度。此外,任何程式之追蹤可為與任何其他程式相同數目之指令,以使得在經由效能模擬器一起執行時執行速率之比較為合理的;亦即,若一個追蹤於另一追蹤之前很久結束,則最終效能速率結果可能不代表組合執行於真實處理器或其類似物上之類似程式。
對於說明性實施例,資料處理系統提供獲取滿足此等標準之代表性追蹤之方法。提供圖1 作為其中可實施說明性實施例之態樣之例示性資料處理系統。資料處理系統100 為電腦之實例,可在該電腦中定位實施本發明之說明性實施例之處理的電腦可用程式碼或指令。
在所描繪之實例中,資料處理系統100 使用一集線器架構,該集線器架構包括北橋與記憶體控制器集線器(north bridge and memory controller hub,NB/MCH)102 及南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)104 。處理單元106 、主記憶體108 及圖形處理器110 連接至NB/MCH102 。圖形處理器110 可經由圖形加速埠(AGP)連接至NB/MCH 102
在所描繪之實例中,區域網路(LAN)配接器112 連接至SB/ICH104 。音訊配接器116 、鍵盤與滑鼠配接器120 、數據機122 、唯讀記憶體(ROM)124 、硬碟驅動器(HDD)126 、CD-ROM驅動器130 、通用串列匯流排(USB)埠及其他通信埠132 ,及PCI/PCIe器件134 經由匯流排138 及匯流排140 連接至SB/ICH104 。PCI/PCIe器件可包括(例如)乙太網路配接器、插卡及用於筆記型電腦之PC卡。PCI使用卡匯流排控制器,而PCIe不使用卡匯流排控制器。ROM124 可為(例如)快閃二進位輸入/輸出系統(BIOS)。
HDD126 及CD-ROM驅動器130 經由匯流排140 連接至SB/ICH104 。HDD126 及CD-ROM驅動器130 可使用(例如)一體式驅動電子器件(IDE)或串列高級技術附接(SATA)介面。超級I/O(SIO)器件136 可連接至SB/ICH 104。
一作業系統執行於處理單元106 上。該作業系統協調並提供圖1中之資料處理系統100 內之各個組件的控制。作為用戶端,該作業系統可為諸如MicrosoftWindowsXP(Microsoft及Windows為Microsoft公司在美國、其他國家或該等兩者的商標)之市售作業系統。諸如JavaTM 程式設計系統之物件導向程式設計系統可結合作業系統來執行,且自執行於資料處理系統100上之JavaTM 程式或應用程式而向作業系統提供調用(Java為Sun Microsystems公司在美國、其他國家或該等兩者的商標)。
作為伺服器,資料處理系統100 可為(例如)執行高級交互執行(AIX)作業系統或LINUX作業系統之IBMeServerTM pSeries電腦系統(eServer、pSeries及AIX為International Business Machines公司在美國、其他國家或該等兩者的商標,而LINUX為Linus Torvalds在美國、其他國家或該等兩者的商標)。資料處理系統100 可為在處理單元106 中包括複數個處理器之對稱多處理器(SMP)系統。或者,可使用單一處理器系統。
用於作業系統、物件導向程式設計系統及應用程式或程式之指令位於諸如HDD126 之儲存器件上,且可被載入主記憶體108 中用於由處理單元106 執行。本發明之說明性實施例之處理可由處理單元106 使用電腦可用程式碼來執行,該電腦可用程式碼可位於諸如主記憶體108 、ROM124 之記憶體中,或位於(例如)一或多個周邊器件126130 中。
圖1 中所示之匯流排系統(諸如匯流排138 或匯流排140 )可包含一或多個匯流排。當然,可使用任何類型之通信組構或架構來實施匯流排系統,該通信組構或架構提供附接至該組構或架構之不同組件或器件之間的資料轉移。通信單元(諸如,圖1 之數據機122 或網路配接器112 )可包括用以傳輸並接收資料之一或多個器件。記憶體可為(例如)主記憶體108 、ROM124 或諸如在圖1 之NB/MCH102 中發現的快取記憶體。
一般熟習此項技術者應瞭解,圖1 中之硬體可視實施例而改變。可除圖1 中所描繪之硬體之外或替換圖1 中所描繪之硬體而使用其他內部硬體或周邊器件(諸如快閃記憶 體、等效非揮發性記憶體或光碟驅動器及其類似物)。又,可在不脫離本發明之精神及範疇之情況下將說明性實施例之處理應用於不同於先前提及之SMP系統的多處理器資料處理系統。
此外,資料處理系統100 可採用若干不同資料處理系統中之任一者之形式,包括用戶端計算器件、伺服器計算器件、平板電腦、膝上型電腦、電話或其他通信器件、個人數位助理(PDA)或其類似物。在一些說明性實例中,資料處理系統100 可為攜帶型計算器件,該攜帶型計算器件組態有快閃記憶體以提供用以儲存(例如)作業系統檔案及/或使用者產生之資料的非揮發性記憶體。實質上,資料處理系統100 在無架構限制之情況下可為任何已知的或之後開發的資料處理系統。
說明性實施例使用開始及結束指令索引,並分配該等開始及結束索引以滿足在某一時間量內執行於模擬器上且可有效用於特定模擬環境(諸如線性指令模擬環境)下的特定指令預算或某數目之指令。在線性指令模擬環境下,必須以與指令之間的階段關係無關之特定次序逐個模擬指令。
圖2 描繪根據說明性實施例的識別用於代表性追蹤之收集點之指令按比例調整系統的功能區塊圖。指令按比例調整系統200 包括階段識別模組202 ,階段識別模組202 接收間隔大小204 、串連成單一追蹤之作為輸入之複數個程式追蹤206 (每一資料集一個)及分割檔案208 。資料集為用於程式執行中之一組資料。說明性實施例可使用一個資料集 或若干個資料集。程式追蹤206 中之每一者為程式之所執行指令的完整追蹤。階段識別模組202 將程式追蹤206 分成等於間隔大小204 之大小的指令之樣本或間隔。間隔大小204 可由使用者提供並被傳遞至階段識別模組202 中。間隔大小204 可具有預定大小,例如,典型間隔大小為1千萬至1億個指令。間隔大小204 應小於效能模型模擬器210 上之模擬結果的有效返回時間所要求之指令預算。返回時間較佳為一天或某個其他所要時間週期,且視效能模型中之細節及效能模型模擬器210 之速度而定。用於精確程式模擬之程式追蹤206 中所需之間隔的數目可改變。然而,模擬實驗已展示,需要通常5至15個間隔,或平均約10個間隔來代表用於許多程式之完全程式執行。因此,例如,10個間隔乘每間隔1千萬個指令提供1億個指令之總指令預算。
分割檔案208 由程式追蹤206 產生。分割檔案208 以資料集追蹤串連到一起之次序來指定程式追蹤206 中之指令的累積數目。舉例而言,對於產生1千萬個指令之第一資料集、產生3千萬個指令之第二資料集及產生2千萬個指令之第三資料集,分割檔案208 將指示:對於第一資料集,指令開始於0百萬;對於第二資料集,指令開始於1千萬;且對於第三資料集,指令開始於4千萬。若包括第四資料集,分割檔案208將指示,第四資料集之指令無關於第四資料集之大小而開始於6千萬。如上所述,程式追蹤206 經串連用於使用階段識別模組202 進行之階段識別。分割檔案208 可於稍後用以將經識別之階段分離為相對於程式追 蹤206 中之每一者中之第一指令的收集點,因為將在程式模擬器中個別地執行代表性追蹤。
階段識別模組202 使用軟體形式之叢集演算法(諸如熟知的K平均演算法),該叢集演算法發現程式追蹤206 之間隔之間的相似性並將該等間隔分組為獨立階段清單(程式之每一階段一個),接著在標籤檔案212 中列出該等獨立階段清單。標籤檔案212 列出每一階段中之間隔,相對於如由叢集演算法所確定之每一間隔代表階段之良好程度而自頂部至底部對該等間隔進行排序。標籤檔案212 中之每一階段之頂部處的間隔可稱為該階段之最具代表性的間隔,且標籤檔案212 中之每一階段之底部處的間隔可稱為該階段之最不具代表性的間隔。階段識別模組202 連同其他階段識別產生檔案214 產生標籤檔案212 。階段識別產生檔案214 亦可包括模擬點檔案216 及權重檔案218
模擬點檔案216 指按比例調整記檔案212 中之階段之頂部處的間隔,且因此為表示階段之間隔群中最具代表性的間隔。模擬點檔案216 依據由間隔大小204 所劃分之間隔之起始動態指令數目來指定間隔。權重檔案218 對於每一階段指定權重,該權重為可歸因於階段的來自完全程式執行之指令的比例。舉例而言,若程式追蹤206 中之所有指令之總和等於1億5千萬個指令,且一個特定階段具有6千萬個指令,則彼特定階段之權重為40%。效能之加權總和可針對所有階段而被獲取,且代表程式追蹤206 之執行效能。
指令計算模組220 按以下所述方式處理階段識別產生檔 案214 。對於由模擬點檔案216 指示之每一階段,指令計算模組220 使用來自權重檔案218 之對應於彼階段的權重來基於給定指令預算計算所需要的來自每一階段之指令的數目。指令計算模組220 自最具代表性的間隔開始而對於每一階段識別間隔指令起始索引及間隔指令結束索引。有可能用於每一階段之指令之數目可小於間隔大小,為間隔大小之某一倍數,或為間隔大小之倍數加間隔大小之某一分數。
若指令之數目小於完整間隔中之指令,則指令計算模組220 按比例調整來自標籤檔案212 之經排序之階段清單上的頂部元素以使其具有經捨入至某數目之指令(諸如一百萬個指令)之等於權重乘指令預算的若干個指令。舉例而言,假設指令預算為1億個指令且階段之權重為7.1%,則0.071乘1億個指令得出710萬個指令,該710萬個指令接著經捨入至7百萬個指令,其小於1千萬個指令間隔大小。指令計算模組220 將指令捨入至(例如)預定完整單位,因為可使用一百萬指令邊界上之硬體效能監視器資料或藉由某種其他方式來驗證所選間隔之效能。
指令之捨入可能引入必須解決以精確地滿足指令預算之錯誤。若用以滿足指令預算之指令之所需數目為一個以上間隔(例如,N個間隔)中之數目的倍數,則指令計算模組220 使用標籤檔案212 之經排序之階段清單來為階段選擇頂部N個最具代表性的間隔。應注意,兩個或兩個以上間隔在工作負荷之動態指令當中可或可不鄰接。
若指令之所需數目在長度上大於一個間隔但不為間隔大小之偶數倍,則指令計算模組220 按比例調整取自標籤檔案212 中之階段清單的最末間隔以實現滿足權重之要求,其可再次經捨入至最接近之一百萬個指令或其類似完整單位。舉例而言,若權重為23.4%,則需要2140萬個指令,該2140萬個指令需要來自階段清單之頂部兩個間隔,及來自第三間隔之三百萬個指令。再次,在預定完整單位為一百萬時在此實例中將最末間隔捨入至3百萬個指令。
因為捨入錯誤,所以指令之總數目必須經調整以滿足整體指令預算。指令之調整可能需要使用來自標籤檔案212 中之階段清單之額外間隔或按比例調整已選擇之間隔。在例示性實施例中,指令計算模組220 調整最末處理之階段的最末選擇之間隔中的指令之數目。
若捨入使指令之總數目小於整體指令預算,則指令計算模組220 將最末間隔增加必需量的指令。若最末間隔已含有間隔大小之指令,則指令計算模組220 順次選擇來自標籤檔案212 中之階段清單之同一階段的下一間隔,按比例調整該間隔,並將該間隔添加至清單。若階段不具有另一間隔,則選擇一先前階段且自彼階段中之最末選擇之間隔開始順次自彼階段中之一或多個間隔選取更多指令。由於整體指令預算通常較完全執行追蹤小得多,且由於將完整追蹤完全劃分為必須指派至階段之間隔,因而通常可能在某一階段中找到額外指令。
若捨入使指令之總數目大於整體指令預算,則最末處理 之階段中之間隔受到影響。指令計算模組220 減少階段中之最末處理之間隔以滿足預算。若在最末處理之間隔中無足夠指令,則自最末選擇之間隔開始並以所選間隔之階段清單次序繼續向後而通過所選間隔來選擇一或多個先前間隔以將其向後按比例調整,例如,使一或多個間隔下降並可能地將另一間隔向後按比例調整以滿足預算。此外,若仍未使足夠指令下降,則可以相同方式減少先前階段。然而,捨入錯誤通常較小且一個階段之僅一個間隔受到影響。
兩個病理性狀況存在:1)若整體指令預算大於程式追蹤206 中之指令之數目,則不存在解決辦法,代表性追蹤限於小於或等於完全執行追蹤中之指令之數目的預算,及2)若整體指令預算等於程式追蹤206 中之指令之數目,則處理將彙集並使用來自追蹤之所有階段之所有間隔,在該種狀況下,將滿足整體指令預算並將滿足權重。該等兩種狀況均不產生加速模擬時間之代表性追蹤且通常並不為所要的。
為產生代表性工作負荷,經驗證據提示,需要額外指令以暖機諸如快取記憶體及分支預測器之處理器之局部性結構。為此目的,將需要在已由指令計算模組220 選擇以代表工作負荷之間隔中之每一者前面收集可作為輸入而自使用者提供至指令按比例調整系統200 之額外指令。一旦指令計算模組220 選擇如上所述之代表性間隔,指令計算模組220 即指定間隔收集應在起始每一間隔之指令之前開始 某預定數目個指令(例如,M 個指令)。作為實例,可能需要M 等於每間隔1千萬個暖機指令。若該間隔與代表性指令追蹤中之先前選擇之間隔鄰接,則不指定任何暖機指令,因為先前間隔暖機局部性結構。若在該間隔與先前選擇之間隔的結束之間存在大於零但小於M 個指令,則指令之差異經指定為暖機指令之額外數目。
指令計算模組220 接著輸出可用以建構代表性追蹤之一組間隔收集點222 。依據每一間隔之第一暖機指令之起始點處之指令數目及待收集之指令之總數目(包括暖機指令及間隔本身)來指定間隔收集點222 。每一間隔可為完全間隔大小或經向下按比例調整以代表階段之權重。可在暖機指令及/或間隔鄰接時將兩個或兩個以上間隔收集點222 結合為一個間隔收集點222 。間隔收集點222 相對於其在以某一序列共同執行所有資料集或分離地用於每一資料集之程式上的起始指令來排序。若一次對於一個資料集收集追蹤,則間隔收集點222 必須經指定使得指令數目與當僅執行彼資料集時之動態指令數目有關。分割檔案208 用以確定所有資料集上之特定資料集之開始指令。藉由使用間隔收集點222 ,代表性追蹤收集器224 收集來自程式追蹤206 的指令之代表性追蹤226 。效能模型模擬器210 使用代表性追蹤226 來模型化處理器設計之效能。
藉由使用上述處理,自複數個程式之動態執行及其所有資料集收集一小組代表性指令。將完全執行追蹤分解為指令之間隔,基於指派至該等間隔之權重來排序、選擇並按 比例調整該等間隔以代表指令預算內之工作負荷。藉由調整一或多個間隔中之指令來校正導致總體指令欠缺或超出之捨入錯誤。基於所選間隔來指定暖機指令。經由此處理,獲取指令預算加暖機指令,其1)代表用於程式之所有資料集,2)足夠長以代表使用所需指令預算之程式執行,3)執行於基於該指令預算之合理時間量內,及4)建立等於指令預算加暖機指令之所有工作負荷之追蹤。
圖3 描繪根據說明性實施例的由階段識別模組產生之標籤檔案中之例示性階段清單。階段清單300 可由階段識別模組(諸如圖2 之階段識別模組202 )產生。階段識別模組使用軟體叢集演算法來發現程式追蹤之間隔之間的相似性並將該等間隔分組為獨立階段清單(程式之每一階段一個)。階段清單300 說明五個例示性階段,階段302-310 。階段302-310 中之每一者包括等於預定間隔大小之大小的指令之若干間隔。此實例中之預定間隔大小為1千萬個指令。在階段302-310 中存在十個總間隔,但並非所有階段302-310 中包括相同數目之間隔。
階段清單300 中之十個例示性間隔為代表完全程式執行所需要的實例間隔量。在此實例中,階段302 包括間隔312314 ,階段304 包括間隔316318 ,階段306 包括間隔320322324 ,階段308 包括間隔326 ,且階段310 包括間隔328330 。基於軟體叢集演算法相對於每一間隔代表每一階段之良好程度來排序階段清單300 。階段識別模組產生階段清單300 ,並使用階段清單300 來產生模擬點檔案、 權重檔案、標籤檔案及分割檔案。
圖4A-4D 分別說明根據說明性實施例之例示性模擬點檔案、權重檔案、具有經排序之階段清單之標籤檔案及分割檔案。模擬點檔案、權重檔案及標籤檔案可由諸如圖2 之階段識別模組202 之階段識別模組來產生。分割檔案由圖2 的經串連之程式追蹤206 中之每一者中的指令產生。圖4A 描繪代表圖2 之權重檔案218 之權重檔案402 。權重檔案402圖3 中之階段302-310 中之每一者指定權重,該權重為可歸因於階段302-310 中之每一者的來自完全程式執行之指令之比例。針對所有階段而獲取之效能之加權總和代表完全程式執行。在權重檔案402 中,階段302 具有20%之權重,階段304 具有20%之權重,階段306 具有30%之權重,階段308 具有10%之權重,且階段310 具有20%之權重。指令計算模組使用權重檔案402 來基於給定指令預算計算所需要的來自階段302-310 中之每一者的指令之數目。如上所述,有可能用於每一階段之指令之數目可小於間隔大小,為間隔大小之某一倍數,或大於一個間隔大小但加上一間隔大小之某一分數。
圖4B 描繪代表圖2 之標籤檔案212 的標籤檔案404 。標籤檔案404 以代表性之次序列出指派至圖3中之階段302-310 中之每一者的間隔。在標籤檔案404 中,階段302 包括兩個間隔,如對於圖2 之標籤檔案212 之階段清單中的階段302 所指定,間隔314 最具代表性且間隔312 最不具代表性,階段304 包括兩個間隔,間隔316 最具代表性且間隔318 最不 具代表性,階段306 包括三個間隔,間隔322 最具代表性,間隔324 次之,且間隔320 最不具代表性,階段308 僅包括間隔326 ,且階段310 包括兩個間隔,間隔328 最具代表性且間隔330 最不具代表性。
圖4C 描繪代表圖2 之模擬點檔案216 之模擬點檔案406 。模擬點檔案406 每階段指定一個間隔,該間隔為代表該階段之間隔群中最具代表性的間隔。模擬點檔案406 依據按間隔大小劃分之間隔之起始動態指令數目來指定間隔。舉例而言,若間隔大小為1千萬,則模擬點檔案406 中之間隔314 指示第一動態指令處於31.4億。在模擬點檔案406 中,對於階段302 ,指定為314 之間隔為最具代表性的間隔,對於階段304 ,間隔316 為最具代表性的間隔,對於階段306 ,間隔322 為最具代表性的間隔,對於階段308 ,間隔326 為最具代表性的間隔,且對於階段310 ,間隔328 為最具代表性的間隔。
圖4D 描繪代表圖2 之分割檔案208 之分割檔案408 。分割檔案408 指定與圖2 之串連程式追蹤206 中的每一資料集相關聯之動態指令之起始點。提供分割檔案408 ,因為對於程式分離地執行每一資料集以收集代表性程式追蹤。在分割檔案408 中,資料集410 上之執行開始於串連程式追蹤中之指令0之後,資料集412 開始於串連程式追蹤中之1千萬個指令處,資料集414 開始於串連程式追蹤中之4千萬個指令處,且資料集416 開始於串連程式追蹤中之7千萬個指令處。
通常,一次對於一個資料集收集代表性追蹤,因此間隔收集點經指定使得指令數目與僅用於彼資料集之動態指令相關。因此使用分割檔案408 來確定用於所有資料集上之特定資料集的開始指令。藉由使用圖2中之間隔收集點222 及用於來自分割檔案408 之特定資料集之開始指令,圖2 中之代表性追蹤收集器224 可接著收集來自彼資料集之程式追蹤之指令的代表性追蹤。
藉由使用圖3圖4A-4D 中所說明之清單及檔案,自一程式之動態執行及其所有資料集收集一小組代表性指令。將完全執行追蹤分解為指令之間隔,基於指派至該等間隔之權重來排序、選擇,並按比例調整該等間隔以代表指令預算內之工作負荷。
圖5 描繪根據說明性實施例的在按比例調整指令間隔以識別用於代表性指令追蹤之收集點時執行之操作的流程圖。當操作開始時,指令按比例調整系統(諸如圖2 之指令按比例調整系統200 )接收由複數個完全程式追蹤之串連所產生之程式追蹤、間隔大小及分割檔案(步驟502 )。分割檔案指定對於用以產生原始追蹤之每一資料集所存在之指令之數目。階段識別模組(諸如圖2 之階段識別模組202 )將程式追蹤劃分為等於所接收間隔大小之大小的指令間隔(步驟504 )。階段識別模組對完全程式追蹤執行階段偵測以發現程式追蹤之間隔之間的相似性(步驟506 )。階段識別模組使用軟體演算法(諸如K平均叢集演算法)來產生標籤檔案中之經排序之階段清單,該標籤檔案將間隔分組為獨立階 段,程式追蹤之每一階段一個獨立階段(步驟508 )。相對於每一間隔使用一度量(諸如K平均演算法中之歐幾裏德距離(Euclidian distance))代表階段之良好程度來對標籤檔案中之每一階段清單進行排序。
階段識別模組亦產生模擬點檔案及權重檔案(步驟510 )。模擬點檔案每階段指定一個間隔,該間隔為代表該階段之間隔群中最具代表性的間隔。權重檔案指定用於每一階段之權重,該權重為可歸因於該階段的來自完全程式執行之指令之比例。
指令計算模組(諸如圖2 之指令計算模組220 )對於模擬點檔案中之每一階段使用對應於權重檔案中之彼階段之權重而基於給定指令預算來計算所需要的來自每一階段之指令之數目(步驟512 )。指令計算模組以階段清單中之最具代表性的間隔開始而對於每一階段識別間隔指令起始索引及間隔指令結束索引(步驟514 )。由於有可能每一階段之指令之數目可小於間隔大小,為間隔大小之某一倍數,或大於一個間隔大小但加上一間隔大小之某一分數,因而指令計算模組判定在每一階段之階段清單中是否存在用以滿足每一階段之指令預算之足夠指令(步驟516 )。由於基於應用於總指令預算之由階段識別模組產生之權重檔案來確定個別階段指令預算,因而若該等個別階段指令預算中之一或多者在步驟516 處未被滿足,則指令計算模組將錯誤發送至管理員(步驟518 ),其後操作結束。不可能給出發送錯誤之事件,因為指令預算通常動態地小於現代程式追蹤中之指令 之數目。
在步驟516 處,若所有個別階段指令預算均被滿足,則指令計算模組判定是否所有個別階段指令預算共同滿足整體指令預算(步驟520 )。在步驟520 處,若整體指令預算未被滿足,則指令計算模組藉由以上述方式中之一者改變來自一或多個階段之間隔中之一或多者的間隔指令起始索引而添加或減去指令直至指令之總數目與整體指令預算匹配(步驟522 )。指令計算模組接著藉由添加或減去指令而判定整體指令預算是否被滿足(步驟524 )。在步驟524 處,若整體指令預算可能未被滿足,則指令計算模組將錯誤發送至管理員(步驟518 ),其後操作技術。添加或減去指令以滿足整體指令預算可改變個別階段指令預算,但此通常為視預算計算中之捨入函數之精細度而定的較小效應。
若在步驟520 處整體指令預算被滿足或若在步驟524 處添加或減去指令滿足整體指令預算,則指令計算模組判定是否需要暖機指令(步驟526 ),若在步驟526 處需要暖機指令,則指令計算模組在起始每一間隔之指令之前改變間隔指令起始索引以開始某數目之指令M (步驟528 ),操作繼續至步驟530 。如上所述,若間隔與動態指令追蹤中之先前間隔鄰接,則不指定任何暖機指令,因為先前間隔暖機局部性結構。若在該間隔與先前間隔的結束之間存在大於零但小於M 個指令,則指令之差異經指定為暖機指令之數目。
自步驟526528 ,指令計算模組與用以分出每資料集之 指令之分割檔案一起輸出一組間隔收集點,該等間隔收集點可用以建構代表性追蹤(步驟530 )。依據間隔指令起始索引及間隔指令結束索引來指定間隔收集點。藉由使用間隔收集點,代表性追蹤收集器收集來自每一資料集之程式追蹤的指令之代表性追蹤(步驟532 )。效能模型模擬器使用該等代表性追蹤來模型化處理器設計之效能(步驟534 ),其後操作結束。
圖6A圖6B 描繪根據說明性實施例的在計算指令之數目以滿足階段指令預算及整體指令預算時執行之操作的流程圖。下列操作由一指令計算模組(諸如圖2 之指令計算模組220 )執行。當操作開始時,指令計算模組選取第一階段及/或下一階段用於指令計算(步驟602 )。對於由模擬點檔案指示之階段,指令計算模組使用對應於權重檔案中之該階段之權重以基於給定整體指令預算來計算所需要的階段指令之數目,從而產生階段指令預算(步驟604 )。指令計算模組判定階段清單中之頂部(最具代表性)間隔中的指令之數目是否等於階段指令預算(步驟606 )。
在步驟606 處,若頂部間隔中之指令之數目等於階段指令預算,則指令計算模組選擇階段之頂部間隔(步驟608 )。在步驟606處,若頂部間隔中之指令之數目不等於階段指令預算,則指令計算模組判定頂部間隔中之指令之數目是否大於階段指令預算(步驟610 )。在步驟610 處,若頂部間隔中之指令之數目大於階段指令預算,則指令計算模組按比例調整階段之頂部間隔以滿足階段指令預算(步驟612 )。 在步驟610 處,若頂部間隔中之指令之數目小於階段指令預算,則指令計算模組判定階段中之如由標籤檔案中之其階段清單確定的頂部間隔之一間隔數目N是否精確地滿足階段指令預算(步驟614 )。
在步驟614 處,若頂部間隔之間隔數目N精確地滿足階段指令預算,則指令計算模組選擇階段之頂部N個間隔(步驟616 )。在步驟614 處,若頂部間隔之間隔數目N不精確地滿足階段指令預算,則指令計算模組判定如由標籤檔案中之間隔次序確定的頂部N個間隔中之指令之數目是否大於階段指令預算(步驟618 )。在步驟618 處,若頂部N個間隔中之指令之數目大於階段指令預算,則指令計算模組按比例調整階段清單中之頂部N個間隔以滿足階段指令預算(步驟620 )。在步驟618 處,若頂部N個間隔中之指令之數目小於階段指令預算,則指令計算模組將錯誤發送至管理員(步驟622 ),其後操作結束。錯誤經發送以指示使用階段中之所有間隔仍未能滿足階段指令預算。
一旦在步驟608612616620 中之一者中已滿足階段指令預算,則指令計算模組判定是否存在針對其來計算指令之任何額外階段(步驟624 )。在步驟624 處,若存在針對其來計算指令之額外階段,則操作返回至步驟602 。在步驟624 處,若不存在針對其來計算指令之額外階段,則指令計算模組判定所有階段指令預算之總和是否等於整體指令預算(步驟626 )。在步驟626 處,若所有階段指令預算之總和等於整體指令預算,則指令計算模組判定是否應包括 暖機指令(步驟628 )。在步驟628 處,若不應包括暖機指令,則指令計算模組將間隔收集點輸出至代表性追蹤收集器(步驟630 ),其後操作結束。在步驟628 處,若應包括暖機指令,則指令計算模組將間隔之起始索引改變指定數目之指令或將其改變至先前間隔之結束(步驟632 ),其後操作繼續至步驟630
返回至步驟626 ,若所有階段指令預算之總和不等於整體指令預算,則指令計算模組判定所有階段指令預算之總和是否小於整體指令預算(步驟634 )。在步驟634 處,若所有階段指令預算之總和小於整體指令預算,則指令計算模組如上所述以最末處理之階段開始並移動至階段中之其他間隔或其他階段來增加指令之數目以滿足整體指令預算(步驟636 ),其後操作繼續至步驟628 。在步驟634 處,若所有階段指令預算之總和大於整體指令預算,則指令計算模組以最末或最不具代表性的階段開始減少指令之數目以滿足整體指令預算(步驟638 ),其後操作繼續至步驟628
由指令計算模組輸出之間隔收集點之集合接著由代表性追蹤收集器結合分割檔案來使用以收集來自程式追蹤之指令之代表性追蹤。效能模型模擬器使用該等代表性追蹤來模型化處理器設計之效能。
應瞭解,說明性實施例可採用完全硬體實施例之形式、完全軟體實施例之形式或同時含有硬體元件與軟體元件之實施例之形式。在一例示性實施例中,說明性實施例之機構以軟體實施,該軟體包括(但不限於)韌體、常駐軟體、 微程式碼等。
此外,說明性實施例可採用可自電腦可用或電腦可讀媒體存取之電腦程式產品的形式,該電腦可用或電腦可讀媒體提供由電腦或任何指令執行系統使用或結合電腦或任何指令執行系統使用的程式碼。出於此描述之目的,電腦可用或電腦可讀媒體可為可含有、儲存、傳達、傳播或傳送由指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件使用之程式的任何裝置。
該媒體可為電子、磁性、光學、電磁、紅外或半導體系統(或裝置或器件)或傳播媒體。電腦可讀媒體之實例包括半導體或固態記憶體、磁帶、可移除式電腦磁碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、硬質磁碟及光碟。光碟之當前實例包括緊密光碟-唯讀記憶體(CD-ROM)、緊密光碟-讀/寫(CD-R/W)及DVD。
適合於儲存及/或執行程式碼之資料處理系統將包括直接或經由系統匯流排間接地耦接至記憶體元件之至少一處理器。該等記憶體元件可包括在程式碼之實際執行期間使用之局部記憶體、大容量儲存器及提供至少部分程式碼之臨時儲存以減少必須在執行期間自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O器件(包括(但不限於)鍵盤、顯示器、指標器件等)可直接或經由介入I/O控制器耦接至系統。網路配接器亦可耦接至系統以使資料處理系統能夠變得經由介入私用或公用網路耦接至其他資料處理系統或遠端印表機 或儲存器件。數據機、電纜數據機及乙太網路卡僅為當前可用類型之網路適配器中的少數幾種。
已為說明及描述之目的呈現了本發明之描述,且本發明之描述不欲為窮舉的或限於所揭示形式之本發明。許多修改及變化對於一般熟習此項技術者將為顯而易見的。實施例經選擇及描述以便最佳地解釋本發明之原理、實際應用,並使一般熟習此項技術者能夠針對具有如適合於預期之特定用途之各種修改的各個實施例來理解本發明。
100‧‧‧資料處理系統
102‧‧‧北橋與記憶體控制器集線器(NB/MCH)
104‧‧‧南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)
106‧‧‧處理單元
108‧‧‧主記憶體
110‧‧‧圖形處理器
112‧‧‧區域網路(LAN)配接器
116‧‧‧音訊配接器
120‧‧‧鍵盤與滑鼠配接器
122‧‧‧數據機
124‧‧‧唯讀記憶體(ROM)
126‧‧‧硬碟驅動器(HDD)
130‧‧‧CD-ROM驅動器
132‧‧‧通用串列匯流排(USB)埠及其他通信埠
134‧‧‧PCI/PCIe器件
136‧‧‧超級I/O(SIO)器件
138‧‧‧匯流排
140‧‧‧匯流排
200‧‧‧指令按比例調整系統
202‧‧‧階段識別模組
204‧‧‧間隔大小
206‧‧‧程式追蹤
208‧‧‧分割檔案
210‧‧‧效能模型模擬器
212‧‧‧標籤檔案
214‧‧‧階段識別產生檔案
216‧‧‧模擬點檔案
218‧‧‧權重檔案
220‧‧‧指令計算模組
222‧‧‧間隔收集點
224‧‧‧代表性追蹤收集器
226‧‧‧代表性追蹤
300‧‧‧階段清單
302‧‧‧階段
304‧‧‧階段
306‧‧‧階段
308‧‧‧階段
310‧‧‧階段
312‧‧‧間隔
314‧‧‧間隔
316‧‧‧間隔
318‧‧‧間隔
320‧‧‧間隔
322‧‧‧間隔
324‧‧‧間隔
326‧‧‧間隔
328‧‧‧間隔
330‧‧‧間隔
402‧‧‧權重檔案
404‧‧‧標籤檔案
406‧‧‧模擬點檔案
408‧‧‧分割檔案
410‧‧‧資料集
412‧‧‧資料集
414‧‧‧資料集
416‧‧‧資料集
圖1為其中可實施說明性實施例之態樣的例示性資料處理系統之方塊圖;圖2描繪根據說明性實施例的識別用於代表性追蹤之收集點之指令按比例調整系統的功能區塊圖;圖3描繪根據說明性實施例的由階段識別模組產生之標籤檔案中之例示性階段清單;圖4A-4D說明根據說明性實施例的例示性模擬點檔案、權重檔案、具有經排序之階段清單之標籤檔案及分割檔案;圖5描繪根據說明性實施例的在按比例調整指令間隔以識別用於代表性指令追蹤之收集點時執行之操作的流程圖;及圖6A及圖6B描繪根據說明性實施例的在計算指令之數目以滿足階段指令預算及整體指令預算時執行之操作的流程圖。
100‧‧‧資料處理系統
102‧‧‧北橋與記憶體控制器集線器(NB/MCH)
104‧‧‧南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)
106‧‧‧處理單元
108‧‧‧主記憶體
110‧‧‧圖形處理器
112‧‧‧區域網路(LAN)配接器
116‧‧‧音訊配接器
120‧‧‧鍵盤與滑鼠配接器
122‧‧‧數據機
124‧‧‧唯讀記憶體(ROM)
126‧‧‧硬碟驅動器(HDD)
130‧‧‧CD-ROM驅動器
132‧‧‧通用串列匯流排(USB)埠及其他通信埠
134‧‧‧PCI/PCIe器件
136‧‧‧超級I/O(SIO)器件
138‧‧‧匯流排
140‧‧‧匯流排

Claims (20)

  1. 一種在一包含至少一硬體實現處理器之資料處理系統中於複數指令中識別指令以用於獲取複數個指令執行之代表性追蹤之方法,該方法包含:由該資料處理系統計算該複數個指令之一組階段中之每一階段之一階段指令預算,每一階段包含來自該複數個指令之一指令子集,其中:該階段指令預算係基於一與每一階段相關聯之權重及一整體指令預算,該整體指令預算界定用於追蹤該複數個指令執行之一最大指令數目,且一相關聯階段之階段指令預算界定用於追蹤與該相關聯階段相關聯之指令子集執行之一最大指令數目,且與每一階段相關聯之權重係歸因於該階段的來自完全程式執行之指令之比例;由該資料處理系統識別用於每一階段中之一組間隔內之指令的一起始索引及一結束索引以滿足該階段之該階段指令預算,藉此形成一組間隔索引;由該資料處理系統判定該組間隔索引內之該等指令是否滿足該整體指令預算;及回應於滿足該整體指令預算,由該資料處理系統輸出該組間隔索引作為用於該等代表性追蹤之收集點。
  2. 如請求項1之方法,其進一步包含:判定一組暖機指令是否應與該等指令一起包括於該整 體指令預算中;及回應於應包括該等暖機指令之指示,將該起始索引、或該組間隔中一先前間隔之結束之一者調整預定數目個指令。
  3. 如請求項1之方法,其中識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引包含:判定該組間隔內之一最具代表性的間隔中之若干個指令是否等於該階段指令預算;及回應於該最具代表性的間隔內之該等指令等於該階段指令預算,將該最具代表性的間隔之一開始識別為該起始索引,且將該最具代表性的間隔之一結束識別為該結束索引。
  4. 如請求項1之方法,其中識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引包含:判定該組間隔內之一最具代表性的間隔中之若干個指令是否大於該階段指令預算;及回應於該最具代表性的間隔內之該等指令大於該階段指令預算,將該最具代表性的間隔之一開始識別為該起始索引,且將該最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引。
  5. 如請求項1之方法,其中識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引包含:判定該組間隔內之一個以上最具代表性的間隔中之若 干個指令是否等於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令等於該階段指令預算,將該一個以上最具代表性的間隔之一開始識別為該起始索引,且將該一個以上最具代表性的間隔之一結束識別為該結束索引。
  6. 如請求項1之方法,其中識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引包含:判定該組間隔內之一個以上最具代表性的間隔中之若干個指令是否大於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令大於該階段指令預算,將該一個以上最具代表性的間隔之一開始識別為該起始索引,且將該一個以上最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引。
  7. 如請求項1之方法,其進一步包含:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之總和是否小於該整體指令預算;及回應於該組間隔索引內之該等指令之該總和小於該整體指令預算,增加該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
  8. 如請求項1之方法,其進一步包含:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之該總和是否大於該整體指令預算;及回應於該組間隔索引內之該等指令之該總和大於該整 體指令預算,減少該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
  9. 一種包含具有儲存其上之一電腦可讀程式之一電腦可用儲存媒體之電腦程式產品,其中該電腦可讀程式當執行於一資料處理系統中時使該資料處理系統執行下列操作:計算複數個指令之一組階段中之每一階段之一階段指令預算,每一階段包含來自該複數個指令之一指令子集,其中:該階段指令預算係基於一與每一階段相關聯之權重及一整體指令預算,該整體指令預算界定用於追蹤該複數個指令執行之一最大指令數目,且一相關聯階段之階段指令預算界定用於追蹤與該相關聯階段相關聯之指令子集執行之一最大指令數目,且與每一階段相關聯之權重係歸因於該階段的來自完全程式執行之指令之比例;識別用於每一階段中之一組間隔內之指令的一起始索引及一結束索引以滿足該階段之該階段指令預算,藉此形成一組間隔索引;判定該組間隔索引內之該等指令是否滿足該整體指令預算;及回應於滿足該整體指令預算,輸出該組間隔索引作為用於代表性追蹤之收集點。
  10. 如請求項9之電腦程式產品,其中該電腦可讀程式進一步使該資料處理系統執行下列操作:判定一組暖機指令是否應與該等指令一起包括於該整體指令預算中;及回應於應包括該等暖機指令之指示,將該起始索引、或該組間隔中一先前間隔之結束之一者調整預定數目個指令。
  11. 如請求項9之電腦程式產品,其中用以識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引之該電腦可讀程式進一步使該資料處理系統執行下列操作:判定該組間隔內之一最具代表性的間隔中之若干個指令是否等於該階段指令預算;及回應於該最具代表性的間隔內之該等指令等於該階段指令預算,將該最具代表性的間隔之一開始識別為該起始索引,且將該最具代表性的間隔之一結束識別為該結束索引;判定該組間隔內之該最具代表性的間隔中之該若干個指令是否大於該階段指令預算;及回應於該最具代表性的間隔內之該等指令大於該階段指令預算,將該最具代表性的間隔之該開始識別為該起始索引,且將該最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引; 判定該組間隔內之一個以上最具代表性的間隔中之該若干個指令是否等於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令等於該階段指令預算,將該一個以上最具代表性的間隔之該開始識別為該起始索引,且將該一個以上最具代表性的間隔之一結束識別為該結束索引。
  12. 如請求項9之電腦程式產品,其中用以識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引之該電腦可讀程式進一步使該資料處理系統執行下列操作:判定該組間隔內之一個以上最具代表性的間隔中之若干個指令是否大於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令大於該階段指令預算,將該一個以上最具代表性的間隔之一開始識別為該起始索引,且將該一個以上最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引。
  13. 如請求項9之電腦程式產品,其中該電腦可讀程式進一步使該資料處理系統執行下列操作:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之總和是否小於該整體指令預算;及回應於該組間隔索引內之該等指令之該總和小於該整體指令預算,增加該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
  14. 如請求項9之電腦程式產品,其中該電腦可讀程式進一步使該資料處理系統執行下列操作:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之該總和是否大於該整體指令預算;及回應於該組間隔索引內之該等指令之該總和大於該整體指令預算,減少該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
  15. 一種系統,其包含:一處理器;及一耦接至該處理器之記憶體,其中該記憶體包含當由該處理器執行時使該處理器執行下列操作之指令:計算複數個指令之一組階段中之每一階段之一階段指令預算,每一階段包含來自該複數個指令之一指令子集,其中:該階段指令預算係基於一與每一階段相關聯之權重及一整體指令預算,該整體指令預算界定用於追蹤該複數個指令執行之一最大指令數目,且一相關聯階段之階段指令預算界定用於追蹤與該相關聯階段相關聯之指令子集執行之一最大指令數目,且與每一階段相關聯之權重係歸因於該階段的來自完全程式執行之指令之比例;識別用於每一階段中之一組間隔內之指令的一起始索引及一結束索引以滿足該階段之該階段指令預算,藉此 形成一組間隔索引;判定該組間隔索引內之該等指令是否滿足該整體指令預算;及回應於滿足該整體指令預算,輸出該組間隔索引作為用於代表性追蹤之收集點。
  16. 如請求項15之系統,其中該等指令進一步使該處理器執行下列操作:判定一組暖機指令是否應與該等指令一起包括於該整體指令預算中;及回應於應包括該等暖機指令之指示,將該起始索引、或該組間隔中一先前間隔之結束之一者調整預定數目個指令。
  17. 如請求項15之系統,其中用以識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引之該等指令進一步使該處理器執行下列操作:判定該組間隔內之一最具代表性的間隔中之若干個指令是否等於該階段指令預算;及回應於該最具代表性的間隔內之該等指令等於該階段指令預算,將該最具代表性的間隔之一開始識別為該起始索引,且將該最具代表性的間隔之一結束識別為該結束索引;判定該組間隔內之該最具代表性的間隔中之該若干個指令是否大於該階段指令預算;回應於該最具代表性的間隔內之該等指令大於該階段 指令預算,將該最具代表性的間隔之該開始識別為該起始索引,且將該最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引;判定該組間隔內之一個以上最具代表性的間隔中之若干個指令是否等於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令等於該階段指令預算,將該一個以上最具代表性的間隔之該開始識別為該起始索引,且將該一個以上最具代表性的間隔之一結束識別為該結束索引。
  18. 如請求項15之系統,其中用以識別用於每一階段中之該組間隔內之指令的該起始索引及該結束索引之該等指令進一步使該處理器執行下列操作:判定該組間隔內之一個以上最具代表性的間隔中之若干個指令是否大於該階段指令預算;及回應於該一個以上最具代表性的間隔內之該等指令大於該階段指令預算,將該一個以上最具代表性的間隔之一開始識別為該起始索引,且將該一個以上最具代表性的間隔按比例調整至該若干個指令等於該階段指令預算之一點,其中該點為該結束索引。
  19. 如請求項15之系統,其中該等指令進一步使該處理器執行下列操作:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之總和是否小於該整體指令預算;及 回應於該組間隔索引內之該等指令之該總和小於該整體指令預算,增加該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
  20. 如請求項15之系統,其中該等指令進一步使該處理器執行下列操作:回應於未能滿足該整體指令預算,判定該組間隔索引內之該等指令之該總和是否大於該整體指令預算;及回應於該組間隔索引內之該等指令之該總和大於該整體指令預算,減少該組階段中之一個階段之一個間隔內的該等指令以滿足該指令預算。
TW097120603A 2007-06-05 2008-06-03 按比例調整指令間隔以識別用於代表性指令追蹤的收集點 TWI433035B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/758,031 US8091073B2 (en) 2007-06-05 2007-06-05 Scaling instruction intervals to identify collection points for representative instruction traces

Publications (2)

Publication Number Publication Date
TW200910208A TW200910208A (en) 2009-03-01
TWI433035B true TWI433035B (zh) 2014-04-01

Family

ID=40096953

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097120603A TWI433035B (zh) 2007-06-05 2008-06-03 按比例調整指令間隔以識別用於代表性指令追蹤的收集點

Country Status (4)

Country Link
US (1) US8091073B2 (zh)
JP (1) JP5208585B2 (zh)
CN (1) CN101320349B (zh)
TW (1) TWI433035B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844928B2 (en) * 2008-01-11 2010-11-30 International Business Machines Corporation Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
US8245084B2 (en) * 2008-01-11 2012-08-14 International Business Machines Corporation Two-level representative workload phase detection
GB2481384B (en) * 2010-06-21 2018-10-10 Advanced Risc Mach Ltd Key allocation when tracing data processing systems
US8615742B2 (en) 2010-11-16 2013-12-24 International Business Machines Corporation Autonomic hotspot profiling using paired performance sampling
JP2012173870A (ja) * 2011-02-18 2012-09-10 Toshiba Corp 半導体装置及びメモリ保護方法
US9032375B2 (en) 2011-04-27 2015-05-12 International Business Machines Corporation Performance bottleneck identification tool
US8799719B2 (en) 2011-05-19 2014-08-05 International Business Machines Corporation On demand tracing of application code execution
US20130246106A1 (en) * 2012-03-15 2013-09-19 Microsoft Corporation Hierarchical budget process orchestration
US8892958B2 (en) * 2012-06-15 2014-11-18 International Business Machines Corporation Dynamic hardware trace supporting multiphase operations
US8739091B1 (en) 2012-11-19 2014-05-27 International Business Machines Corporation Techniques for segmenting of hardware trace and verification of individual trace segments
GB2528098B (en) 2014-07-09 2018-11-21 Jaguar Land Rover Ltd Vehicle camera system
CN104572472B (zh) * 2015-01-28 2018-03-06 中国农业银行股份有限公司 一种程序执行顺序诊断方法与***
US10747645B2 (en) * 2018-04-27 2020-08-18 Microsoft Technology Licensing, Llc Selectively tracing portions of computer process execution
US10740219B2 (en) * 2018-04-27 2020-08-11 Workman Nydegger Selectively tracing portions of computer process execution
CN110673878B (zh) * 2019-09-11 2023-03-31 上海高性能集成电路设计中心 一种基于指令集模拟器的指令信息查询及执行调试方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078338A (ja) * 2002-08-12 2004-03-11 Fujitsu Ltd コンピュータ性能評価方法及び装置
US7802236B2 (en) * 2002-09-09 2010-09-21 The Regents Of The University Of California Method and apparatus for identifying similar regions of a program's execution
US7512617B2 (en) * 2004-12-29 2009-03-31 Sap Aktiengesellschaft Interval tree for identifying intervals that intersect with a query interval

Also Published As

Publication number Publication date
CN101320349A (zh) 2008-12-10
CN101320349B (zh) 2011-12-28
US20080307203A1 (en) 2008-12-11
TW200910208A (en) 2009-03-01
JP2008305402A (ja) 2008-12-18
US8091073B2 (en) 2012-01-03
JP5208585B2 (ja) 2013-06-12

Similar Documents

Publication Publication Date Title
TWI433035B (zh) 按比例調整指令間隔以識別用於代表性指令追蹤的收集點
CN107613022B (zh) 内容推送方法、装置及计算机设备
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
JP5756478B2 (ja) データ・センタにおける電力消費の最適化
JP7040319B2 (ja) 運用管理装置、移動先推奨方法及び移動先推奨プログラム
JP7011162B2 (ja) 性能調整プログラム、および性能調整方法
US20180144272A1 (en) Parallel processing apparatus and method of estimating power consumption of jobs
US8510546B2 (en) Run-ahead approximated computations
KR102141083B1 (ko) 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체
WO2021011120A1 (en) Executing large artificial intelligence models on memory-constrained devices
EP3999959A1 (en) Dynamic multi-layer execution for artificial intelligence modeling
Ouarnoughi et al. Integrating i/os in cloudsim for performance and energy estimation
US10552399B2 (en) Predicting index fragmentation caused by database statements
Nagavaram et al. A cloud-based dynamic workflow for mass spectrometry data analysis
CN109800138B (zh) 一种cpu测试方法、电子装置及存储介质
US20160253591A1 (en) Method and apparatus for managing performance of database
JP2020129180A (ja) ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
Liu et al. An optimized speculative execution strategy based on local data prediction in a heterogeneous hadoop environment
Han et al. Clap: Component-level approximate processing for low tail latency and high result accuracy in cloud online services
CN116974700B (zh) 实现资源动态均衡的方法、***、设备及存储介质
JP7287499B2 (ja) ジョブ予測プログラム、システム、及び方法
US12038822B2 (en) Tenant database placement in oversubscribed database-as-a-service cluster
US11914603B2 (en) Data layout model generation system
US20220261518A1 (en) Method of and system for operating storage area network simulator
JP7200577B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム。

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees