TW201421477A - 記憶體儲存裝置、其記憶體控制器與資料寫入方法 - Google Patents
記憶體儲存裝置、其記憶體控制器與資料寫入方法 Download PDFInfo
- Publication number
- TW201421477A TW201421477A TW101143308A TW101143308A TW201421477A TW 201421477 A TW201421477 A TW 201421477A TW 101143308 A TW101143308 A TW 101143308A TW 101143308 A TW101143308 A TW 101143308A TW 201421477 A TW201421477 A TW 201421477A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- type
- memory
- entity
- physical
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種資料寫入方法,用於包括緩衝記憶體與可複寫式非揮發性記憶體模組的記憶體儲存裝置。此方法包括接收複數筆資料,其中這複數筆資料包含一第一類資料及至少一第二類資料,其中第一類資料之容量小於資料量門檻值。此方法還包括將這複數筆資料暫存於緩衝記憶體,當判斷這複數筆資料符合預定條件後,將暫存於緩衝記憶體的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,此實體程式化單元組是由n個實體程式化單元所組成,n為正整數。此方法更包括同時得知第一類資料及至少部份的第二類資料之寫入狀態。
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等特性,故被廣泛地應用於數位相機、手機與MP3等各種可攜式電子裝置。而固態硬碟就是一種以快閃記憶體做為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存裝置的快閃記憶體模組會劃分為多個實體區塊,其中實體區塊更劃分為多個實體頁面,而實體區塊是快閃記憶體的抹除單位並且實體頁面是快閃記憶體的寫入單位。由於在程式化快閃記憶體之記憶胞時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的實體頁面(即,存有舊資料的頁面)直接進行寫入,而是必須先將此實體頁面抹除後方可重新程式化。特別是,由於快閃記憶體的抹除是以實體區塊為單位,因此當欲將存有舊資料的實體頁面執行抹除運作時,必須對此實體頁面所屬的整個實體區塊進行抹除。因此,快閃記憶體模組的實體區塊會被區分為資料區與閒置區,其中資料區的實體區塊是已被使用來
儲存資料的實體區塊,而備用區中的實體區塊是未被使用的實體區塊,其中當主機系統欲寫入資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置的控制電路會從備用區中提取實體區塊來寫入資料,並且將所提取的實體區塊會關聯為資料區。並且,當資料區的實體區塊被執行抹除運作(erase operation)後,已抹除的實體區塊會被關聯為備用區。
基於上述架構,對於採用快閃記憶體做為儲存媒體並需要保障資料安全寫入的應用來說,在處理每一個來自主機系統的寫入指令時,為了令寫入資料與實體頁面對齊,往往需要從快閃記憶體讀出舊有效資料來填補寫入資料,並且在將資料程式化至快閃記憶體後,將表示寫入動作完成與否的訊息傳送回主機系統。進一步來說,就須確保資料安全寫入的應用而言,需針對程式化結果回傳訊息以讓主機系統掌握資料寫入的狀態。不難想見,倘若主機系統連續下達數個寫入指令,便必須針對每個寫入指令執行上述程序,而由於每個寫入指令都需耗費相當的程式化時間(program time),因此難以在資料安全寫入的機制下提升寫入速度。
有鑑於此,本發明提供一種資料寫入方法、記憶體控制器與記憶體儲存裝置,能在提升寫入速度之餘,保障資料被安全寫入記憶體儲存裝置。
本發明提出一種資料寫入方法,用於記憶體儲存裝置,此記憶體儲存裝置包括緩衝記憶體與可複寫式非揮發性記憶體模組,而可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各實體抹除單元具有多個實體程式化單元。此方法包括接收複數筆資料,其中這複數筆資料包含一第一類資料及至少一第二類資料,其中第一類資料之容量小於資料量門檻值。此方法還包括將這複數筆資料暫存於緩衝記憶體,當判斷這複數筆資料符合預定條件後,將暫存於緩衝記憶體的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,此實體程式化單元組是由n個實體程式化單元所組成,n為正整數。此方法更包括同時得知第一類資料及至少部份的第二類資料之寫入狀態。
在本發明之一範例實施例中,其中當暫存在緩衝記憶體之複數筆資料的資料量到達實體程式化單元組的容量時,判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中當記憶體儲存裝置未接收到其他資料的時間超過時間門檻值時,判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中各實體程式化單元包括資料記錄區與可用冗餘區,而將暫存於緩衝記憶體的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組的步驟包括將第一類資料及至少部份的第二類資料寫入至組成實體程式化單元組的n個實體程式化單元
的資料記錄區,並且將第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量寫入至組成實體程式化單元組的n個實體程式化單元的可用冗餘區。
在本發明之一範例實施例中,此資料寫入方法更包括維護對應表,以記錄被程式化至實體程式化單元組之第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量與實體程式化單元組的對應關係,以及將對應表寫入至所有實體抹除單元中的一特定實體抹除單元,其中特定實體抹除單元所具有的實體程式化單元均不屬於實體程式化單元組。
在本發明之一範例實施例中,其中第一類資料及至少部份的第二類資料之寫入狀態係被一併回覆給發出複數筆資料的主機系統。
從另一觀點來看,本發明提出一種記憶體控制器,以管理可複寫式非揮發性記憶體模組,此記憶體控制器包括主機系統介面、記憶體介面、緩衝記憶體,以及記憶體管理電路。其中主機系統介面用以電連接主機系統。記憶體介面用以電連接可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各實體抹除單元具有多個實體程式化單元。記憶體管理電路電連接至主機系統介面、記憶體介面以及緩衝記憶體。其中記憶體管理電路接收複數筆資料,這複數筆資料包含一第一類資料及至少一第二類資料,其中第一類資料之容量小於資料量門檻值。記憶體管理電路將這複數筆資料暫存於
緩衝記憶體,當判斷這複數筆資料符合預定條件後,將暫存於緩衝記憶體的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,此實體程式化單元組是由n個實體程式化單元所組成,n為正整數。記憶體管理電路同時得知第一類資料及至少部份的第二類資料之寫入狀態。
在本發明之一範例實施例中,其中當暫存在緩衝記憶體之複數筆資料的資料量到達實體程式化單元組的容量時,記憶體管理電路判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中當記憶體管理電路未接收到其他資料的時間超過時間門檻值時,記憶體管理電路判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中各實體程式化單元包括資料記錄區與可用冗餘區,而記憶體管理電路在將第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組時,係將第一類資料及至少部份的第二類資料寫入至組成實體程式化單元組的n個實體程式化單元的資料記錄區,並且將第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量寫入至組成實體程式化單元組的n個實體程式化單元的可用冗餘區。
在本發明之一範例實施例中,其中記憶體管理電路更用以維護對應表,以記錄被程式化至實體程式化單元組之第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量與實體程式化單元組的對應關係,並將
對應表寫入至所有實體抹除單元中的一特定實體抹除單元,其中特定實體抹除單元所具有的實體程式化單元均不屬於實體程式化單元組。
在本發明之一範例實施例中,其中第一類資料及至少部份的第二類資料之寫入狀態係被一併回覆給發出複數筆資料的主機系統。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體模組、連接器,以及記憶體控制器。其中可複寫式非揮發性記憶體模組包括多個實體抹除單元,且各實體抹除單元具有多個實體程式化單元。連接器用以電連接主機系統。記憶體控制器電連接至可複寫式非揮發性記憶體模組與連接器,且記憶體控制器包括緩衝記憶體。記憶體控制器接收複數筆資料,這複數筆資料包含一第一類資料及至少一第二類資料,其中第一類資料之容量小於資料量門檻值。記憶體控制器將這複數筆資料暫存於緩衝記憶體,當判斷這複數筆資料符合預定條件後,將暫存於緩衝記憶體的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,此實體程式化單元組是由n個實體程式化單元所組成,n為正整數。記憶體控制器同時得知第一類資料及至少部份的第二類資料之寫入狀態。
在本發明之一範例實施例中,其中當暫存在緩衝記憶體之複數筆資料的資料量到達實體程式化單元組的容量時,記憶體控制器判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中當記憶體控制器未接收到其他資料的時間超過時間門檻值時,記憶體控制器判定複數筆資料符合預定條件。
在本發明之一範例實施例中,其中各實體程式化單元包括資料記錄區與可用冗餘區,而記憶體控制器在將第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組時,係將第一類資料及至少部份的第二類資料寫入至組成實體程式化單元組的n個實體程式化單元的資料記錄區,並且將第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量寫入至組成實體程式化單元組的n個實體程式化單元的可用冗餘區。
在本發明之一範例實施例中,其中記憶體控制器更用以維護對應表,以記錄被程式化至實體程式化單元組之第一類資料及至少部份的第二類資料所個別對應的邏輯存取位址及扇區數量與實體程式化單元組的對應關係,並將對應表寫入至所有實體抹除單元中的一特定實體抹除單元,其中特定實體抹除單元所具有的實體程式化單元均不屬於實體程式化單元組。
在本發明之一範例實施例中,其中第一類資料及至少部份的第二類資料之寫入狀態係被一併回覆給發出複數筆資料的主機系統。
基於上述,本發明是先累積多筆主機系統欲寫入的小量資料,並在將上述資料一併成功地程式化至可複寫式非揮發性記憶體模組後,將數個寫入完成訊息同時回覆給主
機系統以回應上述資料所對應的數個寫入指令。據此達到將資料快速且安全地寫入記憶體儲存裝置的目的。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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所支援的傳輸介面種類為通用序列匯流排(Universal Serial Bus,USB)介面。然而在其他範例實施例中,連接器102
的傳輸介面種類也可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、多媒體儲存卡(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更特別用以根據本範例實施例之資料寫入方法來處理主機系統1000欲寫入可複寫式非揮發性記憶體模組106的資料。本範例實施例之資料寫入方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體模組106電連接至記憶體控制器104。可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或任何具有相同特性的記
憶體模組。進一步來說,可複寫式非揮發性記憶體模組106包括多個實體抹除單元,而每一實體抹除單元具有多個實體程式化單元。屬於同一個實體抹除單元的實體程式化單元可被獨立地寫入且被同時地抹除。也就是說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。在本範例實施例中,實體抹除單元為實體區塊,而實體程式化單元為實體頁面,但本發明不以此為限。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043、記憶體介面1045,以及緩衝記憶體1047。
主機系統介面1041電連接至記憶體管理電路1043,並透過連接器102以電連接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為USB介面,而在其他範例實施例中,主機系統介面1041也可以是SATA介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104
的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100被運轉(power on)時,上述控制指令會被執行以實現本範例實施例之資料寫入方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之資料寫入方法。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之資料寫入方法。
此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。舉例來說,記
憶體管理電路1043包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是電連接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106中的實體抹除單元。記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體介面1045電連接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相電連接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體1047可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶
體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體1047電連接至記憶體管理電路1043,用以暫存來自於主機系統1000的指令與資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
在本發明之另一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002電連接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3002會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體模組106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序,以識別該筆資料是否存在錯誤位元。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006電連接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4、5是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
在以下描述可複寫式非揮發性記憶體模組106之實體
抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體抹除單元進行上述操作。
請參照圖4,本範例實施例之可複寫式非揮發性記憶體模組106包括實體抹除單元410(0)~410(N)。記憶體控制器104中的記憶體管理電路1043會將實體抹除單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體抹除單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。舉例來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以寫入新資料的實體抹除單元。換句話說,閒置區504的實體抹除單元為空或可使用的實體抹除單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。或者,當需要對一邏輯抹除單元執行資料合併程序時,記憶體管理電路
1043會從閒置區504提取實體抹除單元並將資料寫入其中,以替換原先映射此邏輯抹除單元的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的製造商與型號、可複寫式非揮發性記憶體模組106的實體抹除單元數、每一實體抹除單元的實體程式化單元數等等。
邏輯上屬於取代區508的實體抹除單元是用以在資料區502、閒置區504或系統區506中的實體抹除單元損毀時,取代損壞的實體抹除單元。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體抹除單元且資料區502的實體抹除單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體抹除單元來更換資料區502中損壞的實體抹除單元。倘若取代區508中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體管理電路1043會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體抹除單元會動態地變動。例如,用以輪替儲存資料的實體抹除單元會變動地屬於資料區502或閒置區504。
請參照圖5,記憶體管理電路1043係將資料區502的實體區塊410(0)~410(F-1)與閒置區504的實體區塊420(F)~420(S-1)分組為多個實體單元710(0)~710(C)、
710(D)~710(E),並且以實體單元為單位來管理可複寫式非揮發性記憶體模組106,其中各實體單元包括n個實體抹除單元,n為正整數。而C、D與E亦為正整數,其數值與n、F、S的數值有關。在一範例實施例中,每一實體單元是由兩個實體抹除單元所組成,倘若可複寫式非揮發性記憶體模組106包括兩個或兩個以上的記憶體晶粒(die),則這兩個實體抹除單元可分別屬於不同之記憶體晶粒。然而,必須瞭解的是,本發明不限於此。在另一範例實施例中,每一實體單元可由一個實體抹除單元所組成。或者,在又一範例實施例中,每一實體單元亦可由同一記憶體晶粒或不同記憶體晶粒中的至少一個實體抹除單元所組成。
為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043會配置數個邏輯單元610(0)~610(L)以映射資料區502中的實體單元710(0)~710(C)。其中,每一邏輯單元是由n個邏輯抹除單元所組成,而每一邏輯抹除單元包括數個邏輯程式化單元。進一步來說,邏輯單元610(0)~610(L)中的邏輯程式化單元會依序映射實體單元710(0)~710(C)中的實體程式化單元。
記憶體管理電路1043將所配置的邏輯單元610(0)~610(L)提供給主機系統1000,並維護邏輯位址-實體位址映射表以記錄邏輯單元610(0)~610(L)與實體單元710(0)~710(C)的映射關係。當主機系統1000欲存取一邏輯存取位址時,記憶體管理電路1043會確認此邏輯存取位
址所對應的邏輯抹除單元與邏輯程式化單元,再透過邏輯位址-實體位址映射表找到其所映射的實體程式化單元來進行存取。
在本範例實施例中,當主機系統1000欲將數筆資料寫入記憶體儲存裝置100而連續或間斷地下達複數個寫入指令時,記憶體管理電路1043接收這複數個寫入指令對應的複數筆資料,並將這複數筆資料暫存在緩衝記憶體1047,其中,這複數筆資料包括一筆第一類資料及至少一筆第二類資料,第一類資料的容量必須小於資料量門檻值(例如是16千位元組,但本發明並不以此為限),而第二類資料的容量是否超過資料量門檻值則不加以限制。當判定這複數筆資料符合預定條件之後,記憶體管理電路1043才將目前暫存於緩衝記憶體1047的第一類資料以及至少部份的第二類資料同時程式化至可複寫式非揮發性記憶體模組106中的一實體程式化單元組,此實體程式化單元組是由n個實體程式化單元所組成,n為正整數,亦即實體程式化單元組可具有1個實體程式化單元或多數個實體程式化單元。且記憶體管理電路1043會同時得知被程式化至可複寫式非揮發性記憶體模組106之第一類資料及至少部份第二類資料的寫入狀態。
舉例來說,假設每一實體單元是由4個實體抹除單元所組成(即,n等於4),且一個實體程式化單元的容量為4千位元組。那麼一個實體程式化單元組便包括4個實體程式化單元,且一個實體程式化單元的容量為16千位元
組。此外,在本範例實施例中是假設當暫存在緩衝記憶體1047之複數筆資料的資料量到達實體程式化單元組(即,4個實體程式化單元)之容量時,記憶體管理電路1043才判定這複數筆資料符合預定條件。
若主機系統1000欲寫入三筆資料,其中第一資料的資料量為9千位元組,第二資料的資料量為20千位元組,第三資料的資料量為11千位元組。在主機系統1000欲寫入第一資料而下達第一寫入指令時,若目前緩衝記憶體1047尚未儲存任何資料,則記憶體管理電路1043並不會在此時將第一寫入資料程式化至可複寫式非揮發性記憶體模組106,而是將第一資料暫存至緩衝記憶體1047。此外,記憶體管理電路1043亦會將第一資料對應的邏輯存取位址及扇區數量記錄在緩衝記憶體1047。
爾後,主機系統1000再下達對應第二與第三資料的寫入指令。記憶體管理電路1043在收到上述兩個寫入指令時,將對應的第二與第三資料暫存至緩衝記憶體1047,並且將第二與第三資料各別對應的邏輯存取位址及扇區數量記錄在緩衝記憶體1047。由於此時暫存於緩衝記憶體1047之複數筆資料的資料量已到達實體程式化單元組的容量,記憶體管理電路1043判定這複數筆資料符合預定條件,因而開始將資料實際地程式化至實體程式化單元組。
如圖6所示,在一範例實施例中,記憶體管理電路1043會從閒置區504中提取實體單元710(D),假設實體單元710(D)包括實體抹除單元410(F)、410(F+1)、410(F+2)、
410(F+3),且各實體抹除單元分別包括128個實體程式化單元(即,實體程式化單元PF(0)~PF(127)、PF+1(0)~PF+1(127)、PF+2(0)~PF+2(127)、PF+3(0)~PF+3(127))。由於在本範例實施例中,記憶體管理電路1043是以實體單元為單位來管理可複寫式非揮發性記憶體模組106,因此分別在實體抹除單元410(F)、410(F+1)、410(F+2)、410(F+3)中具有對應位置的實體程式化單元會被配對而組成一個實體程式化單元組。舉例來說,實體程式化單元PF(0)、PF+1(0)、PF+2(0)與PF+3(0)組成實體程式化單元組FP(0)、實體程式化單元PF(1)、PF+1(1)、PF+2(1)與PF+3(1)組成實體程式化單元組FP(1),以此類推。換言之,當實體單元是由n個實體抹除單元所組成,則實體程式化單元組便是由上述n個實體抹除單元中的n個實體程式化單元所組成。在本範例實施例中,如圖7所示,每一實體程式化單元包括資料記錄區D與可用冗餘區RS,其用途容後再述。記憶體管理電路1043會依序自實體單元710(D)取得實體程式化單元組來寫入資料,且屬於相同實體程式化單元組的所有實體程式化單元會一起被寫入資料。然而,由於每一實體程式化單元的容量為4千位元組,因此要寫入的資料必須補足為4千位元組的倍數。
延續前述範例實施例,記憶體管理電路1043在判定暫存於緩衝記憶體1047之複數筆資料已符合預定條件後,便下達程式化指令開始進行程式化操作。如圖8所示,首先,由於完整的第一資料WD1僅有9千位元組,為了將
其補足為4千位元組的倍數,記憶體管理電路1043額外填入3千位元組的填補資料DD1,進而將完整的第一資料WD1、額外填入的填補資料DD1,以及第一部分的第二資料WD2_1(資料量為4千位元組)程式化至實體程式化單元組FP(0)。
接著,記憶體管理電路1043將第二部分的第二資料WD2_2(資料量為14千位元組)與2千位元組的填補資料DD2程式化至實體程式化單元組FP(1),並且將第三部分的第二資料WD2_3(資料量為2千位元組)與2千位元組的填補資料DD3,以及完整的第三資料WD3(資料量為11千位元組)與1千位元組的填補資料DD4程式化至實體程式化單元組FP(2)。
在完成對實體程式化單元組FP(2)的程式化操作後,記憶體管理電路1043取得表示這三筆資料都被正常地寫入至可複寫式非揮發性記憶體模組106的三個寫入狀態。在一範例實施例中,記憶體管理電路1043會於此時將三個寫入完成訊息一併傳送給主機系統1000以回應先前收到的三個寫入指令。在另一範例實施例中,若這三筆資料有至少其中之一未被正常地寫入至可複寫式非揮發性記憶體模組106,則記憶體管理電路1043會將三個寫入錯誤訊息一併回覆給主機系統1000,以使主機系統1000重新下達欲寫入上述三筆資料的數個寫入指令。在又一範例實施例中,由於記憶體控制器104在可複寫式非揮發性記憶體模組106受控執行程式化操作之際仍可以接收來自主機系統
1000的資料,因此為了避免主機系統1000因等待回應而延後傳輸資料,記憶體管理電路1043會提前發出表示寫入成功的訊息,而在同時取得多筆資料的寫入狀態後,在寫入狀態表示有錯誤發生時才將數筆寫入錯誤訊息一併傳送至主機系統1000。也就是說,記憶體管理電路1043會將表示數個寫入指令之寫入狀態的數個訊息一併回覆給主機系統1000,然而本發明並不限制回覆訊息的時間點。
在上述將資料程式化至實體程式化單元組的過程中,記憶體管理電路1043是將實際資料(即,上述實施例中的第一至第三資料)以及填補資料程式化至組成實體程式化單元組之實體程式化單元的資料記錄區,並且將實際資料對應的邏輯存取位址及扇區數量寫入至組成實體程式化單元組之實體程式化單元的可用冗餘區。以實體程式化單元組FP(0)為例,其中實體程式化單元PF(0)的資料記錄區用以寫入4千位元組的第一資料,而此部份之第一資料所對應的邏輯存取位址與扇區數量便寫入在實體程式化單元PF(0)的可用冗餘區。實體程式化單元PF+1(0)的資料記錄區則用以寫入另外4千位元組的第一資料,而此部份之第一資料所對應的邏輯存取位址與扇區數量便寫入在實體程式化單元PF+1(0)的可用冗餘區。實體程式化單元PF+2(0)的資料記錄區則用以寫入剩下之1千位元組的第一資料與3千位元組的填補資料,而此部份之第一資料所對應的邏輯存取位址與扇區數量便寫入在實體程式化單元PF+2(0)的可用冗餘區。實體程式化單元PF+3(0)的資料記錄區則用以寫
入4千位元組的第二資料,而此部份之第二資料所對應的邏輯存取位址與扇區數量則寫入在實體程式化單元PF+3(0)的可用冗餘區。
除此之外,記憶體管理電路1043還會維護一對應表,以記錄被程式化至某一實體程式化單元組之第一類資料及至少部份的第二類資料的邏輯存取位址及扇區數量與此實體程式化單元組的對應關係,並且將對應表寫入至實體抹除單元410(0)~410(N)中的一特定實體抹除單元,其中特定實體抹除單元所具有的實體程式化單元均不屬於實體程式化單元組。延續圖8之範例實施例,記憶體管理電路1043會在對應表中記錄完整之第一資料的邏輯存取位址及扇區數量以及前4千位元組之第二資料的邏輯存取位址及扇區數量係對應實體程式化單元組FP(0)。另外14千位元組的第二資料的邏輯存取位址及扇區數量係對應實體程式化單元組FP(1)。最後2千位元組的第二資料的邏輯存取位址及扇區數量以及完整之第三資料的邏輯存取位址及扇區數量係對應實體程式化單元組FP(2)。日後當實體單元710(D)已被寫滿資料,或記憶體儲存裝置100滿足特定條件時,記憶體管理電路1043可根據對應表執行資料合併程序。
值得一提的是,倘若因記憶體儲存裝置100斷電等因素使得記憶體管理電路1043來不及將上述對應關係記錄至對應表,記憶體管理電路1043亦可在記憶體儲存裝置100復電時,讀取實體單元710(D)中各實體程式化單元組之實體程式化單元的可用冗餘區,以取得對應關係並將其
寫入對應表。
在上述範例實施例中,不論所接收到的寫入指令數量多寡,在已接收到至少一筆資料是屬於第一類資料(即,容量小於資料量門檻值)的情況下,當暫存在緩衝記憶體1047之複數筆資料的資料量未到達一個實體程式化單元組的容量(即,n個實體程式化單元的容量)時,記憶體管理電路1043便會繼續將來自主機系統1000的寫入資料暫存至緩衝記憶體1047,直到所暫存之複數筆資料的資料量到達一個實體程式化單元組的容量時,才將第一類資料以及至少部份的其他已暫存的資料正式程式化至實體程式化單元組。相較於每收到一個寫入指令便將其對應的寫入資料程式化至可複寫式非揮發性記憶體模組106,本範例實施例所採用的方式能提高系統整體程式化程序(program process)之效率,據此提高系統整體寫入資料的速度及更有效率的使用可複寫式非揮發性記憶體模組106。更進一步,記憶體管理電路1043能同時得知第一類資料及至少部份的其他已暫存資料之寫入狀態,並能在適當時間點將數個寫入完成訊息一併回覆給主機系統1000以回應先前收到的數個寫入指令,據此達到確保資料有被安全寫入記憶體儲存裝置100的目的。
在另一範例實施例中,若記憶體管理電路1043已接收到一筆第一類資料,且接收到一或多筆第二類資料。記憶體管理電路1043則會在未接收到其他資料的時間超過一時間門檻值時,判定暫存在緩衝記憶體1047的複數筆資
料符合預定條件。此時,無論暫存在緩衝記憶體1047之複數筆資料的資料量是否接近一個實體程式化單元組的容量,記憶體管理電路1043都會下達程式化指令以將第一類資料及至少部份的第二類資料程式化至實體程式化單元組。同樣地,記憶體管理電路1043會同時得知第一類資料及至少部份的第二類資料的寫入狀態,且對應上述資料之寫入狀態的數個訊息將被一併回覆給主機系統1000。
在上述範例實施例中,記憶體管理電路1043是從閒置區504提取一個專用的實體單元,並以其中的數個實體程式化單元來組成一實體程式化單元組。在此管理架構下,若主機系統1000所欲寫入的資料是要對某筆已存在的資料作修改,則記憶體管理電路1043不會採用上述機制將資料程式化至實體程式化單元組。
在另一範例實施例中,記憶體管理電路1043並不會將可複寫式非揮發性記憶體模組106中的實體抹除單元410(0)~410(N)進行如圖4之邏輯上的分組。基此,記憶體管理電路1043可從可複寫式非揮發性記憶體模組106取得任意n個實體抹除單元,並以其中的n個實體程式化單元來組成一實體程式化單元組。然而,由於在接收到包括一第一類資料與至少一第二類資料的複數筆資料時,將上述資料暫存至緩衝記憶體1047,並待這複數筆資料符合預定條件後,才將第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,且同時得知實際程式化之資料的寫入狀態的詳細運作方式與前述範例實施例相同或相
似,故在此不再贅述。
圖9是根據本發明之一範例實施例所繪示之資料寫入方法的流程圖,請參閱圖9。
首先如步驟S910所示,記憶體管理電路1043接收來自主機系統1000的複數筆資料。這複數筆資料包含一第一類資料及至少一第二類資料,其中第一類資料的容量小於資料量門檻值,第二類資料的容量則不加以限制。
接著在步驟S920中,記憶體管理電路1043將這複數筆資料暫存於緩衝記憶體1047,並且當判斷這複數筆資料符合預定條件後,將暫存於緩衝記憶體1047的第一類資料及至少部份的第二類資料同時程式化至實體程式化單元組,其是由n個實體程式化單元所組成。其中,預定條件例如是當這複數筆資料的資料量到達實體程式化單元組的容量及/或當記憶體管理電路1043未接收到其他資料的時間超過時間門檻值。
最後如步驟S930所示,記憶體管理電路1043同時得知被程式化之第一類資料及至少部份的第二類資料之寫入狀態。
綜上所述,本發明所述之資料寫入方法、記憶體儲存裝置及記憶體控制器能在主機系統欲寫入一筆第一類資料以及至少一筆第二類資料的情況下,將上述資料先暫存在緩衝記憶體,直到判定所暫存的資料符合預定條件之際,才將第一類資料與至少部份的第二類資料一併程式化至可複寫式非揮發性記憶體模組,據此可提高整體資料寫入的
效率。並且,本發明所述之資料寫入方法、記憶體儲存裝置及記憶體控制器能同時得知被程式化之資料的寫入狀態,並於適當時機將對應的數個訊息傳送至主機系統以回應先前收到的數個寫入指令,如此確保資料能被安全寫入記憶體儲存裝置,達到兼具效能與資料可靠度的效果。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧記憶體介面
1047‧‧‧緩衝記憶體
3002‧‧‧錯誤檢查與校正電路
3006‧‧‧電源管理電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯單元
710(0)~710(C)、710(D)~710(E)‧‧‧實體單元
PF(0)~PF(127)、PF+1(0)~PF+1(127)、PF+2(0)~PF+2(127)、PF+3(0)~PF+3(127)‧‧‧實體程式化單元
FP(0)、FP(1)、FP(2)、FP(127)‧‧‧實體程式化單元組
WD1‧‧‧第一資料
WD2_1、WD2_2、WD2_3‧‧‧第二資料
WD3‧‧‧第三資料
DD1、DD2、DD3、DD4‧‧‧填補資料
S910~S930‧‧‧本發明之一範例實施例所述之資料寫入方法的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4、5是根據本發明之一範例實施例所繪示之管理複寫式非揮發性記憶體模組的示意圖。
圖6是根據本發明之一範例實施例所繪示之實體單元
的示意圖。
圖7是根據本發明之一範例實施例所繪示之實體程式化單元的示意圖。
圖8是根據本發明之一範例實施例所繪示之將資料程式化至實體程式化單元組的示意圖。
圖9是根據本發明之一範例實施例所繪示之資料寫入方法的流程圖。
S910~S930‧‧‧本發明之一範例實施例所述之資料寫入方法的各步驟
Claims (18)
- 一種資料寫入方法,用於一記憶體儲存裝置,該記憶體儲存裝置包括一緩衝記憶體與一可複寫式非揮發性記憶體模組,而該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元,該方法包括:接收複數筆資料,其中該複數筆資料包含一第一類資料及至少一第二類資料,其中該第一類資料之容量小於一資料量門檻值;將該複數筆資料暫存於該緩衝記憶體,當判斷該複數筆資料符合一預定條件後,將暫存於該緩衝記憶體的該第一類資料及至少部份的該至少一第二類資料同時程式化至一實體程式化單元組,其中該實體程式化單元組是由n個實體程式化單元所組成,n為正整數;以及同時得知該第一類資料及該至少部份的該至少一第二類資料之寫入狀態。
- 如申請專利範圍第1項所述之資料寫入方法,其中當暫存在該緩衝記憶體之該複數筆資料的資料量到達該實體程式化單元組的容量時,判定該複數筆資料符合該預定條件。
- 如申請專利範圍第1項所述之資料寫入方法,其中當該記憶體儲存裝置未接收到其他資料的時間超過一時間門檻值時,判定該複數筆資料符合該預定條件。
- 如申請專利範圍第1項所述之資料寫入方法,其中 各該些實體程式化單元包括一資料記錄區與一可用冗餘區,而將暫存於該緩衝記憶體的該第一類資料及該至少部份的該至少一第二類資料同時程式化至該實體程式化單元組的步驟包括:將該第一類資料及該至少部份的該至少一第二類資料寫入至組成該實體程式化單元組的該n個實體程式化單元的該資料記錄區;以及將該第一類資料及該至少部份的該至少一第二類資料所個別對應的一邏輯存取位址及一扇區數量寫入至組成該實體程式化單元組的該n個實體程式化單元的該可用冗餘區。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:維護一對應表,以記錄被程式化至該實體程式化單元組之該第一類資料及該至少部份的該至少一第二類資料所個別對應的該邏輯存取位址及該扇區數量與該實體程式化單元組的一對應關係;以及將該對應表寫入至該些實體抹除單元中的一特定實體抹除單元,其中該特定實體抹除單元所具有的實體程式化單元均不屬於該實體程式化單元組。
- 如申請專利範圍第1項所述之資料寫入方法,其中該第一類資料及該至少部份的該至少一第二類資料之寫入狀態係被一併回覆給發出該複數筆資料的一主機系統。
- 一種記憶體控制器,以管理一可複寫式非揮發性記 憶體模組,該記憶體控制器包括:一主機系統介面,用以電連接一主機系統;一記憶體介面,用以電連接該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元;一緩衝記憶體;以及一記憶體管理電路,電連接至該主機系統介面、該記憶體介面、該緩衝記憶體,其中該記憶體管理電路接收複數筆資料,其中該複數筆資料包含一第一類資料及至少一第二類資料,其中該第一類資料之容量小於一資料量門檻值,該記憶體管理電路將該複數筆資料暫存於該緩衝記憶體,當判斷該複數筆資料符合一預定條件後,將暫存於該緩衝記憶體的該第一類資料及至少部份的該至少一第二類資料同時程式化至一實體程式化單元組,其中該實體程式化單元組是由n個實體程式化單元所組成,n為正整數,該記憶體管理電路同時得知該第一類資料及該至少部份的該至少一第二類資料之寫入狀態。
- 如申請專利範圍第7項所述之記憶體控制器,其中當暫存在該緩衝記憶體之該複數筆資料的資料量到達該實體程式化單元組的容量時,該記憶體管理電路判定該複數筆資料符合該預定條件。
- 如申請專利範圍第7項所述之記憶體控制器,其中 當該記憶體管理電路未接收到其他資料的時間超過一時間門檻值時,該記憶體管理電路判定該複數筆資料符合該預定條件。
- 如申請專利範圍第7項所述之記憶體控制器,其中各該些實體程式化單元包括一資料記錄區與一可用冗餘區,而該記憶體管理電路在將暫存於該緩衝記憶體的該第一類資料及該至少部份的該至少一第二類資料同時程式化至該實體程式化單元組時,係將該第一類資料及該至少部份的該至少一第二類資料寫入至組成該實體程式化單元組的該n個實體程式化單元的該資料記錄區,並將該第一類資料及該至少部份的該至少一第二類資料所個別對應的一邏輯存取位址及一扇區數量寫入至組成該實體程式化單元組的該n個實體程式化單元的該可用冗餘區。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以維護一對應表,以記錄被程式化至該實體程式化單元組之該第一類資料及該至少部份的該至少一第二類資料所個別對應的該邏輯存取位址及該扇區數量與該實體程式化單元組的一對應關係,並將該對應表寫入至該些實體抹除單元中的一特定實體抹除單元,其中該特定實體抹除單元所具有的實體程式化單元均不屬於該實體程式化單元組。
- 如申請專利範圍第7項所述之記憶體控制器,其中該第一類資料及該至少部份的該至少一第二類資料之寫入狀態係被一併回覆給發出該複數筆資料的該主機系統。
- 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元;一連接器,用以電連接一主機系統;以及一記憶體控制器,電連接至該可複寫式非揮發性記憶體模組與該連接器,該記憶體控制器包括一緩衝記憶體,該記憶體控制器接收複數筆資料,其中該複數筆資料包含一第一類資料及至少一第二類資料,其中該第一類資料之容量小於一資料量門檻值,該記憶體控制器將該複數筆資料暫存於該緩衝記憶體,當判斷該複數筆資料符合一預定條件後,將暫存於該緩衝記憶體的該第一類資料及至少部份的該至少一第二類資料同時程式化至一實體程式化單元組,其中該實體程式化單元組是由n個實體程式化單元所組成,n為正整數,該記憶體控制器同時得知該第一類資料及該至少部份的該至少一第二類資料之寫入狀態。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中當暫存在該緩衝記憶體之該複數筆資料的資料量到達該實體程式化單元組的容量時,該記憶體控制器判定該複數筆資料符合該預定條件。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中當該記憶體控制器未接收到其他資料的時間超過一時間門檻值時,該記憶體控制器判定該複數筆資料符合該預定條件。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中各該些實體程式化單元包括一資料記錄區與一可用冗餘區,而該記憶體控制器在將暫存於該緩衝記憶體的該第一類資料及該至少部份的該至少一第二類資料同時程式化至該實體程式化單元組時,係將該第一類資料及該至少部份的該至少一第二類資料寫入至組成該實體程式化單元組的該n個實體程式化單元的該資料記錄區,並將該第一類資料及該至少部份的該至少一第二類資料所個別對應的一邏輯存取位址及一扇區數量寫入至組成該實體程式化單元組的該n個實體程式化單元的該可用冗餘區。
- 如申請專利範圍第16項所述之記憶體儲存裝置,其中該記憶體控制器更用以維護一對應表,以記錄被程式化至該實體程式化單元組之該第一類資料及該至少部份的該至少一第二類資料所個別對應的該邏輯存取位址及該扇區數量與該實體程式化單元組的一對應關係,並將該對應表寫入至該些實體抹除單元中的一特定實體抹除單元,其中該特定實體抹除單元所具有的實體程式化單元均不屬於該實體程式化單元組。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該第一類資料及該至少部份的該至少一第二類資料之寫入狀態係被一併回覆給發出該複數筆資料的該主機系統。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101143308A TWI479492B (zh) | 2012-11-20 | 2012-11-20 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
US13/786,473 US8902671B2 (en) | 2012-11-20 | 2013-03-06 | Memory storage device, memory controller thereof, and method for programming data thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101143308A TWI479492B (zh) | 2012-11-20 | 2012-11-20 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201421477A true TW201421477A (zh) | 2014-06-01 |
TWI479492B TWI479492B (zh) | 2015-04-01 |
Family
ID=50727803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101143308A TWI479492B (zh) | 2012-11-20 | 2012-11-20 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8902671B2 (zh) |
TW (1) | TWI479492B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567550B (zh) * | 2015-03-04 | 2017-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US9996304B2 (en) | 2015-03-04 | 2018-06-12 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI550612B (zh) * | 2015-03-23 | 2016-09-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
CN106158024B (zh) * | 2015-03-30 | 2019-08-06 | 群联电子股份有限公司 | 数据编程方法、存储器存储装置及存储器控制电路单元 |
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
CN106843743B (zh) * | 2015-12-03 | 2019-10-25 | 群联电子股份有限公司 | 数据程序化方法、存储器储存装置及存储器控制电路单元 |
TWI591641B (zh) * | 2016-02-19 | 2017-07-11 | 群聯電子股份有限公司 | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI601011B (zh) | 2016-07-05 | 2017-10-01 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
CN114365097A (zh) * | 2019-08-27 | 2022-04-15 | 美光科技公司 | 受管理存储器系统中的写入缓冲器控制 |
TWI739676B (zh) * | 2020-11-25 | 2021-09-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112486417B (zh) * | 2020-12-03 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN117420965B (zh) * | 2023-12-18 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
TWI386802B (zh) * | 2009-07-03 | 2013-02-21 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
TW201102812A (en) * | 2009-07-15 | 2011-01-16 | A Data Technology Co Ltd | A storage device and data processing method thereof |
JP4987997B2 (ja) * | 2010-02-26 | 2012-08-01 | 株式会社東芝 | メモリシステム |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
-
2012
- 2012-11-20 TW TW101143308A patent/TWI479492B/zh active
-
2013
- 2013-03-06 US US13/786,473 patent/US8902671B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567550B (zh) * | 2015-03-04 | 2017-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US9996304B2 (en) | 2015-03-04 | 2018-06-12 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
Also Published As
Publication number | Publication date |
---|---|
TWI479492B (zh) | 2015-04-01 |
US8902671B2 (en) | 2014-12-02 |
US20140140142A1 (en) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI444825B (zh) | 記憶體儲存裝置、記憶體控制器與資料寫入方法 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201539455A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI611410B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TW201409230A (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201727492A (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TWI798680B (zh) | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
TW201935232A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
TW202344970A (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI541809B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 |