Bad block management method and system for FLASH three-mode data storage used in satellites
By using three-mode storage data in satellites combined with bad block management methods, bad blocks in FLASH memory devices are managed, data errors and storage unavailability caused by bad blocks are solved, and data accuracy and storage availability are achieved.
Patent Information
- Application Number
- CN202411962736.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-04-08
AI Technical Summary
When using FLASH memory devices in satellites, bad blocks are present due to process and manufacturing characteristics. If not managed, data errors and storage are unavailable. The prior art causes drop in actual available capacity and complicated work by skipping the location of the bad blocks.
The three-mode storage data combined with the bad block management method is adopted, and the bad block table is constructed and the bad block preset table is managed. The bad block location is skipped to avoid data errors, and the number of bad blocks is reduced through the three-mode redundant design.
It effectively avoids data errors caused by bad blocks, improves data accuracy and storage availability, simplifies the operation process, and reduces the time consumption of bad block queries.
Smart Images

Figure CN119782201A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of satellite data management, and in particular to a method and system for managing bad blocks of FLASH three-mode data storage used by satellites. Background Art
[0002] FLASH is a storage device that is widely used in satellite products. Due to its non-volatile power-off and large storage capacity, it is often used as a common storage device for satellite products. However, due to its process and manufacturing characteristics, there are a certain number of bad blocks when it leaves the factory, and new bad blocks will inevitably appear gradually during use due to the increase in the number of write and erase times. If the bad blocks are not managed, the data will be incorrect due to the bad block problem during use, and this error cannot be eliminated, making the data at the location of the bad block unavailable for a long time.
[0003] A common circumvention method is to skip the bad block position by adjusting the command so that it can work normally. The disadvantage of this method is that it leads to a decrease in the actual available capacity (bad blocks usually appear in 1MB), and a series of work caused by adjusting the command. When the number of bad blocks increases too much, it actually affects the normal work flow of satellite data storage.
[0004] At present, for payloads or satellite subsystems that use triple-mode storage, although triple-mode redundancy ensures data accuracy, there is still a very small probability that new bad blocks will be generated after triple-mode redundancy. If bad blocks still exist after triple-mode redundancy, the space where the bad blocks are located will become unusable without instruction operation processing, resulting in errors in stored data. Combined with the single particle flip events that may occur while in orbit, the probability of new bad blocks appearing at the end of the FLASH service life gradually increases. Summary of the invention
[0005] In view of the deficiencies in the above-mentioned prior art, the present invention provides a bad block management method and system for FLASH three-mode data storage used in satellites. The three-mode data is stored, and the bad blocks in the FLASH are managed by skipping the bad block positions, so that the satellite can avoid data errors caused by bad blocks during operation, and no additional operations are required to avoid the bad block problem in use.
[0006] To achieve the above object, the present invention provides a bad block management method for FLASH three-mode data storage used in satellites, comprising the following steps: Constructing a bad block table for the data storage areas of module 1, module 2, and module 3 in the triple module redundancy respectively, wherein the bad block table corresponds to the address and bad block status of each 1MB space in the data storage area; After the module 1, module 2, and module 3 are powered on, they enter the bad block self-check state, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; When the module 1, module 2, and module 3 enter the normal working state, when writing or reading to the whole MB address, read the corresponding bad block table to check whether the current operation MB is a bad block. If it is a bad block, skip the MB and check whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally; During the read operation, when the data of modulo one, modulo two, and modulo three are all different, they are marked in the bad block table.
[0007] In one embodiment, while constructing a bad block table for the data storage areas of module 1, module 2, and module 3 in triple module redundancy, a bad block pre-setting table is also constructed for the data storage areas of module 1, module 2, and module 3 in triple module redundancy, wherein the bad block pre-setting table has the same structure as the bad block table; During the read operation, when the data of modulus one, modulus two, and modulus three are all different, first check whether the position in the bad block preset table is marked. If it is marked, the MB of the corresponding address is marked as a bad block in the bad block table. If it is not marked, it is marked in the bad block preset table.
[0008] In one embodiment, the storage addresses of module 1, module 2, and module 3 in triple modular redundancy are divided into data storage areas and other storage areas, wherein: The data storage area is used for normal data storage; Other storage areas are used to store the corresponding bad block table and bad block preset table.
[0009] In one of the embodiments, before the module 1, module 2, and module 3 enter a normal working state, the bad block table and the bad block preset table in other storage areas are cached in a local cache of the corresponding data storage area; When the recording is stopped in the first mode, the second mode, and the third mode, if the bad block table and the bad block preset table are changed, the new bad block table and the bad block preset table are updated to the corresponding other storage areas.
[0010] In one embodiment, performing bad block self-check on module 1, module 2, and module 3 includes: Erase the data storage area where the module 1, module 2 and module 3 are located, read out the erased data, and if the data of one module is not FF, mark the address as a bad block; After the reading is completed, all 0s are written to the data storage area. After the data is written, the data in the data storage area is read to determine whether there is a piece of data that is not 00. If so, the address is marked as a bad block.
[0011] To achieve the above object, the present invention also provides a FLASH three-mode data storage bad block management system used in satellites, which uses the above method to manage FLASH three-mode data storage bad blocks; The FLASH three-mode data storage bad block management system includes: A table construction module is used to construct a bad block table and a bad block preset table for the data storage areas of module 1, module 2 and module 3 in the triple module redundancy, respectively, wherein the bad block table and the bad block preset table have the same structure, and both include the address and bad block status of each 1MB space in the corresponding data storage area; The bad block self-check module is used to enter the bad block self-check state after the module 1, module 2 and module 3 are powered on, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; The bad block management module is used to read the corresponding bad block table to check whether the current operation MB is a bad block when writing or reading to the whole MB address in module one, module two, and module three. If it is a bad block, skip the MB and query whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally. During the read operation, when the data of module one, module two, and module three are all different, read the bad block preset table. If the bad block preset table is not marked, the MB of the corresponding address is marked as a bad block in the bad block preset table. If the bad block preset table is marked, the MB of the corresponding address is marked as a bad block in the bad block table.
[0012] In one embodiment, the FLASH triple-mode data storage bad block management system further includes: The table reconstruction module is used to clear the data in the bad block table and the bad block preset table when the number of bad blocks in the bad block table increases frequently or the current number of bad blocks is abnormal, and to rebuild the bad block table and the bad block preset table.
[0013] In one embodiment, the FLASH triple-mode data storage bad block management system further includes: The re-self-check module is used to re-check the bad blocks to confirm whether the bad blocks actually exist.
[0014] In one embodiment, the FLASH triple-mode data storage bad block management system further includes: The data output module is used to output the address information of each bad block and the total number of bad blocks in real time.
[0015] In one embodiment, the FLASH triple-mode data storage bad block management system further includes: The bad block enable switch is used to turn off the bad block enable, while allowing the address where the bad block is located to be accessed normally, thereby confirming whether the bad block judgment is true and valid.
[0016] Compared with the prior art, the present invention has the following beneficial technical effects: 1. The present invention uses a three-mode data storage area combined with bad block management for storage design, so that the accuracy of the data is guaranteed, the function is simple to implement, and the bad block judgment and processing time consumption is short; 2. The bad block table, bad block preset table and storage location of the three-mode storage in the present invention correspond one to one, which reduces the space consumed in FLASH storage and improves the efficiency of bad block query; 3. The present invention can also output the number and location of bad blocks in the preferred embodiment, so as to facilitate problem location and troubleshooting when bad blocks are generated. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the structures shown in these drawings without paying creative work.
[0018] Figure 1 Flow chart of the bad block management method of FLASH triple-mode data storage in an embodiment of the present invention; Figure 2 An example diagram of address distribution of triple-module redundancy in an embodiment of the present invention; Figure 3 It is a flow chart of another implementation method of the FLASH triple-mode data storage bad block management method in an embodiment of the present invention; Figure 4 It is a structural block diagram of the FLASH triple-mode data storage bad block management system in an embodiment of the present invention.
[0019] The realization of the purpose, functional features and advantages of the present invention will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0020] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0021] In addition, the technical solutions between the various embodiments of the present invention can be combined with each other, but it must be based on the fact that ordinary technicians in the field can implement it. When the combination of technical solutions is contradictory or cannot be implemented, it should be deemed that such combination of technical solutions does not exist and is not within the scope of protection required by the present invention.
[0022] Definition of noun: Triple-mode storage: data is stored in triplicate; Triple-mode redundancy: If two of the three copies of data are consistent, the contents of these two copies shall prevail; Bad block: generated when the FLASH device is produced or used. The bad block area cannot be erased, written, or read normally. Any of the above three will cause abnormalities in the stored data. Local cache: The storage unit of the chip that implements this function; Offset address: The part exceeding a fixed address (base address) is the offset address. For example, if the base address is 0x40000, then the address 0x40001 can be considered as the base address 0x40000 offset by 0x1. The offset address is 0x1.
[0023] Example 1 The present embodiment discloses a bad block management method for FLASH three-mode data storage used by satellites. The three-mode data is stored, and the bad blocks in the FLASH are managed by skipping the bad block positions, so that the satellite can avoid data errors caused by bad blocks during operation. No additional operations are required to avoid the bad block problem in use. At the same time, the module can output information such as the number of bad blocks and the location of the bad blocks to analyze the bad block problem.
[0024] Since the number of bad blocks of FLASH chips is limited, for example, the available capacity of 4096MB FLASH is greater than 4016MB, and the upper limit of bad blocks is no more than 2% of the storage capacity. In addition, in the case of triple-mode redundancy, the same position of two of the three modes must be a bad block to be marked as a bad block. Therefore, combined with the triple-mode redundancy design, the number of bad blocks will be further reduced.
[0025] In the FLASH triple-mode data storage bad block management method of this embodiment: When erasing: When erasing the data at the same offset address of module 1, module 2, and module 3 in triple module redundancy, if a bad block has been generated, the bad block area will not be erased and the area will be automatically skipped during storage management; When writing, the data of the same offset address of module 1, module 2, and module 3 in triple module redundancy is written. When writing to the whole MB address, the bad block table of the local cache is read for judgment. If it is a bad block, the 1MB is skipped and the bad block judgment is performed again until a good block appears. If it is a good block, the writing operation is performed directly; When reading, read out the data of the same offset address of mode 1, mode 2, and mode 3 in the three-mode redundancy. After reading the data, the data is judged by the single byte or half byte of the three-mode redundancy, and the result is used as the correct data. If one of the three modes has different data, a three-mode repairable count is generated, and the address is marked in the bad block preset table; if the three modes have different data, an unrepairable error count is generated, and the address is marked in the bad block table. When reading out to a whole MB, read the bad block table of the local cache for judgment. If it is a bad block, skip this 1MB and re-judge the bad block until a good block appears and starts reading data.
[0026] In this embodiment, the bad block table has the same structure as the bad block preset table, and both include the address of each 1MB space in the corresponding data storage area and the bad block status, that is, the bad block table, the bad block preset table and the storage location of the three-mode storage correspond one to one, which reduces the space consumed in the FLASH storage on the one hand, and improves the efficiency of bad block query on the other hand. For example, when the bad block status is 1, it indicates a bad block, and when the bad block status is 0, it indicates a good block. Taking 8192MB storage space as an example, the bad block table is shown in Table 1 below.
[0027] Table 1
[0028] refer to Figure 1 The FLASH three-mode data storage bad block management method in this embodiment specifically includes the following steps: A bad block table and a bad block pre-set table are respectively constructed for the data storage areas of module 1, module 2, and module 3 in the triple module redundancy, wherein the bad block table and the bad block pre-set table have the same structure, and both include the address and bad block status of each 1MB space in the corresponding data storage area; After the module 1, module 2, and module 3 are powered on, they enter the bad block self-check state, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; When the module 1, module 2, and module 3 enter the normal working state, when writing or reading to the whole MB address, read the corresponding bad block table to check whether the current operation MB is a bad block. If it is a bad block, skip the MB and check whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally; During the read operation, when the data of modulus one, modulus two, and modulus three are all different, the bad block preset table is read. If the bad block preset table is not marked, the MB of the corresponding address is marked as a bad block in the bad block preset table. If the bad block preset table is marked, the MB of the corresponding address is marked as a bad block in the bad block table.
[0029] In this embodiment, the storage addresses of module 1, module 2, and module 3 in triple-module redundancy are divided into data storage area and other storage area, wherein the data storage area is used for normal data storage, and the other storage area is used to store the corresponding bad block table, bad block preset table, bad block self-check table and other important parameters. Taking the storage space of triple-module redundancy 8GB as an example, triple-module redundancy is realized by two 16GB FLASHs, and the addresses are divided into data storage area and other storage area. The address distribution is as follows Figure 2 shown.
[0030] It is worth noting that in the specific application process, other storage areas can be divided in the storage addresses of module 1, module 2, and module 3 to store bad block tables, bad block preset tables, bad block self-test tables, etc., and the bad block tables, bad block preset tables, bad block self-test tables, etc. can also be stored on other non-volatile storage devices, such as RAM chips, EMMC chips, etc.
[0031] In the specific implementation process, before performing bad block self-check on module 1, module 2, and module 3, it is also necessary to read the bad block self-check table of other storage areas. If the self-check has been done, the bad block self-check is no longer done. If the self-check has not been done, the self-check state is entered, and after the self-check is completed, the bad block self-check table is stored in other storage areas. The bad block self-check table in this embodiment is the data of the 0x55AA cycle. If the data content matches after reading, it is considered that the self-check has been completed. If the data content does not match, a self-check needs to be performed.
[0032] In this embodiment, the process of performing bad block self-check on module 1, module 2, and module 3 is as follows: First, erase all the data storage areas of module 1, module 2, and module 3, read out the erased data, and if the data of one module is not FF, mark the address as a bad block; Then, after the reading is completed, all 0s are written to the data storage area. After the data is written, the data in the data storage area is read to determine whether there is a piece of data that is not 00. If so, the address is marked as a bad block; Finally, after the reading is completed, the bad block table and bad block self-check table cached locally are updated to the bad block list area in other data storage areas.
[0033] As a preferred implementation, before the first, second, and third modules enter the normal working state, the bad block table and the bad block preset table in each other storage area are cached in the local cache of the corresponding data storage area to reduce the impact of the single particle upset on the track. At the same time, when the first, second, and third modules stop recording, if the bad block table and the bad block preset table change, the new bad block table and the bad block preset table are updated to the corresponding other storage areas.
[0034] As a preferred implementation, when the number of bad blocks in the bad block table increases frequently (for example, the number of bad blocks increased by more than two within ten minutes) or the current number of bad blocks is abnormal (for example, the current number of bad blocks exceeds the threshold), the data in the bad block table and the bad block preset table are cleared, and the bad block table and the bad block preset table are rebuilt. In addition, the bad block re-self-check function can be used to re-self-check the bad blocks to confirm whether the bad blocks really exist.
[0035] As a preferred implementation, the FLASH three-mode data storage bad block management method in this embodiment also includes real-time output of the address information of each bad block, and output of the total number of bad blocks. For example, the bad block count increases by 1 each time a bad block is generated, and the specific address information of each bad block is output in real time at intervals of one second to facilitate subsequent problem location and troubleshooting. In addition, the FLASH three-mode data storage bad block management method in this embodiment also has a bad block enable control, which can keep the address of the bad block location normally accessible while turning off the bad block enable, thereby confirming whether the bad block judgment is true and valid.
[0036] It is worth noting that in addition to making a judgment when reading data, the bad block judgment method in the FLASH three-mode data storage bad block management method of this embodiment can also be performed by adding verification data to the FLASH and calculating whether the verification data is correct when reading it.
[0037] In the specific application process, it is also possible not to set the bad block preset table separately, that is, the bad block management method of the FLASH three-mode data storage in this embodiment is changed to Figure 3 The steps shown are: Constructing a bad block table for the data storage areas of module 1, module 2, and module 3 in the triple module redundancy respectively, wherein the bad block table includes the address and bad block status of each 1MB space in the corresponding data storage area; After the module 1, module 2, and module 3 are powered on, they enter the bad block self-check state, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; When the module 1, module 2, and module 3 enter the normal working state, when writing or reading to the whole MB address, read the corresponding bad block table to check whether the current operation MB is a bad block. If it is a bad block, skip the MB and check whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally; During a write or read operation, when the data of modulo one, modulo two, and modulo three are all different, the MB of the corresponding address is marked as a bad block in the bad block table.
[0038] It is worth noting that although this embodiment Figure 1 , Figure 3 The steps in the process are shown in sequence as indicated by the arrows, but the steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of the steps, and the steps can be executed in other orders. Figure 1 , Figure 3 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.
[0039] Example 2 Based on the FLASH three-mode data storage bad block management method in Example 1, this embodiment discloses a FLASH three-mode data storage bad block management system used by a satellite, referring to Figure 4 The FLASH three-mode data storage bad block management system includes a table construction module, a bad block self-check module, a bad block management module, a table reconstruction module, a re-self-check module, a data output module and a bad block enable switch, and performs FLASH three-mode data storage bad block management by adopting the FLASH three-mode data storage bad block management method of Example 1. Specifically: The table construction module is used to construct a bad block table and a bad block preset table for the data storage areas of module 1, module 2 and module 3 in the triple module redundancy, respectively, wherein the bad block table and the bad block preset table have the same structure, both including the address and bad block status of each 1MB space in the corresponding data storage area; The bad block self-check module is used to enter the bad block self-check state after the module 1, module 2, and module 3 are powered on, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; The bad block management module is used to read the corresponding bad block table to check whether the current operation MB is a bad block when the module 1, module 2, and module 3 are written or read to the whole MB address. If it is a bad block, the MB is skipped and the next MB is queried to check whether it is a bad block until it is not a bad block. If it is not a bad block, the module operates normally. During the read operation, when the data of the module 1, module 2, and module 3 are all different, the bad block preset table is read. If the bad block preset table is not marked, the MB of the corresponding address is marked as a bad block in the bad block preset table. If the bad block preset table is marked, the MB of the corresponding address is marked as a bad block in the bad block table. The table reconstruction module is used to clear the data in the bad block table and the bad block preset table when the number of bad blocks in the bad block table increases frequently or the current number of bad blocks is abnormal, and to rebuild the bad block table and the bad block preset table; The re-self-check module is used to re-check the bad blocks to confirm whether the bad blocks really exist; The data output module is used to output the address information of each bad block and the total number of bad blocks in real time; The bad block enable switch is used to turn off the bad block enable, while allowing the address where the bad block is located to be accessed normally, thereby confirming whether the bad block judgment is true and valid.
[0040] In this embodiment, the specific working process and working principle of the table construction module, the bad block self-check module, the bad block management module, the table reconstruction module, the re-self-check module, the data output module and the bad block enable switch are the same as those in the method of Embodiment 1, so they are not described in detail in this embodiment. Each unit module can be implemented in whole or in part by software, hardware and a combination thereof, and each unit module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above unit modules.
[0041] The above description is only a preferred embodiment of the present invention, and does not limit the patent scope of the present invention. All equivalent structural changes made by using the contents of the present invention specification and drawings under the inventive concept of the present invention, or directly / indirectly applied in other related technical fields are included in the patent protection scope of the present invention.
Claims
1. A bad block management method for FLASH triple-mode data storage used in satellites, characterized in that: The steps include: Constructing a bad block table for the data storage areas of module 1, module 2, and module 3 in the triple module redundancy respectively, wherein the bad block table corresponds to the address and bad block status of each 1MB space in the data storage area; After the module 1, module 2, and module 3 are powered on, they enter the bad block self-check state, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; When the module 1, module 2, and module 3 enter the normal working state, when writing or reading to the whole MB address, read the corresponding bad block table to check whether the current operation MB is a bad block. If it is a bad block, skip the MB and check whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally; During the read operation, when the data of modulo one, modulo two, and modulo three are all different, they are marked in the bad block table.
2. The bad block management method for FLASH three-mode data storage used by satellites according to claim 1 is characterized in that: While constructing the bad block table for the data storage areas of the modules 1, 2 and 3 in the triple module redundancy respectively, a bad block pre-setting table is also constructed for the data storage areas of the modules 1, 2 and 3 in the triple module redundancy respectively, wherein the bad block pre-setting table has the same structure as the bad block table; During the read operation, when the data of modulus one, modulus two, and modulus three are all different, first check whether the position in the bad block preset table is marked. If it is marked, the MB of the corresponding address is marked as a bad block in the bad block table. If it is not marked, it is marked in the bad block preset table.
3. The bad block management method for FLASH three-mode data storage used by satellites according to claim 2 is characterized in that: The storage addresses of module 1, module 2, and module 3 in triple modular redundancy are divided into data storage area and other storage area, where: The data storage area is used for normal data storage; Other storage areas are used to store the corresponding bad block table and bad block preset table.
4. The bad block management method for FLASH three-mode data storage used by satellites according to claim 3 is characterized in that: Before the modules 1, 2 and 3 enter the normal working state, the bad block table and the bad block preset table in other storage areas are cached into the local cache of the corresponding data storage area; When the recording is stopped in the first mode, the second mode, and the third mode, if the bad block table and the bad block preset table are changed, the new bad block table and the bad block preset table are updated to the corresponding other storage areas.
5. The method for managing bad blocks of FLASH triple-mode data storage used by satellites according to any one of claims 2 to 4, characterized in that: The bad block self-check on module 1, module 2, and module 3 includes: Erase the data storage area where the module 1, module 2 and module 3 are located, read out the erased data, and if the data of one module is not FF, mark the address as a bad block; After the reading is completed, all 0s are written to the data storage area. After the data is written, the data in the data storage area is read to determine whether there is a piece of data that is not 00. If so, the address is marked as a bad block.
6. A FLASH three-mode data storage bad block management system used in satellites, characterized in that: Using the method described in any one of claims 2 to 5 to manage bad blocks of FLASH triple-mode data storage; The FLASH three-mode data storage bad block management system includes: A table construction module is used to construct a bad block table and a bad block preset table for the data storage areas of module 1, module 2 and module 3 in the triple module redundancy, respectively, wherein the bad block table and the bad block preset table have the same structure, and both include the address and bad block status of each 1MB space in the corresponding data storage area; The bad block self-check module is used to enter the bad block self-check state after the module 1, module 2 and module 3 are powered on, record the bad block addresses found during the self-check process into the local cache, and write all the bad block addresses into the bad block table in the corresponding other storage areas after the self-check is completed; The bad block management module is used to read the corresponding bad block table to check whether the current operation MB is a bad block when writing or reading to the whole MB address in module one, module two, and module three. If it is a bad block, skip the MB and query whether the next MB is a bad block until it is not a bad block. If it is not a bad block, operate normally. During the read operation, when the data of module one, module two, and module three are all different, read the bad block preset table. If the bad block preset table is not marked, the MB of the corresponding address is marked as a bad block in the bad block preset table. If the bad block preset table is marked, the MB of the corresponding address is marked as a bad block in the bad block table.
7. The FLASH three-mode data storage bad block management system used by satellites according to claim 6, characterized in that: The FLASH three-mode data storage bad block management system also includes: The table reconstruction module is used to clear the data in the bad block table and the bad block preset table when the number of bad blocks in the bad block table increases frequently or the current number of bad blocks is abnormal, and to rebuild the bad block table and the bad block preset table.
8. The FLASH three-mode data storage bad block management system used by satellites according to claim 6, characterized in that: The FLASH three-mode data storage bad block management system also includes: The re-self-check module is used to re-check the bad blocks to confirm whether the bad blocks actually exist.
9. The FLASH three-mode data storage bad block management system used by satellites according to claim 6, characterized in that: The FLASH three-mode data storage bad block management system also includes: The data output module is used to output the address information of each bad block and the total number of bad blocks in real time.
10. The FLASH three-mode data storage bad block management system used by satellites according to claim 6, characterized in that: The FLASH three-mode data storage bad block management system also includes: The bad block enable switch is used to turn off the bad block enable, while allowing the address where the bad block is located to be accessed normally, thereby confirming whether the bad block judgment is true and valid.