TW202006535A - 韌體更新方法 - Google Patents

韌體更新方法 Download PDF

Info

Publication number
TW202006535A
TW202006535A TW107123307A TW107123307A TW202006535A TW 202006535 A TW202006535 A TW 202006535A TW 107123307 A TW107123307 A TW 107123307A TW 107123307 A TW107123307 A TW 107123307A TW 202006535 A TW202006535 A TW 202006535A
Authority
TW
Taiwan
Prior art keywords
block
firmware
controller
code segment
update method
Prior art date
Application number
TW107123307A
Other languages
English (en)
Other versions
TWI676933B (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 慧榮科技股份有限公司
Priority to TW107123307A priority Critical patent/TWI676933B/zh
Priority to CN201810775719.0A priority patent/CN110688141B/zh
Priority to US16/360,034 priority patent/US11144299B2/en
Application granted granted Critical
Publication of TWI676933B publication Critical patent/TWI676933B/zh
Publication of TW202006535A publication Critical patent/TW202006535A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本發明實施例提供一種韌體更新方法。所述韌體更新方法適用於資料儲存裝置中,且其可以是根據資料儲存裝置更新所需的更新映像檔中的轉換公式段而產生新的參數表,因此,即使在舊版韌體的程式碼段與新版韌體的程式碼段間有參數改變的情況下,更新或升級後的資料儲存裝置仍可正常運作。

Description

韌體更新方法
本發明是有關於一種韌體更新方法,且特別是一種能夠根據更新所需的更新映像檔中的轉換公式段而產生新參數表的韌體更新方法。
一般來說,資料儲存裝置是由控制器與非揮發性記憶體,例如快閃記憶體(Flash Memory)所構成,且資料儲存裝置運作所需的韌體的程式碼(code)段即通常會是燒錄在非揮發性記憶體中,並隨著資料儲存裝置釋出。當資料儲存裝置釋出後,為了修補程式碼段中的缺陷、或者為了提供新增的服務或功能,製造者或研發者可能會提供新版韌體的程式碼段,以用來更新或升級資料儲存裝置。然而,在現有技術中,舊版韌體的程式碼段與新版韌體的程式碼段間是不允許有參數改變的情況,否則會使得更新或升級後的資料儲存裝置無法運作。
有鑑於此,本發明之目的在於提出一種能夠根據更新所需的更新映像檔中的轉換公式段而產生新參數表的韌體更新方法。為達上述目的,本發明實施例提供一種韌體更新方法,適用於資料儲存裝置中。此資料儲存裝置包括非揮發性記憶體與控制器。非揮發性記憶體包括多個區塊(Blocks),這些區塊中的第一區塊與第二區塊均儲存舊版韌體的程式碼段,所述韌體更新方法則包括如下步驟。首先,令控制器接收此資料儲存裝置更新所需的更新映像檔,並將更新映像檔寫入至這些區塊中的第三區塊,其中此更新映像檔包括新版韌體的程式碼段,以及與舊版韌體的程式碼段所相關聯的轉換公式段。其次,令控制器自更新映像檔中取得轉換公式段,並依據轉換公式段以及第一參數表而產生第二參數表,其中第一參數表儲存舊版韌體的程式碼段運作所需的參數,第二參數表則儲存新版韌體的程式碼段運作所需的參數。接著,令控制器自更新映像檔中取得新版韌體的程式碼段,並將新版韌體的程式碼段複製至這些區塊中的第四區塊。然後,令控制器將第四區塊複製並取代作為第二區塊,且令控制器將第四區塊複製並取代作為第一區塊。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用來說明本發明,而非對本發明的權利範圍作任何的限制。
在下文中,將藉由圖式說明本發明之各種實施例來詳細描述本發明。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。此外,在圖式中相同參考數字可用以表示類似的元件。
首先,請參閱圖1,圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖。資料儲存裝置1包括非揮發性記憶體110與控制器120。在本實施例中,非揮發性記憶體110包括多個區塊(未繪示),且區塊即為資料抹除的最小單元,其中,區塊依據其功能又可區分成閒置(Spare)區塊、主動(Active)區塊以及資料區塊,閒置區塊為可被選取並寫入資料的區塊,主動區塊為被選取並正在寫入資料的區塊,資料區塊為完成資料寫入且不再寫入資料的區塊。需要說明的是,本發明並不限制區塊的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。除此之外,在本實施例中,非揮發性記憶體110即可例如是以快閃記憶體來實現,但本發明亦不以此為限制。
另外,控制器120係電性耦接於非揮發性記憶體110,並且用來控制非揮發性記憶體110的資料存取。必須瞭解的是,資料儲存裝置1通常是會與主機2一起使用,並且根據主機2所下達的寫入/讀取命令,來將資料寫入到非揮發性記憶體110中,或者從非揮發性記憶體110中讀取資料。因此,在本實施例中,控制器120即可為記憶體控制器(Memory Controller),且其包括介面邏輯122、微處理器124及控制邏輯126。微處理器124係電性耦接於介面邏輯122與控制邏輯126,並用以透過介面邏輯122來接收自主機2所下達的寫入/讀取命令,以及透過控制邏輯126來存取非揮發性記憶體110中的資料。
在本實施例中,主機2即可例如是以電腦、手機、平板、相機或任何具有運算功能的電子裝置來實現,但本發明亦不以此為限制。應當理解的是,主機2會經由網路或者其他裝置下載更新或升級資料儲存裝置1所需的更新映像檔,例如場上韌體更新(Field Firmware Update,FFU)映像檔,並將下載的更新映像檔傳送給資料儲存裝置1,以用來更新或升級資料儲存裝置1中的韌體或參數。然而,由於資料儲存裝置1與主機2的運作原理已為本技術領域中具有通常知識者所習知,因此有關上述細部內容於此就不再多加贅述。
接著,請一併參閱圖2及圖3A~圖3F,圖2是本發明實施例所提供的韌體更新方法的流程示意圖,而圖3A~圖3F則分別是圖2的韌體更新方法中所進行各流程步驟時的運作示意圖。需要說明的是,圖2的韌體更新方法是可以適用於圖1的資料儲存裝置1中,但本發明亦不限制圖2的韌體更新方法僅能夠適用於圖1的資料儲存裝置1中。
首先,如圖2及圖3A所示,在步驟S110中,令控制器120接收資料儲存裝置1更新所需的更新映像檔,例如FFU image,並將更新映像檔FFU image寫入至非揮發性記憶體110中的第三區塊B3。在本實施例中,第三區塊B3較佳為一個閒置區塊,且控制器120較佳自主機2接收更新映像檔FFU image,但本發明皆不以此為限制。另外,非揮發性記憶體110的這些區塊中的第一區塊Info1已儲存舊版韌體的程式碼段,即目前所使用韌體的程式碼段,例如第一版韌體的程式碼段CS1,且這些區塊中的第二區塊Info2則為第一區塊Info1的備份品或複製品(Duplication),也就是說第一區塊Info1與第二區塊Info2均同樣儲存舊版韌體的程式碼段CS1。因此,當第一區塊Info1遺失或無法存取時,控制器120將可直接存取第二區塊Info2。當然地,控制器120亦可交換第一區塊Info1與第二區塊Info2的功能。總而言之,本發明並不限制上述第一區塊info 1及第二區塊info 2的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。可以理解的是,上述第一區塊Info1、第二區塊Info2及第三區塊B3較佳分別以SLC(Single Level Cell,單層單元)模式進行資料編程,例如控制器120是以SLC模式來將更新映像檔FFU image寫入(編程)至第三區塊B3中,但本發明亦不以此為限制。另外,在本實施例中,更新映像檔FFU image可包括新版韌體的程式碼段,例如第三版韌體的程式碼段CS3,以及與舊版韌體的程式碼段所相關聯的轉換公式段,例如與第一版韌體的程式碼段CS1所相關聯的轉換公式段TS1。值得注意的是,為了方便以下說明,本實施例的韌體更新方法則是僅先採用以第一版韌體更新至第三版韌體的例子來進行說明,但其亦非用以限制本發明。
其次,如圖2及圖3B所示,在步驟S120中,令控制器120自更新映像檔FFU image中取得轉換公式段TS1,並依據轉換公式段TS1以及第一參數表TAB1而產生第二參數表TAB2,其中,第一參數表TAB1儲存第一版韌體的程式碼段CS1運作所需的參數,第二參數表TAB2則儲存第三版韌體的程式碼段CS3運作所需的參數。在本實施例中,與第一版韌體的程式碼段CS1所相應的第一參數表TAB1是會儲存於非揮發性記憶體110中的第五區塊B5,且控制器120(的微處理器124)可根據轉換公式段TS1而對第一參數表TAB1進行轉換以產生第二參數表TAB2。可以理解的是,控制器120較佳可將第二參數表TAB2同樣儲存於第五區塊B5中,從而節省區塊的使用率,但本發明並不以此為限制。當然地,控制器120亦可將第二參數表TAB2儲存於另一個閒置區塊中,例如第六區塊B6(未繪示)。總而言之,本發明並不限制上述第五區塊B5或第六區塊B6的具體實現方式,且上述第五區塊B5或第六區塊B6也較佳以SLC模式進行資料編程。
一般來說,當資料儲存裝置1運作時,控制器120會載入第一區塊Info1或第二區塊Info2中所儲存的第一版韌體的程式碼段CS1,且配合第一參數表TAB1取得運作所需的參數位址以及參數值,以提供完整的功能。但在習知的韌體更新方法中,控制器120會是直接利用更新映像檔FFU image中的第三版韌體的程式碼段CS3,來取代第一區塊Info1與第二區塊Info2中所儲存的第一版韌體的程式碼段CS1,並配合第一參數表TAB1取得運作所需的參數位址以及參數值。然而,如果第三版韌體的程式碼段CS3需讀取新增參數Y的參數值,或是,參數位址已變更,例如:參數X的參數位址從原本的0xA0變更至0xA1,而新增參數Y的參數位址指定為0xA0,或是,參數值已變更,例如:參數X的參數值從原本的0x00變更至0x01,上述改變將造成第三版韌體的程式碼段CS3無法利用第一參數表TAB1取得正確的參數,以致於使得更新或升級後的資料儲存裝置1無法正常運作。
為了解決上述問題,本發明在更新所需的更新映像檔FFU image中更配置有與第一版韌體的程式碼段CS1所相關聯的轉換公式段TS1,並且在步驟S120中,控制器120自更新映像檔FFU image取得轉換公式段TS1後,並依據轉換公式段TS1以及第一參數表TAB1而產生第二參數表TAB2。必須瞭解的是,本實施例的轉換公式段TS1即可例如是由複數個程式碼所構成,且控制器120所代入轉換公式段TS1的運作方式,也就如同於控制器120所代入第一版韌體的程式碼段CS1的運作方式,因此有關上述細部內容於此就不再多加贅述。
類似地,假如在目前資料儲存裝置1的韌體為第二版韌體的情況下,也就表示上述第一區塊Info1與第二區塊Info2儲存的不是第一版韌體的程式碼段CS1而是第二版韌體的程式碼段CS2(未繪示)。因此,本發明在更新所需的更新映像檔FFU image中除了配置有與第一版韌體的程式碼段CS1所相關聯的轉換公式段TS1,也配置有與第二版韌體的程式碼段CS2所相關聯的轉換公式段TS2(未繪示)。因此,在步驟S120中,本實施例則令控制器120不再根據轉換公式段TS1而產生第二參數表TAB2,而是根據轉換公式段TS2以產生第二參數表TAB2。也就是說,本實施例的更新映像檔FFU image可適用於任何舊版韌體的更新。由於詳盡細節亦如同前述內容所述,故於此就不再多加贅述。
另外,一旦在韌體更新過程中發生中斷事件後,例如斷電,先前技術就只能重頭啟動韌體更新方法。因此,為了改善上述陋習,在本實施例中,控制器120較佳可記錄對應至其中之一步驟的步驟標籤(Tag)或旗標(Flag)至非揮發性記憶體110的一表格區塊TB(Table Block)中,例如,於步驟S110執行完成後,控制器120即可記錄對應至步驟S110的第一步驟標籤至表格區塊TB中,如圖3A所示,並且於步驟S120執行完成後,控制器120則可記錄對應至步驟S120的第二步驟標籤至表格區塊TB中,如圖3B所示。可以理解的是,上述表格區塊TB也較佳為另一個閒置區塊,且其較佳以SLC模式進行資料編程,但本發明亦不以此為限制。又或者是,在其它實施例中,步驟標籤或旗標還可直接儲存在第五區塊B5中的第二參數表TAB2之後,從而節省區塊的使用率。總而言之,本發明並不限制上述表格區塊TB的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
然而,因為所述步驟標籤係用來標示在圖2的韌體更新方法中所處理過的步驟(Process Step),所以在本實施例中,第一步驟標籤即可例如是以「step-S110」來實現,且第二步驟標籤則可例如是以「step-S120」來實現,但本發明並不限制上述第一步驟標籤與第二步驟標籤的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。另外,因為非揮發性記憶體110中的每一區塊又可包含複數個頁面(Pages),且頁面即為資料寫入或讀取的最小單元,所以在本實施例中,分別記錄第一步驟標籤「step-S110」及第二步驟標籤「step-S120」於表格區塊TB中,也就表示是分別寫入第一步驟標籤「step-S110」及第二步驟標籤「step-S120」於表格區塊TB的頁面中,如圖3A及圖3B所示,但本發明亦不以此為限制。有關本實施例藉由利用各步驟標籤來改善先前技術於韌體更新過程發生中斷事件後所只能重頭啟動韌體更新方法的具體內容,將會於下文中而作詳盡說明,故於此就先不再多加贅述。
接著,如圖2及圖3C所示,在步驟S130中,令控制器120自更新映像檔FFU image中取得第三版韌體的程式碼段CS3,並將第三版韌體的程式碼段CS3複製至非揮發性記憶體110中的第四區塊B4。在本實施例中,第四區塊B4較佳為另一個閒置區塊,且控制器120較佳以SLC模式將第三版韌體的程式碼段CS3編程至第四區塊B4中,但本發明亦不以此為限制。可以理解的是,在本實施例中,當第三版韌體的程式碼段CS3複製至第四區塊B4後,則令控制器120記錄一第三步驟標籤(例如,「step-S130」)於表格區塊TB中,如圖3C所示。
然後,如圖2及圖3D所示,在步驟S140中,令控制器120將第四區塊B4複製並取代作為第二區塊Info2。在本實施例中,控制器120較佳可將第四區塊B4備份至另一閒置區塊並取代作為新的第二區塊Info2。可以理解的是,當儲存第一版韌體的程式碼段CS1的第二區塊Info2已被儲存第三版韌體的程式碼段CS3的第四區塊B4備份品所取代時,控制器120較佳可將儲存第一版韌體的程式碼段CS1的第二區塊Info2回收而成為閒置區塊,即抹除儲存第一版韌體的程式碼段CS1的第二區塊Info2,如圖3D所示。相對地,如圖2及圖3E所示,在步驟S150中,令控制器120將第四區塊B4複製並取代作為第一區塊Info1。同樣可以理解的是,控制器120較佳可將第四區塊B4備份至另一閒置區塊並取代作為新的第一區塊Info1,並且當儲存第一版韌體的程式碼段CS1的第一區塊Info1已被儲存第三版韌體的程式碼段CS3的第四區塊B4備份品所取代時,控制器120也較佳可將儲存第一版韌體的程式碼段CS1的第一區塊Info1回收而成為閒置區塊,即抹除儲存第一版韌體的程式碼段CS1的第一區塊Info1,如圖3E所示。
因此,在經過步驟S140及步驟S150後,本實施例的資料儲存裝置1中儲存第一版韌體的程式碼段CS1的第一區塊Info1與第二區塊Info2已均被儲存第三版韌體的程式碼段CS3的第四區塊B4備份品所取代,也就是說儲存第三版韌體的程式碼段CS3的第四區塊B4備份品將分別作為新的第一區塊Info1以及第二區塊Info2。值得一提的是,圖2中的步驟S140及步驟S150的順序僅是用以舉例,其並非用以限制本發明。在其它實施例中,資料儲存裝置1也可將步驟S140及步驟S150的順序對調,此舉並不影響本發明的實現。類似地,在本實施例中,當複製第四區塊B4以取代作為第二區塊Info2後,則令控制器120記錄一第四步驟標籤(例如,「step-S140」)於表格區塊TB中,如圖3D所示,並且當複製第四區塊B4以取代作為第一區塊Info1後,則令控制器120記錄一第五步驟標籤(例如,「step-S150」)於表格區塊TB中,如圖3E所示。需要要說明的是,在其它實施例中,在步驟S150還可變更為:直接將第四區塊B4取代作為第一區塊Info1。
最後,如圖2及圖3F所示,在步驟S160中,則令控制器120將儲存更新映像檔FFU image的第三區塊B3以及儲存第三版韌體的程式碼段CS3的第四區塊B4回收而成為閒置區塊,即抹除儲存更新映像檔FFU image的第三區塊B3以及儲存第三版韌體的程式碼段CS3的第四區塊B4,從而減少閒置區塊的過度浪費,亦即提升整體區塊的可使用率。可以理解的是,在本實施例中,當第三區塊B3與第四區塊B4已被回收成為閒置區塊後,則令控制器120記錄一第六步驟標籤(例如,「step- finish」)於表格區塊TB中,如圖3F所示,並且當執行完本發明的韌體更新方法後,控制器120較佳可啟動重置(Reset)程序,從而落實完成資料儲存裝置1的韌體更新。由於控制器120所經重置而完成資料儲存裝置1之韌體更新的運作原理已為本技術領域中具有通常知識者所習知,因此有關上述細部內容於此就不再多加贅述。
如此看來,相較於先前技術,當更新或升級後的資料儲存裝置1運作時,控制器120會載入第一區塊Info1或第二區塊Info2中所儲存的第三版韌體(新版韌體)的程式碼段CS3,並且改為配合第二參數表TAB2來執行第三版韌體的功能,因此,即使在第一版韌體的程式碼段CS1與第三版韌體的程式碼段CS3間有新增或更改參數的情況下,更新或升級後的資料儲存裝置1仍可正常運作。
另一方面,如同前面內容所述,本實施例可藉由利用各步驟標籤來改善先前技術於韌體更新過程發生中斷事件後所只能重頭啟動韌體更新方法的陋習。舉例來說,在韌體更新過程中,即圖2的韌體更新方法發生中斷事件時,控制器120將檢查表格區塊TB中是否記錄有第一至第六步驟標籤。若表格區塊TB中只記錄有第一至第五步驟標籤的話,也就表示發生中斷事件前,圖2的韌體更新方法已完成步驟S110到步驟S150,但尚未完成步驟S160,因此,當中斷事件結束後,控制器120根據上述檢查結果來重新執行步驟S160以繼續執行本發明韌體更新方法。類似地,若表格區塊TB中只記錄有第一至第四步驟標籤的話,也就表示發生中斷事件前,圖2的韌體更新方法已完成步驟S110到步驟S140,但尚未完成步驟S150到步驟S160,因此,當中斷事件結束後,控制器120根據上述檢查結果來重新執行步驟S150到步驟S160以完成本發明韌體更新方法。以此類推,若表格區塊TB中皆無記錄有第一至第六步驟標籤的話,也就表示發生中斷事件前,圖2的韌體更新方法都尚未完成任何步驟,因此,當中斷事件結束後,本實施例則才令控制器120根據上述檢查結果來重新執行本發明韌體更新方法。必須瞭解的是,在當前新版韌體更新成功後,本實施例較佳可抹除當前的表格區塊TB,以避免重覆執行本發明韌體更新方法。總而言之,上述所根據檢查結果而直接從未處理過的步驟中以重新執行韌體更新方法的具體實現方式在此皆僅只是舉例,其並非用以限制本發明,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
綜上所述,本發明實施例所提供的韌體更新方法,適用於資料儲存裝置中,且其可以是根據資料儲存裝置更新所需的更新映像檔中的轉換公式段而產生新的參數表,因此,即使在舊版韌體的程式碼段與新版韌體的程式碼段間有參數改變的情況下,更新或升級後的資料儲存裝置仍可正常運作。此外,由於所述韌體更新方法還可藉由利用步驟標籤來標示處理過的步驟,因此本發明也就改善了先前技術於韌體更新過程發生中斷事件後所只能重頭啟動韌體更新方法的陋習。
以上所述僅為本發明之實施例,其並非用以侷限本發明之專利範圍。
1‧‧‧資料儲存裝置110‧‧‧非揮發性記憶體120‧‧‧控制器122‧‧‧介面邏輯124‧‧‧微處理器126‧‧‧控制邏輯2‧‧‧主機FFU image‧‧‧更新映像檔info1‧‧‧第一區塊info2‧‧‧第二區塊B3‧‧‧第三區塊B4‧‧‧第四區塊B5‧‧‧第五區塊TB‧‧‧表格區塊CS1、CS3‧‧‧程式碼段TS1‧‧‧轉換公式段TAB1‧‧‧第一參數表TAB2‧‧‧第二參數表step-S110‧‧‧第一步驟標籤step-S120‧‧‧第二步驟標籤step-S130‧‧‧第三步驟標籤step-S140‧‧‧第四步驟標籤step-S150‧‧‧第五步驟標籤step-finish‧‧‧第六步驟標籤S110~S160‧‧‧流程步驟
圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖。 圖2是本發明實施例所提供的韌體更新方法的流程示意圖。 圖3A是圖2的韌體更新方法中所進行步驟S110時的運作示意圖。 圖3B是圖2的韌體更新方法中所進行步驟S120時的運作示意圖。 圖3C是圖2的韌體更新方法中所進行步驟S130時的運作示意圖。 圖3D是圖2的韌體更新方法中所進行步驟S140時的運作示意圖。 圖3E是圖2的韌體更新方法中所進行步驟S150時的運作示意圖。 圖3F是圖2的韌體更新方法中所進行步驟S160時的運作示意圖。
S110~S160‧‧‧流程步驟

Claims (9)

  1. 一種韌體更新方法,適用於一資料儲存裝置中,該資料儲存裝置包括一非揮發性記憶體與一控制器,該非揮發性記憶體包括多個區塊,該些區塊中的一第一區塊與一第二區塊均儲存一舊版韌體的一程式碼段,該韌體更新方法包括: 令該控制器接收該資料儲存裝置更新所需一更新映像檔,並將該更新映像檔寫入至該些區塊中的一第三區塊,其中該更新映像檔包括一新版韌體的該程式碼段,以及與該舊版韌體的該程式碼段所相關聯的轉換公式段; 令該控制器自該更新映像檔中取得該轉換公式段,並依據該轉換公式段以及一第一參數表而產生一第二參數表,其中該第一參數表儲存該舊版韌體的該程式碼段運作所需的參數,該第二參數表則儲存該新版韌體的該程式碼段運作所需的參數; 令該控制器自該更新映像檔中取得該新版韌體的該程式碼段,並將該新版韌體的該程式碼段複製至該些區塊中的一第四區塊;以及 令該控制器將該第四區塊複製並取代作為該第二區塊,且令該控制器將該第四區塊複製並取代作為該第一區塊。
  2. 如請求項第1項所述的韌體更新方法,更包括: 當複製該第四區塊以取代作為該第一區塊後,則令該控制器抹除儲存該更新映像檔的該第三區塊與儲存該新版韌體的該程式碼段的該第四區塊。
  3. 如請求項第2項所述的韌體更新方法,更包括: 當該更新映像檔寫入於該第三區塊後,則令該控制器記錄一第一步驟標籤於一表格區塊中,其中該表格區塊係為該些區塊的其中之一;以及 當產生該第二參數表後,則令該控制器記錄一第二步驟標籤於該表格區塊中。
  4. 如請求項第3項所述的韌體更新方法,更包括: 當該新版韌體的該程式碼段複製至該第四區塊後,則令該控制器記錄一第三步驟標籤於該表格區塊中。
  5. 如請求項第4項所述的韌體更新方法,更包括: 當複製該第四區塊以取代作為該第二區塊後,則令該控制器記錄一第四步驟標籤於該表格區塊中;以及 當複製該第四區塊以取代作為該第一區塊後,則令該控制器記錄一第五步驟標籤於該表格區塊中。
  6. 如請求項第5項所述的韌體更新方法,更包括: 當抹除儲存該更新映像檔的該第三區塊與儲存該新版韌體的該程式碼段的該第四區塊後,則令該控制器記錄一第六步驟標籤於該表格區塊中。
  7. 如請求項第7項所述的韌體更新方法,其中該第一至該第六步驟標籤係分別用來標示在該韌體更新方法中所處理過的一步驟。
  8. 如請求項第7項所述的韌體更新方法,其中在該韌體更新方法發生一中斷事件時,則令該控制器檢查該表格區塊中是否記錄有該第一至該第六步驟標籤,並在該中斷事件結束後,則令該控制器根據檢查結果來直接從未處理過的該步驟中以重新執行該韌體更新方法。
  9. 如請求項第1項所述的韌體更新方法,其中該第一參數表係儲存於該些區塊中的一第五區塊,且該第二參數表則同樣儲存於該第五區塊中,或者儲存於該些區塊中的一第六區塊。
TW107123307A 2018-07-05 2018-07-05 韌體更新方法 TWI676933B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107123307A TWI676933B (zh) 2018-07-05 2018-07-05 韌體更新方法
CN201810775719.0A CN110688141B (zh) 2018-07-05 2018-07-16 固件更新方法
US16/360,034 US11144299B2 (en) 2018-07-05 2019-03-21 Firmware updating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107123307A TWI676933B (zh) 2018-07-05 2018-07-05 韌體更新方法

Publications (2)

Publication Number Publication Date
TWI676933B TWI676933B (zh) 2019-11-11
TW202006535A true TW202006535A (zh) 2020-02-01

Family

ID=69101575

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107123307A TWI676933B (zh) 2018-07-05 2018-07-05 韌體更新方法

Country Status (3)

Country Link
US (1) US11144299B2 (zh)
CN (1) CN110688141B (zh)
TW (1) TWI676933B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102612842B1 (ko) * 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
KR20200077287A (ko) * 2018-12-20 2020-06-30 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
CN113805908A (zh) * 2020-06-17 2021-12-17 瑞昱半导体股份有限公司 固件更新系统和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
CN1297891C (zh) * 2003-06-16 2007-01-31 纬创资通股份有限公司 交叉式固件升级方法和系统
TWI267861B (en) * 2005-09-06 2006-12-01 Alcor Micro Corp Method and device for loading configuration values of nonvolatile memory
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US20090083475A1 (en) * 2007-09-24 2009-03-26 Mediatek Inc. Apparatus and method for updating firmware stored in a memory
US7813166B2 (en) * 2008-06-30 2010-10-12 Qualcomm Incorporated Controlled value reference signal of resistance based memory circuit
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
TW201207731A (en) * 2010-08-06 2012-02-16 Universal Scient Ind Shanghai Embedded system with plural firmware and firmware updating method thereof
US8499295B2 (en) * 2010-09-20 2013-07-30 American Megatrends, Inc. Microcontroller firmware running from RAM and applications of the same
US8595716B2 (en) * 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
CN102331943B (zh) * 2011-09-08 2014-09-17 威盛电子股份有限公司 在线更新存储器系统与方法
US9027014B2 (en) * 2013-01-17 2015-05-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Updating firmware compatibility data
KR101992680B1 (ko) * 2013-02-05 2019-06-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 화상형성장치, 추적장치, 관리장치 및 화상형성장치의 펌웨어 업데이트 방법
US9092300B2 (en) * 2013-04-18 2015-07-28 Ottr Products, Llc Peripheral device and method for updating firmware thereof
TW201602767A (zh) * 2014-07-09 2016-01-16 萬國商業機器公司 韌體更新方法及其電源系統
TWI515660B (zh) * 2014-12-17 2016-01-01 緯創資通股份有限公司 韌體變量更新方法
US9858067B2 (en) * 2015-10-05 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with update control mechanism and method of operation thereof
US10642603B2 (en) * 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems

Also Published As

Publication number Publication date
US11144299B2 (en) 2021-10-12
CN110688141A (zh) 2020-01-14
CN110688141B (zh) 2022-11-29
TWI676933B (zh) 2019-11-11
US20200012487A1 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
JP5636034B2 (ja) データ利用についてのマウント時間の調停
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US20130138871A1 (en) Flash Memory Device and Data Access Method for Same
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
US20090100290A1 (en) Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method
TWI489466B (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
JP2006120082A (ja) メモリカード、半導体装置、及びメモリカードの制御方法
KR20200031852A (ko) 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
CN108108261B (zh) 数据存储装置及其操作方法
US11144299B2 (en) Firmware updating method
US20130091322A1 (en) Electronic System and Memory Managing Method Thereof
KR20210001508A (ko) 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법
CN104793891A (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
TW201734793A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
TWI493341B (zh) 記憶體儲存裝置及其修復方法
TWI451247B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US20200250104A1 (en) Apparatus and method for transmitting map information in a memory system
JP4794530B2 (ja) 半導体装置および携帯電話
US20130326123A1 (en) Memory management device and method, and program
US11392310B2 (en) Memory system and controller
TWI769193B (zh) 記憶體系統的操作方法