TWI564704B - 省電處理器架構 - Google Patents

省電處理器架構 Download PDF

Info

Publication number
TWI564704B
TWI564704B TW101132336A TW101132336A TWI564704B TW I564704 B TWI564704 B TW I564704B TW 101132336 A TW101132336 A TW 101132336A TW 101132336 A TW101132336 A TW 101132336A TW I564704 B TWI564704 B TW I564704B
Authority
TW
Taiwan
Prior art keywords
core
processor
cores
small
tdp
Prior art date
Application number
TW101132336A
Other languages
English (en)
Other versions
TW201329693A (zh
Inventor
安德魯 哈特里奇
瑞梅齊庫瑪 依利卡爾
洛維宣卡 艾爾
薩多戈潘 斯林尼法森
賈迪普 摩西斯
斯里哈利 馬奇奈尼
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201329693A publication Critical patent/TW201329693A/zh
Application granted granted Critical
Publication of TWI564704B publication Critical patent/TWI564704B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/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
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0274Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
    • H04W52/028Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof switching on or off only a part of the equipment circuit blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • 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/70Reducing energy consumption in communication networks in wireless communication networks

Description

省電處理器架構 發明領域
本發明係有關於一種省電處理器架構。
發明背景
典型地,一處理器在可能的時候會使用節能休眠模式,如依照先進組態與電源介面(ACPI)標準(例如,2006年10月10日所發表的Rev.3.0b)。除了電壓與頻率調節(DVFS或ACPI效能狀態)之外,此等所謂C-狀態核心低功率狀態(ACPI C-states)能夠在一核心閒置或者未完全使用的時候節省電能。然而,甚至於多核心處理器的情境中,通常一核心會被從省電的休眠狀態喚醒以執行相對簡單的運作,然後回到休眠狀態。此運作會不利地影響電能效率,因為用於離開與恢復低功率狀態地延遲及電源消耗皆有成本。於狀態轉變的期間,於某些類型的處理器中會在未完成有用的工作之狀態下消耗電源,而損傷電能效率。
根據離開低功率狀態而處置的運作之範例包括鍵盤輸入、計時器中斷、網路中斷、等等。為了以電能感應的方式來處置此等運作,目前的作業系統(OSs)藉由每次處理大量的資料、或者移至沒有週期性計時器中斷而僅有偶發的程控中斷之一無滴答OS(tickless OS)以改變程式行為。另一策略為使用將多個中斷分組並同時處置的計時器聯合 (coalescing)。但除了改變程式的行為之外,所有此等運作提高複雜性且仍然致使低效能的運作。再者,一些類型的軟體(例如,media playback)不論有多少工作需要被完成而藉由要求頻繁且週期性的喚醒,來試圖使硬體省電機制無效。因此,該等無滴答/計時器聯合策略可藉由降低非必要之從深層C-狀態中喚醒以節省一些電源,但其等需要對OS之侵入性的改變且會花費顯著的時間量來傳播通過一計算生態系統,如此直到發行一新版本的作業系統才執行改變。
依據本發明之一實施例,係特地提出一種裝置,其包含用以執行指令的一第一核心、用以執行指令的一第二核心,該第二核心係異質於並且較小於該第一核心、及一邏輯,當該等第一與第二核心處於低電源狀態時,該邏輯致使該第二核心而非該第一核心因應一中斷訊號而被喚醒。
圖式簡單說明
圖1為依照本發明的一個實施例之一處理器的方塊圖;圖2為依照本發明的另一實施例之一處理器的方塊圖;圖3為依照本發明的一個實施例之核心之間的恢復流程選項的一流程圖; 圖4為依照本發明的一實施例之一方法的流程圖;圖5為依照本發明的一實施例之用以轉換執行狀態之方法的流程圖;圖6為依照本發明的又一實施例之一處理器的方塊圖;圖7為依照本發明的再一實施例之一處理器的方塊圖;圖8為依照本發明的又一實施例之一處理器的方塊圖;圖9為依照本發明的一實施例的一時序圖;圖10為依照本發明的一實施例之電源節省的圖解例示說明;以及圖11為依照本發明的一實施例之一系統的方塊圖。
較佳實施例之詳細說明
於多種實施例中,於一異質處理器環境中可降低平均電源消耗。此異質環境可包括大型快速核心以及因系統與省電的原因而結合之較小的省電核心。繼續,實施例能夠以對在該處理器上執行的一作業系統(OS)透明(transparent)的方式來提供此電源控制。然而,本發明的範圍並非限制於異質環境,並且亦可使用於均質環境中(從OS-透明的觀點而非必要地硬體-異質的觀點)以降低平均電源(例如,於多處理器的環境中保持盡可能多的核心 於睡眠狀態)。實施例尤其適合硬體加速環境,如核心通常處於睡眠狀態之以平板電腦為基礎的及系統單晶片(SoC)的架構。
一般來說,實施例可藉由引導所有的啟動信號至一較小型核心而非一較大型核心以提供電源控制。以此方法,當該系統為95%閒置時,可能可降低平均電源遠遠超過兩倍。如同將所敘述的,於許多實施例中,此較小型核心可與該OS隔離。亦即,此較小型核心的存在對該OS而言是未知的,且此核心對該OS而言為不可見的。如此,實施例能夠以透明於該處理器上執行的該OS和應用程式之方式,來提供經由處理器硬體的省電處理器運作。
現參考圖1,顯示依照本發明的一個實施例的一處理器的方塊圖。如同圖1中所見,處理器100可為具有一些大型核心、小型核心及加速器的一異質處理器。儘管於此敘述一多核心處理器,理解的實施例並非如此限定並且在實施上可於SoC或其他以半導體為基礎的處理裝置中。請注意,不管該等處理器核心是否電源開啟,該等加速器可基於一輸入工作佇列以執行工作。於圖1的實施例中,處理器100包括複數個大型核心。所顯示的特定實施例中,係顯示兩個此類核心110a及110b(一般,大型核心110),儘管理解的是可裝配多於兩個此類大型核心。於多種實施中,此等大型核心可為具有相對複的管線架構並依照複雜指令集計算(CISC)架構運作之亂序(out-of-order)處理器。
此外,處理器100更包括複數個小型核心120a-120n(一 般,小型核心120)。儘管圖1的實施例中顯示8個此類核心,理解的是本發明的範圍並非限定於此方面。於多種實施例中,小型核心120可為省電的循序(in-order)處理器,例如根據CISC或精簡指令集計算(RISC)架構執行指令。於一些實施中,二或更多個此等核心可串聯耦接在一起以執行相關處置,例如,若數個大型核心處於省電狀態時,那麼一或多個小型核心可為現用的以執行以其他方式會喚醒該等大型核心的工作。於許多實施例中,小型核心120以可用的組態選項可透明至一OS,儘管於其他實施例中該等小型與大型核心可暴露於OS。一般來說,大型與小型核心之間的任何核心混合可使用於不同的實施例中。舉例來說,每一大型核心可裝配單一個小型核心,或者於其他實施例中,單一個小型核心可與多個大型核心相關聯。
如同於此所使用的,該用詞”大型核心(large core)”可為一處理器核心,其為一相對複雜的設計,且其相較於較不複雜的設計且消耗對應較少量的晶片有效面積(chip real estate)之一”小型核心(small core)”會消耗相對大量的晶片有效面積。此外,因為該等較小型核心比該等較大型核心具有較少的熱設計功耗(TDP),該等較小型核心比該等較大型核心更為省電。然而,理解的是,該等較小型核心相較於該等大型核心會受限於其等之處理能力。舉例來說,此等較小型核心無法處置在該等大型核心為可能的所有運作。此外,該等較小型核心在指令處理方面可能效率不高。亦即,指令在該等大型核心中較該等小型核心中執行 的更為迅速。
如同進一步所看到的,大型核心110與小型核心120兩者皆耦接至一互連130。此互連結構的不同實施可實現於不同實施例中。舉例來說,於一些實施例中,該互連結構可根據一前側匯流排(FSB)架構或者Intel®快速通道互連(QPI)通訊協定。於其他實施例中,該互連結構可根據已知的系統組織。
仍參考圖1,多個加速器140a-140c亦可耦接至互連130。儘管本發明的範圍並非限定於此方面,該等加速器可包括例如音頻及/或視頻處理器的媒體處理器、加密處理器、固定功能單元、等等。此等加速器可由設計該等核心的相同設計者所設計,或者可為併入於該處理器中之獨立的第三方智慧財產權(IP)方塊。一般情況下,不管在性能或電源消耗方面,專屬的處理任務於此等加速器中執行較該等大型核心或該等小型核心上執行地更有效率。儘管圖1的實施例中顯示此特定實施,理解的是,本發明的範圍並非限定於此方面。舉例來說,取代僅具有兩種類型的核心(即大型核心與小型核心),其他實施例可具有多個階層的核心,包括至少一大型核心、一中型核心及一小型核心,該中型核心具有比該小型核心較大的晶片有效面積但比該大型核心較小的晶片有效面積,並且對應該大型核心與該小型核心的電源消耗之間的電源消耗。於又其他實施例中,該小型核心可嵌入於一較大型核心中,例如作為該較大型核心的邏輯與結構的支組。
再者,當如圖1中所示包括多個大型核心及多個小型核心時,對於例如移動式處理器或SoC的某些實施,可能可以僅裝配單一個大型核心及單一個小型核心。現特別參考圖2,係顯示依照本發明的另一實施例之一處理器的方塊圖,其中處理器100’包括單一個大型核心110及單一個小型核心120,以及互連130和加速器140a-c。如同所提及的,此實施可適用於移動式應用。
如同對於典型的大型核心之範例的電源圖式,電源消耗大約近似6000毫瓦(mW),同時對於中型核心的電源消耗大約近似500mW,而對於非常小型核心的電源消耗大約近似15mW。於避免喚醒大型核心的實施中,可達到顯著的電源效益。
實施例使該等大型非省電核心得以較其等原本以其他方式能夠保持在低電源睡眠狀態更長的時間。藉由將中斷訊號及其他核心喚醒事件引導至該等較小型核心而非該等較大型核心,雖然該等較小型核心可運作得更久並且經常醒著,此行為還是較喚醒一大型核心執行例如移動資料之簡易的任務更為省電。請注意,如同下文所述關於一些運作,該大型核心可被啟動用以執行實例的較小型核心可能無法支持的運算(例如,AVX運算)、複雜的定址模式、或浮點(FP)運算。於此類情況中,一喚醒信號可從該小型核心重選路線至該大型核心。
舉例來說,當在一處理器上執行硬體加速1080p視訊錄放時,每秒會出現超過1000次進入和離開核心C6狀態 (core C6 state)的轉換以及接近1200次中斷。若甚至使用本發明的一實施例將此等喚醒事件的一部重新引導至一較小型核心,可達到顯著的電源節省。
圖3概括依照本發明的一個實施例之核心之間的恢復流程選項。如圖3中所見,係呈現一軟體領域210及一硬體領域220。一般來說,軟體領域210對應至關於電源管理的OS運作,例如根據ACPI實施。一般來說,基於根據其排程機制之即將來臨的任務消息,OS可選擇多個C-狀態中的一個以要求該處理器進入低電源模式。舉例來說,OS可發佈包括一被要求的特定低電源狀態的MWAIT呼叫。
一般來說,C0對應至執行指令的正常運作狀態,而C1-C3係為OS較低電源狀態,其各自具有不同程度的店員節省及對應不同程度之回到C0狀態的潛伏。如所見,取決於該處理器的預期工作量,OS可選擇例如OS C0的非閒置狀態、或者例如OS C-狀態C1-C3之多個閒置狀態中的一者。此等閒置狀態中的每一者可映射至在處理器硬體控制下之一對應的硬體低電源狀態。因此,處理器硬體可將已知的OS C-狀態映射至一對應的硬體C-狀態,此狀態可用於提供較OS所支配之更佳的電源節省。一般來說,較淺的C-狀態(例如,C1)比較深的C-狀態(例如,C3)節省較少電源但具有較少的恢復時間。於多種實施例中,儘管本發明的範圍並非限定於此方面,硬體領域220以及OS C-狀態至處理器C-狀態的映射可由該處理器的電源控制單元(PCU)來執行。此映射技術可基於以OS為基礎的電源管理要求的 先前歷史。同樣地,該決定可基於整體系統、組態資訊、等等的狀況。
此外,該PCU或其他處理器邏輯可組構以將所有的喚醒事件引導至一最小的可得核心(於多種實施例中,最小的可得核心可為一OS不可見核心)。如圖3中所見,在退出一已知之以硬體為基礎的閒置狀態之後,控制直接恢復至該最小的可得核心使得狀態轉換至此最小核心。相較之下,於傳統的硬體/軟體恢復技術中,控制僅回至該大型核心。一般,OS基於預期的閒置時間及恢復潛伏要求來選擇C-狀態,其中該架構將預期的閒置時間及恢復潛伏要求映射至一硬體C-狀態。因此,如圖3的實施例中所見,所有恢復信號(例如中斷訊號)係被選定路線至該最小的可得核心,該最小可得核心判定其是否能夠處置該恢復運作,或者將替代地發送一喚醒信號至一較大型核心以繼續。請注意,實施例並未抵觸現有的P-狀態或C-狀態自動降級,其中硬體自動地基於所測量的實驗效率來選擇硬體C-狀態與較低的恢復潛伏。請注意,PCU或另一可程式實體亦可能可檢驗進入的喚醒事件以判定選定路限至哪一個核心(大型或小型)。
如先前所述,於一些實施中,該小型核心本身可隱蔽於OS或應用軟體。舉例來說,一小型-大型核心對可自應用軟體分離並且隱蔽於該應用軟體。於低電源狀態中,當一加速器(例如視訊解碼加速器)執行例如解碼任務的一已知任務時,所有核心可進入睡眠。當該加速器耗盡資料, 其引導一喚醒信號引導以要求可來自該小型核心之額外的資料,該小型核心醒來並判定此簡易資料移動運作可在不喚醒該大型核心的情況下完成,因此節省電源。若一計時器中斷到達且該小型核心醒來並替代地檢測一複雜的向量運算(如256-位元AVX指令)存在於一指令流中,可喚醒該大型核心以處置複雜的指令(以及於此串流中的其他指令)而能夠降低潛伏。於一代替的實施中,位於PCU中或靠近PCU的另一非核心位置之一總體硬體觀察機制、或總體互連上的硬體邏輯的個別區段、或該小型核心的內部控制邏輯之外的部分,能夠檢測該小型核心遭遇AVX指令並且可產生一未定義指令錯誤,該未定義指令錯誤會導致該小型核心停止運作並且在醒來之後重新將該指令流引導至該較大型核心。請注意,此行為可延伸超出指令至組態或特徵。例如,若該小型核心遭遇寫入至僅存在該大型核心上的組態空間之動作,其可要求喚醒該大型核心。
現參考圖4,顯示依照本發明的一實施例之一方法的流程圖。請注意,取決於已知的實施態樣,圖4的方法可由多種代理者所執行。舉例來說,於一些實施例中,方法300可部分地由一處理器中之例如電源控制單元的系統代理者電路所實施,該電源控制單元可於一系統代理者或一處理器的非核心部分之中。於其他實施例中,方法300可部分地由互連結構之中之例如電源控制邏輯的互連邏輯所實施,該互連結構可例如從耦接致該互連結構之加速器接收中斷訊號並且將該等中斷訊號發送至所選擇的位置。
如圖4中所見,方法300可由將大型及小型核心兩者皆安置於一睡眠狀態中開始(方塊310)。亦即,假設沒有活動中的運作正執行於該等核心中。例如,其等可被安置於一所選擇的低電源狀態中以降低電源消耗。儘管該等核心可為非活動中的,於一處理器或SoC中之例如一或多個加速器的其他代理者可正在執行任務。於方塊320,可從例如一加速器接收一中斷訊號。當該加速器已完成一任務或遭遇一錯誤時,或者當該加速器需要額外的資料或其他處理係由例如一已知核心之另一組件所執行時,可發送此中斷訊號。控制方法接著移至方塊330,其中該邏輯可將一恢復信號直接發送至該小型核心。亦即,該邏輯可被程式化以於大型及小型核心兩者皆處於低電源狀態時,總是發送一恢復信號至該小型核心(或者取決於系統實施態樣而發送至多個此類小型核心中之所選擇的一者)。對於該小型核心可處置所要求的運作之中斷訊號的許多例子,藉由直接並總是將中斷訊號發送至該小型核心,可避免該大型核心之較大的電源消耗。請注意,可於方塊330增加某些類型的濾波或高速存取機制,使得某些中斷來源總是會被選定路線至一個核心或另一者,如所欲以平衡效能及電源。
仍參考圖4,控制方法接著接著移至菱形340,其中可判定該小型核心是否能夠處置與該中斷訊號相關聯的一要求。儘管本發明的範圍並非限定於此方面,於一些實施例中,此判定步驟可於該小型核心啟動之後在其本身之中完成。或者,執行圖4的方法之邏輯可執行該判定步驟(且於 此實例中,此分析可能可於發送該恢復信號至該小型核心之前完成)。
作為一個範例,該小型核心可基於效能需求及/或該小型核心的指令集架構(ISA)能力,以判定其是否能夠處置所要求的運作。若該小型核心因不具有ISA支援而無法處置一所要求之運作,該小型核心的前端邏輯可剖析一所接收的指令流,並且判定該指令流中之至少一個指令並未受該小型核心支援。再者,該小型核心可發出一未定義指令錯誤。此未定義錯誤可發送至該PCU(或另一實體),其可分析該錯誤及該小型核心的狀態以判定該未定義錯誤是否為該小型核心不具有處置指令的硬體支援之結果、或者替代地為一真正的未定義錯誤。於後者之實例中,該未定義錯誤可發送至OS以進一步處置。若該錯誤係由於該小型核心未具有處置該指令之適合的硬體支援,該PCU可使得原先轉移至此小型核心的執行狀態轉移至一對應的大型核心,以處置所要求的指令。
於其他實施例中,當判定該小型核心已執行了太長的時間或以太低的效能等級執行時,可發生小型核心與大型核心之間之執行狀態的轉移。亦即,假設該小型核心為施行所要求的任務已執行數千或百萬次處理器週期。因該大型核心可得到更合宜的執行,藉由將該狀態轉移至該大型核心使該大型核心能夠更快速地結束該任務,可能可發生更佳的電源減少。
仍參考圖4,若判定所要求的運作可於該小型核心中 處置,則控制方法移至方塊350,其中運作係因此執行於該小型核心中。舉例來說,假設所要求的運作為資料移動運作,則該小型核心可執行所要求的處理,並且若沒有其他任務在等候該小型核心,其可再一次被安置於一低電源狀態中。
若於菱形340替代地判定該小型核心無法處置所要求的運作,例如,若該運作為該小型核心未組構以處置之相對複雜的運作,則控制方法移至方塊360。一喚醒信號可例如直接從該小型核心發送至該大型核心,以使該大型核心電源開啟。於是,控制方法移至方塊370,其中所要求之運作可因此於該大型核心中執行。請注意,儘管於圖4的實施例中係以此特定的一組運作來敘述,但可理解的是本發明的範圍並非限定於此方面。
因此,於多種實施例中,可提供一機制以允許硬體中斷訊號或其他喚醒信號被選定路線直接至該小型核心而不喚醒該大型核心。請注意,於不同的實施態樣中,該小型核心本身或者一監督代理者可判定該喚醒信號及處理是否可在不喚醒該大型核心的情況下完成。於代表性的實例中,該較小型核心可比該等較大型核心更為省電,並且因而僅可支援該大型核心所支援的指令中的一子集。並且,於一異質環境中(其中,為了效能或節省電源的原因,許多各種尺寸的核心係包括於一系統之中),在從低電源狀態中啟動之後將執行的許多運作可被卸載至一較簡單且較省電的核心,以避免喚醒一較大型之效能更強的核心。
現參考圖5,顯示依照本發明的一實施例之用以轉移執行狀態的一方法的流程圖。如圖5中所示,在一個實施例中,方法380可由一PCU的邏輯所執行。此邏輯可因應將一大型核心安置於低電源狀態之一要求而被觸發。因應此類要求,方法380可開始於方塊382,其中該大型核心的執行狀態可儲存於一暫時儲存區中。請注意,此暫時儲存區可為與該核心相關聯的一專用的狀態保存區,或者其可於例如最後一級快取(last level cache,LLC)的一共享快取之中。儘管本發明的範圍並非限定於此方面,該執行狀態可包括通用的暫存器、狀態及組態暫存器、執行旗標、等等。再者,此時可執行使該大型核心能夠被安置於低電源狀態的額外運作。此類運作包括清除內部快取及其他狀態與發出該已知核心停止運作的信號。
仍參考圖5,可接著判斷該小型核心是否已經恢復(菱形384)。可因為一恢復信號而發生此恢復,係因應來自例如該處理器的加速器之一中斷訊號而接受該恢復信號。作為該小型核心恢復的一部分,控制方法移至方塊386,其中可從該暫時儲存區擷取該大型核心狀態的至少一部分。更確切地,此被擷取出的部分可為該大型核心的執行狀態之將被該小型核心所使用的部分。作為範例,此狀態部分可包括主要暫存器的內容、例如某些執行旗標的多種旗標、機械狀態暫存器、等等。然而,某些狀態不可被擷取,例如與出現在該大型核心中且在該小型核心中沒有對應執行單元的一或多個執行單元相關聯之狀態。該狀態被 擷取出的此部分可接著被發送至該小型核心(方塊388),因此使得該小型核心能夠實行因應該已知中斷訊號之適當的任何運作。儘管於圖5的實施例中係以此特定的實施態樣來顯示,但所理解的是本發明的範圍並非限定於此方面。
現參考圖6,顯示依照本發明的一實施例的一處理器的方塊圖。如圖6中所示,處理器400可為一多核心處理器,包括第一複數個可暴露於OS的核心4101-410n、及第二複數個透明於該OS的核心410a-x。
如所見,該等多種核心可透過一互連415而耦接至包括多種組件的一系統代理者或非核心420。如所見,該非核心420可包括一共享快取430,其可為一最後一級快取。再者,該非核心可包括一整合記憶體控制器440、多種介面450a-n、電源控制單元455、及高級可編程中斷控制器(APIC)465。
PCU 450可包括多種邏輯以能夠實施依照本發明的一實施例的省電運作。如所見,PCU 450可包括可執行上述喚醒動作的喚醒邏輯452。因此,邏輯452可組構以總是首先喚醒一小型核心。然而,於某些情況下,此邏輯可動態地組構以不執行此類小型核心直接喚醒動作。舉例來說,例如當一系統為靠電池運作的一移動式系統時,該系統可動態地組構以為了電源節省運作。於這樣的情況下,該邏輯可組構以總是喚醒該小型核心。替代地,若該系統為一伺服器系統、連接至牆上電源的桌上型電腦或膝上型電腦系統,實施例可提供一基於使用者的選擇,於電源節省期 間選擇潛伏及效能。因此,於這樣的例子中,喚醒邏輯452可組構以因應中斷訊號來喚醒一大型核心而非小型核心。當已判定大量的小型核心喚醒會導致重定向至一大型核心時,可執行相似之該大型核心的喚醒動作。
為了進一步能夠實施省電運作,PCU 450可更包括可執行大型與小型核心之間的執行狀態轉移之一狀態轉移邏輯454。如上文所述,此邏輯可用於在低電源狀態期間將一大型核心的執行狀態儲存至一暫時儲存器之中,並且在一小型核心啟動之後擷取該狀態的至少一部分以提供至一小型核心。
又進一步地,PCU 450可包括一中斷歷程儲存器456。此類儲存器可包括複數個項目,每一項目可識別於系統運作期間已發生的一中斷訊號及該中斷訊號是否成功由該小型核心處置。接著,基於此歷程,當接收一已知的中斷訊號時,可存取此儲存器的一對應項目以判定相同類型之一先前的中斷訊號是否已成功地由該小型核心處置。若是,該PCU可將新進來的中斷訊號導引至相同的小型核心。反而,若基於此歷程而判定此類型的中斷訊號未成功地由小型核心處置(或者以令人不滿意的低效能處置),則該中斷訊號可替代地發送至一大型核心。
仍參考圖6,PCU 450可更包括一未定義處置邏輯458。此類邏輯可接收由一小型核心所發出的未定義錯誤。基於此邏輯,可存取該小型核心中的資訊。接著,可判定該未定義錯誤是否為該小型核心中缺少用於該指令的 支援之結果、或者為另一原因。因應此判定動作,該邏輯可使得該小型核心的狀態與該大型核心執行狀態(儲存於暫時儲存區)的剩餘部分合併之後並發送至該大型核心以處置該中斷訊號,或者將該未定義錯誤發送至一OS以進一步處置。當判定一小型核心無法處置該中斷訊號時,該執行狀態之提供至該小型核心的部份係因此從該小型核心取出並保存回該暫時儲存位置,且因此該小型核心可斷電。此合併後的狀態隨著該大型核心之剩餘的執行狀態可接著提供回該大型核心,以使得該大型核心能夠處置該小型核心無法處置的一中斷訊號。亦請注意,因應此類小型核心的處置錯誤,可編寫中斷歷程儲存器456中的一項目。儘管於圖6的實施例中係以此特定邏輯來顯示,但所理解的是本發明的範圍並非限定於此方面。舉例來說,於其他實施例中,PCU 450的多種邏輯可於一單一邏輯方塊中實施。
APCI 465可接收例如從加速器所發出的多種中斷訊號,並且將該等中斷訊號適當地導引至已知的一或多個核心。於一些實施例中,為了維持該等小型核心隱蔽於該OS,APIC 465可動態地將進來的中斷訊號從與一大型核心相關聯的APIC ID重映射至與一小型核心相關聯的APIC ID,該等中斷訊號中的每一者可包括與其相關聯的一APCI識別符。
進一步參照圖6,處理器400可例如透過一記憶體匯流排來與一系統記憶體460溝通。再者,藉由介面450,可連 接至多種晶片外組件,例如周邊裝置、大量儲存器、等等。儘管於圖6的實施例中係以此特定實施態樣來顯示,但所理解的是本發明的範圍並非限定於此方面。
請注意,可能有多種架構能夠實施該等大型及小型核心的不同耦接或整合。作為範例,此等分離核心之間的耦接程度可取決於與晶粒區域、電源、效能及響應性相關的種種工程最佳化參數。
現參考圖7,顯示依照本發明的另一實施例之一處理器的方塊圖。如圖7中所示,處理器500可為一真異質處理器,包括一大型核心510及一小型核心520。如所見,每一處理器可與其本身之私用快取記憶體階層相關聯,亦即包括一階與二階快取的快取記憶體515及525。接著,該等核心可透過一環狀互連530而耦接在一起。多個加速器540a和540b及一LLC(亦即,可為共享快取的一L3快取550)亦耦接至該環狀互連。於此實施態樣中,該等兩個核心之間的執行狀態可透過環狀互連530轉移。如上文所述,在進入一已知的低電源狀態之前,該大型核心500的執行狀態可儲存於快取550中。接著,於喚醒小型核心520之後,此執行狀態的至少一子集可提供至該小型核心,以使得該核心準備好執行觸發其喚醒的一運作。因此於圖7的實施例中,該等核心細透過此環狀互連而鬆耦合。儘管為了容易例示說明一單一大型核心及一單一小型核心而顯示,理解的是本發明的範圍並非限定於此方面。使用例如圖7的一實施態樣,將被調換的任何狀態或溝通可透過該環狀架構 (其亦可為一匯流排或光纖架構)來處置。或者,於其他實施例中,此溝通可透過該等兩個核心之間的一專用匯流排(圖7中未示)。
現參考圖8,顯示依照本發明的又另一實施例的一處理器的方塊圖。如圖8中所示,處理器500’可為一併合異質處理器,其中該等大型及小型核心之間有緊密的耦接或整合。特別是如圖8中所見,大型核心510及小型核心520可共享一共享快取記憶體518,該共享快取記憶體518在多種實施例中可包括一階與二階快取兩者。如此,執行狀態可透過此快取記憶體而從該等核心中的一者轉移至另一者,因此避免通過環狀互連530的通訊延遲。請注意,此配置允許因降低資料移動負擔之較低的電源、以及該等核心之間較快的溝通,但不會如此彈性。
請注意,圖7和8僅例示說明兩個可能的實施態樣(且僅顯示有限數量的核心)。更多的實施變化是可能的,包括不同的核心配置、該等兩種方案的組合、多於兩種類型的核心、等等。同樣可能的是,於圖8的變化中,該等兩個核心可共享像是執行單元的一些組件、指令指標、或暫存器檔案。
如討論的,實施例可完全透明並且隱蔽於作業系統,且因此可達到沒有軟體改變以及從C-狀態的恢復時間僅極少的增加。於其他實施例中,小型核心的存在及可利用性可暴露於該OS,因此使該OS能夠做出提供一中斷訊號至一小型核心或一大型核心之決定。此外,實施例可提供系 統軟體中例如基本輸入輸出系統(BIOS)之機制,以將該等大型及小型核心暴露於該OS,或者組構該等小型核心是否暴露。實施例可增加從C-狀態的表觀恢復時間,但這是可以接受的,因為目前的平台在恢復潛伏方面有所變化,且目前沒有有用的工作係於恢復一核心的狀態的時間內完成。小型與大型核心如何不同的比例可能會從不顯著的差異變化到重要的微架構結構差異。根據多種實施例,該等異質核心之間最主要的區分物可為晶粒區域及該等核心所消耗的電源。
於一些實施態樣中,可提供一控制機制,使得若偵測到在恢復之後大部分時間會喚醒該大型核心,則喚醒小型核心的動作可置於不顧,且至少對於為保存性能的一段預定時間可直接喚醒該大型核心。請注意,於一些實施例中,取決於應用程式與系統的電源及性能需求,通用地重新引導所有中斷訊號及其他喚醒信號至該小型或大型核心的一機制可暴露於軟體、系統及用戶級軟體兩者。作為一個這樣的範例,可提供一用戶級指令以執行喚醒運作至一指定核心的引導。此類指令可為一像監視器等待(MWAIT)指令的變化。
於一些實施例中,一加速器可將一隱示(hint)與一中斷訊號一起發送至該PCU或其他管理代理者,以指示所要求的運作為相對簡單的運作,使得所要求的運作可有效地於該小型核心中處置。此加速器所提供的隱示可由該PCU使用,以自動地將近來的中斷訊號導引至該小型核心處 置。
現參考圖9,顯示一時序圖,其例示說明依照本發明的一實施例的大型核心710及小型核心720中發生的運作。如所見,藉由允許將一裝置中斷訊號直接提供至小型核心720並且判定該小型核心中是否能夠處置該中斷訊號,而能夠有大型核心710的較長睡眠持續期間。若如此,大型核心710可保持在一睡眠狀態,且該中斷訊號可於小型核心720處置。
現參考圖10,顯示依據本發明的一實施例之電源節省的圖解例示說明。如圖10中所示,於現用C0狀態轉移至深沈低電源狀態(例如,C6狀態)的一傳統系統中,大型核心的核心電源消耗可從每次進入C0狀態之相對高等級(例如,500mW)變化為C6狀態中之零電源消耗等級(中間的圖式)。反而,於本發明的一實施例中(底部的圖式),可導引進入C0狀態的喚醒離開該大型核心至一小型核心,且因此而不是500mW的電源消耗等級,於圖10的實施例中,該等小型核心可在例如10mW之一低得多的電源等級處置C0狀態。
實施例可以許多不同的系統類型來實行。現參考圖11,顯示依照本發明的一實施例的一系統的方塊圖。如圖11中所示,多處理器系統600為一點對點互連系統,並且包括透過點對點互連650耦接的一第一處理器670及一第二處理器680。如圖11中所示,儘管潛在地更多的核心可存在於該等處理器中,處理器670及680中的每一者可為一多 核心處理器,包括第一及第二處理器核心(亦即,處理器核心674a和674b、及處理器核心684a和684b)。更具體地,除了至少在該等大型核心處於低電源狀態時將喚醒導引至最小的可得核心的邏輯之外,該等處理器的每一者可包括混合的大型小型(及可能中型)核心、加速器、等等,如同於此所述。
仍參考圖11,第一處理器670更包括一記憶體控制器集線器(MCH)672及點對點(P-P)介面676和678。相似地,第二處理器680包括一MCH 682及P-P介面686和688。如圖11中所示,MCH’s 672和682將該等處理器耦接至各自的記憶體,亦即記憶體632和記憶體634,其等可為系統記憶體(例如,DRAM)局部依附至各自處理器的部分。第一處理器670及第二處理器680可分別特過P-P互連652及654而耦接至一晶片組690。如圖11中所示,晶片組690包括P-P介面694及698。
再者,晶片組690包括藉由P-P互連639而使晶片組690與一高效能圖形引擎638耦接的一介面692。接著,晶片組690可透過一介面696而耦接至一第一匯流排616。如圖11中所示,多種輸入/輸出(I/O)裝置614可與使第一匯流排616耦接至第二匯流排620的一匯流排橋接器618一起耦接至第一匯流排616。多種裝置可耦接至第二匯流排620,於一個實施例中例如包括鍵盤/滑鼠622、通訊裝置626、以及例如磁碟機或其他大量儲存裝置之包括碼630的資料儲存單元628。此外,音訊I/O 624可耦接至第二匯流排620。 實施例可納入其他類型的系統,包括例如智慧型行動電話、平板電腦、筆記型電腦、等等的行動裝置。
實施例可以碼來實行並且儲存於其中儲存有指令的一非暫時儲存媒體中,其可使用於編程一系統以執行該等指令。該儲存媒體可包括但不限於包括軟式磁碟、光碟、固態硬碟(SSDs)、唯讀光碟記憶體(CD-ROMs)、可抹寫光碟(CD-RWs)、及磁光碟之任何類型磁碟,例如唯讀記憶體(ROMs)、如動態隨機存取記憶體(DRAMs)和靜態隨機存取記憶體(SRAMs)的隨機存取記憶體(RAMs)、可抹除可程式化唯讀記憶體(EPROMs)、快閃記憶體、電子可抹除可程式化唯讀記憶體(EEPROMs)、磁性或光學卡之半導體裝置,或者適合儲存電子指令之其他類型的媒體。
儘管已經關於有限數量的實施例敘述本發明,熟此技藝者將可從此察知許多修改及變化。所意欲的是,因落入本發明的精神及範圍之中,所附申請專利範圍涵蓋所有此類修改及變化。
100、100’‧‧‧處理器
110‧‧‧大型核心
120‧‧‧小型核心
130‧‧‧互連
140‧‧‧加速器
210‧‧‧軟體領域
220‧‧‧硬體領域
300‧‧‧方法
310~330‧‧‧方塊
340‧‧‧菱形
350~370‧‧‧方塊
380‧‧‧方法
382‧‧‧方塊
384‧‧‧菱形
386、388‧‧‧方塊
400‧‧‧處理器
410‧‧‧核心
415‧‧‧互連
420‧‧‧非核心
430‧‧‧共享快取
440‧‧‧整合記憶體控制器
450‧‧‧介面
452‧‧‧喚醒邏輯
454‧‧‧狀態轉移邏輯
455‧‧‧電源控制單元
456‧‧‧中斷歷程儲存器
458‧‧‧未定義處置邏輯
460‧‧‧系統記憶體
465‧‧‧高級可編程中斷控制器
500‧‧‧處理器
500’‧‧‧處理器
510‧‧‧大型核心
515‧‧‧快取記憶體
518‧‧‧共享快取記憶體
520‧‧‧小型核心
525‧‧‧快取記憶體
530‧‧‧環狀互連
540a、540b‧‧‧加速器
550‧‧‧L3快取
600‧‧‧多處理器系統
614‧‧‧輸入/輸出裝置
616‧‧‧第一匯流排
618‧‧‧匯流排橋接器
620‧‧‧第二匯流排
622‧‧‧鍵盤/滑鼠
624‧‧‧音訊I/O
626‧‧‧通訊裝置
628‧‧‧資料儲存裝置
630‧‧‧碼
638‧‧‧高效能圖形引擎
639‧‧‧P-P互連
650‧‧‧點對點互連
670‧‧‧第一處理器
672‧‧‧記憶體控制器集線器
674a、674b‧‧‧處理器核心
676、678‧‧‧點對點介面
680‧‧‧第二處理器
682‧‧‧記憶體控制器集線器
684a、684b‧‧‧處理器核心
686、688‧‧‧點對點介面
690‧‧‧晶片組
692、696‧‧‧介面
694、698‧‧‧P-P介面
710‧‧‧大型核心
720‧‧‧小型核心
圖1為依照本發明的一個實施例之一處理器的方塊圖;圖2為依照本發明的另一實施例之一處理器的方塊圖;圖3為依照本發明的一個實施例之核心之間的恢復流程選項的一流程圖;圖4為依照本發明的一實施例之一方法的流程圖; 圖5為依照本發明的一實施例之用以轉換執行狀態之方法的流程圖;圖6為依照本發明的又一實施例之一處理器的方塊圖;圖7為依照本發明的再一實施例之一處理器的方塊圖;圖8為依照本發明的又一實施例之一處理器的方塊圖;圖9為依照本發明的一實施例的一時序圖;圖10為依照本發明的一實施例之電源節省的圖解例示說明;以及圖11為依照本發明的一實施例之一系統的方塊圖。
100‧‧‧處理器
110a‧‧‧大型核心
110b‧‧‧大型核心
120a‧‧‧小型核心
120n‧‧‧小型核心
130‧‧‧互連
140a‧‧‧加速器
140b‧‧‧加速器
140c‧‧‧加速器

Claims (18)

  1. 一種處理器,其包含用以執行指令的一第一核心;用以執行指令的一第二核心,該第二核心係異質於該第一核心且具有小於該第一核心的熱設計功耗(TDP);及一電源控制單元(PCU),用以以對於一作業系統透明(transparent)的方式控制該處理器的電源消耗,該電源控制單元用以當該等第一與第二核心處於低電源狀態時,致使該第二核心而非該第一核心因應一中斷訊號而被喚醒,該第二核心對於該作業系統透明,且該電源控制單元用以接收該中斷訊號與一隱示,以指示該中斷訊號是否應被導引至該第二核心或該第一核心。
  2. 如申請專利範圍第1項之處理器,其中該電源控制單元總是致使該第二核心而非該第一核心因應該中斷訊號而被喚醒。
  3. 如申請專利範圍第1項之處理器,其中該電源控制單元係因應該中斷訊號而用以提供該第一核心的一執行狀態的一子集於該第二核心。
  4. 如申請專利範圍第3項之處理器,其中該第二核心係用以判定該第二核心是否能夠處置該中斷訊號,且若無法處置,則致使一喚醒信號發送至該第一核心。
  5. 如申請專利範圍第4項之處理器,其中因應該第二核心無法處置該中斷訊號之判斷,該電源控制單元係用以 從該第二核心得到該第一核心的該執行狀態的該子集,並且將該執行狀態子集與儲存於一暫時儲存區之該第一核心的該執行狀態的剩餘部分合併。
  6. 如申請專利範圍第1項之處理器,其中該處理器包含一包括該等第一與第二核心的多核心處理器、及該電源控制單元,該電源控制單元包括:一喚醒邏輯;一狀態轉移邏輯;一未定義處置邏輯;及一中斷歷程儲存器。
  7. 如申請專利範圍第1項之處理器,其更包含耦接至該電源控制單元的一加速器,該加速器用以執行一任務並且在完成該任務之後發送該中斷訊號至該電源控制單元。
  8. 如申請專利範圍第7項之處理器,其中當該中斷訊號包含資料移動運作的一請求時,該第二核心係用以處置該中斷訊號。
  9. 如申請專利範圍第7項之處理器,其中當該中斷訊號包含向量運算的一請求時,該第二核心係用以致使一喚醒信號發送至該第一核心以使得該第一核心能夠處置該中斷訊號。
  10. 如申請專利範圍第9項之處理器,其中該電源控制單元係用以從該第二核心接收一未定義指令錯誤、判定該第二核心無法處置該向量運算、從該第二核心得到一執行狀態、將該執行狀態與儲存於一暫時儲存區之該第一核 心的執行狀態的至少一部分合併、並且致使所合併的執行狀態發送至該第一核心。
  11. 如申請專利範圍第1項之處理器,其中該電源控制單元係用以分析複數個中斷訊號,且若該等複數個中斷訊號中的大部分係要由該第一核心處置,該電源控制單元因應該中斷訊號而不喚醒該第二核心反而喚醒該第一核心。
  12. 一種方法,其包含下列步驟:當一處理器的一第一小熱設計功耗(TDP)核心及一第一大TDP核心處於低電源狀態時,從該處理器之一電源控制單元(PCU)的一邏輯中的一加速器接收一中斷訊號,該處理器包括該第一小TDP核心、該第一大TDP核心及該加速器,該第一小TDP核心對於一作業系統透明(transparent);因應該中斷訊號而將一恢復信號直接發送至該第一小TDP核心,並且提供該第一大TDP核心的一執行狀態的一子集於該第一小TDP核心;在該第一小TDP核心中判定該第一小TDP核心是否能夠處置與該中斷訊號相關聯的一請求,且若如此則於該第一小TDP核心中實行對應該請求的一運作;及接收該中斷訊號與一隱示,以指示該中斷訊號是否應被導引至該第一小TDP核心或該第一大TDP核心。
  13. 如申請專利範圍第12項之方法,其更包含下列步驟,若該第一小TDP核心無法處置該請求,從該第一小 TDP核心得到該執行狀態子集,將該執行狀態子集與已儲存之該第一大TDP核心的執行狀態合併,及將一喚醒信號與所合併的執行狀態發送至該大型核心。
  14. 如申請專利範圍第13項之方法,其更包含一步驟,之後於該第一大TDP核心實行對應該請求的運作。
  15. 如申請專利範圍第12項之方法,其更包含下列步驟,基於該中斷訊號的類型以存取一表中的一項目,及基於該項目以判定將該恢復信號直接發送至該第一小TDP核心或該第一大TDP核心。
  16. 一種系統,其包含:一多核心處理器,其包括第一複數個核心和第二複數個核心、一加速器、及一電源控制單元(PCU),該等第二複數個核心具有比該等第一複數個核心較低的熱設計功耗,其中該電源控制單元係用以在該等第一複數個核心和該等第二複數個核心處於低電源狀態時從該加速器接收一中斷訊號與一隱示,以指示該中斷訊號是否應被導引至該第二複數核心或該第一複數核心、因應該中斷訊號而直接發送一恢復信號至該等第二複數個核心中的第一個、以及提供該等第一複數個核心中之第一個的執行狀態的子集於該等第二複數個核心中的該第一個,其中該第二複數核心對於一作業系統透明(transparent);及耦接至該多核心處理器的一動態隨機存取記憶體(DRAM)。
  17. 如申請專利範圍第16項之系統,其中該等第一複 數個核心為相較於該等第二複數個核心的異質設計。
  18. 如申請專利範圍第16項之系統,其中該電源控制單元係用以使用該中斷訊號來存取一表中的一項目以判定將該恢復信號發送至該等第一或第二複數個核心中的該第一個,其中當該項目指示該等第二複數個核心中的一者以因應與該中斷訊號相同類型之一先前的中斷訊號而招致一未定義錯誤時,該電源控制單元係用以發送該恢復信號至該等第一複數個核心中的該第一個。
TW101132336A 2011-09-06 2012-09-05 省電處理器架構 TWI564704B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/050580 WO2013036222A1 (en) 2011-09-06 2011-09-06 Power efficient processor architecture

Publications (2)

Publication Number Publication Date
TW201329693A TW201329693A (zh) 2013-07-16
TWI564704B true TWI564704B (zh) 2017-01-01

Family

ID=47832464

Family Applications (4)

Application Number Title Priority Date Filing Date
TW105114441A TWI622874B (zh) 2011-09-06 2012-09-05 省電處理器架構
TW101132336A TWI564704B (zh) 2011-09-06 2012-09-05 省電處理器架構
TW105118773A TWI622875B (zh) 2011-09-06 2012-09-05 省電處理器架構
TW104137165A TWI622872B (zh) 2011-09-06 2012-09-05 省電處理器架構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW105114441A TWI622874B (zh) 2011-09-06 2012-09-05 省電處理器架構

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW105118773A TWI622875B (zh) 2011-09-06 2012-09-05 省電處理器架構
TW104137165A TWI622872B (zh) 2011-09-06 2012-09-05 省電處理器架構

Country Status (9)

Country Link
US (5) US9360927B2 (zh)
JP (1) JP6197196B2 (zh)
KR (6) KR101889756B1 (zh)
CN (2) CN103765409A (zh)
DE (1) DE112011105590T5 (zh)
GB (1) GB2507696B (zh)
IN (1) IN2014CN01367A (zh)
TW (4) TWI622874B (zh)
WO (1) WO2013036222A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886917B1 (en) * 2007-04-25 2014-11-11 Hewlett-Packard Development Company, L.P. Switching to core executing OS like codes upon system call reading greater than predetermined amount of data
TWI454905B (zh) * 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
US8984200B2 (en) * 2012-08-21 2015-03-17 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9009508B2 (en) 2012-08-28 2015-04-14 Advanced Micro Devices, Inc. Mechanism for reducing interrupt latency and power consumption using heterogeneous cores
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US9727345B2 (en) * 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
JP6175980B2 (ja) * 2013-08-23 2017-08-09 富士通株式会社 Cpuの制御方法、制御プログラム、情報処理装置
US10218645B2 (en) * 2014-04-08 2019-02-26 Mellanox Technologies, Ltd. Low-latency processing in a network node
US9575537B2 (en) * 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
KR20160054850A (ko) * 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US10089112B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor
US9804845B2 (en) 2014-12-14 2017-10-31 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor
US10146547B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor
US10083038B2 (en) 2014-12-14 2018-09-25 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on page walks in an out-of-order processor
US10114646B2 (en) 2014-12-14 2018-10-30 Via Alliance Semiconductor Co., Ltd Programmable load replay precluding mechanism
US10108420B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor
WO2016097797A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Load replay precluding mechanism
US10108430B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10146540B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor
US9740271B2 (en) 2014-12-14 2017-08-22 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor
US10088881B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude I/O-dependent load replays in an out-of-order processor
US10108421B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude shared ram-dependent load replays in an out-of-order processor
KR101820221B1 (ko) 2014-12-14 2018-02-28 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 프로그래머블 로드 리플레이 억제 메커니즘
WO2016097811A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude load replays dependent on fuse array access in out-of-order processor
WO2016097792A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude load replays dependent on write combining memory space access in out-of-order processor
US10175984B2 (en) 2014-12-14 2019-01-08 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor
WO2016097796A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude i/o-dependent load replays in out-of-order processor
US10120689B2 (en) 2014-12-14 2018-11-06 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10108428B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor
EP3055769B1 (en) 2014-12-14 2018-10-31 VIA Alliance Semiconductor Co., Ltd. Mechanism to preclude load replays dependent on page walks in out-of-order processor
US9703359B2 (en) 2014-12-14 2017-07-11 Via Alliance Semiconductor Co., Ltd. Power saving mechanism to reduce load replays in out-of-order processor
US10127046B2 (en) 2014-12-14 2018-11-13 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude uncacheable-dependent load replays in out-of-order processor
EP3055768B1 (en) 2014-12-14 2018-10-31 VIA Alliance Semiconductor Co., Ltd. Mechanism to preclude uncacheable-dependent load replays in out-of-order processor
JP6286065B2 (ja) 2014-12-14 2018-02-28 ヴィア アライアンス セミコンダクター カンパニー リミテッド アウトオブオーダープロセッサの書き込み結合メモリ領域アクセスに依存するロードリプレイを除外する装置及び方法
US10108429B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude shared RAM-dependent load replays in an out-of-order processor
US10146539B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd. Load replay precluding mechanism
US10228944B2 (en) 2014-12-14 2019-03-12 Via Alliance Semiconductor Co., Ltd. Apparatus and method for programmable load replay preclusion
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
US10037227B2 (en) * 2015-12-17 2018-07-31 Intel Corporation Systems, methods and devices for work placement on processor cores
US10856220B2 (en) * 2015-12-21 2020-12-01 Apple Inc. Energy-efficient signal processing
US11061730B2 (en) * 2016-11-18 2021-07-13 Red Hat Israel, Ltd. Efficient scheduling for hyper-threaded CPUs using memory monitoring
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
CN109996185B (zh) * 2017-12-29 2022-02-15 腾讯科技(深圳)有限公司 终端的定位方法和装置、存储介质、电子装置
JP7047114B2 (ja) * 2018-02-08 2022-04-04 アリババ・グループ・ホールディング・リミテッド 電力および性能の予測および制御のためのハイブリッドシステムオンチップ
KR102552666B1 (ko) 2018-11-12 2023-07-10 삼성전자주식회사 전자 장치 및 그것의 동작 방법
CN113254070B (zh) 2020-02-07 2024-01-02 阿里巴巴集团控股有限公司 加速单元、片上系统、服务器、数据中心和相关方法
CN116670654A (zh) * 2020-12-31 2023-08-29 创峰科技 采用多层架构的设备诊断和故障排除
US20230205297A1 (en) * 2021-12-27 2023-06-29 Advanced Micro Devices, Inc. Method and apparatus for managing power states
CN114253694B (zh) * 2022-02-25 2022-06-24 杭州雄迈集成电路技术股份有限公司 一种基于神经网络加速器的异步处理方法与装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993670A (zh) * 2004-08-05 2007-07-04 松下电器产业株式会社 信息处理装置
US20080126747A1 (en) * 2006-11-28 2008-05-29 Griffen Jeffrey L Methods and apparatus to implement high-performance computing
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US20090089470A1 (en) * 2007-09-28 2009-04-02 Ven Adriaan Van De Interrupt balancing for multi-core and power
US20090248934A1 (en) * 2008-03-26 2009-10-01 International Business Machines Corporation Interrupt dispatching method in multi-core environment and multi-core processor

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257375A (en) 1991-08-23 1993-10-26 International Business Machines Corp. Method and apparatus for dispatching tasks requiring short-duration processor affinity
JPH06348513A (ja) 1993-06-11 1994-12-22 Sony Corp 割込制御装置
JPH08249018A (ja) 1995-03-10 1996-09-27 Omron Corp マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ
US5768594A (en) 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US6728892B1 (en) 1999-09-15 2004-04-27 Koninklijke Philips Electronics N.V. Method for conserving power in a can microcontroller and a can microcontroller that implements this method
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7376954B2 (en) 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
US7516456B2 (en) 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US7451146B2 (en) 2004-06-30 2008-11-11 Hewlett-Packard Development Company, L.P. Almost non-blocking linked stack implementation
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US20060075404A1 (en) 2004-10-06 2006-04-06 Daniela Rosu Method and system for scheduling user-level I/O threads
US8607235B2 (en) 2004-12-30 2013-12-10 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
JP3866749B2 (ja) 2005-03-07 2007-01-10 富士通株式会社 マイクロプロセッサ
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7461275B2 (en) 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US8798571B2 (en) 2005-10-11 2014-08-05 Via Technologies Inc. Method of managing power consumption of portable computer and portable computer using the same
JP4621113B2 (ja) 2005-10-28 2011-01-26 ルネサスエレクトロニクス株式会社 半導体集積回路装置
EP1785809A1 (en) 2005-11-14 2007-05-16 Texas Instruments Inc. Standby mode for power management
JP2007148952A (ja) 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
US7647509B2 (en) 2006-05-12 2010-01-12 Intel Corporation Method and apparatus for managing power in a processing system with multiple partitions
JP2007328461A (ja) 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
JP4837780B2 (ja) 2006-07-28 2011-12-14 アーム・リミテッド マスタおよびスレーブを有するデータ処理デバイスにおける電力管理
US8028290B2 (en) 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
JP2007188523A (ja) 2007-03-15 2007-07-26 Toshiba Corp タスク実行方法およびマルチプロセッサシステム
US20080307240A1 (en) 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
CN101689106B (zh) 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US7603504B2 (en) * 2007-12-18 2009-10-13 Intel Corporation Reducing core wake-up latency in a computer system
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8010822B2 (en) 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20100030927A1 (en) * 2008-07-29 2010-02-04 Telefonaktiebolaget Lm Ericsson (Publ) General purpose hardware acceleration via deirect memory access
US8199917B2 (en) 2008-10-29 2012-06-12 International Business Machines Corporation SID management for access to encrypted drives
JP5109935B2 (ja) 2008-11-10 2012-12-26 富士通株式会社 プロセッサシステムの動作方法およびプロセッサシステム
US8135972B2 (en) 2009-03-10 2012-03-13 Cortina Systems, Inc. Data interface power consumption control
US8458676B2 (en) * 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US8364857B2 (en) * 2009-08-31 2013-01-29 Qualcomm Incorporated Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network
US8234431B2 (en) 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
US8566836B2 (en) 2009-11-13 2013-10-22 Freescale Semiconductor, Inc. Multi-core system on chip
US9098274B2 (en) * 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
KR101697937B1 (ko) * 2010-01-08 2017-02-01 삼성전자주식회사 멀티프로세서 시스템에서 동적 태스크 마이그레이션을 위한 방법 및 시스템
US8418187B2 (en) 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
US20110213935A1 (en) * 2010-03-01 2011-09-01 Arm Limited Data processing apparatus and method for switching a workload between first and second processing circuitry
CN101923491A (zh) 2010-08-11 2010-12-22 上海交通大学 多核环境下线程组地址空间调度和切换线程的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993670A (zh) * 2004-08-05 2007-07-04 松下电器产业株式会社 信息处理装置
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US20080126747A1 (en) * 2006-11-28 2008-05-29 Griffen Jeffrey L Methods and apparatus to implement high-performance computing
US20090089470A1 (en) * 2007-09-28 2009-04-02 Ven Adriaan Van De Interrupt balancing for multi-core and power
US20090248934A1 (en) * 2008-03-26 2009-10-01 International Business Machines Corporation Interrupt dispatching method in multi-core environment and multi-core processor

Also Published As

Publication number Publication date
TW201631441A (zh) 2016-09-01
TWI622874B (zh) 2018-05-01
TW201629693A (zh) 2016-08-16
GB201402807D0 (en) 2014-04-02
TW201329693A (zh) 2013-07-16
TW201640276A (zh) 2016-11-16
CN106155265B (zh) 2020-03-31
KR20180077308A (ko) 2018-07-06
JP2014528115A (ja) 2014-10-23
KR20140056322A (ko) 2014-05-09
GB2507696A (en) 2014-05-07
TWI622875B (zh) 2018-05-01
CN103765409A (zh) 2014-04-30
KR20160060162A (ko) 2016-05-27
TWI622872B (zh) 2018-05-01
US20180329478A1 (en) 2018-11-15
GB2507696B (en) 2017-08-02
KR101624061B1 (ko) 2016-05-24
US20130262902A1 (en) 2013-10-03
US20160299559A1 (en) 2016-10-13
US10664039B2 (en) 2020-05-26
US20160299558A1 (en) 2016-10-13
KR101873935B1 (ko) 2018-07-04
KR101889755B1 (ko) 2018-08-21
KR102082241B1 (ko) 2020-02-27
US9360927B2 (en) 2016-06-07
US20160306415A1 (en) 2016-10-20
KR20160060163A (ko) 2016-05-27
KR102082242B1 (ko) 2020-02-27
KR20190049927A (ko) 2019-05-09
IN2014CN01367A (zh) 2015-04-24
CN106155265A (zh) 2016-11-23
KR20160086421A (ko) 2016-07-19
US10048743B2 (en) 2018-08-14
WO2013036222A1 (en) 2013-03-14
US9870047B2 (en) 2018-01-16
US9864427B2 (en) 2018-01-09
DE112011105590T5 (de) 2014-07-03
JP6197196B2 (ja) 2017-09-20
KR101889756B1 (ko) 2018-08-21

Similar Documents

Publication Publication Date Title
TWI564704B (zh) 省電處理器架構
TWI386791B (zh) 用以將計算平台轉換為低電力系統狀態之技術
CN103282854B (zh) 用于功率管理的系统和方法
JP2009520302A (ja) プロセッサ状態遷移を検出するための方法及び装置
US20180157311A1 (en) System-Wide Idle Resiliency Mechanism for Always-On Always-Connected Computers
JP6409218B2 (ja) 電力効率の優れたプロセッサアーキテクチャ
GB2536825A (en) Power efficient processor architecture
CN106020424B (zh) 有功率效率的处理器体系结构
JP2016212907A (ja) 電力効率の優れたプロセッサアーキテクチャ
JP2017021811A (ja) 電力効率の優れたプロセッサアーキテクチャ
CN106095046A (zh) 有功率效率的处理器体系结构

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees