CN113590038A - Solid state disk and management method thereof - Google Patents
Solid state disk and management method thereof Download PDFInfo
- Publication number
- CN113590038A CN113590038A CN202110849829.9A CN202110849829A CN113590038A CN 113590038 A CN113590038 A CN 113590038A CN 202110849829 A CN202110849829 A CN 202110849829A CN 113590038 A CN113590038 A CN 113590038A
- Authority
- CN
- China
- Prior art keywords
- dies
- virtual
- die
- flash memory
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 239000007787 solid Substances 0.000 title claims abstract description 65
- 238000007726 management method Methods 0.000 title claims description 24
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 101100072644 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) INO2 gene Proteins 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 102100040381 Dol-P-Glc:Glc(2)Man(9)GlcNAc(2)-PP-Dol alpha-1,2-glucosyltransferase Human genes 0.000 description 2
- 101000890957 Homo sapiens Dol-P-Glc:Glc(2)Man(9)GlcNAc(2)-PP-Dol alpha-1,2-glucosyltransferase Proteins 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
The solid state disk comprises a controller and a flash memory, wherein the flash memory comprises a plurality of DIEs, and the controller executes the following operations aiming at each DIE: dividing the DIEs into virtual DIEs; establishing a plurality of RAID stripe groups by taking a plurality of virtual DIEs as a reference; establishing a mapping relation between a logical address and a physical address of data to be stored according to the length of the RAID stripe group; and storing data in a flash memory according to the mapping relation and accessing the flash memory. According to the solid state disk, one DIE is divided into the plurality of virtual operation units, the RAID stripe group is established, the length of the stripe group is changed, the space occupied by check data is saved, and the data protection capability is improved.
Description
Technical Field
The invention relates to the technical field of data storage, in particular to a solid state disk and a management method thereof.
Background
The Solid State Drive (SSD) is a storage hard disk manufactured by using a Solid State electronic storage chip, and mainly includes a controller, a storage medium, and a cache unit. The method has the advantages of high reading and writing speed, low power consumption, no noise and the like, and is widely applied to the fields of electronics, military and the like.
At present, the most popular solid state disk adopts a Flash Memory (Flash Memory) as a storage medium to store data, and in order to avoid problems such as bit flipping caused by particle wear, high temperature environment and the like, a decoding circuit (ECC code or LDPC code) is generally provided inside a controller of the solid state disk and used for data recovery and error correction processing. However, when the Flash grade is poor or the service life is at the end, and some application scenarios have higher requirements on data correctness, the decoding circuit may not completely meet the requirement on data correctness, and may not correctly decode the data in Flash. Therefore, the firmware design of the solid state Disk may consider using a RAID (Redundant Array of Independent disks) strategy to improve the data protection capability, and when the decoding circuit cannot correct the error, the existing RAID stripe group is used to recover the erroneous data.
Usually, a plurality of units DIE capable of independent concurrent operation are contained in the Flash of the SSD, and a plurality of RAID stripe groups can be established based on the plurality of DIE, so that data segments are stored in the stripe groups. The RAID stripe group comprises a data check stripe which is a result obtained by performing logic operation on data of other stripes, and when data in a certain position has errors, the stored data can be recovered through data operation among the stripes. However, because the RAID stripe group is small, the check data occupies a large space, and the space lost by the solid state disk is large.
Therefore, it is necessary to further improve the space utilization efficiency of the solid state disk and improve the data protection capability.
Disclosure of Invention
In view of the foregoing problems, an object of the present invention is to provide a method for managing a solid state disk and a solid state disk, so as to solve the problems in the prior art.
According to an aspect of the present invention, a method for managing a solid state disk is provided, where the solid state disk includes a controller and a flash memory, and the flash memory includes a plurality of DIE, where the controller performs the following operations for each DIE:
dividing the DIEs into virtual DIEs;
establishing a plurality of RAID stripe groups by taking a plurality of virtual DIEs as a reference;
establishing a mapping relation between a logical address and a physical address of data to be stored according to the length of the RAID stripe group;
and storing data in a flash memory according to the mapping relation and accessing the flash memory.
Optionally, the dividing the plurality of DIE into a plurality of virtual DIE includes:
splitting each of the DIEs into the same at least two virtual DIEs.
Optionally, the dividing the plurality of DIE into a plurality of virtual DIE includes:
merging every at least two of the DIEs into one of the virtual DIEs.
Optionally, each of the DIE includes a plurality of physical blocks, the virtual DIE is divided in units of physical blocks, and the number of the physical blocks included in each of the virtual DIE is the same.
Optionally, each of the physical blocks includes a plurality of rows of physical pages, each of the rows of physical pages being named by a different page number; the step of establishing a plurality of RAID stripe groups based on the plurality of virtual DIE includes:
numbering a plurality of the physical blocks in each of the virtual DIEs;
merging the physical pages with the same page number in the physical blocks with the same number in each virtual DIE into the same RAID stripe group;
and establishing a plurality of RAID stripe groups according to the numbering sequence and the page number sequence.
Optionally, the storage space corresponding to the DIE is the physical address, and the storage space corresponding to the virtual DIE is the logical address.
Optionally, the step of storing data in a flash memory and accessing the flash memory according to the mapping relationship includes:
storing the data to be stored in the physical address according to the mapping relation in a storage mode of a RAID stripe group;
and when the flash memory is accessed, converting the physical address into the logical address according to the mapping relation.
According to another aspect of the present invention, there is provided a solid state disk including:
a controller connected to the host for receiving write data from the outside; and
a flash memory coupled to the controller to receive the write data, the flash memory including a plurality of DIEs,
the controller is configured to divide each DIE into a plurality of virtual DIEs, and establish a plurality of RAID stripe groups based on each virtual DIE.
Optionally, each of the DIE includes a plurality of physical blocks, the virtual DIE is divided in units of physical blocks, and the number of the physical blocks included in each of the virtual DIE is the same.
Optionally, each of the DIEs includes at least two identical virtual DIEs, or each of at least two of the DIEs is merged into one virtual DIE.
According to the solid state disk and the management method thereof, provided by the invention, each DIE in the flash memory is divided into a plurality of virtual DIEs, and the RAID stripe group is established on the basis of the virtual DIE, so that the length of the RAID stripe group is increased (or reduced), the occupied space of check data in the RAID stripe group is correspondingly reduced (or improved), the requirement on RAID space is reduced (or improved), the data protection capability and the management capability are improved, and the read-write efficiency and the quality of the solid state disk are improved.
Drawings
The above and other objects, features and advantages of the present invention will become more apparent from the following description of the embodiments of the present invention with reference to the accompanying drawings, in which:
fig. 1 shows a schematic block diagram of a solid state disk according to an embodiment of the present invention;
FIG. 2 shows a schematic block diagram of a flash memory according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a RAID stripe group in a conventional solid state drive;
fig. 4 is a flowchart illustrating a method for managing a solid state disk according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram showing the inside of a flash memory in a solid-state hard disk according to a first embodiment of the present invention;
FIG. 6 is a schematic diagram of a RAID stripe group according to a first embodiment of the present invention;
fig. 7 shows a schematic structural diagram of the inside of a flash memory in a solid-state hard disk according to a second embodiment of the present invention.
Detailed Description
The invention will be described in more detail below with reference to the accompanying drawings. Like elements in the various figures are denoted by like reference numerals. For purposes of clarity, the various features in the drawings are not necessarily drawn to scale. In addition, certain well known components may not be shown.
The present invention will be described below based on examples, but the present invention is not limited to only these examples. In the following detailed description of the present invention, certain specific details are set forth. It will be apparent to one skilled in the art that the present invention may be practiced without these specific details. Well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.
Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise", "comprising", and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is, what is meant is "including, but not limited to". In the description of the present invention, it is to be understood that the terms "first," "second," and the like are used for descriptive purposes only and are not to be construed as indicating or implying relative importance. In addition, in the description of the present invention, "a plurality" means two or more unless otherwise specified.
The following detailed description of embodiments of the present invention is provided in connection with the accompanying drawings and examples.
Fig. 1 shows a schematic block diagram of a solid-state hard disk according to an embodiment of the present invention, and fig. 2 shows a schematic block diagram of a flash memory according to an embodiment of the present invention.
As shown in fig. 1, the solid state disk is a storage hard disk manufactured by using a solid state electronic memory chip, and the solid state disk 100 of the embodiment includes: the controller 110 is responsible for data management on the flash memory 120, and as a relay of data, the controller 110 connects the host 200 and the flash memory 120, and receives write data from the outside. The solid state disk 100 may further include a DRAM130 as a second cache unit for assisting the controller 110 in data processing.
Further, the controller 110 includes: an interface unit 111, a flash memory controller 112, a cache controller 113, a central processor 114 and a first cache unit 115. The interface unit 111 is connected to the external host 200 and the central processing unit 114, and implements data transmission, for example, data written by the host 200 is transmitted to the controller 110, and the common interface unit 111 has SATA, PCIe, and the like; the central processing unit 114 is, for example, a CPU, and is configured to control operations of various components in the solid state disk 100, for example, the central processing unit is connected to the first cache unit 115, and is configured to control storage and release of write data in the first cache unit 115, where the write data may be stored in the first cache unit 115, and the first cache unit 115 is an SRAM; the flash memory controller 112 is connected to the central processing unit 114 and the flash memory 120, and writes write data into the flash memory 120 according to the control of the central processing unit 114; the cache controller 113 is connected to the central processor 114 and the second cache unit 130, and the second cache unit 130 is a DRAM. In this embodiment, the controller 110 controls the flash memory controller 112 through its internal central processing unit 114, so as to control the flash memory 120.
The flash memory 120 is connected to the controller 110 and receives write data from the controller 110. The flash memory 120 includes a plurality of DIE121(Logical Unit, a minimum Unit in the flash memory 120 that can independently execute a command and report a command execution state, one flash memory 120 includes a plurality of DIE), the solid state disk 100 of this embodiment divides each DIE121 in the flash memory 120 into a plurality of Virtual DIE1211(Virtual DIE), and establishes a plurality of RAID stripe groups with each Virtual DIE1211 as a reference.
As shown in fig. 2, each flash memory 120 includes a plurality of DIE121, which are the smallest physical units within the flash memory 120 that can concurrently perform operations. Each DIE further includes a plurality of planes (operation surfaces), each Plane includes a plurality of blocks (physical blocks), each Block includes a plurality of pages (physical pages), where Block is a minimum unit for an erase operation and Page is a minimum unit for a read/write operation. A RAID stripe group may be formed in units of physical pages within the flash memory 120.
In this embodiment, taking an example that one flash memory 120 includes 4 DIE121(DIE0, DIE1, DIE2, and DIE3), each DIE121 includes at least two Virtual DIE1211, and each DIE121 in fig. 2 includes two Virtual DIE1211(Virtual DIE), so that the 4 DIE121 can be split into 8 Virtual DIE 1211. A structural schematic of the interior of each DIE121 is shown in the right side of fig. 2. Taking DIE1 as an example, each DIE121 includes a plurality of physical blocks, each identified by a Block number (designated by DIE 1Block 0, DIE 1Block1 … DIE 1Block M, and DIE 1Block M +1 … … Block T, T being, for example, 255). The DIE121 may be divided into a plurality of virtual DIE1211 according to the number of physical blocks, and in particular, the plurality of virtual DIE1211 in each DIE121 includes the same number of physical blocks. Thus, each virtual DIE1211 also includes a plurality of physical blocks, each of which is re-identified with a block number according to the same rule. DIE1 is divided into two Virtual DIE1211, namely, Virtual DIE1 and Virtual DIE 5, Virtual DIE1 comprises N +1 physical blocks (Virtual DIE 1Block 0-Virtual DIE 1Block N), a Virtual DIE 5 page comprises N +1 physical blocks (Virtual DIE 5Block 0-Virtual DIE 5Block N), and the total number of physical blocks of the two Virtual DIE1211 is equal to the number of all physical blocks in DIE 1.
In addition, the structure inside each physical block is also the same, specifically, each physical block includes a plurality of rows of physical pages, shown by row numbers (Page 0, Page 1 … … Page X), each row representing one Page. Taking a DIE comprising two planes (Plane 0 and Plane 1) as an example, then a Block contains two physical pages Page in a row. Taking a portion of each physical page on each virtual DIE1211 may constitute a RAID stripe group. Specifically, a physical page line having the same line number in a physical block having the same block number in all the virtual DIE1211 is set as one RAID stripe group, thereby obtaining a plurality of stripe groups, and the controller 110 receives write data and writes the write data one by one into each stripe group.
Fig. 3 is a schematic diagram illustrating RAID stripe groups in a conventional solid state disk.
As shown in fig. 3, one flash memory includes 4 DIE121, and in conjunction with fig. 2 and 3, the flash memory includes DIE0, DIE1, DIE2, and DIE 3. A plurality of physical pages with the same line number (Page 0) in the physical Block (Block N) with the same number in each DIE are formed into a RAID stripe group. The portion shown in the dashed box in fig. 3 is a band group, denoted by Stripe 0. Typically, a stripe comprises one or more physical pages Page, and several stripes together form a RAID stripe group, and the number of stripes comprised in the stripe group is the length of the RAID stripe group. According to the difference of RAID strategies, if any one of the stripes forming the RAID stripe group has an error, the data of the error stripe can be recovered by other stripes. In a common RAID5 policy, one stripe is used to store parity data, and the other stripes store write data, where the parity data is a result obtained by performing an exclusive or operation on each write data in the same stripe group, and if the write data of one stripe is lost, the lost write data may be obtained by performing an operation on the write data of the other stripe, so as to recover the write data.
For a solid state disk with only 4 DIE, the RAID stripe group may be composed in the following ways according to the difference that the stripe includes physical pages: strategy one: 1 plane of 1 DIE is a stripe, each row of physical pages has data protection, 1 DIE has 2 stripes, a RAID stripe group has 4 DIEs and 8 stripes, wherein 7 stripes store write data, and the 8 th stripe stores check data; and (2) strategy two: 2 planes of 1 DIE are a stripe, each row of physical pages has data protection, 1 DIE has 1 stripe, a RAID stripe group has 4 DIEs and 4 stripes, wherein 3 stripes store write data, and the 4 th stripe stores check data; strategy three: 1 plane of 1 DIE is a stripe, multiple rows of physical pages (e.g., 4 rows, pages 0-3) have one data protection, 1 DIE has 8 stripes, a RAID stripe group has 4 DIE, 32 stripes, of which 31 stripes store write data, and the 32 th stripe stores parity data; and (4) strategy four: 2 planes of 1 DIE are a stripe, multiple rows of physical pages (e.g., 4 rows, pages 0-3) have one data protection, 1 DIE has 4 stripes, a RAID stripe group has 4 DIE, 16 stripes, of which 15 stripes store write data and the 16 th stripe stores parity data. When the RAID with the policy three or the policy four is used to protect data, if there are unrecoverable errors in consecutive rows of physical pages (for example, Page 1 and Page2 at the same time) in the same DIE, at least two stripes in one stripe group have data errors and cannot be corrected by RAID, so the solid state disk generally uses this storage method less. When the policy one and the policy two are used, although each row can recover data in the corresponding stripe group when physical page errors of the consecutive rows occur, a larger space for checking the data is needed, for example, the policy one solid state disk needs to lose available space of 1/8 for storing the check data, and the policy two loses available space of 1/4. This is a huge loss of space to the solid state disk.
The invention improves the traditional solid state disk, so that the required space of the RAID can be reduced, and a better data protection function is achieved. Therefore, the present invention further provides a management method for a solid state disk, which is specifically described with reference to fig. 4 to 7.
Fig. 4 shows a flowchart of a management method of a solid state disk according to an embodiment of the present invention.
In the management method of the solid state disk in the embodiment of the invention, the solid state disk can increase the number of DIEs by constructing the virtual DIE, so that the length of a RAID stripe group is increased, and the requirement on RAID space is reduced.
With reference to fig. 2 and fig. 4, the management method for the solid state disk 100 of the present embodiment is executed by the controller 110, and specifically includes the following steps:
in step S101, the plurality of DIE are divided into a plurality of virtual DIE. In this step, each DIE121 is divided into a plurality of virtual DIE1211, and the number of virtual operation units 1211 is in a multiple relationship with the number of DIE 121. In the present invention, one DIE121 may be divided into a plurality of virtual DIEs 1211 (embodiments shown in fig. 4-6), and in addition, a plurality of DIEs 121 may be combined into one virtual DIE1211 (embodiment shown in fig. 7).
In step S102, a plurality of RAID stripe groups are established with reference to the plurality of virtual DIE. In this step, since the virtual DIE1211 is actually part of the DIE121, it may be regarded as a new DIE121, and the virtual DIE1211 replaces the DIE121 to establish a RAID stripe group, where the new RAID stripe group is established based on the virtual DIE 1211. Then, since the number of virtual DIE1211 is different from the number of DIE121, the length of the RAID stripe group is changed. Taking the policy one mentioned in fig. 3 as an example, if there are 4 DIE121, there are only 8 stripes in a RAID stripe group when the virtual DIE is not divided; if the partition is 8 virtual DIEs, a RAID stripe group has 16 stripes.
In step S103, a mapping relationship between the logical address and the physical address of the data to be stored is established according to the length of the RAID stripe group. In this step, a mapping relationship between DIE121 and virtual DIE1211 needs to be established. Then, after the solid state disk 100 is powered on, a mapping relationship between the virtual DIE and the actual DIE is first constructed, and a relationship between a logical address and a physical address of data to be stored is established, where the data to be stored is, for example, write data. Different virtual levels can be set according to different data management requirements, but it is required to ensure that the mapping relationships constructed after the solid state disk 100 is powered on every time are the same in the same batch of operations. It should be understood that, since the unit of reading and writing of the flash memory 120 is a page, and the size of the page is generally 4KB or 8KB, but the write data sent via the host 200 is generally performed according to the sector size of the hard disk (generally 512 bytes), the write data received from the host 200 needs to be converted into write data organized in units of pages of the flash memory, but the host 200 also needs to access the write data, and therefore needs to establish address mapping relationship data of logical addresses (the subsequent host 200 can access the write data based on the logical addresses) and physical addresses (for specifying the storage locations of the actual write data in the flash memory 120). For example, the location actually stored on the DIE1211 is the physical address of the data, and the location on the virtual DIE is the logical address.
In step S104, the data is stored in the flash memory and the flash memory is accessed according to the mapping relationship. The method comprises the following steps: storing the data to be stored in the physical address according to the mapping relation and the storage mode of the RAID stripe group; when accessing the flash memory 120, the physical address is converted into a logical address according to the mapping relationship.
Specifically, in this step, the solid state disk 100 manages various data in the DIE1211 according to the mapping relationship during the operation process. Before accessing the flash memory 120, the data is translated to the logical address according to the mapping relationship. For example, the controller 110 continuously receives write data transmitted by the host 200. If the mapping relationship is already established during the operation of the solid state disk 100, after receiving the write data, the controller 110 manages various data in the DIE1211 according to the mapping relationship, and writes the write data into the real physical address according to the mapping relationship. Further, when the host 200 accesses the memory 120, a logical address of the user data is obtained, and a physical address at which the user data is obtained is searched with the logical address as an index.
Further, according to the first strategy mentioned in fig. 3, for each stripe group, the write data is first written into all physical pages before the last physical page of the stripe group one by one, and then the check data is generated and written into the last physical page of the stripe group.
Therefore, the adjustment of the length of the RAID stripe group is realized, the length of the RAID stripe group is changed while data protection is realized, the required space of the RAID is changed, and the data protection capability is improved.
Fig. 5 is a schematic structural diagram showing the inside of a flash memory in a solid-state hard disk according to a first embodiment of the present invention; FIG. 6 shows a schematic diagram of a RAID stripe group according to a first embodiment of the present invention.
As shown in FIG. 5, in the first embodiment, the DIEs 121 are divided into Virtual DIEs 1211 and the internal structure of each Virtual DIE1211 refers to FIG. 2. As shown in FIG. 5, an original DIE 0 is split into a current Virtual DIE 0 and a current Virtual DIE 4, a DIE1 is split into a Virtual DIE1 and a Virtual DIE 5, a DIE 2 is split into a Virtual DIE 2 and a Virtual DIE 6, and a DIE 3 is split into a Virtual DIE 3 and a Virtual DIE 7. each Virtual DIE1211 can be regarded as a DIE121, and thus the number of DIEs 121 that can be regarded as being used for establishing a RAID stripe group is increased. The method can support the solid state disk with the smaller DIE number to adopt the RAID of the strategy one and the strategy two to protect data, reduce the RAID resource overhead and achieve the purpose of improving the data protection capability of the solid state disk.
The step of establishing a plurality of RAID stripe groups with reference to the plurality of virtual operation units 1211 includes: numbering a plurality of physical blocks in each virtual operation unit 1211; merging the physical pages with the same row number in the physical blocks with the same block number in each virtual operation unit 1211 into the same RAID stripe group; a plurality of RAID stripe groups are established in the order of block numbers and the order of row numbers. Each RAID stripe group includes a plurality of stripes occupying the same space, and each row of physical pages of each virtual DIE1211 includes two physical pages, and each stripe includes one or two physical pages. One of the stripes is used for storing the check data, and the other stripes are used for storing the write data to be stored. The method can support the solid state disk with larger DIE number to adopt RAID protection data of a strategy one and a strategy two, reduce the RAID stripe length and improve the data protection capability of the solid state disk.
Referring to fig. 6, the same Block N of all Virtual operation units 1211 is selected, and Plane 0 of Page 0 of Virtual DIE 0 is represented by (0, 0), and Plane 1 of Page 0 of Virtual DIE1 is represented by (1, 1) … …, so that a RAID Stripe group created by the first row (Page 0) physical pages of 8 Virtual DIE1211 is Stripe 1, and the Stripe group is merged by physical pages with the same Page number in the same number physical blocks in each Virtual DIE 1211. Taking the policy one as an example, then, the stripe group includes 16 stripes, and (7, 1) as the storage location of the parity information, and the other stripes store data, compared with fig. 3, in the same flash memory, in the RAID stripe group of this embodiment, the occupied space of the parity information is reduced to 1/16, which saves half the space compared with the original 1/8, and therefore, the space requirement for the RAID is reduced. The 8 virtual DIE1211 can establish a plurality of RAID stripe groups, the occupied space of the whole check data is reduced by 1/2 compared with the original check data, the occupied space of the write data is increased, and the data can be effectively protected. In addition, if more virtual DIEs 1211 are constructed (i.e., splitting a DIE into 3 or even more virtual DIEs), the space requirement drops even more.
Fig. 7 shows a schematic structural diagram of the inside of a flash memory in a solid-state hard disk according to a second embodiment of the present invention.
In the second embodiment, dividing the plurality of DIE121 into the plurality of virtual DIE1211 includes: each at least two of the DIE121 are merged into a virtual DIE 1211. As shown in fig. 7, the original 2 DIE121 are merged into one virtual DIE1211, and taking the example that the original storage granule includes 8 DIE, after merging, 4 virtual DIE are formed. Taking strategy one as an example, when a RAID stripe group is established, the length of the stripe group is reduced, and the occupied space of the check information is increased. For the solid state disk with large storage space, because each line of physical pages can form an RAID stripe, and the check data is increased, the error rate of the data is reduced, and the data recovery rate is improved.
Therefore, the solid state disk management method and the solid state disk provided by the embodiment of the application can be applied to different scenes, and for the solid state disks with smaller DIE number, the management method of the first embodiment can be adopted, so that the RAID resource overhead is reduced, the data storage space is enlarged, the solid state disks with smaller capacity can store data as much as possible, and the effect of improving the data protection capability of the solid state disks is achieved. The data protection of the solid state disk with a large DIE number can also be supported, and by adopting the management method of the second embodiment, the RAID stripe length is reduced, the error rate of data storage is reduced, the check rate is improved, and the data protection capability of the solid state disk is improved. The management method can be changed at any time according to actual conditions, the management method of the first embodiment is adopted for some solid state disks, the management method of the second embodiment is adopted for others, and the protection capability of the solid state disk on key data is improved.
In summary, according to the management method for the solid state disk and the solid state disk provided by the invention, the DIE inside the flash memory is divided into the plurality of virtual operation units, and the RAID stripe group is established on the basis of the virtual operation units, so that the length of the RAID stripe group is increased, the occupied space of the check data in the RAID stripe group is correspondingly reduced, the requirement on the RAID space is reduced, the data protection capability and the management capability are improved, and the read-write efficiency and the quality of the solid state disk are improved.
While embodiments in accordance with the invention have been described above, these embodiments are not intended to be exhaustive or to limit the invention to the precise embodiments described. Obviously, many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. The invention is limited only by the claims and their full scope and equivalents.
Claims (10)
1. A management method of a solid state disk, the solid state disk comprising a controller and a flash memory, the flash memory comprising a plurality of DIEs, wherein the controller performs the following operations for each of the DIEs:
Dividing the DIEs into virtual DIEs;
establishing a plurality of RAID stripe groups by taking a plurality of virtual DIEs as a reference;
establishing a mapping relation between a logical address and a physical address of data to be stored according to the length of the RAID stripe group;
and storing data in a flash memory according to the mapping relation and accessing the flash memory.
2. The management method as claimed in claim 1, wherein the dividing of the plurality of DIEs into a plurality of virtual DIEs comprises:
splitting each of the DIEs into the same at least two virtual DIEs.
3. The management method as claimed in claim 1, wherein the dividing of the plurality of DIEs into a plurality of virtual DIEs comprises:
merging every at least two of the DIEs into one of the virtual DIEs.
4. The management method as claimed in claim 1, wherein each of the DIEs includes a plurality of physical blocks, the virtual DIEs are divided in units of physical blocks, and the number of the physical blocks included in each of the virtual DIEs is the same.
5. The management method according to claim 4, wherein each of the physical blocks includes a plurality of rows of physical pages, the rows of physical pages being named with different page numbers, respectively; the step of establishing a plurality of RAID stripe groups based on the plurality of virtual DIE includes:
Numbering a plurality of the physical blocks in each of the virtual DIEs;
merging the physical pages with the same page number in the physical blocks with the same number in each virtual DIE into the same RAID stripe group;
and establishing a plurality of RAID stripe groups according to the numbering sequence and the page number sequence.
6. The management method as claimed in claim 1, wherein the storage space corresponding to the DIE is the physical address, and the storage space corresponding to the virtual DIE is the logical address.
7. The management method of claim 1, wherein the storing data in a flash memory and accessing the flash memory according to the mapping relationship comprises:
storing the data to be stored in the physical address according to the mapping relation in a storage mode of a RAID stripe group;
and when the flash memory is accessed, converting the physical address into the logical address according to the mapping relation.
8. A solid state disk, comprising:
a controller connected to the host for receiving write data from the outside; and
a flash memory coupled to the controller to receive the write data, the flash memory including a plurality of DIEs,
The controller is configured to divide each DIE into a plurality of virtual DIEs, and establish a plurality of RAID stripe groups based on each virtual DIE.
9. The solid state disk of claim 8, wherein each of the DIEs includes a plurality of physical blocks, the virtual DIEs are divided in units of physical blocks, and the number of the physical blocks included in each of the virtual DIEs is the same.
10. The solid state disk of claim 8, wherein each of the DIEs includes at least two identical virtual DIEs, or each at least two DIEs are merged into one virtual DIE.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110849829.9A CN113590038A (en) | 2021-07-27 | 2021-07-27 | Solid state disk and management method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110849829.9A CN113590038A (en) | 2021-07-27 | 2021-07-27 | Solid state disk and management method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590038A true CN113590038A (en) | 2021-11-02 |
Family
ID=78250288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110849829.9A Pending CN113590038A (en) | 2021-07-27 | 2021-07-27 | Solid state disk and management method thereof |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590038A (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620518A (en) * | 2009-08-21 | 2010-01-06 | 杭州华三通信技术有限公司 | Method and apparatus for creating redundancy array in disc RAID |
CN102880428A (en) * | 2012-08-20 | 2013-01-16 | 华为技术有限公司 | Distributed RAID (redundant array of independent disks) establishing method and device |
WO2015114754A1 (en) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | Storage device |
CN105573681A (en) * | 2015-12-31 | 2016-05-11 | 湖南国科微电子股份有限公司 | Method and system for establishing RAID in SSD |
CN107562643A (en) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | A kind of solid state hard disc RAID management methods |
CN108984133A (en) * | 2018-08-27 | 2018-12-11 | 杭州阿姆科技有限公司 | The implementation method of RAID in a kind of SSD |
CN112947869A (en) * | 2021-04-25 | 2021-06-11 | 联芸科技(杭州)有限公司 | Solid state disk and write operation method |
-
2021
- 2021-07-27 CN CN202110849829.9A patent/CN113590038A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620518A (en) * | 2009-08-21 | 2010-01-06 | 杭州华三通信技术有限公司 | Method and apparatus for creating redundancy array in disc RAID |
CN102880428A (en) * | 2012-08-20 | 2013-01-16 | 华为技术有限公司 | Distributed RAID (redundant array of independent disks) establishing method and device |
WO2015114754A1 (en) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | Storage device |
CN105573681A (en) * | 2015-12-31 | 2016-05-11 | 湖南国科微电子股份有限公司 | Method and system for establishing RAID in SSD |
CN107562643A (en) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | A kind of solid state hard disc RAID management methods |
CN108984133A (en) * | 2018-08-27 | 2018-12-11 | 杭州阿姆科技有限公司 | The implementation method of RAID in a kind of SSD |
CN112947869A (en) * | 2021-04-25 | 2021-06-11 | 联芸科技(杭州)有限公司 | Solid state disk and write operation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101459861B1 (en) | Stripe-based memory operation | |
US7984325B2 (en) | Storage control device, data recovery device, and storage system | |
EP2646919B1 (en) | Transaction log recovery | |
JP2018517213A (en) | Stripe mapping in memory | |
US10467074B2 (en) | Conditional journal for storage class memory devices | |
US9063869B2 (en) | Method and system for storing and rebuilding data | |
CN107221351B (en) | Optimization processing method of error correcting code in solid-state disk system and application thereof | |
CN107885620B (en) | Method and system for improving performance and reliability of solid-state disk array | |
CN103714010B (en) | Storage device write-in method and storage device | |
CN109739777B (en) | Reliable flash memory storage method and system based on local and distributed collaborative design | |
US11294598B2 (en) | Storage devices having minimum write sizes of data | |
CN113555057A (en) | Implementation method for expanding solid state disk mapping table unit | |
US20100313101A1 (en) | Memory system and computer system | |
CN117149062A (en) | Processing method and computing device for damaged data of magnetic tape | |
JP7407230B2 (en) | ecc parity bias for key value data storage devices | |
CN115237351B (en) | NAND block dynamic remapping and read-write command processing method and storage device | |
JP5908106B2 (en) | Device and method for storing validity mask and operating device | |
US11609855B2 (en) | Bit masking valid sectors for write-back coalescing | |
CN113590038A (en) | Solid state disk and management method thereof | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN117785025B (en) | Method for optimizing SSD read performance by ECC (hard disk drive) and RAID5 hybrid coding | |
CN117149075A (en) | RAID (redundant array of independent disks) implementation method and device based on DRAM-less solid state disk | |
CN114822630A (en) | Hybrid NVME SSD storage system based on MRAM cache | |
CN117667873A (en) | Log file processing method and device | |
CN116263643A (en) | Storage class memory, data processing method and processor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310051 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province Applicant after: Lianyun Technology (Hangzhou) Co.,Ltd. Address before: 6 / F, block C1, spotlight center, 459 Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province, 310051 Applicant before: MAXIO TECHNOLOGY (HANGZHOU) Ltd. |