TWI454902B - 電力最佳化的中斷遞送的方法與系統、及其處理器與電腦可讀取媒體 - Google Patents
電力最佳化的中斷遞送的方法與系統、及其處理器與電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI454902B TWI454902B TW100127725A TW100127725A TWI454902B TW I454902 B TWI454902 B TW I454902B TW 100127725 A TW100127725 A TW 100127725A TW 100127725 A TW100127725 A TW 100127725A TW I454902 B TWI454902 B TW I454902B
- Authority
- TW
- Taiwan
- Prior art keywords
- hardware thread
- thread
- interrupt
- hardware
- processor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
本發明與用於硬體執行緒電力最佳化的中斷再映射有關。
硬體執行緒(例如,處理器內的運算核心)具有進入電力最佳化狀態的能力,諸如低電力睡眠或深度睡眠狀態。輸入/輸出交通可發送中斷給硬體執行緒,其通常致使執行緒從低電力狀態中被喚醒來服務該中斷。例如,要求喚醒硬體執行緒的中斷,可來自其中包括平台元件互連介面(Platform Component Interconnect;PCI)-Express裝置、PCI裝置、或輸入/輸出先進可程式中斷控制器(input/output advanced programmable interrupt controller;IOAPIC)。當這些中斷頻繁地抵達且這些中斷每一個都要求喚醒硬體執行緒時,將硬體執行緒置入電力最佳狀態的目的即告失效。
揭示具有電力最佳化中斷遞送能力之處理器、系統、方法、及電腦可讀取媒體的實施例。
電腦系統可包括數個硬體執行緒。如果將硬體執行緒視為處理器內的核心,在每一個處理器都具有數個核心的多處理器系統中,就可能具有很多的硬體執行緒。當硬體執行緒不需要工作時,其可能具有進入低電力狀態的能力。愈多的硬體執行緒在低電力狀態,則電腦系統的整體電力消耗就變得愈低。
當發生I/O中斷時,其需要特定的硬體執行緒來服務,該目標的硬體執行緒通常被喚醒,其取消了睡眠中之硬體執行緒正在進行的節電。因此,電腦系統內可能存在有執行緒再映射邏輯,其保持對每一個硬體執行緒之電力狀態的追蹤及對每一個硬體執行緒的中斷等效處理。例如,對於某一中斷,可能有4個不同的執行緒可全部處理該中斷。因此,如果該中斷標定第一硬體執行緒且該第一執行緒是在低電力狀態,該執行緒再映射邏輯可搜尋另一可用且該可處理該中斷的硬體執行緒。如果有為處理中斷之目的而可用的等效執行緒,則該執行緒再映射邏輯將將該中斷轉移/再映射到其它發現的硬體執行緒來處理該中斷,因此,允許原被標定的硬體執行緒仍留在低電力狀態。
圖1說明具有電力最佳化中斷遞送能力之電腦系統的實施例。
圖1顯示電腦系統100。電腦系統可以是桌上型、伺服器、工作站、膝上型、手持式、電視機上盒、媒體中心、遊戲機、整合式系統(例如車載機)、或其它類型的電腦系統。在數個實施例中,電腦系統100包括一或多個中央處理單元(CPU),也稱為“處理器”。雖然在很多實施例中可能有很多CPU,但在圖1所示的實施例中,為清楚說明,僅顯示一個CPU 102。CPU 102可以是公司的CPU或其它品牌的CPU。在不同的實施例中,CPU 102包括一或多個核心。在所顯示的CPU 102中,包括有4個核心(核心104、106、108、及110)。
在很多實施例中,每一個核心包括內部功能方塊,諸如一或多個執行單元、退役單元、通用目的及特定暫存器組等。在單執行緒化核心的情況,可將每一個核心視為硬體執行緒。當核心為多執行緒化或超執行緒化時,可將每一個核心內之每一執行緒操作視為硬體執行緒。因此,在電腦系統100中運行所執行的任何單執行緒,都可視為硬體執行緒。例如,在圖1中,如果每一個核心都是單執行緒化,則在4核心系統中存在有4個硬體執行緒。另一方面,如果每一個核心都是多執行緒,且具有同時保持2個執行緒之狀態的能力,則在系統中存在有8個硬體執行緒(4核心,每核心有2個執行緒)。
CPU 102也可包括一或多個快取記憶體,諸如快取記憶體112。在很多未顯示的實施例中,除了快取記憶體112之外也實施附加的快取記憶體,以使得每個核心中之執行單元與記憶體之間,存在有多階層的快取記憶體。在不同的實施例中,快取記憶體112可有不同方式的分配。此外,在不同的實施例中,快取記憶體112可以是很多不同大小其中之一。例如,快取記憶體112可以是8百萬位元組(MB)快取記憶體、16MB快取記憶體等。此外,在不同的實施例中,快取記憶體可以是直接映射快取記憶體、全關聯式快取記憶體、多通路集合關聯式快取記憶體、或具有其它映射類型的快取記憶體。在很多實施例中,快取記憶體112可包括供所有核心共用的一大部分,或被分割成數個獨立的功能性切片(例如每個核心一片)。快取記憶體112也可包括一部分供所有核心共用,而數個其它部分則係每個核心之獨立的功能性切片。
在很多實施例中,CPU 102包括整合的系統記憶體控制器114,用來提供與系統記憶體116通信的介面。在未顯示的其它實施例中,記憶體控制器114可位於電腦系統100中分離的別處。
系統記憶體116可包含動態隨機存取記憶體(DRAM),諸如雙資料率(DDR)DRAM類型、非揮發性記憶體,諸如快閃記憶體、相變記憶體(PCM)、或其它類型的記憶體技術。系統記憶體116可以是一般用途記憶體,用來儲存CPU 102所要操作的資料及指令。此外,電腦系統100內還可能有其它具有讀取或寫入系統記憶體之能力的裝置,諸如具有直接記憶體存取(DMA)能力的I/O(輸入/輸出)裝置。
CPU 102與系統記憶體116耦接的鏈結(即匯流排、互連等)可包括能夠傳輸資料、位址、控制、及時鐘資訊的光學、金屬、或其它導線(即線)其中之一或多樣。
I/O綜合體118(例如I/O控制器集線器)包括能夠在CPU 102與外部I/O裝置之間通信的I/O介面120。綜合體可包括一或多個I/O轉接器,諸如I/O轉接器122及124。I/O轉接器將CPU 102內所利用的主通信協定翻譯成與特定I/O裝置相容的協定,諸如I/O裝置126。某特定之I/O轉接器可翻譯的某些協定尤其包括周邊組件互連(PCI)、通用序列匯流排(USB)、IDE、SCSI、及1394“火線”。此外,還有一或多個無線協定的I/O轉接器。無線協定的例子尤其包括有藍牙、IEEE 802.11類的無線協定、及細胞協定。
在很多實施例中,基本輸入/輸出系統128(basic input/output system;BlOS)也整合在I/O綜合體118內,或耦接至I/O綜合體118。BIOS係一儲存在電腦系統中的韌體,其包含啟動處理期間用來初始化關鍵電腦系統組件的指令。
雖為了簡潔而未顯示,但CPU也具有另外的介面,諸如用來處理圖形及網路交通的高速I/O介面。在很多實施例中,這些高速I/O介面可包括一或多種PCI-Express介面。
在很多實施例中,電腦系統100包括能夠提供虛擬化環境和在虛擬機(virtual machine;VM)環境中運行之一或多個客作業系統(OS)的硬體與軟體邏輯。在系統內之邏輯中可實施虛擬機監視器(virtual machine monitor;VMM)或超管理器,以隔離每個VM的作業環境,因此,每個VM及在其中運行的OS與應用程式被隔離,且不知存在於系統內的其它VM。例如,在某些實施例中,VMM134存在於記憶體儲存器116內,可為VM 136與VM 140及分別在每個VM中運行的OS 138與OS 142管理資源。
此外,CPU 102也包括穩壓邏輯144,其調節供應給CPU 102的電力(VCC)。
為建立無縫的虛擬環境,通常是利用虛擬化I/O。I/O虛擬化邏輯130提供虛擬化及隔離I/O子系統中之I/O裝置的能力,諸如I/O裝置126。在某些實施例中,I/O虛擬化邏輯130包括VT-d架構。在其它實施例中,可利用其它類型的記憶體映射I/O技術,諸如x86或非-x86類的IOMMU結構。
由I/O裝置初始化的裝置轉移(DMA)與中斷為關鍵處理,需要裝置與某特定的VM隔離。在很多實施例中,I/O虛擬化邏輯130能夠使系統軟體建立多重DMA保護域。保護域是一被隔離的環境,系統記憶體的子集配置於其中。視軟體所使用的模型而定,DMA保護域可代表配置到VM的記憶體,或由在VM中運行之客作業系統驅動器所配置的DMA記憶體,或是做為VMM/超管理器本身的一部分。I/O虛擬化邏輯130可使系統軟體能夠將一或多個I/O裝置指定到保護域。藉由限制從未被指定到保護域的I/O裝置去存取保護域的實體記憶體來達成DMA隔離。
關於中斷處理,I/O虛擬化邏輯130可修改中斷訊息格式成為包括“訊息識別符”的DMA寫入請求,並非實際的中斷屬性。該寫入請求,如同任何的DMA請求,可指明功能為產生中斷之I/O裝置的請求者ID。於是,當I/O虛擬化邏輯130接收到中斷請求時,該中斷經由中斷的表結構被再映射。中斷再映射表中的每一個登錄對應於來自裝置之獨有的中斷訊息識別符,包括任何必須的中斷屬性(例如目的CPU、向量等)。
在圖1所示的實施例中,I/O虛擬化邏輯130經由I/O介面120接收來自一或多個I/O裝置的請求。如前所述,在允許這些請求通過到達記憶體控制器114之前,I/O虛擬化邏輯130處理這些請求。
在很多實施例中,諸如圖1中所示的實施例,執行緒再映射邏輯(thread remapping logic;TRL)132存在於I/O虛擬化邏輯130內。在其它實施例中,TRL 130存在於電腦系統100中的別處,諸如CPU 102內的另一位置,或甚至有可能全然在CPU 102的外部,此顯示於圖2。
圖2說明具有電力最佳化中斷遞送能力之電腦系統的另一實施例。
在圖2所示的實施例中,除了I/O綜合體200位於CPU 102外部此點不同之外,CPU 102與圖1中的CPU類似。I/O綜合體200包括I/O虛擬化邏輯202與TRL 204,其實施與圖1中所述相同的功能,唯一不同是來自CPU 102外部的位置。I/O轉接器206與208也實施相同功能,亦即,提供到達一或多個I/O裝置的通信介面,諸如I/O裝置126。在很多實施例中,I/O綜合體200係位於系統主機板上之分離的I/O控制器集線器,並經由一連串的銅線、光學、或其它物理類的線路/導線耦接於CPU 102。
回到圖1,TRL 132實施數項功能。首先,TRL 132內的邏輯追蹤每個硬體執行緒目前的電力狀態。很多電腦系統實施先進架構與電源介面(Advanced Configuration and Power Interface;ACPI)電源管理方案。ACPI實現電源管理的工業標準形式,且有在軟體、BIOS、及硬體內實施的可能。在任何特定時間,硬體執行緒都是處在很多電力狀態其中之一,或是在兩電力狀態間過渡。硬體執行緒能夠進入之電力狀態的數量係明確實施。例如,硬體執行緒可進入的一些狀態有C0(全操作)、C1(休眠)、C2(時鐘停止)、C3(睡眠),及較深度睡眠狀態,諸如C4至C6。其它的電力最佳化狀態可利用MONITOR與MWAIT執行緒指令。硬體執行緒能夠進入的每一電力狀態,都具有不同量的功能性或缺乏的功能性。通常,愈大規模的節電,使硬體執行緒脫離該狀態所花的時間也愈長。
限制或完全阻斷從I/O裝置發送中斷給嘗試進入或停留在節電狀態之硬體執行緒通常可節省系統的電力。但問題是裝置需要它的中斷服務。因此,將進入的I/O裝置中斷轉發到不在節電狀態之替代的硬體執行緒,藉由允許原目標執行緒停留在低耗電狀態,可有助於保持節省系統電力。
TRL 132存取儲存關於與服務每一中斷類型相容之硬體執行緒之資訊的表單、表、或其它類型的資料結構。換言之,對某類型的中斷而言,將有一組硬體執行緒有能力服務有疑慮的中斷。例如,如果某中斷(例如“A”型中斷)可被硬體執行緒1與2服務,則在該特定中斷之下的中斷類型表中將出現硬體執行緒1和2。因此,如果I/O裝置(諸如I/O裝置126)發送“A”中斷給硬體執行緒1,且硬體執行緒1在低電力狀態,則TRL 132可透通地將該中斷目標從硬體執行緒1再映射到硬體執行緒2。OS或VMM有能力組構一組能夠處理某特定類型之中斷的硬體執行緒。有能力處理指定中斷之硬體執行緒組係根據執行緒關聯性(affinity)、快取記憶體共用拓樸、或其它靜態或動態因素。
圖3說明儲存硬體執行緒/中斷類型等效資訊之矩陣的資料結構,以及儲存每一個硬體執行緒之目前電力狀態的資料結構。
如前所述,硬體執行緒/中斷類型等效矩陣表儲存關於有能力處理某中斷類型之執行緒組的資訊。在圖3所示的實施例中,有4個核心(核心0-3)供執行緒再映射邏輯300存取資訊。硬體執行緒/中斷類型矩陣表302中包括與處理指定類型之中斷相容之硬體執行緒的表單。例如,類型A的中斷可被所有存在的硬體執行緒來處理,然而類型B的中斷只能被硬體執行緒0及2來處理。
硬體執行緒目前電力狀態表304包括每個硬體執行緒之目前的電力狀態。為說明之目的,該表僅顯示每個執行緒是被喚醒或是在睡眠狀態,然而,實際上,能夠被表列的狀態很多。例如,執行緒可在任何的C電力狀態(例如C1、C2、C6等)。
當進入的I/O裝置中斷306到達TRL 300時,TRL首先查看硬體執行緒目前電力狀態表304,以了解目標硬體執行緒是被喚醒或是在睡眠狀態。如果該硬體執行緒是被喚醒的,於是TRL 300僅僅將該中斷發送到原始的目標硬體執
行緒。另一方面,如果原始的目標硬體執行緒未被喚醒,接著TRL 300為了等效的執行緒處理而查看硬體執行緒/中斷類型矩陣表302,並尋找有能力處理進入之中斷的另一個硬體執行緒,如果有另一個有能力處理的硬體執行緒可用,則TRL 300將該中斷再映射到有能力且可用的(即非睡眠中的)執行緒。
在很多實施例中,TRL存在於每個存在於系統中的CPU內,因此,多插槽的電腦系統有多個TRL。
圖4說明具有電力最佳化中斷遞送能力之雙插槽電腦系統的實施例。
在圖4所示的實施例中,存在有2個CPU(CPU A 400及CPU B 420)。此外,每個CPU包括兩個核心(CPU A 400內的核心A0與A1,及CPU B 402內的核心B0與B1)。此外,CPU A 400包括TRL A 404,及CPU B 402包括TRL B 406。在很多實施例中,每個TRL都包括硬體執行緒/中斷類型矩陣表(圖3中的302)與硬體執行緒目前電力狀態表(圖3中的304)之其自已的本地拷貝。雖然這些表有多個拷貝,但這些表遍及各處之拷貝內的資訊應該一致,因此,每個TRL具有相同的資訊。此兩表中之資訊的這些鏡射拷貝可藉由CPU間廣播訊息408來維持,而此訊息係在耦接於每個CPU上之CPU間鏈結介面(CPU A 400上的介面412與CPU B 402上的介面414)之CPU間鏈結410上傳佈之。
例如,當硬體執行緒在兩個電力狀態間轉態時,電力
狀態轉態訊息可橫過CPU間互連而傳佈至存在於電腦系統中的所有TRL。每個TRL可鎖存在這個訊息上,並更新其本地儲存的硬體執行緒目前電力狀態表(圖3中的項目304),以顯示討論中的硬體執行緒已經轉態進入新的電力狀態。
在某些實施例中,在兩電力狀態間轉態的硬體執行緒其傳佈自已的訊息給所有的TRL。在其它實施例中,在兩電力狀態間轉態的硬體執行緒發送轉態資訊給本地的TRL,其依次將狀態的轉態傳佈給所有其它的TRL。
圖5說明具有電力最佳化中斷遞送能力之雙節點電腦系統的實施例。
在圖4所示的實施例中,存在有兩個節點(節點A與節點B)。節點A包括兩個CPU(CPU A0與CPU A1)。每個CPU包括兩個核心:CPU A0中的核心A0a與A0b,CPU A1中的核心A1a與A1b,CPU B0中的核心B0a與B0b,CPU B1中的核心B1a與B1b。節點A與節點B經由節點間鏈結500耦接在一起。每個節點中存在一節點控制器。節點控制器A 502幫助管理節點A,節點控制器B 504幫助管理節點B。節點間的通信交通需要路由通過各自的節點控制器。因此,當其轉態到有能力在節點間經由節點控制器路由的電力狀態時,由硬體執行緒發送訊息(由兩節點間的虛線路由所描繪)。
圖6係處理電力最佳化中斷遞送之實施例的流程圖。
該處理係藉由處理邏輯來實施,處理邏輯可藉由硬體
、軟體、韌體、表列類型之處理邏輯的任何組合來實施。該處理從處理邏輯接收I/O裝置中斷(處理方塊600)開始。
接著,處理邏輯決定該中斷之目標硬體執行緒(即該中斷關聯該執行緒)是否是在節電狀態(處理方塊602)。如果目標硬體執行緒不在節電狀態,於是處理邏輯單純地將該I/O裝置中斷發送給原目標硬體執行緒(處理方塊604)。
另一方面,如果目標硬體執行緒是在節電狀態,於是處理邏輯接著決定是否有另一個硬體執行緒相容(即,得自處理邏輯可存取的硬體執行緒等效資訊,諸如圖3中之硬體執行緒/中斷類型等效矩陣302)(處理方塊606)。
在圖6之處理流程圖中所示的實施例中,如果沒有相容的硬體執行緒,接著處理邏輯喚醒目標硬體執行緒(處理方塊608),並發送中斷給目標硬體執行緒604。在未顯示的其它實施例中,處理邏輯會保留中斷直到等效CPU硬體執行緒變為可用(受排序要求管制)。
如果有相容的硬體執行緒,則處理邏輯決定相容的硬體執行緒是否可用(處理方塊610)。例如,可能有相容的硬體執行緒,但該執行緒也是在深度睡眠的節電狀態,且因此並非現成可用。在很多實施例中,節電狀態有順位次序,因此,如果兩個獨立相容的執行緒都在節電狀態,則處理邏輯會喚醒在次“深”狀態中的執行緒,以使較深睡眠的執行緒仍保持在它的睡眠狀態。此將同時達成兩件事。第一,較深度睡眠的執行緒停留在節電較多的模式中,可節省額外的系統電力。第二,在睡眠深度較淺狀態中的執行緒,能夠以較少的潛時轉態到喚醒狀態,因為較深度睡眠狀態通常導致較長的喚醒潛時。
現回到圖6所說明的處理,如果無相容的硬體執行緒可用,則處理邏輯回到方塊606來決定是否還有另一個相容的硬體執行緒。反之,如果有相容的執行緒可用,則處理邏輯將該I/O裝置中斷再映射到所發現之替代的等效硬體執行緒(處理方塊612),並將再映射的中斷發送給該替代的硬體執行緒(處理方塊614)。
本質上,處理邏輯能以透通的方式將中斷從一個硬體執行緒轉移到另一個硬體執行緒(即,其中I/O裝置本質上並不知道用來處理中斷之執行緒之間的轉移)。
本發明之實施例的元素也提供機器可讀取媒體供儲存機器可執行指令。機器可讀取媒體包括但不限於快閃記憶體、光碟、光碟-唯讀記憶體(CD-ROM)、數位影音光碟(DVD)ROM、隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)、磁或光卡、可傳播媒體或適合儲存電子指令的其它類型機器可讀取媒體。
在以上的描述及專利申請項連同它們的衍生項中,會用到“包括”與“包含”等名詞,且意欲將其彼此視為同義字。此外,在以下的描述及專利申請項連同它們的衍生項中,會用到“耦接”與“連接”等名詞。須瞭解,並無意將這些名詞彼此當成同義字。更確切地說,在特定的實施例中,“連接”係用來指出兩或多個元件彼此直接物理的或電性的接觸。“耦接”可意指兩或多個元件直接物理的或電性的接觸。不過,“耦接”也意指兩或多個元件彼此不直接接觸,但仍然彼此合作、交互作用、或通信。
在以上的描述中,使用某些術語來描述本發明的實施例。例如,名詞“邏輯”代表用來實施一或多項功能的硬體、韌體、軟體(或其任何組合)。例如,“硬體”的例子包括但不限於積體電路、有限狀態機、或甚至組合邏輯。積體電路可採處理器的形式,諸如微處理器、特殊用途積體電路、數位信號處理器、或微控制器、或類似物。
須理解,本說明書全文中參考“一實施例”或“實施例”意指與該實施例有關之特定的特徵、結構或特性,係包括在本發明之至少一實施例中。因此,須強調及理解,在本說明書內各不同部分中,兩或多次參考到“實施例”或“一實施例”或“替代的實施例”,無須全部參考相同的實施例。此外,在本發明之一或多個實施例中之特定的特徵、結構或特性可適當地結合。
同樣地,須理解,在前文對本發明之實施例的描述中,基於將揭示簡化之目的,有時可將各樣不同的特徵群組在單一的實施例、圖、或對其的描述中,以有助於對一或多樣不同之發明態樣的瞭解。不過,所揭示的此方法不能解釋成反映所主張的主題需要比每一申請項中所明確詳述之更多特徵的意圖。更確切地說,以下的申請專利範圍反映發明之態樣少於前文所揭示之單一實施例之所有特徵。因此,特此明確地將接於詳細描述之後的申請專利範圍併入本詳細描述。
100...電腦系統
102...中央處理單元
104...核心
106...核心
108...核心
110...核心
112...快取記憶體
114...記憶體控制器
116...系統記憶體
118...輸入/輸出綜合體
120...輸入/輸出介面
122...輸入/輸出轉接器
124...輸入/輸出轉接器
126...輸入/輸出裝置
128...基本輸入/輸出系統
134...虛擬機監視器
136...虛擬機
138...作業系統
140...虛擬機
143...作業系統
144...穩壓邏輯
130...輸入/輸出虛擬化邏輯
132...執行緒再映射邏輯
200...I/O綜合體
202...I/O虛擬化邏輯
204...執行緒再映射邏輯
206...輸入/輸出轉接器
208...輸入/輸出轉接器
300...執行緒再映射邏輯
302...硬體執行緒/中斷類型矩陣表
304...硬體執行緒目前電力狀態表
306...進入的輸入/輸出裝置中斷
400...中央處理單元A
420...中央處理單元B
404...執行緒再映射邏輯A
406...執行緒再映射邏輯B
408...CPU間廣播訊息
410...CPU間鏈結
412...CPU間鏈結介面
414...CPU間鏈結介面
500...節點間鏈結
502...節點控制器A
504...節點控制器B
本發明藉由例子來說明,且非受這些圖式的限制,其中,相同的參考指示相同的元件,且其中:
圖1說明具有電力最佳化中斷遞送能力之電腦系統的實施例。
圖2說明具有電力最佳化中斷遞送能力之電腦系統的另一實施例。
圖3說明儲存硬體執行緒/中斷類型等效資訊之矩陣的資料結構,以及儲存每一個硬體執行緒的目前電力狀態的資料結構。
圖4說明具有電力最佳化中斷遞送能力之雙插槽電腦系統的實施例。
圖5說明具有電力最佳化中斷遞送能力之雙節點電腦系統的實施例。
圖6係處理電力最佳化中斷遞送之實施例的流程圖。
100...電腦系統
102...中央處理單元
104...核心
106...核心
108...核心
110...核心
112...快取記憶體
114...記憶體控制器
116...系統記憶體
118...輸入/輸出綜合體
122...輸入/輸出轉接器
124...輸入/輸出轉接器
126...輸入/輸出裝置
128...基本輸入/輸出系統
130...輸入/輸出虛擬化邏輯
132...執行緒再映射邏輯
134...虛擬機監視器
136...虛擬機
138、142...作業系統
140...虛擬機
144...穩壓邏輯
Claims (25)
- 一種第一處理器,包含執行緒再映射邏輯,用來追蹤第一硬體執行緒與第二硬體執行緒的硬體執行緒中斷等效資訊;接收從裝置發出的中斷,其中,該中斷具有連結至該第一硬體執行緒的關聯性;以及當該硬體執行緒中斷等效資訊確認該第二硬體執行緒有能力處理該中斷時,將該中斷轉發給該第二硬體執行緒。
- 如申請專利範圍第1項的第一處理器,其中,該執行緒再映射邏輯進一步可操作來追蹤該第一與該第二硬體執行緒的電力狀態資訊。
- 如申請專利範圍第1項的第一處理器,其中,至少當該第一硬體執行緒在低電力狀態及該第二硬體執行緒在全操作狀態時,發生該中斷從該第一硬體執行緒到該第二硬體執行緒的該轉發。
- 如申請專利範圍第2項的第一處理器,其中,該第一硬體執行緒進一步可操作來回應該第一硬體執行緒改變電力狀態,發送用以指示該第一硬體執行緒操作之電力狀態改變的電力轉態訊息給第二處理器。
- 如申請專利範圍第4項的第一處理器,其中,該執行緒再映射邏輯進一步可操作來當該第一硬體執行緒轉態進入低電力狀態時,透通地 允許該裝置繼續正常操作,而不程式中斷轉發。
- 如申請專利範圍第5項的第一處理器,其中,該第二硬體執行緒服務該中斷。
- 如申請專利範圍第4項的該第一處理器,其中,該第一硬體執行緒係存在於該第一處理器中,及該第二硬體執行緒係存在於第二處理器中,該電力轉態訊息係橫過耦接於該第一與第二處理器的處理器間通信鏈結發送。
- 如申請專利範圍第7項的第一處理器,其中,該第一與第二硬體執行緒每一者的該硬體執行緒中斷等效資訊與電力狀態資訊,在存在於該第二處理器中之第二執行緒再映射邏輯內被同時追蹤。
- 一種電力最佳化的中斷遞送的方法,包含追蹤第一硬體執行緒與第二硬體執行緒的硬體執行緒中斷等效資訊;接收從裝置發出的中斷,其中,該中斷具有連結至該第一硬體執行緒的關聯性;以及當該硬體執行緒中斷等效資訊確認該第二硬體執行緒有能力處理該中斷時,將該中斷轉發給該第二硬體執行緒。
- 如申請專利範圍第9項的方法,進一步包含追蹤該第一與該第二硬體執行緒的電力狀態資訊。
- 如申請專利範圍第9項的方法,其中,至少當該第一硬體執行緒在低電力狀態及該第二硬體執行緒在全操作狀態時,發生將該中斷從該第一硬體執行緒轉發到該第二 硬體執行緒。
- 如申請專利範圍第10項的方法,進一步包含回應該第一硬體執行緒改變電力狀態,發送用以指示該第一硬體執行緒操作之電力狀態改變的電力轉態訊息給該第二硬體執行緒。
- 如申請專利範圍第12項的方法,進一步包含當該第一硬體執行緒轉態進入低電力狀態時,透通地允許該裝置繼續正常操作,而不程式中斷轉發。
- 如申請專利範圍第13項的方法,進一步包含以該第二處理器執行緒服務該中斷。
- 如申請專利範圍第12項的方法,橫過耦接於該第一與第二處理器的處理器間通信鏈結發送該電力轉態訊息,其中,該第一硬體執行緒存在於該第一處理器中,及該第二硬體執行緒存在於第二處理器中。
- 如申請專利範圍第15項的方法,進一步包含在存在於該第二處理器中之第二執行緒再映射邏輯內,為每一該第一與第二硬體執行緒同時追蹤該硬體執行緒中斷等效資訊與電力狀態資訊。
- 一種電力最佳化的中斷遞送的系統,包含硬體執行緒間之通信鏈結,用以在第一硬體執行緒與第二硬體執行緒間傳送資訊;第一記憶體儲存器,用以儲存至少第一硬體執行緒與第二硬體執行緒的硬體執行緒中斷等效資訊;第二記憶體儲存器,用以儲存至少該第一硬體執行緒 與該第二硬體執行緒的電力狀態資訊;以及第一執行緒再映射邏輯單元,用以追蹤該第一硬體執行緒與該第二硬體執行緒的硬體執行緒中斷等效資訊;接收從裝置發出的中斷,其中,該中斷具有連結至該第一硬體執行緒的關聯性;以及當該硬體執行緒中斷等效資訊確認該第二硬體執行緒有能力處理該中斷時,將該中斷轉發給該第二硬體執行緒。
- 如申請專利範圍第17項的系統,其中,至少當該第一硬體執行緒在低電力狀態及該第二硬體執行緒在全操作狀態時,發生該中斷從該第一硬體執行緒到該第二硬體執行緒的該轉發。
- 如申請專利範圍第17項的系統,其中,該第一執行緒再映射邏輯單元進一步可操作來回應該第一硬體執行緒改變電力狀態,發送用以指示該第一硬體執行緒操作之電力狀態改變的電力轉態訊息給該第二硬體執行緒。
- 一種電腦可讀取媒體,其上儲存有指令,處理器執行該等指令,致使該處理器施行一方法,包含:追蹤第一硬體執行緒與第二硬體執行緒的硬體執行緒中斷等效資訊;接收從裝置發出的中斷,其中,該中斷具有連結至該第一硬體執行緒的關聯性;以及 當該硬體執行緒中斷等效資訊確認該第二硬體執行緒有能力處理該中斷時,將該中斷轉發給該第二硬體執行緒。
- 如申請專利範圍第20項的電腦可讀取媒體,進一步包含追蹤該第一及第二硬體執行緒的電力狀態資訊。
- 如申請專利範圍第20項的電腦可讀取媒體,其中,至少當該第一硬體執行緒在低電力狀態及該第二硬體執行緒在全操作狀態時,發生將該中斷從該第一硬體執行緒轉發到該第二硬體執行緒。
- 如申請專利範圍第22項的電腦可讀取媒體,進一步包含回應該第一硬體執行緒改變電力狀態,發送用以指示該第一硬體執行緒操作之電力狀態改變的電力轉態訊息給該第二硬體執行緒。
- 如申請專利範圍第23項的電腦可讀取媒體,橫過耦接於該第一與第二處理器的處理器間通信鏈結發送該電力轉態訊息,其中,該第一硬體執行緒係存在於該第一處理器中,及該第二硬體執行緒係存在於第二處理器中。
- 如申請專利範圍第24項的電腦可讀取媒體,進一步包含在存在於該第二處理器中之第二執行緒再映射邏輯內,為每一該第一與第二硬體執行緒同時追蹤該硬體執行緒中斷等效資訊與電力狀態資訊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/869,192 US8762994B2 (en) | 2010-08-26 | 2010-08-26 | Power-optimized interrupt delivery |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201229742A TW201229742A (en) | 2012-07-16 |
TWI454902B true TWI454902B (zh) | 2014-10-01 |
Family
ID=45698893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100127725A TWI454902B (zh) | 2010-08-26 | 2011-08-04 | 電力最佳化的中斷遞送的方法與系統、及其處理器與電腦可讀取媒體 |
Country Status (9)
Country | Link |
---|---|
US (2) | US8762994B2 (zh) |
JP (1) | JP5690403B2 (zh) |
KR (1) | KR101773224B1 (zh) |
CN (1) | CN103080918B (zh) |
BR (1) | BR112013004408A2 (zh) |
DE (1) | DE112011102822T5 (zh) |
GB (1) | GB2496810B (zh) |
TW (1) | TWI454902B (zh) |
WO (1) | WO2012027074A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5169731B2 (ja) * | 2008-10-24 | 2013-03-27 | 富士通セミコンダクター株式会社 | マルチプロセッサシステムlsi |
US8762994B2 (en) | 2010-08-26 | 2014-06-24 | Intel Corporation | Power-optimized interrupt delivery |
EP2458501A1 (en) * | 2010-11-30 | 2012-05-30 | France Telecom | Method of operating a communication device and related communication device |
US8990602B2 (en) * | 2010-12-21 | 2015-03-24 | Intel Corporation | Apparatus, method, and system for early deep sleep state exit of a processing element |
US8656079B2 (en) * | 2011-12-19 | 2014-02-18 | Advanced Micro Devices, Inc. | Method and apparatus for remapping interrupt types |
WO2013162523A1 (en) * | 2012-04-24 | 2013-10-31 | Intel Corporation | Dynamic interrupt reconfiguration for effective power management |
US9116750B2 (en) * | 2012-08-08 | 2015-08-25 | International Business Machines Corporation | Optimizing collective communications within a parallel computer |
US9026705B2 (en) * | 2012-08-09 | 2015-05-05 | Oracle International Corporation | Interrupt processing unit for preventing interrupt loss |
US9009508B2 (en) | 2012-08-28 | 2015-04-14 | Advanced Micro Devices, Inc. | Mechanism for reducing interrupt latency and power consumption using heterogeneous cores |
US9027029B2 (en) * | 2013-03-28 | 2015-05-05 | International Business Machines Corporation | Method for activating processor cores within a computer system |
KR101638088B1 (ko) | 2015-11-04 | 2016-07-08 | 주식회사 영화키스톤건축사사무소 | 미장공사용 개량형 피니셔 |
US20170300101A1 (en) * | 2016-04-14 | 2017-10-19 | Advanced Micro Devices, Inc. | Redirecting messages from idle compute units of a processor |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
US10620983B2 (en) | 2016-11-08 | 2020-04-14 | International Business Machines Corporation | Memory stripe with selectable size |
US10235202B2 (en) | 2016-11-08 | 2019-03-19 | International Business Machines Corporation | Thread interrupt offload re-prioritization |
WO2018176360A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Scalable interrupt virtualization for input/output devices |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US10599596B2 (en) * | 2018-01-08 | 2020-03-24 | Intel Corporation | Management of processor performance based on user interrupts |
CN112470125B (zh) * | 2018-07-24 | 2024-02-20 | 三菱电机株式会社 | 中断处理方法、计算机系统以及存储介质 |
CN111459626B (zh) * | 2020-03-11 | 2021-06-01 | 完美世界(北京)软件科技发展有限公司 | 一种用于实现不分线无缝游戏世界的方法和装置 |
DE102021111180A1 (de) * | 2021-04-30 | 2022-11-03 | Intel Corporation | Verarbeitungsvorrichtung, Steuereinheit, elektronische Vorrichtung, Verfahren für die elektronische Vorrichtung und Computerprogramm für die elektronische Vorrichtung |
CN114003363B (zh) * | 2021-11-01 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 线程间中断信号发送方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073131A1 (en) * | 2000-12-13 | 2002-06-13 | Brenner Kenneth J. | Unified exception handling for hierarchical multi-interrupt architectures |
US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
TWI309765B (en) * | 2006-03-17 | 2009-05-11 | Asustek Comp Inc | Method and apparatus for controlling power supply in a computer system |
TW200928710A (en) * | 2007-12-24 | 2009-07-01 | Hewlett Packard Development Co | Methods and apparatus for managing power on a computer in the event of a power interruption |
TWI321005B (en) * | 2002-04-29 | 2010-02-21 | Adc Dsl Sys Inc | Systems for managing power from a power source, access networks,methods for controlling a line-powered network element of an access network, methods for provisioning a service in a telecommunications network and computer readable mediums |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772241B1 (en) | 2000-09-29 | 2004-08-03 | Intel Corporation | Selective interrupt delivery to multiple processors having independent operating systems |
US7117285B2 (en) * | 2003-08-29 | 2006-10-03 | Sun Microsystems, Inc. | Method and system for efficiently directing interrupts |
JP2004094966A (ja) * | 2003-10-17 | 2004-03-25 | Mitsubishi Electric Corp | 計算機および計算機システム |
US8127098B1 (en) * | 2004-05-11 | 2012-02-28 | Globalfoundries Inc. | Virtualization of real mode execution |
US20060095624A1 (en) | 2004-11-03 | 2006-05-04 | Ashok Raj | Retargeting device interrupt destinations |
US20060112208A1 (en) | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
JP5173714B2 (ja) | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ及びその割り込み処理方法 |
JP5169731B2 (ja) * | 2008-10-24 | 2013-03-27 | 富士通セミコンダクター株式会社 | マルチプロセッサシステムlsi |
JP5352848B2 (ja) | 2008-11-28 | 2013-11-27 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機装置 |
US8566492B2 (en) * | 2009-12-31 | 2013-10-22 | Intel Corporation | Posting interrupts to virtual processors |
US8762994B2 (en) | 2010-08-26 | 2014-06-24 | Intel Corporation | Power-optimized interrupt delivery |
-
2010
- 2010-08-26 US US12/869,192 patent/US8762994B2/en not_active Expired - Fee Related
-
2011
- 2011-08-02 JP JP2013525929A patent/JP5690403B2/ja not_active Expired - Fee Related
- 2011-08-02 WO PCT/US2011/046255 patent/WO2012027074A1/en active Application Filing
- 2011-08-02 BR BR112013004408-0A patent/BR112013004408A2/pt not_active Application Discontinuation
- 2011-08-02 CN CN201180041092.2A patent/CN103080918B/zh not_active Expired - Fee Related
- 2011-08-02 DE DE201111102822 patent/DE112011102822T5/de not_active Withdrawn
- 2011-08-02 GB GB1303290.9A patent/GB2496810B/en not_active Expired - Fee Related
- 2011-08-02 KR KR1020137004633A patent/KR101773224B1/ko active IP Right Grant
- 2011-08-04 TW TW100127725A patent/TWI454902B/zh not_active IP Right Cessation
-
2014
- 2014-05-15 US US14/278,200 patent/US9141573B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073131A1 (en) * | 2000-12-13 | 2002-06-13 | Brenner Kenneth J. | Unified exception handling for hierarchical multi-interrupt architectures |
TWI321005B (en) * | 2002-04-29 | 2010-02-21 | Adc Dsl Sys Inc | Systems for managing power from a power source, access networks,methods for controlling a line-powered network element of an access network, methods for provisioning a service in a telecommunications network and computer readable mediums |
US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
TWI309765B (en) * | 2006-03-17 | 2009-05-11 | Asustek Comp Inc | Method and apparatus for controlling power supply in a computer system |
TW200928710A (en) * | 2007-12-24 | 2009-07-01 | Hewlett Packard Development Co | Methods and apparatus for managing power on a computer in the event of a power interruption |
Also Published As
Publication number | Publication date |
---|---|
KR101773224B1 (ko) | 2017-08-31 |
TW201229742A (en) | 2012-07-16 |
US20120054750A1 (en) | 2012-03-01 |
CN103080918A (zh) | 2013-05-01 |
JP2013545150A (ja) | 2013-12-19 |
US8762994B2 (en) | 2014-06-24 |
CN103080918B (zh) | 2016-08-03 |
DE112011102822T5 (de) | 2013-06-06 |
GB2496810A (en) | 2013-05-22 |
GB201303290D0 (en) | 2013-04-10 |
GB2496810B (en) | 2019-05-29 |
US9141573B2 (en) | 2015-09-22 |
BR112013004408A2 (pt) | 2020-08-25 |
US20140250250A1 (en) | 2014-09-04 |
KR20130032402A (ko) | 2013-04-01 |
JP5690403B2 (ja) | 2015-03-25 |
WO2012027074A1 (en) | 2012-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI454902B (zh) | 電力最佳化的中斷遞送的方法與系統、及其處理器與電腦可讀取媒體 | |
TWI461911B (zh) | 用於實施微分頁表之裝置、方法與系統 | |
US9798487B2 (en) | Migrating pages of different sizes between heterogeneous processors | |
US10409730B2 (en) | Microcontroller for memory management unit | |
US10445243B2 (en) | Fault buffer for resolving page faults in unified virtual memory system | |
US20140281299A1 (en) | Opportunistic migration of memory pages in a unified virtual memory system | |
TWI434181B (zh) | 電腦系統中溝通中斷之處理器中斷裝置、計算方法及電腦系統技術 | |
US10216413B2 (en) | Migration of peer-mapped memory pages | |
US8806232B2 (en) | Systems and method for hardware dynamic cache power management via bridge and power manager | |
TW201120643A (en) | Providing hardware support for shared virtual memory between local and remote physical memory | |
US10296356B2 (en) | Implementation of reset functions in an SoC virtualized device | |
WO2009014576A1 (en) | Systems and methods for improving performance of a routable fabric | |
US20170286354A1 (en) | Separation of control and data plane functions in soc virtualized i/o device | |
US20230132931A1 (en) | Hardware management of direct memory access commands | |
US20220374354A1 (en) | Live-migration of pinned direct memory access pages to support memory hot-remove | |
US20170139873A1 (en) | Separation of control and data plane functions in soc virtualized i/o device | |
US20230036751A1 (en) | Sparse memory handling in pooled memory | |
Bhattacharjee et al. | Heterogeneity and Virtualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |