TWI404054B - 處理微碼程式更新錯誤的裝置及其方法 - Google Patents
處理微碼程式更新錯誤的裝置及其方法 Download PDFInfo
- Publication number
- TWI404054B TWI404054B TW096106272A TW96106272A TWI404054B TW I404054 B TWI404054 B TW I404054B TW 096106272 A TW096106272 A TW 096106272A TW 96106272 A TW96106272 A TW 96106272A TW I404054 B TWI404054 B TW I404054B
- Authority
- TW
- Taiwan
- Prior art keywords
- status flag
- code
- microcode program
- update
- flag
- Prior art date
Links
Classifications
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Retry When Errors Occur (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
本發明提供一種微碼程式(microcode)錯誤更新處理,尤指一種在未完成或已完成微碼程式更新程序之後的微碼程式更新機制。
習知微碼程式更新方法容易受到無法補救之錯誤的影響,例如,考慮一習知光碟機,像是唯讀光碟機(CD-ROM),此唯讀光碟機常使用於一般電腦系統(例如是個人電腦)內部的視窗操作環境,或是一些類似的裝置。使用此唯讀光碟機的使用者可能需要週期性地升級儲存於該唯讀光碟機內部中的微碼程式(韌體);在此請注意到,微碼程式一般係指韌體程式,另外,微碼程式一般而言也被視為一個永久記憶體,其記錄著電腦或是其他裝置(例如唯讀光碟機)於執行其指令集(instruction set)中之每一指令所需的基本控制操作。此微碼程式係作為指令(例如唯讀光碟機所執行的指令)以及電腦之電子元件彼此間的一轉換層,因此,該微碼程式使得電腦架構能夠更容易加入新的指令而不需要重新設計電子電路。另外,對於使用者而言,升級儲存在於裝置內部的微碼程式是有好處的,然而,在升級微碼程式的過程中仍可能有風險,例如,當唯讀光碟機中的微碼程式正被更新時,若電源供應突然中斷將導致習知裝置(例如該唯讀光碟機)中的升級流程控制程式遺失,因而造成非故意並且立即的更新操作停止。換句話說,當發生突然的電源供應中斷以及原本微碼程式之升級流程控制程式因不預期的更新操作中斷而遺失時,則該唯讀光碟機的微碼程式將變成不完整的,而對於該唯讀光碟機來說,因為失敗的微碼更新將阻止所要的微碼程式被重寫至唯讀光碟機來取代目前使用中之不完整的微碼程式,如此一來,將造成唯讀光碟機的運作特別不穩定。在唯讀光碟機的例子中,習知視窗操作之電腦中唯讀光碟機之微碼程式更新過程的非預期中斷將造成該唯讀光碟機具有無法使用且毀損的微碼程式,以及造成該視窗操作之電腦不能再被正常使用並且無法啟動、存取該唯讀光碟機,或載入視窗操作環境(亦即視窗作業系統);明顯地,非預期中斷對於使用者來說非常麻煩。此外,即使是製造廠商或販賣廠商已建議安裝該升級/更新程式,使用者經常會延遲或完全避免微碼程式的升級/更新,這種習慣是由於使用者常體驗到更新失敗的微碼升級/更新程式使得他們的裝置(例如唯讀光碟機、電腦或是其他的裝置)不能再使用;而且當微碼程式的升級以及更新對於特定裝置的正確運作與否極為重要時,微碼程式的升級以及更新卻往往被故意忽略。因此,很明顯地,改善微碼程式更新操作及其相關裝置是相當需要的,其中該裝置及操作不能被出差錯的事件所影響,舉例來說,出差錯的事件包含:在微碼程式的更新過程中發生電源供應的突然中斷或是電腦的視窗環境(亦即視窗作業系統)產生非預期的重新開機。
因此本發明的目的之一在於提供一種處理微碼程式更新錯誤的電子裝置及其相關方法,以解決上述提到的問題。
依據本發明之一實施例,其係揭露一種用於一電子裝置中之處理微碼程式更新錯誤的方法。該方法包含有:提供一狀態旗標(status flag)來表示一微碼程式之一可更新部分的更新是否已完成,其中該微碼程式包含具有一更新錯誤處理程式碼之一不可更新部分;以及偵測該狀態旗標,並且若該狀態旗標對應於一第一狀態,則利用該更新錯誤處理程式碼來完成一開機程序(boot-up procedure)。
依據本發明之一實施例,其另揭露一種用於一電子裝置中之處理微碼程式更新錯誤的方法。該方法包含有:提供一狀態旗標來表示一微碼程式之一可更新部分的更新是否已完成,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;偵測該狀態旗標,並且若該狀態旗標對應於一第一狀態,則利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分;以及在完成更新該微碼程式之該可更新部分之後,控制該狀態旗標對應一第二狀態。
另外,依據本發明之一實施例,其係揭露一種處理微碼程式更新錯誤的電子裝置。該電子裝置包含有:一第一記憶體單元、一第二記憶體單元、一旗標控制單元以及一處理單元。該第一記憶體單元係用來儲存一狀態旗標,其中該狀態旗標用來表示一微碼程式之一可更新部分的更新是否已完成;該第二記憶體單元係用來儲存該微碼程式,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;該旗標控制單元係耦接至該第一記憶體單元,用來偵測該狀態旗標;以及該處理單元係耦接至該第二記憶體單元,用來執行一開機程序。若該旗標控制單元偵測到該狀態旗標係對應於一第一狀態,則該處理單元利用該更新錯誤處理程式碼來完成該開機程序。
此外,依據本發明之一實施例,其另揭露一種處理微碼程式更新錯誤的電子裝置。該電子裝置包含有一第一記憶體單元、一第二記憶體單元、一旗標控制單元以及一處理單元。該第一記憶體單元係用來儲存一狀態旗標,其中該狀態旗標係用來表示一微碼程式之一可更新部分的更新是否已完成;該第二記憶體單元係用來儲存該微碼程式,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;該旗標控制單元係耦接至該第一記憶體單元,用來偵測該狀態旗標;以及該處理單元係耦接至該第二記憶體單元,若該旗標控制單元偵測到該狀態旗標係對應於一第一狀態時,則該處理單元利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分。在完成更新該微碼程式之該可更新部份時,該狀態控制單元控制該狀態旗標對應一第二狀態。
請參照第1圖,第1圖是本發明具有微碼程式更新錯誤處理功能之電子裝置之一實施例的方塊圖。在本實施例中,光碟機100係用來作為解釋本發明之微碼程式更新錯誤處理機制的例子,然而,微碼程式更新錯誤處理機制並非限定應用於光碟機上,例如唯讀光碟機、CD+R/RW光碟機、DVD-ROM光碟機、DVD+R/RW光碟機、DVD-R/RW光碟機或是其他類型的儲存裝置。如第1圖所示,光碟機100包含有一第一記憶體單元200,用來儲存一狀態旗標(status flag)300以表示更新微碼程式的操作是否已完成(complete)或是未完成(incomplete);以及一第二記憶體單元400,用來儲存一微碼程式402,其中微碼程式402包含有一不可更新(non-renewable)部分500以及一可更新(renewable)部分600。在此請注意,於本實施例中,微碼程式402可以是韌體;另外,光碟機100另包含有耦接於第一記憶體單元200的一旗標控制單元700,用來在光碟機100啟動時偵測狀態旗標300;以及耦接於第二記憶體單元400的一處理單元800,其中處理單元800係另耦接於第一記憶體單元200,用來偵測狀態旗標300所記錄的旗標字元。
設計光碟機100時可能有數種變化型並且應該為熟習此項技術者所熟知,在此便不贅述;而依據設計需要,儲存狀態旗標300的第一記憶體單元200以及儲存不可更新部分500與可更新部分600的第二記憶體單元400係整合於單一記憶體中,亦即,狀態旗標300與微碼程式皆儲存於非揮發性記憶體,像是快閃記憶體(Flash ROM)或是電子式可抹除可編寫記憶體(electrically erasable programmable read only memory,EEPROM),舉例來說,狀態旗標300可儲存於非揮發性記憶體中一最佳功率校正(optimum power calibration,OPC)數值的儲存區段或是一區域碼控制(region playback control,RPC)數值的儲存區段。另外,亦可能整合旗標控制單元700與處理單元800來形成能夠執行相同功能的單一單元,也就是說,旗標控制單元700可以經由硬體或是軟體來實現;而其他用於微碼程式更新錯誤處理之組態變化亦是遵循本發明精神而屬於本發明的範疇。
請參照第2圖,第2圖是第1圖所示之第二記憶體單元400內部之資料結構的簡化示意圖。如第2圖所示,可更新部分600包含有允許被更新的程式碼,而不可更新部分500包含有禁止更改的一主程式碼以及一更新錯誤處理程式碼,其中該主程式碼用來初始化光碟機100的硬體設定並且在光碟機100啟動後控制其開機程序(boot-up procedure),換句話說,在光碟機100啟動後,該主程式碼係微碼程式402中第一個被處理單元800載入並執行的部分程式碼,在此請注意到,異於習知微碼程式的資料結構,微碼程式402的主程式碼或更新錯誤處理程式碼並非設計來更新或修改微碼程式;然而,在某些情況下,當必須升級微碼程式時,與燒錄器相關的特定指令以及程序可以被用來修改主要核心程式,其中該主要核心程式包含有主程式碼及更新錯誤處理程式碼,若程式碼在前一次微碼程式更新操作中未被成功地更新,則該更新錯誤處理程式碼便會被加以執行,而上述更新錯誤處理機制將於後詳述。
請參照第3圖,第3圖是本發明微碼程式更新操作之一實施例的控制流程圖。在本實施例中,當該程式碼更新操作成功完成時,狀態旗標300將記錄一狀態字元為”已完成(complete)”。控制流程包含有下列步驟:步驟900:啟動光碟機100。
步驟902:處理單元800執行儲存於第二記憶體單元400中的主程式碼來啟動一開機程序。
步驟904:旗標控制單元700檢查狀態旗標300所記錄的旗標字元是否為”已完成”?若是,則跳至步驟922;否則,跳至步驟906。
步驟906:處理單元800執行儲存於第二記憶體中的更新錯誤處理程式碼來完成開機程序以允許啟動視窗操作環境。
步驟908:在視窗操作環境已準備就緒之後,光碟機100等候從主機傳來的一微碼程式更新指令。
步驟910:是否已接收該微碼程式更新指令?若是,則跳至步驟912;否則,繼續步驟910。
步驟912:處理單元800執行更新錯誤處理程式碼而讓光碟機100進入一更新模式。
步驟914:旗標控制單元700清除狀態旗標300中的旗標字元。
步驟916:處理單元800執行更新錯誤處理程式碼以藉由新的程式碼來更新目前的程式碼(可更新部分600)。
步驟918:在可更新部分600完全更新之後,旗標控制單元700設定狀態旗標300的旗標字元為”已完成”。
步驟920:處理單元800停止執行更新錯誤處理程式碼以讓光碟機100離開更新模式,並且跳至步驟924。
步驟922:處理單元800執行主程式碼來完成開機程序。
步驟924:結束。
於上述之流程中,該主程式碼(例如習知主程式碼)係用來負資光碟機100的開機程序,然而,若是狀態旗標300的旗標字元是”未完成”,則本發明更新錯誤處理程式碼將被啟動(activated),這是因為狀態旗標300指出程式碼(可更新部分600)在前一次微碼程式更新操作中並沒有被正確地更新,若執行中的主程式碼呼叫此不正確的程式碼,則光碟機100的開機程序可能失敗而影響到整個電腦系統的開機;在本實施例中,處理單元800執行主程式碼來呼叫更新錯誤處理程式碼並且稍後執行該更新錯誤處理程式碼來接管光碟機100的開機程序控制以便允許視窗操作環境的啟動。然後,因為電腦系統能夠藉由該更新錯誤處理程式碼的幫助來進入視窗操作環境,所以使用者便可以重新啟動微碼程式更新操作來更新微碼程式402中的可更新部分600;於本實施例中,在接收從主機來的微碼程式更新指令之後,處理單元800執行該更新錯誤處理程式碼,其運作如同習知微碼程式更新程式(microcode updater),因此便寫入新的程式碼至第二記憶體單元400來更新需要更新的可更新部分600。在執行步驟916時,若光碟機100被電源供應的突然中斷所影響,則狀態旗標300仍記錄一開始的狀態資訊,亦即狀態旗標300所記錄的旗標字元將維持”未完成”,因此,在光碟機100重新啟動之後,如第3圖所示之相同的流程步驟將重新開始以達到嘗試完成更新微碼程式402之可更新部分600的目的。
請注意,依據設計需求,步驟914並非必須,上述流程中之步驟914係用來確定在可更新部分500成功更新之前狀態旗標300將不會不預期地記錄”已完成”的旗標字元,而當清除狀態旗標300之後,可用一不同於”已完成”的固定資料來取代,例如,設定狀態旗標300的旗標字元為”未完成”,或是設定狀態旗標300的旗標內容為一連串的位元”0”。如上所述,旗標控制單元700可以藉由硬體或是軟體來實現,另外,本發明的較佳實施例中,處理單元800所執行的主程式碼係作為旗標控制單元700使用以讓硬體成本降低,而在上述的流程步驟中,微碼程式的更新係執行於視窗操作環境中,然而本發明並未限制只適用於視窗操作環境,亦即,本發明的更新錯誤處理機制可應用於任何種類的微碼程式更新模式下。
此外,狀態旗標300可以儲存於任何非揮發性記憶體,例如快閃記憶體或是電子式可抹除可編寫記憶體,藉由本發明的例子,該主程式碼及該更新錯誤處理程式碼的實際儲存位置係位於快閃記憶體中,然而,任何非揮發性儲存元件(例如電子式可抹除可編寫記憶體)亦適用於本發明,另外,如第2圖所示之資料結構係只用於解釋本發明的概念,在真正的應用中,第二記憶體單元400中之主程式碼與更新錯誤處理程式碼的實際位址是可自行設計來決定的,因此,該更新錯誤處理程式碼不限定於只能儲存於主程式碼的鄰近(adjacent)位址。
本發明提供優於習知微碼程式升級操作的數種好處,即使在不預期的問題發生之後,像是突然的電源供應中斷或是視窗操作環境(亦即視窗作業系統)非預期的重新開機發生之後,本發明仍可確保一個正常運作且可存取的裝置(例如電腦或是光碟機);而本發明亦提供使用者無論發生任何的外部事件下皆能夠持續微碼程式的升級操作,另外,本發明因為使用較少的靜態隨機存取記憶體(SRAM)或同步動態隨機存取記憶體(SDRAM)來儲存微碼程式更新操作所需的程式碼,使得比習知技術更加節省成本;此外,快閃記憶體儲存主程式碼中的不可更新部分及作為一微碼程式更新程式的更新錯誤處理程式碼,而第二個節省成本的原因係因為除去用於載入程式碼至靜態隨機存取記憶體或同步動態隨機存取記憶體的硬體。藉由檢查該狀態旗標,本發明可以確定在電腦(例如是視窗操作環境之電腦)重新啟動之後係執行了正確的微碼程式。最後,本發明可依據所使用之快閃記憶體的種類以及特定系統的需要,而設計微碼程式中可更新部分程式的實際儲存位置。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...光碟機
200...第一記憶體單元
300...狀態旗標
400...第二記憶體單元
402...微碼程式
500...不可更新部分
600...可更新部分
700...旗標控制單元
800...處理單元
第1圖為本發明具有微碼程式更新錯誤處理功能之電子裝置之一實施例的方塊圖。
第2圖為如第1圖所示之第二記憶體單元內部之資料結構的簡化示意圖。
第3圖為本發明微碼程式更新操作之一實施例的控制流程圖。
100...光碟機
200...第一記憶體單元
300...狀態旗標
400...第二記憶體單元
402...微碼程式
500...不可更新部分
600...可更新部分
700...旗標控制單元
800...處理單元
Claims (28)
- 一種處理微碼程式更新錯誤之方法,其包含有:提供一狀態旗標來表示一微碼程式之一可更新部分的更新是否已完成,其中該微碼程式包含具有一更新錯誤處理程式碼之一不可更新部分;以及偵測該狀態旗標,並且若該狀態旗標對應於一第一狀態,則利用一主程式碼呼叫並執行該更新錯誤處理程式碼來接管並完成一開機程序,以避免該開機程序失敗。
- 如申請專利範圍第1項所述之方法,其另包含有:在完成該開機程序之後,利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分;以及在完成更新該微碼程式之該可更新部分之後,控制該狀態旗標對應於一第二狀態。
- 如申請專利範圍第1項所述之方法,其中該微碼程式之該不可更新部分另包含有該主程式碼,以及偵測該狀態旗標之步驟另包含有:若該狀態旗標對應於該第二狀態,則利用該主程式碼來完成該開機程序。
- 如申請專利範圍第3項所述之方法,其中偵測該狀態旗標之步驟係藉由執行該主程式碼來完成。
- 如申請專利範圍第1項所述之方法,其中偵測該狀態旗標之步驟另包含有:存取一非揮發性記憶體來檢查該狀態旗標,其中該微碼程式係儲存於該非揮發性記憶體。
- 如申請專利範圍第5項所述之方法,其中該狀態旗標係儲存於該非揮發性記憶體中一最佳功率校正數值的儲存區段。
- 如申請專利範圍第5項所述之方法,其中該狀態旗標係儲存於該非揮發性記憶體中一區域碼控制數值的儲存區段。
- 一種處理微碼程式更新錯誤之方法,其包含有:提供一狀態旗標來表示一微碼程式之一可更新部分的更新是否已完成,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;偵測該狀態旗標,並且若該狀態旗標對應於一第一狀態,則利用一主程式碼呼叫並執行該更新錯誤處理程式碼來接管並完成一開機程序,以避免該開機程序失敗,以及利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分;以及在結束更新該微碼程式之該可更新部分之後,控制該狀態旗標對應於一第二狀態。
- 如申請專利範圍第8項所述之方法,其中該微碼程式之該不可更新部分另包含有該主程式碼,以及偵測該狀態旗標之步驟另包含有:若該狀態旗標係對應於該第二狀態,則利用該主程式碼來完成該開機程序。
- 如申請專利範圍第9項所述之方法,其中偵測該狀態旗標係藉由執行該主程式碼來完成。
- 如申請專利範圍第8項所述之方法,其中偵測該狀態旗標之步驟另包含有:存取一非揮發性記憶體來檢查該狀態旗標,其中該微碼程式係儲存於該非揮發性記憶體。
- 如申請專利範圍第11項所述之方法,其中該狀態旗標係儲存於該非揮發性記憶體中一最佳功率校正數值的儲存區段。
- 如申請專利範圍第11項所述之方法,其中該狀態旗標係儲存於該非揮發性記憶體中一區域碼控制數值的儲存區段。
- 一種處理微碼程式更新錯誤之裝置,其包含有:一第一記憶體單元,用來儲存一狀態旗標,其中該狀態旗標係用來表示一微碼程式之一可更新部分的更新是否已完 成;一第二記憶體單元,用來儲存該微碼程式,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;一旗標控制單元,耦接至該第一記憶體單元,用來偵測該狀態旗標;以及一處理單元,耦接至該第二記憶體單元,用來利用一主程式碼執行一開機程序;其中若該旗標控制單元偵測到該狀態旗標係對應於一第一狀態,則該處理單元利用該主程式碼呼叫並執行該更新錯誤處理程式碼來接管該開機程序並完成該開機程序,以避免該開機程序失敗。
- 如申請專利範圍第14項所述之裝置,其中在完成該開機程序之後,該處理單元利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分;以及在更新該微碼程式之該可更新部分之後,該旗標控制單元控制該狀態旗標對應一第二狀態。
- 如申請專利範圍第14項所述之裝置,其中該微碼程式之該不可更新部分另包含有該主程式碼,以及若該旗標控制單元偵測到該狀態旗標係對應於該第二狀態,則該處理單元利用該主程式碼來完成該開機程序。
- 如申請專利範圍第16項所述之裝置,其中該旗標控制單元係 該處理單元之一部份,以及該處理單元係藉由執行該主程式碼來偵測該狀態旗標。
- 如申請專利範圍第14項所述之裝置,其中該第一、第二記憶體單元係皆位於同一非揮發性記憶體中。
- 如申請專利範圍第18項所述之裝置,其中該狀態旗標係儲存於該非揮發性記憶體中一最佳功率校正數值的儲存區段。
- 如申請專利範圍第18項所述之裝置,其中該狀態旗標係儲存於該非揮發性記憶體中一區域碼控制數值的儲存區段。
- 如申請專利範圍第14項所述之裝置,其係為一光碟機。
- 一種處理微碼程式更新錯誤之裝置,其包含有:一第一記憶體單元,用來儲存一狀態旗標,其中該狀態旗標係用來表示一微碼程式之一可更新部分的更新是否已完成;一第二記憶體單元,用來儲存該微碼程式,其中該微碼程式另包含具有一更新錯誤處理程式碼之一不可更新部分;一旗標控制單元,耦接至該第一記憶體單元,用來偵測該狀態旗標;以及一處理單元,耦接至該第二記憶體單元,若該旗標控制單元偵 測到該狀態旗標係對應於一第一狀態時,則該處理單元利用一主程式碼呼叫並執行該更新錯誤處理程式碼來接管並完成一開機程序,以避免該開機程序失敗,以及利用該更新錯誤處理程式碼來更新該微碼程式之該可更新部分;其中在完成更新該微碼程式之該可更新部份之後,該狀態控制單元控制該狀態旗標對應於一第二狀態。
- 如申請專利範圍第22項所述之裝置,其中該微碼程式之該不可更新部分另包含有該主程式碼,以及若該旗標控制單元偵測到該狀態旗標對應於該第二狀態,則該處理單元利用該主程式碼來完成該開機程序。
- 如申請專利範圍第23項所述之裝置,其中該旗標控制單元係該處理單元之一部分,以及該處理單元藉由執行該主程式碼來偵測該狀態旗標。
- 如申請專利範圍第22項所述之裝置,其中該第一、第二記憶體單元係皆位於同一非揮發性記憶體中。
- 如申請專利範圍第25項所述之裝置,其中該狀態旗標係儲存於該非揮發性記憶體中一最佳功率校正數值的儲存區段。
- 如申請專利範圍第25項所述之裝置,其中該狀態旗標係儲存於該非揮發性記憶體中一區域碼控制數值的儲存區段。
- 如申請專利範圍第22項所述之裝置,其係為一光碟機。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/307,775 US7533290B2 (en) | 2006-02-21 | 2006-02-21 | Microcode updating error handling apparatus and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200746086A TW200746086A (en) | 2007-12-16 |
TWI404054B true TWI404054B (zh) | 2013-08-01 |
Family
ID=38519410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096106272A TWI404054B (zh) | 2006-02-21 | 2007-02-16 | 處理微碼程式更新錯誤的裝置及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7533290B2 (zh) |
TW (1) | TWI404054B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4808016B2 (ja) * | 2005-12-20 | 2011-11-02 | 日立オートモティブシステムズ株式会社 | マイクロコンピュータの初期化装置および車載用制御装置 |
US8082543B2 (en) * | 2006-08-17 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Methods and systems for arbitrating error handling and firmware updates |
CA2637480A1 (en) * | 2006-12-19 | 2008-06-26 | Halliburton Energy Services, Inc. | Secure firmware updates in embedded systems |
TW201009707A (en) * | 2008-08-25 | 2010-03-01 | Asustek Comp Inc | Method for loading and updating central processing unit (CPU) microcode into basic input/output system (BIOS) |
US8281071B1 (en) * | 2010-02-26 | 2012-10-02 | Symantec Corporation | Systems and methods for managing cluster node connectivity information |
KR101647692B1 (ko) * | 2010-05-10 | 2016-08-11 | 삼성전자주식회사 | 휴대용 단말기에서 비정상적인 롬 업데이트를 판단하기 위한 장치 및 방법 |
US8683457B1 (en) | 2011-06-17 | 2014-03-25 | Western Digital Technologies, Inc. | Updating firmware of an electronic device by storing a version identifier in a separate header |
JP6207295B2 (ja) * | 2013-08-14 | 2017-10-04 | キヤノン株式会社 | 印刷装置及びその制御方法 |
US10031763B1 (en) * | 2015-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Network switch recovery after reboot |
US10198275B2 (en) * | 2016-05-31 | 2019-02-05 | American Megatrends, Inc. | Protecting firmware flashing from power operations |
TWI615705B (zh) * | 2016-05-31 | 2018-02-21 | 瑞昱半導體股份有限公司 | 於電腦系統中重置記憶體的方法 |
CN107704258B (zh) * | 2017-10-27 | 2020-12-01 | 深圳市恒扬数据股份有限公司 | Uboot升级方法、系统及终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200307250A (en) * | 2002-05-20 | 2003-12-01 | Sony Corp | Information processing apparatus, program loading method, recording medium, program updating method and circuit device |
US20040024917A1 (en) * | 2002-07-31 | 2004-02-05 | Barry Kennedy | Secure method to perform computer system firmware updates |
US20050160257A1 (en) * | 2004-01-16 | 2005-07-21 | Dell Products L.P. | System and method for updating device firmware |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052347A (en) * | 1996-02-23 | 2000-04-18 | Ricoh Company, Ltd. | Method and apparatus for detecting optimum recording power for an optical disk |
US6170043B1 (en) | 1999-01-22 | 2001-01-02 | Media Tek Inc. | Method for controlling an optic disk |
US6678741B1 (en) * | 1999-04-09 | 2004-01-13 | Sun Microsystems, Inc. | Method and apparatus for synchronizing firmware |
KR100367295B1 (ko) * | 2000-03-13 | 2003-01-09 | 엘지전자 주식회사 | 광디스크 구동장치의 지역정보 기록장치 및 기록방법 |
US6944854B2 (en) * | 2000-11-30 | 2005-09-13 | International Business Machines Corporation | Method and apparatus for updating new versions of firmware in the background |
US6882610B2 (en) * | 2002-02-21 | 2005-04-19 | Mediatek Incorporation | Optimal power calibration method for an optical disc |
JP2004127386A (ja) * | 2002-09-30 | 2004-04-22 | Mitsumi Electric Co Ltd | 光ディスク装置、ファームウェアアップデート方法、そのプログラム及び記録媒体 |
JP2004185096A (ja) * | 2002-11-29 | 2004-07-02 | Toshiba Corp | 記録再生装置及び記録再生方法 |
US7293169B1 (en) * | 2003-02-26 | 2007-11-06 | American Megatrends, Inc. | Methods and systems for remotely updating the firmware of multiple computers over a distributed network |
KR100925232B1 (ko) * | 2003-03-18 | 2009-11-06 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 광디스크장치의 기록 광파워 조정방법 |
US7698698B2 (en) * | 2004-09-30 | 2010-04-13 | Smith Micro Software, Inc. | Method for over-the-air firmware update of NAND flash memory based mobile devices |
-
2006
- 2006-02-21 US US11/307,775 patent/US7533290B2/en active Active
-
2007
- 2007-02-16 TW TW096106272A patent/TWI404054B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200307250A (en) * | 2002-05-20 | 2003-12-01 | Sony Corp | Information processing apparatus, program loading method, recording medium, program updating method and circuit device |
US20040024917A1 (en) * | 2002-07-31 | 2004-02-05 | Barry Kennedy | Secure method to perform computer system firmware updates |
US20050160257A1 (en) * | 2004-01-16 | 2005-07-21 | Dell Products L.P. | System and method for updating device firmware |
Also Published As
Publication number | Publication date |
---|---|
TW200746086A (en) | 2007-12-16 |
US7533290B2 (en) | 2009-05-12 |
US20070220372A1 (en) | 2007-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI404054B (zh) | 處理微碼程式更新錯誤的裝置及其方法 | |
TWI514408B (zh) | 於裝置開機期間處置來自非揮發性記憶體之錯誤 | |
US7293166B2 (en) | Method of indicating a format of accessing an operating system contained on a USB memory device | |
TWI382346B (zh) | 保護雙基本輸出入系統程式之電腦系統及其控制方法 | |
US11853769B2 (en) | Determination of power-off duration of NVME SSD | |
US7908469B2 (en) | Method for executing power on self test on a computer system and updating SMBIOS information partially | |
US20160179500A1 (en) | Firmware variable update method | |
US9424022B2 (en) | Method for updating firmware of an electronic device within a computer | |
US20150199190A1 (en) | System and method for updating firmware | |
JP2015008005A (ja) | セキュア・リカバリ装置及び方法 | |
CN101373451B (zh) | 保护双基本输出入系统程序的计算机系统及其控制方法 | |
JP2010198252A (ja) | 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム | |
US9348603B2 (en) | Electronic apparatus and booting method | |
JP4735765B2 (ja) | Linuxプログラム起動システム | |
JPH11265283A (ja) | 記憶装置におけるファームウェアの修正方法及び記憶装置 | |
US20060206674A1 (en) | Optical disc drive and program code updating method thereof | |
TWI817502B (zh) | 固態硬碟系統 | |
TWI775578B (zh) | 嵌入式電子裝置、啟動方法及內儲程式之嵌入式電子裝置可讀取記錄媒體 | |
CN113986261A (zh) | 一种数据刷写的方法、相关装置、设备以及可读存储介质 | |
CN115599449A (zh) | 处理器启动系统及方法 | |
CN117093239A (zh) | 固态硬盘系统 | |
JP2006107249A (ja) | Linuxプログラム起動システム | |
JPH11143782A (ja) | 情報処理装置における不揮発性メモリの書き換え装置および方法 | |
JP2018147285A (ja) | 電子機器、起動方法およびプログラム | |
JP2004355611A (ja) | 情報処理装置 |