TWI506559B - 可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法 - Google Patents

可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法 Download PDF

Info

Publication number
TWI506559B
TWI506559B TW100147943A TW100147943A TWI506559B TW I506559 B TWI506559 B TW I506559B TW 100147943 A TW100147943 A TW 100147943A TW 100147943 A TW100147943 A TW 100147943A TW I506559 B TWI506559 B TW I506559B
Authority
TW
Taiwan
Prior art keywords
core
cores
microprocessor
setting
primary
Prior art date
Application number
TW100147943A
Other languages
English (en)
Other versions
TW201234271A (en
Inventor
G Glenn Henry
Stephan Gaskins
Original Assignee
Via Tech Inc
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
Priority to US201061426470P priority Critical
Priority to US13/299,239 priority patent/US8972707B2/en
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW201234271A publication Critical patent/TW201234271A/zh
Application granted granted Critical
Publication of TWI506559B publication Critical patent/TWI506559B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 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; 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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

Description

可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法 【相關申請案之參考文獻】
本申請案優先權之申請係根據該美國專利臨時申請案,案號:61/426,470,申請日:12/22/2010,名稱為多核心內之旁路匯流排(MULTI-CORE INTERNAL BYPASS BUS),該案整體皆納入本案參考。
本申請案與下列同在申請中之美國專利申請案有關,都具有相同的申請日,每一申請案整體皆納入本案參考。
本發明係有關於一種多核心微處理器,特別是指一種具有動態停用或重新設定核心的功能之多核心微處理器。
在一些傳統的多核心微處理器中,製造商可以在微處理器燒斷每一核心上的鎔絲(fuse),來指定多核心微處理器之每一核心的設定。是以,經由多核心微處理器的核心鎔絲數值便可靜態的定義每個核心,並確定系統內哪一核心能夠執行處理資料。雖然這種解決方法可能有許多優點,但缺點是一旦使用第一個多核心微處理器的設定,由於核心上的鎔絲已被燒斷,因此在產生第二次設定的需求時,已燒斷鎔絲的核心便不能再重新設定。在某些應用中,例如執行不能支援多核心測試或是應用軟體時,可能需要停用核心。此外,在許多應用中,並非所有微處理器的核心是需要的,而核心甚至會在休眠狀態以節省功率的情況下,依然引起處理器或系統匯流排與核心共享的拖曳。拖曳可以被例如對窺探週期的響應而引起。此外,多核心微處理器中,個別核心可能在製造中有缺陷、或是在測試、操作過程中故障,這樣的情況也會干擾為了核心間通訊而在處理器核心間所設置的預設調整系統。因此,現今需要的是一個重新設定多核心微處理器的可靠方法。
在一實施例中,本發明提供一種可動態重新設定之多核心微處理器,該多核心微處理器包含複數個初始啟用的處理核心,每個處理核心係設定為執行系統軟體發出的終止指令、以及內部儲存且已設定之微碼,藉以停止響應於耦合在多核心微處理器外部之系統匯流排之傳輸。執行終止指令之處理核心可藉由輸入在多核心微處理器重置引腳的外部重置而保有恢復的可操作性。處理核心可以從微處理器移除電源,然後再接上的情況下恢復,但在實務上,停用的設定是不可以被撤回的。在重置或是重新接上電源後,執行終止指令而停用之初始啟動的處理核心會恢復成可操作之啟動核心,除非接收到另一終止指令否則其不會停用。
在相關方面,因為執行終止指令而停用之處理核心無法對系統匯流排之傳輸產生響應,所以它並不會響應或遵行重置訊息指令、甚至是對重置訊息指令之響應或遵行失能。此外,執行終止指令而停用之處理核心因為無法對系統匯流排之傳輸產生響應,因此它不會對系統匯流排之窺探週期產生響應,因此不會增加處理器匯流排的相關拖曳。
另一方面,每一初始啟動核心更進一步設定對該終止指令產生響應,而使每一初始啟動核心自行進入一省電睡眠狀態。此外,其他未被終止指令所停用的初始啟動核心,係藉由內部電源狀態之管理微碼來調整彼此間之電源狀態管理,無需參考任何已停用核心之電源狀態需求值。
另一方面,本發明提供一種具有可動態重新設定核心間調整系統之多核心微處理器,可動態重新設定之多核心微處理器包含複數個處理核心,該些複數個處理核心中至少有一處理核心被指定為一主要核心。該可動態重新設定之多核心微處理器更包含至少一邊帶通訊線,該邊帶通訊線係設置於一系統匯流排之外部並且耦接於一晶片組,藉以增進該些處理核心間的通訊。每一組邊帶通訊線耦接於至少兩處理核心。該兩處理核心任何一個可在運作時,被系統軟體重新設定為主要核心或移除原有被指定為主要核心,並根據該主要核心之指定(不管是否有這項指定)有條件地驅動一輸出至該邊帶通訊線之連接端。
在其他方面,每一處理核心可包含一預設設定,用以儲存於該些處理核心內部邏輯中,藉以判斷該處理核心是否為主要核心。該些處理核心包含一儲存器,用以儲存對該處理核心之一修正設定。此外,該內部之儲存器係用以儲存對該多核心微處理器所作之一修正設定,如果有修正設定的話,該修正設定係依據主要核心設定來辨識其他該多核心微處理器之啟動核心。
另一方面,該些處理核心設有內部電源狀態之管理微碼,並依據該修正設定所儲存的內容調整其電源狀態管理。
另一方面,本發明提供一種停用包含複數個核心之多核心微處理器內之一或多個核心之方法。每一核心執行系統軟體程式之第一或終止指令,用以指示核心自行停用。其餘未執行第一指令之複數個核心則執行系統軟體程式之第二指令,藉以指定多核心微處理器之核心設定。核心設定可藉由使用者指定而反應一或多個已停用核心之狀態。
另一方面,執行終止指令之核心停止響應於一匯流排上包含重置訊息指令以及以最小的功耗狀態轉換的傳輸。然而,這些執行終止指令之核心對於外部重設多核心微處理器之重置引腳的外部重設響應的功能係被保留。
另一方面,執行第二指令的其餘核心將於其內部儲存核心設定。
另一方面,每一核心在重置後且在執行任何終止指令前,會立即確認該多核心微處理器之初始預設核心設定。然而,在一或多個核心接收並執行任何終止指令後,其餘每一核心係根據所儲存的核心設定而非初始設定來執行。
另一方面,核心在重置後,首先確認一初始核心設定,之後基本輸入/輸出系統發出一終止或設定更新寫入指令至每一核心的特定模組暫存器,其中終止或設定更新寫入指令是與使用者所指定相符且一致的,這項指定係儲存在記憶體,並提供晶片組轉予微處理器使用。在停用及其餘啟動核心分別執行其指令後,除了那些正在執行基本輸入/輸出系統的核心之外,基本輸入/輸出系統發出一停止指令至其餘每一個啟動核心,藉以指示核心停止執行,但仍保有核心響應於系統匯流排傳輸的功能。之後基本輸入/輸出系統在單一剩餘執行核心上啟動一操作系統,接著執行系統發送一重置指令指示核心自行重置,但任何一個不再響應於系統匯流排傳輸而停用的核心,不會響應或遵行此重置指令,即只有執行停止指令的核心遵行於重置指令。
另一方面,本發明提供一種動態重置多核心微處理器內之一或多個核心之方法,該多核心微處理器包含複數個核心以及至少一組邊帶通訊線,此邊帶通訊線係設置於一系統匯流排外部並耦接於一晶片組,藉以增進無系統匯流排(non-system-bus)之核心間的通訊。其中每一核心係依據其被設定為主要核心之設定(不管是否有這項設定)有條件地驅動一邊帶通訊線至一連接端。其中至少有一些核心係可被重新設定為具有或並無主要核心辨識碼(master credential),藉以架構以邊帶為基礎之核心間通訊。
另一非限制之實例中,適用於微處理器之方法包含複數個多核心晶片,每一晶片具有一被指定為主要核心之核心,該方法更包含一組耦接於晶片之晶片間邊帶通訊線,其中每一晶片的核心,無論其是否為主要核心,係耦接於該組晶片間邊帶通訊線,並且依據其被設定為主要核心之設定(不管是否有這項設定)而有條件地驅動一輸出至該組晶片間邊帶通訊線;並且任何晶片之核心在運作時可重新設定為主要核心或移除原有之指定。
處理器的核心具有一初始設定,藉以設定至少一個核心作為主要核心,而不是設定全部核心作為主要核心。該初始設定可藉由選擇性的燒斷一適用於每一個核心的鎔絲而產生,其中適用的鎔絲係定義為在預設的情況下,核心是否具有一或多個主要核心辨識碼。藉由設定發現微碼在該每一核心上運行而選擇性的確認初始設定後,一適用於核心的修正設定係將最初設定為主要核心者予以移除,並且指派一最初沒有被設定為主要核心之核心為主要核心。
另一方面,核心係根據修正核心設定來操作,該修正核心設定例如包含以相容方式調整核心間電源狀態管理。
另一方面,使用者經由使用者介面之操作來定義一修正設定(如果在定義的限制範圍內適用的話),接下來系統軟體程式提供修正設定至核心,核心再將其儲存至核心內。
另一方面,核心可根據臨時被重新設定,其中臨時設定係指定一非主要核心做為臨時主要核心,經由驅動一適合的邊帶通訊線以停用該已設定之主要核心,然後啟動臨時主要核心來驅動適合的邊帶通訊線。在相關方面,為響應偵測到與一停用、不能執行、錯誤、或是已設定之主要核心故障之情況,非主要核心即執行該臨時設定。目前的臨時主要核心分配臨時設定至其他核心(例如在同一晶片的其他核心),藉以啟動這些核心並根據臨時設定來操作。已指定的主要核心可透過一後續的傳輸啟動一控制權移轉回到其本身,而臨時主要核心將取消臨時設定,並且通知被臨時設定所影響的核心。
在此係敘述多核心微處理器的動態重新設定核心之結構及方法之實施例。在一實施例中,多核心微處理器以及相關方法係用以支援系統軟體(例如BIOS或其他操作系統)來停用(disable)或終止(kill)所選擇的核心之能力。有利的是,經由上述终止核心的方法不會導致與其他核心共享處理器匯流排的拖曳。舉例來說,這樣特徵在性能測試上或是對於不支援多核心的軟體而言是理想的功能。另一方面,多核心微處理器以及相關方法係用以支援重新設定微處理器核心間調整系統。有利的是,核心可被選擇性的指定為主要核心,藉以驅動訊號至核心間通訊線。這樣的方式下,微處理器會響應於主要核心停用或是所指定之主要核心無法操作之情況,為核心間通訊之目的而做適用之設定或自我修復。此外,微處理器可以設定一可選擇核心間最佳给定指令之協調系統。
在一些實施例中,新的設定以及指定可以由使用者指定或是經由系統軟體或是韌體所提供,如基本輸入/輸出系統(Basic Input/Output System;BIOS)。在其他實施例中,適用的修正指定及/或臨時指定,係響應於內部核心邏輯或微碼偵測到的情況而執行。
請參閱第一圖,第一圖係顯示本發明計算機系統100,其包含一多核心微處理器102。第一圖之計算機系統100在某些方面與美國專利臨時申請案案號61/426,470,申請日12/22/2010,名稱為“多處理器核心間之分散式電源管理(Decentralized Power Management Distributed Among Multiple Processor Cores)”相似,其同在申請之非臨時申請案(CNTR2527)也在本文中納入參考。此外,第一圖之計算機系統100在某些方面與美國專利臨時申請案案號61/426,470,申請日12/22/2010,名稱為“動態的多核心微處理器設定(Dynamic Multi-Core Microprocessor Configuration)”相似,其同案的非臨時申請案(CNTR2533)也在本文中納入參考。
計算機系統100包含一單晶片組114,單晶片組114係藉由系統匯流排116耦合在多核心微處理器102,其中系統匯流排116包含一匯流排時鐘。晶片組114可操作來產生一重置訊號,且該重置訊號係由多核心微處理器102所接收。計算機系統100更包含一非易失性記憶體152,例如快閃記憶體,該非易失性記憶體152係用以儲存如基本輸入/輸出系統碼之系統韌體。計算機系統100更包含一非易失性隨機存取記憶體154,例如快閃記憶體或是在個人計算系統常見之電池供電的隨機存取記憶體,非易失性隨機存取記憶體154係用以儲存本文所述之使用者所指定的核心設定。計算機系統100更包含一儲存裝置156,例如磁碟驅動器,儲存器156係用以儲存操作軟體。此外,計算機系統100更包含一輸入/輸出裝置158,例如一用以顯示輸出如基本輸入/輸出系統152所顯示之核心設定選單而給使用者看之顯示器、一用以接受使用者輸入如本文所述之核心設定的鍵盤及滑鼠。
多核心微處理器102之封裝體內包含兩雙核心晶片104並且標示為晶片0及晶片1。晶片104係安裝在封裝基板上,每一雙核心晶片104包含兩處理核心106,晶片0包含核心0及核心1,且晶片1包含核心2及核心3。每一晶片104內之兩處理核心106,係經由晶片104內之核心間通訊線112而通訊。更具體的說,核心間通訊線112使分別在晶片104內之處理核心106能中斷彼此,並且發送另一訊息來調整彼此間不同的發現(discovery)和管理流程,其中各發現以及管理流程中包含微處理器的設定發現及修正設定。
在另一相關的實施例中,核心間通訊線112包含一具有並聯導線之匯流排。在相關的實施例中,核心間通訊線112包含旁路匯流排(bypass bus),其中旁路匯流排與美國專利臨申請案案號61/426,470,申請日12/22/2010,名稱為“多處理器核心間之分散式電源管理(Decentralized Power Management Distributed Among Multiple Processor Cores)”相似,其同在申請之非臨時申請案(CNTR2527)也在本文中納入參考引用。在其他實施例中,核心間通訊線112包含一相對較小之核心間通訊線,這樣的設置可在各方面與CNTR2503所描述替代之邊帶設定(sideband configuration)相比較,或是可與CNTR2527所描述之核心間通訊線之相比較。
在本文中所述,“夥伴(pal)”一詞係指同一晶片104之處理核心106,且晶片104係藉由對應的邊帶核心間通訊線來彼此通訊。因此,在第一圖之實施例中,核心0及核心1係為夥伴,且核心2及核心3係為夥伴。
每一晶片104提供複數個用以將晶片104耦合至系統匯流排接觸墊,以及複數個將晶片104耦合至核心間通訊線118之額外邊帶通訊接觸墊。具體來說,每一晶片104包含四個邊帶通訊接觸墊108,其分別對應耦合至四個表示為“P1”、“P2”、“P3”以及“P4”之引腳。在四個邊帶通訊接觸墊108中,一個是輸出接觸墊(表示為“輸出”)以及三個輸入接觸墊(表示為輸入1、輸入2以及輸入3)。在一實施例中,每一晶片104係根據多核心微處理器製造過程中之燒斷的鎔絲設定,而分配四個邊帶通訊接觸墊108其中一個接觸墊做為輸出接觸墊(OUT)。
第一圖中,封裝體本身提供對應耦合於封裝體核心間通訊線118之複數個邊帶通訊引腳,其中邊帶通訊引腳係表示為P1至P4。當這些引腳不需實行封裝內部晶片104核心間通訊時,它們可在核心間通訊線118執行外部測試訊號,或是在較大、多封裝體架構上提供更多的便利性。
核心間通訊線118被設定為如下:晶片0的輸出接觸墊以及晶片1的輸入1接觸墊經由一條導線耦合在P1引腳;而晶片1的輸出接觸墊以及晶片0的輸入3接觸墊經由一條導線耦合在P2引腳;晶片0的輸入2接觸墊以及晶片1的輸入3接觸墊經由一條導線耦合在P3引腳;晶片0的輸入1接觸墊以及晶片1的輸入2接觸墊經由一條導線耦合在P4引腳。
每一晶片104具有一個被指定的主要核心106,主要核心106係控制經由晶片104的邊帶通訊接觸墊的通訊。第一圖的實施例中,核心0是晶片0的主要核心106,且核心2是晶片1的主要核心106。請參閱圖一,“同伴(buddy)”一詞係指在不同晶片104的主要核心106,經由邊帶核心間通訊線而彼此通訊,因此,第一圖的實施例中,核心0及核心2係為同伴。
核心間通訊線118在晶片104的主要核心106中相連,藉以增進主要核心106間不同的發現以及管理流程的通訊及調整,包含本文所述之微處理器設定的發現及修正。更具體的說,核心間通訊線118使相異晶片104的主要核心106中斷彼此,並且使主要核心106發送另一訊息來執行分散式調整和多核心微處理器102之主要核心106間分散式的發現動作。
舉例來說,當晶片0的主要核心0想要與晶片1的主要核心2通訊時,主要核心0從其輸出接觸墊傳輸一訊息至晶片1之輸入1接觸墊;同樣的,當晶片1的主要核心2想要與晶片0的主要核心0通訊時,主要核心2從其輸出接觸墊傳輸一訊息至晶片0之輸入3接觸墊。如CNTR2527文中所述,第一圖內並不是所有的接觸墊及引腳皆需支援四核心設定,一些接觸墊及引腳是能被移除的。但是同樣如CNTR2527文中所述,額外的接觸墊及引腳能增進其他處理器的設定,例如八核心的實施例。在一些處理器設定中,每一輸出接觸墊108可與其他晶片104中複數個輸入接觸墊108相耦合。為了支援這樣的設定,一些實施例中的主要核心106在每一訊息傳輸中具有一識別碼,每一訊息係從主要核心106之輸出接觸墊108輸出,並且在核心間通訊線118傳輸。識別碼係識別主要核心106之訊息發往之目的地,藉以使多個接受的核心106在接收傳播訊息後,檢測是否為訊息發送之預定目的地。
請參閱第二圖,第二圖係顯示本發明之第一圖的其中之一核心之詳細方塊圖。第二圖之核心106在某些方面與CNTR2527以及CNTR2533所揭露之第二圖相似,其他方面將於下文進一步說明。
根據一實施例,核心106之微結構包含一超純量(superscalar)、非循序(out-of-order)執行管線之功能單元,一指令快取記憶體202,用以存取來自系統記憶體(圖未示)之指令。一指令轉譯器204,與指令快取記憶體202耦合,並從指令快取記憶體202接收指令,例如x86指令集架構指令之指令。暫存器別名表(Register Alias Table;RAT)212係耦合至指令轉譯器204以及微序列器206,暫存器別名表212係用以接收從指令轉譯器204以及微序列器206所發出之已轉譯微指令,藉以產生與已轉譯微指令之相依訊息。保留站214係耦合至暫存器別名表212,藉以接收暫存器別名表212所發出之已轉譯微指令及相依訊息。執行單元216係耦合至保留站214,藉以接收保留站214所發出之已轉譯微指令,並且接收其已轉譯微指令之指令運算元。該運算元可能來自核心106之暫存器以及耦合至執行單元216之資料快取記憶體222,其中該核心106之暫存器例如是通用目的暫存器以及可讀寫之特定模組暫存器238。引退單元218耦合至執行單元216,藉以接收執行單元216所發送之指令結果,並且引退該指令結果至核心106之架構狀態(architecture state)中。資料快取記憶體222耦合至匯流排介面單元(Bus Interface Unit;BIU)224,匯流排介面單元224係為第一圖之核心106至匯流排116之介面。鎖相迴路(Phased-Locked-Loop;PLL)226接收從匯流排116發出之匯流排時鐘訊號,接收到後產生並傳送一核心時鐘訊號242至核心106內部之不同功能單元。經由執行單元216可控制鎖相迴路226,諸如令其停用(disable)。
如上述與第一圖相關的,每個晶片具有一被指定的主要核心。此外,在相關方面,處理器可具有一已指定之啟動服務處理器(Boot Service Processor;BSP)核心,其被單獨授權來調整晶片組114特定的受限動作。因此,可在不同的實施例中指定主要及/或啟動服務處理器身分辨識碼,並使其遵行此項指定。
在一實施例中,每一核心106包含可程式化之設定鎔絲。晶片104的製造商可以變化設定鎔絲來指定核心106及/或其他核心106是否做為晶片104的主要核心或啟動服務處理器之核心,以及核心106及/或其他核心106是否被啟動,而指定每一核心106為唯一識別碼的情況,例如核心106是否是核心0、核心1、核心2或核心3。
另一實施例中,任何給定核心的主要核心指定係根據其識別碼而定。根據一實施例,在預設的情況下,偶數核心106是每一晶片104的主要核心。根據另一相關的實施例中,核心0被設定為多核心微處理器102之啟動服務處理器核心。
在另一實施例中,一初始主要核心或啟動服務處理器的指定係藉由預設(如基於設定鎔線的狀況或核心識別碼)所提供,但也許會被新的設定所覆寫。更進一步的說,主要核心及啟動服務處理器之指定係動態的被重新設定、或是暫時性的響應於臨時設定,上述之指定係響應於不同的情況,例如是被指定的主要核心或啟動服務處理器核心係為停用或暫停使用的狀況。
尤其是如第二圖所示,每一核心106可包含一主要核心指示(master indicator)232、啟動服務處理器指示228以及一啟動指示252。在一實施例中,如上所述,這些指示構成鎔絲可選擇性被燒斷。例如,與啟動指示252相關的鎔絲,可以被選擇性燒斷以啟動或停用核心106,以使計算機系統100執行資料處理所用到的核心小於實體核心106的數量。在其他實施例中,這些指示構成鎔絲係用藉以提供預設值,但這些預設值可被係儲存於特定模組暫存器238或設定儲存器254內的數值以相反的設定所覆寫。在另一實施例內,這些指示包含兩個鎔絲,藉以提供預設值及本機設定邏輯所能覆寫的預設值。在其他實施例中,這些指示構成暫存器可以被開啟或關閉。
執行單元216接收到一啟動指示252,用以指示是否啟動核心106來執行資料處理。執行單元216也接收一啟動服務處理器指示228以及一主要核心指示232,啟動服務處理器指示228以及一主要核心指示232係分別指示核心106是否為晶片104之主要核心以及是否為多核心微處理器102之啟動服務處理器核心。如上所述,啟動服務處理器指示228、主要核心指示232以及啟動指示252包含可程式化之鎔絲。在另一種實施例中,啟動服務處理器指示228、主要核心指示232以及/或啟動指示252可在初始階段藉由讀取可程式化鎔絲數值並將其儲存於特定模組暫存器238內,但鎔絲數值可藉由軟體寫入特定模組暫存器238而更新。
更進一步的說,核心106包含設定儲存器254,藉以儲存多核心微處理器102之核心設定。在一實施例中,設定儲存器254包含暫存器;在另一實施例中,設定儲存器254包含一在小型隨機存取記憶體(Small Random Access Memory;RAM)之儲存區,小型隨機存取記憶體例如是美國專利案號7,827,390所述之參數隨機存取記憶體(Parameter Random Access Memory;PRAM)。
如CNTR.2527所述,執行單元216也可讀寫控制狀態暫存器(Control and Status Register;CSR)234及236,藉以與其他核心106通訊。特別是,核心106係利用控制狀態暫存器236並經由核心間通訊線112與在同樣晶片104上的核心106做通訊,且核心106利用控制狀態暫存器234而通過晶片間通訊線118並經由接觸墊108,進而與在其他晶片104上的核心106做通訊。
微序列器206更包含一用以儲存微碼之微碼記憶體207。每一處理核心106均具有一相同指令集架構且彼此對稱,且每一處理核心106均設定為計算一包含來自該指令集架構之指令的使用者程式。為了本發明所揭露之目的,在本文中,“微碼”一詞係指在核心106執行指令架構時,相同核心106所執行的指令。也就是說,如果有任何儲存在微碼記憶體207內之微碼執行的話,其係在原有執行之核心106執行。
微碼記憶體207係用以儲存微碼,微碼包含如CNTR.2527內各種不同的實施例所述之內部電源狀態管理微碼。微碼記憶體207亦儲存一包含設定發現(configuration discovery)及修正微碼208。其中,設定發現及修正微碼208係設定為動態確認初始設定(dynamically determine initial)(或預設)以及使用者所設定的(或以其他方式重新設定)多核心微處理器102之核心設定,用以儲存指定之動態確定核心設定之訊息到設定儲存器254,並且使用該儲存的訊息,這部分將於後續第三圖之方法中再詳加描述。在一實施例中,使用者所設定的核心設定訊息係被儲存在設定儲存器254,藉以替代多核心微處理器102之初始設定或預設核心設定。在一實施例中,如下所述,設定發現及修正微碼208係被多核心微處理器102之重置引腳的設置(assertion)所引發。設定發現及修正微碼208最好重複儲存在每一核心106上來支援擴充性。此外,如CNTR.2527文中所述之核心內部電源狀態管理微碼,係根據它所發現並且響應於設定發現及修正微碼208執行動作的修改設定,來調整電源狀態管理。
請一併參閱第三A圖及第三B圖,第三A圖及第三B圖顯示本發明之第一圖的多核心微處理器執行動態設定發現以及修正過程之操作流程圖。更具體的說,第一圖之基本輸入/輸出系統152,搭配多核心微處理器102每一核心106之微碼208,提供一種動態地個別停用或重新啟動、並且在製造完成後(基本上是太晚而不能燒斷鎔絲之狀況)重新設定核心106之主要核心設定的方法。
在流程圖之方塊302中使用者輸入一理想的多核心微處理器102之核心設定。在一實施例中,基本輸入/輸出系統152在第一圖之顯示器158上顯示一選單,讓使用者指定一個理想核心設定。舉例來說,在多核心微處理器102內每一實體存在的核心106,基本輸入/輸出系統152可以顯示其啟動指示252之數值,且使用者能切換該啟動指示252之數值來指示理想的停用或重新啟動核心106(啟動指示252係分別指示核心106是啟動或是停用)。
如與CNTR.2527相關之所述,微處理器最好也設定有某些調整及發現動作,諸如根據相容階層式調整系統且經由適用的邊帶通訊線所做的電源狀態管理。一般來說,階層式調整系統會整合微處理器的核心成為之一或多個區域,在每個區域中,有一核心是被設定為該區域之主要核心,且邊帶通訊線係被設置在適合的區域中。核心能根據主要核心辨識碼被限制(如果有前述限制的話),並依據所具有的能力透過可用的邊帶通訊線與其他區域核心進行溝通或協調。
CNTR.2527描述了各式各樣之階層式調整系統,各種巢狀式區域結構,區域內各種核心的群組以及相對應的親屬群組,以及各種在親屬群組(kinship groups)內之協調模組。階層式調整系統能被用於電源狀態管理,包含C狀態(C-State)及P狀態(P-State)之執行以及共享電壓與時鐘源之控制。一般來說,階層式調整系統係相容於邊帶通訊線之結構與可用性,其中邊帶通訊線係設置於核心與微處理器之核心群組間。此外,適用於多核心微處理器的階層式調整系統能被透過圖示(map)、戈達爾數量(Gdal Number)或兩者組合所指定,它們將隨著每一核心的設定儲存器254之其他設定訊息被儲存,藉以增進核心間分散式系統的協調、發現過程、以及電源狀態管理之轉換。
每一核心中,基本輸入/輸出系統152能顯示其主要核心指示232及啟動服務處理器指示228之數值,並且讓使用者切換其中的數值,藉以重新設置各核心之主要核心辨識碼。基本輸入/輸出系統152會顯示一些預設但可重新設定之階層式調整系統,讓使用者能在一定程度上相容於核心個別的可設定性以及適用的邊帶通訊線中,增加、刪除、結合與細分(subdivide)區域、重新定義相對應於親屬群組以及選擇親屬群組間可用的協調模組。因此,基本輸入/輸出系統152提供一設定選項,藉以讓使用者停用、重啟動以及個別重新設定核心106。若使用者要求停用一最初設定之主要核心,基本輸入/輸出系統152能自動設定一替代核心作為主要核心。
在流程圖之方塊304中,基本輸入/輸出系統152將在方塊302所接收之使用者所指定的設定,儲存至第一圖所示之非易失性隨機存取記憶體中。
在流程圖之方塊306中,多核心微處理器102被重置。例如,基本輸入/輸出系統152會重置多核心微處理器102或是多核心微處理器會被使用者以啟動計算機系統100或點擊重置按鈕之一些操作而重置。
在流程圖之方塊308中,每一核心106的重置微碼208確定其初始設定。在一實施例中,每一核心106的重置微碼208根據CNTR.2533所述之方法,來確認多核心微處理器之初始設定。如其所述,每一核心106將一動態確認設定寫入第二圖所述之設定儲存器254內。
在流程圖之方塊312中,基本輸入/輸出系統152在每一核心106的特定模組暫存器238中,寫入不包含在使用者所指定之設定,這些設定包含例如寫入使用者所期望去改變的資訊,如使用者期望被停用之每一核心106及寫入每一核心之主要核心辨識碼。在另一實施例中,基本輸入/輸出系統152執行一x86寫入特殊模組暫存器之指令來寫入特定模組暫存器238。寫入特定模組暫存器238之指令指示核心106將自行終止或停用,如果使用者設定是如此的話。另外,寫入特定模組暫存器238之指令指示核心106將覆蓋其預設之主要核心指示232及/或啟動服務處理器指示228,如果使用者設定是如此指定的話。
在流程圖之方塊314中,每一核心106引動微碼208之一部分,其中該部分微碼之執行係響應於在方塊312中寫入特殊模組暫存器之指令。為了響應於一終止指令,舉例來說,可以將適當的終止執行微碼208寫入控制核心106的暫存器藉以終止核心106。較特別的是,將終止執行微碼208寫入匯流排介面單元224,藉以使終止核心106不響應於匯流排116之窺探週期,這樣的設置有利於防止核心106響應於窺探週期而引起匯流排116的拖曳。拖曳的產生係由於窺探響應會要求核心106在匯流排116插入延遲的時鐘,而使其有額外的時間來窺探其快取記憶體。最後,終止執行微碼208將核心切換至最小的功耗狀態並且進入休眠狀態,例如,終止執行微碼208會停止時鐘及/或從多核心微處理器102之大部分電路中斷開電源。然而,核心106仍保有響應於由外部重設多核心微處理器102之重置引腳的功能。因此,微碼208從不回覆使用者碼(user code)。在一實施例中,為了使被終止的核心106恢復,需要一個經由多核心微處理器102之外部重置、經由相對應於核心106之輸入接觸墊或是切斷核心106之電源的方式以恢復核心106。
在流程圖之方塊316中,基本輸入/輸出系統152從非易失性隨機存取記憶體154讀取使用者所指定的設定,並且在任何一個仍啟動的核心(例如沒有被使用者停用的核心106)寫入特定模組暫存器238,藉由前述方法來指示使用者所指定的設定並覆蓋方塊308所確認的初始設定。值得一提的是,如上述文中所述在方塊312及方塊316所執行的寫入特定模組暫存器,可以被期望採用核心106的終止或重新設定功能之任何系統軟體所執行,用以重新設定多核心微處理器102,並非只有基本輸入/輸出系統152才能執行這項功能。
在流程圖之方塊318中,每一仍啟動的核心106引動微碼208的一部分來執行寫入特殊模組暫存器的指令,該指令係響應於方塊316所執行的寫入特殊模組暫存器。微碼208接收到使用者所指定的設定並且寫入設定儲存器254,因而覆寫方塊308所寫入的初始設定。核心106便根據使用者所指定的設定繼續操作。
舉例來說,核心106會藉由執行CPUID指令而返回已啟動核心的數量,其中已啟動的核心係列舉在使用者所指定的設定之內,使用者所指定的設定係儲存於設定儲存器254之內。在另一實施例中,核心106利用方塊314所儲存的訊息來協調某些電源狀態管理功能,例如所要求的C狀態、P狀態、電壓識別數字(Voltage Identification Digital;VID)水平以及時鐘頻率的執行。如上所述,例如與CNTR2527相關以及美國專利臨時申請案案號61/426,470,申請日12/22/2010,名稱為“分散式電源管理分部多個處理器核心(Decentralized Power Management Distributed Among Multiple Processor Cores)”之一部分以及其同在申請之非臨時申請案(CNTR.2534),這些都納入本文的參考。另一實施例中,核心106利用所儲存的設定訊息來執行多核心“功率評價(power credit)”功能,如美國專利申請案案號13/157,436(CNTR.2517),申請日6/10/2011,為了達到本案所有目的,也在本文中納入參考。
在流程圖之方塊322中,除了基本輸入/輸出系統152還在執行的核心106之外,基本輸入/輸出系統152在其餘每一核心106上執行一停止(Halt;HLT)指令來停止核心106。值得一提的是,停止或是休眠的核心106仍在窺探匯流排116並且確認其快取記憶體,這樣的情況有可能導致產生在匯流排116的傳輸,其不利於整體效能且會產生不必要的功耗。然而,如本文所述,在方塊312時,當基本輸入/輸出系統152之設定將特定模組暫存器238寫入終止核心,核心106會在方塊314自我終止(kill itself)。相對於自我停止的方式,這樣的方法能讓核心106係真的停用並且不會窺探匯流排116、或確認其快取記憶體、或是在匯流排116上產生傳輸。這樣一來,只有真的外部重置這樣的方法,才能讓被終止的核心106再次回復。
在流程圖之方塊324中,基本輸入/輸出系統152從磁碟將操作系統156載入到系統記憶體並且轉移控制權給操作系統156。操作系統156發出初始化(Initialization;INIT)重置指令至多核心微處理器102之所有核心106,藉由BIOS 152使它們從停止的狀態中回復而進入方塊302。在另一實施例中,初始化重置指令包含為人所熟知的輸入/輸出高級可程式化中斷控制器(I/O Advanced Programmable Interrupt Controller;I/O APIC)初始化指令,其係用以指示核心106執行一響應於重置之動作子集(特別是從其停止的狀態中回復)。
在流程圖之方塊326中,在方塊314中每一個自行終止的核心106對於方塊324所發出之初始化訊息並不會發生響應,更確切的說,終止的核心106係保持其終止狀態直到執行外部重置才會回復。然而,其餘已啟動核心106響應於初始化訊息並且根據儲存在方塊318中使用者所指定的設定而執行。其中,重置微碼208被引動而響應於初始化訊息。然而,在響應於初始化訊息時,重置微碼208不會執行如方塊308中的確認核心設定之操作,因這項操作係響應於外部重置而執行。值得一提的是,對所有核心而言,初始化訊息是唯一的,它與從匯流排116重置所有核心106的情形是不同的。操作流程在方塊326結束。
值得一提的是,方塊302及方塊304的執行步驟只需要執行一次,例如,使用者只需要指定一次他所期望的設定,且基本輸入/輸出系統152只需要儲存一次使用者所指定的設定;而每當系統就被重置且操作系統啟動時,方塊306至方塊326的執行步驟就會被執行。
如上所述,動態設定發現及修正過程可能會支援多核心微處理器102所有核心中主要核心指定之重新設定。在一實施例中,晶片104上之硬體設定為在該晶片中的任何核心106皆可驅動輸出接觸墊108,加上核心間通訊線118耦合至輸出接觸墊108,所以可在計算機系統100內與其他核心106做通訊;然而,在任何給定的時間中,在晶片104中只有一核心106被設定為可驅動輸出接觸墊108。這樣有利於預設的主要核心(核心106之設定鎔絲做為晶片104及/或多核心微處理器102之主要核心)處於不操作狀態或是被基本輸入/輸出系統152所終止之狀況。舉例來說,這樣能啟動其餘核心106之一者變成主要核心並且與在其他晶片104上的同伴核心106進行通訊,藉以執行如CNTR.2527及CNTR.2534所述之電源狀態管理。所有晶片104的核心106係接收耦接於輸入核心間通訊線118之輸入接觸墊108的訊號。因此,如果使用者或故障致使預設主要核心停用時,其餘的核心106(例如新的主要核心)便能夠接收代表這個晶片104的輸入核心間通訊帶118之訊號,並且如上所述,能夠驅動這個晶片104核心間通訊線118耦合至輸出接觸墊108。藉由這種方式,在一實施例中,可以對所有給定晶片104之核心106可能的排列組合進行支援。
為了支援動態核心重新設定,在一實施例中,核心106相關的鎔絲數值將個別與暫存器之對應位元進行互斥或運算藉以產生一終值,例如主要核心指示232、啟動服務處理器指示228及啟動指示252。相關鎔絲數值亦可與CNTR.2534之第二圖、第三A圖及第三B圖相對應之鎔絲不驅動(fuse-do-not-drive)指示154以及鎔絲不驅動頻率(fuse-do-not-drive-freq)指示354進行個別的互斥或運算。暫存器位元藉由微碼208所寫入,通常係響應於寫入特定模組暫存器238之操作而做的。最後,每一核心106同樣設定啟動微碼208,藉以寫入暫存器的一位元來動態更新核心106是否驅動耦合至輸出接觸墊108之核心間通訊線118。這樣的設定也可以被運用在諸如設定雙核心晶片104或四核心晶片之任一核心106作為晶片的主要核心之上。
更進一步實施例中,每一核心106沒有被設定為適用於區域的主要核心,會被內部微碼以與CNTR.2533所描述過程之一者相一致的方式進行設定,藉以確定區域中被設定的主要核心是否為已啟動或是在執行狀態,如果不是,則有條件的自我重新設定(例如基於其相對於區域內之其他親屬核心之實際數量)作為適用於區域之臨時主要核心,並對輸出接觸墊108做為合適的邊帶核心線之控制權進行設置。一個被指定的主要核心也可以在預設條件下被設置(如基於他們的狀態或迫切性來限制中斷之限制中斷模式)或是響應於一應用指令(applicable instruction),藉以暫時性的代表從屬親屬核心作為臨時主要核心。被指定的主要核心能經由與臨時設定相關之後續傳輸以啟動一控制權移轉回到其本身,這樣的情況下臨時主要核心將取消其臨時設定。
經控制權的設置(assertion)或重新設置(reassertion),無論是從一個被指定的主要核心做為臨時主要核心,或是從一個臨時主要核心經由重新設置控制權而成為一指定的主要核心,任何取得主要功能者(亦即成為主要核心)最好也設定為與至少其從屬核心共享其重新設定,藉以重新設定從屬核心與新的主要核心而非先前主要核心進行協調。
介面邏輯也最好是提供臨時主要控制權具有執行的權力,藉以防止在指定的主要核心間重新設置輸出接觸墊108的控制權,直到有一個適當的控制權傳輸在被指定的主要核心以及臨時的主要核心之間進行為止。
這樣的方式下,多核心微處理器102也許會設定為動態響應於核心故障及核心失效而自我修復。自我修復實施例的最大程度中,每一核心在任何給定的親屬群中,是可以操作設定為親屬群之主要核心或是臨時主要核心,包含最高的親屬群組水平上做為處理器之啟動服務處理器的核心。在這樣的實施例中,核心間通訊線可以高效率的階層方式來組織,但因為任何主要核心可被從屬親屬核心替代,微處理器能在故障核心周圍,重新設定其階層式系統。
在另一實施例中,核心106各方面不同於第二圖之代表實施例,其取代或額外提供高度並聯結構,例如可運用於圖形處理單元(Graphics Processing Units;GPU)之結構。
然而各種有關於本發明之實施例已在本文詳述,應可充分了解如何實施並且不限於這些實施方式。舉凡所屬技術領域中具有通常知識者當可依據本發明之上述實施例說明而作其它種種之改良及變化。舉例來說,軟體可以啟動如功能、製造、模型、模擬、描述及/或測試本文所述之裝置及方法。可以藉由一般程式語言(如C及C++)、硬體描述語言(Hardware Description Languages;HDL)或其他可用程式的使用來達成,其中硬體描述語言(Hardware Description languages;HDL)包含Verilog HDL、VHDL等硬體描述語言。這樣的軟體能在任何所知的計算機可用媒介中處理執行,例如磁帶、半導體、磁碟或光碟(如CD-ROM及DVD-ROM等)、網路、有線電纜、無線網路或其他通訊媒介。本文所述之裝置及方法的實施例中,可包含在智慧型核心半導體內,並且轉換為積體電路產品的硬體,其中智慧型核心半導體如微處理器核心(如硬體描述語言內之實施或設定)。此外,本文所述之裝置及方法可由硬體及軟體的結合來實施。因此,本發明並不侷限於任何本發明所述之實施例,但係根據下述之專利範圍及等效之裝置及方法而定義。具體來說,本發明能在普遍使用的處理器裝置裡執行實施。最後,熟練於本技術領域的應能體會他們能很快地以本文所揭露的觀念及具體的實施例為基礎,並且在沒有背離本發明所述之附屬項範圍下,來設計或修正其他結構而實行與本發明之同樣目的。
100...計算機系統
102...多核心微處理器
104...雙核心晶片0、雙核心晶片1
106...核心0、核心1、核心2、核心3
108...輸出接觸墊、輸入1接觸墊、輸入2觸接墊、輸入3接觸墊
112、118...核心間通訊線
114...晶片組
116...系統匯流排
152...基本輸入輸出系統(BIOS)
154...非易失性隨機存取記憶體(NVRAM)
156...操作系統
158...顯示器、鍵盤、滑鼠
202...指令快取記憶體
204...指令轉譯器
206...微序列器
207...微碼記憶體
208...微碼
212...暫存器別名表
214...保留站
216...執行單元
218...引退單元
222...資料快取記憶體
224...匯流排介面單元(BIU)
226...鎖相迴路
228...啟動服務處理器(BSP)指示
232...主要核心指示
234、236...控制狀態暫存器
238...特定模組暫存器
242...核心時鐘
252...啟動指示
254...設定儲存器
P1、P2、P3、P4...引腳
第一圖係顯示本發明計算機系統之多核心微處理器之方塊圖;
第二圖係顯示本發明之第一圖的其中之一核心之詳細方塊圖;以及
第三A圖係顯示本發明之第一圖的多核心微處理器執行動態設定發現以及修正過程之操作流程圖;以及
第三B圖係顯示本發明之第一圖的多核心微處理器執行動態設定發現以及修正過程之操作流程圖。

Claims (29)

  1. 一種可動態重設定之多核心微處理器,包含:複數個初始啟動核心;該每一初始啟動核心係設定為執行由一系統軟體所發佈之一終止指令以停用該核心且停止響應於一系統匯流排上除了外部重置信號外之傳輸,其中該系統匯流排設置耦合於該多核心微處理器之外部;其中,一終止指令所停用核心係遵行發送至該系統匯流排之一重置指令,其僅可藉由在多核心微處理器之一重置引腳進行外部重置之方式來恢復執行功能而成一啟動核心,且若藉由該重置引腳進行重置,除非該啟動核心再接收到另一終止指令,該啟動核心仍具有執行功能。
  2. 如申請專利範圍第1項所述之可動態重設定之多核心微處理器,其中當一核心在收到該終止指令而停用時,該核心因為無法對系統匯流排之傳輸產生響應,因此該核心將不響應該系統匯流排之窺探週期。
  3. 如申請專利範圍第1項所述之可動態重設定之多核心微處理器,其中該每一初始啟動核心更進一步設定對該終止指令響應,藉以使該每一初始啟動核心自行進入一省電睡眠狀態。
  4. 如申請專利範圍第1項所述之可動態重設定之多核心微處 理器,其中該其他未接收到該終止指令的初始啟動核心係設定為,藉由接收到內部電源狀態之一管理微碼來調整彼此間之電源狀態管理,無需參考任何已停用核心之電源狀態需求值。
  5. 一種可動態重設定之多核心微處理器,包含:複數個處理核心,該些處理核心中,至少有一處理核心被指定為一主要核心;至少一邊帶通訊線,係設置於一系統匯流排之外部並且耦接於一晶片組,藉以促進該些處理核心間的通訊,且每個該可動態重設定之多核心微處理器的晶片具有一個被指定的該主要核心;其中,該些處理核心中,至少有兩處理核心係耦接於該邊帶通訊線;其中,該兩處理核心任一者係依據其被設定為主要核心之設定而有條件地驅動一輸出至該邊帶通訊線之一連接端;以及其中,該兩處理核心若有任何一個是被指定為主要核心,在運作時可重新設定該主要核心或移除原有之指定。
  6. 如申請專利範圍第5項所述之可動態重設定之多核心微處理器,其中每一核心包含一預設設定,該預設設定係儲存於該核心內部邏輯中,藉以判斷該核心是否被指定為主要 核心。
  7. 如申請專利範圍第5項所述之可動態重設定之多核心微處理器,其中每一核心包含一儲存器,該儲存器係用以儲存對該核心之一修正指定。
  8. 如申請專利範圍第7項所述之可動態重設定之多核心微處理器,其中該儲存器係用以儲存對該整個多核心微處理器所作之一修正設定,該修正設定係用以指出其他該多核心微處理器之啟動核心和主要核心設定的關係。
  9. 如申請專利範圍第7項所述之可動態重設定之多核心微處理器,其中每一核心設有內部電源狀態之一管理微碼,並依據該修正設定所儲存的內容調整其電源狀態管理。
  10. 一種動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,包含:藉由上述一或多個核心之每一個核心執行一第一指令指示該核心自行停用,其中該第一指令係包含在一系統軟體程式,其中該自行停用之核心中止回應於一系統匯流排上除了外部重置信號外之傳輸,且該自行停用之核心僅可透過一重置引腳上的外部重置信號來恢復執行功能而成一啟動核心;對於未執行該第一指令之其餘核心則執行一第二指令,該 第二指令係指定該多核心微處理器內之一核心設定,該指定係反應執行該第一指令後已被停用之一或多個核心之情形,其中該第二指令係包含在一系統軟體程式內。
  11. 如申請專利範圍第10項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,其中該第一指令執行的一部分中,更包含使該已停用核心停止響應於一匯流排上之傳輸,且該匯流排係耦合於該多核心微處理器之外部。
  12. 如申請專利範圍第11項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,其中該第一指令執行的一部分中,更包含保有該已停用核心響應於在外部重置多核心微處理器之重置引腳的功能,但使該已停用核心停止響應於重置訊息指令。
  13. 如申請專利範圍第10項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,其中該第一指令執行的一部分中,更包含轉變該已停用核心至最小的功率消耗狀態。
  14. 如申請專利範圍第10項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,其中該第二指令執行的一部分中,更包含將該核心設定儲存於該核心 內。
  15. 如申請專利範圍第14項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,其中該核心設定係由使用者所指定。
  16. 如申請專利範圍第15項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法,更包含:在執行該第一指令及該第二指令之前,藉由上述複數個核心之每一個核心確定該多核心微處理器之一初始核心設定,用以響應於該多核心微處理器之重置;對於未執行該第一指令之其餘核心則根據所儲存的核心設定而非依據初始設定進行操作。
  17. 如申請專利範圍第10項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法中,更包含:其餘未執行該第一指令之複數個核心在執行該第二指令之後,執行一第三指令以指示該核心停止執行,其中該第三指令係包含在該系統軟體程式內。
  18. 如申請專利範圍第17項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法中,更包含:傳送一重置訊息至每一個核心以指示該些核心自行重置,其中該重置訊息係由一多處理器操作系統所發出。
  19. 如申請專利範圍第18項所述之動態停用包含複數個核心之多核心微處理器內之一或多個核心之方法中,更包含:命令每一執行過該第一指令之一或多個核心停止響應該重置訊息;以及由其餘沒執行該第一指令之複數個核心響應該重置訊息。
  20. 一種動態重置多核心微處理器之一或多個核心之方法,該多核心微處理器包含複數個核心以及複數個邊帶通訊線,該邊帶通訊線係設置於一系統匯流排外部並耦接於一晶片組,藉以增進無系統匯流排之核心間通訊,其中至少有一些核心可操作而被重新設定為具有或並無主要核心辨識碼,藉以架構邊帶為基礎之核心間通訊,該方法包含:確定該處理器內之核心的一初始設定,該初始設定係指定至少一核心而不是全部的核心做為主要核心;以及根據一修正設定來重設該些核心,該修正設定係從該初始設定為主要核心中移除,並且指派一未被初始設定為主要核心之核心為主要核心;其中,每一核心係依據其被設定為主要核心之設定而有條件地驅動一邊帶通訊線至一連接端,且每個該多核心微處理器的晶片具有一個被指定的主要核心。
  21. 如申請專利範圍第20項所述之動態重置多核心微處理器 內之一或多個核心之方法,更包含藉由在該些核心內選擇性燒斷適用的鎔絲而產生該初始設定,其中該適用的鎔絲係定義為該核心是否在預設情況下具有一或多個主要核心辨識碼。
  22. 如申請專利範圍第21項所述之動態重置多核心微處理器內之一或多個核心之方法,其中更包含藉由運行在該每一核心上之設定發現(configuration discovery)微碼以確認該初始設定。
  23. 如申請專利範圍第20項所述之動態重置多核心微處理器內之一或多個核心之方法,其中該修正設定係由一系統軟體程式所提供。
  24. 如申請專利範圍第23項所述之動態重置多核心微處理器內之一或多個核心之方法中,更包含一使用者藉由一使用者介面指定該修正設定。
  25. 如申請專利範圍第20項所述之動態重置多核心微處理器內之一或多個核心之方法中,更包含在該核心內儲存該修正設定。
  26. 如申請專利範圍第25項所述之動態重置多核心微處理器內之一或多個核心之方法中,更包含根據該修正設定而調 整該些核心間之電源狀態管理。
  27. 如申請專利範圍第20項所述之動態重置多核心微處理器內之一或多個核心之方法,其中:該多核心微處理器包含複數個多核心晶片;該每一多核心晶片中具有一已設定主要核心;在多核心微處理器之晶片間,設有一組核心間邊帶通訊線;每一晶片之每一核心耦接於該晶片間之邊帶通訊線,且該核心係依據其被設定為主要核心之設定而有條件地驅動一輸出至該邊帶通訊線;以及若有任何晶片之核心在運作時,可重新設定為主要核心或移除原有為主要核心之指定。
  28. 如申請專利範圍第20項所述之動態重置多核心微處理器內之一或多個核心之方法中,更包含根據一臨時設定重置該核心,其中該臨時設定包括:指定一非主要核心作為臨時主要核心;驅動一適合的邊帶通訊線以停用該已設定主要核心;以及啟動該臨時主要核心來驅動該適合的邊帶通訊線。
  29. 如申請專利範圍第28項所述之動態重置多核心微處理器內之一或多個核心之方法中,更包含:響應於偵測到與停用、不能執行、錯誤、或是已設定主要核心故障之情況時,由一非主要核心執行該臨時設定; 該非主要核心發佈該臨時設定給受該臨時設定所影響之其他核心;以及如果該已設定主要核心透過一後續的傳輸啟動一控制權移轉回到其本身,該非主要核心有條件地取消該臨時設定。
TW100147943A 2010-12-22 2011-12-22 可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法 TWI506559B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US201061426470P true 2010-12-22 2010-12-22
US13/299,239 US8972707B2 (en) 2010-12-22 2011-11-17 Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin

Publications (2)

Publication Number Publication Date
TW201234271A TW201234271A (en) 2012-08-16
TWI506559B true TWI506559B (zh) 2015-11-01

Family

ID=46291943

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100147943A TWI506559B (zh) 2010-12-22 2011-12-22 可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法

Country Status (3)

Country Link
US (6) US8972707B2 (zh)
CN (1) CN102521002B (zh)
TW (1) TWI506559B (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8631256B2 (en) 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
US9460038B2 (en) 2010-12-22 2016-10-04 Via Technologies, Inc. Multi-core microprocessor internal bypass bus
US8635476B2 (en) 2010-12-22 2014-01-21 Via Technologies, Inc. Decentralized power management distributed among multiple processor cores
US8782451B2 (en) 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US8930676B2 (en) 2010-12-22 2015-01-06 Via Technologies, Inc. Master core discovering enabled cores in microprocessor comprising plural multi-core dies
US8637212B2 (en) 2010-12-22 2014-01-28 Via Technologies, Inc. Reticle set modification to produce multi-core dies
US8407506B2 (en) * 2011-03-30 2013-03-26 Symbol Technologies, Inc. Dynamic allocation of processor cores running an operating system
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
WO2013162523A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Dynamic interrupt reconfiguration for effective power management
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
CN102880762A (zh) * 2012-10-18 2013-01-16 电子科技大学 基于NoC架构的多核处理器平台及其设计方法
TWI507991B (zh) * 2013-02-27 2015-11-11 Rdc Semiconductor Co Ltd 多核心處理器及其相關控制方法與電腦系統
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9477277B2 (en) 2013-06-17 2016-10-25 Globalfoundries Inc. Varying power load conditions on systems under test
US9471088B2 (en) * 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
CN104239275B (zh) * 2013-08-28 2019-03-19 威盛电子股份有限公司 多核微处理器及其重新配置方法
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
EP2843550B1 (en) * 2013-08-28 2018-09-12 VIA Technologies, Inc. Dynamic reconfiguration of mulit-core processor
CN104331387B (zh) * 2013-08-28 2019-08-06 威盛电子股份有限公司 微处理器及其配置方法
US9588572B2 (en) 2013-08-28 2017-03-07 Via Technologies, Inc. Multi-core processor having control unit that generates interrupt requests to all cores in response to synchronization condition
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9330011B2 (en) 2013-09-20 2016-05-03 Via Alliance Semiconductor Co., Ltd. Microprocessor with integrated NOP slide detector
US10019260B2 (en) 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
CN104657240B (zh) * 2013-11-18 2018-08-21 华为技术有限公司 多内核操作系统的失效控制方法及装置
US10261882B2 (en) * 2014-01-31 2019-04-16 Hewlett Packard Enterprise Development Lp Functional unit promotion to management unit
US9755902B2 (en) 2014-05-20 2017-09-05 Via Alliance Semiconductor Co., Ltd. Dynamic system configuration based on cloud-collaborative experimentation
US9575778B2 (en) 2014-05-20 2017-02-21 Via Alliance Semiconductor Co., Ltd. Dynamically configurable system based on cloud-collaborative experimentation
US9619349B2 (en) * 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US9710273B2 (en) 2014-11-21 2017-07-18 Oracle International Corporation Method for migrating CPU state from an inoperable core to a spare core
EP3109781A1 (en) * 2015-06-24 2016-12-28 Altera Corporation Channel sizing for inter-kernel communication
US20170052799A1 (en) * 2015-08-21 2017-02-23 Microchip Technology Incorporated Integrated Circuit Device With Selectable Processor Core
US9697320B2 (en) * 2015-09-24 2017-07-04 Qualcomm Incorporated Rectilinear macros having non-uniform channel spacing
DE102015221064A1 (de) * 2015-10-28 2017-05-04 Robert Bosch Gmbh Anordnung aus wenigstens zwei Mikrocontrollern und Verfahren zur Herstellung einer solchen Anordnung
US20170153892A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Instruction And Logic For Programmable Fabric Hierarchy And Cache
US10078544B2 (en) * 2015-12-19 2018-09-18 Intel Corporation Apparatus and method for an on-chip reliability controller
US10013392B2 (en) 2016-01-26 2018-07-03 Intel Corporation Providing access from outside a multicore processor SoC to individually configure voltages
CN107015847A (zh) * 2016-01-28 2017-08-04 扬智科技股份有限公司 电子装置及其工作模式切换方法
US10338665B2 (en) * 2016-06-23 2019-07-02 Infineon Technologies Ag Microcontroller power reduction system and method
CN106774788B (zh) * 2016-11-23 2020-01-17 深圳市博巨兴微电子科技有限公司 一种基于mcu的soc及其内核协作控制单元
US10552270B2 (en) * 2016-12-22 2020-02-04 Intel Corporation Systems and methods for in-field core failover
TWI626535B (zh) * 2017-02-15 2018-06-11 新唐科技股份有限公司 電源管理系統和控制器
US10541868B2 (en) * 2017-02-24 2020-01-21 Quanta Computer Inc. System and method for automatically updating bios setup options
US20200310527A1 (en) * 2019-03-30 2020-10-01 Alexander Gendler Autonomous core perimeter for low power processor states

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200632742A (en) * 2004-09-28 2006-09-16 Intel Corp Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20080307244A1 (en) * 2007-06-11 2008-12-11 Media Tek, Inc. Method of and Apparatus for Reducing Power Consumption within an Integrated Circuit
US20090094481A1 (en) * 2006-02-28 2009-04-09 Xavier Vera Enhancing Reliability of a Many-Core Processor

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748559A (en) * 1979-08-09 1988-05-31 Motorola, Inc. Apparatus for reducing power consumed by a static microprocessor
US5546588A (en) * 1992-05-08 1996-08-13 Motorola Inc. Method and apparatus for preventing a data processing system from entering a non-recoverable state
US5485625A (en) * 1992-06-29 1996-01-16 Ford Motor Company Method and apparatus for monitoring external events during a microprocessor's sleep mode
US5467455A (en) 1993-11-03 1995-11-14 Motorola, Inc. Data processing system and method for performing dynamic bus termination
US5918061A (en) * 1993-12-29 1999-06-29 Intel Corporation Enhanced power managing unit (PMU) in a multiprocessor chip
JP3315012B2 (ja) 1994-09-22 2002-08-19 大日本印刷株式会社 情報記録方法
US5987614A (en) 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
US6496880B1 (en) 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US6665802B1 (en) 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
US6968467B2 (en) 2000-10-26 2005-11-22 Matsushita Electric Industrial Co., Ltd. Decentralized power management system for integrated circuit using local power management units that generate control signals based on common data
US7174467B1 (en) 2001-07-18 2007-02-06 Advanced Micro Devices, Inc. Message based power management in a multi-processor system
US7113488B2 (en) * 2002-04-24 2006-09-26 International Business Machines Corporation Reconfigurable circular bus
US7058855B2 (en) 2002-07-24 2006-06-06 Infineon Technologies Ag Emulation interface system
US7493417B2 (en) 2002-12-12 2009-02-17 International Business Machines Corporation Method and data processing system for microprocessor communication using a processor interconnect in a multi-processor system
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
CN100520754C (zh) 2003-03-12 2009-07-29 Nxp股份有限公司 用于传送数据的数据处理设备以及方法
US7240225B2 (en) * 2003-11-10 2007-07-03 Dell Products L.P. System and method for throttling power in one or more information handling systems
GB2409303B (en) 2003-12-18 2006-10-18 Advanced Risc Mach Ltd Inter-processor communication mechanism
US7308558B2 (en) 2004-01-07 2007-12-11 International Business Machines Corporation Multiprocessor data processing system having scalable data interconnect and data routing mechanism
US7734797B2 (en) 2004-03-29 2010-06-08 Marvell International Ltd. Inter-processor communication link with manageability port
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7257679B2 (en) 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Sharing monitored cache lines across multiple cores
JP4544081B2 (ja) * 2004-11-15 2010-09-15 株式会社デンソー マイクロコンピュータ
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US20060171244A1 (en) 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US20060218424A1 (en) * 2005-03-23 2006-09-28 Miron Abramovici Integrated circuit with autonomous power management
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
CN100426159C (zh) * 2005-09-06 2008-10-15 台达电子工业股份有限公司 具有双处理器的控制装置
US7568115B2 (en) 2005-09-28 2009-07-28 Intel Corporation Power delivery and power management of many-core processors
US7358758B2 (en) 2005-10-18 2008-04-15 Via Technologies, Inc. Apparatus and method for enabling a multi-processor environment on a bus
CN101433048B (zh) 2006-03-28 2012-11-07 雷帝系统加拿大有限公司 并行多核心计算结构的多媒体处理
US7506184B2 (en) 2006-05-09 2009-03-17 Intel Corporation Current detection for microelectronic devices using source-switched sensors
US7685441B2 (en) 2006-05-12 2010-03-23 Intel Corporation Power control unit with digitally supplied system parameters
US20100325481A1 (en) 2006-10-20 2010-12-23 Freescale Semiconductor, Inc. Device having redundant core and a method for providing core redundancy
US8327158B2 (en) * 2006-11-01 2012-12-04 Texas Instruments Incorporated Hardware voting mechanism for arbitrating scaling of shared voltage domain, integrated circuits, processes and systems
JP4945224B2 (ja) 2006-11-30 2012-06-06 株式会社東芝 コントローラ、情報処理装置、および供給電圧制御方法
KR101209252B1 (ko) 2007-02-02 2012-12-06 삼성전자주식회사 전자기기의 부팅 방법 및 부팅 인증 방법
JP4433006B2 (ja) 2007-07-04 2010-03-17 株式会社デンソー マルチコアの異常監視装置
CN100476694C (zh) 2007-09-28 2009-04-08 中国科学院计算技术研究所 一种多核处理器及其变频装置和核间通信方法
US8046615B2 (en) 2007-10-19 2011-10-25 Denso Corporation Microcomputer system with reduced power consumption
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
KR100958303B1 (ko) 2007-12-12 2010-05-19 한국전자통신연구원 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법
US7962771B2 (en) 2007-12-31 2011-06-14 Intel Corporation Method, system, and apparatus for rerouting interrupts in a multi-core processor
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
US8112647B2 (en) 2008-08-27 2012-02-07 Globalfoundries Inc. Protocol for power state determination and demotion
US7910265B2 (en) 2008-03-14 2011-03-22 Infineon Technologies Ag Reticle for use in a semiconductor lithographic system and method for modifying the same
US8359487B2 (en) 2008-03-19 2013-01-22 Sony Corporation System and method for effectively performing a clock adjustment procedure
US20090307408A1 (en) 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
US7650488B2 (en) 2008-06-18 2010-01-19 Intel Corporation Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space
US7764132B2 (en) 2008-07-30 2010-07-27 International Business Machines Corporation All digital frequency-locked loop circuit method for clock generation in multicore microprocessor systems
US8103816B2 (en) 2008-10-28 2012-01-24 Intel Corporation Technique for communicating interrupts in a computer system
US8156275B2 (en) 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
JP5187277B2 (ja) * 2009-06-16 2013-04-24 ソニー株式会社 情報処理装置、及びモード切り替え方法
US8239699B2 (en) 2009-06-26 2012-08-07 Intel Corporation Method and apparatus for performing energy-efficient network packet processing in a multi processor core system
US20100332877A1 (en) * 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8358651B1 (en) 2009-09-21 2013-01-22 Marvell International Ltd. Switch device having a plurality of processing cores
US8566836B2 (en) 2009-11-13 2013-10-22 Freescale Semiconductor, Inc. Multi-core system on chip
US8359436B2 (en) 2009-12-18 2013-01-22 Intel Corporation Core snoop handling during performance state and power state transitions in a distributed caching agent
US20110153982A1 (en) 2009-12-21 2011-06-23 Bbn Technologies Corp. Systems and methods for collecting data from multiple core processors
US20110153984A1 (en) 2009-12-21 2011-06-23 Andrew Wolfe Dynamic voltage change for multi-core processing
CN101901177B (zh) 2010-01-22 2012-11-21 威盛电子股份有限公司 多核微处理器及其除错方法
US8195883B2 (en) 2010-01-27 2012-06-05 Oracle America, Inc. Resource sharing to reduce implementation costs in a multicore processor
US20110265090A1 (en) 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring
US8751833B2 (en) 2010-04-30 2014-06-10 Arm Limited Data processing system
US8412971B2 (en) 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US8457920B2 (en) 2010-05-28 2013-06-04 International Business Machines Corporation Performance improvement for a multi-chip system via kerf area interconnect
US8935549B2 (en) 2010-06-30 2015-01-13 Via Technologies, Inc. Microprocessor with multicore processor power credit management feature
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9460038B2 (en) 2010-12-22 2016-10-04 Via Technologies, Inc. Multi-core microprocessor internal bypass bus
US8930676B2 (en) 2010-12-22 2015-01-06 Via Technologies, Inc. Master core discovering enabled cores in microprocessor comprising plural multi-core dies
US8782451B2 (en) 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US8637212B2 (en) 2010-12-22 2014-01-28 Via Technologies, Inc. Reticle set modification to produce multi-core dies
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8635476B2 (en) 2010-12-22 2014-01-21 Via Technologies, Inc. Decentralized power management distributed among multiple processor cores
US8631256B2 (en) 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200632742A (en) * 2004-09-28 2006-09-16 Intel Corp Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20090094481A1 (en) * 2006-02-28 2009-04-09 Xavier Vera Enhancing Reliability of a Many-Core Processor
US20080307244A1 (en) * 2007-06-11 2008-12-11 Media Tek, Inc. Method of and Apparatus for Reducing Power Consumption within an Integrated Circuit

Also Published As

Publication number Publication date
US20190107873A1 (en) 2019-04-11
US20160209913A1 (en) 2016-07-21
TW201234271A (en) 2012-08-16
US10126793B2 (en) 2018-11-13
US10409347B2 (en) 2019-09-10
CN102521002A (zh) 2012-06-27
US20160209897A1 (en) 2016-07-21
CN102521002B (zh) 2015-10-28
US8972707B2 (en) 2015-03-03
US20120166764A1 (en) 2012-06-28
US9829945B2 (en) 2017-11-28
US9367497B2 (en) 2016-06-14
US10175732B2 (en) 2019-01-08
US20150046680A1 (en) 2015-02-12
US20160179177A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
US10339047B2 (en) Allocating and configuring persistent memory
US9829945B2 (en) Power management synchronization messaging system
JP2018081688A (ja) 周辺サブシステム用に個別の電力制御を提供するための方法及び装置
EP2778931B1 (en) Method and system for platform management messages across peripheral component interconnect express (PCIE) segments
US9798556B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
KR101565357B1 (ko) 타임아웃을 처리하기 위한 시스템, 방법 및 장치
US9442876B2 (en) System and method for providing network access for a processing node
TWI610167B (zh) 改善平台管理的計算裝置建置方法、保持電腦可執行指令之非暫存媒體及配置為提供強化管理資訊之計算裝置
JP6158267B2 (ja) マイクロプロセッサにおける熱設計電力を設定する方法及び装置
JP5770300B2 (ja) 処理ノードの熱制御のための方法および装置
US9122515B2 (en) Completion notification for a storage device
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
US9600370B2 (en) Server system
US9009512B2 (en) Power state synchronization in a multi-core processor
US10402565B2 (en) In-system provisioning of firmware for a hardware platform
US10514931B2 (en) Computing platform interface with memory management
KR100796419B1 (ko) 구성가능 pci 익스프레스 스위치 및 그 제어 방법
US8032772B2 (en) Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
CN102567109B (zh) 中断分配方案
EP2469377B1 (en) Decentralized power management distributed among multiple processor cores
JP5074457B2 (ja) 計算機システム、スイッチ切り替え方法及びpciスイッチ
JP5733628B2 (ja) 仮想計算機を制御する計算機装置及び仮想計算機の制御方法
US7197626B2 (en) Plural microcontrollers for managing CPU allocation and device resources including establishing connections without a centralized operating system
US20160378704A1 (en) Dynamically configure connection modes on a system based on host device capabilities
US10997093B2 (en) NVME data processing method and NVME device