TWI432953B - 具電源管理之超長指令處理器以及其電源管理裝置與方法 - Google Patents

具電源管理之超長指令處理器以及其電源管理裝置與方法 Download PDF

Info

Publication number
TWI432953B
TWI432953B TW099143115A TW99143115A TWI432953B TW I432953 B TWI432953 B TW I432953B TW 099143115 A TW099143115 A TW 099143115A TW 99143115 A TW99143115 A TW 99143115A TW I432953 B TWI432953 B TW I432953B
Authority
TW
Taiwan
Prior art keywords
instruction
package
transcoded
power consumption
valid
Prior art date
Application number
TW099143115A
Other languages
English (en)
Other versions
TW201224733A (en
Inventor
Hsien Ching Hsieh
Po Han Huang
Shing Wu Tung
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW099143115A priority Critical patent/TWI432953B/zh
Priority to US13/112,307 priority patent/US8769245B2/en
Publication of TW201224733A publication Critical patent/TW201224733A/zh
Application granted granted Critical
Publication of TWI432953B publication Critical patent/TWI432953B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Description

具電源管理之超長指令處理器以及其電源管理裝置與方法
本揭露是有關於超長指令處理器電源管理技術,且有關於一具電源管理之超長指令處理器以及其電源管理裝置與方法。
超長指令(Very Long Instruction Word,VLIW)處理器是為一種利用指令級平行化架構的中央處理單元。VLIW處理器所用的方式是基於平行方式來執行已在程式編譯時已排程好的操作指令。因為操作指令的執行次序已由編譯器決定好,故此種處理器並不需要排程的硬體來處理程式指令間的相關性問題。如此VLIW處理器能在硬體的複雜度較低的情況下提供良好的計算效能,而相對編譯器的複雜度則增加。
就電子裝置如可攜式或行動裝置而言,如此的處理器確實可以減低整體的硬體複雜度及成本,並增進效能。但如何讓VLIW處理器適用於電子產品,以配合電子產品之應用之制限,如運算及電力資源有限的問題,仍然有待改進。
以下提供有關於一種具電源管理之超長指令處理器以及其電源管理裝置與方法實施例。一電源管理方法實施例,用於超長指令處理器,藉由對指令包裹作轉碼處理以將指令包裹裡有效指令及無操作(NOP,no operation)指令分開及集中,並進一步將對應到非運作指令的超長指令處理器的執行單元進行減少電源消耗的控制。
提出一電源管理裝置實施例,用於超長指令處理器。電源管理裝置包括一指令轉碼器以及一減少功率消耗控制器。指令轉碼器,重新排列一輸入的指令包裹中有效指令與無操作指令之位置以輸出一轉碼後的指令包裹,其中轉碼後的指令包裹經上述重新排列使無操作指令對應到超長指令處理器中欲減少功率消耗之至少一執行單元。減少功率消耗控制器,依據轉碼後的指令包裹,對轉碼後之指令包裹中無操作指令所對應之至少一執行單元,選擇性地進行減少功率消耗的控制。
提出一電源管理方法實施例,用於超長指令處理器。電源管理方法包括以下步驟。重新排列一輸入的指令包裹中有效指令與無操作指令之位置以輸出一轉碼後的指令包裹,其中轉碼後的指令包裹經上述重新排列使無操作指令對應到超長指令處理器中欲減少功率消耗之至少一執行單元。依據轉碼後的指令包裹,對轉碼後之指令包裹中無操作指令所對應之至少一執行單元,選擇性地進行減少功率消耗的控制。
提出一具電源管理之超長指令處理器實施例。此超長指令處理器,包括一讀取運算元層級、多個執行單元、一指令轉碼器以及一減少功率消耗控制器。讀取運算元層級耦接於指令轉碼器與各個執行單元之間。指令轉碼器重新排列一輸入的指令包裹中有效指令與無操作指令之位置並輸出一轉碼後的指令包裹,轉碼後的指令包裹由這些執行單元執行,其中轉碼後的指令包裹經上述重新排列使無操作指令對應到這些執行單元中之至少一執行單元,其中此至少一執行單元為欲減少功率消耗之對象。減少功率消耗控制器,依據轉碼後的指令包裹,對轉碼後之指令包裹中無操作指令所對應之至少一執行單元,選擇性地進行減少功率消耗的控制。
為了對本案之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式,作詳細說明如下:
以下提供有關於一具電源管理之超長指令處理器以及其電源管理裝置與方法之實施範例。
第1A圖代表依據一實施例之VLIW處理器之管線(pipeline)架構,其中具有指令轉碼器(instruction transcoder)的實施例。在第1A圖中,指令擷取層級10存取指令快取15並傳到指令解碼(Instruction Decode)層級20,在指令解碼層級20及讀取運算元(read operand)層級30中,加入了指令轉碼層級110。在指令轉碼層級110中,將一輸入的指令包裹中無操作(NOP,no operation)指令重排以對應到VLIW處理器的某些執行單元,並輸出一轉碼後的指令包裹。根據指令轉碼層級110的輸出結果,減少功率消耗控制器(power reduction controller)120將對應到轉碼後之指令包裹中NOP指令的執行單元進行減少功率消耗的控制。換句話說,在第1A圖之管線架構之實施例中,對應到NOP指令,從執行層級40及其以後如記憶體讀寫層級50及寫回層級60的功率消耗皆可得以減少。
基於第1A圖之實施例之VLIW處理器之管線(pipeline)架構,可以設計出一具電源管理之VLIW處理器。稍後將舉詳細實作實施範例以作說明。
而第1B圖所示為基於第1A圖之VLIW處理器之電源管理方法一實施例。如步驟S110所示,分析或檢查一輸入的指令包裹中有效指令與NOP指令之位置關係並重新排列有效指令與NOP指令之位置以使NOP指令對應到VLIW處理器的某些執行單元,即欲減少功率消耗之至少一執行單元,並輸出一轉碼後的指令包裹。如步驟S120所示,根據指令轉碼的輸出結果,選擇性的將對應到轉碼後之指令包裹中NOP指令所對應之上述的某些執行單元進行減少功率消耗的控制。
為實現此種電源管理方法,VLIW處理器之電源管理裝置如第2圖之一實施例所示,包括一指令轉碼器210及一減少功率消耗控制器220。指令轉碼器210將一輸入之指令包裹IP0經過轉碼,輸出一轉碼後之指令包裹IP1經過至讀取運算元層級30後輸出到VLIW處理器之執行單元230_1至230_n執行,其中n>1。
指令包裹(instruction package)包括多個指令,例如表示為{INS1| INS2| INS3| …| INSn},其中如INS3表示第3個指令,而且這n個指令分別交予n個執行單元執行。在邏輯上來說,可稱這n個指令依序分別落在n個指令槽(slot),每個指令槽有對應自己的執行單元。舉例而言,如一個具有5個指令槽的指令包裹IP0={ADD| NOP| NOP| SUB| ADD}中,有兩個NOP指令,三個有效指令,其中ADD及SUB分別為簡寫代表加一加法運算及一減法運算,其中為方便說明而忽略運算子。
在一實施例中,指令轉碼器210可設計為將NOP指令集中在第2圖中最右邊的執行單元,而有效指令則因此而往左邊移位。沿用上述例子:
IP0={ADD| NOP| NOP| SUB| ADD}經轉碼後則為:
IP1={ADD| SUB| ADD| NOP| NOP}。
假設VLIW處理器所執行的程式的指令包裹常有出現NOP的話,減少功率消耗控制器220可依據指令轉碼器210轉碼後之指令包裹IP1之結果,對最右邊的執行單元203_4及203_5進行減少功率消耗的控制,其中n=5。指令轉碼器110例如輸出表示指令包裹IP1中每個指令槽是為有效指令或NOP指令的指令有效性資訊,以便使減少功率消耗控制器220據以判斷來進行減少功率消耗的控制,如上述的指令包裹IP1,可以對每個指令槽以一個位元表示,如{1| 1| 1| 0| 0},其中0代表NOP指令,1代表有效指令。當然,指令有效性資訊可以其他的表示方式,如每個指令槽以一個位元表示或其他代號亦可實施。
減少功率消耗控制器220依據指令有效性資訊,決定對VLIW處理器之多個執行單元選擇性地作減少功率消耗的控制。減少功率消耗的控制如選擇性地控制供給執行單元的時脈,或選擇性地調降執行單元的操作電壓。
減少功率消耗控制器220一實施例,可以為、例如是一時鐘門控(clock gating)控制器,用以選擇性地控制供給執行單元的時脈。依循上述的實施例,指令轉碼器210輸出的指令包裹中NOP指令如第3圖所示的是為安排落入在右側的指令槽,其中不同的有效指令是以斜線方格代表,而E1至E4分另代表對應到4個執行單元如第2圖中的執行單元230_1至230_4(n=4)。時鐘門控控制器可依據指令有效性資訊,令第3圖的方塊B1對應的週期中令執行單元E3及E4作時脈閉鎖,以及在方塊B2對應的週期令執行單元E4作時脈閉鎖。時鐘門控控制器以及相關的控制可以使用例如習知的各種時鐘門控邏輯實現或其他依上述第1A圖之原理實現。
又一實施例,例如減少功率消耗控制器220可以為一電壓控制器,其可選擇性地控制供給執行單元的操作電壓。電壓控制器可依據指令有效性資訊,令第3圖的方塊B1對應的週期中令執行單元E3及E4所接收的操作電壓降低,以及在方塊B2對應的週期中令執行單元E4所接收的操作電壓降低。其他的執行單元則維持原先的操作電壓位準。此外,因為就某些執行單元而言,執行NOP指令是可以在較低的電壓位準下操作,甚至可以將電源關閉。電源關閉就是調降電壓至最少的一個實施例,而調降電壓時又可設計令其待機電流(standby current)維持在一水平以令其內部狀態不變。
在調降或關閉電壓來作為減少功率消耗的實施例中,由於電源的開關是需要花時間的,因此會產生時間上的負擔(overhead)。故此,所有運算動作必須要暫停,等到電壓回到可執行的位準之後,再繼續動作。因此會造成執行時間變長,也就是效能會變差的情況。
為改善此問題,在一實施例中,累計NOP指令連續進來的個數,當此個數大於或等於一門檻值時,就進入省電的狀態對相關的執行單元關閉或是調降電壓的動作。例如第4A圖所示的例子中假設門檻值為3,方塊B3顯示NOP指令連續出現3個週期之後,方塊B4代表可令執行單元E3及E4進入省電的狀態。在方塊B4之後,因為執行單元E1至E4都要執行有效指令,故必須把執行單元E3及E4維持原先的操作電壓位準,且必須確保E3以及E4所執行的有效指令能順利走完接下來的管線層級,因此方塊B5中的4個週期,必須維持原先的操作電壓位準。又方塊B5顯示連續4個NOP指令,已經大於門檻值(3),因此又可將令執行單元E3及E4進入省電的狀態。
第4B圖則為電壓控制器420之一實施例,如包括一NOP計算器421及一比較電路423。比較電路423判斷NOP計算器累計的NOP指令於某些指令槽(如對應到執行單元E3及E4之NOP指令連續出現次數)之次數及一門檻值TH,以決定是否要指示其他電路,例如是電源管理電路或切關元件等以使執行單元E3及E4進入省電的狀態。另外,門檻值可設計為允許使用者自己決定,例如透過設定一暫存器來設定。
以下進一步提出上述電源管理裝置中,指令轉碼器210之其他實施方式。例如第5A圖所示,指令轉碼器500包括一指令位移決定裝置510以及一指令重排裝置530。指令位移決定裝置510分析或檢查一輸入的指令包裹中有效指令與NOP指令之位置關係,以產生指令位移資訊。指令重排裝置530依據指令位移資訊以重新排列有效指令與NOP指令之位置以集中NOP指令以對應到VLIW處理器的某些執行單元,以輸出一轉碼後的指令包裹。
第5B圖為指令位移決定方法之一實施例之流程圖,其可應用於將指令包裹中的NOP指令向左、向右、向中間、向兩側集中之不同實施例。指令位移決定裝置510可用以實現第5B圖之方法。在說明以前,首先定義如下:上述指令有效性資訊之例子,如{1| 1| 1| 0| 0},以下稱之為指令包裹之有效位元值,並且定義最左有效位元以及最右有效位元為有效位元值中最右有效位元(LSB;Least Significant Bit)及最左有效位元(MSB;Most Significant Bit),在此例中分別為0及1。指令位移決定方法分析或檢查有效位元值中0與1之位置關係,進而產生指令包裹中各個指令的位移結果(Shift_Result)(或簡寫為S_R),以執行指令的位移。
指令位移決定方法的步驟如下。步驟S510,Zero_Head的初始值為0。將一指令包裹之有效位元值的各個位元,稱為指令槽資訊(slot information)或簡寫為S_INFO,依一順序輸入以步驟S520作判斷指令槽資訊是否為0。如步驟S520所示,如果指令槽資訊為0,即代表此指令槽之指令為NOP指令,因此執行步驟S530使Zero_Head加1,加1是表示在出現第一個有效指令(指令槽資訊為1)之前有一個NOP指令。而如果指令槽資訊為1,及表示此指令槽之指令為有效指令,故執行步驟S540,即讓Zero_Head維持先前的值。如步驟S550所示,依上述結果更新Zero_Head的記憶器中的值。接著,如步驟S560所示,將Zero_Head的數值送出以作為此指令槽對應的位移結果Shift_Result。如步驟S570所示,檢查是否為最後之指令槽資訊,如果不是最後之指令槽資訊,重覆步驟S520,直至指令槽資訊輸入完為止。若是最後之指令槽資訊,則如步驟S580,指令位移決定處理結束。
而相對應的電路可以實現為如第6圖所示。指令位移決定電路600包括一比較電路610、一多工器620、加法器625以及一記憶器630。比較電路610用以實現步驟S520;多工器620及加法器625及記憶器630用以實現步驟S530至S560。
以下將分別依第5B圖以說明如何將指令包裹中的NOP指令向左、向右、向中間、向兩側集中之不同實施例,其中各個實施例,皆可基於上述第5B圖之方法及第6圖之電路實施例加以實現。
NOP指令向右位移實施例
首先以NOP指令向右位移為例。如以{1 | 0 | 0 | 1 | 1 | 0}為例子,如果是要將NOP指令向右位移(有效指令向左),就要以最左有效位元(MSB)當成第一個輸入的指令槽資訊,輸入的順序為1=>0=>0=>1=>1=>0。依據第5B圖之流程圖,可產生所對應之位移結果S_R,供計算位移量之電路以及所產生位移結果S_R來執行指令的位移。
依上述順序,依次輸入有效位元值之各個位元到指令位移決定電路600,以依據第5B圖之方法產生對應的位移結果S_R。第一次輸入,指令槽1的資訊為1,因此Zero_Head保持為0。第二次則指令槽2的資訊為0,因此Zero_Head加1,因此Zero_Head的結果為1。第三次則指令槽3的資訊為0,因此Zero_Head加1,因此Zero_Head的結果為2。第四次,指令槽4的資訊為1,因此Zero_Head保持為2,因此Zero_Head的結果為2。第五次,指令槽5的資訊為1,因此Zero_Head保持為2,因此Zero_Head的結果為2。第六次則指令槽6的資訊為0,因此Zero_Head加1,因此Zero_Head的結果為3。如此,指令槽1至6對應的位移結果S_R分別為:[0,1,2,2,2,3]。
有了各個指令槽的位移結果S_R的數值之後,就能進行指令的位移了。舉例而言,在指令槽1中,雖然指令槽資訊為1,代表有效指令,但指令槽1已經是第一個指令槽了,且位移結果S_R的數值為0,因此不需位移(以Don’t Move;DM代表)。在指令槽2中,指令槽資訊為0,代表NOP指令,而位移結果S_R的數值為1,但指令槽2為NOP指令,因此不需考慮(以Don’t Care;DC代表)。指令槽3同理於指令槽2,因此不需考慮。在指令槽4中,指令槽資訊為1,代表有效指令,而位移結果S_R的數值為2,因此指令槽4中的指令必須向左位移2個指令槽,置放到指令槽2中,而指令槽4所遺留出來的空缺,則由NOP指令填補。在指令槽5中,指令槽資訊為1,代表有效指令,而位移結果S_R的數值為2,因此同理於指令槽4,指令槽5中的指令必須向左位移2個指令槽,置放到指令槽3中,而指令槽5所遺留出來的空缺,則由NOP指令填補。最後,指令槽6同理於指令槽2,因此不需考慮。在上述的例子中,經過位移的計算,能產生兩個參數,分別是有效指令從哪個指令槽位移過來以及有效指令位移後位在哪個指令槽,也就是指令槽的號碼(slot number)S_NUM減去對應的位移結果S_R的數值,因此這兩個參數為{S_NUM,S_NUM-S_R}。
因此依據上述的例子,所對應的位移關係可解讀及表示為:[DM,DC,DC,SL_2,SL_2,DC],其中簡寫DM、DC分別代表「不需移動」及「不需考慮」,而SL_k(或SR_k)則分別表示向左(或向右移)k個指令槽。如此,指令重排裝置530,可依據上述位移結果S_R以及上述規則,利用如邏輯電路方式實現將輸入的指令包裹中的NOP指令向右位移,經位移後所產生的指令包裹所對應的有效位元值為:{1 | 1 | 1 | 0 | 0 | 0}。
NOP指令向左位移實施例
以{1 | 0 | 0 | 1 | 1 | 0}為例子,如果是要NOP指令向左位移(有效指令向右),就要以最右有效位元(LSB)當成第一個輸入的指令槽資訊,輸入的順序為0=>1=>1=>0=>0=>1。如此,指令槽6至1對應的位移結果S_R分別為:3,3,2,1,1,1,其中指令槽的號碼由右至左起算。而所對應的位移關係可解讀為:SR_3,DC,DC,SR_1,SR_1,DC。如此,指令重排裝置530,可依據上述位移結果S_R,實現將輸入的指令包裹中的NOP指令向左位移,經位移後產生的指令包裹所對應的有效位元值為:{0 | 0 | 0 | 1 | 1 | 1}。
NOP指令向中間位移實施例
以{1 | 0 | 0 | 1 | 1 | 0}為例子,如果是要NOP指令向中間位移(有效指令向兩側),就要將指令包裹分成兩半部。左半部是以左半部的最左有效位元(MSB)當成第一個輸入的指令槽資訊;右半部是以右半部的最右有效位元(LSB)當成第一個輸入的指令槽資訊。如將指令包裹的有效位元值{1 | 0 | 0 | 1 | 1 | 0},分為{1 | 0| 0}及{1 | 1 | 0}。對於有效位元值的左半部,輸入的順序為1=>0=>0;右半部的輸入的順序則為0=>1=>1。左半部依第5B圖之方法,產生所對應之位移結果S_R為:[0,1,2],所對應的位移關係可解讀為:[DM,DC,DC],左半部指令包裹經位移後產生的指令包裹所對應的有效位元值為{1 | 0 | 0}。右半部依第5B圖之方法,產生所對應之位移結果S_R為:[1,1,1],所對應的位移關係可解讀為:[SR_1,SR_1,DC];右半部指令包裹經位移後產生的指令包裹所對應的有效位元值為{0 | 1 | 1}。最後,將兩半部的指令包裹之位移後的指令包裹結合,則可以得到轉碼後之指令包裹,而其所對應的有效位元值為:{1 | 0 | 0 | 0 | 1 | 1}。
NOP指令向兩側位移實施例
再以{1 | 0 | 0 | 1 | 1 | 0}為例子,如果是要NOP指令向兩側位移(有效指令向中間),就要將指令包裹分成兩半部,左半部是以左半部的最右有效位元(LSB)當成第一個輸入的指令槽資訊,右半部是以右半部的最左有效位元(MSB)當成第一個輸入的指令槽資訊。如將指令包裹的有效位元值{1 | 0 | 0 | 1 | 1 | 0},分為{1 | 0 | 0}及{1 | 1 | 0}。對於有效位元值的左半部,輸入的順序為0=>0=>1;右半部的輸入的順序則為1=>1=>0。左半部依第5B圖之方法,產生所對應之位移結果S_R為:[2,2,1],所對應的位移關係可解讀為:[SR_2,DC,DC];左半部指令包裹經位移後產生的指令包裹所對應的有效位元值為{0 | 0 | 1}。右半部依第5B圖之方法,產生所對應之位移結果S_R為:[0,0,1],所對應的位移關係可解讀為:[DM,DM,DC];右半部指令包裹經位移後產生的指令包裹所對應的有效位元值為{1 | 1 | 0}。最後,將兩半部的指令包裹之位移後的指令包裹結合,則可以得到轉碼後之指令包裹,而所所對應的有效位元值為:{0 | 0 | 1 | 1 | 1 | 0}。
此外,假設一個指令包裹中有n個指令槽,但n無法被2整除時,就將n/2的商(m)做無條件進入法,以此m的值當成將指令包裹分邊的依據,並由最左有效位元(MSB)當初始位元往最右有效位元(LSB)作計算。以一個指令包裹中有5個指令槽為例,n=5故n/2=2.5,故取m=3,故以m當成分邊依據,並由最左有效位元(MSB)當初始位元往最右有效位元(LSB)計算3個位元。則如輸入的指令包裹的有效位元值為{0 | 1 | 0 | 1 | 0},則可分為左半部為{0 | 1 | 0},而右半部為{1 | 0}。如此,可將任一指令包裹分成左、右兩半部,並依據欲將NOP指令向中間位移或欲將NOP指令向兩側位移作處理,處理之方式可依上述的例子作處理,故不再贅述。
其他轉碼的情況
在進行上述指令轉碼過程中,可能會遇到暫存器衝突的問題。例如,若連續之指令包裹1及指令包裹2分別如下:
{ADD R0,R1,R2| SUB R8,R9,R10|NOP| NOP| NOP}
{ADD R3,R4,R5| NOP |NOP| SUB R8,R9,R10| NOP}
經過轉碼以後,則為:
{ADD R0,R1,R2| SUB R8,R9,R10|NOP| NOP| NOP}
{ADD R3,R4,R5| SUB R8,R9,R10|NOP| NOP| NOP}。
上述暫存器衝突的情況說明如下。指令包裹1的指令槽2使用了暫存器R8、R9、R10。而轉碼後的指令包裹2的指令槽2剛好也使用暫存器R8、R9、R10,故不應直接拿執行單元2(指令槽2)的暫存文件RF2之暫存器來使用以避免發現運算的錯誤。
上述的狀況可以藉由對暫存文件的輸入及輸出作適當的切換動作來解決,令目前指令槽中可能會發生暫存器衝突的指令,改為使用原有指令槽所對應的暫存器文件。針對上述例子,轉碼後的指令包裹2的指令槽2應該使用屬於轉碼前的執行單元4(指令槽4)的暫存文件RF4中的暫存器R8、R9、R10。當上述問題發生時,在VLIW處理器中依據指令槽的兩個參數{S_NUM,S_NUM-S_R}來控制從哪一個指令槽輸入位置輸入訊號到暫存器文件和控制讀取的資料要送到哪一個執行單元。
如第7A圖所示,在暫存器文件(register file)如指令槽4對應之暫存器文件RF4的位置輸入訊號前耦接一多工器MUX,多工器除了接收對應到指令槽4的地址及資料(以輸入IN4作代表)外,更接收對應到指令槽1-3的地址及資料(以輸入IN1-IN3作代表)。當上述問題發生時,轉碼後的指令包裹2的指令槽2的兩個參數為{4,2},故依據指令槽號碼S_SUM來決定要使用暫存文件RF4,並依據參數S_NUM-S_R控制對應的多工器MUX從指令槽2,即輸入IN2,來讀取位置輸入訊號。
接著,從暫存器文件RF4讀取的資料,則依據參數S_NUM-S_R,即傳送到執行單元2。而實現的方式如在暫存器文件RF4或其他暫存器文件的資料輸出訊號端及執行單元之間耦接切換換電路,包括如多工器或解多工器,利用兩個參數{S_NUM,S_NUM-S_R}作為控制訊號,則可藉由切換電路將對應到指令槽號碼S_SUM(如4)的暫存器文件RF4讀取的資料輸出至對應到參數S_NUM-S_R(如2)的執行單元2。
上述對暫存文件的輸入及輸出作適當切換動作可利用一控制電路如解碼器依據兩個參數{S_NUM,S_NUM-S_R}控制耦接至暫存文件的輸入及輸出的切換電路。
第7B圖係對應到上述NOP指令向右位移實施例之一讀取運算元層級的電路結構之一實施例,用以解決暫存器衝突的問題。在第7B圖中5個暫存器文件RF1-RF5是對應到具有5個執行單元如基於第1A圖的管線架構的具有電源管理的VLIW處理器,如第8A或9A圖所示者,並使用NOP指令向右位移的轉碼方式。此外,一控制電路如解碼器740B用以依據指令槽號碼及指令槽被位移數值如參數S_NUM及S_NUM-S_R,控制切換電路750B及760B,以解決暫存器衝突的問題。在7B圖中,從上一層級而來並對應到指令槽的暫存器位置及資料經過切換電路750B以耦接到暫存器文件RF1-RF5之位置輸入訊號端,而暫存器文件RF1-RF5的資料輸出訊號端則藉由另一切換電路760B以耦接至下一級層,即分別耦接到執行單元1-5。切換電路750B具有多個多工器如多工器MUX1-MUX4。多工器MUX1選擇性的接收來自對應的指令槽2的位置輸入訊號及其左側的指令槽1的位置輸入訊號,多工器MUX2-MUX4的耦接方式則可如此類推。切換電路760B具有多工器MUX1’-MUX4’,暫存器文件RF1-RF4的資料輸出訊號端耦接多工器MUX1’-MUX4’。多工器MUX4’選擇性的接收來自對應的指令槽4的資料輸出訊號及其右側的指令槽5的資料輸出訊號,多工器MUX3’-MUX1’的耦接方式則可如此類推。另一方面,轉碼的方式若為使NOP指令向左位移的話,則前述的做法相反。此外在其他實施例中,對多n個執行單元如基於第1A圖的管線架構的具有電源管理的VLIW處理器,亦可使用上述的原理如此類推。
第7C圖係依據另一實施例之讀取運算元層級的電路結構,用以解決暫存器衝突的問題。第7C圖是呈現具有n個執行單元的VLIW處理器,讀取運算元層級的電路結構,第7C圖與第7B圖的電路不同的是:藉由切換電路750C及760C,所有暫存器文件R1、R2至Rn的位置輸入訊號端都可選擇性地接收從上一層級而來任一個指令槽的暫存器位置及資料;而所有暫存器文件R1至Rn的資料輸出訊號端都可選擇性地耦接對應到任一個下一層級中任一個指令槽的執行單元。如此,應用第7C圖的讀取運算元層級的電路結構之VLIW處理器,轉碼層級的NOP位移方式則因此不受限制,可以為使NOP指令向左、向右、向中間、或向兩側集中的實施方式皆可據以實施,或可以用選擇性地對轉碼方式作設定,或可以依設定的條件而改變。解碼器740C可依據轉碼層級的NOP位移方式以及指令槽號碼及指令槽被位移數值如參數S_NUM及S_NUM-S_R,控制切換電路750C及760C,以解決暫存器衝突的問題。實現方式亦可依上述第7A及7B圖所述的方式類推,故不再重覆。
VLIW處理器架構
以下基於第1A圖之VLIW處理器之管線架構實施例,提出具電源管理之VLIW處理器的實施例。第8A圖為依一實施例之VLIW處理器800之部分的方塊圖。請參考第1A圖,在第8A圖中,VLIW處理器800包括指令轉碼層級110、讀取運算元層級30以及執行層級40。指令轉碼層級110耦接於管線暫存器881及883之間。讀取運算元層級30耦接於管線暫存器883及885之間。執行層級40則在管線暫存器885後。
第1A圖之指令轉碼層級110由指令轉碼器810實現。指令轉碼器810如前述的指令轉碼器210或500,用以將指令解碼層級20所產生的輸入指令包裹轉碼為轉碼後之指令包裹。
而第1A圖之減少功率消耗控制器120則由一時鐘門控控制器820及一時鐘門控電路830實現,以進行電源管理。時鐘門控控制器820,依據從指令轉碼器810之輸出,例如轉碼後之指令包裹的有效位元值例如{1| 1| 1| 0| 0},輸出時鐘門控訊號CG以控制時鐘門控電路830。時鐘門控電路830接收一時脈訊號CLK並依據時鐘門控訊號CG選擇性地供應時脈給所對應的執行單元890_1至890_n。
時鐘門控電路830例如包括多個如第8B圖所示的時鐘門控單元831,各個對應到執行單元890_1至890_n,其中時鐘門控訊號CG可用不同方式例如依有效位元值如{1| 1| 1| 0| 0}中不同位元所對應的指令槽,個別的傳送致能訊號到對應之時鐘門控控制單元831。時鐘門控控制單元831例如藉由邏輯電路實現是否輸出為時脈訊號CLK_P至對應的執行單元。例如在指令槽對應到NOP指令時,則禁能使時脈訊號CLK_P為0,以達成減少功率消耗。
為了避免暫存器衝突的問題,VLIW處理器800的讀取運算元層級30採用了如前述第7A、7B或7C圖之實施例之電路結構,包括一解碼器840、一第一切換電路850及一第二切換電路860以及n個暫存器文件RF1-RFn。第一切換電路850或第二切換電路860例如為第7B或7C圖之實施例中的切換電路750B、750C、760B或760C。解碼器840依據指令轉碼器810之輸出,例如是指令槽的兩個參數{S_NUM,S_NUM-S_R},來控制從哪一個指令槽輸入位置輸入訊號到暫存器文件和控制讀取的資料要送到哪一個執行單元。
第9A圖為依另一實施例之VLIW處理器900之部分的方塊圖。在第9A圖中,VLIW處理器900所具有的管線結構的層級與第8A圖中的相同。VLIW處理器900與VLIW處理器800的差異在於:第1A圖之減少功率消耗控制器120則由一電源調整控制器920、電源切換電路930及一電源管理電路990實現,以選擇性地控制供給執行單元的操作電壓如調降或關閉來進行電源管理,例如前述第3、4A或4B圖之實施例。
電源調整控制器920可實施例如第4A及4B圖的電源管理方法。電源調整控制器920依據指令轉碼器810之輸出,例如轉碼後之指令包裹的有效位元值例如{1| 1| 1| 0| 0},經過如第4A圖之實施例的判斷後,輸出電源切換控制訊號CS以及電源管理電路控制訊號CV。電源切換控制訊號CS傳送至電源切換電路930,用以控制藉由電源切換電路930所選擇不同的電壓位準以輸出到相對應之執行單元890_1-890_n。電源管理電路控制訊號CV則傳送至電源管理電路990以控制電源管理電路990產生不同電壓位準之電壓,用以提供電源切換電路930不同電壓位準之電壓輸入。
電源切換電路930例如包括多個如第9B圖所示的電源切換單元931,各個對應到執行單元890_1至890_n,並接收電源管理電路990所輸出的電壓VS或VS’,且選擇性地輸出一電壓VS_P至對應的執行單元,其中VS為原先操作電壓位準,VS’為較原有操作電壓為低的電壓。電源切換控制訊號CS可用不同方式實施,例如依有效位元值如{1| 1| 1| 0| 0}中不同位元所對應的指令槽(第3圖)或第4A及4B圖之比較NOP指令出現次數與門檻值的方式,個別的傳送電源切換控制訊號CS到對應之電源切換單元931。電源切換單元931例如藉由邏輯電路、電晶體或電力開關元件(power switch)實現是否輸出電壓VS_P至對應的執行單元,如對應到NOP指令時,電壓VS_P為VS’,VS’可能為0或是較原先的操作電壓位準為低的電壓,以達成減少功率消耗。當有需要時,電壓VS_P由0或較低的位準調整至原先的操作電壓位準。
電源管理電路990之輸出電壓亦可用不同方式實施,例如電源調整控制器920依照NOP指令出現次數與門檻值作比較的方式,個別的傳送電源切換控制訊號CS到對應之電源切換單元931,以及令電源管理電路990產生不同的操作電壓VS與VS’,以對應到執行單元890_1-890_n。電源調整控制器920藉由電源切換控制訊號CS給各個電源切換單元931,選擇不同之操作電壓(VS或VS’)以達成減少功率消耗。電源管理電路990例如是電源管理積體電路,包括如直流-直流轉換器、電壓整流器或動態的電壓調整(dynamic voltage scaling)或其他電源管理之迴路。
此外,舉例以言,執行單元例如包括一運算及邏輯單元、一位元處理單元、一資料傳遞單元及一地址產生單元。當然,VLIW處理器之執行單元的實施方式並不以此為限,只要能符合上述加入指令轉碼層級的VLIW處理器之管線結構者,並利用指令轉碼的結果來對執行層級作電源管理的VLIW處理器,皆可視為依據本揭露之實施例。
上述已提供有關於一具電源管理之超長指令處理器以及其電源管理裝置與方法若干實施例。藉由對指令包裹作轉碼處理以將指令包裹裡有效指令及NOP指令分開及集中,並進一步將對應到NOP指令的超長指令處理器的執行單元進行減少電源消耗的控制。
此外,透過分析一些應用程式如多媒體的解碼或編碼如H.264、JPEG、MP3、MPEG2、WMA之解碼或編碼於一般VLIW處理器上執行會有NOP指令佔整體指令總數的百分比為約49%至約74%之間的情況。故對於例如具有5個執行單元的VLIW處理器使用上述一實施例來實現電源管理的話,能減少例如其中一路或兩路的執行單元的電源消耗,則可以有效減少VLIW處理器整體電源消耗。故此,具有電源管理的VLIW處理器,將更能適用於電子產品,如可攜式或行動裝置上,以配合電子產品之應用及電源的限制,以發揮VLIW處理器對電子產品帶來的好處,提昇電子產品的運算能力、減少電子產品整體的硬體複雜度,可以在不同省電模式下或動態的情況下降低電源消耗。
綜上所述,雖然本案已揭露實施例如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10...指令提取
15...指令快取
20...指令解碼
30...讀取運算元
40...執行
50...記憶體讀寫
55...資料記憶體
60...寫回結果
110...指令轉碼
120、220...減少功率消耗控制器
210、500、810...指令轉碼器
230_1至230_n...執行單元
420...電壓控制器
421...NOP計算器
423...比較電路
510...指令位移決定裝置
530...指令重排裝置
600...指令位移決定電路
610...比較電路
620...多工器
625...加法器
630...記憶器
740B、740C、840...解碼器
750B、760B、750C、760C...切換電路
800、900...VLIW處理器
820...時鐘門控控制器
830...時鐘門控電路
831...時鐘門控單元
850...第一切換電路
860...第二切換電路
881、883、885...管線暫存器
890_1、890_2、890_n...執行單元
920...電源調整控制器
930...電源切換電路
931...電源切換單元
990...電源管理電路
B1-B6...時間區塊
TH...門檻值
S_INFO...指令槽資訊
S_R...位移結果
RF1-RFn...暫存器文件
MUX、MUX1-4、MUX1’-MUX4’...多工器
IN1-IN4...輸入
C...控制訊號
CLK、CLK_P...時脈訊號
CG...時鐘門控訊號
VS、VS’、VS_P...電壓
CS...電源切換控制訊號
CV...電源管理電路控制訊號
第1A圖為依據一實施例之VLIW處理器之管線架構。
第1B圖所示為基於第1A圖之VLIW處理器之電源管理方法一實施例。
第2圖繪示依據一實施例之VLIW處理器之電源管理裝置。
第3圖繪示對於具有4個執行單元的VLIW處理器的指令包裹經轉碼後的處理程序之一實施例的示意圖。
第4A圖繪示指令包裹經轉碼後的處理程序之另一實施例的示意圖。
第4B圖所示為電壓控制器之一實施例。
第5A圖所示為指令轉碼器之一實施例的方塊圖。
第5B圖為指令位移決定方法之一實施例之流程圖。
第6圖所示為實現第5B圖之方法的指令位移決定電路之一實施例的方塊圖。
第7A圖所示為在一暫存器文件的位置輸入訊號前耦接一多工器之實施例。
第7B圖係依據一實施例之讀取運算元層級的電路結構,用以解決暫存器衝突的問題。
第7C圖係依據另一實施例之讀取運算元層級的電路結構,用以解決暫存器衝突的問題。
第8A圖為依一實施例之VLIW處理器之部分的方塊圖。
第8B圖所示為時鐘門控單元之一實施例。
第9A圖為依另一實施例之VLIW處理器之部分的方塊圖。
第9B圖所示的電源切換單元之一實施例。
S110-S120...步驟

Claims (34)

  1. 一種電源管理裝置,用於一超長指令處理器,該電源管理裝置包括:一指令轉碼器,重新排列一輸入的指令包裹中之一有效指令與一無操作指令之位置且輸出一轉碼後的指令包裹,其中該轉碼後的指令包裹經上述重新排列使該無操作指令對應到該超長指令處理器中欲減少功率消耗之至少一執行單元;以及一減少功率消耗控制器,依據該轉碼後的指令包裹,對該轉碼後之指令包裹中該無操作指令所對應之至少一執行單元,選擇性地進行減少功率消耗的控制。
  2. 如申請專利範圍第1項所述之電源管理裝置,其中該指令轉碼器檢查該輸入的指令包裹中之該有效指令與該無操作指令之位置關係,並重新排列該輸入的指令包裹中之該有效指令與該無操作指令之位置且輸出該轉碼後的指令包裹。
  3. 如申請專利範圍第2項所述之電源管理裝置,其中該指令轉碼器包括:一指令位移決定裝置,檢查該輸入的指令包裹中之該有效指令與該無操作指令之位置關係;以及一指令重排裝置,依據該指令位移決定裝置經檢查所得之位置關係的結果對該輸入的指令包裹中之該有效指令與該無操作指令之位置作一位移操作以輸出該轉碼後的指令包裹。
  4. 如申請專利範圍第2或3項所述之電源管理裝 置,其中該經檢查所得之位置關係的結果包括該輸入的指令包裹中之各個該有效指令在該輸入的指令包裹中所對應的指令槽號碼以及一位移數值。
  5. 如申請專利範圍第3項所述之電源管理裝置,其中該指令位移決定裝置依一順序對該輸入的指令包裹中的指令檢查是否為該無操作指令,並累計該無操作指令之數量,其中當一指令被判斷為該有效指令時,該累計之無操作指令之數量是為該有效指令之一位移數值;該指令重排裝置依據該位移數值對該有效指令作該位移操作以使該有效指令在該轉碼後的指令包裹中向一位置集中。
  6. 如申請專利範圍第5項所述之電源管理裝置,其中該指令位移決定裝置所依之該順序為從該輸入的指令包裹的一端的指令依序至另一端的指令。
  7. 如申請專利範圍第5項所述之電源管理裝置,其中該指令位移決定裝置所依之該順序為從該輸入的指令包裹的一端的指令依序至其中一指令或其中一指令依序到一端的指令。
  8. 如申請專利範圍第1項所述之電源管理裝置,其中該減少功率消耗控制器,根據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應到之該至少一執行單元,選擇性地進行時鐘門控(clock gating)控制,以減少功率消耗。
  9. 如申請專利範圍第1項所述之電源管理裝置,其中該減少功率消耗控制器,根據該轉碼後的指令包裹,選擇性提供一較原有操作電壓為低的電壓給該轉碼後之指 令包裹中之該無操作指令所對應到之該至少一執行單元,以減少功率消耗。
  10. 如申請專利範圍第1項所述之電源管理裝置,其中該減少功率消耗控制器,累計該轉碼後的指令包裹中對應到該欲減少功率消耗之至少一執行單元的該無操作指令的數量;若該累計的數量滿足一門檻值時,該減少功率消耗控制器對該欲減少功率消耗之至少一執行單元,選擇性地提供一較原有操作電壓為低的電壓以減少功率消耗。
  11. 如申請專利範圍第1、8、9或10項所述之電源管理裝置,其中該指令轉碼器更輸出指令有效性資訊以代表該轉碼後的指令包裹中各個指令槽是否為該有效指令或該無操作指令;該減少功率消耗控制器,依據該指令有效性資訊,選擇性地進行減少功率消耗的控制。
  12. 一種電源管理方法,用於一超長指令處理器,該電源管理方法包括:重新排列一輸入的指令包裹中之一有效指令與一無操作指令之位置以輸出一轉碼後的指令包裹,其中該轉碼後的指令包裹經上述重新排列後得以使該無操作指令對應到該超長指令處理器中欲減少功率消耗之至少一執行單元;以及依據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應之該至少一執行單元,選擇性地進行減少功率消耗的控制。
  13. 如申請專利範圍第12項所述之電源管理方法,其中該重新排列之步驟包括: 檢查該輸入的指令包裹以得到該輸入的指令包裹中之該有效指令與該無操作指令之位置關係;以及依據經檢查所得之位置關係的結果,對該輸入的指令包裹中之該有效指令與該無操作指令之位置作一位移操作以輸出該轉碼後的指令包裹。
  14. 如申請專利範圍第13項所述之電源管理方法,其中經檢查所得之位置關係的結果包括該輸入的指令包裹中之各個該有效指令在該輸入的指令包裹中所對應的指令槽號碼及一位移數值。
  15. 如申請專利範圍第13項所述之電源管理方法,其中:該檢查該輸入的指令包裹之步驟包括:依一順序對該輸入的指令包裹中的指令檢查是否為該無操作指令,並累計該無操作指令之數量,其中當一指令被判斷為該有效指令時,該累計之無操作指令之數量是為該有效指令之一位移數值;以及該位移操作步驟包括:依據該位移數值對該有效指令作該位移操作以使該有效指令在該轉碼後的指令包裹中向一位置集中。
  16. 如申請專利範圍第15項之所述之電源管理方法,其中該順序為從該輸入的指令包裹的一端的指令依序至另一端的指令。
  17. 如申請專利範圍第15項之所述之電源管理方法,其中該順序為從該輸入的指令包裹的一端的指令依序至其中一指令或從該輸入的指令包裹中一指令依序到一 端的指令。
  18. 如申請專利範圍第12項所述之電源管理方法,其中該選擇性地進行減少功率消耗的控制步驟包括:依據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應到之該至少一執行單元,選擇性地進行時鐘門控(clock gating)控制以減少該至少一執行單元的功率消耗。
  19. 如申請專利範圍第12項所述之電源管理方法,其中該選擇性地進行減少功率消耗的控制步驟包括:依據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應之該至少一執行單元,選擇性地提供一較原有操作電壓為低的電壓以減少功率消耗。
  20. 如申請專利範圍第12項所述之電源管理方法,其中該選擇性地進行減少功率消耗的控制步驟包括:累計該轉碼後的指令包裹中對應到該欲減少功率消耗之至少一執行單元的該無操作指令的數量;以及若該累計的數量滿足一門檻值時,對該欲減少功率消耗之至少一執行單元,選擇性地提供一較原有操作電壓為低的電壓以減少功率消耗。
  21. 如申請專利範圍第12、18、19或20項所述之電源管理方法,其中該重新排列之步驟更輸出指令有效性資訊以代表該轉碼後的指令包裹中各個指令槽是否為該有效指令或該無操作指令;該選擇性地進行減少功率消耗的控制步驟,依據該指令有效性資訊,選擇性地進行減少功率消耗的控制。
  22. 一種超長指令處理器,包括:一讀取運算元層級;多個執行單元,耦接該讀取運算元層級;一指令轉碼器,該讀取運算元層級耦接於該指令轉碼器與該些執行單元之間,該指令轉碼器重新排列一輸入的指令包裹中之一有效指令與一無操作指令之位置且輸出一轉碼後的指令包裹,該轉碼後的指令包裹由該些執行單元執行,其中該轉碼後的指令包裹經上述重新排列後得以使該無操作指令對應到該些執行單元之至少一執行單元,該至少一執行單元為欲減少功率消耗之對象;以及一減少功率消耗控制器,依據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應之至少一執行單元,選擇性地進行減少功率消耗的控制。
  23. 如申請專利範圍第22項所述之超長指令處理器,其中該指令轉碼器檢查該輸入的指令包裹中之該有效指令與該無操作指令之位置關係,並重新排列該輸入的指令包裹中之該有效指令與該無操作指令之位置且輸出該轉碼後的指令包裹。
  24. 如申請專利範圍第23項所述之超長指令處理器,其中該經檢查所得之位置關係的結果包括該輸入的指令包裹中之各個該有效指令在該輸入的指令包裹中所對應的指令槽號碼以及一位移數值。
  25. 如申請專利範圍第24所述之超長指令處理器,其中讀取運算元層級包括:一第一切換電路; 多個暫存器文件,耦接到該第一切換電路,各該些暫存器文件對應到一執行單元;一第二切換電路,該些暫存器文件耦接於該第一切換電路與該第二切換電路之間;以及一解碼器,依據該經檢查所得之位置關係的結果,控制該第一切換電路與該第二切換電路以將該轉碼後的指令包裹中各個指令所對應的暫存器地址或資料傳送到該些暫存器文件之一,並且對應地從該暫存器文件讀取之資料傳送到對應的該執行單元。
  26. 如申請專利範圍第25項所述之超長指令處理器,其中當該指令轉碼器產生之一上一轉碼後的指令包裹之一指令槽之該有效指令與該指令轉碼器產生之一目前轉碼後的指令包裹之該指令槽之該有效指令使用一相同暫存器文件時,該解碼器依據該目前轉碼後的指令包裹之該有效指令所對應的該指令槽號碼以及該位移數值,控制該第一切換電路與該第二切換電路以令該目前轉碼後的指令包裹之該有效指令所對應的執行單元改存取另一暫存器文件。
  27. 如申請專利範圍第23項所述之超長指令處理器,其中該指令轉碼器包括:一指令位移決定裝置,檢查該輸入的指令包裹中之該有效指令與該無操作指令之位置關係;以及一指令重排裝置,依據該指令位移決定裝置經檢查所得之位置關係的結果對該輸入的指令包裹中之該有效指令與該無操作指令之位置作一位移操作以輸出該轉碼後 的指令包裹。
  28. 如申請專利範圍第27項所述之超長指令處理器,其中該指令位移決定裝置依一順序對該輸入的指令包裹中的指令檢查是否為該無操作指令,並累該無操作指令之數量,其中當一指令被判斷為該有效指令時,該累計之無操作指令之數量是為該有效指令之一位移數值;該指令重排裝置依據該位移數值對該有效指令作該位移操作以使該有效指令在該轉碼後的指令包裹中向一位置集中。
  29. 如申專利範圍第28項之所述之超長指令處理器,其中該指令位移決定裝置所依之該順序為從該輸入的指令包裹的一端的指令依序至另一端的指令。
  30. 如申請專利範圍第28項之所述之超長指令處理器,其中該指令位移決定裝置所依之該順序為從該輸入的指令包裹的一端的指令依序至其中一指令或其中一指令依序到一端的指令。
  31. 如申請專利範圍第22項所述之超長指令處理器,其中該減少功率消耗控制器,根據該轉碼後的指令包裹,對該轉碼後之指令包裹中之該無操作指令所對應到之該至少一執行單元,選擇性地進行時鐘門控控制,以減少功率消耗。
  32. 如申請專利範圍第22項所述之超長指令處理器,其中該減少功率消耗控制器,根據該轉碼後的指令包裹,選擇性提供一較原有操作電壓為低的電壓給該轉碼後之指令包裹中之該無操作指令所對應到之該至少一執行單元,以減少功率消耗。
  33. 如申請專利範圍第22項所述之超長指令處理器,其中該減少功率消耗控制器,累計該轉碼後的指令包裹中對應到該欲減少功率消耗之至少一執行單元的該無操作指令的數量;若該累計的數量滿足一門檻值時,該減少功率消耗控制器對該欲減少功率消耗之至少一執行單元,選擇性地提供一較原有操作電壓為低的電壓以減少功率消耗。
  34. 如申請專利範圍第22、31、32或33項所述之超長指令處理器,其中該指令轉碼器更輸出指令有效性資訊以代表該轉碼後的指令包裹中各個指令槽是否為該有效指令或該無操作指令;該減少功率消耗控制器,依據該指令有效性資訊,選擇性地進行減少功率消耗的控制。
TW099143115A 2010-12-09 2010-12-09 具電源管理之超長指令處理器以及其電源管理裝置與方法 TWI432953B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099143115A TWI432953B (zh) 2010-12-09 2010-12-09 具電源管理之超長指令處理器以及其電源管理裝置與方法
US13/112,307 US8769245B2 (en) 2010-12-09 2011-05-20 Very long instruction word (VLIW) processor with power management, and apparatus and method of power management therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099143115A TWI432953B (zh) 2010-12-09 2010-12-09 具電源管理之超長指令處理器以及其電源管理裝置與方法

Publications (2)

Publication Number Publication Date
TW201224733A TW201224733A (en) 2012-06-16
TWI432953B true TWI432953B (zh) 2014-04-01

Family

ID=46200621

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099143115A TWI432953B (zh) 2010-12-09 2010-12-09 具電源管理之超長指令處理器以及其電源管理裝置與方法

Country Status (2)

Country Link
US (1) US8769245B2 (zh)
TW (1) TWI432953B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158328B2 (en) * 2011-12-20 2015-10-13 Oracle International Corporation Memory array clock gating scheme
US9098271B2 (en) * 2012-02-05 2015-08-04 Jeffrey R. Eastlack Autonomous microprocessor re-configurability via power gating pipelined execution units using static profiling
US9330011B2 (en) * 2013-09-20 2016-05-03 Via Alliance Semiconductor Co., Ltd. Microprocessor with integrated NOP slide detector
US10019260B2 (en) 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
US10496409B2 (en) * 2016-11-22 2019-12-03 The Arizona Board Of Regents Method and system for managing control of instruction and process execution in a programmable computing system
TWI733305B (zh) * 2020-01-10 2021-07-11 瑞昱半導體股份有限公司 晶片及基於神經網路電路的電流調整方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958044A (en) * 1997-01-24 1999-09-28 Texas Instruments Incorporated Multicycle NOP
US6182203B1 (en) 1997-01-24 2001-01-30 Texas Instruments Incorporated Microprocessor
US6219796B1 (en) 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
DE69838374T2 (de) 1997-12-23 2008-05-29 Texas Instruments Inc., Dallas Prozessor und Verfahren zum Verringern von dessen Energieverbrauch
US6442701B1 (en) 1998-11-25 2002-08-27 Texas Instruments Incorporated Power saving by disabling memory block access for aligned NOP slots during fetch of multiple instruction words
US6535984B1 (en) 1998-11-25 2003-03-18 Texas Instruments Incorporated Power reduction for multiple-instruction-word processors with proxy NOP instructions
US6859870B1 (en) * 2000-03-07 2005-02-22 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
US6748020B1 (en) 2000-10-25 2004-06-08 General Instrument Corporation Transcoder-multiplexer (transmux) software architecture
US7107471B2 (en) 2001-03-21 2006-09-12 Apple Computer, Inc. Method and apparatus for saving power in pipelined processors
GB2378538A (en) 2001-08-10 2003-02-12 At & T Lab Cambridge Ltd Saving power in a pipelined processor/memory system by replacing discarded instructions following a branch by a duplicate of the branch instruction
US7231508B2 (en) 2001-12-13 2007-06-12 Quicksilver Technologies Configurable finite state machine for operation of microinstruction providing execution enable control value
US6865662B2 (en) 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
AU2003267692A1 (en) 2002-10-11 2004-05-04 Koninklijke Philips Electronics N.V. Vliw processor with power saving
WO2004051450A2 (en) 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Software-based control of microprocessor power dissipation
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7290122B2 (en) 2003-08-29 2007-10-30 Motorola, Inc. Dataflow graph compression for power reduction in a vector processor
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
GB0407384D0 (en) 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
TWI275994B (en) 2004-12-29 2007-03-11 Ind Tech Res Inst Encoding method for very long instruction word (VLIW) DSP processor and decoding method thereof
US7412591B2 (en) * 2005-06-18 2008-08-12 Industrial Technology Research Institute Apparatus and method for switchable conditional execution in a VLIW processor
US20080307240A1 (en) 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
US8775777B2 (en) * 2007-08-15 2014-07-08 Nvidia Corporation Techniques for sourcing immediate values from a VLIW
KR101581414B1 (ko) 2009-02-05 2015-12-30 삼성전자주식회사 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법

Also Published As

Publication number Publication date
US8769245B2 (en) 2014-07-01
TW201224733A (en) 2012-06-16
US20120151192A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
TWI432953B (zh) 具電源管理之超長指令處理器以及其電源管理裝置與方法
Hameed et al. Understanding sources of inefficiency in general-purpose chips
EP1956465B1 (en) Power aware software pipelining for hardware accelerators
Veredas et al. Custom implementation of the coarse-grained reconfigurable ADRES architecture for multimedia purposes
US9672046B2 (en) Apparatus and method for intelligently powering heterogeneous processor components
US20140189704A1 (en) Hetergeneous processor apparatus and method
US20120197954A1 (en) Floating point multiplier circuit with optimized rounding calculation
US20140189297A1 (en) Hetergeneous processor apparatus and method
JP6586435B2 (ja) 過度の近似計算誤差から回復するプロセッサ
CN101765885A (zh) 提供在存储器中存储数据时的能量减少
JPWO2007089014A1 (ja) デジタルvlsi回路およびそれを組み込んだ画像処理システム
Hameed et al. Understanding sources of ineffciency in general-purpose chips
JP2008165746A (ja) アクセラレータ、情報処理装置及び情報処理方法
US20080140990A1 (en) Accelerator, Information Processing Apparatus and Information Processing Method
JP2003186567A (ja) マイクロプロセッサ
JP2008152409A (ja) 半導体集積回路
JP2010117806A (ja) 半導体装置、および、半導体装置によるデータ処理方法
US20110225395A1 (en) Data processing system and control method thereof
Hasan et al. Customized kernel execution on reconfigurable hardware for embedded applications
US20080066045A1 (en) Methods and system for configurable domain specific abstract core
US7984204B2 (en) Programmable direct memory access controller having pipelined and sequentially connected stages
JP2004126714A (ja) 情報処理装置および方法、並びにプログラム
JP2009232441A (ja) オーバーラップフィルタリングとコア変換を行うための方法及び装置
Kawakami et al. A 50% power reduction in H. 264/AVC HDTV video decoder LSI by dynamic voltage scaling in elastic pipeline
Ahmad et al. Green computing: Power optimisation of VFI-based real-time multiprocessor dataflow applications (extended version)