Data storage apparatus providing host full duplex operations using half duplex storage devices
First Claim
1. An apparatus configured to couple to a plurality of data storage resources, comprising:
- a command processor configured to receive a write command and data blocks from a host computing device;
a resource manager configured as a host to the plurality of data storage resources;
a data manager coupled to the command processor and to the resource manager and configured to select, after receipt of the write command, one of the plurality of data storage resources according to an availability of the data storage resources to transfer data, the data manager being further configured to issue instructions to the resource manager to allocate the data blocks received from the host to the selected data storage resource; and
a translation table configured to map the data blocks to the selected data storage resource.
10 Assignments
0 Petitions
Accused Products
Abstract
A data storage apparatus includes a command processor that receives write commands and data blocks from a host, the write commands comprising block ID'"'"'s (BID) corresponding to data blocks; storage resources including semiconductor memory and mass storage; a data manager that selects storage resources and allocates selected resources to block ID'"'"'s; a translation table to map a storage resource to the allocated block ID, and storage resources that are selected after receipt of the write command. A method is further provided for increasing performance in a storage device comprising a plurality of storage resources, transferring data to a storage resource that is available to transfer the data.
-
Citations
25 Claims
-
1. An apparatus configured to couple to a plurality of data storage resources, comprising:
-
a command processor configured to receive a write command and data blocks from a host computing device; a resource manager configured as a host to the plurality of data storage resources; a data manager coupled to the command processor and to the resource manager and configured to select, after receipt of the write command, one of the plurality of data storage resources according to an availability of the data storage resources to transfer data, the data manager being further configured to issue instructions to the resource manager to allocate the data blocks received from the host to the selected data storage resource; and a translation table configured to map the data blocks to the selected data storage resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data storage apparatus comprising:
-
at least one data storage resource, comprising a total number X of addressable memory blocks addressable in mass storage addresses (MSAs); a data manager that is configured to assign an MSA to data received from a host and that is configured to address a number Y of unique block identifiers (BIDs) assigned by the host, the MSA being configured to identify at least one data storage resource and at least one BID within the identified at least one data storage resource, the data manager being further configured to dynamically allocate BIDs to MSAs according to an availability of the at least one data storage resource to transfer data; and wherein the number Y of unique BIDs is greater than the number X of MSAs. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for operating a storage device comprising a plurality of storage resources, comprising:
-
receiving a write command and data blocks from a host; allocating a first storage resource to store the data blocks received from the host; determining that the first storage resource is available to accept the data, mapping a first portion of the data blocks to the first storage resource; transferring at least the first portion of the data to the first storage resource; and when the first data storage resource is not available or becomes unavailable to transfer data; locating a second storage resource that is available to accept data; mapping a second portion of the data blocks to the second storage resource; and transferring at least the second portion of the data to the second storage resource.
-
Specification