TWI486765B - 記憶體管理方法、記憶體控制器與記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI486765B TWI486765B TW101120907A TW101120907A TWI486765B TW I486765 B TWI486765 B TW I486765B TW 101120907 A TW101120907 A TW 101120907A TW 101120907 A TW101120907 A TW 101120907A TW I486765 B TWI486765 B TW I486765B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- mode
- memory
- physical
- units
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種用於控制可複寫式非揮發性記憶體模組的記憶體管理方法與使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
依據每個記憶胞可儲存的位元數,反及(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個位元的資料。
以MLC NAND型快閃記憶體來說,每個實體區塊會包括多個實體頁面,每個實體區塊會包括下實體頁面以及
上實體頁面。而每一個實體區塊都會有抹除次數的上限。當一個實體區塊的抹除次數超過上限時,表示此實體區塊無法再被使用。相對的來說,當一個實體區塊僅使用下實體頁面來儲存資料時,其抹除次數的上限較大;而當一個實體區塊使用下實體頁面與上實體頁面來儲存資料時,其抹除次數的上限較小。因此,如何依照這些特性來管理實體區塊,使得可複寫式非揮發性記憶體的的使用壽命可以延長,為此領域者所關心的議題。
本發明的範例實施例中提出一種記憶體管理方法、記憶體控制器與記憶體儲存裝置,可以延長可複寫式非揮發性記憶體的使用壽命。
本發明在一範例實施例中提出一種記憶體管理方法,用於控制可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一個實體抹除單元包括多個實體程式化單元組,每一個實體程式化單元組包括多個實體程式化單元,每一個實體程式化單元組的實體程式化單元包括一個下實體程式化單元與上實體化程式單元,其中上實體化程式單元程式化之速度慢於下實體化程式單元。此記憶體管理方法包括:設定每一個實體抹除單元的操作模式包括第一模式、第二模式與第三模式,其中第一模式表示所有的實體程式化單元可被程式化,第二模式表示上實體程式化單元為不可被程式化,第
三模式表示上實體程式化單元為不可被程式化,並且操作模式無法從第三模式切換至第一模式或第二模式。此記憶體管理方法也包括:將實體抹除單元劃分為第一區與第二區,其中第一區的每一個實體抹除單元是可切換地操作在第一模式或第二模式,並且第二區的每一個實體抹除單元的操作模式為第三模式;以及,當第一區的第一實體抹除單元符合第一情況時,將第一實體抹除單元的操作模式設定為第三模式,並且將第一實體抹除單元劃分為第二區。
在一範例實施例中,上述的記憶體管理方法還包括:當第一實體抹除單元的抹除次數大於一個臨界值時,判斷第一實體抹除單元符合上述的第一情況。
在一範例實施例中,上述的每一個實體程式化單元包括一個資料位元區與一個冗餘位元區。資料位元區是用以儲存使用者資料,並且冗餘位元區是用以儲存錯誤檢查與校正碼。上述的記憶體管理方法更包括:讀取第一實體抹除單元中的一個第一實體程式化單元;根據第一實體程式化單元中的錯誤檢查與校正碼來判斷第一實體程式化單元中的使用者資料是否發生錯誤;若第一實體程式化單元的使用者資料發生錯誤,判斷使用者資料的一個錯誤位元數是否超過一個預設值;若此錯誤位元數超過預設值,判斷第一實體抹除單元符合該第一情況。
在一範例實施例中,上述的預設值為第一實體程式化單元的錯誤檢查與校正碼所能校正的上限。
在一範例實施例中,上述的記憶體管理方法更包括:
配置多個邏輯位址以映射至一部分的實體程式化單元,其中邏輯位址相對應的記憶體空間的集合為開放記憶體空間;判斷在第一實體抹除單元被劃分為第二區以後,實體抹除單元的可用記憶體空間容量是否小於開放記憶體空間的容量,其中,可用記憶體空間容量為實體抹除單元中可用於儲存使用者資訊之實體抹除單元之容量總和;以及,若可用記憶體空間容量小於開放記憶體空間的容量,宣告可複寫式非揮發性記體進入一個寫入保護狀態。
在一範例實施例中,上述的記憶體管理方法,更包括:建立一個映射表,其中此映射表示用以紀錄每一個實體抹除單元的操作模式。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器是用以耦接至一個主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中每一個實體抹除單元包括多個實體程式化單元組,每一個實體程式化單元組包括多個實體程式化單元,並且每一個實體程式化單元組的實體程式化單元包括一個下實體程式化單元與一上實體程式化單元,其中上實體化程式單元程式化之速度慢於下實體化程式單元。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組。記憶體控制器是用以設定每一個實體抹除單元的操作模式包括第一模式、第二模式與第三模式。第一模式表示所有的實體程式化單元可被程式化。第二模式表示上實體程式化
單元為不可被程式化。第三模式表示上實體程式化單元為不可被程式化,並且操作模式無法從第三模式切換至第一模式或第二模式。記憶體控制器也用以將實體抹除單元劃分為第一區與第二區。其中第一區的每一個實體抹除單元是可切換地操作在第一模式或第二模式,並且第二區的每一個實體抹除單元的操作模式為第三模式。當第一區的第一實體抹除單元符合一個第一情況時,記憶體控制器用以將第一實體抹除單元的操作模式設定為第三模式,並且將第一實體抹除單元劃分為第二區。
在一範例實施例中,上述的記憶體控制器更用以在第一實體抹除單元的抹除次數大於一個臨界值時,判斷第一實體抹除單元符合上述的第一情況。
在一範例實施例中,上述的每一個實體程式化單元包括一個資料位元區與一個冗餘位元區。資料位元區是用以儲存使用者資料,並且冗餘位元區是用以儲存錯誤檢查與校正碼。記憶體控制器更用以讀取第一實體抹除單元中的第一實體程式化單元,並根據第一實體程式化單元中的錯誤檢查與校正碼來判斷第一實體程式化單元的使用者資料是否發生錯誤。若第一實體程式化單元的使用者資料發生錯誤,記憶體控制器更用以判斷判斷使用者資料的一個錯誤位元數是否超過一個預設值。若此錯誤位元數超過預設值,記憶體控制器更用以判斷第一實體抹除單元符合該第一情況。
在一範例實施例中,上述的預設值為第一實體程式化
單元的錯誤檢查與校正碼所能校正的上限。
在一範例實施例中,上述的記憶體控制器更用以配置多個邏輯位址以映射至一部分的實體程式化單元,其中邏輯位址相對應的記憶體空間的集合為一個開放記憶體空間。記憶體控制器更用以判斷在第一實體抹除單元被劃分為第二區以後,這些實體抹除單元的可用記憶體空間容量是否小於開放記憶體空間的容量。此可用記憶體空間容量為可用於儲存使用者資訊之實體抹除單元之容量總和。若可用記憶體空間容量小於開放記憶體空間的容量,記憶體控制器更用以宣告可複寫式非揮發性記體進入為一個寫入保護狀態。
在一範例實施例中,上述的記憶體控制器更用以建立一個映射表。此映射表示用以紀錄每一個實體抹除單元的操作模式。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至一個主機系統。記憶體介面是用以耦接至一個可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中每一個實體抹除單元包括多個實體程式化單元組,每一個實體程式化單元組包括多個實體程式化單元,並且每一個實體程式化單元組的實體程式化單元包括一個下實體程式化單元與一上實體化程式單元,其中上實體化程式單元程式化之速度慢於下實體化程式單元。記憶體管理電路是耦接
至主機介面與記憶體介面。記憶體管理電路是用以設定每一個實體抹除單元的操作模式包括第一模式、第二模式與第三模式。第一模式表示所有的實體程式化單元可被程式化。第二模式表示上實體程式化單元為不可被程式化。第三模式表示上實體程式化單元為不可被程式化,並且操作模式無法從第三模式切換至第一模式或第二模式。記憶體管理電路也用以將實體抹除單元劃分為第一區與第二區。其中第一區的每一個實體抹除單元是可切換地操作在第一模式或第二模式,並且第二區的每一個實體抹除單元的操作模式為第三模式。當第一區的第一實體抹除單元符合一個第一情況時,記憶體管理電路用以將第一實體抹除單元的操作模式設定為第三模式,並且將第一實體抹除單元劃分為第二區。
在一範例實施例中,上述的記憶體管理電路更用以在第一實體抹除單元的抹除次數大於一個臨界值時,判斷第一實體抹除單元符合上述的第一情況。
在一範例實施例中,上述的每一個實體程式化單元包括一個資料位元區與一個冗餘位元區。資料位元區是用以儲存使用者資料,並且冗餘位元區是用以儲存錯誤檢查與校正碼。記憶體管理電路更用以讀取第一實體抹除單元中的第一實體程式化單元,並根據第一實體程式化單元中的錯誤檢查與校正碼來判斷第一實體程式化單元的使用者資料是否發生錯誤。若第一實體程式化單元的使用者資料發生錯誤,記憶體管理電路更用以判斷使用者資料的一個錯
誤位元數是否超過一個預設值。若此錯誤位元數超過此預設值,記憶體管理電路更用以判斷第一實體抹除單元符合該第一情況。
在一範例實施例中,上述的預設值為第一實體程式化單元的錯誤檢查與校正碼所能校正的上限。
在一範例實施例中,上述的記憶體管理電路更用以配置多個邏輯位址以映射至一部分的實體程式化單元,其中邏輯位址相對應的記憶體空間的集合為一個開放記憶體空間。記憶體管理電路更用以判斷在第一實體抹除單元被劃分為第二區以後,這些實體抹除單元的一個可用記憶體空間容量是否小於開放記憶體空間的容量,其中可用記憶體空間容量為可用於儲存使用者資訊之實體抹除單元之容量總和。若可用記憶體空間容量小於開放記憶體空間的容量,記憶體管理電路更用以宣告可複寫式非揮發性記體進入一個寫入保護狀態。
在一範例實施例中,上述的記憶體管理電路更用以建立一個映射表。此映射表示用以紀錄每一個實體抹除單元的操作模式。
基於上述,本發明範例實施例所提出的記憶體管理方法、記憶體控制器與記憶體儲存裝置,可以將實體抹除單元劃分為第一區與第二區。並且,第二區的實體抹除單元會被固定為第三模式。藉此,可以延長可複寫式非揮發性記憶體的使用壽命。
為讓本發明之上述特徵和優點能更明顯易懂,下文特
舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(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個位元資料。也就是說,排列在同一條字元線上的數個記憶胞可以組成下實體程式化單元與上實體程式化單元。程式化單元組所包括的程式化單元便包括下實體程式化單元與上實體程式化單元。其中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。另一方面,每一個實體抹除單元有抹除次數的上限。當僅使用下實體程式化單元時,抹除次
數的上限是第一臨界值(例如,5000次)。當使用下實體程式化單元與上實體程式化單元時,抹除次數的上限為第二臨界值(例如,50000次)。第二臨界值會大於第一臨界值。然而,在其他範例實施例中,可複寫式非揮發性記憶體模組106亦可是複數階記憶胞(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是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、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可分別切換各實體抹除單元的操作模式。具體來說,記憶體管理電路202會設定實體抹除單元的操作模式可包括第一模式402、第二模式404與第三模式406。這些模式限定了一個實體抹除單元中可以被程式化的程式化單元。第一模式402表示一個實體抹除單元中所有的實體程式化單元都可被程式化(例如,實體位址0~255)。第二模式404表示一個實體抹除單元內上實體程式化單元為不可被程式化,換言之,僅下實體程式化單元可被程式化(例如,實體位址0~127)。第三模式406亦表示一個實體抹除單元中上實體程式化單元為不可被程式
化,但其中,記憶體管理電路202會設定第一模式402與第二模式404之間可以互相切換,而第三模式406無法切換至第一模式402與第二模式404。當一個實體抹除單元的操作模式在第一模式402時,實體抹除單元的抹除次數的上限為第一臨界值。當一個實體抹除單元的操作模式在第二模式404或第三模式406時,實體抹除單元的抹除次數的上限為第二臨界值。然而,當一個實體抹除單元的操作模式在第二模式404時,若其抹除次數已超過第一臨界值並且其操作模式被切換至第一模式402,則此實體抹除單元會成為損壞實體抹除單元。因此,在本範例實施例中,記憶體管理電路202會將抹除次數已超過第一臨界值之實體抹除單元設定為第三模式406,使得此實體抹除單元之操作模式無法被切換至第一模式402或第二模式404。
在另一範例實施例中,可複寫式非揮發性記憶體模組106亦可是複數階記憶胞NAND型快閃記憶體模組。換言之,每個記憶體細胞(memory cell)可儲存多數個位元數,例如3個、4個或其他數目,亦即每一個實體程式化單元組還會包括至少一個中實體程式化單元,其中,此中實體程式化單元程式化的速度快於上實體程式化單元,但慢於下實體程式化單元,且當此中實體程式化單元是包含複數個時,各中實體程式化單元之程式化速度可不相同。此時,第一模式402表示下實體程式化單元、中實體程式化單元與上實體程式化單元皆可被程式化。第二模式404與第三模式406表示上實體程式化單元與中實體程式化單元不可
被程式化,而下實體程式化單元可被程式化,並且,第三模式460不能被切換至其他模式。
更具體來說,記憶體管理電路202會將實體抹除單元304(0)~304(R)的操作模式紀錄在一個映射表當中。例如,每一個操作模式可以用兩個位元來記錄,用以表示第一模式402、第二模式404與第三模式406。然而,在其他範例實施例中,記憶體管理電路202也可以使用其他的符號或更多位元來記錄操作模式,本發明並不在此限。
圖5是根據一範例實施例說明將實體抹除單元分成第一區與第二區的範例示意圖。
請參照圖5,記憶體管理電路202會將實體抹除單元304(0)~304(R)至少劃分為第一區520與第二區540。第一區520包括實體抹除單元304(0)~304(B),而第二區包括實體抹除單元304(B+1)~304(R)。其中,第一區520中每一個實體抹除單元是可切換地操作在第一模式402或第二模式404。而第二區540中的每一個實體抹除單元是操作在第三模式406。然而,在其他範例實施例中,記憶體管理電路202也可以實體抹除單元304(0)~304(R)劃分出其他區域,本發明並不在此限。
此外,記憶體管理電路202會配置邏輯位址502(0)~502(A)給主機系統1000。這些邏輯位址是映射至實體抹除單元304(0)~304(R)中一部份的實體程式化單元。本範例實施例中,記憶體管理電路202是以實體程式化單元來管理可複寫式非揮發性記憶體106。也就是說,每一個
邏輯位址會映射到一個實體程式化單元。記憶體管理電路202會紀錄一個邏輯位址-實體程式化單元映射表,來紀錄邏輯位址502(0)~502(A)與實體抹除單元304(0)~304(R)中實體程式化單元之間的映射關係。
另一方面,快閃記憶體晶片於出廠時通常會預留複數個實體程式化單元作為更換或運作過程中使用。亦即,出廠時,邏輯位址502(0)~502(A)相對應的記憶體空間的容量的總和會小於可複寫試非揮發性記憶體106的記憶體空間的容量的總和。舉例來說,實體抹除單元304(0)~304(R)的記憶體空間的容量的總合是100 GB,而邏輯位址502(0)~502(A)的記憶體空間的容量的總合是93 GB。邏輯位址502(0)~502(A)的記憶體空間的集合亦被稱為開放記憶體空間,是用以提供給主機系統1000。另一方面,快閃記憶體晶片中所有可被映射至邏輯位址502(0)~502(A)的實體程式化單元或可用以儲存使用者資訊(例如,影片或是文字檔)的記憶體空間的容量大小亦被稱為可用記憶體空間容量。
未映射至邏輯位址502(0)~502(A)的實體程式化單元可以被分為系統區以及閒置區。值得一提的是,系統區與閒置區為邏輯上的概念,在一範例實施例中,系統區的實體程式化單元是分布在第一區520,而閒置區的實體程式化單元可以分佈第一區520以及第二區540。然而,系統區的實體程式化單元也可以分布在第二區540,本發明並不在此限。
系統區可用以儲存系統資料。例如,此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
閒置區的程式化單元可以用以做為暫存的實體抹除單元。具體來說,當主機系統1000要更新儲存在可複寫式非揮發性記憶體106的資料時,會下達存取邏輯位址502(0)~502(A)的寫入指令與一個寫入資料給記憶體管理電路202。由於一個實體抹除單元在被抹除之前無法被重複寫入,因此記憶體管理電路202會把未映射至邏輯位址502(0)~502(A)的實體程式化單元作為暫存的實體程式化單元。而記憶體管理電路202會將寫入資料寫入這些暫存的實體程式化單元。特別的是,記憶體管理電路202會優先使用第二區540的實體抹除單元來暫存資料。
圖6是根據一範例實施例說明寫入資料的範例示意圖。
請參照圖6,實體抹除單元304(B+1)的操作模式為第一模式,實體抹除單元304(0)的操作模式為第三模式。邏輯位址502(0)是原始映射至實體抹除單元304(B+1)的下實體程式化單元622。在此假設主機系統1000傳送了一個要更新邏輯位址502(0)的寫入指令與一個寫入資料與給記憶體管理電路202。在接收到此寫入指令以後,即使實體抹除單元304(B+1)有閒置的實體程式化單元(例如,實體程式化單元624),記憶體管理電路202會優先把寫入資料程式化至閒置的實體程式化單元632。接著,記憶體管理電路
202會把邏輯位址502(0)重新映射至實體程式化單元632。因此,實體程式化單元622中所儲存的會是無效資料。例如,主機系統1000繼續下達存取邏輯位址502(0)的寫入指令給記憶體管理電路202。記憶體管理電路202會把此寫入資料程式化至閒置的實體程式化單元634。接著,記憶體管理電路202會把邏輯位址502(0)重新映射至實體程式化單元632。因此,完成上述動作以後,實體程式化單元622與632中所儲存的會是無效資料,而實體程式化單元634中所儲存的會是有效資料。
當實體抹除單元304(0)已沒有空閒的實體程式化單元以後,記憶體管理電路202會把實體抹除單元304(0)中的有效資料複製到實體抹除單元304(B+1)。並且,記憶體管理電路202會對實體抹除單元304(0)執行抹除的動作,用以儲存其他資料。換言之,由於實體抹除單元304(0)中的實體程式化單元被優先用以作為暫存的實體程式化單元,因此實體抹除單元304(0)的抹除次數會實體抹除單元304(B+1)的抹除次數較高。
然而,記憶體管理電路202也可以使用第二區540中多個實體抹除單元的實體程式化單元做為暫存的實體程式化單元。記憶體管理電路202可以在第二區540中多個實體抹除單元都沒有閒置的實體程式化單元以後,才把有效資料複製到第一區520,本發明並不在此限。換言之,記憶體管理電路202可以將可複寫式非揮發性記憶體106的抹除次數集中在第二區540的實體抹除單元。然而,在其
他範例實施例中,第一區520中的實體程式化單元也可以用以做為暫存的實體程式化單元,本發明並不在此限。
此外,當第一區520的實體抹除單元符合一個第一情況時,亦即在本範例實施例中,判斷第一區520的實體抹除單元是否屬於危險抹除單元(即,易於發生程式化錯誤或讀取錯誤的實體抹除單元)時,記體管理電路202也會將此實體抹除單元設定為第三模式406並劃分為第二區540。
例如,當實體抹除單元304(B+1)(亦稱為第一實體抹除單元)的抹除次數大於第一臨界值時,記憶體管理電路202會判斷實體抹除單元304(B+1)符合第一情況。換言之,記憶體管理電路202會將實體抹除單元304(B+1)的操作模式從第一模式402切換至第三模式406並將實體抹除單元304(B+1)劃分為第二區540。由於操作模式在第三模式406時,實體抹除單元的抹除次數的上限會增加(從第一臨界值變為第二臨界值),因此實體抹除單元304(B+1)被劃分為第二區540以後可以繼續被使用。然而,記憶體管理電路202也可以將一個實體抹除單元從第二模式404切換至第三模式404,並把此實體抹除單元從第一區520劃分為第二區540,本發明並不在此限。
圖7是根據一範例實施例說明讀取實體程式化單元的範例示意圖。
請參照圖7,當讀取一個實體程式化單元時,記憶體管理電路202會從冗餘位元區中讀取錯誤檢查與校正碼(ECC),並根據錯誤檢查與校正碼來判斷資料位元區中的
使用者資料是否發生錯誤。例如,實體抹除單元304(B+1)包括了實體程式化單元622(亦稱為第一實體程式化單元),而實體程式化單元622包括資料位元區702與冗餘位元區704。資料位元區702儲存有使用者資料722,冗餘位元區704儲存了錯誤檢查與校正碼724。當讀取實體程式化單元622時,記憶體管理電路202會根據錯誤檢查與校正碼724來判斷使用者資料722是否發生錯誤。若使用者資料722發生錯誤,記憶體管理電路202會判斷使用者資料722的錯誤位元數是否超過一個預設值。此錯誤位元數表示使用者資料722中發生錯誤的位元個數。如果使用者資料722的錯誤位元數超過了預設值,則記憶體管理電路202會判斷實體抹除單元304(B+1)符合上述的第一情況。換言之,記憶體管理電路202會將實體抹除單元304(B+1)的操作模式切換至第三模式406並將實體抹除單元304(B+1)劃分為第二區540。例如,此預設值為錯誤檢查與校正碼724所能校正的上限。然而,在其他範例實施例中,此預設值也可被設定為其他數值,本發明並不在此限。
如上所述,可用記憶體空間容量是被映射至邏輯位址502(0)~502(A),且可用以儲存使用者資料的實體抹除單元的記憶體空間之容量總和。然而,當實體抹除單元304(B+1)從第一區520被切換至第二區540以後,由於實體抹除單元304(B+1)僅能使用下實體程式化單元,因此實體抹除單元304(B+1)中可使用的實體程式化單元便會減少。在將實體抹除單元304(B+1)被劃分至第二區540以後,記憶體管
理電路202會判斷可用記憶體空間容量是否小於邏輯位址502(0)~502(A)的記憶體空間的容量的總和(即,開放記憶體空間的容量)。若可用記體空間容量小於開放記憶體空間的容量,則記憶體管理電路202會宣告可複寫式非揮發性記憶體模組106進入一個寫入保護(write protect)狀態,亦即此可複寫式非揮發性記憶體模組106僅可被讀取,不可再寫入新資料。
圖8是根據一範例實施例說明記憶體管理方法的流程圖。
請參照圖8,在步驟S802中,記憶體管理電路202會設定每一個實體抹除單元的操作模式包括第一模式、第二模式與第三模式。其中,第一模式表示所有的實體程式化單元可被程式化,第二模式表示上實體程式化單元為不可被程式化,第三模式表示上實體程式化單元為不可被程式化,並且操作模式無法從第三模式切換至第一模式或第二模式。
在步驟S804中,記憶體管理電路202會將實體抹除單元劃分為第一區與第二區,其中第一區的每一個實體抹除單元是可切換地操作在第一模式或第二模式,並且第二區的每一個實體抹除單元的操作模式為第三模式。
在步驟S806中,當第一區的一個實體抹除單元符合一個第一情況時,記憶體管理電路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‧‧‧錯誤檢查與校正電路
402‧‧‧第一模式
404‧‧‧第二模式
406‧‧‧第三模式
502(0)~502(A)‧‧‧邏輯位址
540‧‧‧第一區
520‧‧‧第二區
622、624、632、634‧‧‧實體程式化單元
702‧‧‧資料位元區
704‧‧‧冗餘位元區
722‧‧‧使用者資料
724‧‧‧錯誤檢查與校正碼
S802、S804、S806‧‧‧記憶體管理方法的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例說明實體抹除單元的操作模
式的範例示意圖。
圖5是根據一範例實施例說明將實體抹除單元分成第一區與第二區的範例示意圖。
圖6是根據一範例實施例說明寫入資料的範例示意圖。
圖7是根據一範例實施例說明讀取實體程式化單元的範例示意圖。
圖8是根據一範例實施例說明記憶體管理方法的流程圖。
S802、S804、S806‧‧‧記憶體管理方法的步驟
Claims (15)
- 一種記憶體管理方法,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括多個實體程式化單元,每一該些實體程式化單元組的該些實體程式化單元包括一下實體程式化單元與上實體化程式單元,其中該些上實體化程式單元程式化之速度慢於該些下實體化程式單元,該記憶體管理方法包括:設定每一該些實體抹除單元的一操作模式包括一第一模式、一第二模式與一第三模式,其中該第一模式表示該些實體程式化單元可被程式化,該第二模式表示該些上實體程式化單元為不可被程式化,該第三模式表示該些上實體程式化單元為不可被程式化,並且該操作模式無法從該第三模式切換至該第一模式或該第二模式;將該些實體抹除單元劃分為一第一區與一第二區,其中該第一區的每一該些實體抹除單元是可切換地操作在該第一模式或該第二模式,並且該第二區的每一該些實體抹除單元的該操作模式為該第三模式;當該第一區的一第一實體抹除單元符合一第一情況時,將該第一實體抹除單元的該操作模式設定為該第三模式,並且將該第一實體抹除單元劃分為該第二區;配置多個邏輯位址以映射至一部分的該些實體程式化單元,其中該些邏輯位址相對應的記憶體空間的集合為 一開放記憶體空間;判斷在該第一實體抹除單元被劃分為該第二區以後,該些實體抹除單元的一可用記憶體空間容量是否小於該開放記憶體空間的容量,其中,該可用記憶體空間容量為該些實體抹除單元中可用於儲存使用者資訊之實體抹除單元之容量總和;以及若該可用記憶體空間容量小於該開放記憶體空間的容量,宣告該可複寫式非揮發性記體進入一寫入保護狀態。
- 如申請專利範圍第1項所述之記憶體管理方法,更包括:當該第一實體抹除單元的一抹除次數大於一臨界值時,判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第1項所述之記憶體管理方法,其中每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區是用以儲存一使用者資料,並且該冗餘位元區是用以儲存一錯誤檢查與校正碼,該記憶體管理方法更包括:讀取該第一實體抹除單元中該些實體程式化單元的一第一實體程式化單元;根據該第一實體程式化單元中的該錯誤檢查與校正碼來判斷該第一實體程式化單元的該使用者資料是否發生錯誤;若該第一實體程式化單元的該使用者資料發生錯誤,判斷該使用者資料的一錯誤位元數是否超過一預設 值;以及若該錯誤位元數超過該預設值,判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第3項所述之記憶體管理方法,其中判斷第一實體程式化單元的該使用者資料的該錯誤位元數是否超過該預設值的步驟包括:設定該預設值為該第一實體程式化單元的該錯誤檢查與校正碼所能校正的上限。
- 如申請專利範圍第1項所述之記憶體管理方法,更包括:建立一映射表,其中該映射表用以紀錄每一該些實體抹除單元的該操作模式。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,其中每一該些實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括多個實體程式化單元,並且每一該些實體程式化單元組的該些實體程式化單元包括一下實體程式化單元與一上實體程式化單元,其中該些上實體化程式單元程式化之速度慢於該些下實體化程式單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以設定每一該些實體抹除單元的一操作模式包括一第一模式、一第二模式與一第三模式,其中 該第一模式表示該些實體程式化單元可被程式化,該第二模式表示該些上實體程式化單元為不可被程式化,該第三模式表示該些上實體程式化單元為不可被程式化,並且該操作模式無法從該第三模式切換至該第一模式或第二模式,其中,該記憶體控制器用以將該些實體抹除單元劃分為一第一區與一第二區,其中該第一區的每一該些實體抹除單元是可切換地操作在該第一模式或該第二模式,並且該第二區的每一該些實體抹除單元的該操作模式為該第三模式,其中,當該第一區的一第一實體抹除單元符合一第一情況時,該記憶體控制器用以將該第一實體抹除單元的該操作模式設定為該第三模式,並且將該第一實體抹除單元劃分為該第二區,其中該記憶體控制器更用以配置多個邏輯位址以映射至一部分的該些實體程式化單元,其中該些邏輯位址相對應的記憶體空間的集合為一開放記憶體空間,該記憶體控制器更用以判斷在該第一實體抹除單元被劃分為該第二區以後,該些實體抹除單元的一可用記憶體空間容量是否小於該開放記憶體空間的容量,其中該可用記憶體空間容量為該些實體抹除單元中可用於儲存使用者資訊之實體抹除單元之容量總和,若該可用記憶體空間容量小於該開放記憶體空間的容量,該記憶體控制器更用以宣告該可複寫式非揮發性記 體進入為一寫入保護狀態。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中該記憶體控制器更用以在該第一實體抹除單元的一抹除次數大於一臨界值時,判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區是用以儲存一使用者資料,並且該冗餘位元區是用以儲存一錯誤檢查與校正碼,該記憶體控制器更用以讀取該第一實體抹除單元中該些實體程式化單元的一第一實體程式化單元,並根據該第一實體程式化單元中的該錯誤檢查與校正碼來判斷該第一實體程式化單元的該使用者資料是否發生錯誤,其中,若該第一實體程式化單元的該使用者資料發生錯誤,該記憶體控制器更用以判斷該使用者資料的一錯誤位元數是否超過一預設值,若該錯誤位元數超過該預設值,該記憶體控制器更用以判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第8項所述之記憶體儲存裝置,其中該記憶體控制器還用以設定該預設值為該第一實體程式化單元的該錯誤檢查與校正碼所能校正的上限。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中該記憶體控制器更用以建立一映射表,其中該映射表用以紀錄每一該些實體抹除單元的該操作模式。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括多個實體程式化單元,並且每一該些實體程式化單元組的該些實體程式化單元包括一下實體程式化單元與一上實體化程式單元,其中該些上實體化程式單元程式化之速度慢於該些下實體化程式單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以設定每一該些實體抹除單元的一操作模式包括一第一模式、一第二模式與一第三模式,其中該第一模式表示該些實體程式化單元可被程式化,該第二模式表示該些上實體程式化單元為不可被程式化,該第三模式表示該些上實體程式化單元為不被程式化,並且該操作模式無法從該第三模式切換至該第一模式或第二模式,其中,該記憶體管理電路用以將該些實體抹除單元劃分為一第一區與一第二區,其中該第一區的每一該些實體抹除單元是可切換地操作在該第一模式或該第二模式,並且該第二區的每一該些實體抹除單元的該操作模式為該第三模式,其中,當該第一區的一第一實體抹除單元符合一第一 情況時,該記憶體管理電路用以將該第一實體抹除單元的該操作模式設定為該第三模式,並且將該第一實體抹除單元劃分為該第二區,其中該記憶體管理電路更用以配置多個邏輯位址以映射至一部分的該些實體程式化單元,其中該些邏輯位址相對應的記憶體空間的集合為一開放記憶體空間,該記憶體管理電路更用以判斷在該第一實體抹除單元被劃分為該第二區以後,該些實體抹除單元的一可用記憶體空間容量是否小於該開放記憶體空間的容量,其中該可用記憶體空間容量為該些實體抹除單元中可用於儲存使用者資訊之實體抹除單元之容量總和,若該可用記憶體空間容量小於該開放記憶體空間的容量,該記憶體管理電路更用以宣告該可複寫式非揮發性記體進入為一寫入保護狀態。
- 如申請專利範圍第11項所述之記憶體控制器,其中該記憶體管理電路更用以在該第一實體抹除單元的一抹除次數大於一臨界值時,判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第11項所述之記憶體控制器,其中每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區是用以儲存一使用者資料,並且該冗餘位元區是用以儲存一錯誤檢查與校正碼,該記憶體管理電路更用以讀取該第一實體抹除單元中該些實體程式化單元的一第一實體程式化單元,並根據 該第一實體程式化單元中的該錯誤檢查與校正碼來判斷該第一實體程式化單元的該使用者資料是否發生錯誤,其中,若該第一實體程式化單元的該使用者資料發生錯誤,該記憶體管理電路更用以判斷該使用者資料的一錯誤位元數是否超過一預設值,若該錯誤位元數超過該預設值,該記憶體管理電路更用以判斷該第一實體抹除單元符合該第一情況。
- 如申請專利範圍第13項所述之記憶體控制器,其中該記憶體管理電路還用以設定該預設值為該第一實體程式化單元的該錯誤檢查與校正碼所能校正的上限。
- 如申請專利範圍第11項所述之記憶體控制器,其中該記憶體管理電路更用以建立一映射表,其中該映射表用以紀錄每一該些實體抹除單元的該操作模式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101120907A TWI486765B (zh) | 2012-06-11 | 2012-06-11 | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
US13/585,808 US20130332653A1 (en) | 2012-06-11 | 2012-08-14 | Memory management method, and memory controller and memory storage device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101120907A TWI486765B (zh) | 2012-06-11 | 2012-06-11 | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201351137A TW201351137A (zh) | 2013-12-16 |
TWI486765B true TWI486765B (zh) | 2015-06-01 |
Family
ID=49716216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101120907A TWI486765B (zh) | 2012-06-11 | 2012-06-11 | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130332653A1 (zh) |
TW (1) | TWI486765B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
DE102012218363A1 (de) * | 2012-10-09 | 2014-04-10 | Continental Automotive Gmbh | Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät |
US20150074489A1 (en) * | 2013-09-06 | 2015-03-12 | Kabushiki Kaisha Toshiba | Semiconductor storage device and memory system |
TWI582594B (zh) * | 2014-01-22 | 2017-05-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI569139B (zh) * | 2015-08-07 | 2017-02-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
TWI650639B (zh) * | 2016-11-07 | 2019-02-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US10318423B2 (en) * | 2016-12-14 | 2019-06-11 | Macronix International Co., Ltd. | Methods and systems for managing physical information of memory units in a memory device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201001422A (en) * | 2008-06-26 | 2010-01-01 | Phison Electronics Corp | Block accessing method for flash memory and storage system and controller using the same |
US20100174847A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Non-Volatile Memory and Method With Write Cache Partition Management Methods |
TW201120896A (en) * | 2009-12-15 | 2011-06-16 | Phison Electronics Corp | Flash memory management method and flash memory controller and storage system using the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US7114051B2 (en) * | 2002-06-01 | 2006-09-26 | Solid State System Co., Ltd. | Method for partitioning memory mass storage device |
US7058784B2 (en) * | 2003-07-04 | 2006-06-06 | Solid State System Co., Ltd. | Method for managing access operation on nonvolatile memory and block structure thereof |
US7752382B2 (en) * | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
US8266365B2 (en) * | 2008-12-17 | 2012-09-11 | Sandisk Il Ltd. | Ruggedized memory device |
US8027195B2 (en) * | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
-
2012
- 2012-06-11 TW TW101120907A patent/TWI486765B/zh active
- 2012-08-14 US US13/585,808 patent/US20130332653A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201001422A (en) * | 2008-06-26 | 2010-01-01 | Phison Electronics Corp | Block accessing method for flash memory and storage system and controller using the same |
US20100174847A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Non-Volatile Memory and Method With Write Cache Partition Management Methods |
TW201120896A (en) * | 2009-12-15 | 2011-06-16 | Phison Electronics Corp | Flash memory management method and flash memory controller and storage system using the same |
Non-Patent Citations (1)
Title |
---|
Taeho Kgil, "Improving NAND Flash Based Disk Caches", 2008 International Symposium on Computer Architecture, 2008, page 327~338 * |
Also Published As
Publication number | Publication date |
---|---|
US20130332653A1 (en) | 2013-12-12 |
TW201351137A (zh) | 2013-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI622923B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI486767B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9213631B2 (en) | Data processing method, and memory controller and memory storage device using the same | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI584291B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI545581B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9367390B2 (en) | Memory controlling method, memory storage device and memory controlling circuit unit | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8966344B2 (en) | Data protecting method, memory controller and memory storage device | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107045890B (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN111610937A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 |