Dual port serial advanced technology attachment (SATA) disk drive
First Claim
1. A dual port serial advanced technology attachment (SATA) hard disk drive coupled to a plurality of host units for communicating thereto and comprising:
- a) a switch including a first SATA port, a second SATA port, and a third SATA port, wherein the third SATA port includes a device task file coupled to a head drive assembly (HDA);
b) the first SATA port, including a first host task file, and coupled to a first host unit, for accessing, by the first host unit, to the HDA, the first host task file being responsive to commands sent by the first host unit;
c) the second SATA port, including a second host task file, and coupled to a second host unit, for accessing by the second host unit, to the HDA, the second host task file responsive to commands sent by the second host unit, the HDA supports queuing of the commands sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the HDA can queue from either of the first or second host units; and
d) an arbitration and control circuit coupled to said first host task file and said second host task file for selecting the commands from one of the first host or second host units whenever either one of the first or second host units sends the corresponding commands for execution thereof for concurrently accessing the HDA by accepting the corresponding commands from either of the first or second host units, at any given time, including when the HDA is not in an idle state, the arbitration and control circuit being responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units.
9 Assignments
0 Petitions
Accused Products
Abstract
A hard disk drive is coupled to a plurality of host units for communication. The first host unit includes a serial advanced technology attachment (SATA) port, including a first host task file coupled for access to the device and responsive to commands sent by the first host unit. The second host unit includes a SATA port, including a second task file, coupled for access to the device and responsive to commands sent by the second host unit. An arbitration and control circuit is coupled to the first host task file and second task file. The arbitration and control circuit selects commands from one or the other host units when either host units sends a command for execution for concurrently accessing the device, and accepts commands from both, at any given time, including when the device is not idle.
30 Citations
37 Claims
-
1. A dual port serial advanced technology attachment (SATA) hard disk drive coupled to a plurality of host units for communicating thereto and comprising:
-
a) a switch including a first SATA port, a second SATA port, and a third SATA port, wherein the third SATA port includes a device task file coupled to a head drive assembly (HDA); b) the first SATA port, including a first host task file, and coupled to a first host unit, for accessing, by the first host unit, to the HDA, the first host task file being responsive to commands sent by the first host unit; c) the second SATA port, including a second host task file, and coupled to a second host unit, for accessing by the second host unit, to the HDA, the second host task file responsive to commands sent by the second host unit, the HDA supports queuing of the commands sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the HDA can queue from either of the first or second host units; and d) an arbitration and control circuit coupled to said first host task file and said second host task file for selecting the commands from one of the first host or second host units whenever either one of the first or second host units sends the corresponding commands for execution thereof for concurrently accessing the HDA by accepting the corresponding commands from either of the first or second host units, at any given time, including when the HDA is not in an idle state, the arbitration and control circuit being responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units. - View Dependent Claims (2, 3, 4, 5, 6, 36, 37)
-
-
7. A method of communications between a dual port serial advanced technology attachment (SATA) hard disk drive and a plurality of host units comprising:
-
a) coupling a first SATA port, having a first host task file, to a first host unit, the first host task file for receiving commands, from the first host unit, that are intended for a head drive assembly (HDA); b) coupling a second SATA port, having a second host task file, to a second host unit, the second host task file for receiving commands, from the second host unit, that are intended for the HDA; c) storing commands received from the first host unit in the first host task file; d) storing commands received from the second host unit in the second host task file; e) storing the commands received from either the first or second host units in a device task file of a third SATA port which is coupled to the HDA; f) selecting the commands from one of the first host or second host units whenever either one of the first or second host units sends the correspond commands for execution thereof for concurrently accessing the HDA by accepting the correspond commands from either of the first or second host units, at any given time, including when the HDA is not in an idle state; g) intercepting by an arbitration and control unit an original queue depth value generated by the HDA, the queue depth value being indicative of a number of commands that the HDA can queue from either of the first or second host units; and h) altering the original queue depth value by the arbitration and control unit to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units is the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units.
-
-
8. A dual port serial advanced technology attachment (SATA) hard disk drive comprising:
-
a) a SATA switch including a first SATA port, a second SATA port, and a third SATA port, wherein the third SATA port includes a device task file coupled to a head drive assembly (HDA); b) the first SATA port, including a first host task file, for connection to a first host unit, the first host task file responsive to commands sent by the first host unit intended for the HDA; c) the second SATA port, including a second host task file, for connection to a second host unit, the second host task file responsive to commands sent by the second host unit intended for the HDA, the HDA supports queuing of the commands sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the HDA can queue from either of the first or second host units; and d) an arbitration and control circuit coupled to said first host task file and said second host task file for selecting the commands sent by either the first host unit or the second host unit for execution by the HDA for concurrently accessing the HDA by accepting the commands from either of the first or second host units, at any given time, including when the HDA is not in an idle state, wherein while one of the first or second host units is coupled to the dual port SATA hard disk drive, the other one of the first or second host units sends the commands to the dual port SATA hard disk drive for execution thereof, the arbitration and control circuit responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the oriqinal queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A network device coupled between at least two host units and a device for communication there between comprising:
-
a. a first serial advanced technology attachment (SATA) port for coupling to a first host unit and including a first host task file responsive to commands from the first host unit; b. a second SATA port for coupling to a second host unit and including a second host task file responsive to commands from the second host unit; c. a third SATA port for coupling to the device, the device supports queuing of the commands sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the device can queue from either of the first or second host units; and d. an arbitration and control circuit coupled to said first host task file and said second host task file for selecting the commands sent by either the first host unit or the second host unit for execution by the device for concurrently accessing the device by accepting the commands from either of the first or second host units, at any given time, including when the device is not in an idle state, wherein either one of the first and second host task files queues the commands sent by the first and second host units to the network device for execution thereof, the arbitration and control circuit responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units. - View Dependent Claims (15, 16, 17)
-
-
18. A method of communication between at least two host units and a device, through a network device, comprising:
-
a. coupling a first serial advanced technology attachment (SATA) port to a first host unit, said first SATA port including a first host task file responsive to commands from the first host unit that are intended for the device; b. coupling a second SATA port to a second host unit, said second SATA port including a second host task file responsive to commands from the second host unit that are intended for the device; c. coupling a third SATA port to the device; d. receiving the commands from the first and second host units; e. storing the commands received from the first host unit into the first host task file; f. storing the commands received from the second host unit into the second host task file; g. selecting the commands sent by either the first host unit or the second host unit for execution by the device for concurrently accessing the device by accepting the commands from either of the first or second host units, at any given time, including when the device is not in an idle state, wherein either one of the first and second host task files queues the commands sent by the first and second host units to the network device for execution thereof; h) intercepting by an arbitration and control unit an original queue depth value generated by the device, the queue depth value being indicative of a number of commands that the device can queue from either of the first or second host units; and i) altering the original queue depth value by an arbitration and control unit to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units is the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units.
-
-
19. A dual port serial advanced technology attachment (SATA) hard disk coupled to a plurality of host units for communicating thereto and comprising:
-
a switch including; a) a first SATA port for coupling the dual port SATA hard disk drive to a first host unit, said first SATA port including a first host task file responsive to commands from the first host unit intended for a head drive assembly (HDA); b) a second SATA port for coupling the dual port SATA hard disk drive to a second host unit, said second SATA port including a second host task file responsive to commands from the second host unit intended for the HDA; c) a third SATA port including a device task file for coupling to the HAD, for accessing by the first or second host units, the HDA supports queuing of the commands sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the HDA can queue from either of the first or second host units; and d) an arbitration and control circuit coupled to said first host task file and said second host task file for selecting the commands sent by one of the first host or second host units for execution thereof, the arbitration and control circuit for concurrently accessing the dual port SATA hard disk drive by accepting the commands from either of the first or second host units, at any given time, including when the device is not in an idle state, the arbitration and control circuit responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An active switch coupled between a plurality of host units and a device for communicating there between and comprising:
-
a first serial advanced technology attachment (SATA) port having a first command queuing circuit for queuing commands, associated with a first host units, the commands intended for a device; a second SATA port having a second command queuing circuit for queuing commands associated with a second host units, the commands intended for the device; a third SATA port having a device task file, coupled to the device, for accessing by the first or second host units, the device supports the queuing of command sent by the first and second host units and generates an original queue depth value indicative of a number of commands that the device can queue from either of the first or second host units; and an arbitration and control circuit coupled to said first host unit and said second host unit for selecting the commands sent by either the first host unit or the second host unit for execution by the device, the arbitration and control circuit for concurrently accessing the device by accepting the commands from either of the first or second host units, at any given time, including when the device is not in an idle state, the arbitration and control circuit responsive to the original queue depth value and alters the original queue depth value to be a new queue depth value that is less than the original queue depth value so that each of the first and second host units is assigned a new number of commands that is less than the number of commands indicated by the original queue depth value but that a total number of commands queued by the first and second host units remains the same as the original queue depth value thereby misrepresenting the original queue depth value to the first and second host units to be less than the original queue depth value thereby preventing the commands sent by the first and second host units from being lost by an overrun of the original queue depth value by either of the first or second host units. - View Dependent Claims (32, 33, 34, 35)
-
Specification