TWI724083B - 用於使用可重載的效能計數器監控處理器之效能的處理器、方法及系統晶片 - Google Patents
用於使用可重載的效能計數器監控處理器之效能的處理器、方法及系統晶片 Download PDFInfo
- Publication number
- TWI724083B TWI724083B TW105142791A TW105142791A TWI724083B TW I724083 B TWI724083 B TW I724083B TW 105142791 A TW105142791 A TW 105142791A TW 105142791 A TW105142791 A TW 105142791A TW I724083 B TWI724083 B TW I724083B
- Authority
- TW
- Taiwan
- Prior art keywords
- reload
- performance counter
- control
- processor
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
依據文中所揭示的實施例,提供一種監視處理器管理事件的效能之系統和方法。一種處理器包括一或多個暫存器用以儲存軟體可見控制位元;第一效能計數器,用以在該處理器中發生第一類型的事件時增加從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時從第二起始值增加到第二限值。該處理器亦包括控制邏輯,用以接收該第一效能計數器達到該第一限值的指示,存取重載致能位元,且鑑於該重載致能位元發送控制信號。該處理器亦包括重載邏輯,回應於收到來自該控制邏輯的控制信號,將該第二效能計數器重設到第二重載值。
Description
本公開的實施例一般涉及包括用於監視處理器的效能的邏輯電路的處理器,更具體地,涉及使用可重載的效能計數器來監視處理器的效能。
效能分析是特性量測、除錯和調整微架構設計,查找和修復硬體和軟體中的效能瓶頸以及定位可避免的效能問題。隨著電腦工業的發展,分析微架構的效能且基於該分析對微架構進行改變的能力變得更加複雜和重要。
38‧‧‧指令提取器
70‧‧‧記憶體單元
100‧‧‧系統架構
102‧‧‧處理器
104‧‧‧匯流排/介面
106‧‧‧EBS模組
108‧‧‧EBS處置器
110‧‧‧記憶體
112‧‧‧效能監視中斷(PMI)組件
114a‧‧‧第一ES控制
114b‧‧‧第二ES控制
114‧‧‧ES控制
116a‧‧‧第一效能計數器
116b‧‧‧第二效能計數器
116c‧‧‧效能計數器
116‧‧‧效能計數器
118a‧‧‧重載使能控制
118b‧‧‧第二重載使能控制
118‧‧‧重載使能控制
120a‧‧‧第一EBS使能控制
120b‧‧‧第二EBS使能控制
120‧‧‧EBS使能控制
122‧‧‧中斷使能控制
124‧‧‧非精確的基於事件的採樣(NPEBS)組件
126‧‧‧精確的基於事件的採樣(PEBS)組件
200‧‧‧佈局
202‧‧‧佈局
204‧‧‧佈局
206‧‧‧佈局
208‧‧‧佈局
210‧‧‧佈局
110a至110n‧‧‧記憶體儲存
122a至122n‧‧‧中斷使能控制
300‧‧‧方法
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
310‧‧‧方塊
312‧‧‧方塊
314‧‧‧判定方塊
316‧‧‧方塊
317‧‧‧方塊
318‧‧‧方塊
320‧‧‧架構
330a‧‧‧第一效能計數器
330b‧‧‧第二效能計數器
330c‧‧‧效能計數器
330d‧‧‧效能計數器
330‧‧‧效能計數器
340‧‧‧重載使能控制
340a‧‧‧重載使能控制
340b‧‧‧重載使能控制
340c‧‧‧重載使能控制
340d‧‧‧重載使能控制
342a‧‧‧重載致能位元
342‧‧‧重載致能位元
344a‧‧‧重載致能位元
346a‧‧‧重載致能位元
348a‧‧‧重載致能位元
350a‧‧‧重載值計數器
350b‧‧‧重載值計數器
350c‧‧‧重載值計數器
350d‧‧‧重載值計數器
350‧‧‧重載值計數器
370‧‧‧架構
380‧‧‧控制邏輯
385‧‧‧暫存器
390‧‧‧重載邏輯
400‧‧‧處理器管路
402‧‧‧獲取級
403‧‧‧事件的採樣(EBS)模組
404‧‧‧長度解碼級
406‧‧‧解碼級
408‧‧‧分配級
410‧‧‧重命名級
412‧‧‧排程級
414‧‧‧暫存器讀取/記憶體讀取級
416‧‧‧執行級
418‧‧‧回寫/記憶體寫入級
422‧‧‧異常處理級
424‧‧‧提交級
430‧‧‧前端單元
432‧‧‧分支預測單元
434‧‧‧指令快取單元
436‧‧‧指令轉譯後備暫存器
438‧‧‧指令獲取單元
440‧‧‧解碼單元
450‧‧‧執行引擎單元
452‧‧‧重命名/分配器單元
454‧‧‧止用單元
456‧‧‧排程器單元
458‧‧‧實體暫存器檔案單元
460‧‧‧執行群集
462‧‧‧執行單元
464‧‧‧記憶體存取單元
470‧‧‧記憶體單元
472‧‧‧資料TLB單元
474‧‧‧資料快取單元
476‧‧‧級別2(L2)快取單元
490‧‧‧處理器核心
500‧‧‧處理器
501‧‧‧前端
502‧‧‧快速排程器
503‧‧‧無序執行引擎
504‧‧‧慢/通用浮點排程器
505‧‧‧EBS模組
506‧‧‧簡單浮點排程器
508‧‧‧暫存器檔案
510‧‧‧暫存器檔案
511‧‧‧執行塊
512‧‧‧位址生成單元
514‧‧‧AGU
516‧‧‧快速ALU
518‧‧‧快速ALU
520‧‧‧慢ALU
522‧‧‧浮點ALU
524‧‧‧浮點執行塊
526‧‧‧指令預取器
528‧‧‧解碼器
530‧‧‧追踪快取
532‧‧‧微代碼ROM
534‧‧‧uop隊列
554‧‧‧止用單元
600‧‧‧系統
610‧‧‧處理器
615‧‧‧附加處理器
620‧‧‧圖形記憶體控制器集線器(GMCH)
640‧‧‧記憶體
645‧‧‧顯示器
650‧‧‧輸入/輸出(I/O)控制器集線器(ICH)
660‧‧‧外部圖形設備
670‧‧‧周邊設備
695‧‧‧前側匯流排
700‧‧‧SoC
702A-N‧‧‧核心
706‧‧‧快取單元
708‧‧‧積體圖形邏輯
710‧‧‧系統代理單元
712‧‧‧互連單元
714‧‧‧積體記憶體控制器單元
716‧‧‧匯流排控制器單元
718‧‧‧媒體處理器
720‧‧‧應用處理器
724‧‧‧圖像處理器
726‧‧‧音頻處理器
728‧‧‧視頻處理器
730‧‧‧靜態隨機存取記憶體(SRAM)單元
732‧‧‧直接記憶體存取(DMA)單元
740‧‧‧顯示單元
800‧‧‧系統晶片(SoC)
806‧‧‧核心
807‧‧‧核心
808‧‧‧快取控制
809‧‧‧匯流排介面單元
810‧‧‧L2快取
811‧‧‧互連
815‧‧‧GPU
820‧‧‧視頻編解碼器
825‧‧‧視頻介面
830‧‧‧訂戶身份模組(SIM)
835‧‧‧引導ROM
840‧‧‧SDRAM控制器
845‧‧‧快閃控制器
850‧‧‧周邊控制器
855‧‧‧功率控制器
860‧‧‧DRAM
865‧‧‧快閃
870‧‧‧藍牙模組
875‧‧‧3G資料機
880‧‧‧GPS
885‧‧‧Wi-Fi
900‧‧‧系統
914‧‧‧I/O設備
916‧‧‧第一匯流排
918‧‧‧匯流排橋
920‧‧‧第二匯流排
922‧‧‧鍵盤和/或滑鼠
924‧‧‧音頻I/O
927‧‧‧通信設備
928‧‧‧儲存單元
930‧‧‧指令/代碼和資料
932‧‧‧記憶體
934‧‧‧記憶體
938‧‧‧高效能圖形電路
939‧‧‧高效能圖形介面
950‧‧‧點到點互連
952‧‧‧P-P介面
954‧‧‧P-P介面
970‧‧‧第一處理器
972‧‧‧記憶體控制器單元
976‧‧‧匯流排控制器單元點對點(P-P)介面
978‧‧‧匯流排控制器單元點對點(P-P)介面
980‧‧‧第二處理器
982‧‧‧記憶體控制器單元
986‧‧‧P-P介面
988‧‧‧P-P介面
990‧‧‧晶片組
994‧‧‧點對點介面電路
996‧‧‧介面
998‧‧‧點對點介面電路
1000‧‧‧系統
1014‧‧‧I/O設備
1015‧‧‧傳統I/O設備
1032‧‧‧記憶體
1034‧‧‧記憶體
1050‧‧‧點對點互連
1052‧‧‧點對點互連
1054‧‧‧點對點互連
1070‧‧‧處理器
1072‧‧‧積體記憶體和I/O控制邏輯(“CL”)
1076‧‧‧P-P介面
1078‧‧‧點對點(PP)介面
1080‧‧‧處理器
1082‧‧‧積體記憶體和I/O控制邏輯(“CL”)
1086‧‧‧P-P介面
1088‧‧‧點對點(PP)介面
1090‧‧‧晶片組
1094‧‧‧P-P介面
1096‧‧‧介面
1098‧‧‧P-P介面
1100‧‧‧方塊圖
1110‧‧‧處理器
1120‧‧‧音頻子系統
1130‧‧‧顯示子系統
1132‧‧‧顯示介面
1140‧‧‧I/O控制器
1150‧‧‧電源管理
1160‧‧‧記憶體子系統
1170‧‧‧連接
1172‧‧‧蜂巢式連接
1174‧‧‧無線連接
1180‧‧‧周邊連接
1182‧‧‧周邊設備
1184‧‧‧周邊設備
1200‧‧‧計算系統
1202‧‧‧處理裝置
1204‧‧‧主記憶體
1206‧‧‧靜態記憶體
1208‧‧‧網路介面裝置
1210‧‧‧視頻顯示單元
1212‧‧‧字母數字輸入裝置
1214‧‧‧游標控制裝置
1216‧‧‧信號發生裝置
1218‧‧‧資料儲存裝置
1220‧‧‧網路
1222‧‧‧圖形處理單元
1224‧‧‧電腦可讀儲存媒體
1226‧‧‧處理邏輯
1226‧‧‧儲存軟體
1228‧‧‧視頻處理單元
1230‧‧‧匯流排
1232‧‧‧音頻處理單元
將從下面給出的詳細描述和本公開的各種實施例的附圖中更全面地理解本公開。然而,圖式不應被認為是將本公開限制於具體實施例,而是僅用於解釋和理解。
圖1是根據本公開的一實施例的處理器的系統架構的
方塊圖。
圖2A示出根據本公開的一實施例的用於模型特定暫存器的位元欄的佈局。
圖2B示出根據本公開的一實施例的用於模型特定暫存器的位元欄的佈局。
圖2C示出根據本公開的一實施例的用於模型特定暫存器的位元欄的佈局。
圖3A是根據本公開的一實施例的用於監視處理器管理事件的效能的方法的流程圖。
圖3B是根據本公開的一實施例的用於監視處理器的效能以管理事件的方法的流程圖。
圖3C是示出根據本發明的一實施例的包括用於監視效能的邏輯電路的架構的方塊圖。
圖3D是示出根據本發明的一實施例的包括用於監視效能的邏輯電路的架構的方塊圖。
圖4A是示出根據所描述的實施例的示例性順序管線和示例性暫存器重命名,無序發布/執行管線的方塊圖。
圖4B是示出根據所描述的實施例的有序架構核心的示例性實施例和要包括在處理器中的示例性暫存器重命名,無序發布/執行架構核心的方塊圖。
圖5是示出根據一實施例的處理器的方塊圖。
圖6示出了根據一實施例的計算機系統的方塊圖。
圖7是根據本公開的實施例的系統晶片(SoC)的方塊圖。
圖8是片上系統晶片(SoC)設計的實施例的方塊圖。
圖9示出了根據一實施例的計算機系統的方塊圖。
圖10示出了根據一實施例的計算機系統的方塊圖。
圖11示出了平板計算設備,智慧型電話或其中使用觸控螢幕界面連接器的其它移動設備的實施例的方塊圖。
圖12示出了計算機系統的示例形式的機器的示意圖,其中可以執行用於使機器執行本文所討論的方法中的任何一或多個的一組指令。
用於監視處理器的效能的常規技術包括將效能計數器編程為在監視的事件的指定次數發生之後掛起中斷和/或記錄關於處理器的當前狀態的資訊。這允許記錄關於處理器中每個指定數量的事件正在發生什麼的資訊(例如,採樣)。例如,知道從記錄的資訊每100,000個週期執行什麼代碼將給出處理器時間在哪里花費的想法。這不給出確定事件的速率的直接機制。以前,為了從事件的速率確定差的效能,需要採取至少兩種類型的事件的許多樣本,然後使用軟體來分析何時一個事件頻繁發生而另一個事件沒有發生。例如,效能計數器可以採用退出的兩個指令和周期的許多樣本,然後可以使用軟體來確定每個週期中何時退出非常少的指令以確定差的效能。在另一個示例中,效能計數器可以對動態隨機存取記憶體(DRAM)和周期採取寫操作的許多採樣,然後可以使用軟體來確定每個週期
對DRAM的寫入數量是否高於預期。例如,這可以用於確定惡意軟體攻擊的可能性。該常規方法涉及進行許多採樣(例如,記錄、中斷等等)和使用軟體,這兩者都減慢處理器的效能並增加開銷。
本文公開了用於使用可重載的效能計數器監視處理器的效能的實施例。在一些實施例中,處理器計數事件並儲存關於事件的架構元資料或基於兩個效能計數器的比率產生中斷。或者,可以使用多於兩個效能計數器以其它方式確定效能。
處理器的操作可以包括影響系統效能的多個事件的發生。可以監視多個事件的發生以理解如何提高效能。在一實施例中,事件包括處理器中的任何操作、發生或動作(例如,快取未命中)。在另一實施例中,事件可以是監視處理器中的任何操作、發生或動作(例如,信號變高,導致效能計數器遞增,因為發生快取未命中)。在一實施例中,事件是對處理器中的給定指令和資料流的響應。在另一實施例中,事件是參考時鐘、核心時鐘或循環。事件可以與包括處理器的狀態資訊的架構元資料相關聯,包括但不限於指令指標、時間戳計數器和暫存器狀態。或者,事件可以是其它操作、事件或動作。
在一些實施例中,處理器可以包括兩個或更多個效能計數器。第一效能計數器被配置為將處理器中的第一類型的事件從第一起始值計數到第一限值。第二效能計數器被配置為將處理器中的第二類型的事件從第二起始值計數到
第二限值。當第一效能計數器達到第一限值時,處理器將第二效能計數器重設為第二重載值。當第二效能計數器達到第二限值時,處理器可以生成效能記錄或效能監視中斷(PMI)。達到極限還可以稱為溢位。為了觸發溢位,效能計數器被預置為模數值,該模數值可以在特定數量的事件被計數之後導致效能計數器溢位,這導致一或多個效能計數器被重設和/或生成PMI或諸如基於事件的採樣(EBS)記錄的效能記錄,如下文中詳述的。
當第二效能計數器達到第二限值時,使用第一效能計數器重設第二效能計數器並產生記錄和/或中斷的上述技術具有許多優點。一個這樣的優點是當第二效能計數器在被重設之前溢位時生成記錄和/或中斷可以減少在監視處理器的效能中記錄的中斷和/或資訊的量。例如,如果第一限值是5000個指令止用且第二個限制是20,000個週期,則預期速率可以是每20,000個週期止用的超過5,000個指令。當處理器以期望速率執行時,將不產生記錄和/或中斷。每20,000個週期退出的少於5,000個指令可能表示處理器效能較差,然後將生成和儲存記錄和/或中斷。以前,無論處理器是否以預期速率執行,都將產生和儲存每個特定數量的事件的記錄,採樣和/或中斷。每一樣本導致一些開銷,因此不斷採取樣本導致效能開銷和減速增加。減速不限於感興趣的行為的情況(例如,每20,000個循環止用少於5,000個指令、等等),而是可以在處理器以期望速率運行且處理器不在預期利率。因此,在監視
處理器的效能的同時減少採樣的數量是有利的。
利用第一效能計數器重設第二效能計數器的另一個優點是避免使用軟體來確定處理器是否以事件的預期速率操作。例如,如果第一效能計數器的第一限值為5,000個指令止用,且如果第二效能計數器的第二限值為20,000個週期,則如果速率大於預期速率,則不會生成記錄和/或中斷每20,000個週期止用5,000個指令。如果在達到第二限值(即,意外的速率)之前未達到第一限值,則生成並儲存包括定義在生成記錄時的處理器的狀態的架構元資料的記錄。處理器的狀態可以包括止用了多少指令。因此,當處理器以事件的預期速率操作時,可重載的效能計數器不生成記錄,而是當處理器不以事件的預期速率操作時生成並儲存記錄。以前,許多樣本將需要收集第一事件和第二事件,然後樣本將需要由後處理軟體進行比較以確定相對速率。例如,每一特定數量的事件,處理器將確定退出了多少個指令且發生了多少個週期。然後軟體將計算所採樣品每週期止用的指令。額外使用軟體會導致系統減速和額外的系統開銷。開銷是有問題的,因為它可能擾亂正在調試的系統。因此,減少或消除軟體的使用以確定處理器是否以期望速率執行是有利的。
圖1示出了根據本公開的實施例的包括EBS模組106和EBS機構的組件的系統架構100。在實施例中,系統架構可以是可在單一晶粒(相同基底)上且在單一半導體封裝內實現之系統晶片硬體電路方塊。處理單元可以是中央
處理單元(CPU)或圖形處理單元(GPU)。本公開的實施例可以是緊密電路,且因此可以被實現為寬範圍的處理單元的組成部分,而不會導致成本和功耗的顯著增加。本公開的實施例可以是可編程電路邏輯,且因此可以用於追踪和管理相同電路邏輯(例如,微代碼)上的不同類型的事件。EBS模組106還可擴展以追踪多個處理單元。EBS模組106可以由在相同處理器上運行且由操作系統(OS)或虛擬機作為共享資源所管理的多個應用共享。
參考圖1,處理單元可以包括耦接到匯流排/介面104的處理器102。
處理器102可以包括一或多個效能計數器116a至116n(這裡稱為“效能計數器116”)。第一效能計數器116a可以在處理器102中的第一類型的事件從第一起始值到第一極限發生時遞增。第二效能計數器116b可以在處理器102中發生第二類型的事件時從第二起始值增加到第二限值。
處理器102可以包括對應於一或多個效能計數器116a至116n的一或多個事件選擇(ES)控制114a至114n(這裡稱為“ES控制114”)。ES控制114可以用事件類型的標識符來編程,且效能計數器116可以經由ES控制114被致能以在第一類型的事件發生時遞增。例如,第一ES控制114a可以用第一類型事件的第一標識符編程,其中第一效能計數器116a經由第一ES控制114a被使能以在第一類型事件發生時遞增,而第二ES控制器
114b可以用第二類型事件的第二標識符編程,其中第二效能計數器116b通過第二ES控制器114b被使能以在第二類型事件發生時遞增。
處理器102可以包括對應於一或多個效能計數器116a至116n的一或多個重載使能控制118a至118n(這裡稱為“重載使能控制118”)。重載使能控制118可以包括多個重載致能位元。例如,效能計數器116a可以具有多個重載使能控制位元,且每一重載使能控制位元指示在效能計數器116a的溢位時,哪個效能計數器(例如,效能計數器116b,116c等)被重載/重設,其效能計數器(例如,效能計數器116b,116c等)的溢位將使效能計數器116a重載/重設。重載致能位元可以是軟體可見的控制位元。控制邏輯可以接收到達相應的限制效能計數器116的指示,控制邏輯可存取重載致能位元,以及控制邏輯可依據重載的允許位元發送控制信號。回應於從控制邏輯接收到控制信號,重載邏輯可以將與重載致能位元相對應的效能計數器重設為對應的重載值。例如,控制邏輯可以接收第一效能計數器116達到第一限值的指示,存取存取第一重載致能位元,以及鑑於第一重載致能位元發送第一控制信號。回應於從控制邏輯接收到第一控制信號,重載邏輯可以將第二效能計數器重設為第二重載值。在一實施例中,每一重載使能控制118a-118n可位於分開的邏輯暫存器(例如,軟體可見暫存器,模型特定暫存器等)中。在另一實施例中,每一重載使能控制118可以位於單
獨的邏輯暫存器中。
在另一實施例中,至少一個重載使能控制118包括重載致能位元以重載其它效能計數器116,但不將相應的效能計數器116重設為對應的重載值(例如,重載使能控制118a可具有重載致能位元以重載效能計數器116b、116c等,但不具有重載致能位元以重設效能計數器116a)。在一實施例中,效能計數器116可以在其控制邏輯存取重載致能位元時在其達到對應的極限時自動重設自身。
處理器102可以包括EBS組件,以回應於第二效能計數器116b達到第二限值而生成EBS記錄。EBS記錄可以包括定義在生成EBS記錄時處理器102的狀態的架構元資料。在一實施例中,EBS組件是EBS處置器108。在一實施例中,EBS處置器108是處理器的一部分。在另一實施例中,EBS處置器是軟體(例如,微代碼)。
在一實施例中,EBS處置器108包括一或多個記憶體儲存110a至110n(這裡稱為“記憶體110”)。例如,記憶體儲存110可以儲存回應於第二效能計數器116b達到第二限值而生成的EBS記錄。在一實施例中,EBS處置器108具有用於每一效能計數器116的保持EBS記錄(例如,精確EBS(PEBS)記錄,非精確EBS(NPEBS)記錄等)的單一記憶體儲存區域。例如,單一記憶體儲存區域可以保存從多個效能計數器116發生的EBS記錄。EBS記錄中的欄位可以指示哪個效能計數器116生成記錄。在另一實施例中,可以存在用於不同效能
計數器116的分開的記憶體儲存區域。例如,記憶體儲存110a可以儲存用於效能計數器116a的EBS記錄,記憶體儲存110b可以儲存用於效能計數器116b的EBS記錄等等。在一實施例中,記憶體儲存110是實體記憶體儲存(例如,在系統上可用的記憶體,對系統管理器可見的在系統上可用的記憶體等)。在另一實施例中,記憶體儲存110是虛擬記憶體儲存(例如,由客戶操作系統呈現給應用的連續虛擬位址空間,對在虛擬機內部運行的應用可見的記憶體等)。在另一實施例中,記憶體儲存110是客戶實體記憶體儲存(例如,對在虛擬機中運行的客戶操作系統可見的記憶體等)。記憶體儲存110可以是暫存器。暫存器可以在實體記憶體、虛擬記憶體、存取實體記憶體、通過替代定址機制存取的靜態隨機存取記憶體(SRAM)等等。
在一實施例中,EBS處置器108可以包括效能監視中斷(PMI)組件112。所述PMI組件112可能會導致在EBS記錄生成一個效能中斷(例如,當記憶體裝置110達到某一閾值或生成的EBS記錄特定數量之後)。
處理器102可以包括與一或多個效能計數器116a至116n相對應的一或多個EBS使能控制120a至120n(這裡稱為“EBS啟用控制120”)。EBS處理器108可以經由EBS使能控制120被使能以回應於效能計數器116達到對應的限制來生成EBS記錄。例如,為回應於第二效能計數器116b達到第二限值,EBS處置器108可以經由
第二EBS使能控制120b被使能以生成EBS記錄。在一些實現中,EBS使能控制120a-120n可以位於單一邏輯暫存器(例如,模型專用暫存器)中在另一實施例中,用於效能計數器116的EBS使能控制120可以位於專用於效能計數器116的暫存器中(例如,用於第一效能計數器116a的第一EBS使能控制120a可以位於專用於第一效能計數器116a)。
處理器102可以包括中斷組件以為回應於第二效能計數器116b達到第二限值而產生中斷。在一實施例中,可以經由對應於一或多個效能計數器116a至116n的一或多個中斷啟用控制122a至122n(在本文中稱為“中斷啟用控制122”)來啟用中斷組件。例如,可以經由第二中斷使能控制122b使能中斷組件以為回應於第二效能計數器116b達到第二限值而產生中斷。中斷使能控制122可以被提供為模型特定暫存器(MSR)。
在一實施例中,處理器102可以包括EBS模組106。EBS模組106可以包括非精確的基於事件的採樣(NPEBS)組件124和精確的基於事件的採樣(PEBS)組件126。
處理器102可以包括各種其它已知的組件(未示出)以執行算法來處理資料。例如,處理器102可以包括諸如級1(L1)內部快取的記憶體(未顯示)。根據架構,處理器102可以具有單一內部快取或多級內部快取暫存器。替代地,在另一實施例中,快取記憶體可留在處理器102
外部。根據特定實現和需要,其它實施例還可以包括內部和外部快取的組合。
處理器102可以執行可嵌入有可以放置在匯流排/介面104上的事件的標記的指令流。指令段的執行可以構成一或多個事件。在一實施例中,事件由處理器102生成。在另一實施例中,事件在處理器102外部生成,並經由匯流排/介面104傳送到處理器。
在一實施例中,ES控制114用事件的標識符編程。ES控制114可以被提供為MSR。ES控制114的編程使得對應於編程的ES控制114的效能計數器116追踪特定編程事件的發生。在一實施例中,編程的ES控制114可以追踪精確事件的發生。在另一實施例中,編程的ES控制114可以追踪非精確事件的發生。在一些實施例中,編程的ES控制114可以根據ES控制114如何被編程來追踪精確或非精確事件的發生。在一些實施例中,未被定義為精確事件的任何事件被認為是非精確事件。在一實施例中,ES控制114由執行應用程序編程。在另一實施例中,ES控制114由操作系統/驅動器編程。在另一實施例中,ES控制114由虛擬機管理器(VMM)編程。
當ES控制114以事件標識符編程時,對應於ES控制114的效能計數器116在編程事件每次發生時遞增。在一實施例中,當第二效能計數器116b達到第二限值時,可以觸發動作(例如,生成EBS記錄,生成中斷,改變模式,寫入狀態位元,開始另一計數器計數,拉出到另一
晶片可見的接腳,等等)。
對應於ES控制114和效能計數器116的EBS使能控制120可以被設置(例如,啟動,旗標設置,位設置為1等),以使得EBS處置器108能夠在效能計數器116。在一實施例中,用戶設置EBS啟用控件120。在一實施例中,可以經由EBS使能控件120啟用EBS模組106,以使EBS處置器108生成EBS記錄。在另一實施例中,EBS使能控制120包括EBS_EN位,EBS_EN位元被設置為使得EBS處置器108能夠在計數事件的效能計數器116溢位時生成EBS記錄。在一實施例中,EBS模組106可以使得EBS處置器108在對計數事件的效能計數器116溢位時生成EBS記錄。如上所述,EBS記錄包括在效能計數器溢位時系統的狀態的架構元資料。結構元資料可以包括但不限於例如指令指針(IP)、時間戳計數器(TSC)或暫存器狀態。因此,EBS記錄不僅允許精確地描繪指令軌跡中的事件的位置,且提供用於軟體優化、硬體優化、效能調整等。
相當於效能計數器116的中斷使能控制122可被設置(例如,啟動、旗標設置,位元設置為1等)以在效能計數器116溢位時產生中斷。在一實施例中,用戶設置中斷使能控制122在一示例中,中斷使能控制122包括INT_EN位元(例如,MSR中的中斷使能控制位元,IA32_PERFEVTSELx中的INT位元等)。中斷位元可能導致效能計數器溢位以掛起中斷(例如,PMI)。在一實
施例中,PMI可以被配置成引起不可屏蔽中斷(NMI)。在另一實施例中,PMI可以被配置成引起系統模式中斷(SMI)。在另一實施例中,PMI可以被配置為引起初始化(INIT)。
在一實施例中,如果效能計數器116不具有中斷或記錄能力,則效能計數器將不具有IA32_EBS_ENABLE中的允許位元或INT位元(例如,IA32_APERF和IA32_MPERF等)。在另一實施例中,效能計數器116可以總是在溢位時產生中斷,而不需要設置任何允許位元。在另一實施例中,效能計數器116可以總是在溢位時生成EBS記錄,而不需要設置任何允許位元。
在一實施例中,EBS模組106係由第二EBS使能控制120b使能,以使得EBS處置器108在第二效能計數器116b達到對應限制時生成EBS記錄。當第二效能計數器116b達到對應的限制時,控制邏輯可以存取第二EBS使能控制120b,第二中斷使能控制122b和第二重載使能控制118b中的一或多個。在一實施例中,經由第二EBS使能控制120b使能EBS模組106以使EBS處置器108產生並記憶體EBS記錄。在另一實施例中,經由第二EBS使能控制120b使能EBS處置器108以產生並儲存EBS記錄。在另一實施例中,通過第二中斷使能控制122b使能中斷組件以產生中斷。因此,當第二效能計數器116b在被滿足第一限值的第一效能計數器116a重設之前達到第二限值時,可捕獲與該事件相關聯的架構元資料或可產生
中斷。在一些實施例中,EBS模組106控制EBS記錄的生成的定時或事件的中斷。在一實施例中,EBS處置器108可以生成EBS記錄。在另一實施例中,中斷使能控制122可以產生中斷。在另一實施例中,EBS處理器108用於收集一些記錄,然後掛起(例如,通過PMI組件112)PMI,使得軟體可以收集更多資訊(例如,應用當前正在執行什麼,軟體執行緒正在執行等)。
在一實施例中,EBS模組106可以使得EBS處理器108即使在指令的中間發生效能計數器116的追踪和計數編程事件的溢位時也立即為該事件生成EBS記錄或中斷。
在另一實施例中,EBS模組106可以使得EBS處置器108一旦當前指令在溢位發生時完成(止用)就為事件生成EBS記錄或中斷。事件可以是非精確事件。
在另一實施例中,EBS模組106可以使得EBS處理器108在效能計數器116溢位之後再次發生事件時立即為事件生成EBS記錄或中斷。在一實施例中,這是每下一個事件(例如,溢位+1)。在另一實施例中,由於滑動或陰影可能錯過一些事件。EBS模組106可以在溢位之後(例如,在指令中間,等待直到當前指令的完成等等)嘗試為第一事件生成EBS記錄。當下一事件在溢位之後很快發生,EBS模組106還不知道效能計數器116溢位(例如,由於效能計數器116和EBS模組106之間的距離),導致EBS記錄當事件發生時(例如,使得在溢位
+2,溢位+3,溢位+4等等而不是溢位+1生成EBS記錄)不產生。可能發生的最高溢位+x取決於發生溢位和EBS模組106之間的距離。這被稱為滑移。滑移生成一個陰影,它在溢位和記錄或中斷的生成之間隱藏發生的事件。事件可以是精確事件。
在一實施例中,PMI組件112用於採樣和收集資訊而不是EBS記錄。在另一實施例中,EBS處理器108收集資訊,然後掛起PMI,使得軟體可以收集更多資訊(例如,當前正在執行什麼應用、當前正在執行什麼軟體執行緒等)。
圖2A示出了根據本發明的一實施例的用於事件選擇(ES)控制MSR的位元欄位的示例性佈局200。ES控制MSR可以是與關於圖1描述的ES控制114相同。ES控制MSR的佈局200可以提供綜合的標準化佈局,以利用事件選擇控制和效能計數器作為處理器中的MSR來管理事件。在實施例中,佈局200可以是暫存器檔案,其可以包括對應於處理器中的每個組件的個別位元位置。佈局200可以包括事件選擇位元0至7以標識在處理器中生成的事件。如上所述,事件可以是精確事件或非精確事件。
佈局200還可以包括單元掩碼(UMASK)位元8至15,其中每一個定義處理器的特定架構狀態資訊。佈局200還可以包括用戶模式(USR)位元16,其指定僅當處理器在特權級別(例如,用戶特權級別,應用特權級別,>0特權級別等等)下操作時才對所選擇的體系結構狀態
進行計數,例如,級別1、2或3。佈局200還可以包括操作系統(OS)模式位元17,其指定僅當處理器在特權級別0操作時才對所選擇的體系結構狀態進行計數。
佈局200亦可以包括邊緣檢測(E)位元18,其使能(當設置時)所選擇的體系結構狀態的邊緣檢測。處理器可以對可以由其它位元表示的任何狀態計數被斷言到被斷言的轉換的數目。在一實施例中,這種機制不允許區分背靠背斷言,且允許軟體不僅測量在特定狀態中花費的時間的分數,而且還測量在這種狀態下花費的平均時間長度(例如,等待中斷服務所花費的時間)。佈局200還可以包括接腳控制(PC)位元19,其在被設置時使得處理器切換PMI接腳且在效能監視事件發生時增加效能計數器,且當清除時,處理器在效能計數器溢位時切換PMI接腳。接腳的翻轉被定義為針對單一匯流排時鐘的接腳的斷言。
佈局200亦可包括高級可程式化中斷控制器(APIC)中斷使能(INT)位元20(例如,圖1的中斷使能控制122),其在被設置時使處理器通過其本地APIC產生PMI中斷對效能計數器溢位。在一實施例中,當設置該效能計數器的INT位元時,效能計數器溢位,觸發PMI局部向量表(LVT)條目。如果PMI LVT條目未被屏蔽或禁用,則該觸發將導致PMI中斷。佈局200亦可包括使能計數器(EN)位元22,其在被設置時使得對應的效能計數器被使能。效能計數器可以是與關於圖1描述的
效能計數器116相同。當EN位元22清除時,相應的效能計數器被禁止。在一實施例中,通過在寫入到效能計數器之前將EN位元23設置為0來禁用用於計數器掩碼(CMASK)的事件邏輯單元。佈局200亦可包括反轉(INV)位元23,其在被設置時反轉計數器掩碼(CMASK)比較,使得可以進行大於或等於和小於比較(例如,0:大於或等於;1:小於)。
圖2B示出了根據本發明的一個實施例的EBS使能控制MSR的位元欄位的示例性佈局202。在一實施例中,EBS使能控制MSR與關於圖1描述的EBS使能控制120相同。佈局202可以提供綜合的,標準化的佈局,用於利用EBS使能控製作為處理器中的MSR來管理事件。在實施例中,佈局202可以是暫存器檔案,其可以包括對應於處理器中的每個組件的單獨位置。佈局202可以包括EBS使能控制位元0至3(EBS_EN_PMC0,EBS_EN_PMC1,EBS_EN_PMC2,EBS_EN_PMC3),其被使能以指示特定效能計數器(例如,圖1的效能計數器116)中的溢位狀況何時導致EBS記錄被生成並儲存在EBS處置器(例如,圖1的EBS處置器108)的儲存記憶體中或者使得由EBS處置器生成中斷。
圖2C示出了效能計數器(例如,圖1的效能計數器116)的位元欄位的示例性佈局204-210。根據本發明的一實施例,佈局204-210中的位元欄位可以在四個單獨的MSR中(例如,用於204的MSR,用於206的MSR等等
)。佈局204-210中的每一個可以提供綜合的,標準化的佈局,以利用效能計數器作為處理器中的MSR來管理事件。在實施例中,佈局204-210中的每一個可以是暫存器檔案,其可以包括對應於處理器中的每個組件的各個位位置。佈局204-210中的每一個可以包括用於特定效能計數器(X)的重載致能位元0至3(例如,RELOAD_ENX[0],RELOAD_ENX[1],RELOAD_ENX[2],RELOAD_ENX[3]或更多圖1的效能計數器116a-n),其中當特定效能計數器(X)達到對應的極限時,使每一能夠將效能計數器重設為對應的重載值。在一實施例中,四個單獨的MSR可以與圖1的重載使能控制118相同,(例如,用於204的重載使能控制118a,用於206的重載使能控制118b等)。
在一實施例中,每個效能計數器可以對於每個效能計數器包括其自身俱有一個重載致能位元,因此重載致能位元的數量是n*n(n是效能計數器的數量)。例如,如果有四個效能計數器,則將有十六個重載致能位元。每一效能計數器的重載致能位元可以在單獨的MSR中。例如,對於四個效能計數器,可以有四個MSR(例如,RELOAD_EN0 MSR,RELOAD_EN2 MSR和RELOAD_EN3 MSR),且每個MSR可以具有四個位元。
在另一實施例中,每個效能計數器可以對於其它效能計數器中的每一個具有一個重載致能位元(例如,不包括其自身),因此重載致能位元的數量為n*(n-1)。例
如,如果有四個效能計數器,則將有十二個重載致能位元。
佈局204顯示效能計數器0MSR(RELOAD_EN0 MSR)的位元欄位。當效能計數器0達到相應的限制時,重載致能位元0(RELOAD_EN0[0])可能導致效能計數器0重載,重載致能位元1(RELOAD_EN0[1])可能導致效能計數器1在效能計數器0達到相應的限制,等等。
佈局206顯示效能計數器1MSR(RELOAD_EN1 MSR)的位元欄位。當效能計數器1達到相應的限制時,重載致能位元0(RELOAD_EN1[0])可能導致效能計數器0重載,重載致能位元1(RELOAD_EN1[1])可能導致效能計數器1在效能計數器1達到相應的限制,等等。
佈局208顯示效能計數器2MSR(RELOAD_EN2 MSR)的位元欄位。當效能計數器2達到相應的限制時,重載致能位元0(RELOAD_EN2[0])可能導致效能計數器0重載,重載致能位元1(RELOAD_EN2[1])可能導致效能計數器1在效能計數器2達到相應的限制,等等。
佈局210顯示效能計數器3MSR(RELOAD_EN3 MSR)的位元欄位。當效能計數器3達到相應的限制時,重載致能位元0(RELOAD_EN3[0])可能導致效能計數器0重載,重載致能位元1(RELOAD_EN3[1])可能導致效能計數器1重載相應的限制,等等。
在另一實施例中,對應於效能計數器的MSR可具有位元0,其使得當效能計數器0達到對應於極限的位元1
時致使對應於MSR的效能計數器重載,使得對應於MSR的效能計數器重載,當效能計數器1達到相應的限制時,等等。例如,當效能計數器3達到相應的限制,RELOAD_EN1[3](MSR 1的位元3)可能導致效能計數器1重載,RELOAD_EN2[0](MSR2的位元0)可能導致效能計數器2重載,當效能計數器0達到相應的限制時,等等。
在另一實施例中,效能計數器的子集將能夠重載其它效能計數器,或者效能計數器將僅能夠重載其它效能計數器的子集。這可以減少給定數量的效能計數器所需的MSR和/或位元的數量(例如,對於32個效能計數器,32*32個重載使能控制可能是不必要的昂貴的)。
表1示出了重載致能位元(例如,初始化計數器0,初始化計數器1等)的示例,其在被設置時可以導致所指示的效能計數器(例如,計數器0,計數器1等等)重設為重載值(例如,IA32_COUNTER0_DEFAULT,IA32_COUNTER1_DEFAULT等)時,效能計數器溢位。表1的重載使能位可以被添加到現有的MSR(例如,IA32_PERFEVTSELx MSR,圖2A的MSR等等)。
可以將附加位添加到表1以包括固定計數器。例如,位元48、49和50可以是重新啟動控制的示例,以在效能計數器溢位時將固定計數器(例如,固定計數器1,固定計數器2,固定計數器3等)重設為重載值。此外,類似的位可以被添加到固定計數器MSR(IA32-FIXED_CTR_CTRL或新的MSR)以允許固定效能計數器在固定效能計數器達到相應的限制時重載其它固定效能計數器或通用效能計數器。在一實施例中,為了降低
成本,可以將位元添加到僅少數MSR。
圖3A是根據本揭示的實施例的用於監視處理器管理事件的效能的方法的流程圖。方法300可以由處理邏輯執行,處理邏輯可以包括硬體(例如,電路,專用邏輯,可編程邏輯,微代碼等),軟體(例如在處理器,通用計算機系統或專用機器上運行的指令),韌體,微代碼或其組合。在一實施例中,方法300可以部分地由上面參照圖1描述的處理器102執行。
為了簡化說明,方法300被描繪和描述為一系列動作。然而,根據本揭示的動作可以以各種順序和/或同時發生,且與本文中未呈現和描述的其它動作發生。此外,不是所有示出的動作都可以被執行以實現根據所揭示的主題的方法300。另外,本領域技術人員將理解和明白,方法300可以替代地經由狀態圖或事件被表示為一系列相互關聯的狀態。
參照圖1,如圖3A所示,在302處,處理邏輯接收第一ES控制中的第一類型事件的編程。在一實施例中,事件是精確事件。精確事件是鏈接到指令軌跡中的特定指令或微操作的效能事件,且在當該指令或微操作退出時發生。精確事件可以包括但不限於指令止用、分支指令止用、緩存引用止用、以及緩存缺失止用。在另一實施例中,事件是非精確事件。非精確事件是未連接到指令軌跡中的特定指令或微操作的效能事件,或者即使當指令或微操作未退出時也可以推測地發生。非精確事件可以包括但
不限於參考時脈,核心時脈和周期。如上所述,在一實施例中,在處理器中生成事件。在另一實施例中,事件在處理器外部生成,且處理邏輯可以通過監視事件可以在其上放置警報信號的互連結構來檢測事件。
在方塊304,處理邏輯接收第二ES控制中的第二類型事件的編程。
在方塊306,使對應於第一ES控制的第一效能計數器追踪所編程的第一類型的事件。例如,計數第一類型事件的效能計數器中的值可以在每次發生第一類型事件時遞增。第一效能計數器可以是通用(GP)效能計數器(可以計數多於一種類型的事件)或固定計數器(可以計數一種類型的事件)。第一效能計數器可以具有第一起始值和第一極限。第一起始值可以是零、負數、正數等等。第一限值可以是閾值,可以是負值等。第一效能計數器可以具有針對何時第一效能計數器重載,引起記錄或引起中斷(例如,當效能計數器達到限制-1時發生重載,當效能計數器達到限制時發生中斷,記錄當效能計數器達到限制+1時產生,等等)。
在方塊308,使對應於第二ES控制的第二效能計數器追踪編程的第二類型的事件。第二效能計數器可以是GP計數器,GP計數器的子集或固定計數器。第二效能計數器可以是與第一效能計數器相同類型的計數器(例如,GP,GP的子集,固定等等),或者可以是與第一效能計數器不同類型的計數器。第二效能計數器可以具有第二起
始值和第二極限。第二起始值可以是零、負數、正數等等。第二限值可以是臨界值,可以是負值等。第二效能計數器亦可具有對於第二效能計數器重載,引起記錄或引起中斷時的不同限制(例如,當效能計數器達到限制-1時發生重載,當效能計數器達到限制時發生中斷,記錄在效能計數器達到限制+1時產生,等等)。
在方塊310,確定第一效能計數器是否溢位。當第一效能值達到第一限值時,第一效能值可能溢位。當在方塊310確定第一效能計數器確實溢位時,方法300進行到方塊312,其中第一效能計數器被重設為第一重載值(例如,參見圖2C的佈局204,重載致能位元0(RELOAD_EN0[0])可以導致效能計數器0在效能計數器0達到相應的限制時被重載,且第二效能計數器被重設為第二重載值(例如,參見圖2C的佈局204,重載致能位元1RELOAD_EN0[1])可能導致效能計數器1在效能計數器0達到相應的限制時重載。第一重載值可以是零,第一起始值,第一起始值和第一極限之間的值等中的一或多個。第二重載值可以是零,第二起始值,第二起始值和第二極限之間的值等中的一或多個。方法300然後返回到方塊306以繼續追踪事件發生。如圖3A-3B所示,第一效能計數器可以貫穿方塊306-318(或306-317)連續地追踪第一類型的事件,且第二效能計數器可以在方塊308-318(或308-317)中連續地追踪第二類型的事件)(例如,即使該圖示出了不同的塊且返回到方塊306,效能計
數器可以連續地追踪從方塊306和308的第一次出現開始的事件發生)。當在方塊310確定第一效能計數器確實溢位時,方法300進行到判定方塊314。
在判定方塊314,確定第二效能計數器是否溢位。當第二效能值達到第二限值時,第二效能值可能溢位。當在方塊314處確定第二效能計數器沒有溢位時,方法300返回到方塊306以繼續追踪事件發生。當在方塊314處確定第二效能塊沒有溢位時,方法300進行到方塊316。在方塊316,在第二效能計數器溢位時生成EBS記錄。在一實施例中,在發生第二效能計數器的溢位時立即生成EBS記錄(例如,在達到限制之後的記錄生成,用於非精確的基於事件的採樣的記錄生成)。在另一實施例中,在發生第二效能計數器的溢位之後立即生成EBS記錄(例如,當達到limit+1時的記錄生成,用於基於精確事件的採樣的記錄生成)。在該實施例中,EBS記錄在下一個退出指令之後,即在觸發效能計數器溢位的指令完成之後產生。
EBS記錄可以包括在第二效能計數器溢位時處理器的狀態的架構元資料。結構元資料可以包括但不限於IP,TSC和暫存器狀態,這裡僅舉幾個例子。就此而言,可以在不利用PMI的情況下快速捕獲與第二類型事件相關聯的處理器的架構元資料。
在方塊318,將用於第二類型事件的所生成的EBS記錄儲存在EBS處置器的儲存記憶體中。然後,方法300進行到方塊312,其中第一效能計數器被重設為第一重載
值(例如,參見圖2C的佈局206,重載致能位元0(RELOAD_EN1[0])可能導致效能計數器0在效能計數器1達到對應的限制)且第二效能計數器被重設為第二重載值(例如,參見圖2C的佈局206,重載致能位元1(RELOAD_EN1[1])可以導致效能計數器1在效能計數器1達到相應的限制)。第一和第二重載值可以儲存在硬體暫存器中。方法300然後返回到方塊306以繼續追踪事件發生。
在一實施例中,方法300可以具有附加的ES控制和附加的效能計數器。處理邏輯可以在三個或更多個相應的ES控制中接收三種或更多種類型的事件的編程。在一實施例中,每個ES控制可以接收不同類型的事件的編程。在另一實施例中,兩個或更多個ES控制可以接收相同類型的事件的編程。當多個效能計數器中的一個效能計數器溢位時,多個效能計數器中的一或多個可以被重設為相應的重載值。當多個效能計數器的第一子集的至少一個效能計數器溢位時,可以生成和儲存記錄。當效能計數器的第二子集中的一或多個溢位時,可以不生成和儲存記錄。
圖3B是根據本公開的另一實施例的用於監視處理器的性能以管理事件的方法的流程圖。方法300可以由處理邏輯執行,處理邏輯可以包括硬體(例如,電路,專用邏輯,可編程邏輯,微代碼等),軟體(例如在處理器,通用計算機系統或專用機器上運行的指令),韌體,微代碼或其組合。在一實施例中,方法300可以部分地由上面參
照圖1描述的處理器102執行。
為了簡化說明,方法300被描繪和描述為一系列動作。然而,根據本公開的動作可以以各種順序和/或同時發生,且與本文中未呈現和描述的其它動作發生。此外,不是所有示出的動作都可以被執行以實現根據所公開的主題的方法300。另外,本領域技術人員將理解和明白,方法300可以替代地經由狀態圖或事件被表示為一系列相互關聯的狀態。
參考圖3B,在302、304、306、308、310和314處可以是與圖3A相同或相似。在判定方塊314,確定第二效能計數器是否溢位。當第二性能值達到第二限值時,第二性能值可溢位。當在方塊314處確定第二效能計數器未溢位時,方法300返回到方塊306以繼續追踪事件發生。當在方塊314確定第二性能沒有溢位,則方法300進行到方塊317。在方塊317中,在第二效能計數器的溢位時產生一個中斷(例如,當溢位,溢位時+1,立即生成,延遲直到指令結束,等等)。然後,方法300進行到方塊312,其中將第一效能計數器重設為第一重載值,且將第二效能計數器重設為第二重載值。第一和第二重載值可以儲存在硬體暫存器中。方法300然後返回到方塊306以重複對事件發生的追踪。
在一實施例中,方法300可以具有附加的ES控制和附加的效能計數器。處理邏輯可以在三個或更多個相應的ES控制中接收三種或更多種類型的事件的編程。在一實
施例中,每個ES控制可以接收不同類型的事件的編程。在另一實施例中,兩個或更多個ES控制可以接收相同類型的事件的編程。當多個效能計數器中的一個效能計數器溢位時,多個效能計數器中的一或多個可以被重設為相應的重載值。當多個效能計數器的第一子集的至少一個效能計數器溢位時,可以產生中斷。當效能計數器的第二子集中的一或多個溢位時,可以不產生中斷。
圖3C是示出根據本發明的一個實施例的包括用於監視性能的邏輯電路的架構370的方塊圖。
架構370可以包括多個效能計數器330(例如,第一效能計數器330a,第二效能計數器330b等)。效能計數器330可以與關於圖1描述的效能計數器116相同。第一效能計數器330a可以在處理器中發生第一類型事件時從第一起始值增加到第一極限。第二效能計數器330b可以在處理器中發生第二類型的事件時從第二起始值增加到第二限值。
架構370可以包括控制邏輯380。控制邏輯380可以接收第一效能計數器330a達到第一限值的指示。
架構370可以包括一或多個暫存器385(例如,軟體可見暫存器)。一或多個暫存器385可以儲存軟體可見的控制位元(例如,第一重載致能位元,第二重載致能位元等等)。為回應於接收到第一效能計數器330a的指示達到第一限值,控制邏輯380可以存取一或多個暫存器385中的軟體可見控制位元的第一重載致能位元。控制邏輯
380可以發送,鑑於第一重載致能位元的控制信號。
架構370可以包括重載邏輯390。重載邏輯390可以為回應於從控制邏輯380接收到控制信號將第二效能計數器330b重設為第二重載值。
在一實施例中,為回應於控制邏輯380接收到第二效能計數器330b的第二指示達到第二限值,控制邏輯380可以存取一或多個暫存器中的軟體可見控制位元的第二重載致能位元385,且控制邏輯380可以鑑於第二重載致能位元發送第二控制信號。為回應於從控制邏輯380接收到第二控制信號,重載邏輯390可以將第一效能計數器330a重設為第一重載值。
在另一實施例中,為回應於控制邏輯380接收到第一效能計數器330a的指示達到第一限值,控制邏輯380可以存取一或多個暫存器385中的軟體可見控制位的第三重載使能位以及鑑於所述第三重載使能位而發送第三控制信號。為回應於從控制邏輯380接收到第三控制信號,重載邏輯390可以將第一效能計數器330a重設為第一重載值。為回應於控制邏輯380接收到第二效能計數器330b的第二指示達到第二限值,控制邏輯380可以存取一或多個暫存器385中的軟體可見控制位的第四重載使能位,且可以發送,鑑於第四重載使能位的第四控制信號。為回應於從控制邏輯380接收到第四控制信號,重載邏輯390可以將第二效能計數器330b重設為第二重載值。
在另一實施例中,每個效能計數器330自己重設,而
不存取一或多個暫存器385中的重載致能位元。
在一實施例中,一個暫存器385儲存所有重載致能位元。在另一實施例中,暫存器385可以包括第一軟體可見暫存器、第二軟體可見暫存器等。
在一實施例中,第一軟體可見暫存器可以儲存重載致能位元,控制邏輯380存取該重載致能位元,以在第一效能計數器330a達到第一極限時發送多個控制信號到其它效能計數器330。例如,第一軟體可見暫存器可以包括第一多個控制位元,且第一軟體可見暫存器可以對應於第一效能計數器330a。第一多個控制位元可以包括第一重載致能位元和第五重載致能位元。為回應於接收到第一效能計數器330a的指示達到第一限值,控制邏輯380可以存取第一重載致能位元,且可以鑑於第一重載致能位元發送控制信號,且重載邏輯390可以重設為回應於從控制邏輯380接收到控制信號,將第二效能計數器330b轉換為第二重載值。為回應於控制邏輯380接收到第一效能計數器330a的指示達到第一限值,控制邏輯380可存取第五重載致能位元,且鑑於第五重載致能位元發送第五控制信號,且重載邏輯390,以為回應於從控制邏輯380接收到第五控制信號將第三效能計數器重設為第三重載值。
在另一實施例中,第一多個控制位可以包括第三重載致能位元。為回應於控制邏輯380接收到第一效能計數器330a的指示達到第一限值,控制邏輯380可存取第三重載致能位元,且鑑於第三重載致能位元和重載邏輯,發送
第三控制信號390可以為回應於從控制邏輯380接收到第三控制信號將第一效能計數器330a重設為第一重載值。
第二軟體可見暫存器可以包括第二多個控制位元,且第二軟體可見暫存器可以對應於第二效能計數器。第二多個控制位可以包括第二重載致能位元和第六重載致能位元。為回應於控制邏輯380接收到第二效能計數器330b的第二指示達到第二限值,控制邏輯380可以存取一或多個暫存器385中的軟體可見控制位元的第二重載致能位元,且控制邏輯380可以鑑於第二重載致能位元而發送第二控制信號。為回應於從控制邏輯380接收到第二控制信號,重載邏輯390可以將第一效能計數器330a重設為第一重載值。為回應於控制邏輯380接收到第二指示,控制邏輯380可以存取軟體可見控制位元的第六重載致能位元,並鑑於第六重載使能位發送第六控制信號,且重載邏輯390可以為回應於從所述控制邏輯380接收到所述第六控制信號,將所述第三效能計數器重設為所述第三重載值。
在另一實施例中,第二多個控制位可以包括第四重載致能位元。為回應於控制邏輯380接收到第二效能計數器330b的第二指示達到第二限值,控制邏輯380可以存取一或多個暫存器385中的軟體可見控制位元的第四重載致能位元,且可以發送鑑於第四重載致能位元的第四控制信號。為回應於從控制邏輯380接收到第四控制信號,重載邏輯390可以將第二效能計數器330b重設為第二重載
值。
在另一實施例中,第一軟體可見暫存器可以儲存重載致能位元,控制邏輯380存取該重載致能位元以在多個效能計數器330中的任何一個達到其對應的限制時發送控制信號以重設第一效能計數器330a(例如,每個效能計數器330一個重載致能位元)。
圖3D是示出根據本發明的一個實施例的包括用於監視性能的邏輯電路的架構320的方塊圖。架構320可以包括效能計數器330a-d(以下稱為“效能計數器330”)。效能計數器330可以是與關於圖1描述的效能計數器116相同。
架構320可以包括重載使能控制340a-d(以下稱為“重載使能控制340”)。重載使能控制340可以與關於圖1描述的重載使能控制118相同。每一重載啟用控制340可以對應於效能計數器330。例如,重載使能控制340a可以對應於效能計數器330a,重載使能控制340b可以對應於效能計數器330b等等。
架構320可以包括重載值計數器350a-d(以下稱為“重載值計數器350”)。重載值計數器350可以指示用於對應的效能計數器330的重載值。重載值可以是起始值、零、負數、預定數量、用戶指定數量等中的一或多個。在一實施例中,每個重載值可以彼此不同。在另一實施例中,每個重載值可以相同。在一實施例中,第一重載值,第二重載值等可以儲存在硬體暫存器中。硬體對於軟
體可作為可見的模型特定暫存器。通過儲存在硬體暫存器中,可以立即重載重載值,以避免效能計數器320溢位且不針對任意數量的樣本初始化另一個效能計數器320。在另一實施例中,第一重載值,第二重載值等可以儲存在記憶體,SRAM或快取中。
表2示出了架構MSR中的重載值的示例。當由重載使能控制(例如,初始化計數器X等)指示時,將重載值(例如,計數器X預設值等等)複製到效能計數器(例如,計數器X等等)。
在一實施例中,可以支持更少的位元。在一個示例中,位元MSB(最高有效位元):16可以是一個(且通過新的CPU標識(CPUID)葉來列舉),且只有位元15:0可以被自由選擇。這將允許重載值僅允許在0和負2^16之間的值。這可以降低在拍擊的數量和需要重載效能計數器的佈線中實現的成本。
重載使能控制340可保持對應於不同重載值計數器350的位的集合。在一實施例中,重載使能控制340可保持表1中描述的所有四個重載使能控制位元。在另一實施
例中,重載使能控制340a可保持重載致能位元342a、344a、346a和348a。每個重載致能位元可以對應於重載值計數器350。重載致能位元342a可以對應於重載值計數器350a,重載致能位元344a可以對應於重載值計數器350b等等。
效能計數器330可以從起始值遞增到極限。在一實施例中,該限制可以是預定義的閾值。在另一實施例中,該限制可以是用戶指定的閾值。效能計數器330可以對效能計數器330重載,引起記錄或引起中斷時具有不同的限制(例如,當效能計數器330達到限制-1時發生重載,當效能計數器330達到限制時發生中斷,當效能計數器330達到限制+1時產生記錄,等等)。
在一實施例中,當效能計數器330達到極限時,控制邏輯可以接收效能計數器330達到極限的指示。在一實施例中,該指示可以是達到閾值。在另一實施例中,指示可以是達到特定值。為回應於接收到效能計數器330達到極限的指示,控制邏輯可以存取重載使能控制340的重載使能位。控制邏輯可以鑑於重載致能位元而發送控制信號,且重載邏輯可以接收由控制邏輯發送的控制信號,且重載邏輯可以利用來自重載值計數器350的重載值來重設效能計數器330。例如,為回應於接收到第一效能計數器330a的指示達到第一限值,控制邏輯可以存取重載使能控制340a的重載致能位元344a。控制邏輯可以鑑於重載致能位元344a發送控制信號。重載邏輯可以從控制邏輯接收
控制信號,且可以使用來自重載值計數器350b的第二重載值來重設第二效能計數器330b。在重設時,效能計數器可以從重載值繼續增加到限制。
在另一實施例中,當效能計數器達到對應的限制時,效能計數器330可以通過控制邏輯存取相應的重載致能位元342。例如,效能計數器330a可以具有重載致能位元342a,該重載致能位元342a由控制邏輯存取以發送將由重載邏輯接收的控制信號,以在效能計數器330a達到對應極限時用重載值計數器350a重設效能計數器330a。在另一實施例中,當效能計數器達到對應的限制時,效能計數器330可以在控制邏輯存取對應的重載致能位元342的情況下被重設。
可以經由EBS使能控制來啟用EBS處置器,以在特定效能計數器330達到其對應限制時生成並儲存EBS記錄。例如,當效能計數器330a達到對應的限制時,EBS處理器可以不生成和儲存EBS記錄,而是當效能計數器330b,330c或330d中的一或多個達到其對應的限制時,EBS處理器可以生成並儲存EBS記錄。圖4A是示出根據本發明的至少一實施例的有序管路和暫存器重命名級,處理器監視處理設備的事件管理性能的無序發布/執行管路的方塊圖。圖4B是示出根據本發明的至少一實施例的包括在處理器中的有序架構核和暫存器重命名邏輯,無序發布/執行邏輯的方塊圖。圖4A中實線盒示出了有序管路,而虛線框示出了暫存器重命名,無序發布/執行管路。同
樣地,4B示出了有序架構邏輯,而虛線框示出了暫存器重命名邏輯和無序發布/執行邏輯。
在圖4A中,處理器管路400包括獲取級402、長度解碼級404、解碼級406、分配級408、重命名級410、排程(也稱為分派或發布)級412、暫存器讀取/記憶體讀取級414、執行級416、回寫/記憶體寫入級418、異常處理級422和提交級424。在一些實施例中,以不同的順序提供級,且可以按順序和無序地考慮不同的級。
在圖4B中,箭頭表示兩個或更多個單元之間的耦合,且箭頭的方向表示這些單元之間的資料流的方向。圖4B示出了處理器核心490,其包括耦接到執行引擎單元450的前端單元430,且兩者耦接到記憶體單元70。
核心490可以是精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、超長指令字(VLIW)核心或混合或替代核心類型。作為又一選擇,核心490可以是專用核心,諸如例如網路或通訊核心、壓縮引擎、圖形核心等等。
前端單元430包括耦接到指令快取單元434的分支預測單元432,指令快取單元434耦接到指令轉譯後備暫存器(TLB)436,指令轉譯後備暫存器436耦接到指令獲取單元438,其耦接到解碼單元440。解碼單元或解碼器可以解碼指令,且生成作為輸出的一或多個微操作、微代碼進入點、微指令、其它指令或其它控制信號,這些微操作,解碼或反射或者從原指令導出。可以使用各種不同的
機制來實現解碼器。合適機制的示例包括但不限於查找表,硬體實現,可編程邏輯陣列(PLA),微代碼只讀記憶體(ROM)等等。指令快取單元434還耦接到記憶體單元470中的級別2(L2)快取單元476。解碼單元440耦接到執行引擎單元450中的重命名/分配器單元452。
執行引擎單元450包括耦接到止用單元454的重命名/分配器單元452和一或多個排程器單元456的集合。止用單元454可以包括根據本發明的實施例的基於事件的採樣(EBS)模組403以監視處理設備的性能以管理事件。排程器單元456表示任何數量的不同排程器,包括保留站,中央指令窗口等。排程器單元456耦接到實體暫存器文件單元458。每個實體暫存器文件單元458表示一或多個實體暫存器文件,其中不同的實體暫存器文件記憶體一或多個不同的資料類型,諸如純量整數,純量浮點,封包整數,封包浮點,向量浮點等,狀態(例如,作為要執行的下一個指令的位址的指令指針)等。實體暫存器文件單元458被止用單元454重疊,以示出可以實現暫存器重命名和無序執行的各種方式(例如,使用重排序暫存器和止用使用將來的文件,歷史暫存器和止用暫存器文件,使用暫存器映射和暫存器池等)註冊文件。
通常,架構暫存器從處理器的外部或從程序員的角度來看是可見的。暫存器不限於任何已知的特定類型的電路。各種不同類型的暫存器是合適的,只要它們能夠儲存和提供如本文所述的資料。合適的暫存器的示例包括但不
限於專用實體暫存器,使用暫存器重命名的動態分配的實體暫存器,專用和動態分配的實體暫存器的組合等。止用單元454和實體暫存器文件單元458耦接到執行群集460。執行群集460包括一組一或多個執行單元462和一組一或多個記憶體存取單元464。執行單元462可對各種類型的資料(例如,純量浮點、封包整數、封包浮點、向量整數、向量浮點)執行各種操作(例如,移位,加法,減法,乘法)。
儘管一些實施例可以包括專用於特定功能或功能集合的多個執行單元,但是其它實施例可以包括一個執行單元或多個執行單元,其全部執行所有功能。排程器單元456、實體暫存器檔案單元458和執行群集460被示為可能是多個,因為某些實施例為某些類型的資料/操作(例如,純量整數管路,純量浮點/封包整數/封包浮點/向量整數/向量浮點管路和/或記憶體存取管路,其每個具有其自己的排程器單元,實體暫存器文件單元和/執行群集-且在單獨的記憶體存取管路的情況下,實現某些實施例,其中該管路的執行群集具有記憶體存取單元464)。還應當理解的是,在使用單獨的管路的情況下,這些管路中的一或多個可能是無序的發布/執行,其餘的是有序的。
該組記憶體存取單元464耦接到記憶體單元470,記憶體單元470包括耦接到耦接到級別2(L2)快取單元476的資料快取單元474的資料TLB單元472。在一示例性實施例中,記憶體存取單元464可以包括加載單元、記
憶體位址單元和記憶體資料單元,每個記憶體存取單元耦接到記憶體單元470中的資料TLB單元472。L2快取單元476是耦接到一或多個其它級別的快取,且最終耦接到主記憶體。
經由示例,示例性暫存器重命名,無序發布/執行核架構可以如下實現管線400:1)指令提取器38執行提取和長度解碼級402和404;2)解碼單元440執行解碼級406;3)重命名/分配器單元452執行分配級408和重命名級410;4)排程器單元456執行排程級412;5)實體暫存器文件單元458和記憶體單元470執行暫存器讀取/記憶體讀取級414;執行群集460執行級416;6)記憶體單元470和實體暫存器檔案單元458執行回寫/記憶體寫入級418;7)在異常處理級422中可以涉及各種單元;以及8)止用單元454和實體暫存器檔案單元458執行提交級424。
核心490可以支持一或多個指令集(例如,x86指令集(具有已經用較新版本添加的一些擴展);Sunnyvale,CA的MIPS Technologies的MIPS指令集;ARM指令集(具有附加擴展例如NEON),加利福尼亞州桑尼維爾的ARM控股公司)。
應當理解的是,核心可以支持多執行緒(執行兩個或更多個並行的操作或執行緒集合),且可以以各種方式這樣作,包括時間分片多執行緒,同時多執行緒(其中單個實體核提供邏輯核實體核同時是多執行緒的每個執行緒)
或其組合(例如,時間分片提取和解碼以及此後的同步多執行緒,例如在英特爾®超執行緒技術中)。
儘管在無序執行的上下文中描述了暫存器重命名,但是應當理解的是,可以按有序架構使用暫存器重命名。儘管處理器的所示實施例還包括單獨的指令和資料快取單元434/474和共享L2快取單元476,但是備選實施例可以具有用於指令和資料的單個內部快取,諸如例如級別1(L1)內部快取,或多級內部快取。在一些實施例中,系統可以包括內部快取和在核和/或處理器外部的外部快取的組合。或者,所有快取可以在核和/或處理器外部。
圖5是示出根據本發明的一實施例的包括用於執行指令的邏輯電路的處理器500的微架構的方塊圖。在一實施例中,處理器500監視處理設備的性能以管理事件。在一些實施例中,根據一實施例的指令可以被實現為對具有位元組、字、雙字、四字等大小的資料元素以及諸如單精度和雙精度整數和浮點資料類型的資料類型進行操作。在一實施例中,有序前端501是處理器500的一部分,其獲取要執行的指令且準備它們稍後在處理器管線中使用。前端501可以包括幾個單元。在一實施例中,指令預取器526從記憶體取回指令,並將它們饋送到指令解碼器528,指令解碼器528進而解碼或解釋它們。例如,在一實施例中,解碼器將接收到的指令解碼為機器可以執行的稱為“微指令”或“微操作”(也稱為微操作或微操作)的一個或多個操作。
在其它實施例中,解碼器將指令解析為操作碼以及由微架構使用以執行根據一實施例的操作的對應的資料和控制欄位。在一實施例中,追踪快取530獲取解碼的uop並將它們組裝成uop隊列534中的程序有序序列或追踪以供執行。當追踪快取530遇到復雜指令時,微代碼ROM 532提供完成操作所需的uop。
一些指令被轉換為單一微操作,而其它指令使用幾個微操作來完成完整操作。在一實施例中,如果需要多於四個微操作來完成指令,則解碼器528存取微代碼ROM 532以執行指令。對於一實施例,指令可以被解碼為小數目的微操作,用於在指令解碼器528處進行處理。在另一實施例中,如果需要多個微操作來完成操作,則可以將指令儲存在微代碼ROM 532中。追踪快取530指的是根據一個實施例的從微代碼ROM 532中確定用於讀取微代碼序列以完成一個或多個指令的正確的微指令指針的進入點可編程邏輯陣列(PLA)。在微代碼ROM 532完成用於指令的微操作的排序之後,機器的前端501恢復從追踪快取530獲取微操作。
無序執行引擎503是準備執行指令的地方。無序執行邏輯具有多個緩衝器以平滑和重新排序指令流,以便在它們沿著管線下行且被排程執行時優化性能。分配器邏輯分配每個uop需要的機器緩衝區和資源以便執行。暫存器重命名邏輯將邏輯暫存器重命名為暫存器檔案中的項目。分配器還在指令排程器之前為兩個uop隊列之一分配用於每
個uop的條目,一個用於記憶體操作,一個用於非記憶體操作:記憶體排程器,快速排程器502,慢/通用浮點排程器504,以及簡單浮點排程器506。uop排程器502、504、506基於其從屬輸入暫存器操作數源的準備狀態和uop用於完成其操作的執行資源的可用性來確定uop何時準備好執行。一實施例的快速排程器502可以在主時鐘週期的每一半上排程,而其它排程器可以每主處理器時鐘週期排程一次。排程器對排程端口進行仲裁以排程執行的uop。
暫存器檔案508、510位於排程器502、504、506和執行塊511中的執行單元512、514、516、518、520、522、524之間。分別有用於整數和浮點運算的單獨的暫存器檔案。一實施例的每一暫存器檔案508、510還包括旁路網路,其可以將尚未寫入暫存器檔案的剛完成的結果繞過或轉發到新的從屬uop。整數暫存器檔案508和浮點暫存器檔案510也能夠與另一個進行資料通信。對於一實施例,整數暫存器檔案508被分成兩個分開的暫存器檔案,一個用於低階32位資料的暫存器檔案和用於高階32位資料的第二暫存器檔案。一實施例的浮點暫存器檔案510具有128位元寬度的條目,因為浮點指令通常具有寬度從66到128位元的操作數。
執行塊511包含執行單元512、514、516、518、520、522、524,其中實際執行指令。該部分包括暫存器檔案508、510,其記憶體微指令用於執行的整數和浮點
資料操作數值。一實施例的處理器500包括多個執行單元:位址生成單元(AGU)512、AGU 514、快速ALU516、快速ALU 518,慢ALU 520,浮點ALU 522,浮點移動單元524。對於一實施例,浮點執行塊522、524執行浮點、MMX、SIMD和SSE或其它操作。一實施例的浮點ALU 522包括64位乘以54位的浮點除法器以執行除法、平方根和剩餘微操作。對於本發明的實施例,涉及浮點值的指令可以用浮點硬體處理。
在一實施例中,ALU操作轉到高速ALU執行單元516、518。一實施例的快速ALU 516、518可以以半個時鐘週期的有效等待時間執行快速操作。對於一實施例,最複雜的整數操作進入慢ALU 520,因為慢ALU 520包括用於長等待時間類型的操作的整數執行硬體,諸如乘法器、移位、旗標邏輯和分支處理。記憶體器加載/記憶體操作由AGU 512、514執行。對於一實施例,在對64位資料操作數執行整數操作的上下文中描述整數ALU 516、518、520。在替代實施例中,ALU 516、518、520可以被實現為支持包括16、32、128、256等的各種資料位元。類似地,浮點單元522、524可以被實現為支持一定範圍的操作數具有各種寬度的位元。對於一實施例,浮點單元522、524可結合SIMD和多媒體指令對128位元寬的封包資料操作數進行操作。
在一實施例中,uops排程器502、504、506在上代負載已經完成執行之前分派相關操作。由於uop被推測性地
排程並在處理器500中執行,因此處理器500還包括處理記憶體器未命中的邏輯。如果資料加載在資料快取中丟失,則在管線中可能存在進行中的依賴操作,其已經使排程器暫時不正確的資料。重放機制追踪並重新執行使用不正確資料的指令。依賴操作應該被重放,且獨立操作被允許完成。處理器的一實施例的排程器和重放機制還被設計為捕獲用於本文串比較操作的指令序列。
處理器500可以包括耦合到執行塊511的止用單元554。止用單元554可以包括EBS模組505,用於監視處理設備的性能以根據本發明的實施例來管理事件。
術語“暫存器”可以指用作識別操作數的指令的一部分的板載處理器儲存位置。換句話說,暫存器可以是可從處理器外部使用的(從程式員的角度)。然而,實施例的暫存器的含義不應限於特定類型的電路。相反地,實施例的暫存器能夠儲存和提供資料,且執行本文所述的功能。這裡描述的暫存器可以由處理器內的電路使用任何數量的不同技術來實現,諸如專用實體暫存器,使用暫存器重命名的動態分配的實體暫存器,專用和動態分配的實體暫存器的組合等。在一實施例中,整數暫存器儲存三十二位元整數資料。
一實施例的暫存器檔案還包含用於封包資料的八個多媒體SIMD暫存器。對於下面的討論,暫存器被理解為係設計為在使用來自加州聖克拉拉的英特爾®公司的MMXTM技術實現的微處理器中保持封包資料的資料暫存
器,諸如64位元寬的MMX暫存器(在一些情況下也稱為“mm”暫存器)。這些MMX暫存器可用以整數和浮點形式,可以與伴隨SIMD和SSE指令的封包資料元件一起操作。類似地,與SSE2、SSE3、SSE4或更高(統稱為“SSEx”)技術相關的128位元寬的XMM暫存器也可以用於保持這樣的封包資料操作數。在一實施例中,於儲存封包資料和整數資料時,暫存器無法區別該第二資料類型。在一實施例中,整數和浮點包含在相同的暫存器檔案或不同的暫存器檔案中。此外,在一實施例中,浮點和整數資料可以儲存在不同的暫存器或相同的暫存器中。
現參考圖6,示出了根據本發明的一實施例的系統600的方塊圖。系統600可以包括耦接到圖形記憶體控制器集線器(GMCH)620的一或多個處理器610、615。附加處理器615的可選性質在圖1中表示。圖6中用虛線表示是可選性質的附加處理器615。在一實施例中,處理器610、615監視處理設備的管理事件的效能。
每一處理器610、615可以是如上所述的電路、積體電路、處理器和/或矽積體電路的某種形式。然而,應當注意,積體圖形邏輯和積體記憶體控制單元不可能存在於處理器610、615中。圖6示出了可以將GMCH 620耦接到可以是例如動態隨機存取記憶體(DRAM)的記憶體640。對於至少一實施例,DRAM可以是與非揮發性快取相關聯。
GMCH 620可以是晶片組或晶片組的一部分。GMCH
620可與處理器610、615進行通訊,且控制處理器610、615和記憶體640之間的互動。GMCH 620還可以用作處理器610、615和系統600的其它元件之間的加速匯流排。對於至少一實施例,GMCH 620經由多點匯流排與處理器610、615進行通信,諸如,前側匯流排(FSB)695。
此外,GMCH 620耦接到顯示器645(諸如平板或觸控螢幕顯示器)。GMCH 620可以包括積體圖形加速器。GMCH 620還耦接到輸入/輸出(I/O)控制器集線器(ICH)650,其可用於將各種周邊設備耦接到系統600。例如在圖6的實施例中示出是外部圖形設備660,其可以是與另一周邊設備670一起耦接到ICH 650的分立圖形設備。
替代地,附加或不同的處理器也可以存在於系統600中。例如,附加的處理器615可以包括與處理器610相同的附加處理器,其它處理器是異質的或非對稱的處理器610,加速器(例如,圖形加速器或數字信號處理(DSP)單元),現場可編程閘陣列或任何其它處理器。在包括建築、微建築熱量、功耗特性等在內的度量指標頻譜方面,處理器610、615之間可以存在各種不同之處。這些差異可能有效地表現為處理器610、615之間的不對稱和異質性。對於至少一實施例,各種處理器610、615可以駐留在相同的管晶封裝。
實施例可以是以許多不同的系統類型來實現。圖7是
根據本公開的實施例的SoC 700的方塊圖。虛線框是更先進的SoC的可選功能。於圖7中,互連單元712耦接到:應用處理器720,其包括一組一或多個核702A-N和共享快取單元706;系統代理單元710;匯流排控制器單元716;積體記憶體控制器單元714;一組或一或多個媒體處理器718,其可以包括積體圖形邏輯708,用於提供靜態和/或攝像機功能的圖像處理器724,用於提供硬體音頻加速的音頻處理器726,以及用於提供視頻編碼的視頻處理器728/解碼加速;靜態隨機存取記憶體(SRAM)單元730;直接記憶體存取(DMA)單元732;以及用於耦接到一或多個外部顯示器的顯示單元740。於一實施例中,記憶體模組可以包括在積體記憶體控制器單元714中。在另一實施例中,記憶體模組可以被包括在可用於存取和/或控制記憶體的SoC 700的一或多個其它組件中。應用處理器720可以包括如本文實施例中所描述的條件分支、間接分支和事件執行邏輯。
記憶體層級包括核心中的一或多級快取,集合或一或多個共享快取單元706以及耦接到積體記憶體控制器單元714集合的外部記憶體(未示出)。該共享快取單元706可以包括一或多個中級快取,諸如級別2(L2)、級別3(L3)、級別4(L4)或其它級別的快取、最後級別快取(LLC)、和/或其組合。
在一些實施例中,一或多個核心702A-N能夠進行多執行緒。
系統代理710包括協調和操作核心702A-N的那些組件。系統代理單元710可以包括例如功率控制單元(PCU)和顯示單元。PCU可以是或包括用於調節核心702A-N和積體圖形邏輯708的功率狀態所需的邏輯和組件。顯示單元用於驅動一或多個外部連接的顯示器。
在架構和/或指令集方面,核心702A-N可以是均勻或不均勻的。例如,核心702A-N中的一些可以是順序的,而另一些核心是無序的。作為另一示例,核心702A-N中的兩個或更多個可能能夠執行相同的指令集,而其它的可以僅執行該指令集的子集或不同的指令集。
應用處理器720可以是諸如CoreTM i3、i5、i7、2 Duo和Quad、XeonTM、ItaniumTM、AtomTM、XScale®或StrongARMTM處理器的通用處理器,可取得自加州聖克拉拉市的英特爾®公司。替代地,應用處理器720可以來自諸如ARM HoldingsTM Ltd、MIPSTM等的另一公司。應用處理器720可以是專用處理器,例如網路或通信處理器、壓縮引擎、圖形處理器、共處理器、嵌入式處理器等。應用處理器720可以在一或多個晶片上實現。應用處理器720可以是和/或使用諸如BiCMOS、CMOS或NMOS中的任何一種處理技術的一部分而實現在一或多個基板上。
在另一實施例中,SoC可以包括多個處理器、記憶體裝置、用於儲存軟體可見控制位元的一或多個暫存器、用於儲存第一重載值和第二重載值的一或多個硬體暫存器、第一效能計數器、第二效能計數器、控制邏輯和重載邏
輯。第一效能計數器可以在多個處理器的處理器中的第一類型的事件從第一起始值到第一限值時增加。當處理器中的第二類型的事件從第二起始值到第二限值時,第二效能計數器可以增加。控制邏輯可以接收到達到第一限值的第一效能計數器的指示,存取軟體可見控制位元的重載允許位,且考慮到重載致能位元發送控制信號。回應於接收到來自控制邏輯的控制信號,重載邏輯可以將第二效能計數器重設元到第二重載值。
控制邏輯接收到第二效能計數器達到第二限值的第二指示,控制邏輯可以存取軟體可見控制位元的第二重載致能位元,並根據第二重載使能發送第二控制信號位元,且重新加載邏輯可以回應於從控制邏輯接收到第二控制信號而將第一效能計數器重置為第一重載值。
在一實施例中,SoC還可以包括用於回應於第二效能計數器達到第二限值而生成記錄的EBS組件,其中EBS記錄包括在生成EBS記錄時定義處理器的狀態的架構元資料。在另一實施例中,SoC還可以包括中斷組件,以回應於第二個效能計數器達到第二個限制來產生中斷。SoC還可以包括用第一類型的事件的第一標識符編程的第一事件選擇(ES)控制,其中通過第一ES控制使第一效能計數器在第一類型的事件發生時增加。可以用第二類型的事件的第二標識符來編程第二ES控制,其中經由第二ES控制使得第二效能計數器在第二類型的事件發生時增加。
圖8是根據本公開的系統晶片(SoC)設計的實施例
的方塊圖。作為具體說明性示例,SoC 800被包括在用戶設備(UE)。在一實施例中,UE指由終端用戶進行通信的任何設備,例如手持電話、智慧型電話、平板電腦、超薄筆記本、具有寬頻轉接器的筆記本電腦或任何其它類似的通信設備。通常,UE連接到基地台或節點,其可能本質上對應於GSM網路中的移動站(MS)。
這裡,SOC 800包括2個核心806和807。核心806和807可以符合指令集體系結構,例如基於英特爾®架構核心TM的處理器、先進微裝置公司(AMD)的處理器、基於MIPS的處理器、基於ARM的處理器設計、或其客戶,以及他們的許可證或採用者。核心806和807耦接到與匯流排介面單元809和L2快取810相關聯以與系統800的其它部分通信的快取控制808。互連811包括片上互連,諸如IOSF、AMBA或上述的其它互連,其潛在地實現了所描述的公開的一或多個方面。在一實施例中,條件分支,間接分支和事件執行邏輯可以包括在核心806和807中。
互連811向諸如訂戶身份模組(SIM)830的它組件提供通信通道以與SIM卡介面,引導ROM 835保存用於由核心806和807執行的引導代碼以初始化和引導SoC 800,SDRAM控制器840與外部記憶體(例如DRAM 860)介面,快閃控制器845與非揮發性記憶體(例如,快閃865)介面,周邊控制器850(例如串行外設介面)與周邊設備介面,視頻編解碼器820和視頻介面825顯示
和接收輸入(例如觸控啟用輸入),GPU 815執行圖形相關計算等。這些介面中的任何一個可以包括本文所描述的公開內容。此外,系統800示出用於通訊的周邊設備,諸如藍牙模組870、3G數據機875、GPS 880和Wi-Fi 885。另外,系統800示出了功率控制器855。
現在參考圖9,示出了根據本發明實施例的系統900的方塊圖。如圖9所示,多處理器系統900是點到點互連系統,且包括經由點到點互連950耦合的第一處理器970和第二處理器980。處理器970和980中的每一者可以是如本文所述的計算系統的處理器的某些版本。在一實施例中,處理器970、980監視處理設備的管理事件以監視處理設備的管理事件的效能。
雖然顯示有兩個處理器970、980,但是應當理解,本公開的範圍不限於此。在其它實施例中,一或多個附加處理器可以存在於給定的處理器中。
所示的處理器970和980分別包括記憶體控制器單元972和982。處理器970還包括其匯流排控制器單元點對點(P-P)介面976和978的一部分;類似地,第二處理器980包括P-P介面986和988。處理器970、980可以使用P-P介面電路978、988通過點對點(P-P)介面950來交換資訊。如圖9所示,IMC972和982將處理器耦接到相應的記憶體,也就是說記憶體932和記憶體934,其可以是主要記憶體局部附接到相應處理器的部分。
處理器970和980可以通過使用點對點介面電路
976、994、986、998的獨立P-P介面952、954與晶片組990交換資訊。晶片組990還可以經由高效能圖形介面939與高效能圖形電路938交換資訊。
共享快取(未示出)可以被包括在任一處理器中或兩個處理器外部,但是經由P-P互連與處理器連接,使得如果處理器被放置在一或兩個處理器的局部快取資訊可以被儲存在共享快取中進入低功耗模式。
晶片組990可以經由介面996耦接到第一匯流排916。在一實施例中,第一匯流排916可以是周邊部件互連(PCI)匯流排,豬如PCI Express匯流排或另一第三代I/O互連匯流排,雖然披露的範圍並不限於此。
如圖9所示,各種I/O設備914可以與匯流排橋918耦接到第一匯流排916,匯流排橋918將第一匯流排916耦接到第二匯流排920。在一實施例中,第二匯流排920可以是低接腳數(LPC)匯流排。各種裝置可以耦接到第二匯流排920,包括例如鍵盤和/或滑鼠922,通信設備927和儲存單元928,例如可以包括指令/代碼和資料930的磁盤驅動器或其它大容量記憶體裝置,在一實施例中。此外,音頻I/O 924可以耦接到第二匯流排920。注意,其它架構是可能的。例如,代替圖9的點對點架構,系統可以實現多點匯流排或其它此類架構。
現在參照圖10,示出了根據本發明實施例的系統1000的方塊圖。圖10示出了處理器1070、1080。在一實施例中,處理器1070、1080監視處理裝置的管理事件的
效能。此外,處理器1070、1080可以分別包括積體記憶體和I/O控制邏輯(“CL”)1072和1082,且通過點對點(P-P)介面1078和1088之間的點對點互連1050彼此相互通信。處理器1070、1080各自經由點對點互連1052和1054經由相應的P-P介面1076至1094和1086至1098與晶片組1090進行通信,如圖所示。對於至少一實施例,CL 1072、1082可以包括積體記憶體控制器單元。CL1072、1028可以包括I/O控制邏輯。如圖所示,耦接到CL1072、1028和I/O設備1014的記憶體1032、1034也耦接到控制邏輯1072、1082。傳統I/O設備1015經由介面1096耦接到晶片組1090。
圖11示出了可以使用觸控螢幕介面連接器的平板計算裝置、智慧型電話或其它移動裝置的實施例的方塊圖1100。處理器1110可以監視處理裝置的管理事件的效能。此外,處理器1110執行主處理操作。音頻子系統1120表示與向計算裝置提供音頻功能相關聯的硬體(例如,音頻硬體和音頻電路)和軟體(例如,驅動程式、編解碼器)。在一實施例中,用戶通過提供由處理器1110接收和處理的音頻命令來與平板計算裝置或智慧型手機進行互動。
顯示子系統1132表示提供視覺和/或觸覺顯示的硬體(例如,顯示裝置)和軟體(例如,驅動程式)組件,用於用戶與平板計算裝置或智慧型手機進行互動。顯示子系統1130包括顯示介面1132,其包括用於向用戶提供顯示
的特定屏幕或硬體裝置。在一實施例中,顯示子系統1130包括向用戶提供輸出和輸入的觸控螢幕裝置。
I/O控制器1140表示與用戶互動相關的硬體設備和軟體組件。I/O控制器1140可以操作以管理作為音頻子系統1120和/或顯示子系統1130的一部分的硬體。此外,I/O控制器1140示出了連接到平板計算裝置或互智慧型手機的附加設備的連接點,用戶可以通過該連接點進行互動。在一實施例中,I/O控制器1140管理諸如加速計、照相機、光感測器或其它環境感測器之類的裝置,或可以包括在平板計算裝置或互智慧型手機中的其它硬體。輸入可以是直接用戶互動的一部分,以及為平板計算裝置或智慧型手機提供環境輸入。
在一實施例中,平板計算裝置或智慧型手機包括管理電池電量使用,電池充電以及與省電操作相關的功能的電源管理1150。記憶體子系統1160包括用於在平板計算裝置或智慧型手機中儲存資訊的記憶體設備。連接1170包括硬體設備(例如,無線和/或有線連接器和通信硬體)和軟體組件(例如,驅動程序,協議堆疊)到平板計算裝置或互智慧型手機以與外部設備通信。蜂巢式連接1172可以包括例如諸如GSM(全球移動通信系統),CDMA(碼分多存取),TDM(時分多工)或其它蜂巢式服務標準的無線載波。無線連接1174可以包括例如不是蜂巢式的活動,例如個人區域網路(例如,藍牙)、區域網路(例如,WiFi)和/或廣域網路(例如,WiMax)或其它
無線通訊。
周邊連接1180包括硬體介面和連接器以及將周邊連接作為周邊設備(“至”1182)連接到其它計算裝置的軟體組件(例如,驅動程式,協定堆疊),以及具有周邊設備連接到平板計算裝置或互智慧型手機的(“自”1184),包括例如“對接”連接器以與其它計算裝置連接。周邊連接1180包括通用或基於標準的連接器,例如通用串列匯流排(USB)連接器,包括迷你顯示器埠(MDP)、高清多媒體介面(HDMI)、火線等的顯示器埠。
圖12示出了計算系統1200的示例形式的機器的示意圖,其中可以執行用於使機器執行本文所討論的任何一種或多種方法的指令集。在替代實施例中,機器可以連接(例如,網路連接)到LAN、內部網、外部網或網際網路中的其它機器。該機器可以在客戶端-伺服器網路環境中的伺服器或客戶端設備的容量中運行,或者作為對等(或分佈式)網路環境中的對等機器。該機器可以是個人電腦(PC)、平板電腦,機上盒(STB)、個人數位助理(PDA)、蜂巢式電話、網路設備、伺服器、網路路由器、交換機或橋接器或任何能夠執行一組指令(順序或其它)的指定機器指定要採取的操作的機器。此外,雖然僅示出了單一機器,但是術語“機器”還應被視為包括單獨或共同執行一組(或多組)指令以執行本文所討論的任何一種或多種方法的機器集。
計算系統1200包括處理裝置1202、主記憶體1204(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM)(諸如同步DRAM(SDRAM)或DRAM(RDRAM)等))、靜態記憶體1206(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等))和資料儲存裝置1218,其經由匯流排1230彼此通信。
處理裝置1202表示一或多個通用處理裝置,例如微處理器、中央處理單元等。更具體地說,處理裝置可以是複雜的指令集計算(CISC)微處理器、精簡指令集計算機(RISC)微處理器、非常長的指令字(VLIW)微處理器或實現其它指令集的處理器、或執行指令集的組合的處理器。處理裝置1202還可以是一或多個專用處理裝置,例如專用積體電路(ASIC)、現場可程式化閘陣列(FPGA)、數位信號處理器(DSP)、網路處理器等。在一實施例中,處理裝置1202可以包括一或多個處理核心。處理裝置1202係配置為執行用於執行本文討論的操作的處理邏輯1226。在一實施例中,處理裝置1202與如關於圖1所描述的計算機系統100和200相同,實現NPEBS模組106。替代的是,計算系統1200可以包括如本文所述的其它組件。
計算系統1200還可以包括可通信地耦接到網路1220的網路介面裝置1208。計算系統1200還可以包括視頻顯示單元1210(例如,液晶顯示器(LCD)或陰極射線管(CRT))、字母數字輸入裝置1212(例如,鍵盤)、游
標控制裝置1214(例如滑鼠)、信號發生裝置1216(例如,揚聲器)或其它周邊裝置。此外,計算系統1200可以包括圖形處理單元1222、視頻處理單元1228和音頻處理單元1232。在另一實施例中,計算系統1200可以包括晶片組(未示出),其指的是設計成與處理裝置1202一起工作並控制處理裝置1202和外部裝置之間的通信的一組積體電路或晶片。例如,晶片組可以是主板上的一組晶片,其將處理裝置1202連接到諸如主記憶體1204和圖形控制器的非常高速的裝置,以及將處理裝置1202連接到低速周邊匯流排,諸如USB、PCI或ISA匯流排。
資料儲存裝置1218可以包括電腦可讀記憶體媒體1224,其上記憶體有軟體1226,該軟體體現了本文所描述的功能的任何一種或多種功能方法。在計算系統1200的執行期間,軟體1226還可以完全地或至少部分地駐留在主記憶體1204內作為指令1226和/或處理裝置1202內的處理邏輯1226作為處理邏輯1226;主記憶體1204和處理裝置1202也構成電腦可讀記憶體媒體。
電腦可讀儲存媒體1224還可用於儲存指令1226和/或包含調用上述應用的方法的軟體庫。關於圖1描述的EBS模組106可以用於指示EBS記錄應該去哪裡,在生成中斷之前應該儲存多少個EBS記錄、EBS記錄的處理等等。儘管在示例性實施例中將電腦可讀儲存媒體1224示為單一媒體,但是術語“電腦可讀儲存媒體”應被認為包括單個媒體或多個媒體(例如,集中式或分佈式資料
庫,以及/或相關聯的快取和服務器),其儲存一組或多組指令。術語“電腦可讀儲存媒體”還應被視為包括能夠儲存,編碼或攜帶一組指令以供機器執行的任何媒體,並使機器執行以下任何一種或多種方法:該實施例。因此,術語“電腦可讀儲存媒體”應被認為包括但不限於固態記憶體以及光和磁性媒體。雖然已經相對於有限數量的實施例描述了本發明,但是本領域技術人員將理解其中的許多修改和變化。旨在所附權利要求覆蓋落入本發明的真實精神和範圍內的所有這些修改和變化。
以下實例涉及另外的實施方案。
實例1係一種監視處理器管理事件的效能之處理器,包含:第一效能計數器,用以在該處理器中發生第一類型的事件時增加,其中一或多個暫存器用以儲存軟體可見控制位元;第一效能計數器,用以在該處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;控制邏輯,用以接收該第一效能計數器達到該第一限值的指示,存取該軟體可見控制位元的重載致能位元,且鑑於該重載致能位元發送控制信號;及重載邏輯,回應於收到來自該控制邏輯的該第一控制信號,將該第二效能計數器重設到第二重載值。
在實例2中,實例1的標的物可選擇性地包括其中回應於該控制邏輯收到該第二效能計數器達到該第二限值的
指示,該控制邏輯存取該軟體可見控制位元的重載致能位元,且鑑於該重載致能位元發送控制信號,及回應於收到來自該控制邏輯的該第二控制信號,該控制邏輯將該第一效能計數器重設為第一重載值。
在實例3中,實例1-2任一者的標的物可選擇性地包括其中回應於該控制邏輯收到該指示,該控制邏輯存取該軟體可見控制位元的第三重載致能位元,且鑑於該第三重載致能位元發送控制信號,回應於收到來自該控制邏輯的該第三控制信號,將該第一效能計數器重設到該第一重載值,回應於該控制邏輯收到該第二指示,該控制邏輯存取該軟體可見控制位元的第四重載致能位元,且鑑於該第四重載致能位元發送控制信號,及回應於收到來自該控制邏輯的該第四控制信號,將該第二效能計數器重設到該第二重載值。
在實例4中,實例1-3任一者的標的物可選擇性地包括基於事件採樣(EBS)組件,回應於該第二效能計數器達到該第二重載值,產生EBS記錄,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
在實例5中,實例1-4任一者的標的物可選擇性地包括其中該EBS組件係EBS處置器,其包含記憶體儲存,用以回應於該第二效能計數器達到該第二線制而儲存該EBS記錄,其中該EBS處置器係使能經由EBS使能控制而產生該EBS記錄以回應於該第二效能計數器達到該第
二限值。
在實例6中,實例1-5任一者的標的物可選擇性地包括中斷組件用以回應該第二效能計數器達到該第二限值。
在實例7中,實例1-6任一者的標的物可選擇性地包括其中該中斷組件係始能經由中斷使能控制用以回應該第二效能計數器達到該第二限值。
在實例8中,實例1-7任一者的標的物可選擇性地包括第一事件選擇(ES)控制,以該第一類型的事件的識別符程式化,其中該第一效能計數器係始能經由該第一ES控制以在發生該第一類型的事件時增加;及第二事件選擇(ES)控制,以該第二類型的事件的識別符程式化,其中該第二效能計數器係始能經由該第二ES控制以在發生該第一類型的事件時增加。
在實例9中,實例1-8任一者的標的物可選擇性地包括一或多個硬體暫存器用以儲存第一重載值和第二重載值,其中該第一重載值係該第一起始值而該第二重載值係該第二起始值。
在實例10中,實例1-9任一者的標的物可選擇性地包括其中該第一效能計數器和該第二效能計數器都是固定式效能計數器。
在實例12中,實例1-11任一者的標的物可選擇性地包括第一軟體可見暫存器,具有第一複數控制位元,其中
該第一軟體可見暫存器對應於該第一效能計數器,其中該第一複數控制位元包含:該重載致能位元;及第五重載致能位元,其中回應於該控制邏輯收到該指示,該控制邏輯存取該等軟體可見控制位元的該第五重載致能位元且鑑於該第五重載致能位元發送第五控制信號,以及該控制邏輯將第三效能計數器重設到第三重載值以回應收到來自該控制邏輯的該第五控制信號;第二軟體可見暫存器,具有第二複數控制位元,其中該第二軟體可見暫存器對應於該第二效能計數器,其中該第二複數控制位元包含:該第二重載致能位元;及第六重載致能位元,其中回應於該控制邏輯收到該第二指示,該控制邏輯存取該等軟體可見控制位元的該第六重載致能位元且鑑於該第六重載致能位元發送第六控制信號,以及該控制邏輯將第三效能計數器重設到第三重載值以回應收到來自該控制邏輯的該第六控制信號。
實例13係一種監視處理器管理事件的效能之方法,包含:在處理器中發生第一類型的事件時增加第一值於第一效能計數器中,其中所述增加該第一值係自起始值至第一限值;在處理器中發生第二類型的事件時增加第二值於第二效能計數器中,其中所述增加該第二值係自該起始值至第二限值;接收該第一效能計數器達到該第一限值的指示;鑑於該指示而存取重載致能位元;鑑於該重載致能位元而發送控制信號;及將該第二效能計數器重設到第二重載值以回應所述該控制信號發送。
在實例14中,實例13的標的物可選擇性地包括接收該第二效能計數器達到該第二限值的指示;鑑於該第二指示而存取第二重載致能位元;鑑於該第二重載致能位元而發送第二控制信號;及將該第一效能計數器重設到第一重載值以回應所述該第二控制信號的發送。
在實例15中,實例13-14任一者的標的物可選擇性地包括致使基於事件採樣(EBS)組件產生且儲存EBS記錄以回應該第二效能計數器達到該第二限值,其中該EBS記錄包含架構性元資料,其界定在產生該EBS記錄時該處理器的狀態。
在實例16中,實例13-15任一者的標的物可選擇性地包括致使中斷組件產生中斷以回應該第二效能計數器達到該第二限值。
實例17係一種監視處理器管理事件的效能之處理器,包含:一或多個暫存器,用以儲存軟體可見控制位元;第一效能計數器,用以在該處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;第三效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第三效能計數器從第三起始值增加到第三限值;控制邏輯,用以接收該第一效能
計數器達到該第一限值的指示,存取該等軟體可見控制位元的第一重載致能位元和第二重載致能位元,且鑑於該第一重載致能位元發送第一控制信號及鑑於該第二重載致能位元發送第二控制信號;及重載邏輯,回應於收到來自該控制邏輯的該第一控制信號,將該第二效能計數器重設到第二重載值,以及回應於收到來自該控制邏輯的該第二控制信號,將該第三效能計數器重設到第三重載值。
在實例18中,實例17的標的物可選擇性地包括回應於該控制邏輯收到該第二效能計數器達到該二限值的第二指示,存取該等軟體可見控制位元的第三重載致能位元和第四重載致能位元且鑑於該第三重載致能位元發送第三控制信號及鑑於該第四重載致能位元發送第四控制信號,該重載邏輯將該第一效能計數器重設到第一重載值以回應於收到來自該控制邏輯的該第三控制信號,以及將該第三效能計數器重設到第三重載值以回應於收到來自該控制邏輯的該第四控制信號,回應於該邏輯控制收到該第三效能計數器達到該第三限值的第三指示,該控制邏輯存取該等軟體可見控制位元的第五重載致能位元和第六重載致能位元且鑑於該第五重載致能位元發送第五控制信號及鑑於該第六重載致能位元發送第六控制信號,及該重載邏輯將該第一效能計數器重設到第一重載值以回應收到來自該控制邏輯的第五控制信號以及將該第二效能計數器重設到第二重載值以回應收到來自該控制邏輯的第六控制信號。
在實例19中,實例17-18任一者的標的物可選擇性
地包括EBS組件用以產生EBS記錄以回應該第二效能計數器達到該第二限值或該第三效能計數器達到該第三限值得至少一者,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
在實例20中,實例17-19任一者的標的物可選擇性地包括中斷組件用以產生中斷以回應該第二效能計數器達到該第二限值或該第三效能計數器達到該第三限值得至少一者。
實例21係一種系統晶片(SoC)處理器,其監視SoC管理事件的效能,包含:複數處理器;記憶體裝置;一或多個暫存器,用以儲存軟體可見控制位元;一或多個硬體暫存器,用以儲存第一重載值和第二重載值;第一效能計數器,用以在該複數處理器的處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該複數處理器的處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;控制邏輯,用以接收該第一效能計數器達到該第一限值的指示,存取該等軟體可見控制位元的重載致能位元,且鑑於該重載致能位元發送控制信號;及重載邏輯,回應於收到來自該控制邏輯的該控制信號,將該第二效能計數器重設到第二重載值。
在實例22中,實例21的標的物可選擇性地包括其中回應於該控制邏輯收到該第二效能計數器達到該第二限值的第二指示,該控制邏輯存取該等軟體可見控制位元的第
二重載致能位元,且鑑於該第二重載致能位元發送第二控制信號,及該重載邏輯將該第一效能計數器重設到第一重載值以回應收到來自該控制邏輯的該第二控制信號。
在實例23中,實例21-22任一者的標的物可選擇性地包括EBS組件用以產生EBS記錄以回應該第二效能計數器達到該第二限值,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
在實例24中,實例21-23任一者的標的物可選擇性地包括中斷組件,用以產生中斷以回應該第二效能計數器達到該第二限值。
各種實施例可以具有上述結構特徵的不同組合。例如,上述SoC的所有可選特徵也可以相對於本文描述的處理器來實現,且示例中的細節可以在一個或多個實施例中的任何地方使用。
設計可能會經歷從創作到模擬到製作的各個級。表示設計的資料可以以多種方式表示設計。首先,在模擬中有用,可以使用硬體描述語言或其它功能描述語言來表示硬體。此外,具有邏輯和/或電晶體柵極的電路層級模型可以在設計過程的某些級產生。此外,大多數設計在某些級達到表示硬體模型中各種設備的實體放置的資料級別。在使用常規半導體製造技術的情況下,表示硬體模型的資料可以是指定用於製造積體電路的掩模的不同掩模層上存在或不存在各種特徵的資料。在設計的任何表示中,資料可以任何形式的機器可讀媒體存儲。記憶體或諸如磁碟的磁
性或光學存儲可以是機器可讀媒體,用於存儲通過光或電波調變或以其它方式生成的資訊以傳送此類資訊。當發送指示或攜帶代碼或設計的電載波時,在執行電信號的複製、緩衝或再傳輸的程度上,進行新的複製。因此,通信提供商或網路提供商可以至少暫時存儲有形的機器可讀媒體上的物品,諸如編碼到載波中的資訊,體現本公開實施例的技術。
本文所用的模組是指硬體、軟體和/或韌體的任何組合。作為示例,模組包括與非過渡性媒體相關聯的諸如微控制器的硬體,以存儲適於由微控制器執行的代碼。因此,在一實施例中,參考模組是指硬體,其係特別地配置為識別和/或執行要在非過渡性媒體上保持的代碼。此外,在另一實施例中,模組的使用是指包括代碼的非過渡性媒體,其特別適於由微控制器執行以執行預定的操作。且可以推斷,在另一實施例中,術語模組(在該示例中)可以指微控制器和非過渡性媒體的組合。通常單獨說明的模組邊界通常會有變化並可能重疊。例如,第一和第二模組可以共用硬體、軟體、韌體或其組合,同時可能保留一些獨立的硬體、軟體或韌體。在一實施例中,術語邏輯的使用包括諸如電晶體、暫存器或諸如可程式設計邏輯器件的其它硬體的硬體。
在一實施例中,使用短語“配置為”是指安排、組合、製造,提供銷售、導入和/或設計設備、硬體、邏輯或元件以執行指定或確定的任務。在該示例中,如果未設
置,耦合和/或互連以執行該指定的任務,而其未運行的裝置或其元件仍係“配置為”執行指定的任務。作為純粹的說明性示例,邏輯閘可以在操作期間提供0或1。但是,配置為向時鐘提供使能信號的邏輯閘不包括可能提供1或0的每個潛在邏輯門。相反地,邏輯閘是以某種方式耦合的,在運行期間,1或0的輸出為啟用時鐘。再次注意,使用術語“配置為”不需要操作,而是專注於設備、硬體和/或元件的潛在狀態,其中在潛在狀態下,設備、硬體和/或元件是旨在設備、硬體和/或元件正在操作時執行特定任務。
此外,在一實施例中,使用短語“to”,“能夠”或“可操作地”是指以這樣的方式設計的一些設備、邏輯、硬體和/或元件,設備、邏輯、硬體和/或元件。注意,如上所述,在一實施例中使用,能夠或可操作地指的是設備、邏輯、硬體和/或元件的潛在狀態,其中設備、邏輯、硬體和/或元件是不是操作,而是以這樣的方式設計,以使得能夠以指定的方式使用設備。
如本文所使用的,包括數位狀態、邏輯狀態或二進位邏輯狀態的任何已知表示。通常,邏輯層級,邏輯值或邏輯值的使用也稱為1和0,它們簡單地表示二進位邏輯狀態。例如,1表示高邏輯層級,0表示低邏輯層級。在一實施例中,諸如電晶體或快閃記憶體單元的存儲單元可能能夠保持單個邏輯值或多個邏輯值。然而,已經使用了電腦系統中的值的其它表示。例如,十進位數字十也可以表
示為二進位值910和十六進位字母A。因此,值包括能夠保持在電腦系統中的資訊的任何表示。
此外,狀態可以由值或值的一部分表示。作為示例,諸如邏輯1的第一值可以表示預設或初始狀態,而諸如邏輯零的第二值可以表示非預設狀態。此外,在一實施例中,重設和設置的術語分別指預設值和更新的值或狀態。例如,預設值可能包括高邏輯值,即重置,而更新的值潛在地包括低邏輯值,即設置。注意,值的任何組合可以用於表示任何數量的狀態。
上述方法、硬體、軟體、韌體或代碼的實施例可以通過存儲在機器可存取,機器可讀,電腦可存取或電腦可讀媒體上的指令或代碼來實現,該媒體可由處理元件。非過渡性機器可存取/可讀媒體包括以機器可讀的形式(例如電腦或電子系統)提供(即,存儲和/或發送)資訊的任何機制。例如,非過渡性機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);唯讀存儲器;磁性或光學存儲媒體;快閃記憶體裝置;蓄電裝置;光學存放裝置;聲學存放裝置;用於保存從短暫(傳播的)信號(例如載波、紅外信號、數位信號)接收的資訊的其它形式的存儲裝置;等等,它們將與可能從中接收資訊的非過渡性媒體區分開來。
用於程式設計執行本公開實施例的邏輯的指令可以存儲在系統中的記憶體中,諸如DRAM,快取記憶體、快閃記憶體或其它記憶體。所以,指令可經由網路或透過其它
電腦可讀媒體予以分配。所以,指令可經由網路或透過其它電腦媒體予以分配。因此,機器可讀媒體可包括用於以機器(例如,電腦)可讀的形式存儲或發送資訊的任何機制,但不限於,軟碟、光碟、壓縮磁碟、唯讀記憶體(CD-ROM)和磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式設計唯讀記憶體(EPROM)、電可抹除可程式設計唯讀記憶體(EEPROM)、磁或光卡、快閃記憶體或用於通過網際網路通過電、光、聲或其它形式的傳播信號(例如,載波,紅外信號,數位信號等)傳輸資訊的有形的機器可讀記憶體。因此,電腦可讀媒體包括適用於以機器(例如電腦)可讀的形式存儲或發送電子指令或資訊的任何類型的有形機器可讀媒體。
遍及本說明書的各部分在“一實施例”或“實施例”中的參考意味著結合實施例描述的特定特徵,結構或特性包括在本公開的至少一實施例中。因此,遍及本說明書的各部分的短語“在一實施例中”或“在一實施例中”的出現不一定都指相同的實施例。此外,在一個或多個實施例中,特定特徵,結構或特徵可以以任何合適的方式組合。
在前面的說明書中,已經參考具體示例性實施例給出了詳細描述。然而,顯而易見的是,在不脫離如所附權利要求中闡述的本公開的更廣泛的精神和範圍的情況下,可以對其進行各種修改和改變。因此,說明書和附圖被認為是說明性的而不是限制性的。此外,上述實施例和其它示例性語言的使用不一定指相同的實施例或相同的示例,而
是可以指不同和不同的實施例,以及潛在的相同實施例。
100‧‧‧系統架構
102‧‧‧處理器
104‧‧‧匯流排/介面
106‧‧‧EBS模組
108‧‧‧EBS處置器
110a‧‧‧記憶體儲存
110n‧‧‧記憶體儲存
112‧‧‧效能監視中斷(PMI)組件
114a‧‧‧第一ES控制
114n‧‧‧ES控制
116a‧‧‧第一效能計數器
116n‧‧‧效能計數器
118a‧‧‧重載使能控制
118n‧‧‧重載使能控制
120a‧‧‧第一EBS使能控制
120n‧‧‧EBS使能控制
122a‧‧‧中斷使能控制
122n‧‧‧中斷使能控制
124‧‧‧非精確的基於事件的採樣(NPEBS)組件
126‧‧‧精確的基於事件的採樣(PEBS)組件
Claims (19)
- 一種處理器,包含:一或多個暫存器,用以儲存軟體可見控制位元;第一效能計數器,用以在該處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;控制邏輯,用以接收該第一效能計數器達到該第一限值的指示,存取該軟體可見控制位元的重載致能位元,且鑑於該重載致能位元發送控制信號;及重載邏輯,反應於接收來自該控制邏輯的該控制信號,將該第二效能計數器重設到第二重載值,其中:反應於該控制邏輯接收該第二效能計數器達到該第二限值的第二指示,該控制邏輯存取該軟體可見控制位元的第二重載致能位元,且鑑於該第二重載致能位元發送第二控制信號,及反應於接收來自該控制邏輯的該第二控制信號,該控制邏輯將該第一效能計數器重設為第一重載值。
- 如申請專利範圍第1項的處理器,其中反應於該控制邏輯接收該指示,該控制邏輯用以存取該軟體可見控制位元的第三重載致能位元,且鑑於該第三 重載致能位元發送第三控制信號,反應於接收來自該控制邏輯的該第三控制信號,該重載邏輯用以將該第一效能計數器重設到該第一重載值,反應於該控制邏輯接收該第二指示,該控制邏輯用以存取該軟體可見控制位元的第四重載致能位元,且鑑於該第四重載致能位元發送第四控制信號,及反應於接收來自該控制邏輯的該第四控制信號,該重載邏輯用以將該第二效能計數器重設到該第二重載值。
- 如申請專利範圍第1項的處理器,進一步包含基於事件採樣(EBS)組件,反應於該第二效能計數器達到該第二限值,產生EBS記錄,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
- 如申請專利範圍第3項的處理器,其中該EBS組件係EBS處置器,其包含記憶體儲存,用以反應於該第二效能計數器達到該第二阻值而儲存產生的該EBS記錄,其中該EBS處置器係經由EBS致能控制致能以反應於該第二效能計數器達到該第二限值而產生該EBS記錄。
- 如申請專利範圍第1項的處理器,進一步包含中斷組件用以反應於該第二效能計數器達到該第二限值而產生中斷。
- 如申請專利範圍第5項的處理器,其中該中斷組件係經由中斷致能控制致能用以反應於該第二效能計數器 達到該第二限值而產生該中斷。
- 如申請專利範圍第1項的處理器,進一步包含:第一事件選擇(ES)控制,以該第一類型的事件的第一識別符程式化,其中該第一效能計數器係經由該第一ES控制致能以在發生該第一類型的事件時增加;及第二事件選擇(ES)控制,以該第二類型的事件的第二識別符程式化,其中該第二效能計數器係經由該第二ES控制致能以在發生該第二類型的事件時增加。
- 如申請專利範圍第1項的處理器,進一步包含一或多個硬體暫存器用以儲存第一重載值和第二重載值,其中該第一重載值係該第一起始值,而該第二重載值係該第二起始值。
- 如申請專利範圍第1項的處理器,其中該第一效能計數器和該第二效能計數器都是固定式效能計數器。
- 如申請專利範圍第2項的處理器,進一步包含:第一軟體可見暫存器,具有第一複數控制位元,其中該第一軟體可見暫存器對應於該第一效能計數器,其中該第一複數控制位元包含:該重載致能位元;及第五重載致能位元,其中反應於該控制邏輯接收該指示,該控制邏輯用以存取該軟體可見控制位元的該第五重載致能位元且鑑於該第五重載致能位元發送第五控制信號,以及該重載邏輯將第三效能計數器重設到第三重載值以反應接收來自該控制邏輯的該第五控制信號; 第二軟體可見暫存器,具有第二複數控制位元,其中該第二軟體可見暫存器對應於該第二效能計數器,其中該第二複數控制位元包含:該第二重載致能位元;及第六重載致能位元,其中反應於該控制邏輯接收該第二指示,該控制邏輯用以存取該軟體可見控制位元的該第六重載致能位元且鑑於該第六重載致能位元發送第六控制信號,以及該重載邏輯用以將第三效能計數器重設到第三重載值以反應接收來自該控制邏輯的該第六控制信號。
- 一種用於使用可重載的效能計數器監控處理器之效能的方法,包含:在處理器中發生第一類型的事件時增加第一值於第一效能計數器中,其中所述增加該第一值係自第一起始值至第一限值;在處理器中發生第二類型的事件時增加第二值於第二效能計數器中,其中所述增加該第二值係自第二起始值至第二限值;接收該第一效能計數器達到該第一限值的指示;鑑於該指示而存取重載致能位元;鑑於該重載致能位元而發送控制信號;將該第二效能計數器重設到第二重載值以反應所述該控制信號發送;接收該第二效能計數器達到該第二限值的第二指示; 鑑於該第二指示而存取第二重載致能位元;鑑於該第二重載致能位元而發送第二控制信號;及將該第一效能計數器重設到第一重載值以反應所述該第二控制信號的發送。
- 如申請專利範圍第11項的方法,進一步包含:致使基於事件採樣(EBS)組件產生且儲存EBS記錄以反應該第二效能計數器達到該第二限值,其中該EBS記錄包含架構性元資料,其界定在產生該EBS記錄時該處理器的狀態。
- 如申請專利範圍第11項的方法,進一步包含:致使中斷組件產生中斷以反應該第二效能計數器達到該第二限值。
- 一種處理器,包含:一或多個暫存器,用以儲存軟體可見控制位元;第一效能計數器,用以在該處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;第三效能計數器,用以在該處理器中發生第三類型的事件時增加,其中該第三效能計數器從第三起始值增加到第三限值;控制邏輯,用以接收該第一效能計數器達到該第一限 值的指示,存取該軟體可見控制位元的第一重載致能位元和第二重載致能位元,且鑑於該第一重載致能位元發送第一控制信號及鑑於該第二重載致能位元發送第二控制信號;及重載邏輯,用以反應於接收來自該控制邏輯的該第一控制信號,將該第二效能計數器重設到第二重載值,以及反應於接收來自該控制邏輯的該第二控制信號,將該第三效能計數器重設到第三重載值,其中:反應於該控制邏輯接收該第二效能計數器達到該二限值的第二指示,該控制邏輯存取該軟體可見控制位元的第三重載致能位元和第四重載致能位元,且鑑於該第三重載致能位元發送第三控制信號,及鑑於該第四重載致能位元發送第四控制信號,該重載邏輯將該第一效能計數器重設到第一重載值以反應於接收來自該控制邏輯的該第三控制信號,以及將該第三效能計數器重設到第三重載值以反應於接收來自該控制邏輯的該第四控制信號,反應於該邏輯控制接收該第三效能計數器達到該第三限值的第三指示,該控制邏輯存取該軟體可見控制位元的第五重載致能位元和第六重載致能位元,且鑑於該第五重載致能位元發送第五控制信號,及鑑於該第六重載致能位元發送第六控制信號,及該重載邏輯將該第一效能計數器重設到第一重載值以 反應接收來自該控制邏輯的第五控制信號以及將該第二效能計數器重設到第二重載值以反應接收來自該控制邏輯的第六控制信號。
- 如申請專利範圍第14項的處理器,進一步包含EBS組件用以產生EBS記錄以反應該第二效能計數器達到該第二限值或該第三效能計數器達到該第三限值的至少一者,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
- 如申請專利範圍第14項的處理器,進一步包含中斷組件用以產生中斷以反應該第二效能計數器達到該第二限值或該第三效能計數器達到該第三限值的至少一者。
- 一種系統晶片(SoC),包含:複數處理器;記憶體裝置;一或多個暫存器,用以儲存軟體可見控制位元;一或多個硬體暫存器,用以儲存第一重載值和第二重載值;第一效能計數器,用以在該複數處理器的處理器中發生第一類型的事件時增加,其中該第一效能計數器從第一起始值增加到第一限值;第二效能計數器,用以在該處理器中發生第二類型的事件時增加,其中該第二效能計數器從第二起始值增加到第二限值;控制邏輯,用以接收該第一效能計數器達到該第一限 值的指示,存取該軟體可見控制位元的重載致能位元,且鑑於該重載致能位元發送控制信號;及重載邏輯,反應於接收來自該控制邏輯的該控制信號,將該第二效能計數器重設到第二重載值,其中:反應於該控制邏輯接收該第二效能計數器達到該第二限值的第二指示,該控制邏輯存取該軟體可見控制位元的第二重載致能位元,且鑑於該第二重載致能位元發送第二控制信號,及該重載邏輯將該第一效能計數器重設到第一重載值以反應接收來自該控制邏輯的該第二控制信號。
- 如申請專利範圍第17項的SoC,進一步包含EBS組件用以產生EBS記錄以反應該第二效能計數器達到該第二限值,其中該EBS記錄包含架構性元資料,其界定在該EBS記錄產生時該處理器的狀態。
- 如申請專利範圍第17項的SoC,進一步包含中斷組件,用以產生中斷以反應該第二效能計數器達到該第二限值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/011,094 US9766997B2 (en) | 2016-01-29 | 2016-01-29 | Monitoring performance of a processor using reloadable performance counters |
US15/011,094 | 2016-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201737083A TW201737083A (zh) | 2017-10-16 |
TWI724083B true TWI724083B (zh) | 2021-04-11 |
Family
ID=59386778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105142791A TWI724083B (zh) | 2016-01-29 | 2016-12-22 | 用於使用可重載的效能計數器監控處理器之效能的處理器、方法及系統晶片 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9766997B2 (zh) |
TW (1) | TWI724083B (zh) |
WO (1) | WO2017131871A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766999B2 (en) * | 2014-05-30 | 2017-09-19 | Intel Corporation | Monitoring performance of a processing device to manage non-precise events |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10298516B2 (en) * | 2016-04-19 | 2019-05-21 | Hyland Switzerland Sàrl | System and methods for sharing resources among application modules |
US10970388B2 (en) * | 2017-06-28 | 2021-04-06 | Webroot Inc. | Discrete processor feature behavior collection |
US11010092B2 (en) | 2018-05-09 | 2021-05-18 | Micron Technology, Inc. | Prefetch signaling in memory system or sub-system |
US10754578B2 (en) * | 2018-05-09 | 2020-08-25 | Micron Technology, Inc. | Memory buffer management and bypass |
US10714159B2 (en) | 2018-05-09 | 2020-07-14 | Micron Technology, Inc. | Indication in memory system or sub-system of latency associated with performing an access command |
US10942854B2 (en) | 2018-05-09 | 2021-03-09 | Micron Technology, Inc. | Prefetch management for memory |
GB2577708B (en) * | 2018-10-03 | 2022-09-07 | Advanced Risc Mach Ltd | An apparatus and method for monitoring events in a data processing system |
FR3088124A1 (fr) | 2018-11-06 | 2020-05-08 | Stmicroelectronics (Rousset) Sas | Procede d'elaboration de signaux declencheurs pour une commande d'une interface multimedia, et circuit integre correspondant |
FR3088125A1 (fr) * | 2018-11-06 | 2020-05-08 | Stmicroelectronics (Rousset) Sas | Procede de surveillance d'une tache, en particulier une tache graphique, pour un module electronique, en particulier d'interface multimedia, et dispositif correspondant. |
US10877552B1 (en) * | 2019-09-19 | 2020-12-29 | Amazon Technologies, Inc. | Dynamic power reduction through data transfer request limiting |
US11016773B2 (en) * | 2019-09-27 | 2021-05-25 | Intel Corporation | Processor trace extensions to facilitate real-time security monitoring |
US11895093B2 (en) | 2020-07-23 | 2024-02-06 | Dell Products L.P. | Method and system for optimizing access to data nodes of a data cluster using a data access gateway |
US11936624B2 (en) | 2020-07-23 | 2024-03-19 | Dell Products L.P. | Method and system for optimizing access to data nodes of a data cluster using a data access gateway and bidding counters |
US11736447B2 (en) * | 2020-07-23 | 2023-08-22 | Dell Products L.P. | Method and system for optimizing access to data nodes of a data cluster using a data access gateway and metadata mapping based bidding in an accelerator pool |
US11882098B2 (en) * | 2020-07-23 | 2024-01-23 | Dell Products L.P. | Method and system for optimizing access to data nodes of a data cluster using a data access gateway and metadata mapping based bidding |
US11526284B2 (en) | 2020-08-14 | 2022-12-13 | Dell Products L.P. | Method and system for storing data in a multiple data cluster system |
US20220100626A1 (en) * | 2020-09-26 | 2022-03-31 | Intel Corporation | Monitoring performance cost of events |
US20220092174A1 (en) * | 2021-12-01 | 2022-03-24 | Intel Corporation | Performance monitoring unit of a processor deterring tampering of counter configuration and enabling verifiable data sampling |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201342069A (zh) * | 2011-12-29 | 2013-10-16 | Intel Corp | 基於事件計數導致中斷的技術 |
US20140013020A1 (en) * | 2012-07-06 | 2014-01-09 | Arm Limited | Data processing apparatus and method |
US20140059334A1 (en) * | 2010-11-16 | 2014-02-27 | International Business Machines Corporation | Autonomic Hotspot Profiling Using Paired Performance Sampling |
CN103823716A (zh) * | 2012-09-21 | 2014-05-28 | 宏达国际电子股份有限公司 | 具多重中央处理单元的电子装置及其效能管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249288B2 (en) | 2004-09-14 | 2007-07-24 | Freescale Semiconductor, Inc. | Method and apparatus for non-intrusive tracing |
US7461383B2 (en) | 2006-08-21 | 2008-12-02 | International Business Machines Corporation | Method and apparatus for efficient performance monitoring of a large number of simultaneous events |
US9063762B2 (en) | 2011-08-26 | 2015-06-23 | Vmware, Inc. | Methods, apparatus, and articles of manufacture to virtualize performance counters |
US9223979B2 (en) | 2012-10-31 | 2015-12-29 | Intel Corporation | Detection of return oriented programming attacks |
-
2016
- 2016-01-29 US US15/011,094 patent/US9766997B2/en active Active
- 2016-12-09 WO PCT/US2016/066001 patent/WO2017131871A1/en active Application Filing
- 2016-12-22 TW TW105142791A patent/TWI724083B/zh not_active IP Right Cessation
-
2017
- 2017-09-13 US US15/703,860 patent/US10346280B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059334A1 (en) * | 2010-11-16 | 2014-02-27 | International Business Machines Corporation | Autonomic Hotspot Profiling Using Paired Performance Sampling |
TW201342069A (zh) * | 2011-12-29 | 2013-10-16 | Intel Corp | 基於事件計數導致中斷的技術 |
US20140013020A1 (en) * | 2012-07-06 | 2014-01-09 | Arm Limited | Data processing apparatus and method |
CN103823716A (zh) * | 2012-09-21 | 2014-05-28 | 宏达国际电子股份有限公司 | 具多重中央处理单元的电子装置及其效能管理方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201737083A (zh) | 2017-10-16 |
US10346280B2 (en) | 2019-07-09 |
US20180004622A1 (en) | 2018-01-04 |
WO2017131871A1 (en) | 2017-08-03 |
US9766997B2 (en) | 2017-09-19 |
US20170220447A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI724083B (zh) | 用於使用可重載的效能計數器監控處理器之效能的處理器、方法及系統晶片 | |
US10656697B2 (en) | Processor core power event tracing | |
US10152599B2 (en) | Security mechanisms for extreme deep sleep state | |
US10102134B2 (en) | Instruction and logic for run-time evaluation of multiple prefetchers | |
US10216616B2 (en) | Cooperative triggering | |
US10649899B2 (en) | Multicore memory data recorder for kernel module | |
US11074204B2 (en) | Arbiter based serialization of processor system management interrupt events | |
US11768683B2 (en) | Instruction and logic for tracking fetch performance bottlenecks | |
US10175986B2 (en) | Stateless capture of data linear addresses during precise event based sampling | |
US9465680B1 (en) | Method and apparatus for processor performance monitoring | |
US10365988B2 (en) | Monitoring performance of a processing device to manage non-precise events | |
US9626274B2 (en) | Instruction and logic for tracking access to monitored regions | |
US20180004526A1 (en) | System and Method for Tracing Data Addresses | |
US9823984B2 (en) | Remapping of memory in memory control architectures | |
US10795684B2 (en) | Method and logic for maintaining performance counters with dynamic frequencies | |
US20220100626A1 (en) | Monitoring performance cost of events |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |