1. Field of the Invention
The present invention relates generally to data communications, and, in particular, to a low power physical layer implementation for SATA and SAS transceivers.
2. Description of the Related Art
In a computer hardware system, a host controller connects a host system (e.g., the computer) to other devices via a peripheral bus. For example, a host controller using the Small Computer System Interface (“SCSI”) protocol connects a SCSI disk to a computer via a SCSI peripheral bus. The SCSI bus is a parallel communications bus. The host controller communicates between the SCSI bus and the host computer's internal bus, typically by issuing commands to the devices attached to the SCSI bus. The SCSI bus is a multidrop bus, meaning that multiple components are connected to the same bus and a process of arbitration determines which device gets access to the bus at any point in time.
Serial Attached SCSI (“SAS”) is a serial protocol generally intended to replace the parallel SCSI bus technology. The SAS protocol utilizes differential signals and non-return to zero (“NRZ”) modulation. SAS uses the standard SCSI command set, but is point-to-point communication rather than multidrop communication. Each SAS device is connected by a dedicated bus to an initiator—a device that originates device service and task management requests to be processed by a target device. Initiators may be implemented as an on-board component on a computer motherboard or as a separate host controller. The SAS protocol generally supports a greater number of devices and higher data throughput than the SCSI protocol.
Serial Advanced Technology Attachment (“SATA”) devices generally offer slower data transfer rates than SAS devices, but, due to their lower cost, SATA devices are prevalent in many systems. SATA uses the standard ATA command set, however, in certain applications, a host controller might support both SAS and SATA devices. SATA devices are described in greater detail in the SATA-IO specification (Serial ATA International Organization: Serial ATA Revision 2.6, Feb. 15, 2007, hereinafter “SATA-IO specification”), the teachings of which are incorporated herein by reference.
As described in Section 8.1 of the SATA-IO Specification, the physical layer of a SATA communication system has three operating states: Active, Partial and Slumber. Active is the normal operating mode in which commands are passed over the link between a SATA host and a SATA device. In Active mode, the Phy logic devices are fully powered and operational, and are synchronized such that they are capable of transmitting and receiving data. Partial mode is a reduced power mode in which the Phy logic devices are powered but are in a neutral state. The SATA-IO Specification requires that it take no longer than 10 μs to return to Active mode from Partial mode. Slumber mode is a further reduced power mode. In Slumber mode, the Phy logic devices are powered, but are not driving the signal lines. The signal lines are instead allowed to be a floating common mode voltage. The SATA-IO Specification requires that it take no longer than 10 ms to return to Active mode from Slumber mode.
As described in Section 7.5 of the SATA-IO Specification, SATA devices are awakened from a “low power” mode by Out of Band (“OOB”) signaling. OOB signals are low data rate signal patterns that do not appear in normal data streams. For example, as further described in the SATA-IO Specification, OOB signals consist of leaving the signal lines of a transmitter idle for time intervals of predetermined length, followed by transmitting a signal pattern during burst intervals, each burst interval having a predetermined length. During the idle time intervals, the physical link between the transmitter and the receiver carries a DC common mode voltage. During OOB burst time intervals, a signal pattern appears on the link, corresponding to an OOB command. In the SATA-IO Specification, there are three OOB commands: COMRESET, COMINIT, and COMWAKE.
A SATA device will stay in a low-power mode (i.e. Partial or Slumber) until either a valid COMWAKE OOB command or a valid COMRESET OOB command is received. COMWAKE is the most frequently received OOB command while in Slumber mode, estimated at 99% of all received OOB commands. The COMWAKE OOB command is used to bring the Phy of a SATA device out of a low-power mode. As is described in greater detail in sections 7.5.1, 8.4.1 and 8.4.2 of the SATA-IO Specification, once the Phy is awake, the SATA device transmits a COMWAKE acknowledgement signal, typically a COMWAKE OOB signal, to the SATA host. The COMRESET OOB command is issued by the SATA host to force a hardware reset of a SATA device. As is described in the SATA-IO Specification, once the hardware reset is complete, the SATA device transmits a COMRESET acknowledgement signal, typically a COMINIT OOB signal, to the SATA host. The COMINIT OOB command is issued by a SATA device to acknowledge a COMRESET OOB command from the SATA host. As is described in greater detail in section 7.5.1.3 of the SATA-IO Specification, once the hardware reset is complete, the SATA device transmits a COMRESET acknowledgement signal, typically a COMINIT OOB signal, to the SATA host. In cases where a proper acknowledgement signal is not detected, the SATA host will re-transmit the COMRESET OOB command.
The present invention provides for switching from a low-power mode of a device such as, for example, a SAS or SATA receiver, to an active mode. In described embodiments, the device enters the low-power mode by shutting down i) logic devices of a physical layer of the device and ii) a decoding circuit of the device. Activity at an input of a receiver of the device is detected while in low-power mode, and the device switches, in response to the detected activity, from the low-power mode to the active mode by powering up i) the logic devices of the physical layer and ii) the decoding circuit when activity is detected, thereby responding to the detected activity as if it is a predetermined command.
Other aspects, features, and advantages of the present invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
In accordance with embodiments of the present invention, power consumption in, for example, a SAS or SATA transceiver device is reduced during a “low-power mode” of operation of the device. Logic devices operating at the Open Systems Interconnection Model's physical layer of the transceiver as well as the transceiver's reference clock are shut down upon entering the low-power mode. When activity is detected at the receiver of the device, the logic devices of the physical layer and the reference clock of the transceiver are powered up. A desired command is assumed, and the response either performs the wake-up as requested for the desired and assumed command, or, if the received activity does not correspond to the desired command but is a permitted command, the permitted command is performed at a subsequent reception of the command. Consequently, activity at the device receiver acts as a power-up command to exit low-power mode for the device. For clarity, the present specification generally refers to SATA devices, but as would be understood by one skilled in the art, the present invention is not limited only to SATA devices, and might be used with SAS devices, or any other similar devices.
SAS and SATA protocols utilize differential signals, shown in
Receiver 120 also comprises activity detector 121 and decoding circuit 123. In an alternative embodiment of the present invention, receiver 106 of SATA host 102 might also comprise an activity detector and decoding circuit (not shown). Decoding circuit 123 comprises active digital circuitry to sample and decode received signals. For example, decoding circuit 123 might include a reference clock or other active digital circuitry. Activity detector 121 operates to detect changes in energy received at differential signal pairs RX+ 108b and RX− 110b. Changes in energy received at differential signal pairs RX+ 108b and RX− 110b, for example, might represent the signal energy of an OOB command sent by transmitter 104 of SATA host 102. Activity detector 121 might, for example, comprise a passive circuit such as a squelch detector such as shown in
As described previously, the Phy of SATA communication system 100 has three operating states: Active, Partial and Slumber. Active is the normal operating mode in which commands are passed over the link between SATA host 102 and SATA device 118. In Active mode, the Phy logic devices are fully powered and operational, and are synchronized such that they are capable of transmitting and receiving data. Partial mode is a reduced power mode in which the Phy logic devices are powered but are in a neutral state. The SATA-IO Specification requires that it take no longer than 10 μs to return to Active mode from Partial mode. Slumber mode is a further reduced power mode. In Slumber mode, the Phy logic devices are powered, but are not driving the signal lines 108, 110, 112 and 114. The signal lines are instead allowed to be a floating common mode voltage. The SATA-IO Specification requires that it take no longer than 10 ms to return to Active mode from Slumber mode.
Thus, in an embodiment of the present invention, any detected activity at activity detector 121 of receiver 120 of SATA device 118 is assumed to be a desired command, for example a COMWAKE OOB command. By assuming that any received signal is a desired command, no sampling or decoding of the signal is necessary to switch from a low-power mode to a higher power mode where logic devices of the Phy are enabled. Thus, circuitry supporting receiver 120 such as, for example, decoding circuit 123 or a receiver reference clock (not shown), may be powered down or removed from the design, and the power consumption of SATA device 118 may be reduced. In some embodiments, shutting down decoding circuit 123 may reduce the power consumption of SATA device 118 in Slumber mode by at least 15%. Any received signal has a high probability of being the desired command, for example a COMWAKE OOB command, when the desired command is a frequently received command. For example, the COMWAKE OOB command is estimated to occur as approximately 99% of all received OOB commands. Thus, for the great majority of commands received in Slumber mode, SATA device 118 wakes up and functions properly.
In an alternative embodiment of the present invention, circuitry supporting receiver 106 such as, for example, decoding circuit 123, may also be powered down, and the power consumption of SATA host 102 may be reduced. Receiver 106 might be powered up when transmitter 104 of SATA host 102 is powered up to transmit a command, for example a COMWAKE OOB command or a COMRESET OOB command, to SATA device 118.
In the rare cases when the received signal is a permitted command but not the desired command, for example when the received signal is actually a COMRESET OOB command, SATA device 118 does not send a proper acknowledgement signal, for example the COMINIT OOB command. Consequently, in the absence of the proper acknowledgement signal, SATA host 102 times out for the first COMRESET OOB command, and sends another COMRESET OOB command. The second COMRESET OOB command is properly sampled and detected by receiver 120 of SATA device 118 since, after the first COMRESET OOB command is received, decoding circuit 123 of receiver 120 is powered up (for example, at step 208 of method 200 shown in
Although the elements in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
The present invention can be embodied in the form of methods and apparatuses for practicing those methods. The present invention can also be embodied in the form of program code embodied in tangible media, such as magnetic recording media, optical recording media, solid state memory, floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of program code, for example, whether stored in a storage medium, loaded into and/or executed by a machine, or transmitted over some transmission medium or carrier, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits. The present invention can also be embodied in the form of a bit stream or other sequence of signal values electrically or optically transmitted through a medium, stored magnetic-field variations in a magnetic recording medium, etc., generated using a method and/or an apparatus of the present invention.
As used herein in reference to an element and a standard, the term “compatible” means that the element communicates with other elements in a manner wholly or partially specified by the standard, and would be recognized by other elements as sufficiently capable of communicating with the other elements in the manner specified by the standard. The compatible element does not need to operate internally in a manner specified by the standard.
Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements.