The present invention provides a flash memory management system and method with
increased performance. The flash memory management system provides the ability
to efficiently manage and allocate flash memory use in a way that improves reliability
and longevity, while maintaining good performance levels. The flash memory management
system includes a free block mechanism, a disk maintenance mechanism, and a bad
block detection mechanism. The free block mechanism provides efficient sorting
of free blocks to facilitate selecting low use blocks for writing. The disk maintenance
mechanism provides for the ability to efficiently clean flash memory blocks during
processor idle times. The bad block detection mechanism provides the ability to
better detect when a block of flash memory is likely to go bad. The flash status
mechanism stores information in fast access memory that describes the content and
status of the data in the flash disk. The new bank detection mechanism provides
the ability to automatically detect when new banks of flash memory are added to
the system. Together, these mechanisms provide a flash memory management system
that can improve the operational efficiency of systems that utilize flash memory.