TWI459396B - 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI459396B TWI459396B TW099146917A TW99146917A TWI459396B TW I459396 B TWI459396 B TW I459396B TW 099146917 A TW099146917 A TW 099146917A TW 99146917 A TW99146917 A TW 99146917A TW I459396 B TWI459396 B TW I459396B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- error correction
- correction code
- memory
- memory controller
- Prior art date
Links
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/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1008—Adding 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/1012—Adding 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 codes or arrangements adapted for a specific type of error
-
- 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/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
Description
本發明是有關於一種用於可複寫式非揮發性記憶體模組的資料寫入與讀取方法以及使用此方法的記憶體控制器與記憶體儲存裝置,其能夠在現有錯誤校正電路下校正更多個錯誤位元。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
由於儲存在快閃記憶體的資料可能會因各種因素(例如,記憶體胞的漏電、程式化失敗、損毀等)而產生錯誤位元,因此,在記憶體儲存系統中一般會配置錯誤校正電路(Error Correcting Circuit)並為所儲存之資料產生錯誤校正碼以確保資料的正確性。
具體來說,當與快閃記憶體儲存裝置連接的電腦主機傳送欲寫入的資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置中的錯誤校正電路會對應的產生一錯誤校正碼(Error Correcting Code)並且快閃記憶體儲存裝置中的控制電路會將欲寫入的資料與所產生的錯誤校正碼寫入至快閃記憶體儲存裝置的快閃記憶體中。之後,當電腦主機欲從快閃記憶體儲存裝置中讀取此資料時,控制電路會從快閃記憶體中讀取此資料及對應的錯誤校正碼並且由錯誤校正電路依據此資料及對應的錯誤校正碼執行一錯誤校正程序以確保資料的正確性。
圖1是寫入至快閃記憶體儲存裝置與從快閃記憶體儲存裝置中讀取的資料的資料結構示意圖。
請參照圖1,在寫入程序中,原始資料OD與對應此原始資料OD的錯誤校正碼EC被寫入至快閃記憶體儲存裝置中,並且之後,當從快閃記憶體儲存裝置讀取原始資料OD時錯誤校正碼EC會一併被讀取以對所讀取之原始資料OD進行錯誤校正程序。例如,當資料正確時,控制電路會將所讀取的資料傳送給電腦主機;當資料存有錯誤位元EB時,錯誤校正電路所執行的錯誤校正程序會嘗試將此些錯誤位元EB更正,其中若錯誤位元EB的數目是在可被校正的範圍內時,則錯誤位元EB會被校正並且控制電路會將已校正的正確資料傳送給電腦主機,反之,若錯誤位元EB的數目超過可校正的範圍時,則控制電路會告知電腦主機此資料已遺失。
基此,如何能夠校正更多個錯誤位元是此領域技術人員所致力的目標。
本發明提供一種資料寫入與讀取方法,其能夠校正更多錯誤位元,以確保資料的正確性。
本發明提供一種記憶體控制器,其能夠校正更多錯誤位元。
本發明提供一種記憶體儲存裝置,其具有較高的可靠度,以避免所儲存之資料遺失。
本發明範例實施例提出一種資料寫入方法,用於將一資料寫入至可複寫式非揮發性記憶體模組。本資料寫入方法包括壓縮此資料以產生第一資料並且判斷第一資料的資料長度是否小於預設長度。本資料寫入方法還包括,當第一資料的資料長度非小於預設長度時,輸出此第一資料作為壓縮資料。本資料寫入方法更包括產生對應此壓縮資料的錯誤校正碼,根據此壓縮資料與此錯誤校正碼以產生錯誤校正碼框並且將此錯誤校正碼框寫入至可複寫式非揮發性記憶體模組中。
在本發明之一實施例中,上述之根據壓縮資料與錯誤校正碼產生錯誤校正碼框的步驟包括:合併上述壓縮資料、一預設整墊資料與上述錯誤校正碼以產生此錯誤校正碼框。
在本發明之一實施例中,上述之壓縮資料以產生壓縮資料的步驟更包括:當第一資料的長度小於預設長度時,使用至少一填塞位元填補上述第一資料以產生一第二資料並且將此第二資料作為上述壓縮資料,其中第二資料的長度等於預設長度。
在本發明之一實施例中,上述之資料寫入方法更包括:接收另一資料;壓縮此另一資料並且產生對應此另一資料的另一壓縮資料;產生對應此另一壓縮資料的另一錯誤校正碼;根據此另一壓縮資料與另一錯誤校正碼產生另一錯誤校正碼框;以及將上述錯誤校正碼框與此另一錯誤校正碼框寫入至可複寫式非揮發性記憶體模組的多個實體頁面之中的同一個實體頁面中。
本發明範例實施例提出一種資料讀取方法,用於從可複寫式非揮發性記憶體模組中讀取一資料。本資料讀取方法包括從可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框並且根據預設整墊資料從錯誤校正碼框中獲取一未校正資料與一錯誤校正碼。本資料讀取方法更包括依據此錯誤校正碼校正此未校正資料以產生已校正資料,解壓縮此已校正資料的至少一部分來獲取一解壓縮資料並且將此解壓縮資料輸出作為所讀取之資料。
在本發明之一實施例中,上述之解壓縮已校正資料的至少一部分以獲取解壓縮資料的步驟包括:判斷此已校正資料是否包含填塞位元;以及當此已校正資料未包含填塞位元時,解壓縮整個已校正資料以獲取上述解壓縮資料。
在本發明之一實施例中,上述之解壓縮已校正資料的至少一部份以獲取解壓縮資料的步驟更包括:當已校正資料包含填塞位元時,將此填塞位元從已校正資料中刪除以產生一第三資料,解壓縮此第三資料以獲取上述解壓縮資料。
本發明範例實施例提出一種記憶體控制器,用於將來自於主機系統的一資料寫入至可複寫式非揮發性記憶體模組。本記憶體控制器包括主機介面、記憶體介面、記憶體管理電路、錯誤校正電路以及資料壓縮/解壓縮電路。主機介面用以耦接至主機系統,記憶體介面用以耦接至可複寫式非揮發性記憶體模組,並且記憶體管理電路,耦接至主機介面與記憶體介面並且用以透過主機介面接收此資料。錯誤校正電路以及資料壓縮/解壓縮電路耦接至記憶體管理電路。資料壓縮/解壓縮電路用以壓縮此資料以產生第一資料。資料壓縮/解壓縮電路判斷此第一資料的資料長度是否小於預設長度,並且當此第一資料的資料長度非小於預設長度時,資料壓縮/解壓縮電路輸出此第一資料作為壓縮資料。錯誤校正電路用以產生對應此壓縮資料的一錯誤校正碼。記憶體管理電路用以根據壓縮資料與錯誤校正碼以產生一錯誤校正碼框並且將此錯誤校正碼框寫入至可複寫式非揮發性記憶體模組中。
在本發明之一實施例中,上述之記憶體管理電路合併上述壓縮資料、上述錯誤校正碼與一預設整墊資料來產生上述錯誤校正碼框。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組具有多個實體頁面,其中上述記憶體管理電路更用以從主機系統接收另一資料。上述資料壓縮/解壓縮電路更用以壓縮此另一資料並且產生對應此另一資料的另一壓縮資料。上述錯誤校正電路更用以產生對應此另一壓縮資料的另一錯誤校正碼。上述記憶體管理電路根據此另一壓縮資料與此另一錯誤校正碼產生另一錯誤校正碼框,並且將上述錯誤校正碼框與另一錯誤校正碼框寫入至此些實體頁面之中的同一個實體頁面中。
在本發明之一實施例中,當第一資料的長度小於預設長度時,資料壓縮/解壓縮電路使用填塞位元填補上述第一資料以產生一第二資料並且將此第二資料作為上述壓縮資料,其中第二資料的長度等於預設長度。
本發明範例實施例提出一種記憶體控制器,用於從可複寫式非揮發性記憶體模組中讀取一資料。本記憶體控制器包括主機介面、記憶體介面、記憶體管理電路、錯誤校正電路以及資料壓縮/解壓縮電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面並且用以透過主機介面將所讀取之資料傳送給主機系統。錯誤校正電路以及資料壓縮/解壓縮電路皆耦接至記憶體管理電路。記憶體管理電路用以從可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框,並且根據一預設整墊資料從此錯誤校正碼框中獲取一未校正資料與一錯誤校正碼。錯誤校正電路用以依據此錯誤校正碼校正此未校正資料以產生一已校正資料,解壓縮此已校正資料的至少一部分來獲取一解壓縮資料並且將此解壓縮資料輸出作為所讀取之資料。
在本發明之一實施例中,上述之資料壓縮/解壓縮電路判斷此已校正資料是否包含填塞位元。其中,當此已校正資料未包含時,該資料壓縮/解壓縮電路解壓縮整個已校正資料來獲取上述解壓縮資料。
在本發明之一實施例中,當此已校正資料包含填塞位元時,資料壓縮/解壓縮電路將此填塞位元從已校正資料中刪除以產生一第三資料,解壓縮此第三資料以獲取上述解壓縮資料。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至一主機系統。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,並且用以從主機系統接收一資料。在此,記憶體控制器更用以壓縮此資料以產生一第一資料,並且判斷此第一資料的資料長度是否小於預設長度。當此第一資料的資料長度非小於預設長度時,此記憶體控制器會輸出此第一資料作為壓縮資料。此外,此記憶體控制器會產生對應此此壓縮資料的錯誤校正碼。再者,記憶體控制器更用以根據此壓縮資料以及此錯誤校正碼以產生一錯誤校正碼框,並且將此錯誤校正碼框寫入至可複寫式非揮發性記憶體模組中。
在本發明之一實施例中,上述之記憶體控制器合併上述壓縮資料、上述錯誤校正碼與一預設整墊資料來產生上述錯誤校正碼框。
在本發明之一實施例中,當第一資料的長度小於預設長度時,記憶體控制器使用填塞位元填補此第一資料以產生一第二資料並且將此第二資料作為上述壓縮資料,其中第二資料的長度等於預設長度。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組具有多個實體頁面,其中上述記憶體控制器更用以從主機系統接收另一資料。上述記憶體控制器壓縮此另一資料並且產生對應此另一資料的另一壓縮資料。上述記憶體控制器產生對應此另一壓縮資料的另一錯誤校正碼。上述記憶體控制器根據此另一壓縮資料與此另一錯誤校正碼產生另一錯誤校正碼框,並且將上述錯誤校正碼框與另一錯誤校正碼框寫入至此些實體頁面之中的同一個實體頁面中。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,並且用以從可複寫式非揮發性記憶體中讀取一資料並且將所讀取之資料傳送給主機系統。在此,記憶體控制器用以從可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框,並且根據一預設整墊資料從該錯誤校正碼框中獲取一未校正資料與一錯誤校正碼。此外,記憶體控制器更用以依據此錯誤校正碼校正此未校正資料以產生一已校正資料,解壓縮此已校正資料的至少一部分以獲取一解壓縮資料,並且將此解壓縮資料輸出作為所讀取之資料。
在本發明之一實施例中,上述之記憶體控制器判斷此已校正資料是否包含至少一填塞位元。其中,當此已校正資料未包含填塞位元時,記憶體控制器解壓縮整個已校正資料來獲取上述解壓縮資料。
在本發明之一實施例中,上述之當已校正資料包含填塞位元時,記憶體控制器將此填塞位元從已校正資料中刪除以產生一第三資料,將並且解壓縮此第三資料以獲取上述解壓縮資料。
基於上述,本發明範例實施例的資料寫入與讀取方法、記憶體控制器以及記憶體儲存裝置能夠有效地將更多錯誤位元更正。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖2A是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖2A,主機系統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的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖2C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖3是繪示圖2A所示的記憶體儲存裝置的概要方塊圖。
請參照圖3,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有多個實體區塊。例如,此些實體區塊可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體區塊分別具有複數個實體頁面,並且每一實體頁面具有至少一實體扇區,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是實體扇區或其他大小。
例如,每一實體區塊是由128個實體頁面所組成。然而,必須瞭解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。每一實體頁面包括使用者資料(user data)位元區與冗餘(redundancy)位元區。使用者資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤校正碼)。在本範例實施例中,每一實體頁面的使用主資料位元區的容量為2千位元組(Kilobyte,K)並且冗餘位元區的容量為64位元組(byte)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖4是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖4,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206、資料壓縮/解壓縮電路208與錯誤校正電路210。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
資料壓縮/解壓縮電路208是耦接至記憶體管理電路202。在此,資料壓縮/解壓縮電路208用以壓縮欲寫入至可複寫式非揮發性記憶體模組106的資料並且用以解壓縮從可複寫式非揮發性記憶體模組106中所讀取之資料。例如,資料壓縮/解壓縮電路208包含壓縮器(compressor)及解壓縮器(decompressor)。壓縮器用以找出原始資料(original data)中存在的資料累贅(data redundancy)、移除所找出之累贅,將剩餘的必要資料編碼並且輸出編碼結果(即,壓縮資料(compressed data)。而,解壓縮器用以將讀入的壓縮資料依據既定的步驟解碼並送出解碼結果(即,解壓縮資料(decompressed data)。在本範例實施例中,資料壓縮/解壓縮電路208是使用無失真壓縮演算法來壓縮資料,以使壓縮後之資料能夠被還原。
錯誤校正電路210是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,在執行寫入指令時,錯誤校正電路210會為欲寫入之資料產生對應的錯誤校正碼,並且記憶體管理電路202會將此資料與對應的錯誤校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤校正電路210會依據此錯誤校正碼對所讀取的資料執行錯誤檢查與校正程序。值得一提的是,錯誤校正電路210能夠校正之錯誤位元的數目會與所產生之錯誤校正碼的長度成正比。也就是說,當錯誤校正電路210被設計能夠校正之錯誤位元的數目越多時,則需要越多儲存空間來儲存所產生之錯誤校正碼。如上所述,用以儲存錯誤校正碼之冗餘位元區的容量是固定的(根據不同種類之可複寫式非揮發性記憶體模組而不同)。因此,實作於錯誤校正電路210中的錯誤校正演算法會受限於可複寫式非揮發性記憶體模組106的類型。例如,在本範例實施例中,錯誤校正電路210最多能夠校正40個錯誤位元。也就是說,只要發生在所讀取之資料上的錯誤位元的數目不超過40,錯誤校正電路210皆能夠順利地將錯誤位元更正。
特別是,在本範例實施例中,當欲寫入資料至可複寫式非揮發性記憶體模組106時,資料壓縮/解壓縮電路208與錯誤校正電路210會在記憶體管理模組202的控制下將欲寫入之資料進行壓縮並且為壓縮後的資料產生對應的錯誤校正碼。由於壓縮後之資料的長度較短,因此,相對的提升了錯誤校正電路210的保護能力。透過資料壓縮來提升錯誤校正能力的資料寫入方法與資料讀取方法,將於以下配合圖式作更詳細的說明。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本範例實施例中,如上所述,在從主機系統1000中接收到寫入指令以及對應此寫入指令的資料之後,記憶體控制器104的記憶體管理電路202會以實體頁面為單位將所接收之資料寫入至可複寫式非揮發性記憶體模組106中。特別是,記憶體管理電路202會依據所接收之資料及對應的錯誤校正碼來產生錯誤校正碼框(ECC Frame)並且將錯誤校正碼框寫入至可複寫式非揮發性記憶體模組106中。在本範例實施例中,一個錯誤校正碼框所包含的使用者資料的長度為2K,因此,1個實體頁面會儲存1個錯誤校正碼框。
然而,必須瞭解的是,本發明不限於此,在本發明另一範例實施例中,一個錯誤校正碼框所包含的使用者資料的長度亦可為512Byte或1K。也就是說,1個實體頁面可儲存多個錯誤校正碼框。
圖5是根據本發明範例實施例所繪示之寫入資料至實體頁面的示意圖。
請參照圖5,當記憶體管理電路202欲將資料長度為2K的資料WD寫入至實體頁面402時,資料壓縮/解壓縮電路208會壓縮資料WD以輸出壓縮資料CD。值得一提的是,資料壓縮/解壓縮電路208會使用無失真壓縮演算法來壓縮資料,然而,不同之寫入資料經過壓縮後所產生之壓縮資料的長度可能會不同。為了方便資料的管理,資料壓縮/解壓縮電路208會以預設長度來輸出所產生的壓縮資料。也就是說,壓縮資料CD的長度是等於預設長度。
例如,資料壓縮/解壓縮電路208在對資料執行壓縮之後,會判斷所產生之壓縮資料的長度是否等於一預設長度。並且,當所產生的壓縮資料的長度小於預設長度時,資料壓縮/解壓縮電路208會以填塞位元填補所產生的壓縮資料,以使壓縮資料的長度等於預設長度。在此,預設長度是根據資料壓縮/解壓縮電路208的壓縮比來預先設定。也就是說,所有資料經過壓縮/解壓縮電路208壓縮後其長度皆不會大於預設長度。例如,在本範例實施例中,資料壓縮/解壓縮電路208可將資料2K的資料至少壓縮為1K的資料,基此,預設長度被設定為1K。
圖6是根據本發明範例實施例所繪示產生將填塞位元填補至壓縮資料的示意圖。
請參照圖6,當資料WD被輸入至資料壓縮/解壓縮電路208並產生小於預設長度的前置壓縮資料PCD(亦稱為第一資料)時,資料壓縮/解壓縮電路208會在前置壓縮資料PCD之後放入至少一個填塞位元PB,以使最後輸出之壓縮資料CD的長度等於預設長度。在此,填塞位元PB為"F",但本發明不限於此,填塞位元可以是任何符號。特別是,當需要以填塞位元來填補前置壓縮資料PCD以產生壓縮資料CD時,資料壓縮/解壓縮電路208會儲存填塞資訊,以記錄此筆壓縮資料CD被填入幾個填塞位元,以便於還原此前置壓縮資料PCD。例如,填塞資訊會被記錄在可複寫式非揮發性記憶體模組106中用以儲存系統資料的實體區塊中或者儲存在映射表中。值得一提的是,儘管在本範例實施例中,填塞位元PB是被填補在前置壓縮資料PCD之後,然而,必須瞭解的是,本發明不限於此,填塞位元PB亦可置於前置壓縮資料PCD之前或插入至前置壓縮資料PCD之中。
之後,錯誤校正電路210會根據壓縮資料CD產生對應的錯誤校正碼ECC。
然後,請再參照圖5,記憶體管理電路202會將預設整墊資料PD、壓縮資料CD與錯誤校正碼ECC合併以產生錯誤校正碼框ECCF。在此,預設整墊資料PD為每一位元皆為'F'的資料,但本發明不限於此。預設整墊資料可以是任何之資料態樣(pattern)。
具體來說,如上所述,記憶體管理電路202是將來自於主機系統1000的寫入資料編碼成固定長度之錯誤校正碼框來寫入至可複寫式非揮發性記憶體模組106。壓縮資料CD的長度小於資料WD,因此,記憶體管理電路202會在壓縮資料CD與錯誤校正碼ECC之間插入預設整墊資料PD。例如,在本範例實施例中,由於資料壓縮/解壓縮電路208所輸出之壓縮資料的長度為1K,因此,預設整墊資料PD會是被設計為1K的資料,以使得寫入至實體頁面中的資料的長度維持2K。在此,壓縮資料CD與預設整墊資料PD合稱為使用者資料UD。
儘管在本範例實施例中,預設整墊資料PD是被插入在壓縮資料CD與錯誤校正碼ECC之間,然而,必須瞭解的是,本發明不限於此,預設整墊資料PD亦可置於壓縮資料CD之前。
此外,值得一提的是,在寫入資料是可以非固定長度之錯誤校正碼框來寫入至可複寫式非揮發性記憶體模組106的系統中,可不需使用預設整墊資料來產生錯誤校正碼框。特別是,在此例子中,在寫入資料被壓縮之後,1個實體頁面可儲存更多錯誤校正碼框,由此可減少程式化(即,寫入資料至實體頁面)的次數,提升記憶體儲存裝置的效能。
最後,記憶體管理電路202會將錯誤校正碼框ECCF寫入至實體頁面402中。
之後,當記憶體管理電路202欲從實體頁面402中讀取資料以回應給主機系統1000時,記憶體管理電路202與資料壓縮/解壓縮電路208必須以逆程序來還原資料。
圖7是根據本發明範例實施例所繪示之從實體頁面中讀取資料的示意圖。
請參照圖7,假設主機系統1000欲讀取儲存於實體頁面402中的資料(即,先前所寫入之寫入資料WD)。首先,記憶體管理電路202會從實體頁面402中讀取錯誤校正碼框ECCF',其中包含對應所寫入之使用者資料UD的使用者資料UD'與對應所寫入之錯誤校正碼ECC的錯誤校正碼ECC'。
接著,記憶體管理電路202會從使用者資料UD'獲取未校正資料UCD。具體來說,由於在資料寫入時,預設整墊資料PD被插入在壓縮資料CD與錯誤校正碼ECC之間的固定位置,因此,記憶體管理電路202可從使用者資料UD'中刪除所包含的預設整墊資料PD'以獲取對應壓縮資料CD的未校正資料UCD。
之後,錯誤校正電路210會依據錯誤校正碼ECC'對未校正資料UCD執行錯誤檢查與校正程序,以產生已校正資料CCD。在此,在錯誤校正碼ECC'與未校正資料UCD中的錯誤位元的數目小於40時,錯誤校正電路210將能夠順利裡將此些錯誤位元更正。
然後,資料壓縮/解壓縮電路208會根據所儲存之填塞資訊來判斷已校正資料CCD是否存有填塞位元PB。倘若已校正資料CCD未存有填塞位元PB時,資料壓縮/解壓縮電路208會解壓縮已校正資料CCD,以產生解壓縮資料DCD。倘若已校正資料CCD存有填塞位元時,資料壓縮/解壓縮電路208會根據所儲存之填塞資訊從已校正資料CCD中移除填塞位元PB,然後才對已移除填塞位元的已校正資料CCD進行解壓縮以產生解壓縮資料DCD。
最後,記憶體管理電路202會將解壓縮資料DCD作為主機系統1000所讀取之資料RD並且傳送給主機系統1000。
圖8是根據本發明範例實施例所繪示之錯誤位元分佈的簡化示意圖,其錯誤位元分佈的情況是相同於圖1並且假設在圖1中,由於錯誤位元的數目超過錯誤校正電路210可錯誤校正之錯誤位元的數目(假設為7)而無法藉由錯誤校正碼ECC來將原始資料OD還原。
請參照圖8,由於在寫入過程中,錯誤校正碼ECC是根據壓縮資料CD來產生,因此,在讀取過程中,對應壓縮資料CD的未校正資料UCD是藉由所讀取之錯誤校正碼ECC'來錯誤校正。在此,由於未校正資料UCD與錯誤校正碼ECC'內之錯誤位元EB的數目為7,因此,錯誤校正電路210仍可順利地將未校正資料UCD校正以還原壓縮資料CD。具體來說,由於圖8所示之9個錯誤位元之中,2個錯誤位元EB是發生在預設整墊資料PD'中,而未校正資料UCD與錯誤校正碼ECC'內僅包含7個錯誤位元EB,因此,欲校正的錯誤位元數未超過錯誤校正電路210可錯誤校正之錯誤位元的數目。並且,之後壓縮資料CD可被順利地解壓縮以取得讀取資料RD(即,原寫入之寫入資料WD)。
圖9是根據本發明範例實施例所繪示之資料寫入方法的流程圖,其繪示將屬於一個錯誤校正碼框的寫入資料寫入至可複寫式非揮發性記憶體模組106中的步驟。
請參照圖9,當記憶體管理電路202欲將資料寫入至可複寫式非揮發性記憶體模組106中時,在步驟S901中,資料壓縮/解壓縮電路208會壓縮欲寫入之資料以產生壓縮資料,並且在步驟S903中,錯誤校正電路210會產生對應此壓縮資料的錯誤校正碼。
之後,在步驟S905中,記憶體管理電路202會合併壓縮資料、預設整墊資料與錯誤校正碼以產生錯誤校正碼框,並且在步驟S907中,記憶體管理電路202會將所產生之錯誤校正碼框寫入至可複寫式非揮發性記憶體模組106中。
圖10根據一範例實施例所繪示之圖9之步驟S901的詳細流程圖。
請參照圖10,在步驟S1001中,資料壓縮/解壓縮電路208會壓縮欲寫入之資料以產生第一資料,並且在步驟S1003中資料壓縮/解壓縮電路208會判斷所產生之第一資料的長度是否小於預設長度。
倘若第一資料的長度非小於預設長度時,在步驟S1005中,資料壓縮/解壓縮電路208會將第一資料輸出作為壓縮資料。
倘若第一資料的長度小於預設長度時,在步驟S1007中,資料壓縮/解壓縮電路208會使用填塞位元填補第一資料以產生第二資料並且將第二資料作為壓縮資料,其中所產生之第二資料的長度等於預設長度。
圖11是根據本發明範例實施例所繪示之資料讀取方法的流程圖,其繪示從可複寫式非揮發性記憶體模組106中讀取屬於一個錯誤校正碼框的資料的步驟。
請參照圖11,在步驟S1101中,記憶體管理電路202會從可複寫式非揮發性記憶體模組106中讀取一個錯誤校正碼框,並且在步驟S1103中,記憶體管理電路202會根據預設整墊資料從錯誤校正碼框中獲取未校正資料與錯誤校正碼。
之後,在步驟S1105中,錯誤校正電路210會依據此錯誤校正碼校正未校正資料以產生已校正資料。並且,在步驟S1107中,資料壓縮/解壓縮電路208會解壓縮此已校正資料的至少一部分以獲取一解壓縮資料。
最後,在步驟S1109中,記憶體管理電路202會將此解壓縮資料輸出作為欲讀取之資料。
圖12根據一範例實施例所繪示之圖11之步驟S1107的詳細流程圖。
請參照圖12,在步驟S1201中,資料壓縮/解壓縮電路208會判斷已校正資料是否包含填塞位元。例如,資料壓縮/解壓縮電路208會根據於寫入資料時所儲存之填塞資訊來判斷已校正資料是否包含填塞位元。
倘若已校正資料未包含該至少一填塞位元時,在步驟S1203中資料壓縮/解壓縮電路208會解壓縮此已校正資料以獲取解壓縮資料。
倘若已校正資料包含填塞位元時,在步驟S1205中,資料壓縮/解壓縮電路208會將填塞位元從已校正資料中刪除以產生第三資料,並且解壓縮此第三資料以獲取解壓縮資料。
綜上所述,本發明範例實施例的資料寫入與讀取方法即是藉由對欲寫入的資料進行壓縮,由此在現有的錯誤校正電路下能夠校正更多的錯誤位元並且確保所存取之資料的正確性。此外,本發明範例實施例的記憶體儲存裝置是由配置使用此方法的記憶體控制器來管理可複寫式非揮發性記憶體模組,因此,能夠有效地提升存取資料的可靠度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
OD...原始資料
EC...錯誤校正碼
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‧‧‧錯誤校正電路
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
WD‧‧‧寫入資料
ECC、ECC'‧‧‧錯誤校正碼
CD‧‧‧壓縮資料
PD、PD'‧‧‧預設整墊資料
ECCF、ECCF'‧‧‧錯誤校正碼框
UD、UD'‧‧‧使用者資料
PCD‧‧‧前置壓縮資料
PB‧‧‧填塞位元
UCD‧‧‧未校正資料
CCD‧‧‧已校正資料
DCD‧‧‧解壓縮資料
RD‧‧‧讀取資料
EB‧‧‧錯誤位元
S901、S903、S905、S907、S1001、S1003、S1005、S1007‧‧‧資料寫入的步驟
S1101、S1103、S1105、S1107、S1109、S1201、S1203、S1205‧‧‧資料讀取的步驟
圖1是寫入至快閃記憶體儲存裝置與從快閃記憶體儲存裝置中讀取的資料的資料結構示意圖。
圖2A是根據本發明範例實施例繪示主機系統與記憶體儲存裝置。
圖2B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖2C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖3是繪示圖2A所示的記憶體儲存裝置的概要方塊圖。
圖4是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
圖5是根據本發明範例實施例所繪示之寫入資料至實體頁面的示意圖。
圖6是根據本發明範例實施例所繪示產生將填塞位元填補至壓縮資料的示意圖。
圖7是根據本發明範例實施例所繪示之從實體頁面中讀取資料的示意圖。
圖8是根據本發明範例實施例所繪示之錯誤位元分佈的簡化示意圖。
圖9是根據本發明範例實施例所繪示之資料寫入方法的流程圖。
圖10根據一範例實施例所繪示之圖9之步驟S901的詳細流程圖。
圖11是根據本發明範例實施例所繪示之資料讀取方法的流程圖。
圖12根據一範例實施例所繪示之圖11之步驟S1107的詳細流程圖。
S901、S903、S905、S907...資料寫入的步驟
Claims (15)
- 一種資料寫入方法,用於將一資料寫入至一可複寫式非揮發性記憶體模組,其中該資料寫入方法包括:壓縮該資料以產生一第一資料;判斷該第一資料的資料長度是否小於一預設長度;當該第一資料的資料長度非小於該預設長度時,輸出該第一資料作為一壓縮資料;當該第一資料的該資料長度小於該預設長度時,使用至少一填塞位元填補該第一資料以產生一第二資料並且將該第二資料作為該壓縮資料,其中該第二資料的一長度等於該預設長度;產生對應該壓縮資料的一錯誤校正碼;根據該壓縮資料與該錯誤校正碼產生一錯誤校正碼框;以及將該錯誤校正碼框寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第1項所述之資料寫入方法,其中根據該壓縮資料與該錯誤校正碼產生該錯誤校正碼框的步驟包括:合併該壓縮資料、該錯誤校正碼與一預設整墊資料來產生該錯誤校正碼框。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:接收另一資料; 壓縮該另一資料並且產生對應該另一資料的另一壓縮資料;產生對應該另一壓縮資料的另一錯誤校正碼;根據該另一壓縮資料與該另一錯誤校正碼產生另一錯誤校正碼框;以及將該錯誤校正碼框與該另一錯誤校正碼框寫入至該可複寫式非揮發性記憶體模組的多個實體頁面之中的同一個實體頁面中。
- 一種資料讀取方法,用於從一可複寫式非揮發性記憶體模組中讀取一資料,該資料讀取方法包括:從該可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框;根據一預設整墊資料從該錯誤校正碼框中獲取一未校正資料與一錯誤校正碼;依據該錯誤校正碼校正該未校正資料以產生一已校正資料;解壓縮該已校正資料的至少一部分來獲取一解壓縮資料;以及將該解壓縮資料輸出作為該資料,其中解壓縮該已校正資料的至少一部分來獲取該解壓縮資料的步驟包括:判斷該已校正資料是否包含至少一填塞位元;以及當該已校正資料包含該至少一填塞位元時,將該至少一填塞位元從該已校正資料中刪除以產生一第三資料,並且解壓縮該第三資料以獲取該解壓縮資料。
- 如申請專利範圍第4項所述之資料讀取方法,其中解壓縮該已校正資料的至少一部分來獲取該解壓縮資料的步驟包括:當該已校正資料未包含該至少一填塞位元時,解壓縮整個該已校正資料來獲取該解壓縮資料。
- 一種記憶體控制器,用於將來自於一主機系統的一資料寫入至一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至該主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面與該記憶體介面並且用以透過該主機介面接收該資料;一錯誤校正電路,耦接至該記憶體管理電路;以及一資料壓縮/解壓縮電路,耦接至該記憶體管理電路,其中該資料壓縮/解壓縮電路用以壓縮該資料以產生一第一資料,其中該資料壓縮/解壓縮電路判斷該第一資料的資料長度是否小於一預設長度,並且當該第一資料的資料長度非小於該預設長度時,該資料壓縮/解壓縮電路輸出該第一資料作為一壓縮資料,當該第一資料的該資料長度小於該預設長度時,該資料壓縮/解壓縮電路使用至少一填塞位元填補該第一資料以產生一第二資料並且將該第二資料作為該壓縮資料,其中該第二資料的一長度等於該預設長度, 其中該錯誤校正電路用以產生對應該壓縮資料的一錯誤校正碼,其中該記憶體管理電路根據該壓縮資料與該錯誤校正碼以產生一錯誤校正碼框,其中該記憶體管理電路將該錯誤校正碼框寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第6項所述之記憶體控制器,其中該記憶體管理電路合併該壓縮資料、該錯誤校正碼與一預設整墊資料來產生該錯誤校正碼框。
- 如申請專利範圍第6項所述之記憶體控制器,其中該可複寫式非揮發性記憶體模組具有多個實體頁面,其中該記憶體管理電路更用以從該主機系統接收另一資料,其中該資料壓縮/解壓縮電路更用以壓縮該另一資料並且產生對應該另一資料的另一壓縮資料,其中該錯誤校正電路更用以產生對應該另一壓縮資料的另一錯誤校正碼,其中該記憶體管理電路根據該另一壓縮資料與該另一錯誤校正碼產生另一錯誤校正碼框,其中該記憶體管理電路將該錯誤校正碼框與該另一錯誤校正碼框寫入至該些實體頁面之中的同一個實體頁面中。
- 一種記憶體控制器,用於從一可複寫式非揮發性記 憶體模組中讀取一資料,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面與該記憶體介面並且用以透過該主機介面將該讀取資料傳送給該主機系統;一錯誤校正電路,耦接至該記憶體管理電路;以及一資料壓縮/解壓縮電路,耦接至該記憶體管理電路,其中該記憶體管理電路用以從該可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框,其中該記憶體管理電路更用以根據一預設整墊資料從該錯誤校正碼框中獲取一未校正資料與一錯誤校正碼,其中該錯誤校正電路用以依據該錯誤校正碼校正該未校正資料以產生一已校正資料,其中該資料壓縮/解壓縮電路判斷該已校正資料是否包含至少一填塞位元,其中當該已校正資料包含該至少一填塞位元時,該資料壓縮/解壓縮電路將該至少一填塞位元從該已校正資料中刪除以產生一第三資料,解壓縮該第三資料以獲取一解壓縮資料,其中該記憶體管理電路將該解壓縮資料輸出作為該資料。
- 如申請專利範圍第9項所述之記憶體控制器, 其中當該已校正資料未包含該至少一填塞位元時,該資料壓縮/解壓縮電路解壓縮整個該已校正資料來獲取該解壓縮資料。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以從該主機系統接收一資料,其中該記憶體控制器更用以壓縮該資料以產生一第一資料,其中記憶體控制器判斷該第一資料的資料長度是否小於一預設長度,並且當該第一資料的資料長度非小於該預設長度時,記憶體控制器輸出該第一資料作為一壓縮資料,當該第一資料的該資料長度小於該預設長度時,該記憶體控制器使用至少一填塞位元填補該第一資料以產生一第二資料並且將該第二資料作為該壓縮資料,其中該第二資料的一長度等於該預設長度,其中該記憶體控制器更用以產生對應該壓縮資料的一錯誤校正碼,其中該記憶體控制器更用以根據該壓縮資料與該錯誤校正碼以產生一錯誤校正碼框,其中該記憶體控制器更用以將該錯誤校正碼框寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第11項所述之記憶體儲存裝置,其中該記憶體控制器合併該壓縮資料、該錯誤校正碼與一預設整墊資料來產生該錯誤校正碼框。
- 如申請專利範圍第11項所述之記憶體儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體頁面,其中該記憶體控制器更用以從該主機系統接收另一資料,其中該記憶體控制器壓縮該另一資料並且產生對應該另一資料的另一壓縮資料,其中記憶體控制器產生對應該另一壓縮資料的另一錯誤校正碼,其中記憶體控制器根據該另一壓縮資料與該另一錯誤校正碼產生另一錯誤校正碼框,其中記憶體控制器將該錯誤校正碼框與該另一錯誤校正碼框寫入至該些實體頁面之中的同一個實體頁面中。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以從該可複寫式非揮發性記憶體中讀取一資料並且將該資料傳送給該主機系統,其中該記憶體控制器用以從該可複寫式非揮發性記憶體模組中讀取一錯誤校正碼框, 其中該記憶體控制器更用以根據一預設整墊資料從該錯誤校正碼框中獲取一未校正資料與一錯誤校正碼,其中該記憶體控制器更用以依據該錯誤校正碼校正該未校正資料以產生一已校正資料,其中該記憶體控制器判斷該已校正資料是否包含至少一填塞位元,當該已校正資料包含該至少一填塞位元時,該記憶體控制器將該至少一填塞位元從該已校正資料中刪除以產生一第三資料,解壓縮該第三資料以獲取一解壓縮資料,並且將該解壓縮資料輸出作為該資料。
- 如申請專利範圍第14項所述之記憶體儲存裝置,其中當該已校正資料未包含該至少一填塞位元時,該記憶體控制器解壓縮整個該已校正資料來獲取該解壓縮資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099146917A TWI459396B (zh) | 2010-12-30 | 2010-12-30 | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
US13/071,523 US9336081B2 (en) | 2010-12-30 | 2011-03-25 | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099146917A TWI459396B (zh) | 2010-12-30 | 2010-12-30 | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227747A TW201227747A (en) | 2012-07-01 |
TWI459396B true TWI459396B (zh) | 2014-11-01 |
Family
ID=46381903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099146917A TWI459396B (zh) | 2010-12-30 | 2010-12-30 | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9336081B2 (zh) |
TW (1) | TWI459396B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089561A1 (en) | 2012-09-26 | 2014-03-27 | Kiran Pangal | Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory |
TW201416849A (zh) * | 2012-10-30 | 2014-05-01 | Jmicron Technology Corp | 錯誤檢查及校正方法以及相關錯誤檢查及校正電路 |
CN103810054A (zh) * | 2012-11-14 | 2014-05-21 | 智微科技股份有限公司 | 错误检查及校正方法以及相关错误检查及校正电路 |
US9389957B2 (en) * | 2013-09-03 | 2016-07-12 | Kabushiki Kaisha Toshiba | Memory controller, memory system, and memory control method |
US20150067436A1 (en) * | 2013-09-03 | 2015-03-05 | Sandisk Technologies Inc. | Nonvolatile Memory System Compression |
US9093158B2 (en) * | 2013-12-06 | 2015-07-28 | Sandisk Technologies Inc. | Write scheme for charge trapping memory |
CN105335096B (zh) * | 2014-08-12 | 2018-09-25 | 群联电子股份有限公司 | 数据管理方法、存储器控制电路单元以及存储器存储装置 |
TWI506634B (zh) * | 2014-11-06 | 2015-11-01 | Phison Electronics Corp | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 |
CN105653391B (zh) * | 2014-11-13 | 2018-11-02 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元及存储器储存装置 |
US10439650B2 (en) * | 2015-05-27 | 2019-10-08 | Quantum Corporation | Cloud-based solid state device (SSD) with dynamically variable error correcting code (ECC) system |
TWI588833B (zh) * | 2015-11-27 | 2017-06-21 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
KR102468721B1 (ko) * | 2017-12-20 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN109086057A (zh) * | 2018-09-14 | 2018-12-25 | 北京遥感设备研究所 | 一种基于dsp的数据与程序分离烧写方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235560A1 (en) * | 2005-07-15 | 2008-09-25 | Gs Ip Limited Liability Company | Flash Error Correction |
US20100088464A1 (en) * | 2008-10-06 | 2010-04-08 | Xueshi Yang | Compression Based Wear Leveling for Non-Volatile Memory |
US7809994B2 (en) * | 2006-05-17 | 2010-10-05 | Sandisk Corporation | Error correction coding for multiple-sector pages in flash memory devices |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
US20100281341A1 (en) * | 2009-05-04 | 2010-11-04 | National Tsing Hua University | Non-volatile memory management method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2010
- 2010-12-30 TW TW099146917A patent/TWI459396B/zh active
-
2011
- 2011-03-25 US US13/071,523 patent/US9336081B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235560A1 (en) * | 2005-07-15 | 2008-09-25 | Gs Ip Limited Liability Company | Flash Error Correction |
US7809994B2 (en) * | 2006-05-17 | 2010-10-05 | Sandisk Corporation | Error correction coding for multiple-sector pages in flash memory devices |
US20100088464A1 (en) * | 2008-10-06 | 2010-04-08 | Xueshi Yang | Compression Based Wear Leveling for Non-Volatile Memory |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
US20100281340A1 (en) * | 2009-04-30 | 2010-11-04 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US20100281341A1 (en) * | 2009-05-04 | 2010-11-04 | National Tsing Hua University | Non-volatile memory management method |
Also Published As
Publication number | Publication date |
---|---|
US9336081B2 (en) | 2016-05-10 |
US20120173955A1 (en) | 2012-07-05 |
TW201227747A (en) | 2012-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI459396B (zh) | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 | |
TWI459197B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI548990B (zh) | 記憶體儲存裝置及其還原方法與記憶體控制器 | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9690490B2 (en) | Method for writing data, memory storage device and memory control circuit unit | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
KR20130025415A (ko) | 고체-상태 드라이브의 성능 및/또는 신뢰성을 개선하는 방법 및 시스템 | |
CN112486725B (zh) | 一种对压缩数据进行纠错编码的方法和装置 | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
TW201913382A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN102591737B (zh) | 数据写入与读取方法、存储器控制器与存储器储存装置 | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI709850B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TWI541809B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI545576B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN114637630A (zh) | 异常断电恢复方法、存储器控制器及存储器存储装置 | |
CN117762347A (zh) | 跨单元编码方法和存储器存储装置 | |
CN117493233A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |