TW201335844A - 控制器、位址選擇器及替換錯誤指令的方法 - Google Patents
控制器、位址選擇器及替換錯誤指令的方法 Download PDFInfo
- Publication number
- TW201335844A TW201335844A TW101134757A TW101134757A TW201335844A TW 201335844 A TW201335844 A TW 201335844A TW 101134757 A TW101134757 A TW 101134757A TW 101134757 A TW101134757 A TW 101134757A TW 201335844 A TW201335844 A TW 201335844A
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- instruction
- alternate
- current
- preset
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000002950 deficient Effects 0.000 title abstract 5
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 101000617541 Danio rerio Presenilin-2 Proteins 0.000 description 3
- 101150086396 PRE1 gene Proteins 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 101150065808 pre3 gene Proteins 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
一種控制器、位址選擇器以及替換錯誤指令的方法。該控制器包括:一非可重寫記憶體,在多個原始位址儲存多個原始指令;一備用記憶體,在多個備用位址儲存多個備用指令,;一位址選擇器,耦接至該非可重寫記憶體及該備用記憶體,透過比較一當前位址與指向多個錯誤指令中之一錯誤指令的一預設位址,從一組位址中選出一執行位址,並提供該多個備用位址以代替指向該多個錯誤指令的該多個原始位址,其中,該組位址包括該多個原始位址及該多個備用位址;以及一處理器,耦接至該非可重寫記憶體、該備用記憶體以及該位址選擇器,提供該當前位址給該位址選擇器,並執行儲存於該執行位址的一指令。
Description
本發明係有關一種電子技術領域,尤其是一種控制器、位址選擇器及替換錯誤指令的方法。
許多電子設備具有系統單晶片(System on Chip),系統單晶片常包括無法改變的嵌入式韌體。在理想的情況下,韌體並不會出現錯誤,但實際使用和測試系統單晶片時,錯誤有可能出現。補正指令可代替系統單晶片中的韌體以避免重新設計系統單晶片,補正指令可儲存於隨機存取記憶體(RAM)。
傳統的補正韌體的方法包括預測韌體中可能存在的錯誤並預先設計用以補正韌體的備用代碼。韌體可儲存於唯讀記憶體(ROM),備用代碼可儲存於隨機存取記憶體。為使備用代碼能補正之後發現的所有錯誤,備用代碼中可能包括不需要的代碼,例如,實際上並不存在的錯誤所對應的備用代碼,並佔據隨機存取記憶體中相當大的空間。更進一步地,由於對於錯誤的預測結果可能與韌體的執行結果不完全一致,有可能發生備用代碼無法補正實際上出現的所有錯誤之狀況。
本發明的目的為提供一種控制器、位址選擇器及替換錯誤指令的方法,可更充分有效地補正韌體內的錯誤指令,
並節省備用記憶體的儲存空間。
本發明提供了一種位址選擇器,包括:一比較單元,比較從一處理器接收的一當前位址與指向一錯誤指令的一預設位址,並提供一比較結果;以及一多工器,耦接至該比較單元,接收該當前位址及指向一備用指令的一備用位址,且若該當前位址與該預設位址匹配,選擇該備用位址以代替該當前位址。
本發明還提供了一種控制器,包括:一非可重寫記憶體,在多個原始位址儲存多個原始指令;一備用記憶體,在多個備用位址儲存多個備用指令,;一位址選擇器,耦接至該非可重寫記憶體及該備用記憶體,透過比較一當前位址與指向多個錯誤指令中之一錯誤指令的一預設位址,從一組位址中選出一執行位址,並提供該多個備用位址以代替指向該多個錯誤指令的該多個原始位址,其中,該組位址包括該多個原始位址及該多個備用位址;以及一處理器,耦接至該非可重寫記憶體、該備用記憶體以及該位址選擇器,提供該當前位址給該位址選擇器,並執行儲存於該執行位址的一指令。
本發明還提供一種替換錯誤指令的方法,包括:從一處理器接收一當前位址;將該當前位址提供給一位址選擇器;該位址選擇器比較該當前位址與指向該錯誤指令的一預設位址;若該當前位址與該預設位址匹配,選擇指向一備用指令的一備用位址,並用該備用位址替換該當前位址;以及該處理器執行儲存於該備用位址的該備用指令。
以下將對本發明的實施例給出詳細的說明。雖然本發明將結合實施例進行闡述,但應理解這並非意指將本發明限定於這些實施例。相反地,本發明意在涵蓋由後附申請專利範圍所界定的本發明精神和範圍內所定義的各種變化、修改和均等物。
此外,在以下對本發明的詳細描述中,為了提供針對本發明的完全的理解,提供了大量的具體細節。然而,於本技術領域中具有通常知識者將理解,沒有這些具體細節,本發明同樣可以實施。在另外的一些實例中,對於大家熟知的方法、程序、元件和電路未作詳細描述,以便於凸顯本發明之主旨。
圖1所示為本發明一個實施例的電子設備100的結構示意圖。電子設備100包括通訊匯流排106、主機108、主機介面110、記憶卡,例如,安全數位(SD)卡104、控制器102以及備用指令源112。主機108可為電腦或照相機,但不以此為限。主機介面110可為一邏輯電路,透過通訊匯流排106在主機108與其他子系統(例如,控制器102、以及安全數位卡104等)間進行通訊。控制器102可控制主機108在安全數位卡104上存取資料,例如,從安全數位卡104讀取資料或將資料寫入安全數位卡104。
控制器102可用於如圖1所示的數位照相機系統,但不以此為限。例如,主機108是數位照相機中的中央處理單元,控制器102是整合在數位照相機中的讀卡機。數位照相機可透過讀卡機在安全數位卡104上存取資料,例如,
如從安全數位卡104上讀取資料或將資料寫入安全數位卡104。
更詳細地說,在操作上,主機108透過主機介面110向控制器102發送一命令,例如,指示控制器102從安全數位卡104讀取資料的命令。控制器102接收命令後,並相應執行儲存於控制器102內的指令以從安全數位卡104中讀取資料並將取回的資料發送給主機108。主機108、主機介面110、安全數位卡104及控制器102透過通訊匯流排106進行通訊。
如圖1所示,控制器102包括處理器124、位址選擇器132、非可重寫記憶體,例如,唯讀記憶體126以及備用記憶體128。在一個實施例中,備用記憶體128為可重寫記憶體,例如,隨機存取記憶體。唯讀記憶體126在一組原始位址ADD_O中存放作為嵌入式韌體的一組原始指令。備用記憶體128在一組備用位址ADD_B中存放一組備用指令。備用記憶體128還可存放電子設備100的其他資料或指令。
在操作中,工程師測試控制器102或終端客戶使用包括一控制器102的系統時,處理器124接收來自主機108的命令並完成相應功能。在一實施例中,處理器124接收來自主機108的命令並透過執行原始指令完成相應命令的功能。在另一實施例中,處理器124接收來自主機108的命令並透過執行原始指令完成與命令不相應的功能,例如,不符合期望的功能,此實施例則代表原始指令可能有誤。為完成與命令相應的功能,處理器124可執行備用指令而
非具有錯誤之原始指令。
在以上實施例中,儲存於備用記憶體128的備用指令對儲存於唯讀記憶體126的原始指令中的錯誤指令進行補正。更詳細地說,最初處理器124執行原始指令後,執行結果表明原始指令中有錯誤。因此,處理器124執行原始指令完畢後,可根據錯誤指令決定一備用指令,例如,根據錯誤指令設計備用指令以補正錯誤指令,並將備用指令儲存於備用記憶體128中的備用位址ADD_B。在一個實施例中,備用指令源自外部(例如,網站或伺服器),並下載儲存於備用指令源112。持有含錯誤指令的電氣設備的消費者(或終端用戶)可從電氣設備製造商處獲取備用指令。處理器124從備用指令源112下載備用指令,並在備用記憶體128中儲存備用指令。在另一實施例中,備用指令儲存於外部儲存單元,且備用指令源112是耦接至外部的介面。處理器124透過備用指令源112從外部儲存單元下載備用指令,且處理器124將備用指令儲存於備用記憶體128中的備用位址ADD_B。在另一實施例中,終端用戶或工程師將備用指令儲存於主機108,且主機108將備用指令儲存於備用記憶體128。
位址選擇器132從一組位址ADD_G中選擇一位址。一組位址包括指向原始指令的原始位址ADD_O及指向儲存於備用記憶體128中的備用指令的備用位址ADD_B。處理器124提供位址選擇器132一當前位址,位址選擇器132根據當前位址選擇位址,處理器124執行位址選擇器132選擇的位址所儲存的指令。
在一實施例中,若處理器124向位址選擇器132提供一組原始位址中的一個原始位址,且這個原始位址指向一條沒有錯誤的原始指令,則位址選擇器132選擇處理器124提供的原始位址,且處理器124執行這個原始位址所儲存的原始指令。在另一實施例中,備用指令儲存於備用記憶體128內且位址選擇器132做相應調整,例如,處理器124向位址選擇器132提供一組原始位址中的一個原始位址,且這個原始位址指向一條有錯誤的原始指令,則位址選擇器132選擇與處理器124提供的原始位址相對應的備用位址,且處理器124執行相應的備用指令,備用指令儲存於位址選擇器132選擇的備用位址。處理器124、位址選擇器132、唯讀記憶體126及備用記憶體128透過通訊匯流排106進行通訊。
圖2所示為本發明一實施例的安裝有錯誤指令及備用指令的控制器102的結構示意圖。如圖2所示,原始指令,例如,INS_a、...、INS_b、INS_c、...、INS_d、INS_e、...、INS_f,分別儲存於唯讀記憶體126內的位址A至A+n(n=1,2,...)處。根據執行原始指令的結果,可知原始指令INS_c至INS_d有錯誤。透過使處理器124執行備用指令INS_c’至INS_d’而非錯誤指令INS_c至INS_d可補正錯誤指令INS_c至INS_d。即,處理器124可透過依序執行指令INS_a至INS_b、INS_c’至INS_d’及INS_e至INS_f以完成正確功能。補正指令INS_c’至INS_d’分別儲存於備用記憶體128內的位址A’+k+1至A’+m處(k=1,2,...;m=k+2,k+3,...)。更進一步地,位址選擇器132
按一種方式選擇位址以使處理器124執行備用指令INS_c’至INS_d’及除了錯誤指令INS_c至INS_d外的原始指令INS_a至INS_f。即,位址選擇器132依序選擇位址A至A+k、A’+k+1至A’+m及A+m+1至A+n,且處理器124依序執行指令INS_a至INS_b、INS_c’至INS_d’及INS_e至INS_f。
更詳細地,可根據錯誤指令的位址決定預設位址APRE。在一個實施例中,預設位址APRE為指向被備用指令代替的錯誤指令的位址。例如,預設位址APRE為指向包含錯誤指令的一組指令的首個指令的位址,例如,錯誤指令INS_c至INS_d的起始位址A+k+1。位址選擇器132透過比較處理器124提供的當前位址ADD_C與預設位址APRE從一組位址ADD_G中選擇執行位址。在一個實施例中,此處“當前位址”為指向處理器124在當前時刻執行的指令的位址。當控制器102被供電時,“當前位址”可為指向一組指令的一組位址之初始位址。此外,“當前位址”可為鄰近前一位址之後的位址,前一位址指向執行於上一時刻的指令。更進一步地,“當前位址”可由指令設定。例如,一組位址ADD_G包括位址A至A+n及A’+k+1至A’+m。在一個實施例中,若當前位址ADD_C與預設位址A+k+1匹配,則位址選擇器132選擇備用位址,例如,相應於預設位址A+k+1的位址A’+k+1。備用位址A’+k+1是備用位址A’+k+1至A’+m的起始位址。位址A+k+1指向指令INS_c,位址A’+k+1指向指令INS_c’,指令INS_c’相應於指令INS_c。因此,若當前位址ADD_C與預設位址A+k+1匹
配,則相應地,處理器124執行指令INS_c’而非指令INS_c。若當前位址ADD_C與預設位址A+k+1不匹配,則位址選擇器132選擇當前位址ADD_C。
在操作的一種情形中,當前位址ADD_C為位址A。位址選擇器132比較當前位址ADD_C與預設位址A+k+1。由於當前位址ADD_C與預設位址A+k+1不匹配,位址選擇器132選擇當前位址A。處理器124執行儲存於位址A的指令INS_a完畢後,當前位址改變為A+1。相似地,由於位址A+1與預設位址A+k+1不匹配,位址選擇器132選擇位址A+1。在後續過程中,位址選擇器132以相似的方式選擇位址A+2至A+k。
當前位址ADD_C為位址A+k+1時,由於當前位址ADD_C與預設位址A+k+1匹配,位址選擇器132選擇備用記憶體128中相應的備用位址A’+k+1。在一種情形中,儲存於位址A’+k+1的指令INS_c’指示處理器124將當前位址設為A’+k+2。因此,處理器124執行指令INS_c’完畢後,當前位址ADD_C改變為A’+k+2。由於當前位址ADD_C與預設位址A+k+1不匹配,位址選擇器132選擇位址A’+k+2。在後續過程中,位址選擇器132以相似的方式選擇位址A’+k+2至A’+m。
在一個實施例中,儲存於位址A’+m的指令INS_d’指示處理器124將當前位址ADD_C設為A+m+1。由於當前位址ADD_C與預設位址A+k+1不匹配,位址選擇器132選擇位址A+m+1,且處理器124執行儲存於位址A+m+1的原始指令INS_e。
在另一實施例中,執行原始指令INS_a至INS_f的結果顯示僅有指令INS_c有錯誤。處理器124執行備用指令INS_c’而非錯誤指令INS_c,可補正原始指令INS_c。因此,將預設位址APRE設為A+k+1。當前位址ADD_C為位址A+k+1,位址選擇器132選擇備用記憶體128內相應地備用位址A’+k+1。儲存於位址A’+k+1處的指令INS_c’並不指示處理器124將當前位址設為備用記憶體128內的位址。因此,處理器124執行指令INS_c’完畢後,當前位址為跟隨先前當前位址A+k+1的位址A+k+2。由於當前位址ADD_C與預設位址A+k+1不匹配,位址選擇器132選擇位址A+k+2。在後續過程中,位址選擇器132以相似的方式選擇位址A+k+3至A+m。
即,位址選擇器132透過比較處理器124提供的當前位址ADD_C與預設位址APRE,從一組位址ADD_G中選擇執行位址。執行位址指向由處理器124執行的指令。一組位址ADD_G包括一組原始位址(例如,A至A+n)及一組備用位址(例如,A’+k+1至A’+m)。一組原始位址指向儲存於唯讀記憶體126的一組原始指令(例如,INS_a至INS_f)。一組備用位址指向儲存於備用記憶體128的一組備用指令(例如,INS_c’至INS_d’)。備用指令(例如,INS_c’至INS_d’)補正原始指令(例如,INS_a至INS_f)中的錯誤指令(例如,INS_c至INS_d)。預設位址APRE(例如,A+k+1)指向錯誤指令(例如,INS_c)。以此方式,位址選擇器132可用備用位址替換指向錯誤指令的原始位址(例如,A+k+1至A+m)。此外,備用指令及預設
位址APRE由處理器124執行原始指令的結果決定。
有利之處在於,由於備用指令是根據執行韌體內的原始指令的結果而設計的,而非根據預測韌體內的錯誤的結果而設計的,備用指令可更充分有效地補正韌體內的錯誤指令。此外,隨機存取記憶體可僅包括用以補正處理器124檢測到的錯誤指令的備用指令,而非包括大量用以補正預測可能出現的所有錯誤指令的備用指令,因此可節省隨機存取記憶體的空間。
圖3所示為本發明一實施例示於圖2中之位址選擇器132的示例結構示意圖。如圖3所示,位址選擇器132包括來源儲存單元,例如,來源暫存器302、目標儲存單元,例如,目標暫存器304、比較單元308及多工器310。
檢測到原始指令的錯誤後,透過備用指令源112或主機108向處理器124提供預設位址APRE(例如,位址A+k+1)及備用位址(例如,一組備用位址的起始位址)的資訊。控制器製造商將位址資訊作為補丁包的一部分提供給終端用戶。處理器124將預設位址APRE儲存於來源暫存器302,並將備用位址儲存於目標暫存器304。儲存於目標暫存器304內的備用位址相應於預設位址APRE,且是一組備用位址的起始位址。例如,如上所述,儲存於目標暫存器304內的備用位址可為A’+k+1。處理器124透過通訊匯流排106發送當前位址ADD_C至比較單元308及多工器310。比較單元308透過比較當前位址ADD_C與預設位址APRE(例如,A+k+1)提供比較結果,指示當前位址ADD_C是否與預設位址APRE匹配。多工器310接收當前位址
ADD_C與備用位址A’+k+1,並根據比較單元308的比較結果從當前位址ADD_C及備用位址A’+k+1中選擇位址。
在一個實施例中,若當前位址ADD_C與預設位址APRE匹配,多工器310選擇備用位址A’+k+1以替換當前位址ADD_C,且若當前位址ADD_C與預設位址APRE不匹配,多工器310選擇當前位址ADD_C且處理器124執行儲存於當前位址ADD_C的原始指令。
如圖3所示,以便於說明,位址選擇器132包括一個來源暫存器302及一個目標暫存器304,但不以此為限。位址選擇器132可包括多個來源暫存器及目標暫存器。在一個實施例中,圖2所示唯讀記憶體126包括多組錯誤指令,需經多組相應的備用指令補正。在一個實施例中,每組錯誤指令的第一個位址,例如,起始位址,可用作與當前位址ADD_C進行比較的預設位址APRE。例如,唯讀記憶體126包括需經補正的指令組AS1、指令組AS2及指令組AS3。相應地,備用記憶體128包括分別用以補正指令組AS1、指令組AS2及指令組AS3的指令組AS1’、指令組AS2’及指令組AS3’。指令組AS1-AS3及指令組AS1’-AS3’中的每個指令組均包括一條或多條指令。在一個實施例中,三個來源暫存器分別儲存預設位址APRE1、預設位址APRE2及預設位址APRE3。三個目標暫存器分別儲存指令組AS1’-AS3’的起始位址。比較單元308比較當前位址ADD_C與預設位址APRE1-APRE3,且多工器310根據比較單元308的比較結果從當前位址ADD_C及指令組AS1’-AS3’的起始位址中選擇位址。例如,若當前位址ADD_C與預設位
址APRE2匹配,多工器310選擇指令組AS2’的起始位址。
在另一實施例中,最初,來源暫存器儲存預設位址APRE1,目標暫存器儲存指令組AS1’的起始位址。處理器124執行完指令組AS1’而非指令組AS1後,來源暫存器可儲存預設位址APRE2,目標暫存器儲存指令組AS2’的起始位址。處理器124執行完指令組AS2’而非指令組AS2後,來源暫存器可儲存預設位址APRE3,目標暫存器儲存指令組AS3’的起始位址。在此實施例中,僅需一個來源暫存器及一個目標暫存器以補正多組錯誤指令。
圖4為本發明一實施例的替換嵌入式韌體內一組錯誤指令的方法之流程圖。圖4將結合圖1、圖2及圖3一併進行描述。
在步驟402中,處理器124執行一組原始指令(例如,指令INS_a至INS_f),以檢測原始指令的錯誤。一組原始位址(例如,位址A至A+n)指向一組原始指令。原始指令儲存於非可重寫記憶體。
在步驟404中,從儲存單元下載一組備用指令,用以替換原始指令中錯誤指令,並將備用指令儲存於備用記憶體。在一實施例中,由處理器124從儲存單元下載備用指令,並儲存於備用記憶體或儲存於主機108內,主機108將備用指令儲存於備用記憶體。一組備用位址指向一組備用指令。
在步驟406中,處理器124接收一組當前位址並依序提供給位址選擇器132,且位址選擇器132依序比較當前位址與預設位址。在一實施例中,預設位址指向一組錯誤
指令中的一條錯誤指令。
在步驟408中,根據當前位址與預設位址的一組比較結果,位址選擇器132從一組位址中依序選擇一組執行位址。一組位址包括一組原始位址及一組備用位址。在一實施例中,若當前位址ADD_C與預設位址APRE匹配,則選取相應於預設位址的備用位址作為執行位址,若當前位址ADD_C與預設位址APRE不匹配,則選取一組當前位址中的一個作為執行位址。
在步驟410中,執行儲存於執行位址的指令,例如,在一實施例中,處理器124執行儲存於執行位址的指令。若當前位址ADD_C與預設位址APRE匹配,執行位址指向備用指令,則處理器124執行備用指令而非位於當前位址ADD_C的錯誤指令並得到期望的執行結果。若當前位址ADD_C與預設位址APRE不匹配,則處理器124執行儲存於當前位址ADD_C的原始指令。
上文具體實施方式和附圖僅為本發明之常用實施例。顯然,在不脫離權利要求書所界定的本發明精神和發明範圍的前提下可以有各種增補、修改和替換。本領域技術人員應該理解,本發明在實際應用中可根據具體的環境和工作要求在不背離發明準則的前提下在形式、結構、佈局、比例、材料、元素、元件及其它方面有所變化。因此,在此披露之實施例僅用於說明而非限制,本發明之範圍由後附權利要求及其合法等同物界定,而不限於此前之描述。
100‧‧‧電子設備
102‧‧‧控制器
104‧‧‧安全數位卡
106‧‧‧通訊匯流排
108‧‧‧主機
110‧‧‧主機介面
112‧‧‧備用指令源
124‧‧‧處理器
126‧‧‧唯讀記憶體
128‧‧‧備用記憶體
132‧‧‧位址選擇器
302‧‧‧來源暫存器
304‧‧‧目標暫存器
308‧‧‧比較單元
310‧‧‧多工器
402-410‧‧‧步驟
以下結合附圖和具體實施例對本發明的技術方法進行詳細的描述,以使本發明的特徵和優點更為明顯。其中:圖1所示為本發明一個實施例提供的電氣系統的結構示意圖。
圖2所示為本發明一個實施例提供的控制器的結構示意圖。
圖3所示為本發明一個實施例提供的位址選擇器的結構示意圖。
圖4所示為本發明一個實施例提供的替換嵌入式韌體內錯誤指令的方法的流程示意圖。
106‧‧‧通訊匯流排
124‧‧‧處理器
126‧‧‧唯讀記憶體
128‧‧‧備用記憶體
132‧‧‧位址選擇器
Claims (18)
- 一種位址選擇器,包括:一比較單元,比較從一處理器接收的一當前位址與指向一錯誤指令的一預設位址,並提供一比較結果;以及一多工器,耦接至該比較單元,接收該當前位址及指向一備用指令的一備用位址,若該當前位址與該預設位址匹配,選擇該備用位址以代替該當前位址。
- 如申請專利範圍第1項的位址選擇器,其中,若該當前位址與該預設位址不匹配,該多工器選擇該當前位址。
- 如申請專利範圍第1項的位址選擇器,還包括:一第一儲存單元,耦接至該比較單元,儲存該預設位址;以及一第二儲存單元,耦接至該多工器,儲存該備用位址。
- 如申請專利範圍第1項的位址選擇器,其中,該備用指令儲存於一可重寫記憶體。
- 如申請專利範圍第1項的位址選擇器,其中,該處理器執行該錯誤指令後,將該備用指令儲存於該備用位址。
- 一種控制器,包括:一非可重寫記憶體,在多個原始位址內儲存多個原始指令;一備用記憶體,在多個備用位址內儲存多個備用指 令;一位址選擇器,耦接至該非可重寫記憶體及該備用記憶體,透過比較一當前位址與指向多個錯誤指令中之一錯誤指令的一預設位址,從一組位址中選出一執行位址,並提供該多個備用位址以代替指向該多個錯誤指令的該多個原始位址,其中,該組位址包括該多個原始位址及該多個備用位址;以及一處理器,耦接至該非可重寫記憶體、該備用記憶體以及該位址選擇器,提供該當前位址給該位址選擇器,並執行儲存於該執行位址的一指令。
- 如申請專利範圍第6項的控制器,其中,若該當前位址與該預設位址匹配,該處理器執行該多個備用指令。
- 如申請專利範圍第6項的控制器,其中,該位址選擇器包括:一第一暫存器,儲存該預設位址;一第二暫存器,儲存該多個備用位址中之一起始備用位址;一比較單元,耦接至該第一暫存器,透過比較該當前位址與該預設位址,並提供一比較結果,該比較結果指示該當前位址與該預設位址是否匹配;以及一多工器,耦接至該第二暫存器及該比較單元,若該當前位址與該預設位址匹配,選擇該備用位址做為該執行位址,若該當前位址與該預設位址不匹配,選擇該當前位址做為該執行位址。
- 如申請專利範圍第6項的控制器,其中,根據執行該多個原始指令的一執行結果決定該預設位址與該多個備用指令。
- 如申請專利範圍第6項的控制器,其中,該預設位址指向該多個錯誤指令的一第一條錯誤指令。
- 如申請專利範圍第10項的控制器,其中,該處理器執行儲存於該起始位址的一指令時,該處理器改變該當前位址為鄰近該起始位址的一下一位址。
- 如申請專利範圍第11項的控制器,其中,該位址選擇器還透過比較該下一位址與該預設位址,選擇一下一執行位址,且該處理器執行儲存於該下一執行位址的一指令。
- 如申請專利範圍第6項的控制器,其中,該備用記憶體包括一可重寫記憶體。
- 如申請專利範圍第6項的位址選擇器,其中,該處理器執行該多個原始指令後,將該多個備用指令儲存於該多個備用位址。
- 一種替換錯誤指令的方法,包括:從一處理器接收一當前位址;將該當前位址提供給一位址選擇器;該位址選擇器比較該當前位址與指向該錯誤指令的一預設位址;若該當前位址與該預設位址匹配,選擇指向一備用指令的一備用位址,並用該備用位址替換該當前位址;以及 該處理器執行儲存於該備用位址的該備用指令。
- 如申請專利範圍第15項的方法,還包括:若該當前位址與該預設位址不匹配,該處理器執行儲存於該當前位址的該原始指令。
- 如申請專利範圍第15項的方法,還包括:該處理器執行該錯誤指令後,將該備用指令儲存於一可重寫記憶體。
- 如申請專利範圍第15項的方法,還包括:若該當前位址與該預設位址匹配,該處理器執行該備用指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/407,460 US20130227343A1 (en) | 2012-02-28 | 2012-02-28 | Circuits and Methods for Replacing Defective Instructions |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201335844A true TW201335844A (zh) | 2013-09-01 |
Family
ID=49004631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101134757A TW201335844A (zh) | 2012-02-28 | 2012-09-21 | 控制器、位址選擇器及替換錯誤指令的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130227343A1 (zh) |
TW (1) | TW201335844A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395594B (zh) * | 2019-08-15 | 2023-12-12 | 奇安信安全技术(珠海)有限公司 | 指令执行序列的处理方法、装置及设备 |
US11314584B1 (en) | 2020-11-25 | 2022-04-26 | International Business Machines Corporation | Data quality-based confidence computations for KPIs derived from time-series data |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04346127A (ja) * | 1991-05-23 | 1992-12-02 | Sony Corp | 電子装置 |
US6330688B1 (en) * | 1995-10-31 | 2001-12-11 | Intel Corporation | On chip error correction for devices in a solid state drive |
TW344059B (en) * | 1997-06-14 | 1998-11-01 | Winbond Electronics Corp | Method and device for carrying out updating firmware of CD-ROM driver through ATA/IDE interface |
US6748519B1 (en) * | 2000-06-15 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for utilizing renamed registers based upon a functional or defective operational status of the register |
US8286156B2 (en) * | 2006-11-07 | 2012-10-09 | Sandisk Technologies Inc. | Methods and apparatus for performing resilient firmware upgrades to a functioning memory |
JP5574230B2 (ja) * | 2010-04-28 | 2014-08-20 | 株式会社日立製作所 | 障害処理方法および計算機 |
-
2012
- 2012-02-28 US US13/407,460 patent/US20130227343A1/en not_active Abandoned
- 2012-09-21 TW TW101134757A patent/TW201335844A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20130227343A1 (en) | 2013-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9471435B2 (en) | Information processing device, information processing method, and computer program | |
JP4840859B2 (ja) | 半導体装置、及び起動方法 | |
US9372750B2 (en) | Method and apparatus for non-volatile RAM error re-mapping | |
TWI661357B (zh) | 用於啟動多重開機裝置及多重開機微處理器之方法 | |
US9785382B2 (en) | Method and apparatus for read retry sequence for boot ROM | |
US8799555B2 (en) | Boot data storage schemes for electronic devices | |
US8392797B2 (en) | Error correcting controller, flash memory chip system, and error correcting method thereof | |
US9405612B2 (en) | Fault repair apparatus, fault repair method and storage medium storing fault repair program | |
JP6157637B2 (ja) | リードライトメモリデバイスのデータイメージ中の仮想境界コード | |
JP2012198876A (ja) | メモリデバイスにおける読み出し不可状態を解決するための装置及び方法 | |
JP2005242797A (ja) | エラー訂正回路 | |
US11099949B2 (en) | Method apparatus for resuming and recovery checking from interrupted programming of one-time programmable memory device | |
KR100717110B1 (ko) | 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 | |
JP2008009721A (ja) | 評価システム及びその評価方法 | |
US20130013849A1 (en) | Programmable Patch Architecture for ROM | |
US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
US8605505B2 (en) | Semiconductor integrated circuit and data read method | |
TW201335844A (zh) | 控制器、位址選擇器及替換錯誤指令的方法 | |
EP2733612B1 (en) | Information processing device, method, and program | |
WO2021012170A1 (zh) | 固件启动方法、设备及计算机可读存储介质 | |
US10606520B2 (en) | Methods and apparatus to read from a nonvolatile memory device | |
EP2846259B1 (en) | Method and apparatus for controlling memory startup | |
US20040153829A1 (en) | Processor system, processor and arithmetic processing method | |
JP5786702B2 (ja) | セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム | |
JP5435647B2 (ja) | コンピュータシステム、メモリ初期化方法、及びプログラム |