TWI426528B - 用於快閃記憶體的區塊管理方法、控制器與儲存系統 - Google Patents
用於快閃記憶體的區塊管理方法、控制器與儲存系統 Download PDFInfo
- Publication number
- TWI426528B TWI426528B TW098133270A TW98133270A TWI426528B TW I426528 B TWI426528 B TW I426528B TW 098133270 A TW098133270 A TW 098133270A TW 98133270 A TW98133270 A TW 98133270A TW I426528 B TWI426528 B TW I426528B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- block
- deleted
- flash memory
- physical
- 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/7202—Allocation control and policies
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在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟(Solid State Drive,SSD)就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。由於快閃記憶體體積小容量大,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,在快閃記憶體儲存裝置中快閃記憶體晶片的實體區塊會由快閃記憶體儲存裝置的快閃記憶體控制器邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。系統區的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而取代區的實體區塊是用以取代資料區或備用區中已損壞的實體區塊(即,壞實體區塊),因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當
快閃記憶體儲存裝置接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存裝置會從備用區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊中並且將已寫入新資料的實體區塊邏輯地關聯為資料區,並且將原本資料區的實體區塊進行抹除並邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置會提供邏輯區塊給主機系統。也就是說,快閃記憶體儲存裝置會透過在邏輯區塊-實體區塊映射表(logical block-physical block mapping table)中記錄與更新邏輯區塊與資料區的實體區塊之間的映射關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行寫入而快閃記憶體儲存裝置會依據邏輯區塊-實體區塊映射表對所映射的實體區塊進行讀取或寫入資料。
然而,實體區塊的抹除次數是有限的(例如,實體區塊抹除一萬次後就會損壞)。當實體區塊被不斷進行程式化與抹除而導致損毀時,快閃記憶體控制器會將損毀的實體區塊標示為壞實體區塊而不會再使用,並且從取代區中提取新的實體區塊來取代。然而,一旦損毀的實體區塊數超過一定數量而使得實體區塊的數目不足以提供主機對上述邏輯區塊的存取時,此快閃記憶體儲存裝置會被宣告為寫入保護(write protect)狀態或無法再使用。基此,如何延長快閃記憶體儲存裝置的壽命是此領域技術人員所致力的目標。
本發明提供一種區塊管理方法,其能夠有效地延長快閃記
憶體的使用壽命。
本發明提供一種快閃記憶體控制器,其所執行的區塊管理方法能夠有效地延長快閃記憶體的使用壽命。
本發明提供一種快閃記憶體儲存系統,其所執行的區塊管理方法能夠有效地延長快閃記憶體的使用壽命。
本發明範例實施例提出一種區塊管理方法,用於管理一快閃記憶體晶片的多個實體區塊。本區塊管理方法包括配置多個邏輯位址,將此些邏輯位址映射至多個邏輯區塊,並且將此些邏輯區塊映射至上述實體區塊。本區塊管理方法也包括配置一邏輯區塊-實體區塊映射表以記錄此些邏輯區塊與此些實體區塊之間的一映射關係。此外,本區塊管理方法還包括從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關於此些邏輯位址之中多個已刪除邏輯位址的資訊,且儲存於此些已刪除邏輯位址中的資料已於主機系統中被刪除。另外,本區塊管理方法亦包括依據此刪除記錄獲取一已刪除邏輯區塊並且將映射至此已刪除邏輯區塊的每一邏輯位址標示為一壞邏輯位址,其中儲存於對應此已刪除邏輯區塊的邏輯位址中的資料已於主機系統中被刪除,且主機系統無法存取此壞邏輯位址。
在本發明之一實施例中,上述之區塊管理方法更包括將上述實體區塊邏輯地至少分組為一資料區與一備用區,其中每一邏輯區塊映射此資料區的實體區塊的其中之一;以及將上述已刪除邏輯區塊所映射的實體區塊分組為此備用區。
在本發明之一實施例中,上述之區塊管理方法更包括更新上述邏輯區塊-實體區塊映射表,其中在此邏輯區塊-實體區塊映射表中上述已刪除邏輯區塊無映射任何實體區塊。
在本發明之一實施例中,上述之區塊管理方法更包括依據
上述刪除記錄將上述邏輯位址重新映射至上述邏輯區塊,並且依據此重新映射的結果更新記錄在邏輯區塊-實體區塊映射表中的映射關係,其中至少一部份已刪除邏輯位址會被重新映射至上述邏輯區塊的其中之一,其中儲存於重新映射此至少一部份已刪除邏輯位址的邏輯區塊中的資料已被主機系統刪除。
在本發明之一實施例中,上述之從主機系統中獲取上述刪除記錄的步驟包括:從主機系統接收至少一整理(trim)指令;以及識別此整理指令以獲取上述刪除記錄。
本發明範例實施例提出一種快閃記憶體控制器,用於管理一快閃記憶體晶片的多個實體區塊。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,並且用以耦接至上述快閃記憶體晶片。主機介面單元耦接至微處理器單元,並且用以連接一主機系統。記憶體管理單元耦接至微處理器單元,並且用以配置多個邏輯位址。在此,記憶體管理單元將此些邏輯位址映射至多個邏輯區塊,將此些邏輯區塊映射至上述實體區塊,並且配置一邏輯區塊-實體區塊映射表以記錄此些邏輯區塊與此些實體區塊之間的映射關係。此外,記憶體管理單元透過主機介面單元從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關於多個已刪除邏輯位址的資訊,並且儲存於此些已刪除邏輯位址中的資料已於主機系統中被刪除。另外,記憶體管理單元依據此刪除記錄獲取一已刪除邏輯區塊並且將映射至此已刪除邏輯區塊的每一該些邏輯位址標示為一壞邏輯位址,其中儲存於對應此已刪除邏輯區塊的邏輯位址中的資料已於主機系統中被刪除,並且主機系統無法存取已標記之壞邏輯位址。
在本發明之一實施例中,上述之記憶體管理單元將上述實體區塊邏輯地至少分組為一資料區與一備用區,其中每一邏輯區塊映射資料區的實體區塊的其中之一。並且,記憶體管理單元將上述已刪除邏輯區塊所映射的實體區塊分組為此備用區。
在本發明之一實施例中,上述之記憶體管理單元更新上述邏輯區塊-實體區塊映射表,其中在此邏輯區塊-實體區塊映射表中上述已刪除邏輯區塊無映射任何實體區塊。
在本發明之一實施例中,上述之記憶體管理單元更依據上述刪除記錄將上述邏輯位址重新映射至上述邏輯區塊並且依據重新映射的結果更新記錄在上述邏輯區塊-實體區塊映射表中的映射關係,其中至少一部份已刪除邏輯位址會被重新映射至此些邏輯區塊的其中之一,並且儲存於重新映射此至少一部份已刪除邏輯位址的邏輯區塊中的資料已被主機系統刪除。
在本發明之一實施例中,上述之主機介面單元從主機系統接收至少一整理(trim)指令,並且上述之記憶體管理單元識別此整理指令以獲取上述刪除記錄。
本範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體區塊。連接器用以耦接一主機系統。快閃記憶體控制器耦接至此快閃記憶體晶片與連接器,並且用以配置多個邏輯位址。在此,快閃記憶體控制器將此些邏輯位址映射至多個邏輯區塊,將此些邏輯區塊映射至上述實體區塊,並且配置一邏輯區塊-實體區塊映射表以記錄此些邏輯區塊與此些實體區塊之間的一映射關係。此外,快閃記憶體控制器透過連接器從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關於多個已刪除邏輯位址的資訊,並且儲存於此些已刪除邏輯位址中
的資料已於主機系統中被刪除。另外,快閃記憶體控制器依據此刪除記錄獲取一已刪除邏輯區塊並且將映射至此已刪除邏輯區塊的每一邏輯位址標示為一壞邏輯位址,其中儲存於對應此已刪除邏輯區塊的邏輯位址中的資料已於主機系統中被刪除,並且主機系統無法存取已標記之壞邏輯位址。
在本發明之一實施例中,上述之快閃記憶體控制器將上述實體區塊邏輯地至少分組為一資料區與一備用區,其中每一邏輯區塊映射此資料區的實體區塊的其中之一。並且,快閃記憶體控制器將上述已刪除邏輯區塊所映射的實體區塊分組為此備用區。
在本發明之一實施例中,上述之快閃記憶體控制器更新上述邏輯區塊-實體區塊映射表,其中在此邏輯區塊-實體區塊映射表中上述已刪除邏輯區塊無映射任何實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器更依據上述刪除記錄將上述邏輯位址重新映射至上述邏輯區塊並且依據重新映射的結果更新記錄在上述邏輯區塊-實體區塊映射表中的映射關係,其中至少一部份已刪除邏輯位址會被重新映射至此些邏輯區塊的其中之一,並且儲存於重新映射此至少一部份已刪除邏輯位址的邏輯區塊中的資料已被主機系統刪除。
在本發明之一實施例中,上述之連接器從主機系統接收至少一整理(trim)指令,並且上述快閃記憶體控制器識別此整理指令以獲取上述刪除記錄。
本範例實施例提出一種區塊管理方法,用於管理快閃記憶體晶片的多個實體區塊。本區塊管理方法包括配置多個邏輯位址,以及將實體區塊邏輯地至少分組為一資料區與一備用區,其中該備用區中的實體區塊是用以於執行主機寫入指令時替
換該資料區中的實體區塊,且每一邏輯位址映射至資料區的實體區塊的其中之一。本區塊管理方法也包括將映射至資料區之至少一邏輯位址標示為至少一壞邏輯位址,並將此壞邏輯位址所映射至的實體區塊關聯為備用區。
在本發明之一實施例中,上述之區塊管理方法更包括從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關於上述邏輯位址之中至少一個已刪除邏輯位址的資訊,並且儲存於已刪除邏輯位址中的資料已於主機系統中被刪除。
在本發明之一實施例中,上述之被標示為壞邏輯位址的邏輯位址是上述刪除記錄所提供的邏輯位址。
基於上述,本發明範例實施例能夠有效地延長快閃記憶體的使用壽命。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
快閃記憶體儲存裝置一般而言包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
圖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的處理,主機系統1000可將資料寫入至快閃記憶體儲存裝置100或從快閃記憶體儲存裝置100中讀取資料。例如,快閃記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,快閃記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、CF卡1316或記憶棒(memorystick)1318(如圖1C所示),或者亦可為配置於數位相機1310內之嵌入式MMC(Embeded MMC,eMMC)1320。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的概要方塊圖。
請參照圖1D,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102是耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102為序列先進附件(Serial Advanced Technology Attachment,SATA)連接器。然而,必須瞭解的是本發明不限於此,連接器110亦可以是平行先進附件(Parallel Advanced Technology Attachment,PATA)、通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、安全數位(secure digital,SD)介面連接器、記憶棒(Memory Sick,MS)介面連接器、多媒體儲存卡(Multi Media Card,MMC)介面連接器、小型快閃(Compact Flash,CF)介面連接器、整合式驅動電子介面(Integrated Device Electronics,IDE)連接器或其他適合的連接器。
快閃記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在快閃記憶體晶片106中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器104包括微處理器單元202、記憶體管理單元204、主機介面單元206與快閃記憶體介面單元208。
微處理器單元202為快閃記憶體控制器104的主控單元,用以與記憶體管理單元204、主機介面單元206與快閃記憶體介面單元208等協同合作以進行快閃記憶體儲存裝置100的各種運作。
記憶體管理單元204是耦接至微處理器單元202,用以執行根據本範例實施例的資料讀取機制與區塊管理機制,記憶體管理單元204的運作將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理單元204是以一韌體型式實作在快閃記憶體控制器104中。例如,將包括多個控制指令的記憶體管理單元204燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器104中,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行以完成根據本發明實施例的資料讀取機制與區塊管理機制。
在本發明另一範例實施例中,記憶體管理單元204的控制指令亦可以程式碼型式儲存於快閃記憶體晶片106的特定區域(例如,快閃記憶體晶片中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行。此外,在本發明另一範例實施例中,記憶體管理單元204亦可以一硬體型式實作在快閃記憶體控制器104中。
主機介面單元206是耦接至微處理器單元202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面單元206來傳送至微處理器單元202。在本範例實施例中,主機介面單元206可支援NCQ協定且對應連接器204為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面單元210亦可以是PATA介面、USB介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、MMC介面、CF介面、IDE介面或其他適合的資料傳輸介面。
快閃記憶體介面單元208是耦接至微處理器單元202並且用以存取快閃記憶體晶片106。也就是說,欲寫入至快閃記憶
體晶片106的資料會經由快閃記憶體介面單元208轉換為快閃記憶體晶片106所能接受的格式。
在本發明另一範例實施例中,快閃記憶體控制器亦可更包括其他功能模組。圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
請參照圖2,除了微處理器單元202、記憶體管理單元204、主機介面單元206與快閃記憶體介面單元208之外,快閃記憶體控制器104'更包括錯誤校正單元292、電源管理單元294與緩衝記憶體296。
錯誤校正單元292是耦接至微處理器單元202並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理單元204從主機系統1000中接收到主機寫入指令時,錯誤校正單元292會為對應此主機寫入指令的寫入資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理單元204會將此寫入資料與對應的錯誤校正碼寫入至快閃記憶體晶片106中。而,當記憶體管理單元204從主機系統1000中接收到主機讀取指令時,記憶體管理單元204會從快閃記憶體晶片106中讀取對應此主機讀取指令的資料及其錯誤校正碼,並且錯誤校正單元292會依據此錯誤校正碼對所讀取的資料執行錯誤校正。
電源管理單元294是耦接至微處理器單元202並且用以控制快閃記憶體儲存裝置100的電源。
緩衝記憶體296是耦接至微處理器單元202並且用以暫存來自於主機系統1000的資料與指令或來自於快閃記憶體晶片106的資料。
快閃記憶體晶片106是耦接至快閃記憶體控制器104並且
用以儲存資料。快閃記憶體晶片106具有實體區塊122-(0)~122-(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有數個實體頁面(page)。在本範例實施例中,實體頁面為程式化的最小單元。換言之,實體頁面為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,快閃記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,快閃記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
請參照圖3A,快閃記憶體晶片106的記憶胞僅能從“1”程式化為“0”,因此要更新實體區塊內的資料時必須先抹除實體區塊內的資料。然而,快閃記憶體的寫入是以頁面為單位,而抹除是以實體區塊為單位,所以在本範例實施例中,實體區塊會以輪替方式來儲存資料。
具體來說,記憶體管理單元204會將實體區塊122-(0)~122-(N)邏輯地分組為系統區(system area)302、資料區(data area)304、備用區(spare area)306與取代區(replacement area)308,其中分組為系統區302的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而分組為取代區308的實體區塊是用以取代資料區304或備用區306中的壞實體區塊,因此在一般存取狀態下,主機系統1000是無法存取系統區302
與取代區308中的實體區塊。至於分組為資料區304的實體區塊會儲存由主機寫入指令所寫入的資料,而備用區306中的實體區塊是用以在執行主機寫入指令時替換資料區304中的實體區塊。例如,當快閃記憶體儲存裝置100接受到主機系統1000的主機寫入指令而欲更新(或寫入)資料至資料區中某一實體區塊的某一頁面時,記憶體管理單元204會從備用區306中提取一實體區塊並且將欲被更新的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區306中提取之實體區塊的頁面中,並且將已寫入有效舊資料與新資料的實體區塊邏輯地關聯為資料區304,並且將資料區304中欲被更新的實體區塊進行抹除並邏輯地關聯為備用區306。
為了能夠讓主機系統1000能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置100會配置多個邏輯位址及其映射的邏輯區塊以供主機系統1000存取,並且記錄邏輯區塊與實體區塊之間的映射關係。也就是說,在此描述快閃記憶體實體區塊的運作時,以“提取”、“交換”、“替換”、“輪替”、“分組”、“關聯”等詞來操作快閃記憶體模組的實體區塊是邏輯上的概念,快閃記憶體之實體區塊的實際位置並未更動,而是透過更新邏輯區塊與實體區塊之間的映射關係來反映對實體區塊的操作。
圖3B是根據本發明第一範例實施例所繪示之記錄邏輯區塊與實體區塊之間的映射關係的運作示意圖。
請參照圖3B,快閃記憶體控制器104會配置多個邏輯位址360-(0)~360-(K),並且提供第一轉換層240與第二轉換層250來將邏輯位址360-(0)~360-(K)映射至邏輯區塊350-(0)~350-(H),並將邏輯區塊350-(0)~350-(H)映射至快閃記憶體晶
片106的實體區塊122-(0)~122-(N),其中此些邏輯位址是對應主機系統1000的存取單位(例如,扇區)。
第一轉換層240配置有運算單元242,其用以將邏輯位址360-(0)~360-(K)映射至邏輯區塊350-(0)~350-(H)。例如,運算單元242為一餘數運算器,並且記憶體管理單元204將邏輯位址的編號進行一餘數運算,由此依據所計算的餘數來將邏輯位址映射至邏輯區塊,其中每一邏輯位址是映射邏輯區塊350-(0)~350-(H)的其中之一。第二轉換層250具有邏輯區塊-實體區塊映射表(logical block-physical block mapping table)260,其用以記錄邏輯區塊所映射的實體區塊。
具體來說,每一邏輯區塊350-(0)~350-(H)會包括多個邏輯頁面,且每一邏輯頁面是由數個邏輯位址所組成,因此當主機系統1000在邏輯位址360-(0)~360-(K)中存取資料時,快閃記憶體控制器104就可依據所存取之邏輯位址所屬的邏輯區塊來在實體區塊中實際地讀取或寫入資料。例如,假設邏輯位址360-(0)是映射邏輯區塊350-(0)並且邏輯區塊350-(0)是映射實體區塊122-(0)的例子中,當主機系統1000在邏輯位址360-(0)中存取資料時,記憶體管理單元104會經由第一轉換層240計算出所存取的邏輯位址360-(0)所映射的邏輯區塊350-(0),並且第二轉換層250的依據邏輯區塊-實體區塊映射表260來在所映射的實體區塊122-(0)中實際地存取資料。
此外,值得一提的是,邏輯區塊-實體區塊映射表會被儲存於快閃記憶體晶片106中(例如,系統區302中),並且在快閃記憶體儲存裝置100運作期間,邏輯區塊-實體區塊映射表會被載入至緩衝記憶體210中以使得記憶體管理單元204能夠讀取與更新邏輯區塊-實體區塊映射表。然而,在緩衝記憶體
210之儲存空間較小的例子中,緩衝記憶體210可能無法暫存記錄所有邏輯區塊之映射關係的邏輯區塊-實體區塊映射表。因此,在本發明另一範例實施例中,記憶體管理單元204會將邏輯區塊350-(0)~350-(H)分組為多個邏輯區域(logical zone),並且為每一邏輯區域獨立地配置一邏輯區塊-實體區塊映射表。也就是說,每一邏輯區塊會屬於其中一個邏輯區域,並且記憶體管理單元204將邏輯區塊的映射關係分別地記錄在其所屬之邏輯區域的邏輯區塊-實體區塊映射表中。基此,當主機系統1000欲存取某一邏輯區塊時,記憶體管理單元204會依據欲存取之邏輯區塊所屬的邏輯區域來從快閃記憶體晶片106中載入對應的邏輯區塊-實體區塊映射表至緩衝記憶體210,並且依據對應的邏輯區塊-實體區塊映射表來進行資料的存取。之後,當需存取另一邏輯區域的邏輯區塊時,記憶體管理單元204會將目前使用之邏輯區塊-實體區塊映射表回存至快閃記憶體晶片106中並載入對應的另一邏輯區塊-實體區塊映射表至緩衝記憶體210。基此,可避免緩衝記憶體210無法儲存所有邏輯區塊之映射關係的問題。
如上所述,當快閃記憶體控制器104執行來自於主機系統1000的主機寫入指令時,記憶體管理單元204是以輪替方式來使用資料區304與備用區306的實體區塊。特別是,在本範例實施例中,當備用區306中的實體區塊都已成為壞實體區塊或無法正常使用(例如,所儲存之資料具有ECC錯誤或曾發生程式化錯誤(program fail)),並且取代區308中亦無可正常使用的實體區塊時,或者當快閃記憶體晶片106中的壞實體區塊的數目已達一門檻值(例如,此門檻值為原本屬於備用區306的實體區塊之數目的80%)時,記憶體管理單元204會執行區塊
整理機制,以整理出主機系統1000“未使用”或“仍可正常使用”的邏輯區塊所映射之實體區塊來作為備用區306的實體區塊。
例如,在主機系統1000之作業系統的檔案管理機制中作業系統是透過檔案配置表來管理儲存於儲存裝置中的資料,其中,在作業系統執行資料的刪除運作的例子中,作業系統僅會於檔案配置表中註記欲刪除之邏輯位址中的資料已為無效,即完成刪除資料的運作,而不會實際地將所儲存的資料進行刪除。之後,當作業系統欲在此些邏輯位址中寫入資料時,作業系統會將資料直接寫入。值得一提的是,在主機系統1000的作業系統執行刪除運作時,主機系統1000之作業系統會傳送刪除記錄,以告知快閃記憶體控制器104哪些邏輯位址中的資料已被刪除(即,對於主機系統1000來說,哪些邏輯位址為已刪除邏輯位址),基此,記憶體管理單元204會依據此刪除記錄來整理邏輯區塊。例如,在本範例實施例中,主機系統1000之作業系統為微軟視窗作業系統7,並且微軟視窗作業系統7是透過整理(trim)指令來傳送刪除記錄,而主機介面單元206與記憶體管理單元204可支援與識別此整理指令。值得一提的是,本發明不限於此,任何可傳送刪除記錄的指令都可應用於本發明。
特別是,在本範例實施例中,當備用區306中的實體區塊都成為壞實體區塊或無法正常使用,並且取代區308中亦無正常的實體區塊時,記憶體管理單元204會依據所接收之整理指令內的刪除記錄來整理出哪個邏輯區塊內的邏輯位址中的資料都已被主機系統1000刪除,並且將至少部份此邏輯區塊標記為壞邏輯區塊,以禁止主機系統1000再使用。例如,記憶
體管理單元204可直接修改上述檔案配置表中的資訊,以將此邏輯區塊標示為壞邏輯區塊,或者,記憶體管理單元204亦可於主機系統1000欲寫入資料至此邏輯區塊時告知主機系統1000的作業系統此邏輯區塊為壞邏輯區塊,並由主機系統1000的作業系統來修改檔案配置表。此外,記憶體管理單元204會更新邏輯區塊-實體區塊映射表260,將此壞邏輯區塊所映射之實體區塊邏輯地關聯為備用區306,並且此壞邏輯區塊將不再映射任何實體區塊。
圖4A與圖4B是根據本發明第一範例實施例所繪示的更改壞邏輯區塊之映射關係的區塊整理範例。
請參照圖4A,在範例中,邏輯區塊350-(0)是映射實體區塊實體區塊122-(S+1),邏輯區塊350-(1)是映射實體區塊實體區塊122-(S+2),且邏輯區塊350-(H)是映射實體區塊實體區塊122-(D)。儘管在圖4A中未繪示其他邏輯區塊的映射關係,但必須瞭解的是,其他邏輯區塊亦是類似地映射實體區塊。在此,假設主機系統1000已刪除儲存於邏輯區塊350-(0)之所有邏輯位址的資料,即僅於檔案配置表中註記邏輯區塊350-(0)中的資料已為無效,而未實際地將所儲存於實體區塊122-(S+1)的資料刪除。
此時,倘若實體區塊122-(D+1)已成為壞實體區塊而無法再儲存資料,且在取代區308中已無正常的實體區塊可用於取代實體區塊122-(D+1)時,如圖4B所示,記憶體管理單元204會依據所接收的刪除記錄將邏輯區塊350-(0)識別為已刪除邏輯區塊並且將其標示壞邏輯區塊。此外,記憶體管理單元204會在邏輯區塊-實體區塊映射表260中將此已刪除邏輯區塊(即,邏輯區塊350-(0))所映射的實體區塊(即,實體區塊
122-(S+1))中的資料刪除並關聯為備用區。也就是說,實體區塊122-(S+1)會被用作為備用區306的實體區塊,以在記憶體管理單元204執行主機系統指令時用於輪替資料區304的實體區塊。因此,備用區306之實體區塊的數目仍會被維持,且記憶體管理單元204能夠完成以上述輪替方式所進行之資料寫入運作,由此,可有效地延長快閃記憶體儲存裝置100的壽命。
圖5是根據本發明第一範例實施例所繪示的區塊管理方法的流程圖。
請參照圖5,當發生實體區塊損壞時,首先,在步驟S501中快閃記憶體控制器104的記憶體管理單元204會判斷取代區308中是否存有正常的實體區塊。倘若取代區308中存有正常的實體區塊時,則在步驟S503中記憶體管理單元204會以取代區308中正常的實體區塊來取代已損壞的實體區塊並更新邏輯區塊-實體區塊映射表260。在步驟S503之後,圖5的流程會被結束。值得一提的是,在本範例實施例中是以取代區308中是否存有正常的實體區塊來決定是否來取代損壞的實體區塊,然而,本發明不限於此,在本發明另一範例實施例中,亦可以判斷取代區308中的正常實體區塊的數目是否低於一門檻值來替換步驟S501,其中當取代區308中的正常的實體區塊的數目不低於一門檻值當則執行步驟S503,反之則執行下述步驟S505。
倘若在步驟S501中判斷取代區308中無存有正常的實體區塊時,則在步驟S505中記憶體管理單元204會依據來自於主機系統1000的刪除記錄判斷是否邏輯區塊之中存有已被刪除邏輯區塊(例如,圖4B中的邏輯區塊350-(0))。
倘若邏輯區塊之中存有已被刪除邏輯區塊時,則在步驟
S507中將已被刪除邏輯區塊標記為壞邏輯區塊,並且在步驟S509中將已被刪除邏輯區塊所映射的實體區塊邏輯地關聯為備用區306,並且更新邏輯區塊-實體區塊映射表260,其中此已被刪除邏輯區塊將不再映射任何實體區塊。在步驟S509之後,圖5的流程會被結束。
倘若倘若邏輯區塊之中無存有已被刪除邏輯區塊時,則在步驟S511中記憶體管理單元204會向主機系統1000宣告快閃記憶體儲存裝置100為寫入保護(write protect)狀態,並且圖5的流程會被結束。
本發明第二範例實施例的快閃記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的的快閃記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體管理單元會將邏輯位址重新映射至邏輯區塊,以將多個已刪除邏輯位址集中至同一邏輯區塊中。以下將使用第一範例實施例的圖1A、圖1D與圖3A來描述第二範例實施例。
在第一範例實施例中,當備用區306中的實體區塊都已成為壞實體區塊或無法正常使用,並且取代區308中亦無正常的實體區塊時,快閃記憶體控制器104的記憶體管理單元204會依據刪除記錄尋找已刪除邏輯區塊。也就是說,記憶體管理單元204會判斷哪一個邏輯區塊所映射的所有邏輯位址所儲存之資料都已被主機系統1000刪除。然而,在一些例子中,雖然記憶體管理單元204無法找到任何已刪除邏輯區塊,但已刪除邏輯位址的大小是相同或超過一個邏輯區塊的大小。也就是說,在此例子中,已刪除邏輯位址是分散地映射於多個邏輯區塊,因此記憶體管理單元204無法找到任何已刪除邏輯區塊。
在本範例實施例中,快閃記憶體控制器104會重新映射邏輯位址與邏輯區塊的映射關係,以將已刪除邏輯位址重新映射為同一個邏輯區塊。由此,記憶體管理單元204就能夠執行如第一範例實施例的區塊整理機制,以將主機系統1000實際上未使用的邏輯區塊所映射之實體區塊來作為備用區306的實體區塊。
圖6是根據本發明第二範例實施例所繪示之記錄邏輯區塊與實體區塊之間的映射關係的運作示意圖。
圖6所示的映射運作本質上是相同於圖3B的映射運作,以下僅描述圖6與圖3B的差異處。在圖6中第一轉換層240包括邏輯位址-邏輯區塊映射表602,並且邏輯位址-邏輯區塊映射表602是用以取代第一範例實施例的運算單元242來記錄邏輯位址與邏輯區塊的映射關係。詳細來說,由於在本範例實施例中邏輯位址與邏輯區塊的映射關係會被重新映射,因此重新映射後之邏輯位址與邏輯區塊的映射關係可能無法簡單以運算器來計算。因此,在本發明範例實施例中,第一轉換層240包括邏輯位址-邏輯區塊映射表602,並且記憶體管理單元204會更新邏輯位址-邏輯區塊映射表602來記錄重新映射的結果。
圖7A與圖7B是根據本發明第二範例實施例所繪示的重新映射邏輯位址與更改壞邏輯區塊之映射關係的區塊整理範例。
請參照圖7A,在範例中,邏輯位址360-(0)~360-(2)是映射邏輯區塊350-(0),邏輯位址360-(3)~360-(5)是映射邏輯區塊350-(1),且邏輯位址360-(K-2)~360-(K)是映射邏輯區塊350-(0)。儘管圖7A中未繪示其他邏輯位址的映射關係,但必
須瞭解的是,其他邏輯位址亦是類似地映射邏輯區塊。另外,邏輯區塊350-(0)是映射實體區塊實體區塊122-(S+1),邏輯區塊350-(1)是映射實體區塊實體區塊122-(S+2),且邏輯區塊350-(H)是映射實體區塊實體區塊122-(D)。同樣的,儘管在圖7B中未繪示其他邏輯區塊的映射關係,但必須瞭解的是,其他邏輯區塊亦是類似地映射實體區塊。此外,在本範例中,是以3個邏輯位址是映射1個邏輯區塊來作說明,然而,本發明不限於此,1個邏輯區塊所映射之邏輯位址的數目可以是任意數目。
在此範例中,假設主機系統1000已刪除儲存於邏輯位址360-(0)、邏輯位址360-(1)與邏輯位址360-(4)的資料。
此時,倘若實體區塊122-(D+1)已成為壞實體區塊而無法再儲存資料,且取代區308無可用之實體區塊可取代實體區塊122-(D+1)時,如圖7B所示,記憶體管理單元204會依據所接收的刪除記錄識別出邏輯位址360-(0)、邏輯位址360-(1)與邏輯位址360-(4)為已刪除邏輯位址。特別是,記憶體管理單元204會判斷邏輯位址360-(0)、邏輯位址360-(1)與邏輯位址360-(4)的大小是相同於1個邏輯區塊,並且執行重新映射。例如,記憶體管理單元204會邏輯位址360-(0)、邏輯位址360-(1)與邏輯位址360-(4)重新映射至邏輯區塊350-(0),並且將邏輯位址360-(2)、邏輯位址360-(3)與邏輯位址360-(5)重新映射至邏輯區塊350-(1)。基此,邏輯區塊350-(0)內的所有邏輯位址皆為已刪除邏輯位址,所以記憶體管理單元204會將邏輯位址360-(0)、邏輯位址360-(1)與邏輯位址360-(4)標示壞邏輯位址。同時,記憶體管理單元204會將邏輯區塊350-(0)識別為已刪除邏輯區塊,並且將其標示壞邏輯區塊。
此外,類似第一範例實施例,記憶體管理單元204會在邏輯區塊-實體區塊映射表260中將此已刪除邏輯區塊(即,邏輯區塊350-(0))所映射的實體區塊(即,實體區塊122-(S+1))關聯為備用區。也就是說,備用區306之實體區塊的數目仍會被維持,且記憶體管理單元204能夠完成以上述輪替方式所進行之資料寫入運作,由此,可有效地延長快閃記憶體儲存裝置100的壽命。
圖8是根據本發明第二範例實施例所繪示的區塊管理方法的流程圖。
請參照圖8,當發生實體區塊損壞時,首先,在步驟S801中快閃記憶體控制器104的記憶體管理單元204會判斷取代區308中是否存有正常的實體區塊。倘若取代區308中存有正常的實體區塊時,則在步驟S803中記憶體管理單元204會以取代區308中正常的實體區塊來取代已損壞的實體區塊並更新邏輯區塊-實體區塊映射表260。在步驟S803之後,圖8的流程會被結束。
倘若在步驟S801中判斷取代區308中無存有正常的實體區塊時,則在步驟S805中記憶體管理單元204會依據來自於主機系統1000的刪除記錄判斷是否邏輯區塊之中存有已被刪除邏輯區塊。
倘若邏輯區塊之中存有已被刪除邏輯區塊時,則在步驟S807中將已被刪除邏輯區塊標記為壞邏輯區塊,並且在步驟S809中將已被刪除邏輯區塊所映射的實體區塊邏輯地關聯為備用區306,並且更新邏輯區塊-實體區塊映射表260,其中已被刪除邏輯區塊將不再映射任何實體區塊。在步驟S809之後,圖8的流程會被結束。
倘若在步驟S805中判斷邏輯區塊之中無存有已被刪除邏輯區塊時,則在步驟S811中記憶體管理單元204會依據來自於主機系統1000的刪除記錄判斷已刪除邏輯位址的大小是否等於或超過1個邏輯區塊的大小。
倘若已刪除邏輯位址的大小等於或超過1個邏輯區塊的大小時,則在步驟S813中記憶體管理單元204會將足以構成1個已刪除邏輯區塊的已刪除邏輯位址重新映射至同一個邏輯區塊(如圖7B的邏輯區塊350-(0)),並且執行步驟S805。
倘若在步驟S811中判斷已刪除邏輯位址的大小非等於或超過1個邏輯區塊的大小(即,已刪除邏輯位址不足以構成1個已刪除邏輯區塊)時,則在步驟S815中記憶體管理單元204會向主機系統1000宣告快閃記憶體儲存裝置100為寫入保護狀態,並且圖8的流程會被結束。
綜上所述,當發生備用區的實體區塊的數目不足以完成資料寫入運作時,上述範例實施例的區塊管理方法會依據主機系統所傳送的刪除記錄搜尋那個邏輯區塊中的所有資料已被主機系統刪除,並且將所搜尋到之邏輯區塊所映射的實體區塊作為備用區的實體區塊,由此,有效地延長快閃記憶體儲存裝置的壽命。此外,在無存有已被主機系統刪除所有資料的邏輯區塊時,上述範例實施例的區塊管理方法會重新映射邏輯位址與邏輯區塊的映射關係,由此整理出所有資料都已被主機系統刪除的邏輯區塊,並且將此邏輯區塊所映射的實體區塊作為備用區的實體區塊,由此,有效地延長快閃記憶體儲存裝置的壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範
圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧CF卡
1318‧‧‧記憶棒
1320‧‧‧嵌入式MMC
100‧‧‧快閃記憶體儲存裝置
102‧‧‧連接器
104‧‧‧快閃記憶體控制器
106‧‧‧快閃記憶體晶片
122-(0)~122(N)‧‧‧實體區塊
202‧‧‧微處理器單元
204‧‧‧記憶體管理單元
206‧‧‧主機介面單元
208‧‧‧快閃記憶體介面單元
240‧‧‧第一轉換層
242‧‧‧運算單元
250‧‧‧第二轉換層
260‧‧‧邏輯區塊-實體區塊映射表
292‧‧‧錯誤校正單元
294‧‧‧電源管理單元
296‧‧‧緩衝記憶體
350-(0)~350-(H)‧‧‧邏輯區塊
360-(0)~360-(K)‧‧‧邏輯位址
602‧‧‧邏輯位址-邏輯區塊映射表
S501、S503、S505、S507、S509、S511‧‧‧區塊管理步驟
S801、S803、S805、S807、S809、S811、S813、S815‧‧‧區塊管理步驟
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示快閃記憶體儲存裝置的概要方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
圖3B是根據本發明第一範例實施例所繪示之記錄邏輯區塊與實體區塊之間的映射關係的運作示意圖。
圖4A與圖4B是根據本發明第一範例實施例所繪示的更改壞邏輯區塊之映射關係的區塊整理範例。
圖5是根據本發明第一範例實施例所繪示的區塊管理方法的流程圖。
圖6是根據本發明第二範例實施例所繪示之記錄邏輯區塊與實體區塊之間的映射關係的運作示意圖。
圖7A與圖7B是根據本發明第二範例實施例所繪示的重新映射邏輯位址與更改壞邏輯區塊之映射關係的區塊整理範例。
圖8是根據本發明第二範例實施例所繪示的區塊管理方法的流程圖。
S501、S503、S505、S507、S509、S511‧‧‧區塊管理步驟
Claims (24)
- 一種區塊管理方法,用於管理一快閃記憶體晶片的多個實體區塊,該區塊管理方法包括:將該些實體區塊邏輯地至少分組為一資料區、一備用區與一取代區;配置多個邏輯位址;將該些邏輯位址映射至多個邏輯區塊,並且將每一該些邏輯區塊映射至該資料區的實體區塊的其中之一;配置一邏輯區塊-實體區塊映射表以記錄該些邏輯區塊與該些實體區塊之間的一映射關係;從一主機系統中獲取至少一刪除記錄,其中該至少一刪除記錄包括關於該些邏輯位址之中多個已刪除邏輯位址的資訊,並且儲存於該些已刪除邏輯位址中的資料已於該主機系統中被刪除;依據該至少一刪除記錄獲取該些邏輯區塊之中的一已刪除邏輯區塊,其中儲存於對應該已刪除邏輯區塊的該些邏輯位址中的資料已於該主機系統中被刪除;以及當該取代區的正常實體區塊的數目低於一門檻值時,將映射至該已刪除邏輯區塊的每一該些邏輯位址標示為一壞邏輯位址,其中該主機系統無法存取該壞邏輯位址。
- 如申請專利範圍第1項所述之區塊管理方法,更包括:將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第2項所述之區塊管理方法,更包括:更新該邏輯區塊-實體區塊映射表,其中在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第1項所述之區塊管理方法,更包括: 在依據該至少一刪除記錄獲取該些邏輯區塊之中的該已刪除邏輯區塊之前,依據該至少一刪除記錄將該些邏輯位址重新映射至該些邏輯區塊,其中該些已刪除邏輯位址之中的至少一部份已刪除邏輯位址會被重新映射至該已刪除邏輯區塊;以及依據該重新映射更新記錄在一邏輯位址-邏輯區塊映射表中的映射關係。
- 如申請專利範圍第4項所述之區塊管理方法,更包括:將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第5項所述之區塊管理方法,更包括:更新該邏輯區塊-實體區塊映射表,其中在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第1項所述之區塊管理方法,其中從該主機系統中獲取該至少一刪除記錄的步驟包括:從該主機系統接收至少一整理(trim)指令;以及識別該至少一整理指令以獲取該至少一刪除記錄。
- 一種快閃記憶體控制器,用於管理一快閃記憶體晶片的多個實體區塊,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該些快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以連接一主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯位址,其中該記憶體管理單元將該些實體區塊邏輯地至少分組 為一資料區、一備用區與一取代區,其中該記憶體管理單元將該些邏輯位址映射至多個邏輯區塊,將每一該些邏輯區塊映射至該資料區的實體區塊的其中之一,並且配置一邏輯區塊-實體區塊映射表以記錄該些邏輯區塊與該些實體區塊之間的一映射關係,其中該記憶體管理單元透過該主機介面單元從該主機系統中獲取至少一刪除記錄,其中該至少一刪除記錄包括關於該些邏輯位址之中多個已刪除邏輯位址的資訊,並且儲存於該些已刪除邏輯位址中的資料已於該主機系統中被刪除,其中當該取代區的正常實體區塊的數目低於一門檻值時,該記憶體管理單元依據該至少一刪除記錄獲取該些邏輯區塊之中的一已刪除邏輯區塊並且將映射至該已刪除邏輯區塊的每一該些邏輯位址標示為一壞邏輯位址,其中儲存於對應該已刪除邏輯區塊的該些邏輯位址中的資料已於該主機系統中被刪除,並且該主機系統無法存取該壞邏輯位址。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該記憶體管理單元將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該記憶體管理單元更新該邏輯區塊-實體區塊映射表,並且在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中在依據該至少一刪除記錄獲取該些邏輯區塊之中的該已刪除邏輯區塊之前,該記憶體管理單元更依據該至少一刪除記錄 將該些邏輯位址重新映射至該些邏輯區塊,並且依據該重新映射更新記錄在一邏輯位址-邏輯區塊映射表中的映射關係,其中該些已刪除邏輯位址之中的至少一部份已刪除邏輯位址會被重新映射至該已刪除邏輯區塊。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中該記憶體管理單元將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第12項所述之快閃記憶體控制器,其中該記憶體管理單元更新該邏輯區塊-實體區塊映射表,其中在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該主機介面單元從該主機系統接收至少一整理(trim)指令,並且該記憶體管理單元識別該至少一整理指令以獲取該至少一刪除記錄。
- 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體區塊;一連接器,用以耦接一主機系統;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以配置多個邏輯位址,其中該快閃記憶體控制器將該些實體區塊邏輯地至少分組為一資料區、一備用區與一取代區,其中該快閃記憶體控制器將該些邏輯位址映射至多個邏輯區塊,將每一該些邏輯區塊映射至該資料區的實體區塊的其中之一,並且配置一邏輯區塊-實體區塊映射表以記錄該些邏輯區塊與該些實體區塊之間的一映射關係, 其中該快閃記憶體控制器透過該連接器從該主機系統中獲取至少一刪除記錄,其中該至少一刪除記錄包括關於該些邏輯位址之中多個已刪除邏輯位址的資訊,並且儲存於該些已刪除邏輯位址中的資料已於該主機系統中被刪除,其中當該取代區的正常實體區塊的數目低於一門檻值時,該快閃記憶體控制器依據該至少一刪除記錄獲取該些邏輯區塊之中的一已刪除邏輯區塊並且將映射至該已刪除邏輯區塊的每一該些邏輯位址標示為一壞邏輯位址,其中儲存於對應該已刪除邏輯區塊的該些邏輯位址中的資料已於該主機系統中被刪除,並且該主機系統無法存取該壞邏輯位址。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第16項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更新該邏輯區塊-實體區塊映射表,其中在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中在依據該至少一刪除記錄獲取該些邏輯區塊之中的該已刪除邏輯區塊之前,該快閃記憶體控制器更依據該至少一刪除記錄將該些邏輯位址重新映射至該些邏輯區塊,並且依據該重新映射更新記錄在一邏輯位址-邏輯區塊映射表中的映射關係,其中該些已刪除邏輯位址之中的至少一部份已刪除邏輯 位址會被重新映射至該已刪除邏輯區塊。
- 如申請專利範圍第18項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該已刪除邏輯區塊所映射的實體區塊分組為該備用區。
- 如申請專利範圍第19項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更新該邏輯區塊-實體區塊映射表,並且在該邏輯區塊-實體區塊映射表中該已刪除邏輯區塊無映射任何實體區塊。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該連接器從該主機系統接收至少一整理(trim)指令,並且該快閃記憶體控制器識別該至少一整理指令以獲取該至少一刪除記錄。
- 一種區塊管理方法,用於管理一快閃記憶體晶片的多個實體區塊,該區塊管理方法包括:配置多個邏輯位址;將該些實體區塊邏輯地至少分組為一資料區與一備用區,其中該備用區中的實體區塊是用以於執行一主機寫入指令時替換該資料區中的實體區塊,且該些邏輯位址映射至該資料區的實體區塊;以及將映射至該資料區之其中一個實體區塊的多個邏輯位址標示為多個壞邏輯位址,並將該些壞邏輯位址所映射的該其中一個實體區塊關聯為該備用區。
- 如申請專利範圍第22項所述之區塊管理方法,更包括:從該主機系統中獲取至少一刪除記錄,其中該至少一刪除記錄包括關於該些邏輯位址之中至少一個已刪除邏輯位址的 資訊,並且儲存於該些已刪除邏輯位址中的資料已於該主機系統中被刪除。
- 如申請專利範圍第23項所述之區塊管理方法,其中被標示為該些壞邏輯位址的該些邏輯位址是該至少一刪除記錄中所提供的邏輯位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098133270A TWI426528B (zh) | 2009-09-30 | 2009-09-30 | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 |
US12/605,884 US8775771B2 (en) | 2009-09-30 | 2009-10-26 | Block management method for a flash memory and flash memory controller and storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098133270A TWI426528B (zh) | 2009-09-30 | 2009-09-30 | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201112263A TW201112263A (en) | 2011-04-01 |
TWI426528B true TWI426528B (zh) | 2014-02-11 |
Family
ID=43781565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098133270A TWI426528B (zh) | 2009-09-30 | 2009-09-30 | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8775771B2 (zh) |
TW (1) | TWI426528B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5612514B2 (ja) * | 2010-03-24 | 2014-10-22 | パナソニック株式会社 | 不揮発性メモリコントローラ及び不揮発性記憶装置 |
JP2012118739A (ja) * | 2010-11-30 | 2012-06-21 | Toshiba Corp | 記憶装置、及び制御方法 |
US9135037B1 (en) | 2011-01-13 | 2015-09-15 | Google Inc. | Virtual network protocol |
US8533796B1 (en) | 2011-03-16 | 2013-09-10 | Google Inc. | Providing application programs with access to secured resources |
US9237087B1 (en) | 2011-03-16 | 2016-01-12 | Google Inc. | Virtual machine name resolution |
US9063818B1 (en) | 2011-03-16 | 2015-06-23 | Google Inc. | Automated software updating based on prior activity |
US9727570B2 (en) * | 2011-06-03 | 2017-08-08 | Apple Inc. | Mount-time unmapping of unused logical addresses in non-volatile memory systems |
TWI562153B (en) * | 2011-06-15 | 2016-12-11 | Phison Electronics Corp | Memory erasing method, memory controller and memory storage apparatus |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
CN102902626B (zh) * | 2011-07-27 | 2016-02-03 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
US9075979B1 (en) | 2011-08-11 | 2015-07-07 | Google Inc. | Authentication based on proximity to mobile device |
US8966198B1 (en) | 2011-09-01 | 2015-02-24 | Google Inc. | Providing snapshots of virtual storage devices |
TWI559306B (zh) * | 2011-12-01 | 2016-11-21 | 技嘉科技股份有限公司 | 電腦系統及其記憶體指定方法 |
US8958293B1 (en) | 2011-12-06 | 2015-02-17 | Google Inc. | Transparent load-balancing for cloud computing services |
US8756458B2 (en) | 2011-12-12 | 2014-06-17 | Apple Inc. | Mount-time reconciliation of data availability |
CN103163949A (zh) * | 2011-12-13 | 2013-06-19 | 技嘉科技股份有限公司 | 计算机系统及其内存指定方法 |
US8800009B1 (en) | 2011-12-30 | 2014-08-05 | Google Inc. | Virtual machine service access |
US8996887B2 (en) | 2012-02-24 | 2015-03-31 | Google Inc. | Log structured volume encryption for virtual machines |
US9069806B2 (en) * | 2012-03-27 | 2015-06-30 | Google Inc. | Virtual block devices |
WO2013147800A1 (en) | 2012-03-29 | 2013-10-03 | Intel Corporation | Chunk redundancy architecture for memory |
CN103577342B (zh) * | 2012-07-25 | 2018-04-17 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
TWI519166B (zh) * | 2012-10-31 | 2016-01-21 | 晶睿通訊股份有限公司 | 影像錄製系統、裝置與錄影時的資料存取方法 |
US9857988B1 (en) * | 2016-07-10 | 2018-01-02 | Winbond Electronics Corporaiton | Data management in multiply-writeable flash memories |
US10146604B2 (en) * | 2016-08-23 | 2018-12-04 | Oracle International Corporation | Bad block detection and predictive analytics in NAND flash storage devices |
CN106776359B (zh) * | 2016-11-11 | 2020-03-17 | 上海航天测控通信研究所 | 一种NAND Flash坏块管理方法及系统 |
JP6789788B2 (ja) * | 2016-12-12 | 2020-11-25 | 株式会社メガチップス | メモリ装置、コントローラ、ホスト装置、データ処理システム、制御プログラム、メモリ装置の動作方法及びホスト装置の動作方法 |
KR20210142863A (ko) * | 2020-05-19 | 2021-11-26 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법 |
KR20220125836A (ko) * | 2021-03-03 | 2022-09-15 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치 |
TWI775341B (zh) * | 2021-03-05 | 2022-08-21 | 群聯電子股份有限公司 | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 |
US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
CN115878051B (zh) * | 2023-03-03 | 2023-06-09 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082726A1 (en) * | 2006-09-28 | 2008-04-03 | Reuven Elhamias | Memory Cards with End of Life Recovery and Resizing |
US20080195799A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon |
TW200842578A (en) * | 2006-12-26 | 2008-11-01 | Sandisk Corp | Configuration of host LBA interface with flash memory |
TW200844999A (en) * | 2006-10-12 | 2008-11-16 | Sandisk Corp | Non-volatile memory with worst-case control data management and methods therefor |
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
CN101339537A (zh) * | 2008-08-14 | 2009-01-07 | 四川登巅微电子有限公司 | 一种以页为单位的nand闪存管理方法 |
TW200935220A (en) * | 2007-12-21 | 2009-08-16 | Sandisk Corp | System and method for implementing extensions to intelligently manage resources of a mass storage system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW448437B (en) * | 1999-08-09 | 2001-08-01 | Ind Tech Res Inst | Dynamic defect management method for erasable compact disk |
CN101556555B (zh) | 2008-04-08 | 2011-09-14 | 群联电子股份有限公司 | 用于闪存的区块管理方法、其控制器与储存系统 |
-
2009
- 2009-09-30 TW TW098133270A patent/TWI426528B/zh active
- 2009-10-26 US US12/605,884 patent/US8775771B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082726A1 (en) * | 2006-09-28 | 2008-04-03 | Reuven Elhamias | Memory Cards with End of Life Recovery and Resizing |
TW200844999A (en) * | 2006-10-12 | 2008-11-16 | Sandisk Corp | Non-volatile memory with worst-case control data management and methods therefor |
TW200842578A (en) * | 2006-12-26 | 2008-11-01 | Sandisk Corp | Configuration of host LBA interface with flash memory |
US20080195799A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon |
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
TW200935220A (en) * | 2007-12-21 | 2009-08-16 | Sandisk Corp | System and method for implementing extensions to intelligently manage resources of a mass storage system |
CN101339537A (zh) * | 2008-08-14 | 2009-01-07 | 四川登巅微电子有限公司 | 一种以页为单位的nand闪存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110078363A1 (en) | 2011-03-31 |
US8775771B2 (en) | 2014-07-08 |
TW201112263A (en) | 2011-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI426528B (zh) | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
TWI423024B (zh) | 用於快閃記憶體的資料儲存方法及其控制器與儲存系統 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI447735B (zh) | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US10884652B2 (en) | Trim command recording method, memory control circuit unit and memory storage device | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
US20120096321A1 (en) | Block management method, memory controller, and memory storage apparatus | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TW201740385A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN102043724B (zh) | 用于闪存的区块管理方法、控制器与存储系统 | |
CN111858389A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 |