TWI479313B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI479313B TWI479313B TW101124957A TW101124957A TWI479313B TW I479313 B TWI479313 B TW I479313B TW 101124957 A TW101124957 A TW 101124957A TW 101124957 A TW101124957 A TW 101124957A TW I479313 B TWI479313 B TW I479313B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- entity
- buffer
- indicator
- Prior art date
Links
Classifications
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種將資料量小於預設值的資料寫入至可複寫式非揮發性記憶體模組的資料寫入方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組會包括多個實體抹除單元,並且這些實體抹除單元必須先被抹除以後才能寫入新的資料。多個邏輯位址會被映射至部份的實體抹除單元,並且一個主機系統會下達存取這些邏輯位址的指令來寫入資料至可複寫式非揮發性記憶體模組。當多數的實體抹除單元中都儲存了資料以後,若主機系統欲再寫入其他資料,則這些實體抹除單元中的有效資料必須先被整併以產生閒置的實體抹除單元。然而,若一個實體抹除單元的有效資料屬於多個不同的邏輯位址,必須要整併屬於多個邏輯位址的有效資料才能產生一個閒置的實體抹除
單元。若整併有效資料的時間太久,可能會超過主機系統等待寫入成功訊息的時間上限。因此,如何避免一次整併太多有效資料,使得主機系統等待寫入成功訊息的時間超過上限,為此領域研究人員所關心的議題。
本發明的範例實施例中提出一種資料寫入方法,記憶體控制器與記憶體儲存裝置,可以減少主機系統等待寫入成功訊息的時間。
本發明一範例實施例中提出一種資料寫入方法,用於控制可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一個實體抹除單元包括多個實體程式化單元,這些實體抹除單元至少被劃分出資料區。此資料寫入方法包括:配置多個邏輯位址以映射至資料區的實體抹除單元;從資料區以外的實體抹除單元中將至少一個第一實體抹除單元劃分為第一緩衝區,將至少一個第二實體抹除單元劃分為第二緩衝區,其中第一實體抹除單元不同於第二實體抹除單元。此資料寫入方法還包括:接收第一寫入指令,此第一寫入指令指示將第一資料寫入至一個第一邏輯位址;判斷第一資料的資料量是否小於一個預設值;若第一資料的資料量小於預設值,將第一資料寫入至第一實體抹除單元或第二實體抹除單元;以及當把第一資料寫入至第二實體抹除單元時,取得第一實體抹除單元中的至少一個第一實體程式化單元所映射的
至少一個第二邏輯位址,並且整併屬於第二邏輯位址的有效資料,其中第二邏輯位址的數目小於一個整併門檻值。
在一範例實施例中,上述劃分第一緩衝區與劃分為第二緩衝區的步驟還包括:建立第一指標與第二指標,並且將第一指標與第二指標指向第一實體抹除單元或第二實體抹除單元中的其中一個實體程式化單元。
在一範例實施例中,上述的將第一資料寫入至第一實體抹除單元或第二實體抹除單元的步驟包括:將第一資料寫入第二指標所指向的第二實體程式化單元;以及,將第二指標移動至第三實體程式化單元,其中第三實體程式化單元的程式化順序是接續在第二實體程式化單元之後。
在一範例實施例中,上述至少一個第一實體程式化單元所映射的至少一個第二邏輯位址的步驟包括:依據第一指標所指向的實體程式化單元取得上述的第一實體程式化單元;以及將第一指標移動至第四實體程式化單元,並取得第四實體程式化單元所映射的第三邏輯位址。
在一範例實施例中,上述整併屬於第二邏輯位址的有效資料的步驟包括:整併屬於第三邏輯位址的有效資料;以及,將第一指標移動至第五實體程式化單元,其中第五實體程式化單元的程式化順序是接續在第四實體程式化單元之後。
在一範例實施例中,上述的資料寫入方法更包括:若第五實體程式化單元所儲存的資料已被整併,將第一指標移動至一個第六實體程式化單元,其中第六實體程式化單
元的程式化順序是接續在第五實體程式化單元之後。此方法還包括:當第一指標指向第一緩衝區中程式化順序為最後的實體程式化單元時,判斷第二指標是否指向第二緩衝區中程式化順序為最後的實體程式化單元,若是,將第一指標移動至第二緩衝區中程式化順序為第一的實體程式化單元。
以另一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器是用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一個實體抹除單元包括多個實體程式化單元。這些實體抹除單元至少被劃分出一資料區。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至資料區的實體抹除單元,從資料區以外的實體抹除單元中將至少一個第一實體抹除單元劃分為第一緩衝區,並將至少一個第二實體抹除單元劃分為第二緩衝區,其中第一實體抹除單元不同於第二實體抹除單元。記憶體控制器也用以接收指示將第一資料寫入至一個第一邏輯位址的第一寫入指令,並且判斷第一資料的資料量是否小於預設值。若第一資料的資料量小於預設值,記憶體控制器用以將第一資料寫入至第一實體抹除單元或第二實體抹除單元。當把第一資料寫入至第二實體抹除單元時,記憶體控制器用以取得第一實體抹除單元中的至少一個第一實體程式化單元所映射的至少一個第二邏輯位址,並且整併屬
於第二邏輯位址的有效資料。其中,第二邏輯位址的數目小於一個整併門檻值。
在一範例實施例中,上述的記憶體控制器還用以建立第一指標與第二指標,並且將第一指標與第二指標指向第一實體抹除單元或第二實體抹除單元中的其中一個實體程式化單元。
在一範例實施例中,若第一資料的資料量小於預設值,記憶體控制器還用以將第一資料寫入第二指標所指向的第二實體程式化單元,並且將第二指標移動至第三實體程式化單元。其中第三實體程式化單元的程式化順序是接續在第二實體程式化單元之後。
在一範例實施例中,上述記憶體控制器還用以依據第一指標所指向的實體程式化單元取得上述的第一實體程式化單元。記憶體控制器還用以將第一指標移動至第四實體程式化單元,並取得第四實體程式化單元所映射的第三邏輯位址。
在一範例實施例中,上述的記憶體控制器還用以整併屬於第三邏輯位址的有效資料,並且將第一指標移動至第五實體程式化單元。其中第五實體程式化單元的程式化順序是接續在第四實體程式化單元之後。
在一範例實施例中,若第五實體程式化單元所儲存的資料已被整併,記憶體控制器還用以將第一指標移動至一個第六實體程式化單元,其中第六實體程式化單元的程式化順序是接續在第五實體程式化單元之後。當第一指標指
向第一緩衝區中程式化順序為最後的實體程式化單元時,記憶體控制器還用以判斷第二指標是否指向第二緩衝區中程式化順序為最後的實體程式化單元後。若是,記憶體控制器還用以將第一指標移動至第二緩衝區中程式化順序為第一的實體程式化單元。
以另一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至主機系統。記憶體介面是用以耦接至可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,並且每一個實體抹除單元包括多個實體程式化單元。這些實體抹除單元至少被劃分出一資料區。記憶體管理電路是耦接至連接器與可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至資料區的實體抹除單元,從資料區以外的實體抹除單元中將至少一個第一實體抹除單元劃分為第一緩衝區,並將至少一個第二實體抹除單元劃分為第二緩衝區,其中第一實體抹除單元不同於第二實體抹除單元。記憶體管理電路也用以接收指示將第一資料寫入至一個第一邏輯位址的第一寫入指令,並且判斷第一資料的資料量是否小於預設值。若第一資料的資料量小於預設值,記憶體管理電路用以將第一資料寫入至第一實體抹除單元或第二實體抹除單元。當把第一資料寫入至第二實體抹除單元時,記憶體管理電路用以取得第一實體抹除單元中的至少一個第一實體程式化單元所映射的至少一個第二邏輯位址,並且整併屬
於第二邏輯位址的有效資料。其中,第二邏輯位址的數目小於一個整併門檻值。
在一範例實施例中,上述的記憶體管理電路還用以建立第一指標與第二指標,並且將第一指標與第二指標指向第一實體抹除單元或第二實體抹除單元中的其中一個實體程式化單元。
在一範例實施例中,若第一資料的資料量小於預設值,記憶體管理電路還用以將第一資料寫入第二指標所指向的第二實體程式化單元,並且將第二指標移動至第三實體程式化單元。第三實體程式化單元的程式化順序是接續在第二實體程式化單元之後。
在一範例實施例中,上述的記憶體管理電路還用以依據第一指標所指向的實體程式化單元取得上述的第一實體程式化單元。記憶體管理電路還用以將第一指標移動至第四實體程式化單元,並取得第四實體程式化單元所映射的第三邏輯位址。
在一範例實施例中,上述的記憶體管理電路還用以整併屬於第三邏輯位址的有效資料,並且將第一指標移動至第五實體程式化單元。其中第五實體程式化單元的程式化順序是接續在第四實體程式化單元之後。
在一範例實施例中,若第五實體程式化單元所儲存的資料已被整併,記憶體管理電路還用以將第一指標移動至一個第六實體程式化單元,其中第六實體程式化單元的程式化順序是接續在第五實體程式化單元之後。當第一指標
指向第一緩衝區中程式化順序為最後的實體程式化單元時,記憶體管理電路還用以判斷第二指標是否指向第二緩衝區中程式化順序為最後的實體程式化單元後。若是,記憶體管理電路還用以將第一指標移動至第二緩衝區中程式化順序為第一的實體程式化單元。
在一範例實施例中,上述的預設值為一個實體程式化單元的大小。
在一範例實施例中,上述的第一緩衝區的大小與第二緩衝區的大小相同。
基於上述,本發明實施例所提出的資料寫入方法、記憶體控制器與記憶體儲存裝置,可以在將資料量小於預設值的資料寫入一個緩衝區時,整併另一個緩衝區的有效資料,藉此減少主機系統等待寫入成功訊息的時間
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖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的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌
入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(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所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的
資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路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是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、SATA標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電
路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
請參照圖4,記憶體管理電路202可將可複寫式非揮發性記憶體模組106的實體抹除單元304(0)~304(R)邏輯地分組為多個區域,例如為資料區410、閒置區420、第一緩衝區430以及第二緩衝區440。
資料區410與閒置區420的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區410的實體抹除單元是已儲存資料的實體抹除單元,而閒置區420的實體抹除單元是用以替換資料區420的實體抹除單元。因此,閒置區420的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區420中的實體抹除單元已被執行抹除運作,或者當閒置區420中的實體抹除單元被提取用於儲存資料之前所提取之實體抹除單元會先被執行抹除運作。因此,閒置區420的實體抹除單元為可被使用的實體抹除單元。在一範例實施例中,閒置區420的實體抹除單元也可以用以替換其他區域中已經損壞的實體抹除單元。
第一緩衝區430包括了實體抹除單元304(B+1)~304(C)(亦稱為第一實體抹除單元)。第二緩衝區440包括了實體抹除單元304(C+1)~304(D)(亦稱第二實體抹除單元)。第一緩衝區460與第二緩衝區480是用以暫存小資料。舉例來說,當主機系統1000要寫入多筆資料,且這些資料的資料量都小於一個預設值時,記憶體管理電路202會將這些資料寫入至第一緩衝區460或是第二緩衝區。記憶體管理電路202會將這些小資料整併以後,再寫入至從閒置區420所提取的實體抹除單元中。
然而,記憶體管理電路202也可以將實體抹除單元304(0)~304(R)劃分出其他區域,例如,系統區。邏輯上屬於系統區的實體抹除單元是用以記錄系統資料,其中此系
統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。本發明並不限制將實體抹除單元304(0)~304(R)劃分出的區域的個數。
記憶體管理電路202也會配置多個邏輯位址450(0)~450(E),用以映射至資料區410的實體抹除單元304(0)~304(A)。例如,當記憶體儲存裝置100被主機系統1000上的作業系統透過檔案系統(例如,FAT 32)格式化時,邏輯位址450(0)~450(E)會分別地映射至資料區410的實體抹除單元304(0)~304(A)。在此,記憶體管理電路202會建立邏輯位址-實體抹除單元映射表(logical address-physical erase unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。在此範例實施例中,一個邏輯位址所對應的記憶體空間的大小等於一個實體抹除單元的大小,此時邏輯位址亦可被稱為邏輯抹除單元。而每一個邏輯位址450(0)~450(E)還包括多個邏輯程式化單元,用以映射至實體程式化單元。然而,在其他範例實施例中,每一個邏輯位址450(0)~450(E)所對應的記憶體空間也可以是多個實體抹除單元的大小、一個實體程式化單元的大小或其他數值,本發明並不在此限。
當主機系統1000要存取或更新實體抹除單元304(0)~304(R)中儲存的資料時,便會下達存取邏輯位址450(0)~450(E)的指令給記憶體管理電路202。例如,主機系統1000下達了一個寫入指令(亦稱第一寫入指令),此寫
入指令指示將第一資料502寫入至邏輯位址450(0)(亦稱第一邏輯位址)。記憶體管理電路202會先判斷第一資料502的資料量是否小於一個預設值。
若第一資料502的資料量並不小於預設值,則記憶體管理電路202會將第一資料502寫入至從閒置區420所提取的實體抹除單元中。舉例來說,第一資料502是要寫入至邏輯位址450(0),且邏輯位址450(0)是映射至實體抹除單元304(0)。當第一資料502不小於預設值時,記憶體管理電路202會從閒置區420提取實體抹除單元304(A+1)。記憶體管理電路202可將實體抹除單元304(0)中部份的資料複製到實體抹除單元304(A+1),並且將第一資料502寫入至實體抹除單元304(A+1)。也就是說,此時屬於邏輯位址450(0)的有效資料會儲存在實體抹除單元304(0)與實體抹除單元304(A+1)當中。此時實體抹除單元304(0)亦被稱為母實體抹除單元,而實體抹除單元304(A+1)亦被稱為子實體抹除單元。之後,記憶體管理電路202會整併屬於邏輯位址450(0)的有效資料。亦即,記憶體管理電路202會將實體抹除單元304(0)中儲存的有效資料複製到實體抹除單元304(A+1),把實體抹除單元304(A+1)關聯至資料區410,把實體抹除單元304(0)關聯至閒置區420,並且把邏輯位址450(0)重新映射至實體抹除單元304(A+1)。此時,屬於邏輯位址450(0)的有效資料便僅儲存在實體抹除單元304(A+1)中。
相反的,若第一資料502的資料量小於預設值,則記
憶體管理電路202會將第一資料502寫入至第一緩衝區430或是第二緩衝區440的實體抹除單元中。例如,此預設值為可複寫式非揮發性記憶體106中一個實體程式化單元的大小。在其他範例實施例中,此預設值也可以被設定多個實體程式化單元的大小或其他數值,本發明並不在此限。
當把第一資料502寫入至第二緩衝區440(或第一緩衝區430)的實體抹除單元時,記憶體管理電路202會取得第一緩衝區430(或第二緩衝區440)中一個實體抹除單元中的一個實體程式化單元,取得此實體程式化單元所映射的邏輯位址,並且整併屬於此邏輯位址的有效資料。在本說明書中,所稱的”整併”是表示取得屬於同一個邏輯位址的多個實體程式化單元,並將這些實體程式化單元儲存的有效資料寫入一個閒置的實體抹除單元。以下稱整併有效資料、整併邏輯位址或是整併多個實體程式化單元皆是指同一種操作,以下不再贅述。
圖5是根據一範例實施例說明主機系統要寫入資料量小於預設值的資料時的寫入操作示意圖。
請參照圖5,邏輯位址450(0)包括邏輯程式化單元508(0)~508(E),邏輯位址450(1)包括邏輯程式化單元510(0)~510(E),實體抹除單元304(B+1)包括實體程式化單元504(0)~504(E),並且實體抹除單元304(C+1)包括實體程式化單元506(0)~506(E)。舉例來說,主機系統1000是要將第一資料402寫入至邏輯程式化單元508(1),且記憶體
管理電路202判斷第一資料502的資料量小於預設值。記憶體管理電路202會取得屬於邏輯程式化單元508(1)的舊資料,並將部份的舊資料加入第一資料502,使得所產生的資料符合一個實體程式化單元的大小。接著,記憶體管理電路202會將所產生的資料寫入至實體程式化單元506(0)。
記憶體管理電路202會在一個映射表中,紀錄實體程式化單元506(0)儲存有屬於邏輯程式化單元508(1)的有效資料。換言之,此時實體程式化單元506(0)是映射至邏輯程式化單元508(1)(即,映射至邏輯位址450(0))。類似地,在寫入第一資料502之前,實體程式化單元504(0)已儲存了屬於邏輯程式化單元510(1)的有效資料,而實體程式化單元504(1)已儲存了屬於邏輯程式化單元510(E)的有效資料。也就是說,實體程式化單元504(0)與實體程式化單元504(1)皆映射至邏輯位址450(1)。
當記憶體管理電路202將第一資料502寫入至實體程式化單元506(0)時,便會取得實體程式化單元504(0)(亦稱第一實體程式化單元)所映射的邏輯位址450(1)(亦稱為第二邏輯位址),並且會整併屬於邏輯位址450(1)的有效資料。具體來說,記憶體管理電路202會讀取實體程式化單元504(0)與504(1)中儲存的資料以及讀取屬於邏輯位址450(1)的有效資料,並且將這些所讀取的資料一併寫入至從閒置區420所提取的一個實體抹除單元中。如此一來,屬於邏輯位址450(1)的有效資料便會集中地儲存在一個實
體抹除單元中,而此時實體程式化單元504(0)與504(1)所儲存的資料已是無效資料。最後,記憶體管理電路202便會回覆一個寫入成功訊息給主機系統1000,用以表示記憶體管理電路202已成功地執行寫入指令。換言之,記憶體管理電路202是在將第一資料502寫入至第二緩衝區440時,同時整併第一緩衝區430中的有效資料。在本範例實施例中,當第二緩衝區440中已沒有閒置的實體程式化單元時,第一緩衝區430亦已沒有儲存有效資料,因此可以經過抹除以後用以儲存下一個寫入指令所要寫入的資料。如此一來,可以避免一次整併太多有效資料,藉此減少主機系統1000等待寫入成功訊息的時間。
另一方面,記憶體管理電路202也可以在將第一資料502寫入至實體抹除單元304(B+1)時,同時整併實體抹除單元304(C+1)中的有效資料。換言之,第一緩衝區430與第二緩衝區440是交替的使用。
在一實施例中,記憶體管理電路202會建立兩個指標,這兩個指標會指向第一緩衝區430或第二緩衝區440中的一個實體程式化單元。記憶體管理電路202會根據這兩個指標所指向的位置來決定要將第一資料502寫入至第一緩衝區430或是第二緩衝區440。
圖6與圖7是根據一範例實施例說明根據第一指標與第二指標將第一資料寫入的範例示意圖。
請參照圖6,當記憶體管理電路202劃分出第一緩衝區430與第二緩衝區440時,會將第一指標630與第二指
標640指向實體程式化單元504(0)。其中,第一指標630指向的是有效資料的起始位址,第二指標640指向的是有效資料的結尾位址。在初始階段,即第一緩衝區430與第二緩衝區440都沒有儲存有效資料時,第一指標630與第二指標640會指向同一個實體程式化單元。
當記憶體管理電路202判斷第一資料502的資料量小於預設值時,會將第一資料502寫入第二指標所指向的實體程式化單元504(0)(亦稱第二實體程式化單元)。在完成第一資料502的寫入以後,記憶體管理電路202會將第二指標640移動至實體程式化單元504(1)(亦稱第三實體程式化單元)。以實體抹除單元304(B+1)的程式化順序來說,實體程式化單元504(1)是接續在實體程式化單元504(0)之後,即記憶體管理電路202必須先程式化實體程式化單元504(0)後才能程式化實體程式化單元504(1)。當記憶體管理電路202接收到下一個資料量小於預設值的資料時,便會把此資料寫入至實體程式化單元504(1)。換言之,第二指標640是用以指向下一筆資料量小於預設值的資料應該寫入的實體程式化單元。直到第一緩衝區430中程式化順序為最後的實體程式化單元604(E)也被寫入以後,記憶體管理電路202會將第二指標640移動至實體程式化單元506(0)。換言之,在圖6所示的範例實施例中,記憶體管理電路202會設定一個程式化順序,使得第二指標640會從一個緩衝區中程式化順序為最後的實體程式化單元移動至另一個緩衝區中程式化順序為第一的實體程式化單元。
當第二指標640指向實體程式化單元506(0)以後,便表示第一緩衝區430已沒有閒置的實體程式化單元,此時記憶體管理電路202會使用第二緩衝區440的實體抹除單元來儲存資料量小於預設值的資料,並且會整併第一緩衝區430的有效資料。當要執行整併的操作時,記憶體管理電路202會根據第一指標630所指向的實體程式化單元來取得至少一個實體程式化單元(亦稱第一實體程式化單元)。第一實體程式化單元中便儲存了所要整併的有效資料。接下來,記憶體管理電路202會移動第一指標630至下一個實體程式化單元(亦稱第四實體程式化單元)。記憶體管理電路202會取得第四實體程式化單元所映射的邏輯位址(亦稱第三邏輯位址)。記憶體管理電路202會整併屬於第三邏輯位址的有效資料。
請參照圖7,在此假設第二指標640已被記憶體管理電路202移動至實體程式化單元506(0),第一指標630指向實體程式化單元504(0),實體程式化單元504(0)中儲存有屬於邏輯程式化單元508(0)的有效資料,實體程式化單元504(1)儲存有屬於邏輯程式化單元510(0)的有效資料,並且實體程式化單元604(0)中儲存有屬於邏輯程式化單元508(1)的有效資料。當接收到第一資料502且判斷第一資料502的資料量小於預設值以後,記憶體管理電路202會將第一資料502寫入至第二指標640所指向的實體程式化單元506(0)。此時,記憶體管理電路202也會取得第一指標630所指向的實體程式化單元504(0),取得實體程式化
單元504(0)所映射的邏輯程式化單元508(0),並且取得邏輯程式化單元508(0)所屬的邏輯位址450(0)。記憶體管理電路202會取得在第一緩衝區430中屬於邏輯位址450(0)的有效資料,其儲存在實體程式化單元504(0)與實體程式化單元604(0)。接下來,記憶體管理電路202會整併屬於邏輯位址450(0)的有效資料。具體來說,記憶體管理電路202會讀取屬於邏輯位址450(0)的有效資料,並且把這些讀取的資料一併寫入至從閒置區420所提取的一個實體抹除單元,再把邏輯位址450(0)映射至此實體抹除單元。
在整併完屬於邏輯位址450(0)的有效資料以後,實體程式化單元504(0)與604(0)所儲存的已是無效資料。記憶體管理電路202會把第一指標630移動至實體程式化單元504(1)(亦稱第五實體程式化單元)。在一實施例中,記憶體管理電路202也可以繼續整併屬於實體程式化單元504(1)所映射的邏輯位址的有效資料,之後再接收下一個寫入指令。也就是說,記憶體管理電路202會一次整併屬於多個邏輯位址的有效資料。然而,整併屬於實體程式化單元504(1)所映射的邏輯位址的有效資料的動作與整併實體程式化單元504(0)所映射的邏輯位址的有效資料的動作類似,在此並不重複贅述。在整併完屬於實體程式化單元504(1)所映射的邏輯位址的有效資料以後,記憶體管理電路202才會回覆寫入成功訊息給主機系統1000。接下來,記憶體管理電路202可從主機系統1000接收下一個寫入指令。
在記憶體管理電路202移動第一指標630以後,若第一指標630所指向的實體程式化單元中的有效資料已被整併,則會跳到下一個有效資料未被整併的實體程式化單元進行整併或者循序的指向已被整併的實體程式化單元而不進行整併。舉例來說,當第一指標630被移動至實體程式化單元504(1)以後,若實體程式化單元504(1)所儲存的有效資料已被整併,則記憶體管理電路202會將第一指標再移動至程式化順序接續在實體程式化單元504(1)之後的實體程式化單元(亦稱第六程式化單元)。
另一方面,當第一指標630在第一緩衝區430已指向程式化順序為最後的實體程式化單元604(E)時,記憶體管理電路202會等第二指標640指向第二緩衝區440中最後一個實體程式化單元702(E)後,才將第一指標630指向第二緩衝區440中程式化順序為第一的實體程式化單元506(0)。也就是說,記憶體管理電路202會等到第二緩衝區440被寫滿時才會將第一指標630從第一緩衝區430移動至第二緩衝區440。
值得注意的是,在接收兩個寫入指令之間,記憶體管理電路202所能整併的邏輯位址的個數會小於一個整併門檻值。記憶體管理電路202會根據主機系統1000等待寫入成功訊息的時間上限以及執行整併動作所需的時間來設定整併門檻值。例如,當主機系統1000等待寫入成功訊息的時間上限增加時,整併門檻值便可以設定的更大。或者,當實體抹除單元304(0)~304(R)的寫入速度增加時,記憶體
管理電路202執行整併動作所需的時間也會減少,因此整併門檻值也可以設定的更大。例如,此整併門檻值為10,但本發明並不在此限。
換句話說,在圖6與圖7所示的範例實施例中,第二指標640是用以指向第一資料502應該寫入的實體程式化單元。第一指標630所指向的實體程式化單元則是記憶體管理電路202所要整併的實體程式化單元。
在本範例實施例中,第一緩衝區430的大小與第二緩衝區的大小相同。然而,在其他範例實施例中,第一緩衝區430的大小與第二緩衝區的大小也可以不相同,本發明並不在此限。或者,在其他範例實施例中,記憶體管理電路202會配置多個緩衝區,輪流地將資料量小於預設值的資料寫入這些緩衝區的其中之一,並且輪流地整併其中一個緩衝區的有效資料。本發明並不限制緩衝區的個數。
圖8是根據一範例實施例說明資料寫入方法的流程圖。
請參照圖8,在步驟S801中,記憶體管理電路202會配置多個邏輯位址以映射至資料區的實體抹除單元。在步驟S802中,記憶體管理電路202會從資料區以外的實體抹除單元中,將至少一個第一實體抹除單元劃分為第一緩衝區,並將至少一個第二實體抹除單元劃分為第二緩衝區。在步驟S804中,記憶體管理電路202會接收一個指示將資料寫入至第一邏輯位址的寫入指令。在步驟S806中,記憶體管理電路202會判斷此資料的資料量是否小於
一個預設值。
若資料量不小於預設值,在步驟S808中,記憶體管理電路202會將資料寫入至從閒置區所提取的實體抹除單元。
若資料量小於預設值,在步驟S8010中,記憶體管理電路202會將資料寫入至第一實體抹除單元或第二實體抹除單元。在步驟S812中,當把資料寫入至第二實體抹除單元時,記憶體管理電路202會取得第一實體抹除單元中的至少一個實體程式化單元所映射的至少一第二邏輯位址,並且整併屬於至少一第二邏輯位址的有效資料,其中至少一第二邏輯位址的數目小於一個整併門檻值。
然而,圖8中各步驟已詳細說明如上,在此便不再贅述。
綜上所述,本發明實施例所提出的資料寫入方法、記憶體控制器與記憶體儲存裝置,會劃分出多個緩衝區。其中,當資料量小於一個預設值的資料被寫入至一個緩衝區時,其他緩衝區的有效資料會被整併。如此一來,可以避免在執行某一個寫入指令時,整併太多的有效資料,進而減少主機系統等待寫入成功訊息的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
410‧‧‧資料區
420‧‧‧閒置區
430‧‧‧第一緩衝區
440‧‧‧第二緩衝區
450(0)~450(E)‧‧‧邏輯位址
502‧‧‧第一資料
508(0)~508(E)、510(0)~510(E)‧‧‧邏輯程式化單元
504(0)~504(E)、506(0)~506(E)、604(0)、604(E)、702(E)‧‧‧實體程式化單元
630‧‧‧第一指標
640‧‧‧第二指標
S801、S802、S804、S806、S808、S810、S812‧‧‧資料寫入方法的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5是根據一範例實施例說明主機系統要寫入的資料量小於預設值的資料時的寫入操作的示意圖。
圖6與圖7是根據一範例實施例說明根據第一指標與第二指標將第一資料寫入的範例示意圖。
圖8是根據一範例實施例說明資料寫入方法的流程圖。
S801、S802、S804、S806、S808、S810、S812‧‧‧資料寫入方法的步驟
Claims (24)
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,該些實體抹除單元至少被劃分出一資料區,該資料寫入方法包括:配置多個邏輯位址以映射至該資料區的該些實體抹除單元;從該資料區以外的該些實體抹除單元中將至少一實體抹除單元劃分為一第一緩衝區,並從該資料區以外的該些實體抹除單元中,將至少一實體抹除單元劃分為一第二緩衝區,其中該第一緩衝區的實體抹除單元不同於該第二緩衝區的實體抹除單元;接收一第一寫入指令,該第一寫入指令指示將一第一資料寫入至該些邏輯位址的一第一邏輯位址;判斷該第一資料的資料量是否小於一預設值;若該第一資料的資料量小於該預設值,將該第一資料寫入至該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元;以及當把該第一資料寫入至該第二緩衝區的實體抹除單元時,取得該第一緩衝區的實體抹除單元中的至少一第一實體程式化單元所映射的至少一第二邏輯位址,並且整併屬於所述至少一第二邏輯位址的有效資料,其中所述至少一第二邏輯位址的數目小於一整併門檻值。
- 如申請專利範圍第1項所述之資料寫入方法,其中將該些實體抹除單元中的至少一實體抹除單元劃分為該第一緩衝區,並將該些實體抹除單元中的至少一實體抹除單元劃分為該第二緩衝區的步驟包括:建立一第一指標與一第二指標,並且將該第一指標與該第二指標指向該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元中的該些實體程式化單元的其中之一。
- 如申請專利範圍第2項所述之資料寫入方法,其中若該第一資料的資料量小於該預設值,將該第一資料寫入至該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元的步驟包括:將該第一資料寫入該第二指標所指向的一第二實體程式化單元;以及將該第二指標移動至一第三實體程式化單元,其中該第三實體程式化單元的程式化順序是接續在該第二實體程式化單元之後。
- 如申請專利範圍第2項所述之資料寫入方法,其中當把該第一資料寫入至該第二緩衝區的實體抹除單元時,取得該第一緩衝區的實體抹除單元中的該至少一第一實體程式化單元所映射的該至少一第二邏輯位址的步驟包括:依據該第一指標所指向的實體程式化單元取得該至少一第一實體程式化單元;以及將該第一指標移動至一第四實體程式化單元,並取得 該第四實體程式化單元所映射的一第三邏輯位址。
- 如申請專利範圍第4項所述之資料寫入方法,其中整併屬於所述至少一第二邏輯位址的該有效資料的步驟包括:整併屬於該第三邏輯位址的有效資料;以及將該第一指標移動至一第五實體程式化單元,其中該第五實體程式化單元的程式化順序是接續在該第四實體程式化單元之後。
- 如申請專利範圍第5項所述之資料寫入方法,更包括:若該第五實體程式化單元所儲存的資料已被整併,將該第一指標移動至一第六實體程式化單元,其中該第六實體程式化單元的程式化順序是接續在該第五實體程式化單元之後;以及當該第一指標指向該第一緩衝區中程式化順序為最後的實體程式化單元時,判斷該第二指標是否指向該第二緩衝區中程式化順序為最後的實體程式化單元,若是,將該第一指標移動至該第二緩衝區中程式化順序為第一的實體程式化單元。
- 如申請專利範圍第1項所述之資料寫入方法,其中該預設值為該些實體程式化單元的其中之一的大小。
- 如申請專利範圍第1項所述之資料寫入方法,其中該第一緩衝區的大小與該第二緩衝區的大小相同。
- 一種記憶體儲存裝置,包括: 一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,其中每一該些實體抹除單元包括多個實體程式化單元,該些實體抹除單元至少被劃分出一資料區;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至該資料區的該些實體抹除單元,從該資料區以外的該些實體抹除單元中將至少一實體抹除單元劃分為一第一緩衝區,並從該資料區以外的該些實體抹除單元中,將至少一實體抹除單元劃分為一第二緩衝區,其中該第一緩衝區的實體抹除單元不同於該第二緩衝區的實體抹除單元,其中,該記憶體控制器用以接收一第一寫入指令,該第一寫入指令指示將一第一資料寫入至該些邏輯位址的一第一邏輯位址,並且判斷該第一資料的資料量是否小於一預設值,若該第一資料的資料量小於該預設值,該記憶體控制器用以將該第一資料寫入至該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元,當把該第一資料寫入至該第二緩衝區的實體抹除單元時,該記憶體控制器用以取得該第一緩衝區的實體抹除單元中的至少一第一實體程式化單元所映射的至少一第二邏輯位址,並且整併屬於所述至少一第二邏輯位址的有效資料,其中所述至少一第二邏輯位址的數目小於一整併門檻值。
- 如申請專利範圍第9項所述之記憶體儲存裝置,其中該記憶體控制器還用以建立一第一指標與一第二指標,並且將該第一指標與該第二指標指向該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元中的該些實體程式化單元的其中之一。
- 如申請專利範圍第10項所述之記憶體儲存裝置,其中若該第一資料的資料量小於該預設值,該記憶體控制器還用以將該第一資料寫入該第二指標所指向的一第二實體程式化單元,並且將該第二指標移動至一第三實體程式化單元,該第三實體程式化單元的程式化順序是接續在該第二實體程式化單元之後。
- 如申請專利範圍第10項所述之記憶體儲存裝置,其中該記憶體控制器還用以依據該第一指標所指向的一第四實體程式化單元取得該至少一第一實體程式化單元,以及將該第一指標移動至一第四實體程式化單元,並取得該第四實體程式化單元所映射的一第三邏輯位址。
- 如申請專利範圍第12項所述之記憶體儲存裝置,其中該記憶體控制器還用以整併屬於該第三邏輯位址的有效資料,並且將該第一指標移動至一第五實體程式化單元,該第五實體程式化單元的程式化順序是接續在該第四實體程式化單元之後。
- 如申請專利範圍第12項所述之記憶體儲存裝置,若該第五實體程式化單元所儲存的資料已被整併,該記憶體控制器還用以將該第一指標移動至一第六實體程式 化單元,其中該第六實體程式化單元的程式化順序是接續在該第五實體程式化單元之後,當該第一指標指向該第一緩衝區中程式化順序為最後的實體程式化單元時,該記憶體控制器還用以判斷該第二指標是否指向該第二緩衝區中程式化順序為最後的實體程式化單元,若是,該記憶體控制器將該第一指標移動至該第二緩衝區中程式化順序為第一的實體程式化單元。
- 如申請專利範圍第9項所述之記憶體儲存裝置,其中該預設值為該些實體程式化單元的其中之一的大小。
- 如申請專利範圍第9項所述之記憶體儲存裝置,其中該第一緩衝區的大小與該第二緩衝區的大小相同。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,該些實體抹除單元至少被劃分出一資料區;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以配置多個邏輯位址以映射至該資料區的該些實體抹除單元,從該資料區以外的該些實體抹除單元中將至少一實體抹除單元劃分為一第一緩衝區,並從該資料區以外的該些實體抹除單元中,將至少一實體抹除單元劃分為一第二緩衝區,其中該第一緩衝區的實體抹除單元不同於該 第二緩衝區的實體抹除單元,其中,該記憶體管理電路用以接收一第一寫入指令,該第一寫入指令指示將一第一資料寫入至該些邏輯位址的一第一邏輯位址,並且判斷該第一資料的資料量是否小於一預設值,若該第一資料的資料量小於該預設值,該記憶體管理電路用以將該第一資料寫入至該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元,當把該第一資料寫入至該第二緩衝區的實體抹除單元時,該記憶體管理電路用以取得該第一緩衝區的實體抹除單元中的至少一第一實體程式化單元所映射的至少一第二邏輯位址,並且整併屬於所述至少一第二邏輯位址的有效資料,其中所述至少一第二邏輯位址的數目小於一整併門檻值。
- 如申請專利範圍第17項所述之記憶體控制器,其中該記憶體管理電路還用以建立一第一指標與一第二指標,並且將該第一指標與該第二指標指向該第一緩衝區的實體抹除單元或該第二緩衝區的實體抹除單元中的該些實體程式化單元的其中之一。
- 如申請專利範圍第18項所述之記憶體控制器,其中若該第一資料的資料量小於該預設值,該記憶體管理電路還用以將該第一資料寫入該第二指標所指向的一第二實體程式化單元,並且將該第二指標移動至一第三實體程式化單元,該第三實體程式化單元的程式化順序是接續在該 第二實體程式化單元之後。
- 如申請專利範圍第18項所述之記憶體控制器,其中該記憶體管理電路還用以依據該第一指標所指向的實體程式化單元取得該至少一第一實體程式化單元,將該第一指標移動至一第四實體程式化單元,並取得該第四實體程式化單元所映射的一第三邏輯位址。
- 如申請專利範圍第20項所述之記憶體控制器,其中該記憶體管理電路還用以整併屬於該第三邏輯位址的有效資料,並且將該第一指標移動至一第五實體程式化單元,該第五實體程式化單元的程式化順序是接續在該第四實體程式化單元之後。
- 如申請專利範圍第21項所述之記憶體控制器,若該第五實體程式化單元所儲存的資料已被整併,該記憶體管理電路還用以將該第一指標移動至一第六實體程式化單元,其中該第六實體程式化單元的程式化順序是接續在該第五實體程式化單元之後,當該第一指標指向該第一緩衝區中程式化順序為最後的實體程式化單元時,該記憶體管理電路還用以判斷該第二指標是否指向該第二緩衝區中程式化順序為最後的實體程式化單元,若是,該記憶體管理電路將該第一指標移動至該第二緩衝區中程式化順序為第一的實體程式化單元。
- 如申請專利範圍第17項所述之記憶體控制器,其中該預設值為該些實體程式化單元的其中之一的大小。
- 如申請專利範圍第17項所述之記憶體控制器,其中該第一緩衝區的大小與該第二緩衝區的大小相同。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101124957A TWI479313B (zh) | 2012-07-11 | 2012-07-11 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/612,843 US9176865B2 (en) | 2012-07-11 | 2012-09-13 | Data writing method, memory controller, and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101124957A TWI479313B (zh) | 2012-07-11 | 2012-07-11 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201403316A TW201403316A (zh) | 2014-01-16 |
TWI479313B true TWI479313B (zh) | 2015-04-01 |
Family
ID=49914992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101124957A TWI479313B (zh) | 2012-07-11 | 2012-07-11 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9176865B2 (zh) |
TW (1) | TWI479313B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI649653B (zh) * | 2017-08-30 | 2019-02-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI489274B (zh) * | 2012-09-11 | 2015-06-21 | Etron Technology Inc | 能夠提升記憶體效能的方法和相關的記憶體系統 |
TWI582594B (zh) * | 2014-01-22 | 2017-05-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102245822B1 (ko) | 2014-11-26 | 2021-04-30 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
TWI571881B (zh) * | 2015-10-23 | 2017-02-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
TWI585769B (zh) | 2015-10-23 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體之偵測方法 |
CN106802867B (zh) * | 2015-11-25 | 2020-12-01 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据编程方法 |
CN107132989B (zh) * | 2016-02-26 | 2020-05-12 | 群联电子股份有限公司 | 数据程序化方法、存储器控制电路单元及存储器存储装置 |
TWI603193B (zh) * | 2016-03-31 | 2017-10-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102495539B1 (ko) * | 2018-07-16 | 2023-02-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN109815166B (zh) * | 2018-12-28 | 2020-10-09 | 深圳市德明利技术股份有限公司 | 一种存储数据的动态回收处理方法及存储装置 |
JP7516300B2 (ja) * | 2021-03-17 | 2024-07-16 | キオクシア株式会社 | メモリシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200535854A (en) * | 2003-12-30 | 2005-11-01 | Sandisk Corp | Data run programming |
TW200601030A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with phased program failure handling |
TW200601041A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with control data management |
US20070143567A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for data alignment in non-volatile memories with a directly mapped file storage system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US6892284B2 (en) * | 2002-09-11 | 2005-05-10 | Intel Corporation | Dynamic memory allocation for assigning partitions to a logical port from two groups of un-assigned partitions based on two threshold values |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
KR101465789B1 (ko) * | 2008-01-24 | 2014-11-26 | 삼성전자주식회사 | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 |
KR101581859B1 (ko) * | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
US8566510B2 (en) * | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
-
2012
- 2012-07-11 TW TW101124957A patent/TWI479313B/zh active
- 2012-09-13 US US13/612,843 patent/US9176865B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200535854A (en) * | 2003-12-30 | 2005-11-01 | Sandisk Corp | Data run programming |
TW200601030A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with phased program failure handling |
TW200601041A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with control data management |
US20070143567A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for data alignment in non-volatile memories with a directly mapped file storage system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI649653B (zh) * | 2017-08-30 | 2019-02-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
US10956074B2 (en) | 2017-08-30 | 2021-03-23 | Phison Electronics Corp. | Data storage method, memory storage device and memory control circuit unit |
Also Published As
Publication number | Publication date |
---|---|
TW201403316A (zh) | 2014-01-16 |
US9176865B2 (en) | 2015-11-03 |
US20140019670A1 (en) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI479313B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI423024B (zh) | 用於快閃記憶體的資料儲存方法及其控制器與儲存系統 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI421869B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI495998B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TW201303583A (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI521346B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI564901B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |