TW201835765A - 死結偵測器、包括其之系統與其方法 - Google Patents

死結偵測器、包括其之系統與其方法 Download PDF

Info

Publication number
TW201835765A
TW201835765A TW106127622A TW106127622A TW201835765A TW 201835765 A TW201835765 A TW 201835765A TW 106127622 A TW106127622 A TW 106127622A TW 106127622 A TW106127622 A TW 106127622A TW 201835765 A TW201835765 A TW 201835765A
Authority
TW
Taiwan
Prior art keywords
signal
hardware block
processor
hardware
debug
Prior art date
Application number
TW106127622A
Other languages
English (en)
Inventor
金載烈
柳允寬
Original Assignee
三星電子股份有限公司
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 三星電子股份有限公司 filed Critical 三星電子股份有限公司
Publication of TW201835765A publication Critical patent/TW201835765A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • 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
    • 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/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

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

Abstract

一種系統包括多個硬體區塊、死結檢測器、及互連裝置。硬體區塊包括用於執行指令的處理器及用於儲存資料的儲存裝置。死結檢測器即時地監測多個硬體區塊中的目標硬體區塊的運行以將除錯資訊儲存在儲存裝置中。互連裝置電連接死結檢測器與多個硬體區塊。互連裝置包括:系統匯流排,電連接多個硬體區塊;以及除錯匯流排,將死結檢測器電連接到目標硬體區塊及儲存裝置。互連裝置包括:系統匯流排,電連接多個硬體區塊;以及除錯匯流排,將死結檢測器電連接到目標硬體區塊及儲存裝置。

Description

死結偵測器、包括其之系統與相關方法
本發明涉及半導體積體電路,且更具體來說,涉及一種死結檢測器、包括其之系統及在系統中檢測死結的方法。
當系統的例如中央處理器(central processing unit,CPU)核心等硬體區塊陷入死結時,可能需要進行除錯來尋找並解決死結的原因。如果系統已陷入死結,則可能難以通過將外部除錯器連接到系統來監測系統。傳統上,可使用監視器計時器(watchdog timer)來確定系統中的死結以提取用於除錯的資料。監視器的過期時間為約十秒。因此,死結的根本原因可能會在除錯過程期間在收集到除錯資訊之前消失。因此,可能難以發現並分析死結的時間點及原因。
一些示例性實施例可提供一種能夠即時地在系統中檢測死結以確保獲得除錯資訊的死結檢測器。
一些示例性實施例可提供一種包括能夠即時地在系統中檢測死結以確保獲得除錯資訊的死結檢測器的系統。
一些示例性實施例可提供一種檢測能夠即時地在系統中檢測死結以獲得除錯資訊的死結檢測器的方法。
根據示例性實施例,一種系統包括:多個硬體區塊,所述多個硬體區塊中的至少一個硬體區塊包括被配置成執行指令的處理器,且所述多個硬體區塊中的至少一個硬體區塊包括被配置成存儲資料的存儲裝置;死結檢測器,被配置成即時地監測所述多個硬體區塊中的目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號,並響應於所述監測信號的產生而將除錯資訊存儲在所述存儲裝置中;以及互連裝置,電連接所述死結檢測器與所述多個硬體區塊,所述互連裝置包括電連接所述多個硬體區塊的系統匯流排以、及將所述死結檢測器電連接到所述目標硬體區塊及所述存儲裝置的除錯匯流排。
根據示例性實施例,一種系統包括:多個硬體區塊;以及死結檢測器,收集所述系統的除錯資訊。所述死結檢測器包括:監測單元,被配置成即時地監測所述多個硬體區塊中的目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號;除錯核心,被配置成基於所述監測信號而將所述除錯資訊存儲在與所述多個硬體區塊中的一個對應的存儲裝置中;以及除錯匯流排,被配置成將所述死結檢測器電連接到所述目標硬體區塊及所述存儲裝置。
根據示例性實施例,提供一種在包括多個硬體區塊的系統中檢測死結的方法。所述方法包括:將死結檢測器電連接到所述多個硬體區塊中的包括處理器的目標硬體區塊以及所述多個硬體區塊中的包括存儲裝置的至少一個硬體區塊,所述處理器被配置成執行指令,所述存儲裝置被配置成存儲資料;使用所述死結檢測器即時地監測所述目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號;以及使用所述死結檢測器基於所述監測信號將除錯資訊存儲在所述存儲裝置中。
根據示例性實施例,一種對系統進行診斷的方法包括:將死結檢測器電連接到存儲裝置及目標硬體區塊;即時地監測所述目標硬體區塊的運行以產生表示所述目標硬體區塊的異常狀態的監測信號;基於所述監測信號將除錯資訊存儲在所述存儲裝置中;在存儲所述除錯資訊之後將所述系統重定;在將所述系統重定之後將所述除錯資訊提供到外部裝置並基於所述除錯資訊執行除錯操作。
根據示例性實施例,一種多核心系統包括:多個硬體區塊,所述多個硬體區塊中的至少一個硬體區塊包括被配置成執行指令的處理器,且所述多個硬體區塊中的至少一個硬體區塊包括被配置成存儲資料的存儲裝置;死結檢測器,被配置成即時地監測所述多個硬體區塊中的包括所述處理器的所述至少一個硬體區塊的運行,以將除錯資訊存儲在所述存儲裝置中;以及互連裝置,電連接所述死結檢測器與所述多個硬體區塊。
根據示例性實施例,一種系統包括:多個處理器電路;死結檢測器,被配置成即時地監測所述多個處理器電路中的至少一個目標處理器電路的運行,以將除錯資訊存儲在外部存儲裝置中;以及互連裝置,電連接所述死結檢測器與所述多個處理器電路。
根據示例性實施例的所述死結檢測器、包括所述死結檢測器的所述系統、及相關聯的方法可支援高效除錯並通過即時地監測系統的異常狀態以確保獲得除錯資訊來提高除錯的成功概率。
在下文中,將參照其中顯示一些示例性實施例的附圖來更充分地描述各種示例性實施例。在各個圖式中,相似的編號自始至終指代相似的元件。可不再重複的說明。
除非另外指明,否則本文所使用的被描述為“電性連接”的專案被配置成使得電信號可從一個項目傳遞到另一個項目。
按照本發明概念的領域中的傳統,在圖式中採用功能性區塊、單元及/或模組來闡述及說明各實施例。所屬領域中的技術人員應理解,這些區塊、單元及/或模組是由例如邏輯電路、分立元件、微處理器、硬接線電路(hard-wired circuit)、記憶體元件、配線連接件等可利用基於半導體的製作技術或其他製造技術形成的電子(或光學)電路以實體方式實現。在所述區塊、單元及/或模組由微處理器或類似元件實現的情形中,所述區塊、單元及/或模組可利用軟體(例如,微代碼)進行程式設計以執行本文所論述的各種功能且可視需要通過固件及/或軟體來驅動。作為另外一種選擇,每一個區塊、單元及/或模組可由專用硬體來實現,或者作為用於執行某些功能的專用硬體與用於執行其他功能的處理器(例如,一個或多個經過程式設計的微處理器及相關聯的電路系統)的組合。另外,所述實施例中的每一個區塊、單元及/或模組可在不背離本發明概念的範圍的條件下在實體上分成兩個或更多個交互作用且分立的區塊、單元及/或模組。另外,所述實施例的區塊、單元及/或模組可在不背離本發明概念的範圍的條件下在實體上組合成更複雜的區塊、單元及/或模組。
圖1是說明根據示例性實施例的在系統中檢測死結的方法的流程圖。圖1說明檢測死結以收集包括多個硬體區塊(例如,處理器電路)的系統的除錯資訊的方法。
參照圖1,可將死結檢測器電連接到存儲裝置及所述多個硬體區塊中的目標硬體區塊(S100)。可使用死結檢測器即時地監測目標硬體區塊的運行,以產生表示目標硬體區塊的異常狀態的監測信號(S200)。可使用死結檢測器基於監測信號將除錯資訊存儲在存儲裝置中(S300)。
可將目標硬體區塊設定成一個或更多個硬體區塊以使得目標硬體區塊的運行可使系統有相對高的概率陷入異常狀態(例如,死結)中。異常狀態可代表系統的運行因軟體及/或硬體問題而在系統的啟動過程期間或在啟動過程完成之後暫時地或永久地中斷的所有現象。舉例來說,系統的異常狀態可包括內核錯誤(kernel panic)、死結(lockup)、暫停(hang)、凍結(freeze)等,這些在整體上可被稱為死結。舉例來說,內核錯誤可指代在檢測到會使作業系統(operating system,OS)無法安全地恢復的內部致命錯誤時作業系統所採取的行動,且死結或暫停或者凍結發生在當電腦程式或作業系統不再對輸入作出回應時。
根據示例性實施例的死結檢測方法可即時地(例如,在作業系統工作的同時)監測硬體行為。舉例來說,可與計時器中斷同步地週期性地監測硬體行為,且如果檢測到異常則可收集除錯資訊。在作業系統的情形中,可能難以通過傳統方法來以短的迴圈週期進行性能監測,但是根據示例性實施例的死結檢測器可利用短於一毫秒的迴圈週期來收集除錯資訊。
如果系統晶片(system on chip,SOC)在正常運行期間陷入異常狀態中,則分析異常狀態的原因會耗用相對長的時間。依賴于軟體的傳統方案可能無法在系統晶片陷入死結的時間點處捕捉到系統晶片中的所有邏輯狀態。相比之下,根據示例性實施例的死結檢測器及死結檢測方法可提取並存儲硬體邏輯的資訊以發現硬體邏輯中的問題的確切原因。
在一些傳統方法中,可使用軟體日誌來進行事後分析(post-analysis)。然而,使用這些方法可能無法在出現硬體問題的情形中確切地分析死結的確切原因。相比之下,根據示例性實施例的死結檢測器及死結檢測方法除了軟體問題之外還可解決硬體問題。
在其他傳統方法中,可在軟體代碼中插入中斷點(break point)且外部測試器可在出現與中斷點相關聯的事件時提取並分析相關聯的資訊。相比之下,根據示例性實施例的死結檢測器及死結檢測方法可與預定中斷點無關地在出現死結時確保獲得除錯資訊。
因此,根據示例性實施例的死結檢測器、包括死結檢測器的系統及相關聯的方法可支援高效除錯並通過即時地監測系統的異常狀態以確保獲得除錯資訊來提高除錯的成功概率。
圖2是說明根據示例性實施例的系統的方塊圖。所述系統可為其中將各種半導體元件集成為一個晶片的系統晶片(SOC)。
參照圖2,系統1000包括多個硬體區塊HB1 101至硬體區塊HB7 107、一個或多個監測單元MU1 501及MU2 502、除錯核心DBC 400及互連裝置10。一些硬體區塊可為主裝置且其他硬體區塊可為從裝置。主裝置可分別產生請求以要求得到來自從裝置中的至少一個從裝置的服務。舉例來說,主裝置可包括被配置成執行指令的處理器且從裝置可包括被配置成存儲資料的存儲裝置。
硬體區塊101至107中的至少一個可被確定為作為監測物件的目標硬體區塊。舉例來說,如圖2所示,第一硬體區塊101及第二硬體區塊102可被設定為目標硬體區塊且監測單元501及502可分別被分配給目標硬體區塊101及102。如以下將闡述,每一個監測單元可即時地監測對應的目標硬體區塊的運行,以產生表示對應的目標硬體區塊的異常狀態的監測信號。
除錯核心400可基於監測信號而將除錯資訊存儲在存儲裝置中。存儲裝置可對應于硬體區塊101至107中的一個。互連裝置10可電連接死結檢測器與所述多個硬體區塊。
硬體區塊的數目與監測單元的數目可以各種方式確定。根據目標硬體區塊的操作特性,監測單元可具有不同的配置。
圖3是說明圖2所示系統的匯流排結構的方塊圖。
參照圖2及圖3,系統1000a的互連裝置10可包括除錯匯流排11及系統匯流排12。系統匯流排12可電連接所述多個硬體區塊101至107。除錯匯流排11可將死結檢測器300電連接到目標硬體區塊101及102及存儲裝置。舉例來說,兩個硬體區塊101及硬體區塊102可為目標硬體區塊且一個硬體區塊105可為存儲裝置,如圖3所示。在一些示例性實施例中,所述兩個硬體區塊101及硬體區塊102以及所述存儲裝置(硬體區塊105)可直接電連接到除錯匯流排11及系統匯流排12。在一些示例性實施例中,硬體區塊103、104、106、及107可直接電連接到系統匯流排12,但可不直接電連接到除錯匯流排11。直接電連接的元件可直接實體連接且直接電連接。
死結檢測器300可包括一個或多個監測單元501及502以及除錯核心400。監測單元501及502可分別即時地監測目標硬體區塊101及102的運行,以產生表示目標硬體區塊101及102的異常狀態的監測信號。除錯核心400可基於監測信號而將除錯資訊存儲在存儲裝置(例如,硬體區塊105)中。
在一些示例性實施例中,除錯匯流排11可為與系統匯流排12在實體上區分開的不同的匯流排。在其他示例性實施例中,除錯匯流排11可為多埠匯流排(multi-port bus)的附屬匯流排且除錯匯流排11及系統匯流排12可使用多埠匯流排的不同埠。由此,通過區分除錯匯流排11與系統匯流排12,即使在系統匯流排12陷入一些硬體問題中時,死結檢測器300仍可即時地檢測死結以確保獲得除錯資訊。在一些示例性實施例中,除錯資訊可包括匯流排除錯單元(bus debug unit,BDU)的跟蹤資訊。舉例來說,跟蹤可牽涉到專門使用日誌來記錄與程式執行有關的資訊,以使程式師可使用這一資訊來達到除錯目的。
圖4是說明目標硬體區塊及監測單元的示例性實施例的方塊圖,圖5是說明圖4中的目標硬體區塊中所包含的性能監測單元的示例性實施例的方塊圖,且圖6是說明圖4中的目標硬體區塊的示例性事件的圖。
參照圖4,目標硬體區塊可對應於處理器100,例如中央處理器(CPU)等。處理器100可包括性能監測單元(performance monitor unit,PMU)110及通用暫存器(general purpose register,GPR)120。監測單元500可包括比較器COM 510。
通用暫存器120是用於例如臨時存儲、算術及邏輯運算、位址檢索等各種用途的暫存器。通用暫存器120可區別於例如程式計數器、指令計數器等特殊功能暫存器。
如圖5所示,性能監測單元110可包括輸入暫存器IREG 111、輸出暫存器OREG 112、迴圈計數器113及多個效能計數器114至119。輸入暫存器111可接收處理器100的事件及/或外部事件以基於所接收的事件來控制計數器113至119的計數操作。舉例來說,所述事件可由相應的內部信號表示。迴圈計數器113基於時脈信號CLK以及輸入暫存器111的輸出來運行。迴圈計數器113可通過將時脈信號CLK(例如,其可為週期性的內部時脈)的數目計數到預定數目來確定迴圈的長度(或迴圈週期),以使得當達到預定數目時,由迴圈計數器113的計數來確定當前迴圈的結束。在當前迴圈的結束時(在計數至預定數目時),迴圈計數器113可向輸出暫存器OREG 112輸出對應的信號以使輸出暫存器112栓鎖效能計數器114至119的當前計數值且使輸出暫存器112基於儲存在計數器113至119中的值產生中斷信號nPMUIRQ及事件計數信號ECNT。中斷信號nPMUIRQ可在性能監測單元110發出中斷時被啟動且中斷信號nPMUIRQ可被提供到外部裝置。事件計數信號ECNT可包括多個位且包括效能計數器114至119的所栓鎖的計數值,且代表前一迴圈週期的所監測的事件的計數。
圖6說明ARM® Cortex®-A系列處理器中使用的一些性能監測單元事件。在圖6的左側列中示出例如SW_INCR、L1I_CACHE_REFILL、INST_RETIRED、CPU_CYCLES、MEM_ACCESS、L2D_CACHE_REFILL、BUS_CYCLES等事件助記符(event mnemonics ),且在圖6的右側列中示出對應的計數操作或事件描述。舉例來說,事件助記符SW_INCR對應于軟體增量,例如,對應於在軟體中對特定事件進行計數的計數操作。事件助記符L1I_CACHE_REFILL對應於對觸發一級(level-1)指令快取記憶體或統一快取記憶體的重新填充的指令進行計數的計數操作(或者與所述指令相關的事件)。事件助記符INST_RETIRED對應於對由中央處理器執行的指令進行計數的計數操作(或者與所述指令相關的事件)。事件助記符CPU_CYCLES對應於對中央處理器的時脈迴圈進行計數的計數操作(或者與中央處理器的時脈迴圈相關的事件)。事件助記符MEM_ACCESS對應於對記憶體讀取/寫入的數目進行計數的計數操作(或者與記憶體讀取/寫入的數目相關的事件)。事件助記符L2D_CACHE_REFILL對應於對觸發二級(level-2)資料快取記憶體或統一快取記憶體的重新填充及一級指令、資料或統一快取記憶體的重新填充的記憶體讀取/寫入存取進行計數的計數操作(或者與所述記憶體讀取/寫入存取相關的事件)。事件助記符對應於對外部記憶體介面中使用的迴圈的數目進行計數的計數操作(或者與外部記憶體介面中使用的迴圈的數目相關的事件)。
監測單元500可使用這些事件的計數值來即時地監測目標硬體區塊的運行,以產生表示目標硬體區塊的異常狀態的監測信號MON。
在一些示例性實施例中,如圖4所示,監測單元500可接收與所監測事件的計數數目對應的事件計數值ECNT並將事件計數值ECNT與參考值REF進行比較以產生監測信號MON。在一些實例中,可針對將要進行監測的每一個事件產生事件計數值ECNT且例如利用對應的比較器510將事件計數值ECNT與對應的參考值REF進行比較,且可回應於所述比較(例如,當任意事件計數值ECNT低於(或者作為另外一種選擇,超過)其對應於的參考值REF時)產生監測信號MON。
圖7是用於描述圖4中的監測單元的運行的圖。
參照圖4至圖7,處理器100的性能監測單元110可週期性地提供事件計數值ECNT。在一些示例性實施例中,所述系統可如圖12所示包括系統計數器SYSCNT,且性能監測單元110可基於來自系統計數器SYSCNT的時間資訊TM週期性地提供事件計數值ECNT,以使死結檢測器300的監測單元500可週期性地監測處理器100的運行。由箭頭來表示要被監測的事件(例如,指令退休事件INST_RETIRED)。在圖7中示出與第一迴圈週期tP1、第二迴圈週期tP2及第三迴圈週期tP3對應的第一計數值CV1、第二計數值CV2及第三計數值CV3。第一迴圈週期tP1、第二迴圈週期tP2及第三迴圈週期tP3對應於相鄰的時間點T1至T4之間的時間間隔,且這些時間間隔可彼此相等。計數值CV0對應於時間點T1處的與在時間點T1之前的迴圈週期期間的計數事件的總數對應的事件計數值ECNT。應理解,由於計數值CVn仍被固定成反映時間週期tPn(或第n個迴圈週期,從時間點Tn到Tn+1)的總計數事件,因此將回應於在時間週期tPn+1(從時間點Tn+1到Tn+2)期間出現的監測及計數事件產生新的計數值CVn+1(且基於每一個監測事件的出現來遞增新的計數值CVn+1)。舉例來說,在每一個時間點Tn(例如,時間點T1至T4中的每一個)處,將由輸出暫存器112來栓鎖效能計數器114至119中的每一個中的計數值及迴圈計數器113中的計數值,且將效能計數器114至119中的每一個中的計數值及迴圈計數器113中的計數值輸出為事件計數值ECNT,從而表示時間點Tn處的計數器113至119的相應的計數且因而表示第n-1個迴圈週期的總事件計數。在同一時間(或者緊接著,例如在電路的下一內部時脈迴圈期間),將計數器113至119中的每一個復位以使得計數器113至119中的每一個的計數值被復位至零,且在第n個迴圈週期期間在檢測到對應的所監測事件時使所述計數器中的每一個計數器的計數值遞增。
如圖7所示,對應於第三迴圈週期tP3的第三計數值CV3可突然降低至低於參考值REF。在這種情形中,監測單元500的比較器510可將監測信號MON啟動至例如邏輯高準位。基於監測信號MON,除錯核心400可執行儲存除錯資訊的操作。
在這個實例中,當圖4中的處理器100進入待機模式時,供應至處理器100的電力被阻斷且性能監測單元110被去能來停止性能監測單元110的操作。死結檢測器300可在系統進入待機模式時被去能以使得供應至處理器100的電力被阻斷,且死結檢測器300可在系統從待機模式被喚醒且進入工作模式時被使能。在一些示例性實施例中,對死結檢測器300進行的使能及去能可基於相同的掉電事件及相同的喚醒事件來與處理器100一同執行。
圖8是說明目標硬體區塊及監測單元的示例性實施例的方塊圖。
參照圖8,目標硬體區塊可對應於處理器100,例如中央處理器(CPU)。處理器100可包括性能監測單元(PMU)110及通用暫存器(GPR)120,如參照圖4所闡述。圖8所示示例性實施例與圖4所示示例性實施例的不同之處在於圖8所示示例性實施例的監測單元500a除了比較器514之外還可包括計數器512。
性能監測單元110可提供指令退休信號INRET。每一個指令當在處理器100的流水線(pipeline)中提取所述指令時啟動,且如果通過流水線中的相應的階段完成所述指令,則所述指令退休。退休指令表示“已正常執行及完成的指令”,且一些指令可能無法退休。舉例來說,如果一指令被確定為不必要的,則當所述指令在流水線中被執行的同時處理器100可捨棄所述指令。這種指令可由為了提高處理器100的性能而引入的分支預測、指令預取等造成。
指令退休信號INRET可在每當處理器100的每一指令得到執行且完成時(例如,每當流水線的最後階段處的指令最終得到執行且完成時)以脈衝形式被啟動。舉例來說,指令退休信號INRET可在每當出現圖5中的指令退休事件INST_RETIRED時以脈衝形式被啟動。
在一些示例性實施例中,如圖8所示,監測單元500a可接收指令退休信號INRET並基於指令退休信號INRET中所包含的脈衝的啟動時序來產生監測信號MON。
圖9是用於描述圖8中的監測單元的運行的圖。
參照圖8及圖9,處理器100的性能監測單元110可提供指令退休信號INRET,指令退休信號INRET是每當出現指令退休事件時以脈衝形式被啟動。舉例來說,如圖9所示,指令退休信號INRET可在時間點T1、T2、T3、及T4處以脈衝形式被啟動。
監測單元500a的計數器512可接收從性能監測單元110提供的指令退休信號INRET。計數器512可通過執行計數操作產生計數信號CNT且計數器512可響應於指令退休信號INRET的脈衝而被復位。如圖9所示,計數信號CNT的值可分別當在時間點T1、T2、T3及T4處被初始化成(或復位成)零之後逐漸增大。在一些示例性實施例中,計數器512可利用對有規律的週期性時脈信號的邊沿進行計數且回應於指令退休信號INRET而被重定的紋波計數器(ripple counter)來實現。監測單元500a的比較器514可將計數信號CNT的值與參考值REF進行比較以產生監測信號MON。
如圖9所示,計數信號CNT的值可顯著增大且在時間點T5處達到參考值REF。在一個實施例中,當計數值CNT達到及/或超過參考值REF時,監測單元500a的比較器514可將監測信號MON啟動至例如邏輯高準位。舉例來說,如果指令退休信號INRET未被啟動達與參考值REF對應的相對長的時間,則監測單元500a可確定處理器100處於異常狀態。響應於監測信號MON在計數值CNT達到參考值REF時轉變至邏輯高準位,除錯核心400可執行儲存除錯資訊的操作。
圖10是說明根據示例性實施例的死結檢測器的方塊圖。
參照圖10,死結檢測器可如上所述包括至少一個監測單元MU及除錯核心400。圖10還示出多個硬體區塊HB1、HB2及HB3。除錯核心400可包括掃描控制器SCCTRL、暫存器REG、緩衝器BUFF及輸出單元TX。
掃描控制器SCCTRL可基於來自監測單元MU的監測信號MON產生掃描使能信號SCEN1、SCEN2及SCEN3,並將掃描使能信號SCEN1、SCEN2及SCEN3傳遞至用於提供除錯資訊的源硬體區塊HB1、HB2及HB3。掃描使能信號SCEN1、SCEN2及SCEN3可表示儲存除錯資訊的開始定時(start timing),且源硬體區塊HB1、HB2及HB3可回應於使能信號SCEN1、SCEN2及SCEN3來準備將除錯資訊提供至除錯核心400。在一些示例性實施例中,掃描控制器SCCTRL可利用微處理器來實現。
暫存器REG可儲存用於除錯核心400的運行的控制值。舉例來說,暫存器REG可儲存與將儲存所述除錯資訊的位址、除錯核心的使能條件、資料遮罩(data mask)等有關的資訊。暫存器REG可如圖10所示包含在掃描控制器SCCTRL中或者暫存器REG可被實作為與掃描控制器SCCTRL區分開。
緩衝器BUFF可接收與從源硬體區塊HB1、HB2及HB3提供的除錯資訊對應的輸入資料DI並臨時地儲存除錯資訊。在一些示例性實施例中,緩衝器可利用移位暫存器來實現。輸出單元TX可從緩衝器BUFF接收輸出資料D0並將除錯資訊DINF傳遞至儲存裝置。
掃描控制器SCCTRL可產生掃描時脈信號SCCK並將掃描時脈信號SCCK提供至源硬體區塊HB1、HB2、HB3、緩衝器BUFF以及用於儲存除錯資訊DINF的儲存裝置。源硬體區塊HB1、HB2、HB3、緩衝器BUFF以及儲存裝置可與掃描時脈信號SCCK同步地執行對除錯資訊DINF進行的備份操作。由此,通過使用來自掃描控制器SCCTRL的掃描時脈信號SCCK,即使源硬體區塊的工作時脈信號(operation clock signal)存在問題時,也可確保安全地獲得除錯資訊DINF。
圖11是用於描述對除錯資訊進行儲存的示例性實施例的圖。
參照圖11,源硬體區塊HB 100a可包括其中級聯耦合(cascaded-coupled)有多個正反器FF的掃描鏈110a。如圖11所示,儲存在掃描鏈110a中的資料可作為除錯資訊DINF(例如,輸入資料DI)被提供至除錯核心400中的緩衝器BUFF。
掃描鏈110a可對通過掃描輸入信號SI提供的值進行依序地傳遞及移位元以提供掃描輸出信號SO。掃描輸出信號SO可被提供至源硬體區塊100a的內部電路(圖中未示出)。作為非侵入性方案的示例性實施例,掃描輸出信號SO可在除錯資訊備份期間作為掃描輸入信號SI被回饋以使得掃描鏈110a的值可在完成掃描輸出之後被恢復。開關SW可回應於掃描使能信號SCEN而導通以將掃描輸出信號SO作為輸入資料DI提供至緩衝器BUFF。舉例來說,掃描輸出信號SO可被提供至源硬體區塊100a的內部電路,且同時,掃描輸出信號SO可作為除錯資訊DINF的緩衝器輸入資料DI來提供。由此,可侵入性地或者非侵入性地收集除錯資訊。
圖12是用於描述根據示例性實施例的系統的電源域的圖。
一般來說,系統可包括多個被分別供電的電源域。作為實例,圖12說明第一電源域PWDM1及第二電源域PWDM2。第一電源域PWDM1對應於在工作模式及待機模式二者中均供應電力的始終被供電的域,且第二電源域PWDM2對應於在待機模式中電力被阻斷的省電域(power-save domain)。
如圖12所示,在始終被供電的域PWDM1中可設置有系統計數器SYSCNT、電源控制器PWCNTR及死結檢測器DLDET。在省電域中可設置有包括處理器的多個硬體區塊HB1及HB2。
系統計數器SYSCNT可產生時間資訊TM並將時間資訊TM提供至系統的內部電路。電源控制器PWCNTR可產生中斷ITRR以控制電力的供應及阻斷。死結檢測器DLDET可產生掃描使能信號SCEN及重定信號RST。死結檢測器DLDET可在完成對除錯資訊DINF的儲存或備份之後啟動重定信號RST,且系統可回應於重定信號RST來重定或重新開機(reboot)。
通過將死結檢測器DLDET設置在始終被供電的域PWDM1中,根據示例性實施例的死結檢測器DLDET可始終被導通或被使能,且因此可即時地執行對除錯資訊DINF的儲存或備份。在一些示例性實施例中,圖3中的死結檢測器300的監測單元MU1及MU2可分別被集成在硬體區塊HB1及HB2中,以使得監測單元可與對應的硬體區塊設置在同一電源域中。在這一示例性實施例中,被啟動的電源域中的硬體區塊可通過除錯匯流排11電連接到死結檢測器300中的除錯核心400。
在下文中,會參照圖13至圖16闡述產生監測信號MON的示例性實施例。監測信號MON可通過除了圖13至圖16所示的方法以外的各種方法產生。
圖13是說明根據示例性實施例的用於即時地進行監測的累加器模型的圖,且圖14是說明使用圖13所示累加器模型的監測單元的示例性實施例的方塊圖。
根據硬體區塊(例如,主裝置(例如,處理器100))的操作特性而定,可將服務要求水準(service requirement level)表示為延遲。所述延遲可為從主裝置發出對服務的請求到完成所請求的服務的延遲。舉例來說,所述延遲可由時脈信號的迴圈數目來表示。
圖13使用斜線示出主裝置中的累加器的延遲狀態,且延遲狀態可由當前延遲水準LCL來表示。當前延遲水準LCL在累加器的延遲增大時增大,且當前延遲水準LCL在累加器的延遲減小時減小。在當前延遲水準LCL增大時,可分配較高的優先順序,且在當前延遲水準LCL減小時,可分配較低的優先順序。
根據系統的總體情況,可確定例如延遲緊急水準LUL及延遲非常緊急水準LVUL等參考值。可基於參考值LUL及LVUL以及當前延遲水準LCL來產生緊急資訊信號UGENT。在當前延遲水準LCL低於延遲緊急水準LUL時,主裝置可被視為在正常狀態下工作,且因而緊急資訊信號UGNT可被去啟動。
緊急資訊信號UGNT可包括多個位或者多個信號來表示當前延遲水準LCL是否對應於緊急情況或者表示當前延遲水準LCL如何對應於緊急情況。舉例來說,如以下將闡述,監測單元500b(圖14所示)可產生在當前延遲水準LCL高於延遲緊急水準LUL時啟動的緊急標誌信號(urgent flag signal)UG以及在當前延遲水準LCL高於延遲非常緊急水準時啟動的非常緊急標誌信號(very urgent flag signal)。舉例來說,非常緊急標誌信號可對應於上述監測信號MON。
參照圖14,監測單元500b可包括延遲監測器530b及比較器COM 550b。
延遲監測器530b可通過檢測(例如,即時地檢測)對應的主裝置100的延遲來產生當前延遲水準LCL。延遲監測器530b可包括延遲檢測器(LATDET)540、減法器(SUB)535及累加器(ACC)537。
延遲檢測器540可基於在對應的主裝置與互連裝置10之間傳送的通道信號CHN產生當前延遲CLAT。減法器535可計算參考延遲RLAT與當前延遲CLAT之間的差以產生延遲差值dLAT。累加器537可對延遲差值dLAT進行累加以產生當前延遲水準LCL。
比較器550b可基於參考值LUL及LVUL以及當前延遲水準LCL中的至少一個產生緊急資訊信號UGNT及優先順序資訊信號PRT。比較器550b可將優先順序資訊信號PRT產生為使得優先順序資訊信號PRT在當前延遲水準LCL增大時表示較高的優先順序且在當前延遲水準LCL減小時表示較低的優先順序。
例如延遲緊急水準LUL及延遲非常緊急水準LVUL等參考值可根據系統的總體情況來確定。舉例來說,在系統的初始化階段期間,可將參考值LUL及LVUL提供至比較器550b並儲存在比較器550b中。比較器550b可基於所儲存的參考值LUL及LVUL產生緊急資訊信號UGNT。
舉例來說,比較器550b可產生緊急標誌信號UG,緊急標誌信號UG在當前延遲水準LCL變得高於延遲緊急水準LUL、但低於延遲非常緊急水準LVUL時被啟動。比較器550b可產生監測信號MON,監測信號MON在當前延遲水準LCL變得高於延遲非常緊急水準LVUL時被啟動。比較器550b可被實作為回應於儲存值及輸入信號來執行預定過程序列的特殊功能暫存器(SFR)。
圖15是說明圖14所示監測單元中所包含的延遲檢測器的示例性實施例的方塊圖。
參照圖15,延遲檢測器540包括第一正反器(FF1)541、第二正反器(FF2)542、計數器543、第一栓鎖器(LATCH1)544、第二栓鎖器(LATCH2)545、計算器546、第一邏輯閘548及第二邏輯閘549。
舉例來說,第一邏輯閘548可被實作為及閘,用於對請求有效信號ARVALID及請求就緒信號ARREADY執行與運算以輸出運算結果。第一邏輯閘548的輸出被輸入到第一正反器541的資料端子D且全域時脈信號ACLK被輸入到第一正反器541的時脈端子C。第一正反器541回應於全域時脈信號ACLK對第一邏輯閘548的輸出進行採樣以通過輸出端子Q輸出第一採樣信號SS1。舉例來說,第一正反器541可響應於全域時脈信號ACLK的上升沿對第一邏輯閘548的輸出進行採樣。
舉例來說,第二邏輯閘549可被實作為及閘,用於對服務有效信號RVALID、服務就緒信號RREADY及服務完成信號RLAST執行與運算以輸出運算結果。第二邏輯閘549的輸出被輸入到第二正反器542的資料端子D且全域時脈信號ACLK被輸入到第二正反器542的時脈端子C。第二正反器542回應於全域時脈信號ACLK對第二邏輯閘549的輸出進行採樣以通過輸出端子Q輸出第二採樣信號SS2。舉例來說,第二正反器542可響應於全域時脈信號ACLK的上升沿對第二邏輯閘549的輸出進行採樣。
計數器543對全域時脈信號ACLK的迴圈數目進行計數以提供計數信號CNT。
第一栓鎖器544回應於第一採樣信號SS1栓鎖計數信號CNT以提供開始計數信號CNT1。舉例來說,第一栓鎖器544可回應於第一採樣信號SS1的上升沿栓鎖計數信號CNT。第一栓鎖器544可接收與請求信號ARVALID及ARREADY相關聯的第一識別信號ARID以提供第一識別代碼ID1。
第二栓鎖器545回應於第二採樣信號SS2栓鎖計數信號CNT以提供結束計數信號CNT2。舉例來說,第二栓鎖器545可回應於第二採樣信號SS2的上升沿栓鎖計數信號CNT。第二栓鎖器545可接收與服務信號RVALID、RREADY及RLAST相關聯的第二識別信號BID以提供第二識別代碼ID2。
計算器546基於開始計數信號CNT1及結束計數信號CNT2產生當前延遲CLAT。當系統在主裝置、互連裝置及從裝置之間採用支援多個未決事務的協定時,可使用識別信號ARID及BID來判斷請求信號ARVALID及ARREADY是否與和服務信號RVALID、RREADY及RLAST相同的事務相關聯。
每當輸入開始計數信號CNT1及第一識別代碼ID1時,計算器546便可對映射表547進行升級以儲存第一識別代碼ID1的值ID11、ID12及ID13以及開始計數信號CNT1的對應的計數值C1、C2及C3。當輸入結束計數信號CNT2及第二識別代碼ID2時,計算器546會通過將第二識別信號ID2的值與先前儲存的第一識別信號ID1的值ID11、ID12及ID13進行比較來從映射表547中提取計數值C1、C2及C3中的一個。
計算器546可通過計算表示服務請求時間點(service request timing point)的提取值與表示完成時間點(issue done timing point)的值之間的差來產生當前延遲CLAT。
圖16是說明由系統執行的示例性事務及由圖15所示延遲檢測器檢測的當前延遲的時序圖。
圖16說明根據先進可擴展介面(advanced extensible interface,AXI)協定的讀取事務的實例。先進可擴展介面協定採用使用有效信號及就緒信號的握手方案(handshake scheme)。
根據握手方案,如果主介面與從介面中的第一個將信號傳遞至主介面與從介面中的第二個,則所述第一個會啟動有效信號,且接著所述第二個會在所述第二個準備好接收信號時啟動與有效信號對應的就緒信號。對信號進行的採樣均是在主介面及從介面二者處回應於全域時脈信號ACLK的上升沿執行的。舉例來說,有效信號傳遞是在全域時脈信號ACLK的同一上升沿處啟動有效信號及就緒信號二者時完成。
如圖16所示,與主介面對應的主裝置會在主裝置傳遞信號時啟動請求有效信號ARVALID且與從介面對應的互連裝置會在互連裝置準備好從主裝置接收信號時啟動請求就緒信號ARREADY。同樣地,互連裝置會在互連裝置傳遞信號時啟動服務有效信號RVALID且主裝置會在主裝置準備好從互連裝置接收信號時啟動服務就緒信號RREADY。
全域時脈信號ACLK的上升沿在圖16中被表示為時間點T0至T13。與主介面對應的主介面通過啟動與服務請求信號對應的請求有效信號ARVALID來將讀取請求信號ARADDR傳遞到與從介面對應的互連裝置。讀取請求信號ARADDR在請求有效信號ARVALID及請求就緒信號ARREADY二者均被啟動的時間點T2處成功地傳遞。主裝置100可基於請求有效信號ARVALID將時間點T1確定為服務請求時間點,而無論請求就緒信號如何(例如,無論有效信號傳遞是否成功)。
作為對讀取請求的回應,將脈衝串類型的資料D(A0)、D(A1)、D(A2)及D(A3)從互連裝置傳遞到主裝置。資料D(A0)、D(A1)、D(A2)及D(A3)分別在服務有效信號RVALID與服務就緒信號RREADY二者均被啟動時的時間點T6、T9、T10及T13處成功地傳遞。互連裝置在傳遞最後的資料D(A3)時啟動服務完成信號RLAST,且時間點T13被確定為服務完成時間點。
由此,圖15所示延遲檢測器540可基於主裝置與互連裝置之間的通道信號CHN中的請求信號ARVALID及ARREADY以及服務信號RVALID、RREADY及RLAST來檢測當前延遲CLAT。
在一些示例性實施例中,監測信號MON可在當前延遲水準LCL變得高於延遲非常緊急水準LVUL時被啟動,如參照圖13至圖16所述。
在一些示例性實施例中,監測信號MON可基於請求有效信號ARVALID及請求就緒信號ARREADY產生。如上所述,與主介面對應的主裝置會在主裝置傳遞信號時啟動請求有效信號ARVALID且與從介面對應的互連裝置會在互連裝置準備好從主裝置接收信號時啟動請求就緒信號ARREADY。如果在啟動請求有效信號ARVALID之後,請求就緒信號ARREADY未被啟動達參考時間,則根據示例性實施例的監測單元可確定從裝置及互連裝置中的至少一個為異常狀態以啟動監測信號MON。
在另一些示例性實施例中,監測信號MON可基於服務有效信號RVALID及服務就緒信號RREADY來產生。如上所述,互連裝置會在互連裝置傳遞信號時啟動服務有效信號RVALID且主裝置會在主裝置準備好從互連裝置接收信號時啟動服務就緒信號RREADY。如果在啟動服務有效信號RVALID之後,服務就緒信號RREADY未被啟動達參考時間,則根據示例性實施例的監測單元可確定主裝置為異常狀態以啟動監測信號MON。
圖17是說明根據示例性實施例的系統的方塊圖。
參照圖17,系統2000可包括積體電路20及電壓控制單元(voltage control unit,VCU)70(例如,電壓控制器或電源控制器)。積體電路20可包括至少一個處理器50、電源管理單元(power management unit,PMN)30(例如,電源管理器)、時脈控制單元(clock control unit,CCU)40(例如,時脈控制器)、一個或多個功能區塊FB1至FBm以及時脈監測器60。
積體電路20可為其中將各種硬體區塊集成為一個晶片的系統晶片(SOC)。舉例來說,每一個硬體區塊可包括用於執行各種功能的處理器。一些硬體區塊可包括系統晶片的嵌入式記憶體或輸入/輸出緩衝器。硬體區塊可通過系統晶片的一個或更多個系統匯流排進行連接。硬體區塊的實例包括轉碼器(CODEC)、顯示控制器、圖像信號處理器及本申請所述的功能區塊。積體電路20可由電壓控制單元70供電。電壓控制單元70可包括至少一個電壓調節器。電壓控制單元70可被稱為電源或電源管理積體電路(power management integrated circuit,PMIC)。根據示例性實施例,電壓控制單元70可被實作為與積體電路20的晶片不同的另一個晶片,或者電壓控制單元70的至少一部分可包含在積體電路20中。
儘管為說明方便起見在圖17中示出一個處理器50,然而積體電路20可進一步包括一個或更多個處理器或處理單元。處理器50可為用於執行積體電路20的主要功能的中央處理器(central processing unit,CPU)。處理器50可被配置成執行程式指令(例如,作業系統(OS)的程式指令)。
電源管理單元30可監測積體電路20的工作狀態或工作條件以確定與目前工作條件對應的工作功率水準。所述功率水準可通過改變工作電壓及工作頻率中的至少一個來改變。
電源管理單元30可監測積體電路20的工作狀態或工作條件(例如,工作負載(workload)、工作溫度等)以確定與當前工作條件對應的工作功率水準。電源管理單元30可產生電壓控制信號VCTR及時脈控制信號CCTR,且電壓控制單元70及時脈控制單元40可分別回應於所產生的電壓控制信號VCTR及所產生的時脈控制信號CCTR來提供與所確定的工作功率水準對應的工作電壓及工作頻率。所述工作功率水準可通過改變工作電壓及工作頻率中的至少一個來更改。在一些示例性實施例中,電源管理單元30可獨立於積體電路20的一部分的功率水準來控制積體電路20的另一部分的功率水準。舉例來說,當處理器50及功能區塊FB1至FBm包含於不同的電源域中時,向處理器50及功能區塊FB1至FBm提供的工作電壓VOP0至VOPm可得到獨立地控制。另外,當處理器50及功能區塊FB1至FBm包含於不同的時脈域中時,向處理器50及功能區塊FB1至FBm提供的工作時脈信號OCK0至OCKm可得到獨立地控制。
功能區塊FB1至FBm可執行預定功能且功能區塊中的每一個可為積體電路20的智慧財產權核心(intellectual property core)或IP核心(IP core)(其可與其他IP核心相同或不同)。舉例來說,功能區塊FB1至FBm可包括記憶體控制器、中央處理器(CPU)、顯示控制器、檔案系統區塊、影像處理器(graphic processing unit,GPU)、圖像信號處理器(image signal processor,ISP)、多格式編解碼區塊(multi-format codec block,MFC)等。處理器50及電源管理單元30可分別為獨立的功能區塊。
時脈控制單元40可產生分別被提供至處理器50及功能區塊FB1至FBm的工作時脈信號OCK0至OCKm。時脈控制單元40可包括鎖相迴路(phase-locked loop,PLL)、延遲鎖定迴路(delay-locked loop,DLL)、時脈倍頻器(clock multiplier)、及時脈潛水夫(clock diver)中的至少一個。
時脈監測器60監測工作時脈信號OCK0至OCKm的頻率以產生監測信號MON。參照圖18闡述時脈監測器60。
圖18是說明圖17所示系統中所包含的時脈監測器的方塊圖。
參照圖18,時脈監測器60可包括選擇器MUX 61、頻率檢測器63及比較器65。
選擇器61可選擇分別向圖1中的處理器50及多個功能區塊FB1至FBm提供的多個工作時脈信號OCK0至OCKm中的一個,以提供所選擇的時脈信號SCK。頻率檢測器63可檢測所選擇的時脈信號SCK的頻率以提供檢測頻率FDET。比較器65可將檢測頻率FDET與參考值FREF進行比較以產生表示與所選擇的時脈信號SCK對應的工作時脈信號的異常的監測信號。
圖19是說明根據示例性實施例的系統的方塊圖。
參照圖19,系統2500可包括多個處理器PRCS1、PRCS2及PRCS3以及死結檢測器2700。為說明方便起見,圖19示出三個處理器PRCS1、PRCS2及PRCS3,但系統2500中所包含的處理器的數目可以各種方式確定。系統2500中的至少兩個處理器可為獨立的核心且因此系統2500可為多核心系統晶片。
死結檢測器2700可包括多個監測單元MU1、MU2及MU3以及除錯核心DBC。監測單元MU1、MU2及MU3可即時地監測處理器PRCS1、PRCS2、及PRCS3(例如,目標硬體區塊)的運行以產生分別表示對應的目標硬體區塊的異常狀態的監測信號MON1、MON2及MON3。除錯核心DBC可基於監測信號MON1、MON2及MON3而將除錯資訊儲存在儲存裝置中。
在一些示例性實施例中,如參照圖8及圖9所闡述,處理器PRCS1、PRCS2及PRCS3可分別提供指令退休信號INRET1、INRET2及INRET3。每一個指令退休信號可在每當對應的處理器出現以上指令事件時以脈衝形式被啟動。監測單元MU1、MU2及MU2中的每一個可確定對應的處理器的異常狀態並在指令退休信號INRET1、INRET2及INRET3中的每一個未被啟動達相對長的時間時啟動監測信號MON1、MON2及MON3中的每一個。除錯核心DBC可如上所述回應於監測信號MON1、MON2及MON3來執行除錯資訊的儲存或備份。
圖20是說明根據示例性實施例的診斷系統的方塊圖。
參照圖20,診斷系統3000可包括移動裝置4000及計算系統5000。
移動裝置4000可包括應用處理器4100、通信模組4200、死結檢測器4300、儲存裝置4400及移動緩衝器4500。
應用處理器4100控制移動裝置4000的運行。通信模組4200可與外部裝置執行無線通訊或有線通信。死結檢測器4300可如上所述即時地監測移動裝置4000的運行以將除錯資訊儲存在儲存裝置4400中。
儲存裝置4400可儲存使用者資料。儲存裝置4400可為嵌入式多媒體卡(embedded multimedia card,eMMC)、固態驅動器(solid state drive,SSD)、通用閃速儲存(universal flash storage,UFS)裝置等。儲存裝置4400可如圖20所示包含在移動裝置4000中或者儲存裝置4400可設置在移動裝置4400之外。舉例來說,包括儲存裝置的外部除錯器裝置可連接到移動裝置以接收除錯資訊。移動緩衝器4500可為雙倍資料速率(double data rate,DDR)同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)、低功率雙倍資料速率(low power DDR,LPDDR)同步動態隨機存取記憶體、圖形雙倍資料速率(graphics DDR,GDDR)同步動態隨機存取記憶體、藍巴斯動態隨機存取記憶體(Rambus DRAM,RDRAM)等。在一些示例性實施例中,死結檢測器4300可將除錯資訊儲存在移動緩衝器4500中。在這種情形中,當移動裝置斷電時,在移動裝置4000完全斷電之前,移動緩衝器4500中的除錯資訊可根據一般斷電過程被推送到儲存裝置4400。
計算系統可包括分析工具ANL 5100,且使用分析工具5100基於除錯資訊對移動裝置4000執行除錯操作。
圖21是說明根據示例性實施例的對系統進行診斷的方法的流程圖。
參照圖20及圖21,可將死結檢測器4300電連接到儲存裝置4400及所述多個硬體區塊中的目標硬體區塊(S100)。舉例來說,目標硬體區塊可為應用處理器4100。可使用死結檢測器4300即時地監測目標硬體區塊的運行,以產生表示目標硬體區塊的異常狀態的監測信號(S200)。可使用死結檢測器基於監測信號將除錯資訊儲存在儲存裝置4400中(S300)。在將除錯資訊儲存在儲存裝置4400中之後可使用圖10所示覆位元信號RST來將移動裝置4000重定(S400)。在將移動裝置4000重定之後,可將除錯資訊提供至外部裝置(例如,計算系統5000)(S500)。計算系統5000可基於除錯資訊執行除錯操作(S600)。在一些示例性實施例中,可不將移動裝置4000重定且可將除錯資訊保留在儲存裝置4400中,直到重新開機移動裝置4000為止。
在一些示例性實施例中,除錯資訊可包括儲存在包含在處理器4100中的程式計數器及通用暫存器中的資料。
在其他示例性實施例中,除錯資訊可包含儲存在掃描鏈中的資料,所述掃描鏈包括在多個硬體區塊中的源硬體區塊中。
在其他示例性實施例中,移動裝置4000可進一步包括特殊功能暫存器,所述特殊功能暫存器儲存表示移動裝置4000中的硬體區塊的狀態的資料,且除錯資訊可包含儲存在特殊功能暫存器中的資料。
此種除錯資訊是非限制性實例,且也可收集其他各種資料來作為除錯資訊。
由於監視器計時器的過期時間為約十秒,因此基於監視器計時器的傳統方法可幾乎無法分析死結的根本原因。相比之下,根據示例性實施例的方法可在作業系統工作的同時即時地監測硬體行為。舉例來說,可與計時器中斷同步地週期性地監測硬體行為,且如果檢測到異常,則可收集除錯資訊。在作業系統的情形中,可能無法利用傳統方法來以短的迴圈週期進行性能監測,但是根據示例性實施例的死結檢測器可利用短於一毫秒的迴圈週期來收集除錯資訊。
如果系統晶片(SOC)在正常運行期間陷入異常狀態中,則分析異常狀態的原因會耗用相對長的時間。依賴于軟體的傳統方案無法在系統晶片陷入死結的時間點處捕捉到系統晶片中的所有邏輯狀態。相比之下,根據示例性實施例的死結檢測器及死結檢測方法可提取並儲存硬體邏輯的資訊以發現硬體邏輯中的問題的確切原因。
在一些傳統方法中,可使用軟體日誌來進行事後分析(post-analysis)。然而,使用這些方法無法在出現硬體問題的情形中確切地分析死結的確切原因。相比之下,根據示例性實施例的死結檢測器及死結檢測方法除了軟體問題之外還可解決硬體問題。
在其他傳統方法中,可在軟體代碼中插入中斷點且外部測試器可在出現與中斷點相關聯的事件時提取並分析相關聯的資訊。相比之下,根據示例性實施例的死結檢測器及死結檢測方法可與預定中斷點無關地在出現死結時確保獲得除錯資訊。
因此,根據示例性實施例的死結檢測器、包括死結檢測器的系統、及相關聯的方法可支援高效除錯並通過即時地監測系統的異常狀態以獲得除錯資訊來提高除錯的成功概率。
本示例性實施例可應用於任意裝置及系統。舉例來說,本示例性實施例可應用於例如以下系統:行動電話、智慧型電話、個人數位助理(personal digital assistant,PDA)、可擕式多媒體播放機(portable multimedia player,PMP)、數位照相機、攝錄影機、個人電腦(personal computer,PC)、伺服器電腦、工作站、膝上型電腦、數位電視(television,TV)、機上盒、可擕式遊戲機、導航系統等。
以上說明只是例示各示例性實施例,而不應被視為對示例性實施例的限制。儘管已闡述了若干示例性實施例,然而所屬領域中的技術人員將易知,在不實質上背離本發明概念的條件下,可對示例性實施例作出許多修改。
10‧‧‧互連裝置
11‧‧‧除錯匯流排
12‧‧‧系統匯流排
20‧‧‧積體電路
30‧‧‧電源管理單元
40‧‧‧時脈控制單元
50、PRCS1、PRCS2、PRCS3‧‧‧處理器
60‧‧‧時脈監測器
61‧‧‧選擇器
63‧‧‧頻率檢測器
65‧‧‧比較器
70‧‧‧電壓控制單元
100‧‧‧處理器/主裝置
100a‧‧‧源硬體區塊
101‧‧‧硬體區塊/第一硬體區塊/目標硬體區塊
102‧‧‧硬體區塊/第二硬體區塊/目標硬體區塊
103‧‧‧硬體區塊
104‧‧‧硬體區塊
105‧‧‧硬體區塊
106‧‧‧硬體區塊
107‧‧‧硬體區塊
110‧‧‧性能監測單元
110a‧‧‧掃描鏈
111‧‧‧輸入暫存器
112‧‧‧輸出暫存器
113‧‧‧迴圈計數器/計數器
114、115、116、117、118、119‧‧‧效能計數器/計數器
120‧‧‧通用暫存器
300、2700、4300、DLDET‧‧‧死結檢測器
400‧‧‧除錯核心
500、500a、500b、MU、MU1、MU2、MU3‧‧‧監測單元
501‧‧‧監測單元
502‧‧‧監測單元
510、550b‧‧‧比較器
512、543‧‧‧計數器
514‧‧‧比較器
530b‧‧‧延遲監測器
535‧‧‧減法器
537‧‧‧累加器
540‧‧‧延遲檢測器
541‧‧‧第一正反器
542‧‧‧第二正反器
544‧‧‧第一栓鎖器
545‧‧‧第二栓鎖器
546‧‧‧計算器
547‧‧‧映射表
548‧‧‧第一邏輯閘
549‧‧‧第二邏輯閘
1000、1000a、2000、2500‧‧‧系統
3000‧‧‧診斷系統
4000‧‧‧移動裝置
4100‧‧‧應用處理器/處理器
4200‧‧‧通信模組
4400‧‧‧儲存裝置
4500‧‧‧移動緩衝器
5000‧‧‧計算系統
5100‧‧‧分析工具
ACLK‧‧‧全域時脈信號
ARADDR‧‧‧讀取請求信號
ARID‧‧‧第一識別信號/識別信號
ARREADY‧‧‧請求信號/請求就緒信號
ARVALID‧‧‧請求信號/請求有效信號
BID‧‧‧第二識別信號/識別信號
BUFF‧‧‧緩衝器
C‧‧‧時脈端子
C1、C2、C3、CV0‧‧‧計數值
CCTR‧‧‧時脈控制信號
CHN‧‧‧通道信號
CLAT‧‧‧當前延遲
CLK‧‧‧時脈信號
CNT‧‧‧計數信號/計數值
CNT1‧‧‧開始計數信號
CNT2‧‧‧結束計數信號
CV1‧‧‧第一計數值
CV2‧‧‧第二計數值
CV3‧‧‧第三計數值
D‧‧‧資料端子
D(A0)、D(A1)、D(A2)、D(A3)‧‧‧資料
DBC‧‧‧除錯核心
DI‧‧‧輸入資料
DINF‧‧‧除錯信息
dLAT‧‧‧延遲差值
D0‧‧‧輸出資料
ECNT‧‧‧事件計數信號/事件計數值
FB1、FB2~FBm‧‧‧功能區塊
FDET‧‧‧檢測頻率
FF‧‧‧正反器
FF1‧‧‧第一正反器
FF2‧‧‧第二正反器
FREF、REF‧‧‧參考值
HB1、HB2、HB3‧‧‧硬體區塊/源硬體區塊
ID1‧‧‧第一識別代碼/第一識別信號
ID2‧‧‧第二識別代碼/第二識別信號
ID11、ID12、ID13‧‧‧值
INRET、INRET1、INRET2、INRET3‧‧‧指令退休信號
INST_RETIRED‧‧‧指令退休事件
ITRR‧‧‧中斷
LATCH1‧‧‧第一栓鎖器
LATCH2‧‧‧第二栓鎖器
LCL‧‧‧當前延遲水準
LUL‧‧‧延遲緊急水準/參考值
LVUL‧‧‧延遲非常緊急水準/參考值
MON、MON1、MON2、MON3‧‧‧監測信號
nPMUIRQ‧‧‧中斷信號
OCK0、OCK1、OCK2~OCKm‧‧‧工作時脈信號
PRT‧‧‧優先權資訊信號
PWCNTR‧‧‧電源控制器
PWDM1‧‧‧第一電源域/始終被供電的域
PWDM2‧‧‧第二電源域
Q‧‧‧輸出端子
REG‧‧‧暫存器
RLAST‧‧‧服務信號/服務完成信號
RREADY‧‧‧服務信號/服務就緒信號
RVALID‧‧‧服務信號/服務有效信號
RLAT‧‧‧參考延遲
RST‧‧‧重定信號
S100、S200、S300、S400、S500、S600‧‧‧步驟
SCCK‧‧‧掃描時脈信號
SCCTRL‧‧‧掃描控制器
SCEN、SCEN1、SCEN2、SCEN3‧‧‧掃描使能信號
SCK‧‧‧所選擇的時脈信號
SI‧‧‧掃描輸入信號
SO‧‧‧掃描輸出信號
SS1‧‧‧第一採樣信號
SS2‧‧‧第二採樣信號
SW‧‧‧開關
SYSCNT‧‧‧系統計數器
T1、T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13‧‧‧時間點
TM‧‧‧時間資訊
tP1‧‧‧第一迴圈週期
tP2‧‧‧第二迴圈週期
tP3‧‧‧第三迴圈週期
TX‧‧‧輸出單元
UG‧‧‧緊急標誌信號
UGNT‧‧‧緊急資訊信號
VCTR‧‧‧電壓控制信號
VOP0、VOP1~VOPm‧‧‧工作電壓
結合附圖閱讀以下詳細說明,將更清楚地理解本發明的各示例性實施例。
圖1是說明根據示例性實施例的在系統中檢測死結的方法的流程圖。 圖2是說明根據示例性實施例的系統的方塊圖。 圖3是說明圖2所示系統的匯流排結構的方塊圖。 圖4是說明目標硬體區塊及監測單元的示例性實施例的方塊圖。 圖5是說明圖4中的目標硬體區塊中所包含的性能監測單元的示例性實施例的方塊圖。 圖6是說明圖4中的目標硬體區塊的示例性事件的圖。 圖7是用於描述圖4中的監測單元的運行的圖。 圖8是說明目標硬體區塊及監測單元的示例性實施例的方塊圖。 圖9是用於描述圖8中的監測單元的運行的圖。 圖10是說明根據示例性實施例的死結檢測器的方塊圖。 圖11是用於描述對除錯資訊進行存儲的示例性實施例的圖。 圖12是用於描述根據示例性實施例的系統的電源域的圖。 圖13是說明根據示例性實施例的用於即時地進行監測的累加器模型的圖。 圖14是說明使用圖13所示累加器模型的監測單元的示例性實施例的方塊圖。 圖15是說明圖14所示監測單元中所包含的延遲檢測器的示例性實施例的方塊圖。 圖16是說明由系統執行的示例性事務(transaction)及由圖15所示延遲檢測器檢測的當前延遲的時序圖。 圖17是說明根據示例性實施例的系統的方塊圖。 圖18是說明圖17所示系統中所包含的時脈監測器的方塊圖。 圖19是說明根據示例性實施例的系統的方塊圖。 圖20是說明根據示例性實施例的診斷系統的方塊圖。 圖21是說明根據示例性實施例的對系統進行診斷的方法的流程圖。

Claims (20)

  1. 一種系統,包括: 多個硬體區塊,所述多個硬體區塊中的至少一個硬體區塊包括被配置成執行指令的處理器,且所述多個硬體區塊中的至少一個硬體區塊包括被配置成儲存資料的儲存裝置;; 死結檢測器,被配置成即時地監測所述多個硬體區塊中的目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號並響應於所述監測信號的產生而將除錯資訊儲存在所述儲存裝置中;以及 互連裝置,電連接所述死結檢測器與所述多個硬體區塊,所述互連裝置包括: 系統匯流排,電連接所述多個硬體區塊;以及 除錯匯流排,將所述死結檢測器電連接到所述目標硬體區塊及所述儲存裝置。
  2. 如申請專利範圍第1項所述的系統,其中所述目標硬體區塊對應於包括所述處理器的所述硬體區塊,且所述處理器包括性能監測單元,所述性能監測單元包括多個計數器,所述多個計數器分別被配置成對所述處理器的對應的不同事件進行計數。
  3. 如申請專利範圍第2項所述的系統,其中所述性能監測單元提供與所監測事件的計數數目對應的事件計數值,且 其中所述死結檢測器基於所述事件計數值來監測所述處理器的運行。
  4. 如申請專利範圍第3項所述的系統,進一步包括: 系統計數器,被配置成提供時間資訊, 其中所述性能監測單元基於來自所述系統計數器的所述時間資訊而週期性地提供所述事件計數值,使得所述死結檢測器週期性地監測所述處理器的所述運行。
  5. 如申請專利範圍第4項所述的系統,其中對所述處理器的所述運行進行監測的迴圈週期短於一毫秒。
  6. 如申請專利範圍第2項所述的系統,其中所述性能監測單元提供指令退休信號,所述指令退休信號是每當所述處理器的每一指令得到執行且完成時以脈衝形式被啟動,且 其中所述死結檢測器基於所述指令退休信號來監測所述處理器的所述運行。
  7. 如申請專利範圍第1項所述的系統,其中所述死結檢測器控制所述系統,以使得在所述除錯資訊儲存在所述儲存裝置中之後將所述系統重定。
  8. 如申請專利範圍第1項所述的系統,其中所述死結檢測器是以在所述系統的工作模式與待機模式二者期間所述死結檢測器均被供電的方式設置。
  9. 如申請專利範圍第1項所述的系統,其中當所述系統進入待機模式而使得所述處理器的供電被中斷時,所述死結檢測器被去能,且當所述系統從所述待機模式進入工作模式時,所述死結檢測器被使能。
  10. 如申請專利範圍第1項所述的系統,其中所述死結檢測器包括: 監測單元,被配置成即時地監測所述目標硬體區塊的所述運行,以產生表示所述目標硬體區塊的所述異常狀態的所述監測信號;以及 除錯核心,被配置成基於所述監測信號而將所述除錯資訊儲存在所述儲存裝置中。
  11. 如申請專利範圍第10項所述的系統,其中所述監測單元包括: 比較器,被配置成接收與所監測事件的計數數目對應的事件計數值,且被配置成將所述事件計數值與參考值進行比較以產生所述監測信號。
  12. 如申請專利範圍第10項所述的系統,其中所述監測單元包括: 計數器,被配置成接收指令退休信號,所述指令退休信號是每當所述處理器的每一指令得到執行且完成時以脈衝形式被啟動,且所述計數器被配置成通過執行計數操作來產生計數信號,並且所述計數器被配置成響應於所述指令退休信號的脈衝而重定;以及 比較器,被配置成將所述計數信號的值與參考值進行比較,以產生所述監測信號。
  13. 如申請專利範圍第10項所述的系統,其中所述監測單元基於所述目標硬體區塊的有效信號及就緒信號來產生所述監測信號。
  14. 如申請專利範圍第10項所述的系統,其中所述除錯核心包括: 掃描控制器,被配置成基於所述監測信號來產生掃描使能信號,以將所述掃描使能信號傳遞到所述多個硬體區塊中的源硬體區塊,所述源硬體區塊儲存所述除錯資訊,所述掃描使能信號表示對所述除錯資訊進行儲存的開始時間; 暫存器,被配置成儲存用於所述除錯核心的運行的控制值; 緩衝器,被配置成臨時儲存從所述源硬體區塊提供的所述除錯資訊;以及 輸出單元,被配置成將儲存在所述緩衝器中的所述除錯資訊傳遞到所述儲存裝置。
  15. 如申請專利範圍第14項所述的系統,其中所述掃描控制器產生掃描時脈信號,以將所述掃描時脈信號提供到所述源硬體區塊、所述緩衝器及所述儲存裝置。
  16. 如申請專利範圍第1項所述的系統,其中所述除錯資訊包括儲存在所述處理器中所包含的程式計數器及通用暫存器中的資料、儲存在所述多個硬體區塊中的源硬體區塊中所包含的掃描鏈中的資料、或者儲存在特殊功能暫存器中的資料。
  17. 如申請專利範圍第1項所述的系統,其中所述除錯資訊包括儲存在所述多個硬體區塊中的源硬體區塊中所包含的掃描鏈中的資料,且所述掃描鏈的輸出信號被作為所述掃描鏈的輸入信號進行回饋以使得儲存在所述掃描鏈中的所述資料被非侵入性地作為所述除錯資訊來提供。
  18. 一種系統,包括: 多個硬體區塊;以及 死結檢測器,收集所述系統的除錯資訊,所述死結檢測器包括: 監測單元,被配置成即時地監測所述多個硬體區塊中的目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號; 除錯核心,被配置成基於所述監測信號而將所述除錯資訊儲存在與所述多個硬體區塊中的一個對應的儲存裝置中;以及 除錯匯流排,被配置成將所述死結檢測器電連接到所述目標硬體區塊及所述儲存裝置。
  19. 如申請專利範圍第18項所述的系統,其中所述目標硬體區塊對應於處理器,且所述監測單元基於指令退休信號來產生所述監測信號,所述指令退休信號是每當所述處理器的每一指令得到執行且完成時以脈衝形式被啟動。
  20. 一種在包括多個硬體區塊的系統中檢測死結的方法,所述方法包括: 將死結檢測器電連接到所述多個硬體區塊中的包括處理器的目標硬體區塊以及所述多個硬體區塊中的包括儲存裝置的至少一個硬體區塊,所述處理器被配置成執行指令,所述儲存裝置被配置成儲存資料; 使用所述死結檢測器即時地監測所述目標硬體區塊的運行,以產生表示所述目標硬體區塊的異常狀態的監測信號;以及 使用所述死結檢測器基於所述監測信號將除錯資訊儲存在所述儲存裝置中。
TW106127622A 2017-03-22 2017-08-15 死結偵測器、包括其之系統與其方法 TW201835765A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170036260A KR20180107648A (ko) 2017-03-22 2017-03-22 데드락 검출기, 이를 포함하는 시스템 및 데드락 검출 방법
??10-2017-0036260 2017-03-22

Publications (1)

Publication Number Publication Date
TW201835765A true TW201835765A (zh) 2018-10-01

Family

ID=63582608

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106127622A TW201835765A (zh) 2017-03-22 2017-08-15 死結偵測器、包括其之系統與其方法

Country Status (4)

Country Link
US (1) US20180276052A1 (zh)
KR (1) KR20180107648A (zh)
CN (1) CN108628691A (zh)
TW (1) TW201835765A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI739556B (zh) * 2020-08-19 2021-09-11 瑞昱半導體股份有限公司 時脈死結檢測系統、方法以及非暫態電腦可讀取媒體

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061807B2 (en) * 2018-12-28 2021-07-13 Intel Corporation Trace management during aborted speculative operations
US10892745B2 (en) * 2019-04-03 2021-01-12 Semtech Corporation Signal detector for GPON optical line terminal
CN112069025B (zh) * 2020-08-25 2024-02-23 北京五八信息技术有限公司 锁过期事件的处理方法及装置
WO2022165790A1 (zh) * 2021-02-07 2022-08-11 华为技术有限公司 一种掉电隔离装置及相关方法
US11927629B2 (en) * 2021-09-27 2024-03-12 Texas Instruments Incorporated Global time counter based debug
US20240094950A1 (en) * 2022-09-16 2024-03-21 Western Digital Technologies, Inc. Block layer persistent memory buffer
CN117331872B (zh) * 2023-11-30 2024-02-09 珠海市芯动力科技有限公司 防止总线死锁的方法及相关装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI739556B (zh) * 2020-08-19 2021-09-11 瑞昱半導體股份有限公司 時脈死結檢測系統、方法以及非暫態電腦可讀取媒體

Also Published As

Publication number Publication date
US20180276052A1 (en) 2018-09-27
KR20180107648A (ko) 2018-10-02
CN108628691A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
TW201835765A (zh) 死結偵測器、包括其之系統與其方法
TWI613588B (zh) 在核心間同步運作的方法、微處理器及電腦程式產品
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
KR101392109B1 (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
US6539500B1 (en) System and method for tracing
JP5239862B2 (ja) デバッガ及びデバッグ方法
KR100971806B1 (ko) 변화를 탐지하는 클러스터 아키텍처
AU2020285262B2 (en) Error recovery method and apparatus
JP2006164277A (ja) プロセッサにおけるエラー除去装置および方法,プロセッサ
CN102360329A (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
US11593241B2 (en) Processor with debug pipeline
JPH08263310A (ja) 多重プロセッサ・システムにおけるcpuのモニタリング・システム及び方法
US8762779B2 (en) Multi-core processor with external instruction execution rate heartbeat
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US6968410B2 (en) Multi-threaded processing of system management interrupts
CN202267954U (zh) 总线监控与调试控制装置
TWI395089B (zh) 用於在多重時鐘域中促進決定論之裝置、系統及方法
US20040172233A1 (en) Semiconductor integrated circuit device and microcomputer development assisting apparatus
EP2645258B1 (en) Multiprocessor system, apparatus and methods
JP2002189615A (ja) ウォッチドック・タイマ、情報処理装置、ウォッチドック・タイマ用拡張ボード、システム初期化方法及び記憶媒体
JP2677609B2 (ja) マイクロコンピュータ
US11880231B2 (en) Accurate timestamp or derived counter value generation on a complex CPU
US20230205574A1 (en) Methods and systems for collection of system management interrupt data
US20080072212A1 (en) Semiconductor integrated circuit including a monitor unit