Single-chip flash device with boot code transfer capability
First Claim
1. A single-chip flash device for communicating with a host system, the single-chip flash device comprising:
- a flash memory device including a plurality of non-volatile memory cells for storing a data file, the non-volatile memory cells being arranged in at least one of a plurality of memory blocks, a plurality of pages, and a plurality of sectors;
an input/output interface circuit for establishing communication with the host system, wherein the input/output interface circuit includes a parallel or serial interface circuit including means for transmitting the data file using an embedded storage protocol;
a flash memory controller, electrically connected to the flash memory device and to the input/output interface circuit, wherein the flash memory controller comprises a processor, a main memory coupled to the processor for storing instructions for execution by the processor, and an interface for switching to one of a plurality of internal buses;
wherein the flash memory controller further comprises a volatile main memory circuit, and means for transferring the at least one of a boot code data and a control code data from the flash memory device to the volatile main memory circuit in accordance with instructions read from a memory;
wherein the flash memory controller includes update means for updating only a first copy of the control code data in the flash memory device, and means for utilizing a second copy of the control code data as an identical back-up copy; and
wherein the flash memory controller further comprises means for transferring the boot code data to a main memory before transferring the control code data to the main memory, and means for freeing up the main memory space occupied by the boot code data after the control code data is transferred to the main memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A Multi-Media Card (MMC) Single-Chip Flash Device (SCFD) contains a MMC flash microcontroller and flash mass storage blocks containing flash memory arrays that are block-addressable rather than randomly-addressable. An initial boot loader is read from the first page of flash by a state machine and written to a small RAM. A central processing unit (CPU) in the microcontroller reads instructions from the small RAM, executing the initial boot loader, which reads more pages from flash. These pages are buffered by the small RAM and written to a larger DRAM. Once an extended boot sequence is written to DRAM, the CPU toggles a RAM_BASE bit to cause instruction fetching from DRAM. Then the extended boot sequence is executed from DRAM, copying an OS image from flash to DRAM. Boot code and control code are selectively overwritten during a code updating operation to eliminate stocking issues.
-
Citations
16 Claims
-
1. A single-chip flash device for communicating with a host system, the single-chip flash device comprising:
- a flash memory device including a plurality of non-volatile memory cells for storing a data file, the non-volatile memory cells being arranged in at least one of a plurality of memory blocks, a plurality of pages, and a plurality of sectors;
an input/output interface circuit for establishing communication with the host system, wherein the input/output interface circuit includes a parallel or serial interface circuit including means for transmitting the data file using an embedded storage protocol;
a flash memory controller, electrically connected to the flash memory device and to the input/output interface circuit, wherein the flash memory controller comprises a processor, a main memory coupled to the processor for storing instructions for execution by the processor, and an interface for switching to one of a plurality of internal buses;
wherein the flash memory controller further comprises a volatile main memory circuit, and means for transferring the at least one of a boot code data and a control code data from the flash memory device to the volatile main memory circuit in accordance with instructions read from a memory;
wherein the flash memory controller includes update means for updating only a first copy of the control code data in the flash memory device, and means for utilizing a second copy of the control code data as an identical back-up copy; and
wherein the flash memory controller further comprises means for transferring the boot code data to a main memory before transferring the control code data to the main memory, and means for freeing up the main memory space occupied by the boot code data after the control code data is transferred to the main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- a flash memory device including a plurality of non-volatile memory cells for storing a data file, the non-volatile memory cells being arranged in at least one of a plurality of memory blocks, a plurality of pages, and a plurality of sectors;
-
9. 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;
wherein the transfer means further comprises;
control register means for indicating a first mode and a second mode;
wherein the CPU fetches instructions from the RAM during the first mode;
wherein the CPU fetches instructions from the second RAM during the second mode; and
toggle means, activated by execution of an initial boot loader, for changing the control register means from the first mode to the second mode before the initial program of instructions is executed by the CPU; and
wherein the flash mass storage blocks are initially readable after a reset before receiving a command and a physical address over the flash bus;
wherein the flash mass storage blocks send data in a first page over the flash bus after the reset and before receiving a command and a physical address over the flash bus. - View Dependent Claims (10, 11, 12, 13)
- a clocked-data interface to a host bus that connects to a host;
-
14. A multi-interface microcontroller comprising:
- input/output interface circuit means for establishing communication with a host computer, wherein the input/output interface circuit means includes a Multimedia Card (MMC) interface circuit or wherein the input/output interface includes a eMMC bus, a Universal Flash Storage (UFS) bus, a Memory-Stick bus, a PCI Express bus, an IDE bus, or a Serial ATA (SATA) bus;
flash bus means for connecting to a flash memory, the flash bus means carrying address, data, and commands to the flash memory;
wherein the flash memory stores an initial boot loader, an extended boot sequence, and a complete boot sequence in a non-volatile memory;
first volatile memory means for storing first instructions for execution;
second memory interface means for interfacing to a second volatile memory means for storing second instructions for execution;
processor means, coupled to the input/output interface circuit means, for fetching and executing the first instructions in the first volatile memory means during a first mode and fetching and executing the second instructions from the second volatile memory means during a second mode;
flash-memory controller means for generating flash-control signals and for buffering commands, addresses, and data to the flash bus means;
hardwired initializer means, activated by a reset signal, for activating the flash-memory controller means to read the initial boot loader from the flash memory, and for writing the initial boot loader as the first instructions to the first volatile memory means;
initial boot loader execution means for activating the processor means to fetch and execute the first instructions from the first volatile memory means, the initial boot loader execution means for activating the flash-memory controller means to read the extended boot sequence from the flash memory, for writing the extended boot sequence as the second instructions to the second volatile memory means; and
extended boot sequence execution means for activating the processor means to fetch and execute the second instructions from the second volatile memory means, the extended boot sequence execution means for activating the flash-memory controller means to read the complete boot sequence from the flash memory, and for writing the complete boot sequence as additional second instructions to the second volatile memory means;
wherein the transfer means further comprises;
control register means for indicating a first mode and a second mode;
wherein the processor means fetches instructions from the first volatile memory means during the first mode;
wherein the processor means fetches instructions from the second volatile memory means during the second mode; and
toggle means, activated by the initial boot loader execution means, for changing the control register means from the first mode to the second mode before the extended boot sequence execution means is activated. - View Dependent Claims (15, 16)
- input/output interface circuit means for establishing communication with a host computer, wherein the input/output interface circuit means includes a Multimedia Card (MMC) interface circuit or wherein the input/output interface includes a eMMC bus, a Universal Flash Storage (UFS) bus, a Memory-Stick bus, a PCI Express bus, an IDE bus, or a Serial ATA (SATA) bus;
Specification