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

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

Info

Publication number
TW201447577A
TW201447577A TW102121184A TW102121184A TW201447577A TW 201447577 A TW201447577 A TW 201447577A TW 102121184 A TW102121184 A TW 102121184A TW 102121184 A TW102121184 A TW 102121184A TW 201447577 A TW201447577 A TW 201447577A
Authority
TW
Taiwan
Prior art keywords
data
sub
memory
physical
strings
Prior art date
Application number
TW102121184A
Other languages
English (en)
Other versions
TWI516927B (zh
Inventor
Kheng-Chong Tan
Ming-Jen Liang
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 TW102121184A priority Critical patent/TWI516927B/zh
Priority to US13/958,627 priority patent/US9201785B2/en
Publication of TW201447577A publication Critical patent/TW201447577A/zh
Application granted granted Critical
Publication of TWI516927B publication Critical patent/TWI516927B/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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

一種用於可複寫式非揮發性記憶體模組的資料寫入方法。本方法包括:從主機系統中接收寫入指令與對應此寫入指令的資料並且將此資料暫存至緩衝記憶體中,其中此資料包括多個子資料串。本方法還包括從緩衝記憶體中將此些子資料串傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串至可複寫式非揮發性記憶體模組的至少一實體抹除單元中;根據此些子資料串之中至少一部分子資料串來產生同位資訊;以及將此同位資訊儲存在緩衝記憶體中並且從緩衝記憶體中移除此資料。基此,本方法可有效地使用緩衝記憶體的空間。

Description

資料寫入方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種用於可複寫式非揮發性記憶體的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,促使消費者對儲存媒體的需求也急遽增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、低耗電、體積小、無機械結構且讀寫速度快等特性,最適合用在可攜式電子產品,例如手機、個人數位助理與筆記型電腦等。因此,近年來,快閃記憶體產業成為電子產業中相當熱門的一環。
傳統上,快閃記憶體儲存裝置之快閃記憶體控制器配置有緩衝記憶體,並且從主機系統接收到寫入指令與多筆資料時,快閃記憶體控制器會先將此些資料暫存於緩衝記憶體,然後再依據實體頁面排列順序依序將資料寫入至對應的實體頁面中。然而,在同一條字元線上的實體頁面彼此會有耦合關係,因此,若 一個實體頁面發生程式化錯誤,與此實體頁面具耦合關係的另一個實體頁面上的資料可能會遺失。例如,一個實體區塊包括多個實體頁面組,且每一實體頁面組包括一個下實體頁面與一個上實體頁面。當一個實體頁面組的上實體頁面發生實體程式化錯誤時,其下實體頁面上的資料亦可能會遺失。特別是,根據快閃記憶體所規範的實體頁面程式化順序,可能是連續對數個下實體頁面進行程式化後才對數個上實體頁面進行程式。因此,在執行一個寫入指令(以下稱為第一寫入指令)後,經常會發生某些實體頁面組中僅下實體頁面被寫入資料的暫態,並且此些某些實體頁面組中的上實體頁面可能在執行下一個寫入指令(以下稱為第二寫入指令)才會被寫入資料。在此例子中,倘若執行第二寫入指令已將資料寫入上實體頁面時發生程式化錯誤,執行第一寫入指令所寫入至下實體頁面的資料可能亦遺失。為了避免資料遺失,快閃記憶體控制器會在緩衝記憶體中保留此些資料,直到確保資料不會因其他實體頁面之程式化而遺失才會從緩衝記憶體中移除。基此,現有快閃記憶體儲存系統需配置有大容量的緩衝記憶體,造成快閃記憶體儲存系統的體積無法縮小,且製造成本增加。特別是,若在配置多顆快閃記憶體晶粒的記憶體儲存系統中,需要更多的緩衝記憶體容量來暫存此些主機系統所寫入的資料。
本發明提供一種用於可複寫式非揮發性記憶體模組的資 料寫入方法、記憶體控制器與記憶體儲存裝置,其能夠減少在執行寫入指令時所需的緩衝記憶體空間,同時避免資料遺失。
本發明範例實施例提出一種用於可複寫式非揮發性記憶體模組的資料寫入方法,其中此可複寫式非揮發性記憶體模組具有至少一記憶體晶粒,此至少一記憶體晶粒包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元。本資料寫入方法包括:從主機系統中接收第一寫入指令與對應此寫入指令的第一資料並且將第一資料暫存至緩衝記憶體中,其中此第一資料包括多個子資料串。本資料寫入方法還包括從緩衝記憶體中將此些子資料串傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串至至少一第一實體抹除單元中;根據此些子資料串之中至少一部分子資料串來產生同位資訊;以及將此同位資訊儲存在緩衝記憶體中並且從緩衝記憶體中移除此第一資料。
在本發明的一範例實施例中,上述根據此些子資料串之中至少一部分子資料串來產生上述同位資訊的步驟包括:依據所有的子資料串來產生上述同位資訊。
在本發明的一範例實施例中,上述每一實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至下實體程式化單元的速度快於寫入資料至上實體程式化單元。並且,上述根據此些子資料串之中至少一部分子資料串來產生上述同位資訊的步驟包括:根據儲存此些子資料串的實體程式化單元識別此些子資料串之中的至少一第一子資料串 以及根據此至少一第一子資料串產生該同位資訊,其中此至少一第一子資料串被儲存在此些下實體程式化單元之中的至少一第一下實體程式化單元並且對應此至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料。
在本發明的一範例實施例中,上述資料寫入方法,更包括:在將上述同位資訊儲存在緩衝記憶體中並且從緩衝記憶體中移除上述第一資料之後,從主機系統接收第二寫入指令與對應第二寫入指令的第二資料。
在本發明的一範例實施例中,上述資料寫入方法更包括:判斷從緩衝記憶體中將第二資料寫入至上述至少一第一實體抹除單元中時是否發生程式化錯誤;以及倘若發生程式化錯誤時,使用儲存在緩衝記憶體中的同位資訊解碼儲存在上述至少一第一實體抹除單元中的至少一部分子資料串來校正上述至少一部分子資料串中的至少一錯誤子資料串。
在本發明的一範例實施例中,上述資料寫入方法更包括:倘若從緩衝記憶體中將第二資料寫入至第一實體抹除單元中時未發生該程式化錯誤時,從緩衝記憶體中移除上述同位資訊。
在本發明的一範例實施例中,上述資料寫入方法更包括:根據至少一部分的第二資料產生另一同位資訊;以及將此另一同位資訊儲存至緩衝記憶體中並刪除第二資料。
在本發明的一範例實施例中,其中從緩衝記憶體中將此些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入此些子 資料串至此些實體抹除單元之中的至少一第一實體抹除單元中的步驟包括:分別地為此些子資料串產生多個錯誤檢查與校正碼;以及將此些子資料串與分別地對應此些子資料串的錯誤檢查與校正碼傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串與分別地對應此些子資料串的錯誤檢查與校正碼至上述至少一第一實體抹除單元的實體程式化單元中。
在本發明的一範例實施例中,上述根據此些子資料串之中至少一部分子資料串來產生同位資訊的步驟包括:每當將此些子資料串之中的其中一個子資料串寫入至第一實體抹除單元時,根據此其中一個子資料串與先前同位資訊來產生此同位資訊。
此外,本發明範例實施例提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組。本記憶體控制器包括主機介面、記憶體介面、緩衝記憶體、同位資訊編碼與解碼電路以及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面,用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有至少一記憶體晶粒,此記憶體晶粒包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元。記憶體管理電路耦接至主機介面、記憶體介面、緩衝記憶體與同位資訊編碼與解碼電路。記憶體管理電路用以從主機系統中接收第一寫入指令與對應此寫入指令的第一資料並且將第一資料暫存至緩衝記憶體中,其中第一資料包括多個子資料串。此外,記憶體管理電路更用以從緩衝記憶體中將此些子資料串傳送至可複寫式非揮 發性記憶體模組以寫入此些子資料串至此些實體抹除單元之中的至少一第一實體抹除單元中。另外,同位資訊編碼與解碼電路用以根據此些子資料串之中至少一部分子資料串來產生同位資訊,並且記憶體管理電路更用以將此同位資訊儲存在緩衝記憶體中並且該緩衝記憶體中移除上述第一資料。
在本發明的一範例實施例中,在上述根據此些子資料串之中至少一部分子資料串來產生同位資訊的運作中,上述同位資訊編碼與解碼電路依據所有的子資料串來產生上述同位資訊。
在本發明的一範例實施例中,上述每一實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至下實體程式化單元的速度快於寫入資料至上實體程式化單元。並且,在根據此些子資料串之中至少一部分子資料串來產生上述同位資訊的運作中,記憶體管理電路根據儲存此些子資料串的實體程式化單元識別此些子資料串之中的至少一第一子資料串並且同位資訊編碼與解碼電路根據此第一子資料串產生同位資訊,其中第一子資料串被儲存在下實體程式化單元之中的至少一第一下實體程式化單元並且對應此至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料。
在本發明的一範例實施例中,上述記憶體管理路更用以在將上述同位資訊儲存在緩衝記憶體中並且從緩衝記憶體中移除上述第一資料之後,從主機系統接收第二寫入指令與對應第二寫入指令的第二資料。
在本發明的一範例實施例中,上述記憶體管理電路根據至少一部分的第二資料產生另一同位資訊並將此另一同位資訊儲存至緩衝記憶體中並刪除第二資料。
在本發明的一範例實施例中,在上述根據此些子資料串之中至少一部分子資料串來產生同位資訊的運作中,每當將此些子資料串之中的其中一個子資料串寫入至第一實體抹除單元時,上述同位資訊編碼與解碼電路根據此其中一個子資料串與先前同位資訊來產生此同位資訊。
再者,本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有至少一記憶體晶粒,此至少一記憶體晶粒包括多個實體抹除單元,且每一實體抹除單元包括多個實體程式化單元。記憶體控制器,具有緩衝記憶體且耦接至上述連接器與可複寫式非揮發性記憶體模組。記憶體控制器用以從主機系統中接收第一寫入指令與對應此寫入指令的第一資料並且將第一資料暫存至緩衝記憶體中,其中第一資料包括多個子資料串。此外,記憶體控制器更用以從緩衝記憶體中將此些子資料串傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串至此些實體抹除單元之中的至少一第一實體抹除單元中。另外,記憶體控制器用以根據此些子資料串之中至少一部分子資料串來產生同位資訊,將此同位資訊儲存在緩衝記憶體中並且該緩衝記憶體中移除上述第一資料。
在本發明的一範例實施例中,在上述根據此些子資料串之中至少一部分子資料串來產生同位資訊的運作中,上述記憶體控制器依據所有的子資料串來產生上述同位資訊。
在本發明的一範例實施例中,上述每一實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至下實體程式化單元的速度快於寫入資料至上實體程式化單元。並且,在根據此些子資料串之中至少一部分子資料串來產生上述同位資訊的運作中,記憶體控制器根據儲存此些子資料串的實體程式化單元識別此些子資料串之中的至少一第一子資料串並且根據此第一子資料串產生同位資訊,其中第一子資料串被儲存在下實體程式化單元之中的至少一第一下實體程式化單元並且對應此至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料。
在本發明的一範例實施例中,上述記憶體控制器更用以在將上述同位資訊儲存在緩衝記憶體中並且從緩衝記憶體中移除上述第一資料之後,從主機系統接收第二寫入指令與對應第二寫入指令的第二資料。
在本發明的一範例實施例中,上述記憶體控制器更用以判斷從緩衝記憶體中將第二資料寫入至上述第一實體抹除單元中時是否發生程式化錯誤。倘若發生程式化錯誤時,記憶體控制器使用儲存在緩衝記憶體中的同位資訊來解碼儲存在上述至少一第一實體抹除單元中的至少一部分子資料串以校正此至少一部分子 資料串中的至少一錯誤子資料串。
在本發明的一範例實施例中,倘若從緩衝記憶體中將第二資料寫入至第一實體抹除單元中時未發生程式化錯誤時,記憶體控制器更用以從緩衝記憶體中移除上述同位資訊。
在本發明的一範例實施例中,上述記憶體控制器根據至少一部分的第二資料產生另一同位資訊並將此另一同位資訊儲存至緩衝記憶體中並刪除第二資料。
在本發明的一範例實施例中,上述記憶體控制器更用以分別地為此些子資料串產生多個錯誤檢查與校正碼。並且,在從緩衝記憶體中將此些子資料串傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串至此些實體抹除單元之中的至少一第一實體抹除單元中的運作中,上述記憶體控制器將此些子資料串與分別地對應此些子資料串的錯誤檢查與校正碼傳送至可複寫式非揮發性記憶體模組以寫入此些子資料串與分別地對應此些子資料串的錯誤檢查與校正碼至上述至少一第一實體抹除單元的實體程式化單元中。
在本發明的一範例實施例中,在上述根據此些子資料串之中至少一部分子資料串來產生同位資訊的運作中,每當將此些子資料串之中的其中一個子資料串寫入至第一實體抹除單元時,上述記憶體控制器根據此其中一個子資料串與先前同位資訊來產生此同位資訊。
基於上述,本範例實施例的資料寫入方法、記憶體控制 器與記憶體儲存裝置能夠在使用較少的緩衝記憶體空間下執行寫入指令同時確保資料的正確性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧錯誤檢查與校正電路
212‧‧‧同位資訊編碼與解碼電路
252‧‧‧記憶胞陣列
254‧‧‧控制電路
256‧‧‧資料輸入/輸出緩衝器
256a‧‧‧第一緩衝區
256b‧‧‧第二緩衝區
304(0)~304(R)‧‧‧實體抹除單元
701(0)~701(255)‧‧‧實體程式化單元
400‧‧‧記憶體晶粒
402‧‧‧資料區
404‧‧‧備用區
406‧‧‧系統區
408‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯位址
DATA1、DATA2‧‧‧資料
P1、P2‧‧‧同位資訊
SDATA1、SDATA2、SDATA3、SDATA4、SDATA5、SDATA6、SDAT7、SDATA8、SDATA9、SDATA10、SDATA11、SDATA12‧‧‧子資料串
ECC1、ECC2、ECC3、ECC4、ECC5、ECC6、ECC7、ECC8、ECC9、ECC10、ECC11、ECC12‧‧‧錯誤檢查與校正碼
S1601、S1603、S1605、S1607、S1609、S1611、S1613‧‧‧資料寫入方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示根據本範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖6是根據本發明一範例實施例所繪示的可複寫式非揮發性記憶體模組的示意圖。
圖7是根據本發明一範例實施例所繪示的實體抹除單元中實體程式化單元的佈局示意圖。
圖8與圖9是根據一範例實施例所繪示之管理可複寫式非揮 發性記憶體模組的範例示意圖。
圖10~12是根據本發明一範例實施例所繪示的寫入資料至實體程式化單元的範例。
圖13~15是根據本發明一範例實施例所繪示的寫入資料至實體程式化單元的另一範例。
圖16是根據一範例實施例所繪示的資料寫入的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1252。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳 輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示根據本範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須 瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。必須瞭解的是,圖5所示之記憶體控制器的結構僅為一範例,本發明不以此為限。
請參照圖5,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206、緩衝記憶體208、錯誤檢查與校正電路210與同位資訊編碼與解碼電路212。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I介面標準、UHS-II介面標準、MS標準、 MMC標準、eMMC介面標準、UFS介面標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
錯誤檢查與校正電路210是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。在本範例實施例中,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路210會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路210會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。具體來說,錯誤檢查與校正電路210會被設計能夠校正一數目的錯誤位元(以下稱為最大可校正錯誤位元數)。例如,最大可校正錯誤位元數為24。倘若發 生在所讀取之資料的錯誤位元的數目非大於24個時,錯誤檢查與校正電路210就能夠依據錯誤檢查與校正碼將錯誤位元校正回正確的值。反之,錯誤檢查與校正電路210就會回報錯誤校正失敗且記憶體管理電路202會將指示資料已遺失的訊息傳送給主機系統1000。
同位資訊編碼與解碼電路212是耦接至記憶體管理電路202並且用以根據記憶體管理電路202的指示編碼暫存於緩衝記憶體208中欲寫入至多個實體程式化單元的多筆資料(即,主機系統1000欲寫入的資料)以產生同位資訊。此外,同位資訊編碼與解碼電路212亦可根據記憶體管理電路202的指示以同位資訊解碼儲存在多個實體程式化單元的資料以修正資料內的錯誤資料。也就是說,倘若此些實體程式化單元的其中一個實體程式化單元上的資料出現錯誤資料時,同位資訊編碼與解碼電路212能夠依據所產生的同位資訊來解碼此些實體程式化單元上的資料以修正錯誤資料。在此,同位資訊編碼與解碼電路212所產生的同位資訊可以是奇偶校正碼(parity checking code)、通道編碼(channel coding)或是其他類型。例如,漢明碼(hamming code)、低密度奇偶檢查碼(low density parity check code,LDPC code)、渦旋碼(turbo code)或里德-所羅門碼(Reed-solomon code,RS code)。例如,若資料與同位資訊的長度比例為m:n,則表示m筆資料會對應至n筆同位資訊,其中m與n為正整數並且在資料錯誤筆數小於n的情況下錯誤資料都可藉由同位資訊來修正。一般來說,正整數m會 大於正整數n,但本發明並不在此限。並且,本發明也不限制正整數m與正整數n的值。
圖6是根據本發明一範例實施例所繪示的可複寫式非揮發性記憶體模組106的示意圖。
可複寫式非揮發性記憶體模組106包括記憶體晶粒400。記憶體晶粒400包括記憶胞陣列252、控制電路254與資料輸入/輸出緩衝器256。
記憶胞陣列252包括實體抹除單元304(0)~304(R)。每一實體抹除單元分別具有至少一個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元亦可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。
具體來說,依據每個記憶胞可儲存的位元數,NAND型快閃記憶體可區分為單階儲存單元(Single Level Cell,SLC)NAND型快閃記憶體、多階儲存單元(Multi Level Cell,MLC)NAND型快閃記憶體與複數階儲存單元(Trinary Level Cell,TLC)NAND 型快閃記憶體,其中SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料(即,”1”與”0”),MLC NAND型快閃記憶體的每個記憶胞可儲存2個位元的資料並且TLC NAND型快閃記憶體的每個記憶胞可儲存3個位元的資料。
在NAND型快閃記憶體中,實體程式化單元是由排列在同一條字元線上的數個記憶胞所組成。由於SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料,因此,在SLC NAND型快閃記憶體中,排列在同一條字元線上的數個記憶胞是對應一個實體程式化單元。
相對於SLC NAND型快閃記憶體來說,MLC NAND型快閃記憶體的每個記憶胞的浮動閘儲存層可儲存2個位元的資料,其中每一個儲存狀態(即,”11”、”10”、”01”與”00”)包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB)。例如,儲存狀態中從左側算起之第1個位元的值為LSB,而從左側算起之第2個位元的值為MSB。因此,排列在同一條字元線上的數個記憶胞可組成2個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。特別是,下實體程式化單元的寫入速度會快於上實體程式化單元的寫入速度,並且當程式化上實體程式化單元發生錯誤時,下實體程式化單元所儲存之資料亦可能因此遺失。
類似地,在TLC NAND型快閃記憶體中,每個記憶胞可儲存3個位元的資料,其中每一個儲存狀態(即,”111”、”110”、”101”、”100”、”011”、”010”、”001”與”000”)包括左側算起之第1個位元的LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的MSB。因此,排列在同一條字元線上的數個記憶胞可組成3個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,由此些記憶胞之CSB所組成的實體程式化單元稱為中實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。同樣地,相對於中實體程式化單元與上實體程式化單元來說,下實體程式化單元具有較高的穩定度並且寫入資料至下實體程式化單元的速度快於寫入資料至中實體程式化單元與上實體程式化單元的速度。
每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實 體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階儲存單元(Multi Level Cell,MLC)反及(NAND)型快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階儲存單元(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階儲存單元(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
控制電路254用以根據來自於記憶體控制器104的指令將資料程式化至記憶胞陣列252或從記憶胞陣列252中讀取資料。
資料輸入/輸出緩衝器256包括第一緩衝區256a與第二緩衝區256b。第一緩衝區256a與第二緩衝區256b彼此獨立,且可分別具有相同的容量。例如,第一緩衝區256a與第二緩衝區256b的容量皆為一個實體程式化單元的容量,用以暫存欲寫入至記憶胞陣列202的資料或從記憶胞陣列202中所讀取的資料。
在可複寫式非揮發性記憶體模組106中寫入資料的過程包括資料傳輸以及資料程式化兩個部分。在資料傳輸的部分,記憶體控制器104(或記憶體管理電路202)會將欲寫入的頁資料傳輸至第一緩衝區256a,並且之後,欲寫入的頁資料會被搬移至第二緩衝區256b。而在資料程式化的部分,欲寫入的頁資料會從第二緩衝區256b中程式化至記憶胞陣列252。特別是,當欲寫入的 頁資料從第一緩衝區256a搬移至第二緩衝區256b之後,記憶體控制器104(或記憶體管理電路202)就會從可複寫式非揮發性記憶體模組106中接收到完成寫入指令的確認訊息,而可再對可複寫式非揮發性記憶體模組106傳輸(或下達)下一個指令。在此,第一緩衝區256a亦可稱為資料快取(data cache)區,而第二緩衝區256b亦可稱為頁面緩衝(page buffer)區,並且透過第二緩衝區256b的寫入運作可稱為快取程式化(Cache Program)運作。
值得一提的是,在本發明範例實施例中,記憶體控制器104(或記憶體管理電路202)亦可指示可複寫式非揮發性記憶體模組106不使用第二緩衝區256b來寫入資料。例如,在資料輸入/輸出緩衝器256未配置第二緩衝區256b或者基於某些因素而不使用第二緩衝區256b的例子中,可複寫式非揮發性記憶體模組106也可根據記憶體控制器104(或記憶體管理電路202)的指令直接將欲寫入的頁資料從第一緩衝區256a中程式化至記憶胞陣列252中。在此例子中,記憶體管理電路202必須等到可複寫式非揮發性記憶體模組106將頁資料從第一緩衝區256a中程式化至記憶胞陣列252之後才會接收到完成寫入指令的確認訊息。
必須了解的是,本發明不限於圖6的範例,並且在另一範例實施例中,資料輸入/輸出緩衝器256亦可只具有一個緩衝區或大於2個緩衝區。
圖7是根據本發明一範例實施例所繪示的實體抹除單元中實體程式化單元的佈局示意圖。
請參照圖7,在此以MLC NAND快閃記憶體的實體抹除單元為例進行說明並且假設每個實體抹除單元包括256個實體程式化單元。實體抹除單元304(0)包括實體程式化單元701(0)~701(255)。實體程式化單元701(0)與實體程式化單元701(4)位於同一條字元線上,實體程式化單元701(1)與實體程式化單元701(5)位於同一條字元線上,實體程式化單元701(2)與實體程式化單元701(8)位於同一條字元線上,實體程式化單元701(3)與實體程式化單元701(9)位於同一條字元線上,實體程式化單元701(6)與實體程式化單元701(12)位於同一條字元線上,實體程式化單元701(7)與實體程式化單元701(13)位於同一條字元線上,實體程式化單元701(10)與實體程式化單元701(16)位於同一條字元線上,實體程式化單元701(11)與實體程式化單元701(17)位於同一條字元線上,並且以此類推。在此,實體程式化單元701(0)、701(1)、701(2)、701(3)、701(6)、701(7)、710(10)、710(11)、701(14)、701(15)、...、701(250)與701(251)屬於下實體程式單元,並且實體程式化單元701(4)、701(5)、701(8)、701(9)、701(12)、701(13)、710(16)、710(17)、...、701(252)、701(253)、701(254)與701(255)屬於上實體程式單元。必須了解的是,圖7所示的配置方式僅為範例,本發明不限於此。
圖8與圖9是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組 106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖8,記憶體控制器104(或記憶體管理電路202)會將可複寫式非揮發性記憶體模組106的實體抹除單元304(0)~304(R)邏輯地分組為(或指派至)資料區(data area)402、備用區(spare area)404、系統區(system area)406與取代區(replacement area)408。
邏輯上屬於資料區402與備用區404的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區402的實體抹除單元(亦稱為資料實體抹除單元)是被視為已儲存資料的實體抹除單元,而備用區404的實體抹除單元(亦稱為備用實體抹除單元)是用以寫入新資料的實體抹除單元。例如,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體控制器104(或記憶體管理電路202)會從備用區404中提取實體抹除單元,整理欲寫入之資料並且將資料寫入至所提取的實體抹除單元中。
邏輯上屬於系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單 元數、映射表等。特別是,當實體抹除單元備用於寫入系統資料時,記憶體控制器104(或記憶體管理電路202)會在此實體抹除單元的實體程式化單元的冗餘位元區中記錄一個系統實體抹除單元標記,以識別此實體抹除單元是被用於儲存系統資料的系統實體抹除單元。值得一提的是,由於對於記憶體儲存裝置100來說,系統資料是相當重要的資料,因此,在可複寫式非揮發性記憶體模組106為MLC NAND型快閃記憶體模組或TLC NAND型快閃記憶體模組的範例實施例中,記憶體控制器104(或記憶體管理電路202)僅會使用系統實體抹除單元的下實體程式化單元來儲存系統資料,以確保資料的可靠度。
邏輯上屬於取代區408中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組106於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區402、備用區404或系統區406中的實體抹除單元損毀時,預留於取代區408中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad block))。因此,倘若取代區408中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104(或記憶體管理電路202)會從取代區408中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區408中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區402、備用區404、系統區406與取代區408之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區402、備用區404、系統區406與取代區408的分組關係會動態地變動。例如,當備用區404中的實體抹除單元損壞而被取代區408的實體抹除單元取代時,則原本取代區408的實體抹除單元會被關聯至備用區404。
請參照圖9,如上所述,資料區402與備用區404的實體抹除單元是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會配置邏輯位址LBA(0)~LBA(H)給主機系統1000以進行資料的存取。每個邏輯位址是由數個扇區(sector)所組成。例如,在本範例實施例中,每一邏輯位址是由4個扇區所組成。但本發明不限於此,在本發明另一範例實施例中,邏輯位址亦可是由8個扇區所組成或是由16個扇區所組成。在本範例實施例中,一個邏輯位址的大小是相同於一個實體程式化單元的大小,並且資料區402與備用區404的實體抹除單元的實體程式化單元的數目是大於邏輯位址的數目。
例如,當記憶體控制器104(或記憶體管理電路202)開始使用實體抹除單元304(0)來儲存主機系統1000欲寫入的資料時,不管主機系統1000是寫入那個邏輯位址,記憶體控制器104(或記憶體管理電路202)會將資料寫入至實體抹除單元304(0)的實體程 式化單元;而當記憶體控制器104(或記憶體管理電路202)開始使用實體抹除單元304(1)來儲存主機系統1000欲寫入的資料時,不管主機系統1000是寫入那個邏輯位址,記憶體控制器104(或記憶體管理電路202)會將資料寫入至實體抹除單元304(1)的實體程式化單元中。也就是說,當寫入主機系統1000欲寫入的資料時,記憶體控制器104(或記憶體管理電路202)會使用一個實體抹除單元內的實體程式化單元來寫入資料,並且當此實體抹除單元內的實體程式化單元被使用完後才會再選擇另一個無儲存資料的實體抹除單元,並且在新選擇之實體抹除單元的實體程式化單元中繼續寫入資料。
為了識別每個邏輯位址的資料被儲存在那個實體程式化單元,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會記錄邏輯位址與實體程式化單元之間的映射關係。並且,當主機系統1000欲在扇區中存取資料時,記憶體控制器104(或記憶體管理電路202)會確認此扇區所屬的邏輯位址,並且在此邏輯位址所映射的實體程式化單元中來存取資料。例如,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106的系統區406中儲存邏輯位址映射表來記錄每一邏輯位址所映射的實體程式化單元,並且當欲存取資料時,記憶體控制器104(或記憶體管理電路202)會將邏輯位址映射表載入至緩衝記憶體208來維護。
圖10~12是根據本發明一範例實施例所繪示的寫入資料 至實體程式化單元的範例。
請參照圖10~12,倘若從主機系統1000接收到一寫入指令(以下稱為第一寫入指令)及欲寫入至邏輯位址LBA(0)~LBA(3)的資料DATA1時,記憶體控制器104(或記憶體管理電路202)會將資料DATA1暫存至緩衝記憶體208,並且將資料DATA1根據實體程式化單元的大小整理成子資料串SDATA1、SDATA2、SDATA3與SDATA4。然後,記憶體控制器104(或錯誤檢查與校正電路210)會分別地為SDATA1、SDATA2、SDATA3與SDATA4產生錯誤檢查與校正碼ECC1、ECC2、ECC3、與ECC4。之後,記憶體控制器104(或記憶體管理電路202)會選取一個實體抹除單元(例如,實體程式化單元304(0))並且將子資料串SDATA1、SDATA2、SDATA3與SDATA4及錯誤檢查與校正碼ECC1、ECC2、ECC3、與ECC4分別且依序地程式化至實體程式化單元304(0)的實體程式化單元701(0)、701(1)、701(2)與701(3)。特別是,記憶體控制器104(或同位資訊編碼與解碼電路212)會根據子資料串SDATA1、SDATA2、SDATA3與SDATA4來產生同位資訊P1。然後,記憶體控制器104(或記憶體管理電路202)會將同位資訊P1暫存至緩衝記憶體208並且刪除暫存在緩衝記憶體208中的子資料串SDATA1、SDATA2、SDATA3與SDATA4。具體來說,由於儲存子資料串SDATA1、SDATA2、SDATA3與SDATA4的實體程式化單元701(0)、701(1)、701(2)與701(3)皆為下實體程式化單元,並且對應下實體程式化單元701(0)、701(1)、701(2)與701(3)的上 實體程式化單元710(4)、710(5)、710(8)、710(9)尚未被寫入資料。因此,若之後對對應下實體程式化單元701(0)、701(1)、701(2)與701(3)的上實體程式化單元710(4)、710(5)、710(8)、710(9)執行程式化並發生程式化錯誤時,儲存在下實體程式化單元701(0)、701(1)、701(2)與701(3)的資料可能會遺失。基此,在緩衝記憶體208中儲存對應子資料串SDATA1、SDATA2、SDATA3與SDATA4的同位資訊以取代完成地暫存子資料串SDATA1、SDATA2、SDATA3與SDATA4,可在減少所需的緩衝記憶體208的空間下,達到保護資料的效果。
圖13~15是根據本發明一範例實施例所繪示的寫入資料至實體程式化單元的另一範例。
請參照圖13~15,接續圖10~12,倘若再從主機系統1000接收到另一寫入指令(以下稱為第二寫入指令)及欲寫入至邏輯位址LBA(4)~LBA(11)的資料DATA2時,記憶體控制器104(或記憶體管理電路202)會將資料暫存至緩衝記憶體208,並且將資料DATA2根據實體程式化單元的大小整理成子資料串SDATA5、SDATA6、SDATA7、SDATA8、SDATA9、SDATA10、SDATA11與SDATA12。然後,記憶體控制器104(或錯誤檢查與校正電路210)會分別地為子資料串SDATA5、SDATA6、SDATA7、SDATA8、SDATA9、SDATA10、SDATA11與SDATA12產生錯誤檢查與校正碼ECC5、ECC6、ECC7、ECC8、ECC9、ECC10、ECC11與ECC12。之後,記憶體控制器104(或記憶體管理電路202)會將子資料串 SDATA5、SDATA6、SDATA7、SDATA8、SDATA9、SDATA10、SDATA11與SDATA12以及錯誤檢查與校正碼ECC5、ECC6、ECC7、ECC8、ECC9、ECC10、ECC11與ECC12分別且依序地程式化至實體程式化單元304(0)的實體程式化單元701(4)、701(5)、701(6)、701(7)、701(8)、701(9)、701(10)與701(11)。特別是,記憶體控制器104(或同位資訊編碼與解碼電路212)會根據子資料串SDATA7、SDATA8、SDATA11與SDATA12來產生同位資訊P2。然後,記憶體控制器104(或記憶體管理電路202)會將同位資訊P2暫存至緩衝記憶體208並且刪除暫存在緩衝記憶體208中的子資料串SDATA5、SDATA6、SDATA7、SDATA8、SDATA9、SDATA10、SDATA11與SDATA12。具體來說,由於儲存子資料串SDATA7、SDATA8、SDATA11與SDATA12的實體程式化單元701(6)、701(7)、701(10)與701(11)皆為下實體程式化單元,並且對應下實體程式化單元701(6)、701(7)、701(10)與701(11)的上實體程式化單元710(12)、710(13)、710(16)、710(17)尚未被寫入資料。因此,若之後對上實體程式化單元710(12)、710(13)、710(16)、710(17)執行程式化並發生程式化錯誤時,儲存在下實體程式化單元701(6)、701(7)、701(10)與701(11)的資料可能會遺失。基此,在緩衝記憶體208中儲存對應子資料串SDATA7、SDATA8、SDATA11與SDATA12的同位資訊以取代完成地暫存子資料串SDATA7、SDATA8、SDATA11與SDATA12,可在減少所需的緩衝記憶體208的空間下,達到保護資料的效果。
在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)會確認先前所儲存的子資料串SDATA1、SDATA2、SDATA3與SDATA4是否正確無誤,並且在先前所儲存的子資料串SDATA1、SDATA2、SDATA3與SDATA4正確無誤時從緩衝記憶體208中刪除同位資訊P1。另外,在另一範例實施例中,記憶體控制器104(或記憶體管理電路202)亦可在緩衝記憶體208的空間不足時才刪除同位資訊P1。
在圖13~15的範例中,倘若在將子資料串SDATA5、SDATA6、SDATA9或SDATA10程式化實體程式化單元701(4)、701(5)、701(8)或701(9)時發生程式化錯誤並且導致子資料串SDATA1、SDATA2、SDATA3或SDATA4出現錯誤資料時,記憶體控制器104(或記憶體管理電路202)會根據同位資訊P1以及目前儲存在實體程式化單元701(0)、701(1)、701(2)與701(3)的子資料串來校正錯誤資料(子資料串SDATA1、SDATA2、SDATA3或SDATA4)。至於發生程式化錯誤的子資料串SDATA5、SDATA6、SDATA9或SDATA10,因緩衝記憶體208仍保留有此些子資料串,而不會遺失。
值得一提的是,儘管在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會識別出哪些已被寫入資料的下實體程式化所對應的上實體程式化單元未被程式化,並且記憶體控制器104(或同位資訊編碼與解碼電路212)針對所識別之下實體程式化單元上的子資料串來產生同位資訊,但本發明不限於此。例如, 在本發明另一範例實施例中,記憶體控制器104(或同位資訊編碼與解碼電路212)亦可對此次寫入指令所欲寫入的所有子資料串來產生同位資訊。又例如,在本發明另一範例實施例中,記憶體控制器104(或同位資訊編碼與解碼電路212)亦可在每寫一筆子資料至實體程式化單元時,根據前一次寫入子資料至實體程式化單元所產生的先前同位資訊與目前所寫入的子資料來產生新的同位資訊。
圖16是根據一範例實施例所繪示的資料寫入的流程圖。
請參照圖16,在步驟S1601中,記憶體控制器104(或記憶體管理電路202)從主機系統1000接收寫入指令與對應的資料。
在步驟S1603中,記憶體控制器104(或記憶體管理電路202)會將資料暫存至緩衝記憶體208並且將資料整理成多個子資料串。
在步驟S1605中,記憶體控制器104(或記憶體管理電路202)會選擇至少一實體抹除單元(以下稱為第一實體抹除單元)且將子資料串寫入至第一實體抹除單元的實體程式化單元中。具體來說,記憶體控制器104(或錯誤檢查與校正電路210)會為每個子資料串產生對應的錯誤檢查與校正碼,並且記憶體控制器104(或記憶體管理電路202)會將子資料串與對應的錯誤檢查與校正碼寫入至對應的實體程式化單元。
在步驟S1607中,記憶體控制器104(或記憶體管理電路202)會判斷將子資料串寫入至第一實體抹除單元的實體程式化單 元的過程中是否發生程式化錯誤。
倘若未發生程式化錯誤時,在步驟S1609中,記憶體控制器104(或同位資訊編碼與解碼電路212)會根據此些子資料串之中至少一部分子資料串來產生同位資訊。例如,如上所述,記憶體控制器104(或記憶體管理電路202)會識別儲存此些子資料串的下實體程式化單元之中其對應之上實體程式化單元(以下稱為第一上實體程式化單元)未儲存資料的下實體程式化單元(以下稱為第一下實體程式化單元)並且依據被寫入至第一下實體程式化單元的子資料串來產生同位資訊。
在步驟S1611中,記憶體控制器104(或記憶體管理電路202)會將所產生的同位資訊儲存至緩衝記憶體208,從緩衝記憶體208中刪除此些子資料串。特別是,倘若緩衝記憶體208中存有執行前次寫入指令所儲存的同位資訊時,在步驟S1611中記憶體控制器104(或記憶體管理電路202)會一併將舊的同位資訊移除。
倘若發生程式化錯誤時,在步驟S1613中,記憶體控制器104(或同位資訊編碼與解碼電路212)會根據緩衝記憶體208中的同位資訊來解碼前次寫入指令所寫入之子資料串中的至少其中一部分來校正錯誤資料。之後,記憶體控制器104(或記憶體管理電路202)可將重新進行程式化運作。
綜上所述,本發明範例實施例的資料寫入方法使用此資料寫入方法的記憶體控制器能夠有效地使用緩衝記憶體的儲存空間來執行寫入指令,同時避免資料遺失。此外,使用此資料寫入 方法記憶體儲存裝置能夠在配置較少容量的緩衝記憶體下順利地執行寫入指令,同時避免資料遺失。
S1601、S1603、S1605、S1607、S1609、S1611、S1613‧‧‧資料寫入方法的步驟

Claims (24)

  1. 一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有至少一記憶體晶粒,該至少一記憶體晶粒包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,該資料寫入方法包括:從一主機系統中接收一第一寫入指令與對應該寫入指令的一第一資料並且將該第一資料暫存至一緩衝記憶體中,其中該第一資料包括多個子資料串;從該緩衝記憶體中將該些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串至該些實體抹除單元之中的至少一第一實體抹除單元中;根據該些子資料串之中至少一部分子資料串來產生一同位資訊;以及將該同位資訊儲存在該緩衝記憶體中並且從該緩衝記憶體中移除該第一資料。
  2. 如申請專利範圍第1項所述的資料寫入方法,其中所述根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的步驟包括:依據所有的該些子資料串來產生該同位資訊。
  3. 如申請專利範圍第1項所述的資料寫入方法,其中每一該些實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至該些下實體程式化單元的速 度快於寫入資料至該些上實體程式化單元,其中所述根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的步驟包括:根據儲存該些子資料串的實體程式化單元識別該些子資料串之中的至少一第一子資料串,其中該至少一第一子資料串被儲存在該些下實體程式化單元之中的至少一第一下實體程式化單元並且對應該至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料;以及根據該至少一第一子資料串產生該同位資訊。
  4. 如申請專利範圍第1項所述的資料寫入方法,更包括:在將該同位資訊儲存在該緩衝記憶體中並且從該緩衝記憶體中移除該第一資料之後,從該主機系統接收一第二寫入指令與對應該第二寫入指令的一第二資料。
  5. 如申請專利範圍第4項所述的資料寫入方法,更包括:判斷從該緩衝記憶體中將該第二資料寫入至該至少一第一實體抹除單元中時是否發生一程式化錯誤;以及倘若從該緩衝記憶體中將該第二資料寫入至該至少一第一實體抹除單元中時發生該程式化錯誤時,使用儲存在該緩衝記憶體中的該同位資訊解碼儲存在該至少一第一實體抹除單元中的該至少一部分子資料串來校正該至少一部分子資料串中的至少一錯誤子資料串。
  6. 如申請專利範圍第5項所述的資料寫入方法,更包括: 倘若從該緩衝記憶體中將該第二資料寫入至該至少一第一實體抹除單元中時未發生該程式化錯誤時,從該緩衝記憶體中移除該同位資訊。
  7. 如申請專利範圍第4項所述的資料寫入方法,更包括:根據至少一部份的該第二資料產生另一同位資訊;以及將該另一同位資訊儲存至該緩衝記憶體中並刪除該第二資料。
  8. 如申請專利範圍第1項所述的資料寫入方法,其中從該緩衝記憶體中將該些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串至該些實體抹除單元之中的該至少一第一實體抹除單元中的步驟包括:分別地為該些子資料串產生多個錯誤檢查與校正碼;以及將該些子資料串與分別地對應該些子資料串的該些錯誤檢查與校正碼傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串與分別地對應該些子資料串的該些錯誤檢查與校正碼至該至少一第一實體抹除單元的實體程式化單元中。
  9. 如申請專利範圍第1項所述的資料寫入方法,其中所述根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的步驟包括:每當將該些子資料串之中的其中一個子資料串寫入至該至少一第一實體抹除單元時,根據該其中一個子資料串與一先前同位資訊來產生該同位資訊。
  10. 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有至少一記憶體晶粒,該至少一記憶體晶粒包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元;一緩衝記憶體;一同位資訊編碼與解碼電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面、該緩衝記憶體與該同位資訊編碼與解碼電路,其中該記憶體管理電路用以從該主機系統中接收一第一寫入指令與對應該寫入指令的一第一資料並且將該第一資料暫存至一緩衝記憶體中,其中該第一資料包括多個子資料串,其中該記憶體管理電路更用以從該緩衝記憶體中將該些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串至該些實體抹除單元之中的至少一第一實體抹除單元中,其中該同位資訊編碼與解碼電路用以根據該些子資料串之中至少一部分子資料串來產生一同位資訊,其中該記憶體管理電路更用以將該同位資訊儲存在該緩衝記憶體中並且從該緩衝記憶體中移除該第一資料。
  11. 如申請專利範圍第10項所述的記憶體控制器,其中在根 據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,該同位資訊編碼與解碼電路依據所有的該些子資料串來產生該同位資訊。
  12. 如申請專利範圍第10項所述的記憶體控制器,其中每一該些實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至該些下實體程式化單元的速度快於寫入資料至該些上實體程式化單元,其中在根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,該記憶體管理電路根據儲存該些子資料串的實體程式化單元識別該些子資料串之中的至少一第一子資料串並且該同位資訊編碼與解碼電路根據該至少一第一子資料串產生該同位資訊,其中該至少一第一子資料串被儲存在該些下實體程式化單元之中的至少一第一下實體程式化單元並且對應該至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料。
  13. 如申請專利範圍第10項所述的記憶體控制器,其中該記憶體管理路更用以在將該同位資訊儲存在該緩衝記憶體中並且從該緩衝記憶體中移除該第一資料之後,從該主機系統接收一第二寫入指令與對應該第二寫入指令的一第二資料。
  14. 如申請專利範圍第13項所述的記憶體控制器,其中該記憶體管理電路根據至少一部份的該第二資料產生另一同位資訊以及將該另一同位資訊儲存至該緩衝記憶體中並刪除 該第二資料。
  15. 如申請專利範圍第10項所述的記憶體控制器,其中在根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,每當將該些子資料串之中的其中一個子資料串寫入至該至少一第一實體抹除單元時,該同位資訊編碼與解碼電路根據該其中一個子資料串與一先前同位資訊來產生該同位資訊。
  16. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有至少一記憶體晶粒,該至少一記憶體晶粒包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元;以及一記憶體控制器,具有一緩衝記憶體且耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料並且將該第一資料暫存至一緩衝記憶體中,其中該第一資料包括多個子資料串,其中該記憶體控制器更用以從該緩衝記憶體中將該些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串至該些實體抹除單元之中的至少一第一實體抹除單元中,其中該記憶體控制器用以根據該些子資料串之中至少一部分子資料串來產生一同位資訊,其中該記憶體控制器更用以將該同位資訊儲存在該緩衝記憶 體中並且從該緩衝記憶體中移除該第一資料。
  17. 如申請專利範圍第16項所述的記憶體儲存裝置,其中在根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,該記憶體控制器依據所有的該些子資料串來產生該同位資訊。
  18. 如申請專利範圍第16項所述的記憶體儲存裝置,其中每一該些實體抹除單元的實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,寫入資料至該些下實體程式化單元的速度快於寫入資料至該些上實體程式化單元,其中在根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,該記憶體控制器根據儲存該些子資料串的實體程式化單元識別該些子資料串之中的至少一第一子資料串並且該記憶體控制器根據該至少一第一子資料串產生該同位資訊,其中該至少一第一子資料串被儲存在該些下實體程式化單元之中的至少一第一下實體程式化單元並且對應該至少一第一下實體程式化單元的至少一第一上實體程式化單元未儲存資料。
  19. 如申請專利範圍第16項所述的記憶體儲存裝置,其中該記憶體控制器更用以在將該同位資訊儲存在該緩衝記憶體中並且從該緩衝記憶體中移除該第一資料之後,從該主機系統接收一第二寫入指令與對應該第二寫入指令的一第二資料。
  20. 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制器更用以判斷從該緩衝記憶體中將該第二 資料寫入至該至少一第一實體抹除單元中時是否發生一程式化錯誤,其中倘若從該緩衝記憶體中將該第二資料寫入至該至少一第一實體抹除單元中時發生該程式化錯誤時,該記憶體控制器使用儲存在該緩衝記憶體中的該同位資訊來解碼儲存在該至少一第一實體抹除單元中的該至少一部分子資料串以校正該至少一部分子資料串中的至少一錯誤子資料串。
  21. 如申請專利範圍第20項所述的記憶體儲存裝置,其中倘若從該緩衝記憶體中將該第二資料寫入至該至少一第一實體抹除單元中時未發生該程式化錯誤時,該記憶體控制器更用以從該緩衝記憶體中移除該同位資訊。
  22. 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制器根據至少一部份的該第二資料產生另一同位資訊以及將該另一同位資訊儲存至該緩衝記憶體中並刪除該第二資料。
  23. 如申請專利範圍第16項所述的記憶體儲存裝置,其中該記憶體控制器更用以分別地為該些子資料串產生多個錯誤檢查與校正碼,其中在從該緩衝記憶體中將該些子資料串傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串至該些實體抹除單元之中的該至少一第一實體抹除單元中的運作中,該記憶體控制器將該些子資料串與分別地對應該些子資料串的該些錯誤檢查與校正 碼傳送至該可複寫式非揮發性記憶體模組以寫入該些子資料串與分別地對應該些子資料串的該些錯誤檢查與校正碼至該至少一第一實體抹除單元的實體程式化單元中。
  24. 如申請專利範圍第16項所述的記憶體儲存裝置,其中在根據該些子資料串之中該至少一部分子資料串來產生該同位資訊的運作中,每當將該些子資料串之中的其中一個子資料串寫入至該至少一第一實體抹除單元時,該記憶體控制器根據該其中一個子資料串與一先前同位資訊來產生該同位資訊。
TW102121184A 2013-06-14 2013-06-14 資料寫入方法、記憶體控制器與記憶體儲存裝置 TWI516927B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102121184A TWI516927B (zh) 2013-06-14 2013-06-14 資料寫入方法、記憶體控制器與記憶體儲存裝置
US13/958,627 US9201785B2 (en) 2013-06-14 2013-08-05 Data writing method, memory controller and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102121184A TWI516927B (zh) 2013-06-14 2013-06-14 資料寫入方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201447577A true TW201447577A (zh) 2014-12-16
TWI516927B TWI516927B (zh) 2016-01-11

Family

ID=52020271

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102121184A TWI516927B (zh) 2013-06-14 2013-06-14 資料寫入方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9201785B2 (zh)
TW (1) TWI516927B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI812034B (zh) * 2022-02-25 2023-08-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11847021B2 (en) 2022-02-25 2023-12-19 Macronix International Co., Ltd. Memory block, memory device for error correction operation and method thereof

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI512750B (zh) * 2014-07-30 2015-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
US9507663B1 (en) * 2015-05-04 2016-11-29 Macronix International Co., Ltd. Memory device and operation method
TWI573146B (zh) * 2015-05-28 2017-03-01 旺宏電子股份有限公司 記憶體裝置與其操作方法
US10152413B2 (en) 2015-06-08 2018-12-11 Samsung Electronics Co. Ltd. Nonvolatile memory module and operation method thereof
TWI588833B (zh) * 2015-11-27 2017-06-21 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
CN106933603B (zh) * 2015-12-29 2024-03-05 深圳市博巨兴微电子科技有限公司 一种芯片烧录的方法、装置和微控制器
TWI591641B (zh) * 2016-02-19 2017-07-11 群聯電子股份有限公司 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置
TWI652572B (zh) 2016-03-31 2019-03-01 慧榮科技股份有限公司 資料儲存裝置
US10572427B2 (en) * 2017-11-13 2020-02-25 Data I/O Corporation Device programming system with protocol emulation
US11048645B2 (en) * 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US10838805B2 (en) * 2018-02-23 2020-11-17 Micron Technology, Inc. Generating parity data based on a characteristic of a stream of data
KR20200108650A (ko) * 2019-03-11 2020-09-21 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
TWI688965B (zh) * 2019-08-14 2020-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
KR20210034711A (ko) * 2019-09-20 2021-03-31 삼성전자주식회사 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법
KR20210131058A (ko) * 2020-04-23 2021-11-02 에스케이하이닉스 주식회사 메모리 시스템 내 데이터를 보호하는 장치 및 방법
CN111796774B (zh) * 2020-07-07 2024-03-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器
KR102351237B1 (ko) * 2021-04-29 2022-01-13 삼성전자주식회사 메모리 저장 장치 및 통신 시스템
US11822429B2 (en) * 2022-04-08 2023-11-21 Dell Products L.P. Storage device raid data write intermediate parity system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340672B2 (en) * 2004-09-20 2008-03-04 Intel Corporation Providing data integrity for data streams
US8024639B2 (en) * 2006-06-23 2011-09-20 Schweitzer Engineering Laboratories, Inc. Software and methods to detect and correct data structure
US8745320B2 (en) * 2012-05-04 2014-06-03 Riverbed Technology, Inc. Ensuring write operation consistency using multiple storage devices
US20140068378A1 (en) * 2012-08-31 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor storage device and memory controller
US9076530B2 (en) * 2013-02-07 2015-07-07 Seagate Technology Llc Non-volatile write buffer data retention pending scheduled verification

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI812034B (zh) * 2022-02-25 2023-08-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11847021B2 (en) 2022-02-25 2023-12-19 Macronix International Co., Ltd. Memory block, memory device for error correction operation and method thereof

Also Published As

Publication number Publication date
US9201785B2 (en) 2015-12-01
US20140372667A1 (en) 2014-12-18
TWI516927B (zh) 2016-01-11

Similar Documents

Publication Publication Date Title
TWI516927B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI527037B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI490871B (zh) 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置
TWI479314B (zh) 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI435329B (zh) 快閃記憶體管理方法、快閃記憶體控制器與儲存系統
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI656531B (zh) 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置
TWI447579B (zh) 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
TWI725416B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TWI545432B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
CN104252317A (zh) 数据写入方法、存储器控制器与存储器存储装置
TWI516934B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TWI464585B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI436209B (zh) 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置
CN112051963B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
CN110874282B (zh) 数据存取方法、存储器控制电路单元与存储器存储装置
TWI512750B (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
TWI814501B (zh) 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元
TWI777087B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
CN111724851B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
TWI727327B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置