[go: up one dir, main page]

TWI653539B - Data storage device and methods for processing data in the data storage device - Google Patents

Data storage device and methods for processing data in the data storage device Download PDF

Info

Publication number
TWI653539B
TWI653539B TW106140722A TW106140722A TWI653539B TW I653539 B TWI653539 B TW I653539B TW 106140722 A TW106140722 A TW 106140722A TW 106140722 A TW106140722 A TW 106140722A TW I653539 B TWI653539 B TW I653539B
Authority
TW
Taiwan
Prior art keywords
data
layer unit
block
unit block
random seeds
Prior art date
Application number
TW106140722A
Other languages
Chinese (zh)
Other versions
TW201918894A (en
Inventor
林文生
陳瑜達
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW106140722A priority Critical patent/TWI653539B/en
Application granted granted Critical
Publication of TWI653539B publication Critical patent/TWI653539B/en
Publication of TW201918894A publication Critical patent/TW201918894A/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊。記憶體區塊包括複數單層單元區塊與複數多層單元區塊。控制器耦接記憶體裝置。當控制器執行用以將單層單元區塊所儲存的資料寫入多層單元區塊之一既定程序時,控制器判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值,並且當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,控制器執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。 A data storage device includes a memory device and a controller. The memory device includes a plurality of memory blocks. The memory block includes a plurality of single layer unit blocks and a plurality of multi-level unit blocks. The controller is coupled to the memory device. When the controller executes the program for writing the data stored in the single-layer unit block to one of the multi-level unit blocks, the controller determines whether the effective page count value corresponding to each single-layer unit block is greater than a critical value. And when a valid page count value corresponding to the plurality of single-layer unit blocks is greater than a threshold, the controller performs a first combining procedure to directly directly use the plurality of single-layer unit areas having a valid page count value greater than a critical value The data stored in the block is written to one or more of the multi-level cell blocks.

Description

資料儲存裝置與記憶體裝置之資料處理方法 Data storage device and data processing method of memory device

本發明係關於一種是用於快閃記憶體裝置之資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。 The present invention relates to a data processing method for a flash memory device, which can efficiently process data stored in a memory device to improve the performance of the memory device.

隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效的存取控制也變成一個重要的議題。 As the technology of data storage devices has grown rapidly in recent years, many data storage devices, such as SD/MMC, CF, MS and XD memory cards, solid state drives, embedded memory (embedded) Multi Media Card (abbreviated as eMMC) and Universal Flash Storage (UFS) have been widely used in a variety of applications. Therefore, effective access control has become an important issue on these data storage devices.

為了提高資料儲存裝置的存取效能,本發明提出一種新的資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。 In order to improve the access performance of the data storage device, the present invention proposes a new data processing method that can efficiently process the data stored in the memory device to improve the performance of the memory device.

本發明提出一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊。記憶體區塊包括複數單層單元區塊與複數多層單元區塊。控制器耦接記憶體裝置。當控制器執行用以將單層單元區塊所儲存的資料寫 入多層單元區塊之一既定程序時,控制器判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值,並且當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,控制器執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。 The invention provides a data storage device comprising a memory device and a controller. The memory device includes a plurality of memory blocks. The memory block includes a plurality of single layer unit blocks and a plurality of multi-level unit blocks. The controller is coupled to the memory device. When the controller executes to write the data stored in the single-layer unit block When entering one of the multi-level unit blocks, the controller determines whether one of the valid page count values corresponding to each single-layer unit block is greater than a critical value, and the effective page count value corresponding to the plurality of single-layer unit blocks When the threshold value is greater than the threshold value, the controller performs a first merging process for directly writing the data stored in the plurality of single-layer unit blocks having the effective page count value greater than the threshold value into one or more of the multi-level unit blocks.

本發明另提出一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一控制器,記憶體裝置包括複數記憶體區塊,並且等記憶體區塊包括複數單層單元區塊與複數多層單元區塊,該方法包括:判斷各單層單元區塊所對應之一有效頁面計數值是否大於一臨界值;以及當多個單層單元區塊所對應之有效頁面計數值大於臨界值時,執行一第一合併程序,用以直接將具有有效頁面計數值大於臨界值之多個單層單元區塊所儲存之資料寫入多層單元區塊之一或多者。 The present invention further provides a data processing method for a memory device, which is applicable to a data storage device. The data storage device includes a memory device and a controller. The memory device includes a plurality of memory blocks, and the memory blocks include a plurality of single-layer unit blocks and a plurality of multi-level unit blocks, the method comprising: determining whether a valid page count value corresponding to each single-layer unit block is greater than a critical value; and when the plurality of single-layer unit blocks correspond to When the valid page count value is greater than the threshold value, a first merging process is executed to directly write data stored in the plurality of single-layer unit blocks having the effective page count value greater than the threshold value into one or more of the multi-level unit blocks. By.

100‧‧‧資料儲存裝置 100‧‧‧ data storage device

110A、110B‧‧‧控制器 110A, 110B‧‧‧ controller

111‧‧‧微處理器 111‧‧‧Microprocessor

112、SRAM‧‧‧靜態隨機存取記憶體 112, SRAM‧‧‧ static random access memory

113、ROM‧‧‧唯讀記憶體 113, ROM‧‧‧ read-only memory

114‧‧‧編碼器 114‧‧‧Encoder

115‧‧‧擾亂器 115‧‧‧Disruptor

120‧‧‧記憶體裝置 120‧‧‧ memory device

200‧‧‧主機裝置 200‧‧‧ host device

210‧‧‧介面 210‧‧‧ interface

300A、300B‧‧‧電子裝置 300A, 300B‧‧‧ electronic devices

第1A圖係顯示根據本發明之一實施例所述之電子裝置範例方塊圖。 1A is a block diagram showing an example of an electronic device according to an embodiment of the present invention.

第1B圖係顯示根據本發明之另一實施例所述之電子裝置範例方塊圖。 1B is a block diagram showing an example of an electronic device according to another embodiment of the present invention.

第2圖係顯示根據本發明之一實施例所述之處理佇列示意圖。 2 is a schematic view showing a process queue according to an embodiment of the present invention.

第3圖係顯示根據本發明之一實施例所述之記憶體裝置之 資料處理方法流程圖。 Figure 3 is a diagram showing a memory device according to an embodiment of the present invention. Flow chart of data processing method.

第4圖係顯示根據本發明之另一實施例所述之記憶體裝置之資料處理方法流程圖。 Figure 4 is a flow chart showing a data processing method of a memory device according to another embodiment of the present invention.

為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。 In order to make the objects, features and advantages of the present invention more comprehensible, the specific embodiments of the invention are set forth in the accompanying drawings. The intention is to illustrate the spirit of the invention and not to limit the scope of the invention, it being understood that the following embodiments can be implemented by software, hardware, firmware, or any combination of the above.

第1A圖係顯示根據本發明之一實施例所述之電子裝置方塊圖。電子裝置300A可包括主機裝置200與資料儲存裝置100。電子裝置300A可為行動裝置,例如智慧型手機、智慧型手錶或平板電腦,但不以此為限。 1A is a block diagram showing an electronic device according to an embodiment of the present invention. The electronic device 300A may include a host device 200 and a data storage device 100. The electronic device 300A can be a mobile device, such as a smart phone, a smart watch, or a tablet, but is not limited thereto.

根據本發明之一實施例,資料儲存裝置100可包括控制器110A與記憶體裝置120。控制器110A可至少包括一微處理器111、靜態隨機存取記憶體(Static Random Access Memory,縮寫為SRAM)112、唯讀記憶體(ROM)113、一編碼器114與一擾亂器115。記憶體裝置120可包括一或多個非揮發性記憶體,例如,快閃記憶體。 According to an embodiment of the present invention, the data storage device 100 may include a controller 110A and a memory device 120. The controller 110A can include at least a microprocessor 111, a static random access memory (SRAM) 112, a read only memory (ROM) 113, an encoder 114, and a scrambler 115. Memory device 120 can include one or more non-volatile memory, such as flash memory.

主機裝置200與資料儲存裝置100可透過一既定介面210相互連接。例如,當資料儲存裝置100符合通用快閃記憶體(Universal Flash Storage,縮寫為UFS)之規範時,主機裝置200與資料儲存裝置100可透過UFS介面相互連接。又例如,當資料儲存裝置100符合內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)之規範時,主機裝置200與資料儲存裝置100可透過MMC介面相互連接。 The host device 200 and the data storage device 100 can be connected to each other through a predetermined interface 210. For example, when the data storage device 100 conforms to the specification of Universal Flash Storage (UFS), the host device 200 and the data storage device 100 can be connected to each other through the UFS interface. For another example, when the data storage device 100 conforms to the embedded memory (embedded Multi Media) When the card is abbreviated as eMMC), the host device 200 and the data storage device 100 can be connected to each other through the MMC interface.

第1B圖係顯示根據本發明之另一實施例所述之電子裝置300B範例方塊圖。於此實施例中,SRAM 112被配置於控制器110B外部,並且耦接至控制器110B。 FIG. 1B is a block diagram showing an example of an electronic device 300B according to another embodiment of the present invention. In this embodiment, the SRAM 112 is disposed outside of the controller 110B and coupled to the controller 110B.

值得注意的是,為簡化說明,第1A圖與第1B圖僅顯示與本發明相關之元件,並且第1A圖與第1B圖僅顯示多種可應用本發明之架構的其中兩種。然而,本發明之實施並不僅限於第1A圖與第1B圖所示之元件與架構。 It is to be noted that, for simplicity of explanation, FIGS. 1A and 1B show only elements related to the present invention, and FIGS. 1A and 1B show only two of the various structures to which the present invention can be applied. However, the implementation of the present invention is not limited to the elements and architectures shown in Figures 1A and 1B.

根據本發明之一實施例,記憶體裝置120包括複數記憶體區塊。記憶體區塊可進一步被區分為複數單層單元(Single Level Cell,縮寫為SLC)區塊與複數多層單元區塊(Multiple Level Cell,縮寫為MLC)區塊。SLC區塊的每個記憶體單元中儲存一個位元資料,MLC區塊的每個記憶體單元中儲存多個位元資料。例如,根據本發明之一實施例,MLC區塊的每個記憶體單元中儲存兩個位元資料。例如,根據本發明之另一實施例,多層單元區塊可為三層單元(Triple Level Cell,縮寫為TLC)區塊,TLC區塊的每個記憶體單元中儲存三個位元資料。 According to an embodiment of the invention, the memory device 120 includes a plurality of memory blocks. The memory block can be further divided into a plurality of single level cells (SLC) blocks and a plurality of multiple level cells (MLCs). One bit of metadata is stored in each memory unit of the SLC block, and a plurality of bit data are stored in each memory unit of the MLC block. For example, in accordance with an embodiment of the present invention, two bits of metadata are stored in each memory unit of an MLC block. For example, according to another embodiment of the present invention, the multi-level cell block may be a three-level cell (Triple Level Cell, abbreviated as TLC) block, and three bit elements are stored in each memory cell of the TLC block.

各記憶體區塊可包括複數頁面,通常在快閃記憶體中,一個頁面為一個寫入作業的最小資料塊單位,而一個區塊為一個抹除作業的最小資料塊單位。一個物理頁面的大小為固定的,而一個邏輯頁面的大小則可根據韌體編程需求彈性地被設計。 Each memory block can include a plurality of pages, typically in flash memory, one page is the smallest block unit of a write job, and one block is the smallest block unit of an erase job. The size of a physical page is fixed, and the size of a logical page can be flexibly designed according to firmware programming requirements.

一般而言,為了使MLC/TLC區塊的編程能維持穩定狀態,每次編程需寫入多個頁面的資料(諸如二個或三個物理頁面的資料)至MLC/TLC區塊,因此記憶體裝置120之SLC區塊可作用為快取記憶體,或緩存器(buffer),用以暫存資料。待SLC區塊的使用率達到一定程度時,控制器110A/110B可決定執行一既定程序,將SLC區塊儲存的資料寫入MLC/TLC區塊,如此一來,SLC區塊的記憶體空間可被釋放並可再度被使用。 In general, in order to enable the programming of the MLC/TLC block to maintain a stable state, each program needs to write data of multiple pages (such as data of two or three physical pages) to the MLC/TLC block, so the memory The SLC block of the body device 120 can function as a cache memory or a buffer for temporarily storing data. When the usage rate of the SLC block reaches a certain level, the controller 110A/110B may decide to execute a predetermined program to write the data stored in the SLC block into the MLC/TLC block, so that the memory space of the SLC block is performed. Can be released and can be used again.

於上述既定程序中,多個SLC區塊的所儲存之資料會被寫入一或多個MLC/TLC區塊。以TLC區塊為例,控制器將收集或合併數量相當於三個SLC區塊的所能儲存之資料量的資料,並且將其收集或合併之資料寫入TLC區塊。 In the above predetermined procedure, the stored data of a plurality of SLC blocks is written into one or more MLC/TLC blocks. Taking the TLC block as an example, the controller collects or combines the data of the amount of data that can be stored in the three SLC blocks, and writes the collected or merged data into the TLC block.

然而,有時SLC區塊所儲存的資料可能已經無效。舉例而言,當SLC區塊中之部分頁面所儲存之資料與其他區塊中所儲存之資料重複,且該頁面的資料並非最新被儲存之資料,則該頁面的資料會被判斷為已經無效,該頁面會被視為無效頁面(又稱為過期頁面)。因此,於本發明所提出之資料處理方法中,在將SLC區塊儲存的資料寫入MLC/TLC區塊的既定程序中進一步考慮無效頁面的數量,用以更效率地處理記憶體裝置所儲存之資料。 However, sometimes the data stored in the SLC block may have been invalid. For example, when the information stored in some pages in the SLC block is duplicated with the data stored in other blocks, and the data of the page is not the latest stored data, the data of the page is determined to be invalid. The page will be treated as an invalid page (also known as an expired page). Therefore, in the data processing method proposed by the present invention, the number of invalid pages is further considered in the predetermined program for writing the data stored in the SLC block into the MLC/TLC block, so as to more efficiently process the memory device. Information.

根據本發明之一實施例,當控制器110A/110B決定執行既定程序時,判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH。舉例而言,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一第一表格,用以記錄各記憶體區塊所對應之一有效頁面計數值VP_Count,其中用於紀錄的頁面的單位可以是一個邏輯頁面。因此,VP_Count的最大值為一記憶體區塊所包含的邏輯頁面數量,最小值為0。控制器110A/110B可於每次寫入操作後更新第一表格的內容。 According to an embodiment of the present invention, when the controller 110A/110B decides to execute the predetermined program, it is determined whether one of the effective page count values VP_Count corresponding to each single-layer unit block is greater than a threshold TH. For example, the controller 110A/110B may establish a first table in the SRAM 112 or the memory device 120 for recording a valid page count value VP_Count corresponding to each memory block, where the page for recording is used. The unit can be a logical page. Therefore, the maximum value of VP_Count is the number of logical pages included in a memory block, and the minimum value is 0. The controller 110A/110B can update the content of the first form after each write operation.

更具體的說,假設控制器110A/110B將一主頁面(Host page)的資料寫入記憶體區塊B,其中一個主頁面可被設定為一次存取作業的資料塊單位。例如,當一個物理頁面的大小為16K位元組(byte)時,一個主頁面的大小可被設定為4K位元組。當控制器110A/110B判斷相同之主頁面已於更早之前被寫入記憶體區塊A時,則控制器110A/110B將記憶體區塊A所對應之有效頁面計數值VP_Count減1,並且將記憶體區塊B所對應之有效頁面計數值VP_Count加1。 More specifically, it is assumed that the controller 110A/110B writes a material of a main page (Host page) to the memory block B, and one of the main pages can be set as a data block unit for one access operation. For example, when the size of a physical page is 16K bytes, the size of one main page can be set to 4K bytes. When the controller 110A/110B determines that the same home page has been written to the memory block A earlier, the controller 110A/110B decrements the effective page count value VP_Count corresponding to the memory block A by one, and The effective page count value VP_Count corresponding to the memory block B is incremented by one.

根據本發明之一實施例,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一第二表格,用以記錄一主頁面的資料被儲存於哪個記憶體區塊的哪個頁面。因此,控制器110A/110B可透過查詢第二表格得知該主頁面是否已被儲存於其他記憶體區塊內。 According to an embodiment of the present invention, the controller 110A/110B can create a second table in the SRAM 112 or the memory device 120 for recording which page of the memory block the data of a main page is stored in. Therefore, the controller 110A/110B can query whether the main page has been stored in other memory blocks by querying the second table.

當多個單層單元區塊所對應之有效頁面計數值VP_Count大於臨界值TH時,控制器110A/110B決定執行一第一合併程序,用以將具有有效頁面計數值VP_Count大於臨界值TH之多個單層單元區塊所儲存之資料寫入一或多者多層單元區塊。 When the effective page count value VP_Count corresponding to the plurality of single layer unit blocks is greater than the threshold TH, the controller 110A/110B decides to perform a first combining procedure for using the effective page count value VP_Count to be greater than the threshold TH The data stored in the single-level cell block is written into one or more multi-level cell blocks.

