現(xiàn)場(chǎng)錯(cuò)誤恢復(fù)的制作方法
【專利說明】
[0001] 相關(guān)申請(qǐng)的交叉引用
[0002] 本申請(qǐng)要求2012年12月28日提交的美國(guó)臨時(shí)專利申請(qǐng)序列號(hào)61/746, 972的優(yōu) 先權(quán)利益,其被考慮為本申請(qǐng)的部分,并通過對(duì)其全部的引用,被并入本申請(qǐng)的公開中。
技術(shù)領(lǐng)域
[0003] 本公開涉及計(jì)算系統(tǒng),且特別是(但不排他地)涉及鏈路錯(cuò)誤遏制 (containment)〇
【背景技術(shù)】
[0004] 在半導(dǎo)體處理和邏輯設(shè)計(jì)中的進(jìn)步允許可存在于集成電路設(shè)備上的邏輯的量的 增加。作為必然的結(jié)果,計(jì)算機(jī)系統(tǒng)配置從系統(tǒng)中的單個(gè)或多個(gè)集成電路發(fā)展到存在于單 獨(dú)集成電路上的多個(gè)核心、多個(gè)硬件線程、以及多個(gè)邏輯處理器,以及集成在這樣的處理器 中的其它接口。處理器或集成電路一般包括單個(gè)物理處理器管芯,其中處理器管芯可包括 任何數(shù)量的核心、硬件線程、邏輯處理器、接口、存儲(chǔ)器、控制器中心等。
[0005] 作為更強(qiáng)的能力來將更多的處理能力放進(jìn)較小封裝中的結(jié)果,較小的計(jì)算設(shè)備在 普及性上增加了。智能電話、平板計(jì)算機(jī)、超薄筆記本計(jì)算機(jī)、以及其它用戶設(shè)備指數(shù)地增 長(zhǎng)。然而,這些較小的設(shè)備依賴于服務(wù)器,用于數(shù)據(jù)存儲(chǔ)和超過形狀因子的復(fù)雜處理。因此, 在高性能計(jì)算市場(chǎng)(即服務(wù)器空間)中的要求也增加了。例如,在現(xiàn)代服務(wù)器中,一般不僅 存在具有多個(gè)核心的單個(gè)處理器,而且存在多個(gè)物理處理器(也被稱為多個(gè)插座)來增加 計(jì)算能力。但當(dāng)處理能力連同在計(jì)算系統(tǒng)中的設(shè)備的數(shù)量一起增長(zhǎng)時(shí),在插座和其它設(shè)備 之間的通信變得更重要。
[0006] 事實(shí)上,互連從主要處理的電通信的更傳統(tǒng)的多點(diǎn)分支總線增長(zhǎng)到便于快速通信 的充分發(fā)展的互連架構(gòu)。不幸的是,隨著對(duì)在甚至更高速率下消耗的未來處理器的要求,對(duì) 應(yīng)的要求針對(duì)于現(xiàn)有互連架構(gòu)的能力。
【附圖說明】
[0007] 圖1示出包括多核處理器的計(jì)算系統(tǒng)的方框圖的實(shí)施例。
[0008] 圖2示出包括互連架構(gòu)的計(jì)算系統(tǒng)的實(shí)施例。
[0009] 圖3示出包括分層堆棧的互連架構(gòu)的實(shí)施例。
[0010] 圖4示出在互連架構(gòu)內(nèi)產(chǎn)生或接收的請(qǐng)求或分組的實(shí)施例。
[0011] 圖5示出互連架構(gòu)的發(fā)射機(jī)和接收機(jī)對(duì)的實(shí)施例。
[0012] 圖6示出示例能力結(jié)構(gòu)的表示。
[0013] 圖7示出示例控制狀態(tài)寄存器的表示。
[0014] 圖8示出根據(jù)一個(gè)實(shí)施例的示例錯(cuò)誤邏輯的示意圖。
[0015] 圖9示出根據(jù)一個(gè)實(shí)施例的示例錯(cuò)誤邏輯的另一示意圖。
[0016]圖10示出示例進(jìn)入錯(cuò)誤恢復(fù)模式的流程圖。
[0017] 圖11示出示例進(jìn)入錯(cuò)誤恢復(fù)模式的另一流程圖。
[0018] 圖12示出包括多個(gè)處理器插座的計(jì)算系統(tǒng)的塊的實(shí)施例。
[0019] 圖13示出計(jì)算系統(tǒng)的方框圖的另一實(shí)施例。
【具體實(shí)施方式】
[0020] 在下面的描述中,闡述了很多特定的細(xì)節(jié),例如特定類型的處理器和系統(tǒng)配置、特 定的硬件機(jī)構(gòu)、特定的架構(gòu)和微架構(gòu)細(xì)節(jié)、特定的寄存器配置、特定的指令類型、特定的系 統(tǒng)部件、特定的測(cè)量/高度、特定的處理器流水線階段和操作等的示例,以便提供對(duì)本發(fā)明 的徹底理解。然而對(duì)本領(lǐng)域中的技術(shù)人員將明顯,這些特定細(xì)節(jié)不需要被采用以實(shí)施本發(fā) 明。在其它實(shí)例中,公知的部件或方法例如特定的和可選的處理器架構(gòu)、所述算法的特定的 邏輯電路/代碼、特定的固件代碼、特定的互連操作、特定的邏輯配置、特定的制造技術(shù)和 材料、特定的編譯器實(shí)現(xiàn)、以代碼形式的算法的特定的表達(dá)式、特定的斷電和選通技術(shù)/邏 輯和計(jì)算機(jī)系統(tǒng)的其它特定的操作細(xì)節(jié)沒有被詳細(xì)描述,以便避免不必要地使本發(fā)明難理 解。
[0021] 雖然關(guān)于在特定集成電路中(例如在計(jì)算平臺(tái)或微處理器中)的能量節(jié)約和能量 效率描述了下面的實(shí)施例,其它實(shí)施例可應(yīng)用于其它類型的集成電路和邏輯設(shè)備。本文描 述的實(shí)施例的類似技術(shù)和教導(dǎo)可應(yīng)用于:也可受益于更好的能量效率和能量節(jié)約的其它類 型的電路或半導(dǎo)體設(shè)備。例如,所公開的實(shí)施例不限于臺(tái)式計(jì)算機(jī)系統(tǒng)或Ultrabooks?。而 且也可在其它設(shè)備(例如手持設(shè)備、平板計(jì)算機(jī)、其它瘦筆記本計(jì)算機(jī)、片上系統(tǒng)(S0C)設(shè) 備、以及嵌入式應(yīng)用)中使用。手持設(shè)備的一些示例包括蜂窩電話、互聯(lián)網(wǎng)協(xié)議設(shè)備、數(shù)字 攝像機(jī)、個(gè)人數(shù)字助理(PDA)、以及手持PC。嵌入式應(yīng)用一般包括微控制器、數(shù)字信號(hào)處理 器(DSP)、片上系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)、或可 執(zhí)行下面教導(dǎo)的功能和操作的任何其它系統(tǒng)。而且,本文描述的裝置、方法、以及系統(tǒng)不限 于物理計(jì)算設(shè)備,還可以涉及對(duì)能量節(jié)約和效率的軟件優(yōu)化。如將在下面的描述中變得容 易明顯的,本文所述的方法、裝置、以及系統(tǒng)的實(shí)施例(不管是否關(guān)于硬件、固件、軟件、或 其組合)對(duì)與性能考慮因素平衡的"綠色技術(shù)"未來是極為重要的。
[0022] 當(dāng)計(jì)算系統(tǒng)進(jìn)步時(shí),其中的部件變得更復(fù)雜。作為結(jié)果,在部件之間耦合和通信的 互連架構(gòu)也在復(fù)雜性上增加,以確保為了最佳部件操作而滿足帶寬要求。此外,不同的市場(chǎng) 劃分要求互連架構(gòu)的不同方面適合市場(chǎng)的需要。例如,服務(wù)器需要更高的性能,而移動(dòng)生態(tài) 系統(tǒng)有時(shí)能夠?yàn)榱斯β使?jié)省而犧牲總性能。然而,大部分結(jié)構(gòu)的單一目的是提供具有最大 功率節(jié)省的最高可能的性能。下面討論多個(gè)互連,其將潛在地受益于本文描述的發(fā)明的方 面。
[0023] 參考圖1,描繪了包括多核心處理器的計(jì)算系統(tǒng)的方框圖的實(shí)施例。處理器100包 括任何處理器或處理設(shè)備,例如微處理器、嵌入式處理器、數(shù)字信號(hào)處理器0SP)、網(wǎng)絡(luò)處理 器、手持處理器、應(yīng)用處理器、協(xié)處理器、片上系統(tǒng)(S0C)、或執(zhí)行代碼的其它設(shè)備。處理器 100在一個(gè)實(shí)施例中包括至少兩個(gè)核心--核心101和102,其可包括非對(duì)稱核心或?qū)ΨQ核 心(所示實(shí)施例)。然而,處理器100可包括可以是對(duì)稱或非對(duì)稱的任何數(shù)量的處理元件。
[0024] 在一個(gè)實(shí)施例中,處理元件指支持軟件線程的硬件或邏輯。硬件處理元件的示例 包括:線程單元、線程槽、線程、處理單元、上下文、上下文單元、邏輯處理器、硬件線程、核 心、和/或能夠保持處理器的狀態(tài)(例如執(zhí)行狀態(tài)或架構(gòu)狀態(tài))的任何其它元件。換句話 說,處理元件在一個(gè)實(shí)施例中指能夠獨(dú)立地與代碼(例如軟件線程、操作系統(tǒng)、應(yīng)用、或其 它代碼)相關(guān)聯(lián)的任何硬件。物理處理器(或處理器插座)一般指集成電路,其可能包括 任何數(shù)量的其它處理元件,例如核心或硬件線程。
[0025] 核心常常指位于集成電路上的能夠維持獨(dú)立架構(gòu)狀態(tài)的邏輯,其中每一個(gè)獨(dú)立維 持的架構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相關(guān)聯(lián)。與核心相反,硬件線程一般指位于集成電 路上的能夠維持獨(dú)立架構(gòu)狀態(tài)的任何邏輯,其中獨(dú)立維持的架構(gòu)狀態(tài)共享對(duì)執(zhí)行資源的訪 問。如可看到的,當(dāng)某些資源被共享且其它資源專用于架構(gòu)狀態(tài)時(shí),在硬件線程和核心的術(shù) 語間的線重疊。然而核心和硬件線程常常被操作系統(tǒng)視為單獨(dú)的邏輯處理器,其中操作系 統(tǒng)能夠單獨(dú)地調(diào)度在每一個(gè)邏輯處理器上的操作。
[0026] 如圖1所示的物理處理器100包括兩個(gè)核心--核心101和102。在這里,核心 101和102被考慮為對(duì)稱核心,即具有相同的配置、功能單元、和/或邏輯的核心。在另一實(shí) 施例中,核心101包括亂序處理器核心,而核心102包括有序處理器核心。然而,核心101 和102可單獨(dú)地選自任何類型的核心,例如原生(native)核心、軟件管理的核心、適合于執(zhí) 行原生指令集架構(gòu)(ISA)的核心、適合于執(zhí)行轉(zhuǎn)換指令集架構(gòu)(ISA)的核心、共同設(shè)計(jì)的核 心、或其它已知的核心。在異構(gòu)核心環(huán)境(即非對(duì)稱核心)中,某種形式的轉(zhuǎn)換(例如二進(jìn) 制轉(zhuǎn)換)可用于調(diào)度或執(zhí)行在一個(gè)或兩個(gè)核心上的代碼。然而為了促進(jìn)討論,在核心101 中所示的功能單元在下面被更詳細(xì)地描述,因?yàn)樵诤诵?02中的單元在所描述的實(shí)施例中 以類似的方式操作。
[0027] 如所描繪的,核心101包括兩個(gè)硬件線程101a和101b,其也可以被稱為硬件線程 槽101a和101b。因此,軟件實(shí)體(例如操作系統(tǒng))在一個(gè)實(shí)施例中可能將處理器100視 為四個(gè)單獨(dú)的處理器,即能夠同時(shí)執(zhí)行四個(gè)軟件線程的四個(gè)邏輯處理器或處理元件。如上 面間接提到的,第一線程與架構(gòu)狀態(tài)寄存器l〇la相關(guān)聯(lián),第二線程與架構(gòu)狀態(tài)寄存器101b 相關(guān)聯(lián),第三線程與架構(gòu)狀態(tài)寄存器l〇2a相關(guān)聯(lián),且第四線程與架構(gòu)狀態(tài)寄存器102b相關(guān) 聯(lián)。在這里,每一個(gè)架構(gòu)狀態(tài)寄存器(l〇la、101b、102a、以及102b)可被稱為處理元件、線程 槽、或線程單元,如上所述。如所示,架構(gòu)狀態(tài)寄存器l〇la在架構(gòu)狀態(tài)寄存器101b中被復(fù) 制,所以能夠?yàn)檫壿嬏幚砥鱨〇la和邏輯處理器101b存儲(chǔ)單獨(dú)的架構(gòu)狀態(tài)/上下文。在核心 101中,也可為線程101a和101b復(fù)制其它較小的資源,例如在分配器和重命名器塊130中 的指令指針和重命名邏輯??赏ㄟ^分區(qū)來共享一些資源,例如在重排序器/引退單元135、 ILTB 120、裝入/存儲(chǔ)緩沖器、以及隊(duì)列中的重排序緩沖器。其它資源(例如通用內(nèi)部寄存 器、頁表基址寄存器、低級(jí)數(shù)據(jù)緩存和數(shù)據(jù)-TLB 115、執(zhí)行單元140、以及亂序單元135的部 分)可能被完全共享。
[0028] 處理器100常常包括其它資源,其可以被完全共享、通過分區(qū)來共享、或由處理元 件專用/專用于處理元件。在圖1中,示出了具有處理器的例證性邏輯單元/資源的純粹 示例性的處理器的實(shí)施例。注意,處理器可包括或省略這些功能單元中的任一個(gè),以及包括 未描繪的任何其它已知的功能單元、邏輯、或固件。如所示,核心101包括簡(jiǎn)化的、代表性亂 序(000)處理器核心。但在不同的實(shí)施例中可利用有序處理器。00