Block-based data striping to flash memory
First Claim
1. An apparatus, comprising:
- an SATA to ATA bridge;
an ATA to USB bridge coupled to the SATA to ATA bridge;
a USB interface coupled to the ATA to USB bridge;
a block data striper coupled to the ATA to USB bridge and the USB interface;
a first FLASH memory controller coupled to the USB interface;
a first FLASH memory module coupled to the first FLASH memory controller;
a second FLASH memory controller coupled to the USB interface; and
a second FLASH memory module coupled to the second FLASH memory controller.
5 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments, options for data striping to FLASH memory are provided. In one embodiment, an apparatus is provided. The apparatus includes an SATA to ATA bridge, an ATA to USB bridge coupled to the SATA to ATA bridge, and a USB interface coupled to the ATA to USB bridge. The apparatus also includes a first FLASH memory controller coupled to the USB interface. The apparatus further includes a first FLASH memory module coupled to the first FLASH memory controller. The apparatus also includes a second FLASH memory controller coupled to the USB interface and a second FLASH memory module coupled to the second FLASH memory controller. A method for block striping data to or from a plurality of read or write channels.
-
Citations
28 Claims
-
1. An apparatus, comprising:
-
an SATA to ATA bridge; an ATA to USB bridge coupled to the SATA to ATA bridge; a USB interface coupled to the ATA to USB bridge; a block data striper coupled to the ATA to USB bridge and the USB interface; a first FLASH memory controller coupled to the USB interface; a first FLASH memory module coupled to the first FLASH memory controller; a second FLASH memory controller coupled to the USB interface; and a second FLASH memory module coupled to the second FLASH memory controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method, comprising:
-
receiving data via an SATA bus; translating the data into ATA format; separating the data into blocks; packaging the data in blocks for USB transmission; transferring the data in blocks in USB format; and storing the data in blocks in a set of FLASH memory modules. - View Dependent Claims (14, 15, 16)
-
-
17. A method, comprising:
-
receiving a data request in SATA format; translating the request into USB format; relaying the request to memory based on block locations of the request; retrieving corresponding data from memory; transferring the corresponding data in USB format; transforming the corresponding data to SATA format; and transferring the corresponding data as a response to the request. - View Dependent Claims (18, 19, 20)
-
-
21. A method for block striping data to or from a plurality of read or write channels, the method comprising:
-
receiving a logical block address (LBA), an input sector count, and a read or write command; dividing the received input LBA by the number of channels to compute a quotient result that becomes the new divided result LBA passed to each channel; determining the modulus of the quotient result from the LBA division operation; using the division remainder (modulus) to identify the starting channel for a read or write operation; dividing the received input sector count by the number of channels to compute a quotient result that becomes the new divided sector count for each channel; and using the sector count division remainder (modulus) to determine the exact sector count for each channel. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification