A Multi-Media Card/Secure Digital (MMC/SD) single-chip flash device
contains a MMC/SD flash microcontroller and flash mass storage blocks
containing flash memory arrays that are block-addressable rather than
randomly-addressable. MMC/SD transactions from a host MMC/SD bus are read
by a bus transceiver on the MMC/SD flash microcontroller. Various
routines that execute on a CPU in the MMC/SD flash microcontroller are
activated in response to commands in the MMC/SD transactions. A
flash-memory controller in the MMC/SD flash microcontroller transfers
data from the bus transceiver to the flash mass storage blocks for
storage. Rather than boot from an internal ROM coupled to the CPU, a boot
loader is transferred by DMA from the first page of the flash mass
storage block to an internal RAM. The flash memory is automatically read
from the first page at power-on. The CPU then executes the boot loader
from the internal RAM to load the control program.