TWI502309B - 在時脈來源的時脈網格之自動時脈閘控方法及系統 - Google Patents

在時脈來源的時脈網格之自動時脈閘控方法及系統 Download PDF

Info

Publication number
TWI502309B
TWI502309B TW102129109A TW102129109A TWI502309B TW I502309 B TWI502309 B TW I502309B TW 102129109 A TW102129109 A TW 102129109A TW 102129109 A TW102129109 A TW 102129109A TW I502309 B TWI502309 B TW I502309B
Authority
TW
Taiwan
Prior art keywords
clock
core
grid
clock signal
critical
Prior art date
Application number
TW102129109A
Other languages
English (en)
Other versions
TW201426242A (zh
Inventor
Guillermo Juan Rozas
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201426242A publication Critical patent/TW201426242A/zh
Application granted granted Critical
Publication of TWI502309B publication Critical patent/TWI502309B/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3824Operand accessing
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)

Description

在時脈來源的時脈網格之自動時脈閘控方法及系統
本申請案一般係關於在時脈來源的時脈網格之自動時脈閘控方法及系統。
高頻微處理器及其它運算引擎通常使用一時脈網格(取代一時脈樹)做為共通的時脈分佈機制以降低時脈不確定性,並使得有更多的額定時脈循環可用於運算。
另一方面,當使用一時脈樹用於時脈分佈時,該中大型共通時脈分佈網路可相對地較容易閘控,藉此利用一相對本地化的方式大為消除共通時脈分佈(啟動/動態)電力。
但是,另一方面相較於時脈樹,為了電力管理目的,時脈網格較不容易閘控。雖然時脈網格具有頻率優勢,因此在啟動時有概念性的能量效率優勢,但該微處理器未啟動時,時脈網格即會有一些電力上的缺點,例如在當該處理器無法繼續使用時必須等待來自記憶體的資訊。也就是說,電力部份地由該時脈的分佈與該處理器電路所消耗。
時脈網格依賴它們為共通性地”on”來降低偏斜。由於它們的 組態,使用一時脈樹時,傳統的時脈閘控被迫地比平時更靠近「葉片」(leaves)進行時脈閘控。因為該網格基本上比相對應的跨越樹具有更多的電容與電晶體,對於由一時脈網格所時控的電路而言可能會耗費及/或浪費更多的電力。在這樣未啟動的狀況下,即使所有該等單元皆為本地性地時脈閘控,該共通時脈網格仍會消耗數百毫瓦特(milliwatts),然而由於沒有記憶體或同等停滯狀況的特性,該處理器仍無法有任何進展。
在某些狀況下,一時脈網格可使用電力管理軟體控制來進行 管理。例如,在有限的關鍵條件下,該時脈網格的該啟動時脈電力藉由使用顯式軟體電力管理指令及序列來處理。例如,透過軟體控制的電力管理可由在軟體控制之下明確地輸入較低電力狀態來達成。該軟體控制的較低電力狀態在該來源處能夠閘控該時脈網格。
但是,一軟體控制的電力管理解決方案無法在動態及/或關 鍵條件之下幫忙節省電力,因為該軟體無法於存在有該關鍵條件時適時地辨識。例如,一軟體控制的管理解決方案無法決定一指令分支何時將要錯誤預測,然後在較低階的快取或底層的記憶體系統中搜尋適當的指令及/或資料。
本發明揭示一種用於執行電力管理的方法與系統。該方法包括在一時脈來源執行時脈閘控。特定而言,基於一處理單元的一核心之時控組件可偵測在一硬體內的一關鍵停滯狀況。該核心包括一或多個時控組件,其在操作上透過一時脈網格分佈的一時脈信號同步化。該時脈網格係 在供應該時脈信號至該核心的一根分支處被時脈閘控,以在該關鍵停滯狀況期間中止整個該核心中該時脈信號的分佈。
在另一具體實施例中,揭示另一種電力管理方法。該方法包 括偵測一指令何時由一處理單元的一核心之一時控組件傳送。該指令係關聯於一回應,其中在該核心中資料的處理在等待接收該回應時被中止或未啟動。在一些案例中,該回應由該記憶體系統傳回。該核心包括一或多個時控組件,其在操作上透過一時脈網格分佈的一時脈信號同步化。該方法包括啟動一計數器。該計數器之遞增例如在每一時脈循環將該計數器加一。針對該回應有監視交易。例如,針對該指令的該回應監視來自一記憶體系統的交易。該方法包括偵測到該回應之前決定該計數器何時到達一臨界值。如果在偵測到該回應之前,該計數器已到達該臨界值,該方法便包括時脈閘控該時脈網格,以在該關鍵停滯狀況期間中止將該時脈信號分佈到該核心。
在又另一具體實施例中,揭示一種電力管理裝置。該裝置包 括一用於提供一時脈信號的時脈來源。該裝置亦包括一時脈網格,用於分佈該時脈信號到一處理單元的一核心。該核心包括一或多個時控組件,其在操作上透過該時脈信號同步化。其中包括一硬體式監視器用於偵測在該核心的一時控組件內的一關鍵停滯狀況。在一具體實施例中,該時控組件包括該硬體式監視器。該裝置包括一時脈網格控制單元,用於在該時脈網格的一根分支處時脈閘控該時脈網格,以在該關鍵停滯狀況期間中止整個該核心中該時脈信號的分佈。該根分支分佈該時脈信號至該核心。
本發明之多種具體實施例的這些及其它目的與好處對於本 技術專業人士而言將可在閱讀以下例示於多個附圖中該等具體實施例的詳細說明之後而瞭解。
100‧‧‧運算系統
110‧‧‧中央處理單元
120‧‧‧圖形處理單元
130‧‧‧顯示螢幕
140‧‧‧記憶體
160‧‧‧使用者介面
210‧‧‧執行單元
215‧‧‧停滯狀況迴圈
220‧‧‧執行單元
225‧‧‧停滯狀況迴圈
230‧‧‧執行單元
235‧‧‧停滯狀況迴圈
300‧‧‧微型架構
305‧‧‧核心
310‧‧‧時脈網格
315‧‧‧時脈網格
320‧‧‧時脈網格控制單元
325‧‧‧回應監視器
330‧‧‧時控組件
335‧‧‧監視器
337‧‧‧計數器
340‧‧‧時控組件
345‧‧‧監視器
347‧‧‧計數器
350‧‧‧劃界
360‧‧‧時脈來源
370‧‧‧回應監視器
380‧‧‧外部單元(例如:記憶體系統)
加入到本說明書中並成為其一部份的該等附屬圖式係例示本發明之具體實施例,其中類似的編號描述了類似的元件,該等圖式連同該說明係用於解釋本發明的原理。
圖1所示為適於實作根據本發明一具體實施例所提出之該等方法的一示例性電腦系統的方塊圖。
圖2所示為根據本發明一具體實施例用於處理指令成為一系列相關步驟的一處理器之一示例性核心的一示例性指令管線之圖示。
圖3為根據本發明一具體實施例設置成當偵測到一關鍵停滯狀況時,藉由時脈閘控一時脈來源來中止一時脈信號的分佈以執行電力管理之裝置的方塊圖。
圖4為根據本發明一具體實施例的一種用於當偵測到一關鍵停滯狀況時,藉由時脈閘控一時脈來源來中止一時脈信號的分佈以執行電力管理之方法的流程圖。
圖5為根據本發明一具體實施例的一種用於當一指令已經被傳送之後且在偵測到或接收到對該指令的一回應之前一計數器已經到達一臨界值時,藉由時脈閘控一時脈來源來中止一時脈信號的分佈以執行電力管理之方法的流程圖。
現在將對本發明之多種具體實施例進行詳細參照,其示例皆例示於該等附屬圖式中。當本發明將配合這些具體實施例說明時,將可瞭解到它們並非要限制本發明於這些具體實施例。相反地,本發明係要涵蓋選項、修正及同等者,其皆包括在由附屬申請專利範圍所定義之本發明的精神及範圍之內。再者,在以下本發明之具體實施例的詳細說明中,為了提供對於本發明之完整瞭解,在本發明中提出許多特定細節。但是將可瞭解到本發明可以不使用這些特定細節來實施。在其它實例中,並未詳細說明熟知的方法、程序、組件及電路,藉以避免不必要地混淆這些具體實施例的態樣。
該等詳細說明的部份在以下係以程序、邏輯方塊、處理,以及其它於一電腦記憶體內資料位元之作業的符號表示來呈現。這些說明及表示為在該資料處理技術中專業人士所使用的方法來最有效地傳遞他們工作的內容給本技藝中專業人士。在本申請案中,一程序、邏輯方塊、處理或類似者皆被視為可達到所想要結果之步驟或指令的一自我一致的序列。該等步驟為那些利用實體數量的實體操縱。通常雖然並非必定,這些數量可採取電子或磁性信號之型式,其能夠被儲存、轉換、組合、比較,及另可在一電腦系統中操縱。其在幾次中,已證明主要為了通用用法的理由而為方便地參照到這些信號做為交易、位元、數值、元件、符號、字元、樣本、像素或類似者。
但是應要注意到所有這些及類似術語係要關聯於該等適當實體數量,並僅為應用到這些數量的便利標記。除非有特定陳述,否則由以下的討論明顯地可瞭解到在整份說明書的討論中使用到像是「辨識」、「決 定」、「監視」、「閘控」或類似者皆代表一電腦系統或類似的電子運算裝置或處理器(例如圖1的系統100與圖3的微型架構300)之動作與程序(例如分別為圖4與5的流程圖400與500)。該電腦系統或類似的電子運算裝置操縱和轉換表示成在該電腦系統記憶體、暫存器、或其它這種資訊儲存器、傳輸或顯示裝置之內的實體(電子)數量的資料。
圖4和5所示為根據本發明之具體實施例中用於處理資料之電腦實作方法的示例之流程圖。雖然在該等流程圖中揭示了特定步驟,這些步驟仍為示例性。也就是說,本發明之具體實施例可良好適用於執行在該等流程圖中所述之多種其它步驟及該等步驟之變化。
此處所述之本發明的具體實施例係在設置用於監視和執行指令的硬體式組件內容中做討論。也就是說,本發明之具體實施例係實作在一微型架構的硬體元件之內,並設置成為了電力管理的目的用於監視關鍵停滯狀況和執行適當的時脈閘控。
此處所述之其它具體實施例在電腦可執行指令的一般性內容中做討論,其係常駐在由一或多個電腦或其它裝置所執行的某種型式的電腦可讀取儲存媒體上,例如程式模組。藉由範例(但非限制)電腦可讀取儲存媒體可包括非短暫性電腦儲存媒體與通信媒體。概言之,程式模組包括例行、程式、物件、組件、資料結構等,其可執行特定工作或實施特定的摘要資料型態。該等程式模組的功能在多種具體實施例中可視需要組合或分散。
電腦儲存媒體包括揮發性與非揮發性,可移除與不可移除媒體,其可用任何方法或技術實作來儲存資訊,例如電腦可讀取指令、資料 結構、程式模組或其它資料。電腦儲存媒體包括但不限於隨機存取記憶體(RAM,“Random access memory”)、唯讀記憶體(ROM,“Read only memory”)、電性可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其它記憶體技術、光碟唯讀記憶體(CD-ROM,“Compact disk ROM”)、數位多功能碟片(DVDs,“Digital versatile disks”)、或其它光學儲存器、磁碟片、磁帶、磁碟儲存器、或其它磁性儲存裝置,或任何其它可用於儲存所需要資訊以及可被存取來取回該資訊的媒體。
通訊媒體能夠實現電腦可執行指令、資料結構及程式模組,並包括任何資訊傳遞媒體。藉由範例(但非限制),通信媒體包括有線媒體,像是有線網路或直接線路連接,以及無線媒體,像是聲波、射頻(RF,“Radio frequency”)、紅外線及其它無線媒體。上述任何組合亦可包括在電腦可讀取媒體的範圍內。
圖1所示為能夠實作本發明之具體實施例的一種運算系統100之示例的方塊圖。運算系統100廣義地代表能夠執行電腦可讀取指令之任何單一或多處理器運算裝置或系統。運算系統100之示例包括但不限於工作站、膝上型電腦、用戶端終端機、伺服器、分散式運算系統、掌上型裝置、或任何其它運算系統或裝置。在其最基本的組態中,運算系統100可包括至少一處理器110與一系統記憶體140。
中央處理單元(CPU,“Central processing unit”)110與圖形處理單元(GPU,“Graphics processing unit”)120皆耦合至記憶體140。系統記憶體140概略代表任何能夠儲存資料及/或其它電腦可讀取指令的型式或型態之揮發性或非揮發性儲存裝置或媒體。系統記憶體140的示例包括但不限 於RAM,ROM、快閃記憶體、或任何其它適當記憶體裝置。在圖1的示例中,記憶體140為一共用記憶體,藉此該記憶體可儲存CPU 110與GPU 120的指令與資料。另外,分別有專屬於CPU 110與GPU 120之分開的記憶體。該記憶體可包括一訊框緩衝器用於儲存驅動一顯示螢幕130的像素資料。
系統100包括一使用者介面160,其在一種實作中包括一螢幕游標控制裝置。該使用者介面可包括一鍵盤、滑鼠及/或一觸控螢幕裝置(觸控板)。
CPU 110及/或GPU 120概略代表能夠處理資料或解譯與執行指令之任何型式或型態的處理單元。在某些具體實施例中,處理器110及/或120可自一軟體應用程式或硬體模組接收指令。這些指令可使得處理器110及/或120執行此處所述及/或所例示之該等一或多種示例性具體實施例的該等功能。例如,處理器110及/或120可以執行及/或做為一種方法來單獨或結合於其它元件執行監視、測定、閘控與偵測或此處所述之類似功能中一或多項。處理器110及/或120亦可執行及/或做為一種方法來執行此處所述及/或所例示之任何其它的步驟、方法或程序。
在一些具體實施例中,具有一電腦程式的該電腦可讀取媒體可被載入到運算系統100中。然後儲存在該電腦可讀取媒體上的該全部或一部分電腦程式可被儲存在系統記憶體140及/或儲存裝置的多個部份中。當由處理器110及/或120執行時,載入到運算系統100中的一電腦程式可以使得處理器110及/或120執行及/或做為一種方法來執行如此處所述及/或所例示的該等示例性具體實施例的該等功能。此外或另外,此處所述及/或所例示的該等示例性具體實施例可實作在韌體及/或硬體中。
圖2所示為根據本發明一具體實施例用於處理指令成為一系列相關步驟的一處理器之一示例性核心的一示例性指令管線200。管線200設置成執行直接關聯於一特定特徵或功能性的高階指令。如圖2所示,管線200顯示為一單一指令路徑,但為了增加效能,管線200可包括同時運作的多個平行資料路徑。
概言之,管線200包括用於執行多個指令的一或多個相關級,其中每一級執行一特定指令。也就是說,因為一個級的輸出被輸入到下一級,這些級便以一特定順序執行。每一指令及/或級係在一時脈循環中執行。如圖2所示,這些級概略由一相對應的執行單元來代表。例如,管線200包括一或多個執行單元,其中包括執行單元210、220、230等。更特定而言,執行單元210係位於管線200的前端處,而執行單元230係位在管線200的後端處。
在高階處,管線200的執行單元可包括但不限於指令提取單元(IFUs,“Instruction fetch units”)、指令解碼單元、執行單元、分支預測單元、算術邏輯單元(ALUs,“Arithmetic logic units”)、載入儲存單元、記憶體管理單元、單一指令、多重資料(SMID)單元和回寫單元。這些執行單元執行被設計成執行一特定功能的該微型架構的該等作業及/或計算。
此外,執行單元可經歷到一停滯狀況。例如,在管線200中的處理可在一特定執行單元處停滯,其中位在該執行單元處的一指令不能夠在該目前時脈循環期間被處理。因此,當一執行單元正經歷一停滯狀況時,管線200部份地停滯,直到該相對應執行單元能夠完成其指令,並解除其停滯的狀況。更特定而言,管線200針對該停滯的執行單元之前所 有的級進行停滯。如圖2所示,在一停滯狀況中的執行單元由一停滯狀況迴圈表示,其中該指令迴圈回來再次由該執行單元做處理。特定而言,執行單元210包括一相對應停滯狀況迴圈215,執行單元220包括一相對應停滯狀況迴圈225,而執行單元230包括一相對應停滯狀況迴圈235。
停滯狀況在微型架構之間可以改變。本發明之具體實施例設置成監視由一特定微型架構所經歷的一或多個停滯狀況。更特定而言,本發明之具體實施例設置成監視一或多個關鍵或動態停滯狀況。例如,觸發管線200一執行單元中一停滯的一種關鍵或動態停滯狀況為一轉譯後備緩衝器(TLB,“Translation lookaside buffer”)錯誤,其中對應於一請求的虛擬位址之一實體位址並未位在該TLB快取中,且亦位在一TLB L-2快取中。因此,該轉譯程序必須對一相對應頁面表執行一不執行調查以決定該適當的實體位址。另一觸發在管線200中一執行單元之停滯的動態停滯狀況為一阻障指令,其被實作來強制在記憶體作業中施加一有序限制,及/或確保在該阻障指令之前請求的所有記憶體存取皆可完成。於該阻障指令的執行期間,該相對應執行單元停滯等待該阻障指令的完成,例如當在等待來自一非常緩慢記憶體系統的回傳或認可時便會執行上述動作。又另一種觸發管線200一執行單元中一停滯的動態停滯狀況為一分支的錯誤預測,例如當該分支預測對一條件式分支有錯誤時,其即觸發管線200的一清除。當該等適當指令或正在被提取的資料並未位在存在於該晶片上的該指令快取(I-快取或L-1快取)中且亦未位在其它的晶片外較高階快取(例如L-2快取)時,該停滯狀況即轉成一長潛時錯誤,並因此為了該適當資訊而必須進入到其它較低階的快取(例如主記憶體)。另一種觸發在管線200的一執行單元中一 停滯的動態停滯狀況為請求一未經快取的載入,其中該資訊並非自快取取回,而是自該主記憶體系統取回。在意義上對一未經快取載入的請求係類似於一TLB錯誤。又有其它的關鍵或動態停滯狀況可為多種微型架構來考慮,其可針對用於電力管理的時脈閘控之目的進行辨識。
圖3為根據本發明一具體實施例設置成當偵測到一關鍵停滯狀況時藉由時脈閘控一時脈來源來中止一時脈信號的分佈以執行電力管理之一運算資源的一微型架構300之方塊圖。例如,微型架構300可設置成偵測在一管線(例如圖2的管線200)內在該等指令之執行當中的關鍵停滯狀況。
如圖3所示,微型架構300包括一設置成提供一時脈信號的一時脈來源360。例如,時脈來源360為一相位鎖定迴路(PLL,“Phase lock loop”),其在一種實作中可產生該時脈信號。此外,該時脈信號經由一分佈網路而被分佈到整個微型架構300當中。例如,該時脈分佈網路包括用於分佈該時脈信號到一處理器的一核心305的時脈網格310,其中該處理器可包括一或多個核心,雖然在圖3中僅顯示該處理器的核心305。更特定而言,核心305包括一或多個時控的組件(例如組件330,340等),其每一者藉由時脈網格315所分佈的該時脈信號來在運作中同步化。
時脈網格315係代表任何一種的一些分佈網路或樣式。概言之,該時脈網格設置成同時分佈一時脈信號在整個核心305當中,例如部份藉由在當其被分佈時最小化該時脈信號的偏斜。時脈網格315的示例包括一二元樹、一H樹、一X樹等。
如圖3所示,分佈在整個核心305中的該時脈信號由一或多 個時控的組件接收,其中包括時控組件330與時控組件340。時控的組件設置成執行一或多個功能,且在一具體實施例中為硬體式。在一種實作中,時控組件包括一執行單元,如先前圖2中所介紹,或是關聯於或設置成監視一執行單元的一組件。
例如,在一具體實施例中,時控組件330包括一監視器335,用於偵測核心305的一時控組件內一關鍵停滯狀況。在一種實作中,監視器335為硬體式,並設置成監視時控組件330的一預先定義的狀況或狀態。例如,監視器335設置成監視快取錯誤,其中時控組件包括一L-2 I-快取,並設置成偵測指令何時會關聯於一I-快取錯誤與一L-2 I-快取錯誤,藉以在核心305的該管線內引致一長潛時周期。
在另一具體實施例中,時控組件330主要包括和執行為監視器335。也就是說,監視器335設置成監視遠離時脈組件330的另一裝置之狀態。例如,監視器335可設置成監視一執行單元的活動與回應,如先前在圖2中所介紹者。繼續先前所提供的該示例,監視器335可以監視一分開設置的時控組件之狀態,例如一L-2 I-快取。
此外,微型架構300包括一時脈網格控制單元320,用於管理來自時脈來源360的該時脈信號之分佈。特別是,時脈網格控制單元320電性耦合至核心305,更特定而言,耦合至核心305的一或多個監視器(例如監視器335與345)。因此,時脈網格控制單元320能夠接收來自核心305中該等每一監視器之訊息,用於指示時脈網格控制單元320在時脈網格310的一根分支317處時脈閘控該時脈網格310。根分支317分佈來自時脈來源360的該時脈信號。藉由閘控根分支317,時脈網格控制單元320設置成於 由一相對應監視器辨識出的一關鍵停滯狀況期間中止將該時脈信號分佈到核心305。
如圖3所示,時脈網格控制單元320並不位在時脈網格310中供應一時脈信號到核心305的該部份上。特別是,時脈網格控制單元310係與時脈來源360分開地閘控,其係相較於經由根分支317自時脈來源360時脈閘控核心305。依此方式,即使根分支317被時脈閘控,而時脈網格控制單元310並非且仍接收來自時脈來源360的一時脈信號。此外,時脈來源360、時脈網格控制單元320、外部單元380(例如記憶體系統)、與回應監視器325和370皆位在核心305之外部,如劃界350所示。
亦如圖3所示,微型架構300包括一回應監視器用於監視對應於該關鍵或動態停滯狀況的回應。例如,回應監視器設置成監視對於由該停滯狀況所產生之指令的回應(例如由於一TLB錯誤而存取一實體位址),以包括自一外部單元380(例如記憶體系統)存取資訊。更特定而言,在一具體實施例中,回應監視器325係位在時脈網格控制單元310之內。在另一具體實施例中,回應監視器370為一獨立運作單元,其與時脈網格控制單元320隔開,並電性耦合至時脈網格控制單元320。此外,回應監視器325與370係位在核心305的外部,其中它們係位在與供應時脈信號到核心305的根分支317不同的一分支(例如根分支)上。依此方式,即使該時脈信號於根分支317處被閘控,該時脈信號並未被抑制於回應監視器325及/或370,即使該時脈信號並未傳遞給核心305。依此方式,一旦一回應被辨識為關聯於該關鍵或動態停滯狀況,該相對應回應監視器便設置成通知時脈網格控制單元320來於時脈網格310的根分支317處解除時脈閘控時脈網 格310。因此,當該回應回傳時,該接收的時控組件被重新供電,因為核心305再次地接收該時脈信號。
在一具體實施例中,回應監視器325及/或370設置成辨識一唯一的交易識別,其對應於由該停滯狀況產生及/或強制該停滯狀況的該指令,以及對該指令之該回應。例如,該交易識別為一記憶體位址。在另一實例中,該交易識別為由該交易產生的一多位元數字,其基本上使用比一記憶體位址所需要的位元要少的位元。因此,該回應監視器能夠針對該交易識別,監視來自該外部單元(例如記憶體系統)380與時脈網格控制單元相關聯的回應。在辨識外部單元380中使用的術語「外部」(external)代表單元380在核心305之外部,更特定而言為在與供應該時脈給核心305的根分支317不同的一分支上(例如根分支)。依此方式,即使該時脈信號於根分支371處被閘控,該時脈信號並未被抑制到外部單元380,即使該時脈信號並未傳遞到核心305。一旦一回應被決定係包括該交易識別,該回應監視器(例如監視器325與370)設置成指示時脈網格控制單元320來解除閘控或解除時脈閘控該時脈網格以在準備於核心305的該對應時控組件(例如執行單元)中接收該回應時使得該時脈信號可分佈到核心305。
圖4為根據本發明一具體實施例一種用於當偵測到一關鍵停滯狀況時,藉由時脈閘控一時脈來源來中止一時脈信號的分佈以執行電力管理之方法的流程圖400。在一具體實施例中,於流程圖400中概述的方法可實作在圖3的微型架構300之內,其設置成決定一關鍵及/或動態停滯狀況,並啟始一電力管理序列,包括閘控的一時脈來源。
在410,偵測到一關鍵及/或動態停滯狀況,其中預測有一長 的潛時周期。例如,位在一處理器的一核心內的該硬體式監視器係設置成監視一硬體裝置的特定狀態狀況,如前所述(例如TLB錯誤等)。該核心包括一或多個時控組件或硬體裝置,其在操作上透過一時脈網格分佈的一時脈信號同步化。這些時控組件包括會受到長潛時關鍵停滯狀況影響的多種單元(例如IFU,記憶體管理單元、載入儲存單元等)。該等監視器設置成監視在該等時控組件之內那些關鍵及/或動態停滯狀況。在一具體實施例中,一監視器被包括在被監視的該相對應時控組件之內。在另一具體實施例中,該監視器係在被監視的該相對應時控組件之外部。同時,該硬體式監視器在一種實作中可以包括圖3的監視器335與345。
關鍵停滯狀況可由它們的長潛時特性來辨識,如同在一或多種微型架構中所經歷者。例如,偵測一關鍵停滯狀況可以包括偵測以下狀況中一或多者:1)一管線的清除,例如當發生一分支預測錯誤時;2)一I-快取錯誤與一L-2快取錯誤。在當該管線清除的狀況中,該核心包括該管線,其中該管線包括該等時控組件之一或多者。在一具體實施例中,該監視器係位在該I-快取中,其能夠偵測上述狀況中一或多者。其它關鍵停滯狀況包括但不限於下列:1)一或多種以下狀況,例如一I-快取錯誤與一L-2快取錯誤;2)一TLB錯誤與一L-2快取錯誤;一未快取載入的提取;及一阻障指令。在一具體實施例中,該記憶體系統設置成當一錯誤為一長潛時錯誤(例如錯失該最後一階快取)時通知該監視器。
在420,該時脈網格被時脈閘控來於該關鍵停滯狀況期間中止將該時脈信號分佈到該核心。也就是說,電力管理藉由閘控該時脈信號來達成,使得該時脈信號被避免分佈到整個該核心當中。因此,在該核心 中的時控組件將不會汲取電力,或將可最小化地汲取電力。
更特定而言,被設置成監視相對應的時控組件之該等監視器能夠在當例如偵測到一關鍵停滯之後時脈閘控該時脈網格時可通知一時脈網格控制單元。也就是說,該監視器能夠通知該時脈網格控制單元來基於對一外部單元(例如該記憶體系統)的一等待中交易來於一根分支處時脈閘控該時脈網格。更特定而言,該根分支設置成將該時脈信號分佈到該核心,使得閘控該根分支亦可防止該時脈信號被分佈到整個該核心當中。依此方式,如果對於足夠關鍵的記憶體存在有一長潛時錯誤或其它關鍵停滯狀況,該核心處理器將於該停滯周期期間將執行少許或不執行有用的工作,關聯於該核心的該時脈網格於該根分支處被閘控。此可節省被該等多個閒置的時控組件所使用的啟動電力,亦可節省正被分佈到整個該時脈網格的該時脈之動態電力。
該時脈網格控制單元耦合於提供回應給該等待中交易的該外部單元(例如記憶體系統)。以外,該時脈網格控制單元係位在不會被中止的該時脈網格的一分支上,但在整個該關鍵停滯狀況當中皆啟動。例如,關聯於該時脈網格控制單元的一回應監視器設置成監視在該等待中交易串流中的回應,並以及時的方式解除時脈閘控該時脈網格,使得該相對應回應到達在透過該時脈信號的分佈而適當地啟動之該網格中該相對應時控組件。經協調的解除該時脈網格的時間在該記憶體與該核心之間的一同步介面中特別地重要,使得該時脈網格在該回應被傳遞至該核心之前被解除時脈閘控。更特定而言,一旦該回應被該回應監視器及/或該時脈網格控制單元辨識出來,一指令被傳送到該時脈網格控制單元來解除時脈閘控該時脈 網格(例如解除時脈閘控該根分支)。
在一具體實施例中,該回應透過使用一交易識別來辨識。特別是,一交易識別係關聯於該等待中的交易而產生,例如強制該關鍵停滯狀況的一指令。例如,該指令可為在當一錯誤預測的狀況下取得該適當資料或指令之指令。於該關鍵停滯狀況期間,來自記憶體的回應由關聯於該時脈網格控制單元的該回應監視器所監視。特別是該等回應被監視來辨識對該交易識別的該回應何時被傳回。當決定對該適當交易識別的一回應已經由該記憶體系統傳回時,針對要由現在啟動的該適當時控組件所接收的該回應,該時脈網格被解除時脈閘控來使得該時脈信號可及時地分佈到該核心。
在本發明的具體實施例中,該時脈網格被暫時地解除時脈閘控來暫時地使得該時脈信號分佈到該核心用於處理關連該核心的選出之進入的交易。例如,該時脈網格控制單元設置成當收到該回應時即離開該自動電力管理狀態,如前所述,但亦設置成暫時地重新致能該時脈網格來處理進入的請求。例如,該時脈網格被暫時地重新致能來處理一致性複檢,並接受對於當該時脈網格被閘控時尚未處理的非關鍵性交易之回應(例如未處理的預提取)。
圖5為根據本發明一具體實施例的一種用於執行電力管理之方法的流程圖500,當一指令已經被傳送之後且在偵測到或接收到對該指令的一回應之前一計數器已經到達一臨界值時,藉由時脈閘控一時脈來源來中止一時脈信號的分佈。在一具體實施例中,於流程圖500中概述的方法可實作在圖3的微型架構300之內,其設置成決定一關鍵及/或動態停滯 狀況,並啟始一電力管理序列,包括有閘控一時脈來源。
在510,該方法包括偵測到一指令何時由一處理單元的一核心的一時控組件所傳送,其中該指令係關連於一等待中交易。該核心包括一或多個時控組件或硬體裝置,其在操作上與由一時脈網格分佈的一時脈信號同步化。這些時控組件包括會受到長潛時關鍵停滯狀況影響的多種單元(例如IFU,記憶體管理單元、載入儲存單元等)。該偵測到的指令可被預先定義,或在被選擇來在該時控組件之內偵測的一指令群組當中,其在一具體實施例中皆已知會在某個時間易受到長潛時停滯的影響。在其它具體實施例中,該指令可為來自該時控組件的任何指令。也就是說,任何指令皆預先假設為易受到長潛時停滯的影響,亦要為了電力管理的目的而考慮要時脈閘控該時脈來源。
在一具體實施例中,該指令由未在該核心處理器內的一硬體式監視器做監視,並設置成監視一般或特定的指令。例如,該等監視器設置成監視關於關聯於在該處理器核心中該等時控組件的等待中交易之該指令。在一具體實施例中,一監視器被包括在被監視的該相對應時控組件之內,例如時控組件330的監視器335,和時控組件340的監視器345。在另一具體實施例中,該監視器在被監視的該相對應時控組件之外部。
當偵測到該指令時,於520開始一計數器。該計數器提供一指示該指令與任何關聯於該指令的回應是否為一關鍵或動態停滯狀況的特徵。該計數器於每一新的時脈循環時遞增。在一具體實施例中,該計數器被包括在被監視的該相對應時控組件之內,例如組件330的計數器337,和組件340的計數器347。在另一具體實施例中,該計數器在被監視的該相對 應時控組件之外部。在又其它的具體實施例中,該計數器被包括在該相對應監視器之內或在該相對應監視器之外部。
在530,關連於該指令的交易被監視。例如,一交易及/或耦合於該計數器的回應監視器被設置成監視在該等待中的交易串流中關連於該指令的交易與回應。在另一具體實施例中,該監視被實作在該核心外部,使得交易(例如回應)的監視即使該核心已經為了電力管理的目的被時脈閘控時亦可發生。也就是說,該交易或回應監視器係位在當供應一時脈信號給該核心的該根分支已經被閘控時未被中止的該時脈網格的一分支上。此外,該交易或回應監視器設置成監視在該等待中交易串流中的交易與回應。在一具體實施例中,該交易或回應監視器為了監視在該等待中交易串流中的交易與回應之目的而被耦合於一記憶體系統。
在540,該計數器能夠決定在偵測到關連於在該等待中交易串流中該指令的一交易或回應之前何時會到達一臨界值。也就是說,當該計數器到達該臨界值時,非常有可能該等待中交易串流證在經歷一關鍵及/或動態停滯狀況。另一方面,如果關連於在該等待中交易串流中該指令的一交易或回應在該計數器到達一臨界值之前被偵測到,則該計數器被重置以在關聯於另一個偵測到的指令來使用。也就是說,該微型架構或是該微型架構的該時控組件在該等待中交易串流之下目前並未經歷一關鍵及/或動態停滯狀況。
在550,當該計數器於偵測到關連於該指令的一交易或回易之前到達一臨界值時,藉由於一根分支處時脈閘控該時脈網格來實施電力管理技術以於該關鍵停滯狀況期間中止將該時脈信號分佈到該核心。換言 之,電力管理藉由閘控該時脈信號來達成,使得該時脈信號被避免分佈到整個該核心當中。在此例中,在該核心中的時控組件將不會汲取電力,或將可最小化地汲取電力。更特定而言,該計數器設置成當於該根分支處時脈閘控該時脈網格時(例如當該計數器到達該臨界值時)通知一時脈網格控制單元。因此,當存在該關鍵停滯狀況時,於該停滯周期期間,因為有效電力的使用藉由在該核心中該等多個閒置的時控組件,且亦藉由閘控關連於正在被分佈到整個該時脈網格當中的該時脈信號之動態電力的使用而可最小化,因此該核心處理器將會執行少許或不會執行有用的工作。
如前所述,該時脈網格控制單元耦合於提供對關連於該指令的該等待中交易之交易和回應的該外部單元(例如記憶體系統)。以外,該時脈網格控制單元係位在不會被中止的該時脈網格的一分支上,但在整個該關鍵停滯狀況當中皆啟動。此外,該交易與回應監視器係類似地設置,使得其位在未被中止且在整個該關鍵停滯周期當中皆啟動的該時脈網格的一分支上。因此,一旦偵測到關連於在該等待中交易串流中該指令的一交易或回應時,該監視器被設置成指示該時脈網格控制單元來以及時的方式解除時脈閘控該時脈網格(例如解除時脈閘控該根分支)。依此方式,於該相對應交易或回應到達在該網格中該相對應時控組件之前,該核心處理器皆為啟動。經協調的解除該時脈網格的時間在該記憶體與該核心之間的一同步介面中特別地重要,使得該時脈網格在該回應被傳遞至該核心之前被解除時脈閘控。
在一具體實施例中,關連於在該等待中交易串流中該指令的該交易或回應透過使用一交易識別來辨識。特別是,一交易識別係關聯於 該等待中的交易而產生,例如關連於強制該關鍵停滯狀況的該指令。於該關鍵停滯狀況期間,來自記憶體或任何其它外部單元的交易與回應皆由關聯於該時脈網格控制單元的該回應監視器所監視。特別是,該等回應被監視來辨識何時偵測到具有相同交易識別的該交易或回應。
因此,根據本發明之具體實施例,系統與方法係描述成在經辨識的關鍵和動態停滯狀況之下為了對一處理器的一核心進行電力管理的目的一時脈網格於一根分支處自動地被閘控。本發明之具體實施例包括決定一微型架構的一核心係存在有一關鍵及/或動態停滯狀況,並自動地/自主地啟始一電力管理序列。
前述的說明內容提出多種具體實施例,其中使用了特定的方塊圖、流程圖和示例,每一方塊圖元件、流程圖步驟、作業、及/或所描述的組件、及/或此處所例示者,皆可使用廣大範圍的硬體、軟體或韌體(或其任何組合)組態來被個別地及/或共同地實作。此外,在其它組件內包括的組件之任何揭示內容必須視為示例,因為可以實作出許多其它的架構來達到相同的功能。
此處所描述及/或例示之步驟的該等處理參數和順序皆為示例性,並可視需要做改變。例如,此處所例示及/或描述的該等步驟可用一特定順序顯示或討論,但這些步驟並不必須以所例示或討論的順序來執行。此處所描述及/或例示的該等多種示例性方法亦可省略此處所描述或例示的該等步驟之一或多者,或可包括除了那些經揭示者之外的額外步驟。
多種具體實施例已經在此處以完整功能性的運算系統之內容來做描述及/或例示,但這些示例具體實施例中一或多者可用多種型式的 程式產品來散佈,不論用於實際上進行該散佈係使用特定種類的電腦可讀取媒體。此處所揭示的該等具體實施例亦可使用執行某些任務的軟體模組來實作。這些軟體模組可包括腳本、批次檔、或其它可執行檔案,其可被儲存在一電腦可讀取儲存媒體上或在一運算系統中。這些軟體模組可以設置一運算系統來執行此處所揭示的該等示例具體實施例中一或多者。此處所揭示的該等軟體模組中一或多者可被實作在一雲端運算環境中。雲端運算環境可以經由網際網路提供多種服務和應用程式。這些雲端式服務(例如軟體做為服務、平台做為服務、基礎設施等)可透過一網頁瀏覽器或其它遠端介面進行存取。此處所述之多種功能可經由一遠端桌上型環境或任何其它雲端式運算環境來提供。
為了解釋的目的,前述的內容已經參照特定具體實施例來說明。但是,以上之例示性討論並非窮盡式或限制本發明於所揭示之明確型式。在以上的教示之下可瞭解其有可能許多修改及變化。該具體實施例係被選擇及描述來最佳地解釋本發明及其實際應用的原理,藉此使得本技藝中其它專業人士可在多種具體實施例及多種修正中最佳地利用本發明,使其可適用於所考慮的特定用途。
至此已經說明了根據本發明的具體實施例。當本發明已經於特定具體實施例中說明時,必須瞭解到本發明不應視為受到這些具體實施例所限制,而是根據以下申請專利範圍所限制。
300‧‧‧微型架構
305‧‧‧核心
310‧‧‧時脈網格
315‧‧‧時脈網格
320‧‧‧時脈網格控制單元
325‧‧‧回應監視器
330‧‧‧時控組件
335‧‧‧監視器
337‧‧‧計數器
340‧‧‧時控組件
345‧‧‧監視器
347‧‧‧計數器
350‧‧‧劃界
360‧‧‧時脈來源
370‧‧‧回應監視器
380‧‧‧外部單元(例如:記憶體系統)

Claims (15)

  1. 一種電力管理方法,其包括:偵測在一處理單元的一核心之一時控組件之內的一關鍵停滯狀況,該關鍵停滯狀況係由該處理單元的該核心之一長潛時特性來辨識,其中該核心包括在運作中由一時脈網格所分佈的一時脈信號進行同步化的一或多個時控組件;及時脈閘控該時脈網格來於該關鍵停滯狀況期間中止將該時脈信號分佈到該核心。
  2. 如申請專利範圍第1項之方法,其中該偵測包括:於一硬體式監視器處偵測該關鍵停滯狀況,其中該時控組件包括該硬體式監視器。
  3. 如申請專利範圍第2項之方法,其中該偵測一關鍵停滯狀況包括:於該監視器處偵測一管線的清除,其中該核心包括具有一或多個該等時控組件的該管線,且其中該時控組件包括一I-快取;偵測一I-快取錯誤;及偵測一L-2錯誤。
  4. 如申請專利範圍第1項之方法,其中該時脈閘控包括:於該時脈網格的一根分支處閘控該時脈信號,其中該根分支分佈該時脈信號給該核心。
  5. 如申請專利範圍第1項之方法,其中該時脈閘控包括: 傳送一指令至一時脈控制單元以時脈閘控該時脈信號,其中該時脈控制單元係位在未被中止的該時脈網格之一分支上。
  6. 如申請專利範圍第5項之方法,另包括:決定強制該關鍵停滯狀況的一指令的一交易識別;關聯於該時脈網格控制單元來監視來自該交易識別的記憶體之回應;決定一回應包括該交易識別;及解除時脈閘控該時脈網格來使得該時脈信號可分佈到該核心。
  7. 如申請專利範圍第6項之方法,其中該解除時脈閘控該時脈網格另包括:在該記憶體與該核心之間的一同步介面中,在該回應被傳遞到該核心之前解除時脈閘控該時脈網格。
  8. 如申請專利範圍第1項之方法,另包括:暫時地解除時脈閘控該時脈網格以暫時地使得該時脈信號可分佈到該核心用於處理關於該核心之選出的進入交易。
  9. 如申請專利範圍第1項之方法,其中該關鍵停滯狀況係自基本上由以下狀況構成的一群組中取得:一管線清除、一I-快取錯誤與一L-2快取錯誤;在L1快取與L2快取中一經快取的資料載入錯誤; 一TLB錯誤與一L-2快取錯誤;一未經快取的載入之提取;及一阻障指令。
  10. 如申請專利範圍第1項之方法,其中該時控組件係自基本上由以下組件構成的一群組中取得:一載入儲存單元;一指令提取單元;及記憶體管理單元。
  11. 如申請專利範圍第1項之方法,其中該偵測一關鍵停滯狀況包括:偵測何時自一處理單元的一核心之一時控組件傳送一指令,其中該核心包括在運作中由一時脈網格所分佈的一時脈信號進行同步化的一或多個時控組件;啟始一計數器;監視來自一記憶體的交易中對於該指令的一回應;及決定該計數器在偵測到該回應之前何時到達一臨界值。
  12. 一種電力管理裝置,其包括:提供依時脈信號的一時脈來源;一時脈網格;一處理單元的一核心,其中該核心包括在運作中由該時脈網格所分佈的該時脈信號進行同步化的一或多個時控組件; 一硬體式監視器,用於偵測在該核心的一時控組件內一關鍵停滯狀況,其中該時控組件包括該硬體式監視器;一時脈網格控制單元,用於在該時脈網格的一根分支處時脈閘控該時脈網格以於該關鍵停滯狀況期間中止將該時脈信號分佈到該核心,其中該根分支分佈該時脈信號給該核心。
  13. 如申請專利範圍第12項之裝置,其中該時脈來源包括一相位鎖定迴路電路,且其中該時脈網格控制單元係位在與該根分支不同的一分支上。
  14. 如申請專利範圍第12項之裝置,其中該時脈網格控制單元設置成執行以下的作業:決定強制該關鍵停滯狀況的一指令的一交易識別;關聯於該時脈網格控制單元來監視來自該交易識別的記憶體之回應;決定一回應包括該交易識別;及解除時脈閘控該時脈網格來使得該時脈信號可分佈到該核心。
  15. 如申請專利範圍第12項之裝置,其中該時控組件係自基本上由以下組件構成的一群組中取得:一載入儲存單元;一指令提取單元;及記憶體管理單元。
TW102129109A 2012-08-15 2013-08-14 在時脈來源的時脈網格之自動時脈閘控方法及系統 TWI502309B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/586,517 US9323315B2 (en) 2012-08-15 2012-08-15 Method and system for automatic clock-gating of a clock grid at a clock source

Publications (2)

Publication Number Publication Date
TW201426242A TW201426242A (zh) 2014-07-01
TWI502309B true TWI502309B (zh) 2015-10-01

Family

ID=50083186

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102129109A TWI502309B (zh) 2012-08-15 2013-08-14 在時脈來源的時脈網格之自動時脈閘控方法及系統

Country Status (4)

Country Link
US (1) US9323315B2 (zh)
CN (1) CN103592997A (zh)
DE (1) DE102013216237B4 (zh)
TW (1) TWI502309B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9377836B2 (en) * 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
KR102280734B1 (ko) 2014-12-09 2021-07-21 삼성전자주식회사 시스템 온 칩과 이를 포함하는 모바일 전자 기기
US10761559B2 (en) * 2016-12-13 2020-09-01 Qualcomm Incorporated Clock gating enable generation
KR102576707B1 (ko) 2016-12-26 2023-09-08 삼성전자주식회사 전자 시스템 및 그 동작 방법
US10782729B2 (en) * 2017-11-30 2020-09-22 Intel Corporation Clock signal modulation for processors
KR102530347B1 (ko) * 2018-01-08 2023-05-08 삼성전자주식회사 반도체 장치 및 반도체 시스템
US11269650B2 (en) * 2018-12-29 2022-03-08 Texas Instruments Incorporated Pipeline protection for CPUs with save and restore of intermediate results
CN110569596B (zh) * 2019-09-02 2023-05-23 飞腾信息技术有限公司 片上系统的混合时钟树结构

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005124861A1 (en) * 2004-06-10 2005-12-29 Sun Microsystems, Inc. Memory metal springs for heatsink attachments
US20070074059A1 (en) * 2005-09-27 2007-03-29 Abernathy Christopher M System and method for dynamic power management in a processor design
CN101231631A (zh) * 2008-01-18 2008-07-30 清华大学 基于快速空间插值的电力系统实时节点数据三维可视化方法
TW200843279A (en) * 2007-01-09 2008-11-01 Dell Products Lp Power distribution system including a control module and a method of using the system
TW200924423A (en) * 2007-10-10 2009-06-01 Nokia Corp Apparatus, method, and computer program product providing improved power management in wireless networks
US8055884B2 (en) * 2005-09-19 2011-11-08 Synopsys, Inc. Method and apparatus for augmenting a pipeline with a bubble-removal circuit

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966539A (en) 1994-03-01 1999-10-12 Digital Equipment Corporation Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis
US5643086A (en) 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
NO302388B1 (no) 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6016474A (en) 1995-09-11 2000-01-18 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US5752062A (en) 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5815154A (en) 1995-12-20 1998-09-29 Solidworks Corporation Graphical browser system for displaying and manipulating a computer model
US5978484A (en) 1996-04-25 1999-11-02 Microsoft Corporation System and method for safety distributing executable objects
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US5892904A (en) 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US6668325B1 (en) 1997-06-09 2003-12-23 Intertrust Technologies Obfuscation techniques for enhancing software security
US5920725A (en) 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US5970147A (en) 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6233690B1 (en) * 1998-09-17 2001-05-15 Intel Corporation Mechanism for saving power on long latency stalls
US6226756B1 (en) * 1998-11-03 2001-05-01 Integrated Device Technology, Inc. Apparatus and method for providing a common system interface for processors
TW410290B (en) 1999-01-08 2000-11-01 Via Tech Inc Cross-banks and -pages access control device and method for memory
US6362825B1 (en) 1999-01-19 2002-03-26 Hewlett-Packard Company Real-time combination of adjacent identical primitive data sets in a graphics call sequence
US6157618A (en) 1999-01-26 2000-12-05 Microsoft Corporation Distributed internet user experience monitoring system
US6378066B1 (en) 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7383205B1 (en) 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6684389B1 (en) 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
EP1212706B1 (en) 1999-08-19 2007-02-21 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
US6385757B1 (en) 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
GB2355899A (en) 1999-10-29 2001-05-02 Oak Technology Inc Multistage digital processor with dedicated stage clock controllers
US6901582B1 (en) 1999-11-24 2005-05-31 Quest Software, Inc. Monitoring system for monitoring the performance of an application
US20010034835A1 (en) 2000-02-29 2001-10-25 Smith Robert E. Applied digital and physical signatures over telecommunications media
JP2001325103A (ja) 2000-05-16 2001-11-22 Denso Corp シミュレータ作成方法、シミュレータ作成装置およびシミュレータの作成支援方法
US6965994B1 (en) 2001-01-30 2005-11-15 Microsoft Corporation Security mechanism for computer processing modules
US7016972B2 (en) 2001-04-23 2006-03-21 International Business Machines Corporation Method and system for providing and viewing performance analysis of resource groups
US6943800B2 (en) 2001-08-13 2005-09-13 Ati Technologies, Inc. Method and apparatus for updating state data
US20030043022A1 (en) 2001-08-31 2003-03-06 Burgan John M. Messaging system providing message redundancy reduction
US7047519B2 (en) 2001-09-26 2006-05-16 International Business Machines Corporation Dynamic setting of breakpoint count attributes
US7749076B2 (en) 2002-09-13 2010-07-06 Bally Gaming, Inc. System and method for an alterable storage media in a gaming machine
US6976181B2 (en) * 2001-12-20 2005-12-13 Intel Corporation Method and apparatus for enabling a low power mode for a processor
US7398389B2 (en) 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
US7401116B1 (en) 2002-03-29 2008-07-15 Silicon Graphics, Inc. System and method for allowing remote users to specify graphics application parameters for generation of interactive images
US6732060B1 (en) 2002-05-06 2004-05-04 Adaptec, Inc. System and method for an interface invariant test case
US7436531B2 (en) 2002-05-14 2008-10-14 Xerox Corporation Systems and methods for using multiple processors for imaging
JP2004046599A (ja) 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7207024B2 (en) 2002-09-13 2007-04-17 Cadence Design Sytems, Inc. Automatic insertion of clocked elements into an electronic design to improve system performance
US7260066B2 (en) 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
US7237151B2 (en) 2002-12-17 2007-06-26 Texas Instruments Incorporated Apparatus and method for trace stream identification of a processor reset
CA2418670A1 (en) 2003-02-11 2004-08-11 Ibm Canada Limited - Ibm Canada Limitee Method and system for generating executable code for formatiing and printing complex data structures
US7565551B2 (en) 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
US7173635B2 (en) 2003-03-25 2007-02-06 Nvidia Corporation Remote graphical user interface support using a graphics processing unit
KR100755683B1 (ko) 2003-05-07 2007-09-05 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장 방법
US7505953B2 (en) 2003-07-11 2009-03-17 Computer Associates Think, Inc. Performance monitoring of method calls and database statements in an application server
US7277826B2 (en) 2003-08-25 2007-10-02 International Business Machines Corporation Apparatus and method for detecting and forecasting resource bottlenecks
US7095416B1 (en) 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing
US7831838B2 (en) 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20050222881A1 (en) 2004-04-05 2005-10-06 Garry Booker Management work system and method
US7570267B2 (en) 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7730456B2 (en) 2004-05-19 2010-06-01 Sony Computer Entertainment Inc. Methods and apparatus for handling processing errors in a multi-processing system
US7203922B2 (en) 2004-06-01 2007-04-10 Agilent Technologies, Inc. Merging of infrastructure within a development environment
US7555499B2 (en) 2004-08-17 2009-06-30 Oracle International Corporation Diagnosing database performance problems using a plurality of wait classes
US7802110B2 (en) 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7249331B2 (en) 2004-10-07 2007-07-24 International Business Machines Corporation Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores
US8379553B2 (en) 2004-11-22 2013-02-19 Qualcomm Incorporated Method and apparatus for mitigating the impact of receiving unsolicited IP packets at a wireless device
JP2006153628A (ja) 2004-11-29 2006-06-15 Shimadzu Corp 分析データ管理装置及び分析データ管理プログラム
US7805765B2 (en) 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
GB0516457D0 (en) 2005-08-10 2005-09-14 Symbian Software Ltd Reversible power transitions in a computing device
US8817029B2 (en) 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US7891012B1 (en) 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US7627730B1 (en) 2006-05-02 2009-12-01 Sun Microsystems, Inc. System and method for optimizing a memory controller
US7688809B2 (en) 2006-05-03 2010-03-30 Cisco Technology, Inc. Media inactivity detection in VoIP networks
US20080007563A1 (en) 2006-07-10 2008-01-10 Microsoft Corporation Pixel history for a graphics application
CN101449225B (zh) * 2006-07-18 2010-10-13 艾格瑞系统有限公司 用于模块化功率管理的系统和方法
US7778800B2 (en) 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
KR100781705B1 (ko) 2006-10-24 2007-12-03 삼성전자주식회사 이동통신 단말기에서 모드 제어 장치 및 방법
US8095761B1 (en) 2007-02-27 2012-01-10 Nvidia Corporation Low latency synchronous memory performance switching
US7765500B2 (en) 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
KR101464741B1 (ko) * 2007-12-12 2014-11-24 엘지전자 주식회사 전원관리 제어 장치 및 방법
US8448002B2 (en) 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US8656198B2 (en) 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8327172B2 (en) 2010-06-23 2012-12-04 Intel Corporation Adaptive memory frequency scaling
US8438410B2 (en) 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
US9104423B2 (en) * 2012-05-16 2015-08-11 Nvidia Corporation Method and system for advance wakeup from low-power sleep states
US9104421B2 (en) 2012-07-30 2015-08-11 Nvidia Corporation Training, power-gating, and dynamic frequency changing of a memory controller
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005124861A1 (en) * 2004-06-10 2005-12-29 Sun Microsystems, Inc. Memory metal springs for heatsink attachments
US8055884B2 (en) * 2005-09-19 2011-11-08 Synopsys, Inc. Method and apparatus for augmenting a pipeline with a bubble-removal circuit
US20070074059A1 (en) * 2005-09-27 2007-03-29 Abernathy Christopher M System and method for dynamic power management in a processor design
TW200843279A (en) * 2007-01-09 2008-11-01 Dell Products Lp Power distribution system including a control module and a method of using the system
TW200924423A (en) * 2007-10-10 2009-06-01 Nokia Corp Apparatus, method, and computer program product providing improved power management in wireless networks
CN101231631A (zh) * 2008-01-18 2008-07-30 清华大学 基于快速空间插值的电力系统实时节点数据三维可视化方法

Also Published As

Publication number Publication date
DE102013216237A1 (de) 2014-11-27
US20140053008A1 (en) 2014-02-20
TW201426242A (zh) 2014-07-01
CN103592997A (zh) 2014-02-19
DE102013216237B4 (de) 2024-10-24
US9323315B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
TWI502309B (zh) 在時脈來源的時脈網格之自動時脈閘控方法及系統
US10503542B2 (en) Systems, methods and devices for work placement on processor cores
TWI808506B (zh) 用於使用者等級執行緒暫止的方法、處理器及系統
US9256428B2 (en) Load latency speculation in an out-of-order computer processor
KR101802140B1 (ko) 제1 및 제2 처리 회로 간 작업 부하를 스위칭하는 데이터 처리 장치 및 방법
JP5932044B2 (ja) 消費電力を低減する優先度に基づくアプリケーションイベント制御(paec)
US9026824B2 (en) Establishing power save mode in hypervisor system
US9575778B2 (en) Dynamically configurable system based on cloud-collaborative experimentation
US20130311797A1 (en) Method and system for advance wakeup from low-power sleep states
KR20130062999A (ko) 이종 멀티프로세서 컴퓨팅 플랫폼 내에서의 애플리케이션 스케줄링
US20150286491A1 (en) Methods for Compilation, a Compiler and a System
JP2015507772A (ja) マルチコアプラットフォームにおける制約ブート法
US20140282587A1 (en) Multi-core binary translation task processing
TWI512629B (zh) 用於表格驅動之多重被動跳脫平台被動熱管理之設備及方法、計算系統及電腦可讀媒體
Oboril et al. High-resolution online power monitoring for modern microprocessors
KR101822726B1 (ko) 로드 리플레이를 억제하는 메커니즘
US9755902B2 (en) Dynamic system configuration based on cloud-collaborative experimentation
US9384036B1 (en) Low latency thread context caching
JP2013534670A (ja) 複数の論理コアを備えるマイクロプロセッサにおけるアプリケーション実行再開時のメモリアクセス最適化方法および該方法を実行するコンピュータプログラム
EP3475783B1 (en) Systems, methods and devices for standby power entry without latency tolerance information
JP5881198B2 (ja) 優先度ベースのインテリジェントプラットフォームの受動的熱管理
US20200264925A1 (en) Systems, methods and devices for standby power savings
KR101837817B1 (ko) 비순차 프로세서에서 페이지 워크에 따라 로드 리플레이를 억제하는 메커니즘
KR101819316B1 (ko) 비순차 프로세서에서 캐시 불가­의존 로드 리플레이를 억제하는 메커니즘
WO2024137551A1 (en) Dynamic configuration of processor sub-components