TW201918893A - 資料儲存裝置與記憶體裝置之資料處理方法 - Google Patents
資料儲存裝置與記憶體裝置之資料處理方法 Download PDFInfo
- Publication number
- TW201918893A TW201918893A TW106139137A TW106139137A TW201918893A TW 201918893 A TW201918893 A TW 201918893A TW 106139137 A TW106139137 A TW 106139137A TW 106139137 A TW106139137 A TW 106139137A TW 201918893 A TW201918893 A TW 201918893A
- Authority
- TW
- Taiwan
- Prior art keywords
- layer unit
- data
- blocks
- block
- controller
- Prior art date
Links
Classifications
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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/061—Improving I/O performance
-
- 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
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊。記憶體區塊包括複數單層單元區塊與複數多層單元區塊。控制器耦接記憶體裝置。當控制器執行用以將單層單元區塊所儲存的資料寫入多層單元區塊之一既定程序時,控制器判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值,並且當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,控制器執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。
Description
本發明係關於一種是用於快閃記憶體裝置之資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效的存取控制也變成一個重要的議題。
為了提高資料儲存裝置的存取效能,本發明提出一種新的資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。
本發明提出一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊。記憶體區塊包括複數單層單元區塊與複數多層單元區塊。控制器耦接記憶體裝置。當控制器執行用以將單層單元區塊所儲存的資料寫 入多層單元區塊之一既定程序時,控制器判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值,並且當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,控制器執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。
本發明另提出一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一控制器,記憶體裝置包括複數記憶體區塊,並且等記憶體區塊包括複數單層單元區塊與複數多層單元區塊,該方法包括:判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值;以及當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。
100‧‧‧資料儲存裝置
110A、110B‧‧‧控制器
111‧‧‧微處理器
112、SRAM‧‧‧靜態隨機存取記憶體
113、ROM‧‧‧唯讀記憶體
114‧‧‧編碼器
115‧‧‧擾亂器
120‧‧‧記憶體裝置
200‧‧‧主機裝置
210‧‧‧介面
300A、300B‧‧‧電子裝置
第1A圖係顯示根據本發明之一實施例所述之電子裝置範例方塊圖。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置範例方塊圖。
第2圖係顯示根據本發明之一實施例所述之處理佇列示意圖。
第3圖係顯示根據本發明之一實施例所述之記憶體裝置之 資料處理方法流程圖。
第4圖係顯示根據本發明之另一實施例所述之記憶體裝置之資料處理方法流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1A圖係顯示根據本發明之一實施例所述之電子裝置方塊圖。電子裝置300A可包括主機裝置200與資料儲存裝置100。電子裝置300A可為行動裝置,例如智慧型手機、智慧型手錶或平板電腦,但不以此為限。
根據本發明之一實施例,資料儲存裝置100可包括控制器110A與記憶體裝置120。控制器110A可至少包括一微處理器111、靜態隨機存取記憶體(Static Random Access Memory,縮寫為SRAM)112、唯讀記憶體(ROM)113、一編碼器114與一擾亂器115。記憶體裝置120可包括一或多個非揮發性記憶體,例如,快閃記憶體。
主機裝置200與資料儲存裝置100可透過一既定介面210相互連接。例如,當資料儲存裝置100符合通用快閃記憶體(Universal Flash Storage,縮寫為UFS)之規範時,主機裝置200與資料儲存裝置100可透過UFS介面相互連接。又例如,當資料儲存裝置100符合內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)之規範時,主機裝置200與資料儲存裝置100可透過MMC介面相互連接。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置300B範例方塊圖。於此實施例中,SRAM 112被配置於控制器110B外部,並且耦接至控制器110B。
值得注意的是,為簡化說明,第1A圖與第1B圖僅顯示與本發明相關之元件,並且第1A圖與第1B圖僅顯示多種可應用本發明之架構的其中兩種。然而,本發明之實施並不僅限於第1A圖與第1B圖所示之元件與架構。
根據本發明之一實施例,記憶體裝置120包括複數記憶體區塊。記憶體區塊可進一步被區分為複數單層單元(Single Level Cell,縮寫為SLC)區塊與複數多層單元區塊(Multiple Level Cell,縮寫為MLC)區塊。SLC區塊的每個記憶體單元中儲存一個位元資料,MLC區塊的每個記憶體單元中儲存多個位元資料。例如,根據本發明之一實施例,MLC區塊的每個記憶體單元中儲存兩個位元資料。例如,根據本發明之另一實施例,多層單元區塊可為三層單元(Triple Level Cell,縮寫為TLC)區塊,TLC區塊的每個記憶體單元中儲存三個位元資料。
各記憶體區塊可包括複數頁面,通常在快閃記憶體中,一個頁面為一個寫入作業的最小資料塊單位,而一個區塊為一個抹除作業的最小資料塊單位。一個物理頁面的大小為固定的,而一個邏輯頁面的大小則可根據韌體編程需求彈性地被設計。
一般而言,為了使MLC/TLC區塊的編程能維持穩定狀態,每次編程需寫入多個頁面的資料(諸如二個或三個物理頁面的資料)至MLC/TLC區塊,因此記憶體裝置120之SLC區塊可作用為快取記憶體,或緩存器(buffer),用以暫存資料。待SLC區塊的使用率達到一定程度時,控制器110A/110B可決定執行一既定程序,將SLC區塊儲存的資料寫入MLC/TLC區塊,如此一來,SLC區塊的記憶體空間可被釋放並可再度被使用。
於上述既定程序中,多個SLC區塊的所儲存之資料會被寫入一或多個MLC/TLC區塊。以TLC區塊為例,控制器將收集或合併數量相當於三個SLC區塊的所能儲存之資料量的資料,並且將其收集或合併之資料寫入TLC區塊。
然而,有時SLC區塊所儲存的資料可能已經無效。舉例而言,當SLC區塊中之部分頁面所儲存之資料與其他區塊中所儲存之資料重複,且該頁面的資料並非最新被儲存之資料,則該頁面的資料會被判斷為已經無效,該頁面會被視為無效頁面(又稱為過期頁面)。因此,於本發明所提出之資料處理方法中,在將SLC區塊儲存的資料寫入MLC/TLC區塊的既定程序中進一步考慮無效頁面的數量,用以更效率地處理記憶體裝置所儲存之資料。
根據本發明之一實施例,當控制器110A/110B決定執行既定程序時,判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH。舉例而言,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一第一表格,用以記錄各記憶體區塊所對應之一有效頁面計數值VP_Count, 其中用於紀錄的頁面的單位可以是一個邏輯頁面。因此,VP_Count的最大值為一記憶體區塊所包含的邏輯頁面數量,最小值為0。控制器110A/110B可於每次寫入操作後更新第一表格的內容。
更具體的說,假設控制器110A/110B將一主頁面(Host page)的資料寫入記憶體區塊B,其中一個主頁面可被設定為一次存取作業的資料塊單位。例如,當一個物理頁面的大小為16K位元時,一個主頁面的大小可被設定為4K位元。當控制器110A/110B判斷相同之主頁面已於更早之前被寫入記憶體區塊A時,則控制器110A/110B將記憶體區塊A所對應之有效頁面計數值VP_Count減1,並且將記憶體區塊B所對應之有效頁面計數值VP_Count加1。
根據本發明之一實施例,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一第二表格,用以記錄一主頁面的資料被儲存於哪個記憶體區塊的哪個頁面。因此,控制器110A/110B可透過查詢第二表格得知該主頁面是否已被儲存於其他記憶體區塊內。
當多個單層單元區塊所對應之有效頁面計數值VP_Count大於臨界值TH時,控制器110A/110B決定執行一第一合併程序,用以將具有有效頁面計數值VP_Count大於臨界值TH之多個單層單元區塊所儲存之資料寫入一或多者多層單元區塊。
根據本發明之一實施例,第一合併程序為直接合併(Direct merge)程序。以TLC區塊為例,當至少三個單層單元 區塊所對應之有效頁面計數值VP_Count大於臨界值TH時,控制器110A/110B決定執行直接合併程序。控制器110A/110B可以三個具有有效頁面計數值VP_Count大於臨界值TH之SLC區塊組合成一個群組。控制器110A/110B依序讀取一群組內SLC區塊所儲存的資料(即,讀取整個SLC區塊所儲存的資料而不考慮是否有無效頁的存在),並依序將讀取的資料寫入一個TLC區塊。一般而言,一個讀取動作伴隨一個寫入動作。由於SLC區塊的資料無須經過控制器,而是直接被寫入TLC區塊,因此直接合併程序的優點為速度快。
另一方面,當控制器110A/110B發現任一個單層單元區塊所對應之有效頁面計數值VP_Count不大於臨界值TH時,控制器110A/110B決定執行一第二合併程序。於第二合併程序中,控制器110A/110B自尚未被處理過的SLC區塊中挑選出數個具有有效頁面計數值VP_Count不大於臨界值TH之SLC區塊,並且將被挑選出之SLC區塊中有效頁面所儲存之資料合併後,將資料寫入多層單元區塊之一者。
根據本發明之一實施例,第二合併程序為緩存編程(On Buffer Program,縮寫為OBP)合併程序之一種應用。以TLC區塊為例,當控制器110A/110B發現任一個SLC區塊所對應之有效頁面計數值VP_Count不大於臨界值TH時,控制器110A/110B決定對此SLC區塊執行OBP合併程序。
更具體的說,於OBP合併程序中,當控制器110A/110B判斷一個SLC區塊的某個物理頁面(例如,16K位元之物理頁面)所儲存之資料都是有效資料時,控制器110A/110B 不將有效資料讀出來整理,而是將有效資料繼續存放於原SLC區塊中。
當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料並非都是有效資料時,讀取此SLC區塊所儲存之有效頁面的資料,並暫存於緩存器。控制器110A/110B接著繼續檢測其餘SLC區塊所儲存之資料是否並非都是有效資料。若其餘SLC區塊所儲存之資料並非都是有效資料,便如同上述讀取此SLC區塊所儲存之有效頁面的資料,並暫存於緩存器。待緩存器內收集到一個物理頁面大小之有效資料時(例如,16K位元),再將之寫入一暫存區塊(以下稱為OBP區塊)中。
於本發明之一實施例中,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一OBP表格。OBP表格用以紀錄爾後進行OBP合併程序時,目的TLC區塊的每一頁的資料現在是存放在哪個區塊的哪一頁。例如,可能在原本的SLC區塊,也有可能在OBP區塊。
最後,當累積到一個TLC區塊可容納的有效資料之後,會依據OBP表格上面記錄的資訊,一頁一頁(例如,物理頁面)地依序將資料讀到控制器110A/110B,並依據頁面編號查詢對應的隨機種子,經過擾亂器115擾亂及編碼器114編碼之後,再將處理過的資料存入TLC區塊的對應頁面。此外,每一頁面的備用區(spare region)中也會存一份隨機種子,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。
因此,根據本發明之一實施例中,於第二合併程序中,當控制器110A/110B判斷一個SLC區塊的某個物理頁面 所儲存之資料並非都是有效資料時,控制器110A/110B讀取此SLC區塊之有效頁面的資料,並暫存於緩存器,待緩存器內收集到一個物理頁面大小之有效資料時(例如,16K位元),再將之寫入一OBP區塊中。當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料都是有效資料時,控制器110A/110B不將有效資料讀出來整理,而是將有效資料繼續存放於原SLC區塊中。待控制器110A/110B收集到可寫滿一個TLC區塊(即,三個SLC區塊,其可以是原SLC區塊或OBP區塊,兩者合計)的有效頁面資料量時,再將有效資料寫入一TLC區塊。相較於直接合併(即,上述之第一合併程序),OBP合併(即,上述之第二合併程序)的優點為可確保TLC區塊內的資料皆為有效。
於本發明之實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可享受直接合併程序的優點(即,可快速完成資料收集與寫入的程序),並且對於有效頁面少的記憶體區塊,也可藉由OBP合併的過程有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。
以下段落將更詳細說明本申請之多個實施例。
根據本發明之一第一實施例,控制器110A/110B可先將要進行既定程序的SLC區塊依序排入一處理佇列中,以便 於預先根據隨機種子將SLC區塊分組。舉例而言,當控制器110A/110B依序將資料寫入SLC區塊0、1、2...時,也可依照一既定順序為SLC區塊0、1、2...分配不同的隨機種子。更具體的說,假設資料儲存裝置系統中被配置三組隨機種子,每組包含複數不同的隨機種子,各隨機種子用以擾亂一物理頁面,並且三組的隨機種子皆不相同。舉例而言,假設一SLC區塊包含10個物理頁面,則每組隨機種子可包含10個不同的隨機種子,而這三組被配置的隨機種子中所包含的30個隨機種子亦皆不相同。
控制器110A/110B可依序將這三組隨機種子分配給SLC區塊。例如,將第一組隨機種子分配給SLC區塊0、3、6...,將第二組隨機種子分配給SLC區塊1、4、7...,將第三組隨機種子分配給SLC區塊2、5、8...依此類推。值得注意的是,以上範例僅用以清楚說明本發明之概念,本發明並不限於使用三組不同的隨機種子。例如,資料儲存裝置系統可使用三組以上不同的隨機種子。
控制器110A/110B之擾亂器115可根據隨機種子將資料擾亂後再存入SLC區塊中。此外,每一頁面的備用區(spare region)中也會存一份隨機種子,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。
由於控制器110A/110B已知SLC區塊0、1、2使用不同的隨機種子,SLC區塊3、4、5使用不同的隨機種子,因此,控制器110A/110B可如第2圖所示將要進行既定程序的SLC區塊依序排入一處理佇列中,其中處理佇列記錄的可以是SLC區 塊編號,例如第2圖方塊中的數字。如此一來,處理佇列中每欄(column)的三個SLC區塊可被歸類為一群組,並且每一群組內的SLC區塊可確保會根據不同隨機種子進行資料擾亂(即,群組內的每一個物理頁面都會根據不同隨機種子進行資料擾亂)。
在將SLC區塊依序排入處理佇列後,控制器110A/110B可依序判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH。假設如第2圖所示,SLC區塊3、5、7、11、13、15所對應之有效頁面計數值VP_Count均不大於臨界值TH(第2圖中以斜線標示出VP_Count<=TH的區塊),其餘SLC區塊所對應之有效頁面計數值VP_Count均大於臨界值TH。
根據本發明之一實施例,控制器110A/110B於判斷SLC區塊0、1、2所對應之有效頁面計數值VP_Count均大於臨界值TH後,可決定對SLC區塊0、1、2執行第一合併程序,用以直接將SLC區塊0、1、2寫入一個TLC區塊。此處理程序可持續被進行,直到遇到有效頁面計數值VP_Count不大於臨界值TH的SLC區塊。
假設SLC區塊3所對應之有效頁面計數值VP_Count不大於臨界值TH,則當處理到SLC區塊3時,控制器110A/110B決定執行一第二合併程序。於第二合併程序中,控制器110A/110B判斷各SLC區塊的物理頁面所儲存之資料是否都是有效資料。當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料並非都是有效資料時,控制器110A/110B讀 取此SLC區塊之有效頁面的資料,並暫存於緩存器。當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料都是有效資料時,控制器110A/110B不將有效資料讀出來整理,而是將有效資料繼續存放於原SLC區塊中。待控制器110A/110B收集到可寫滿一個TLC區塊(即,三個SLC區塊,其可以是原SLC區塊或OBP區塊,兩者合計)的有效頁面資料量時,再將有效資料寫入一TLC區塊。
待第二合併程序完成後,控制器110A/110B進一步重整處理佇列內容,將已處理過(即,所有有效資料均被合併寫入TLC區塊)的SLC區塊移除,並由同一組(同一列)未處理過的SLC區塊遞補。如第2圖的箭頭所示,當SLC區塊3已被處理完成時,控制器110A/110B將SLC區塊編號6填入處理佇列第二欄第一列的空缺位置,以取代SLC區塊3,當SLC區塊5已被處理完成時,控制器110A/110B將SLC區塊編號8填入處理佇列第二欄第三列的位置,以取代SLC區塊5,並依此類推。如此一來,可確保被歸類為一群組之每欄(column)的三個SLC區塊會根據不同隨機種子進行資料擾亂(即,群組內的每一個物理頁面都會根據不同隨機種子進行資料擾亂)。
同樣地,每當控制器110A/110B完成第一合併程序時,也可依照相同方式重整處理佇列內容。
此外,待第二合併程序完成後,控制器110A/110B可再根據處理佇列內容依序處理其他未處理過的SLC區塊。控制器110A/110B可繼續如上述依序判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH,並且根 據判斷結果決定要執行第一合併程序或第二合併程序。
於本發明之第一實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可快速完成既定程序,並且對於有效頁面少的記憶體區塊,也可藉由上述第二合併程序有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。
根據本發明之一第二實施例,控制器110A/110B可更進一步於SRAM 112或記憶體裝置120內建立一第三表格,用以記錄各SLC區塊所配置的隨機種子相關資訊。例如,記錄各SLC區塊所配置的隨機種子是屬於哪一組。當控制器110A/110B決定執行既定程序時,可先檢視第一表格與第三表格的內容,自具有有效頁面計數值VP_Count大於臨界值TH之SLC區塊中選擇具有不同隨機種子之多個(例如,三個)SLC區塊形成一群組,執行上述第一合併程序。待SLC區塊群組(即,具有有效頁面計數值VP_Count大於臨界值TH且具有不同隨機種子之多個(例如,三個)SLC區塊所形成之群組)都處理完成後,再利用剩餘的SLC區塊執行上述第二合併程序。
於本發明之第二實施例中,控制器110A/110B優先以第一合併程序處理有效頁面多的記憶體區塊,如此可快速釋放記憶體空間。待有效頁面多的記憶體區塊處理完後,再處理有效頁面少的記憶體區塊,藉由上述第二合併程序有效減少寫 入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。
根據本發明之一第三實施例,當控制器110A/110B決定執行既定程序時,亦可優先判斷是否發生過突然斷電(sudden power off)。根據本發明之一實施例,當發生過突然斷電後,系統於重新上電時,會執行一突然斷電回復(Sudden Power Off Recovery,SPOR)程序,以重新建立表格與資料區塊連結。因此,於執行SPOR程序時,控制器110A/110B可設起一旗標,用以指示發生過突然斷電。當控制器110A/110B決定執行既定程序時,可檢查此旗標是否被設起,用來判斷是否發生過突然斷電。若是,則於斷電發生後第一次執行既定程序時,控制器110A/110B可不判斷單層單元區塊所對應之有效頁面計數值VP_Count是否大於臨界值TH,而是改為直接決定執行第三合併程序。第三合併程序也是OBP合併程序之一種應用。於第三合併程序中,控制器110A/110B將單層單元區塊中有效頁面所儲存之資料暫存於緩存器,用以進行資料合併。待控制器110A/110B收集到可寫滿一個多層單元區塊(以TLC區塊為例,即3個SLC區塊)的有效頁面資料量時,控制器110A/110B為各物理頁面配置不同的隨機種子,再將合併後的資料寫入一多層單元區塊。待既定程序完程後,控制器110A/110B可清除上述旗標。如此一來,僅發生過突然斷電後第一次欲執行既定程序時會選擇執行第三合併程序。
值得注意的是,於本發明之其他實施例中,控制 器110A/110B也可被設計為先計數突然斷電的發生次數,並且當突然斷電的發生次數大於一既定數值後,再設起另一旗標,用以指示發生過連續突然斷電的情況。當控制器110A/110B決定執行既定程序時,可先確認連續突然斷電的旗標是否被設起。當發現連續突然斷電的旗標被設起時,就直接決定執行第三合併程序以完成既定程序。待既定程序完成後,控制器110A/110B可清除此旗標。如此一來,僅發生過連續突然斷電後第一次欲執行既定程序時會選擇執行第三合併程序。
一般而言,每當突然斷電發生後,系統就會使用一個新的單層單元區塊作為目前的快取記憶體,因此,突然斷電或連續突然斷電都有可能造成單層單元區塊包含大量的無效頁面。因此,於本發明之第三實施例中,於發生過突然斷電或連續突然斷電後第一次欲執行既定程序時,可設定為優先選擇執行第三合併程序。
第3圖係顯示根據本發明之一實施例所述之記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置可包括一記憶體裝置與一控制器,記憶體裝置可包括複數記憶體區塊,並且記憶體區塊可被切割為複數單層單元區塊與複數多層單元區塊,單層單元區塊用以暫存資料。
第3圖所示之流程圖涵蓋本發明之第一、第二與第三實施例。首先,控制器決定執行一既定程序(步驟S302),用以將單層單元區塊儲存的資料寫入多層單元區塊,以釋放單層單元區塊的記憶體空間。接著,控制器判斷資料儲存裝置是否發生過突然斷電(步驟S304)。若是,則控制器決定執行第三合 併程序(步驟S306)。若否,則控制器進一步判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH(步驟S308)。若是,則對該單層單元區塊執行第一合併程序(步驟S310),控制器直接將具有VP_Count>TH之多個單層單元區塊所儲存之資料寫入多層單元區塊。若否,則對該單層單元區塊執行第二合併程序(步驟S312)。
如上述,於本發明之實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可享受直接合併程序的優點(即,可快速完成資料收集與寫入的程序),並且對於有效頁面少的記憶體區塊,也可藉由OBP合併的過程有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。此外,於發生過突然斷電或連續突然斷電後第一次欲執行既定程序時,都優先選擇執行OBP合併,以確保多層單元區塊內的資料皆為有效。
除應用於上述用以將SLC區塊儲存的資料寫入TLC區塊之一既定程序外,根據本發明之一第四實施例,於編程緩存器(buffer)的過程中,亦可藉由隨機種子的配置,使得各物理頁面可根據不同隨機種子進行資料擾亂,藉由此配置可使上述之合併程序更有效率。如上述,為了維持編程的穩定性,記憶體裝置120之SLC區塊可作用為緩存器(或快取記憶體),用以於主機裝置200欲將資料寫入記憶體裝置100時暫存資料。待 SLC區塊的使用率達到一定程度時,控制器110A/110B便可執行上述之既定程序。
根據本發明之第四實施例,控制器110A/110B可為不同的SLC區塊配置不同組隨機種子,其中各組隨機種子分別包含一既定數量之隨機種子,並且各組所包含之隨機種子均不相同。舉例而言,控制器110A/110B可為不同SLC區塊配置不同組隨機種子,用以於寫入資料時,擾亂器115可根據對應之隨機種子進行資料擾亂。假設一SLC區塊包含10個物理頁面,則每組隨機種子可包含10個不同的隨機種子,則配置給三個SLC區塊的三組隨機種子中所包含的30個隨機種子皆不相同。
更具體的說,於本發明之一實施例中,控制器110A/110B可先使用第一SLC區塊作為緩存器(buffer)。當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第一組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第一SLC區塊。
當第一SLC區塊被寫滿或待第一SLC區塊的使用率達到一定程度時,控制器110A/110B可再使用第二SLC區塊作為緩存器。同樣地,當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第二組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第二SLC區塊。
當第二SLC區塊被寫滿或待第二SLC區塊的使用 率達到一定程度時,控制器110A/110B可再使用第三SLC區塊作為緩存器。同樣地,當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第三組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第三SLC區塊,並依此類推。
如上述,第一組隨機種子、第二組隨機種子與第三組隨機種子分別包含一既定數量之隨機種子,並且第一組隨機種子、第二組隨機種子與第三組隨機種子所包含之隨機種子均不相同。
此外,擾亂器115於進行資料擾亂時,亦會將各物理頁面所使用之隨機種子儲存於該物理頁面之一備用區(spare region)中,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。更具體的說,於讀取資料時,控制器110A/110B自記憶體裝置120讀出對應之資料,經由編碼器114對該資料進行解碼,以及經由擾亂器115根據該資料之備用區所儲存之對應之隨機種子對解碼過之該資料進行資料解擾亂後,便可得到原始資料。
根據本發明之第四實施例,由於已事先為不同的SLC區塊配置不同組隨機種子,使得資料於寫入不同的SLC區塊時便已使用不同的隨機種子進行資料擾亂,且各物理頁面所配置的隨機種子亦均不相同,因此,當控制器110A/110B決定執行用以將多個SLC區塊所儲存的資料寫入一個多層單元區塊之一直接合併程序(即,上述之第一合併程序)時,便可直接將 多個SLC區塊所儲存的資料寫入一個多層單元區塊。
如上述,控制器110A/110B依序讀取多個(例如,三個)SLC區塊所儲存的資料,並依序將讀取的資料寫入一個TLC區塊。一般而言,一個讀取動作伴隨一個寫入動作。例如,控制器110A/110B可依序讀取上述第一SLC區塊並直接將讀取的資料寫入一TLC區塊,讀取上述第二SLC區塊並直接將讀取的資料寫入同一TLC區塊,以及讀取上述第三SLC區塊並直接將讀取的資料寫入同一TLC區塊。
根據本發明之一實施例,SLC區塊可如上述被分為三個群組,各群組可對應於一組隨機種子,且不同群組的SLC區塊配置不同組隨機種子。舉例而言,第一群組可包含第一SLC區塊、第四SLC區塊...等,並且控制器110A/110B可為第一群組的SLC區塊配置第一組隨機種子。同樣地,第二群組可包含第二SLC區塊、第五SLC區塊...等,並且控制器110A/110B可為第二群組的SLC區塊配置第二組隨機種子,第三群組可包含第三SLC區塊、第六SLC區塊...等,並且控制器110A/110B可為第三群組的SLC區塊配置第三組隨機種子。於本發明之一實施例中,假設三個群組各只有二個SLC區塊,則控制器110A/110B可於各群組所包含之其中一個SLC區塊被寫滿之後即馬上啟動直接合併程序。假設三個群組各包含三個以上SLC區塊,則控制器110A/110B可於各群組所包含之空的SLC區塊的數量低於某個既定值時啟動直接合併程序。
由於SLC區塊的資料無須經過控制器,而是直接被寫入TLC區塊,因此直接合併程序的優點為速度快。此外,由 於於本發明之第四實施例中,控制器110A/110B已為不同的SLC區塊配置不同組隨機種子,因此,上述第一、第二與第三SLC區塊所配置之隨機種子均不相同,且上述第一、第二與第三SLC區塊之各物理頁面所配置之隨機種子亦不相同,藉由此配置可使上述之合併程序更有效率。
第4圖係顯示根據本發明之另一實施例所述之記憶體裝置之資料處理方法流程圖。首先,為不同的SLC區塊配置不同組隨機種子(步驟S402)。舉例而言,當N個SLC區塊被設定作為緩存器時,控制器110A/110B可配置N組不同的隨機種子,使得各SLC區塊所對應之隨機種子均不相同,且各SLC區塊的各物理頁面所對應之隨機種子亦均不相同,其中N為一正整數。
接著,當控制器110A/110B欲將資料寫入第n個SLC區塊時(其中0<n<N),根據該SLC區塊所對應之第n組隨機種子對資料進行資料擾亂,並且對擾亂過之資料進行編碼後,再將經擾亂及編碼過之資料寫入對應之SLC區塊(步驟S404)。
相較於先前技術,當要將SLC區塊的資料整理至TLC區塊時,為確保每個物理頁面的隨機種子皆不相同,往往需要將資料先從記憶體裝置120讀取至SRAM 112,並且由控制器重新給予隨機種子再擾亂/編碼後,才能再儲存至TLC區塊,如此降低資料儲存裝置的效能。於本發明之實施例中,藉由隨機種子的配置可使上述之合併程序更有效率,並且可確保經合併程序後之TLC區塊內的每一個物理頁面的資料都會根據不同隨機種子進行資料擾亂。
本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (10)
- 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,其中該等記憶體區塊包括複數單層單元區塊與複數多層單元區塊;以及一控制器,耦接該記憶體裝置,其中當該控制器執行用以將該等單層單元區塊所儲存的資料寫入該等多層單元區塊之一既定程序時,該控制器判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值,並且當多個單層單元區塊所對應之該有效頁面計數值大於該臨界值時,該控制器執行一第一合併程序,用以直接將具有該有效頁面計數值大於該臨界值之該等單層單元區塊所儲存之資料寫入該等多層單元區塊之一或多者。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器更自具有該有效頁面計數值大於該臨界值之該等單層單元區塊中選擇具有不同隨機種子之單層單元區塊執行該第一合併程序。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該控制器判斷一單層單元區塊所對應之該有效頁面計數值不大於該臨界值時,執行一第二合併程序,其中於該第二合併程序中,該控制器判斷各單層單元區塊的物理頁面所儲存之資料是否都是有效資料,以及當一單層單元區塊之一物理頁面所儲存之資料並非都是有效資料時,該控制器讀取該單層單元區塊之有效頁面的資料,並暫存於一緩存器,並且待該緩存器收集到可寫滿一個多層單元區塊的有效頁面 資料量時,再將有效資料寫入該等多層單元區塊之一者。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該等多層單元區塊為三層單元區塊,並且當該控制器執行該第一合併程序時,直接將三個具有不同隨機種子之單層單元區塊所儲存之資料寫入一個三層單元區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該控制器執行該既定程序時更判斷是否發生過突然斷電(sudden power off),當發生過突然斷電時,該控制器執行一第三合併程序,其中於該第三合併程序中,該控制器將該等單層單元區塊中有效頁面所儲存之資料合併,並且將合併後之資料寫入該等多層單元區塊。
- 一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一控制器,該記憶體裝置包括複數記憶體區塊,並且該等記憶體區塊包括複數單層單元區塊與複數多層單元區塊,該方法包括:判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值;以及當多個單層單元區塊所對應之該有效頁面計數值大於該臨界值時,執行一第一合併程序,用以直接將具有該有效頁面計數值大於該臨界值之該等單層單元區塊所儲存之資料寫入該等多層單元區塊之一或多者。
- 如申請專利範圍第6項所述之方法,更包括:自具有該有效頁面計數值大於該臨界值之該等單層單元區塊中選擇具有不同隨機種子之單層單元區塊執行該第一合 併程序。
- 如申請專利範圍第6項所述之方法,更包括:當判斷一單層單元區塊所對應之該有效頁面計數值不大於該臨界值時,執行一第二合併程序,並且其中執行該第二合併程序之步驟包括:判斷各單層單元區塊的物理頁面所儲存之資料是否都是有效資料;當一單層單元區塊之一物理頁面所儲存之資料並非都是有效資料時,讀取該單層單元區塊之有效頁面的資料,並暫存於一緩存器;以及待該緩存器收集到可寫滿一個多層單元區塊的有效頁面資料量時,將有效資料寫入該等多層單元區塊之一者。
- 如申請專利範圍第6項所述之方法,其中該等多層單元區塊為三層單元區塊,並且當執行該第一合併程序時,三個具有不同隨機種子之單層單元區塊所儲存之資料直接被合併並且被寫入一個三層單元區塊。
- 如申請專利範圍第6項所述之方法,更包括:判斷是否發生過突然斷電;以及當發生過突然斷電時,不判斷各單層單元區塊所對應之該有效頁面計數值是否大於該臨界值,而改為直接執行一第三合併程序;其中執行該第三合併程序之步驟包括:將該等單層單元區塊中有效頁面所儲存之資料合併;以及將合併後之資料寫入該等多層單元區塊。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139137A TWI653538B (zh) | 2017-11-13 | 2017-11-13 | 資料儲存裝置與記憶體裝置之資料處理方法 |
CN201810531214.XA CN109783004B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
CN201810794936.4A CN109783007B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
US16/039,722 US10719254B2 (en) | 2017-11-13 | 2018-07-19 | Merging data from single-level cell block to multiple-level cell block based on sudden power off event and valid page count in single-level cell block |
US16/161,900 US10592157B2 (en) | 2017-11-13 | 2018-10-16 | Merging data from single-level cell block to multiple-level cell block using scrambler with different seeds |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139137A TWI653538B (zh) | 2017-11-13 | 2017-11-13 | 資料儲存裝置與記憶體裝置之資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI653538B TWI653538B (zh) | 2019-03-11 |
TW201918893A true TW201918893A (zh) | 2019-05-16 |
Family
ID=66432102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106139137A TWI653538B (zh) | 2017-11-13 | 2017-11-13 | 資料儲存裝置與記憶體裝置之資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10719254B2 (zh) |
CN (2) | CN109783004B (zh) |
TW (1) | TWI653538B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102362244B1 (ko) * | 2017-03-25 | 2022-02-11 | 삼성전자주식회사 | 미션 크리티컬 데이터 통신 시스템에서의 데이터 송수신 방법 및 장치 |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
KR102654308B1 (ko) * | 2018-11-26 | 2024-04-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR102593541B1 (ko) * | 2018-11-29 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN111949565A (zh) * | 2019-05-17 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种存储器及其控制方法和控制装置 |
TWI745695B (zh) | 2019-05-22 | 2021-11-11 | 慧榮科技股份有限公司 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
US10735189B2 (en) | 2019-07-01 | 2020-08-04 | Alibaba Group Holding Limited | Data exchange for multi-party computation |
CN110795626A (zh) * | 2019-10-28 | 2020-02-14 | 南京弹跳力信息技术有限公司 | 大数据处理方法及系统 |
CN113495850B (zh) | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
TWI740446B (zh) * | 2020-04-08 | 2021-09-21 | 慧榮科技股份有限公司 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
TWI738308B (zh) * | 2020-04-27 | 2021-09-01 | 宇瞻科技股份有限公司 | 基於分頁模式備份資料的固態硬碟以及基於分頁模式的固態硬碟資料備份方法 |
KR102392121B1 (ko) * | 2020-06-15 | 2022-04-29 | 한국전자통신연구원 | 메모리 분리 시스템에서 메모리 관리 방법 및 장치 |
JP7438859B2 (ja) * | 2020-06-17 | 2024-02-27 | キオクシア株式会社 | メモリシステムおよび方法 |
KR20220025401A (ko) * | 2020-08-24 | 2022-03-03 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
CN111966300B (zh) * | 2020-08-24 | 2021-06-25 | 深圳三地一芯电子有限责任公司 | 一种节省主控sram的存储器数据写入方法及装置 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
US11467763B2 (en) * | 2021-01-20 | 2022-10-11 | Micron Technology, Inc. | Valid data aware media reliability scanning for memory sub-blocks |
CN115705333A (zh) * | 2021-08-17 | 2023-02-17 | 华为云计算技术有限公司 | 数据查询方法以及相关设备 |
JP2023039459A (ja) * | 2021-09-09 | 2023-03-22 | キオクシア株式会社 | メモリシステムおよび方法 |
US11733914B2 (en) | 2021-10-29 | 2023-08-22 | Western Digital Technologies, Inc. | Direct write operation for quad-level cell based data storage devices |
US11809713B1 (en) * | 2022-07-12 | 2023-11-07 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device with aid of randomness-property control |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4533968B2 (ja) * | 2007-12-28 | 2010-09-01 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
KR20090078999A (ko) * | 2008-01-16 | 2009-07-21 | 삼성전자주식회사 | 외란 상태에 따른 적응적 기록 방법 및 이를 이용한 저장장치 |
CN101494086B (zh) | 2008-01-24 | 2011-12-07 | 群联电子股份有限公司 | 快闪存储器储存装置、快闪存储器控制器及其切换方法 |
CN101593156B (zh) * | 2008-05-28 | 2011-09-21 | 群联电子股份有限公司 | 多种存储器的管理方法、系统及控制器 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
CN101814318B (zh) * | 2009-02-25 | 2013-05-01 | 群联电子股份有限公司 | 多层存储单元与非型闪存储存系统及其控制器与存取方法 |
CN102033811B (zh) * | 2009-09-24 | 2013-04-17 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
JP2011145838A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Corp | 記憶装置管理装置および記憶装置の管理方法 |
CN102208210B (zh) * | 2010-03-31 | 2016-04-27 | 深圳市朗科科技股份有限公司 | 闪存设备及其数据存储方法 |
US8880977B2 (en) * | 2011-07-22 | 2014-11-04 | Sandisk Technologies Inc. | Systems and methods of storing data |
US20130042051A1 (en) | 2011-08-10 | 2013-02-14 | Skymedi Corporation | Program method for a non-volatile memory |
US8666068B2 (en) | 2011-10-20 | 2014-03-04 | Sandisk Technologies Inc. | Method for scrambling shaped data |
US8984373B2 (en) | 2012-02-22 | 2015-03-17 | Silicon Motion, Inc. | Method for accessing flash memory and associated flash memory controller |
US9146851B2 (en) * | 2012-03-26 | 2015-09-29 | Compellent Technologies | Single-level cell and multi-level cell hybrid solid state drive |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
US20130343131A1 (en) * | 2012-06-26 | 2013-12-26 | Lsi Corporation | Fast tracking for flash channels |
CN103164344B (zh) * | 2013-03-12 | 2015-09-16 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
KR20150015621A (ko) * | 2013-07-31 | 2015-02-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9620202B2 (en) * | 2013-11-01 | 2017-04-11 | Seagate Technology Llc | Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory |
TWI606458B (zh) | 2013-11-05 | 2017-11-21 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
CN103777904B (zh) * | 2014-02-12 | 2017-07-21 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
US20160094339A1 (en) * | 2014-09-30 | 2016-03-31 | Sandisk Technologies Inc. | Scrambling schemes for scrambling and descrambling data |
US9349479B1 (en) * | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
TWI562149B (en) * | 2015-03-09 | 2016-12-11 | Phison Electronics Corp | Memory control circuit unit, memory storage apparatus and data accessing method |
KR20160110774A (ko) * | 2015-03-12 | 2016-09-22 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 시스템 |
US10008250B2 (en) * | 2015-03-27 | 2018-06-26 | Intel Corporation | Single level cell write buffering for multiple level cell non-volatile memory |
US9697134B2 (en) * | 2015-06-10 | 2017-07-04 | Micron Technology, Inc. | Memory having a static cache and a dynamic cache |
TWI569275B (zh) * | 2015-07-17 | 2017-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI571881B (zh) | 2015-10-23 | 2017-02-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
US9858009B2 (en) * | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
TWI603193B (zh) * | 2016-03-31 | 2017-10-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI606336B (zh) | 2016-04-21 | 2017-11-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
US10423492B2 (en) * | 2016-05-17 | 2019-09-24 | SK Hynix Inc. | Self error-handling flash memory device |
TWI602061B (zh) | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
US10891083B2 (en) * | 2017-04-18 | 2021-01-12 | Microsemi Solutions (Us), Inc. | System and method for randomizing data |
US10387246B2 (en) * | 2017-06-26 | 2019-08-20 | Western Digital Technologies, Inc. | Method and system for scanning for erased flash memory pages |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
-
2017
- 2017-11-13 TW TW106139137A patent/TWI653538B/zh active
-
2018
- 2018-05-29 CN CN201810531214.XA patent/CN109783004B/zh active Active
- 2018-05-29 CN CN201810794936.4A patent/CN109783007B/zh active Active
- 2018-07-19 US US16/039,722 patent/US10719254B2/en active Active
- 2018-10-16 US US16/161,900 patent/US10592157B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI653538B (zh) | 2019-03-11 |
CN109783004A (zh) | 2019-05-21 |
US20190146704A1 (en) | 2019-05-16 |
CN109783007A (zh) | 2019-05-21 |
US10592157B2 (en) | 2020-03-17 |
US10719254B2 (en) | 2020-07-21 |
CN109783004B (zh) | 2022-04-26 |
CN109783007B (zh) | 2022-05-10 |
US20190146705A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI653538B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN109542675B (zh) | 存储器系统及其操作方法 | |
US9983799B2 (en) | Trim command processing method, memory control circuit unit and memory storage apparatus | |
EP2684134B1 (en) | Programmable data storage management | |
US8438361B2 (en) | Logical block storage in a storage device | |
US9122587B2 (en) | Self recovery in a solid state drive | |
CN110083546B (zh) | 记忆装置中进行写入管理的方法、记忆装置和其控制器 | |
TWI668700B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
TW201525692A (zh) | 多位元記憶胞非揮發性記憶體的寫入方法及系統 | |
KR101649357B1 (ko) | 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버 | |
US9454475B2 (en) | Control device, storage device, and data writing method | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN105260325A (zh) | 固态硬盘搜集垃圾区块的方法 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US20130326114A1 (en) | Write mitigation through fast reject processing | |
US20190129629A1 (en) | Method for controlling operations of data storage device, and associated data storage device and controller | |
US9830077B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI653539B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN113721832A (zh) | 数据储存装置与数据处理方法 | |
US11928353B2 (en) | Multi-page parity data storage in a memory device | |
TWI771854B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |