TWI540509B - 用以部署處理器特徵之方法以及用於硬體轉譯之製造物件、含有故障偵測與轉返功能的處理器、多處理器以及計算系統 - Google Patents
用以部署處理器特徵之方法以及用於硬體轉譯之製造物件、含有故障偵測與轉返功能的處理器、多處理器以及計算系統 Download PDFInfo
- Publication number
- TWI540509B TWI540509B TW101150102A TW101150102A TWI540509B TW I540509 B TWI540509 B TW I540509B TW 101150102 A TW101150102 A TW 101150102A TW 101150102 A TW101150102 A TW 101150102A TW I540509 B TWI540509 B TW I540509B
- Authority
- TW
- Taiwan
- Prior art keywords
- language
- processor
- register
- executable
- instruction
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims description 41
- 238000000034 method Methods 0.000 title claims description 38
- 238000013519 translation Methods 0.000 title claims description 22
- 238000004519 manufacturing process Methods 0.000 title claims 9
- 238000012360 testing method Methods 0.000 claims description 15
- 241000700605 Viruses Species 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 31
- 239000002245 particle Substances 0.000 description 6
- 210000000352 storage cell Anatomy 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Description
本揭示內容一般係有關微處理器之領域。特別是,本揭示內容係有關具有故障偵測與轉返功能之硬體編譯及/或轉譯技術。
現代處理器通常包括新特徵,例如,以改善安全性或支援虛擬化或多執行緒、及/或新指令以提供計算上密集的操作,並提供可透過使用各種不同的資料儲存裝置,諸如,例如,單一指令多重資料(SIMD)向量暫存器之一有效實施態樣來利用之一高階資料平行處理。
由於許多該等處理器編譯器之調整遠落後在硬體發行之後,所以新特徵、指令及/或資源會無法充分利用。
另一方面,故障容錯與故障偵測特徵典型不應用在高產量處理器中之該等新特徵、指令及/或資源上,因為該實施態樣成本已超過優點。然而,於一多處理器之一封裝體及/或處理元件中減少電晶體維度與增加數量,在使裝
置更快且更有效率的情況下,會由於阿爾法粒子與其他偶發因素而增加故障機率。
此外,會有某些極端環境是故障容錯為電腦系統高度期待的一特徵。例如,由海軍研究學院之太空系統學術群使用場可規劃閘陣列(FPGA)來開發之一可組配故障容錯處理器(CFTP)。其之後可部署為美國海軍學術(USNA)MidSTAR-1衛星之一實驗性板體上酬載。一第二CFTP系統,CFTP-2可部署為一完全地面式系統並於使用加州大學戴維斯粒子迴旋加速器之一質子光束中測試。
二進制轉譯為另一指令集透過編碼轉譯之一指令集的模擬。指令序列可從來源轉譯至該目標指令集。靜態二進制轉譯係針對將一可執行檔的所有編碼轉換為可在該目標架構中運作之編碼而不需先執行該編碼,如同在動態二進制轉譯中完成的那般。此很難正確做到,因為並非所有編碼皆可被該轉譯器發現。例如,該可執行的某些部分可僅透過間接分支來達到,其數值僅在運作時間時可知。
動態二進制轉譯可看見一短指令序列-典型以一單一基本方塊的順序-之後將其轉譯並貯存該所生序列。編碼可僅在其被發現以及可能的分支指令完成指向已轉譯且儲存的編碼時才轉譯。諸如指令集模擬的某些情況中,目標指令集可與來源指令集相同,提供諸如指令追蹤、有條件斷點與熱點偵測之測試與除錯特徵。該類實施態樣可提供除錯與軟體/硬體開發支援,其典型不針對故障容錯或故障偵測。此外,二進制轉譯技術典型無法改善新特徵、
指令及/或資源的使用。
已可找出某些編譯器技術來直接以硬體特徵為目標。該等技術已被應用在,例如,FPGA技術中。一編譯器可採用高階來源碼來作為一輸入並將該來源碼編譯以產生FPGA邏輯元件作為一輸出。一般而言,該類FPGA實施態樣會限制以其他方式,例如,從超大型積體電路(VLSI)取得的效能上優點,而其實施態樣會額外更大及/或更重,並需要較高的供應電壓。
迄今,該類無法充分利用、故障容錯、效能及效率限制議題之潛在解決方案仍尚未被適當地探索。
依據本發明之一實施例,係特地提出一種用以部署處理器特徵之方法,該方法包含下列步驟:接收一處理器中之一可執行執行緒部分,該可執行執行緒以一第一語言編碼;將該可執行執行緒部分編碼為一第二語言來包括一或更多指令以支援不編碼為該可執行執行緒部分之該第一語言編碼的一或更多處理器特徵;以該第二語言來儲存該可執行執行緒部分;以及以該第二語言來執行該可執行執行緒部分以使用該一或更多處理器特徵。
105、205‧‧‧處理器
110、120、210、220‧‧‧執行緒
111、121、211、221‧‧‧檢查邏輯元件
112、122、212、222‧‧‧執行單元
113、123、213、223‧‧‧暫存器對映
117、217、267‧‧‧匯流排
130、230‧‧‧編譯及/或轉譯邏輯元件
131、261‧‧‧執行緒T1
132、262‧‧‧執行緒T2
140、240‧‧‧I快取記憶體
141、241‧‧‧T1’
142、242‧‧‧T2’
151、251‧‧‧暫存器A
152、252‧‧‧暫存器B
153、253‧‧‧暫存器C
201‧‧‧多處理系統
260‧‧‧記憶體
301、401、501‧‧‧程序
310、320、330、340、410、420、430、440、470、480、490、510、520、530、540、544、548、550、560、570、580、590‧‧‧處理方塊
本發明係藉由該等附圖之圖形中的範例而非限制來加以繪示。
圖1繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的處理器系統之一實施例。
圖2繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一多處理系統之實施例。
圖3繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序之一實施例的流程圖。
圖4繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序之一替代實施例的流程圖。
圖5繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序之另一替代實施例的流程圖。
本案揭示具有故障偵測與轉返功能之硬體編譯及/或轉譯技術。編譯及/或轉譯邏輯元件可接收以一語言編碼之程式,並將該等程式編碼為一第二語言來包括指令以支援不編碼為該等程式之初始語言編碼的處理器特徵。於一實施例中,一執行單元可執行該第二語言之指令,包括一操作檢查指令來執行一第一操作並記錄該第一操作的結果來作一比較、以及一操作測試指令來執行一第二操作並藉由比較該第二操作的結果與該記錄的第一操作結果來執行一故障偵測操作。某些實施例中,一執行單元可執行該第二語言之指令,包括提交指令來記錄對映至架構暫存器之暫存器的執行檢查點狀態、以及轉返指令來將對映至架構暫存器之暫存器回復至之前記錄的執行檢查點狀態。
下列揭示內容中,諸如執行緒、程式、與程序之術語可互相交換使用以說明程式語言或機器語言或兩者之
指令序列或命令序列、或者作為該執行序列本身或作為執行該等序列之處理裝置的實施例。透過硬體編譯及/或轉譯,支援新處理器特徵之指令可用來由之前以語言編碼,不支援該等新處理器特徵之程式的重新編譯、轉譯或工具提供以改善效能、故障容錯、安全性、病毒偵測、等等。可體認支援具有轉返功能之硬體編譯及/或轉譯的某些實施例在無顯著增加實施態樣成本的情況下,可提供高產量處理器中典型的故障容錯及/或故障偵測之特徵。於故障容錯為電腦系統之一高度所需特徵的極端環境中,包含具有轉返功能之硬體編譯及/或轉譯的商業處理器可提供故障容錯及/或故障偵測以及高階整合的優點,且更小更輕、並比諸如FPGA技術之其他替代方案具有更好的能源效率。因為在一封裝體中減少電晶體維度與增加數量會由於阿爾法粒子與其他偶發因素而增加故障機率,所以該類特徵的需求會日漸增加。
本發明之該等與其他實施例可根據下列教示來實現,且應可證實在不違背本發明之更廣泛精神與範疇的情況下,下列教示中可作各種不同的修改與變化。因此,該等規格說明與圖示應以一舉例解說而非一限制觀點來視之,且本發明僅以該等申請專利範圍及其等效項目來度量。
圖1繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一處理器105之實施例。處理器105可包括多處理或多執行緒硬體,個別包含執行單元112與暫存器對映113、以及執行單元122與暫存器對映123之執行緒110與執行緒120。
一編譯及/或轉譯邏輯元件130可(例如,經由一匯流排117)接收以一語言編碼之可執行程式部分,執行緒T1 131與執行緒T2 132,並將其編碼為一第二語言來包括指令以支援不編碼為該等可執行程式部分,執行緒T1 131與執行緒T2 132,之初始語言編碼的一或更多處理器105特徵。某些替代實施例中,該初始語言可為,例如,一不同處理器架構之一高階程式語言、或一解釋語言、或一類語言、或一機器語言、或甚至,例如,一傳統處理器之相同或一類似的機器語言。某些實施例中,該初始語言可由軟體或中介軟體產生,其從一高階語言成為一不同處理器架構之該類語言、或該機器語言、或者成為一傳統處理器之相同或類似的機器語言。以該第二語言編碼之可執行程式部分,T1’141與T2’142可儲存於,例如,I快取記憶體140中。某些實施例中,該第二語言可包括新指令來支援新處理器105特徵,但亦具有可由具有共享一共同指令集之至少一部分的不同微架構之處理器執行的一指令基礎。例如,英代爾®奔騰4處理器、英代爾®核心TM處理器、以及來自加州森尼韋爾(Sunnyvale)之超微半導體公司之處理器可執行接近該x86指令集同一版本(具有已被加入較新版本的某些擴充版),但具有不同的內部設計。同樣地,由其他處理器開發公司,諸如安謀控股有限公司、MIPS、或其授權或採用者設計的處理器可共享至少一部分一共同指令集,但可包括不同的處理器設計。
用以回應於支援新處理器105特徵之該第二語言
的指令之一實施例,執行單元112可執行一提交指令來記錄對映至該可執行程式部分,例如T1’141之架構暫存器的暫存器之一第一執行檢查點狀態(例如,對映至暫存器對映113之R1與R2的暫存器A 151中的暫存器可記錄在暫存器B 152中作為一執行檢查點狀態,而對映至暫存器對映113之Rn的暫存器C 153中的暫時儲存不記錄在該執行檢查點狀態)。執行單元122可執行另一提交指令來記錄對映至該可執行程式部分,例如T1’142之架構暫存器的暫存器之一執行檢查點狀態(例如,對映至暫存器對映123之R1與R3的暫存器A 151中的暫存器可記錄在暫存器B 152中作為一執行檢查點狀態,而對映至暫存器對映123之R4與Rn的暫存器C 153中的暫時儲存不記錄在該執行檢查點狀態)。此外,用以回應於支援新處理器105特徵之該第二語言的指令,若需要將對映至架構暫存器的暫存器個別回復至最近個別記錄的執行檢查點狀態,執行單元112及/或執行單元122可執行一轉返指令。
如新處理器105特徵之一範例,處理器105之執行緒110與執行緒120的實施例能夠在一特定時間執行一序列指令並完成另一程序可見的整個序列之淨效應。因此從另一執行緒觀點,該指令序列顯示已被細微地執行。為建立該假象,該細微執行開始前,處理器105需能夠將執行緒轉返至一之前檢查點狀態。為何執行緒110或執行緒120需轉返一原子區域,例如,以避免由於糾結記憶體參考造成的停頓現象、或以宣告檢查來執行已不安全地最佳化之編碼
部分、或修正由於阿爾法粒子與其他偶發因素造成的一故障、或解決精確的例外事項、或掌握中斷等等,會有各種原因。處理器105之執行緒110與執行緒120的某些實施例中,可不需要從不同的執行緒於相同週期中讀取或寫入暫存器。於是,可體認一暫存器設定可包含一統一的儲存胞元,其含有來自兩個不同執行緒之儲存胞元,但限制存取一或其他執行緒而因此簡化該儲存胞元的設計。根據該類實施例,一儲存胞元設計可含有,例如,來自A 151、B 152、C 153之三個實際的儲存胞元。一執行緒可從A 151或B 152讀取、寫入A 151或B 152、從A 151移至B 152或者從B 152移至A 151。一執行緒之暫存器組合的下半部分可被遮蓋,使得針對暫存器子集合(該標準集合)可一直轉返至一之前檢查點狀態。因此,針對某些實施例,暫存器索引可對映至該儲存結構,使得針對某些儲存胞元,標準暫存器可對映至,例如,A 151與B 152,針對某些其他儲存胞元,該非標準(或暫時)暫存器可對映至C 153。
用以回應於支援新處理器105特徵之該第二語言的指令之另一實施例,執行單元112(或執行單元122)可執行一操作檢查指令(諸如一加法檢查、減法檢查、乘法檢查、計算有效位址檢查、等等)以執行一操作(諸如一加法、減法、乘法、計算有效位址、等等)並記錄該操作結果來使用檢查邏輯元件111(或檢查邏輯元件121)作一比較。執行單元112或執行單元122亦可執行一操作測試指令以執行一第二操作(諸如一加法、減法、乘法、計算有效位址、等等)並藉
由比較該第二操作的結果與之前記錄的操作結果來執行故障偵測。針對某些實施例,例如根據偵測到一不等式或根據超過一最大值或根據某些其他條件,可採用一陷阱或一中斷。或者,若故障偵測前需要將對映至架構暫存器的暫存器回復至最近記錄的執行檢查點狀態,則可設定一旗標來條件式執行一轉返指令。某些實施例中,該第二語言之操作檢查指令與操作測試指令可藉由將一檢查指示器與一測試指示器提供至該第二語言之指令操作的一操作子集合來執行。該類實施例中,該檢查指示器針對一操作來設定時,檢查邏輯元件111或檢查邏輯元件121中之一檢查閂鎖可以該操作之輸出載入(以及該正常輸出閂鎖的載入)。同樣地,該測試指示器針對一操作來設定時,該正常輸出閂鎖的內容可與檢查邏輯元件111或檢查邏輯元件121中之檢查閂鎖的內容作比較來偵測一故障或某些其他條件。一檢查閂鎖可被加入任何虛擬類型的一執行單元來賦能故障偵測、安全性檢查、病毒偵測、除錯、等等。
圖2繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的多處理系統201之實施例。系統201包括記憶體260與處理器205。處理器205包括多處理或多執行緒硬體,執行緒210與執行緒220個別包含執行單元212與暫存器對映213、以及執行單元222與暫存器對映223。一編譯及/或轉譯邏輯元件230可(例如,經由來自記憶體260之匯流排217與267)接收以一語言編碼之可執行程式部分,執行緒T1 261與執行緒T2 262,並將其編碼為一第二語言來包括指
令以支援不編碼為該可執行程式部分,執行緒T1 261與執行緒T2 262,編碼之初始語言的一或更多處理器205特徵。某些替代實施例中,該初始語言可為,例如,一不同處理器架構之一高階程式語言、或一解釋語言、或一類語言、或一機器語言、或甚至,例如,一傳統處理器之相同或一類似的機器語言。以該第二語言編碼之可執行程式部分,執行緒T1’241與執行緒T2’242,可儲存於,例如記憶體260與I快取記憶體240中。某些實施例中,該第二語言可包括新指令來支援新的處理器205特徵,但亦可具有由具有共享一共同指令集之至少一部分的不同微架構之處理器執行的一指令基礎。用以回應於支援新處理器105特徵之該第二語言的指令之一實施例,執行單元212可執行一提交指令來記錄對映至該可執行程式部分,例如T1’241之架構暫存器的暫存器之一第一執行檢查點狀態(例如,對映至暫存器對映213之R1與R2的暫存器A 251中的暫存器可記錄在暫存器B 252中作為一執行檢查點狀態,而對映至暫存器對映213之Rn的暫存器C 253中的暫時儲存不記錄在該執行檢查點狀態)。執行單元222可執行另一提交指令來記錄對映至該可執行程式部分,例如T1’242之架構暫存器的暫存器之一執行檢查點狀態(例如,對映至暫存器對映223之R1與R3的暫存器A 251中的暫存器可記錄在暫存器B 252中作為一執行檢查點狀態,而對映至暫存器對映223之R4與Rn的暫存器C 253中的暫時儲存不記錄在該執行檢查點狀態)。此外,用以回應於支援新處理器205特徵之該第二語言的指令,若需
要將對映至架構暫存器的暫存器個別回復至最近個別記錄的執行檢查點狀態,執行單元212及/或執行單元222可執行一轉返指令。
用以回應於支援新處理器205特徵之該第二語言的指令之另一實施例,執行單元212(或執行單元222)可執行一操作檢查指令(諸如一加法檢查、減法檢查、乘法檢查、計算有效位址檢查、等等)以執行一操作(諸如一加法、減法、乘法、計算有效位址、等等)並記錄該操作結果來使用檢查邏輯元件211(或檢查邏輯元件221)作一比較。執行單元212或執行單元222亦可執行一操作測試指令以執行一第二操作(諸如一加法、減法、乘法、計算有效位址、等等)並藉由比較該第二操作的結果與之前記錄的操作結果來執行故障偵測。針對某些實施例,例如根據偵測到一不等式或根據超過一最大值或根據某些其他條件,可採用一陷阱或一中斷。或者,若故障偵測前需要將對映至架構暫存器的暫存器回復至最近記錄的執行檢查點狀態,則可設定一旗標來條件式執行一轉返指令。
圖3繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序之一實施例的流程圖。本文揭示之程序301與其他程序可由包含由通用機器或由專用機器或由兩者的一組合執行之專屬硬體或軟體或韌體操作碼的處理方塊來執行。
處理方塊310中,以一第一語言編碼之一可執行執行緒部分於一處理器中接收。處理方塊320中,該可執行
執行緒部分編碼為一第二語言來包括一或更多指令以支援該第一語言編碼不支援的新處理器特徵。處理方塊330中,該第二語言之可執行執行緒部分可儲存於,例如,系統記憶體260及/或一處理器快取記憶體240中。處理方塊340中,該第二語言之可執行執行緒部分的一操作可被執行來使用該等新處理器特徵。
可體認程序301可用來由之前以語言編碼,不支援該等新處理器特徵之程式的重新編譯、轉譯或工具提供來改善效能、故障容錯、安全性、病毒偵測、等等。可體認該類程式之前已使用語言,包括但不侷限於一高階程式語言、或一解釋語言、或一不同機器語言、或甚至,例如,一傳統處理器之相同或一類似的機器語言來編碼。
圖4繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序之一替代實施例的流程圖。處理方塊410中,以一第一語言,例如,一高階程式語言、或一解釋語言、或一不同處理器架構之一機器語言、或甚至,亦即一傳統處理器之相同或一類似的機器語言編碼之一可執行執行緒部分於一處理器中接收。處理方塊420中,該可執行執行緒部分可編碼為一第二語言來包括一或更多指令以支援該第一語言編碼不支援的新處理器特徵。處理方塊430中,該第二語言之可執行執行緒部分可儲存於,例如,系統記憶體260及/或一處理器快取記憶體240中。
處理方塊440中,可執行該第二語言之一提交操作來使用包括記錄對映至架構暫存器之暫存器的一執行檢
查點狀態之該等新處理器特徵。處理方塊450中,可作一決定對映至架構暫存器之暫存器是否應回復至一之前執行檢查點狀態。若需回復,則處理方塊460中,可執行該第二語言之一轉返操作來使用包括回復該之前執行檢查點狀態的該等新處理器特徵,並且處理進行直到處理方塊440中另一提交操作被執行為止。
另外處理方塊470中,該第二語言之執行緒部分的執行會繼續直到處理方塊480中其完成為止。之後處理方塊490中,另一提交操作可被執行來記錄對映至架構暫存器之暫存器的另一執行檢查點狀態。
可體認程序401在無顯著增加實施態樣成本的情況下,可提供高產量處理器中典型的故障容錯及/或故障偵測之特徵。於故障容錯為電腦系統之一高度所需特徵的極端環境中,包含具有轉返功能之硬體編譯及/或轉譯的商業處理器可提供故障容錯及/或故障偵測以及高階整合的優點,且更小更輕、並比諸如FPGA技術之其他替代方案具有更好的能源效率。因為在一封裝體中減少電晶體維度與增加數量會由於阿爾法粒子與其他偶發因素而增加故障機率,所以該類特徵的需求會日漸增加。
圖5繪示一使用具有故障偵測與轉返功能之硬體編譯及/或轉譯技術的一程序501之另一替代實施例的流程圖。處理方塊510中,以一第一語言,例如,一高階程式語言、或一解釋語言、或一不同處理器架構之一機器語言、或甚至,亦即一傳統處理器之相同或一類似的機器語言編
碼之一可執行執行緒部分於一處理器中接收。處理方塊520中,該可執行執行緒部分可編碼為一第二語言來包括一或更多指令以支援該第一語言編碼不支援的新處理器特徵。處理方塊530中,該第二語言之可執行執行緒部分可儲存於,例如,系統記憶體及/或一處理器快取記憶體中。
處理方塊540中,可執行一提交操作來記錄對映至架構暫存器之暫存器的一執行檢查點狀態。處理方塊544中,可執行該第二語言之一操作檢查指令來使用包括記錄一操作結果來作為一未來操作,例如,偵測一故障或病毒的一比較之新處理器特徵。處理方塊548中,可執行該第二語言之一操作測試指令來使用包括比較一操作結果與一之前操作結果的一故障偵測操作之新處理器特徵。處理方塊550中,可作一決定對映至架構暫存器之暫存器是否應回復至一之前執行檢查點狀態。若需回復,則處理方塊560中,可執行一轉返操作來回復該之前執行檢查點狀態,並且處理進行直到處理方塊540中另一提交操作被執行為止。
另外處理方塊570中,該第二語言之執行緒部分的執行會繼續直到處理方塊580中其完成為止。之後處理方塊590中,另一提交操作可被執行來記錄對映至架構暫存器之暫存器的另一執行檢查點狀態。
透過硬體編譯及/或轉譯,支援新處理器特徵之指令可用來由之前以語言編碼,不支援該等新處理器特徵之程式的重新編譯、轉譯或工具提供以改善效能、或故障容錯、安全性、或病毒偵測、等等。可體認該類程式之前
已使用語言,包括但不侷限於一高階程式語言、或一解釋語言、或一不同機器語言、或甚至,例如,一傳統處理器之相同或一類似的機器語言來編碼。
亦可體認支援具有轉返功能之硬體編譯及/或轉譯的某些實施例在無顯著增加實施態樣成本的情況下,可提供高產量處理器中典型的故障容錯及/或故障偵測之特徵。於故障容錯為電腦系統之一高度所需特徵的極端環境中,包含具有轉返功能之硬體編譯及/或轉譯的商業處理器可提供故障容錯及/或故障偵測以及高階整合的優點,且更小更輕、並比諸如FPGA技術之其他替代方案具有更好的能源效率。因為在一封裝體中減少電晶體維度與增加數量會由於阿爾法粒子與其他偶發因素而增加故障機率,所以該類特徵的需求會日漸增加。
上述說明意欲繪示本發明之較佳實施例。從以上討論中,應亦很明顯地尤其在該類技術領域中,成長會相當快速而不易預知進一步進展,在不違背本發明之原則且位於該等後附申請專利範圍及其等效項目中的情況下,本發明之安排與細節可由業界熟於此技者加以修改。
105‧‧‧處理器
110、120‧‧‧執行緒
111、121‧‧‧檢查邏輯元件
112、122‧‧‧執行單元
113、123‧‧‧暫存器對映
117‧‧‧匯流排
130‧‧‧編譯及/或轉譯邏輯元件
131‧‧‧執行緒T1
132‧‧‧執行緒T2
140‧‧‧I快取記憶體
141‧‧‧T1’
142‧‧‧T2’
151‧‧‧暫存器A
152‧‧‧暫存器B
153‧‧‧暫存器C
Claims (30)
- 一種用以部署處理器特徵之方法,該方法包含下列步驟:接收一處理器中之一可執行執行緒部分,該可執行執行緒以一第一語言編碼;將該可執行執行緒部分編碼為一第二語言來包括一或更多指令以支援不編碼為該可執行執行緒部分之該第一語言編碼的一或更多處理器特徵;以該第二語言來儲存該可執行執行緒部分;以及以該第二語言來執行該可執行執行緒部分以使用該一或更多處理器特徵。
- 如申請專利範圍第1項之方法,其中支援一或更多處理器特徵之該一或更多指令包含一轉返指令。
- 如申請專利範圍第2項之方法,其中該轉返指令支援之該一或更多處理器特徵包含將對映至架構暫存器之暫存器回復至一之前執行檢查點狀態。
- 如申請專利範圍第2項之方法,其中支援一或更多處理器特徵之該一或更多指令包含一提交指令。
- 如申請專利範圍第4項之方法,其中該提交指令支援之該一或更多處理器特徵包含記錄對映至架構暫存器之暫存器的一執行檢查點狀態。
- 如申請專利範圍第4項之方法,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含對映至架構暫存器之暫存器中的狀態之理論性修改以及該等暫存器 回復至一之前執行檢查點狀態。
- 如申請專利範圍第6項之方法,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含故障容錯與故障偵測。
- 如申請專利範圍第6項之方法,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含病毒偵測。
- 如申請專利範圍第1項之方法,其中支援一或更多處理器特徵之該一或更多指令包含一操作測試指令。
- 如申請專利範圍第9項之方法,其中該操作測試指令支援之該一或更多處理器特徵包含比較一操作結果與一之前操作結果之一故障偵測操作。
- 如申請專利範圍第9項之方法,其中支援一或更多處理器特徵之該一或更多指令包含一操作檢查指令。
- 如申請專利範圍第11項之方法,其中該操作檢查指令支援之該一或更多處理器特徵包含由一未來的操作測試指令來記錄一比較之一操作結果。
- 一種用於硬體轉譯之製造物件,其包含:一包括用於硬體轉譯之資料與指令的機器可存取媒體,使得其由一機器存取時,可使該機器執行下列步驟:接收一處理器中之一可執行執行緒部分,該可執行執行緒以一第一語言編碼;將該可執行執行緒部分編碼為一第二語言來包括一或更多指令以支援不編碼為該可執行執行緒部分之 該第一語言編碼的一或更多處理器特徵;以該第二語言來儲存該可執行執行緒部分;以及以該第二語言來執行該可執行執行緒部分以使用該一或更多處理器特徵。
- 如申請專利範圍第13項之製造物件,其中支援一或更多處理器特徵之該一或更多指令包含一轉返指令。
- 如申請專利範圍第14項之製造物件,其中該轉返指令支援之該一或更多處理器特徵包含將對映至架構暫存器之暫存器回復至一之前執行檢查點狀態。
- 如申請專利範圍第14項之製造物件,其中支援一或更多處理器特徵之該一或更多指令包含一提交指令。
- 如申請專利範圍第16項之製造物件,其中該提交指令支援之該一或更多處理器特徵包含記錄對映至架構暫存器之暫存器的一執行檢查點狀態。
- 如申請專利範圍第16項之製造物件,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含對映至架構暫存器之暫存器中的狀態之理論性修改以及該等暫存器回復至一之前執行檢查點狀態。
- 如申請專利範圍第18項之製造物件,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含故障容錯與故障偵測。
- 如申請專利範圍第18項之製造物件,其中該轉返指令與該提交指令支援之該一或更多處理器特徵包含病毒偵測。
- 一種處理器,其包含:一轉譯邏輯元件,其用以接收以一第一語言編碼之一可執行程式部分,並將該可執行程式部分編碼為一第二語言來包括指令以支援不編碼為該可執行程式部分之該第一語言編碼的一或更多處理器特徵;一執行單元,其用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,來執行:一操作檢查指令,其用以執行一第一操作並記錄該第一操作的結果來作一比較,以及一操作測試指令,其用以執行一第二操作並藉由比較該第二操作的結果與該記錄的第一操作的結果來執行一故障偵測。
- 如申請專利範圍第21項之處理器,其中該執行單元用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,亦執行:一提交指令,其用來記錄對映至該處理器之架構暫存器的暫存器之一執行檢查點狀態,以及一轉返指令,其用來將對映至該處理器之架構暫存器的暫存器回復至該執行檢查點狀態。
- 一種多處理器,其包含:一編譯/轉譯邏輯元件,其用以接收以一第一語言編碼之一第一可執行程式部分,並將該第一可執行程式部分編碼為一第二語言來包括指令以支援不編碼為該第一可執行程式部分之該第一語言編碼的一或更多處理器特徵; 一第一執行單元,其用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,來執行:一第一提交指令,其用來記錄對映至該第一可執行程式部分之架構暫存器的暫存器之一第一執行檢查點狀態,以及一轉返指令,其用來將對映至該第一可執行程式部分之架構暫存器的暫存器回復至該第一執行檢查點狀態。
- 如申請專利範圍第23項之多處理器,其中該編譯/轉譯邏輯元件用於接收以該第一語言編碼之一第二可執行程式部分,並將該第二可執行程式部分編碼為該第二語言來包括指令以支援不編碼為該第二可執行程式部分之該第一語言編碼的該一或更多處理器特徵,該多處理器包含:一第二執行單元,其用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,來執行:一第二提交指令,以記錄對映至該第二可執行程式部分之架構暫存器的暫存器之一第二執行檢查點狀態,以及一第二轉返指令,以將對映至該第二可執行程式部分之架構暫存器的暫存器回復至該第二執行檢查點狀態。
- 如申請專利範圍第24項之多處理器,其中對映至該第一可執行程式部分之架構暫存器的該等暫存器以及 對映至該第二可執行程式部分之架構暫存器的該等暫存器從該多處理器中之相同實體暫存器檔案來配置。
- 如申請專利範圍第25項之多處理器,其中該等第一與第二執行單元用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,亦執行:一操作檢查指令,其用以執行一第一操作並記錄該第一操作的結果來作一比較,以及一操作測試指令,其用以執行一第二操作並藉由比較該第二操作的結果與該記錄的第一操作的結果來執行一故障偵測。
- 一種計算系統,其包含:一用以儲存以一第一語言編碼之一第一可執行程式部分的可定址記憶體;以及一多處理器,其包括:一編譯/轉譯邏輯元件,其用以接收該第一可執行程式部分,並將該第一可執行程式部分編碼為一第二語言來包括指令以支援不編碼為該第一可執行程式部分之該第一語言編碼的一或更多處理器特徵;以及一第一執行單元,其用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,來執行:一第一提交指令,以記錄對映至該第一可執行程式部分之架構暫存器的暫存器之一第一執行檢查點狀態,以及一轉返指令,以將對映至該第一可執行程式 部分之架構暫存器的該等暫存器回復至該第一執行檢查點狀態。
- 如申請專利範圍第27項之系統,該可定址記憶體用來儲存以該第一語言編碼之一第二可執行程式部分,其中該編譯/轉譯邏輯元件用來接收該第二可執行程式部分,並將該第二可執行程式部分編碼為該第二語言來包括指令以支援不編碼為該第二可執行程式部分之該第一語言編碼的該一或更多處理器特徵,該多處理器包含:一第二執行單元,其用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,來執行:一第二提交指令,以記錄對映至該第二可執行程式部分之架構暫存器的暫存器之一第二執行檢查點狀態,以及一第二轉返指令,以將對映至該第二可執行程式部分之架構暫存器的該等暫存器回復至該第二執行檢查點狀態。
- 如申請專利範圍第28項之系統,其中該等第一與第二執行單元用以回應於支援該一或更多處理器特徵之該第二語言的該等指令,亦執行:一操作檢查指令,其用以執行一第一操作並記錄該第一操作的結果來作一比較,以及一操作測試指令,其用以執行一第二操作並藉由比較該第二操作的結果與該記錄的第一操作的結果來執行一故障偵測。
- 如申請專利範圍第29項之系統,其中對映至該第一可執行程式部分之架構暫存器的該等暫存器以及對映至該第二可執行程式部分之架構暫存器的該等暫存器從該多處理器中之相同實體暫存器檔案來配置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/341,812 US8893094B2 (en) | 2011-12-30 | 2011-12-30 | Hardware compilation and/or translation with fault detection and roll back functionality |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346765A TW201346765A (zh) | 2013-11-16 |
TWI540509B true TWI540509B (zh) | 2016-07-01 |
Family
ID=48695920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101150102A TWI540509B (zh) | 2011-12-30 | 2012-12-26 | 用以部署處理器特徵之方法以及用於硬體轉譯之製造物件、含有故障偵測與轉返功能的處理器、多處理器以及計算系統 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8893094B2 (zh) |
TW (1) | TWI540509B (zh) |
WO (1) | WO2013101840A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
WO2013048468A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US9489283B1 (en) * | 2013-03-14 | 2016-11-08 | The Mathworks, Inc. | Unified hardware and software debugging |
US20170286110A1 (en) * | 2016-03-31 | 2017-10-05 | Intel Corporation | Auxiliary Cache for Reducing Instruction Fetch and Decode Bandwidth Requirements |
US9690680B1 (en) * | 2016-09-23 | 2017-06-27 | International Business Machines Corporation | Testing hybrid instruction architecture |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154877A (en) * | 1997-07-03 | 2000-11-28 | The University Of Iowa Research Foundation | Method and apparatus for portable checkpointing using data structure metrics and conversion functions |
US6161219A (en) * | 1997-07-03 | 2000-12-12 | The University Of Iowa Research Foundation | System and method for providing checkpointing with precompile directives and supporting software to produce checkpoints, independent of environment constraints |
US6988183B1 (en) * | 1998-06-26 | 2006-01-17 | Derek Chi-Lan Wong | Methods for increasing instruction-level parallelism in microprocessors and digital system |
US20020100029A1 (en) * | 2000-07-20 | 2002-07-25 | Matt Bowen | System, method and article of manufacture for compiling and invoking C functions in hardware |
US6658656B1 (en) | 2000-10-31 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions |
US6708288B1 (en) * | 2000-10-31 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Compiler-based checkpointing for support of error recovery |
US7131119B2 (en) | 2001-05-30 | 2006-10-31 | International Business Machines Corporation | Code optimization |
US7346897B2 (en) * | 2002-11-20 | 2008-03-18 | Purenative Software Corporation | System for translating programming languages |
US7367057B2 (en) * | 2003-06-30 | 2008-04-29 | Intel Corporation | Processor based system and method for virus detection |
US7206969B2 (en) * | 2003-09-10 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Opportunistic pattern-based CPU functional testing |
US7581210B2 (en) * | 2003-09-10 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | Compiler-scheduled CPU functional testing |
US20050071438A1 (en) | 2003-09-30 | 2005-03-31 | Shih-Wei Liao | Methods and apparatuses for compiler-creating helper threads for multi-threading |
US8166282B2 (en) | 2004-07-21 | 2012-04-24 | Intel Corporation | Multi-version register file for multithreading processors with live-in precomputation |
US7496735B2 (en) | 2004-11-22 | 2009-02-24 | Strandera Corporation | Method and apparatus for incremental commitment to architectural state in a microprocessor |
TW200617703A (en) * | 2004-11-30 | 2006-06-01 | Tokyo Electron Ltd | Dynamically reconfigurable processor |
US7716638B2 (en) * | 2005-03-04 | 2010-05-11 | Microsoft Corporation | Methods for describing processor features |
US20080005332A1 (en) | 2006-06-08 | 2008-01-03 | Georgia Tech Research Corporation | Method for Opportunistic Computing |
US8060728B2 (en) | 2007-05-14 | 2011-11-15 | Apple Inc. | Generating stop indicators during vector processing |
US8584102B2 (en) * | 2007-12-27 | 2013-11-12 | Microsoft Corporation | Creating and using deltas to modify existing computer code |
US7966459B2 (en) | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
US20100199269A1 (en) | 2008-02-05 | 2010-08-05 | Panasonic Corporation | Program optimization device and program optimization method |
US8621183B2 (en) | 2008-07-28 | 2013-12-31 | Advanced Micro Devices, Inc. | Processor with support for nested speculative sections with different transactional modes |
US8909902B2 (en) | 2008-11-24 | 2014-12-09 | Intel Corporation | Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution |
US20100146241A1 (en) * | 2008-12-09 | 2010-06-10 | Novafora, Inc. | Modified-SIMD Data Processing Architecture |
US20110283089A1 (en) * | 2009-01-28 | 2011-11-17 | Harshal Ingale | modularized micro processor design |
US9940138B2 (en) | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
US20110208921A1 (en) | 2010-02-19 | 2011-08-25 | Pohlack Martin T | Inverted default semantics for in-speculative-region memory accesses |
US8688963B2 (en) | 2010-04-22 | 2014-04-01 | Oracle International Corporation | Checkpoint allocation in a speculative processor |
US9501285B2 (en) * | 2010-05-27 | 2016-11-22 | International Business Machines Corporation | Register allocation to threads |
US9880848B2 (en) | 2010-06-11 | 2018-01-30 | Advanced Micro Devices, Inc. | Processor support for hardware transactional memory |
US8560816B2 (en) | 2010-06-30 | 2013-10-15 | Oracle International Corporation | System and method for performing incremental register checkpointing in transactional memory |
US20120079245A1 (en) | 2010-09-25 | 2012-03-29 | Cheng Wang | Dynamic optimization for conditional commit |
-
2011
- 2011-12-30 US US13/341,812 patent/US8893094B2/en not_active Expired - Fee Related
-
2012
- 2012-12-26 WO PCT/US2012/071668 patent/WO2013101840A1/en active Application Filing
- 2012-12-26 TW TW101150102A patent/TWI540509B/zh not_active IP Right Cessation
-
2014
- 2014-10-14 US US14/513,402 patent/US9317263B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9317263B2 (en) | 2016-04-19 |
WO2013101840A1 (en) | 2013-07-04 |
TW201346765A (zh) | 2013-11-16 |
US20150046910A1 (en) | 2015-02-12 |
US8893094B2 (en) | 2014-11-18 |
US20130173893A1 (en) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | DAFT: Decoupled acyclic fault tolerance | |
EP3507698B1 (en) | Program tracing for time travel debugging and analysis | |
Wang et al. | Compiler-managed software-based redundant multi-threading for transient fault detection | |
KR101559090B1 (ko) | 이종 코어를 위한 자동 커널 마이그레이션 | |
US11507475B2 (en) | Error detection using vector processing circuitry | |
Collange et al. | Dynamic detection of uniform and affine vectors in GPGPU computations | |
Eizenberg et al. | Barracuda: Binary-level analysis of runtime races in cuda programs | |
US9600288B1 (en) | Result bypass cache | |
TWI540509B (zh) | 用以部署處理器特徵之方法以及用於硬體轉譯之製造物件、含有故障偵測與轉返功能的處理器、多處理器以及計算系統 | |
Best et al. | Synchronization via scheduling: techniques for efficiently managing shared state | |
JP2008536236A (ja) | コンピュータシステムにおけるデータ値の整合性(コヒーレンス:coherence) | |
Meixner et al. | Error detection using dynamic dataflow verification | |
Perez-Cerrolaza et al. | GPU devices for safety-critical systems: A survey | |
Sheikh et al. | Control-flow decoupling | |
Nathan et al. | Argus-G: Comprehensive, low-cost error detection for GPGPU cores | |
Nagarajan et al. | ECMon: exposing cache events for monitoring | |
Condia et al. | On the testing of special memories in GPGPUs | |
Condia et al. | Analyzing the sensitivity of gpu pipeline registers to single events upsets | |
Rosa et al. | Extensive evaluation of programming models and ISAs impact on multicore soft error reliability | |
Zhang et al. | GPU-TLS: An efficient runtime for speculative loop parallelization on gpus | |
Yu et al. | Symbolic consistency checking of OpenMP parallel programs | |
Floridia et al. | Deterministic cache-based execution of on-line self-test routines in multi-core automotive system-on-chips | |
Kim | Supporting virtual memory in GPGPU without supporting precise exceptions | |
Lee et al. | Automatic parallelization of fine-grained metafunctions on a chip multiprocessor | |
Haas | Fault-tolerant execution of parallel applications on x86 multi-core processors with hardware transactional memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |