TW201633129A - 用於在多核心微控制器中產生跨核心斷點之系統及方法 - Google Patents
用於在多核心微控制器中產生跨核心斷點之系統及方法 Download PDFInfo
- Publication number
- TW201633129A TW201633129A TW105104160A TW105104160A TW201633129A TW 201633129 A TW201633129 A TW 201633129A TW 105104160 A TW105104160 A TW 105104160A TW 105104160 A TW105104160 A TW 105104160A TW 201633129 A TW201633129 A TW 201633129A
- Authority
- TW
- Taiwan
- Prior art keywords
- breakpoint
- processor core
- core
- logic
- integrated circuit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2231—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test interrupt circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
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)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
在一種用於具有多個處理核心之一積體電路裝置之除錯方法中,啟動該積體電路裝置中之一第一處理器核心處之一除錯斷點。在啟動之後,該除錯斷點停止該第一處理器核心中指令之執行,且將該除錯斷點傳遞至該積體電路裝置中之一第二處理器核心。
Description
本申請案主張於2015年2月5日申請之共同擁有之美國臨時專利申請案第62/112,552號之優先權,該案特此為全部目的而以引用的方式併入本文中。
本發明係關於處理器,且特定言之係關於用於在一多核心處理器(特定言之一非對稱多核心處理器)中產生跨核心斷點之系統及方法。
一處理器斷點係為除錯目的而放置於適當位置之一程式中之一停止位置,亦稱為一暫停。處理器斷點通常在存取一特定記憶體位置時被觸發。在中斷期間,檢查記憶體、暫存器等環境以判定程式是否如預期般運作。該記憶體位置可在程式記憶體中且可包括一特定指令,當由處理器提取時,該特定指令可觸發斷點且停止執行。此等類型的斷點可僅需要比較程式計數器與各自記憶體位址。然而,該記憶體位置亦可在資料記憶體中,且一寫入或讀取操作之任一者或兩者可觸發斷點且停止指令之進一步執行。
大多數多處理器裝置使用對稱處理器核心。按定義,該等核心係可互換的、共用記憶體、周邊設備及軟體任務。在系統軟體變為免
費時,為其分配一可用處理器。因此,一除錯侷限於一特定核心。因此,無需判定另一核心同時在做什麼。
然而,在具有非對稱處理器核心之多處理器裝置中,非對稱核心具有不同的記憶體及周邊設定,亦可按不同速度操作且執行不同軟體程式。在此情況中,一處理器之一功能藉此可影響另一處理器。
因此,需要使一特定處理器之斷點事件與其他處理器正進行之事件相關。
如下文將更詳細說明,實施例提供在一多核心處理裝置中將處理器斷點傳遞至其他處理器核心。實施例可尤其適用於一多核心處理裝置。
根據一實施例,一種用於包括多個處理核心之一積體電路裝置之除錯方法可包括:啟動該積體電路裝置中之一第一處理器核心處之一除錯斷點,其中該除錯斷點停止該第一處理器核心中指令之執行;及將該除錯斷點傳遞至該積體電路裝置中之一第二處理器核心。
根據又一實施例,該方法進一步可包括:設定一斷點暫存器中之一或多個跨斷點啟用位元,藉此啟用傳遞該除錯斷點之步驟。根據又一實施例,傳遞該除錯斷點可包括:確證該第二處理器核心處之一斷點,其中該斷點停止該第二處理器核心中指令之執行。根據又一實施例,該方法進一步可包括:設定一斷點暫存器中之一或多個跨斷點中斷啟用位元,藉此啟用傳遞該除錯斷點之該步驟。根據又一實施例,傳遞該除錯斷點可包括:確證與該第二處理器核心相關聯之一中斷控制器處之一斷點中斷。根據又一實施例,在接收到該斷點中斷之後,該第二處理器核心可執行一中斷服務常式。根據又一實施例,該中斷服務常式可產生與該除錯斷點有關之資料。根據又一實施例,可將該資料傳遞至一主機系統。根據又一實施例,該第一處理器核心可
由一第一系統時脈計時且該第二處理器核心係由不同於該第一系統時脈之一第二系統時脈計時。根據又一實施例,傳遞該除錯斷點可包括:使該除錯斷點同步於該第二系統時脈。根據又一實施例,該除錯斷點可由複數個可程式化斷點產生。根據又一實施例,該等可程式化斷點可包括指令斷點及資料斷點。根據又一實施例,該第一處理器核心可為一主控核心且該第二處理器核心可為一從屬核心。根據又一實施例,該第一處理器核心可為一從屬核心且該第二處理器核心係一主控核心。
根據另一實施例,一種具有複數個處理器核心之積體電路裝置包括:一第一處理器核心,其包含用於啟動一第一處理器核心斷點之第一摸擬器邏輯;一第二處理器核心,其通信耦合至該第一處理器核心且包含第二摸擬器邏輯;及一第一跨斷點邏輯,其在該第一摸擬器邏輯內且經組態以將由該第一處理器核心處之該第一摸擬器邏輯啟動之一斷點傳遞至該第二處理器核心。
根據又一實施例,該第一跨斷點邏輯可將該斷點傳遞至該第二處理器核心之該第二摸擬器邏輯,藉此停止該第二處理器核心處指令之執行。根據又一實施例,該積體電路裝置進一步可包括一斷點暫存器,該斷點暫存器包括可操作以啟用該第一跨斷點邏輯以將該斷點傳遞至該第二摸擬器邏輯之一或多個跨斷點啟用位元。根據又一實施例,該第二摸擬器邏輯可包括一第二跨斷點邏輯,其經組態以將由該第二處理器核心處之該第二摸擬器邏輯啟動之一斷點傳遞至該第一處理器核心。根據又一實施例,該跨斷點邏輯可將該斷點作為一中斷請求傳遞至與該第二處理器核心相關聯之一中斷輸入端。根據又一實施例,該積體電路裝置進一步可包括一斷點暫存器,該斷點暫存器包括可操作以啟用該跨斷點邏輯以將該中斷請求傳遞至與該第二處理器核心相關聯之該中斷輸入端之一或多個跨斷點中斷啟用位元。根據又一
實施例,各摸擬器邏輯可包括與一組外部插腳耦合之一介面。根據又一實施例,一第一組周邊裝置可整合於該積體電路裝置內且與該第一處理器核心耦合,藉此形成一第一微控制器,且一第二組周邊裝置可整合於該積體電路裝置內且與該第二處理器核心耦合,藉此形成一第二微控制器。根據又一實施例,該第一微控制器可作為一主控器件操作且該第二微控制器可作為一從屬器件操作。根據又一實施例,該第一處理器核心可由一第一系統時脈計時且該第二處理器核心可由不同於該第一系統時脈之一第二系統時脈計時。根據又一實施例,該積體電路裝置進一步可包括使該跨斷點邏輯與該第二處理器核心介接之跨時脈電路。根據又一實施例,該跨時脈電路可耦合於該跨斷點邏輯與相關聯於該第二處理器核心之一中斷控制器之間。根據又一實施例,該第一組周邊裝置及/或該第二組周邊裝置可包括一串列通信周邊設備。根據又一實施例,該第一及/或第二摸擬器邏輯可操作以組態複數個可程式化斷點。根據又一實施例,該等可程式化斷點可包括指令斷點及資料斷點。
100‧‧‧處理裝置
102‧‧‧第一核心/主控核心
104‧‧‧第二核心/從屬核心
106‧‧‧摸擬器邏輯
107‧‧‧主從介面(MSI)/主從介面(MSI)模組
108‧‧‧摸擬器邏輯
110‧‧‧控制及狀態暫存器
112‧‧‧控制及狀態暫存器
114‧‧‧跨間斷邏輯
115‧‧‧邏輯
120‧‧‧中斷控制器
122‧‧‧中斷控制器
150‧‧‧積體電路裝置
200‧‧‧斷點暫存器
202‧‧‧跨斷點啟用(CBE)位元
204‧‧‧跨斷點中斷啟用(CBIE)位元
300‧‧‧跨斷點請求邏輯
302‧‧‧OR閘
304a至304k‧‧‧AND閘
400‧‧‧跨斷點中斷啟用邏輯
402‧‧‧OR閘
404a至404k‧‧‧AND閘
500‧‧‧中斷狀態暫存器/斷點狀態暫存器
502‧‧‧中斷狀態旗標
600‧‧‧同步器脈衝產生器/電路
602‧‧‧正反器
604‧‧‧正反器
606‧‧‧正反器
650‧‧‧斷點介面
660‧‧‧斷點邏輯
670‧‧‧OR閘
700‧‧‧除錯環境
702‧‧‧多核心積體電路(IC)裝置/積體電路(IC)
704‧‧‧內電路摸擬器(ICE)
706‧‧‧內電路摸擬器(ICE)
708‧‧‧主機電腦
710‧‧‧介面
712‧‧‧介面
隨附於本說明書且形成本說明書之部分之圖式經包含以描繪本發明之特定態樣。應注意,圖式中所繪示之特徵不一定按比例繪製。藉由結合隨附圖式參考以下描述可獲得對本發明及其優點之一更全面理解,在圖式中,相似元件符號指示相似特徵,且其中:圖1係繪示根據實施例之一例示性多核心處理裝置之一圖。
圖2係繪示根據實施例之一例示性斷點暫存器之一圖。
圖3繪示根據實施例之例示性斷點控制邏輯。
圖4繪示根據實施例之例示性斷點中斷控制邏輯。
圖5係繪示根據實施例之一例示性斷點狀態暫存器之一圖。
圖6繪示根據實施例之一例示性跨時脈電路。
圖7繪示根據實施例之用於對一多核心處理裝置進行除錯之一例示性系統。
圖8繪示於圖7之實施例中使用之一例示性同步器脈衝產生器。
圖9展示具有兩個摸擬器及一目標板之一開發系統。
圖10展示一積體電路之一外殼,該積體電路包括一雙核心微控制器及其各自單功能及多功能插腳。
參考在隨附圖式中繪示且在以下描述中詳述之例示性實施例更全面說明本發明及其各種特徵及有利細節。
現參考圖式且特別關注圖1,展示且整體藉由元件符號100標示繪示根據各項實施例之一例示性非對稱多核心處理裝置(即,微處理器或微控制器)之一圖。在本申請案之內容背景中,術語「非對稱」用以描述兩個或更多個核心獨立操作。處理器核心可為相同的,但依據不同記憶體操作,且若為一微控制器實施方案則用不同周邊裝置操作。根據其他實施例,可實施兩個不同核心或可實施用不同系統時脈運行之兩個相同核心。然而,本申請案之原理不限於此等實施方案,而是亦可於具有用相同系統時脈運行之兩個相同核心但各核心獨立於另一核心操作之實施方案中使用。
在圖1中繪示之實施例中,處理裝置100可包含一第一核心102及一第二核心104。在一些實施例中,第一核心102可為例如一第一微處理器核心(中央處理單元),而第二核心104可為一第二微處理器核心或一DSP(數位信號處理器)。兩個核心之其他組態係可行的。如下文將更詳細說明,第一核心102及第二核心104可分別包含整合於該等核心內之摸擬器邏輯106、108或與其等通信耦合。摸擬器邏輯106、108進一步可分別包含跨間斷邏輯(cross break logic)114、115,如下文將更詳細說明。各核心102及104亦分別包括一中斷控制器120及122。最
後,各核心102、104可分別與一組控制及狀態暫存器110、112相關聯。取決於核心之架構,此等暫存器可整合於該等核心內或如圖1中所展示般配置於核心102、104之外部。特定言之,一些實施例提供狀態暫存器110、112以將一斷點作為斷點請求及/或中斷啟用請求自一處理器核心傳播至另一處理器核心,且設定指示已接收到一斷點之狀態位元。另外,在一些實施例中,處理裝置100可包含如上文提及之可程式化中斷控制器120、122以確證各對應核心處之中斷。此外,圖1中展示一主從介面107,其提供兩個核心102與104之間的通信。所展示之組態僅為例示性的。其他組態係可行的。例如,一些處理裝置可採用兩個以上核心及相關聯控制及狀態暫存。
兩個核心可配置成一積體電路裝置150內之一主從核心組態,如圖2中所展示,例如,第一微處理器核心可實施為主控核心,而第二微處理器或DSP核心係實施為從屬器件。此一組態容許主控器件控制特定功能。具有多個核心之積體電路(IC)裝置進一步可經設計以實施兩個微控制器。根據一些實施例,如圖2中所展示,將各核心之各自獨立周邊裝置(諸如DMA、PMD以及記憶體、I/O埠)整合於IC內以形成一單一IC裝置內之兩個各別微控制器。IC進一步可包括主控及從屬裝置之可組態共用資源。例如,主控器件可具有具ECC及16K RAM之64Kbytes至128Kbytes之程式快閃記憶體。根據一項實施例,從屬器件可裝備有具ECC之24Kbytes之程式RAM(PRAM)(其可為揮發性的)及4K資料記憶體RAM。其他組態係可行的。可使用訊息盒及FIFO(MSI)在主控與從屬核心之間進行通信。可實施其他硬體功能。
根據如圖2中所展示之一實施例,從屬處理器子系統係一基於程式RAM之應用程式加速器。從屬核心之程式化將駐留在主控處理器之快閃記憶體中。在系統起動後之某一時間,主控處理器在使用者控制下將從屬器件之程式化影像自快閃記憶體傳送至從屬器件之程式
RAM。從屬器件之初始化一經完成,主控器件便啟用從屬器件。藉由從屬處理器執行從屬器件碼,且其第一任務在於初始化其周邊設備。一旦主控及從屬處理器操作,其等便透過MSI模組107向彼此傳遞資訊、命令及狀態。MSI模組107提供數個暫存器(郵件信箱,mail box),藉由該等暫存器,可在處理器之間共用資訊。中斷邏輯與MSI暫存器相關聯,其等用作旗號(旗標)以在資訊準備開始傳送時獲得另一處理器之關注。存在用於此一非對稱雙核心架構之許多使用模型:客戶產生之功能可包含小型密集計算(濾波器,PID);中型任務(BLDC控制);或大型程式(BLDC自動調諧)。從屬處理器核心之意圖在於充當一「應用程式加速器」。使用者判定應用程式碼之哪一小部分需要加速。在許多馬達控制及功率控制應用程式中,總體應用程式之一極小子集(數K位元組)經常運行使得其消耗大量處理器之時間(可能80%)。應用程式加速器幫助將應用程式軟體分割成兩個區塊:一小控制迴路及較大一般應用程式(通信、安全檢查、使用者介面等)。控制軟體通常係由與開發一般用途及通信軟體的人不同之一群組的人開發。具有兩個處理器幫助「硬即時」控制軟體與應用程式之較大但較不具時效性的部分之系統整合。雖然從屬處理器之程式記憶體係基於RAM的,但其他實施例亦可針對(若干)從屬處理器實施快閃記憶體(內部或外部)。雖然使用從屬快閃記憶體係昂貴的,但其可提供極高的安全等級。
根據一項實施例,如圖2中所展示之主控核心可實施為由一100MHz系統時脈計時之一dsPIC處理器核心。此項技術中熟知此一核心之基本架構,且其可購自本申請案之受讓人Microchip Technology Inc.。第二核心亦可實施為以120MHz運行之一dsPIC處理器。第二核心(從屬)比第一核心運行得更快之事實係基於由一更快速揮發性隨機存取記憶體提供之程式記憶體之實施方案,而第一核心依據一非揮發
性快閃記憶體運行。然而,其他組態係可行的。雖然此等核心各自具有其等自身之周邊設備,如圖2中所展示,但可共用特定特徵,諸如振盪器、重設邏輯、低電壓重設(brown-out rest)模組、電壓調節器、JTAG等。此外,亦可透過一各自多工控制邏輯(未展示)共用外部插腳。該等插腳之所有權可為可組態的。
現參考圖3,展示一例示性斷點暫存器之一圖。處理裝置中之各核心可與其自身之斷點暫存器相關聯。斷點暫存器200包含一跨斷點啟用(CBE)位元202及一跨斷點中斷啟用(CBIE)位元204。通常,針對各斷點提供一斷點暫存器。如下文將更詳細說明,當遇到一斷點時,一核心將更新對應狀態暫存器(包含跨斷點啟用位元202或跨斷點中斷啟用位元204)以將該斷點傳播至各自另一核心。以一同時模式使用跨斷點啟用位元202,在該模式中中可同時對多個核心進行除錯。以一準同時模式使用跨斷點中斷啟用位元204,在該模式中對一核心進行除錯而另一核心運行程式碼。在此情況中,觸發一中斷以引起該另一核心得以除錯而第一核心繼續運行程式碼。
特定言之,根據一實施例,CBE位元啟用來自一處理器核心之除錯模組之一間斷信號以傳播至另一處理器核心之除錯模組。此容許一處理器上之一間斷條件大約同時亦使另一處理器間斷。另一方面,CBIE位元啟用來自一處理器核心之除錯模組之一間斷信號以傳播至另一處理器核心之中斷控制器。此容許一處理器上之一間斷條件大約同時中斷另一處理器。此特徵在客戶可能不希望另一處理器在其處於一控制迴路中時停止之控制應用程式中係有用的。一間斷中斷容許在一間斷事件時在另一處理器上收集資訊。各自狀態位元可用以指示自該另一處理器接收到一間斷事件請求。
圖4中所示展示一對應跨斷點請求邏輯300。此邏輯可為圖1之邏輯114、115之一實施例。可在容許對多個處理器同時除錯之一模式中
採用跨斷點啟用邏輯。在所繪示之實施例中,邏輯包含OR閘302及AND閘304a、...、304k。通常,針對各斷點提供一個此AND閘。在操作中,至各AND閘之一輸入係對應斷點狀態指示符,即狀態旗標。另一輸入係在啟動對應斷點時設定之來自斷點暫存器200(圖3)之跨斷點啟用位元202。因此,在操作中,當一斷點在作用中時,核心設定對應跨斷點啟用位元。此引起邏輯300之輸出確證在另一核心之摸擬器邏輯之一斷點輸入端(未展示)處接收之一跨斷點請求。應注意,可採用其他等效邏輯。
類似地,圖5中展示跨斷點中斷啟用邏輯400。此邏輯可為圖1之邏輯114、115之一實施例。可在準同時除錯之一模式中採用此跨斷點中斷啟用邏輯,在該模式中對多個處理器之一者進行除錯而其他處理器運行應用程式碼。在所繪示之實施例中,邏輯包含OR閘402及AND閘404a至404k。通常,針對各斷點提供一AND閘。在操作中,至各AND閘之一輸入係對應斷點狀態指示符,即狀態旗標。另一輸入係在啟動對應斷點時設定之來自斷點暫存器200(圖3)之跨斷點中斷啟用位元204。因此,在操作中,當一斷點在作用中時,核心設定對應跨斷點中斷啟用位元。此引起邏輯400之輸出確證在另一核心之中斷邏輯112之輸入端處接收之一跨斷點中斷請求。又,可採用任何適合等效邏輯。
在實施準同時模式時,採用處理裝置中斷控制器來確證對應核心處之中斷且設定該核心之中斷狀態暫存器。圖6中展示一例示性中斷狀態暫存器500。各處理器核心之斷點狀態暫存器500包含對應於適當斷點中斷之一或多個中斷狀態旗標且在接收到中斷請求時被設定。
圖7展示用於各處理核心之一斷點介面650之一實例。如所展示,可使用一OR閘670產生且組合各個斷點。例如,斷點邏輯660可經提供以產生一使用者斷點。其他周邊裝置(諸如(舉例而言)一監視器
周邊設備、一電力節省功能或一時脈切換單元)可產生各別斷點。可實施在一內部或外部事件之後產生一斷點之其他單元。一同步器脈衝產生器600用以轉送來自另一核心之信號。此一同步器脈衝產生器600可藉由圖8中所展示之用於中斷請求之一對應跨時脈電路實施。特定言之,電路600包含正反器602、604、606。正反器604、606係由接收處理器核心之時脈計時。正反器602之時脈輸入係從請求處理器核心之跨斷點中斷(即,跨斷點中斷啟用邏輯400之輸出)提供。電路600之輸出回饋至正反器602之重設(RESET)輸入端,且輸出至接收處理器之中斷控制器112(圖1)且用以設定狀態暫存器500之中斷狀態旗標502。
因此,各項實施例讓使用者能夠對一多核心處理裝置、特定言之具有以不同(特定言之)獨立系統時脈運行之兩個核心的一非對稱多核心處理裝置進行除錯。圖9中展示可結合本文中之系統及方法一起使用之一例示性除錯環境700。如所展示,環境700包含一目標板703上之一目標多核心IC裝置702,該目標板703包含用於引至對應內電路摸擬器(ICE)704、706之介面710、712。在其中期望對一個以上處理器同時除錯之實施例中,針對各處理器提供一ICE。因此,在所繪示之實施例中,可同時對多達兩個處理核心進行除錯。ICE 704、706可具體實施為由本申請案之受讓人Microchip technologies Inc.製造且銷售之REAL ICE摸擬器,然而其他類型係可行的。各ICE 704、706耦合至一電腦708,諸如一個人電腦、膝上型電腦、工作站或運行一整合開發環境(IDE)(諸如亦可購自本申請案之受讓人之MPLABX環境)之其他裝置。
圖10展示僅具有28個插腳及兩個處理核心之一積體電路裝置中之一可能插腳輸出。三組外部插腳PGECx及PGEDx以及視情況SMCLRx提供第一及/或第二處理核心之一串列程式化介面。此等串列
介面係具有一各別時脈及資料信號線之同步介面。摸擬系統提供內電路除錯器能力。ICD能力需要使用客戶之功能插腳。圖9展示典型ICD連接。處理器核心在客戶目標板之IC 702中。IC 702必須專用一PGCx及一PGDx插腳以一次支援對一處理器之除錯。為支援對兩個處理器之同時除錯,客戶板必須將2個PGCx及2個PGDx插腳外加用於從屬核心之另一插腳(SMCLRx)專用為至如圖10中所展示之REAL ICE之介面。主控器件及從屬器件ICD兩者(分別)在FICD及SLVICD1暫存器中之快閃記憶體(BKBUG及ICS[1:0])中具有其等自身之組態位元。選擇其等各自之PGC/D插腳對及用於從屬器件之相關聯SMCLRx插腳。裝置開機重設及低電壓重設POR/BOR將重設主控器件且迫使從屬器件進入重設狀態,直至一控制暫存器中之SLVEN位元由主控器件再次設定。根據一實施例,一裝置MCLR將重設主控器件但不影響從屬器件。從屬器件SMCLR將迫使從屬器件進入重設狀態,直至SLVEN位元由主控器件再次設定。主控器件運行時間重設將不會影響從屬器件。從屬器件運行時間重設將重設從屬器件但不會使其停止。
如上文提及,在一些實施例中,多種除錯模式可為可用的。此等模式可包含一僅主控核心模式;一僅從屬核心模式;一同時除錯模式;及一準同時除錯模式。
在僅主控核心模式中,除錯類似於對一習知dsPIC或PIC MCU或任何其他微控制器進行除錯。通常,在此一模式中,一單一ICE電路摸擬器704耦合至目標板703及運行IDE之主機電腦708。
在僅從屬核心模式中,除錯與一傳統dsPIC或MCU相同。又,一單一ICE摸擬器706經提供且耦合至目標板及運行IDE之電腦708。
在同時模式中,對多核心裝置702中之主控核心102及從屬核心104兩者實施同時除錯。如上文論述,跨核心斷點回應於確證一跨斷點及啟用位元而同時使兩個核心停止(間斷)。在此情況中,除錯環境
包含ICE 704、706兩者(各處理器核心一ICE)且兩者再次耦合至一主機電腦708上運行之IDE。
準同時主控器件及從屬器件除錯模式用以對主控器件或從屬器件之一者或另一者除錯,且使另一處理器保持運行應用程式碼。在此情況中,跨核心斷點回應於設定對應狀態暫存器中之跨斷點中斷啟用位元而產生至另一核心之中斷。除錯環境可包含一個或兩個ICE。例如,產生饋送至另一核心之斷點中斷的處理器核心可與一ICE 704連接,而另一核心可無需連接至一ICE。代替性地,另一核心可透過一串列或平行介面與主機耦合以接收在一各自中斷服務常式中產生之資訊。根據另一實施例,另一核心亦可與包括一追蹤介面之一ICE 706耦合而可接收在除錯中斷服務常式中產生之資訊。
100‧‧‧處理裝置
102‧‧‧第一核心/主控核心
104‧‧‧第二核心/從屬核心
106‧‧‧摸擬器邏輯
107‧‧‧主從介面(MSI)/主從介面(MSI)模組
108‧‧‧摸擬器邏輯
110‧‧‧控制及狀態暫存器
112‧‧‧控制及狀態暫存器
114‧‧‧跨間斷邏輯
115‧‧‧邏輯
120‧‧‧中斷控制器
122‧‧‧中斷控制器
Claims (29)
- 一種用於包括多個處理核心之一積體電路裝置之除錯方法,其包括:啟動該積體電路裝置中之一第一處理器核心處之一除錯斷點,其中該除錯斷點停止該第一處理器核心中指令之執行;及將該除錯斷點傳遞至該積體電路裝置中之一第二處理器核心。
- 如請求項1之除錯方法,其進一步包括:設定一斷點暫存器中之一或多個跨斷點啟用位元,藉此啟用傳遞該除錯斷點之步驟。
- 如請求項2之除錯方法,其中傳遞該除錯斷點包括:確證該第二處理器核心處之一斷點,其中該斷點停止該第二處理器核心中指令之執行。
- 如請求項1之除錯方法,其進一步包括:設定一斷點暫存器中之一或多個跨斷點中斷啟用位元,藉此啟用傳遞該除錯斷點之該步驟。
- 如請求項4之除錯方法,其中傳遞該除錯斷點包括:確證與該第二處理器核心相關聯之一中斷控制器處之一斷點中斷。
- 如請求項5之除錯方法,其中在接收到該斷點中斷之後,該第二處理器核心執行一中斷服務常式。
- 如請求項6之除錯方法,其中該中斷服務常式產生與該除錯斷點有關之資料。
- 如請求項7之除錯方法,其中將該資料傳遞至一主機系統。
- 如請求項1之除錯方法,其中該第一處理器核心係由一第一系統時脈計時,且該第二處理器核心係由不同於該第一系統時脈之一第二系統時脈計時。
- 如請求項9之除錯方法,其中傳遞該除錯斷點包括:使該除錯斷點與該第二系統時脈同步。
- 如請求項1之除錯方法,其中該除錯斷點係由複數個可程式化斷點產生。
- 如請求項11之除錯方法,其中該等可程式化斷點包括指令斷點及資料斷點。
- 如請求項1之除錯方法,其中該第一處理器核心係一主控核心且該第二處理器核心係一從屬核心。
- 如請求項1之除錯方法,其中該第一處理器核心係一從屬核心且該第二處理器核心係一主控核心。
- 一種包括複數個處理器核心之積體電路裝置,其包括:一第一處理器核心,其包含用於啟動一第一處理器核心斷點之第一摸擬器邏輯;一第二處理器核心,其通信耦合至該第一處理器核心且包含第二摸擬器邏輯;及一第一跨斷點邏輯,其在該第一摸擬器邏輯內,且經組態以將由該第一處理器核心處之該第一摸擬器邏輯啟動之一斷點傳遞至該第二處理器核心。
- 如請求項15之積體電路裝置,其中該第一跨斷點邏輯將該斷點傳遞至該第二處理器核心之該第二摸擬器邏輯,藉此停止該第二處理器核心處指令之執行。
- 如請求項15之積體電路裝置,其進一步包括一斷點暫存器,該斷點暫存器包括可操作以啟用該第一跨斷點邏輯以將該斷點傳遞至該第二摸擬器邏輯之一或多個跨斷點啟用位元。
- 如請求項15之積體電路裝置,其中該第二摸擬器邏輯包括一第二跨斷點邏輯,其經組態以將由該第二處理器核心處之該第二 摸擬器邏輯啟動之一斷點傳遞至該第一處理器核心。
- 如請求項15之積體電路裝置,其中該跨斷點邏輯將該斷點作為一中斷請求傳遞至與該第二處理器核心相關聯之一中斷輸入端。
- 如請求項19之積體電路裝置,其進一步包括一斷點暫存器,該斷點暫存器包括可操作以啟用該跨斷點邏輯以將該中斷請求傳遞至與該第二處理器核心相關聯之該中斷輸入端之一或多個跨斷點中斷啟用位元。
- 如請求項15之積體電路裝置,其中各摸擬器邏輯包括與一組外部插腳耦合之一介面。
- 如請求項21之積體電路裝置,其中一第一組周邊裝置整合於該等積體電路裝置內且與該第一處理器核心耦合,藉此形成一第一微控制器,且一第二組周邊裝置整合於該積體電路裝置內且與該第二處理器核心耦合,藉此形成一第二微控制器。
- 如請求項21之積體電路裝置,其中該第一微控制器作為一主控器件操作,且該第二微控制器作為一從屬器件操作。
- 如請求項15之積體電路裝置,其中該第一處理器核心係由一第一系統時脈計時,且該第二處理器核心係由不同於該第一系統時脈之一第二系統時脈計時。
- 如請求項24之積體電路裝置,其進一步包括使該跨斷點邏輯與該第二處理器核心介接之跨時脈電路。
- 如請求項25之積體電路裝置,其中該跨時脈電路耦合於該跨斷點邏輯與相關聯於該第二處理器核心之一中斷控制器之間。
- 如請求項22之積體電路裝置,其中該第一組周邊裝置及/或該第二組周邊裝置包括一串列通信周邊設備。
- 如請求項15之積體電路裝置,其中該第一及/或第二摸擬器邏輯 可操作以組態複數個可程式化斷點。
- 如請求項28之積體電路裝置,其中該等可程式化斷點包括指令斷點及資料斷點。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562112552P | 2015-02-05 | 2015-02-05 | |
US15/012,287 US10102050B2 (en) | 2015-02-05 | 2016-02-01 | System and method for generating cross-core breakpoints in a multi-core microcontroller |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201633129A true TW201633129A (zh) | 2016-09-16 |
Family
ID=55451561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104160A TW201633129A (zh) | 2015-02-05 | 2016-02-05 | 用於在多核心微控制器中產生跨核心斷點之系統及方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10102050B2 (zh) |
EP (1) | EP3254199B1 (zh) |
KR (1) | KR20170110072A (zh) |
CN (1) | CN107111546B (zh) |
TW (1) | TW201633129A (zh) |
WO (1) | WO2016126774A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921988B2 (en) * | 2014-06-05 | 2018-03-20 | Microchip Technology Incorporated | Device and method to assign device pin functionality for multi-processor core devices |
US9921982B2 (en) * | 2014-06-05 | 2018-03-20 | Microchip Technology Incorporated | Device and method to assign device pin ownership for multi-processor core devices |
CN105224454B (zh) * | 2015-09-25 | 2018-06-05 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
CN105354136B (zh) * | 2015-09-25 | 2018-06-15 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
US10552270B2 (en) | 2016-12-22 | 2020-02-04 | Intel Corporation | Systems and methods for in-field core failover |
JP2018128767A (ja) * | 2017-02-07 | 2018-08-16 | ルネサスエレクトロニクス株式会社 | デバッグシステム及び半導体装置 |
CN108415842B (zh) * | 2018-03-21 | 2021-01-29 | 杭州中天微系统有限公司 | 多核处理器 |
JP6981920B2 (ja) * | 2018-05-25 | 2021-12-17 | ルネサスエレクトロニクス株式会社 | 半導体装置、およびデバッグ方法 |
KR20210014365A (ko) | 2019-07-30 | 2021-02-09 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640542A (en) * | 1993-10-29 | 1997-06-17 | Intel Corporation | On-chip in-circuit-emulator memory mapping and breakpoint register modules |
US6205560B1 (en) * | 1996-02-27 | 2001-03-20 | Via-Cyrix, Inc. | Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG |
US6598178B1 (en) * | 1999-06-01 | 2003-07-22 | Agere Systems Inc. | Peripheral breakpoint signaler |
DE10116861A1 (de) * | 2001-04-04 | 2002-10-31 | Infineon Technologies Ag | Programmgesteuerte Einheit |
US6859892B2 (en) * | 2001-04-25 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | Synchronous breakpoint system and method |
US7131114B2 (en) | 2001-07-16 | 2006-10-31 | Texas Instruments Incorporated | Debugger breakpoint management in a multicore DSP device having shared program memory |
US7058855B2 (en) * | 2002-07-24 | 2006-06-06 | Infineon Technologies Ag | Emulation interface system |
US7689867B2 (en) * | 2005-06-09 | 2010-03-30 | Intel Corporation | Multiprocessor breakpoint |
JP4222370B2 (ja) | 2006-01-11 | 2009-02-12 | セイコーエプソン株式会社 | デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム |
US20070226740A1 (en) * | 2006-02-28 | 2007-09-27 | Xiao-Feng Li | Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems |
CN101154212B (zh) * | 2006-09-29 | 2012-01-25 | 上海海尔集成电路有限公司 | 一种8位兼容c51指令集微控制器 |
US8161311B2 (en) * | 2007-08-23 | 2012-04-17 | Stratus Technologies Bermuda Ltd | Apparatus and method for redundant and spread spectrum clocking |
US20090113211A1 (en) * | 2007-10-31 | 2009-04-30 | Chun-Hung Liu | Processing unit including a wireless module and method thereof |
US20100049956A1 (en) * | 2008-08-20 | 2010-02-25 | Moyer William C | Debug instruction for use in a multi-threaded data processing system |
JP5229326B2 (ja) * | 2008-09-24 | 2013-07-03 | 富士通株式会社 | マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム |
US7913118B2 (en) * | 2008-10-15 | 2011-03-22 | Andes Technology Corporation | In-circuit debugging system and related method |
US8108730B2 (en) * | 2010-01-21 | 2012-01-31 | Arm Limited | Debugging a multiprocessor system that switches between a locked mode and a split mode |
US8806446B2 (en) * | 2010-03-22 | 2014-08-12 | Analog Devices, Inc. | Methods and apparatus for debugging programs in shared memory |
US20120226839A1 (en) * | 2011-03-02 | 2012-09-06 | Texas Instruments Incorporated | Method and System for Monitoring and Debugging Access to a Bus Slave Using One or More Throughput Counters |
WO2013061369A1 (en) | 2011-10-26 | 2013-05-02 | Hitachi, Ltd. | Information system and control method of the same |
US10120785B2 (en) * | 2016-10-21 | 2018-11-06 | Rosemount Aerospace Inc. | Automatic generation of data coupling and control coupling test conditions |
-
2016
- 2016-02-01 US US15/012,287 patent/US10102050B2/en active Active
- 2016-02-03 KR KR1020177016979A patent/KR20170110072A/ko unknown
- 2016-02-03 WO PCT/US2016/016293 patent/WO2016126774A1/en active Application Filing
- 2016-02-03 CN CN201680004616.3A patent/CN107111546B/zh active Active
- 2016-02-03 EP EP16707579.5A patent/EP3254199B1/en active Active
- 2016-02-05 TW TW105104160A patent/TW201633129A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2016126774A1 (en) | 2016-08-11 |
KR20170110072A (ko) | 2017-10-10 |
US20160231376A1 (en) | 2016-08-11 |
CN107111546B (zh) | 2021-05-07 |
EP3254199B1 (en) | 2020-12-30 |
CN107111546A (zh) | 2017-08-29 |
EP3254199A1 (en) | 2017-12-13 |
US10102050B2 (en) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201633129A (zh) | 用於在多核心微控制器中產生跨核心斷點之系統及方法 | |
Ryzhyk et al. | Automatic device driver synthesis with Termite | |
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
US20170227603A1 (en) | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models | |
US7010722B2 (en) | Embedded symmetric multiprocessor system debug | |
Nakamura et al. | A fast hardware/software co-verification method for system-on-a-chip by using a C/C++ simulator and FPGA emulator with shared register communication | |
US9607120B2 (en) | Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
KR20150008447A (ko) | 인터럽트 상태에 기초한 구성 가능한 브레이크포인트를 갖는 디바이스 | |
US9946823B2 (en) | Dynamic control of design clock generation in emulation | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
Cho et al. | A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs | |
JP5269067B2 (ja) | プログラム実行装置およびその制御方法 | |
US20110197182A1 (en) | Debugging parallel software using speculatively executed code sequences in a multiple core environment | |
Boger | Rhealstone benchmarking of FreeRTOS and the Xilinx Zynq extensible processing platform | |
Ko et al. | Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms | |
TWI739853B (zh) | 運算裝置與運作方法 | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
Macías et al. | Open platform for mixed-criticality applications | |
US9721048B1 (en) | Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system | |
JP2006146412A (ja) | マルチコアプロセッサ及びデバッグ方法 | |
Stollon et al. | Infineon multicore debug solution | |
JP2009223762A (ja) | 協調検証装置 | |
Wicaksana et al. | A scalable and configurable Multiprocessor System-on-Chip (MPSoC) virtual platform for hardware and software co-design and co-verification | |
Kosowska et al. | Software-Defined Computer with a Classic Microprocessor |