TWI470431B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI470431B TWI470431B TW102121181A TW102121181A TWI470431B TW I470431 B TWI470431 B TW I470431B TW 102121181 A TW102121181 A TW 102121181A TW 102121181 A TW102121181 A TW 102121181A TW I470431 B TWI470431 B TW I470431B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- logical
- area
- unit
- global
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
快閃記憶體模組具有多個實體抹除單元且每一實體抹除單元具有多個實體程式化單元(physical page),其中在實體抹除單元中寫入資料時必須依據實體程式化單元的順序寫入資料。此外,已被寫入資料之實體程式化單元並需先被抹除後才能再次用
於寫入資料。特別是,實體抹除單元為抹除之最小單位,並且實體程式化單元為程式化(亦稱寫入)的最小單元。因此,在快閃記憶體模組的管理中,實體抹除單元會被區分為資料區與閒置區。
資料區的實體抹除單元是用以儲存主機系統所儲存之資料。具體來說,記憶體儲存裝置中的記憶體管理電路會將主機系統所存取的邏輯存取位址轉換為邏輯區塊的邏輯頁面並且將邏輯區塊的邏輯頁面映射至資料區的實體抹除單元的實體程式化單元。也就是說,快閃記憶體模組的管理上資料區的實體抹除單元是被視為已被使用之實體抹除單元(例如,已儲存主機系統所寫入的資料)。例如,記憶體管理電路會使用邏輯轉實體位址映射表來記載邏輯區塊與資料區的實體抹除單元的映射關係,其中邏輯區塊中的邏輯頁面是對應所映射之實體抹除單元的實體程式化單元。
閒置區的實體抹除單元是用以輪替資料區中的實體抹除單元。具體來說,如上所述,已寫入資料的實體抹除單元必須被抹除後才可再次用於寫入資料,因此,閒置區的實體抹除單元是被設計用於寫入更新資料以替換映射邏輯區塊的實體抹除單元。基此,在閒置區中的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。
也就是說,資料區與閒置區的實體抹除單元的實體程式化單元是以輪替方式來映射邏輯區塊的邏輯頁面,以儲存主機系統所寫入的資料。例如,記憶體儲存裝置的記憶體管理電路會從
閒置區中提取一個或多個實體抹除單元作為全域混亂實體抹除單元,並且當主機系統欲寫入更新資料的邏輯存取位址是對應記憶體儲存裝置之某一邏輯區塊的某一邏輯頁面時,記憶體儲存裝置的記憶體管理電路會將此更新資料寫入至全域混亂實體抹除單元的實體程式化單元中。
特別是,在記憶體儲存裝置運作期間,當全域混亂實體抹除單元快被耗盡時,記憶體儲存裝置的記憶體管理電路會將儲存在全域混亂實體抹除單元中的資料整理至對應的實體抹除單元中(以下稱為「有效資料合併運作」),以騰出全域混亂實體抹除單元的儲存空間,已執行後續的寫入指令。在將儲存在全域混亂實體抹除單元中的資料整理至對應的實體抹除單元中後,記憶體儲存裝置的記憶體管理電路需更新邏輯轉實體位址映射表,以使後續的存取運作能夠正常被執行。由於記憶體儲存裝置的容量越來越大,因此,一般會使用多個邏輯轉實體位址映射表來記錄所有邏輯區塊與實體抹除單元之間的映射。因此,當需先進行「有效資料合併運作」方能完成來自於主機系統的寫入指令時,可能會因為需要多次的進行載入與回存不同的邏輯轉實體位址映射表以將全域混亂區搜尋表中的資訊記錄至邏輯轉實體位址映射表,而導致延遲完成此寫入指令的時間,造成記憶體儲存裝置的效能低落。
本發明提供一種資料寫入方法、記憶體控制器、記憶體控制器與記憶體儲存裝置,其能夠有效地降低在執行寫入指令時因進行全域混亂實體抹除單元有效資料合併運作而造成的延遲。
本發明一範例實施例提出一種用於寫入資料至可複寫式非揮發性記憶體模組的資料寫入方法,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,此些實體抹除單元至少分組為資料區與閒置區,此閒置區的實體抹除單元用以替換資料區的實體抹除單元以寫入資料,多個邏輯單元被配置以映射此資料區的實體抹除單元,並且每一邏輯單元具有多個邏輯頁面。本資料寫入方法包括:從閒置區的實體抹除單元中提取至少一個實體抹除單元作為全域混亂區,其中此全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且此些已更新邏輯頁面屬於此些邏輯單元之中的多個已更新邏輯單元。本資料寫入方法還包括建立全域混亂區搜尋表以記錄在全域混亂區中對應此些已更新邏輯頁面的多個更新資訊。本資料寫入方法也包括接收寫入指令與對應此寫入指令的更新資料,其中此更新資料是屬於第一邏輯頁面並且第一邏輯頁面屬於此些邏輯單元之中的第一邏輯單元。本資料寫入方法更包括記錄對應此全域混亂區的資料零散程度;判斷對應此全域混亂區的資料零散程度是否小於資料零散程度門檻值;以及倘若對應此全域混亂區的資料零散程度小於資料零散程度門檻值時,將此更新資料寫入至此全域混亂區中並且在全域混亂區搜尋表中記錄對應第
一邏輯頁面的更新資訊。
在本發明之一範例實施例中,上述之資料寫入方法更包括:倘若對應此全域混亂區的該資料零散程度非小於資料零散程度門檻值時,從閒置區中提取第一實體抹除單元作為對應第一邏輯單元的子實體抹除單元,將更新資料寫入至此子實體抹除單元中,並且更新對應第一邏輯單元的邏輯轉實體位址映射表,其中此子實體抹除單元只用以儲存屬於第一邏輯單元之資料。
在本發明之一範例實施例中,上述之資料寫入方法更包括:將此些邏輯單元分組成多個邏輯區域;以及配置多個邏輯轉實體位址映射表以分別地指派給此些邏輯區域,其中此些邏輯轉實體位址映射表用以記錄此些邏輯區域的邏輯單元與上述資料區的實體抹除單元之間的多個映射關係並且每一邏輯轉實體位址映射表被獨立地配置給此些邏輯區域的其中之一。
在本發明之一範例實施例中,此些已更新邏輯單元屬於此些邏輯區域之中的多個已更新邏輯區域。並且,記錄對應此全域混亂區的資料零散程度的步驟包括:計算此些已更新邏輯區域的數目;以及記錄此些已更新邏輯區域的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,上述記錄對應此全域混亂區的資料零散程度的步驟包括:計算上述已更新邏輯單元的數目;以及記錄此些已更新邏輯單元的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,上述記錄對應此全域混亂區的資料零散程度的步驟包括:計算多個待更新邏輯轉實體位址映射表的數目以及記錄此些待更新邏輯轉實體位址映射表的數目作為對應全域混亂區的資料零散程度,其中此些待更新邏輯轉實體位址映射表用以記錄上述已更新邏輯單元與上述資料區的實體抹除單元之間的映射。
在本發明之一範例實施例中,上述資料寫入方法,更包括:判斷全域混亂區中是否存有屬於上述第一邏輯單元的有效資料;以及若全域混亂區中存有屬於上述第一邏輯單元的有效資料時,將上述更新資料寫入至全域混亂區中,其中上述判斷對應全域混亂區的資料零散程度是否小於資料零散程度門檻值的步驟是在全域混亂區中未存有屬於上述第一邏輯單元的有效資料時被執行。
本發明一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制器,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,此些實體抹除單元至少分組為資料區與閒置區,閒置區的實體抹除單元用以替換資料區的實體抹除單元以寫入資料。記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,並且用以配置多個邏輯單元以映射資料區的該些實體抹除單
元,其中每一邏輯單元具有多個邏輯頁面。此外,記憶體管理電路更用以從閒置區的實體抹除單元中提取至少一個實體抹除單元作為全域混亂區,其中此全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且此些已更新邏輯頁面屬於上述邏輯單元之中的多個已更新邏輯單元。另外,記憶體管理電路更用以建立全域混亂區搜尋表以記錄在此全域混亂區中對應此些已更新邏輯頁面的多個更新資訊。在此,記憶體管理電路更用以接收寫入指令與對應此寫入指令的更新資料,此更新資料是屬於第一邏輯頁面並且第一邏輯頁面屬於第一邏輯單元。再者,記憶體管理電路更用以記錄對應全域混亂區的資料零散程度並且判斷對應全域混亂區的資料零散程度是否小於資料零散程度門檻值。倘若對應全域混亂區的資料零散程度小於資料零散程度門檻值時,記憶體管理電路將更新資料寫入至全域混亂區中並且在全域混亂區搜尋表中記錄對應第一邏輯頁面的更新資訊。
在本發明之一範例實施例中,倘若對應此全域混亂區的該資料零散程度非小於資料零散程度門檻值時,上述記憶體管理電路從閒置區中提取第一實體抹除單元作為對應第一邏輯單元的子實體抹除單元,將更新資料寫入至此子實體抹除單元中,並且更新對應第一邏輯單元的邏輯轉實體位址映射表,其中此子實體抹除單元只用以儲存屬於第一邏輯單元之資料。
在本發明之一範例實施例中,上述記憶體管理電路更用以將此些邏輯單元分組成多個邏輯區域以及配置多個邏輯轉實體
位址映射表以分別地指派給此些邏輯區域,其中此些邏輯轉實體位址映射表用以記錄此些邏輯區域的邏輯單元與上述資料區的實體抹除單元之間的多個映射並且每一邏輯轉實體位址映射表被獨立地配置給此些邏輯區域的其中之一。
在本發明之一範例實施例中,此些已更新邏輯單元屬於此些邏輯區域之中的多個已更新邏輯區域。並且,在上述記錄對應此全域混亂區的資料零散程度的運作中,上述記憶體管理電路計算此些已更新邏輯區域的數目並且記錄此些已更新邏輯區域的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,在上述記錄對應此全域混亂區的資料零散程度的運作中,上述記憶體管理電路計算上述已更新邏輯單元的數目並且記錄此些已更新邏輯單元的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,在上述記錄對應此全域混亂區的資料零散程度的運作中,上述記憶體管理電路計算多個待更新邏輯轉實體位址映射表的數目並且記錄此些待更新邏輯轉實體位址映射表的數目作為對應全域混亂區的資料零散程度,其中此些待更新邏輯轉實體位址映射表用以記錄上述已更新邏輯單元與上述資料區的實體抹除單元之間的映射。
在本發明之一範例實施例中,記憶體管理電路更用以判斷全域混亂區中是否存有屬於上述第一邏輯單元的有效資料,其中若全域混亂區中存有屬於上述第一邏輯單元的有效資料時,記
憶體管理電路將上述更新資料寫入至全域混亂區中,其中記憶體管理電路是在全域混亂區中未存有屬於第一邏輯單元的有效資料時執行上述判斷對應全域混亂區的資料零散程度是否小於資料零散程度門檻值的運作。
本發明一範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,此些實體抹除單元至少分組為資料區與閒置區,且閒置區的實體抹除單元用以替換資料區的實體抹除單元以寫入資料。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,並且用以配置多個邏輯單元以映射資料區的該些實體抹除單元,其中每一邏輯單元具有多個邏輯頁面。此外,記憶體控制器更用以從閒置區的實體抹除單元中提取至少一個實體抹除單元作為全域混亂區,其中此全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且此些已更新邏輯頁面屬於上述邏輯單元之中的多個已更新邏輯單元。另外,記憶體控制器更用以建立全域混亂區搜尋表以記錄在此全域混亂區中對應此些已更新邏輯頁面的多個更新資訊。在此,記憶體控制器更用以接收寫入指令與對應此寫入指令的更新資料,此更新資料是屬於第一邏輯頁面並且第一邏輯頁面屬於第一邏輯單元。再者,記憶體控制器更用以記錄對應全域混亂區的資料零散程度並且判斷對應全域混亂區的資料零散程度是否小於
資料零散程度門檻值。倘若對應全域混亂區的資料零散程度小於資料零散程度門檻值時,記憶體控制器將更新資料寫入至全域混亂區中並且在全域混亂區搜尋表中記錄對應第一邏輯頁面的更新資訊。
在本發明之一範例實施例中,倘若對應此全域混亂區的該資料零散程度非小於資料零散程度門檻值時,上述記憶體控制器從閒置區中提取第一實體抹除單元作為對應第一邏輯單元的子實體抹除單元,將更新資料寫入至對應第一邏輯單元的子實體抹除單元中,並且更新對應第一邏輯單元的邏輯轉實體位址映射表,其中此子實體抹除單元只用以儲存屬於第一邏輯單元之資料。
在本發明之一範例實施例中,上述記憶體控制器更用以將此些邏輯單元分組成多個邏輯區域以及配置多個邏輯轉實體位址映射表以分別地指派給此些邏輯區域,其中此些邏輯轉實體位址映射表用以記錄此些邏輯區域的邏輯單元與上述資料區的實體抹除單元之間的多個映射關係並且每一邏輯轉實體位址映射表被獨立地配置給此些邏輯區域的其中之一。
在本發明之一範例實施例中,此些已更新邏輯單元屬於此些邏輯區域之中的多個已更新邏輯區域。並且,在上述記錄對應此全域混亂區的資料零散程度的運作中,上述記憶體控制器計算此些已更新邏輯區域的數目並且記錄此些已更新邏輯區域的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,在上述記錄對應此全域混
亂區的資料零散程度的運作中,上述記憶體控制器計算上述已更新邏輯單元的數目並且記錄此些已更新邏輯單元的數目作為對應全域混亂區的資料零散程度。
在本發明之一範例實施例中,在上述記錄對應此全域混亂區的資料零散程度的運作中,上述記憶體控制器計算多個待更新邏輯轉實體位址映射表的數目並且記錄此些待更新邏輯轉實體位址映射表的數目作為對應全域混亂區的資料零散程度,其中此些待更新邏輯轉實體位址映射表用以記錄上述已更新邏輯單元與上述資料區的實體抹除單元之間的映射。
在本發明之一範例實施例中,記憶體控制器更用以判斷全域混亂區中是否存有屬於上述第一邏輯單元的有效資料,其中若全域混亂區中存有屬於上述第一邏輯單元的有效資料時,記憶體控制器將上述更新資料寫入至全域混亂區中,其中記憶體控制器是在全域混亂區中未存有屬於第一邏輯單元的有效資料時執行上述判斷對應全域混亂區的資料零散程度是否小於資料零散程度門檻值的運作。
基於上述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠避免在執行全域混亂實體抹除單元有效資料合併運作時耗費過多時間於更新邏輯轉實體位址映射表,由此提升執行寫入指令的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
550‧‧‧全域混亂區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
800‧‧‧全域混亂區搜尋表
810(0)~810(4)‧‧‧根單元
902‧‧‧第一欄位
904‧‧‧第二欄位
906‧‧‧第三欄位
S2501、S2503、S2505、S2507、S2509、S2511‧‧‧資料寫入方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8~14是繪示使用全域混亂區寫入資料的簡化範例。
圖15是根據圖14所繪示之全域混亂區搜尋表的簡化範例。
圖16~21是繪示執行全域混亂區有效資料合併程序以完成後續寫入指令的簡化範例。
圖22~圖24是繪示的使用子實體單元來寫入更新資料的範例。
圖25是根據一範例實施例所繪示的資料寫入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置
100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parellel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、安全數位(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)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤
更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖5,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且
在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路
是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體208、電源管理電路210與錯誤檢查與校正電路212。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據第一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制器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中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區
508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制器104(或記憶體管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯頁面以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。
為了識別資料每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統1000欲在邏輯頁面中存取資料時,記憶體控制器104(或記憶體管理電路202)會確認此邏輯頁面所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯轉實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制器104(或記憶體管理電路202)會將邏輯轉實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲
存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯轉實體位址映射表。特別是,當記憶體控制器104(或記憶體管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯轉實體位址映射表會被載入至緩衝記憶體208來被更新。
在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取實體抹除單元作為全域混亂區,並且將包含於來自主機系統1000之寫入指令中的資料(亦稱為更新資料)寫入至全域混亂區的實體抹除單元(亦稱為全域混亂實體抹除單元)中。在本範例實施例中,全域混亂實體抹除單元是設計來儲存分別對應於不同邏輯單元之資料。
具體來說,當記憶體儲存裝置100從主機系統1000接收到寫入指令時,來自於主機系統1000之寫入指令中的資料可被寫入至全域混亂區的實體抹除單元中。並且,當此全域混亂實體抹除單元已被寫滿時,記憶體控制器104(或記憶體管理電路202)會再從閒置區504中提取空的實體抹除單元作為另一個全域混亂實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的更新資料。直到作為全域混亂區的實體抹除單元的數目已到達一上限值時,記憶體控制器104(或記憶體管理電路202)會執行資料合併程序,以使儲存於全域混亂實體抹除單元中的資料成為無效
資料,並且之後將所儲存之資料皆為無效資料之全域混亂實體抹除單元關聯回閒置區504。
圖8~14是繪示使用全域混亂區寫入資料的簡化範例。
為方便說明,在此假設資料區502具有5個實體抹除單元,閒置區504具有4個實體抹除單元,每一實體抹除單元具有3個實體程式化單元,欲寫入至每一實體抹除單元的資料必須依照實體程式化單元的順序來被寫入,並且作為全域混亂實體抹除單元之實體抹除單元數的上限值為2。
請參照圖8,在記憶體儲存裝置100的初始狀態中,邏輯單元LBA(0)~LBA(4)的邏輯頁面映射資料區502的實體抹除單元410(0)~410(4)的實體程式化單元,並且閒置區504具有實體抹除單元410(5)~410(8)。也就是說,記憶體控制器104(或記憶體管理電路202)會在邏輯轉實體位址映射表中記錄邏輯單元LBA(0)~LBA(4)與實體抹除單元410(0)~410(4)之間的映射關係,並且將實體抹除單元410(0)~410(4)的實體程式化單元視為已儲存屬於邏輯單元LBA(0)~LBA(4)的邏輯頁面的資料(即,初始資料ID1~ID15)。必須瞭解的是,在記憶體儲存裝置100剛出廠時,初始資料ID1~ID15可能為空資料。此外,記憶體控制器104(或記憶體管理電路202)會記錄閒置區504中可用的實體抹除單元410(5)~410(8)。
請參照圖9,假設欲程式化更新資料UD1並且更新資料UD1是屬於邏輯單元LBA(0)的第1個邏輯頁面時,記憶體控制器
104(或記憶體管理電路202)會從閒置區504中提取實體抹除單元410(5)作為全域混亂區550的實體抹除單元並且下達程式化指令以將此更新資料UD1寫入至實體抹除單元410(5)的第0個實體程式化單元。
請參照圖10,接續圖9,假設欲再程式化更新資料UD2並且更新資料UD2是屬於邏輯單元LBA(1)的第0個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會下達程式化指令以將此更新資料UD2寫入至實體抹除單元410(5)的第1個實體程式化單元。
請參照圖11,接續圖10,假設欲再程式化更新資料UD3並且更新資料UD3是屬於邏輯單元LBA(2)的第1個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會下達程式化指令以將此更新資料UD3寫入至實體抹除單元410(5)的第2個實體程式化單元。
請參照圖12,接續圖11,假設欲再程式化更新資料UD4並且更新資料UD4是屬於邏輯單元LBA(3)的第0個邏輯頁面時,由於全域混亂實體抹除單元410(5)已無儲存空間,因此,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取實體抹除單元410(6)作為全域混亂區550的實體抹除單元並且下達程式化指令以將此更新資料UD4寫入至實體抹除單元410(6)的第0個實體程式化單元。
請參照圖13,接續圖12,假設欲再程式化更新資料UD5
並且更新資料UD5是屬於邏輯單元LBA(3)的第1個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會下達程式化指令以將此更新資料UD5寫入至實體抹除單元410(6)的第1個實體程式化單元。
請參照圖14,接續圖13,假設欲再程式化更新資料UD6並且更新資料UD6是屬於邏輯單元LBA(0)的第2個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會下達程式化指令以將此更新資料UD6寫入至實體抹除單元410(6)的第2個實體程式化單元。
為了能夠識別儲存於全域混亂區的實體抹除單元中之資料是屬於那個邏輯單元(亦稱為已更新邏輯單元)的那個邏輯頁面(亦稱為已更新邏輯頁面),在本範例實施例中,記憶體管理電路202會建立全域混亂區搜尋表,以利有效資料的搜尋。在此,暫存於全域混亂區中之更新資料所屬的邏輯頁面稱為已更新邏輯頁面並且已更新邏輯頁面所屬的邏輯單元區塊稱為已更新邏輯單元。在全域混亂區搜尋表中,記憶體控制器104(或記憶體管理電路202)會建立多個根單元並且為每一根單元配置一登錄鏈結。特別是,記憶體控制器104(或記憶體管理電路202)會將邏輯單元的邏輯頁面分組來分別地對應至其中一個根單元,並且將已更新邏輯頁面的更新資訊記錄在對應之根單元的登錄鏈結上。基此,當欲在全域混亂實體抹除單元中搜尋特定邏輯單元的更新資料時,僅需搜尋對應之根單元的登錄鏈結。
例如,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會將每一邏輯單元的邏輯頁面分別地對應至同一個根單元。也就是,同一個邏輯單元的邏輯頁面是對應同一個根單元。必須瞭解的是,本發明不限於此,例如,在本發明另一範例實施中,亦可將一個邏輯單元的一部份邏輯頁面分組至一個根單元並且將此邏輯單元的另一部分邏輯頁面分組至另一根單元。
此外,當為每一根單元分別地配置一個登錄鏈結並且每當執行寫入指令時,記憶體控制器104(或記憶體管理電路202)會在對應的登錄鏈結上建立登錄以記錄關於此寫入指令的更新資訊。例如,每一登錄包括第一欄位(例如,圖15的欄位902)、第二欄位(例如,圖15的欄位904)與第三欄位(例如,圖6的欄位906),其中第一欄位記錄已更新邏輯頁面的位址,第二欄位用以記錄儲存此已更新邏輯頁面之更新資料的實體位址,並且第三欄位用以標記此登錄是否有效。在此,若此登錄為有效,則第三欄位例如會被標記為’1’;並且若此登錄為無效,則第三欄位例如會被標記為’0’。必須瞭解的是,在此標記有效登錄與無效登錄的方式,不限於此。例如,亦可以’1’代表無效登錄並且以’0’代表有效登錄。
圖15是根據圖14所繪示之全域混亂區搜尋表的簡化範例。
請參照圖15,全域混亂區搜尋表800包括根單元810(0)~810(4),其中邏輯單元LBA(0)的邏輯頁面是對應根單元
810(0),邏輯單元LBA(1)的邏輯頁面是對應根單元810(1),邏輯單元LBA(2)的邏輯頁面是對應根單元810(2),邏輯單元LBA(3)的邏輯頁面是對應根單元810(3),並且邏輯單元LBA(4)的邏輯頁面是對應根單元810(4)。
在根單元810(0)的登錄鏈結中包含2個有效登錄,以記錄邏輯單元LBA(0)的第1個邏輯頁面(即,資訊"LBA(0)-1")與第2個邏輯頁面(即,資訊"LBA(0)-2")已被更新,其中邏輯單元LBA(0)的第1個邏輯頁面的更新資料被寫入至實體抹除單元410(5)的第0個實體程式化單元(即,資訊"410(5)-0")中並且邏輯單元LBA(0)的第2個邏輯頁面的更新資料被寫入至實體抹除單元410(6)的第2個實體程式化單元(即,資訊"410(6)-2")中。
在根單元810(1)的登錄鏈結中包含1個有效登錄,以記錄邏輯單元LBA(1)的第0個邏輯頁面(即,資訊"LBA(1)-0")已被更新,其中邏輯單元LBA(1)的第0個邏輯頁面的更新資料被寫入至實體抹除單元410(5)的第1個實體程式化單元(即,資訊"410(5)-1")中。
在根單元810(2)的登錄鏈結中包含1個有效登錄,以記錄邏輯單元LBA(2)的第1個邏輯頁面(即,資訊"LBA(2)-1")已被更新,其中邏輯單元LBA(2)的第1個邏輯頁面的更新資料被寫入至實體抹除單元410(5)的第2個實體程式化單元(即,資訊"410(5)-2")中。
在根單元810(3)的登錄鏈結中包含2個有效登錄,以記
錄邏輯單元LBA(3)的第0個邏輯頁面(即,資訊"LBA(3)-0")與第1個邏輯頁面(即,資訊"LBA(3)-1")已被更新,其中邏輯單元LBA(3)的第0個邏輯頁面的更新資料被寫入至實體抹除單元410(6)的第0個實體程式化單元(即,資訊"410(6)-0")中並且邏輯單元LBA(3)的第1個邏輯頁面的更新資料被寫入至實體抹除單元410(6)的第1個實體程式化單元(即,資訊"410(6)-1")中。
此外,在根單元810(0)~810(4)的登錄鏈結中分別地會包含1個空的登錄,以表示登錄鏈結的結束。例如,倘若欲在全域混亂實體抹除單元中搜尋屬於邏輯單元LBA(4)的資料時,記憶體控制器104(或記憶體管理電路202)可根據根單元810(4)的登錄鏈結僅有空的登錄,而識別出全域混亂實體抹除單元中未儲存屬於邏輯單元LBA(4)的資料,由此可直接依據邏輯轉實體位址映射表的資訊從對應的實體抹除單元的實體程式化單元中讀取資料。
以此類推,記憶體控制器104(或記憶體管理電路202)會依序地將主機系統1000欲儲存的資料寫入至作為全域混亂區的實體抹除單元中。特別是,當全域混亂區的實體抹除單元的數目達到3時,記憶體控制器104(或記憶體管理電路202)會在執行寫入指令時一併執行資料合併程序,以防止閒置區的實體抹除單元被用盡。
圖16~21是繪示執行全域混亂區有效資料合併程序以完成後續寫入指令的簡化範例。
請參照圖16,接續圖14,假設欲再程式化更新資料UD7
並且更新資料UD7是屬於邏輯單元LBA(2)的第0個邏輯頁面時,由於全域混亂實體抹除單元410(6)已無儲存空間,並且作為全域混亂區550的實體抹除單元的數目已達到2,因此,記憶體管理電路202在執行寫入運作之前會執行資料合併程序。也就是說,在此例子中,在執行此次寫入指令期間,記憶體管理電路202會一併執行資料合併程序。
例如,首先,記憶體控制器104(或記憶體管理電路202)會選擇邏輯單元LBA(0)來進行資料合併。此時,記憶體管理電路202會識別邏輯單元LBA(0)是映射實體抹除單元410(0),從閒置區504提取實體抹除單元410(7),並且將實體抹除單元410(0)以及全域混亂區550中屬於邏輯單元LBA(0)的有效資料複製到實體抹除單元410(7)中。具體來說,記憶體控制器104(或記憶體管理電路202)會依序地將實體抹除單元410(0)中的資料ID1、實體抹除單元410(5)中的UD1與實體抹除單元410(6)中的資料UD6寫入至實體抹除單元410(7)的第0~2個實體程式化單元中,並且將實體抹除單元410(5)的第0個實體程式化單元與實體抹除單元410(6)的第2個實體程式化單元標示為無效(如斜線所示)。之後,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(0)執行抹除運作,在邏輯轉實體位址映射表中將邏輯單元LBA(0)重新映射至實體抹除單元410(7),並且將實體抹除單元410(0)關聯至閒置區504。
請參照圖17,接著,記憶體控制器104(或記憶體管理電
路202)會選擇邏輯單元LBA(1)來進行資料合併。此時,記憶體管理電路202會識別邏輯單元LBA(1)是映射實體抹除單元410(1),從閒置區504提取實體抹除單元410(8),並且將實體抹除單元410(1)以及全域混亂區550中屬於邏輯單元LBA(1)的有效資料複製到實體抹除單元410(8)中。之後,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(1)執行抹除運作,在邏輯轉實體位址映射表中將邏輯單元LBA(1)重新映射至實體抹除單元410(8),並且將實體抹除單元410(1)關聯至閒置區504。
請參照圖18,接著,記憶體控制器104(或記憶體管理電路202)會選擇邏輯單元LBA(2)來進行資料合併。此時,記憶體管理電路202會識別邏輯單元LBA(2)是映射實體抹除單元410(2),從閒置區504提取實體抹除單元410(0),並且將實體抹除單元410(2)以及全域混亂區550中屬於邏輯單元LBA(2)的有效資料複製到實體抹除單元410(0)中。之後,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(2)執行抹除運作,在邏輯轉實體位址映射表中將邏輯單元LBA(2)重新映射至實體抹除單元410(0),並且將實體抹除單元410(2)關聯至閒置區504。
請參照圖19,接著,記憶體控制器104(或記憶體管理電路202)會選擇邏輯單元LBA(3)來進行資料合併時,記憶體管理電路202會識別邏輯單元LBA(3)是映射實體抹除單元410(3),從閒置區504提取實體抹除單元410(1),並且將實體抹除單元410(3)以及全域混亂區550中屬於邏輯單元LBA(3)的有效資料複製到實
體抹除單元410(1)中。之後,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(3)執行抹除運作,在邏輯轉實體位址映射表中將邏輯單元LBA(3)重新映射至實體抹除單元410(1),並且將實體抹除單元410(3)關聯至閒置區504。
特別是,此時,全域混亂區550的實體抹除單元所儲存的資料皆為無效資料,因此,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(5)與410(6)執行抹除運作,並且將抹除後的實體抹除單元410(5)與410(6)關聯至閒置區504(如圖20所示),由此完成全域混亂區550的有效資料合併運作。
請參照圖21,在完成全域混亂區550的有效資料合併運作之後,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取實體單元410(2)作為全域混亂區550的實體抹除單元並且下達程式化指令以將此更新資料UD7寫入至實體單元410(2)的第0個實體頁面。
基此,根據上述運作,記憶體控制器104(或記憶體管理電路202)會將全域混亂區550的實體抹除單元的上的有效資料回存至邏輯單元所映射的實體抹除單元中,將儲存無效資料的全域混亂實體抹除單元關聯回閒置區504,並且從閒置區504中提取空的實體抹除單元作為全域混亂實體抹除單元,以維持全域混亂區550的實體抹除單元的數目小於上限值。
值得一提的是,如上所述,當執行全域混亂區550的資料合併運作時,記憶體控制器104(或記憶體管理電路202)需合併
屬於不同邏輯單元的有效資料,並且更新邏輯轉實體位址映射表。特別是,如上所述,由於緩衝記憶體208的容量有限,只能載入有限的邏輯轉實體位址映射表,因此,倘若此些邏輯單元屬於不同的邏輯區域時,記憶體控制器104(或記憶體管理電路202)需多次載入與回存不同的邏輯轉實體位址映射表,方能完成全域混亂區550的資料合併運作,造成延遲寫入指令的執行。基此,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會記錄目前全域混亂區550的資料零散程度,並且判斷目前全域混亂區550的資料零散程度是否小於資料零散程度門檻值。特別是,只有在對應目前全域混亂區550的資料零散程度小於此資料零散程度門檻值時,記憶體控制器104(或記憶體管理電路202)才會使用全域混亂區550來儲存來自於主機系統1000的資料。
例如,在本發明一範例實施例中,記憶體控制器104(或記憶體管理電路202)會紀錄有多少個邏輯區域的資料被儲存在全域混亂區550中。具體來說,當將一個邏輯頁面的更新資料儲存至全域混亂區550時,記憶體控制器104(或記憶體管理電路202)可知道此邏輯頁面是屬那個邏輯單元(即,已更新邏輯單元)以及此邏輯單元是屬於那個邏輯區域(即,已更新邏輯區域),因此,記憶體控制器104(或記憶體管理電路202)可記錄目前已更新邏輯區域的數目(即,有多少個邏輯區域的資料被儲存在全域混亂區550中)。特別是,倘若目前已更新邏輯區域的數目大於預設值時,記憶體控制器104(或記憶體管理電路202)會識別目前全域混亂區
550的資料零散程度非小於資料零散程度門檻值。
值得一提的是,以已更新邏輯區域的數目來判斷全域混亂區550的資料零散程度僅為一範例,本發明不限於此。例如,在另一範例實施例中,記憶體控制器104(或記憶體管理電路202)亦可以更新邏輯單元的數目來識別全域混亂區550的資料零散程度。例如,倘若目前已更新邏輯單元的數目大於預設值時,記憶體控制器104(或記憶體管理電路202)會識別目前全域混亂區550的資料零散程度非小於資料零散程度門檻值。
再者,由於在執行全域混亂區550的資料合併運作時,需更新對應已更新邏輯單元的邏輯轉實體位址映射表(以下稱為待更新邏輯轉實體位址映射表)。因此,在另一範例實施例中,記憶體控制器104(或記憶體管理電路202)亦可以待更新邏輯轉實體位址映射表的數目來識別全域混亂區550的資料零散程度。例如,倘若待更新邏輯轉實體位址映射表的數目大於預設值時,記憶體控制器104(或記憶體管理電路202)會識別目前全域混亂區550的資料零散程度非小於資料零散程度門檻值。
在本範例實施例中,倘若對應目前全域混亂區550的資料零散程度非小於此資料零散程度門檻值時,記憶體控制器104(或記憶體管理電路202)會使用子實體抹除單元來寫入來自於主機系統1000的資料並且更新對應的邏輯轉實體位址映射表。
圖22~圖24是繪示使用子實體抹除單元來寫入更新資料的範例。
請同時參照圖22~圖24,例如,在邏輯單元LBA(0)是映射至實體抹除單元410(0)的映射狀態下,當記憶體控制器104(或記憶體管理電路202)從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯單元LBA(0)的邏輯頁面時,記憶體控制器104(或記憶體管理電路202)依據邏輯轉實體位址映射表識別邏輯單元LBA(0)目前是映射至實體抹除單元410(0)並且從閒置區504中提取實體抹除單元410(H+1)來輪替實體抹除單元410(0)。然而,當新資料寫入至實體抹除單元410(H+1)的同時,記憶體控制器104(或記憶體管理電路202)可不用立刻將實體抹除單元410(0)中的所有有效資料搬移至實體抹除單元410(H+1)而抹除實體抹除單元410(0)。具體來說,記憶體控制器104(或記憶體管理電路202)會從實體抹除單元410(0)中讀取欲寫入實體程式化單元之前的有效資料(即,實體抹除單元410(0)的第0實體程式化單元與第1實體程式化單元中的資料)。之後,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元410(0)中欲寫入實體程式化單元之前的有效資料寫入至實體抹除單元410(H+1)的第0實體程式化單元與第1實體程式化單元中(如圖22所示),並且將新資料寫入至實體抹除單元410(H+1)的第2~4個實體程式化單元中(如圖23所示)。此時,記憶體控制器104(或記憶體管理電路202)即完成寫入的運作。因為實體抹除單元410(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體抹除單元410(0)中的有效資料搬移至實體抹除單元410(H+1)可能會造成無謂的搬
移。此外,資料必須依序地寫入至實體抹除單元內的實體程式化單元,因此,記憶體控制器104(或記憶體管理電路202)可先搬移欲寫入實體程式化單元之前的有效資料(即,儲存在實體抹除單元410(0)的第0實體程式化單元與第0實體程式化單元中資料),並且暫不搬移其餘有效資料(即,儲存在實體抹除單元410(0)的第5~K實體程式化單元中資料)。
在本範例實施例中,暫時地維持此等暫態關係的運作稱為開啟(open)母子實體抹除單元,並且原實體抹除單元(例如,上述實體抹除單元410(0))稱為母實體抹除單元而用以替換母實體抹除單元的實體抹除單元(例如,上述與實體抹除單元410(H+1))稱為子實體抹除單元。
之後,當需要將實體抹除單元410(0)與實體抹除單元410(H+1)的資料合併(merge)時,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元410(0)與實體抹除單元410(H+1)的資料整併至一個實體抹除單元,由此提升實體抹除單元的使用效率。在此,合併母子實體抹除單元的運作稱為資料合併程序或關閉(close)母子實體抹除單元。例如,如圖24所示,當進行關閉母子區塊時,記憶體控制器104(或記憶體管理電路202)會從實體抹除單元410(0)中讀取剩餘的有效資料(即,實體抹除單元410(0)的第5~K實體程式化單元中的資料),將實體抹除單元410(0)中剩餘的有效資料寫入至實體抹除單元410(H+1)的第5實體程式化單元~第K實體程式化單元中,對實體抹除單元410(0)執行抹除操
作,抹除後之實體抹除單元410(0)關聯至閒置區504並且將實體抹除單元410(H+1)關聯至資料區502。也就是說,記憶體控制器104(或記憶體管理電路202)會在邏輯轉實體位址映射表中將邏輯單元LBA(0)重新映射至實體抹除單元410(H+1)。值得一提的是,閒置區504中實體抹除單元的數目是有限的,基此,在記憶體儲存裝置100運作期間,已開啟之母子實體抹除單元組的數目亦會受到限制。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子實體抹除單元組的數目達到上限時,記憶體控制器104需關閉至少一組目前已開啟之母子實體抹除單元組後才可執行此寫入指令。
圖25是根據本發明一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖25,在步驟S2501中,至少一個實體抹除單元會從閒置區504被提取作為全域混亂區550的實體抹除單元。
在步驟S2503中,全域混亂區搜尋表會被建立並儲存在緩衝記憶體208中以記錄在全域混亂區550中對應多個已更新邏輯頁面的更新資訊。
在步驟S2505中,指示寫入資料至一個邏輯單元(以下稱為第一邏輯單元)的一個邏輯頁面(以下稱為第一邏輯頁面)的寫入指令與對應此寫入指令的更新資料會被接收。
在步驟S2507中,目前全域混亂區550的資料零散程度會被記錄並且被判斷是否小於資料零散程度門檻值。
倘若目前全域混亂區550的資料零散程度小於資料零散程度門檻值時,則在步驟S2509中,此更新資料會被寫入至全域混亂區550中並且對應此第一邏輯頁面的更新資訊會被記錄在全域混亂區搜尋表中。寫入更新資料至全域混亂區550以及在全域混亂區搜尋表中記錄更新資訊的方式已配合圖8~15詳細描述如上,在此不再贅述。
倘若目前全域混亂區550的資料零散程度非小於資料零散程度門檻值時,則在步驟S2511中,一個實體抹除單元(以下稱為第一實體抹除單元)會從閒置區504中被提取作為對應第一邏輯單元的子實體抹除單元並且更新資料會被寫入至對應第一邏輯單元的子實體抹除單元中。以子實體抹除單元來寫入更新資料的方式已配合圖22~24詳細描述如上,在此不再贅述。
值得一提的是,倘若全域混亂區已存有屬於目前欲寫入更新資料的邏輯單元時,將更新資料寫入至全域混亂區550中並不會增加全域混亂區550的資料零散程度,因此,可直接將更新資料存入至全域混亂區550。例如,在本發明另一範例實施例中,在上述步驟S2507之前,可更判斷全域混亂區550是否存有屬於第一邏輯單元的有效資料。並且,倘若全域混亂區550存有屬於第一邏輯單元的有效資料時,步驟S2509會被執行。倘若全域混亂區550未存有屬於第一邏輯單元的有效資料時,才執行步驟S2507。
綜上所述,本發明範例實施例的資料寫入方法、記憶體
控制器與記憶體儲存裝置在將更新資料寫入至全域混亂區之前會計算全域混亂區的資料零散程度,並且僅當全域混亂區的資料零散程度小於資料零散程度門檻值才將更新資料暫存於全域混亂區中,由此可避免在執行全域混亂實體抹除單元有效資料合併運作時耗費過多時間於更新邏輯轉實體位址表,而延遲寫入指令的執行。因此,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置可有效地提升資料寫入的效能。
S2501、S2503、S2505、S2507、S2509、S2511‧‧‧資料寫入方法的步驟
Claims (21)
- 一種資料寫入方法,用於寫入資料至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,該些實體抹除單元至少分組為一資料區與一閒置區,該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料,多個邏輯單元被配置以映射該資料區的該些實體抹除單元,並且每一該些邏輯單元具有多個邏輯頁面,該資料寫入方法包括:從該閒置區的該些實體抹除單元中提取至少一個實體抹除單元作為一全域混亂區,其中該全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且該些已更新邏輯頁面屬於該些邏輯單元之中的多個已更新邏輯單元;建立一全域混亂區搜尋表以記錄在該全域混亂區中對應該些已更新邏輯頁面的多個更新資訊;接收一寫入指令與對應該寫入指令的一更新資料,其中該更新資料是屬於一第一邏輯頁面並且該第一邏輯頁面屬於該些邏輯單元之中的一第一邏輯單元;記錄對應該全域混亂區的一資料零散程度;判斷對應該全域混亂區的該資料零散程度是否小於一資料零散程度門檻值;以及倘若對應該全域混亂區的該資料零散程度小於該資料零散程度門檻值時,將該更新資料寫入至該全域混亂區中並且在該全域混亂區搜尋表中記錄對應該第一邏輯頁面的一更新資訊。
- 如申請專利範圍第1項所述的資料寫入方法,更包括: 倘若對應該全域混亂區的該資料零散程度非小於該資料零散程度門檻值時,從該閒置區的該些實體抹除單元之中提取一第一實體抹除單元作為對應該第一邏輯單元的一子實體抹除單元,將該更新資料寫入至該子實體抹除單元中,並且更新對應該第一邏輯單元的一邏輯轉實體位址映射表,其中該子實體抹除單元只用以儲存屬於該第一邏輯單元之資料。
- 如申請專利範圍第1項所述的資料寫入方法,更包括:將該些邏輯單元分組成多個邏輯區域;以及配置多個邏輯轉實體位址映射表以分別地指派給該些邏輯區域,其中該些邏輯轉實體位址映射表用以記錄該些邏輯區域的邏輯單元與該資料區的實體抹除單元之間的多個映射關係並且每一該些邏輯轉實體位址映射表被獨立地配置給該些邏輯區域的其中之一。
- 如申請專利範圍第3項所述的資料寫入方法,其中該些已更新邏輯單元屬於該些邏輯區域之中的多個已更新邏輯區域,其中記錄對應該全域混亂區的該資料零散程度的步驟包括:計算該些已更新邏輯區域的數目;以及記錄該些已更新邏輯區域的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第1項所述的資料寫入方法,其中記錄對應該全域混亂區的該資料零散程度的步驟包括:計算該些已更新邏輯單元的數目;以及 記錄該些已更新邏輯單元的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第1項所述的資料寫入方法,其中記錄對應該全域混亂區的該資料零散程度的步驟包括:計算多個待更新邏輯轉實體位址映射表的數目,其中該些待更新邏輯轉實體位址映射表用以記錄該些已更新邏輯單元與該資料區的實體抹除單元之間的映射;以及記錄該些待更新邏輯轉實體位址映射表的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第1項所述的資料寫入方法,更包括:判斷該全域混亂區中是否存有屬於該第一邏輯單元的有效資料;以及若該全域混亂區中存有屬於該第一邏輯單元的有效資料時,將該更新資料寫入至該全域混亂區中,其中上述判斷對應該全域混亂區的該資料零散程度是否小於該資料零散程度門檻值的步驟是在該全域混亂區中未存有屬於該第一邏輯單元的有效資料時被執行。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單 元,每一該些實體抹除單元具有多個實體程式化單元,該些實體抹除單元至少分組為一資料區與一閒置區,該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以配置多個邏輯單元以映射該資料區的該些實體抹除單元,其中每一該些邏輯單元具有多個邏輯頁面,其中該記憶體管理電路更用以從該閒置區的該些實體抹除單元中提取至少一個實體抹除單元作為一全域混亂區,其中該全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且該些已更新邏輯頁面屬於該些邏輯單元之中的多個已更新邏輯單元,其中該記憶體管理電路更用以建立一全域混亂區搜尋表以記錄在該全域混亂區中對應該些已更新邏輯頁面的多個更新資訊,其中該記憶體管理電路更用以接收一寫入指令與對應該寫入指令的一更新資料,該更新資料是屬於一第一邏輯頁面並且該第一邏輯頁面屬於該些邏輯單元之中的一第一邏輯單元,其中該記憶體管理電路更用以記錄對應該全域混亂區的一資料零散程度並且判斷對應該全域混亂區的該資料零散程度是否小於一資料零散程度門檻值,其中倘若對應該全域混亂區的該資料零散程度小於該資料零散程度門檻值時,該記憶體管理電路將該更新資料寫入至該全域混亂區中並且在該全域混亂區搜尋表中記錄對應該第一邏輯頁面的一更新資訊。
- 如申請專利範圍第8項所述的記憶體控制器,其中倘若對應該全域混亂區的該資料零散程度非小於該資料零散程度門檻值時,該記憶體管理電路從該閒置區的該些實體抹除單元之中提取一第一實體抹除單元作為對應該第一邏輯單元的一子實體抹除單元,將該更新資料寫入至該子實體抹除單元中,並且更新對應該第一邏輯單元的一邏輯轉實體位址映射表,其中該子實體抹除單元只用以儲存屬於該第一邏輯單元之資料。
- 如申請專利範圍第8項所述的記憶體控制器,其中該記憶體管理電路更用以將該些邏輯單元分組成多個邏輯區域且配置多個邏輯轉實體位址映射表以分別地指派給該些邏輯區域,其中該些邏輯轉實體位址映射表用以記錄該些邏輯區域的邏輯單元與該資料區的實體抹除單元之間的多個映射關係並且每一該些邏輯轉實體位址映射表被獨立地配置給該些邏輯區域的其中之一。
- 如申請專利範圍第10項所述的記憶體控制器,其中該些已更新邏輯單元屬於該些邏輯區域之中的多個已更新邏輯區域,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體管理電路計算該些已更新邏輯區域的數目並且記錄該些已更新邏輯區域的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第8項所述的記憶體控制器,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體管理電路計算該些已更新邏輯單元的數目且記錄該些已更新邏輯單元的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第8項所述的記憶體控制器,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體管理電路計算多個待更新邏輯轉實體位址映射表的數目並且記錄該些待更新邏輯轉實體位址映射表的數目作為對應該全域混亂區的該資料零散程度,其中該些待更新邏輯轉實體位址映射表用以記錄該些已更新邏輯單元與該資料區的實體抹除單元之間的映射。
- 如申請專利範圍第8項所述的記憶體控制器,其中該記憶體管理電路更用以判斷該全域混亂區中是否存有屬於該第一邏輯單元的有效資料,其中若該全域混亂區中存有屬於該第一邏輯單元的有效資料時,該記憶體管理電路將該更新資料寫入至該全域混亂區中,其中該記憶體管理電路是在該全域混亂區中未存有屬於該第一邏輯單元的有效資料時執行上述判斷對應該全域混亂區的該資料零散程度是否小於該資料零散程度門檻值的運作。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元, 每一該些實體抹除單元具有多個實體程式化單元,該些實體抹除單元至少分組為一資料區與一閒置區,且該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並且用以配置多個邏輯單元以映射該資料區的該些實體抹除單元,其中每一該些邏輯單元具有多個邏輯頁面,其中該記憶體控制器更用以從該閒置區的該些實體抹除單元中提取至少一個實體抹除單元作為一全域混亂區,其中該全域混亂區用以暫存屬於多個已更新邏輯頁面的資料,並且該些已更新邏輯頁面屬於該些邏輯單元之中的多個已更新邏輯單元,其中該記憶體控制器更用以建立一全域混亂區搜尋表以記錄在該全域混亂區中對應該些已更新邏輯頁面的多個更新資訊,其中該記憶體控制器更用以接收一寫入指令與對應該寫入指令的一更新資料,該更新資料是屬於一第一邏輯頁面並且該第一邏輯頁面屬於該些邏輯單元之中的一第一邏輯單元,其中該記憶體控制器更用以記錄對應該全域混亂區的一資料零散程度並且判斷對應該全域混亂區的該資料零散程度是否小於一資料零散程度門檻值,其中倘若對應該全域混亂區的該資料零散程度小於該資料零散程度門檻值時,該記憶體控制器將該更新資料寫入至該全域混亂區中並且在該全域混亂區搜尋表中記錄對應該第一邏輯頁面的一更新資訊。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中倘若對應該全域混亂區的該資料零散程度非小於該資料零散程度門檻值時,該記憶體控制器從該閒置區的該些實體抹除單元之中提取一第一實體抹除單元作為對應該第一邏輯單元的一子實體抹除單元,將該更新資料寫入至該子實體抹除單元中,並且更新對應該第一邏輯單元的一邏輯轉實體位址映射表,其中該子實體抹除單元只用以儲存屬於該第一邏輯單元之資料。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制器更用以將該些邏輯單元分組成多個邏輯區域且配置多個邏輯轉實體位址映射表以分別地指派給該些邏輯區域,其中該些邏輯轉實體位址映射表用以記錄該些邏輯區域的邏輯單元與該資料區的實體抹除單元之間的多個映射關係並且每一該些邏輯轉實體位址映射表被獨立地配置給該些邏輯區域的其中之一。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該些已更新邏輯單元屬於該些邏輯區域之中的多個已更新邏輯區域,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體控制器計算該些已更新邏輯區域的數目並且記錄該些已更新邏輯區域的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體控制器計算該些已更新邏輯單元的數目且記錄該些已更新邏輯單元的數目作為對應該全域混亂區的該資料零散程度。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在記錄對應該全域混亂區的該資料零散程度的運作中,該記憶體控制器計算多個待更新邏輯轉實體位址映射表的數目並且記錄該些待更新邏輯轉實體位址映射表的數目作為對應該全域混亂區的該資料零散程度,其中該些待更新邏輯轉實體位址映射表用以記錄該些已更新邏輯單元與該資料區的實體抹除單元之間的映射。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該記憶體控制器更用以判斷該全域混亂區中是否存有屬於該第一邏輯單元的有效資料,其中若該全域混亂區中存有屬於該第一邏輯單元的有效資料時,該記憶體控制器將該更新資料寫入至該全域混亂區中,其中該記憶體控制器是在該全域混亂區中未存有屬於該第一邏輯單元的有效資料時執行上述判斷對應該全域混亂區的該資料零散程度是否小於該資料零散程度門檻值的運作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102121181A TWI470431B (zh) | 2013-06-14 | 2013-06-14 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/961,851 US9058256B2 (en) | 2013-06-14 | 2013-08-07 | Data writing method, memory controller and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102121181A TWI470431B (zh) | 2013-06-14 | 2013-06-14 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201447576A TW201447576A (zh) | 2014-12-16 |
TWI470431B true TWI470431B (zh) | 2015-01-21 |
Family
ID=52020272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102121181A TWI470431B (zh) | 2013-06-14 | 2013-06-14 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9058256B2 (zh) |
TW (1) | TWI470431B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI501243B (zh) * | 2013-11-12 | 2015-09-21 | Phison Electronics Corp | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 |
US10114747B2 (en) * | 2015-05-13 | 2018-10-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Systems and methods for performing operations on memory of a computing device |
TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
JP6697360B2 (ja) * | 2016-09-20 | 2020-05-20 | キオクシア株式会社 | メモリシステムおよびプロセッサシステム |
TWI602061B (zh) * | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
CN106990921B (zh) * | 2017-03-24 | 2019-10-11 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
KR20190001387A (ko) * | 2017-06-27 | 2019-01-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11494306B2 (en) | 2019-09-20 | 2022-11-08 | Micron Technology, Inc. | Managing data dependencies in a transfer pipeline of a hybrid dimm |
US11531622B2 (en) | 2019-09-20 | 2022-12-20 | Micron Technology, Inc. | Managing data dependencies for out of order processing in a hybrid DIMM |
US11397683B2 (en) * | 2019-09-20 | 2022-07-26 | Micron Technology, Inc. | Low latency cache for non-volatile memory in a hybrid DIMM |
US11467976B2 (en) * | 2020-07-30 | 2022-10-11 | Micron Technology, Inc. | Write requests with partial translation units |
TWI741870B (zh) * | 2020-11-10 | 2021-10-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
TW200945350A (en) * | 2008-01-16 | 2009-11-01 | Freescale Semiconductor Inc | Non-volatile memory with reduced charge fluence |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5200959A (en) * | 1989-10-17 | 1993-04-06 | Sundisk Corporation | Device and method for defect handling in semi-conductor memory |
US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
KR100541642B1 (ko) * | 2004-03-11 | 2006-01-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
TWI366828B (en) * | 2007-09-27 | 2012-06-21 | Phison Electronics Corp | Wear leveling method and controller using the same |
-
2013
- 2013-06-14 TW TW102121181A patent/TWI470431B/zh active
- 2013-08-07 US US13/961,851 patent/US9058256B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
TW200945350A (en) * | 2008-01-16 | 2009-11-01 | Freescale Semiconductor Inc | Non-volatile memory with reduced charge fluence |
Also Published As
Publication number | Publication date |
---|---|
TW201447576A (zh) | 2014-12-16 |
US20140372668A1 (en) | 2014-12-18 |
US9058256B2 (en) | 2015-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI486767B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479313B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI548991B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI446170B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus |