Single-chip multi-media card/secure digital (MMC/SD) controller reading power-on boot code from integrated flash memory for user storage
First Claim
1. A Multi-Media Card (MMC) single-chip flash device comprising:
- a MMC flash microcontroller having a central processing unit (CPU) for executing instructions and a random-access memory (RAM) for storing instructions for execution by the CPU;
a bus transceiver in the MMC flash microcontroller for receiving MMC commands from a host over a host MMC bus;
a flash-memory controller in the MMC flash microcontroller;
flash mass storage blocks, coupled to the flash-memory controller, for storing non-volatile data for the host, the data in the flash mass storage blocks being block-addressable and not randomly-addressable; and
a flash bus having parallel data lines for transferring data from the flash-memory controller to the flash mass storage blocks, the flash bus also carrying a command to the flash mass storage blocks over the parallel data lines and also carrying a flash address over the parallel data lines;
wherein a block of data in the flash mass storage blocks is addressable by the flash-memory controller sending the command and a physical address over the parallel data lines, the command and the physical address being used to transfer the block of data over the parallel data lines as a plurality of data words transferred in a plurality of bus cycles;
whereby the MMC flash microcontroller is integrated with the flash mass storage blocks that are block-addressable.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
31 Citations
19 Claims
-
1. A Multi-Media Card (MMC) single-chip flash device comprising:
-
a MMC flash microcontroller having a central processing unit (CPU) for executing instructions and a random-access memory (RAM) for storing instructions for execution by the CPU; a bus transceiver in the MMC flash microcontroller for receiving MMC commands from a host over a host MMC bus; a flash-memory controller in the MMC flash microcontroller; flash mass storage blocks, coupled to the flash-memory controller, for storing non-volatile data for the host, the data in the flash mass storage blocks being block-addressable and not randomly-addressable; and a flash bus having parallel data lines for transferring data from the flash-memory controller to the flash mass storage blocks, the flash bus also carrying a command to the flash mass storage blocks over the parallel data lines and also carrying a flash address over the parallel data lines; wherein a block of data in the flash mass storage blocks is addressable by the flash-memory controller sending the command and a physical address over the parallel data lines, the command and the physical address being used to transfer the block of data over the parallel data lines as a plurality of data words transferred in a plurality of bus cycles; whereby the MMC flash microcontroller is integrated with the flash mass storage blocks that are block-addressable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A single-chip flash device comprising:
-
a clocked-data interface to a host bus that connects to a host; a bus transceiver for detecting and processing commands sent over the host bus; a buffer for storing data sent over the host bus; an internal bus coupled to the buffer; a random-access memory (RAM) for storing instructions for execution, the RAM on the internal bus; a central processing unit, on the internal bus, the CPU accessing and executing instructions in the RAM; a flash-memory controller, on the internal bus, for generating flash-control signals and for buffering commands, addresses, and data to a flash bus; flash mass storage blocks coupled to the flash-memory controller by the flash bus, and controlled by the flash-control signals; a direct-memory access (DMA) engine, on the internal bus, for transferring data over the internal bus; and a flash programming engine, activated by a reset, for initially programming the DMA engine to transfer an initial program of instructions from the flash mass storage blocks to the RAM before the CPU begins execution of instructions after the reset; whereby the initial program of instructions is transferred from the flash mass storage blocks to the RAM before execution by the CPU begins, eliminating a need for a local read-only memory (ROM) for storing the initial program of instructions. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A flash drive comprising:
-
a Multi-Media Card/Secure Digital (MMC/SD) interface that connects to a host over a MMC/SD host bus; a MMC/SD-flash microcontroller having a processor for executing instructions; a main memory coupled to the processor for storing instructions for execution by the processor; a flash-memory controller; a flash mass storage block that is block-accessible by the processor through the flash-memory controller; a direct-memory access (DMA) engine for directly transferring data and instructions over an internal bus among the MMC/SD interface, the main memory, the processor, and the flash-memory controller; a flash programming engine for initially programming the DMA engine to read an initial program from a first page of the plurality of flash mass storage blocks and write the initial program to the main memory for execution by the processor. - View Dependent Claims (19)
-
Specification