TWI435329B - 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 - Google Patents
快閃記憶體管理方法、快閃記憶體控制器與儲存系統 Download PDFInfo
- Publication number
- TWI435329B TWI435329B TW98142976A TW98142976A TWI435329B TW I435329 B TWI435329 B TW I435329B TW 98142976 A TW98142976 A TW 98142976A TW 98142976 A TW98142976 A TW 98142976A TW I435329 B TWI435329 B TW I435329B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- physical
- logical
- data
- flash memory
- 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/1016—Performance improvement
-
- 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
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)中記錄與更新邏輯位址與資料區的實體區塊之間的映射關係來反映實體區塊的輪替。因此,主機系統僅需要針對所提供邏輯位址進行寫入而快閃記憶體儲存裝置的快閃記憶體控制器會依據邏輯位址-實體位址映射表在所映射的實體區塊內的實體頁上來讀取或寫入資料。
由於實體區塊是以輪替方式來儲存主機系統所寫入的資料,因此當備用區無足夠的實體區塊來儲存資料時,快閃記憶體儲存裝置必須整理資料區的實體區塊內的有效資料。例如,快閃記憶體儲存裝置的快閃記憶體控制器會將屬於同一個邏輯單元的有效資料搬移至同一個實體區塊,並且由此釋放儲存無效資料的實體區塊。然而,整理有效資料會造成執行主機寫入指令之時間的增加。因此,當快閃記憶體儲存裝置需頻繁地整理儲存於資料區的實體區塊中的有效資料時,快閃記憶體儲存裝置的效能會因此降低。
本發明提供一種快閃記憶體管理方法,其能夠有效地減少執行整理有效資料的次數,並且提升寫入資料的速度。
本發明提供一種快閃記憶體控制器,其所執行的快閃記憶體管理方法能夠有效地減少執行整理有效資料的次數,並且提升寫入資料的速度。
本發明提供一種快閃記憶體儲存系統,其所執行的快閃記憶體管理方法能夠有效地減少執行整理有效資料的次數,並且提升寫入資料的速度。
本發明範例實施例提出一種快閃記憶體管理方法,用於管理一快閃記憶體晶片的多個實體單元。本快閃記憶體管理方法包括將部分的實體單元至少分組為資料區與備用區。本快閃記憶體管理方法也包括配置多個邏輯單元,並且設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。本快閃記憶體管理方法還包括將每一邏輯單元所映射的實體單元的儲存狀態標記為空狀態。本快閃記憶體管理單元亦包括接收第一資料,將此第一資料寫入至實體單元之中的第一實體單元,並且將此第一實體單元的儲存狀態標記為母狀態,其中此第一資料是屬於邏輯單元之中的第一邏輯單元並且此第一邏輯單元映射第一實體單元。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括接收屬於第一邏輯單元的第二資料,將此第二資料寫入至實體單元之中的第二實體單元,並且將此第二實體單元的儲存狀態標記為子狀態,其中此第二實體單元映射邏輯單元之中的第二邏輯單元,並且此第二邏輯單元不同於上述第一邏輯單元。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括接收屬於第二邏輯單元的第三資料,並且將此第三資料寫入至實體單元之中的第三實體單元,其中此第三實體單元映射邏輯單元之中的第三邏輯單元。此外,本快閃記憶體管理方法還包括將此第三邏輯單元原始所映射的第三實體單元映射至上述第二邏輯單元,將此第二邏輯單元原始所映射的第二實體單元映射至第三邏輯單元,並且將此第二邏輯單元所映射之第三實體單元的儲存狀態標記為母狀態,其中此第三邏輯單元不同於上述第一邏輯單元與上述第二邏輯單元。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括利用一邏輯單元-實體單元映射表來記錄每一邏輯單元所映射的實體單元及每一邏輯單元所映射的實體單元的儲存狀態。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括將邏輯單元分組為多個區域(zone),其中每一該些邏輯單元具有多個邏輯位址且在每一該些區域中至少2個相鄰的邏輯位址彼此是不連續的。
在本發明之一範例實施例中,其中每一邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,其中上述第一資料屬於第一邏輯單元的邏輯位址之中的第一邏輯位址。同時,上述之將第一資料寫入至第一邏輯單元所映射之第一實體單元的步驟包括:將第一資料寫入至第一實體單元的實體位址之中的第一實體位址;以及記錄第一邏輯位址與第一實體位址之間的映射關係。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括建立至少一隨機表,並且在隨機表中記錄邏輯位址所映射的實體位址。
在本發明之一範例實施例中,上述之快閃記憶體管理方法更包括:當主機系統在邏輯位址的其中之一中儲存資料時,將此邏輯位址所映射之實體位址的儲存狀態標記為有效資料;以及當主機系統刪除儲存在邏輯位址的其中之一中的資料時,將此邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
在本發明之一範例實施例中,上述之邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,此些實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至快速實體位址的速度快於寫入資料至慢速實體位址的速度。同時上述之將第二資料寫入至實體單元之中的第二實體單元的步驟包括:僅利用第二實體單元的快速實體位址來寫入第二資料。
本發明範例實施例提出一種快閃記憶體管理方法,用於管理一快閃記憶體晶片的多個實體單元。本快閃記憶體管理方法包括將部分的實體單元至少分組為資料區與備用區,配置多個邏輯單元,以及設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。本快閃記憶體管理方法更包括接收一第一資料,將此第一資料寫入至邏輯單元之中的第二邏輯單元所映射的實體單元中,其中此第一資料屬於邏輯單元之中的第一邏輯單元並且第一邏輯單元不同於第二邏輯單元。
本發明範例實施例提出一種快閃記憶體控制器,用於管理一快閃記憶體晶片的多個實體單元。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,並且用以耦接至快閃記憶體晶片。主機介面單元耦接至微處理器單元,並且用以耦接至主機系統。記憶體管理單元耦接至微處理器單元。在此,記憶體管理單元將部分的實體單元至少分組為資料區與備用區。此外,記憶體管理單元配置多個邏輯單元,並且設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。另外,記憶體管理單元將每一邏輯單元所映射的實體單元的儲存狀態標記為一空狀態。並且,主機介面單元用以接收第一資料,其中此第一資料屬於該些邏輯單元之中的第一邏輯單元並且第一邏輯單元映射實體單元之中的第一實體單元。再者,記憶體管理單元將第一資料寫入至第一邏輯單元所映射之第一實體單元,並且將第一邏輯單元所映射之第一實體單元的儲存狀態標記為母狀態。
在本發明之一範例實施例中,上述之主機介面單元用以接收第二資料,其中此第二資料屬於上述第一邏輯單元。並且,上述之記憶體管理單元將此第二資料寫入至實體單元之中的第二實體單元並且將此第二實體單元的儲存狀態標記為子狀態,其中第二實體單元映射邏輯單元之中的第二邏輯單元,且第二邏輯單元不同於第一邏輯單元。
在本發明之一範例實施例中,上述之主機介面單元用以接收第三資料,其中此第三資料屬於第二邏輯單元。並且,上述之記憶體管理單元將此第三資料寫入至實體單元之中的第三實體單元,其中此第三實體單元映射邏輯單元之中的第三邏輯單元。另外,上述之記憶體管理單元將第三邏輯單元原始所映射的第三實體單元映射至第二邏輯單元,將第二邏輯單元原始所映射的第二實體單元映射至第三邏輯單元,並且將第二邏輯單元所映射之第三實體單元的儲存狀態標記為母狀態,其中第三邏輯單元不同於第一邏輯單元與第二邏輯單元。
在本發明之一範例實施例中,上述之記憶體管理單元利用一邏輯單元-實體單元映射表來記錄每一邏輯單元所映射的實體單元及每一該些邏輯單元所映射的實體單元的儲存狀態。
在本發明之一範例實施例中,上述之記憶體管理單元將邏輯單元分組為多個區域(zone),其中每一邏輯單元具有多個邏輯位址,並且在每一區域中至少2個相鄰的邏輯位址彼此是不連續的。
在本發明之一範例實施例中,其中每一邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,其中第一資料屬於第一邏輯單元的邏輯位址之中的第一邏輯位址。在此,上述之記憶體管理單元將第一資料寫入至第一實體單元的實體位址之中的第一實體位址,並且記錄第一邏輯位址與第一實體位址之間的映射關係。
在本發明之一範例實施例中,上述之記憶體管理單元建立至少一隨機表並且在隨機表中記錄邏輯位址所映射的實體位址。
在本發明之一範例實施例中,當主機系統在邏輯位址的其中之一中儲存資料時,上述之記憶體管理單元將此邏輯位址所映射之實體位址的儲存狀態標記為有效資料。此外,當主機系統刪除儲存在邏輯位址的其中之一中的資料時,上述之記憶體管理單元將此邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
在本發明之一範例實施例中,每一邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至快速實體位址的速度快於寫入資料至慢速實體位址的速度。在此,上述之記憶體管理單元僅利用第二實體單元的快速實體位址來寫入第二資料。
本發明範例實施例提出一種快閃記憶體控制器,用於管理一快閃記憶體晶片的多個實體單元。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,並且用以耦接至快閃記憶體晶片。主機介面單元耦接至微處理器單元,並且用以耦接至主機系統。記憶體管理單元耦接至微處理器單元。在此,記憶體管理單元將部分的實體單元至少分組為資料區與備用區,配置多個邏輯單元,並且設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。再者,主機介面單元用以接收第一資料,其中此第一資料屬於邏輯單元之中的第一邏輯單元。並且,記憶體管理單元將此第一資料寫入至邏輯單元之中的第二邏輯單元所映射的實體單元中,其中第一邏輯單元不同於第二邏輯單元。
本發明範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體單元。連接器用以耦接至主機系統。快閃記憶體控制器耦接至快閃記憶體晶片與連接器。快閃記憶體控制器將部分的實體單元至少分組為資料區與備用區。此外,快閃記憶體控制器配置多個邏輯單元,並且設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。另外,快閃記憶體控制器將每一邏輯單元所映射的實體單元的儲存狀態標記為一空狀態。再者,快閃記憶體控制器用以接收第一資料,其中第一資料屬於邏輯單元之中的第一邏輯單元並且第一邏輯單元映射實體單元之中的第一實體單元。並且,快閃記憶體控制器將此第一資料寫入至第一邏輯單元所映射之第一實體單元,並且將第一邏輯單元所映射之第一實體單元的儲存狀態標記為母狀態。
在本發明之一範例實施例中,上述之快閃記憶體控制器用以接收第二資料,其中此第二資料屬於上述第一邏輯單元。在此,上述之快閃記憶體控制器將此第二資料寫入至實體單元之中的第二實體單元並且將此第二實體單元的儲存狀態標記為子狀態,其中第二實體單元映射邏輯單元之中的第二邏輯單元,並且第二邏輯單元不同於第一邏輯單元。
在本發明之一範例實施例中,上述之快閃記憶體控制器用以接收第三資料,其中此第三資料屬於第二邏輯單元。在此,上述之快閃記憶體控制器將此第三資料寫入至實體單元之中的第三實體單元,其中此第三實體單元映射邏輯單元之中的第三邏輯單元。另外,上述之快閃記憶體控制器將第三邏輯單元原始所映射的第三實體單元映射至第二邏輯單元,將第二邏輯單元原始所映射的第二實體單元映射至第三邏輯單元,並且將第二邏輯單元所映射之第三實體單元的儲存狀態標記為母狀態,其中第三邏輯單元不同於第一邏輯單元與第二邏輯單元。
在本發明之一範例實施例中,上述之快閃記憶體控制器利用一邏輯單元-實體單元映射表來記錄每一邏輯單元所映射的實體單元及每一該些邏輯單元所映射的實體單元的儲存狀態。
在本發明之一範例實施例中,上述之快閃記憶體控制器將邏輯單元分組為多個區域,其中每一邏輯單元具有多個邏輯位址,且在每一區域中至少2個相鄰的邏輯位址彼此是不連續的。
在本發明之一範例實施例中,其中每一邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,其中第一資料屬於第一邏輯單元的邏輯位址之中的第一邏輯位址。在此,上述之快閃記憶體控制器將第一資料寫入至第一實體單元的實體位址之中的第一實體位址,並且記錄第一邏輯位址與第一實體位址之間的映射關係。
在本發明之一範例實施例中,上述之快閃記憶體控制器建立至少一隨機表並且在隨機表中記錄邏輯位址所映射的實體位址。
在本發明之一範例實施例中,當主機系統在邏輯位址的其中之一中儲存資料時,上述之快閃記憶體控制器將此邏輯位址所映射之實體位址的儲存狀態標記為有效資料。此外,當主機系統刪除儲存在邏輯位址的其中之一中的資料時,上述之快閃記憶體控制器將此邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
在本發明之一範例實施例中,每一邏輯單元具有多個邏輯位址且每一實體單元具有多個實體位址,實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至快速實體位址的速度快於寫入資料至慢速實體位址的速度。在此,上述之快閃記憶體控制器僅利用第二實體單元的快速實體位址來寫入第二資料。
本發明範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體單元。連接器用以耦接至主機系統。快閃記憶體控制器耦接至快閃記憶體晶片與連接器。在此,快閃記憶體控制器將部分的實體單元至少分組為資料區與備用區,配置多個邏輯單元,並且設定邏輯單元與資料區的實體單元之間的映射關係,其中每一邏輯單元映射資料區的實體單元的其中之一。再者,快閃記憶體控制器用以接收第一資料,其中此第一資料屬於邏輯單元之中的第一邏輯單元。並且,快閃記憶體控制器將此第一資料寫入至邏輯單元之中的第二邏輯單元所映射的實體單元中,其中第一邏輯單元不同於第二邏輯單元。
基於上述,本發明範例實施例的快閃記憶體管理方法及其控制器與儲存系統能夠有效地減少整理有效資料的次數,進而縮短執行主機寫入指令所需的時間。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實,並配合所附圖式作詳細說明如下。
一般而言,快閃記憶體儲存裝置(亦稱,快閃記憶體儲存系統)包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖2B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中快閃記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的處理可將資料寫入至快閃記憶體儲存裝置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)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的快閃記憶體儲存裝置的概要方塊圖。
請參照圖2,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102是耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102為序列先進附件(Serial Advanced Technology Attachment,SATA)連接器。然而,必須瞭解的是本發明不限於此,連接器102亦可以是通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、安全數位(secure digital,SD)介面連接器、記憶棒(Memory Stick,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所能接受的格式。
此外,在本發明一範例實施例中,快閃記憶體控制器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會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
請再參照圖2,快閃記憶體晶片106是耦接至快閃記憶體控制器104並且用以儲存資料。快閃記憶體晶片106具有多個實體單元。在本範例實施例中,每一實體單元是由1個實體區塊所組成。然而,本發明不限於此,在本發明另一範例實施例中,每一實體單元亦可由多個實體區塊所組成。在快閃記憶體的設計中,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有數個實體位址。在本範例實施例中,實體位址為實體頁面,但本發明不限於此。實體頁面為程式化的最小單元。換言之,實體頁面為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,快閃記憶體晶片106為多層記憶胞(Multi LevelCell,MLC)NAND快閃記憶體晶片。然而,本發明不限於此,快閃記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片。
圖3是根據本發明第一範例實施例所繪示之管理快閃記憶體晶片的示意圖。
必須瞭解的是,在此描述快閃記憶體之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。
請參照圖3,記憶體管理單元204會將快閃記憶體晶片106的實體單元邏輯地分組為系統區(system area)302、儲存區(storage area)304與取代區(replacement area)306。
邏輯上屬於系統區302的實體單元302-(0)~302-(S)是用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號等資訊。
邏輯上屬於儲存區304的實體單元304-(0)~304-(D)是用以儲存主機系統1000所寫入的資料。也就是說,快閃記憶體儲存裝置100會使用分組為儲存區304的實體單元來實際地儲存主機系統1000所寫入的資料。
邏輯上屬於取代區306中的實體單元306-(0)~306-(R)是替代實體單元。例如,快閃記憶體晶片106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當系統區302與儲存區304中之實體單元損毀時,預留於取代區306中的實體單元可用以取代損壞的實體單元(即,壞實體區塊(bad block))。因此,倘若取代區306中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理模組204會從取代區306中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區306中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告為寫入保護(write protect)狀態,而無法再寫入資料。
在此,S、D與R為正整數,其表示系統區302、儲存區304與取代區306中實體單元的編號與數量。特別是,系統區302、儲存區304與取代區306之實體單元的數量會依據不同的快閃記憶體規格而有所不同。此外,必須瞭解的是,在快閃記憶體儲存裝置100的運作中,實體單元關聯至系統區302、儲存區304與取代區306的分組關係會動態地變動。例如,當儲存區中的實體單元損壞時而被取代區的實體單元取代時,則原本取代區的實體單元會被關聯至儲存區。
圖4是根據本發明第一範例實施例所繪示之管理儲存區的實體單元的示意圖。
請參照圖4,記憶體管理單元204將儲存區304的實體單元304-(0)~304-(D)分組為區域402與區域412來分別地管理。具體來說,在資料寫入與讀取的運作過程中,記憶體管理單元204將每一區域視為獨立的運作區域來管理實體單元。在此,將實體單元分組為多個區域來各別地管理可降低管理快閃記憶體晶片106所需的資源,例如緩衝記憶體的大小。在本範例實施例中,記憶體管理單元204是將儲存區304的實體單元304-(0)~304-(D)分組為2個區域來管理,然而,必須瞭解的是,本發明不限於此。在本發明另一範例實施例,記憶體管理單元204亦可將儲存區304中的所有實體單元視為1個區域來管理或將儲存區304中的實體單元分組為更多區域來管理。
如圖4所示,記憶體管理單元204將每一區域中的實體單元分組為資料區與備用區。例如,區域402中的實體單元304-(0)~304-(Z)被分組為關聯為資料區404的實體單元304-(0)~304-(U)與關聯為備用區406的實體單元304-(U+1)~304-(Z),並且區域412中的實體單元304-(Z+1)~304-(D)被分組為關聯為資料區414的實體單元304-(Z+1)~304-(K)與關聯為備用區416的實體單元304-(K+1)~304-(D)。
資料區的實體單元是用以儲存主機系統1000所儲存之資料。而備用區的實體單元是用以輪替資料區中的實體單元。因此,在備用區中的實體單元為空或可使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區與備用區的實體單元是以輪替方式來儲存主機系統1000所寫入至快閃記憶體儲存裝置100的資料。例如,當主機系統1000欲將資料寫入至快閃記憶體儲存裝置100時,記憶體管理單元204會從備用區中提取實體單元來寫入資料,並且已寫入資料的實體單元會被關聯為資料區。此外,當關聯為資料區的實體單元被執行抹除運作後已抹除的實體單元會被關聯為備用區。
由於記憶體管理單元204是輪替地使用儲存區304的實體單元來儲存主機系統1000所寫入之資料,因此,記憶體管理單元204在每一區域中配置邏輯單元來變動地映射實體單元,以使得主機系統1000能夠順利地存取資料。
例如,記憶體管理單元204配置邏輯單元450-(0)~450-(M)來映射關聯至區域402的資料區404的實體單元,並且配置邏輯單元450-(M+1)~450-(N)來映射關聯至區域412的資料區414的實體單元。
在本範例實施例中,邏輯單元的大小是相同於實體單元的大小,並且每一邏輯單元具有多個邏輯位址以對應實體單元的實體位址(即,實體頁面)。也就是說,邏輯位址的大小是相同於實體位址的大小。如上所述,快閃記憶體的程式化是以實體位址為單位,因此,記憶體管理單元204會以邏輯位址為單位將主機系統1000所寫入的資料寫入至快閃記憶體晶片106中。
值得一提的是,主機系統1000的作業系統是以邏輯存取位址為單位來存取資料,例如,邏輯存取位址為扇區(sector)、叢集(cluster)等。然而,在快閃記憶體儲存裝置100中,資料是以實體位址為單位被程式化至快閃記憶體晶片106中。因此,記憶體管理單元204會提供一轉換機制來將主機系統100所存取的邏輯存取位址轉換成對應的邏輯位址與邏輯單元。例如,在本範例實施例中,記憶體管理單元204會將4個邏輯存取位址對應至1個邏輯位址。例如,記憶體管理單元204會使用一運算規則來設定每一邏輯存取位址所對應的邏輯位址以及所對應的邏輯單元。也就是說,1個邏輯位址的容量可用來儲存對應4個邏輯存取位址的資料。必須瞭解的是,本發明不限於此,在本發明另一範例實施例中,1個邏輯位址亦可對應8個邏輯存取位址或是16個邏輯存取位址。
在本發明範例實施例中,記憶體管理單元204會為每一區域建立與維護邏輯單元-實體單元映射表(logical unit-physical unit mapping table)來記錄邏輯單元與實體單元之間的映射關係。
特別是,在本發明範例實施例中,記憶體管理單元204會在邏輯單元-實體單元映射表中標記被映射至邏輯單元之實體單元的儲存狀態。具體來說,當快閃記憶體儲存裝置100被格式化時,記憶體管理單元204會將每一邏輯單元映射至一個實體單元,並且將此些實體單元的儲存狀態標記為"空狀態"。也就是說,在快閃記憶體儲存裝置100被格式化後,雖然每一邏輯單元已映射至一個實體單元,但此些實體單元實際上未儲存任何資料。
以下將以數個範例來描述記憶體管理單元204管理快閃記憶體晶片106的機制。必須瞭解的是,雖然以下僅以區域402的資料區404與備用區406的實體單元來進行描述,但此些機制亦適用於區域412的資料區414與備用區416的實體單元。
圖5是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的範例示意圖。
請參照圖5,邏輯單元-實體單元映射表502是用以記錄區域402的資料區404的實體單元與邏輯單元450-(0)~450-(M)的映射關係。邏輯單元-實體單元映射表502包括邏輯單元欄位502a、實體單元欄位502b與儲存狀態欄位502c。實體單元欄位502b是用以記錄邏輯單元欄位502a中之邏輯單位所映射之實體單元並且儲存狀態欄位502c是用以記錄實體單元欄位502b中的實體單元的儲存狀態。
如上所述,當快閃記憶體儲存裝置100被格式化時,記憶體管理單元204會將邏輯單元450-(0)~450-(M)分別地映射資料區404中的其中一個實體單元,並且將此些實體單元的儲存狀態標記為"空"狀態。
圖6是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
倘若在圖5所示的狀態下,主機系統1000在對應邏輯單元450-(0)的邏輯位址的邏輯存取位址中儲存資料時,記憶體管理單元204會依據圖5所示的邏輯單元-實體單元映射表502獲知邏輯單元450-(0)目前是映射至實體單元304-(0)且實體單元304-(0)的儲存狀態為"空"狀態。基此,記憶體管理單元204會根據實體位址的排列順序將資料寫入至實體單元304-(0)中,並且在邏輯單元-實體單元映射表502中將實體單元304-(0)的儲存狀態更改為"母"狀態(如圖6所示)。在此,實體單元被標記為"母"狀態是表示此實體單元所儲存的資料是屬於此實體單元所映射之邏輯單元。
圖7是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
倘若在圖6所示的狀態下,主機系統1000在對應邏輯單元450-(0)的邏輯位址的邏輯存取位址中儲存資料時,記憶體管理單元204會依據圖6所示的邏輯單元-實體單元映射表502獲知邏輯單元450-(0)目前是映射至實體單元304-(0)且實體單元304-(0)的儲存狀態為"母"狀態。基此,記憶體管理單元204會判斷實體單元304-(0)是否已被寫滿,倘若實體單元304-(0)未被寫滿時,記憶體管理單元204會接著判斷實體單元304-(0)的剩餘儲存空間(即,未儲存資料的空間)是否足夠寫入主機系統1000所寫入之資料。倘若實體單元304-(0)的剩餘的可儲存空間足夠儲存主機系統1000所寫入之資料時,則記憶體管理單元204會根據實體位址的排列順序將資料寫入至實體單元304-(0)。
倘若實體單元304-(0)已被寫滿或者實體單元304-(0)的剩餘的可儲存空間不足夠寫入主機系統1000所寫入之資料時,則記憶體管理單元204會依據邏輯單元-實體單元映射表502獲知在資料區402中仍有處於"空"狀態的實體單元304-(1)並且根據實體位址的排列順序將資料寫入至實體單元304-(1)中。特別是,記憶體管理單元204會在邏輯單元-實體單元映射表502中將實體單元304-(1)的儲存狀態更改為"子"狀態(如圖7所示)。在此,實體單元被標記為"子"狀態是表示此實體單元所儲存的資料是不屬於此實體單元所映射之邏輯單元。
圖8是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
倘若在圖7所示的狀態下,主機系統1000在對應邏輯單元450-(1)的邏輯位址的邏輯存取位址中儲存資料時,記憶體管理單元204會依據圖7所示的邏輯單元-實體單元映射表502獲知邏輯單元450-(1)目前是映射至實體單元304-(1)且實體單元304-(1)的儲存狀態為"子"狀態。基此,記憶體管理單元204會依據邏輯單元-實體單元映射表502獲知在資料區402中仍有處於"空"狀態的實體單元304-(2)並且將資料依序地寫入至實體單元304-(2)的實體位址中。特別是,記憶體管理單元204會在邏輯單元-實體單元映射表502中將邏輯單元450-(1)映射至實體單元304-(2)並且將實體單元304-(2)的儲存狀態更改為"母"狀態,同時將邏輯單元450-(2)映射至實體單元304-(1),其中實體單元304-(1)的儲存狀態仍維持為"子"狀態(如圖8所示)。
此外,在本範例實施例中,記憶體管理單元204會為每一邏輯單元建立一隨機表以記錄映射至每一邏輯位址的實體位址。如上所述,當主機系統1000於對應邏輯單元的邏輯位址的邏輯存取位址中寫入資料時,記憶體管理單元204會依序地在所映射的實體單元的實體位址中寫入此資料,或者依序地在映射至其他邏輯單元的實體單元的實體位址中寫入此資料。因此,在一個邏輯單元的邏輯位址未必會依其排列順序映射至同一個實體單元的實體位址的情況下,記憶體管理單元204會藉由維護隨機表來記錄每一邏輯位址所映射的實體位址。也就是說,當主機系統1000欲讀取儲存於某一邏輯位址的資料時,記憶體管理單元204會依據隨機表來從對應的實體位址中讀取此資料。
圖9是根據本發明第一範例實施例所繪示之寫入資料的範例示意圖,並且圖10是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的範例示意圖。為了方便說明,在以下範例中假設每一邏輯單元具有4個邏輯位址且每一實體單元具有4個實體位址。然而,必須瞭解的是,在實際的快閃記憶體儲存系統中,每一邏輯單元之邏輯位址的數目以及每一實體單元之實體位址的數目可以是64、128、256或其他適合的數值。
請參照圖9,當在所有實體單元都為"空"狀態的狀態下主機系統1000將資料儲存至屬於邏輯單元450-(0)的第2個邏輯位址時,記憶體管理單元204會根據實體位址的排列順序將屬於邏輯單元450-(0)的第2個邏輯位址的資料寫入至邏輯單元450-(0)所映射之實體單元304-(0)的第1個實體位址。
請參照圖10,此時,在邏輯單元450-(0)的隨機表中邏輯單元450-(0)的第2個邏輯位址是映射至實體單元304-(0)的第1個實體位址。
圖11是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖,並且圖12是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
請參照圖11,當在圖9所示的狀態下主機系統1000將資料儲存至屬於邏輯單元450-(0)的第1個邏輯位址與第3個邏輯位址時,記憶體管理單元204會根據實體位址的排列順序將屬於邏輯單元450-(0)的第1個邏輯位址的資料寫入至邏輯單元450-(0)所映射之實體單元304-(0)的第2個實體位址,並且將屬於邏輯單元450-(0)的第3個邏輯位址的資料寫入至邏輯單元450-(0)所映射之實體單元304-(0)的第3個實體位址。
請參照圖12,此時,在邏輯單元450-(0)的隨機表中邏輯單元450-(0)的第2個邏輯位址是映射至實體單元304-(0)的第1個實體位址;邏輯單元450-(0)的第1個邏輯位址是映射至實體單元304-(0)的第2個實體位址;並且邏輯單元450-(0)的第3個邏輯位址是映射至實體單元304-(0)的第3個實體位址。
圖13是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖,並且圖14是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
請參照圖13,當在圖11所示的狀態下主機系統1000儲存新資料至屬於邏輯單元450-(0)的第1個邏輯位址時,記憶體管理單元204會根據實體位址的排列順序將屬於邏輯單元450-(0)的第1個邏輯位址的新資料寫入至邏輯單元450-(0)所映射之實體單元304-(0)的第4個實體位址。
請參照圖14,此時,在邏輯單元450-(0)的隨機表中邏輯單元450-(0)的第2個邏輯位址是映射至實體單元304-(0)的第1個實體位址;邏輯單元450-(0)的第3個邏輯位址是映射至實體單元304-(0)的第3個實體位址;並且邏輯單元450-(0)的第1個邏輯位址是映射至實體單元304-(0)的第4個實體位址。
圖15是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖,並且圖16是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
請參照圖15,當在圖13的狀態下主機系統1000儲存新資料至屬於邏輯單元450-(0)的第4個邏輯位址時,由於實體單元304-(0)已被寫滿且已映射至邏輯單元450-(1)的實體單元304-(1)為"空"狀態,因此記憶體管理單元204會根據實體位址的排列順序將新資料寫入至實體單元304-(1)的第1個實體位址中。
請參照圖16,此時,在邏輯單元450-(0)的隨機表中邏輯單元450-(0)的第2個邏輯位址是映射至實體單元304-(0)的第1個實體位址;邏輯單元450-(0)的第3個邏輯位址是映射至實體單元304-(0)的第3個實體位址;邏輯單元450-(0)的第1個邏輯位址是映射至實體單元304-(0)的第4個實體位址;並且邏輯單元450-(0)的第4個邏輯位址是映射至實體單元304-(1)的第1個實體位址。
基於上述,當主機系統1000欲對某一區域內的某一邏輯單元的邏輯位址存取資料時,記憶體管理單元204會依據對應的邏輯單元-實體單元映射表與隨機表於所映射之實體位址中存取資料。
在本發明一範例實施例中,記憶體管理單元204會記錄每一實體位址的儲存狀態。具體來說,如上所述,由於快閃記憶體晶片106的抹除運作是以實體單元(或實體區塊)為單位,因此記憶體管理單元204會記錄每一實體位址的儲存狀態以確認每一實體單元中是否仍存有有效資料。
例如,如圖11所示,在實體單元304-(0)的第2個實體位址被用以儲存屬於邏輯單元450-(0)的第1個邏輯位址的資料時,實體單元304-(0)的第2個實體位址的儲存狀態會被標記為有效資料。之後,如圖13所示,主機系統1000將新資料儲存至邏輯單元450-(0)的第1個邏輯位址且實體單元304-(0)的第4個實體位址被用以寫入此新資料時,實體單元304-(0)的第4個實體位址的儲存狀態會被標記為有效資料,且同時實體單元304-(0)的第2個實體位址的儲存狀態會被標記為無效資料。
特別是,在本範例實施例中,當主機系統1000刪除儲存在邏輯位址中的資料時,記憶體管理單元204會將此邏輯位址所映射之實體位址的儲存狀態標記為無效資料。例如,記憶體管理單元204是透過主機系統1000的微軟視窗作業系統7所傳送的整理指令(trim command)來獲知哪些邏輯位址上的資料已被主機系統1000刪除。
值得一提的是,在本範例實施例中,當主機系統1000欲儲存新資料至一邏輯單元,而此邏輯單元所映射的實體單元已被寫滿且資料區中已無儲存狀態為"空"狀態的實體單元時,記憶體管理單元204會從備用區中提取實體單元並且將此新資料寫入至所提取的實體單元中。特別是,此時,記憶體管理單元204會執行有效資料整理程序以釋放儲存無效資料的實體單元。
具體來說,當記憶體管理單元204針對一邏輯單元執行有效資整理程序時,此邏輯單元的有效資料會都被搬移至從備用區中提取的實體單元,並且原本用於儲存此邏輯單元之資料的實體單元會被執行抹除運作。特別是,在有效資料整理程序中,被抹除的實體單元之中原先被標記為"子"狀態的實體單元會被重新標記為"空"狀態,並且原先被標記為"母"狀態的實體單元會被關聯至備用區。此外,此邏輯單元會重新被映射至所提取之實體單元且此所提取之實體單元會被關聯至資料區且其儲存狀態會被標記為"母"狀態。
圖17是根據本發明第一範例實施例所繪示的快閃記憶體管理方法的流程圖。
請參照圖17,當快閃記憶體儲存裝置100被格式化或初始化時,首先,在步驟S1701中記憶體管理單元204會將快閃記憶體儲存裝置100的快閃記憶體晶片106的實體單元分組為多個區域,並且在步驟S1703中記憶體管理單元204會將每一區域的實體單元至少分組為資料區與備用區。
然後,在步驟S1705中記憶體管理單元204會為每一區域配置多個邏輯單元,並且設定每一區域的邏輯單元與每一區域的資料區的實體單元之間的映射關係。最後,在步驟S1707中記憶體管理單元204將每一邏輯單元所映射的實體單元的儲存狀態標記為"空"狀態。
在圖17所示的步驟中,將實體區塊劃分為多個區域以及配置邏輯單元的方式已詳細描述如上,在此不重複說明。
圖18是根據本發明第一範例實施例所繪示的快閃記憶體管理方法的另一流程圖,其係快閃記憶體儲存裝置100在依據圖17的步驟被初始化後執行主機寫入指令的步驟。
請參照圖18,當快閃記憶體裝置100經由連接器102從主機系統1000接收到主機寫入指令與對應此主機寫入指令的資料時,首先,在步驟S1801中,記憶體管理單元204會判斷對應此主機寫入指令的邏輯單元所映射之實體單元是否為"空"狀態。
倘若在步驟S1801中判斷對應此主機寫入指令的邏輯單元所映射之實體單元為"空"狀態時,則在步驟S1803中記憶體管理單元204會將資料寫入至對應此主機寫入指令的邏輯單元所映射之實體單元中,並且在步驟S1805中記憶體管理單元204會將對應此主機寫入指令的邏輯單元所映射之實體單元的儲存狀態更改為"母"狀態。
倘若在步驟S1801中判斷對應此主機寫入指令的邏輯單元所映射之實體單元不為"空"狀態時,則在步驟S1807中記憶體管理單元204會判斷對應此主機寫入指令的邏輯單元所映射之實體單元是否為"母"狀態。
倘若在步驟S1807中判斷對應此主機寫入指令的邏輯單元所映射之實體單元為"母"狀態時,則在步驟S1809中記憶體管理單元204會判斷對應此主機寫入指令的邏輯單元所映射之實體單元是否已被寫滿。
倘若在步驟S1809中判斷對應此主機寫入指令的邏輯單元所映射之實體單元已被寫滿時,則在步驟S1811中記憶體管理單元204會判斷資料區(例如,資料區404)中的實體單元之中是否仍有儲存狀態為"空"狀態的實體單元。倘若資料區中的實體單元之中仍有儲存狀態為"空"狀態的實體單元時,則在步驟S1813中記憶體管理單元204會利用儲存狀態為"空"狀態的實體單元來寫入此資料,並且在步驟S1815中記憶體管理單元204會將寫入此資料的實體單元的儲存狀態更改為"子"狀態。
倘若在步驟S1811中判斷資料區中的實體單元之中已無儲存狀態為"空"狀態的實體單元時,則在步驟S1817中記憶體管理單元204會從備用區(例如,備用區406)提取一個實體單元,並且將資料寫入至所提取的實體單元。之後,在步驟S1819中記憶體管理單元204會執行有效資料整理程序。
倘若在步驟S1809中判斷對應此主機寫入指令的邏輯單元所映射之實體單元未被寫滿時,則在步驟S1821中記憶體管理單元204會判斷所映射之實體單元是否有足夠的剩餘空間(即,未儲存資料的空間)來儲存對應此主機寫入指令的資料。倘若所映射之實體單元有足夠的可儲存空間來儲存對應此主機寫入指令的資料時,則在步驟S1823中記憶體管理單元204會將資料寫入至對應此主機寫入指令的邏輯單元所映射之實體單元中。倘若所映射之實體單元無足夠的可儲存空間來儲存對應此主機寫入指令的資料時,則步驟S1811會被執行。
倘若在步驟S1807中判斷對應此主機寫入指令的邏輯單元所映射之實體單元不為"母"狀態時,則在步驟S1825中記憶體管理單元204會判斷資料區(例如,資料區404)中的實體單元之中是否仍有儲存狀態為"空"狀態的實體單元。倘若資料區中的實體單元之中仍有儲存狀態為"空"狀態的實體單元,則在步驟S1827中記憶體管理單元204會利用儲存狀態為"空"狀態的實體單元來寫入此資料,並且在步驟S1829中記憶體管理單元204會將寫入此資料的實體單元的儲存狀態更改為"母"狀態並且更新邏輯單元與實體單元的映射關係(如圖8所示)。
倘若在步驟S1825中判斷資料區中的實體單元之中已無儲存狀態為"空"狀態的實體單元時,則在步驟S1831中記憶體管理單元204會從備用區(例如,備用區406)提取一個實體單元,並且將資料寫入至所提取的實體單元。之後,在步驟S1833中記憶體管理單元204會執行有效資料整理程序。
基於上述,在本範例實施例中,當資料區中仍有未儲存資料的實體單元時,記憶體管理單元204會利用此些實體單元來儲存主機系統1000所寫入的資料。基此,可有效地減少執行有效資料整理程序的次數,進而提升快閃記憶體儲存裝置的效能。
本發明第二範例實施例的快閃記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的快閃記憶體儲存裝置與主機系統。以下將配合第一範例實施例的圖式並且僅針對差異部分來描述第二範例實施例。
在本範例實施例中,快閃記憶體晶片106為MLC NAND快閃記憶體晶片。MLC NAND快閃記憶體晶片之實體單元的程式化可分為多階段。例如,以2層記憶胞為例,實體單元的程式化可分為2階段。第一階段是下實體頁(lower page)的寫入部分,其物理特性類似於SLC NAND快閃記憶體晶片。而第二階段是上實體頁(upper page)的寫入部分,其中第二階段必須在完成第一階段之後才會被執行。值得一提的是,寫入資料至下實體頁的速度會快於寫入資料至上實體頁的速度。因此,每一實體單元的實體頁可區分為慢速實體頁(即,上實體頁)與快速實體頁(即,下實體頁)。
類似地,在8層記憶胞或16層記憶胞的案例中,記憶胞會包括更多個實體頁並且會以更多階段來寫入。在此,將寫入速度最快的實體頁稱為快速實體頁,其他寫入速度較慢的實體頁統稱為慢速實體頁。例如,慢速實體頁包括具有不同寫入速度的多個實體頁。此外,在其他實施例中,慢速實體頁也可為寫入速度最慢的實體頁,或者寫入速度最慢與部份寫入速度快於寫入速度最慢實體頁的實體頁。例如,在4層記憶胞中,快速實體頁為寫入速度最快與寫入速度次快的實體頁,慢速實體頁則為寫入速度最慢與寫入速度次慢的實體頁。
在本範例實施例中,當主機系統1000欲儲存資料至邏輯單元(例如,邏輯單元450-(0)),並且記憶體管理單元204利用非此邏輯單元所映射的實體單元來寫入資料(如圖7的範例所示)時,記憶體管理單元204僅會利用快速實體頁(即,快速實體位址)來寫入資料。
圖19是根據本發明第二範例實施例所繪示之寫入資料的範例示意圖,並且圖20是根據本發明第二範例實施例所繪示的邏輯位址與實體位址之間的映射關係的範例示意圖。
請參照圖19,當在圖13的狀態下主機系統1000欲儲存新資料至屬於邏輯單元450-(0)的第4個邏輯位址時,由於實體單元304-(0)已被寫滿且已映射至邏輯單元450-(1)的實體單元304-(1)為"空"狀態,因此記憶體管理單元204會根據實體位址的排列順序將新資料寫入至實體單元304-(1)中。特別是,假設在實體單元304-(1)中第1與3實體位址為慢速實體位址,並且第2與4實體位址為快速實體位址的例子中,記憶體管理單元204會將新資料寫入至實體單元304-(1)的第2個實體位址中。
請參照圖20,此時,在邏輯單元450-(0)的隨機表中邏輯單元450-(0)的第2個邏輯位址是映射至實體單元304-(1)的第4個實體位址;邏輯單元450-(0)的第3個邏輯位址是映射至實體單元304-(0)的第3個實體位址;邏輯單元450-(0)的第1個邏輯位址是映射至實體單元304-(0)的第4個實體位址;並且邏輯單元450-(0)的第4個邏輯位址是映射至實體單元304-(1)的第2個實體位址。
類似地,倘若後續主機系統1000儲存新資料至屬於邏輯單元450-(0)的第2個邏輯位址時,記憶體管理單元204會根據實體位址的排列順序將新資料寫入至實體單元304-(1)的第4個實體位址中。也就是說,記憶體管理單元204僅使用實體單元304-(1)的快速實體位址來寫入資料。
綜合上述,在本範例實施例中,當記憶體管理單元204利用非映射至邏輯單元的實體單元來寫入資料時,記憶體管理單元204僅使用快速實體位址來寫入資料。基此,可有效地提升寫入資料的速度。
本發明第三範例實施例的快閃記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的快閃記憶體儲存裝置與主機系統。以下將配合第一範例實施例的圖式並且僅針對差異部分來描述第三範例實施例。
如上所述,記憶體管理單元204將儲存區304的實體單元304-(0)~304-(D)分組為區域402與區域412來分別地管理。如圖4所示,在第一範例實施例中,記憶體管理單元204是依據實體單元304-(0)~304-(D)的排列順序以一連續方式將實體單元304-(0)~304-(D)分組為包含實體單元304-(0)~304-(Z)的區域402以及包含實體單元304-(Z+1)~304-(D)的區域412。在以連續方式分組實體單元的例子中,倘若主機系統1000在連續的邏輯單元中寫入大量資料時,同一個區域的資料區的實體單元可能很快就會被寫滿,而需要執行有效資料整理程序。
然而,在本範例實施例中,記憶體管理單元204是依據實體單元的排列順序以一交錯方式將實體單元分組為多個區域。
圖21是根據本發明第三範例實施例所繪示之管理儲存區的實體單元的示意圖。
請參照圖21,記憶體管理單元204以交錯方式將實體單元304-(0)~304-(D)分組至區域402與區域412中,其中編號為偶數的實體單元(例如,實體單元304-(0)、304-(2)...)被分組至區域402,且編號為奇數的實體單元(例如,實體單元304-(1)、304-(3)...)被分組至區域412。並且,記憶體管理單元204會將所配置的邏輯單元以交錯方式來映射至實體單元。例如,編號為偶數的邏輯單元(例如,邏輯單元450-(0)、邏輯單元450-(2)...)是映射區域402的實體單元,並且編號為奇數的邏輯單元(例如,邏輯單元450-(1)、邏輯單元450-(3)...)是映射區域412的實體單元。
在本範例實施例中,當主機系統1000於多個連續的邏輯單元上儲存大量資料時,記憶體管理單元204會在不同的區域的實體單元中分散地寫入此資料。因此,在本範例實施例中,資料會被分散地儲存於多個區域,由此更減少執行有效資料整理程序的次數,進而提升快閃記憶體儲存裝置的效能。
綜上所述,根據本發明範例實施例的快閃記憶體管理方法能夠有效地減少整理有效資料的次數,提升寫入資料的速度,並且提升快閃記憶體儲存裝置的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧儲存區
306‧‧‧取代區
402、412‧‧‧區域
404、414‧‧‧資料區
406、416‧‧‧備用區
450-(0)~450-(N)‧‧‧邏輯單元
302-(0)~302-(S)、304-(0)~304-(D)、306-(0)~306-(R)‧‧‧實體單元
502‧‧‧邏輯單元-實體單元映射表
502a‧‧‧邏輯單元欄位
502b‧‧‧實體單元欄位
502c‧‧‧儲存狀態欄位
S1701、S1703、S1705、S1707‧‧‧快閃記憶體管理方法的步驟
S1801、S1803、S1805、S1807、S1809、S1811、S1813、S1815、S1817、S1819、S1821、S1823、S1825、S1827、S1829、S1831、S1833‧‧‧快閃記憶體管理方法的步驟
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的快閃記憶體儲存裝置的概要方塊圖。
圖3是根據本發明第一範例實施例所繪示之管理快閃記憶體晶片的示意圖。
圖4是根據本發明第一範例實施例所繪示之管理儲存區的實體單元的示意圖。
圖5是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的範例示意圖。
圖6是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
圖7是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
圖8是根據本發明第一範例實施例所繪示的邏輯單元-實體單元映射表的另一範例示意圖。
圖9是根據本發明第一範例實施例所繪示之寫入資料的範例示意圖。
圖10是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的範例示意圖。
圖11是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖。
圖12是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
圖13是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖。
圖14是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
圖15是根據本發明第一範例實施例所繪示之寫入資料的另一範例示意圖。
圖16是根據本發明第一範例實施例所繪示的邏輯位址與實體位址之間的映射關係的另一範例示意圖。
圖17是根據本發明第一範例實施例所繪示的快閃記憶體管理方法的流程圖。
圖18是根據本發明第一範例實施例所繪示的快閃記憶體管理方法的另一流程圖。
圖19是根據本發明第二範例實施例所繪示之寫入資料的範例示意圖。
圖20是根據本發明第二範例實施例所繪示的邏輯位址與實體位址之間的映射關係的範例示意圖。
圖21是根據本發明第三範例實施例所繪示之管理儲存區的實體單元的示意圖。
S1801、S1803、S1805、S1807、S1809、S1811、S1813、S1815、S1817、S1819、S1821、S1823、S1825、S1827、S1829、S1831、S1833...快閃記憶體管理方法的步驟
Claims (24)
- 一種快閃記憶體管理方法,用於管理一快閃記憶體晶片的多個實體單元,該快閃記憶體管理方法包括:將部份該些實體單元至少分組為一資料區與一備用區;配置多個邏輯單元;設定該些邏輯單元與該資料區的多個實體單元之間的映射關係,其中每一該些邏輯單元映射該資料區的該些實體單元的其中之一且該備用區的每一實體單元未映射該些邏輯單元;將每一該些邏輯單元所映射的實體單元的儲存狀態標記為一空狀態;接收一第一資料,其中該第一資料屬於該些邏輯單元之中的一第一邏輯單元;將該第一資料寫入至該資料區的該些實體單元之中的一第一實體單元,其中該第一邏輯單元映射該資料區的該第一實體單元;將該第一邏輯單元所映射之該第一實體單元的儲存狀態標記為一母狀態,接收一第二資料,其中該第二資料屬於該第一邏輯單元;將該第二資料寫入至該資料區的該些實體單元之中的一第二實體單元,其中該資料區的該第二實體單元映射 該些邏輯單元之中的一第二邏輯單元;以及將該第二實體單元的儲存狀態標記為一子狀態,其中該第二邏輯單元不同於該第一邏輯單元。
- 如申請專利範圍第1項所述之快閃記憶體管理方法,更包括:接收一第三資料,其中該第三資料屬於該第二邏輯單元;將該第三資料寫入至該資料區的該些實體單元之中的一第三實體單元,其中該資料區的該第三實體單元映射該些邏輯單元之中的一第三邏輯單元;將該第三邏輯單元原始所映射的第三實體單元映射至該第二邏輯單元;將該第二邏輯單元原始所映射的第二實體單元映射至該第三邏輯單元;以及將該第二邏輯單元所映射之第三實體單元的儲存狀態標記為該母狀態,其中該第三邏輯單元不同於該第一邏輯單元與該第二邏輯單元。
- 如申請專利範圍第1項所述之快閃記憶體管理方法,更包括利用一邏輯單元-實體單元映射表來記錄每一該些邏輯單元所映射的實體單元及每一該些邏輯單元所映射的實體單元的儲存狀態。
- 如申請專利範圍第1項所述之快閃記憶體管理方法,更包括將該些邏輯單元分組為多個區域(zone); 其中每一該些邏輯單元具有多個邏輯位址,且在每一該些區域中,至少2個相鄰的邏輯位址彼此是不連續的。
- 如申請專利範圍第1項所述之快閃記憶體管理方法,其中每一該些邏輯單元具有多個邏輯位址且每一該些實體單元具有多個實體位址,其中該第一資料屬於該第一邏輯單元的邏輯位址之中的一第一邏輯位址,其中將該第一資料寫入至該第一邏輯單元所映射之該第一實體單元的步驟包括:將該第一資料寫入至該第一實體單元的實體位址之中的一第一實體位址;以及記錄該第一邏輯位址與該第一實體位址之間的映射關係。
- 如申請專利範圍第5項所述之快閃記憶體管理方法,更包括:建立至少一隨機表;以及在該至少一隨機表中記錄該些邏輯位址所映射的該些實體位址。
- 如申請專利範圍第5項所述之快閃記憶體管理方法,更包括:當一主機系統在該些邏輯位址的其中之一中儲存資料時,將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為有效資料;以及當該主機系統刪除儲存在該些邏輯位址的其中之一 中的資料時,將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
- 如申請專利範圍第1項所述之快閃記憶體管理方法,其中每一該些邏輯單元具有多個邏輯位址且每一該些實體單元具有多個實體位址,該些實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至該些快速實體位址的速度快於寫入資料至該些慢速實體位址的速度,其中將該第二資料寫入至該資料區的該些實體單元之中的該第二實體單元的步驟包括:僅利用該第二實體單元的快速實體位址來寫入該第二資料。
- 一種快閃記憶體控制器,用於管理一快閃記憶體晶片的多個實體單元,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至一主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以將部分該些實體單元至少分組為一資料區與一備用區,其中該記憶體管理單元配置多個邏輯單元,並且設定該些邏輯單元與該資料區的多個實體單元之間的映射關係,其中每一該些邏輯單元映射該資料區的該些實體單元 的其中之一且該備用區的每一實體單元未映射該些邏輯單元,其中該記憶體管理單元將每一該些邏輯單元所映射的實體單元的儲存狀態標記為一空狀態,其中該主機介面單元接收一第一資料,其中該第一資料屬於該些邏輯單元之中的一第一邏輯單元,其中該記憶體管理單元將該第一資料寫入至該資料區的該些實體單元之中的一第一實體單元,其中該第一邏輯單元映射該資料區的該第一實體單元,並且將該第一邏輯單元所映射之該第一實體單元的儲存狀態標記為一母狀態,其中該主機介面單元接收一第二資料,其中該第二資料屬於該第一邏輯單元,其中該記憶體管理單元將該第二資料寫入至該資料區的該些實體單元之中的一第二實體單元並且將該資料區的該第二實體單元的儲存狀態標記為一子狀態,其中該第二實體單元映射該些邏輯單元之中的一第二邏輯單元,且該第二邏輯單元不同於該第一邏輯單元。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該主機介面單元接收一第三資料,其中該第三資料屬於該第二邏輯單元,其中該記憶體管理單元將該第三資料寫入至該資料區的該些實體單元之中的一第三實體單元,其中該資料區 的該第三實體單元映射該些邏輯單元之中的一第三邏輯單元,其中該記憶體管理單元將該第三邏輯單元原始所映射的第三實體單元映射至該第二邏輯單元,將該第二邏輯單元原始所映射的第二實體單元映射至該第三邏輯單元,並且將該第二邏輯單元所映射之第三實體單元的儲存狀態標記為該母狀態,其中該第三邏輯單元不同於該第一邏輯單元與該第二邏輯單元。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該記憶體管理單元利用一邏輯單元-實體單元映射表來記錄每一該些邏輯單元所映射的實體單元及每一該些邏輯單元所映射的實體單元的儲存狀態。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該記憶體管理單元將該些邏輯單元分組為多個區域(zone),其中每一該些邏輯單元具有多個邏輯位址,並且在每一該些區域中至少2個相鄰的邏輯位址彼此是不連續的。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中每一該些邏輯單元具有多個邏輯位址且每一該些實體單元具有多個實體位址,其中該第一資料屬於該第一邏輯單元的邏輯位址之中的一第一邏輯位址,其中該記憶體管理單元將該第一資料寫入至該第一實體單元的實體位址之中的一第一實體位址,並且記錄該 第一邏輯位址與該第一實體位址之間的映射關係。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該記憶體管理單元建立至少一隨機表並且在該至少一隨機表中記錄該些邏輯位址所映射的該些實體位址。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中當該主機系統在該些邏輯位址的其中之一中儲存資料時,該記憶體管理單元將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為有效資料,其中當該主機系統刪除儲存在該些邏輯位址的其中之一中的資料時,該記憶體管理單元將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中每一該些邏輯單元具有多個邏輯位址且每一該些實體單元具有多個實體位址,並且該些實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至該些快速實體位址的速度快於寫入資料至該些慢速實體位址的速度,其中該記憶體管理單元僅利用該第二實體單元的快速實體位址來寫入該第二資料。
- 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體單元;一連接器,用以耦接至一主機系統;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以將部分的該些實體單元至少分組為一資料區 與一備用區,其中該快閃記憶體控制器配置多個邏輯單元,並且設定該些邏輯單元與該資料區的多個實體單元之間的映射關係,其中每一該些邏輯單元映射該資料區的該些實體單元的其中之一且該備用區的每一實體單元未映射該些邏輯單元,其中該快閃記憶體控制器將每一該些邏輯單元所映射的實體單元的儲存狀態標記為一空狀態,其中該快閃記憶體控制器接收一第一資料,其中該第一資料屬於該些邏輯單元之中的一第一邏輯單元,其中該快閃記憶體控制器將該第一資料寫入至該資料區的該些實體單元中的一第一實體單元,其中該第一邏輯單元映射該資料區的該第一實體單元,並且將該第一邏輯單元所映射之該第一實體單元的儲存狀態標記為一母狀態,其中該快閃記憶體控制器接收一第二資料,其中該第二資料屬於該第一邏輯單元,其中該快閃記憶體控制器將該第二資料寫入至該資料區的該些實體單元之中的一第二實體單元並且將該第二實體單元的儲存狀態標記為一子狀態,其中該第二實體單元映射該些邏輯單元之中的一第二邏輯單元,且該第二邏輯單元不同於該第一邏輯單元。
- 如申請專利範圍第17項所述之快閃記憶體儲存 系統,其中該快閃記憶體控制器接收一第三資料,其中該第三資料屬於該第二邏輯單元,其中該快閃記憶體控制器將該第三資料寫入至該資料區的該些實體單元之中的一第三實體單元,其中該資料區的該第三實體單元映射該些邏輯單元之中的一第三邏輯單元,其中該快閃記憶體控制器將該第三邏輯單元原始所映射的第三實體單元映射至該第二邏輯單元,將該第二邏輯單元原始所映射的第二實體單元映射至該第三邏輯單元,並且將該第二邏輯單元所映射之第三實體單元的儲存狀態標記為該母狀態,其中該第三邏輯單元不同於該第一邏輯單元與該第二邏輯單元。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器利用一邏輯單元-實體單元映射表來記錄每一該些邏輯單元所映射的實體單元及每一該些邏輯單元所映射的實體單元的儲存狀態。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該些邏輯單元分組為多個區域(zone),其中每一該些邏輯單元具有多個邏輯位址,且在每一該些區域中,至少2個相鄰的邏輯位址彼此是不連續的。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中每一該些邏輯單元具有多個邏輯位址且每一該 些實體單元具有多個實體位址,其中該第一資料屬於該第一邏輯單元的邏輯位址之中的一第一邏輯位址,其中該快閃記憶體控制器將該第一資料寫入至該第一實體單元的實體位址之中的一第一實體位址,並且記錄該第一邏輯位址與該第一實體位址之間的映射關係。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器建立至少一隨機表並且在該至少一隨機表中記錄該些邏輯位址所映射的該些實體位址。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中當該主機系統在該些邏輯位址的其中之一中儲存資料時,該快閃記憶體控制器將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為有效資料,其中當該主機系統刪除儲存在該些邏輯位址的其中之一中的資料時,該快閃記憶體控制器將該其中之一邏輯位址所映射之實體位址的儲存狀態標記為無效資料。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中每一該些邏輯單元具有多個邏輯位址且每一該些實體單元具有多個實體位址,該些實體位址包括多個快速實體位址與多個慢速實體位址,並且寫入資料至該些快速實體位址的速度快於寫入資料至該些慢速實體位址的速度,其中該快閃記憶體控制器僅利用該第二實體單元的快速實體位址來寫入該第二資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98142976A TWI435329B (zh) | 2009-12-15 | 2009-12-15 | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 |
US12/697,525 US9037814B2 (en) | 2009-12-15 | 2010-02-01 | Flash memory management method and flash memory controller and storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98142976A TWI435329B (zh) | 2009-12-15 | 2009-12-15 | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201120896A TW201120896A (en) | 2011-06-16 |
TWI435329B true TWI435329B (zh) | 2014-04-21 |
Family
ID=44144172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW98142976A TWI435329B (zh) | 2009-12-15 | 2009-12-15 | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9037814B2 (zh) |
TW (1) | TWI435329B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI769193B (zh) * | 2017-02-23 | 2022-07-01 | 南韓商愛思開海力士有限公司 | 記憶體系統的操作方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9530436B1 (en) * | 2010-08-12 | 2016-12-27 | Western Digital Technologies, Inc. | Methods and systems for providing data security in data storage devices |
CN103077124B (zh) * | 2011-10-25 | 2015-11-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
TWI540428B (zh) | 2011-11-18 | 2016-07-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN103136111B (zh) * | 2011-11-29 | 2017-03-01 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN103176910B (zh) * | 2011-12-26 | 2015-10-14 | 群联电子股份有限公司 | 用于非易失性存储器的数据合并方法、控制器与储存装置 |
US8910310B2 (en) * | 2012-05-17 | 2014-12-09 | Silicon Motion, Inc. | Embedded flash memory card and electronic device using the same, and engineering board for embedded flash memory card |
TWI486765B (zh) * | 2012-06-11 | 2015-06-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
CN103513930A (zh) * | 2012-06-20 | 2014-01-15 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器储存装置 |
TWI495998B (zh) * | 2012-08-01 | 2015-08-11 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
US10261899B2 (en) * | 2014-09-03 | 2019-04-16 | Infineon Technologies Ag | Method, device and system for data processing using dedicated mapping between logical and physical addresses |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US8122179B2 (en) | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
KR101477047B1 (ko) * | 2008-02-29 | 2014-12-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 블록 병합 방법 |
-
2009
- 2009-12-15 TW TW98142976A patent/TWI435329B/zh active
-
2010
- 2010-02-01 US US12/697,525 patent/US9037814B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI769193B (zh) * | 2017-02-23 | 2022-07-01 | 南韓商愛思開海力士有限公司 | 記憶體系統的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201120896A (en) | 2011-06-16 |
US9037814B2 (en) | 2015-05-19 |
US20110145481A1 (en) | 2011-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI426528B (zh) | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI423024B (zh) | 用於快閃記憶體的資料儲存方法及其控制器與儲存系統 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |