TWI436211B - 區塊管理方法、記憶體控制器與記憶體儲存裝置 - Google Patents
區塊管理方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI436211B TWI436211B TW100140030A TW100140030A TWI436211B TW I436211 B TWI436211 B TW I436211B TW 100140030 A TW100140030 A TW 100140030A TW 100140030 A TW100140030 A TW 100140030A TW I436211 B TWI436211 B TW I436211B
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- block
- physical
- physical block
- correctable
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/816—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
- G11C29/82—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種區塊管理方法,且特別是有關於一種管理可複寫式非揮發性記憶體模組之實體區塊的方法,以及使用此方法的記憶體控制器與記憶體儲存裝置。
可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等特性,故被廣泛地應用於各種電子裝置。可複寫式非揮發性記憶體具有多個實體區塊(physical block),且每一實體區塊具有多個實體頁面(physical page)。其中,實體區塊為資料抹除之最小單位,而實體頁面則是資料寫入的最小單位。
當使用可複寫式非揮發性記憶體的儲存裝置(以下稱為記憶體儲存裝置)被製造完成而進行第一次格式化(亦稱為開卡)時,記憶體儲存裝置的記憶體控制器會對可複寫式非揮發性記憶體的所有實體區塊進行磁碟掃瞄以識別出正常及損毀的實體區塊。記憶體控制器會將正常的實體區塊優先分組至資料區與閒置區並且將剩餘的實體區塊分組至取代區。其中,資料區的實體區塊是用以儲存來自主機系統的資料,閒置區的實體區塊是用以輪替資料區中的實體區塊,而取代區的實體區塊則是用以在記憶體儲存裝置運作過程中取代發生損壞的實體區塊。
一般來說,正常的實體區塊亦會有不同的使用壽命,因此在使用記憶體儲存裝置的過程中,倘若實體區塊之間的使用壽命差距過大,則容易造成資料不穩定的情況。
有鑑於此,本發明提供一種區塊管理方法、記憶體控制器與記憶體儲存裝置,能減少因可複寫式非揮發性記憶體模組中實體區塊之壽命差距過大而造成資料不穩定的現象。
本發明提出一種區塊管理方法,用以管理可複寫式非揮發性記憶體模組中的多個實體區塊。此方法包括維護錯誤資訊對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數。此方法還包括依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入資料的實體區塊。
在本發明之一範例實施例中,其中維護錯誤資訊對應表以記錄錯誤可修正實體區塊以及錯誤可修正實體區塊所對應之錯誤位元數的步驟包括對所有實體區塊執行寫入測試、抹除測試,以及讀取測試,進而在上述實體區塊中識別出錯誤可修正實體區塊,並且將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。其中,錯誤可修正實體區塊係通過寫入測試與抹除測試,且經過讀取測試所產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊。
在本發明之一範例實施例中,其中在對實體區塊執行寫入測試、抹除測試,以及讀取測試的步驟之後,此方法更包括在所有實體區塊中識別出至少一錯誤不可修正實體區塊,並且將上述錯誤不可修正實體區塊記錄在錯誤資訊對應表。其中,錯誤不可修正實體區塊是未通過寫入測試及/或抹除測試的實體區塊,或是通過寫入測試與抹除測試但對應的錯誤位元數大於錯誤位元數門檻值的實體區塊。
在本發明之一範例實施例中,其中維護錯誤資訊對應表以記錄錯誤可修正實體區塊以及錯誤可修正實體區塊所對應之錯誤位元數的步驟包括對所有實體區塊執行資料寫入操作以及資料讀取操作,並在上述實體區塊中識別出錯誤可修正實體區塊,以及將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。其中,錯誤可修正實體區塊係上述實體區塊中經過資料讀取操作所產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊。
在本發明之一範例實施例中,其中維護錯誤資訊對應表以記錄錯誤可修正實體區塊以及錯誤可修正實體區塊所對應之錯誤位元數的步驟包括在使用可複寫式非揮發性記憶體模組的過程中,依據錯誤可修正實體區塊所對應之錯誤位元數的變化來動態更新錯誤資訊對應表。
在本發明之一範例實施例中,其中依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數選擇用以寫入資料的實體區塊的步驟包括查詢錯誤資訊對應表來取得錯誤可修正實體區塊的錯誤位元數,並據以將所有錯誤可修正實體區塊分為至少一區塊佇列,其中各區塊佇列分別對應一區塊使用率。每當要將一資料寫入可複寫式非揮發性記憶體模組時,根據上述區塊佇列的區塊使用率選擇實體區塊來寫入資料。
在本發明之一範例實施例中,其中查詢錯誤資訊對應表來取得錯誤可修正實體區塊的錯誤位元數,並據以將所有錯誤可修正實體區塊分為至少一區塊佇列的步驟更包括在所有的錯誤可修正實體區塊中,僅將所對應之錯誤位元數小於或等於特定預設值的錯誤可修正實體區塊分為上述區塊佇列。
在本發明之一範例實施例中,此區塊管理方法更包括根據錯誤資訊對應表決定已使用的實體區塊在被抹除後是否要加入區塊佇列。
在本發明之一範例實施例中,其中錯誤可修正實體區塊所對應的錯誤位元數係小於或等於錯誤位元數門檻值。
從另一觀點來看,本發明提出一種記憶體控制器,用於管理記憶體儲存裝置中的可複寫式非揮發性記憶體模組。此記憶體控制器包括主機系統介面、記憶體介面,以及記憶體管理電路。主機系統介面用以耦接至主機系統。記憶體介面用以耦接可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括多個實體區塊。記憶體管理電路耦接至主機系統介面與記憶體介面,記憶體管理電路用以維護錯誤資訊對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數,並且依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入資料的實體區塊。
在本發明之一範例實施例中,其中記憶體管理電路對所有實體區塊執行資料寫入操作以及資料讀取操作,並在上述實體區塊中識別出錯誤可修正實體區塊,以及將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。其中,錯誤可修正實體區塊係上述實體區塊中經過資料讀取操作所產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊。
在本發明之一範例實施例中,其中在使用可複寫式非揮發性記憶體模組的過程中,記憶體管理電路依據錯誤可修正實體區塊所對應之錯誤位元數的變化來動態更新錯誤資訊對應表。
在本發明之一範例實施例中,其中記憶體管理電路查詢錯誤資訊對應表來取得錯誤可修正實體區塊的錯誤位元數,並據以將所有錯誤可修正實體區塊分為至少一區塊佇列,其中各區塊佇列分別對應一區塊使用率。當要將一資料寫入可複寫式非揮發性記憶體模組時,記憶體管理電路根據上述區塊佇列的區塊使用率選擇實體區塊來寫入資料。
在本發明之一範例實施例中,其中記憶體管理電路更用以在所有錯誤可修正實體區塊中,僅將所對應之錯誤位元數小於或等於特定預設值的錯誤可修正實體區塊分為至少一區塊佇列。
在本發明之一範例實施例中,其中記憶體管理電路根據錯誤資訊對應表決定已使用的實體區塊在被抹除後是否要加入區塊佇列。
在本發明之一範例實施例中,其中錯誤可修正實體區塊所對應的錯誤位元數係小於或等於錯誤位元數門檻值。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體模組、連接器以及記憶體控制器。可複寫式非揮發性記憶體模組包括多個實體區塊。連接器用以耦接主機系統。記憶體控制器耦接至可複寫式非揮發性記憶體模組與連接器,記憶體控制器用以維護錯誤資訊對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數,並且依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入資料的實體區塊。
在本發明之一範例實施例中,其中記憶體控制器對所有實體區塊執行資料寫入操作以及資料讀取操作,並在上述實體區塊中識別出錯誤可修正實體區塊,以及將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。其中,錯誤可修正實體區塊係上述實體區塊中經過資料讀取操作所產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊。
在本發明之一範例實施例中,其中在使用可複寫式非揮發性記憶體模組的過程中,記憶體控制器依據錯誤可修正實體區塊所對應之錯誤位元數的變化來動態更新錯誤資訊對應表。
在本發明之一範例實施例中,其中記憶體控制器查詢錯誤資訊對應表來取得錯誤可修正實體區塊的錯誤位元數,並據以將上述錯誤可修正實體區塊分為至少一區塊佇列,其中各區塊佇列分別對應一區塊使用率。當要將一資料寫入可複寫式非揮發性記憶體模組時,記憶體控制器根據上述區塊佇列的區塊使用率選擇實體區塊來寫入資料。
在本發明之一範例實施例中,其中記憶體控制器更用以在所有錯誤可修正實體區塊中,僅將所對應之錯誤位元數小於或等於特定預設值的錯誤可修正實體區塊分為至少一區塊佇列。
在本發明之一範例實施例中,其中記憶體控制器根據錯誤資訊對應表決定已使用的實體區塊在被抹除後是否要加入區塊佇列。
在本發明之一範例實施例中,其中錯誤可修正實體區塊所對應的錯誤位元數係小於或等於錯誤位元數門檻值。
基於上述,本發明係依據各實體區塊是否通過寫入測試與抹除測試以及其錯誤位元數來對實體區塊進行管理。進一步來說,本發明是依照實體區塊的錯誤位元數來決定是否使用該實體區塊來寫入資料。據此,能讓可複寫式非揮發性記憶體模組中的實體區塊使用壽命更為平均,從而增加資料穩定性。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。另外,亦有記憶體儲存裝置是包括嵌入式記憶體與可執行於主機系統上以實質地作為此嵌入式記憶體之控制器的軟體。一般來說在記憶體儲存裝置出廠時,可複寫式非揮發性記憶體模組便包括正常的實體區塊與損壞的實體區塊(亦稱,壞實體區塊),而各正常實體區塊隨著其讀取資料錯誤率的不同會有相異的使用壽命。本發明便是基於上述觀點而提出的一種區塊管理方法、記憶體控制器與記憶體儲存裝置,藉由平均實體區塊的使用壽命來增加資料的正確性。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為序列先進附件(Serial Advanced Technology Attachment,SATA)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是通用序列匯流排(Universal Serial Bus,USB)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之區塊管理方法而依照錯誤位元數來對可複寫式非揮發性記憶體模組106中的實體區塊進行使用與否的管理。本範例實施例之區塊管理方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體模組106耦接至記憶體控制器104。可複寫式非揮發性記憶體模組106包括多個實體區塊,且每一實體區塊包括多個實體頁面。舉例來說,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或任何具有相同特性的記憶體模組。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043,以及記憶體介面1045。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為SATA介面,而在其他範例實施例中,主機系統介面1041也可以是USB介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100運作時,上述控制指令會被執行以實現本範例實施例之區塊管理方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之區塊管理方法。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之區塊管理方法。此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明之另一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3002會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體模組106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序,以識別該筆資料是否存在錯誤位元。
在本發明之另一範例實施例中,記憶體控制器104還包括緩衝記憶體3004。緩衝記憶體3004可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3004耦接至記憶體管理電路1043,用以暫存來自於主機系統1000的資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006耦接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組之實體區塊的示意圖。
請參照圖4,本範例實施例之可複寫式非揮發性記憶體模組106包括實體區塊410(0)~410(N),且每一實體區塊包括數個實體頁面。記憶體控制器104中的記憶體管理電路1043會將實體區塊410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體區塊數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體區塊是被視為已儲存資料的實體區塊,而閒置區504的實體區塊是用以寫入新資料的實體區塊。換句話說,閒置區504的實體區塊為空或可使用的實體區塊(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體區塊,並且將資料寫入至所提取的實體區塊中,以替換資料區502的實體區塊。或者,當需要對一邏輯區塊執行資料合併程序時,記憶體管理電路1043會從閒置區504提取實體區塊並將資料寫入其中,以替換原先映射此邏輯區塊的實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的製造商與型號、可複寫式非揮發性記憶體模組106的實體區塊數、每一實體區塊的實體頁面數等等。
邏輯上屬於取代區508的實體區塊是用以在資料區502、閒置區504或系統區506中的實體區塊損毀時,取代損壞的實體區塊。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體區塊且資料區502的實體區塊損壞時,記憶體管理電路1043會從取代區508中提取正常的實體區塊來更換資料區502中損壞的實體區塊。也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體區塊會動態地變動。例如,用以輪替儲存資料的實體區塊會變動地屬於資料區502或閒置區504。
為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043會配置數個邏輯區塊610(0)~610(L)以映射資料區502中的實體區塊410(0)~410(F-1)。其中每一邏輯區塊包括多個邏輯頁面,而邏輯區塊610(0)~610(L)中的邏輯頁面會依序映射實體區塊410(0)~410(F-1)中的實體頁面。
詳言之,記憶體管理電路1043將所配置的邏輯區塊610(0)~610(L)提供給主機系統1000,並維護邏輯區塊-實體區塊映射表(logical block-physical block mapping table)以記錄邏輯區塊610(0)~610(L)與實體區塊410(0)~410(F-1)的映射關係。因此,當主機系統1000欲存取一邏輯存取位址時,記憶體管理電路1043會將此邏輯存取位址轉換為對應的邏輯區塊的邏輯頁面,再透過邏輯區塊-實體區塊映射表找到其所映射的實體頁面來進行存取。
在本範例實施例中,當記憶體儲存裝置100被製造完成而進行第一次格式化(亦稱為開卡)時,記憶體控制器104中的記憶體管理電路1043會對可複寫式非揮發性記憶體模組106的所有實體區塊進行寫入測試、抹除測試,以及讀取測試。針對所有通過寫入測試與抹除測試的實體區塊,倘若其經過讀取測試而產生的錯誤位元數小於或等於錯誤位元數門檻值,則該些實體區塊將被記憶體管理電路1043識別為錯誤可修正實體區塊(亦即,其中的錯誤位元可被錯誤檢查與校正電路3002校正)。一般來說,記憶體管理電路1043在開卡程序中會優先將錯誤可修正實體區塊分組至資料區502與閒置區504。錯誤位元數門檻值的大小與可複寫式非揮發性記憶體模組106的規格有關。舉例而言,倘若錯誤位元數門檻值為48,表示錯誤檢查與校正電路3002具有檢查與校正48個錯誤位元的能力。亦即,一旦所讀取之資料有超過48個錯誤位元,該筆資料便無法被錯誤檢查與校正電路3002校正。然而必須了解的是,本發明並不對錯誤位元數門檻值的大小加以限制。
除此之外,記憶體管理電路1043會將有通過寫入測試與抹除測試,但在經過讀取測試所產生的錯誤位元數大於錯誤位元數門檻值的實體區塊,以及未通過寫入測試及/或抹除測試的實體區塊都識別為錯誤不可修正實體區塊。
在本範例實施例中,記憶體管理電路1043會將各錯誤可修正實體區塊與其錯誤位元數的對應關係記錄於一錯誤資訊對應表。
在另一範例實施例中,記憶體管理電路1043可僅對可複寫式非揮發性記憶體模組106的所有實體區塊進行寫入測試及讀取測試來取得錯誤位元數,並據以建立錯誤資訊對應表。
在又一範例實施例中,記憶體管理電路1043也可在記憶體儲存裝置100的運行中藉由資料寫入及讀取來建立錯誤資訊對應表。
圖5A是根據本發明之一範例實施例所繪示之錯誤資訊對應表的示意圖。如圖5A之錯誤資訊對應表700所示,假設錯誤位元數門檻值為48,記憶體管理電路1043將以0至48個錯誤位元為鍵值建立49個欄位,以分別記錄所對應之錯誤位元數以及符合該欄位之鍵值的錯誤可修正實體區塊的實體區塊位址。此外,記憶體管理電路1043會在錯誤資訊對應表700建立一不可用實體區塊欄位,以記錄所有錯誤不可修正實體區塊的實體區塊位址。舉例來說,參照錯誤資訊對應表700可得知實體區塊位址為PBA(k)以及PBA(l)的錯誤可修正實體區塊具有1個錯誤位元、實體區塊位址為PBA(a)以及PBA(b)的錯誤可修正實體區塊具有48個錯誤位元,且實體區塊位址為PBA(c)以及PBA(d)的實體區塊則屬於錯誤不可修正實體區塊。
圖5B是根據本發明之另一範例實施例所繪示之錯誤資訊對應表的示意圖。假設錯誤位元數門檻值為48,圖5B之錯誤資訊對應表800包括50個分表(例如,分表800-0、800-1、800-2、800-(N-1)、800-N)以分別記錄所對應之錯誤位元數為0至48之錯誤可修正實體區塊的實體區塊位址以及錯誤不可修正實體區塊的實體區塊位址。在本範例實施例中,分表800-0是用以記錄所有具有0個錯誤位元之錯誤可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA(i)、PBA(j))、分表800-1是用以記錄所有具有1個錯誤位元之錯誤可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA(k)、PBA(l)),而分表800-N則是用以記錄所有錯誤不可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA(c)、PBA(d))。
必須特別說明的是,圖5A、5B僅是為了說明而舉出的範例,本發明並不對記憶體管理電路1043如何實作錯誤資訊對應表加以限制。且標示在圖5A、5B中的各實體區塊位址也僅是為了方便說明,與其所對應之實體區塊實際在可複寫式非揮發性記憶體模組106是否相鄰無關。
記憶體管理電路1043會將進行開卡程序後首次建立完成的錯誤資訊對應表儲存在可複寫式非揮發性記憶體模組106中的某一錯誤可修正實體區塊(例如,被區分為系統區506的錯誤可修正實體區塊)。爾後,在主機系統100對記憶體儲存裝置100進行存取時,記憶體管理電路1043會由系統區506將錯誤資訊對應表讀回緩衝記憶體3004,並利用錯誤資訊對應表來依據各錯誤可修正實體區塊的錯誤位元數去選擇用以寫入資料的實體區塊。基本上,記憶體管理電路1043會較常使用所對應之錯誤位元數較少的錯誤可修正實體區塊。
進一步來說,在記憶體儲存裝置100被使用的期間,記憶體管理電路1043會查詢錯誤資訊對應表來取得各錯誤可修正實體區塊的錯誤位元數,並據以將所有錯誤可修正實體區塊分為多個區塊佇列。其中各區塊佇列分別對應一區塊使用率,且所對應之錯誤位元數越少的區塊佇列的區塊使用率越高。
在一範例實施例中,記憶體管理電路1043是直接依據錯誤位元數的數值將所有錯誤可修正實體區塊分為數個區塊佇列。例如,記憶體管理電路1043將所對應之錯誤位元數為0的所有錯誤可修正實體區塊分為同一個區塊佇列,並將所對應之錯誤位元數為1的所有錯誤可修正實體區塊分為同一個區塊佇列,以此類推。
在另一範例實施例中,記憶體管理電路1043會依據錯誤檢查與校正電路3002能校正之錯誤位元數的上限(即,錯誤位元數門檻值)定義數個錯誤位元數區間,並將所對應之錯誤位元數屬於相同錯誤位元數區間的所有錯誤可修正實體區塊分為同一區塊佇列。舉例來說,假設錯誤位元數門檻值為48,本範例實施例之記憶體管理電路1043會將對應之錯誤位元數為0的所有錯誤可修正實體區塊分為第一區塊佇列、將對應之錯誤位元數介於1至20位元的錯誤可修正實體區塊分為第二區塊佇列、將對應之錯誤位元數介於21至40位元的錯誤可修正實體區塊分為第三區塊佇列,以及將對應之錯誤位元數介於41至48位元的錯誤可修正實體區塊分為第四區塊佇列。
然而必須說明的是,本發明並不對區塊佇列的數量以及劃分規則加以限定。
每當要將一資料寫入可複寫式非揮發性記憶體模組106時,記憶體管理電路1043根據各區塊佇列的區塊使用率選擇一區塊佇列,並利用所選之區塊佇列中的錯誤可修正實體區塊來寫入資料。舉例來說,假設記憶體管理電路1043將所有的錯誤可修正實體區塊分為4個區塊佇列(以下稱第一、第二、第三,以及第四區塊佇列),且這4個區塊佇列分別對應的區塊使用率為70%、15%、10%,以及5%。那麼在100次寫入資料的操作中,記憶體管理電路1043會有70次從第一區塊佇列取得用以寫入資料的錯誤可修正實體區塊、有15次從第二區塊佇列取得用以寫入資料的錯誤可修正實體區塊、有10次從第三區塊佇列取得用以寫入資料的錯誤可修正實體區塊,並且有5次從第四區塊佇列取得用以寫入資料的錯誤可修正實體區塊。
在另一範例實施例中,為了提供更佳的資料穩定性,對於所有的錯誤可修正實體區塊,記憶體管理電路1043僅會將所對應之錯誤位元數小於或等於特定預設值的錯誤可修正實體區塊分為數個區塊佇列。舉例來說,假設特定預設值為40且錯誤位元數門檻值為48,對於所對應之錯誤位元數大於40位元的所有錯誤可修正實體區塊,即便其錯誤位元數並未超過錯誤檢查與校正電路3002能校正之錯誤位元數上限,記憶體管理電路1043仍不會將其分入任何區塊佇列。亦即,在有資料需要被寫入可複寫式非揮發性記憶體模組106時,記憶體管理電路1043並不會使用所對應之錯誤位元數大於特定預設值的錯誤可修正實體區塊來寫入資料。如此一來可避免該些錯誤可修正實體區塊因已有較高的錯誤位元數,而在此次寫入資料時發生錯誤位元數激增且超過錯誤位元數門檻值的情況。
必須特別說明的是,在使用可複寫式非揮發性記憶體模組106的過程中,記憶體管理電路1043會依據各錯誤可修正實體區塊之錯誤位元數的變化來動態更新錯誤資訊對應表。亦即,記憶體管理電路1043將使錯誤資訊對應表能反映每一錯誤可修正實體區塊目前的錯誤位元數。而一旦有錯誤可修正實體區塊的錯誤位元數變為大於錯誤位元數門檻值,記憶體管理電路1043則重新將此錯誤可修正實體區塊識別為錯誤不可修正實體區塊,並將其記錄在錯誤資訊對應表(例如,記錄在圖5A所示之不可用實體區塊欄位,或圖5B所示之不可用實體區塊分表800-N)。
當需要抹除某個已使用之實體區塊中的資料時,記憶體管理電路1043也會根據錯誤資訊對應表決定此實體區塊在被抹除後是否要加入區塊佇列。具體來說,記憶體管理電路1043會查找錯誤資訊對應表以取得此實體區塊的錯誤位元數,再根據區塊佇列的劃分規則來判斷具有此錯誤位元數的實體區塊是否可被分入任何區塊佇列。舉例來說,假設記憶體管理電路1043定義有三個區塊佇列,其中第一區塊佇列包括錯誤位元數為0的錯誤可修正實體區塊、第二區塊佇列包括錯誤位元數介於1至20位元的錯誤可修正實體區塊,且第三區塊佇列包括錯誤位元數介於21至40位元的錯誤可修正實體區塊。若在查找錯誤資訊對應表取得即將執行抹除程序的實體區塊的錯誤位元數為25個位元,那麼在抹除其中的資料後,記憶體管理電路1043會將該實體區塊記錄在第三區塊佇列中。而倘若在查找錯誤資訊對應表取得此實體區塊的錯誤位元數為45位元,那麼在抹除其中的資料後該實體區塊將不會被加入任何區塊佇列。
圖6是根據本發明之一範例實施例所繪示之區塊管理方法的流程圖。
請參閱圖6,在記憶體儲存裝置100被製造完成而進行開卡程序時,首先如步驟S610所示,記憶體控制器104中的記憶體管理電路1043對可複寫式非揮發性記憶體模組106中的所有實體區塊執行寫入測試、抹除測試,以及讀取測試。
接著在步驟S620中,記憶體管理電路1043從所有的實體區塊中識別出錯誤可修正實體區塊,並將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。其中,錯誤可修正實體區塊是指通過寫入測試與抹除測試,且經過讀取測試所產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊。
接著如步驟S630所示,記憶體管理電路1043依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入資料的實體區塊。在本範例實施例中,所對應之錯誤位元數較低的實體區塊會具有較高的使用率。並且如步驟S640所示,記憶體管理電路1043依據錯誤可修正實體區塊之錯誤位元數的變化來動態更新錯誤資訊對應表。
在使用可複寫式非揮發性記憶體模組106的過程中,記憶體管理電路1043會反覆執行步驟S630及S640的動作來維護錯誤資訊對應表,以確保錯誤資訊對應表記錄的是各錯誤可修正實體區塊目前的錯誤位元數,而記憶體管理電路1043係根據錯誤資訊對應表所記錄之錯誤可修正實體區塊與錯誤位元數的對應關係來決定如何使用錯誤可修正實體區塊。
圖7是根據本發明之另一範例實施例所繪示之區塊管理方法的流程圖。在本範例實施例中,記憶體管理電路1043可在記憶體儲存裝置100出廠前藉由測試操作來維護錯誤資訊對應表,亦可在記憶體儲存裝置100運行中藉由資料寫入及讀取操作來建立錯誤資訊對應表。
詳細地說,在記憶體儲存裝置100被製造完成後,如步驟S710所示,在記憶體儲存裝置100出廠前,記憶體管理電路1043於開卡程序時對可複寫式非揮發性記憶體模組106中的所有實體區塊執行寫入測試、抹除測試,以及讀取測試,以從中識別出錯誤可修正實體區塊,並據以維護錯誤資訊對應表。亦即,記憶體管理電路1043將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄在錯誤資訊對應表。
爾後如步驟S720所示,在記憶體儲存裝置100出廠後,記憶體管理電路1043對可複寫式非揮發性記憶體模組106中的所有實體區塊執行資料寫入操作以及資料讀取操作,進而在上述實體區塊中識別出錯誤可修正實體區塊,並據以維護錯誤資訊對應表。具體來說,記憶體管理電路1043會從實體區塊中找出經過資料讀取操作而產生的錯誤位元數小於或等於錯誤位元數門檻值的實體區塊以識別為錯誤可修正實體區塊,並將錯誤可修正實體區塊與所對應之錯誤位元數的對應關係記錄於錯誤資訊對應表。
接下來如步驟S730所示,記憶體管理電路1043依據錯誤資訊對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入資料的實體區塊。並如步驟S740所示,記憶體管理電路1043依據錯誤可修正實體區塊之錯誤位元數的變化來動態更新錯誤資訊對應表。
綜上所述,本發明所述之區塊管理方法、記憶體控制器與記憶體儲存裝置會維護一錯誤資訊對應表以記錄每一錯誤可修正實體區塊所對應的錯誤位元數,並根據各實體區塊的錯誤位元數來選擇要利用哪個實體區塊來寫入資料。以上述方式對實體區塊進行管理不僅能平均可複寫式非揮發性記憶體模組中的各實體區塊的使用壽命,還能增加記憶體儲存裝置中的資料穩定性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
1041‧‧‧主機系統介面
1043‧‧‧記憶體管理電路
1045‧‧‧記憶體介面
3002‧‧‧錯誤檢查與校正電路
3004‧‧‧緩衝記憶體
3006‧‧‧電源管理電路
410(0)~410(N)‧‧‧實體區塊
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯區塊
700、800‧‧‧錯誤資訊對應表
PBA(i)、PBA(j)、PBA(k)、PBA(l)、PBA(m)、PBA(n)、PBA(a)、PBA(b)、PBA(c)、PBA(d)‧‧‧實體區塊位址
800-0、800-1、800-2、800-(N-1)、800-N‧‧‧分表
S610~S640‧‧‧本發明之一實施例所述之區塊管理方法的各步驟
S710~S740‧‧‧本發明之另一實施例所述之區塊管理方法的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4是根據本發明之一範例實施例所繪示之管理實體區塊的示意圖。
圖5A、5B是根據本發明之一範例實施例所繪示之錯誤資訊對應表的示意圖。
圖6是根據本發明之一範例實施例所繪示之區塊管理方法的流程圖。
圖7是根據本發明之另一範例實施例所繪示之區塊管理方法的流程圖。
S610~S640...本發明之一實施例所述之區塊管理方法的各步驟
Claims (23)
- 一種區塊管理方法,用以管理一可複寫式非揮發性記憶體模組中的多個實體區塊,該方法包括:記錄該些實體區塊中多個錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的一錯誤位元數;依據每一該些錯誤可修正實體區塊所對應的該錯誤位元數,將該些錯誤可修正實體區塊分為多個群組;選擇該些群組的其中之一;以及從所選擇的該群組中,選擇用以寫入資料的實體區塊。
- 如申請專利範圍第1項所述之區塊管理方法,其中記錄該些錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:對該些實體區塊執行一寫入測試、一抹除測試,以及一讀取測試;在該些實體區塊中識別出該些錯誤可修正實體區塊,其中該些錯誤可修正實體區塊係通過該寫入測試與該抹除測試,且經過該讀取測試所產生的該錯誤位元數小於或等於一錯誤位元數門檻值的實體區塊;以及將每一該些錯誤可修正實體區塊與所對應之該錯誤位元數的對應關係記錄於一錯誤資訊對應表。
- 如申請專利範圍第2項所述之區塊管理方法,其中在對該些實體區塊執行該寫入測試、該抹除測試,以及該讀取測試的步驟之後,該方法更包括: 在該些實體區塊中識別出至少一錯誤不可修正實體區塊,其中該至少一錯誤不可修正實體區塊是未通過該寫入測試及/或該抹除測試的實體區塊,或是通過該寫入測試與該抹除測試但對應的該錯誤位元數大於該錯誤位元數門檻值的實體區塊;以及將該至少一錯誤不可修正實體區塊記錄在該錯誤資訊對應表。
- 如申請專利範圍第1項所述之區塊管理方法,其中記錄該些錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:對該些實體區塊執行一資料寫入操作以及一資料讀取操作;在該些實體區塊中識別出該些錯誤可修正實體區塊,其中該些錯誤可修正實體區塊係該些實體區塊經過該資料讀取操作所產生的該錯誤位元數小於或等於一錯誤位元數門檻值的實體區塊;以及將每一該些錯誤可修正實體區塊與所對應之該錯誤位元數的對應關係記錄於一錯誤資訊對應表。
- 如申請專利範圍第1項所述之區塊管理方法,其中記錄該些錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:在使用該可複寫式非揮發性記憶體模組的過程中,依據每一該些錯誤可修正實體區塊所對應之該錯誤位元數的變化來動態更新一錯誤資訊對應表。
- 如申請專利範圍第1項所述之區塊管理方法,其中將該些錯誤可修正實體區塊分為多個群組的步驟包括:查詢一錯誤資訊對應表來取得每一該些錯誤可修正實體區塊的該錯誤位元數,並據以將該些錯誤可修正實體區塊分為多個區塊佇列,其中每一該些區塊佇列分別對應一區塊使用率,其中選擇該些群組的其中之一的步驟包括:當要將一資料寫入該可複寫式非揮發性記憶體模組時,根據每一該些區塊佇列的該區塊使用率選擇該些區塊佇列的其中之一來寫入該資料。
- 如申請專利範圍第6項所述之區塊管理方法,其中將該些錯誤可修正實體區塊分為該些群組的步驟更包括:在該些錯誤可修正實體區塊中,僅將所對應之該錯誤位元數小於或等於一特定預設值的錯誤可修正實體區塊分為該些區塊佇列。
- 如申請專利範圍第6項所述之區塊管理方法,更包括:根據一錯誤資訊對應表決定一已使用的實體區塊在被抹除後是否要加入該些區塊佇列。
- 如申請專利範圍第1項所述之區塊管理方法,其中每一該些錯誤可修正實體區塊所對應的該錯誤位元數係小於或等於一錯誤位元數門檻值。
- 一種記憶體控制器,用於管理一記憶體儲存裝置中的一可複寫式非揮發性記憶體模組,該記憶體控制器包 括:一主機系統介面,用以耦接一主機系統;一記憶體介面,用以耦接該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體區塊;以及一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,該記憶體管理電路用以記錄該些實體區塊中多個錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的一錯誤位元數,並將該些錯誤可修正實體區塊分為多個群組,其中,該記憶體管理電路用以選擇該些群組的其中之一,並從所選擇的該群組中選擇用以寫入資料的實體區塊。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路對該些實體區塊執行一資料寫入操作以及一資料讀取操作,並在該些實體區塊中識別出該些錯誤可修正實體區塊,且將每一該些錯誤可修正實體區塊與所對應之該錯誤位元數的對應關係記錄於一錯誤資訊對應表,其中該些錯誤可修正實體區塊係該些實體區塊經過該資料讀取操作所產生的該錯誤位元數小於或等於一錯誤位元數門檻值的實體區塊。
- 如申請專利範圍第10項所述之記憶體控制器,其中在使用該可複寫式非揮發性記憶體模組的過程中,該記憶體管理電路依據每一該些錯誤可修正實體區塊所對應之該錯誤位元數的變化來動態更新一錯誤資訊對應表。
- 如申請專利範圍第10項所述之記憶體控制器,其 中該記憶體管理電路查詢一錯誤資訊對應表來取得每一該些錯誤可修正實體區塊的該錯誤位元數,並據以將該些錯誤可修正實體區塊分為多個區塊佇列,其中每一該些區塊佇列分別對應一區塊使用率,當要將一資料寫入該可複寫式非揮發性記憶體模組時,該記憶體管理電路根據每一該些區塊佇列的該區塊使用率選擇該些區塊佇列的其中之一來寫入該資料。
- 如申請專利範圍第13項所述之記憶體控制器,其中該記憶體管理電路更用以在該些錯誤可修正實體區塊中,僅將所對應之該錯誤位元數小於或等於一特定預設值的錯誤可修正實體區塊分為該些區塊佇列。
- 如申請專利範圍第13項所述之記憶體控制器,其中該記憶體管理電路根據一錯誤資訊對應表決定一已使用的實體區塊在被抹除後是否要加入該些區塊佇列。
- 如申請專利範圍第10項所述之記憶體控制器,其中每一該些錯誤可修正實體區塊所對應的該錯誤位元數係小於或等於一錯誤位元數門檻值。
- 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,包括多個實體區塊;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,該記憶體控制器用以記錄該些實體區塊中多個錯誤可修正實體區塊以及每一該些錯誤可修正實體區塊所對應的一錯誤位元數,並且依據每一該些錯誤可修 正實體區塊所對應的該錯誤位元數來將該些錯誤可修正實體區塊分為多個群組,其中,該記憶體控制器用以選擇該些群組的其中之一,並從所選擇的該群組中選擇用以寫入資料的實體區塊。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器對該些實體區塊執行一資料寫入操作以及一資料讀取操作,並在該些實體區塊中識別出該些錯誤可修正實體區塊,且將每一該些錯誤可修正實體區塊與所對應之該錯誤位元數的對應關係記錄於一錯誤資訊對應表,其中該些錯誤可修正實體區塊係該些實體區塊經過該資料讀取操作所產生的該錯誤位元數小於或等於一錯誤位元數門檻值的實體區塊。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中在使用該可複寫式非揮發性記憶體模組的過程中,該記憶體控制器依據每一該些錯誤可修正實體區塊所對應之該錯誤位元數的變化來動態更新一錯誤資訊對應表。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器查詢一錯誤資訊對應表來取得每一該些錯誤可修正實體區塊的該錯誤位元數,並據以將該些錯誤可修正實體區塊分為多個區塊佇列,其中每一該些區塊佇列分別對應一區塊使用率,當要將一資料寫入該可複寫式非揮發性記憶體模組時,該記憶體控制器根據每一該些區塊佇列的該區塊使用 率選擇該些區塊佇列的其中之一來寫入該資料。
- 如申請專利範圍第20項所述之記憶體儲存裝置,其中該記憶體控制器更用以在該些錯誤可修正實體區塊中,僅將所對應之該錯誤位元數小於或等於一特定預設值的錯誤可修正實體區塊分為該些區塊佇列。
- 如申請專利範圍第20項所述之記憶體儲存裝置,其中該記憶體控制器根據一錯誤資訊對應表決定一已使用的實體區塊在被抹除後是否要加入該些區塊佇列。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中每一該些錯誤可修正實體區塊所對應的該錯誤位元數係小於或等於一錯誤位元數門檻值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100140030A TWI436211B (zh) | 2011-11-02 | 2011-11-02 | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
US13/365,270 US8732552B2 (en) | 2011-11-02 | 2012-02-03 | Block management method, memory controller and memory storage device thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100140030A TWI436211B (zh) | 2011-11-02 | 2011-11-02 | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201319805A TW201319805A (zh) | 2013-05-16 |
TWI436211B true TWI436211B (zh) | 2014-05-01 |
Family
ID=48173730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100140030A TWI436211B (zh) | 2011-11-02 | 2011-11-02 | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8732552B2 (zh) |
TW (1) | TWI436211B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244852B2 (en) * | 2013-05-06 | 2016-01-26 | Globalfoundries Inc. | Recovering from uncorrected memory errors |
US9372750B2 (en) * | 2013-11-01 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for non-volatile RAM error re-mapping |
TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US9507675B2 (en) * | 2014-04-15 | 2016-11-29 | Qualcomm Incorporated | Systems and methods for recovering from uncorrected DRAM bit errors |
KR102267041B1 (ko) | 2015-06-05 | 2021-06-22 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
TWI551991B (zh) * | 2015-11-20 | 2016-10-01 | 群聯電子股份有限公司 | 記憶體管理方法與系統及其記憶體儲存裝置 |
CN107918571B (zh) * | 2016-10-08 | 2021-04-30 | 上海宝存信息科技有限公司 | 测试储存单元的方法以及使用该方法的装置 |
KR20180090422A (ko) * | 2017-02-02 | 2018-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN110275668B (zh) * | 2018-03-14 | 2022-09-13 | 群联电子股份有限公司 | 区块管理方法、存储器控制电路单元与存储器存储装置 |
CN111863106B (zh) * | 2019-04-28 | 2022-08-05 | 武汉海康存储技术有限公司 | 闪存纠错方法及装置 |
CN110491438A (zh) * | 2019-07-19 | 2019-11-22 | 苏州浪潮智能科技有限公司 | 一种硬盘稳定性跌落测试方法、系统、终端及存储介质 |
KR102657760B1 (ko) * | 2019-09-23 | 2024-04-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 메모리 시스템의 동작 방법 |
CN112612416A (zh) * | 2020-12-24 | 2021-04-06 | 杭州华澜微电子股份有限公司 | 一种数据存储方法、装置及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070654A1 (en) * | 2006-02-09 | 2009-03-12 | International Business Machines Corporation | Design Structure For A Processor System With Background Error Handling Feature |
US10803970B2 (en) * | 2011-11-14 | 2020-10-13 | Seagate Technology Llc | Solid-state disk manufacturing self test |
-
2011
- 2011-11-02 TW TW100140030A patent/TWI436211B/zh active
-
2012
- 2012-02-03 US US13/365,270 patent/US8732552B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8732552B2 (en) | 2014-05-20 |
US20130111301A1 (en) | 2013-05-02 |
TW201319805A (zh) | 2013-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI436211B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
JP4901987B1 (ja) | 記憶装置、電子機器及び誤りデータの訂正方法 | |
TWI479495B (zh) | 資料讀取方法、記憶體控制器及記憶體儲存裝置 | |
US8392797B2 (en) | Error correcting controller, flash memory chip system, and error correcting method thereof | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
TW201907287A (zh) | 資料讀取方法以及儲存控制器 | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US10803973B2 (en) | Memory management method and storage controller | |
US20120110300A1 (en) | Data management method, memory controller and memory storage apparatus | |
TW201351137A (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI796882B (zh) | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10509583B1 (en) | Memory management method and storage controller | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN114327265B (zh) | 读取干扰检查方法、存储器存储装置及控制电路单元 | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device |