TWI421870B - 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 - Google Patents
用於快閃記憶體的資料寫入方法及其控制器與儲存系統 Download PDFInfo
- Publication number
- TWI421870B TWI421870B TW098136907A TW98136907A TWI421870B TW I421870 B TWI421870 B TW I421870B TW 098136907 A TW098136907 A TW 098136907A TW 98136907 A TW98136907 A TW 98136907A TW I421870 B TWI421870 B TW I421870B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical block
- flash memory
- address
- data
- 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/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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種用於快閃記憶體的資料寫入方法,且特別是有關於一種能夠有效率地將資料寫入至快閃記憶體的資料寫入方法以及使用此方法的快閃記憶體控制器與快閃記憶體儲存系統。
由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,最適合使用於由電池供電的可攜式電子產品上。例如,固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置,並且已廣泛配置於筆記型電腦中作為主要的儲存裝置。
一般來說,快閃記憶體儲存裝置的快閃記憶體晶片(chip)會劃分為多個實體區塊,其中實體區塊更劃分為多個實體頁面,而實體區塊是快閃記憶體的抹除單位並且實體頁面是快閃記憶體的寫入單位。由於在程式化快閃記憶體之記憶胞時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的實體頁面(即,存有舊資料的頁面)直接進行寫入,而是必須先將此實體頁面抹除後方可重新程式化。特別是,由於快閃記憶體的抹除是以實體區塊為單位,所以,當欲將存有舊資料的實體頁面執行抹除運作時,必須對此實體頁面所屬的整個實體區塊進行抹除。基於快閃記憶體以實體頁面為寫入之單元而以實體區塊為抹除之單元的特性,一般來說,在快閃記憶體裝置中快閃記憶體晶片的實體區塊會被區分為資料區與備用區,其中資料區的實體區塊是已被使用來儲存資料的實體區塊,而備用區中的實體區塊是未被使用的實體區塊。當主機系統欲寫入資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置的控制電路會從備用區中提取實體區塊來寫入資料,並且將所提取的實體區塊關聯至資料區。並且,在將對資料區的實體區塊執行抹除運作(erase operation)之後將已抹除的實體區塊關聯至備用區。
由於主機系統是以邏輯位址為單位來進行寫入,並且主機系統寫入資料至邏輯位址時往往不會依據邏輯位址的順序來寫入。因此,主機系統所寫入的資料會零散地儲存於多個實體區塊中。基此,當快閃記憶體儲存裝置需要對實體區塊進行抹除運作時,快閃記憶體儲存裝置需要花費相當多的時間來整理實體區塊中的有效資料與無效資料,因此,造成快閃記憶體儲存裝置的寫入速度無法有效地提升。因此,如何提升在快閃記憶體所寫入資料的速度是此領域技術人員所致力的目標。
本發明提供一種資料寫入方法,其能夠有效地降低每一實體區塊中資料的零散程度,縮短整理快閃記憶體的實體區塊中有效資料與無效資料的時間,進而提升寫入資料至快閃記憶體的速度。
本發明提供一種快閃記憶體控制器,其能夠有效地降低每一實體區塊中資料的零散程度,縮短整理快閃記憶體的實體區塊中有效資料與無效資料的時間,進而提升寫入資料至快閃記憶體的速度。
本發明提供一種快閃記憶體儲存系統,其能夠有效地降低每一實體區塊中資料的零散程度,縮短整理快閃記憶體的實體區塊中有效資料與無效資料的時間,進而提升寫入資料至快閃記憶體的速度。
本發明範例實施例提出一種資料寫入方法,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中此快閃記憶體晶片包括多個實體區塊。本資料寫入方法包括配置多個邏輯存取位址,以及從主機系統中接收一寫入資料,其中此寫入資料是欲被寫入至至少一邏輯存取位址。本資料寫入方法也包括判斷是否存有至少一已開啟實體區塊,並且當實體區塊之中無存有已開啟實體區塊時,則從實體區塊之中提取一實體區塊,將此寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心。
在本發明之一實施例中,上述之資料寫入方法更包括維護一實體區塊位址中心表來記錄所設定的位址中心。
在本發明之一實施例中,當實體區塊之中存有至少一已開啟實體區塊時,則判斷此至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊,並且當此至少一已開啟實體區塊之中存有至少一可寫入實體區塊時,則將上述寫入資料寫入至此至少一可寫入實體區塊中,其中此至少一可寫入實體區塊的一位址半徑是大於上述至少一邏輯存取位址的其中之一與此至少一可寫入實體區塊的位址中心之間的一距離。
在本發明之一實施例中,當此至少一已開啟實體區塊之中無存有至少一可寫入實體區塊時,則判斷此至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值。並且,其中當此至少一已開啟實體區塊的數目小於已開啟實體區塊數門檻值時,則從上述實體區塊之中提取一實體區塊,將上述寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
在本發明之一實施例中,當此至少一已開啟實體區塊的數目不小於已開啟實體區塊數門檻值時,則執行一資料整理程序以抹除上述實體區塊的其中之一。
在本發明之一實施例中,上述之資料寫入方法更包括將上述邏輯存取位址分組為多個邏輯頁位址以及將上述邏輯頁位址分組為多個邏輯頁位址群組。
在本發明之一實施例中,上述之將上述寫入資料寫入至所提取的實體區塊中的步驟包括:以上述邏輯頁位址群組的其中之一為單位將上述寫入資料寫入至上述快閃記憶體晶片中。
在本發明之一實施例中,上述之以上述邏輯頁位址群組的其中之一為單位將上述寫入資料寫入至上述快閃記憶體晶片中的步驟包括:判斷上述寫入資料的邏輯存取位址是否對應整個邏輯頁位址群組的其中之一;當上述寫入資料的邏輯存取位址是對應整個邏輯頁位址群組的其中之一時,則將上述寫入資料寫入至上述快閃記憶體晶片中;以及當上述寫入資料的邏輯存取位址非對應整個邏輯頁位址群組的其中之一時,則從上述實體區塊中讀取對應上述寫入資料的邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將上述寫入資料和此其他資料一起寫入至上述快閃記憶體晶片中。
本發明範例實施例提出一種快閃記憶體控制器,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中此快閃記憶體晶片包括多個實體區塊。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,並且用以耦接至快閃記憶體晶片。主機介面單元耦接至微處理器單元,並且用以耦接至主機系統。記憶體管理單元耦接至微處理器單元,並且用以配置多個邏輯存取位址。此外,主機介面單元從主機系統中接收一寫入資料,其中寫入資料是欲被寫入至至少一邏輯存取位址。記憶體管理單元判斷是否存有至少一已開啟實體區塊,其中實體區塊之中無存有已開啟實體區塊時,則記憶體管理單元從實體區塊之中提取一實體區塊,將此寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心。
在本發明之一實施例中,上述之記憶體管理單元維護一實體區塊位址中心表來所設定的位址中心。
在本發明之一實施例中,當實體區塊之中存有至少一已開啟實體區塊時,則記憶體管理單元判斷此至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊。並且,當此至少一已開啟實體區塊之中存有至少一可寫入實體區塊時,則記憶體管理單元將上述寫入資料寫入至此至少一可寫入實體區塊中,其中此至少一可寫入實體區塊的一位址半徑是大於此至少一邏輯存取位址的其中之一與此至少一可寫入實體區塊的位址中心之間的一距離。
在本發明之一實施例中,當已開啟實體區塊之中無存有可寫入實體區塊時,則記憶體管理單元判斷此至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值。並且,當此至少一已開啟實體區塊的數目小於已開啟實體區塊數門檻值時,則記憶體管理單元從實體區塊之中提取一實體區塊,將上述寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
在本發明之一實施例中,當此至少一已開啟實體區塊的數目不小於已開啟實體區塊數門檻值時,則記憶體管理單元執行一資料整理程序以抹除上述實體區塊的其中之一。
在本發明之一實施例中,上述之記憶體管理單元將邏輯存取位址分組為多個邏輯頁位址,並且將邏輯頁位址分組為多個邏輯頁位址群組。
在本發明之一實施例中,上述之記憶體管理單元以邏輯頁位址群組的其中之一為單位將上述寫入資料寫入至上述快閃記憶體晶片中。
在本發明之一實施例中,上述之記憶體管理單元判斷上述寫入資料的邏輯存取位址是否對應整個邏輯頁位址群組的其中之一。並且,當上述寫入資料的邏輯存取位址是對應整個邏輯頁位址群組的其中之一時,則記憶體管理單元將上述寫入資料寫入至上述快閃記憶體晶片中;反之,記憶體管理單元從實體區塊中讀取上述寫入資料的邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將上述寫入資料和此其他資料一起寫入至快閃記憶體晶片中。
本發明範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體區塊。連接器用以耦接至一主機系統。快閃記憶體控制器耦接至快閃記憶體晶片與連接器,並且用以配置多個邏輯存取位址。此外,快閃記憶體控制器從主機系統中接收一寫入資料,其中此寫入資料是欲被寫入至至少一邏輯存取位址。快閃記憶體控制器判斷是否存有至少一已開啟實體區塊。並且,當實體區塊之中無存有已開啟實體區塊時,則快閃記憶體控制器從實體區塊之中提取一實體區塊,將此寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心。
在本發明之一實施例中,上述之快閃記憶體控制器維護一實體區塊位址中心表來記錄所設定的位址中心。
在本發明之一實施例中,當實體區塊之中存有至少一已開啟實體區塊時,則快閃記憶體控制器判斷此至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊。並且當此至少一已開啟實體區塊之中存有至少一可寫入實體區塊時,則快閃記憶體控制器將上述寫入資料寫入至此至少一可寫入實體區塊中,其中此至少一可寫入實體區塊的一位址半徑是大於此至少一邏輯存取位址的其中之一與此至少一可寫入實體區塊的位址中心之間的一距離。
在本發明之一實施例中,當此至少一已開啟實體區塊之中無存有至少一可寫入實體區塊時,則快閃記憶體控制器判斷此至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值。並且,當此至少一已開啟實體區塊的數目小於已開啟實體區塊數門檻值時,則快閃記憶體控制器從實體區塊之中提取一實體區塊,將上述寫入資料寫入至所提取的實體區塊中,並且將此至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
在本發明之一實施例中,當此至少一已開啟實體區塊的數目不小於已開啟實體區塊數門檻值時,則快閃記憶體控制器執行一資料整理程序以抹除上述實體區塊的其中之一。
在本發明之一實施例中,上述之快閃記憶體控制器將邏輯存取位址分組為多個邏輯頁位址,並且將邏輯頁位址分組為多個邏輯頁位址群組。
在本發明之一實施例中,上述之快閃記憶體控制器以邏輯頁位址群組的其中之一為單位將上述寫入資料寫入至上述快閃記憶體晶片中。
在本發明之一實施例中,上述之快閃記憶體控制器判斷上述寫入資料的邏輯存取位址是否對應整個邏輯頁位址群組的其中之一。並且,當上述寫入資料的邏輯存取位址是對應整個邏輯頁位址群組的其中之一時,則快閃記憶體控制器將上述寫入資料寫入至上述快閃記憶體晶片中;反之,快閃記憶體控制器從實體區塊中讀取上述寫入資料的邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將上述寫入資料和此其他資料一起寫入至上述快閃記憶體晶片中。
基於上述,本發明範例實施例能夠有效地提升寫入資料至快閃記憶體的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
快閃記憶體儲存裝置一般而言包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
圖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、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的概要方塊圖。
請參照圖1D,快閃記憶體儲存裝置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會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
請再參照圖1D,快閃記憶體晶片106是耦接至快閃記憶體控制器104並且用以儲存資料。快閃記憶體晶片106具有實體區塊122-(0)~122-(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有128個實體頁面(即,實體頁位址)。在本範例實施例中,實體頁面為程式化的最小單元。換言之,實體頁面為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。然而,必須瞭解的,本發明不限於每一實體區塊具有128個實體頁面,在本發明另一範例實施例中,實體區塊的實體頁面數亦可以是64、256或其他適當數目。在本範例實施例中,快閃記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片。然而,本發明不限於此,快閃記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。必須瞭解的是,在此描述快閃記憶體之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。
請參照圖3A,記憶體管理單元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會提供邏輯存取位址LAA(0)~LAA(H)給主機系統1000以進行資料存取。特別是,在本範例實施例中,記憶體管理單元204會將邏輯存取位址LAA(0)~LAA(H)分組為邏輯頁位址LPA(0)~LPA(L),並且將邏輯頁位址LPA(0)~LPA(L)映射至儲存區304的實體區塊的實體頁位址(如圖3B所示)。在本範例實施例中,記憶體管理單元204會使用一運算規則來設定每一邏輯存取位址所映射的邏輯頁位址。在本範例實施例中,每一邏輯頁位址是由4個邏輯存取位址所組成,例如,邏輯存取位址LAA(0)~LAA(3)是屬於邏輯頁位址LPA(0);邏輯存取位址LAA(4)~LAA(7)是屬於邏輯頁位址LPA(1);邏輯存取位址LAA(8)~LAA(11)是屬於邏輯頁位址LPA(2)...等。在此,邏輯存取位址可以是扇區(sector)、叢集(cluster)等。此外,記憶體管理單元204會維護邏輯頁轉實體頁映射表以及實體頁轉邏輯頁映射表來記錄邏輯頁位址與實體頁位址之間的映射關係。也就是說,當主機系統1000欲在邏輯存取位址中存取資料時,記憶體管理單元204會確認此邏輯存取位址所映射的邏輯頁位址,並且在此邏輯頁位址所映射的實體頁位址中來存取資料。
在本範例實施例中,記憶體管理單元204會為已被寫入資料的實體區塊記錄一位址中心與一位址半徑,並且依據主機系統1000欲寫入資料的邏輯存取位址(亦稱為被寫入邏輯存取位址)、已開啟實體區塊的位址中心與位址半徑來將資料寫入至快閃記憶體晶片106中。
具體來說,實體區塊的位址中心是指在此實體區塊中被寫入之第一筆資料所對應的邏輯頁位址中的第一個邏輯存取位址。也就是說,當記憶體管理單元204從備用區304b提取一個實體區塊並且將資料寫入至所提取的實體區塊時,所提取實體區塊的位址中心會被設定為此資料所對應的邏輯頁位址中的第一個邏輯存取位址。然而,必須瞭解的是本發明不限於此,實體區塊的位址中心亦可以在此實體區塊中被寫入之第一筆資料所對應的邏輯頁位址中的任一邏輯存取位址來設定。此外,實體區塊的位址半徑是用以控制儲存於實體區塊中之資料的零散程度,每一實體區塊的位址半徑是預定之任意適當值,且每一實體區塊的位址半徑可以是相同或不同。在本範例實施例中,每一實體區塊的位址半徑皆被設定為130個頁位址。特別是,在本範例實施例中,每一實體區塊內所儲存之資料所對應的邏輯存取位址的其中之一與此實體區塊的位址中心之間的距離(即,每一實體區塊內所儲存之資料所對應的邏輯存取位址的其中之一減去此實體區塊的位址中心的一絕對值)必須小於或等於此實體區塊的位址半徑(如公式(1)所示):
|LPA(PPA(t))-C(PPA(t))|≦R(PPA(t)) 公式(1)
其中,LPA(PPA(t))表示在快閃記憶體晶片106中第t個實體頁位址中所儲存之資料所對應的邏輯存取位址,C(PPA(t))表示第t個實體頁位址所屬的實體區塊的位址中心,並且R(PPA(t))表示第t個實體頁位址所屬的實體區塊的位址半徑。在本範例實施例中,記憶體管理單元204是藉由維護具有實體區塊索引欄位與位址中心欄位的實體區塊位址中心表(未繪示)來記錄實體區塊的位址中心。
在本範例實施例中,當主機系統1000欲將資料寫入至邏輯存取位址LAA(0)~LAA(H)中時,記憶體管理單元204會將資料寫入至已開啟實體區塊中。在此,所謂已開啟實體區塊是指其中部分實體頁位址已被寫入資料的實體區塊。也就是說,當記憶體管理單元204從備用區304b中提取一個實體區塊,且在此所提取的實體區塊的部分實體頁位址中寫入資料時,此實體區塊會被視為已開啟實體區塊。在快閃記憶體儲存裝置100中存有已開啟實體區塊的狀態下,當主機系統1000欲將資料寫入至邏輯存取位址LAA(0)~LAA(H)中時,記憶體管理單元204會在滿足上述公式(1)的狀態下依序地在已開啟實體區塊的實體頁位址中寫入來自於主機系統的資料;而在快閃記憶體儲存裝置100中無存有已開啟實體區塊的狀態下,當主機系統1000欲將資料寫入至邏輯存取位址LAA(0)~LAA(H)中時,記憶體管理單元204會從備用區304b中提取一個實體區塊作為已開啟實體區塊以寫入主機系統1000欲寫入的資料。
例如,當記憶體管理單元204開始使用實體區塊122-(D+1)來儲存主機系統1000欲寫入的資料時,既使主機系統1000所寫入邏輯存取位址所屬的邏輯頁位址為非連續,只要滿足上述公式(1)的狀態下,記憶體管理單元204仍會依序地使用實體區塊122-(D+1)的實體頁位址來寫入來自於主機系統1000的寫入資料。也就是說,在滿足上述公式(1)的狀態下,記憶體管理單元204會依序地使用一個實體區塊內的實體頁位址來寫入來自於主機系統1000的資料,並且當已開啟實體區塊內的實體頁位址都被使用完後記憶體管理單元204才會再選擇另一個無儲存資料的實體區塊(即,再從備用區304b中提取一個實體區塊),並且在新選擇之實體區塊的實體頁位址中繼續依序地寫入資料。在本範例實施例中,在記憶體管理單元204將資料寫入至實體頁位址後,記憶體管理單元204會更新邏輯頁轉實體頁映射表與實體頁轉邏輯頁映射表以正確地記錄邏輯頁位址與實體頁位址的映射關係。
值得一提的是,在本發明範例實施例中,在快閃記憶體儲存裝置100運作期間,上述已開啟實體區塊的數目必須小於一已開啟實體區塊數門檻值。更詳細來說,由於快閃記憶體儲存裝置100的資源(例如,緩衝記憶體的大小或快閃記憶體晶片中實體區塊)是有限的,因此,記憶體管理單元204所使用的已開啟實體區塊的數目必須受到限制。在本範例實施例中,已開啟實體區塊數門檻值為5(即,記憶體管理單元204最多可使用4個已開啟實體區塊),然而,必須瞭解的是,本發明不限於此。
圖4A與圖4B是根據本發明第一範例實施例所繪示的邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的範例,其中儲存區304的實體區塊的實體頁位址PPA(0)~PPA(K)是以輪替的方式映射至邏輯頁位址LPA(0)~LPA(L)。在本範例實施例中,邏輯頁轉實體頁映射表410具有邏輯頁索引欄位與實體頁位址欄位來記錄每一邏輯頁位址所映射的實體頁位址,並且實體頁轉邏輯頁映射表420具有實體頁索引欄位與邏輯頁位址欄位來記錄每一實體頁位址所映射的邏輯頁位址。
請參照圖4A與4B,假設邏輯頁位址LPA(0)~邏輯頁位址LPA(L)是分別地映射實體頁位址PPA(0)~實體頁位址PPA(L),也就是說,實體頁位址PPA(0)~實體頁位址PPA(L)已分別儲存主機系統1000在邏輯頁位址LPA(0)~邏輯頁位址LPA(L)中所寫入的資料。此外,在快閃記憶體儲存裝置100中目前無已開啟實體區塊。
圖5A與圖5B是根據本發明第一範例實施例所繪示之對應一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖5A與5B,當在圖4A與圖4B所示的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(4)~LAA(6)時,記憶體管理單元204會確認邏輯存取位址LAA(4)~LAA(6)是屬於邏輯頁位址LPA(1);接著從備用區304b中提取一個實體區塊,例如,具有實體頁位址PPA(L+1)~PPA(L+128)的實體區塊122-(D+1);並且將主機系統1000欲寫入的資料寫入至實體頁位址PPA(L+1)中。另外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(1)的映射更新為實體頁位址PPA(L+1),並且在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+1)的映射更新為邏輯頁位址LPA(1)。此時,實體區塊122-(D+1)會成為快閃記憶體儲存裝置100中的已開啟實體區塊,並且已開啟實體區塊122-(D+1)的位址中心會被設定為邏輯存取位址LAA(4)。在此,邏輯頁位址LPA(1)的第一個邏輯存取位址(即,邏輯存取位址LAA(4))被用來作為已開啟實體區塊122-(D+1)的位址中心。然而,本發明不限於此,在本發明另一範例實施例中,可使用邏輯存取位址LAA(4)~LAA(7)中的任何一個來作為已開啟實體區塊的位址中心。此外,必須瞭解的是,由於快閃記憶體的存取是以“頁”為單位,因此儘管主機系統1000僅欲寫入資料至邏輯存取位址LAA(4)~LAA(6)中,但記憶體管理單元204會將整個邏輯頁位址LPA(1)的資料(即,邏輯存取位址LAA(4)~LAA(7)的資料)寫入至對映的實體頁位址中。
圖6A與圖6B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖6A與6B,當在圖5A與圖5B的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(13)時,記憶體管理單元204會確認邏輯存取位址LAA(13)是屬於邏輯頁位址LPA(3);判斷邏輯存取位址LAA(13)與已開啟實體區塊122-(D+1)的位址中心(即,邏輯存取位址LAA(4))的距離是小於實體區塊122-(D+1)的位址半徑(即,130個邏輯存取位址),因此,記憶體管理單元204會將主機系統1000欲寫入的資料寫入至實體頁位址PPA(L+2)中。此外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(3)的映射更新為實體頁位址PPA(L+2),並且在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+2)的映射更新為邏輯頁位址LPA(3)。
圖7A與圖7B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖7A與7B,當在圖6A與圖6B的映射關係下主機系統1000欲寫入資料至邏輯頁位址LAA(518)時,記憶體管理單元204會確認邏輯存取位址LAA(518)是屬於邏輯頁位址LPA(129);判斷邏輯存取位址LAA(518)與已開啟實體區塊122-(D+1)的位址中心(即,邏輯存取位址LAA(4))之間的距離是大於實體區塊122-(D+1)的位址半徑(即,130個邏輯存取位址)。因此,在快閃記憶體儲存裝置100中無任何已開啟實體區塊可在滿足公式(1)的情況下被用來儲存欲寫入至邏輯頁位址LPA(129)的寫入資料。在此範例中,記憶體管理單元204會從備用區304b中提取一個實體區塊,例如,具有實體頁位址PPA(L+129)~PPA(L+256)的實體區塊122-(D+2),並且記憶體管理單元204會將主機系統1000欲寫入的資料寫入至實體頁位址PPA(L+129)中。此外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(129)的映射更新為實體頁位址PPA(L+129),並且在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+129)的映射更新為邏輯頁位址LPA(129)。此時,實體區塊122-(D+2)會成為快閃記憶體儲存裝置100中的另一個已開啟實體區塊,並且已開啟實體區塊122-(D+2)的位址中心被設定為邏輯存取位址LAA(516)。
圖8A與圖8B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖8A與8B,當在圖7A與圖7B的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(84)~LAA(87)時,記憶體管理單元204會確認邏輯存取位址LAA(84)是屬於邏輯頁位址LPA(21);判斷邏輯存取位址LAA(84)與已開啟實體區塊122-(D+1)的位址中心(即,邏輯存取位址LAA(4))之間的距離是小於實體區塊122-(D+1)的位址半徑(即,130個邏輯存取位址),而邏輯存取位址LAA(84)與已開啟實體區塊122-(D+2)的位址中心(即,邏輯存取位址LAA(516))之間的距離是大於實體區塊122-(D+2)的位址半徑(即,130個邏輯存取位址)。因此,在此範例中,記憶體管理單元204會將主機系統1000欲寫入的資料寫入至已開啟實體區塊122-(D+1)的實體頁位址PPA(L+3)中。此外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(21)的映射更新為實體頁位址PPA(L+3),並且在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+3)的映射更新為邏輯頁位址LPA(21)。
在本範例實施例中,記憶體管理單元204會比對邏輯頁轉實體頁映射表410以及實體頁轉邏輯頁映射表420中的記錄來判斷哪些實體頁位址為無效的實體頁位址與有效的實體頁位址,其中所謂無效的實體頁位址是指其中所儲存的資料為無效的舊資料,而有效的實體頁位址是指其中所儲存的資料是映射目前邏輯頁位址的有效資料。例如,以圖8A與8B為例,當欲判斷實體頁位址PPA(0)是否為有效的實體頁位址時,記憶體管理單元204會從實體頁轉邏輯頁映射表420中讀出實體頁位址PPA(0)是映射邏輯頁位址LPA(0),並且依據邏輯頁位址LPA(0)從邏輯頁轉實體頁映射表410讀出邏輯頁位址LPA(0)是映射實體頁位址PPA(0),因此,記憶體管理單元204會判斷實體頁位址PPA(0)為有效的實體頁位址。另外,當欲判斷實體頁位址PPA(1)是否為有效的實體頁位址時,記憶體管理單元204會從實體頁轉邏輯頁映射表420中讀出實體頁位址PPA(1)是映射邏輯頁位址LPA(1),並且依據邏輯頁位址LPA(1)從邏輯頁轉實體頁映射表410讀出邏輯頁位址LPA(1)是映射實體頁位址PPA(L+1),因此,記憶體管理單元204會判斷實體頁位址PPA(1)為無效的實體頁位址。也就是說,記憶體管理單元204會依據待判斷之實體頁位址透過實體頁轉邏輯頁映射表420與邏輯頁轉實體頁映射表410查詢待判斷之實體頁位址映射之邏輯頁位址所映射之實體頁位址,倘若待判斷之實體頁位址和所查詢得到之實體頁位址相符時,則此待判斷之實體頁位址為有效的實體頁位址,反之則為無效的實體頁位址。
值得一提的是,如上所述,在本範例實施例中,記憶體管理單元204最多能使用的已開啟實體區塊的數目會受到已開啟實體區塊數門檻值的限制,因此,當記憶體管理單元204需從備用區304b提取實體區塊作為已開啟實體區塊時,記憶體管理單元204會判斷目前已開啟實體區塊的數目是否小於已開啟實體區塊數門檻值。特別是,倘若目前已開啟實體區塊的數目非小於已開啟實體區塊數門檻值時,記憶體管理單元204會執行資料整理程序以將其中一個已開啟實體區塊中未寫入資料的實體頁位址填滿有效資料,並且執行無效資料抹除程序以將至少一個儲存無效資料的實體區塊進行抹除,由此將所抹除之實體區塊關聯至備用區304b,以釋放儲存無效資料之實體區塊。具體來說,在資料整理程序中,記憶體管理單元204會透過上述比對將其他實體區塊中有效之實體頁位址內的資料複製到已開啟實體區塊中,以使得其中一個已開啟實體區塊的實體頁位址都被寫入資料而被關聯至資料區304a。此外,由於快閃記憶體晶片106是以實體區塊作為抹除的最小單位,因此,在無效資料抹除程序中記憶體管理單元204會透過上述比對將有效之實體頁位址內的資料進行整理以使資料區304a中的至少一個實體區塊的實體頁位址中的資料都成為無效資料,由此,僅儲存無效資料的實體區塊就可被抹除並被關聯至備用區304b。例如,記憶體管理單元204可將一個實體區塊中有效之實體頁位址內的資料複製到其他實體區塊的實體頁位址中,並且對此實體區塊進行抹除運作,由此可將零散的有效資料集中並且將存有無效資料的實體區塊釋放出來。
例如,在進行有效資料整理以釋放存有無效資料的實體區塊後,記憶體管理單元204會更新實體頁轉邏輯頁映射表420,以將所抹除之實體區塊的實體頁位址的映射關係更新為空值(例如,“NULL”)。必須注意的是,在執行資料整理程序與無效資料抹除程序而搬移有效資料時,記憶體管理單元204亦會使每一實體區塊中所儲存之資料所對應的邏輯頁位址盡量滿足上述公式(1)的限制。
依據上述範例,當快閃記憶體控制器104的主機介面單元206從主機系統1000接收到主機寫入指令與寫入資料時,記憶體管理單元204會依據欲寫入此寫入資料的被寫入邏輯存取位址來判斷已開啟實體區塊之中是否存有在符合公式(1)的限制下可寫入此寫入資料的至少一可寫入實體區塊,其中當存有至少一可寫入實體區塊時記憶體管理單元204會將此寫入資料寫入至此些可寫入實體區塊的其中之一中;反之,記憶體管理單元204會從備用區304b中提取一個實體區塊作為已開啟實體區塊來寫入此寫入資料。以下將配合圖式詳細描述根據本發明範例實施例的資料寫入方法。
圖9是根據本發明第一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖9,在步驟S901中主機介面單元206經由連接器102從主機系統1000中接收主機寫入指令與寫入資料。之後,在步驟S903中記憶體管理單元204判斷主機寫入指令對應的被寫入邏輯頁位址(即,主機系統1000欲寫入資料的邏輯頁位址),並且在步驟S905中判斷已開啟實體區塊。最後,在步驟S907中記憶體管理單元204會依據被寫入邏輯存取位址以及已開啟實體區塊的位址中心與位址半徑來將寫入資料寫入至快閃記憶體晶片106的實體頁位址中。
圖10是繪示圖9之步驟S907的詳細步驟。
請參照圖10,在步驟S1001中記憶體管理單元204判斷已開啟實體區塊之中是否存有可寫入實體區塊,其中此可寫入實體區塊的位址半徑是大於被寫入邏輯存取位址的其中之一與此可寫入實體區塊的位址中心之間的距離(即,滿足上述公式(1))。
倘若在步驟S1001中判斷已開啟實體區塊之中存有可寫入實體區塊時,則在步驟S1003中將所接收到的寫入資料寫入至此可寫入實體區塊的實體頁位址中。接著,在步驟S1005中記憶體管理單元204會更新實體頁轉邏輯頁映射表420與邏輯頁轉實體頁映射表410中的映射關係(例如,如圖8A與8B所示),並且結束圖10的流程。
值得一提的是,倘若在步驟S1001中判斷存有多個可寫入實體區塊時,記憶體管理單元204可任意選擇其中一個可寫入實體區塊來寫入所接收到的寫入資料,或者依據被寫入邏輯存取位址與每一可寫入實體區塊的位址中心之間的距離來選擇距離最短的可寫入實體區塊來寫入所接收到的寫入資料。
倘若在步驟S1001中判斷已開啟實體區塊之中無存有可寫入實體區塊時,則在步驟S1007中記憶體管理單元204會判斷已開啟實體區塊的數目是否小於已開啟實體區塊數門檻值。
在步驟S1007中判斷已開啟實體區塊的數目非小於已開啟實體區塊數門檻值時,則在步驟S1009中執行資料整理程序以將已開啟實體區塊的其中之一關聯至資料區304a,並且在步驟S1011中執行無效資料抹除程序以抹除資料區304a中的至少一個實體區塊及將所抹除之實體區塊關聯至備用區304b。
之後,在步驟S1013中記憶體管理單元204從備用區304b中提取一個實體區塊,並且將寫入資料寫入至所提取的實體區塊的實體頁位址中。然後,在步驟S1015中記憶體管理單元204更新所提取之實體區塊的位址中心。具體來說,在步驟S1015中記憶體管理單元204會將在步驟S1011中所提取的實體區塊的位址中心設定為步驟S903中所判斷的被寫入邏輯頁位址中的其中一個邏輯存取位址,且將在步驟S1011中已抹除實體區塊的位址中心設為空值(例如,“NULL”)。在步驟S1015之後,步驟S1005會被執行並結束圖10的流程。
本發明第二範例實施例的快閃記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的快閃記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體管理單元會將邏輯頁位址分組為多個邏輯頁位址群組,並且以邏輯頁位址群組為單位來寫入來自於主機系統的寫入資料。以下將配合第一範例實施例的圖1A、圖1D與圖3來描述第二範例實施例。
圖11是根據本發明第二範例實施例所繪示之邏輯頁位址的分組示意圖。
請參照圖11,在本範例實施例中,記憶體管理單元204會將邏輯頁位址LPA(0)~LPA(L)分組為邏輯頁位址群組LPAG(0)~LPAG(U),其中每一邏輯頁位址群組是由4個邏輯頁位址所組成,然而,必須需瞭解的是,本發明不限於此。
特別是,在本範例實施例中,記憶體管理單元204會以所分組之邏輯頁位址群組為單位來寫入資料。具體來說,在主機系統1000僅欲寫入資料至邏輯存取位址LAA(4)~LAA(7),且邏輯頁位址LPA(0)~LPA(3)屬於同一個邏輯頁位址群組LPAG(0)的例子中,記憶體管理單元204會判斷邏輯存取位址LAA(4)~LAA(7)是屬於邏輯頁位址LPA(1);依據實體頁轉邏輯頁映射表420與邏輯頁轉實體頁映射表410從快閃記憶體晶片106中讀取屬於邏輯頁位址LPA(0)、LPA(2)與LPA(3)的資料;並且將來自於主機系統1000的資料和所讀取的資料以邏輯頁位址群組LPAG(0)為單位寫入至快閃記憶體晶片106中。
圖12A與圖12B是根據本發明第二範例實施例所繪示之對應一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖12A與12B,當在圖4A與圖4B所示的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(4)~LAA(7)時,記憶體管理單元204會判斷主機系統1000僅欲寫入資料至邏輯存取位址LAA(4)~LAA(7)所屬的邏輯頁位址LPA(1),而非整個邏輯頁位址群組。在此範例中,記憶體管理單元204會從實體頁位址PPA(0)、實體頁位址PPA(2)與實體頁位址PPA(3)中讀取屬於邏輯頁位址LPA(0)、邏輯頁位址LPA(2)與邏輯頁位址LPA(3)的資料;從備用區304b中提取一個實體區塊,例如,具有實體頁位址PPA(L+1)~PPA(L+128)的實體區塊122-(D+1);並且將所讀取之屬於邏輯頁位址LPA(0)的資料、主機系統1000欲寫入之屬於邏輯頁位址LPA(1)的資料、所讀取之屬於邏輯頁位址LPA(2)的資料與所讀取之屬於邏輯頁位址LPA(3)的資料依序地寫入至實體頁位址PPA(L+1)、實體頁位址PPA(L+2)、實體頁位址PPA(L+3)與實體頁位址PPA(L+4)中。此外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(0)的映射更新為實體頁位址PPA(L+1);將邏輯頁位址LPA(1)的映射更新為實體頁位址PPA(L+2);將邏輯頁位址LPA(2)的映射更新為實體頁位址PPA(L+3);以及將邏輯頁位址LPA(3)的映射更新為實體頁位址PPA(L+4)。並且,記憶體管理單元204會在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+1)的映射更新為邏輯頁位址LPA(0);將實體頁位址PPA(L+2)的映射更新為邏輯頁位址LPA(1);將實體頁位址PPA(L+3)的映射更新為邏輯頁位址LPA(2);以及將實體頁位址PPA(L+4)的映射更新為邏輯頁位址LPA(3)。在此範例中,實體區塊122-(D+1)會成為快閃記憶體儲存裝置100中的已開啟實體區塊,並且已開啟實體區塊122-(D+1)的位址中心會被設為邏輯存取位址LAA(4)。
圖13A與圖13B是根據本發明第二範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖13A與13B,當在圖12A與圖12B所示的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(516)~LAA(519)時,記憶體管理單元204會判斷邏輯存取位址LAA(516)與已開啟實體區塊122-(D+1)的位址中心(即,邏輯存取位址LAA(4))的距離是大於實體區塊122-(D+1)的位址半徑(即,130個邏輯存取位址)。因此,在快閃記憶體儲存裝置100中無任何已開啟實體區塊可在滿足公式(1)的情況下被用來儲存欲寫入至邏輯存取位址LAA(516)~LAA(519)的寫入資料。此外,記憶體管理單元204會判斷主機系統1000僅欲寫入資料至邏輯存取位址LAA(516)~LAA(519)所屬的邏輯頁位址LPA(129),而非整個邏輯頁位址群組。在此範例中,記憶體管理單元204會從實體頁位址PPA(128)、實體頁位址PPA(130)與實體頁位址PPA(131)中讀取屬於邏輯頁位址LPA(128)、邏輯頁位址LPA(130)與邏輯頁位址LPA(131)的資料;從備用區304b中提取一個實體區塊,例如,具有實體頁位址PPA(L+129)~PPA(L+256)的實體區塊122-(D+2);並且將所讀取之屬於邏輯頁位址LPA(128)的資料、主機系統1000欲寫入之屬於邏輯頁位址LPA(129)的資料、所讀取之屬於邏輯頁位址LPA(130)的資料與所讀取之屬於邏輯頁位址LPA(131)的資料依序地寫入至實體頁位址PPA(L+129)、實體頁位址PPA(L+130)、實體頁位址PPA(L+131)與實體頁位址PPA(L+132)中。此時,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(128)的映射更新為實體頁位址PPA(L+129);將邏輯頁位址LPA(129)的映射更新為實體頁位址PPA(L+130);將邏輯頁位址LPA(130)的映射更新為實體頁位址PPA(L+131);以及將邏輯頁位址LPA(131)的映射更新為實體頁位址PPA(L+132)。並且,記憶體管理單元204會在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+129)的映射更新為邏輯頁位址LPA(128);將實體頁位址PPA(L+130)的映射更新為邏輯頁位址LPA(129);將實體頁位址PPA(L+131)的映射更新為邏輯頁位址LPA(130);以及將實體頁位址PPA(L+132)的映射更新為邏輯頁位址LPA(131)。在此範例中,實體區塊122-(D+2)會成為快閃記憶體儲存裝置100中的另一已開啟實體區塊,並且已開啟實體區塊122-(D+2)的位址中心會被設為邏輯存取位址LAA(516)。
圖14A與圖14B是根據本發明第二範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
請參照圖14A與14B,當在圖13A與圖13B所示的狀態下主機系統1000欲寫入資料至邏輯存取位址LAA(80)~LAA(95)時,記憶體管理單元204會判斷邏輯存取位址LAA(80)與已開啟實體區塊122-(D+1)的位址中心(即,邏輯存取位址LAA(4))之間的距離是小於實體區塊122-(D+1)的位址半徑(即,130個邏輯存取位址),而邏輯存取位址LAA(80)與已開啟實體區塊122-(D+2)的位址中心(即,邏輯存取位址LAA(516))之間的距離是大於實體區塊122-(D+2)的位址半徑(即,130個邏輯存取位址)。此外,記憶體管理單元204會判斷主機系統1000欲寫入資料至整個邏輯頁位址群組LPAG(5)。因此,在此範例中,記憶體管理單元204會將主機系統1000欲寫入之屬於邏輯頁位址LPA(20)的資料、屬於邏輯頁位址LPA(21)的資料、屬於邏輯頁位址LPA(22)的資料與屬於邏輯頁位址LPA(23)的資料依序地寫入至實體頁位址PPA(L+5)、實體頁位址PPA(L+6)、實體頁位址PPA(L+7)與實體頁位址PPA(L+8)中。此外,記憶體管理單元204會在邏輯頁轉實體頁映射表410中將邏輯頁位址LPA(20)的映射更新為實體頁位址PPA(L+5);將邏輯頁位址LPA(21)的映射更新為實體頁位址PPA(L+6);將邏輯頁位址LPA(22)的映射更新為實體頁位址PPA(L+7);以及將邏輯頁位址LPA(23)的映射更新為實體頁位址PPA(L+8)。並且,記憶體管理單元204會在實體頁轉邏輯頁映射表420中將實體頁位址PPA(L+5)的映射更新為邏輯頁位址LPA(20);將實體頁位址PPA(L+6)的映射更新為邏輯頁位址LPA(21);將實體頁位址PPA(L+7)的映射更新為邏輯頁位址LPA(22);以及將實體頁位址PPA(L+8)的映射更新為邏輯頁位址LPA(23)。
圖15是根據本發明第二範例實施例所繪示的資料寫入方法的流程圖。
請參照圖15,在步驟S1501中快閃記憶體控制器104的主機介面單元206經由連接器102從主機系統1000中接收主機寫入指令與寫入資料。之後,在步驟S1503中記憶體管理單元204判斷此主機寫入指令對應的被寫入邏輯頁位址(即,主機系統1000欲寫入資料的邏輯頁位址),並且在步驟S1505中判斷已開啟實體區塊。最後,在步驟S1507中記憶體管理單元204會依據被寫入邏輯存取位址、已開啟實體區塊的位址中心與位址半徑來以邏輯頁位址群組為單位將寫入資料寫入至快閃記憶體晶片106的實體頁位址中。
圖16是繪示圖15之步驟S1507的詳細步驟。
請參照圖16,在步驟S1601中記憶體管理單元204判斷已開啟實體區塊之中是否存有可寫入實體區塊,其中此可寫入實體區塊的位址半徑是大於被寫入邏輯存取位址的其中之一與此可寫入實體區塊的位址中心的距離(即,滿足上述公式(1))。
倘若在步驟S1601中判斷已開啟實體區塊之中存有可寫入實體區塊時,則在步驟S1603中記憶體管理單元204判斷所接收到的寫入資料是否對應整個邏輯頁位址群組,其中倘若所接收到的寫入資料非對應整個邏輯頁位址群組時,則在步驟S1605中記憶體管理單元204會從實體頁位址中讀取對應的資料,並且在步驟S1607中記憶體管理單元204將所接收到的寫入資料和所讀取的資料寫入至此可寫入實體區塊的實體頁位址中。
倘若在步驟S1603中判斷所接收到的寫入資料是對應整個邏輯頁位址群組時,則在步驟S1609中記憶體管理單元204將所接收到的寫入資料寫入至此可寫入實體區塊的實體頁位址中。
之後,在步驟S1611中記憶體管理單元204會更新實體頁轉邏輯頁映射表420與邏輯頁轉實體頁映射表410中的映射關係(例如,如圖14A與14B所示),並且結束圖16的流程。
倘若在步驟S1601中判斷已開啟實體區塊之中無存有可寫入實體區塊時,則在步驟S1613中記憶體管理單元204會判斷已開啟實體區塊的數目是否小於已開啟實體區塊數門檻值。
在步驟S1613中判斷已開啟實體區塊的數目非小於已開啟實體區塊數門檻值時,則在步驟S1615中執行資料整理程序以將已開啟實體區塊的其中之一關聯至資料區304a,並且在步驟S1617中執行無效資料抹除程序以抹除資料區304a中的至少一個實體區塊並將所抹除之實體區塊關聯至備用區340b。
然後,在步驟S1619中記憶體管理單元204判斷所接收到的寫入資料是否對應整個邏輯頁位址群組,其中倘若所接收到的寫入資料非對應整個邏輯頁位址群組時,則在步驟S1621中記憶體管理單元204會從實體頁位址中讀取對應的資料。之後,在步驟S1623中記憶體管理單元204從備用區304b中提取一個實體區塊,並且將所接收到的寫入資料和所讀取的資料寫入至所提取的實體區塊的實體頁位址中。
倘若在步驟S1619中判斷所接收到的寫入資料對應整個邏輯頁位址群組時,則在步驟S1625中記憶體管理單元204從備用區304b中提取一個實體區塊,並且將所接收到的寫入資料寫入至所提取的實體區塊的實體頁位址中。
然後,在步驟S1627中記憶體管理單元204會更新實體區塊的位址中心,並且步驟S1611會被執行。
綜上所述,本發明範例實施例的資料寫入方法藉由設定實體區塊的位址中心與位址半徑以及依據欲寫入資料之邏輯存取位址和實體區塊的位址中心與位址半徑來選擇適當的實體頁位址來寫入資料,由此使得連續的邏輯頁位址的資料能較集中地儲存於同一實體區塊內,以致於減少整理實體區塊中有效資料與無效資料的時間,並且提升在快閃記憶體中寫入資料的速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...快閃記憶體儲存裝置
102...連接器
104...快閃記憶體控制器
106...快閃記憶體晶片
122-(0)~122(N)...實體區塊
202...微處理器單元
204...記憶體管理單元
206...主機介面單元
208...快閃記憶體介面單元
252...緩衝記憶體
254...電源管理單元
256...錯誤校正單元
302...系統區
304...儲存區
304a...資料區
304b...備用區
306...取代區
410...邏輯頁轉實體頁映射表
420...實體頁轉邏輯頁映射表
LAA(0)~LAA(H)...邏輯存取位址
LPA(0)~LPA(L)...邏輯頁位址
PPA(0)~PPA(K)...實體頁位址
S901、S903、S905、S907、S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015...資料寫入步驟
S1501、S1503、S1505、S1507、S1601、S1603、S1605、S1607、S1609、S1611、S1613、S1615、S1617、S1619、S1621、S1623、S1625、S1627...資料寫入步驟
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示快閃記憶體儲存裝置的概要方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
圖3B是根據本發明第一範例實施例所繪示之邏輯頁位址與實體頁位址的映射示意圖。
圖4A與圖4B是根據本發明第一範例實施例所繪示的邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的範例。
圖5A與圖5B是根據本發明第一範例實施例所繪示之對應一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖6A與圖6B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖7A與圖7B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖8A與圖8B是根據本發明第一範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖9是根據本發明第一範例實施例所繪示的資料寫入方法的流程圖。
圖10是繪示圖9之步驟S907的詳細步驟。
圖11是根據本發明第二範例實施例所繪示之邏輯頁位址的分組示意圖。
圖12A與圖12B是根據本發明第二範例實施例所繪示之對應一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖13A與圖13B是根據本發明第二範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖14A與圖14B是根據本發明第二範例實施例所繪示之對應另一資料寫入範例之邏輯頁轉實體頁映射表及實體頁轉邏輯頁映射表的示意圖。
圖15是根據本發明第二範例實施例所繪示的資料寫入方法的流程圖。
圖16是繪示圖15之步驟S1507的詳細步驟。
S901、S903、S905、S907...資料寫入步驟
Claims (21)
- 一種資料寫入方法,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中該快閃記憶體晶片包括多個實體區塊,該資料寫入方法包括:配置多個邏輯存取位址;從該主機系統中接收一寫入資料,其中該寫入資料是欲被寫入至至少一邏輯存取位址;判斷是否存有至少一已開啟實體區塊;以及當該些實體區塊之中無存有該至少一已開啟實體區塊時,則從該些實體區塊之中提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心,其中當該些實體區塊之中存有該至少一已開啟實體區塊時,判斷該至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊,其中當該至少一已開啟實體區塊之中存有該至少一可寫入實體區塊時,則將該寫入資料寫入至該至少一可寫入實體區塊中,其中該至少一可寫入實體區塊的一位址半徑是大於該至少一邏輯存取位址的其中之一與該至少一可寫入實體區塊的位址中心之間的一距離。
- 如申請專利範圍第1項所述之資料寫入方法,更包括維護一實體區塊位址中心表來記錄所設定的位址中心。
- 如申請專利範圍第1項所述之資料寫入方法,當該 至少一已開啟實體區塊之中無存有該至少一可寫入實體區塊時,判斷該至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值,其中當該至少一已開啟實體區塊的數目小於該已開啟實體區塊數門檻值時,則從該些實體區塊之中提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
- 如申請專利範圍第3項所述之資料寫入方法,其中當該至少一已開啟實體區塊的數目不小於該已開啟實體區塊數門檻值時,執行一資料整理程序以抹除該些實體區塊的其中之一。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:將該些邏輯存取位址分組為多個邏輯頁位址;以及將該些邏輯頁位址分組為多個邏輯頁位址群組。
- 如申請專利範圍第5項所述之資料寫入方法,其中將該寫入資料寫入至所提取的實體區塊中的步驟包括:以該些邏輯頁位址群組的其中之一為單位將該寫入資料寫入至該快閃記憶體晶片中。
- 如申請專利範圍第6項所述之資料寫入方法,其中以該些邏輯頁位址群組的其中之一為單位將該寫入資料寫入至該快閃記憶體晶片中的步驟包括:判斷該寫入資料的該至少一邏輯存取位址是否對應 整個該些邏輯頁位址群組的其中之一;當該寫入資料的該至少一邏輯存取位址是對應整個該些邏輯頁位址群組的其中之一時,則將該寫入資料寫入至該快閃記憶體晶片中;以及當該寫入資料的該至少一邏輯存取位址非對應整個該些邏輯頁位址群組的其中之一時,則從該些實體區塊中讀取對應該至少一邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將該寫入資料和該其他資料一起寫入至該快閃記憶體晶片中。
- 一種快閃記憶體控制器,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中該快閃記憶體晶片包括多個實體區塊,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯存取位址,其中該主機介面單元從該主機系統中接收一寫入資料,其中該寫入資料是欲被寫入至至少一邏輯存取位址,其中該記憶體管理單元判斷是否存有至少一已開啟實體區塊,其中當該些實體區塊之中無存有該至少一已開啟實體區塊時,則該記憶體管理單元從該些實體區塊之中 提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心,其中當該些實體區塊之中存有該至少一已開啟實體區塊時,則該記憶體管理單元判斷該至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊,其中當該至少一已開啟實體區塊之中存有該至少一可寫入實體區塊時,則該記憶體管理單元將該寫入資料寫入至該至少一可寫入實體區塊中,其中該至少一可寫入實體區塊的一位址半徑是大於該至少一邏輯存取位址的其中之一與該至少一可寫入實體區塊的位址中心之間的一距離。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該記憶體管理單元維護一實體區塊位址中心表來記錄所設定的位址中心。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中當該至少一已開啟實體區塊之中無存有至少一可寫入實體區塊時,則該記憶體管理單元判斷該至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值,其中當該至少一已開啟實體區塊的數目小於該已開啟實體區塊數門檻值時,則該記憶體管理單元從該些實體區塊之中提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
- 如申請專利範圍第10項所述之快閃記憶體控制器,其中當該至少一已開啟實體區塊的數目不小於該已開啟實體區塊數門檻值時,則該記憶體管理單元執行一資料整理程序以抹除該些實體區塊的其中之一。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該記憶體管理單元將該些邏輯存取位址分組為多個邏輯頁位址,並且將該些邏輯頁位址分組為多個邏輯頁位址群組。
- 如申請專利範圍第12項所述之快閃記憶體控制器,其中該記憶體管理單元以該些邏輯頁位址群組的其中之一為單位將該寫入資料寫入至該快閃記憶體晶片中。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該記憶體管理單元判斷該寫入資料的該至少一邏輯存取位址是否對應整個該些邏輯頁位址群組的其中之一,其中當該寫入資料的該至少一邏輯存取位址是對應整個該些邏輯頁位址群組的其中之一時,則該記憶體管理單元將該寫入資料寫入至該快閃記憶體晶片中,其中當該寫入資料的該至少一邏輯存取位址非對應整個該些邏輯頁位址群組的其中之一時,則該記憶體管理單元從該些實體區塊中讀取對應該至少一邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將該寫入資料和該其他資料一起寫入至該快閃記憶體晶片中。
- 一種快閃記憶體儲存系統,包括: 一快閃記憶體晶片,具有多個實體區塊;一連接器,用以耦接至一主機系統;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以配置多個邏輯存取位址,其中該快閃記憶體控制器從該主機系統中接收一寫入資料,其中該寫入資料是欲被寫入至至少一邏輯存取位址,其中該快閃記憶體控制器判斷是否存有至少一已開啟實體區塊,其中當該些實體區塊之中無存有該至少一已開啟實體區塊時,則該快閃記憶體控制器從該些實體區塊之中提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的一位址中心,其中當該些實體區塊之中存有該至少一已開啟實體區塊時,則該快閃記憶體控制器判斷該至少一已開啟實體區塊之中是否存有至少一可寫入實體區塊,其中當該至少一已開啟實體區塊之中存有該至少一可寫入實體區塊時,則該快閃記憶體控制器將該寫入資料寫入至該至少一可寫入實體區塊中,其中該至少一可寫入實體區塊的一位址半徑是大於該至少一邏輯存取位址的其中之一與該至少一可寫入實體區塊的位址中心之間的一距離。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器維護一實體區塊位址中心 表來記錄所設定的位址中心。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中當該至少一已開啟實體區塊之中無存有該至少一可寫入實體區塊時,則該快閃記憶體控制器判斷該至少一已開啟實體區塊的數目是否小於一已開啟實體區塊數門檻值,其中當該至少一已開啟實體區塊的數目小於該已開啟實體區塊數門檻值時,則該快閃記憶體控制器從該些實體區塊之中提取一實體區塊,將該寫入資料寫入至所提取的實體區塊中,並且將該至少一邏輯存取位址的其中之一設定為所提取的實體區塊的位址中心。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中當該至少一已開啟實體區塊的數目不小於該已開啟實體區塊數門檻值時,則該快閃記憶體控制器執行一資料整理程序以抹除該些實體區塊的其中之一。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該些邏輯存取位址分組為多個邏輯頁位址,並且將該些邏輯頁位址分組為多個邏輯頁位址群組。
- 如申請專利範圍第19項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器以該些邏輯頁位址群組的其中之一為單位將該寫入資料寫入至該快閃記憶體晶片中。
- 如申請專利範圍第20項所述之快閃記憶體儲存 系統,其中該快閃記憶體控制器判斷該寫入資料的該至少一邏輯存取位址是否對應整個該些邏輯頁位址群組的其中之一,其中當該寫入資料的該至少一邏輯存取位址是對應整個該些邏輯頁位址群組的其中之一時,則該快閃記憶體控制器將該寫入資料寫入至該快閃記憶體晶片中,其中當該寫入資料的該至少一邏輯存取位址非對應整個該些邏輯頁位址群組的其中之一時,則該快閃記憶體控制器從該些實體區塊中讀取對應該至少一邏輯存取位址所屬的邏輯頁位址群組的其他資料,並且將該寫入資料和該其他資料一起寫入至該快閃記憶體晶片中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098136907A TWI421870B (zh) | 2009-10-30 | 2009-10-30 | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
US12/641,051 US8352673B2 (en) | 2009-10-30 | 2009-12-17 | Data writing method for a flash memory, and flash memory controller and flash memory storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098136907A TWI421870B (zh) | 2009-10-30 | 2009-10-30 | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201115581A TW201115581A (en) | 2011-05-01 |
TWI421870B true TWI421870B (zh) | 2014-01-01 |
Family
ID=43926597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098136907A TWI421870B (zh) | 2009-10-30 | 2009-10-30 | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8352673B2 (zh) |
TW (1) | TWI421870B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842660B1 (en) | 2012-12-28 | 2017-12-12 | Virident Systems, Llc | System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory |
US9286002B1 (en) | 2012-12-28 | 2016-03-15 | Virident Systems Inc. | Dynamic restriping in nonvolatile memory systems |
US8996796B1 (en) | 2013-03-15 | 2015-03-31 | Virident Systems Inc. | Small block write operations in non-volatile memory systems |
US10073626B2 (en) | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
US9135164B2 (en) | 2013-03-15 | 2015-09-15 | Virident Systems Inc. | Synchronous mirroring in non-volatile memory systems |
JP2016018473A (ja) * | 2014-07-10 | 2016-02-01 | 株式会社東芝 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
US9658794B2 (en) * | 2015-05-08 | 2017-05-23 | Sonicwall Inc. | Two stage memory allocation using a cache |
TWI692690B (zh) * | 2017-12-05 | 2020-05-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI760697B (zh) * | 2020-02-19 | 2022-04-11 | 群聯電子股份有限公司 | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737742A (en) * | 1994-06-29 | 1998-04-07 | Hitachi, Ltd. | Memory system using flash memory and method of controlling the memory system |
US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
US20070245069A1 (en) * | 2004-09-10 | 2007-10-18 | Syuichi Kikuchi | Storage Device, Memory Management Method and Program |
US20080005530A1 (en) * | 2006-06-30 | 2008-01-03 | Takeshi Nakano | Semiconductor memory device and control method thereof |
US7328301B2 (en) * | 2003-04-07 | 2008-02-05 | Intel Corporation | Dynamically mapping block-alterable memories |
US20080270680A1 (en) * | 2005-11-17 | 2008-10-30 | Chee Keng Chang | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller |
US20090070520A1 (en) * | 2007-09-06 | 2009-03-12 | Nagamasa Mizushima | Semiconductor storage device and method of controlling semiconductor storage device |
CN101556555A (zh) * | 2008-04-08 | 2009-10-14 | 群联电子股份有限公司 | 用于闪存的区块管理方法、其控制器与储存系统 |
-
2009
- 2009-10-30 TW TW098136907A patent/TWI421870B/zh active
- 2009-12-17 US US12/641,051 patent/US8352673B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737742A (en) * | 1994-06-29 | 1998-04-07 | Hitachi, Ltd. | Memory system using flash memory and method of controlling the memory system |
US7328301B2 (en) * | 2003-04-07 | 2008-02-05 | Intel Corporation | Dynamically mapping block-alterable memories |
US20070245069A1 (en) * | 2004-09-10 | 2007-10-18 | Syuichi Kikuchi | Storage Device, Memory Management Method and Program |
US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
US20080270680A1 (en) * | 2005-11-17 | 2008-10-30 | Chee Keng Chang | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller |
US20080005530A1 (en) * | 2006-06-30 | 2008-01-03 | Takeshi Nakano | Semiconductor memory device and control method thereof |
US20090070520A1 (en) * | 2007-09-06 | 2009-03-12 | Nagamasa Mizushima | Semiconductor storage device and method of controlling semiconductor storage device |
CN101556555A (zh) * | 2008-04-08 | 2009-10-14 | 群联电子股份有限公司 | 用于闪存的区块管理方法、其控制器与储存系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201115581A (en) | 2011-05-01 |
US8352673B2 (en) | 2013-01-08 |
US20110107015A1 (en) | 2011-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI423024B (zh) | 用於快閃記憶體的資料儲存方法及其控制器與儲存系統 | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI421869B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
CN102129353A (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 |