TWI437424B - 可自我重置之微處理器及其方法 - Google Patents

可自我重置之微處理器及其方法 Download PDF

Info

Publication number
TWI437424B
TWI437424B TW100104348A TW100104348A TWI437424B TW I437424 B TWI437424 B TW I437424B TW 100104348 A TW100104348 A TW 100104348A TW 100104348 A TW100104348 A TW 100104348A TW I437424 B TWI437424 B TW I437424B
Authority
TW
Taiwan
Prior art keywords
microprocessor
signal
bus
state
reset
Prior art date
Application number
TW100104348A
Other languages
English (en)
Other versions
TW201129904A (en
Inventor
G Glenn Henry
Darius D Gaskins
Jui-Shuan Chen
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW201129904A publication Critical patent/TW201129904A/zh
Application granted granted Critical
Publication of TWI437424B publication Critical patent/TWI437424B/zh

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)

Description

可自我重置之微處理器及其方法
本發明係有關一種微處理器,特別是關於一種可自我重置之微處理器及其方法。
對目前的微處理器除錯是非常困難的,微處理器的研發人員使用各種技術來試著重現錯誤以獲得資訊來了解錯誤產生的原因。目前所使用的技術包括改變微處理器在一般正常模式(normal mode)操作下的特徵,如此可能導致微處理器和其他系統元件之間的互動操作變得異常且不可預期,而這些不正常的互動操作也可能產生非預期的結果並妨礙除錯的成效。
因此亟需提出一種新穎之機制,其能重現錯誤,亦不會使微處理器和其他元件相互影響。
鑑於上述,本發明提出一種可部份自我重置之微處理器及其方法,其透過部份重置機制,期能再製錯誤,亦維持系統正常運作。
本發明之一實施例係提出一可部份自我重置之微處理器。微處理器包括一匯流排介面單元(bus interface unit),其用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted)時,便命令所有在匯流排上的裝置不能(refrain)在匯流排上初始化一傳輸(transaction)。微處理器更包括微代碼(microcode),用來根據偵測到的一事件(event)來使匯流排介面單元設置該訊號至匯流排上;重置(reset)微處理器,但對於設置該訊號至匯流排的部份匯流排介面單元則不進行重置;以及在微處理器重置之後,用來控制匯流排介面單元取消設置(deassert)該訊號。
本發明之另一實施例係提供一部份自我重置微處理器的方法。所述之微處理器包括一匯流排介面單元(bus interface unit),其用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted)後,便命令所有在匯流排上的裝置不能在匯流排上初始化一傳輸(transaction)。所述之方法包括:首先,微處理器根據偵測到的一事件(event)來設置該訊號至匯流排上;接著,在設置該訊號之後,微處理器自行重置,但不重置部份用來設置訊號至匯流排的匯流排介面單元;最後,重置在微處理器重置之後,微處理器即取消設置(deassert)在匯流排上的該訊號。
本發明之再一實施例係提供一可部份自我重置之微處理器。微處理器包括一中斷控制器(interrupt controller)及一微代碼。微代碼係用來根據偵測到的一事件(event)來設定一旗標(flag);根據偵測到的該事件來儲存微處理器的一狀態至一記憶體中;在設定旗標和儲存狀態之後,微處理器自行重置,但不重置中斷控制器;以及在重置微處理 器後,從記憶體重新載入微處理器的狀態,其中,若微代碼判斷旗標被設定(set),則微代碼不會重新載入中斷控制器的狀態。
本發明之又一實施例係提供一部份自我重置微處理器之方法,其中微處理器包括一中斷控制器(interrupt controller)。所述之方法包括:首先,微處理器根據偵測到的一事件在內部設定一旗標;接著,微處理器根據偵測到的該事件來儲存微處理器的一狀態至一記憶體中;再來,在設定旗標和儲存狀態之後,微處理器自行重置,但不重置中斷控制器;最後,在重置微處理器後,微處理器從記憶體重新載入自身的狀態,其中,若判斷旗標被設定,則不會重新載入中斷控制器的狀態。
101‧‧‧系統
100‧‧‧微處理器
102‧‧‧指令快取
104‧‧‧特定模組暫存器
106‧‧‧儲存元件
108‧‧‧進階可程式中斷控制器
112‧‧‧指令轉譯器
114‧‧‧跟蹤程序
116‧‧‧暫存器別名表
118‧‧‧保留站
122‧‧‧執行單元
124‧‧‧引退單元
128‧‧‧晶片組
132‧‧‧系統記憶體
134‧‧‧區塊下一請求產生邏輯電路
136‧‧‧內部處理器重置訊號
138‧‧‧處理器匯流排
142‧‧‧及閘
144‧‧‧微代碼
146‧‧‧部份重置位元
148‧‧‧反向器
152‧‧‧重置邏輯電路
156‧‧‧重置程序
158‧‧‧處理器狀態
162‧‧‧控制暫存器
S202-S218‧‧‧步驟
第一圖係為本發明所揭示之可部份自我重置之微處理器之系統架構圖。
第二圖係為本發明所揭示之部份自我重置微處理器的方法之步驟流程圖。
請先參考第一圖,係為本發明所揭示之可部份自我重置之微處理器之系統架構圖,其中,系統101包括可部份自我重置之微處理器(partially self-resetting microprocessor)100。系統101包括一系統記憶體132,其耦接於一晶片組(chipset)128,並受其控制。系統記憶體132可用來儲存一處理器狀態158,以下會有詳盡的描述。晶片 組128係藉由一處理器匯流排(processor bus)138來耦接於微處理器100。一實施例中,處理器匯流排138包括一區塊下一請求信號(Block Next Request signal,BNR# signal)。當處理器匯流排138上的一裝置,如微處理器100或晶片組128,設置區塊下一請求信號時,可阻止其他裝置在處理器匯流排138上初始一個新的傳輸(transaction)。當微處理器100自我重置時,微處理器100會設置區塊下一請求信號來防止獨占(hang)處理器匯流排138,以下將加以詳述。
微處理器100包括一含有多階段的管線,其包括各種功能單元。管線包括一指令快取(instruction cache)102,其依序耦接於一指令轉譯器(instruction translator)112、一暫存器別名表(Register Alias Table,RAT)116、一保留站(reservation station)118、一執行單元(execution unit)122以及一引退單元(retire unit)124。指令轉譯器112用來將巨集指令(macroinstruction)(如x86系列架構中)轉譯成微指令(microinstruction),該微指令是內建於微處理器100的精簡指令集計算機架構(RISC-like microarchitecture)之微指令集中。保留站118發出指令至執行單元122,並以非循序的方式執行程式(execution out of program order)。引退單元124包括一重排緩衝器(reorder buffer),並依循序的方式來引退指令(retirement of instruction in program order)。執行單元122包括載入/儲存單元(load/store unit)、整數單元(integer unit)、浮點單元(floating-point unit)、分支單元(branch unit)或單一指令多重資料單元(SIMD unit)。
微處理器100更包括一進階可程式中斷控制器(Advanced Programmable Interrupt Controller,APIC)108,其耦接於執行單 元122以及一匯流排介面單元(bus interface unit)126,匯流排介面單元126係作為微處理器100連至處理器匯流排138的介面。進階可程式中斷控制器108係接收系統101內部的各種中斷來源,如晶片組128和周邊裝置,並傳送這些中斷至專門管理中斷的微處理器100之核心。在本發明實施例中,進階可程式中斷控制器108的功能與區域進階可程式中斷控制器(Local APIC)類似,相關說明請參考2006年6月出版,關於Intel IA-32架構的「Architecture Software Developer’s Manual」一書之第三A冊第八章「System Programming Guide」的敘述。
微處理器100又包括一儲存元件106,用來儲存一部份重置旗標(a partial reset flag)及其位址,儲存元件106係耦接於執行單元122。在本發明之一實施例中,部份重置旗標及其儲存位址係位於使用者無法尋址的(non-user addressable)儲存元件106中,因此不會被微處理器100在第二圖之步驟S212中,當被微處理器100自我重置時被清除,關於這部份的細節以下將會詳述。更具體地說,儲存元件106會因開啟(power-on)微處理器100的電源而清除內容(power-on reset),但不會受非因電源開啟的重置動作(non-power-on reset)而影響,因此藉由設置重置輸入訊號給微處理器100、或是如步驟S212中的自我重置來進行重置的情形,就不會清除儲存元件106的內容。
微處理器100又包括特定模組暫存器(Model Specific Registers,MSRs)104,其耦接於執行單元122。匯流排介面單元126、進階可程式中斷控制器108、特定模組暫存器104、部份重置旗標及其位址的操作將在下面詳述。
微處理器100也包括微代碼(microcode)144,其包括跟蹤程序(tracer routines)114及重置程序(reset routines)156。跟蹤程序114是一組微代碼程序,藉由軟體寫入一控制暫存器來被驅動,如使用WRMSR指令來寫入特定模組暫存器104。跟蹤程序114(亦可稱為跟蹤器(tracer)),可用來作為對微處理器100除錯以及調整執行成效的工具。各種事件會驅動跟蹤程序114來收集處理器狀態資訊,並將其寫入系統記憶體132的特定位址。
在本發明實施例中,跟蹤程序114係藉由定期呼叫而被驅動,例如,每當微處理器100執行並引退N個指令時(如100,000個指令,此數值可由使用者決定),跟蹤程序114便儲存處理器狀態158至系統記憶體132。工程師便可從各檢查點(checkpoints)來將所儲存的處理器狀態158重新載入至一模擬器,以對微處理器100進行除錯,其中模擬器可以是微處理器100的軟體功能模組。然而,微處理器100可能有一些未包含在處理器狀態158的隱藏狀態,因而使模擬器無法再製錯誤。因此,第一圖之微處理器100中的跟蹤程序114,便包含會重置微處理器100並清除其狀態的機制,隨後並依據部分的重置順序,由重置程序156從系統記憶體132重新載入處理器狀態158,以及在下一個指令時重新(resume)執行。
為了使錯誤發生,微處理器100必須歷經一段時間(如:一天)依照順序地執行上述模式(即停止執行,儲存狀態至記憶體,自我重置,從記憶體重新載入狀態,以及繼續執行)。不幸地,在某些狀況下,若開啟跟蹤程序114的重置機制,在錯誤發生之前,微處理器100會時常佔用處理器匯流排138。一般而言,正常情況下,微處理器100和晶片 組128會同時重置,但就發生微處理器100獨佔處理器匯流排138的情形來說,一般的狀況是微處理器100被重置,而晶片組128不會被重置,因此會發生微處理器100獨佔處理器匯流排138的情形。更具體來說,正常情況下,在晶片組128在處理器匯流排138上初始傳輸之前,微處理器100的匯流排介面單元126於重置之後,會具有足夠的時間來執行自我初始化的操作。然而,因為在微處理器100自我重置、而晶片組128未被重置的情形下,當微處理器100正進行初始化時,晶片組128便在處理器匯流排138上初始傳輸,因而導致處理器匯流排138被佔用的狀況。
跟蹤程序114進行重置所產生第二個問題,是會遺失晶片組128在重置訊號期間所產生給微處理器100的中斷。這是因為進階可程式中斷控制器108的重置就是微處理器100的部份重置,如此導致進階可程式中斷控制器108在重置與重新載入原先儲存的狀態之間,遺失自己的狀態而無法正確地處理晶片組128產生的中斷。
以下將描述如何解決上述問題,那就是,修改微處理器100僅執行一部份的自我重置。更具體地說,為了解決上述第二個問題,微處理器100將不重置進階可程式中斷控制器108,也不從系統記憶體132中重新載入處理器狀態158。為了解決上述第一個問題,當跟蹤程序114要求微處理器100重置時,匯流排介面單元126將取得處理器匯流排138的所有權,並初始一個空傳輸(dummy transaction),以及在重置微處理器100之前設置區塊下一請求信號(BNR#),而且不重置進階可程式中斷控制器108或區塊下一請求產生邏輯電路(BNR# generation logic)134。第二圖的流程圖有詳細的操作描述,而以下將先對匯流排介 面單元126進行更詳細的描述。
匯流排介面單元126包括區塊下一請求產生邏輯電路134、重置邏輯電路(reset logic)152以及控制暫存器(control register)162。控制暫存器162可被微代碼144程式化來要求部份重置。在本發明實施例中,控制暫存器162包括一部份重置位元146,其提供給一反向器148,其輸出將提供給一兩輸入埠的及閘142。及閘142也接收從BIU 126內部之重置邏輯電路152所傳來的一內部處理器重置訊號136,進而產生一合格重置訊號(qualified reset output)154,以提供給匯流排介面單元126的進階可程式中斷控制108及區塊下一請求產生邏輯電路134。內部處理器重置訊號136也會提供給微處理器100中其餘元件,當然,其他可輕易思及來產生內部處理器重置訊號136與合格重置訊號154的邏輯電路皆為本發明所保護之範圍。
接著,請參考第二圖,係為本發明所揭示之部份自我重置微處理器的方法之步驟流程圖,其中相關架構請參考第一圖。流程開始於步驟S202。
首先,步驟S202中,使用者編寫微處理器100的特定模組暫存器104以週期性地觸發跟蹤程序114,例如,每引退N個指令(如100,000個指令)就觸發一次。流程前進至步驟S204。
步驟S204中,週期性產生的事件會觸發跟蹤程序114,跟蹤程序114便儲存處理器狀態158至記憶體132。在本發明實施例中,跟蹤程序114在儲存狀態之前,會執行一回寫無效(write-back-invalidate)操作(如執行WBINVD指令)。流程前進至步驟S206。
接著,在步驟S206中,跟蹤程序114設定部份重置旗標, 並儲存先前所存處理器狀態158的記憶體位址至記憶體132。跟蹤程序114隨後便告知匯流排介面單元126進行部份重置作業。流程前進至步驟S208。
在步驟S208中,匯流排介面單元126往處理器匯流排138上初始一個空傳輸,並設置區塊下一指令訊號以防止晶片組128在處理器匯流排138上執行任何傳輸。流程前進至步驟S212。
再來,步驟S212中,匯流排介面單元126重置整個微處理器100,除了進階可程式中斷控制器108及區塊下一請求產生邏輯電路134之外。也就是說,匯流排介面單元126設置內部處理器重置訊號136,但不設置合格重置訊號154,以避免重置進階可程式中斷控制器108及區塊下一請求產生邏輯電路134。由於匯流排介面單元126沒有重置區塊下一請求產生邏輯電路134,因此會持續設置區塊下一指令訊號。又由於匯流排介面單元126沒有重置進階可程式中斷控制器108,因此當微處理器100被重置時便不會錯過中斷訊號。流程前進至步驟S214。
步驟S214中,由於在步驟S212已進行重置的操作,微處理器100會使得重置程序156被執行。重置程序156會命令匯流排介面單元126取消設置區塊下一請求訊號(其已經是正常的重置程序156的一部份,例如,從RESET接腳產生重置訊號就包含這個微代碼)。
隨後,在步驟S216中,重置程序156偵測到部份重置旗標已被設定,便把從在步驟S206中所儲存在記憶體132中的記憶體位址予以重新載入處理器狀態158。然而,重置程序156不會重新載入進階可 程式中斷控制器108的狀態,而僅是允許進階可程式中斷控制器108依據重置前的狀態來繼續回應中斷訊號,因此微處理器100並不會錯過遺失任何中斷訊號。此外,重置程序156將清除部份重置旗標。流程前進至步驟S218。
最後,步驟S218中,重置程序156重新執行下一個使用者指令,意即,在步驟S204中跟蹤程序114被觸發之前所完成的最後指令的下一個使用者指令。微處理器100繼續執行使用者指令,直到其他事件觸發跟蹤程序114時,便回到步驟S204重複上述步驟。
雖然上述實施例是採用週期性驅動跟蹤程序114來進行重置,但本發明解決了避免發生錯誤的問題(bus hang),因此亦可廣義應用於使處理器100自我重置且不會重置到晶片組128的任何情況中。更進一步地,又因為本發明解決了遺失中斷訊號的問題,因此更可廣義的應用在當微處理器100從先前重置狀態(pre-reset state)回復以繼續中斷的處理的應用中。
再者,本發明雖僅提到x86系列架構的匯流排(例如,具有區塊下一請求信號),然而其他能產生使處理器重置之訊號的匯流排亦包括在內,不以本發明所揭露者為限。
儘管本發明描述各種實施例,但不以揭露者為限,任何熟習電腦相關科技者,皆可在不脫離本發明精神下進行變更。例如,軟體可實作功能、架構、模組、模擬且/或上述各裝置、方法。藉由使用一般程式語言(如C,C++)、硬體描述語言(hardware description languages,HDL),包括Verilog硬體描述語言等,或其他可用之程式,來實作本發明所述之軟體。這樣的軟體可儲存於任何電腦可用之儲存媒 體,如磁帶(magnetic tape)、半導體、磁碟(magnetic disk)、或光碟(optical disc)(例如CD-ROM,DVD-ROM等)、網路、有線/無線或其他通訊媒體。本發明所提之裝置及方法實施例可包含於一半導體智能核心(semiconductor intellectual property core),如處理器核心(例如內嵌於硬體描述語言中),且可透過積體電路之生產轉成硬體形式。此外,本發明所述之裝置及方法亦可是硬體和軟體的組合,不以揭露者為限。而本發明特別適用於一般用途電腦系統之微處理器裝置中。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申請專利範圍;凡其它未脫離發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之申請專利範圍內。
S202-S218‧‧‧步驟

Claims (29)

  1. 一種可部份自我重置之微處理器,包含:一匯流排介面單元,用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted)時,便命令所有在該匯流排上的裝置不能在該匯流排上初始化一傳輸(transaction);及一微代碼,用來執行以下動作:根據偵測到的一事件(event)使該匯流排介面單元設置該訊號至該匯流排上;重置該微處理器,但不重置部份用來設置該訊號至該匯流排的該匯流排介面單元;及在該微處理器重置之後,控制該匯流排介面單元取消設置(deassert)在該匯流排上的該訊號。
  2. 如申請專利範圍第1項所述之微處理器,係經由該匯流排來存取一記憶體,其中該微代碼更用來在重置該微處理器之前,根據偵測到的該事件儲存該微處理器的一狀態至該記憶體,並於取消設置該訊號之後,從該記憶體中重新載入該微處理器的該狀態。
  3. 如申請專利範圍第2項所述之微處理器,更包含:一中斷控制器;其中,當該微代碼重置該微處理器時,不會重置該中斷控制器。
  4. 如申請專利範圍第3項所述之微處理器,其中該微代碼在重置該微處理器之前會設定該微處理器內部之一旗標,其中,該微代碼會判斷該旗標是否設定,若該旗標被設定,則當該微代碼從該記憶體 中重新載入該微處理器的該狀態時,不會重新載入該中斷控制器的狀態。
  5. 如申請專利範圍第4項所述之微處理器,其中該微代碼判斷該旗標是否被設定之後,會清除該旗標。
  6. 如申請專利範圍第2項所述之微處理器,其中該微代碼從該記憶體中重新載入該微處理器的該狀態之後,會重新執行使用者指令。
  7. 如申請專利範圍第1項所述之微處理器,其中所偵測到的該事件係指自從上次重置後,該微處理器已引退(retired)一預定數量的指令。
  8. 如申請專利範圍第1項所述之微處理器,其中該訊號係為一區塊下一請求信號(Block Next Request signal,BNR# signal)。
  9. 一種部份自我重置微處理器的方法,其中該微處理器包括一匯流排介面單元(bus interface unit),其用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted),便命令所有在該匯流排上的裝置不能在該匯流排上初始化一傳輸(transaction),該方法包含:該微處理器根據偵測到的一事件(event)設置該訊號至該匯流排上;在設置該訊號之後,該微處理器自我重置,但不重置部份用來設置該訊號至該匯流排的該匯流排介面單元;及重置該微處理器之後,該微處理器取消設置(deassert)在該匯流排上的該訊號。
  10. 如申請專利範圍第9項所述之方法,其中該微處理器係經 由該匯流排來存取一記憶體,該方法更包含:在重置該微處理器之前,根據偵測到的該事件來儲存該微處理器的一狀態至該記憶體;及於取消設置該訊號之後,從該記憶體中重新載入該微處理器的該狀態。
  11. 如申請專利範圍第10項所述之方法,其中該微處理器包含一中斷控制器,其中,當重置該微處理器時,不會重置該中斷控制器。
  12. 如申請專利範圍第11項所述之方法,更包含:在重置該微處理器之前,該微處理器設定本身內部之一旗標;其中,重新載入該微處理器的該狀態之步驟中,包含判斷該旗標是否設定,若該旗標被設定,則不重新載入該中斷控制器的狀態。
  13. 如申請專利範圍第12項所述之方法,更包含:判斷該旗標是否被設定之後,清除該旗標。
  14. 如申請專利範圍第10項所述之方法,其中儲存該微處理的該狀態至該記憶體以及從該記憶體重新載入該狀態的步驟係由該微處理器的一微代碼執行。
  15. 如申請專利範圍第10項所述之方法,更包含:從該記憶體重新載入該微處理器之該狀態後,重新執行使用者指令。
  16. 如申請專利範圍第9項所述之方法,其中於偵測該事件步驟中,包含偵測自從上次重置後,該微處理器是否已引退(retired)一預定數量的指令。
  17. 一種微處理器,可用來部份自我重置,包含: 一中斷控制器;及一微代碼,用來執行以下動作:根據偵測到的一事件(event)來設定一旗標(flag);根據偵測到的該事件來儲存該微處理器的一狀態至一記憶體中;在設定該旗標與儲存該狀態之後,重置該微處理器而不重置該中斷控制器;及重置該微處理器後,從該記憶體重新載入該微處理器的該狀態,其中,若該微代碼判斷該旗標被設定,則該微代碼不會重新載入該中斷控制器的狀態。
  18. 如申請專利範圍第17項所述之微處理器,其中該微代碼判斷該旗標是否被設定之後,會清除該旗標。
  19. 如申請專利範圍第17項所述之微處理器,其中該微代碼從該記憶體中重新載入該微處理器的該狀態之後,會重新繼續執行使用者指令。
  20. 如申請專利範圍第17項所述之微處理器,其中該事件係指自從上次重置後,已引退(retired)一預定數量的指令。
  21. 如申請專利範圍第17項所述之微處理器,更包含:一匯流排介面單元,用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted),便命令所有在該匯流排上的裝置不能在該匯流排上初始化一傳輸(transaction);其中該微代碼更執行以下動作:重置該微處理器之前,設置該訊號至該匯流排上;當該微處理器自我重置時,不重置部份用來設置該訊號至該匯流排的該 匯流排介面單元;及在該微處理器重置之後,取消設置(deassert)該訊號。
  22. 如申請專利範圍第17項所述之微處理器,其中該訊號係為一區塊下一請求信號(Block Next Request signal,BNR# signal)。
  23. 一種部份自我重置微處理器的方法,其中該微處理器包括一中斷控制器,該方法包含:該微處理器根據偵測到的一事件在內部設定一旗標;微處理器根據偵測到的該事件來儲存該微處理器的一狀態至一記憶體中;在設定該旗標和儲存該狀態之後,該微處理器自我重置,但不重置該中斷控制器;及在重置該微處理器後,該微處理器從該記憶體重新載入該狀態,其中,會判斷該旗標是否設定,若判斷該旗標被設定,則不會重新載入該中斷控制器的狀態。
  24. 如申請專利範圍第23項所述之方法,更包含:判斷該旗標是否被設定之後,清除該旗標。
  25. 如申請專利範圍第23項所述之方法,其中儲存該微處理的該狀態至該記憶體以及從該記憶體重新載入該狀態的步驟係由該微處理器的一微代碼執行。
  26. 如申請專利範圍第23項所述之方法,更包含:從該記憶體重新載入該微處理器之該狀態後,繼續執行使用者指令。
  27. 如申請專利範圍第23項所述之方法,其中於偵測該事件 步驟中,包含偵測自從上次重置後,是否已引退(retired)一預定數量的指令。
  28. 如申請專利範圍第23項所述之方法,其中該微處理器包括一匯流排介面單元(bus interface unit),其用來將該微處理器連接至一匯流排,其中該匯流排包括一訊號,當該訊號一被設置(asserted),便命令所有在該匯流排上的裝置不能在該匯流排上初始化一傳輸(transaction),該方法更包含:重置該微處理器之前,設置該訊號至該匯流排上;當該微處理器自我重置時,不重置部份用來設置該訊號至該匯流排的該匯流排介面單元;及在該微處理器重置之後,取消設置(deassert)該訊號。
  29. 如申請專利範圍第13項所述之方法,其中該訊號係為一區塊下一請求信號(Block Next Request signal,BNR# signal)。
TW100104348A 2010-02-16 2011-02-10 可自我重置之微處理器及其方法 TWI437424B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30488710P 2010-02-16 2010-02-16
US12/944,269 US8370684B2 (en) 2010-02-16 2010-11-11 Microprocessor with system-robust self-reset capability

Publications (2)

Publication Number Publication Date
TW201129904A TW201129904A (en) 2011-09-01
TWI437424B true TWI437424B (zh) 2014-05-11

Family

ID=44370475

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100104348A TWI437424B (zh) 2010-02-16 2011-02-10 可自我重置之微處理器及其方法

Country Status (2)

Country Link
US (1) US8370684B2 (zh)
TW (1) TWI437424B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443175B2 (en) * 2009-07-10 2013-05-14 Via Technologies, Inc. Microprocessor with first processor for debugging second processor
US8495344B2 (en) * 2010-01-22 2013-07-23 Via Technologies, Inc. Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US8762779B2 (en) * 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
US8370684B2 (en) 2010-02-16 2013-02-05 Via Technologies, Inc. Microprocessor with system-robust self-reset capability
US8639919B2 (en) 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
EP2843550B1 (en) 2013-08-28 2018-09-12 VIA Technologies, Inc. Dynamic reconfiguration of mulit-core processor
EP3324288B1 (en) 2016-11-21 2021-09-08 VIA Technologies, Inc. Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62256298A (ja) * 1986-04-28 1987-11-07 Toshiba Corp ダイナミツクランダムアクセスメモリのリフレツシユ装置
US6463529B1 (en) * 1989-11-03 2002-10-08 Compaq Computer Corporation, Inc. Processor based system with system wide reset and partial system reset capabilities
US6438709B2 (en) * 1997-09-18 2002-08-20 Intel Corporation Method for recovering from computer system lockup condition
US6687865B1 (en) * 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
JP4795025B2 (ja) * 2006-01-13 2011-10-19 キヤノン株式会社 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US9177176B2 (en) * 2006-02-27 2015-11-03 Broadcom Corporation Method and system for secure system-on-a-chip architecture for multimedia data processing
JP4728896B2 (ja) * 2006-07-13 2011-07-20 エヌイーシーコンピュータテクノ株式会社 コンピュータシステム
CN101000596A (zh) 2007-01-22 2007-07-18 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
US8443175B2 (en) * 2009-07-10 2013-05-14 Via Technologies, Inc. Microprocessor with first processor for debugging second processor
US8743128B2 (en) * 2009-09-01 2014-06-03 Blackberry Limited Mobile wireless communications device with reset functions and related methods
US8832421B2 (en) * 2009-10-20 2014-09-09 Blackberry Limited Enhanced fast reset in mobile wireless communication devices and associated methods
US8762779B2 (en) * 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
US8495344B2 (en) * 2010-01-22 2013-07-23 Via Technologies, Inc. Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US8370684B2 (en) 2010-02-16 2013-02-05 Via Technologies, Inc. Microprocessor with system-robust self-reset capability
US8639919B2 (en) * 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode

Also Published As

Publication number Publication date
US8370684B2 (en) 2013-02-05
TW201129904A (en) 2011-09-01
US20110202796A1 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
TWI437424B (zh) 可自我重置之微處理器及其方法
TWI428823B (zh) 微處理器積體電路以及相關除錯方法
TWI613588B (zh) 在核心間同步運作的方法、微處理器及電腦程式產品
US11281562B2 (en) Method and system for cache agent trace and capture
US7689867B2 (en) Multiprocessor breakpoint
US8725485B2 (en) Simulation method and simulation apparatus
TWI613593B (zh) 在微處理器中至多核心的微碼傳播
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
TW201508635A (zh) 多核心微處理器動態重新配置
JP2004086910A (ja) コンピュータ・プログラムをデバックするための方法、システムおよびソフトウェア・プロダクト
US9996127B2 (en) Method and apparatus for proactive throttling for improved power transitions in a processor core
US20070277052A1 (en) Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code
CN108984464B (zh) 微处理器及在微处理器的处理核间同步的方法
US11023342B2 (en) Cache diagnostic techniques
US11537505B2 (en) Forced debug mode entry
CN107729055B (zh) 微处理器及其执行方法
CN109240481B (zh) 多核微处理器及使用其省电的方法
JP5336228B2 (ja) 複数のクロックドメインにおいて決定性を促進するテクニック
US9582286B2 (en) Register file management for operations using a single physical register for both source and result
US20070239972A1 (en) Processing internal timestamp counter instructions in reference to external counter
CN110046126B (zh) 多核微处理器及其重新配置方法、计算机可读存储介质
CN109165189B (zh) 微处理器及其配置方法、以及计算机可读存储介质
US11119149B2 (en) Debug command execution using existing datapath circuitry
CN102073551B (zh) 可自我重置的微处理器及其方法
Mahmood et al. Pipelined MIPS processor with cache controller using VHDL implementation for educational purposes