TW202105188A - 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 - Google Patents
能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 Download PDFInfo
- Publication number
- TW202105188A TW202105188A TW109136501A TW109136501A TW202105188A TW 202105188 A TW202105188 A TW 202105188A TW 109136501 A TW109136501 A TW 109136501A TW 109136501 A TW109136501 A TW 109136501A TW 202105188 A TW202105188 A TW 202105188A
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- data unit
- repeated pattern
- electronic device
- storage
- Prior art date
Links
Images
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
一種耦接於快閃記憶體與電子裝置之間之快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一區塊具有複數個儲存頁,該方法包括:偵測資料單元是否係由重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體或是該資料單元係從該快閃記憶體所讀出;以及如果判斷出該資料單元是由該重複的型樣所形成,則製作一個該重複的型樣之一記錄於特定對照表之欄位上。
Description
本發明係關於一種快閃記憶體控制器機制,尤指一種快閃記憶體控制器及快閃記憶體控制器的方法。
一般而言,一個傳統的快閃記憶體裝置(例如記憶卡)之效能經常受限於無效的垃圾回收或是無效的記憶體儲存區塊交換,無效的垃圾回收或是無效的記憶體儲存區塊交換通常起因於多種不同的原因,例如在某些記憶卡應用中,當一個主機裝置要格式化一個傳統記憶卡時,該主機裝置可能會寫入一連串相同的資料型樣(例如一連串的位元‘0’)至該傳統記憶卡的所有儲存頁中,此時對於該傳統記憶卡來說,即使該傳統記憶卡被格式化,然而,儲存相同資料型樣的該些儲存頁仍會被視為是有效的儲存頁。而在這種即使該記憶卡被格式化時,所有儲存頁或是幾乎所有儲存頁均為有效儲存頁的情況就會造成無效的垃圾回收或是無效的記憶體儲存區塊交換。
因此本發明的目的之一在於提供一種新穎的方法及相應的快閃記憶體控制器,以解決上述的難題。
根據本發明實施例,其係揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一區塊具有複數個儲存頁,以及該方法包含:偵測一資料單元是否係由一重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體或是該資料單元係從該快閃記憶體所讀出;以及如果判斷出該資料單元是由該重複的型樣所形成,則製作一個該重複的型樣之一記錄於一特定對照表之一欄位上。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該方法包含:從該電子裝置接收一特定命令,該特定命令帶有一邏輯位址以請求一第一資料單元;基於該邏輯位址來存取一特定對照表之一欄位以得到一重複的型樣,該特定對照表之該欄位係位於該快閃記憶體內部以及如果該第一資料單元係由該重複的型樣所形成則該特定對照表之該欄位被用來儲存該重複的型樣的一記錄;以及複製該重複的型樣以重新產生並輸出該第一資料單元至該電子裝置;其中從該快閃記憶體所得到之該重複的型樣之一資料大小係小於該電子裝置所請求之該第一資料單元之一資料大小。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該方法包含:偵測一資料單元是否是由一重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體;以及如果判斷出該資料單元係由該重複的型樣所形成且被寫入至該快閃記憶體中之一特定儲存區塊之一儲存頁,則不對該特定儲存區塊之一有效頁個數的值加一。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該方法包含:偵測一資料單元是否是由一重複的型樣所形成,該資料單元被從該快閃記憶體中讀出;以及如果判斷出從該快閃記憶體中之一特定儲存區塊之一儲存頁所讀出之該資料單元係由該重複的型樣所形成,則對該特定儲存區塊之一有效頁個數的值減一。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含一緩衝器以及一處理電路,緩衝器被設置用來暫時地儲存從該電子裝置所傳送並被寫入至該快閃記憶體之一資料單元或是從該快閃記憶體所讀出之該資料單元,以及處理電路耦接至該緩衝器,並被設置用來偵測該資料單元是否係由一重複的型樣所形成,以及如果判斷出該資料單元係由該重複的型樣所形成則用來製作一個該重複的型樣之一記錄於一特定對照表之一欄位上。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含一緩衝器以及一處理電路,緩衝器用來暫時儲存從該快閃記憶體所讀取之一資料單元,以及處理電路耦接至該緩衝器,並用來:從該電子裝置接收一特定命令,該特定命令帶有一邏輯位址以請求一第一資料單元;基於該邏輯位址來存取一特定對照表之一欄位以得到一重複的型樣,該特定對照表之該欄位係位於該快閃記憶體內部以及如果該第一資料單元係由該重複的型樣所形成則該特定對照表之該欄位被用來儲存該重複的型樣的一記錄;以及複製該重複的型樣以重新產生並輸出該第一資料單元至該電子裝置;其中從該快閃記憶體所得到之該重複的型樣之一資料大小係小於該電子裝置所請求之該第一資料單元之一資料大小。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含一緩衝器以及一處理電路,緩衝器用來暫時儲存從該電子裝置所傳送並將被寫入該快閃記憶體之一資料單元,以及處理電路耦接至該緩衝器,並用來偵測該資料單元是否由一重複的型樣所形成,以及如果判斷出該資料單元是由該重複的型樣所形成並被寫入至該快閃記憶體中之該一特定儲存區塊之一儲存頁時則不對該特定儲存區塊之一有效頁個數的值加一。
根據本發明實施例,其另揭露了一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含一緩衝器以及一處理電路,緩衝器用來暫時儲存從該快閃記憶體所讀取之一資料單元,以及處理電路耦接至該緩衝器,並用來偵測該資料單元是否由一重複的型樣所形成,以及如果判斷出從該快閃記憶體中之一特定儲存區塊之一儲存頁所讀出之該資料單元係由該重複的型樣所形成則對該特定儲存區塊之一有效頁個數的值減一。
本發明旨在於提供一種能夠盡可能地避免執行無效的垃圾回收運作之快閃記憶體控制器解決方案,在較佳實施例中,所提供的解決方案可以減少垃圾回收運作的執行次數。
請搭配參照第1圖及第2圖,第1圖是本發明第一實施例快閃記憶體控制器205之方法流程圖,第2圖是根據第1圖之實施例包含有第1圖之快閃記憶體控制器205之一記憶體裝置200及一主機電子裝置201的儲存區塊示意圖,如第2圖所示,快閃記憶體裝置200包含一快閃記憶體控制器205及一快閃記憶體210,其中快閃記憶體控制器205包含一處理電路2051及一緩衝器2052,快閃記憶體210包含一邏輯轉實體位址對照表(logical-to-physical address table)對照表2101、一有效頁個數對照表2102(valid page count (VPC) table,簡稱為VPC對照表)、一資料儲存空間2103及用於儲存區塊交換(swap)之一保留的儲存空間2104,主機裝置例如係該電子裝置201。
邏輯轉實體位址對照表2101可被稱為一主機轉快閃記憶體對照表(host-to-flash (H2F) table),簡稱為H2F對照表,該H2F對照表係用來記錄多個邏輯位址與多個實體位址之間的映射對照資訊,例如,主機裝置201傳送一寫入命令至快閃記憶體控制器205,其中該寫入命令帶有一邏輯位址並且隨後跟著一資料單元,例如一儲存頁資料(但不限定),當/如果接收到該寫入命令及該資料單元,處理電路2051會將該邏輯位址轉換為一實體位址、於H2F對照表2101之一位址欄位上記錄該實體位址以及基於該實體位址來寫入該儲存頁資料至快閃記憶體210之一儲存頁。
在本實施例,處理電路2051被安排用來偵測該資料單元是否係由一重複的型樣所形成,以及當/如果判斷出該資料單元是由該重複的型樣所形成時製作一個該重複的型樣之一記錄於一特定對照表(例如H2F對照表2101)之一欄位上,例如,處理電路2051可於該特定對照表之一欄位上製作該重複的型樣之一記錄,以及寫入該重複的型樣之資訊內容至一記憶體裝置之一相應的記憶體空間,該記憶體裝置不同於該特定對照表,該記憶體裝置可被設置於快閃記憶體控制器205的內部,或是可被設置為外部連接至控制器205。
另外,其他實施例,處理電路2051可直接將該重複的型樣的資訊內容儲存於該特定對照表之一欄位,而對於將一重複的型樣之資訊內容儲存於H2F對照表2101中,H2F對照表2101例如包含複數個列(row)、每一列具有多個欄位,第4圖是本發明實施例H2F對照表2101之實施例的簡要示意圖,舉例來說,每一列包括有用來記錄一資料單元(例如一儲存頁資料)之一實體位址(具有一儲存區塊位址及一儲存頁位址)以及一相應的邏輯位址之位址欄位、用來記錄該資料單元是否係由一重複的型樣所形成的第一欄位、若該資料單元係由該重複的型樣所形成時用來記錄該重複的型樣之內容的第二欄位以及/或其他一或多個欄位,例如,每一列的第一欄位可利用一單一位元來實現,其中該位元可被處理電路2051設置為‘0’以表示該儲存頁資料並非由一重複的型樣所形成,或是可被處理電路2051設置為‘1’以表示該儲存頁資料係由一重複的型樣所形成。此外,對於一個資料單元,每一列的第二欄位例如可利用兩個位元組(byte),亦即一個字組(word),來記錄一重複的型樣的內容,如果第一欄位被標示為‘0’,則第二欄位會是空的,反之,如果第一欄位被標示為‘1’,則第二欄位會記錄一重複的型樣的資訊內容,例如第4圖所中所示的‘XXXX’。
另外,如果一特別的資料單元係由重複的型樣所形成的,處理電路2051也可只採用上述的第一欄位來儲存該重複的型樣的記錄,也就是,處理電路2051可採用H2F對照表2101來記錄一資料單元是否係由一重複的型樣所形成以及另外採用一個不同的記憶體裝置來將該重複的型樣的資訊內容儲存於該不同的記憶體裝置之一相應的記憶體位置空間中。該不同的記憶體裝置可被設置於快閃記憶體控制器2051的內部,或是可被設置為快閃記憶體裝置 200的內部但是外部連接於快閃記憶體控制器2051。上述的實施變型均落入本發明的範疇。
應注意,如果被處理電路2051偵測出一個重複的型樣,該重複的型樣之標示以及/或其相應的資訊內容也可以利用多種不同的機制來進行儲存或記錄,凡此變型設計均符合本發明的精神。
VPC對照表2102包含複數個分別對應於資料儲存空間2103之多個儲存區塊的有效頁個數,一有效頁個數係用來記錄一相應的儲存區塊之有效儲存頁的個數。
資料儲存空間2103,亦即使用者記憶體空間,包含複數個儲存區塊,每一儲存區塊包含複數個儲存頁,保留的儲存空間2104係用於系統處理、儲存區塊的交換(swap)或其他處理運作。
實作上,快閃記憶體210可分別分配不同的記憶體空間給H2F對照表2101、VPC對照表2101、資料儲存空間2103以及保留的儲存空間2104,然而,這並非是本發明的限制,在其他實施例,H2F對照表2101及VPC對照表2101可被設置於快閃記憶體控制器205的內部或是可被設置於另一外部記憶體電路的內部。
快閃記憶體控制器205的緩衝器2052係用來暫時儲存從主機裝置所傳送並接著要被寫入至快閃記憶體210的一或多個資料單元及/或從快閃記憶體210所讀取出的一或多個資料單元,例如,一資料單元可以是快閃記憶體210內部一儲存頁之一儲存頁資料,或是一儲存頁資料的部分資料,此非本案的限制,處理電路2051係被安排用來基於主機裝置201的命令以執行快閃記憶體控制器運作以存取快閃記憶體210及/或執行其他運作。
倘若可達到相同的結果,並不需要一定照第1圖所示之流程中的步驟順序來進行,且第1圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中;本發明的方法的流程步驟詳述如下:
步驟105:開始;
步驟110:快閃記憶體控制器205檢查快閃記憶體210目前是否閒置?如果快閃記憶體210目前閒置,則流程進行步驟115,反之,流程進行步驟110;
步驟115:快閃記憶體控制器205從快閃記憶體210之資料儲存空間2103內部的一儲存區塊之一儲存頁讀出或取得一資料單元例如一儲存頁資料;
步驟117:快閃記憶體控制器205檢查/偵測該儲存頁資料是否係由一重複的型樣(重複出現的資料型樣或類型)所形成,亦即一連串相同的資料型樣;如果該儲存頁資料並非由一重複的型樣所形成,則流程進行步驟115並且快閃記憶體控制器205從一不同的儲存頁讀出另一資料單元(例如另一儲存頁資料)來進行檢查,反之,流程進行步驟120;
步驟120:快閃記憶體控制器205寫入並記錄該重複的型樣於H2F對照表2101的一特定記憶體位置並標示H2F對照表2101的一特定欄位,例如一個單一化位元(uniform bit)以表示該儲存頁係由該重複的型樣所形成,而該重複的型樣記錄於H2F對照表2101的該特定記憶體位置;
步驟125:快閃記憶體控制器205通過減少該有效頁個數的值來更新VPC對照表2102中上述儲存區塊的一有效頁個數之值;以及
步驟130:結束。
舉例來說,在步驟105,如果快閃記憶體210在一特定時間內(例如500ms,但不限定)閒置,則處理電路2051會判定快閃記憶體210目前處於閒置狀態。如果快閃記憶體210在該特定時間並非閒置,則處理電路2051會判定快閃記憶體210並非在閒置狀態。此外,處理電路2051可被安排用來偵測快閃記憶體控制器205是否閒置,如果控制器205目前閒置,則流程會進行步驟115,反之,流程進行步驟110。
再者,處理電路2051被安排用來偵測/判斷主機電子裝置201是否目前被安排或欲存取快閃記憶體210,如果偵測到該狀況,則處理電路2051會被安排用來停止偵測一資料單元是否係由一重複的型樣所形成的操作,例如,在這個情況中,處理電路2051可終止第1圖中所有的步驟。
在步驟115,例如,快閃記憶體控制器205的處理電路2051可採用並執行一直接記憶體存取(direct memory access (DMA))操作以從資料儲存空間2103內部一儲存區塊之儲存頁讀取出一儲存頁資料,並接著暫時將該儲存頁資料儲存至緩衝器2052中。此外,處理電路2051可對快閃記憶體210採用該直接記憶體存取操作來搜尋從快閃記憶體210所讀回來的該儲存頁資料的一最大值及一最小值,如果快閃記憶體控制器205識別出該最大值等於該最小值,則快閃記憶體控制器205可以判定該儲存頁資料係由一重複的型樣所形成,反之,如果快閃記憶體控制器205發現該最大值不等於該最小值,則快閃記憶體控制器205可判定該儲存頁資料並非由一重複的型樣所形成,然而,應注意的是,該直接記憶體存取操作及搜尋從快閃記憶體210所讀回來的該儲存頁資料的一最大值及一最小值以找出重複的型樣並非是本發明的限制,其他實施例,快閃記憶體控制器205也可以採用其他不同的操作來決定一儲存頁資料是否是由一重複的型樣所形成。
當/如果快閃記憶體210是閒置的,處理電路2051會從資料儲存空間2103內部一儲存區塊之一儲存頁讀取出一資料單元,例如一儲存頁資料,而如果判定所讀出之該儲存頁資料是由一重複的型樣所形成的,則快閃記憶體控制器205的處理電路2051會被安排用來寫入該重複的型樣至相應於該儲存頁之實體位址的H2F對照表2101之一列上的第二欄位,以H2F對照表2101來記錄該重複的型樣。
應注意,在其他實施例,處理電路2051也可以使用另一不同的對照表來記錄該儲存頁資料之該重複的型樣,這並非是本案的限制,例如,該另一不同的對照表可以是設置在相同的記憶體裝置內或是設置在另一個不同的記憶體裝置內部。
上述的第二欄位係用來記錄一儲存頁之儲存頁資料之一重複的型樣的內容,此外,快閃記憶體控制器205的處理電路2051係被安排用來標示H2F對照表2101之該列上的第一欄位以表示出該儲存頁資料的重複的型樣被記錄,例如,該第一欄位可以採用單一位元(例如上述的單一化位元)來實現以表示出記錄了該重複的型樣。
接著,在步驟125,快閃記憶體控制器205的處理電路2051被安排用來對包含該特定儲存頁之一儲存區塊之一有效頁個數的值減一,也就是說,上述由該重複的型樣所形成的儲存頁被認或視為是一無效的儲存頁,並且如果有需要的話該儲存頁的內容可以被清空。
當/如果電子裝置201發送帶有一邏輯位址之命令至快閃記憶體控制器205以請求一第一資料單元(例如一儲存頁之儲存頁資料),處理電路2051被安排用來檢查該儲存頁資料是否係由一重複的型樣所形成、如果儲存頁資料是由該重複的型樣所形成則存取H2F對照表2101的相對應的第二欄位以得到該重複的型樣、複製該重複的型樣以重新產生並輸出該第一資料單元至電子裝置201,也就是說,從快閃記憶體210所得到之該重複的型樣的資料大小係小於該第一資料單元的資料大小,該第一資料單元例如是傳送至電子裝置201的一儲存頁資料大小。
例如,一個儲存頁資料的資料大小可以是16KB,而使用來記錄一重複的型樣之內容的第二欄位的大小可以被設置/設計為兩個位元組,亦即一字組的資料長度。對於由一重複的型樣所形成之一儲存頁,處理電路2051可儲存該重複的型樣之內容於H2F對照表2101之第二欄位上,以及如果主機裝置201請求該儲存頁之資料時,處理電路2051會通過複製該重複的型樣來重新產生一個儲存頁資料至主機裝置201。這樣一來,相較於現有機制將一連串的多個重複的型樣均寫入至快閃記憶體210,本案可達到如果主機裝置請求該儲存頁資料時快閃記憶體控制器205可以產生正確的資料至主機裝置201並且一個儲存區塊之有效頁個數的值也可以變的較小,當/如果快閃記憶體210被安排執行一記憶體儲存區塊的交換操作時,由於由一或多個重複的型樣所形成之一或多個儲存頁的一個儲存區塊係對應於較小數值的一有效頁個數,因此,該交換操作可以有效地將具有由一或多個重複的型樣所形成之一或多個儲存頁的這個儲存區塊與保留的儲存空間2104內部一個保留的儲存區塊進行交換,而此可以避免無效的垃圾回收操作,並且不會降低快閃記憶體本身的效能。
在某些特定的記憶卡應用,例如安全數位卡(但不限定),當/如果主機裝置被安排要格式化快閃記憶體210時,電子裝置201作為該主機裝置例如可以依序地寫入位元‘0’至快閃記憶體210中的所有儲存區塊的多個儲存頁,當/如果快閃記憶體控制器205偵測到一儲存頁的儲存頁資料係由位元‘0’所形成,亦即一重複的型樣,快閃記憶體控制器205 被安排用來寫入位元‘0’至H2F對照表2101以記錄位元‘0’的內容於H2F對照表2101的第二欄位上,並且對一儲存區塊的有效頁個數之值(記錄於VPC對照表2102內部)進行減一以將該儲存頁處理為一無效的儲存頁。在較佳實施例,如果資料儲存空間2103係被格式化,則資料儲存空間2103內部的多個儲存區塊的多個儲存頁的資料係由多個重複的型樣(亦即位元‘0’)所形成,該些儲存區塊的所有儲存頁係均被處理為無效的儲存頁,並且該些儲存區塊的相應多個有效頁個數的值均設置為零。
在另一實施例,當/如果主機裝置201正寫入一儲存頁資料或依序寫入該儲存頁資料的部分資料至快閃記憶體裝置 200時,快閃記憶體控制器205可被安排用來檢查該儲存頁資料是否由一重複的型樣所形成,也就是,快閃記憶體控制器205也可以即時地檢查所接收到或所收集的儲存頁資料是否係由一重複的型樣所形成;請參照第3圖,其係為本發明第二實施例快閃記憶體控制器205之方法流程圖;其步驟如下:
步驟305:開始;
步驟310:快閃記憶體控制器205接收一資料單元(例如從主機裝置201所發送之一儲存頁資料)並暫時儲存所接收之資料單元於緩衝器2052中;
步驟315:快閃記憶體控制器205檢查該資料單元是否由一重複的型樣所形成,如果該資料單元並非是由一重複的型樣所形成,則流程進行步驟330,反之,流程進行步驟320;
步驟320:快閃記憶體控制器205寫入並記錄該重複的型樣至H2F對照表2101的一特定的記憶體位置,並標示H2F對照表2101的一特定欄位(例如一單一化位元)以表示該儲存頁係由記錄於H2F對照表2101之該特定的記憶體位置之該重複的型樣所構成;
步驟325:快閃記憶體控制器205儲存該儲存頁資料至一儲存區塊之一儲存頁並且不對該儲存區塊之一有效頁個數的值進行加一;
步驟330:快閃記憶體控制器205儲存該儲存頁資料至一儲存區塊之一儲存頁並且對該儲存區塊之一有效頁個數的值進行加一;
步驟335:快閃記憶體控制器205判斷從主機裝置201所發送之該資料單元是否係為最後一筆的資料單元,如果該資料單元是最後一筆資料單元,則流程進行步驟340,反之,流程進行步驟310以接收從主機裝置201來的下一筆的資料單元;以及
步驟340:結束。
在步驟325,快閃記憶體控制器205被安排用來儲存該儲存頁資料至一儲存區塊之一儲存頁並且不增加該儲存區塊之該有效頁個數的值,也就是,該有效頁個數的值並不會被加一,該儲存區塊之該有效頁個數的值並不會因為具有重複的型樣所組成之資料單元而產生動變,如此該儲存區塊的有效頁個數之值相對來說係較小,基於這樣的機制,可避免無效的垃圾回收的執行。
再者,應注意的是,在步驟310中從主機裝置201所發送之該資料單元可以是一個儲存頁資料的大小或可以是一個儲存頁資料的部分資料的大小,例如,如果快閃記憶體210中一個儲存頁資料的大小等於16KB,則一個資料單元的大小可以是16KB或是4KB(此並非是本案的限制)。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
105~130,305~340:步驟
200:快閃記憶體裝置
201:電子裝置
205:快閃記憶體控制器
210:快閃記憶體
2051:處理電路
2052:緩衝器
2101:邏輯轉實體位址對照表
2102:VPC對照表
2103:資料儲存空間
2104:保留的儲存空間
第1圖是本發明第一實施例快閃記憶體控制器之方法流程圖。
第2圖是根據第1圖之實施例包含有第1圖之快閃記憶體控制器之一記憶體裝置以及一主機電子裝置的儲存區塊示意圖。
第3圖,其係為本發明第二實施例快閃記憶體控制器之方法流程圖。
第4圖是本發明實施例H2F對照表之實施例的簡要示意圖。
105~130:步驟
Claims (16)
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一區塊具有複數個儲存頁,以及該方法包含: 偵測一資料單元是否係由一重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體或是該資料單元係從該快閃記憶體所讀出; 如果判斷出該資料單元是由該重複的型樣所形成,則製作一個該重複的型樣之一記錄於一特定對照表之一欄位上;以及 如果由該重複的型樣所形成之該資料單元係從該快閃記憶體中一特定儲存區塊之一儲存頁所讀出,則對該特定儲存區塊之一有效頁個數的值減一。
- 如申請專利範圍第1項所述之方法,其中該特定對照表是該快閃記憶體內部之一邏輯轉實體位址對照表(logical-to-physical address table)。
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一區塊具有複數個儲存頁,以及該方法包含: 偵測一資料單元是否係由一重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體或是該資料單元係從該快閃記憶體所讀出; 如果判斷出該資料單元是由該重複的型樣所形成,則製作一個該重複的型樣之一記錄於一特定對照表之一欄位上;以及 標示該特定對照表之另一欄位以指示出該重複的型樣之該記錄已經儲存於該特定對照表之該欄位 其中製作一個該重複的型樣之該記錄的步驟包含: 如果判斷出該資料單元係由該重複的型樣所形成,則寫入該重複的型樣之資訊內容至該特定對照表之該欄位。
- 如申請專利範圍第3項所述之方法,另包含: 如果該電子裝置請求該資料單元,則從該特定對照表之該欄位讀出該重複的型樣,以複製該重複的型樣以產生並輸出該資料單元至該電子裝置; 其中該重複的型樣之一資料大小係小於該資料單元之一資料大小。
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器的方法,該快閃記憶體具有複數個儲存區塊,每一區塊具有複數個儲存頁,以及該方法包含: 偵測一資料單元是否係由一重複的型樣所形成,該資料單元係從該電子裝置所傳送並被寫入至該快閃記憶體或是該資料單元係從該快閃記憶體所讀出; 如果判斷出該資料單元是由該重複的型樣所形成,則製作一個該重複的型樣之一記錄於一特定對照表之一欄位上;以及 如果判斷出該資料單元是由該重複的型樣所形成,則寫入該重複的型樣之資訊內容至一記憶體空間,該記憶體空間不同於該特定對照表。
- 如申請專利範圍第5項所述之方法,另包含: 如果該電子裝置請求該資料單元且該特定對照表之該欄位指示出該重複的型樣,則從該記憶體空間讀出該重複的型樣,以複製該重複的型樣以產生並輸出該資料單元至該電子裝置; 其中該重複的型樣之一資料大小係小於該資料單元之一資料大小。
- 如申請專利範圍第5項所述之方法,另包含: 如果判斷出該快閃記憶體控制器是閒置的,則執行偵測該資料單元是否係由該重複的型樣所形成之步驟。
- 如申請專利範圍第5項所述之方法,另包含: 如果判斷出該電子裝置被安排用來存取該快閃記憶體,則停止執行偵測該資料單元是否係由該重複的型樣所形成之步驟。
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含: 一緩衝器,被設置用來暫時地儲存從該電子裝置所傳送並被寫入至該快閃記憶體之一資料單元或是從該快閃記憶體所讀出之該資料單元;以及 一處理電路,耦接至該緩衝器,被設置用來偵測該資料單元是否係由一重複的型樣所形成,以及如果判斷出該資料單元係由該重複的型樣所形成則用來製作一個該重複的型樣之一記錄於一特定對照表之一欄位上; 其中如果由該重複的型樣所形成之該資料單元係從該快閃記憶體中一特定儲存區塊之一儲存頁所讀出,則該處理電路係對該特定儲存區塊之一有效頁個數的值減一。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該特定對照表係該快閃記憶體內之一邏輯轉實體位址對照表。
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含: 一緩衝器,被設置用來暫時地儲存從該電子裝置所傳送並被寫入至該快閃記憶體之一資料單元或是從該快閃記憶體所讀出之該資料單元;以及 一處理電路,耦接至該緩衝器,被設置用來偵測該資料單元是否係由一重複的型樣所形成,以及如果判斷出該資料單元係由該重複的型樣所形成則用來製作一個該重複的型樣之一記錄於一特定對照表之一欄位上; 其中如果判斷出該資料單元係由該重複的型樣所形成,則該處理電路係被安排用來寫入該重複的型樣之資訊內容至該特定對照表之該欄位;以及,該處理電路係用來標示該特定對照表之另一欄位以指示出該重複的型樣之該記錄已經儲存於該特定對照表之該欄位。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中如果該電子裝置請求該資料單元,則該處理電路係用來從該特定對照表之該欄位讀出該重複的型樣,以複製該重複的型樣以產生並輸出該資料單元至該電子裝置;其中該重複的型樣之一資料大小係小於該資料單元之一資料大小。
- 一種耦接於一快閃記憶體與一電子裝置之間之一快閃記憶體控制器,該快閃記憶體具有複數個儲存區塊,每一儲存區塊具有複數個儲存頁,以及該快閃記憶體控制器包含: 一緩衝器,被設置用來暫時地儲存從該電子裝置所傳送並被寫入至該快閃記憶體之一資料單元或是從該快閃記憶體所讀出之該資料單元;以及 一處理電路,耦接至該緩衝器,被設置用來偵測該資料單元是否係由一重複的型樣所形成,以及如果判斷出該資料單元係由該重複的型樣所形成則用來製作一個該重複的型樣之一記錄於一特定對照表之一欄位上; 其中如果判斷出該資料單元是由該重複的型樣所形成,則該處理電路係被安排用來寫入該重複的型樣之資訊內容至一記憶體空間,該記憶體空間不同於該特定對照表。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中如果該電子裝置請求該資料單元且該特定對照表之該欄位指示出該重複的型樣,則該處理電路係被安排用來從該記憶體空間讀出該重複的型樣,以複製該重複的型樣以產生並輸出該資料單元至該電子裝置;其中該重複的型樣之一資料大小係小於該資料單元之一資料大小。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中如果判斷出該快閃記憶體控制器是閒置的,則該處理電路係被安排用來偵測該資料單元是否係由該重複的型樣所形成。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中如果判斷出該電子裝置被安排用來存取該快閃記憶體,則該處理電路係被安排用來停止偵測該資料單元是否係由該重複的型樣所形成之操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/102,766 US10838621B2 (en) | 2018-08-14 | 2018-08-14 | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection |
US16/102,766 | 2018-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202105188A true TW202105188A (zh) | 2021-02-01 |
TWI725925B TWI725925B (zh) | 2021-04-21 |
Family
ID=69524008
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108127520A TWI711924B (zh) | 2018-08-14 | 2019-08-02 | 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 |
TW109136501A TWI725925B (zh) | 2018-08-14 | 2019-08-02 | 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108127520A TWI711924B (zh) | 2018-08-14 | 2019-08-02 | 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10838621B2 (zh) |
CN (1) | CN110825658B (zh) |
TW (2) | TWI711924B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102392121B1 (ko) * | 2020-06-15 | 2022-04-29 | 한국전자통신연구원 | 메모리 분리 시스템에서 메모리 관리 방법 및 장치 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057674A2 (en) | 2000-02-07 | 2001-08-09 | Insignia Solutions Plc | Non-zero null references to speed up write barrier checking for garbage collection |
CN1265395C (zh) * | 2002-07-12 | 2006-07-19 | 光宝科技股份有限公司 | 闪存及其程序规划和重复烧录的方法 |
ATE504446T1 (de) | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
EP1702338B1 (en) | 2003-12-30 | 2009-02-18 | SanDisk Corporation | Robust data duplication and improved update method in a multibit non-volatile memory |
CN100538900C (zh) * | 2003-12-31 | 2009-09-09 | 深圳市朗科科技股份有限公司 | 闪存介质中的数据操作方法 |
TWI409819B (zh) * | 2009-03-03 | 2013-09-21 | Silicon Motion Inc | 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US8402242B2 (en) * | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
TWI475564B (zh) * | 2010-04-21 | 2015-03-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
TWI529719B (zh) * | 2013-08-30 | 2016-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN105279108A (zh) * | 2014-07-25 | 2016-01-27 | 广明光电股份有限公司 | 固态硬盘写入数据的方法 |
US9569120B2 (en) * | 2014-08-04 | 2017-02-14 | Nvmdurance Limited | Adaptive flash tuning |
TWI574274B (zh) | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
KR102509540B1 (ko) | 2015-06-30 | 2023-03-14 | 삼성전자주식회사 | 저장 장치 및 그것의 가비지 컬렉션 방법 |
-
2018
- 2018-08-14 US US16/102,766 patent/US10838621B2/en active Active
-
2019
- 2019-08-02 TW TW108127520A patent/TWI711924B/zh active
- 2019-08-02 TW TW109136501A patent/TWI725925B/zh active
- 2019-08-13 CN CN201910744176.0A patent/CN110825658B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW202009710A (zh) | 2020-03-01 |
US20200057570A1 (en) | 2020-02-20 |
TWI711924B (zh) | 2020-12-01 |
CN110825658B (zh) | 2023-06-20 |
CN110825658A (zh) | 2020-02-21 |
TWI725925B (zh) | 2021-04-21 |
US10838621B2 (en) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8347180B2 (en) | Data storage system and method | |
JP5591917B2 (ja) | 管理型不揮発性メモリのための低レイテンシ読み取り動作 | |
US7921339B2 (en) | Flash storage device with data correction function | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US8898370B2 (en) | Data storage method for flash memory, and flash memory controller and flash memory storage system using the same | |
CN108563401B (zh) | 一种ssd性能加速方法 | |
US11886333B2 (en) | Memory block reclamation method and apparatus | |
US11853599B2 (en) | Memory system and information processing system | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
JP5128093B2 (ja) | 複数のアドレス・キャッシュ・エントリを無効化する装置 | |
TW202015044A (zh) | 資料處理方法及使用所述方法的儲存控制器 | |
US7809899B2 (en) | System for integrity protection for standard 2n-bit multiple sized memory devices | |
CN113467704A (zh) | 通过智能阈值检测的命令优化 | |
TWI725925B (zh) | 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器 | |
TW202022619A (zh) | 記憶體系統 | |
TWI407310B (zh) | 資料儲存裝置及資料存取方法 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN114546292A (zh) | 一种nand flash坏块管理方法及系统 | |
JP3747213B1 (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
US20020188771A1 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
TWI814655B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
JP2001134496A (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
US11977783B2 (en) | Method and apparatus for performing data access control of memory device with aid of predetermined command | |
TWI695264B (zh) | 資料儲存裝置與資料處理方法 | |
US20240184485A1 (en) | Flash memory controller and associated memory device and control method |