TW202240407A - 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 - Google Patents
主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 Download PDFInfo
- Publication number
- TW202240407A TW202240407A TW110113466A TW110113466A TW202240407A TW 202240407 A TW202240407 A TW 202240407A TW 110113466 A TW110113466 A TW 110113466A TW 110113466 A TW110113466 A TW 110113466A TW 202240407 A TW202240407 A TW 202240407A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- storage device
- host
- memory storage
- buffer
- Prior art date
Links
Images
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/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/1441—Resetting or repowering
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元。所述方法包括:偵測是否發生系統異常;響應於判斷發生系統異常,將儲存於主機系統的資料緩衝區中的第一指令及對應第一指令的第一資料複製至記憶體儲存裝置中;在複製完第一指令及第一資料後執行初始化操作,其中初始化操作對記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化;以及在初始化記憶體儲存裝置的部分硬體電路後,重新執行儲存於記憶體儲存裝置中的第一指令。
Description
本發明是有關於一種記憶體緩衝區配置技術,且特別是有關於一種主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
對於不同功能的記憶體儲存裝置,為了能夠完全發揮記憶體儲存裝置提高電子設備性能的作用,目前主機系統已具備為記憶體儲存裝置提供主機記憶體緩衝區(host memory buffer, HMB)的功能。例如儲存空間為1TB的SSD(Solid State Drives)固態硬碟,主機系統例如提供儲存空間大小約為1GB作為其主機記憶體緩衝區。
然而,當主機記憶體緩衝區的資料出現錯誤時,為了確保記憶體儲存裝置的穩定性,一般會選擇放棄主機記憶體緩衝區所儲存的資料,並重置(reset)記憶體儲存裝置。但是,此做法會讓主機系統發現記憶體儲存裝置有異常狀況。
本發明提供一種主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元,能夠對主機記憶體緩衝區的資料發生不預期的錯誤時進行補救,並提升記憶體的運作效率。
本發明提供一種主機記憶體緩衝區管理方法,適用於主機系統及記憶體儲存裝置,所述主機系統包括主機記憶體緩衝區及資料緩衝區,所述記憶體儲存裝置包括可複寫式非揮發性記憶體模組。所述方法包括:偵測是否發生系統異常;響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中;在複製完所述第一指令及所述第一資料後執行初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化;以及在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
在本發明的一範例實施例中,在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的步驟之前,所述方法更包括:載入所述記憶體儲存裝置的選項唯讀記憶體的初始化程式至所述主機系統的隨機存取記憶體;以及執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區。其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
在本發明的一範例實施例中,上述的記憶體儲存裝置不包括動態隨機存取記憶體。
在本發明的一範例實施例中,上述的系統異常包括所述主機系統不正常的重新啟動或斷電。
在本發明的一範例實施例中,上述的系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
在本發明的一範例實施例中,上述的方法更包括:根據一映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤。其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
在本發明的一範例實施例中,上述的部分硬體電路包括所述記憶體儲存裝置中用以耦接至所述可複寫式非揮發性記憶體模組的記憶體介面,上述的另一部分硬體電路包括所述記憶體儲存裝置中用以耦接至所述主機系統的主機介面。
在本發明的一範例實施例中,在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的步驟包括:在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表;以及根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
本發明提供一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組以及記憶體控制電路單元。所述連接介面單元用以電性連接至主機系統,所述主機系統包括主機記憶體緩衝區及資料緩衝區。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以偵測是否發生系統異常。所述記憶體控制電路單元更用以響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中。所述記憶體控制電路單元更用以在複製完所述第一指令及所述第一資料後執行初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化。並且,所述記憶體控制電路單元更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
在本發明的一範例實施例中,上述的記憶體儲存裝置更包括選項唯讀記憶體。並且在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的運作之前,所述記憶體控制電路單元更用以:載入所述記憶體儲存裝置的所述選項唯讀記憶體的初始化程式至所述主機系統的隨機存取記憶體;以及執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區。其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
在本發明的一範例實施例中,上述的記憶體儲存裝置不包括動態隨機存取記憶體。
在本發明的一範例實施例中,上述的系統異常包括所述主機系統不正常的重新啟動或斷電。
在本發明的一範例實施例中,上述的系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
在本發明的一範例實施例中,上述的記憶體控制電路單元更用以:根據映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤。其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
在本發明的一範例實施例中,上述的部分硬體電路包括所述記憶體控制電路單元中用以耦接至所述可複寫式非揮發性記憶體模組的記憶體介面,上述的另一部分硬體電路包括所述記憶體控制電路單元中用以耦接至所述連接介面單元的主機介面。
在本發明的一範例實施例中,在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的運作包括:所述記憶體控制電路單元更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表。並且,所述記憶體控制電路單元更用以根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
本發明提供一種記憶體控制電路單元,設置於記憶體儲存裝置中並用於控制可複寫式非揮發性記憶體模組。所述記憶體控制電路單元包括:主機介面、記憶體介面、緩衝記憶體以及記憶體管理電路。所述主機介面用以耦接至主機系統,所述主機系統包括主機記憶體緩衝區及資料緩衝區。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以偵測是否發生系統異常。所述記憶體管理電路更用以響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中。所述記憶體管理電路更用以在複製完所述第一指令及所述第一資料後執行初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化。並且,所述記憶體管理電路更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
在本發明的一範例實施例中,上述的記憶體儲存裝置更包括選項唯讀記憶體。並且在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的運作之前,所述記憶體管理電路更用以:載入所述記憶體儲存裝置的所述選項唯讀記憶體的初始化程式至所述主機系統的隨機存取記憶體;以及執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區。其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
在本發明的一範例實施例中,上述的記憶體儲存裝置不包括動態隨機存取記憶體。
在本發明的一範例實施例中,上述的系統異常包括所述主機系統不正常的重新啟動或斷電。
在本發明的一範例實施例中,上述的系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
在本發明的一範例實施例中,上述的記憶體管理電路更用以:根據映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤。其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
在本發明的一範例實施例中,上述的部分硬體電路包括所述記憶體介面,上述的另一部分硬體電路包括所述主機介面。
在本發明的一範例實施例中,在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的運作包括:所述記憶體管理電路更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表。並且,所述記憶體管理電路更用以根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
基於上述, 本發明實施例提供的主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元,在主機記憶體緩衝區發生不預期的錯誤時通過將未完成的指令儲存至記憶體儲存裝置並初始化記憶體儲存裝置中的部分硬體電路來避免指令及資料遺失,並確保主機系統不會察覺記憶體儲存裝置有任何異常。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406與選項唯讀記憶體(Option Read-Only Memory, Option ROM)408。
在本範例實施例中,連接介面單元402是相容於安全數位(Secure Digital, SD)介面標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等操作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼等管理資料)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊(block),並且實體程式化單元為實體頁面(page)或實體扇區(sector),但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell, TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)或其他具有相同特性的記憶體模組。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit, LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit, MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為「把資料寫入至記憶胞」或「程式化(programming)記憶胞」。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
選項唯讀記憶體408是耦接至記憶體控制電路單元404並且通過記憶體控制電路單元404執行選項唯讀記憶體408內儲存的加電自檢程式、多個初始化程式等程式以提供實現例如加電自檢(Power-on self-test,POST)、初始化等操作的固件。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406及選項唯讀記憶體408。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。記憶體管理電路502透過記憶體介面506將選項唯讀記憶體408儲存的初始化程式載入主機系統11。
具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾收集操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。例如,緩衝記憶體508可以包括動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)或靜態隨機存取記憶體(Static Random Access Memory, SRAM)等任何會因斷電或電壓供應不穩而遺失已儲存之資料的記憶體。此外,緩衝記憶體508是以晶片組或系統單晶片(System on Chip, SoC)的方式實作在記憶體控制電路單元404內,或者是被獨立於記憶體控制電路單元404之外,本發明不在此限制。電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
在本範例實施例中,錯誤檢查與校正電路512是以低密度奇偶檢查碼(low density parity code, LDPC)來實作。然而,在另一範例實施例中,錯誤檢查與校正電路512也可以BCH碼、迴旋碼(convolutional code)、渦輪碼(turbo code)、位元翻轉(bit flipping)等編碼/解碼演算法來實作。
具體來說,記憶體管理電路502會依據所接收之資料及對應的錯誤檢查與校正碼(以下亦稱為錯誤校正碼)來產生錯誤校正碼框(ECC Frame)並且將錯誤校正碼框寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406讀取資料時,錯誤檢查與校正電路512會根據錯誤校正碼框中的錯誤校正碼來驗證所讀取之資料的正確性。
以下描述記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512所執行的操作,亦可參考為由記憶體控制電路單元404所執行。
在一範例實施例中,記憶體管理電路502會將可複寫式非揮發性記憶體模組406劃分為多個實體單元(例如,實體抹除單元),並且將此些實體單元會分組至資料區(data area)與備用區(spare area)。資料區中的實體單元是用以儲存資料,而備用區中的實體單元則是用以在執行寫入指令時替換資料區中的實體單元。具體來說,當記憶體儲存裝置10接受到主機系統11的寫入指令而欲對資料區的實體單元進行寫入時,記憶體管理電路502會從備用區中提取一實體單元並且將在資料區中欲寫入的實體單元中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體單元並且將已寫入新資料的實體單元關聯為資料區,並且將原本資料區的實體單元進行抹除並關聯為備用區。為了能夠讓主機系統11能夠順利地存取以輪替方式儲存資料的實體單元,記憶體管理電路502會提供邏輯單元給主機系統11。也就是說,記憶體管理電路502會建立邏輯至實體映射表(logical to physical mapping table)或實體至邏輯映射表(physical to logical mapping table),並且在所述映射表中記錄與更新邏輯單元與資料區的實體單元之間的對映關係來反映實體單元的輪替,所以主機系統11僅需要針對所提供邏輯單元進行寫入而記憶體管理電路502會依據邏輯至實體映射表或實體至邏輯映射表對所對映的實體單元進行讀取或寫入資料。
隨著記憶體製程上的進步而使得每一實體單元的設計容量與數量會越來越大的同時,所述映射表的大小以及所需的更新時間也相應地增加。目前主機系統已具備為記憶體儲存裝置提供主機記憶體緩衝區(host memory buffer, HMB)的功能,並且主機記憶體緩衝區用於儲存上述映射表。
圖6是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置的概要方塊圖。
請參照圖6,主機系統11包括隨機存取記憶體112,可以依據與主機系統11電性連接的記憶體儲存裝置10的記憶體配置參數在隨機存取記憶體112上配置連續實體位址以作為主機記憶體緩衝區1121給記憶體儲存裝置10。主機記憶體緩衝區1121用於當主機系統11使用與其電性連接的記憶體儲存裝置10時,可提供給記憶體儲存裝置10作為擴展的記憶體,以提高記憶體儲存裝置10的性能。此外,隨機存取記憶體112還包括資料緩衝區1122,資料緩衝區1122可作為一個快取記憶體,主機系統11會先將指令與對應指令的資料暫時地儲存在此快取記憶體中以增進整體系統的運作效率。在一實施例中,可配置動態隨機存取記憶體中的連續實體位址作為主機記憶體緩衝區1121,資料緩衝區1122可實施為靜態隨機存取記憶體(即SRAM),本發明不在此限制。在本範例實施例中,記憶體管理電路502會直接透過主機介面504連接至連接介面單元402,以與主機記憶體緩衝區1121進行資料傳輸。也就是說,記憶體管理電路502所傳送的指令與資料會藉由主機介面504透過連接介面單元402來傳送至主機記憶體緩衝區1121。
記憶體儲存裝置10包括選項唯讀記憶體408。選項唯讀記憶體408內儲存有初始化程式(亦稱為第一初始化程式)。於一範例實施例中,記憶體儲存裝置10以固態硬碟為例。在本實施例中,記憶體儲存裝置10可以不具有動態隨機存取記憶體(DRAM-Less)。然而必須了解的是,記憶體儲存裝置10也可以是隨身碟等其他可外接於主機系統11並且可提高主機系統性能的電子裝置,本發明不在此限制。
記憶體儲存裝置10電性連接於主機系統11上時,主機系統11掃描與其電性連接的記憶體儲存裝置10,若記憶體儲存裝置10的選項唯讀記憶體408內儲存有第一初始化程式,則主機系統11會將此第一初始化程式載入至主機系統11的隨機存取記憶體112中並執行此第一初始化程式。並且,主機系統11根據此第一初始化程式設定的記憶體配置參數在隨機存取記憶體112中配置連續實體位址作為主機記憶體緩衝區1121,並且在此連續實體位址的主機記憶體緩衝區1121上設定標記。記憶體管理電路502儲存此標記在記憶體儲存裝置10。
在本範例實施例中,記憶體管理電路502可操作主機記憶體緩衝區1121。例如,記憶體管理電路502可儲存邏輯至實體映射表於主機記憶體緩衝區1121。然而,主機記憶體緩衝區1121是設置在主機系統11上。換句話說,當記憶體儲存裝置10支援主機記憶體緩衝區功能時,記憶體儲存裝置10耦接主機系統11的主機記憶體緩衝區1121,並將邏輯至實體映射表傳送至主機記憶體緩衝區1121儲存。並且當記憶體儲存裝置10接收到來自主機系統11的指令時,記憶體管理電路502可存取主機記憶體緩衝區1121中儲存的邏輯至實體映射表。
在本範例實施例中,記憶體管理電路502會偵測是否發生系統異常。系統異常包括主機系統11不正常的重新啟動或斷電,或主機記憶體緩衝區1121中儲存的邏輯至實體映射表存在錯誤。
在一範例實施例中,記憶體管理電路502可根據一斷電狀態標記判斷主機系統11前一次的重新啟動或斷電是否為異常重新啟動或異常斷電。此異常重新啟動例如是運作異常而導致主機系統11重新啟動,而異常斷電例如是突然的斷電或電壓供應不穩而導致主機系統11不正常關機。此斷電狀態標記是在主機系統11發生異常重新啟動或異常斷電時由主機系統11的處理器(未繪示)產生。此外,此斷電狀態標記可以是儲存於記憶體儲存裝置10。在本範例實施例中,若記憶體管理電路502偵測到斷電狀態標記,則可判斷發生系統異常。
在一範例實施例中,記憶體管理電路502可根據一映射表狀態標記判斷主機記憶體緩衝區1121中儲存的邏輯至實體映射表是否存在錯誤。此映射表狀態標記是在主機系統11偵測到主機記憶體緩衝區1121中儲存的邏輯至實體映射存在錯誤時由主機系統11的處理器(未繪示)產生。例如,主機系統11可利用迴圈冗餘校驗(cyclic redundancy check, CRC)偵測主機記憶體緩衝區1121中儲存的邏輯至實體映射是否存在錯誤。具體來說,記憶體管理電路502可以產生邏輯至實體映射表的迴圈冗餘校驗(CRC)位元,並將邏輯至實體映射表與迴圈冗餘校驗位元儲存至主機記憶體緩衝區1121。記憶體管理電路502可利用所需的任何方式產生迴圈冗餘校驗位元,本發明不在此限制。主機系統11會根據迴圈冗餘校驗位元確認主機記憶體緩衝區1121中儲存的邏輯至實體映射表是否存在錯誤,並在確認邏輯至實體映射表存在錯誤時產生映射狀態標記。
當發生上述系統異常時,表示主機系統11的主機記憶體緩衝區1121不穩定。在本範例實施例中,響應於判斷發生所述系統異常,記憶體管理電路502將暫存於主機系統11的資料緩衝區1122中的指令(亦稱為第一指令)及對應第一指令的資料(亦稱為第一資料)複製至記憶體儲存裝置10中。例如,記憶體管理電路502可將第一指令及第一資料複製至記憶體儲存裝置10的緩衝記憶體508中,或者複製至可複寫式非揮發性記憶體模組中。具體來說,記憶體管理電路502可先判斷當前資料緩衝區1122是否儲存未處理的指令(outstanding command)或中斷事件(interrupt event)。若資料緩衝區1122儲存未處理的指令或中斷事件,則記憶體管理電路502將此些未處理的指令或中斷事件複製至記憶體儲存裝置10中。
主機系統11系統異常時,為了維持主機系統的穩定性可能會初始化硬體電路,而造成隨機存取記憶體112儲存的資料遺失。如此一來,透過將備份第一指令及第一資料複製至記憶體儲存裝置10,可避免未執行完成的指令及資料遺失。
記憶體管理電路502在複製完第一指令及第一資料後執行初始化操作,以初始化記憶體儲存裝置10中的部分硬體電路,且對另一部分硬體電路不進行初始化。例如,部分硬體電路包括記憶體介面506,另一部分硬體電路包括主機介面504,但本發明不以此為限。在一範例實施例中,記憶體管理電路502對記憶體管理電路502、主機介面504及緩衝記憶體508以外的部分硬體電路進行初始化。此些部分硬體電路例如包括與可複寫式非揮發性記憶體模組406進行溝通的記憶體介面506等,本發明不在此限制。具體來說,記憶體管理電路502會從選項唯讀記憶體408載入初始化程式(亦稱為第二初始化程式)至緩衝記憶體508並且執行初始化操作以初始化記憶體儲存裝置10中記憶體管理電路502、主機介面504及緩衝記憶體508以外的部分硬體電路。
記憶體管理電路502在初始化記憶體儲存裝置10的部分硬體電路後,重新執行儲存於記憶體儲存裝置10中的第一指令。具體來說,記憶體管理電路502可先判斷當前記憶體儲存裝置10的緩衝記憶體508或可複寫式非揮發性記憶體模組406是否儲存未處理的指令或中斷事件。若緩衝記憶體508儲存未處理的指令或中斷事件,則記憶體管理電路502重新執行此些未處理的指令或中斷事件。
在一範例實施例中,記憶體管理電路502可在初始化記憶體儲存裝置10的部分硬體電路後,根據可複寫式非揮發性記憶體模組406中的資料來重新建立邏輯至實體映射表。在重新建立邏輯至實體映射表後,記憶體管理電路502根據重新建立的邏輯至實體映射表重新執行儲存於記憶體儲存裝置10中的第一指令。
例如,記憶體管理電路502可根據可複寫式非揮發性記憶體模組406中的多個實體至邏輯映射資訊以及對應於該些實體至邏輯映射資訊的多個時間資訊重新建立邏輯至實體映射表。然而,上述有關重新建立邏輯至實體映射表的技術概念為本領域技術人員所熟知的技術手段,於此不再贅述。
並且,記憶體管理電路502可將重新建立的邏輯至實體映射表回存至緩衝記憶體508,爾後在特定時間將重新建立的邏輯至實體映射表儲存至可複寫式非揮發性記憶體模組406。換句話說,記憶體儲存裝置10暫時捨棄主機系統11的主機記憶體緩衝區1121,而使用自身的緩衝記憶體508暫存邏輯至實體映射表。
圖7是根據本發明的一範例實施例所繪示的主機記憶體緩衝區管理方法的流程圖。請參圖7,在步驟S702中,偵測是否發生系統異常。在步驟S704中,響應於判斷發生系統異常,將儲存於主機系統的資料緩衝區中的第一指令及對應第一指令的第一資料複製至記憶體儲存裝置中。在步驟S706中,在複製完第一指令及第一資料後執行初始化操作,其中初始化操作對記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化。在步驟S708中,在初始化記憶體儲存裝置的部分硬體電路後,重新執行儲存於記憶體儲存裝置中的第一指令。
圖8是根據本發明的一範例實施例所繪示的主機記憶體緩衝區管理方法的流程圖。請參圖8,在步驟S7081中,在初始化記憶體儲存裝置的部分硬體電路後,根據可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表。在步驟S7082中,根據重新建立的邏輯至實體映射表重新執行儲存於記憶體儲存裝置中的第一指令。
然而,圖7與圖8中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖7與圖8中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖7與圖8的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明實施例提供的主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元,在主機系統或主機記憶體緩衝區發生系統異常時將未完成的指令儲存至記憶體儲存裝置,並初始化記憶體儲存裝置中的部分硬體電路。如此一來,可避免指令及資料遺失,並確保主機系統不會察覺記憶體儲存裝置有任何異常。除此之外,還可在初始化記憶體儲存裝置中的部分硬體電路之後重建邏輯至實體映射表,以根據重建的邏輯至實體映射表重新執行指令。基此,能夠對主機記憶體緩衝區的資料發生不預期的錯誤時進行補救,並提升記憶體的運作效率。
10,30:記憶體儲存裝置
11,31:主機系統
12:輸入/輸出(I/O)裝置
110:系統匯流排
111:處理器
112:隨機存取記憶體(RAM)
1121:主機記憶體緩衝區
1122:資料緩衝區
113:唯讀記憶體(ROM)
114:資料傳輸介面
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
402:連接介面單元
404:記憶體控制電路單元
406:可複寫式非揮發性記憶體模組
408:選項唯讀記憶體
410(0)~410(N) :實體抹除單元
502:記憶體管理電路
504:主機介面
506:記憶體介面
508:緩衝記憶體
510:電源管理電路
512:錯誤檢查與校正電路
S702:步驟(偵測是否發生系統異常)
S704:步驟(響應於判斷發生系統異常,將儲存於主機系統的資料緩衝區中的第一指令及對應第一指令的第一資料複製至記憶體儲存裝置中)
S706:步驟(在複製完第一指令及第一資料後執行初始化操作,其中初始化操作對記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化)
S708:步驟(在初始化記憶體儲存裝置的部分硬體電路後,重新執行儲存於記憶體儲存裝置中的第一指令)
S7081:步驟(在初始化記憶體儲存裝置的部分硬體電路後,根據可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表)
S7082:步驟(根據重新建立的邏輯至實體映射表重新執行儲存於記憶體儲存裝置中的第一指令)
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置的概要方塊圖。
圖7是根據本發明的一範例實施例所繪示的主機記憶體緩衝區管理方法的流程圖。
圖8是根據本發明的一範例實施例所繪示的主機記憶體緩衝區管理方法的流程圖。
S702:步驟(偵測是否發生系統異常)
S704:步驟(響應於判斷發生系統異常,將儲存於主機系統的資料緩衝區中的第一指令及對應第一指令的第一資料複製至記憶體儲存裝置中)
S706:步驟(在複製完第一指令及第一資料後執行初始化操作,以初始化記憶體儲存裝置中記憶體管理電路、主機介面及緩衝記憶體以外的部分硬體)
S708:步驟(在初始化記憶體儲存裝置的部分硬體後,重新執行儲存於記憶體儲存裝置中的第一指令)
Claims (24)
- 一種主機記憶體緩衝區管理方法,適用於一主機系統及一記憶體儲存裝置,所述主機系統包括一主機記憶體緩衝區及一資料緩衝區,所述記憶體儲存裝置包括一可複寫式非揮發性記憶體模組,所述方法包括: 偵測是否發生系統異常; 響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中; 在複製完所述第一指令及所述第一資料後執行一初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化;以及 在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的步驟之前,所述方法更包括: 載入所述記憶體儲存裝置的一選項唯讀記憶體的一初始化程式至所述主機系統的一隨機存取記憶體;以及 執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區, 其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中所述記憶體儲存裝置不包括動態隨機存取記憶體。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中所述系統異常包括所述主機系統不正常的重新啟動或斷電。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中所述系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
- 如請求項5所述的主機記憶體緩衝區管理方法,其中所述方法更包括: 根據一映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤, 其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中所述部分硬體電路包括所述記憶體儲存裝置中用以耦接至所述可複寫式非揮發性記憶體模組的一記憶體介面,所述另一部分硬體電路包括所述記憶體儲存裝置中用以耦接至所述主機系統的一主機介面。
- 如請求項1所述的主機記憶體緩衝區管理方法,其中在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的步驟包括: 在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表;以及 根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以電性連接至一主機系統,所述主機系統包括一主機記憶體緩衝區及一資料緩衝區; 一可複寫式非揮發性記憶體模組; 一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組, 其中所述記憶體控制電路單元用以偵測是否發生系統異常, 其中所述記憶體控制電路單元更用以響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中, 其中所述記憶體控制電路單元更用以在複製完所述第一指令及所述第一資料後執行一初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化,並且 其中所述記憶體控制電路單元更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
- 如請求項9所述的記憶體儲存裝置,其中所述記憶體儲存裝置更包括一選項唯讀記憶體,並且在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的運作之前,所述記憶體控制電路單元更用以: 載入所述記憶體儲存裝置的所述選項唯讀記憶體的一初始化程式至所述主機系統的一隨機存取記憶體,並且 執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區, 其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
- 如請求項9所述的記憶體儲存裝置,其中所述記憶體儲存裝置不包括動態隨機存取記憶體。
- 如請求項9所述的記憶體儲存裝置,其中所述系統異常包括所述主機系統不正常的重新啟動或斷電。
- 如請求項9所述的記憶體儲存裝置,其中所述系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
- 如請求項13所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以: 根據一映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤, 其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
- 如請求項9所述的記憶體儲存裝置,其中所述部分硬體電路包括所述記憶體控制電路單元中用以耦接至所述可複寫式非揮發性記憶體模組的一記憶體介面,所述另一部分硬體電路包括所述記憶體控制電路單元中用以耦接至所述連接介面單元的一主機介面。
- 如請求項9所述的記憶體儲存裝置,其中在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的運作包括: 所述記憶體控制電路單元更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表,並且 所述記憶體控制電路單元更用以根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
- 一種記憶體控制電路單元,設置於記憶體儲存裝置中並用於控制一可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統,所述主機系統包括一主機記憶體緩衝區及一資料緩衝區; 一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組; 一緩衝記憶體;以及 一記憶體管理電路,耦接至所述主機介面與所述記憶體介面, 其中所述記憶體管理電路用以偵測是否發生系統異常, 其中所述記憶體管理電路更用以響應於判斷發生所述系統異常,將儲存於所述主機系統的所述資料緩衝區中的第一指令及對應所述第一指令的第一資料複製至所述記憶體儲存裝置中, 其中所述記憶體管理電路更用以在複製完所述第一指令及所述第一資料後執行一初始化操作,其中所述初始化操作對所述記憶體儲存裝置的部分硬體電路進行初始化,對另一部分硬體電路不進行初始化,並且 其中所述記憶體管理電路更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
- 如請求項17所述的記憶體控制電路單元,其中所述記憶體儲存裝置更包括一選項唯讀記憶體,並且在響應於判斷發生所述系統異常,將儲存於所述主機系統的資料緩衝區中的所述第一指令及對應所述第一指令的所述第一資料複製至所述記憶體儲存裝置中的運作之前,所述記憶體管理電路更用以: 載入所述記憶體儲存裝置的所述選項唯讀記憶體的一初始化程式至所述主機系統的一隨機存取記憶體,並且 執行所述初始化程式,以在所述主機系統的所述隨機存取記憶體中配置一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的所述主機記憶體緩衝區, 其中所述主機記憶體緩衝區用於儲存邏輯至實體映射表。
- 如請求項17所述的記憶體控制電路單元,其中所述記憶體儲存裝置不包括動態隨機存取記憶體。
- 如請求項17所述的記憶體控制電路單元,其中所述系統異常包括所述主機系統不正常的重新啟動或斷電。
- 如請求項17所述的記憶體控制電路單元,其中所述系統異常包括所述主機記憶體緩衝區中儲存的邏輯至實體映射表存在錯誤。
- 如請求項21所述的記憶體控制電路單元,其中所述記憶體管理電路更用以: 根據一映射表狀態標記判斷所述主機記憶體緩衝區中儲存的邏輯至實體映射表是否存在錯誤, 其中所述映射表狀態標記由所述主機系統根據迴圈冗餘校驗位元確認所述主機記憶體緩衝區中儲存的所述邏輯至實體映射存在錯誤時產生。
- 如請求項17所述的記憶體控制電路單元,其中所述部分硬體電路包括所述記憶體介面,所述另一部分硬體電路包括所述主機介面。
- 如請求項17所述的記憶體控制電路單元,其中在初始化所述記憶體儲存裝置的所述部分硬體電路後,重新執行儲存於所述記憶體儲存裝置中的所述第一指令的運作包括: 所述記憶體管理電路更用以在初始化所述記憶體儲存裝置的所述部分硬體電路後,根據所述可複寫式非揮發性記憶體模組中的資料來重新建立邏輯至實體映射表,並且 所述記憶體管理電路更用以根據重新建立的所述邏輯至實體映射表重新執行儲存於所述記憶體儲存裝置中的所述第一指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110113466A TWI798680B (zh) | 2021-04-14 | 2021-04-14 | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 |
US17/306,896 US11614997B2 (en) | 2021-04-14 | 2021-05-03 | Memory storage apparatus with protection of command data in a host buffer in response to a system abnormality |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110113466A TWI798680B (zh) | 2021-04-14 | 2021-04-14 | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202240407A true TW202240407A (zh) | 2022-10-16 |
TWI798680B TWI798680B (zh) | 2023-04-11 |
Family
ID=83601471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110113466A TWI798680B (zh) | 2021-04-14 | 2021-04-14 | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11614997B2 (zh) |
TW (1) | TWI798680B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893275B2 (en) * | 2021-09-20 | 2024-02-06 | Western Digital Technologies, Inc. | DRAM-less SSD with recovery from HMB loss |
US11994951B2 (en) * | 2022-02-23 | 2024-05-28 | Micron Technology, Inc. | Device reset alert mechanism |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346809B2 (en) * | 2004-08-05 | 2008-03-18 | International Business Machines Corporation | Bootable post crash analysis environment |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US9760430B2 (en) * | 2015-08-28 | 2017-09-12 | Dell Products L.P. | System and method for dram-less SSD data protection during a power failure event |
US10049004B2 (en) * | 2015-12-09 | 2018-08-14 | Samsung Electronics Co., Ltd. | Electronic system with memory data protection mechanism and method of operation thereof |
US10157004B2 (en) * | 2016-04-14 | 2018-12-18 | Sandisk Technologies Llc | Storage system and method for recovering data corrupted in a host memory buffer |
US9996291B1 (en) * | 2016-07-29 | 2018-06-12 | EMC IP Holding Company LLC | Storage system with solid-state storage device having enhanced write bandwidth operating mode |
US10409726B2 (en) * | 2017-10-30 | 2019-09-10 | Micron Technology, Inc. | Dynamic L2P cache |
KR102485812B1 (ko) * | 2017-12-19 | 2023-01-09 | 에스케이하이닉스 주식회사 | 메모리 시스템과 메모리 시스템의 동작방법 및 메모리 시스템을 포함하는 데이터 처리 시스템 |
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
US20190324859A1 (en) * | 2018-04-20 | 2019-10-24 | Cnex Labs, Inc. | Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive |
JP2020030527A (ja) * | 2018-08-21 | 2020-02-27 | キオクシア株式会社 | 記憶装置及びプログラム |
TWI703501B (zh) * | 2018-08-23 | 2020-09-01 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其溝通方法 |
KR102599188B1 (ko) * | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
TWI709854B (zh) * | 2019-01-21 | 2020-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 |
-
2021
- 2021-04-14 TW TW110113466A patent/TWI798680B/zh active
- 2021-05-03 US US17/306,896 patent/US11614997B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220334920A1 (en) | 2022-10-20 |
US11614997B2 (en) | 2023-03-28 |
TWI798680B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW202008171A (zh) | 資料寫入方法以及儲存控制器 | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW202009942A (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW202013377A (zh) | 資料存取方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI798680B (zh) | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TWI814501B (zh) | 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI783522B (zh) | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI785571B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112965670B (zh) | 主机存储器缓冲区管理方法、存储装置与控制电路单元 | |
CN111610937A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
TWI826161B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113360429B (zh) | 数据重建方法、存储器存储装置及存储器控制电路单元 | |
CN113724773B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI780003B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TWI738390B (zh) | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |