TW201333694A - 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術 - Google Patents

於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術 Download PDF

Info

Publication number
TW201333694A
TW201333694A TW101150132A TW101150132A TW201333694A TW 201333694 A TW201333694 A TW 201333694A TW 101150132 A TW101150132 A TW 101150132A TW 101150132 A TW101150132 A TW 101150132A TW 201333694 A TW201333694 A TW 201333694A
Authority
TW
Taiwan
Prior art keywords
mode
instruction
integrated circuit
tracking
instructions
Prior art date
Application number
TW101150132A
Other languages
English (en)
Other versions
TWI461908B (zh
Inventor
Jason W Brandt
Peter Lachner
Huy V Nguyen
Jonathan J Tyler
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201333694A publication Critical patent/TW201333694A/zh
Application granted granted Critical
Publication of TWI461908B publication Critical patent/TWI461908B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

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

Abstract

根據本文中所揭示之實施例,提供用於於一即時指令追蹤紀錄中實施除錯動作之選擇性紀錄的方法、系統、機制、技術及裝置。舉例來說,在一個實施例中,此構件可包括一積體電路,該積體電路具有:用於隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行起始針對該等指令的指令追蹤之構件;用於產生描述該指令追蹤之複數個封包至一除錯紀錄之構件;用於在該積體電路內起始一替代性執行模式之構件;及用於抑制進入該替代性執行模式之指示的構件。額外及替代性構件可經實施,從而選擇性地使得一積體電路在至該替代性執行模式之轉變之後根據一不可見追蹤模式或一可見追蹤模式來操作。

Description

於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術 版權通知
本專利文獻之揭示內容的一部分含有受到版權保護之材料。版權所有者不反對由任何人對專利文獻或專利揭示內容進行拓製,如其在專利商標局之專利檔案或紀錄中所呈現,但無論如何仍另外保留所有版權權利。
發明領域
本文中所描述之標的物大體上係關於計算領域,且更特定而言係關於用於於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄的系統及方法。
發明背景
【先前技術】章節中論述之標的物不應僅由於其在【先前技術】章節中之提及而被假設為先前技術。類似地,在【先前技術】章節中提及或與【先前技術】章節之標的物相關聯的問題不應假設為先前在先前技術中已認識到。【先前技術】章節中之標的物僅表示不同方法,該等方法自身亦可對應於所主張標的物之實施例。
即時指令追蹤(RTIT)係紀錄何指令正由處理器 執行之除錯特徵。RTIT紀錄歸因於處理器進入或離開所追蹤區或模式而開始或停止追蹤的時間。紀錄追蹤之開始及停止提供包括(例如)對在所追蹤區或模式中花費之循環的數目進行適當計數的多種益處,進行適當計數又使得能夠計算每循環之指令數(IPC)。探測模式係一涉及執行並非正常軟體之部分之額外指令的除錯特徵。當正產生RTIT追蹤時,除錯器可進入探測模式以便藉由以下兩者來輔助除錯:提供額外紀錄資訊,或修改處理器或組態有此處理器之系統的行為。在一些情況下,使RTIT紀錄指示進入並脫離探測模式之地方及/或時間可為有益的。此情形可將額外資訊提供至紀錄;從而允許除錯模式對RTIT追蹤之影響可見。在其他情況下,使RTIT紀錄忽略不僅在探測模式中執行之所有指令而且亦完全忽略進入探測模式可為有益的。藉由允許RTIT紀錄不被進入探測模式擾亂,使用探測模式來對系統進行除錯而不干擾RTIT追蹤係可能的。此情形何時有用之實例係當硬體除錯器正試圖自身對RTIT追蹤機制進行除錯時。習知RTIT機制不提供使得額外指令被執行之除錯技術仍可提供RTIT機制自身之透明除錯的構件。
此項技術之當前狀態可因此受益於如本文中所描述之於即時指令追蹤(RTIT)紀錄中實施除錯動作之選擇性紀錄的系統及方法。
依據本發明之一實施例,係特地提出一種在一積體電路中之方法,其中該方法包含:隨著一所追蹤應用程 式、模式或程式碼區之指令藉由該積體電路執行,起始針對該等指令的指令追蹤;產生描述該指令追蹤之複數個封包至一除錯紀錄;在該積體電路內起始一替代性執行模式;及抑制進入該替代性執行模式之指示。
100‧‧‧例示性架構
105、325‧‧‧模式產生邏輯
110、310‧‧‧封包產生邏輯
111‧‧‧觸發啟用
112‧‧‧內容脈絡啟用
113‧‧‧篩選啟用
114‧‧‧除錯模式停用
115‧‧‧封包啟用
116‧‧‧封包啟用或除錯
117‧‧‧PGE/PGD抑制
118‧‧‧篩選啟用凍結
130‧‧‧即時指令追蹤(RTIT)邏輯
200‧‧‧替代性例示性架構
201、301‧‧‧積體電路
202‧‧‧時序封包
204‧‧‧維護封包
206‧‧‧追蹤封包
215、315‧‧‧資料匯流排
235、335‧‧‧除錯紀錄
299、340‧‧‧模式位元
305‧‧‧指令追蹤邏輯
365‧‧‧通信匯流排
370、670‧‧‧周邊器件
375、896‧‧‧介面
380‧‧‧顯示單元
395、640、732、734、832、834、1140‧‧‧記憶體
396、610、615、870、880、1010、1215‧‧‧處理器
399、600、800‧‧‧系統
500‧‧‧處理器管線
502‧‧‧提取級
504‧‧‧長度解碼級
506‧‧‧解碼級
508‧‧‧分配級
510‧‧‧重新命名級
512‧‧‧排程級
514‧‧‧暫存器讀取/記憶體讀取級
516‧‧‧執行級
518‧‧‧寫回/記憶體寫入級
522‧‧‧異常處置級
524‧‧‧提交級
530‧‧‧前端單元
532‧‧‧分支預測單元
534‧‧‧指令快取單元
536‧‧‧指令轉譯後援緩衝器(TLB)
538‧‧‧指令提取單元
540‧‧‧解碼單元
550‧‧‧執行引擎單元
552‧‧‧重新命名/分配器單元
554‧‧‧引退單元
556‧‧‧排程器單元
558‧‧‧實體暫存器檔案單元
560‧‧‧執行叢集
562‧‧‧執行單元
564‧‧‧記憶體存取單元
570‧‧‧記憶體單元
572‧‧‧資料TLB單元
574‧‧‧資料快取單元
576‧‧‧第2層級(L2)快取單元
590‧‧‧處理器核心
620‧‧‧圖形記憶體控制器集線器(GMCH)
645‧‧‧顯示器
650‧‧‧輸入/輸出(I/O)控制器集線器(ICH)
660‧‧‧外部圖形器件
695‧‧‧前端匯流排(FSB)
700‧‧‧第二系統
714、814‧‧‧I/O器件
716‧‧‧第一匯流排
718‧‧‧匯流排橋接器
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音訊I/O
727‧‧‧通信器件
728‧‧‧儲存單元
730‧‧‧指令/程式碼及資料
738‧‧‧高效能圖形電路
739‧‧‧高效能圖形介面
750‧‧‧點對點介面
752、754、778、788、878、888‧‧‧點對點(P-P)介面
770‧‧‧第一處理器
772、782‧‧‧整合式記憶體控制器單元
776、786‧‧‧點對點(P-P)介面/點對點介面電路
780‧‧‧第二處理器
790、890‧‧‧晶片組
794、798‧‧‧點對點介面電路
815‧‧‧舊式I/O器件
850~854‧‧‧點對點互連件
872、882‧‧‧I/O控制邏輯(「CL」)
876、886、894、898‧‧‧P-P介面
901‧‧‧平板計算器件
902‧‧‧手持型智慧型電話
903‧‧‧觸控式螢幕介面
904‧‧‧整合式處理器
1000‧‧‧方塊圖
1020‧‧‧音訊子系統
1030‧‧‧顯示子系統
1032‧‧‧顯示介面
1040‧‧‧I/O控制器
1050‧‧‧電力管理
1060‧‧‧記憶體子系統
1070‧‧‧連接性
1072‧‧‧蜂巢式連接性
1074‧‧‧無線連接性
1080‧‧‧周邊連接
1082‧‧‧至
1084‧‧‧自
1110‧‧‧硬體或軟體模型
1120‧‧‧模擬軟體
1130‧‧‧儲存媒體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧製造設施
1205‧‧‧程式
1210‧‧‧仿真邏輯
1302‧‧‧高階語言
1304‧‧‧x86編譯器
1306‧‧‧x86二進位程式碼
1308‧‧‧替代性指令集編譯器
1310‧‧‧替代性指令集二進位程式碼
1312‧‧‧指令轉換器
1314‧‧‧無至少一個x86指令集核心之處理器
1316‧‧‧具有至少一個x86指令集核心之處理器
實施例藉由實例且並非限制地予以說明,且在結合諸圖考慮時參看以下詳細描述將更充分地得到理解,在諸圖中:圖1說明實施例可操作根據之例示性架構;圖2說明實施例可操作根據之替代性例示性架構;圖3展示實施例可操作、經安裝、整合或組態根據之系統的圖解表示;圖4為說明根據所描述實施例之用於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄之方法的流程圖;圖5A為說明根據所描述實施例之例示性有序管線及例示性暫存器重新命名、無序發出/執行管線兩者的方塊圖;圖5B為說明根據所描述實施例之有序架構核心之例示性實施例及待包括於處理器中之例示性暫存器重新命名、無序發出/執行架構核心兩者的方塊圖;圖6為根據一個實施例之電腦系統的方塊圖;圖7為根據一個實施例之電腦系統的方塊圖;圖8為根據一個實施例之電腦系統的方塊圖; 圖9描繪根據實施例之平板計算器件及手持型智慧型電話,其各自具有如所描述整合於其中之電路;圖10為使用觸控式螢幕介面連接器之平板計算器件、智慧型電話或其他行動器件之實施例的方塊圖;圖11為根據一個實施例之IP核心開發系統的方塊圖;圖12說明根據一個實施例之架構仿真系統;且圖13說明根據一個實施例之轉譯指令的系統。
較佳實施例之詳細說明
本文中所描述為用於於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄的系統及方法。舉例來說,在一個實施例中,此構件可包括一積體電路,該積體電路具有:用於隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行而起始針對該等指令的指令追蹤之構件;用於產生描述該指令追蹤之複數個封包至一除錯紀錄之構件;用於在該積體電路內起始一替代性執行模式之構件;及用於抑制進入該替代性執行模式之指示的構件。額外及替代性構件可經實施,從而選擇性地使得一積體電路在至該替代性執行模式之轉變之後根據一不可見追蹤模式或一可見追蹤模式操作。
在執行經由正執行之指令進行時,某些所關注事件可經組態以經由使用RTIT邏輯來觸發封包之產生,以報告關於事件之額外資訊。舉例來說,諸如條件跳轉、頁面 錯失等等之事件可計劃性地組態以產生封包,該封包稱,當事件「y」發生時,執行係在位置「x」處,且跳轉或錯失行進至位置「z」。有時封包亦可含有此資訊之子集。舉例來說,封包可僅指示「採取下一條件跳轉」,其可用以判定跳轉行進至位置「z」。可報告用於事件之額外資訊,諸如,事件就循環時間、掛鐘時間(wall clock time)等等而言發生的時間。可另外產生具有同步資料之維護封包以及指示何特定應用程式或實體正在執行或觸發指明之事件(例如,文書處理器、瀏覽器、超管理器等)的封包。
儘管習知紀錄技術存在,但此技術慢,且藉由產生針對高於且超出正常處理之紀錄能力的必要指令所需要之額外附加項處理而給處理器增加負擔。此外,習知技術不提供可計劃性地使得與正被監視之軟體不相關聯之指令(例如,代表除錯模式執行之指令)自身對紀錄功能性不可見或可見的機制。此係因為追蹤能力不僅對正進行追蹤之應用程式、區或模式進行操作,而且另外對除錯指令及其他非軟體可見指令進行操作,且因此「看見」除錯指令及其他非軟體可見指令或使其可見。
在某些情形下需要使得除錯操作不可見,從而使得處理器自紀錄之觀點如同額外指令正被插入至執行串流中一般運轉。因此,如本文中所描述之用於於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄的技術提供啟用及停用追蹤紀錄中不應追蹤之指令或模式之可見性的能力。此能力使得有可能使追蹤與除錯相關,且判定(例如)追蹤進入 特定應用程式或程式碼區之處,以及正確地判定此應用程式或程式碼區的每循環之指令數(IPC),如同額外除錯指令未被執行且未消耗處理器之處理能力的一部分,如此除錯指令之附加項消耗可不適當地使IPC計算之結果出現偏差。舉例來說,選擇性除錯紀錄能力使得有可能判定在時間「x」與「y」之間執行除錯指令,從而與關於正分析之應用程式的問題相對比,引起可與追蹤操作相關之處理的減慢。
儘管簡單地指示每當歸因於非追蹤模式(諸如,除錯模式)而進入/脫離追蹤區或模式之時間更為直觀,但此等方案使得難以驗證核心追蹤功能性。因此,雖然可預期到針對僅特定應用程式之分析,但加進額外指令之彼等習知除錯技術可引起不同行為,從而與同一應用程式之非除錯操作相比較,產生不正確或不一致結果。
因此,如本文中所描述之於即時指令追蹤(RTIT)紀錄中除錯動作之選擇性紀錄提供經由產生新操作模式(具體而言,可選擇的不可見操作模式)使得除錯模式為不可見之機制。不可見模式之操作模式可計劃性地組態,使得除錯操作可在選定時間提供(例如,因此根據可見模式操作),但在其他時間,當不需要具有該等除錯操作時,所有除錯動作可被完全隱藏,使得看起來好像除錯方法根本未被使用一樣。不可見模式及可見模式之選擇性不限於僅除錯模式及除錯相關指令,而是可應用於任何替代性操作模式,諸如,自指明之應用程式、程式碼區或模式至若干替 代性執行模式(包括(例如)超管理器相關指令之執行、韌體指令之執行、作業系統指令之執行等)中之任一者的轉變。
在以下描述中,闡述眾多特定細節,諸如,特定系統、語言、組件等之實例,以便提供對各種實施例之透徹理解。然而,對於熟習此項技術者而言,不需要將此等特定細節用來實踐本文中所揭示之實施例將為顯而易見的。在其他例子中,熟知材料或方法尚未進行詳細描述,以便避免不必要地使所揭示實施例混淆。
除諸圖中所描繪且本文中所描述之各種硬體組件外,實施例進一步包括下文描述之各種操作。根據此等實施例所描述之操作可藉由硬體組件執行,或可以機器可執行指令來體現,該等機器可執行指令可用以使得藉由指令來程式化之通用或專用處理器執行操作。或者,操作可藉由硬體與軟體之組合來執行。
實施例亦係關於用於執行本文中所揭示之操作的裝置。此裝置可出於所需要目的特定地建構,或其可係藉由儲存於電腦中之電腦程式選擇性地啟動或重組態的通用電腦。此電腦程式可儲存於電腦可讀儲存媒體中,諸如(但不限於)包括軟性磁碟、光碟、CD-ROM及磁光碟之任何類型之碟片,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁卡或光卡,或適用於儲存電子指令之任何類型的媒體,前述各者各自與電腦系統匯流排耦接。術語「耦接」可指代直接接觸(物理、電、磁、光學等)之兩個或兩個以上元件,或並非彼此直接接觸但仍彼此合 作及/或互動的兩個或兩個以上元件。
本文中所呈現之演算法及顯示器並不固有地與任何特定電腦或其他裝置有關。根據本文中之教示,各種通用系統可與程式一起使用,或可證明建構更專門裝置來執行所需要方法步驟係方便的。用於多種此等系統之所需要結構將呈現為如下文描述中所闡述。另外,不參看任何特定程式設計語言來描述實施例。應瞭解,多種程式設計語言可用以實施如本文中所描述之實施例的教示。
所揭示實施例中之任一者可單獨或彼此一起以任何組合使用。儘管可已部分藉由關於習知技術及方法之缺陷(在說明書內描述或暗示缺陷中的一些)激發了各種實施例,但實施例不一定需要解決或解答此等缺陷中之任何缺陷,而是可解決缺陷中之僅一些,不解決缺陷,或針對未直接論述之不同缺陷及問題。
圖1說明實施例可操作根據之例示性架構100。詳言之,描繪模式產生邏輯105、封包產生邏輯110及即時指令追蹤(RTIT)邏輯130。元件105、110及130中之每一者可替代性地被稱作邏輯模組。
各種啟用及停用藉由模式產生邏輯105及封包產生邏輯110來評估,此情形又引起或建立一組動作。舉例來說,視啟用及停用之組合而定,各種動作將根據評估進行。
觸發啟用111指示RTIT邏輯130是否在作用中。舉例來說,觸發啟用111為真(例如,TriggerEn設定為「1」)可指示,歸因於MSR(模型特定暫存器)中之RTIT啟用位元 經設定而全部啟用RTIT。
內容脈絡啟用112指示,適當應用程式、程式碼區或模式根據內容脈絡是否適當,使得RTIT為可適用的。舉例來說,若監看指明之應用程式,則指明之應用程式為內容脈絡相關的,此係因為(例如)正執行與此指明之應用程式相關聯的指令。若監看作業系統(OS),則指令執行係在與OS相關聯之程式碼內,且因此係內容脈絡相關的。若超管理器未被指明為待監看之應用程式或程式碼區,則內容脈絡啟用112將指示,與此超管理器相關聯之正執行的程式碼並非內容脈絡相關的,等等。因此,若用於RTIT追蹤之內容脈絡啟用112經程式化以監看僅第3特權級別(例如,應用程式),則當處理器並非處於第3特權級別時,內容脈絡啟用112為假(例如,ContextEn為「0」)。
篩選啟用113指示,程式碼執行落在指定位址範圍內。舉例來說,篩選啟用113准許對範圍內之某些位址進行篩選,且因此當篩選啟用113為真時,程式碼執行係在所指定之線性位址範圍內或所指定之多個範圍中的一者內。當在指定範圍內而非在指定範圍外執行指令時,篩選啟用113可因此用以指示追蹤封包可為所要的。因此,若篩選啟用113具有如在0x5000與0x5500之間的經程式化篩選範圍,則在執行自0x4000跳轉至0x5200從而導致在指定範圍內之執行情況下,篩選啟用113為真(例如,FilterEn設定為「1」)。或者,篩選啟用113可用以指示,程式碼執行落在一或多個指定位址範圍外,且因此對於在指定位址外之程 式碼,追蹤封包為所要的。
除錯模式停用114指示,起始不可見追蹤模式,此情形又用以引起抑制某資訊,諸如,進出替代性執行模式之轉變事件。另外,無論是除錯模式或其他模式,除錯模式停用114可用以確保追蹤未提供如下指示:處理器在任何時候曾離開給定應用程式、程式碼區或模式之RTIT追蹤模式而去替代性執行模式。如下文所描述,基於時間之計數器可繼續執行,且可歸因於彼等基於時間之計數器來產生封包。
觸發啟用111、內容脈絡啟用112、篩選啟用113及除錯模式停用114中之每一者為至模式產生邏輯105之輸入,模式產生邏輯105基於啟用及停用來設定模式。自模式產生邏輯105,向封包產生邏輯110提供一系列輸入,包括封包啟用115、封包啟用或除錯116、PGE/PGD抑制117及篩選啟用凍結118。
當除錯模式停用設定為零或假時,且當觸發啟用111為真且內容脈絡啟用112為真且篩選啟用113為真時,藉由模式產生邏輯105傳遞封包啟用115。
封包啟用115在進入探測模式或執行用於除錯或其他用途之額外指令的其他模式之後將轉至零或假,因此防止封包產生邏輯110產生某些封包,諸如,描述各種執行事件的追蹤封包。相反,在進入探測模式或除錯模式時,並不強制使封包啟用或除錯116為零或假。當需要可見模式時,RTIT紀錄應指示,已進入替代性模式,且因此應強制 使ContextEn為0,但不需要強制使DebugModeDis為1,此情形又將使得封包啟用115及PacketEnableOrDebug 116兩者轉至0。當需要不可見模式時,RTIT紀錄不應展示已進入替代性模式,且因此進入替代性模式應強制使DebugModeDis為1,但不需要強制使ContextEn為0,此情形又強制使PacketEnable為0,但PacketEnableOrDebug將不改變(例如,若CPU先前使PacketEnableOrDebug為1,則PacketEnableOrDebug將保持於1)。
封包產生啟用(PGE)及封包產生停用(PGD)為分別在進入及脫離RTIT區或模式時產生的封包。PGE/PGD抑制117指示處理器係處於不可見除錯模式,且因此PGE及PGD封包不應被產生,以避免潛在地引起接收依據即時指令追蹤產生之封包的封包處置器之混淆。舉例來說,在不可見除錯模式中發生之事件可使得在彼模式中產生之PGE或PGD封包具有不正確位址。PGE/PGD抑制117可因此用以延遲或等待,直至在正確位址可被判定並藉由所產生之封包進行傳遞的點處達成脫離為止。
當除錯模式停用114設定為真時,篩選啟用凍結118使得篩選啟用113保持不改變。
經由評估以上元件,可准許諸如將指令加進至執行流中之除錯模式的替代性執行模式在無干擾情況下繼續進行。某些封包可經抑制以啟用不可見模式,該不可見模式隱藏與替代性執行模式相關聯之事件的紀錄,但不變更與經受即時指令追蹤邏輯130之應用程式、程式碼區或模式 相關聯的指令之執行。
圖2說明實施例可操作根據之另一替代性例示性架構200。舉例來說,積體電路201描繪為具有將指令追蹤邏輯130與封包產生邏輯110互連的資料匯流排215,指令追蹤邏輯130在指令藉由積體電路執行時追蹤所追蹤應用程式、模式或程式碼區的指令,封包產生邏輯110產生描述所追蹤指令的複數個封包至除錯紀錄235。在此實施例中,積體電路起始替代性執行模式,且積體電路之模式產生邏輯105抑制進入替代性執行模式的指示。
在一個實施例中,積體電路進一步包括模式位元299。模式位元299可由積體電路201利用以判定根據不可見追蹤模式抑或可見追蹤模式來操作。舉例來說,在一個實施例中,封包產生邏輯110及模式產生邏輯105基於模式位元299根據不可見追蹤模式或可見追蹤模式來操作。
在一個實施例中,積體電路201經由指令追蹤邏輯130來起始針對所追蹤應用程式、模式或程式碼區之指令的指令追蹤。在此實施例中,積體電路201進一步起始替代性執行模式,其可為(例如)進入除錯模式或其他類型之替代性執行(諸如,進入作業系統之處理或進入用於超管理器之執行)的積體電路。在此等實施例中,替代性執行模式係與經受指令追蹤之應用程式、程式碼區或執行模式相異之執行流相關聯。
在一個實施例中,模式產生邏輯藉由在替代性執行模式期間抑制與指令追蹤相關聯之封包來抑制進入替代 性執行模式的指示。舉例來說,當根據不可見追蹤模式操作時,此等封包(例如,追蹤封包206)可受到抑制。
在一個實施例中,在積體電路201上的處理進一步包括:(a)自替代性執行模式返回;(b)抑制自替代性執行模式返回之指示;及(c)隨著在自替代性執行模式返回之後藉由積體電路201執行指令,產生描述針對所追蹤應用程式、模式或程式碼區之指令的指令追蹤之額外封包至除錯紀錄235。舉例來說,若針對替代性執行模式根據不可見追蹤模式操作,則自經受指令追蹤之應用程式、程式碼區或模式之轉變事件將受到抑制,但接著可重新繼續正常指令追蹤,包括描述指令追蹤之封包的產生及報告。
在一個實施例中,封包產生邏輯110藉由產生與所追蹤應用程式、模式或程式碼區之指令相關聯的追蹤封包206來產生描述指令追蹤之複數個封包至除錯紀錄235。在一個實施例中,追蹤封包206指示與藉由所追蹤應用程式、模式或程式碼區之積體電路201執行之指令相關聯的執行事件。
在一個實施例中,追蹤封包206指示執行事件,且模式產生邏輯105藉由抑制指示一執行事件至不經受指令追蹤之替代性應用程式、模式或程式碼區來抑制進入替代性執行模式的指示。舉例來說,此執行事件可係選自包括以下各者之群組:(a)指令分支;(b)中斷;(c)異常;(d)門鈴;及(e)陷阱。
在一個實施例中,模式產生邏輯105藉由抑制封 包產生停用(PGD)封包來抑制進入替代性執行模式之指示,該封包產生停用(PGD)封包指示自所追蹤應用程式、模式或程式碼區之指令或至替代性執行模式的轉變。對於執行自替代性模式之返回,亦可發生相反情形。舉例來說,對積體電路201進行處理可進一步包括模式產生邏輯105抑制封包產生啟用(PGE)封包,該封包產生啟用(PGE)封包指示自替代性執行模式或至所追蹤應用程式、模式或程式碼區之指令的轉變。
在一個實施例中,封包產生邏輯110藉由以下操作來產生描述指令追蹤之複數個封包至除錯紀錄235:產生具有與所追蹤應用程式、模式或程式碼區之指令相關聯之時序資訊的封包。此等封包可係時序封包202或指示適當之基於時間之資訊的其他封包,不管此資訊為對於積體電路特定或與「掛鐘」資訊有關之時脈,或其他類型之基於時間的資料,諸如,積體電路之頻率、比率資訊或各種時序相關計數器的報告。
在一個實施例中,具有時序資訊之封包指示與藉由所追蹤應用程式、模式或程式碼區之積體電路201執行之指令相關聯的計數器及/或時脈資訊。在一個實施例中,模式產生邏輯105藉由(a)在替代性執行模式期間使基於時間之計數器遞增來抑制進入替代性執行模式的指示,其中基於時間之計數器產生具有時序資訊之封包。在一個實施例中,自時序相關封包之觀點,在替代性執行模式期間之執行時間歸因於無指令,或在起始替代性執行模式之前或在 自替代性執行模式返回之後歸因於經受指令追蹤的指令。換言之,在替代性執行模式期間藉由指令或操作消耗之執行以一方式來遮掩或隱藏,使得與初始執行模式相關聯之指令呈現為如同花費比正常時間長的時間來執行一樣。此比正常執行時間長的執行時間將因此係如下兩者的總和:與初始執行模式相關聯之指令(例如,經受指令追蹤之應用程式、程式碼區或模式之指令)的實際執行時間,加上在替代性執行模式期間藉由積體電路所執行之一或多個指令或操作消耗之時間。
基於時間之計數器可繼續計數並遞增而不管積體電路不再對經受指令追蹤之指令進行操作,其中積體電路正替代地對構成替代性執行模式之指令或操作(例如,除錯指令等)進行操作。抑制替代性模式之指示可隱藏至及自替代性執行模式之轉變,但為了考慮到(account for)在替代性執行模式上花費之時間,除錯紀錄235將反映積體電路被卡住,或花費顯著長的時間來執行,無論何指令為待執行之經受指令追蹤的下一指令。
在一個實施例中,封包產生邏輯110藉由以下操作產生描述指令追蹤的複數個封包至除錯紀錄235:(a)產生追蹤封包206;(b)產生時序封包202;及(c)產生支援指令追蹤的維護封包204。
在一個實施例中,積體電路201為、包括、構成或實施中央處理單元(CPU)。此中央處理單元可用於平板計算器件或智慧型電話中的一者。
在一個實施例中,起始指令追蹤構成隨著指令藉由積體電路201執行而起始針對所追蹤應用程式、模式或程式碼區之指令的即時指令追蹤(RTIT)。
如上文所註明,根據所描述之實施例中的一些,積體電路可進一步包括模式位元299,該模式位元299用以在根據可見追蹤模式或不可見追蹤模式進行操作之間作出判定。因此,根據一個實施例,積體電路201隨著指令藉由積體電路201執行而起始針對所追蹤應用程式、模式或程式碼區之指令的指令追蹤;產生描述指令追蹤之複數個封包至除錯紀錄235;在積體電路201內起始替代性執行模式;且基於積體電路201之模式位元299根據不可見追蹤模式或可見追蹤模式來操作。根據不可見追蹤模式操作包括如上文所詳細描述抑制進入替代性執行模式之指示。相反,根據可見追蹤模式操作包括對自所追蹤應用程式、模式或程式碼區之指令至替代性執行模式之轉變的指示進行紀錄。
在一個實施例中,根據可見追蹤模式操作進一步包括:封包產生邏輯110產生封包,該等封包指示自所追蹤應用程式、模式或程式碼區之指令至替代性執行模式之轉變;及藉由除錯紀錄235對指示轉變之封包進行紀錄。
在一個實施例中,積體電路201藉由以下操作根據可見追蹤模式來進行操作:在替代性執行模式期間暫時中止與所追蹤應用程式、模式或程式碼區之指令相關聯的計數器及/或時脈。積體電路201之處理可進一步包括經由 基於時間之計數器產生其中具有時序資訊之封包,其中在替代性執行模式期間的執行時間歸因於替代性執行模式,且可與用於所追蹤應用程式、模式或程式碼區之指令的執行時間區別。因此,在指示至替代性模式之轉變之處,在用於替代性執行模式之操作及指令上花費的時間可正確地識別(例如,非隱藏)為與替代性模式內之指令相關聯,且不向回歸因於經受可根據不可見追蹤模式發生的指令追蹤之一或多個指令。
圖3展示實施例可操作、經安裝、整合或組態根據之系統399的圖解表示。
在一個實施例中,系統399包括記憶體395及一個或數個處理器396。舉例來說,記憶體395可儲存待執行之指令,且處理器396可執行此等指令。系統399包括通信匯流排365以在複數個周邊器件370之間傳送系統399內的異動、指令、請求及資料,該等周邊器件370與一或多個通信匯流排365及/或介面375通信地介接。顯示單元380另外描繪於系統399內。
系統399內之相異之處為積體電路301,該積體電路301可安裝且組態於相容系統399中,或經分離製造並提供以便結合系統399之適當組件來操作。
根據一個實施例,系統399包括至少顯示單元380及積體電路301。積體電路301可作為(例如)處理器或作為系統399之另一計算組件操作。在此實施例中,系統399之積體電路301至少包括:資料匯流排315;指令追蹤邏輯305, 其隨著指令藉由積體電路執行而追蹤所追蹤應用程式、模式或程式碼區之指令;及封包產生邏輯310,其產生描述所追蹤指令的複數個封包至除錯紀錄335。在此實施例中,積體電路將起始替代性執行模式,且積體電路之模式產生邏輯325將抑制進入替代性執行模式的指示。在一些實施例中,模式位元340可用以判定在轉變至替代性執行模式之後根據不可見追蹤模式抑或可見追蹤模式來操作。
根據一個實施例,此系統399包含平板電腦或智慧型電話,其中顯示單元380係平板電腦或智慧型電話之觸控式螢幕介面;且另外其中積體電路301併入至平板電腦或智慧型電話中。
圖4為說明根據所描述實施例之用於於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄之方法的流程圖。方法400可藉由處理邏輯來執行,處理邏輯可包括硬體(例如,電路、專用邏輯、可程式化邏輯、微碼等)。對所呈現之區塊編號係為了清楚起見,且並非意欲規定各種區塊必須發生之操作次序。
方法400以處理邏輯開始,處理邏輯用於隨著指令藉由積體電路執行,起始針對所追蹤應用程式、模式或程式碼區之指令的指令追蹤(區塊405)。
在區塊410處,處理邏輯產生描述指令追蹤之複數個封包至除錯紀錄。
在區塊415處,處理邏輯在積體電路內起始替代性執行模式。
接著到達決定點417,在該決定點417處,判定根據可見追蹤模式抑或不可見追蹤模式來操作。舉例來說,此判定可受積體電路之模式位元支配。
若根據不可見追蹤模式操作,則流程行進至區塊420,且處理邏輯抑制進入替代性執行模式的指示。
若根據可見追蹤模式操作,則流程行進至區塊425,且處理邏輯對自所追蹤應用程式、模式或程式碼區至替代性執行模式之轉變的指示進行紀錄。
圖5A為說明根據所描述實施例之例示性有序管線及例示性暫存器重新命名、無序發出/執行管線兩者的方塊圖。圖5B為說明根據所描述實施例之有序架構核心之例示性實施例及待包括於處理器中之例示性暫存器重新命名、無序發出/執行架構核心兩者的方塊圖。圖5A及圖5B中之實線框說明有序管線及有序核心,而虛線框之選擇性添加說明暫存器重新命名、無序發出/執行管線及核心。假定有序態樣為無序態樣之子集,將描述無序態樣。
出於不同目的,處理器核心可以不同方式且於不同處理器中來實施。舉例來說,此等核心之實施可包括:1)意欲用於通用計算之通用有序核心;2)意欲用於通用計算之高效能通用無序核心;3)意欲主要用於圖形及/或科學(輸送量)計算的專用核心。不同處理器之實施可包括:1)CPU,其包括意欲用於通用計算之一或多個通用有序核心及/或意欲用於通用計算的一或多個通用無序核心;及2)共處理器(coprocessor),其包括意欲主要用於圖形及/或科學(輸送 量)的一或多個專用核心。此等不同處理器導致不同電腦系統架構,該等電腦系統架構可包括:1)與CPU分離之晶片上的共處理器;2)與CPU相同之封裝中的分離晶粒上之共處理器;3)與CPU相同之晶粒上的共處理器(在該狀況下,此共處理器有時被稱作諸如整合式圖形及/或科學(輸送量)邏輯之專用邏輯或被稱作專用核心);及4)可在同一晶粒上包括所描述CPU(有時被稱作應用程式核心或應用程式處理器)、上述共處理器及額外功能性的系統單晶片。接著描述例示性核心架構,繼之以例示性處理器及電腦架構的描述。
在圖5A中,處理器管線500包括提取級502、長度解碼級504、解碼級506、分配級508、重新命名級510、排程(亦稱作分派或發出)級512、暫存器讀取/記憶體讀取級514、執行級516、寫回/記憶體寫入級518、異常處置級522及提交級524。
圖5B展示處理器核心590,處理器核心590包括耦接至執行引擎單元550之前端單元530,且執行引擎單元550及前端單元530兩者耦接至記憶體單元570。核心590可為精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字集(VLIW)核心或者混合或替代性核心類型。作為又一選項,核心590可為專用核心,諸如(例如)網路或通信核心、壓縮引擎、共處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心或其類似者。
前端單元530包括耦接至指令快取單元534之分支預測單元532,指令快取單元534耦接至指令轉譯後援緩 衝器(TLB)536,指令轉譯後援緩衝器(TLB)536耦接至指令提取單元538,指令提取單元538耦接至解碼單元540。解碼單元540(或解碼器)可對指令進行解碼,且產生一或多個微操作、微碼入口點、微指令、其他指令或其他控制信號作為輸出,前述各者自原始指令進行解碼,或以其他方式反映原始指令或自原始指令導出。解碼單元540可使用各種不同機制來實施。合適機制之實例包括(但不限於)查找表、硬體實施、可程式化邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等。在一個實施例中,核心590包括微碼ROM,或儲存用於某些巨集指令之微碼(例如,在解碼單元540中或以其他方式於前端單元530內)的其他媒體。解碼單元540耦接至執行引擎單元550中之重新命名/分配器單元552。
執行引擎單元550包括重新命名/分配器單元552,重新命名/分配器單元552耦接至引退單元554及一組一或多個排程器單元556。排程器單元556表示任何數目個不同排程器,包括保留站(reservation station)、中央指令窗等。排程器單元556耦接至實體暫存器檔案單元558。實體暫存器檔案單元558中之每一者表示一或多個實體暫存器檔案,該等實體暫存器檔案中之不同實體暫存器檔案儲存一或多個不同資料類型,諸如,純量整數、純量浮點、緊縮(packed)整數、緊縮浮點、向量整數、向量浮點、狀態(例如,為待執行之下一指令之位址的指令指標)等。在一個實施例中,實體暫存器檔案單元558包含向量暫存器單元、寫入遮罩暫存器單元及純量暫存器單元。此等暫存器單元可 提供架構向量暫存器、向量遮罩暫存器及通用暫存器。實體暫存器檔案單元558藉由引退單元554重疊,以說明可實施暫存器重新命名及無序執行的各種方式(例如,使用重新排序緩衝器及引退暫存器檔案;使用將來檔案、歷史緩衝器及引退暫存器檔案;使用暫存器映像及暫存器集區等)。引退單元554及實體暫存器檔案單元558耦接至執行叢集560。執行叢集560包括一組一或多個執行單元562及一組一或多個記憶體存取單元564。執行單元562可執行各種運算(例如,移位、加、減、乘)且對各種類型之資料(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)執行運算。雖然一些實施例可包括專用於特定功能或功能集合之數個執行單元,但其他實施例可包括僅一個執行單元或皆執行所有功能的多個執行單元。排程器單元556、實體暫存器檔案單元558及執行叢集560展示為可能為複數個,此係因為某些實施例產生用於某些類型之資料/操作的分離管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線及/或記憶體存取管線,前述各者各自具有其自身之排程器單元、實體暫存器檔案單元及/或執行叢集一一且在分離記憶體存取管線之狀況下,實施某些實施例,其中此管線之僅執行叢集具有記憶體存取單元564)。亦應理解,在使用分離管線之處,此等管線中之一或多者可為無序發出/執行及其餘為有序。
該組記憶體存取單元564耦接至記憶體單元570,記憶體單元570包括耦接至資料快取單元574之資料 TLB單元572,該資料快取單元574耦接至第2層級(L2)快取單元576。在一個例示性實施例中,記憶體存取單元564可包括載入單元、儲存位址單元及儲存資料單元,前述各者中之每一者耦接至記憶體單元570中的資料TLB單元572。指令快取單元534進一步耦接至記憶體單元570中之第2層級(L2)快取單元576。L2快取單元576耦接至一或多個其他層級之快取記憶體且最終耦接至主記憶體。
藉由實例,例示性暫存器重新命名、無序發出/執行核心架構可實施管線500如下:1)指令提取538執行提取級502及長度解碼級504;2)解碼單元540執行解碼級506;3)重新命名/分配器單元552執行分配級508及重新命名級510;4)排程器單元556執行排程級512;5)實體暫存器檔案單元558及記憶體單元570執行暫存器讀取/記憶體讀取級514,執行叢集560執行該執行級516;6)記憶體單元570及實體暫存器檔案單元558執行寫回/記憶體寫入級518;7)異常處置級522中可涉及各種單元;且8)引退單元554及實體暫存器檔案單元558執行提交級524。
核心590可支援包括本文中所描述之指令的一或多個指令集(例如,x86指令集(具有已添加有較新版本之一些延伸);MIPS Technologies(Sunnyvale,CA)之MIPS指令集;ARM Holdings(Sunnyvale,CA)之ARM指令集(具有選擇性額外延伸,諸如,NEON))。在一個實施例中,核心590包括支援緊縮資料指令集延伸(例如,AVX1、AVX2)的邏輯,藉此允許使用緊縮資料來執行由許多多媒體應用程式 使用的操作。
應理解,核心可支援多執行緒處理(執行兩組或兩組以上並行操作或執行緒),且可以包括以下各者之多種方式進行如上操作:時間分片多執行緒處理、同時多執行緒處理(其中單一實體核心為實體核心正同時進行多執行緒處理之執行緒中的每一者提供邏輯核心)或其組合(例如,諸如Intel® Hyperthreading技術中時間分片提取及解碼以及其後之同時多執行緒處理)。
雖然在無序執行情形下描述暫存器重新命名,但應理解,暫存器重新命名可用於有序架構中。雖然處理器之所說明實施例亦包括分離指令及資料快取單元534/574及共用L2快取單元576,但替代性實施例可具有用於指令及資料兩者之單一內部快取記憶體,諸如,第1層級(LI)內部快取記憶體或多層級內部快取記憶體。在一些實施例中,系統可包括內部快取記憶體及係在核心及/或處理器外部之外部快取記憶體的組合。或者,所有快取記憶體可係在核心及/或處理器外部。
現參看圖6,展示根據本發明之一個實施例之系統600的方塊圖。系統600可包括一或多個處理器610、615,處理器610、615耦接至圖形記憶體控制器集線器(GMCH)620。額外處理器615之選擇性本質在圖6中藉由虛線指出。
每一處理器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經由諸如前端匯流排(FSB)695之多點匯流排與處理器610、615通信。
此外,GMCH 620耦接至顯示器645(諸如,平板或觸控式螢幕顯示器)。GMCH 620可包括整合式圖形加速器。GMCH 620進一步耦接至輸入/輸出(I/O)控制器集線器(ICH)650,輸入/輸出(I/O)控制器集線器(ICH)650可用以將各種周邊器件耦接至系統600。(例如)圖6之實施例中所展示係可為耦接至ICH 650之離散圖形器件的外部圖形器件660連同另一周邊器件670。
或者,額外或不同處理器亦可存在於系統600中。舉例來說,額外處理器615可包括與處理器610相同之額外處理器、與處理器610異質或非對稱之額外處理器、加速器(諸如,圖形加速器或數位信號處理(DSP)單元)、場可程式化閘陣列或任何其他處理器。就包括架構、微架構、熱、電力消耗特性及其類似者之優點的一系列度量來說, 在處理器610、615之間可存在多種差異。此等差異自身可有效地表現為處理器610、615之間的不對稱性及異質性。對於至少一個實施例,各種處理器610、615可駐留於同一晶粒封裝中。
現參看圖7,展示根據本發明之實施例的第二系統700之方塊圖。如圖7中所展示,多處理器系統700為點對點互連系統,且包括經由點對點介面750耦接之第一處理器770及第二處理器780。處理器770及處理器780中之每一者可為如先前所描述之某一版本的處理器或積體電路或為處理器610、615中的一或多者。
雖然展示為具有僅兩個處理器770、780,但應理解,本發明之範疇並不限於此。在其他實施例中,一或多個額外處理器可存在於給定處理器中。
處理器770及780展示為分別包括整合式記憶體控制器單元772及782。處理器770亦包括作為其匯流排控制器單元之部分的點對點(P-P)介面776及778;類似地,第二處理器780包括P-P介面786及788。處理器770、780可使用P-P介面電路778、788經由點對點(P-P)介面750交換資訊。如圖7中所展示,IMC 772及782將處理器耦接至各別記憶體(即,記憶體732及記憶體734),該等記憶體可為局部附接至各別處理器之主記憶體的部分。
處理器770、780各自可使用點對點介面電路776、794、786、798經由個別P-P介面752、754與晶片組790交換資訊。晶片組790亦可經由高效能圖形介面739與高效 能圖形電路738交換資訊。
共用快取記憶體(未圖示)可包括於任一處理器中或兩個處理器外部,又經由P-P互連件與處理器連接,使得若將處理器置放於低電力模式,則任一或兩個處理器之局部快取記憶體資訊可儲存於共用快取記憶體中。
晶片組790可經由介面796耦接至第一匯流排716。在一個實施例中,第一匯流排716可為周邊組件互連(PCI)匯流排或諸如快速PCI匯流排或另一第三代I/O互連匯流排之匯流排,但本發明之範疇不限於此。
如圖7中所展示,各種I/O器件714可連同匯流排橋接器718一起耦接至第一匯流排716,匯流排橋接器718將第一匯流排716耦接至第二匯流排720。在一個實施例中,第二匯流排720可為低接腳計數(LPC)匯流排。在一個實施例中,各種器件可耦接至第二匯流排,該等器件包括(例如)鍵盤及/或滑鼠722、通信器件727及諸如磁碟機或其他大容量儲存器件的儲存單元728,該儲存單元728可包括指令/程式碼及資料730。另外,音訊I/O 724可耦接至第二匯流排720。注意,其他架構為可能的。舉例來說,替代圖7之點對點架構,系統可實施多點匯流排或其他此架構。
現參看圖8,展示根據本發明之實施例之系統800的方塊圖。圖8說明,處理器870、880可分別包括整合式記憶體及I/O控制邏輯(「CL」)872、882,且分別經由點對點(P-P)介面878與888之間的點對點互連件850彼此互通信。處理器870、880各自如圖所示經由各別P-P介面876至894及 886至898經由點對點互連件852及854與晶片組890通信。對於至少一個實施例,CL 872、882可包括整合式記憶體控制器單元。CL 872、882可包括I/O控制邏輯。如所描繪,耦接至CL 872、882及I/O器件814的記憶體832、834亦耦接至控制邏輯872、882。舊式I/O器件815經由介面896耦接至晶片組890。
圖9描繪平板計算器件901及手持型智慧型電話902,其各自具有如根據實施例所描述之整合於其中的電路。如所描繪,平板計算器件901及手持型智慧型電話902中之每一者包括根據所揭示實施例之觸控式螢幕介面903及整合式處理器904。
舉例來說,在一個實施例中,系統體現平板計算器件901或手持型智慧型電話902,其中系統之顯示單元包括平板電腦或智慧型電話的觸控式螢幕介面903,且另外其中作為整合式處理器操作之記憶體及積體電路併入至平板電腦或智慧型電話中,其中整合式處理器實施本文中所描述的用於於即時指令追蹤紀錄中實施除錯動作之選擇性紀錄的實施例中的一或多者。在一個實施例中,上文所描述之積體電路或者平板電腦或智慧型電話的所描繪之整合式處理器係充當平板計算器件或智慧型電話之中央處理單元的整合式矽處理器。
舉例來說,根據一個實施例,平板計算器件包括:顯示單元;及積體電路,其包括:資料匯流排,指令追蹤邏輯,其隨著所追蹤應用程式、模式或程式碼區的指 令藉由積體電路執行而追蹤指令,及封包產生邏輯,其產生描述所追蹤指令之複數個封包至除錯紀錄。在此實施例中,積體電路將起始替代性執行模式,且積體電路之模式產生邏輯將抑制進入替代性執行模式的指示。
圖10為平板計算器件、智慧型電話或其他行動器件之實施例的方塊圖1000,在前述各者中使用觸控式螢幕介面連接器。處理器1010執行主要處理操作。音訊子系統1020表示與將音訊功能提供至計算器件相關聯的硬體(例如,音訊硬體及音訊電路)及軟體(例如,驅動程式、編解碼器)組件。在一個實施例中,使用者藉由提供由處理器1010接收並處理之音訊命令來與平板計算器件或智慧型電話互動。
顯示子系統1030表示為使用者提供視覺及/或觸感顯示器以與平板計算器件或智慧型電話互動的硬體(例如,顯示器件)及軟體(例如,驅動程式)組件。顯示子系統1030包括顯示介面1032,顯示介面1032包括用以向使用者提供顯示的特定螢幕或硬體器件。在一個實施例中,顯示子系統1030包括向使用者提供輸出及輸入兩者的觸控式螢幕器件。
I/O控制器1040表示與同使用者之互動相關的硬體器件及軟體組件。I/O控制器1040可操作以管理為音訊子系統1020及/或顯示子系統1030之部分的硬體。另外,I/O控制器1040說明用於連接至平板計算器件或智慧型電話之額外器件之連接點,使用者可經由平板計算器件或智慧型 電話來互動。在一個實施例中,I/O控制器1040管理諸如加速度計、相機、光感測器或其他環境感測器的器件,或可包括於平板計算器件或智慧型電話中的其他硬體。輸入可係直接使用者互動之部分,以及將環境輸入提供至平板計算器件或智慧型電話。
在一個實施例中,平板計算器件或智慧型電話包括電力管理1050,該電力管理1050管理電池電力使用、電池之充電,及與電力節省操作相關的特徵。記憶體子系統1060包括用於將資訊儲存於平板計算器件或智慧型電話中的記憶體器件。連接性1070包括硬體器件(例如,無線及/或有線連接器及通信硬體)及軟體組件(例如,驅動程式、協定堆疊)至平板計算器件或智慧型電話以與外部器件通信。蜂巢式連接性1072可包括(例如)無線載波,諸如,GSM(全球行動通信系統)、CDMA(分碼多重存取)、TDM(分時多工)或其他蜂巢式服務標準。無線連接性1074可包括(例如)並非蜂巢式的動作(諸如,個人區域網路(例如,藍芽)、區域網路(例如,WiFi)及/或廣域網路(例如,WiMax))或其他無線通信。
周邊連接1080包括硬體介面及連接器以及軟體組件(例如,驅動程式、協定堆疊),軟體組件用以進行作為周邊器件(「至」1082)至其他計算器件之周邊連接,以及具有連接至平板計算器件或智慧型電話之周邊器件(「自」1084),包括(例如)用以與其他計算器件連接之「銜接」連接器。周邊連接1080包括共同或基於標準之連接器,諸如, 通用串列匯流排(USB)連接器、包括迷你顯示埠(MDP)之顯示埠、高清晰度多媒體介面(HDMI)、Firewire等。
圖11展示說明根據一個實施例之IP核心之開發的方塊圖。儲存媒體1130包括模擬軟體1120及/或硬體或軟體模型1110。在一個實施例中,表示IP核心設計之資料可經由記憶體1140(例如,硬碟)、有線連接(例如,網際網路)1150或無線連接1160被提供至儲存媒體1130。藉由模擬工具及模型產生之IP核心資訊可接著被傳輸至製造設施1165,其中製造設施1165可藉由第三方製造以執行根據至少一個實施例的至少一個指令。
在一些實施例中,一或多個指令可對應於第一類型或架構(例如,x86),且在不同類型或架構(例如,ARM)之處理器上經轉譯或進行仿真。可因此對包括ARM、x86、MIPS、GPU或者其他處理器類型或架構之任何處理器或處理器類型執行根據一個實施例之指令。
圖12說明根據一個實施例第一類型指令如何藉由不同類型之處理器來仿真。在圖12中,程式1205含有一些指令,該等指令根據一個實施例可執行與指令相同或實質上相同的功能。然而,程式1205之指令可具有與處理器1215不同或不相容的類型及/或格式,從而意謂程式1205中該類型之指令可能不能由處理器1215原生地執行。然而,在仿真邏輯1210幫助下,程式1205之指令經轉譯成能夠原生地藉由處理器1215執行的指令。在一個實施例中,仿真邏輯以硬體來體現。在另一實施例中,仿真邏輯以有形機 器可讀媒體來體現,該有形機器可讀媒體含有將程式1205中該類型之指令轉譯成可藉由處理器1215原生地執行之類型的軟體。在其他實施例中,仿真邏輯為固定功能或可程式化硬體與儲存於有形機器可讀媒體上之程式的組合。在一個實施例中,處理器含有仿真邏輯,而在其他實施例中,仿真邏輯存在於處理器外部,且藉由第三方來提供。在一個實施例中,處理器能夠藉由執行含有於處理器中或與處理器相關聯之微碼或韌體載入以有形機器可讀媒體體現之仿真邏輯,該有形機器可讀媒體含有軟體。
圖13為對比根據本發明之實施例的用以將源指令集中之二進位指令轉換成目標指令集中之二進位指令的軟體指令轉換器之使用的方塊圖。在所說明實施例中,指令轉換器為軟體指令轉換器,但替代地,指令轉換器可以軟體、韌體、硬體或其各種組合來實施。圖13展示可使用x86編譯器1304來編譯高階語言1302下之程式以產生x86二進位程式碼1306,該x86二進位程式碼1306可藉由具有至少一個x86指令集核心之處理器1316來原生地執行。具有至少一個x86指令集核心之處理器1316表示任何處理器,該處理器可藉由適合地執行或以其他方式處理以下兩者來執行與具有至少一個x86指令集核心之Intel處理器實質相同的功能以便達成實質上與具有至少一個x86指令集核心之Intel處理器相同的結果:(1)Intel x86指令集核心之指令集的一實質部分,或(2)目標為在具有至少一個x86指令集核心之Intel處理器上執行的應用程式或其他軟體之目標程式碼版 本。x86編譯器1304表示可操作以產生x86二進位程式碼1306(例如,目標程式碼)之編譯器,x86二進位程式碼1306可在有或無額外鏈接處理情況下在具有至少一個x86指令集核心之處理器1316上執行。類似地,圖13展示可使用替代性指令集編譯器1308編譯高階語言1302下之程式以產生替代性指令集二進位程式碼1310,替代性指令集二進位程式碼1310可藉由無至少一個x86指令集核心之處理器1314(例如,具有執行MIPS Technologies(Sunnyvale,CA)之MIPS指令集及/或執行ARM Holdings(Sunnyvale,CA)之ARM指令集的核心之處理器)原生地執行。指令轉換器1312用以將x86二進位程式碼1306轉換成可藉由無至少一個x86指令集核心之處理器1314來原生地執行的程式碼。此經轉換程式碼很可能不與替代性指令集二進位程式碼1310相同,此係因為能夠進行此操作之指令轉換器難以製造;然而,經轉換程式碼將實現一般操作且由來自替代性指令集的指令構成。因此,指令轉換器1312表示經由仿真、模擬或任何其他程序允許不具有x86指令集處理器或核心的處理器或其他電子器件執行x86二進位程式碼1306的軟體、韌體、硬體或其組合。
雖然本文中所揭示之標的物已藉由實例且依據特定實施例進行了描述,但應理解,所主張實施例不限於所揭示之明確列舉的實施例。相反,如對於熟習此項技術者將顯而易見,本發明意欲涵蓋各種修改及類似配置。因此,附加申請專利範圍之範疇應與最寬泛解釋一致,以便 涵蓋所有此等修改及類似配置。應理解,以上描述內容意欲為說明性的,而非限制性的。對於熟習此項技術者而言,在研讀且理解以上描述之後將顯而易見許多其他實施例。所揭示標的物之範疇因此連同此等申請專利範圍有權享有之等效物的整個範疇一起參看附加申請專利範圍來判定。
100‧‧‧例示性架構
105‧‧‧模式產生邏輯
110‧‧‧封包產生邏輯
111‧‧‧觸發啟用
112‧‧‧內容脈絡啟用
113‧‧‧篩選啟用
114‧‧‧除錯模式停用
115‧‧‧封包啟用
116‧‧‧封包啟用或除錯
117‧‧‧PGE/PGD抑制
118‧‧‧篩選啟用凍結
130‧‧‧即時指令追蹤(RTIT)邏輯

Claims (31)

  1. 一種在一積體電路中之方法,其中該方法包含:隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行,起始針對該等指令的指令追蹤;產生描述該指令追蹤之複數個封包至一除錯紀錄;在該積體電路內起始一替代性執行模式;及抑制進入該替代性執行模式之指示。
  2. 如申請專利範圍第1項之方法,其中在該積體電路內起始該替代性執行模式包含進入一除錯模式。
  3. 如申請專利範圍第1項之方法,其中抑制進入該替代性執行模式之指示進一步包含在該替代性執行模式期間抑制與該指令追蹤相關聯的封包。
  4. 如申請專利範圍第3項之方法,其中該方法進一步包含:自該替代性執行模式返回;抑制自該替代性執行模式返回之指示;及隨著該等指令在自該替代性執行模式返回之後藉由該積體電路執行,產生描述針對該所追蹤應用程式、模式或程式碼區之該等指令之該指令追蹤的額外封包至該除錯紀錄。
  5. 如申請專利範圍第1項之方法,其中產生描述該指令追蹤之該等複數個封包至該除錯紀錄包含產生與該所追蹤應用程式、模式或程式碼區之該等指令相關聯的追蹤封包。
  6. 如申請專利範圍第5項之方法,其中該等追蹤封包指示與藉由該所追蹤應用程式、模式或程式碼區之該積體電路執行之該等指令相關聯的執行事件。
  7. 如申請專利範圍第5項之方法,其中該等追蹤封包指示執行事件,且其中抑制進入該替代性執行模式之指示包含抑制指示一執行事件之追蹤封包至不經受該指令追蹤之一替代性應用程式、模式或程式碼區。
  8. 如申請專利範圍第7項之方法,其中該執行事件係選自包含以下各者之群組:一指令分支;一中斷;一異常;一門鈴;及一陷阱。
  9. 如申請專利範圍第1項之方法,其中抑制進入該替代性執行模式之該指示包含抑制一封包產生停用(PGD)封包,該封包產生停用(PGD)封包指示自該所追蹤應用程式、模式或程式碼區之該等指令或至一替代性執行模式的一轉變。
  10. 如申請專利範圍第9項之方法,其進一步包含:抑制一封包產生啟用(PGE)封包,該封包產生啟用(PGE)封包指示自該替代性執行模式或至該所追蹤應用程式、模式或程式碼區之該等指令的一轉變。
  11. 如申請專利範圍第1項之方法,其中產生描述該指令追 蹤之該等複數個封包至該除錯紀錄包含產生封包,該等封包具有與該所追蹤應用程式、模式或程式碼區之該等指令相關聯的時序資訊。
  12. 如申請專利範圍第11項之方法,其中具有時序資訊之該等封包指示與藉由該所追蹤應用程式、模式或程式碼區之該積體電路執行之該等指令相關聯的計數器及/或時脈資訊。
  13. 如申請專利範圍第11項之方法,其中抑制進入該替代性執行模式之指示包含:在該替代性執行模式期間使基於時間之計數器遞增;且其中該等基於時間之計數器產生具有該時序資訊之該等封包。
  14. 如申請專利範圍第13項之方法,其中:該等基於時間之計數器在該替代性執行模式期間產生在其中具有該時序資訊的封包,其中在該替代性執行模式期間之執行時間歸因於無指令或歸因於在起始該替代性執行模式之前經受該指令追蹤的一指令。
  15. 如申請專利範圍第1項之方法,其中產生描述該指令追蹤之該等複數個封包至一除錯紀錄包含:產生追蹤封包;產生時序封包;及產生支援該指令追蹤之維護封包。
  16. 如申請專利範圍第1項之方法,其中該積體電路包含一 中央處理單元(CPU)。
  17. 如申請專利範圍第1項之方法,其中該積體電路包含用於一平板計算器件或一智慧型電話中之一者的一中央處理單元。
  18. 如申請專利範圍第1項之方法,其中起始指令追蹤包含隨著該等指令藉由該積體電路執行而起始針對該所追蹤應用程式、模式或程式碼區之該等指令的即時指令追蹤(RTIT)。
  19. 一種在一積體電路中之方法,其中該方法包含:隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行,起始針對該等指令的指令追蹤;產生描述該指令追蹤之複數個封包至一除錯紀錄;在該積體電路內起始一替代性執行模式;基於該積體電路之一模式位元根據一不可見追蹤模式或一可見追蹤模式操作;其中根據該不可見追蹤模式操作包含抑制進入該替代性執行模式之指示;且其中根據該可見追蹤模式操作包含對自該所追蹤應用程式、模式或程式碼區之該等指令至該替代性執行模式之一轉變的一指示進行紀錄。
  20. 如申請專利範圍第19項之方法,其中根據該可見追蹤模式操作進一步包含:產生指示自該所追蹤應用程式、模式或程式碼區之該等指令的一轉變之封包或指示至該替代性執行模式 之一轉變之封包;及對指示該轉變之該等封包進行紀錄。
  21. 如申請專利範圍第19項之方法,其中根據該可見追蹤模式操作進一步包含:在該替代性執行模式期間暫時中止與該所追蹤應用程式、模式或程式碼區之該等指令相關聯的計數器及/或時脈。
  22. 如申請專利範圍第19項之方法,其中根據該可見追蹤模式操作進一步包含:經由基於時間之計數器產生其中具有時序資訊的封包;且其中在該替代性執行模式期間之執行時間歸因於該替代性執行模式,且可與用於該所追蹤應用程式、模式或程式碼區之該等指令的執行時間區別。
  23. 如申請專利範圍第19項之方法,其中該替代性模式包含一除錯模式。
  24. 一種積體電路,其包含:指令追蹤邏輯,其隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行而追蹤該等指令;封包產生邏輯,其產生描述該等所追蹤指令之複數個封包至一除錯紀錄;該積體電路,其起始一替代性執行模式;及模式產生邏輯,其抑制進入該替代性執行模式之指示。
  25. 如申請專利範圍第24項之積體電路,其中該積體電路進一步包含一模式位元。
  26. 如申請專利範圍第25項之積體電路,其中該封包產生邏輯及該模式產生邏輯基於該模式位元根據一不可見追蹤模式或一可見追蹤模式中之一者來操作。
  27. 如申請專利範圍第24項之積體電路,其中該積體電路包含一中央處理單元(CPU)。
  28. 如申請專利範圍第24項之積體電路,其中該積體電路包含用於一平板計算器件或一智慧型電話中之一者的一中央處理單元。
  29. 一種系統,其包含:一顯示單元;及一積體電路,其中該積體電路包含:一資料匯流排,指令追蹤邏輯,其隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行而追蹤該等指令,封包產生邏輯,其產生描述該等所追蹤指令之複數個封包至一除錯紀錄,該積體電路,其起始一替代性執行模式,及模式產生邏輯,其抑制進入該替代性執行模式之指示。
  30. 如申請專利範圍第29項之系統:其中該系統體現一平板電腦或一智慧型電話; 其中該顯示單元包含該平板電腦或該智慧型電話之一觸控式螢幕介面;且其中該積體電路併入於該平板電腦或智慧型電話內。
  31. 一種平板計算器件,其包含:一顯示單元;及一積體電路,其中該積體電路包含:一資料匯流排,指令追蹤邏輯,其隨著一所追蹤應用程式、模式或程式碼區之指令藉由該積體電路執行而追蹤該等指令;封包產生邏輯,其產生描述該等所追蹤指令之複數個封包至一除錯紀錄,該積體電路,其起始一替代性執行模式,及模式產生邏輯,其抑制進入該替代性執行模式之指示。
TW101150132A 2011-12-30 2012-12-26 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術 TWI461908B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/068210 WO2013101214A1 (en) 2011-12-30 2011-12-30 Optional logging of debug activities in a real time instruction tracing log

Publications (2)

Publication Number Publication Date
TW201333694A true TW201333694A (zh) 2013-08-16
TWI461908B TWI461908B (zh) 2014-11-21

Family

ID=48698446

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101150132A TWI461908B (zh) 2011-12-30 2012-12-26 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術

Country Status (3)

Country Link
US (1) US9003375B2 (zh)
TW (1) TWI461908B (zh)
WO (1) WO2013101214A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013101251A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Real time instruction tracing compression of ret instructions
US8924796B2 (en) * 2012-03-22 2014-12-30 Intel Mobile Communications GmbH System and method for processing trace information
US9262163B2 (en) 2012-12-29 2016-02-16 Intel Corporation Real time instruction trace processors, methods, and systems
US9804951B2 (en) 2014-10-08 2017-10-31 Signalfx, Inc. Quantization of data streams of instrumented software
US9846574B2 (en) 2014-12-19 2017-12-19 Signalfx, Inc. Representing result data streams based on execution of data stream language programs
US9652237B2 (en) * 2014-12-23 2017-05-16 Intel Corporation Stateless capture of data linear addresses during precise event based sampling
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US9658942B2 (en) 2015-04-02 2017-05-23 International Business Machines Corporation Dynamic tracing framework for debugging in virtualized environments
US10089212B2 (en) * 2015-07-20 2018-10-02 Toshiba Memory Corporation Memory system, information processing system, and host device outputting debugging information through a host interface
WO2017153796A1 (en) * 2016-03-11 2017-09-14 Intel Corporation Technologies for indirectly calling vector functions
US9965375B2 (en) 2016-06-28 2018-05-08 Intel Corporation Virtualizing precise event based sampling
US10216616B2 (en) * 2016-07-02 2019-02-26 Intel Corporation Cooperative triggering
US10466986B2 (en) * 2018-03-30 2019-11-05 Oracle International Corporation Optimized recompilation using hardware tracing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058928B2 (en) * 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
US7197671B2 (en) * 2002-06-07 2007-03-27 Arm Limited Generation of trace elements within a data processing apparatus
US7581211B2 (en) 2004-07-14 2009-08-25 International Business Machines Corporation Method and apparatus for on demand debugging, tracing, and logging of applications
US7673296B2 (en) 2004-07-28 2010-03-02 Hewlett-Packard Development Company, L.P. Method and system for optional code scheduling
GB2447683B (en) * 2007-03-21 2011-05-04 Advanced Risc Mach Ltd Techniques for generating a trace stream for a data processing apparatus
US9223677B2 (en) * 2008-06-11 2015-12-29 Arm Limited Generation of trace data in a multi-processor system
US7962803B2 (en) 2008-09-30 2011-06-14 International Business Machines Corporation Apparatus, system, and method for multi-address space tracing
US8438547B2 (en) * 2009-05-05 2013-05-07 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US8386747B2 (en) * 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation
US20110078350A1 (en) * 2009-09-30 2011-03-31 Via Technologies, Inc. Method for generating multiple serial bus chip selects using single chip select signal and modulation of clock signal frequency
US20110289485A1 (en) 2010-05-21 2011-11-24 International Business Machines Corporation Software Trace Collection and Analysis Utilizing Direct Interthread Communication On A Network On Chip
GB2481385B (en) * 2010-06-21 2018-08-15 Advanced Risc Mach Ltd Tracing speculatively executed instructions
US8561033B2 (en) * 2010-07-30 2013-10-15 International Business Machines Corporation Selective branch-triggered trace generation apparatus and method

Also Published As

Publication number Publication date
US20130263093A1 (en) 2013-10-03
WO2013101214A1 (en) 2013-07-04
TWI461908B (zh) 2014-11-21
US9003375B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
TWI461908B (zh) 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術
US9128781B2 (en) Processor with memory race recorder to record thread interleavings in multi-threaded software
US7689867B2 (en) Multiprocessor breakpoint
US9195462B2 (en) Techniques for tracing processes in a multi-threaded processor
KR101594090B1 (ko) 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들
US8527812B2 (en) Information processing device
KR101748506B1 (ko) 실시간 명령어 추적 프로세서들, 방법들 및 시스템들
US20080208555A1 (en) Simulation method and simulation apparatus
US7562258B2 (en) Generation of trace elements within a data processing apparatus
CN109690497B (zh) 用于通过输入参数来区分函数性能的系统和方法
US9996127B2 (en) Method and apparatus for proactive throttling for improved power transitions in a processor core
KR20170039212A (ko) 커널 모듈을 위한 멀티코어 메모리 데이터 레코더
WO2023107789A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
US7334114B2 (en) Real-time monitoring, alignment, and translation of CPU stalls or events
US20200401538A1 (en) Integrated circuits for generating input/output latency performance metrics using real-time clock (rtc) read measurement module
EP4198741A1 (en) System, method and apparatus for high level microarchitecture event performance monitoring using fixed counters
US20230109752A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
US7992049B2 (en) Monitoring of memory and external events
CN112540908B (zh) 面向异构众核处理器的轻量级软件调试方法
CN111506395B (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置
US8627049B2 (en) Real-time prioritization of stall or event information
JP2009217385A (ja) プロセッサ及びマルチプロセッサ
West et al. Core monitors: monitoring performance in multicore processors
US20230185695A1 (en) Processor trace with suppression of periodic timing packets for low density trace sections
Hu et al. Applications of on-chip trace on debugging embedded processor

Legal Events

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