TWI540428B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI540428B TWI540428B TW100142248A TW100142248A TWI540428B TW I540428 B TWI540428 B TW I540428B TW 100142248 A TW100142248 A TW 100142248A TW 100142248 A TW100142248 A TW 100142248A TW I540428 B TWI540428 B TW I540428B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- block
- temporary
- data
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
Description
本發明是有關於一種資料寫入方法,且特別是有關於用於可複寫式非揮發性記憶體模組的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
依據每個記憶胞可儲存的位元數,反及(NAND)型快閃記憶體可區分為單階儲存單元(Single Level Cell,SLC)NAND型快閃記憶體、多階儲存單元(Multi Level Cell,MLC)NAND型快閃記憶體與三階儲存單元(Trinary Level Cell,TLC) NAND型快閃記憶體,其中SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料(即,”1”與”0”),MLC NAND型快閃記憶體的每個記憶胞可儲存2個位元的資料並且TLC NAND型快閃記憶體的每個記憶胞可儲存3個位元的資料。
在NAND型快閃記憶體中,實體頁面是由排列在同一條字元線上的數個記憶胞所組成。由於SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料,因此,在SLC NAND型快閃記憶體中,排列在同一條字元線上的數個記憶胞是對應一個實體頁面。
相對於SLC NAND型快閃記憶體來說,MLC NAND型快閃記憶體的每個記憶胞的浮動閘儲存層可儲存2個位元的資料,其中每一個儲存狀態(即,”11”、”10”、”01”與”00”)包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB)。例如,儲存狀態中從左側算起之第1個位元的值為LSB,而從左側算起之第2個位元的值為MSB。因此,排列在同一條字元線上的數個記憶胞可組成2個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面(low physical page),並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面(upper physical page)。特別是,下實體頁面的寫入速度會快於上實體頁面的寫入速度,並且當程式化上實體頁面發生錯誤時,下實體頁面所儲存之資料亦可能因此遺失。
類似地,在TLC NAND型快閃記憶體中,的每個記憶胞可儲存3個位元的資料,其中每一個儲存狀態(即,”111”、”110”、”101”、”100”、”011”、”010”、”001”與”000”)包括每一個儲存狀態包括左側算起之第1個位元的LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的MSB。因此,排列在同一條字元線上的數個記憶胞可組成3個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面,由此些記憶胞之CSB所組成的實體頁面稱為中實體頁面,並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面。特別是,對排列在同一條字元線上的數個記憶胞進行程式化時,僅能選擇僅程式化下實體頁面或者同時程式化下實體頁面、中實體頁面與上實體頁面,否則所儲存之資料可能會遺失。
基於上述,如何提升每一記憶胞可儲存多個位元的快閃記憶體的可靠度與效能是此領域技術人員所致力的目標。
本發明提供一種資料寫入方法、記憶體控制器與記憶體儲存裝置,其能夠提升資料存取的效率及可靠度。
本發明一範例實施例提出一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有依序排列的多個實體頁面組,每一實體頁面組具有一下實體頁面與一上實體頁面,寫入資料至下實體頁面的速度快於寫入資料至上實體頁面的速度。本資料寫入方法包括:將此些實體區塊至少分割(partition)為一資料區與一暫存區,並且根據資料區的實體區塊來配置多個邏輯區塊,其中每一邏輯區塊具有多個邏輯頁面。本資料寫入方法還包括:接收一更新資料,其中此更新資料欲被寫入至此些邏輯區塊之中的第一邏輯區塊。本資料寫入方法更包括從暫存區的實體區塊之中提取多個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的暫存實體區塊;僅使用此暫存實體區塊組的暫存實體區塊的下實體頁面來寫入此更新資料;以及從暫存實體區塊組的暫存實體區塊中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至資料區的實體區塊之中的第一實體區塊中,其中第一邏輯區塊的所有邏輯頁面的有效資料會依序地被寫入至第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
在本發明之一實施例中,上述之資料區的實體區塊和暫存區的實體區塊是彼此獨立地被操作。
在本發明之一實施例中,每一實體頁面組的實體頁面更包括一中實體頁面,並且寫入資料至下實體頁面的速度快於寫入資料至中實體頁面的速度。並且,上述之從暫存區的實體區塊之中提取實體區塊作為對應第一邏輯區塊的暫存實體區塊組的暫存實體區塊的步驟包括:從暫存區的實體區塊之中提取3個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的第一暫存實體區塊、第二暫存實體區塊與第三暫存實體區塊。
在本發明之一實施例中,上述之僅使用暫存實體區塊組的實體區塊的下實體頁面來寫入更新資料的步驟包括:將更新資料之中的第一部份資料寫入至第一暫存實體區塊的下實體頁面中;在將第一部份資料寫入至第一暫存實體區塊的下實體頁面中之後,將更新資料之中的第二部份資料寫入至第二暫存實體區塊的下實體頁面中;以及在將第二部份資料寫入至第二暫存實體區塊的下實體頁面中之後,將更新資料之中的第三部份有效資料寫入至第三暫存實體區塊的下實體頁面中。
在本發明之一實施例中,上述之資料寫入方法更包括:判斷暫存區的實體區塊之中未被使用的實體區塊的數目是否小於一預設門檻值;以及當暫存區的實體區塊之中未被使用的實體區塊的數目小於此預設門檻值時,從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括:在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之前,對第一實體區塊執行一抹除運作。
在本發明之一實施例中,上述之資料寫入方法更包括:在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之後,將第一邏輯區塊映射至第一實體區塊並且對此暫存實體區塊組的暫存實體區塊執行一抹除運作。
本發明一範例實施例提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有依序排列的多個實體頁面組,每一該些實體頁面組具有一下實體頁面與一上實體頁面,並且寫入資料至下實體頁面的速度快於寫入資料至上實體頁面的速度。本記憶體控制器包括主機系統、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,並且用以將此些實體區塊至少分割(partition)為一資料區與一暫存區。此外,記憶體管理電路更用以根該資料區的實體區塊來配置多個邏輯區塊,其中每一邏輯區塊具有多個邏輯頁面。另外,記憶體管理電路更用以從主機系統接收一更新資料,其中此更新資料欲被寫入至邏輯區塊之中的第一邏輯區塊。再者,記憶體管理電路更用以從暫存區的實體區塊之中提取多個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的多個暫存實體區塊,並且僅使用暫存實體區塊組的暫存實體區塊的下實體頁面來寫入此更新資料。並且,記憶體管理電路更用以從暫存實體區塊組的暫存實體區塊中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至資料區的該些實體區塊之中的第一實體區塊中,其中第一邏輯區塊的所有邏輯頁面的有效資料會依序地被寫入至第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
在本發明之一實施例中,上述之記憶體管理電路獨立地操作資料區的實體區塊和暫存區的實體區塊。
在本發明之一實施例中,每一實體頁面組更具有一中實體頁面,並且寫入資料至下實體頁面的速度快於寫入資料至中實體頁面的速度。此外,記憶體管理電路從暫存區的實體區塊之中提取3個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊。
在本發明之一實施例中,上述之記憶體管理電路將更新資料之中的第一部份資料寫入至第一暫存實體區塊的下實體頁面中。此外,記憶體管理電路在將第一部份資料寫入至第一暫存實體區塊的下實體頁面中之後,將更新資料之中的第二部份資料寫入至第二暫存實體區塊的下實體頁面中。再者,記憶體管理電路在將第二部份資料寫入至第二暫存實體區塊的下實體頁面中之後,將更新資料之中的第三部份資料寫入至第三暫存實體區塊的下實體頁面中。
在本發明之一實施例中,上述之記憶體管理電路更用以判斷暫存區的實體區塊之中未被使用的實體區塊的數目是否小於一預設門檻值,其中當暫存區的實體區塊之中未被使用的實體區塊的數目小於預設門檻值時,記憶體管理電路從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中。
在本發明之一實施例中,上述之記憶體管理電路更用以在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之前,對第一實體區塊執行抹除運作。
在本發明之一實施例中,上述之記憶體管理電路更用以在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之後,將第一邏輯區塊映射至第一實體區塊並且對此暫存實體區塊組的暫存實體區塊執行抹除運作。
本發明一範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有依序排列的多個實體頁面組,每一實體頁面組具有一下實體頁面與一上實體頁面,並且寫入資料至下實體頁面的速度快於寫入資料至上實體頁面的速度。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,並且用以將此些實體區塊至少分割(partition)為一資料區與一暫存區。此外,記憶體控制器更用以根該資料區的實體區塊來配置多個邏輯區塊,其中每一邏輯區塊具有多個邏輯頁面。另外,記憶體控制器更用以從主機系統接收一更新資料,其中此更新資料欲被寫入至邏輯區塊之中的第一邏輯區塊。再者,記憶體控制器更用以從暫存區的實體區塊之中提取多個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的多個暫存實體區塊,並且僅使用暫存實體區塊組的暫存實體區塊的下實體頁面來寫入此更新資料。並且,記憶體控制器更用以從暫存實體區塊組的暫存實體區塊中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至資料區的該些實體區塊之中的第一實體區塊中,其中第一邏輯區塊的所有邏輯頁面的有效資料會依序地被寫入至第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
在本發明之一實施例中,上述之記憶體控制器獨立地操作資料區的實體區塊和暫存區的實體區塊。
在本發明之一實施例中,每一實體頁面組更具有一中實體頁面,並且寫入資料至下實體頁面的速度快於寫入資料至中實體頁面的速度。此外,記憶體控制器從暫存區的實體區塊之中提取3個實體區塊作為對應第一邏輯區塊的暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊。
在本發明之一實施例中,上述之記憶體控制器將更新資料之中的第一部份資料寫入至第一暫存實體區塊的下實體頁面中。此外,記憶體控制器在將第一部份資料寫入至第一暫存實體區塊的下實體頁面中之後,將更新資料之中的第二部份資料寫入至第二暫存實體區塊的下實體頁面中。再者,記憶體控制器在將第二部份資料寫入至第二暫存實體區塊的下實體頁面中之後,將更新資料之中的第三部份資料寫入至第三暫存實體區塊的下實體頁面中。
在本發明之一實施例中,上述之記憶體控制器更用以判斷暫存區的實體區塊之中未被使用的實體區塊的數目是否小於一預設門檻值,其中當暫存區的實體區塊之中未被使用的實體區塊的數目小於預設門檻值時,記憶體控制器從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中。
在本發明之一實施例中,上述之記憶體控制器更用以在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之前,對第一實體區塊執行抹除運作。
在本發明之一實施例中,上述之記憶體控制器更用以在從暫存實體區塊組中將第一邏輯區塊的所有邏輯頁面的有效資料搬移至第一實體區塊中之後,將第一邏輯區塊映射至第一實體區塊並且對此暫存實體區塊組的暫存實體區塊執行抹除運作。
基於上述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠有效地提升儲存資料的可靠度與與速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、平行先進附件(Parallel Advanced Technology Attachment,PATA)標準、高速周邊零件連接介面(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所寫入之資料。
在本範例實施例中,每一實體區塊分別具有複數個實體頁面組並且每一實體頁面組包括由位於同一條字元線之記憶胞所構成的至少一個實體頁面,其中屬於同一個實體區塊之實體頁面必須被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。
每一實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,每一實體區塊是由258個實體頁面所組成,並且每一實體頁面的容量為8千位元組(Kilobyte,KB)。然而,必須瞭解的是,本發明不限於此。
在本範例實施例中,可複寫式非揮發性記憶體模組106為一三階儲存單元(Trinary Level Cell,TLC)NAND型快閃記憶體模組。然而,必須瞭解的是,可複寫式非揮發性記憶體模組106並非限於TLCNAND型快閃記憶體模組。在本發明另一範例實施例中,可複寫式非揮發性記憶體模組106亦可是其他具有相同特性的記憶體模組。
圖3A與圖3B是根據本範例時實施例所繪示之記憶胞儲存架構與實體區塊的範例示意圖。
請參照圖3A,可複寫式非揮發性記憶體模組106的每個記憶胞的儲存狀態可被識別為”111”、”110”、”101”、”100”、”011”、”010”、”001”或”000”(如圖3A所示),其中左側算起之第1個位元為LSB、從左側算起之第2個位元為CSB以及從左側算起之第3個位元為MSB。此外,排列在同一條字元線上的數個記憶胞可組成3個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面,由此些記憶胞之CSB所組成的實體頁面稱為中實體頁面,並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面。
請參照圖3B,一個實體區塊是由多個實體頁面組所組成,其中每個實體頁面組包括由排列在同一條字元線上的數個記憶胞所組成的下實體頁面、中實體頁面與上實體頁面。例如,在實體區塊中,屬於下實體頁面的第0個實體頁面、屬於中實體頁面頁面的第1個實體頁面和屬於上實體頁面的第2個實體頁面會被視為一個實體頁面組。類似地,第3、4、5個實體頁面會被視為一個實體頁面組,並且以此類堆其他實體頁面亦是依據此方式被區分為多個實體頁面組。
圖4是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。必須瞭解的是,圖4所繪示之記憶體控制器僅為一個範例,本發明不限於此。
請參照圖4,記憶體控制器104包括記憶體管理電路302、主機介面304、記憶體介面306、緩衝記憶體308、電源管理電路310、錯誤檢查與校正電路312。
記憶體管理電路302用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路302具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路302的控制指令是以韌體型式來實作。例如,記憶體管理電路302具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路302的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路302具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路302的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路302的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路302包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體區塊;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面304是耦接至記憶體管理電路302並且用以接收與識別主機系統1000所傳送的指令與資料。在本範例實施例中,主機介面304是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面304亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面306是耦接至記憶體管理電路302並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面306轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體308是耦接至記憶體管理電路302並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。例如,緩衝記憶體302可以是靜態隨機存取記憶體、動態隨機存取記憶體等。
電源管理電路310是耦接至記憶體管理電路302並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路312是耦接至記憶體管理電路302並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當主機介面304從主機系統1000中接收到主機寫入指令時,錯誤檢查與校正電路會為對應此主機寫入指令的寫入資料(亦稱為更新資料)產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路302會將此更新資料與對應的錯誤校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路302從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤檢查與校正電路312會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
圖5是根據一範例實施例所繪示管理可複寫式非揮發性記憶體模組之實體區塊的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組106具有實體區塊410(0)~410(N),並且記憶體控制器104的記憶體管理電路302會將實體區塊410(0)~410(N)分割(partition)為取代區(replacement area)502、暫存區(spare area)504與資料區(data area)506。
取代區502的實體區塊是用於壞實體區塊取代程序,以取代損壞的實體區塊。具體來說,倘若取代區502中仍存有正常之實體區塊並且資料區506或暫存區504的實體區塊損壞時,記憶體管理電路302會從取代區502中提取正常的實體區塊來取代損壞的實體區塊。
暫存區504的實體區塊是用於暫存主機系統1000所寫入的資料。詳細的寫入方法,將配合圖示說明如後。值得一提的是,在本範例實施例中,記憶體管理電路302是使用單頁模式來操作暫存區504的實體區塊。具體來說,在單頁模式中,僅下實體頁面會被用來儲存資料。也就是說,在單頁模式中,記憶體管理電路302僅會對下實體頁面進行資料的寫入、讀取、抹除等運作。
資料區506的實體區塊是用於儲存主機系統1000所寫入的資料。具體來說,記憶體管理電路302會將主機系統1000所存取的邏輯存取位址轉換為對應的邏輯區塊與對應的邏輯頁面並且將此邏輯區塊的邏輯頁面映射至資料區的實體區塊的實體頁面。也就是說,資料區506的實體區塊是被視為已被使用之實體區塊(例如,已儲存主機系統所寫入的資料)。例如,記憶體管理電路302會使用邏輯區塊-實體區塊映射表(logical block-physical block mapping table)來記載邏輯區塊與資料區506的實體區塊之間的映射關係,其中邏輯區塊中的邏輯頁面可依序的對應所映射之實體區塊的實體頁面。例如,在本範例實施例中,邏輯區塊610(0)~610(H)會被配置以映射資料區506的實體區塊,其中一個邏輯區塊的容量等於一個實體區塊的容量並且資料區506的實體區塊的數量必須大於或等於邏輯區塊的數量。也就是說,在資料區506的實體區塊的數量會攸關記憶體儲存裝置100的容量。在本範例實施例中,邏輯區塊610(0)~610(H)的數量是等於資料區506的實體區塊。
在本範例實施例中,記憶體管理電路302是使用多頁模式來操作資料區506的實體區塊。具體來說,在多頁模式中,下實體頁面、中實體頁面與上實體頁面皆會被用來儲存資料,並且在將資料寫入至資料區506的實體區塊時同一個實體頁面組的實體頁面皆會被程式化。也就是說,當使用多頁模式來寫入資料時,記憶體管理電路302會對一個實體頁面組的下實體頁面、中實體頁面與上實體頁面執行程式化。值得一提的,在一範例實施例中,使用多頁模式來操作資料區506的實體區塊時,同一個實體頁面組的實體頁面會同時地或階段性地被程式化。再者,相較於以單頁模式來操作的實體區塊,以多頁模式來操作的實體區塊的使用壽命較短。具體來說,每個實體區塊能夠被寫入或抹除的次數是有限的,當一個實體區塊被寫入的次數超過一臨界值時,此實體區塊能就會損壞而無法在被寫入資料,其中對應以多頁模式來操作之實體區塊的臨界值會低於對應以單頁模式來操作之實體區塊的臨界值。
如上所述,暫存區504的實體區塊與資料區506的實體區塊是藉由使用不同的模式來操作,因此,當一個實體區塊被劃分至暫存區504或資料區506後,此實體區塊將僅能用於特定分割區。也就是說,記憶體管理電路302會獨立地操作資料區506的實體區塊和暫存區504的實體區塊,而不會混用此些實體區塊。例如,當一個實體區塊被劃分至暫存區504後,記憶體管理電路302會以單頁模式於暫存區504中操作此實體區塊,直到此實體區塊損壞為止;或者當一個實體區塊被劃分至資料區506後,記憶體管理電路302會以多頁模式於資料區506中操作此實體區塊,直到此實體區塊不再屬於資料區506。
圖6是根據一範例所繪示之寫入資料的示意圖。
請參照圖6,當記憶體儲存裝置100從主機系統1000中接收到將更新資料儲存至邏輯區塊610(0)的第0~257個邏輯頁面的寫入指令時,記憶體管理電路302會從暫存區504中提取實體區塊410(R+1)~410(R+3)作為對應邏輯區塊610(0)的暫存實體區塊組的第一至第三暫存實體區塊來寫入屬於邏輯區塊610(0)的更新資料。具體來說,由於暫存區504的實體區塊僅能以單頁模式來程式化,因此,3個暫存實體區塊的容量才能夠儲存一個邏輯區塊之所有邏輯頁面的資料。
之後,在一範例實施例中,記憶體管理電路302會將欲儲存至邏輯區塊610(0)的第0~85個邏輯頁面的更新資料(亦稱為第一部份資料)依序地寫入至第一暫存實體區塊410(R+1)的下實體頁面、將欲儲存至邏輯區塊610(0)的第86~171個邏輯頁面的更新資料(亦稱為第二部份資料)依序地寫入至第二暫存實體區塊410(R+2)的下實體頁面以及將欲儲存至邏輯區塊610(0)的第172~257個邏輯頁面的更新資料(亦稱為第三部份資料)依序地寫入至第三暫存實體區塊410(R+3)的下實體頁面中。值得一提的是,當連續地寫入大量資料時,上述依據第一暫存實體區塊、第二暫存實體區塊與第三暫存實體區塊的頁面順序來寫入資料可利用快取程式化(cache programming)指令可有效地提升寫入資料的速度。在另一範例實施例中,記憶體管理電路302會將欲儲存至邏輯區塊610(0)的各個邏輯頁面的更新資料經過再整理或排列後,再同時寫入至第一暫存實體區塊410(R+1)的下實體頁面、第二暫存實體區塊410(R+2)的下實體頁面以及第三暫存實體區塊410(R+3)的下實體頁面中。
在本範例實施例中,當將主機系統1000欲儲存之更新資料寫入至暫存區504後,記憶體管理電路302就會傳送通知已完成指令的回覆(Response)給主機系統1000。並且,之後,當記憶體儲存裝置100屬於閒置狀態一段時間(例如,30秒未從主機系統1000中接收到任何指令)或者暫存區504空的實體區塊的數目小於預設門檻值時,記憶體管理電路302才會從暫存區504中將屬於同一個邏輯區塊的有效資料搬移至資料區506。例如,預設門檻值會被設定為3。然而,必須瞭解的是,本發明不限於此,預設門檻值亦可以是其他適當的數值。在此,從暫存區504中將屬於同一個邏輯區塊的有效資料搬移至資料區506的運作稱為資料合併運作。
圖7是根據一範例所繪示之資料合併程序的示意圖。
假設暫存區504的暫存實體區塊410(R+1)~410(R+3)已儲存邏輯區塊610(0)的所有邏輯頁面的有效資料(如圖6所示)並且記憶體管理電路302選擇對邏輯區塊610(0)進行資料合併運作。
請參照圖7,首先,記憶體管理電路302會從資料區504中提取一個實體區塊410(T+1)。具體來說,記憶體管理電路302會從資料區504中選擇一個空的實體區塊或者所儲存之資料為無效資料的實體區塊。特別是,倘若所提取之實體區塊是儲存無效資料的實體區塊時,記憶體管理電路302會先對此實體區塊執行抹除運作。也就是說,實體區塊上的無效資料必須先被抹除。
之後,記憶體管理電路302會從第一暫存實體區塊410(R+1)的下實體頁面中將屬於邏輯區塊610(0)的第0~85邏輯頁面的有效資料搬移至實體區塊410(T+1)的對應頁面(例如,第0~85實體頁面)。接著,記憶體管理電路302會從第二暫存實體區塊410(R+2)的下實體頁面中將屬於邏輯區塊610(0)的第86~171邏輯頁面的有效資料搬移至實體區塊410(T+1)的對應頁面(例如,第86~171實體頁面)。然後,記憶體管理電路302會從第三暫存實體區塊410(R+3)的下實體頁面中將屬於邏輯區塊610(0)的第172~257邏輯頁面的有效資料搬移至實體區塊410(T+1)的對應頁面(例如,第172~257實體頁面)。
值得一提的是,如上所述,資料區506的實體區塊是以多頁模式來操作,因此,寫入至實體區塊410(T+1)是以實體頁面組為單位來同時或階段性地程式化。具體來說,在一範例實施例中,實體區塊410(T+1)的第0、1、2個實體頁面會同時地被程式化以寫入屬於邏輯區塊610(0)的第0、1、2個邏輯頁面的資料;實體區塊410(T+1)的第3、4、5個實體頁面會同時地被程式化以寫入屬於邏輯區塊610(0)的第3、4、5個邏輯頁面的資料;並且以此類推其他邏輯頁面的資料皆是以實體頁面組為單位被寫入至實體區塊410(T+1)中。
最後,記憶體管理電路302會在邏輯區塊-實體區塊映射表中將邏輯區塊610(0)映射至實體區塊410(T+1)並且對暫存實體區塊410(R+1)~410(R+3)執行抹除運作。也就是說,在執行下一個寫入指令時,已被抹除的實體區塊410(R+1)~410(R+3)就可再被選擇作為欲寫入之邏輯區塊的暫存實體區塊。
圖8是根據另一範例所繪示之寫入資料的示意圖。
請參照圖8,假設資料區506的實體區塊410(T+1)已儲存有屬於邏輯區塊610(0)的所有邏輯頁面的資料並且主機系統1000欲更新邏輯區塊610(0)的第3~5個邏輯頁面中的資料時,同樣地,記憶體管理電路302會從暫存區504中提取3個實體區塊作為對應邏輯區塊610(0)的第一至第三暫存實體區塊(例如,實體區塊410(R+1)~410(R+3))來寫入屬於邏輯區塊610(0)的資料。
之後,記憶體管理電路302會從實體區塊410(T+1)的第0~2實體頁面中將未被更新的資料(即,屬於邏輯區塊610(0)的第0~2個邏輯頁面的資料,且亦稱為有效資料)依序地複製到第一暫存實體區塊410(R+1)的下實體頁面(即,第0、3、6個實體頁面)。然後,記憶體管理電路302會將欲儲存至邏輯區塊610(0)的第3~5個邏輯頁面的資料依序地寫入至第一暫存實體區塊410(R+1)的下實體頁面(即,第9、12、15個實體頁面)。特別是,在將邏輯區塊610(0)的第3~5個邏輯頁面的資料寫入至暫存區504之後,記憶體管理電路302就會傳送通知已完成指令的回覆給主機系統1000,而不會繼續複製其他有效資料。更詳細來說,由於其他有效資料資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將其他有效資料搬移至暫存區504可能會造成無謂的搬移。
之後,倘若欲儲存屬於另一個邏輯區塊的資料至暫存區504並且暫存區504無足夠空的實體區塊(例如,暫存區504的空的實體區塊數目小於預設門檻值)時,記憶體管理電路302才會從實體區塊410(T+1)的第6~257實體頁面中將有效資料依序地複製到暫存實體區塊410(R+1)~410(R+3)的下實體頁面然後執行資料合併程序。
在本範例實施例中,當一個邏輯區塊的資料被暫存至暫存區504且尚未被搬移至資料區506時,此邏輯區塊稱為已更新邏輯區塊。特別是,當主機系統1000欲讀取已更新邏輯區塊中的資料時,記憶體管理電路302會判斷暫存區504中是否存有主機系統1000欲讀取之邏輯頁面。當暫存區504中存有主機系統1000欲讀取之邏輯頁面的資料時,記憶體管理電路302會從暫存區504的對應暫存實體區塊中讀取此資料並且將所讀取之資料傳送給主機系統1000。倘若暫存區504中無存有主機系統1000欲讀取之邏輯頁面的資料時,記憶體管理電路302會從資料區506的對應實體區塊中讀取此資料並且將所讀取之資料傳送給主機系統1000。也就是說,更新資料皆會先被暫存至暫存區504,因此,暫存區504所儲存的資料必然是最新的資料。特別是,倘若記憶體儲存裝置100發生異常斷電時,記憶體管理電路302亦可根據實體區塊是屬於暫存區504或資料區506而識別所儲存之資料的是否為最新的資料。
圖9是根據本發明範例實施例之資料寫入方法所繪示之配置可複寫式非揮發性記憶體模組的流程圖。
請參照圖9,在步驟S901中,記憶體管理電路302會將可複寫式非揮發性記憶體模組的實體區塊至少分割(partition)為資料區與暫存區。例如,可複寫式非揮發性記憶體模組的實體區塊會被分割為取代區502、暫存區504與資料區506。特別是,暫存區504的實體區塊與資料區506的實體區塊會被獨立地操作,其中暫存區504的實體區塊是以單頁模式來存取並且資料區506的實體區塊是以多頁模式來存取。
在步驟S903中,記憶體管理電路302會根據所分割之資料區的實體區塊配置多個邏輯區塊,以對應主機系統1000所存取的邏輯存取位址。具體來說,邏輯區塊的數目會根據所分割之資料區506的實體區塊的數目來決定。例如,在一範例實施例中,邏輯區塊的數目是等於實體區塊的數目,或者在另一範例實施例中,邏輯區塊的數目亦可以小於實體區塊的數目。
圖10是根據本發明範例實施例之資料寫入方法所繪示之將資料暫存至暫存區與執行資料合併的流程圖。
請參照圖10,在步驟S1001中,記憶體管理電路302會從主機系統1000中接收欲儲存至一個邏輯區塊(以下稱為第一邏輯區塊)的更新資料。
在步驟S1003中,記憶體管理電路302會判斷暫存區504中未被使用的實體區塊的數目是否小於預設門檻值。
倘若暫存區504中未被使用的實體區塊的數目非小於預設門檻值時,在步驟S1005中,記憶體管理電路302會從暫存區504中選擇多個空的實體區塊作為對應第一邏輯區塊的暫存實體區塊組的暫存實體區塊。例如,在本範例實施例中,可複寫式非揮發性記憶體模組為TLC NAND型快閃記憶體模組,記憶體管理電路302會從暫存區504中選擇3個實體區塊作為對應第一邏輯區塊的的第一暫存實體區塊、第二暫存實體區塊與第三暫存實體區塊。必須瞭解的是,本發明不限於此,在可複寫式非揮發性記憶體模組為MLC NAND型快閃記憶體模組的例子中,記憶體管理電路302會從暫存區504中選擇2個實體區塊作為對應第一邏輯區塊的的第一暫存實體區塊與第二暫存實體區塊。
然後,在步驟S1007中,記憶體管理電路302會依序地使用對應第一邏輯區塊的暫存實體區塊組的暫存實體區塊的下實體頁面來寫入更新資料。寫入更新資料至暫存實體區塊的下實體頁面的方法已配合圖6與圖8詳細描述如上,在此不再重複說明。
倘若在暫存區504中未被使用的實體區塊的數目小於預設門檻值時,在步驟S1009中,記憶體管理電路302會從資料區504中選擇一個實體區塊(以下稱為第一實體區塊)。然後,在步驟S1011中,記憶體管理電路302將屬於同一個邏輯區塊的有效資料從對應此邏輯區塊的暫存實體區塊組中搬移至第一實體區塊。值得一提的是,倘若第一實體區塊儲存有無效資料時,在執行步驟S1011之前,記憶體管理電路302會對第一實體區塊執行抹除運作。
之後,在步驟S1013中,記憶體管理電路302會對已完成資料搬移之暫存實體區塊組的暫存實體區塊執行抹除運作。
也就是說,在步驟S1009、步驟S1011與步驟S1013中,記憶體管理電路302會選擇其中一個已更新邏輯區塊(例如,上述第一邏輯區塊)來執行資料合併程序以釋放已被使用的暫存實體區塊,之後,步驟S1005才可繼續被執行。
綜上所述,在本發明範例實施例,主機系統欲寫入的資料會先暫存至以單頁模式操作的暫存區,因此,根據本範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠有效地提升寫入資料的速度。此外,由於欲寫入的資料是先暫存在暫存區中,並且,之後再以實體頁面組(即,由位於同一條字元線的多個記憶胞所組成的下實體頁面、中實體頁面與上實體頁面)為單位程式化至資料區的實體區塊,因此,可有效地提升儲存資料的可靠度。特別是,倘若主機系統持續地對同一個邏輯區塊重覆執行寫入時,由於資料是在暫存區中被更新,因此,根據本範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠有效地減少資料區之實體區塊的磨損。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...可複寫式非揮發性記憶體模組
302...記憶體管理電路
304...主機介面
306...記憶體介面
308...緩衝記憶體
310‧‧‧電源管理電路
312‧‧‧錯誤檢查與校正電路
502‧‧‧取代區
504‧‧‧暫存區
506‧‧‧資料區
410(0)~410(N)‧‧‧實體區塊
610(0)~610(H)‧‧‧邏輯區塊
S901、S903‧‧‧配置可複寫式非揮發性記憶體模組的步驟
S1001、S1003、S1005、S1007、S1009、S1011、S1013‧‧‧寫入資料與執行資料合併程序的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據本發明一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3A與圖3B是根據本範例時實施例所繪示之記憶胞儲存架構與實體區塊的範例示意圖。
圖4是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖5是根據一範例實施例所繪示管理可複寫式非揮發性記憶體模組之實體區塊的示意圖。
圖6是根據一範例所繪示之寫入資料的示意圖。
圖7是根據一範例所繪示之資料合併程序的示意圖。
圖8是根據另一範例所繪示之寫入資料的示意圖。
圖9是根據本發明範例實施例之資料寫入方法所繪示之配置可複寫式非揮發性記憶體模組的流程圖。
圖10是根據本發明範例實施例之資料寫入方法所繪示之將資料暫存至暫存區與執行資料合併的流程圖。
S1001、S1003、S1005、S1007、S1009、S1011、S1013...寫入資料與執行資料合併程序的步驟
Claims (27)
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面組,每一該些實體頁面組具有一下實體頁面與一上實體頁面,該資料寫入方法包括:將該些實體區塊至少分割(partition)為一資料區與一暫存區,根據該資料區的該些實體區塊來配置多個邏輯區塊,其中每一該些邏輯區塊具有多個邏輯頁面;接收一更新資料,其中該更新資料欲被寫入至該些邏輯區塊之中的一第一邏輯區塊;從該暫存區的該些實體區塊之中提取多個實體區塊作為對應該第一邏輯區塊的一暫存實體區塊組的多個暫存實體區塊;僅使用該暫存實體區塊組的該些暫存實體區塊的該些下實體頁面來寫入該更新資料;以及從該暫存實體區塊組的該些暫存實體區塊中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該資料區的該些實體區塊之中的一第一實體區塊中,其中該第一邏輯區塊的所有該些邏輯頁面的有效資料會依序地被寫入至該第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且該第一實體區塊的同一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
- 如申請專利範圍第1項所述之資料寫入方法,其中該資料區的該些實體區塊和該暫存區的該些實體區塊是彼此獨立地被操作。
- 如申請專利範圍第1項所述之資料寫入方法,其中每一該些實體頁面組更具有一中實體頁面,其中從該暫存區的該些實體區塊之中提取該些實體區塊作為對應該第一邏輯區塊的該暫存實體區塊組的該些暫存實體區塊的步驟包括:從該暫存區的該些實體區塊之中提取3個實體區塊作為對應該第一邏輯區塊的該暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊。
- 如申請專利範圍第3項所述之資料寫入方法,其中僅使用該暫存實體區塊組的該些實體區塊的該些下實體頁面來寫入該更新資料的步驟包括:將該更新資料之中的一第一部份資料寫入至該第一暫存實體區塊的該些下實體頁面中;在將該第一部份資料寫入至該第一暫存實體區塊的下實體頁面中之後,將該更新資料之中的一第二部份資料寫入至該第二暫存實體區塊的下實體頁面中;以及在將該第二部份資料寫入至該第二暫存實體區塊的該些下實體頁面中之後,將該更新資料之中的一第三部份資料寫入至該第三暫存實體區塊的下實體頁面中。
- 如申請專利範圍第1項所述之資料寫入方法,更包括: 判斷該暫存區的該些實體區塊之中未被使用的實體區塊的數目是否小於一預設門檻值;以及當該暫存區的該些實體區塊之中未被使用的實體區塊的數目小於該預設門檻值時,從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的有效資料搬移至該第一實體區塊中。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:在從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的有效資料搬移至該第一實體區塊中之前,對該第一實體區塊執行一抹除運作。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:在從該暫存實體區塊組中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該第一實體區塊中之後,將該第一邏輯區塊映射至該第一實體區塊並且對該暫存實體區塊組的該些暫存實體區塊執行一抹除運作。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面組,每一該些實體頁面組具有一下實體頁面與一上實體頁面,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶 體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以將該些實體區塊至少分割(partition)為一資料區與一暫存區,其中該記憶體管理電路更用以根據該資料區的該些實體區塊來配置多個邏輯區塊,其中每一該些邏輯區塊具有多個邏輯頁面,其中該記憶體管理電路更用以從該主機系統接收一更新資料,其中該更新資料欲被寫入至該些邏輯區塊之中的一第一邏輯區塊,其中該記憶體管理電路更用以從該暫存區的該些實體區塊之中提取多個實體區塊作為對應該第一邏輯區塊的一暫存實體區塊組的多個暫存實體區塊,其中該記憶體管理電路更用以僅使用該暫存實體區塊組的該些暫存實體區塊的該些下實體頁面來寫入該更新資料,其中該記憶體管理電路更用以從該暫存實體區塊組的該些暫存實體區塊中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該資料區的該些實體區塊之中的一第一實體區塊中,其中該第一邏輯區塊的所有該些邏輯頁面的有效資料會依序地被寫入至該第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且該第一實體區塊的同一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路獨立地操作該資料區的該些實體區塊和該暫存區的該些實體區塊。
- 如申請專利範圍第8項所述之記憶體控制器,其中每一該些實體頁面組更具有一中實體頁面,其中該記憶體管理電路從該暫存區的該些實體區塊之中提取3個實體區塊作為對應該第一邏輯區塊的該暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路將該更新資料之中的一第一部份資料寫入至該第一暫存實體區塊的該些下實體頁面中,其中該記憶體管理電路在將該第一部份資料寫入至該第一暫存實體區塊的下實體頁面中之後,將該更新資料之中的一第二部份資料寫入至該第二暫存實體區塊的下實體頁面中,其中該記憶體管理電路在將該第二部份資料寫入至該第二暫存實體區塊的該些下實體頁面中之後,將該更新資料之中的一第三部份資料寫入至該第三暫存實體區塊的下實體頁面中。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路更用以判斷該暫存區的該些實體區塊之中未被使用的實體區塊的數目是否小於一預設 門檻值,其中當該暫存區的該些實體區塊之中未被使用的實體區塊的數目小於該預設門檻值時,該記憶體管理電路從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的該些有效資料搬移至該第一實體區塊中。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路更用以在從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的有效資料搬移至該第一實體區塊中之前,對該第一實體區塊執行一抹除運作。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路更用以在從該暫存實體區塊組中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該第一實體區塊中之後,將該第一邏輯區塊映射至該第一實體區塊並且對該暫存實體區塊組的該些暫存實體區塊執行一抹除運作。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面組,每一該些實體頁面組具有一下實體頁面與一上實體頁面;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並且用以將該些實體區塊至少分割(partition)為一資料區與一暫存區, 其中該記憶體控制器更用以根據該資料區的該些實體區塊來配置多個邏輯區塊,其中每一該些邏輯區塊具有多個邏輯頁面,其中該記憶體控制器更用以從該主機系統接收一更新資料,其中該更新資料欲被寫入至該些邏輯區塊之中的一第一邏輯區塊,其中該記憶體控制器更用以從該暫存區的該些實體區塊之中提取多個實體區塊作為對應該第一邏輯區塊的一暫存實體區塊組的多個暫存實體區塊,其中該記憶體控制器更用以僅使用該暫存實體區塊組的該些暫存實體區塊的該些下實體頁面來寫入該更新資料,其中該記憶體控制器更用以從該暫存實體區塊組的該些暫存實體區塊中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該資料區的該些實體區塊之中的一第一實體區塊中,其中該第一邏輯區塊的所有該些邏輯頁面的有效資料會依序地被寫入至該第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且該第一實體區塊的同一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中記憶體控制器獨立地操作該資料區的該些實體區塊和該暫存區的該些實體區塊。
- 如申請專利範圍第15項所述之記憶體儲存裝 置,其中每一該些實體頁面組的該些實體頁面更具有一中實體頁面,其中該記憶體控制器從該暫存區的該些實體區塊之中提取3個實體區塊作為對應該第一邏輯區塊的該暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器將該更新資料之中的一第一部份資料寫入至該第一暫存實體區塊的該些下實體頁面中,其中記憶體控制器在將該第一部份資料寫入至該第一暫存實體區塊的下實體頁面中之後,將該更新資料之中的一第二部份資料寫入至該第二暫存實體區塊的下實體頁面中,其中記憶體控制器在將該第二部份資料寫入至該第二暫存實體區塊的該些下實體頁面中之後,將該更新資料之中的一第三部份有效資料寫入至該第三暫存實體區塊的下實體頁面中。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中記憶體控制器更用以判斷該暫存區的該些實體區塊之中未被使用的實體區塊的數目是否小於一預設門檻值,其中當該暫存區的該些實體區塊之中未被使用的實體區塊的數目小於該預設門檻值時,該記憶體控制器從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的有 效資料搬移至該第一實體區塊中。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器更用以在從該暫存實體區塊組中將該第一邏輯區塊的所有邏輯頁面的有效資料搬移至該第一實體區塊中之前,對該第一實體區塊執行一抹除運作。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器更用以在從該暫存實體區塊組中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該第一實體區塊中之後,將該第一邏輯區塊映射至該第一實體區塊並且對該暫存實體區塊組的該些暫存實體區塊執行一抹除運作。
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面組,每一該些實體頁面組具有一下實體頁面與一上實體頁面,該資料寫入方法包括:將該些實體區塊至少分割(partition)為一資料區與一暫存區;根據該資料區的該些實體區塊來配置多個邏輯區塊,其中每一該些邏輯區塊具有多個邏輯頁面;接收一更新資料,其中該更新資料欲被寫入至該些邏輯區塊之中的一第一邏輯區塊;從該暫存區的該些實體區塊之中提取多個實體區塊作為對應該第一邏輯區塊的一暫存實體區塊組的多個暫存 實體區塊;以及僅使用該暫存實體區塊組的該些暫存實體區塊的該些下實體頁面來寫入該更新資料,其中該些暫存實體區塊的該更新資料對應已更新第一邏輯區塊的資料。
- 如申請專利範圍第22項所述之資料寫入方法,更包括:接收一讀取指令,其中該讀取指令指示讀取該第一邏輯區塊;以及從對應該第一邏輯區塊的該些暫存實體區塊來讀取該更新資料。
- 如申請專利範圍第22項所述之資料寫入方法,更包括:接收一讀取指令,其中該讀取指令指示讀取該第一邏輯區塊;判斷在該暫存區中是否有對應該第一邏輯區塊的暫存實體區塊;以及當在該暫存區中有對應該第一邏輯區塊的暫存實體區塊時,從該暫存區中對應該第一邏輯區塊的暫存實體區塊中讀取該更新資料並傳送所讀取的該更新資料至一主機系統。
- 如申請專利範圍第24項所述之資料寫入方法,更包括:當在該暫存區中無對應該第一邏輯區塊的暫存實體區塊時,從該資料區中對應該第一邏輯區塊的實體區塊中 讀取資料並傳送所讀取的資料至該主機系統。
- 如申請專利範圍第22項所述之資料寫入方法,其中僅使用該暫存實體區塊組的該些暫存實體區塊的該些下實體頁面來寫入該更新資料的步驟包括:從該暫存區的該些實體區塊之中提取3個實體區塊作為對應該第一邏輯區塊的該暫存實體區塊組的一第一暫存實體區塊、一第二暫存實體區塊與一第三暫存實體區塊;整理與排列該更新資料;將該更新資料之中的一第一部份資料寫入至該第一暫存實體區塊的該些下實體頁面中;將該更新資料之中的一第二部份資料寫入至該第二暫存實體區塊的下實體頁面中;以及將該更新資料之中的一第三部份資料寫入至該第三暫存實體區塊的下實體頁面中。
- 如申請專利範圍第22項所述之資料寫入方法,更包括:從該暫存實體區塊組的該些暫存實體區塊中將該第一邏輯區塊的所有該些邏輯頁面的有效資料搬移至該資料區的該些實體區塊之中的一第一實體區塊中,其中該第一邏輯區塊的所有該些邏輯頁面的有效資料會依序地被寫入至該第一實體區塊的每一實體頁面組的下實體頁面與上實體頁面中並且該第一實體區塊的同一實體頁面組的下實體頁面與上實體頁面會同時被程式化。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100142248A TWI540428B (zh) | 2011-11-18 | 2011-11-18 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/366,271 US9378130B2 (en) | 2011-11-18 | 2012-02-04 | Data writing method, and memory controller and memory storage apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100142248A TWI540428B (zh) | 2011-11-18 | 2011-11-18 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201321974A TW201321974A (zh) | 2013-06-01 |
TWI540428B true TWI540428B (zh) | 2016-07-01 |
Family
ID=48428060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100142248A TWI540428B (zh) | 2011-11-18 | 2011-11-18 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9378130B2 (zh) |
TW (1) | TWI540428B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150015913A1 (en) * | 2012-01-10 | 2015-01-15 | Kyocera Document Solutions Inc. | Image processing apparatus and image forming apparatus |
TWI603175B (zh) * | 2013-08-14 | 2017-10-21 | 群聯電子股份有限公司 | 連接介面單元與記憶體儲存裝置 |
KR20190061942A (ko) * | 2017-11-28 | 2019-06-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110888820B (zh) * | 2018-09-07 | 2022-01-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI705331B (zh) * | 2019-06-24 | 2020-09-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 |
KR20220072242A (ko) * | 2020-11-25 | 2022-06-02 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치 |
CN112527207A (zh) * | 2020-12-18 | 2021-03-19 | 深圳市元征科技股份有限公司 | 一种eeprom中数据存储方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI362667B (en) * | 2007-12-31 | 2012-04-21 | Phison Electronics Corp | Data writing method for flash memory and controller thereof |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI435329B (zh) | 2009-12-15 | 2014-04-21 | Phison Electronics Corp | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 |
TWI425355B (zh) | 2010-03-17 | 2014-02-01 | Phison Electronics Corp | 資料存取方法、記憶體控制器與儲存系統 |
US20110252187A1 (en) * | 2010-04-07 | 2011-10-13 | Avigdor Segal | System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory |
-
2011
- 2011-11-18 TW TW100142248A patent/TWI540428B/zh active
-
2012
- 2012-02-04 US US13/366,271 patent/US9378130B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130132640A1 (en) | 2013-05-23 |
US9378130B2 (en) | 2016-06-28 |
TW201321974A (zh) | 2013-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
TWI597730B (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI521346B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI564901B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 |