欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

微處理器及初始化微處理器的方法

文檔序號(hào):6599508閱讀:250來(lái)源:國(guó)知局

專利名稱::微處理器及初始化微處理器的方法
技術(shù)領(lǐng)域
:本發(fā)明有關(guān)于微處理器中熔線的利用,特別是有關(guān)于其中燒斷的熔線的再生長(zhǎng)。
背景技術(shù)
:現(xiàn)代的微處理器包括可以選擇性地在微處理器制造期間燒斷(blow)的熔線(fuse),借以燒入控制值,根據(jù)讀取自熔線的控制值可控制微處理器的操作。正常來(lái)說(shuō),當(dāng)讀取一個(gè)未燒斷的熔線時(shí),其會(huì)回傳一個(gè)二進(jìn)制的O,并且當(dāng)讀取一個(gè)燒斷的熔線時(shí),其會(huì)回傳一個(gè)二進(jìn)制的1(當(dāng)然這個(gè)規(guī)則是可以相反的)。然而發(fā)明人觀察微處理器的操作并且注意到燒斷的熔線可能會(huì)改變其回傳的數(shù)值;也就是說(shuō),縱使燒斷的熔線在制造期間被測(cè)試時(shí)會(huì)回傳正確的l,然而在一些實(shí)例中燒斷的熔線會(huì)間歇性地回傳不正確的O。這就稱為熔線再生長(zhǎng)(fusere-growth)。也就是說(shuō),隨著微處理器的連續(xù)操作,燒斷的熔線可能會(huì)改變其數(shù)值,以至于當(dāng)讀取熔線時(shí)讀到非燒斷的數(shù)值而不是已經(jīng)燒斷的數(shù)值。這類熔線再生長(zhǎng)的結(jié)果可能危害特定的應(yīng)用這些再生長(zhǎng)熔線中的數(shù)值的微處理器的后續(xù)操作。此外,再生長(zhǎng)熔線所引起的問(wèn)題可能在故障分析期間很難偵測(cè)。因此,需要提供當(dāng)再生長(zhǎng)熔線存在時(shí),可以使得微處理器連續(xù)正確地操作的方法。
發(fā)明內(nèi)容本發(fā)明提供一種微處理器。該微處理器包括一控制硬件,用于接收與儲(chǔ)存至少一控制值以及提供該控制值到該微處理器的至少一電路以控制該微處理器的操作。該微處理器還包括一第一多條熔線,根據(jù)一既定值選擇性地被燒斷。該微處理器又包括一第二多條熔線,根據(jù)一錯(cuò)誤校正值選擇性地被燒斷,該錯(cuò)誤校正值計(jì)算自燒入該第一多條熔線的該既定值。響應(yīng)于重置該微處理器,該微處理器用于讀取該第一多條熔線與該第二多條熔線;使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的一錯(cuò)誤;使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及使用校正后的數(shù)值將該控制值寫入該控制硬件。于另一層面,本發(fā)明提供一種初始化微處理器的方法。該方法包括讀取一第一多條熔線與一第二多條熔線,其中該第一多條熔線根據(jù)一既定值選擇性地被燒斷,該第二多條熔線根據(jù)一錯(cuò)誤校正值選擇性地被燒斷,該錯(cuò)誤校正值計(jì)算自燒入該第一多條熔線的該既定值。該方法還包括使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的一錯(cuò)誤。該方法還包括使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及使用校正后的數(shù)值將一控制值寫入一控制硬件,其中該控制硬件用于接收與儲(chǔ)存該控制值以及提供該控制值到該微處理器的至少一電路用以控制該微處理器的操作。該讀取、偵測(cè)、校正與使用的步驟響應(yīng)于該微處理器被重置而執(zhí)行。本發(fā)明可以在微處理器中存在再生長(zhǎng)熔線時(shí),使得微處理器連續(xù)正確地進(jìn)行操作。圖1為根據(jù)本發(fā)明一實(shí)施例的微處理器的框圖;圖2為根據(jù)本發(fā)明實(shí)施于制造圖1的微處理器的步驟的流程圖;圖3為根據(jù)本發(fā)明實(shí)施例的圖1的微處理器的操作的流程圖;圖4為根據(jù)本發(fā)明的另一實(shí)施例的微處理器的框圖;以及圖5為根據(jù)本發(fā)明的另一實(shí)施例的圖4的微處理器的操作的流程圖。附圖中符號(hào)的簡(jiǎn)單說(shuō)明如下100:微處理器102:指令快取104:指令轉(zhuǎn)譯器106:指令調(diào)度器114:執(zhí)行單元116:微碼單元118:校正的數(shù)據(jù)熔線值122:重置微碼程序124:控制硬件126:數(shù)據(jù)熔線值128:EDAC熔線值134:控制值144:臨時(shí)儲(chǔ)存器132:EDAC熔線136:電壓輸入端152:數(shù)據(jù)熔線172:熔線428:不可校正的錯(cuò)誤值438:不可校正的錯(cuò)誤指標(biāo)442:硬件校正的數(shù)據(jù)熔線值456:硬件EDAC單元202、204、206:方法步驟302、304、306、308、312、314、316、318:方法步驟502、504、506、508、514、516、518::方法步驟。具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下。參考圖1,圖1顯示根據(jù)本發(fā)明一實(shí)施例的微處理器100的框圖。微處理器100包括多條熔線172。于一實(shí)施例中,熔線172是多晶硅(polysilicon)熔線,然而其他熔線技術(shù),例如金屬熔線,亦可用于本發(fā)明。熔線172在邏輯上配置為兩個(gè)不同的群組(盡管實(shí)體上是相同的),亦即數(shù)據(jù)(data)熔線152和錯(cuò)誤偵測(cè)與校正(errordetectionandcorrection,EDAC)熔線132。熔線172被配置為數(shù)據(jù)熔線152或EDAC熔線132乃根據(jù)微處理器100的制造商所使用的特定EDAC演算法來(lái)決定。微處理器100的制造商可以從電壓輸入端136供應(yīng)規(guī)定電壓到微處理器100,以分別選擇性地?zé)龜嗳劬€172。于一實(shí)施例中,制造商通過(guò)JTAG掃描接口以指定哪些熔線172要被燒斷。于一實(shí)施例中,每個(gè)熔線172的一端接地,而另一端連接到主動(dòng)裝置(activedevice),例如連接到可被微處理器100所讀取的晶體管的輸入端。因此,假如熔線未燒斷,它將會(huì)導(dǎo)通且讀成低電壓(通常為二進(jìn)制的0);然而,假如熔線被燒斷,它將不會(huì)導(dǎo)通并且讀成高電壓(通常為二進(jìn)制的l)。其他實(shí)施例可考慮使用相反的二進(jìn)制規(guī)則。雖然,熔線172在制造期間可能分別被燒斷并且每個(gè)熔線172構(gòu)成單一的二進(jìn)制碼(位),在邏輯上數(shù)據(jù)熔線152可配置為多個(gè)組(bank),每一組具有多個(gè)數(shù)據(jù)熔線且每一組具有一多個(gè)位的控制值。相同地,EDAC熔線132可配置為多個(gè)組,每一組具有多個(gè)EDAC熔線且每一組具有一多個(gè)位的EDAC值。制造商使用燒入數(shù)據(jù)熔線152的控制值作為EDAC演算法的輸入以計(jì)算燒入EDAC熔線132的EDAC值。微處理器100也包括控制硬件124??刂朴布?24用于接收與儲(chǔ)存控制值134以及提供控制值134到微處理器100的各種電路以控制微處理器100的操作。控制硬件124可能包括但不限于微碼修補(bǔ)(patch)硬件、多個(gè)特征控制暫存器(featurecontrolregister)、組態(tài)暫存器(configurationregister)或結(jié)構(gòu)控制暫存器。可修補(bǔ)微碼的微碼修補(bǔ)硬件用于儲(chǔ)存微碼修補(bǔ)指令,響應(yīng)于微處理器100產(chǎn)生一擷取地址以擷取微碼的指令,修補(bǔ)硬件可提供微碼修補(bǔ)指令。微處理器100的多個(gè)特征控制暫存器,用于致能或禁能微處理器100對(duì)應(yīng)的特征單元或功能單元,及/或指示微處理器100是否具有對(duì)應(yīng)的特征單元或功能單元,例如浮點(diǎn)單元(floatingpointunit,FPU)、匪X單元、SSE單元、快取與轉(zhuǎn)譯后備緩沖器(translation-lookasidebuffer,TLBs)、呼叫/回傳堆疊(call/returnstack)、亂數(shù)產(chǎn)生器、加密引擎、積和熔加(fused-咖ltiply-add)指令特征、微碼修補(bǔ)相關(guān)特征、虛擬機(jī)器延伸(virtualmachineextensions,VMX)、效能監(jiān)控特征、處理器升級(jí)(stepping)與家族信息、預(yù)擷取(prefetching)特征、分支預(yù)測(cè)特征、頁(yè)表查詢(pagetablewalking)相關(guān)特征以及電源管理特征。微處理器100的多個(gè)組態(tài)暫存器,用于控制微處理器100中的時(shí)脈產(chǎn)生電路(未顯示)所產(chǎn)生的一或多個(gè)時(shí)脈信號(hào)的頻率,或控制微處理器100中的電壓電平??刂朴布?24亦包括結(jié)構(gòu)控制暫存器,響應(yīng)于微處理器100解碼命令微處理器100讀取結(jié)構(gòu)控制暫存器的一使用者程序指令,重置微碼程序(resetmicrocoderoutine)122從結(jié)構(gòu)控制暫存器中讀取一數(shù)值以及載入該數(shù)值到微處理器100的一通用目的暫存器(generalpurposeregister)(未顯示)。在現(xiàn)有的微處理器中,不經(jīng)錯(cuò)誤偵測(cè)與校正即自熔線讀取數(shù)值以及寫入數(shù)值至控制硬件。如上面討論的,假如燒斷的熔線已經(jīng)再生長(zhǎng)以致于導(dǎo)通并且不正確地被讀取為0而不是1,因?yàn)閷懭胫量刂朴布臄?shù)值不正確,很有可能導(dǎo)致現(xiàn)有的微處理器不能適當(dāng)操作。然而,有利的是,根據(jù)本發(fā)明,微處理器100也包括EDAC熔線132,用于偵測(cè)及校正從數(shù)據(jù)熔線152讀取到的因?yàn)樵偕L(zhǎng)熔線而造成的不正確數(shù)值,所以正確的數(shù)值會(huì)被寫入控制硬件124,如以下的詳細(xì)描述。微處理器100包括指令快取102,用于緩存微處理器100所擷取與執(zhí)行的多個(gè)程序指令。多個(gè)程序指令可包括使用者程序指令,例如系統(tǒng)軟件或應(yīng)用程序。微處理器100還包括自指令快取102接收指令的指令轉(zhuǎn)譯器104,在微處理器100的宏指令集的一些指令的例子中,指令轉(zhuǎn)譯器104轉(zhuǎn)譯該指令(即宏指令)使其成為微處理器100的多個(gè)執(zhí)行單元114所執(zhí)行的一或多個(gè)微指令。微指令比宏指令簡(jiǎn)化。然而,對(duì)于微處理器100的宏指令集的一些指令,指令轉(zhuǎn)譯器104轉(zhuǎn)移控制(transfercontrol)至儲(chǔ)存于微碼單元116中的微碼指令序列(sequence),上述微碼單元116可為一微碼只讀存儲(chǔ)器(ROM)。微碼單元116也儲(chǔ)存重置微碼程序122的多個(gè)微碼指令序列。當(dāng)微處理器100重置時(shí),微碼單元116開(kāi)始擷取與執(zhí)行重置微碼程序122的微指令。重置微碼程序122執(zhí)行各種操作以初始化微處理器IOO以準(zhǔn)備開(kāi)始擷取與執(zhí)行使用者程序指令。特別地,重置微碼7程序122以控制值134來(lái)編程(program)微處理器100的控制硬件124。微處理器100根據(jù)從熔線172讀取到的在制造時(shí)所燒入的數(shù)值以產(chǎn)生控制值134。然而,如上述,熔線172可能在燒斷之后再生長(zhǎng)以致于其數(shù)值由燒斷的數(shù)值改變?yōu)榉菬龜嗟臄?shù)值。有利的是,微處理器100也包括EDAC熔線132,EDAC熔線132致能微處理器100以校正讀取自數(shù)據(jù)熔線152的錯(cuò)誤數(shù)值。微處理器100也包括指令調(diào)度器(instructiondispatcher)106,指令調(diào)度器106由指令轉(zhuǎn)譯器104或由微碼單元116接收微指令(例如重置微碼程序122的指令),以及調(diào)度微指令到執(zhí)行單元114。執(zhí)行單元114包括一或多個(gè)整數(shù)單元(integerunit),整數(shù)單元包括執(zhí)行算術(shù)與邏輯運(yùn)算的算術(shù)與邏輯單元(arithmeticandlogicunit)。特別地,執(zhí)行單元114用以對(duì)輸入運(yùn)算元執(zhí)行布爾異或(BooleanX0R)運(yùn)算,重置微碼程序122使用輸入運(yùn)算元以執(zhí)行EDAC演算法運(yùn)算以偵測(cè)與校正讀取自熔線172的錯(cuò)誤數(shù)值。執(zhí)行單元114也執(zhí)行自控制硬件124讀取數(shù)據(jù)以及寫入數(shù)據(jù)到控制硬件124的指令。執(zhí)行單元114也執(zhí)行自臨時(shí)儲(chǔ)存器144讀取數(shù)據(jù)以及寫入數(shù)據(jù)到臨時(shí)儲(chǔ)存器144的指令。于一實(shí)施例中,臨時(shí)儲(chǔ)存器144是一種隨機(jī)存取存儲(chǔ)器(RAM)。特別的是,如以下參考圖3的描述,重置微碼程序122讀取數(shù)據(jù)熔線152以及將讀取到的數(shù)值寫入至臨時(shí)儲(chǔ)存器144作為數(shù)據(jù)熔線值126;并且重置微碼程序122讀取EDAC熔線132以及將讀取到的數(shù)值寫入至臨時(shí)儲(chǔ)存器144作為EDAC熔線值128;以及重置微碼程序122讀取數(shù)據(jù)熔線值126以及EDAC熔線值128以產(chǎn)生校正的數(shù)據(jù)熔線值118,然后將校正的數(shù)據(jù)熔線值118寫入至臨時(shí)儲(chǔ)存器144,并且接著從臨時(shí)儲(chǔ)存器144讀取校正的數(shù)據(jù)熔線值118并將其寫入至控制硬件124。在微處理器100已經(jīng)讀取熔線172、必要時(shí)校正數(shù)據(jù)熔線值126、寫入控制硬件124、并且開(kāi)始擷取與執(zhí)行使用者程序指令(如以下參考圖3以及圖5所描述)之后,微處理器100也響應(yīng)于要求讀取與寫入控制硬件124的使用者程序指令而讀取與寫入控制硬件124的相關(guān)部分。于一實(shí)施例中,使用者程序指令是x86架構(gòu)RDMSR與WRMSR指令。參考圖2,圖2顯示根據(jù)本發(fā)明實(shí)施于制造圖1的微處理器100的步驟的流程圖。流程圖由步驟202開(kāi)始。在步驟202,微處理器100的制造商決定要燒入數(shù)據(jù)熔線152的控制值。根據(jù)被燒斷與否,每個(gè)數(shù)據(jù)熔線152構(gòu)成具有0或1的二進(jìn)制值的一個(gè)單一位。讀取自每個(gè)數(shù)據(jù)熔線152的位的值將被直接寫入控制硬件124的一個(gè)位,或者當(dāng)發(fā)現(xiàn)上述位值因熔線再生長(zhǎng)現(xiàn)象而不正確時(shí)用以產(chǎn)生一個(gè)校正值以寫入控制硬件124,如圖3的步驟312與316以及圖5的步驟516所描述的。因此,在步驟202,制造商決定熔線172的哪些熔線被配置為數(shù)據(jù)熔線152或是EDAC熔線132,使每個(gè)數(shù)據(jù)熔線152與控制硬件124的一個(gè)位相關(guān)聯(lián)(associate),以及決定欲燒入數(shù)據(jù)熔線152的位值。舉例來(lái)說(shuō),制造商可能決定想要一種特定的數(shù)據(jù)熔線152以儲(chǔ)存用于選擇性地栓鎖(toggle)內(nèi)定(default)微碼值的一個(gè)位,內(nèi)定微碼值控制微處理器100的特定分支預(yù)測(cè)特征是否被致能或禁能,并且制造商為了提供所需的二進(jìn)制數(shù)值以栓鎖內(nèi)定值,而決定是否要將數(shù)據(jù)熔線152燒斷或不燒斷。制造商對(duì)每個(gè)數(shù)據(jù)熔線152執(zhí)行這些步驟。雖然每個(gè)數(shù)據(jù)熔線152構(gòu)成一個(gè)單一的位,在邏輯上數(shù)據(jù)熔線152可配置為多個(gè)組,其中每一組具有多個(gè)數(shù)據(jù)熔線且每一組具有一多個(gè)位的控制值,于步驟204將做更詳細(xì)的說(shuō)明。在這種情況下,數(shù)據(jù)熔線152的控制值是在微處理器100制造之前以及在制造后的操作之前預(yù)先決定的。流程由步驟202進(jìn)行到步驟204。在步驟204,制造商對(duì)步驟202決定的控制值執(zhí)行EDAC演算法運(yùn)算,以計(jì)算要被燒入至EDAC熔線132的EDAC值。于一實(shí)施例中,EDAC演算法是公知的單錯(cuò)誤校正雙錯(cuò)誤偵測(cè)(singleerrorcorrectiondoubleerrordetection,SECDED)(72,64)漢明石馬(Hammingcode)演算法;然而,其他EDAC演算法亦可能用于本發(fā)明。目前將討論分別用于圖1與圖3的實(shí)施例以及圖4與圖5的實(shí)施例的垂直碼(verticalcode)演算法與水平碼(horizontalcode)演算法。于圖3的實(shí)施例中,在步驟306中,圖1的重置微碼程序122在軟件中執(zhí)行EDAC演算法運(yùn)算以讀取熔線172以及偵測(cè)與校正錯(cuò)誤。因此,于此實(shí)施例中,制造商使用垂直碼演算法計(jì)算EDAC值,并且在步驟306中重置微碼程序122使用垂直碼演算法。于一實(shí)施例中,熔線172配置成58組,每一組具有64條熔線,亦即每一組是64位寬。前50組熔線172邏輯上配置成數(shù)據(jù)熔線152,最后8組熔線172邏輯上配置成EDAC熔線132。因此,在步驟202所決定的控制值邏輯上是50個(gè)64位的控制值,并且通過(guò)EDAC演算法產(chǎn)生8個(gè)64位的EDAC值。制造商對(duì)50個(gè)控制值的同一位置的位執(zhí)行EDAC演算法運(yùn)算。亦即,制造商對(duì)50個(gè)控制值的位置為0的位執(zhí)行EDAC演算法運(yùn)算,以產(chǎn)生8個(gè)EDAC值的位置為0的位,制造商對(duì)50個(gè)控制值的位置為1的位執(zhí)行EDAC演算法運(yùn)算,以產(chǎn)生8個(gè)EDAC值的位置為1的位,以此類推。在一實(shí)施例中,EDAC演算法是依據(jù)64個(gè)輸入位以產(chǎn)生8個(gè)EDAC位,在僅有50個(gè)控制值的情況下,制造商假設(shè)缺少的14個(gè)控制值的所有位為零。在圖5的另一實(shí)施例中,在步驟506中,圖4的硬件EDAC單元456在硬件中執(zhí)行EDAC演算法運(yùn)算以讀取熔線172以及偵測(cè)與校正錯(cuò)誤。因此,于此實(shí)施例中,制造商使用水平碼演算法計(jì)算EDAC值,并且在步驟506中硬件EDAC單元456使用水平碼演算法。于一實(shí)施例中,熔線172配置成50組,每組具有72條熔線,亦即每一組是72位寬。每一組的前64個(gè)位置的熔線172在邏輯上配置成數(shù)據(jù)熔線152,每一組的最后8個(gè)位置的熔線172在邏輯上配置成EDAC熔線132。因此,如同前段的實(shí)施例,在步驟202決定的控制值在邏輯上是50個(gè)64位的控制值;然而,在此圖5的實(shí)施例中,EDAC演算法依據(jù)上述50個(gè)64位的控制值作為輸入以產(chǎn)生50個(gè)8位的EDAC值。制造商在組對(duì)組的基礎(chǔ)上執(zhí)行EDAC演算法運(yùn)算。也就是說(shuō),制造商對(duì)組0的64位的控制值執(zhí)行EDAC演算法運(yùn)算以產(chǎn)生組0的8位的EDAC值,制造商對(duì)組1的64位的控制值執(zhí)行EDAC演算法運(yùn)算以產(chǎn)生組1的8位的EDAC值,以此類推。流程由步驟204進(jìn)行到步驟206。在步驟206,制造商將步驟202決定的控制值燒入數(shù)據(jù)熔線152以及將步驟204計(jì)算的EDAC值燒入EDAC熔線132。流程在步驟206結(jié)束。參考圖3,圖3顯示根據(jù)本發(fā)明實(shí)施例的圖1的微處理器100的操作的流程圖。流程由步驟302開(kāi)始。在步驟302,重置微處理器100并且響應(yīng)地開(kāi)始擷取與執(zhí)行重置微碼程序122的指令。流程進(jìn)行到步驟304。在步驟304,重置微碼程序122讀取數(shù)據(jù)熔線152以及EDAC熔線132,并且寫入數(shù)據(jù)熔線值126與EDAC熔線值128到臨時(shí)儲(chǔ)存器144。于一實(shí)施例中,微處理器100的微指令集包括移動(dòng)一組熔線172的數(shù)值到微處理器100的通用目的暫存器(未顯示)的指令,以及從通用目的暫存器移動(dòng)數(shù)值到臨時(shí)儲(chǔ)存器144的指令。另外,多個(gè)執(zhí)行單元114的一個(gè)適用于執(zhí)行這些指令。重置微碼程序122使用有關(guān)于每個(gè)熔線172組的微碼指令序列,此微碼指令序列包括讀取每個(gè)熔線172組的指令以及寫入數(shù)據(jù)熔線值126與EDAC熔線值128到臨時(shí)儲(chǔ)存器144的指令。流程進(jìn)行到步驟306。在步驟306,重置微碼程序122對(duì)在臨時(shí)儲(chǔ)存器144中的數(shù)據(jù)熔線值126以及EDAC熔線值128執(zhí)行EDAC演算法運(yùn)算,以判斷數(shù)據(jù)熔線值126是否有錯(cuò)誤,假如是,并判斷它是否可校正。于一實(shí)施例中,微處理器100的微指令集包括由臨時(shí)儲(chǔ)存器144移動(dòng)一數(shù)值到通用目的暫存器的指令、對(duì)在通用目的暫存器的數(shù)值執(zhí)行演算法與邏輯運(yùn)算(例如異或、位移或旋轉(zhuǎn))的指令,以及由通用目的暫存器移動(dòng)一數(shù)值到臨時(shí)儲(chǔ)存器144的指令。另外,多個(gè)執(zhí)行單元114適用于執(zhí)行這些指令。重置微碼程序122使用微碼指令序列去對(duì)臨時(shí)儲(chǔ)存器144中的數(shù)據(jù)熔線值126與EDAC熔線值128執(zhí)行EDAC演算法運(yùn)算,以判斷數(shù)據(jù)熔線值126是否有錯(cuò)誤,假如是,判斷它是否可校正。于一實(shí)施例中,重置微碼程序122使用垂直碼演算法,如上述關(guān)于圖2的描述。流程進(jìn)行到步驟308。在判斷步驟308,重置微碼程序122基于在步驟306所執(zhí)行的運(yùn)算判斷數(shù)據(jù)熔線值126是否有錯(cuò)誤。假如是,流程進(jìn)行到判斷步驟314;否則,流程進(jìn)行到步驟312。在步驟312,重置微碼程序122使用數(shù)據(jù)熔線值126將控制值134寫入到控制硬件124。只要控制值134寫入到控制硬件124,微處理器100可以開(kāi)始執(zhí)行使用者程序指令。于一實(shí)施例中,重置微碼程序122將數(shù)據(jù)熔線值126直接寫入控制硬件124。于另一實(shí)施例中,重置微碼程序122修改(modify)數(shù)據(jù)熔線值126以產(chǎn)生控制值134用于寫入到控制硬件124。舉例來(lái)說(shuō),于一實(shí)施例中,重置微碼程序122對(duì)數(shù)據(jù)熔線值126與以常數(shù)形式儲(chǔ)存于重置微碼程序122中的內(nèi)定控制值執(zhí)行異或運(yùn)算,并且將運(yùn)算結(jié)果作為控制值134寫入控制硬件124,如此可使數(shù)據(jù)熔線值126作為栓鎖機(jī)制以栓鎖微碼內(nèi)定控制值。此外,因?yàn)榭刂朴布?24可能是如上述的多種不同型態(tài)的硬件(例如微碼修補(bǔ)硬件、特征控制暫存器、組態(tài)暫存器或結(jié)構(gòu)控制暫存器),并且數(shù)據(jù)熔線值126可能具有包括對(duì)應(yīng)多種不同型態(tài)的控制值的多種不同部分,重置微碼程序122可能將一部分的數(shù)據(jù)熔線值126直接寫入到控制硬件124的相關(guān)部分,并且可能在將其他部分的數(shù)據(jù)熔線值126寫入到控制硬件124之前先進(jìn)行修改。此外,可了解到,重置微碼程序122可能執(zhí)行微碼指令序列以從臨時(shí)儲(chǔ)存器144讀取數(shù)據(jù)熔線值126,并且將數(shù)據(jù)熔線值126的部分(或修改的部分)寫入到控制硬件124。流程在步驟312結(jié)束。在判斷步驟314,重置微碼程序122使用EDAC熔線值128判斷在步驟306、308偵測(cè)到的錯(cuò)誤是否可校正。假如是,流程進(jìn)行到步驟316;否則,流程進(jìn)行到步驟318。在步驟316,重置微碼程序122使用EDAC演算法校正錯(cuò)誤的數(shù)據(jù)熔線值126以產(chǎn)生校正的數(shù)據(jù)熔線值118并且使用校正的數(shù)據(jù)熔線值118將控制值134寫入到控制硬件124。只要控制值134寫入到控制硬件124,微處理器100可以開(kāi)始執(zhí)行使用者程序指令。如上述關(guān)于步驟312的描述,重置微碼程序122可能在將校正的數(shù)據(jù)熔線值118寫入控制硬件之前,修改校正的數(shù)據(jù)熔線值118或其部分。流程在步驟316結(jié)束。在步驟318,重置微碼程序122防止微處理器100完成重置,因?yàn)樵跀?shù)據(jù)熔線值126中的錯(cuò)誤的位數(shù)目對(duì)于微處理器來(lái)說(shuō)太多而無(wú)法使用EDAC熔線值128校正。也就是說(shuō),重置微碼程序122防止微處理器100擷取與執(zhí)行使用者程序指令。于可替代的實(shí)施例中,重置微碼程序122允許微處理器100完成重置,亦即擷取與執(zhí)行使用者程序指令,例如10BIOS或其他系統(tǒng)軟件;然而,重置微碼程序122傳送一錯(cuò)誤狀態(tài)到系統(tǒng)軟件以指示在數(shù)據(jù)熔線值126中有一無(wú)法校正的錯(cuò)誤。流程在步驟318結(jié)束。參考圖4,圖4顯示根據(jù)本發(fā)明的另一實(shí)施例的微處理器100的框圖。圖4的微處理器100與圖1的微處理器100中相關(guān)以及相同號(hào)碼的元件是類似的。然而,圖4的微處理器100在以下方面不同于圖1的微處理器100。圖4的微處理器100包括在執(zhí)行單元114內(nèi)的硬件錯(cuò)誤偵測(cè)與校正(EDAC)單元456。硬件EDAC單元456,響應(yīng)于微碼指令,用以讀取熔線172以及對(duì)讀取自熔線172的數(shù)值執(zhí)行EDAC演算法運(yùn)算,以產(chǎn)生硬件校正的數(shù)據(jù)熔線值442。假如硬件EDAC單元456在讀取自熔線172的數(shù)值中偵測(cè)到不可校正的錯(cuò)誤,則硬件EDAC單元456也會(huì)在不可校正的錯(cuò)誤指標(biāo)438上產(chǎn)生真值(truevalue),否則在不可校正的錯(cuò)誤指標(biāo)438上產(chǎn)生假值(falsevalue)。此外,重置微碼程序122將硬件EDAC單元456所產(chǎn)生的硬件校正的數(shù)據(jù)熔線值442儲(chǔ)存到臨時(shí)儲(chǔ)存器144當(dāng)作校正的數(shù)據(jù)熔線值118,以及將硬件EDAC單元456所產(chǎn)生的不可校正的錯(cuò)誤指標(biāo)438儲(chǔ)存到臨時(shí)儲(chǔ)存器144當(dāng)作不可校正的錯(cuò)誤值428。最后,修改重置微碼程序122使其執(zhí)行關(guān)于圖5所描述的運(yùn)算。于一實(shí)施例中,硬件EDAC單元456也產(chǎn)生第二指標(biāo)(未顯示)以指示可校正的錯(cuò)誤已校正,第二指標(biāo)可能有用于通知系統(tǒng)軟件熔線可能已經(jīng)再生長(zhǎng),以便使用者在需要時(shí)可以替換微處理器100。參考圖5,圖5顯示根據(jù)本發(fā)明的另一實(shí)施例的圖4的微處理器100的操作的流程圖。流程由步驟502開(kāi)始。在步驟502,重置微處理器100并且響應(yīng)地開(kāi)始擷取與執(zhí)行重置微碼程序122的指令。流程進(jìn)行到步驟504。在步驟504,重置微碼程序122執(zhí)行微碼指令,以命令硬件EDAC單元456讀取熔線172以及對(duì)讀取自熔線172的數(shù)值執(zhí)行EDAC演算法運(yùn)算,以產(chǎn)生硬件校正的數(shù)據(jù)熔線值442以及不可校正的錯(cuò)誤指標(biāo)438。于一實(shí)施例中,重置微碼程序122包括命令硬件EDAC單元456讀取熔線172與對(duì)讀取自每一熔線172組的熔線172的數(shù)值執(zhí)行EDAC演算法運(yùn)算的指令。流程進(jìn)行到步驟506。在步驟506,硬件EDAC單元456讀取熔線172并且對(duì)讀取自熔線172的數(shù)據(jù)熔線值與EDAC熔線值執(zhí)行EDAC演算法運(yùn)算,以產(chǎn)生硬件校正的數(shù)據(jù)熔線值442以及不可校正的錯(cuò)誤指標(biāo)438。于一實(shí)施例中,硬件EDAC單元456對(duì)每個(gè)熔線172組使用水平碼演算法,如之前關(guān)于圖2所描述的。流程進(jìn)行到步驟508。在步驟508,重置微碼程序122將硬件EDAC單元456所產(chǎn)生的硬件校正的數(shù)據(jù)熔線值442儲(chǔ)存到臨時(shí)儲(chǔ)存器144作為校正的數(shù)據(jù)熔線值118以及將硬件EDAC單元456所產(chǎn)生的不可校正的錯(cuò)誤指標(biāo)438儲(chǔ)存到臨時(shí)儲(chǔ)存器144作為不可校正的錯(cuò)誤值428。流程進(jìn)行到判斷步驟514。在判斷步驟514,重置微碼程序122檢查在臨時(shí)儲(chǔ)存器144中的不可校正的錯(cuò)誤值428以判斷讀取自數(shù)據(jù)熔線152的數(shù)值是否有不可校正的錯(cuò)誤。假如是,流程進(jìn)行到步驟518;否則流程進(jìn)行到步驟516。在步驟516,重置微碼程序122使用校正的數(shù)據(jù)熔線值118將控制值134寫入到控制硬件124,如關(guān)于圖3的步驟312所描述的。只要控制值134寫入控制硬件124,微處理器100可以開(kāi)始執(zhí)行使用者程序指令。流程在步驟516結(jié)束。11在步驟518,重置微碼程序122防止微處理器100完成重置(或傳送一錯(cuò)誤狀態(tài)到系統(tǒng)軟件),因?yàn)樵跀?shù)據(jù)熔線值126中錯(cuò)誤的位數(shù)目對(duì)于微處理器100而言太多而無(wú)法使用EDAC熔線值128校正,如之前關(guān)于圖3的步驟318所描述。流程在步驟518結(jié)束。雖然已經(jīng)描述使用特定EDAC演算法與特定熔線172配置作為數(shù)據(jù)熔線152或EDAC熔線132的各種實(shí)施例,然而其他實(shí)施例是可預(yù)期的,并且本發(fā)明不是限制于在此描述的特定演算法與配置。雖然在此已經(jīng)描述本發(fā)明的各種實(shí)施例,然而可了解到他們僅是以實(shí)例的方式呈現(xiàn)而不是作限制。對(duì)于在計(jì)算機(jī)領(lǐng)域中具有通常知識(shí)者而言,可以在不脫離本發(fā)明的范圍下,在形式與細(xì)節(jié)上作各種變更。舉例來(lái)說(shuō),軟件可以致能功能、制造、模型化、模擬、描述及/或在此描述的裝置與方法的測(cè)試??梢酝ㄟ^(guò)使用通用程序語(yǔ)言(如(:丄++)、包括¥61^108HDL、VHDL等的硬件描述語(yǔ)言(HDL)或其他可利用的程序。這些軟件可以配置于任何已知的計(jì)算機(jī)可使用介質(zhì)如半導(dǎo)體、磁盤或光盤(如CD-R0M、DVD-R0M等)。在此描述的裝置與方法的實(shí)施例可能包括于半導(dǎo)體知識(shí)產(chǎn)權(quán)核心中,例如微處理器核心(如內(nèi)嵌于HDL)與轉(zhuǎn)換到半導(dǎo)體電路制造的硬件。此外,在此描述的裝置與方法可能以硬件與軟件的組合具體實(shí)施。因此,本發(fā)明不應(yīng)限制于在此描述的例證的實(shí)施例,但是應(yīng)該根據(jù)申請(qǐng)專利范圍與其等效定義之。特別地是,本發(fā)明可能在用于通用目的計(jì)算機(jī)的微處理器裝置之下實(shí)施。最后,以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書所界定的范圍為準(zhǔn)。權(quán)利要求一種微處理器,其特征在于,包括一控制硬件,用于接收與儲(chǔ)存至少一控制值以及提供該控制值到該微處理器的至少一電路以控制該微處理器的操作;一第一多條熔線,根據(jù)一既定值選擇性地被燒斷;以及一第二多條熔線,根據(jù)一錯(cuò)誤校正值選擇性地被燒斷,該錯(cuò)誤校正值計(jì)算自燒入該第一多條熔線的該既定值;其中,響應(yīng)于重置該微處理器,該微處理器用于讀取該第一多條熔線與該第二多條熔線;使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的一錯(cuò)誤;使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及使用校正后的數(shù)值將該控制值寫入該控制硬件。2.根據(jù)權(quán)利要求1所述的微處理器,其特征在于,該微處理器還用于利用一錯(cuò)誤偵測(cè)與校正演算法使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤,以及使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及在擷取與執(zhí)行使用者程序指令前,使用該校正后的數(shù)值將該控制值寫入該控制硬件。3.根據(jù)權(quán)利要求1所述的微處理器,其特征在于,該微處理器還用于當(dāng)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤無(wú)法校正時(shí),防止該微處理器擷取與執(zhí)行使用者程序指令。4.根據(jù)權(quán)利要求1所述的微處理器,其特征在于,還包括一錯(cuò)誤偵測(cè)與校正單元,耦接到該第一多條熔線與該第二多條熔線,用于使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤,以及使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值。5.根據(jù)權(quán)利要求1所述的微處理器,其特征在于,還包括一微碼單元,用于讀取該第一多條熔線與該第二多條熔線;使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤;使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及使用該校正后的數(shù)值將該控制值寫入該控制硬件。6.根據(jù)權(quán)利要求5所述的微處理器,其特征在于,還包括一隨機(jī)存取存儲(chǔ)器,通過(guò)該微碼單元寫入與讀取該隨機(jī)存取存儲(chǔ)器,其中該微碼單元還用于從該第一多條熔線與該第二多條熔線讀取數(shù)值到該隨機(jī)存取存儲(chǔ)器,以及使用該校正后的數(shù)值將該控制值從該隨機(jī)存取存儲(chǔ)器寫入到該控制硬件。7.根據(jù)權(quán)利要求5所述的微處理器,其特征在于,該控制硬件包括下列之一或其組合一結(jié)構(gòu)控制暫存器,其中響應(yīng)于該微處理器解碼命令該微處理器讀取該結(jié)構(gòu)控制暫存器的一使用者程序指令,該微碼單元還用于從該結(jié)構(gòu)控制暫存器讀取一數(shù)值以及載入從該結(jié)構(gòu)控制暫存器讀取的該數(shù)值到該微處理器的一通用目的暫存器;一修補(bǔ)硬件,用于儲(chǔ)存一微碼修補(bǔ)指令,其中響應(yīng)于該微處理器產(chǎn)生一擷取地址以擷取該微碼單元的一指令,該修補(bǔ)硬件提供該微碼修補(bǔ)指令;一第一特征控制暫存器,用于提供該控制值的至少一部分到該微處理器的該電路以控制該微處理器的一特征單元禁能或致能;一第二特征控制暫存器,用于提供該控制值的至少一部分到該微處理器的該電路以控制該微處理器的電源管理;以及一組態(tài)暫存器,用于提供該控制值的至少一部分以控制該微處理器內(nèi)的至少一時(shí)脈產(chǎn)生電路所產(chǎn)生的時(shí)脈信號(hào)的頻率。8.根據(jù)權(quán)利要求1所述的微處理器,其特征在于,該微處理器還用于在使用該校正后的數(shù)值將該控制值寫入到該控制硬件之前修改該校正后的數(shù)值以產(chǎn)生該控制值。9.一種初始化微處理器的方法,其特征在于,包括讀取一第一多條熔線與一第二多條熔線,其中該第一多條熔線根據(jù)一既定值選擇性地被燒斷,該第二多條熔線根據(jù)一錯(cuò)誤校正值選擇性地被燒斷,該錯(cuò)誤校正值計(jì)算自燒入該第一多條熔線的該既定值;使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的一錯(cuò)誤;使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及使用校正后的數(shù)值將一控制值寫入一控制硬件,其中該控制硬件用于接收與儲(chǔ)存該控制值以及提供該控制值到該微處理器的至少一電路以控制該微處理器的操作;其中該讀取、偵測(cè)、校正與使用的步驟響應(yīng)于該微處理器被重置而執(zhí)行。10.根據(jù)權(quán)利要求9所述的初始化微處理器的方法,其特征在于,還包括利用一錯(cuò)誤偵測(cè)與校正演算法使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤,以及使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及在擷取與執(zhí)行使用者程序指令之前使用該校正后的數(shù)值將該控制值寫入該控制硬件。11.根據(jù)權(quán)利要求9所述的初始化微處理器的方法,其特征在于,還包括當(dāng)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤無(wú)法校正時(shí),防止該微處理器擷取與執(zhí)行使用者程序指令。12.根據(jù)權(quán)利要求9所述的初始化微處理器的方法,其特征在于,該微處理器還包括一錯(cuò)誤偵測(cè)與校正單元,其中該錯(cuò)誤偵測(cè)與校正單元使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤,以及使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值。13.根據(jù)權(quán)利要求9所述的初始化微處理器的方法,其特征在于,該微處理器包括一微碼單元,該初始化微處理器的方法還包括通過(guò)該微碼單元讀取該第一多條熔線與該第二多條熔線;通過(guò)該微碼單元使用讀取自該第二多條熔線的數(shù)值偵測(cè)讀取自該第一多條熔線的數(shù)值的該錯(cuò)誤;通過(guò)該微碼單元使用讀取自該第二多條熔線的數(shù)值將讀取自該第一多條熔線的數(shù)值校正為該既定值;以及通過(guò)該微碼單元使用該校正后的數(shù)值將該控制值寫入該控制硬件。14.根據(jù)權(quán)利要求13所述的初始化微處理器的方法,其特征在于,該微處理器還包括一隨機(jī)存取存儲(chǔ)器,其中該微碼單元從該第一多條熔線與該第二多條熔線讀取數(shù)值到該隨機(jī)存取存儲(chǔ)器,以及該微碼單元使用該校正后的數(shù)值將該控制值從該隨機(jī)存取存儲(chǔ)器寫入到該控制硬件。15.根據(jù)權(quán)利要求13所述的初始化微處理器的方法,其特征在于,更包括下列步驟之一或其組合響應(yīng)于該微處理器解碼命令該微處理器讀取一結(jié)構(gòu)控制暫存器的一使用者程序指令,該微碼單元從該結(jié)構(gòu)控制暫存器讀取一數(shù)值并且載入從該結(jié)構(gòu)控制暫存器讀取的該數(shù)值到該微處理器的一通用目的暫存器;響應(yīng)于該微處理器產(chǎn)生一擷取地址以擷取該微碼單元的一指令,一修補(bǔ)硬件提供一微碼修補(bǔ)指令,其中該修補(bǔ)硬件用于儲(chǔ)存該微碼修補(bǔ)指令;提供該控制值的至少一部分到該微處理器的該電路以控制該微處理器的一特征單元禁能或致能;提供該控制值的至少一部分到該微處理器的該電路以控制該微處理器的電源管理;以及提供該控制值的至少一部分以控制該微處理器內(nèi)的至少一時(shí)脈產(chǎn)生電路所產(chǎn)生的時(shí)脈信號(hào)的頻率。16.根據(jù)權(quán)利要求9所述的初始化微處理器的方法,其特征在于,還包括在使用該校正后的數(shù)值將該控制值寫入該控制硬件之前修改該校正后的數(shù)值以產(chǎn)生該控制值。全文摘要本發(fā)明提供一種微處理器及初始化微處理器的方法。微處理器包括控制硬件,控制硬件接收與儲(chǔ)存至少一控制值以及提供控制值到微處理器的至少一電路以控制微處理器的操作。微處理器還包括根據(jù)一既定值選擇性地被燒斷的第一多條熔線,以及根據(jù)一錯(cuò)誤校正值選擇性地被燒斷的第二多條熔線。響應(yīng)于重置微處理器,微處理器讀取第一多條熔線與第二多條熔線;使用讀取自第二多條熔線的數(shù)值偵測(cè)讀取自第一多條熔線的數(shù)值的錯(cuò)誤;使用讀取自第二多條熔線的數(shù)值將讀取自第一多條熔線的數(shù)值校正為既定值;以及使用校正后的數(shù)值將控制值寫入到控制硬件。本發(fā)明可以在微處理器中存在再生長(zhǎng)熔線時(shí),使得微處理器連續(xù)正確地進(jìn)行操作。文檔編號(hào)G06F11/16GK101794249SQ20101012752公開(kāi)日2010年8月4日申請(qǐng)日期2010年3月5日優(yōu)先權(quán)日2009年3月6日發(fā)明者G·葛蘭·亨利,查理·約翰·侯斯拉,泰瑞·派克斯申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
镇坪县| 庐江县| 茌平县| 三原县| 乃东县| 龙井市| 延长县| 隆子县| 高碑店市| 英山县| 新营市| 南京市| 乐清市| 鸡东县| 嘉定区| 白河县| 潍坊市| 师宗县| 阜康市| 二连浩特市| 修武县| 海南省| 西乡县| 尼勒克县| 攀枝花市| 永泰县| 尚志市| 昭平县| 增城市| 额济纳旗| 屏南县| 潍坊市| 石渠县| 剑阁县| 伊宁县| 景宁| 大埔区| 娱乐| 池州市| 平乡县| 阜新市|