TWI460581B - 多核心動態配置發現方法及其微處理器 - Google Patents
多核心動態配置發現方法及其微處理器 Download PDFInfo
- Publication number
- TWI460581B TWI460581B TW100147949A TW100147949A TWI460581B TW I460581 B TWI460581 B TW I460581B TW 100147949 A TW100147949 A TW 100147949A TW 100147949 A TW100147949 A TW 100147949A TW I460581 B TWI460581 B TW I460581B
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- cores
- microprocessor
- manager
- semiconductor wafer
- Prior art date
Links
Classifications
-
- 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
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Microcomputers (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
Description
本申請案優先權之申請係根據美國專利臨時申請案,案號:61/426,470,申請日:12/22/2010,名稱為多核心內之旁路匯流排(MULTI-CORE INTERNAL BYPASS BUS),該案整體皆納入本案參考。
本申請案與下列同在申請中之美國專利申請案有關,都具有相同的申請日,每一申請案整體皆納入本案參考。
本發明係關於一種多核心微處理器,尤其是關於一種多核心微處理器之核心動態配置(dynamic configuration)。
對一些傳統之多核心處理器而言,製造者可透過燒斷微處理器之各個核心上的鎔絲(fuse)以指定多核心微處理器中各個核心的配置,於是在靜態上,各個核心可依據鎔絲的數值來確認系統之多核心處理器中哪一個核心被啟動並能進行資料處理。雖然此種解決方法具有優點,不過核心上的鎔絲一旦被燒斷,即使多核心微處理器有由原本的第一種配置改變為第二種配置的需求時,此鎔絲被燒斷的核心可能會無法使用於多核心微處理器之第二種配置。此外,某些傳統的系統則是透過系統之BIOS詢問(query)核心且確認核心配置,並將配置訊息寫入多核心微處理器之控制暫存器(control register),例如特定模組暫存器(Model Specific Registers,MSR)。雖然此解決方法具有優點,不過多核心微處理器之製造者並不總是能夠控制系統BIOS的開發與發行。最後,多核心微處理器之各個核心亦可能是製造上具有缺陷、或是在測試或操作中發生損壞。因此,找出一個可靠的方法來確認多核心微處理器之核心配置是亟待解決的問題。
本發明之一目的係提供一具有一核心配置發現程序之微處理器,而不需倚賴核心外之邏輯電路或透過系統BIOS的探詢來確認核心配置。本發明之另一目的係提供一核心配置發現方法,此方法不需倚賴核心外邏輯電路或系統BIOS的探詢,即可確認核心配置。在某些實施例中,此核心配置係指處理器中啟動核心的數量與辨識資訊。在某些實施例中,此核心配置亦可指此多核心處理器之層級化協調系統,例如特定核心間傳輸或動作之核心結點圖(nodal map)、以及(或)各個域層(domain)與此層級化協調系統之域層管理者的辨識資訊。在某些實施例中,核心配置亦可用以確認由此微處理器之多個域層分享之資源,如電壓源、時鐘信號源、與快取。
在某些實施例中,至少一部分、或是全部之核心係透過配置發現微碼用以發現微處理器之核心的配置。在某些實施例中,此微碼係執行一配置發現程序,此程序可以是由上而下(亦即由根核心開始)、由下而上(亦即由各個終端核心開始)、或是折衷(例如採取管理者協調之架構,由各個管理者核心(master core)開始)。
在由上而下的配置發現程序中,根核心向各個從屬親屬核心(subordinate kin core)詢問其配置資訊。如果有的話,各個從屬親屬核心隨後向其從屬親屬核心詢問其配置資訊,如此循環下去,直到到達終端核心。各個從屬親屬核心回覆可用(Applicable)的配置資訊至詢問他的核心,直到根核心由各個從屬親屬核心獲得配置揭露訊息,或是其等待訊息的時間已超過預設時間。此根核心隨後收集配置資訊以確認整個微處理器的配置。在部分實施例中,根核心隨後會重新將配置資訊散佈至其從屬的親屬核心,而這些從屬核心再散佈給其從屬的親屬核心,直到所有的核心都分享此配置資訊。
在由下而上的配置發現程序中,各個終端核心傳送一配置揭露訊息至其最鄰近的管理者核心。管理者核心在接收到來自其從屬親屬核心的配置揭露訊息、或是等待收訊的時間已過的情況下,各個管理者核心隨即收集其所收到的訊息,並產生一複合(Composite)配置揭露訊息至其管理者核心(如果有此管理者核心的話)。此程序持續循環直到根核心接收到來自其他從屬親屬核心之配置揭露訊息、或是等待時間已過。此根核心隨後收集所接收的配置資訊以確認整個微處理器的配置。在部分實施例中,根核心隨後會重新將配置資訊散佈至其從屬親屬核心,這些從屬親屬核心再散佈給其從屬親屬核心,直到所有的核心都分享此配置資訊。
本發明亦提供一管理者調解之配置發現程序與相對應的微處理器。此微處理器具有複數個半導體晶片,各個半導體晶片包含複數個處理核心,各個晶片之其中一個處理核心係指定為管理者核心。各個管理者核心係用以詢問同一個晶片上的其他核心,以確認晶片上所啟動的核心數量。在確認晶片上啟動的核心數量後,管理者核心同時與其他晶片上的管理者核心互相協調,以確認微處理器中所啟動的核心數量。
在某些實施例中,內含有整個處理器之複合配置資訊的核心,會在各種不同環境下,在微處理器之操作過程使用其所發現的配置資訊。在其中一個環境中,因應於使用者程式指令對於微處理器核心數的詢問,各個核心提供所確認之微處理器中啟動的核心數量作為此使用者程式指令之執行結果值。在另一個環境中,各個核心係依據所發現的配置資訊來進行多核心微處理器之電力狀態管理。在另一個環境中,各個核心係依據所發現的配置資訊來同步由核心所改變的電力狀態。在一實施例中,各個核心係基於所發現的配置資訊以辨識參與分享一電壓源之核心,用以管理一共享電壓源。在另一實施例中,各個核心係基於所發現的配置資訊以辨識參與分享一時鐘信號源之核心,用以管理一共享時鐘信號源。
在另一實施例中,在親屬核心未於一預設時間內回覆管理者核心的詢問、或提供管理者核心一預期配置揭露訊息的情況下,管理者核心會認為此親屬核心並未啟動。
在另一實施例中,各個管理者核心係透過傳送指出所在晶片上啟動核心數量的訊息至其他各個晶片的管理者核心,並由其他各個晶片的管理者核心接收指出其他晶片上啟動核心數量的訊息,以進行協調。
在另一實施例中,各個晶片具有核心間傳輸線。管理者核心可透過此核心間傳輸線詢問同一個晶片之其他核心,以確認晶片上啟動核心的數量,且管理者核心可透過晶片間傳輸線與其他各個晶片之管理者核心進行協調,以確認處理器中啟動核心的數量。
本發明另一實施例係提供一利用管理者調解來動態確認多核心微處理器之配置方法。因應微處理器之一重置動作,各個晶片之管理者核心詢問晶片上其他各個核心,以確認晶片上啟動核心的數量。在確認晶片上啟動的核心數量後,各個晶片管理者核心亦與其他各個晶片的管理者核心進行協調,以確認處理器上所啟動的核心數量。
本發明另一實施例係提供一使用於計算裝置之編碼於至少一計算機可讀取儲存媒體之計算機程式產品,此計算機程式產品包括此用以說明一微處理器之計算機可讀取程式碼。進一步來說,此計算機可讀取程式碼包括用以特定複數個半導體晶片之程式碼,其中各半導體晶片具有複數個處理核心,且各半導體晶片之其中一個處理核心係被指定為管理者核心。因應微處理器之重置行為,此計算機可讀取程式碼更提供規格以使各個管理者核心去詢問同一個晶片上的其他核心,以確定晶片上啟動的核心數。在確定晶片上啟動的核心數後,此晶片之管理者核心會與各其他晶片之管理者核心進行協調,以確認微處理器中所啟動核心數。
在另一實施例中,計算機可讀取儲存媒體係選自碟片、磁帶、或其他磁性、光學或電子儲存媒體與網路、有線或無線之傳輸媒體。
關於本發明之優點與精神可以藉由以下的發明詳述及所附圖式得到進一步的瞭解。
本發明所提供之實施例係針對多核心多處理器,使用於一具有高度擴展性之核心間配置發現程序。在某些實施例中,核心間配置發現程序之至少一部分係透過連接各個核心之邊帶(sideband)通訊線路進行。另外,在某些實施例中,核心間配置發現程序係依據各個核心間之一可使用之階層式協調系統進行。此外,在某些實施例中,此階層式協調系統係對應於此多核心多處理器之各個核心之物理上封裝配置(layout),例如核心群集於晶片與晶片群集於封裝體之配置。在某些實施例中,此階層式協調系統不同於微處理器之物理上封裝配置(layout)。
依此,在詳述各個圖式以說明本發明應用於核心間配置發現程序之各個實施例前,先將本發明所應用之基本概念介紹如下。
一、多層多核處理器
本文所稱之多核處理器基本上係指一處理器具有多個已啟動的物理性核心(physical core),各個實體核心係用以依據一指令集結構(instruction set architecture)抓取(fetch)、解碼(decode)、執行(execute)指令。一般而言,此多核心處理器係透過一最終由各核心共享之系統匯流排(system bus)耦接至一晶片組,此晶片組提供透過周邊匯流排對各式各樣裝置提供存取。在某些實施例中,此系統匯流排係一作為處理器與計算機系統之其他部份間之一外部介面(external interface)之前端匯流排(front-side bus)。在某些實施例中,此晶片組同時對一共享之主記憶體與一共享之圖形控制器(graphic controller)集中存取。
此多核心處理器之核心可以是封裝於一個或多個具有多核心之晶片(die)內,此技術可參照隨卷所附之12/22/2010提出之美國專利申請第61/426,470號申請案中標題為“Multi-Core Processor Internal Bypass Bus”之段落、以及其同時提出之正式申請案(以下稱CNTR.2503)。如同這些參考資料所述,典型的晶片是一個半導體晶圓(wafer)切割出來的單一實體物件(physical entity),並且通常具有至少一組實體輸入輸出接觸墊(I/O landing pad)。舉例來說,部分雙核晶片具有兩組輸入輸出接觸墊,分別對應至一個核心。其他雙核晶片具有單一組輸入輸出接觸墊由兩個核心共享。部分四核心晶片具有兩組輸入輸出接觸墊,各組輸入輸出接觸墊分別由兩個核心共享。多核心配置是可能的。
此外,一個多核心處理器亦可能具有一包覆有多個晶片之封裝體(package)。“封裝體”係一表面可供放置或連接有晶片之基板(substrate)。“封裝體”可能提供單一組接腳以連接至一主機板(motherboard)與相關之處理器匯流排。在封裝體的基板上具有導線圖案(wire nets or traces)以連接晶片之接觸墊與封裝體由各晶片共用之接腳。
分層的設計也是可能的。舉例來說,在封裝體與位於下方之主機板之間可提供一個額外的層板(以下稱為平台(platform)),而多個封裝體係設置於此平台上。此平台可以採用多種配置方式。舉例來說,類似於前述封裝體,此平台可包含一個具有導線圖案之基板,以連接各個封裝體之接腳與此平台由各封裝體共用之接腳。
利用前述概念,舉例來說,一個多封裝體處理器可將N2個封裝體設置於一平台上,各個封裝體可具有N1個晶片,各個晶片可具有N0個核心。數字N2、N1與N0係大於或等於一,並且數字N2、N1與N0中至少一個係大於或等於二。
二、核心間傳輸結構
如前述,部分實施例中,核心間配置發現程序之至少一部分係透過連接各個核心之邊帶傳輸線路(sideband communication lines)進行。連接各個核心之邊帶導線(sideband wire),例如核心間傳輸線或是晶片間傳輸線,係應用於發現處理器之配置。
舉例來說,如同參考文件CNTR.2503所述,一個多核心多處理器可具有一多核心晶片,此多核心晶片之多個核心間具有一旁路匯流排(bypass bus)。旁路匯流排並不連接至晶片之實體接觸墊,因此,旁路匯流排不會由雙核心晶片向外傳輸信號。旁路匯流排同時可以提升核心間之訊號品質,並且使各個核心可以與其他核心互相傳輸或協調(communicate or coordinate)而無需使用到系統匯流排。
本發明同時述及相較於參考資料CNTR.2503所提及之旁路匯流排較不具擴展性之核心間傳輸線,如隨卷所附2010/12/22提出之美國專利申請第61/426,470號申請案中標題為“Reticle Set Modification to Produce Multi-Core Dies”之段落,以及其同時提出之正式申請案(以下稱CNTR.2528)。隨卷所附2010/12/22提出之美國專利申請第61/426,470號申請案中標題為“Distributed Management of a Shared Power Resource to Multi-Core Processor”之段落以及其同時提出之正式申請案(以下稱CNTR.2534),提及一種較不具擴展性之核心間傳輸線。核心間傳輸線所包含的導線數,可以小至啟動配置發現動作所需之數量。核心間傳輸線亦可以類似於下述晶片間傳輸線之方式,配置於各個核心間作為其介面。
此外,多核心多處理器可在封裝體之各個晶片間提供有晶片間邊帶傳輸線,而其平台則在平台之各個封裝體間提供有封裝體間邊帶傳輸線。這些邊帶傳輸線類似於核心間邊帶傳輸線,都屬於系統匯流排之外部的傳輸結構。利用封裝基板之導線(wires or traces)所提供之多種晶片間與封裝體邊帶傳輸線之配置,可參照隨卷所附2010/12/22提出之美國專利申請第61/426,470號申請案中標題為“Decentralized Power Management Distributed Among Multiple Possible Cores”之段落以及其同時提出之正式申請案(以下稱CNTR.2527)。
參考資料CNTR.2527提及晶片間傳輸線之多種不同配置。如參考資料CNTR.2527之第1、9、11與12圖所示,參考資料CNTR.2527提及可啟動各個晶片之管理者核心與位於同一個封裝體之任何晶片之管理者核心,以支援管理者核心間點對點(peer to peer)協調模式之方式進行溝通的配置。相較之下,參考資料CNTR.2527之第14圖顯示晶片間傳輸線之一種層級化(hierarchical)配置。其中提供有三組晶片間傳輸線,第一組傳輸線連接晶片0與晶片1,第二組傳輸線連接晶片2與晶片3,第三組傳輸線連接晶片0與晶片2。
參考資料CNTR.2527亦提及各個晶片連接至晶片間傳輸線之多種配置。舉例來說,如參考資料CNTR.2527之第1、9、11與21圖所示,各個多核心晶片在系統匯流排接觸墊之外,分別提供並使用四個邊帶傳輸接觸墊以連接至其所在之封裝體上的晶片間傳輸線。相較之下,如參考資料CNTR.2527之第12、14、15、16與22圖所示,各個多核心晶片在系統匯流排接觸墊之外,只使用二個或三個邊帶傳輸接觸墊以連接至其所在之封裝體上的晶片間傳輸線。
基本上,各個晶片在其系統匯流排接觸墊外,為了連接至晶片間邊帶傳輸之目的,均具有至少一個邊帶傳輸輸出墊與至少一個邊帶傳輸輸入接觸墊。部分實施例提供有額外的邊帶傳輸接觸墊,作為額外的邊帶傳輸輸入接觸墊以支援更多樣化之多核心實作、以及適應更多樣化之核心間協調系統。在部分實施例中,具有晶片之封裝體係提供相對應之接腳,同樣以略過系統匯流排之方式,連接此封裝體之晶片間傳輸線與其他封裝體之相對應的晶片間傳輸線。
在部分實施例中,晶片間傳輸接觸墊係由晶片間傳輸接觸墊所在之晶片內被指定之管理者核心所控制。在其他實施例中,晶片間傳輸接觸墊之控制則可轉交與(或是)重新指定給此晶片間傳輸接觸墊所在之晶片之其他核心。
此外,參考資料亦提及各個晶片之核心間傳輸線之多種配置。舉例來說,參考資料CNTR.2503提及一個四核心晶片在兩組雙核心架構間具有核心間傳輸線。另外,四核心晶片可在晶片之各組核心架構之核心間設置核心間傳輸線,並在此兩組核心架構間設置另一組核心間傳輸線。在CNTR.2527之第16圖所提及之另一實施例中,晶片之各個核心間具有核心間傳輸線。在又一實施例中,此四核心晶片可在第一與第二核心間,第二與第三核心間,第三與第四核心間,與第一與第四核心間設置核心間旁路匯流排,而不在第一與第三核心間或是第二與第四核心間設置核心間旁路匯流排。
三、層級化觀念
給定之多核心微處理器之層級複雜度與邊帶傳輸之配置會限制此微處理器之核心透過其邊帶傳輸線所能進行之協調程序,因此部分實施例使用層級化之協調系統以進行配置發現程序。對於具有大量核心之微處理器而言,給定的層級化協調系統可能過於複雜,因此在說明本案第1至3圖及其所使用之配置發現程序前,先對本案所提及之多種層級化協調系統進行說明是有幫助的。
為了此目的,請參照參考文件CNTR.2527,其中第1,9,11,12,14,15,16,18,19,20,21與22圖說明了利用層級化協調系統,來組織並促進電力狀態發現與管理程序之進行。
在此所稱之層級化協調系統,係指核心被配置來與其他核心以一種至少部分是被限定、或架構成層級化之方式進行一定溝通與協調行為之系統,其不同於點對點協調系統之各個核心具有相同之權限,並能直接與任何其他核心協調以進行相關的溝通行為。舉例來說,一個樹狀節點架構中,若是各核心僅能與位於上層節點或下層節點之核心進行連結,以及在任兩節點間僅具有單一個路徑,則會構成一嚴謹的層級化協調系統。本文所稱之層級化協調系統,除非有嚴格定義,不然都會涵蓋較寬鬆的層級化協調系統。例如,一個系統允許其中至少一群核心採取點對點協調架構,但在至少兩群核心間需採取層級化協調架構。
在一實施例中,層級化協調系統係應用於具有多個封裝體之微處理器之核心間之處理,各個封裝體具有多個晶片,各個晶片具有多個核心。將各個層視為一個“域(domain)”是有幫助的。舉例來說,雙核心晶片可視為一個域具有此晶片之兩個核心、雙晶片封裝體可視為一個域具有此封裝體之兩個晶片、雙封裝體平台可是為一個域具有此平台之兩個封裝體。將核心本身稱為域也有幫助。“域”的觀念在指涉至資源分享,例如快取記憶體、電壓源、或是時鐘信號源等由同一個域內的各核心所分享但亦限於此域內,亦即不為域外之核心所分享時亦有幫助。當然,各個域的域深(domain depth)與組成者的數量與組成者的數量(例如,將一個晶片視為一個域,將封裝體視為一個域,等等)可以依據核心的數量、核心的分層方式、與核心分享資源的方式,進行改變或縮放。
在各個域間不同類型的關聯性進行命名也是有幫助的。本文中將多核心晶片中所有啟動的實體核心視為此晶片之組成者(constituents),以及其他核心的共同組成者(co-constituents)。多晶片封裝體中所有啟動的實體晶片被視為此封裝體之組成者以及其他晶片之共同組成者。同樣地,多封裝體處理器中所有的啟動封裝體被視為此處理器之組成者以及其他封裝體之共同組成者。此表達方式可擴展至和多核心處理器所提供之域深的層級數相同。基本上,各個非終端的域層(domain level)係由一個或多個組成者所定義出來,各個組成者包含此層級化架構之次一域層。
在部分多核心處理器之實施例中,對各個多核心域(multi-core domain),例如各個晶片、各個封裝體、各個平台等而言,其中一個並且只有一、個核心係被指定為此域的管理者(master),並賦予相應的看門(gate keeping)功能與協調角色。舉例來說,如果有的話,各個多核心晶片中之一個核心會被指定為此晶片之晶片管理者(die master)、各個封裝體中之一個核心會被指定為此封裝體之封裝體管理者(package master)、各個平台中之一個核心會被指定為此平台之平台管理者(platform master)等等。基本上,層次結構中最高層的域的管理者核心係作為此多核心處理器之唯一的匯流排服務處理器(bus service processor)核心,只有此匯流排服務處理器核心被授權去協調此多核心處理器與晶片組間之特定種類的動作。值得注意的是,在此使用管理者的用語僅為便利起見,其他名稱,例如“委派者(delegate)”亦可應用來表達此功能角色。
在各個域的管理者核心與其他已啟動之核心間,對於一定的預設動作,設定有其他關係以直接協調。在最低域層,例如晶片,多核心晶片之晶片管理者核心可稱為此晶片中其他已啟動但非管理者核心之“夥伴(pal)”。基本上,晶片之各個核心係描述為同一晶片上之其他核心的夥伴。不過,在不同的理解下,夥伴的指定行為係限於多核心晶片之晶片管理者核心與其他核心間之主從關係(subordinate relationship)。若在一個四核心晶片採取此主從關係之指定行為,此晶片之管理者核心將會有三個夥伴,不過,其他各個核心只會有一個夥伴,即管理者核心。
在下一層級的域,例如封裝體,封裝體管理者核心係描述為同一封裝體之其他管理者核心的“同伴(buddy)”。基本上,封裝體中之各個晶片管理者核心係描述為同一封裝體內之其他晶片管理者核心之同伴。不過,在不同的理解下,同伴的指定行為係限於封裝體之封裝體管理者核心與其他晶片管理者核心間之主從關係(subordinate relationship)。若在一個四晶片封裝體採取此主從關係之指定行為,此封裝體管理者核心將會有三個同伴,不過,其他晶片管理者核心只會有一個同伴,即封裝體管理者核心。在另一種理解下,如前述第11圖所示,管理者核心被描述為同一個處理器之其他管理者核心的同伴,包括位於此處理器之不同封裝體的管理者核心。
在下一層級的域,例如多核心處理器之平台,平台管理者核心(BSP)係被描述為為同一平台之其他封裝體管理者核心的“朋友(chum)”。基本上,平台上之各個封裝體管理者核心係描述為同一平台之其他封裝體管理者核心之朋友。不過,在不同的理解下,朋友的指定行為係限於平台之平台管理者核心與其他封裝體管理者核心間之主從關係(subordinate relationship)。若在一個四封裝體平台採取此主從關係之指定行為,此平台管理者核心將會有三朋友,不過,其他封裝體管理者核心只會有一個朋友,即平台管理者核心。
前述夥伴/同伴/朋友關係在此係定義為“同源(kinship)”關係。各個夥伴核心屬於一個同源群體,各個同伴核心屬於一個較高層級的同源群體,各個朋友核心屬於一個更高層級的同源群體。換言之,前述此層級化協調系統之各種不同的域定義出相對應的同源群體。例如:一或多個夥伴群體,同伴群體與朋友群體。此外,如果有的話,一個特定核心之各個夥伴核心、同伴核心與朋友核心可以更概括的描述為一個同源(kin)核心。
本文所使用的同源群體之概念與域的概念存在些許差異。如前述,一個域係包含域內之所有核心。舉例來說,封裝體域係包含封裝體內之所有核心。相較之下,同源群體基本上僅包含相對應域內之選定的組合核心。舉例來說,就封裝體域而言,其定義有一相對應的同源群體,不過此同源群體僅包含封裝體內之管理者核心(其中之一係封裝體管理者核心),而非任何的夥伴核心。基本上,只有終端的多核心域,亦即非由其他域所組成者,所定義出相對應的同源群體會包含域內之所有核心。舉例來說,雙核心晶片會定義出一終端的雙核心域,其相對應的同源群體係包含此域內之兩個核心。值得注意的是,將對於核心的描述視為對核心自己的域進行定義之理解亦是有幫助的。亦即,各個核心基本上係包含其內部不與其他核心分享之資源,此資源可能被配置給不同的操作狀態(operating states)。
在前述夥伴/同伴/朋友之層級架構中,各個不是管理者核心的核心都只是一個夥伴,並且屬於由同一個晶片之核心所組成之同源群體。各個晶片管理者核心除了屬於最低階層之由同一個晶片之夥伴核心所組成之同源群體外,也屬於由同一個封裝體之同伴核心所組成之同源群體。各個封裝體管理者核心除了屬於最低階層之由同一個晶片之夥伴核心所組成之同源群體外,也屬於由同一個封裝體之同伴核心所組成之同源群體,更屬於由同一個平台之朋友核心所組成之同源群體。簡言之,各個核心歸屬至W個同源群體,W等於此核心係作為管理者核心之同源群體的數量加一。
為了進一步描述同源群體之層級架構的特徵,任何給定核心之最接近(closest or most immediate)的同源群體係對應於此核心所在之最低層級之域。舉例來說,不論一特定核心被指定為多少個管理者,其最接近的同源群組係包含與此核心位於同一個晶片上的其他夥伴核心。管理者核心也會具有一個次接近(second closet)之同源群體,此同源群體係包括與此核心位於同一個封裝體之其他同伴核心。封裝體管理者核心會有一個次次接近(third closet)的同源群體,此同源群體係包含此核心之其他朋友核心。
值得注意的是,對於一個多層次多核心處理器(即至少兩個層次Nx具有多個組成者)而言,前述同源群體係半排他(semi-exclusive)的。也就是說,對這種處理器來說,並不存在一個給定的同源群體可以涵蓋處理器之所有的核心。
前述同源群體的概念可以從各個同源群體之組成核心間之協調行為的不同模式作進一步的描述。在本文所稱之“管理者調解(master-mediated)”之同源群體中,核心間的直接協調僅限於管理者核心與非管理者核心間之協調,非管理者核心間無法互相直接協調,只能透過管理者核心間接協調。相較之下,在“點對點合作(peer collaborative)”之同源群體中,任何兩個核心都可以直接互相協調,而不需經由管理者核心之調解。值得注意的是,本文所稱“管理者調解”與“點對點合作”之差異僅對於具有三個以上核心之同源群組才有意義。基本上,對於一定的預設行為,任何給定核心只會與其同源群體內之組成者或共同組成者進行協調,而對於任何其所在之管理者調解之同源群體而言,此核心只會與其能夠找到的上級的共同組成者或下級的組成者進行協調。
從層級架構的節點與節點間之連結的角度來描述層級協調系統(hierarchical coordination system)也是有幫助的。本文之節點層級架構是指一個層級架構,其各個節點都是多核心處理器之唯一的一個核心。這些核心中的一個(例如匯流排服務處理器(BSP)核心)係根節點,並且在任兩節點間具有一個尚未被切斷的協調路徑(在適當的情況下包含中間節點(intermediate node)。各個節點係"點對點連接(nodally connected)至其他節點之至少其中之一,但並不連接至所有其他節點,而且僅能針對需要應用此協調系統之特定動作,在各個節點只能與點對點連接之核心進行協調。為了進一步區分點對點之間的連結,本文將管理者核心之從屬點對點連結核心係描述為“組成者核心(constituent cores)”,其他的則是“從屬親屬核心(subordinate kin cores)”。從屬親屬核心不同於共同組成者核心,其係指點對點連接且從屬於此核心的其他核心。進一步釐清其差異,一個核心點對點連接之共同組成者核心,係包含其管理者核心與任何點對點連接且相同排序之核心,例如此核心所在之點對點合作同源群組內之其他核心。此外,在此係將任何不具有從屬親屬核心的核心稱為終端節點或終端核心。
到此,已透過將各個域與其相對應之核心配置的實際性差異進行描述,以說明層級化協調系統。例如,不同的域對應至各個適用的核心、晶片、封裝體與平台之描述。舉例來說,參考文件CNTR.2527之第1、9、12、16與22圖,顯示對應於封裝體之核心配置的層級化協調系統。參考文件CNTR.2527之第22圖式則是一個有趣的例子,圖中顯示一個八核的處理器2202具有非對稱的封裝體,其中一個封裝體具有三個雙核晶片,其他的封裝體則具有單一個單核晶片。不過,為了讓所封裝的核心在實體性差異配置方式(physically distinct nested manner)取得一致,邊帶導線係定義一相對應之三層的層級化協調系統,其中,封裝體管理者之關係如同朋友(chums),晶片管理者之關係如同同伴(buddies),晶片核心之關係如同夥伴(pals)。
不過,依據核心間、晶片間、封裝體間邊帶導線配置之不同,如果有的話,相較於處理器之核心封裝所採取之實體配置方式,核心間之層級化協調系統可具有不同的深度與分層。參考文件CNTR.2527之第11、14、15與21圖提出許多不同的例子,而參考文件CNTR.2527之第11圖描述一個八核心處理器,此處理器具有二個封裝體,各個封裝體具有二個晶片,各個晶片具有二個核心。CNTR.2527第11圖之邊帶導線係採取二層之層級化協調系統,其中,所有的管理者核心屬於最高層次之同源群體,各個管理者核心同時各自屬於一個最低層次之同源群體,而此同源群體包含管理者核心及其夥伴。參考文件CNTR.2527之第14圖描述一個八核心處理器,此處理器具有四個雙核心晶片封裝於單一個封裝體,而且第14圖處理器之邊帶導線需要採取三層之層級化協調系統,以協調夥伴核心、同伴核心與朋友核心間的關係。參考文件CNTR.2527之第15圖描述一個具有二個四核心晶片之處理器,各個晶片內之核心間導線需要採取二層之層級化協調系統,晶片間導線則是採取三層之層級化協調系統以協調各個晶片之管理者(亦即朋友核心間的關係)。參考文件CNTR.2527之第21圖描述另一個八核心處理器,其與第22圖之處理器相類似,皆具有二個非對稱的封裝體,其中之一具有三個雙核心晶片,另一個具有一個雙核心晶片。不過,與第11圖之配置方式相類似,此處理器係採用雙層之層級化協調系統處理晶片間與封裝體間邊帶導線之配置,而二個封裝體內之管理者核心則屬於同一個同源群體。
如同以上解釋,具有不同深度與協調模型之層級化協調系統,可依據需求應用於多核心處理器之共享資源的分配,並與此多核心處理器之結構容量與限制取得一致。為了進一步說明,參考文件CNTR.2527之第16圖顯示一處理器具有充足的邊帶傳輸線,以在各個四核心晶片之所有核心間進行點對點合作之協調模型。不過,參考文件CNTR.2527之第17圖則是顯示在各個四核心晶片之所有核心間建立一個受限的管理者調解協調模型。此外,參考文件CNTR.2527之第15圖顯示一個多層次之分層協調架構,此架構具有二個夥伴同源群體與一個管理者同源群體,而且如有需要的話,只需使用較核心間導線總數為少的方式,即可在四核心微處理器之核心間應用構築此協調系統執行所需的動作架構。因為參考文件CNTR.2527之第16圖之各個四核心晶片在各個核心間設置有邊帶導線,所以此晶片可採行所有的三種層級化協調系統。
基本上,不論多核心處理器之域、同源群體、與節點的本質與數量為何,各個域與各個相對應的同源群體中只有一個核心會被指定為此域與同源群體之管理者核心。域可能具有其組成者域,同樣地,各個域與各個相對應的同源群體中只有一個核心會被指定為此域之管理者核心。此協調系統中位階最高的核心也就是根節點(root node)。
四、實施例說明
參考第一圖描繪本發明所揭露之電腦系統100的架構圖,其包含一多核心處理器102。此電腦系統100係參考文件CNTR.2527的細部結構圖。
此系統100具有一單一晶片組114,其透過一系統匯流排116耦接至多核心微處理器102,此系統匯流排具有一匯流排時鐘。此多核心微處理器102具有二個雙核心晶片104,以晶片0與晶片1表示,這些晶片104係裝設於封裝體之一基板上。
各個雙核心晶片104各具有二個處理核心106,其中晶片0具有核心0與核心1、晶片1具有核心2與核心3,各個晶片104之二個核心106係透過位於晶片104內部之核心間傳輸線112進行溝通。更進一步來說,此核心間傳輸線112使得晶片104內部之二個核心106得以互相中止與傳輸訊息以協調其間之多種發現與管理程序,包含微處理器之配置發現程序。
在本發明之一實施例中,此核心間傳輸線112包含一具有平行導線之匯流排。在一相關的實施例中,此核心間傳輸線112包含一類似於參考文件CNTR.2503所描述之旁路匯流排。在另一實施例中,與參考文件CNTR.2503與CNTR.2534之各種邊帶配置或是與參考文件CNTR.2572之晶片間傳輸線從各種不同的角度相比較,此核心間傳輸線112包含一個相對較小之核心間傳輸線組。
在關於第一圖的描述中,"夥伴"的用語係指位於同一個晶片104、且透過核心間邊帶傳輸線互相溝通之核心。因此,在第一圖所示之實施例中,核心0與核心1是夥伴,核心2與核心3是夥伴。
各個晶片104具有複數個系統匯流排接觸墊用以將晶片連接至系統匯流排;各個晶片104並具有複數個額外的邊帶傳輸接觸墊,用以將晶片連接至晶片間傳輸線118。進一步來說,各個晶片具有四個邊帶傳輸接觸墊108分別連接至四個相對應的接腳,這些接腳標示為P1,P2,P3與P4。這四個邊帶傳輸接觸墊108包括一個是輸出接觸墊OUT與三個輸入接觸墊IN1,IN2,IN3。在一實施例中,各個晶片104係基於多核心微處理器之製作過程中透過燒斷鎔絲所特定的配置,來指定此四個接觸墊108之其中之一為其輸出接觸墊OUT。
在第一圖中,封裝體本身提供有相對應之複數個邊帶傳輸接腳,分別標示為P1至P4。這些接腳係耦接至晶片間傳輸線118。雖然對於封裝體內之晶片間信號傳輸而言這些接腳並非必要,但這些接腳的存在有助於對於晶片間傳輸線118上的信號進行外部測試,同時可以支援較大型之多封裝體配置。
這些晶片間傳輸線118的配置如下。晶片0之輸出接觸墊OUT與晶片1之輸入接觸墊IN1係透過同一個導線耦接至接腳P1;晶片1之輸出接觸墊OUT與晶片0之輸入接觸墊IN3係透過同一個導線耦接至接腳P2;晶片0之輸入接觸墊IN2與晶片1之輸入接觸墊IN3係透過同一個導線耦接至接腳P3;晶片0之輸入接觸墊IN1與晶片1之輸入接觸墊IN2係透過同一個導線耦接至接腳P4。
各個晶片104並具有一被指定之管理者核心106。此管理者核心106控制各晶片之邊帶傳輸接觸墊之間的信號溝通。在第一圖所示之實施例中,核心0是晶片0之管理者核心106,核心2是晶片1之管理者核心106。就第一圖而言,"同伴"之用語是指位於不同晶片104上,透過晶片間邊帶傳輸線互相溝通之管理者核心。因此,在第一圖之實施例中,核心0與核心2是同伴。
晶片間傳輸線118連接各個晶片104的管理者核心106以實現各晶片間多種發現與管理程序之溝通與協調。如同本文所述,這些發現與管理程序包括微處理器之配置的發現程序。進一步來說,此晶片間傳輸線118可以使不同晶片104上的管理者核心106去中斷彼此以及傳送信號給彼此,以分散多核心微處理器102之各個核心106間之協調與發現動作。
舉例來說,當晶片0之管理者核心0想要與晶片1之管理者核心2溝通,晶片0之管理者核心0會由晶片0之輸出接觸墊OUT傳送訊息至晶片1之輸入接觸墊IN1。同樣地,當晶片1之管理者核心2想要與晶片0之管理者核心0溝通,晶片1的管理者核心2會透過晶片1的輸出接觸墊OUT傳送訊息至晶片0的輸入接觸墊IN3。請參照參考文件CNTR.2527,就一個四核心的配置而言,第一圖中的所有接觸墊與接腳並非都是必須的,其中部分接觸墊與接腳可以被移除。不過,這些額外的接觸墊與接腳可支援他種處理器配置,例如八核心之實施例。在部分處理器的配置中,各個輸出接觸墊108耦接其他晶片104之多個輸入接觸墊108。為了支援此種配置,本發明一實施例之管理者核心106在其透過輸出接觸墊108傳輸至晶片間傳輸線118之訊息中加入一辨識元(identifier),此辨識元用以指出此訊息所要傳達之目標核心106。藉此,此訊息可透過廣播方式傳送至多個收訊核心106,各個核心106再去判斷自己是否是該訊息所欲傳達的對象。
雖然第一圖之實施例所示之多核心微處理器102具有四個物理性核心106,不過,由於各個核心106分別具有一起動指標(enable indicator)252可選擇性地燒斷以決定是否使此核心106啟動,系統100進行資料運算時實際所能使用之核心的數量可能少於實際核心106的數量。因此,如本文所述,各個核心106的微碼208係用以執行動態配置發現程序,藉以確認哪一個實體核心已啟動而能為系統100進行資料運算所使用。微碼208可透過核心間傳輸線112與晶片間傳輸線118實現動態配置發現程序。
第二圖係一方塊圖詳細顯示本發明第一圖眾多核心106其中之一的方塊圖。第二圖之核心106的詳細說明可參照參考文件CNTR.2527之第二圖,以下將再額外多做敘述。
依據一實施例,核心106的微結構包括一超純量單元(superscalar)、非循序執行管線(out-of-order execution pipeline)之功能單元;一個指令快取單元(instruction cache)202存放由系統記憶體(未圖示)擷取之指令;一個指令轉譯單元(instruction translator)204耦接至指令快取單元202接收指令,例如x86指令集架構的指令;一個暫存器別名表(register alias table,RAT)212係耦接至指令轉譯單元204與微順序器(microsequencer)206以接收轉譯後的微指令(microinstructions),同時依據微指令產生相關訊息;保留站(reservation station)214係耦接至暫存器別名表212以接收轉譯後的微指令與相關訊息;執行單元216係耦接至保留站214以接收轉譯後的微指令並由轉譯後的微指令中取得運算元指令(operand instruction),此運算元可以係來自核心106之暫存器,例如通用暫存器(general purpose register)與可讀寫之特別模組暫存器(model-specific register,MSR)238、以及來自耦接至執行單元216的資料快取222;一個指令引退單元218係耦接至執行單元216以接收執行單元216執行指令所產出的結果指令,同時將此結果從排除核心106架構指揮中心(architecture state)予以引退的結果,此資料快取222係耦接至一匯流排介面單元(bus interface unit,BIU)224;匯流排介面單元224係作為第一圖之核心106與匯流排116間之介面;一個鎖相迴路(phase-locked-loop,PLL)226由匯流排116接收匯流排時鐘信號,同時據以產生一核心時鐘信號242至核心106之各個功能單元,此鎖相迴路226可以受控於執行單元216以進行包括取消(disable)在內的操作。
在第一圖之相關敘述中,各個晶片具有一個指定的管理者核心。此外,處理器可具有一被指定的開機服務處理器(boot service processor,BSP)核心,單獨被授權來協調其與晶片組114間之特定動作。基於此,將特定核心指定為管理者與(或)開機服務處理器核心以及配合此指定行為的不同實施例係設想如下。
在一實施例中,各個核心106具有可程式化配置鎔絲(programmable configuration fuse),晶片104的製造者可透過燒斷部分的配置鎔絲來指定究竟哪一個核心106係作為此晶片104之管理者核心,亦可燒斷其他配置鎔絲來將一特定核心106指定為開機服務處理器(BSP)。此外,晶片104之製造者可燒斷額外的配置鎔絲來將一特定辨識編號(identifying instance)指定給各個核心106,亦即此核心106是核心0、核心1、核心2或核心3。
在另一實施例中,任何給定核心係依據其編號指定管理者。依據一實施例,偶數編號的核心106係預設為各個晶片104之管理者核心。依據一相關實施例,核心0係指定為多核心微處理器之開機服務處理器。
在另一實施例中,一開始的管理者或開機服務處理器係依預設值指定,例如:基於適用的配置鎔絲的狀態或是核心的編號(instance),不過此指定可以被新的配置所覆蓋。在另一個實施例中,管理者與開機服務處理器指定會動態地重設或暫時性擱置,以因應不同狀況,例如所指定的管理者或開機服務處理核心是處於無效或是暫停狀態。
請參照第二圖所示,執行單元216接收一開機服務處理指標228與一管理者指標232,開機服務處理指標228與管理者指標232分別用以指示是否核心106是晶片104之管理者核心與多核心處理器102之開機服務處理核心。如前述,開機服務處理指標228與管理者指標232可以包含可程式化鎔絲。在另一實施例中,開機服務處理指標228與管理者指標232係儲存於一特定模式暫存器238,此特定模式暫存器238起初係從可程式化鎔絲取出所儲存之數值,但可透過軟體寫入特定模式暫存器238進行更新。
其次,核心106具有一啟動指標252指出是否核心106已啟動而能進行資料處理。此外,核心106具有配置記憶體254用以儲存多核心微處理器102之核心配置。在一實施例中,此配置記憶體254包含暫存器。在另一實施例中,此配置記憶體254包含小型的動態存取記憶體(RAM)中的儲存位置,例如美國專利第7827390號所揭露的私有動態存取記憶體(Private RAM)。
執行單元216也會讀取與寫入控制與狀態暫存器(control and status register,CSR)234與236以與其他核心溝通。請參照參考文件CNTR.2527,核心106係使用控制與狀態暫存器236,並透過核心間傳輸線112與同一個晶片104之其他核心106溝通。核心106係使用控制與狀態暫存器234,並透過晶片間傳輸線118以及接觸墊108與其他晶片104之其他核心106溝通。
微順序器206並具有一微碼記憶體207用以儲存微碼。各個處理核心106係對稱的(symmetric),因其均具有相同的指令集架構並被用來執行包含前揭指令集架構內之指令的使用者程式。為了便利說明起見,本文所稱之“微碼”係指由執行核心架構指令(architectural instruction of core)之核心106所執行的指令。亦即,任何儲存於微碼記憶體107的微碼,如果被執行的話,都是由他的原生(native)核心106所執行。
微碼記憶體207所儲存的微碼係包含內部電力狀態管理微碼,可參考參考文件CNTR.2527之不同的實施例。微碼記憶體207所儲存的微碼並包含本文所提及之分散式配置發現微碼(decentralized configuration discovery microcode)208。此外,這些微碼208係以下述第三圖之方法被使用,這些微碼係用以動態地確定多核心微處理器102之核心配置,並將此動態確認核心配置的訊息儲存於一配置記憶體254以供後續使用。在下述之一個實施例中,此分散式配置發現微碼208係由多核心微處理器102之一重置接腳的設置(assertion)所觸發。此外,參考文件CNTR.2527所揭露之核心的內部電力狀態管理微碼,係透過執行配置發現微碼208所發現並儲存之配置,來對於電力狀態進行管理。
配置發現微碼208有助於分散式核心配置發現程序的進行,因透過分散式核心配置發現程序,即可省卻主動式非核心邏輯裝置的使用。多核心微處理器102在核心106之外,最好包含一附屬(adjunct)或服務處理器(未圖示),此處理器所具有的指令集架構與核心106不同。不過,在本發明中,核心106本身即可因應重置設置(reset assertion)執行分散式核心配置發現程序,而不需使用其他處理器或其他非核心邏輯裝置。相較於其他使用專用硬體來處理各個核心的電力管理,這樣的處理方式有助於提升擴充性,同時在設定上也有好處,在特性的提升與晶片面積的縮減等亦有改善。此外,在支援核心啟動與關閉程序以及(或)層級化協調系統之核心重配置與可用域的指定程序的實施例中,此配置發現微碼係複製給各個核心106。
第三圖係一流程圖,其顯示本發明第一圖之多核心微處理器102進行動態配置發現程序之一實施例。此程序始於步驟302。
如步驟302所示,此多核心微處理器102係被重置。在一實施例中,此重置行為係起因於多核心微處理器102之重置接腳的設置。此重置設置可透過系統100,例如包含有多核心微處理器102的主機板來執行。此外,在供電給多核心微處理器102後,重置接腳亦可能發出設置。在處理器被重置後,各個核心106開始執行微碼208的重置常式(reset routine)。
進行到步驟304,此重置微碼208參與分散式重置發現程序。在一個由上而下的實施例中,此重置微碼208透過讀取相關的鎔絲指標228或是特定模式暫存器(MSR)238,確認是否此原生核心(native core)是一個開機服務處理器(BSP)或根核心(root core)。前揭原生核心即此重置微碼運作所在之核心。若是此原生核心是開機服務處理器或根核心,而且如果有從屬親屬(kin)核心,例如同一個封裝體的同夥核心或是同一個晶片的夥伴核心時,隨即傳送一配置發現請求至從屬親屬核心。在一相關的由管理者出發(master-initiated)的實施例中,此重置微碼208係透過讀取相關的鎔絲指標232或特定模式暫存器(MSR)238,以判斷是否此原生核心係一管理者核心106。若是,隨即傳送一配置發現請求至從屬夥伴核心,諸如位於同一個晶片104上的夥伴核心(subordinate pal core)106。就一特定實施例而言,晶片管理者核心可以透過一核心間導線傳送一配置發現請求至其夥伴核心,以詢問該夥伴核心是否存在。
在另一個由下而上的實施例中,重置微碼208係偵測原生核心是否係一終端核心(亦即沒有被指定為任何類型的管理者核心),若是,隨即傳送內含有此原生核心相關配置資訊的訊息至管理者核心。無論是由下而上、管理者出發或是由下而上的實施例,重置微碼208可透過邊帶傳輸線傳送配置發現請求至從屬親屬核心106,以及(或)接收來自從屬親屬核心106之配置揭露訊息,這些邊帶傳輸線可以是核心間傳輸線112或是晶片間傳輸線118。
本發明亦可使用不同的配置揭露訊息。在一些實施例中,此訊息可以包含此核心是否已啟動;此核心所具有的管理者辨識碼,如果有的話還包含此核心所在之域級與(或)其親屬群體、相對應之域級以及其親屬群體的核心數量、顯示核心與其他從屬核心之節點層級關係之匹配或高第數字(Gdel number)或其集合;以及(或)由各個核心域所分享之資源的識別資料,例如電壓源、時鐘信號源與快取的識別資料。
進行到步驟306,重置微碼208會由從屬親屬核心106接收配置揭露訊息,或是靜待訊息等待時間走完。
舉例來說,此晶片104之管理者核心106在步驟304傳送一發現配置請求至其他夥伴核心106後,隨及等待接收其回應。若是夥伴核心106在一預設時間內沒有回應其請求,此管理者核心106即假定此夥伴核心沒有啟動或是因為某些原因無法運作。此外,此重置微碼208亦對此夥伴核心106是否已啟動進行記錄。另外,此微處理器之非終端核心106會等待接收來自其從屬親屬核心之配置揭露訊息。在一預設時間後,此非終端核心106會假定已接收到所有已啟動之從屬親屬核心之訊息,其他從屬親屬核心則會被認為是未啟動或是因為某些原因無法運作。
在每個晶片104具有多於兩個核心106的一個實施例中,管理者核心之重置微碼208係於步驟304中傳送一發現請求訊息至其從屬親屬核心106。各個從屬親屬核心不是接收到一回應訊息,就是如步驟306所示偵測到超時的情形。在各個晶片104僅具有單一核心106的實施例中,管理者核心106的重置微碼208在步驟304並不傳送訊息、接收回應訊息、或是如步驟306偵測是否超時。並且,一旦重置微碼208於下述步驟308傳送訊息,此訊息將指出管理者核心106所在之晶片104上的核心106數為一。以下進行到步驟308。
在步驟308中,位於一工作域(applicable domain)之管理者核心106之重置微碼208,例如晶片104之管理者核心106,整合步驟306所取得的訊息,以確認域內核心106的多個配置資料。在一實施例中,此管理者核心在具有高層管理者核心之情況下,傳送一相關的配置揭露訊息至此高層管理者核心,如果沒有,此管理者核心如步驟314所示儲存此配置資料。在一更為分散之配置揭露實施例中,管理者核心106傳送一複合配置揭露訊息至各個親屬核心。舉例來說,晶片管理者核心106可透過晶片間傳輸線118傳送訊息至其他晶片104上之管理者核心106的同伴(buddy)核心。此訊息至少通知其同伴核心,管理者核心之存在以及管理者核心所在域(例如管理者核心所在晶片)的核心數。此訊息更可包含管理者核心收集到的其他配置資訊,例如此核心之其他管理者憑證、此核心所在之域級與(或)親屬群體、此域級與(或)親屬群體內的核心數、顯示核心與其他從屬核心之節點層級關係之匹配或高第數字(Gdel number)或其集合、以及(或)由各個核心域所分享之資源的識別資料,例如電壓源、時鐘信號源與快取的識別資料。
在一實施例中,管理者核心之複合配置揭露詢息係如步驟306所示,由一較高域級之管理者核心所接收。此較高域級之管理者核心在執行步驟308之前,在一預設時間限制內持續由其他核心蒐集其從屬親屬核心之配置揭露訊息。此實施例係重覆步驟308與步驟306的動作,直到根核心或開機服務處理核心106收集所有可取得的配置資訊、或是等待時間終了,根核心或開機服務處理核心106的重置微碼208跳到步驟314。
以下進行到步驟312。在一實施例中,在步驟308中傳送配置揭露訊息之管理者核心106的重置微碼208,相對應地會透過晶片間傳輸線118接收到來自其同伴核心106於步驟308所傳送的配置揭露資訊,此訊息至少通知管理者核心106其同伴核心106之存在、以及其同伴核心106所在之晶片上的核心106數。亦即,此原生核心106在步驟312接收其同伴核心106於步驟308所發出的訊息。類似於步驟306所描述的方式,此重置微碼208在未由同伴核心106接收到回應訊息的情況下,可偵測是否超時。若是,此微碼就會假定此同伴核心106未啟動或是基於某些原因無法運作。
在另一實施例中,步驟304至308最好是在重置微碼208常式的早期進行。也就是說,當核心106依步驟302被重置,重置微碼208隨即執行一最小量的核心起始化程序,然後再進行步驟304至308的動作,然後再執行其他核心106起始化所必須的功能(例如自我測試、快取配置、處理器狀態起始化),以使核心準備完成以開始擷取及執行使用者程式指令(例如系統韌體/軟體指令),然後才會執行步驟312與314。前述流程可儘量給予其他核域之管理者核心106充分的時間來進行步驟304至308,尤其是當同伴核心106依步驟308傳送訊息至原生核心106,此原生核心106依步驟312接收到回應訊息。此過程詳述如下。
就一具有超過二個晶片104之多核心微處理器102而言,管理者核心106之重置微碼208係依步驟308傳送一訊息至多核心微處理器102之各個晶片104上之各個同伴核心(buddy cores)106。這些同伴核心106不是接收到一回應訊息,就是如步驟312偵測到超時。另外,如前述,此重置微碼208亦可如步驟308只向管理者核心106中之管理者(即開機服務處理核心)傳送訊息。
接下來到步驟314,其中重置微碼208收集步驟306至312所取得之資訊,並確認此多核心微處理器102之完整的配置。在一管理者調解實施例中,各個晶片104之管理者核心106會確認此多核心微處理器102之配置。在使用管理者調解模式的實施例中,每個晶片104的管理者核心106會確認多核心微處理器102的配置。在由上而下與由下而上的實施例中,起初僅有根核心106或是開機服務處理核心106確認其最終配置。不過,在其他實施例中,此配置資訊隨後會分散至各個從屬親屬核心,至到所有核心都取得此最終配置的一個副本。
接續步驟314,此重置微碼208儲存配置資訊至第二圖之配置記憶體254內。在一實施例中,此儲存於配置記憶體254之配置資訊包含一個表單,此表單具有二維的位元陣列。此陣列之各列係對應於多核心微處理器102之不同晶片104,各行係對應於所在列之晶片104內的不同核心106,位元值則顯示此核心106係已啟動或失效。在另一實施例中,此儲存於配置記憶體254之配置資訊具有一N維資料結構。此資料結構包含一個N維的位元陣列,其中,各維係對應至此多核心微處理器102之不同域,位元值則是顯示此核心106係已啟動或失效。在其他實施例中,重置微碼208同時將指定哪一個核心106為管理者核心、哪些核心屬於此原生核心之親屬群體、顯示核心與其他從屬核心之節點層級關係之匹配或高第數字(Gdel number)或其集合、以及(或)由各個核心域所分享之資源,例如電壓源、時鐘信號源與快取,之資訊儲存至配置記憶體254。
接下來到步驟316,核心106利用於步驟314儲存之訊息來執行許多功能。舉例來說,在一實施例中,此多核心微處理器102係大致遵守x86或IA-32指令集架構,而具有一CPUID指令以及依據此CPUID指令所回應與此多核心微處理器102相關之特徵資訊,這些特徵資訊包括依據步驟314實際收集到之此多核心微處理器102之處理核心106的數量。
在另一個例子中,核心106使用步驟314所儲存的資訊來協調特定電力狀態管理功能,例如關於參考文件CNTR.2527與CNTR.2534所提及的C狀態、P狀態、VID等級與時鐘信號頻率之實施。
在另一個例子中,核心106使用步驟314所儲存之資訊可用以動態且選擇性地使核心失效。此可參照隨卷所附2010/12/22提出之美國專利申請第61/426,470號申請案中標題為“Dynamic and Selective Core Disablement in a Multi-Core Processor”之段落以及其同時提出之正式申請案(以下稱CNTR.2536)。
在參考文件CNTR.2536提及的另一個例子中,核心106使用步驟314所儲存的資訊以靜態地(例如BIOS設定)或動態地(亦即在執行中)重新配置各核心所使用的層級化協調系統、指定其他域層的管理者、以及(或)依據不同的預設環境指定暫時性的域層管理者,例如偵測到過熱核心、過載核心、核心錯誤(fault)或核心失效(failure)。
在另一個例子裡,核心106使用由步驟314所取得的資訊來進行電力管理功能,例如隨卷所附之2010/6/10提出之美國專利申請案第13/157,436號(即參考文件CNTR.2517)提及的多核電力可信度特徵“a multi-core power credit feature”。最後進入到步驟316。
就一個不具備本文所述之動態配置發現方法之微處理器而言,微處理器的製造者燒斷核心上的鎔絲以指定此多核心微處理器之各個核心的配置,因此,可透過鎔絲值靜態地確認此多核心微處理器之哪一個核心已啟動以執行系統之資料處理。雖然此種解決方法有其優點,不過一個主要的缺點,在於一旦核心的鎔絲被燒斷,若有改變處理器配置的需求,此核心可能就無法由原本之第一種多核心處理器配置改變至不同的第二種多核心處理器配置。此外,其他可能的解決方案是讓系統韌體,例如BIOS,詢問核心以確認核心配置,同時將配置資訊寫入多核心微處理器之控制暫存器,例如特定模式暫存器(MSR)。雖然此解決方案亦有優點,但是其有一主要缺點在於,多核心微處理器的製造者並不總是能夠控制系統韌體的開發與發佈。因此,本文所揭露之動態配置方法係針對前述問題提出解決途徑。本發明之動態配置方法的另一個優點在於,即使發生某核心或某晶片失效的情形,仍能使系統正常運作。
雖然前述實施例係依據第一圖之四核心微處理器102進行說明,不過,本發明亦涵蓋其他多核心微處理器之配置,如參考文件CNTR.2527之第9,14,15,16與19圖所示,只要這些配置可採行第三圖所示之動態配置發現程序。
在本發明之又一實施例中,此核心106在各方面都不同於第二圖之實施例,其在本發明所揭露之動態配置發現程序中採取或增加(instead or addition)一高度平行架構,例如圖形處理單元(GPU)所使用的架構。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。例如,軟體可致能本發明實施例所述的裝置與方法之功能、組建(fabrication)、塑造(modeling)、模擬、描述(description)、以及/或測試,亦可透過一般程式語言(C、C++)、硬體描述語言(Hardware Description Languages,HDL)(包括Verilog HDL、VHDL等等)、或其他可利用的程式語言來完成。此軟體可配置在任何已知的電腦可使用媒介,例如磁帶、半導體、磁碟,或是光碟(例如CD-ROM、DVD-ROM等等)、網際網路、有線、無線、或其他通訊媒介的傳輸方式之中。本發明所述之裝置與方法實施例可被包括於半導體智慧財產核心,例如微處理器核心(以HDL來實現),並轉換成積體電路產品的硬體。此外,本發明所述之裝置與方法透過硬體與軟體的結合來實現。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100...系統
114...晶片組
116...系統匯流排
102...多核心微處理器
104...雙核心晶片
106...核心
112...核心間傳輸線
118...晶片間傳輸線
108...邊帶傳輸接觸墊
P1,P2,P3,P4...邊帶傳輸接腳
252...啟動指標(enable indicator)
208...微碼
202...指令快取單元(instruction cache)
204...指令轉譯單元(instruction translator)
212...暫存器別名表(register alias table,RAT)
206...微順序器(microsequencer)
214...保留站(reservation station)
216...執行單元
238...特別模組暫存器(model-specific register,MSR)
222...資料快取
218...指令引退單元
224...匯流排介面單元(bus interface unit,BIU)
226...鎖相迴路(phase-locked-loop,PLL)
242...核心時鐘信號
228...開機服務處理指標
232...管理者指標
254...配置記憶體
234,236...控制與狀態暫存器(control and status register,CSR)
207...微碼記憶體
第一圖係本發明具有一多核心微處理器之計算機系統之方塊示意圖。
第二圖係以方塊示意圖詳細顯示本發明第一圖之多核心其中之一。
第三圖係第一圖之多核心微處理器執行一動態配置處理之操作流程圖。
Claims (26)
- 一種微處理器,包括:複數個半導體晶片,各該半導體晶片(die)包括複數個處理核心(processing core),各該半導體晶片之該些處理核心之其中之一係指定為一管理者核心(master core),各該管理者核心係用以:因應於該微處理器之一重置(reset)動作,與該管理者核心所在之該半導體晶片上之各該其他處理核心互相協調以確認該半導體晶片上啟動核心的數量;以及在確定該半導體晶片上啟動核心的數量後,與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 如申請專利範圍第1項之微處理器,其中各該管理者核心在該微處理器之操作過程,運用該所確認之該微處理器上啟動核心之數量。
- 如申請專利範圍第2項之微處理器,其中各該管理者核心在該微處理器之操作過程中,對於該所確認之該微處理器上啟動效核心之數量之運用,係因應於一使用者程式指令(user program instruction)對該微處理器之核心數量之要求(request),提供該所確認之該微處理器上啟動核心之數量作為一結果值。
- 如申請專利範圍第3項之微處理器,其中各該管理者核心在該微處理器之操作過程中,對於該所確認之該微處理器上啟動核心之數量之運用,係依據該所確認之該微處理器上啟動核心之數量進行該微處理器之電力管理。
- 如申請專利範圍第4項之微處理器,其中各該管理者核心係基於該所確認之該微處理器上啟動核心之數量,同步各該核心之電力狀態變化,以對該微處理器進行電力管理。
- 如申請專利範圍第4項之微處理器,其中各該管理者核心係基於該所確認之該微處理器上啟動核心之數量,管理一分享電壓源,以對該微處理器進行電力管理。
- 如申請專利範圍第4項之微處理器,其中各該管理者核心係基於該所確認之該微處理器上啟動核心之數量,管理一分享時鐘信號源(clock source),以對該微處理器進行電力管理。
- 如申請專利範圍第1項之微處理器,其中各該管理者核心協調與其所在之該半導體晶片上之各該其他處理核心互相協調以確認該半導體晶片上之啟動核心的數量,係透過判斷各該其他處理核心是否於一預設時間內回應該管理者核心所發出之一訊息,以判斷該其他處理核心是否已啟動。
- 如申請專利範圍第1項之微處理器,其中該管理者核心與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量,係透過:傳送一訊息至其他各該半導體晶片之管理者核心,該訊息係指出該管理者核心所在之該半導體晶片之啟動核心之數量;以及由其他各該半導體晶片之管理者核心接收一訊息,該訊息係指出該其他半導體晶片之啟動核心之數量。
- 如申請專利範圍第9項之微處理器,其中各該管理者核心與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量,係透過判斷各該其他管理者核心是否於一預設時間內回應該管理者核心所發出之一訊息,以判斷該其他管理者核心是否已啟動。
- 如申請專利範圍第1項之微處理器,其中各該半導體晶片具有多個核心間連線供該管理者核心與該半導體晶片上之其他核心互相協調以確認該半導體晶片上之啟動核心的數量,該多核心微處理器並具有多個晶片間連線供該管理者核心與其他各該半導體晶片之管理者核心互相協調確認該微處理器上啟動核心之數量。
- 如申請專利範圍第1項之微處理器,其中各該半導體晶片之該管理者核心之微碼(microcode)係用以與該半導體晶片上之其他核心互相協調以確認該半導體晶片上之啟動核心的數量,並用以與其他半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 一種核心配置發現方法,用以確認一多核心微處理器之配置(configuration),該多核心微處理器具有多個半導體晶片,各該半導體晶片上具有多個處理核心,該方法包括:因應於該微處理器之一重置(reset)動作,各該半導體晶片之一管理者核心與該管理者核心所在之該半導體晶片上之各該其他處理核心互相協調以確認該半導體晶片上之啟動核心的數量;以及在確定該半導體晶片上之啟動核心的數量後,各該半導體晶片之管理者核心與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 如申請專利範圍第13項之方法,更包括:在該微處理器之操作過程中,運用該所確認之該微處理器上啟動核心之數量。
- 如申請專利範圍第14項之方法,其中在該微處理器之操作過程中運用該所確認之該微處理器上啟動核心之數量之步驟,包括因應於一使用者程式指令(user program instruction)對該微處理器之核心數量之要求(request),提供該所確認之該微處理器上啟動核心之數量作為一結果值。
- 如申請專利範圍第15項之方法,其中在該微處理器之操作過程中運用該所確認之該微處理器上啟動核心之數量之步驟,包括依據該所確認之該微處理器上啟動核心之數量進行該微處理器之電力管理。
- 如申請專利範圍第16項之方法,其中依據該所確認之該微處理器上啟動核心之數量進行該微處理器之電力管理之步驟,包括同步各該核心之電力狀態變化。
- 如申請專利範圍第16項之方法,其中依據該所確認之該微處理器上啟動核心之數量進行該微處理器之電力管理之步驟,包括管理一分享電壓源。
- 如申請專利範圍第16項之方法,其中依據該所確認之該微處理器上啟動核心之數量進行該微處理器之電力管理之步驟,包括管理一分享時鐘信號源(clock source)。
- 如申請專利範圍第13項之方法,其中透過與其所在之該半導體晶片上之各該其他處理核心互相協調以確認該半導體晶片上之啟動核心的數量之步驟,係透過判斷各該其他處理核心是否於一預設時間內回應該管理者核心所發出之一訊息,以判斷該其他處理核心是否已啟動。
- 如申請專利範圍第13項之方法,其中透過與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量之步驟包括:各該半導體晶片之該管理者核心傳送一訊息至其他各該半導體晶片之管理者核心,該訊息係指出該管理者核心所在之該半導體晶片之啟動核心之數量;以及各該半導體晶片之該管理者核心由其他各該半導體晶片之管理者核心接收一訊息,該訊息係指出該其他半導體晶片之啟動核心之數量。
- 如申請專利範圍第21項之方法,其中各該管理者核心與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量之步驟,係透過判斷各該其他管理者核心是否於一預設時間內回應該管理者核心所發出之一訊息,以判斷該其他管理者核心是否已啟動。
- 如申請專利範圍第13項之方法,其中各該半導體晶片具有多個核心間連線供該管理者核心與該半導體晶片上之其他核心互相協調以確認該半導體晶片上之啟動核心的數量,該多核心微處理器並具有多個晶片間連線供該管理者核心與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 如申請專利範圍第13項之方法,其中各該半導體晶片之該管理者核心之微碼(microcode)係用以與該半導體晶片上之其他核心互相協調以確認該半導體晶片上之啟動核心的數量,並用以與其他半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 一種計算機程式產品,編碼於至少一計算機可讀儲存媒體,與一計算裝置配合使用,該計算機程式產品包括:使用於該計算機可讀儲存媒體之電腦可讀程式碼,用以說明(specifying)一微處理器,該計算機可讀程式碼包括:用以特定複數個半導體晶片之程式碼,其中各該半導體晶片包括複數個處理核心,各該半導體晶片之該些處理核心之其中之一係指定為一管理者核心,各該管理者核心係用以:對應於該微處理器之一重置(reset)動作,與該管理者核心所在之該半導體晶片上之各該其他處理核心互相協調以確認該半導體晶片上之啟動核心的數量;以及在確定該半導體晶片上之啟動核心的數量後,與其他各該半導體晶片之管理者核心互相協調以確認該微處理器上啟動核心之數量。
- 如申請專利範圍第25項之計算機程式產品,其中,該至少一計算機可讀儲存媒體係選自碟片、磁帶、其他磁性、光學或電子儲存媒體、與網路、有線無線或其他傳輸媒體所構成之群體。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201061426470P | 2010-12-22 | 2010-12-22 | |
US13/299,207 US8930676B2 (en) | 2010-12-22 | 2011-11-17 | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201237609A TW201237609A (en) | 2012-09-16 |
TWI460581B true TWI460581B (zh) | 2014-11-11 |
Family
ID=46291855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100147949A TWI460581B (zh) | 2010-12-22 | 2011-12-22 | 多核心動態配置發現方法及其微處理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8930676B2 (zh) |
CN (1) | CN102520912B (zh) |
TW (1) | TWI460581B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
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 |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
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 |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US9391047B2 (en) | 2012-04-20 | 2016-07-12 | International Business Machines Corporation | 3-D stacked and aligned processors forming a logical processor with power modes controlled by respective set of configuration parameters |
US9569402B2 (en) | 2012-04-20 | 2017-02-14 | International Business Machines Corporation | 3-D stacked multiprocessor structure with vertically aligned identical layout operating processors in independent mode or in sharing mode running faster components |
FR2994001B1 (fr) * | 2012-07-30 | 2015-05-29 | Airbus Operations Sas | Procede de surveillance de l'execution coordonnee de taches sequencees par une carte electronique comportant au moins deux processeurs synchronises sur deux horloges differentes |
US9223715B2 (en) | 2013-08-21 | 2015-12-29 | Via Alliance Semiconductor Co., Ltd. | Microprocessor mechanism for decompression of cache correction data |
US20150054543A1 (en) * | 2013-08-21 | 2015-02-26 | Via Technologies, Inc. | Apparatus and method for rapid fuse bank access in a multi-core processor |
US9348690B2 (en) | 2013-08-21 | 2016-05-24 | Via Alliance Semiconductor Co., Ltd. | Correctable configuration data compression and decompression system |
US9575778B2 (en) * | 2014-05-20 | 2017-02-21 | Via Alliance Semiconductor Co., Ltd. | Dynamically configurable system based on cloud-collaborative experimentation |
US9395802B2 (en) | 2014-05-22 | 2016-07-19 | Via Alliance Semiconductor Co., Ltd. | Multi-core data array power gating restoral mechanism |
US9524241B2 (en) | 2014-05-22 | 2016-12-20 | Via Alliance Semiconductor Co., Ltd. | Multi-core microprocessor power gating cache restoral mechanism |
US9606933B2 (en) | 2014-05-22 | 2017-03-28 | Via Alliance Semiconductor Co., Ltd. | Multi-core apparatus and method for restoring data arrays following a power gating event |
US9665490B2 (en) | 2014-05-22 | 2017-05-30 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for repairing cache arrays in a multi-core microprocessor |
US9678808B2 (en) * | 2014-12-18 | 2017-06-13 | Intel Corporation | Method and apparatus for write-only inter-processor reset synchronization |
US9886193B2 (en) | 2015-05-15 | 2018-02-06 | International Business Machines Corporation | Architecture and implementation of cortical system, and fabricating an architecture using 3D wafer scale integration |
TWI576852B (zh) * | 2015-06-30 | 2017-04-01 | 宏碁股份有限公司 | 電子裝置及其固態硬碟的電源管理方法 |
CN105094283A (zh) * | 2015-07-23 | 2015-11-25 | 上海新储集成电路有限公司 | 一种超低功耗且高性能的微处理器及其运行方法 |
US10372493B2 (en) * | 2015-12-22 | 2019-08-06 | Intel Corporation | Thread and/or virtual machine scheduling for cores with diverse capabilities |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
CN108763011B (zh) * | 2018-03-27 | 2021-09-07 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | SoC芯片核数检测方法、装置、系统及存储介质 |
CN110716756B (zh) * | 2019-10-15 | 2023-03-14 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
US20210216377A1 (en) * | 2021-03-26 | 2021-07-15 | Intel Corporation | Methods and apparatus for power sharing between discrete processors |
WO2024049405A1 (en) * | 2022-08-29 | 2024-03-07 | Zeku, Inc. | Apparatus and method for two-dimensional scheduling of downlink layer 1 operations |
US20240232388A1 (en) * | 2023-01-08 | 2024-07-11 | Qualcomm Incorporated | Inline cryptographic engine for storage controllers |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583987A (en) * | 1994-06-29 | 1996-12-10 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for initializing a multiprocessor system while resetting defective CPU's detected during operation thereof |
US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
TWI256590B (en) * | 2003-08-19 | 2006-06-11 | Sun Microsystems Inc | Multi-core multi-thread processor, server comprising the processor, and method for determining when to switch threads in the processor |
TWI261165B (en) * | 2002-02-08 | 2006-09-01 | Via Tech Inc | Memory module storing therein boot codes and method and device for locating same |
WO2010054369A1 (en) * | 2008-11-10 | 2010-05-14 | Oxford William V | Method and system for controling code execution on a computing device using recursive security protocol |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 | 大日本印刷株式会社 | 情報記録方法 |
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 |
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 |
US7340553B2 (en) | 2003-03-12 | 2008-03-04 | Nxp B.V. | Data processing device and method for transferring data |
GB2409303B (en) | 2003-12-18 | 2006-10-18 | Advanced Risc Mach Ltd | Inter-processor communication mechanism |
US7734797B2 (en) | 2004-03-29 | 2010-06-08 | Marvell International Ltd. | Inter-processor communication link with manageability port |
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 |
KR101108397B1 (ko) | 2005-06-10 | 2012-01-30 | 엘지전자 주식회사 | 멀티-코어 프로세서의 전원 제어 장치 및 방법 |
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 |
JP4653841B2 (ja) | 2006-02-28 | 2011-03-16 | インテル・コーポレーション | 多数コアプロセッサの信頼性強化 |
EP2005691A4 (en) | 2006-03-28 | 2013-02-20 | Radisys Canada Inc | MULTIMEDIA PROCESSING IN PARALLEL MULTI-DATA DATA PROCESSING ARCHITECTURES |
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 |
JP4945224B2 (ja) | 2006-11-30 | 2012-06-06 | 株式会社東芝 | コントローラ、情報処理装置、および供給電圧制御方法 |
KR101209252B1 (ko) * | 2007-02-02 | 2012-12-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
EP2003534A3 (en) | 2007-06-11 | 2009-02-18 | MediaTek Inc. | Method of and apparatus for reducing power consumption within an integrated circuit. |
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 |
US7962771B2 (en) | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
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 |
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 |
US8112647B2 (en) | 2008-08-27 | 2012-02-07 | Globalfoundries Inc. | Protocol for power state determination and demotion |
US8103816B2 (en) | 2008-10-28 | 2012-01-24 | Intel Corporation | Technique for communicating interrupts in a computer system |
US8358651B1 (en) | 2009-09-21 | 2013-01-22 | Marvell International Ltd. | Switch device having a plurality of processing cores |
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 |
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 |
US8457920B2 (en) | 2010-05-28 | 2013-06-04 | International Business Machines Corporation | Performance improvement for a multi-chip system via kerf area interconnect |
US8914661B2 (en) | 2010-06-30 | 2014-12-16 | Via Technologies, Inc. | Multicore processor power credit management in which multiple processing cores use shared memory to communicate individual energy consumption |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
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 |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
-
2011
- 2011-11-17 US US13/299,207 patent/US8930676B2/en active Active
- 2011-12-22 TW TW100147949A patent/TWI460581B/zh active
- 2011-12-22 CN CN201110435143.1A patent/CN102520912B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583987A (en) * | 1994-06-29 | 1996-12-10 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for initializing a multiprocessor system while resetting defective CPU's detected during operation thereof |
US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
TWI261165B (en) * | 2002-02-08 | 2006-09-01 | Via Tech Inc | Memory module storing therein boot codes and method and device for locating same |
TWI256590B (en) * | 2003-08-19 | 2006-06-11 | Sun Microsystems Inc | Multi-core multi-thread processor, server comprising the processor, and method for determining when to switch threads in the processor |
WO2010054369A1 (en) * | 2008-11-10 | 2010-05-14 | Oxford William V | Method and system for controling code execution on a computing device using recursive security protocol |
Also Published As
Publication number | Publication date |
---|---|
US20120166763A1 (en) | 2012-06-28 |
CN102520912B (zh) | 2015-01-07 |
TW201237609A (en) | 2012-09-16 |
US8930676B2 (en) | 2015-01-06 |
CN102520912A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI460581B (zh) | 多核心動態配置發現方法及其微處理器 | |
US10061729B2 (en) | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller | |
KR102035258B1 (ko) | 구획된 다중-홉 네트워크를 갖는 다이-스택된 디바이스 | |
US9229730B2 (en) | Multi-chip initialization using a parallel firmware boot process | |
CN110809760B (zh) | 资源池的管理方法、装置、资源池控制单元和通信设备 | |
JP5315209B2 (ja) | 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用 | |
JP4095078B2 (ja) | 複数cpuを複数i/oデバイスに接続可能とする設定可能なpciエクスプレススイッチ | |
US20140040532A1 (en) | Stacked memory device with helper processor | |
CN104346317B (zh) | 共享资源访问方法和装置 | |
US10404800B2 (en) | Caching network fabric for high performance computing | |
US9280513B1 (en) | Matrix processor proxy systems and methods | |
US20200057679A1 (en) | Hyperscale server architecture | |
US10817455B1 (en) | Peripheral I/O device with assignable I/O and coherent domains | |
US8782302B2 (en) | Method and apparatus for routing transactions through partitions of a system-on-chip | |
TW201344449A (zh) | 多核心處理單元之進階可編程中斷控制器識別符(apic id)指定技術 | |
KR100978083B1 (ko) | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
US11620248B2 (en) | Optical bridge interconnect unit for adjacent processors | |
US12072756B2 (en) | Scalable machine check architecture | |
JP2011113516A (ja) | Lsiチップ積層システム | |
US20240004750A1 (en) | Remote scalable machine check architecture | |
US20230036751A1 (en) | Sparse memory handling in pooled memory | |
CN117667827A (zh) | 任务处理方法及异构计算系统 | |
CN118210634A (zh) | 服务器系统、服务器系统的资源调度方法、芯片及芯粒 | |
JPH04263354A (ja) | 分散処理計算機 |