Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels
First Claim
1. A Non-Volatile Memory Device (NVMD) comprising:
- a host-device interface for receiving commands from a host over a host bus;
a bridge, coupled to the host-device interface, for converting requests from the host into concurrent requests;
a traffic controller and dispatcher, coupled to the bridge, receiving the concurrent requests, for dispatching the concurrent requests over an internal bus;
a plurality of NVMD branches, each NVMD branch coupled to the internal bus to receive one of the concurrent requests from the traffic controller and dispatcher;
wherein each NVMD branch of the plurality of NVMD branches further comprises;
a NVMD controller, coupled to the internal bus, having control logic and a flash channel interface; and
a NVMD memory;
wherein multiple NVMD branches are accessed concurrently in parallel by the concurrent requests;
wherein the NVMD is a single chip integrated onto a single substrate of silicon;
wherein the NVMD memory in each of the NVMD branches comprises;
a memory interface coupled to the flash channel interface;
a non-volatile memory array for storing blocks of data;
a block address manager, for receiving a logical block address (LBA) from the traffic controller and dispatcher, for mapping the LBA to a physical block address (PBA) within a non-volatile memory array in the NVMD;
wherein each NVMD branch of the plurality of NVMD branches further comprises;
a NVMD controller, coupled to the internal bus, having control logic and a plurality of flash channel interfaces;
wherein each of the plurality of flash channel interfaces is coupled to a NVMD memory;
whereby multiple NVMD memory are coupled to each NVMD controller;
wherein the NVMD controller further comprises;
a page buffer;
an address correlation page usage memory (ACPUM);
a partial logical-to-physical address and page usage information (PLTPPUI) tracking table;
a wear leveling counter and bad block indicator (WL/BB) tracking table; and
wherein the plurality NVMD memory include a reserved area for a plurality of first physical blocks and a plurality of second physical blocks, the first physical blocks referenced by a plurality of first special logical addresses while the second physical blocks referenced by a plurality of second special logical addresses;
wherein the plurality of first physical blocks is configured for storing the PLTPPUI tracking table and the plurality of second physical blocks for storing the WL/BB tracking table;
wherein the ACPUM is configured to keep one set, corresponding to a set number, from the PLTPPUI tracking table;
wherein the PLTPPUI tracking table is configured to hold correlations between the first special logical addresses and the first physical blocks;
wherein the WL/BB tracking table is configured to hold correlations between the second special logical addresses and the second physical blocks,whereby requests from the host are dispatched to multiple NVMD branches.
2 Assignments
0 Petitions
Accused Products
Abstract
A flash memory system stores blocks of data in Non-Volatile Memory Devices (NVMD) that are addressed by a logical block address (LBA). The LBA is remapped for wear-leveling and bad-block relocation by the NVMD. The NVMD are interleaved in channels that are accessed by a NVMD controller. The NVMD controller has a controller cache that caches blocks stored in NVMD in that channel, while the NVMD also contain high-speed cache. The multiple levels of caching reduce access latency. Power is managed in multiple levels by a power controller in the NVMD controller that sets power policies for power managers inside the NVMD. Multiple NVMD controllers in the flash system may each controller many channels of NVMD. The flash system with NVMD may include a fingerprint reader for security.
55 Citations
16 Claims
-
1. A Non-Volatile Memory Device (NVMD) comprising:
-
a host-device interface for receiving commands from a host over a host bus; a bridge, coupled to the host-device interface, for converting requests from the host into concurrent requests; a traffic controller and dispatcher, coupled to the bridge, receiving the concurrent requests, for dispatching the concurrent requests over an internal bus; a plurality of NVMD branches, each NVMD branch coupled to the internal bus to receive one of the concurrent requests from the traffic controller and dispatcher; wherein each NVMD branch of the plurality of NVMD branches further comprises; a NVMD controller, coupled to the internal bus, having control logic and a flash channel interface; and a NVMD memory; wherein multiple NVMD branches are accessed concurrently in parallel by the concurrent requests; wherein the NVMD is a single chip integrated onto a single substrate of silicon; wherein the NVMD memory in each of the NVMD branches comprises; a memory interface coupled to the flash channel interface; a non-volatile memory array for storing blocks of data; a block address manager, for receiving a logical block address (LBA) from the traffic controller and dispatcher, for mapping the LBA to a physical block address (PBA) within a non-volatile memory array in the NVMD; wherein each NVMD branch of the plurality of NVMD branches further comprises; a NVMD controller, coupled to the internal bus, having control logic and a plurality of flash channel interfaces; wherein each of the plurality of flash channel interfaces is coupled to a NVMD memory; whereby multiple NVMD memory are coupled to each NVMD controller; wherein the NVMD controller further comprises; a page buffer; an address correlation page usage memory (ACPUM); a partial logical-to-physical address and page usage information (PLTPPUI) tracking table; a wear leveling counter and bad block indicator (WL/BB) tracking table; and wherein the plurality NVMD memory include a reserved area for a plurality of first physical blocks and a plurality of second physical blocks, the first physical blocks referenced by a plurality of first special logical addresses while the second physical blocks referenced by a plurality of second special logical addresses; wherein the plurality of first physical blocks is configured for storing the PLTPPUI tracking table and the plurality of second physical blocks for storing the WL/BB tracking table; wherein the ACPUM is configured to keep one set, corresponding to a set number, from the PLTPPUI tracking table; wherein the PLTPPUI tracking table is configured to hold correlations between the first special logical addresses and the first physical blocks; wherein the WL/BB tracking table is configured to hold correlations between the second special logical addresses and the second physical blocks, whereby requests from the host are dispatched to multiple NVMD branches. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage system comprising:
-
a connector to a host system, the connector having a host bus; a host-device interface, coupled to the connector, for interfacing to the host using a host protocol; a bridge, coupled to the host-device interface, for protocol conversion and handshaking; a traffic controller and dispatcher, coupled to the bridge and to an internal bus, for dispatching concurrent requests over the host bus for concurrent operations; a first Non-Volatile Memory Device (NVMD) branch having a first NVMD controller coupled to the internal bus and a first NVMD; a second NVMD branch having a second NVMD controller coupled to the internal bus and a second NVMD; wherein the first and second NVMD controller each comprise; a logic circuit for interfacing to the internal bus; a flash channel interface for channeling flash commands generated in response to one of the concurrent requests; a page buffer; an address correlation page usage memory (ACPUM); a partial logical-to-physical address and page usage information (PLTPPUI) tracking table; a wear leveling counter and bad block indicator (WL/BB) tracking table; wherein the first and second NVMD each comprise; a memory interface, coupled to the flash channel interface, for processing the flash commands; and a non-volatile memory array for storing blocks of data in response to the flash commands received by the memory interface; wherein the non-volatile memory array includes a reserved area for a plurality of first physical blocks and a plurality of second physical blocks, the first physical blocks referenced by a plurality of first special logical addresses while the second physical blocks referenced by a plurality of second special logical addresses; wherein the plurality of first physical blocks is configured for storing the PLTPPUI tracking table and the plurality of second physical blocks for storing the WL/BB tracking table; wherein the ACPUM is configured to keep one set, corresponding to a set number, from the PLTPPUI tracking table; wherein the PLTPPUI tracking table is configured to hold correlations between the first special logical addresses and the first physical blocks; wherein the WL/BB tracking table is configured to hold correlations between the second special logical addresses and the second physical blocks, wherein concurrent requests are dispatched to the first and second NVMD branches. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification