TWI407369B - 具功率感知之指令引退裝置、方法及系統 - Google Patents

具功率感知之指令引退裝置、方法及系統 Download PDF

Info

Publication number
TWI407369B
TWI407369B TW098120442A TW98120442A TWI407369B TW I407369 B TWI407369 B TW I407369B TW 098120442 A TW098120442 A TW 098120442A TW 98120442 A TW98120442 A TW 98120442A TW I407369 B TWI407369 B TW I407369B
Authority
TW
Taiwan
Prior art keywords
instruction
logic
signal
buffer
retirement
Prior art date
Application number
TW098120442A
Other languages
English (en)
Other versions
TW201015435A (en
Inventor
Zeev Sperber
Rafi Marom
Ofer Levy
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of TW201015435A publication Critical patent/TW201015435A/zh
Application granted granted Critical
Publication of TWI407369B publication Critical patent/TWI407369B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Description

具功率感知之指令引退裝置、方法及系統
本發明係關於具功耗意識之指令引退。
接收指令、執行指令、以及提供指令的結果之各階構成了現代的微處理器。許多現代的架構係基於亂序(Out-Of-Order;簡稱OOO)實施,其中可以亂序之方式執行各指令,且稍後將結果依序提交給處理器的一架構狀態。
為了實現此種亂序操作,可將處理器管線分成不同階。在這些階完成了指令的處理時,一指令引退(retirement)階可操作而確認執行的結果是有效的(亦即,並非推測的結果或基於錯誤的資料),且確認並未發生錯誤或異常。在許多處理器架構中,於每一指令引退週期中,整個指令引退邏輯是現用的,因而自所有相關聯的陣列讀取所有相關聯的資料,且針對每一指令而動用全部的指令引退邏輯。該活動之目的在於產生一保證信號並執行與指令引退有關的操作,其中包括事件計算及優先順序設定。
然而,在大部分的週期中,沒有任何事件發生,因而無須計算事件。因此,有了適當操作時不需要的明顯的功率消耗。
【發明內容及實施方式】
在各實施例中,可藉提供各指令引退資源的分割使得只針對操作的有意義部分供電給這些資源之最少量的資源,而可控制處理器的指令引退邏輯來以一種功率敏感性(power sensitive)方式操作。就這一點而言,可分割各陣列或緩衝區等及邏輯,以便適應此種操作。雖然本文所述的實施例是在重新排序緩衝區(reorder buffer;簡稱ROB)的環境下,但是本發明之範圍不限於此方面,且實施例可與給定處理器可能有的各種指令引退邏輯共用。
為了實現電力的優點,與將在每一指令引退期間中發生的正常指令引退活動相關聯之這些陣列及邏輯之分割區可以相當小,因而消耗最小的電力。相比之下,在需要在引退指令中執行與各事件相關聯的額外計算之較罕見之情形中,可供電給較大的陣列及邏輯。在此種方式下,可視需要而執行所需的操作,同時只需針對大多數的指令引退操作供電給最少的指令引退邏輯。雖然本說明書大致當作指令引退來說明,但是我們應可了解:在各實施例中,指令可能意指所謂的微運算(uop),其中諸如一巨集指令(macro instruction)的單一使用者層級的指令可被分成複數個微運算。
ROB執行諸如異常處理、指令指標(例如,EIP/UIP)計算、效能監視器(PMON)計算、以及暫存器更新等與指令引退有關之控制。除了偵測錯誤之外,ROB具有其它在無錯誤被偵測且在指令引退時實施的與正常指令引退有關的工作。這些工作包括諸如將新的被引退之值寫到未被重新命名的暫存器、計算狀態位元、更新各新值(例如,資料中斷點位元、命令及狀態暫存器異常、精確度異常等)、以及更新效能監視器等的在一有效指令引退之後執行的操作。根據本發明實施例的一具功耗意識之指令引退機制可至少部分地根據自外部及內部(對ROB而言)指示得到的靜態及動態資訊,而只在需要時選擇性地控制ROB的對功耗有不同需求的單元。
換言之,藉陣列及邏輯的一些分割區可處理只需最小量的功耗之主流正常指令引退工作,而只在需要時,由這些陣列及邏輯的較完整之分割區處理諸如事件處理(例如,錯誤、陷阱(trap)、異常、中斷)等的罕見情況。在此種方式下,於需要時,可正常地操作必須在全效能環境下操作的諸如PMON的特殊模式,且於非現用狀態時進入省電狀態。各實施例因而可藉減少實現指令引退所需的計算量,而允許頻率不可中斷之指令引退時的較大引退寬度。
現在請參閱第1圖,圖中示出根據本發明的一實施例的處理器之方塊圖。如第1圖所示,處理器100可以是一多階管線化亂序處理器。處理器100以第1圖之一較簡化的圖顯示,以便解說配合將於下文中說明的具功耗意識之指令引退操作之各種特徵。
如第1圖所示,處理器100包含前端單元110,該等前端單元110可被用來提取將要被執行的巨集指令,並準備該等巨集指令,以供稍後用於該處理器。例如,前端單元110可包含一指令預先提取器、一指令解碼器、一追蹤快取記憶體(trace cache)、微碼儲存器、以及一uop儲存器。該指令預先提取器可自記憶體提取巨集指令,並將該等巨集指令傳送到指令解碼器,以便將該等巨集指令解碼為原語(primitive)(亦即,微運算),以供該處理器執行。該追蹤快取記憶體可取得被解碼的微運算,並將該等微運算組合成程式順序序列,以便儲存到巨集碼儲存器。然而,在複雜巨集指令之情形中,該微碼儲存器可提供執行操作所需的微運算。當然,可在前端單元110中實施一些額外的組件及特徵。
一亂序引擎115被耦合到前端單元110與執行單元120之間,亂序引擎115可被用來接收該等微指令,並準備該等微指令以供執行。更具體而言,亂序引擎115可包含各種緩衝區,用以重新排序微指令流,並分配執行所需的各種資源,且提供將各邏輯暫存器重新命名為諸如暫存器檔130及延伸暫存器檔135的種種暫存器檔內之儲存位置。暫存器檔130可包含用於整數及浮點運算的獨立暫存器檔。延伸暫存器檔135可提供用於向量大小的單位(例如,每暫存器256或512位元)之儲存。
除了其他專用硬體外,執行單元120中可設有包括諸如各種整數、浮點、及單一指令多重資料(Single Instruction Multiple Data;簡稱SIMD)邏輯單元的各種資源。結果可提供給指令引退邏輯,亦即,重新排序緩衝區(ROB)140,而ROB 140可以一種具功耗意識之方式操作。更具體而言,ROB 140包含各種陣列及邏輯,用以接收與被執行的指令相關聯之資訊。ROB 140然後檢查該資訊,以便決定是否可有效地使指令引退並將結果資料提交給該處理器的架構狀態、或者是否發生了阻止指令的適當引退之一或多個異常。當然,ROB 140可處理與指令引退相關聯的諸如本發明中述及的各種事件及計算等的其他操作。
如第1圖所示,ROB 140可包含各種陣列,包括一或多個被賦能的陣列142、以及一或多個隨選陣列144。該等被賦能的陣列可經常性被供電,且可包含與指令相關聯的最小量之資訊。如將於下文中進一步說明的,在一特定實施中,分配陣列及一寫回(WB)陣列的獨立分割區可對應於被賦能的陣列142。同樣地,隨選陣列144可以是包含與微運算相關聯的額外資訊的此等陣列的分割區,且可只有在需要處理與給定指令相關聯的事件時才被供電。又如第1圖所示,ROB 140進一步包含被賦能的邏輯146。此種被賦能的邏輯可經常性被供電,且可用來處理正常的指令引退操作。相比之下,隨選邏輯148只有在需要處理諸如錯誤、中斷、分支錯誤預測、效能監視、及更新等的正常指令引退以外的事件時才被賦能。如第1圖所示,ROB 140被耦合到一快取記憶體150,該快取記憶體150在一實施例中可以是一低階快取記憶體(例如,L1快取記憶體),但是本發明之範圍不限於此方面。此外,執行單元120可被直接耦合到快取記憶體150。可自快取記憶體150進行與較高階快取記憶體及系統記憶體等的記憶體之資料通訊。雖然第1圖中以高階方塊圖之方式示出該實施例,但是我們應可了解:本發明之範圍不限於此方面。
在一般性的操作時,該ROB決定指令引退期間的微運算是否需要讀取該等ROB陣列的一特定部分,或是否需要將一特定的邏輯賦能(其中該等特定的資源需要較大的功耗,且執行正常指令引退以外的操作)。可於分配時靜態地作出該決定,或者於寫回時動態地作出該決定。例如,如果並未偵測到靜態事件(於分配時)或動態事件(於寫回時),則無須啟動事件邏輯。此外,如果效能監視器組並未處於現用狀態,則可於分配時靜態地偵測到該狀態,且於指令引退時不應讀取與效能監視器計算相關聯的資料,而且無須將計算效能監視器值的邏輯賦能。
除非特定的操作被識別且被特別賦能,否則該ROB通常將只專注於正常指令引退的主流活動。此種具功耗意識之機制通常只將無事件的且正常的微運算指令引退所需之邏輯賦能,且在識別出有需要之前將停止供電給所有其他的邏輯。
為了將一具功耗意識之ROB賦能,各實施例可分割各種資源,例如,將陣列分成兩部分:一陣列在每一指令引退中被讀取,且另一陣列只在依需求時(例如,於效能監視器操作、中斷、錯誤等狀況時)被讀取。然後,用來識別針對每一種類型的功能(例如,唯有事件或唯有效能監視器等的功能)將讀取每一陣列的哪一部分之邏輯可被用來供電給適當的資源。此外,可分割該指令引退邏輯,以便在與操作種類相關聯的類型引退時,特別地將每一部分賦能。
在正常的情形中,當未偵測到猜測式事件時,可在微運算可有效引退且錯誤邏輯不進行計算時,立即在用來指示該等微運算可有效引退且不會發生錯誤或異常的一指令引退期間中使一保證信號處於現用狀態。因此,可較快速地釋出該保證信號,諸如快了一或多個週期,因而可將該保證信號稱為早期保證信號。然而,當偵測到一猜測式事件時,並不在該時間產生該早期保證信號,反而將由依需求被賦能的邏輯產生用來指示該等微運算無法有效引退之一(晚期)保證信號、或殺光(nuke)信號或無效信號。
現在請參閱第2圖,圖中示出根據本發明的一實施例的指令引退邏輯之一方塊圖。如第2圖所示,可對應於一ROB之一指令引退單元200可具有被分割為多個部分之各種資源,其中一第一分割區可經常性地被賦能,以便在每一指令引退期間執行操作,且可只在需要時間歇性地將一第二分割區賦能,以便處理具有各種與指令引退相關聯的事件之指令引退。如第2圖所示,指令引退單元200包含一分配陣列210。分配陣列210可接收與分配期間的各微運算相關聯之輸入資訊。雖然本發明之範圍不限於這方面,但是該資訊可對應於諸如運算類型(分支、載入、儲存、浮點、或整數運算)或與微運算相關聯的異常類型等的與微運算相關聯的靜態資訊。如第2圖所示,分配陣列210可被分割為組態可被設定為經常性的現用狀態之一第一分割區212、以及只有在需要時(亦即,隨選之方式)才被賦能之一第二分割區214。如圖所示,第一分割區212之相對大小可遠小於第二分割區214的大小。因此,可使經常性地被供電的部分較小,而減少功率消耗。為達到此一目的,可以只將每一微運算的最小量之資訊儲存在第一分割區212。例如,可儲存每一微運算的一單一位元,用以指示該微運算的額外的資訊是否被儲存在第二分割區214。因此,如果一微運算被認為是可在無須任何類型的事件處理之情形下正常引退的一微運算,則第一分割區212中之該相關聯的位元可處於第一狀態(例如,邏輯零),但是如果處於第二狀態(例如,邏輯1),則該狀態指示與該微運算相關聯的額外之資訊被儲存在第二分割區214。
同樣地,寫回(WB)陣列220可被耦合成在與微運算相關聯的寫回時接收資訊。因此,在一執行單元中執行一給定微運算時,可將其中包括計算出的值以及狀態旗標或包括錯誤或其他異常資訊之其他此類資訊之各種結果資訊提供給寫回陣列220。如第2圖所示,寫回陣列220也被分割為兩部分,亦即,一第一分割區222及一第二分割區224。這些分割區可以與前文中參照分配陣列210所述之相同方式儲存資訊。
仍然請參閱第2圖,可將一早期邏輯230耦合到陣列210及220,以便自該等陣列接收賦能信號。如第2圖中進一步示出的,早期邏輯230可被耦合成自該處理器的其他部分接收全域事件資訊。雖然本發明之範圍不限於這方面,但是這些全域事件可對應於中斷、監聽、或其他事件。早期邏輯230之組態可被設定為接收該資訊並決定是否可產生一早期保證信號。亦即,如果並未接收到與一指令引退期間相關聯的全域事件,且來自陣列210及220的該等被賦能的第一分割區之值指示並無與該指令引退期間的該等微運算相關聯之資訊被儲存在該等第二分割區中,此即意指沒有要被處理的事件且可執行一正常的指令引退。因此,早期邏輯230產生該早期保證信號,且該早期保證信號將以下文中進一步說明之方式被提供給一輸出邏輯250。在此種方式下,早期邏輯230在實質上被用來作為一邏輯“或”閘。
如果早期邏輯230的各種這些輸入之任何輸入反而指示無法產生該早期保證信號,則可啟動陣列210及220的該等第二分割區,以便可將對應於該指令引退期間、來自這些陣列的資訊傳送到一事件邏輯240,該事件邏輯240通常意指被用來執行與指令引退相關的操作之邏輯。
因此,在無法產生該早期保證信號時,可將事件邏輯240賦能,以便可執行與指令引退期間相關聯的事件處理。此外,可根據被儲存在該第二分割區之資訊,而供電給無事件指令引退邏輯245,以便執行諸如因被錯誤預測的分支而造成之指令指標更新、或於分配時或指令引退時接收到的效能監視器指示等的與指令引退相關的操作。雖然在第2圖所示之實施例中為了易於圖示而並未示出,但是我們應可了解:在各電施例中,事件邏輯240本身可被分割為各種部分,以便可以只啟動該邏輯中用來處理一給定類型的指令引退或事件處理之最小部分。因此,當資訊指示需要事件邏輯240中的一給定部分來處理事件處理時,可以只供電給事件邏輯240之該部分。
事件邏輯240可產生將被提供給輸出邏輯250之一輸出。如果計算指示該指令引退期間是有效的,則該輸出可對應於一保證信號。請注意,可將該保證信號視為可在早期邏輯230中產生的早期保證信號之後一或多個週期才產生的一晚期保證信號。如果根據在事件邏輯240中被執行的計算而決定諸如由於錯誤、中斷、或錯誤預測等的因素而無法使該指令引退期間有效地引退,則可替代地將將一無效或殺光信號傳送到輸出邏輯250,且將由將按照程式順序但可在不同於原始速率的一速率(例如,使用正常指令引退速率時的每一時脈引退單一的微運算,而非每一時脈引退四個微運算)下操作的一不同之邏輯處理指令引退。
可以是一有限狀態機(Finite State Machine;簡稱FSM)之輸出邏輯250可因而自早期邏輯230及事件邏輯240接收這些不同的信號。輸出邏輯250可被用來將這些不同的信號串列化,以便按照程式順序自輸出邏輯250發出該等信號。亦即,並不是亂序地執行指令,而是輸出邏輯250可保證可能在一較早的指令引退期間中比事件邏輯240的保證或無效信號早一或多個週期接收到的早期保證信號不會在該信號之前發出。換言之,輸出邏輯250按照每一指令引退期間的順序輸出信號,不論這些信號是起源於早期邏輯230或事件邏輯240都是如此。
在各實施例中,輸出邏輯250可被耦合到一處理器的諸如控制邏輯的各種其他資源,以便能夠在產生了一保證信號時將執行結果有效地提交給該處理器的架構狀態,並在替代地產生了一無效信號時,使錯誤進行其中包括可能地清除各種處理器資源之其他適當的異常處理。
因此,如第2圖所示,各種陣列被分割為經常性地被讀取之第一分割區、以及選擇性地被讀取之第二分割區。同樣地,指令引退單元200之邏輯可被分為經常性地處於現用狀態之邏輯,且該邏輯被用來決定是否發生了與一指令引退期間相關聯的事件,且如果確係如此,則決定應使哪一額外的指令引退邏輯被賦能。雖然第2圖之實施例示出該特定的實施方式,但是本發明之範圍不限於此方面。
此外,若要概述一下於分配時的操作,則可計算出用來界定哪一分割區需要被讀取的靜態資訊,並將該靜態資訊儲存在分配陣列210,且尤係儲存在第一分割區212中。對寫回資訊執行類似的操作,且可將該寫回資訊儲存在寫回陣列220,且尤係儲存在第一分割區222中。然後,於指令引退時,讀取該資訊,且由早期邏輯230作出要讀取哪一陣列以及要將哪一邏輯賦能之決定。此外,早期邏輯230亦可檢查諸如中斷或監聽等的外部事件,以便決定是否需要將另一陣列或邏輯賦能。在識別了需要執行一工作且需要自先前未被讀取的該等陣列中之一陣列之額外的資訊之情形中,則讀取分配的特定部分或寫回陣列,並將用來執行該工作之額外的邏輯賦能。
現在請參閱第3圖,圖中示出根據本發明的一實施例的一方法之一流程圖。如第3圖所示,可將方法300用來以一種具功耗意識之方式引退指令。方法300開始時,可在方塊310中於指令分配時接收靜態資訊,並將該資訊儲存在一分配緩衝區的被選擇之部分。例如,如前文所述,如果該靜態資訊指示錯誤或異常是不可能發生的,則可在該分配緩衝區的一較小之第一部分中設定諸如一單一位元等的一指示碼,用以指示並無與該指令相關聯的額外的資訊被儲存在該分配緩衝區的一第二部分中。如果該靜態資訊反而指示於指令引退時由於諸如錯誤、效能監視、或其他原因而可能需要額外的處理,則可將該指示碼設定成指示額外的資訊被儲存在該第二分割區中。在方塊320中,可進行與在指令寫回時被接收的動態資訊有關之類似操作,並將該動態資訊儲存在被類似地配置之一寫回緩衝區。
仍然請參閱第3圖,在菱形330中,可(於指令引退時)決定與一給定指令引退期間相關聯、在該等緩衝區的該等第一部分中之資訊是否指示需要額外的指令引退或事件處理。亦即,可根據該第一部分中之對應的指示碼之狀態而決定是否需要此種指令引退處理(例如,IP更新或效能監視)或事件處理(例如,各種計算、或錯誤或中斷處理等)。如果並非如此,則控制進入菱形340,此時可決定是否接收到與該指令引退期間相關聯的全域信號。如前文所述,該全域信號可對應於一中斷、監聽、或其他全域事件。如果並未接收到該信號,則例如早期邏輯可在方塊350中發出一早期保證信號。
仍然請參閱第3圖,如果反而決定需要額外的指令引退或事件處理或接收到了一全域信號,則控制自菱形330或340進入方塊360,此時可啟動分配及寫回緩衝區之額外的部分。控制然後進入方塊370,此時可在事件邏輯的一或多個被啟動的部分中執行該處理。如前文所述,可根據所提供的額外之資訊而將各種指令引退或事件邏輯賦能,以便執行各種計算或其他的處理,而決定是否可產生一晚期保證信號。因此,在方塊380中,該事件邏輯之輸出可以是一晚期保證信號或一無效(例如,殺光)信號。
又如第3圖所示,控制自方塊350及380進入方塊390,此時可將該等不同的信號串列化,以供自該指令引退單元輸出。亦即,為了保持各指令引退期間的連續性,較晚的指令引退期間中產生的早期保證信號禁止被放置在與較早的指令引退期間相關聯的晚期保證信號或無效信號之前。雖然第2圖之實施例示出該特定的實施方式,但是本發明之範圍不限於此方面。
例如,如果決定需要對指令引退執行特殊處理,則可以不同於正常之方式處理被引退的微運算。假設在未發生任何事件的情形中通常將引退8個微運算。當在指令引退期間中偵測到一事件時,可替代地使每一微運算分別地引退,因而單一的微運算只需要單一組的事件邏輯。如果指令引退是較快速的,則上述方式可進一步提供功耗降低及一致的效能。然而,在決定啟動某些邏輯之後的指令引退操作可在不同於原始速率之一速率下進行。
不再需要的事件之一例子可以是被設定的一黏著位元(sticky bit)。因此,不需要再度設定該黏著位元,因而不需要將執行該重複設定的事件邏輯賦能。另一個此種例子是:將用來識別無錯誤操作的早期信號加入的時間早到將不執行與該早期信號相關聯的操作。例如,可宣告一浮點運算(FP)是安全的時間早到任何異常處理邏輯仍未被賦能。在諸如效能監視器處理及共處理器狀態儲存之情形中,ROB將讀取其存放的資料陣列,執行與該操作相關聯的工作,但是在並未偵測到任何錯誤的情形中,該ROB將不檢查錯誤,且不啟動與錯誤相關聯的邏輯。
可在許多不同的系統類型中實施各實施例。現在請參閱第4圖,圖中示出根據本發明的一電施例的一系統之一方塊圖。如第4圖所示,多處理器系統500是一點對點互連系統,且包含經由一點對點互連550而被耦合之一第一處理器570及一第二處理器580。如第4圖所示,處理器570及580中之每一處理器可以是多核心處理器,其中包含第一及第二處理器核心(亦即,處理器核心574a及574b、以及處理器核心584a及584b)。每一處理器核心可包含諸如第1及2圖所示的用來根據根據本發明的一實施例而能夠進行具功耗意識之指令引退之邏輯。
仍然請參閱第4圖,第一處理器570進一步包含一記憶體控制中心(Memory Controller Hub;簡稱MCH)572、以及點對點(P-P)介面576及578。同樣地,第二處理器580包含一MCH 582、以及P-P介面586及588。如第4圖所示,MCH 572及582將該等處理器耦合到各別的記憶體,亦即,耦合到一記憶體532及一記憶體534,該等記憶體可以是在本地被附接到個別的處理器的主記憶體(例如,一動態隨機存取記憶體(DRAM)之一部分。第一處理器570及第二處理器580可分別經由點對點互連552及554而被耦合到一晶片組590。如第4圖所示,晶片組590包含點對點(P-P)介面594及598。
此外,晶片組590包含一介面592,用以將晶片組590耦合到一高效能圖形引擎538。晶片組590又可經由一介面596而被耦合到一第一匯流排516。如第4圖所示,各種輸入/輸出裝置514以及一匯流排橋接器518可被耦合到第一匯流排516,該匯流排橋接器518將第一匯流排516耦合到一第二匯流排520。其中包括諸如一鍵盤/滑鼠522、通訊裝置526以及諸如一磁碟機或其他大量儲存裝置等的一資料儲存單元528等的各種裝置可被耦合到第二匯流排520,而在一實施例中,該資料儲存單元528可包含碼530。此外,一音訊輸入/輸出裝置524可被耦合到第二匯流排520。
可以程式碼實施各實施例,且該程式碼可被儲存在一儲存媒體,該儲存媒體中儲存有指令,該等指令可被用來將一系統程式化成執行該等指令。該儲存媒體可包括(但不限於)其中包含光碟、唯讀光碟(CD-ROM)、可覆寫式光碟(CD-RW)、及磁光碟之任何類型的碟形儲存媒體、諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)及靜態機存取記憶體(SRAM)等的隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、快閃記憶體、及電氣可抹除可程式唯讀記憶體(EEPROM)等的半導體裝置、磁性或光學卡、或適於儲存電子指令之任何其他類型的媒體。
雖然已參照有限數目的實施例而說明了本發明,但是熟悉此項技術者應可了解:可作出本發明的許多修改及變化。最後的申請專利範圍將涵蓋在本發明的真實精神及範圍內之所有此類修改及變化。
100...處理器
110...前端單元
115...亂序引擎
120...執行單元
130...暫存器檔
135...延伸暫存器檔
140...重新排序緩衝區
142...被賦能的陣列
144...隨選陣列
146...被賦能的邏輯
148...隨選邏輯
150...快取記憶體
200...指令引退單元
210...分配陣列
212,222...第一分割區
214,224...第二分割區
220...寫回陣列
250...輸出邏輯
240...事件邏輯
245...無事件指令引退邏輯
500...多處理器系統
550,552,554...點對點互連
570...第一處理器
580...第二處理器
574a,574b,584a,584b...處理器核心
572,582...記憶體控制中心
576,578,586,588,594,598...點對點介面
532,534...記憶體
590...晶片組
592,596...介面
538...高效能圖形引擎
516...第一匯流排
514...輸入/輸出裝置
518...匯流排橋接器
520...第二匯流排
522...鍵盤/滑鼠
526...通訊裝置
528...資料儲存單元
530...碼
524...音訊輸入/輸出裝置
第1圖是根據本發明的一實施例的一處理器之一方塊圖。
第2圖是根據本發明的一實施例的指令引退邏輯之一方塊圖。
第3圖是根據本發明的一實施例的一方法之一流程圖。
第4圖是根據本發明的一實施例的一系統之一方塊圖。
100...處理器
110...前端單元
115...亂序引擎
120...執行單元
130...暫存器檔
135...延伸暫存器檔
140...重新排序緩衝區
142...被賦能的陣列
144...隨選陣列
146...被賦能的邏輯
148...隨選邏輯
150...快取記憶體

Claims (20)

  1. 一種具功率感知之指令引退裝置,包含:一指令引退單元,用以引退執行後的指令,該指令引退單元包含:第一陣列,用來在該等指令分配時接收第一資訊,該第一陣列被分割為將在每一指令引退期間被讀取的第一部分、以及將依需求被讀取的第二部分;第二陣列,用來在該等指令執行後接收第二資訊,該第二陣列被分割為將在每一指令引退期間被讀取的第一部分、以及將依需求被讀取的一第二部分;以及隨選邏輯,用來在與被執行的指令相關聯之資訊被儲存在該第一陣列或該第二陣列之該第二部分時,計算與該被執行的指令相關聯之事件。
  2. 如申請專利範圍第1項之裝置,其中如果一計算指示出一被執行的指令沒有錯誤,則該隨選邏輯將產生該被執行的指令之一保證信號,且如果該錯誤被指示出,則該隨選邏輯將產生一無效信號。
  3. 如申請專利範圍第2項之裝置,進一步包含早期邏輯,其被耦合到該第一及第二陣列的輸出且根據該第一及第二陣列的該第一部分中之資訊而輸出一第一被執行的指令之一早期保證信號。
  4. 如申請專利範圍第3項之裝置,其中該早期邏輯被進一步耦合成接收全域事件資訊並啟動回應該全域事件資訊的該隨選邏輯。
  5. 如申請專利範圍第3項之裝置,進一步包含被耦合到該隨選邏輯及該早期邏輯之輸出邏輯,用以串列化該早期保證信號、以及保證信號或該無效信號。
  6. 如申請專利範圍第4項之裝置,其中該早期邏輯將根據存在於該第一陣列的該第一部分的對應於該指令引退期間的一指示碼之狀態而啟動該第一陣列之該第二部分。
  7. 如申請專利範圍第1項之裝置,其中該第一陣列包含一分配陣列,且該第二陣列包含一寫回陣列。
  8. 如申請專利範圍第7項之裝置,其中除非該隨選邏輯處於現用狀態,否則將不供電給該第一及第二陣列之該第二部分。
  9. 一種具功率感知之指令引退方法,包含下列步驟:於指令分配時接收與一指令相關聯之靜態資訊,並將該靜態資訊的至少一第一部分儲存在一分配緩衝區的一第一部分,以及如果該靜態資訊指示出將在指令引退時被執行的一事件,則將該靜態資訊的一第二部分儲存在該分配緩衝區的一第二部分;如果與該指令相關聯的靜態資訊並未存在於該分配緩衝區的該第二部分,則於該指令引退時發出一早期保證信號;以及否則,供電給該分配緩衝區的該第二部分,以便存取該靜態資訊的該第二部分。
  10. 如申請專利範圍第9項之方法,進一步包含下 列步驟:如果該早期保證信號並未被發出,則在被供電的事件邏輯中執行事件處理。
  11. 如申請專利範圍第10項之方法,進一步包含下列步驟:根據該事件處理的結果而在該事件邏輯中產生一晚期保證信號或一無效信號。
  12. 如申請專利範圍第11項之方法,進一步包含下列步驟:將與一第一指令相關聯的一早期保證信號以及與一第二指令相關聯的一晚期保證信號或一無效信號串列化,作為一指令引退單元之輸出,該第二指令在程式順序上早於該第一指令。
  13. 如申請專利範圍第9項之方法,進一步包含下列步驟:於指令寫回時接收與該指令相關聯的動態資訊,並將該動態資訊的至少一第一部分儲存在一寫回緩衝區的一第一部分;以及如果該動態資訊指示出將在指令引退時被執行的一事件,則將該動態資訊的一第二部分儲存在該寫回緩衝區的一第二部分。
  14. 如申請專利範圍第13項之方法,進一步包含下列步驟:至少部分地根據該靜態資訊的該第一部分及該動態資訊的該第一部分而決定是否將在指令引退時執行事件處理,以及於指令引退時執行該事件處理,其中要執行該事件處理時進行指令引退之速率係不同於不要執行該事件處理時進行指令引退之速率。
  15. 一種具功率感知之指令引退系統,包含:處理器,用來以亂序(OOO)方式執行指令,該處理 器包含複數個執行單元及被耦合到該複數個執行單元之一指令引退單元,其中該指令引退單元包含:分配緩衝區,用來在該等指令分配時接收第一資訊,該分配緩衝區被分割為將在每一指令引退期間被讀取的一第一部分、以及將依需求被讀取的一第二部分;寫回緩衝區,用來在該等指令執行後接收第二資訊,該寫回緩衝區被分割為將在每一指令引退期間被讀取的一第一部分、以及將依需求被讀取的一第二部分;第一邏輯,被耦合到該分配緩衝區及該寫回緩衝區的輸出,且在與一第一被執行的指令相關聯之第二資訊並未存在於該分配緩衝區或該寫回緩衝區的該第二部分時輸出該第一被執行的指令之一早期保證信號;以及第二邏輯,被耦合到該分配緩衝區及該寫回緩衝區的輸出,且在與一第二被執行的指令相關聯之第二資訊存在於該分配緩衝區或該寫回緩衝區的該第二部分時輸出該第二被執行的指令之一晚期保證信號或一無效信號;以及動態隨機存取記憶體(DRAM),被耦合到該處理器。
  16. 如申請專利範圍第15項之系統,其中該第一邏輯將接收一全域事件信號,且於一第三被執行的指令之引退期間啟動回應該全域事件信號的該第二邏輯。
  17. 如申請專利範圍第15項之系統,進一步包含一第三邏輯,其被耦合到該第一邏輯及該第二邏輯,且結合該第一邏輯及該第二邏輯之輸出。
  18. 如申請專利範圍第17項之系統,其中該第三邏輯將該晚期保證信號或該無效信號串列化成在該早期保證信號之前,作為該指令引退單元之輸出,其中該第二被執行的指令在程式順序上早於該第一被執行的指令。
  19. 如申請專利範圍第15項之系統,其中該分配緩衝區之該第一部分及該寫回緩衝區於每一指令引退期間將被供電,且只有在與一指令引退期間相關聯的資訊被儲存在該分配緩衝區的該第二部分時,該分配緩衝區的該第二部分才於該指令引退期間被供電。
  20. 如申請專利範圍第15項之系統,其中該第一邏輯將輸出該早期保證信號,且該第二邏輯於一指令引退期間不被供電,其中一黏著位元在該指令引退期間之前被設定,且不需要被該指令引退單元設定。
TW098120442A 2008-06-27 2009-06-18 具功率感知之指令引退裝置、方法及系統 TWI407369B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/215,526 US7921280B2 (en) 2008-06-27 2008-06-27 Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array

Publications (2)

Publication Number Publication Date
TW201015435A TW201015435A (en) 2010-04-16
TWI407369B true TWI407369B (zh) 2013-09-01

Family

ID=41360915

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098120442A TWI407369B (zh) 2008-06-27 2009-06-18 具功率感知之指令引退裝置、方法及系統

Country Status (8)

Country Link
US (1) US7921280B2 (zh)
JP (1) JP5474926B2 (zh)
CN (1) CN101615115B (zh)
DE (1) DE102009029852A1 (zh)
GB (1) GB2473345B (zh)
RU (1) RU2427883C2 (zh)
TW (1) TWI407369B (zh)
WO (1) WO2009158247A2 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080141A1 (en) * 2011-09-23 2013-03-28 National Tsing Hua University Power aware simulation system with embedded multi-core dsp

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920548B2 (en) * 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
TW200604944A (en) * 2004-06-17 2006-02-01 Intel Corp Reducing false error detection in a microprocessor by tracking instructions neutral to errors
US7096345B1 (en) * 2003-09-26 2006-08-22 Marvell International Ltd. Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US6047369A (en) * 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5673426A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for tracking floating-point exceptions
US5889982A (en) * 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US6108769A (en) * 1996-05-17 2000-08-22 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US5903740A (en) * 1996-07-24 1999-05-11 Advanced Micro Devices, Inc. Apparatus and method for retiring instructions in excess of the number of accessible write ports
US5938760A (en) * 1996-12-17 1999-08-17 International Business Machines Corporation System and method for performance monitoring of instructions in a re-order buffer
US5938761A (en) * 1997-11-24 1999-08-17 Sun Microsystems Method and apparatus for branch target prediction
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6757892B1 (en) * 1999-06-24 2004-06-29 Sarnoff Corporation Method for determining an optimal partitioning of data among several memories
US6615343B1 (en) * 2000-06-22 2003-09-02 Sun Microsystems, Inc. Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution
US6990568B2 (en) * 2001-03-30 2006-01-24 Hewlett-Packard Development Company, L.P. Retiring early-completion instructions to improve computer operation throughput
US6880067B2 (en) * 2001-03-30 2005-04-12 Hewlett-Packard Development Company L.P. Retiring instructions that meet the early-retirement criteria to improve computer operation throughput
US6944752B2 (en) * 2001-03-30 2005-09-13 Hewlett-Packard Development Company, L.P. Retiring early-completion instructions to improve computer operation throughput
US6738861B2 (en) * 2001-09-20 2004-05-18 Intel Corporation System and method for managing data in memory for reducing power consumption
US7502817B2 (en) * 2001-10-26 2009-03-10 Qualcomm Incorporated Method and apparatus for partitioning memory in a telecommunication device
US6910121B2 (en) * 2002-01-02 2005-06-21 Intel Corporation System and method of reducing the number of copies from alias registers to real registers in the commitment of instructions
US7219249B1 (en) * 2002-12-03 2007-05-15 The Research Foundation Of State University Of New York System and method for reducing power requirements of microprocessors through dynamic allocation of datapath resources
US6922769B2 (en) * 2002-12-23 2005-07-26 Intel Corporation Apparatus and method for reduction of power consumption in OS that use flat segmentation memory model
US20040128484A1 (en) * 2002-12-30 2004-07-01 Zeev Sperber Method and apparatus for transparent delayed write-back
US7266673B2 (en) * 2003-05-02 2007-09-04 Advanced Micro Devices, Inc. Speculation pointers to identify data-speculative operations in microprocessor
US20050050303A1 (en) * 2003-06-30 2005-03-03 Roni Rosner Hierarchical reorder buffers for controlling speculative execution in a multi-cluster system
US7167989B2 (en) * 2003-10-14 2007-01-23 Intel Corporation Processor and methods to reduce power consumption of processor components
US7246219B2 (en) * 2003-12-23 2007-07-17 Intel Corporation Methods and apparatus to control functional blocks within a processor
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7747841B2 (en) * 2005-09-26 2010-06-29 Cornell Research Foundation, Inc. Method and apparatus for early load retirement in a processor system
US7475225B2 (en) * 2005-12-30 2009-01-06 Intel Corporation Method and apparatus for microarchitecture partitioning of execution clusters
US20080072015A1 (en) * 2006-09-18 2008-03-20 Julier Michael A Demand-based processing resource allocation
US7472260B2 (en) * 2006-10-10 2008-12-30 P.A. Semi, Inc. Early retirement of store operation past exception reporting pipeline stage in strongly ordered processor with load/store queue entry retained until completion
US7721076B2 (en) * 2006-12-18 2010-05-18 Intel Corporation Tracking an oldest processor event using information stored in a register and queue entry
US8074060B2 (en) * 2008-11-25 2011-12-06 Via Technologies, Inc. Out-of-order execution microprocessor that selectively initiates instruction retirement early

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920548B2 (en) * 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7096345B1 (en) * 2003-09-26 2006-08-22 Marvell International Ltd. Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof
TW200604944A (en) * 2004-06-17 2006-02-01 Intel Corp Reducing false error detection in a microprocessor by tracking instructions neutral to errors

Also Published As

Publication number Publication date
WO2009158247A3 (en) 2010-03-04
CN101615115A (zh) 2009-12-30
GB201015011D0 (en) 2010-10-20
DE102009029852A1 (de) 2009-12-31
RU2009124521A (ru) 2011-01-10
GB2473345B (en) 2012-12-05
US20090327663A1 (en) 2009-12-31
JP5474926B2 (ja) 2014-04-16
WO2009158247A2 (en) 2009-12-30
GB2473345A (en) 2011-03-09
US7921280B2 (en) 2011-04-05
RU2427883C2 (ru) 2011-08-27
CN101615115B (zh) 2013-12-25
TW201015435A (en) 2010-04-16
JP2011514607A (ja) 2011-05-06

Similar Documents

Publication Publication Date Title
TWI512448B (zh) 用以啟用處理器等待狀態之指令
US9436468B2 (en) Technique for setting a vector mask
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
US9037837B2 (en) Hardware assist thread for increasing code parallelism
US9256433B2 (en) Systems and methods for move elimination with bypass multiple instantiation table
US20120066483A1 (en) Computing Device with Asynchronous Auxiliary Execution Unit
US10599428B2 (en) Relaxed execution of overlapping mixed-scalar-vector instructions
US20090006905A1 (en) In Situ Register State Error Recovery and Restart Mechanism
JP2009151778A (ja) ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
KR102524565B1 (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
US9329936B2 (en) Redundant execution for reliability in a super FMA ALU
CN111752616A (zh) 用于符号存储地址生成的系统、装置和方法
US20160283247A1 (en) Apparatuses and methods to selectively execute a commit instruction
US7404065B2 (en) Flow optimization and prediction for VSSE memory operations
US10102003B2 (en) Intelligent context management
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
TWI540504B (zh) 調節原子級記憶體操作以防止阻絕服務攻擊之處理器、方法和系統
JP2001216160A (ja) 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法
TWI407369B (zh) 具功率感知之指令引退裝置、方法及系統
US10423421B2 (en) Opportunistic utilization of redundant ALU
US11269649B2 (en) Resuming beats of processing of a suspended vector instruction based on beat status information indicating completed beats
US11656945B2 (en) Method and apparatus to support instruction replay for executing idempotent code in dependent processing in memory devices
US20210096877A1 (en) Collapsing bubbles in a processing unit pipeline
JP4208149B2 (ja) プロセッサの効率的な制御をするための方法及び装置