Method and system and apparatus for use in data storage
First Claim
Patent Images
1. A device, comprising:
- a processor;
a first interface operable to interface with a first I/O bus and receive a command for storing data utilizing a first protocol, wherein the device appears as a single storage device on the first I/O bus;
a second interface operable to interface with a plurality of second I/O buses to store the data corresponding to the command, a first I/O bus of the plurality of second I/O buses utilizing a second protocol associated with a first type of storage device selected for non-critical data storage and a second I/O bus of the plurality of second I/O buses utilizing a third protocol associated with a second type of storage device selected for critical data storage and different from the second protocol, wherein each I/O bus of the plurality of second I/O buses is operable to couple to one or more storage devices;
a controller comprising a memory for storing;
a set of instructions executable by the processor to determine a type of storage device into which the data is to be stored;
a plurality of queues operable to buffer the command received on the first I/O bus, wherein a first set of queues is configured to buffer commands associated with the first type of storage device and a second set of queues is configured to buffer commands associated with the second type of storage device;
a map operable to map an address for the command received on the first I/O bus to one or more physical addresses corresponding to the one or more storage devices coupled to the second I/O buses associated with the type of storage device into which the data is to be stored; and
a translator operable to configure a communication in the first protocol, the second protocol or the third protocol,wherein the controller is operable to store data on the one or more storage devices coupled to the plurality of second I/O buses and to implement a level of RAID in conjunction with two or more storage devices coupled to the plurality of second I/O buses by buffering the command received through the first interface in one queue of the first set of queues or the second set of queues based on the determination that the data is non-critical or critical and translating the command received on the first I/O bus to one or more second commands according to the second protocol or the third protocol to implement the command in conjunction with the level of RAID.
15 Assignments
0 Petitions
Accused Products
Abstract
Systems, devices and methods for interfacing a single bus with multiple buses invisibly to devices using the single bus are presented. More specifically, in one embodiment an I/O bus may be interfaced with multiple other I/O buses of the same or different formats. Commands may be received on the first I/O bus and invisibly to a computing device or processor which issues the commands, translated into a set of commands configured to effectuate a received command in conjunction with storage media coupled to the other I/O buses. This set of commands may also be configured to implement additional functionality in conjunction with the storage media such as RAID or data encryption.
31 Citations
16 Claims
-
1. A device, comprising:
-
a processor; a first interface operable to interface with a first I/O bus and receive a command for storing data utilizing a first protocol, wherein the device appears as a single storage device on the first I/O bus; a second interface operable to interface with a plurality of second I/O buses to store the data corresponding to the command, a first I/O bus of the plurality of second I/O buses utilizing a second protocol associated with a first type of storage device selected for non-critical data storage and a second I/O bus of the plurality of second I/O buses utilizing a third protocol associated with a second type of storage device selected for critical data storage and different from the second protocol, wherein each I/O bus of the plurality of second I/O buses is operable to couple to one or more storage devices; a controller comprising a memory for storing; a set of instructions executable by the processor to determine a type of storage device into which the data is to be stored; a plurality of queues operable to buffer the command received on the first I/O bus, wherein a first set of queues is configured to buffer commands associated with the first type of storage device and a second set of queues is configured to buffer commands associated with the second type of storage device; a map operable to map an address for the command received on the first I/O bus to one or more physical addresses corresponding to the one or more storage devices coupled to the second I/O buses associated with the type of storage device into which the data is to be stored; and a translator operable to configure a communication in the first protocol, the second protocol or the third protocol, wherein the controller is operable to store data on the one or more storage devices coupled to the plurality of second I/O buses and to implement a level of RAID in conjunction with two or more storage devices coupled to the plurality of second I/O buses by buffering the command received through the first interface in one queue of the first set of queues or the second set of queues based on the determination that the data is non-critical or critical and translating the command received on the first I/O bus to one or more second commands according to the second protocol or the third protocol to implement the command in conjunction with the level of RAID. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of interfacing buses using a device having a processor and a non-transitory computer-readable medium storing a set of instructions executable for:
-
receiving a first command on a first I/O bus utilizing a first protocol; determining a type of storage device into which data is to be stored, wherein the device comprises a plurality of second I/O buses including a first bus of the plurality of second I/O buses utilizing a second protocol associated with a first type of storage device selected for non-critical data storage and a second bus of the plurality of second I/O buses utilizing a third protocol associated with a second type of storage device selected for critical data storage and different from the second protocol, wherein each I/O bus of the plurality of second I/O buses is operable to couple to one or more storage devices; buffering the first command in one or more of a plurality of queues, wherein a first set of the plurality of queues is configured to buffer commands associated with the first type of storage device and a second set of the plurality of queues is configured to buffer commands associated with the second type of storage device; mapping an address for the first command received on the first I/O bus to one or more addresses corresponding to the one or more storage devices coupled to the plurality of second I/O buses; translating the first command to one or more second commands according to the second protocol or the third protocol; storing the data in the one or more storage devices, wherein the device is operable to map an address for the first command received on the first I/O bus to one or more addresses corresponding to the first type of storage devices coupled to the first bus of the plurality of second I/O buses or the second type of storage devices coupled to the second bus of the plurality of second I/O buses such that the device appears as a single storage device on the first I/O bus; and implementing a level of RAID in conjunction with two or more storage devices coupled to the plurality of second I/O buses by buffering the first command in one queue of the first set of queues or the second set of queues based on the determination that the data is non-critical or critical and translating the first command received on the first I/O bus to one or more second commands according to the second protocol or the third protocol to implement the first command in conjunction with the level of RAID. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification