TWI751167B - 讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取 - Google Patents

讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取 Download PDF

Info

Publication number
TWI751167B
TWI751167B TW106117688A TW106117688A TWI751167B TW I751167 B TWI751167 B TW I751167B TW 106117688 A TW106117688 A TW 106117688A TW 106117688 A TW106117688 A TW 106117688A TW I751167 B TWI751167 B TW I751167B
Authority
TW
Taiwan
Prior art keywords
memory
data
instruction
read
defective
Prior art date
Application number
TW106117688A
Other languages
English (en)
Other versions
TW201810028A (zh
Inventor
雅秀克 拉許
朗 賈柏
希斯翰 莎菲
瑟吉烏 費堤
蒙漢 庫瑪
希爾卓斯 伊格佐
莎拉 加亞庫瑪
尼拉許 屋帕莎
Original Assignee
美商英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商英特爾股份有限公司 filed Critical 美商英特爾股份有限公司
Publication of TW201810028A publication Critical patent/TW201810028A/zh
Application granted granted Critical
Publication of TWI751167B publication Critical patent/TWI751167B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Retry When Errors Occur (AREA)
  • Advance Control (AREA)
  • Human Computer Interaction (AREA)
  • Executing Machine-Instructions (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

觀點之處理器包含解碼單元,用以解碼自記憶體指令之讀取。自記憶體指令之該讀取係用以指示來源記憶體運算元及目的地儲存位置。該處理器亦包含執行單元,其係與該解碼單元耦接。回應於自記憶體指令之該讀取,該執行單元係用以自該來源記憶體運算元讀取資料,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;以及當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。其他的處理器、方法、系統、及指令亦被揭示。

Description

讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取
在此所敘述的實施例大致有關處理器。特別地,在此所敘述之實施例大致有關以處理器自記憶體載入資料。
各種不同類型的電腦系統及/或其他的資料處理系統典型地包含至少一處理器及系統記憶體。該記憶體可被使用以儲存各種不同類型的軟體及相關聯的資料。
在操作期間,該處理器可執行指令,用以自該記憶體載入或其他讀取資料。一旦被載入,該資料可藉由該處理器而予以做算數、邏輯、或其他方面的處理。最後,所處理的資料可被儲存回到該記憶體。
100、300、500‧‧‧處理器
102、302、502‧‧‧自記憶體指令之讀取
104、304、640‧‧‧解碼單元
106、306、662‧‧‧執行單元
108、308、940‧‧‧記憶體
110、310‧‧‧來源記憶體運算元
112、116、312‧‧‧資料
113、313A‧‧‧第一箭頭
114‧‧‧目的地儲存位置
115、313B‧‧‧第二箭頭
118、318‧‧‧暫存器
120、320、340‧‧‧記憶體位址資訊
122、322‧‧‧有缺陷資料之指示
124、324‧‧‧選項指示
126、326‧‧‧處置器
128、328‧‧‧異常情形
230、460‧‧‧方法
231-238、461-465‧‧‧方塊
314‧‧‧目的地記憶體運算元
342‧‧‧資料量
570、690‧‧‧核心
572‧‧‧輔助邏輯
600‧‧‧處理器管線
602‧‧‧提取級
604‧‧‧長度解碼級
606‧‧‧解碼級
608‧‧‧分配級
610‧‧‧重命名級
612‧‧‧排程級
614‧‧‧暫存器/記憶體讀取級
616‧‧‧執行級
618‧‧‧寫回/記憶體寫入級
622‧‧‧異常處置級
624‧‧‧提交級
630‧‧‧前端單元
632‧‧‧分支預測單元
634‧‧‧指令快取單元
636‧‧‧指令轉譯後備緩衝器(TLB)
638‧‧‧指令提取單元
650‧‧‧執行引擎單元
660‧‧‧執行叢集
664‧‧‧記憶體存取單元
670‧‧‧記憶體單元
672‧‧‧資料TLB單元
674‧‧‧資料快取單元
676‧‧‧層次2(L2)快取單元
700‧‧‧指令解碼器
702‧‧‧晶粒上互連網路
708‧‧‧純量單元
710‧‧‧向量單元
720‧‧‧拌合單元
722A-B‧‧‧數值轉換單元
724‧‧‧複製單元
726‧‧‧寫入掩碼暫存器
810‧‧‧系統代理單元
808‧‧‧特殊目的邏輯
920‧‧‧控制器集線器
945、1038‧‧‧共處理器
950‧‧‧輸入/輸出集線器
960、1114‧‧‧輸入/輸出裝置
990‧‧‧圖形記憶體控制器集線器
1000‧‧‧微處理器系統
1018‧‧‧匯流排橋接器
1027‧‧‧通訊裝置
1028‧‧‧儲存裝置
1030‧‧‧指令/代碼及資料
1039‧‧‧高性能介面
1072、1082‧‧‧I/O控制邏輯
1078、1088‧‧‧P-P介面電路
1090‧‧‧晶片組
1115‧‧‧傳統I/O裝置
1232‧‧‧直接記憶體存取單元
1240‧‧‧顯示器單元
1302‧‧‧高階語言
1304‧‧‧x86編譯器
1306‧‧‧x86二進制代碼
1308‧‧‧替代的指令集編譯器
1312‧‧‧指令轉換器
本發明可藉由參考用以描繪實施例之以下的說明及附 圖,而予以最佳地瞭解。在圖式中:第1圖係處理器之實施例的方塊圖,該處理器可操作以執行自記憶體指令之讀取的實施例;第2圖係執行自記憶體指令之讀取的實施例之方法的實施例之方塊流程圖;第3圖係處理器之實施例的方塊圖,該處理器可操作以執行自記憶體指令之讀取的實施例;第4圖係處置缺陷資料之方法的實施例之方塊流程圖,該方法適合於自記憶體指令之讀取的實施例;第5圖係適用於實施例之具有核心及一組或多組輔助邏輯之處理器的實例實施例之方塊圖;第6A圖係描繪有序管線之實施例及暫存器重命名無序發出/執行管線之實施例的方塊圖;第6B圖係包含耦接至執行引擎單元之前端單元的處理器核心,且執行引擎單元及前端單元二者被耦接到記憶體單元之實施例的方塊圖;第7A圖係單一處理器核心之實施例的方塊圖,而伴隨有其對晶粒上互連網路之連接,且伴隨有其層次2(L2)快取之局部子集;第7B圖係第7A圖之處理器核心的部分擴展視圖之實施例的方塊圖;第8圖係處理器之實施例的方塊圖,該處理器可具有超過一個的核心,可具有整合的記憶體控制器,且可具有整合的圖形; 第9圖係電腦架構之第一實施例的方塊圖;第10圖係電腦架構之第二實施例的方塊圖;第11圖係電腦架構之第三實施例的方塊圖;第12圖係電腦架構之第四實施例的方塊圖;以及第13圖係依據本發明實施例之軟體指令轉換器之使用的方塊圖,用以轉換來源指令集中的二進制指令成為目標指令集中的二進制指令。
【發明內容】及【實施方式】
在此所揭示的是,自記憶體指令之讀取的實施例,用以執行該等指令之處理器的實施例,當執行該等指令時藉由該等處理器而被執行之方法的實施例,結合用以執行該等指令之一或多個處理器之系統的實施例,以及提供該等指令之程式或機器可讀取媒體的實施例。在一些實施例中,處理器可具有用以接收及/或解碼自記憶體指令之讀取的解碼單元或其他邏輯,以及用以執行自記憶體指令之該讀取的執行單元或其他邏輯。在以下說明中,將闡述許許多特定的細節(例如,特定的指令操作、資料格式、處理器組態、微架構之細節、操作之序列、等等)。惟,實施例可無需該等特定之細節而被實踐。在其他情況中,熟知的電路、結構、及技術並未被詳細顯示,用以避免混淆該說明之瞭解。
一挑戰在於,無論是在記憶體中,還是當被讀取至處理器,或在處理器之內時,或者當被儲存回到記憶體時, 資料有時會變得有缺陷。例如,資料會損壞、有缺陷、有故障、錯誤、或有其他方面的缺陷。做為一特定實例,當由於任何原因而有其中資料係與相關聯的一組同位檢查資料(parity data)不一致之資料同位誤差時,該資料會有缺陷。做為另一特定實例,當由於任何原因而有其中資料具有相關聯之糾錯碼資料無法校正的錯誤之糾錯碼(ECC)錯誤時,該資料會有缺陷。做為又另一特定實例,當諸如例如,由於宇宙輻射或一些其他原因,而有記憶體的一或多個記憶體單元中及/或處理器的一或多個儲存裝置內之一或多個位元的無意轉換時,該資料會有缺陷。做為再另一特定實例,當由於任何原因,毒害偵測指示符係與資料相關聯時(例如,藉由處理器的邏輯、其他的系統硬體組件、等等),該資料會有缺陷。該等僅係有缺陷的資料之可能原因的幾個說明性實例。
通常,該有缺陷的資料不應被使用於進一步的處理或計算。因此,當執行各種不同類型的讀取自記憶體指令之讀取的任一者時,該有缺陷的資料之偵測將廣泛地升高或導致機器檢查異常(MCE),或類似之嚴重的異常或錯誤。有缺陷的資料係諸如例如,未校正之有缺陷的資料之該MCE的一個可能原因,其可在處理器偵測硬體錯誤或問題時由該處理器所產生。MCE一般表示嚴重的異常或錯誤,諸如例如,中止類異常、致命異常、致命錯誤、或其類似者。某些類型的MCE在某些情勢之下可係可恢復或可校正的,例如,對於某些類型的錯誤且若處理器具有用以執行 該恢復或校正之架構性支援時。例如,此可係用於熟知為未校正可恢復(UCR)錯誤的架構性錯誤之類的情況,其中系統軟體可嘗試恢復其。該等錯誤可表示已被偵測出,但並未損壞處理器情況之未校正的錯誤。對於某些該等類型的錯誤,一旦系統軟體已執行某一恢復動作,則可用以在處理器上繼續執行。機器檢查處置器可使用有關該錯誤之資訊(例如,在MSR或別處中)以試圖校正問題。惟,其他類型的MCE可能係不可恢復或不可校正的。在其中MCE無法被恢復或校正的情況中,在正常操作能再繼續之前,可能需要重新啟動處理器及/或系統。
用於至少一些該等MCE或其他該等嚴重異常或錯誤之重新啟動處理器及/或系統的需要,通常會趨於降低性能。此外,在一些實施例中,如下文進一步所描述地,系統記憶體可被使用於區塊儲存模式中及/或使用於區塊式樣運用,類似於在儲存器市場中所傳統使用的該等者。當與使用於區塊裝置之習知的區塊式樣語意學相較時,使用系統位址空間以定址區塊儲存區域可趨於提供效率及增進的性能。然而,區塊模式可包含不同的錯誤處置,其係與當錯誤發生在系統位址空間之中的錯誤處置不同。例如,在區塊操作期間所遭遇的錯誤可在狀態暫存器中報告,且區塊驅動器可處置透過該狀態暫存器所報告的錯誤。在此所敘述的實施例可協助用以允許區塊區域被定址在系統位址空間之中,且可允許處理器指示錯誤於區塊區域中,無需採取機器檢查異常或其類似者,而該機器檢查異常或其 類似者將廣泛地發生在以習知區塊式樣語意學定址該等區塊區域時。用以處置該等MCE或其他嚴重異常或錯誤而不需要重新啟動處理器及/或系統的替代方法,可係有用且有利的。
第1圖係處理器100之實施例的方塊圖,該處理器可操作以執行自記憶體指令之讀取102的實施例。在圖中,記憶體108係與處理器耦接,雖然其他實施例屬於單獨的處理器而無記憶體(例如,在部署於具有記憶體的系統之前的處理器)。該記憶體可包含一或多個類型之一或多個記憶體裝置(例如,動態隨機存取記憶體(DRAM)、快閃記憶體、硬碟、雙行記憶體模組(DIMM)、及其類似者、以及其各式各樣的組合)。
在一些實施例中,該處理器可係通用型處理器(例如,使用於桌上型、膝上型、或其他的電腦中之類型的通用型微處理器或中央處理單元(CPU))。選擇性地,該處理器可係特殊目的處理器。合適的特殊目的處理器之實例包含網路處理器、通訊處理器、加密處理器、圖形處理器、共處理器、嵌入式處理器、數位信號處理器(DSP)、及控制器(例如,微控制器),但不受限於此。該處理器可具有各種複雜指令集計算(CISC)架構、精簡指令集計算(RISC)架構、超長指令字(VLIW)架構、混合架構、其他類型架構的任一者,或具有不同架構的組合(例如,不同的核心可具有不同的架構)。在一些實施例中,該處理器可包含被設置在至少一積體電路或半導體晶粒上。在一些實施例 中,該處理器可包含至少一些硬體(例如,電晶體、電容器、二極體、電路、儲存微代碼之非揮發性記憶體、或其類似物)。
在操作期間,處理器100可接收自記憶體指令之讀取102。在種種觀點中,該指令可被接收自處理器外及/或晶粒外的來源(例如,接收自晶粒外記憶體或匯流排或其他的互連),或接收自處理器上及/或晶粒上的來源(例如,接收自指令快取、指令隊列、或晶粒上記憶體)。自記憶體指令之讀取可表示巨指令、機器代碼指令、或其他指令或處理器之指令集的控制信號。
在一些實施例中,自記憶體指令之讀取可明確地指明(例如,透過一或多個欄或一組位元),或以另外方式指示(例如,隱含地指示)記憶體108中的來源記憶體運算元110。可在不同的實施例中以不同的方式指示該來源記憶體運算元。在一些實施例中,該指令可識別指標或其他的記憶體位址資訊120,用以識別(潛在地以根據定址模式之其他資訊)來源記憶體運算元。如所顯示地,該記憶體位址資訊可被選項地儲存在處理器的一組暫存器118中(例如,純量暫存器、通用型暫存器、等等)。例如,該指令可明確地指明(例如,透過一或多個欄或一組位元),或以另外方式指示(例如,隱含地指示),用以儲存該記憶體位址資訊之該組暫存器中的來源暫存器。做為一實例,該指令可具有來源運算元規格欄,用以明確地指明該來源暫存器。選擇性地,該來源暫存器可被選項地隱含於指令中 (例如,隱含於指令的運算碼之中)。例如,處理器可隱含地或本質地瞭解到,當它辨識出此指令時(例如,當它解碼該運算碼時),要在此隱含的來源暫存器中查看,而無需具有用以明確指明該來源暫存器之任何非運算碼位元的指令。根據特殊之定址模式,為了要定址該來源記憶體運算元,記憶體位址資訊120可被選項地與其他的記憶體位址資訊結合。此額外的記憶體位址資訊可在另一暫存器(例如,資料區段暫存器、延伸區段暫存器、或其他的記憶體位址暫存器)中,在指令的編碼中,或在別處。做為實例,在分段定址之情況中,程式可具有多重獨立之熟知為區段的位址空間。位元組位址可被指明為來自區段暫存器之位址資訊,與來自通用型暫存器之進一步位址資訊(例如,位元組位址)的組合(例如,區段暫存器:位元組位址)。例如,位址DS:FF79H可被使用以定址由DS區段暫存器所指出的區段中之位址FF79H處的位元組。
該等暫存器118可各自地表示晶粒上(或積體電路上)儲存位置,其係可操作地儲存資料。該等暫存器可表示軟體及/或程式設計師可看見之架構可見的或架構性暫存器,及/或可係由處理器之指令集的指令所指示之暫存器,用以識別運算元。該等架構性暫存器係與給定之微架構中的其他非架構性暫存器(例如,臨時暫存器、重排序緩衝器、報廢暫存器、等等)成對照。該等暫存器可在不同的微架構中以不同的方式實施,且並未受限於任何特殊類型的設計。合適類型之暫存器的實例包含專用實體暫存 器、使用暫存器重命名之動態分配實體暫存器、及其組合,但不受限於此。
在一些實施例中,自記憶體指令之讀取亦可明確地指明(例如,透過一或多個欄或一組位元),或以另外方式指示(例如,隱含地指示)目的地儲存位置114。如所顯示地,在一些實施例中,該目的地儲存位置可選項地為在記憶體中的另一位置。在該等實施例中,如上述之用於來源記憶體運算元之該等者的相同方法係適用以識別目的地記憶體運算元。選擇性地,該目的地儲存位置可選項地係處理器之一或多個暫存器(例如,一或多個通用型暫存器、一或多個緊縮資料暫存器、等等)、或另一儲存位置。該等暫存器或其他的儲存位置可被指明或隱含。
請再參閱第1圖,處理器包含解碼單元或解碼器104。解碼單元可接收及解碼自記憶體指令之讀取。解碼單元可輸出一或多個相對較低層次的指令或控制信號(例如,一或多個微指令、微操作、微代碼登錄點、解碼的指令或控制信號、等等),其反映、顯示、及/或衍生自相對較高層次的讀取自記憶體指令之讀取。在一些實施例中,該解碼單元可包含用以接收自記憶體指令之讀取的一或多個輸入結構(例如,埠、互連、介面),與該處耦接之用以辨識及解碼自記憶體指令之讀取的指令辨識及解碼邏輯,以及與該處耦接之用以輸出較低層次的指令或控制信號的一或多個輸出結構(例如,埠、互連、介面)。該解碼單元可使用各種不同的機制而被實施,包含微代碼唯讀記憶體 (ROM)、查找表、硬體實施、可編程邏輯陣列(PLA)、及適合以實施解碼單元的其他機制,但不受限於此。在一些實施例中,該解碼單元可被包含在晶粒上(例如,具有執行單元106的晶粒上)。在一些實施例中,該解碼單元可包含至少一些硬體(例如,電晶體、積體電路、或晶粒上韌體、等等)。
在一些實施例中,取代被直接提供至解碼單元的自記憶體指令之讀取,可選項地使用指令仿真器、轉譯器、變形器、解譯器、或其他的指令轉換模組。各種類型的指令轉換模組可以以軟體、硬體、韌體、或其組合實施。在一些實施例中,指令轉換模組可位在處理器之外部,諸如例如,在分離的晶粒上及/或在記憶體中(例如,做為靜態、動態、或執行時仿真模組)。做為實例,該指令轉換模組可接收讀取自記憶體指令之讀取,其可係第一指令集,以及可仿真、轉譯、變形、解譯、或轉換自記憶體指令之讀取成為一或多個對應的中間指令或控制信號,其可係第二不同的指令集。第二指令集之該一或多個中間指令或控制信號可被提供至解碼單元(例如,解碼單元104),其可將它們解碼成為可由處理器的本機硬體(例如,一或多個執行單元)執行之一或多個較低層次的指令或控制信號。
請再參閱第1圖,執行單元106係與解碼單元104及暫存器118耦接。在一些實施例中,該執行單元可在晶粒或積體電路上(例如,與該解碼單元一起)。該執行單元可接收一或多個解碼的或以其他方式轉換的指令或控制信號, 其表示及/或衍生自記憶體指令之讀取。在部署及使用期間,該執行單元亦可操作以與記憶體及/或來源記憶體運算元耦接。在一些實施例中,該執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取(例如,回應於解碼自該指令之一或多個指令或控制信號及/或回應於被解碼之該指令及/或回應於被提供至解碼器之該指令)而操作,用以自來源記憶體運算元110讀取資料112。此係大致地顯示在第一箭頭113處。如果在資料並沒有缺陷的情況時,則執行單元可進一步操作以將資料116儲存至目的地儲存位置114。此係大致地顯示在第二箭頭115處。
然而,在一些情況中,資料可能有缺陷。例如,資料可能以上述種種不同的方式有缺陷。在一些實施例中,處理器可具有邏輯及/或機制及/或在其他方面可操作,用以偵測或識別該有缺陷的資料。例如,在一些實施例中,執行單元及/或處理器可操作及/或可具有邏輯,用以檢查、觀測、或存取資料有缺陷的選項指示124(例如,其可選項地係微架構,雖然此並非必需的)。此指示的一合適實例係毒害指示(例如,具有被瞭解為毒害指示之特殊值的一或多個位元),其係邏輯地綑綁於資料或與該資料相關聯。例如,該毒害指示可被提供做為讀取回應事務的一部分。該等指示的其他合適實例係來自快取、暫存器檔案、或指示同位誤差、糾錯碼錯誤、或藉由處理器之各種不同可能類型的缺陷資料偵測邏輯之任一者的缺陷資料之其他該等指示的其他之晶粒上儲存位置或邏輯的信號。
在一些實施例中,當資料有缺陷時,執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取而操作,用以將有缺陷資料之指示122儲存於架構可見的儲存位置中。如所顯示地,在一些實施例中,該架構可見的儲存位置可選項地係處理器之暫存器組118的暫存器。例如,可使用通用型暫存器、純量暫存器、或其類似者。做為實例,當資料有缺陷時,由處理器及/或軟體所瞭解之用以指示有缺陷之資料的給定值(例如,負1之值當作可能的實例),可被儲存於此一暫存器中,以及當資料沒有缺陷時,可將任何其他不同的值儲存於該暫存器中。選擇性地,該架構可見的儲存位置可係一或多個條件碼位元,諸如例如,一或多個旗標、在旗標暫存器中之位元、狀態位元、在狀態暫存器中之位元、或其他的條件碼位元。做為實例,給定的條件碼位元可具有第一值(例如,依據一個可能的慣例而被設定為二進制1),用以指示資料有缺陷,或可具有第二不同值(例如,清除為二進制0),用以指示資料沒有缺陷。習知地,當資料有缺陷時,將典型地導致異常情形。例如,自記憶體之讀取可被包含在具有已存在於指令集中較久之一或多個其他的自記憶體指令之讀取的指令集之中,當讀取有缺陷之資料時,其將導致(例如,無條件地導致)異常情形。
在一些實施例中,當資料有缺陷時,執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取而進一步操作,用以完成自記憶體指令之該讀取的執行,而 不會提高、觸發、或以其他方式導致異常、機器檢查異常、中止、其他致命的或至少嚴重的異常或錯誤、或其他的異常情形128。此將以穿過異常情形128之“X”而被顯示於圖中,其將以其他方式信令或警示處置器126。例如,在一些實施例中,自記憶體之讀取可被報廢或以其他方式提交,而不會導致該異常情形128。在一些實施例中,自記憶體指令之讀取可無需致使對MCE處置器、異常處置器、另一嚴重異常或錯誤處置器、操作系統處置器、或其他的該處置器126之轉移而完成。更確切地,在一些實施例中,自記憶體指令之讀取可取代地儲存有缺陷資料之指示122於架構可見的儲存位置中,且然後,報廢或以其他方式提交。在一些實施例中,甚至此可係當資料係在其中,在引進自記憶體指令之讀取前,指令集架構已導致無法恢復之MCE的方式中,有缺陷時之情況。
有利的是,自記憶體指令之讀取可操作用以,藉由將有缺陷資料之指示儲存於架構可見的儲存位置中來致使執行單元及/或處理器信令有缺陷之資料,而不會導致嚴重的異常或錯誤。不受限制地,至少在一些情況中及/或在某些情形下,此可允許處理器及/或軟體觀測有缺陷資料之指示122,以及嘗試置換及/或修復有缺陷之資料,而不會導致異常情形。例如,在資料之另一無缺陷拷貝存在的情況中,諸如例如,可係以根據資料冗餘之RAID(獨立磁碟的冗餘陣列)及/或其他技術的種種形式之情況,特權系統軟體能觀測有缺陷資料之指示122,且能以無缺陷資料 之資料的另一冗餘拷貝來置換有缺陷之資料。在其他情況中,處理器之邏輯及/或軟體可潛在地能夠修復有缺陷之資料(例如,藉由應用附加的糾錯措施或其類似者)。此可協助用以避免至少某些該等異常情形及/或處理器及/或系統的至少一些重新啟動。
執行單元及/或處理器可包含特定或特殊的邏輯(例如,電晶體、積體電路、或與韌體(例如,儲存在非揮發性記憶體中之指令)及/或軟體潛在地結合的其他硬體),其可操作以執行讀取自記憶體指令之讀取。如在此所使用地,“執行單元”之術語並不意指且不受限於執行所有上述可能的操作之單一分離的單元。更確切地,該等操作可藉由單獨的邏輯,或藉由被分佈在記憶體子系統內之兩個或更多個單元或組件(例如,記憶體單元、記憶體存取單元)中的分佈式邏輯,而予以潛在地執行。做為一實例,執行單元可包含組合式載入/儲存執行單元,用以自來源載入資料且將其儲存至目的地。做為另一實例,執行單元可包含載入單元,用以自來源載入資料,及單獨的儲存單元,用以將該資料儲存至目的地,以及可能地,其他的組件/單元。為了簡單起見,並符合執行單元之術語的常見用法以引用實際執行或履行指令之組件,在此將該邏輯稱作執行單元。在此亦可被說明的是,記憶體子系統及/或記憶體單元及/或記憶體存取單元及/或處理器的記憶體存取邏輯及/或處理器的記憶體介面單元或邏輯,可操作以執行如在此所揭示的自記憶體指令之讀取。
為了避免使說明模糊,已顯示且描述相對簡單的處理器100。惟,該處理器可選項地包含其他的處理器組件。例如,各種不同的實施例可包含用於第6至8圖之任一圖所顯示及描繪的組件之各種不同的組合及組態。處理器的所有組件可被耦接在一起,用以允許它們如所預期地操作。考慮第6B圖做為實例,指令快取6可快取指令,指令提取單元638可提取指令,解碼單元640可解碼指令,排程器單元656可排程相關聯的操作,執行單元662可執行指令,報廢單元654可報廢指令,等等。
第2圖係執行自記憶體指令之讀取的實施例之方法230的實施例之方塊流程圖。在各種實施例中,該方法可藉由處理器、指令處理設備、數位邏輯裝置、或積體電路,而被執行。在一些實施例中,方法230可藉由及/或以第1圖之處理器100及/或使用第1圖之指令102,而予以執行。在本文所敘述之用於處理器100及/或指令102的該等組件、特性、及特定的選項細節,亦可選項地應用到方法230。選擇性地,方法230可藉由及/或在類似或不同的處理器或設備內及/或使用類似或不同的指令,而被執行。此外,處理器100可執行與方法230相同、相似、或不同的方法。
方法230包含接收自記憶體指令之讀取,在方塊231。在各種觀點中,該指令可在處理器或其一部分(例如,指令提取單元、解碼單元、匯流排介面單元、等等)處被接收。在各種觀點中,指令可被接收自處理器外及/或晶粒外的來源(例如,接收自記憶體、互連、等等),或接收自 處理器上及/或晶粒上的來源(例如,接收自指令快取、指令隊列、等等)。在一些實施例中,自記憶體指令之讀取可指明(例如,明確地指明),或以另外方式指示(例如,隱含地指示)來源記憶體運算元及目的地儲存位置。
在方塊232,回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取,資料可自來源記憶體運算元載入或以其他方式讀取。在一些情況中,讀取之資料可能有缺陷。在其他情況中,讀取之資料可能沒有缺陷。
在方塊233,可決定所讀取自來源記憶體運算元之資料是否有缺陷。做為實例,此可包含對於資料有缺陷之指示的檢查。在前所敘述之類型的指示係適合的(例如,毒害指示、同位誤差指示、糾錯碼(ECC)錯誤指示、等等)。
若在方塊233的決定係資料沒有缺陷時(亦即,該決定為“否”),則方法可前進到方塊234。在方塊234,可將所讀取之資料儲存至目的地儲存位置。然後,該方法可前進到選項方塊235。
在選項方塊235處,在一些實施例中,可選項地決定是否有更多的資料,雖然此並非必需的。此決定可存在用於某些類型的自記憶體指令之讀取(例如,重複記憶體移動或拷貝指令、收集指令、自記憶體順序地讀取不同部分之資料的指令、及其類似指令),且可不存在或可被完全省略於其他類型的自記憶體指令之讀取(例如,將資料從記憶體讀取至單一暫存器內的指令、一次僅讀取一件資料且然後結束的指令、等等)。若在方塊235的選項決定係有 更多的資料將被讀取時(亦即,該決定為“是”),則方法可回到方塊232,而在該處可讀取額外的資料。然後,可針對有缺陷之資料而再次在方塊233處檢查該額外的資料,並依此類推。
選擇性地,若在方塊235的決定係沒有更多的資料將被讀取時(亦即,該決定為“否”),則方法可前進到選項方塊236。在方塊235被選項地省略的情況中(例如,用於如上文所討論之某些類型的自記憶體指令之讀取),方法亦可從方塊234直接前進到選項方塊236。在選項方塊236,一旦所有資料已被讀取自記憶體,且被儲存至目的地儲存位置,以及在方塊233處並沒有資料被決定為有缺陷之資料的情況中,在一些實施例中,可將沒有缺陷資料之指示選項地儲存在架構可見的儲存位置中。在一些實施例中,該架構可見的儲存位置可係暫存器(例如,通用型暫存器)。在其他實施例中,該架構可見的儲存位置可係一或多個條件碼位元。然後,可完成及報廢或以其他方式提交自記憶體指令之該讀取。
請再參閱方塊233,若取代地,在方塊233的決定係資料有缺陷時(亦即,該決定為“是”),則方法可自方塊233前進到方塊237。在方塊237,在一些實施例中,可將缺陷資料之指示儲存在架構可見的儲存位置中。此可如在前所述地來完成。在一些實施例中,該架構可見的儲存位置可係暫存器(例如,通用型暫存器)。在其他實施例中,該架構可見的儲存位置可係一或多個條件碼位元。然後,方法可 前進到方塊238。
在方塊238,可完成自記憶體指令之讀取的執行,而不會導致異常情形,即使在某些資料被決定為有缺陷之後。在一些實施例中,可不強制轉移到處置器。更確切地,可允許完成及選項地報廢或以其他方式提交自記憶體指令之該讀取,且然後,可執行自記憶體指令之該讀取後的下一個指令(例如,下一個循序的指令)。
處理器及/或特權系統軟體可選項地/潛在地存取在方塊237所儲存之有缺陷資料之指示,並嘗試修復該有缺陷的資料以致使其不再有缺陷,且/或嘗試以沒有缺陷之資料(例如,該資料之無缺陷的拷貝)置換該有缺陷的資料,但不受限於此。
由方塊232到方塊238所示之各種不同子集的操作可回應於自記憶體指令之讀取,及/或由於自記憶體指令之讀取,而根據資料是否有缺陷,自記憶體指令之讀取的特殊類型(例如,是否順序地讀取多重資料部分、等等),來加以執行。做為實例,自記憶體指令之讀取的第一情況可僅執行方塊231、232、233、237、及238。做為另一實例,自記憶體指令之讀取的第二情況可僅執行方塊231、232、233、234、235、及236。仍其他的情況可在最後執行方塊237及238或方塊236之前,透過方塊232、233、及234而再訪及迴圈一或多次。
第3圖係處理器300之實施例的方塊圖,該處理器可操作以執行自記憶體指令之讀取302的實施例。處理器300可 以與第1圖的處理器100相同、相似、或不同。該處理器包含可操作以解碼自記憶體指令之讀取302的解碼單元304,可操作以執行或履行自記憶體指令之該讀取的執行單元306,及可操作以儲存與自記憶體指令之該讀取相關聯的運算元320、340、342、322的暫存器318。選項地,該等組件可以與第1圖之對應命名的組件相同或相似(例如,具有與之相同或相似的任一個或更多個特徵)。為了避免使說明模糊,將主要描述第3圖之不同的及/或額外的特徵,而不重複可以與用於第1圖所描述之該等者選項地相同或相似的所有特徵。
在操作期間,處理器300可接收自記憶體指令之讀取302。在種種觀點中,該指令可被接收自處理器外及/或晶粒外的來源,或接收自處理器上及/或晶粒上的來源。自記憶體指令之讀取可表示巨指令、機器代碼指令、或其他指令或處理器之指令集的控制信號。在一些實施例中,自記憶體指令之讀取可係自記憶體之讀取及對記憶體指令之儲存。例如,該指令可係記憶體拷貝指令,用以自記憶體中之一位置拷貝資料至另一位置,或記憶體移動指令,用以自記憶體中之一位置移動資料至另一位置。
在一些實施例中,自記憶體指令之讀取可明確地指明(例如,透過一或多個欄或一組位元),或以另外方式指示(例如,隱含地指示)記憶體308中的來源記憶體運算元310(例如,起始位置)、記憶體中的目的地記憶體運算元314(例如,起始位置)之各者。做為實例,該指令可指示 來源及目的地運算元之最低定址部分的起始點。該來源及目的地運算元亦可被視為及簡稱作指令的來源及目的地。來源及目的地記憶體運算元可以以在前所敘述之用於第1圖的來源記憶體運算元之種種不同方式指示。例如,如所顯示地,用以定址來源記憶體運算元310之起始的記憶體位址資訊320,及用以定址目的地記憶體運算元314之起始的記憶體位址資訊340,可被各自選項地儲存在處理器之一組暫存器318(例如,通用型暫存器)的不同暫存器中。
在一些實施例中,自記憶體指令之讀取可明確地指明(例如,透過一或多個欄或一組位元),或以另外方式指示(例如,隱含地指示),將從來源記憶體運算元310被拷貝到、被移動到、或以其他方式儲存到目的地記憶體運算元314的資料量342。可在不同實施例中以不同方式表示將被拷貝的資料量。做為實例,在不同實施例中,該資料量可被表示為將被拷貝之位元、位元組、字、雙字、四字、或資料元件的數目,或被表示為在位元、位元組、字、雙字、四字、或資料元件中之來源運算元的長度,或被表示為將被拷貝之字符串的尺寸,或被表示為來源或目的地運算元之結束或最高定址部分的位址、指標、偏移量、或其他指示。如所顯示地,在一些實施例中,該指令可指明或以另外方式指示用以儲存該資料量342之該組暫存器318中的暫存器。選擇性地,可將該資料量儲存在記憶體位置或其他的儲存位置。如又另一選項地,可選項地指明或指示將被拷貝的資料量於指令本身的欄或其他部分中(例如, 在立即欄中)。
請再參閱第3圖,該處理器包含解碼單元或解碼器304。解碼單元可操作以解碼自記憶體指令之讀取302。執行單元306係與解碼單元304及暫存器318耦接。在一些實施例中,該執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取(例如,回應於解碼自該指令之一或多個指令或控制信號及/或回應於被解碼之該指令及/或回應於被提供至解碼器之該指令)而操作,用以自來源記憶體運算元310之順序的或連續的資料儲存位置,循序地載入、讀取、或以其他方式接收不同之分離部分的資料312A、312B。例如,第一資料部分312A可如第一箭頭313A所示地被讀取,且然後,第二資料部分312B可如第二箭頭313B所示地被讀取,並依此類推。該執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取而進一步操作,用以個別地及/或循序地拷貝、移動、寫入、或以其他方式儲存資料部分316A、316B至目的地記憶體運算元314之順序的及/或連續的資料儲存位置。例如,第一資料部分316A可如第一箭頭315A所示地被儲存,且然後,第二資料部分316B可如第二箭頭315B所示地被儲存,並依此類推。可將該等資料部分不經修正地儲存回來,或可預先對資料進行修正。該等部分可在不同的實施例中具有不同的資料尺寸粒度,諸如例如,位元組、字、雙字、或四字尺寸。該個別的及/或個別順序的讀取及儲存操作可被重複多次、潛在地重複多次,直至整個資 料量(例如,如將被拷貝之資料量342所指示地)已從來源記憶體運算元被轉移到目的地記憶體運算元為止。在一觀點中,儘管本發明不受限於此,該指令可選項地具有重複前綴。
在前一段中所敘述的該等操作可在所讀取或所儲存之資料沒有缺陷的情況中被執行。然而,在一些實施例中,某些資料可潛在地有缺陷。例如,資料可能以上述種種不同的方式而有缺陷。在一些實施例中,執行單元及/或處理器可具有邏輯及/或機制及/或在其他方面可操作,用以決定資料何時有缺陷。例如,在一些實施例中,執行單元及/或處理器可操作及/或可具有邏輯,用以檢查、觀測、或存取資料有缺陷的選項指示324(例如,可能地係微架構之指示,雖然此並非必需的)。此指示的一合適實例係毒害指示(例如,具有被瞭解為毒害指示之特殊值的一或多個位元),其係邏輯地綑綁於資料或與該資料相關聯。例如,該毒害指示可被提供做為讀取回應事務的一部分。該等指示的其他合適實例係來自快取、暫存器檔案、或指示同位誤差、糾錯碼錯誤、或藉由處理器之各種不同可能類型的缺陷資料偵測邏輯之任一者的缺陷資料之其他該等指示的其他之晶粒上儲存位置或邏輯的信號。
在一些實施例中,當資料有缺陷時,執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取而操作,用以將有缺陷資料之指示322儲存於架構可見的儲存位置中。如所顯示地,在一些實施例中,該架構可見的 儲存位置可選項地係處理器之暫存器組318的暫存器。做為實例,當資料有缺陷時,由處理器及/或軟體所瞭解之用以指示有缺陷之資料的給定值(例如,負1之值當作可能的實例),可被儲存於此一暫存器中,以及當資料沒有缺陷時,可將任何其他不同的值儲存於該暫存器中。選擇性地,該架構可見的儲存位置可係一或多個條件碼位元,諸如例如,一或多個旗標、在旗標暫存器中之位元、狀態位元、在狀態暫存器中之位元、或其他的條件碼位元。做為實例,給定的條件碼位元可具有第一值(例如,依據可能的慣例而被設定為二進制壹),用以指示資料有缺陷,或可具有第二不同值(例如,清除為二進制零),用以指示資料沒有缺陷。
在一些實施例中,當資料有缺陷時,執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取而操作,用以完成自記憶體指令之該讀取的執行,而不會提高、觸發、或以其他方式導致異常、機器檢查異常、中止、其他致命的或至少嚴重的異常或錯誤、或其他的異常情形328。此將以穿過異常情形328之“X”而被顯示於圖中,其將以其他方式信令或警示處置器326。例如,在一些實施例中,自記憶體之讀取可被報廢或以其他方式提交,而不會導致該異常情形。在一些實施例中,自記憶體指令之讀取可無需致使對MCE處置器、異常處置器、另一嚴重異常或錯誤處置器、操作系統處置器、或其他的該處置器326之轉移而完成。更確切地,在一些實施例中,自 記憶體指令之讀取可取代地儲存有缺陷資料之指示322於架構可見的儲存位置中,且然後,報廢或以其他方式提交。在一些實施例中,甚至此可係當資料係在其中,在引進自記憶體指令之讀取前,指令集架構已導致無法恢復之MCE的方式中,有缺陷時之情況。
在一些實施例中,該執行單元可回應於自記憶體指令之讀取及/或由於自記憶體指令之讀取,而在整個資料量342轉移完成之前進一步操作,用以儲存更新的資料量(例如,重寫資料量342)。在一些實施例中,軟體可使用此更新的資料量以協助識別有缺陷之資料的精確位置。而且,若自記憶體指令之讀取被重新啟動或再繼續而在停止處再次開始時,此更新的資料量可能可以被使用。
在一些實施例中,可以以不同的方式使用電腦系統或其他電子裝置之系統記憶體的不同部分。例如,可具有其中記憶體的一部分可以以不同方式使用之不同模式。例如,在一模式中,記憶體的一部分可被使用以擴充系統記憶體,其中一般使用於主要記憶體的DRAM或其他記憶體係與第四層次快取大致相似地使用。在另一模式中,該部分之記憶體可被使用做為持久記憶體,用以保留內容,即使當電力有故障時。該持久記憶體可代表本機的非揮發性記憶體,或電池支援的揮發性記憶體,或其組合。在又另一模式中,該部分之記憶體可被使用做為諸如在儲存器市場中所傳統使用的區塊儲存記憶體。
習知地,區塊儲存記憶體區一般係不能從系統位址空 間定址的。取代地,區塊區可藉由區塊驅動器或其類似物而被管理。惟,在一些實施例中,如在此所揭示的自記憶體指令之讀取可操作用以在系統位址空間內的區塊儲存記憶體中,定址區塊儲存記憶體位置(例如,指令集的指令可定址之系統的實體記憶體)。此可係真的,即使當處理器係諸如通用型中央處理單元(CPU)的通用型處理器時。此可允許軟體定址區塊區做為系統位址空間。如與一般使用於區塊裝置的習知區塊樣式語義相比之下,使用該系統位址空間可協助增進效率及/或性能。
在一些實施例中,從與非區塊儲存記憶體位置(例如,DRAM或其他主要的儲存)不同的區塊儲存記憶體位置來處置或處理有缺陷之資料,可係有用或有利的。第4圖係處置有缺陷資料之方法460的實施例之方塊流程圖,該方法適合於自記憶體指令之讀取的實施例。在各種實施例中,該方法可藉由處理器、指令處理設備、數位邏輯裝置、或積體電路,而被執行。在一些實施例中,方法460可藉由及/或以第1圖之處理器100及/或在第1圖之指令102的履行期間,被執行。在一些實施例中,方法460可藉由及/或以第3圖之處理器300及/或在第3圖之指令302的履行期間,被執行。在本文所敘述之用於處理器100及/或處理器300,及用於指令102及/或指令302的該等組件、特性、及特定的選項細節,亦可選項地應用到方法460。選擇性地,方法460可藉由及/或在類似或不同的處理器或設備內及/或在類似或不同之指令的履行期間,被執行。此外, 處理器100及/或300可執行與方法460相同、相似、或不同的方法。
方法460表示在已進行資料有缺陷之決定461後的自記憶體指令之讀取的操作之一部分。例如,此決定可如上文連同第2圖之方塊233所敘述地予以進行。
該方法可自此決定461前進到方塊462。在方塊462,在一些實施例中,可進行有缺陷之資料是否讀取自區塊儲存記憶體位置的決定。做為實例,執行單元及/或處理器可操作以藉由查驗被使用以指示區塊儲存記憶體之範圍的一或多個模型特定暫存器(MSR),而決定獲得資料之記憶體位置是否對應於被使用於區塊儲存之該等範圍的其中一者,用以進行此決定。做為另一實例,該執行單元可操作以藉由查驗可指示獲得資料的記憶體位置是否對應於區塊儲存之與資料之讀取相關聯的讀取回應(例如,其擴充的回應碼),而進行此決定。
若在方塊462的決定是,有缺陷之資料係讀取自區塊儲存記憶體位置時(亦即,該決定為“是”),則方法可前進到在方塊463。在方塊463,在一些實施例中,可將有缺陷資料之指示儲存在架構可見的儲存位置中。然後,在方塊464,可完成自記憶體指令之讀取的執行而不會導致異常情形,即使在某些資料被決定為有缺陷之後。在一些實施例中,可不強制轉移到處置器。更確切地,可允許完成及選項地報廢或以其他方式提交自記憶體指令之該讀取。在一些實施例中,在方塊463及464的操作可如前文所述地被 執行(例如,與第1圖及/或第3圖結合)。處理器及/或特權系統軟體可選項地/潛在地存取在方塊463所儲存之有缺陷資料之指示,並嘗試修復該有缺陷的資料以致使其不再有缺陷,且/或嘗試以沒有缺陷之資料(例如,該資料之無缺陷的拷貝)置換該有缺陷的資料,但不受限於此。至少在一些情況中,此可協助以避免重新啟動處理器及/或系統的需要。
選擇性地,若在方塊462的決定是,有缺陷之資料並非讀取自區塊儲存記憶體位置時(亦即,該決定係“否”),則方法可前進到在方塊465。在方塊465,在一些實施例中,自記憶體指令之讀取可能觸發、提高、或以其他方式導致異常情形。在一些實施例中,該異常情形可係機器檢查異常,或其他的嚴重、致命、或中止類異常或錯誤。在一些實施例中,此可強制轉移到在前所敘述類型的任一者之處置器(例如,機器檢查異常處置器)。然後,可允許完成、及選項地報廢或以其他方式提交自記憶體指令之該讀取。
由方塊461到465所示之各種不同子集的操作可回應於自記憶體指令之讀取,及/或由於自記憶體指令之讀取,而根據有缺陷之資料是否係讀取自區塊儲存記憶體位置,來加以執行。做為實例,自記憶體指令之讀取的第一情況可僅執行方塊461、462、及465。做為另一實例,自記憶體指令之讀取的第二情況可僅執行方塊461、462、463、及464。
有利地,此方法可允許處理器自主地決定是否會導致異常以及是否要強制轉移到處置器,或取代地,根據及/或依據讀取有缺陷資料之記憶體區的類型,而儲存該有缺陷資料之指示於架構儲存位置中(例如,且允許處理器及/或軟體嘗試校正該有缺陷之資料)。特別地,此可允許從將被處置的區塊儲存記憶體位置來處置資料,而不同於從常規記憶體位置(例如,DRAM及其他的主要儲存)來處置資料。
第5圖係適用於實施例之具有核心570及一組或多組輔助邏輯572之處理器500的實例實施例之方塊圖。在所描繪的實例中,具有第一輔助邏輯572-1,選項地有第二輔助邏輯572-2,及選項地有其他者。在一些實施例中,自記憶體指令之讀取502可被提供至核心570。例如,自記憶體指令之該讀取可表示為被使用以讀取多重的、或在一些情況中之潛在許多的、循序的資料部分之讀取(例如,第3圖之指令302)。在一些實施例中,取代執行自記憶體指令之整個讀取的核心,核心可取代地至少分配自記憶體指令574之第一讀取至輔助邏輯之該等組的至少一組。例如,在一些實施例中,核心可使將被轉移到兩個或更多個非重疊部分之內的資料量分開,且分配該等個別之部分至兩組或更多組的輔助邏輯。合適之輔助邏輯的實例包含輔助核心、加速器、卸載引擎、及其類似物,但不受限於此。然後,輔助邏輯可執行自記憶體操作之讀取,而可幫助從核心卸載此任務。此可協助以允許該核心執行其他任務。而 且,兩組或更多組的輔助邏輯能並聯地或同時地執行轉移,而可幫助改善性能。在一些情況中,此亦可幫助降低功率。例如,核心可具有比輔助邏輯的組之各者更高的功率消耗(例如,輔助邏輯可具有較低功率消耗的邏輯或特性,可係代替無序的有序,等等)。
代表性的核心架構、處理器、及電腦架構
處理器核心可以以不同的方式實施,為了不同之目的而實施,及實施於不同的處理器中。例如,該等核心的實施可包含:1)打算用於通用型計算的通用型有序核心;2)打算用於通用型計算的高性能通用型無序核心;3)主要打算用於圖形及/或科學(輸貫量)計算的特殊目的核心。不同處理器的實施可包含:1)包括打算用於通用型計算的一或多個通用型有序核心及/或打算用於通用型計算的一或多個通用型無序核心之CPU;以及2)包括主要打算用於圖形及/或科學(輸貫量)的一或多個特殊目的核心之共處理器。該等不同的處理器導致不同的電腦系統架構,其可包含:1)在與CPU分離之晶片上的共處理器;2)在與CPU相同封裝中之分離晶粒上的共處理器;3)在與CPU相同之晶粒上的共處理器(在此情況中,該共處理器有時候被稱作特殊目的邏輯,諸如整合之圖形及/或科學(輸貫量)邏輯,或被稱作特殊目的核心);以及4)晶片上的系統,其可包含在上述CPU(有時候被稱作應用核心或應用處理器)、上述共處理器、及附加功能的相同晶粒上。其次,將描述代表性 的核心架構,而代表性的處理器及電腦架構之說明則緊隨在後。
代表性的核心架構
有序及無序核心方塊圖
第6A圖係描繪依據本發明實施例之代表性有序管線及代表性暫存器重命名無序發出/執行管線二者的方塊圖。第6B圖係描繪依據本發明實施例之包含在處理器中之有序架構核心的代表性實施例及代表性暫存器重命名無序發出/執行架構核心二者的方塊圖。在第6A至6B圖中的實線框描繪有序管線及有序核心,而選項添加的虛線框則描繪暫存器重命名無序發出/執行管線及核心。鑒於有序觀點係無序觀點的子集,將描述無序觀點。
在第6A圖中,處理器管線600包含提取級602、長度解碼級604、解碼級606、分配級608、重命名級610、排程(亦熟知為調度或發出)級612、暫存器讀取/記憶體讀取級614、執行級616、寫回/記憶體寫入級618、異常處置級622、及提交級624。
第6B圖顯示包含耦接至執行引擎單元650之前端單元630的處理器核心690,且該執行引擎單元及前端單元二者被耦接到記憶體單元670。核心690可係精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、超長指令字(VLIW)核心、或混合或替代核心類型。做為又另一選項,核心690可係特殊目的之核心,諸如例如,網路或通 訊核心、壓縮引擎、共處理器核心、通用型計算圖形處理單元(GPGPU)核心、圖形核心、或其類似者。
前端單元630包含分支預測單元632,其耦接至指令快取單元634,其係耦接至指令轉譯後備緩衝器(TLB)636,其係耦接至指令提取單元638,其係耦接至解碼單元640。解碼單元640(或解碼器)可解碼指令,並產生一或多個微操作、微代碼登錄點、微指令、其他的指令、或其他的控制信號,做為輸出,其係解碼自、或以另外方式反應、或係衍生自原始指令。解碼單元640可使用各種不同的機制而被實施。合適之機制的實例包含查找表、硬體實施、可編程邏輯陣列(PLA)、微代碼唯讀記憶體(ROM)、等等,但不受限於此。在一些實施例中,核心690包含微代碼ROM或其他的媒體(例如,在解碼單元640中或以其他方式在前端單元630內),其儲存用於某些微指令的微代碼。解碼單元640係耦接至執行引擎單元650之中的重命名/分配器單元652。
執行引擎單元650包含重命名/分配器單元652,其係耦接至報廢單元654及一組一或多個排程器單元656。排程器單元656代表任何數目之不同的排程器,包含保留站、中央指令窗口、等等。排程器單元656係耦接至實體暫存器檔案單元658。該等實體暫存器檔案單元658各自表示一或多個實體暫存器檔案,其不同者儲存一或多個不同的資料類型(諸如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)、狀態(例如,將被執行的下一 個指令之位址的指令指標)、等等。在一些實施例中,實體暫存器檔案單元658包含向量暫存器單元、寫入掩碼暫存器單元、及純量暫存器單元。該等暫存器單元可提供架構向量暫存器、向量掩碼暫存器、及通用型暫存器。實體暫存器檔案單元658係由報廢單元654所重疊,用以描繪其中暫存器重命名及無序執行可被實施的各種方式(例如,使用紀錄器緩衝器及報廢暫存器檔案;使用未來檔案、歷史緩衝器、及報廢暫存器檔案;使用暫存器圖及暫存器池;等等)。報廢單元654及實體暫存器檔案單元658係耦接至執行叢集660。執行叢集660包含一組一或多個執行單元662及一組一或多個記憶體存取單元664。執行單元662可執行各種操作(例如,移位、加法、減法、乘法),且可在各種類型的資料上執行(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)。雖然一些實施例可包含專用於特定功能或功能之組的許多執行單元,但其他實施例可包含僅一個執行單元或多重執行單元,其全部執行所有的功能。排程器單元656、實體暫存器檔案單元658、及執行叢集660係顯示為可能複數個,因為某些實施例建立分離的管線以供某些類型的資料/操作之用(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線、及/或記憶體存取管線,其各自具有其自己的排程器單元、實體暫存器檔案單元、及/或執行叢集-且在分離之記憶體存取管線的情況中,某些實施例被實施,其中僅此管線的執行叢集具有記憶體存取單元664)。亦應瞭 解的是,在使用分離管線的情況中,該等管線的一或多者可係無序發出/執行的,以及其餘者可係有序的。
記憶體存取單元664之組係耦接至記憶體單元670,其包含資料TLB單元672,其係耦接至資料快取單元674,其係耦接至層次2(L2)快取單元676。在一代表性實施例中,記憶體存取單元664可包含載入單元、儲存位址單元、及儲存資料單元,其各係耦接至記憶體單元670中的資料TLB單元672。指令快取單元634係進一步耦接至記憶體單元670中的層次2(L2)快取單元676。L2快取單元676係耦接至一或多個其他層次的快取,且最終地到主記憶體。
做為實例,代表性暫存器重命名無序發出/執行核心架構可如下地實施管線600:1)指令提取638執行提取及長度解碼級602及604;2)解碼單元640執行解碼級606;3)重命名/分配器單元652執行分配級608及重命名級610;4)排程器單元656執行排程級612;5)實體暫存器檔案單元658及記憶體單元670執行暫存器讀取/記憶體讀取級614;執行叢集660執行執行級616;6)記憶體單元670及實體暫存器檔案單元658執行寫回/記憶體寫入級618;7)各種單元可被涉及在異常處置級622之中;及8)報廢單元654及實體暫存器檔案單元658執行提交級624。
核心690可支援一或多個指令集(例如,x86指令集(具備已添加有較新版本的一些擴充);MIPS Technologies of Sunnyvale,CA的MIPS指令集;ARM Holdings of Sunnyvale,CA的ARM指令集(具備諸如NEON之選項添加 的擴充)),包含在本文所敘述的指令。在一實施例中,核心690包含用以支援緊縮資料指令集擴充(例如,AVX1、AVX2)的邏輯,而藉以允許由許多的多媒體應用所使用之操作來使用緊縮資料而被執行。
應瞭解的是,該核心可支援多線程(執行兩個或更多個並行的操作集或線程集),且可以以各種方式進行,包含時間切割多線程、同時多線程(其中單一實體核心提供邏輯核心,以供該實體核心正在同時多線程之該等線程的各者之用)、或其組合(例如,諸如在Intel®超線程技術中之時間切割提取及解碼以及其後的同時多線程)。
雖然暫存器重命名係描述於無序執行的情況中,但應瞭解的是,暫存器重命名可在有序架構中被使用。雖然處理器之所描繪的實施例亦包含分離的指令及資料快取單元634/674以及共享的L2快取單元676,但替代的實施例可具有用於指令及資料二者的單一內部快取,諸如例如,層次1(L1)內部快取、或多重層次的內部快取。在一些實施例中,系統可包含內部快取及外部快取的組合,該外部快取係在核心及/或處理器的外部。選擇性地,所有的快取可在核心及/或處理器的外部。
特定之代表性有序核心架構
第7A至7B圖描繪更特定之代表性有序核心架構的方塊圖,其核心將係晶片中之若干邏輯區塊的其中一者(包含相同類型及/或不同類型的其他核心)。該等邏輯區塊根 據應用,而透過高頻互連網路(例如,環狀網路)來與一些固定功能邏輯、記憶體I/O介面、及其他必要的I/O邏輯通訊。
第7A圖係依據本發明實施例之單一處理器核心的方塊圖,而伴隨有其對晶粒上互連網路702之連接,且伴隨有其層次2(L2)快取之局部子集704。在一實施例中,指令解碼器700以緊縮資料指令集擴充來支援x86指令集。L1快取706允許對快取記憶體的低潛時存取至純量及向量單元內。雖然在一實施例中(為簡化設計),純量單元708及向量單元710使用個別的暫存器組(分別地,純量暫存器712及向量暫存器714),以及在它們之間所轉移的資料被寫入至記憶體且然後,從層次1(L1)快取706中讀回,但本發明之替代實施例可使用不同的方法(例如,使用單一暫存器組或包含通訊路徑而允許資料在兩個暫存器檔案之間被轉移,無需被寫入及讀回)。
L2快取之局部子集704係全域L2快取的一部分,該全域L2快取被劃分成為個別的局部子集,每個處理器核心一個。各處理器核心具有對其自己的L2快取之局部子集704的直接存取路徑。由處理器核心所讀取的資料係儲存在其L2快取子集704中,且可被快速地存取,而與存取它們自己的局部L2快取子集之其他處理器核心並行。由處理器核心所寫入的資料係儲存在其L2快取子集704中,且視需要地從其他的子集刷新。環狀網路確保共享資料的一致性。該環狀網路係雙向的,用以允許諸如處理器核心、L2快 取、及其他邏輯區塊的代理者在晶片內彼此互相通訊。各個環狀資料路徑係每個方向1012個位元寬。
第7B圖係依據本發明實施例之在第7A圖中的處理器核心之部分擴展視圖。第7B圖包含L1快取706的L1資料快取706A部分,以及更詳細地有關向量單元710及向量暫存器714。特別地,向量單元710係16倍寬向量處理單元(VPU)(請參閱16倍寬ALU 728),其執行一或多個整數、單精度浮點、及雙精度浮點指令。該VPU支援以拌合單元720拌合暫存器輸入,以數值轉換單元722A-B的數值轉換,及在記憶體輸入上之以複製單元724的複製。寫入掩碼暫存器726允許斷定結果向量寫入。
具有整合的記憶體控制器及圖形之處理器
第8圖係依據本發明實施例之處理器800的方塊圖,該處理器可具有超過一個的核心,可具有整合的記憶體控制器,且可具有整合的圖形。在第8圖中的實線框描繪具有單一核心802A、系統代理810、一組一或多個匯流排控制器單元816的處理器800,而選項添加的虛線框則描繪具有多重核心802A-N、在系統代理810中之一組一或多個整合的記憶體控制器單元814、及特殊目的邏輯808的替代處理器800。
因此,處理器800之不同的實施可包含:1)具有為整合的圖形及/或科學(輸貫量)邏輯之特殊目的邏輯808(其可包含一或多個核心),以及為一或多個通用型核心之核心 802A-N(例如,通用型有序核心、通用型無序核心、該兩者之組合)的CPU;2)具有為大量特殊目的核心而主要打算用於圖形及/或科學(輸貫量)之核心802A-N的共處理器;及3)具有為大量通用型有序核心之核心802A-N的共處理器。因而,處理器800可係通用型處理器、共處理器、或特殊目的處理器,諸如例如,網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(通用型圖形處理單元)、高輸貫量許多整合核心(MIC)共處理器(包含30個或更多個核心)、嵌入式處理器、或其類似物。該處理器可被實施在一或多個晶片上。處理器800可係一或多個基板的一部分及/或可被實施在一或多個基板上,而使用許多處理技術的任一者,諸如例如,BiCMOS、CMOS、或NMOS。
記憶體階層包含核心內之一或多個層次的快取、一組或一或多個共享快取單元806,及耦接到該組整合之記憶體控制器單元814的外部記憶體(未顯示)。該組共享快取單元806可包含諸如層次2(L2)、層次3(L3)、層次4(L4)、或其他層次快取的一或多個中間層次快取、最後層次快取(LLC)、及/或其組合。雖然在一實施例中,環狀為基之互連單元812使整合的圖形邏輯808、該組共享快取單元806、及系統代理單元810/整合記憶體控制器單元814互連,但替代實施例可使用任何數量之熟知的技術以用於互連該等單元。在一實施例中,一致性係維持在一或多個快取單元806與核心802A-N之間。
在一些實施例中,該一或多個核心802A-N具備多線 程的能力。系統代理810包含可協調及操作核心802A-N的該等組件。系統代理單元810可包含例如,功率控制單元(PCU)及顯示器單元。該PCU可係或可包含用以調整核心802A-N及整合圖形邏輯808之功率狀態所需的邏輯及組件。該顯示器單元係用以驅動一或多個外部連接的顯示器。
就架構指令集而言,核心802A-N可係同質或異質的;也就是說,兩個或更多個核心802A-N能執行相同的指令集;而其他者僅能執行該指令集的子集或不同的指令集。
代表性電腦架構
第9至12圖係代表性電腦架構的方塊圖。在本項技藝中所已知之用於膝上型電腦、桌上型電腦、手持式PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視頻遊戲裝置、機上盒、微控制器、手機、可攜帶式媒體播放器、手持式裝置、及各種其他電子裝置的其他系統設計及組態亦係合適的。一般而言,能結合如本文所揭示的處理器及/或其他執行邏輯之種類繁多的系統或電子裝置通常係合適的。
現請參閱第9圖,所顯示的係依據本發明一實施例之系統900的方塊圖。系統900可包含一或多個處理器910、915,其係耦接至控制器集線器920。在一實施例中,控制 器集線器920包含圖形記憶體控制器集線器(GMCH)990及輸入/輸出集線器(IOH)950(其可在分離的晶片上);GMCH 990包含記憶體及圖形控制器,其係耦接至記憶體940及共處理器945;IOH 950係耦接輸入/輸出(I/O)裝置960至GMCH 990。選擇性地,記憶體及圖形控制器的其中一者或二者係整合在處理器內(如在本文所敘述地);記憶體940及共處理器945係直接耦接至處理器910,以及控制器集線器920係在具有IOH 950的單一晶片中。
附加之處理器915的選項性質係以斷線表示於第9圖中。各處理器910、915可包含一或多個在此所敘述之處理核心,且可係處理器800的某一版本。
記憶體940可係例如,動態隨機存取記憶體(DRAM)、相變記憶體(PCM)、或該二者的組合。用於至少一實施例,控制器集線器920經由諸如前端匯流排(FSB)、諸如快速路徑互連(QPI)之點對點介面、或類似之連接995的多點匯流排,而與處理器910、915通訊。
在一實施例中,共處理器945係特殊目的處理器,諸如例如,高輸貫量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或其類似物。在一實施例中,控制器集線器920可包含整合的圖形加速器。
在包含架構、微架構、熱、功率消耗的特徵、及其類似者之品質指標譜的方面,在該等實體資源910、915之間可能存在各種差異。
在一實施例中,處理器910執行可控制一般類型之資料處理操作的指令。嵌入在指令之內的可係共處理器指令。處理器910辨識該等共處理器指令做為應藉由附接之共處理器945而予以執行的類型。因而,處理器910在共處理器匯流排,或其他互連上發出該等共處理器指令(或表示共處理器指令的控制信號)到共處理器945。共處理器945接受及執行所接收之共處理器指令。
現請參閱第10圖,所顯示的係依據本發明實施例之第一更特定的代表性系統1000之方塊圖。如第10圖中所示,微處理器系統1000係點對點互連系統,且包含經由點對點互連1050而被耦接的第一處理器1070及第二處理器1080。處理器1070及1080可各自係處理器800的某一版本。在本發明之一實施例中,處理器1070及1080分別係處理器910及915,而共處理器1038係共處理器945。在另一實施例中,處理器1070及1080分別係處理器910及共處理器945。
處理器1070及1080係顯示分別包含整合的記憶體控制器(IMC)單元1072及1082。處理器1070亦包含點對點(P-P)介面1076及1078做為其匯流排控制器單元的一部分;同樣地,第二處理器1080包含P-P介面1086及1088。處理器1070、1080可使用P-P介面電路1078、1088,而經由點對點(P-P)介面1050來交換資訊。如第10圖中所示,IMC 1072及1082耦接該等處理器至個別的記憶體,亦即,記憶體1032及記憶體1034,其可係局部附著至個別處理器之主記憶體的一部分。
處理器1070及1080各可使用點對點介面電路1076、1094、1086、1098,而經由個別的P-P介面1052、1054來與晶片組1090交換資訊。晶片組1090可選項地經由高性能介面1039而與共處理器1038交換資訊。在一實施例中,共處理器1038係特殊目的處理器,諸如例如,高輸貫量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或其類似物。
共享快取(未顯示)可被包含在各處理器中或在該兩個處理器的外部,還可經由P-P互連而與該等處理器連接,使得若處理器被置於低功率模式時,可將各處理器或該兩個處理器的局部快取資訊儲存在該共享快取中。
晶片組1090可經由介面1096而被耦接到第一匯流排1016。在一實施例中,雖然本發明之範疇並未受限於此,但第一匯流排1016可係週邊組件互連(PCI)匯流排,或諸如PCI快捷匯流排或另一個第三代I/O互連匯流排的匯流排。
如第10圖中所示,各種I/O裝置1014可被耦接至第一匯流排1016,而伴隨有耦接第一匯流排1016至第二匯流排1020的匯流排橋接器1018。在一實施例中,諸如共處理器、高輸貫量MIC處理器、GPGPU的、加速器(諸如例如,圖形加速器或數位信號處理(DSP)單元)、可場編程閘陣列、或任何其他處理器的一或多個附加之處理器,係耦接到第一匯流排1016。在一實施例中,第二匯流排1020可係低接腳數(LPC)匯流排。在一實施例中,各式各樣的裝 置可被耦接至第二匯流排1020,包含例如,鍵盤及/或滑鼠1022、通訊裝置1027、以及諸如可包含指令/代碼及資料1030之磁碟驅動器或其他大容量儲存裝置的儲存單元1028。進一步地,音頻I/O 1024可被耦接至第二匯流排1020。應注意的是,其他架構係可能的。例如,取代第10圖之點對點架構,系統可實施多點匯流排或其他的此類架構。
現請參閱第11圖,所顯示的係依據本發明實施例之第二更特定的代表性系統1100之方塊圖。在第10及11圖中之相同元件具有相同的參考符號,且為了要避免模糊第11圖的其他觀點,已從第11圖省略第10圖之某些觀點。
第11圖描繪的是,處理器1070、1080可分別包含整合的記憶體及I/O控制邏輯(“CL”)1072及1082。因此,CL 1072、1082包含整合的記憶體控制器單元,且包含I/O控制邏輯。第11圖不僅描繪耦接至CL 1072、1082的記憶體1032、1034,而且描繪I/O裝置1114亦被耦接至控制邏輯1072、1082。傳統I/O裝置1115係耦接至晶片組1090。
現請參閱第12圖,所顯示的係依據本發明實施例之SoC 1200的方塊圖。與在第8圖中相同的元件具有相同的參考符號。而且,虛線框係更先進SoC上的選項特徵。在第12圖中,互連單元1202係耦接至:包含一組一或多個核心202A-N及共享快取單元806的應用處理器1210;系統代理單元810;匯流排控制器單元816;整合的記憶體控制器單元814;包含整合的圖形邏輯、影像處理器、音頻處理 器、及視頻處理器的一組或一或多個共處理器1220;靜態隨機存取記憶體(SRAM)單元1230;直接記憶體存取(DMA)單元1232;及用以耦接到一或多個外部顯示器的顯示器單元1240。在一些實施例中,共處理器1220包含特殊目的處理器,諸如例如,網路或通訊處理器、壓縮引擎、GPGPU、高輸貫量MIC處理器、嵌入式處理器、或其類似物。
在此所揭示之機制的實施例可以以硬體、軟體、韌體、或該等實施方法的組合實施。本發明之實施例可被實施為可在可編程系統上執行的電腦程式或程式代碼,該可編程系統包含至少一處理器、儲存系統(包含揮發性及非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置。
諸如在第10圖中所描繪之代碼1030的程式代碼可被應用到輸入指令,用以執行在此所敘述之功能並產生輸出資訊。該輸出資訊可以以已知方式應用至一或多個輸出裝置。為此應用之緣故,處理系統包含具有諸如例如,數位信號處理器(DSP)、微控制器、應用特定積體電路(ASIC)、或微處理器之處理器的任意系統。
該程式代碼可以以高階程序或物件導向的編程語言實施,用於與處理系統通訊。視需要地,該程式代碼亦可以以組合或機器語言實施。事實上,在此所敘述之該等機制並未在任何特殊編程語言的範疇中受到限制。在任何情況中,該語言可係編譯或解譯的語言。
至少一實施例之一或多個觀點可藉由表示處理器內的各種邏輯之儲存在機器可讀取媒體上的代表性指令,而予以實施,當藉由機器而被讀取時,該等指令可致使該機器製作邏輯以供執行在此所敘述的技術之用。熟知為“IP核心”之該等代表物可被儲存在有形的機器可讀取媒體上,且可被供應至各式各樣的顧客或製造設施,用以載入至製造機器或處理器內,而實際進行該邏輯。
該機器可讀取儲存媒體可包含由機器或裝置所製造或所形成之非暫時性的有形之物品配置,包含諸如硬碟,包括磁盤、光碟、小型碟片唯讀記憶體(CD-ROM)、小型碟片可寫入者(CD-RW)、及磁光碟之任何類型的碟片,諸如唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可拭除可編程唯讀記憶體(EPROM)、快閃記憶體、可電拭除可編程唯讀記憶體(EEPROM)、或相變記憶體(PCM)的半導體裝置,磁性或光學卡,或適用以儲存電子指令的任何類型媒體之儲存媒體,但不受限於此。
因而,本發明之實施例亦包括包含指令或包含設計資料的非暫時性之有形的機器可讀取媒體,諸如硬體描述語言(HDL),其界定在此所敘述之結構、電路、設備、處理器、及/或系統特徵。該等實施例亦可被稱作程式產品。
仿真(包含二進制譯碼、代碼變形、等等)
在一些情況中,指令轉換器可被使用以自來源指令集 轉換指令至目標指令集。例如,指令轉換器可轉譯(例如,使用靜態二進制轉譯,包含動態編譯的動態二進制轉譯)、變形、仿真、或以另外方式轉換指令為將由核心所處理的一或多個其他指令。該指令轉換器可以以軟體、硬體、韌體、或其組合實施。該指令轉換器可在處理器上、處理器外、或一部分在處理器上及一部分在處理器外。
第13圖係依據本發明實施例之對照軟體指令轉換器之使用的方塊圖,用以轉換來源指令集中的二進制指令成為目標指令集中的二進制指令。在所描繪的實施例中,指令轉換器係軟體指令轉換器,雖然替代地,該指令轉換器可以以軟體、硬體、韌體、或其各種組合實施。第13圖顯示高階語言1302中的程式,其可使用x86編譯器1304予以編譯,用以產生可藉由具有至少一x86指令集核心之處理器1316而被本機地執行的x86二進制代碼1306。具有至少一x86指令集核心之處理器1316表示可藉由相容地執行或處理(1)Intel x86指令集核心之指令集的實質部分,或(2)以在具有至少一x86指令集核心之Intel處理器上運作為目的之應用或其他軟體的目標碼版本,而實質地執行與具有至少一x86指令集核心之Intel處理器相同功能,以便獲得與具有至少一x86指令集核心之Intel處理器實質相同結果的任何處理器。該x86編譯器1304表示,可操作以產生可以以或可不以附加的鏈接處理而在具有至少一x86指令集核心的處理器1316上被執行之x86二進制代碼1306(例如,目標碼),的編譯器。同樣地,第13圖顯示高階語言1302中 的程式,其可使用替代的指令集編譯器1308予以編譯,用以產生可藉由不具有至少一x86指令集核心之處理器1314(例如,具有可執行MIPS Technologies of Sunnyvale,CA的MIPS指令集及/或可執行ARM Holdings of Sunnyvale,CA的ARM指令集之核心的處理器)而被本機地執行之替代的指令集二進制代碼1310。指令轉換器1312係使用以轉換x86二進制代碼1306成為,可藉由不具有x86指令集核心之處理器1314本機執行的代碼。此轉換之代碼不大可能與替代的指令集二進制代碼1310相同,因為能這樣做的指令轉換器很難以製作;惟,該轉換之代碼將完成一般操作,且將由來自替代的指令集之指令所構成。因此,指令轉換器1312表示軟體、韌體、硬體、或其組合,其可透過仿真、模擬、或任何其他的處理,而允許不具有x86指令集之處理器或核心的處理器或其他電子裝置執行x86二進制代碼1306。
用於在此所揭示的任何處理器之所描述的組件、特徵、及細節可選項地應用到在此所揭示之任何方法,在實施例中,其可藉由及/或以該等處理器執行。在實施例中,在此所揭示的任何處理器可被選項地包含於在此所揭示的任何系統中。在實施例中,在此所揭示的任何指令可藉由及/或以在此所揭示的任何處理器選項地執行,選項地,在一些實施例中,可藉由及/或以具有在此所顯示的任何微架構之在此所揭示的任何處理器執行,及選項地,在一些實施例中,可藉由及/或以被包含於在此所顯示的 任何系統中之在此所揭示的任何處理器執行。因而,用於在此所揭示的任何指令之所描述的特徵及細節可在一些實施例中,藉以選項地應用到在此所揭示之可被使用以執行該等指令的任何處理器及/或系統。
在此所揭示之處理器組件可說是可操作、可被組構成,能執行操作或具備執行操作的能力。例如,解碼器可用以解碼指令,執行單元可用以儲存結果,等等。為清楚起見,應瞭解的是,該等表示並不意味著該等處理器組件係在操作或在使用中,而是意指當該等處理器組件在操作之中時,它們能進行甚麼或具備進行甚麼的能力,且在設備申請專利範圍中,該等處理器組件並不是在操作中。
在說明及申請專利範圍中,已使用伴隨其衍生語之“耦接”及/或“連接”的用語。該等用語並不意圖做為用於彼此的同義字。更確切地,在實施例中,“連接”可被使用以指示兩個或更多個元件在彼此直接的實體及/或電性接觸中。“耦接”可意指的是,兩個或更多個元件係在彼此直接的實體及/或電性接觸中。惟,“耦接”亦可意指的是,兩個或更多個元件並不在彼此直接的接觸中,但仍彼此互相合作或相互作用。例如,執行單元可透過一或多個中介組件而與暫存器及/或解碼單元耦接。在該等圖式中,箭頭係使用以顯示連接及耦接。
在本文所揭示之該等組件,以及在前面的圖式中所描繪之該等方法可以以包含硬體(例如,電晶體、閘、電路、等等)、韌體(例如,儲存微代碼或控制信號的非揮發 性記憶體)、軟體(例如,儲存在非暫態電腦可讀取儲存媒體上)、或其組合的邏輯、模組、或單元實施。在一些實施例中,該等邏輯、模組、或單元可包含至少某些,或可主要包含,與一些選項的軟體潛在地結合之硬體及/或韌體的混合物。
“及/或”之用語已被使用。如在此所使用地,“及/或”之用語意指一或另一者或二者皆有(例如,A及/或B意指A或B或者A及B二者)。
在上述說明中,已闡述特定的細節以便提供該等實施例之徹底的瞭解。然而,其他實施例可被實施,而無需某些該等特定的細節。本發明之範疇並非藉由上文所提供的特定實例而予以決定,而是僅由下文申請專利範圍所決定。在其他情況中,為避免模糊本說明之瞭解,熟知的電路、結構、裝置、及操作已以方塊圖形式顯示且/或無細節地顯示。在適當的情況下,已在圖中重複參考符號或參考符號的終端部分,用以指示可選項地具有相似或相同特徵之對應的或類似的元件,除非另有指明或明確表示。
某些操作可藉由硬體組件而予以執行,或可被以機器可執行的或電路可執行的指令實施,該機器可執行的或電路可執行的指令可被使用以導致及/或產生可以以執行操作之指令編程的機器、電路、或硬體組件(例如,處理器、處理器的一部分、電路、等等)。該等操作亦可選項地藉由硬體及軟體的組合而予以執行。處理器、機器、電路、或硬體可包含特定的或特殊的電路或其他邏輯(例 如,與韌體及/或軟體潛在地結合的硬體),其可操作以執行及/或處理指令並回應該指令而儲存結果。
某些實施例包含製品(例如,電腦程式產品),其包括機器可讀取媒體。該媒體可包含可提供例如,以機器可讀取之形式儲存資訊的機制。該機器可讀取媒體可提供指令或指令的序列,或具有已被儲存於其上之指令或指令的序列,如果及/或當由機器所執行時,可操作以致使機器執行本文所揭示之一或多個操作、方法、或技術,及/或可操作以產生可執行本文所揭示之一或多個操作、方法、或技術的機器。
在一些實施例中,機器可讀取媒體可包含有形的及/或非暫態的機器可讀取儲存媒體。例如,該非暫態的機器可讀取儲存媒體可包含磁盤、光學儲存媒體、光碟、光學資料儲存裝置、CD-ROM、磁碟、磁光碟、唯讀記憶體(ROM)、可編程ROM(PROM)、可拭除可編程ROM(EPROM)、可電拭除可編程ROM(EEPROM)、隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、快閃記憶體、相變記憶體、相變資料儲存材料、非揮發性記憶體、非揮發性資料儲存裝置、非暫態記憶體、非暫態資料儲存裝置、或其類似物。該非暫態的機器可讀取儲存媒體並不包括暫態傳播信號。在一些實施例中,該儲存媒體可包含有形媒體,其包括固態物質或材料,諸如例如,半導體材料、相變材料、磁固態材料、固態資料儲存材料、等等。替代地,可選項地使用諸如例如,電性、光學、聲 學、或其他形式的傳播信號---諸如載波、紅外信號、及數位信號之非有形的暫態電腦可讀取傳輸媒體。
合適之機器的實例可包含通用型處理器、特殊目的處理器、數位邏輯電路、積體電路、或其類似物,但不受限於此。合適之機器的其他實例包含電腦系統或其他電子裝置,其包括處理器、數位邏輯電路、或積體電路。該等電腦系統或電子裝置的實例包含桌上型電腦、膝上型電腦、筆記型電腦、平板電腦、小筆電、智慧型手機、手機、伺服器、網路裝置(例如,路由器及交換器)、行動網際網路裝置(MID)、媒體播放器、智能電視、上網機、機上盒、及視頻遊戲控制器,但不受限於此。
在本說明書中對例如,“一實施例”、“實施例”、“一或多個實施例”、“一些實施例”之引用指示的是,特定的特性可被包含在本發明的實施中,但無需一定是必要的。同樣地,在說明中,為精簡本發明且幫助了解各種發明觀點之目的,各種特性有時候在單一的實施例、圖、或其說明中被組群在一起。然而,本發明之方法不應被解讀成反映本發明為需要比各項申請專利範圍所明確指出之特性更多的特性。更確切地,當下文申請專利範圍反映時,發明觀點位在比單一所揭示之實施例的所有特性更少的特性中。因此,在詳細說明後的申請專利範圍係以建立本身做為本發明之個別實施例的各項申請專利範圍,來明確地結合至此詳細說明內。
實例1係處理器,其包含解碼單元,用以解碼自記憶 體指令之讀取。自記憶體指令之該讀取係用以指示來源記憶體運算元及目的地儲存位置。該處理器亦包含執行單元,其係與該解碼單元耦接。回應於自記憶體指令之該讀取,該執行單元係用以自該來源記憶體運算元讀取資料,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;以及當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
實例2包含實例1之處理器,選項地,其中,回應於自記憶體指令之該讀取,該執行單元係用以自區塊儲存記憶體位置讀取該資料,該區塊儲存記憶體位置將在可由自記憶體指令之該讀取定址的實體記憶體位址空間中,且選項地,其中該處理器包含通用型中央處理單元(CPU)。
實例3包含實例1之處理器,選項地,其中該解碼單元係用以解碼自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元及第二目的地儲存位置。選項地,其中,回應於自記憶體指令之該第二讀取,該執行單元係用以:自該第二來源記憶體運算元讀取第二資料;當該第二資料沒有缺陷時,儲存該第二資料至該第二目的地儲存位置;以及當該第二資料沒有缺陷時,將該第二資料沒有缺陷之指示儲存於該架構可見的儲存位置中。
實例4包含實例1之處理器,選項地,其中,回應於自記憶體指令之該讀取,在儲存該缺陷資料之該指示前,該執行單元係用以決定有缺陷之該資料是否係讀取自區塊儲 存記憶體位置。
實例5包含實例4之處理器,選項地,其中當該資料有缺陷時,且當有缺陷之該資料係讀取自該區塊儲存記憶體位置時,回應於自記憶體指令之該讀取,該執行單元係用以決定儲存該缺陷資料之該指示。
實例6包含實例5之處理器,選項地,其中該解碼單元係用以解碼自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元。選項地,其中,回應於自記憶體指令之該第二讀取,該執行單元係用以:自該第二來源記憶體運算元讀取第二資料;當該第二資料有缺陷時,決定該第二資料並非讀取自區塊儲存記憶體位置;以及在完成自記憶體指令之該第二讀取的執行之前,導致異常情形。
實例7包含實例6之處理器,選項地,其中,回應於自記憶體指令之該第二讀取,該執行單元係用以導致該異常情形,其將係機器檢查異常。
實例8包含實例1之處理器,進一步包含用於偵測的邏輯,其根據資料同位誤差及糾錯碼(ECC)錯誤之至少一者,而偵測出該資料有缺陷。
實例9包含實例1之處理器,選項地,其中該解碼單元亦係用以解碼自記憶體指令之第二讀取,其在自記憶體指令之該讀取前已被包含在指令集之中,且選項地,其中,回應於自記憶體指令之該第二讀取,當讀取有缺陷之資料時,該處理器係用以導致異常情形。
實例10包含實例1至9中任一實例之處理器,選項地,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示通用暫存器做為該架構可見的儲存位置,且選項地,其中,回應於自記憶體指令之該讀取,當該資料有缺陷時,該執行單元係用以將該缺陷資料之指示儲存於該通用暫存器中。
實例11包含實例1至9中任一實例之處理器,選項地,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示至少一條件碼位元做為該架構可見的儲存位置,且選項地,其中,回應於自記憶體指令之該讀取,當該資料有缺陷時,該執行單元係用以儲存該至少一條件碼位元的該指示。
實例12包含實例1至9中任一實例之處理器,選項地,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示將成為目的地記憶體運算元之該目的地儲存位置,且選項地,其中自記憶體指令之該讀取係用以指示第二架構可見的儲存位置,其係用以儲存將從該來源記憶體運算元被儲存到該目的地記憶體運算元的資料量。
實例13包含實例12之處理器,選項地,其中,回應於自記憶體指令之該讀取,該執行單元係用以在該第二架構可見的儲存位置中儲存更新的資料量,該更新的資料量指示當讀取有缺陷之該資料時,有多少該資料量已被儲存至該目的地儲存位置。
實例14包含實例1至9中任一實例之處理器,選項地, 其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示將成為該處理器之暫存器的該目的地儲存位置。
實例15係由處理器所執行的方法,其包含接收自記憶體指令之讀取。自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置。該方法包含回應於自記憶體指令之該讀取,而自該來源記憶體運算元讀取資料。該方法包含回應於自記憶體指令之該讀取,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中。該方法包含回應於自記憶體指令之該讀取,當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
實例16包含實例15之方法,進一步包含接收自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元及第二目的地儲存位置。該方法亦包含回應於自記憶體指令之該第二讀取,自該第二來源記憶體運算元讀取第二資料。該方法亦包含回應於自記憶體指令之該第二讀取,當該第二資料沒有缺陷時,將該第二資料儲存至該第二目的地儲存位置。該方法亦包含回應於自記憶體指令之該第二讀取,當該第二資料沒有缺陷時,將該第二資料沒有缺陷之指示儲存於該架構可見的儲存位置中。
實例17包含實例15之方法,進一步包含,回應於自記憶體指令之該讀取,在儲存該缺陷資料之該指示前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置。
實例18包含實例17之方法,進一步包含,當該資料有 缺陷時,且當有缺陷之該資料係讀取自該區塊儲存記憶體位置時,決定儲存該缺陷資料之該指示,選項地,其中若取代地,該缺陷資料並非從該區塊儲存記憶體位置被讀取時,則做成導致異常情形的決定。
實例19包含實例15之方法,選項地,其中該接收包含接收指示其係目的地記憶體運算元之該目的地儲存位置,及指示第二架構可見的儲存位置的指令,該第二架構可見的儲存位置儲存將從該來源記憶體運算元被儲存到該目的地記憶體運算元的資料量。
實例20包含實例15之方法,選項地,其中該讀取包含自區塊儲存記憶體位置讀取該資料,該區塊儲存記憶體位置係可由自記憶體指令之該讀取定址的實體記憶體位址空間,且選項地,其中該處理器包含通用型中央處理單元(CPU)。
實例21包含實例15之方法,進一步包含,特權系統軟體執行以下的其中一者:以無缺陷的資料置換有缺陷之該資料;以及修復有缺陷之該資料,以致使其沒有缺陷。
實例22係用以處理指令之系統,其包含互連,及與該互連耦接的處理器。該處理器係用以接收自記憶體指令之讀取。自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置。回應於自記憶體指令之該讀取,該處理器係用以自該來源記憶體運算元讀取資料,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中,且當該資料有缺陷時,完成自記憶體指令之該讀取的執行, 而不導致異常情形。該系統亦包含動態隨機存取記憶體(DRAM),其係與該互連耦接。該DRAM儲存指令集。當藉由該系統而予以執行時,該指令集致使該系統存取被儲存在該架構可見的儲存位置中的該缺陷資料之該指示,且執行以下的其中一者,以無缺陷的資料置換有缺陷之該資料,及修復有缺陷之該資料以致使其沒有缺陷。
實例23包含實例22之系統,選項地,其中,回應於自記憶體指令之該讀取,在儲存該缺陷資料之該指示前,該處理器係用以決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置。
實例24係製品,其包含非暫態機器可讀取儲存媒體。該非暫態機器可讀取儲存媒體儲存包含自記憶體指令之讀取的複數個指令。若藉由機器而予以執行時,自記憶體指令之該讀取係用以致使該機器執行包含回應於自記憶體指令之該讀取,從將由自記憶體指令之該讀取所指示之來源記憶體運算元讀取資料的操作。而且,回應於自記憶體指令之該讀取,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中,以及回應於自記憶體指令之該讀取,當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
實例25包含實例24之製品,選項地,其中若藉由該機器而予以執行時,自記憶體指令之該讀取係用以致使該機器執行包含在儲存該缺陷資料之該指示前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置的操作。
100‧‧‧處理器
102‧‧‧自記憶體指令之讀取
104‧‧‧解碼單元
106‧‧‧執行單元
108‧‧‧記憶體
110‧‧‧來源記憶體運算元
112、116‧‧‧資料
113‧‧‧第一箭頭
114‧‧‧目的地儲存位置
115‧‧‧第二箭頭
118‧‧‧暫存器
120‧‧‧記憶體位址資訊
122‧‧‧有缺陷資料之指示
124‧‧‧選項的指示
126‧‧‧處置器
128‧‧‧異常情形

Claims (22)

  1. 一種處理器,包含:解碼單元,用以解碼自記憶體指令之讀取,自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置;以及執行單元,其與該解碼單元耦接,回應於自記憶體指令之該讀取,該執行單元係用以:自該來源記憶體運算元讀取資料;當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;以及當該資料有缺陷並且是從區塊儲存記憶體位置讀取時,完成自記憶體指令之該讀取的執行,而不導致異常情形,其中,若有缺陷之該資料不是從該區塊儲存記憶體位置讀取時,則在完成自記憶體指令之該讀取的執行之前導致異常情形。
  2. 如申請專利範圍第1項之處理器,其中,回應於自記憶體指令之該讀取,該執行單元係用以自該區塊儲存記憶體位置讀取該資料,該區塊儲存記憶體位置將在可由自記憶體指令之該讀取定址的實體記憶體位址空間中,且其中該處理器包含通用型中央處理單元(CPU)。
  3. 如申請專利範圍第1項之處理器,其中該解碼單元係用以解碼自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元及第二目的地儲存位置,以及其中,回應於自記憶體指令之該第二讀取,該執行單元係用以:自該第二來源記憶體運算元讀取第二資料;當該第二資料沒有缺陷時,儲存該第二資料至該第二目的地儲存位置;以及當該第二資料沒有缺陷時,將該第二資料沒有缺陷之指示儲存於該架構可見的儲存位置中。
  4. 一種處理器,包含:解碼單元,用以解碼自記憶體指令之讀取,自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置;以及執行單元,其與該解碼單元耦接,回應於自記憶體指令之該讀取,該執行單元係用以:自該來源記憶體運算元讀取資料;當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;在儲存該缺陷資料之該指示之前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置;以及當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
  5. 如申請專利範圍第4項之處理器,其中當該資料有缺陷時,且當有缺陷之該資料係讀取自該區塊儲存記憶體位置時,回應於自記憶體指令之該讀取,該執行單元係用以決定儲存該缺陷資料之該指示。
  6. 如申請專利範圍第5項之處理器,其中該解碼單元係用以解碼自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元,以及其中,回應於自記憶體指令之該第二讀取,該執行單元係用以:自該第二來源記憶體運算元讀取第二資料;當該第二資料有缺陷時,決定該第二資料並非讀取自區塊儲存記憶體位置;以及在完成自記憶體指令之該第二讀取的執行之前,導致異常情形。
  7. 如申請專利範圍第6項之處理器,其中,回應於自記憶體指令之該第二讀取,該執行單元係用以導致該異常情形,其將係機器檢查異常。
  8. 如申請專利範圍第1項之處理器,進一步包含用於偵測的邏輯,其根據資料同位誤差及糾錯碼(ECC)錯誤之至少一者,而偵測出該資料有缺陷。
  9. 如申請專利範圍第1項之處理器,其中該解碼單元亦係用以解碼自記憶體指令之第二讀取,其在自記憶體指令之該讀取前已被包含在指令集之中,且其中,回應於自記憶體指令之該第二讀取,當讀取有缺陷之資料時,該處理器係用以導致異常情形。
  10. 如申請專利範圍第1項之處理器,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示通用暫存器做為該架構可見的儲存位置,且其中,回應於自記憶體指令之該讀取,當該資料有缺陷時,該執行單元係用以將該缺陷資料之指示儲存於該通用暫存器中。
  11. 如申請專利範圍第1項之處理器,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示至少一條件碼位元做為該架構可見的儲存位置,且其中,回應於自記憶體指令之該讀取,當該資料有缺陷時,該執行單元係用以儲存該至少一條件碼位元中的該缺陷資料的該指示。
  12. 如申請專利範圍第1項之處理器,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示將成為目的地記憶體運算元之該目的地儲存位置,且其中自記憶體指令之該讀取係用以指示第二架構可見的儲存位置,其係用以儲存將從該來源記憶體運算元被儲存到該目的地記憶 體運算元的資料量。
  13. 如申請專利範圍第12項之處理器,其中,回應於自記憶體指令之該讀取,該執行單元係用以在該第二架構可見的儲存位置中儲存更新的資料量,該更新的資料量指示當讀取有缺陷之該資料時,有多少該資料量已被儲存至該目的地儲存位置。
  14. 如申請專利範圍第1項之處理器,其中該解碼單元係用以解碼自記憶體指令之該讀取,其係用以指示將成為該處理器之暫存器的該目的地儲存位置。
  15. 一種由處理器所執行的方法,包含:接收自記憶體指令之讀取,自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置;回應於自記憶體指令之該讀取,自該來源記憶體運算元讀取資料;回應於自記憶體指令之該讀取,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;回應於自記憶體指令之該讀取,在儲存該缺陷資料之該指示前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置;以及回應於自記憶體指令之該讀取,當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
  16. 如申請專利範圍第15項之方法,進一步包含:接收自記憶體指令之第二讀取,其具有與自記憶體指令之該讀取相同的運算碼,且其指示第二來源記憶體運算元及第二目的地儲存位置;回應於自記憶體指令之該第二讀取,自該第二來源記憶體運算元讀取第二資料;回應於自記憶體指令之該第二讀取,當該第二資料沒有缺陷時,將該第二資料儲存至該第二目的地儲存位置;以及回應於自記憶體指令之該第二讀取,當該第二資料沒有缺陷時,將該第二資料沒有缺陷之指示儲存於該架構可見的儲存位置中。
  17. 如申請專利範圍第15項之方法,進一步包含,當該資料有缺陷時,且當有缺陷之該資料係讀取自該區塊儲存記憶體位置時,決定儲存該缺陷資料之該指示,其中若該缺陷資料並非從該區塊儲存記憶體位置被讀取時,則做成導致異常情形的決定。
  18. 如申請專利範圍第15項之方法,其中該接收包含接收指示其係目的地記憶體運算元之該目的地儲存位置,及指示第二架構可見的儲存位置的指令,該第二架構可見的儲存位置儲存將從該來源記憶體運算元被儲存到該目的地記 憶體運算元的資料量。
  19. 如申請專利範圍第15項之方法,其中該讀取包含自區塊儲存記憶體位置讀取該資料,該區塊儲存記憶體位置係可由自記憶體指令之該讀取定址的實體記憶體位址空間,且其中該處理器包含通用型中央處理單元(CPU)。
  20. 如申請專利範圍第15項之方法,進一步包含,特權系統軟體執行以下的其中一者:以無缺陷的資料置換有缺陷之該資料;以及修復有缺陷之該資料,以致使其沒有缺陷。
  21. 一種用以處理指令之系統,包含:互連;處理器,係與該互連耦接,該處理器係用以接收自記憶體指令之讀取,自記憶體指令之該讀取指示來源記憶體運算元及目的地儲存位置,回應於自記憶體指令之該讀取,該處理器係用以:自該來源記憶體運算元讀取資料;當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;回應於自記憶體指令之該讀取,在儲存該缺陷資料之該指示前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置;且 當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形;以及動態隨機存取記憶體(DRAM),係與該互連耦接,該DRAM儲存指令集,當藉由該系統而予以執行時,該指令集致使該系統:存取被儲存在該架構可見的儲存位置中的該缺陷資料之該指示;且執行以下的其中一者,以無缺陷的資料置換有缺陷之該資料,及修復有缺陷之該資料以致使其沒有缺陷。
  22. 一種用以處理指令之製品,包含非暫態機器可讀取儲存媒體,該非暫態機器可讀取儲存媒體儲存包含自記憶體指令之讀取的複數個指令,若藉由機器而予以執行時,自記憶體指令之該讀取係用以致使該機器執行包含以下之操作:回應於自記憶體指令之該讀取,從將由自記憶體指令之該讀取所指示之來源記憶體運算元讀取資料;回應於自記憶體指令之該讀取,當該資料有缺陷時,將缺陷資料之指示儲存於架構可見的儲存位置中;在儲存該缺陷資料之該指示前,決定有缺陷之該資料是否係讀取自區塊儲存記憶體位置;以及回應於自記憶體指令之該讀取,當該資料有缺陷時,完成自記憶體指令之該讀取的執行,而不導致異常情形。
TW106117688A 2016-07-02 2017-05-26 讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取 TWI751167B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/201,438 US10296416B2 (en) 2016-07-02 2016-07-02 Read from memory instructions, processors, methods, and systems, that do not take exception on defective data
US15/201,438 2016-07-02

Publications (2)

Publication Number Publication Date
TW201810028A TW201810028A (zh) 2018-03-16
TWI751167B true TWI751167B (zh) 2022-01-01

Family

ID=60807439

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106117688A TWI751167B (zh) 2016-07-02 2017-05-26 讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取

Country Status (5)

Country Link
US (2) US10296416B2 (zh)
CN (1) CN109416672B (zh)
DE (1) DE112017003350T5 (zh)
TW (1) TWI751167B (zh)
WO (1) WO2018009296A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922180B2 (en) 2018-10-03 2021-02-16 International Business Machines Corporation Handling uncorrected memory errors inside a kernel text section through instruction block emulation
EP4095698A4 (en) * 2020-01-20 2023-03-15 Fujitsu Limited PROCESSOR, SIMULATION PROGRAM, ASSEMBLER PROGRAM AND INFORMATION PROCESSING PROGRAM
US11403010B2 (en) * 2020-08-19 2022-08-02 Silicon Motion, Inc. Data storage device and plane selection method thereof
CN112347010B (zh) * 2020-11-09 2023-07-04 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
US12032485B2 (en) 2020-12-23 2024-07-09 Intel Corporation 64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s)
CN114003283A (zh) * 2021-11-02 2022-02-01 武汉深之度科技有限公司 一种基于硬件缓存标识的指令执行方法
US11977431B2 (en) * 2022-03-15 2024-05-07 Google Llc Memory error prevention by proactive memory poison recovery
CN116680208B (zh) * 2022-12-16 2024-05-28 荣耀终端有限公司 异常识别方法以及电子设备
CN117742794B (zh) * 2023-12-05 2024-08-06 摩尔线程智能科技(北京)有限责任公司 数据处理系统、方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934903B1 (en) * 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US20090204766A1 (en) * 2008-02-12 2009-08-13 International Business Machines Corporation Method, system, and computer program product for handling errors in a cache without processor core recovery
TW201616341A (zh) * 2011-12-22 2016-05-01 英特爾公司 用於產生按數字順序的連續整數序列之處理器、方法、系統及指令(二)
TW201616388A (zh) * 2014-09-26 2016-05-01 英特爾股份有限公司 用以提供單一指令多重資料(simd)sm4加密區塊加密功能之指令和邏輯

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905858A (en) * 1996-11-01 1999-05-18 Micron Electronics, Inc. System for method memory error handling
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
US6092182A (en) * 1998-06-24 2000-07-18 Advanced Micro Devices, Inc. Using ECC/parity bits to store predecode information
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
WO2008118705A1 (en) 2007-03-28 2008-10-02 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7802078B2 (en) 2008-09-09 2010-09-21 Via Technologies, Inc. REP MOVE string instruction execution by selecting loop microinstruction sequence or unrolled sequence based on flag state indicative of low count repeat
US8856587B2 (en) 2011-05-31 2014-10-07 Freescale Semiconductor, Inc. Control of interrupt generation for cache
US8737033B2 (en) 2012-09-10 2014-05-27 Eaton Corporation Circuit interrupter employing non-volatile memory for improved diagnostics
US8953785B2 (en) * 2012-09-28 2015-02-10 Intel Corporation Instruction set for SKEIN256 SHA3 algorithm on a 128-bit processor
US9348601B2 (en) * 2012-12-26 2016-05-24 Intel Corporation Coalescing adjacent gather/scatter operations
US10083483B2 (en) 2013-01-09 2018-09-25 Bank Of America Corporation Actionable exception alerts
US9645820B2 (en) * 2013-06-27 2017-05-09 Intel Corporation Apparatus and method to reserve and permute bits in a mask register
US10061675B2 (en) * 2013-07-15 2018-08-28 Texas Instruments Incorporated Streaming engine with deferred exception reporting
US9207880B2 (en) * 2013-12-27 2015-12-08 Intel Corporation Processor with architecturally-visible programmable on-die storage to store data that is accessible by instruction
US9396056B2 (en) * 2014-03-15 2016-07-19 Intel Corporation Conditional memory fault assist suppression
US9606847B2 (en) * 2014-12-18 2017-03-28 Intel Corporation Enabling error detecting and reporting in machine check architecture
US20160179611A1 (en) * 2014-12-23 2016-06-23 Thuyen Le Low overhead error checking and correction apparatus and method
US10162694B2 (en) * 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10261790B2 (en) 2016-03-31 2019-04-16 Intel Corporation Memory copy instructions, processors, methods, and systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934903B1 (en) * 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US20090204766A1 (en) * 2008-02-12 2009-08-13 International Business Machines Corporation Method, system, and computer program product for handling errors in a cache without processor core recovery
TW201616341A (zh) * 2011-12-22 2016-05-01 英特爾公司 用於產生按數字順序的連續整數序列之處理器、方法、系統及指令(二)
TW201616388A (zh) * 2014-09-26 2016-05-01 英特爾股份有限公司 用以提供單一指令多重資料(simd)sm4加密區塊加密功能之指令和邏輯

Also Published As

Publication number Publication date
CN109416672B (zh) 2024-03-19
US10296416B2 (en) 2019-05-21
US20190272214A1 (en) 2019-09-05
CN109416672A (zh) 2019-03-01
US20180004595A1 (en) 2018-01-04
DE112017003350T5 (de) 2019-03-14
US11068339B2 (en) 2021-07-20
TW201810028A (zh) 2018-03-16
WO2018009296A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
TWI751167B (zh) 讀取記憶體指令的處理器、方法及系統,其讀取包括缺陷資料之讀取
CN106575218B (zh) 持久性存储屏障处理器、方法、系统和指令
TWI742021B (zh) 用於多位元錯誤偵測和校正之裝置和方法
CN108292252B (zh) 用于容错和检错的系统、方法和装置
US20150134932A1 (en) Structure access processors, methods, systems, and instructions
US20220206875A1 (en) Software visible and controllable lock-stepping with configurable logical processor granularities
US9207940B2 (en) Robust and high performance instructions for system call
CN106663471B (zh) 用于反向存储器备份的方法和装置
US10387072B2 (en) Systems and method for dynamic address based mirroring
US10324852B2 (en) System and method to increase availability in a multi-level memory configuration
US10474526B2 (en) System and method for granular in-field cache repair
US9063855B2 (en) Fault handling at a transaction level by employing a token and a source-to-destination paradigm in a processor-based system
US20160179611A1 (en) Low overhead error checking and correction apparatus and method
US10824496B2 (en) Apparatus and method for vectored machine check bank reporting
WO2023108600A1 (en) System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks
US20230273811A1 (en) Reducing silent data errors using a hardware micro-lockstep technique
US20240069913A1 (en) Uniform Microcode Update Enumeration
US10346171B2 (en) End-to end transmission of redundant bits for physical storage location identifiers between first and second register rename storage structures