TWI718635B - Unbalanced plane management method, associated data storage device and controller thereof - Google Patents

Unbalanced plane management method, associated data storage device and controller thereof Download PDF

Info

Publication number
TWI718635B
TWI718635B TW108129939A TW108129939A TWI718635B TW I718635 B TWI718635 B TW I718635B TW 108129939 A TW108129939 A TW 108129939A TW 108129939 A TW108129939 A TW 108129939A TW I718635 B TWI718635 B TW I718635B
Authority
TW
Taiwan
Prior art keywords
block
blocks
planes
plane
controller
Prior art date
Application number
TW108129939A
Other languages
Chinese (zh)
Other versions
TW202034172A (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 CN202010002481.5A priority Critical patent/CN111651371B/en
Priority to US16/789,355 priority patent/US11210005B2/en
Publication of TW202034172A publication Critical patent/TW202034172A/en
Application granted granted Critical
Publication of TWI718635B publication Critical patent/TWI718635B/en
Priority to US17/530,477 priority patent/US11809723B2/en

Links

Images

Abstract

An unbalanced plane management method, an associated data storage device and the controller thereof are provided. The unbalanced plane management method may include: setting an unbalanced plane number; selecting at least one plane with a plane count obtained from subtracting the unbalanced plane number from a maximum plane number, and recording at least one set of blocks of the at least one plane to a block skip table; according to block numbers as indexes, combining blocks of unselected planes into super blocks, wherein said super blocks respectively correspond to said block numbers; and recording total capacity of all super blocks and the unbalanced plane number, to generate a latest record of records of multiple types of storage capacity, for further setting storage capacity configuration of the data storage device, wherein said all super blocks include said super blocks.

Description

非對稱型平面管理方法以及資料儲存裝置及其控制器 Asymmetric plane management method, data storage device and controller thereof

本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種非對稱型平面管理(Unbalanced Plane Management)方法以及資料儲存裝置及其控制器。 The present invention relates to flash memory (Flash memory) access, in particular to an asymmetric plane management (Unbalanced Plane Management) method, data storage device and its controller.

快閃記憶體可廣泛地應用於各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell,SLC)、多階細胞(multiple level cell,MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的資料儲存裝置產品可採用三階細胞(triple level cell,TLC)快閃記憶體,甚至四階細胞(quadruple level cell,QLC)快閃記憶體。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。 Flash memory can be widely used in various portable or non-portable data storage devices (for example: memory cards that comply with SD/MMC, CF, MS, XD or UFS standards; another example: solid state drives; another example :In an embedded storage device that meets UFS or EMMC specifications. For the commonly used NAND flash memory, there are initially single level cell (SLC), multiple level cell (MLC) and other types of flash memory. Due to the continuous development of memory technology, newer data storage device products can use triple level cell (TLC) flash memory or even quadruple level cell (QLC) flash memory. In order to ensure that the data storage device's access control to the flash memory can comply with relevant specifications, the flash memory controller is usually equipped with some management mechanism to properly manage its internal operations.

依據相關技術,有了這些管理機制的資料儲存裝置還是有不足之處。舉例來說,多個快閃記憶體裸晶(Die)可被同時使用以提升存取效能。然而,某一個快閃記憶體裸晶的好區塊的數量可能限制這些快閃記憶體裸晶之各自的區塊的使用率。例如,在這些好區塊的數量很小、或者這些好區塊的分佈不平衡的情況下,無法得到需要的儲存容量。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有可靠的管理 機制之資料儲存裝置。 According to related technologies, data storage devices with these management mechanisms still have shortcomings. For example, multiple flash memory dies (Die) can be used at the same time to improve access performance. However, the number of good blocks of a certain flash memory die may limit the utilization rate of the respective blocks of the flash memory die. For example, when the number of these good blocks is small, or the distribution of these good blocks is unbalanced, the required storage capacity cannot be obtained. Therefore, a novel method and related architecture are needed to achieve reliable management without side effects or less likely to bring side effects. The data storage device of the mechanism.

本發明之一目的在於提供一種非對稱型平面管理方法以及相關之資料儲存裝置及其控制器,以解決上述問題。 One objective of the present invention is to provide an asymmetric plane management method and related data storage device and its controller to solve the above-mentioned problems.

本發明之另一目的在於提供一種非對稱型平面管理方法以及相關之資料儲存裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下將可靠的管理機制賦予資料儲存裝置。 Another object of the present invention is to provide an asymmetric plane management method and related data storage device and its controller, so as to provide a reliable management mechanism to the data storage device without side effects or less likely to cause side effects.

本發明之至少一實施例提供一種非對稱型平面管理方法,其中該非對稱型平面管理方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),以及該複數個非揮發性記憶體元件包含複數個區塊。該非對稱型平面管理方法可包含:設定一非平衡平面數量(unbalanced plane number),其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表(block skip table);依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及記錄全部超級區塊的總容量以及該非平衡平面數量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊。 At least one embodiment of the present invention provides an asymmetric plane management method, wherein the asymmetric plane management method is applied to a data storage device including a non-volatile memory (NV memory) ), the non-volatile memory includes a plurality of non-volatile memory elements (NV memory elements), and the plurality of non-volatile memory elements includes a plurality of blocks. The asymmetric plane management method may include: setting an unbalanced plane number (unbalanced plane number), wherein the unbalanced plane number is less than a maximum plane number, and the maximum plane number represents each of the plurality of non-volatile memory devices The sum of the number of planes; select at least one plane from the maximum number of planes minus the number of unbalanced planes, and record at least one group of blocks of the at least one plane in a block skip table; according to the block The number is an index, and the blocks of the unselected planes are formed into super blocks, where the super blocks respectively correspond to the block numbers; and the total capacity of all super blocks and the number of unbalanced planes are recorded to generate a variety of A newest record in the storage capacity records for further setting the storage capacity configuration of the data storage device, wherein the all super blocks include the super blocks.

本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件,以及該複數個非揮發性記憶體元件包含複數個區塊;以及一控制器, 耦接至該非揮發性記憶體,用來控制該資料儲存裝置之操作。該控制器可包含一處理電路,其中該處理電路可依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器設定一非平衡平面數量,其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;該控制器選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表;該控制器依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及該控制器記錄全部超級區塊的總容量以及該非平衡平面數量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊。 At least one embodiment of the present invention provides a data storage device, which may include: a non-volatile memory for storing information, wherein the non-volatile memory includes a plurality of non-volatile memory elements, and the plurality of non-volatile memory devices. The volatile memory device includes a plurality of blocks; and a controller, It is coupled to the non-volatile memory for controlling the operation of the data storage device. The controller may include a processing circuit, wherein the processing circuit can control the controller according to a plurality of host commands from a host device to allow the host to access the non-volatile memory through the controller body. For example: the controller sets a number of unbalanced planes, where the number of unbalanced planes is less than a maximum number of planes, and the maximum number of planes represents the sum of the numbers of the respective planes of the plurality of non-volatile memory devices; the controller Select at least one plane from the maximum number of planes minus the number of unbalanced planes, and record at least one group of blocks of the at least one plane in a block omission table; the controller uses the block number as an index, and then the unselected The flat blocks constitute a super block, wherein the super blocks respectively correspond to the block numbers; and the controller records the total capacity of all super blocks and the number of unbalanced planes to generate a record of multiple storage capacities A latest record of the data storage device for further setting the storage capacity configuration of the data storage device, wherein the all super blocks include the super blocks.

本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,該非揮發性記憶體包含複數個非揮發性記憶體元件,以該複數個非揮發性記憶體元件包含複數個區塊。該控制器可包含一處理電路,其中該處理電路可依據來自一主機的複數個主機命令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器設定一非平衡平面數量,其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;該控制器選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表;該控制器依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及該控制器記錄全部超級區塊的總容量以及該非平衡平面數量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲 存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊。 At least one embodiment of the present invention provides a controller for a data storage device, wherein the data storage device includes the controller and a non-volatile memory, the non-volatile memory includes a plurality of non-volatile memory elements, and the The plurality of non-volatile memory devices include a plurality of blocks. The controller may include a processing circuit, wherein the processing circuit can control the controller according to a plurality of host commands from a host, so as to allow the host to access the non-volatile memory through the controller. For example: the controller sets a number of unbalanced planes, where the number of unbalanced planes is less than a maximum number of planes, and the maximum number of planes represents the sum of the numbers of the respective planes of the plurality of non-volatile memory devices; the controller Select at least one plane from the maximum number of planes minus the number of unbalanced planes, and record at least one group of blocks of the at least one plane in a block omission table; the controller uses the block number as an index, and then the unselected The flat blocks constitute a super block, wherein the super blocks respectively correspond to the block numbers; and the controller records the total capacity of all super blocks and the number of unbalanced planes to generate a record of multiple storage capacities The latest record of the data storage for further setting of the data storage The storage capacity configuration of the storage device, wherein all the super blocks include the super blocks.

本發明的好處之一是,透過仔細設計之管理機制,本發明能針對該控制器的運作進行妥善的控制,尤其,使資料儲存裝置能利用不平衡平面的方式,例如,使用在超級區塊(Super Block)內可更改的數量的平面而不是使用全部數量的平面。於是,本發明能打破關於NAND型快閃記憶體的好區塊的數量的限制,以整合出最大的容量;或是,在特定的容量需求下,有效地整合出充足的超級區塊,達到最佳化效能。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於傳統架構,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。 One of the benefits of the present invention is that through a carefully designed management mechanism, the present invention can properly control the operation of the controller, especially, the data storage device can use the unbalanced plane method, for example, used in the super block (Super Block) can change the number of planes instead of using the entire number of planes. Therefore, the present invention can break the limitation on the number of good blocks of NAND flash memory to integrate the largest capacity; or, under specific capacity requirements, effectively integrate sufficient super blocks to achieve Optimize performance. In addition, the implementation according to the embodiments of the present invention does not increase a lot of additional costs. Therefore, the related technical problems can be solved, and the overall cost will not increase too much. Compared with the traditional architecture, the present invention can achieve the optimal performance of the data storage device without side effects or less likely to cause side effects.

50:主機 50: host

100:資料儲存裝置 100: Data storage device

110:記憶體控制器 110: Memory Controller

112:微處理器 112: Microprocessor

112C:程式碼 112C: Code

112M:唯讀記憶體 112M: Read only memory

114:控制邏輯電路 114: Control logic circuit

116:緩衝記憶體 116: buffer memory

118:傳輸介面電路 118: Transmission interface circuit

120:非揮發性記憶體 120: Non-volatile memory

122、122-1、122-2、...、122-N:非揮發性記憶體元件 122, 122-1, 122-2,..., 122-N: Non-volatile memory components

{0-0,0-1,...}、{1-0,1-1,...}、{2-0,2-1,...}、{3-0,3-1,...}、{4-0,4-1,...}、{5-0,5-1,...}、{6-0,6-1,...}、{7-0,7-1,...}:區塊索引 {0-0,0-1,...}, {1-0,1-1,...}, {2-0,2-1,...}, {3-0,3-1 ,...}, {4-0,4-1,...}, {5-0,5-1,...}, {6-0,6-1,...}, {7 -0,7-1,...): block index

S10、S12、S14、S16、S18、S20、S22:步驟 S10, S12, S14, S16, S18, S20, S22: steps

ORPHAN_BLOCK_TABLE:孤兒區塊表 ORPHAN_BLOCK_TABLE: Orphan block table

BLOCKSKIPIDX:區塊省略索引 BLOCKSKIPIDX: Block omitted index

第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。 FIG. 1 is a schematic diagram of a data storage device and a host device according to an embodiment of the invention.

第2圖繪示針對超級區塊的一管理方案的示意圖。 Figure 2 shows a schematic diagram of a management solution for super blocks.

第3圖繪示依據本發明一實施例之一超級區塊管理方案。 Figure 3 illustrates a super block management scheme according to an embodiment of the invention.

第4圖繪示壞區塊分佈的一個例子。 Figure 4 shows an example of bad block distribution.

第5圖繪示依據本發明另一實施例之一超級區塊管理方案。 Figure 5 shows a super block management scheme according to another embodiment of the present invention.

第6圖繪示依據本發明一實施例之一種非對稱型平面管理方法的一工作流程。 FIG. 6 shows a workflow of an asymmetric plane management method according to an embodiment of the present invention.

