Update of Flash Memory Based on Determination of Bits to be Erased

Through bit-by-bit determination and minimum sector erasing, flash memory operations are optimized, the problem of time-consuming erasing process is solved, and operation efficiency is improved.

CN114175000BActive Publication Date: 2025-08-01HEWLETT PACKARD DEVELOPMENT COMPANY LP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201980099022.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-07-31
Publication Date
2025-08-01
Estimated Expiration
2039-07-31

AI Technical Summary

Technical Problem

The process of erasing the flash memory is time-consuming, resulting in lengthy and time-consuming flash operations.

Method used

By determining the bits that need to be erased in a bit-by-bit manner, the erase operation is performed using the minimum sector size, and in combination with the write operation, unnecessary erase steps are reduced.

Benefits of technology

Reduces lengthy and time-consuming erasing operations and improves the efficiency of flash operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114175000B_ABST
    Figure CN114175000B_ABST
Patent Text Reader

Abstract

An example non-transitory machine-readable storage medium storing machine-readable instructions that, when executed, cause a processor to obtain stored bits stored on a flash memory, each of the stored bits being in a set state or an unset state. The processor further obtains target bits, each of the target bits being in the set state or the unset state, where each target bit corresponds to a stored bit to update the stored bit. The processor further determines whether a corresponding target bit is in the unset state for a stored bit in the set state. When the determination is affirmative, the processor sets the stored bit to the unset state and, after setting the stored bit to the unset state, updates the stored bit to match the corresponding target bit. When the determination is negative, the processor updates the stored bit to match the corresponding target bit.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Flash memories can be updated by a flash process in which the flash memory is erased and the update is written to the blank memory. Erasing the flash memory can be time-consuming, resulting in a time-consuming flash process. Brief Description of the Drawings

[0002] Figure 1 is a block diagram of an example machine-readable storage medium having instructions for updating a flash memory based on a determination of bits to be erased.

[0003] Figure 2 is a flowchart of an example method for updating a flash memory based on a determination of bits to be erased.

[0004] Figure 3A is a schematic diagram of an example stored program that updates based on a determination of bits to be erased.

[0005] Figure 3B is the update Figure 3A schematic diagram of an example object program of a stored program.

[0006] Figure 4A is a schematic diagram of an example storage sector and target sector.

[0007] Figure 4B is a schematic diagram of an example updated storage sector.

[0008] Figure 5A is a schematic diagram of an example storage sector and target sector.

[0009] Figure 5B is a schematic diagram of an example cache sector and erased storage sector.

[0010] Figure 5C is a schematic diagram of an example updated storage sector.

[0011] Figure 6 is an example computing device for updating a flash memory based on a determination of bits to be erased. Detailed Description

[0012] A computing device (such as, a personal computer, a laptop, a desktop computer, or other types of computing devices) may have a program, such as a Basic Input / Output System (BIOS) stored on a memory (such as, flash memory). The flash memory can be updated by a flash operation in which the flash memory is erased and then an update is written to the blank or erased memory. The erase operation is lengthy and time-consuming, resulting in a lengthy and time-consuming flash operation. Further, the erase operation may not be performed on a bit-by-bit basis, but rather on sectors having a minimum size (e.g., a minimum number of bits).

[0013] In an example flash operation, a processor obtains stored bits on the flash memory. Each of the stored bits is in a set state or an unset state. For example, a bit having a value of "1" can be defined as being in the unset state, while a bit having a value of "0" can be defined as being in the set state. The processor further obtains target bits. Each of the target bits is in a set state or an unset state. Additionally, each target bit corresponds to a stored bit and represents the value to which the stored bit is to be updated. The processor determines whether a corresponding target bit is in the unset state for a stored bit in the set state. When the determination is affirmative, the processor sets the stored bit to the unset state and, after setting the stored bit to the unset state, updates the stored bit to match the corresponding target bit. When the determination is negative, the processor updates the stored bit to match the corresponding target bit. The processor thus determines the type of update (e.g., an erase operation from the set state to the unset state, or a write operation from the unset state to the set state) and selects an appropriate update process. If any stored bit is to be erased, the processor performs a flash operation (i.e., an erase operation followed by a write operation) on all the stored bits. If the only update is a write operation, the processor performs a bit-by-bit write operation. Thus, unnecessary erase operations that are lengthy and time-consuming can be reduced. The flash operation can be performed during manufacturing, during an update to the flash memory (e.g., an update to the BIOS), or during a recovery process.

[0014] Figure 1 A block diagram of a non-transitory machine-readable storage medium 100 storing machine-readable instructions is shown. The storage medium 100 includes stored-bit instructions 102, target-bit instructions 104, determination instructions 106, flash instructions 108, and update instructions 110.

[0015] The stored-bit instructions 102, when executed, cause a processor to obtain stored bits stored on the flash memory. Each of the stored bits can be in a set state or an unset state.

[0016] The target bit instruction 104, when executed, causes the processor to obtain target bits. Each of the target bits can also be in a set state or an unset state. In particular, each target bit corresponds to one of the storage bits and represents the state to which the storage bit is to be updated (i.e., set or unset).

[0017] The determination instruction 106, when executed, causes the processor to determine whether, for a storage bit in the set state, the corresponding target bit is in the unset state. In particular, an erase operation (setting a bit from the set state to the unset state) has a minimum sector size. That is, the erase operation may not be performed on a bit-by-bit basis, but rather on a sector with the minimum number of bits. Thus, the determination instruction 106 is to determine whether any storage bit in the set state is to be updated to the unset state, i.e., whether the sector is to be erased (i.e., set to the unset state).

[0018] The flash instruction 108, when executed, causes the processor to perform a flash operation. In particular, when the determination is affirmative, the processor performs a flash operation on the flash memory. The processor sets the storage bit to the unset state (i.e., performs an erase operation on at least the minimum sector). After setting the storage bit to the unset state, the processor updates the storage bit to match the corresponding target bit (i.e., performs an update operation on the storage bit).

[0019] The update instruction 110, when executed, causes the processor to perform an update operation. In particular, when the determination is negative, the processor performs an update operation on the flash memory. The processor updates the storage bit to match the corresponding target bit. In particular, since no storage bit is to be set from the set state to the unset state, the processor updates the storage bit from the unset state to the set state or leaves the storage bits in their current state.

[0020] Figure 2 A flowchart of an example method 200 for updating a flash memory is shown. In particular, the flash memory can store a program to be updated, such as a basic input / output system (BIOS). The program can be stored in the flash memory as storage bits. Each of the bits can be in a set state or an unset state. A write or update operation can be performed on the bit by updating the bit in the unset state to the set state. An erase operation can be performed by setting the bit to the unset state. In particular, the erase operation is not performed on a bit-by-bit basis, but rather on the minimum number of bits. The method 200 can be executed by a processor capable of executing instructions (such as the instructions stored in the machine-readable storage medium 100).

[0021] In some examples, method 200 may be performed during a manufacturing process. For example, the processor may be a manufacturing processor. In particular, the manufacturing processor may perform method 200 to update a flash memory having a BIOS before fastening the flash memory to a motherboard. In other examples, during in-circuit testing, after the flash memory is fastened to the motherboard, the processor may perform method 200. For example, the processor may be integrated with a bed-of-nails fixture to update a flash memory having a BIOS during in-circuit testing. In further examples, method 200 may be performed in a computing device to update or restore a BIOS. For example, the processor may be a security controller of the computing device and may update a protected copy of the BIOS at a first instance of receiving power. In other examples, other suitable processors or systems may perform method 200.

[0022] At block 202, the processor obtains a storage sector of a program to be updated. In particular, the processor is to update the program in a smaller portion represented by the storage sector. The storage sector thus includes a subset of the storage bits forming the program. For example, the storage sector may be selected based on a minimum number of bits for an erase operation. For example, referring to Figure 3A , a stored program 300 is depicted. The stored program includes stored bits 302-1, 302-2 to 302-m. The stored bits may be grouped into storage sectors 304-1, 304-2 to 304-n. For example, storage sector 304-1 may include stored bits 302-1, 302-2 up to 302-p, where p is the minimum number of bits for an erase operation. Accordingly, at Figure 2 block 202, the processor may obtain, for example, storage sector 304-1 for processing.

[0023] In some examples, the processor may also perform a preprocessing operation on the storage sector. For example, storage sector 304-n may not include p bits based on the size of stored program 300. Accordingly, the processor may expand storage sector 304-n to include p bits by adding a sufficient number of bits in an unset state after stored bit 302-m. In particular, storage sector 304-n may be expanded to allow an erase operation to be performed.

[0024] In some examples, the program to be updated may be pre-filled with a subset of target bits from a target program. For example, during a manufacturing process, a flash memory may be pre-filled with a portion of a BIOS.

[0025] At block 204, the processor obtains a target sector corresponding to the storage sector obtained at block 202. In particular, the target program includes target bits, each of the target bits corresponding to a storage bit. Accordingly, each storage sector can define a corresponding target sector based on the target bits corresponding to the storage bits in the storage sector. For example, referring to Figure 3B , a target program 310 is depicted. The target program 310 includes target bits 312-1, 312-2 to 312-m corresponding to storage bits 302-1, 302-2 to 302-m respectively. The target bits can also be grouped into target sectors 314-1, 314-2 to 314-n. Similarly, the target sectors respectively correspond to storage sectors 304-1, 304-2 to 304-n. For example, target sector 314-1 includes target bits 312-1, 312-2 up to 312-p. Accordingly, at Figure 2 block 204, the processor can obtain, for example, target sector 314-1 corresponding to storage sector 304-1 obtained at block 202.

[0026] In some examples, the processor can also perform a preprocessing operation on the target sector. For example, target sector 314-n can be the same size as storage sector 304-n and thus may not include p bits. Accordingly, the processor can expand target sector 314-n to include p bits by adding a sufficient number of bits in the unset state after target bit 312-m. In particular, target sector 314-n can be expanded to allow a bit-by-bit comparison with storage sector 304-n.

[0027] In some examples, at block 204, the processor can additionally obtain a cache sector. The cache sector is a predefined sector having the minimum number of bits (i.e., p bits) for performing an erase operation. In particular, the cache sector includes cache bits in the unset state. In particular, if it is determined that the processor is to perform an erase operation, the cache sector can be utilized.

[0028] At block 206, the processor begins to process the sector using a bit-by-bit process. In particular, the processor obtains a storage bit from the storage sector obtained at block 202. For example, the processor can obtain storage bit 302-1.

[0029] At block 2, the processor obtains a target bit corresponding to the storage bit obtained at block 206. For example, the processor can obtain target bit 312-1.

[0030] At block 210, the processor determines whether the bits obtained at blocks 206 and 208 match. If they match, method 200 proceeds directly to block 216. If the bits do not match, method 200 proceeds to block 212.

[0031] At block 212, the processor determines whether the stored bit obtained at block 206 can be updated to the target bit obtained at block 208. In particular, if the stored bit is in the unset state and the target bit is in the set state, then the processor determines that the stored bit can be updated, and method 200 proceeds to block 214.

[0032] At block 214, the processor updates the stored bit to match the corresponding target bit. Method 200 then proceeds to block 216.

[0033] At block 216, the processor determines whether there are any stored bits left to process in the sector. If so, method 200 returns to block 206, where the processor obtains the next stored bit for processing. If there are no stored bits in the sector that are in the set state and whose corresponding target bits are in the unset state, then method 200 proceeds in this manner until all stored bits in the storage sector have been updated to match the corresponding target bits.

[0034] For example, referring to Figure 4A and 4B , an example storage sector 400 and its corresponding target sector 410 are depicted. In this example, bits with the value "1" are in the unset state, while bits with the value "0" are in the set state. In particular, the processor can update the storage sector 400 according to the iterations through blocks 206, 208, 210, 212, 214, and 216 of method 200 described above, where all stored bits are either matched or updated from the unset state to the set state to match the corresponding target bits.

[0035] For example, stored bit 402-1 is in the unset state and matches the corresponding target bit 412-1 in the unset state. Accordingly, at block 210, method 200 proceeds to block 216 and returns to block 206, where the processor selects the next stored bit 402-2. Stored bit 402-2 is in the unset state, and its corresponding target bit 412-2 is in the set state. Accordingly, at block 212, the method proceeds to block 214, where the processor updates stored bit 402-2 to match target bit 412-2. In particular, stored bit 402-2 is updated to the Figure 4B updated bit 402-2' depicted in, which is in the set state. The processor iterates through the stored bits in sector 400 until stored bit 402-8 is updated to updated bit 402-8'. Accordingly, at block 216, no stored bits remain in storage sector 400, and updated sector 400' has been updated to match the corresponding target sector 410.

