專利名稱:用于基于關鍵路徑的分析的性能監(jiān)視體系結構的增強的制作方法
技術領域:
本發(fā)明涉及計算機系統(tǒng)領域,具體來說涉及微體系結構的性能監(jiān)視和調整。
背景技術:
性能分析是表征、調試和調整微體系結構設計、查找和修正硬件和軟件中的性能 瓶頸以及定位可避免的性能問題的基礎。隨著計算機業(yè)的發(fā)展,分析微體系結構并基于該 分析來對微體系結構進行更改的能力變得更加復雜且重要。除了提供盡可能最佳的平臺外,常常通過調整應用程序以使之在該平臺上以最佳 表現(xiàn)運行來實現(xiàn)最佳性能。在識別性能瓶頸、找出如何通過更好的代碼生成來避免它們以 及確認性能的提升等方面都有大量投入。性能監(jiān)視器是該分析中的一個關鍵組件。性能監(jiān) 視比硅前(pre-silicon)模擬提供更大量的性能數(shù)據,并且已經被用于調整微體系結構設 計以提升諸如存儲轉發(fā)等方面的性能。在推動硅更改時,準確地知道性能問題發(fā)生的頻度 和從改進微體系結構的該部分獲得的多大獲益是必不可少的要素。在過去,串行執(zhí)行機器的性能監(jiān)視相對是直接的,因為跟蹤串行性能瓶頸遠比 檢測并行亂序執(zhí)行期間的性能極限容易得多。典型性能分析按如下方式將工作負荷的 CPI (每個指令的時鐘數(shù))分解成各個組成部分1)硬件中的計數(shù)性能事件,2)估算每個事 件對程序的關鍵路徑的相對貢獻,以及3)將對工作負荷的性能瓶頸產生貢獻的各個組成 部分組合成總細分。估算單個微體系結構原因的每個實例成本對于亂序且高度推測的機器 來說是困難的,其中有要涵蓋許多停止成本的大部分的足夠推測且流水線并行性。目前, 已經采用專用方法來估算事件的每個實例影響,并且這些估算的精確度和變化常常是未知 的。例如,圖1圖示單問題機器中指令101-107的提取、執(zhí)行和引退(retirement)的 示例。指令102具有分支誤預測110,它使指令103的提取延遲,并顯著地在指令102之后推 出(pushout)指令103的引退。指令104具有第一級高速緩存未命中120,它進一步地推出 指令105的引退。但是指令104的引退推出125被指令105的第二級高速緩存未命中130 矮化(dwarfed),它具有如此長的等待時間,以致于指令106中的分支誤預測135對它的引 退時間沒有任何影響。正如圖1所列舉的,不管能夠實現(xiàn)亂序高度推測并行執(zhí)行的處理器 中有全面的性能監(jiān)視,即使在單個問題機器中,測量引退推出時也存在無法理解的復雜性。
附圖以舉例方式而無意作為限制圖示了本發(fā)明。圖1圖示單個問題機器中多個操作的提取、執(zhí)行和引退的實施例。
4
圖2圖示一種處理器的實施例,該處理器包括第一性能監(jiān)視模塊和第二微體系結 構調整模塊。圖3圖示圖2的特定實施例。圖4圖示一種處理器的實施例,該處理器包括用于以靜態(tài)或動態(tài)方式重新編譯軟 件的模塊。圖5圖示一種系統(tǒng)的實施例,該系統(tǒng)包括具有用于監(jiān)視處理器的性能和調整處理 器的微體系結構的模塊的處理器。圖6a圖示用于監(jiān)視性能并基于性能來調整微處理器的流程圖的實施例。圖6b圖示圖6a的特定實施例。圖6c圖示用于監(jiān)視性能并調整微處理器的另一個實施例。圖7圖示用于在特定事件發(fā)生時測量引退推出的實施例。
具體實施例方式在下文描述中,提出了例如特定體系結構、這些體系結構內的功能部件、調整機制 和系統(tǒng)配置的大量特定細節(jié)以便提供對本發(fā)明的透徹理解。但是,對于本領域技術人員顯 見的是,無需采用這些特定細節(jié)也能實施本發(fā)明。在一些其他情況中,沒有對例如公知的邏 輯設計、軟件編譯器、軟件重新配置技術和處理器去功能部件(processor defeaturing)技 術等的公知組件或方法進行詳細描述,以便避免不必要地妨礙了對本發(fā)明的理解。件能監(jiān)視圖2圖示一種處理器205的實施例,該處理器205具有性能監(jiān)視模塊210和調整 模塊215。處理器205可以是用于執(zhí)行代碼和/或對數(shù)據進行操作的任何部件。作為特定 實例,處理器205能夠實現(xiàn)并行執(zhí)行。在另一個實施例中,處理器205能夠實現(xiàn)亂序執(zhí)行。 處理器205還可以實現(xiàn)分支預測和推測執(zhí)行,以及實現(xiàn)其他公知的處理單元和方法。處理器250中圖示的其他處理單元包括存儲器子系統(tǒng)220、前端225、亂序引擎 230和執(zhí)行單元235。這些模塊、單元或功能塊的每一個可以為處理器205提供前述的功能。 在一個實施例中,存儲器子系統(tǒng)包括較高級的高速緩存和用于與外部設備實現(xiàn)接口的總線 接口,前端225包括投機邏輯和提取邏輯,亂序引擎230包括用于將指令重新排序的調度邏 輯,以及執(zhí)行單元235包括以串行和并行執(zhí)行的浮點和整數(shù)執(zhí)行單元。模塊210和模塊215能以硬件、軟件、固件或其任何組合來實現(xiàn)。通常,在不同的 實施例中,模塊的邊界是不同的,并且一起來實現(xiàn)以及單獨地實現(xiàn)功能。在一個示例中,在 一個模塊中實現(xiàn)性能監(jiān)視和調整。在圖2圖示的實施例中,分別示出模塊210和模塊215 ; 但是模塊210和模塊215可以是由其他圖示的單元220-235執(zhí)行的軟件。模塊210用于監(jiān)視處理器205的性能。在一個實施例中,通過確定和/或導出至 關鍵路徑的每個實例成本來實現(xiàn)性能監(jiān)視。關鍵路徑包括在將增加發(fā)生、任務或事件的等 待時間的情況下將會對完成操作、指令、指令集或程序所要耗費的時間產生貢獻的任何此 類發(fā)生、任務和/或事件的任何路徑或序列。在圖形學上來說,關鍵路徑有時可以稱為經過 特定機器上運行的程序中的數(shù)據、控制和資源相關性的圖形的路徑,其中該相關圖形中的 任何弧的延長將導致該程序的執(zhí)行等待時間的增加。因此,換言之,事件/功能部件對關鍵路徑的每個實例貢獻是事件(例如第二級高速緩存未命中)或微體系結構功能部件(例如分支預測單元)對完成任務或程序中所經歷 的等待時間的貢獻。實際上,事件或功能部件的貢獻在不同的應用程序域間有顯著差異。因 此,可以為特定的用戶級應用程序(例如操作系統(tǒng))來確定事件或微體系結構功能部件成 本/貢獻。下文將參考圖3來更詳細地論述模塊215。事件包括處理器中引起等待時間的任何操作、發(fā)生或動作。微處理器中的常 見事件的一些示例包括低級高速緩存未命中、次級高速緩存未命中、高級高速緩存未 命中、高速緩存訪問、高速緩存窺探、分支誤預測、從存儲器提取、引退時鎖定(lock at retirement)、硬件預提取、前端存儲、高速緩存分割(cache split)、存儲轉發(fā)問題、資源停 止、回寫、指令解碼、地址轉換、對轉換緩沖器的訪問、整型運算數(shù)執(zhí)行、浮點運算數(shù)執(zhí)行、寄 存器的重命名、指令的調度、寄存器讀取以及寄存器寫入。微體系結構功能部件包括與前述的事件關聯(lián)的邏輯、功能單元、資源或其他功能 部件。微體系結構功能部件的示例包括高速緩存、指令高速緩存、數(shù)據高速緩存、分支目標 陣列、虛擬存儲器表、寄存器文件、轉換表、后備緩沖器、分支預測單元、硬件預提取器、執(zhí)行 單元、亂序引擎、分配器單元、寄存器重命名邏輯、總線接口單元、提取單元、解碼單元、體系 結構狀態(tài)寄存器、執(zhí)行單元、浮點執(zhí)行單元、整型執(zhí)行單元、ALU以及微處理器的其他常見功 能部件。每個指令的時鐘數(shù)性能的主要指標之一是每個指令的時鐘數(shù)(CPI)。CPI可以分成多個組成部分,以 便可以確定可能歸因于多個因素/事件的每一個因素/事件的周期百分比的指示。如上 所述,這些因素可以包括諸如未命中高速緩存和進入DRAM引起的等待時間、分支誤預測處 罰、引退機制(即為了鎖定)引起的流水線延遲等的事件。另一些因素的示例包括與這些 事件關聯(lián)的微體系結構功能部件,例如未命中的高速緩存、用于分支預測的分支目標陣列 中的未命中、將總線接口用于進入DRAM以及使用狀態(tài)機來實現(xiàn)鎖定。通常,通過將因素發(fā)生的次數(shù)乘以它以周期計的影響,然后除以總周期數(shù)來確定 該因素的相對貢獻。雖然對于標量非流水線非推測機器來說能夠精確地提供此類細分,但 是對于超標量流水線亂序且高度推測機器來說難以給出精確的周期統(tǒng)計。工作負荷中通常 存在足夠的并行性可供此類機器用于通過執(zhí)行有用的工作來隱藏至少一部分停止。因此, 該停止的局部影響對程序的總關鍵路徑產生的貢獻可能遠比理論上每個實例成本對程序 的總關鍵路徑產生的貢獻小。意外的是,如果局部延遲導致較佳的總體調度,則局部停止甚 至可能對程序的總執(zhí)行時間有正面影響。分析每個實例的貢獻/成本可以采用多種不同的方式來確定每個實例事件成本,即事件或微體系結構功能部 件對關鍵路徑的貢獻,這些方式包括(1)分析性估算;(2)來自性能監(jiān)視器的持續(xù)時間計 數(shù);(3)由硬件性能監(jiān)視器和由模擬器測量的引退推出;以及⑷按微基準測試、模擬和硅 去功能部件測量的因事件數(shù)量的改變導致總執(zhí)行時間中的改變。分析性估算在第一實施例中,在理論上確定每個實例成本,即功能部件的貢獻。理論貢獻可以 包括功能部件操作或事件發(fā)生的經驗知識以及體系結構模擬。這常常通過理解微體系結 構、并且通常集中在執(zhí)行階段而非引退來導出。最簡單形式的分析性估算表征局部停止成
6本,與如何通過以并行方式執(zhí)行其他操作(執(zhí)行階段或指令)可獲得的并行性來涵蓋這些
停止無關。持續(xù)時間計數(shù)在另一個實施例中,性能監(jiān)視器通過持續(xù)時間計數(shù)來確定功能部件的貢獻。一些 性能監(jiān)視器事件被定義為對感興趣的事項發(fā)生的每個周期計數(shù)。這得到持續(xù)時間計數(shù),而 不是實例計數(shù)。這兩類計數(shù)是狀態(tài)機(例如頁步行處理程序(page walk handler)、鎖定狀 態(tài)機)處于活動的周期以及隊列中有一個或多個項(例如總線的未完成高速緩存未命中的 隊列)的周期。這些示例測量執(zhí)行階段中的時間,而除非執(zhí)行處于引退狀態(tài)(此情況對應 于鎖定狀態(tài)機),否則不一定測量引退推出。此形式的功能部件在本領域中可用于評估基準 測試專用成本。引退推出引退推出在確定事件和功能部件在局部規(guī)模上的貢獻以及將該測量外推到全局 規(guī)模上是有用的。引退推出在一個操作在期望的時間或期望的周期期間不引退時發(fā)生。例 如,對于順序的指令(或微操作)對,如果第二個指令在第一個指令之后沒有盡可能快地引 退(通常在相同的周期內,或如果引退資源受限,則在下一個周期內),則考慮推出該引退。 引退推出提供向后看、對關鍵路徑的貢獻的“區(qū)域性的”(而非單純局部的)測量。就引退 推出知道某些時間點之前已引退的所有操作的重疊的意義上來看,它是向后看的。如果局 部停止成本為50的兩個操作按相差一個周期開始,則第二個操作的引退推出至多為1,而 非50。引退推出的實際測量可能因開始測量該推出的具體時間而有所不同。在一個實例 中,測量從事件的發(fā)生開始。在另一個實施例中,推出的測量從指令或操作應該已被引退的 時間開始。在再一個實施例中,僅通過對引退推出發(fā)生的次數(shù)計數(shù)來測量引退推出,下文參 考順序操作的引退推出來予以論述。有多種方式用于通過引退推出來測量/導出每個實例 的貢獻。為了說明,下文論述引退推出、順序操作和標記的兩種方法。這兩種機制使用戶能夠通過利用不同閾值重復運行來創(chuàng)建引退推出的分布直方 圖。順序操作的引退推出能夠創(chuàng)建程序中所有操作的引退延遲的分布圖。此外,引退推出 的標記能夠創(chuàng)建個別/特定事件(例如分支誤預測的個別貢獻)的延遲分布圖。順序操作的引退推出,即慢引退限定對于此機制,對其中引退連續(xù)操作或微操作之間的延遲大于用戶指定的閾值的順 序操作實例進行計數(shù)。因此,測量連續(xù)操作的推出并報告等待時間超過預定義閾值的推出 的數(shù)量。在一個實施例中,使用專用計數(shù)器來測量慢引退限定,該專用計數(shù)器對沒有引退 來自線程的的指令的周期計數(shù)。只要第一個操作引退,就將該計數(shù)器初始化為用戶定義的 值。如果計數(shù)器因具體設計而對于特定的第二指令下溢或上溢,則將該第二指令視為具有 慢引退,即引退推出。作為采用遞減計數(shù)器的設計的一個示例,如果用戶希望對25個周期中推出多少 指令引退計數(shù),則該計數(shù)器設為25的預定義值。如果它下溢,則認為推出第二指令的引退。 在遞增計數(shù)器實現(xiàn)中,可以將用戶定義的值初始化為0或負值。例如,將計數(shù)器初始化為0, 并遞增計數(shù)到25的閾值。如果計數(shù)器上溢,則存在引退推出。在備選方式中,可以將遞增計數(shù)器初始化為-25,并遞增計數(shù)到0,這在確定計數(shù)器上溢時簡化了邏輯比較。引退推出標記,即引退推出分布描繪與慢引退限定非常相似,引退推出標記限定具有超過某個閾值的引退推出的指令 或操作。但是,在此機制中,慢引退限定是對感興趣的指令或操作的許多其他限定的其中之 一。其他限定可以包括針對該指令或操作發(fā)生的特定事件,例如第二級高速緩存未命中。在 邏輯上將這些限定組合,并且如果指令或操作滿足指定的限定標準,則對該指令或操作計 數(shù)。注意,可以對限定器(qualifier)/事件進行邏輯運算或將它們組合,這在指定的機器 狀態(tài)寄存器中是可以進行用戶定義的。在另一個實施例中,基于一個或多個特定事件的排除來標記操作。如上所述,并行 執(zhí)行可以掩蔽特定事件的實際影響。作為特定的示例,對第三級高速緩存的未命中可能矮 化對第二級高速緩存的未命中的影響。為了隔離對第二級高速緩存的未命中的影響,如果 特定操作導致對第二級高速緩存的未命中而未導致第三級高速緩存的未命中,則可以標記 該特定操作。換言之,從測量中排除對導致第三級高速緩存未命中的操作的測量。因此,該 標記包括在特定事件發(fā)生且至少第二事件未發(fā)生時選擇操作。直接參考圖7,其中圖示使用標記機制來測量引退推出的實施例。在流程705中, 當特定事件發(fā)生和/或特定事件排除時標記操作。該操作將在能夠實現(xiàn)并行執(zhí)行的處理器 中執(zhí)行。但是,該處理器還能夠實現(xiàn)串行執(zhí)行、推測執(zhí)行和亂序執(zhí)行。特定事件可以是上文論述的微處理器中的任何事件。在一個實施例中,事件是引 退事件時的基于事件的精確采樣(precise event based sampling) (PEBS)。在PEBS中, 將操作(微操作或指令)標示(標記)為已遇到感興趣的事件,例如高速緩存未命中。當 該操作引退時,引退邏輯注意到它被標記并執(zhí)行特殊的動作。將指令的地址和體系結構狀 態(tài)(例如標志和體系結構寄存器)保存在存儲緩沖器中。在此情況中,將推出等待時間與 其他信息一起記錄。程序執(zhí)行可以在那些特殊動作之后繼續(xù),直到記錄此類信息的存儲緩 沖器(幾乎)滿為止。當存儲緩沖器滿(或高于用戶指定的水位標)時,導致性能監(jiān)視中 斷,由此以信號告知用戶應該讀取該存儲緩沖器??梢杂捎布械挠邢逘顟B(tài)機、通過微代碼 中的指令或二者的組合來管理對PEBS執(zhí)行的動作。導致操作的標記的一些事件的特定示例包括高速緩存未命中、高速緩存訪問、高 速緩存窺探、分支誤預測、引退時鎖定、硬件預提取、加載、存儲、回寫以及對轉換緩沖器的 訪問。標記包括選擇操作來用于測量。注意還可以將這些事件選為排除的目標,即如果這 些事件的其中之一也與上文論述的特定事件同時發(fā)生,則可以不標記該操作。在流程710中標記或選擇操作之后,確定操作的引退推出。如上所述,確定引退推 出可以是對引退中的延遲的實際測量,以及由于該特定事件而簡單地將該操作作為一個延 遲的引退。在目標是實際測量引退的實施例中,計數(shù)器(例如用于慢引退限定的計數(shù)器)中 的閾值模數(shù)設為0,以使引退時的最終值為等于引退推出的正數(shù)。在一個實例中,初始化第 一計數(shù)器并基于第一計數(shù)器的初始化和存儲寄存器的使用來確定引退推出。在此實例中, 將第一計數(shù)器的狀態(tài)復制到另一個機器狀態(tài)寄存器。當引退時,凍結該存儲寄存器而不對 其更新。因此,該存儲寄存器在軟件讀出它之前是穩(wěn)定不變的。注意,測量推出是參考引退時的測量來引述的。但是,還可以在亂序機器中的其他
8有序阻塞(in-order choke)點處測量推出,例如提取存儲器操作、將存儲器操作解碼、發(fā)出 存儲器操作、將存儲器操作分配到存儲器排序緩沖器中以及存儲器操作的全局可見性??倛?zhí)行時間局部停止成本可能被并行執(zhí)行的其他工作部分或完全地涵蓋。捕捉區(qū)域性延遲的 引退推出也可能被測量引退推出時仍在進行中的工作或其他停止部分或完全地涵蓋。如上 文論述的,圖1中圖示了涵蓋引退推出的一種方式。給定操作的停止對程序的關鍵路徑產 生的貢獻的最終測量是由于該停止原因而發(fā)生的執(zhí)行等待時間上的變化。對全局關鍵路徑的平均增量貢獻的一個指示是測量程序的整個執(zhí)行或長時間追 蹤(即長時間追蹤執(zhí)行監(jiān)視)。這種方法涵蓋了流水線中任何位置發(fā)生的對關鍵路徑的 貢獻,并將其他并行性可以涵蓋局部延遲的因素納入考慮。通過更改事件實例的數(shù)量(這 更改了執(zhí)行時間)并計算將執(zhí)行時間上的變化除以事件數(shù)量上的變化來導出增量貢獻。 例如,如果增加高速緩存大小將高速緩存未命中的次數(shù)從100降低到90,并將執(zhí)行時間從 2000降低到1600,則增量貢獻是每次未命中(2000-1600)/(100-90) = 40周期??梢圆捎枚喾N方式來實現(xiàn)此技術。第一,可以構造兩個版本的微基準測試,一個采 用事件而另一個沒有。第二,可以更改模擬器配置以引入或消除事件。在兩種配置中對一 個或多個程序運行該模擬,并對每種情況記錄事件的數(shù)量和總執(zhí)行時間。最后,一些產品支 持硅去功能部件,例如收縮分支目標陣列的大小或更改策略。例如,這可以用于影響分支預 測率。如上所述,可以通過如下方式來進行確定微體系結構功能部件的貢獻,即事件成 本(1)分析性估算;(2)來自性能監(jiān)視器的持續(xù)時間計數(shù);(3)由硬件性能監(jiān)視器和由模 擬器測量的引退推出;以及(4)通過微基準測試、模擬和硅去功能部件測量的總執(zhí)行時間。 但是,性能監(jiān)視和確定對關鍵路徑的貢獻不限于上述方法的其中之一的正交實現(xiàn),相反可 以利用任何組合來分析硅功能部件的事件對關鍵路徑的貢獻。特定事件的每個實例成本的示例為了評估多種事件的每個實例成本,采用了分析每個實例貢獻部分中描述的一些 技術。當然,存在多種對追蹤的全面CPI細分的貢獻項(contributor)。選擇了四個重要的 貢獻項來演示每種描述的技術的效用。但是,對于每個事件,使用所有這些技術不總是可能 的或方便的。例如,性能監(jiān)視持續(xù)時間計數(shù)對于關注的事件可能不可用。相似地,通過調整 模擬器中的大小或策略來擾亂執(zhí)行可能不會影響事件發(fā)生的次數(shù)或更改特定追蹤中的運 行時間。表1示出基于模擬執(zhí)行的擾亂對這四個原因中的每個原因的估算成本的匯總,并 提供基于總體模擬結果的影響中的變化的指示。停止原因值(中間值)標準設備在 σ內測量方法分支誤預測253585%禁用間接分支 預測器Ll數(shù)據高速緩存9692%使Ll高速緩存未命中大小力口倍L2數(shù)據高速緩存25715874%使L2高速緩存未命中大小力口倍表1 經驗每個實例成本分支誤預測分支誤預測是應用程序降速的常見原因。它們迫使處理器流水線重新啟動并拋棄 推測工作。分支預測器隨著時間推移變得越來越準確。然而,隨著更深且更寬的流水線,誤 預測可能導致完成有用工作的機會大量丟失。
分析模擬執(zhí)行HW引退推出模擬的引退推 出微基準測試3125尖峰位于36、 41、 473634表2 分支誤預測的每個實例事件成本分支誤預測成本的分析性測量是從正常地檢測到分支誤預測起,執(zhí)行并返回到正 常地從追蹤高速緩存提取指令的延遲(31)的周期數(shù)。分析視角測量機器前端中發(fā)生的實 際延遲。如果評估分支條件時因為資源爭用或因為未解決的數(shù)據依賴(尤其是在該依賴 是對經受高速緩存未命中的加載的情況中)而存在任何延遲,則會增加該延遲。出于這些 原因,如微基準測試、HW引退推出和模擬的引退推出中可見到的,引退推出延遲可能在三十 多到四十多。表2中對應于HW引退推出示出三個值。這里使用的微基準測試具有含條件 分支且無存儲器引用的循環(huán)體。具有36個周期延遲的分支比具有35個周期延遲的分支多 28%,具有40個周期延遲的分支比具有39個周期延遲的分支多27%,以及具有41個周期 的延遲的分支比具有40個周期延遲的分支多43 %。微基準測試接近地與分析模型匹配,因 為它們包含不多的并行工作,無需復雜的清除。但是,如圖1所示,在指令106具有分支誤預測的情況下,如果機器的后端中已經 有較早的引退推出,則前端中的延遲可能不會有影響。而且,較遲的高速緩存未命中可能因 遠遠更大的延遲而掩蓋該分支對關鍵路徑的貢獻。其一個原因是,對總關鍵路徑的平均貢 獻遠低于引退推出。已由禁用間接分支預測器得到對關鍵路徑的模擬的總貢獻,由此它就 可以僅預測最后一個目標。而且,在真實應用中,路徑外(off-path)代碼常??梢詧?zhí)行有 用的數(shù)據預提取和DTLB查詢,這減少誤預測的影響。最后,將一個誤預測的處理與第二誤 預測的處理重疊可以減少對總關鍵路徑的平均貢獻。從此論述來看,顯然對關鍵路徑的實際平均貢獻可能與具體上下文高度相關,并 且引退推出可能高估每個實例成本??梢詫⒗?70%的縮放系數(shù)應用于冊測量的引退 推出以得到中等每個實例成本。注意此事件成本可能與特定微體系結構以及甚至相同微體
10系結構系列內的實現(xiàn)高度相關。第一級(Li)高速緩存未命中第一級高速緩存未命中是常發(fā)生的。亂序處理器設計為查找指令流中的獨立工作 以使處理器保持繁忙,同時處理第二級高速緩存未命中。因此,局部Ll未命中成本(例如 引退推出)中僅小部分對總關鍵路徑產生貢獻。
權利要求
一種方法,包括在特定事件發(fā)生時標記操作,所述操作要在能夠實現(xiàn)并行執(zhí)行的處理器中執(zhí)行;以及確定所述操作的引退推出。
2.如權利要求1所述的方法,其特征在于,所述標記操作包括在所述特定事件發(fā)生時 選擇所述操作以進行采樣。
3.如權利要求1所述的方法,其特征在于,所述標記操作包括在所述特定事件發(fā)生且 第二事件未發(fā)生時選擇所述操作以進行采樣。
4.如權利要求2所述的方法,其特征在于,所述特定事件選自高速緩存未命中、高速 緩存訪問、高速緩存窺探、分支誤預測、引退時鎖定、硬件預提取、加載、存儲、回寫以及對轉 換緩沖器的訪問。
5.如權利要求2所述的方法,其特征在于,所述特定事件是引退事件時的基于事件的 精確采樣。
6.如權利要求2所述的方法,其特征在于,所述確定所述操作的引退推出延遲包括當選擇所述操作以進行采樣時初始化第一計數(shù)器;基于所述第一計數(shù)器的初始化和存儲寄存器的使用來確定所述引退推出。
7.如權利要求6所述的方法,其特征在于,所述第一計數(shù)器的初始化包括將所述第一 計數(shù)器設置為用戶定義的值,以及其中存儲寄存器的使用包括在利用所述第一計數(shù)器測量 所述引退推出時將所述第一計數(shù)器的狀態(tài)復制到所述存儲寄存器中,以便被讀出來確定所 述引退推出。
8.一種設備,包括微處理器,所述微處理器包括第一模塊,所述第一模塊用于為用戶級應用程序確定微體系結構功能部件的貢獻;以及第二模塊,所述第二模塊用于在要執(zhí)行所述用戶級應用程序時,至少基于所述微體系 結構功能部件的貢獻來調整所述微體系結構功能部件。
9.如權利要求8所述的設備,其特征在于,為用戶級應用程序確定微體系結構功能部 件的貢獻包括在啟用所述微體系結構功能部件的情況下執(zhí)行所述用戶級應用程序;在禁用所述微體系結構功能部件的情況下執(zhí)行所述用戶級應用程序;以及基于啟用所述功能部件的情況下所述用戶級應用程序的執(zhí)行與禁用所述功能部件的 情況下所述用戶級應用程序的執(zhí)行的比較,為所述用戶級應用程序確定所述微體系結構功 能部件的貢獻。
10.如權利要求8所述的設備,其特征在于,調整所述微體系結構功能部件包括更改所 述微體系結構功能部件的大小,所述微體系結構功能部件選自指令高速緩存、數(shù)據高速緩 存、分支目標陣列、虛擬存儲器表、以及寄存器文件。
11.如權利要求8所述的設備,其特征在于,調整所述微體系結構功能部件包括禁用所 述微體系結構功能部件,所述微體系結構功能部件選自指令高速緩存、數(shù)據高速緩存、轉 換表、后備緩沖器、分支預測單元、硬件預提取器以及執(zhí)行單元。
12.如權利要求8所述的設備,其特征在于,調整所述微體系結構功能部件還基于所述微體系結構功能部件所耗用的功率的量。
13.如權利要求11所述的設備,其特征在于,所述第二模塊包括 具有與所述微體系結構功能部件關聯(lián)的字段的寄存器,其中所述字段在被設置時將禁 用所述微體系結構功能部件;在所述功能部件被禁用時能增強所述功能部件的性能貢獻的情況下,用于設置所述寄 存器中與所述微體系結構功能部件關聯(lián)的字段的模塊。
全文摘要
本文描述一種用于監(jiān)視微體系結構的性能和基于監(jiān)視的性能來調整微體系結構的方法和設備。通過模擬、分析性原因查找、引退推出測量、總執(zhí)行時間和確定每個實例事件成本的其他方法來監(jiān)視性能。基于每個實例事件成本,調整微體系結構和/或執(zhí)行軟件以增強性能。
文檔編號G06F11/34GK101976218SQ201010553898
公開日2011年2月16日 申請日期2006年6月1日 優(yōu)先權日2005年6月1日
發(fā)明者C·紐伯恩 申請人:英特爾公司