TWI584291B - 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI584291B TWI584291B TW104144108A TW104144108A TWI584291B TW I584291 B TWI584291 B TW I584291B TW 104144108 A TW104144108 A TW 104144108A TW 104144108 A TW104144108 A TW 104144108A TW I584291 B TWI584291 B TW I584291B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- entity
- physical
- units
- available
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種可複寫式非揮發性記憶體模組的記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,在可複寫式非揮發性記憶體模組中的實體抹除單元的管理上,記憶體管理電路僅會記錄相同的單一資訊來代表所有實體抹除單元中的壞實體程式化單元的狀況。而記憶體管理電路並會根據所記錄的單一資訊來決定可複寫式非揮發性記憶體模組中的好實體抹除單元。然而,由於每個實體抹除單元中的壞實體程式化單元的偏移位址值可能不相同,倘若僅以單一資訊作為代表,將無法確實獲得每個實體抹除單元中的壞實體程式化單元的正確資訊。再者,僅記錄單一資訊來進行記憶體管理,意即在實際使用時,在每個好實體抹除單元中對應壞實體程式化單元的位址偏移值必須相同。如此一來,可能造成某些可用的實體抹除單元被判斷為壞實體抹除單元而無法被使用,而僅能決定出較少的可複寫式非揮發性記憶體模組的可使用容量。並且,在可將至少兩個好實體抹除單元配置為一個超實體單元的系統中,在每個好實體抹除單元中各自對應壞實體程式化單元的地址偏移值必須彼此相同,將可能造成可用超實體單元的數目減少。基此,如何能確實地記錄關於每個實體抹除單元中的壞實體程式化單元的正確資訊,進而決定出更多的可使用容量,為此領域技術人員所關心的議題。
本發明提供一種記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置,可透過為可複寫式非揮發性記憶體模組中的每個實體抹除單元記錄使用資訊,來確實地識別出每個實體抹除單元中的非可用實體程式化單元,以決定出較多的可用容量。
本發明的記憶體管理方法,用於可複寫式非揮發性記憶體模組。可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元。本記憶體管理方法包括根據此些實體抹除單元之中的每一個實體抹除單元記錄使用資訊。再者,本記憶體管理方法也包括根據使用資訊配置多個超實體單元,而此些超實體單元中的每一個超實體單元包括此些實體抹除單元中的至少兩個實體抹除單元。並且,此些超實體單元包括第一超實體單元,第一超實體單元包括第一實體抹除單元及第二實體抹除單元。第一實體抹除單元包括第一非可用實體程式化單元,第二實體抹除單元包括第一可用實體程式化單元,而且第一實體抹除單元中對應第一非可用實體程式化單元的地址偏移值是相同於第二實體抹除單元中對應第一可用實體程式化單元的地址偏移值。
在本發明的一範例實施例中,上述的每一個超實體單元包括多個超實體程式化單元,第一實體抹除單元包括第二可用實體程式化單元,其中第一實體抹除單元的第二可用實體程式化單元與第二實體抹除單元的第一可用實體程式化單元被配置為第一超實體單元的一個超實體程式化單元,其中在第一實體抹除單元中對應第二可用實體程式化單元的地址偏移值是不相同於第二實體抹除單元中對應第一可用實體程式化單元的地址偏移值。
在本發明的一範例實施例中,上述的記憶體管理方法還包括根據使用資訊計算可用容量。並且,可用容量是根據此些實體抹除單元中的每一個實體抹除單元中的可用實體程式化單元的數目來計算。
在本發明的一範例實施例中,上述的根據使用資訊計算可用容量的步驟包括根據使用資訊計算每一實體抹除單元的可用實體程式化單元的數目。再者,依據此些數目之中的最小值決定每一超實體單元的容量,並且根據此些超實體單元的數量與每一超實體單元的容量決定可用容量。
在本發明的一範例實施例中,上述的為此些實體抹除單元之中的每一個實體抹除單元記錄使用資訊的步驟包括掃瞄至少一實體抹除單元的可用實體程式化單元的數目。倘若此至少一實體抹除單元的可用實體程式化單元的數目不大於識別門檻數目,在使用資訊中記錄此些實體抹除單元中的可用實體程式化單元。倘若此至少一實體抹除單元的可用實體程式化單元的數目大於識別門檻數目時,在使用資訊中記錄此些實體抹除單元中的非可用實體程式化單元。
在本發明的一範例實施例中,上述的記憶體管理方法更包括記錄識別旗標以標記記錄在使用資訊中的實體程式化單元是可用實體程式化單元或非可用實體程式化單元。
在本發明的一範例實施例中,上述的記憶體管理方法更包括從此些實體抹除單元之中選擇至少一實體抹除單元。此至少一實體抹除單元包括多個可用實體程式化單元與多個非可用實體程式化單元。再者,上述的記憶體管理方法還包括在不程式化此至少一實體抹除單元的非可用實體程式化單元下將測試資料程式化至此至少一實體抹除單元的可用實體程式化單元中。並且從此至少一實體抹除單元的可用實體程式化單元中讀取資料,以及計算所讀取的資料中的錯誤位元的數目作為第一錯誤位元數目。此外,上述的記憶體管理方法還包括將測試資料程式化至此至少一實體抹除單元的可用實體程式化單元中,將虛擬資料程式化至此至少一實體抹除單元的非可用實體程式化單元。並且從此至少一實體抹除單元的可用實體程式化單元中讀取資料,以及計算所讀取的資料中的錯誤位元的數目作為一第二錯誤位元數目。倘若第一錯誤位元數目大於第二錯誤位元數目時,在執行寫入操作時將虛擬資料程式化至此些實體抹除單元中的非可用實體程式化單元。
本發明的一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,其中此可複寫式非發性記憶體模組包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元。本記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以根據此些實體抹除單元之中的每一個實體抹除單元記錄使用資訊。再者,記憶體管理電路更用以根據使用資訊配置多個超實體單元,此些超實體單元中的每一個超實體單元包括此些實體抹除單元中的至少兩個實體抹除單元。並且,此些超實體單元包括第一超實體單元,第一超實體單元包括第一實體抹除單元及第二實體抹除單元。第一實體抹除單元包括第一非可用實體程式化單元,第二實體抹除單元包括第一可用實體程式化單元,而且第一實體抹除單元中對應第一非可用實體程式化單元的地址偏移值是相同於第二實體抹除單元中對應第一可用實體程式化單元的地址偏移值。
在本發明的一範例實施例中,上述的每一個超實體單元包括多個超實體程式化單元,第一實體抹除單元包括第二可用實體程式化單元,其中第一實體抹除單元的第二可用實體程式化單元與第二實體抹除單元的第一可用實體程式化單元被配置為第一超實體單元的一個超實體程式化單元,其中在第一實體抹除單元中對應第二可用實體程式化單元的地址偏移值是不相同於第二實體抹除單元中對應第一可用實體程式化單元的地址偏移值。
在本發明的一範例實施例中,上述的記憶體管理電路更用以根據使用資訊計算可用容量。此可用容量是根據此些實體抹除單元中的每一個實體抹除單元中的可用實體程式化單元的數目來計算。
在本發明的一範例實施例中,上述的記憶體管理電路更用以根據使用資訊計算每一實體抹除單元的可用實體程式化單元的數目。並且,上述的記憶體管理電路更用以依據此些數目之中的最小值決定每一超實體單元的容量。此外,上述的記憶體管理電路更用以根據此些超實體單元的數量與每一超實體單元的容量決定可用容量。
在本發明的一範例實施例中,上述的記憶體管理電路更用以掃瞄至少一實體抹除單元中可用實體程式化單元的數目。倘若此至少一實體抹除單元的可用實體程式化單元的數目不大於識別門檻數目,上述的記憶體管理電路更用以在使用資訊中記錄此些實體抹除單元中的可用實體程式化單元。倘若此至少一實體抹除單元的可用實體程式化單元的數目大於識別門檻數目時,上述的記憶體管理電路更用以在使用資訊中記錄此些實體抹除單元中的非可用實體程式化單元。
在本發明的一範例實施例中,上述的記憶體管理電路更用以記錄識別旗標以標記記錄在使用資訊中的實體程式化單元是可用實體程式化單元或非可用實體程式化單元。
在本發明的一範例實施例中,上述的記憶體管理電路更用以從此些實體抹除單元之中選擇至少一實體抹除單元。此至少一實體抹除單元包括多個可用實體程式化單元與多個非可用實體程式化單元。再者,上述的記憶體管理電路更用以在不程式化此至少一實體抹除單元的非可用實體程式化單元下將測試資料程式化至此至少一實體抹除單元的可用實體程式化單元中。並且從此至少一實體抹除單元的可用實體程式化單元中讀取資料,以及計算所讀取的資料中的錯誤位元的數目作為第一錯誤位元數目。再者,上述的記憶體管理電路將測試資料程式化至此至少一實體抹除單元的可用實體程式化單元中,將虛擬資料程式化至此至少一實體抹除單元的非可用實體程式化單元。並且從此至少一實體抹除單元的可用實體程式化單元中讀取資料,以及計算所讀取的資料中的錯誤位元的數目作為第二錯誤位元數目。此外,倘若第一錯誤位元數目大於第二錯誤位元數目,上述的記憶體管理電路更用以在執行寫入操作時將虛擬資料程式化至此些實體抹除單元中的非可用實體程式化單元。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及上述的記憶體控制電路單元。連接介面單元耦接至主機系統,記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。
基於上述,透過為可複寫式非揮發性記憶體模組中的每個實體抹除單元記錄使用資訊,可正確地識別出每個實體抹除單元中的非可用實體程式化單元。並且,藉由所記錄的使用資訊可將具有對應不同地址偏移值的非可用實體程式化單元的至少兩個實體抹除單元配置為超實體單元。如此一來,將可決定出較多的可用容量,並且在記憶體管理上更具有彈性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖,且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、安全數位(Secure Digital, SD)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,每一個實體抹除單元410(0)~410(N)是屬於多個操作單元的其中之一。屬於不同操作單元的實體抹除單元可以同時或是交錯地被程式化。例如,操作單元可以是通道、晶片、晶粒或是平面。具體來說,在一範例實施例中記憶體儲存裝置10具有多個通道,記憶體控制電路單元404是透過不同的通道來存取不同部份的實體抹除單元410(0)~410(N)。不同通道上的實體抹除單元可以獨立的運作。例如,記憶體控制電路單元404對一個通道上的實體抹除單元執行寫入操作時,記憶體控制電路單元404可以同時地對另一個通道上的實體抹除單元執行讀取操作或其他操作。在記憶體儲存裝置10中,同一個通道中的實體抹除單元可以屬於不同的晶片。在一範例實施例中,屬於不同晶片的實體抹除單元亦屬於不同的交錯(interleave)。記憶體控制電路單元404在程式化某一個晶片中的實體抹除單元以後,不需要等此晶片回覆準備好(ready)訊號,便可以繼續程式化下一個晶片中的實體抹除單元。在可複寫式非揮發性記憶體模組406中,同一個交錯中的實體抹除單元還可以屬於不同的平面(plane)。同一個交錯中屬於不同平面的實體抹除單元可以根據同一個寫入指令而同時被程式化。
在一範例實施例中,記憶體儲存裝置10中配置了一個通道與一個晶片,而此晶片包括兩個平面,但本發明並不在此限。在另一範例實施例中,記憶體儲存裝置10也可以包括n個通道、m個交錯、以及k個平面。n、m與k為正整數,並且其中一個正整數會大於1(即,記憶體儲存裝置10包括多個操作單元)。然而,本發明並不限制正整數n、m與k的數值。
在本範例實施例中,可複寫式非揮發性記憶體模組406為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區602、閒置區604、系統區606與取代區608。
邏輯上屬於資料區602與閒置區604的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區602的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604的實體抹除單元是用以替換資料區602的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路502會從閒置區604中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區602的實體抹除單元。
邏輯上屬於系統區606的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區608中仍存有正常之實體抹除單元並且資料區602的實體抹除單元損壞時,記憶體管理電路502會從取代區608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區602、閒置區604、系統區606與取代區608之實體抹除單元的數量會根據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區602、閒置區604、系統區606與取代區608的分組關係會動態地變動。例如,當閒置區604中的實體抹除單元損壞而被取代區608的實體抹除單元取代時,則原本取代區608的實體抹除單元會被關聯至閒置區604。
請參照圖7,如上所述,資料區602與閒置區604的實體抹除單元是以輪替方式來儲存主機系統11所寫入之資料。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會配置邏輯位址710(0)~710(D)給主機系統11,以映射至資料區602中的實體抹除單元410(0)~410(F-1),以利於在以上述輪替方式來儲存資料之實體抹除單元中進行資料存取。特別是,主機系統11會透過邏輯位址710(0)~710(D)來存取資料區602中的資料。在本範例實施例中,一個邏輯位址是映射至一個實體扇,多個邏輯位址會組成一個邏輯程式化單元,並且多個邏輯程式化單元會組成一個邏輯抹除單元。
此外,記憶體控制電路單元404(或記憶體管理電路502)會建立邏輯-實體映射表,以記錄邏輯位址與實體抹除單元之間的映射關係。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是以邏輯程式化單元來管理可複寫式非揮發性記憶體模組406,因此記憶體控制電路單元404(或記憶體管理電路502)會建立一個邏輯-實體映射表以記錄邏輯程式化單元與實體程式化單元之間的映射關係。在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是以邏輯抹除單元來管理可複寫式非揮發性記憶體模組406,因此記憶體控制電路單元404(或記憶體管理電路502)會建立一個邏輯-實體映射表以記錄邏輯抹除單元與實體抹除單元之間的映射關係。
可複寫式非揮發性記憶體模組406的每一個實體抹除單元中,可能包括至少一個非可用(unavailable)實體程式化單元,例如,壞實體程式化單元。記憶體控制電路單元404(或記憶體管理電路502)會為可複寫式非揮發性記憶體模組406中的每一個實體抹除單元記錄對應的使用資訊。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可在每一個實體抹除單元的使用資訊中記錄此實體抹除單元的壞實體程式化單元。然而,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可在每一個實體抹除單元的使用資訊中記錄此實體抹除單元的可用(available)實體程式化單元,例如,好實體程式化單元。如此一來,記憶體控制電路單元404(或記憶體管理電路502)便可根據每一個實體抹除單元的使用資訊來辨識每一個實體抹除單元中的壞實體程式化單元及好實體程式化單元。
具體而言,記憶體控制電路單元404(或記憶體管理電路502)藉由掃瞄每一個實體抹除單元的好實體程式化單元,並且依據掃瞄結果來記錄使用資訊。此外,記憶體控制電路單元404(或記憶體管理電路502)還可先針對至少一個實體抹除單元進行掃描,並計算此實體抹除單元的好實體程式化單元的數目,以決定要在使用資訊中記錄壞實體程式化單元或好實體程式化單元。
在一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可從所有實體抹除單元中選取一個實體抹除單元,並掃描此實體抹除單元的好實體程式化單元以計算出此實體抹除單元的好實體程式化單元的數目。再者,記憶體控制電路單元404(或記憶體管理電路502)會判斷此實體抹除單元的好實體程式化單元的數目是否大於識別門檻數目。識別門檻數目可根據一個實體抹除單元所包括的實體程式化單元的總數目來設定。在本範例實施例中,是將識別門檻數目設定為一個實體抹除單元所包括的實體程式化單元的總數目的一半。也就是說,假設一個實體抹除單元中包括256個實體程式化單元,則識別門檻數目可設定為128個實體程式化單元。倘若,所選取的此實體抹除單元的好實體程式化單元的數目大於識別門檻數目(例如,好實體程式化單元的數目大於128個),表示此實體抹除單元中的壞實體程式化單元的數目會少於好實體程式化單元的數目。因此,記憶體控制電路單元404(或記憶體管理電路502)會決定在使用資訊中記錄實體抹除單元的壞實體程式化單元。相對地,倘若此實體抹除單元的好實體程式化單元的數目不大於識別門檻數目(例如,好實體程式化單元的數目小於或等於128個),表示此實體抹除單元中的壞實體程式化單元的數目會多於好實體程式化單元的數目。記憶體控制電路單元404(或記憶體管理電路502)會決定在使用資訊中記錄實體抹除單元的好實體程式化單元。藉由預先決定要記錄好實體程式化單元或壞實體程式化單元的方式,可減少記錄在使用資訊中的資訊量。
值得一提的是,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可從所有實體抹除單元中選取多個實體抹除單元,並掃描此些實體抹除單元的好實體程式化單元以計算出此些實體抹除單元的好實體程式化單元的數目。例如,記憶體控制電路單元404(或記憶體管理電路502)可計算出所選取的每個實體抹除單元的好實體程式化單元的數目,並計算此些數目的平均值以代表此些實體抹除單元的好實體程式化單元的數目。在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可計算出所選取的每個實體抹除單元的好實體程式化單元的數目,並計算此些數目的總和以代表此些實體抹除單元的好實體程式化單元的數目。
倘若平均值大於識別門檻數目,記憶體控制電路單元404(或記憶體管理電路502)會決定在使用資訊中記錄實體抹除單元的壞實體程式化單元,反之則決定記錄好實體程式化單元。在此範例實施例中,識別門檻數目可設定為一個實體抹除單元所包括的實體程式化單元的總數目的一半乘以所選取的實體抹除單元的數目。倘若總和大於識別門檻數目,記憶體控制電路單元404(或記憶體管理電路502)會決定在使用資訊中記錄實體抹除單元的壞實體程式化單元,反之則決定記錄好實體程式化單元。此外,在其他範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可掃描所有的實體抹除單元的好實體程式化單元的數目,並將此些數目的平均值或總和與所設定的識別門檻數目比較以決定記錄壞實體程式化單元或好實體程式化單元。
另一方面,為了辨識記錄在使用資訊中的實體程式化單元是好實體程式化單元或壞實體程式單元,記憶體控制電路單元404(或記憶體管理電路502)更會為使用資訊記錄識別旗標。記憶體控制電路單元404(或記憶體管理電路502)可僅記錄一個識別旗標來作為所有使用資訊的標記。再者,識別旗標可以一個位元表示。例如,倘若識別旗標記錄為1,表示所有的使用資訊所記錄的皆為好實體程式化單元。倘若識別旗標記錄為0,表示所有的使用資訊所記錄的皆為壞實體程式化單元。然而,識別旗標也可以更多位元表示,本發明並不加以限制。
圖8是根據一範例實施例所繪示的在使用資訊中記錄壞實體程式化單元的示意圖。
請參照圖8,實體抹除單元810中包括8個實體程式化單元(即包括第0~7實體程式化單元)。在掃描實體抹除單元810之後,記憶體控制電路單元404(或記憶體管理電路502)會判斷第1實體程式化單元(即實體程式化單元810(1))、第3實體程式化單元(即實體程式化單元810(3))與第5實體程式化單元(即實體程式化單元810(5))為壞實體程式化單元。因此,記憶體控制電路單元404(或記憶體管理電路502)會為實體抹除單元810記錄使用資訊820,並且在使用資訊820中記錄數值1、3、5來表示實體程式化單元810(1)、810(3)、810(5)為壞實體程式化單元。
在本範例實施例中,記錄在使用資訊820中的數值1、3、5僅為示意。在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可將在實體抹除單元810中對應壞實體程式化單元的地址偏移值記錄在使用資訊820中。在此,一個實體程式化單元的地址偏移值是指此實體程式化單元的起始位址相對於其所屬的實體抹除單元的起始位址的距離。再者,記憶體控制電路單元404(或記憶體管理電路502)可以位元組(Byte)的形式來記錄壞實體程式化單元。例如,以一個實體抹除單元包括256個實體程式化單元來說(即包括第0~255實體程式化單元),可以一個位元組來表示一個實體程式化單元。例如,以位元組「00000000」表示第0實體程式化單元為壞實體程式化單元。在此情況下,倘若一個實體抹除單元中包括8個壞實體程式化單元,記憶體控制電路單元404(或記憶體管理電路502)會在使用資訊中記錄8個位元組來表示這8個壞實體程式化單元。然而,也可使用位元(Bit)的形式來記錄壞實體程式化單元。例如,以一個實體抹除單元包括256個實體程式化單元來說,可以256個位元(即包括第0~255位元)來記錄一個實體抹除單元的所有實體程式化單元,其中每一個位元用來表示一個實體程式化單元。假設以位元值為1表示壞實體程式化單元,位元值為0表示好實體程式化單元。倘若某個實體抹除單元的使用資訊中的第5個位元為1,表示此實體抹除單元的第5個實體程式化單元為壞實體程式化單元。在此種情況下,一個實體抹除單元中無論包括幾個壞實體程式化單元,記憶體控制電路單元404(或記憶體管理電路502)都會在使用資訊中記錄256個位元(即32個位元組)來表示這些壞實體程式化單元。因此,要以何種形式來記錄實體程式化單元可根據實際需求來決定,本發明並不加以限制。
在決定要在使用資訊中記錄壞實體程式化單元或好實體程式化單元之後,記憶體控制電路單元404(或記憶體管理電路502)會掃描所有實體抹除單元並為每個實體抹除單元記錄對應的使用資訊。使用資訊可被記錄在可複寫式非揮發性記憶體的一個實體抹除單元中,例如系統區中的實體抹除單元。
記憶體控制電路單元404(或記憶體管理電路502)還可根據所記錄的使用資訊配置超實體單元。一個超實體單元中會包括所有實體抹除單元中的至少兩個好實體抹除單元。並且,在其中之一的好實體抹除單元中壞實體程式化單元的地址偏移值可與在另外的好實體抹除單元中壞實體程式化單元的地址偏移值不相同。換句話說,一個超實體單元的兩個好實體抹除單元中的好實體程式化單元可以是位於此兩個實體抹除單元中非對應位址。每一個超實體單元可具有多個超實體程式化單元。也就是說,可將位於兩個實體抹除單元中非對應位址的好實體程式化單元配置為超實體單元中的一個超實體程式化單元。例如,一個超實體單元的其中一個好實體抹除單元的第1、3、5、7實體程式化單元為好的,而另一個好實體抹除單元的第0、2、4、6實體程式化單元為好的,因此其中一個好實體抹除單元的第1實體程式化單元與另一個好實體抹除單元的第0實體程式化單元可被配置為一個超實體程式化單元。在本範例實施例中,一個超實體單元所包括的至少兩個好實體抹除單元是屬於不同的操作單元(例如,平面(plane)、交錯(interleave)或通道(channel))。因此,一個超實體程式化單元中不同的實體程式化單元可以根據同一個寫入指令而同時被程式化。
具體而言,記憶體控制電路單元404(或記憶體管理電路502)會根據所有實體抹除單元的使用資訊來計算出可複寫式非揮發性記憶體模組406的可用容量。更詳細地說,可用容量是根據每一個實體抹除單元中的好實體程式化單元的數目來計算。舉例而言,記憶體控制電路單元404(或記憶體管理電路502)會根據每一個實體抹除單元的使用資訊計算每一個實體抹除單元中的好實體程式化單元的數目。記憶體控制電路單元404(或記憶體管理電路502)並會根據所計算的數目來決定每一個超實體單元的容量。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可從所計算的數目中識別出最小值作為用以配置超實體單元的每一個好實體抹除單元的容量,進而決定出每一個超實體單元的容量。也就是說,用以配置超實體單元的每一個好實體抹除單元的容量即符合所有實體抹除單元的好實體程式化單元的數目中的最小值。而一個超實體單元的容量即符合上述的最小值乘以一個超實體單元所包括的好實體抹除單元的數目。如此一來,記憶體控制電路單元404(或記憶體管理電路502)便可根據所配置的超實體單元的數量與每一個超實體單元的容量來決定可用容量。例如,將每一個超實體單元的容量乘以超實體單元的數量即可計算出可用容量。
圖9是根據一範例實施例所繪示的計算可用容量的示意圖。
請參照圖9,假設可複寫式非揮發性記憶體模組901具有實體抹除單元910、920、930、940,每個實體抹除單元具有8個實體程式化單元。記憶體控制電路單元404(或記憶體管理電路502)根據每個實體抹除單元的使用資訊判斷出實體抹除單元910與實體抹除單元920各包括1個壞實體程式化單元,實體抹除單元930包括3個壞實體程式化單元,實體抹除單元940包括4個壞實體程式化單元。換句話說,記憶體控制電路單元404(或記憶體管理電路502)可計算出實體抹除單元910中的好實體程式化單元的數目為7,實體抹除單元920中的好實體程式化單元的數目為7,實體抹除單元930中的好實體程式化單元的數目為5,實體抹除單元940中的好實體程式化單元的數目為4。意即,在所有實體抹除單元中,實體抹除單元940具有最少的好實體程式化單元。因此,記憶體控制電路單元404(或記憶體管理電路502)會決定一個好實體抹除單元的容量為4個好實體程式化單元。在本範例實施例中,每一個超實體單元是包括兩個好實體抹除單元,因此可配置出超實體單元950、960,並且每一個超實體單元的容量為8個好實體程式化單元。基此,記憶體控制電路單元404(或記憶體管理電路502)便可計算出可複寫式非揮發性記憶體模組901的可用容量為16個好實體程式化單元。
再者,由於每一個實體抹除單元都有各自對應的使用資訊,因此記憶體控制電路單元404(或記憶體管理電路502)可根據使用資訊來判斷出在每一個實體抹除單元中對應壞實體程式化單元的地址偏移值。也就是說,記憶體控制電路單元404(或記憶體管理電路502)可利用包括不同地址偏移值的壞實體程式化單元的實體抹除單元來配置超實體單元。如圖9所示,超實體單元950包括實體抹除單元910、920,實體抹除單元910中的實體程式化單元910(3)為壞實體程式化單元並且對應的地址偏移值為3,而實體抹除單元920中的實體程式化單元920(2)為壞實體程式化單元並且對應的地址偏移值為2。也就是說,在所配置的超實體單元的實體抹除單元910、920中,可包括對應於相同地址偏移值的好實體程式化單元(例如,實體抹除單元910中的實體程式化單元910(0)與實體抹除單元920中的實體程式化單元920(0)),也可包括對應於不同地址偏移值的好實體程式化單元(例如,實體抹除單元910中的實體程式化單元910(2)與實體抹除單元920中的實體程式化單元920(3))。而且,實體抹除單元910中的壞實體程式化單元910(3)的地址偏移值是相同於實體抹除單元920中的好實體程式化單元920(3)的地址偏移值。換句話說,可將實體抹除單元910中的實體程式化單元910(0)與實體抹除單元920中的實體程式化單元920(0)配置為超實體單元950的一個超實體程式化單元,也可將實體抹除單元910中的實體程式化單元910(2)與實體抹除單元920中的實體程式化單元920(3)配置為超實體單元950的另一個超實體程式化單元。
此外,由於一個好實體抹除單元的容量是根據每一個實體抹除單元中的好實體程式化單元的數目的最小值來決定,因此,在實體抹除單元910、920、930中會包括部份的好實體程式化單元屬於剩餘的好實體程式化單元。當執行實體抹除單元的寫入操作時,並不會將寫入資料程式化至此些剩餘的好實體程式化中。
在某些可複寫式非揮發性記憶體模組中,一個實體程式化單元中所儲存的資料可能會因另一個實體程式化單元而被影響。例如,在一個記憶胞中可儲存多個位元的可複寫式非揮發性記憶體模組中,由相同的記憶胞所形成的多個實體程式化單元可能因為程式化操作而互相影響。因此,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會先對至少一個實體抹除單元執行程式化測試,並且根據程式化測試的結果來判斷在執行寫入操作時是否要將虛擬資料(dummy data)程式化至壞實體程式化單元。
具體而言,記憶體控制電路單元404(或記憶體管理電路502)會選取至少一個實體抹除單元來執行程式化測試。在程式化測試的過程中,記憶體控制電路單元404(或記憶體管理電路502)會對所選取的實體抹除單元執行兩次程式化。在兩次程式化的過程中皆會將測試資料程式化至好實體程式化單元中。而在其中一次程式化的過程中,不將虛擬資料程式化至壞實體程式化單元,但在另外一次程式化的過程中,會將虛擬資料程式化至壞實體程式化單元。在完成每次的程式化之後,記憶體控制電路單元404(或記憶體管理電路502)會讀取所選取的實體抹除單元中所儲存的資料,並計算所讀取資料的錯誤位元數目,以根據兩次程式化後所計算的錯誤位元數目決定在執行寫入操作時是否要將虛擬資料程式化至壞實體程式化單元中。
圖10是根據一範例實施例所繪示的執行程式化測試的示意圖。在本範例實施例中,假設選取一個實體抹除單元來執行程式化測試。
請參照圖10,所選取的實體抹除單元1010包括實體程式化單元1010(0)~1010(7),其中,實體程式化單元1010(1)、1010(4)為壞實體程式化單元。
記憶體控制電路單元404(或記憶體管理電路502)會先對實體抹除單元1010執行第一次程式化。在第一次程式化的過程中,記憶體控制電路單元404(或記憶體管理電路502)僅會針對好實體程式化單元執行程式化,而壞實體程式化單元則不會被程式化任何資料。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將測試資料程式化至所有的好實體程式化單元中,測試資料可為任意的資料。因此,在完成第一次程式化之後,實體抹除單元1010’中的好實體程式化單元會存有有效資料,而壞實體程式化單元中不會存有資料。接著,記憶體控制電路單元404(或記憶體管理電路502)會下達讀取指令讀取實體抹除單元1010’中的有效資料,並且檢查所讀取的有效資料是否有錯誤,以及計算有效資料的錯誤位元數目以產生測試結果。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)在程式化好實體程式化單元時,可將測試資料程式化至好實體程式化單元的資料位元區,並且將對應的錯誤檢查與校正碼程式化至好實體程式化單元的冗餘位元區。因此,記憶體控制電路單元404(或記憶體管理電路502)可藉由錯誤檢查與校正電路512利用錯誤檢查與校正碼來檢查所讀取的有效資料。在本範例實施例中,根據第一次程式化的測試結果,記憶體控制電路單元404(或記憶體管理電路502)檢查出從好實體程式化單元1010’(0)、1010’(2)、1010’(3)中所讀取的有效資料發生錯誤,並計算此些發生錯誤的有效資料的錯誤位元數目(以下亦稱為第一錯誤位元數目)。
接著,記憶體控制電路單元404(或記憶體管理電路502)會抹除實體抹除單元1010’中所儲存的資料,以執行第二次程式化。在第二次程式化的過程中,記憶體控制電路單元404(或記憶體管理電路502)會將測試資料程式化至好實體程式化單元,並且將虛擬資料程式化至壞實體程式化單元。在完成第二次程式化之後,實體抹除單元1010”中的好實體程式化單元會存有有效資料,而壞實體程式化單元中會存有虛擬資料。接著,實體抹除單元1010”記憶體控制電路單元404(或記憶體管理電路502)會讀取並檢查實體抹除單元1010”中所存有的有效資料。在本範例實施例中,根據第二次程式化的測試結果,記憶體控制電路單元404(或記憶體管理電路502)檢查出好實體程式化單元1010”(3)的有效資料發生錯誤,並計算此發生錯誤的有效資料的錯誤位元數目(以下亦稱為第二錯誤位元數目)。
進一步地,記憶體控制電路單元404(或記憶體管理電路502)會比較第一錯誤位元數目與第二錯誤位元數目。倘若第一錯誤位元數目大於第二錯誤位元數目,表示將虛擬資料程式化至壞實體程式化單元中會降低有效資料發生錯誤的機率。因此,記憶體控制電路單元404(或記憶體管理電路502)會決定在執行寫入操作時,將虛擬資料程式化至實體抹除單元的壞實體程式化單元中。相對地,倘若第一錯誤位元數目不大於第二錯誤位元數目,表示將虛擬資料程式化至壞實體程式化單元中會增加有效資料發生錯誤的機率。因此,記憶體控制電路單元404(或記憶體管理電路502)會決定在執行寫入操作時,不將虛擬資料程式化至實體抹除單元的壞實體程式化單元中。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可計算實體抹除單元中的各有效資料的錯誤位元的數目的總和作為對應於實體抹除單元的錯誤位元數目。然而,本發明不限於此,記憶體控制電路單元404(或記憶體管理電路502)亦可計算實體抹除單元中的各有效資料的錯誤位元的數目的平均值作為對應於實體抹除單元的錯誤位元數目。
此外,在另一範例實施例中,也可選取多個實體抹除單元來執行程式化測試。例如,比較所選取的實體抹除單元的所有第一錯誤位元數目的總和與所有第二錯誤位元數目的總和。或者,比較所選取的實體抹除單元的所有第一錯誤位元數目的平均值與所有第二錯誤位元數目的平均值。本發明並不限制計算錯誤位元數目的方式。
圖11是根據一範例實施例所繪示的記憶體管理方法的流程圖。
在步驟S1101中,記憶體控制電路單元404(或記憶體管理電路502)會為可複寫式非揮發性記憶體模組406中的每一個實體抹除單元記錄使用資訊。
在步驟S1103中,記憶體控制電路單元404(或記憶體管理電路502)會根據所記錄的使用資訊計算每一個實體抹除單元中的好實體程式化單元的數目。
在步驟S1105中,記憶體控制電路單元404(或記憶體管理電路502)會根據所計算的數目之中的最小值決定每一個超實體單元的容量。
在步驟S1107中,記憶體控制電路單元404(或記憶體管理電路502)會根據所記錄的使用資訊配置多個超實體單元,其中每一個超實體單元包括至少兩個實體抹除單元,並且至少一個超實體單元的其中一個實體抹除單元中的至少一個好實體程式化單元的地址偏移值是相同於另一個實體抹除單元中的至少一個壞實體程式化單元的地址偏移值。即,此至少兩個實體抹除單元中對應壞實體程式化單元的地址偏移值可以互不相同。
在步驟S1109中,記憶體控制電路單元404(或記憶體管理電路502)會根據所配置的超實體單元的數量與每一個超實體單元的容量來決定對應於可複寫式非揮發性記憶體模組406的可用容量。
圖12是根據一範例實施例所繪示的記憶體管理方法中記錄使用資訊的步驟的流程圖。
在步驟S1201中,記憶體控制電路單元404(或記憶體管理電路502)會掃瞄可複寫式非揮發性記憶體模組406中的至少一個實體抹除單元的好實體程式化單元的數目。
在步驟S1203中,記憶體控制電路單元404(或記憶體管理電路502)會判斷此至少一個實體抹除單元的好實體程式化單元的數目是否大於識別門檻數目。
倘若此數目大於識別門檻數目,在步驟S1205中,記憶體控制電路單元404(或記憶體管理電路502)會在使用資訊中記錄每一個實體抹除單元中的壞實體程式化單元。
倘若此數目不大於識別門檻數目,在步驟S1207中,記憶體控制電路單元404(或記憶體管理電路502)會在使用資訊中記錄每一個實體抹除單元中的好實體程式化單元。
圖13是根據一範例實施例所繪示的決定是否將虛擬資料寫入至壞實體程式化單元的流程圖。
在步驟S1301中,記憶體控制電路單元404(或記憶體管理電路502)會選取至少一個實體抹除單元,以對所選取的實體抹除單元執行程式化測試。
接著,記憶體控制電路單元404(或記憶體管理電路502)會先對所選取的實體抹除單元執行第一次程式化。也就是在步驟S1303中,記憶體控制電路單元404(或記憶體管理電路502)會在不程式化壞實體程式化單元下,將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中。
在步驟S1305中,記憶體控制電路單元404(或記憶體管理電路502)會從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第一錯誤位元數目)。
接著,記憶體控制電路單元404(或記憶體管理電路502)會對所選取的實體抹除單元執行第二次程式化。也就是在步驟S1307中,記憶體控制電路單元404(或記憶體管理電路502)會將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中,並且將虛擬資料程式化至所選取的實體抹除單元的壞實體程式化單元中。在執行本步驟之前,記憶體控制電路單元404(或記憶體管理電路502)還可先對所選取的實體抹除單元執行抹除操作,以抹除所選取的實體抹除單元中所儲存的資料。
在步驟S1309中,記憶體控制電路單元404(或記憶體管理電路502)會從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第二錯誤位元數目)。關於計算錯誤位元數目的方式已於前述內容中詳細說明,在此不再贅述。
在步驟S1311中,記憶體控制電路單元404(或記憶體管理電路502)會判斷第一錯誤位元數目是否大於第二錯誤位元數目。
倘若第一錯誤位元數目大於第二錯誤位元數目,在步驟S1313中,在執行寫入操作時將虛擬資料程式化至實體抹除單元的壞實體程式化單元中。
倘若第一錯誤位元數目不大於第二錯誤位元數目,在步驟S1315中,在執行寫入操作時不程式化實體抹除單元的壞實體程式化單元。
在本範例實施例中,在程式化測試過程中,記憶體控制電路單元404(或記憶體管理電路502)在執行第一次程式化時,不會程式化壞實體抹除單元,爾後,在執行第二次程式化時,會將虛擬資料程式化至壞實體抹除單元。然而,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)也可以在執行第一次程式化時,將虛擬資料程式化至壞實體抹除單元,爾後,在執行第二次程式化時,不程式化壞實體抹除單元。
綜上所述,本發明透過為可複寫式非揮發性記憶體模組中的每個實體抹除單元記錄使用資訊,可正確地識別出每個實體抹除單元中的壞實體程式化單元。如此一來,在每個實體抹除單元中對應壞實體程式化單元的地址偏移值可互不相同,可因此減少實體抹除單元被判斷為壞實體抹除單元的數目,因而決定出較多的可用容量。此外,藉由所記錄的使用資訊所配置的超實體單元,在其所包括的至少兩個實體抹除單元中各自對應壞實體程式化單元的位址偏移值可互不相同,使得在記憶體管理上更具有彈性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
710(0)~710(D)‧‧‧邏輯位址
810、910、920、930、940、1010、1010’、1010”‧‧‧實體抹除單元
810(0)~810(7)、910(0)~910(7)、920(0)~920(7)、930(0)~930(7)、940(0)~940(7)、1010(0)~1010(7)、1010’(0)~ 1010’(7)、1010”(0)~1010”(7)‧‧‧實體程式化單元
820‧‧‧使用資訊
950、960‧‧‧超實體單元
VD‧‧‧有效資料
DD‧‧‧虛擬資料
S1101‧‧‧為每一個實體抹除單元記錄使用資訊的步驟
S1103‧‧‧根據使用資訊計算每一個實體抹除單元中的好實體程式化單元的數目的步驟
S1105‧‧‧根據所計算的數目之中的最小值決定每一個超實體單元的容量的步驟
S1107‧‧‧根據所記錄的使用資訊配置多個超實體單元的步驟
S1109‧‧‧根據超實體單元的數量與每一個超實體單元的容量來決定可用容量的步驟
S1201‧‧‧掃瞄至少一個實體抹除單元的好實體程式化單元的數目的步驟
S1203‧‧‧判斷此至少一個實體抹除單元的好實體程式化單元的數目是否大於識別門檻數目的步驟
S1205‧‧‧在使用資訊中記錄每一個實體抹除單元中的壞實體程式化單元的步驟
S1207‧‧‧在使用資訊中記錄每一個實體抹除單元中的好實體程式化單元的步驟
S1301‧‧‧選取至少一個實體抹除單元的步驟
S1303‧‧‧在不程式化壞實體程式化單元下,將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中的步驟
S1305‧‧‧從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第一錯誤位元數目)的步驟
S1307‧‧‧將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中,並且將虛擬資料程式化至所選取的實體抹除單元的壞實體程式化單元中的步驟
S1309‧‧‧從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第二錯誤位元數目)的步驟
S1311‧‧‧判斷第一錯誤位元數目是否大於第二錯誤位元數目的步驟
S1313‧‧‧在執行寫入操作時將虛擬資料程式化至實體抹除單元的壞實體程式化單元中的步驟
S1315‧‧‧在執行寫入操作時不程式化實體抹除單元的壞實體程式化單元的步驟
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
710(0)~710(D)‧‧‧邏輯位址
810、910、920、930、940、1010、1010’、1010”‧‧‧實體抹除單元
810(0)~810(7)、910(0)~910(7)、920(0)~920(7)、930(0)~930(7)、940(0)~940(7)、1010(0)~1010(7)、1010’(0)~ 1010’(7)、1010”(0)~1010”(7)‧‧‧實體程式化單元
820‧‧‧使用資訊
950、960‧‧‧超實體單元
VD‧‧‧有效資料
DD‧‧‧虛擬資料
S1101‧‧‧為每一個實體抹除單元記錄使用資訊的步驟
S1103‧‧‧根據使用資訊計算每一個實體抹除單元中的好實體程式化單元的數目的步驟
S1105‧‧‧根據所計算的數目之中的最小值決定每一個超實體單元的容量的步驟
S1107‧‧‧根據所記錄的使用資訊配置多個超實體單元的步驟
S1109‧‧‧根據超實體單元的數量與每一個超實體單元的容量來決定可用容量的步驟
S1201‧‧‧掃瞄至少一個實體抹除單元的好實體程式化單元的數目的步驟
S1203‧‧‧判斷此至少一個實體抹除單元的好實體程式化單元的數目是否大於識別門檻數目的步驟
S1205‧‧‧在使用資訊中記錄每一個實體抹除單元中的壞實體程式化單元的步驟
S1207‧‧‧在使用資訊中記錄每一個實體抹除單元中的好實體程式化單元的步驟
S1301‧‧‧選取至少一個實體抹除單元的步驟
S1303‧‧‧在不程式化壞實體程式化單元下,將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中的步驟
S1305‧‧‧從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第一錯誤位元數目)的步驟
S1307‧‧‧將測試資料程式化至所選取的實體抹除單元的好實體程式化單元中,並且將虛擬資料程式化至所選取的實體抹除單元的壞實體程式化單元中的步驟
S1309‧‧‧從所選取的實體抹除單元的好實體程式化單元中讀取測試資料,並且計算所讀取的測試資料的錯誤位元數目(以下亦稱為第二錯誤位元數目)的步驟
S1311‧‧‧判斷第一錯誤位元數目是否大於第二錯誤位元數目的步驟
S1313‧‧‧在執行寫入操作時將虛擬資料程式化至實體抹除單元的壞實體程式化單元中的步驟
S1315‧‧‧在執行寫入操作時不程式化實體抹除單元的壞實體程式化單元的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示的管理實體抹除單元的範例示意圖。 圖8是根據一範例實施例所繪示的在使用資訊中記錄壞實體程式化單元的示意圖。 圖9是根據一範例實施例所繪示的計算可用容量的示意圖。 圖10是根據一範例實施例所繪示的執行程式化測試的示意圖。 圖11是根據一範例實施例所繪示的記憶體管理方法的流程圖。 圖12是根據一範例實施例所繪示的記憶體管理方法中記錄使用資訊的步驟的流程圖。 圖13是根據一範例實施例所繪示的決定是否將虛擬資料寫入至壞實體程式化單元的流程圖
S1101‧‧‧為每一個實體抹除單元記錄使用資訊的步驟
S1103‧‧‧根據使用資訊計算每一個實體抹除單元中的好實體程式化單元的數目的步驟
S1105‧‧‧根據所計算的數目之中的最小值決定每一個超實體單元的容量的步驟
S1107‧‧‧根據所記錄的使用資訊配置多個超實體單元的步驟
S1109‧‧‧根據超實體單元的數量與每一個超實體單元的容量來決定可用容量的步驟
Claims (21)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元,該記憶體管理方法包括: 根據該些實體抹除單元之中的每一個實體抹除單元記錄一使用資訊;以及 根據該些使用資訊配置多個超實體單元,其中該些超實體單元中的每一個超實體單元包括該些實體抹除單元中的至少兩個實體抹除單元, 其中該些超實體單元包括一第一超實體單元,該第一超實體單元包括一第一實體抹除單元及一第二實體抹除單元,該第一實體抹除單元包括一第一非可用(unavailable)實體程式化單元,該第二實體抹除單元包括一第一可用(available)實體程式化單元,並且在該第一實體抹除單元中對應該第一非可用實體程式化單元的一地址偏移值是相同於該第二實體抹除單元中對應該第一可用實體程式化單元的一地址偏移值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中每一個超實體單元包括多個超實體程式化單元,該第一實體抹除單元包括一第二可用實體程式化單元,其中該第一實體抹除單元的該第二可用實體程式化單元與該第二實體抹除單元的該第一可用實體程式化單元被配置為該第一超實體單元的一個超實體程式化單元,其中在該第一實體抹除單元中對應該第二可用實體程式化單元的一地址偏移值是不相同於該第二實體抹除單元中對應該第一可用實體程式化單元的該地址偏移值。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 根據該些使用資訊計算一可用容量,其中該可用容量是根據該些實體抹除單元中的每一個實體抹除單元中的可用實體程式化單元的數目來計算。
- 如申請專利範圍第3項所述的記憶體管理方法,其中根據該些使用資訊計算該可用容量的步驟包括: 根據該些使用資訊計算每一實體抹除單元的可用實體程式化單元的數目; 依據該些數目之中的一最小值決定每一超實體單元的容量;以及 根據該些超實體單元的數量與每一超實體單元的容量決定該可用容量。
- 如申請專利範圍第1項所述的記憶體管理方法,其中為該些實體抹除單元之中的每一個實體抹除單元記錄該使用資訊的步驟包括: 掃瞄至少一實體抹除單元的可用實體程式化單元的數目; 倘若該至少一實體抹除單元的可用實體程式化單元的數目不大於一識別門檻數目,在該些使用資訊中記錄該些實體抹除單元中的可用實體程式化單元;以及 倘若該至少一實體抹除單元的可用實體程式化單元的數目大於該識別門檻數目時,在該些使用資訊中記錄該些實體抹除單元中的非可用實體程式化單元。
- 如申請專利範圍第5項所述的記憶體管理方法,更包括: 記錄一識別旗標,以標記記錄在該些使用資訊中的實體程式化單元是可用實體程式化單元或非可用實體程式化單元。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 從該些實體抹除單元之中選擇至少一實體抹除單元,其中該至少一實體抹除單元包括多個可用實體程式化單元與多個非可用實體程式化單元; 在不程式化該至少一實體抹除單元的非可用實體程式化單元下將一測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第一錯誤位元數目; 將該測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,將一虛擬資料程式化至該至少一實體抹除單元的非可用實體程式化單元,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第二錯誤位元數目;以及 倘若該第一錯誤位元數目大於該第二錯誤位元數目時,在執行一寫入操作時將該虛擬資料程式化至該些實體抹除單元中的非可用實體程式化單元。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非發性記憶體模組包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中該記憶體管理電路用以根據該些實體抹除單元之中的每一個實體抹除單元記錄一使用資訊, 其中該記憶體管理電路更用以根據該些使用資訊配置多個超實體單元,其中該些超實體單元中的每一個超實體單元包括該些實體抹除單元中的至少兩個實體抹除單元, 其中該些超實體單元包括一第一超實體單元,該第一超實體單元包括一第一實體抹除單元及一第二實體抹除單元,該第一實體抹除單元包括一第一非可用實體程式化單元,該第二實體抹除單元包括一第一可用實體程式化單元,並且該第一實體抹除單元中對應該第一非可用實體程式化單元的一地址偏移值是相同於與該第二實體抹除單元中對應該第一可用實體程式化單元的一地址偏移值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中每一個超實體單元包括多個超實體程式化單元,該第一實體抹除單元包括一第二可用實體程式化單元,其中該第一實體抹除單元的該第二可用實體程式化單元與該第二實體抹除單元的該第一可用實體程式化單元被配置為該些第一超實體單元的一個超實體程式化單元,其中在該第一實體抹除單元中對應該第二可用實體程式化單元的一地址偏移值是不相同於該第二實體抹除單元中對應該第一可用實體程式化單元的該地址偏移值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該些使用資訊計算一可用容量,其中該可用容量是根據該些實體抹除單元中的每一個實體抹除單元中的可用實體程式化單元的數目來計算。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該些使用資訊計算每一實體抹除單元的可用實體程式化單元的數目, 其中該記憶體管理電路更用以依據該些數目之中的一最小值決定每一超實體單元的容量, 其中該記憶體管理電路更用以根據該些超實體單元的數量與每一超實體單元的容量決定該可用容量。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以掃瞄至少一實體抹除單元中可用實體程式化單元的數目, 其中倘若該至少一實體抹除單元的可用實體程式化單元的數目不大於一識別門檻數目,該記憶體管理電路更用以在該些使用資訊中記錄該些實體抹除單元中的可用實體程式化單元, 其中倘若該至少一實體抹除單元的可用實體程式化單元的數目大於該識別門檻數目時,該記憶體管理電路更用以在該些使用資訊中記錄該些實體抹除單元中的非可用實體程式化單元。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該記憶體管理電路更用以記錄一識別旗標,以標記記錄在該些使用資訊中的實體程式化單元是可用實體程式化單元或非可用實體程式化單元。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該些實體抹除單元之中選擇至少一實體抹除單元,其中該至少一實體抹除單元包括多個可用實體程式化單元與多個非可用實體程式化單元, 其中該記憶體管理電路更用以在不程式化該至少一實體抹除單元的非可用實體程式化單元下將一測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第一錯誤位元數目, 其中該記憶體管理電路將該測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,將一虛擬資料程式化至該至少一實體抹除單元的非可用實體程式化單元,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第二錯誤位元數目, 其中倘若該第一錯誤位元數目大於該第二錯誤位元數目,該記憶體管理電路更用以在執行一寫入操作時將該虛擬資料程式化至該些實體抹除單元中的非可用實體程式化單元。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中,該記憶體控制電路單元用以根據該些實體抹除單元之中的每一個實體抹除單元記錄一使用資訊, 其中該記憶體控制電路單元更用以根據該些使用資訊配置多個超實體單元,其中該些超實體單元中的每一個超實體單元包括該些實體抹除單元中的至少兩個實體抹除單元, 其中該些超實體單元包括一第一超實體單元,該第一超實體單元包括一第一實體抹除單元及一第二實體抹除單元,該第一實體抹除單元包括一第一非可用實體程式化單元,該第二實體抹除單元包括一第一可用實體程式化單元,並且該第一實體抹除單元中對應該第一非可用實體程式化單元的一地址偏移值是相同於該第二實體抹除單元中對應該第一可用實體程式化單元的一地址偏移值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中每一個超實體單元包括多個超實體程式化單元,該第一實體抹除單元包括一第二可用實體程式化單元,其中該第一實體抹除單元的該第二可用實體程式化單元與該第二實體抹除單元的該第一可用實體程式化單元被配置為該第一超實體單元的一個超實體程式化單元,其中在該第一實體抹除單元中對應該第二可用實體程式化單元的一地址偏移值是不相同於該第二實體抹除單元中對應該第一可用實體程式化單元的該地址偏移值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該些使用資訊判斷一可用容量,其中該可用容量是根據該些實體抹除單元中的每一個實體抹除單元中的可用實體程式化單元的數目。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該些使用資訊計算每一實體抹除單元的可用實體程式化單元的數目, 其中該記憶體控制電路單元更用以依據該些數目之中的一最小值決定每一超實體單元的容量, 其中該記憶體控制電路單元更用以根據該些超實體單元的數量與每一超實體單元的容量決定該可用容量。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體管理電路更用以掃瞄至少一實體抹除單元中可用實體程式化單元的數目, 其中倘若該至少一實體抹除單元的可用實體程式化單元的數目不大於一識別門檻數目,該記憶體控制電路單元更用以在該些使用資訊中記錄該些實體抹除單元中的可用實體程式化單元, 其中倘若該至少一實體抹除單元的可用實體程式化單元的數目大於該識別門檻數目時,該記憶體控制電路單元更用以在該些使用資訊中記錄該些實體抹除單元中的非可用實體程式化單元。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以記錄一識別旗標,以標記記錄在該些使用資訊中的實體程式化單元是可用實體程式化單元或非可用實體程式化單元。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該些實體抹除單元之中選擇至少一實體抹除單元,其中該至少一實體抹除單元包括多個可用實體程式化單元與多個非可用實體程式化單元, 其中該記憶體控制電路單元更用以在不程式化該至少一實體抹除單元的非可用實體程式化單元下將一測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第一錯誤位元數目, 其中該記憶體管理電路將該測試資料程式化至該至少一實體抹除單元的可用實體程式化單元中,將一虛擬資料程式化至該至少一實體抹除單元的非可用實體程式化單元,從該至少一實體抹除單元的可用實體程式化單元中讀取資料,計算所讀取的資料中的錯誤位元的數目作為一第二錯誤位元數目, 其中倘若該第一錯誤位元數目大於該第二錯誤位元數目,該記憶體控制電路單元更用以在執行一寫入操作時將該虛擬資料程式化至該些實體抹除單元中的非可用實體程式化單元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104144108A TWI584291B (zh) | 2015-12-28 | 2015-12-28 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US15/063,476 US10579289B2 (en) | 2015-12-28 | 2016-03-07 | Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104144108A TWI584291B (zh) | 2015-12-28 | 2015-12-28 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI584291B true TWI584291B (zh) | 2017-05-21 |
TW201724110A TW201724110A (zh) | 2017-07-01 |
Family
ID=59087827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104144108A TWI584291B (zh) | 2015-12-28 | 2015-12-28 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10579289B2 (zh) |
TW (1) | TWI584291B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI680373B (zh) * | 2018-03-29 | 2019-12-21 | 大陸商合肥沛睿微電子股份有限公司 | 固態硬碟及其運作方法 |
CN110609795B (zh) * | 2018-06-14 | 2022-11-22 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
TWI705328B (zh) * | 2018-09-26 | 2020-09-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN110955383B (zh) | 2018-09-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110955384B (zh) | 2018-09-26 | 2023-04-18 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI688953B (zh) * | 2019-04-10 | 2020-03-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200703B2 (en) * | 2004-06-08 | 2007-04-03 | Valmiki Ramanujan K | Configurable components for embedded system design |
US7761687B2 (en) * | 2007-06-26 | 2010-07-20 | International Business Machines Corporation | Ultrascalable petaflop parallel supercomputer |
US20120221063A1 (en) * | 2004-11-24 | 2012-08-30 | Abdou M S | Devices and methods for inter-vertebral orthopedic device placement |
US8782376B2 (en) * | 2010-08-27 | 2014-07-15 | Icera Inc. | Vector instruction execution to load vector data in registers of plural vector units using offset addressing logic |
US8954694B2 (en) * | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832507B2 (en) * | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
-
2015
- 2015-12-28 TW TW104144108A patent/TWI584291B/zh active
-
2016
- 2016-03-07 US US15/063,476 patent/US10579289B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200703B2 (en) * | 2004-06-08 | 2007-04-03 | Valmiki Ramanujan K | Configurable components for embedded system design |
US20120221063A1 (en) * | 2004-11-24 | 2012-08-30 | Abdou M S | Devices and methods for inter-vertebral orthopedic device placement |
US7761687B2 (en) * | 2007-06-26 | 2010-07-20 | International Business Machines Corporation | Ultrascalable petaflop parallel supercomputer |
US8782376B2 (en) * | 2010-08-27 | 2014-07-15 | Icera Inc. | Vector instruction execution to load vector data in registers of plural vector units using offset addressing logic |
US8954694B2 (en) * | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
Also Published As
Publication number | Publication date |
---|---|
US20170185337A1 (en) | 2017-06-29 |
TW201724110A (zh) | 2017-07-01 |
US10579289B2 (en) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI584291B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
TWI591635B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
US20190012080A1 (en) | Memory management method, memory control circuit unit and memory storage device | |
TWI650757B (zh) | 解碼方法以及儲存控制器 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI545581B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201913383A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI642059B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI616807B (zh) | 資料寫入方法以及儲存控制器 | |
TWI664528B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US10871909B2 (en) | Block management method, memory control circuit unit and apparatus using mapping tables and block recognition machine learning with block parameters as training data | |
US10546640B2 (en) | Data protecting method and memory storage device | |
TWI662553B (zh) | 記憶體測試方法與記憶體測試系統 | |
CN114822664B (zh) | 基于数据优先级的风险评估方法、存储装置及控制电路 | |
TWI596477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI615713B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |