TWI408551B - 快閃記憶體儲存系統及其控制器與資料處理方法 - Google Patents

快閃記憶體儲存系統及其控制器與資料處理方法 Download PDF

Info

Publication number
TWI408551B
TWI408551B TW098136515A TW98136515A TWI408551B TW I408551 B TWI408551 B TW I408551B TW 098136515 A TW098136515 A TW 098136515A TW 98136515 A TW98136515 A TW 98136515A TW I408551 B TWI408551 B TW I408551B
Authority
TW
Taiwan
Prior art keywords
flash memory
file
logical
deleted
address
Prior art date
Application number
TW098136515A
Other languages
English (en)
Other versions
TW201115335A (en
Inventor
Chih Kang Yeh
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW098136515A priority Critical patent/TWI408551B/zh
Priority to US12/636,043 priority patent/US8230160B2/en
Publication of TW201115335A publication Critical patent/TW201115335A/zh
Application granted granted Critical
Publication of TWI408551B publication Critical patent/TWI408551B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

快閃記憶體儲存系統及其控制器與資料處理方法
本發明是有關於一種快閃記憶體儲存系統,且特別是有關於一種能夠識別快閃記憶體中已被主機系統刪除之資料的快閃記憶體儲存系統及其快閃記憶體控制器與資料處理方法。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟(Solid State Drive,SSD)就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。由於快閃記憶體體積小容量大,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
在快閃記憶體儲存裝置中快閃記憶體晶片具有多個實體區塊且每一實體區塊具有多個實體頁,其中實體區塊是快閃記憶體晶片的抹除單位並且實體頁是快閃記憶體晶片的寫入單位。由於在快閃記憶體晶片執行程式化(即,寫入程序)時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的實體頁(即,存有舊資料的頁面)直接進行寫入,而是必須先將此實體頁抹除後方可重新程式化。特別是,由於快閃記憶體晶片的抹除是以實體區塊為單位,所以當欲將存有舊資料的實體頁執行抹除運作時,必須對此實體頁所屬的整個實體區塊進行抹除。基於快閃記憶體以實體頁為寫入之單元而以實體區塊為抹除之單位的特性,實體區塊會由快閃記憶體儲存裝置的快閃記憶體控制器邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。系統區的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而取代區的實體區塊是用以取代資料區或備用區中已損壞的實體區塊(即,壞實體區塊),因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存裝置接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存裝置會從備用區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊中並且將已寫入新資料的實體區塊邏輯地關聯為資料區,並且將原本資料區的實體區塊進行抹除並邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置會提供邏輯位址給主機系統。也就是說,快閃記憶體儲存裝置會透過在邏輯位址-實體位址映射表(logical address-physical address mapping table)中記錄與更新邏輯位址與資料區的實體區塊之間的映射關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯位址進行寫入而快閃記憶體儲存裝置會依據邏輯位址-實體位址映射表對所映射的實體位址進行讀取或寫入資料。
一般來說,主機系統是使用檔案系統(file system)來管理連接至主機系統的儲存周邊設備(例如,上述快閃記憶體儲存裝置),其中當主機系統欲刪除先前儲存於儲存周邊設備中的資料時,主機系統僅會更新檔案系統的空間資訊,而不會指示儲存周邊設備將資料進行實際地刪除,因此儲存周邊設備的控制電路是無法得知哪些實體位址中的資料已被主機系統刪除。特別是,以上述快閃記憶體儲存裝置為例,由於快閃記憶體儲存裝置的快閃記憶體控制器無法確認實體位址中的資料是否已被主機系統所刪除,因此快閃記憶體控制器在以上述輪替方式管理快閃記憶體晶片的實體區塊時往往會花費許多時間來維護已被主機系統刪除的資料,而嚴重影響快閃記憶體儲存裝置的寫入速度與效能。
本發明提供一種快閃記憶體儲存系統,其能夠識別已被主機系統刪除的資料。
本發明提供一種快閃記憶體控制器,其能夠識別已被主機系統刪除的資料。
本發明提供一種資料處理方法,其能夠識別已被主機系統刪除的資料。
本發明範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體區塊並且每一實體區塊具有多個實體位址。連接器是用以耦接至一主機系統。快閃記憶體控制器是耦接至快閃記憶體晶片與連接器。快閃記憶體控制器配置多個邏輯位址並且將邏輯位址映射至部分實體位址,其中上述主機系統使用一檔案系統來存取此些邏輯位址,並且此檔案系統包括至少一檔案系統空間資訊。此外,快閃記憶體控制器識別邏輯位址之中的已刪除邏輯位址並且將此已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在檔案系統空間資訊中,儲存於此已刪除邏輯位址中的資料已被刪除。
在本發明之一實施例中,上述之快閃記憶體儲存系統更包括一檔案系統分析單元,其中此檔案系統分析單元是配置在主機系統中。在此,檔案系統分析單元掃描檔案系統空間資訊以識別上述邏輯位址之中的閒置邏輯位址,並且上述快閃記憶體控制器將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之檔案系統空間資訊至少包括一檔案配置表(File Allocation Table),其中此檔案配置表記錄對應每一邏輯位址的一鏈結值。此外,檔案系統分析單元依據對應每一邏輯位址的鏈結值來識別此些邏輯位址之中的閒置邏輯位址。
在本發明之一實施例中,上述之檔案系統分析單元是以一應用程式型式或一驅動程式型式配置在主機系統中。
在本發明之一實施例中,上述之快閃記憶體控制器掃描檔案系統空間資訊以識別上述邏輯位址之中的閒置邏輯位址並且將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之檔案系統空間資訊至少包括一檔案配置表,其中此檔案配置表記錄對應每一邏輯位址的一鏈結值;並且上述快閃記憶體控制器依據對應每一邏輯位址的鏈結值來識別此些邏輯位址之中的閒置邏輯位址。
在本發明之一實施例中,上述之快閃記憶體儲存系統更包括一檔案讀取單元,其中此檔案讀取單元配置在主機系統中。此外,檔案讀取單元依據上述檔案系統空間資訊來從此些邏輯位址中讀取未被刪除的所有資料,其中上述快閃記憶體控制器會根據檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取此未被刪除的所有資料。
在本發明之一實施例中,上述之快閃記憶體控制器記錄此些邏輯位址之中未被上述檔案讀取單元讀取之邏輯位址,並且將未被該檔案讀取單元讀取之邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之快閃記憶體控制器記錄在上述檔案讀取單元的讀取期間在上述實體位址之中未被讀取之實體位址,並且將此未被讀取之實體位址所映射之邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之檔案讀取單元是以一應用程式型式或一驅動程式型式配置在主機系統中。
本發明範例實施例提出一種快閃記憶體控制器,配置於一快閃記憶體儲存裝置中,用於管理此快閃記憶體儲存裝置的一快閃記憶體晶片,其中此快閃記憶體晶片具有多個實體區塊,每一實體區塊具有多個實體位址且快閃記憶體儲存裝置耦接至一主機系統。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元是耦接至微處理器單元,且用以耦接至快閃記憶體晶片。主機介面單元是耦接至微處理器單元,且用以耦接至主機系統。記憶體管理單元耦接至微處理器單元,並且用以配置多個邏輯位址及將此些邏輯位址映射至部分實體位址,其中主機系統使用一檔案系統來存取此些邏輯位址,並且此檔案系統包括至少一檔案系統空間資訊。此外,記憶體管理單元識別此些邏輯位址之中的已刪除邏輯位址並且將此已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在檔案系統的空間資訊中,儲存於此已刪除邏輯位址中的資料已被刪除。
在本發明之一實施例中,上述之主機系統包括一檔案系統分析單元,其中當此檔案系統分析單元掃描檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址並且將關於此閒置邏輯位址的資訊透過主機介面單元傳送給記憶體管理單元時,記憶體管理單元將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之記憶體管理單元掃描檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址並且將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之檔案系統空間資訊至少包括一檔案配置表,其中此檔案配置表記錄對應每一邏輯位址的一鏈結值;並且記憶體管理單元依據對應每一邏輯位址的鏈結值來識別邏輯位址之中的閒置邏輯位址。
在本發明之一實施例中,上述之主機系統包括一檔案讀取單元,其中當檔案讀取單元依據檔案系統空間資訊來從上述邏輯位址中讀取未被刪除的所有資料時,記憶體管理單元依據檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取此未被刪除的所有資料。
在本發明之一實施例中,上述之記憶體管理單元記錄此些邏輯位址之中未被上述檔案讀取單元讀取之邏輯位址,並且將未被上述檔案讀取單元讀取之邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之記憶體管理單元記錄在上述檔案讀取單元的讀取期間在上述實體位址之中未被讀取之實體位址,並且將未被讀取之實體位址所映射之邏輯位址識別為已刪除邏輯位址。
本發明範例實施例提出一種資料處理方法,用於管理一快閃記憶體晶片,其中此快閃記憶體晶片具有多個實體區塊且每一實體區塊具有多個實體位址。本資料處理方法包括提供一快閃記憶體控制器;配置多個邏輯位址;並且將此些邏輯位址映射至部分實體位址,其中一主機系統使用一檔案系統來存取此些邏輯位址,並且此檔案系統包括至少一檔案系統空間資訊。本資料處理方法也包括識別此些邏輯位址之中的已刪除邏輯位址以及由快閃記憶體控制器將此已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在檔案系統空間資訊中,儲存於此已刪除邏輯位址中的資料已被刪除。
在本發明之一實施例中,上述之識別此些邏輯位址之中的已刪除邏輯位址的步驟包括:在主機系統中配置一檔案系統分析單元;使用此檔案系統分析單元來掃描上述檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址;以及將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之使用此檔案系統分析單元來掃描檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址的步驟包括:讀取檔案系統空間資訊中的檔案配置表,其中檔案配置表記錄對應每一邏輯位址的一鏈結值;以及依據對應每一邏輯位址的鏈結值來識別此些邏輯位址之中的閒置邏輯位址。
在本發明之一實施例中,上述之識別此些邏輯位址之中的已刪除邏輯位址的步驟包括:由快閃記憶體控制器來掃描上述檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址;以及將此閒置邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之由快閃記憶體控制器來掃描檔案系統空間資訊以識別此些邏輯位址之中的閒置邏輯位址的步驟包括:由快閃記憶體控制器讀取檔案系統空間資訊中的檔案配置表,其中檔案配置表記錄對應每一邏輯位址的一鏈結值;以及依據對應每一邏輯位址的鏈結值來識別此些邏輯位址之中的閒置邏輯位址。
在本發明之一實施例中,上述之識別此些邏輯位址之中的已刪除邏輯位址的步驟包括:在主機系統中配置一檔案讀取單元;使用此檔案讀取單元依據檔案系統空間資訊來從此些邏輯位址中讀取未被刪除的所有資料,其中快閃記憶體控制器依據檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取此未被刪除的所有資料;以及由快閃記憶體控制器記錄在檔案讀取單元的讀取期間此些邏輯位址之中未被此檔案讀取單元讀取之邏輯位址,並且將未被此檔案讀取單元讀取之邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之識別此些邏輯位址之中的已刪除邏輯位址的步驟包括:在主機系統中配置一檔案讀取單元;使用此檔案讀取單元依據檔案系統空間資訊來從此些邏輯位址中讀取未被刪除的所有資料,其中快閃記憶體控制器依據檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取此未被刪除的所有資料;以及記錄在檔案讀取單元的讀取期間在上述實體位址之中未被快閃記憶體控制器讀取之實體位址,並且將未被快閃記憶體控制器讀取之實體位址所映射之邏輯位址識別為已刪除邏輯位址。
在本發明之一實施例中,上述之在主機系統中配置檔案系統分析單元的步驟包括:以一應用程式型式或一驅動程式型式將此檔案系統分析單元配置在主機系統中。
在本發明之一實施例中,上述之在主機系統中配置檔案讀取單元的步驟包括:以一應用程式型式或一驅動程式型式將此檔案讀取單元配置在主機系統中。
在本發明之一實施例中,上述之在主機系統中配置檔案讀取單元的步驟包括:以一應用程式型式或一驅動程式型式將此檔案讀取單元配置在主機系統中。
基於上述,本發明範例實施例之快閃記憶體儲存裝置能夠識別已被主機系統刪除的資料,由此快閃記憶體儲存裝置的寫入速度與效能可有效地被提升。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
快閃記憶體儲存裝置一般而言包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
[第一範例實施例]
圖1A是根據本發明第一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的方塊圖。
請參照圖1A,主機系統1000包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括中央處理單元1102、主記憶體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、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102是耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102為序列先進附件(Serial Advanced Technology Attachment,SATA)連接器。然而,必須瞭解的是本發明不限於此,連接器102亦可以是平行先進附件(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是對應連接器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'更包括緩衝記憶體252、電源管理單元254與錯誤校正單元256。
緩衝記憶體252是耦接至微處理器單元202並且用以暫存來自於主機系統1000的資料與指令或來自於快閃記憶體晶片106的資料。
電源管理單元254是耦接至微處理器單元202並且用以控制快閃記憶體儲存裝置100的電源。
錯誤校正單元256是耦接至微處理器單元202並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理單元204從主機系統1000中接收到主機寫入指令時,錯誤校正單元256會為對應此主機寫入指令的寫入資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理單元204會將此寫入資料與對應的錯誤校正碼寫入至快閃記憶體晶片106中。之後,當記憶體管理單元204從快閃記憶體晶片106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤校正單元256會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
請再參照圖1A,快閃記憶體晶片106是耦接至快閃記憶體控制器104並且用以儲存資料。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
請參照圖3A,快閃記憶體晶片106具有實體區塊122-(0)~122-(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有128個實體位址(即,實體頁面)。在本範例實施例中,實體位址為程式化的最小單元。換言之,實體位址為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。然而,必須瞭解的,本發明不限於每一實體區塊具有128個實體位址,在本發明另一範例實施例中,實體區塊的實體位址數亦可以是64、256或其他適當數目。在本範例實施例中,快閃記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片。然而,本發明不限於此,快閃記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片。
記憶體管理單元204會將實體區塊122-(0)~122-(N)邏輯地分組為系統區(system area)302、儲存區(storage area)304與取代區(replacement area)306。必須瞭解的是,在此描述快閃記憶體之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。
邏輯上屬於系統區302的實體區塊122-(0)~122-(S)是用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一實體區塊的實體位址數等。
邏輯上屬於儲存區304的實體區塊122-(S+1)~~122-(A)是用以儲存主機系統1000所寫入的資料。也就是說,快閃記憶體儲存裝置100會使用分組為儲存區304的實體區塊來實際地儲存主機系統1000所寫入的資料。更詳細來說,儲存區304的實體區塊122-(S+1)~122-(A)更分組為資料區304a與備用區304b,其中資料區304a的實體區塊122-(S+1)~122-(D)是已被寫滿資料的實體區塊,而備用區304b的實體區塊122-(D+1)~122-(A)是未被使用來儲存資料的實體區塊。具體來說,當記憶體管理單元204從備用區304b提取實體區塊並且將所提取的實體區塊寫滿資料時,所提取的實體區塊會被關聯至資料區304a,並且當關聯至資料區304a的實體區塊被執行抹除運作之後已抹除的實體區塊會被關聯至備用區304b。
邏輯上屬於取代區306中的實體區塊122-(A+1)~122-(N)是替代實體區塊。例如,快閃記憶體晶片106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當系統區302與儲存區304中的實體區塊損毀時,預留於取代區306中的實體區塊可用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區306中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理模組204會從取代區306中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區306中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告為寫入保護(write protect),而無法再寫入資料。
必須瞭解的是,在快閃記憶體儲存裝置100的運作中,實體區塊122-(0)~122-(N)被分組為系統區302、資料區304a、備用區304b與取代區306的映射關係會動態地變動。也就是說,當記憶體管理單元204將資料寫入至原本屬於備用區304b的實體區塊(例如,實體區塊122-(D+2))後,此實體區塊會被關聯至資料區304a。或者,當資料區304a(或備用區304b)中的實體區塊損壞時而被取代區306的實體區塊取代時,則原本取代區306的實體區塊會被關聯至資料區304a(或備用區304b)。
由於快閃記憶體儲存裝置100是以輪替地使用儲存區304的實體區塊來儲存主機系統1000欲寫入之資料,因此記憶體管理單元204會提供邏輯位址LBA(0)~LBA(L)給主機系統1000以進行資料存取,並且記憶體管理單元204會將此些邏輯位址映射至儲存區304的實體區塊的實體位址(如圖3B所示)。例如,記憶體管理單元204會維護邏輯位址轉實體位址映射表以及實體位址轉邏輯位址映射表來記錄邏輯位址與實體位址之間的映射關係。
在本範例實施例中,在快閃記憶體儲存裝置100第一次被耦接至主機系統1000並且被執行初始化時,主機系統1000會使用一檔案系統(file system)來格式化快閃記憶體儲存裝置100的邏輯位址LBA(0)~LBA(L),並且將作業系統(未繪示)安裝至快閃記憶體儲存裝置100的邏輯位址LBA(0)~LBA(L)中。此時,記憶體管理單元204會依據主機系統1000的寫入指令將檔案系統的空間資訊與作業系統寫入至所映射的實體位址中。之後,當主機系統1000重新被啟動時,作業系統會被載入至主記憶體1104中運轉以控制主機系統1000的運作,其中主機系統1000會依據所使用之檔案系統來存取快閃記憶體儲存裝置100。為了方便說明,以下將以檔案配置表(File Allocation Table,FAT)檔案系統為例進行說明,然而,必須瞭解的是,本發明不限於此,本發明亦可應用於NTFS檔案系統或其他檔案系統。
圖4為根據本發明第一範例實施例所繪示之以FAT檔案系統格式化快閃記憶體儲存裝置的範例。
請參照圖4,例如,當主機系統1000使用檔案系統400來格式化快閃記憶體儲存裝置100時,邏輯位址LBA(0)~LBA(L)會被依序地劃分為主啟動區402、FAT區404、目錄區406與檔案區408,其中主啟動區402、FAT區404與目錄區406是用以儲存FAT檔案系統的空間資訊。
主啟動區402的邏輯位址LBA(0)~LBA(M)是用以儲存快閃記憶體儲存裝置100的可儲存空間的系統資訊。
FAT區404的邏輯位址LBA(M+1)~LBA(F)是用以儲存檔案配置表。檔案配置表是用以記錄檔案邏輯位址的狀態。例如,FAT區404中會儲存兩個檔案配置表,其中一個檔案配置表為正常存取所使用,而另一個檔案配置表為備份檔案配置表。
目錄區406的邏輯位址LBA(F+1)~LBA(C)是用以儲存檔案列表,其用以記錄目前儲存於快閃記憶體儲存裝置100中之檔案的檔案描述資訊。
檔案區408的邏輯位址LBA(C+1)~LBA(L)是用以實際地儲存檔案的內容。
具體來說,在主機系統1000格式化快閃記憶體儲存裝置100的邏輯位址LBA(0)~LBA(L)之後,當主機系統1000是使用檔案系統400的空間資訊(包括在主啟動區402、FAT區404與目錄區406中的資訊來將欲儲存之檔案(或資料)儲存至檔案區408,而記憶體管理單元204會依據邏輯位址與實體位址的映射關係將主機系統1000在邏輯位址中所寫入的資料實際地寫入至所映射的實體位址中。
圖5A與5B為根據本發明第一範例實施例的一範例所繪示的部分檔案配置表與部分檔案列表。
請參照圖5A,在此範例中檔案配置表502的邏輯位址索引欄位502a與鏈結值欄位502b依序地記錄每一邏輯位址對應的鏈結值,其中在檔案配置表502的鏈結值會以特殊字元來表示每一邏輯位址的狀態。例如,以FAT32為例,“0×?0000000”表示此邏輯位址為閒置邏輯位址(即,未儲存資料),“0×?FFFFFF8”-“0×?FFFFFFF”表示此邏輯位址為儲存檔案之最後一個邏輯位址等。
請參照圖5B,檔案列表504的檔案名稱欄位504a與起始位址欄位504b是用以記錄在快閃記憶體裝置100中所儲存之檔案的檔案名稱及儲存此檔案的起始邏輯位址。必須瞭解的是,檔案列表504僅為一範例,實際上檔案列表504更包括檔案長度等其他屬性欄位來描述所儲存之檔案的資訊。
請同時參照圖5A與圖5B,從檔案列表504中的空間資訊可以得知,快閃記憶體儲存裝置100中儲存有“f1.exe”與“f2.com”兩個檔案,其中儲存“f1.exe”的起始邏輯位址為邏輯位址LBA(C+50)而儲存“f2.com”的起始邏輯位址為邏輯位址LBA(C+30)。此外,結合檔案配置表502與檔案列表504中的空間資訊更可得知“f1.exe”的內容是依序地被儲存在邏輯位址LBA(C+50)、邏輯位址LBA(C+54)與邏輯位址LBA(C+52)中。
圖6A與6B為根據本發明第一範例實施例的另一範例所繪示的部分檔案配置表與部分檔案列表。
請參照圖6A與6B,當在圖5A與圖5B所示的狀態下,主機系統1000刪除“f1.exe”時,主機系統1000會更新檔案配置表502與檔案列表504,其中在檔案配置表502中邏輯位址LBA(C+50)、與邏輯位址LBA(C+54)與邏輯位址LBA(C+52)所對應的鏈結值會被更改為“0×?0000000”,而在檔案列表504中關於“f1.exe”的資訊會被刪除。此時,邏輯位址LBA(C+50)、與邏輯位址LBA(C+54)與邏輯位址LBA(C+52)會變成為閒置邏輯位址。但必須瞭解的是,當主機系統1000刪除“f1.exe”時,記憶體管理單元204是依據主機系統1000的指示來更新儲存於實體位址中的檔案配置表502與檔案列表504,而儲存在邏輯位址LBA(C+50)、與邏輯位址LBA(C+54)與邏輯位址LBA(C+52)所映射之實體位址中的資料並不會因此被刪除。也就是說,在檔案系統400的空間資訊中儲存於邏輯位址LBA(C+50)、與邏輯位址LBA(C+54)與邏輯位址LBA(C+52)中的資料已被刪除,然而邏輯位址LBA(C+50)、與邏輯位址LBA(C+54)與邏輯位址LBA(C+52)所映射之實體位址中仍儲存有資料。在此,在檔案系統400的空間資訊中其所儲存之資料已被刪除的邏輯位址稱為已刪除邏輯位址。
值得一提的是,在本範例實施例中,檔案系統分析單元1112是被配置在主機系統1000中,以分析檔案系統400中的空間資訊。具體來說,檔案系統分析單元1112會從快閃記憶體晶片106讀取檔案配置表502,並且掃描每一邏輯位址對應的鏈結值來識別哪些邏輯位址為閒置邏輯位址。例如,以FAT32為例,當邏輯位址對應的鏈結值為“0×?0000000”時,則檔案系統分析單元1112會將此邏輯位址識別為閒置邏輯位址。特別是,檔案系統分析單元1112會將哪些邏輯位址為閒置邏輯位址的資訊透過主機介面單元206傳送給快閃記憶體控制器104。此外,當快閃記憶體控制器104的記憶體管理單元204經由主機介面單元206接收到此資訊時,記憶體管理單元204會依據所接收的資訊將閒置邏輯位址識別為已刪除邏輯位址並且將已刪除邏輯位址所映射之實體位址標示為無效。在本範例實施例中,當記憶體管理單元204以上述輪替地使用儲存區304的實體區塊來儲存主機系統1000欲寫入之資料時,記憶體管理單元204不會搬移(或整理)已被標記為無效之實體位址中的資料,由此寫入資料的速度可被有效地提升。
值得一提的是,在本範例實施例中,當檔案系統分析單元1112偵測到主機系統1000修改檔案配置表502時,則檔案系統分析單元1112會執行上述識別閒置邏輯位址的程序,並且將所識別的結果傳送給快閃記憶體控制器104。然而,必須瞭解的是,本發明不限於此,檔案系統分析單元1112亦可以定期方式(例如,每隔5分鐘)來執行上述識別閒置邏輯位址的程序,並且將所識別的結果傳送給快閃記憶體控制器104,或者亦可由快閃記憶體控制器104的記憶體管理單元204發送啟動指令來請求檔案系統分析單元1112執行上述識別閒置邏輯位址的程序並回傳所識別的結果。
此外,在本範例實施例中,檔案系統分析單元1112是以一硬體型式被配置在主機系統1000中。然而,本發明不限於此,在本發明另一範例實施例中,檔案系統分析單元1112亦可以一應用程式型式或一驅動程式型式安裝在主機系統1000中,並且在主機系統1000啟動時被載入至主記憶體1104中執行。。
圖7是根據本發明第一範例實施例所繪示的資料處理方法的流程圖。
請參照圖7,首先,在步驟S701中檔案系統分析單元1112從快閃記憶體晶片106的實體位址中讀取檔案配置表502。之後,在步驟S703中檔案系統分析單元1112依據對應每一邏輯位址的鏈結值來識別閒置邏輯位址,並且將關於所識別之閒置邏輯位址的資訊傳送給快閃記憶體儲存裝置100。
接著,在步驟S705中快閃記憶體控制器104依據所接收的資訊將閒置邏輯位址識別為已刪除邏輯位址,並且將已刪除邏輯位址所映射的實體位址中的資料標記為無效。
[第二範例實施例]
圖8是根據本發明第二範例實施例所繪示的主機系統與快閃記憶體儲存裝置的方塊圖。
請參照圖8,主機系統8000包括電腦8100與輸入/輸出(input/output,I/O)裝置1106。電腦8100包括中央處理單元1102、主記憶體1104、系統匯流排1108與資料傳輸介面1110。快閃記憶體儲存裝置800是透過資料傳輸介面1110與主機系統8000的其他元件耦接。
快閃記憶體儲存裝置800包括連接器102、快閃記憶體控制器804與快閃記憶體晶片106,其中快閃記憶體控制器804包括微處理器單元202、記憶體管理單元204'、主機介面單元206與快閃記憶體介面單元208。在此,連接器102、快閃記憶體晶片106、微處理器單元202、主機介面單元206與快閃記憶體介面單元208的功能與結構已於第一範例實施例中描述,在此不重複說明。
快閃記憶體控制器804的記憶體管理單元204'本質上是相同於記憶體管理單元204,其不同之處在於記憶體管理單元204是依據配置在主機系統1000中的檔案系統分析單元1112所提供的資訊來搜尋已刪除邏輯位址,而記憶體管理單元204'是直接從快閃記憶體晶片106中讀取檔案系統的空間資訊來搜尋已刪除邏輯位址。
具體來說,快閃記憶體控制器804的記憶體管理單元204'會從快閃記憶體晶片106讀取檔案配置表502,並且掃描每一邏輯位址對應的鏈結值來識別哪些邏輯位址為閒置邏輯位址。例如,以FAT32為例,當邏輯位址對應的鏈結值為“0×?0000000”時,則快閃記憶體控制器804的記憶體管理單元204'會將此邏輯位址識別為已刪除邏輯位址並且將已刪除邏輯位址所映射之實體位址標示為無效。
圖9是根據本發明第二範例實施例所繪示的資料處理方法的流程圖。
請參照圖9,首先,在步驟S901中快閃記憶體控制器804從快閃記憶體晶片106中讀取檔案配置表502。之後,在步驟S903中快閃記憶體控制器804依據對應每一邏輯位址的鏈結值來搜尋已刪除邏輯位址,並且在步驟S905中快閃記憶體控制器804將已刪除邏輯位址所映射的實體位址中的資料標記為無效。
[第三範例實施例]
圖10是根據本發明第三範例實施例所繪示的主機系統與快閃記憶體儲存裝置的方塊圖。
請參照圖10,主機系統9000包括電腦9100與輸入/輸出(input/output,I/O)裝置1106。電腦9100包括中央處理單元1102、主記憶體1104、系統匯流排1108與資料傳輸介面1110。快閃記憶體儲存裝置900是透過資料傳輸介面1110與主機系統9000的其他元件耦接。
快閃記憶體儲存裝置900包括連接器102、快閃記憶體控制器904與快閃記憶體晶片106,其中快閃記憶體控制器904包括微處理器單元202、記憶體管理單元204"、主機介面單元206與快閃記憶體介面單元208。在此,連接器102、快閃記憶體晶片106、微處理器單元202、主機介面單元206與快閃記憶體介面單元208的功能與結構已於第一範例實施例中描述,在此不重複說明。
快閃記憶體控制器904的記憶體管理單元204"本質上是相同於記憶體管理單元204,其不同之處在於記憶體管理單元204是依據配置在主機系統1000中的檔案系統分析單元1112所提供的資訊來搜尋已刪除邏輯位址,而記憶體管理單元204"是根據檔案讀取單元9112的運作來搜尋已刪除邏輯位址。
檔案讀取單元9112是被配置在主機系統9000中,並且依據檔案系統400中的空間資訊讀取目前儲存於快閃記憶體儲存裝置900中的檔案(或資料)。具體來說,檔案讀取單元9112會依據檔案系統400的目錄區406中的檔案列表504來讀取目前儲存於邏輯位址中的檔案。特別是,當記憶體管理單元204"依據來自於檔案讀取單元9112的主機讀取指令來從實體位址中讀取資料時,記憶體管理單元204"會記錄哪些邏輯位址被讀取且哪些邏輯位址未被讀取,其中記憶體管理單元204"會將檔案讀取單元9112未讀取的邏輯位址識別為已刪除邏輯位址。
更詳細來說,由於目錄區406中的檔案列表504僅會記錄目前主機系統9000所儲存之檔案,因此,在檔案讀取單元9112依序地讀取記錄於檔案列表504中的所有檔案之後,檔案讀取單元9112會完成存取用於儲存所有未被主機系統刪除之資料的邏輯位址。此外,當檔案讀取單元9112讀取檔案時,快閃記憶體控制器904的記憶體管理單元204"會依據邏輯位址與實體位址的映射關係來在實體位址中讀取資料。在本範例實施例中,在檔案讀取單元9112執行讀取的過程中,記憶體管理單元204"會記錄所讀取的每一邏輯位址,並且在檔案讀取單元9112完成讀取之後,記憶體管理單元204"會依據檔案讀取單元9112所讀取之邏輯位址來將未被讀取之邏輯位址識別為已刪除邏輯位址。
值得一提的是,在本範例實施例中,當檔案讀取單元9112偵測到主機系統9000修改檔案配置表502時,則檔案讀取單元9112會執行上述讀取程序。然而,必須瞭解的是,本發明不限於此,檔案讀取單元9112亦可以定期方式(例如,每隔5分鐘)來執行上述讀取程序,或者亦可由記憶體管理單元204"發送啟動指令來請求檔案讀取單元9112執行上述讀取程序。
圖11是根據本發明第三範例實施例所繪示的資料處理方法的流程圖。
請參照圖11,首先,在步驟S1101中檔案讀取單元9112依據檔案系統400中的空間資訊讀取目前儲存於邏輯位址中的檔案。並且,在步驟S1103中快閃記憶體控制器904記錄檔案讀取單元9112未讀取的邏輯位址,並且將檔案讀取單元9112未讀取的邏輯位址識別為已刪除邏輯位址。最後,在步驟S1105中快閃記憶體控制器904將已刪除邏輯位址所映射的實體位址中的資料標記為無效。
值得一提的是,在本範例實施例中,記憶體管理單元204"是依據檔案讀取單元9112所讀取之邏輯位址來將未被讀取之邏輯資料識別為已刪除邏輯位址。然而,在本發明另一範例實施例中,記憶體管理單元204"亦可依據當檔案讀取單元9112執行讀取程序時未被讀取的實體位址來識別已刪除邏輯位址。具體來說,如上所述,邏輯位址LBA(0)~LBA(L)是映射儲存區304中之實體區塊的實體位址。因此,記憶體管理單元204"亦可透過判斷在檔案讀取單元9112執行讀取的過程中儲存區304之中哪些實體位址未被讀取並且將未被讀取之實體位址所映射之邏輯位址識別為已刪除邏輯位址。
綜上所述,在本發明範例實施例中快閃記憶體儲存裝置能夠確認實體位址中的資料是否已被主機系統所刪除,由此避免耗費資源來維護(或整理)已被主機系統刪除之資料,進而提升快閃記憶體儲存裝置的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000、8000、9000...主機系統
1100、9100、9100...電腦
1102...中央處理單元
1104...主記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100、800、900...快閃記憶體儲存裝置
102...連接器
104、104'、804、904...快閃記憶體控制器
106...快閃記憶體晶片
122-(0)~122-(N)...實體區塊
202...微處理器單元
204、204'、204"...記憶體管理單元
206...主機介面單元
208...快閃記憶體介面單元
252...緩衝記憶體
254...電源管理單元
256...錯誤校正單元
302...系統區
304...儲存區
304a...資料區
304b...備用區
306...取代區
400...檔案系統
402...主啟動區
404...FAT區
406...目錄區
408‧‧‧檔案區
502‧‧‧檔案配置表
502a‧‧‧邏輯位址索引欄位
502b‧‧‧鏈結值欄位
504‧‧‧檔案列表
504a‧‧‧檔案名稱欄位
504b‧‧‧起始位址欄位
LBA-(0)~LBA-(L)‧‧‧邏輯頁位址
S701、S703、S705‧‧‧資料處理方法的步驟
S901、S903、S905‧‧‧資料處理方法的步驟
S1101、S1103、S1105‧‧‧資料處理方法的步驟
圖1A是根據本發明第一範例實施例繪示主機系統與快閃記憶體儲存裝置的方塊圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
圖3B是根據本發明第一範例實施例所繪示之邏輯位址與實體位址的映射示意圖。
圖4為根據本發明第一範例實施例所繪示之以FAT檔案系統格式化快閃記憶體儲存裝置的範例。
圖5A與5B為根據本發明第一範例實施例的一範例所繪示的部分檔案配置表與部分檔案列表。
圖6A與6B為根據本發明第一範例實施例的另一範例所繪示的部分檔案配置表與部分檔案列表。
圖7是根據本發明第一範例實施例所繪示的資料處理方法的流程圖。
圖8是根據本發明第二範例實施例所繪示的主機系統與快閃記憶體儲存裝置的方塊圖。
圖9是根據本發明第二範例實施例所繪示的資料處理方法的流程圖。
圖10是根據本發明第三範例實施例所繪示的主機系統與快閃記憶體儲存裝置的方塊圖。
圖11是根據本發明第三範例實施例所繪示的資料處理方法的流程圖。
1000...主機系統
1100...電腦
1102...中央處理單元
1104...主記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
100...快閃記憶體儲存裝置
102...連接器
104...快閃記憶體控制器
106...快閃記憶體晶片
202...微處理器單元
204...記憶體管理單元
206...主機介面單元
208...快閃記憶體介面單元

Claims (25)

  1. 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體區塊並且每一該些實體區塊具有多個實體位址;一連接器,用以耦接至一主機系統;一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器;以及一檔案系統分析單元,配置在該主機系統中,其中該快閃記憶體控制器用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該快閃記憶體控制器識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除,其中該檔案系統分析單元掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址,並且該快閃記憶體控制器將該至少一閒置邏輯位址識別為該至少一已刪除邏輯位址。
  2. 如申請專利範圍第1項所述之快閃記憶體儲存系統,其中該至少一檔案系統空間資訊至少包括一檔案配置表(File Allocation Table),並且該檔案配置表記錄對應每一 該些邏輯位址的一鏈結值,其中該檔案系統分析單元依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯位址。
  3. 如申請專利範圍第1項所述之快閃記憶體儲存系統,其中該檔案系統分析單元是以一應用程式型式或一驅動程式型式配置在該主機系統中。
  4. 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體區塊並且每一該些實體區塊具有多個實體位址;一連接器,用以耦接至一主機系統;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該快閃記憶體控制器識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除,其中該快閃記憶體控制器掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址並且將該至少一閒置邏輯位址識別為該至少一已刪除邏輯位 址。
  5. 如申請專利範圍第4項所述之快閃記憶體儲存系統,其中該至少一檔案系統空間資訊至少包括一檔案配置表(File Allocation Table),並且該檔案配置表記錄對應每一該些邏輯位址的一鏈結值,其中該快閃記憶體控制器依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯位址。
  6. 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體區塊並且每一該些實體區塊具有多個實體位址;一連接器,用以耦接至一主機系統;一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器;以及一檔案讀取單元,配置在該主機系統中,其中該快閃記憶體控制器用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該快閃記憶體控制器識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除, 其中該檔案讀取單元依據該至少一檔案系統空間資訊來從該些邏輯位址中讀取未被刪除的所有資料,其中該快閃記憶體控制器從該檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取未被刪除的所有資料。
  7. 如申請專利範圍第6項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器記錄該些邏輯位址之中未被該檔案讀取單元讀取之至少一邏輯位址,並且將未被該檔案讀取單元讀取之該至少一邏輯位址識別為該至少一已刪除邏輯位址。
  8. 如申請專利範圍第6項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器記錄該些實體位址之中至少一未被讀取之實體位址,並且將該至少一未被讀取之實體位址所映射之至少一邏輯位址識別為該至少一已刪除邏輯位址。
  9. 如申請專利範圍第6項所述之快閃記憶體儲存系統,其中該檔案讀取單元是以一應用程式型式或一驅動程式型式配置在該主機系統中。
  10. 一種快閃記憶體控制器,配置於一快閃記憶體儲存裝置中,用於管理該快閃記憶體儲存裝置的一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊,每一該些實體區塊具有多個實體位址且該快閃記憶體儲存裝置耦接至一主機系統,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用 以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該記憶體管理單元識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除,該主機系統包括一檔案系統分析單元,其中當該檔案系統分析單元掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址並且將關於該至少一閒置邏輯位址的資訊透過該主機介面單元傳送給該記憶體管理單元時,該記憶體管理單元將該至少一閒置邏輯位址識別為該至少一已刪除邏輯位址。
  11. 如申請專利範圍第10項所述之快閃記憶體控制器,其中該至少一檔案系統空間資訊至少包括一檔案配置表(File Allocation Table),並且該檔案配置表記錄對應每一該些邏輯位址的一鏈結值,其中該檔案系統分析單元依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯 位址。
  12. 一種快閃記憶體控制器,配置於一快閃記憶體儲存裝置中,用於管理該快閃記憶體儲存裝置的一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊,每一該些實體區塊具有多個實體位址且該快閃記憶體儲存裝置耦接至一主機系統,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該記憶體管理單元識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除,其中該記憶體管理單元掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址並且將該至少一閒置邏輯位址識別為該至少一已刪除邏輯位址。
  13. 如申請專利範圍第12項所述之快閃記憶體控制器,其中該至少一檔案系統空間資訊至少包括一檔案配置表(File Allocation Table),並且該檔案配置表記錄對應每一該些邏輯位址的一鏈結值,其中該記憶體管理單元依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯位址。
  14. 一種快閃記憶體控制器,配置於一快閃記憶體儲存裝置中,用於管理該快閃記憶體儲存裝置的一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊,每一該些實體區塊具有多個實體位址且該快閃記憶體儲存裝置耦接至一主機系統,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中該主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊,其中該記憶體管理單元識別該些邏輯位址之中的至少一已刪除邏輯位址並且將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效,其中在該至少一檔案 系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除,其中該主機系統包括一檔案讀取單元,其中當該檔案讀取單元依據該至少一檔案系統空間資訊來從該些邏輯位址中讀取未被刪除的所有資料時,該記憶體管理單元從該檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取未被刪除的所有資料。
  15. 如申請專利範圍第14項所述之快閃記憶體控制器,其中該記憶體管理單元記錄該些邏輯位址之中未被該檔案讀取單元讀取之至少一邏輯位址,並且將未被該檔案讀取單元讀取之該至少一邏輯位址識別為該至少一已刪除邏輯位址。
  16. 如申請專利範圍第14項所述之快閃記憶體控制器,其中該記憶體管理單元記錄該些實體位址之中至少一未被讀取之實體位址,並且將該至少一未被讀取之實體位址所映射之至少一邏輯位址識別為該至少一已刪除邏輯位址。
  17. 一種資料處理方法,用於管理一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊且每一該些實體區塊具有多個實體位址,該資料處理方法包括:提供一快閃記憶體控制器;配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中一主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資 訊;在該主機系統中配置一檔案系統分析單元;使用該檔案系統分析單元來掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址;將該至少一閒置邏輯位址識別為至少一已刪除邏輯位址,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除;以及由該快閃記憶體控制器將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效。
  18. 如申請專利範圍第17項所述之資料處理方法,其中使用該檔案系統分析單元來掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的該至少一閒置邏輯位址的步驟包括:讀取該至少一檔案系統空間資訊中的一檔案配置表(File Allocation Table),其中該檔案配置表記錄對應每一該些邏輯位址的一鏈結值;以及依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯位址。
  19. 一種資料處理方法,用於管理一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊且每一該些實體區塊具有多個實體位址,該資料處理方法包括:提供一快閃記憶體控制器;配置多個邏輯位址並且將該些邏輯位址映射至部分 該些實體位址,其中一主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊;由該快閃記憶體控制器來掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的至少一閒置邏輯位址;將該至少一閒置邏輯位址識別為至少一已刪除邏輯位址,其中在該至少一檔案系統空間資訊中,儲存於該至少一已刪除邏輯位址中的資料已被刪除;以及由該快閃記憶體控制器將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效。
  20. 如申請專利範圍第19項所述之資料處理方法,其中由該快閃記憶體控制器來掃描該至少一檔案系統空間資訊以識別該些邏輯位址之中的該至少一閒置邏輯位址的步驟包括:由該快閃記憶體控制器讀取該至少一檔案系統空間資訊的一檔案配置表(File Allocation Table),其中該檔案配置表記錄對應每一該些邏輯位址的一鏈結值;以及依據對應每一該些邏輯位址的鏈結值來識別該些邏輯位址之中的該至少一閒置邏輯位址。
  21. 一種資料處理方法,用於管理一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊且每一該些實體區塊具有多個實體位址,該資料處理方法包括:提供一快閃記憶體控制器;配置多個邏輯位址並且將該些邏輯位址映射至部分 該些實體位址,其中一主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊;在該主機系統中配置一檔案讀取單元;使用該檔案讀取單元依據該至少一檔案系統空間資訊來從該些邏輯位址中讀取未被刪除的所有資料,其中該快閃記憶體控制器從該檔案讀取單元所讀取之邏輯位址所映射的實體位址中讀取未被刪除的所有資料;由該快閃記憶體控制器記錄該些邏輯位址之中未被該檔案讀取單元讀取之至少一邏輯位址,並且將未被該檔案讀取單元讀取之該至少一邏輯位址識別為至少一已刪除邏輯位址;以及由該快閃記憶體控制器將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效。
  22. 一種資料處理方法,用於管理一快閃記憶體晶片,其中該快閃記憶體晶片具有多個實體區塊且每一該些實體區塊具有多個實體位址,該資料處理方法包括:提供一快閃記憶體控制器;配置多個邏輯位址並且將該些邏輯位址映射至部分該些實體位址,其中一主機系統使用一檔案系統來存取該些邏輯位址,並且該檔案系統包括至少一檔案系統空間資訊;在該主機系統中配置一檔案讀取單元;使用該檔案讀取單元依據該至少一檔案系統空間資 訊來從該些邏輯位址中讀取未被刪除的所有資料,其中該快閃記憶體控制器從映射該檔案讀取單元所讀取之邏輯位址的實體位址中讀取未被刪除的所有資料;記錄該些實體位址之中未被該快閃記憶體控制器讀取之至少一實體位址,並且將未被該快閃記憶體控制器讀取之該至少一實體位址所映射之至少一邏輯位址識別為至少一已刪除邏輯位址;以及由該快閃記憶體控制器將該至少一已刪除邏輯位址所映射的實體位址中的資料標記為無效。
  23. 如申請專利範圍第17項所述之資料處理方法,其中在該主機系統中配置該檔案系統分析單元的步驟包括:以一應用程式型式或一驅動程式型式將該檔案系統分析單元配置在該主機系統中。
  24. 如申請專利範圍第21項所述之資料處理方法,其中在該主機系統中配置該檔案讀取單元的步驟包括:以一應用程式型式或一驅動程式型式將該檔案讀取單元配置在該主機系統中。
  25. 如申請專利範圍第22項所述之資料處理方法,其中在該主機系統中配置該檔案讀取單元的步驟包括:以一應用程式型式或一驅動程式型式將該檔案讀取單元配置在該主機系統中。
TW098136515A 2009-10-28 2009-10-28 快閃記憶體儲存系統及其控制器與資料處理方法 TWI408551B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098136515A TWI408551B (zh) 2009-10-28 2009-10-28 快閃記憶體儲存系統及其控制器與資料處理方法
US12/636,043 US8230160B2 (en) 2009-10-28 2009-12-11 Flash memory storage system and flash memory controller and data processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098136515A TWI408551B (zh) 2009-10-28 2009-10-28 快閃記憶體儲存系統及其控制器與資料處理方法

Publications (2)

Publication Number Publication Date
TW201115335A TW201115335A (en) 2011-05-01
TWI408551B true TWI408551B (zh) 2013-09-11

Family

ID=43899348

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098136515A TWI408551B (zh) 2009-10-28 2009-10-28 快閃記憶體儲存系統及其控制器與資料處理方法

Country Status (2)

Country Link
US (1) US8230160B2 (zh)
TW (1) TWI408551B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026767B2 (en) 2009-12-23 2015-05-05 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US8615621B2 (en) * 2009-12-24 2013-12-24 St-Ericsson Sa Memory management
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9767098B2 (en) 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
TWI436209B (zh) 2011-06-14 2014-05-01 Phison Electronics Corp 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置
CN102841853B (zh) * 2011-06-24 2016-03-02 群联电子股份有限公司 存储器管理表处理方法、存储器控制器与存储器储存装置
CN102314490B (zh) * 2011-08-16 2013-07-10 晨星软件研发(深圳)有限公司 一种Linux FAT文件系统修复方法及装置
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
TWI563383B (en) * 2012-04-25 2016-12-21 Phison Electronics Corp Memory formatting method, memory controller and memory storage apparatus
CN103389941B (zh) * 2012-05-07 2016-03-02 群联电子股份有限公司 存储器格式化方法、存储器控制器及存储器存储装置
US9418700B2 (en) * 2012-06-29 2016-08-16 Intel Corporation Bad block management mechanism
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9652487B1 (en) 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US10558581B1 (en) * 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
TWI522804B (zh) * 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
JP6523193B2 (ja) * 2016-03-08 2019-05-29 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
CN109656833B (zh) 2017-10-12 2022-11-11 慧荣科技股份有限公司 数据储存装置
TWI685847B (zh) * 2017-10-12 2020-02-21 慧榮科技股份有限公司 資料儲存裝置之非揮發式記憶體的命名空間規劃

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060184720A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage in flash memories
WO2007000862A1 (ja) * 2005-06-24 2007-01-04 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
TWI271619B (en) * 2005-02-03 2007-01-21 Mediatek Inc System and related method for accessing page mode flash memory and flash memory controller

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
KR100876084B1 (ko) 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI271619B (en) * 2005-02-03 2007-01-21 Mediatek Inc System and related method for accessing page mode flash memory and flash memory controller
US20060184720A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage in flash memories
WO2007000862A1 (ja) * 2005-06-24 2007-01-04 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法

Also Published As

Publication number Publication date
TW201115335A (en) 2011-05-01
US20110099324A1 (en) 2011-04-28
US8230160B2 (en) 2012-07-24

Similar Documents

Publication Publication Date Title
TWI408551B (zh) 快閃記憶體儲存系統及其控制器與資料處理方法
TWI426528B (zh) 用於快閃記憶體的區塊管理方法、控制器與儲存系統
TWI425355B (zh) 資料存取方法、記憶體控制器與儲存系統
TWI435219B (zh) 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置
TWI423024B (zh) 用於快閃記憶體的資料儲存方法及其控制器與儲存系統
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI385518B (zh) 用於快閃記憶體的資料儲存方法及儲存系統
US9176865B2 (en) Data writing method, memory controller, and memory storage device
TWI435329B (zh) 快閃記憶體管理方法、快閃記憶體控制器與儲存系統
TWI479505B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US8819387B2 (en) Memory storage device, memory controller, and method for identifying valid data
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
TWI479315B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI438630B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TW201305818A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN102053796A (zh) 闪存储存系统、闪存控制器与数据处理方法
CN102200946B (zh) 资料存取方法、记忆体控制器与储存系统
TWI451247B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI414940B (zh) 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
US8589620B2 (en) Data writing method, memory controller, and memory storage apparatus
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法
TWI436209B (zh) 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置