TW201712553A - 用於在經曝露快取停止運作時有效之時脈調整之方法及裝置 - Google Patents

用於在經曝露快取停止運作時有效之時脈調整之方法及裝置 Download PDF

Info

Publication number
TW201712553A
TW201712553A TW105129086A TW105129086A TW201712553A TW 201712553 A TW201712553 A TW 201712553A TW 105129086 A TW105129086 A TW 105129086A TW 105129086 A TW105129086 A TW 105129086A TW 201712553 A TW201712553 A TW 201712553A
Authority
TW
Taiwan
Prior art keywords
state
processor
register
pipeline
load instruction
Prior art date
Application number
TW105129086A
Other languages
English (en)
Inventor
西望姆 普立亞達爾西
阿尼爾 克裡希納
瑞谷藍 達莫達倫
傑佛瑞 泰德 布萊奇
湯瑪仕 菲利浦 史派爾
羅德尼 威尼 史密斯
凱斯 艾倫 柏曼
大衛 喬瑟夫 溫斯頓 漢斯克因
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 TW201712553A publication Critical patent/TW201712553A/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/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/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • 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)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

回應於因一快取未命中所致之一分派停止運作,降低一處理器之時脈頻率。在一實施例中,倘若該載入指令為最舊載入指令及其中存在一分派停止運作之連續處理器循環的數目超出一臨限值,且倘若自從該末階快取未命中以來的處理器循環之總數目不超過某一指定數目,則針對引發一末階快取未命中之一載入指令降低該處理器時脈頻率。

Description

