Patent ID: 8074002

Claim:
A switch coupled between a plurality of host units and a device for routing frame information therebetween and comprising: a. a first serial advanced technology attachment (SATA) port including a first host task file responsive to a non-data frame information structure (FIS) from a first host unit; b. a second SATA port including a second host task file, responsive to a non-data FIS from a second host unit; c. a third SATA port including a device task file responsive to a non-data FIS from the device, the device supports queuing of the non-data FIS 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 the first or second host unit; and d. an arbitration and control circuit coupled to said first task file, said second host task file, and said device task file for selecting one of the first or second host unit to concurrently access the device, through the switch, by accepting the non-data FIS, from either the first or second host unit, at any given time, including when the device is not in an idle state and whenever either one of the first or second host unit sends the non-data FIS to the device and further wherein the non-data FIS of the first and second host units and the device identify which one of the first or second host unit is an origin or destination host so that routing of the non-data FIS from the first and second host units and the device is transparent to the switch thereby reducing the complexity of the design of the switch rendering the switch's manufacturing less expensive, the arbitration and control circuit being responsive to the original queue depth value and alters the original queue depth value to be a new altered original queue depth value so that when the original queue value is odd, the new 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 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 non-data FIS sent by the first and second host units from being lost by an overrun of the original queue depth value by either the first or second host unit.