根據本發明之一實施例,第一合併程序為直接合併(Direct merge)程序。以TLC區塊為例,當至少三個單層單元 區塊所對應之有效頁面計數值VP_Count大於臨界值TH時,控制器110A/110B決定執行直接合併程序。控制器110A/110B可以三個具有有效頁面計數值VP_Count大於臨界值TH之SLC區塊組合成一個群組。控制器110A/110B依序讀取一群組內SLC區塊所儲存的資料(即,讀取整個SLC區塊所儲存的資料而不考慮是否有無效頁的存在),並依序將讀取的資料寫入一個TLC區塊。一般而言,一個讀取動作伴隨一個寫入動作。由於SLC區塊的資料無須經過控制器,而是直接被寫入TLC區塊,因此直接合併程序的優點為速度快。 According to an embodiment of the invention, the first merge program is a direct merge program. Take the TLC block as an example, when at least three single-layer units When the valid page count value VP_Count corresponding to the block is greater than the threshold TH, the controller 110A/110B decides to execute the direct merge procedure. The controller 110A/110B may combine three SLC blocks having a valid page count value VP_Count greater than a threshold TH into a group. The controller 110A/110B sequentially reads the data stored in the SLC block in a group (that is, reads the data stored in the entire SLC block without considering whether there is an invalid page), and sequentially reads the data. The data is written to a TLC block. In general, a read action is accompanied by a write action. Since the data of the SLC block does not need to pass through the controller, but is directly written into the TLC block, the advantage of the direct merge program is that it is fast.

另一方面,當控制器110A/110B發現任一個單層單元區塊所對應之有效頁面計數值VP_Count不大於臨界值TH時,控制器110A/110B決定執行一第二合併程序。於第二合併程序中,控制器110A/110B自尚未被處理過的SLC區塊中挑選出數個具有有效頁面計數值VP_Count不大於臨界值TH之SLC區塊,並且將被挑選出之SLC區塊中有效頁面所儲存之資料合併後,將資料寫入多層單元區塊之一者。 On the other hand, when the controller 110A/110B finds that the effective page count value VP_Count corresponding to any single layer unit block is not greater than the threshold TH, the controller 110A/110B decides to perform a second combining procedure. In the second combining procedure, the controller 110A/110B selects a plurality of SLC blocks having a valid page count value VP_Count not greater than the threshold TH from the SLC blocks that have not been processed, and the SLC area to be selected After the data stored in the valid pages in the block is merged, the data is written to one of the multi-level cell blocks.

根據本發明之一實施例,第二合併程序為緩存編程(On Buffer Program,縮寫為OBP)合併程序之一種應用。以TLC區塊為例,當控制器110A/110B發現任一個SLC區塊所對應之有效頁面計數值VP_Count不大於臨界值TH時,控制器110A/110B決定對此SLC區塊執行OBP合併程序。 According to an embodiment of the invention, the second merging program is an application of an On Buffer Program (abbreviated as OBP) merging program. Taking the TLC block as an example, when the controller 110A/110B finds that the effective page count value VP_Count corresponding to any one of the SLC blocks is not greater than the threshold TH, the controller 110A/110B decides to perform an OBP merge procedure for the SLC block.

更具體的說,於OBP合併程序中,當控制器110A/110B判斷一個SLC區塊的某個物理頁面(例如,16K位元組之物理頁面)所儲存之資料都是有效資料時,控制器110A/110B 不將有效資料讀出來整理,而是將有效資料繼續存放於原SLC區塊中。 More specifically, in the OBP combining procedure, when the controller 110A/110B determines that the data stored in a physical page of an SLC block (for example, a physical page of a 16K byte) is valid data, the controller 110A/110B Instead of sorting out the valid data, the valid data is stored in the original SLC block.

當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料並非都是有效資料時,讀取此SLC區塊所儲存之有效頁面的資料,並暫存於緩存器。控制器110A/110B接著繼續檢測其餘SLC區塊所儲存之資料是否並非都是有效資料。若其餘SLC區塊所儲存之資料並非都是有效資料,便如同上述讀取此SLC區塊所儲存之有效頁面的資料,並暫存於緩存器。待緩存器內收集到一個物理頁面大小之有效資料時(例如,16K位元組),再將之寫入一暫存區塊(以下稱為OBP區塊)中。 When the controller 110A/110B determines that the data stored in a physical page of an SLC block is not all valid data, the data of the valid page stored in the SLC block is read and temporarily stored in the buffer. The controller 110A/110B then continues to detect if the data stored in the remaining SLC blocks is not all valid data. If the data stored in the remaining SLC blocks is not all valid data, the data of the valid page stored in the SLC block is read and temporarily stored in the buffer. When a valid data of a physical page size is collected in the buffer (for example, 16K bytes), it is written into a temporary storage block (hereinafter referred to as an OBP block).

於本發明之一實施例中,控制器110A/110B可於SRAM 112或記憶體裝置120內建立一OBP表格。OBP表格用以紀錄爾後進行OBP合併程序時,目的TLC區塊的每一頁的資料現在是存放在哪個區塊的哪一頁。例如,可能在原本的SLC區塊,也有可能在OBP區塊。 In one embodiment of the invention, the controller 110A/110B can create an OBP table within the SRAM 112 or the memory device 120. The OBP table is used to record which page of the block in which the data of each page of the destination TLC block is stored in the OBP merge process. For example, it may be in the original SLC block, or it may be in the OBP block.

最後,當累積到一個TLC區塊可容納的有效資料之後,會依據OBP表格上面記錄的資訊,一頁一頁(例如,物理頁面)地依序將資料讀到控制器110A/110B,並依據頁面編號查詢對應的隨機種子,經過擾亂器115擾亂及編碼器114編碼之後,再將處理過的資料存入TLC區塊的對應頁面。此外,每一頁面的備用區(spare region)中也會存一份隨機種子,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。 Finally, after accumulating valid data that can be accommodated in a TLC block, the data is sequentially read to the controller 110A/110B one page at a time (for example, a physical page) according to the information recorded on the OBP table, and The page number queries the corresponding random seed, and after being scrambled by the scrambler 115 and encoded by the encoder 114, the processed data is stored in the corresponding page of the TLC block. In addition, a random seed is also stored in the spare region of each page. After the data is read, the data can be restored according to the random seed of the spare area.

因此,根據本發明之一實施例中,於第二合併程序中,當控制器110A/110B判斷一個SLC區塊的某個物理頁面 所儲存之資料並非都是有效資料時,控制器110A/110B讀取此SLC區塊之有效頁面的資料,並暫存於緩存器,待緩存器內收集到一個物理頁面大小之有效資料時(例如,16K位元組),再將之寫入一OBP區塊中。當控制器110A/110B判斷一個SLC區塊的某個物理頁面所儲存之資料都是有效資料時,控制器110A/110B不將有效資料讀出來整理,而是將有效資料繼續存放於原SLC區塊中。待控制器110A/110B收集到可寫滿一個TLC區塊(即,三個SLC區塊,其可以是原SLC區塊或OBP區塊,兩者合計)的有效頁面資料量時,再將有效資料寫入一TLC區塊。相較於直接合併(即,上述之第一合併程序),OBP合併(即,上述之第二合併程序)的優點為可確保TLC區塊內的資料皆為有效。 Therefore, in an embodiment of the present invention, in the second merge procedure, when the controller 110A/110B determines a physical page of an SLC block When the stored data is not all valid data, the controller 110A/110B reads the data of the valid page of the SLC block and temporarily stores it in the buffer, and when the valid data of the physical page size is collected in the buffer ( For example, 16K bytes), and then write it into an OBP block. When the controller 110A/110B determines that the data stored in a physical page of an SLC block is valid data, the controller 110A/110B does not read out the valid data, but saves the valid data in the original SLC area. In the block. When the controller 110A/110B collects the amount of valid page data that can be written to one TLC block (ie, three SLC blocks, which may be the original SLC block or the OBP block, the sum of the two), it will be valid again. The data is written into a TLC block. Compared to the direct merge (i.e., the first merge procedure described above), the OBP merge (i.e., the second merge procedure described above) has the advantage of ensuring that the data within the TLC block is valid.

於本發明之實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可享受直接合併程序的優點(即,可快速完成資料收集與寫入的程序),並且對於有效頁面少的記憶體區塊,也可藉由OBP合併的過程有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。 In the embodiment of the present invention, the controller 110A/110B elastically determines which method to store the data stored in the single-layer unit block into the multi-level unit block according to the effective page count value VP_Count of the memory block, such that In the memory block with more effective pages, you can enjoy the advantages of the direct merge program (that is, the program that can quickly complete data collection and writing), and the memory block with fewer effective pages can also be used by OBP. The merge process effectively reduces the number of invalid pages written to the multi-level cell block, making subsequent garbage collection procedures or other data processing programs for multi-level cell blocks more efficient.

以下段落將更詳細說明本申請之多個實施例。 The following paragraphs will describe various embodiments of the present application in more detail.

根據本發明之一第一實施例,控制器110A/110B可先將要進行既定程序的SLC區塊依序排入一處理佇列中,以便 於預先根據隨機種子將SLC區塊分組。舉例而言,當控制器110A/110B依序將資料寫入SLC區塊0、1、2...時,也可依照一既定順序為SLC區塊0、1、2...分配不同的隨機種子。更具體的說,假設資料儲存裝置系統中被配置三組隨機種子,每組包含複數不同的隨機種子,各隨機種子用以擾亂一物理頁面,並且三組的隨機種子皆不相同。舉例而言,假設一SLC區塊包含10個物理頁面,則每組隨機種子可包含10個不同的隨機種子,而這三組被配置的隨機種子中所包含的30個隨機種子亦皆不相同。 According to a first embodiment of the present invention, the controller 110A/110B may first sequentially arrange the SLC blocks to be programmed into a processing queue so that The SLC blocks are grouped in advance according to random seeds. For example, when the controller 110A/110B sequentially writes data into the SLC blocks 0, 1, 2, ..., the SLC blocks 0, 1, 2, ... can also be assigned different according to a predetermined order. Random seed. More specifically, it is assumed that three sets of random seeds are configured in the data storage device system, each group contains a plurality of random seeds, each random seed is used to disturb a physical page, and the random seeds of the three groups are different. For example, if an SLC block contains 10 physical pages, each set of random seeds may contain 10 different random seeds, and the 30 random seeds included in the three configured random seeds are also different. .

控制器110A/110B可依序將這三組隨機種子分配給SLC區塊。例如,將第一組隨機種子分配給SLC區塊0、3、6...,將第二組隨機種子分配給SLC區塊1、4、7...,將第三組隨機種子分配給SLC區塊2、5、8...依此類推。值得注意的是,以上範例僅用以清楚說明本發明之概念,本發明並不限於使用三組不同的隨機種子。例如,資料儲存裝置系統可使用三組以上不同的隨機種子。 The controllers 110A/110B can sequentially assign the three sets of random seeds to the SLC block. For example, assigning a first set of random seeds to SLC blocks 0, 3, 6..., assigning a second set of random seeds to SLC blocks 1, 4, 7..., assigning a third set of random seeds to SLC blocks 2, 5, 8... and so on. It is to be noted that the above examples are only intended to clearly illustrate the concept of the invention, and the invention is not limited to the use of three different sets of random seeds. For example, a data storage device system can use more than three different sets of random seeds.

控制器110A/110B之擾亂器115可根據隨機種子將資料擾亂後再存入SLC區塊中。此外,每一頁面的備用區(spare region)中也會存一份隨機種子,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。 The scrambler 115 of the controller 110A/110B can scramble the data according to the random seed and then store it in the SLC block. In addition, a random seed is also stored in the spare region of each page. After the data is read, the data can be restored according to the random seed of the spare area.

由於控制器110A/110B已知SLC區塊0、1、2使用不同的隨機種子,SLC區塊3、4、5使用不同的隨機種子,因此,控制器110A/110B可如第2圖所示將要進行既定程序的SLC區塊依序排入一處理佇列中,其中處理佇列記錄的可以是SLC區 塊編號,例如第2圖方塊中的數字。如此一來,處理佇列中每欄(column)的三個SLC區塊可被歸類為一群組,並且每一群組內的SLC區塊可確保會根據不同隨機種子進行資料擾亂(即,群組內的每一個物理頁面都會根據不同隨機種子進行資料擾亂)。 Since the controllers 110A/110B know that the SLC blocks 0, 1, 2 use different random seeds, the SLC blocks 3, 4, 5 use different random seeds, so the controller 110A/110B can be as shown in FIG. The SLC blocks to be subjected to the predetermined program are sequentially discharged into a processing queue, wherein the processing of the queue records may be the SLC region. The block number, such as the number in the box in Figure 2. In this way, the three SLC blocks of each column in the processing queue can be classified into a group, and the SLC blocks in each group can ensure data scrambling according to different random seeds (ie, Each physical page in the group will be scrambled according to different random seeds).

在將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。 After the SLC blocks are sequentially discharged into the processing queue, the controller 110A/110B can sequentially determine whether one of the effective page count values VP_Count corresponding to each single-layer unit block is greater than a threshold TH. Assume that, as shown in FIG. 2, the effective page count value VP_Count corresponding to the SLC blocks 3, 5, 7, 11, 13, 15 is not greater than the threshold TH (the VP_Count<=TH is indicated by a diagonal line in FIG. 2) Block), the effective page count value VP_Count corresponding to the remaining SLC blocks is greater than the threshold TH.

根據本發明之一實施例,控制器110A/110B於判斷SLC區塊0、1、2所對應之有效頁面計數值VP_Count均大於臨界值TH後,可決定對SLC區塊0、1、2執行第一合併程序,用以直接將SLC區塊0、1、2寫入一個TLC區塊。此處理程序可持續被進行,直到遇到有效頁面計數值VP_Count不大於臨界值TH的SLC區塊。 According to an embodiment of the present invention, after determining that the effective page count value VP_Count corresponding to the SLC blocks 0, 1, and 2 is greater than the threshold TH, the controller 110A/110B may decide to perform the SLC blocks 0, 1, and 2. The first merge procedure is used to directly write the SLC blocks 0, 1, 2 into a TLC block. This process can continue until the SLC block that the valid page count value VP_Count is not greater than the threshold TH is encountered.

假設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區塊。 Assuming that the effective page count value VP_Count corresponding to the SLC block 3 is not greater than the threshold TH, then when processing to the SLC block 3, the controller 110A/110B decides to perform a second merge procedure. In the second merge procedure, the controller 110A/110B determines whether the data stored in the physical pages of each SLC block is valid data. When the controller 110A/110B determines that the data stored in a physical page of an SLC block is not all valid data, the controller 110A/110B reads The data of the valid page of the SLC block is taken and temporarily stored in the buffer. When the controller 110A/110B determines that the data stored in a physical page of an SLC block is valid data, the controller 110A/110B does not read out the valid data, but saves the valid data in the original SLC area. In the block. When the controller 110A/110B collects the amount of valid page data that can be written to one TLC block (ie, three SLC blocks, which may be the original SLC block or the OBP block, the sum of the two), it will be valid again. The data is written into a TLC block.

待第二合併程序完成後,控制器110A/110B進一步重整處理佇列內容,將已處理過(即,所有有效資料均被合併寫入TLC區塊)的SLC區塊移除,並由同一組(同一列)未處理過的SLC區塊遞補。如第2圖的箭頭所示,當SLC區塊3已被處理完成時,控制器110A/110B將SLC區塊編號6填入處理佇列第二欄第一列的空缺位置,以取代SLC區塊3,當SLC區塊5已被處理完成時,控制器110A/110B將SLC區塊編號8填入處理佇列第二欄第三列的位置,以取代SLC區塊5,並依此類推。如此一來,可確保被歸類為一群組之每欄(column)的三個SLC區塊會根據不同隨機種子進行資料擾亂(即,群組內的每一個物理頁面都會根據不同隨機種子進行資料擾亂)。 After the second merge process is completed, the controller 110A/110B further reprocesses the queue contents, and removes the SLC blocks that have been processed (ie, all valid data are merged and written into the TLC block), and are identical. Group (same column) unprocessed SLC block is replenished. As indicated by the arrow in FIG. 2, when the SLC block 3 has been processed, the controller 110A/110B fills the SLC block number 6 into the vacant position in the first column of the second column of the processing queue to replace the SLC area. Block 3, when the SLC block 5 has been processed, the controller 110A/110B fills the SLC block number 8 into the third column of the second column of the processing queue to replace the SLC block 5, and so on. . In this way, it can be ensured that the three SLC blocks classified as a column of a group will be scrambled according to different random seeds (that is, each physical page in the group will be based on different random seeds). Data disruption).

同樣地,每當控制器110A/110B完成第一合併程序時,也可依照相同方式重整處理佇列內容。 Similarly, each time the controller 110A/110B completes the first merging process, the queue contents can be reprocessed in the same manner.

此外,待第二合併程序完成後,控制器110A/110B可再根據處理佇列內容依序處理其他未處理過的SLC區塊。控制器110A/110B可繼續如上述依序判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH,並且根 據判斷結果決定要執行第一合併程序或第二合併程序。 In addition, after the second merging process is completed, the controller 110A/110B can process other unprocessed SLC blocks in sequence according to the processing queue contents. The controller 110A/110B may continue to sequentially determine, according to the foregoing, whether a valid page count value VP_Count corresponding to each single-layer unit block is greater than a threshold TH, and root According to the judgment result, it is decided to execute the first combining procedure or the second combining procedure.

於本發明之第一實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可快速完成既定程序,並且對於有效頁面少的記憶體區塊,也可藉由上述第二合併程序有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。 In the first embodiment of the present invention, the controller 110A/110B elastically determines which method to store the data stored in the single-layer unit block into the multi-level unit block according to the effective page count value VP_Count of the memory block. In this way, for a memory block with a large number of effective pages, the predetermined program can be quickly completed, and for a memory block with fewer effective pages, the second merge program can effectively reduce the invalidity of writing the multi-level unit block. The number of pages makes it more efficient to carry out subsequent garbage collection procedures or other data processing programs for multi-level cell blocks.

根據本發明之一第二實施例,控制器110A/110B可更進一步於SRAM 112或記憶體裝置120內建立一第三表格,用以記錄各SLC區塊所配置的隨機種子相關資訊。例如,記錄各SLC區塊所配置的隨機種子是屬於哪一組。當控制器110A/110B決定執行既定程序時,可先檢視第一表格與第三表格的內容,自具有有效頁面計數值VP_Count大於臨界值TH之SLC區塊中選擇具有不同隨機種子之多個(例如,三個)SLC區塊形成一群組,執行上述第一合併程序。待SLC區塊群組(即,具有有效頁面計數值VP_Count大於臨界值TH且具有不同隨機種子之多個(例如,三個)SLC區塊所形成之群組)都處理完成後,再利用剩餘的SLC區塊執行上述第二合併程序。 According to a second embodiment of the present invention, the controller 110A/110B may further establish a third table in the SRAM 112 or the memory device 120 for recording random seed related information configured by each SLC block. For example, it is recorded which group the random seed configured for each SLC block belongs to. When the controller 110A/110B decides to execute the predetermined program, the contents of the first table and the third table may be first checked, and a plurality of different random seeds are selected from the SLC blocks having the valid page count value VP_Count greater than the threshold TH ( For example, three) SLC blocks form a group, and the first combining procedure described above is performed. After the SLC block group (ie, the group formed by having a valid page count value VP_Count greater than the threshold TH and having multiple (eg, three) SLC blocks with different random seeds) is processed, the remaining portion is reused. The SLC block performs the second merge procedure described above.

於本發明之第二實施例中,控制器110A/110B優先以第一合併程序處理有效頁面多的記憶體區塊,如此可快速釋放記憶體空間。待有效頁面多的記憶體區塊處理完後,再處理有效頁面少的記憶體區塊,藉由上述第二合併程序有效減少寫 入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。 In the second embodiment of the present invention, the controller 110A/110B preferentially processes the memory blocks with more valid pages in the first merge program, so that the memory space can be quickly released. After the memory block with more valid pages is processed, the memory block with fewer effective pages is processed, and the second merge program is used to effectively reduce writing. The number of invalid pages into the multi-level cell block makes the subsequent garbage collection program or other data processing program of the multi-level cell block more efficient.

根據本發明之一第三實施例,當控制器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可清除上述旗標。如此一來,僅發生過突然斷電後第一次欲執行既定程序時會選擇執行第三合併程序。 According to a third embodiment of the present invention, when the controller 110A/110B decides to execute the predetermined program, it is also possible to preferentially judge whether or not a sudden power off has occurred. According to an embodiment of the present invention, when a sudden power failure occurs, the system performs a Sudden Power Off Recovery (SPOR) procedure to re-establish the connection of the form and the data block when the system is powered back on. Therefore, when the SPOR procedure is executed, the controller 110A/110B can set a flag to indicate that a sudden power failure has occurred. When the controller 110A/110B decides to execute the predetermined program, it can check whether the flag is set to determine whether a sudden power failure has occurred. If yes, the controller 110A/110B may not determine whether the effective page count value VP_Count corresponding to the single-layer unit block is greater than the critical value TH, but directly decides to execute the first time when the predetermined program is executed after the power failure occurs. Three merger procedures. The third merge procedure is also an application of the OBP merge program. In the third merging process, the controller 110A/110B temporarily stores the data stored in the valid page in the single-layer unit block in the buffer for data merging. When the controller 110A/110B collects a valid page data amount that can be filled with one multi-level cell block (taking TLC blocks as an example, that is, three SLC blocks), the controller 110A/110B configures different physical pages for each physical page. Random seed, and then the combined data is written into a multi-level cell block. After the predetermined program is completed, the controller 110A/110B can clear the above flag. In this way, the third merge procedure is selected when the first program is to be executed for the first time after a sudden power failure.

值得注意的是,於本發明之其他實施例中,控制 器110A/110B也可被設計為先計數突然斷電的發生次數,並且當突然斷電的發生次數大於一既定數值後,再設起另一旗標,用以指示發生過連續突然斷電的情況。當控制器110A/110B決定執行既定程序時,可先確認連續突然斷電的旗標是否被設起。當發現連續突然斷電的旗標被設起時,就直接決定執行第三合併程序以完成既定程序。待既定程序完成後,控制器110A/110B可清除此旗標。如此一來,僅發生過連續突然斷電後第一次欲執行既定程序時會選擇執行第三合併程序。 It should be noted that in other embodiments of the invention, the control The device 110A/110B can also be designed to count the number of occurrences of a sudden power failure, and when the number of occurrences of the sudden power failure is greater than a predetermined value, another flag is set to indicate that a sudden sudden power failure has occurred. Happening. When the controller 110A/110B decides to execute the predetermined program, it can first confirm whether the flag of the continuous sudden power failure is set. When it is found that the flag of continuous sudden power failure is set, it is directly decided to execute the third combining procedure to complete the predetermined procedure. The controller 110A/110B may clear the flag after the scheduled procedure is completed. In this way, the third merge procedure is selected when the first program is executed for the first time after a continuous sudden power failure.

一般而言,每當突然斷電發生後,系統就會使用一個新的單層單元區塊作為目前的快取記憶體,因此,突然斷電或連續突然斷電都有可能造成單層單元區塊包含大量的無效頁面。因此,於本發明之第三實施例中,於發生過突然斷電或連續突然斷電後第一次欲執行既定程序時,可設定為優先選擇執行第三合併程序。 In general, every time a sudden power failure occurs, the system uses a new single-layer unit block as the current cache memory. Therefore, sudden power failure or continuous power failure may result in a single-layer unit area. The block contains a large number of invalid pages. Therefore, in the third embodiment of the present invention, when the predetermined program is to be executed for the first time after a sudden power failure or a continuous sudden power failure, it may be set to preferentially execute the third combining procedure.

第3圖係顯示根據本發明之一實施例所述之記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置可包括一記憶體裝置與一控制器,記憶體裝置可包括複數記憶體區塊,並且記憶體區塊可被切割為複數單層單元區塊與複數多層單元區塊,單層單元區塊用以暫存資料。 3 is a data processing method for a memory device according to an embodiment of the present invention, which is applicable to a data storage device. The data storage device may include a memory device and a controller, and the memory device may include a plurality of The memory block, and the memory block can be cut into a plurality of single-layer unit blocks and a plurality of multi-level unit blocks, and the single-layer unit block is used for temporarily storing data.

第3圖所示之流程圖涵蓋本發明之第一、第二與第三實施例。首先,控制器決定執行一既定程序(步驟S302),用以將單層單元區塊儲存的資料寫入多層單元區塊,以釋放單層單元區塊的記憶體空間。接著,控制器判斷資料儲存裝置是否發生過突然斷電(步驟S304)。若是,則控制器決定執行第三合 併程序(步驟S306)。若否,則控制器進一步判斷各單層單元區塊所對應之一有效頁面計數值VP_Count是否大於一臨界值TH(步驟S308)。若是,則對該單層單元區塊執行第一合併程序(步驟S310),控制器直接將具有VP_Count>TH之多個單層單元區塊所儲存之資料寫入多層單元區塊。若否,則對該單層單元區塊執行第二合併程序(步驟S312)。 The flowchart shown in Fig. 3 covers the first, second and third embodiments of the present invention. First, the controller decides to execute a predetermined program (step S302) for writing the data stored in the single-layer unit block to the multi-level unit block to release the memory space of the single-layer unit block. Next, the controller determines whether the data storage device has suddenly powered off (step S304). If yes, the controller decides to execute the third And the program (step S306). If not, the controller further determines whether one of the effective page count values VP_Count corresponding to each single layer unit block is greater than a threshold TH (step S308). If so, the first merging process is performed on the single-layer unit block (step S310), and the controller directly writes the data stored in the plurality of single-layer unit blocks having VP_Count>TH into the multi-level unit block. If not, a second merging procedure is performed on the single layer unit block (step S312).

如上述,於本發明之實施例中,控制器110A/110B根據記憶體區塊之有效頁面計數值VP_Count彈性地決定要使用哪種方式將單層單元區塊儲存的資料寫入多層單元區塊,如此一來,對於有效頁面多的記憶體區塊,可享受直接合併程序的優點(即,可快速完成資料收集與寫入的程序),並且對於有效頁面少的記憶體區塊,也可藉由OBP合併的過程有效減少寫入多層單元區塊的無效頁面數量,讓後續進行多層單元區塊的垃圾回收(garbage collection)程序或其他的資料處理程序更加有效率。此外,於發生過突然斷電或連續突然斷電後第一次欲執行既定程序時,都優先選擇執行OBP合併,以確保多層單元區塊內的資料皆為有效。 As described above, in the embodiment of the present invention, the controller 110A/110B elastically determines which method to store the data stored in the single-layer unit block into the multi-level unit block according to the effective page count value VP_Count of the memory block. In this way, for a memory block with a large number of effective pages, the advantage of a direct merge program (ie, a program that can quickly complete data collection and writing) can be enjoyed, and for a memory block with fewer valid pages, The process of OBP merge effectively reduces the number of invalid pages written to the multi-level cell block, making subsequent garbage collection procedures or other data processing programs for multi-level cell blocks more efficient. In addition, when the first program is to be executed for the first time after a sudden power failure or continuous power failure, the OBP merge is preferred to ensure that the data in the multi-level cell block is valid.

除應用於上述用以將SLC區塊儲存的資料寫入TLC區塊之一既定程序外,根據本發明之一第四實施例,於編程緩存器(buffer)的過程中,亦可藉由隨機種子的配置,使得各物理頁面可根據不同隨機種子進行資料擾亂,藉由此配置可使上述之合併程序更有效率。如上述,為了維持編程的穩定性,記憶體裝置120之SLC區塊可作用為緩存器(或快取記憶體),用以於主機裝置200欲將資料寫入記憶體裝置100時暫存資料。待 SLC區塊的使用率達到一定程度時,控制器110A/110B便可執行上述之既定程序。 In addition to being applied to the above-described program for writing the data stored in the SLC block to one of the TLC blocks, according to a fourth embodiment of the present invention, in the process of programming the buffer, it may also be randomized. The configuration of the seed enables each physical page to perform data scrambling according to different random seeds, and the configuration can make the above-mentioned merge procedure more efficient. As described above, in order to maintain the stability of programming, the SLC block of the memory device 120 can function as a buffer (or cache memory) for temporarily storing data when the host device 200 wants to write data into the memory device 100. . Wait When the usage rate of the SLC block reaches a certain level, the controller 110A/110B can execute the predetermined procedure described above.

根據本發明之第四實施例,控制器110A/110B可為不同的SLC區塊配置不同組隨機種子,其中各組隨機種子分別包含一既定數量之隨機種子,並且各組所包含之隨機種子均不相同。舉例而言,控制器110A/110B可為不同SLC區塊配置不同組隨機種子,用以於寫入資料時,擾亂器115可根據對應之隨機種子進行資料擾亂。假設一SLC區塊包含10個物理頁面,則每組隨機種子可包含10個不同的隨機種子,則配置給三個SLC區塊的三組隨機種子中所包含的30個隨機種子皆不相同。 According to a fourth embodiment of the present invention, the controller 110A/110B may configure different sets of random seeds for different SLC blocks, wherein each set of random seeds respectively contains a predetermined number of random seeds, and each group contains random seeds. Not the same. For example, the controller 110A/110B may configure different sets of random seeds for different SLC blocks, and when the data is written, the scrambler 115 may perform data scrambling according to the corresponding random seed. Assuming that an SLC block contains 10 physical pages, each set of random seeds can contain 10 different random seeds, and the 30 random seeds included in the three sets of random seeds configured for the three SLC blocks are different.

更具體的說,於本發明之一實施例中,控制器110A/110B可先使用第一SLC區塊作為緩存器(buffer)。當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第一組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第一SLC區塊。 More specifically, in one embodiment of the present invention, the controller 110A/110B may first use the first SLC block as a buffer. When the controller 110A/110B receives the data to be written into the memory device 120 from the host device 200, the scrambler 115 may perform data scrambling on the data according to a first set of random seeds, and the encoder 114 may disturb the data. The encoding is performed, and then the scrambled and encoded data is written into the first SLC block.

當第一SLC區塊被寫滿或待第一SLC區塊的使用率達到一定程度時,控制器110A/110B可再使用第二SLC區塊作為緩存器。同樣地,當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第二組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第二SLC區塊。 When the first SLC block is filled or the usage of the first SLC block reaches a certain level, the controller 110A/110B may reuse the second SLC block as a buffer. Similarly, when the controller 110A/110B receives the data to be written into the memory device 120 from the host device 200, the scrambler 115 may perform data scrambling on the data according to a second set of random seeds, and the encoder 114 may disturb the data. The data is encoded, and the data that has been scrambled and encoded is then written to the second SLC block.

當第二SLC區塊被寫滿或待第二SLC區塊的使用 率達到一定程度時,控制器110A/110B可再使用第三SLC區塊作為緩存器。同樣地,當控制器110A/110B自主機裝置200接收欲寫入記憶體裝置120之資料時,擾亂器115可根據一第三組隨機種子對該資料進行資料擾亂,編碼器114可對擾亂過之該資料進行編碼,之後經擾亂及編碼過之該資料被寫入第三SLC區塊,並依此類推。 When the second SLC block is filled or pending use of the second SLC block When the rate reaches a certain level, the controller 110A/110B can reuse the third SLC block as a buffer. Similarly, when the controller 110A/110B receives the data to be written into the memory device 120 from the host device 200, the scrambler 115 may perform data scrambling on the data according to a third set of random seeds, and the encoder 114 may disturb the data. The data is encoded, and the data that has been scrambled and encoded is then written to the third SLC block, and so on.

如上述,第一組隨機種子、第二組隨機種子與第三組隨機種子分別包含一既定數量之隨機種子,並且第一組隨機種子、第二組隨機種子與第三組隨機種子所包含之隨機種子均不相同。 As described above, the first set of random seeds, the second set of random seeds, and the third set of random seeds respectively comprise a predetermined number of random seeds, and the first set of random seeds, the second set of random seeds, and the third set of random seeds are included Random seeds are not the same.

此外,擾亂器115於進行資料擾亂時,亦會將各物理頁面所使用之隨機種子儲存於該物理頁面之一備用區(spare region)中,當資料讀出來之後,便可以依據備用區的隨機種子將資料還原。更具體的說,於讀取資料時,控制器110A/110B自記憶體裝置120讀出對應之資料,經由編碼器114對該資料進行解碼,以及經由擾亂器115根據該資料之備用區所儲存之對應之隨機種子對解碼過之該資料進行資料解擾亂後,便可得到原始資料。 In addition, when the scrambler 115 performs data scrambling, the random seed used by each physical page is also stored in one of the spare regions of the physical page. After the data is read, the random region may be randomly selected. The seed restores the data. More specifically, when reading data, the controller 110A/110B reads the corresponding data from the memory device 120, decodes the data via the encoder 114, and stores it according to the spare area of the data via the scrambler 115. The corresponding random seed can obtain the original data after decoding the decoded data.

根據本發明之第四實施例,由於已事先為不同的SLC區塊配置不同組隨機種子,使得資料於寫入不同的SLC區塊時便已使用不同的隨機種子進行資料擾亂,且各物理頁面所配置的隨機種子亦均不相同,因此,當控制器110A/110B決定執行用以將多個SLC區塊所儲存的資料寫入一個多層單元區塊之一直接合併程序(即,上述之第一合併程序)時,便可直接將 多個SLC區塊所儲存的資料寫入一個多層單元區塊。 According to the fourth embodiment of the present invention, since different sets of random seeds have been configured for different SLC blocks in advance, data is used to perform data scrambling using different random seeds when writing data to different SLC blocks, and each physical page The configured random seeds are also different. Therefore, when the controller 110A/110B decides to perform a direct merge procedure for writing data stored in a plurality of SLC blocks into one multi-level unit block (ie, the above-mentioned When a merger program), you can directly The data stored in the plurality of SLC blocks is written into a multi-level cell block.

如上述,控制器110A/110B依序讀取多個(例如,三個)SLC區塊所儲存的資料,並依序將讀取的資料寫入一個TLC區塊。一般而言,一個讀取動作伴隨一個寫入動作。例如,控制器110A/110B可依序讀取上述第一SLC區塊並直接將讀取的資料寫入一TLC區塊,讀取上述第二SLC區塊並直接將讀取的資料寫入同一TLC區塊,以及讀取上述第三SLC區塊並直接將讀取的資料寫入同一TLC區塊。 As described above, the controller 110A/110B sequentially reads data stored in a plurality of (for example, three) SLC blocks, and sequentially writes the read data into one TLC block. In general, a read action is accompanied by a write action. For example, the controller 110A/110B can sequentially read the first SLC block and directly write the read data into a TLC block, read the second SLC block and directly write the read data into the same block. The TLC block, and reading the third SLC block and directly writing the read data to the same TLC block.

根據本發明之一實施例,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區塊的數量低於某個既定值時啟動直接合併程序。 According to an embodiment of the present invention, the SLC block may be divided into three groups as described above, each group may correspond to a set of random seeds, and different groups of SLC blocks are configured with different sets of random seeds. For example, the first group can include a first SLC block, a fourth SLC block, etc., and the controller 110A/110B can configure a first set of random seeds for the first group of SLC blocks. Likewise, the second group may include a second SLC block, a fifth SLC block, etc., and the controller 110A/110B may configure a second set of random seeds for the second group of SLC blocks, and third The group may include a third SLC block, a sixth SLC block, etc., and the controller 110A/110B may configure a third set of random seeds for the third group of SLC blocks. In an embodiment of the present invention, if three groups each have only two SLC blocks, the controller 110A/110B can initiate direct merge immediately after one of the SLC blocks included in each group is filled. program. Assuming that the three groups each contain more than three SLC blocks, the controller 110A/110B may initiate a direct merge procedure when the number of empty SLC blocks included in each group is below a predetermined value.

由於SLC區塊的資料無須經過控制器,而是直接被寫入TLC區塊,因此直接合併程序的優點為速度快。此外,由 於於本發明之第四實施例中,控制器110A/110B已為不同的SLC區塊配置不同組隨機種子,因此,上述第一、第二與第三SLC區塊所配置之隨機種子均不相同,且上述第一、第二與第三SLC區塊之各物理頁面所配置之隨機種子亦不相同,藉由此配置可使上述之合併程序更有效率。 Since the data of the SLC block does not need to pass through the controller, but is directly written into the TLC block, the advantage of the direct merge program is that it is fast. In addition, by In the fourth embodiment of the present invention, the controllers 110A/110B have configured different sets of random seeds for different SLC blocks, and therefore, the random seeds configured by the first, second, and third SLC blocks are not The same is true, and the random seeds configured on the physical pages of the first, second, and third SLC blocks are also different, and the configuration process can make the foregoing merge procedure more efficient.

第4圖係顯示根據本發明之另一實施例所述之記憶體裝置之資料處理方法流程圖。首先,為不同的SLC區塊配置不同組隨機種子(步驟S402)。舉例而言,當N個SLC區塊被設定作為緩存器時,控制器110A/110B可配置N組不同的隨機種子,使得各SLC區塊所對應之隨機種子均不相同,且各SLC區塊的各物理頁面所對應之隨機種子亦均不相同,其中N為一正整數。 Figure 4 is a flow chart showing a data processing method of a memory device according to another embodiment of the present invention. First, different sets of random seeds are configured for different SLC blocks (step S402). For example, when N SLC blocks are set as buffers, the controller 110A/110B can configure N sets of different random seeds, so that the random seeds corresponding to the SLC blocks are different, and each SLC block The random seeds corresponding to each physical page are also different, where N is a positive integer.

接著,當控制器110A/110B欲將資料寫入第n個SLC區塊時(其中0<n<N),根據該SLC區塊所對應之第n組隨機種子對資料進行資料擾亂,並且對擾亂過之資料進行編碼後,再將經擾亂及編碼過之資料寫入對應之SLC區塊(步驟S404)。 Then, when the controller 110A/110B wants to write the data into the nth SLC block (where 0<n<N), the data is scrambled according to the nth random seed corresponding to the SLC block, and the data is After the scrambled data is encoded, the scrambled and encoded data is written into the corresponding SLC block (step S404).

相較於先前技術,當要將SLC區塊的資料整理至TLC區塊時,為確保每個物理頁面的隨機種子皆不相同,往往需要將資料先從記憶體裝置120讀取至SRAM 112,並且由控制器重新給予隨機種子再擾亂/編碼後,才能再儲存至TLC區塊,如此降低資料儲存裝置的效能。於本發明之實施例中,藉由隨機種子的配置可使上述之合併程序更有效率,並且可確保經合併程序後之TLC區塊內的每一個物理頁面的資料都會根據不同隨機種子進行資料擾亂。 Compared with the prior art, when the data of the SLC block is to be sorted into the TLC block, in order to ensure that the random seeds of each physical page are different, it is often necessary to read the data from the memory device 120 to the SRAM 112 first. And the controller again re-scrambles/encodes the random seed before it can be stored in the TLC block, thus reducing the performance of the data storage device. In the embodiment of the present invention, the above-mentioned merge procedure can be made more efficient by the configuration of the random seed, and it can be ensured that the data of each physical page in the TLC block after the merged procedure is based on different random seeds. disturb.

本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。 The term "coupled" in this specification refers to a variety of direct or indirect electrical connections. The present invention has been described above with reference to the preferred embodiments thereof, and is not intended to limit the scope of the present invention, and the invention may be modified and modified without departing from the spirit and scope of the invention. The scope of the invention is defined by the scope of the appended claims.

Claims (10)