用於在經曝露快取停止運作時有效之時脈調整之方法及裝置
實施例係針對處理器,且更特定言之,係針對回應於快取未命中而調整處理器時脈頻率的處理器微架構。
處理器之時脈樹可消耗由處理器消耗之總功率的主要部分。舉例而言,對於一些現代處理器設計,據估計,時脈樹動態功率可高達總處理器核心功率的15%至20%。假定處理器設計為完全時脈閘控,則對於此類實例,不論處理器是在作用中還是在等待來自記憶體子系統之資料的閒置狀態,處理器在運行時將總是耗散不明顯之功率量。
本發明之例示性實施例係針對用於在經曝露快取停止運作時有效之時脈調整之系統及方法。
本發明之實施例揭示於以下描述及相關圖式中。可在不脫離本發明之範疇的情況下設計替代性實施例。此外,將不詳細描述或將省略本發明之熟知元件以免混淆本發明之相關細節。 詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。本文中描述為「例示性」之任何實施例不必理解為比其他實施例更佳或更有利。同樣,術語「本發明之實施例」不要求本發明之所有實施例包括所論述之特徵、優點或操作模式。 本文所使用之術語僅出於描述特定實施例之目的,且不意欲限制本發明之實施例。如本文所用,單數形式「一」及「該」同樣意欲包括複數形式,除非上下文另外明確指示。將進一步理解,術語「包含」及/或「包括」在用於本文中時指定所陳述之特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組的存在或添加。 此外,依據待由(例如)計算器件之元件執行的動作之序列而描述許多實施例。應認識到,可藉由特定電路(例如,特殊應用積體電路(ASIC))、藉由正由一或多個處理器執行之程式指令或藉由兩者之組合來執行本文中所描述之各種動作。此外,可認為本文所描述之此等動作序列完全體現於任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體中儲存有在執行時將使相關聯之處理器執行本文所描述之功能性的電腦指令之對應集合。因此,本發明之各種態樣可以數個不同形式體現,預期所有該等形式均在所主張之標的物之範疇內。此外,對於本文中所描述之實施例中之每一者,任何此等實施例之對應形式可在本文中描述為(例如)「經組態以執行所描述之動作的邏輯」。 根據一實施例的一種處理器在等待來自系統記憶體之資料時識別其最可能在何時停止運作,且因此在等待該資料自記憶體子系統(例如,晶片外系統記憶體)返回時調低其時脈頻率。該處理器在快取停止運作狀態解除時返回至全時脈頻率。此機制旨在降低時脈樹中消耗之功率而不明顯地影響效能。 圖1說明根據一實施例之處理器100的微架構。為易於說明,不展示典型處理器微架構之所有組件。管線102自指令快取104提取指令(諸如載入指令或儲存指令),能夠存取資料快取106以執行各種指令,且能夠存取暫存器組108中之暫存器。 記憶體110表示晶片外記憶體,其可包括系統記憶體、比指令快取104或資料快取106更高階之快取,或其任何組合。舉例而言,記憶體110可表示包括L2 (2階)快取的記憶體階層及可包括揮發性及非揮發性記憶體兩者的其他系統記憶體組件。 實施例利用暫存器組108中所展示之三個暫存器中之一或多者:暫存器112,稱為經曝露載入暫存器112;暫存器114,稱為未命中狀態處置暫存器114 (MSHR 114);及暫存器116,稱為快取未命中返回計數器116。實務上,可存在多於一個之MSHR。因此,術語「MSHR 114」可用於指示複數個未命中狀態處置暫存器。狀態機118能夠存取暫存器112、114及116,且在輸入埠122處接收快取未命中信號及在輸入埠124處接收資料返回信號。如以下將較詳細地描述,視儲存於狀態機118中的狀態、儲存於暫存器112、114及116中之一或多者中的值及快取未命中信號及資料返回信號而定,狀態機118將時脈120設定為低頻或高頻。 因為處理器100可被視為狀態機,所以如下文所描述之狀態機118的狀態亦可被視為處理器100之可能的狀態。 圖2說明根據一實施例之針對狀態機118的狀態轉變圖200。圖2中說明四種狀態:狀態202、狀態204、狀態206及狀態208。狀態202、204及206亦可分別稱為HF0狀態、HF1狀態及HF2狀態,且在圖2中如此表示。此等狀態標示中之「HF」為針對「高頻」之助憶符,其中如進一步所描述,當狀態機118處於狀態HF0、HF1及HF2中之任一者時,在正常操作頻率(亦即,相對較高頻)下操作(或閘控)處理器100。狀態208亦可稱為LF狀態,且在圖2中如此表示。「LF」為針對「低頻」之助憶符,其中如進一步所描述,當狀態機118處於LF狀態時,在小於正常操作頻率之頻率(亦即,相對較低頻)下操作(或閘控)處理器100。 圖1中之時脈120可表示用於提供時脈信號之產生器,或用於閘控處理器100以便在一或多個時脈頻率下操作的電路。因此,當描述實施例時,提及將時脈120設定為某一頻率應理解為亦包括閘控處理器100以使得可調整其操作頻率的動作。 當狀態機118處於狀態202、204或206中之一者時,在高頻下操作時脈120,而當狀態機118處於狀態208時,在低頻下操作時脈120。起初,狀態機100處於HF0狀態,使得此狀態亦可稱為初始狀態。當偵測到候選載入指令時,發生自狀態202 (HF0或初始狀態)至狀態204 (HF1狀態)之狀態轉變210。 候選載入指令為引發末階快取未命中的載入指令,因此該載入指令與因末階快取未命中而造成分派停止運作的較早執行之載入指令無關。(分派停止運作有時稱作快取停止運作。)亦即,候選載入指令為當管線102中不存在其他未完成之引發末階快取未命中的載入指令時引發末階快取未命中的載入指令。「末階」快取係指在由記憶體110表示之記憶體階層中具有最高階的快取。舉例而言,記憶體110中之末階快取可為L2 (2階)快取。在一些實施例中,末階快取可整合於處理器100中。稍後描述針對偵測候選載入指令之不同實施例。 回應於偵測到候選載入指令,管線102將載入指令ID (標識符)儲存在經曝露載入暫存器112的欄位126中,且設定經曝露載入暫存器112之欄位128以指示經曝露載入暫存器112之內容有效。欄位128可稱為有效欄位,或有效位元。針對偵測到候選載入指令之此回應被指示於緊鄰狀態轉變210之圓括號內。 回應於處理器100判定候選載入指令為尚未退除之最舊載入指令,發生自HF1狀態至HF2狀態之狀態轉變212。可藉由存取載入佇列130來判定最舊載入指令。然而,注意自HF1狀態至HF0狀態之狀態轉變211。當自從狀態機118進入HF1狀態以來的時脈循環之數目超出臨限值(在圖2中標示為N1 )時,發生狀態轉變211。此外,若輸入埠124處的資料返回信號指示已自記憶體110擷取(由候選載入指令請求之)資料,或若清空管線102,則發生狀態轉變211。因此,若自從狀態機118自HF0狀態轉變至HF1狀態已經過N1 個處理器時脈循環,則不發生狀態轉變212。換言之,自從狀態機118自HF0狀態轉變至HF1狀態未經過N1 個處理器時脈循環的條件為狀態轉變212之必要條件。 暫存器130 (圖1中稱為counter_HF暫存器)可用於追蹤自從狀態機118自HF0狀態轉變至HF1狀態(亦即,當狀態機118偵測到候選載入指令時)以來的時脈循環之數目。counter_HF暫存器有時在狀態機118進入HF1狀態之前或之時初始化,且此後在每一處理器時脈循環上遞增。 回應於處理器100偵測到分派停止運作變數TSTALL 已達到M1 個連續時脈循環,發生自HF2狀態至LF狀態的狀態轉變214。在一個實施例中,分派停止運作變數TSTALL 自候選載入指令成為最舊載入指令時開始計數,其中分派停止運作變數TSTALL 以處理器時脈循環為單位。亦即,分派停止運作變數TSTALL 在狀態機118進入HF2狀態之時或有時在其之前初始化,且此後針對每一處理器時脈循環遞增,因此若停止運作變數TSTALL 達到M1 ,則進入LF狀態。TSTALL 之值可儲存於暫存器132中,其中(例如)狀態機118在每一分派停止運作之開始處將暫存器132之值重設至零。 當進入LF狀態時,狀態機118將時脈120設定(或將處理器100閘控)至低頻,以便在無效能方面之明顯損失的情況下達成功率節省。然而,注意自HF2狀態至HF0狀態之狀態轉變213,當自從狀態機118進入HF2狀態以來之時脈循環的數目超出臨限值時發生該狀態轉變,其在圖2中標示為N2 。整數N1 不一定等於整數N2 。此外,若輸入埠124處的資料返回信號指示已自記憶體110擷取(由候選載入指令請求之)資料,或若清空管線102,則發生狀態轉變213。 因此,僅當自從狀態機118自HF1狀態轉變至HF2狀態已經過N2 個處理器時脈循環時才發生狀態轉變214。如前所述,暫存器130可用於計數自從狀態機118自HF1狀態轉變至HF2狀態以來之時脈循環的數目。 回應於記憶體返回(其中來自記憶體110之資料自載入指令之目標記憶體位置返回)或當存在管線清空時,發生自LF狀態至HF0狀態之狀態轉變218。回應於狀態轉變218,欄位128被清除以指示經曝露載入暫存器112之內容不再有效。 在另一實施例中,如藉由針對狀態轉變216之虛線所指示,可跳過HF2狀態。在此實施例中,不必如藉由狀態轉變212所指示來確定候選載入指令為最舊載入指令。確切而言,回應於偵測到分派停止運作變數TSTALL 已達到M2 個連續時脈循環(其中在此情況下,分派停止運作變數TSTALL 在發生末階快取未命中時(亦即,當狀態機118進入HF1狀態時)開始計數),狀態機118自HF1狀態直接轉變至LF狀態。整數M1 不一定等於整數M2 。但再次,狀態轉變216之必要條件為:自從狀態機118自HF0狀態轉變至HF1狀態以來之處理器時脈循環的數目不超過N1 。 圖3A、圖3B及圖3C說明針對偵測到候選載入指令的三個實施例。參看圖3A中所說明之實施例,若載入指令引發末階快取未命中(302),則確定具有有效內容之MSHR 114的數目(304)。若此等暫存器之數目為零,則宣告該載入指令為候選載入指令(306)。當軟體程序開始時,可初始化MSHR 114以使得其所有內容無效。 在圖3B中所說明之實施例中,在載入指令引發末階快取未命中時,快取未命中返回計數器116遞增(308),且在來自針對引發末階快取未命中之一載入指令的目標記憶體位置之資料返回時,快取未命中返回計數器116遞減(310),亦即,存在記憶體返回。如在動作312中所指示,不論何時存在末階快取未命中且判定快取未命中返回計數器116為零,則宣告引發該末階快取未命中的該載入指令為候選載入指令。此舉假定零為快取未命中返回計數器116之初始值。 在圖3C中所說明之實施例中,當載入指令引發如在動作314中所指示之末階快取未命中時,則處理器100在動作316中檢查經曝露載入暫存器112。若經曝露載入暫存器112之內容無效,則如在動作318中所指示,宣告引發末階快取未命中的載入指令為候選載入指令。 實施例可應用於數種器件中,諸如(僅舉幾個實例)蜂巢式電話、膝上型電腦或電腦伺服器,或具有網際網路連通性之功率高效器具。圖4說明可應用一實施例的電子器件之實例,其中具有狀態機118之處理器100藉助於匯流排402耦接至記憶體110。在圖4之特定實例中,末階快取為L2快取404。數據機406亦展示於圖4中,其耦接至天線408以使得可實現無線連通至路由器、存取點或蜂巢式電話塔。使用者介面410表示使用者可藉以與電子器件互動的一或多個器件,諸如觸敏式螢幕或鍵盤。 熟習此項技術者將瞭解,可使用多種不同技術與技法中之任一者來表示資訊及信號。舉例而言,可藉由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示貫穿以上描述可能提及之資料、指令、命令、資訊、信號、位元、符號及碼片。 此外,熟習此項技術者將瞭解,結合本文所揭示之實施例而描述之各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體,或電腦軟體與硬體之組合。為清晰說明硬體與軟體之此可互換性,上文已大體在其功能性方面描述了各種說明性組件、區塊、模組、電路及步驟。將此功能性實施為硬體還是軟體取決於特定應用及外加於整個系統上之設計約束。熟習此項技術者可針對每一特定應用以變化之方式實施所描述之功能性,但不應將此等實施決策解釋為導致脫離本發明之範疇。 結合本文所揭示之實施例而描述之方法、序列及/或演算法可實施為由處理器(應理解「處理器」可包括多個處理器或多個處理器核心)及電子電路執行的電子硬體或電腦軟體與硬體之組合。用於實施實施例之部分的軟體模組可駐存於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、抽取式磁碟、CD-ROM,或此項技術中已知之任何其他形式的儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代例中,儲存媒體可與處理器成整體。 因此,本發明之一實施例可包括一種體現用於在經曝露快取停止運作時有效之時脈調整之方法的電腦可讀媒體。因此,本發明不限於所說明之實例,且本發明之實施例中包括用於執行本文中所描述之功能性的任何構件。 雖然前述揭示內容展示本發明之說明性實施例,但應注意,可在不脫離如所附申請專利範圍所界定之本發明之範疇的情況下在此作出各種改變及修改。無需以任何特定次序執行根據本文中所描述之本發明之實施例的方法請求項之功能、步驟及/或動作。此外,雖然可能以單數形式描述或主張本發明之元件,但除非明確陳述限於單數形式,否則亦涵蓋複數形式。
100‧‧‧處理器
102‧‧‧管線
104‧‧‧指令快取
106‧‧‧資料快取
108‧‧‧暫存器組
110‧‧‧記憶體
112‧‧‧經曝露載入暫存器
114‧‧‧未命中狀態處置暫存器(MSHR)
116‧‧‧快取未命中返回計數器
118‧‧‧狀態機
120‧‧‧時脈
122‧‧‧輸入埠
124‧‧‧輸入埠
126‧‧‧欄位
128‧‧‧欄位
130‧‧‧暫存器/載入佇列
132‧‧‧暫存器
200‧‧‧狀態轉變圖
202‧‧‧HF0狀態
204‧‧‧HF1狀態
206‧‧‧HF2狀態
208‧‧‧LF狀態
210‧‧‧狀態轉變
211‧‧‧狀態轉變
212‧‧‧狀態轉變
213‧‧‧狀態轉變
214‧‧‧狀態轉變
216‧‧‧狀態轉變
218‧‧‧狀態轉變
312‧‧‧動作
314‧‧‧動作
316‧‧‧動作
318‧‧‧動作
402‧‧‧匯流排
404‧‧‧L2快取
406‧‧‧數據機
408‧‧‧天線
410‧‧‧使用者介面
HF0‧‧‧高頻0
HF1‧‧‧高頻1
HF2‧‧‧高頻2
L2‧‧‧2階
LF‧‧‧低頻
呈現隨附圖式以輔助對本發明之實施例的描述,且提供隨附圖式僅出於說明實施例而非限制實施例之目的。 圖1為根據一實施例之處理器的高階微架構。 圖2為根據一實施例之狀態機的狀態圖。 圖3A、圖3B及圖3C說明用於根據一實施例偵測候選載入指令的流程圖。 圖4說明可在其中應用實施例的電子器件。
100‧‧‧處理器
102‧‧‧管線
104‧‧‧指令快取
106‧‧‧資料快取
108‧‧‧暫存器組
110‧‧‧記憶體
112‧‧‧經曝露載入暫存器
114‧‧‧未命中狀態處置暫存器(MSHR)
116‧‧‧快取未命中返回計數器
118‧‧‧狀態機
120‧‧‧時脈
122‧‧‧輸入埠
124‧‧‧輸入埠
126‧‧‧欄位
128‧‧‧欄位
130‧‧‧暫存器/載入佇列
132‧‧‧暫存器

