專利名稱:降低處理器電力消耗的系統(tǒng)、方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種處理器,特別是針對一種具多重解碼功能的處理器,降低其電力消耗的系統(tǒng)、方法及裝置。
背景技術(shù):
處理器(例如微處理器,中央處理單元等)被廣泛地運(yùn)用于產(chǎn)品及應(yīng)用上,包括從桌上型電腦到諸如手機(jī),筆記型電腦,以及個(gè)人數(shù)字助理(Personal digital assistants,PDAs)等攜帶型電子裝置。有些處理器的功能更為強(qiáng)大,例如高階電腦工作站上的處理器;而其他具有簡單設(shè)計(jì)的處理器,則適用于較低階與較低價(jià)的應(yīng)用產(chǎn)品上。
通常在效能及電力之間存在著一種二分法,一般來說,高效能的處理器具有較快的運(yùn)作速度,而其復(fù)雜的設(shè)計(jì)相較于低效能處理器而言,消耗更多的電力。較高的電力消耗通常會導(dǎo)致較高的運(yùn)作溫度及較低的電池壽命(對于使用電池能源來運(yùn)作的裝置而言)。由于攜帶式電子裝置的需求持續(xù)增加,正帶動生產(chǎn)一種能夠?qū)崿F(xiàn)低功率運(yùn)作,同時(shí)保有一定執(zhí)行效能程度的處理器。
一種用來降低裝置電力消耗的方法是在裝置(或是其某些部份)不被使用時(shí)提供一些降低電力操作的模式(例如睡眠狀態(tài)),然而,更為理想的是即使在運(yùn)作中也能降低裝置電力消耗,這個(gè)目標(biāo)通常是通過對此裝置的操作構(gòu)成要件提供更有效率的設(shè)計(jì)來達(dá)成。
不同的電子裝置皆包括一定數(shù)量的電力消耗元件,而處理器則為其中之一,即使是在處理器里面也包括數(shù)個(gè)功能級別,解碼邏輯電路即是這些級別的其中之一。處理器的解碼邏輯電路可以將一個(gè)指令解碼為數(shù)個(gè)電子信號以提供給處理器的執(zhí)行邏輯電路控制及實(shí)施此指令的功能。圖1所繪示的是一種包括解碼級別的處理器設(shè)計(jì)方塊圖。
然而,現(xiàn)有的處理器的電路系統(tǒng)包括有某些缺點(diǎn),當(dāng)一個(gè)指令的字元長度轉(zhuǎn)變時(shí),由于有多個(gè)指令解碼器采平行結(jié)構(gòu)而造成過度的電力消耗。對于處理器所處理的每個(gè)字元長度及電腦程序語言而言,此處理器是使用一種分離式的解碼器,當(dāng)指令被載入解碼級別時(shí),每個(gè)指令解碼器都會企圖去對該指令解碼,而在每個(gè)指令解碼器都嘗試著去對同一個(gè)指令解碼時(shí),會消耗過度的電力且縮短電池的壽命。
相對來說,為克服以上所描述的缺點(diǎn)存在著一個(gè)迄今為止未被提及的需要。
發(fā)明內(nèi)容
本發(fā)明一實(shí)施例提供一種降低處理器電力消耗的裝置,以兩個(gè)選擇器分別連接至一個(gè)第一字元長度指令解碼器及一個(gè)第二字元長度指令解碼器,使得此電路裝置能夠依照輸入的指令字元長度將指令導(dǎo)入對應(yīng)的解碼器,避免多個(gè)指令解碼器同時(shí)運(yùn)作而耗損電力。
本發(fā)明另一實(shí)施例提供一種降低處理器電力消耗的方法,借著將指令載入解碼級別,依其字元長度導(dǎo)入相對應(yīng)的指令解碼器進(jìn)行解碼,并維持其他指令解碼器的當(dāng)前狀態(tài),以節(jié)省電力消耗。
本發(fā)明又一實(shí)施例提供一種降低處理器電力消耗的系統(tǒng),以一字元長度選擇器指出現(xiàn)行指令的字元長度,并依此字元長度將指令導(dǎo)入相對應(yīng)的第一字元長度指令解碼器或第二字元長度指令解碼器進(jìn)行解碼,最后再以一個(gè)選擇器由此兩個(gè)指令解碼器中將解碼后的指令導(dǎo)入執(zhí)行級別進(jìn)行處理。
本發(fā)明另一實(shí)施例是提供一種降低處理器電力消耗的系統(tǒng),此系統(tǒng)包括數(shù)個(gè)具有指令參數(shù)功能的解碼邏輯電路,以一個(gè)停效邏輯電路停止至少一個(gè)解碼邏輯電路的功能,并以一個(gè)選擇器經(jīng)由一條信號線來選擇未停效的邏輯電路。
本發(fā)明的又一實(shí)施例是提供一種處理器,包括一第一解碼器及一第二解碼器,并分別對一第一指令及一第二指令解碼,再以一停效邏輯電路選擇性地停止這兩個(gè)解碼器其中之一的功能,而使此停效解碼器實(shí)質(zhì)上消耗零電力,以達(dá)到節(jié)省電力耗損的功效。
本發(fā)明又一實(shí)施例提出一種降低處理器電力消耗的裝置與系統(tǒng),包括一用來對第一字元長度指令解碼的第一指令解碼器,一用來對第二字元長度指令解碼的第二指令解碼器,一用來指出現(xiàn)行指令的字元長度的字元長度選擇器,一與第一指令解碼器及第二指令解碼器連接的第一選擇器,當(dāng)現(xiàn)行指令為第一字元長度時(shí),該第一選擇器用來將該現(xiàn)行指令導(dǎo)入第一指令解碼器,一與第一指令解碼器及第二指令解碼器連接的第二選擇器,當(dāng)現(xiàn)行指令為第二字元長度時(shí),該第二選擇器用來將該現(xiàn)行指令導(dǎo)入第二指令解碼器,以及一與第一指令解碼器及第二指令解碼器連接的第三選擇器,用以從第一指令解碼器及第二指令解碼器其中之一,將此現(xiàn)行指令導(dǎo)入處理器的執(zhí)行級別。
依照本發(fā)明較佳實(shí)施例所述的降低電腦處理器電力消耗的裝置與系統(tǒng),當(dāng)上述的現(xiàn)行指令不為第一字元長度時(shí),則第一選擇器更包括用來將一先前指令導(dǎo)入第一指令解碼器。
依照本發(fā)明較佳實(shí)施例所述的降低處理器電力消耗的裝置與系統(tǒng),當(dāng)上述的現(xiàn)行指令不為第二字元長度,則第二選擇器更包括用來將一先前指令導(dǎo)入第二指令解碼器。
本發(fā)明一實(shí)施例提出一種降低電腦處理器電力消耗的方法,包括將一個(gè)現(xiàn)行指令載入一個(gè)處理器的解碼級別,而此指令具有一個(gè)字元長度,并至少對應(yīng)于一個(gè)解碼裝置,接著判斷此現(xiàn)行指令的字元長度,并由一個(gè)對應(yīng)此現(xiàn)行指令的字元長度的解碼器對此現(xiàn)行指令進(jìn)行解碼,最后并維持至少一個(gè)非對應(yīng)此字元長度的解碼裝置的當(dāng)前狀態(tài)。
依照本發(fā)明較佳實(shí)施例所述的降低處理器電力消耗的方法,更包括傳送已解碼的現(xiàn)行指令至處理器的執(zhí)行級別(executive stage)。
依照本發(fā)明較佳實(shí)施例所述的降低處理器電力消耗的方法,上述維持目前狀態(tài)的步驟更包括傳送一先前指令到至少一個(gè)不具對應(yīng)字元長度的解碼裝置。
依照本發(fā)明較佳實(shí)施例所述的降低處理器電力消耗的方法,上述的其中至少一個(gè)解碼裝置是用來對一跨平臺式程序語言解碼。
本發(fā)明一實(shí)施例提出一種降低電腦處理器電力消耗的系統(tǒng),包括多個(gè)解碼邏輯電路,其中每個(gè)解碼邏輯電路皆具有一指令參數(shù)功能、一個(gè)停效邏輯電路,用以停止至少一解碼邏輯電路的功能、一條信號線,用來指出至少一停效解碼器,以及一個(gè)選擇器,用來接收此信號線,以及選擇一未經(jīng)停效邏輯電路停止功能的解碼邏輯電路。
本發(fā)明一實(shí)施例提出一種處理器,包括一個(gè)第一解碼器,在一處理器的執(zhí)行單元中對一第一指令實(shí)施解碼、一個(gè)第二解碼器,在一處理器的執(zhí)行單元中對一第二指令實(shí)施解碼,以及一個(gè)停效邏輯電路,選擇性停止第一解碼器或第二解碼器其中之一的功能,而使此停效解碼器實(shí)質(zhì)上消耗零電力。
依照本發(fā)明較佳實(shí)施例所述的處理器,上述的處理器更包括一抓取單元,將一被抓取的指令同時(shí)輸出至第一解碼器及第二解碼器。
依照本發(fā)明較佳實(shí)施例所述的處理器,上述停效邏輯電路是用來在選擇性停效的解碼器中保持輸入信號固定不變,使得在抓取單元的輸出做改變時(shí),不會造成選擇性停效解碼器的內(nèi)部閘轉(zhuǎn)換,因而汲取電流及消耗電力。
在上述各個(gè)進(jìn)行解碼的實(shí)施例中,其中不同的字元長系可以隨規(guī)格等而改變,例如,該些字元長度可為16位元、32位元、64位元或其他長度。
為讓本發(fā)明的上述和其他內(nèi)容、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附圖式,作詳細(xì)說明如下。
圖1是一個(gè)微處理器的功能方塊圖。
圖2是依照圖1的微處理器所繪示的另一實(shí)施例的功能方塊圖。
圖3是依照圖1及圖2的微處理器的解碼級別所繪示的解碼器功能方塊圖。
圖4是依照圖1及圖2的微處理器所繪示另一實(shí)施例的平行電路流程圖。
圖5是依照圖1及圖2的微處理器所繪示的實(shí)施級別流程圖。
圖6是依照圖1及圖2的微處理器所繪示的電力降低邏輯電路功能方塊圖。
圖7是依照圖5各級別所繪示的另一實(shí)施例的流程圖。
圖8是依照介于圖1或圖2的解碼級別中本發(fā)明的電力降低邏輯電路的功能方塊圖。
圖9是依照介于圖1或圖2的解碼級別中本發(fā)明的電力降低邏輯電路的功能方塊圖。
105暫存器檔案110指令抓取115指令解碼 120執(zhí)行125寫回 205運(yùn)算子抓取30516個(gè)輸入端310n個(gè)輸出端420a、420b嘗試解碼現(xiàn)行指令515a保留由指令解碼器B的最后指令所取得的數(shù)據(jù)515b保留由指令解碼器A的最后指令所取得的數(shù)據(jù)520a解碼位于指令解碼器A的指令520b解碼位于指令解碼器B的指令620a指令解碼器A(16bit)605a、605b、625、805a、805b、805c、815選擇器610a、610b、610c正反器模組615反向器620b指令解碼器B(32bit)630、825指示線715a保留由指令解碼器B的最后指令所取得的數(shù)據(jù)715b保留由指令解碼器A的最后指令所取得的數(shù)據(jù)720a解碼位于指令解碼器A的指令720b解碼位于指令解碼器B的指令820指令解碼器C(JAVA)910a、910b、910c及閘
具體實(shí)施例方式
本發(fā)明是有關(guān)于一種具有改良式解碼邏輯電路的處理器。依據(jù)本發(fā)明的一實(shí)施例,此處理器包括一第一解碼邏輯電路,用以解碼包含一指令集的多個(gè)編碼指令,在此第一解碼邏輯電路之內(nèi)的指令集是以16位元編寫而成,此第一解碼邏輯電路具有一個(gè)輸入端,以從一抓取邏輯電路的輸出端中接收一個(gè)編碼指令。此處理器也包括一第二解碼邏輯電路,用以解碼包含一指令集的多個(gè)編碼指令,其中的指令集是以32位元編寫。在運(yùn)作時(shí),解碼控制邏輯電路是依照字元長度來運(yùn)作,并依據(jù)需求選擇理想的指令解碼邏輯電路,而保持不必要的指令解碼邏輯電路穩(wěn)定不動。藉由保持不必要指令解碼邏輯電路的穩(wěn)定不動,使未經(jīng)使用電路的邏輯閘保持穩(wěn)定不動,電力因而被節(jié)省。
依照以下繪圖與詳細(xì)說明所給予的解釋,對于此技術(shù)其他的系統(tǒng)、方法、特征,以及優(yōu)點(diǎn)將會變得顯而易見,意思就是所有如此的附加系統(tǒng)、方法、特征,以及優(yōu)點(diǎn)皆包括在此描述中,且由后附的申請專利范圍所保護(hù)。
本發(fā)明總結(jié)的多種觀點(diǎn),如同圖形的描述,如今參考數(shù)據(jù)將會被詳細(xì)的制作。當(dāng)本發(fā)明將依圖形的關(guān)聯(lián)來描述時(shí),沒有限制必須符合本實(shí)施例或在以上所揭露的實(shí)施例,相反地,由后附的申請專利范圍所界定本發(fā)明的精神及范圍之內(nèi),其內(nèi)容包涵所有的替代物、修改物,以及相等物。必須強(qiáng)調(diào)的是,以上描述的實(shí)施例可作許多變化與修改,而所有的修改和變化皆包涵于本發(fā)明的范圍之內(nèi),并由后附本發(fā)明的申請專利范圍所保護(hù)。
一個(gè)微處理器的抓取-執(zhí)行周期包括一系列的動作,該些動作系由一中央處理單元(CPU)來執(zhí)行程序中的每一個(gè)指令的機(jī)器碼所得。在每一個(gè)周期的開始,CPU會在位址匯流排(未繪示)顯示出程序計(jì)數(shù)器的值,然后經(jīng)由數(shù)據(jù)匯流排從主記憶體中抓取指令存入指令暫存器(可能經(jīng)由一個(gè)快取記憶體或是一個(gè)管線)。
圖1所繪示的是CPU內(nèi)部管線裝配的一個(gè)實(shí)施例的功能方塊圖100。在此非限制本發(fā)明的示范圖示中,CPU執(zhí)行四個(gè)級別。在第一個(gè)級別,CPU從電腦的其他部分抓取一個(gè)指令,如圖所示的級別110。
在完成指令抓取級別110后,處理器會對此現(xiàn)行指令進(jìn)行解碼以決定如何執(zhí)行該指令。解碼該現(xiàn)行指令可以通知處理器該指令是一呼叫運(yùn)算邏輯單元(Arithmetic and logic unit,ALU)的功能(如加法或減法等),是一定址功能指令,或是其他型態(tài)函式的指令。
解碼級別115也用來判斷需要哪些暫存器是執(zhí)行指令時(shí)所需的,以及由暫存檔案105存取這些暫存器,一旦這些暫存器被識別出來,解碼級別110也將從適當(dāng)?shù)臅捍嫫?或RAM及快取記憶體等)中抓取數(shù)據(jù)以提供執(zhí)行級別120之用。
一旦此指令被解碼出來,并送入這些暫存器時(shí),執(zhí)行級別120將會執(zhí)行現(xiàn)行指令,這意謂著此執(zhí)行級別120會計(jì)算一現(xiàn)行指令的結(jié)果,而這些結(jié)果包括載入及儲存的位址,以及由ALU計(jì)算所得的值。以一個(gè)非限制本發(fā)明的例子來說,假如此指令指定實(shí)施加法運(yùn)算,則執(zhí)行級別120將會執(zhí)行兩個(gè)預(yù)定運(yùn)算子的加法運(yùn)算。
一旦執(zhí)行了此指令,處理器接著會經(jīng)由一寫回級別125將新數(shù)據(jù)寫回位于暫存檔案中適當(dāng)?shù)臅捍嫫?。對于一個(gè)加法指令來說,ALU通常會被給予兩個(gè)存在不同暫存器的運(yùn)算子,而ALU將會執(zhí)行加法功能,由該寫回級別125將結(jié)果置于一個(gè)由指令所指定的暫存器中。CPU會藉由增加一程序計(jì)數(shù)以取得下一個(gè)指令,并重復(fù)該周期,直到處理器被指示去中斷此周期時(shí),此操作才會停止。
圖2所繪示的方塊圖200是圖1方塊圖的變型。與方塊圖100相似的是,CPU先從記憶體或快取記憶體中抓取指令,一旦抓取到指令,處理器將對該指令解碼,如級別115所示。然而,如方塊205所示,處理器的下個(gè)級別是去抓取一個(gè)運(yùn)算子。當(dāng)指令在方塊105中被解碼,以及運(yùn)算子在方塊205中被抓取后,處理器將根據(jù)方塊120執(zhí)行此指令,并將結(jié)果寫回暫存檔案105,如方塊125所示。
熟悉該項(xiàng)技藝者皆知,圖1及圖2所示的方塊圖100及200,分別為微處理器在執(zhí)行運(yùn)算上不同級別的圖示。其中圖1與圖2所示以及上述所提及的在電腦中所執(zhí)行的加法或減法運(yùn)算,皆不會限縮本發(fā)明的揭露范圍。再者,如圖1及圖2所示的變化,相似的級別可以有多樣的方式表現(xiàn),舉例來說,熟悉該項(xiàng)技藝者皆知,在圖1及圖2中所討論到的程序可以是任何多樣不同級別來表示。因此,本發(fā)明并不僅限于圖1所示的五種級別或圖2所示的六種級別,熟悉該項(xiàng)技藝者皆知,任何數(shù)目的級別和程序皆可被使用。
圖3所繪示的是圖1及圖2中顯示的解碼級別115,但圖3所示的解碼級別115亦非一限縮本發(fā)明的例子,在此先行敘明。如圖3所示的指令解碼器115,其具有16個(gè)輸入端305以提供至n個(gè)輸出端310,其中,輸出端310所輸出的信號系指出哪一些暫存器該被CPU存取及哪些數(shù)據(jù)該被CPU使用。就此而言,解碼器115的輸出端310是被用來作為給處理器執(zhí)行單元(未繪示)中其他電路元件的輸入以及控制信號用的信號線,而該執(zhí)行單元即會實(shí)現(xiàn)該指令所指定的功能操作。
圖4所繪示的是先前技術(shù)的CPU中所采用的示范邏輯電路步驟流程圖,如上述,抓取指令110將會取得一現(xiàn)行指令。接著解碼級別會將此指令載入指令解碼器A(410)及指令解碼器B(415)兩者。同時(shí),指令解碼器A及指令解碼器B兩者也嘗試對此指令解碼,分別示于級別420a及420b。在指令分別被解碼器410及415所解碼后,兩者的數(shù)據(jù)集會被送至執(zhí)行級別120,如級別425a及425b所示。執(zhí)行級別120決定了字元長度,如決定級別430所繪示,而如果必要的話,會注滿輸送管線(未繪示),若字元長度是16位元的話會在級別435a執(zhí)行,是32位元的話會在級別435b執(zhí)行。
如上述,因?yàn)椴还墁F(xiàn)行指令為何,皆會分別由16位元解碼器及32位元解碼器進(jìn)行解碼,而此操作方式會過度消耗電力,造成裝置的電池壽命縮短。有鑒于此,本發(fā)明即提出一種能降低不必要電力耗損的手段。
圖5所繪示的是以圖1的微處理器的邏輯電路作為一步驟流程的實(shí)施例。首先,CPU先抓取一現(xiàn)行指令,如級別110所示,然后,解碼級別(圖1中的115)將判斷此指令的字元長度,如級別505所示。如熟悉該項(xiàng)技藝者所知悉,本發(fā)明的處理器并不僅受限于16位元或32位元的處理上。相反地,為實(shí)現(xiàn)既得的利益下,本發(fā)明可針對不同字元長度的指令及不同的電腦語言進(jìn)行解碼。圖5僅用來表示本發(fā)明的一種實(shí)施例,并不限制本發(fā)明的范圍。
在指令抓取110取得該現(xiàn)行指令后,解碼級別115會執(zhí)行一個(gè)確認(rèn)動作,若解碼級別115測定該字元長度為16位元,則解碼級別115將下載該指令至16位元解碼器,而保持其他解碼器穩(wěn)定不動(在此例中是指32位元解碼器),如級別515a所示,然后16位元解碼器將對此指令進(jìn)行解碼,如級別520a所示,并將解碼后的指令送至執(zhí)行級別120實(shí)施。
另外,若解碼級別115判斷該字元長度為32位元,則解碼級別115將下載該指令至32位元解碼器510b,而保持其他解碼器穩(wěn)定不動(在此例中是指16位元解碼器),如級別515b所示,然后解碼級別115將以32位元解碼器520b對該指令進(jìn)行解碼,而執(zhí)行級別120將會實(shí)施該指令。
由圖5所繪示的流程可知,一個(gè)解碼器系在一特定時(shí)間中使用。此流程可減少處理器的使用,進(jìn)而降低電力的使用,而電力的降低使用則導(dǎo)致電池壽命的延長。
圖6所繪示的是電力節(jié)省之于解碼電路的一實(shí)施例。此特定電路600系以保持其中之一解碼器的穩(wěn)定不動來節(jié)省電力,而該穩(wěn)定的解碼器是在不對應(yīng)該現(xiàn)行指令下所選取出。舉一個(gè)非限制本發(fā)明的例子來說,指令抓取110是傳輸該現(xiàn)行指令至選擇器605a及605b,其中選擇器605a及605b乃分別連接至正反器模組610a及610b,而選擇器605a及605b的選擇輸入端則連接至指示線630。然而,反向器615串接于選擇器605a的選擇輸入端與指示線630之間,使得當(dāng)選擇器605a被選擇時(shí),選擇器605b將不被選擇,反之亦同。如熟悉該項(xiàng)技藝者所知悉,正反器也可以是與選擇器605b相串連。
選擇器605a及605b的輸出端分別電性耦接至正反器610a及610b,正反器610a及610b將一輸入數(shù)據(jù)維持一個(gè)周期,然后將此數(shù)據(jù)傳送至指令解碼器A(16bit)620a及指令解碼器B(32bit)620b。此兩個(gè)解碼器系電性耦接至選擇器625,而選擇器625的選擇輸入端亦被電性耦接至指示線630。藉由此電路的電流運(yùn)作,選擇器625從指令解碼器A(620a)及指令解碼器B(620b)將解碼后的現(xiàn)行指令輸出至執(zhí)行級別120(圖1及圖2)。
在運(yùn)作時(shí),指令抓取級別110會把現(xiàn)行指令連接至選擇器605a與605b,若指示線630指出此現(xiàn)行指令為16位元,則其將輸出一個(gè)邏輯信號“0”,且此信號會傳達(dá)至選擇器605a及605b的選擇輸入端,對于選擇器605a而言,邏輯信號“0”將會被反向,并傳達(dá)至選擇器605a的選擇輸入端。而由指令抓取110所抓取的現(xiàn)行指令即會傳送至選擇器605a的輸入端,緊接著將被傳送至正反器610a,而此正反器610a會保留此信號并將該現(xiàn)行指令輸出至用來對16位元指令解碼的指令解碼器A(16-bit)620a。一旦此現(xiàn)行指令被解碼,則會被輸入至選擇器625,因?yàn)檫x擇器的選擇輸入端是連接至指示線630,所以指示線630會傳送一個(gè)信號至選擇器625以指出此現(xiàn)行指令是以16位元所構(gòu)成,選擇器625接著會將此解碼后的現(xiàn)行指令從指令解碼器A(16-bit)輸出,如級別620a所示。如上所述,此信號將會被傳送至執(zhí)行級別120實(shí)施。
在上述的實(shí)施例中,邏輯信號“0”亦會被輸入至選擇器605b的選擇輸入端,其中該選擇器605b是與正反器610b輸出端電性耦接,這種結(jié)構(gòu)所影響的是,儲存在正反器610b的先前指令會回饋傳輸至多工器605b,之后會再一次傳輸至正反器610b。當(dāng)正反器610b將其信號輸出至指令解碼器B(32bit)620b時(shí),因?yàn)樵诖酥噶罱獯a器620b的電路對最后一個(gè)指令保持一樣,所以此指令解碼器B的電子狀態(tài)仍保持穩(wěn)定不變。因?yàn)榇穗娮訝顟B(tài)保持穩(wěn)定不變,所以在此指令解碼器620b中的電力使用得以降低。
另一方面來說,若指示線630輸出一邏輯信號”1”,則代表此現(xiàn)行指令是以32位元編寫,然后,此現(xiàn)行指令會被送至指令解碼器B(32BIT)620b進(jìn)行解碼,接著由選擇器605b將此現(xiàn)行指令傳送至執(zhí)行級別120。如上述16位元的例子來說,正反器模組610a會將一個(gè)先前指令送至指令解碼器A(16bit)620a,并使此指令解碼器保持穩(wěn)定不變。由于此電路保持穩(wěn)定不變,因而實(shí)現(xiàn)了電力節(jié)省。
如熟悉該項(xiàng)技藝者所知悉,繪示于圖6的電路僅為本發(fā)明達(dá)成電力節(jié)省的一個(gè)實(shí)施例,因此在一個(gè)傳統(tǒng)CPU中,其可由一具有數(shù)個(gè)信號線的元件及其組成元件,依照系統(tǒng)參數(shù)而實(shí)現(xiàn)上述功能。舉一個(gè)非限制本發(fā)明的例子來說,若一個(gè)電腦是以32位元來運(yùn)作,那么這些信號線將會被用來傳輸這些信號。再者,如熟悉該項(xiàng)技藝者所知,參考此圖所論及的元件,如選擇器及正反器,均可由任何能夠達(dá)到上述功能的電路所取代。以上的描述并非用以界定或是限制此發(fā)明即為上述精確的類型,按照上述所教示者,可經(jīng)由明顯的修改或是變化來達(dá)成本發(fā)明的目的或手段。
圖7所繪示的是圖5繪示步驟的另一個(gè)實(shí)施例的方塊流程圖,然而,在圖7中的指令抓取110下載此現(xiàn)行指令至解碼級別115后,解碼級別115將被用來判斷編寫此現(xiàn)行指令的電腦語言。以一個(gè)非限制本發(fā)明的例子來說,若此現(xiàn)行指令的是以一如JAVA的跨平臺式程序語言來編寫,則此現(xiàn)行指令將被下載至JAVA解碼器710a,同時(shí)其他解碼器將保持最后一個(gè)指令720a數(shù)據(jù)的穩(wěn)定不變,然后,此指令將由此JAVA解碼器解碼并傳送至執(zhí)行級別120。
另外,若此現(xiàn)行指令是以組合語言編寫,則該現(xiàn)行指令將會被下載至組合語言解碼器710b,同時(shí)JAVA解碼器保持穩(wěn)定不變,此指令接著由此組合語言解碼器720b進(jìn)行解碼,并傳送至執(zhí)行級別120。
圖8是一個(gè)相似于圖6的電路圖示但額外包括一解碼器的電路800。藉由將圖6電路與圖7邏輯流程的結(jié)合,此電路800將有能力解碼不同字元長度的指令,同時(shí)維持解碼JAVA指令的功能。如熟悉該項(xiàng)技藝者所能實(shí)現(xiàn)的,在圖6中所實(shí)現(xiàn)的省電效能是采取三個(gè)解碼器的方式達(dá)成。當(dāng)任何一個(gè)解碼器被驅(qū)動時(shí),即會有另外兩個(gè)維持穩(wěn)定不變,因此可以增加電力的使用效益而不致浪費(fèi)。
如圖8所示的功能方塊圖,指令抓取110將下載現(xiàn)行指令至分別具有三個(gè)輸入端的選擇器850a、850b,以及850c。如熟悉該項(xiàng)技藝者可知,選擇器850a、850b,以及850c可采用許多形式以達(dá)到理想結(jié)果。舉一個(gè)非限制本發(fā)明的例子來說,850a、850b,以及850c可以是4×1的選擇器,用來提供給這個(gè)特別的電路設(shè)計(jì)之用,如圖8所示,再者,任何其他合適的電路元件或裝置也可被使用。
指示線825是用來標(biāo)示出此現(xiàn)行指令是以16位元、32位元,或是JAVA來編寫,在此例子中,指示線是一個(gè)2位元的線,并可產(chǎn)生邏輯信號“00”、“01”,或是“10”等形式。此信號被輸入至選擇器805a、805b,以及805c的選擇輸入端以判斷驅(qū)動哪一個(gè)解碼器。必須注意的是在此非限制本發(fā)明的例子中,不包括用來修改此指示線信號的反向器,該反向器是使用于如圖6所示的電路600以達(dá)到結(jié)果,但并非使用于圖8所繪的配置電路中。
一旦選擇器850a、850b,以及850c判斷出一個(gè)合適的解碼器后,此現(xiàn)行指令將被傳送至正反器610a、610b,或是610c,并進(jìn)入合適的解碼器,當(dāng)此指令被解碼后,將被送至選擇器815,而此選擇器815會將適合的已解碼指令送至執(zhí)行級別120。
舉例來說,若此現(xiàn)行指令是以JAVA來編碼,指令抓取110會將此現(xiàn)行指令傳送至選擇器850c,指示線825會將一個(gè)邏輯信號”10”傳送給選擇器,并允許此現(xiàn)行指令通過選擇器805c及至正反器610c,接著由指令解碼器C(JAVA)820將此現(xiàn)行指令進(jìn)行解碼并傳送至選擇器815。指示線825系與選擇器815的選擇輸入端相接,且允許此已解碼的現(xiàn)行指令傳送到執(zhí)行級別120。
在本發(fā)明先前所述的實(shí)施例中,指令解碼器A(16bit)620a以及指令解碼器B(32bit)620b是經(jīng)由正反器610a及610b分別供給先前指令給其輸入端而保持穩(wěn)定不變。因?yàn)榇讼惹爸噶钤试S指令解碼器A(620a)以及指令解碼器B(620b)在此先前指令中維持相同的狀態(tài),因而節(jié)省了電力。
圖9是類似于電路800但包括新元件910a、910b,以及910c的一個(gè)電路900,此實(shí)施例僅用來說明先前實(shí)施例中的正反器可以為其他的邏輯元件(在此使用及閘And gate)來替代。如熟悉該項(xiàng)技藝者所知悉,其他元件如可達(dá)到相同的結(jié)果,則皆可采用任何一組元件替換實(shí)施,如圖9所表示者,但該圖亦僅為本發(fā)明的一實(shí)施例,并非為一限制本發(fā)明的實(shí)施例。
圖9也是一個(gè)類似圖6電路但增加另一個(gè)解碼器的電路圖900。藉由將圖6電路以及圖7流程的結(jié)合,電路900將能夠?qū)Χ喾N字元長度的指令進(jìn)行解碼,同時(shí)也維持對JAVA指令解碼的功能。如熟悉該項(xiàng)技藝者所知,在圖6實(shí)施例中所實(shí)現(xiàn)的電力效益可以增加為三個(gè)解碼器來達(dá)成,當(dāng)任何一個(gè)解碼器被驅(qū)動,另兩個(gè)解碼器則保持穩(wěn)定不變,因而增加電力的使用效益。
如圖9所示的功能方塊圖,指令抓取110會將現(xiàn)行指令下載至分別具有三個(gè)輸入端的選擇器805a、805b,以及805c。如熟悉該項(xiàng)技藝者所知,選擇器805a、805b,以及805c可采用不同形式以達(dá)到所求的結(jié)果。舉一個(gè)非限定本發(fā)明的例子來說,如圖9所示的805a、805b,以及805c可以是4×1的選擇器,用來調(diào)和此特定電路設(shè)計(jì)。再者,任何其他合適的電路元件或裝置也可被使用。
指示線825是用來發(fā)出信號顯示現(xiàn)行指令是以16位元、32位元,或是以JAVA所編寫。在本實(shí)施例中指示線825為2位元線,并可提供邏輯信號“00”、“01”或“10”等形式,此信號被輸入至選擇器805a、805b,以及805c的選擇輸入端以決定該驅(qū)動哪一個(gè)解碼器。必須注意的是在此非限制本發(fā)明的例子中,不包括用來修改此指示線信號的反向器,該反向器是使用于如圖6所示的電路600以達(dá)到結(jié)果,但并非使用于圖9所繪的配置電路中。
一旦選擇器850a、850b,以及850c判斷出一個(gè)合適的解碼器后,此現(xiàn)行指令將被傳送至及閘(AND gate)910a、910b,或是910c,并進(jìn)入合適的解碼器,當(dāng)此指令被解碼后,將被送至選擇器815,而此選擇器815會將適合的已解碼指令送至執(zhí)行級別120。
舉例來說,若此現(xiàn)行指令是以JAVA來編碼,指令抓取110會將此現(xiàn)行指令傳送至選擇器850c,指示線825會將一個(gè)邏輯信號“10”的信號傳送給選擇器,并允許此現(xiàn)行指令通過選擇器805c及至該及閘910c,指令解碼器C(JAVA)820接著將此現(xiàn)行指令進(jìn)行解碼并傳送至選擇器815。指示線825與選擇器815的選擇輸入端相接,且允許此已解碼的現(xiàn)行指令傳送到執(zhí)行級別120。
在本發(fā)明先前所述的實(shí)施例中,指令解碼器A(16bit)620a以及指令解碼器B(32bit)620b是分別經(jīng)由及閘910a及910b將先前指令供給其輸入端并保持穩(wěn)定不變,因?yàn)榇讼惹爸噶钤试S指令解碼器A(620a)以及指令解碼器B9(620b)在此先前指令中維持相同的狀態(tài),因而節(jié)省了電力。
由先前所述的技術(shù)中可得以想象,另一個(gè)實(shí)施例可以組合邏輯電路以使指令解碼級別115的任何一個(gè)解碼邏輯電路停止效用。舉一個(gè)以圖9當(dāng)參考的非限制本發(fā)明的實(shí)施例來說,可以知悉電路900是用來接受一個(gè)16位元的指令,并藉由停效邏輯電路使指令解碼器B(32bit)620b及指令解碼器C(JAVA)820停止效用,如此則允許16位元的指令被傳遞至指令解碼器A(16bit)620a,指令解碼器A(16bit)620a將對此16位元指令進(jìn)行解碼并送至此管線的下個(gè)級別。
同樣地,當(dāng)一個(gè)JAVA指令被送到指令解碼級別115時(shí),電路900將使解碼器A(16bit)620a及解碼器B(32bit)620b兩者停止效用。但當(dāng)一個(gè)32位元指令被送到電路900時(shí),停效邏輯電路會使指令解碼器A(16bit)620a及指令解碼器C(JAVA)820兩者停止效用。如熟悉該項(xiàng)技藝者所知,經(jīng)由降低指令解碼級別115中所驅(qū)動的電路數(shù)量,此裝置即實(shí)現(xiàn)了如以上討論的同樣效益。
在上述各個(gè)實(shí)施例中,其中指令解碼器所進(jìn)行解碼的指令,其字元長度非僅能為上述實(shí)施例所述及而已,其中,不同的指令解碼器間所進(jìn)行解碼的指令長度系可以變化的,例如可為上述實(shí)施例中的16位元長度、32位元長度或更甚者為64位元長度或其他。
值得注意的是,在此所選擇及描述的實(shí)施例或所論及的實(shí)施例是用來提供本發(fā)明原理及其實(shí)際應(yīng)用的最佳說明實(shí)例,從而賦予原有技術(shù)能力,以在不同的實(shí)施例及不同的修訂上,配合所預(yù)期的特定使用來利用本發(fā)明。當(dāng)解釋在公平而合法命名的廣度上與本發(fā)明一致時(shí),所有添加在專利范圍中的修正及變化皆在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種降低處理器電力消耗的裝置,其特征在于其包括一第一指令解碼器,用來對一具第一字元長度的指令解碼;一第二指令解碼器,用來對一具第二字元長度的指令解碼,其中該第一字元長度與該第二字元長度乃非等量值;一字元長度選擇器,用來指出一現(xiàn)行指令的字元長度;一第一選擇器,與該第一指令解碼器及該第二指令解碼器連接,當(dāng)該現(xiàn)行指令為該第一字元長度時(shí),用來將該現(xiàn)行指令導(dǎo)入該第一指令解碼器;一第二選擇器,與該第一指令解碼器及該第二指令解碼器連接,當(dāng)該現(xiàn)行指令為該第二字元長度時(shí),用來將該現(xiàn)行指令導(dǎo)入該第二指令解碼器;以及一第三選擇器,與該第一指令解碼器及該第二指令解碼器連接,從該第一指令解碼器及該第二指令解碼器其中之一,將該現(xiàn)行指令導(dǎo)入處理器的執(zhí)行級別。
2.根據(jù)權(quán)利要求1所述的降低處理器電力消耗的裝置,其特征在于其中該現(xiàn)行指令不為該第一字元長度時(shí),則該第一選擇器更包括用來將一先前指令導(dǎo)入該第一解碼器。
3.根據(jù)權(quán)利要求1所述的降低處理器電力消耗的裝置,其特征在于其中該現(xiàn)行指令不為該第二字元長度時(shí),則該第二選擇器更包括用來將一先前指令導(dǎo)入該第二解碼器。
4.一種降低處理器電力消耗的方法,其特征在于其包括下載一現(xiàn)行指令至一處理器的解碼級別,該現(xiàn)行指令具有一字元長度且對應(yīng)于至少一解碼裝置,;判斷該現(xiàn)行指令的該字元長度;以對應(yīng)于該現(xiàn)行指令的該字元長度的解碼裝置對該現(xiàn)行指令進(jìn)行解碼;以及維持至少一個(gè)不具對應(yīng)該字元長度的解碼裝置的目前狀態(tài)。
5.根據(jù)權(quán)利要求4所述的降低處理器電力消耗的方法,其特征在于其更包括傳送已解碼的該現(xiàn)行指令至該處理器的一執(zhí)行級別。
6.根據(jù)權(quán)利要求4所述的降低處理器電力消耗的方法,其特征在于其中維持目前狀態(tài)的步驟包括傳送一先前指令到至少一個(gè)不具對應(yīng)該字元長度的解碼裝置。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于其中至少一個(gè)解碼裝置是用來對一跨平臺式程序語言解碼。
8.一種降低處理器電力消耗的系統(tǒng),其特征在于其包括多個(gè)解碼邏輯電路,其中每個(gè)解碼邏輯電路皆具有一指令參數(shù)功能;一指示線,用來指出一現(xiàn)行指令的至少一參數(shù);多個(gè)主選擇器,以選擇具有對應(yīng)于該現(xiàn)行指令的指令參數(shù)功能的解碼邏輯電路;以及一個(gè)次選擇器,以從具有對應(yīng)于現(xiàn)行指令的解碼功能的該解碼邏輯電路選擇現(xiàn)行指令。
9.根據(jù)權(quán)利要求8所述的降低處理器電力消耗的系統(tǒng),其特征在于其中至少一個(gè)解碼邏輯電路是用來對一跨平臺式程序語言解碼。
10.根據(jù)權(quán)利要求8所述的降低處理器電力消耗的系統(tǒng),其特征在于其中指示線會指出該現(xiàn)行指令所使用的電腦語言及該現(xiàn)行指令的字元長度。
11.一種降低處理器電力消耗的系統(tǒng),其特征在于其包括多個(gè)解碼邏輯電路,其中每個(gè)解碼邏輯電路皆具有一指令參數(shù)功能;一停效邏輯電路,用以停止至少一解碼邏輯電路的功能;一信號線,用來指出至少一停效解碼器;以及一選擇器,用來接收來自該信號線的信號,以及選擇一未經(jīng)該停效邏輯電路停止功能的解碼邏輯電路。
12.根據(jù)權(quán)利要求11所述的降低處理器電力消耗的系統(tǒng),其特征在于其中至少一個(gè)解碼邏輯電路是用來一跨平臺式程序語言解碼。
13.一種處理器,其特征在于其包括一第一解碼器,用以解碼一用于執(zhí)行于該處理器的一執(zhí)行單元的第一指令;一第二解碼器,用以解碼一用于執(zhí)行于該處理器的該執(zhí)行單元的第二指令;以及一停效邏輯電路,選擇性停止該第一解碼器或該第二解碼器其中之一的功能,而使該被停效的解碼器實(shí)質(zhì)上消耗零電力。
14.根據(jù)權(quán)利要求13所述的處理器,其特征在于其更包括一抓取單元,將一被抓取的指令同時(shí)輸出至該第一解碼器及該第二解碼器。
15.根據(jù)權(quán)利要求13所述的處理器,其特征在于其中所述的停效邏輯電路是用來在選擇性停效的解碼器中保持輸入信號固定不變,使得在該抓取單元的輸出做改變時(shí),不會造成該選擇性停效解碼器的內(nèi)部閘轉(zhuǎn)換。
全文摘要
本發(fā)明揭露一種降低處理器電力消耗的系統(tǒng)、方法及裝置。其中此系統(tǒng)包括一個(gè)對一具第一字元長度指令解碼的第一字元長度解碼器、一個(gè)對依據(jù)第二字元長度指令解碼的第二字元長度解碼器、一個(gè)用來指出現(xiàn)行指令字元長度的字元長度選擇器,以及一個(gè)第一選擇器,用以當(dāng)現(xiàn)行指令為該第一字元長度時(shí),將此現(xiàn)行指令導(dǎo)入第一字元長度解碼器。而此第一選擇器也用來將一個(gè)先前指令導(dǎo)入第一字元長度解碼器,并維持此第一字元長度解碼器的當(dāng)前狀態(tài)。另外包括一個(gè)第二選擇器,當(dāng)現(xiàn)行指令為第二字元長度時(shí),用來將此現(xiàn)行指令導(dǎo)入第二字元長度解碼器。而此第二選擇器也用來將一個(gè)先前指令導(dǎo)入第二字元長度解碼器,并維持此第二字元長度解碼器的當(dāng)前狀態(tài)。
文檔編號G06F1/32GK1687865SQ20051006922
公開日2005年10月26日 申請日期2005年5月12日 優(yōu)先權(quán)日2004年11月15日
發(fā)明者李察鄧肯 申請人:威盛電子股份有限公司