Single-Chip USB Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage
First Claim
1. A Universal-Serial-Bus (USB) single-chip flash device comprising:
- a USB 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 serial engine in the USB flash microcontroller for receiving USB packets from a host over a host USB bus;
a flash-memory controller in the USB 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 USB flash microcontroller is integrated with the flash mass storage blocks that are block-addressable.
2 Assignments
0 Petitions
Accused Products
Abstract
A Universal-Serial-Bus (USB) single-chip flash device contains a USB flash microcontroller and flash mass storage blocks containing flash memory arrays that are block-addressable rather than randomly-addressable. USB packets from a host USB bus are read by a serial engine on the USB flash microcontroller. Various routines that execute on a CPU in the USB flash microcontroller are activated in response to commands in the USB packets. A flash-memory controller in the USB flash microcontroller transfers data from the serial engine 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.
-
Citations
20 Claims
-
1. A Universal-Serial-Bus (USB) single-chip flash device comprising:
-
a USB 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 serial engine in the USB flash microcontroller for receiving USB packets from a host over a host USB bus;
a flash-memory controller in the USB 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 USB 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 ROM-less single-chip flash device comprising:
-
a serial interface to a serial-data bus that connects to a host;
a serial engine for detecting and processing packets sent over the serial-data bus;
a serial-engine buffer for storing data sent over the serial-data bus;
an internal bus coupled to the serial-engine 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)
-
-
19. A flash drive comprising:
-
a switch that connects to a host over a host bus, and connects to downstream devices over a plurality of serial buses;
a plurality of serial single-chip flash devices, coupled to the switch as the downstream devices, each serial single-chip flash device comprising;
a serial-flash microcontroller having a processor;
a main memory coupled to the processor for storing instructions for execution by the processor;
a serial interface the switch through one of the plurality of serial buses;
a flash-memory controller;
a plurality of flash mass storage blocks that are block-accessible by the CPU through the flash-memory controller;
a direct-memory access (DMA) engine for directly transferring data and instructions over an internal bus among the serial interface, the main memory, the CPU, and the flash-memory controller;
a flash programming engine for initially programming the DMA engine to read an initial program from first page of the plurality of flash mass storage blocks and write the initial program to the main memory for execution by the CPU. - View Dependent Claims (20)
-
Specification