TWI597600B - 在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法 - Google Patents

在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法 Download PDF

Info

Publication number
TWI597600B
TWI597600B TW102108961A TW102108961A TWI597600B TW I597600 B TWI597600 B TW I597600B TW 102108961 A TW102108961 A TW 102108961A TW 102108961 A TW102108961 A TW 102108961A TW I597600 B TWI597600 B TW I597600B
Authority
TW
Taiwan
Prior art keywords
microprocessor
instruction
performance
actions
clock
Prior art date
Application number
TW102108961A
Other languages
English (en)
Other versions
TW201342036A (zh
Inventor
G 葛蘭 亨利
泰瑞 派克斯
Original Assignee
威盛電子股份有限公司
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 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Publication of TW201342036A publication Critical patent/TW201342036A/zh
Application granted granted Critical
Publication of TWI597600B publication Critical patent/TWI597600B/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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3243Power saving in microcontroller unit
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法
本發明係關於一種省電方法,特別係關於一種應用於微處理器之省電方法。
操作系統可以控制一微處理器在各種性能狀態(通常稱為P-states)運行。雖然透過桌上型(desktop)或者伺服器系統(server systems)可以減少電力以及所伴隨之消耗,但當只有電池供電給裝置時,利用操作系統來控制微處理器的性能狀態以延長電池的時間成為一個重要的議題。舉例而言,當操作系統偵測到工作量相對低時(例如,使用者僅在關看DVD時,微處理所需的操作電量即相對的較小),操作系統可要求微處理器操作在一低性能狀態(performance-reduced state)。一般而言,低性能狀態包括將微處理器執行於一較低的時脈頻率(reduced clock frequency),以及一較低的操作電壓(reduced operating voltage level)。再舉例而言,當操作系統需要操作在最低之性能操作狀態時(lowest performance running state),微處理器會降低其操作頻率至微處理器仍可進行操作的處理器匯流排(processor bus)之時脈頻率的最低倍頻(Ratio),並且要 求電源供應器將供應電源降低至微處理器仍可進行操作在最低倍頻的最低操作電壓。又舉例而言,微處理器可包括一相鎖迴路(phase-locked loop,PLL)用以接收匯流排時脈訊號,並且相應地產生核心時脈訊號(core clock signal)以作為匯流排時脈頻率之倍頻。另外,相鎖迴路所能產生之倍頻數目有限,因此具有一最低倍頻。
無論如何,就算在最低的性能操作狀態下,執行軟體所施加在微處理器上的工作量(例如,工作系統以及應用程式所施加的工作量)仍然相對的較小,微處理器亦會因此造成長時間的閒置,導致電源的浪費。舉例而言,軟體可能僅處於藉由一計時器(occasional timer)計時以等待使用者輸入的狀態(例如,滑鼠或者鍵盤之點擊)。一般而言,為了從最低性能操作狀態更近一步地降低其電力消耗,微處理器必須自正常工作狀態(running state)轉換至一睡眠狀態(sleeping state)或者一電源狀態(power state,一般稱為C-states),其中微處理器停止執行指令並且執行其他節電措施(power saving measures),例如禁能(disable)微處理器之時脈訊號或者移除微處理器中之部分電源(例如移除快取記憶體之電源),如第1圖所示。第1圖係用性能狀態(performance states)以及電源狀態(power states)為函數所繪製之微處理器的電源消耗圖。然而,除非操作系統之指令要求微處理器進入睡眠狀態,否則微處理器無法進入睡眠狀態者。因此,當微處理器仍然處於一操作狀態無法降低其操作頻率時,需要一種可以降低電源消耗的方法。
本發明之一實施例中提供一種微處理器包括多個功能性單元以及多個控制暫存器。控制暫存器可進行寫入以致使功能性單元啟動一個或者多個動作,其中動作係用以當微處理器操作於一最低性能操作狀態時,降低每一時脈之指令率,以減少微處理器之電源消耗。其中,最低性能操作狀態包括一非睡眠狀態,並且微處理器在非睡眠狀態中操作於微處理器所支援之最低時脈頻率。
本發明之另一實施例中提供一種省電方法,其中省電方法適用於一微處理器。省電方法包括接收用以致使微處理器進入一最低性能操作狀態的一命令,其中最低性能操作狀態包括一非睡眠狀態,並且微處理器在非睡眠狀態中操作於微處理器所支援之最低時脈頻率。省電方法更包括啟動用以減少電源消耗之一個或者多個動作,其中動作係當微處理器相應於所接收用以進入最低性能操作狀態之命令而操作於最低性能操作狀態時,降低微處理器每一時脈之指令率。
102‧‧‧指令快取記憶體
104‧‧‧指令格式器
106‧‧‧格式化指令緩衝器
108‧‧‧指令翻譯器
112‧‧‧暫存器别名表
114‧‧‧指令發送單元
116A~116N‧‧‧執行單元
118‧‧‧指令退回單元
122‧‧‧特別模組暫存器
124‧‧‧熔絲
126‧‧‧控制暫存器
128‧‧‧性能狀態切換計數器
132‧‧‧使用者禁能旗標
134‧‧‧計數器
138‧‧‧記憶體子系統
142‧‧‧微碼
144‧‧‧快取記憶體
146‧‧‧快取記憶體
第1圖係以一微處理器之性能狀態以及電源狀態為函數之電源消耗的示意圖。
第2圖係本發明一微處理器之方塊圖。
第3圖係本發明第2圖所示之微處理器的操作流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概 念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
當微處理器為了減少電源消耗而操作在所支援之最低核心時脈頻率時,本發明之實施例中所提供的微處理器可選擇性並且有效率地藉由一個或者複數個不同之動作,來減少微處理器之每一時脈之指令(instructions per clock,IPC)率。如下所述,但本發明不限於此:
(1)雖然微處理器通常可能不根據程序順序執行指令(out-of-order),但致使指令根據程序順序執行(in-order execution)。讓指令根據程序順序執行的動作可減少推測所執行之指令(speculatively executed instructions)的數量、減少之後必須取消或者重複執行之指令的數量,並且減少因執行隨後被取消或者被重複執行之指令所造成的電源浪費。值得注意的是,上述之隨後會被取消或者被重複執行之指令並不會對完成目前所執行之程式提供任何幫助。
(2)雖然微處理通常可能在每一時脈週期會發送複數個(例如,3個)指令(上述動作稱為superscalar issue),但使得每一時脈週期(per clock cycle)僅發送(issue)一個指令(上述動作稱為scalar issue)。讓每一時脈週期僅發送一個指令的動作可減少執行單元之使用率,並且節省電源消耗。
(3)雖然微處理器通常可能在每一時脈週期會格式化複數個(例如,4個)指令,但在每一時脈週期僅格式化一個由從一指令快取記憶體(instruction cache)所擷取之一可變長度指令串流(variable-length instruction stream)的指令。在一個可 變長度指令集(variable-length instruction set)的架構(architecture)中,一位元組串流(stream of instruction bytes)係從指令快取記憶體中擷取而來的,並且所擷取之位元組串流必須被格式化為複數離散指令(discrete instructions),使得個別之指令可被解碼並且可被轉譯為更簡單的微指令(microinstructions),以傳送至執行單元加以執行。因此,微處理器必須決定位元組串流中指令與指令間的邊界(boundaries)。舉例而言,在每一時脈週期僅格式化一個指令相較於在每一時脈週期格式化三個指令簡單許多,並且每一時脈週期僅格式化一個指令所需的電力相較於在每一時脈週期格式化三個指令所需要的電力少。再者,在每一時脈週期僅格式化一個指令會使得等待發送至執行單元的指令減少,使得執行單元的使用量減少,以節省電源。
(4)雖然微處理器通常可能是以平行方式(parallel fashion)在快取層次結構中存取各種快取記憶體,但在快取層次結構(cache hierarchy)中(例如,L1以及L2快取記憶體),以串行方式(serial fashion)存取各種快取記憶體,可增進效能。舉例而言,L1快取記憶體以及L2快取記憶體係同時以平行方式進行存取,可減少在存取之遺漏事件中的數據訪問延遲(data access latency),其中遺漏事件的存取遺漏是在其中一個快取記憶體,而命中令一個快取記憶體。但是,為了節省電源,當在存取L1快取記憶體中發生一個遺漏(miss)時,才會對L2快取記憶體進行存取。在快取層次結構中以串行方式存取快取記憶體的動作可減少快取記憶體的使用率,並且節省電源消耗。
(5)即使指令轉譯器可在每一時脈週期轉譯複數個巨集指令,但在每一時脈週期中僅轉譯一個巨集指令(macroinstruction)(例如,x86指令)。指令轉譯器可進行指令熔斷(instruction fusing),但在本發明中會被禁能。在每一時脈週期僅轉譯一個巨集指令會使得等待發送至執行單元的指令減少,使得執行單元的使用量減少,以節省電源消耗。
(6)雖然指令退回單元可在一個時脈週期中退回複數個指令,但在一個時脈週期中僅退回一個指令。當指令備份在指令退回單元時,延滯之指令(stalls)可被導入微處理器100之管線(pipeline),因此在一個時脈週期中僅退回一個指令會減少每一時脈週期之指令率,以節省電源消耗。
廣義而言,藉由避免那些不必要、但通常因推測而執行用以增進效能之工作量,可以減少每一時脈之指令率以降低電源浪費,例如,依序執行相較於非依序執行省電;串行存取相較於並行存取省電。或者,藉由一較大之時間框(time frame)對串流(given stream of instruction)進行分散執行(spread execution),可以減少每一時脈之指令率以降低電源浪費,例如,純量發送(scalar issue)相較於超純量發送(superscalar issue)省電;每一時脈執行一個指令相較於每一時脈進行複數指令省電。更進一步來說,由本發明可知,藉由一較大之時間框對串流進行分散執行,而非一突發方式(bursty manner)執行,具有更有效地提升動態電源管理之第二個益處,特別是在一多核心微處理的架構中,可使閒置的核心進入睡眠狀態。
微處理器有時可能不會執行減少每一時脈之指令 率之動作,即使當微處理器被下達轉換至最低性能操作狀態。因此,在本發明之實施例中,微處理器當一個或者多個既定情況存在時,才會發啟減少每一時脈之指令率的動作,如下所述,但本發明不限於此:
(1)最近一次轉換到上述最低性能操作狀態前,微處理器操作於一最高性能操作狀態之時間是否不超過一既定時間週期?在此情況下可以實現更複雜的變化。舉例而言,每一較高性能操作狀態可分別具有不同之既定時間週期。另外,先前所執行之N個性能操作狀態可被檢驗,並且根據每一N個性能操作狀態所花費的時間計算一加權平均,以獲得一計算分數。當計算分數小於一既定分數時,才滿足情況。微處理器包括複數計數器,用以提供各種性能操作狀態所花費的時間之資訊。
(2)微處理器操作於最低性能操作狀態的時間,是否超過最近之一既定時間週期至少一既定百分比?
(3)微處理器是否支援複數性能操作狀態(multiple performance states)?在一實施例中,部分微處理器可在製造時,經由熔絲被編程,以致使微處理器可支援複數性能操作狀態。例如,一部份可被編程為支援複數性能操作狀態,如應用於筆記性電腦或者行動電話之行動系統(mobile system),另一部份可被編程為不支援複數性能操作狀態,例如,應用在桌上型電腦。
(4)操作系統是否支援複數性能操作狀態?某些操作系統或者操作環境不支援複數性能操作狀態,因此無法與微 處理器溝通工作量是大或者是小;因此,無法減少微處理器之性能。在本發明之一實施例中,從操作系統啟動(booted)或者從微處理器被重置後,微處理器可保留一旗標用以指出操作系統是否要求切換至少一性能操作狀態。或者,從操作系統啟動(booted)或者從微處理器被重置後,微處理器可保留一計數器用以指出操作系統要求切換至少一性能操作狀態的次數,並且當計數器的數值大於一既定數值時,微處理器才會啟動減少每一時脈之指令率之動作。
(5)使用者是否禁能藉由減少每一時脈之指令率以節省電源之動作,例如,經由一基本輸出輸入系統(BIOS)所設定之選項。
本發明中藉由減少每一時脈之指令率以節省電源之動作以及既定情況不限於上述之部分。其它藉由減少每一時脈之指令率以節省電源之動作,以及其他為了滿足省電功能之必要情況皆為本發明之範疇。
第2圖所示為本發明所提供之一種微處理器的方塊圖。微處理器100包括可寫入數值之控制暫存器126或者複數旗標,用以當微處理器操作在最低核心時脈頻率(lowest core clock frequency)時,指出是否應該啟動減少每一時脈之指令率的動作,以減少電源消耗。在一實施例中,微處理器100之微碼142將數值寫入控制暫存器126以致使微處理器100自減少每一時脈之指令率的模式切換回正常操作模式,反之亦然。
微處理器100亦包括複數執行單元116用以執行指令。執行單元116可包括但不限於複數整數單元(integer units)、浮點單元(floating point units)、媒體單元(media units)、單指令流多數據流單元(Single Instruction Multiple Data,SIMD units)以及分支單元(branch units)。微處理器100可藉由超純量方式(superscalar fashion)發送指令至執行單元116,例如,在每一時脈週期發送複數個指令至執行單元116。較佳的是,微處理器100操作在減少每一時脈之指令率的模式,藉由純量方式(scalar fashion)發送指令來減少電源消耗,例如,在每一時脈週期發送僅發送一個指示至執行單元116。
微處理器100亦包括一指令快取記憶體102用以自系統記憶體(未圖示)中快取(cache)指令。如上所述,指令係可變長度的,例如指令包括許多複雜指令(complex instruction set computer,CISC)的結構,例如x86指令集架構。舉例而言,指令集中的不同指令可具有不同的長度,例如,長度可在1至13位元組(bytes)之間,其不同於需要固定長度指令的精簡指令級計算(reduced instruction set computer,RISC)架構,例如,指令集中的不同指令具有相同的長度,例如32位元(bits)。
微處理器100亦包括一指令格式器104用以自指令快取記憶體102接收具有可變長度指令之一位元組串流,並且格式化所接收之位元組串流為可區別的複數指令。因此,微處理器更用以決定位元組串流中不同指令間的邊界,以指出串流中連續的位元組分別屬於哪個指令。指令格式器104自一控制暫存器126接收一輸入訊號。輸入訊號用以指出指令格式器104是在哪一種性能下進行格式化。例如,在一高性能操作狀態模式下進行格式化,可在每一時脈週期中格式化其可格式化之一 或多個指令。或者,在一低電源模式下,指令格式器104僅在每一時脈週期中格式化一個指令。另外,已格式化之指令存放在一格式化指令緩衝器106中。
微處理器100亦包括一指令轉譯器108用以自格式化指令緩衝器106接收已格式化之指令,並且將所接收之已格式化的指令轉譯為更簡單可被執行單元116所執行的微指令。指令轉譯器108自控制暫存器126接收自一輸入訊號,輸入訊號用以指出指令轉譯器108是在一高性能操作狀態下轉譯或是在低電源狀態下轉譯。在一高性能操作狀態下,指令轉譯器108在每一時脈週期其可轉譯一或多個指令;在一低電源狀態下,指令轉譯器108在每一時脈週期僅轉譯一個指令。另外,已轉譯之微指令係用以提供至一暫存器別名表112(register alias table,RAT)。
暫存器別名表112用以根據程序順序接收已轉譯之微指令,並且產生每一微指令之附屬資訊(dependency information)。當有即時指令(instant instruction)依附以被允許發送至一執行單元116執行時,附屬資訊可用以區別早期指令(older instructions)。舉例而言,指令可要求一早期指令之結果作為一源操作數(source operand)。暫存器別名表112亦用以自微碼142(microcode)接收微指令。當指令轉譯器108遇到無法轉譯為一既定數量(例如,3個)微指令之一複雜指令時,指令轉譯器108可調用(invoke)微碼142。舉例而言,可調用微碼142以回應於致使微處理器100切換至一新的性能操作狀態或者電源狀態的一指令。另外,相應於其他事件,微碼142亦可被調用, 例如,中斷(interrupt)或者其它例外情況。
微處理器100亦包括一指令退回單元118(instruction retire unit)用以使用暫存器別名表112所產生之附屬資訊,決定何時發送指令至執行單元116執行。指令退回單元118用以自控制暫存器126接收一輸入訊號,其中控制暫存器126之輸入訊號係用以指出指令退回單元118應該在一超純量(superscalar)之高性能操作狀態或者一低電源狀態下,發送指令至執行單元116。在超純量之高性能操作狀態下,可在每一時脈週期發送其可發送之一或多個指令;在低電源狀態下,在每一時脈週期僅發送一個指令。
微處理器100更包括執行單元116產生讀取或者寫入要求的記憶體子系統138(memory subsystem)。在一實施例中,記憶體子系統138包括一第一級快取記憶體144(level-1 cache)以及一第二級快取記憶體146(level-2 cache),其中亦可包括其它級的快取記憶體。記憶體子系統138用以回應於執行單元116之記憶體存取要求,存取快取記憶體144/146。另外,記憶體子系統138可自行產生記憶體存取要求至快取記憶體144/146,例如監聽要求(snoop request)、虛擬記憶體表之查核(virtual memory table walk)、快取線消除(cache line eviction)或者快取線定位(cache line allocation)。記憶體子系統138用以自控制暫存器126接收一輸入訊號,其中控制暫存器126之輸入訊號係用以指出記憶體子系統138應該在哪一種性能下進行存取。在一高性能操作狀態下,係以平行方式存取快取記憶體144/146以減少存取的延遲。在一低電源狀態下,以並行方式 存取快取記憶體144/146,例如,先對第一級快取記憶體144進行存取,並僅在第一級快取記憶體144的存取發生遺漏時,再對第二級記憶體進行存取。
微處理器100更包括一指令退回單元118用以依照程序順序退回指令。在某些情況下,指令退回單元118係不依照程序順序退回指令。換言之,指令退回單元118根據依照程序順序執行指令所產生的結果,更新微處理器100之狀態(architectural state)。指令退回單元118用以自控制暫存器126接收一輸入訊號,其中控制暫存器126之輸入訊號係用以指出指令退回單元118是否應該在一高性能操作狀態下以平行方式存取快取記憶體144/146以減少存取的延遲;或者,在一低電源狀態下以串行方式存取快取記憶體144/146,例如,先對第一級快取記憶體144進行存取,並僅在第一級快取記憶體144的存取發生遺漏時,再對第二級記憶體進行存取。
微處理器100亦包括複數特別模組暫存器122(model specific registers,MSR)。特別模組暫存器122可被系統軟體寫入以及讀取用以控制或者決定微處理器100之各種特徵的狀態。系統軟體例如是基本輸出輸入系統(BIOS)或者操作系統。微處理器100之各種特徵的狀態包括藉由減少每一時脈之指令率以節省電源之動作。舉例而言,基本輸入輸出系統可回應於被更新之一使用者禁能旗標132,允許使用者對特別模組暫存器122進行寫入,以禁能藉由減少每一時脈之指令率以節省電源之動作。
微處理器100亦包括複數熔絲124用以在微處理器 100生產時被燒斷,以致能或者禁能各種特徵以及各種配置值(configuration value),包括致能或者禁能藉由減少每一時脈之指令率以節省電源之動作以及各種相關之參數。例如,哪一個藉由減少每一時脈之指令率以節省電源之動作會被啟動。另外,熔絲124可在微處理器100生產時被燒斷,以指出微處理器100是否支援複數性能操作狀態或者僅支援單一性能操作狀態。
微處理器100亦包括複數性能狀態切換計數器128(performance state change request counters)用以計算微處理器被系統軟體要求改變不同性能操作狀態的次數。另外,微處理器100包括複數計數器134用以在微處理器100操作在每一其可支援的性能操作狀態下的一最近之既定時間週期(例如,最近之100,000個核心時脈週期),計算時間量(例如.,核心時脈週期量)。
第3圖系本發明第2圖所示之微處理器100的操作流程圖。流程開始於步驟302。
在步驟302中,微處理器100被命令進入其最低性能操作狀態,其中進入最低性能操作狀態的指令係系統軟體在微處理器100仍操作在正常操作狀態下希望微處理器100操作於其最低電源消耗之階級的指示,其中正常操作狀態可為非睡眠狀態或者操作相關於電源節省動作的睡眠狀態。在一實施例中,最低性能操作狀態表示將微處理器100操作在其支援之最低核心時脈頻率。另外,該命令可來自於系統軟體,例如,當對特別模組暫存器122進行寫入時,微處理器100調用微碼142 以回應此寫入。另外,該命令可來自於微處理器100本身。例如,微碼142可偵測到將微處理器操作於其所支援的最低核心時脈頻率的一原因。流程進行至步驟304。
在步驟304中,微處理器100測試複數既定情況中之至少一者是否存在,以決定是否啟動藉由減少每一時脈之指令率以節省電源之動作,例如一個或者複數個如上所述之既定情況。舉例而言:(1)微處理器100可檢驗性能狀態切換計數器128以決定工作系統是否支援複數性能操作狀態。在一實施例中,微處理器100可檢驗熔絲124及/或特別模組暫存器122,以判斷微處器100是否支援複數性能操作狀態。(2)微處理器檢驗操作系統是否支援複數性能操作狀態。(3)微處理器100可檢驗使用者禁能旗標132,已決定使用者是否禁能藉由減少每一時脈之指令數以節省電源之動作。(4)微處理器100可檢驗計數器134所計算之性能狀態操作的時間(或者其它微處理器100之指標),以決定微處理器100操作於一較高性能操作狀態之時間是否不超過在步驟302接收到要求之前的一既定時間週期,以將微處理器100切換至其最低性能操作狀態,其中每一較高性能操作狀態可分別具有不同之既定時間週期。在另一實施例中,微處理器100可檢驗計數器134所計算之性能操作狀態操作的時間(或者其它微處理器100之指標),並且根據每一性能操作狀態所花費的時間計算一加權平均,以獲得一計算分數,以判斷該計算分數是否小於一既定分數。(5)檢驗微處理器操作於最低性能操作狀態的時間,是否超過最近之一既定時間週期至少一既定百分比。在一實施例中,只要有一個既定情況存在,即 可啟動藉由減少每一時脈之指令率以節省電源之動作。在另一實施例中,兩個或者更多的既定情況存在,也可啟動藉由減少每一時脈之指令率以節省電源之動作。其它可判斷何時發啟藉由減少每一時脈之指令率以節省電源之動作的既定情況之組合的其他實施例,皆為本發明之範疇。各種既定情況的組合可經由熔絲124及/或微碼142設置;再者,上述的既定情況的組合可經由寫入特別模組暫存器122覆蓋。在一實施例中,微碼142在步驟304中執行。流程進行至步驟306。
在判斷步驟306中,微處理器100使用在步驟304中所獲得之資訊,判斷是否有足夠的既定情況存在,以啟動藉由減少每一時脈之指令率以節省電源之動作。當微處理器100判斷既定情況足夠時,流程進行至步驟308;否則,流程結束於步驟306。
在步驟308中,微處理器100啟動一個或者多個藉由減少每一時脈之指令率以節省電源之動作,例如上述之動作。在一實施例中,微碼142寫入控制暫存器126,以提供各種功能性單元之控制輸入,例如,指令格式器104、指令轉譯器108、暫存器別名表112、指令發送單元114、執行單元116、記憶體子系統138以及指令退回單元118。舉例而言,微處理器100可有以下的動作。(1)微處理器100藉由執行單元122根據程序順序執行指令,取代原本的不根據程序順序執行。(2)微處理器100藉由指令發送單元114發送單一指令,取代原本的多個指令的發送。(3)微處理器100藉由指令格式器104在一個時脈週期僅格式化一個指令,取代原本在一個時脈週期格式化複數指 令。(4)微處理器100以串行方式存取快取記憶體144/146,取代原本以平行方式進行存取。(5)微處理器100藉由指令轉譯器108在每一時脈週期僅轉譯一個巨集指令,取代原本在每一時脈週期轉譯複數個巨集指令。(6)微處理器100藉由指令退回單元118在每一時脈週期僅退回一個指令,取代原本在每一時脈週期退回複數指令。在一實施例中,在步驟308,微處理器100係以逐步方式(step-wise fashion)啟動藉由減少每一時脈之指令率以節省電源之動作。換言之,微處理器100啟動一個或者多個藉由減少每一時脈之指令率以節省電源之動作一段時間後,再開啟其它另外的藉由減少每一時脈之指令率以節省電源之動作,依此類推,直到所有藉由減少每一時脈之指令率以節省電源之動作都已啟動或者系統軟體命令微處理器100進入非最低性能操作狀態外之其它狀態為止。其中,非最低性能操作狀態外之其它狀態可為一睡眠狀態或者一較高性能操作狀態,而較高性能操作狀態的性能表現狀態優於最低性能操作狀態。流程結束於步驟308。
雖然本發明已經由數種實施例揭露如上,但其僅用以作為例子,並非用以限定本發明。計算機領域的習知技藝者應能理解,在不脫離本發明之精神的前提下,當可對本發明作些許更動。舉例而言,軟體能夠致能本發明之裝置和方法的功能、製造、模型建立、模擬、各種性質,以及/或測試。其能夠藉由不同的程式語言而達成,例如程式語言(如C、C++)、硬體描述語言(hardware description language,HDL,如Verilog HDL、VHDL),或是其他可能的程式語言。上述軟體能夠設置 於任何已知的計算機可讀取儲存媒體(computer usable medium),例如半導體、磁碟,或光碟(如CD-ROM、DVD-ROM)。本發明的裝置和方法可能包括於任何半導體智慧財產核心(semiconductor IP core)之內,例如(以HDL嵌入的)微處理器核心,或是當積體電路製造時,轉移至硬體。此外,本發明可能藉由硬體和軟體的組合而實現。因此,本發明不應被此處所述之任何實施例所限制,本發明應該是根據所附申請專利範圍與其等效的裝置/方法而被定義。特別的是,本發明能夠設置於一般用途計算機的微處理器裝置內。最後,習知技藝者應能理解到:在不脫離由申請專利範圍定義之本發明範疇的前提下,其能夠以本發明揭露的概念和特定的實施例作為基礎,用以設計或修改其他架構來執行與本發明相同之目的。
100‧‧‧微處理器
102‧‧‧指令快取記憶體
104‧‧‧指令格式器
106‧‧‧格式化指令緩衝器
108‧‧‧指令翻譯器
112‧‧‧暫存器别名表
114‧‧‧指令發送單元
116A~116N‧‧‧執行單元
118‧‧‧指令退回單元
122‧‧‧特別模組暫存器
124‧‧‧熔絲
126‧‧‧控制暫存器
128‧‧‧性能狀態切換計數器
132‧‧‧使用者禁能旗標
134‧‧‧計數器
138‧‧‧記憶體子系統
142‧‧‧微碼
144‧‧‧快取記憶體
146‧‧‧快取記憶體

Claims (29)

  1. 一種微處理器,包括:多個功能性單元,其中上述功能性單元包括一記憶體子系統;以及多個控制暫存器,可進行寫入以致使上述功能性單元啟動一個或者多個動作,其中上述動作係用以當上述微處理器操作於一最低性能操作狀態時,降低每一時脈之指令率,以減少上述微處理器之電源消耗,並且減少電源消耗之上述一個或者多個動作更包括上述記憶體子系統由以平行方式存取上述微處理器之多個快取記憶體,切換為由串行方式存取上述微處理器之上述快取記憶體,其中上述最低性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最低核心時脈頻率;其中,上述最低性能操作狀態包括一非睡眠狀態。
  2. 根據申請專利範圍第1項之微處理器,其中上述一個或者多個動作包括:上述功能性單元由不根據程序順序執行指令,切換為根據程序順序執行指令。
  3. 根據申請專利範圍第1項之微處理器,其中上述功能性單元包括一指令發送單元,其中用以減少電源消耗之上述一個或者多個動作包括:上述指令發送單元由每一時脈週期發送多個指令,切換為每一時脈週期發送一個指令。
  4. 根據申請專利範圍第1項之微處理器,其中上述功能性單元 包括一指令退回單元,其中用以減少電源消耗之上述一個或者多個動作包括:上述指令退回單元由每一時脈週期退回多個指令,切換為每一時脈週期退回一個指令。
  5. 根據申請專利範圍第1項之微處理器,其中上述功能性單元包括一指令格式器,其中用以減少電源消耗之上述一個或者多個動作包括:上述指令格式器由每一時脈週期格式化由從一指令快取記憶體所擷取之位元組串流的多個指令,切換為每一時脈週期格式化由從上述指令快取記憶體所擷取之位元組串流的一個指令,其中從上述指令快取記憶體所擷取之位元組串流包括多個可變長度指令,其中上述格式化之步驟包括決定從上述指令快取記憶體所擷取之位元組串流中之上述可變長度指令間的邊界。
  6. 根據申請專利範圍第1項之微處理器,其中上述功能性單元包括一指令轉譯器,其中用以減少電源消耗之上述一個或者多個動作包括:上述指令轉譯器由每一時脈週期將多個巨集指令轉譯為多個微指令,轉換為每一時脈週期將一個巨集指令轉譯為多個微指令。
  7. 根據申請專利範圍第1項之微處理器,其中上述功能性單元包括一指令轉譯器,其中用以減少電源消耗之上述一個或者多個動作包括:上述指令轉譯器在將多個巨集指令轉譯為多個微指令的過 程中,禁能指令熔斷。
  8. 一種微處理器,包括:多個功能性單元;以及多個控制暫存器,可進行寫入以致使上述功能性單元啟動一個或者多個動作,其中上述動作係用以當上述微處理器操作於一最低性能操作狀態時,降低每一時脈之指令率,以減少上述微處理器之電源消耗,其中上述最低性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最低核心時脈頻率;其中,上述最低性能操作狀態包括一非睡眠狀態,並且上述控制暫存器被寫入以致使上述功能性單元啟動上述一個或者多個動作,以當上述微處理器操作於上述最低性能操作狀態並且多個既定情況中之至少一者存在時,降低上述微處理器之每一時脈之指令率。
  9. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:最近一次轉換到上述最低性能操作狀態前,上述微處理器操作於一最高性能操作狀態之時間不超過一既定時間週期,其中上述最高性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最高核心時脈頻率。
  10. 根據申請專利範圍第9項之微處理器,其中上述微處理器具有多個較高性能操作狀態,其中上述較高性能操作狀態表示分別將上述微處理器操作在上述微處理器所支援之最高以及最低核心頻率之間的多個不同頻率,並且上述微處理 器之上述每一較高性能操作狀態具有一既定時間週期。
  11. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:一計算分數小於一既定分數,其中上述計算分數係根據每一多個較高性能操作狀態所花費之時間的一加權平均所計算獲得的。
  12. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:上述微處理器操作於上述最低性能操作狀態的時間,超過最近之一既定時間週期至少一既定百分比。
  13. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:上述微處理器支援複數性能操作狀態(multiple performance running states)。
  14. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:上述微處理器偵測到操作於上述微處理器之一操作系統支援複數性能操作狀態。
  15. 根據申請專利範圍第8項之微處理器,其中上述多個既定情況包括:上述微處理器之一使用者沒有相應於所接收用以進入上述最低性能操作狀態之命令,禁能用以降低上述微處理器之每一時脈之指令率的上述一個或者多個動作。
  16. 一種省電方法,其中上述省電方法適用於一微處理器,包 括:接收用以致使上述微處理器進入一最低性能操作狀態的一命令,其中上述最低性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最低核心時脈頻率,並且上述最低性能操作狀態包括一非睡眠狀態;以及啟動用以減少電源消耗之一個或者多個動作,其中上述動作係當上述微處理器相應於所接收用以進入上述最低性能操作狀態之上述命令而操作於上述最低性能操作狀態時,降低上述微處理器每一時脈之指令率,並且用以減少電源消耗之上述一個或者多個動作更包括由以平行方式存取上述微處理器之多個快取記憶體,切換為由串行方式存取上述微處理器之上述快取記憶體。
  17. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作包括:由不根據程序順序執行指令,切換為根據程序順序執行指令。
  18. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作包括:由每一時脈週期發送多個指令,切換為每一時脈週期發送一個指令。
  19. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作包括:由每一時脈週期退回多個指令,切換為每一時脈週期退回一個指令。
  20. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作更包括:由每一時脈週期格式化從一指令快取記憶體所擷取之位元組串流的多個指令,切換為每一時脈週期格式化從上述指令快取記憶體所擷取之位元組串流的一個指令,其中從一指令快取記憶體所擷取之位元組串流包括多個可變長度指令,其中上述格式化之步驟更包括決定從一指令快取記憶體所擷取之位元組串流中之上述可變長度指令間的邊界。
  21. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作更包括:每一時脈週期將多個巨集指令轉譯為多個微指令,轉換為每一時脈週期將一個巨集指令轉譯為多個微指令。
  22. 根據申請專利範圍第16項之省電方法,其中用以減少電源消耗之上述一個或者多個動作更包括:在將多個巨集指令轉譯為多個微指令的過程中,禁能指令熔斷。
  23. 一種省電方法,其中上述省電方法適用於一微處理器,包括:接收用以致使上述微處理器進入一最低性能操作狀態的一命令,其中上述最低性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最低核心時脈頻率,並且上述最低性能操作狀態包括一非睡眠狀態;決定多個既定情況中之至少一者是否存在;以及當上述既定情況中之至少一者存在時,啟動用以減少電源 消耗之一個或者多個動作,其中上述動作係當上述微處理器相應於所接收用以進入上述最低性能操作狀態之上述命令而操作於上述最低性能操作狀態時,降低上述微處理器每一時脈之指令率。
  24. 根據申請專利範圍第23項之省電方法,其中上述多個既定情況包括:最近一次轉換到上述最低性能操作狀態前,上述微處理器操作於一最高性能操作狀態之時間不超過一既定時間週期,其中上述最高性能操作狀態表示將上述微處理器操作在上述微處理器所支援之最高核心時脈頻率。
  25. 根據申請專利範圍第23項之省電方法,其中上述多個既定情況包括:上述微處理器操作於上述最低性能操作狀態的時間,超過最近之一既定時間週期至少一既定百分比。
  26. 根據申請專利範圍第23項之省電方法,其中上述多個既定情況包括:一計算分數小於一既定分數,其中上述計算分數係根據每一多個較高性能操作狀態所花費之時間的一加權平均所計算獲得的。
  27. 根據申請專利範圍第23項之省電方法,其中上述多個既定情況包括:上述微處理器支援複數性能操作狀態(multiple performance running states)。
  28. 根據申請專利範圍第23項之省電方法,其中上述多個既定 情況包括:上述微處理器偵測到操作於上述微處理器之一操作系統支援複數性能操作狀態。
  29. 根據申請專利範圍第23項之省電方法,其中上述多個既定情況包括:上述微處理器之一使用者沒有相應於所接收用以進入上述最低性能操作狀態之命令,禁能用以降低上述微處理器之每一時脈之指令率的上述一個或者多個動作。
TW102108961A 2012-03-19 2013-03-14 在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法 TWI597600B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261612437P 2012-03-19 2012-03-19
US201361755697P 2013-01-23 2013-01-23
US13/777,104 US9442732B2 (en) 2012-03-19 2013-02-26 Running state power saving via reduced instructions per clock operation

Publications (2)

Publication Number Publication Date
TW201342036A TW201342036A (zh) 2013-10-16
TWI597600B true TWI597600B (zh) 2017-09-01

Family

ID=48082844

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102108961A TWI597600B (zh) 2012-03-19 2013-03-14 在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法

Country Status (4)

Country Link
US (1) US9442732B2 (zh)
EP (1) EP2642368B1 (zh)
CN (1) CN103279183B (zh)
TW (1) TWI597600B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9436265B2 (en) * 2013-10-24 2016-09-06 Fujitsu Limited Information processing apparatus and load control method
US9575778B2 (en) 2014-05-20 2017-02-21 Via Alliance Semiconductor Co., Ltd. Dynamically configurable system based on cloud-collaborative experimentation
US9755902B2 (en) 2014-05-20 2017-09-05 Via Alliance Semiconductor Co., Ltd. Dynamic system configuration based on cloud-collaborative experimentation
US9529727B2 (en) 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline
KR102165265B1 (ko) * 2014-09-02 2020-10-13 삼성전자 주식회사 하드웨어 전력 관리 유닛을 이용하여 클락 신호를 조절할 수 있는 애플리케이션 프로세서와 이를 포함하는 장치들
JP6286066B2 (ja) * 2014-12-14 2018-02-28 ヴィア アライアンス セミコンダクター カンパニー リミテッド アウトオブオーダープロセッサでのロードリプレイを低減する節電メカニズム
GB2537852B (en) * 2015-04-28 2019-07-17 Advanced Risc Mach Ltd Controlling transitions of devices between normal state and quiescent state
CN106304293B (zh) * 2016-08-30 2019-08-30 广东美的制冷设备有限公司 WiFi模块的单片机控制方法和装置
US10627883B2 (en) * 2018-02-28 2020-04-21 Advanced Micro Devices, Inc. Onboard monitoring of voltage levels and droop events
US11281468B2 (en) * 2019-06-12 2022-03-22 Shanghai Zhaoxin Semiconductor Co., Ltd. Instruction execution method and instruction execution device
CN114253385B (zh) * 2020-09-25 2024-08-20 北京小米移动软件有限公司 移动终端的功耗管理方法、装置及计算机可读存储介质
US11460879B1 (en) * 2021-06-25 2022-10-04 Advanced Micro Devices, Inc. System and method for controlling electrical current supply in a multi-processor core system via instruction per cycle reduction

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948050B1 (en) 1989-11-17 2005-09-20 Texas Instruments Incorporated Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware
EP0610677A3 (en) 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.
US6289396B1 (en) 1995-11-21 2001-09-11 Diamond Multimedia Systems, Inc. Dynamic programmable mode switching device driver architecture
US6275948B1 (en) 1997-11-14 2001-08-14 Agere Systems Guardian Corp. Processor powerdown operation using intermittent bursts of instruction clock
US6240468B1 (en) 1998-12-18 2001-05-29 International Business Machines Corporation Interposed graphics device driver module processing function requests within module in standard mode, and passing function requests to specialized mode device driver in specialized mode
US6438557B1 (en) 1999-06-23 2002-08-20 Ericsson Inc. System and method for performing context switching and rescheduling of a processor
US6957437B1 (en) 1999-12-23 2005-10-18 Intel Corporation Selecting a device driver for a peripheral device adapted to operate on a network and simplifying secondary printer installation
US6732263B1 (en) 2000-06-12 2004-05-04 Altera Corporation Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
US6826704B1 (en) 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US8051301B2 (en) 2001-11-13 2011-11-01 Advanced Micro Devices, Inc. Memory management system and method providing linear address based memory access security
US20050044429A1 (en) * 2003-08-22 2005-02-24 Ip-First Llc Resource utilization mechanism for microprocessor power management
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
EP1460519B1 (en) * 2003-03-18 2014-05-07 Panasonic Corporation Processor, driving method thereof, and information processing device
US7240223B2 (en) * 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
US7085942B2 (en) * 2003-05-21 2006-08-01 Agilent Technologies, Inc. Method and apparatus for defining an input state vector that achieves low power consumption in a digital circuit in an idle state
US7558723B2 (en) 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US7167992B2 (en) 2003-12-18 2007-01-23 Lenovo Singapore Pte, Ltd. Method for controlling the switching of operating modes of an information processor according to the time of switching of the operating modes
US7987453B2 (en) 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7779238B2 (en) 2004-06-30 2010-08-17 Oracle America, Inc. Method and apparatus for precisely identifying effective addresses associated with hardware events
US7313709B2 (en) 2004-11-05 2007-12-25 International Business Machines Corporation Instruction set with thermal opcode for high-performance microprocessor, microprocessor, and method therefor
US7366891B2 (en) 2004-12-30 2008-04-29 Intel Corporation Methods and apparatus to provide dual-mode drivers in processor systems
US7581037B2 (en) 2005-03-15 2009-08-25 Intel Corporation Effecting a processor operating mode change to execute device code
US7774531B1 (en) 2005-09-13 2010-08-10 Oracle America, Inc. Allocating processor resources during speculative execution using a temporal ordering policy
US20070226795A1 (en) 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US7636832B2 (en) 2006-10-26 2009-12-22 Intel Corporation I/O translation lookaside buffer performance
US8719807B2 (en) 2006-12-28 2014-05-06 Intel Corporation Handling precompiled binaries in a hardware accelerated software transactional memory system
US20080163212A1 (en) 2006-12-29 2008-07-03 Zimmer Vincent J Paralleled management mode integrity checks
US7627742B2 (en) 2007-04-10 2009-12-01 International Business Machines Corporation Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US7962770B2 (en) 2007-12-19 2011-06-14 International Business Machines Corporation Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics
US8566565B2 (en) * 2008-07-10 2013-10-22 Via Technologies, Inc. Microprocessor with multiple operating modes dynamically configurable by a device driver based on currently running applications
US20100058086A1 (en) * 2008-08-28 2010-03-04 Industry Academic Cooperation Foundation, Hallym University Energy-efficient multi-core processor
US8028181B2 (en) * 2008-09-19 2011-09-27 Intel Corporation Processor power consumption control and voltage drop via micro-architectural bandwidth throttling
US8219831B2 (en) 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US8468332B2 (en) 2009-06-13 2013-06-18 Kinglite Holdings Inc. Dynamic link loading in extensible firmware interface compliant systems
US8332618B2 (en) 2009-08-07 2012-12-11 Via Technologies, Inc. Out-of-order X86 microprocessor with fast shift-by-zero handling
US8719510B2 (en) 2010-03-29 2014-05-06 Via Technologies, Inc. Bounding box prefetcher with reduced warm-up penalty on memory block crossings
US8504854B2 (en) * 2010-06-21 2013-08-06 Advanced Micro Devices, Inc. Managing multiple operating points for stable virtual frequencies
CN103282854B (zh) * 2010-12-21 2016-08-10 英特尔公司 用于功率管理的系统和方法
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US9372524B2 (en) * 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization

Also Published As

Publication number Publication date
TW201342036A (zh) 2013-10-16
US9442732B2 (en) 2016-09-13
EP2642368A2 (en) 2013-09-25
CN103279183A (zh) 2013-09-04
CN103279183B (zh) 2017-06-06
EP2642368A3 (en) 2014-09-17
US20130311755A1 (en) 2013-11-21
EP2642368B1 (en) 2018-05-09

Similar Documents

Publication Publication Date Title
TWI597600B (zh) 在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法
US9600283B2 (en) Single instruction for specifying a subset of registers to save prior to entering low-power mode, and for specifying a pointer to a function executed after exiting low-power mode
CN106155265B (zh) 有功率效率的处理器体系结构
TWI742032B (zh) 用於使用者等級執行緒暫止的方法、設備及指令
TWI613593B (zh) 在微處理器中至多核心的微碼傳播
TWI613588B (zh) 在核心間同步運作的方法、微處理器及電腦程式產品
US8418187B2 (en) Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
JP4982375B2 (ja) 複数のコアを介してのモニタリングされたキャッシュラインの共有
TW201508635A (zh) 多核心微處理器動態重新配置
TWI628599B (zh) 用於使處理元件提早離開深度睡眠狀態的處理器和設備
US7774626B2 (en) Method to control core duty cycles using low power modes
KR20120110120A (ko) 프로세서 대기 상태를 인에이블하기 위한 명령
TWI570548B (zh) 包括執行指令集架構之不同部分之多個相異處理器核心之處理器
JP2005527906A (ja) 分離式電源管理状態を提供する方法および装置
WO2011107777A1 (en) A data processing apparatus and method for switching a workload between first and second processing circuitry
CN113366458A (zh) 用于自适应互连路由的系统、装置和方法
JP6409218B2 (ja) 電力効率の優れたプロセッサアーキテクチャ
JP2008269365A (ja) 情報処理装置
Black et al. Selective Microarchitecture-Level Scaling for Energy Savings