TWI463495B - 資料寫入方法、記憶體控制器與儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與儲存裝置 Download PDFInfo
- Publication number
- TWI463495B TWI463495B TW099143385A TW99143385A TWI463495B TW I463495 B TWI463495 B TW I463495B TW 099143385 A TW099143385 A TW 099143385A TW 99143385 A TW99143385 A TW 99143385A TW I463495 B TWI463495 B TW I463495B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- logical
- unit
- physical
- global random
- 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/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
快閃記憶體模組的記憶體子模組具有多個實體單元且每一實體單元區塊具有多個實體頁面(physical page),其中在實體單元中寫入資料時必須依據實體頁面的順序依序地寫入資料。此外,已被寫入資料之實體頁面並需先被抹除後才能再次用於寫入資料。特別是,實體單元為抹除之最小單位,並且實體頁面為程式化(亦稱寫入)的最小單元。因此,在快閃記憶體模組的管理中,實體單元會被區分為資料區與閒置區。
資料區的實體單元是用以儲存主機系統所儲存之資
料。具體來說,記憶體儲存裝置中的記憶體管理電路會將主機系統所存取的邏輯存取位址轉換為邏輯單元的邏輯頁面並且將邏輯單元的邏輯頁面映射至資料區的實體單元的實體頁面。也就是說,快閃記憶體模組的管理上資料區的實體單元是被視為已被使用之實體單元(例如,已儲存主機系統所寫入的資料)。例如,記憶體管理電路會使用邏輯單元-實體單元映射表來記載邏輯單元與資料區的實體單元的映射關係,其中邏輯單元中的邏輯頁面是依序的對應所映射之實體單元的實體頁面。
閒置區的實體單元是用以輪替資料區中的實體單元。具體來說,如上所述,已寫入資料的實體單元必須被抹除後才可再次用於寫入資料,因此,閒置區的實體單元是被設計用於寫入更新資料以替換映射邏輯單元的實體單元。基此,在閒置區中的實體單元為空或可使用的實體單元,即無記錄資料或標記為已沒用的無效資料。
也就是說,資料區與閒置區的實體單元的實體頁面是以輪替方式來映射邏輯單元的邏輯頁面,以儲存主機系統所寫入的資料。例如,記憶體儲存裝置的記憶體管理電路會從閒置區中提取一個或多個實體單元作為全域隨機實體單元,並且當主機系統欲寫入更新資料的邏輯存取位址是對應儲存裝置之某一邏輯單元的某一邏輯頁面時,儲存裝置的記憶體管理電路會將此更新資料寫入至全域隨機實體單元的實體頁面中。此外,記憶體管理電路會在一全域隨機實體單元搜尋表中記錄關於已被更新之邏輯頁面的更新
資訊。也就是說,在全域隨機實體單元搜尋表中會記錄屬於一個邏輯單元的有效資料分別地被寫入至那些全域隨機實體單元的那些實體頁面中。基此,當某一邏輯單元的某一邏輯頁面的更新資料被儲存於全域隨機實體單元時,記憶體管理電路必須搜尋全域隨機實體單元搜尋表,才能讀取屬於此邏輯單元的有效資料。
在使用全域隨機實體單元來寫入來自於主機系統的資料的架構下,當主機系統持續寫入大量的循序資料至記憶體儲存裝置時,全域隨機實體單元可能很快就會被寫滿。此時,倘若閒置區無足夠的實體單元可作為新的全域隨機實體單元時,記憶體管理電路就必須進行資料合併(Merge)程序才能繼續執行寫入指令,以避免閒置區的實體單元被耗盡(exhaust)。
具體來說,在資料合併程序中,記憶體管理電路會從閒置區中提取一個空的實體單元,將在全域隨機實體單元以及資料區的實體單元中屬於同一個邏輯單元的有效資料複製至所提取的實體區塊中,由此所儲存資料皆為無效資料的全域隨機實體單元與資料區中的實體單元就可被抹除並關聯至閒置區。由於執行資料合併程序會大幅地延長執行寫入指令的時間,甚至造成逾時。因此,如何減少上述資料合併程序,以提升記憶體儲存裝置的效能,是此領域技術人員所致力的目標。
本發明提供一種資料寫入方法與記憶體控制器,其能夠減少上述資料合併程序,以縮短執行寫入指令的時間。
本發明提供一種記憶體儲存裝置,其能夠以較短的時間完成資料寫入指令。
本發明範例實施例提出一種資料寫入方法,用於將來自於一主機系統的一更新資料寫入至一可複寫式非揮發性記憶體,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有多個實體頁面,此些實體區塊至少分組為一資料區與一閒置區,屬於資料區與閒置區的實體區塊被分組為多個實體單元,閒置區的實體單元用以替換資料區的實體單元以寫入資料。本資料寫入方法包括:配置多個邏輯單元以映射資料區的實體單元,其中每一邏輯單元具有多個邏輯頁面並且上述更新資料是屬於其中一個邏輯頁面。本資料寫入方法也包括從閒置區中提取實體單元作為第一全域隨機實體單元。此外,本資料寫入方法亦包括:判斷上述更新資料是否為循序資料並且判斷上述更新資料對應的邏輯頁面是否為起始邏輯頁面。本資料寫入方法更包括:倘若更新資料為循序資料並且上述更新資料對應的邏輯頁面為起始邏輯頁面時,從閒置區中提取一個實體單元作為第二全域隨機實體單元並且將此更新資料寫入至第二全域隨機實體單元中。在此,循序資料是定義為主機系統依序地寫入至連續的多個邏輯頁面中的資料。
在本發明之一實施例中,上述之資料寫入方法更包
括:判斷第二全域隨機實體單元中是否儲存屬於一邏輯單元的完整有效資料;以及倘若第二全域隨機實體單元中儲存屬於此邏輯單元的完整有效資料時,將此邏輯單元重新映射至此第二全域隨機實體單元。
在本發明之一實施例中,上述之資料寫入方法更包括:維護一全域隨機實體單元搜尋表來記錄對應此些已更新邏輯頁面的多個更新資訊。
在本發明之一實施例中,上述之資料寫入方法更包括:在將更新資料寫入至第二全域隨機實體單元之後,不將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,上述之資料寫入方法更包括:倘若第二全域隨機實體單元中儲存非屬於任一個邏輯單元的完整有效資料時,將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,上述之資料寫入方法更包括:倘若更新資料非為循序資料時,將此更新資料寫入至第一全域隨機實體單元中。
此外,本發明範例實施例亦提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有多個實體頁面。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,並且用以寫
入一更新資料至可複寫式非揮發性記憶體模組。在此,記憶體管理電路用以將實體區塊至少分組為一資料區與一閒置區,並且將屬於資料區與閒置區的該些實體區塊分組為多個實體單元,其中閒置區的實體單元用以替換資料區的實體單元以寫入資料。此外,記憶體管理電路更用以配置多個邏輯單元以映射資料區的實體單元,其中每一邏輯單元具有多個邏輯頁面並且上述更新資料屬於其中一個邏輯頁面。再者,記憶體管理電路更用以從閒置區中提取實體單元作為第一全域隨機實體單元。另外,記憶體管理電路更用以判斷上述更新資料是否為一循序資料並且判斷上述更新資料對應的邏輯頁面是否為起始邏輯頁面。倘若更新資料為循序資料並且上述更新資料對應的邏輯頁面為起始邏輯頁面時,記憶體管理電路更用以從閒置區中提取一個實體單元作為第二全域隨機實體單元並且將此更新資料寫入至第二全域隨機實體單元中。在此,循序資料是定義為主機系統依序地寫入至連續的多個邏輯頁面中的多筆資料。
在本發明之一實施例中,上述之記憶體管理電路更用以判斷此第二全域隨機實體單元中是否儲存屬於一邏輯單元的完整有效資料。倘若此第二全域隨機實體單元中儲存屬於此邏輯單元的完整有效資料時,記憶體管理電路更用以將此邏輯單元重新映射至此第二全域隨機實體單元。
在本發明之一實施例中,上述之記憶體管理電路更用以維護一全域隨機實體單元搜尋表來記錄對應已更新邏輯
頁面的更新資訊。
在本發明之一實施例中,上述之記憶體管理電路更用以,在將更新資料寫入至此第二全域隨機實體單元之後,不將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,倘若此第二全域隨機實體單元中儲存非屬於任一邏輯單元的完整有效資料時,上述之記憶體管理電路更用以將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,倘若更新資料非為循序資料時,上述之記憶體管理電路更用以將更新資料寫入至第一全域隨機實體單元中。
再者,本發明範例實施例亦提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體區塊並且每一實體區塊具有多個實體頁面。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,並且用以寫入一更新資料至可複寫式非揮發性記憶體模組中。記憶體控制器用以將此些實體區塊至少分組為一資料區與一閒置區,並且將屬於資料區與閒置區的實體區塊分組為多個實體單元,其中閒置區的實體單元用以替換資料區的實體單元以寫入資料。此外,記憶體控制器更用以配置多個邏輯單元以映射資料區的實體單元,其中每一邏輯單元具有多個邏輯頁面並且上述更新資料屬於其中一個邏輯頁面。再者,記憶體控制器更用以從
閒置區中提取實體單元作為第一全域隨機實體單元。另外,記憶體控制器更用以判斷上述更新資料是否為循序資料並且判斷上述更新資料對應的邏輯頁面是否為起始邏輯頁面。倘若更新資料為循序資料並且上述更新資料對應的邏輯頁面為起始邏輯頁面時,記憶體控制器更用以從閒置區中提取一個實體單元作為第二全域隨機實體單元並且將此更新資料寫入至第二全域隨機實體單元。在此,循序資料是定義為主機系統依序地寫入至連續的多個邏輯頁面中的多筆資料。
在本發明之一實施例中,上述之記憶體控制器更用以判斷此第二全域隨機實體單元中是否儲存屬於一邏輯單元的完整有效資料。倘若此第二全域隨機實體單元中儲存屬於此邏輯單元的完整有效資料時,記憶體控制器更用以將此邏輯單元重新映射至此第二全域隨機實體單元。
在本發明之一實施例中,上述之記憶體控制器更用以維護一全域隨機實體單元搜尋表來記錄對應已更新邏輯頁面的更新資訊。
在本發明之一實施例中,上述之記憶體控制器更用以,在將更新資料寫入至此第二全域隨機實體單元之後,不將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,倘若此第二全域隨機實體單元中儲存非屬於任一邏輯單元的完整有效資料時,上述之記憶體控制器更用以將對應的更新資訊記錄至全域隨機實體單元搜尋表中。
在本發明之一實施例中,倘若更新資料非為循序資料時,記憶體控制器更用以將更新資料寫入至第一全域隨機實體單元中。
另外,本發明範例實施例更提出一種資料寫入方法,用於可複寫式非揮發性記憶體,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有多個實體頁面,此些實體區塊至少分組為一資料區與一閒置區,屬於資料區與閒置區的實體區塊被分組為多個實體單元,資料區的實體單元映射多個邏輯單元,每一邏輯單元具有多個邏輯頁面,閒置區的實體單元之中的一第一實體單元被用作為目前全域隨機實體單元來寫入資料。本資料寫入方法包括:a.從主機系統接收至少一寫入指令與對應此寫入指令的多筆更新資料,其中每一更新資料對應其中一個邏輯頁面;b.判斷此些更新資料是否為一循序資料,其中倘若此些更新資料為循序資料時標記一第一旗標;c.根據此些更新資料對應的邏輯頁面依序地選擇該些更新資料之中未被寫入的其中一個更新資料並且執行步驟d;d.判斷第一旗標是否已被標記,其中倘若第一旗標未被標記時執行步驟h並且倘若第一旗標已被標記時執行步驟e;e.判斷一第二旗標示是否已被標記,其中倘若第二旗標未被標記時執行步驟f並且倘若第二旗標已被標記時執行步驟i;f.判斷此更新資料對應的邏輯頁面是否為起始邏輯頁面,其中倘若此更新資料對應的邏輯頁面為起始邏輯頁面時執行步驟g並且倘若此更新資料對應的邏輯頁面非為起始邏輯
頁面時執行步驟h;g.從閒置區中提取一第二實體單元,將此更新資料依序地寫入至第二實體單元中,將第二實體單元作為目前全域隨機實體單元,標記第二旗標並且之後執行步驟j;h.將此更新資料依序地寫入至目前全域隨機實體單元中,將關於此更新資料對應的邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表中並且之後執行步驟j;i.將此更新資料依序地寫入至目前全域隨機實體單元中,不將關於此更新資料對應的邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表中並且之後執行步驟j;以及j.判斷是否已將所有更新資料寫入至可複寫式非揮發性記憶體中,其中倘若未將所有更新資料寫入至可複寫式非揮發性記憶體中時,執行步驟c。
在本發明之一實施例中,上述之資料寫入方法更包括:判斷目前全域隨機實體單元是否已被寫滿;以及倘若目前全域隨機實體單元已被寫滿時,從閒置區中提取第三實體單元作為目前全域隨機實體單元。
在本發明之一實施例中,上述之資料寫入方法更包括:倘若目前全域隨機實體單元已被寫滿時,判斷第二標記是否已被標記;以及倘若第二標記已被標記時,將其中一個邏輯單元重新映射至此目前全域隨機實體單元並且將此邏輯單元原先映射的實體單元關聯至閒置區,其中儲存於目前全域隨機實體單元中的更新資料是屬於此邏輯單元。
在本發明之一實施例中,上述之資料寫入方法更包
括:從主機系統接收至少一其他寫入指令與對應該至少一其他寫入指令的多筆其他更新資料;以及根據上述步驟e、上述步驟f、上述步驟g、上述步驟h、上述步驟i與上述步驟j分別地將此些其他更新資料寫入至全域隨機實體單元中,其中每一其他更新資料對應邏輯頁面之中的其中一個邏輯頁面。
在本發明之一實施例中,上述之資料寫入方法更包括:判斷對應此些其他更新資料的邏輯頁面是否接續於對應上述更新資料的邏輯頁面;以及其中倘若對應此些其他更新資料的邏輯頁面非接續於對應
上述更新資料的邏輯頁面時,反標記第一旗標與第二旗標並且將上述更新資料所對應的邏輯頁面的更新資訊之中未記錄之更新資訊記錄至全域隨機實體單元搜尋表中。
基於上述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠有效地將主機系統以循序寫入模式所儲存之資料寫入至可複寫式非揮發性記憶體模組。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主
機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統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是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指
令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體區塊410(0)~410(N)。例如,實體區塊410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體區塊分別具有複數個實體頁面,並且每一實體頁面具有至少一實體扇區,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成,並且每一實體頁面具有8個實體扇區(sector)。也就是說,在每一實體扇區為512位元組(byte)的例子中,每一實體頁面的容量為4千位元組(Kilobyte,K)。然而,必須瞭解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。
更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是實體扇區或其他大小。每一實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處
理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括
緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4A與圖4B是根據本發明範例實施例所繪示之管理實體區塊的範例示意圖。
請參照圖4A,記憶體控制器104的記憶體管理電路202會將實體區塊410(0)~410-(N)邏輯地分組為資料區
502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體區塊是被視為已儲存資料的實體區塊,而閒置區504的實體區塊是用以替換資料區502的實體區塊。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體區塊,並且將資料寫入至所提取的實體區塊中,以替換資料區502的實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區508中的實體區塊是用於壞實體區塊取代程序,以取代損壞的實體區塊。具體來說,倘若取代區508中仍存有正常之實體區塊並且資料區502的實體區塊損壞時,記憶體管理電路202會從取代區508中提取正常的實體單元來更換損壞的實體區塊。
請參照圖4B,記憶體管理電路202會將資料區502與閒置區504的實體區塊410(0)~410(S-1)分組為實體單元610(0)~610(K),並且以實體單元為單位來管理實體區塊。在本範例實施例中,每一實體單元是由1個實體區塊所組成。然而,必須瞭解的是,本發明不限於此。在另一範例實施例中,每一實體單元亦可由屬於同一記憶體子模組或
屬於不同記憶體子模組中的至少2個實體區塊所組成。
此外,記憶體管理電路202會配置邏輯單元710(0)~710(H)以映射資料區502的實體單元,其中每一邏輯單元具有多個邏輯頁面以依序地映射對應之實體單元的實體頁面。在本範例實施例中,每一實體單元是由1個實體區塊所組成,每一邏輯頁面是映射1個實體頁面(即,每一邏輯頁面的容量為1個實體頁面的容量)。然而,在每一實體單元是由多個實體區塊所組成的例子中,每一邏輯頁面亦可映射多個實體頁面(即,每一邏輯頁面的容量為多個實體頁面的容量)。
在本範例實施例中,記憶體管理電路202會維護邏輯單元-實體單元映射表(logical unit-physical unit mapping table)以記錄邏輯單元710(0)~710(H)與資料區502的實體單元的映射關係。例如,當主機系統1000欲存取某一邏輯存取位址時,記憶體管理電路202可將主機系統1000所存取的邏輯存取位址轉換為以對應的邏輯單元、邏輯頁面與邏輯扇區所構成的位址,並且透過邏輯單元-實體單元映射表於對應的實體單元的實體頁面中存取資料。
在本範例實施例中,記憶體管理電路202會從閒置區504中提取實體單元作為全域隨機實體單元,並且將包含於來自主機系統1000之寫入指令中的資料(亦稱為更新資料)寫入至全域隨機實體單元中。在本範例實施例中,全域隨機實體單元為用以將分別對應於不同邏輯單元之資料儲存在至少同一實體區塊之單元。
具體來說,當記憶體儲存裝置100從主機系統1000接收到寫入指令時,來自於主機系統1000之寫入指令中的資料可被依序地寫入至全域隨機實體單元中。並且,當此全域隨機實體單元已被寫滿時,記憶體管理電路202會再從閒置區504中提取實體單元作為另一個全域隨機實體單元,以繼續寫入對應來自於主機系統1000之寫入指令的更新資料。直到作為全域隨機實體單元的實體單元的數目已到達一上限值時,記憶體管理電路202會執行資料合併程序,以使儲存於全域隨機實體單元中的資料成為無效資料,並且之後將所儲存之資料皆為無效資料之全域隨機實體單元關聯回閒置區504。
圖5A~5G是根據本發明範例實施例所繪示寫入資料的範例示意圖。
為方便說明,在此假設資料區502具有5個實體單元,閒置區504具有4個實體單元,每一實體單元具有實3個實體頁面,欲寫入至每一實體單元的資料必須依照實體頁面的順序來被寫入,並且作為全域隨機實體單元之實體單元數的上限值為3。
請參照圖5A,在記憶體儲存裝置100的初始狀態中,邏輯單元710(0)~710(4)的邏輯頁面可依序地映射資料區502的實體單元610(0)~610(4)的實體頁面,並且閒置區504具有實體單元610(5)~610(8)。也就是說,記憶體管理電路202會在邏輯單元-實體單元映射表中記錄邏輯單元710(0)~710(4)與實體單元610(0)~610(4)之間的映射關係,
並且將實體單元610(0)~610(4)的實體頁面視為已儲存屬於邏輯單元710(0)~710(4)的邏輯頁面的資料(即,初始資料ID1~ID15)。必須瞭解的是,在記憶體儲存裝置100剛出廠時,初始資料ID1~ID15可能為空資料。此外,記憶體管理電路202會記錄閒置區504中可用的實體單元610(5)~610(8)。
請參照圖5B,假設欲程式化更新資料UD1並且更新資料UD1是屬於邏輯單元710(0)的第1個邏輯頁面時,記憶體管理電路202會從閒置區504中提取實體單元610(5)作為全域隨機實體單元並且下達程式化指令以將此更新資料UD1寫入至實體單元610(5)的第0個實體頁面。
請參照圖5C,接續圖5B,假設欲再程式化更新資料UD2並且更新資料UD2是屬於邏輯單元710(1)的第0個邏輯頁面時,記憶體管理電路202會下達程式化指令以將此更新資料UD2寫入至實體單元610(5)的第1個實體頁面。
請參照圖5D,接續圖5C,假設欲再程式化更新資料UD3並且更新資料UD3是屬於邏輯單元710(2)的第1個邏輯頁面時,記憶體管理電路202會下達程式化指令以將此更新資料UD3寫入至實體單元610(5)的第2個實體頁面。
請參照圖5E,接續圖5D,假設欲再程式化更新資料UD4並且更新資料UD4是屬於邏輯單元710(3)的第0個邏輯頁面時,由於全域隨機實體單元610(5)已無儲存空
間,因此,記憶體管理電路202會從閒置區504中提取實體單元610(6)作為全域隨機實體單元並且下達程式化指令以將此更新資料UD4寫入至實體單元610(6)的第0個實體頁面。
請參照圖5F,接續圖5E,假設欲再程式化更新資料UD5並且更新資料UD5是屬於邏輯單元710(3)的第1個邏輯頁面時,記憶體管理電路202會下達程式化指令以將此更新資料UD5寫入至實體單元610(6)的第1個實體頁面。
請參照圖5G,接續圖5F,假設欲再程式化更新資料UD6並且更新資料UD6是屬於邏輯單元710(0)的第2個邏輯頁面時,記憶體管理電路202會下達程式化指令以將此更新資料UD6寫入至實體單元610(6)的第2個實體頁面。
為了能夠識別儲存於全域隨機實體單元中之資料是屬於那個邏輯頁面,在本範例實施例中,記憶體管理電路202會建立全域隨機實體單元搜尋表,以利有效資料的搜尋。在此全域隨機搜尋表中,記憶體管理電路202會建立多個根單元並且為每一根單元配置一登錄鏈結。特別是,記憶體管理電路202會將邏輯單元的邏輯頁面分組來分別地對應至其中一個根單元,並且將邏輯頁面的更新資訊記錄在對應之根單元的登錄鏈結上。基此,當欲在全域隨機實體單元中搜尋特定邏輯單元的更新資料時,僅需搜尋對應之根單元的登錄鏈結。
例如,在本範例實施例中,記憶體管理電路202會每一邏輯單元的邏輯頁面分別地對應至同一個根單元。也就是,同一個邏輯單元的邏輯頁面是對應同一個根單元。必須瞭解的是,本發明不限於此,例如,在本發明另一範例實施中,亦可將一個邏輯單元的一部份邏輯頁面分組至一個根單元並且將此邏輯單元的另一部分邏輯頁面分組至另一根單元。
此外,記憶體管理電路202會為每一根單元分別地配置一個登錄鏈結並且每當執行寫入指令時,記憶體管理電路202會在對應的登錄鏈結上建立登錄以記錄關於此寫入指令的更新資訊。例如,每一登錄包括第一欄位(例如,圖6的欄位902)與第二欄位(例如,圖6的欄位904),其中第一欄位記錄已更新邏輯頁面的位址,並且第二欄位用以記錄儲存此已更新邏輯頁面之更新資料的實體位址。
圖6是根據圖5G所繪示之全域隨機實體單元搜尋表。
請參照圖6,全域隨機實體單元搜尋表800包括根單元810(0)~810(4),其中邏輯單元710(0)的邏輯頁面是對應根單元810(0),邏輯單元710(1)的邏輯頁面是對應根單元810(1),邏輯單元710(2)的邏輯頁面是對應根單元810(2),邏輯單元710(3)的邏輯頁面是對應根單元810(3),並且邏輯單元710(4)的邏輯頁面是對應根單元810(4)。
在根單元810(0)的登錄鏈結中包含2個有效登錄,以記錄邏輯單元710(0)的第1個邏輯頁面(即,資訊"710(0)-1")與第2個邏輯頁面(即,資訊"710(0)-2")已被更新,其中邏
輯單元710(0)的第1個邏輯頁面的更新資料被寫入至實體單元610(5)的第0個實體頁面(即,資訊"610(5)-0")中並且邏輯單元710(0)的第2個邏輯頁面的更新資料被寫入至實體單元610(6)的第2個實體頁面(即,資訊"610(6)-2")中。
在根單元810(1)的登錄鏈結中包含1個有效登錄,以記錄邏輯單元710(1)的第0個邏輯頁面(即,資訊"710(1)-0")已被更新,其中邏輯單元710(1)的第0個邏輯頁面的更新資料被寫入至實體單元610(5)的第1個實體頁面(即,資訊"610(5)-1")中。
在根單元810(2)的登錄鏈結中包含1個有效登錄,以記錄邏輯單元710(2)的第1個邏輯頁面(即,資訊"710(2)-1")已被更新,其中邏輯單元710(2)的第1個邏輯頁面的更新資料被寫入至實體單元610(5)的第2個實體頁面(即,資訊"610(5)-2")中。
在根單元810(3)的登錄鏈結中包含2個有效登錄,以記錄邏輯單元710(3)的第0個邏輯頁面(即,資訊"710(3)-0")與第1個邏輯頁面(即,資訊"710(3)-1")已被更新,其中邏輯單元710(3)的第0個邏輯頁面的更新資料被寫入至實體單元610(6)的第0個實體頁面(即,資訊"610(6)-0")中並且邏輯單元710(3)的第1個邏輯頁面的更新資料被寫入至實體單元610(6)的第1個實體頁面(即,資訊"610(6)-1")中。
此外,在根單元810(0)~810(4)的登錄鏈結中分別地會包含1個空的登錄(亦稱為無效登錄),以表示登錄鏈結的結束。例如,倘若欲在全域隨機實體單元中搜尋屬於邏輯
單元710(4)的資料時,記憶體管理單元202可根據根單元810(4)的登錄鏈結僅有空的登錄,而識別出全域隨機實體單元中未儲存屬於邏輯單元710(4)的資料,由此可直接依據邏輯單元-實體單元映射表的資訊從對應的實體單元的實體頁面中讀取資料。
以此類推,記憶體管理電路202會依序地將主機系統1000欲儲存的資料寫入至作為全域隨機實體單元的實體單元中。特別是,當全域隨機實體單元的實體單元的數目達到3時,記憶體管理電路202會在執行寫入指令時一併執行資料合併程序,以防止閒置區的實體單元被用盡。
圖7A與7B是根據本發明範例實施例所繪示寫入資料與執行資料合併程序的範例示意圖。
請參照圖7A,接續圖5G,假設欲再程式化更新資料UD7並且更新資料UD7是屬於邏輯單元710(2)的第0個邏輯頁面時,由於全域隨機實體單元610(6)已無儲存空間,因此,記憶體管理電路202會從閒置區504中提取實體單元610(7)作為全域隨機實體單元並且下達程式化指令以將此更新資料UD7寫入至實體單元610(7)的第0個實體頁面。特別是,由於作為全域隨機實體單元的實體單元的數目已達到3,因此,記憶體管理電路202在執行圖7B所示之寫入運作後會執行資料合併程序。也就是說,在此例子中,在執行此次寫入指令期間,記憶體管理電路202會一併執行資料合併程序。
請參照圖7B,假設記憶體管理電路202選擇邏輯單
元710(0)來進行資料合併時,記憶體管理電路202會識別邏輯單元710(0)是映射實體單元610(0),從閒置區504提取實體單元610(8),並且將實體單元610(0)以及全域隨機實體單元中屬於邏輯單元710(0)的有效資料複製到實體單元610(8)中。具體來說,記憶體管理電路202會依序地將實體單元610(0)中的資料ID1、實體單元610(5)中的UD1與實體單元610(6)中的資料UD6寫入至實體單元610(8)的第0~2個實體頁面中,並且將實體單元610(5)的第1個實體頁面與實體單元610(6)的第2個實體頁面標示為無效(如斜線所示)。之後,記憶體管理電路202會對實體單元610(0)執行抹除運作,在邏輯單元-實體單元映射表中將邏輯單元710(0)重新映射至實體單元610(8),並且將實體單元610(0)關聯至閒置區504。
例如,當執行下一個寫入指令時,記憶體管理電路202會對邏輯單元710(1)執行資料合併程序,並且之後再執行下一個寫入指令時,記憶體管理電路202會對邏輯單元710(2)執行資料合併程序。因此,在實體單元610(7)的儲存空間被填滿時,實體單元610(5)中的資料皆會成為無效資料。基此,記憶體管理電路202可對實體單元610(5)執行抹除運作並將抹除後之實體單元610(5)關聯回閒置區504。
或者,例如,當執行下一個寫入指令時,記憶體管理電路202會對邏輯單元710(3)執行資料合併程序。因此,在實體單元610(7)的儲存空間被填滿之前,實體單元610(6)
中的資料皆會成為無效資料。基此,記憶體管理電路202可對實體單元610(6)執行抹除運作並將抹除後之實體單元610(6)關聯回閒置區504。
基此,根據上述運作,記憶體管理電路202可持續將以儲存無效資料的實體單元關聯回閒置區504並且從閒置區504中提取實體單元作為全域隨機實體單元。
在本發明範例實施例中,記憶體管理電路202會判斷主機系統1000欲寫入的更新資料是否為循序資料。具體來說,主機系統1000寫入資料的行為可被區分為循序寫入模式(Sequential writing mode)與隨機寫入模式(random writing mode)。在循序寫入模式中,主機系統1000會依序地寫入多筆資料至連續的多個邏輯頁面中。而在隨機寫入模式中,主機系統1000是於非連續的邏輯頁面中寫入資料,例如,首先將第一筆更新資料被寫入第5個邏輯頁面,然後將第二筆更新資料寫入至第3個邏輯頁面。在此,將主機系統1000以循序寫入模式寫入的資料稱為循序資料,並且將主機系統1000以隨機寫入模式寫入的資料稱為隨機資料。
特別是,在更新資料為循序資料時,記憶體管理電路202會在寫入每筆更新資料至全域隨機實體單元的實體頁面之前判斷欲寫入之更新資料所對應的邏輯頁面是否為任一個邏輯單元的起始邏輯頁面。在此,所謂起始邏輯頁面就是一個邏輯單元的第0邏輯頁面。並且,當欲寫入之更新資料所對應的邏輯頁面為起始邏輯頁面時,記憶體管理
電路202會從閒置區504中提取一個空的實體單元,將此筆更新資料寫入至所提取之實體單元的第0實體頁面中並且將所提取之實體單元作為目前全域隨機實體單元以寫入後續的更新資料。在此,所謂目前全域隨機實體單元定義為正用於寫入來自於主機系統1000的更新資料的全域隨機實體單元。
圖8A~8D是根據本發明範例實施例所繪示之主機系統以循序寫入模式儲存資料的資料寫入示意圖。在此範例中,其假設在圖5B的儲存狀態下,主機系統1000將更新資料UD8、更新資料UD9、更新資料UD10與更新資料UD11依序地寫入至邏輯單元710(1)的第2個邏輯頁面、邏輯單元710(2)的第0~2個邏輯頁面的範例。在此範例中,記憶體管理電路202會根據主機系統1000所下達之寫入指令來識別更新資料為循序資料。例如,第一旗標會初始地記錄在緩衝記憶體252中,其中當更新資料為循序資料時,記憶體管理電路202會將第一旗標標記為"1",並且,當更新資料為隨機資料時,記憶體管理電路202會將第一旗標反標記為"0"。然而,必須瞭解的是,第一旗標的記錄方式不限於此,任何可區別主機系統1000是否以循序寫入模式儲存資料的符號皆可應用於本發明。
之後,記憶體管理電路202會開始將更新資料UD8、更新資料UD9、更新資料UD10與更新資料UD11寫入至全域隨機實體單元的實體頁面。特別是,在第一旗標被標記的狀態下,記憶體管理電路202會在寫入更新資料之前
會判斷更新資料所對應的邏輯頁面是否為起始邏輯頁面。
首先,請參照圖8A,記憶體管理電路202會識別更新資料UD8所對應的邏輯頁面非為起始邏輯頁面。此時,記憶體管理電路202會依序地將更新資料UD8寫入至目前全域隨機實體單元的實體頁面(即,實體單元610(5)的第1個實體頁面)中,並且更新全域隨機實體單元搜尋表800以記錄對應邏輯單元710(1)的第2個邏輯頁面的更新資訊(如圖9所示)。在此,正作為目前全域隨機實體單元的實體單元亦可稱為第一全域隨機實體單元。
接著,請參照圖8B,記憶體管理電路202會識別更新資料UD9所對應的邏輯頁面為起始邏輯頁面。例如,第二旗標會初始地記錄在緩衝記憶體252中,其中當第一旗標被標記為"1"並且欲寫入之更新資料所對應的邏輯頁面為起始邏輯頁面時,記憶體管理電路202會將第二旗標標記為"1",並且當第一旗標被反標記為"0"時記憶體管理電路202會同時將第二旗標反標記為"0"。然而,必須瞭解的是,第二旗標的記錄方式不限於此。
此時,記憶體管理電路202會從閒置區504提取空的實體區塊610(6)作為第二全域隨機實體單元,並且依序地將更新資料UD9寫入至實體單元610(6)的第0個實體頁面。之後,記憶體管理電路202會將此第二全域隨機實體單元設定為目前全域隨機實體單元。特別是,記憶體管理電路202不會更新全域隨機實體單元搜尋表800。也就是說,對應邏輯單元710(2)的第0個邏輯頁面的更新資訊不
會被記錄至全域隨機實體單元搜尋表800中。具體來說,記憶體管理電路202是根據第二旗標而來判斷是否更新全域隨機實體單元搜尋表800,其中當第二旗標被標記為"1"時,記憶體管理電路202不會更新全域隨機實體單元搜尋表800,並且當第二旗標被反標記為"0"時,記憶體管理電路202會更新全域隨機實體單元搜尋表800。
接著,請參照圖8C,記憶體管理電路202會識別更新資料UD10所對應的邏輯頁面非為起始邏輯頁面。此時,記憶體管理電路202會依序地將更新資料UD10寫入至目前全域隨機實體單元的實體頁面(即,實體單元610(6)的第1個實體頁面)中。特別是,由於第二旗標已被標記為"1",因此記憶體管理電路不會將對應邏輯單元710(2)的第1個邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表800中。
接著,請參照圖8D,記憶體管理電路202會識別更新資料UD11所對應的邏輯頁面非為起始邏輯頁面。此時,記憶體管理電路202會依序地將更新資料UD11寫入至目前全域隨機實體單元的實體頁面(即,實體單元610(6)的第2個實體頁面)中。特別是,由於第二旗標已被標記為"1",因此記憶體管理電路不會將對應邏輯單元710(2)的第2個邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表800中。
在本範例實施例中,寫入更新資料之後,記憶體管理電路202會判斷目前全域隨機實體單元是否已儲存某一個
邏輯單元的完整有效資料。例如,在更新資料UD11的寫入之後,記憶體管理電路202會判斷實體單元610(6)是否已儲存邏輯單元710(2)的完整有效資料。特別是,當實體單元610(6)已儲存邏輯單元710(2)的完整有效資料時,記憶體管理電路202會在邏輯單元-實體單元映射表中將邏輯單元710(2)重新映射至實體單元610(6),將儲存於原先映射邏輯單元710(2)的實體單元610(2)中的資料抹除並且將抹除後之實體單元關聯至閒置區504(如圖10所示)。更詳細來說,在圖8A~8D所述的範例中,記憶體管理電路202會將以循序寫入模式儲存之多筆更新資料之中屬於同一個邏輯單元的更新資料寫入至同一個全域隨機實體單元中。因此當一個全域隨機實體單元所儲存之更新資料為某一個邏輯單元的全部有效資料時,邏輯單元與實體單元的映射關係可直接地被更新,無需進行上述資料合併程序,因此可大幅提升記憶體儲存裝置100的效能。
值得一提的是,在本範例實施例中,倘若在主機系統1000僅依序地寫入更新資料UD8、更新資料UD9與更新資料UD10寫入至邏輯單元710(1)的第2個邏輯頁面、邏輯單元710(2)的第0~1個邏輯頁面時,由於全域隨機實體單元(即,實體單元610(6))未儲存邏輯單元710(2)的完整有效資料。因此,在完成更新資料UD10的寫入之後,記憶體管理電路202會將對應邏輯單元710(2)的第0與1個邏輯頁面的更新資訊補記錄至全域隨機實體單元搜尋表800中(如圖11所示)。
此外,在主機系統1000僅依序地寫入更新資料UD8、更新資料UD9與更新資料UD10寫入至邏輯單元710(1)的第2個邏輯頁面、邏輯單元710(2)的第0~1個邏輯頁面的例子中,在本發明另一範例實施例中,記憶體管理電路202亦可將儲存於原始映射邏輯單元710(2)的實體單元610(2)的有效資料(例如,資料ID9)複製至實體單元610(6)後直接地更新邏輯單元與實體單元的映射關係。
圖12是根據本發明範例實施例所繪示的資料寫入方法的流程圖,其繪示在寫入資料之前初始化可複寫式非揮發性記憶體模組的步驟。
請參照圖12,在步驟S1201中,記憶體管理電路202會將可複寫式非揮發性記憶體模組106的實體區塊分組為資料區502、閒置區504、系統區506與取代區508。然後,在步驟S1203中,記憶體管理電路202會將資料區502與閒置區504的實體區塊分組為實體單元。
在步驟S1205中,記憶體管理電路202會配置多個邏輯單元以映射資料區502的實體單元,並且在步驟S1207中記憶體管理電路202會從閒置區504中提取實體單元作為全域隨機實體單元,其中屬於已更新邏輯頁面的資料會被寫入至全域隨機實體單元的實體頁面中。
圖13是根據本發明範例實施例所繪示的資料寫入方法的概要流程圖,其繪示將來自於主機系統的更新資料寫入至可複寫式非揮發性記憶體模組的步驟。
請參照圖13,在步驟S1301中,記憶體管理電路202
會判斷更新資料是否為循序資料並且判斷此更新資料對應的邏輯頁面是否為起始邏輯頁面。
倘若更新資料為循序資料並且此更新資料對應的邏輯頁面為起始邏輯頁面時,在步驟S1303中,記憶體管理電路202會從閒置區504中提取一個實體單元作為新全域隨機實體單元,將此更新資料寫入至此新全域隨機實體單元中並且將此新全域隨機實體單元作為目前全域隨機實體單元(如圖8B所示)。
倘若更新資料非為循序資料或者此更新資料對應的邏輯頁面非為起始邏輯頁面時,在步驟S1305中,記憶體管理電路202會將此更新資料寫入至目前全域隨機實體單元中。
然後,在步驟S1307中,記憶體管理電路202會判斷是否有任何一個全域隨機實體單元儲存屬於某一個邏輯單元的完整有效資料。
倘若有任一個全域隨機實體單元儲存屬於某一個邏輯單元的完整有效資料時,在步驟S1309中,將此邏輯單元重新映射至此全域隨機實體單元。
圖14是根據本發明範例實施例所繪示之資料寫入方法的詳細流程圖,其中閒置區504的其中一個實體單元(例如,圖8A的實體單元610(5))已被提取作為目前全域隨機實體單元。
請參照圖14,在步驟S1401中,記憶體管理電路202會從主機系統1000接收一個或多個寫入指令以及與對應
的多筆更新資料。在此,每一更新資料是對應其中一個邏輯頁面(如圖8A~8D的範例)。
在步驟S1403中,記憶體管理電路202會判斷更新資料是否為循序資料(即,主機系統1000是否以循序寫入模式儲存此些更新資料)。
倘若更新資料為循序資料時,在步驟S1405中,記憶體管理電路202會標記第一旗標(例如,第一旗標的值會被記錄為"1")。倘若更新資料非為循序資料時,在步驟S1407中,記憶體管理電路202會反標記第一旗標與第二旗標(例如,第一旗標與第二旗標的值會被記錄為"0")。
然後,在步驟S1409中,記憶體管理電路202會根據此些更新資料所對應之邏輯頁面順序選擇未被寫入的一個更新資料。並且,步驟S1411中,記憶體管理電路202會判斷第一旗標是否已被標記。
倘若第一旗標未被標記時,在步驟S1413中,記憶體管理電路202會將此更新資料依序地寫入至目前全域隨機實體單元中並且將關於此更新資料對應的邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表中。
倘若第一旗標已被標記時,在步驟S1415中,記憶體管理電路202會判斷第二旗標示是否已被標記。
倘若第二旗標未被標記時,在步驟S1417中,記憶體管理電路202會判斷此更新資料對應的邏輯頁面是否為起始邏輯頁面。
倘若此更新資料對應的邏輯頁面為起始邏輯頁面
時,在步驟S1419中,記憶體管理電路202會從閒置區504提取一個空的實體單元(例如,圖8B的實體單元610(6)),將此更新資料依序地寫入至所提取之實體單元中,將此實體單元作為目前全域隨機實體單元並且標記第二旗標(例如,第二旗標的值會被記錄為"1")。
倘若此更新資料對應的邏輯頁面非為起始邏輯頁面時,記憶體管理電路202會執行步驟S1413。
倘若第二旗標已被標記時,在步驟S1421中,記憶體管理電路202會將此更新資料依序地寫入至目前全域隨機實體單元中並且不將關於此更新資料對應的邏輯頁面的更新資訊記錄至全域隨機實體單元搜尋表中。
之後,在步驟S1423中,記憶體管理電路202會判斷目前全域隨機實體單元是否已被寫滿。
倘若目前全域隨機實體單元已被寫滿時,在步驟S1425中,記憶體管理電路202會判斷第二標記是否已被標記。並且倘若第二標記已被標記時,在步驟S1427中,記憶體管理電路202會將此更新資料對應之邏輯單元重新映射至目前全域隨機實體單元並且將此更新資料對應之邏輯單元原先映射的實體單元關聯至閒置區504。
之後,在步驟S1429中,記憶體管理電路202會從閒置區504提取一個空的實體單元作為目前全域隨機實體單元。
然後,在步驟S1431中,記憶體管理電路202會判斷是否已將所有更新資料寫入至可複寫式非揮發性記憶體
中。
倘若未將所有更新資料寫入至可複寫式非揮發性記憶體中時,記憶體管理電路202會執行步驟S1409。倘若已將所有更新資料寫入至可複寫式非揮發性記憶體中時,圖14的流程會被結束。
基於上述,記憶體管理電路202會依據圖14的步驟執行主機系統1000所下達的寫入指令。特別是,在主機系統1000以循序寫入模式儲存資料之後,記憶體管理電路202會判斷下一個寫入指令所對應的邏輯頁面是否接續前一個寫入指令所對應的邏輯頁面。倘若下一個寫入指令所對應的邏輯頁面是非接續前一個寫入指令所對應的邏輯頁面,記憶體管理電路202會反標記第一旗標與第二旗標並且將未記錄之更新資訊記錄至全域隨機實體單元搜尋表中。
綜上所述,本發明範例實施例的資料寫入方法與使用此方法的記憶體控制器與記憶體儲存裝置能夠在主機系統寫入大量循序資料時,快速地將邏輯單元重新映射至全域隨機實體單元,以減少資料合併。此外,由於邏輯單元可直接地重新映射至全域隨機實體單元,因此,可減少記錄更新資訊的步驟。基此,記憶體儲存裝置的效能可被大幅地提升。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本
發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體區塊
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
610(0)~610(K)‧‧‧實體單元
710(0)~710(H)‧‧‧邏輯單元
810(0)~810(4)‧‧‧根單元
902‧‧‧第一欄位
904‧‧‧第二欄位
S1201、S1203、S1205、S1207‧‧‧在寫入資料之前初始化可複寫式非揮發性記憶體模組的步驟
S1301、S1303、S1305、S1307、S1309‧‧‧將來自於主機系統的更新資料寫入至可複寫式非揮發性記憶體模組的步驟
S1401、S1403、S1405、S1407、S1409、S1411、S1413、S1415、S1417、S1419、S1421、S1423、S1425、S1427、S1429、S1431‧‧‧資料寫入方法的步驟
圖1A是根據本發明第一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4A與圖4B是根據本發明範例實施例所繪示之管理實體區塊的範例示意圖。
圖5A~5G是根據本發明範例實施例所繪示寫入資料的範例示意圖。
圖6是根據圖5G所繪示之全域隨機實體單元搜尋表。
圖7A與7B是根據本發明範例實施例所繪示寫入資料與執行資料合併程序的範例示意圖。
圖8A~8D是根據本發明範例實施例所繪示之主機系統以循序寫入模式儲存資料的資料寫入示意圖。
圖9是根據圖8A所繪示之全域隨機實體單元搜尋表。
圖10是根據本發明範例實施例所繪示之重新映射邏
輯單元與實體單元的示意圖。
圖11是根據一範例所繪示之全域隨機實體單元搜尋表。
圖12是根據本發明範例實施例所繪示的資料寫入方法的流程圖。
圖13是根據本發明範例實施例所繪示的資料寫入方法的概要流程圖。
圖14是根據本發明範例實施例所繪示之資料寫入方法的詳細流程圖。
S1301、S1303、S1305、S1307、S1309‧‧‧將來自於主機系統的更新資料寫入至可複寫式非揮發性記憶體模組的步驟
Claims (23)
- 一種資料寫入方法,用於將來自於一主機系統的一更新資料寫入至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有多個實體頁面,該些實體區塊至少分組為一資料區與一閒置區,屬於該資料區與該閒置區的該些實體區塊被分組為多個實體單元,該閒置區的該些實體單元用以替換該資料區的該些實體單元以寫入資料,該資料寫入方法包括:配置多個邏輯單元以映射該資料區的該些實體單元,其中每一該些邏輯單元具有多個邏輯頁面並且該更新資料是屬於該些邏輯頁面的其中一個邏輯頁面;從該閒置區中提取至少一實體單元作為一第一全域隨機實體單元;判斷該更新資料是否為一循序資料並且判斷該其中一個邏輯頁面是否為該些邏輯單元之中的其中一個邏輯單元的一起始邏輯頁面;倘若該更新資料為該循序資料並且該其中一個邏輯頁面為該起始邏輯頁面時,從該閒置區的該些實體單元中提取一個實體單元作為一第二全域隨機實體單元並且將該更新資料寫入至該第二全域隨機實體單元,其中該循序資料包括該主機系統依序地寫入至該些邏輯頁面之中連續的多個邏輯頁面中的多筆資料。
- 如申請專利範圍第1項所述之資料寫入方法,更包 括:判斷該第二全域隨機實體單元中是否儲存屬於該其中一個邏輯單元的完整有效資料;以及倘若該第二全域隨機實體單元中儲存屬於該其中一個邏輯單元的完整有效資料時,將該其中一個邏輯單元重新映射至該第二全域隨機實體單元。
- 如申請專利範圍第2項所述之資料寫入方法,更包括:維護一全域隨機實體單元搜尋表來記錄對應該些已更新邏輯頁面的多個更新資訊。
- 如申請專利範圍第3項所述之資料寫入方法,更包括:在將該更新資料寫入至該第二全域隨機實體單元之後,不將對應該其中一個邏輯頁面的一更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第4項所述之資料寫入方法,更包括:倘若該第二全域隨機實體單元中儲存非屬於該其中一個邏輯單元的完整有效資料時,將對應該其中一個邏輯頁面的該更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第1項所述之資料寫入方法,更包括:倘若該更新資料非為該循序資料時,將該更新資料寫入至該第一全域隨機實體單元中。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,並且每一該些實體區塊具有多個實體頁面,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以寫入一更新資料至該可複寫式非揮發性記憶體模組,其中該記憶體管理電路用以將該些實體區塊至少分組為一資料區與一閒置區,並且將屬於該資料區與該閒置區的該些實體區塊分組為多個實體單元,其中該閒置區的該些實體單元用以替換該資料區的該些實體單元以寫入資料,其中該記憶體管理電路更用以配置多個邏輯單元以映射該資料區的該些實體單元,其中每一該些邏輯單元具有多個邏輯頁面並且該更新資料屬於該些邏輯頁面的其中一個邏輯頁面,其中該記憶體管理電路更用以從該閒置區中提取至少一實體單元作為一第一全域隨機實體單元,其中該記憶體管理電路更用以判斷該更新資料是否為一循序資料並且判斷該其中一個邏輯頁面是否為該些邏輯單元之中的其中一個邏輯單元的一起始邏輯頁面, 倘若該更新資料為該循序資料並且該其中一個邏輯頁面為該起始邏輯頁面時,該記憶體管理電路更用以從該閒置區的該些實體單元中提取一個實體單元作為一第二全域隨機實體單元並且將該更新資料寫入至該第二全域隨機實體單元,其中該循序資料包括該主機系統依序地寫入至該些邏輯頁面之中連續的多個邏輯頁面中的多筆資料。
- 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路更用以判斷該第二全域隨機實體單元中是否儲存屬於該其中一個邏輯單元的完整有效資料,其中倘若該第二全域隨機實體單元中儲存屬於該其中一個邏輯單元的完整有效資料時,該記憶體管理電路更用以將該其中一個邏輯單元重新映射至該第二全域隨機實體單元。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路更用以維護一全域隨機實體單元搜尋表來記錄對應該些已更新邏輯頁面的多個更新資訊。
- 如申請專利範圍第9項所述之記憶體控制器,其中該記憶體管理電路更用以在將該更新資料寫入至該第二全域隨機實體單元之後,不將對應該其中一個邏輯頁面的一更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第10項所述之記憶體控制器,倘若該第二全域隨機實體單元中儲存非屬於該其中一個邏輯單元的完整有效資料時,該記憶體管理電路更用以將對應 該其中一個邏輯頁面的該更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第7項所述之記憶體控制器,倘若該更新資料非為該循序資料時,該記憶體管理電路更用以將該更新資料寫入至該第一全域隨機實體單元中。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體區塊並且每一該些實體區塊具有多個實體頁面;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並且用以寫入一更新資料至該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以將該些實體區塊至少分組為一資料區與一閒置區,並且將屬於該資料區與該閒置區的該些實體區塊分組為多個實體單元,其中該閒置區的該些實體單元用以替換該資料區的該些實體單元以寫入資料,其中該記憶體控制器更用以配置多個邏輯單元以映射該資料區的該些實體單元,其中每一該些邏輯單元具有多個邏輯頁面並且該更新資料屬於該些邏輯頁面的其中一個邏輯頁面,其中該記憶體控制器更用以從該閒置區中提取至少一實體單元作為一第一全域隨機實體單元,其中該記憶體控制器更用以判斷該更新資料是否為 一循序資料並且判斷該其中一個邏輯頁面是否為該些邏輯單元之中的其中一個邏輯單元的一起始邏輯頁面,倘若該更新資料為該循序資料並且該其中一個邏輯頁面為該起始邏輯頁面時,該記憶體控制器更用以從該閒置區的該些實體單元中提取一個實體單元作為一第二全域隨機實體單元並且將該更新資料寫入至該第二全域隨機實體單元,其中該循序資料包括該主機系統依序地寫入至該些邏輯頁面之中連續的多個邏輯頁面中的多筆資料。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以判斷該第二全域隨機實體單元中是否儲存屬於該其中一個邏輯單元的完整有效資料,其中倘若該第二全域隨機實體單元中儲存屬於該其中一個邏輯單元的完整有效資料時,該記憶體控制器更用以將該其中一個邏輯單元重新映射至該第二全域隨機實體單元。
- 如申請專利範圍第14項所述之記憶體儲存裝置,其中該記憶體控制器更用以維護一全域隨機實體單元搜尋表來記錄對應該些已更新邏輯頁面的多個更新資訊。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器更用以,在將該更新資料寫入至該第二全域隨機實體單元之後,不將對應該其中一個邏輯頁面的一更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第16項所述之記憶體儲存裝置,倘若該第二全域隨機實體單元中儲存非屬於該其中一個邏輯單元的完整有效資料時,該記憶體控制器更用以將對應該其中一個邏輯頁面的該更新資訊記錄至該全域隨機實體單元搜尋表中。
- 如申請專利範圍第13項所述之記憶體儲存裝置,倘若該更新資料非為該循序資料時,該記憶體控制器更用以將該更新資料寫入至該第一全域隨機實體單元中。
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有多個實體頁面,該些實體區塊至少分組為一資料區與一閒置區,屬於該資料區與該閒置區的該些實體區塊被分組為多個實體單元,該資料區的該些實體單元映射多個邏輯單元,每一該些邏輯單元具有多個邏輯頁面,該閒置區的該些實體單元之中的一第一實體單元被用作為一目前全域隨機實體單元來寫入資料,該資料寫入方法包括:a.從一主機系統接收至少一寫入指令與對應該至少一寫入指令的多筆更新資料,其中每一該些更新資料對應該些邏輯頁面之中的其中一個邏輯頁面;b.判斷該些更新資料是否為一循序資料,其中倘若該些更新資料為該循序資料時標記一第一旗標;c.根據該些更新資料對應的該些邏輯頁面依序地選擇該些更新資料之中未被寫入的其中一個更新資料並且執行 步驟d;d.判斷該第一旗標是否已被標記,其中倘若該第一旗標未被標記時執行步驟h並且倘若該第一旗標已被標記時執行步驟e;e.判斷一第二旗標示是否已被標記,其中倘若該第二旗標未被標記時執行步驟f並且倘若該第二旗標已被標記時執行步驟i;f.判斷該其中一個更新資料對應的一邏輯頁面是否為一起始邏輯頁面,其中倘若該其中一個更新資料對應的該邏輯頁面為該起始邏輯頁面時執行步驟g並且倘若該其中一個更新資料對應的該邏輯頁面非為該起始邏輯頁面時執行步驟h;g.從該閒置區的該些實體單元之中提取一第二實體單元,將該其中一個更新資料依序地寫入至該第二實體單元中,將該第二實體單元作為該目前全域隨機實體單元,標記該第二旗標並且之後執行步驟j;h.將該其中一個更新資料依序地寫入至該目前全域隨機實體單元中,將關於該其中一個更新資料對應的該邏輯頁面的一更新資訊記錄至該全域隨機實體單元搜尋表中並且之後執行步驟j;i.將該其中一個更新資料依序地寫入至該目前全域隨機實體單元中,不將關於該其中一個更新資料對應的該邏輯頁面的該更新資訊記錄至該全域隨機實體單元搜尋表中並且之後執行步驟j;以及 j.判斷是否已將所有該些更新資料寫入至該可複寫式非揮發性記憶體中,其中倘若未將所有該些更新資料寫入至該可複寫式非揮發性記憶體中時,執行步驟c,其中該循序資料包括該主機系統依序地寫入至該些邏輯頁面之中連續的多個邏輯頁面中的多筆資料。
- 如申請專利範圍第19項所述之資料寫入方法,更包括:判斷該目前全域隨機實體單元是否已被寫滿;以及倘若該目前全域隨機實體單元已被寫滿時,從該閒置區的該些實體單元之中提取一第三實體單元作為該目前全域隨機實體單元。
- 如申請專利範圍第20項所述之資料寫入方法,更包括:倘若該目前全域隨機實體單元已被寫滿時,判斷該第二標記是否已被標記,其中倘若該第二標記已被標記時,將該些邏輯單元之中的其中一個邏輯單元重新映射至該目前全域隨機實體單元並且將該其中一個邏輯單元原先映射的一實體單元關聯至該閒置區,其中儲存於該目前全域隨機實體單元中的該些更新資料是屬於該其中一個邏輯單元。
- 如申請專利範圍第21項所述之資料寫入方法,更包括:從該主機系統接收至少一其他寫入指令與對應該至少一其他寫入指令的多筆其他更新資料,其中每一該些其 他更新資料對應該些邏輯頁面之中的其中一個邏輯頁面;以及根據上述步驟e、上述步驟f、上述步驟g、上述步驟h、上述步驟i與上述步驟j分別地將該些其他更新資料寫入至該些全域隨機實體單元中。
- 如申請專利範圍第22項所述之資料寫入方法,更包括:判斷對應該些其他更新資料的該些邏輯頁面是否接續於對應該些更新資料的該些邏輯頁面,其中倘若對應該些其他更新資料的該些邏輯頁面非接續於對應該些更新資料的該些邏輯頁面時,反標記該第一旗標與該第二旗標並且將該些更新資料所對應的該些邏輯頁面的該些更新資訊之中至少一未記錄更新資訊記錄至該全域隨機實體單元搜尋表中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099143385A TWI463495B (zh) | 2010-12-10 | 2010-12-10 | 資料寫入方法、記憶體控制器與儲存裝置 |
US13/038,392 US8762685B2 (en) | 2010-12-10 | 2011-03-02 | Data writing method, memory controller and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099143385A TWI463495B (zh) | 2010-12-10 | 2010-12-10 | 資料寫入方法、記憶體控制器與儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201225085A TW201225085A (en) | 2012-06-16 |
TWI463495B true TWI463495B (zh) | 2014-12-01 |
Family
ID=46200613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099143385A TWI463495B (zh) | 2010-12-10 | 2010-12-10 | 資料寫入方法、記憶體控制器與儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8762685B2 (zh) |
TW (1) | TWI463495B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614604B (zh) * | 2014-12-08 | 2018-02-11 | 英特爾公司 | 用於降低在主機與儲存裝置之間的潛時之設備及方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015066702A2 (en) * | 2013-11-04 | 2015-05-07 | Falconstor, Inc. | Write performance preservation with snapshots |
TWI557744B (zh) * | 2015-01-27 | 2016-11-11 | 緯創資通股份有限公司 | 資料儲存方法及嵌入式系統 |
US11762575B2 (en) * | 2019-07-31 | 2023-09-19 | Hewlett-Packard Development Company, L.P. | Updates to flash memory based on determinations of bits to erase |
TWI721660B (zh) * | 2019-11-22 | 2021-03-11 | 財團法人工業技術研究院 | 控制資料讀寫裝置與方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144360A1 (en) * | 2003-12-30 | 2005-06-30 | Bennett Alan D. | Non-volatile memory and method with block management system |
US20050144358A1 (en) * | 2003-12-30 | 2005-06-30 | Conley Kevin M. | Management of non-volatile memory systems having large erase blocks |
US20080071969A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Method for Class-Based Update Block Replacement Rules in Non-Volatile Memory |
US20100169544A1 (en) * | 2008-12-31 | 2010-07-01 | Eom Young-Ik | Methods for distributing log block associativity for real-time system and flash memory devices performing the same |
US20100174847A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Non-Volatile Memory and Method With Write Cache Partition Management Methods |
US20100257309A1 (en) * | 2009-04-06 | 2010-10-07 | Boris Barsky | Device and method for managing a flash memory |
-
2010
- 2010-12-10 TW TW099143385A patent/TWI463495B/zh active
-
2011
- 2011-03-02 US US13/038,392 patent/US8762685B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144360A1 (en) * | 2003-12-30 | 2005-06-30 | Bennett Alan D. | Non-volatile memory and method with block management system |
US20050144358A1 (en) * | 2003-12-30 | 2005-06-30 | Conley Kevin M. | Management of non-volatile memory systems having large erase blocks |
US20080071969A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Method for Class-Based Update Block Replacement Rules in Non-Volatile Memory |
US20100169544A1 (en) * | 2008-12-31 | 2010-07-01 | Eom Young-Ik | Methods for distributing log block associativity for real-time system and flash memory devices performing the same |
US20100174847A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Non-Volatile Memory and Method With Write Cache Partition Management Methods |
US20100257309A1 (en) * | 2009-04-06 | 2010-10-07 | Boris Barsky | Device and method for managing a flash memory |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614604B (zh) * | 2014-12-08 | 2018-02-11 | 英特爾公司 | 用於降低在主機與儲存裝置之間的潛時之設備及方法 |
Also Published As
Publication number | Publication date |
---|---|
US8762685B2 (en) | 2014-06-24 |
TW201225085A (en) | 2012-06-16 |
US20120151180A1 (en) | 2012-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI443512B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI442230B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
TW201303583A (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI421683B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
CN107818808B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI457755B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI463495B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN102543183B (zh) | 数据写入方法、存储器控制器与储存装置 | |
TWI564901B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI584292B (zh) | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |