TW201224733A - Very low instruction word (VLIW) processor with power management, and apparatus and method of power management therefor - Google Patents

Very low instruction word (VLIW) processor with power management, and apparatus and method of power management therefor Download PDF

Info

Publication number
TW201224733A
TW201224733A TW099143115A TW99143115A TW201224733A TW 201224733 A TW201224733 A TW 201224733A TW 099143115 A TW099143115 A TW 099143115A TW 99143115 A TW99143115 A TW 99143115A TW 201224733 A TW201224733 A TW 201224733A
Authority
TW
Taiwan
Prior art keywords
instruction
package
power consumption
input
command
Prior art date
Application number
TW099143115A
Other languages
English (en)
Other versions
TWI432953B (zh
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
    • 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
    • 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

201224733 六、發明說明: 【發明所屬之技術領域】 本揭露是有關於超長指令處理器電源管理技術,且有 關於一具電源管理之超長指令處理器以及其電源管理裝 置與方法。 【先前技術】 超長指令(Very Long Instruction Word,VLIW)處理 φ 器是為一種利用指令級平行化架構的中央處理單元。VLIW 處理器所用的方式是基於平行方式來執行已在程式編譯 時已排程好的操作指令。因為操作指令的執行次序已由編 譯器決定好,故此種處理器並不需要排程的硬體來處理程 式指令間的相關性問題。如此VLIW處理器能在硬體的複 雜度較低的情況下提供良好的計算效能,而相對編譯器的 複雜度則增加。 就電子裝置如可攜式或行動裝置而言,如此的處理器 φ 確實可以減低整體的硬體複雜度及成本,並增進效能。但 如何讓VLIW處理器適用於電子產品,以配合電子產品之 應用之制限,如運算及電力資源有限的問題,仍然有待改 進。 【發明内容】 以下提供有關於一種具電源管理之超長指令處理器 以及其電源管理裝置與方法實施例。一電源管理方法實施 例,用於超長指令處理器,藉由對指令包裹作轉碼處理以 201224733 將指令包裹裡有效指令及無操作(N〇p,n〇 〇perati〇n)指 令分開及集中’並進—步將對應到非運作指令的超長指令 處理器的執行單元進行減少電源消耗的控制。 提出一電源管理裝置實施例,用於超長指令處理器。 電源管理裝置包括一指令轉碼器以及一減少功率消耗控 制器。指令轉碼器,重新排列—輸人的指令包裹中有效指 令與無操作指令之位置以輸出—轉媽後的指令包裹,其中 轉碼後的心7包衷經上述重新排列使無操作指令對應到 超長指令處理H中欲減少功率消耗之至少—執行單元。減 少功率消耗控㈣,依據轉碼後的指令包裹,對轉碼後之 指令包裹中無操作指令所對應之至少—執行單元,選擇性 地進行減少功率消耗的控制。 電源管理方法包括以下步驟^重新排列一 中有效指令與無操作指彳之位置以輸出 提出-電源管理方法實施例,用於超長指令處理器。
^叨平呐耗之至少一執 對轉碼後之指令包裹中 元’選擇性地進行減少 行單元。依據轉碼後的指令包裹,對與 無操作指令所對應之至少一執行單元,
201224733 1 w〇H〇jr/\ 並輸出一轉碼後的指令包裹,Mzs 4 A ^时- 轉碼後的指令包裹由這些執 仃早兀執仃,其中轉碼後的指人 7包裹經上述重新排列使無 刼作指令對應到ϋ些執行單元中 0 , 此至少一執盯^為欲減少功率消耗之對象。減少功率消 耗控制器,依據轉石馬後的指令包裹, 中無操作指令所對應之至少_.^ u m仃早疋,選擇性地進行減 少功率消耗的控制。 為了對本案之上述及其仙士$ 、他方面有更佳的瞭解,下文特 舉貫施例,並配合所_式’料細說明如下: 【實施方式】 以Λ 提供有關於—具電源管理之超長指令處理器以 及其電源官理裝置與方法之實施範例。 第.1Α 2表依據—實施例之vuw處理器之管線 (Pipel=架構中具有指令轉碼器(㈣⑽⑽
Γη )的貫施例。在第U圖中,指令擷取層級1〇 存取ί日令快取15並傳到指令解碼(Instructi〇n
Decode)
層級20’在指令解碼層級20及讀取運算元(read〇perand) 層級30中,加入了指令轉碼層級在指令轉碼層級 110中,將輸入的才曰令包裹中無操作(NOP,no operation) 指令重排以對應到VLIW處理器的某些執行單元,並輸出 一轉碼後的指令包裹。根據指令轉碼層級丨1〇的輸出結 果,減少功率 >肖耗控制器(p〇wer reduction control 1 er) 120將對應到轉碼後之指令包裹中N〇p指令的 執行單元進行減少功率消耗的控制。換句話說,在第1A 201224733 .、 1 ντ v-rv-rj 圖之管線架構之實施例中,對應到NOP指令,從執行層級 40及其以後如記憶體讀寫層級50及寫回層級60的功率消 耗皆可得以減少。 基於第1A圖之實施例之VLIW處理器之管線 (pipeline)架構,可以設計出一具電源管理之VLIW處理 器。稍後將舉詳細實作實施範例以作說明。 而第1B圖所示為基於第1A圖之VLIW處理器之電源 管理方法一實施例。如步驟S110所示,分析或檢查一輸 入的指令包裹中有效指令與N0P指令之位置關係並重新排 列有效指令與N0P指令之位置以使N0P指令對應到VLIW 處理器的某些執行單元,即欲減少功率消耗之至少一執行 單元,並輸出一轉碼後的指令包裹。如步驟S120所示, 根據指令轉碼的輸出結果,選擇性的將對應到轉碼後之指 令包裹中N0P指令所對應之上述的某些執行單元進行減少 功率消耗的控制。 為實現此種電源管理方法,VLIW處理器之電源管理 裝置如第2圖之一實施例所示,包括一指令轉碼器210及 一減少功率消耗控制器220。指令轉碼器210將一輸入之 指令包裹ΙΡ0經過轉碼,輸出一轉碼後之指令包裹IP1經 過至讀取運算元層級30後輸出到VLIW處理器之執行單元 230_1至230_n執行,其中η>1。 指令包裹(instruct ion package)包括多個指令,例 如表示為{ INS1I INS2I INS3 卜..| INSn},其中如 INS3 表示第3個指令,而且這η個指令分別交予η個執行單元 執行。在邏輯上來說,可稱這η個指令依序分別落在η個 201224733 指令槽(slot),每個指令槽有對應自己的執行單元。舉例 而言,如一個具有5個指令槽的指令包裹IP0=UDD| N〇p| NOPI SUBI ADD}中’有兩個指令,三個有效指令,其 :ADD及SUB分別為簡寫代表加—加法運算及一減法運 真,其中為方便說明而忽略運算子。 在實化例巾,指令轉碼器21〇可設計為@ N〇p指令 集中在第2圖中最右邊的執行單元,而有效指令則因此而 往左邊移位。沿用上述例子:
IP〇={酬黯1卿丨SUBI _經轉碼後則為: IP1={ ADD| SUBI ADDI NOPI N0P}。 、 假設VLIW處理器所執行的程式的指令包裹常有出現騰 的話’減少功率消耗控制器22〇可依據指令轉碼器21〇轉 碼後之指令包们P1之結果,對最右邊的執行單it 203 4 =3—5進行減少功率消耗的控制,其中^。指令轉碼 :丄10例如輸出表示指令包裹IP1中每個指令槽是為有效 曰7或N0P指令的指令有效性資訊,以便使減少功 控制器220據以判斷來進行減少功率消耗的控制,如上: =令包裹m ’可以對每個指令槽以一個位元表示,如 -。二1丨二Γ其中0代表_指令,1代表有效指 性資訊可以其他的表示方式,如每個 “令槽以一個位元表示或其他代號亦可實施。 減少功率消耗控制器220依據指令有效性資訊,決定 的.處理之多個執行單元選擇性地作減少功率消耗 :::。減少功率消耗的控制如選擇性地控制供給執行單 兀的時脈,或選擇性地調降執行單元的操作電壓。 201224733 二咸少功率消耗控制器220 —實施例,可 =鐘批㈣ckgating)控制器,用以選擇性地== ^仃早的時脈。依循上述的實施例,指令轉碼器则 輸出的指令包裹中·指令如第3圖所示的是為安排 在右側的指令槽’其中㈣的有效指令是以 表’而EUE4分另代表對應到4個執行單元如^ = _行單元23G—β23〇—4(n=4)。時鐘門控控制器可= 才曰令有效性資訊’令第3圖的方塊β1對應的週期中 行單=3及Μ作時脈閉鎖,以及在方塊B2對應的軸 令執行單元E4作時脈閉鎖。時鐘門控控制器以及相關的 控制可以使用例如習知的各種時鐘門控邏輯實現或其他 依上述第1A圖之原理實現。 —” 又一實施例,例如減少功率消耗控制器220可以為— 電壓控制器,其可選擇性地控制供給執行單元的操作= 壓。電壓控制器可依據指令有效性資訊,令第3圖的方塊 B1對應的週期中令執行單元E3及E4所接收的操作電壓降 低,以及在方塊B2對應的週期中令執行單元以所接收的 操作電壓降低。其他的執行單元則維持原先的操作電壓位 準。此外,因為就某些執行單元而言,執行Nop指令是可 以在較低的電壓位準下操作’甚至可以將電源關閉。電源 關閉就是調降電壓至最少的一個實施例,而調降電壓時又 •5J*設計令其待機電流(standby current)維持在一水平以 令其内部狀態不變。 在調降或關閉電壓來作為減少功率消耗的實施例 中,由於電源的開關是需要花時間的,因此會產生時間上 201224733 的負擔(ovei head)。故此,户斤有運算 到電壓回到可執行的位準之後有^動作必須要暫停,等 執行時間變長,也就日_動作。因此會造成 了]燹長也就疋效能會變差的情況。 為改善此問題,在一實施例巾 數大於或等於一門叫 ί 中假設門插值為3,方塊B3顯示_
Γ/Ε4Γ3個週期之後,方塊B4代表可令執行單元 *卩要執仃有效指令,故必須把執行單元Ε3及Ε4 、准持原先的操作電壓位準,且必須確保Ε3以及£4所執行 ^有效指令能順利走完接下來的管線層級,因此方塊Β5 的4個週期,必須維持原先的操作電壓位準。又方塊Β5 顯示連續4個·指令,已經大於門檻值⑶,因此又可 將令執行單元Ε3及Ε4進入省電的狀態。 第^4Β圖則為電壓控制器42〇之一實施例,如包括一 Ν0Ρ計算器421及一比較電路423。比較電路423判斷Ν〇ρ 計算器累計的Ν 0 Ρ指令於某些指令槽(如對應到執行單元 Ε3及Ε4之Ν0Ρ指令連續出現次數)之次數及一門檻值ΤΗ, 以决定是否要指示其他電路,例如是電源管理電路或切關 元件等以使執行單元Ε3及Ε4進入省電的狀態。另外,門 檻值可设計為允許使用者自己決定,例如透過設定一暫存 器來設定。 以下進一步提出上述電源管理裝置中,指令轉碼器 210之其他實施方式。例如第5Α圖所示,指令轉碼器500 201224733 I ννυπο^ΓΛ 包括一指令位移決定裝置510以及一指令重排裝置530。 指令位移決定裝置510分析或檢查一輸入的指令包裹中有 效指令與Ν0Ρ指令之位置關係,以產生指令位移資訊。指 令重排裝置530依據指令位移資訊以重新排列有效指令與 Ν0Ρ指令之位置以集中Ν〇ρ指令以對應到vuw處理器的某 些執行單元,以輸出一轉碼後的指令包裹。 第5B圖為指令位移決定方法之一實施例之流程圖, 其可應用於將指令包裹中的N〇P指令向左、向右、向中間、 向兩侧集中之不同實施例。指令位移決定裝置51〇可用以 實現第5B圖之方法。在說明以前,首先定義如下:上述 指令有效性資訊之例子,如{丨丨丨丨丨丨〇丨〇丨,以下稱之 為才曰令包裹之有效位;^值,並且定義最左有效位元以及最 右有效位兀為有效位元值中最右有效位元(lsb;[的討
Sigrnficant Bit)及最左有效位元M〇st Significant Bit),在此例中分別為〇及^指令位移決 定方法分析或檢查有效位元值中0與!之位置關係,進而 產生指令包裹巾各個指令的位移結果(Shift—Resum戈 簡寫為S_R),以執行指令的位移。 指令位移決定方法的步驟如下。步驟测,Ζα〇—h㈣ ::始值為0。將一指令包裹之有效位元值的各個位元, 稱為指令射訊(slc)t inf_atiQn)或簡寫為s删,依 輸人以步驟测作判斷指令槽資訊是否為0。如步 =52G所示’如果指令槽資訊為〇,即代表此指令槽之指 因此執行步侧使加 在出現第—财效指令(指令槽資訊為〇之前有 201224733 一個 NOP 指令。& 1 w u 八果才曰々槽負讯為1,及表示此指令槽 2: 1為有效指令,故執行步驟S54G,即讓Zer。Head維 别的值。如步驟咖〇所示,依上述結果更新Zero Head 的兄憶器、中的值。接著’如步驟S560所示,將Zero_Head 的數值送出以作為此指令槽對應的位移結果 Shiit:Result。如步驟S57Q所示,檢查是否為最後之指 令槽#訊’如果不是最後之指令槽資訊,重覆步驟S520, 直至才曰令槽貝訊輪入完為止。若是最後之指令槽資訊則 如步驟S580,指令位移決定處理結束。 決定電路600包括一比較電路61〇、一多工器62〇、加法 器625以及e己憶器630。比較電路61〇用以實現步驟 S520,多工器620及加法器625及記憶器63〇用以實現步 驟 S530 至 S560 。 而相對應的電路可以實現為如第6圖所示。指令位移 以下將分別依第5B圖以說明如何將指令包裹中的 N0P指令向左、向右、向中間、向兩側集中之不同實施例, 其中各個實施例,皆可基於上述第5B圖之方法及第6圖 之電路實施例加以實現。 N0P指令向右位移實施例 首先以N0P指令向右位移為例。如以{ i | 〇 | 〇 ( 1 I 1 I 0 }為例子,如果是要將NOp指令向右位移(有效指 令向左),就要以最左有效位元(MSB)當成第一個輸入的指 令槽資訊,輸入的順序為1=>0=>0=>1=>1=>0。依據第5B 圖之流程圖,可產生所對應之位移結果S_R,供計算位移 201224733 量之電路以及所產生位移結果S_R來執行指令的位移。 依上述順序’依次輸入有效位元值之各個位元到指令 位移決定電路6〇〇,以依據第5B圖之方法產生對應的位移 結果S_R。第一次輸入,指令槽J的資訊為i,因此 Zero_Head保持為〇。第二次則指令槽2的資訊為〇,因此 Zero—Head加1,因此Zero一Head的結果為1。第三次則指 令槽3的資訊為〇,因此Zero_Head加卜因此Zer〇—Head 的結果為2。第四次,指令槽4的資訊為i,因此Zer〇_Head 保持為2,因此Zero_Head的結果為2。第五次,指令槽5 _ 的資訊為1,因此Zero_Head保持為2 ,因此Zero_Head 的結果為2。第六次則指令槽6的資訊為〇,因此Zer〇_Head 加1 ’因此Zero_Head的結果為3。如此,指令槽1至6 對應的位移結果S_R分別為:[〇,1,2,2,2,3]。 有了各個指令槽的位移結果S—R的數值之後,就能進 行才曰令的位移了。舉例而言,在指令槽1中,雖然指令槽 資訊為1,代表有效指令,但指令槽丨已經是第一個指令 t 了’且位移結果s_R的數值為〇’因此不需位移(以D〇n,t φ Move; DM代表)。在指令槽2中,指令槽資訊為〇,代表 N0P指令’而位移結果s_R的數值為卜但指令槽2為N〇p 指令,因此不需考慮(以Don’t Care; DC代表)。指令槽3 同理於指令槽2,因此不需考慮。在指令槽4中,指令槽 資訊為1 ’代表有效指令’而位移結果的數值為2, 因此指令槽4中的指令必須向左位移2個指令槽,置放到 指令槽2中’而指令槽4所遺留出來的空缺,則由N〇p指 令填補。在指令槽5中,指令槽資訊為丨,代表有效指令: 12 201224733 1 TTV-TOJ, y-v 而位移結果S__R的數值為2,因此同理於指令槽4,指令 槽中的指令必須向左位移2個指令槽’置放到指令槽3 中’而指令槽5所遺留出來的空缺,則由Ν0Ρ指令填補。 最後,指令槽6同理於指令槽2,因此不需考慮。在上述 的例子中,經過位移的計算,能產生兩個參數,分別是有 效指令從哪個指令槽位移過來以及有效指令位移後位在 那低心令槽’也就是指令槽的號碼(sl〇t number)g—減 去對應的位移結果S-R的數值,因此這兩個參數為{S JUM • SJUM-S—R}。 ~ ’ 一因此依據上述的例子,所對應的位移關係可解讀及表
示為:[DM,DC’ DC,SL—2, SL_2’ DC] ’ 其中簡寫 DM、DC 刀別代表「不需移動」及「不需考慮」,而SL—k(或邡 則分別表示向左(或向右移)k個指令槽。如此,指令重排 裝置⑽’可依據上述位移結果S—R以及上述規則,利用 如邏輯電路方式實現將輸入的指令包裹中的,指令向右 ^ ’經㈣後所產生的指令包裹所對應的有效位元值 為:{ 1丨1丨1 I 0丨0丨〇 }。 Ν0Ρ指令向左位移實施例 」1 1 〇 1 〇 1 1 1 1丨0 }為例子,如果是要Ν0Ρ ΓΛ 有效指令向右),就要以最右有效位元⑽) =第-個輸入的指令槽資訊,輸入的順序為 〇=>1二>1=>〇=>〇=>1。如此,指令 S-R分別為:3 3 2〗 槽6至1對應的位移結果 , , , ,L 1,其中指令槽的號碼由右 左起异。而所對應的位移關係可解讀為:sr_3 dc,dc, 201224733 SR—1,SR—1,DC。如此,指令重排裝置530,可依據上述 位移結果S一R,實現將輸入的指令包裹中的nop指令向左 位移’經位移後產生的指令包裹所對應的有效位元值為: {〇丨〇1〇丨1丨1丨1}。 NOP指令向中間位移實施例 以(1丨〇 I 〇 I 1 I 1 I 0 }為例子,如果是要NOp 指令向中間位移(有效指令向兩側),就要將指令包裹分成 兩半。卩。左半部疋以左半部的最左有效位元(Msg)當成第 一個輸入的指令槽資訊;右半部是以右半部的最右有效位 當成第一個輸入的指令槽資訊 有效位元值{ 1丨0丨〇丨1 I 1丨〇 },分為{ 1丨〇 〇 }及{ 1丨1丨〇 }。對於有效位元值的左半部,輸入ό 順序為1=>〇=>〇;右半部的輸入的順序則為〇=>1=>卜』 半部依第5Β圖之方法,產生所對應之位移結果s—R為:[〇 1’ 2],所對應的位移關係可解讀為:[DM,DC,Dc],^ 半礼令包裹經位移後產生的指令包襄所對應的有效相 疋值為{ 1 | ο I 〇 }。右半部依第5β_之方法,產生巧 =位移結果Sj為··[ L υ,所對應的位移關係 1讀為.[Siu,SR—1,DG];右半部指令包I經位移後 產生的指令包裹所對應的有效位元值為{ 〇丨】丨】卜 ^二將兩半部的指令包裹之位移後的指令包裹結合,則 二:侍到轉碼後之指令包裹’而其所對應的有效位元值 為.{ 1丨0丨〇丨ο I 1 I i }。 NOP指令向兩側位移實施例 201224733 1 vv oh (or λ 丹以{ 1 NOP指令向兩侧位移(有效,為例子’如果是要 j兩+部,左半部是以左半部的最右有效位 j ,第一個輸入的指令槽資訊,右半部是以右半部的最左; 效位元(MSB)當成第—個輸 :最左有 裹的有效位兀值{ 1 I 0丨G丨丨丨1 i 0丨,
1 〇}及{ 1丨1丨0}。對於有效位元值的左;部’ =順序為〇勢>1;右半部的輸入的 1=>1=>0。左半部依第5B圖之方法, i請應之位移結 果為.[2, 2, 1],所對應的位移關係可解讀為:[SR_2, DC, DC];左半部指令包裹經位移後產生的指令包裹所對 應的有效位元值為{ 〇丨〇丨! }。右半部依第5β圖之方 法’產生所對應之位移結果U為:[0, 〇, n,所對庫 的位移_可㈣為:[DM,DM, DG];右半部指令包裹經 位移後產生的指令包裹所對應的有效位元值為丨丨丨ι丨 〇 }。最後,將兩半部的指令包裹之位移後的指令 合,則可崎到轉碼後之指令包裹,而所所對應的有效; 元值為:{ 0 I 0 | 1 I 1 I 1 I n i。 此外,假設一個指令包裹中有n個指令槽,但n無法 被2整除時,就將η/2的商(m)做無條件進入法,以此m 的值當成將指令包裹分邊的依據,並由最左有效位元(MSB) 當初始位元往最右有效位元(LSB)作計算。以一個指令包 裹中有5個指令槽為例,n=5故η/2 = 2. 5,故取m=:3,故 以m當成分邊依據’並由最左有效位元(MSB)當初始位元 在最右有效位元(LSB)计鼻3個位元。則如輸入的指令包
I 201224733 裹的有效位元值為{ 0丨1丨0丨i丨〇 }, 半部為(〇"丨〇丨,而右半部為{1二 將任一指令包裹分成左、右兩半部,並依據欲將⑽P俨八 向中間位移或欲將NOP指令向兩側位移作處理,處理 式可依上述的例子作處理,故不再贅述。 其他轉碼的情況 在進行上述指令轉碼過程中,可能會遇到暫存器衝突 的問題。例如,若連續之指令包裹!及指令包裹2 ^別如 下: { add R0,R1,R2| sub R8,R9,R1〇|NOP| NOP| NOP} { ADD R3,R4,R5| NOP |N0P| SUB R8,R9,R10| NOP} 經過轉碼以後,則為: { add R0,R1,R2| sub R8, R9, RIOINOPI N0P| NOP} { ADD R3,R4,R5| SUB R8,R9,R1〇|NOP| NOPI NOP}。 上述暫存器衝突的情況說明如下。指令包裹i的指令 槽2使用了暫存器R8、R9、R10。而轉碼後的指令包裹2 的指令槽2剛好也使用暫存器R8、R9、R10,故不應直接 拿執行單元2(指令槽2)的暫存文件rF2之暫存器來使用 以避免發現運算的錯誤。 上述的狀況可以藉由對暫存文件的輸入及輸出作適 當的切換動作來解決,令目前指令槽中可能會發生暫存器 衝突的指令’改為使用原有指令槽所對應的暫存器文件。 針對上述例子’轉碼後的指令包裹2的指令槽2應該使用 屬於轉碼前的執行單元4(指令槽4)的暫存文件RF4中的 201224733
wo 糾 jrA 暫存器R8、R9、则。當上㈣_ 中依據指令槽的兩個參數丨ς 牡VL1W處理态 哪-齡人料入,s-NUM-sj^控制從 θ "J 輪入訊號到暫存器文件和控制讀 取的資料要送到哪-個執行單元。 X什才徑制。貝 如第7A圖所示’在暫存器 八姊4斜虛夕斬户口〜存器文件(register file)如指 7梢4對應之暫存态文件rF4的 工_,多工器除了接收訊嶋接-多 t應到指令槽4的地址及眘斜 (以輸入IN4作代表)外,f日⑽址及貝枓 及資料(以輸入ΙΝΗΝ3作代表)Υ仏令槽卜3的地址 碼後的指令包裹2的指令作:^ 來決定要使用暫她… 二-—控制對應的多卫器_從指令槽2,即輸 入1Ν2,來讀取位置輸入訊號。 S 著κ>從暫存益文件駒讀取的資料,則依據參數 II ^ 一 s,、他暫存器文件的資料輸出訊號端及執行單 =個“ί Γ換換電路’包括如多工器或解多工器,利用 .~NUM,s〜NUM-S-R丨作為控制訊號,則可藉由 切換電路將對應到指令槽號碼S—SUM(如4)的暫存号文件 =取的資料輪出至對應到參數s—N.SR(如2;的執行 單兀2。 一 用一 對暫存文件的輸入及輸出作適當切換動作可利 ㈣:二電路如解獨器依據兩個參數{ S-NUM,S-NUM-S R} 1接至暫存文件的輪人及輸出的切換電路。 圖係對應到上述Ν0Ρ指令向右位移實施例之一 17 201224733 讀取運算元層級的電路結構之一實施例’用以解決暫存器 衝突的問題。在第7B圖中5個暫存器文件RF1-RF5是對 應到具有5個執行單元如基於第1A圖的管線架構的具有 電源管理的VLIW處理器,如第8A或9A圖所示者,並使 用Ν0Ρ指令向右位移的轉碼方式。此外’一控制電路如解 碼器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’ ,暫存器文件RF卜RF4的資料輸出訊號端 · 耦接多工器MUX1’ -MUX4’ 。多工器MUX4’選擇性的接收 來自對應的指令槽4的資料輸出訊號及其右側的指令槽5 的資料輸出訊號,多工器MUX3’ -MUX1’的耦接方式則可 如此類推。另一方面,轉碼的方式若為使Ν0Ρ指令向左位 移的話,則前述的做法相反。此外在其他實施例中,對多 η個執行單元如基於第1A圖的管線架構的具有電源管理的 VLIW處理器,亦可使用上述的原理如此類推。 第7C圖係依據另一實施例之讀取運算元層級的電路 18 201224733 結構,用以解決暫存器衝突的問題。第7C圖是呈現具有η 個執行單元的VLIW處理器,讀取運算元層級的電路結構, 第7C圖與第7Β圖的電路不同的是:藉由切換電路750C 及760C,所有暫存器文件Rl、R2至Rn的位置輸入訊號端 都可選擇性地接收從上一層級而來任一個指令槽的暫存 器位置及資料;而所有暫存器文件R1至Rn的資料輸出訊 號端都可選擇性地耦接對應到任一個下一層級中任一個 指令槽的執行單元。如此,應用第7C圖的讀取運算元層 # 級的電路結構之VLIW處理器,轉碼層級的Ν0Ρ位移方式 則因此不受限制,可以為使Ν0Ρ指令向左、向右、向中間、 或向兩侧集中的實施方式皆可據以實施,或可以用選擇性 地對轉碼方式作設定,或可以依設定的條件而改變。解碼 器740C可依據轉碼層級的Ν0Ρ位移方式以及指令槽號碼 及指令槽被位移數值如參數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則在管 19 * i 201224733
J Wt>4«JPA 線暫存器885後。 第1A圖之指令轉碼層級11〇由指令轉碼器㈣實 現。指令轉碼器81〇如前述的指令轉螞器21〇或5⑽用 ,將指令解碼層級2G所產生的輸人指令包 後之指令包裹。 而第1A圖之減少功率消耗控制器12〇則由一時鐘門 控控制器820及一時鐘門控電路83〇實現,以進行電源管 理。時鐘門控控制器820,依據從指令轉碼器81〇之輸出, 例如轉碼後之指令包裹的有效位元值例如丨丨丨1丨1丨〇丨 0} ’輸出時鐘門控訊號CG以控制時鐘門控電路83〇。時鐘 門控電路830接收一時脈訊號CLK並依據時鐘門控訊號cg 選擇性地供應時脈給所對應的執行單元89〇j至89〇_n。 時鐘門控電路83〇例如包括多個如第8β圖所示的時 鐘門控單元831,各個對應到執行單元890J至89〇_n, 其中時鐘門控訊號CG可用不同方式例如依有效位元值如 {丨111丨| }中不同位元所對應的指令槽,個別的傳 送致能訊號到對應之時鐘門控控制單元831。時鐘門控控 制單元831例如藉由邏輯電路實現是否輸出為時脈訊號 CLK—P至對應的執行單元。例如在指令槽對應到·指令 時,則禁能使時脈訊號CLK_p為〇,以達成減少功率消耗。 為了避免暫存器衝突的問題,VLIW處理器8〇〇的讀 取運算元層級30採用了如前述第7A、7B或7C圖之實施 例之電路結構,包括—解碼器84〇、一第一切換電路85〇 及一第二切換電路860以及n個暫存器文件RF1RFn。第 一切換電路850或第二切換電路86〇例如為第7b或7c圖 201224733
I W〇48J^A 之實施例中的切換電路750B、750C、760B或760C。解碼 器840依據指令轉碼器810之輸出’例如是指令槽的兩個 參數{ S—NUM,S_NUM-S_R} ’來控制從哪一個指令槽輸入 位置輸入訊號到暫存器文件和控制讀取的資料要送到哪 一個執行單元。 第9A圖為依另一實施例之VLIW處理器900之部分的 方塊圖。在第9A圖中,VLIW處理器900所具有的管線結 構的層級與第8A圖中的相同。VLIW處理器900與VLIW處 _理器800的差異在於:第1A圖之減少功率消耗控制器12〇 則由一電源調整控制器920、電源切換電路930及一電源 管理電路990實現,以選擇性地控制供給執行單元的操作 電壓如調降或關閉來進行電源管理,例如前述第3、4A或 4B圖之實施例。 電源調整控制器920可實施例如第4A及4B圖的電源 管理方法。電源調整控制器920依據指令轉碼器81〇之輸 出,例如轉碼後之指令包裹的有效位元值例如{丨丨丨丨j丨 籲0丨〇丨,經過如第4Λ圖之實施例的判斷後,輸出電源切換 控制訊號CS以及電源管理電路控制訊號CV。電源切換控 制訊號CS傳送至電源切換電路930,用以控制藉由電源切 換電路930所選擇不同的電壓位準以輸出到相對應之執行 單元890_J-890_n。電源管理電路控制訊號CV則傳送至電 源管理電路990以控制電源管理電路990產生不同電塵位 準之電壓,用以提供電源切換電路930不同電壓位準之電 壓輸入。 電源切換電路930例如包括多個如第9B圖所示的電 201224733
TW6483PA 源切換單元93卜各個對應到執行單元_」至謂η ·, 並接收電源管理電路990所輸出的電麼…或Μ,-擇性地輸出VS—P至對應的執行單元,q =
壓位準,VS,為較原有操作電壓為低的電壓:電 :刀換=_可用不同方式實施,例如依有效位元 值如{ 1丨11 11 G| G丨中不同位元所對應的指令槽(第3 ^或第4A及4B圖之比較指令出現次數與門植值的 y個別的傳送電源切換控制訊號cs到對應之電源切 換早元93卜電源切換單元93H列如藉由邏輯電路、電晶 體或電力開關元件(p〇wer swi tch)實現是否輸出電墨vs_p 至對應的執行單元,如對應到NOP指令時,電壓vs_p為 VS ’VS可能為〇或是較原先的操作電壓位準為低的電 壓,以達成減少功率消耗。當有需要時,電壓vs_p由〇 或較低的位準調整至原先的操作電壓位準。
電源官理電路990之輸出電壓亦可用不同方式實 施’例如電源調整控制器92〇依照N〇p指令出現次數與門 檻值作比較的方式,個別的傳送電源切換控制訊號以到 對應之電源切換單元931,以及令電源管理電路99〇產生 不同的操作電壓VS與vs,,以對應到執行單元 89(L卜890-ηβ電源調整控制器920藉由電源切換控制訊 號cs給各個電源切換單元931,選擇不同之操作電壓(vs 或VS )以達成減少功率消耗。電源管理電路990例如是 電源管理積體電路,包括如直流_直流轉換器、電壓整流 器或動態的電壓調整(dynamic voltage scaling)或其他 電源管理之迴路。 22 201224733
1 W648:PA 此外,舉例以言,執行單元例如包括一運算及邏輯單 元、一位元處理單元、一資料傳遞單元及一地址產生單 元。當然,VLIW處理器之執行單元的實施方式並不以此為 限,只要能符合上述加入指令轉碼層級的VLIW處理器之 管線結構者,並利用指令轉碼的結果來對執行層級作電源 管理的VLIW處理器,皆可視為依據本揭露之實施例。 上述已提供有關於一具電源管理之超長指令處理器 以及其電源管理裝置與方法若干實施例。藉由對指令包裹 • 作轉碼處理以將指令包裹裡有效指令及Ν0Ρ指令分開及集 中,並進一步將對應到Ν0Ρ指令的超長指令處理器的執行 單元進行減少電源消耗的控制。 此外,透過分析一些應用程式如多媒體的解碼或編碼 如H, 264、JPEG、MP3、MPEG2、WMA之解碼或編碼於一般 VLIW處理器上執行會有Ν0Ρ指令佔整體指令總數的百分比 為約49%至約74%之間的情況。故對於例如具有5個執行 單元的VLIW處理器使用上述一實施例來實現電源管理的 • 話,能減少例如其中一路或兩路的執行單元的電源消耗, 則可以有效減少VLIW處理器整體電源消耗。故此,具有 電源管理的VLIW處理器,將更能適用於電子產品,如可 攜式或行動裝置上,以配合電子產品之應用及電源的限 制,以發揮VLIW處理器對電子產品帶來的好處,提昇電 子產品的運算能力、減少電子產品整體的硬體複雜度,可 以在不同省電模式下或動態的情況下降低電源消耗。 綜上所述,雖然本案已揭露實施例如上,然其並非用 以限定本發明。本發明所屬技術領域中具有通常知識者, 23 201224733 t
TW6483PA 在不脫離本揭露之精神和範圍内,當可作各種之更動與潤 飾。因此,本發明之保護範圍當視後附之申請專利範圍所 界定者為準。 【圖式簡單說明】 第1A圖為依據一實施例之VLIW處理器之管線架構。 第1B圖所示為基於第1A圖之VLIW處理器之電源管 理方法一實施例。 第2圖繪示依據一實施例之VLIW處理器之電源管理 裝置。 第3圖繪示對於具有4個執行單元的VLIW處理器的 指令包裹經轉碼後的處理程序之一實施例的示意圖。 第4A圖繪示指令包裹經轉碼後的處理程序之另一實 施例的示意圖。 第4B圖所示為電壓控制器之一實施例。 第5A圖所示為指令轉碼器之一實施例的方塊圖。 第5B圖為指令位移決定方法之一實施例之流程圖。 第6圖所示為實現第5B圖之方法的指令位移決定電 路之一實施例的方塊圖。 第7A圖所示為在一暫存器文件的位置輸入訊號前耦 接一多工器之實施例。 第7B圖係依據一實施例之讀取運算元層級的電路結 構,用以解決暫存器衝突的問題。 第7C圖係依據另一實施例之讀取運算元層級的電路 結構,用以解決暫存器衝突的問題。 201224733 i w〇H〇jr/\ 第8A圖為依一實施例之VLIW處理器之部分的方塊 圖。 第8B圖所示為時鐘門控單元之一實施例。 第9A圖為依另一實施例之VLIW處理器之部分的方塊 圖。 第9B圖所示的電源切換單元之一實施例。 【主要元件符號說明】 15 :指令快取 30 :讀取運算元 50 :記憶體讀寫 60 :寫回結果 • 10 :指令提取 20 :指令解碼 40 :執行 55 :資料記憶體 110 :指令轉碼 120、220 :減少功率消耗控制器 210、500、810 :指令轉碼器 230_1至230_n :執行單元 423 :比較電路 530 :指令重排裝置 620 :多工器 6 3 0 :記憶器 • 420 :電壓控制器 421 ·· NOP計算器 510 :指令位移決定裝置 600 :指令位移決定電路 610 :比較電路 625 :加法器 740B、740C、840 :解碼器 750B、760B、750C、760C :切換電路 800、900 : VLIW 處理器 25 201224733
TW6483PA 820:時鐘門控控制器 830:時鐘門控電路 831 :時鐘門控單元 850 :第一切換電路 860 :第二切換電路 88卜883、885 :管線暫存器 890J、890_2、890_n :執行單元 930電源切換電路 990 :電源管理電路 S_INFO :指令槽資訊 RF卜RFn :暫存器文件 :多工器 C:控制訊號 CG :時鐘門控訊號
920 :電源調整控制器 931 :電源切換單元
Bl-B6 :時間區塊 TH :門檻值 S_R :位移結果 MUX 、 MUX卜4 、 MUX1’ -MUX4’ IN1-IN4 :輸入 CLK、CLK_P :時脈訊號 VS、VS’ 、VS—P :電壓 CS :電源切換控制訊號 CV:電源管理電路控制訊號
26

Claims (1)

  1. 201224733 最 vvo^ejrA 七、申請專利範圍: 該 —種電源管理裝置1於—超長指令處理器 電源官理裝置包括: 人你Γ指令轉碼器,重新排列—輸人的指令包裹中有效指 7…,,、操作U之位置且輸出—轉碼後的指令包裹,其中 ==後的指令包裹經上述重新排列使無操作指令對應 超長指令處理器中欲減少功率消耗之至少一執行單 元;以及 減少功率消耗控制器,依據該轉碼後的指令包裹, 對,轉碼後之指令包裹中無操作指令所對應之至少一執 行单元,選擇性地進行減少功率消耗的控制。 _ 2.如申凊專利範圍第1項所述之電源管理裝置,其 :該指令轉碼器檢查該輸人的指令包裹中有效指令與無 麵作指令之位置關係,並重新排列該輸人的指令包裹中有 效指令與無操作指令之位置且輸出該轉碼後的指令包裹。 3·如申請專利範圍第2項所述之電源管理裝置,其 中該指令轉碼器包括: ^ 八 一指令位移決定裝置,檢查該輸入的指令包裹中有效 指令與無操作指令之位置關係;以及 ^ 一指令重排裝置,依據該指令位移決定裝置經檢查所 得之位置關係的結果對該輸入的指令包裹中有效指令與 無操作指令之位置作位移操作以輸出該轉碼後的指令包 裹。 4.如申請專利範圍第2或3項所述之電源管理裝 置,其中該經檢查所得之位置關係的結果包括該輸入的指 27 201224733 · 1 w〇H©jr/\ ? t 令包袤中之各個有效指令在該輸人的指令包裹中所對鹿 的指令槽號碼以及一位移數值。 〜 5.如申請專利範圍第3項所述之電源管理裝置,其 中該才"位移決定裝置依—順序對該輸人的指令包裹中 ^指令檢查是否為無操作指令,並累計無操作指令之數 f2中f一指令被判斷為一有效指令時,該累計之無操 射"之數量是為該有效指令之一位移數值;該指令重排 裝置依據該位移數值對該有效指令作—位移操作以使該 有效指令在該轉碼後的指令包裹中向一位置集中。 6·如申請專利範圍第5項所述之電源管理裝置,其 中該才日7位移決定裝置所依之該順序為從該輸入的指令 包裹的一端的指令依序至另一端的指令。 ▲ 7·如申請專利範圍第5項所述之電源管理裝置,其 中该指令位移決定裝置所依之該順序為從該輸入的指令 包襄的一端的指令依序至其中一指令或其中-指令依序 到一端的指令。 8. 如申請專利範圍第1項所述之電源管理裝置,其籲 7該減少功率消耗控制器,根據該轉碼後的指令包裹,對 °亥轉,後之指令包裹中無操作指令所對應到之該至少-執行單元’選擇性地進行時鐘門控(clock gating)控制, 以減少功率消耗。 9. 如申請專利範圍第1項所述之電源管理裝置其 中該減少功率消耗控制器,根據該轉碼後的指令包裹,選 2性提供一較原有操作電壓為低的電壓給該轉碼後之指 7包裹中無操作指令所對應到之該至少一執行單元,以減 28 201224733 少功率消耗。 io.如申請專利範圍第1項所述之電源管理裝置其 中該減少功率消耗控制器,累計該轉碼後的指令包裹中董士 應到該欲減少功率消耗之至少一執行單元的無操作指令 的數置,若該累計的數量滿足一門檻值時,該減少功率消 耗控制器對該欲減少功率消耗之至少一執行單元,選擇性 地提供一較原有操作電壓為低的電壓以減少功率消耗。 ^ U.如申請專利範圍第1、8、9或1〇項所述之電源 • s理裝置,其中該指令轉石馬器更輸出指令有效性資訊以代 表該轉碼後的指令包裹中各個指令槽是否為有效指令或 j操作指令;該減少功率消耗控制器,依據該指令有效性 資訊,選擇性地進行減少功率消耗的控制。 12·種電源管理方法,用於一超長指令處理器,該 電源管理方法包括: 重新排列-輸人的指令包裹中有效指令與無操作指 令之位置以輸出一轉碼後的指令包裹,其中該轉碼後的指 零令包I經上述重新㈣後得錢無操作指令對應到該超 長指令處理器中欲減少功率消耗之至少一執行單元;以及 依據該轉碼後的指令包裹,對該轉碼後之指令包裹中 無操作指令所對應之該至少一執行單元,選擇性地進行減 少功率消耗的控制。 13.如申句專利範圍第12項所述之電源管理方法, 其中該重新排列之步驟包括: 檢查該輸人的指令包裹以得到該輸人的指令包裹中 有效指令與無操作指令之位置關係;以及 29 201224733 t »? r\ » · 依據經檢查所得之位置關係的結果,對該輸入的指令 包裹中有效指令與無操作指令之位置作位移操作以輸出 該轉碼後的指令包裹。 14·如申請專利範圍第13項所述之電源管理方法, 其中經檢查所得之位置關係的結果包括該輸入的指令包 裹中之各個有效指令在該輸入的指令包裹中所對應的指 令槽號碼及一位移數值。 〜 日 15·如申請專利範圍第13項所述之電源管理方法, 其中: '
    該檢查該輸入的指令包裹之步驟包括: 依一順序對該輸入的指令包裹中的指令檢查是 否為無操作指令,並累計無操作指令之數量,其中當一指 令被判斷為一有效指令時,該累計之無操作指令之數量^ 為該有效指令之一位移數值;以及 該作位移操作步驟包括: 依據該位移數值對該有效指令作一位移操作
    使該有效指令在該轉碼後的指令包裹中向—位置集中。 、I6.如申請專利範圍第15項之所述之電源管理 法’、中°亥順序為從該輸入的指令包裹的-端的指令依 至另一端的指令。 Π.如申請專利範圍第15項之所述之電源管理 法’其中該广序為從該輸入的指令包裹的一端的指令依 至其中4曰令或從該輸入的指令包裹中一指 端的指令。 β ^ I8·如申請專利範圍第12項所述之電源管理方法 30 201224733 1 W〇H6jr/\ 其中該選擇性地進行減少功率消耗的控制步驟包括: 依據該轉碼後的指令包裹,對該轉碼後之指令包裹中 無操作指令所對應到之該至少一執行單元’選擇進行 時鐘門控(clock gating)控制以減少該至少一執行單^ 功率消耗。 、 19·如申請專利範圍第12項所述之電源管理方法, 其中該選擇性地進行減少功率消耗的控制步驟包括: 依據該轉碼後的指令包裹,對該轉碼後之指令包裹中 無操作指令所對應之該至少一執行單元,選擇性地提供一 較原有操作電壓為低的電壓以減少功率消耗。 20·如申凊專利範圍第12項所述之電源管理方法, 其中該選擇性地進行減少功率消耗的控制步驟包括: 累計該轉碼後的指令包裹中對應到該欲減少功率消 耗之至少一執行單元的無操作指令的數量;以及 若該累計的數量滿足一門檻值時,對該欲減少功率消 耗之至-執行單元’選擇性地提供一較原有操作電壓為 —低的電壓以減少功率消耗。 . —21.如申請專利範圍第“、“、^或肋項所述之電 源管理方法’其中該重新排列之步驟更輸出指令有效性資 :以代表該轉碼後的指令包裹中各個指令槽是否有效指 或·’’、操作丸7,該選擇性地進行減少功率消耗的控制步 驟’依據該指令有效性資訊,選擇性地進行減少功率 的控制。 22. —種超長指令處理器,包括: 一讀取運算元層級; 201224733 多個執行單元該讀取 一指令轉碼^該讀料算元層日:’ 器與該些執行單元之間,該指令、於該指令轉碼 指令包襄中有效指令與無操作指轉令輸入的 後的指令包裹,該轉碼後的指令包裹 :作::該轉碼後的指令包裹經上述重 對應到該些執行單元之至少-執行單元=;、 執仃單7L為欲減少功率消耗之對象;以及 減切率祕控制11,依據該轉碼後的指令包裹, 對,轉碼後之指令包裹中無操作指令所對應之至少一執 行單元,選擇性地進行減少功率消耗的控制。 σ 23.如申請專利範圍第22項所述之超長指令處理 器’其中該指令轉碼器檢查該輸入的指令包裹中有效指令 與無操作指令之位置關係,並重新排列該輸入的指令包裹 中有效指令與錢作指令之位置且輸出該轉碼後的指令 包裹。 24·如申請專利範圍第23項所述之超長指令處理 φ 器,其中該經檢查所得之位置關係的結果包括該輸入的指 令包裹中之各個有效指令在該輸入的指令包裹中所對應 的指令槽號碼以及一位移數值。 25如申請專利範圍第24所述之超長指令處理器,其 中讀取運算元層級包括: 一第一切換電路; 多個暫存器文件,耦接到該第一切換電路,各該些暫 存器文件對應到一執行單元; 32 201224733 里 w〇H〇jr/\ 電路些暫存器文件域於該第一切換 吩/、°茨弟一切換電路之間;以及 制兮错解碼Θ ’依據該經檢查所得之位置關係的結果,控 切換電路與該第二切換電路以將該轉碼後的指 各個指令所雜的暫存11地址或資料傳送到該 i值w文件之―,並謂應地從該暫存11文件讀取之資 抖傳运到對應的該執行單元。
    26·如申請專㈣圍第25項所述之超長指令處理 一:中當該指令轉碼器產生之—上—轉碼後的指令包裹 之扎^槽之一有效指令與該指令轉碼器產生之一目前 $後的指令包裹之該指令槽之—有效指令使用一相同 臀存器文件時,該解碼器依據該目前轉碼後的指令包裹之 該有效指令所對應的誠令槽號碼以及該位移數值控制 2 一切換電路與該第二㈣電路以令該目前轉碼後的 曰令包裹之該有效指令所對應的執行單元改存取另一 存器文件。 27. 如申請專利範圍第23項所述之 器’其中該指令轉碼器包括: t 一指令位移決定裝置,檢查該輸入的指令包裹中有效 指令與無操作指令之位置關係;以及 ^ 一指令重排裝置,依據該指令位移決定裝置經檢查所 侍之位置關係的結果對該輸入的指令包裹中有效指令與 "’、操作私γ〜位置作位移操作以輸出該轉竭後的指 裹。 28. 如申請專利範圍第27項所述之超長指令處理 33 201224733 TW6483PA Ϊ中定裝置依一順序對該輸入的指令包 二疋否為無操作指令,並累計無操作指令之 彼里其中备一指令被判斷為一有 操作指令之數量是 =$累权無 數值㈣有效指令作—位移操作以使 沒有效‘令在該轉碼後的指令包裹中向-位置集中。 号,H如Λ專利範圍第28項之所述之超長指令處理 ”位移決定裝置所依之該順序為從該輸入的 知α裹的一端的指令依序至另一端的指令。 2如申請專利範圍第28項之所述之超長指令處理 二令位移決定裝置所依之該順序為從該輸入的 二裹的一端的指令依序至其中-指令或其中-指令 依序到一端的指令。 2如巾請專利範圍第22項所述之超長指令處理 ^ 1 中該減少功率消耗控制器,根據該轉碼後的指令包 小一抽ΐ轉碼後之指令包裹中無操作指令所對應到之該至 二一行單元,選擇性地進行時鐘η控控制,以減少功率 /月矛匕。 】2. ”請專利範圍第22項所述之超長指令處理 ,,'中該減少功率消耗控制器,根據該轉碼後的指令包 =擇性提供—較原錢作電㈣低的電壓給該轉碼後 一曰$包裹中無操作指令所對應到之該至少— 疋,以減少功率消耗。 。':3, ”請專利範圍第22項所述之超長指令處理 益,,、中該減少功率消耗控制器,累計該轉碼後的指令包 34 201224733 裹中對應到該欲減少功率消耗之至少_執行單元的無操 作指令的數量;若該累計的數量滿足一門播值時該減少 功率消耗控制器對該欲減少功率消耗之至少一執行單 凡’選擇性地提供一較原有操作電壓為低的電壓以減少功 率消耗。 34.如申請專利範圍第22、31、32或33項所述之超 長指令處理器,其中該指令轉碼器更輸出指令有效性資訊 鲁=代表該轉碼後的指令包裹中各個指令槽是否有效指令 =操作指令;該減少功率、;肖耗控㈣,依據該指令有效 資訊,選擇性地進行減少功率消耗的控制。
    35
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 true TW201224733A (en) 2012-06-16
TWI432953B 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
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
US9330011B2 (en) * 2013-09-20 2016-05-03 Via Alliance Semiconductor Co., Ltd. Microprocessor with integrated NOP slide detector
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
JPH10275080A (ja) 1997-01-24 1998-10-13 Texas Instr Inc <Ti> マイクロプロセッサ
DE69838374T2 (de) 1997-12-23 2008-05-29 Texas Instruments Inc., Dallas Prozessor und Verfahren zum Verringern von dessen Energieverbrauch
US6219796B1 (en) 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6535984B1 (en) 1998-11-25 2003-03-18 Texas Instruments Incorporated Power reduction for multiple-instruction-word processors with proxy NOP instructions
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
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
US7457970B2 (en) 2002-10-11 2008-11-25 Koninklijke Philips Electronics N.V. VLIW processor with power saving
EP1573490A2 (en) 2002-12-04 2005-09-14 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
TWI432953B (zh) 2014-04-01
US8769245B2 (en) 2014-07-01
US20120151192A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
TW201224733A (en) Very low instruction word (VLIW) processor with power management, and apparatus and method of power management therefor
Hameed et al. Understanding sources of inefficiency in general-purpose chips
US9329900B2 (en) Hetergeneous processor apparatus and method
KR101751358B1 (ko) 이종 프로세서 컴포넌트들에 지능적으로 전원을 공급하기 위한 장치 및 방법
US9448829B2 (en) Hetergeneous processor apparatus and method
CN112818374A (zh) 一种模型的联合训练方法、设备、存储介质及程序产品
DE602007006215D1 (de) Datenverarbeitungsschaltung mit mehreren anweisungchaltung und scheduling-verfahren für eine solche datenschaltung
JP2017162487A (ja) 過度の近似計算誤差から回復するプロセッサ
Das et al. An energy-efficient integrated programmable array accelerator and compilation flow for near-sensor ultralow power processing
TW201328360A (zh) 用於視頻編碼管線之系統,方法,及電腦程式產品
US20140189299A1 (en) Hetergeneous processor apparatus and method
Holmes et al. Resource optimized quantum architectures for surface code implementations of magic-state distillation
CN104756069A (zh) 元素选择单元及其中的方法
KR20100096264A (ko) 비동기 시스템에서의 누설 제어 시스템 및 방법
JP2006318420A (ja) 携帯情報機器用データ処理装置
US20130262787A1 (en) Scalable memory architecture for turbo encoding
US12087252B2 (en) Synchronous display pipeline systems and methods
Lai et al. An adaptive energy-efficient stream decoding system for cloud multimedia network on multicore architectures
Zhang et al. A high performance pseudo-multi-core ECC processor over GF (2 163)
Xiao et al. A controllable pipeline framework of block ciphers on GPU for streaming data
KR20210116299A (ko) 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법
JP5100561B2 (ja) 画像処理装置および画像処理方法
Sanz Digital-Analog Quantum Computing
Brito et al. Real-space spectral simulation of quantum spin models: Application to the Kitaev-Heisenberg model
Song et al. A Dynamic Programming Solution for Energy‐Optimal Video Playback on Mobile Devices