System and method for reconstructing boot information and memory device boot information reconstruction method
By using high-order and low-order error correction codes before and after the reflow oven to recover the address data of damaged blocks in non-volatile memory, the problem of data corruption caused by high-temperature environment is solved, ensuring the normal operation of memory devices.
Patent Information
- Application Number
- CN202110226136.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-01-27
- Filing Date
- 2021-03-01
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2041-03-01
AI Technical Summary
Non-volatile memory may be damaged or lose its power-on information in the high-temperature environment of the reflow oven, causing substandard products to become defective products and affecting the company's revenue.
High-order error correction codes are used to encode the address data of the damaged non-volatile memory block before the reflow oven, and the damaged block address data is restored by the electronic error correction unit after the reflow oven. The reconstruction is completed by combining the low-order error correction codes.
Successfully recovered the damaged block address data of non-volatile memory, avoiding data corruption caused by high temperature environment and ensuring the normal operation of memory device.
Smart Images

Figure CN114816827B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a booting information reconstruction system and a memory device booting information reconstruction method, in particular, to a booting information reconstruction system and a memory device booting information reconstruction method using error correction code with excellent error correction capability to protect booting information and combining a complete booting information by collecting correctable parts of the damaged booting information. BACKGROUND
[0002] Generally, a storage device (e.g. a solid state disk) includes a controller and a non-volatile memory (e.g. a flash memory) for storing data. When manufacturing the non-volatile memory, some of the non-volatile memory inevitably fails to meet the original factory specifications and is listed as downgrade. Therefore, these downgrades need to be initialized before being assembled into products to obtain the addresses of all bad blocks in the non-volatile memory and record them in the booting information. The booting information is usually stored in an information block in the non-volatile memory. However, these downgrades are listed as defective products during SMT (Surface Mount Technology) production due to the high-temperature environment of the reflow oven, which causes the booting information to be damaged or lost, thereby affecting the revenue and profit of the enterprise. SUMMARY
[0003] Therefore, in order to solve the problem that the booting information in the non-volatile memory is damaged when the downgrade of the non-volatile memory passes through the reflow oven due to the high-temperature environment, embodiments of the present application provide a memory device booting information reconstruction method suitable for a memory device and initialization software, wherein the memory device includes a non-volatile memory including a plurality of bad blocks, and the memory device booting information reconstruction method includes: (a) the initialization software receives the bad block address data of the non-volatile memory and encodes the bad block address data of the non-volatile memory with an electronic device error correction unit to generate electronic device encoded data of the bad block addresses; (b) the initialization software causes the memory device to write a plurality of pieces of the electronic device encoded data of the bad block addresses into the non-volatile memory; and (c) the initialization software reads at least one piece of the electronic device encoded data of the bad block addresses from the non-volatile memory by the memory device, and decodes the read electronic device encoded data of the bad block addresses with the electronic device error correction unit to recover the bad block address data of the non-volatile memory.
[0004] In one embodiment of the present application, wherein the non-volatile memory further comprises a plurality of good blocks, the memory device boot information reconstruction method further comprises: (d) determining whether the recovered non-volatile memory bad block address data is successful, if the determination is yes, generating user system data with the recovered non-volatile memory bad block address data, and causing the memory device to erase the good blocks of the non-volatile memory; and (e) writing the user system data into the system blocks of the memory device, wherein the system blocks are composed of at least one of the good blocks.
[0005] In one embodiment of the present application, wherein the memory device further comprises a memory controller coupled to the non-volatile memory, wherein in the step (a), the method further comprises: (al) the card opening software receiving the non-volatile memory bad block address data from the memory controller, and using the high-level error correction code of the electronic device error correction unit to encode the non-volatile memory bad block address data to generate the electronic device encoded data of the bad block address.
[0006] In one embodiment of the present application, wherein in the step (d), the method further comprises: (dl) if the determination is no, determining whether the electronic device encoded data of the bad block addresses are all read, if the determination is no, repeating the steps (c) to (d) until the electronic device encoded data of the bad block addresses are all read.
[0007] In one embodiment of the present application, wherein in the step (d), the method further comprises: (d2) the card opening software using the low-level error correction code of the electronic device error correction unit to encode the recovered non-volatile memory bad block address data to generate the user system data.
[0008] Another embodiment of the present application provides a boot information reconstruction system, comprising: a memory device comprising a non-volatile memory, wherein the non-volatile memory comprises a plurality of bad blocks; and an electronic device coupled to the memory device, wherein the electronic device comprises card opening software to perform a memory device boot information reconstruction method, wherein the memory device boot information reconstruction method comprises: (a) the card opening software receiving non-volatile memory bad block address data, and using the electronic device error correction unit to encode the non-volatile memory bad block address data to generate the electronic device encoded data of the bad block address; (b) the card opening software causing the memory device to write a plurality of electronic device encoded data of the bad block address into the non-volatile memory; and (c) the card opening software causing the memory device to read at least one piece of data of the electronic device encoded data of the bad block address from the non-volatile memory, and using the electronic device error correction unit to decode the read electronic device encoded data of the bad block address to recover the non-volatile memory bad block address data.
[0009] The system and method for reconstructing the start-up information of the memory device provided by the embodiments of the present application, before the memory device passes through the reflow oven, the electronic device correction unit encodes the damaged block address data of the non-volatile memory by using the high-order error correction code through the card opening software, to generate the electronic device encoded data of the damaged block address, and writes the electronic device encoded data of the multiple damaged block addresses into the non-volatile memory. After the memory device passes through the reflow oven, the electronic device encoded data of the damaged block address is collected, and the correctable part is combined or merged into a complete electronic device encoded data of the damaged block address, and the electronic device correction unit decodes it, so as to successfully recover the damaged block address data of the non-volatile memory. In this way, the problem that the electronic device encoded data of the damaged block address in the non-volatile memory is damaged and cannot be recovered or reconstructed when the memory device passes through the reflow oven due to the high-temperature environment is avoided.
[0010] The above description is only a summary of the technical solutions of the present application. In order to more clearly understand the technical means of the present application, the contents of the specification can be implemented, and in order to make the above and other purposes, characteristics and advantages of the present application more obvious and easy to understand, the following preferred embodiments are described in detail below, and the accompanying drawings are described as follows. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1 is the system architecture schematic diagram of the system for reconstructing the start-up information of the memory device according to the embodiments of the present application.
[0012] Figure 2 is the flowchart of the method for reconstructing the start-up information of the memory device according to the embodiments of the present application. DETAILED DESCRIPTION
[0013] Figure 1 is the system architecture schematic diagram of the system for reconstructing the start-up information of the memory device according to the embodiments of the present application. As Figure 1As shown, the boot-up information reconstruction system 1 includes a memory device 10 and an electronic device 20 coupled to the memory device 10. The memory device 10 includes a non-volatile memory 110 and a memory controller 120 coupled to the non-volatile memory 110, wherein the non-volatile memory 110 includes a plurality of bad blocks and a plurality of good blocks, wherein the good blocks are preferably data blocks used to store data, and each data block includes a plurality of data pages. The memory device 10 is preferably a device used to store data, such as a solid-state drive or a secure digital (SD) memory card. The non-volatile memory 110 can be a data storage medium with long-time data preservation, such as a Flash Memory. The electronic device 20 includes a card initialization software 210, an electronic device error correction unit 220, and a processor 230. The processor 230 is mainly used to control or communicate with the electronic device error correction unit 220 or the memory device 10 according to the instructions or steps of the card initialization software 210 to transmit or receive instructions / data, wherein the processor 230 is coupled to the card initialization software 210 and the electronic device error correction unit 220, and the electronic device 20 is preferably a computer or a flash disk.
[0014] At the manufacturing stage, the memory manufacturer performs card initialization (initialization) on the memory device 10 by the electronic device 20. Further, the memory manufacturer performs card initialization on the memory device 10 by loading and executing the card initialization software 210. The card initialization mainly includes low-level initialization and high-level initialization. The low-level initialization mainly uses an error correction code with excellent error correction capability to protect the boot-up information (including the bad block record table) and copies the boot-up information into a plurality of copies and writes them into the non-volatile memory 110. After the memory device 10 passes through the reflow oven, these boot-up information can be damaged to become damaged boot-up information. The high-level initialization mainly collects the correctable parts of the damaged boot-up information, and combines or merges them to reconstruct a complete boot-up information, and then uses an error correction code with general error correction capability to protect the restored boot-up information and writes it into the non-volatile memory 110.
[0015] Please refer to Figure 1 and Figure 2 , Figure 2is a flowchart illustrating a memory device boot information reconstruction method according to an embodiment of the present application. The electronic device 20 executes the memory device boot information reconstruction method by the card opening software 210. The memory device boot information reconstruction method comprises the following steps: first, before passing through the reflow oven, as shown in step S100, the card opening software 210 causes the memory controller 120 to scan or detect the non-volatile memory 110 to check whether there is a damaged block in each block of the non-volatile memory 110. Once the memory controller 120 finds a damaged block, the information of the damaged block (such as the address of the damaged block) is marked or recorded in the non-volatile memory damaged block address data (i.e. damaged block record table), and the non-volatile memory damaged block address data is transmitted to the electronic device 20 or the card opening software 210, and the non-volatile memory damaged block address data stores, for example, the addresses of all damaged blocks in the non-volatile memory 110.
[0016] Then, as shown in step S110, after the electronic device 20 or the card opening software 210 receives the non-volatile memory damaged block address data, the processor 230 uses a high-order error correction code (i.e. an error correction code with excellent error correction capability, such as an LDPC code (Low Density Parity Check code)) through the electronic device error correction unit 220 (such as an error correction encoder) to encode the non-volatile memory damaged block address data to generate electronic device encoded data of the first damaged block address (i.e. boot-up information). Since the high-order error correction code has stronger error correction capability than the low-order error correction code (such as a BCH code with general error correction capability), the number of correctable error bits is larger, for example, 1KB (byte) of data can correct 240 bits. Therefore, after the electronic device encoded data of the damaged block address passes through the reflow oven, if the number of damaged bits does not exceed the ability of the high-order error correction code to correct, the damaged / error bits can be corrected successfully by using the high-order error correction code through the electronic device error correction unit 220. For example, if 240 bits of the electronic device encoded data of the damaged block address are damaged, since the number of damaged bits does not exceed the ability of the high-order error correction code to correct, it can be corrected successfully. On the contrary, if it is corrected by a low-order error correction code (such as 1KB of data can correct 72 bits), since the number of damaged bits has exceeded the ability of the low-order error correction code to correct, it cannot be corrected successfully. In this way, it is avoided that the number of damaged bits is too high to exceed the ability of the error correction code to correct.
[0017] Then, as shown in step S120, the card opening software 210 causes the memory controller 120 to write the electronic device encoded data of the plurality of bad block addresses into the non-volatile memory 110. For example, the memory controller 120 can copy the electronic device encoded data of the plurality of (e.g., 100) first bad block addresses and write the electronic device encoded data of the bad block addresses into one or more data pages of one or more data blocks of the non-volatile memory 110. Preferably, all available data blocks / data pages of the non-volatile memory 110 are written. The manner of writing the electronic device encoded data of the bad block addresses is not limited and can be continuous writing, non-continuous writing or random writing. However, since the manner of writing is within the scope of common knowledge, further description is omitted.
[0018] Afterwards, as shown in step S130, after passing through the reflow oven, the card opening software 210 causes the memory controller 120 to read at least one of the electronic device encoded data of the bad block addresses from the non-volatile memory 110 and causes the processor 230 to decode the read electronic device encoded data of the bad block addresses by the electronic device error correction unit 220, thereby recovering or restoring the non-volatile memory bad block address data.
[0019] Next, as shown in step S140, the electronic device 20 or the card opening software 210 determines whether the non-volatile memory bad block address data is successfully recovered. If the determination is yes, the card opening software 210 causes the electronic device error correction unit 220 to encode the recovered non-volatile memory bad block address data using a low order error correction code (i.e., a general error correction code, such as a BCH code) to generate user system data (i.e., the recovered boot-up information) and causes the memory controller 120 to erase all good blocks of the non-volatile memory 110 according to the recovered non-volatile memory bad block address data, as shown in step S150. For example, if the number of damaged bits in the read electronic device encoded data of the bad block addresses does not exceed the capability of the high order error correction code, the recovered non-volatile memory bad block address data can be successfully obtained by decoding the electronic device encoded data of the bad block addresses by the electronic device error correction unit 220 and then encoding the recovered non-volatile memory bad block address data using the low order error correction code to generate the user system data.
[0020] If the answer is no, the electronic device 20 or the card opening software 210 judges whether the electronic device code data of all the damaged block addresses have been read, and if the answer is no, the steps S130 to S140 are repeated until all the damaged block addresses are read (as shown in step S160). For example, if a complete damaged block address electronic device code data can be divided into, for example, 10 parts, which are respectively in 10 different data pages. As long as the correctable parts (i.e. the successfully corrected data pages) of the read damaged block address electronic device code data are collected and accumulated until the 10 parts are collected, the collected 10 parts (i.e. the corresponding 10 successfully corrected data pages) can be combined or merged into a complete damaged block address electronic device code data. Then, the recovered non-volatile memory damaged block address data can be successfully obtained by decoding the data by the electronic device error correction unit 220.
[0021] In addition, after step S150, the card opening software 210 further divides the non-volatile memory 110 into a system block and a user data block. The system block is preferably composed of some of the good blocks, such as the first data block to the Nth data block, and the user data block is preferably composed of other good blocks, such as the N+1th data block to the Mth data block, where N and M are positive integers.
[0022] Then, as shown in step S170, the user system data is written into the system block of the non-volatile memory 110. In this way, the problem that the electronic device code data of the damaged block addresses in the non-volatile memory 110 is damaged and cannot be recovered or reconstructed when the memory device 10 passes through the reflow oven due to the high temperature environment is avoided.
[0023] In summary, the system and method for reconstructing booting information of the memory device provided by the embodiments of the present application, before the memory device passes through the reflow oven, the electronic device correction unit encodes the damaged block address data of the non-volatile memory by using the high-order error correction code through the card opening software, to generate the electronic device encoded data of the damaged block address, and writes the electronic device encoded data of the plurality of damaged block addresses into the non-volatile memory. After the memory device passes through the reflow oven, the electronic device encoded data of the damaged block address is collected, and the correctable part is combined or merged into a complete electronic device encoded data of the damaged block address, and the electronic device correction unit decodes it, so as to successfully recover the damaged block address data of the non-volatile memory. In this way, the problem that the electronic device encoded data of the damaged block address in the non-volatile memory is damaged and cannot be recovered or reconstructed when the memory device passes through the reflow oven due to the high-temperature environment is avoided.
[0024] The above is only the preferred embodiment of the present application, and does not limit the present application in any form. Although the present application has been disclosed as the above preferred embodiment, it is not intended to limit the present application. Any person skilled in the art can make some changes or modifications to the above disclosed methods and technical contents to obtain equivalent embodiments with equivalent changes, without departing from the technical solution of the present application. Any simple modification, equivalent change and modification of the above embodiments according to the technical essence of the present application are still within the scope of the technical solution of the present application.
Claims
1. A method for reconstructing boot information of a memory device, adapted to a memory device and a card opening software, characterized in that, The memory device includes a non-volatile memory including a plurality of bad blocks and a plurality of good blocks, and a memory device start-up information reconstruction method includes: (a) the card opening software receives non-volatile memory bad block address data, and uses an electronic device error correction unit to encode the non-volatile memory bad block address data to generate electronic device encoded data of the bad block address; (b) the card opening software causes the memory device to write a plurality of pieces of electronic device encoded data of the bad block address into the non-volatile memory; (c) the card opening software reads at least one piece of data of the plurality of pieces of electronic device encoded data of the bad block address from the non-volatile memory by the memory device, and uses the electronic device error correction unit to decode the at least one piece of read electronic device encoded data of the bad block address to recover the non-volatile memory bad block address data; (d) it is determined whether the non-volatile memory bad block address data is successfully recovered, and if yes, user system data is generated using the recovered non-volatile memory bad block address data, and the memory device is caused to erase the plurality of pieces of electronic device encoded data of the bad block address of the plurality of good blocks of the non-volatile memory; and (e) the user system data is written into a system block of the memory device, wherein the system block is composed of at least one of the plurality of good blocks.
2. The method of claim 1, wherein the memory device initialization information is reconstructed by: In the step (d), further comprising: (d1) if no, it is determined whether the plurality of pieces of electronic device encoded data of the bad block address are all read, and if no, steps (c) to (d) are repeated until the plurality of pieces of electronic device encoded data of the bad block address are all read.
3. The method of claim 2, wherein the memory device initialization information is reconstructed by: In the step (d), further comprising: (d2) the card opening software uses a low-order error correction code to encode the recovered non-volatile memory bad block address data using the electronic device error correction unit to generate the user system data.
4. The method of claim 1, wherein the memory device initialization information is reconstructed by: The memory device further includes a memory controller coupled to the non-volatile memory, and in the step (a), further comprising: (a1) the card opening software receives the non-volatile memory bad block address data from the memory controller, and uses a high-order error correction code to encode the non-volatile memory bad block address data using the electronic device error correction unit to generate the electronic device encoded data of the bad block address.
5. A system for reconstructing power-on boot information, the system comprising: The memory device includes a non-volatile memory including a plurality of bad blocks and a plurality of good blocks, and a memory device start-up information reconstruction method includes: (a) the card opening software receives non-volatile memory bad block address data, and uses an electronic device error correction unit to encode the non-volatile memory bad block address data to generate electronic device encoded data of the bad block address; (b) the card opening software causes the memory device to write a plurality of pieces of electronic device encoded data of the bad block address into the non-volatile memory; (c) the card opening software reads at least one piece of data of the plurality of pieces of electronic device encoded data of the bad block address from the non-volatile memory by the memory device, and uses the electronic device error correction unit to decode the at least one piece of read electronic device encoded data of the bad block address to recover the non-volatile memory bad block address data; (d) it is determined whether the non-volatile memory bad block address data is successfully recovered, and if yes, user system data is generated using the recovered non-volatile memory bad block address data, and the memory device is caused to erase the plurality of pieces of electronic device encoded data of the bad block address of the plurality of good blocks of the non-volatile memory; and (e) the user system data is written into a system block of the memory device, wherein the system block is composed of at least one of the plurality of good blocks. (b) the card activation software causes the memory device to write the plurality of pieces of electronic device encoded data of the bad block addresses into the non-volatile memory; (c) the card activation software causes the memory device to read at least one piece of the plurality of pieces of electronic device encoded data of the bad block addresses from the non-volatile memory, and decodes the at least one piece of the electronic device encoded data of the bad block addresses with the electronic device error correction unit to recover the non-volatile memory bad block address data; (d) determines whether the recovery of the non-volatile memory bad block address data is successful, and if yes, generates a user system data with the recovered non-volatile memory bad block address data, and causes the memory device to erase the plurality of pieces of electronic device encoded data of the bad block addresses from the plurality of good blocks of the non-volatile memory; and (e) writes the user system data into a system block of the memory device, wherein the system block is composed of at least one of the plurality of good blocks.
6. The system for reconstructing the boot-up information according to claim 5, wherein, In the step of step (d), further comprising: (d1) if no, determines whether all of the plurality of pieces of electronic device encoded data of the bad block addresses are read, and if no, repeats steps (c) to (d) until all of the plurality of pieces of electronic device encoded data of the bad block addresses are read.
7. The system for reconstructing the boot-up information according to claim 6, wherein, In the step of step (d), further comprising: (d2) the card activation software encodes the recovered non-volatile memory bad block address data with a low order error correction code with the electronic device error correction unit to generate the user system data.
8. The system for reconstructing the booting information according to claim 5, wherein, The memory device further comprises a memory controller coupled to the non-volatile memory, and in the step of step (a), further comprising: (a1) the card activation software receives the non-volatile memory bad block address data from the memory controller, and encodes the non-volatile memory bad block address data with a high order error correction code with the electronic device error correction unit to generate the electronic device encoded data of the bad block addresses.
Citation Information
Patent Citations
An SSD card opening bad block table inheritance method
CN109918022A
Data protecting method and memory storage device
US20180276067A1