Scatter-gather approach for parallel data transfer in a mass storage system
First Claim
1. An apparatus, comprising:
- a volatile memory configured to store data;
a Direct Memory Access (DMA) controller directly coupled by a local bus to the volatile memory;
a first flash module comprising a first flash buffer chip, a first flash memory bus, and a first flash bank comprising a first plurality of flash devices including a first flash device, wherein the first plurality of flash devices are coupled by the first flash memory bus to the first flash buffer chip in the first flash module; and
a second flash module comprising a second flash buffer chip, a second flash memory bus, and a second flash bank comprising a second plurality of flash devices including a second flash device, wherein the second plurality of flash devices are coupled by the second flash memory bus to the second flash buffer chip in the second flash module;
wherein the first flash buffer chip in the first flash module and the second flash buffer chip in the second flash module are directly coupled by a flash interconnect to the DMA controller;
wherein the flash interconnect comprises a first plurality of high speed buses that is directly coupled to the first flash buffer chip in the first flash module and to the DMA controller;
wherein the flash interconnect comprises a second plurality of high speed buses that is directly coupled to the second flash buffer chip in the second flash module and to the first flash buffer chip in the first flash module;
wherein the first flash device is configured to store a first data stripe of the data and wherein the second flash device is configured to store a second data stripe of the data;
wherein the DMA controller comprises a DMA controller data buffer, a first DMA engine, and a second DMA engine;
wherein the DMA controller data buffer comprises a first buffer location and a second buffer location;
wherein the first DMA engine transfers the first data stripe between the first flash device and the first buffer location when a predetermined portion of data stripes is stored in the first flash buffer chip; and
wherein the second DMA engine transfers the second data stripe between the second flash device and the second buffer location when a predetermined portion of data stripes is stored in the second flash buffer chip.
2 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment of the invention, an apparatus comprises: a first flash module comprising a first flash device; and a second flash module comprising a second flash device; wherein the first flash module and second flash module are coupled by a flash interconnect; wherein the first flash device is configured to store a first data stripe of a data and wherein the second flash device is configured to store a second data stripe of the data. In another embodiment of the invention, a method comprises: storing, in a first flash device in a first flash module, a first data stripe of a data; and storing, in a second flash device in a second flash module, a second data stripe of the data; wherein the first flash module and second flash module are coupled by a flash interconnect. In yet another embodiment of the invention, an article of manufacture comprises a non-transient computer-readable medium having stored thereon instructions that permit a method comprising: storing, in a first flash device in a first flash module, a first data stripe of a data; and storing, in a second flash device in a second flash module, a second data stripe of the data; wherein the first flash module and second flash module are coupled by a flash interconnect.
364 Citations
16 Claims
-
1. An apparatus, comprising:
-
a volatile memory configured to store data; a Direct Memory Access (DMA) controller directly coupled by a local bus to the volatile memory; a first flash module comprising a first flash buffer chip, a first flash memory bus, and a first flash bank comprising a first plurality of flash devices including a first flash device, wherein the first plurality of flash devices are coupled by the first flash memory bus to the first flash buffer chip in the first flash module; and a second flash module comprising a second flash buffer chip, a second flash memory bus, and a second flash bank comprising a second plurality of flash devices including a second flash device, wherein the second plurality of flash devices are coupled by the second flash memory bus to the second flash buffer chip in the second flash module; wherein the first flash buffer chip in the first flash module and the second flash buffer chip in the second flash module are directly coupled by a flash interconnect to the DMA controller; wherein the flash interconnect comprises a first plurality of high speed buses that is directly coupled to the first flash buffer chip in the first flash module and to the DMA controller; wherein the flash interconnect comprises a second plurality of high speed buses that is directly coupled to the second flash buffer chip in the second flash module and to the first flash buffer chip in the first flash module; wherein the first flash device is configured to store a first data stripe of the data and wherein the second flash device is configured to store a second data stripe of the data; wherein the DMA controller comprises a DMA controller data buffer, a first DMA engine, and a second DMA engine; wherein the DMA controller data buffer comprises a first buffer location and a second buffer location; wherein the first DMA engine transfers the first data stripe between the first flash device and the first buffer location when a predetermined portion of data stripes is stored in the first flash buffer chip; and wherein the second DMA engine transfers the second data stripe between the second flash device and the second buffer location when a predetermined portion of data stripes is stored in the second flash buffer chip. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
storing data in a volatile memory; wherein the volatile memory is directly coupled by a local bus to a Direct Memory Access (DMA) controller; wherein the DMA controller is directly coupled by a flash interconnect to a first flash module and to a second flash module; wherein the first flash module comprises a first flash buffer chip, a first flash memory bus, and a first flash bank comprising a first plurality of flash devices including a first flash device, wherein the first plurality of flash devices are coupled by the first flash memory bus to the first flash buffer chip in the first flash module; wherein the second flash module comprises a second flash buffer chip, a second flash memory bus, and a second flash bank comprising a second plurality of flash devices including a second flash device, wherein the second plurality of flash devices are coupled by the second flash memory bus to the second flash buffer chip in the second flash module; wherein the first flash buffer chip in the first flash module and the second flash buffer chip in the second flash module are directly coupled by the flash interconnect to the DMA controller; wherein the flash interconnect comprises a first plurality of high speed buses that is directly coupled to the first flash buffer chip in the first flash module and to the DMA controller; wherein the flash interconnect comprises a second plurality of high speed buses that is directly coupled to the second flash buffer chip in the second flash module and to the first flash buffer chip in the first flash module; storing, in the first flash device in the first flash module, a first data stripe of the data; and storing, in the second flash device in the second flash module, a second data stripe of the data; wherein the DMA controller comprises a DMA controller data buffer, a first DMA engine, and a second DMA engine; wherein the DMA controller data buffer comprises a first buffer location and a second buffer location; wherein the first DMA engine transfers the first data stripe between the first flash device and the first buffer location when a predetermined portion of data stripes is stored in the first flash buffer chip; and wherein the second DMA engine transfers the second data stripe between the second flash device and the second buffer location when a predetermined portion of data stripes is stored in the second flash buffer chip. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. An article of manufacture, comprising:
-
a non-transitory computer-readable medium having stored thereon instructions to permit an apparatus to perform a method comprising; storing data in a volatile memory; wherein the volatile memory is directly coupled by a local bus to a Direct Memory Access (DMA) controller; wherein the DMA controller is directly coupled by a flash interconnect to a first flash module and to a second flash module; wherein the first flash module comprises a first flash buffer chip, a first flash memory bus, and a first flash bank comprising a first plurality of flash devices including a first flash device, wherein the first plurality of flash devices are coupled by the first flash memory bus to the first flash buffer chip in the first flash module; wherein the second flash module comprises a second flash buffer chip, a second flash memory bus, and a second flash bank comprising a second plurality of flash devices including a second flash device, wherein the second plurality of flash devices are coupled by the second flash memory bus to the second flash buffer chip in the second flash module; wherein the first flash buffer chip in the first flash module and the second flash buffer chip in the second flash module are directly coupled by the flash interconnect to the DMA controller; wherein the flash interconnect comprises a first plurality of high speed buses that is directly coupled to the first flash buffer chip in the first flash module and to the DMA controller; wherein the flash interconnect comprises a second plurality of high speed buses that is directly coupled to the second flash buffer chip in the second flash module and to the first flash buffer chip in the first flash module; storing, in the first flash device in the first flash module, a first data stripe of the data; and storing, in the second flash device in the second flash module, a second data stripe of the data; wherein the DMA controller comprises a DMA controller data buffer, a first DMA engine, and a second DMA engine; wherein the DMA controller data buffer comprises a first buffer location and a second buffer location; wherein the first DMA engine transfers the first data stripe between the first flash device and the first buffer location when a predetermined portion of data stripes is stored in the first flash buffer chip; and wherein the second DMA engine transfers the second data stripe between the second flash device and the second buffer location when a predetermined portion of data stripes is stored in the second flash buffer chip. - View Dependent Claims (16)
-
Specification