TW200939116A - Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system - Google Patents

Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system Download PDF

Info

Publication number
TW200939116A
TW200939116A TW097143346A TW97143346A TW200939116A TW 200939116 A TW200939116 A TW 200939116A TW 097143346 A TW097143346 A TW 097143346A TW 97143346 A TW97143346 A TW 97143346A TW 200939116 A TW200939116 A TW 200939116A
Authority
TW
Taiwan
Prior art keywords
branch
instruction
extraction
trust
processor
Prior art date
Application number
TW097143346A
Other languages
English (en)
Inventor
Michael Karl Gschwind
Robert Alan Philhower
Raymond Cheung Yeung
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200939116A publication Critical patent/TW200939116A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

❹ 200939116 九、發明說明: 【發明所屬之技術領域】 本文中之揭示案大體而言係關於管線化處理器,且更特 定言之係關於在資訊處置系統中使用電力節約方法之管線 化處理器。 【先前技術】 現代資訊處置系統使用通常產生大量熱量之處理器。存 在感測處理器溫度之熱量節流技術。當處理器溫度超過預 定臨限溫度時,系統節流或減小處理器之時脈速率以相應 地降低處理器溫度。以此方式’系統防止不合需要的過 熱。或者,系統可使用時脈閘控,亦即,在一時間週期中 停止用於處理器邏輯電路之至少一部分的處理器時脈以降 低處理器溫度。 電力消耗為對現代處理器之最大操作頻率的顯著影響因 素。已具有感測處理器所消耗的電力量之電力節流技術。 當所消耗電力超過預定臨限電力位準時,電力節流系統減 小處理器之操作頻率以使得處理器消耗較少電力。 需要-種裝置及方法’其在資訊處置系統中達成由處理 器所消耗之電力的進一步減小。 【發明内容】 因此,在一實施例中,揭示 法。方法包括由一提取器自指 提取分支指令之指令流。方法 每一經提取分支指令之結果, 一種用於操作一處理器之方 令源提取指令以提供包括經 亦包括由一分支預測器預測 因此提供經提取分支指令之 135995.doc 200939116 各別分支預測。方法進一步包括由一發佈單元將經提取分 支指令發佈至一分支執行單元以用於執行。方法進一步包 括在作為一群之分支指令传列中之經提取分支指令展現小 於一第一預定分支預測信賴臨限值的情況下由一提取節流 控制器藉由提取器節流對指令之該提取。方法亦包括在當 前由發佈單元所發佈之特定經提取分支指令展現小於一第 二預定分支預測信賴臨限值的情況下由提取節流控制器推 測地抑制對指令提取之節流。 β 在另一實施例中,揭示一種處理器,其包括儲存指令之 一指令源。處理器亦包括一耦接至該指令源之提取器,其 自指令源提取指令以提供包括經提取分支指令之指令流。 處理器進一步包括一分支預測器,其預測每一經提取分支 才曰令之結果’因此提供經提取分支指令之各別分支預測。 處理器進一步包括一耦接至該提取器及一分支執行單元之 發佈單元,其將經提取分支指令發佈至該分支執行單元以 φ 用於執行。處理器亦包括一耦接至該提取器及該發佈單元 之提取節流控制器,其在作為一群之分支指令佇列中之經 提取分支指令展現小於一第一預定分支預測信賴臨限值的 情況下藉由該提取器節流對指令之該提取。該提取節流控 • 制器在當前由發佈單元所發佈之特定經提取分支指令展現 小於一第二預定分支預測信賴臨限值的情況下推測地抑制 對指令提取之節流。 【實施方式】 隨附圖式僅說明本發明之例示性實施例且因此不限制其 135995.doc 200939116 範疇,由於本發明概念易具有其他相同有效的實施例。 Ο ❿ 現代處理器通常使用推測執行技術,其使用分支預測以 增加處理器之指令處置效率。處理器中之提取單元或指令 提取器提取含有分支指令之指令流。處理器可回應於分支 預測推測地執行在分支指令之後的指令。更詳細地,在指 令解碼器解碼指令流之經提取分支指令之後,分支預測電 路進行是否採用分支指令所提供之分支的預測。分支•,經 採用”或"不經採用"。分支預測電路藉由使用分支歷史資 訊,即當處理器在過去遇到此特定分支指令時的分支結果 來預測是否採用分支。若分支預測電路正確預測分支則 處理器保持在分支之後的指令結果。然❿,若/分支預測不 正確,則處理器丟棄或清空在分支之後的指令結果。處理 器接著開始執行在-重新導向位址之指令,該重新導向位 址對應於分支指令之正確目標位址。 藉由處理器對指令之推測執行消耗大量電力。需要以不 會實質影響處理器效能之方式最小化推測執行活動所消耗 電力’咸小電力消耗之一方式為藉由當處理器遇到其確 定累積展現關於分支預測的低信賴度之一群分支指令時節 提取。處理器包括—分支指令仔列(biq),其儲 之分支指令之群連同每-經儲存分支指令之信 ==儲存指令流的為”執行中·,之彼等分支,即處 大^未解析之彼等指♦。若叫中之低信賴分支的數目 大於預定信賴臨限值,則處 等低八± 職理11執行指令提取節流以在此 等低分支預測信賴條件下減 J電力沩耗。此提取節流電力 135995.doc 200939116 節約方法揭示在由Bose等人於2007年10月4曰所申請之名 為"Method and Apparatus for Conserving Power by Throttling
Instruction Fetching When a Processor Encounters Low
Confidence Branches in an Information Handling System”的 • 共同讓渡美國專利申請案第ll/733,589號中,該案之揭示 内容以全文引用的方式併入本文中。雖然節省電力,但此 方法確實展現對處理器效能之一些負面影響。需要達成此 電力節省同時對處理器效能之負面影響較小。 ® 圖1展示一處理器100之一實施例,該處理器100將提取 節流用於一群低信賴分支以減小處理器所消耗之電力。處 理器1 〇〇包括諸如區域快取記憶體之一記憶體丨〇5,其包括 處理器100執行之指令流。記憶體105因此充當指令源。在 實際實踐中,記憶體105附著於提供處理器執行之指令流 或程式的較大外部系統記憶體(未圊示)。提取器丨〗〇耦接至 記憶體105以自記憶體1〇5提取指令以用於執行。提取器 ❿ Π〇包括指令位址輸入端Π0Α。解碼器電路π5耦接至提取 器110以解碼其自提取器11〇所接收之經提取指令。經提取 指令流包括具有作業碼及運算元之指令。指令流之一些指 - 令為分.支指令。發佈單元/序列器電路117經由暫存器重新 • 命名級116麵接至解碼器115 4佈單元117確定應接收特 定經解碼指令以用於執行之適當執行單元。發佈單元 柄接至以下執行單元:定點執行單元(Fxu)i2〇、浮點執行 單7L (FPU)125、載入儲存單元(LSU)13〇及分支執行單元 (BRU)135。定點執行單元(FXU)12〇包括暫存器樓案 135995.doc 200939116 n〇A。浮點執行單元125包括暫存器檔案125八。 執行單元推測地執行指令流中在經解碼分支指令之後的 指令。分支預測器140耦接於提取器11〇之指令位址輸入端 ιιοΑ與分支執行單元(BRU)135之間。分支預測器14〇包括 一分支歷史表(BHT)142,其追蹤先前所執行分支指令之歷 史結果。與分支單元(BRU)135協作之分支預測器140使用 此歷史分支執行資訊以對BRU 135當前接收之分支指令進 行分支預測。完成單元145耦接至執行單元中之每一者, 即,FXU rn、FPU 125、LSU 130及BRU 135。更特定言 參 之70成單元145耦接至FXU暫存器檔案120A及FPU暫存 器槽案125A。完成單元145確定推測地執行之指令是否應 完成。若分支預測器140正確預測分支,則在分支之後的 指令應完成。舉例而言,若分支預測器14〇正確預測分 支,則在彼分支之後的定點或整數指令應完成。在此種情 況下,完成單元145控制分支之定點結果至定點暫存器構 案120A之寫回。若在正確預測分支之後的指令為浮點指 令’則完成單元!45控制彼浮點指令結果至浮點暫存器槽 案Π5Α之寫回。當指令完成時,其不再為推測性的。分支 執行單元(卿)135與完成單元145及分支預測器14〇協同操 作以解析是否採用特定分支指令。 更詳細地,分支歷史表(BHT)142包括先前 令之歷史。ΒίίΤ 142中之每一輸入頊句乜士仃刀克才日 母輸入項包括—方向位ϋ一 信賴位凡。對於特定分支指令’贿中之其輸入項包括指 不分支經採用,,或"分支未採用,,之方向位元。在—實施^ I35995.doc 200939116 中,方向位元在上次未採用分支時 白 上次採用分支時可等於卜 或方向“在 户入,方隹實施例中,對於特定分支 =分支^4示處㈣下次遇到分支指令時是否應採 時之:支方向位几不必定表示上次處理器遇到分支指令 時:支方向。然·",在大多時間,方向位元確實指示上
❹ 埤“支才曰令時之分支方向。對於特定分支指 7信賴位7〇在對分支經採用或未採用的預測信賴度低時 可等於信賴位元在對分支經採用或未經採用的預測的 U度高時可等於0。特定分支預測展現低信賴度之一原 因在於上兩次處理器執行特定分支指令時,處理器在一狀 況下採用該分支但在另—狀況下未採用。特定分支預測展 現尚信賴度之原因包括上兩次處理器執行特定分支指令 時,處理器兩次皆採用該分支或兩次皆未採用該分支。 處理器100包括具有分支指令佇列⑺1(^)205之節流控制 電路或節流控制器200。在此特定實施例中,分支指令仵 列(BIQ)205包括16個輸入項,即,在指令流中的由提取器 提取但處理器尚未完成之高達16個分支指令。BIQ 205可 視特定應用而定包括比16個輸入項更多或更少的輸入項。 節流控制器200亦包括與BIQ 205相關聯的信賴追蹤佇列或 信賴佇列(CQ)210。CQ 210充當儲存信賴資訊之信賴資訊 儲存記憶體。對於BIQ 205之每一分支指令輸入項,CQ 210包括各別信賴位元。在此特定實施例中,CQ包括16個 輸入項,即,低信賴位元。對於BIQ 205中之特定分支指 令輸入項,若CQ 210中之各別CQ信賴位元輸入項展現邏 135995.doc 12 200939116 輯1,則此指示對此特定分支指令之分支預測的低信賴 度。然而,對於BIQ 205中之特定分支指令輸入項,若cq 210中之各別CQ信賴位元輸入項展現邏輯〇,則此指示對 此特定分支指令之分支預測的高信賴度。節流控制器2〇〇 存取分支歷史表142以協助填充CQ 210中的信賴位元。舉 例而言,在一實施例中,對於BIQ 205儲存之特定分支指 令,為了用相應各別信賴位元填充CQ 210,若上次處理器 執行彼分支指令時分支預測器140及BRU 135錯誤預測彼分 支指令’則節流控制器200將信賴位元1儲存於cq輸入項 中。然而,若上次處理器執行彼分支指令時分支預測器 140及BRU 135正確預測彼分支指令,則節流控制器2〇〇用 信賴位元0填充CQ中彼分支之各別輸入項。在一實施例 中,BHT 142保持或儲存各別分支指令之信賴位元或信賴 值且BHT 142在分支指令執行時更新其本身。當提取器u〇 提取特定分支指令時,CQ 210存取BHT 142且讀取並儲存 對應於特定分支指令之信賴位元。 替代方法亦可得到分支信賴資訊中之一或多個位元。舉 例而言,一此種方法可自可存在於分支指令中之靜態分支 預測隱示得到信賴資訊。此方法可使用此等靜態分:預測 隱不^直接設定來自分支指令含有之信賴位元的信賴資 S或者方法可使用此等靜態分支預測隱示以經由邏輯 方程式得到信賴位元。舉例而言,此方法可確定指示分支 、、〗為採用或不採用之靜態分支隱示是否與分支預測器 140之預測一致。 、… 135995.doc 200939116 替代方法可使用分支類型以推斷分支預測信賴度。舉例 而言’無條件分支、自子路由分支之返回(Power A—re™ 中之blr)及具有負偏移之條件相對分支中之一或多者通常 指示可用於推斷分支展現高信賴度之封閉迴路分支。相 • 反θ通間接为支(例如,P〇wer ArchitectureTM中至計數 暫存器之为支)及條件相對向前分支中之一或多者通常指 示可用於推斷分支展現低信賴度之條件敍述評估。又一方 φ 法可使用競赛預測器以在多個分支預測器組件達成一致(" 一致條件")時推斷高分支信賴度。競赛選擇器可在多個組 件不一致("不一致條件")時或在競賽選擇器對選擇特定競 賽預測器組件具有弱信賴度時推斷低信賴度。 刀支各令仵列(BIQ)205在圖1之實施例中為循環佇列。 BIQ 205包括概念上展示為頭指標215之頭指標及概念上展 示為尾指標220之尾指標。頭指標215指向BIQ 205中之最 新为支指令且尾指標220指向BIQ 205中之最舊分支指令。 〇 當BIQ 205自提取器110接收分支指令時,頭指標及尾指標 每次移動一分支指令輸入項以使得頭指標215始終指向進 入BIQ 205之最新分支指令且尾指標始終指向BIQ 2〇5中之 • 最舊分支指令。 - 節流控制器200亦包括耦接至頭指標215、尾指標220及 信賴佇列(CQ)210之控制邏輯225。控制邏輯225因此接收 當前頭指標、當前尾指標及CQ 210之所有信賴位元。每當 另一分支指令進入BIQ 205時,頭指標改變。每當一分支 指令完成時,尾指標改變。信賴佇列(CQ)21〇儲存biq 2〇5 135995.doc · 200939116 刀支指令輸入的各別信賴位元。換言之,BIQ 2〇5 之每—分支指令輸入項具有在CQ 210中之相關聯相應信賴 位几。控制邏輯225將CQ 21〇之所有信賴位元求和或相加 以獲得信賴位元總數。在此特定實施例中,由於CQ 210儲 存低仏賴位元,因此控制邏輯225確定低信賴位元總數。 控制邏輯225執行第一測試以確定當前低信賴位元總數是 否大於一預定臨限低信賴位準。若控制邏輯225確定當前 φ 低彳5賴位70總數確實大於預定臨限低信賴位準或缺乏信賴 位準,則節流控制器200指導提取器110開始提取節流以減 處理器之電力消耗。藉由在正確分支預測為不可能之推 J陡私7執行期間以此方式進行提取節流,處理器i⑽減 J電力/肖耗。然而,若當前低信賴位元總數不大於預定臨 限尨賴位準,則分支預測可能正確且控制邏輯225允許指 7之提取及推測執行以全速進行而無節流。因此第一測試 確疋BIQ 205中之一群分支指令是否作為一群指令而累積 ❹ 《現低信賴度。替代方法可使用多於-個位元表示特定分 支指令之複數個分支預測信賴位準,例如,"非常高"、”高" 、"低"及"非常低"的信賴度。熟習此項技術者應進一步理 解此等複數個信廳^多種方式組合為概括與複數個分 支相關聯的多個信賴位準之單一信賴值。 發佈單7G 117轉接至具有抑制功能之提取節流狀態機 (FTSMWIF)23G以將指令發佈資訊提供至提取節流狀態機 230。以此方式,提取節流狀態機23〇知曉biq 中之每 特疋刀支‘ 7何時發佈至執行單元。節流控制器使 135995.doc 200939116 用此發佈資訊以增加處理器效率及/或效能。如上所論 述,節流控制器200對BIQ 205的作為一群之分支指令執行 第一測試。第一測試有效地確定BIQ 205中之該群分支指 令是否累積展現小於預定的關於分支預測的信賴量。換言 之,第一測試確定該群指令是否一起展現比預定信賴臨限 值更缺乏關於其分支預測的信賴度。 節流控制器200亦在發佈單元117發佈每一個別分支指令 時對BIQ 205中之彼分支指令執行第二測試。第二測試確 定每一當前發佈之分支指令是否展現小於預定的關於其各 別分支預測的信賴量。與節流控制器200對BIQ 205中之有 效分支指令之群所執行的第一測試對比,FTSMWIF 230對 個別分支指令執行此第二測試。若FTSMWIF 230確定BIQ 205中之特定當前發佈分支指令展現小於預定的分支預測 信賴量(亦即,展現低信賴度),則分支重新導向為可能 的,且作為回應,FTSMWIF 230抑制提取節流。當重新導 向可能時,需要以全速進行提取。因此,在以上條件下抑 制提取節流或重新啟用全速提取增強了處理器之效率。然 而,若FTSMWIF 230確定BIQ 205中之特定分支指令不展 現小於第一預定的分支預測信賴量以使得重新導向不可 能,則FTSMWIF 230不抑制提取節流。換言之,當BIQ 205中之作為一群之分支指令累積展現低信賴度時,提取 節流繼續,除非特定當前發佈之分支指令展現小於第二預 定分支預測信賴量。 歸因於高扇出及設置時間,所揭示之管線化處理器可要 135995.doc -16- 200939116 求節流指令提取且在實際提取循環之前的若干循環就執行 記憶體結構及提取邏輯之時脈閘控。因此,在一實施例 中,確保提取邏輯並非時脈閘控是基於諸如彼等涉及可能 重新導向之特定分支之信賴度的預測技術,以在此分支實 ㉟上確實引起至正確新提取位址之重新導向時確保提取循 環之可用性。 所揭示處理器之不同實施例可使用不同設定以抑制提取 節流。一實施例在準確的一循環中抑制提取節流,該循環 對應於田‘前分支(為其停用節流)可引起對應於重新導向 之第-提取時的循環。所揭示處理器之另一實施例在多個 循環中抑制提取節流,該等循環包括第一重新導向循環, 即回應於對應於抑制分支之重新導向的第一提取,及對應 於在第一提取循環之後的提取之下一提取循環的第二循 環。 在所揭示處理器之其他實施例中,設計者可在設計時設 Φ 疋多個信賴臨限值。或者,諸如超級監督器、作業系統或 應用程式之軟體可在處理器操作時設定此等信賴臨限值。 第二臨限值之一可能選擇為一臨限值設定,其確保在對應 於處理器回應於執行分支指令所執行之可能重新導向的任 . 何提取循環中抑制提取節流。 圖2為圖1之節流控制器2〇〇的更詳細方塊圖。圖2展示以 上已參看圖1所論述之分支指令佇列(BIQ)2〇5、信賴佇列 (Q)21〇、控制邏輯225及具有抑制功能之提取節流狀態機 (TSMWIF)23 0 » BIQ 205包括如圖2中所示之16個分支指 135995.doc -17- 200939116 令輸入ΒΙ·0, BI-l,...BI-15。信賴佇列(CQ)包括指定為〇_15 之16個信賴位元輸入項。雖然在圖2中,頭指標215及尾指 標220指向分支指令ΒΙ-0及BI-2,但頭指標及尾指標隨新分 支指令自經提取指令流進入BIq 205而移動。當處理器提 取、執行且元成指令流中之分支指令時,BIQ 205所儲存 之特定分支指令處於不斷變動中。BIQ 205儲存來自經提 取指令流之16個最近經提取分支指令。因此,在一時點, 與BIQ 205中之各別分支指令相關聯的信賴位元可作為一 群地指示節流控制器220對此等分支指令的預測正確性具 有低信賴度。在彼種狀況下,節流控制器2〇〇開始提取節 流以減小電力消耗。然而,在另一時點,BIQ 205填充有 另一群之分支指令。在此種狀況下,與BIq 2〇5之各別分 支指令相關聯的信賴位元可作為一群地指示節流控制器 200對此等分支指令的預測正確性具有高信賴度。因此, 節流控制器200不開始提取節流以減小電力消耗,而是替 代地指導提取器110以全速提取。然而,若FTSMWIF 230 確定特定當前發佈之分支指令展現比預定低信賴臨限位準 更小的分支預測信賴度以使得分支重新導向為可能的,則 FTSMWIF 230抑制提取節流且允許提取以處理器全速繼 續。 控制邏輯225包括具有16線輸入端235Α及16線輸入端
235Β之邏輯及電路235。邏輯及電路輸入端235Α耦接至CQ 210中之16個槽或儲存位置以使得邏輯及電路235自CQ 210 接收16個信賴位元。頭指標21 5及尾指標220耦接至有效向 135995.doc -18 - 200939116 量產生電路240。有效向量產生電路24〇使用頭指標資訊及 尾指標資訊以產生16位元向量,其中向量之每一位元對應 於BIQ 205之不同輸入項。16位元向量之每一位元指示BIq 205中之相應分支指令輸入項是否有效。若16位元向量之 特定位元展現邏輯1,則BIQ 205之相應分支指令輸入項有 效,即,匀支才曰令仍在進行中。然而,若16位元向量之特 定位元展現邏輯0 ’則BIQ 205之相應分支指令輸入項無 效。BIQ 205之有效的輸入項開始於尾指標且擴展直至頭 指標°舉例而言’若頭指標在輸入項BI_3且尾指標在輸入 項BI-7,則16位元有效向量為〇〇〇1丨丨丨1〇〇〇〇〇〇〇〇。此意謂 輸入項BI_3、BI-4、BI-5、BI-6及BI-7有效而剩餘輸入項 無效。若頭指標在尾指標之上方,則有效向量迴繞且不連 續。舉例而言’若頭指標在輸入項BI_14且尾指標在輸入 項BI-2 ’則有效向量為丨丨1〇〇〇〇〇〇〇〇〇〇〇1丨。此意謂輸入項 ΒΙ-0、BI-1、BI-2、BI-14及BI-15有效而剩餘輸入項無 效。在圖2中’有效向量盒245表示有效向量245之16個位 元。 因此,在輸入端235 A,邏輯及電路23 5自CQ 210接收16 個低信賴位元’而在輸入端235B,邏輯及電路235接收16 位元之有效向量。當邏輯及電路235對16個低信賴位元與 16個各別有效向量位元進行邏輯及運算時,有效向量充當 在邏輯及電路235之輸出端處自16位元結果有效地移除任 何無效低信賴位元之遮罩。因此,在此特定實施例中,在 邏輯及閘235輸出端處之16位元結果僅含有有效低信賴位 135995.doc -19- 200939116 元。換言之,邏輯及電路235輸出端處之16個低信賴位元 對應於BIQ 205中之各別有效分支指令的低信賴位元。 加法器250耦接至邏輯及電路235之輸出端。加法器250 對其自邏輯及電路235所接收之有效低信賴位元求和以在 加法器250之輸出端處提供低信賴分支總數,即,填充計 數(POPCOUNT)。POPCOUNT因此表示在特定時點之BIQ 205中之有效低信賴分支的總數。比較器255包括一輸入 端,其耦接至加法器250以自其接收低信賴分支總數, POPCOUNT 〇比較器255之剩餘輸入端耦接至可程式化臨 限電路260,該可程式化臨限電路260將可程式化信賴臨限 值提供至比較器255。設計者或其他實體選擇信賴臨限值 以使得其表示一低信賴位準,其在被超過時指示對BIQ中 的分支之預測的信賴度如此低以至於應開始提取節流及電 力節約。
比較器255之輸出端耦接至具有抑制功能之提取節流狀 態機(FTSMWIF)230。若低信賴分支之總數POPCOUNT超 過預定可程式化臨限值,則比較器255將邏輯1輸出至提取 節流狀態機230。作為回應,FTSMWIF 230將THROTTLE 信號發送至提取器輸入端110B,該信號指導提取器110減 慢指令提取之速率。減慢或節流指令提取之速率減少了處 理器100執行可能未採用之分支(亦即,對於低信賴分支)所 消耗的電力量。然而,若低信賴分支之總數POPCOUNT不 超過預定可程式化臨限值,則比較器255將邏輯0輸出至 FTSMWIF 230。作為回應,提取節流狀態機230將THROTTLE 135995.doc -20- 200939116 信號發送至提取器輸入端u〇B,該信號指導提取器〗1〇以 全速提取指令。在彼種狀況下,處理器對BIQ 2〇5之分支 指令的預測展現高信賴度。因此,分支指令之推測執行以 全速進行而無提取器節流及電力減小。然而,只要提取 FTSMWIF 230在節流模式中操作,若特定當前發佈之分支 指令展現比預定低信賴臨限位準更小的分支預測信賴度 (使得分支重新導向為可能的),則FTSMWIF 230抑制提取 節流且允許提取以處理器全速繼續。 ❹ 圖3展示如處理器300之所揭示處理器的簡化表示。處理 器300包括類似於處理器1〇〇中之彼等元件的許多元件。如 上所論述’所揭示電力節省方法藉由在處理低信賴分支之 群期間進行提取節流來節約電力。雖然提取節流方法單獨 也節約電力’但其在提取延時增加方面對處理器效能具有 可量測之負面影響。如上所解釋,需要減小對處理器效能 之此負面影響同時仍在提取節流時達成電力節省。 ❹ 在-些條件下 ’抑制提取節流以增加處理器效能而不過 度影響電力節約為可能的。舉例而言’若來自經提取指令 流之特定當前發佈分支指令展現低預測信賴度,則處理器 - 300可在先前開啟提取節流之後關閉提取節流,因為biq 205中之一群分支指令展現低預測信賴度。 在一實施例中,處理器30〇為包括多個管線級之同時多 線(SMT)處理器。處理器300包括一提取器3〇5,該提取器 305經由指令快取(ICACHE)記憶體3丨〇耦接至外部系統^ 憶體(未圖示)。指令快取記憶體3 1 〇耦接至一解碼器3 j $ 135995.doc • 21 200939116 該解碼器315解碼自指令快取記憶體310提取之指令。解碼 器315經由暫存器重新命名電路320耦接至發佈級或序列器 325。暫存器重新命名電路320有效地提供額外暫存器以增 強經提取指令之執行。發佈級或序列器325將經解碼之指 令發送至適當功能單元以用於執行。處理器300包括以下 功能單元:整數或定點執行單元(FXU)330、浮點執行單元 • (FPU)335、載入/儲存執行單元(LSU)340、向量媒體擴展 執行單元(VMX)345及分支執行單元(BRU)350。FXU 330 ® 及FPU 335分別包括暫存器檔案330Α及335Α以用於儲存計 算結果。 分支執行單元(BRU)350耦接至發佈級或序列器325以執 行其自序列器325所接收之分支指令。BRU 350耦接至分支 預測器355與提取器305兩者。執行單元FXU 330、LSU 340、尸卩1; 335、¥^4又345及6111; 3 50推測地執行在經解碼 分支指令之後的指令流中之指令。分支預測器355包括分 ^ 支歷史表(BHT)357且耦接至提取器305。分支歷史表 (BHT)357追蹤先前所執行分支指令之歷史結果。分支單元 (BRU)3 50使用此歷史分支執行資訊以對其當前接收之分支 - 指令進行分支預測。 完成單元3 65耦接至執行單元中之每一者,即,FXU 330、FPU 33 5、LSU 340、VMX 345及 BRU 35 0。更特定 言之,完成單元365耦接至FXU暫存器檔案330A及FPU暫 存器檔案335A。完成單元365確定推測性執行的指令是否 應完成。若分支預測器355正確預測分支,則在分支之後 135995.doc -22- 200939116 的指令應完成。舉例而言,若分支預測器355正確預測分 支’則在彼分支之後的定點或整數指令應完成。若在正確 預測分支之後的指令為定點指令,則完成單元365控制分 支之定點結果至定點暫存器槽案330A之寫回。若在正確預 • 測分支之後的指令為浮點指令,則完成單元3 65控制彼浮 點指令結果至浮點暫存器檔案335A之寫回。當指令完成 時,其不再為推測性的。分支執行單元(BRU)35〇與完成單 元365及BHT 357協同操作以解析是否採用特定分支指令。 ® 圖3之處理器300包括一提取節流控制器37〇 ,其在一實 施例中以類似於圖1之提取節流控制器2〇〇的方式操作。更 特定言之,在一例示性實施例中,提取節流控制器37〇包 括分支指令佇列(BIQ)372及信賴佇列(c〇NF Q)374。提取 節流控制器370亦包括具有抑制功能之提取節流狀態機 (FTSMWIF)376,其控制對藉由提取器3〇5進行之指令提取 的節流。分支指令佇列(BIq)372儲存其自提取器3〇5所接 ❹ 收之分支指令。對於BIQ 375中之每一分支指令,信賴佇 歹J 374儲存各別k賴資訊,其指示對分支預測器提供之 彼分支預測的信賴度位準》BIQ 372可包括有效及無效的 分支指令。無效分支指令為完成單元365先前解析但仍保 持於BIQ 372中之彼等經推測執行的分支指令。biq 中 之剩餘有效分支指令為仍"在執行中,,之彼等分支指令, 即,疋成單7G 365尚未解析之彼等經推測執行的分支指 令〇 提取節流控制器370包括具有抑制功能之提取節流狀態 135995.doc -23- 200939116 機(FTSMWIF)376,其在某些預定條件下指導提取器3〇5使 自指令快取記憶體310之指令提取節流以節約電力。若共 同經採用之BIQ 372中的有效分支指令在各別分支預測中 累積展現小於第一預定信賴量’則FTSMWIF 3 76可指導提 取節流之開始以節省電力。然而,一旦此節流開始,若 BIQ 3 72中之特定當前發佈分支指令展現小於第二預定信 賴量’則FTSM 375在預定的相對短的時間窗中抑制提取 節流》 _ 在一實施例中,FTSMWIF 376進行第一測試及第二測試 以執行以上彳§賴確定。更特定言之,FTSMWIF 3 76執行第 一測試以確定共同經採用之BIQ 372中的有效分支指令是 否累積展現小於第一預定信賴臨限值。若共同經採用之 BIQ 3 72中的有效分支指令確實累積展現比第一預定信賴 量更小的信賴度,則FTSMWIF 376可指導提取節流之開 始在17丁8厘\^1卩3 76開始提取節流之後,1?丁81^界117 376對 φ BIQ 372中之特定當前發佈分支指令進行第二測試以確定 特定當前發佈分支指令是否展現小於第二預定信賴量。若 第一測試發現特定當前發佈分支指令確實展現小於第二預 定信賴量,貝彳FTSMWIF 376可指導抑制提取節流以增加可 能的分支重新導向事件中的效能。 2一實施例中,設計者使第二測試所使用之分支預測中 的 <吕賴度基於在分支指令預測時間所得到且對應於信賴仔 歹J 374中針對彼分支所儲存之值的信賴值。在另一實施例 中FTSMWIF 376自其他指令特徵(諸如特定分支之性質) J35995.doc -24- 200939116 獲得此信賴資訊《舉例而言,間接分支或pc相對條件向前 刀支可用於推斷低信賴度。相反,無條件分支指令、自子 路由分支指令之返回(例如,Power ArchitectureTM中至鏈 接暫存器之分支(Mr·))及向後PC相對條件分支指令可用於 推斷高信賴度。 在一實施例中,處理器300可將用於第二信賴測試之信
賴資訊儲存於分支指令佇列(BIq)372或信賴佇列(c〇nf Q)374中之至少一者中。在另一實施例中處理器3⑻可將 此信賴資訊直接與分支-㈣存於分支發料列(卿中 以減小執行自BIQ或CONFQ之讀取操作的額外延時。 所揭示處理器3 0 0之不同實施例可在預定冑間窗(在其期 間處理器抑制提取節流)使用不同時間值或設定。在一實 施例中’處理器300準確地在一循環内抑制提取節流該 循環對應於當前分支指令(處理器為其停用提取節流)可引 起對應於重新導向之第-提取的循環。在另—實施例中, 處理器300可使用提取節流之多個循環,該等循環包括第 -重新導向循環,亦即回應於對應於抑制分支之重新導向 的第-提取’且進-步包括對應於下一提取循環(對應於 第一提取重新導向循環之後的提取)的第二循環。處理器 之-實施例可在硬體設計時間確定用於第二測試之特定時 間窗設定。在另-實施例中,此時間窗可藉由電力管理卫 具、動體、超級監督器、作業系統或應用程式來程式化。 當對分支指令仔列(_〇中之有效分支預測的累積信 賴度小於第一預定信賴位準時’圖3之提取節流控制器37〇 135995.doc -25- 200939116 節流藉由提取器305之指令提取。換言之,當與BIQ 372中 之有效分支指令相關聯的C〇NF Q 374中之信賴位元共同 表示小於第-預定信賴位準之—累積信賴位準時,提取節 流控制器370開始提取節流。此第一信賴測試因此為"累積 信賴測試",因為其考慮BIQ 372中作為一群之多個有效分 支指令的合計信賴度。所揭示處理器可使用一提取節流控 制器,其使用除分支指令佇列及信賴佇列以外的結構及機 構以在第一累積信賴測試中確定信賴度之累積位準。 提取控制器375亦進行第二信賴測試,即,對發佈級或 序列器325當前選擇以用於發佈之每一分支指令的信賴測 試。此為"個別信賴測試",因為提取節流控制器3 7〇對發 佈級或單元325選擇以用於發佈之每一分支指令執行此測 試。此測試確定特定分支指令是否展現小於第二預定信賴 位準。若特定分支指令展現小於第二預定信賴位準,則提 取節流控制器370可在預定時間週期中抑制、壓制或更動 (override)提取節流。換言之,在此等條件下,提取節流控 制器370在預定時間週期中重新啟用指令提取而不管在第 一累積信賴測試中所得到之提取節流指示,以增加處理器 效能。在一實施例中,為了抑制提取節流,提取控制器 370指導提取器305再次以全速開始提取指令。藉由以此方 式在發佈時重新啟用提取,分支單元(BRU)350剛好及時產 生重新導向位址以供提取器305使用。此導致顯著處理器 效能增加。在此預定之時間週期或窗期滿之後,提取節流 控制器370可在第一累積信賴測試指示作為一群之BIq 370 135995.doc •26- 200939116 中之有效分支指令展現比第一預定信賴位準更小的累積信 賴位準的情況下再次開始提取節流。抑制提取節流包括更 動、終止及暫停提取節流。在一替代實施例中,當第一累 積信賴測試指示使用提取節流且第二個別信賴測試指示處 理器應抑制或壓制指令提取時,處理器可以小於處理器正 常提取速率之一減小提取速率來執行指令提取。在一實施 例中,在預期到當特定分支指令展現比第二預定信賴位準 更小的信賴度時分支重新導向為可能的情況下提取節流控 ® 制器370進行提取節流抑制的意義上,提取節流之抑制為 推測性。 圖4為展示處理器300用於增加處理器效能之提取節流抑 制方法的流程圖。具有抑制功能之提取節流狀態機 (FTSMWIF)376產生一節流信號(THROTTLE),該節流信號 控制指令之提取節流與自指令快取記憶體310之指令提取 節流之抑制兩者。處理流程在處理器300初始化時開始, A 按照初始化處理器區塊405。處理器設計者、使用者或其 他實體藉由將適當輸入選擇提供至FTSMWIF 376來啟用或 停用FTSMWIF 376,按照區塊410。FTSMWIF 376執行測 . 試以確定FTSMWIF 376是否展現經啟用狀態,按照決定區 塊415。若FTSMWIF 3 76不展現經啟用狀態,則提取器305 以全速繼續提取指令(亦即,無提取節流),按照區塊420。 然而,若FTSMWIF 3 76展現經啟用狀態,則提取節流可在 適當條件下開始。 若FTSMWIF 376展現經啟用狀態,則提取器305提取指 135995.doc -27- 200939116 令且提取節流控制器370讀取分支預測器355之分支歷史表 (BHT)357以觀察對經提取指令流中之經提取分支指令的分 支預測,按照區塊425。提取器305將經提取指令流之分支 指令供應至BIQ 372。BIQ 372將彼等經提取之分支指令寫 入為BIQ之輸入項,按照區塊430。BIQ 372因此儲存一群 刀支才曰令,其包括指令流中的當前”在執行中"或未解析之 彼等分支指令。此"執行中"分支指令為有效分支指令。 BIQ 372亦可包括提取節流控制器37〇處理為無效分支指令 ® 之一些舊的經解析分支指令。信賴佇列374儲存諸如用於 BIQ 372之每一分支指令輸入項之信賴位元的信賴資訊, 亦按照區塊430。信賴位元1指示對分支預測器355針對各 別分支指令進行之分支預測的高信賴度。信賴位元〇指示 對为支預測器3 5 5針對各別分支指令進行之分支預測的低 信賴度。 在一實施例中’節流控制器370藉由將信賴佇列374中之 ❹ 信賴位元與各別有效位元進行邏輯及運算來限定信賴位 元,按照區塊435。提取節流狀態機(FTS]VIWIF)376確定 BIQ 372中之有效分支指令的累積分支指令群(CBIG)信賴 位準’按照區塊440。在一實施例中,?丁81^贾1? 376將在 信賴佇列374中的用於BIQ 372之各別有效分支指令之信賴 位元或信賴資訊加在一起,因此形成累積分支指令群 (081〇)信賴位準。〇810信賴位準指示對81(^ 372當前儲存 之有效分支指令之分支預測的信賴量。當處理器執行指令 流之指令時,此信賴位準隨BIQ 372所儲存之分支指令改 135995.doc -28· 200939116 變而變化。熟習此項技術者可調整或修改圖4之所揭示提 取節流抑制方法以結合其他方法工作,以用於藉由調適及 /或替換圖4之步驟430、435及440中之一或多者來確定第 一累積分支指令群(CBIG)信賴位準。 FTSMWIF 376執行第一測試以確定當前累積分支指令群 (CBIG)信賴位準是否小於第一預定信賴臨限值,按照決定 區塊445。若如此,此指示對分支指令佇列(BIQ)372中之 有效分支指令之分支預測的總體低信賴度。在一實施例 中,設計者或其他實體選擇第一預定信賴臨限值以使得若 當前CBIG信賴位準小於第一預定信賴臨限值,則對BIQ 3 72中之分支而言分支錯誤預測更為可能。若決定區塊445 之測試確定CBIG信賴位準不小於第一預定信賴臨限值, 則提取節流控制器370不開始提取節流,按照區塊450。 FTSMWIF 376產生一 THROTTLE信號,該 THROTTLE信號 指導提取器305以全速繼續自ICACHE 310提取指令。處理 流程繼續回到區塊425且指令提取以全速繼續。 然而,若決定區塊445之測試確定CBIG信賴位準當前小 於第一預定信賴臨限值,則提取節流控制器370開始提取 節流以減小處理器電力消耗,按照區塊455。更特定言 之,FTSMWIF 3 76藉由產生指導提取器305減小速率或速 度(提取器305以其自ICACHE 3 10提取指令)之THROTTLE 信號來啟動提取節流。因此,當針對BIQ 372中之有效分 支指令之群而言總體分支預測信賴度低時提取節流開始以 節省電力。若干不同的提取節流樣式為可能的以達成不同 135995.doc -29- 200939116 數量之提取節流。在一實施例中,處理器可基於特定信賴 值適應性地選擇提取節流樣式以針對比較低的CBIG信賴 值更主動地節流且針對在第一臨限值以下的比較高的 CBIG信賴值較不主動地節流。 在一實施例中,一旦提取節流開始,則FTSMWIF 376自 發佈單元325接收發佈資訊,其當發佈單元325發佈BIQ 372中之每一分支指令時通知FTSMWIF 376,按照區塊 460。發佈資訊包括分支發佈資訊,其通知FTSMWIF 376 發佈單元325已將當前發佈之分支指令發送至BRU 350以用 於執行。當發佈單元325發佈彼分支指令時,FTSMWIF 376檢查當前發佈分支指令之在信賴佇列374中的各別信賴 度,按照區塊462。FTSMWIF 376接著進行第二測試以確 定對BIQ 372中之特定當前發佈分支指令之分支預測的信 賴度是否小於第二預定信賴臨限值,按照決定區塊465。 在一實施例中,處理器300使第二測試中所分析之分支 預測中的信賴度基於節流控制器370在分支指令預測時間 得到且對應於信賴佇列所儲存之信賴值的信賴值。處理器 可自指令特徵(諸如特定分支指令之性質)得到此信賴資 訊。舉例而言,處理器可針對間接分支指令或PC相對條件 向前分支指令推斷低信賴度,而處理器可針對無條件分支 指令、自子路由分支指令之返回(例如,Power Architecture™中至鏈接暫存器之分支(blr)指令)及向後PC 相對條件分支指令推斷高信賴度。處理器之一實施例將用 於第二測試之信賴資訊儲存於至少一信賴佇列中。舉例而 135995.doc -30- 200939116 言,為了使用信賴資訊’提取節流控制器370自信賴仔列 374榻取信賴資訊。在另一實施例中,處理器將用於第一 測試之信賴資訊直接與各別分支指令一起儲存於分支發佈 佇列(BIQ)中以減小執行自BIQ或CQ之讀取操作的額外延 時。 若對特定當前發佈分支指令之預測的信賴度不小於第二 預定臨限值,則FTSMWIF 376指導提取器3〇5繼續提取節 流。在彼種狀況下,處理流程繼續回到提取區塊425。然 而’若對特定當前發佈分支指令之預測的信賴度小於第二 預定臨限值,則FTSMWIF 376在預定持續時間之時間窗中 抑制提取節流,按照區塊470 ^在一實施例中,此節流抑 制時間窗展現相對短的持續時間。處理器之不同實施例可 使用不同持續時間之時間窗,提取節流控制器370在其期 間抑制指令提取節流。在一實施例中,提取節流控制器 37〇準確地在一循環中抑制提取節流,該循環對應於當當 ❿ 則分支(為其抑制節流)可引起對應於分支重新導向之第一 提取時的循環。在另一實施例中’處理器可在多個循環内 抑制提取節流,該等循環包括第一重新導向循環,亦即回 應於對應於抑制分支之重新導向的第一提取,且進一步包 ㈣應於下—提取循環的第二循環,該下-循環對應於在 第—提取循環之後的提取。 在此節流抑制時間窗期滿之後,FTSMWIF 376停止抑制 或更動提取節流以使得提取節流再次開始,按照區塊 475。處理流程繼續回到提取區塊425。當在決定區塊料$ 135995.doc •31 · 200939116 處累積分支指令群(CBIG)信賴位準不再小於第一預定臨限 值時,提取節流停止且再次進行全速提取。 在以上實施例中,FTSMWIF 376監視一群分支指令的累 積分支指令群(CBIG)信賴位準以確定彼信賴位準是否足夠 低到值得進行提取節流。在等效實施例中,亦為可能的是 FTSMWIF 376監視對一群分支指令的預測之信賴位準之累 積分支缺乏以確定彼信賴缺乏是否足夠高到值得進行提取 節流。FTSMWIF 376可使用此兩個等效條件中之任一者以 觸發提取節流。 在一實施例中,回應於第二測試發現特定當前發佈分支 指令展現比第二預定信賴臨限值更小的分支預測信賴度, 節流控制器370再次允許節流開始於特定分支將指導提取 器305自記憶體中之新位置提取時且可能在此後一或多個 循環時允許節流開始。換言之,只要發佈單元325選擇低 信賴分支指令以用於發佈,FTSMWIF 376就推測性停用提 取節流。藉由在此時點重新啟用提取,分支單元350剛好 及時產生重新導向位址以用於由提取器305使用。停用提 取節流等效於以全速重新啟用提取。 現針對實施例概述提取節流抑制,其中FTSMWIF 376監 視分支指令之一群的累積分支指令群(CBIG)信賴位準以確 定彼信賴位準是否足夠低到值得進行提取節流,即小於第 一預定臨限值。在彼實施例中,當特定當前發佈分支指令 展現比第二預定臨限值更小的信賴度時FTSMWIF 376抑制 提取節流,按照圖4流程圖之區塊4 6 5。 135995.doc -32- 200939116 現針對實施例概述提取節流抑制,其中FTSMWIF 376監 視一群分支指令之信賴位準的累積分支指令群(CBIG)缺乏 以確定彼信賴位準缺乏是否足夠高到值得進行提取節流, 即大於信賴臨限值之第一預定缺乏。在彼實施例中,當特 定當前發佈分支指令展現比信賴臨限值之第二預定缺乏更 多的信賴缺乏時,FTSMWIF 376抑制提取節流。換言之, FTSMWIF 376以一測試來替換圖4流程圖之決定區塊465, 該測試確定特定當前發佈分支指令何時展現與信賴臨限值 之第二預定缺乏相比對其分支預測的更多的信賴缺乏。 圖5展示使用處理器100或300之資訊處置系統(IHS) 5 00。資訊處置系統為處理、傳送、通信、修改、儲存或 另外處置呈數位形式、類比形式或其他形式之資訊的系 統。資訊處置系統500包括一匯流排505,其將處理器 100、3 00經由記憶體控制器520及記憶體匯流排522耦接至 系統記憶體5 1 0。視訊圖形控制器525將顯示器530耦接至 匯流排505。諸如硬碟機、CD機、DVD機或其他非揮發性 儲存器之非揮發性儲存器535耦接至匯流排505以向資訊處 置系統500提供資訊之永久儲存。作業系統540載入於記憶 體510中以管理資訊處置系統500之操作。諸如鍵盤及滑鼠 指向設備之I/O設備545經由I/O控制器550及I/O匯流排555 耦接至匯流排505。諸如USB、IEEE 1394匯流排、ΑΤΑ、 SATA、PCI、PCIE及其他匯流排之一或多個擴充匯流排 560耦接至匯流排505以促進周邊裝置及設備至資訊處置系 統500之連接。網路配接器565耦接至匯流排505以賦能資 135995.doc -33- 200939116 訊處置系統500有線或無線地連接至網路及其他資訊處置 系統。雖然圖5展示使用處理器1〇〇或3〇〇之一資訊處置系 統’但資訊處置系統可採用許多形式。舉例而言,資訊處 置系統500可採用桌上型、伺服器、攜帶型、膝上型、筆 • $型或其他形狀因數之電腦或資料處理系統的形式。資訊 4置系統500可採用其他形狀因數,諸如,遊戲設備、個 人數位助理(PDA)、攜帶型電話設備、通信設備或包括處 理器及記憶.體之其他設備。 ^ #於本發明之此描述,本發明之修改騎代實施例對於 熟習此項技術者而言將為顯而易見的。因此,此描述向熟 習此項技術者教示執行本發明之方式且意欲被解釋為僅為 說明性的。所展示及描述之本發明之形式構成本實施例。 熟習此項技術者可對零件之形狀、大小及配置進行各種改 變。舉例而言,熟習此項技術者可藉由等效元件來取代此 處所說明及描述之元件。此外,熟習此項技術者在得到本 φ 發明之此描述的益處之後可在不脫離本發明之範疇的情況 下獨立於其他特徵之使用而使用本發明之特定特徵。 【圖式簡單說明】 圖1展示使用提取節流的所揭示處理器之方塊圖,其中 . 提取節流具有抑制功能。 圖2展示圖丨之處理器所包括之提取節流控制器的方塊 圖。 圖3展示所揭示處理器之簡化方塊圖。 圖4為展示在圖3之處理器進行提取節流操作時在其中之 135995.doc -34- 200939116 處理流程的流程圖。 圖5為使用圖!之處理器或圖3之處 (IHS)的方塊圖。 讯處置系統 【主要元件符號說明】 100 處理器 105 記憶體 110 提取器 110Α ® 110Β 115 116 117 120 120Α 125 Α 125Α 130 135 140 142 145 200 205 210 指令位址輸入端 提取器輸入端 解碼器電路 暫存器重新命名級 發佈單元 定點執行單元(FXU) 暫存器檔案 浮點執行單元(FPU) 暫存器檔案 載入儲存單元(LSU) 分支執行單元(BRU) 分支預測器 分支歷史表(ΒΗΤ) 完成單元 節流控制電路/節流控制器 分支指令佇列(BIQ) 信賴追蹤佇列/信賴佇列(CQ) 135995.doc -35- 200939116 215 頭指標 220 尾指標 225 控制邏輯 230 具有抑制功能之提取節流狀態機(FTSMWIF) 235 邏輯及電路 235A 16線輸入端 235B 16線輸入端 240 有效向量產生電路 ® 245 有效向量盒 250 加法器 255 比較器 260 可程式化臨限電路 300 處理器 305 提取器 310 指令快取(ICACHE)記憶體 φ 315 解碼器 320 暫存器重新命名電路 325 發佈級/序列器 330 整數/定點執行單元(FXU) 330A 暫存器檔案 335 浮點執行單元(FPU) 335A 暫存器檔案 340 載入/儲存執行單元(LSU) 345 向量媒體擴展執行單元(VMX) 135995.doc -36- 200939116 350 分支執行單元(BRU) 355 分支預測器 357 分支歷史表(BHT) 365 完成單元 370 提取節流控制器 372 分支指令佇列(BIQ) • 374 信賴佇列(CONF Q) 376 提取節流狀態機(FTSMWIF) ® 500 資訊處置系統(IHS) 505 匯流排 510 系統記憶體 520 記憶體控制器 522 記憶體匯流排 525 視訊圖形控制器 530 顯示器 表 535 非揮發性儲存器 540 作業系統 545 I/O設備 - 550 I/O控制器 555 I/O匯流排 560 擴充匯流排 565 網路配接器 135995.doc -37·

Claims (1)

  1. 200939116 十、申請專利範圍: 一種操作一處理器之方法,該方法包含: 由一提取器自一指令源提取指令以提供包括經提取分 支指令之一指令流; 由一分支預測器預測該等經提取分支指令之結果,因 此提供經提取分支指令之各別分支預測; 由一發佈單元將經提取分支指令發佈至一分支執行單 元以用於執行; 由一提取節流控制器在作為一群之一分支指令佇列中 之經提取分支指令展現小於一第一預定分支預測信賴臨 限值的情況下,藉由該提取器節流對指令的該提取;及 由該提取節流控制器在當前由該發佈單元所發佈之一 特疋經提取分支指令展現小於一第二預定分支預測信賴 臨限值的情況下,推測地抑制對指令之該提取的該節 流。
    如凊求項1之方法,其中該節流步驟包括由該提取節流 控制器執行一第一測試以確定該分支指令佇列中作為一 群之經提取分支指令是否累積展現小於該第一預定分支 預測信賴臨限值。 如請求項1之方法’其中該推測地抑制步驟包括由該提 取節流控制器執行一第二測試以確定當前由該發佈單元 所發佈之該特定經提取分支指令是否展現小於該第二預 疋分支預測信賴臨限值。 如清求項2之方法,其中由該提取節流控制器對分支發 135995.doc 200939116 佈仔列^執W分U令進行 5.如請求項】之方法,其中該推測抑制步=杯 節流控制器在預定持續時間之一窗中暫該提: 取的該節流。 之該提 6. 如請求項5之方法,其進一步 窗期、黑夕α丄 含在預定持續時間之該 期滿之後’由該提取器返回提取節流。 7. 如請求項1之方法, ν 、 匕含由一信賴儲存記憶體 儲存該分支指令佇列中每一 母Μ取分支指令I㈣ 匀支預測信賴值。 8. 一種處理器,其包含: 一指令源,其儲存指令; 一輕接至該指令源之提取器,其自該指令源提取指令 以提供包括經提取分支指令之一指令流; 一分支預測器,其預測該等經提取分支指令之結果, 因此提供經提取分支指令之各別分支預測; 一耦接至該提取器及一分支執行單元之發佈單元,其 將經提取分支扣令發佈至該分支執行單元以用於執行,及 一耦接至該提取器及該發佈單元之提取節流控制器, 其在作為一群之一分支指令佇列中之經提取分支指令展 現小於一第一預定分支預測信賴臨限值的情況下,藉由 該提取器節流對指令的該提取,該提取節流控制器在當 别由該發佈單元所發佈之一特定經提取分支指令展現小 於一第二預定分支預測信賴臨限值的情況下,推測地抑 制對指令之該提取的該節流。 135995.doc -2- 200939116 9. 如請求項8之處理器,其中該提取節流控制器執行一第 :測試以確㈣分支指令㈣巾作為—群之經提取分支 指令是否累積展現小於該第一預定分支預測信賴臨限 值。 10. 如請求項9之處理器’其中在推測地抑制對經提取指令 :該節流之前,該提取節流控制器執行-第二測試以確 定當前由該發佈單元所發佈之該特定經提取分支指令是 否展現小於該第二預定分支預測信賴臨限值。 如凊求項9之處理器,其中由該提取節流控制器對分支 發佈佇列内之執行中分支指令進行該第一測試。 12. 如請求項8之處理器,其中該提取節流控制器藉由在預 疋持續時間之一窗中暫停對指令之該提取的該節流而推 測地抑制對指令之該提取的該節流。 13. 如請求項12之處理器,其中該提取節流控制器在預定持 續時間之該窗期滿之後返回提取節流。 藝 14.如明求項8之處理器,其中該提取節流控制器包括該分 支指令佇列,該提取節流控制器進一步包括一信賴儲存 s己憶體,該信賴儲存記憶體儲存該分支指令佇列中之每 -一經提取分支指令的一各別分支預測信賴值。 I5. —種資訊處置系統(IHs),其包含: 一記憶體; 一搞接至該記憶體之處理器,該處理器包括: 一指令源,其儲存指令; 一轉接至該指令源之提取器,其自該指令源提取指 135995.doc 200939116 令以提供包括經提取分支指令之一指令流; 一分支預測器’其預測該等經提取分支指令之結 果’因此提供經提取分支指令之各別分支預測; 一耦接至該提取器及一分支執行單元之發佈單元, 其將經提取分支指令發佈至該分支執行單元以用於執 行;及 一耦接至該提取器及該發佈單元之提取節流控制 器,其在作為一群之一分支指令佇列中之經提取分支 指令展現小於一第一預定分支預測信賴臨限值的情況 下,藉由該提取器節流對指令的該提取,該提取節流 控制器在當前由該發佈單元所發佈之一特定經提取分 支扣令展現小於一第二預定分支預測信賴臨限值的情 況下,推測地抑制對指令之該提取的該節流。 16.如請求項15之資訊處置系統,其中該提取節流控制器執 打一第一測試以確定該分支指令佇列中作為一群之經提 取分支指令是否累積展現小於該第—預定分支預測信賴 臨限值。 17·如請求項16之資訊處置,系統,其中在推測地抑制對經提 取指令之該節流之前,該提取節流控制器執行一第二測 試以確定當前由該發佈單元所發佈之該敎經提取分支 指令是否展現小於該第二預定分支預測信賴臨限值。 18. 如請求項16之資訊處置系統,其中由該提取節流控制器 對分支發佈㈣内之執行中分支指令進行㈣一測試。 19. 如請求項15之資訊處置系統,其中該提取節流控制器藉 135995.doc -4. 200939116 由在預疋持續時間之一窗中暫停對指令之該提取的該節 流而推測地抑制對指令之該提取的該節流。 20.如請求項19之資訊處置系統,其中該提取節流控制器在 預定持續時間之該窗期滿之後返回提取節流。
    135995.doc
TW097143346A 2007-12-05 2008-11-10 Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system TW200939116A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/951,112 US8006070B2 (en) 2007-12-05 2007-12-05 Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system

Publications (1)

Publication Number Publication Date
TW200939116A true TW200939116A (en) 2009-09-16

Family

ID=40722887

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097143346A TW200939116A (en) 2007-12-05 2008-11-10 Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system

Country Status (4)

Country Link
US (1) US8006070B2 (zh)
JP (1) JP5285408B2 (zh)
CN (1) CN101452378B (zh)
TW (1) TW200939116A (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925853B2 (en) * 2008-01-04 2011-04-12 International Business Machines Corporation Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system
US8020167B2 (en) * 2008-05-05 2011-09-13 Dell Products L.P. System and method for automatic throttling of resources in an information handling system chassis
US9335980B2 (en) 2008-08-15 2016-05-10 Apple Inc. Processing vectors using wrapping propagate instructions in the macroscalar architecture
US9342304B2 (en) 2008-08-15 2016-05-17 Apple Inc. Processing vectors using wrapping increment and decrement instructions in the macroscalar architecture
US9335997B2 (en) 2008-08-15 2016-05-10 Apple Inc. Processing vectors using a wrapping rotate previous instruction in the macroscalar architecture
US20100332812A1 (en) * 2009-06-24 2010-12-30 Doug Burger Method, system and computer-accessible medium for low-power branch prediction
CN101604235B (zh) * 2009-07-10 2012-03-28 杭州电子科技大学 一种嵌入式处理器分支预测的方法
US9411599B2 (en) 2010-06-24 2016-08-09 International Business Machines Corporation Operand fetching control as a function of branch confidence
US9836304B2 (en) * 2010-11-15 2017-12-05 Advanced Micro Devices, Inc. Cumulative confidence fetch throttling
US9778934B2 (en) * 2010-11-16 2017-10-03 Advanced Micro Devices, Inc. Power efficient pattern history table fetch in branch predictor
EP2691854A1 (en) * 2011-03-30 2014-02-05 Freescale Semiconductor, Inc. A method and apparatus for controlling fetch-ahead in a vles processor architecture
US9389860B2 (en) 2012-04-02 2016-07-12 Apple Inc. Prediction optimizations for Macroscalar vector partitioning loops
US9116686B2 (en) 2012-04-02 2015-08-25 Apple Inc. Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction
US9389868B2 (en) * 2012-11-01 2016-07-12 International Business Machines Corporation Confidence-driven selective predication of processor instructions
US11150721B2 (en) * 2012-11-07 2021-10-19 Nvidia Corporation Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations
GB2514956B (en) * 2013-01-21 2015-04-01 Imagination Tech Ltd Allocating resources to threads based on speculation metric
US9489204B2 (en) * 2013-03-15 2016-11-08 Qualcomm Incorporated Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US10496410B2 (en) * 2014-12-23 2019-12-03 Intel Corporation Instruction and logic for suppression of hardware prefetchers
DE102015208591B4 (de) * 2015-05-08 2016-12-08 Physik Instrumente (Pi) Gmbh & Co. Kg Piezoelektrischer Drehantrieb mit einem als Blattfeder ausgebildeten Spannmittel
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9940136B2 (en) 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US11755484B2 (en) * 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10061584B2 (en) * 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register
US10474462B2 (en) 2016-02-29 2019-11-12 Qualcomm Incorporated Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions
US10331566B2 (en) 2016-12-01 2019-06-25 International Business Machines Corporation Operation of a multi-slice processor implementing adaptive prefetch control
CN108549400B (zh) * 2018-05-28 2021-08-03 浙江工业大学 基于对数增强型双幂次趋近律和快速终端滑模面的四旋翼飞行器自适应控制方法
US10776122B2 (en) 2018-06-14 2020-09-15 International Business Machines Corporation Prioritization protocols of conditional branch instructions
US11507380B2 (en) * 2018-08-29 2022-11-22 Advanced Micro Devices, Inc. Branch confidence throttle
US11216279B2 (en) * 2018-11-26 2022-01-04 Advanced Micro Devices, Inc. Loop exit predictor
US11003454B2 (en) * 2019-07-17 2021-05-11 Arm Limited Apparatus and method for speculative execution of instructions
US11620224B2 (en) * 2019-12-10 2023-04-04 Advanced Micro Devices, Inc. Instruction cache prefetch throttle
US11249764B2 (en) 2020-04-14 2022-02-15 Shanghai Zhaoxin Semiconductor Co., Ltd. Flushing in a microprocessor with multi-step ahead branch predictor and a fetch target queue
CN111459550B (zh) * 2020-04-14 2022-06-21 上海兆芯集成电路有限公司 具高度领先分支预测器的微处理器
US11508124B2 (en) * 2020-12-15 2022-11-22 Advanced Micro Devices, Inc. Throttling hull shaders based on tessellation factors in a graphics pipeline
US11776085B2 (en) 2020-12-16 2023-10-03 Advanced Micro Devices, Inc. Throttling shaders based on resource usage in a graphics pipeline
US11710207B2 (en) 2021-03-30 2023-07-25 Advanced Micro Devices, Inc. Wave throttling based on a parameter buffer
US11972264B2 (en) * 2022-06-13 2024-04-30 Arm Limited Micro-operation supply rate variation

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742805A (en) * 1996-02-15 1998-04-21 Fujitsu Ltd. Method and apparatus for a single history register based branch predictor in a superscalar microprocessor
US5822577A (en) * 1996-05-01 1998-10-13 International Business Machines Corporation Context oriented branch history table
US6411156B1 (en) * 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
US6415388B1 (en) 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US6233645B1 (en) * 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US7035997B1 (en) * 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US6272666B1 (en) * 1998-12-30 2001-08-07 Intel Corporation Transistor group mismatch detection and reduction
US6484265B2 (en) * 1998-12-30 2002-11-19 Intel Corporation Software control of transistor body bias in controlling chip parameters
US6393374B1 (en) * 1999-03-30 2002-05-21 Intel Corporation Programmable thermal management of an integrated circuit die
US6363490B1 (en) * 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
US6625744B1 (en) * 1999-11-19 2003-09-23 Intel Corporation Controlling population size of confidence assignments
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6697932B1 (en) * 1999-12-30 2004-02-24 Intel Corporation System and method for early resolution of low confidence branches and safe data cache accesses
US6766441B2 (en) * 2001-01-19 2004-07-20 International Business Machines Corporation Prefetching instructions in mis-predicted path for low confidence branches
US6608528B2 (en) * 2001-10-22 2003-08-19 Intel Corporation Adaptive variable frequency clock system for high performance low power microprocessors
US7032116B2 (en) * 2001-12-21 2006-04-18 Intel Corporation Thermal management for computer systems running legacy or thermal management operating systems
US6931559B2 (en) * 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US7281140B2 (en) * 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
TW567408B (en) * 2002-03-29 2003-12-21 Uniwill Comp Corp Apparatus and method for controlling power and clock speed of electronic system
TWI262380B (en) * 2002-04-25 2006-09-21 Quanta Comp Inc Dynamic adjustment method for power consumption of computer system
US20040003215A1 (en) * 2002-06-28 2004-01-01 Evgeni Krimer Method and apparatus for executing low power validations for high confidence speculations
US6934865B2 (en) * 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US6762629B2 (en) * 2002-07-26 2004-07-13 Intel Corporation VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
US6908227B2 (en) * 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7085945B2 (en) * 2003-01-24 2006-08-01 Intel Corporation Using multiple thermal points to enable component level power and thermal management
US7124321B2 (en) * 2003-02-10 2006-10-17 Sun Microsystems, Inc. Adaptive throttling
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
EP1658560B1 (en) * 2003-08-26 2009-06-10 International Business Machines Corporation Processor with demand-driven clock throttling for power reduction
US7240225B2 (en) * 2003-11-10 2007-07-03 Dell Products L.P. System and method for throttling power in one or more information handling systems
US7363517B2 (en) * 2003-12-19 2008-04-22 Intel Corporation Methods and apparatus to manage system power and performance
CN1270233C (zh) * 2003-12-24 2006-08-16 智慧第一公司 远跳跃及远呼叫指令的退回分支预测机制的处理器及方法
US7194641B2 (en) * 2004-01-22 2007-03-20 International Business Machines Corporation Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation
CN1280713C (zh) * 2004-03-09 2006-10-18 中国人民解放军国防科学技术大学 双栈返回地址预测器设计方法
US7334143B2 (en) * 2004-04-19 2008-02-19 Hewlett-Packard Development Company, L.P. Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value
US7418608B2 (en) * 2004-06-17 2008-08-26 Intel Corporation Method and an apparatus for managing power consumption of a server
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7392366B2 (en) * 2004-09-17 2008-06-24 International Business Machines Corp. Adaptive fetch gating in multithreaded processors, fetch control and method of controlling fetches
US7478214B2 (en) * 2006-01-04 2009-01-13 Intel Corporation Clock-gated random access memory
US7627742B2 (en) * 2007-04-10 2009-12-01 International Business Machines Corporation Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US20080263325A1 (en) * 2007-04-19 2008-10-23 International Business Machines Corporation System and structure for synchronized thread priority selection in a deeply pipelined multithreaded microprocessor

Also Published As

Publication number Publication date
US8006070B2 (en) 2011-08-23
CN101452378B (zh) 2011-11-23
CN101452378A (zh) 2009-06-10
JP2009140502A (ja) 2009-06-25
US20090150657A1 (en) 2009-06-11
JP5285408B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
TW200939116A (en) Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system
US7627742B2 (en) Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
EP3001308B1 (en) Loop predictor-directed loop buffer
US7925853B2 (en) Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system
EP1889152B1 (en) A method and apparatus for predicting branch instructions
US7437537B2 (en) Methods and apparatus for predicting unaligned memory access
US8255669B2 (en) Method and apparatus for thread priority control in a multi-threaded processor based upon branch issue information including branch confidence information
CN105242963B (zh) 执行机构间的切换控制
JP2008530714A5 (zh)
JP7301955B2 (ja) ループ終了予測を用いたプロセッサのループモードの促進又は抑制
JP2002525741A (ja) 間接分岐ターゲットを計算するための方法
JP2011100454A (ja) 分岐誤予測バッファを用いるためのシステム及び方法
EP1946200A2 (en) Systems and methods for mutually exclusive activation of microprocessor resources to control maximum power
EP3039532B1 (en) A data processing apparatus and method for controlling performance of speculative vector operations
US10338923B2 (en) Branch prediction path wrong guess instruction
GB2577050A (en) Allocation filter for prediction storage structure
Perais et al. Elastic instruction fetching
CN112470122B (zh) 具有提前返回预测的分支目标缓冲器
US20090193240A1 (en) Method and apparatus for increasing thread priority in response to flush information in a multi-threaded processor of an information handling system
WO2004068337A1 (ja) 情報処理装置
US9489204B2 (en) Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process
JP5696210B2 (ja) プロセッサ及びその命令処理方法
US6976156B1 (en) Pipeline stall reduction in wide issue processor by providing mispredict PC queue and staging registers to track branch instructions in pipeline
US7343481B2 (en) Branch prediction in a data processing system utilizing a cache of previous static predictions
AbdelHak et al. Reducing misprediction penalty in the branch target buffer