[0036] Referring toFigure 2 If the stored bit at block 212 is in the set state and the target bit is in the unset state, then the processor determines that the stored bit may not have been updated, and the method proceeds to block 218.

[0037] At block 218, the processor erases the storage sector by setting all the stored bits in the storage sector to the unset state. For example, the processor may utilize the cached sector obtained at block 204 and replace the storage sector with the cached sector.

[0038] At block 220, the processor updates the storage sector to match the corresponding target sector. In particular, the storage sector only contains stored bits in the unset state and can be updated bit-by-bit to match the corresponding target bits in the target sector.

[0039] For example, referring to Figure 5A 、 5B and 5C, an example storage sector 500 and its corresponding target sector 510 are depicted. In this example, bits with the value "1" are in the unset state, while bits with the value "0" are in the set state. In particular, the processor can update the storage sector 500 according to blocks 218 and 220.

[0040] First, the processor may iterate through the iteration of blocks 206 to 216 as appropriate. For example, the stored bit 502-1 is in the unset state and matches the corresponding target bit 512-1 in the unset state. Accordingly, at block 210, method 200 proceeds to block 216 and returns to block 206, where the processor selects the next stored bit 502-2. The stored bit 502-2 is in the set state, and its corresponding target bit 512-2 is in the unset state. Accordingly, at block 212, the method proceeds to block 218.

[0041] At block 218, the processor may set the stored bits in the storage sector 500 to the unset state, for example, by obtaining a cached sector 520 with all bits in the unset state and replacing the storage sector 500 with the cached sector 520 to obtain an erased storage sector 500', as Figure 5B depicted.

[0042] At block 220, the processor updates the erased stored bits in the erased storage sector 500' to match the corresponding target sector 510 to obtain an updated storage sector 500'', as depicted.

[0043] Return to Figure 2, at block 222, the storage sectors have been updated to match the corresponding target sectors either through a direct update operation (blocks 210 to 216) or through a flash operation (blocks 218 and 220), and the processor determines whether any sectors are still in the program to be processed to update the program.

[0044] Figure 6 A block diagram of an example computing device 600 is shown. The computing device 600 includes a main processor 602, a memory 604, a shared flash memory 606, a security controller 608, and a private flash memory 610.

[0045] The main processor 602 is interconnected with the memory 604 and the shared flash memory 606. The main processor 602 may include a central processing unit (CPU), a microcontroller, a microprocessor, a processing core, a field programmable gate array (FPGA), or a similar device capable of executing instructions. The main processor 602 may cooperate with the memory 604 to execute instructions. The memory 604 may include a non-transitory machine-readable storage medium, which may be an electronic, magnetic, optical, or other physical storage device storing executable instructions. The machine-readable storage medium may include, for example, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, storage drives, optical discs, and so on. The machine-readable storage medium may be encoded with executable instructions. For example, the memory 604 may include instructions for updating the basic input / output system (BIOS) 612 stored on the shared flash memory 606.

[0046] The shared flash memory 606 is a flash memory storing the BIOS 612. The private flash memory 610 is a flash memory storing a protected copy 614 of the BIOS 612. In particular, the private flash memory 610 may be accessed by the security controller 608. The BIOS 612 may be represented as storage bits in the shared flash 606, with each storage bit being in a set state or an unset state. Similarly, the protected BIOS copy 614 may be represented as storage bits in the private flash memory 610, with each storage bit being in a set state or an unset state.

[0047] The security controller 608 is interconnected with the shared flash memory 606 and the private flash memory 610. The security controller 608 may also include a central processing unit (CPU), a microcontroller, a microprocessor, a processing core, a field programmable gate array (FPGA), or a similar device capable of executing instructions. In particular, the security controller 608 is to perform updates between the shared flash memory 606 and the private flash memory 610.

[0048] For example, the BIOS 612 can be updated, such as during a system upgrade and so on. In particular, the BIOS 612 can be updated via the execution of instructions by the main processor 602. The security controller 608 can detect an update to the BIOS 612 and update the protected BIOS copy 614. In some examples, the security controller 608 can further verify the updated BIOS 612 before updating the protected BIOS copy 614 stored in the private flash memory 610. The security controller 608 can thus detect tampering with the BIOS 612 and can reject the update to the protected BIOS copy 614 in the event that the verification fails.

[0049] When verifying an update to the BIOS 612, the security controller 608 can update the protected BIOS copy 614. In particular, the security controller 608 can designate the protected BIOS copy 614 as the stored program and the BIOS 612 as the target program in method 200.

[0050] Accordingly, the security controller 608 obtains the storage sector of the protected BIOS copy 614 and the corresponding target sector of the updated BIOS 612. The security controller 608 determines whether the corresponding target bit of the updated BIOS 612 is in an unset state for a storage bit of the storage sector of the protected BIOS copy 614 in the set state. When the determination is affirmative, the security controller 608 sets the storage bit of the storage sector of the protected BIOS copy 614 to the unset state. After setting the storage bit to the unset state, the security controller 608 updates the storage bit to match the corresponding target bit of the updated BIOS 612. If the determination is negative, the security controller 608 updates the storage bit to match the corresponding target bit of the updated BIOS 612. The security controller 608 can thus proceed through the sectors of the protected BIOS copy 614 to update the protected BIOS copy 614 to match the updated BIOS 612.

[0051] In another example, during the verification of the BIOS 612, the security controller 608 can determine that the BIOS 612 is invalid, corrupted, or otherwise not viable for execution, such as during the boot of the computing device 600. Accordingly, the security controller 608 can perform a recovery operation to restore the BIOS 612 to the protected BIOS copy 614. In particular, the security controller 608 can designate the BIOS 612 as the stored program and the protected BIOS copy 614 as the target program in method 200.

[0052] Accordingly, the security controller 608 obtains the storage sectors of the BIOS 612 and the corresponding target sectors of the protected BIOS copy 614. The security controller 608 determines whether the corresponding target bit of the protected BIOS copy 614 is in an unset state for a storage bit of the storage sector of the BIOS 612 in the set state. When the determination is affirmative, the security console 608 sets the storage bit of the storage sector of the BIOS 612 to the unset state. After setting the storage bit to the unset state, the security controller 608 updates the storage bit to match the corresponding target bit of the protected BIOS copy 614. If the determination is negative, the security controller 608 updates the storage bit to match the corresponding target bit of the protected BIOS copy 614. The security controller 608 can thus proceed through the sectors of the BIOS 612 to restore the BIOS 612 to match the protected BIOS copy 614.

[0053] As described above, the processor can perform an update of the flash memory based on the determination of the bits to be erased. The processor obtains a storage bit and a target bit, each of the bits being in a set state or an unset state. The processor determines whether the corresponding target bit is in an unset state for a storage bit in the set state. That is, the processor determines whether there is a storage bit to be erased (i.e., set from the set state to the unset state). When the determination is affirmative, the processor sets the storage bit to the unset state and, after setting the storage bit to the unset state, updates the storage bit to match the corresponding target bit. In particular, the processor can set the storage bit to the unset state according to the minimum number of bits for an erase operation. When the determination is negative, the processor updates the storage bit to match the corresponding target bit.

[0054] Thus, based on the determination of the bits to be erased, the processor selects an appropriate update operation. If any storage bits are to be erased, the processor performs a flash memory operation (i.e., an erase operation followed by a write operation) on all storage bits. If the only update is a write operation, the processor performs a bit-by-bit write operation. Thus, unnecessary erase operations that are lengthy and time-consuming can be reduced. The flash memory operation can be performed during manufacturing, during an update of the flash memory (e.g., an update of the BIOS), or during a recovery process.

[0055] The scope of the claims should not be limited by the above examples, but should be given the broadest interpretation consistent with the specification as a whole.

Claims

1. A non-transitory machine-readable storage medium storing machine-readable instructions that, when executed, cause a processor to: For each of a plurality of storage sectors of a storage program to be updated to a target program, perform the following operations until each of the plurality of storage sectors has been processed: Obtain storage bits stored on a flash memory, each of the storage bits being in a set state or an unset state, wherein the storage bits form a storage sector of the storage program, and the storage sector is a subset of the storage bits forming the program; Obtain target bits, wherein the target bits form a target sector of the target program, each of the target bits being in the set state or the unset state, wherein each target bit corresponds to a storage bit to update the storage bit; Determine whether all the storage bits match the target bits, and if so, determine whether any sectors are still in the program to be processed to update the program; If any of the storage bits do not match the corresponding target bits, determine whether the corresponding target bit is in the unset state for a storage bit in the set state; And When the determination is affirmative: Set the storage bit to the unset state; And After setting the storage bit to the unset state, update the storage bit to match the corresponding target bit; When the determination is negative: Update the storage bit to match the corresponding target bit, and after updating the storage bit to match the corresponding target bit, determine whether any sectors are still in the program to be processed to update the program.

2. The non-transitory machine-readable storage medium according to claim 1, wherein the storage sector comprises a minimum number of bits for setting the storage bits of the storage sector to the unset state.

3. The non-transitory machine-readable storage medium according to claim 2, wherein the machine-readable instructions cause the processor to set the storage bit to the unset state by performing the following operations: Obtain a cache sector comprising cache bits in the unset state, wherein the cache sector comprises a minimum number of bits for setting the storage bits of the storage sector to the unset state; and Replace the storage sector with the cache sector.

4. A computing device comprising: A first flash memory storing storage bits, each of the storage bits being in a set state or an unset state, wherein the storage bits form a storage sector of a storage program to be updated to a target program; A second flash memory storing target bits, wherein the target bits form a target sector of the target program, each of the target bits being in the set state or the unset state, wherein each target bit corresponds to a storage bit to update the storage bit; A security controller interconnected with the first flash memory and the second flash memory, the security controller: For each of a plurality of storage sectors of a storage program to be updated to a target program, perform the following operations until each of the plurality of storage sectors has been processed: Determine whether all storage bits match the target bits, and if so, determine whether any sectors are still in the program to be processed to update the program; If any storage bits do not match the corresponding target bits, then Determine whether the corresponding target bit is in the unset state for one of the storage bits in the set state; And When the determination is affirmative: Set the storage bit to the unset state; And After setting the storage bit to the unset state, update the storage bit to match the corresponding target bit; And When the determination is negative: Update the storage bit to match the corresponding target bit, and after updating the storage bit to match the corresponding target bit, determine whether any sectors are still in the program to be processed to update the program.

5. The computing device according to claim 4, wherein the storage bit defines a basic input / output system stored in the first flash memory; and Wherein the target bit defines a protected copy of the basic input / output system stored in the second flash memory to restore the basic input / output system.

6. The computing device according to claim 4, wherein the storage bit defines a protected copy of the basic input / output system in the first flash memory; and Wherein the target bit defines an updated basic input / output system stored in the second flash memory to update the protected copy of the basic input / output system.

7. The computing device according to claim 4, wherein the storage sector includes a minimum number of bits for setting the storage bits of the storage sector to the unset state.

8. The computing device according to claim 4, wherein the security controller is to set the storage bit to the unset state by: Obtain a cache sector including cache bits in the unset state, wherein the cache sector includes a minimum number of bits for setting the storage bits of the storage sector to the unset state; and Replace the storage sector with the cache sector.

9. A method, comprising: For each of a plurality of storage sectors of a storage program to be updated to a target program, perform the following operations until each of the plurality of storage sectors has been processed: Obtain storage bits stored on a flash memory, each of the storage bits being in a set state or an unset state, wherein the storage bits form a storage sector of the storage program, and the storage sector is a subset of the storage bits forming the program; Obtain target bits, wherein the target bits form a target sector of the target program, each of the target bits being in the set state or the unset state, wherein each target bit corresponds to a storage bit to update the storage bit; Determine whether all stored bits match the target bits, and if so, determine whether any sectors are still in the program to be processed to update the program; If any of the stored bits do not match the corresponding target bits, determine whether the corresponding target bit is in the unset state for one of the stored bits in the set state; And When the determination is affirmative: Set the stored bit to the unset state; And After setting the stored bit to the unset state, update the stored bit to match the corresponding target bit; And When the determination is negative: Update the stored bit to match the corresponding target bit, and after updating the stored bit to match the corresponding target bit, determine whether any sectors are still in the program to be processed to update the program.

10. The method according to claim 9, further comprising: Pre-fill the flash memory with a subset of the target bits.

11. The method of claim 9, wherein the storage sector comprises a minimum number of bits for setting the stored bit to the unset state.

12. The method of claim 11, wherein setting the stored bit to the unset state comprises: Obtaining a cache including cached bits in the unset state, wherein the cache comprises a minimum number of bits for setting the stored bits of the storage sector to the unset state; and Replacing the storage sector with the cache.

Citation Information

Patent Citations

  • Bloom filters in a flash memory

    US20190034100A1