SRAM cache and flash micro-controller with differential packet interface
First Claim
1. A dual-boot caching flash microcontroller comprising:
- a flash bus for connecting to a flash-memory chip, the flash bus carrying address, data, and commands to the flash-memory chip;
microcontroller boot code stored in the flash-memory chip in a first block;
host boot code stored in the flash-memory chip in a host-boot block;
a static random-access memory (SRAM) buffer;
a central processing unit (CPU) for executing instructions read from the SRAM buffer;
a host interface for connecting to an external host over a host bus;
a flash-memory interface for generating flash-control signals and for buffering commands, addresses, and data to the flash bus, and for reading and writing the SRAM buffer;
a boot-loader state machine, activated by a reset signal, for activating the flash-memory interface to read the microcontroller boot code from the flash-memory chip, the boot-loader state machine writing the microcontroller boot code to the first block in the SRAM buffer;
a mapping table storing mapping entries each having a logical address from the external host and a physical address of corresponding data stored in the flash-memory chip;
a tag portion of the SRAM buffer for storing tag portions of logical addresses from the external host; and
a data portion of the SRAM buffer for caching data for locations in the flash-memory chip identified by the physical address in a matching entry in the mapping table, the matching entry also storing the logical address having a tag portion in a same cache line as data in the data portion.
2 Assignments
0 Petitions
Accused Products
Abstract
A flash microcontroller has a Static Random-Access-Memory (SRAM) buffer that stores several blocks of boot code read from a flash memory. The SRAM buffer also operates as a cache of flash data after booting is complete. Cache read and write hits use the SRAM cache rather than flash memory, while old cache lines and read misses access the flash memory. Both the external host and the microcontroller are booted from boot code buffered in the SRAM buffer. A boot-loader state machine reads the flash ID and programs flash parameter registers with timing parameters for the flash memory. The flash microcontroller uses a differential interface to the external host, with a differential transceiver and a differential serial interface. Frame, packet, and encoded clock processing is also performed by the serial interface.
17 Citations
20 Claims
-
1. A dual-boot caching flash microcontroller comprising:
-
a flash bus for connecting to a flash-memory chip, the flash bus carrying address, data, and commands to the flash-memory chip; microcontroller boot code stored in the flash-memory chip in a first block; host boot code stored in the flash-memory chip in a host-boot block; a static random-access memory (SRAM) buffer; a central processing unit (CPU) for executing instructions read from the SRAM buffer; a host interface for connecting to an external host over a host bus; a flash-memory interface for generating flash-control signals and for buffering commands, addresses, and data to the flash bus, and for reading and writing the SRAM buffer; a boot-loader state machine, activated by a reset signal, for activating the flash-memory interface to read the microcontroller boot code from the flash-memory chip, the boot-loader state machine writing the microcontroller boot code to the first block in the SRAM buffer; a mapping table storing mapping entries each having a logical address from the external host and a physical address of corresponding data stored in the flash-memory chip; a tag portion of the SRAM buffer for storing tag portions of logical addresses from the external host; and a data portion of the SRAM buffer for caching data for locations in the flash-memory chip identified by the physical address in a matching entry in the mapping table, the matching entry also storing the logical address having a tag portion in a same cache line as data in the data portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A differential flash microcontroller comprising:
-
external host differential interface means for connecting to an external host by transmission of differential data; flash bus means for connecting to a flash memory, the flash bus means carrying address, data, and commands to the flash memory; flash-memory controller means for generating flash-control signals and for buffering commands, addresses, and data to the flash bus means; volatile buffer means for storing instructions in a volatile memory; processor means for fetching and executing instructions from the volatile buffer means; cache means, using the volatile buffer means for storage, for caching data read from the flash memory and for caching data from the external host for writing to the flash memory; and differential transceiver means for physically transmitting differential data over differential lines to the external host, and for receiving differential data sent by the external host over the differential lines; wherein the differential transceiver means is coupled to the external host differential interface means, whereby differential data from the external host is cached in the volatile buffer means before writing to the flash memory. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification