×

Scatter-gather approach for parallel data transfer in a mass storage system

  • US 9,971,524 B1
  • Filed: 03/17/2014
  • Issued: 05/15/2018
  • Est. Priority Date: 03/15/2013
  • Status: Active Grant
First Claim
Patent Images

1. A method for optimizing flash device accesses, comprising:

  • data striping and memory interleaving in a storage array in order to permit a data transfer, wherein the storage array comprises a first flash module, a second flash module and a third flash module;

    wherein the data striping and memory interleaving comprise;

    data striping, by a plurality of Direct Memory Access (DMA) controllers, a data into a first data stripe, a second data stripe, and a third data stripe, wherein the plurality of DMA controllers comprises a first DMA controller, a second DMA controller, and a third DMA controller,and storing the first data stripe into a first data buffer in the first DMA controller, storing the second data stripe into a second data buffer in the second DMA controller, and storing the third data stripe into a third data buffer in the third DMA controller;

    wherein the first flash module is coupled via a first high speed bus to the first Direct Memory Access (DMA) controller, wherein the second flash module is coupled via a second high speed bus to the second DMA controller, and wherein the third flash module is coupled via a third high speed bus to the third DMA controller, respectively;

    wherein the first DMA controller, the second DMA controller, and third DMA controller are coupled to a local bus;

    wherein the first flash module comprises a first flash buffer chip and a first flash bank, wherein the first flash bank comprises a first plurality of flash devices that are coupled via a first flash memory bus to the first flash buffer chip and wherein the first flash buffer chip is coupled via the first high speed bus to the first DMA controller;

    wherein the second flash module comprises a second flash buffer chip and a second flash bank, wherein the second flash bank comprises a second plurality of flash devices that are coupled via a second flash memory bus to the second flash buffer chip and wherein the second flash buffer chip is coupled via the second high speed bus to the second DMA controller;

    wherein the third flash module comprises a third flash buffer chip and a third flash bank, wherein the third flash bank comprises a third plurality of flash devices that are coupled via a third flash memory bus to the third flash buffer chip and wherein the third flash buffer chip is coupled via the third high speed bus to the third DMA controller;

    wherein the data striping and memory interleaving comprise;

    storing, in a first flash device in the first plurality of flash devices in the first flash bank in the first flash module, the first data stripe of the data;

    storing, in a second flash device in the second plurality of flash devices in the second flash bank in the second flash module, the second data stripe of the data; and

    storing, in a third flash device in the third plurality of flash devices in the third flash bank in the third flash module, the third data stripe of the data;

    wherein the first DMA controller comprises a first engine and the first data buffer, the second DMA controller comprises a second engine and the second data buffer, the third DMA controller comprises a third engine and the third data buffer;

    wherein the first engine transfers the first data stripe between the first flash device in the first flash bank and the first data buffer in the first Direct Memory Access (DMA) controller;

    wherein the second engine transfers the second data stripe between the second flash device in the second flash bank and the second data buffer in the second DMA controller;

    wherein the third engine transfers the third data stripe between the third flash device in the third flash bank and the third data buffer in the third DMA controller.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×