IP Library › Granted Patent US 8,174,892
Granted Patent B2
US 8,174,892 · App. 13/042,071 · Granted May 8, 2012

Increased NAND flash memory read throughput

Assignee: Round Rock Research, LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,174,892
App. No.
13/042,071
Granted
May 8, 2012
Kind
B2
Abstract

A method of reading sequential pages of flash memory from alternating memory blocks comprises loading data from a first page into a first primary data cache and a second page into a second primary data cache simultaneously, the first and second pages loaded from different blocks of flash memory. Data from the first primary data cache is stored in a first secondary data cache, and data from the second primary data cache is stored in a second secondary data cache. Data is sequentially provided from the first and second secondary data caches by a multiplexer coupled to the first and second data caches.

Claims (63)

1. A method of writing memory, comprising:

sequentially providing write data to a first secondary data cache and a second secondary data cache;

storing data from the first secondary data cache in a first primary data cache;

storing the data from the second secondary data cache in a second primary data cache; and

writing data from a first primary data cache into a first block of memory and from a second primary data cache into a second block of memory substantially simultaneously;

wherein storing data from the first and second primary data caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches;

the first and second and blocks of memory comprising different pages.

2. A method of writing memory, comprising:

sequentially providing write data to a first secondary data cache and a second secondary data cache;

storing data from the first secondary data cache in a first primary data cache;

storing the data from the second secondary data cache in a second primary data cache; and

writing data from a first primary data cache into a first block of memory and from a second primary data cache into a second block of memory substantially simultaneously;

wherein storing data from the first and second primary data caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches; and

wherein the sequentially provided write data is provided sequentially via a multiplexer.

3. A method of writing memory, comprising:

sequentially providing write data to a first secondary data cache and a second secondary data cache;

storing data from the first secondary data cache in a first primary data cache;

storing the data from the second secondary data cache in a second primary data cache; and

writing data from a first primary data cache into a first block of memory and from a second primary data cache into a second block of memory substantially simultaneously;

wherein storing data from the first and second primary data caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches;

wherein storing data from the first secondary data cache in the first primary data cache and storing data from the second secondary data cache in the second primary data cache occurs only after data previously stored in the first and second primary data caches has been written to memory.

4. The method of claim 3 , wherein sequentially providing write data via the multiplexer comprises receiving the write data in the multiplexer via an input of the memory.

5. A memory controller, comprising:

a first secondary data cache operable to store data;

a second secondary data cache operable to store data;

a first primary data cache operable to store data received from the first secondary data cache, and coupled to a first block of memory and operable to store data to the first block of memory;

a second primary data cache operable to store data received from the second secondary data cache, and coupled to a second block of memory and operable to store data to the second block of memory;

an input coupled to the first secondary data cache and second secondary data cache, the input operable to receive write data and sequentially output write data to the first secondary data cache and the second secondary data cache;

wherein writing data from the first and second primary write caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches via the input; and

wherein the first and second and blocks of memory comprise different pages.

6. A memory controller, comprising:

a first secondary data cache operable to store data;

a second secondary data cache operable to store data;

a first primary data cache operable to store data received from the first secondary data cache, and coupled to a first block of memory and operable to store data to the first block of memory;

a second primary data cache operable to store data received from the second secondary data cache, and coupled to a second block of memory and operable to store data to the second block of memory; and

an input coupled to the first secondary data cache and second secondary data cache, the input operable to receive write data and sequentially output write data to the first secondary data cache and the second secondary data cache;

wherein writing data from the first and second primary write caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches via the input;

wherein the input comprises a multiplexer, and wherein the sequentially provided write data is provided via the multiplexer.

7. The memory controller of claim 6 , further comprising control logic operable to store data from the first secondary data cache in the first primary data cache and store data from the second secondary data cache in the second primary data cache only after data previously stored in the first and second primary data caches has been written to memory.

8. A memory controller, comprising:

a first secondary data cache operable to store data;

a second secondary data cache operable to store data;

a first primary data cache operable to store data received from the first secondary data cache, and coupled to a first block of memory and operable to store data to the first block of memory;

a second primary data cache operable to store data received from the second secondary data cache, and coupled to a second block of memory and operable to store data to the second block of memory; and

an input coupled to the first secondary data cache and second secondary data cache, the input operable to receive write data and sequentially output write data to the first secondary data cache and the second secondary data cache;

wherein writing data from the first and second primary write caches into the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches via the input; and

wherein the memory controller is further operable to output data from the multiplexer at a rate at least twice the approximate write latency rate of a memory block.

9. A memory device, comprising:

first and second blocks of memory;

a first primary data cache coupled to the first block of memory and a second primary data cache coupled to the second block of memory;

a first secondary data cache coupled to the first primary data cache, and a second secondary data cache coupled to the second primary data cache;

an input operable to selectively write data to the first and second secondary data caches; and

control logic operable to control writing data from the first and second primary data caches to the first and second blocks of memory, to control transfer of data from the first and second secondary caches to the first and second primary data caches, and to control selective transfer of data from the input to the first and second secondary data caches, such that writing data from the first and second primary data caches to the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches via the input;

wherein the input comprises a multiplexer and the control logic is further operable to control the multiplexer to alternately transfer write data to the first secondary data cache and second secondary data cache.

10. The memory device of claim 9 , the control logic further operable to write data from the first primary data cache to the first block of memory and to write data from the second primary data cache to the second block of memory while the multiplexer alternately outputs data to the first secondary data cache and second secondary data cache.

11. The memory device of claim 10 , wherein the memory controller is further operable to load data from the first secondary data cache into the first primary data cache and to load data from the second secondary data cache into the second primary data cache after data is loaded into the first and second secondary data caches.

12. A memory device, comprising:

first and second blocks of memory;

a first primary data cache coupled to the first block of memory and a second primary data cache coupled to the second block of memory;

a first secondary data cache coupled to the first primary data cache, and a second secondary data cache coupled to the second primary data cache;

an input operable to selectively write data to the first and second secondary data caches; and

control logic operable to control writing data from the first and second primary data caches to the first and second blocks of memory, to control transfer of data from the first and second secondary caches to the first and second primary data caches, and to control selective transfer of data from the input to the first and second secondary data caches, such that writing data from the first and second primary data caches to the first and second blocks of memory occurs while new write data is sequentially provided to the first and second secondary data caches via the input;

the multiplexer further operable to output data at a rate at least twice the approximate write latency rate of a memory block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2011
From: MICRON TECHNOLOGY, INC.
To: ROUND ROCK RESEARCH, LLC
Reel/Frame 026445/0017 →
Continuity (3)
Continuation 12425200 · Apr 16, 2009
Continuation 11657950 · Jan 25, 2007
Related Publication 20110161591A1 · Jun 30, 2011