專利名稱::微處理器及其所適用的測試方法
技術(shù)領(lǐng)域:
:本發(fā)明主要涉及微處理器的
技術(shù)領(lǐng)域:
,特別是關(guān)于微處理器中的保險絲使用技術(shù)。
背景技術(shù):
:當(dāng)代的微處理器中所包含的保險絲是可于微處理器的制造過程中被選擇性地?zé)?,且保險絲可根據(jù)讀取自其中的控制值而被選擇性地?zé)垡钥刂莆⑻幚砥鞯倪\作。通常而言,當(dāng)非熔斷保險絲被讀取時會回傳二進制O(binaryzero),而當(dāng)熔斷保險絲被讀取時則會回傳二進制l(binaryone)(或者可反向設(shè)定)。然而,本發(fā)明的發(fā)明人觀察到該領(lǐng)域的微處理器所具有的熔斷保險絲卻會改變其值,也就是說,熔斷保險絲會不正確地回傳二進制0,即便其于微處理器的測試階段中會正確地回傳二進制1,這種情況被稱為保險絲重長(re-growing)或保險絲再生長(re-growth),意即熔斷保險絲在微處理器的持續(xù)運作過程中可被實質(zhì)地改變,使其于被讀取時回傳非熔斷值而不是回傳熔斷值。保險絲再生長則視其值會對微處理器的后續(xù)運作造成災(zāi)難性的結(jié)果,此外,由保險絲再生長所引起的問題亦很難在失敗分析中被偵測出來。美國專利申請案12/609,207敘述針對此問題提出一種使用了錯誤偵測與修正(ErrorDetectionAndCorrection,EDAC)的保險絲的解決方案,此解決方案中的保險絲是可修正的,也就是大部分的保險絲是設(shè)置于由微碼所寫入的控制硬件中,具體而言,該微碼從保險絲讀取數(shù)值、在需要時使用錯誤偵測與修正的保險絲去修改該數(shù)值、然后將修正后的數(shù)值寫入硬件(例如特定模塊緩存器(ModelSpecificRegister,MSR)、特征控制緩存器(FeatureControlRegister,F(xiàn)CR)、修補硬件(patchhardware)等)。然而,仍有些保險絲是無法由微碼所修正的,意即,當(dāng)芯片啟動時,不可修正的保險絲中的數(shù)值被直接掃描(scan)至硬件緩存器,而未經(jīng)過微碼使用錯誤偵測與修正技術(shù)去修正該數(shù)值。舉例來說,不可修正的保險絲有高速緩存修正保險絲、以及鎖相回路(PhaseLockLoop,PLL)校正保險絲。在微處理器的一實施例中,微碼無法讀取不可修正的保險絲。因此,亟需一種方法可以決定不可修正的保險絲是否發(fā)生了保險絲再生長狀況。
發(fā)明內(nèi)容本發(fā)明的一實施例提供了一種微處理器,包括多個第一保險絲以及多個第二保險絲。上述第一保險絲根據(jù)一預(yù)定值被選擇性地熔斷,其中上述預(yù)定值用以供上述微處理器的電路以控制上述微處理器的運作。上述第二保險絲根據(jù)錯誤偵測信息被選擇性地熔斷,其中上述錯誤偵測信息用以偵測上述第一保險絲中的一錯誤,該錯誤指示上述微處理器的一熔斷保險絲回傳一非熔斷二進制值。其中上述微處理器為響應(yīng)一第一使用者程序指令,而根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。本發(fā)明的另一實施例提供了一種測試方法,適用于執(zhí)行一微處理器的一使用者程序啟動的測試。上述測試方法包括以下步驟于上述微處理器的運作中執(zhí)行一第一使用者程序指令;以及決定上述微處理器的多個第一保險絲中是否存在一錯誤指示出一熔斷保險絲回傳一非熔斷二進制值,其中上述第一保險絲根據(jù)一預(yù)定值被選擇性地熔斷,上述預(yù)定值用以供上述微處理器的電路以控制上述微處理器的運作。其中上述決定步驟使用來自上述微處理器的多個第二保險絲的錯誤偵測信息所執(zhí)行,上述第二保險絲根據(jù)上述錯誤偵測信息被選擇性地熔斷;其中上述決定步驟的執(zhí)行是響應(yīng)上述第一使用者程序指令的執(zhí)行。本發(fā)明的另一實施例提供了一種測試方法,適用于實地測試一微處理器以決定該微處理器的多個保險絲是否有一個或多個已熔斷保險絲于被讀取時回傳非熔斷值。上述測試方法包括以下步驟因應(yīng)上述微處理器的一重設(shè)而讀取上述保險絲中的一預(yù)定數(shù)量的保險絲;決定上述預(yù)定數(shù)量的保險絲是否指示應(yīng)針對上述保險絲執(zhí)行測試;于上述預(yù)定數(shù)量的保險絲指示應(yīng)針對上述保險絲執(zhí)行測試時,針對上述保險絲執(zhí)行測試以決定是否有一個或多個已熔斷保險絲于被讀取時不回傳熔斷值而是回傳非熔斷值;以及于上述預(yù)定數(shù)量的保險絲指示不應(yīng)針對上述保險絲執(zhí)行測試時,避免執(zhí)行上述測試。圖1是根據(jù)本發(fā)明所述的微處理器的示意圖。圖2是根據(jù)本發(fā)明所述制造圖1的微處理器100的運作流程圖。圖3是顯示圖1的微處理器100的運作流程圖。圖4是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖5是顯示制造圖4的微處理器100的運作流程圖。圖6是顯示圖4的微處理器100的運作流程圖。圖7是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖8是顯示制造圖7的微處理器100的運作流程圖。圖9是顯示圖7的微處理器100的運作流程圖。圖10是顯示圖7的微處理器100執(zhí)行特定模塊緩存器寫入指令的運作流程圖。圖11是顯示圖7的微處理器100執(zhí)行特定模塊緩存器讀取指令的運作流程圖。圖12是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖13是根據(jù)本發(fā)明所述制造圖12的微處理器100的運作流程圖。圖14是顯示圖12的微處理器100的運作流程圖。主要組件符號說明100微處理器;102指令高速緩存;104指令轉(zhuǎn)譯器106指令配送器;108指令譯碼器;114執(zhí)行單元;116微碼單元;118、158修正數(shù)據(jù)保險絲數(shù)值;122重設(shè)微碼;124、198控制硬件;126、166數(shù)據(jù)保險絲數(shù)值;128、168錯誤偵測與修正保險絲數(shù)值;132、193錯誤偵測與修正保險絲;134控制值;136保險絲燒熔電壓輸入;144暫存裝置;152可修正數(shù)據(jù)保險絲;164控制值;172保險絲;174特定模塊緩存器;181重設(shè)時保險絲測試選項的保險絲數(shù)值;182、184、188簽章;183修正簽章值;185、186簽章補碼;191掃描緩存器;192不可修正數(shù)據(jù)保險絲;194計數(shù)數(shù)量;195數(shù)據(jù)保險絲;196微碼可讀取的緩存器;197微碼可寫入的緩存器;199狀態(tài)機。具體實施例方式本發(fā)明的實施例是使微處理器的微碼能夠讀取不可修正的保險絲。當(dāng)微處理器的一部分在制造時,便決定了其中將被熔斷的不可修正的保險絲數(shù)量,舉例來說,假設(shè)一微處理器的某一部份有1000個不可修正的保險絲,而其中的147個將被熔斷,接著,該熔斷數(shù)量被當(dāng)作簽章(signature)熔斷在可修正的保險絲的一集合中,該集合的保險絲可透過上述錯誤偵測與修正技術(shù)由微碼所修正。當(dāng)微處理器重設(shè)(reset)而執(zhí)行重設(shè)微碼時,微處理器讀取所有不可修正的保險絲并計數(shù)其中被熔斷的保險絲數(shù)量,然后比對計數(shù)的數(shù)量與讀取自可修正的保險絲的上述簽章(于可修正的保險絲在需要時進行修正之后)。若計數(shù)的數(shù)量不同于上述簽章,則不允許該部份離開重設(shè)程序、或?qū)⒋隋e誤輸出至一軟件可讀取的緩存器。圖1是根據(jù)本發(fā)明所述的微處理器的示意圖。微處理器100包括多個保險絲172,在一實施例中,保險絲172為多晶硅(polysilicon)保險絲,但其它保險絲技術(shù),例如金屬保險絲,亦可應(yīng)用在本發(fā)明的實施例中。保險絲172雖然是實質(zhì)相同的結(jié)構(gòu),但邏輯上則可分為兩個群組,即錯誤偵測與修正保險絲132與數(shù)據(jù)保險絲,而數(shù)據(jù)保險絲又可再分為可修正數(shù)據(jù)保險絲152與不可修正數(shù)據(jù)保險絲192,某一特定的保險絲172是否被配置為數(shù)據(jù)保險絲或錯誤偵測與修正保險絲132是依據(jù)微處理器100的制造者(manufacturer)所使用的錯誤偵測與修正算法而定。保險絲172設(shè)定使微處理器100的制造者可于輸入136提供規(guī)定電壓(prescribedvoltage)以選擇性地去個別熔斷保險絲172。在一實施例中,制造者透過聯(lián)合測試行動小組(JointTestActionGroup,JTAG)掃描接口指定(specify)要熔斷哪個保險絲172。在一實施例中,每個保險絲172的一面為接地、而另一面則連接至一主動(active)裝置,例如微處理器100可讀取的一晶體管。因此,若一保險絲172為非熔斷時,則具有傳導(dǎo)性且可讀取到一低電壓(轉(zhuǎn)換后則為二進制0);反之,若一保險絲172為已熔斷時,則不具有傳導(dǎo)性且可讀取到一高電壓(轉(zhuǎn)換后則為二進制1)。在其它實施例中,可使用相反的二進制值轉(zhuǎn)換法。雖然保險絲172可于制造過程中被個別熔斷且每個保險絲172構(gòu)成(constitute)了單一二進制數(shù)字(位),但邏輯上,可修正數(shù)據(jù)保險絲152則視為單一實體(entity)并具有被熔斷的單一共同(collective)數(shù)值,而錯誤偵測與修正保險絲132則視為另一單一實體并具有被熔斷的單一共同數(shù)值。制造者使用一錯誤偵測與修正算法去計算熔斷至錯誤偵測與修正保險絲132的單一共同數(shù)值,該錯誤偵測與修正算法是將該單一共同數(shù)值熔斷至可修正數(shù)據(jù)保險絲152作為其輸入,相關(guān)步驟細節(jié)于后續(xù)作進一步描述。微處理器100亦包括控制硬件124,控制硬件124是用以接收并儲存控制值134、以及將控制值134提供至微處理器100的電路以控制微處理器100的運作??刂朴布?24可包括以下組件用以修補微碼的微碼修補硬件;微處理器100的特征控制緩存器,用以使能或中止微處理器100的功能或功能單元、以及/或用以指示微處理器100具有哪些功能或功能單元,其中微處理器100的特征或功能單元可為浮點單元(FloatingPointUnit,F(xiàn)PU)、矩陣數(shù)學(xué)擴展(MatrixMathextension,MMX)單元、單指令多數(shù)據(jù)流擴展(StreamingSIMDExtensions,SSE)單元、高速緩存與轉(zhuǎn)譯后備緩沖區(qū)(TranslationLookasideBuffer,TLB)、呼叫/返回(call/return)堆棧、隨機數(shù)產(chǎn)生器、加密引擎、混合乘加(fused-multiply-add)指令功能、微碼修補相關(guān)功能、虛擬機器擴展(VirtualMachineextension,VMX)、效能監(jiān)控功能、處理器步進(stepping)與系列信息、預(yù)取(prefetch)功能、分支預(yù)測功能、分頁查表(table-walking)相關(guān)的功能、以及功率管理功能;微處理器100的設(shè)定緩存器,用以控制微處理器100中的一個或多個時鐘信號的頻率、控制微處理器100的電壓電平、或其它。需注意的是,除了上述組件,本發(fā)明的控制硬件124可包括的組件并不在此限制。在傳統(tǒng)的微處理器中,控制值是讀取自保險絲并被寫入控制硬件,而并沒有錯誤偵測與修正的優(yōu)點。如上所述,如果一熔斷保險絲發(fā)生保險絲再生長的情形而具有傳導(dǎo)性并被錯誤地讀取為0而非1,則該傳統(tǒng)的微處理器極有可能因為寫入不正確的值到控制硬件而將無法正常運作。然而,本發(fā)明的微處理器100亦包括錯誤偵測與修正保險絲132可用以偵測讀取自可修正數(shù)據(jù)保險絲152的一錯誤值,并修正該錯誤值從而使正確的數(shù)值能被寫入控制硬件,其中該錯誤值是由一再生長的保險絲172所引起。微處理器100更包括指令高速緩存102,用以高速緩存由微處理器100所提取并執(zhí)行的程序指令,該程序指令可包括諸如系統(tǒng)軟件或應(yīng)用程序等使用者程序指令。微處理器100還包括指令轉(zhuǎn)譯器104,用以自指令高速緩存102接收指令,并于指令為微處理器100的宏指令集的指令時,將該指令(亦可稱為宏指令)轉(zhuǎn)譯成實際由微處理器100的執(zhí)行單元114所執(zhí)行的一個或多個微指令。然而,當(dāng)指令為微處理器100的宏指令集的指令時,指令轉(zhuǎn)譯器104將控制移交(transfer)給微指令的微碼序列,其中該微碼序列系儲存于微碼單元116的微碼只讀存儲器中。微碼單元116的微碼只讀存儲器亦儲存重設(shè)微碼122的微指令的序列。當(dāng)微處理器100重設(shè)時,微碼單元116開始提取并執(zhí)行重設(shè)微碼122的微指令,重設(shè)微碼122執(zhí)行各式運算以初始化微處理器100去準(zhǔn)備開始提取并執(zhí)行使用者程序指令。特別是,重設(shè)微碼122根據(jù)控制值134編程(program)微處理器100的控制硬件124。微處理器100根據(jù)讀取自保險絲172的數(shù)值產(chǎn)生控制值134,其中保險絲172于制造過程中熔斷。然而,如上所述,保險絲172在被熔斷后仍有可能發(fā)生再生長的情況而使其值從熔斷值改變?yōu)槲慈蹟嘀?,微處理?00亦包括錯誤偵測與修正保險絲132,用以使能微處理器100以修正讀取自可修正數(shù)據(jù)保險絲152的數(shù)值中的錯誤,以下將詳細說明。用以指定不可修正數(shù)據(jù)保險絲192于制造過程中被熔斷的數(shù)量的簽章188是在可修正數(shù)據(jù)保險絲152被熔斷時儲存于可修正數(shù)據(jù)保險絲152中。有利地,重設(shè)微碼122計數(shù)不可修正數(shù)據(jù)保險絲192中被熔斷的保險絲數(shù)量,并比對計數(shù)數(shù)量與簽章188或于制造過程中儲存于可修正數(shù)據(jù)保險絲152中的被熔斷的不可修正數(shù)據(jù)保險絲192數(shù)量。此一機制使重設(shè)微碼122能夠偵測到不可修正數(shù)據(jù)保險絲192中的再生長保險絲,后續(xù)將作詳細說明。微處理器100亦包括指令配送器(dispatcher)106,用以自指令轉(zhuǎn)譯器104或微碼單元116接收微指令,例如重設(shè)微碼122的指令,并將微指令配送至執(zhí)行單元114。執(zhí)行單元114包括一或多個整數(shù)單元,該整數(shù)單元包括用以執(zhí)行算術(shù)與邏輯運算的算術(shù)與邏輯單元,特別是,執(zhí)行單元114包括用以針對輸入操作數(shù)執(zhí)行布爾異或(BooleanX0R)運算,其中重設(shè)微碼122是使用布爾異或運算去執(zhí)行錯誤偵測與修正算法以偵測并修正讀取自保險絲172的數(shù)值的錯誤。此外,執(zhí)行單元114更用以針對輸入操作數(shù)執(zhí)行算術(shù)運算,其中重設(shè)微碼122是使用該算術(shù)運算去計數(shù)不可修正數(shù)據(jù)保險絲192中的熔斷保險絲數(shù)量并比對計數(shù)的數(shù)量與儲存于可修正數(shù)據(jù)保險絲152的簽章188,以偵測不可修正數(shù)據(jù)保險絲192中發(fā)生的保險絲再生長錯誤。執(zhí)行單元114亦執(zhí)行指令以自控制硬件124讀取數(shù)據(jù)與寫入數(shù)據(jù)至控制硬件124。執(zhí)行單元114更執(zhí)行指令以自暫存裝置144讀取數(shù)據(jù)與寫入數(shù)據(jù)至?xí)捍嫜b置144。在一實施例中,暫存裝置144可為一隨機存取存儲器(RandomAccessMemory,RAM)。特別是,根據(jù)圖3所示,重設(shè)微碼122讀取可修正數(shù)據(jù)保險絲152并將讀取的數(shù)值寫入暫存裝置144作為數(shù)據(jù)保險絲數(shù)值126、讀取錯誤偵測與修正保險絲132并將讀取的數(shù)值寫入暫存裝置144作為錯誤偵測與修正保險絲數(shù)值128、以及讀取數(shù)據(jù)保險絲數(shù)值126與錯誤偵測與修正保險絲數(shù)值128以產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值118,其中重設(shè)微碼122將修正數(shù)據(jù)保險絲數(shù)值118寫入暫存裝置144并接著將之讀取出來以供寫入控制硬件124之用。修正數(shù)據(jù)保險絲數(shù)值118包括讀取自可修正數(shù)據(jù)保險絲152的簽章188的修正簽章值183。最后,由重設(shè)微碼122所計數(shù)的不可修正數(shù)據(jù)保險絲192中的熔斷保險絲數(shù)量儲存于暫存裝置144,后續(xù)將作詳細說明。在讀取完保險絲172、于需要時修正完數(shù)據(jù)保險絲數(shù)值126、寫入至控制硬件124、以及開始提取并執(zhí)行使用者程序指令之后,微處理器100為響應(yīng)使用者程序指令請求讀取或?qū)懭肟刂朴布?24,而讀取或?qū)懭氩糠值目刂朴布?24。在一實施例中,使用者程序指令為x86架構(gòu)的特定模塊緩存器讀取(ReaDfromModel-SpecificRegister,RDMSR)指令、以及特定模塊緩存器寫入(WritetoModel-SpecificRegister,WRMSR)指令。如上所述,可修正數(shù)據(jù)保險絲152與不可修正數(shù)據(jù)保險絲192之間的一差異為不可修正數(shù)據(jù)保險絲192的數(shù)值164是直接被提供至電路,而未經(jīng)過重設(shè)微碼122使用錯誤偵測與修正保險絲132去修正。關(guān)于不可修正數(shù)據(jù)保險絲192的使用包括以下步驟,但本發(fā)明不限于此。若微處理器100的制造者決定高速緩存存儲器中的一行(column)位單元(bitcell)損壞時,他/她可將不可修正數(shù)據(jù)保險絲192中的一者熔斷以使高速緩存存儲器使用另一行冗余位單元而非使用損壞那一行位單元。高速緩存存儲器可包括以下組件,但本發(fā)明不局限于此一Ll高速緩存數(shù)據(jù)陣列、一L2高速緩存卷標(biāo)陣列、以及一分支目標(biāo)地址高速緩存陣列。某些不可修正數(shù)據(jù)保險絲192控制以下設(shè)定針對微處理器100的各式鎖相回路的工作周期(dutycycle)或其它控制;電荷泵浦(chargepump)設(shè)定;鎖相回路的時鐘頻率;輸入/輸出焊接點(input/outputpad)的設(shè)定,包括允許多任務(wù)偵錯的功能;選擇時鐘是否于微處理器100中被搬移以增加頻率;避免保險絲失效時所用的冗余保險絲;僅用于制造過程中的辨識用途的保險絲;設(shè)定電壓識別號碼的接腳(Pin);以及用以控制電壓與時鐘倍增器(multiplier)的總線選擇(BusSELect,BSEL)接腳。圖2是根據(jù)本發(fā)明所述用以制造如圖1所示的微處理器100的操作流程圖。流程開始于方塊201。于方塊201,微處理器100的制造者決定簽章188,意即不可修正數(shù)據(jù)保險絲192中將被熔斷的保險絲數(shù)量。流程繼續(xù)進行至方塊202。于方塊202,處理器100的制造者決定要熔斷至可修正數(shù)據(jù)保險絲152中的控制值,每個可修正數(shù)據(jù)保險絲152構(gòu)成單一位,該單一位的二進制值則依據(jù)對應(yīng)的保險絲為熔斷或非熔斷而設(shè)為0或1。自每個可修正數(shù)據(jù)保險絲152所讀取的位值不是被直接寫入控制硬件124的一位、就是用以產(chǎn)生將被寫入控制硬件124的一位的位值,可對照如圖3的方塊132與316所示。因此,于方塊202,該制造者決定哪些保險絲172將配置為可修正數(shù)據(jù)保險絲152、哪些保險絲172將配置為錯誤偵測與修正保險絲132,將每個可修正數(shù)據(jù)保險絲152與控制硬件124的一位關(guān)聯(lián)在一起,并決定想要熔斷至可修正數(shù)據(jù)保險絲152的位值。舉例來說,該制造者可決定用一特定的可修正數(shù)據(jù)保險絲152去儲存用以選擇性地開關(guān)一預(yù)設(shè)微碼值,該預(yù)設(shè)微碼值是控制微處理器100的一特定分支預(yù)測功能是否開啟,該制造者亦可決定是否熔斷該特定的可修正數(shù)據(jù)保險絲152以提供該位值去開關(guān)預(yù)設(shè)微碼值。該制造者針對每個可修正數(shù)據(jù)保險絲152執(zhí)行以上步驟。以產(chǎn)生熔斷至錯誤偵測與修正保險絲132的位值的角度來看(請見以下方塊204的敘述),雖然每個可修正數(shù)據(jù)保險絲152皆構(gòu)成單一位,但全部的可修正數(shù)據(jù)保險絲152被視為單一實體并具有被熔斷的單一共同數(shù)值、或被視為多個各自具有單一共同數(shù)值的字(word),以下將于方塊204作進一步敘述。如此一來,單一共同數(shù)值于制造微處理器100之前以及制造完后運作之前就已預(yù)先設(shè)定。另外,該控制值包括于方塊201中所決定且將于方塊206被熔斷至可修正數(shù)據(jù)保險絲152的簽章188。流程繼續(xù)進行至方塊204。于方塊204,制造者針對于方塊202中所決定的控制值使用錯誤偵測與修正算法,以計算出欲熔斷至錯誤偵測與修正保險絲132的錯誤偵測與修正值。在一實施例中,錯誤偵測與修正算法可為例如該領(lǐng)域熟知的單錯修正雙錯偵測(SignelErrorCorrectionDoubleErrorDetection,SECDED)的(72,64)漢明碼(Hammingcode)算法;然而,本發(fā)9明的其它實施例亦可使用其它的錯誤偵測與修正算法。以下將說明的是垂直碼(verticalcode)算法。在圖3所示的實施例中,于方塊306,圖1的重設(shè)微碼122以軟件執(zhí)行錯誤偵測與修正算法以讀取保險絲172、以及偵測與修正其中的錯誤。因此,在此實施例中,制造者在方塊204使用了垂直碼算法以計算錯誤偵測與修正值,且重設(shè)微碼122在方塊306使用了垂直碼算法。在一實施例中,被用作為可修正數(shù)據(jù)保險絲152與錯誤偵測與修正保險絲132的保險絲172被設(shè)置為58個記憶庫(bank),每個記憶庫具有64個保險絲,意即每個記憶庫為64位寬。前50個記憶庫在邏輯上是被配置為錯誤偵測與修正保險絲132的記憶庫,因此,在邏輯上,方塊202所決定的控制值為50個控制字,每個控制字為64位,且錯誤偵測與修正算法產(chǎn)生了8個錯誤偵測與修正字,每個錯誤偵測與修正字為64位。制造者針對50個控制字的位截片(bitslices)使用該錯誤偵測與修正算法,也就是說,制造者針對50個控制字的第0個位使用該錯誤偵測與修正算法以產(chǎn)生8個錯誤偵測與修正字的第0個位、針對50個控制字的第1個位使用該錯誤偵測與修正算法以產(chǎn)生8個錯誤偵測與修正字的第1個位、以此類推(由于該錯誤偵測與修正算法假設(shè)有64個輸入位以產(chǎn)生8個錯誤偵測與修正字符但總共僅有50個控制字,所以制造者假設(shè)“遺缺的(missing),,14個控制字中所有的位皆為0)。另外,如美國專利申請案12/609,207中的圖4與圖5所示,另一實施例則使用了水平碼算法。在該另一實施例中,一硬件錯誤偵測與修正單元以硬件執(zhí)行錯誤偵測與修正算法以讀取被用作為可修正數(shù)據(jù)保險絲152與錯誤偵測與修正保險絲132的保險絲172,并偵測與修正其中的錯誤。因此,在此實施例中,制造商使用一水平碼算法以計算錯誤偵測與修正值,且錯誤偵測與修正單元使用了該水平碼算法。在一實施例中,可修正數(shù)據(jù)保險絲152與錯誤偵測與修正保險絲132被設(shè)置為50個記憶庫,每個記憶庫具有72個保險絲,意即每個記憶庫為72位寬。在邏輯上,每個記憶庫中的前64個位被配置為可修正數(shù)據(jù)保險絲15,因此,在上個段落所述的實施例中,方塊202所決定的控制值在邏輯上而言為50個控制字,每個控制字為64位;然而,在此實施例中,錯誤偵測與修正算法產(chǎn)生了50個錯誤偵測與修正演字,每個錯誤偵測與修正字為8位。制造商針對逐個記憶庫使用該錯誤偵測與修正算法,也就是說,制造者針對關(guān)聯(lián)于記憶庫0的64位控制字使用該錯誤偵測與修正算法以產(chǎn)生關(guān)聯(lián)于記憶庫0的8位錯誤偵測與修正字、針對關(guān)聯(lián)于記憶庫1的64位控制字使用該錯誤偵測與修正算法以產(chǎn)生關(guān)聯(lián)于記憶庫1的8位錯誤偵測與修正字、以此類推。需注意的是,在上述垂直碼算法與水平碼算法的實施例中錯誤偵測與修正值是根據(jù)包括了方塊201所決定的簽章188的控制值所計算得到,且該控制值將于方塊206被燒熔至可修正數(shù)據(jù)保險絲152。流程繼續(xù)進行至方塊206。于方塊206,制造者將方塊202所決定的控制值燒熔至可修正數(shù)據(jù)保險絲152,并將方塊204所計算的錯誤偵測與修正值燒熔至錯誤偵測與修正保險絲132。此外,制造商將不可修正數(shù)據(jù)保險絲192燒熔,特別是燒熔掉在方塊201中決定數(shù)量的不可修正數(shù)據(jù)保險絲192。流程結(jié)束于方塊206。圖3是顯示圖1的微處理器100的運作流程圖。流程開始于方塊302。于方塊302,微處理器因重設(shè)而開始提取并執(zhí)行重設(shè)微碼122的指令。流程繼續(xù)進行至方塊304。于方塊304,重設(shè)微碼122讀取可修正數(shù)據(jù)保險絲152以及錯誤偵測與修正保險絲132,并將數(shù)據(jù)保險絲數(shù)值126以及錯誤偵測與修正保險絲數(shù)值128寫入暫存裝置144。從可修正數(shù)據(jù)保險絲152以及錯誤偵測與修正保險絲132所讀取出的數(shù)值包括簽章188,簽章188即為不可修正數(shù)據(jù)保險絲192中被燒熔的保險絲數(shù)量。在一實施例中,微處理器100的微指令集包括一指令用來將保險絲172的一記憶庫移至微處理器100的一通用緩存器(未繪示)、以及另一指令用來將一數(shù)值從通用緩存器移至?xí)捍嫜b置144。再者,其中一執(zhí)行單元114用以執(zhí)行上述指令。重設(shè)微碼122使用關(guān)聯(lián)于保險絲172的每個記憶庫的一序列(asequence),該序列包括一指令用以讀取每個保險絲172的記憶庫、以及另一指令用來將數(shù)據(jù)保險絲數(shù)值126以及錯誤偵測與修正保險絲數(shù)值128寫入暫存裝置144。流程繼續(xù)進行至方塊306。于方塊306,重設(shè)微碼122針對暫存裝置144中的數(shù)據(jù)保險絲數(shù)值126以及錯誤偵測與修正保險絲數(shù)值128使用錯誤偵測與修正算法,以決定數(shù)據(jù)保險絲數(shù)值126中是否有錯誤,若有,則接著決定該錯誤是否可修正。在一實施例中,微處理器100的微指令集包括一指令用來將一數(shù)值從暫存裝置144移至一通用緩存器、多個指令用以針對通用緩存器中的數(shù)值執(zhí)行算術(shù)與邏輯運算(例如異或、移位(shift)、或旋轉(zhuǎn)(rotate))、以及另一指令用來將一數(shù)值從通用緩存器移至?xí)捍嫜b置144。再者,其中一執(zhí)行單元114用以執(zhí)行上述指令,重設(shè)微碼122使用上述指令的一序列去針對暫存裝置144中的數(shù)據(jù)保險絲數(shù)值126以及錯誤偵測與修正保險絲數(shù)值128使用錯誤偵測與修正算法,以決定數(shù)據(jù)保險絲數(shù)值126中是否有錯誤,若有,則接著決定該錯誤是否可修正。在一實施例中,重設(shè)微碼122使用如圖2所述的一垂直碼算法。流程繼續(xù)進行至方塊308。于決策方塊308,重設(shè)微碼122根據(jù)方塊306所執(zhí)行的運算決定數(shù)據(jù)保險絲數(shù)值126中是否有錯誤,若有,流程繼續(xù)進行至方塊314;若否,則流程繼續(xù)進行至方塊312。于方塊312,重設(shè)微碼122使用數(shù)據(jù)保險絲數(shù)值126將控制值134寫入控制硬件124。在一實施例中,重設(shè)微碼122將數(shù)據(jù)保險絲數(shù)值126直接寫入控制硬件124。在另一實施例中,重設(shè)微碼122修改數(shù)據(jù)保險絲數(shù)值126以產(chǎn)生控制值134供寫入控制硬件124。舉例來說,在一實施例中,重設(shè)微碼122將數(shù)據(jù)保險絲數(shù)值126與一預(yù)設(shè)控制值作異或運算,其中該預(yù)設(shè)控制值是儲存于重設(shè)微碼122中的一常數(shù),然后重設(shè)微碼122將所得的結(jié)果寫入控制硬件124,如此一來,使得數(shù)據(jù)保險絲數(shù)值126成為一開關(guān)機制以開關(guān)微碼預(yù)設(shè)控制值。另外,由于控制硬件124可為上述各種硬件中的任何一者(例如微碼修補硬件、特征控制緩存器、以及設(shè)定緩存器),且數(shù)據(jù)保險絲數(shù)值126可具有對應(yīng)于上述各種硬件的不同部分(portion)的控制值,所以重設(shè)微碼122可將某些部分的數(shù)據(jù)保險絲數(shù)值126直接寫入某些部分的控制硬件124,并可將其它部分的數(shù)據(jù)保險絲數(shù)值126在寫入控制硬件124之前進行修改。再者,應(yīng)可理解重設(shè)微碼122可執(zhí)行一序列的指令以自暫存裝置144讀取數(shù)據(jù)保險絲數(shù)值126,并將上述部分(或上述修改的部分)的數(shù)據(jù)保險絲數(shù)值126寫入控制硬件124。流程繼續(xù)進行至方塊322。于決策方塊314,重設(shè)微碼122使用錯誤偵測與修正保險絲數(shù)值128以決定方塊306或方塊308所偵測到的錯誤是否為可修正的,若是,流程繼續(xù)進行至方塊316;若否,則流程繼續(xù)進行至方塊318。于決策方塊316,重設(shè)微碼122使用錯誤偵測與修正算法去修正錯誤的數(shù)據(jù)保險絲數(shù)值126,以產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值118,然后使用修正數(shù)據(jù)保險絲數(shù)值118將控制值134寫入控制硬件124。需注意的是,不論重設(shè)微碼122是否將修正數(shù)據(jù)保險絲數(shù)值118當(dāng)作控制值134寫入控制硬件124,重設(shè)微碼122都會使用錯誤偵測與修正算法去修正錯誤的數(shù)據(jù)保險絲數(shù)值126以產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值118。也就是說,不論決策方塊308是否發(fā)現(xiàn)錯誤,重設(shè)微碼122都會產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值118,使暫存裝置144中的修正簽章值183可用以與決策方塊324中的計數(shù)數(shù)量194(將于后續(xù)作進一步說明)作比對。如上述方塊312的說明,重設(shè)微碼122可將修正數(shù)據(jù)保險絲數(shù)值118、或修正數(shù)據(jù)保險絲數(shù)值118的一部分在寫入控制硬件124之前作修改。如上述方塊304中所述,由于從可修正數(shù)據(jù)保險絲152以及錯誤偵測與修正保險絲132所讀取的數(shù)值包括簽章188,所以有利地,于方塊316,可將簽章188于需要時進行修正以作為數(shù)據(jù)保險絲數(shù)值修正的一部份,若簽章188為不可修正的,此一條件將于決策方塊314中被偵測出,使方塊318能適當(dāng)?shù)靥幚泶瞬豢尚拚腻e誤。流程繼續(xù)進行至方塊322。于方塊318,重設(shè)微碼122避免微處理器100離開重設(shè)程序。若流程由決策方塊314進行至方塊318,是因為數(shù)據(jù)保險絲數(shù)值126的錯誤中的位數(shù)量過多而微處理器100無法使用錯誤偵測與修正保險絲數(shù)值128去進行修正,也就是說,重設(shè)微碼122避免微處理器100提取并執(zhí)行使用者程序指令。在另一實施例中,重設(shè)微碼122允許微處理器100離開重設(shè)程序,意即,允許微處理器100提取并執(zhí)行例如基本輸出輸入系統(tǒng)(BIOS)或其它系統(tǒng)軟件的使用者程序指令;然而,重設(shè)微碼122傳送一錯誤狀態(tài)至系統(tǒng)軟件以告知關(guān)于數(shù)據(jù)保險絲數(shù)值126中不可修正的錯誤。若流程是由決策方塊324進行至方塊318(將于后續(xù)作進一步說明),重設(shè)微碼122則避免微處理器100離開重設(shè)程序,因為重設(shè)微碼122決定了從暫存裝置144中的修正數(shù)據(jù)保險絲數(shù)值118所讀取的簽章188與方塊322中的計數(shù)數(shù)量194并不相同。流程結(jié)束于方塊318。于方塊322,重設(shè)微碼122讀取不可修正數(shù)據(jù)保險絲192、計數(shù)其中被熔斷的保險絲數(shù)量、以及將計數(shù)數(shù)量194寫入暫存裝置144,上述計數(shù)數(shù)量194為圖1中所示的記數(shù)的已燒熔不可修正保險絲的數(shù)量194。流程繼續(xù)進行至決策方塊324。于決策方塊324,重設(shè)微碼122自暫存裝置144中的修正數(shù)據(jù)保險絲數(shù)值118讀取修正簽章值183,并比對修正簽章值183與方塊322中的計數(shù)數(shù)量194以決定兩者是否相同,若不同,流程繼續(xù)進行至方塊318;若相同,則流程繼續(xù)進行至方塊326。在另一實施例中,重設(shè)微碼122自暫存裝置144中的數(shù)據(jù)保險絲數(shù)值126讀取該簽章,并比對該簽章與方塊322中的計數(shù)數(shù)量194是否相同,也就是說,重設(shè)微碼122所使用的是在方塊306中可能未使用錯誤偵測與修正算法進行修正的簽章。于方塊326,重設(shè)微碼122使微處理器100開始執(zhí)行使用者程序指令。流程結(jié)束于方塊326。關(guān)于圖1至圖3所述的不可修正數(shù)據(jù)保險絲192的再生長問題的解決方法,需注意到簽章188是被熔斷至保險絲172中,而保險絲172可能會再生長。簽章188再生長的問題有一部份已根據(jù)本發(fā)明一實施例而有所改善,因為簽章188可被熔斷至可修正數(shù)據(jù)保險絲152,而可修正數(shù)據(jù)保險絲152是經(jīng)過上述錯誤偵測與修正方案(scheme)所執(zhí)行的錯誤偵測。然而,錯誤偵測與修正方案在能偵測的錯誤位上存在限制,因此,有可能當(dāng)過多的可修正數(shù)據(jù)保險絲152發(fā)生再生長時,會使得無法偵測到簽章188中的錯誤。針對此問題,12以下將根據(jù)圖4至圖6作進一步說明。更具體說明,該問題是透過將簽章188以及該簽章的布爾補碼186(請見圖4)燒熔至可修正數(shù)據(jù)保險絲152。然后再從可修正數(shù)據(jù)保險絲152讀取簽章188以及該簽章的布爾補碼186,針對簽章188執(zhí)行布爾補碼運算以產(chǎn)生一結(jié)果,并且比對該結(jié)果與讀取自可修正數(shù)據(jù)保險絲152的布爾補碼186。若比對結(jié)果不相同,表示偵測到錯誤。由于為了不偵測到簽章188的錯誤,保險絲172中的簽章188與其補碼186需要將自己的狀態(tài)反向(invert),所以此解決方法可能比圖1至圖3所示的錯誤偵測與修正方案更為可靠,而這則需要使簽章188中的一保險絲172從熔斷狀態(tài)改為未熔斷狀態(tài)(如保險絲再生長),且使補碼186中對應(yīng)位的保險絲172從未熔斷狀態(tài)改為熔斷狀態(tài),反之亦然。然而,盡管前述已清楚評述了關(guān)于保險絲172由熔斷狀態(tài)改為未熔斷狀態(tài)的問題(即本發(fā)明主要欲解決的問題),但尚未評述關(guān)于保險絲172由未熔斷狀態(tài)改為熔斷狀態(tài)的狀況。因此,簽章方案/簽章的補碼方案不太可能不去偵測不可修正數(shù)據(jù)保險絲192的簽章188中的錯誤。圖4是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖4的微處理器100類似于圖1的微處理器100,故在此僅針對新增以及/或不同的組件作說明。其中一個差異是可修正數(shù)據(jù)保險絲152不僅包括代表不可修正數(shù)據(jù)保險絲192中的熔斷保險絲數(shù)量的簽章188,亦包括了代表簽章188的布爾反轉(zhuǎn)值的簽章補碼186。此外,自可修正數(shù)據(jù)保險絲152被讀取至?xí)捍嫜b置144的數(shù)據(jù)保險絲數(shù)值126不僅包括簽章184,還包括了簽章補碼185。再者,重設(shè)微碼122計算出簽章184的補碼以作為簽章182的補碼。圖5是顯示制造圖4的微處理器100的運作流程圖。流程開始于方塊201。于方塊201,微處理器100的制造者確定一簽章,該簽章為不可修正數(shù)據(jù)保險絲192中將被熔斷的保險絲數(shù)量。且微處理器100的制造者確定該簽章的補碼。流程繼續(xù)進行至方塊202。于方塊202,微處理器100的制造者確定欲燒熔至可修正數(shù)據(jù)保險絲152的控制值。圖5的方塊202類似于圖2的方塊202,然而,需注意到的是該控制值不僅包括方塊201所決定的簽章,亦包括該簽章的補碼。流程繼續(xù)進行至方塊204。于方塊204,該制造者針對方塊202所確定的控制值使用錯誤偵測與修正算法,以計算將燒熔至錯誤偵測與修正保險絲132的錯誤偵測與修正值。圖5的方塊204類似于圖2的方塊204,然而,需注意到的是該錯誤偵測與修正值是根據(jù)圖5的方塊201確定的控制值所計算出來的,且該錯誤偵測與修正值包括該簽章與該簽章的補碼。流程繼續(xù)進行至方塊206。于方塊206,該制造者將方塊202所確定的控制值燒熔至可修正數(shù)據(jù)保險絲152,并將方塊204所計算的錯誤偵測與修正值燒熔至錯誤偵測與修正保險絲132,類似于圖2的方塊206。流程結(jié)束于方塊206。圖6是顯示圖4的微處理器100的運作流程圖。圖6所執(zhí)行的步驟除了以下特別指出的差異處之外,其它步驟則類似于圖3的步驟。于方塊304,由重設(shè)微碼122自可修正數(shù)據(jù)保險絲152讀取出并寫入至?xí)捍嫜b置144的數(shù)據(jù)保險絲數(shù)值126包括了簽章184與簽章補碼185。流程從方塊304繼續(xù)往下進行至新的方塊652。于方塊652,重設(shè)微碼122將來自暫存裝置144的簽章184作補碼運算以產(chǎn)生一結(jié)果,然后比對該結(jié)果與來自暫存裝置144的簽章補碼182。流程繼續(xù)進行至新的決策方塊654。于決策方塊654,重設(shè)微碼122決定方塊652之比對是否相同,若是,流程繼續(xù)往下進行方塊306;若否,則流程繼續(xù)往下進行方塊318,因為微處理器100已決定了簽章188以及/或簽章補碼186中發(fā)生了錯誤。圖4至圖6的實施例具有的一個優(yōu)點是不需要由錯誤檢查與修正(ErrorCheckingandCorrection,ECC)來修正保險絲172中的簽章188,但簽章補碼186提供了簽章188的完整性檢查。關(guān)于圖1至圖6的實施例所說明的不可修正數(shù)據(jù)保險絲192的再生長問題的解決方案,其測試是響應(yīng)處理器的重設(shè)而執(zhí)行。如果在重設(shè)時偵測到保險絲再生長的錯誤,解決方法之一就是把發(fā)生錯誤的部分取消(kill),意即,重設(shè)微碼122避免微處理器離開重設(shè)程序。然而,如果發(fā)生錯誤的部分自行取消,則整臺計算機對基本輸出輸入系統(tǒng)而言就是當(dāng)機的狀態(tài),因此對使用者而言也會是當(dāng)機狀態(tài),意即該計算機無法執(zhí)行任何程序代碼、無法發(fā)出嗶嗶的信號聲、無法開關(guān)信號燈、或產(chǎn)生任何影像信號告知使用者有錯誤發(fā)生。如此一來,則很難收集有意義的實地故障(fieldfailure)信息以供故障分析與解決。解決方法之二就是讓發(fā)生錯誤的部分繼續(xù)執(zhí)行并盡量嘗試回報錯誤。然而,處理器本身可得的錯誤回報機制(即退除(absent)任何執(zhí)行中的外部程序代碼)很有限,特別是因為處理器的重設(shè)碼并非可自由地寫入存儲器中,即使重設(shè)碼可自由地寫入存儲器中,基本輸出輸入系統(tǒng)也很可能會將它重寫掉。若重設(shè)時的處理器保險絲測試錯誤狀態(tài)將被保留起來,則基本輸出輸入系統(tǒng)必須立即于開始執(zhí)行時盡快讀取該錯誤狀態(tài),而這需要系統(tǒng)制造者愿意讓微處理器100的制造者在為處理器訂作的基本輸出輸入系統(tǒng)新增程序代碼,特別是用以讀取處理器所回報的錯誤狀態(tài)。然而,微處理器100的制造者可能無法在其所應(yīng)用的所有系統(tǒng)中都這么做。有個方法是讓保險絲測試成為使用者發(fā)起(user-initiated),而不是僅能夠由重設(shè)所發(fā)起。所以,微處理器100中新增了一個特定模塊緩存器,讓使用者軟件將一特定模塊緩存器寫入指令執(zhí)行至該特定模塊緩存器時,微處理器100執(zhí)行上述任何一種或同時執(zhí)行上述保險絲測試并報告?zhèn)蓽y到的錯誤。這使得使用者軟件能夠?qū)蓽y到的錯誤呈報給使用者,此外,這也使得使用者能夠選擇要繼續(xù)使用該系統(tǒng)或?qū)⒃撓到y(tǒng)關(guān)閉。再者,是否在重設(shè)時執(zhí)行保險絲測試乃是制造時可選用的一選項,其中是在制造時藉由選擇性地?zé)垡槐kU絲以指示該選項(例如已燒熔保險絲指示不在重設(shè)時執(zhí)行保險絲測試、非燒熔保險絲指示在重設(shè)時執(zhí)行保險絲測試)。然而,保險絲并非一定可靠,所以與其燒熔單一保險絲以選擇該選項,不如燒熔多個保險絲(如圖7的保險絲187中的四個保險絲)并針對該多個保險絲執(zhí)行或運算以決定選擇了哪個選項。即便選擇在重設(shè)時執(zhí)行保險絲測試,仍可透過特定模塊緩存器寫入指令選擇使用者發(fā)起的保險絲測試。圖7是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖7的微處理器100類似于圖1的微處理器100,故在此僅針對新增以及/或不同的組件作說明。其中一個差異是燒熔至可修正數(shù)據(jù)保險絲152的保險絲187為是否于重設(shè)時執(zhí)行保險絲測試的一選項,另一個差異則是重設(shè)微碼122不僅包括重設(shè)時的保險絲測試微碼例程(microcoderoutines),亦包括使用者發(fā)起的保險絲測試微碼例程。在一實施例中,重設(shè)時的保險絲測試微碼例程與使用者發(fā)起的保險絲測試微碼例程中的一有效部分為相同程序代碼。此外,自可修正數(shù)據(jù)保險絲152讀取至?xí)捍嫜b置144的數(shù)據(jù)保險絲數(shù)值126包括重設(shè)時的保險絲測試選項的保險絲數(shù)值181。再者,微處理器100包括可由使用者程序(例如基本輸出輸入系統(tǒng)或其它系統(tǒng)軟件)寫入的一特定模塊緩存器174,其中,特定模塊緩存器174是由使用者程序所寫入以使微處理器100執(zhí)行保險絲測試并回傳一錯誤狀態(tài)值至特定模塊緩存器174,讓使用者程序透過特定模塊緩存器讀取指令去讀取。最后,微處理器100的其它相關(guān)功能單元,諸如指令轉(zhuǎn)譯器104、指令譯碼器108、執(zhí)行單元114、以及重設(shè)微碼122,則被修改以譯碼并執(zhí)行導(dǎo)向至特定模塊緩存器174中的特定模塊緩存器寫入指令與特定模塊緩存器讀取指令,將于后續(xù)根據(jù)圖10與圖11作進一步說明。圖8是顯示制造圖7的微處理器100的運作流程圖。流程開始于方塊800。于方塊800,微處理器100的制造者決定是否燒熔圖7中的重設(shè)時保險絲測試選項的保險絲187。流程繼續(xù)進行至方塊201。于方塊201,微處理器100的制造者決定一簽章,該簽章為不可修正數(shù)據(jù)保險絲192中將被燒熔的保險絲數(shù)量。流程繼續(xù)進行至方塊202。于方塊202,微處理器100的制造者決定欲燒熔至可修正數(shù)據(jù)保險絲152的控制值,圖8的方塊202類似于圖2的方塊202,然而,需注意的是該控制值亦包括方塊800所決定的保險絲187,且該控制值將于方塊206中被燒熔至可修正數(shù)據(jù)保險絲152。流程繼續(xù)進行至方塊204。于方塊204,微處理器100的制造者針對方塊202所決定的控制值使用錯誤偵測與修正算法,以計算將燒熔至錯誤偵測與修正保險絲132的錯誤偵測與修正值。圖8的方塊204類似于圖2的方塊204,然而,需注意的是該錯誤偵測與修正值是根據(jù)方塊202所決定的控制值所計算得到的。流程繼續(xù)進行至方塊206。于方塊206,微處理器100的制造者將方塊202所決定的控制值燒熔至可修正數(shù)據(jù)保險絲152,并將方塊204所計算的錯誤偵測與修正值燒熔至錯誤偵測與修正保險絲132,類似于圖2中的方塊206。此外,該制造者燒熔不可修正數(shù)據(jù)保險絲192,特別是不可修正數(shù)據(jù)保險絲192中被燒熔的保險絲數(shù)量是在方塊201所決定。流程繼續(xù)進行至方塊206。圖9是顯示圖7的微處理器100的運作流程圖。圖9中所執(zhí)行的步驟除了以下將說明的差異之外,其余步驟則類似于圖3中所執(zhí)行的步驟。于方塊304自可修正數(shù)據(jù)保險絲152所讀取的數(shù)值亦包括如上述重設(shè)時的保險絲測試選項的保險絲數(shù)值。此外,流程從方塊304往下進行至新的方塊903。于方塊903,重設(shè)微碼122針對讀取自暫存裝置144的重設(shè)時保險絲測試選項的保險絲數(shù)值181執(zhí)行或運算以產(chǎn)生一選項位值。流程繼續(xù)進行至新的決策方塊905。于決策方塊905,重設(shè)微碼122決定方塊903所產(chǎn)生的選項位值是否指示進行重設(shè)時的保險絲測試,若是,流程繼續(xù)進行至方塊306;若否,則流程結(jié)束。最后,流程從決策方塊314的“否”分支進行至新的決策方塊917。于決策方塊917,重設(shè)微碼122決定不可修正的故障是由重設(shè)時的保險絲測試所偵測到、抑或由使用者發(fā)起的保險絲測試所偵測到。若是由重設(shè)時的保險絲測試偵測到,流程繼續(xù)進行至方塊318;若是由使用者發(fā)起的保險絲測試偵測到,則流程繼續(xù)進行至新的方塊919。于方塊919,使用者發(fā)起的保險絲測試的重設(shè)微碼122將錯誤狀態(tài)值加載至圖7中保險絲測試的特定模塊緩存器174。流程結(jié)束于方塊919。圖10是顯示圖7的微處理器100執(zhí)行特定模塊緩存器寫入指令的運作流程圖,其中,該特定模塊緩存器寫入指令被導(dǎo)向至圖7的特定模塊緩存器174。流程開始于方塊1002。于方塊1002,使用者程序執(zhí)行被導(dǎo)向至特定模塊緩存器174的一特定模塊緩存器寫入指令。流程繼續(xù)進行至方塊1004。于方塊1004,指令轉(zhuǎn)譯器104譯碼該特定模塊緩存器寫入指令,并將控制轉(zhuǎn)移至重設(shè)微碼122中的特定模塊緩存器寫入處理程序(WRMSRhanlder),該特定模塊緩存器寫入處理程序會調(diào)用使用者發(fā)起的保險絲測試微碼例程。流程繼續(xù)進行至方塊1006。于方塊1006,使用者發(fā)起的保險絲測試微碼例程執(zhí)行圖3、圖6、以及/或圖9中方塊306至方塊326所述的保險絲測試,特別是,重設(shè)微碼122根據(jù)方塊919的錯誤狀態(tài)填入(populate)保險絲測試的特定模塊緩存器174。流程結(jié)束于方塊1006。圖11是顯示圖7的微處理器100執(zhí)行特定模塊緩存器讀取指令的運作流程圖,其中,該特定模塊緩存器讀取指令被導(dǎo)向至圖7的特定模塊緩存器174。流程開始于方塊1102。于方塊1102,使用者程序執(zhí)行被導(dǎo)向至特定模塊緩存器174的一特定模塊緩存器讀取指令。流程繼續(xù)進行至方塊1104。于方塊1104,指令轉(zhuǎn)譯器104譯碼該特定模塊緩存器讀取指令,并將控制轉(zhuǎn)移至重設(shè)微碼122中的特定模塊緩存器讀取處理程序(RDMSRhanlder),該特定模塊緩存器讀取處理程序會將保險絲測試的特定模塊緩存器174中的數(shù)值復(fù)制到一般通用緩存器,例如EDX-EAX緩存器中,而EDX-EAX緩存器可由使用者程序所讀取。流程結(jié)束于方塊1104。雖然上述實施例是使用x86架構(gòu),但根據(jù)本發(fā)明的實施例所揭露的內(nèi)容當(dāng)可將本發(fā)明所述由使用者發(fā)起的保險絲測試的實施例稍作修改以應(yīng)用于其它架構(gòu)的處理器。微處理器中的保險絲所具有的廣闊應(yīng)用可實現(xiàn)許多重要的功能,因此需要有可靠的方法以得知何時發(fā)生保險絲再生長。圖7至圖11所示的實施例即藉由讓制造者能夠?qū)嵉厥占嘤杏玫氖д`數(shù)據(jù),來協(xié)助完成此目標(biāo),此外,亦可提供使用者一個較具意義的失誤指示,而不只是呈現(xiàn)一個當(dāng)機的系統(tǒng)。如以上實施例所述,當(dāng)微處理器啟動時,某些控制值(即不可修正的保險絲中的控制值)被直接掃描至硬件緩存器,而不是讓重設(shè)微碼使用錯誤偵測與修正技術(shù)去修正該控制值。在微處理器的一實施例中,微碼甚至無法讀取不可修正的保險絲。上述其它實施例則使不可修正的保險絲能夠被讀取以偵測其中的控制值是否有錯誤。然而,上述的實施例并未使偵測到的錯誤能夠被修正。以下將于圖12至圖14說明的實施例是使微碼能夠修正不可修正的保險絲,明確來說,這里所說的不可修正的保險絲包括了錯誤偵測與修正保險絲以及數(shù)據(jù)保險絲。重設(shè)時,不可修正的保險絲數(shù)值被讀取至各自關(guān)聯(lián)一保險絲記憶庫的掃描緩存器。然后,一狀態(tài)機將不可修正的數(shù)據(jù)與錯誤偵測與修正保險絲數(shù)值自掃描緩存器序列地掃描至一微碼可讀取的緩存器。該微碼于需要時修正數(shù)據(jù)保險絲數(shù)值,并將修正數(shù)值寫入一微碼可寫入的緩存器,使微碼可寫入的緩存器中的修正數(shù)值被序列地掃描回到保險絲記憶庫中的掃描緩存器。該微碼接著使掃描緩存器中的修正數(shù)值被序列地掃描至控制硬件(諸如高速緩存修正控制緩存器以及鎖相回路調(diào)整控制緩存器)。圖12是根據(jù)本發(fā)明另一實施例所述的微處理器100的示意圖。圖12的微處理器100類似于圖1的微處理器100,包括了一指令高速緩存102、指令轉(zhuǎn)譯器104、指令配送器106、執(zhí)行單元114、微碼單元116、重設(shè)微碼122、一保險絲燒熔電壓輸入136、以及暫存裝置144。圖12的微處理器100亦包括控制硬件124,控制硬件124用以接收并儲存一控制值164、以及用將控制值164提供至微處理器100的電路(circuits)以控制微處理器100的運作??刂朴布?24可控制以下步驟(但不限于此)挑選位單元的冗余行以取代高速緩存存儲器中位單元里損壞的一行;針對微處理器100的各式鎖相回路的工作周期或其它控制;電荷泵浦設(shè)定;鎖相回路的時鐘頻率;輸入/輸出焊接點的設(shè)定,包括允許多任務(wù)偵錯的功能;選擇時鐘是否于微處理器100中被搬移以增加頻率;避免保險絲失效時所用的冗余保險絲;僅用于制造過程中的辨識用途的保險絲;設(shè)定電壓識別號碼的接腳;以及用以控制電壓與時鐘倍增器的總線選擇接腳。處理器100還包括不可修正數(shù)據(jù)保險絲192,圖12的不可修正數(shù)據(jù)保險絲192包括數(shù)據(jù)保險絲195以及錯誤偵測與修正保險絲193,錯誤偵測與修正保險絲193系提供重設(shè)微碼122以修正數(shù)據(jù)保險絲195中的錯誤,例如由保險絲再生長所造成的錯誤,以下將作進一步說明。處理器100亦包括透過一并行接口耦接至數(shù)據(jù)保險絲195以及錯誤偵測與修正保險絲193的掃描緩存器191,微處理器100還包括一微碼可讀取的緩存器196與一微碼可寫入的緩存器197,且微碼可讀取的緩存器196與微碼可寫入的緩存器197皆耦接至執(zhí)行單元114。在一實施例中,微碼可讀取的緩存器196與微碼可寫入的緩存器197皆為64位寬。微處理器100亦包括狀態(tài)機199,狀態(tài)機199是由個別的雙向串行接口耦接至掃描緩存器191、微碼可讀取的緩存器196、微碼可寫入的緩存器197、以及控制硬件124。在一實施例中,狀態(tài)機199為通用片上處理器(CommonOn-chipProcessor,COP)用以使用公知的聯(lián)合測試行動小組機制去掃描儲存組件之間的序列位串流。在一實施例中,該串行接口是運作于微處理器100的核心時鐘頻率的一部分;該部分于一實施例中為八分之一。此具有一優(yōu)點,即不可修正數(shù)據(jù)保險絲192、狀態(tài)機199、以及控制硬件124之間的距離相對地為遠;此外,微碼可讀取的緩存器196與微碼可寫入的緩存器197是介接于微處理器100的平行域(如執(zhí)行單元114)與微處理器100的串行域(例如不可修正數(shù)據(jù)保險絲192、狀態(tài)機199、以及控制硬件124),并且與該平行域相對地為近、但與該串行域相對地為遠,其中該平行域以全核心時鐘頻率運作,而該串行域是以上述核心時鐘頻率的一部分運作。再者,重設(shè)微碼122用以執(zhí)行以下步驟讀取數(shù)據(jù)保險絲195并將讀取的數(shù)值寫入暫存裝置144作為數(shù)據(jù)保險絲數(shù)值166;讀取錯誤偵測與修正保險絲193并將讀取的數(shù)值寫入暫存裝置144作為錯誤偵測與修正保險絲數(shù)值168;以及讀取數(shù)據(jù)保險絲數(shù)值166與錯誤偵測與修正保險絲數(shù)值168以產(chǎn)生一修正數(shù)據(jù)保險絲數(shù)值158,其中修正數(shù)據(jù)保險絲數(shù)值158寫入暫存裝置144然后再從暫存裝置144讀出以供寫入微碼可寫入的緩存器197Z用ο圖13是根據(jù)本發(fā)明所述制造圖12的微處理器100的運作流程圖。圖12所示的17步驟類似于美國專利申請案12/609,207的圖2所述的步驟;然而,圖12的步驟是針對圖12的不可修正數(shù)據(jù)保險絲192(也就是數(shù)據(jù)保險絲195以及錯誤偵測與修正保險絲193)而執(zhí)行,而不是針對圖1的保險絲172而執(zhí)行。流程開始于方塊202。于方塊202,微處理器100的制造者決定欲熔斷至數(shù)據(jù)保險絲195的控制值,每個數(shù)據(jù)保險絲195構(gòu)成具有一二進制值的單一位,且其二進制值視對應(yīng)的數(shù)據(jù)保險絲195為已熔斷或未熔斷而設(shè)為0或1。讀取自數(shù)據(jù)保險絲195的位值將被掃描至控制硬件124的一位,以下將于圖14中進一步說明。因此,于方塊202,該制造者決定哪些不可修正數(shù)據(jù)保險絲192將被配置為數(shù)據(jù)保險絲195、而哪些不可修正數(shù)據(jù)保險絲192將被配置為錯誤偵測與修正保險絲193,并且該制造者將每個數(shù)據(jù)保險絲195關(guān)聯(lián)至控制硬件124的一位、以及決定欲熔斷至數(shù)據(jù)保險絲195的位值。該制造者針對每個數(shù)據(jù)保險絲195執(zhí)行以上步驟。以產(chǎn)生熔斷至錯誤偵測與修正保險絲193的數(shù)值的角度來看(進一步說明請見以下方塊204的敘述),雖然每個數(shù)據(jù)保險絲195皆構(gòu)成單一位,但全部的數(shù)據(jù)保險絲195可視為單一實體并具有被熔斷的單一共同數(shù)值、或被視為多個各自具有單一共同數(shù)值的字,以下將于方塊204作進一步說明。如此一來,單一共同數(shù)值是在制造微處理器100之前以及制造完后運作之前就已預(yù)先設(shè)定。流程由方塊202進行至方塊204。于方塊204,微處理器100的制造商針對方塊202所決定的控制值使用錯誤偵測與修正算法,以計算將燒熔至錯誤偵測與修正保險絲193的錯誤偵測與修正值,該錯誤偵測與修正算法可為上述的算法之一,包括圖2與圖3所述的垂直與水平碼算法。流程繼續(xù)進行至方塊206。于方塊206,該制造商將方塊202所決定的控制值燒熔至數(shù)據(jù)保險絲195,以及將方塊204所計算的錯誤偵測與修正值燒熔至錯誤偵測與修正保險絲193。流程結(jié)束于方塊206。圖14是顯示圖12的微處理器100的運作流程圖。圖14中某些步驟方塊在圖12中以圈畫的編號1至6標(biāo)示,并對照說明于以下敘述步驟1至步驟6。流程開始于方塊1402。于方塊1402,微處理器100因應(yīng)重設(shè)而開始提取并執(zhí)行重設(shè)微碼122的指令。流程繼續(xù)進行至方塊1404。于方塊1404,如圖12的步驟1所示,不可修正數(shù)據(jù)保險絲192數(shù)值(也就是數(shù)據(jù)保險絲195數(shù)值以及錯誤偵測與修正保險絲193數(shù)值)加載至掃描緩存器191。流程繼續(xù)進行至方塊1406。于方塊1406,如圖12的步驟2所示,狀態(tài)機199將方塊1404所加載的數(shù)據(jù)保險絲195數(shù)值序列地掃描至控制硬件124,使得微處理器100可根據(jù)來自數(shù)據(jù)保險絲195的起始值進行運作,即使數(shù)據(jù)保險絲195中的一個或多個保險絲可能發(fā)生再生長。這是必要的程序,因為微處理器100無法在控制硬件124沒有加載任何數(shù)值時正常地運作。在一實施例中,有1000個不可修正數(shù)據(jù)保險絲192以及將其讀入的有效的掃描緩存器191(每個掃描緩存器191為32位);掃描緩存器191以連續(xù)的方式序列地連接起來,使得數(shù)值能夠被序列地掃描進入或離開掃描緩存器191,從而省去有效的寫入硬件,寫入硬件需要使用一并行總線將每個掃描緩存器191連接至狀態(tài)機199或微處理器100的其它組件。流程繼續(xù)進行至方塊1408。于方塊1408,如圖12的步驟3所示,重設(shè)微碼122執(zhí)行指令使?fàn)顟B(tài)機199將數(shù)據(jù)保險絲195數(shù)值以及錯誤偵測與修正保險絲193數(shù)值自掃描緩存器191讀取至微碼可讀取的緩存器196。流程繼續(xù)進行至方塊1412。于方塊1412,如圖12的步驟4所示,重設(shè)微碼122讀取微碼可讀取的緩存器196,并將數(shù)據(jù)保險絲數(shù)值166以及錯誤偵測與修正保險絲數(shù)值168寫入暫存裝置144。然后,類似于圖3的方塊306,重設(shè)微碼122針對數(shù)據(jù)保險絲數(shù)值166以及錯誤偵測與修正保險絲數(shù)值168使用錯誤偵測與修正算法以決定數(shù)據(jù)保險絲數(shù)值166是否有錯誤,若是,則決定該錯誤是否可修正。流程繼續(xù)進行至方塊1414。于方塊1414,重設(shè)微碼122根據(jù)方塊1412所執(zhí)行的作業(yè)決定數(shù)據(jù)保險絲數(shù)值166中是否有不可修正的錯誤,若是,流程繼續(xù)進行至方塊1416;若否,則流程繼續(xù)進行至決策方塊1418。于方塊1416,因為數(shù)據(jù)保險絲數(shù)值166中的錯誤的位數(shù)量過多以致于無法使用微處理器100錯誤偵測與修正保險絲數(shù)值168去修正,所以重設(shè)微碼122避免微處理器100離開重設(shè)程序。也就是說,重設(shè)微碼122避免微處理器100去提取并執(zhí)行使用者程序指令。在另一實施例中,重設(shè)微碼122可允許微處理器100離開重設(shè)程序,意即去提取并執(zhí)行如基本輸出輸入系統(tǒng)或其它系統(tǒng)軟件的使用者程序指令;然而,類似于上述圖3的方塊318,重設(shè)微碼122會傳送一錯誤狀態(tài)至系統(tǒng)軟件以告知數(shù)據(jù)保險絲數(shù)值166中有一不可修正的錯誤。流程結(jié)束于方塊1416。于方塊1418,重設(shè)微碼122于需要時使用錯誤偵測與修正算法去修正錯誤的數(shù)據(jù)保險絲數(shù)值166以產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值158,并且如圖12的步驟5所示,將修正數(shù)據(jù)保險絲數(shù)值158寫入微碼可寫入的緩存器197,使?fàn)顟B(tài)機199將寫入至微碼可寫入的緩存器197的修正數(shù)據(jù)保險絲數(shù)值158序列地掃描回掃描緩存器191。在一實施例中,微處理器100的微指令集包括了使?fàn)顟B(tài)機199執(zhí)行上述作業(yè)的一指令。流程繼續(xù)進行至方塊1422。于方塊1422,如圖12的步驟6所示,重設(shè)微碼122使?fàn)顟B(tài)機199從掃描緩存器191將修正的數(shù)值掃描至控制硬件124,以使用修正數(shù)據(jù)保險絲數(shù)值158控制微處理器100的運作,而非使用方塊1406所掃描的初始值去控制微處理器100的運作。有利地是,如果在初始值中有任何可修正的錯誤,該錯誤于此也會被一并修正。流程繼續(xù)進行至方塊1424。于方塊1424,重設(shè)微碼122完成了微處理器100的初始化,然后讓微處理器100開始提取并執(zhí)行使用者程序指令。流程結(jié)束于方塊1424。在一實施例中,狀態(tài)機199自掃描緩存器191所接收到的數(shù)據(jù)保險絲195數(shù)值的一部分包括一地址信息,該地址信息是針對所關(guān)聯(lián)的數(shù)據(jù)指定控制硬件緩存器124中的一目的位置,也就是說,狀態(tài)機199處理數(shù)據(jù)保險絲195數(shù)值的該部分中的地址信息,并將該部分寫入該地址信息所指定的控制硬件緩存器124。在此實施例中,如圖12至圖14所述,重設(shè)微碼122修正數(shù)據(jù)保險絲數(shù)值166以產(chǎn)生修正數(shù)據(jù)保險絲數(shù)值158的步驟、以及使?fàn)顟B(tài)機199將修正數(shù)據(jù)保險絲數(shù)值158序列地掃描至控制硬件124的步驟意味著重設(shè)微碼122不僅修正了數(shù)據(jù)保險絲數(shù)值166的數(shù)據(jù)部分,亦有利地修正了數(shù)據(jù)保險絲數(shù)值166的地址部分。相較于其它實施例中,微碼自目的控制硬件緩存器讀取數(shù)值并使用錯誤偵測與修正保險絲數(shù)值以針對自目的控制硬件緩存器所讀取的數(shù)值執(zhí)行錯誤偵測與修正,此實施例具有其它的優(yōu)點例如由重設(shè)微碼122所執(zhí)行的錯誤偵測與修正的計算比較不復(fù)雜,且當(dāng)偵測到錯誤時需要修正的位也比較少。舉例說明,假設(shè)不可修正數(shù)據(jù)保險絲192是以位單元的一冗余行去取代一高速緩存存儲器中位單元里的一損壞行。假設(shè)高速緩存存儲器有1024行位單元,每一行在控制硬件124中具有一個6位緩存器用以指定64個冗余行中之一以取代一損壞行。也就是說,控制硬件124中有1024個可能的目的位置可供修正數(shù)據(jù)保險絲數(shù)值158的6位數(shù)據(jù)量寫入,以使用64個冗余行中之一取代一損壞行。因此,假設(shè)一設(shè)定具有數(shù)據(jù)保險絲195中64個16位的地址/數(shù)據(jù)保險絲集合,更具體來說,前10個位為一地址,指示目的的控制硬件124中1024個6位數(shù)據(jù)緩存器的哪個數(shù)據(jù)緩存器需要從預(yù)設(shè)的0值作修改(altered),最后6個位則為新的數(shù)據(jù)數(shù)值。在此范例中,圖12至圖14所示的實施例需要有足夠的錯誤偵測與修正保險絲193以偵測并修正數(shù)據(jù)保險絲數(shù)值166中的1024位(64*16)。然而,在另一實施例中,微碼是用以自目的控制硬件緩存器讀取數(shù)值并使用錯誤偵測與修正保險絲去執(zhí)行錯誤偵測與修正,由于該微碼不會知道是控制硬件中的哪個緩存器發(fā)生錯誤,所以為了偵測并修正一錯誤,該微碼則必須讀取全部1024個控制緩存器,意即6144(1024*6)個位,因此,此實施例比圖12至圖14所示的實施例需要更多錯誤偵測與修正保險絲。由上述說明可發(fā)現(xiàn),圖12至圖14所述的裝置與方法優(yōu)于圖1至圖11所述的裝置與方法,因為圖12至圖14所示的實施例可同時偵測并修正不可修正數(shù)據(jù)保險絲192中的錯誤,而圖1至圖11所示的實施例僅能用以偵測錯誤。圖12至圖14所述的重設(shè)時的測試亦可執(zhí)行為使用者發(fā)起的測試,類似于圖7至圖11所示的實施例。圖12至圖14所述的裝置與方法具有的一優(yōu)點是其使用了串行總線去連接掃描緩存器191、以及控制硬件198本質(zhì)上可減少將修正保險絲數(shù)值傳遞給控制硬件124所需的線路數(shù)量,這是因為不可修正數(shù)據(jù)保險絲192在空間上可置于遠離控制硬件124的地方,以及/或需要被寫入修正數(shù)值的控制硬件124的數(shù)量很龐大。此外,提供一機制供重設(shè)微碼122執(zhí)行錯誤偵測與修正大大地簡化了一解決方案的狀態(tài)機199,在該解決方案中,狀態(tài)機199執(zhí)行錯誤偵測與修正,或者在該解決方案中,錯誤偵測與修正是執(zhí)行于保險絲數(shù)值被加載掃描緩存器191之時。本發(fā)明雖以各種實施例揭露如上,然而其僅為范例參考而非用以限定本發(fā)明的范圍,任何熟習(xí)此項技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與潤飾。舉例來說,軟件可實現(xiàn)相關(guān)于本發(fā)明的裝置與方法的功能、制造、模塊化(modeling)、模擬(simulation)、描述(description)、以及/或測試等等。該軟件可使用一般程序設(shè)計語言(如C、C++)、硬件描述語言(HardwareDescriptionLanguage,HDL)(如VerilogHDL、VHDL等等)、或其它可得的程序來實作。且該軟件可配置于任何公知的計算機可使用媒體中,例如半導(dǎo)體、磁盤、或光盤(如只讀記憶光盤(CompactDiscRead-OnlyMemory,CD-ROM)、數(shù)字多功能光盤(DigitalVersatileDiscRead-OnlyMemory,DVD-ROM)等等)。本發(fā)明所述的裝置與方法的實施例可包括于一半導(dǎo)體知識產(chǎn)權(quán)核心(semiconductorintellectualpropertycore)中,例如微處理器核心(如嵌入于硬件描述語言中),再進一步轉(zhuǎn)換為硬件的集成電路產(chǎn)品。另外,本發(fā)明所述的裝置與方法可以硬件與軟件的一組合方式嵌入。因此,上述實施例并非用以限定本發(fā)明的范圍,本發(fā)明的保護范圍當(dāng)視后附的申請專利范圍所界定者為準(zhǔn)。特別是,本發(fā)明可實現(xiàn)于一微處理器裝置,且該微處理器裝置可使用于一般用途的計算機。最后,熟習(xí)此項技藝者應(yīng)當(dāng)可理解在不脫離本發(fā)明的精神和范圍內(nèi),以上述所揭露的實施例與概念設(shè)計出與本發(fā)明相同目的的其它架構(gòu)。權(quán)利要求一種微處理器,包括多個第一保險絲,根據(jù)一預(yù)定值被選擇性地熔斷,其中上述預(yù)定值用以供上述微處理器的電路以控制上述微處理器的運作;以及多個第二保險絲,根據(jù)錯誤偵測信息被選擇性地熔斷,其中上述錯誤偵測信息用以偵測上述第一保險絲中的一錯誤,該錯誤指示上述微處理器的一熔斷保險絲回傳一非熔斷二進制值,其中上述微處理器響應(yīng)一第一使用者程序指令,而根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。2.如權(quán)利要求1所述的微處理器,其中上述微處理器響應(yīng)上述第一使用者程序指令,而更產(chǎn)生一錯誤狀態(tài)值以指示是否存在上述第一保險絲中的上述錯誤,其中上述微處理器響應(yīng)一第二使用者程序指令,而回傳上述錯誤狀態(tài)值。3.如權(quán)利要求1所述的微處理器,其中于上述微處理器根據(jù)來自上述第二保險絲的錯誤偵測信息決定存在上述第一保險絲中的上述錯誤時,上述微處理器避免提取與執(zhí)行所有的使用者程序指令。4.如權(quán)利要求1所述的微處理器,更包括一微碼單元,用以根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。5.如權(quán)利要求1所述的微處理器,其中上述錯誤偵測信息包括由上述第一保險絲被選擇性地熔斷時根據(jù)上述預(yù)定值所計算出的一錯誤偵測與修正值,其中上述微處理器還通過使用上述錯誤偵測與修正值并根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤、以及于上述錯誤存在時根據(jù)上述錯誤偵測與修正值提供一修正的上述預(yù)定值至上述電路。6.如權(quán)利要求1所述的微處理器,其中上述錯誤偵測信息包括上述第一保險絲中被選擇性地熔斷的保險絲的一預(yù)定數(shù)量,其中上述微處理器還通過讀取上述第一保險絲以計數(shù)其中已熔斷的保險絲數(shù)量并比較計數(shù)的數(shù)量與上述預(yù)定數(shù)量,以根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。7.如權(quán)利要求1所述的微處理器,其中上述錯誤偵測信息包括上述第一保險絲中被選擇性地熔斷的保險絲的一預(yù)定數(shù)量、以及上述預(yù)定數(shù)量的一布爾補碼,其中上述微處理器還通過將上述預(yù)定數(shù)量進行布爾補碼運算以產(chǎn)生一結(jié)果并比較該結(jié)果與上述布爾補碼,以根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。8.—種測試方法,適用于執(zhí)行一微處理器的一使用者程序啟動的測試,包括于上述微處理器的運作中執(zhí)行一第一使用者程序指令;以及決定上述微處理器的多個第一保險絲中是否存在一錯誤指示出一熔斷保險絲回傳一非熔斷二進制值,其中上述第一保險絲根據(jù)一預(yù)定值被選擇性地熔斷,上述預(yù)定值用以供上述微處理器的電路以控制上述微處理器的運作;其中上述決定步驟是使用來自上述微處理器的多個第二保險絲的錯誤偵測信息執(zhí)行的,上述第二保險絲根據(jù)上述錯誤偵測信息被選擇性地熔斷;其中上述決定步驟的執(zhí)行是響應(yīng)上述第一使用者程序指令的執(zhí)行。9.如權(quán)利要求8所述的測試方法,更包括響應(yīng)上述決定步驟而產(chǎn)生一錯誤狀態(tài)值以指示上述第一保險絲中是否存在一熔斷保險絲回傳一非熔斷二進制值的上述錯誤;響應(yīng)一第二使用者程序指令的執(zhí)行而回傳上述錯誤狀態(tài)值。10.如權(quán)利要求8所述的測試方法,更包括于上述決定步驟指示上述第一保險絲中存在上述錯誤時,避免提取和執(zhí)行所有的使用者程序指令。11.如權(quán)利要求8所述的測試方法,其中上述錯誤偵測信息包括由上述第一保險絲被選擇性地熔斷時根據(jù)上述預(yù)定值所計算出的一錯誤偵測與修正值,其中上述決定步驟包括使用上述錯誤偵測與修正值以決定上述第一保險絲中是否存在上述錯誤;以及在決定存在錯誤時,使用上述錯誤偵測與修正值提供一修正的預(yù)定值至上述電路。12.如權(quán)利要求8所述的測試方法,其中上述錯誤偵測信息包括上述第一保險絲中被選擇性地熔斷的保險絲的一預(yù)定數(shù)量,其中上述決定步驟包括讀取上述第一保險絲以計數(shù)其中已熔斷的保險絲的數(shù)量;以及比較上述計數(shù)的數(shù)量與讀取自上述第二保險絲的上述預(yù)定數(shù)量。13.如權(quán)利要求8所述的測試方法,其中上述錯誤偵測信息包括上述第一保險絲中被選擇性地熔斷的保險絲的一預(yù)定數(shù)量、以及上述預(yù)定數(shù)量的一布爾補碼,其中上述決定步驟包括將讀取自上述第二保險絲的上述預(yù)定數(shù)量進行布爾補碼運算以產(chǎn)生一結(jié)果;以及比較該結(jié)果與讀取自上述第二保險絲的上述布爾補碼。14.一種測試方法,適用于實地測試一微處理器以決定該微處理器的多個保險絲是否有一個或多個已熔斷保險絲于被讀取時回傳非熔斷值,包括響應(yīng)上述微處理器的一重設(shè)而讀取上述保險絲中的一預(yù)定數(shù)量的保險絲;決定上述預(yù)定數(shù)量的保險絲是否指示應(yīng)針對上述保險絲執(zhí)行測試;在上述預(yù)定數(shù)量的保險絲指示應(yīng)針對上述保險絲執(zhí)行測試時,針對上述保險絲執(zhí)行測試以決定是否有一個或多個已熔斷保險絲于被讀取時不回傳熔斷值而是回傳非熔斷值;以及在上述預(yù)定數(shù)量的保險絲指示不應(yīng)針對上述保險絲執(zhí)行測試時,避免執(zhí)行上述測試。15.如權(quán)利要求14所述的測試方法,其中上述決定步驟包括將讀取自上述預(yù)定數(shù)量的保險絲的數(shù)值作布爾或運算,并決定布爾或運算后的結(jié)果是否為真。全文摘要一種微處理器及其所適用的測試方法。該微處理器包括多個第一保險絲,根據(jù)一預(yù)定值被選擇性地熔斷,其中上述預(yù)定值用以供上述微處理器的電路以控制上述微處理器的運作;以及多個第二保險絲,根據(jù)錯誤偵測信息被選擇性地熔斷,其中上述錯誤偵測信息用以偵測上述第一保險絲中的一錯誤,該錯誤指示上述微處理器的一熔斷保險絲回傳一非熔斷二進制值,其中上述微處理器響應(yīng)一第一使用者程序指令,而根據(jù)來自上述第二保險絲的錯誤偵測信息決定是否存在上述第一保險絲中的上述錯誤。文檔編號G06F11/22GK101930391SQ20101024379公開日2010年12月29日申請日期2010年7月30日優(yōu)先權(quán)日2009年8月7日發(fā)明者G·葛蘭·亨利,泰瑞·派克斯申請人:威盛電子股份有限公司