TWI412918B - 管理電子裝置中之電源的設備與方法 - Google Patents

管理電子裝置中之電源的設備與方法 Download PDF

Info

Publication number
TWI412918B
TWI412918B TW095149752A TW95149752A TWI412918B TW I412918 B TWI412918 B TW I412918B TW 095149752 A TW095149752 A TW 095149752A TW 95149752 A TW95149752 A TW 95149752A TW I412918 B TWI412918 B TW I412918B
Authority
TW
Taiwan
Prior art keywords
power
group
instruction
unit
indication
Prior art date
Application number
TW095149752A
Other languages
English (en)
Other versions
TW200732903A (en
Inventor
Preetham Raghuvanshi
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200732903A publication Critical patent/TW200732903A/zh
Application granted granted Critical
Publication of TWI412918B publication Critical patent/TWI412918B/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
    • 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
    • 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
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Description

管理電子裝置中之電源的設備與方法
本發明係關於處理器與電腦系統之領域,且尤係關於處理器及其它裝置中之電源管理。
儘管計算及其它裝置的處理效能已獲得許多關注,然而電源消耗的議題已日益重要。一般來說,大眾已預期其計算裝置會更小及更有移動性。不論該裝置是否為可攜式電腦、行動電話、個人數位助理(personal digital assistant,PDA)或其它裝置,例如電池之可攜式電源已變得平凡無奇。若自然界給予有限的此種電源供應,則以有效率的方式使用可用的電源係極為重要的。因此,在此種裝置中的電源管理技術變得更為廣泛。此外,當在處理器中及其它計算裝置中閘極的尺寸變得越來越小時,應推斷靜態電源消耗可能會很快地等於動態電源消耗。因此,靜態電源消耗係在處理器及裝置架構中逐漸成為重要的設計考量。
有鑑於在這些裝置中管理電源的重要性,有效的電源管理方法及機制係亟需的。
用於在計算裝置中管理電源的方法及機制係被考量的。
考量一種方法與機制,其中僅裝置之有關的邏輯區塊係作用中(active)。不需要的區塊可以被關閉電源,及可停止對該不需要的區塊產生時脈(clocking)。該方法和機制動態地決定各種邏輯單元如何及何時被允許進行操作或被關閉。
考量包含一個或多個電源可管理群組之裝置。設定結合該裝置之電源管理單元以偵測安排執行的指令、識別可能需要用於執行指令之特定電源群組、以及回應偵測到該指令而傳達避免該特定電源群組進入電源關閉狀態之指示。若該電源管理單元於預定時間期間沒有偵測到需要特定電源群組以用於執行之進來或等待的指令,則該電源管理單元可以傳達使或允許該對應的電源群組進入電源關閉狀態之指示。除了將用於給定的電源群組之電源去能外,也可將時脈產生去能。
也考量一種裝置,其中電源可管理群組可被分隔成可關閉電源之部份以及不可關閉電源之部份。在此種實施例中,當判定給定的電源群組可被關閉電源時,只有該可關閉電源之電源群組之部份係被關閉電源。其餘部份於是可維持被供給電源。在替代的實施例中,不可關閉電源之電源群組之部份可進入減小電源狀態(reduced power state),該減少電源狀態允許該部份維持該部份的狀態。
亦考量一種電源管理單元,該電源管理單元被設定以維持各電源可管理群組之計數。對接收到之時脈之各週期,可減少該計數。萬一計數到零,則可傳達指示該對應的電源群組可置放在電源關閉狀態的訊號。若偵測到可能需要特定電源群組以用於執行之指令,則該電源群組之計數可重設成非零的值。在一個實施例中,計數於缺少重設訊號時可自然地“衰變(decay)”。於是,電源群組可自動地衰變成電源關閉或減小電源的狀態。在不同的實施例中,可設定電源群組以傳達防止該第一電源群組進入電源關閉狀態之狀態指示。
在一個實施例中,指令係結合電源碼,該電源碼指示哪些電源群組可能需要用於執行。可編碼指令操作碼(opcode)以識別可能需要用於執行之一個或多個電源群組。替代地,可透過對映機制(mapping mechanism)對映指令至電源碼。
處理器概觀
茲請參閱第1圖,係顯示處理器10之一實施例之方塊圖。其它實施例係有可能及被思考的。如第1圖所示,處理器10包含預取(prefetch)/預先解碼(predecode)單元12、分支預測單元14、指令快取16、指令對準單元18、複數個解碼單元20A至20C、複數個保留站22A至22C、複數個功能單元24A至24C、載入/儲存單元26、資料快取28、暫存器檔案30、重新安排緩衝器(reorder buffer)32、罩式唯讀記憶體(MROM)單元34、以及匯流排介面單元37。本文中接在特定元件符號後之文字所參照的元件將以該單一元件符號共同參照。舉例來說,解碼單元20A至20C將共同地參照為解碼單元20。
預取/預先解碼單元12被耦接以接收來自於匯流排介面單元37的指令,並且更進一步耦接到指令快取16及分支預測單元14。同樣地,將分支預測單元14耦接到指令快取16。更進一步,將分支預測單元14耦接到解碼單元20及功能單元24。指令快取16係更進一步耦接到MROM單元34以及指令對準單元18。指令對準單元18係依次耦接到解碼單元20。各解碼單元20A至20C係耦接到載入/儲存單元26並且耦接到個別的保留站22A至22C。保留站22A至22C更進一步耦接到個別的功能單元24A至24C。此外,解碼單元20及保留站22均耦接到暫存器檔案30及重新安排緩衝器32。功能單元24耦接到載入/儲存單元26、暫存器檔案30、以及重新安排緩衝器32。資料快取28係耦接到載入/儲存單元26以及耦接到匯流排介面單元37。匯流排介面單元37更進一步耦接到L2快取之L2介面及匯流排。最後,MROM單元34耦接到解碼單元20。
指令快取16係被提供儲存指令之高速快取記憶體。指令係從指令快取16擷取(fetch)並且分派到解碼單元20。在一個實施例中,指令快取16係以具有64位元組線路(一位元組包括8個二進位之位元)之兩路集合相聯結構(2 way set associative structure)設定以儲存達到64千位元組之指令。替代地,可使用任何其它需要的組態及大小。舉例來說,應注意指令快取16可以施行為全相聯(fully associative)、集合相聯或直接對應的組態。
指令藉由預取/預先解碼單元12儲存到指令快取16。指令可根據預取方案在其從指令快取16要求前預取。各種預取方案可以藉由預取/預先解碼單元12來使用。當預取/預先解碼單元12傳送指令到指令快取16時,預取/預先解碼單元12可產生對應於該指令之預先解碼資料。例如,在一個實施例中,預取/預先解碼單元12對各位元組的指令產生三個預先解碼位元:起始位元、終止位元、以及功能位元。該預先解碼位元形成指示各指令之邊界的標籤(tag)。該等預先解碼標籤也可傳達附加資訊,例如給定的指令是否可由解碼單元20直接解碼或指令是否藉由呼叫由MROM單元34所控制的微碼程序來執行。更進一步而言,可設定預取/預先解碼單元12以偵測分支指令以及儲存對應於該等分支指令之分支預測資訊進入分支預測單元14。其它實施例可依需求使用任何適當的預先解碼方案或無預先解碼。
接著將會說明該使用可變位元組長度指令組之處理器10之實施例之預先解碼標籤的一加密。可變位元組長度指令組係為不同的指令可佔有不同數量的位元組之指令組。由處理器10之一個實施例所使用之例示的可變位元組長度指令組係x86指令組。
於該例示的加密中,若給定的位元組係指令的第一位元組,則設定該位元組之起始位元。若該位元組係指令的最後位元組,則設定該位元組的終止位元。可直接由解碼單元20解碼的指令稱為”捷徑(fast path)”指令。根據一個實施例,其餘的x86指令稱為MROM指令。對捷徑指令而言,該功能位元係對包含在該指令之各前置(prefix)位元組設定,並且清除(clear)其它位元組。替代地,對MROM指令而言,則清除各前置位元組之功能位元,並且設定其它位元組。該指令之類型可藉由檢視對應於該終止位元組之功能位元來決定。若該功能位元被清除,則該指令為捷徑指令。相反地,若該功能位元被設定,則該指令為MROM指令。該指令之操作碼(opcode)因而可置於可由解碼單元20直接解碼之指令內,如同結合於指令中之第一清除功能位元之位元組。例如,包含兩個前置位元組、MOD R/M位元組、以及立即位元組(immediate byte)之捷徑指令會有起始、終止、以及功能位元,如以下所列:起始位元 10000終止位元 00001功能位元 11000
MROM指令係由解碼單元20判定為對於解碼太複雜之指令。MROM指令藉由呼叫MROM單元34來執行。詳而言之,當遇到MROM指令時,MROM單元34解析並且發出該指令至已定義之捷徑指令之子集(subset)以實行該需要的運算。MROM單元34分派該捷徑指令之子集至解碼單元20。
處理器10使用分支預測以在條件分支指令後推測擷取指令。分支預測單元14係被包括以執行分支預測運算。在一個實施例中,分支預測單元14使用攫取達到兩個分支目標位址以及於指令快取16中每16個位元組部份之快取線路之對應的成功(taken)/失敗(not taken)預測之分支目標緩衝器(branch target buffer)。該分支目標緩衝器可例如包括2048個條目(entry)或任何其它適合的條目數。預取/預先解碼單元12於預先解碼特定線路時決定最初分支目標。由於該快取線路之指令的執行,隨後之對應於快取線路之分支目標的更新可能發生。指令快取16提供指令位址被擷取之指示(indication),以使該分支預測單元14可決定那個分支目標位址以選擇用以形成分支預測。解碼單元20及功能單元24提供更新資訊給分支預測單元14。解碼單元20偵測不為分支預測單元14所預測的分支指令。功能單元24執行該等分支指令且判定是否該被預測的分支方向係不正確的。該分支方向可以是“成功(taken)”,其中接下來的指令係從該分支指令的目標位址擷取。相反地,該分支方向可能是“不成功(not taken)”,其中接下來的指令係從連續該分支指令之記憶體位置擷取。當偵測到預測錯誤的分支指令時,在該預測錯誤分支後的指令係被該處理器10之各種單元丟棄。在替代的組態中,分支預測單元14可被耦接到重新安排緩衝器32而非解碼單元20及功能單元24,並且可以接收來自於重新安排緩衝器32之分支預測錯誤資訊。多種適當的分支預測演算法可由分支預測單元14所使用。
從指令快取16所擷取的指令被傳達到指令對準單元18。當從指令快取16擷取指令時,掃描該對應的預先解碼資料以就所擷取的指令提供資訊給指令對準單元18(以及給MROM單元34)。指令對準單元18利用該掃瞄的資料以對準指令給各解碼單元20。在一個實施例中,指令對準單元18從八個指令位元組之三組對準指令給解碼單元20。解碼單元20A接收在指令由解碼單元20B及20C(以程式順序)同時接收前的指令。同樣的,解碼單元20B以程式順序接收在該指令由解碼單元20C同時接收前的指令。在某些實施例中,(例如使用固定長度指令組的實施例),可去除該指令對準單元18。
設定解碼單元20以解碼自指令對準單元18所接收到的指令。偵測暫存器運算元資訊並且繞送(route)至暫存器檔案30及重新安排緩衝器32。此外,若該等指令需要執行一個或多個記憶體運算,解碼單元20分派該等記憶體運算至載入/儲存單元26。將各指令解碼成功能單元24之一組控制值,並且將這些控制值與運算元位址資訊及可能包含指令之置換或立即的資料一起分派至保留站22。在一特定的實施例中,將各指令解碼成到可由功能單元24A至24C分別執行之兩個運算。
處理器10支援亂序執行(out of order execution),並且因而使用重新安排緩衝器32以保持用於暫存檔讀取及寫入操作之原始程式順序的追蹤、執行暫存檔重新命名、允許推測的指令執行以及分支預測錯誤復原、以及加速精確的例外事件(exception)。位於重新安排緩衝器32內之暫時儲存位置係根據指令的解碼而保留,該指令牽涉暫存器的更新從而儲存推測的暫存器狀態。若分支預測是不正確的,沿著該預測錯誤路徑之所推測執行之指令的結果可能在該結果寫入暫存器檔案30前於緩衝器中失效。同樣的,若特定的指令造成例外事件,可丟棄接在該特定指令後之指令。以這種方式,例外事件係“精準的”(例如,引起該例外事件之特定指令後之指令並非完成於該例外事件之前)。應注意,若特定指令於指令之前執行,而該指令於程式順序中先於該特定指令時,則特定指令係被推測執行的。先前的指令可以是分支指令或例外事件引起的指令,以上的例子中,該等推測結果可由重新安排緩衝器32丟棄。
在該等解碼單元20之輸出端所提供的解碼指令係直接繞送至個別的保留站22。在一個實施例中,各保留站22係能保留指令資訊(例如,解碼指令與運算元值、運算元標籤及/或立即的資料)達到六個等待的指令(pending instruction),該等指令等候發送到該對應的功能單元。應注意第1圖的實施例中,各保留站22係結合專用的功能單元24。因此,三個專用的“發送位置”係由該等保留站22及功能單元24形成。換句話說,發送位置0係由保留站22A及功能單元24A形成。所對準的指令且分派至保留站22A係由功能單元24A來執行。同樣的,發送位置1係由保留站22B及功能單元24B形成;且發送位置2係由保留站22C及功能單元24C形成。
根據特定指令之解碼,若所需的運算元係暫存器位置,則同時繞送暫存器位址資訊至重新安排緩衝器32及暫存器檔案30。該暫存器檔案30包括各該架構的暫存器之儲存位置,且該暫存器係包含在由該處理器10所執行的指令組中。可包含額外的儲存位置於暫存器檔案30內而由MROM單元34所使用。重新安排緩衝器32含有改變這些暫存器之內容之結果的暫時儲存位置從而允許亂序執行。重新安排緩衝器32之暫時儲存位置係保留給各指令,該指令根據解碼以決定修改該等真正的暫存器之其中一者之內容。因此,於執行特定程式期間之各種點上,重新安排緩衝器32可能具有一個或多個含有給定暫存器之所推測被執行的內容之位置。若給定指令之接下來的解碼判定重新安排緩衝器32具有先前的位置或指派給在該給定的指令中用作為運算元之暫存器的位置,則該重新安排緩衝器32轉送(forward)給該對應的保留站之任一者:1)最近指派過位置的值,或2)最近指派過位置的標籤,若該值還沒被該功能單元產生直到該值終將執行該先前指令。若重新安排緩衝器32具有保留給給定暫存器之位置,則該運算元值(或重新安排緩衝器標籤)係從該重新安排緩衝器32而非從暫存器檔案30提供。若在重新安排緩衝器32中沒有位置保留給需要的暫存器時,該值係直接從暫存器檔案30擷取。若該運算元對應於記憶體位置,則該運算元值係透過載入/儲存單元26提供給該保留站。
在一特定的實施例中,將重新安排緩衝器32設定以同步儲存及操作被解碼指令為單元。這種組態在此稱為“線型導向(line-oriented)”。藉由一起操作幾個指令,可能簡化重新安排緩衝器32內所使用的硬體。例如,每當由解碼單元20分派一個或多個指令時,包含在本實施例之線型導向之重新安排緩衝器配置足夠用於附屬於三個指令(每一個來自於各解碼單元20)之指令資訊的儲存空間。相較之下,可變的儲存量係配置於傳統的重新安排緩衝器中,此乃取決於實際分派的指令數量。較大數量的邏輯閘可能需要配置該可變的儲存量。當已執行各該同步被解碼的指令時,該等指令結果係同時儲存至暫存器檔案30。然後,該儲存空間空出來用以配置另一組同步被解碼的指令。此外,因為經由幾個同步被解碼指令分攤了控制邏輯,所以減少了每一指令所使用之控制邏輯電路量。驗證特定指令之重新安排緩衝器標籤可被劃分成兩個欄位:線段標籤(line tag)及位移標籤(offset tag)。該線段標籤識別包含該特定指令之同步被解碼之指令的組,而該位移標籤識別哪一個該組內之指令對應於該特定的指令。應注意,儲存指令結果至暫存器檔案30及空出該對應的儲存空間係稱為“下線(retiring)”指令。應再注意,任何重新安排緩衝器之組態可以使用於處理器10之各種實施例中。
如之前注意到的,保留站22儲存指令直到該等指令由該對應的功能單元24所執行。若:(i)已提供指令的運算元,以及(ii)該等運算元還沒提供給在相同保留站22A至22C內的指令以及在程式順序中該指令之前的指令,則選擇執行的指令。應注意,當指令係由該功能單元24之其中一者所執行時,該指令之結果係直接傳送給任何等待該結果之保留站22,同時傳送該結果以更新重新安排緩衝器32(這種技術一般稱為“結果轉送(result forwarding)”。可選擇執行的指令,並在該轉送關聯結果之時脈週期期間傳送給功能單元24A至24C。在這個例子中,保留站22繞送該轉送結果至該功能單元24。在可將指令解碼成多個運算而由功能單元24所執行的實施例中,可彼此分別安排該等運算。
在一個實施例中,設定各該等功能單元24以執行加與減之整數算數運算,及移位(shift)、旋轉(rotate)、邏輯運算、以及分支運算。回應由解碼單元20為特定指令解碼之控制值而執行該等運算。應注意,亦可使用浮點單元(圖中未示出)以納入浮點運算。可操作該浮點單元作為協同處理器,且自MROM單元34或重新安排緩衝器32接收指令,接著與重新安排緩衝器32溝通以完成該等指令。此外,可設定功能單元24以執行用於載入與儲存記憶體運算之位址產生,且該等運算由載入/儲存單元26來執行。於一特定實施例中,各功能單元24可包含用於產生位址之位址產生單元及用於執行其餘功能之執行單元。該等二單元可根據時脈週期期間之不同的指令或運算而獨立運算。
各該等功能單元24亦提供關於執行條件分支指令之資訊至該分支預測單元14。若分支預測係不正確的,分支預測單元14在已進入該指令處理管線之預測錯誤之分支後清空(flush)指令,並且使擷取自指令快取16或主記憶體之所需要的指令。應注意,在此種情況中,於拋棄該預測錯誤分支指令後發生之原始程式順序中之指令的結果,包含推測執行及暫時儲存於載入/儲存單元26及重新安排緩衝器32之結果。更應注意,分支執行結果可由功能單元24提供給重新安排緩衝器32,此乃可指示分支預測錯誤至功能單元24。
若暫存器值被更新,由功能單元24所產生之結果係送至重新安排緩衝器32,而若改變記憶體位置之內容,則結果送至載入/儲存單元26。若儲存該結果於暫存器中,當該指令被解碼時,重新安排緩衝器32儲存該結果於保留給該暫存器之值的位置中。所包含之複數個結果匯流排38係用於轉送來自於功能單元24及載入/儲存單元26之結果。結果匯流排38傳送所產生的結果,以及該重新安排緩衝器標籤識別被執行的指令。
載入/儲存單元26提供功能單元24與資料快取28間的介面。在一實施例中,設定載入/儲存單元26係用具有用於資料之儲存位置及用於等待尚未存取資料快取28之載入或儲存之位址資訊之第一載入/儲存緩衝器,以及具有用於資料之儲存位置及用於已存取資料快取28之載入與儲存之位址資訊之第二載入/儲存緩衝器。例如,該第一緩衝器可包括12個位置而該第二緩衝器可包括32個位置。解碼單元20仲裁存取至該載入/儲存單元26。當該第一緩衝器滿時,解碼單元必須等待直到載入/儲存單元26具有該等待的載入或儲存請求資訊的空間。載入/儲存單元26亦執行檢查載入記憶體運算對等待的儲存記憶體運算之相依性以確保維持資料的連慣性。記憶體運算係處理器10與該主記憶體次系統(雖然該傳送可在該資料快取28中完成)間之資料傳送。記憶體運算可以是利用儲存於記憶體中的運算元之指令的結果,或可使該資料傳送而沒有其它運算之載入/儲存指令之結果。
資料快取28係提供給載入/儲存單元26與該主記憶體次系統間所傳送之暫時性儲存資料之高速快取記憶體。在一個實施例中,資料快取28於兩路集合相聯結構(2 way set associative structure)中具有儲存達到64千位元組之資料的容量。應瞭解的是資料快取28可以多種特定的記憶體組態來實行,包含集合相聯之組態、全相聯之組態、直接對應之組態、以及任何適當大小之任何其它組態。
匯流排介面單元37係透過匯流排於電腦系統中設定以在處理器10與其它元件間作溝通。例如,該匯流排可與由迪吉多公司(Digital Equipment Corporation)開發的EV-6匯流排相容。替代地,可使用包含基於封包、單向或雙向連結等之適當的互連結構。也可使用用於介接第二階快取之選擇性第二階快取(L2 cache)介面。
應注意,儘管該第1圖之實施例係超純量(superscalar)之實施方式,但其它實施例可使用純量之實施方式。此外,功能單元之數量可隨實施例之不同而改變。可使用任何用於執行捷徑與微碼(如MROM)指令之執行電路。其它實施例可使用集中式保留站而非於第1圖中所顯示的個體保留站。此外,其它實施例可使用中心排程器而非第1圖中所顯示之保留站與重新安排緩衝器。
請參閱第2圖,係顯示可利用於如以上所描述之處理器之裝置中的電源管理機制的一實施例。以下將使用以微指令為基礎之方法及機制作為討論的目的。然而,所描述之方法及機制也可用於非微指令為基礎之系統。
在該顯示的例子中,係示出微碼單元200及微指令控制單元202。應注意,該微碼單元200及微指令控制單元202可一般對應於以上描述的MROM單元34。然而,於其它實施例中,該等單元(200,202)可包括自MROM單元34分離出來的電路。微碼單元200包含包括複數個條目之記憶體210,可設定各條目以儲存微指令。記憶體210可包括例如唯讀記憶體(ROM)或任何其它適當的儲存裝置。所顯示之控制單元202包含重新安排緩衝器220與動態電源控制單元240。除了該微碼單元200外,還顯示控制單元202、電源群組260A至260N。在一個實施例中,電源群組可一般對應於邏輯單元或電路之電源可管理區塊之匯集。電源可管理意指電源電壓(Vdd)供應及/或時脈可動態關閉(turn off)或開啟(turn on)。例如,電源群組260A可對應於位址產生單元及/或載入儲存單元,電源群組260B可對應於算數邏輯單元,電源群組260C可對應於移位器,電源群組260N可對應於部份的浮點單元等等。
於一個實施例中,可將微指令編碼以使其指示哪一個或多個電源群組260需要執行。若偵測到需要特定電源群組的微指令係於該管線中或其它方面需要使用特定的電源群組,則控制單元202可能使該對應的電源群組維持原狀或成為作用中的(active)。若沒有偵測到此種微指令,則可允許給定的電源群組進入低電源狀態。如本文中所使用的,低電源狀態可一般包含關閉或無電源狀態,除非另外指示。
在一個實施例中,特定的電源群組260在缺乏某種指示下可自動地進入低電源狀態,該指示防止特定的電源群組260進入低電源狀態。在此種實施例中,電源群組可隨著時間對電源消耗而據以自動“衰變(decay)”。若判定或據信可能需要給定的電源群組,則可傳達指示至電源群組,而實際上“復新(refresh)”電源群組為較小的衰變狀態。例如,若電源群組260不在使用中以及於特定的時間內沒有接收到復新訊號,則可設定電源群組260以自動地進入低電源狀態。若偵測到該復新訊號,則可“重新啟動(restart)”該預定的時間。
在所示的實施例中,記憶體210一般包括具有複數個列,具有儲存對應於一個(可能多個)微指令之資料之給定列之表格。如本文中所使用的,該名稱“微指令”與“指令”可替換使用。一般而言,對應於給定指令之資料可包括一個或多個欄位,該等欄位識別特定的運算、暫存器、記憶體位置或其它位置。除此之外,對於給定指令之資料可更進一步包含電源碼欄位212,該電源碼欄位212可用於指示能夠要求執行該對應之指令之一個或多個電源群組。在替代的實施例中,電源碼欄位212內之資料可在指令解碼期間或處理機制內的其它地方產生。在該記憶體200及/或控制單元202係為MROM單元34之部份的實施例中,回應來自於指令快取16的指示而可將記憶體單元200設定以傳達從記憶體200至控制單元202之一個或多個指令。如上所述,處理器中的某些指令(例如,MROM指令)可視為太複雜而無法由解碼單元20解碼。像這種情形,MROM係藉由呼叫MROM單元34來執行,然後該MROM單元34發送兩個或更多個其它指令用以實行該需要的運算。
於一個實施例中,重新安排緩衝器220包含複數個條目,設定各條目以將資料儲存至從記憶體200所接收到之指令。於所示的例子中,指令及其它資料透過匯流排230可傳達至重新安排緩衝器220,然而對應之電源碼係透過匯流排232傳達至重新安排緩衝器220及動態電源控制單元240。動態電源控制單元240包含設定以儲存用於一個或多個電源群組260之各個群組之指示的單元280。將該單元280中的各指示設定以指示是否對應的電源群組可進入低電源狀態。舉例來說,單元280可包括條目0至N,各條目對應於電源群組260。除此之外,各電源群組260還可接收對應的指示DPC[0]至DPC-[N],該指示指示該電源群組之電源狀態。同時包含在動態電源控制單元240內的是電路(290,292,以及270),該電路係用來更新單元280之內容。在一個實施例中,電路290可透過對應於“進來的(incoming)”指令之匯流排232接收指示,同時可用匯流排250傳達指示至對應於“等待的(pending)”指令之電路292。除此之外,電源群組260透過匯流排252進一步耦接以傳達狀態之指示至動態電源控制單元240。如本文中所使用的,當偵測到為進來的及/或等待的之任一指令時,可據以安排執行的指令。
一般來說,透過匯流排232或250所接收到之指示可識別可能需要執行對應指令之一個或多個電源群組260。若接收到對應於特定電源群組260A至260N之指示,則可更新單元280以指示該對應的電源群組260維持電源開啟及/或時脈產生(或替代地,不允許進入低電源狀態)。例如,在一個實施例中,單元280可包括全域計數器(global counter),其中單元280之各條目可對應於電源群組260之至少一者及可包括減小各時脈週期之計數值。回應偵測到對應於電源群組之進來的232及/或等待的250指示,控制單元270可使用於該對應之電源群組之計數被重設為非零的值。除此之外,當對應於給定的電源群組之指令在等待時(例如,在重新安排緩衝器220中),控制單元270還可防止該計數減小。電源群組260的計數達到零時可進入(或允許進入)低電源狀態。達到零之單元280內之計數一般指示經過預定期間沒有偵測到對應於進來或等待的指令之電源碼。例如,假使單元280中各計數包括兩個位元,並且進來或等待的指令電源碼之偵測使兩個位元被設為二進位值(binary value)”1”(例如,該計數值是3),則減小該計數值三次將使該計數等於零,而可用來造成(或否則允許)該對應的電源群組進入低電源狀態。當然,該方法與機制可執行增加而不是減小,並且可指示造成或允許的低電源狀態回應以偵測對應的計數等於零或大於預定之最大值。在此種例子中,控制單元270可重設計數為零。
第3圖例示電源群組320之一實施例及對應的電源狀態指示310。電源群組320可一般對應於繪製於第2圖中的電源群組260之其中一者,並且電源狀態指示310可一般對應於第2圖所顯示之從該動態電源控制單元240所傳達之指示。在一個實施例中,電源群組可邏輯分隔成兩個或更多個群組,該各群組具有不同的電源管理之需求。在所示的例子中,電源群組320係分隔成電源管理的第一群組330,以及不是電源管理的第二群組332。在一個實施例中,該第一群組330可包括暫存器、組合邏輯、及/或可以被電源管理之順序邏輯(sequential logic),然而另一群組332包括暫存器及/或可不為電源管理之邏輯。不可關閉電源之邏輯一般可包括需要保留某些類型之狀態的邏輯。
如第3圖的例子所顯示,電壓供應302係可用的,及接地供應306係可用的。除此之外,還提供clk來源(gclk)304。例如,時脈來源gclk 304可包括同步全域時脈。在一個實施例中,電壓供應係透過第一閘極312耦接到該第一群組,並且亦耦接到該第二群組332。同樣地,gclk 304係透過閘極314耦接到第一群組,並且耦接到該第二群組332。接地供應306也顯示被耦接到兩個群組(330,332)。電源狀態指示(DPC[i])310係耦接到各閘極312及314。閘極312及314可包括三態(tri-state)閘極,或其它電路,此可用來控制不論電壓供應器302及/或gclk 304是否提供給該第一群組330。例如,電源狀態指示310可包括致能(enable)訊號,該訊號係用來致能或去能(disable)自各閘極312的輸出。致能該閘極312之輸出會使該第一群組330有電源,而致能閘極314的輸出會使該第一群組330產生時脈。於一實施例中,電源狀態訊號310可僅包括如第2圖中上述之對應的電源群組之計數。若該計數之任何位元不是零,則致能該對應的閘極(312,314)。否則可將該對應的閘極(312,314)輸出去能。當然,至於訊號310如何控制電路312及314之眾多變化係可能的且被思考的。
除了以上所述,電源群組320也示出傳達指示340的狀態。狀態指示一般可傳達至第2圖的該動態電源控制單元240。狀態指示可用來指示何時可將電源群組320關閉電源。例如,當電源群組320執行運算時,狀態訊號340可指示其需要電源及/或產生時脈。
如上所述,某些部份的電源群組可以係電源管理的,而其它部份不是。在第3圖的例子中,電源群組340內之第二群組332係一直被設成給予電源及/或產生時脈。此種狀況係需要的,因為需要群組332保持一種狀態。在替代的實施例中,不使其電源及/或時脈被移除之部份的電源群族可能使其電源狀態降低。在此種方式中,可設定電路以減少其電源使用及/或漏電,而仍能保持其狀態。
第4圖繪製類似於第3圖之電路的實施例。第4圖中類似的項目具有與第3圖之類似項目相同的編號。在該第4圖的實施例中,將附加的電路400耦接於供應電壓302,gclk 304與電源群組320之群組332之間。一般而言,可設定電路400以供應兩個或更多個功率位準(power level)至群組332,然而維持需要維持在群組332內電路狀態的最小功率位準。在一實施例中,可耦接電路400以接收超過一個的電源供應。例如,可耦接電路400以接收及傳達代表高供應電壓(例如1伏特(V))之電源供應Vdd302與代表低供應電壓(例如250毫伏(mV))之電源供應Vdd2 410。以此方式,電路400可從兩個或更多個電源供應選擇電源供應並傳達該選定的電源供應至群組332。替代地,可使用已知的技術從單一電源供應傳達超過一電源位準。在此種實施例中,可耦接電路400以僅接收單一電源供應(例如,Vdd 302)並且傳達兩個或更多個電源供應至群組332。
請參閱第5圖,係繪製電源管理機制之一實施例。在該顯示的實施例中,係顯示被耦接的複數個電源群組560A至560N以接收電源供應(Vdd)及時脈訊號(gclk)。該繪製的電源供應Vdd與時脈訊號gclk可(或不可)代表共同的電源供應Vdd及/或時脈訊號gclk。可一般對應於動態電源控制單元(例如第2圖之單元240)之電路係顯示於方塊500內。然而,在其它的實施例中,可將繪製於第5圖之各種部份的邏輯與電路置放於裝置或系統內的多種位置內。在該顯示的例子中,係顯示設定儲存用於各電源群組560之電源狀態指示之儲存裝置(例如,暫存器)522。例如,條目520A至520N可分別對應於各電源群組560A至560N。儲存裝置522(即使非必要)可一般對應於第2圖之儲存裝置280。於儲存裝置522包括複數個計數器之實施例中,可產生更新訊號521,該訊號係被設定以減小如上所述的計數。同時,所顯示之各該等電源群組560A至560N係閘控邏輯(gating logic)532A至532N與指示530A至530N。
於該顯示的實施例中,將單元500耦接以接收對應於至少一電源群組560A之進來的指示502A及等待的指示504A。進來的指示502A可由如第2圖之微碼單元200之裝置傳達,而等待的指示504A可自例如第2圖之重新安排緩衝器220之裝置傳達。替代地,於基於非微碼的裝置中,可從任何適當的指令排程機制或其它機制接收此種指示(502A,504A)。一般也可設定單元500接收用於電源群組560B至560N之進來的及/或等待的指示。設定各閘控電路532A至532N以控制對應的電源群組560A至560N是否為給予電源及/或產生時脈,例如第4圖所描述之三態閘極(312及314)。在此種實施例中,各電路532然後可接收控制該閘控功能之致能/去能訊號。例如,訊號524A可代表電源群組560A之致能/去能訊號。在一個實施例中,訊號524A可對應於第4圖之訊號310。
一般而言,當偵測到需要用於運算之電源群組560A之指令(例如,於早期管線中如解碼期間)時,可斷定(assert)進來的指示502A。等待的指示504A可斷定,而需要電源群組560A之指令係等待中(例如,於第2圖之重新安排緩衝器內)。回應該等訊號502A與504A,電路506傳達指示510A,該指示510A指示電源群組560A是否可進入減少的電源狀態。例如,在一個實施例中,電路506根據所接收到之訊號502A及504A的值,可執行邏輯OR功能。若斷定訊號502A或504A之任一者,則也斷定可指示電源群組560A可能無法進入減少的電源狀態之訊號510A。可對各電源群組520B至520N分別產生類似的指示510B至510N。
在一個實施例中,訊號510A可直接指示是否對應的電源群組560A可進入降低的電源狀態。在此種實施例中,若訊號510A不被斷定(例如,偵測不到對應於電源群組560A之進來的訊號及等待的訊號),則可取消斷定(de-assert)訊號524A,而將該Vdd之輸出及/或來自於閘控邏輯532A之gclk去能。實際上,條目520A然後可對該對應的電源群組560A儲存致能/去能之狀態。於替代的實施例中,電源狀態可如上所述的在時間期間衰變。於一實施例中,各條目520A至520N可對對應的電源群組560A至560N儲存計數。回應更新訊號521,或任何其它適當的訊號而各計數520可被減少時脈訊號之各週期(例如,gclk,或任何其它適當的時脈訊號)。萬一對應的計數達到例如零之預定值時,則該對應的電源群組可進入低電源狀態。例如,若在條目520A中的計數等於零,則致能/去能訊號524A可指示該對應的電源群組560A可進入低電源狀態。
在一個實施例中,可對各該等電源群組560維持個別的狀態指示。例如,如第5圖所顯示的,可對各電源群組同時維持計數520及狀態指示530(如區塊523所示)。在此種實施例中,對應的狀態530係設定相依於對應的計數520值。因此,若計數520A不是零,則狀態530A可指示電源群組560A係給予電源的。另一方面,若計數520A達到零,則可設定狀態530A以指示電源群組可進入低電源狀態。為回應接收指示進來或等待的指示,可對對應的電源群組之計數重設。
同樣繪製於第5圖的是藉由各電源群組560A至560N而傳達之狀態指示570A至570N。狀態指示570可指示對應的電源狀態560不能進入減小的電源狀態及/或使其產生時脈去能。例如,若狀態指示570A指示電源群組560A不能進入減小的電源狀態,則可避免訊號524A指示低電源狀態,而與條目520A及/或530A的值無關。替代地,指示570A可能直接提供給閘控邏輯532A或其它。眾多的此種替代實施例係可能的且被思考的。
如上所述,指令可包含有關於可能需要執行之一個或多個電源群組的指示。可直接編碼此種指示作為該指令編碼的部份,該電源碼指示可透過對映至指令操作碼或其它操作碼來判定。多種結合具有指令或運算之電源碼指示之技術係可能且被思考的。第6圖例示電源碼之一實施例及其與各種指令之關聯性。第一表格600係顯示包含電源群組行602及對應的電源碼ID 604。各表格600之列則包含邏輯/電路之一個或多個電源可管理之群組及對應的電源碼ID。在該所顯示的例子中,電源碼ID包括八個位元。然而,在此技術領域熟知這些技藝者會瞭解其它編碼係可能的。所有此種替代物係被思考的。第一條目指示位址產生單元(AGU)及載入/儲存單元之電源碼ID為“00000001”。第二條目指示算數邏輯單元(ALU)之電源碼ID為“00000010”。類似的條目包含移位器、整數乘法器、浮點(FP)排程器、FP加法器、FP乘法器以及FP除法/平方根單元。應注意,在給定裝置內之特定的電源群組將取決於該裝置之類型與本質、設計決定等。因此,不同的電源群組可存在於特定之一般目的之微處理器及特殊應用裝置(application specific device)。
第6圖之第二表格601繪製具有包括電源碼614及其它位元616之對應樣本編碼之樣本指令612。該第一條目繪製可設定之和(and)addop指令,例如,將兩個運算元相加。在該所示的例子中,addop具有暫存器及記憶體運算元。該指令之電源碼為“00000011”。根據由表格600所例示之關聯性,該電源碼“000000011”指示可能同時需要該AGU、載入/儲存電源群組及該ALU電源群組。第二條目繪製可設定將資料從一位置移動至另一位置之moveop指令。在該所示的例子中,該moveop指令包含兩個暫存器運算元。該moveop指令之電源碼為”00000010”,其對應於該ALU電源群組。最後,fpaddop指令繪製於表格601中。此種指令在浮點運算單元中可對應於加法運算。於該所示的例子中,該fpaddop指令包含浮點暫存器運算元(fpregister)及記憶體運算元。該fpaddop指令之電源碼為”00110001”,其對應於該移位器,及整數乘法電源群組。對應於各所例示的指令之其它位元616可提供該指令之任何其它適當的編碼位元。
如電源群組之識別的例子,該電源群組可能需要等待的指令,假定用於討論的目的,該表格601代表儲存於第2圖之重新安排緩衝器220內之一部份的資料。因此,於表格601之指令一般代表等待的指令。請看所繪製的三個指令(一般有可能超過三個指令),可執行邏輯OR運算於該等等待的指令之電源碼上。因此,以下的運算係執行如區塊603中所例示的結果。
00000011 0000001000110001 00110011
因此,“00110011”之電源碼係指示該等待的指令。同樣地,此電源碼對應於該AGU、載入/儲存、ALU、移位器及整數乘法器電源群組。因此,可能需要這些電源群組之各群組且可不必關機/關閉電源。
請參閱第7圖,係顯示包含透過匯流排橋接器(bus bridge)702耦接到多種系統元件之處理器10之電腦系統700之一實施例之方塊圖。其它實施例係有可能及被思考的。在所繪製的系統中,主記憶體704係透過記憶體匯流排706耦接到匯流排橋接器702,並且圖形控制器708係透過AGP匯流排710耦接到匯流排橋接器702。最後,複數個PCI裝置712A至712B透過PCI匯流排714耦接到匯流排橋接器702。第二匯流排橋接器716可進一步提供透過EISA/ISA匯流排720容納一個或多個EISA或ISA裝置718之電子介面。處理器10係透過CPU匯流排724耦接到匯流排橋接器702且耦接到選擇性的L2快取728。合起來,CPU匯流排724及至L2快取728之介面可包括外部介面單元18可耦接的外部介面。
匯流排橋接器702提供處理器10、主記憶體704、圖形控制器708、以及依附於PCI匯流排714之裝置間的介面。當運算係接收自與匯流排橋接器702所連接之其中一個裝置時,匯流排橋接器702識別該運算之目標(例如,特定的裝置,或PCI匯流排714的例子,該目標係在PCI匯流排上714)。匯流排橋接器702繞送該運算至該目標裝置。匯流排橋接器702一般轉譯由該來源裝置或匯流排所使用之通訊協定至由該目標裝置或匯流排所使用之通訊協定之運算。
除了對PCI匯流排714提供介面給ISA/EISA匯流排之外,第二匯流排橋接器716可依需要更進一步整合附加的功能性。輸入/輸出控制器(圖中未顯示),亦可依需要包含接取自第二匯流排橋接器716或與第二匯流排橋接器716整合之外部控制器於電腦系統內700,以提供鍵盤及滑鼠722及各種序列或平行埠之操作支援。於其它的實施例中,可進一步將外部快取單元(圖中未顯示)耦接到CPU匯流排724於處理器10與匯流排橋接器702之間。替代地,可將該外部快取耦接到匯流排橋接器702且可將該外部快取之快取控制邏輯整合至匯流排橋接器702。L2快取728係進一步顯示於處理器10之後方的組態中。應注意,L2快取728可自處理器10分隔開來、與處理器10整合至卡夾(例如插槽1(slot 1)或插槽A(slot A))或甚至與處理器10整合至半導體基板。L2快取728可由錯誤更正碼(Error Correction Coding,ECC)資料保護,且在該L2快取728中的ECC錯誤可依需要使用微碼常式(microcode routine)(如以上所述)或於硬體中更正。
主記憶體704係為儲存應用程式及處理器10主要執行應用程式之記憶體。適當的主記憶體704包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。例如複數個同步動態隨機存取記憶體(Synchronous DRAM,SDRAM)或Rambus動態隨機存取記憶體(Rambus DRAM,RDRAM)之記憶槽(bank)可為適當的。
PCI裝置712A至712B係例示多種介面裝置。該等周邊裝置可包含與另一電腦系統之裝置可耦接(例如網路介面卡、數據機等)溝通之裝置。此外,周邊裝置還可包含其它裝置,例如,舉例,視訊加速卡、音效卡、硬碟或軟式磁碟機或驅動控制器、小型電腦系統介面(Small Computer Systems Interface,SCSI)配接卡及電話卡。同樣地,ISA裝置718係例示各種類型的周邊裝置,例如數據機、音效卡、以及多種資料收集介面卡,例如一般用途界面匯流排(General Purpose Interface Bus,GPIB)或現場匯流排介面卡(field bus interface cards)。
圖形控制器708係提供來控制在顯示器726上所產生之文字與影像。圖形控制器可嵌入在此領域已泛知的典型圖形加速器以產生三維之資料架構,該架構可有效移進與移出主記憶體704。圖形控制器708因此可以是AGP匯流排710之主匯流排,其中,圖形控制器708可於匯流排橋接器702內要求及接收存取至目標介面,從而獲得主記憶體704之存取權。專用的圖形匯流排收納從主記憶體704快速擷取的資料。對某些運算而言,可進一步設定圖形控制器708以在AGP匯流排710上產生PCI通訊協定交易。該匯流排橋接器702之AGP介面可因而包含支援AGP通訊協定交易以及PCI通訊協定目標與起始者(initiator)交易之功能性。顯示器726係根據可呈現之影像或文字之任何電子顯示器。適當的顯示裝置726包含陰極射線管(“CRT”)、液晶顯示器(“LCD”)等。
應注意,儘管該AGP、PCI、以及ISA或EISA匯流排已用作為上述之例子,然可依需要取代任何匯流排架構。應更進一步注意,電腦系統700可以是包含附加處理器(例如,所顯示的處理器10a作為電腦系統700之選擇性元件)之多處理電腦系統。處理器10a可以是類似於處理器10。詳而言之,處理器10a可以是處理器10之相同的複製品。處理器10a可透過獨立匯流排(如第7圖所示)連接至匯流排橋接器702或可與處理器10分享CPU匯流排724。此外,處理器10a可耦接至選擇性的L2快取728a,其類似於L2快取728。
各種實施例可根據關於電腦可讀取媒介之前面敘述進一步包含接收、送出或儲存指令及/或安裝的資料。電腦可讀取媒介可包含儲存媒介或記憶體媒介,例如磁性或光學媒介,例如,磁碟、DVD、CD-ROM、如RAM(例如SDRAM、RDRAM、SRAM等)、ROM等之揮發性或非揮發性媒介。除此之外,應注意,以上各種實施例可依需要自其它實施例分離出來或可用於與一個或多個其它實施例之組合。此外,可思考組合以上所有實施例之操作的實施例。
一旦以上揭露完全瞭解,許多變化及修改對於本領域之熟知技藝者會變得顯而易見。雖然以上說明一般描述一般目的之微處理器之上下文內之方法及機制,然該方法與機制係可應用至任何裝置,其中可能需要電源管理,例如路由器、交換器、圖形裝置、橋接晶片、可攜式裝置等。以下的申請專利範圍將會被詮釋以包含所有此種的變化及修改。
10、10a...處理器
12...預取/預先解碼單元
14...分支預測單元
16...指令快取
18...指令對準單元
20A至20C...複數個解碼單元
22A至22C...複數個保留站
24A至24C...複數個功能單元
26...載入/儲存單元
28...資料快取
30...暫存器檔案
32、220...重新安排緩衝器
34...罩式唯讀記憶體單元
37...匯流排介面單元
38、230、232、250、252...匯流排
200...微碼單元
202...微指令控制單元
210...複數個條目之記憶體
212...電源碼欄位
226...顯示器
240...動態電源控制單元
260A至260N、320...電源群組
270、290、292、400、506...電路
280...指示的單元
302...電壓供應
304...時脈來源gclk
306...接地供應
310...電源狀態指示
312、314...閘極
330...第一群組
332...第二群組
340...狀態訊號
410...電源供應Vdd2
500...單元
502A、504A、510A至510N、530A至530V...指示
521、524A...訊號
522、523...儲存裝置
520A至520N...條目
532A至532N...閘控邏輯
560A至560N...電源群組
570A至570N...狀態指示
600...第一表格
601...第二表格
602...電源群組行
603...區塊
604...電源碼ID
612...樣本指令
614...電源碼
616...位元
700...電腦系統
702...匯流排橋接器
704...主記憶體
706...記憶體匯流排
708...圖形控制器
710...AGP匯流排
712A至712B...PCI裝置
714...PCI匯流排
716...第二匯流排橋接器
718...ISA裝置
720...EISA/ISA匯流排
722...鍵盤/滑鼠
724...CPU匯流排
728、728a...L2快取
DPC[0]至DPC[N]...電源狀態指示
gclk...時脈來源
Vdd...電壓供應
Vdd2...電源供應
Vss...接地供應
以上詳細說明請參考附圖,茲將該等附圖簡要說明。
第1圖係處理器之一實施例之方塊圖;第2圖係顯示於第1圖中之該處理器之部份之一實施例之方塊圖;第3圖係描述電源管理機制的部份;第4圖係描述電源管理機制的部份;第5圖係描述動態電源控制機制與電源群組之一實施例;第6圖係例示裝置指令與電源碼編碼之一實施例;以及第7圖係包含顯示於第1圖中之處理器之電腦系統之第二實施例之方塊圖。
雖然本發明可作各種修改及替代的形式,但藉由圖式中的例子顯示出其特定的實施例,且該特定的實施例將在本文中詳細說明。然而應瞭解,此處的圖式及詳細說明並非要侷限本發明為所揭露之特定形式,但相反地,本發明係欲涵蓋所有落於本發明之精神與範疇內之修改、相等物及替代物,其如由附加的申請專利範圍所定義者。
10...處理器
12...預取/預先解碼單元
14...分支預測單元
16...指令快取
18...指令對準單元
20A至20C...複數個解碼單元
22A至22C...複數個保留站
24A至24C...複數個功能單元
26...載入/儲存單元
28...資料快取
30...暫存器檔案
32...重新安排緩衝器
34...罩式唯讀記憶體單元
37...匯流排介面單元
38...匯流排

Claims (15)

  1. 一種管理電子裝置電源之設備,包括:一個或多個電源可管理群組;以及電源管理單元,係設定以:偵測安排執行的指令;識別需要用於執行該指令之該一個或多個電源可管理群組中之至少一個電源群組;回應偵測到該指令,傳達避免該至少一個電源群組進入電源關閉狀態之第一指示;以及回應判定對應於該至少一個電源群組之指令於預定時間期間尚未安排執行,該電源管理單元係設定以傳達致能該至少一個電源群組進入電源關閉狀態之第二指示,其中,該至少一個電源群組係組構為在缺乏該第一指示下自動地進入電源關閉狀態。
  2. 如申請專利範圍第1項之設備,其中,偵測安排執行的指令包括偵測進來及/或等待的指令。
  3. 如申請專利範圍第1項之設備,其中,該第二指示係進一步設定以使該至少一個電源群組之時脈產生去能。
  4. 如申請專利範圍第1項之設備,其中,該至少一個電源群組包括可關閉電源之第一部份的電路,以及不可關閉電源之第二部份的電路。
  5. 如申請專利範圍第4項之設備,其中,回應接收該至少一個電源群組可被電源關閉之指示,該第一部份可進入電源關閉狀態,且該第二部份可進入不是電源關閉狀態 之減小電源狀態。
  6. 如申請專利範圍第1項之設備,其中,該電源管理單元係設定以:維持複數個計數,各該複數個計數對應於該電源可管理群組中之一者;對接收到之時脈訊號之各週期減少各該複數個計數;以及回應偵測到安排執行的對應於電源群組之指令,重設該複數個計數之第一計數至最大值,該第一計數對應於該電源群組。
  7. 如申請專利範圍第1項之設備,其中,該至少一個電源群組係設定以傳達狀態指示至該電源管理單元,其中,該狀態指示,當被斷定時,避免至少一個電源群組進入電源關閉狀態。
  8. 如申請專利範圍第1項之設備,其中,該指令之編碼包含該至少一個電源群組之識別。
  9. 一種用於在電子裝置中管理電源之方法,該方法包括:偵測安排執行的指令;識別需要用於執行該指令之一個或多個電源可管理群組中之至少一電源群組;回應偵測到該指令,傳達避免該至少一個電源群組進入電源關閉狀態之第一指示;回應判定對應於該至少一個電源群組之指令於預定時間期間尚未安排執行,傳達致能該至少一個電源群 組進入電源關閉狀態之第二指示;以及在缺乏該第一指示下自動地進入電源關閉狀態。
  10. 如申請專利範圍第9項之方法,其中,偵測安排執行的指令包括偵測進來及/或等待的指令。
  11. 如申請專利範圍第9項之方法,其中,回應該第二指示,該方法復包括使該至少一個電源群組之時脈產生去能。
  12. 如申請專利範圍第11項之方法,其中,該至少一個電源群組包括可關閉電源之第一部份的電路,以及不可關閉電源之第二部份的電路,且其中,回應接收到該至少一個電源群組可被關閉電源之指示,該方法進一步包括使該第一部份進入電源關閉狀態以及使該第二部份進入不是電源關閉狀態之減小電源狀態。
  13. 如申請專利範圍第9項之方法,進一步包括:維持複數個計數,各該複數個計數對應於該電源可管理群組中之一者;對接收到之時脈訊號之各週期減少各該複數個計數;以及回應偵測到安排執行的對應於電源群組之指令,重設該複數個計數之第一計數至最大值,該第一計數對應於該電源群組。
  14. 如申請專利範圍第9項之方法,進一步包括從該至少一個電源群組接收狀態指示,其中,該狀態指示,當被斷定時,避免該至少一個電源群組進入電源關閉狀態。
  15. 如申請專利範圍第9項之方法,其中,該指令之編碼包含該至少一個電源群組之識別。
TW095149752A 2006-01-06 2006-12-29 管理電子裝置中之電源的設備與方法 TWI412918B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/327,606 US7644294B2 (en) 2006-01-06 2006-01-06 Dynamically self-decaying device architecture

Publications (2)

Publication Number Publication Date
TW200732903A TW200732903A (en) 2007-09-01
TWI412918B true TWI412918B (zh) 2013-10-21

Family

ID=37964721

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095149752A TWI412918B (zh) 2006-01-06 2006-12-29 管理電子裝置中之電源的設備與方法

Country Status (7)

Country Link
US (1) US7644294B2 (zh)
JP (1) JP5513744B2 (zh)
KR (1) KR101378169B1 (zh)
CN (1) CN101356487B (zh)
DE (1) DE112006003632B4 (zh)
TW (1) TWI412918B (zh)
WO (1) WO2007081488A2 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098245A1 (en) * 2006-03-22 2008-04-24 G2 Microsystems, Inc. Power management system and method
US8667198B2 (en) * 2007-01-07 2014-03-04 Apple Inc. Methods and systems for time keeping in a data processing system
US7917784B2 (en) 2007-01-07 2011-03-29 Apple Inc. Methods and systems for power management in a data processing system
US8448003B1 (en) * 2007-05-03 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for activating sleep mode
US7509511B1 (en) 2008-05-06 2009-03-24 International Business Machines Corporation Reducing register file leakage current within a processor
US9396117B2 (en) 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) * 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) * 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US11243898B2 (en) * 2014-08-01 2022-02-08 Arm Limited Memory controller and method for controlling a memory device to process access requests issued by at least one master device
US10049004B2 (en) * 2015-12-09 2018-08-14 Samsung Electronics Co., Ltd. Electronic system with memory data protection mechanism and method of operation thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301671B1 (en) * 1998-03-23 2001-10-09 International Business Machines Corporation Apparatus and method for power reduction control in a video encoder device
US6976182B1 (en) * 2002-02-01 2005-12-13 Advanced Micro Devices, Inc. Apparatus and method for decreasing power consumption in an integrated circuit
TW200540604A (en) * 2004-03-31 2005-12-16 Microsoft Corp Game controller power management

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5953237A (en) * 1996-11-25 1999-09-14 Hewlett-Packard Company Power balancing to reduce step load
CN1294334A (zh) * 1999-10-21 2001-05-09 神基科技股份有限公司 电源管理系统
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US7085945B2 (en) * 2003-01-24 2006-08-01 Intel Corporation Using multiple thermal points to enable component level power and thermal management
US7134028B2 (en) * 2003-05-01 2006-11-07 International Business Machines Corporation Processor with low overhead predictive supply voltage gating for leakage power reduction
GB0400659D0 (en) 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Microprocessor, related method of operating the same and related instruction word

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301671B1 (en) * 1998-03-23 2001-10-09 International Business Machines Corporation Apparatus and method for power reduction control in a video encoder device
US6976182B1 (en) * 2002-02-01 2005-12-13 Advanced Micro Devices, Inc. Apparatus and method for decreasing power consumption in an integrated circuit
TW200540604A (en) * 2004-03-31 2005-12-16 Microsoft Corp Game controller power management

Also Published As

Publication number Publication date
CN101356487B (zh) 2011-07-13
US7644294B2 (en) 2010-01-05
JP2009522689A (ja) 2009-06-11
WO2007081488A3 (en) 2008-04-03
KR20080091801A (ko) 2008-10-14
JP5513744B2 (ja) 2014-06-04
US20070162775A1 (en) 2007-07-12
CN101356487A (zh) 2009-01-28
DE112006003632T5 (de) 2008-12-04
DE112006003632B4 (de) 2013-04-18
TW200732903A (en) 2007-09-01
WO2007081488A2 (en) 2007-07-19
KR101378169B1 (ko) 2014-03-25

Similar Documents

Publication Publication Date Title
TWI412918B (zh) 管理電子裝置中之電源的設備與方法
US7133969B2 (en) System and method for handling exceptional instructions in a trace cache based processor
US7861066B2 (en) Mechanism for predicting and suppressing instruction replay in a processor
EP1390835B1 (en) Microprocessor employing a performance throttling mechanism for power management
US9058180B2 (en) Unified high-frequency out-of-order pick queue with support for triggering early issue of speculative instructions
EP1116102B1 (en) Method and apparatus for calculating indirect branch targets
US6442707B1 (en) Alternate fault handler
US7890734B2 (en) Mechanism for selecting instructions for execution in a multithreaded processor
US7415597B2 (en) Processor with dependence mechanism to predict whether a load is dependent on older store
EP1090345B1 (en) Using ecc/parity bits to store predecode information
US20020091915A1 (en) Load prediction and thread identification in a multithreaded microprocessor
JP2003514274A (ja) 接近して結合される多重プロセッサのための高速マルチスレッディング
US6493819B1 (en) Merging narrow register for resolution of data dependencies when updating a portion of a register in a microprocessor
US6542986B1 (en) Resolving dependencies among concurrently dispatched instructions in a superscalar microprocessor
WO2001097043A1 (en) A translation lookaside buffer flush filter
WO2007019001A1 (en) Call return stack way prediction repair
US6631454B1 (en) Processor and data cache with data storage unit and tag hit/miss logic operated at a first and second clock frequencies
US6625726B1 (en) Method and apparatus for fault handling in computer systems
US20240020120A1 (en) Vector processor with vector data buffer
US7069411B1 (en) Mapper circuit with backup capability
US8225034B1 (en) Hybrid instruction buffer
US6535972B1 (en) Shared dependency checking for status flags
US6175909B1 (en) Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment