TWI783522B - 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料重建方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI783522B TWI783522B TW110121429A TW110121429A TWI783522B TW I783522 B TWI783522 B TW I783522B TW 110121429 A TW110121429 A TW 110121429A TW 110121429 A TW110121429 A TW 110121429A TW I783522 B TWI783522 B TW I783522B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- storage device
- error
- management
- 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/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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種資料重建方法,其用於記憶體儲存裝置。所述資料重建方法包括:建立所述記憶體儲存裝置與主機系統之間的連線;經由所述連線將第一資料儲存至所述主機系統的記憶體;偵測所述記憶體中的所述第一資料中的錯誤;以及根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。
Description
本發明是有關於一種記憶體中的資料重建技術,且特別是有關於一種資料重建方法、記憶體儲存裝置及記憶體控制電路單元。
行動電話與筆記型電腦等可攜式電子裝置在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式電子裝置中。
某些類型的記憶體儲存裝置支援主機記憶體緩存(host memory buffering)技術。在採用主機記憶體緩存的架構中,記憶體儲存裝置可利用主機系統的記憶體來作為記憶體儲存裝置的緩存器,並可主動對主機系統的記憶體進行資料存取。例如,在主機系統從記憶體儲存裝置讀取資料或將資料寫入至記憶體儲存裝置時,存取記憶體儲存裝置所需的管理表格可能會被暫存於主機系統的記憶體中,以供記憶體儲存裝置隨時查詢或更新其中的資料內容。但是,當儲存於主機系統的記憶體中的資料發生錯誤時,記憶體儲存裝置的資料存取行為也會受到影響,甚至發生讀取或寫入錯誤。
本發明提供一種資料重建方法、記憶體儲存裝置及記憶體控制電路單元,可提高記憶體儲存裝置對主機系統中的共享記憶體的容錯能力。
本發明的範例實施例提供一種資料重建方法,其用以記憶體儲存裝置。所述資料重建方法包括:建立所述記憶體儲存裝置與主機系統之間的連線;經由所述連線將第一資料儲存至所述主機系統的記憶體;偵測所述記憶體中的所述第一資料中的錯誤;以及根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。
在本發明的一範例實施例中,偵測所述記憶體中的所述第一資料中的所述錯誤的步驟包括:對所述記憶體中的所述第一資料進行解碼;以及根據解碼結果以偵測所述記憶體中的所述第一資料中的所述錯誤。
在本發明的一範例實施例中,根據所述錯誤在所述記憶體中重建所述第一資料中的所述部分資料的步驟包括:從所述記憶體儲存裝置中讀取一管理資料,其中所述管理資料包括反映至少一邏輯單元與至少一實體單元之間的映射關係的映射資訊;根據所述錯誤所影響的資料範圍在所述映射資訊中決定參考資訊區域;以及根據所述參考資訊區域中的映射資訊在所述記憶體中重建所述第一資料中的所述部分資料。
在本發明的一範例實施例中,從所述記憶體儲存裝置中讀取所述管理資料的步驟包括:從所述記憶體儲存裝置的緩衝記憶體中讀取所述管理資料。
在本發明的一範例實施例中,從所述記憶體儲存裝置中讀取所述管理資料的步驟包括:從所述至少一實體單元中讀取所述管理資料。
在本發明的一範例實施例中,偵測所述記憶體中的所述第一資料中的錯誤的步驟,不是響應於來自所述主機系統的指令而執行。
在本發明的一範例實施例中,所述的資料重建方法更包括:根據所述錯誤標記所述記憶體中的第一儲存區域;以及在重新建立所述連線之前,不使用所述第一儲存區域來儲存資料。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以建立所述記憶體儲存裝置與所述主機系統之間的連線。所述記憶體控制電路單元更用以經由所述連線將第一資料儲存至所述主機系統的記憶體。所述記憶體控制電路單元更用以偵測所述記憶體中的所述第一資料中的錯誤。所述記憶體控制電路單元更用以根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。
本發明的範例實施例另提供一種記憶體控制電路單元,其用以控制記憶體儲存裝置。所述記憶體儲存裝置包括可複寫式非揮發性記憶體模組。所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以建立所述記憶體儲存裝置與所述主機系統之間的連線。所述記憶體管理電路更用以經由所述連線將第一資料儲存至所述主機系統的記憶體。所述記憶體管理電路更用以偵測所述記憶體中的所述第一資料中的錯誤。所述記憶體管理電路更用以根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。
在本發明的一範例實施例中,偵測所述記憶體中的所述第一資料中的所述錯誤的操作包括:對所述記憶體中的所述第一資料進行解碼;以及根據解碼結果偵測所述記憶體中的所述第一資料中的所述錯誤。
在本發明的一範例實施例中,根據所述錯誤在所述記憶體中重建所述第一資料中的所述部分資料的操作包括:從所述記憶體儲存裝置中讀取管理資料,其中所述管理資料包括反映至少一邏輯單元與至少一實體單元之間的映射關係的映射資訊;根據所述錯誤所影響的資料範圍在所述映射資訊中決定參考資訊區域;以及根據所述參考資訊區域中的資訊在所述記憶體中重建所述第一資料中的所述部分資料。
在本發明的一範例實施例中,從所述記憶體儲存裝置中讀取所述管理資料的操作包括:從所述記憶體儲存裝置的緩衝記憶體中讀取所述管理資料。
在本發明的一範例實施例中,從所述記憶體儲存裝置中讀取所述管理資料的操作包括:從所述至少一實體單元中讀取所述管理資料。
在本發明的一範例實施例中,偵測所述記憶體中的所述第一資料中的錯誤的操作,不是響應於來自所述主機系統的指令而執行。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以:根據所述錯誤標記所述記憶體中的第一儲存區域;以及在重新建立所述連線之前,不使用所述第一儲存區域來儲存資料。
在本發明的一範例實施例中,所述連線符合高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準。
基於上述,在建立記憶體儲存裝置與主機系統之間的連線後,可經由所述連線將第一資料儲存至主機系統的記憶體中。爾後,當偵測到所述記憶體中的所述第一資料中的錯誤時,可根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。藉此,可提高記憶體儲存裝置對主機系統中的共享記憶體的容錯能力。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。記憶體儲存裝置可與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,主機系統11為電腦系統。在一範例實施例中,主機系統11可為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在一範例實施例中,主機系統31可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統。記憶體儲存裝置30可為主機系統31所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接主機系統11。記憶體儲存裝置10可經由連接介面單元402與主機系統11通訊。在一範例實施例中,連接介面單元402是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準。在一範例實施例中,連接介面單元402亦可以是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、通用序列匯流排(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)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404耦接至連接介面單元402與可複寫式非揮發性記憶體模組406。記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可包括單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、二階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元可包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在一範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504、記憶體介面506及錯誤檢查與校正電路508。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在一範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或記憶胞群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路502還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面504是耦接至記憶體管理電路502。記憶體管理電路502可透過主機介面504與主機系統11通訊。主機介面504可用以接收與識別主機系統11所傳送的指令與資料。例如,主機系統11所傳送的指令與資料可透過主機介面504來傳送至記憶體管理電路502。此外,記憶體管理電路502可透過主機介面504將資料傳送至主機系統11。在本範例實施例中,主機介面504是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於SATA標準、PATA標準、IEEE 1394標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路508是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正操作以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路508會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體510與電源管理電路512。緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
在一範例實施例中,圖4的記憶體儲存裝置10亦稱為快閃記憶體裝置,可複寫式非揮發性記憶體模組406亦稱為快閃記憶體模組,且記憶體控制電路單元404亦稱為用於控制快閃記憶體模組的快閃記憶體控制器。在一範例實施例中,圖5的記憶體管理電路502亦稱為快閃記憶體管理電路。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。請參照圖6,記憶體管理電路502可將可複寫式非揮發性記憶體模組406中的實體單元610(0)~610(C)邏輯地分組至儲存區601與系統區602。每一個實體單元可以是指一個實體位址、一個實體程式化單元、一個實體抹除單元或由多個連續或不連續的實體位址組成。
儲存區601中的實體單元610(0)~610(A)用以儲存使用者資料(例如來自圖1的主機系統11的使用者資料)。例如,儲存區601中的實體單元610(0)~610(A)可儲存有效(valid)資料與無效(invalid)資料。系統區602中的實體單元610(A+1)~610(B)用以儲存管理資料(亦稱為系統資料),例如邏輯至實體映射表、壞塊管理表、裝置型號或其他類型的管理資料。
記憶體管理電路502可配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在一範例實施例中,每一個邏輯單元對應一個邏輯位址。例如,一個邏輯位址可包括一或多個邏輯區塊位址(Logical Block Address, LBA)或其他的邏輯管理單元。在另一範例實施例中,一個邏輯單元也可對應一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。此外,每一個邏輯單元可被映射至一或多個實體單元。須注意的是,在一範例實施例中,記憶體管理電路502可不配置映射至系統區602的邏輯單元,以防止儲存於系統區602的管理資料被使用者修改。
記憶體管理電路502可將描述邏輯單元與實體單元之間的映射關係之管理資料(亦稱為邏輯至實體(logical-to-physical or logical address to logical address, L2P)映射資訊)記錄於至少一邏輯至實體映射表。邏輯至實體映射表是儲存於系統區602的實體單元中。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯至實體映射表來執行對於記憶體儲存裝置10的資料存取操作。
圖7是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖7,主機系統11與記憶體儲存裝置10皆支援主機記憶體緩存(host memory buffering)技術。在主機記憶體緩存架構下,主機系統11可將主機記憶體緩存器(host memory buffer, HMB)71提供給記憶體儲存裝置10使用。例如,主機記憶體緩存器71可包括至少一個隨機存取記憶體並可用以暫存資料。須注意的是,本發明並不限制主機記憶體緩存器71中的記憶體的總數、容量及類型。
在一範例實施例中,記憶體管理電路502可建立記憶體儲存裝置10與主機系統11之間的連線701。例如,記憶體管理電路502可與主機系統11執行一個交握操作,以建立連線701。在建立連線701之後,記憶體管理電路502可經由連線701來存取主機記憶體緩存器71(例如將資料存入主機記憶體緩存器71或從主機記憶體緩存器71讀取資料)並與主機系統11通訊。在一範例實施例中,記憶體儲存裝置10與主機系統11之間的連線701符合高速非揮發性記憶體(NVM Express, NVMe)規範。
在一範例實施例中,記憶體管理電路502可從主機系統11接收一個請求。此請求用以詢問記憶體儲存裝置10是否支援主機記憶體緩存。記憶體管理電路502可根據此請求提供一個回應至主機系統11。此回應可告知主機系統11記憶體儲存裝置10是否支援主機記憶體緩存。
在一範例實施例中,若記憶體儲存裝置10支援主機記憶體緩存,主機系統11可根據此回應致能主機記憶體緩存器71以供記憶體儲存裝置10存取。在一範例實施例中,若記憶體儲存裝置10不支援主機記憶體緩存,則主機系統11可不致能主機記憶體緩存器71。在一範例實施例中,若記憶體儲存裝置10支援主機記憶體緩存,則此回應亦可告知主機系統11執行主機記憶體緩存所需的記憶體空間等與主機記憶體緩存有關的參數。主機系統11可根據此回應來配置主機記憶體緩存器71。
在一範例實施例中,主機記憶體緩存器71可用以取代記憶體儲存裝置10中的至少部分緩衝記憶體(例如圖5的緩衝記憶體510)。在一範例實施例中,主機記憶體緩存器71可搭配記憶體儲存裝置10中的至少部分緩衝記憶體(例如圖5的緩衝記憶體510)供記憶體管理電路502使用。在一範例實施例中,記憶體管理電路502可使用主機記憶體緩存器71而不使用記憶體儲存裝置10中的至少部分緩衝記憶體(例如圖5的緩衝記憶體510)。在一範例實施例中,在記憶體管理電路502可使用主機記憶體緩存器71的狀況下,記憶體儲存裝置10可不配置任何緩衝記憶體(例如圖5的緩衝記憶體510)。
在一範例實施例中,在建立連線701之後,記憶體管理電路502可經由連線701將資料(亦稱為第一資料)儲存至主機記憶體緩存器71。例如,第一資料可包括從圖6的系統區602中讀取的管理資料。例如,第一資料可包括記載邏輯至實體映射資訊的至少一管理表格。在將第一資料存入主機記憶體緩存器71後,記憶體管理電路502可根據當前暫存於主機記憶體緩存器71中的第一資料來存取可複寫式非揮發性記憶體模組406。
在一範例實施例中,在將第一資料存入主機記憶體緩存器71後,記憶體管理電路502可主動偵測主機記憶體緩存器71中的第一資料中的錯誤。然後,記憶體管理電路502可根據所偵測到的錯誤在主機記憶體緩存器71中重建第一資料中的部分資料。
圖8是根據本發明的一範例實施例所繪示的在主機系統的記憶體中重建第一資料中的部分資料的示意圖。請參照圖8,記憶體管理電路502可將資料DATA(0)~DATA(n)存入主機記憶體緩存器71。例如,資料DATA(0)~DATA(n)可包括從圖6的系統區602中讀取的管理資料(例如邏輯至實體映射資訊)。爾後,假設記憶體管理電路502偵測到主機記憶體緩存器71中的資料DATA(2)中具有錯誤(或資料DATA(2)受到此錯誤影響而導致其資料正確性降低)。響應於此錯誤,記憶體管理電路502可對受到此錯誤影響的資料(包含資料DATA(2))執行部分重建,以嘗試排除此錯誤對相關資料的影響。例如,在對資料DATA(2)的部分重建中,資料DATA(2)可被更新為資料DATA(2)’(或由資料DATA(2)’取代)。相較於資料DATA(2),新的資料DATA(2)’不受所述錯誤影響。
在一範例實施例中,在對主機記憶體緩存器71中受到所述錯誤影響的資料(例如資料DATA(2))進行部分重建時,記憶體管理電路502可不重建主機記憶體緩存器71中未受所述錯誤影響的至少部分資料。以圖8為例,假設主機記憶體緩存器71中只有資料DATA(2)受到所述錯誤影響,則記憶體管理電路502可以只針對資料DATA(2)進行部分重建,而其餘的資料DATA(0)、DATA(1)及DATA(3)~DATA(n)可不被更動(即重建)。藉此,可有效提高對主機記憶體緩存器71的資料重建效率。
在一範例實施例中,在將第一資料存入主機記憶體緩存器71後,記憶體管理電路502可主動從主機記憶體緩存器71中讀取第一資料中的至少部分資料(亦稱為第二資料)。記憶體管理電路502可指示錯誤檢查與校正電路508對所讀取的第二資料進行解碼。記憶體管理電路502可根據錯誤檢查與校正電路508對第二資料的解碼結果來偵測主機記憶體緩存器71中的所述第一資料中的所述錯誤。
在一範例實施例中,錯誤檢查與校正電路508可對從主機記憶體緩存器71中讀取回來的資料(即第二資料)進行解碼。若解碼結果反映從主機記憶體緩存器71中讀取回來的某一筆資料中存在錯誤,則錯誤檢查與校正電路508可嘗試更正此錯誤。記憶體管理電路502可將更正過後的資料回存到主機記憶體緩存器71中,以取代主機記憶體緩存器71中原先具有錯誤的資料。然而,在一範例實施例中,若解碼結果反映從主機記憶體緩存器71中讀取回來的某一筆資料中存在無法更正的錯誤(例如某一筆資料中的錯誤位元的總數超過一預設值),則記憶體管理電路502可針對主機記憶體緩存器71中受到此錯誤影響的資料進行部分重建。此外,在一範例實施例中,一旦解碼結果反映從主機記憶體緩存器71中讀取回來的某一筆資料中存在錯誤,則無論此錯誤是否可被更正,記憶體管理電路502都會針對主機記憶體緩存器71中受到此錯誤影響的資料進行部分重建。
在一範例實施例中,錯誤檢查與校正電路508可使用從主機記憶體緩存器71中讀取回來的資料所夾帶的驗證碼來對從主機記憶體緩存器71中讀取回來的資料進行解碼。例如,此驗證碼可包括循環冗餘校驗(Cyclic redundancy check, CRC)碼。在一範例實施例中,錯誤檢查與校正電路508可根據此驗證碼來判斷相應的資料中是否存在錯誤。
在一範例實施例中,在對主機記憶體緩存器71中的第一資料的部分資料進行部分重建的操作中,記憶體管理電路502可從記憶體儲存裝置10中讀取可用以重建所述第一資料的所述部分資料的管理資料。記憶體管理電路502可根據此管理資料在主機記憶體緩存器71中對第一資料的部分資料進行部分重建。
在一範例實施例中,可用以重建所述第一資料的所述部分資料的管理資料可包括反映至少一邏輯單元與至少一實體單元之間的映射關係的資訊(亦稱為映射資訊)。記憶體管理電路502可根據此映射資訊中的至少部分資訊在主機記憶體緩存器71中對第一資料的部分資料進行部分重建。
在一範例實施例中,可用以重建所述第一資料的所述部分資料的管理資料可包括實體至邏輯(physical-to-logical or physical address to logical address, P2L)映射資訊。例如,在記憶體儲存裝置10的運作過程中,此實體至邏輯映射資訊可暫存於記憶體儲存裝置10的緩衝記憶體510中。此實體至邏輯映射資訊可反映所述至少一邏輯單元與所述至少一實體單元之間的映射關係。在一範例實施例中,記憶體管理電路502可從緩衝記憶體510中讀取與主機記憶體緩存器71中受到所述錯誤影響的資料(例如圖8的資料DATA(2))有關的實體至邏輯映射資訊(或邏輯至實體映射資訊)。然後,記憶體管理電路502可根據此實體至邏輯映射資訊(或邏輯至實體映射資訊)在主機記憶體緩存器71中對第一資料的部分資料進行部分重建。
在一範例實施例中,記憶體管理電路502也可從圖6的儲存區601中的至少一實體單元中讀取與主機記憶體緩存器71中受到所述錯誤影響的資料(例如圖8的資料DATA(2))有關的映射資訊(例如實體至邏輯映射資訊)。然後,記憶體管理電路502可根據此映射資訊在主機記憶體緩存器71中對第一資料的部分資料進行部分重建。
在一範例實施例中,記憶體管理電路502可先嘗試從緩衝記憶體510中讀取執行所述部分重建所需的管理資料。若無法從緩衝記憶體510中取得執行所述部分重建所需的管理資料,則記憶體管理電路502可改為從所述實體單元中讀取執行所述部分重建所需的管理資料。
在一範例實施例中,記憶體管理電路502可根據所述錯誤所影響的資料範圍在所讀取的管理資料(例如映射資訊)中決定一個參考資訊區域。記憶體管理電路502可根據此參考資訊區域中的資訊來在主機記憶體緩存器71中對第一資料的部分資料進行部分重建。
圖9是根據本發明的一範例實施例所繪示的偵測主機系統的記憶體中的第一資料中的錯誤的示意圖。請參照圖9,假設當前儲存於主機記憶體緩存器71中的資料(即第一資料)包括資料PMD(0)~PMD(3)及PTE(0)~PTE(3)。資料PMD(0)~PMD(3)及PTE(0)~PTE(3)皆屬於管理資料。例如,資料PMD(0)~PMD(3)及PTE(0)~PTE(3)可反映某些邏輯單元與可複寫式非揮發性記憶體模組406中的某些實體單元之間的映射關係。例如,資料PTE(0)可記載與邏輯單元LCA(0)~LCA(1023)有關的映射資訊、資料PTE(1)可記載與邏輯單元LCA(1024)~LCA(2047)有關的映射資訊、資料PTE(2)可記載與邏輯單元LCA(2048)~LCA(3071)有關的映射資訊,且資料PMD(0)~PMD(3)可分別指向主機記憶體緩存器71中的資料PTE(0)~PTE(3)。
在一範例實施例中,當主機系統11指示從某一邏輯單元讀取資料時,記憶體管理電路502可根據主機記憶體緩存器71中的資料PMD(0)~PMD(3)及PTE(0)~PTE(3)中的至少部分資訊來從此邏輯單元所映射的實體單元讀取資料。或者,在一範例實施例中,當主機系統11指示將資料儲存至某一邏輯單元時,記憶體管理電路502可將此資料寫入至某一實體單元並在主機記憶體緩存器71中修改資料PMD(0)~PMD(3)及PTE(0)~PTE(3)中的至少部分資訊以記錄此邏輯單元與此實體單元之間的映射關係。
在一範例實施例中,假設記憶體管理電路502偵測到主機記憶體緩存器71中的資料PTE(0)中具有錯誤(或資料PTE(0)受到此錯誤影響而導致其資料正確性降低)。響應於此錯誤,記憶體管理電路502可對受到此錯誤影響的資料(包含資料PTE(0))執行部分重建,以嘗試排除此錯誤對相關資料的影響。
圖10是根據本發明的一範例實施例所繪示的在管理資料中決定參考資訊區域的示意圖。請參照圖10,在一範例實施例中,響應於在主機記憶體緩存器71中偵測到的錯誤,記憶體管理電路502可從緩衝記憶體510中讀取管理資料1010。例如,管理資料1010可包括實體至邏輯(P2L)映射資訊。在一範例實施例中,假設此實體至邏輯映射資訊可反映實體單元PCA(0)~PCA(11)與邏輯單元LCA(0)~LCA(11)之間的映射關係、實體單元PCA(12)~PCA(15)與邏輯單元LCA(2024)~LCA(2051)之間的映射關係、實體單元PCA(16)與邏輯單元LCA(1)之間的映射關係、實體單元PCA(17)與邏輯單元LCA(4)之間的映射關係、實體單元PCA(18)與邏輯單元LCA(8)之間的映射關係、及實體單元PCA(19)~PCA(20)與邏輯單元LCA(3072)~LCA(3073)之間的映射關係,如圖10所示。
在一範例實施例中,記憶體管理電路502可由管理資料1010的尾端開始往前掃描,以尋找與受到所述錯誤影響的資料PTE(0)有關的邏輯單元。例如,假設資料PTE(0)是記載與邏輯單元LCA(0)~LCA(1023)有關的映射資訊。在掃描管理資料1010的過程中,當偵測到與邏輯單元LCA(8)有關的映射資訊(邏輯單元LCA(8)屬於邏輯單元LCA(0)~LCA(1023))時,記憶體管理電路502可停止掃描並決定一個參考資訊區域1020。例如,參考資訊區域1020可涵蓋與實體單元PCA(0)~PCA(18)有關的映射資訊,如圖10所示。記憶體管理電路502可根據參考資訊區域1020中的資訊在主機記憶體緩存器71中對受到所述錯誤影響的資料進行部分重建。
圖11是根據本發明的一範例實施例所繪示的在主機系統的記憶體中重建第一資料中的部分資料的示意圖。請參照圖11,接續於圖10的範例實施例,根據參考資訊區域1020中的資訊可知,受到所述錯誤影響的資料包含與資料PTE(0)、PTE(2)有關的映射資訊。因此,根據參考資訊區域1020中的資訊,記憶體管理電路502可在主機記憶體緩存器71中對資料PTE(0)、PTE(2)、PMD(0)及PMD(2)進行部分重建。例如,在此部分重建中,資料PTE(0)、PTE(2)、PMD(0)及PMD(2)可分別被新的資料PTE(0)’、PTE(2)’、PMD(0)’及PMD(2)’取代。新的資料PTE(0)’、PTE(2)’、PMD(0)’及PMD(2)’可帶有與參考資訊區域1020中的資訊有關的映射資訊。例如,新的資料PTE(0)’可記載參考資訊區域1020所反映的實體單元LCA(4)與PCA(17)之間的映射關係,及/或新的資料PTE(2)’可記載參考資訊區域1020所反映的實體單元LCA(2048)與PCA(12)之間的映射關係。藉此,主機記憶體緩存器71中原先受到所述錯誤影響的錯誤資訊可被更正。
須注意的是,在圖10的範例實施例中,資料PTE(1)與PTE(3)有關的映射資訊未包含於參考資訊區域1020中,表示主機記憶體緩存器71中的資料PTE(1)與PTE(3)應未受到所述錯誤影響。因此,在圖11的範例實施例中,記憶體管理電路502可不對主機記憶體緩存器71中的資料PTE(1)、PTE(3)、PMD(1)及PMD(3)進行重建(例如更新),以免無謂增加執行所述資料重建時的系統負擔並可提高執行所述資料重建的效能。
圖12是根據本發明的一範例實施例所繪示的在管理資料中決定參考資訊區域的示意圖。請參照圖12,在一範例實施例中,響應於在主機記憶體緩存器71中偵測到的錯誤,記憶體管理電路502可從實體單元PCA(0)~PCA(20)中讀取管理資料1210。實體單元PCA(i)中可具有資料儲存區1201與閒置儲存區1202。資料儲存區1201用以儲存儲存於實體單元PCA(i)中的使用者資料。閒置儲存區1202用以儲存與實體單元PCA(i)有關的映射資訊。例如,實體單元PCA(0)的閒置儲存區1202中的資訊,可反映實體單元PCA(0)是映射至邏輯單元LCA(0)。換言之,管理資料1210可儲存於實體單元PCA(0)~PCA(20)的閒置儲存區1202中。
類似於圖10的範例實施例中,記憶體管理電路502可由管理資料1210的尾端開始往前掃描,以尋找與受到所述錯誤影響的資料PTE(0)有關的邏輯單元。當偵測到與邏輯單元LCA(8)有關的映射資訊(邏輯單元LCA(8)屬於邏輯單元LCA(0)~LCA(1023))時,記憶體管理電路502可停止掃描並決定一個參考資訊區域1220。例如,參考資訊區域1220可涵蓋與實體單元PCA(0)~PCA(18)有關的映射資訊,如圖12所示。記憶體管理電路502可根據參考資訊區域1220中的資訊在主機記憶體緩存器71中對受到所述錯誤影響的資料進行部分重建。相關細節請參照圖11的範例實施例之說明,在此不重複贅述。
須注意的是,在圖12的一範例實施例中,實體單元PCA(0)~PCA(20)可屬於一個虛擬區塊1200。虛擬區塊1200是在過去一段時間內用以儲存來自主機系統11的資料的虛擬區塊。在一範例實施例中,儲存於虛擬區塊1200中的與邏輯單元相關的資訊(即映射資訊)可包含已被更新到圖6的系統區602中的資訊以及尚未被更新到圖6的系統區602中的資訊。在一範例實施例中,記憶體管理電路502僅針對虛擬區塊1200中尚未被更新到圖6的系統區602中的資訊進行掃描。
在一範例實施例中,假設主機記憶體緩存器71中的第一資料是用於從記憶體儲存裝置10中讀取資料。當偵測到主機記憶體緩存器71中的第一資料中的所述錯誤時,記憶體管理電路502所執行的資料的部分重建可包括根據主機記憶體緩存器71中受此錯誤所影響的資料範圍,從圖6的系統區602中讀取相對應的原始資料並使用此原始資料來取代主機記憶體緩存器71中受此錯誤影響的資料。此外,主機記憶體緩存器71中未受此錯誤影響的資料同樣可不被更動。
在一範例實施例中,前述由記憶體管理電路502主動偵測主機記憶體緩存器71中的第一資料中的錯誤之操作,不是響應於來自主機系統11的指令而執行。例如,所述指令可包括指示寫入資料的寫入指令、指示讀取資料的讀取指令及/或指示清除資料的抹除指令等等。例如,記憶體管理電路502可以是每經過一段時間或滿足記憶體儲存裝置10內部的一觸發條件而主動去偵測主機記憶體緩存器71中的第一資料是否存在錯誤。
在一範例實施例中,在偵測到主機記憶體緩存器71中的第一資料中的所述錯誤後,記憶體管理電路502可根據此錯誤標記主機記憶體緩存器71中的至少一儲存區域(亦稱為第一儲存區域)。在中斷當前主機系統11與記憶體儲存裝置10之間的連線701之前(及/或重新建立主機系統11與記憶體儲存裝置10之間的連線701之前),記憶體管理電路502可不使用(包含禁止使用或不允許使用)主機記憶體緩存器71中所標記的第一儲存區域來儲存資料。
在一範例實施例中,在主機記憶體緩存器71中對受到所述錯誤影響的資料進行部分重建時,記憶體管理電路502可不將替代資料(即用以部分替換受損資料的新資料)重建(例如儲存)於所標記的第一儲存區域。例如,假設具有錯誤的第一資料原先是儲存於主機記憶體緩存器71中的實體位置PA。在偵測到第一資料中的錯誤後,用於部分重建或替換第一資料的新資料可儲存於另一實體位置PB,且實體位置PA不同於實體位置PB。藉此,可避免錯誤重複出現於主機記憶體緩存器71中重建後的資料中。
在一範例實施例中,在偵測到主機記憶體緩存器71中的第一資料中的所述錯誤後,記憶體管理電路502可更新主機記憶體緩存器71中的第一儲存區域發生錯誤的次數,例如將第一儲存區域發生錯誤的累積次數加一。若第一儲存區域發生錯誤的累積次數達到一門檻值,記憶體管理電路502可不使用(包含禁止使用或不允許使用)主機記憶體緩存器71中的所述第一儲存區域來儲存資料。在一範例實施例中,若第一儲存區域發生錯誤的累積次數未達到此門檻值,記憶體管理電路502可持續使用主機記憶體緩存器71中的所述第一儲存區域來儲存資料。
在一範例實施例中,一旦主機系統11與記憶體儲存裝置10之間的連線701被重新建立,則第一儲存區域發生錯誤的累積次數可被重置(例如歸零)。在一範例實施例中,無論主機系統11與記憶體儲存裝置10之間的連線701是否被重新建立,第一儲存區域發生錯誤的累積次數可不被重置(例如歸零)。
圖13是根據本發明的一範例實施例所繪示的資料重建方法的流程圖。請參照圖13,在步驟S1301中,建立記憶體儲存裝置與主機系統之間的連線。在步驟S1302中,經由所述連線將第一資料儲存至所述主機系統的記憶體。在步驟S1303中,偵測所述記憶體中的所述第一資料中的錯誤。在步驟S1304中,根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料。
然而,圖13中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖13中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖13的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明所提出的範例實施例可由記憶體儲存裝置端主動偵測主機系統的記憶體中的資料是否出現錯誤。若出現錯誤,則可由記憶體儲存裝置端即時對主機系統的記憶體中受此錯誤影響的資料進行部分重建(非對記憶體中的所有資料進行重建)。藉此,可提高記憶體儲存裝置對主機系統中的共享記憶體的容錯能力。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10,30:記憶體儲存裝置
11,31:主機系統
110:系統匯流排
111:處理器
112:隨機存取記憶體
113:唯讀記憶體
114:資料傳輸介面
12:輸入/輸出(I/O)裝置
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
402:連接介面單元
404:記憶體控制電路單元
406:可複寫式非揮發性記憶體模組
502:記憶體管理電路
504:主機介面
506:記憶體介面
508:錯誤檢查與校正電路
510:緩衝記憶體
512:電源管理電路
601:儲存區
602:替換區
610(0)~610(B):實體單元
612(0)~612(C):邏輯單元
71:主機記憶體緩存器(HMB)
1010,1210:管理資料
1020,1220:參考資訊區域
1200:虛擬區塊
1201:資料儲存區
1202:閒置儲存區
S1301:步驟(建立記憶體儲存裝置與主機系統之間的連線)
S1302:步驟(經由所述連線將第一資料儲存至所述主機系統的記憶體)
S1303:步驟(偵測所述記憶體中的所述第一資料中的錯誤)
S1304:步驟(根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖8是根據本發明的一範例實施例所繪示的在主機系統的記憶體中重建第一資料中的部分資料的示意圖。
圖9是根據本發明的一範例實施例所繪示的偵測主機系統的記憶體中的第一資料中的錯誤的示意圖。
圖10是根據本發明的一範例實施例所繪示的在管理資料中決定參考資訊區域的示意圖。
圖11是根據本發明的一範例實施例所繪示的在主機系統的記憶體中重建第一資料中的部分資料的示意圖。
圖12是根據本發明的一範例實施例所繪示的在管理資料中決定參考資訊區域的示意圖。
圖13是根據本發明的一範例實施例所繪示的資料重建方法的流程圖。
S1301:步驟(建立記憶體儲存裝置與主機系統之間的連線)
S1302:步驟(經由所述連線將第一資料儲存至所述主機系統的記憶體)
S1303:步驟(偵測所述記憶體中的所述第一資料中的錯誤)
S1304:步驟(根據所述錯誤在所述記憶體中重建所述第一資料中的部分資料)
Claims (24)
- 一種資料重建方法,用於一記憶體儲存裝置,該資料重建方法包括:建立該記憶體儲存裝置與一主機系統之間的一連線,其中該記憶體儲存裝置包括可複寫式非揮發性記憶體模組;經由該連線將一第一資料儲存至該主機系統的一記憶體;偵測該記憶體中的該第一資料中的錯誤;以及根據該錯誤在該記憶體中重建該第一資料中的一部分資料。
- 如請求項1所述的資料重建方法,其中偵測該記憶體中的該第一資料中的該錯誤的步驟包括:對該記憶體中的該第一資料進行解碼;以及根據一解碼結果以偵測該記憶體中的該第一資料中的該錯誤。
- 如請求項1所述的資料重建方法,其中根據該錯誤在該記憶體中重建該第一資料中的該部分資料的步驟包括:從該記憶體儲存裝置中讀取一管理資料,其中該管理資料包括反映至少一邏輯單元與至少一實體單元之間的映射關係的映射資訊;根據該錯誤所影響的資料範圍在該映射資訊中決定一參考資訊區域;以及根據該參考資訊區域中的映射資訊在該記憶體中重建該第一資料中的該部分資料。
- 如請求項3所述的資料重建方法,其中從該記憶體儲存裝置中讀取該管理資料的步驟包括:從該記憶體儲存裝置的一緩衝記憶體中讀取該管理資料。
- 如請求項3所述的資料重建方法,其中從該記憶體儲存裝置中讀取該管理資料的步驟包括:從該至少一實體單元中讀取該管理資料。
- 如請求項1所述的資料重建方法,其中偵測該記憶體中的該第一資料中的錯誤的步驟,不是響應於來自該主機系統的指令而執行。
- 如請求項1所述的資料重建方法,更包括:根據該錯誤標記該記憶體中的一第一儲存區域;以及在重新建立該連線之前,不使用該第一儲存區域來儲存資料。
- 如請求項1所述的資料重建方法,其中該連線符合一高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以建立該記憶體儲存裝置與該主機系統之間的一連線, 該記憶體控制電路單元更用以經由該連線將一第一資料儲存至該主機系統的一記憶體,該記憶體控制電路單元更用以偵測該記憶體中的該第一資料中的錯誤,並且該記憶體控制電路單元更用以根據該錯誤在該記憶體中重建該第一資料中的一部分資料。
- 如請求項9所述的記憶體儲存裝置,其中偵測該記憶體中的該第一資料中的該錯誤的操作包括:對該記憶體中的該第一資料進行解碼;以及根據一解碼結果偵測該記憶體中的該第一資料中的該錯誤。
- 如請求項9所述的記憶體儲存裝置,其中根據該錯誤在該記憶體中重建該第一資料中的該部分資料的操作包括:從該記憶體儲存裝置中讀取一管理資料,其中該管理資料包括反映至少一邏輯單元與至少一實體單元之間的映射關係的映射資訊;根據該錯誤所影響的資料範圍在該映射資訊中決定一參考資訊區域;以及根據該參考資訊區域中的映射資訊在該記憶體中重建該第一資料中的該部分資料。
- 如請求項11所述的記憶體儲存裝置,其中從該記憶體儲存裝置中讀取該管理資料的操作包括:從該記憶體儲存裝置的一緩衝記憶體中讀取該管理資料。
- 如請求項11所述的記憶體儲存裝置,其中從該記憶體儲存裝置中讀取該管理資料的操作包括:從該至少一實體單元中讀取該管理資料。
- 如請求項9所述的記憶體儲存裝置,其中偵測該記憶體中的該第一資料中的錯誤的操作,不是響應於來自該主機系統的指令而執行。
- 如請求項9所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以:根據該錯誤標記該記憶體中的一第一儲存區域;以及在重新建立該連線之前,不使用該第一儲存區域來儲存資料。
- 如請求項9所述的記憶體儲存裝置,其中該連線符合一高速周邊零件連接介面標準。
- 一種記憶體控制電路單元,用以控制一記憶體儲存裝置,其中該記憶體儲存裝置包括一可複寫式非揮發性記憶體模組,且該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以建立該記憶體儲存裝置與該主機系統之間的一連線,該記憶體管理電路更用以經由該連線將一第一資料儲存至該 主機系統的一記憶體,該記憶體管理電路更用以偵測該記憶體中的該第一資料中的錯誤,並且該記憶體管理電路更用以根據該錯誤在該記憶體中重建該第一資料中的一部分資料。
- 如請求項17所述的記憶體控制電路單元,其中偵測該記憶體中的該第一資料中的該錯誤的操作包括:對該記憶體中的該第一資料進行解碼;以及根據一解碼結果偵測該記憶體中的該第一資料中的該錯誤。
- 如請求項17所述的記憶體控制電路單元,其中根據該錯誤在該記憶體中重建該第一資料中的該部分資料的操作包括:從該記憶體儲存裝置中讀取一管理資料,其中該管理資料包括反映至少一邏輯單元與至少一實體單元之間的映射關係的映射資訊;根據該錯誤所影響的資料範圍在該映射資訊中決定一參考資訊區域;以及根據該參考資訊區域中的資訊在該記憶體中重建該第一資料中的該部分資料。
- 如請求項19所述的記憶體控制電路單元,其中從該記憶體儲存裝置中讀取該管理資料的操作包括:從該記憶體儲存裝置的一緩衝記憶體中讀取該管理資料。
- 如請求項19所述的記憶體控制電路單元,其中從該記憶體儲存裝置中讀取該管理資料的操作包括:從該至少一實體單元中讀取該管理資料。
- 如請求項17所述的記憶體控制電路單元,其中偵測該記憶體中的該第一資料中的錯誤的操作,不是響應於來自該主機系統的指令而執行。
- 如請求項17所述的記憶體控制電路單元,其中該記憶體管理電路更用以:根據該錯誤標記該記憶體中的一第一儲存區域;以及在重新建立該連線之前,不使用該第一儲存區域來儲存資料。
- 如請求項17所述的記憶體控制電路單元,其中該連線符合一高速周邊零件連接介面標準。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110121429A TWI783522B (zh) | 2021-06-11 | 2021-06-11 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
US17/386,547 US11983069B2 (en) | 2021-06-11 | 2021-07-28 | Data rebuilding method, memory storage apparatus, and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110121429A TWI783522B (zh) | 2021-06-11 | 2021-06-11 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI783522B true TWI783522B (zh) | 2022-11-11 |
TW202248857A TW202248857A (zh) | 2022-12-16 |
Family
ID=84390393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110121429A TWI783522B (zh) | 2021-06-11 | 2021-06-11 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11983069B2 (zh) |
TW (1) | TWI783522B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI833588B (zh) * | 2023-03-01 | 2024-02-21 | 南亞科技股份有限公司 | 邏輯位址轉換裝置、方法以及非暫態電腦可讀取儲存媒體 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201124840A (en) * | 2009-09-30 | 2011-07-16 | Intel Corp | Home agent data and memory management |
US20210124644A1 (en) * | 2017-09-29 | 2021-04-29 | Nvidia Corporation | Securing against errors in an error correcting code (ecc) implemented in an automotive system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180045220A (ko) | 2016-10-25 | 2018-05-04 | 삼성전자주식회사 | 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템 |
TW202008171A (zh) * | 2018-07-20 | 2020-02-16 | 大陸商深圳大心電子科技有限公司 | 資料寫入方法以及儲存控制器 |
KR102599188B1 (ko) * | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
CN111880749B (zh) | 2020-08-04 | 2023-06-13 | 群联电子股份有限公司 | 数据读取方法、存储器存储装置及存储器控制电路单元 |
-
2021
- 2021-06-11 TW TW110121429A patent/TWI783522B/zh active
- 2021-07-28 US US17/386,547 patent/US11983069B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201124840A (en) * | 2009-09-30 | 2011-07-16 | Intel Corp | Home agent data and memory management |
US20210124644A1 (en) * | 2017-09-29 | 2021-04-29 | Nvidia Corporation | Securing against errors in an error correcting code (ecc) implemented in an automotive system |
Also Published As
Publication number | Publication date |
---|---|
US11983069B2 (en) | 2024-05-14 |
US20220398155A1 (en) | 2022-12-15 |
TW202248857A (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI768764B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI797464B (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI783522B (zh) | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI691961B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI805379B (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113140253B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI751620B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI784224B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI826161B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI777519B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI814501B (zh) | 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI808483B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI771079B (zh) | 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI751904B (zh) | 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI831366B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN114203239B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113419683B (zh) | 存储器存取方法、存储器存储装置及存储器控制电路单元 | |
TWI780003B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI777087B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 |