TWI749704B - 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI749704B TWI749704B TW109127454A TW109127454A TWI749704B TW I749704 B TWI749704 B TW I749704B TW 109127454 A TW109127454 A TW 109127454A TW 109127454 A TW109127454 A TW 109127454A TW I749704 B TWI749704 B TW I749704B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- firmware code
- execute
- code
- control circuit
- Prior art date
Links
- 230000005055 memory storage Effects 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000008569 process Effects 0.000 claims description 17
- 238000001994 activation Methods 0.000 claims description 7
- 230000002618 waking effect Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/72—Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/027—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in fuses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/785—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/785—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
- G11C29/787—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using a fuse hierarchy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/16—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
Landscapes
- Stored Programmes (AREA)
Abstract
本發明的範例實施例提供一種韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元。所述方法包括:執行唯讀記憶體中的韌體碼;在執行所述韌體碼的第一部分後,根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊;以及根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。
Description
本發明是有關於一種記憶體管理技術,且特別是有關於一種韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
大部分的記憶體儲存裝置或其控制晶片都會儲存開機用的韌體碼。當開機時,記憶體儲存裝置的控制晶片可執行此韌體碼,以完成系統初始畫等開機程序或啟動程序。一般來說,在記憶體儲存裝置或其控制晶片在出廠前,此韌體碼就會預先燒錄在記憶體儲存裝置或其控制晶片的唯讀記憶體中,以避免裝置在運作過程中遭使用者修改。但是,這樣的作法也導致唯讀記憶體中的韌體碼無法被更正或更新。若想要更新唯讀記憶體中的韌體碼,整個唯讀記憶體的製程需要重做。
本發明提供一種韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元,可動態調整唯讀記憶體中無法被修改的韌體碼的執行結果。
本發明的範例實施例提供一種韌體碼的執行方法,其用於記憶體儲存裝置,其中所述記憶體儲存裝置包括唯讀記憶體與參考記憶體。所述韌體碼的執行方法包括:執行所述唯讀記憶體中的韌體碼;以及在執行所述韌體碼的第一部分後,根據所述韌體碼中的索引資訊查詢所述參考記憶體中的參考資訊;以及根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。
在本發明的一範例實施例中,根據所述參考資訊決定繼續執行所述韌體碼的所述第二部分或切換為執行所述參考記憶體中的所述替代程式碼的步驟包括:若所述參考資訊包括第一識別資訊,在執行所述韌體碼的所述第一部分後,繼續執行所述韌體碼的所述第二部分;以及若所述參考資訊包括第二識別資訊,在執行所述韌體碼的所述第一部分後,切換為執行所述參考記憶體中的所述替代程式碼。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括主機介面、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述主機介面用以耦接至主機系統。所述記憶體控制電路單元耦接至所述主機介面與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以執行唯讀記憶體中的韌體碼。在執行所述韌體碼的第一部分後,所述記憶體控制電路單元更用以根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊。所述記憶體控制電路單元更用以根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。
本發明的範例實施例另提供一種記憶體控制電路單元,其包括唯讀記憶體、參考記憶體及記憶體控制電路。所述唯讀記憶體用以儲存韌體碼。所述參考記憶體用以儲存參考資訊。所述記憶體控制電路耦接至所述唯讀記憶體與所述參考記憶體。所述記憶體控制電路用以執行所述唯讀記憶體中的所述韌體碼。在執行所述韌體碼的第一部分後,所述記憶體控制電路更用以根據所述韌體碼中的索引資訊查詢所述參考記憶體中的所述參考資訊。所述記憶體控制電路更用以根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。
在本發明的一範例實施例中,所述參考記憶體包括電子保險絲結構。
在本發明的一範例實施例中,所述參考記憶體包括隨機存取記憶體。
在本發明的一範例實施例中,根據所述參考資訊決定繼續執行所述韌體碼的所述第二部分或切換為執行所述參考記憶體中的所述替代程式碼的操作包括:若所述參考資訊包括第一識別資訊,在執行所述韌體碼的所述第一部分後,繼續執行所述韌體碼的所述第二部分;以及若所述參考資訊包括第二識別資訊,在執行所述韌體碼的所述第一部分後,切換為執行所述參考記憶體中的所述替代程式碼。
在本發明的一範例實施例中,所述啟動程序包括將所述記憶體儲存裝置開機或喚醒。
基於上述,在執行所述韌體碼的第一部分後,可根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊。接著,可根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。藉此,不需重做唯讀記憶體的製程,唯讀記憶體中的韌體碼的執行結果也可被動態調整,進而提高提高記憶體儲存裝置(或記憶體控制電路單元)的使用彈性及/或延長記憶體儲存裝置(或記憶體控制電路單元)的使用壽命。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明的一範例實施例所繪示的記憶體儲存裝置的示意圖。請參照圖1,記憶體儲存裝置10包括記憶體控制電路單元11與可複寫式非揮發性記憶體模組12。記憶體控制電路單元11耦接至可複寫式非揮發性記憶體模組12。記憶體控制電路單元11可包括至少一個控制晶片並用以控制可複寫式非揮發性記憶體模組12。在一範例實施例中,記憶體控制電路單元11亦可用以控制記憶體儲存裝置10的整體或部分操作。可複寫式非揮發性記憶體模組12可包括任意類型的非揮發性儲存單元並用以非揮發性地儲存資料。
在一範例實施例中,記憶體控制電路單元11包括唯讀記憶體(Read Only Memory, ROM)111、參考記憶體112及記憶體控制電路113。唯讀記憶體111用以非揮發性地儲存資料。特別是,唯讀記憶體111中的資料是於記憶體儲存裝置10或記憶體控制電路單元11出廠前就燒錄進去,而無法在記憶體儲存裝置10或記憶體控制電路單元11出廠後進行修改。
參考記憶體112用以揮發性或非揮發性地儲存資料。相較於唯讀記憶體111,儲存於參考記憶體112中的資料可以在記憶體儲存裝置10或記憶體控制電路單元11出廠後進行修改。藉此,在記憶體儲存裝置10或記憶體控制電路單元11出廠後,參考記憶體112中的資料可用以針對已無法修改的唯讀記憶體111中的資料進行補強或更新。
記憶體控制電路113耦接至唯讀記憶體111與參考記憶體112。記憶體控制電路113可用以存取唯讀記憶體111與參考記憶體112並根據唯讀記憶體111(與參考記憶體112)的存取結果來發送控制指令以控制可複寫式非揮發性記憶體模組12(或記憶體儲存裝置10)。例如,記憶體控制電路113可包括記憶體控制器、或是其他可程式化之一般用途或特殊用途的微處理器、數位訊號處理器(Digital Signal Processor, DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits, ASIC)、可程式化邏輯裝置(Programmable Logic Device, PLD)或其他類似裝置或這些裝置的組合。
在一範例實施例中,唯讀記憶體111中儲存的資料包括韌體碼101。當偵測到開機訊號時,記憶體控制電路113可從唯讀記憶體111中讀取並執行韌體碼101,以進行一個啟動程序。例如,此啟動程序可為開機程序(亦稱為初始化程序)或喚醒程序。開機程序用以將記憶體儲存裝置10開機。喚醒程序用以將記憶體儲存裝置10從待機、休眠或睡眠狀態中喚醒。在啟動程序中,響應於韌體碼101之運行,記憶體控制電路113可發送至少一存取指令至可複寫式非揮發性記憶體模組12,以從可複寫式非揮發性記憶體模組12中的特定實體位址讀取資料及/或將資料寫入至可複寫式非揮發性記憶體模組12中的特定實體位址。
在一範例實施例中,參考記憶體112中儲存的資料包括參考資訊102與替代程式碼103。在執行韌體碼101的一部分(亦稱為第一部分)後,記憶體控制電路113可根據韌體碼101中的索引資訊查詢參考記憶體112中的參考資訊102。記憶體控制電路113可根據參考資訊102決定繼續執行韌體碼101的另一部分(亦稱為第二部分)或者切換為執行參考記憶體112中的替代程式碼103,以完成所述啟動程序。須注意的是,所述韌體碼101的第二部分是預設接續在韌體碼101的第一部分之後執行。因此,若切換至執行替代程式碼103,則韌體碼101的第二部分可被略過而不被執行。
假設原先燒錄於唯讀記憶體111中的韌體碼101是針對某種特定型號的記憶體儲存裝置所設置的或者韌體碼101具有錯誤。傳統上,若欲使韌體碼101相容於其他型號的記憶體儲存裝置或更正韌體碼101中的錯誤,一般需要重做製程以將新的韌體碼燒錄至唯讀記憶體111中,但是,這樣的做法會增加廠商成本。在一範例實施例中,藉由切換至執行替代程式碼103(並略過韌體碼101的第二部分),韌體碼101的原始執行結果可被改變,從而達到相同或相似於直接更新韌體碼101的效果。
在一範例實施例中,假設至少一第一存取指令可響應於韌體碼101的第二部分之執行而發送。所述至少一第一存取指令可指示存取實體位址A。在切換至執行替代程式碼103後,至少一第二存取指令可響應於替代程式碼103之執行而發送。所述至少一第二存取指令可指示存取實體位址B。實體位址A不同於實體位址B。
在一範例實施例中,假設至少一第三存取指令可響應於韌體碼101的第二部分之執行而發送。所述至少一第三存取指令可指示將資料C寫入至可複寫式非揮發性記憶體模組12的實體位址A。在切換至執行替代程式碼103後,至少一第四存取指令可響應於替代程式碼103之執行而發送。所述至少一第四存取指令可指示將資料D寫入至可複寫式非揮發性記憶體模組12的實體位址A(或實體位址B)。資料D不同於資料C。
在一範例實施例中,響應於韌體碼101的第二部分之執行以及響應於替代程式碼103之執行亦可發送不同的控制指令。所述不同的控制指令可用以對記憶體儲存裝置10中的電子元件進行不同的控制或配置。或者,在一範例實施例中,響應於韌體碼101的第二部分之執行以及響應於替代程式碼103之執行亦可在啟動程序中對於記憶體儲存裝置10的至少部分系統資訊進行不同的配置等,本發明不加以限制。
圖2是根據本發明的一範例實施例所繪示的調整韌體碼的執行結果的示意圖。請參照圖1與圖2,在一範例實施例中,記憶體控制電路113包括記憶體控制器21。韌體碼101包括韌體碼201與202。韌體碼201為韌體碼101的第一部分。韌體碼202為韌體碼101的第二部分。韌體碼202接續於韌體碼201之後,且索引資訊Index(1)插入於韌體碼201與202之間。
當偵測到開機訊號或啟動訊號時,記憶體控制器21可執行韌體碼101,以執行啟動程序。在啟動程序中,記憶體控制器21可先執行韌體碼201。在執行韌體碼201後,當執行到位置P(1)時,記憶體控制器21可讀取到索引資訊Index(1)。記憶體控制器21可根據索引資訊Index(1)從參考記憶體112中查詢參考資訊102並根據查詢結果決定要繼續執行韌體碼202或者切換為執行參考記憶體中的112替代程式碼103。
在一範例實施例中,若查詢結果反映參考資訊102中對應於索引資訊Index(1)的識別資訊為第一識別資訊(例如致能資訊OFF)。在執行韌體碼201之後,記憶體控制器21可根據此查詢結果繼續執行韌體碼202。換言之,在此範例實施例中,記憶體控制器21將連續執行韌體碼101中的韌體碼201與202。
在一範例實施例中,若查詢結果反映參考資訊102中對應於索引資訊Index(1)的識別資訊為第二識別資訊(例如致能資訊ON)。在執行韌體碼201之後,記憶體控制器21可根據此查詢結果切換為執行參考記憶體112中的替代程式碼103。換言之,在此範例實施例中,記憶體控制器21將連續執行韌體碼101中的韌體碼201與參考記憶體112中的替代程式碼103。此外,在此範例實施例中,韌體碼202將被略過而不被執行。
須注意的是,雖然圖2的範例實施例僅將韌體碼劃分為兩個部分。然而,在另一範例實施例中,韌體碼亦可以被劃分為更多部分,且任兩個連續的部分之間皆可插入索引資訊。在韌體碼的執行過程中,若讀取到某一索引資訊,此索引資訊可用以查詢所述參考資訊並根據查詢結果決定是否執行後續部分的韌體碼或者切換至執行參考記憶體中相對應的替代程式碼。
在一範例實施例中,圖1的參考記憶體112包括電子保險絲(eFuse)結構(亦稱為電子熔絲結構)。參考資訊102及/或替代程式碼103可儲存於此電子保險絲結構中。
在一範例實施例中,圖1的參考記憶體112包括隨機存取記憶體(RAM)。參考資訊102及/或替代程式碼103可儲存於此隨機存取記憶體中。
圖3是根據本發明的一範例實施例所繪示的記憶體儲存裝置的示意圖。請參照圖3,記憶體儲存裝置30包括連接介面單元31、記憶體控制電路單元32與可複寫式非揮發性記憶體模組33。須注意的是,記憶體控制電路單元32可包含圖1的記憶體控制電路單元11,且可複寫式非揮發性記憶體模組33可包含圖1的可複寫式非揮發性記憶體模組12。
連接介面單元31用以將記憶體儲存裝置30耦接至主機系統。在本範例實施例中,連接介面單元31是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元31亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、MCP介面標準、MMC介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元31可與記憶體控制電路單元32封裝在一個晶片中,或者連接介面單元31是佈設於一包含記憶體控制電路單元32之晶片外。
記憶體控制電路單元32用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統的指令在可複寫式非揮發性記憶體模組33中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組33是耦接至記憶體控制電路單元32並且用以儲存主機系統所寫入之資料。可複寫式非揮發性記憶體模組33可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組33中的每一個記憶胞是以電壓(亦稱為臨界電壓)的改變來儲存一或多個位元。例如,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組33中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組33的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖4是根據本發明的一範例實施例所繪示的韌體碼的執行方法的流程圖。請參照圖4,在步驟S401中,執行唯讀記憶體中的韌體碼。在步驟S402中,在執行所述韌體碼的第一部分後,根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊。在步驟S403中,根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。
然而,圖4中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖4中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖4的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在執行所述韌體碼的第一部分後,可根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊。接著,可根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序。藉此,不需重做唯讀記憶體的製程,唯讀記憶體中的韌體碼的執行結果也可被動態調整,進而提高提高記憶體儲存裝置(或記憶體控制電路單元)的使用彈性及/或延長記憶體儲存裝置(或記憶體控制電路單元)的使用壽命。
10,30:記憶體儲存裝置
11,32:記憶體控制電路單元
111:唯讀記憶體
112:參考記憶體
113:記憶體控制電路
101,201,202:韌體碼
102:參考資訊
103:替代程式碼
12,33:可複寫式非揮發性記憶體模組
21:記憶體控制器
P(1):位置
31:連接介面單元
S401:步驟(執行唯讀記憶體中的韌體碼)
S402:步驟(在執行所述韌體碼的第一部分後,根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊)
S403:步驟(根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序)
圖1是根據本發明的一範例實施例所繪示的記憶體儲存裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的調整韌體碼的執行的示意圖。
圖3是根據本發明的一範例實施例所繪示的記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的韌體碼的執行方法的流程圖。
S401:步驟(執行唯讀記憶體中的韌體碼)
S402:步驟(在執行所述韌體碼的第一部分後,根據所述韌體碼中的索引資訊查詢參考記憶體中的參考資訊)
S403:步驟(根據所述參考資訊決定繼續執行所述韌體碼的第二部分或切換為執行所述參考記憶體中的替代程式碼,以完成啟動程序)
Claims (15)
- 一種韌體碼的執行方法,用於一記憶體儲存裝置,其中該記憶體儲存裝置包括一唯讀記憶體與一參考記憶體,且該韌體碼的執行方法包括: 執行該唯讀記憶體中的一韌體碼; 在執行該韌體碼的一第一部分後,根據該韌體碼中的一索引資訊查詢該參考記憶體中的一參考資訊;以及 根據該參考資訊決定繼續執行該韌體碼的一第二部分或切換為執行該參考記憶體中的一替代程式碼,以完成一啟動程序。
- 如請求項1所述的韌體碼的執行方法,其中該參考記憶體包括一電子保險絲結構。
- 如請求項1所述的韌體碼的執行方法,其中該參考記憶體包括一隨機存取記憶體。
- 如請求項1所述的韌體碼的執行方法,其中根據該參考資訊決定繼續執行該韌體碼的該第二部分或切換為執行該參考記憶體中的該替代程式碼的步驟包括: 若該參考資訊包括一第一識別資訊,在執行該韌體碼的該第一部分後,繼續執行該韌體碼的該第二部分;以及 若該參考資訊包括一第二識別資訊,在執行該韌體碼的該第一部分後,切換為執行該參考記憶體中的該替代程式碼。
- 如請求項1所述的韌體碼的執行方法,其中該啟動程序包括將該記憶體儲存裝置開機或喚醒。
- 一種記憶體儲存裝置,包括: 一主機介面,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組;以及 一記憶體控制電路單元,耦接至該主機介面與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以執行一唯讀記憶體中的一韌體碼, 在執行該韌體碼的一第一部分後,該記憶體控制電路單元更用以根據該韌體碼中的一索引資訊查詢一參考記憶體中的一參考資訊,並且 該記憶體控制電路單元更用以根據該參考資訊決定繼續執行該韌體碼的一第二部分或切換為執行該參考記憶體中的一替代程式碼,以完成一啟動程序。
- 如請求項6所述的記憶體儲存裝置,其中該參考記憶體包括一電子保險絲結構。
- 如請求項6所述的記憶體儲存裝置,其中該參考記憶體包括一隨機存取記憶體。
- 如請求項6所述的記憶體儲存裝置,其中根據該參考資訊決定繼續執行該韌體碼的該第二部分或切換為執行該參考記憶體中的該替代程式碼的操作包括: 若該參考資訊包括一第一識別資訊,在執行該韌體碼的該第一部分後,繼續執行該韌體碼的該第二部分;以及 若該參考資訊包括一第二識別資訊,在執行該韌體碼的該第一部分後,切換為執行該參考記憶體中的該替代程式碼。
- 如請求項6所述的記憶體儲存裝置,其中該啟動程序包括將該記憶體儲存裝置開機或喚醒。
- 一種記憶體控制電路單元,包括: 一唯讀記憶體,用以儲存一韌體碼; 一參考記憶體,用以儲存參考資訊;以及 一記憶體控制電路,耦接至該唯讀記憶體與該參考記憶體, 其中該記憶體控制電路用以執行該唯讀記憶體中的該韌體碼, 在執行該韌體碼的一第一部分後,該記憶體控制電路更用以根據該韌體碼中的一索引資訊查詢該參考記憶體中的該參考資訊,並且 該記憶體控制電路更用以根據該參考資訊決定繼續執行該韌體碼的一第二部分或切換為執行該參考記憶體中的一替代程式碼,以完成一啟動程序。
- 如請求項11所述的記憶體控制電路單元,其中該參考記憶體包括一電子保險絲結構。
- 如請求項11所述的記憶體控制電路單元,其中該參考記憶體包括一隨機存取記憶體。
- 如請求項11所述的記憶體控制電路單元,其中根據該參考資訊決定繼續執行該韌體碼的該第二部分或切換為執行該參考記憶體中的該替代程式碼的操作包括: 若該參考資訊包括一第一識別資訊,在執行該韌體碼的該第一部分後,繼續執行該韌體碼的該第二部分;以及 若該參考資訊包括一第二識別資訊,在執行該韌體碼的該第一部分後,切換為執行該參考記憶體中的該替代程式碼。
- 如請求項11所述的記憶體控制電路單元,其中該啟動程序包括將該記憶體儲存裝置開機或喚醒。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109127454A TWI749704B (zh) | 2020-08-13 | 2020-08-13 | 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 |
US17/033,684 US20220051748A1 (en) | 2020-08-13 | 2020-09-26 | Execution method of firmware code, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109127454A TWI749704B (zh) | 2020-08-13 | 2020-08-13 | 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI749704B true TWI749704B (zh) | 2021-12-11 |
TW202207022A TW202207022A (zh) | 2022-02-16 |
Family
ID=80224545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109127454A TWI749704B (zh) | 2020-08-13 | 2020-08-13 | 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220051748A1 (zh) |
TW (1) | TWI749704B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902583A (zh) * | 2003-12-31 | 2007-01-24 | 桑迪士克股份有限公司 | 快闪存储器系统起动操作 |
TW201525862A (zh) * | 2013-12-17 | 2015-07-01 | Inventec Corp | 計算機系統與計算機系統啓動方法 |
CN105144185A (zh) * | 2013-04-23 | 2015-12-09 | 惠普发展公司,有限责任合伙企业 | 验证控制器代码和系统启动代码 |
CN105303094A (zh) * | 2015-05-07 | 2016-02-03 | 同方计算机有限公司 | 一种usb主控芯片的安全自验系统及自验方法 |
JP6333993B2 (ja) * | 2014-03-28 | 2018-05-30 | インテル・コーポレーション | ハードウェアプラットフォームのためのファームウェアのインシステムプロビジョニング |
US10120694B2 (en) * | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US10169289B2 (en) * | 2016-06-24 | 2019-01-01 | SK Hynix Inc. | Memory system and method for accelerating boot time |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
-
2020
- 2020-08-13 TW TW109127454A patent/TWI749704B/zh active
- 2020-09-26 US US17/033,684 patent/US20220051748A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902583A (zh) * | 2003-12-31 | 2007-01-24 | 桑迪士克股份有限公司 | 快闪存储器系统起动操作 |
US10120694B2 (en) * | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
CN105144185A (zh) * | 2013-04-23 | 2015-12-09 | 惠普发展公司,有限责任合伙企业 | 验证控制器代码和系统启动代码 |
TW201525862A (zh) * | 2013-12-17 | 2015-07-01 | Inventec Corp | 計算機系統與計算機系統啓動方法 |
JP6333993B2 (ja) * | 2014-03-28 | 2018-05-30 | インテル・コーポレーション | ハードウェアプラットフォームのためのファームウェアのインシステムプロビジョニング |
CN105303094A (zh) * | 2015-05-07 | 2016-02-03 | 同方计算机有限公司 | 一种usb主控芯片的安全自验系统及自验方法 |
US10169289B2 (en) * | 2016-06-24 | 2019-01-01 | SK Hynix Inc. | Memory system and method for accelerating boot time |
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202207022A (zh) | 2022-02-16 |
US20220051748A1 (en) | 2022-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4129381B2 (ja) | 不揮発性半導体記憶装置 | |
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US20170039141A1 (en) | Mapping table updating method, memory storage device and memory control circuit unit | |
TWI545572B (zh) | 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI731338B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201539455A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9947417B2 (en) | Memory management method, memory storage device and memory controlling circuit unit | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US9312013B1 (en) | Configuration method of erase operation, memory controlling circuit unit and memory storage device | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN106445401A (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN105989887B (zh) | 抹除操作配置方法、存储器控制电路单元与存储器 | |
CN104536906A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
US9760456B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
CN105810246A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI749704B (zh) | 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111949321A (zh) | 固件码执行方法、存储器存储装置及存储器控制电路单元 | |
CN112988076B (zh) | 快闪存储器控制方法、存储装置及控制器 | |
TWI808596B (zh) | 讀取電壓準位校正方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112394883B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN116230062A (zh) | 电压预测方法、存储器存储装置及存储器控制电路单元 | |
US20130246687A1 (en) | Data writing method, memory controller and memory storage apparatus |