請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(Host Device)50的示意圖。例如:資料儲存裝置100可為固態 硬碟(Solid State Drive,SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(Multifunctional Mobile Phone)、平板電腦(Tablet)、以及個人電腦(Personal Computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含非揮發性(Non-Volatile)記憶體120,其中該控制器係用來存取(Access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。 Please refer to FIG. 1, which is a schematic diagram of a data storage device 100 and a host device 50 according to a first embodiment of the present invention. For example: the data storage device 100 may be solid state Hard Disk (Solid State Drive, SSD). In addition, examples of the host 50 may include (but are not limited to): a multifunctional mobile phone, a tablet, and a personal computer such as a desktop computer and a laptop computer. According to this embodiment, the data storage device 100 may include a controller such as a memory controller 110, and may further include a non-volatile (Non-Volatile) memory 120, wherein the controller is used to access the non-volatile memory 120. The volatile memory 120 and the non-volatile memory 120 are used to store information.

非揮發性記憶體120可包含複數個非揮發性記憶體元件122-1、122-2、...與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、...與122-N可分別為複數個快閃記憶體晶片或複數個快閃記憶體裸晶,但本發明並不限於此。此外,資料儲存裝置100可以還包括揮發性記憶體元件以緩存資料,其中,揮發性記憶體元件較佳為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。上述揮發性記憶體元件可提供適當的資料暫存空間以緩存資料,或是僅提供小量的資料暫存空間以緩存小量資料,此架構又稱為部分DRAM(Partial DRAM)。另外,揮發性記憶體元件為非必要元件。 The non-volatile memory 120 may include a plurality of non-volatile memory elements 122-1, 122-2, ..., and 122-N, where the symbol "N" may represent a positive integer greater than one. For example: the non-volatile memory 120 can be a flash memory, and the non-volatile memory devices 122-1, 122-2, ... and 122-N can be a plurality of flash memories, respectively A chip or a plurality of flash memory die, but the invention is not limited to this. In addition, the data storage device 100 may further include a volatile memory device to cache data. The volatile memory device is preferably a dynamic random access memory (DRAM). The above-mentioned volatile memory device can provide appropriate data temporary storage space to cache data, or only provide a small amount of data temporary storage space to cache a small amount of data. This architecture is also called partial DRAM (Partial DRAM). In addition, volatile memory components are unnecessary components.

記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過匯流排彼此耦接。緩衝記憶體116較佳為靜態隨機存取記憶體(Static Random Access Memory,SRAM)。舉例來說,如果資料儲存裝置100更配置有上述DRAM,記憶體控制器110可利用緩衝記憶體116諸如SRAM作為第一層快取(Cache),並利用DRAM作為第二層快取。DRAM的資料儲存量較佳大於緩衝記憶體116的資料儲存量,而緩衝記憶體116所緩衝處理的資料可源自於DRAM或非揮發性記憶體120。 The memory controller 110 may include a processing circuit such as a microprocessor 112, a memory such as a read only memory (Read Only Memory, ROM) 112M, a control logic circuit 114, a buffer memory 116, and a transmission interface circuit 118, among which these components Can be coupled to each other through the bus. The buffer memory 116 is preferably a static random access memory (SRAM). For example, if the data storage device 100 is further configured with the above-mentioned DRAM, the memory controller 110 can use the buffer memory 116 such as SRAM as the first level cache and use DRAM as the second level cache. The data storage capacity of the DRAM is preferably greater than the data storage capacity of the buffer memory 116, and the data buffered by the buffer memory 116 can be derived from the DRAM or the non-volatile memory 120.

本實施例之唯讀記憶體112M係用來儲存程式碼112C,而微處理器 112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含至少一錯誤更正碼(Error Correction Code,ECC)電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準且可依據特定通訊標對主機50進行通訊。 The read-only memory 112M of this embodiment is used to store the program code 112C, and the microprocessor 112 is used to execute the program code 112C to control the access to the non-volatile memory 120. Please note that the program code 112C must also be stored in the buffer memory 116 or any form of memory. In addition, the control logic circuit 114 may include at least one Error Correction Code (ECC) circuit (not shown) to protect data and/or perform error correction, and the transmission interface circuit 118 may comply with a specific communication standard (such as serial It is listed as Serial Advanced Technology Attachment (SATA) standard, Peripheral Component Interconnect Express (PCIE) standard or Non-Volatile Memory Express (Non-Volatile Memory Express, NVME) standard and can be based on specific communication standards. Communicate with the host 50.

於本實施例中,主機50可傳送複數個主機命令(Host Command)至資料儲存裝置100,記憶體控制器110再依據主機命令而對非揮發性記憶體120進行存取(例如讀取或寫入資料),其中上述資料較佳為源自於主機50之使用者資料。主機命令包括邏輯位址,例如:邏輯區塊位址(Logical Block Address,LBA)。記憶體控制器110可接收主機命令並將主機命令分別轉譯成記憶體操作命令(簡稱操作命令),再以操作命令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之頁面(Page)。 In this embodiment, the host 50 can send a plurality of host commands (Host Command) to the data storage device 100, and the memory controller 110 then accesses the non-volatile memory 120 (such as reading or writing) according to the host command. Input data), wherein the above-mentioned data is preferably user data derived from the host 50. The host command includes a logical address, such as a logical block address (Logical Block Address, LBA). The memory controller 110 can receive host commands and translate the host commands into memory operation commands (operation commands for short), and then use the operation commands to control the non-volatile memory 120 to read, write (Write)/program (Program) A page of a specific physical address in the non-volatile memory 120 (Page).

記憶體控制器110將資料的邏輯位址與實體位址之間的映射關係記錄於邏輯對實體位址(Logical-to-Physical Address,L2P)映射表,其中,實體位址可由通道(Channel)編號、邏輯單元編號(Logical Unit Number,LUN)、平面(Plane)編號、區塊編號、頁面編號以及偏移量(Offset)所組成。於某些實施例中,實體位址的實施可予以變化。例如,實體位址可包含通道編號、邏輯單元編號、平面編號、區塊編號、頁面編號、及/或偏移量。 The memory controller 110 records the mapping relationship between the logical address and the physical address of the data in a logical-to-physical address (L2P) mapping table, where the physical address can be defined by the channel (Channel) Number, Logical Unit Number (LUN), Plane Number, Block Number, Page Number, and Offset. In some embodiments, the implementation of the physical address can be changed. For example, the physical address may include channel number, logical unit number, plane number, block number, page number, and/or offset.

L2P映射表可儲存於非揮發性記憶體120中之系統區塊中,且可分割成多個群組(Group)映射表,每一群組映射表記錄一段邏輯位址的映射關係。系統區塊較佳為加密區塊且以SLC模式進行資料的編程。記憶體控制器110可依 緩衝記憶體116的容量大小而將該多個群組映射表中的一部分或全部群組映射表從非揮發性記憶體120載入緩衝記憶體116,以供快速參考,但本發明不限於此。當使用者資料更新時,記憶體控制器110可依據使用者資料的最新映射關係來更新群組映射表的內容。群組映射表的大小較佳不大於非揮發性記憶體元件122-n的一個頁面(Page)的大小,例如16KB(kilobytes;千位元組),其中符號「n」可代表區間[1,N]中之任一正整數,但本發明不限於此。例如,群組映射表的大小可為4KB或1KB。 The L2P mapping table can be stored in a system block in the non-volatile memory 120, and can be divided into a plurality of group mapping tables, and each group mapping table records a mapping relationship of a logical address. The system block is preferably an encrypted block and data programming is performed in the SLC mode. The memory controller 110 can be The capacity of the buffer memory 116 is to load part or all of the group mapping tables from the non-volatile memory 120 into the buffer memory 116 for quick reference, but the present invention is not limited to this . When the user data is updated, the memory controller 110 can update the content of the group mapping table according to the latest mapping relationship of the user data. The size of the group mapping table is preferably no greater than the size of a page (Page) of the non-volatile memory device 122-n, such as 16KB (kilobytes; kilobytes), where the symbol "n" can represent the interval [1, N] is any positive integer, but the present invention is not limited to this. For example, the size of the group mapping table can be 4KB or 1KB.

非揮發性記憶體元件122-n可包含多個平面(Planes),諸如平面#0、#1、#2與#3,每一個平面包含多個區塊,每一區塊包含多個頁面。在此情況下,記憶體控制器110可將平面#0~#3之各自一個區塊組合成一個大區塊,則大區塊的大小等於一個區塊的大小的4倍。 The non-volatile memory device 122-n may include multiple planes, such as planes #0, #1, #2, and #3. Each plane includes multiple blocks, and each block includes multiple pages. In this case, the memory controller 110 may combine each block of the planes #0 to #3 into a large block, and the size of the large block is equal to 4 times the size of a block.

記憶體控制器110可將多個通道,例如2個通道CH#0與CH#1,中各自的一個非揮發性記憶體元件122-n之各自的一個大區塊可組合成一個超級區塊(Super Block,SB),則超級區塊的大小等於一個區塊的大小的8倍,且此2個非揮發性記憶體元件122-n可由同一晶片啟用(Chip Enable,CE)訊號所控制,但本發明不限於此。例如,在通道數量等於4的設定下,諸如通道CH#0~CH#3,通道CH#0~CH#3中的各自的一個非揮發性記憶體元件之各自的一個大區塊亦可組成一個超級區塊,亦可由一個晶片啟用訊號所控制。 The memory controller 110 can combine multiple channels, for example, two channels CH#0 and CH#1, each of a large block of each non-volatile memory element 122-n can be combined into a super block (Super Block, SB), the size of the super block is equal to 8 times the size of a block, and the two non-volatile memory elements 122-n can be controlled by the same chip enable (CE) signal, However, the present invention is not limited to this. For example, under the setting that the number of channels is equal to 4, such as channels CH#0~CH#3, channels CH#0~CH#3, each of a non-volatile memory device can also be composed of a large block. A super block can also be controlled by a chip enable signal.

第2圖繪示針對超級區塊的一管理方案的示意圖。非揮發性記憶體元件122-1、122-2、...與122-N可實施成複數個快閃記憶體裸晶,諸如裸晶#0與#1,其中裸晶#0與#1可作為上述2個通道CH#0與CH#1中各自的一個非揮發性記憶體元件122-n,並以此架構為例說明超級區塊的組成。裸晶#0可具有4個平面,因此,裸晶#0中的區塊可由4組區塊索引(Block Index)來表示,例如其區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-199}與{3-0,3-1,...,3-199}。 相仿地,裸晶#1亦可具有4個平面,因此,裸晶#1中的區塊亦可由4組區塊索引來表示,例如其區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-199}與{3-0,3-1,...,3-199}。 Figure 2 shows a schematic diagram of a management solution for super blocks. The non-volatile memory elements 122-1, 122-2, ... and 122-N can be implemented as a plurality of flash memory die, such as die #0 and #1, among which die #0 and #1 It can be used as a non-volatile memory device 122-n in each of the two channels CH#0 and CH#1, and the structure of the super block is described as an example. Die #0 can have 4 planes. Therefore, the block in die #0 can be represented by 4 sets of block indexes, for example, its block index {0-0,0-1,... ,0-199}, {1-0,1-1,...,1-199}, {2-0,2-1,...,2-199} and {3-0,3-1 ,...,3-199}. Similarly, die #1 can also have 4 planes. Therefore, the block in die #1 can also be represented by 4 sets of block indexes, for example, its block index {0-0,0-1,... .,0-199}, {1-0,1-1,...,1-199}, {2-0,2-1,...,2-199} and {3-0,3- 1,...,3-199}.

當組成超級區塊時,裸晶#0~#1可分別置於通道CH#0與CH#1,如此一來,超級區塊中的區塊可由區塊索引來表示,例如具有區塊索引格式[Die#,PLN#,BLK#]的8組區塊索引{[0,0,0],[0,0,1],...,[0,0,199]}、{[0,1,0],[0,1,1],...,[0,1,199]}、{[0,2,0],[0,2,1],...,[0,2,149]}、{[0,3,0],[0,3,1],...,[0,3,199]}、{[1,4,0],[1,4,1],...,[1,4,199]}、{[1,5,0],[1,5,1],...,[1,5,199]}、{[1,6,0],[1,6,1],...,[1,6,199]}以及{[1,7,0],[1,7,1],...,[1,7,199]},並且在區塊索引格式[Die#,PLN#,BLK#]中的Die#、PLN#與BLK#分別代表裸晶編號、平面編號與區塊編號,其中,裸晶編號與平面編號較佳為累進值(例如具有固定增量的一系列數值),有時裸晶編號會以通道編號來替代。另外,在上述架構中,由於超級區塊中的區塊來自八個平面,此種超級區塊又可稱為八平面超級區塊或平衡平面架構。 When forming a super block, die #0~#1 can be placed in channels CH#0 and CH#1, respectively. In this way, the blocks in the super block can be represented by a block index, for example, with a block index 8 groups of block indexes in the format [Die#,PLN#,BLK#] {[0,0,0],[0,0,1],...,[0,0,199]}, {[0,1 ,0],[0,1,1],...,[0,1,199]}, {[0,2,0],[0,2,1],...,[0,2,149]} , {[0,3,0],[0,3,1],...,[0,3,199]}, {[1,4,0],[1,4,1],..., [1,4,199]}, {[1,5,0],[1,5,1],...,[1,5,199]}, {[1,6,0],[1,6,1 ],...,[1,6,199]} and {[1,7,0],[1,7,1],...,[1,7,199]}, and in the block index format [Die# ,PLN#,BLK#], Die#, PLN#, and BLK# represent the die number, plane number, and block number, respectively. Among them, the die number and the plane number are preferably progressive values (such as those with fixed increments). A series of values), sometimes the die number will be replaced by the channel number. In addition, in the above architecture, since the blocks in the super block come from eight planes, such a super block can also be called an eight-plane super block or a balanced plane architecture.

假設在理想情況下,裸晶#0與#1之各自的平面#0~#3可具有相同數量的好區塊(Good Block),例如200個好區塊,即區塊#0~#199都是好區塊,沒有一個是壞區塊(Bad Block)。於是,在理想情況下,記憶體控制器110可將裸晶#0與#1中的平面#0~#3之相同區塊編號的區塊組合成超級區塊,因此,可組合成200個超級區塊。由於所有的區塊都是好區塊,記憶體控制器110在此情況下可以組合最多數量的超級區塊,因此,資料儲存裝置100(例如SSD)可以提供理想的儲存容量。假設每一裸晶的儲存容量為64GB(Gigabytes;十億位元組),則資料儲存裝置100可以提供128GB的儲存容量。由於裸晶中的區塊被組合成超級區塊,因此,資料儲存裝置100可以提供理想(較佳)的存取效能。 Assuming that under ideal conditions, the respective planes #0~#3 of die #0 and #1 can have the same number of good blocks (Good Block), for example, 200 good blocks, that is, blocks #0~#199 All are good blocks, none of them are bad blocks. Therefore, in an ideal situation, the memory controller 110 can combine the blocks with the same block numbers of the planes #0~#3 in the die #0 and #1 into a super block. Therefore, it can be combined into 200 blocks. Super block. Since all the blocks are good blocks, the memory controller 110 can combine the maximum number of super blocks in this case. Therefore, the data storage device 100 (such as an SSD) can provide an ideal storage capacity. Assuming that the storage capacity of each die is 64 GB (Gigabytes; one billion bytes), the data storage device 100 can provide a storage capacity of 128 GB. Since the blocks in the die are combined into super blocks, the data storage device 100 can provide ideal (better) access performance.

然而,在真實情況下,裸晶通常包括一部分的壞區塊。例如,裸晶 #0的平面#2的區塊#150~#199都是壞區塊,如符號「X」所示。於是,在真實情況下,記憶體控制器110將裸晶#0與#1中的平面#0~#3之相同區塊編號的區塊組合成超級區塊,如第2圖下半部中的超級區塊索引(Super Block Index){0,1,...,149}所示,其中,第2圖左下角所示區塊索引{0-0,0-1,...,0-149}、{1-0,1-1,...,1-149}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-149}可代表裸晶#0的區塊索引{0-0,0-1,...,0-149}、{1-0,1-1,...,1-149}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-149},而第2圖右下角所示區塊索引{4-0,4-1,...,4-149}、{5-0,5-1,...,5-149}、{6-0,6-1,...,6-149}與{7-0,7-1,...,7-149}可代表裸晶#1的區塊索引{0-0,0-1,...,0-149}、{1-0,1-1,...,1-149}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-149}。在真實情況下,記憶體控制器110僅能組合成150個超級區塊,資料儲存裝置100僅能提供96GB(例如(128 *(150/200))=96)的儲存容量,至於未組合至超級區塊的剩餘區塊,例如:裸晶#0的平面#0、#1以及#3的區塊#150~#199,裸晶#1的平面#0~#3的區塊#150~#199,則作為預留空間(Over-provisioning),無法成為資料儲存裝置100的儲存容量。 However, in real situations, the die usually includes a part of bad blocks. For example, bare die #0的平面#2's blocks #150~#199 are all bad blocks, as shown by the symbol "X". Therefore, in a real situation, the memory controller 110 combines the blocks with the same block numbers of the planes #0~#3 in die #0 and #1 into a super block, as shown in the lower half of Figure 2 The Super Block Index (Super Block Index) {0,1,...,149} shown in Figure 2, where the block index {0-0,0-1,...,0 shown in the lower left corner of Figure 2 -149}, {1-0,1-1,...,1-149}, {2-0,2-1,...,2-149} and {3-0,3-1,. ..,3-149} can represent the block index of die #0 {0-0,0-1,...,0-149}, {1-0,1-1,...,1- 149}, {2-0,2-1,...,2-149} and {3-0,3-1,...,3-149}, and the block index shown in the lower right corner of Figure 2 {4-0,4-1,...,4-149}, {5-0,5-1,...,5-149}, {6-0,6-1,...,6 -149} and {7-0,7-1,...,7-149} can represent the block index {0-0,0-1,...,0-149}, { 1-0,1-1,...,1-149}, {2-0,2-1,...,2-149} and {3-0,3-1,...,3- 149}. In a real situation, the memory controller 110 can only be combined into 150 super blocks, and the data storage device 100 can only provide a storage capacity of 96GB (for example, (128 * (150/200)) = 96). The remaining blocks of the super block, for example: the plane #0, #1 and #3 of the die #0 block #150~#199, and the plane #0~#3 of the die #1 block #150~ #199 is used as over-provisioning and cannot be the storage capacity of the data storage device 100.

為了克服上述問題,本發明提供一種非對稱型平面管理(Unbalanced Plane Management)方法,其可在資料儲存裝置100進行儲存容量檢測而無法達到容量閾值,例如:100GB,的情況下,開發出不同的儲存容量,使資料儲存裝置100的儲存容量可以超過容量閾值,達到本發明的目的。而本發明非對稱型平面管理方法不局限於將每一平面之一個區塊整合至一個超級區塊中,尤其,可依據真實情況下的需求來彈性地調整超級區塊的組合,或是調整平面的個數以組成超級區塊。舉例來說,當使用本發明非對稱型平面管理方法來管理裸晶#0與#1時,超級區塊可由八個平面中的七個平面的區塊的組合來形成,如第3圖所示,其中,區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-199}可代表裸晶#0的區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,..., 1-199}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-199},而區塊索引{4-0,4-1,...,4-199}、{5-0,5-1,...,5-199}、{6-0,6-1,...,6-199}與{7-0,7-1,...,7-199}可代表裸晶#1的區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-199}與{3-0,3-1,...,3-199}。於是,可以產生較多的超級區塊,例如:由原本的150個超級區塊增加為200個超級區塊,且,可以增加資料儲存裝置100的儲存容量,例如:資料儲存裝置100的儲存容量從96GB增加為112GB(例如(128 *(7/8))=112),以成功地達成本發明的目的。 In order to overcome the above-mentioned problems, the present invention provides an asymmetric plane management (Unbalanced Plane Management) method, which can detect the storage capacity of the data storage device 100 but cannot reach the capacity threshold, for example, 100GB. The storage capacity enables the storage capacity of the data storage device 100 to exceed the capacity threshold, achieving the purpose of the present invention. The asymmetric plane management method of the present invention is not limited to integrating one block of each plane into one super block. In particular, the combination of super blocks can be flexibly adjusted or adjusted according to actual needs. The number of planes constitutes a super block. For example, when the asymmetric plane management method of the present invention is used to manage dies #0 and #1, the super block can be formed by a combination of blocks of seven planes out of eight planes, as shown in Figure 3. Shows, where the block index {0-0,0-1,...,0-199}, {1-0,1-1,...,1-199}, {2-0,2- 1,...,2-149} and {3-0,3-1,...,3-199} can represent the block index {0-0,0-1,... ,0-199}, {1-0,1-1,..., 1-199}, {2-0,2-1,...,2-149} and {3-0,3-1,...,3-199}, and the block index {4-0, 4-1,...,4-199}, {5-0,5-1,...,5-199}, {6-0,6-1,...,6-199} and { 7-0,7-1,...,7-199} can represent the block index of die #1 {0-0,0-1,...,0-199}, {1-0,1 -1,...,1-199}, {2-0,2-1,...,2-199} and {3-0,3-1,...,3-199}. Therefore, more super blocks can be generated, for example, the original 150 super blocks are increased to 200 super blocks, and the storage capacity of the data storage device 100 can be increased, for example: the storage capacity of the data storage device 100 Increase from 96GB to 112GB (for example (128 *(7/8))=112) to successfully achieve the purpose of the invention.

在另一個真實情況下,如第4圖所示,裸晶#0的平面#2的區塊#150~#199都是壞區塊,裸晶#1的平面#2的區塊#180~#199都是壞區塊,因此,資料儲存裝置100僅能提供96GB的儲存容量。當採用本發明一種非對稱型平面管理方法時,將超級區塊由八個平面中的七個平面的區塊來組合,如第5圖所示,其中,區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-199}可代表裸晶#0的區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-149}與{3-0,3-1,...,3-199},而區塊索引{4-0,4-1,...,4-199}、{5-0,5-1,...,5-199}、{6-0,6-1,...,6-179}與{7-0,7-1,...,7-199}可代表裸晶#1的區塊索引{0-0,0-1,...,0-199}、{1-0,1-1,...,1-199}、{2-0,2-1,...,2-179}與{3-0,3-1,...,3-199}。屬於超級區塊#0~#179的一大部分區塊可由裸晶#0的平面#0、#1與#3以及裸晶#1的平面#0~#3之各自的區塊#0~#179所組成,而屬於超級區塊#180~#199的另一部分區塊可改由裸晶#0與#1之各自的平面#0、#1與#3之各自的區塊#180~#199以及裸晶#0的平面#2的區塊#0~#19(如虛線框所示)所組成,一樣可以組成200個超級區塊,使資料儲存裝置100的儲存容量從96GB增加為112GB,以成功地達成本發明的目的。 In another real situation, as shown in Figure 4, blocks #150~#199 of plane #2 of die #0 are all bad blocks, and block #180~ of plane #2 of die #1. #199 are all bad blocks. Therefore, the data storage device 100 can only provide a storage capacity of 96GB. When the asymmetric plane management method of the present invention is adopted, the super block is combined by blocks of seven of the eight planes, as shown in Figure 5, where the block index is {0-0,0 -1,...,0-199}, {1-0,1-1,...,1-199}, {2-0,2-1,...,2-149} and {3 -0,3-1,...,3-199} can represent the block index of die #0 {0-0,0-1,...,0-199}, {1-0,1- 1,...,1-199}, {2-0,2-1,...,2-149} and {3-0,3-1,...,3-199}, and the block Index {4-0,4-1,...,4-199}, {5-0,5-1,...,5-199}, {6-0,6-1,..., 6-179} and {7-0,7-1,...,7-199} can represent the block index {0-0,0-1,...,0-199} of die #1, {1-0,1-1,...,1-199}, {2-0,2-1,...,2-179} and {3-0,3-1,...,3 -199}. A large part of the blocks belonging to the super block #0~#179 can be divided by the plane #0, #1 and #3 of the die #0 and the plane #0~#3 of the die #1. #179, and the other part of the blocks belonging to the super block #180~#199 can be changed to the respective planes #0, #1 and #3 of the die #0 and #1 #180~ #199 and die #0 of the plane #2 are composed of blocks #0~#19 (as shown by the dashed frame), which can also form 200 super blocks, increasing the storage capacity of the data storage device 100 from 96GB to 112GB, in order to successfully achieve the purpose of the invention.

第6圖繪示依據本發明一實施例之非對稱型平面管理方法的工作流程,本發明非對稱型平面管理方法可應用於資料儲存裝置100,並由資料儲存裝 置100的記憶體控制器110所執行。另外,於執行本發明非對稱型平面管理方法以後,記憶體控制器110可能會產生多種儲存容量的記錄,其可分別對應於一平面數參數(plane count parameter)諸如一非平衡平面數量(unbalanced plane number)UNBAL_NUM的多個可能的值(例如多個候選值),並且使用者可以依據其需求從上述多種儲存容量的記錄選擇對應於該多個可能的值中的某一可能的值(例如該多個候選值中的某一候選值)之一記錄,例如:選取儲存容量值為最大的記錄,或是選取儲存容量值為次佳但是非平衡平面數量UNBAL_NUM的值較小的記錄,而選取該所選擇的記錄所對應的非平衡平面數量UNBAL_NUM的值,使資料儲存裝置100能透過對應的儲存容量組態提供所需的儲存容量。 Figure 6 shows the workflow of the asymmetric plane management method according to an embodiment of the present invention. The asymmetric plane management method of the present invention can be applied to the data storage device 100, and the data storage device The memory controller 110 is set to 100 to execute. In addition, after implementing the asymmetric plane management method of the present invention, the memory controller 110 may generate records of multiple storage capacities, which can respectively correspond to a plane count parameter such as an unbalanced plane count. plane number) multiple possible values of UNBAL_NUM (such as multiple candidate values), and the user can select a certain possible value corresponding to the multiple possible values (such as multiple candidate values) from the above-mentioned multiple storage capacity records according to their needs One of the multiple candidate values) records, for example: select the record with the largest storage capacity value, or select the record with the second best storage capacity value but the number of unbalanced planes UNBAL_NUM is smaller, and The value of the number of unbalanced planes UNBAL_NUM corresponding to the selected record is selected, so that the data storage device 100 can provide the required storage capacity through the corresponding storage capacity configuration.

於步驟S10中,記憶體控制器110設定非平衡平面數量UNBAL_NUM,其中,非平衡平面數量UNBAL_NUM小於一最大平面數量。該最大平面數量代表該複數個非揮發性記憶體元件122-1、122-2、...與122-N之各自的平面的數量的總和,尤其,該最大平面數量可等於裸晶數量(Die Count)DIE_COUNT乘以平面數量(Plane Number)PLANE_NUM,以前面所述實施例為例,資料儲存裝置100設置有裸晶#0與#1,則裸晶數量DIE_COUNT等於2。平面數量PLANE_NUM可代表每一裸晶所包含的平面的總數量,裸晶#0與#1分別具有其各自的平面#0~#3,則平面數量PLANE_NUM等於4,因此該最大平面數量等於8。非平衡平面數量UNBAL_NUM的初始值例如等於7,最小值例如等於2。 In step S10, the memory controller 110 sets the number of unbalanced planes UNBAL_NUM, where the number of unbalanced planes UNBAL_NUM is less than a maximum number of planes. The maximum number of planes represents the sum of the numbers of the respective planes of the plurality of non-volatile memory elements 122-1, 122-2, ... and 122-N. In particular, the maximum number of planes may be equal to the number of dies ( Die Count) DIE_COUNT is multiplied by the number of planes (Plane Number) PLANE_NUM. Taking the aforementioned embodiment as an example, the data storage device 100 is provided with dies #0 and #1, and the number of dies DIE_COUNT is equal to 2. The number of planes PLANE_NUM can represent the total number of planes included in each die. Die #0 and #1 have their own planes #0~#3 respectively, and the number of planes PLANE_NUM is equal to 4, so the maximum number of planes is equal to 8. . The initial value of the number of unbalanced planes UNBAL_NUM is equal to 7, for example, and the minimum value is equal to 2, for example.

於步驟S12中,記憶體控制器110選取該最大平面數量減去非平衡平面數量UNBAL_NUM的至少一平面,並將選取的平面(諸如該至少一平面)的至少一組區塊(例如其區塊索引)記錄至一區塊省略表(block skip table)諸如對應於該至少一平面之至少一組區塊省略索引(block skip indexes)BLOCKSKIPIDX,其中該區塊省略表可包含該至少一組區塊省略索引 BLOCKSKIPIDX。該至少一組區塊省略索引BLOCKSKIPIDX較佳為一陣列,其可包含一或多個子陣列,而該陣列的該一或多個子陣列的一子陣列數(sub-array count)較佳等於該最大平面數量減去非平衡平面數量UNBAL_NUM的差值,並且該陣列的大小較佳等於該至少一組區塊的總數量。以第2圖上半部以及第4圖為例,最大平面數量等於8,非平衡平面數量UNBAL_NUM等於7,因此,記憶體控制器110將選取1個平面。由於裸晶#0的平面#2的好區塊的總數量最少,因此,記憶體控制器110選取裸晶#0的平面#2,並將裸晶#0的平面#2的區塊#0~#149(例如其區塊索引)記錄至區塊省略索引BLOCKSKIPIDX。假設非平衡平面數量UNBAL_NUM可予以變化,例如,當非平衡平面數量UNBAL_NUM等於6時,因為裸晶#0的平面#2以及裸晶#1的平面#2的好區塊的總數量最少,記憶體控制器110選取裸晶#0的平面#2以及裸晶#1的平面#2,並將裸晶#0的平面#2的區塊#0~#149以及裸晶#1的平面#2的區塊#0~#179(例如其區塊索引)記錄至區塊省略索引BLOCKSKIPIDX。另外,於某些實施例中,記憶體控制器110可選取好區塊的總數量最多的一或多個平面,並將該一或多個平面的區塊(例如其區塊索引)記錄至區塊省略索引BLOCKSKIPIDX,但本發明並不以此為限。 In step S12, the memory controller 110 selects at least one plane from the maximum number of planes minus the number of unbalanced planes UNBAL_NUM, and sets at least one set of blocks (for example, the blocks of the selected plane, such as the at least one plane) Index) recorded in a block skip table (block skip table) such as at least one set of block skip indexes BLOCKSKIPIDX corresponding to the at least one plane, wherein the block skip table may include the at least one set of blocks Omit index BLOCKSKIPIDX. The at least one set of block omission index BLOCKSKIPIDX is preferably an array, which may include one or more sub-arrays, and a sub-array count of the one or more sub-arrays of the array is preferably equal to the maximum The difference between the number of planes minus the number of unbalanced planes UNBAL_NUM, and the size of the array is preferably equal to the total number of the at least one group of blocks. Taking the upper part of Fig. 2 and Fig. 4 as examples, the maximum number of planes is equal to 8, and the number of unbalanced planes UNBAL_NUM is equal to 7. Therefore, the memory controller 110 will select one plane. Since the total number of good blocks in plane #2 of die #0 is the least, the memory controller 110 selects plane #2 of die #0, and places die #0 in plane #2 of block #0. ~#149 (such as its block index) record to the block omission index BLOCKSKIPIDX. Assuming that the number of unbalanced planes UNBAL_NUM can be changed, for example, when the number of unbalanced planes UNBAL_NUM is equal to 6, because the total number of good blocks of die #0 plane #2 and die #1 plane #2 is the smallest, the memory The bulk controller 110 selects the plane #2 of the die #0 and the plane #2 of the die #1, and sets the blocks #0~#149 of the plane #2 of the die #0 and the plane #2 of the die #1. The block #0~#179 (for example, its block index) is recorded to the block omission index BLOCKSKIPIDX. In addition, in some embodiments, the memory controller 110 may select one or more planes with the largest total number of blocks, and record the blocks (for example, the block index) of the one or more planes in The block omits the index BLOCKSKIPIDX, but the present invention is not limited to this.

於步驟S14中,記憶體控制器110依據區塊編號為索引(例如:BLK#=0、BLK#=1...),將未選取的平面的區塊組成超級區塊,尤其,逐一地(one by one)及/或依序地(sequentially),以將這些平面之各自的區塊#0、#1等分別組成超級區塊#0、#1等,其中這些超級區塊分別對應於這些區塊編號。以第2圖上半部以及第4圖為例,未選取的平面可為裸晶#0的平面#0、#1、#3以及裸晶#1的平面#0~#3,記憶體控制器110依據區塊編號為索引,將未選取的平面的區塊(例如其區塊索引)記錄至孤兒區塊表ORPHAN_BLOCK_TABLE,如第3以及5圖所示,其中,孤兒區塊表ORPHAN_BLOCK_TABLE記錄每一超級區塊的區塊編號,例如,超級區塊#0由7個不同平面的區塊#0所組成,超級區塊#1由7個不同 平面的區塊#1所組成,依此類推。此種架構的超級區塊又可稱為7平面超級區塊,或非平衡平面超級區塊。 In step S14, the memory controller 110 uses the block number as an index (for example: BLK#=0, BLK#=1...), and forms the blocks of the unselected planes into super blocks, especially, one by one (one by one) and/or sequentially (sequentially) to form the respective blocks #0, #1, etc. of these planes into super blocks #0, #1, etc., where these super blocks correspond to These block numbers. Take the upper part of Figure 2 and Figure 4 as an example, the unselected planes can be planes #0, #1, #3 of die #0 and planes #0~#3 of die #1, memory control Based on the block number as the index, the device 110 records the blocks of the unselected plane (such as its block index) to the orphan block table ORPHAN_BLOCK_TABLE, as shown in Figures 3 and 5, wherein the orphan block table ORPHAN_BLOCK_TABLE records each The block number of a super block, for example, super block #0 is composed of 7 different planes of block #0, and super block #1 is composed of 7 different It is composed of flat block #1, and so on. The super block of this structure can also be called a 7-plane super block or an unbalanced plane super block.

於步驟S16中,記憶體控制器110判斷步驟S14中的這些區塊編號是否小於一區塊閾值,以產生一判斷結果,尤其,透過將這些區塊編號所形成的一區塊編號序列中的最後一個區塊編號和該區塊閾值比較,以產生這個判斷結果,其中該最後一個區塊編號是這些區塊編號中的最大值。如果是(例如判斷結果為「真」(True)),則執行步驟S18;如果否(例如判斷結果為「偽」(False)),則執行步驟S20。該區塊閾值等於一預定值,且較佳等於全部可用的(available)區塊編號{BLK#}的最大值。以第2圖上半部以及第4圖為例,區塊閾值等於上述全部可用的區塊編號{BLK#}的最大值,即數值199。以第3圖為例,孤兒區塊表ORPHAN_BLOCK_TABLE可因應區塊編號BLK#的變化順利地從超級區塊#0建立至超級區塊#199,因此,當步驟S16的判斷為否時,這表示針對非平衡平面數量UNBAL_NUM的目前值之檢測已完成,可執行步驟S20,尤其,可另因應步驟S22的某一判斷結果執行步驟S10,以進行針對非平衡平面數量UNBAL_NUM的下一個值之檢測,例如,記憶體控制器110可在步驟S10中將非平衡平面數量UNBAL_NUM的下一個值(尤其,最新值)設定為非平衡平面數量UNBAL_NUM的目前值減1。 In step S16, the memory controller 110 determines whether the block numbers in step S14 are less than a block threshold to generate a determination result, in particular, the block number sequence formed by these block numbers The last block number is compared with the block threshold to generate this judgment result, where the last block number is the maximum of these block numbers. If yes (for example, the judgment result is "True"), then step S18 is executed; if not (for example, the judgment result is "False" (False)), then step S20 is executed. The block threshold is equal to a predetermined value, and preferably equal to the maximum value of all available block numbers {BLK#}. Taking the upper part of Fig. 2 and Fig. 4 as examples, the block threshold is equal to the maximum value of all available block numbers {BLK#}, which is a value of 199. Taking Figure 3 as an example, the orphan block table ORPHAN_BLOCK_TABLE can be successfully established from super block #0 to super block #199 in response to the change of block number BLK#. Therefore, when the judgment of step S16 is negative, this means The detection of the current value of the number of unbalanced planes UNBAL_NUM has been completed, step S20 may be executed. In particular, step S10 may be executed according to a certain judgment result of step S22 to perform the detection of the next value of the number of unbalanced planes UNBAL_NUM. For example, the memory controller 110 may set the next value (especially the latest value) of the number of unbalanced planes UNBAL_NUM in step S10 to the current value of the number of unbalanced planes UNBAL_NUM minus one.

於步驟S18中,記憶體控制器110繼續依據區塊編號為索引,尤其,依據上述全部可用的區塊編號{BLK#}中的剩餘的區塊編號(例如步驟S14中的上述區塊編號之後續區塊編號)為索引,將上述未選取的平面的其它區塊(例如對應於上述後續區塊編號之後續區塊)以及區塊省略索引BLOCKSKIPIDX所記錄的區塊組成其它超級區塊,諸如步驟S14中的上述超級區塊之後續超級區塊。以第4至5圖為例,孤兒區塊表ORPHAN_BLOCK_TABLE的表內容(例如其內的區塊索引所代表的超級區塊)可順利地建立至超級區塊#179,然而,在建 立超級區塊#180時,只剩下6個不同平面的區塊#180,因此,記憶體控制器110選取區塊省略索引BLOCKSKIPIDX所記錄的裸晶#0的平面#2的區塊#0以及6個不同平面的區塊#180來建立超級區塊#180。接著,記憶體控制器110選取區塊省略索引BLOCKSKIPIDX所記錄的裸晶#0的平面#2的區塊#1以及6個不同平面的區塊#181來建立超級區塊#181,依此類推,直到完成超級區塊#199的建立,如第5圖所示。 In step S18, the memory controller 110 continues to index according to the block number, in particular, according to the remaining block numbers in all the above-mentioned available block numbers {BLK#} (for example, the number of the above-mentioned block numbers in step S14) The subsequent block number) is an index, and other blocks of the above unselected plane (for example, the subsequent block corresponding to the above subsequent block number) and the block recorded by the block omission index BLOCKSKIPIDX form other super blocks, such as The super block subsequent to the above super block in step S14. Taking Figures 4 to 5 as an example, the table content of the orphan block table ORPHAN_BLOCK_TABLE (for example, the super block represented by the block index in it) can be successfully established to super block #179, however, it is under construction When super block #180 is established, only 6 blocks #180 with different planes are left. Therefore, the memory controller 110 selects blocks to omit block #0 of plane #2 of die #0 and plane #2 recorded by the index BLOCKSKIPIDX. And 6 blocks #180 of different planes to create a super block #180. Then, the memory controller 110 selects the block to omit the block #1 of the plane #2 of the die #0 recorded by the index BLOCKSKIPIDX and the block #181 of 6 different planes to create the super block #181, and so on , Until the establishment of super block #199 is completed, as shown in Figure 5.

於步驟S20中,記憶體控制器110記錄全部超級區塊的總容量以及非平衡平面數量UNBAL_NUM,以產生上述多種儲存容量的記錄中的一最新的記錄,以供進一步設定資料儲存裝置100的儲存容量組態,其中上述全部超級區塊可包含步驟S14中的上述超級區塊,尤其,可另包含步驟S18中的上述其它超級區塊(若步驟S18被執行)。於完成孤兒區塊表ORPHAN_BLOCK_TABLE的建立以後,記憶體控制器110可依據孤兒區塊表ORPHAN_BLOCK_TABLE而計算出超級區塊的總容量,例如:112GB,且記錄超級區塊的總容量以及非平衡平面數量UNBAL_NUM的目前值,例如:數值7。 In step S20, the memory controller 110 records the total capacity of all super blocks and the number of unbalanced planes UNBAL_NUM to generate the latest record among the above-mentioned multiple storage capacity records for further setting the storage of the data storage device 100 The capacity configuration, wherein all the super blocks mentioned above may include the super blocks mentioned in step S14, and in particular, may further comprise the other super blocks mentioned above in step S18 (if step S18 is executed). After completing the establishment of the orphan block table ORPHAN_BLOCK_TABLE, the memory controller 110 can calculate the total capacity of the super block according to the orphan block table ORPHAN_BLOCK_TABLE, for example: 112GB, and record the total capacity of the super block and the number of unbalanced planes The current value of UNBAL_NUM, for example: the value 7.

於步驟S22中,記憶體控制器110判斷非平衡平面數量UNBAL_NUM是否等於平面閾值。如果否(例如判斷結果為「偽」),則執行步驟S10;如果是(例如判斷結果為「真」),則結束非對稱型平面管理方法的執行。在步驟S10,記憶體控制器110例如將非平衡平面數量UNBAL_NUM的下一個值(尤其,最新值)設定為非平衡平面數量UNBAL_NUM的目前值減1。另外,平面閾值可等於UNBAL_NUM的最小值,例如:數值2。 In step S22, the memory controller 110 determines whether the number of unbalanced planes UNBAL_NUM is equal to the plane threshold. If not (for example, the judgment result is "false"), step S10 is executed; if yes (for example, the judgment result is "true"), then the execution of the asymmetric plane management method is ended. In step S10, the memory controller 110, for example, sets the next value (especially the latest value) of the number of unbalanced planes UNBAL_NUM to the current value of the number of unbalanced planes UNBAL_NUM minus one. In addition, the plane threshold can be equal to the minimum value of UNBAL_NUM, for example, the value 2.

由於上述中可知,本發明至少一實施例之非對稱型平面管理方法能成功地將資料儲存裝置100的儲存容量從96GB增加為112GB,並使資料儲存裝置100具備基於超級區塊的高存取效能,而剩下未利用的區塊,例如:區塊省略索引BLOCKSKIPIDX所記錄的區塊則可作為預留空間(Over-provisioning)使用, 達到本發明的目的。 As can be seen from the above, the asymmetric plane management method of at least one embodiment of the present invention can successfully increase the storage capacity of the data storage device 100 from 96GB to 112GB, and enable the data storage device 100 to have high access based on super blocks. Performance, and the remaining unused blocks, for example: the blocks recorded by the block omission index BLOCKSKIPIDX can be used as over-provisioning, To achieve the purpose of the present invention.

以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 The foregoing descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made in accordance with the scope of the patent application of the present invention should fall within the scope of the present invention.

S10、S12、S14、S16、S18、S20、S22:步驟 S10, S12, S14, S16, S18, S20, S22: steps

Claims (18)

一種非對稱型平面管理方法,該非對稱型平面管理方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該複數個非揮發性記憶體元件包含複數個區塊(block),該非對稱型平面管理方法包含有:設定一非平衡平面數量(unbalanced plane number),其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表(block skip table);依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及記錄全部超級區塊的總容量以及該非平衡平面數量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊,以及所述多種儲存容量的記錄分別對應於該非平衡平面數量的多個可能的值,以容許一使用者依據需求從所述多種儲存容量的記錄選擇對應於該多個可能的值中的一可能的值之一記錄。 An asymmetric plane management method, the asymmetric plane management method is applied to a data storage device, the data storage device includes a non-volatile memory (non-volatile memory, NV memory), the non-volatile memory includes a plurality of A non-volatile memory element (NV memory element), the plurality of non-volatile memory elements include a plurality of blocks (block), the asymmetric plane management method includes: setting an unbalanced plane number (unbalanced plane number) ), wherein the number of unbalanced planes is less than a maximum number of planes, and the maximum number of planes represents the sum of the number of the respective planes of the plurality of non-volatile memory elements; select the maximum number of planes minus at least the number of unbalanced planes A plane, and at least one set of blocks of the at least one plane are recorded in a block skip table (block skip table); according to the block number as an index, the blocks of the unselected plane are formed into a super block. The super blocks respectively correspond to the block numbers; and the total capacity of all super blocks and the number of unbalanced planes are recorded to generate a newest record among the records of multiple storage capacities for further setting of the data storage device The storage capacity configuration, wherein all the super blocks include the super blocks, and the records of the various storage capacities correspond to multiple possible values of the number of unbalanced planes, so as to allow a user to follow the demand from The record selection of the multiple storage capacities corresponds to a record of one of the multiple possible values. 如申請專利範圍第1項所述之非對稱型平面管理方法,其中該區塊省略表包含至少一組區塊省略索引(block skip indexes);以及該至少一組區塊省略索引是一陣列,該陣列包含一或多個子陣列,且該陣列的該一或多個子陣列的一子陣列數(sub-array count)等於該最大平面數量減去該非平 衡平面數量的差值,其中該陣列的大小等於該至少一組區塊的總數量。 According to the asymmetric plane management method described in claim 1, wherein the block omission table includes at least one set of block skip indexes; and the at least one set of block skip indexes is an array, The array includes one or more sub-arrays, and a sub-array count of the one or more sub-arrays of the array is equal to the maximum number of planes minus the non-flat The difference in the number of balance planes, where the size of the array is equal to the total number of the at least one set of blocks. 如申請專利範圍第1項所述之非對稱型平面管理方法,其另包含:判斷所述區塊編號中的至少一者是否小於一區塊閾值,以產生一判斷結果,其中該區塊閾值等於全部可用的(available)區塊編號的最大值,且該判斷結果指出所述區塊編號中的該至少一者是否小於該區塊閾值;以及因應該判斷結果指出所述區塊編號中的該至少一者小於該區塊閾值,依據所述全部可用的區塊編號中的剩餘的區塊編號為索引,將所述未選取的平面的其它區塊以及該區塊省略表所記錄的區塊組成其它超級區塊。 For example, the asymmetric plane management method described in claim 1 further includes: judging whether at least one of the block numbers is less than a block threshold to generate a judgment result, wherein the block threshold Equal to the maximum value of all available block numbers, and the judgment result indicates whether the at least one of the block numbers is less than the block threshold; and the judgment result indicates that the block number is The at least one is smaller than the block threshold, and based on the remaining block numbers in the all available block numbers as an index, other blocks in the unselected plane and the area recorded in the block omission table Blocks make up other super blocks. 如申請專利範圍第3項所述之非對稱型平面管理方法,其中所述剩餘的區塊編號包含所述區塊編號之後續區塊編號,所述未選取的平面的所述其它區塊包含對應於所述後續區塊編號之後續區塊,且所述其它超級區塊包含所述超級區塊之後續超級區塊。 The asymmetric plane management method described in item 3 of the scope of patent application, wherein the remaining block number includes a subsequent block number of the block number, and the other blocks of the unselected plane include The subsequent block corresponding to the subsequent block number, and the other super block includes the subsequent super block of the super block. 如申請專利範圍第3項所述之非對稱型平面管理方法,其中判斷所述區塊編號中的該至少一者是否小於該區塊閾值以產生該判斷結果之步驟包含:將所述區塊編號所形成的一區塊編號序列中的最後一個區塊編號和該區塊閾值比較,以產生該判斷結果,其中該最後一個區塊編號是所述區塊編號中的最大值。 According to the asymmetric plane management method described in item 3 of the scope of patent application, the step of determining whether the at least one of the block numbers is less than the block threshold to generate the determination result includes: The last block number in a block number sequence formed by the number is compared with the block threshold to generate the judgment result, wherein the last block number is the maximum value of the block numbers. 如申請專利範圍第1項所述之非對稱型平面管理方法,其中該多個可能的值代表多個候選值,且該可能的值代表該多個候選值中的一候選值。 According to the asymmetric plane management method described in the first item of the scope of patent application, the multiple possible values represent multiple candidate values, and the possible value represents a candidate value among the multiple candidate values. 一種資料儲存裝置,包含有:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),以及該複數個非揮發性記憶體元件包含複數個區塊;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之操作,其中該控制器包含:一處理電路,用來依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中:該控制器設定一非平衡平面數量(unbalanced plane number),其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;該控制器選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表(block skip table);該控制器依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及該控制器記錄全部超級區塊的總容量以及該非平衡平面數 量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊,以及所述多種儲存容量的記錄分別對應於該非平衡平面數量的多個可能的值,以容許一使用者依據需求從所述多種儲存容量的記錄選擇對應於該多個可能的值中的一可能的值之一記錄。 A data storage device includes: a non-volatile memory (NV memory) for storing information, wherein the non-volatile memory includes a plurality of non-volatile memory elements (NV memory elements), And the plurality of non-volatile memory elements include a plurality of blocks; and a controller coupled to the non-volatile memory for controlling the operation of the data storage device, wherein the controller includes: a processing circuit, Used to control the controller according to a plurality of host commands from a host device to allow the host to access the non-volatile memory through the controller, wherein: the controller sets a The number of unbalanced planes (unbalanced plane number), wherein the number of unbalanced planes is less than a maximum plane number, and the maximum plane number represents the sum of the number of the respective planes of the plurality of non-volatile memory elements; the controller selects the At least one plane of the maximum number of planes minus the number of unbalanced planes, and records at least one group of blocks of the at least one plane in a block skip table; the controller uses the block number as an index, and The blocks of the unselected planes constitute a super block, wherein the super blocks respectively correspond to the block numbers; and the controller records the total capacity of all super blocks and the number of unbalanced planes Volume to generate a newest record among the records of multiple storage capacities for further setting the storage capacity configuration of the data storage device, wherein the all super blocks include the super blocks and the multiple storage capacities The records respectively correspond to multiple possible values of the number of unbalanced planes, so as to allow a user to select a record corresponding to a possible value among the multiple possible values from the records of the multiple storage capacities according to requirements. 如申請專利範圍第7項所述之資料儲存裝置,其中該區塊省略表包含至少一組區塊省略索引(bloclk skip indexes);以及該至少一組區塊省略索引是一陣列,該陣列包含一或多個子陣列,且該陣列的該一或多個子陣列的一子陣列數(sub-array count)等於該最大平面數量減去該非平衡平面數量的差值,其中該陣列的大小等於該至少一組區塊的總數量。 For the data storage device described in claim 7, wherein the block omission table includes at least one set of block omission indexes (bloclk skip indexes); and the at least one set of block omission indexes is an array, and the array includes One or more sub-arrays, and a sub-array count of the one or more sub-arrays of the array is equal to the difference between the maximum number of planes minus the number of unbalanced planes, wherein the size of the array is equal to the at least The total number of blocks in a group. 如申請專利範圍第7項所述之資料儲存裝置,其中該控制器判斷所述區塊編號中的至少一者是否小於一區塊閾值,以產生一判斷結果,其中該區塊閾值等於全部可用的(available)區塊編號的最大值,且該判斷結果指出所述區塊編號中的該至少一者是否小於該區塊閾值;以及因應該判斷結果指出所述區塊編號中的該至少一者小於該區塊閾值,該控制器依據所述全部可用的區塊編號中的剩餘的區塊編號為索引,將所述未選取的平面的其它區塊以及該區塊省略表所記錄的區塊組成其它超級區塊。 For the data storage device described in item 7 of the scope of patent application, the controller determines whether at least one of the block numbers is less than a block threshold to generate a determination result, wherein the block threshold is equal to all available The maximum value of the (available) block number, and the judgment result indicates whether the at least one of the block numbers is less than the block threshold; and the judgment result indicates that the at least one of the block numbers Is smaller than the block threshold, the controller uses the remaining block numbers in the all available block numbers as an index, and indexes the other blocks of the unselected plane and the area recorded in the block omission table. Blocks make up other super blocks. 如申請專利範圍第9項所述之資料儲存裝置,其中所述剩餘的區塊編號包含所述區塊編號之後續區塊編號,所述未選取的平面的所述其它區塊 包含對應於所述後續區塊編號之後續區塊,且所述其它超級區塊包含所述超級區塊之後續超級區塊。 The data storage device described in claim 9, wherein the remaining block number includes a subsequent block number of the block number, and the other blocks of the unselected plane A subsequent block corresponding to the subsequent block number is included, and the other super block includes the subsequent super block of the super block. 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器將所述區塊編號所形成的一區塊編號序列中的最後一個區塊編號和該區塊閾值比較,以產生該判斷結果,其中該最後一個區塊編號是所述區塊編號中的最大值。 The data storage device described in item 9 of the scope of patent application, wherein the controller compares the last block number in a block number sequence formed by the block number with the block threshold to generate the judgment As a result, the last block number is the maximum value among the block numbers. 如申請專利範圍第7項所述之資料儲存裝置,其中該多個可能的值代表多個候選值,且該可能的值代表該多個候選值中的一候選值。 For the data storage device described in item 7 of the scope of patent application, the multiple possible values represent multiple candidate values, and the possible value represents a candidate value among the multiple candidate values. 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該複數個非揮發性記憶體元件包含複數個區塊,該控制器包含有:一處理電路,用來依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中:該控制器設定一非平衡平面數量(unbalanced plane number),其中該非平衡平面數量小於一最大平面數量,且該最大平面數量代表該複數個非揮發性記憶體元件之各自的平面的數量的總和;該控制器選取該最大平面數量減去該非平衡平面數量的至少一平面,並將該至少一平面的至少一組區塊記錄至一區塊省略表(block skip table); 該控制器依據區塊編號為索引,將未選取的平面的區塊組成超級區塊,其中所述超級區塊分別對應於所述區塊編號;以及該控制器記錄全部超級區塊的總容量以及該非平衡平面數量,以產生多種儲存容量的記錄中的一最新的記錄,以供進一步設定該資料儲存裝置的儲存容量組態,其中所述全部超級區塊包含所述超級區塊,以及所述多種儲存容量的記錄分別對應於該非平衡平面數量的多個可能的值,以容許一使用者依據需求從所述多種儲存容量的記錄選擇對應於該多個可能的值中的一可能的值之一記錄。 A controller for a data storage device. The data storage device includes the controller and a non-volatile memory (NV memory). The non-volatile memory includes a plurality of non-volatile memory devices (NV memory). element), the plurality of non-volatile memory elements include a plurality of blocks, and the controller includes: a processing circuit for controlling the control according to a plurality of host commands from a host device To allow the host to access the non-volatile memory through the controller, wherein: the controller sets an unbalanced plane number, wherein the unbalanced plane number is less than a maximum plane number, and The maximum number of planes represents the sum of the number of respective planes of the plurality of non-volatile memory elements; the controller selects at least one plane from the maximum number of planes minus the number of non-balanced planes, and sets at least one plane of the at least one plane A group of blocks are recorded in a block skip table; According to the block number as an index, the controller composes the blocks of the unselected plane into super blocks, wherein the super blocks respectively correspond to the block numbers; and the controller records the total capacity of all super blocks And the number of unbalanced planes to generate a newest record among the records of multiple storage capacities for further setting the storage capacity configuration of the data storage device, wherein the all super blocks include the super blocks and all The records of the multiple storage capacities respectively correspond to multiple possible values of the number of unbalanced planes, so as to allow a user to select a possible value corresponding to the multiple possible values from the records of the multiple storage capacities according to requirements One record. 如申請專利範圍第13項所述之控制器,其中該區塊省略表包含至少一組區塊省略索引(block skip indexes);以及該至少一組區塊省略索引是一陣列,該陣列包含一或多個子陣列,且該陣列的該一或多個子陣列的一子陣列數(sub-array count)等於該最大平面數量減去該非平衡平面數量的差值,其中該陣列的大小等於該至少一組區塊的總數量。 For the controller described in claim 13, wherein the block omission table includes at least one set of block skip indexes; and the at least one set of block skip indexes is an array, and the array includes one Or more sub-arrays, and a sub-array count of the one or more sub-arrays of the array is equal to the difference between the maximum number of planes minus the number of unbalanced planes, wherein the size of the array is equal to the at least one The total number of group blocks. 如申請專利範圍第13項所述之控制器,其中該控制器判斷所述區塊編號中的至少一者是否小於一區塊閾值,以產生一判斷結果,其中該區塊閾值等於全部可用的(available)區塊編號的最大值,且該判斷結果指出所述區塊編號中的該至少一者是否小於該區塊閾值;以及因應該判斷結果指出所述區塊編號中的該至少一者小於該區塊閾值,該控制器依據所述全部可用的區塊編號中的剩餘的區塊編號為索引,將所述未選取的平面的其它區塊以及該區塊省略表所記錄的區塊組成其它超級區塊。 The controller described in item 13 of the scope of patent application, wherein the controller determines whether at least one of the block numbers is less than a block threshold to generate a determination result, wherein the block threshold is equal to all available (available) the maximum value of the block number, and the judgment result indicates whether the at least one of the block numbers is less than the block threshold; and the judgment result indicates the at least one of the block numbers Less than the block threshold, the controller uses the remaining block numbers in the all available block numbers as an index, and removes other blocks of the unselected plane and the blocks recorded in the block omission table Form other super blocks. 如申請專利範圍第15項所述之控制器,其中所述剩餘的區塊編號包含所述區塊編號之後續區塊編號,所述未選取的平面的所述其它區塊包含對應於所述後續區塊編號之後續區塊,且所述其它超級區塊包含所述超級區塊之後續超級區塊。 The controller described in the scope of patent application, wherein the remaining block number includes the subsequent block number of the block number, and the other blocks of the unselected plane include corresponding to the The subsequent block of the subsequent block number, and the other super block includes the subsequent super block of the super block. 如申請專利範圍第15項所述之控制器,其中該控制器將所述區塊編號所形成的一區塊編號序列中的最後一個區塊編號和該區塊閾值比較,以產生該判斷結果,其中該最後一個區塊編號是所述區塊編號中的最大值。 The controller described in item 15 of the scope of patent application, wherein the controller compares the last block number in a block number sequence formed by the block number with the block threshold to generate the judgment result , Where the last block number is the maximum value among the block numbers. 如申請專利範圍第13項所述之控制器,其中該多個可能的值代表多個候選值,且該可能的值代表該多個候選值中的一候選值。 For the controller described in item 13 of the scope of patent application, the multiple possible values represent multiple candidate values, and the possible value represents a candidate value among the multiple candidate values.
TW108129939A 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof TWI718635B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010002481.5A CN111651371B (en) 2019-03-04 2020-01-02 Asymmetric plane management method, data storage device and controller thereof
US16/789,355 US11210005B2 (en) 2019-03-04 2020-02-12 Unbalanced plane management method, associated data storage device and controller thereof
US17/530,477 US11809723B2 (en) 2019-03-04 2021-11-19 Unbalanced plane management method, associated data storage device and controller thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962813169P 2019-03-04 2019-03-04
US62/813,169 2019-03-04

Publications (2)

Publication Number Publication Date
TW202034172A TW202034172A (en) 2020-09-16
TWI718635B true TWI718635B (en) 2021-02-11

Family

ID=73643533

Family Applications (3)

Application Number Title Priority Date Filing Date
TW108129939A TWI718635B (en) 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof
TW110145772A TWI781846B (en) 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof
TW110100036A TWI752784B (en) 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW110145772A TWI781846B (en) 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof
TW110100036A TWI752784B (en) 2019-03-04 2019-08-22 Unbalanced plane management method, associated data storage device and controller thereof

Country Status (1)

Country Link
TW (3) TWI718635B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022147448A (en) 2021-03-23 2022-10-06 キオクシア株式会社 Memory system and data management method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200847162A (en) * 2007-03-21 2008-12-01 Sandisk Corp Methods for storing memory operations in a queue
US20120191897A1 (en) * 2011-01-21 2012-07-26 Hynix Semiconductor Inc. Non-volatile memory system and management method thereof
US20150043277A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Data Storage System with Dynamic Erase Block Grouping Mechanism and Method of Operation Thereof
US20170352423A1 (en) * 2013-09-04 2017-12-07 Western Digital Technologies, Inc. Data retention flags in solid-state drives
TWI652679B (en) * 2017-12-08 2019-03-01 旺宏電子股份有限公司 Memory controller, memory system and control method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
KR102645572B1 (en) * 2016-11-29 2024-03-11 에스케이하이닉스 주식회사 Memory system and operating method thereof
KR20180083093A (en) * 2017-01-12 2018-07-20 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR102420025B1 (en) * 2017-06-19 2022-07-13 에스케이하이닉스 주식회사 Memory system and operation method for the same
TWI643065B (en) * 2017-12-20 2018-12-01 慧榮科技股份有限公司 Data storage device and operating method for dynamically executing garbage collection
TWI650763B (en) * 2018-05-14 2019-02-11 慧榮科技股份有限公司 Method, memory device and electronic device and page availability management system for performing page availability management of memory device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200847162A (en) * 2007-03-21 2008-12-01 Sandisk Corp Methods for storing memory operations in a queue
US20120191897A1 (en) * 2011-01-21 2012-07-26 Hynix Semiconductor Inc. Non-volatile memory system and management method thereof
US20150043277A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Data Storage System with Dynamic Erase Block Grouping Mechanism and Method of Operation Thereof
US20170352423A1 (en) * 2013-09-04 2017-12-07 Western Digital Technologies, Inc. Data retention flags in solid-state drives
TWI652679B (en) * 2017-12-08 2019-03-01 旺宏電子股份有限公司 Memory controller, memory system and control method

Also Published As

Publication number Publication date
TWI752784B (en) 2022-01-11
TW202125264A (en) 2021-07-01
TW202213103A (en) 2022-04-01
TWI781846B (en) 2022-10-21
TW202034172A (en) 2020-09-16

Similar Documents

Publication Publication Date Title
CN111651371B (en) Asymmetric plane management method, data storage device and controller thereof
US9098395B2 (en) Logical block management method for a flash memory and control circuit storage system using the same
US11416154B2 (en) Partially written block treatment
TWI506430B (en) Method of recording mapping information method, and memory controller and memory storage apparatus using the same
US8046526B2 (en) Wear leveling method and controller using the same
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9342371B2 (en) Boot partitions in memory devices and systems
US8296504B2 (en) Data management method and flash memory storage system and controller using the same
US10949291B2 (en) Partially written superblock treatment
US8417879B2 (en) Method for suppressing errors, and associated memory device and controller thereof
US9141530B2 (en) Data writing method, memory controller and memory storage device
US9965194B2 (en) Data writing method, memory control circuit unit and memory storage apparatus which performs data arrangement operation according to usage frequency of physical erasing unit of memory storage apparatus
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US20130332653A1 (en) Memory management method, and memory controller and memory storage device using the same
US11204698B2 (en) Memory controller to set operating environment of memory device, method of operating the same and storage device including the same
TWI718635B (en) Unbalanced plane management method, associated data storage device and controller thereof
CN110442299B (en) Data writing method, memory control circuit unit and memory storage device
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN112204533A (en) Data relocation in memory with two data portions