TWI428743B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI428743B TWI428743B TW099145890A TW99145890A TWI428743B TW I428743 B TWI428743 B TW I428743B TW 099145890 A TW099145890 A TW 099145890A TW 99145890 A TW99145890 A TW 99145890A TW I428743 B TWI428743 B TW I428743B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- data
- block
- physical block
- blocks
- 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
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種用於寫入更新資料至非揮發性記憶體模組的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對數位內容的儲存需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合使用者隨身攜帶作為數位檔案傳遞與交換的儲存媒體。
基於快閃記憶體的物理特性,在快閃記憶體記憶胞僅能進行單向的程式化(即,記憶胞中的位元僅能從1程式化為0),因此在快閃記憶體的記憶胞中寫入資料時必須先將記憶胞中先前所儲存的資料抹除後方能重新寫入新資料。
在快閃記憶體儲存系統的設計上,一般來說,快閃記憶體儲存系統的快閃記憶體實體區塊會分組為多個實體區塊(即,每一實體區塊是由一個或多個實體區塊所組成),該實體區塊中具有至少一快閃記憶體細胞(flash memory cell),每一細胞是由至少一電晶體所組成,如MOSFET或其他電晶體或邏輯電路,各該細胞可儲存至少一個位元,並且此些實體區塊會分組為資料區(data area)與閒置區(free area)。歸類為資料區的實體區塊中會儲存由寫入指令所寫入的資料,而閒置區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊,來寫入資料。為了能夠讓主機能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存系統會提供邏輯區塊以映射此些實體區塊。具體來說,快閃記憶體儲存系統會將主機所存取的邏輯存取位址轉換至對應的邏輯區塊,並且透過在邏輯區塊-實體區塊對映表(logical unit-physical unit mapping table)中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機僅需依據邏輯存取位址進行存取,而快閃記憶體儲存系統會依據邏輯區塊-實體區塊對映表對所對映的實體區塊進行資料的讀取或寫入。
具體來說,當主機欲將資料儲存於一邏輯區塊時,快閃記憶體儲存裝置會從閒置區中提取一實體區塊並且將新資料會寫入至從閒置區中提取的實體區塊(亦稱為子實體區塊),以替換原先映射此邏輯區塊的實體區塊(亦稱為母實體區塊)。之後,在適當時機,快閃記憶體儲存裝置會進行資料合併程序,以將母實體區塊和子實體區塊中的有效資料合併(即,將屬於此邏輯區塊的資料都合併至一個實體區塊中)。例如,快閃記憶體儲存裝置會將母實體區塊內的有效資料複製到子實體區塊,將此邏輯區塊重新映射至子實體區塊(即,此子實體區塊將被關聯至資料區),並且將原本資料區的母實體區塊進行抹除並關聯至閒置區。
基於上述快閃記憶體儲存系統的運作架構下,當主機對同一個邏輯區塊內相同的邏輯頁面反覆地進行資料更新時,快閃記憶體儲存裝置必須反覆地執行資料合併與資料抹除。因此,執行寫入指令所需的時間會增加,而影響快閃記憶體儲存裝置的存取效能。
本發明提供一種資料寫入方法、記憶體控制器與記憶體儲存系統,其能夠有效地縮短執行寫入指令的時間,由此提升寫入資料的速度。
本發明提出一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有根據一順序排列的多個實體頁面。本資料寫入方法包括將此些實體區塊至少分組為一資料區與一閒置區,並且配置多個邏輯區塊以映射資料區的實體區塊,其中每一邏輯區塊具有多個邏輯頁面。本資料寫入方法亦包括接收多筆更新資料,其中此些更新資料屬於此些邏輯頁面之中的多個連續之邏輯頁面,此些連續之邏輯頁面屬於第一邏輯區塊並且此第一邏輯頁面映射第一實體區塊。本資料寫入方法也包括判斷閒置區中任一實體區塊是否已被提取作為對應此第一實體區塊的子實體區塊。本資料寫入方法還包括,當閒置區的第二實體區塊已被提取作為對應第一實體區塊的子實體區塊時,判斷在此第二實體區塊中對應此些連續之邏輯頁面的實體頁面的至少其中一部份是否已儲存資料。本資料寫入方法更包括,當在第二實體區塊中對應此些連續之邏輯頁面的實體頁面的至少其中一部份已儲存資料時,執行第二寫入程序。在此,第二寫入程序包括:將儲存於第二實體區塊中的資料區分為第一資料與第二資料;從閒置區中提取第三實體區塊;將此些更新資料以及此第二資料寫入至第三實體區塊中;將第三實體區塊作為對應第一實體區塊的子實體區塊;以及對第二實體區塊執行抹除操作,其中,第一資料是儲存於第二實體區塊中對應此些連續之邏輯頁面的實體頁面中的資料並且二資料是儲存於第二實體區塊中非對應此些連續之邏輯頁面的實體頁面中的資料。
在本發明之一實施例中,上述之資料寫入方法更包括,當在第二實體區塊中對應此些連續之邏輯頁面的實體頁面未儲存資料時,將此些更新資料寫入至在第二實體區塊中對應此些連續之邏輯頁面的實體頁面中。
在本發明之一實施例中,上述之資料寫入方法更包括:在將此些更新資料寫入至在第二實體區塊中對應此些連續之邏輯頁面的實體頁面中之前,將在第一實體區塊中的有效資料複製到第二實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括,當閒置區中無任何實體區塊被提取作為對應第一實體區塊的子實體區塊時,從閒置區中提取一第四實體區塊,將此些更新資料寫入至第四實體區塊中並且將第四實體區塊作為第一實體區塊的子實體區塊。
本發明提出一種資料寫入方法,用於寫入多筆更新資料至一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有根據一順序排列的多個實體頁面,並且此些實體區塊被分組為一資料區與一閒置區。此外,多個邏輯區塊被配置以映射資料區的實體區塊,每一邏輯區塊映射資料區的實體區塊的其中之一並且具有多個邏輯頁面。再者,資料區的實體區塊之中的第五實體區塊映射邏輯區塊之中的第一邏輯區塊,閒置區的實體區塊之中的第六實體區塊已被提取作為對應第五實體區塊的子實體區塊,此些更新資料屬於第一邏輯區塊的邏輯頁面之中多個連續之邏輯頁面並且在第六實體區塊中對應此些連續之邏輯頁面的實體頁面的至少其中一部份已儲存資料。本資料寫入方法包括:判斷在第六實體區塊中對應此些連續之邏輯頁面的實體頁面是否屬於一特定頁面區域。本資料寫入方法更包括,當在第六實體區塊中對應此些連續之邏輯頁面的實體頁面屬於此特定頁面區域時,執行第二寫入程序。在此,第二寫入程序包括:將儲存於第六實體區塊中的資料區分為第一資料與第二資料;從閒置區的實體區塊中提取第七實體區塊;將此些更新資料以及第二資料寫入至此第七實體區塊中;將第七實體區塊作為對應第五實體區塊的該子實體區塊;以及對第六實體區塊執行抹除操作,其中第一資料是儲存於第六實體區塊中對應此些連續之邏輯頁面的實體頁面中的資料並且二資料是非儲存於第六實體區塊中對應此些連續之邏輯頁面的實體頁面中的資料。此外,特定頁面區域為每一實體區塊中包含起始實體頁面的多個連續實體頁面。
在本發明之一實施例中,上述之資料寫入方法更包括,當在第六實體區塊中對應此些連續之邏輯頁面的實體頁面不屬於上述特定頁面區域時,執行第一寫入程序。在此,第一寫入程序包括:將在第五實體區塊中的有效資料複製到第六實體區塊中;對第五實體區塊執行抹除操作;將第五實體區塊關聯至閒置區;將第一邏輯區塊映射至第六實體區塊;從閒置區中提取第八實體區塊;將此些更新資料寫入至第八實體區塊中;以及將第八實體區塊作為對應第六實體區塊的子實體區塊。
在本發明之一實施例中,上述之將更新資料寫入至第八實體區塊中的步驟包括:從第八實體區塊的實體頁面之中一起始實體頁面開始寫入此些更新資料。
在本發明之一實施例中,上述之將此些更新資料寫入至第八實體區塊中的步驟包括:將在第六實體區塊中的部分有效資料複製至第八實體區塊中;以及將此些更新資料寫入至在第八實體區塊中對應此些連續之邏輯頁面的實體頁面中。
本發明提出一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有根據一順序排列的多個實體頁面。本資料寫入方法包括將此些實體區塊至少分組為一資料區與一閒置區;並且配置多個邏輯區塊以映射資料區的實體區塊,其中每一邏輯區塊具有多個邏輯頁面。本資料寫入方法也包括接收至少一筆更新資料,其中此更新資料對應至此些邏輯頁面之中的至少一邏輯頁面,此至少一邏輯頁面屬於此些邏輯區塊之中的一第一邏輯區塊並且此第一邏輯區塊映射此些實體區塊之中的一第一實體區塊。本資料寫入方法還包括判斷閒置區的實體區塊之中的任一實體區塊是否已被提取作為對應此第一實體區塊的子實體區塊。本資料寫入方法更包括,當閒置區的實體區塊之中的第二實體區塊已被提取作為對應此第一實體區塊的子實體區塊時,判斷在第二實體區塊中對應此邏輯頁面的實體頁面是否已儲存資料,並且當在第二實體區塊中對應此邏輯頁面的實體頁面已儲存資料時,執行一第二寫入程序。在此,第二寫入程序包括:從閒置區的實體區塊中提取一第三實體區塊;將更新資料寫入至第三實體區塊中;將第三實體區塊作為對應第一實體區塊的子實體區塊;以及對第二實體區塊執行一抹除操作。
在本發明之一實施例中,其中當第二實體區塊具有對應此邏輯頁面之第一資料及非對應此邏輯頁面之第二資料時,上述第二寫入程序更包括將第二資料寫入至第三實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括在執行第二寫入程序前判斷第二實體區塊中對應此邏輯頁面的實體頁面是否位於一特定頁面區域,並當實體頁面位於此特定頁面區域時,方執行上述第二寫入程序。
本發明範例實施例提出一種記憶體控制器,用於管理可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統,並且記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至此主機介面與此記憶體介面,並且用以執行上述資料寫入方法。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。可複寫式非揮發性記憶體模組具有多個實體區塊。記憶體控制器耦接至此可複寫式非揮發性記憶體模組與此連接器,並且用以執行上述資料寫入方法。
基於上述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠減少執行資料合併,由此有效地縮短執行寫入指令的時間。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖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可實質地為可儲存資料的任意系統。雖然在本範例實施例中,主機系統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為安全數位(Secure Digital,SD)介面連接器。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、序列先進附件(Serial Advanced Technology Attachment,SATA)連接器、記憶棒(Memory Stick,MS)介面連接器、多媒體儲存卡(Multi Media Card,MMC)介面連接器、小型快閃(Compact Flash,CF)介面連接器、整合式驅動電子介面(lntegrated Device Electronics,IDE)連接器或其他適合的連接器。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體控制器104會根據本範例實施例的資料寫入方法來寫入資料。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。
可複寫式非揮發性記憶體模組106具有實體區塊310(0)~310(R)。每一實體區塊分別具有複數個實體頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成。然而,必須瞭解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。
更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單位。即,實體頁面為寫入資料的最小單位。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是扇區(Sector)或其他大小。每一實體頁面通常包括資料位元區D與冗餘位元區R。資料位元區D用以儲存使用者的資料,而冗餘位元區R用以儲存系統的資料(例如,錯誤檢查與校正碼)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據本發明第一範例實施例所繪示的記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體管理電路202會根據本範例實施例的資料寫入方法來將資料寫入至可複寫式非揮發性記憶體模組106。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以執行資料的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是對應連接器102為SD介面。。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是USB介面、PATA介面、IEEE 1394介面、PCI Express介面、SATA介面、MS介面、MMC介面、CF介面、IDE介面或其他適合的資料傳輸介面。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4與圖5是根據本發明第一範例實施例所繪示的管理實體區塊的示意圖。
請參照圖4,記憶體控制器104的記憶體管理電路202會將實體區塊310(0)~310(R)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502是已儲存資料的實體區塊,而閒置區504的實體區塊是用以替換資料區502的實體區塊。因此,閒置區504的實體區塊為空或可使用的實體區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區504中的實體區塊已被執行抹除運作,或者當閒置區504中的實體區塊被提取用於儲存資料之前所提取之實體區塊會被執行抹除運作。因此,閒置區504的實體區塊為可被使用的實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料,其中此系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區508中的實體區塊是用以取代壞實體區塊。例如,非揮發性記憶體模組106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當資料區502、閒置區504與系統區506中的實體區塊損毀時,預留於取代區508中的實體區塊會被用來取代損壞的實體區塊。因此,倘若取代區508中仍存有正常之實體區塊且發生實體區塊損毀時,記憶體管理電路202會從取代區508中提取正常的實體區塊來更換損毀的實體區塊。倘若取代區508中無正常之實體區塊且發生實體區塊損毀時,則記憶體管理電路202會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區502、閒置區504、系統區506與取代區508之實體區塊的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作期間,實體區塊關聯至資料區502、閒置區504、系統區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體區塊損壞而被取代區的實體區塊取代時,則原本取代區508的實體區塊會被關聯至閒置區504。
請參照圖5,如上所述,資料區502與閒置區504的實體區塊是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體管理電路202會配置邏輯區塊510(0)~510(H)以映射以上述輪替方式來儲存資料之實體區塊,並且將邏輯區塊510(0)~510(H)的邏輯頁面映射至主機系統1000所存取的邏輯存取位址,以利主機系統1000來存取資料。
例如,記憶體管理電路202會初始地將邏輯區塊510(0)~510(H)映射至資料區502的實體區塊。具體來說,當記憶體儲存裝置100被完成製造時,邏輯區塊510(0)~510(H)分別地映射至資料區502的實體區塊310(0)~310(D)。也就是說,一個邏輯區塊會映射資料區502中的一個實體區塊。在此,記憶體管理電路202會建立邏輯區塊-實體區塊映射表(logical unit-physical unit mapping table),以記錄邏輯區塊與實體區塊之間的映射關係。也就是說,記憶體管理電路202會將主機系統1000欲存取的邏輯存取位址轉換成對應之邏輯區塊的邏輯頁面,由此透過查詢邏輯區塊-實體區塊映射表於實體位址中存取資料。
圖6~圖8是根據本發明第一範例實施例所繪示的以一般循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的範例。
請同時參照圖6~圖8,例如,在邏輯區塊510(0)是映射至實體區塊310(0)的映射狀態下,當記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯區塊510(0)的邏輯頁面時,記憶體管理電路202會依據邏輯區塊-實體區塊映射表識別邏輯區塊510(0)目前是映射至實體區塊310(0)並且從閒置區504中提取實體區塊310(D+1)作為替換實體區塊來輪替實體區塊310(0)。然而,當記憶體管理電路202將新資料寫入至子實體區塊310(D+1)的同時,記憶體管理電路202不會立刻將實體區塊310(0)中的所有有效資料搬移至實體區塊310(D+1)而抹除實體區塊310(0)。具體來說,記憶體管理電路202會將實體區塊310(0)中欲寫入實體頁面之前的有效資料(即,實體區塊310(0)的第0實體頁面與第1實體頁面中的資料)複製至實體區塊310(D+1)的第0實體頁面與第1實體頁面中(如圖7所示),並且將新資料寫入至實體區塊310(D+1)的第2~4個實體頁面中(如圖8所示)。此時,記憶體管理電路202即完成寫入的運作。因為實體區塊310(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊310(0)中的其他有效資料搬移至實體區塊310(D+1)可能會造成無謂的搬移。此外,資料必須依序地寫入至實體區塊內的實體頁面,因此,記憶體管理電路202僅會先搬移欲寫入實體頁面之前的有效資料(即,儲存在實體區塊310(0)的第0實體頁面與第0實體頁面中資料),並且暫不搬移其餘有效資料(即,儲存在實體區塊310(0)的第5~K實體頁面中資料)。
在本範例實施例中,暫時地維持此等暫態關係的運作稱為開啟(open)母子區塊,並且原實體區塊(例如,上述實體區塊310(0))稱為母實體區塊而替換實體區塊(例如,上述與實體區塊310(D+1))稱為子實體區塊。
之後,當需要將實體區塊310(0)與實體區塊310(D+1)的資料合併(merge)時,記憶體管理電路202會將實體區塊310(0)與實體區塊310(D+1)的資料整併至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為資料合併程序或關閉(close)母子區塊。例如,如圖9所示,當進行關閉母子區塊時,記憶體管理電路202會將實體區塊310(0)中剩餘的有效資料(即,實體區塊310(0)的第5~K實體頁面中的資料)複製至替換實體區塊310(D+1)的第5實體頁面~第K實體頁面中,然後對實體區塊310(0)執行抹除操作並將抹除後之實體區塊310(0)關聯至閒置區504,同時,將實體區塊310(D+1)關聯至資料區502。也就是說,記憶體管理電路202會在邏輯區塊-實體區塊映射表中將邏輯區塊510(0)重新映射至實體區塊310(D+1)。此外,在本範例實施例中,記憶體管理電路202會建立閒置區實體區塊表(未繪示)來記錄目前被關聯至閒置區的實體區塊。值得一提的是,閒置區504中實體區塊的數目是有限的,基此,在記憶體儲存裝置100運作期間,開啟之母子區塊的組數亦會受到限制。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子區塊的組數達到上限時,記憶體管理電路202需關閉至少一組目前已開啟之母子區塊後才可執行此寫入指令。
例如,在快閃記憶體儲存裝置為SD記憶卡的例子中,可開啟之母子區塊的組數的上限一般是設定為1。例如,當在如圖8所示的狀態下並且記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯區塊510(1)的邏輯存取位址時,記憶體管理電路202必須先關閉母子區塊(如圖8所示),並且之後,再從閒置區504提取一個實體區塊來開啟母子區塊(如圖6~7所示)以完成資料寫入。
在本範例實施例中,記憶體控制器104的記憶體管理電路202除可執行上述之一般循序寫入模式之外,更用以使用特殊循序寫入模式來寫入資料。
具體來說,由於可複寫式非揮發性記憶體模組106的程式化規範要求必須從每一實體區塊的起始實體頁面(即,第0個實體頁面)開始寫入至最後一個實體頁面並且在每個位元僅能程式一次(即由僅能“1”變為“0”)的條件下。因此,一旦實體區塊的實體頁面被寫入資料後,若欲更新已寫入的資料就必須從閒置區504中提取另一實體區塊來重新進行圖8、圖6與圖7所示的操作。在本範例實施例中,倘若對應多個連續之邏輯頁面的資料已被寫入至子實體區塊中並且主機系統1000又再次更新此些連續之邏輯頁面時,記憶體管理電路202不會執行上述一般循序寫入模式,而會以特殊循序寫入模式來取代。具體來說,在特殊循序寫入模式中,記憶體控制器104的記憶體管理電路202不會執行上述關閉母子區塊的操作來進行資料合併,而是從閒置區504中提取另一個實體區塊作為新的子實體區塊來寫入屬於此連續之邏輯頁面的一筆或多筆更新資料。
圖9是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的範例,其用以表示當新的子實體區塊之更新資料頁面相同於舊的子實體區塊之資料頁面時之特殊循序寫入模式。
請參照圖9,當可複寫式非揮發性記憶體模組106的儲存狀態處於圖7所示的狀態下並且記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入更新資料UD至邏輯區塊510(0)的第0~4邏輯頁面時,記憶體管理電路202會從閒置區504提取一個空的實體區塊(例如,實體區塊310(D+2)),將更新資料UD寫入至實體區塊310(D+2)的第0~4實體頁面中,將實體區塊310(D+2)作為對應實體區塊310(0)的子實體區塊,並且對實體區塊310(D+1)執行抹除操作。
圖10是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的另一範例,其用以表示當新的子實體區塊之更新資料頁面多於舊的子實體區塊上之資料頁面時之特殊循序寫入模式。
請參照圖10,當可複寫式非揮發性記憶體模組106的儲存狀態處於圖7所示的狀態下並且記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入更新資料UD至邏輯區塊510(0)的第0~5邏輯頁面時,記憶體管理電路202會從閒置區504提取一個空的實體區塊(例如,實體區塊310(D+2)),將更新資料UD寫入至實體區塊310(D+2)的第0~5實體頁面中,將實體區塊310(D+2)作為對應實體區塊310(0)的子實體區塊,並且對實體區塊310(D+1)執行抹除操作。
圖11是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的另一範例,其用以表示當新的子實體區塊之更新資料頁面少於舊的子實體區塊上之資料頁面時之特殊循序寫入模式。
請參照圖11,當可複寫式非揮發性記憶體模組106的儲存狀態處於圖7所示的狀態下並且記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入更新資料UD至邏輯區塊510(0)的第2~3邏輯頁面時,記憶體管理電路202會從閒置區504提取一個空的實體區塊(例如,實體區塊310(D+2)),將實體區塊310(D+1)的第0~1個實體頁面中的有效資料複製到實體區塊310(D+2)中,將更新資料UD寫入至實體區塊310(D+2)的第2~3實體頁面中,將實體區塊310(D+1)的第4實體頁面中的有效資料複製到實體區塊310(D+2)中,將實體區塊310(D+2)作為對應實體區塊310(0)的子實體區塊,並且對實體區塊310(D+1)執行抹除操作。
基於上述,在本範例實施例中,當主機系統1000欲寫入更新資料至一個邏輯區塊的多個連續之邏輯頁面並且對應此邏輯區塊所映射的實體區塊的子實體區塊已儲存對應此些連續之邏輯頁面的資料時,記憶體管理電路202會從閒置區504中提取另一個實體區塊作為新的子實體區塊來儲存有效資料(如圖9~11所示),而不會執行資料合併(即,關閉母子區塊的操作),由此減少資料合併的操作並縮短執行寫入指令的時間。
圖12是根據本發明第一範例實施例所繪示之資料寫入方法的流程圖。
請參照圖12,當從主機系統1000中接收到欲寫入至多個連續之邏輯頁面的更新資料時,在步驟S1201中,記憶體管理電路202會識別此些連續之邏輯頁面所屬的邏輯區塊。
然後,在步驟S1203中,記憶體管理電路202會識別此邏輯區塊目前所映射的實體區塊(以下稱為第一實體區塊)。並且在步驟S1205中,記憶體管理電路202會判斷閒置區504中是否有任一實體區塊已被提取作為對應第一實體區塊的子實體區塊。
倘若閒置區504中未有任何實體區塊被作為對應第一實體區塊的子實體區塊時,在步驟S1207中,記憶體管理電路202會從閒置區504中提取一個實體區塊(下稱為第四實體區塊),並且將更新資料寫入至第四實體區塊中。具體來說,記憶體管理電路202會根據實體頁面的排列順序依序地將更新資料寫入至第四實體區塊的對應實體頁面中。特別是,當寫入更新資料之實體頁面非為起始實體頁面時,記憶體管理電路202會先將對應欲寫入之實體頁面之前的實體頁面的有效資料從第一實體區塊複製到第四實體區塊(如圖6~8所示)。之後,在步驟S1209中,記憶體管理電路202會將第四實體區塊作為對應第一實體區塊的子實體區塊。
倘若在閒置區504中已有一實體區塊(以下稱為第二實體區塊)被提取作為對應第一實體區塊的子實體區塊時,在步驟S1211中,記憶體管理電路202會判斷在第二實體區塊中對應此些連續之邏輯頁面的實體頁面的至少一部份是否已儲存資料。
倘若在第二實體區塊中對應此些連續之邏輯頁面的實體頁面的至少其中一部份已儲存資料時,在步驟S1213中記憶體管理電路202會將儲存於第二實體區塊中的資料區分為第一資料與第二資料。在此所謂第一資料是指儲存於第二實體區塊中對應此些連續之邏輯頁面的實體頁面中的資料(例如,圖11所示之實體區塊310(D+1)之第2與3實體頁面中之資料),並且第二資料是指儲存於第二實體區塊中非對應此些連續之邏輯頁面的實體頁面中的資料(例如,圖11所示之實體區塊310(D+1)之第0、1與4實體頁面中之資料)。
之後,在步驟S1215,中記憶體管理電路202會從閒置區504中提取一實體區塊(以下稱為第三實體區塊),並且將此些更新資料以及第二資料寫入至第三實體區塊中。
具體來說,更新資料以及第二資料會根據其對應的實體頁面依序地被寫入至第三實體區塊中。
然後,在步驟S1217中,記憶體管理電路202會將第三實體區塊作為對應第一實體區塊的子實體區塊並且對第二實體區塊執行抹除操作。在此,上述步驟S1213、步驟S1215與步驟S1217可稱為第二寫入程序。
倘若在第二實體區塊中對應此些連續之邏輯頁面的實體頁面的至少其中一部份已儲存資料時,在步驟S1219中記憶體管理電路202會將更新資料寫入至第二實體區塊中。類似地,記憶體管理電路202會先將對應欲寫入之實體頁面之前的實體頁面的有效資料從第一實體區塊複製到第二實體區塊。
本發明第二範例實施例的記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體控制器是在特定條件下才使用上述特殊循序寫入模式來寫入資料。以下將配合圖1A、圖2與圖3來描述第二範例實施例。
在第二範例實施例中,記憶體控制器104的記憶體管理電路202是使用相同於第一範例實施例的記憶體管理方式來管理可複寫式非揮發性記憶體模組106(如圖4與5所示)。此外,記憶體管理電路202會將每一實體區塊的實體頁面的一部分識別為特殊頁面區域。特別是,當對應多個連續之邏輯頁面的資料已被寫入至子實體區塊中並且主機系統1000又再次更新此些連續之邏輯頁面時,記憶體管理電路202會根據欲寫入更新資料之實體頁面是否屬於特殊頁面區域來決定以一般循序寫入模式或以特殊循序寫入模式來寫入此更新資料。例如,當欲寫入更新資料之實體頁面是否屬於特殊頁面區域時,記憶體管理電路202會以特殊循序寫入模式來寫入此更新資料,反之,記憶體管理電路202會以一般循序寫入模式來寫入此更新資料。
圖13是根據本發明第二範例實施例所繪示之區分實體區塊的實體頁面的示意圖。
請參照圖13,以實體區塊310(0)為例,記憶體管理電路202會從起始實體頁面(即,第0實體頁面)開始依序地將第0~P實體頁面設定為特殊頁面區域1302。在本發明範例實施例中,P為K/2。然而,必須瞭解的是,本發明不限於此。具體來說,由於特殊頁面區域是實體區塊之中排列較前之數個實體頁面並且實體頁面必須依序來寫入,因此,當主機系統1000反覆更新特殊頁面區域中的資料時,利用上述特殊循序寫入模式可有效地減少資料合併的操作。而當主機系統1000反覆更新非特殊頁面區域中的資料時,由於執行資料合併所需的時間較短,使用一般循序寫入模式可能會更有效率。
圖14是根據本發明第二範例實施例所繪示的資料寫入方法的流程圖,其繪示當對應多個連續之邏輯頁面的資料已被寫入至子實體區塊(以下稱為第六實體區塊)中並且主機系統1000又再次儲存更新資料至此些連續之邏輯頁面時的寫入步驟,其中此些連續之邏輯頁面是屬於同一個邏輯區塊(以下稱為第一邏輯區塊)並且第一邏輯區塊是映射的資料區502的一個實體區塊(以下稱為第五實體區塊)。
請參照圖14,在步驟S1401中,記憶體管理電路202會判斷在第六實體區塊中對應此些連續之邏輯頁面的實體頁面是否屬於特定頁面區域。
倘若在第六實體區塊中對應此些連續之邏輯頁面的實體頁面屬於特定頁面區域時,則在步驟S1403中,記憶體管理電路202會將儲存於第六實體區塊中的資料區分為第一資料與第二資料。相同於第一範例實施例中,在此,第一資料是指儲存於第二實體區塊中對應此些連續之邏輯頁面的實體頁面中的資料,並且第二資料是指儲存於第二實體區塊中非對應此些連續之邏輯頁面的實體頁面中的資料。
之後,在步驟S1405中,記憶體管理電路202會從閒置區504中提取一個實體區塊(以下稱為第七實體區塊)並且將更新資料以及第二資料寫入至第七實體區塊中。具體來說,更新資料以及第二資料會根據其對應的實體頁面依序地被寫入至第七實體區塊中。
然後,在步驟S1407中,記憶體管理電路202會將第七實體區塊作為對應第五實體區塊的該子實體區塊並且對第六實體區塊執行抹除操作。在此,上述步驟S1403、S1405、S1407可稱為第二寫入程序。
倘若在第六實體區塊中對應此些連續之邏輯頁面的實體頁面不屬於特定頁面區域時,則在步驟S1409中,記憶體管理電路202會將在第五實體區塊中的有效資料複製到第六實體區塊中,對第五實體區塊執行抹除操作,將第五實體區塊關聯至閒置區504,並且將第一邏輯區塊映射至第六實體區塊。
然後,在步驟S1411中,記憶體管理電路202會從閒置區504中提取一個實體區塊(以下稱為第八實體區塊),並且將更新資料寫入至第八實體區塊中。例如,在本發明範例實施例中,記憶體管理電路202會根據實體頁面的排列順序依序地將更新資料寫入至第八實體區塊的對應實體頁面中。特別是,當寫入更新資料之實體頁面非為起始實體頁面時,記憶體管理電路202會先將對應欲寫入之實體頁面之前的實體頁面的有效資料從第六實體區塊複製到第八實體區塊(如圖6~8所示)
除了上述將更新資料寫入至第八實體區塊的對應實體頁面中之外,在本發明另一範例實施例中,記憶體管理電路202亦可從第八實體區塊的起始實體頁面直接寫入更新資料,並且記錄差距值(offset)來識別第八實體區塊中邏輯頁面與實體頁面的映射關係,例如將欲寫入第3與4邏輯頁面之資料寫入第0與1實體頁面,但記錄差距值為3用以表示此第0與1實體頁面中之資料是分別對應至第3與4邏輯頁面。。
之後,在步驟S1413中,記憶體管理電路202會將第八實體區塊作為第六實體區塊的子實體區塊。在此,上述步驟S1409、S1411、S1413可稱為第一寫入程序。
綜上所述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存系統能夠在主機系統又重複儲存更新資料至相同的連續之邏輯頁面時,減少資料合併,由此提升寫入資料的速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...記憶體介面
252...緩衝記憶體
254...電源管理電路
256‧‧‧錯誤檢查與校正電路
310(0)~310(R)‧‧‧實體區塊
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
510(0)~510(H)‧‧‧邏輯區塊
UD‧‧‧更新資料
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217、S1219‧‧‧資料寫入的步驟
1302‧‧‧特殊頁面區域
S1401、S1403、S1405、S1407、S1409、S1411、S1413‧‧‧資料寫入的步驟
圖1A是根據本發明第一範例實施例繪示主機系統與記憶體儲存裝置。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明第一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4與圖5是根據本發明第一範例實施例所繪示之管理實體區塊的示意圖。
圖6~圖8是根據本發明第一範例實施例所繪示的以一般循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的範例。
圖9是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的範例。
圖10是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的另一範例。
圖11是根據本發明第一範例實施例所繪示之以特殊循序寫入模式寫入資料至可複寫式非揮發性記憶體模組的另一範例。
圖12是根據本發明第一範例實施例所繪示之資料寫入方法的流程圖。
圖13是根據本發明第二範例實施例所繪示之區分實體區塊的實體頁面的示意圖。
圖14是根據本發明第二範例實施例所繪示的資料寫入方法的流程圖。
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217、S1219‧‧‧資料寫入的步驟
Claims (21)
- 一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有根據一順序排列的多個實體頁面,該資料寫入方法包括:將該些實體區塊至少分組為一資料區與一閒置區;配置多個邏輯區塊以映射該資料區的該些實體區塊,其中每一該些邏輯區塊具有多個邏輯頁面;接收多筆更新資料,其中該些更新資料對應至該些邏輯頁面之中的多個連續之邏輯頁面,該些連續之邏輯頁面屬於該些邏輯區塊之中的一第一邏輯區塊並且該第一邏輯區塊映射該些實體區塊之中的一第一實體區塊;判斷該閒置區的該些實體區塊之中的任一實體區塊是否已被提取作為對應該第一實體區塊的一子實體區塊;當該閒置區的該些實體區塊之中的一第二實體區塊已被提取作為對應該第一實體區塊的該子實體區塊時,判斷該第二實體區塊是否已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料;以及當該第二實體區塊已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料時,執行一第二寫入程序,該第二寫入程序包括:將儲存於該第二實體區塊中的資料區分為一第一資料與一第二資料,其中該第一資料是屬於該些連續之邏輯頁面的至少其中一部份的舊資料並且該第 二資料是不屬於該些連續之邏輯頁面的有效資料;從該閒置區的該些實體區塊中提取一第三實體區塊;將該些更新資料以及該第二資料寫入至該第三實體區塊中;將該第三實體區塊作為對應該第一實體區塊的該子實體區塊;以及對該第二實體區塊執行一抹除操作。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:當該第二實體區塊未儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料時,將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中。
- 如申請專利範圍第2項所述之資料寫入方法,更包括:在將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中之前,將在該第一實體區塊中的有效資料複製到該第二實體區塊中。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:當該閒置區的該些實體區塊之中的無任何實體區塊被提取作為對應該第一實體區塊的該子實體區塊時,從該閒置區的該些實體區塊中提取一第四實體區塊,將該些更 新資料寫入至該第四實體區塊中並且將該第四實體區塊作為該第一實體區塊的該子實體區塊。
- 一種資料寫入方法,用於寫入多筆更新資料至一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有根據一順序排列的多個實體頁面,該些實體區塊被分組為一資料區與一閒置區,多個邏輯區塊被配置以映射該資料區的該些實體區塊,每一該些邏輯區塊映射該資料區的該些實體區塊的其中之一並且具有多個邏輯頁面,該資料區的該些實體區塊之中的一第五實體區塊映射該些邏輯區塊之中的一第一邏輯區塊,該閒置區的該些實體區塊之中的一第六實體區塊已被提取作為對應該第五實體區塊的一子實體區塊,該些更新資料屬於該第一邏輯區塊的該些邏輯頁面之中多個連續之邏輯頁面並且該第六實體區塊已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料,該資料寫入方法包括:判斷在該第六實體區塊中儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料的實體頁面是否屬於一特定頁面區域;以及當在該第六實體區塊中儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料的實體頁面屬於該特定頁面區域時,執行一第二寫入程序,該第二寫入程序包括:將儲存於該第六實體區塊中的資料區分為一第一資料與一第二資料,其中該第一資料是屬於該些連 續之邏輯頁面的至少其中一部份的舊資料並且該二資料是不屬於該些連續之邏輯頁面的有效資料;從該閒置區的該些實體區塊中提取一第七實體區塊;將該些更新資料以及該第二資料寫入至該第七實體區塊中;將該第七實體區塊作為對應該第五實體區塊的該子實體區塊;以及對該第六實體區塊執行一抹除操作,其中該特定頁面區域為每一該些實體區塊中包含一起始實體頁面的多個連續實體頁面。
- 如申請專利範圍第5項所述之資料寫入方法,更包括:當在該第六實體區塊中儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料的實體頁面不屬於該特定頁面區域時,執行一第一寫入程序,該第一寫入程序包括:將在該第五實體區塊中的有效資料複製到該第六實體區塊中;對該第五實體區塊執行該抹除操作;將該第五實體區塊關聯至該閒置區;將該第一邏輯區塊映射該第六實體區塊;從該閒置區的該些實體區塊中提取一第八實體區塊;將該些更新資料寫入至該第八實體區塊中;以及將該第八實體區塊作為該第六實體區塊的一子實體 區塊。
- 如申請專利範圍第6項所述之資料寫入方法,其中將該些更新資料寫入至該第八實體區塊中的步驟包括:從該第八實體區塊的該些實體頁面之中一起始實體頁面開始寫入該些更新資料。
- 如申請專利範圍第6項所述之資料寫入方法,其中將該些更新資料寫入至該第八實體區塊中的步驟包括:將在該第六實體區塊中的部分有效資料複製至該第八實體區塊中;以及將該些更新資料寫入至在該第八實體區塊中對應該些連續之邏輯頁面的該些實體頁面中。
- 一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有根據一順序排列的多個實體頁面,該資料寫入方法包括:將該些實體區塊至少分組為一資料區與一閒置區;配置多個邏輯區塊以映射該資料區的該些實體區塊,其中每一該些邏輯區塊具有多個邏輯頁面;接收至少一筆更新資料,其中該更新資料對應至該些邏輯頁面之中的至少一邏輯頁面,該至少一邏輯頁面屬於該些邏輯區塊之中的一第一邏輯區塊並且該第一邏輯區塊映射該些實體區塊之中的一第一實體區塊;判斷該閒置區的該些實體區塊之中的任一實體區塊是否已被提取作為對應該第一實體區塊的一子實體區塊; 當該閒置區的該些實體區塊之中的一第二實體區塊已被提取作為對應該第一實體區塊的該子實體區塊時,判斷在該第二實體區塊中對應該邏輯頁面的該實體頁面是否已儲存資料;以及當在該第二實體區塊中對應該邏輯頁面的該實體頁面已儲存資料時,執行一第二寫入程序,該第二寫入程序包括:從該閒置區的該些實體區塊中提取一第三實體區塊;將該更新資料寫入至該第三實體區塊中;將該第三實體區塊作為對應該第一實體區塊的該子實體區塊;以及對該第二實體區塊執行一抹除操作。
- 如申請專利範圍第9項所述之資料寫入方法,其中當該第二實體區塊具有對應該邏輯頁面之一第一資料及非對應該邏輯頁面之一第二資料時,該第二寫入程序更包括將該第二資料寫入至該第三實體區塊中。
- 如申請專利範圍第9項所述之資料寫入方法,更包括在執行該第二寫入程序前判斷該第二實體區塊中對應該邏輯頁面的該實體頁面是否位於一特定頁面區域,並當該實體頁面位於該特定頁面區域時,方執行該第二寫入程序。
- 一種記憶體控制器,用於管理一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有 多個實體區塊並且每一該些實體區塊具有根據一順序排列的多個實體頁面,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以將該些實體區塊至少分組為一資料區與一閒置區,並且配置多個邏輯區塊以映射該資料區的該些實體區塊,其中每一該些邏輯區塊具有多個邏輯頁面,其中該記憶體管理電路從該主機系統接收多筆更新資料,其中該些更新資料屬於該些邏輯頁面之中的多個連續之邏輯頁面,該些連續之邏輯頁面屬於該些邏輯區塊之中的一第一邏輯區塊並且該第一邏輯頁面映射該些實體區塊之中的一第一實體區塊,其中該記憶體管理電路判斷該閒置區的該些實體區塊之中的任一實體區塊是否已被提取作為對應該第一實體區塊的一子實體區塊,其中當該閒置區的該些實體區塊之中的一第二實體區塊已被提取作為對應該第一實體區塊的該子實體區塊時,該記憶體管理電路判斷該第二實體區塊是否已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料,其中當該第二實體區塊已儲存屬於該些連續之邏輯 頁面的至少其中一部份的舊資料時,該記憶體管理電路將儲存於該第二實體區塊中的資料區分為一第一資料與一第二資料,從該閒置區的該些實體區塊中提取一第三實體區塊,將該些更新資料以及該第二資料寫入至該第三實體區塊中,將該第三實體區塊作為對應該第一實體區塊的該子實體區塊,並且對該第二實體區塊執行一抹除操作,其中該第一資料是屬於該些連續之邏輯頁面的至少其中一部份的舊資料並且該第二資料是不屬於該些連續之邏輯頁面的有效資料。
- 如申請專利範圍第12項所述之記憶體控制器,其中當該第二實體區塊未儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料時,該記憶體管理電路將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中。
- 如申請專利範圍第13項所述之記憶體控制器,其中在將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中之前,該記憶體管理電路將在該第一實體區塊中的有效資料複製到該第二實體區塊中。
- 如申請專利範圍第14項所述之記憶體控制器,其中當該閒置區的該些實體區塊之中的無任何實體區塊被提取作為對應該第一實體區塊的該子實體區塊時,該記憶體管理電路從該閒置區的該些實體區塊中提取一第四實體區塊,將該些更新資料寫入至該第四實體區塊中並 且將該第四實體區塊作為該第一實體區塊的該子實體區塊。
- 如申請專利範圍第12項所述之記憶體控制器,其中當在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面的至少其中一部份已儲存資料時,該記憶體管理電路更判斷在該第二實體區塊中對應該些連續之邏輯頁面的實體頁面是否屬於一特定頁面區域,其中僅當在該第二實體區塊中對應該些連續之邏輯頁面的實體頁面屬於該特定頁面區域時,該記憶體管理電路才將儲存於該第二實體區塊中的資料區分為該第一資料與該第二資料,從該閒置區的該些實體區塊中提取該第三實體區塊,將該些更新資料以及該第二資料寫入至該第三實體區塊中,將該第三實體區塊作為對應該第一實體區塊的該子實體區塊,並且對該第二實體區塊執行該抹除操作。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體區塊並且每一該些實體區塊具有根據一順序排列的多個實體頁面;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以將該些實體區塊至少分組為一資料區與一閒置區,並且配置多個邏輯區塊以映射該資料區的該些實體區塊,其中每一該些邏輯區塊具有多個 邏輯頁面,其中該記憶體控制器從該主機系統接收多筆更新資料,其中該些更新資料屬於該些邏輯頁面之中的多個連續之邏輯頁面,該些連續之邏輯頁面屬於該些邏輯區塊之中的一第一邏輯區塊並且該第一邏輯頁面映射該些實體區塊之中的一第一實體區塊,其中該記憶體控制器判斷該閒置區的該些實體區塊之中的任一實體區塊是否已被提取作為對應該第一實體區塊的一子實體區塊,其中當該閒置區的該些實體區塊之中的一第二實體區塊已被提取作為對應該第一實體區塊的該子實體區塊時,該記憶體控制器判斷該第二實體區塊是否已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料,其中當該第二實體區塊已儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料時,該記憶體控制器將儲存於該第二實體區塊中的資料區分為一第一資料與一第二資料,從該閒置區的該些實體區塊中提取一第三實體區塊,將該些更新資料以及該第二資料寫入至該第三實體區塊中,將該第三實體區塊作為對應該第一實體區塊的該子實體區塊,並且對該第二實體區塊執行一抹除操作,其中該第一資料是屬於該些連續之邏輯頁面的至少其中一部份的舊資料並且該第二資料是不屬於該些連續之邏輯頁面的有效資料。
- 如申請專利範圍第17項所述之記憶體儲存裝置, 其中當該第二實體區塊未儲存屬於該些連續之邏輯頁面的至少其中一部份的舊資料時,該記憶體控制器將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中在將該些更新資料寫入至在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面中之前,該記憶體控制器將在該第一實體區塊中的有效資料複製到該第二實體區塊中。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中當該閒置區的該些實體區塊之中的無任何實體區塊被提取作為對應該第一實體區塊的該子實體區塊時,該記憶體控制器從該閒置區的該些實體區塊中提取一第四實體區塊,將該些更新資料寫入至該第四實體區塊中並且將該第四實體區塊作為該第一實體區塊的該子實體區塊。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中當在該第二實體區塊中對應該些連續之邏輯頁面的該些實體頁面的至少其中一部份已儲存資料時,該記憶體控制器更判斷在該第二實體區塊中對應該些連續之邏輯頁面的實體頁面是否屬於一特定頁面區域,其中僅當在該第二實體區塊中對應該些連續之邏輯頁面的實體頁面屬於該特定頁面區域時,該記憶體控制器才將儲存於該第二實體區塊中的資料區分為該第一資料與該第二資料,從該閒置區的該些實體區塊中提取該第三實 體區塊,將該些更新資料以及該第二資料寫入至該第三實體區塊中,將該第三實體區塊作為對應該第一實體區塊的該子實體區塊,並且對該第二實體區塊執行該抹除操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099145890A TWI428743B (zh) | 2010-12-24 | 2010-12-24 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/077,983 US8589620B2 (en) | 2010-12-24 | 2011-04-01 | Data writing method, memory controller, and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099145890A TWI428743B (zh) | 2010-12-24 | 2010-12-24 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227294A TW201227294A (en) | 2012-07-01 |
TWI428743B true TWI428743B (zh) | 2014-03-01 |
Family
ID=46318467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099145890A TWI428743B (zh) | 2010-12-24 | 2010-12-24 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8589620B2 (zh) |
TW (1) | TWI428743B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
CN103729303B (zh) * | 2014-01-20 | 2017-03-29 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
TWI512462B (zh) * | 2015-02-11 | 2015-12-11 | Phison Electronics Corp | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
CN105988880B (zh) * | 2015-02-17 | 2019-01-08 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US8095723B2 (en) * | 2007-02-16 | 2012-01-10 | Electronics And Telecommunications Research Institute | Log-based flash translation layer and operating method thereof |
TWI405209B (zh) * | 2009-04-01 | 2013-08-11 | Phison Electronics Corp | 資料管理方法及使用此方法的快閃儲存系統與控制器 |
US8375162B2 (en) * | 2009-06-03 | 2013-02-12 | Ocz Technology Group Inc. | Method and apparatus for reducing write cycles in NAND-based flash memory devices |
-
2010
- 2010-12-24 TW TW099145890A patent/TWI428743B/zh active
-
2011
- 2011-04-01 US US13/077,983 patent/US8589620B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20120166740A1 (en) | 2012-06-28 |
US8589620B2 (en) | 2013-11-19 |
TW201227294A (en) | 2012-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI457755B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI428743B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI463495B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
TWI440044B (zh) | 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |