CN108804045B - Bad block table establishing method and related device - Google Patents

Bad block table establishing method and related device Download PDF

Info

Publication number
CN108804045B
CN108804045B CN201810688090.6A CN201810688090A CN108804045B CN 108804045 B CN108804045 B CN 108804045B CN 201810688090 A CN201810688090 A CN 201810688090A CN 108804045 B CN108804045 B CN 108804045B
Authority
CN
China
Prior art keywords
bad block
target
block table
pages
bad
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.)
Active
Application number
CN201810688090.6A
Other languages
Chinese (zh)
Other versions
CN108804045A (en
Inventor
陈庆陆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810688090.6A priority Critical patent/CN108804045B/en
Publication of CN108804045A publication Critical patent/CN108804045A/en
Application granted granted Critical
Publication of CN108804045B publication Critical patent/CN108804045B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention discloses a bad block table establishing method, a system, a device and a computer readable storage medium, the bad block table for each stripe can be written to the corresponding data frame, and flushed to the flash following the user data when the SSD is written, when the power is on again after abnormal power failure, the bad block table of the corresponding stripe can be obtained by obtaining the bad block table in the target data frame, so as to obtain the SSD global bad block table, since the bad block table of the stripe is written into DF and flushed to flash, when the bad block table of each flushed stripe is obtained, the obtained result can be the most real and accurate bad block table, and simultaneously, the condition that the bad block table is constructed according to the read block state is avoided, or the bad block table is constructed in a calculation mode, so that the occurrence of SSD read-write failure or SSD capacity reduction caused by an old bad block table is avoided, and the stability and reliability of the SSD are enhanced.

Description

Bad block table establishing method and related device
Technical Field
The present invention relates to the field of SSD technology, and more particularly, to a method, system, apparatus, and computer readable storage medium for creating a bad block table.
Background
At present, bad blocks, namely bad blocks, usually appear in a Solid State Drive (SSD), and the bad blocks are damaged in the SSD and can not be read and written any more, and there are two types of factory bad blocks and growth bad blocks. The growing bad block is a block which is worn gradually by normal block erasing and writing and loses the reading and writing functions in the use process of the SSD. The SSD may manage all blocks by constructing a global block bitmap table (bad block bitmap table) in the DDR. Each bit of Bitmap represents a block, 1 represents the block as bad, and 0 represents the block as good. The SSD can avoid bad blocks by searching the bad block table during use.
When the SSD is powered down, the latest bad block table in the DDR can be flashed into the flash through regular flashing. When the SSD is normally powered on, the bad block table can be recovered by reading the flash of the corresponding address. However, when the power is abnormally turned off, the energy storage capacitor in the SSD may continuously supply power to the SSD, and before the energy storage capacitor is exhausted, the latest bad block table may not be completely written. If the above situation occurs, after the SSD is powered on again, only one sub-new bad block table can be obtained, thereby missing a newly generated bad block.
Currently, full disk block erasing can be performed, a bad block table is constructed through reading a feedback state, the method can obtain an accurate bad block table, and all data stored in the SSD can be lost; in addition, a bad block table can be constructed by reading feedback states in a mode of scanning and reading all blocks of the whole disk, but data are stored in the blocks, and a plurality of reading error states can be fed back when the data are read out incorrectly; at this time, the bad block table, which is constructed only by several of the error states, is not accurate, and a good block may be considered as a bad block, directly reducing the usable capacity of the SSD disk.
Therefore, how to obtain an accurate bad block table is a problem to be solved by those skilled in the art.
Disclosure of Invention
The invention aims to provide a bad block table establishing method, a bad block table establishing system, a bad block table establishing device and a computer readable storage medium, so as to obtain an accurate bad block table.
In order to achieve the above purpose, the embodiment of the present invention provides the following technical solutions:
a bad block table establishing method comprises the following steps:
writing a bad block table of each stripe into a data frame corresponding to each stripe, and writing data of the data frame into a flash;
reading a bad block table in a target data frame in each stripe to obtain a read result;
and updating the SSD global bad block table by using the reading result.
The stripes comprise a first preset number of common blocks used for storing user data; and 1 parity block, wherein the parity block stores the data XOR result of the common block; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
Reading a bad block table in a target data frame in each stripe to obtain a read result, wherein the reading comprises:
determining a super page in each of the stripes; the super pages are all second preset number pages in each strip; each block of the stripe comprises pages numbered according to the same numbering mode;
determining two target pages in the super pages;
respectively obtaining bad block tables of the strips of the super pages stored in the target data frames of the two target pages to obtain two target bad block tables;
and determining the reading result by utilizing the target bad block table.
Wherein the determining the read result using the target bad block table comprises:
judging whether the two target bad block tables are the same;
if yes, determining any one target bad block table as the reading result;
if not, determining the target bad block table which is not zero as the reading result.
The obtaining of the bad block tables of the stripes to which the super pages belong, which are stored in the target data frames of the two target pages, respectively, to obtain the two target bad block tables includes:
s401, respectively obtaining bad block tables of the stripes of the super pages stored in the target data frames of the two target pages;
s402, judging whether two target bad block tables are obtained or not;
s403, if yes, executing the step of determining the reading result by using the target bad block table;
s404, if not, determining that the number of the target bad block tables is not obtained as a failure number;
s405, determining the target pages with the failure number in the pages of the super page which do not try to acquire the target bad block table; returning to S401.
After S404, the method further includes:
adding the failure number to a historical failure number, and judging whether the historical failure number is greater than a preset threshold value;
if so, stopping operation, recording the bad block tables of the bands to which the super pages belong as all blocks as bad blocks, obtaining new bad block tables corresponding to the bands to which the super pages belong, and taking the new bad block tables as target bad block tables;
if not, go to S405.
In order to solve the above technical problem, the present application further provides a bad block table creating system, including:
a writing module for writing the bad block table of each stripe into the data frame corresponding to each said stripe;
the reading module is used for reading a bad block table in the target data frame in each stripe to obtain a reading result;
and the updating module is used for updating the SSD global bad block table by using the reading result.
The stripes comprise a first preset number of common blocks used for storing user data; and 1 parity block, wherein the parity block stores the data XOR result of the common block; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
The present application further provides a bad block table creating apparatus, including:
a memory for storing a computer program;
a processor for implementing the steps of the bad block table creation method when executing the computer program.
The present application further provides a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, performs the steps of the bad block table creating method as described.
According to the scheme, the method for establishing the bad block table comprises the following steps: writing a bad block table of each stripe into a data frame corresponding to each stripe, and writing data of the data frame into a flash; reading a bad block table in a target data frame in each stripe to obtain a read result; and updating the SSD global bad block table by using the reading result.
Therefore, the bad block table establishing method provided by the application can write the bad block table of each strip into the corresponding data frame and write the bad block table into the flash along with the user data when the SSD is written, and can obtain the bad block table of the corresponding strip by obtaining the bad block table in the target data frame when the power is on again after abnormal power failure, so as to obtain the SSD global bad block table.
The application also provides a bad block table establishing system, a bad block table establishing device and a computer readable storage medium, and the technical effects can be achieved.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a flowchart of a bad block table creation method according to an embodiment of the present invention;
fig. 2 is a flowchart of a specific bad block table establishment method disclosed in the embodiment of the present invention;
FIG. 3 is a flowchart of a specific bad block table establishment method disclosed in the embodiments of the present invention;
FIG. 4 is a flowchart of a specific bad block table establishment method disclosed in the embodiments of the present invention;
FIG. 5 is a schematic structural diagram of a specific bad block table creation system according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of a specific bad block table creating device according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The embodiment of the invention discloses a bad block table establishing method, a system, a device and a computer readable storage medium, which are used for obtaining an accurate bad block table.
Referring to fig. 1, a method for establishing a bad block table according to an embodiment of the present invention specifically includes:
s101, writing the bad block table of each strip into the data frame corresponding to each strip, and writing the data of the data frame into the flash.
In this scheme, when writing an SSD (Solid State drive), that is, when performing a write operation on the SSD, the bad block table of each stripe is written into a control meta of each data frame (data frame, abbreviated as DF) in the stripe, that is, the SSD controller writes the stripe filled with user data into a flash each time, where each page in the stripe corresponds to one page in the flash block.
S102, reading a bad block table in the target data frame in each stripe to obtain a reading result.
Specifically, when the SSD is powered off abnormally, the bad block table in the target data in each strip is read after the SSD is powered on, and a read result is obtained.
And when the SSD is abnormally powered off and then powered on, executing a deep recovery process, and scanning and reading control meta areas of two different blocks with the same number DF in the same stripe through a full disk to obtain a bad block table of the stripe and update the bad block table to a corresponding position of a global bad block table in a DDR (Double Data Rate). And after the full-disk scanning is finished, an accurate bad block table can be obtained.
It should be noted that in the present scheme, a stripe includes a first preset number of ordinary blocks and 1 parity block, where the parity block stores a data xor result of the ordinary blocks; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
For example, in a stripe, 15+1 blocks may be included, i.e. 15 normal blocks and 1 parity block, and the 16 blocks are respectively the same numbered blocks, e.g. numbered 1, from different luns.
More specifically, a super page buffer for buffering user data is created in the DDR: the super page adopts the Raid5 mechanism of Adaptive Raid, and supports 15+1 at most. In logic implementation, the SSD space may be organized in partitions. For example, the physical space of 32TB is divided into 4 zones (partitions), each managed by one controller core, each zone containing 8TB and 16 channels. In a Partition, several super luns are included, each super lun consisting of four different luns of four channels (four luns in different targets). Within a super lun, blocks of the same block number make up a super block, a super block being a Raid stripe.
One super block contains 15+1 blocks, 15 for user data storage and 1 for parity check block. The data of the Parity block is XOR-filled with the data of the other 15 blocks.
Within a super block, pages of the same page number make up a super page. As shown in Table 1, each of the super pages consists of 4KB data frames, each with a control meta area of 16 Bytes. Wherein 2Bytes represents the bad block bitmap of the super block, namely the bad block table of the super block, each bit indicates the good or bad condition of the block, 1 indicates that the block is the bad block, and 0 indicates that the block is the good block.
TABLE 1
Figure BDA0001712204370000061
In a super block, the bad block bitmaps stored in the control meta area of all the user data frame are the same; and the bad block bitmap stored in the control meta area of the data frame in the parity block has a value of 0 or the same value as the user data because of the XOR calculation.
S103, updating the SSD global bad block table by using the reading result.
Specifically, the global bad block table of the SSD may be updated with the obtained bad block table of each stripe.
Therefore, according to the bad block table establishing method provided by the embodiment of the application, when the SSD is written, the bad block table of each strip is written into the corresponding data frame and is written into the flash along with the user data, when the power is on again after abnormal power failure, the bad block table of the corresponding strip can be obtained by obtaining the bad block table in the target data frame, and then the SSD global bad block table is obtained.
A specific bad block table establishing method provided in the embodiment of the present application is introduced below, and unlike the above embodiment, the embodiment of the present invention further defines and describes S102 in the above embodiment, and other step contents and the above embodiment may be referred to each other, and are not described herein again.
Referring to fig. 2, S102 of a specific bad block table establishing method provided in the embodiment of the present application includes:
s201, determining a super page in each strip; the super pages are all second preset number pages in each strip; each block of the stripe comprises pages numbered according to the same numbering mode.
It should be noted that the stripe includes a first preset number of blocks, and each block includes a preset number of pages, where the pages in each block are numbered in the same manner, for example, from page0 to page 15. A super page is determined in all blocks of the stripe, wherein the super page is all pages with a certain number in the stripe, for example, the super page is the first page in all blocks of the stripe, namely 16 pages 0, and the super pages are respectively used as pages 0 to 15 of the super page.
S202, determining two target pages in the super pages.
After a super page is determined, two target pages are determined in the super page, preferably the first two pages, such as pages 0 and 1 in the super page.
S203, respectively obtaining the bad block tables of the stripes of the super page stored in the target data frames of the two target pages to obtain two target bad block tables.
Specifically, each page includes a data frame, for example, four data frames. In the scheme, one data frame is determined in each page as a target data frame, and preferably the first DF, i.e. DF0, is used as the target data frame.
It should be noted that each data frame in each page stores a bad block table of the whole stripe corresponding to the block to which the page belongs. In this scheme, if a super block consists of 16 blocks, the corresponding super page has the same number of pages from the 16 blocks, and also has 16 pages. Two target pages are determined in the 16 pages, and a band bad block table stored in one data frame in the target pages is obtained, so that an accurate bad block table of the band can be determined.
And S204, determining the reading result by using the target bad block table.
Specifically, after the target bad block table is obtained, the reading result can be determined.
Referring specifically to fig. 3, the method of determining the reading result may be seen in the following steps:
s301, judging whether the two target bad block tables are the same;
s302, if yes, determining any one target bad block table as the reading result;
and S303, if not, determining a target bad block table which is not zero as the reading result.
It should be noted that, for example, 16 pages correspond to 16 blocks, and the bad block tables stored in the first 15 blocks should all be the same bad block table corresponding to the stripe, so if a target page is from the first 15 pages, it may be determined that the bad block table stored in any target page is used as the read result, and since the last block stores the xor result of the previous block, it may be 0, and may also be the same as the previous one, therefore if the bad block tables obtained from the two target pages are different, there must be a value 0, and the value 0 is the storage result of the parity block, so the bad block table that is not 0, that is, the bad block table corresponding to the previous general block, is selected.
A specific bad block table establishing method provided in this embodiment of the present application is introduced below, and different from the foregoing embodiment, the specific bad block table establishing method provided in this embodiment of the present application further defines and describes S203 in the foregoing embodiment, and other steps are substantially the same as those in the foregoing embodiment, and are not described here again.
Referring to fig. 4, S203 specifically includes:
s401, bad block tables of the stripes of the super pages stored in the target data frames of the two target pages are respectively obtained.
S402, judging whether two target bad block tables are obtained or not.
In the scheme, considering that there is a possibility that two target bad block tables cannot be successfully acquired when the two target bad block tables are acquired, after the bad block tables of the band to which the super page belongs, which are stored in the target data frames of the two target pages, are acquired, whether the two target bad block tables are acquired is judged, if both the two bad block tables are successfully acquired, a reading result is determined, and otherwise, the two bad block tables are required to be acquired again according to the number of unsuccessful blocks.
And S403, if yes, executing the step of determining the reading result by using the target bad block table.
S404, if not, determining that the number of the target bad block tables is not obtained as the failure number.
Specifically, if two target bad block tables are not obtained, it is determined that the number of target bad block tables is not obtained as the number of failures, for example, when 0 target bad block table is obtained, the number of failures is 2, and when 1 target bad block table is obtained, the number of failures is 1.
S501, adding the failure number to a history failure number, and judging whether the history failure number is larger than a preset threshold value.
Specifically, the determined number of failures is added to the historical number of failures, and it is determined whether the historical number of failures of the accumulated failures corresponding to the stripe reaches a preset value, for example, when the stripe is 15+1 blocks, and the historical number of failures is greater than 7, it is determined that the historical number of failures is greater than a preset threshold.
And S502, if yes, stopping operation, recording the bad block tables of the bands to which the super pages belong as all blocks as bad blocks, obtaining new bad block tables corresponding to the bands to which the super pages belong, and taking the new bad block tables as target bad block tables.
Specifically, if the number of historical failures is greater than the preset threshold, the corresponding whole stripe is marked as a bad block, that is, all blocks corresponding to the stripe are bad blocks.
S503, if not, executes S405.
S405, determining the target pages with the failure number in the pages of the super page which do not try to acquire the target bad block table; returning to S401.
If the historical failure number does not exceed the preset threshold, determining the failure number of this time, for example, 1, acquiring 1 target page from all other pages in the super page which have not attempted to acquire the target bad block table according to the failure number, and returning to S401.
In the following, a bad block table creating system provided in the embodiments of the present application is introduced, and a bad block table creating system described below and the embodiments described above may be referred to each other.
Referring to fig. 5, a system for establishing a bad block table provided in the embodiment of the present application specifically includes:
a writing module 501, configured to write the bad block table of each stripe into the data frame corresponding to each stripe;
a reading module 502, configured to read a bad block table in the target data frame in each stripe to obtain a read result;
an updating module 503, configured to update the SSD global bad block table with the read result.
The stripes comprise a first preset number of common blocks used for storing user data; and 1 parity block, wherein the parity block stores the data XOR result of the common block; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
The bad block table establishing system of this embodiment is used to implement the above-mentioned bad block table establishing method, and thus a specific implementation manner in the bad block table establishing system may refer to the embodiment portions of the bad block table establishing method in the foregoing, for example, the writing module 501, the reading module 502, and the updating module 503, which are respectively used to implement steps S101, S102, S103, and S104 in the above-mentioned bad block table establishing method, so that the specific implementation manner thereof may refer to descriptions of corresponding respective portion embodiments, and is not described herein again.
In the following, a bad block table creating apparatus provided in the embodiment of the present application is introduced, and a bad block table creating apparatus described below and a bad block table creating method described above may be referred to each other.
Referring to fig. 6, an apparatus for creating a bad block table provided in an embodiment of the present application specifically includes:
a memory 100 for storing a computer program;
a processor 200, configured to implement the steps of the bad block table establishment method according to any of the above embodiments when executing the computer program.
Specifically, the memory 100 includes a nonvolatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and computer-readable instructions, and the internal memory provides an environment for the operating system and the computer-readable instructions in the non-volatile storage medium to run. The processor 200 provides the data acquisition device with computing and control capabilities, and may implement the steps provided by any of the above-described bad block table creation method embodiments.
The present application also provides a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, may implement the steps provided by the above-described embodiments. The storage medium may include: SSDs, and the like, may store program code.
The embodiments in the present description are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (9)

1. A bad block table building method is characterized by comprising the following steps:
writing a bad block table of each stripe into a data frame corresponding to each stripe, and writing data of the data frame into a flash;
reading a bad block table in a target data frame in each stripe to obtain a read result;
and updating the SSD global bad block table by using the reading result.
2. The method of claim 1, wherein the stripe comprises a first preset number of normal blocks for storing user data; and 1 parity block, wherein the parity block stores the data XOR result of the common block; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
3. The method of claim 2, wherein reading the bad block table in the target data frame in each of the stripes to obtain a read result comprises:
determining a super page in each of the stripes; the super pages are all second preset number pages in each strip; each block of the stripe comprises pages numbered according to the same numbering mode;
determining two target pages in the super pages;
respectively obtaining bad block tables of the strips of the super pages stored in the target data frames of the two target pages to obtain two target bad block tables;
and determining the reading result by utilizing the target bad block table.
4. The method of claim 3, wherein the determining the read result using the target bad block table comprises:
judging whether the two target bad block tables are the same;
if yes, determining any one target bad block table as the reading result;
if not, determining the target bad block table which is not zero as the reading result.
5. The method according to claim 3, wherein the obtaining the bad block tables of the stripes to which the super pages belong, which are saved in the target data frames of the two target pages, respectively, to obtain two target bad block tables comprises:
s401, respectively obtaining bad block tables of the stripes of the super pages stored in the target data frames of the two target pages;
s402, judging whether two target bad block tables are obtained or not;
s403, if yes, executing the step of determining the reading result by using the target bad block table;
s404, if not, determining that the number of the target bad block tables is not obtained as a failure number;
s405, determining the target pages with the failure number in the pages of the super page which do not try to acquire the target bad block table; returning to S401;
after S404, the method further includes:
adding the failure number to a historical failure number, and judging whether the historical failure number is greater than a preset threshold value;
if so, stopping operation, recording the bad block tables of the bands to which the super pages belong as all blocks as bad blocks, obtaining new bad block tables corresponding to the bands to which the super pages belong, and taking the new bad block tables as target bad block tables;
if not, go to S405.
6. A bad block table creation system, comprising:
a write module for writing the bad block table of each stripe to the data corresponding to each stripe
In a frame;
the reading module is used for reading a bad block table in the target data frame in each stripe to obtain a reading result;
and the updating module is used for updating the SSD global bad block table by using the reading result.
7. The system of claim 6, wherein the stripe comprises a first preset number of generic blocks for storing user data; and 1 parity block, wherein the parity block stores the data XOR result of the common block; the common block and the parity block are respectively a first preset number block from a second preset number of luns, wherein each lun comprises a block numbered according to the same number mode.
8. An apparatus for creating a bad block table, comprising:
a memory for storing a computer program;
a processor for implementing the steps of the bad block table creation method of any of claims 1 to 5 when executing said computer program.
9. A computer-readable storage medium, having stored thereon a computer program which, when being executed by a processor, carries out the steps of the bad block table creating method according to any one of claims 1 to 5.
CN201810688090.6A 2018-06-28 2018-06-28 Bad block table establishing method and related device Active CN108804045B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810688090.6A CN108804045B (en) 2018-06-28 2018-06-28 Bad block table establishing method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810688090.6A CN108804045B (en) 2018-06-28 2018-06-28 Bad block table establishing method and related device

Publications (2)

Publication Number Publication Date
CN108804045A CN108804045A (en) 2018-11-13
CN108804045B true CN108804045B (en) 2021-10-15

Family

ID=64072558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810688090.6A Active CN108804045B (en) 2018-06-28 2018-06-28 Bad block table establishing method and related device

Country Status (1)

Country Link
CN (1) CN108804045B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582239B (en) * 2018-12-03 2022-02-18 郑州云海信息技术有限公司 SSD bad block table storage method, device, equipment and storage medium
CN109918022B (en) * 2019-02-22 2021-11-09 山东华芯半导体有限公司 SSD open card bad block table inheritance method
CN110333971B (en) * 2019-07-10 2021-08-17 深圳忆联信息系统有限公司 SSD bad block table backup method and device, computer equipment and storage medium
CN110471625B (en) * 2019-08-15 2021-04-20 深圳忆联信息系统有限公司 Bad block information protection method and device, computer equipment and storage medium
CN110837345A (en) * 2019-11-08 2020-02-25 杭州华澜微电子股份有限公司 Bad block table storage method and device
CN111026332B (en) * 2019-12-09 2024-02-13 深圳忆联信息系统有限公司 SSD bad block information protection method, SSD bad block information protection device, computer equipment and storage medium
CN111596860B (en) * 2020-04-21 2021-04-23 中国科学院长春光学精密机械与物理研究所 FPGA control method for improving NAND-FLASH storage reliability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530069A (en) * 2013-11-05 2014-01-22 浪潮(北京)电子信息产业有限公司 Method for processing bad sectors of RAID5 disk array
CN103593303A (en) * 2013-10-29 2014-02-19 福建星网视易信息系统有限公司 Bad block table storage method and device and NAND gate nonvolatile memory
CN107678694A (en) * 2017-10-17 2018-02-09 深圳大普微电子科技有限公司 RAID stripe method for reconstructing and solid-state disk

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259733B1 (en) * 1998-06-16 2001-07-10 General Instrument Corporation Pre-processing of bit rate allocation in a multi-channel video encoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593303A (en) * 2013-10-29 2014-02-19 福建星网视易信息系统有限公司 Bad block table storage method and device and NAND gate nonvolatile memory
CN103530069A (en) * 2013-11-05 2014-01-22 浪潮(北京)电子信息产业有限公司 Method for processing bad sectors of RAID5 disk array
CN107678694A (en) * 2017-10-17 2018-02-09 深圳大普微电子科技有限公司 RAID stripe method for reconstructing and solid-state disk

Also Published As

Publication number Publication date
CN108804045A (en) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108804045B (en) Bad block table establishing method and related device
US10452535B2 (en) Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device
CN109582217B (en) Data storage device and method for writing data into memory device
US9575844B2 (en) Mass storage device and method of operating the same to back up data stored in volatile memory
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US9612954B2 (en) Recovery for non-volatile memory after power loss
US7911840B2 (en) Logged-based flash memory system and logged-based method for recovering a flash memory system
US20190296775A1 (en) Memory system
US11126377B2 (en) Accessing solid state disk
US9465538B2 (en) Flash memory control chip and data storage device and flash memory control method
JP2014052978A (en) Control method of nonvolatile semiconductor memory, and memory system
US9424131B2 (en) Spatially decoupled redundancy schemes for a solid state drive (SSD)
CN114756179B (en) Data writing, reading and managing method based on simulation eeprom
US10229742B2 (en) Flash memory device
CN115220967A (en) Method and device for improving fault tolerance of solid state disk memory and computer equipment
JP5306745B2 (en) Flash memory management method and flash memory device
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
CN111258498B (en) FLASH memory management method
US11275651B2 (en) Memory controller and flash memory system
US11410741B2 (en) Memory controller and flash memory system
JP4239754B2 (en) Nonvolatile memory system
JP3670151B2 (en) Flash memory access method, system including driver for accessing flash memory, and flash memory
US20170010827A1 (en) File system of controller
US20220254435A1 (en) Semiconductor storage device and error processing method for defective memory cell in the device
JP4684587B2 (en) Memory card

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
GR01 Patent grant
GR01 Patent grant