The present invention relates generally to Serial Advanced Technology Attachment ATA (SATA) switches and, in particular, to switches having two host ports and one device port allowing for access by both host ports, the device port being coupled to a storage device, such as a hard disk drive, the switch further having the capability to control power to the storage device.
As discussed in prior related patent applications/patents, referenced hereinabove, as listed hereinabove and incorporated herein by reference, a switch or multiplexer (Mux) is used to couple two or more host ports to a target device. A simple failover switch or Active Passive Mux (APMux) allows two different hosts to connect to the same device, however, when one host is connected to the device, the other host can not access the device. An Active switch or Active Active Mux (AAMux) allows concurrent access by both hosts to the device. “Switch or Mux”, as used herein below, refers to either an Active Switch (AAMux) or a Simple Failover Switch (APMux).
Now, briefly problems associated with current apparatus and method are discussed.
In the case where a target device is a storage device, such as a hard disk drive (HDD), is used, power control becomes an issue in today's technology. More specifically, HDDs are commonly known to hang-up or become nonoperational for a variety of reasons, which are well known in the industry. Upon the occurrence of a hang-up, error recovery is performed in an attempt to render the HDD and the system in which the HDD is being utilized operational. In the event of the error recovery failing, as a last step, recovery of the HDD is performed, requiring turning the power to the HDD ‘off’ and then ‘on’ while the rest of the system in which the HDD is being utilized remains operational.
In light of the foregoing, it is desirable to interrupt power to a HDD without interrupting power to the rest of the system in which the HDD resides, the system including a switch coupling at least two host ports to a target (or storage) device, such as the HDD, and the interruption of power to the HDD being the last step in an error recovery process, initiated from the HDD becoming inoperational.
The SATA and SAS use the same connector, to allow use of either a SATA or SAS device in the same system. SATA uses only one link of the connector whereas SAS uses both links on the connector. That is, when disk drives are used in different settings, the use of a mux may or may not be necessary. A specific example is in the context or application of what is commonly known as “Just a Bunch of Disks” (JBOD), or Disk Arrays which is essentially a large number of removable disks (disk array) or HDDs that are in the same enclosure, connected to a backplane and coupled to a common system interface. In JBODs, using SATA or SAS HDDs interchangeably is desirably. Such JBODs will be referred to as SAS/SATA JBODs. Yet another problem associated with the use of SATA switches on the backplane of SAS/SATA JBOD is the need to bypass the switch on the backplane when a SAS HDD is used.
other systems in a variety of different ways. One way is using the disk array in SATA, another is using the disk array in SAS.
Currently, a disk array JBOD requiring SATA coupling as well as SAS coupling needs two different connections therefor, one for the SATA coupling and another for the SAS coupling. Specifically, SATA uses one link of a connector, whereas, SAS uses both links of a connector and SATA requires a mux, whereas, SAS does not.
Therefore, the need arises for an apparatus and method of bypassing an active switch so as to allow using the same connection to connect two or more host ports on one side of a JBOD to either of the SATA and the SAS target device.
Briefly, an embodiment of the present invention includes a switch employed in a system having two hosts and a device and for coupling two or more host ports to a device. The switch includes a power signal control circuit generating a power signal for use by the device in receiving power for operability thereto, the power signal control circuit responsive to detection of inoperability of the device and in response thereto, toggling the power signal to the device while avoiding interruption to the system.
a shows further details of the switch 64 of
b illustrates a power control circuit 203b that functionally operates in the same manner as the power control circuit of
c shows another embodiment of present invention.
d shows a further details of an embodiment of present invention with atomic power cycle operation.
a shows the switch 336 in accordance with an embodiment of the present invention.
b shows further details of the connection circuit 307 in accordance with an embodiment of the present invention.
a shows the PS OOB sequence 400 in accordance with an embodiment of the present invention.
b and 7c show examples of predefined sequences of OOB signals.
d and 7e show an example of a sequence of COMRESET signal to turn power “on” or “off”, respectively.
a shows an exemplary host to device register FIS data structure 501 in accordance with an embodiment of the present invention.
b shows an exemplary device to host register FIS data structure 502 in accordance with an embodiment of the present invention.
The switch 64 may be an active active mux (AAMux). The switch 64 comprises of a SATA port 64a coupled to a host 11, a SATA port 64b coupled to a host 12 and a SATA port 64c coupled to a storage unit 66, which may be a SATA HDD. In system 60, the storage unit 66 has a SATA link and the SATA port 64c is coupled to a storage unit 66 via a SATA link 66a. However, the storage unit 66 may have a ATA link such that the port 64c is a ATA port and the link 66a is a ATA link.
In the embodiment of
“Host”, as used herein below, refers to either the host II or host 12 of
In
The storage unit 66, as stated previously, may be an HDD, which is prone to hang-ups or times of inoperation due to a wide variety of reasons well-known in industry. Upon recovery from a hang-up situation, error recovery is performed and if the latter process fails, the HDD is preferably turned ‘off’ and ‘on’ (toggled) without interruption of power to the rest of the system 60, e.g. operation of the rest of the system 60. This is important in that normal operation continues without any disruption to the operation of the rest of the system 60 even though power to the storage unit 66 is interrupted.
A condition used to detect a hang-up of the storage unit 66 is detection of an issued, yet incompletely processed command within a predetermined time period and detection of a failed ‘soft’ reset or ‘hard’ reset as well as failed link re-initialization. A ‘soft’ reset is initiated via setting a control bit in the task file while a ‘hard’ reset is initiated by asserting signals or sequences. Failure to reset or link re-initialize refers to failure to properly recover from a hang-up situation.
Once the foregoing condition is detected, one of the methods of the present invention is used to toggle (or turn ‘off’ or turn ‘on’) power to the storage unit 66. One method is to utilize the Port Select OOB (PS OOB) sequence, which is clearly already in existence, as is the OOB detector 200, to toggle the power control signal 206, which ultimately results in toggling the signal carried on the power connection 204, to the storage unit 66. The PS OOB sequence is effectively used to select the ‘active’ port when using an APMux and to toggle power to the storage unit 66 when using an AAMux. The PS OOB sequence consists of two sequences of two COMRESET intervals comprising a total of five COMRESET bursts with four inter-burst delays.
Another method to toggle power is to use a sequence of COMRESET bursts to turn “off” power and another sequence of COMMREST bursts to turn “on” power. Such sequence must not occur during normal operation. One such sequence is to use two back to back PS OOB with two delays between the two PS OOB sequences. If the delay is between a first range then the sequence is designated to turn “off” power and if the delay is between a second range the sequence is designated to turn power “on”.
a shows further details of the switch 64 of
Power control circuit is shown to include a RS flip flop 230. When active active mode select 210 is asserted and power on reset 211 is deasserted and power control signal 206 is deasserted then if a PS OOB is detected the corresponding host port select signal 208, or 209 is asserted which will cause corresponding host power off signal 219, or 223 to be asserted which will cause the state of power control signal 206 to toggle (to asserted state). The host power off signals 219 and 223 are logically ORed by OR gate 226 to generate the set signal 227 of RS flip flop 230. When active active mode select 210 is asserted and power on reset 211 is deasserted and power control signal 206 is asserted then if a PS OOB is detected the corresponding host port select signal 208, or 209 is asserted which will cause corresponding host power on signal 221, or 225 to be asserted which will cause the state of power control signal 206 to toggle (to deasserted state). The host power on signals 221 and 225 are logically ORed by OR gate 228 to generate the reset signal 229 of RS flip flop 230.
c shows another embodiment of present invention. In
It is obvious to one skilled in the art to devise other OOB sequences to turn power “on” or “off”. By way of example, a sequence of COMRESET signal to turn power “on” or “off” is shown in
Yet another method is to use a sequence of COMRESET to request/initiate an atomic power cycle operation. An atomic power cycle operation comprises of turning power off then waiting for a first predetermined time interval and then turning power on, and the host should wait for a second predetermined time before issuing any commands. When an atomic power cycle is in progress any command received from the other host is returned with error.
d shows further details of an embodiment of present invention with atomic power cycle operation. In
In general either hosts can initiate a power “off”/“on” cycle. Uncoordinated power “off”/“on” by host 11 and host 12 may lead to problems. For example during error recovery host 11 completes power “off”/“on” and then issues commands, and shortly after host 12 performing error recovery may initiate a power “off”/“on” cycle followed by issuing commands, the power “off”/“on” cycle by host 12 will cause command issued by host 11 to be aborted and host 11 may initiate another error recovery causing commands issued by host 12 to be aborted. This situation may lead to a condition that either host may incorrectly conclude that the drive is dead since power “off”/“on” cycle did not bring drive to an operational state. In practice either an in-band coordination via AAMux or out-of-band coordination via other communication paths between the hosts is required to perform power “off”/“on” cycle. An embodiment with in-band coordination via AAMux will be discussed later.
An improvement of embodiment of
Yet Another method to toggle power is to use a vendor unique command to turn power ‘off’ and ‘on’ (toggle).
The contents of host to device register FIS for AAMux VUC are shown below:
b shows an exemplary device to host register FIS data structure 502 in accordance with an embodiment of the present invention. The value of FIS type 520a for host to device register FIS 502 is 34h (hexadecimal). The device to host register FIS 502 is used to provide response to host including response for AAMux VUCs. In particular the status register 520c includes the status.
The contents of device to host register FIS 502 for response to AAMux VUC are shown below:
Communication between hosts via a mailbox is well known in the art and will not be discussed here. In the embodiment of
Communication path between the hosts via mailbox and AAMux VUC to access the mailboxes provides an in-band coordination between host 11 and host 12.
By way of vendor unique commands a variety of operations can be performed by the AAMux. Such operations include the following:
Next, another embodiment of the present invention is shown in relation to the use of Just a Bunch of Disks (JBOD), which as previously explained, is basically a disk array or array of HDDs.
The SATA and SAS use the same connector, to allow use of either a SATA or SAS device in the same system. The SATA will use only one link of the connector whereas the SAS will use both links on the connector. A specific example is in the context or application of what is commonly known as “Just a Bunch of Disks” (JBOD), or Disk Arrays which is essentially a large number of removable HDDs that are in the same enclosure, connected to a backplane and coupled to a common system interface. In JBODs using SATA or SAS HDDs it is desirable to use either SATA or SAS HDDs interchangeably. Such JBODs will be referred to as SAS/SATA JBODs. Yet another problem associated with the use of SATA switches on the backplane of SAS/SATA JBOD is the need to bypass the switch on the backplane when a SAS HDD is used.
Currently, a JBOD requiring SATA coupling as well as SAS coupling needs two different connections therefor, one for the SATA coupling and another for the SAS coupling. Specifically, SATA uses one link of a connector, whereas, SAS uses both links of a connector and SATA requires a switch, whereas, SAS does not.
In accordance with an embodiment of the present invention,
Perhaps, at this time, a brief discussion for the purpose of using two connectors by prior art systems is in order. The need for the use of two different connectors arises, in large part, due the use of SATA as well as SAS HDDs. To this end, SATA uses one link of a connector, whereas, SAS uses two links of a connector, accordingly, SATA requires the use of a switch, whereas, SAS does not. Thus, the embodiment of the present invention, shown in
Referring now to
The switch 316 is also shown to receive a bypass control signal 311, which is essentially indicative of a SAS HDD where the switching function of switch 316 is bypassed and the links 322 is coupled to output link 313, and links 313 and 324 ultimately generating the D1 output 318 and the D2 output 320, respectively. This is further clear with respect to
In
In yet another embodiment of the switch shown in
Referring now to
Although the present invention has been described in terms of specific embodiments it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention. It is obvious to an expert in the art to combine the present invention with prior art to develop devices and methods that perform multiple functions including the teachings of this invention. Such devices and methods fall within the scope of present invention.
This application is a continuation-in-part of my previously-filed U.S. patent application Ser. No. 10/986,732, filed on Nov. 12, 2004 now U.S. Pat. No. 7,526,587 and entitled “Dual Port Serial Advanced Technology Attachment (SATA) Disk Drive”, which is a continuation-in-part of my U.S. patent application Ser. No. 10/755,521, filed on Feb. 9, 2004 now U.S. Pat. No. 7,523,236 and entitled “Switching Serial Advanced Technology Attachment (SATA)” and is a continuation-in-part of my U.S. patent application Ser. No. 10/775,523, filed on Feb. 9, 2004 now U.S. Pat. No. 7,539,797 and entitled “Route Aware Serial Advanced Technology Attachment (SATA) Switch”, the disclosures of which are incorporated herein as though set forth in full.
Number | Name | Date | Kind |
---|---|---|---|
5440752 | Lentz et al. | Aug 1995 | A |
6247100 | Drehmel et al. | Jun 2001 | B1 |
6388590 | Ng | May 2002 | B1 |
6434620 | Boucher et al. | Aug 2002 | B1 |
6763402 | Talati | Jul 2004 | B2 |
6915363 | Wood et al. | Jul 2005 | B2 |
7154905 | Shin et al. | Dec 2006 | B2 |
7328356 | Igari | Feb 2008 | B2 |
7392333 | Chiu | Jun 2008 | B2 |
7552289 | Hoch et al. | Jun 2009 | B2 |
7634375 | Pakzad et al. | Dec 2009 | B1 |
20020038436 | Suzuki | Mar 2002 | A1 |
20030033465 | Chien | Feb 2003 | A1 |
20030131166 | Utsunomiya et al. | Jul 2003 | A1 |
Number | Date | Country |
---|---|---|
1338648 | Dec 1999 | JP |
2000105674 | Apr 2000 | JP |
507896 | Oct 2002 | TW |
Number | Date | Country | |
---|---|---|---|
Parent | 10986732 | Nov 2004 | US |
Child | 11186371 | US | |
Parent | 10755521 | Feb 2004 | US |
Child | 10986732 | US | |
Parent | 10775523 | Feb 2004 | US |
Child | 10755521 | US |