一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,其中該等記憶體區塊包括複數單層單元區塊與複數多層單元區塊,並且該等單層單元區塊包含至少一第一單層單元區塊、一第二單層單元區塊以及一第三單層單元區塊;以及一控制器,耦接該記憶體裝置,並且包括一擾亂器以及一編碼器;其中當該控制器自一主機裝置接收欲寫入該記憶體裝置之第一資料時,該擾亂器根據一第一組隨機種子對該第一資料進行資料擾亂,該編碼器對擾亂過之該第一資料進行編碼,並且該控制器將擾亂及編碼過之該第一資料寫入該第一單層單元區塊;當該控制器自該主機裝置接收欲寫入該記憶體裝置之第二資料時,該擾亂器根據一第二組隨機種子對該第二資料進行資料擾亂,該編碼器對擾亂過之該第二資料進行編碼,並且該控制器將擾亂及編碼過之該第二資料寫入該第二單層單元區塊;當該控制器自該主機裝置接收欲寫入該記憶體裝置之第三資料時,該擾亂器根據一第三組隨機種子對該第三資料進行資料擾亂,該編碼器對擾亂過之該第三資料進行編碼,並且該控制器將擾亂及編碼過之該第三資料寫入該第三單層單元區塊,其中該第一單層單元區塊、該第二單層單元區塊與該第三單層單元區塊係作為緩存器使用,用以暫存 資料;以及該控制器將儲存於該第一單層單元區塊、該第二單層單元區塊以及該第三單層單元區塊之資料進一步寫入該等多層單元區塊之至少一者,其中該第一組隨機種子、該第二組隨機種子與該第三組隨機種子不同。 A data storage device comprising: a memory device comprising a plurality of memory blocks, wherein the memory blocks comprise a plurality of single layer unit blocks and a plurality of multi-level unit blocks, and the single layer unit blocks comprise at least a first single layer unit block, a second single layer unit block, and a third single layer unit block; and a controller coupled to the memory device and including a scrambler and an encoder; When the controller receives the first data to be written into the memory device from a host device, the scrambler performs data scrambling on the first data according to a first set of random seeds, and the encoder interferes with the first data. A data is encoded, and the controller writes the first data that is disturbed and encoded into the first single layer unit block; and when the controller receives the second data to be written into the memory device from the host device And the scrambler performs data scrambling on the second data according to a second set of random seeds, the encoder encodes the scrambled second data, and the controller will scramble and encode the first data. Data is written into the second single-layer unit block; when the controller receives the third data to be written to the memory device from the host device, the scrambler performs the third data according to a third set of random seeds. Data scrambling, the encoder encodes the third data that has been disturbed, and the controller writes the scrambled and encoded third data into the third single layer unit block, wherein the first single layer unit area The block, the second single layer unit block, and the third single layer unit block are used as buffers for temporary storage Data; and the controller further writes data stored in the first single layer unit block, the second single layer unit block, and the third single layer unit block to at least one of the plurality of unit unit blocks Wherein the first set of random seeds, the second set of random seeds are different from the third set of random seeds. 如申請專利範圍第1項所述之資料儲存裝置,其中該第一組隨機種子、該第二組隨機種子與該第三組隨機種子分別包含一既定數量之隨機種子,並且該第一組隨機種子、該第二組隨機種子與該第三組隨機種子所包含之該等隨機種子均不相同。 The data storage device of claim 1, wherein the first set of random seeds, the second set of random seeds, and the third set of random seeds respectively comprise a predetermined number of random seeds, and the first set of random seeds The seed, the second set of random seeds, and the random seeds included in the third set of random seeds are all different. 如申請專利範圍第1項所述之資料儲存裝置,其中寫入該第一/第二單層單元區塊之各物理頁面之資料係根據該第一/第二組隨機種子內不同的隨機種子被擾亂,並且該擾亂器將各物理頁面所使用之隨機種子儲存於該物理頁面之一備用區(spare region)中。 The data storage device of claim 1, wherein the data of each physical page of the first/second single layer unit block is written according to different random seeds in the first/second group of random seeds. Disturbed, and the scrambler stores the random seed used by each physical page in one of the physical regions of the physical page. 如申請專利範圍第3項所述之資料儲存裝置,其中於讀取該第一資料時,該控制器自該記憶體裝置讀出該第一資料,該編碼器對該第一資料進行解碼,該擾亂器根據該備用區所儲存之對應之隨機種子對解碼過之該第一資料進行資料解擾亂,以取得解擾亂及解碼過之該第一資料。 The data storage device of claim 3, wherein when the first data is read, the controller reads the first data from the memory device, and the encoder decodes the first data. The scrambler performs data descrambling on the decoded first data according to the corresponding random seed stored in the spare area to obtain the descrambled and decoded first data. 如申請專利範圍第1項所述之資料儲存裝置,其中當該控制器決定執行用以將該等單層單元區塊所儲存的資料寫入該等多層單元區塊之一直接合併程序時,該控制器依序讀取 該第一單層單元區塊、該第二單層單元區塊以及該第三單層單元區塊所儲存的資料,並依序將讀取的資料直接寫入一個多層單元區塊。 The data storage device of claim 1, wherein the controller determines to perform a direct merge procedure for writing the data stored in the single-layer unit block to one of the multi-level unit blocks. The controller reads sequentially The first single layer unit block, the second single layer unit block, and the data stored by the third single layer unit block, and sequentially read the read data into a multi-level unit block. 一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一控制器,該記憶體裝置包括複數記憶體區塊,該等記憶體區塊包括複數單層單元區塊與複數多層單元區塊,並且該等單層單元區塊包含至少一第一單層單元區塊、一第二單層單元區塊以及一第三單層單元區塊,該方法包括:於將第一資料寫入該記憶體裝置時,根據一第一組隨機種子對該第一資料進行資料擾亂,對擾亂過之該第一資料進行編碼,並且將擾亂及編碼過之該第一資料寫入該第一單層單元區塊;於將第二資料寫入該記憶體裝置時,根據一第二組隨機種子對該第二資料進行資料擾亂,對擾亂過之該第二資料進行編碼,並且將擾亂及編碼過之該第二資料寫入該第二單層單元區塊;於將第三資料寫入該記憶體裝置時,根據一第三組隨機種子對該第三資料進行資料擾亂,對擾亂過之該第三資料進行編碼,並且將擾亂及編碼過之該第三資料寫入該第三單層單元區塊,其中該第一單層單元區塊、該第二單層單元區塊與該第三單層單元區塊係作為緩存器使用,用以暫存資料;以及將儲存於該第一單層單元區塊、該第二單層單元區塊以及 該第三單層單元區塊之資料進一步寫入該等多層單元區塊之至少一者,其中該第一組隨機種子、該第二組隨機種子與該第三組隨機種子不同。 A data processing method for a memory device is applicable to a data storage device, the data storage device comprising a memory device and a controller, the memory device comprising a plurality of memory blocks, wherein the memory blocks comprise a plurality of a layer unit block and a plurality of multi-level unit blocks, and the single-layer unit blocks include at least a first single-layer unit block, a second single-layer unit block, and a third single-layer unit block, the method The method includes: when the first data is written into the memory device, performing data scrambling on the first data according to a first set of random seeds, encoding the first data that is disturbed, and disturbing and encoding the first data. The first data is written into the first single layer unit block; when the second data is written into the memory device, the second data is scrambled according to a second set of random seeds, and the second data is disturbed Data is encoded, and the second data that is scrambled and encoded is written into the second single layer unit block; when the third data is written into the memory device, the third data is Performing data scrambling, encoding the disturbed third data, and writing the scrambled and encoded third data to the third single-layer unit block, wherein the first single-layer unit block, the first The second single-layer unit block and the third single-layer unit block are used as buffers for temporarily storing data; and are stored in the first single-layer unit block, the second single-layer unit block, and The data of the third single layer unit block is further written to at least one of the plurality of multi-level unit blocks, wherein the first set of random seeds and the second set of random seeds are different from the third set of random seeds. 如申請專利範圍第6項所述之方法,其中該第一組隨機種子、該第二組隨機種子與該第三組隨機種子分別包含一既定數量之隨機種子,並且該第一組隨機種子、該第二組隨機種子與該第三組隨機種子所包含之該等隨機種子均不相同。 The method of claim 6, wherein the first set of random seeds, the second set of random seeds, and the third set of random seeds respectively comprise a predetermined number of random seeds, and the first set of random seeds, The second set of random seeds is different from the random seeds included in the third set of random seeds. 如申請專利範圍第6項所述之方法,其中寫入該第一/第二單層單元區塊之各物理頁面之資料係根據該第一/第二組隨機種子內不同的隨機種子被擾亂,並且用以擾亂各物理頁面之隨機種子被儲存於該物理頁面之一備用區(spare region)中。 The method of claim 6, wherein the data of each physical page written in the first/second single layer unit block is disturbed according to different random seeds in the first/second group of random seeds. And the random seed used to disturb each physical page is stored in one of the spare regions of the physical page. 如申請專利範圍第8項所述之方法,其中於讀取該第一資料時,該方法更包括:自該記憶體裝置讀出該第一資料;對該第一資料進行解碼;以及根據該備用區所儲存之對應之隨機種子對解碼過之該第一資料進行資料解擾亂。 The method of claim 8, wherein when the first data is read, the method further comprises: reading the first data from the memory device; decoding the first data; The corresponding random seed stored in the spare area performs data descrambling on the decoded first data. 如申請專利範圍第6項所述之方法,更包括:讀取該第一單層單元區塊並直接將讀取的資料寫入一多層單元區塊;讀取該第二單層單元區塊並直接將讀取的資料寫入該多層單元區塊;以及 讀取該第三單層單元區塊並直接將讀取的資料寫入該多層單元區塊。 The method of claim 6, further comprising: reading the first single layer unit block and directly writing the read data into a multi-level unit block; reading the second single layer unit area Block and directly write the read data to the multi-level cell block; The third single layer unit block is read and the read data is directly written into the multi-level unit block.
TW106140722A 2017-11-13 2017-11-13 Data storage device and methods for processing data in the data storage device TWI653539B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106140722A TWI653539B (en) 2017-11-13 2017-11-13 Data storage device and methods for processing data in the data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106140722A TWI653539B (en) 2017-11-13 2017-11-13 Data storage device and methods for processing data in the data storage device

Publications (2)

Publication Number Publication Date
TWI653539B true TWI653539B (en) 2019-03-11
TW201918894A TW201918894A (en) 2019-05-16

Family

ID=66590741

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106140722A TWI653539B (en) 2017-11-13 2017-11-13 Data storage device and methods for processing data in the data storage device

Country Status (1)

Country Link
TW (1) TWI653539B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208210A (en) 2010-03-31 2011-10-05 深圳市朗科科技股份有限公司 Flash memory device and data storage method thereof
TW201329993A (en) 2011-10-20 2013-07-16 Sandisk Technologies Inc Method for scrambling shaped data
CN103309825A (en) 2012-02-22 2013-09-18 慧荣科技股份有限公司 Method for accessing flash memory and flash memory controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208210A (en) 2010-03-31 2011-10-05 深圳市朗科科技股份有限公司 Flash memory device and data storage method thereof
TW201329993A (en) 2011-10-20 2013-07-16 Sandisk Technologies Inc Method for scrambling shaped data
CN103309825A (en) 2012-02-22 2013-09-18 慧荣科技股份有限公司 Method for accessing flash memory and flash memory controller

Also Published As

Publication number Publication date
TW201918894A (en) 2019-05-16

Similar Documents

Publication Publication Date Title
CN109783007B (en) Data storage device and data processing method of memory device
US10628319B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
US9645895B2 (en) Data storage device and flash memory control method
KR101103210B1 (en) Sequence Number Wrap-Around Devices, Methods, and Articles
US8909986B2 (en) Data storing method for solid state drive to preserve data integrity after power failure
TWI506431B (en) Virtual memory device (vmd) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
KR101478168B1 (en) Storage system and method of processing write data
US9983799B2 (en) Trim command processing method, memory control circuit unit and memory storage apparatus
US8996790B1 (en) System and method for flash memory management
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system&#39;s unit of memory allocation is coordinated with a storage system&#39;s read/write operation unit
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
KR101649357B1 (en) Data storage device, operating method thereof, and storage server including the same
US11928353B2 (en) Multi-page parity data storage in a memory device
TWI668700B (en) Data storage device and methods for processing data in the data storage device
CN113031856A (en) Power-down data protection in memory subsystems
CN102298543A (en) Memory management method and memory management device
JP5929485B2 (en) Control device, storage device, and data writing method
US10642509B2 (en) Method for designating specific world-lines of data storage device as reserved word-lines, and selecting a writing mode accordingly
US9430327B2 (en) Data access method, memory control circuit unit and memory storage apparatus
DE102022210344A1 (en) DEVICE AND METHOD FOR IMPROVING DATA INPUT/OUTPUT PERFORMANCE OF A MEMORY
TWI747532B (en) Memory apparatus
TWI653539B (en) Data storage device and methods for processing data in the data storage device
US20140129764A1 (en) Allocation structure for flash memory device
JP2011215870A (en) Writing device, writing method and writing program
TWI771854B (en) Write mangement for protecting erased blocks in flash memory