TWI444825B - 記憶體儲存裝置、記憶體控制器與資料寫入方法 - Google Patents

記憶體儲存裝置、記憶體控制器與資料寫入方法 Download PDF

Info

Publication number
TWI444825B
TWI444825B TW100110770A TW100110770A TWI444825B TW I444825 B TWI444825 B TW I444825B TW 100110770 A TW100110770 A TW 100110770A TW 100110770 A TW100110770 A TW 100110770A TW I444825 B TWI444825 B TW I444825B
Authority
TW
Taiwan
Prior art keywords
page
physical
data
memory
logical
Prior art date
Application number
TW100110770A
Other languages
English (en)
Other versions
TW201239624A (en
Inventor
Chih Kang Yeh
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW100110770A priority Critical patent/TWI444825B/zh
Priority to US13/111,959 priority patent/US8898372B2/en
Publication of TW201239624A publication Critical patent/TW201239624A/zh
Application granted granted Critical
Publication of TWI444825B publication Critical patent/TWI444825B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

記憶體儲存裝置、記憶體控制器與資料寫入方法
本發明是有關於一種資料寫入方法,且特別是有關於一種在寫入資料時進行備份的方法,以及實行該方法的記憶體儲存裝置與記憶體控制器。
可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等特性,故被廣泛地應用於各種電子裝置。其中,固態硬碟(Solid State Drive,SSD)便是採用可複寫式非揮發性記憶體作為儲存媒體的儲存裝置,且因其具備上述優勢而越來越受到消費者的注目。
可複寫式非揮發性記憶體具有多個實體區塊,且每一實體區塊具有多個實體頁面。其中,實體區塊為資料抹除之最小單位,而實體頁面則為資料寫入的最小單元。儲存裝置中的記憶體管理電路會將主機系統欲存取的邏輯存取位址轉換對應的邏輯頁面,並至該邏輯頁面所對應的實體頁面進行存取。
由於儲存在可複寫式非揮發性記憶體的資料可能會因記憶體胞漏電、程式化失敗或損毀等因素而產生錯誤位元,因此儲存裝置會配置錯誤檢查與校正電路以識別資料的正確性。在主機系統欲讀取固態硬碟中的資料時,由於資料可能是重要的開機檔或系統檔,因此若資料的錯誤位元超過錯誤檢查與校正電路所能校正的位元數,便不能直接將資料回覆給主機系統,而必須告知主機系統資料有誤,以讓主機系統內的作業系統對錯誤進行修正。
一般來說,在接收主機系統之讀取指令而對資料進行讀取時,能根據讀取指令識別資料所對應的邏輯存取位址,故能在發生資料錯誤時正確地回覆主機系統。然而,倘若是在重新啟動固態硬碟並進行實體頁面的掃描之際發現資料錯誤,則因為已無法從實體頁面所記錄的資訊判斷其中資料對應的邏輯存取位址,因此,若主機系統日後欲讀取該邏輯存取位址,則可能會因為沒有將資料錯誤的訊息正確地回覆給主機系統,進而造成主機系統中的作業系統產生運作上的問題。
有鑑於此,本發明提供一種資料寫入方法、記憶體控制器以及記憶體儲存裝置,能在寫入資料時進行備份,以避免將錯誤的資料回覆給主機系統。
本發明提出一種資料寫入方法,用於具有可複寫式非揮發性記憶體晶片的記憶體儲存裝置。可複寫式非揮發性記憶體晶片包括多個實體單元,各實體單元包括多個實體頁面。此方法包括配置多個邏輯單元以映射部分的實體單元,其中各邏輯單元包括多個邏輯頁面。此方法還包括接收來自主機系統的第一寫入資料,並將第一寫入資料寫入至從上述實體單元所提取之一替換實體單元中的第i個實體頁面。此方法更包括將第一寫入資料所對應的第一位址存取資訊,以及一第二位址存取資訊寫入至第i個實體頁面,其中i為正整數。
在本發明之一實施例中,其中第一位址存取資訊包括第一寫入資料所屬的邏輯區域、第一寫入資料所屬的邏輯區塊以及第一寫入資料所屬的邏輯頁面的至少其中之一,且第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、第二寫入資料所屬的邏輯區塊以及第二寫入資料所屬的邏輯頁面的至少其中之一。
在本發明之一實施例中,其中第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面,且第二寫入資料係被寫入至替換實體單元中的第i-k個實體頁面,其中k為大於或等於1之正整數。
在本發明之一實施例中,此資料寫入方法更包括重新啟動記憶體儲存裝置並掃描各實體頁面。當判斷第i-k個實體頁面發生資料錯誤時,讀取第i個實體頁面以識別被寫入至第i-k個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,回應資料錯誤訊息至主機系統。
在本發明之一實施例中,其中可複寫式非揮發性記憶體晶片包括多個記憶體模組,而第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面。第二寫入資料係被寫入至替換實體單元中的第j個實體頁面,而第i個實體頁面與第j個實體頁面屬於上述記憶體模組中的不同記憶體模組,且第i個實體頁面與第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
在本發明之一實施例中,此資料寫入方法更包括重新啟動記憶體儲存裝置並掃描各實體頁面。當判斷第j個實體頁面發生資料錯誤時,讀取第i個實體頁面以識別被寫入至第j個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,回應資料錯誤訊息至主機系統。
在本發明之一實施例中,此資料寫入方法更包括接收來自主機系統的清除指令。自替換實體單元取得尚未被寫入資料的特定實體頁面。將結束標記寫入至特定實體頁面,並且將在接收到清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至特定實體頁面。
在本發明之一實施例中,其中各實體頁面具有資料位元區與冗餘位元區,而第一寫入資料被寫入至第i個實體頁面的資料位元區,且第一位址存取資訊與第二位址存取資訊被寫入至第i個實體頁面的冗餘位元區。
從另一觀點來看,本發明提出一種記憶體控制器,用於管理記憶體儲存裝置中的可複寫式非揮發性記憶體晶片。此記憶體控制器包括主機系統介面、記憶體介面,以及記憶體管理電路。主機系統介面用以耦接主機系統。記憶體介面用以耦接可複寫式非揮發性記憶體晶片,其中可複寫式非揮發性記憶體晶片包括多個實體單元,且各實體單元包括多個實體頁面。記憶體管理電路耦接至主機系統介面與記憶體介面,記憶體管理電路用以配置多個邏輯單元以映射部分的實體單元,其中各邏輯單元包括多個邏輯頁面。記憶體管理電路更用以透過主機系統介面接收來自主機系統的第一寫入資料,並將第一寫入資料寫入至從上述實體單元所提取的替換實體單元中的第i個實體頁面,以及將第一寫入資料所對應的第一位址存取資訊,以及一第二位址存取資訊寫入至第i個實體頁面,其中i為正整數。
在本發明之一實施例中,其中第一位址存取資訊包括第一寫入資料所屬的邏輯區域、第一寫入資料所屬的邏輯區塊以及第一寫入資料所屬的邏輯頁面的至少其中之一,且第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、第二寫入資料所屬的邏輯區塊以及第二寫入資料所屬的邏輯頁面的至少其中之一。
在本發明之一實施例中,其中第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面,且第二寫入資料係被寫入至替換實體單元中的第i-k個實體頁面,其中k為大於或等於1的正整數。
在本發明之一實施例中,其中在記憶體儲存裝置重新啟動後,記憶體管理電路掃描各實體頁面。當第i-k個實體頁面發生資料錯誤時,記憶體管理電路讀取第i個實體頁面以識別被寫入至第i-k個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,記憶體管理電路將資料錯誤訊息回應至主機系統。
在本發明之一實施例中,其中可複寫式非揮發性記憶體晶片包括多個記憶體模組,而第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面,第二寫入資料係被寫入至替換實體單元中的第j個實體頁面。第i個實體頁面與第j個實體頁面屬於上述記憶體模組中的不同記憶體模組,且第i個實體頁面與第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
在本發明之一實施例中,其中在記憶體儲存裝置重新啟動後,記憶體管理電路掃描各實體頁面。當第j個實體頁面發生資料錯誤時,記憶體管理電路讀取第i個實體頁面以識別被寫入至第j個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,記憶體管理電路回應資料錯誤訊息至主機系統。
在本發明之一實施例中,其中記憶體管理電路透過主機系統介面接收來自主機系統的清除指令,自替換實體單元取得尚未被寫入資料的特定實體頁面,將結束標記寫入至特定實體頁面,以及將在接收到清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至特定實體頁面。
在本發明之一實施例中,其中各實體頁面具有資料位元區與冗餘位元區,而第一寫入資料被寫入至第i個實體頁面的資料位元區,且第一位址存取資訊與第二位址存取資訊被寫入至第i個實體頁面的冗餘位元區。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體晶片、連接器,以及記憶體控制器。可複寫式非揮發性記憶體晶片包括多個實體單元,且各實體單元包括多個實體頁面。連接器用以耦接主機系統。記憶體控制器耦接至可複寫式非揮發性記憶體晶片與連接器。記憶體控制器用以配置多個邏輯單元以映射部分的實體單元,其中各邏輯單元包括多個邏輯頁面。記憶體控制器更用以透過連接器接收來自主機系統的第一寫入資料,並將第一寫入資料寫入至從上述實體單元所提取之替換實體單元中的第i個實體頁面,以及將第一寫入資料所對應的第一位址存取資訊,以及一第二位址存取資訊寫入至第i個實體頁面,其中i為正整數。
在本發明之一實施例中,其中第一位址存取資訊包括第一寫入資料所屬的邏輯區域、第一寫入資料所屬的邏輯區塊以及第一寫入資料所屬的邏輯頁面的至少其中之一,且第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、第二寫入資料所屬的邏輯區塊以及第二寫入資料所屬的邏輯頁面的至少其中之一。
在本發明之一實施例中,其中第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面,且第二寫入資料係被寫入至替換實體單元中的第i-k個實體頁面,其中k為大於或等於1的正整數。
在本發明之一實施例中,其中在記憶體儲存裝置重新啟動後,記憶體控制器掃描各實體頁面。當第i-k個實體頁面發生資料錯誤時,記憶體控制器讀取第i個實體頁面以識別被寫入至第i-k個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,記憶體控制器回應資料錯誤訊息至主機系統。
在本發明之一實施例中,其中可複寫式非揮發性記憶體晶片包括多個記憶體模組,而第二位址存取資訊為第二寫入資料所對應的第二邏輯頁面。第二寫入資料係被寫入至替換實體單元中的第j個實體頁面,其中第i個實體頁面與第j個實體頁面屬於上述記憶體模組中的不同記憶體模組,且第i個實體頁面與第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
在本發明之一實施例中,其中在記憶體儲存裝置重新啟動後,記憶體控制器掃描各實體頁面。當第j個實體頁面發生資料錯誤時,記憶體控制器讀取第i個實體頁面以識別被寫入至第j個實體頁面的第二寫入資料是對應於第二邏輯頁面。在主機系統欲讀取第二邏輯頁面時,記憶體控制器回應資料錯誤訊息至主機系統。
在本發明之一實施例中,其中記憶體控制器透過連接器接收來自主機系統的清除指令,自替換實體單元取得尚未被寫入資料的特定實體頁面,將結束標記寫入至特定實體頁面,以及將在接收到清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至特定實體頁面。
在本發明之一實施例中,其中各實體頁面具有資料位元區與冗餘位元區,而第一寫入資料被寫入至第i個實體頁面的資料位元區,且第一位址存取資訊與第二位址存取資訊被寫入至第i個實體頁面的冗餘位元區。
基於上述,本發明在將資料寫入可複寫式非揮發性記憶體晶片時,會將該資料、該資料所對應的位址存取資訊,以及另一資料對應的位址存取資訊記錄在一個實體頁面中,據此達到備份寫入資料之位址存取資訊的目的。如此一來,若在啟動記憶體儲存裝置並掃描各實體頁面時發現資料錯誤,則可利用備份的位址存取資訊來識別發生資料錯誤之實體頁面中的資料對應的邏輯頁面,以避免在日後主機系統讀取該邏輯頁面時,將已發生錯誤的資料回覆給主機系統。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括記憶體晶片與控制器(亦稱,控制電路)。通常記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。另外,亦有記憶體儲存裝置是包括嵌入式記憶體與可執行於主機系統上以實質地作為此嵌入式記憶體之控制器的軟體。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體晶片106。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為序列先進附件(Serial Advanced Technology Attachment,SATA)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是通用序列匯流排(Universal Serial Bus,USB)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體晶片106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之資料寫入方法而在寫入資料時備份其他實體頁面中的部分資訊。本範例實施例之資料寫入方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體晶片106耦接至記憶體控制器104。可複寫式非揮發性記憶體晶片106係用以儲存如檔案配置表(File Allocation Table,FAT)或增強型文件系統(New Technology File System,NTFS)等檔案系統資訊,以及儲存如文字、影像或聲音檔案等一般性資料。舉例來說,可複寫式非揮發性記憶體晶片106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片,但本發明不限於此,可複寫式非揮發性記憶體晶片106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片、其他快閃記憶體晶片或任何具有相同特性的記憶體晶片。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043,以及記憶體介面1045。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為SATA介面,而在其他範例實施例中,主機系統介面1041也可以是USB介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100運作時,上述控制指令會被執行以實現本範例實施例之資料寫入方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之資料寫入方法。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體晶片106的特定區域(例如,可複寫式非揮發性記憶體晶片106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體晶片106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之資料寫入方法。此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體晶片106相耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體晶片106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體晶片106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體晶片106所能接受的格式。
在本發明之一範例實施例中,記憶體控制器104還包括緩衝記憶體3002。緩衝記憶體3002可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3002耦接至記憶體管理電路1043,用以暫存來自於主機系統1000的資料,或暫存來自於可複寫式非揮發性記憶體晶片106的資料。
在本發明另一範例實施例中,記憶體控制器104還包括電源管理電路3004。電源管理電路3004耦接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
在本發明又一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3006。錯誤檢查與校正電路3006耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3006會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體晶片106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體晶片106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3006會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4A與圖4B是根據本發明之一範例實施例所繪示之管理實體單元的示意圖。
請參照圖4A,本範例實施例之可複寫式非揮發性記憶體晶片106包括實體單元410(0)~410(N),其中,每一實體單元包括多個實體頁面。在本範例實施例中,每一實體單元是由一個實體區塊所組成。然而本發明不侷限於此,在本發明的另一範例實施例中,每一實體單元亦可由多個實體區塊所組成。
記憶體控制器104中的記憶體管理電路1043會將實體單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4A所標示的F、S、R與N為正整數,代表各區配置的實體單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體晶片106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體單元是被視為已儲存資料的實體單元,而閒置區504的實體單元是用以替換資料區502的實體單元。換句話說,閒置區504的實體單元為空或可使用的實體單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體單元,並且將資料寫入至所提取的實體單元中,以替換資料區502的實體單元。
邏輯上屬於系統區506的實體單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體晶片106的製造商與型號等資訊。
邏輯上屬於取代區508的實體單元是用以在資料區502、閒置區504或系統區506中的實體單元損毀時,取代損壞的實體單元。具體而言,倘若取代區508中仍存有正常之實體單元且資料區502的實體單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體單元來更換資料區502中損壞的實體單元。
為了讓主機系統1000能對可複寫式非揮發性記憶體晶片106進行存取,請參照圖4B,記憶體管理電路1043會配置數個邏輯單元610(0)~610(L)以映射資料區502中的實體單元410(0)~410(F-1)。其中每一邏輯單元包括多個邏輯頁面,而邏輯單元610(0)~610(L)中的邏輯頁面會依序映射實體單元410(0)~410(F-1)中的實體頁面。
記憶體管理電路1043將所配置的邏輯單元610(0)~610(L)提供給主機系統1000,並維護邏輯單元-實體單元映射表(logical unit-physical unit mapping table)以記錄邏輯單元610(0)~610(L)與實體單元410(0)~410(F-1)的映射關係。因此,當主機系統1000欲對一邏輯存取位址進行讀取時,記憶體管理電路1043會將此邏輯存取位址轉換為對應的邏輯單元的邏輯頁面,再透過邏輯單元-實體單元映射表至其所映射的實體頁面來讀取資料。
而為了因應來自主機系統1000的寫入指令,記憶體管理電路1043會從閒置區504提取實體單元來作為替換實體單元,並且將主機系統1000欲寫入的資料寫入至替換實體單元。詳言之,在本範例實施例中,若接收到來自主機系統1000的數個寫入指令且該些寫入指令對應的寫入資料係對應不同邏輯頁面,這些寫入資料會被依序寫入替換實體單元。當此替換實體單元已無空的實體頁面時,記憶體管理電路1043則會再自閒置區504提取另一替換實體單元以接續寫入主機系統1000欲寫入的資料。而在替換實體單元的數量到達上限值時,記憶體管理電路1043會執行資料合併程序,以將屬於相同實體單元的有效資料整併至提取自閒置區504的新實體單元,並且將各替換實體單元中的資料標示為無效資料,再將替換實體單元關聯回閒置區504。
圖5A至圖5D是根據本發明之一範例實施例所繪示之將資料寫入至替換實體單元的示意圖。在本實施例中,假設每一實體單元包括M個實體頁面(M為正整數),且每一實體頁面具有資料位元區與冗餘位元區。其中,資料位元區用以儲存主機系統1000欲寫入的資料,而冗餘位元區用以儲存與該實體頁面相關的資訊,例如錯誤檢查與校正碼及邏輯存取位址等。
當主機系統1000欲將寫入資料D1寫入至邏輯單元610(0)~610(L)中的某一個邏輯頁面(例如邏輯頁面3),記憶體管理電路1043會透過主機系統介面1041接收寫入資料D1。此時,如圖5A所示,記憶體管理電路1043自閒置區504提取實體單元410(T)作為替換實體單元,並將寫入資料D1、對應寫入資料D1之位址存取資訊AI1與寫入資料D1的錯誤檢查與校正碼ECC1一併寫入至替換實體單元410(T)的第0個實體頁面,記憶體管理電路1043亦會將位址存取資訊AI1暫時記錄在緩衝記憶體3002。在本範例實施例中,位址存取資訊AI1是寫入資料D1所屬於的邏輯頁面(即邏輯頁面3)。
在本範例實施例中,寫入資料D1被寫入至第0個實體頁面的資料位元區,位址存取資訊AI1被寫入至第0個實體頁面之冗餘位元區裡的第一記錄區,且錯誤檢查與校正碼ECC1被寫入至冗餘位元區裡的第三記錄區。此外,記憶體管理電路1043會將一起始標記(在圖5A中是以符號“S”表示)寫入至第0個實體頁面之冗餘位元區裡的第二記錄區。而在其他範例實施例中,記憶體管理電路1043也可以不將任何資訊寫入冗餘位元區的第二記錄區,或者在目前已有多個替換實體單元的情況下,將被寫入至上一個替換實體單元之最後一個實體頁面裡的寫入資料所對應的位址存取資訊記錄到冗餘位元區的第二記錄區。
若記憶體管理電路1043接著接收來自主機系統1000的寫入資料D2,此寫入資料D2是對應邏輯單元610(0)~610(L)中的某一邏輯頁面(例如邏輯頁面7)。如圖5B所示,記憶體管理電路1043會分別將寫入資料D2、對應寫入資料D2之位址存取資訊AI2(例如,寫入資料D2所屬之邏輯頁面7),與寫入資料D2的錯誤檢查與校正碼ECC2寫入替換實體單元410(T)之第1個實體頁面的資料位元區、冗餘位元區裡的第一記錄區,以及冗餘位元區裡的第三記錄區。並且,記憶體管理電路1043將自緩衝記憶體3002取得上一個寫入指令之寫入資料D1對應的位址存取資訊AI1,並將位址存取資訊AI1寫入第1個實體頁面之冗餘位元區裡的第二記錄區。同理,記憶體管理電路1043會將位址存取資訊AI2暫時記錄在緩衝記憶體3002。
接下來,若主機系統1000欲將寫入資料D3寫入至邏輯單元610(0)~610(L)中的某一個邏輯頁面(例如邏輯頁面100)。記憶體管理電路1043在接收到寫入資料D3後,會自緩衝記憶體3002取得上一個寫入指令之寫入資料D2對應的位址存取資訊AI2,並且如圖5C所示,將寫入資料D3、對應寫入資料D3之位址存取資訊AI3(例如,寫入資料D3所屬之邏輯頁面100)、寫入資料D3的錯誤檢查與校正碼ECC3,以及位址存取資訊AI2寫入至替換實體單元410(T)之第2個實體頁面的資料位元區、冗餘位元區裡的第一記錄區、冗餘位元區裡的第三記錄區,以及冗餘位元區裡的第二記錄區。
假設主機系統1000在下達對應寫入資料D3的寫入指令後,接著下達一清除指令(flush command),表示主機系統1000可能要準備進行關機程序。此時,記憶體管理電路1043不但需將記憶體儲存裝置100之快取記憶體(未繪示)中的資料清空,記憶體管理電路1043還會從替換實體單元410(T)中取得一個尚未被寫入資料的特定實體頁面(在本範例實施例中,特定實體頁面例如是替換實體單元410(T)中的第3個實體頁面),並且如圖5D所示,將結束標記(在圖5D中是以符號“E”表示)寫入在第3個實體頁面之冗餘位元區裡的第一記錄區,以及將在接收到清除指令之前的最後一個寫入資料D3所對應的位址存取資訊AI3寫入至第3個實體頁面之冗餘位元區裡的第二記錄區。在另一範例實施例中,記憶體管理電路1043以可將無意義的填充資料或記憶體儲存裝置100在運作過程中所產生的表格寫入第3個實體頁面的資料位元區。
如圖5A至5D所示,替換實體單元410(T)中每一實體頁面的資料位元區係用以寫入屬於單一個邏輯頁面的寫入資料,而冗餘位元區則會被寫入對應不同邏輯頁面的兩個位址存取資訊。其中之一位址存取資訊是對應這次寫入的寫入資料,而另一位址存取資訊則對應主機系統1000上一次寫入的寫入資料。假設此次寫入資料被寫入第i個實體頁面,那麼上一次寫入的寫入資料則是被寫入在第i-1個實體頁面。
倘若在如圖5D所示之狀態下記憶體儲存裝置100被重新啟動,記憶體管理電路1043將去讀取並掃描可複寫式非揮發性記憶體晶片106中的各實體頁面,以利用各實體頁面之冗餘位元區所記錄的資訊來識別被寫入至該實體頁面中的資料所對應的位址存取資訊(即,該資料是屬於哪個邏輯頁面),進而重建記憶體儲存裝置100運行時所需要參考的表格。詳細地說,在記憶體管理電路1043掃描每一實體頁面時,錯誤檢查與校正電路3006將利用其冗餘位元區所記錄的錯誤檢查與校正碼來判斷記錄在該實體頁面之其餘資料的正確性。若錯誤檢查與校正電路3006判定並未發生資料錯誤,記憶體管理電路1043可讀取冗餘位元區之第一記錄區所記錄的位址存取資訊,進而識別出被寫入至該實體頁面的資料是對應哪個邏輯頁面。
舉例來說,當記憶體管理電路1043掃描到替換實體單元410(T)的第1個實體頁面時,假設錯誤檢查與校正電路3006利用其冗餘位元區中的錯誤檢查與校正碼ECC2而判定此實體頁面發生資料錯誤,且錯誤位元已超過錯誤檢查與校正碼ECC2所能校正的位元數。此時,記憶體管理電路1043將無法從此實體頁面之冗餘位元區識別出寫入資料D2是對應哪個邏輯頁面。對此,記憶體管理電路1043會讀取替換實體單元410(T)中的下一個實體頁面(亦即,第2個實體頁面),進而根據記錄在第2個實體頁面之冗餘位元區的第二記錄區中的位址存取資訊AI2,以識別出第1個實體頁面中的資料應是屬於邏輯頁面7。爾後,當主機系統1000要讀取邏輯頁面7時,記憶體管理電路1043便會將一資料錯誤訊息回應至主機系統1000,進而讓主機系統1000中的作業系統能進行修復或作出其他相應的處理。
在本範例實施例中,記憶體管理電路1043每次將寫入資料寫入至一實體頁面時,便會備份上一個寫入指令之寫入資料所對應的位址存取資訊,據此能在重新啟動記憶體儲存裝置100並進行掃描而遇到資料錯誤的情況時,到下一個實體頁面取得備份的位址存取資訊。然而本發明並不侷限於此備份方式,在本發明的其他範例實施例中,記憶體管理電路1043在將寫入資料及其位址存取資訊寫入至一實體頁面之餘,也可將在此寫入指令之前的第k個(k為大於或等於1的正整數)寫入指令的寫入資料所對應的位址存取資訊寫入至該實體頁面。如此一來,當重新啟動記憶體儲存裝置100而在掃描到某一實體頁面卻發生資料錯誤時,記憶體管理電路1043會去讀取下k個實體頁面以取得備份的位址存取資訊。
必須特別說明的是,在上述範例實施例中雖然是將位址存取資訊舉例為寫入資料所屬之邏輯頁面,並據此來對本發明進行說明,但本發明並不侷限於此。在本發明的另一範例實施例中,倘若可複寫式非揮發性記憶體晶片106中的實體區塊是被分組為數個區域(zone),且以每一區域都被視為獨立的管理單位,那麼各寫入資料的位址存取資訊則可以是寫入資料所屬的邏輯區域、寫入資料所屬的邏輯區塊,以及寫入資料所屬的邏輯頁面其中之一或其組合者。例如,位址存取資訊AI1的內容可以是寫入資料D1是屬於哪一個邏輯區域之哪個邏輯區塊裡的哪邏輯頁面。
在以下的實施例中,可複寫式非揮發性記憶體晶片106包括數個記憶體模組(例如,記憶體晶粒(die)),且每一實體單元是由屬於不同記憶體模組的多個實體區塊所組成。基此,記憶體管理電路1043在寫入資料時去備份其他資料所屬之位址存取資訊的方式亦與前述範例實施例有所不同。
圖6是根據本發明之另一範例實施例所繪示之管理實體單元的示意圖。在本範例實施例中,可複寫式非揮發性記憶體晶片106包括記憶體模組710、記憶體模組720、記憶體模組730,以及記憶體模組740。記憶體模組710至740分別透過獨立的4個資料匯流排(未繪示)耦接至記憶體控制器104。然而在其他範例實施例中,記憶體模組710至740也可透過1個資料匯流排耦接至記憶體控制器104。如圖6所示,記憶體模組710具有實體區塊710(0)~710(N)、記憶體模組720具有實體區塊720(0)~720(N)、記憶體模組730具有實體區塊730(0)~730(N),而記憶體模組740具有實體區塊740(0)~740(N)。
詳言之,記憶體管理電路1043是將記憶體模組710至740中的實體區塊邏輯地分組為多個實體單元來管理。例如,實體區塊710(0)、實體區塊720(0)、實體區塊730(0),以及實體區塊740(0)會被配對以分組作為實體單元810(0),而實體區塊710(1)、實體區塊720(1)、實體區塊730(1),以及實體區塊740(1)則會被配對以分組作為實體單元810(1),以此類推。由於記憶體管理電路1043係以實體單元來管理可複寫式非揮發性記憶體晶片106中的實體區塊,因此在執行主機系統1000下達的寫入指令或讀取指令時,記憶體管理電路1043會以平行方式對同一實體單元中屬於不同之記憶體模組的4個實體區塊進行寫入或讀取動作。
必須說明的是,雖然本範例實施例是以4個記憶體模組為例來進行說明,但本發明並不限於此。在本發明之另一範例實施例中,可複寫式非揮發性記憶體晶片106也可以包括2個或8個記憶體模組。
圖7是在圖6所示之管理架構下,記憶體管理電路1043因應來自主機系統的寫入指令而將寫入資料寫入至替換實體單元810(T)的示意圖。為了方便說明,假設每一實體區塊包括4個實體頁面。並假設記憶體管理電路1043接收到來自主機系統1000的4筆寫入資料D1至D4。其中寫入資料D1至D4是對應4個不同的邏輯頁面,且分別對應位址存取資訊AI1至AI4。在本範例實施例中,位址存取資訊AI1至AI4分別包括寫入資料D1至D4個別屬於的邏輯頁面。假設寫入資料D1屬於邏輯頁面5、寫入資料D2屬於邏輯頁面10、寫入資料D3屬於邏輯頁面8,且寫入資料D4屬於邏輯頁面15。
在本範例實施例中,針對替換實體單元810(T)中的每一實體頁面,除了會記錄被寫入之資料對應的位址存取資訊外,還會記錄被寫入至另一實體頁面之資料所對應的位址存取資訊,這兩個實體頁面屬於不同的記憶體模組,但在個別所屬的記憶體模組中具有相同的實體頁面順序。
請參閱圖7,記憶體管理電路1043會一併將寫入資料D1至D4寫入至所提取的替換實體單元810(T)。其中,記憶體管理電路1043將寫入資料D1寫入至替換實體單元810(T)中實體區塊710(0)之第0個實體頁面的資料位元區,並將寫入資料D2寫入至實體區塊720(0)之第0個實體頁面的資料位元區。而記憶體管理電路1043還會將寫入資料D1對應的位址存取資訊AI1、寫入資料D2對應的位址存取資訊AI2,以及寫入資料D1對應的錯誤檢查與校正碼ECC1分別寫入至實體區塊710(0)之第0個實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區。並且,記憶體管理電路1043會將寫入資料D2對應的位址存取資訊AI2、寫入資料D1對應的位址存取資訊AI1,以及寫入資料D2對應的錯誤檢查與校正碼ECC2寫入至實體區塊720(0)之第0個實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區。換言之,實體區塊720(0)的第0個實體頁面可視為實體區塊710(0)的第0個實體頁面的備份區域,而實體區塊710(0)的第0個實體頁面可視為實體區塊720(0)的第0個實體頁面的備份區域。
類似地,記憶體管理電路1043將寫入資料D3寫入至替換實體單元810(T)中實體區塊730(0)之第0個實體頁面的資料位元區,且將寫入資料D4寫入至實體區塊740(0)之第0個實體頁面的資料位元區。同時,記憶體管理電路1043亦會將寫入資料D3對應的位址存取資訊AI3、寫入資料D4對應的位址存取資訊AI4,以及寫入資料D3對應的錯誤檢查與校正碼ECC3寫入至實體區塊730(0)之第0個實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區。記憶體管理電路1043會將寫入資料D4對應的位址存取資訊AI4、寫入資料D3對應的位址存取資訊AI3,以及寫入資料D4對應的錯誤檢查與校正碼ECC4寫入至實體區塊740(0)之第0個實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區。基此,實體區塊730(0)的第0個實體頁面與實體區塊740(0)的第0個實體頁面將互為對方的備份區域。
在本範例實施例中,記憶體模組710與記憶體模組720係互為對方的備份區域,且記憶體模組730與記憶體模組740係互為對方的備份區域。然而在另一範例實施例中亦可採用其他的備份方式,例如以記憶體模組710作為記憶體模組720的備份區域、以記憶體模組720作為記憶體模組730的備份區域、以記憶體模組730作為記憶體模組740的備份區域,而以記憶體模組740作為記憶體模組710的備份區域。
倘若在將寫入資料D1至D4寫入至替換實體單元810(T)後,記憶體儲存裝置100被重新啟動,記憶體管理電路1043將去掃描可複寫式非揮發性記憶體晶片106中的各實體頁面,據以識別各實體頁面中的資料所對應的邏輯頁面。
延續圖7所示之範例實施例,當記憶體管理電路1043掃描到實體區塊710(0)的第0個實體頁面,倘若錯誤檢查與校正電路3006利用其冗餘位元區的錯誤檢查與校正碼ECC1進行檢測而發現此實體頁面有資料錯誤的情況,表示實體區塊710(0)之第0個實體頁面所記錄的資訊有誤,記憶體管理電路1043將無法根據此實體頁面之冗餘位元區來識別其中的資料是屬於哪個邏輯頁面。對此,記憶體管理電路1043會去讀取作為其備份區域之實體區塊720(0)的第0個實體頁面,並根據其冗餘位元區之第二記錄區中的位址存取資訊AI1以識別出實體區塊710(0)之第0個實體頁面中的資料是屬於邏輯頁面5。日後當主機系統1000欲讀取邏輯頁面5時,記憶體管理電路1043便會將一資料錯誤訊息回應至主機系統1000。
也就是說,記憶體管理電路1043在記憶體儲存裝置100被重新啟動而去掃描每個實體頁面時,若有實體頁面發生資料錯誤,記憶體管理電路1043會讀取作為備份區域之對應實體頁面所記錄的資訊,以識別發生資料錯誤之實體頁面中的資料所屬於的邏輯頁面。如此一來,當主機系統1000要讀取的邏輯頁面是對應有發生資料錯誤的實體頁面時,便可正確地將資料錯誤訊息回覆至主機系統1000,避免因為回覆錯誤資料而導致主機系統1000的作業系統無法正常執行。
值得一提的是,在上述範例實施例中是將寫入資料的位址存取資訊、其他寫入資料的位址存取資訊,以及寫入資料的錯誤檢查與校正碼依序寫入至實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區,但上述對應關係並不用以限制本發明。換言之,可根據實際應用情況或需求而採用不同的方式將兩筆位址存取資訊以及一錯誤檢查與校正碼寫入至實體頁面的冗餘位元區。舉例來說,在本發明的另一範例實施例中也可將寫入資料的錯誤檢查與校正碼、寫入資料的位址存取資訊以及其他寫入資料的位址存取資訊依序寫入至實體頁面的冗餘位元區裡的第一記錄區、第二記錄區,以及第三記錄區。
圖8是依照本發明之一範例實施例所繪示之資料寫入方法的流程圖,請參閱圖8。
首先如步驟S810所示,記憶體管理電路1043配置多個邏輯單元以映射可複寫式非揮發性記憶體晶片106中的部分實體單元。其中各邏輯單元包括多個邏輯頁面。
接著在步驟S820中,記憶體管理電路1043透過主機系統介面1041接收來自主機系統1000的第一寫入資料。此第一寫入資料係對應單一個邏輯頁面。
如步驟S830所示,記憶體管理電路1043將第一寫入資料寫入至所提取之一替換實體單元中的第i個實體頁面,其中i為正整數。
並且如步驟S840所示,記憶體管理電路1043將第一寫入資料、第一寫入資料所對應的第一位址存取資訊以及第二寫入資料所對應的第二位址存取資訊寫入至第i個實體頁面。其中,第一寫入資料與第二寫入資料分別屬於不同的邏輯頁面。如此一來,替換實體單元中的每一實體頁面都將記錄對應單一個邏輯頁面的寫入資料,以及對應不同邏輯頁面的兩個位址存取資訊。
綜上所述,本發明所述之記憶體儲存裝置、記憶體控制器與資料寫入方法是在將來自主機系統的寫入資料寫入所提取之替換實體單元中的一實體頁面時,將寫入資料及其所對應的位址存取資訊寫入此實體頁面,另外將被寫入至另一實體頁面之寫入資料所對應的位址存取資訊寫入至此實體頁面,據以備份其他實體頁面之寫入資料的位址存取資訊。基此,在記憶體儲存裝置重新啟動而對每一實體頁面進行掃描之際,若發現有實體頁面發生資料錯誤,則可利用另一實體頁面中作為備份的位址存取資訊來識別發生錯誤之實體頁面的資料所對應的邏輯頁面。進而避免在主機系統欲讀取發生錯誤的資料時無法正確地作出回應。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...可複寫式非揮發性記憶體晶片
1041...主機系統介面
1043...記憶體管理電路
1045...記憶體介面
3002...緩衝記憶體
3004...電源管理電路
3006...錯誤檢查與校正電路
410(0)~410(N)、810(0)~810(N)...實體單元
502...資料區
504...閒置區
506...系統區
508...取代區
610(0)~610(L)...邏輯單元
410(T)、810(T)...替換實體單元
710、720、730、740...記憶體模組
710(0)~710(N)、720(0)~720(N)、730(0)~7430(N)、740(0)~740(N)...實體區塊
S810~S840...本發明之一實施例所述之資料寫入方法的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4A與圖4B是根據本發明之一範例實施例所繪示之管理實體單元的示意圖。
圖5A至圖5D是根據本發明之一範例實施例所繪示之將資料寫入至替換實體單元的示意圖。
圖6是根據本發明之另一範例實施例所繪示之管理實體單元的示意圖。
圖7是根據本發明之另一範例實施例所繪示之將寫入資料寫入至替換實體單元的示意圖。
圖8是依照本發明之一範例實施例所繪示之資料寫入方法的流程圖。
S810~S840...本發明之一實施例所述之資料寫入方法的各步驟

Claims (24)

  1. 一種資料寫入方法,用於具有一可複寫式非揮發性記憶體晶片的一記憶體儲存裝置,該可複寫式非揮發性記憶體晶片包括多個實體單元,各該些實體單元包括多個實體頁面,該方法包括:配置多個邏輯單元以映射部分的該些實體單元,其中各該些邏輯單元包括多個邏輯頁面;接收來自一主機系統的一第一寫入資料;將該第一寫入資料寫入至從該些實體單元所提取之一替換實體單元中的第i個實體頁面,其中i為正整數;將該第一寫入資料所對應的一第一位址存取資訊,以及一第二位址存取資訊寫入至該第i個實體頁面;以及在該記憶體儲存裝置重新啟動後,掃描各該些實體頁面以重建紀錄該些邏輯頁面與該些實體頁面之間映射的參考表格。
  2. 如申請專利範圍第1項所述之資料寫入方法,其中該第一位址存取資訊包括該第一寫入資料所屬的邏輯區域、該第一寫入資料所屬的邏輯區塊以及該第一寫入資料所屬的邏輯頁面的至少其中之一,且該第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、該第二寫入資料所屬的邏輯區塊以及該第二寫入資料所屬的邏輯頁面的至少其中之一。
  3. 如申請專利範圍第1項所述之資料寫入方法,其中該第二位址存取資訊為一第二寫入資料所對應的一第二邏 輯頁面,且該第二寫入資料為被寫入至該替換實體單元中的第i-k個實體頁面,其中k為大於或等於1之正整數。
  4. 如申請專利範圍第3項所述之資料寫入方法,其中該方法更包括:當判斷該第i-k個實體頁面發生資料錯誤時,讀取該第i個實體頁面以識別被寫入至該第i-k個實體頁面的該第二寫入資料是對應於該第二邏輯頁面;以及在該主機系統欲讀取該第二邏輯頁面時,回應一資料錯誤訊息至該主機系統。
  5. 如申請專利範圍第1項所述之資料寫入方法,其中該可複寫式非揮發性記憶體晶片包括多個記憶體模組,而該第二位址存取資訊為一第二寫入資料所對應的一第二邏輯頁面,該第二寫入資料為被寫入至該替換實體單元中的第j個實體頁面,該第i個實體頁面與該第j個實體頁面屬於該些記憶體模組中的不同記憶體模組,且該第i個實體頁面與該第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
  6. 如申請專利範圍第5項所述之資料寫入方法,該方法更包括:當判斷該第j個實體頁面發生資料錯誤時,讀取該第i個實體頁面以識別被寫入至該第j個實體頁面的該第二寫入資料是對應於該第二邏輯頁面;以及在該主機系統欲讀取該第二邏輯頁面時,回應一資料錯誤訊息至該主機系統。
  7. 如申請專利範圍第1項所述之資料寫入方法,更包括:接收來自該主機系統的一清除指令;自該替換實體單元取得尚未被寫入資料的一特定實體頁面;將一結束標記寫入至該特定實體頁面;以及將在接收到該清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至該特定實體頁面。
  8. 如申請專利範圍第1項所述之資料寫入方法,其中各該些實體頁面具有一資料位元區與一冗餘位元區,而該第一寫入資料被寫入至該第i個實體頁面的該資料位元區,且該第一位址存取資訊與該第二位址存取資訊被寫入至該第i個實體頁面的該冗餘位元區。
  9. 一種記憶體控制器,用於管理一記憶體儲存裝置中的一可複寫式非揮發性記憶體晶片,該記憶體控制器包括:一主機系統介面,用以耦接一主機系統;一記憶體介面,用以耦接該可複寫式非揮發性記憶體晶片,其中該可複寫式非揮發性記憶體晶片包括多個實體單元,且各該些實體單元包括多個實體頁面;以及一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,該記憶體管理電路用以配置多個邏輯單元以映射部分的該些實體單元,其中各該些邏輯單元包括多個邏輯頁面,該記憶體管理電路更用以透過該主機系統介面接收 來自該主機系統的一第一寫入資料,並將該第一寫入資料寫入至從該些實體單元所提取之一替換實體單元中的第i個實體頁面,以及將該第一寫入資料所對應的一第一位址存取資訊,以及一第二位址存取資訊寫入至該第i個實體頁面,其中i為正整數,其中該記憶體管理電路更用以在該記憶體儲存裝置重新啟動後,掃描各該些實體頁面以重建紀錄該些邏輯頁面與該些實體頁面之間映射的參考表格。
  10. 如申請專利範圍第9項所述之記憶體控制器,其中該第一位址存取資訊包括該第一寫入資料所屬的邏輯區域、該第一寫入資料所屬的邏輯區塊以及該第一寫入資料所屬的邏輯頁面的至少其中之一,且該第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、該第二寫入資料所屬的邏輯區塊以及該第二寫入資料所屬的邏輯頁面的至少其中之一。
  11. 如申請專利範圍第9項所述之記憶體控制器,其中該第二位址存取資訊為一第二寫入資料所對應的一第二邏輯頁面,且該第二寫入資料為被寫入至該替換實體單元中的第i-k個實體頁面,其中k為大於或等於1正整數。
  12. 如申請專利範圍第11項所述之記憶體控制器,其中當該第i-k個實體頁面發生資料錯誤時,該記憶體管理電路讀取該第i個實體頁面以識別被寫入至該第i-k個實體頁面的該第二寫入資料是對應於該第二邏輯頁面,並且在該主機系統欲讀取該第二邏輯頁面時,該記憶 體管理電路回應一資料錯誤訊息至該主機系統。
  13. 如申請專利範圍第9項所述之記憶體控制器,其中該可複寫式非揮發性記憶體晶片包括多個記憶體模組,而該第二位址存取資訊為一第二寫入資料所對應的一第二邏輯頁面,該第二寫入資料為被寫入至該替換實體單元中的第j個實體頁面,該第i個實體頁面與該第j個實體頁面屬於該些記憶體模組中的不同記憶體模組,且該第i個實體頁面與該第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
  14. 如申請專利範圍第13項所述之記憶體控制器,其中當該第j個實體頁面發生資料錯誤時,該記憶體管理電路讀取該第i個實體頁面以識別被寫入至該第j個實體頁面的該第二寫入資料是對應於該第二邏輯頁面,並且在該主機系統欲讀取該第二邏輯頁面時,該記憶體管理電路回應一資料錯誤訊息至該主機系統。
  15. 如申請專利範圍第9項所述之記憶體控制器,其中該記憶體管理電路透過該主機系統介面接收來自該主機系統的一清除指令,自該替換實體單元取得尚未被寫入資料的一特定實體頁面,將一結束標記寫入至該特定實體頁面,以及將在接收到該清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至該特定實體頁面。
  16. 如申請專利範圍第9項所述之記憶體控制器,其中各該些實體頁面具有一資料位元區與一冗餘位元區,而該第一寫入資料被寫入至該第i個實體頁面的該資料位元 區,且該第一位址存取資訊與該第二位址存取資訊被寫入至該第i個實體頁面的該冗餘位元區。
  17. 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體晶片,包括多個實體單元,且各該些實體單元包括多個實體頁面;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體晶片與該連接器,該記憶體控制器用以配置多個邏輯單元以映射部分的該些實體單元,其中各該些邏輯單元包括多個邏輯頁面,該記憶體控制器更用以透過該連接器接收來自該主機系統的一第一寫入資料,並將該第一寫入資料寫入至從該些實體單元所提取之一替換實體單元中的第i個實體頁面,以及將該第一寫入資料所對應的一第一位址存取資訊,以及一第二位址存取資訊寫入至該第i個實體頁面,其中i為正整數,並且在該記憶體儲存裝置重新啟動後,掃描各該些實體頁面以重建紀錄該些邏輯頁面與該些實體頁面之間映射的參考表格。
  18. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該第一位址存取資訊包括該第一寫入資料所屬的邏輯區域、該第一寫入資料所屬的邏輯區塊以及該第一寫入資料所屬的邏輯頁面的至少其中之一,且該第二位址存取資訊包括一第二寫入資料所屬的邏輯區域、該第二寫入資料所屬的邏輯區塊以及該第二寫入資料所屬的邏輯頁面 的至少其中之一。
  19. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該第二位址存取資訊為一第二寫入資料所對應的一第二邏輯頁面,且該第二寫入資料為被寫入至該替換實體單元中的第i-k個實體頁面,其中k為大於或等於1正整數。
  20. 如申請專利範圍第19項所述之記憶體儲存裝置,其中當該第i-k個實體頁面發生資料錯誤時,該記憶體控制器讀取該第i個實體頁面以識別被寫入至該第i-k個實體頁面的該第二寫入資料是對應於該第二邏輯頁面,並且在該主機系統欲讀取該第二邏輯頁面時,該記憶體控制器回應一資料錯誤訊息至該主機系統。
  21. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該可複寫式非揮發性記憶體晶片包括多個記憶體模組,而該第二位址存取資訊為一第二寫入資料所對應的一第二邏輯頁面,該第二寫入資料為被寫入至該替換實體單元中的第j個實體頁面,該第i個實體頁面與該第j個實體頁面屬於該些記憶體模組中的不同記憶體模組,且該第i個實體頁面與該第j個實體頁面在個別所屬的記憶體模組中具有相同的實體頁面順序,其中j為正整數。
  22. 如申請專利範圍第21項所述之記憶體儲存裝置,其中當該第j個實體頁面發生資料錯誤時,該記憶體控制器讀取該第i個實體頁面以識別被寫入至該第j個實體頁面的該第二寫入資料是對應於該第二邏輯頁面, 並且在該主機系統欲讀取該第二邏輯頁面時,該記憶體控制器回應一資料錯誤訊息至該主機系統。
  23. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器透過該連接器接收來自該主機系統的一清除指令,自該替換實體單元取得尚未被寫入資料的一特定實體頁面,將一結束標記寫入至該特定實體頁面,以及將在接收到該清除指令之前的最後一個寫入資料所對應的位址存取資訊寫入至該特定實體頁面。
  24. 如申請專利範圍第17項所述之記憶體儲存裝置,其中各該些實體頁面具有一資料位元區與一冗餘位元區,而該第一寫入資料被寫入至該第i個實體頁面的該資料位元區,且該第一位址存取資訊與該第二位址存取資訊被寫入至該第i個實體頁面的該冗餘位元區。
TW100110770A 2011-03-29 2011-03-29 記憶體儲存裝置、記憶體控制器與資料寫入方法 TWI444825B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100110770A TWI444825B (zh) 2011-03-29 2011-03-29 記憶體儲存裝置、記憶體控制器與資料寫入方法
US13/111,959 US8898372B2 (en) 2011-03-29 2011-05-20 Memory storage device, memory controller, and data writing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100110770A TWI444825B (zh) 2011-03-29 2011-03-29 記憶體儲存裝置、記憶體控制器與資料寫入方法

Publications (2)

Publication Number Publication Date
TW201239624A TW201239624A (en) 2012-10-01
TWI444825B true TWI444825B (zh) 2014-07-11

Family

ID=46928854

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100110770A TWI444825B (zh) 2011-03-29 2011-03-29 記憶體儲存裝置、記憶體控制器與資料寫入方法

Country Status (2)

Country Link
US (1) US8898372B2 (zh)
TW (1) TWI444825B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI459198B (zh) * 2011-07-08 2014-11-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
US9213632B1 (en) * 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US9092353B1 (en) * 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
TWI566253B (zh) * 2015-09-02 2017-01-11 慧榮科技股份有限公司 用來管理一記憶裝置之方法以及記憶裝置與控制器
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
TWI611410B (zh) * 2016-05-13 2018-01-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN107402716B (zh) * 2016-05-20 2021-06-08 合肥兆芯电子有限公司 数据写入方法、存储器控制电路单元与存储器储存装置
TWI607457B (zh) * 2016-06-28 2017-12-01 光寶電子(廣州)有限公司 固態儲存裝置及其資料寫入方法
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
TWI698874B (zh) * 2018-08-31 2020-07-11 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
CN110888588B (zh) * 2018-09-07 2023-09-01 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置
CN113495675B (zh) * 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
CN113495671B (zh) 2020-04-01 2023-10-17 长鑫存储技术有限公司 读写方法及存储器装置
EP3964941B1 (en) 2020-04-01 2024-02-28 Changxin Memory Technologies, Inc. Read-write method and memory device
EP3964940A4 (en) 2020-04-01 2022-08-17 Changxin Memory Technologies, Inc. READ/WRITE METHOD AND STORAGE DEVICE
EP3936996A4 (en) 2020-04-01 2022-07-06 Changxin Memory Technologies, Inc. READ-WRITE METHOD AND STORAGE DEVICE
CN113495672B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
EP3985494B1 (en) 2020-04-01 2024-01-17 Changxin Memory Technologies, Inc. Read-write method and memory device
CN113495674B (zh) 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
US11550727B2 (en) 2020-06-18 2023-01-10 Micron Technology, Inc. Zone-aware memory management in memory subsystems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI381386B (zh) 2008-08-04 2013-01-01 Phison Electronics Corp 資料管理方法及其儲存裝置與其控制器
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
CN101676882B (zh) 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag

Also Published As

Publication number Publication date
TW201239624A (en) 2012-10-01
US8898372B2 (en) 2014-11-25
US20120254511A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
TWI444825B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
TWI526830B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI479492B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI443513B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI479505B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TWI420308B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI489466B (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
TWI451439B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI479315B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TW201709069A (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TW201740385A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
JP2007011872A (ja) メモリカードとその制御方法
TWI467364B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
US8966161B2 (en) Memory storage device and restoring method thereof
CN102737716B (zh) 存储器储存装置、存储器控制器与数据写入方法
US20130067141A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20120324205A1 (en) Memory management table processing method, memory controller, and memory storage apparatus
TWI553654B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TW201532053A (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置