TWI494849B - 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
韌體碼載入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI494849B TWI494849B TW102116111A TW102116111A TWI494849B TW I494849 B TWI494849 B TW I494849B TW 102116111 A TW102116111 A TW 102116111A TW 102116111 A TW102116111 A TW 102116111A TW I494849 B TWI494849 B TW I494849B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware code
- memory
- copy
- segment
- segments
- Prior art date
Links
Classifications
-
- 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/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Description
本發明是有關於一種韌體碼載入方法以及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,促使消費者對儲存媒體的需求也急遽增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、低耗電、體積小、無機械結構且讀寫速度快等特性,最適合用在可攜式電子產品,例如手機、個人數位助理與筆記型電腦等。因此,近年來,快閃記憶體產業成為電子產業中相當熱門的一環。
傳統上,快閃記憶體儲存裝置之快閃記憶體控制器的韌體碼會儲存在快閃記憶體控制器內的可程式唯讀記憶體(因此一般是無法被修改的),並且在快閃記憶體控制器運作時被載入快閃記憶體控制器內的靜態隨機存取記憶體(Static Random Access Memory,SRAM)中來執行。然而,基於韌體碼的大小和複雜度越
趨增加且改版速度加快,使得韌體碼也必須能夠被更新/修改。為縮小儲存裝置的尺寸並且方便更新/修改韌體碼,目前發展出的設計中,技術已經能夠將韌體碼直接儲存在記憶體儲存裝置的快閃記憶體模組中,並且於快閃記憶體儲存裝置啟動時,韌體碼會被載入至記憶體控制器的靜態隨機存取記憶體中。因此,在無需額外配置可程式唯讀記憶體的情況下,記憶體儲存裝置的尺寸可有效地被縮小並且其製造成本可有效地被降低。
然而,從快閃記憶體模組中讀取韌體碼,會延長快閃記憶體儲存裝置上電後完成初始化所書的時間。特別是,在快閃記憶體儲存裝置作為電子裝置(例如,電腦)之主要儲存媒體的例子中,使用者會希望電子裝置開機所需的時間越短越好。因此,有需要發展一種能夠快速載入韌體碼的方法。
本發明提供一種韌體碼載入方法、記憶體控制器與記憶體儲存裝置,其能夠快速地載入韌體碼,縮短電子裝置啟動的時間。
本發明範例實施例提出一種韌體碼載入方法,用於從記憶體儲存裝置的可複寫式非揮發性記憶體模組中載入運轉此記憶體儲存裝置的韌體碼,其中此韌體碼至少具有多個區段,並且可複寫式非揮發性記憶體模組至少具有第一記憶體部與第二記憶體部。本韌體碼載入方法包括:獲取在第一記憶體部中儲存對應此
些區段的第一部分的第一部分韌體碼副本的儲存位址;並且獲取在第二記憶體部中儲存對應此些區段的第二部分的第二部分韌體碼副本的儲存位址。本韌體碼載入方法更包括:使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體。
在本發明的一範例實施例中,上述韌體碼載入方法更包括:將對應此些區段的第一部分的第一部分韌體碼副本儲存至第一記憶體部中;以及將對應此些區段的第二部分的第二部分韌體碼副本儲存至第二記憶體部中。
在本發明的一範例實施例中,上述將對應此些區段的第一部分的第一部分韌體碼副本儲存至第一記憶體部中的步驟包括:複製整個韌體碼以產生具有上述第一部分韌體碼副本的第一韌體碼副本並且將此第一韌體碼副本儲存至第一記憶體部中,其中第一韌體碼副本具有相同於此些區段的多個區段副本。並且,上述將對應此些區段的第二部分的第二部分韌體碼副本儲存至第二記憶體部中的步驟包括:複製整個韌體碼以產生具有第二部分韌體碼副本的第二韌體碼副本並且將此第二韌體碼副本儲存至第二記憶體部中,其中第二韌體碼副本具有相同於此些區段的多個區段副本。
在本發明的一範例實施例中,上述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體的步驟包括:從第一
記憶體部的第一實體程式化單元中讀取第一韌體碼副本的區段副本中的第一區段副本,同時從第二記憶體部的第二實體程式化單元中讀取第二韌體碼副本的區段副本中的第二區段副本,其中第一區段副本是對應韌體碼的區段之中的第一區段,第二區段副本是對應韌體碼的區段之中的第二區段,並且在韌體碼中第二區段是接續第一區段。
在本發明的一範例實施例中,上述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至該緩衝記憶體的步驟包括:從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本,其中上述韌體碼的區段的第一部分為連續的多個區段並且上述韌體碼的區段的第二部分為連續的多個區段。
在本發明的一範例實施例中,上述從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本的步驟包括:下達快取讀取指令以從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時下達快取讀取指令以從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本。
在本發明的一範例實施例中,上述韌體碼載入方法更包
括:將第一記憶體部與第二記憶體部的實體抹除單元邏輯地至少分組為資料區、閒置區與系統區。資料區的實體抹除單元儲存來自於主機系統的使用者資料,閒置區的實體抹除單元替換資料區的實體抹除單元來儲存更新使用者資料,系統區的實體抹除單元儲存系統資料且系統區的實體抹除單元無法被主機系統來存取。
在本發明的一範例實施例中,上述將第一韌體碼副本儲存至第一記憶體部中的步驟包括將第一韌體碼副本儲存至屬於第一記憶體部且屬於系統區的至少一實體抹除單元中,並且上述將第二韌體碼副本儲存至第二記憶體部中的步驟包括:將第二韌體碼副本儲存至屬於第二記憶體部且屬於系統區的至少一實體抹除單元中。
在本發明的一範例實施例中,上述韌體碼載入方法更包括:將對應上述區段的第一部分的第三部分韌體碼副本儲存至第一記憶體部中;以及將對應上述區段的第二部分的第四部分韌體碼副本儲存至第二記憶體部中,其中第三部分韌體碼副本相同於第一部分韌體碼副本且第四部分韌體碼副本相同於第二部分韌體碼副本。
本發明範例實施例提出一種記憶體控制器,用於從記憶體儲存裝置的可複寫式非揮發性記憶體模組載入韌體碼。本記憶體控制器包括主機介面、記憶體介面、緩衝記憶體與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組
至少具有第一記憶體部與第二記憶體部,上述韌體碼具有多個區段,對應此些區段的第一部分的第一部分韌體碼副本被儲存至第一記憶體部中,並且對應此些區段的第二部分的第二部分韌體碼副本被儲存至第二記憶體部中。記憶體管理電路耦接至主機介面、記憶體介面與緩衝記憶體。記憶體管理電路用以在記憶體儲存裝置上電時,獲取在第一記憶體部中儲存第一部分韌體碼副本的儲存位址,獲取在第二記憶體部中儲存第二部分韌體碼副本的儲存位址並且使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體。
在本發明的一範例實施例中,整個韌體碼會被複製以產生具有第一部分韌體碼副本的第一韌體碼副本,第一韌體碼副本會被儲存至第一記憶體部中,並且第一韌體碼副本具有相同於上述區段的多個區段副本。
在本發明的一範例實施例中,整個韌體碼會被複製以產生具有第二部分韌體碼副本的第二韌體碼副本,第二韌體碼副本會被儲存至第二記憶體部中,並且第二韌體碼副本具有相同於上述區段的多個區段副本。
在本發明的一範例實施例中,在所述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體的運作中,記憶體管理電路從第一記憶體部的第一實體程式化單元中讀取第一韌體
碼副本的區段副本中的第一區段副本,同時從第二記憶體部的第二實體程式化單元中讀取第二韌體碼副本的區段副本中的第二區段副本。在此,第一區段副本是對應韌體碼的區段之中的第一區段,第二區段副本是對應韌體碼的該些區段之中的第二區段,並且在韌體碼中第二區段是接續第一區段。
在本發明的一範例實施例中,在上述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體的運作中,記憶體管理電路從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本。在此,韌體碼的區段的第一部分為連續的多個區段並且韌體碼的區段的第二部分為連續的多個區段。
在本發明的一範例實施例中,在所述從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本的運作中,記憶體管理電路下達快取讀取指令以從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時下達快取讀取指令以從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本。
在本發明的一範例實施例中,上述記憶體管理電路更用
以將該第一記憶體部與該第二記憶體部的實體抹除單元邏輯地至少分組為資料區、閒置區與系統區。資料區的實體抹除單元儲存來自於主機系統的使用者資料,閒置區的實體抹除單元替換資料區的實體抹除單元來儲存更新使用者資料,系統區的實體抹除單元儲存系統資料且系統區的實體抹除單元無法被主機系統來存取。
在本發明的一範例實施例中,上述第一韌體碼副本是被儲存在屬於第一記憶體部且屬於系統區的至少一實體抹除單元中,並且上述第二韌體碼副本是被儲存在屬於第二記憶體部且屬於系統區的至少一實體抹除單元中。
在本發明的一範例實施例中,對應此些區段的第一部分的第三部分韌體碼副本被儲存至第一記憶體部中並且此第三部分韌體碼副本相同於第一部分韌體碼副本。此外,對應此些區段的第二部分的第四部分韌體碼副本被儲存至第二記憶體部中並且第四部分韌體碼副本相同於第二部分韌體碼副本。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組至少具有第一記憶體部與第二記憶體部。記憶體控制器具有緩衝記憶體且耦接至連接器與可複寫式非揮發性記憶體模組。記憶體控制器用以從可複寫式非揮發性記憶體模組載入韌體碼至緩衝記憶體,其中此韌體碼具有多個區段,對應此些區段的第一部分的第一部分韌體
碼副本被儲存至第一記憶體部中,並且對應此些區段的第二部分的第二部分韌體碼副本被儲存至第二記憶體部中。再者,記憶體控制器在記憶體儲存裝置上電時,獲取在第一記憶體部中儲存第一部分韌體碼副本的儲存位址,獲取在第二記憶體部中儲存第二部分韌體碼副本的儲存位址並且使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體。
在本發明的一範例實施例中,在所述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體的運作中,記憶體控制器從第一記憶體部的第一實體程式化單元中讀取第一韌體碼副本的區段副本中的第一區段副本,同時從第二記憶體部的第二實體程式化單元中讀取第二韌體碼副本的區段副本中的第二區段副本。在此,第一區段副本是對應韌體碼的區段之中的第一區段,第二區段副本是對應韌體碼的該些區段之中的第二區段,並且在韌體碼中第二區段是接續第一區段。
在本發明的一範例實施例中,在上述使用平行模式或交錯模式分別地從第一記憶體部與第二記憶體部中載入第一部分韌體碼副本與第二部分韌體碼副本至緩衝記憶體的運作中,記憶體控制器從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本。在此,韌體碼的
區段的第一部分為連續的多個區段並且韌體碼的區段的第二部分為連續的多個區段。
在本發明的一範例實施例中,在所述從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本的運作中,記憶體控制器下達快取讀取指令以從第一記憶體部中讀取第一部分韌體碼副本的區段副本之中的其中一個區段副本,同時下達快取讀取指令以從第二記憶體部中讀取第二部分韌體碼副本的區段副本之中的其中一個區段副本。
在本發明的一範例實施例中,上述記憶體控制器更用以將該第一記憶體部與該第二記憶體部的實體抹除單元邏輯地至少分組為資料區、閒置區與系統區。資料區的實體抹除單元儲存來自於主機系統的使用者資料,閒置區的實體抹除單元替換資料區的實體抹除單元來儲存更新使用者資料,系統區的實體抹除單元儲存系統資料且系統區的實體抹除單元無法被主機系統來存取。
基於上述,本範例實施例的韌體碼載入方法、記憶體控制器與記憶體儲存裝置能夠有效地提升載入韌體碼的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
172‧‧‧第一記憶體部
174‧‧‧第二記憶體部
182‧‧‧第一資料輸入/輸出匯流排
184‧‧‧第二資料輸入/輸出匯流排
304(0)~304(R)、306(0)~306(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
206‧‧‧記憶體介面
208‧‧‧電源管理電路
210‧‧‧緩衝記憶體
212‧‧‧錯誤檢查與校正電路
402‧‧‧儲存區
412‧‧‧資料區
414‧‧‧閒置區
404‧‧‧系統區
406‧‧‧取代區
710‧‧‧第一韌體碼副本
720‧‧‧第二韌體碼副本
S1101、S1103、S1105‧‧‧韌體碼載入方法的步驟
750‧‧‧第一部分韌體碼副本
760‧‧‧第二部分韌體碼副本
S1701、S1703、S1705‧‧‧韌體碼載入方法的步驟
圖1是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據第一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖7與8是根據第一範例實施例所繪示之儲存韌體碼的韌體碼副本於可複寫式非揮發性記憶體模組的示意圖。
圖9是根據第一範例實施例所繪示的載入韌體碼的示意圖。
圖10是根據另一範例實施例所繪示的載入韌體碼的示意圖。
圖11是根據第一範例實施例所繪示的韌體碼載入方法的流程圖。
圖12與13是根據第二範例實施例所繪示之儲存韌體碼的韌體碼副本於可複寫式非揮發性記憶體模組的示意圖。
圖14與15是根據另一範例實施例所繪示之儲存韌體碼的韌體碼副本於可複寫式非揮發性記憶體模組的示意圖。
圖16是根據第二範例實施例所繪示的載入韌體碼的示意圖。
圖17是根據第二範例實施例所繪示的韌體碼載入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1252。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資
料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1256、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是根據第一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於通用序列匯流排(Universal Serial Bus,USB)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師
協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。在本範例實施例中,可複寫式非揮發性記憶體模組106包括第一記憶體部172與第二記憶體部174,其中第一記憶體部172具有實體抹除單元304(0)~304(R)並且第二記憶體部174具有實體抹除單元306(0)~306(R)。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地
寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元亦可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,複數個記憶體部可在一記憶體晶粒中或每一記憶體晶粒即為一記憶體部,亦或複數個記憶體晶粒為一記憶體部。實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,一記憶體部為一記憶體晶粒,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於
此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
值得一提的是,儘管在本範例實施例中,是以包括兩個記憶體晶粒的可複寫式非揮發性記憶體模組106來進行說明,但本發明不限於此。在本發明另一範例實施例中,可複寫式非揮發性記憶體模組106可包括更多記憶體晶粒。
在本範例實施例中,記憶體控制器104是獨立地透過第一資料輸入/輸出匯流排182傳送資料至第一記憶體部172或從第一記憶體部172接收資料,並且獨立地透過第二資料輸入/輸出匯流排184傳送資料至第二記憶體部174或從第二記憶體部174接收資料。特別是,由於第一記憶體部172與第二記憶體部174是分別地透過獨立的資料輸入/輸出匯流排耦接至記憶體控制器104,因此,記憶體控制器104可以平行模式(parallel mode)來存取第一記憶體部172與第二記憶體部174,以提升存取速度。例如,記憶體控制器104可透過第一資料輸入/輸出匯流排182與第二資料輸入/輸出匯流排184同時傳送讀取指令給第一記憶體部172與第二記憶體部174並同時從第一記憶體部172與第二記憶體部174接收資料。
值得一提的是,儘管在本範例實施例中,第一記憶體部172與第二記憶體部174是分別地透過獨立的資料輸入/輸出匯流
排耦接至記憶體控制器104,但本發明不限於此。在本發明另一範例實施例中,第一記憶體部172與第二記憶體部174亦可共同透過一個資料輸入/輸出匯流排耦接至記憶體控制器104。特別是,在第一記憶體部172與第二記憶體部174是共同透過一個資料輸入/輸出匯流排耦接至記憶體控制器104的例子中,記憶體控制器104可以交錯模式(interleave mode)來存取第一記憶體部172與第二記憶體部174,以提升存取速度。具體來說,從實體程式化單元中讀取資料的程序可區分為資料傳輸(transfer)以及資料讀取(read)兩個部分。具體來說,當欲從記憶體晶粒的實體程式化單元中讀取資料時,記憶體控制器104首先會下達指令給記憶體晶粒。之後,記憶體晶粒會進行資料讀取以將欲讀取之資料放置於緩衝區內。並且在記憶體晶粒完成資取讀取後,資料會從緩衝區中傳輸給記憶體控制器104。當從實體程式化單元中讀取資料期間,記憶體晶粒是處於一忙碌(busy)狀態。因此,在第一記憶體部172與第二記憶體部174是共同透過一個資料輸入/輸出匯流排耦接至記憶體控制器104的例子中,記憶體控制器104可使用交錯模式,以利用其中一個記憶體晶粒正執行資料讀取間透過資料輸入/輸出匯流排從另一個記憶體晶粒中傳輸資料。
圖5是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。必須瞭解的是,圖5所示之記憶體控制器的結構僅為一範例,本發明不以此為限。
請參照圖5,記憶體控制器104包括記憶體管理電路
202、主機介面204、記憶體介面206與電源管理電路208。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202
包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於USB標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、SATA標準、SD標準、UHS-I介面標準、UHS-II介面標準、MS標準、MMC標準、eMMC介面標準、UFS介面標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
電源管理電路208是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。例如,電源管理電路208包括鎖相迴路(未繪示),用以產生用於記憶體控制器104與可複寫式非揮發性記憶體模組106的工作時脈。也就是說,可複寫式非揮發性記憶體控制器104與記憶體模組106會依據鎖相迴路所產生的工作時脈來作動。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體210以及錯誤檢查與校正電路212。
緩衝記憶體210是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106
中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制器104(或記憶體管理電路202)會將第一記憶體部172的實體抹除單元304(0)~304(R)與第二記憶體部174的實體抹除單元306(0)~306(R)邏輯地分組為儲存區402、系統區404與取代區406。
邏輯上屬於儲存區402的實體抹除單元是用以儲存主機系統1000所寫入的資料。也就是說,記憶體控制器104(或記憶體管理電路202)會使用分組為儲存區402的實體抹除單元來實際地儲存主機系統1000所寫入的資料。更詳細來說,記憶體控制器104(或記憶體管理電路202)會將儲存區402分組為資料區412與閒置區414,其中資料區412的實體抹除單元(亦稱為資料實體抹
除單元)是已儲存資料的實體抹除單元,而閒置區414的實體抹除單元(亦稱為閒置實體抹除單元)是用以替換資料區412的實體抹除單元。因此,閒置區414的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區414中的實體抹除單元已被執行抹除運作,或者當閒置區414中的實體抹除單元被提取用於儲存資料之前所提取之實體抹除單元會被執行抹除運作。因此,閒置區414的實體抹除單元為可被使用的實體抹除單元。具體來說,當一個實體抹除單元從閒置區414中被選擇來儲存有效資料時,此實體抹除單元會被關聯至資料區412。並且,記憶體控制器104(或記憶體管理電路202)會對在資料區412中所有實體程式化單元所儲存的資料皆為無效資料的實體抹除單元執行抹除操作,並且將抹除後的實體抹除單元關聯至閒置區414,由此實體抹除單元可輪替地來儲存主機系統1000所寫入的資料。
邏輯上屬於系統區404的實體抹除單元是用以記錄系統
資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數、運轉記憶體儲存裝置100的韌體碼等。
邏輯上屬於取代區406中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組106於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區412、閒置區414與系統區404中的實體抹除單元損毀時,預留於取代
區406中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad physical erasing unit))。因此,倘若取代區406中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104會從取代區406中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區406中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,儲存區402、系統區404與取代區406之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至儲存區402、系統區404與取代區406的分組關係會動態地變動。例如,當儲存區402中的實體抹除單元損壞而被取代區406的實體抹除單元取代時,則原本取代區406的實體抹除單元會被關聯至儲存區402。
如上所述,資料區412與閒置區414的實體抹除單元是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會配置邏輯位址給主機系統1000以進行資料的存取。
每個邏輯位址是由數個扇區(sector)所組成。在本範例實施例中,每一邏輯位址是由4個扇區所組成。但本發明不限於此,在本發明另一範例實施例中,邏輯位址亦可是由8個扇區所組成
或是由16個扇區所組成。例如,記憶體控制器104(或記憶體管理電路202)會維護邏輯位址-實體位址映射表來記錄邏輯位址與實體程式化單元之間的映射關係。也就是說,已寫入有效資料的實體程式化單元會映射至對應的邏輯位址。基此,當主機系統1000欲在扇區中存取資料時,記憶體控制器104(或記憶體管理電路202)會確認此扇區所屬的邏輯位址,並且在此邏輯位址所映射的實體程式化單元中來存取資料。
在本範例實施例中,用以運轉記憶體儲存裝置100的韌體碼會被儲存在系統區404的實體抹除單元中,並且當記憶體儲存裝置100上電時,記憶體控制器104(或記憶體管理電路202)會從系統區404的實體抹除單元中將韌體碼載入至緩衝記憶體210來執行以啟動記憶體儲存裝置100。
在本範例實施例中,系統區404的兩個實體抹除單元會被選取以儲存韌體碼。特別是,用以儲存韌體碼的實體抹除單元是分別屬於不同的記憶體晶粒。具體來說,在記憶體儲存裝置100的生產過程中,用以運轉記憶體儲存裝置100的韌體碼會預先存放至一開卡裝置或者一周邊儲存裝置中,並且在進行開卡程序或此記憶體儲存裝置100運轉的過程中,多個韌體碼副本會根據所預先存放之韌體碼來產生並且寫入至不同的實體抹除單元、記憶體部或記憶體晶粒中。在一範例實施例中,記憶體儲存裝置100可僅儲存多個韌體碼副本或同時儲存有韌體碼正本與多個韌體碼副本,且在將韌體碼載入至緩衝記憶體210的運作中,該韌體碼
正本可不被讀取,以確保記憶體儲存裝置100保有一正確的版本,在另一範例實施例中,韌體碼正本或與多個韌體碼副本皆至少有部份會被讀取並載入至緩衝記憶體210。在另一範例實施例中,當一韌體碼副本發生無法校正的錯誤位元時,記憶體儲存裝置100會由韌體碼正本或另一韌體碼副本再複製一份韌體碼副本以取代此具有無法校正之錯誤位元的韌體碼副本。
圖7與8是根據第一範例實施例所繪示之儲存韌體碼的韌體碼副本於可複寫式非揮發性記憶體模組的示意圖。為了方便說明,在此假設需要6個實體程式化單元來儲存韌體碼。
請參照圖7與8,第一韌體碼副本710會藉由複製用以控制記憶體儲存裝置100之整體運作的韌體碼來產生,並且系統區404中的實體抹除單元304(N+1)會被用來儲存第一韌體碼副本710。此外,第二韌體碼副本720會藉由複製用以控制記憶體儲存裝置100之整體運作的韌體碼來產生,並且系統區404中的實體抹除單元306(N+1)會被用來儲存第二韌體碼副本720。
在本範例實施例中,可複寫式非揮發性記憶體模組106中存放有對應用以控制記憶體儲存裝置100之整體運作的韌體碼的兩個韌體碼副本。然而,必須瞭解的是,在本發明另一範例實施例中,可複寫式非揮發性記憶體模組106中可存放有對應用以控制記憶體儲存裝置100之整體運作的韌體碼的更多個韌體碼副本。此外,儘管在本發明範例實施例中,一個韌體碼副本是藉由使用1個實體抹除單元來儲存,然而,本發明不限於此,用以儲
存韌體碼副本之實體抹除單元的個數會根據韌體碼副本的大小而有所不同。
第一韌體碼副本710包括6個區段副本(即,區段副本1A~區段副本6A),並且第一韌體碼副本710的區段副本是相同於用以控制記憶體儲存裝置100之整體運作的韌體碼的區段。類似地,第二韌體碼副本720亦包括6個區段副本(即,區段副本1B~區段副本6B),並且第二韌體碼副本的區段副本是相同於用以控制記憶體儲存裝置100之整體運作的韌體碼的區段。也就是說,第一韌體碼副本的區段副本1A~區段副本6A是分別地相同於第二韌體碼副本的區段副本1B~區段副本6B。
在本範例實施例中,第一韌體碼副本710與第二韌體碼副本720是分別儲存在配置獨立資料輸入/輸出匯流排的記憶體晶粒(即,第一記憶體部172與第二記憶體部174)中。特別是,當記憶體儲存裝置100上電時,記憶體控制器104(或記憶體管理電路202)會獲取在第一記憶體部中儲存對應第一韌體碼副本的儲存位址,獲取在第二記憶體部中儲存對應第二部分韌體碼副本的儲存位址並且以平行模式透過第一資料輸入/輸出匯流排182與第二資料輸入/輸出匯流排184從第一記憶體部172與第二記憶體部174分別地載入韌體碼副本的不同部分,由此縮短載入韌體碼所需的時間。
圖9是根據第一範例實施例所繪示的載入韌體碼的示意圖。
請參照圖9,首先,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本1A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本2B載入至緩衝記憶體210中。之後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本3A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本4B載入至緩衝記憶體210中。最後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本5A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本6B載入至緩衝記憶體210中,由此,完成韌體碼的載入。在此例子中,對應韌體碼的區段副本會被依序地被載入至緩衝記憶體210中。也就是說,從第一記憶體部172所載入的區段副本(統稱為第一部分韌體碼副本)與從第二記憶體部174所載入的區段副本(統稱為第二部分韌體碼副本)是被交錯排列。特別是,第一記憶體部172與第二記憶體部174是透過第一資料輸入/輸出匯流排182與第二資料輸入/輸出匯流排184分別地耦接至記憶體控制器104,因此,記憶體控制器104(或記憶體管理電路202)可以平行模式同時下達讀取指令來同步讀取。基此,區段副本1A與區段副本2B是被同步從可複寫式非揮發性記憶體模組106載入至緩衝記憶體210;區段副本3A與區段副本4B是被同步從可複寫式非揮發性記憶體模組
106載入至緩衝記憶體210;並且區段副本5A與區段副本6B是被同步從可複寫式非揮發性記憶體模組106載入至緩衝記憶體210,由此載入韌體碼的速度可大幅地被提升。
圖10是根據另一範例實施例所繪示的載入韌體碼的示意圖。
請參照圖10,首先,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本1A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本4B載入至緩衝記憶體210中。之後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本2A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本5B載入至緩衝記憶體210中。最後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本3A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本6B載入至緩衝記憶體210中,由此,完成韌體碼的載入。在此例子中,韌體碼的區段會被分組為連續的第一部分區段與連續的第二部分區段,對應第一部分區段的區段副本是從第一記憶體部172中來載入並且對應第一部分區段的區段副本是從第二記憶體部174中來載入。也就是說,從第一記憶體部172所載入的區段副本(統稱為第一部分韌體碼副本)是連續的並且從第二記憶體部174所載入的
區段副本(統稱為第二部分韌體碼副本)亦是連續的。特別是,在此例子中,由於從第一記憶體部172中讀取的區段副本是儲存於連續的實體位址中並且從第二記憶體部174中讀取的區段副本是儲存於連續的實體位址,因此,除了以平行模式來同步讀取之外,記憶體控制器104(或記憶體管理電路202)更可利用快取讀取指令(cache read command)來更提升讀取速度。
圖11是根據第一範例實施例所繪示的韌體碼載入方法的流程圖。
請參照圖11,在步驟S1101中,第一韌體碼副本710會藉由複製韌體碼來被產生並且所產生的第一韌體碼副本710會被儲存至第一記憶體部172中。
在步驟S1103中,第二韌體碼副本720會藉由複製韌體碼來被產生並且所產生的第二韌體碼副本720會被儲存至第二記憶體部174中。
在步驟S1105中,在記憶體儲存裝置100上電時,對應韌體碼之一部分的區段副本(即,第一部分韌體碼副本)與對應韌體碼之另一部分的區段副本(即,第二部分韌體碼副本)會利用平行模式分別地從第一記憶體部172與第二記憶體部174中被載入至緩衝記憶體210。載入區段副本的方法已配合圖9與圖10詳細描述如上,在此不再重覆說明。
在第二範例實施例的韌體碼載入方法亦是使用平行模式
來從多個記憶體晶粒中載入對應的區段,其與第一範例實施例的差異之處在於,第二範例實施例的第一記憶體部與第二記憶體部分別僅儲存有對應部分之韌體碼的韌體碼副本。以下將使用第一範例實施例的硬體元件來說明第二範例實施例。
圖12與13是根據第二範例實施例所繪示之儲存韌體碼的韌體碼副本於可複寫式非揮發性記憶體模組的示意圖。為了方便說明,在此假設需要6個實體程式化單元來儲存韌體碼。
請參照圖12與13,第一部分韌體碼副本750會藉由複製用以控制記憶體儲存裝置100之整體運作的韌體碼的一局部來產生,並且系統區404中的實體抹除單元304(N+1)會被用來儲存第一部分韌體碼副本750。此外,第二部分韌體碼副本760會藉由複製用以控制記憶體儲存裝置100之整體運作的韌體碼的另一局部來產生,並且系統區404中的實體抹除單元306(N+1)會被用來儲存第二部分韌體碼副本760。
在本範例實施例中,可複寫式非揮發性記憶體模組106僅存放有一份第一部分韌體碼副本750與一份第二部分韌體碼副本760,然,本發明不限於此。例如,在另一範例實施例中,如圖14與15所示,實體抹除單元304(N+1)可儲存兩份第一部分韌體碼副本750,並且實體抹除單元306(N+1)可儲存兩份第二部分韌體碼副本760,由此避免因記憶胞損毀而遺失韌體碼。
類似地,在本範例實施例中,在記憶體儲存裝置100上電時,記憶體控制器104(或記憶體管理電路202)會先掃描可複寫
式非揮發性記憶體模組106,用以獲取在第一記憶體部中儲存對應第一部分韌體碼副本750的儲存位址,及獲取在第二記憶體部中儲存第二部分韌體碼副本760的儲存位址,此等儲存位址可先儲存於緩衝記憶體210。當要載入韌體碼時,記憶體控制器104可利用平行模式分別地從第一記憶體部172與第二記憶體部174中將第一部分韌體碼副本750與第二部分韌體碼副本760載入至緩衝記憶體210。
圖16是根據第二範例實施例所繪示的載入韌體碼的示意圖。
請參照圖16,首先,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本1A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本4B載入至緩衝記憶體210中。之後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本2A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本5B載入至緩衝記憶體210中。最後,記憶體控制器104(或記憶體管理電路202)會從第一記憶體部172的實體抹出單元304(N+1)中將區段副本3A載入至緩衝記憶體210,同時從第二記憶體部174的實體抹出單元306(N+1)中將區段副本6B載入至緩衝記憶體210中,由此,完成韌體碼的載入。也就是說,第一部分韌體碼副本的區段副本是從第一記憶體部172被載入,而第
二部分韌體碼副本的區段副本是從第二記憶體部174被載入。特別是,第一記憶體部172與第二記憶體部174是透過第一資料輸入/輸出匯流排182與第二資料輸入/輸出匯流排184分別地耦接至記憶體控制器104,因此,記憶體控制器104(或記憶體管理電路202)可以平行模式同時下達快取讀取指令來同步讀取。基此,區段副本1A與區段副本2B是被同步從可複寫式非揮發性記憶體模組106載入至緩衝記憶體210;區段副本3A與區段副本4B是被同步從可複寫式非揮發性記憶體模組106載入至緩衝記憶體210;並且區段副本5A與區段副本6B是被同步從可複寫式非揮發性記憶體模組106載入至緩衝記憶體210,由此載入韌體碼的速度可大幅地被提升。
圖17是根據第二範例實施例所繪示的韌體碼載入方法的流程圖。
請參照圖17,在步驟S1701中,第一部分韌體碼副本750會藉由複製韌體碼的一局部來被產生並且所產生的第一部分韌體碼副本750會被儲存至第一記憶體部172中。
在步驟S1703中,第二部分韌體碼副本760會藉由複製韌體碼的另一局部來被產生並且所產生的第二部分韌體碼副本760會被儲存至第二記憶體部174中。
在步驟S1705中,在記憶體儲存裝置100上電時,第一部分韌體碼副本750與第二部分韌體碼副本760會利用平行模式分別地從第一記憶體部172與第二記憶體部174中被載入至緩衝
記憶體210。載入區段副本的方法已配合圖11詳細描述如上,在此不再重覆說明。
綜上所述,上述範例實施例的韌體碼載入機制是藉由將多個韌體碼或局部韌體碼的備份儲存於多個記憶體晶粒中並且透過平行讀取來縮短載入韌體碼所需的時間。基此,此些範例實施例的韌體碼載入方法及使用此方法的記憶體控制器與記憶體儲存裝置能夠有效地提升載入韌體碼的速度。特別是,在記憶體儲存裝置用作為電腦的主要硬碟的應用中,此些範例實施例的韌體碼載入方法及使用此方法的記憶體控制器與記憶體儲存裝置能夠有效地縮短開機所需的時間。
S1101、S1103、S1105‧‧‧韌體碼載入方法的步驟
Claims (22)
- 一種韌體碼載入方法,用於從一記憶體儲存裝置的一可複寫式非揮發性記憶體模組中載入運轉該記憶體儲存裝置的一韌體碼,該韌體碼至少具有多個區段,該可複寫式非揮發性記憶體模組至少具有一第一記憶體部與一第二記憶體部,該韌體碼載入方法包括:獲取在該第一記憶體部中儲存對應該些區段的一第一部分的一第一部分韌體碼副本的一儲存位址;獲取在該第二記憶體部中儲存對應該些區段的一第二部分的一第二部分韌體碼副本的一儲存位址;以及使用一平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至一緩衝記憶體。
- 如申請專利範圍第1項所述的韌體碼載入方法,更包括:將對應該些區段的該第一部分的該第一部分韌體碼副本儲存至該第一記憶體部中;以及將對應該些區段的該第二部分的該第二部分韌體碼副本儲存至該第二記憶體部中。
- 如申請專利範圍第2項所述的韌體碼載入方法,其中上述將對應該些區段的該第一部分的該第一部分韌體碼副本儲存至該第一記憶體部中的步驟包括:複製整個該韌體碼以產生一第一韌體碼副本並且將該第一韌體碼副本儲存至該第一記憶體部中,其 中該第一韌體碼副本具有相同於該些區段的多個區段副本,其中該第一韌體碼副本具有該第一部分韌體碼副本,其中上述將對應該些區段的該第二部分的該第二部分韌體碼副本儲存至該第二記憶體部中的步驟包括:複製整個該韌體碼以產生一第二韌體碼副本並且將該第二韌體碼副本儲存至該第二記憶體部中,其中該第二韌體碼副本具有相同於該些區段的多個區段副本,其中該第二韌體碼副本具有該第二部分韌體碼副本。
- 如申請專利範圍第3項所述的韌體碼載入方法,其中所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的步驟包括:從該第一記憶體部的一第一實體程式化單元中讀取該第一韌體碼副本的該些區段副本中的一第一區段副本,同時從該第二記憶體部的一第二實體程式化單元中讀取該第二韌體碼副本的該些區段副本中的一第二區段副本,其中該第一區段副本是對應該韌體碼的該些區段之中的一第一區段,該第二區段副本是對應該韌體碼的該些區段之中的一第二區段,並且在該韌體碼中該第二區段是接續該第一區段。
- 如申請專利範圍第3項所述的韌體碼載入方法,其中所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的步驟包括: 從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本,其中該韌體碼的該些區段的該第一部分為連續的多個區段並且該韌體碼的該些區段的該第二部分為連續的多個區段。
- 如申請專利範圍第5項所述的韌體碼載入方法,其中所述從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本的步驟包括:下達一快取讀取指令以從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時下達該快取讀取指令以從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本。
- 如申請專利範圍第3項所述的韌體碼載入方法,更包括:將該第一記憶體部與該第二記憶體部的實體抹除單元邏輯地至少分組為一資料區、一閒置區與一系統區,其中該資料區的實體抹除單元儲存來自於一主機系統的一使用者資料,該閒置區的實體抹除單元替換該資料區的實體抹除單元來儲存一更新使用者資料,並且該系統區的實體抹除單元用以儲存一系統資料且該系統區的實體抹除單元無法被該主機系統來存取, 其中上述將該第一韌體碼副本儲存至該第一記憶體部中的步驟包括:將該第一韌體碼副本儲存至屬於該第一記憶體部且屬於該系統區的至少一實體抹除單元中,其中上述將該第二韌體碼副本儲存至該第二記憶體部中的步驟包括:將該第二韌體碼副本儲存至屬於該第二記憶體部且屬於該系統區的至少一實體抹除單元中。
- 如申請專利範圍第2項所述的韌體碼載入方法,更包括:將對應該些區段的該第一部分的一第三部分韌體碼副本儲存至該第一記憶體部中,其中該第三部分韌體碼副本相同於該第一部分韌體碼副本;以及將對應該些區段的該第二部分的一第四部分韌體碼副本儲存至該第二記憶體部中,其中該第四部分韌體碼副本相同於該第二部分韌體碼副本。
- 一種記憶體控制器,用於從一記憶體儲存裝置的一可複寫式非揮發性記憶體模組載入一韌體碼,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組至少具有一第一記憶體部與一第二記憶體部,該韌體碼具有多個區段,對應該些區段的一第一部分的一第一部分韌體碼副本被儲存至該第一記憶體部中,並且對應該些區段的一第二部分的一第二部分韌體碼副本被儲存至該第二記憶體部中; 一緩衝記憶體;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面與該緩衝記憶體,其中該記憶體管理電路用以在該記憶體儲存裝置上電時,獲取在該第一記憶體部中儲存對應該些區段的該第一部分的該第一部分韌體碼副本的一儲存位址,獲取在該第二記憶體部中儲存對應該些區段的該第二部分的該第二部分韌體碼副本的一儲存位址並且使用一平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體。
- 如申請專利範圍第9項所述的記憶體控制器,其中整個該韌體碼會被複製以產生一第一韌體碼副本,該第一韌體碼副本會被儲存至該第一記憶體部中,並且該第一韌體碼副本具有相同於該些區段的多個區段副本,其中該第一韌體碼副本具有該第一部分韌體碼副本,其中整個該韌體碼會被複製以產生一第二韌體碼副本,該第二韌體碼副本會被儲存至該第二記憶體部中,並且該第二韌體碼副本具有相同於該些區段的多個區段副本,其中該第二韌體碼副本具有該第二部分韌體碼副本。
- 如申請專利範圍第10項所述的記憶體控制器,其中在所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的運作中,該記憶體管理電路從該第一記憶體部的一第 一實體程式化單元中讀取該第一韌體碼副本的該些區段副本中的一第一區段副本,同時從該第二記憶體部的一第二實體程式化單元中讀取該第二韌體碼副本的該些區段副本中的一第二區段副本,其中該第一區段副本是對應該韌體碼的該些區段之中的一第一區段,該第二區段副本是對應該韌體碼的該些區段之中的一第二區段,並且在該韌體碼中該第二區段是接續該第一區段。
- 如申請專利範圍第10項所述的記憶體控制器,其中在所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的運作中,該記憶體管理電路從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本,其中該韌體碼的該些區段的該第一部分為連續的多個區段並且該韌體碼的該些區段的該第二部分為連續的多個區段。
- 如申請專利範圍第12項所述的記憶體控制器,其中在所述從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本的運作中,該記憶體管理電路下達一快取讀取指令以從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個 區段副本,同時下達該快取讀取指令以從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本。
- 如申請專利範圍第10項所述的記憶體控制器,其中該記憶體管理電路更用以將該第一記憶體部與該第二記憶體部的實體抹除單元邏輯地至少分組為一資料區、一閒置區與一系統區,其中該資料區的實體抹除單元儲存來自於一主機系統的一使用者資料,該閒置區的實體抹除單元替換該資料區的實體抹除單元來儲存一更新使用者資料,該系統區的實體抹除單元儲存一系統資料且該系統區的實體抹除單元無法被該主機系統來存取,其中上述該第一韌體碼副本是被儲存在屬於該第一記憶體部且屬於該系統區的至少一實體抹除單元中,其中上述該第二韌體碼副本是被儲存在屬於該第二記憶體部且屬於該系統區的至少一實體抹除單元中。
- 如申請專利範圍第9項所述的記憶體控制器,其中對應該些區段的該第一部分的一第三部分韌體碼副本被儲存至該第一記憶體部中並且該第三部分韌體碼副本相同於該第一部分韌體碼副本,其中對應該些區段的該第二部分的一第四部分韌體碼副本被儲存至該第二記憶體部中並且該第四部分韌體碼副本相同於該第二部分韌體碼副本。
- 一種記憶體儲存裝置,包括: 一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,至少具有一第一記憶體部與一第二記憶體部;以及一記憶體控制器,具有一緩衝記憶體且耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以從該可複寫式非揮發性記憶體模組載入一韌體碼至該緩衝記憶體,其中該韌體碼具有多個區段,對應該些區段的一第一部分的一第一部分韌體碼副本被儲存至該第一記憶體部中,並且對應該些區段的一第二部分的一第二部分韌體碼副本被儲存至該第二記憶體部中,其中該記憶體控制器在該記憶體儲存裝置上電時,獲取在該第一記憶體部中儲存對應該些區段的該第一部分的該第一部分韌體碼副本的一儲存位址,獲取在該第二記憶體部中儲存對應該些區段的該第二部分的該第二部分韌體碼副本的一儲存位址並且使用一平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中整個該韌體碼會被複製以產生一第一韌體碼副本,該第一韌體碼副本會被儲存至該第一記憶體部中,並且該第一韌體碼副本具有相同於該些區段的多個區段副本,其中該第一韌體碼副本具有該第一部分韌體碼副本, 其中整個該韌體碼會被複製以產生一第二韌體碼副本,該第二韌體碼副本會被儲存至該第二記憶體部中,並且該第二韌體碼副本具有相同於該些區段的多個區段副本,其中該第二韌體碼副本具有該第二部分韌體碼副本。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的運作中,該記憶體控制器從該第一記憶體部的一第一實體程式化單元中讀取該第一韌體碼副本的該些區段副本中的一第一區段副本,同時從該第二記憶體部的一第二實體程式化單元中讀取該第二韌體碼副本的該些區段副本中的一第二區段副本,其中該第一區段副本是對應該韌體碼的該些區段之中的一第一區段,該第二區段副本是對應該韌體碼的該些區段之中的一第二區段,並且在該韌體碼中該第二區段是接續該第一區段。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在所述使用該平行模式同時分別地從該第一記憶體部與該第二記憶體部中載入該第一部分韌體碼副本與該第二部分韌體碼副本至該緩衝記憶體的運作中,該記憶體控制器從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本, 其中該韌體碼的該些區段的該第一部分為連續的多個區段並且該韌體碼的該些區段的該第二部分為連續的多個區段。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中在所述從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本的運作中,該記憶體控制器下達一快取讀取指令以從該第一記憶體部中讀取該第一部分韌體碼副本的該些區段副本之中的其中一個區段副本,同時下達該快取讀取指令以從該第二記憶體部中讀取該第二部分韌體碼副本的該些區段副本之中的其中一個區段副本。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制器更用以將該第一記憶體部與該第二記憶體部的實體抹除單元邏輯地至少分組為一資料區、一閒置區與一系統區,其中該資料區的實體抹除單元儲存來自於一主機系統的一使用者資料,該閒置區的實體抹除單元替換該資料區的實體抹除單元來儲存一更新使用者資料,該系統區的實體抹除單元儲存一系統資料且該系統區的實體抹除單元無法被該主機系統來存取,其中上述該第一韌體碼副本是被儲存在屬於該第一記憶體部且屬於該系統區的至少一實體抹除單元中,其中上述該第二韌體碼副本是被儲存在屬於該第二記憶體部且屬於該系統區的至少一實體抹除單元中。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中對應該些區段的該第一部分的一第三部分韌體碼副本被儲存至該第一記憶體部中並且該第三部分韌體碼副本相同於該第一部分韌體碼副本,其中將對應該些區段的該第二部分的一第四部分韌體碼副本被儲存至該第二記憶體部中並且該第四部分韌體碼副本相同於該第二部分韌體碼副本。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102116111A TWI494849B (zh) | 2013-05-06 | 2013-05-06 | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 |
US13/925,816 US9122498B2 (en) | 2013-05-06 | 2013-06-24 | Firmware code loading method, memory controller and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102116111A TWI494849B (zh) | 2013-05-06 | 2013-05-06 | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201443776A TW201443776A (zh) | 2014-11-16 |
TWI494849B true TWI494849B (zh) | 2015-08-01 |
Family
ID=51842146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102116111A TWI494849B (zh) | 2013-05-06 | 2013-05-06 | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9122498B2 (zh) |
TW (1) | TWI494849B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI596477B (zh) * | 2015-12-18 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI693600B (zh) * | 2019-05-08 | 2020-05-11 | 慧榮科技股份有限公司 | 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055236B2 (en) * | 2015-07-02 | 2018-08-21 | Sandisk Technologies Llc | Runtime data storage and/or retrieval |
TWI567633B (zh) * | 2015-07-07 | 2017-01-21 | 鈺群科技股份有限公司 | 通用序列匯流排相容的隨身碟的啟動方法及其相關隨身碟 |
US9529601B1 (en) * | 2015-07-15 | 2016-12-27 | Dell Products L.P. | Multi-processor startup system |
CN107544925B (zh) * | 2016-06-24 | 2020-05-08 | 爱思开海力士有限公司 | 存储器系统及加速引导时间的方法 |
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
CN110297595B (zh) * | 2018-03-21 | 2022-11-22 | 群联电子股份有限公司 | 主机存储器缓冲区配置方法、储存装置与控制电路单元 |
US10496565B2 (en) * | 2018-07-30 | 2019-12-03 | Intel Corporation | Micro-architectural techniques to minimize companion die firmware loading times in a server platform |
JP2020154540A (ja) * | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステム及び制御システム |
FR3099607B1 (fr) * | 2019-07-30 | 2021-11-05 | Stmicroelectronics Grand Ouest Sas | Composant électronique à micrologiciel |
US11157416B2 (en) * | 2020-02-27 | 2021-10-26 | Micron Technology, Inc. | Firmware loading for a memory controller |
CN113110891B (zh) * | 2021-04-21 | 2022-03-29 | 深圳忆联信息系统有限公司 | 固态硬盘的固件加载方法、装置、计算机设备及存储介质 |
US11899945B2 (en) * | 2021-10-03 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium |
CN114185620B (zh) * | 2021-12-14 | 2023-10-10 | 深圳忆联信息系统有限公司 | 加速ssd固件加载实现方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI232406B (en) * | 2003-12-30 | 2005-05-11 | Mediatek Inc | Memory management method for simultaneously loading and executing program codes |
US20090254776A1 (en) * | 2003-12-31 | 2009-10-08 | Gonzalez Carlos J | Flash Memory System Startup Operation |
TW201248404A (en) * | 2011-05-18 | 2012-12-01 | Phison Electronics Corp | Program code loading and accessing method, memory controller and memory storage apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327092B2 (en) * | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
US8838949B2 (en) * | 2010-03-22 | 2014-09-16 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
US20150095551A1 (en) * | 2013-09-30 | 2015-04-02 | Micron Technology, Inc. | Volatile memory architecutre in non-volatile memory devices and related controllers |
-
2013
- 2013-05-06 TW TW102116111A patent/TWI494849B/zh active
- 2013-06-24 US US13/925,816 patent/US9122498B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI232406B (en) * | 2003-12-30 | 2005-05-11 | Mediatek Inc | Memory management method for simultaneously loading and executing program codes |
US20090254776A1 (en) * | 2003-12-31 | 2009-10-08 | Gonzalez Carlos J | Flash Memory System Startup Operation |
TW201248404A (en) * | 2011-05-18 | 2012-12-01 | Phison Electronics Corp | Program code loading and accessing method, memory controller and memory storage apparatus |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI596477B (zh) * | 2015-12-18 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US10067677B2 (en) | 2015-12-18 | 2018-09-04 | Phison Electronics Corp. | Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device |
TWI693600B (zh) * | 2019-05-08 | 2020-05-11 | 慧榮科技股份有限公司 | 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 |
US11204700B2 (en) | 2019-05-08 | 2021-12-21 | Silicon Motion, Inc. | Data storage device and non-volatile memory control method, with security extension |
Also Published As
Publication number | Publication date |
---|---|
US9122498B2 (en) | 2015-09-01 |
US20140331033A1 (en) | 2014-11-06 |
TW201443776A (zh) | 2014-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI494849B (zh) | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI498902B (zh) | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
TWI428743B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus |