Patent ID: 8156270
Filing Date: 2012-04-10
Classification: G06F

Abstract:
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 first (SATA) port, including a first host task file, coupled to a first host unit, for causing access, by the first host unit, to a head drive assembly (HDA), the first host task file being responsive to commands sent by the first host unit, to the SATA hard disk drive; b) a second SATA port, including a second host task file, coupled to a second host unit, for causing access by the second host unit, to the SATA hard disk drive, the device, the second host task file responsive to commands sent by the second host unit, the HDA supports queuing of commands sent by the first and second host units and generates an original queue depth value indicative of the number of commands that the HDA can queue from either of the first or second host units; and c) an arbitration and control circuit coupled to said first host task file and said second host task file for selecting commands from one of the first host or second host units whenever either one of the first or second host units sends commands for execution thereof for concurrently accessing the HDA by accepting commands, from either of the first or second host units, at any given time, including when the SATA hard disk drive 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 an altered original queue depth value so that when the original queue value is odd, the altered original queue depth value is one half of the original queue depth value after subtracting one so that each of the first and second host units is assigned a 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 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.