專利名稱::運(yùn)算系統(tǒng)及設(shè)定運(yùn)算系統(tǒng)的方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于微處理器,特別是有關(guān)于一種系統(tǒng)及方法,其用以基于目前在該微處理器上執(zhí)行的應(yīng)用軟件,而動(dòng)態(tài)地設(shè)定微處理器的運(yùn)作特性。
背景技術(shù):
:微處理器的設(shè)計(jì)者花費(fèi)很多心力在效能分析上。在以先前幾代的微處理器為基礎(chǔ),設(shè)計(jì)了具有基本特性及效能目標(biāo)之后,即執(zhí)行對(duì)于客戶而言最重要的應(yīng)用軟件,并擷取該應(yīng)用軟件的指令執(zhí)行記錄,然后使用擷取的指令記錄來觸發(fā)所設(shè)計(jì)的微處理器的運(yùn)作,其可以設(shè)定被觸發(fā)的微處理器的不同特性,以使得所有的目標(biāo)應(yīng)用軟件的總和效能達(dá)到最高。通常,某個(gè)特定的設(shè)定對(duì)于某個(gè)目標(biāo)應(yīng)用軟件的執(zhí)行效能有益,但是對(duì)其它的應(yīng)用軟件的執(zhí)行效能無益。此時(shí),設(shè)計(jì)者必須決定哪一個(gè)應(yīng)用軟件是比較重要的,或者尋找另一個(gè)方法以平衡數(shù)個(gè)應(yīng)用軟件的需要。因?yàn)橐沟媚硞€(gè)應(yīng)用軟件的效能最佳化,常常必須要犧牲另一個(gè)應(yīng)用軟件的執(zhí)行效能。當(dāng)最佳平均運(yùn)作參數(shù)值確定之后,微處理器的設(shè)計(jì)者將其編碼到設(shè)計(jì)中(例如以VHDL或verilog語法)。另外,也可通過在微處理器中包含一組保險(xiǎn)絲,其在微處理器制造的過程中會(huì)選擇性地?zé)龜?,以改變其硬件?gòu)成的運(yùn)作參數(shù)。這使得微處理器在制造時(shí),還能夠?qū)?yīng)于在微處理器設(shè)計(jì)完成之后新加入的應(yīng)用軟件或操作系統(tǒng),進(jìn)行有限度的最佳化。但是,此種解決方案,需要有設(shè)計(jì)者/制造者針對(duì)某些應(yīng)用軟件選取較佳的設(shè)定,而犧牲了其它的應(yīng)用軟件的執(zhí)行效能,或者,選取一個(gè)可能對(duì)于每一個(gè)應(yīng)用軟件而言都不是最佳的折衷設(shè)定,最后還是無法達(dá)成目標(biāo)應(yīng)用軟件的效能最佳化。
發(fā)明內(nèi)容本發(fā)明提供一種裝置驅(qū)動(dòng)器,其在微處理器運(yùn)作時(shí),動(dòng)態(tài)地設(shè)定其操作模式,以針對(duì)目前正在執(zhí)行的應(yīng)用軟件,以改善效能及/或電力消耗。依據(jù)一實(shí)施態(tài)樣,本發(fā)明提供一種運(yùn)算系統(tǒng)。該運(yùn)算系統(tǒng)包括微處理器,接收用以設(shè)定該微處理器操作模式的數(shù)值。該微處理器還執(zhí)行操作系統(tǒng),其控制哪些應(yīng)用軟件正在該微處理器中運(yùn)作。該運(yùn)算系統(tǒng)并包括裝置驅(qū)動(dòng)器,其監(jiān)視正在該微處理器中運(yùn)作的應(yīng)用軟件中有哪些是在預(yù)定的應(yīng)用軟件列表中,并據(jù)以動(dòng)態(tài)地將該數(shù)值寫入該微處理器中以設(shè)定其操作模式。依據(jù)另一實(shí)施態(tài)樣,本發(fā)明提供一種設(shè)定運(yùn)算系統(tǒng)的方法,該運(yùn)算系統(tǒng)包含微處理器及裝置驅(qū)動(dòng)器。該方法包括由該微處理器接收用以設(shè)定該微處理器操作模式的數(shù)值。該微處理器執(zhí)行操作系統(tǒng),并控制哪些應(yīng)用軟件正在該微處理器中運(yùn)作。該方法并包括由裝置驅(qū)動(dòng)器監(jiān)視正在該微處理器中運(yùn)作的應(yīng)用軟件中有哪些是在預(yù)定的應(yīng)用軟件列表中,并據(jù)以動(dòng)態(tài)地將該數(shù)值寫入該微處理器中以設(shè)定其操作模式。該裝置驅(qū)動(dòng)器能夠設(shè)定的操作模式是如下列數(shù)據(jù)預(yù)先擷?。环种ьA(yù)測(cè);指令高速緩存退出;指令執(zhí)行暫停;高速緩存大小;重排序緩沖;儲(chǔ)存/加載/填充隊(duì)列;和數(shù)據(jù)傳遞及分支目標(biāo)地址高速緩沖存儲(chǔ)器索引相關(guān)的雜湊算法;每個(gè)計(jì)時(shí)周期中轉(zhuǎn)換、格式化及發(fā)出的指令數(shù)量;加載延遲機(jī)制;推測(cè)頁面表格查找;指令合并;亂序執(zhí)行延伸;非暫時(shí)數(shù)據(jù)暗示的高速緩沖存儲(chǔ)器;及對(duì)應(yīng)于指令高速緩沖存儲(chǔ)器遺失的L2高速緩沖存儲(chǔ)器及處理器總線的串聯(lián)或并聯(lián)存取。本發(fā)明的功效包括其可以以高效能及/或低耗能的方式執(zhí)行重要的應(yīng)用軟件。為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點(diǎn)能更明顯易懂,下文特舉出較佳實(shí)施例,并配合所附圖式,作詳細(xì)說明如下。圖1顯示本發(fā)明的包含微處理器和裝置驅(qū)動(dòng)器的運(yùn)算系統(tǒng)的方塊圖。圖2顯示依據(jù)本發(fā)明圖1中微處理器的不同操作模式設(shè)定值的示意圖。圖3顯示本發(fā)明的圖1的系統(tǒng)的運(yùn)作流程圖。[主要元件標(biāo)號(hào)說明]運(yùn)算系統(tǒng)100;微處理器102;裝置驅(qū)動(dòng)器104;操作系統(tǒng)106;系統(tǒng)存儲(chǔ)器108;操作模式設(shè)定值暫存器112;—階指令高速緩沖存儲(chǔ)器(level-linstructioncache)114;—階數(shù)據(jù)高速緩沖存儲(chǔ)器(level-1datacache)116;二階高速緩沖存儲(chǔ)器(level-2cache)118;分支預(yù)測(cè)器122;數(shù)據(jù)預(yù)先擷取器124;電力管理單元126;指令轉(zhuǎn)換/格式器128;應(yīng)用列表文件132;應(yīng)用程序名稱134;操作模式設(shè)定值136;預(yù)設(shè)操作模式設(shè)定值138;存儲(chǔ)器管理單元(醒U)142;重排序緩沖器(R0B)144;數(shù)據(jù)預(yù)先擷取模式字段202;分支預(yù)測(cè)模式字段204;指令高速緩沖存儲(chǔ)器退出模式字段206;暫停執(zhí)行模式字段208;Ll指令高速緩存大小字段212;Ll數(shù)據(jù)高速緩存大小字段214;L2高速緩存大小字段216;轉(zhuǎn)換/格式大小字段218;推測(cè)表格查找字段222;Ll高速緩沖存儲(chǔ)器遺失行為字段224;傳送雜湊字段226;隊(duì)列大小字段228;發(fā)出大小字段232;ROB大小字段234;亂序字段236;載入延遲字段238;非暫時(shí)載入/儲(chǔ)存字段242。具體實(shí)施例方式本發(fā)明是關(guān)于一個(gè)裝置驅(qū)動(dòng)器其監(jiān)視正在操作系統(tǒng)的運(yùn)作程序中的應(yīng)用軟件,并據(jù)以動(dòng)態(tài)地將該數(shù)值寫入微處理器中,以針對(duì)該正在執(zhí)行的應(yīng)用軟件設(shè)定較佳的操作模式。該裝置驅(qū)動(dòng)器可以依據(jù)效能及/或電力消耗來設(shè)定該較佳操作模式。在此的「裝置驅(qū)動(dòng)器」(devicedriver)是指一般所謂的裝置驅(qū)動(dòng)器,以及動(dòng)態(tài)連接數(shù)據(jù)庫或能夠直接寫入微處理器中以改變其操作模式的其它軟件元件。在此的「應(yīng)用軟件」(softwareapplication)則指一般所謂的應(yīng)用軟件,以及動(dòng)態(tài)連接數(shù)據(jù)庫或操作系統(tǒng)視為運(yùn)作程序的其它軟件元件。特別的是,該裝置驅(qū)動(dòng)器周期性地向操作系統(tǒng)查詢目前正在執(zhí)行的程序的程序名稱,并將其與一個(gè)應(yīng)用列表中的應(yīng)用軟件的名稱比對(duì),微處理器設(shè)計(jì)者已經(jīng)針對(duì)該應(yīng)用列表中的每一個(gè)應(yīng)用軟件設(shè)定其較佳的微處理器操作模式。依據(jù)一實(shí)施例,該應(yīng)用列表包含于該裝置驅(qū)動(dòng)器存取的加密文件中。依據(jù)一實(shí)施例,該應(yīng)用列表包含微處理器設(shè)計(jì)者認(rèn)為對(duì)于客戶重要的軟件,包含評(píng)估微處理器的單位(entity)。參見圖1,其顯示本發(fā)明的包含微處理器102和裝置驅(qū)動(dòng)器104的運(yùn)算系統(tǒng)100的方塊圖。微處理器102包括由裝置驅(qū)動(dòng)器104所寫的操作模式設(shè)定值暫存器112。微處理器102亦包含功能單元,亦即一階指令高速緩沖存儲(chǔ)器(level-1instructioncache)114、一階數(shù)據(jù)高速緩沖存儲(chǔ)器(level-1datacache)116、二階高速緩沖存儲(chǔ)器(level-2cache)118、分支預(yù)測(cè)器122、數(shù)據(jù)預(yù)先擷取器124、電力管理單元126、指令轉(zhuǎn)換/格式器128、存儲(chǔ)器管理單元(MMU)142、重排序緩沖器(R0B)144。每一個(gè)功能單元都可以由裝置驅(qū)動(dòng)器104依據(jù)操作模式設(shè)定值暫存器112的內(nèi)容設(shè)定為一或多個(gè)操作模式。在其它實(shí)施例中,功能單元的數(shù)量及種類可以與圖l所示的不同。微處理器102和系統(tǒng)存儲(chǔ)器108連接。系統(tǒng)存儲(chǔ)器108儲(chǔ)存裝置驅(qū)動(dòng)器104、操作系統(tǒng)106及應(yīng)用列表文件132。裝置驅(qū)動(dòng)器104和應(yīng)用列表文件132可以在一開始就儲(chǔ)存在該系統(tǒng)的非易失性存儲(chǔ)器(如磁盤驅(qū)動(dòng)器)(圖未顯示)中,并由操作系統(tǒng)106加載系統(tǒng)存儲(chǔ)器108中。應(yīng)用列表文件132包含多個(gè)項(xiàng)目(entry),每一項(xiàng)目具有應(yīng)用程序名稱134,以及和該應(yīng)用程序名稱134對(duì)應(yīng)的一組操作模式設(shè)定值136。應(yīng)用列表文件132亦包含預(yù)設(shè)操作模式設(shè)定值138。應(yīng)注意的是,所謂的r應(yīng)用軟件」,并不限于某些場合中的意義,例如像微軟的Word或AdobeAcrobat等使用者應(yīng)用軟件。在此所謂的「應(yīng)用軟件」或「應(yīng)用程序」可以是指任何軟件線程,其可以執(zhí)行為一個(gè)可以由操作系統(tǒng)辨識(shí)的個(gè)別程序,其可以包含使用者應(yīng)用軟件線程、操作系統(tǒng)本身的線程、其它裝置驅(qū)動(dòng)程序(例如音響或視頻驅(qū)動(dòng)程序、動(dòng)態(tài)連接數(shù)據(jù)庫等)。軟件線程為一序列的程序指令。參見圖2,其顯示依據(jù)本發(fā)明圖1中不同的操作模式設(shè)定值136的示意圖。操作模式設(shè)定值136包括數(shù)據(jù)預(yù)先擷取模式字段202、分支預(yù)測(cè)模式字段204、指令高速緩沖存儲(chǔ)器退出模式字段206、暫停執(zhí)行模式字段208、Ll指令高速緩存大小字段212、Ll數(shù)據(jù)高速緩存大小字段214、L2高速緩存大小字段216、轉(zhuǎn)換/格式大小字段218、推測(cè)表格查找字段222、Ll高速緩沖存儲(chǔ)器遺失行為字段224、傳送雜湊字段226、隊(duì)列大小字段228、發(fā)出大小字段232、ROB大小字段234、亂序字段236、載入延遲字段238、非暫時(shí)載入/儲(chǔ)存字段242。需注意的是,操作模式設(shè)定值136的列表為例示,也可以有微處理器102包含其它操作模式設(shè)定值的其它實(shí)施例。圖1中的操作模式設(shè)定值暫存器112包含對(duì)應(yīng)于圖2所示的操作模式設(shè)定值136中的每一者的字段。數(shù)據(jù)預(yù)先擷取模式字段202是設(shè)定數(shù)據(jù)如何從系統(tǒng)存儲(chǔ)器108中事先擷取到微處理器102的不同的高速緩存114/116/118中。例如,裝置驅(qū)動(dòng)器104可以設(shè)定微處理器102,使其直接將可能高的預(yù)測(cè)數(shù)據(jù)事先擷取到一階指令高速緩沖存儲(chǔ)器114中,及/或?qū)⒖赡苄缘偷念A(yù)測(cè)數(shù)據(jù)事先擷取到有別于Ll或L2數(shù)據(jù)高速緩沖存儲(chǔ)器116/118的專用事先擷取緩沖區(qū)中。再舉例而言,裝置驅(qū)動(dòng)器104可以針對(duì)持續(xù)觸發(fā)不必要的預(yù)先擷取數(shù)據(jù)的應(yīng)用軟件,使得由數(shù)據(jù)預(yù)先擷取器124執(zhí)行的數(shù)據(jù)事先擷取禁能。又例如,裝置驅(qū)動(dòng)器104可以不讓數(shù)據(jù)預(yù)先擷取器124執(zhí)行應(yīng)用軟件中的事先擷取指令所要求的事先擷取,因?yàn)槠鋵?duì)微處理器102內(nèi)部啟動(dòng)的事先擷取產(chǎn)生負(fù)面影響。分支預(yù)測(cè)模式字段204設(shè)定微處理器102預(yù)設(shè)分支指令的方式。例如,裝置驅(qū)動(dòng)器104可以設(shè)定分支預(yù)測(cè)器122從一階指令高速緩沖存儲(chǔ)器114中的每一行所預(yù)測(cè)出來的分支指令的數(shù)量。而且,裝置驅(qū)動(dòng)器104可以設(shè)定分支預(yù)測(cè)器122所使用的獨(dú)特分支預(yù)測(cè)機(jī)制的數(shù)量。而且,裝置驅(qū)動(dòng)器104可以設(shè)定分支預(yù)測(cè)器122通常是否采取逆向零則跳越(reversejumponzero)分支指令。再者,裝置驅(qū)動(dòng)器104可以設(shè)定用于將分支預(yù)測(cè)器122中的分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)編索引的雜湊算法。最后,裝置驅(qū)動(dòng)器104可以設(shè)定分支預(yù)測(cè)器122,使得當(dāng)一個(gè)或多個(gè)在預(yù)定列表中的目前執(zhí)行的應(yīng)用軟件有執(zhí)行不可預(yù)測(cè)的分支指令的傾向時(shí),暫時(shí)讓分支預(yù)測(cè)都禁能,或者暫時(shí)讓分支預(yù)測(cè)機(jī)制的一部分禁能,例如分支預(yù)測(cè)器122中的分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)。指令高速緩沖存儲(chǔ)器退出模式字段206設(shè)定微處理器102用以從一階指令高速緩沖存儲(chǔ)器114中退出指令的算法。暫停執(zhí)行模式字段208設(shè)定微處理器102是否要暫時(shí)停止執(zhí)行程序指令。例如,裝置驅(qū)動(dòng)器104可以在判斷操作系統(tǒng)106的閑置程序已經(jīng)執(zhí)行一段預(yù)定時(shí)間時(shí),設(shè)定使得微處理器102暫停執(zhí)行程序。Ll指令高速緩存大小字段212、Ll數(shù)據(jù)高速緩存大小字段214、L2高速緩存大小字段216分別設(shè)定Ll指令高速緩沖存儲(chǔ)器、Ll數(shù)據(jù)高速緩沖存儲(chǔ)器或L2高速緩存的大小。例如,裝置驅(qū)動(dòng)器104可以依據(jù)一個(gè)或多個(gè)正在執(zhí)行的應(yīng)用軟件的作業(yè)中的數(shù)據(jù)組的大小,來設(shè)定高速緩存的大小。轉(zhuǎn)換/格式大小字段218設(shè)定指令轉(zhuǎn)換/格式器128如何轉(zhuǎn)換及/或格式化指令。例如,裝置驅(qū)動(dòng)器104可以設(shè)定在每一計(jì)時(shí)周期中由指令轉(zhuǎn)換/格式器128轉(zhuǎn)換及/或格式化的指令數(shù)量,例如,為了降低微處理器102的電力消耗,使得足夠執(zhí)行中的應(yīng)用所需,裝置驅(qū)動(dòng)器104可以設(shè)定指令轉(zhuǎn)換/格式器128在每一計(jì)時(shí)周期中僅轉(zhuǎn)換及/或格式化一個(gè)指令。而且,為了降低電力消耗,裝置驅(qū)動(dòng)器104可以設(shè)定指令轉(zhuǎn)換/格式器128使其不能合并指令。到存儲(chǔ)器中查分頁目錄和分頁表是非常耗時(shí)的工作,而查分頁目錄和分頁表又是非常頻繁的事件,因此,微處理器把最近使用的分頁目錄和分頁表10的項(xiàng)目存放在叫TLB的高速緩沖存儲(chǔ)器中。推測(cè)表格查找字段222設(shè)定畫U142是否對(duì)應(yīng)于一個(gè)TLB(translationlookasidebuffer)遺失執(zhí)行推測(cè)頁面表才各查找(speculativepagetablewalks)。例如,裝置驅(qū)動(dòng)器104可以i殳定畫U142,使得其針對(duì)一個(gè)總是使推測(cè)失準(zhǔn)的應(yīng)用,使得其推測(cè)表格查找禁能,以使得TLB中本來是有用的項(xiàng)目退出。依據(jù)一實(shí)施例,裝置驅(qū)動(dòng)器104可以設(shè)定推測(cè)表格查找的范圍。例如,裝置驅(qū)動(dòng)器104可以設(shè)定,U142只有在所有舊的儲(chǔ)存操作都撤回后,或者在所有舊的儲(chǔ)存操作的地址分解后,或者不考慮舊的儲(chǔ)存操作,才執(zhí)行推測(cè)表格查找。LI高速緩沖存儲(chǔ)器遺失行為字段224設(shè)定針對(duì)一階指令高速緩沖存儲(chǔ)器114中的遺失,醒U142是否以串聯(lián)或并聯(lián)的方式從二階高速緩沖存儲(chǔ)器118以及處理器總線中要求數(shù)據(jù)。傳送雜湊字段226設(shè)定算法,其為微處理器102用以在地址比較中雜湊虛擬地址位,以檢測(cè)微處理器102是否應(yīng)該執(zhí)行數(shù)據(jù)傳遞操作,例如從舊的、不用的儲(chǔ)存指令到加載指令,或者在一個(gè)加載隊(duì)列和一填充隊(duì)列之間。例如,裝置驅(qū)動(dòng)器104可以設(shè)定微處理器102界定要比較的虛擬地址的頁面索引位所加的位數(shù),其中非頁面索引位會(huì)被雜湊以產(chǎn)生這些位,以及這些位會(huì)被如何地雜湊。隊(duì)列大小字段228設(shè)定在微處理器102中不同隊(duì)列的可以使用的大小,例如儲(chǔ)存隊(duì)列、加載隊(duì)列或填充隊(duì)列。例如,當(dāng)較小的隊(duì)列可以足夠正在執(zhí)行的應(yīng)用之需,則裝置驅(qū)動(dòng)器104可以將這些不同的隊(duì)列設(shè)定為較小的隊(duì)列,以降低電力消耗。'發(fā)出大小字段232設(shè)定微處理器102在單一計(jì)時(shí)周期中,對(duì)不同執(zhí)行單元發(fā)出的指令的數(shù)量。例如,當(dāng)一計(jì)時(shí)周期中較少的指令可以滿足正在執(zhí)行的應(yīng)用之需,則裝置驅(qū)動(dòng)器104可以設(shè)定其為較小的數(shù)值,以減少電力消耗。ROB大小字段234設(shè)定在ROB144中可以使用的項(xiàng)目的數(shù)量。例如,當(dāng)ROM144中較少的項(xiàng)目數(shù)量可以滿足執(zhí)行中的應(yīng)用之需,則裝置驅(qū)動(dòng)器IO4可以將ROB144中項(xiàng)目的數(shù)量設(shè)定為較少。亂序字段236設(shè)定微處理器102如何使用亂序指令執(zhí)行。例如,裝置驅(qū)動(dòng)器104可以設(shè)定微處理器102使其依據(jù)嚴(yán)格的程序次序(亦即,沒有亂序執(zhí)行)執(zhí)行指令,或者裝置驅(qū)動(dòng)器104可以設(shè)定指令調(diào)度器可以在指令窗中多大的范圍內(nèi)尋找獨(dú)立指令,以將其發(fā)出給執(zhí)行單元。加載延遲字段238設(shè)定微處理器102的加載延遲機(jī)制要禁能還是致能。依據(jù)一實(shí)施例,微處理器102推測(cè)性地發(fā)出一個(gè)加載指令,并且當(dāng)其是基于一個(gè)數(shù)據(jù)還不可得的舊的儲(chǔ)存指令時(shí),就必須重放(replay)該加載指令,而這對(duì)效能有不利的影響。為了減少重放的可能性,加載延遲機(jī)制依據(jù)過去加載指令被重放的歷史紀(jì)錄,選擇性地使加載指令延遲。但是,當(dāng)加載延遲機(jī)制啟動(dòng)時(shí),有些應(yīng)用軟件的效能反而會(huì)有變差的傾向。因此,裝置驅(qū)動(dòng)器104可以使得有這種傾向的應(yīng)用軟件的加載延遲機(jī)制禁能。非暫時(shí)加載/儲(chǔ)存字段242設(shè)定微處理器102對(duì)于包含用以防止微處理器102高速緩沖存儲(chǔ)器其數(shù)據(jù)的非暫時(shí)性數(shù)據(jù)暗示(non-temporaldatahint)的加載/儲(chǔ)存指令的行為。某些應(yīng)用軟件是使用非暫時(shí)性加載/儲(chǔ)存指令,其假設(shè)微處理器102的數(shù)據(jù)高速緩沖存儲(chǔ)器小于微處理器102的實(shí)際數(shù)據(jù)高速緩沖存儲(chǔ)器大小,并且如果數(shù)據(jù)有被高速緩沖存儲(chǔ)器的話會(huì)執(zhí)行得較快。因此,裝置驅(qū)動(dòng)器104可以設(shè)定微處理蔡102高速緩沖存儲(chǔ)器由包含非暫時(shí)性數(shù)據(jù)暗示的加載/儲(chǔ)存指令所界定的數(shù)據(jù)。而且,裝置驅(qū)動(dòng)器104可以設(shè)定微處理器102中的加載緩沖器的數(shù)量,其可以由包含非暫時(shí)性數(shù)據(jù)暗示的加載/儲(chǔ)存指令所使用。參見圖3,其顯示本發(fā)明的圖1的系統(tǒng)的運(yùn)作流程圖。流程開始于方塊302。在方塊302中,重設(shè)微處理器102,例如通過電源開啟(poweron)事件或按下重設(shè)鈕,微處理器102將其本身設(shè)定為預(yù)設(shè)操作模式。預(yù)設(shè)操作模式可以設(shè)定在微處理器102的硬件,也可以用微處理器102中的熔絲來設(shè)定。接著繼續(xù)進(jìn)行方塊304。方塊304中,操作系統(tǒng)106開機(jī)并啟動(dòng)裝置驅(qū)動(dòng)器104。裝置驅(qū)動(dòng)器104周期性地監(jiān)視目前執(zhí)行的程序。特別的是,裝置驅(qū)動(dòng)器104向操作系統(tǒng)106查詢每一個(gè)目前正在執(zhí)行的程序的程序名稱,并將其與應(yīng)用列表文件132中的應(yīng)用程序名稱134比對(duì)。接著繼續(xù)進(jìn)行方塊306。依據(jù)一實(shí)施例,當(dāng)操作系統(tǒng)106的一個(gè)計(jì)時(shí)點(diǎn)到達(dá)時(shí),對(duì)應(yīng)于操作系統(tǒng)106啟動(dòng)裝置驅(qū)動(dòng)器104的程序,裝置驅(qū)動(dòng)器104執(zhí)行方塊304-314中的步驟。在方塊306中,裝置驅(qū)動(dòng)器104判斷方塊304的比對(duì)中是否產(chǎn)生任何配對(duì)。若裝置驅(qū)動(dòng)器104檢測(cè)到配對(duì),則進(jìn)行方塊308,否則進(jìn)行方塊312。在方塊308中,裝置驅(qū)動(dòng)器104從應(yīng)用列表文件132中比對(duì)相符的項(xiàng)目,讀取操作模式設(shè)定值136,并將其寫入操作模式設(shè)定值暫存器112中,以針對(duì)在方塊306中應(yīng)用程序名稱字段比對(duì)相符的目前執(zhí)行的應(yīng)用,將微處理器102設(shè)定為較佳操作模式。依據(jù)一實(shí)施例,包含于應(yīng)用列表文件132的應(yīng)用軟件會(huì)依據(jù)其重要性排序,若裝置驅(qū)動(dòng)器104在方塊306中找到數(shù)個(gè)配對(duì),則裝置驅(qū)動(dòng)器104以重要性最高且比對(duì)相符的項(xiàng)目的操作模式設(shè)定值136來設(shè)定微處理器102。依據(jù)一實(shí)施例,應(yīng)用列表文件132包含與不同組合的執(zhí)行中應(yīng)用程序?qū)?yīng)的操作模式設(shè)定值136,以群組方式將其效能及/或電力消耗較佳化,當(dāng)裝置驅(qū)動(dòng)器104找到對(duì)應(yīng)于一個(gè)組合的數(shù)個(gè)配對(duì)時(shí),裝置驅(qū)動(dòng)器104以該比對(duì)相符的組合的項(xiàng)目的操作模式設(shè)定值136來設(shè)定微處理器102。在方塊312中,當(dāng)目前執(zhí)行的應(yīng)用程序未定義于應(yīng)用列表文件132中所列的應(yīng)用程序時(shí),裝置驅(qū)動(dòng)器104從應(yīng)用列表文件132中讀取預(yù)設(shè)操作模式設(shè)定值138,并將其寫入操作模式設(shè)定值暫存器112,以將微處理器102設(shè)定為預(yù)設(shè)操作模式。接著進(jìn)行方塊314。在方塊314中,微處理器102依據(jù)在方塊308或312中寫入的操作模式設(shè)定值暫存器112,以將其不同的功能單元設(shè)定為對(duì)應(yīng)的操作模式。接著執(zhí)行方塊304。依據(jù)一實(shí)施例,如上述,當(dāng)#:作系統(tǒng)106的計(jì)時(shí)點(diǎn)到達(dá)時(shí),流程回到方塊304。雖然已經(jīng)針對(duì)了特定的操作模式設(shè)定值136提供實(shí)施例如上,但其為例示,亦可有其它方式的實(shí)施例,其中微處理器102包括其它的可設(shè)定操作模式,而裝置驅(qū)動(dòng)器104將這些額外的操作模式設(shè)定值設(shè)定到微處理器102。本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。權(quán)利要求1.一種運(yùn)算系統(tǒng),其包括:微處理器,接收用以設(shè)定該微處理器操作模式的數(shù)值,其中該微處理器還執(zhí)行操作系統(tǒng),其控制哪些應(yīng)用軟件正在該微處理器中運(yùn)作;及裝置驅(qū)動(dòng)器,其監(jiān)視正在該微處理器中運(yùn)作的應(yīng)用軟件中有哪些是在預(yù)定的應(yīng)用軟件列表中,并據(jù)以動(dòng)態(tài)地將該數(shù)值寫入該微處理器中以設(shè)定其操作模式。2.根據(jù)權(quán)利要求1所述的運(yùn)算系統(tǒng),其中該預(yù)定的應(yīng)用軟件列表中的每一個(gè)項(xiàng)目包含程序名稱及對(duì)應(yīng)值,用以針對(duì)具有對(duì)應(yīng)的該程序名稱的該應(yīng)用軟件設(shè)定該微處理器的操作模式。3.根據(jù)權(quán)利要求2所述的運(yùn)算系統(tǒng),其中該裝置驅(qū)動(dòng)器周期性地比對(duì)正在該微處理器中運(yùn)作的應(yīng)用軟件的程序名稱及該預(yù)定的應(yīng)用軟件列表中每一個(gè)項(xiàng)目的該程序名稱,并將比對(duì)符合的項(xiàng)目的數(shù)值寫入該微處理器中,以設(shè)定其操作模式。4.根據(jù)權(quán)利要求1所述的運(yùn)算系統(tǒng),當(dāng)正在該微處理器中運(yùn)作的應(yīng)用軟件都沒有在該預(yù)定的應(yīng)用軟件列表中時(shí),該裝置驅(qū)動(dòng)器將默認(rèn)值寫入該微處理器中,以將其設(shè)定為預(yù)設(shè)操作模式。5.根據(jù)權(quán)利要求1所述的運(yùn)算系統(tǒng),其中該數(shù)值包含以下設(shè)定該微處理器操作模式的多種數(shù)值之一用以設(shè)定該微處理器從系統(tǒng)存儲(chǔ)器中預(yù)先擷取數(shù)據(jù)到其高速緩存的方式的一個(gè)數(shù)值;用以設(shè)定該微處理器預(yù)測(cè)分支指令的方式的一個(gè)數(shù)值;用以設(shè)定該微處理器從其指令高速緩存中退出指令的方式的一個(gè)數(shù)值;用以設(shè)定該微處理器暫時(shí)停止執(zhí)行指令的一個(gè)數(shù)值;用以設(shè)定該微處理器暫時(shí)使其分支預(yù)測(cè)機(jī)制的一部分禁能的一個(gè)數(shù)值;用以設(shè)定該微處理器的高速緩存大小的一個(gè)數(shù)值;選擇性地使得用該微處理器的分支目標(biāo)地址高速緩沖存儲(chǔ)器以預(yù)測(cè)分支指令禁能的一個(gè)數(shù)值;用以設(shè)定用以將該微處理器的分支目標(biāo)地址高速緩沖存儲(chǔ)器編索引的雜湊算法的一個(gè)數(shù)值;用以設(shè)定是否采取預(yù)設(shè)預(yù)測(cè)分支指令的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器轉(zhuǎn)換的指令數(shù)量的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器格式化的可變長度指令數(shù)量的一個(gè)數(shù)值;用以選擇性地使該微處理器的負(fù)載延遲機(jī)制禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的推測(cè)頁面表格查找禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的軟件預(yù)先擷取禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的指令合并禁能的一個(gè)數(shù)值;用以設(shè)定當(dāng)對(duì)應(yīng)于該微處理器的第一階指令高速緩沖存儲(chǔ)器遺失時(shí),該微處理器是否以串聯(lián)或并聯(lián)的方式從其第二階高速緩沖存儲(chǔ)器以及處理器總線要求遺失的指令的一個(gè)數(shù)值;用以設(shè)定該微處理器高速緩沖存儲(chǔ)器由包含非暫時(shí)數(shù)據(jù)暗示的加載/儲(chǔ)存指令所界定的數(shù)據(jù)的一個(gè)數(shù)值;用以設(shè)定該微處理器執(zhí)行數(shù)據(jù)傳遞時(shí)所使用的雜湊算法的一個(gè)數(shù)值;用以設(shè)定該微處理器的重排序緩沖器的大小的一個(gè)數(shù)值;用以設(shè)定該微處理器的儲(chǔ)存隊(duì)列、加載隊(duì)列或填充隊(duì)列的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器發(fā)出的指令數(shù)的一個(gè)數(shù)值;及用以設(shè)定該微處理器以亂序方式執(zhí)行指令的程度的一個(gè)數(shù)值。6.—種設(shè)定運(yùn)算系統(tǒng)的方法,該運(yùn)算系統(tǒng)包含^(效處理器及裝置驅(qū)動(dòng)器,該方法包4舌由該微處理器接收用以設(shè)定該微處理器操作模式的數(shù)值,其中該微處理器執(zhí)行操作系統(tǒng),并控制哪些應(yīng)用軟件正在該微處理器中運(yùn)作監(jiān)視正在該微處理器中運(yùn)作的應(yīng)用軟件中有哪些是在預(yù)定的應(yīng)用軟件列表中;及依據(jù)該監(jiān)視步驟,動(dòng)態(tài)地將該數(shù)值寫入該微處理器中以設(shè)定其操作模式;其中該監(jiān)視及該動(dòng)態(tài)寫入的步驟是由該裝置驅(qū)動(dòng)器執(zhí)行。7.根據(jù)權(quán)利要求6所述的設(shè)定運(yùn)算系統(tǒng)的方法,其中該預(yù)定的應(yīng)用軟件列表中的每一個(gè)項(xiàng)目包含程序名稱及對(duì)應(yīng)值,用以針對(duì)具有對(duì)應(yīng)的該程序名稱的該應(yīng)用軟件設(shè)定該微處理器的操作模式。8.根據(jù)權(quán)利要求7所述的設(shè)定運(yùn)算系統(tǒng)的方法,還包括周期性地比對(duì)正在該微處理器中運(yùn)作的應(yīng)用軟件的程序名稱及該預(yù)定的應(yīng)用軟件列表中每一個(gè)項(xiàng)目的該程序名稱;及將比對(duì)符合的項(xiàng)目的數(shù)值寫入該微處理器中,以設(shè)定其操作模式;其中該周期性比對(duì)及將比對(duì)符合的項(xiàng)目的數(shù)值寫入該微處理器中的步驟是由該裝置驅(qū)動(dòng)器執(zhí)行。9.根據(jù)權(quán)利要求6所述的設(shè)定運(yùn)算系統(tǒng)的方法,還包括時(shí),將默認(rèn)值寫入該微處理器中,以將其設(shè)定為預(yù)設(shè)操作模式;其中該寫入默認(rèn)值的步驟是由該裝置驅(qū)動(dòng)器執(zhí)行。10.根據(jù)權(quán)利要求6所述的設(shè)定運(yùn)算系統(tǒng)的方法,其中該數(shù)值包含以下設(shè)定該微處理器操作模式的多種數(shù)值之一用以設(shè)定該微處理器從系統(tǒng)存儲(chǔ)器中預(yù)先擷取數(shù)據(jù)到其高速緩存的方式的一個(gè)數(shù)值;用以設(shè)定該微處理器預(yù)測(cè)分支指令的方式的一個(gè)數(shù)值用以設(shè)定該微處理器從其指令高速緩存中退出指令的方式的一個(gè)數(shù)值;用以設(shè)定該微處理器暫時(shí)停止執(zhí)行指令的一個(gè)數(shù)值;用以設(shè)定該微處理器暫時(shí)使其分支預(yù)測(cè)機(jī)制的一部分禁能的一個(gè)數(shù)值;用以設(shè)定該微處理器的高速緩存大小的一個(gè)數(shù)值;選擇性地使得用該微處理器的分支目標(biāo)地址高速緩沖存儲(chǔ)器以預(yù)測(cè)分支指令禁能的一個(gè)數(shù)值;.用以設(shè)定用以將該微處理器的分支目標(biāo)地址高速緩沖存儲(chǔ)器編索引的雜湊算法的一個(gè)數(shù)值;用以設(shè)定是否采取預(yù)設(shè)預(yù)測(cè)分支指令的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器轉(zhuǎn)換的指令數(shù)量的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器格式化的可變長度指令數(shù)量的一個(gè)數(shù)值;用以選擇性地使該微處理器的負(fù)載延遲機(jī)制禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的推測(cè)頁面表格查找禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的軟件預(yù)先擷取禁能的一個(gè)數(shù)值;用以選擇性地使該微處理器的指令合并禁能的一個(gè)數(shù)值;用以設(shè)定當(dāng)對(duì)應(yīng)于該微處理器的第一階指令高速緩沖存儲(chǔ)器遺失時(shí),該微處理器是否以串聯(lián)或并聯(lián)的方式從其第二階高速緩沖存儲(chǔ)器以及處理器總線要求遺失的指令的一個(gè)數(shù)值;用以設(shè)定該微處理器高速緩沖存儲(chǔ)器由包含非暫時(shí)數(shù)據(jù)暗示的加載/儲(chǔ)存指令所界定的數(shù)據(jù)的一個(gè)數(shù)值;用以設(shè)定該微處理器執(zhí)行數(shù)據(jù)傳遞時(shí)所使用的雜湊算法的一個(gè)數(shù)值;用以設(shè)定該微處理器的重排序緩沖器的大小的一個(gè)數(shù)值;用以設(shè)定該微處理器的儲(chǔ)存隊(duì)列、加載隊(duì)列或填充隊(duì)列的一個(gè)數(shù)值;用以設(shè)定在每一計(jì)時(shí)周期中由該微處理器發(fā)出的指令數(shù)的一個(gè)數(shù)值;及用以設(shè)定該微處理器以亂序方式執(zhí)行指令的程度的一個(gè)數(shù)值。全文摘要一種運(yùn)算系統(tǒng),其包括微處理器以接收用以設(shè)定該微處理器操作模式的數(shù)值。裝置驅(qū)動(dòng)器監(jiān)視正在該微處理器中運(yùn)作的應(yīng)用軟件中有哪些是在預(yù)定的應(yīng)用軟件列表中,并據(jù)以動(dòng)態(tài)地將該數(shù)值寫入該微處理器中以設(shè)定其操作模式。該裝置驅(qū)動(dòng)器能夠設(shè)定的操作模式是如下列數(shù)據(jù)預(yù)先擷??;分支預(yù)測(cè);指令高速緩存退出;指令執(zhí)行暫停;高速緩存大小;重排序緩沖;儲(chǔ)存/加載/填充隊(duì)列;和數(shù)據(jù)傳遞及分支目標(biāo)地址高速緩沖存儲(chǔ)器索引相關(guān)的雜湊算法;每個(gè)計(jì)時(shí)周期中轉(zhuǎn)換、格式化及發(fā)出的指令數(shù)量;加載延遲機(jī)制;推測(cè)頁面表格查找;指令合并;亂序執(zhí)行延伸;非暫時(shí)數(shù)據(jù)暗示的高速緩沖存儲(chǔ)器;及對(duì)應(yīng)于指令高速緩沖存儲(chǔ)器遺失的L2高速緩沖存儲(chǔ)器及處理器總線的串聯(lián)或并聯(lián)存取。文檔編號(hào)G06F9/06GK101377734SQ20081016945公開日2009年3月4日申請(qǐng)日期2008年10月22日優(yōu)先權(quán)日2008年7月10日發(fā)明者G·葛蘭·亨利,柯林·艾迪,羅德尼·E·虎克申請(qǐng)人:威盛電子股份有限公司