MEMORY HAVING IMPROVED READ CAPABILITY
First Claim
1. A memory comprising:
- a memory controller having a non-volatile memory for storing program code to initiate the operation of the memory controller, and having a first bus for receiving address signals from a host device;
a second bus for interfacing with a RAM memory; and
a third bus for interfacing with a NAND memory;
a volatile RAM memory connected to said second bus;
a NAND memory connected to said third bus;
said controller for receiving commands and a first address from said first bus, and for mapping said first address to a second address in said NAND memory and for operating said NAND memory in response thereto, with said RAM memory serving as cache for data to or from the NAND memory;
said controller for maintaining data coherence between the data stored in the RAM memory as cache and the data in the NAND memorya first buffer for storing data read from the NAND memory and for storing in the RAM memory; and
a second buffer for storing data read from the RAM memory and for storing in the NAND memory.
3 Assignments
0 Petitions
Accused Products
Abstract
In the present invention, a memory, and in particular, a NOR emulating memory comprises a memory controller having a non-volatile memory for storing program code to initiate the operation of the memory controller. The controller has a first bus for receiving address signals from a host device and a second bus for interfacing with a RAM memory, and a third bus for interfacing with a NAND memory. A volatile RAM memory is connected to the second bus. A NAND memory is connected to the third bus. The controller receives commands and a first address from the first bus, and maps the first address to a second address in the NAND memory, and operates the NAND memory in response thereto. The RAM memory serves as cache for data to or from the NAND memory. The controller also maintains data coherence between the data stored in the RAM memory as cache and the data in the NAND memory. The invention further has a first buffer for storing data from the NAND memory in response to a read command to be written to the RAM memory, and a second buffer for storing data from the RAM memory to be written to the NAND memory. In the event of a read operation, if the data from the specified address is in the RAM memory, then the data is read from the RAM memory completing the read operation. In the event of a read operation, and if the data from the specified address is not in the RAM memory, and if there is sufficient space in the RAM memory to store an entire page of data from the NAND memory, then the entire page is read from the NAND memory, stored in the first buffer and then stored in the RAM memory, and from the specified address is read out, completing the read operation. Finally, in the event of a read operation, and if the data from the specified address is not in the RAM memory, and if there is insufficient space in the RAM memory to store an entire page of data from the NAND memory, then an entire page from the RAM memory is first stored in the second buffer, then an entire page is read from the NAND memory, stored in the first buffer, and from the first buffer, stored in the now freed RAM memory and data from the specified address is read out, completing the read operation. The page of data from the second buffer is subsequently stored back into the NAND memory after the completion of the read operation thereby reducing read latency.
-
Citations
22 Claims
-
1. A memory comprising:
-
a memory controller having a non-volatile memory for storing program code to initiate the operation of the memory controller, and having a first bus for receiving address signals from a host device;
a second bus for interfacing with a RAM memory; and
a third bus for interfacing with a NAND memory;a volatile RAM memory connected to said second bus; a NAND memory connected to said third bus; said controller for receiving commands and a first address from said first bus, and for mapping said first address to a second address in said NAND memory and for operating said NAND memory in response thereto, with said RAM memory serving as cache for data to or from the NAND memory; said controller for maintaining data coherence between the data stored in the RAM memory as cache and the data in the NAND memory a first buffer for storing data read from the NAND memory and for storing in the RAM memory; and a second buffer for storing data read from the RAM memory and for storing in the NAND memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory device comprising:
-
a memory controller having a first bus for interfacing with a host device for receiving address signals therefrom; a NAND memory connected to the memory controller; and a RAM memory connected to the memory controller, said RAM memory acting as cache for said NAND memory, a first buffer connected to the NAND memory for storing data read therefrom, and connected to the RAM memory for writing data thereto; and a second buffer connected to the RAM memory for storing data read therefrom and connected to the NAND memory for writing data thereto. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of operating a memory controller having a first bus for interfacing with a host device for receiving a first read operation having a first address signal therefrom, a NAND memory connected to the memory controller;
- a RAM memory connected to the memory controller, with said RAM memory acting as cache for said NAND memory, a first buffer between said NAND memory and said RAM memory, and a second buffer between said NAND memory and said RAM memory, and wherein the memory controller for operating the NAND memory, the RAM memory and the first and second buffers, said method comprising;
receiving the first address signal; determining if the data specified by the first address signal is stored in the RAM memory; and a) if so, supplying the data from the RAM memory to the host device in lieu of reading from the NAND memory;
orb) if not, determining if the RAM memory has sufficient over-writable memory space to store a page of contents read from the NAND memory into the first buffer, wherein the page of contents include the data specified by the first address signal, i) if so, reading the page of contents from the NAND memory into the first buffer, wherein said page of contents includes data associated with the first address signal, and storing the page of contents in the RAM memory, and supplying the data associated with the first address signal from the RAM memory to the host device; ii) if not, clearing sufficient over-writable memory space in the RAM memory by storing at least a page of data from the RAM memory into the second buffer;
reading the page of contents from the NAND memory into the first buffer, wherein said page of contents includes data associated with the first address signal, and storing the page of contents in the RAM memory, and supplying the data associated with the first address signal from the RAM memory to the host device. - View Dependent Claims (17, 18, 19, 20, 21, 22)
- a RAM memory connected to the memory controller, with said RAM memory acting as cache for said NAND memory, a first buffer between said NAND memory and said RAM memory, and a second buffer between said NAND memory and said RAM memory, and wherein the memory controller for operating the NAND memory, the RAM memory and the first and second buffers, said method comprising;
Specification