Flash memory controller and system including data pipelines incorporating multiple buffers
First Claim
Patent Images
1. A system including a flash memory controller and flash memory devices, the system comprising:
- a first set of buffers, at least one of which stores a page of data read from a flash memory device;
a second set of buffers, a first of which stores data read from a plurality of buffers from the first set of buffers, the data relating to a first host command, the second set of buffers being operably connected to the first set of buffers by a first direct or indirect transmission path;
a third buffer or set of buffers, holding data read from a plurality of buffers from the second set, the data relating to a plurality of host commands;
the third buffer or set being operably connected to the second set of buffers by a second direct or indirect transmission path; and
a fourth buffer or set of buffers holding data read from the third buffer, the data relating to a second host command;
the fourth buffer or set being operably connected to the third buffer or set by a third direct or indirect transmission path and to a host port.
11 Assignments
0 Petitions
Accused Products
Abstract
A storage controller connected to a flash memory storage module, the controller and module including multiple sets of buffers. The buffers are part of one or more pipelines through which data is moved between the storage module and one or more hosts.
248 Citations
25 Claims
-
1. A system including a flash memory controller and flash memory devices, the system comprising:
-
a first set of buffers, at least one of which stores a page of data read from a flash memory device; a second set of buffers, a first of which stores data read from a plurality of buffers from the first set of buffers, the data relating to a first host command, the second set of buffers being operably connected to the first set of buffers by a first direct or indirect transmission path; a third buffer or set of buffers, holding data read from a plurality of buffers from the second set, the data relating to a plurality of host commands;
the third buffer or set being operably connected to the second set of buffers by a second direct or indirect transmission path; anda fourth buffer or set of buffers holding data read from the third buffer, the data relating to a second host command;
the fourth buffer or set being operably connected to the third buffer or set by a third direct or indirect transmission path and to a host port. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system including a flash storage controller and a plurality of flash memory devices divided into groups, the system comprising:
-
a first set of buffers, each buffer communicating over a first direct or indirect signal path with a set of flash memory devices and over a second direct or indirect signal path with a first buffer not part of the first set, the first path transmitting data at a first rate and the second path transmitting data at a second, higher rate; the first set of buffers including a second buffer and a third buffer, the second buffer holding data relating to a first host command, the data having been received from a first group of flash memory devices, the third buffer holding data relating to the first host command, the data having been received from a second group of flash memory devices, the first set of buffers further including a fourth buffer, the fourth buffer holding data received from a third group of flash memory devices, the data relating to a second host command. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of operating a storage system including a controller and a plurality of flash memory devices, comprising the following steps:
-
(a) transferring first data related to a first host command from a first flash memory device to a first buffer associated with the first flash memory device and transferring second data related to the first host command from a second flash memory device to a second buffer associated with the second flash memory device, the transfers occurring substantially simultaneously; (b) transferring the first data and the second data to a third buffer, the transfers occurring substantially simultaneously, (c) transferring the first data and the second data to a fourth buffer; (d) at the fourth buffer, aggregating the first data and the second data with third data, the third data also relating to the first host command; (e) transferring the aggregated first, second and third data to a fifth buffer; (f) transferring the aggregated first, second and third data from the fifth buffer to a host through a host port. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A flash memory controller comprising:
-
a first group of buffers including a first buffer, a second buffer and a third buffer, each buffer from the first group communicating with one or more flash memory devices, the first buffer holding first data transferred from a first flash memory device and the second buffer holding second data transferred from a second flash memory device, the first data relating to a first host command and the second data related to a second host command; a first set of transmission paths between each buffer from the first group and one or more flash memory devices, the first set of transmission paths communicating data at a first rate; a fourth buffer communicating with each buffer in the first buffer group, the fourth buffer holding data relating to two separate host commands, and a second set of transmission paths between the fourth buffer and the first buffer group, the second set of transmission paths communicating data at a second rate, the second rate being higher than the first rate. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A flash memory controller comprising:
-
a first group of buffers including a first buffer, a second buffer and a third buffer, each buffer from the first group communicating with one or more flash memory devices, the first buffer holding first data transferred from a first flash memory device and the second buffer holding second data transferred from a second flash memory device; a fourth buffer storing third data received from the first buffer and fourth data received from the second buffer. the third data being held in a first memory structure and the fourth data being held in the second memory structure; the first memory structure including a first gap that does not contain data, and the first data is associated with information that identifies the first gap; and the second memory structure includes a second gap that does not contain data, and the second data is associated with information that identifies the second gap. - View Dependent Claims (24, 25)
-
Specification