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

用于微處理器的動態(tài)重設(shè)方法

文檔序號:6638530閱讀:164來源:國知局
用于微處理器的動態(tài)重設(shè)方法【專利摘要】本發(fā)明提供一種用于微處理器的動態(tài)重設(shè)方法,該微處理器至少包括指紋單元及動態(tài)重設(shè)功能單元,該方法包括:接受靜態(tài)指紋以及指紋產(chǎn)生準(zhǔn)則的指紋設(shè)定準(zhǔn)則表,其中該靜態(tài)指紋用于優(yōu)化該微處理器的該動態(tài)重設(shè)功能單元的配置,其中該靜態(tài)指紋由工程師辨識用于優(yōu)化該動態(tài)重設(shè)功能單元的該配置的程序部分、依據(jù)與該程序部分有關(guān)的指令串設(shè)計該指紋產(chǎn)生準(zhǔn)則、并利用該指紋產(chǎn)生準(zhǔn)則所產(chǎn)生;當(dāng)該動態(tài)重設(shè)功能單元正依據(jù)目前配置設(shè)定而執(zhí)行指令時,該指紋單元產(chǎn)生動態(tài)指紋并與該靜態(tài)指紋進(jìn)行比較;以及當(dāng)該靜態(tài)指紋與該動態(tài)指紋相符時,重設(shè)該動態(tài)重設(shè)功能單元?!緦@f明】用于微處理器的動態(tài)重設(shè)方法[0001]本申請是申請日為2014年9月19日、申請?zhí)枮?01410482537.6、發(fā)明名稱為“微處理器及用于微處理器的動態(tài)重設(shè)方法”的發(fā)明專利申請的分案申請?!?br>技術(shù)領(lǐng)域
】[0002]本發(fā)明涉及一種微處理器,特別涉及一種可動態(tài)重設(shè)的微處理器及用于微處理器的動態(tài)重設(shè)方法。【
背景技術(shù)
】[0003]微處理器的設(shè)計者會花費(fèi)許多努力在效能分析上。在依據(jù)先前幾代微處理器為基礎(chǔ)并利用特征及效能目標(biāo)的基準(zhǔn)集合來架構(gòu)一微處理器時,設(shè)計者會執(zhí)行軟件應(yīng)用程序中與其顧客最相關(guān)的代表性樣本,并提取軟件應(yīng)用程序的指令執(zhí)行記錄。設(shè)計者接著使用所提取的記錄以模擬正在設(shè)計微處理器的運(yùn)作。為了在所有目標(biāo)軟件應(yīng)用程序中達(dá)成最高的聚集效能(aggregateperformance),設(shè)計者可設(shè)定被模擬微處理器的不同特性。一般而言,某個一目標(biāo)應(yīng)用程序的特性對一特別配置設(shè)定是需要的,但其他應(yīng)用程序則不需要。在這些例子中,設(shè)計者可決定那個軟件應(yīng)用程序較為重要,或是尋找其他方法來嘗試均衡多個軟件應(yīng)用程序的需求。上述選擇通常無法達(dá)到最佳化目標(biāo)軟件應(yīng)用程序效能的目的,因?yàn)樵趪L試最佳化其中一個軟件應(yīng)用程序的效能時也會損害另一個軟件應(yīng)用程序的效能。[0004]當(dāng)辨識出配置設(shè)定的最佳平均集合時,舉例來說,微處理器設(shè)計者可將其寫為VHDL或Verilog程序代碼。其他微處理器可藉由包含在微處理器中的一組的熔絲來修改其硬編碼設(shè)定,這些熔絲可在微處理器制造時選擇性地熔斷,藉以改變其硬編碼值(hardcodedvalues)的配置設(shè)定。上述方式可讓微處理器在制造時有限度的最佳化,且或許可對在微處理器設(shè)計后所發(fā)表的新軟件應(yīng)用程序或是操作系統(tǒng)所需的系統(tǒng)配置做回應(yīng)。然而,此解決方式仍無法達(dá)到使目標(biāo)軟件應(yīng)用程序的效能最佳化的目的,因其需要設(shè)計者/制造者選擇用于最佳化某些應(yīng)用程序但同時犧牲其他應(yīng)用程序的效能的配置設(shè)定,或是選擇通常不會對任何應(yīng)用程序進(jìn)行最佳化的均衡配置設(shè)定。[0005]為了陳述此問題,于2008年7月10日申請的美國專利申請?zhí)?2/170,591已揭示一微處理器可基于目前正在運(yùn)作的應(yīng)用程序的一裝置驅(qū)動器以動態(tài)設(shè)定至多個操作模式,該美國專利已經(jīng)公告為第8,566,565號,且整份專利提供于此作為參考之用。然而,更佳的效能最佳化效果的需求依然存在?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明提供一種微處理器,包括:多個動態(tài)重設(shè)功能單元;一指紋;一指紋單元,其中當(dāng)該多個動態(tài)重設(shè)功能單元依據(jù)一第一配置設(shè)定以執(zhí)行多個指令時,該指紋單元依據(jù)一數(shù)學(xué)運(yùn)算以累計關(guān)于該多個指令的一指令信息,藉以產(chǎn)生一結(jié)果;以及一重設(shè)單元,用以依據(jù)一第二配置設(shè)定重設(shè)該多個動態(tài)重設(shè)功能單元以執(zhí)行該多個指令,藉以回應(yīng)該結(jié)果與該指紋相符。[0007]本發(fā)明還提供一種用于一微處理器的動態(tài)重設(shè)方法,該微處理器包括一指紋及多個動態(tài)重設(shè)功能單元,該方法包括:當(dāng)該多個動態(tài)重設(shè)功能單元依據(jù)一第一配置設(shè)定執(zhí)行多個指令時,依據(jù)一數(shù)學(xué)運(yùn)算累計該多個指令的一指令信息以產(chǎn)生一結(jié)果;以及依據(jù)回應(yīng)表示該結(jié)果與一指紋相符的一第二配置設(shè)定以重設(shè)該多個動態(tài)重設(shè)功能單元以執(zhí)行該多個指令。[0008]本發(fā)明還提供一種微處理器,包括:多個動態(tài)重設(shè)功能單元;一靜態(tài)計數(shù)值;一指令計數(shù)器,其中當(dāng)該多個動態(tài)重設(shè)功能單元依據(jù)一第一配置設(shè)定以執(zhí)行多個指令時,該指令計數(shù)器依據(jù)一準(zhǔn)則計數(shù)該多個指令以產(chǎn)生一動態(tài)計數(shù)值;以及一重設(shè)單元,用以依據(jù)回應(yīng)該動態(tài)計數(shù)值與該靜態(tài)計數(shù)值相符的一第二配置設(shè)定以重設(shè)該多個動態(tài)重設(shè)功能單元以執(zhí)行該多個指令。[0009]本發(fā)明還提供一種用于一微處理器的動態(tài)重設(shè)方法,該微處理器包括一靜態(tài)計數(shù)值及多個動態(tài)重設(shè)功能單元,該方法包括:當(dāng)該多個動態(tài)重設(shè)功能單元依據(jù)一第一配置設(shè)定執(zhí)行多個指令時,依據(jù)一準(zhǔn)則以計數(shù)該多個指令以產(chǎn)生一動態(tài)計數(shù)值;以及依據(jù)回應(yīng)該動態(tài)計數(shù)值與該靜態(tài)計數(shù)值相符的一第二配置設(shè)定以重設(shè)該多個動態(tài)重設(shè)功能單元以執(zhí)行該多個指令。[0010]本發(fā)明還提供一種用于微處理器的動態(tài)重設(shè)方法,該微處理器至少包括指紋單元及動態(tài)重設(shè)功能單元,該方法包括:接受靜態(tài)指紋以及指紋產(chǎn)生準(zhǔn)則的指紋設(shè)定準(zhǔn)則表,其中該靜態(tài)指紋用于優(yōu)化該微處理器的該動態(tài)重設(shè)功能單元的配置,其中該靜態(tài)指紋由工程師辨識用于優(yōu)化該動態(tài)重設(shè)功能單元的該配置的程序部分、依據(jù)與該程序部分有關(guān)的指令串設(shè)計該指紋產(chǎn)生準(zhǔn)則、并利用該指紋產(chǎn)生準(zhǔn)則所產(chǎn)生;當(dāng)該動態(tài)重設(shè)功能單元正依據(jù)目前配置設(shè)定而執(zhí)行指令時,該指紋單元產(chǎn)生動態(tài)指紋并與該靜態(tài)指紋進(jìn)行比較;以及當(dāng)該靜態(tài)指紋與該動態(tài)指紋相符時,重設(shè)該動態(tài)重設(shè)功能單元?!緦@綀D】【附圖說明】[0011]圖1顯不一微處理器100的功能方塊圖。[0012]圖2顯示依據(jù)本發(fā)明一實(shí)施例中的指紋單元102的詳細(xì)功能方塊圖。[0013]圖3顯示依據(jù)本發(fā)明一實(shí)施例中用以產(chǎn)生已知目標(biāo)程序部分及其有關(guān)的靜態(tài)指紋、配置設(shè)定及指紋產(chǎn)生準(zhǔn)則的數(shù)據(jù)庫的流程圖。[0014]圖4顯示依據(jù)本發(fā)明一實(shí)施例中微處理器100動態(tài)自我重新配置的運(yùn)作流程圖。[0015]圖5顯示依據(jù)本發(fā)明一實(shí)施例中微處理器110動態(tài)重設(shè)其本身的更進(jìn)一步運(yùn)作流程圖。[0016]圖6顯示依據(jù)本發(fā)明又一實(shí)施例中微處理器100動態(tài)自我重新配置的運(yùn)作流程圖。[0017]圖7顯示依據(jù)本發(fā)明又一實(shí)施例中微處理器100動態(tài)作為重新配置的運(yùn)作流程圖。[0018]圖8顯示依據(jù)本發(fā)明另一實(shí)施例中圖1的指紋單元102的方塊圖。[0019]圖9顯示依據(jù)本發(fā)明一實(shí)施例中的微處理器100動態(tài)自我重新配置的運(yùn)作流程圖。[0020]圖10顯示依據(jù)本發(fā)明一實(shí)施例中微處理器100檢測NOP滑動的運(yùn)作流程圖。[0021]【符號說明】[0022]100?微處理器;[0023]102?指紋單元;[0024]104?重設(shè)單元;[0025]124?配置寄存器;[0026]126?指紋設(shè)定準(zhǔn)則表;[0027]128?動態(tài)重設(shè)功能單元;[0028]132?指紋編程寄存器;[0029]142?指令信息;[0030]144?控制信號;[0031]202?指令指針;[0032]204?位移字段;[0033]206?運(yùn)算碼字段;[0034]208?ModRM字段;[0035]212?SIB字段;[0036]214?前綴;[0037]222?數(shù)學(xué)運(yùn)算電路;[0038]224?結(jié)果(動態(tài)指紋);[0039]226?比較器;[0040]228?相符信號;[0041]232?靜態(tài)指紋;[0042]234?控制邏輯;[0043]238?指紋產(chǎn)生準(zhǔn)則;[0044]242?衰減計數(shù)器;[0045]244?串接信號;[0046]822?指令計數(shù)器;[0047]826?比較器;[0048]832?靜態(tài)指令計數(shù)值;[0049]302-314,402—412,514—522,602—608,702—708,902—912,1002—1008?方塊?!揪唧w實(shí)施方式】[0050]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉一實(shí)施例,并配合附圖,作詳細(xì)說明如下。[0051]詞匯(Glossary)[0052]「指紋(fingerprint)」為可辨識一程序指令序列的一數(shù)值,指紋值的產(chǎn)生依據(jù)一數(shù)學(xué)運(yùn)算而得到的關(guān)于指令序列的信息累積結(jié)果。該信息可包括,舉例來說,該指令的指令指針值的多個組合(例如指令的地址)、指令的操作碼(opcode)、指令的位移(displacement)、指令的前綴(prefix,又稱為“字首”)、和/或指令的部分地址模式,例如是x86架構(gòu)指令(或是其一部分的)的SIB或modRM位。累積指令信息的數(shù)學(xué)運(yùn)算,舉例來說,可包括連續(xù)地計算與序列中各指令有關(guān)的循環(huán)冗余檢查碼(cyclicredundancycode)。此外,該數(shù)學(xué)運(yùn)算也可包括在一多輸入移位寄存器(multipleinputshiftregister)中使用最大計數(shù)多項式來累計指令信息。再者,該數(shù)學(xué)運(yùn)算還可包括依據(jù)一哈希函數(shù)(hashfunct1n),例如是一可變長度數(shù)據(jù)哈希函數(shù)以累計指令信息。當(dāng)然,該數(shù)學(xué)運(yùn)算還可包括對一隊列,例如是一固定長度隊列(fixed-lengthqueue),的連續(xù)指令信息進(jìn)行累計。[0053]依據(jù)兩個不同的產(chǎn)生時間點(diǎn),指紋值可分為兩種類型:靜態(tài)及動態(tài)。當(dāng)微處理器執(zhí)行一程序的指令時,微處理器的指紋單元產(chǎn)生一動態(tài)指紋而靜態(tài)指紋則由工程師所預(yù)先產(chǎn)生。靜態(tài)指紋會提供至指紋單元,使得指紋單元可對其產(chǎn)生的動態(tài)指紋及其所接收的靜態(tài)指紋進(jìn)行比較。指紋單元更可接收指紋產(chǎn)生準(zhǔn)則(fingerprintgenerat1ncriteria),例如起始條件、停止條件、及重置條件,其可控制指紋單元累計指令信息以產(chǎn)生動態(tài)指紋。指紋產(chǎn)生準(zhǔn)則也可指定為指令信息的部分組合以讓指紋單元進(jìn)行累計以產(chǎn)生動態(tài)指紋。[0054]當(dāng)各指令執(zhí)行后(以擷取者后為佳),指紋單元接收指令信息。若指紋單元檢測到一起始條件,其會依據(jù)數(shù)學(xué)運(yùn)算來累計指令信息而產(chǎn)生結(jié)果,其即為動態(tài)指紋。當(dāng)各指令執(zhí)行后,指紋單元會持續(xù)接收指令信息,并依據(jù)數(shù)學(xué)運(yùn)算以累計指令信息而產(chǎn)生結(jié)果,直到指紋單元檢測到一停止條件或一重置條件為止。在重置條件的一例子中,指紋單元清除累計狀態(tài),并依據(jù)數(shù)學(xué)運(yùn)算再開始累計指令信息以產(chǎn)生結(jié)果。更適宜而言,每當(dāng)指紋單元產(chǎn)生介于一起始條件及一停止條件的一新結(jié)果,其會比較該結(jié)果(動態(tài)指紋)與該靜態(tài)指紋,并在它們相符時指出兩者相符。起始條件的例子包括啟動分支的指令、返回指令、自中斷指令的返回、陷阱情況、例外情況、系統(tǒng)調(diào)用或返回指令(例如x86架構(gòu)中的SYSENTER或SYSEXIT指令)、子程序調(diào)用、功能單元控制指令(例如x86架構(gòu)中的FINIT指令)、或是來自另一指紋單元的表示符,表示其已檢測到指紋相符。停止條件的例子包括類似于起始條件的各種情況,且也可包括指紋相符、以及在一起始條件后所執(zhí)行的指令計數(shù)值到期(expirat1n)。重置條件的例子包括類似于起始條件的各種情況,且也可包括一硬件重置及非不動作指令的一指令。[0055]產(chǎn)生靜態(tài)指紋的流程公開于下述實(shí)施例。工程師對可用來增進(jìn)效能、降低功耗和/或修正錯誤的程序部分的目標(biāo)集合進(jìn)行辨識。接著,對于各目標(biāo)程序部分,工程師會在程序執(zhí)行時辨識指令序列(往后稱之為“指令串(strand)”),并表示該目標(biāo)程序部分正在執(zhí)行或是即將執(zhí)行。工程師接著在該指令串,亦即指令信息,之上依據(jù)數(shù)學(xué)運(yùn)算(與在指紋單元中用于產(chǎn)生動態(tài)指紋的數(shù)學(xué)運(yùn)算相同)進(jìn)行累計以產(chǎn)生一結(jié)果。當(dāng)該程序部分相關(guān)于靜態(tài)指紋時,該結(jié)果存儲于一數(shù)據(jù)庫或一文件中。產(chǎn)生靜態(tài)指紋可藉由多種方式來運(yùn)作。舉例來說,工程師可提供與該指令串相關(guān)的指紋收集準(zhǔn)則至一軟件程序,例如是微處理器的功能模擬器,接著于該功能模擬器上執(zhí)行該程序,且在其遇到停止條件時,指示該功能模擬器輸出該功能模擬器的指紋引擎部分的結(jié)果,其中該結(jié)果用于該指令串的靜態(tài)指紋。另一方面,工程師可使用微處理器本身以執(zhí)行類似的運(yùn)算,在一實(shí)驗(yàn)室環(huán)境中,該微處理器可特別設(shè)定于偵錯/測試設(shè)定以輸出靜態(tài)指紋,和/或該微處理器連接至測試設(shè)備的一部分,其用以提供測試向量(testvectors)至該微處理器并接收測試結(jié)果。在工程師已收集目標(biāo)靜態(tài)指紋之后,工程師可創(chuàng)建一表單,其將靜態(tài)指紋與下列條件進(jìn)行聯(lián)結(jié),例如(I)可最佳化微處理器的功能單元的配置設(shè)定,其用于處理與指令串相關(guān)的程序部分;及(2)指紋收集準(zhǔn)則。[0056]需了解的是檢測一靜態(tài)指紋與一動態(tài)指紋的相符并不會唯一肯定地辨識與該程序部分有關(guān)的指令串,反而是表示該指令序列已經(jīng)被執(zhí)行的概率相當(dāng)高。這種方式有點(diǎn)類似于人的指紋并無法唯一肯定地辨識一個人。意即,在一相對少數(shù)的情況中,指紋單元仍會對由靜態(tài)指紋所產(chǎn)生的指紋序列之外的指令串,(稱為別名(alias)指令串)指示相符的情形。[0057]功能單元為硬件或是在微處理器中的軟件及硬件的組合,其可執(zhí)行與處理與指令相關(guān)的函數(shù)。功能單元的例子包括,但非限定于,指令提取單元、分支預(yù)測單元、指令格式單元、指令轉(zhuǎn)譯單元、寄存器更名單元、指令調(diào)度單元、執(zhí)行單元(例如是整數(shù)單元、浮點(diǎn)單元、分支單元、單一指令多重數(shù)據(jù)(singleinstruct1nmultipledata)單元、多媒體單元、讀取單元、存儲單元)、重新排序單元、引退單元(retireunit)、快取存儲器、數(shù)據(jù)預(yù)提取單元、電源管理單元、存儲器管理單元、以及存儲沖突檢測單元。[0058]若一功能單元的設(shè)定可在微處理器運(yùn)作時改變,則表示該功能單元動態(tài)可重設(shè)。需注意的是,為了改變動態(tài)可重設(shè)的功能單元的設(shè)定,當(dāng)正要改變配置設(shè)定時,微處理器需先藉由該動態(tài)重設(shè)功能單元和/或整個微處理器以暫停指令的處理。舉例來說,在一實(shí)施例中,微程序代碼可藉由寫入一數(shù)值至設(shè)定寄存器以改變配置設(shè)定。該微程序代碼程序可在新配置設(shè)定寫入之前且直到新配置設(shè)定生效時,序列化指令的執(zhí)行。[0059]功能單元的配置設(shè)定,其為一狀態(tài),可在狀態(tài)具有不同數(shù)值時使得該功能單元以不同方式執(zhí)行其功能,而不同的方式會影響功能單元所執(zhí)行的效能、功耗和/或正確度。[0060]請參考圖1,圖1是顯示一微處理器100的功能方塊圖。微處理器100包括動態(tài)重設(shè)功能單元128、配置寄存器124、重設(shè)單元104、一或多個指紋單元102、指紋編程寄存器132(例如特定模型寄存器(modelspecificregister,MSR))、以及指紋設(shè)定準(zhǔn)則表126,其中該指紋設(shè)定準(zhǔn)則表126記錄靜態(tài)指紋,以及相關(guān)的配置設(shè)定與指紋產(chǎn)生準(zhǔn)則。盡管于圖1中未繪示,微處理器100還可包括無法動態(tài)重設(shè)的功能單元。在一實(shí)施例中,微處理器100包括一超標(biāo)量非循序執(zhí)行微架構(gòu)(superscalarout-of-orderexecut1nmicroarchitecture),盡管在此所介紹的動態(tài)可重設(shè)的處理可由包括不同微架構(gòu)的一微處理器所執(zhí)行。在一實(shí)施例中,微處理器100包括一x86指令集架構(gòu),盡管在此所介紹的動態(tài)重設(shè)的處理可由包括不同指令集架構(gòu)的微處理器所執(zhí)行。[0061]配置寄存器124,其保存保存配置設(shè)定,并提供配置設(shè)定至動態(tài)重設(shè)功能單元128以控制其特定方面的運(yùn)作。可由該配置設(shè)定以進(jìn)行動態(tài)重設(shè)處理在不同運(yùn)作方面的例子介紹于下列實(shí)施例,但非限定于此。[0062]數(shù)據(jù)提取配置設(shè)定,設(shè)定數(shù)據(jù)如何由系統(tǒng)存儲器中預(yù)先提取(prefetch)至微處理器100的不同快取存儲器中。舉例來說,微處理器100可直接預(yù)先提取高可能性的預(yù)測數(shù)據(jù)至LI數(shù)據(jù)快取中,和/或預(yù)先提取較低可能性的預(yù)測數(shù)據(jù)至一專用預(yù)先提取緩沖器,其中該專用預(yù)先提取緩沖器與LI及L2數(shù)據(jù)快取分開。在另一實(shí)施例中,對于持續(xù)觸發(fā)不需要預(yù)先提取的應(yīng)用程序,可關(guān)閉由數(shù)據(jù)預(yù)先提取器所執(zhí)行的數(shù)據(jù)提取。在又一實(shí)施例中,可關(guān)閉數(shù)據(jù)預(yù)先提取器而不處理在一軟件應(yīng)用程序中預(yù)先提取指令所請求的預(yù)先提取動作,因?yàn)樗鼈兛赡芘c在微處理器100內(nèi)部啟動的預(yù)先提取產(chǎn)生負(fù)面互動的情形。[0063]分支預(yù)設(shè)配置設(shè)定用以設(shè)定微處理器100預(yù)測分支指令的方式。舉例來說,可由分支預(yù)測器由指令快取的各數(shù)據(jù)線所預(yù)測的分支指令的數(shù)目是可以設(shè)定的。除此之外,由分支預(yù)測器所使用的獨(dú)特分支預(yù)測機(jī)制的數(shù)目亦是可以設(shè)定的。更進(jìn)一步,分支預(yù)測器可設(shè)定為一反向零值跳轉(zhuǎn)(jumponzero,JZ)分支指令會被經(jīng)常采取或是不采取。又,用于索引位于在分支預(yù)測器中的一分支目標(biāo)地址快取(branchtargetaddresscache,BTAC)的哈希算法亦是可以設(shè)定的。最后,若在該預(yù)定列表中的一或多個目前運(yùn)行的軟件應(yīng)用程序傾向于執(zhí)行高度無法預(yù)測的分支指令時,分支預(yù)測器可被設(shè)定至?xí)簳r整個關(guān)閉分支預(yù)測、或是設(shè)定至?xí)簳r關(guān)閉部分分支預(yù)測機(jī)制,例如在分支預(yù)測器中的一分支目標(biāo)地址快取。[0064]指令快取逐出(evict1n)設(shè)定,設(shè)定微處理器100將指令由指令快取逐出所使用的算法。[0065]暫停執(zhí)行(suspendexecut1n)配置設(shè)定,用以設(shè)定微處理器100是否要暫時暫停執(zhí)行程序指令。舉例來說,微處理器100可被設(shè)定為暫時暫停執(zhí)行指令,作為決定操作系統(tǒng)的空閑程序已經(jīng)確定被執(zhí)行一預(yù)定時間的回應(yīng)。[0066]LI指令快取存儲器大小配置設(shè)定、LI數(shù)據(jù)快取存儲器大小配置設(shè)定、及L2指令快取存儲器大小配置設(shè)定,分別用以設(shè)定LI指令快取、LI數(shù)據(jù)快取、及L2快取存儲器的大小。舉例來說,快取存儲器大小可依據(jù)目前運(yùn)行的一或多個軟件應(yīng)用程序的工作數(shù)據(jù)集合的大小來進(jìn)行設(shè)定。[0067]轉(zhuǎn)譯/格式化配置設(shè)定,用以設(shè)定指令轉(zhuǎn)譯器/格式化器如何轉(zhuǎn)譯和/或格式化指令。舉例來說,可以設(shè)定在各時鐘周期由指令轉(zhuǎn)譯器/格式化器所轉(zhuǎn)譯和/或格式化的指令的數(shù)目。舉例來說,指令轉(zhuǎn)譯器/格式化器可設(shè)定為在每個時鐘周期僅轉(zhuǎn)譯和/或格式化單一指令以降低微處理器100的功耗,當(dāng)此方式可滿足正在運(yùn)行應(yīng)用程序的需求時。此夕卜,指令轉(zhuǎn)譯器/格式化器可由經(jīng)合并指令而關(guān)閉降低功耗。[0068]推測尋訪(speculativetablewalk)配置設(shè)定,用以設(shè)定微處理器100的一存儲器管理單元是否回應(yīng)一轉(zhuǎn)譯側(cè)視緩沖器(translat1nlookasidebuffer,TLB)的失誤(miss)以執(zhí)行推測頁面尋訪。舉例來說,該存儲器管理單元可對一推測持續(xù)不正確的應(yīng)用程序的關(guān)閉推測其尋訪的功能,因?yàn)檫@種情況會逐出在轉(zhuǎn)譯側(cè)視緩沖器中的其他有用的項目(entry)。在一實(shí)施例中,可設(shè)定尋訪的推測強(qiáng)度。舉例來說,該存儲器管理單元可設(shè)定為在所有較舊的存儲動作已引退后、或在所有較舊的存儲動作的地址已解析、或是不管較舊的存儲動作時,僅進(jìn)行一推測頁面尋訪。此外,存儲器管理單元可設(shè)定為同時獨(dú)立控制數(shù)據(jù)與程序代碼的推測尋訪。更進(jìn)一步,存儲器管理單元可設(shè)定為可執(zhí)行推測尋訪,但并不推測地更新轉(zhuǎn)譯側(cè)視緩沖器。最后,存儲器管理單元可設(shè)定為辨識那些類型的微執(zhí)行碼或硬件功能可對例如不同的軟件或硬件預(yù)先提取進(jìn)行推測尋訪。[0069]LI快取失誤行為配置設(shè)定,用以設(shè)定存儲器管理單元是否回應(yīng)在LI指令快取的失誤、以串行或并行方式由L2快取及處理器總線請求數(shù)據(jù)。[0070]轉(zhuǎn)送哈希(forwardinghash)配置設(shè)定,用以設(shè)定微處理器100于地址比較時哈希虛擬地址位的算法,其用以檢測微處理器100是否應(yīng)執(zhí)行一數(shù)據(jù)轉(zhuǎn)送動作,例如對一較舊的未引退存儲指令的讀取(load)指令的傳送操作,或是在一讀取隊列及一填充隊列之間的傳送操作。舉例來說,下列情況可被設(shè)定:在虛擬地址的頁面索引位之外會被進(jìn)行比較的位數(shù)目、哪些非頁面索引位會被哈希以產(chǎn)生這些位、以及所選擇的位如何被哈希。[0071]隊列大小配置設(shè)定,設(shè)定在微處理器100中不同隊列的可用大小,例如是存儲隊列、讀取隊列、及快取線填充隊列。舉例來說,不同的隊列可被設(shè)定至較小的尺寸,當(dāng)其可滿足目前正在運(yùn)行的應(yīng)用程序時藉以降低功耗量。[0072]發(fā)送(issue)尺寸配置設(shè)定,設(shè)定微處理器110在單一時鐘周期中發(fā)送至不同執(zhí)行單元的指令數(shù)量。例如,當(dāng)在每個時鐘周期所發(fā)送較小數(shù)量的指令可滿足正在運(yùn)行的應(yīng)用程序時,發(fā)送尺寸配置設(shè)定可設(shè)定至相對較小的數(shù)值以降低功耗。[0073]重新排列緩沖器大小配置設(shè)定,設(shè)定在重新排列緩沖器中可用項目的數(shù)量。舉例來說,裝置驅(qū)動程序可設(shè)定重新排列緩沖器項目的數(shù)量至一相對較小的數(shù)量,當(dāng)其可滿足正在運(yùn)作的應(yīng)用程序時藉以降低功耗量。[0074]非循序(out-of-orderness)配置設(shè)定,設(shè)定微處理器100如何利用非循序執(zhí)行的指令。舉例來說,微處理器100可被設(shè)定為以一嚴(yán)謹(jǐn)程序順序以執(zhí)行指令(亦即沒有非循序執(zhí)行)。除此之外,微處理器100可對深入至指令視窗的程度,以讓指令發(fā)送器尋找獨(dú)立指令以發(fā)送至執(zhí)行單元執(zhí)行。[0075]讀取延遲配置設(shè)定,設(shè)定微處理器100的一讀取延遲機(jī)制為關(guān)閉或開啟。在一實(shí)施例中,當(dāng)微處理器100推測地發(fā)送一讀取指令時,且若其此讀取指令與一較舊的存儲指令相關(guān)且其數(shù)據(jù)尚無法取得時,表示其可能是有害于效能,此時微處理器100需重新執(zhí)行該讀取指令。為了降低重新執(zhí)行的可能性,該讀取延遲機(jī)制會依據(jù)重新執(zhí)行一讀取指令的過去歷史以選擇性地延遲該讀取指令的發(fā)送。然而,當(dāng)該讀取延遲機(jī)制開啟時,某些軟件應(yīng)用程序會具有較差效能的傾向。因此,舉例來說,對于具有上述傾向的軟件應(yīng)用程序來說,可關(guān)閉該讀取延遲機(jī)制。[0076]非時間讀取/存儲配置設(shè)定,設(shè)定微處理器100的讀取/存儲指令的行為,其包括一非時間數(shù)據(jù)暗示以防止微處理器100快取其數(shù)據(jù)。在假設(shè)微處理器100中的數(shù)據(jù)快取小于微處理器100的實(shí)際數(shù)據(jù)快取大小且若該數(shù)據(jù)被快取則會加速執(zhí)行時,某些軟件應(yīng)用程序會被寫入以利用非時間讀取/存儲指令。因此,舉例來說,微處理器100會被設(shè)定為快取由包括一非時間數(shù)據(jù)暗示的讀取/存儲指令所指定的數(shù)據(jù)。除此之外,在微處理器100中可被包括非時間數(shù)據(jù)暗示的讀取/存儲指令所讀取緩沖器的數(shù)量亦是可設(shè)定的。[0077]另一配置設(shè)定可選擇性地設(shè)定微處理器100的硬件分頁目錄快取(hardwarepagedirectorycache,F1DC)以包含分頁目錄項目(pagedirectoryentries,F1DE)或第4階的分頁表項目(fourth-levelpagetableentries,PML4)。[0078]另一配置設(shè)定可選擇性地設(shè)定數(shù)據(jù)及程序代碼轉(zhuǎn)譯側(cè)視緩沖器(TLB)項目中的兩者、一者兩者皆不會,被放置至微處理器100的L2轉(zhuǎn)譯側(cè)視緩沖器。另一配置設(shè)定可設(shè)定L2轉(zhuǎn)譯側(cè)視緩沖器的大小。[0079]另一配置設(shè)定可選擇性地設(shè)定是否已確保一軟件預(yù)先提取記憶線的配置。意即,存儲器管理單元可被設(shè)定為等待完成,直到擊中(hit)或已為該軟件預(yù)先提取記憶線推送一請求為止、或已完成但繼續(xù)在喚醒時嘗試配置該軟件預(yù)先提取記憶線。[0080]另一配置設(shè)定可設(shè)定自我調(diào)整碼檢測是否開啟或關(guān)閉。除此之外,若自我調(diào)整碼檢測開啟,微處理器100可被設(shè)定為先更正或后更正,以及執(zhí)行或不執(zhí)行完整機(jī)器清除。[0081]另一配置設(shè)定設(shè)定微處理器100的載入和/或存儲管線中的不同并行仲裁是否開啟或關(guān)閉。舉例來說,在存儲管線中的一載入有效地址(loadeffectiveaddress,LEA)的產(chǎn)生并不需要對整個管線進(jìn)行仲裁(因?yàn)槠鋾犬a(chǎn)生結(jié)果),因此微處理器100可被設(shè)定為允許需要完整管線的另一操作在同時間進(jìn)行仲裁。更進(jìn)一步,載入管線可被選擇性地設(shè)定為允許不需要讀取快取的仲裁器與需要讀取快取的仲裁器并行地進(jìn)行仲裁的情形。[0082]另一配置設(shè)定設(shè)定關(guān)于寫入合并的載入(write-combineloads)的推測的程度。舉例來說,寫入合并的載入可為完整推測、推測但仍然依照順序、或是非推測??蓪εcX86M0NVNTDQA指令有關(guān)的載入進(jìn)行類似的配置設(shè)定。[0083]另一配置設(shè)定設(shè)定存儲器管理單元是否要開啟或關(guān)閉指示微處理器100的指令調(diào)度器在一載入失誤需要用新的微操作重新執(zhí)行之后,應(yīng)該要完成載入操作的功能。上述方式允許該調(diào)度器以推測地安排相依的微操作以與載入結(jié)果轉(zhuǎn)送階段一同排隊,而不是在調(diào)度前等待提供該結(jié)果。此為推測該載入現(xiàn)在具有一有效結(jié)果,但若沒有有效結(jié)果,則需要另一重新執(zhí)行的操作。[0084]另一配置設(shè)定設(shè)定微處理器100的轉(zhuǎn)送路徑以選擇性地關(guān)閉轉(zhuǎn)送。此配置設(shè)定在微處理器后續(xù)設(shè)計時用以避開所測得的設(shè)計缺失特別有效,而且當(dāng)一特定程序部分由微處理器100執(zhí)行時該設(shè)計缺失本身可能會顯露出來。轉(zhuǎn)送的例子可為選擇性地關(guān)閉,其包括但非限定,寄存器結(jié)果轉(zhuǎn)送及載入-存儲轉(zhuǎn)送的情形。[0085]另一個動態(tài)重設(shè)功能單元128的動態(tài)重設(shè)處理實(shí)例是導(dǎo)致寄存器更名單元清除用以維持載入-存儲依存性的隊列,該隊列由寄存器更名單元所使用以影響載入指令調(diào)度,用以降低由載入-存儲沖突所造成的載入重新執(zhí)行。一般而言,功能單元128動態(tài)重設(shè)以清除累計的效能特征狀態(tài),其已知相關(guān)于一特定程序部分而言為已知或懷疑為假或變形者。[0086]另一個動態(tài)重設(shè)功能單元128的動態(tài)重設(shè)實(shí)例是導(dǎo)致一或多條快取線、或整個快取存儲器被清除以避免潛在的數(shù)據(jù)一致性的問題。此方式對于避開當(dāng)一特定程序部分由微處理器100所執(zhí)行時會顯露其本身的設(shè)計缺失特別有用。[0087]另一個動態(tài)重設(shè)功能單元128的動態(tài)重設(shè)實(shí)例是為了一架構(gòu)性指令的特定例子暫時改變該架構(gòu)性指令的微程序代碼的行為。舉例來說,微程序代碼對該架構(gòu)性指令的特定例子執(zhí)行一代碼路徑(alternatecodepath),其包含于該架構(gòu)性指令的一特定程序部分中,并在該架構(gòu)性指令中的其他例子執(zhí)行一正常碼路徑。再次重申,此方式對于避開設(shè)計缺失特別有用。[0088]重設(shè)單元104讀取與一相符靜態(tài)指紋有關(guān)的配置設(shè)定126,并將配置設(shè)定126寫入配置寄存器124以重設(shè)微處理器100的動態(tài)重設(shè)功能單元128。在一實(shí)施例中,重設(shè)單元104包括由微處理器100所執(zhí)行的微程序代碼,其執(zhí)行讀取與該相符靜態(tài)指紋有關(guān)的配置設(shè)定126以及寫入配置設(shè)定126至配置寄存器124。更適宜地,當(dāng)指紋單元102檢測到指紋相符,其會引發(fā)將控制權(quán)透過陷阱以轉(zhuǎn)往至微程序代碼。在另一實(shí)施例中,重設(shè)單元104包括硬件控制邏輯,其可回應(yīng)指紋單元102通知指紋相符以讀取與相符靜態(tài)指紋有關(guān)的配置設(shè)定126,并將該相符靜態(tài)指紋有關(guān)的配置設(shè)定126寫入配置寄存器124。重設(shè)單元104及指紋單元102利用控制信號144進(jìn)行溝通。[0089]需了解的是,在微處理器100中并非所有功能單元均是動態(tài)可重設(shè)。亦需了解的是,當(dāng)重設(shè)單元104重設(shè)動態(tài)重設(shè)功能單元128時,可能不會寫入各個配置寄存器124,且不會各個動態(tài)重設(shè)功能單元128均被重設(shè),盡管會有至少一配置寄存器124被寫入,也會有至少一動態(tài)重設(shè)功能單元128被重設(shè)。[0090]當(dāng)微處理器100的動態(tài)重設(shè)功能單元128執(zhí)行指令并累計指令信息142時,指紋單元102依據(jù)可產(chǎn)生動態(tài)指紋的數(shù)學(xué)運(yùn)算以接收來自微處理器100的動態(tài)重設(shè)功能單元128的指令信息142,其中動態(tài)指紋與靜態(tài)指紋進(jìn)行比較。更適宜地,指紋單元102包括多個指紋單元102,各指紋單元102依據(jù)不同的指紋產(chǎn)生準(zhǔn)測以產(chǎn)生一動態(tài)指紋,并將其與一靜態(tài)指紋進(jìn)行比較。在一實(shí)施例中,有4個分開的指紋單元102,且它們會被邏輯性地鏈接在一起以完成相對復(fù)雜的指令序列的檢測。指紋單元102的一實(shí)施例會在圖2中進(jìn)一步詳述。[0091]指紋編程寄存器132可由軟件(例如裝置驅(qū)動程序或基本輸入輸出系統(tǒng))進(jìn)行寫入以控制指紋單元102,以及填寫靜態(tài)指紋及其有關(guān)配置設(shè)定及指紋產(chǎn)生準(zhǔn)則126的表單。[0092]在此處所介紹的微處理器100動態(tài)重設(shè)的一個使用實(shí)例是為了增加效能和/或降低微處理器100的功耗,例如當(dāng)執(zhí)行程序的已知部分,其效能及功耗會顯著地受到動態(tài)重設(shè)該微處理器100至已知配置的影響。[0093]在此所介紹的微處理器100的動態(tài)重設(shè)處理的使用方式的另一例子是為了防止微處理器100不正確地運(yùn)作,例如當(dāng)微處理器100處理一程序的一部分時,若該程序部分由微處理器100以一第一已知配置執(zhí)行時會導(dǎo)致一功能性錯誤,但若由微處理器100以一第二已知配置執(zhí)行時會產(chǎn)生一正確結(jié)果。舉例來說,當(dāng)數(shù)據(jù)預(yù)先提取器用以執(zhí)行數(shù)據(jù)預(yù)先提取的一特別積極模式(particularlyaggressivemode)時,若微處理器100執(zhí)行該程序部分,微處理器100會產(chǎn)生一功能性錯誤。相反地,當(dāng)數(shù)據(jù)預(yù)先提取器執(zhí)行數(shù)據(jù)預(yù)先提取的一較不積極模式(lessaggressivemode)或是數(shù)據(jù)預(yù)先提取已完全關(guān)閉時,微處理器100不會產(chǎn)生功能性錯誤。功能性錯誤,例如但非限定為,數(shù)據(jù)損毀、停止條件(例如死結(jié)或活結(jié)(Iivelock))、不正常的效能緩慢、以及操作系統(tǒng)未準(zhǔn)備好補(bǔ)救的例外情況。引發(fā)微處理器100產(chǎn)生功能性錯誤的設(shè)計缺失,可能直到微處理器100大量制造和/或已出貨給顧客后仍未被發(fā)現(xiàn)。在這種情況下,藉由動態(tài)重設(shè)微處理器100以修正此問題是有幫助的,而不用透過重新設(shè)計微處理器100、和/或召回或不販?zhǔn)塾绣e誤元件的方式來處理。[0094]在此介紹的動態(tài)重設(shè)實(shí)施例的潛在好處是微處理器100可以相對較佳的尺度(granularity)來辨識軟件應(yīng)用程序的部分。此方式對于包括不同部分的軟件應(yīng)用程序來說特別有用,因?yàn)檐浖?yīng)用程序的不同部分可依據(jù)不同配置而動態(tài)重設(shè)微處理器100的功能單元而得到好處。舉例來說,一電玩游戲可包括一程序載入部分、一初始化部分、一圖形計算部分、一使用者輸入接收部分、以及一策略計算部分,各個程序部分可在微處理器100功能單元的不同配置下有較佳的效能。需了解的是,若微處理器100較快地執(zhí)行該程序部分、使用較少功耗以執(zhí)行該程序部分、和/或正確地執(zhí)行該程序部分,表示微處理器100的效能較佳。[0095]請參考圖2,圖2是顯示依據(jù)本發(fā)明一實(shí)施例中的指紋單元102的詳細(xì)功能方塊圖。指紋單元102包括一數(shù)學(xué)運(yùn)算單元222、比較邏輯226、一靜態(tài)指紋232、一衰退(decay)計數(shù)器242、以及控制邏輯234。[0096]數(shù)學(xué)運(yùn)算單元222接收來自圖1動態(tài)重設(shè)功能單元128的指令信息142,并依據(jù)一數(shù)學(xué)運(yùn)算累計指令信息以產(chǎn)生一結(jié)果224,該結(jié)果為動態(tài)指紋,其中數(shù)學(xué)運(yùn)算可參考上述實(shí)施例。在圖2的實(shí)施例中,指令信息142包括該指令的指令指針202(亦即指令地址),一位移字段(又稱為“欄位”)204、運(yùn)算碼字段206、modRM字段208、SIB字段212、及來自該指令的前綴214。在其他實(shí)施例中,其他指令字段包括指令信息142,特別是在使用不同于x86架構(gòu)的不同指令集架構(gòu)的實(shí)施例。更適宜地,指令集架構(gòu)具有可變長度指令(例如x86指令即為可變長度),且微處理器100的提取單元包括一指令格式化單元,當(dāng)由指令快取提取指令位的區(qū)塊并將其格式化至個別指令時,數(shù)學(xué)運(yùn)算電路222將在微處理器100的指令格式化單元格式化指令時接收指令信息142。在一實(shí)施例中,指令格式化單元可在每個時鐘周期格式化至多三個指令,并在每個時鐘周期為該至多三個指令提供指令信息142至數(shù)學(xué)運(yùn)算電路222。在指令集架構(gòu)具有固定長度指令的另一實(shí)施例中,當(dāng)由指令快取提取指令時,指令信息142可由提取單元所提供。[0097]更適宜地,數(shù)學(xué)運(yùn)算電路222包括一多輸入移位寄存器(multipleinputshiftregister,MISR),其使用一最大計數(shù)多項式(maximumcountpolynomial)。更適宜地,當(dāng)各指令被格式化時,該(選擇性過濾的)指令信息142是與MISR階數(shù)輸出(taps)與最左輸入位的布爾異或(BooleanX0R,互斥或)結(jié)果再右移一位的現(xiàn)階段狀態(tài)進(jìn)行互斥或運(yùn)算。在一實(shí)施例中,MISR為50位寬,且MISR的階數(shù)為49、9及O以完成該最大計數(shù)多項式。在一實(shí)施例中,產(chǎn)生一誤合(falsematch)的別名指令串(aliasstrand)的可能性大約是1:25°(250次中會產(chǎn)生一次)。如上所述,雖然指令串辨識(strandidentificat1n)可能不絕對是唯一的,在多數(shù)用途上,該辨識可為充份唯一的(sufficientlyunique),例如是增進(jìn)效能及改善設(shè)計缺失的影響。在一少見的別名指令串誤合的例子中,其結(jié)果可能為較低的效能、較高的功耗、和/或無法修正在微處理器100設(shè)計中的缺失。如上所述,指紋單元102可在每個時鐘周期接收用于多個指令的指令信息142,且數(shù)學(xué)運(yùn)算電路222執(zhí)行數(shù)學(xué)運(yùn)算以在單一時鐘周期中累計所有的指令信息142。進(jìn)一步而言,在MISR實(shí)施例中,數(shù)學(xué)運(yùn)算電路222在單一時鐘周期中執(zhí)行所有指令信息142的異或運(yùn)算。[0098]數(shù)學(xué)運(yùn)算電路222依據(jù)來自控制邏輯234所接收的信息238(其包括指紋產(chǎn)生準(zhǔn)則238)以產(chǎn)生結(jié)果。指紋產(chǎn)生準(zhǔn)則238包括起始條件、停止條件及重置條件,當(dāng)數(shù)學(xué)運(yùn)算電路222累計指令信息142以產(chǎn)生動態(tài)指紋224時作為控制之用。指紋產(chǎn)生準(zhǔn)則238亦指定數(shù)學(xué)運(yùn)算電路在累計以產(chǎn)生動態(tài)指紋224時指令信息142的部分(202,204,206,208,212,214),并暗示會被過濾的部分。更適宜地,與被過濾部分有關(guān)的位會被插入二進(jìn)位的O值。[0099]比較器224將數(shù)學(xué)運(yùn)算電路222所產(chǎn)生的動態(tài)指紋與靜態(tài)指紋232進(jìn)行比較,并在兩個指紋相符時產(chǎn)生一真值于一相符信號228上并提供至控制邏輯234。在一實(shí)施例中,當(dāng)達(dá)到一停止條件時,比較器226僅執(zhí)行比較運(yùn)算。更適宜地,一裝置驅(qū)動器和/或微程序代碼載入該靜態(tài)指紋232及指紋產(chǎn)生準(zhǔn)則238。當(dāng)控制邏輯234檢測到在該相符信號228上的真值時,控制邏輯234會利用控制信號144以將該相符情況與重設(shè)單元104進(jìn)行溝通。除此之外,控制邏輯234利用一串接信號(chainsignal)244將該相符情況與另一指紋單元102進(jìn)行溝通,其細(xì)節(jié)將于后述的圖6及圖7詳述。控制邏輯234亦接收來自其他指紋單元102的串接信號244。更進(jìn)一步,控制邏輯234可載入一衰減計數(shù)器242以回應(yīng)該相符情況,而衰減計數(shù)器的運(yùn)算將于圖5的實(shí)施例中詳述。[0100]請參考圖3,圖3是顯示在本發(fā)明一實(shí)施例中用以產(chǎn)生已知目標(biāo)程序部分及其有關(guān)的靜態(tài)指紋、配置設(shè)定及指紋產(chǎn)生準(zhǔn)則的數(shù)據(jù)庫的流程圖。該流程開始于方塊302。[0101]在方塊302,由工程師辨識程序部分的列表,其用于最佳化微處理器100的動態(tài)重設(shè)功能單元128的配置,例如增進(jìn)其效能(較快的程序部分執(zhí)行或較低的功耗)和/或修正錯誤。流程前進(jìn)至方塊304。[0102]在方塊304,工程師決定對在方塊302中所辨識的程序部分的一個,決定動態(tài)重設(shè)功能單元128的最佳化配置設(shè)定。流程前進(jìn)至方塊306。[0103]在方塊306,工程師辨識與在方塊304中所辨識的程序部分有關(guān)的指令串(strand),并設(shè)計指紋產(chǎn)生準(zhǔn)則,其可用以產(chǎn)生用于該指令串的一指紋。流程前進(jìn)至方塊308。[0104]在方塊308,工程師利用在方塊306所設(shè)計的指紋產(chǎn)生準(zhǔn)則,以產(chǎn)生用于與該程序部分有關(guān)的該指令串的一靜態(tài)指紋。流程前進(jìn)至方塊312。[0105]在方塊312,工程師存儲與該程序部分有關(guān)的靜態(tài)指紋、配置設(shè)定、以及指紋產(chǎn)生準(zhǔn)則。流程前進(jìn)至方塊314。[0106]在方塊314,工程師針對在方塊302中所指出的各個其他程序部分重復(fù)方塊304、306、308及312以編譯(compile)—數(shù)據(jù)庫。流程結(jié)束于方塊314。[0107]請參考圖4,圖4是顯示本發(fā)明一實(shí)施例中微處理器100動態(tài)重設(shè)其本身的操作流程圖。流程開始于方塊402。在方塊402,微處理器100接收圖1的指紋設(shè)定準(zhǔn)則表126以及相關(guān)的配置設(shè)定與指紋產(chǎn)生準(zhǔn)則。更適宜地,指紋設(shè)定準(zhǔn)則表126包括依據(jù)圖3的流程所編譯的數(shù)據(jù)庫的一部分。指紋設(shè)定準(zhǔn)則表126是可編程的。更適宜地,一裝置驅(qū)動器將該指紋設(shè)定準(zhǔn)則表126提供至該微處理器100。舉例來說,該裝置驅(qū)動器可對操作系統(tǒng)的一或多個正在運(yùn)作的軟件應(yīng)用程序判斷是否為編譯于數(shù)據(jù)庫者,且回應(yīng)上述動作而提供與該正在運(yùn)作的軟件應(yīng)用程序的程序部分有關(guān)的靜態(tài)指紋、配置設(shè)定及指紋產(chǎn)生準(zhǔn)則126表。選擇性地,系統(tǒng)固件,例如B1S,提供指紋設(shè)定準(zhǔn)則表126至微處理器100,特別是在動態(tài)重設(shè)用于修正錯誤的情況。又,選擇性地,指紋設(shè)定準(zhǔn)則表126可通過微程序代碼的一更新(patch)而載入微處理器100。更適宜地,在微處理器100重置后且指紋產(chǎn)生準(zhǔn)則仍不確定地或至少在微處理器100再度重置為止,微程序代碼更新會被載入,這個方式在某些情況下會特別有幫助,例如動態(tài)重設(shè)用于修正錯誤時,其會在微處理器100重置后的軟件執(zhí)行過程的早期就顯露出來。該指紋設(shè)定準(zhǔn)則表126可包括數(shù)量遠(yuǎn)大于指紋單元102的程序部分的信息,且當(dāng)程序執(zhí)行時,微處理器100的微程序代碼可動態(tài)地載入靜態(tài)指紋及指紋產(chǎn)生準(zhǔn)則至指紋單元102而不需要裝置驅(qū)動器的介入。更適宜地,指紋設(shè)定準(zhǔn)則表126被存放至微處理器100的一私有存儲器,其無法被架構(gòu)程序所存取,但可由微處理器100的微程序代碼所存取。流程前進(jìn)至方塊404。[0108]在方塊404,指紋單元102載入靜態(tài)指紋及指紋產(chǎn)生準(zhǔn)則。如上所述,其會發(fā)生在裝置驅(qū)動器寫入指紋設(shè)定準(zhǔn)則表126和/或當(dāng)微程序代碼檢測到事件,例如是指紋單元102已檢測到指紋相符時(例如圖7的方塊703)。流程前進(jìn)至方塊406。[0109]在方塊406,當(dāng)動態(tài)重設(shè)功能單元128正依據(jù)配置寄存器124中的目前配置設(shè)定而執(zhí)行指令時,指紋單元102會依據(jù)在方塊404所載入的指紋產(chǎn)生準(zhǔn)則,并基于數(shù)學(xué)運(yùn)算以累計指令信息142藉以產(chǎn)生動態(tài)指紋224,再將其與在方塊404中所載入的靜態(tài)指紋232進(jìn)行比較。流程前進(jìn)至決定方塊408。[0110]在決定方塊408,指紋單元102(例如比較器226及控制邏輯234)判斷靜態(tài)指紋及動態(tài)指紋是否相符。若相符,則流程前進(jìn)至方塊412;否則流程前進(jìn)至方塊406。[0111]在方塊412,控制邏輯234利用控制信號144通知重設(shè)單元104該相符情況,且重設(shè)單元104會回應(yīng)地利用與在方塊408中與動態(tài)指紋224相符的靜態(tài)指紋232有關(guān)的配置設(shè)定來重設(shè)動態(tài)重設(shè)功能單元128(例如藉由寫入配置寄存器124)。流程結(jié)束于方塊412。[0112]請參考圖5,圖5是顯示依據(jù)本發(fā)明一實(shí)施例中微處理器110動態(tài)重設(shè)其本身的更進(jìn)一步運(yùn)作的流程圖。該流程由方塊514開始,特別是由圖4的方塊412開始。[0113]在方塊514,控制邏輯234將相關(guān)于在方塊408中相符的靜態(tài)指紋的衰減計數(shù)值載入至衰減計數(shù)器242。更適宜地,該衰減計數(shù)值包括于圖1中的指紋設(shè)定準(zhǔn)則表126。流程前進(jìn)至方塊516。[0114]在方塊516,周期性地一特別是每時鐘周期一該衰減計數(shù)器242會減少計數(shù)。該流程前進(jìn)至決定方塊518。[0115]在決定方塊518,控制邏輯234判斷衰減計數(shù)值是否已過期(expired)。若是,則該流程前進(jìn)至方塊522;否則,該流程回到方塊516。[0116]在方塊522,控制邏輯234利用控制信號144通知重設(shè)單元104該衰減計數(shù)器242已過期,且該重設(shè)單元104回應(yīng)地以指紋設(shè)定準(zhǔn)則表126中的預(yù)設(shè)配置設(shè)定來重設(shè)動態(tài)重設(shè)功能單元128。在一實(shí)施例中,預(yù)設(shè)配置設(shè)定被編程至微程序代碼中。在一實(shí)施例中,預(yù)設(shè)配置設(shè)定包括于指紋設(shè)定準(zhǔn)則表126中。在一實(shí)施例中,預(yù)設(shè)配置設(shè)定為在方塊412中的動態(tài)重設(shè)動作執(zhí)行前的先前配置設(shè)定(亦即在方塊406中微處理器100正在執(zhí)行的指令的目前配置設(shè)定)。在一實(shí)施例中,該多個配置設(shè)定的一子集合會回到其預(yù)設(shè)值,同時該多個配置設(shè)定的另一子集合會維持在方塊412所寫入的數(shù)值。更適宜地,這些子集合均定義于指紋設(shè)定準(zhǔn)則表126中。流程結(jié)束于方塊522。[0117]請參考圖6,圖6是顯示依據(jù)本發(fā)明又一實(shí)施例中微處理器100動態(tài)重設(shè)其本身的運(yùn)作流程圖。該流程開始于方塊602。[0118]在方塊602,指紋單元102中中的一個(用第一指紋單元表示)檢測到其動態(tài)指紋224及其靜態(tài)指紋232相符,并表示該相符情況,例如藉由一串表示符(chainindicator)244。流程前進(jìn)至方塊604。[0119]在方塊604,不同的指紋單元102(用第二指紋單元表示)接收在方塊602由第一指紋單元所產(chǎn)生的表示符,并回應(yīng)地開始依據(jù)基于指紋產(chǎn)生準(zhǔn)則的數(shù)學(xué)運(yùn)算以累計指令信息142,藉以產(chǎn)生動態(tài)指紋224并將其與靜態(tài)指紋232進(jìn)行比較。該流程前進(jìn)至方塊606。[0120]在方塊606,第二指紋單元檢測到其動態(tài)指紋224及其靜態(tài)指紋232的相符情況。流程前進(jìn)至方塊608。[0121]在方塊608,控制邏輯234以控制信號144通知重設(shè)單元104相符情況已找到,且重設(shè)單元104回應(yīng)地以在方塊606中與動態(tài)指紋224相符的靜態(tài)指紋232有關(guān)的配置設(shè)定126以重設(shè)動態(tài)重設(shè)功能單元128。流程結(jié)束于方塊608。[0122]請參考圖7,圖7是顯示依據(jù)本發(fā)明又一實(shí)施例中微處理器100動態(tài)重設(shè)其本身的運(yùn)作流程圖。該流程開始于方塊702。[0123]在方塊702,指紋單元102中的一個檢測到其動態(tài)指紋224及其靜態(tài)指紋232相符,并表示該相符情況,例如通過控制信號144。流程前進(jìn)至方塊703。[0124]在方塊703,重設(shè)單元104載入具有一新靜態(tài)指紋232及其相關(guān)的指紋產(chǎn)生準(zhǔn)則至指紋單元102,藉以回應(yīng)在方塊702中已找到該相符情況的表示。流程前進(jìn)至方塊704。[0125]在方塊704,指紋單元102依據(jù)基于在方塊703中所載入的該新指紋產(chǎn)生準(zhǔn)則的數(shù)學(xué)運(yùn)算以累計指令信息142,藉以產(chǎn)生動態(tài)指紋224,并將其與靜態(tài)指紋232進(jìn)行比較。流程前進(jìn)至方塊706。[0126]在方塊706,指紋單元102檢測到其動態(tài)指紋224及其靜態(tài)指紋232的一相符情況。流程前進(jìn)至方塊708。[0127]在方塊708,控制邏輯234以控制信號144通知重設(shè)單元104已找到新的相符情況,且重設(shè)單元104回應(yīng)地以在方塊706中與動態(tài)指紋224相符的新靜態(tài)指紋232有關(guān)的配置設(shè)定以重設(shè)動態(tài)重設(shè)功能單元128。流程結(jié)束于方塊708。[0128]雖然圖7描述指紋單元102僅一次有效地串接至其本身(chain),更適宜地,指紋單元102可串接至其本身更多次。更進(jìn)一步,雖然圖6中僅描述兩個指紋單元102的串接,更適宜地,所有的指紋單元102可依同樣的方式進(jìn)行串接。更進(jìn)一步,圖6的實(shí)施例可與圖7的實(shí)施例合并,使得用于正在搜尋的相符情況的目前載入至指紋單元102的靜態(tài)指紋的集合會動態(tài)地變化,使得具有長于指紋單元102的數(shù)量的程序部分之鏈結(jié)的數(shù)量可被檢測至IJ,且動態(tài)重設(shè)功能單元128可依據(jù)需求被動態(tài)重設(shè)。[0129]請參考圖8,圖8是顯示依據(jù)本發(fā)明另一實(shí)施例中圖1的指紋單元102的方塊圖。圖8的指紋單元102與圖2中的指紋單元102類似,然而其包括了一指令計數(shù)器822、一第二比較器826、以及一靜態(tài)指令計數(shù)值832。[0130]指令計數(shù)器822接收來自圖1的動態(tài)重設(shè)功能性單元128的指令信息142,其為一動態(tài)計數(shù)值,并在每次遇到由控制邏輯234所接收的指令計數(shù)產(chǎn)生準(zhǔn)則838所指定類型的指令時產(chǎn)生一結(jié)果824。更適宜地,指令計數(shù)產(chǎn)生準(zhǔn)則838指定要計數(shù)的指令類型。在一實(shí)施例中,要計數(shù)的指令類型包括所有指令、子程序調(diào)用類型指令、回傳類型指令(returntypeinstruct1n)、NOP類型指令、以及限制在微程序代碼的指令(意即用微程序代碼實(shí)現(xiàn))。在一實(shí)施例中,數(shù)學(xué)運(yùn)算電路222僅累計特定類型且由指令計數(shù)器所計數(shù)的指令信息142,而所排除的指令類型的指令信息142不會被數(shù)學(xué)運(yùn)算電路222所累計。在一實(shí)施例中,NOP指令包括除了單字節(jié)X86N0P指令之外的指令,例如是多字節(jié)指令,其可有效地做為一NOP指令(0x90),其細(xì)節(jié)將于圖10中詳述。[0131]比較器826比較由指令計數(shù)器822所產(chǎn)生的比較動態(tài)指令計數(shù)值824及靜態(tài)指令計數(shù)值832,若兩個指令計數(shù)值相符,則產(chǎn)生一真值于提供至控制邏輯234的一第二相符信號。在一實(shí)施例中,當(dāng)達(dá)到一停止條件時,比較器826僅進(jìn)行比較動作。更適宜地,一裝置驅(qū)動器和/或微程序代碼載入靜態(tài)指令計數(shù)值832及指令計數(shù)產(chǎn)生準(zhǔn)則838。當(dāng)控制邏輯234檢測到在相符信號828的一真值時,控制邏輯234利用控制信號144通知重設(shè)單元104該相符情況。除此之外,控制邏輯234利用一串接信號244通知其他的指紋單元102該相符情況。控制邏輯234可載入衰減計數(shù)值242以回應(yīng)該相符情況。更適宜地,可采用類似于圖3所述的方式將靜態(tài)指令計數(shù)值832及指令計數(shù)產(chǎn)生準(zhǔn)則838編譯至已知目標(biāo)程序部分的數(shù)據(jù)庫中。[0132]請參考圖9,圖9是顯示依據(jù)本發(fā)明一實(shí)施例中的微處理器100動態(tài)重設(shè)其本身的運(yùn)作流程圖。圖9在某些方面與圖4類似;然而,圖9描述指紋單元102的運(yùn)作以動態(tài)重設(shè)微處理器100的操作回應(yīng)檢測到一靜態(tài)指令計數(shù)值而不是一靜態(tài)指紋,其細(xì)節(jié)如下所述。然而,需注意的是指紋單元102可用以同時檢測指紋及指令計數(shù)值。除此之外,指紋單元102可用串接的方式運(yùn)作(例如圖6及圖7的實(shí)施例所述),讓指紋單元102載入以同時檢測所需的指紋及指令計數(shù)值以動態(tài)重設(shè)微處理器100。流程開始于方塊902。[0133]在方塊902,微處理器100接收包括靜態(tài)指令計數(shù)值及圖1中有關(guān)的配置設(shè)定及指令計數(shù)產(chǎn)生準(zhǔn)則的指紋設(shè)定準(zhǔn)則表126。流程前進(jìn)至方塊904。[0134]在方塊904,指紋單元102載入靜態(tài)指令計數(shù)值及指令計數(shù)產(chǎn)生準(zhǔn)則。流程前進(jìn)至方塊906。[0135]在方塊906,當(dāng)動態(tài)重設(shè)功能性單元128正依據(jù)在配置寄存器124中的目前配置設(shè)定以執(zhí)行指令時,指紋單元102依據(jù)在方塊904中所載入的指令計數(shù)產(chǎn)生準(zhǔn)則以計數(shù)指令,藉以產(chǎn)生動態(tài)指令計數(shù)值824,并將其與在方塊904中所載入的靜態(tài)指令計數(shù)值832進(jìn)行比較。流程前進(jìn)至決定方塊908。[0136]在決定方塊908,指紋單元102(例如比較器826及控制邏輯)決定在靜態(tài)指令計數(shù)值及動態(tài)指令計數(shù)值之間是否相符。若是,則該流程前進(jìn)至方塊912;否則,流程回到方塊906。[0137]在方塊912,控制邏輯234利用控制信號144通知重設(shè)單元104該相符情況,且重設(shè)單元104回應(yīng)地利用在方塊908中與動態(tài)指令計數(shù)值相符的靜態(tài)指令計數(shù)值有關(guān)的配置設(shè)定以重設(shè)動態(tài)重設(shè)功能性單元128(例如,對組態(tài)暫存器124進(jìn)行寫入操作)。流程結(jié)束于方塊912。[0138]上述所介紹的動態(tài)重設(shè)的實(shí)施例包含成本取舍的議題。首先,指紋單元的硬件芯片實(shí)際面積及功耗會有成本。第二,改變配置設(shè)定亦會有成本,其來自暫時停止(suspend)指令處理以改變配置設(shè)定。此成本也可來自所辨識別名指令串為少數(shù)實(shí)例而改變的配置設(shè)定所導(dǎo)致較低的效能。[0139]整合NOP滑動檢測器[0140]在此所介紹的指紋單元的另一個用處是檢測一NOP滑動(可稱為NOPslide或NOPsled)。[0141]NOP滑動指來自一處理器提取并執(zhí)行指令的一存儲器的連續(xù)NOP指令序列。NOP滑動通常是入侵者未經(jīng)許可訪問計算機(jī)系統(tǒng)的途徑。NOP指令指可執(zhí)行一運(yùn)作的指令,但它并不影響處理器的架構(gòu)狀態(tài)、或是在入侵者試圖未經(jīng)許可訪問計算機(jī)系統(tǒng),包括處理器所接受的情形下,一部分影響架構(gòu)狀態(tài)。NOP滑動的使用在計算機(jī)安全的領(lǐng)域?yàn)橐阎夹g(shù),但在此會簡短介紹。[0142]入侵者會試圖發(fā)掘在計算機(jī)系統(tǒng)上運(yùn)作的具有執(zhí)行權(quán)限(executiveprivileges)軟件的弱點(diǎn)。藉由發(fā)現(xiàn)弱點(diǎn),入侵者可讓「殼碼(shellcode)」寫入至計算機(jī)系統(tǒng)的存儲器中。殼碼會執(zhí)行對攻擊者有利的動作,例如提供系統(tǒng)的訪問執(zhí)行權(quán)限,其目的是讓控制權(quán)轉(zhuǎn)移到殼碼。然而,某些已發(fā)現(xiàn)弱點(diǎn)的性質(zhì)是讓在存儲器中的目標(biāo)地址不知不覺地轉(zhuǎn)移,因此目標(biāo)地址是無法準(zhǔn)確得知的。當(dāng)然,在一些例子中根本不知道目標(biāo)地址,而入侵者依賴少量相似性統(tǒng)計將目標(biāo)地址視為殼碼。第一種方式是入侵者試圖以寫入許多殼碼的拷貝至存儲器來增強(qiáng)少量相似度統(tǒng)計。第二種方式是用許多不同次數(shù)來嘗試攻擊。第三種方式是使用NOP滑動。[0143]入侵者會將NOP滑動寫入在殼碼之前,亦即,其可為轉(zhuǎn)移控制權(quán)提供一安全降落點(diǎn)。NOP滑動可能非常大,舉例來說,可以是是數(shù)十萬字節(jié)大小,只要目標(biāo)地址的控制權(quán)轉(zhuǎn)移到NOP滑動之內(nèi)的某處,處理器會僅執(zhí)行NOP指令,直到其達(dá)到并執(zhí)行殼碼為止。執(zhí)行(一可能大數(shù)量)的NOP指令對于入侵者來說是可接受的,因?yàn)槌侨肭终咚魂P(guān)心的方式,NOP指令不會改變處理器的架構(gòu)狀態(tài)。入侵者可能會寫入NOP滑動的許多拷貝及殼碼,且可能嘗試許多次使用這種方式進(jìn)行入侵,而上述全部方式的合并可增進(jìn)取得已執(zhí)行殼碼的相似度。[0144]因?yàn)镹OP滑動常常會包含于在入侵者的攻擊中,計算機(jī)系統(tǒng)可分析在網(wǎng)絡(luò)上傳輸至一計算機(jī)系統(tǒng)的分組以搜尋一NOP滑動。若在一分組中檢測到NOP滑動,該分組會被丟棄(discard)。該技巧常常用于網(wǎng)絡(luò)攻擊檢測系統(tǒng)(networkintrus1ndetect1nsystem,NIDS)。NIDS的缺點(diǎn)是分組可能被加密,因此會更難檢測NOP滑動。更進(jìn)一步,攻擊者的輸入包括NOP滑動及殼碼也可能被加密。在此處所介紹的NOP滑動檢測器的實(shí)施例的優(yōu)點(diǎn)是其可在當(dāng)處理器中的NOP指令序列將要被執(zhí)行時檢測該序列,也因此可保證在當(dāng)時一定會被解碼且被NOP滑動檢測器所檢查。[0145]請參考圖10,圖10是顯示依據(jù)本發(fā)明一實(shí)施例中微處理器100檢測NOP滑動的運(yùn)作流程圖,特別是指紋單元102被使用為一NOP滑動檢測器。NOP指令為可執(zhí)行一動作的指令,其不會影響到處理器的架構(gòu)狀態(tài)(除了更新指令指針)或是僅以一預(yù)定方式影響架構(gòu)狀態(tài)。微處理器100的設(shè)計者在設(shè)計預(yù)定方式時,需了解對入侵者而言有哪些未經(jīng)許可而得到計算機(jī)系統(tǒng),包括微處理器100,的訪問權(quán)的方式是可接受的,且此方式會隨著殼碼所采取的動作而變化。依據(jù)不同實(shí)施例,在方塊1004由指令計數(shù)器822所計數(shù)的NOP指令的列表,其為了重置條件的目的用于判斷非NOP指令,如下所述一包括下面多種組合:微處理器100的指令集中的架構(gòu)性定義的NOP指令(例如x86架構(gòu)NOP指令,0x90);分支(branch)指令,其分支至下一循序指令;除了架構(gòu)狀態(tài)的一預(yù)定集合之外,例如是一或兩個條件標(biāo)志寄存器(例如X86EFLAGS),及堆迭指針寄存器不會改變微處理器100的架構(gòu)狀態(tài)的指令。例如下列x86架構(gòu)指令:PUSHES(0x06),PUSHCS(OxOE),PUSHSS(0x16),PUSHDS(OxlE)、PUSHregister(0x50-0x57),PUSHSP(0x5C),PUSHA(0x60)、WAIT(0x9B)、SAHF(0x9E),REPNEprefix(0xF2)、CLD(OxFC)、STD(OxFD)、CLC(0xF8)、STC(0xF9)、CMC(0xF5)。除此之外,在微處理器100的指令集架構(gòu)具有變長度指令的一實(shí)施例中,NOP指令的列表會被包含于包括多字節(jié)NOP指令的多種組合中,其中個別所取得的指令的各字節(jié)為一NOP指令。換個方式來說,一多字節(jié)NOP指令具有一種特性,使得若控制權(quán)轉(zhuǎn)移至指令的任何字節(jié),剩下的字節(jié)或指令的字節(jié)會構(gòu)成微處理器100的指令集架構(gòu)所定義的一有效指令(例如不會產(chǎn)生一無效指令例外),否則具有與一單字節(jié)NOP指令相同的特性。下列例子為x86架構(gòu)的多字節(jié)NOP指令:2字節(jié)CMP指令,其中modRM位具有一單字節(jié)NOP指令(ox38_0x3B)的數(shù)值;2字節(jié)CMP指令,其中的直接字節(jié)具有一單元字節(jié)NOP指令(0x3C)的數(shù)值;3字節(jié)CMP指,其中的modRM字節(jié)及直接字節(jié)具有一單字節(jié)NOP指令(0x80,0x83)的數(shù)值;2字節(jié)TST指令,其中modRM字節(jié)具有一單字節(jié)NOP指令(0x84-0x85)的數(shù)值;2字節(jié)TST指令,其中的直接字節(jié)具有一單一字節(jié)NOP指令(0xA8)的數(shù)值;2字節(jié)包裝指令,其中modRM字節(jié)具有一單一字節(jié)NOP指令的數(shù)值,例如是PMADDWD(0xF5)、PSUBB(0xF8)、PSUBff(0xF9)、PADDB(OxFC)、PADDW(OxFD)。流程開始于方塊1002。[0146]在方塊1002,指紋單元102載入靜態(tài)指令計數(shù)值822及指令計數(shù)產(chǎn)生準(zhǔn)則838,如同圖8及圖9的實(shí)施例所述的方式。更適宜地,靜態(tài)指令計數(shù)值832可讓使用者或系統(tǒng)軟件藉由指紋編程寄存器132而可編程。在一實(shí)施例中,靜態(tài)指令計數(shù)值832通過微處理器100的熔絲而可編程。在一實(shí)施例中,起始條件為檢測一回傳指令,重置條件為檢測到不是一NOP指令的指令(即為非NOP指令),且沒有指定停止條件其他實(shí)施例亦在本發(fā)明中被考慮,例如其起始條件為檢測到一子程序調(diào)用指令、由中斷指令回傳、或是一系統(tǒng)調(diào)用或回傳指令。流程前進(jìn)至方塊1004。[0147]在方塊1004,當(dāng)微處理器100正提取并執(zhí)行指令,指紋單元102依據(jù)在方塊1002所指出的指令計數(shù)產(chǎn)生準(zhǔn)則838以計算連續(xù)NOP指令,藉以產(chǎn)生一動態(tài)指令計數(shù)值824,并以所產(chǎn)生的動態(tài)指令計數(shù)值824與在方塊1002所載入的靜態(tài)指令計數(shù)值832進(jìn)行比較。流程前進(jìn)至決定方塊1006。[0148]在決定方塊1006,指紋單元102判斷動態(tài)指令計數(shù)值824是否與靜態(tài)指令計數(shù)值832相符。若是,則該流程前進(jìn)至方塊1008;否則,流程回到方塊1004。[0149]在方塊1008,指紋單元102回應(yīng)微處理器100暫停(suspend)架構(gòu)指令的執(zhí)行以表示該相符情況。更適宜地,指紋單元102造成微程序代碼的陷阱(trap)以回應(yīng)檢測到該相符情況(例如,回應(yīng)檢測到NOP滑動)。在一實(shí)施例中,微程序代碼產(chǎn)生一無效運(yùn)算碼錯誤(例如x86架構(gòu)的INT6)ο在一實(shí)施例中,微程序代碼產(chǎn)生一機(jī)器檢查例外(machinecheckexcept1n,例如是x86架構(gòu)的#MC,vector編號18)。在一實(shí)施例中,若微處理器100處于一虛擬機(jī)器模式(例如是x86的VMXmode),該微程序代碼離開該虛擬機(jī)器模式。在一實(shí)施例中,若微處理器處于一信任執(zhí)行模式(trustedexecut1nmode),微程序代碼采取一安全例外動作(securityexcept1n)。流程結(jié)束于方塊1008。[0150]雖然指紋單元及數(shù)學(xué)運(yùn)算電路的特定實(shí)施例已被公開,需了解的是其他實(shí)施例可用于產(chǎn)生動態(tài)指紋及指令計數(shù)值,并檢測靜態(tài)指紋及指令計數(shù)值的相符情況。[0151]雖然以上敘述本發(fā)明多種實(shí)施方式,必須聲明的是,上述內(nèi)容乃本技術(shù)的部分應(yīng)用例子,并非用來限定本發(fā)明的范圍。本領(lǐng)域技術(shù)人員可依循本發(fā)明特征,以現(xiàn)有技術(shù)另外發(fā)展出許多變形。例如,可以軟件方式實(shí)現(xiàn)本申請所公開的內(nèi)容,例如,所公開的設(shè)備或方法的功能、制作、模型化、模擬、說明和/或測試。上述軟件可采用常見的程序語言(例如,C、C++)、硬件描述語言(hardwaredescript1nlanguage,HDL)包括VerilogHDL、VHDL...等或其他可用的程序語言。上述軟件可載于現(xiàn)有的任何計算機(jī)存儲介質(zhì),例如,磁記錄裝置(magnetictape)、半導(dǎo)體(semiconductor)、硬盤(magneticdisk)、或光盤(opticaldisc、如⑶-R0M、DVD-R0M等),也可載于網(wǎng)絡(luò)、有線系統(tǒng)、或其他通訊媒體。本發(fā)明所公開的各種裝置與方法可由一半導(dǎo)體知識產(chǎn)權(quán)內(nèi)核一例如一微處理器內(nèi)核,可由硬件描述語言實(shí)現(xiàn)一保護(hù),且可被轉(zhuǎn)換為硬件型式,以集成電路方式制作。此外,所公開的裝置與方法也可由硬件與軟件共同設(shè)計實(shí)現(xiàn)。因此,本發(fā)明不應(yīng)受上述任何實(shí)施方式所限定,應(yīng)當(dāng)根據(jù)權(quán)利要求書的內(nèi)容作解讀。特別是,本發(fā)明可被實(shí)現(xiàn)于一微處理器中,實(shí)現(xiàn)一般常用的計算機(jī)。本發(fā)明所屬【
技術(shù)領(lǐng)域
】人員有可能基于本發(fā)明,以所公開的概念以及所述的特殊實(shí)施方式為基礎(chǔ),設(shè)計或調(diào)整其他結(jié)構(gòu),以在不偏離權(quán)利要求書所界定的內(nèi)容的前提下,發(fā)展與本發(fā)明具有同樣目的的技術(shù)。[0152]相關(guān)申請的交叉引用[0153]本申請要求于2013年9月20日提交的美國專利申請序列號61/880,620(案號CNTR2701100-USPPA)和于2013年10月10日提交的美國專利申請序列號14/050,687(案號CNTR2701100-US)的優(yōu)先權(quán),通過弓丨用而為了所有目的將其全部內(nèi)容合并于此?!緳?quán)利要求】1.一種用于微處理器的動態(tài)重設(shè)方法,該微處理器至少包括指紋單元及動態(tài)重設(shè)功能單元,該方法包括:接受靜態(tài)指紋以及指紋產(chǎn)生準(zhǔn)則的指紋設(shè)定準(zhǔn)則表,其中該靜態(tài)指紋用于優(yōu)化該微處理器的該動態(tài)重設(shè)功能單元的配置,其中該靜態(tài)指紋由工程師辨識用于優(yōu)化該動態(tài)重設(shè)功能單元的該配置的程序部分、依據(jù)與該程序部分有關(guān)的指令串設(shè)計該指紋產(chǎn)生準(zhǔn)則、并利用該指紋產(chǎn)生準(zhǔn)則所產(chǎn)生;當(dāng)該動態(tài)重設(shè)功能單元正依據(jù)目前配置設(shè)定而執(zhí)行指令時,該指紋單元產(chǎn)生動態(tài)指紋并與該靜態(tài)指紋進(jìn)行比較;以及當(dāng)該靜態(tài)指紋與該動態(tài)指紋相符時,重設(shè)該動態(tài)重設(shè)功能單元。2.如權(quán)利要求1所述的方法,其中該靜態(tài)指紋用于與該程序部分有關(guān)的該指令串。3.如權(quán)利要求2所述的方法,其中與該程序部分有關(guān)的該靜態(tài)指紋、與該靜態(tài)指紋有的關(guān)配置設(shè)定、以及該指紋產(chǎn)生準(zhǔn)則編譯于數(shù)據(jù)庫中?!疚臋n編號】G06F9/30GK104461464SQ201410768028【公開日】2015年3月25日申請日期:2014年9月19日優(yōu)先權(quán)日:2013年9月20日【發(fā)明者】G.G.亨利,羅德尼.E.虎克,柯林.艾迪,泰瑞.派克斯申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
比如县| 闵行区| 石河子市| 泗水县| 嵊泗县| 建瓯市| 盘山县| 兴海县| 岳西县| 黄平县| 武平县| 溆浦县| 西乡县| 太谷县| 马边| 栾城县| 嘉荫县| 西乌珠穆沁旗| 花垣县| 黄梅县| 乳源| 桦甸市| 焦作市| 岚皋县| 海盐县| 榕江县| 普安县| 滦南县| 通榆县| 龙泉市| 镇平县| 山东| 双鸭山市| 平昌县| 湘乡市| 建始县| 德庆县| 平塘县| 静宁县| 江山市| 柘荣县|