Firmware Operation; Virtual Blocks - FIGnition FUZE Hardware Reference Manual

Table of Contents

Advertisement

Fig 5.5
Data can be read from the flash chip starting at any byte within it by providing a 3 byte ad-
dress.

5.3 Firmware Operation

Because Flash memory retains its contents when turned off, what we really want to do is
treat Flash memory as a disk; reading and writing blocks of data.
However, there is a serious problem; flash memory can only be written by clearing bits
(changing bits from 1s to 0s) and can only be erased (changed back to containing 1s) en-
masse, in this case in 'sectors' of 4Kb at a time. This means that we'd modify several
pages of data whenever we wanted to change a single bit in a single page from a 0 to a 1.
Not only that, but Flash memory can only cope with a limited number of writes or erases
and it would wear out quickly if we erased it whenever we want to change a bit from 0 to 1.
Therefore the FIGnition firmware must work hard to emulate the behaviour of a disk. It
does this using three techniques: Virtual Blocks, Block Purging, Virtual Table purging.

5.3.1 Virtual Blocks

Rather than writing to actual, physical, blocks of flash; the firmware creates a table of vir-
tual block numbers, where each cell in the table contains the number of the actual physical
page in Flash used for that virtual block [Fig 5.6].

Advertisement

Table of Contents
loading

Table of Contents