Claims (28)

  1. 一種處理器,其包含: 一暫存器組,其具有一暫存器; 一管線,其中在偵測到引發一末階快取未命中的一載入指令之後,同時在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時,該管線將該載入指令之一標識符儲存在該暫存器中且在該暫存器中設定一欄位以指示該暫存器之內容有效;及 一狀態機,其耦接至該暫存器組及該管線,其中該狀態機回應於該管線將該標識符儲存在該暫存器中而自一初始狀態轉變至一第一狀態,該狀態機回應於該載入指令為該管線中之最舊載入指令而自該第一狀態轉變至一第二狀態,且回應於該處理器自從該狀態機轉變至該第二狀態以來操作歷經M個連續處理器時脈循環,該狀態機自該第二狀態轉變至一低頻狀態,其中M為一整數; 其中該處理器在該狀態機處於該初始、第一或第二狀態時在一第一時脈頻率下操作,且在該狀態機處於該低頻狀態時在一第二時脈頻率下操作,其中該第一時脈頻率比該第二時脈頻率高。
  2. 如請求項1之處理器,其中回應於針對該載入指令之一記憶體返回或一管線清空,該狀態機自該低頻狀態轉變至該初始狀態。
  3. 如請求項1之處理器,其中回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從該狀態機自該初始狀態轉變至該第一狀態以來操作歷經N1 個處理器時脈循環,該狀態機自該第一狀態轉變至該初始狀態,其中N1 為一整數。
  4. 如請求項1之處理器,其中回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從該狀態機轉變至該第二狀態以來操作歷經N2 個處理器時脈循環,該狀態機自該第二狀態轉變至該初始狀態,其中N2 為一整數。
  5. 如請求項4之處理器,其中回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從該狀態機自該初始狀態轉變至該第一狀態以來操作歷經N1 個處理器時脈循環,該狀態機自該第一狀態轉變至該初始狀態,其中N1 為一整數。
  6. 如請求項1之處理器,其中該管線在該狀態機返回至該初始狀態時設定該欄位以指示該暫存器之該內容無效。
  7. 如請求項6之處理器,其中倘若在儲存該標識符之前,該欄位指示該暫存器之該內容無效,則該管線將該載入指令之該標識符儲存在該暫存器中。
  8. 如請求項1之處理器,該暫存器組包含至少一個未命中狀態處置暫存器, 其中倘若該至少一個未命中狀態處置暫存器具有無效內容,則該管線將該載入指令之該標識符儲存在該暫存器中。
  9. 如請求項1之處理器,該暫存器組包含具有一初始值之一快取未命中返回計數器, 其中該管線針對每一快取未命中遞增該快取未命中返回計數器,且針對每一記憶體返回遞減該快取未命中返回計數器; 其中倘若該快取未命中返回計數器具有該初始值,則該管線將該載入指令之該標識符儲存在該暫存器中。
  10. 一種處理器,其包含: 一暫存器組,其具有一暫存器; 一管線,其中在偵測到引發一末階快取未命中的一載入指令之後,同時在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時,該管線將該載入指令之一標識符儲存在該暫存器中且在該暫存器中設定一欄位以指示該暫存器之內容有效;及 一狀態機,其耦接至該暫存器組及該管線,其中該狀態機回應於該管線將該標識符儲存在該暫存器中而自一初始狀態轉變至一第一狀態,且回應於該處理器自從該狀態機轉變至該第一狀態以來操作歷經M個連續處理器時脈循環,該狀態機自該第一狀態轉變至一低頻狀態,其中M為一整數; 其中該處理器在該狀態機處於該初始狀態或該第一狀態時在一第一時脈頻率下操作,且在該狀態機處於該低頻狀態時在一第二時脈頻率下操作,其中該第一時脈頻率比該第二時脈頻率高。
  11. 如請求項10之處理器,其中回應於針對該載入指令之一記憶體返回或一管線清空,該狀態機自該低頻狀態轉變至該初始狀態。
  12. 如請求項10之處理器,其中回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從該狀態機自該初始狀態轉變至該第一狀態以來操作歷經N個處理器時脈循環,該狀態機自該第一狀態轉變至該初始狀態,其中N為一整數。
  13. 如請求項10之處理器,其中該管線在該狀態機返回至該初始狀態時設定該欄位以指示該暫存器之該內容無效。
  14. 如請求項13之處理器,其中倘若在儲存該標識符之前,該欄位指示該暫存器之該內容無效,則該管線將該載入指令之該標識符儲存在該暫存器中。
  15. 如請求項10之處理器,該暫存器組包含至少一個未命中狀態處置暫存器, 其中倘若該至少一個未命中狀態處置暫存器具有無效內容,則該管線將該載入指令之該標識符儲存在該暫存器中。
  16. 如請求項10之處理器,該暫存器組包含具有一初始值之一快取未命中返回計數器, 其中該管線針對每一快取未命中遞增該快取未命中返回計數器,且針對每一記憶體返回遞減該快取未命中返回計數器; 其中倘若該快取未命中返回計數器具有該初始值,則該管線將該載入指令之該標識符儲存在該暫存器中。
  17. 一種在分派停止運作期間調整一處理器中之一處理器時脈頻率的方法,該處理器包含用以執行指令之一管線,該方法包含: 當在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時,將引發一末階快取未命中的一載入指令之一標識符儲存在該處理器之一暫存器中,且在該暫存器中設定一欄位以指示該暫存器之內容有效; 回應於該管線將該標識符儲存在該暫存器中,將該處理器自一初始狀態轉變至一第一狀態; 回應於該載入指令為該管線中之最舊載入指令,將該處理器自該第一狀態轉變至一第二狀態; 回應於該處理器自從該處理器轉變至該第二狀態以來操作歷經M個連續處理器時脈循環,將該處理器自該第二狀態轉變至一低頻狀態,其中M為一整數; 當處於該初始、第一或第二狀態時,在一第一時脈頻率下操作該處理器;及 當處於該低頻狀態時,在一第二時脈頻率下操作該處理器,其中該第一時脈頻率比該第二時脈頻率高。
  18. 如請求項17之方法,其進一步包含: 回應於針對該載入指令之一記憶體返回或一管線清空,將該處理器自該低頻狀態轉變至該初始狀態; 回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從自該初始狀態轉變至該第一狀態以來操作歷經N1 個處理器時脈循環,將該處理器自該第一狀態轉變至該初始狀態,其中N1 為一整數; 回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從自該第一狀態轉變至該第二狀態以來操作歷經N2 個處理器時脈循環,將該處理器自該第二狀態轉變至該初始狀態,其中N2 為一整數;及 當返回至該初始狀態時,設定該欄位以指示該暫存器之該內容無效。
  19. 如請求項18之方法,其中倘若在儲存該標識符之前,該欄位指示該暫存器之該內容無效,則發生將該載入指令之該標識符儲存在該暫存器中。
  20. 如請求項17之方法,該處理器包含至少一個未命中狀態處置暫存器,其中倘若該至少一個未命中狀態處置暫存器中無一者具有有效內容,則發生將該載入指令之該標識符儲存在該處理器之該暫存器中。
  21. 如請求項17之方法,該暫存器組包含具有一初始值之一快取未命中返回計數器,該方法進一步包含: 針對每一快取未命中遞增該快取未命中返回計數器;及 針對每一記憶體返回遞減該快取未命中返回計數器; 其中倘若該快取未命中返回計數器具有該初始值,則發生將該載入指令之該標識符儲存在該處理器之該暫存器中。
  22. 一種在分派停止運作期間調整一處理器中之一處理器時脈頻率的方法,該處理器包含用以執行指令之一管線,該方法包含: 當在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時,將引發一末階快取未命中的一載入指令之一標識符儲存在該處理器之一暫存器中,且在該暫存器中設定一欄位以指示該暫存器之內容有效; 回應於該管線將該標識符儲存在該暫存器中,將該處理器自一初始狀態轉變至一第一狀態; 回應於該處理器自從進入該第一狀態以來操作歷經M個連續處理器時脈循環,將該處理器自該第一狀態轉變至一低頻狀態,其中M為一整數; 當處於該初始狀態或該第一狀態時,在一第一時脈頻率下操作該處理器;及 當處於該低頻狀態時,在一第二時脈頻率下操作該處理器,其中該第一時脈頻率比該第二時脈頻率高。
  23. 如請求項22之方法,其進一步包含: 回應於針對該載入指令之一記憶體返回或一管線清空,將該處理器自該低頻狀態轉變至該初始狀態; 回應於針對該載入指令之一記憶體返回、一管線清空或該處理器自從自該初始狀態轉變至該第一狀態以來操作歷經N個處理器時脈循環,將該處理器自該第一狀態轉變至該初始狀態,其中N為一整數;及 當返回至該初始狀態時,設定該欄位以指示該暫存器之該內容無效。
  24. 如請求項23之方法,其中倘若在儲存該標識符之前,該欄位指示該暫存器之該內容無效,則發生將該載入指令之該標識符儲存在該暫存器中。
  25. 如請求項22之方法,該處理器包含至少一個未命中狀態處置暫存器,其中倘若該至少一個未命中狀態處置暫存器具有無效內容,則發生將該載入指令之該標識符儲存在該處理器之該暫存器中。
  26. 如請求項22之方法,該暫存器組包含具有一初始值之一快取未命中返回計數器,該方法進一步包含: 針對每一快取未命中遞增該快取未命中返回計數器;及 針對每一記憶體返回遞減該快取未命中返回計數器; 其中倘若該快取未命中返回計數器具有該初始值,則發生將該載入指令之該標識符儲存在該處理器之該暫存器中。
  27. 一種處理器,其包含: 一暫存器; 執行指令之一管線; 用於當在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時將引發一末階快取未命中的一載入指令之一標識符儲存在該處理器之該暫存器中,且在該暫存器中設定一欄位以指示該暫存器之內容有效的構件; 用於回應於該管線將該標識符儲存在該暫存器中而自一初始狀態轉變至一第一狀態的構件; 用於回應於該載入指令為該管線中之最舊載入指令而自該第一狀態轉變至一第二狀態的構件; 用於回應於該處理器自從該處理器進入該第二狀態以來操作歷經M個連續處理器時脈循環而自該第二狀態轉變至一低頻狀態的構件,其中M為一整數; 用於當處於該初始、第一或第二狀態時在一第一時脈頻率下操作該處理器的構件;及 用於當處於該低頻狀態時在一第二時脈頻率下操作該處理器的構件,其中該第一時脈頻率比該第二時脈頻率高。
  28. 一種處理器,其包含: 一暫存器; 執行指令之一管線; 用於當在該管線中不存在引發另一末階快取未命中的其他未完成載入指令時將引發一末階快取未命中的一載入指令之一標識符儲存在該處理器之該暫存器中,且在該暫存器中設定一欄位以指示該暫存器之內容有效的構件; 用於回應於該管線將該標識符儲存在該暫存器中而自一初始狀態轉變至一第一狀態的構件; 用於回應於該處理器自從該處理器進入該第一狀態以來操作歷經M個連續處理器時脈循環而自該第一狀態轉變至一低頻狀態的構件,其中M為一整數; 用於當處於該初始狀態或該第一狀態時在一第一時脈頻率下操作該處理器的構件;及 用於當處於該低頻狀態時在一第二時脈頻率下操作該處理器的構件,其中該第一時脈頻率比該第二時脈頻率高。
TW105129086A 2015-09-25 2016-09-08 用於在經曝露快取停止運作時有效之時脈調整之方法及裝置 TW201712553A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/865,092 US20170090508A1 (en) 2015-09-25 2015-09-25 Method and apparatus for effective clock scaling at exposed cache stalls

Publications (1)

Publication Number Publication Date
TW201712553A true TW201712553A (zh) 2017-04-01

Family

ID=56997528

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105129086A TW201712553A (zh) 2015-09-25 2016-09-08 用於在經曝露快取停止運作時有效之時脈調整之方法及裝置

Country Status (9)

Country Link
US (1) US20170090508A1 (zh)
EP (1) EP3353625A1 (zh)
JP (1) JP2018528548A (zh)
KR (1) KR20180059857A (zh)
CN (1) CN108027641A (zh)
BR (1) BR112018006083A2 (zh)
CA (1) CA2998593A1 (zh)
TW (1) TW201712553A (zh)
WO (1) WO2017052966A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180314289A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Modifying an operating frequency in a processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076681B2 (en) * 2002-07-02 2006-07-11 International Business Machines Corporation Processor with demand-driven clock throttling power reduction
US7051227B2 (en) * 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
EP1658560B1 (en) * 2003-08-26 2009-06-10 International Business Machines Corporation Processor with demand-driven clock throttling for power reduction
US7461239B2 (en) * 2006-02-02 2008-12-02 International Business Machines Corporation Apparatus and method for handling data cache misses out-of-order for asynchronous pipelines
CN101631051B (zh) * 2009-08-06 2012-10-10 中兴通讯股份有限公司 时钟调整装置及方法
US9377836B2 (en) * 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor

Also Published As

Publication number Publication date
CA2998593A1 (en) 2017-03-30
BR112018006083A2 (pt) 2018-10-09
WO2017052966A1 (en) 2017-03-30
US20170090508A1 (en) 2017-03-30
KR20180059857A (ko) 2018-06-05
EP3353625A1 (en) 2018-08-01
JP2018528548A (ja) 2018-09-27
CN108027641A (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
US10802567B2 (en) Performing local power gating in a processor
US8892924B2 (en) Reducing power consumption of uncore circuitry of a processor
JP5615927B2 (ja) データストリームのためのストアアウェアプリフェッチ
US7694075B1 (en) System for enabling and disabling cache and a method thereof
KR101673500B1 (ko) 캐시 제어를 위한 방법 및 장치
TWI597600B (zh) 在運行狀態下藉由減少每個時脈的指令率之微處理器及其省電方法
JP7301955B2 (ja) ループ終了予測を用いたプロセッサのループモードの促進又は抑制
US20130124826A1 (en) Optimizing System Throughput By Automatically Altering Thread Co-Execution Based On Operating System Directives
US9483406B2 (en) Communicating prefetchers that throttle one another
US20100228955A1 (en) Method and apparatus for improved power management of microprocessors by instruction grouping
JP6627629B2 (ja) 演算処理装置、および演算処理装置の制御方法
EP3221784B1 (en) Providing loop-invariant value prediction using a predicted values table, and related apparatuses, methods, and computer-readable media
US11113065B2 (en) Speculative instruction wakeup to tolerate draining delay of memory ordering violation check buffers
TWI482087B (zh) 用於動態地管理多核心處理器中記憶體存取頻寬之設備與方法
US9152473B2 (en) Table driven multiple passive trip platform passive thermal management
TW201712553A (zh) 用於在經曝露快取停止運作時有效之時脈調整之方法及裝置
WO2012040425A2 (en) Regulating atomic memory operations to prevent denial of service attack
US20170083336A1 (en) Processor equipped with hybrid core architecture, and associated method
CN106200868A (zh) 多核处理器中共享变量获取方法、装置及多核处理器